{"report_id":"bba6c5e3-2007-4ea4-a8df-0e623a4c0490","version":0,"status":"done","tags":[],"date":"2026-07-27T04:48:18Z","url":{"schema":"https","addr":"buvei.com/","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"172.67.69.23","port":0,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"final":{"url":{"schema":"https","addr":"buvei.com/","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"title":"Global Virtual Cards for Ads \u0026 Subscriptions | Buvei","dom":{"size":384453,"mime_type":"text/html; charset=utf-8","magic":"HTML document, ASCII text, with very long lines (64506)","md5":"4cb5261d7a843a06b740fcd62cfd756b","sha1":"f3a368d860a58307e5ccc7016e36eef75afebde5","sha256":"da1abbddb22b4403a50baed64cc310a0ca54335d91316b227fa38083961891e3","sha512":"21f7d78e3b566457572f84f23084924218949cc2cba5d67476140954d8970a801b4381f05b98dd8b0fd9f9d25c7a8c07bf2d34a65aa4dcb86b689115e82ec6c5","ssdeep":"3072:eSEK1RQcKEk34H0MXkiIHMY3STYMDoXt6eHsobJPjX4oht:eSEyQlf34H0MXkiIHMY3STYMDoEe9bt","tlshash":"9984082272c02935b42fa73beae0679bb146f413f5efc6bcb5267358c78b9514442a43","dom_hash":"domhasha85cc5af44e699bd89ded2ab2340b4a2","first_seen":"2026-07-27T04:48:28.458093Z","last_seen":"2026-07-27T04:48:28.458093Z","times_seen":1,"resource_available":false,"data":null}},"submit":{"url":{"schema":"https","addr":"buvei.com/","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"172.67.69.23","port":0,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"tags":null,"meta":null},"settings":{"access":"public","device_type":"desktop","expires_at":"2027-08-31T04:48:18Z","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":"image.crisp.chat","ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2017-06-09","domain_rank":456330,"first_seen":"2017-07-02T12:33:45Z","last_seen":"2026-07-26T14:16:53.335957Z","alert_count":0,"request_count":5,"received_data":44167,"sent_data":3409,"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":"client.crisp.chat","ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2017-06-09","domain_rank":168029,"first_seen":"2017-07-02T12:33:45Z","last_seen":"2026-07-23T20:14:29.644159Z","alert_count":0,"request_count":18,"received_data":1033674,"sent_data":9573,"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":"api.buvei.com","ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"unknown","domain_rank":0,"first_seen":"2026-01-18T18:13:17.410025Z","last_seen":"2026-07-27T03:56:08.71598Z","alert_count":0,"request_count":2,"received_data":2773,"sent_data":1095,"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"]}]},{"fqdn":"www.google.no","ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2001-02-26","domain_rank":92680,"first_seen":"2012-06-26T23:22:08Z","last_seen":"2026-07-26T23:31:59.116255Z","alert_count":0,"request_count":1,"received_data":578,"sent_data":794,"comment":"","tags":null,"fingerprints":null},{"fqdn":"client.relay.crisp.chat","ip":{"addr":"64.227.36.222","port":443,"asn":14061,"as":"DIGITALOCEAN-ASN","country":"United Kingdom","country_code":"GB"},"domain_registered":"2017-06-09","domain_rank":159579,"first_seen":"2017-07-02T12:24:26Z","last_seen":"2026-07-24T08:30:51.183633Z","alert_count":0,"request_count":1,"received_data":441,"sent_data":614,"comment":"","tags":null,"fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}]},{"fqdn":"www.googletagmanager.com","ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2011-11-11","domain_rank":283,"first_seen":"2012-10-04T01:07:32Z","last_seen":"2026-07-26T22:31:28.839046Z","alert_count":0,"request_count":2,"received_data":1023185,"sent_data":962,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"osspremium.s3.us-east-2.amazonaws.com","ip":{"addr":"3.5.129.105","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"domain_registered":"2005-08-18","domain_rank":0,"first_seen":"2026-01-18T18:13:17.415875Z","last_seen":"2026-07-27T03:56:06.987107Z","alert_count":0,"request_count":3,"received_data":270073,"sent_data":1751,"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 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"]}]},{"fqdn":"www.google.com","ip":{"addr":"142.251.154.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"1997-09-15","domain_rank":22,"first_seen":"2015-05-10T13:11:19Z","last_seen":"2026-07-26T22:51:17.688286Z","alert_count":0,"request_count":1,"received_data":538,"sent_data":970,"comment":"","tags":null,"fingerprints":null},{"fqdn":"buvei.com","ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2024-03-26","domain_rank":0,"first_seen":"2026-01-18T18:13:17.421606Z","last_seen":"2026-07-27T03:56:23.804234Z","alert_count":0,"request_count":34,"received_data":3922780,"sent_data":18322,"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":"Google Cloud CDN","description":"Cloud CDN uses Google's global edge network to serve content closer to users.","website":"https://cloud.google.com/cdn","common_platform_enumeration":"","icon":"google-cloud-cdn.svg","categories":["CDN"]},{"name":"Google Cloud","description":"Google Cloud is a suite of cloud computing services.","website":"https://cloud.google.com","common_platform_enumeration":"cpe:2.3:a:google:cloud_platform:*:*:*:*:*:*:*:*","icon":"Google Cloud.svg","categories":["IaaS"]},{"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":"Ant Design","description":"Ant Design is a UI library that can be used with data flow solutions and application frameworks in any React ecosystem.","website":"https://ant.design","common_platform_enumeration":"","icon":"Ant Design.svg","categories":["UI frameworks"]}]}],"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.googletagmanager.com/gtag/js?id=AW-11297594795\u0026cx=c\u0026gtm=4e67m0","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"617b43da75963b415775d6e689421248","sha1":"381e51da9201c7af20e9e974952465113ec3fa7c","sha256":"ad00254149962c4325692430fac64b1dc5d5792b496d0ea9b684b0035537db15","sha512":"b5bfa057332bfa8e88d41b53996041c99a10448bb40260c2eb59eaeab01cf7223d0c6d5864d3cd215af3ebf6f09a9f95f76d87962a99a7f521b055b4bc63e717","ssdeep":"6144:HsyDU0jNo7P69FMxmRkqn0hdBScPmfxNf3Ej+RGawoXxS:HsywYqP69V3KqBwOxS","tlshash":"63a409cdb3d674229396f478503f018ba57a28e2f448c899f189dce42e7465a8277f7c","size":450876,"data":"","first_seen":"2026-07-27T03:56:11.676436Z","last_seen":"2026-07-27T04:49:42.828229Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/chunks/1926.6d86221996340421.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"b2ae37cabc22a155bed1989262bd5d4d","sha1":"a74b2cd58c4399673b383f1236c90999c4cdfb94","sha256":"4fb996f4cb8cb4c3f81fe064a55407441574aa4a83f711f9bcbbfbd06a9b509f","sha512":"dc1be381e1fc135753dfd09566efafc22b0b444fb2ce73e1d8837bd90a1f01cbb7cff77b34f26f302f21d0cf93b473bb22c2baa111a54729840bb9f4d59e2124","ssdeep":"192:E0BQltkODdlgcSeFTaMev9E6ADpb2w327Tr:E0q3BDdlgcSeFTaMkKhpbVgTr","tlshash":"aa3203518dcc6561fc23354d107afed9722b478577b788a5cc7baa3008846e8d61dbce","size":11212,"data":"","first_seen":"2026-07-27T03:56:11.679493Z","last_seen":"2026-07-27T10:05:53.909095Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/chunks/9476.3857751f2642cb85.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"616482af8fadde657ac94d93f287d198","sha1":"a5d7632d719471a608e21a48c852559897b3c851","sha256":"9f6244821fc75374aef92f3c51f3db00f78379ad41e987c8b9840fbf15e09dfe","sha512":"7706ca84932e7e001b11d72f797fff1a82c8fe3da5945d3c0fd2053bc91a4e6d160ca4a95c4423109e5218119401eb5d304f790b8a5888d2ea2346fc4d398778","ssdeep":"96:k27NWlPGz9Cd7XIACbZ1YZycZ3VUWeqL+:JWlhd74AK","tlshash":"53f1f4284fc16e8af562fda40927e5563143239b616f1d9da8bdb03111e00d8eefd78e","size":7513,"data":"","first_seen":"2026-07-27T03:56:11.729206Z","last_seen":"2026-07-27T10:05:53.928614Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/chunks/antd-0707a2b8bda5b1ac.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"d444e5fe0deb2d05437df845c40a1adf","sha1":"9da09c2ef11608bcea51a51dc45fca100cfc640d","sha256":"3b16185d36b7b4a1975117ae6dcf76aeb65b38d8ee14e7d39fa1792ab2feb6f5","sha512":"ecc24d05affd707d34b437f29941fb9cdfdfcda93e53c9513cbbb5398103e86957c784f5b9aad68ce8ad817503209e91443567dde1dc1a2bc519f0bec7971b9f","ssdeep":"12288:p1DLrAzCPGOaGtmryIT/NH/RrRFxMzRh80a692ZyeQvPGS:pRLEGtmG6H/RrRFih81ZyeQv/","tlshash":"b7554c30b381386384d760eac07f851af22b5611b51d9cd0ea77e8d829e4b4c967bf79","size":1394901,"data":"","first_seen":"2026-07-27T03:56:11.754413Z","last_seen":"2026-07-27T10:05:53.960579Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"client.crisp.chat/static/javascripts/main_default_23e42123.js","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"29fb31e55f0a059a6547280f7fbb0c49","sha1":"a708bfa0b8e2345ca1c984a3731cc782a7c55435","sha256":"19bd7ff9519ab4a3c778c9f47d5c2748159a0aeeb98e55b82c79d48aa37e6402","sha512":"b7c19943dfb59850ac25db2cddb49e32e3e72979d1e50d4453200210edce97184ef75f36eb45b63db29935f8995ddf95c59be0cd6113154be3b50939dd214048","ssdeep":"","tlshash":"d2d0c92b2651c9ba71e906a980a050a2da62867f2752311492f8132a0ed54cdce5de25","size":206,"data":"","first_seen":"2026-07-21T21:10:40.918217Z","last_seen":"2026-07-29T15:29:45.653651Z","times_seen":13,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/6wYjP2KmMK9hAISorGh1P/_buildManifest.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"6fa233879bf4d220a702cfd565dbb730","sha1":"5befe492a5b5fbf92f5a895aa4ac1185dcfc6c1a","sha256":"82360c67b422e59e74cf93e216b15d71dbab3f37e134a08b317967bf3f4b1c10","sha512":"f4e3e0a484be77089fec566439b62de467224976f354c5900c47e045f754431d1b0eebcfde90ade4fe24d829354ee0c66463987df7227e67f5022f784a68267f","ssdeep":"","tlshash":"7b518f070245e4162ea1dd06782b13635ed0f63b9b394edde7dd0e2913c26f68b9e817","size":3052,"data":"","first_seen":"2026-07-27T03:56:11.702485Z","last_seen":"2026-07-27T04:49:42.854255Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/chunks/221.40157ea5d05b1866.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"1c2b49dd972044af622fd3c959a96e53","sha1":"064056ae6620a7c0ddf2ac08ed5e058b2cca7461","sha256":"f42a649a957ddbfa2352831d272163ef488e6fd4e4e55c5a69b4d7700793e68b","sha512":"b0246ee951df09bf1745364eed00c2ce43f0dfd0567f82c79584bcdbee1d808258589781a10727b215c45e720dffd0f9800e3ed83673cc0b9905dcc0e4c6cd1b","ssdeep":"192:EtDGAnh9paVpZhX297iPsqE/5PGqEYQPlqEq/P0AqEs8:EtDBVKrX297iPsqERPGqEdPlqEYP1qEp","tlshash":"d5020105cdc866a5fc22268d4476f9e5725f4bda61a78cfacc6b66300c841f8911eacf","size":8753,"data":"","first_seen":"2026-07-27T03:56:11.739192Z","last_seen":"2026-07-27T10:05:53.953452Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/chunks/commons-45d986bc686a719f.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"edf2b9b2382e38c98817eac6c347956b","sha1":"7d927d88f91a0758db80cf4d4ef81dd6efc17e07","sha256":"5f4503945e4f521b13a12e8e720b87b3147f5edf08302bdab201e727fddaf297","sha512":"0cd77df95376e93558e85407ee9c9de27d39289a82f9958df3fe108a420b0f33705bee89800432e62ecffa13ebd8e2df9bbb87394eea5788ca0d497016dbf4da","ssdeep":"6144:ZYSQ+M8fq9vwq27SkiYyryfkjlXFICTr5KBls/Mvq/0cTKc2b8umVZ:ZtquqtDrAI0RbI","tlshash":"ced42b15fbc1b8638357a5ac84fb8204f23fa6c1242a4459f96ee5c217e055893bff6c","size":648384,"data":"","first_seen":"2026-07-27T03:56:11.699982Z","last_seen":"2026-07-27T04:49:42.862604Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/6wYjP2KmMK9hAISorGh1P/_ssgManifest.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"52f6398da8e8cd56402812147da54e34","sha1":"b5615ce6cfa7429436ce47a0023b95ce25c2bd3b","sha256":"d8ded74b719d25a036bbe173e4756251a1dfaf06f93c93da521d5526a8abeab4","sha512":"46b1c77c96c7550a84dad5def0423e192705ff17ce8e0ffadb6fdef2f5e66600c95bfbcd1b304ae8bbe31a9c34d344a2590b4a67de683ed342ccb769c3f40eb1","ssdeep":"","tlshash":"62f097d50768bdbba813ae090c716f0797f0bd03db2d189b8b90248fa591418cf16607","size":612,"data":"","first_seen":"2026-07-27T03:56:11.748693Z","last_seen":"2026-07-27T10:05:53.911416Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"client.crisp.chat/static/javascripts/client_default_23e4212.js","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"3b968e589314835dcc69969dfaeba879","sha1":"c0e5846269318f56bf503d189815dda878f078c5","sha256":"7928095da82a0b824884a545855973d0677a16c9ac081d2ae1885d4908d30f89","sha512":"0b3a599bb50bb74865f15492d7b95654ccb0fe406850b10bd0c91fd8b250468f570087fc881935bb15df1e7ccde00fa5f73033e30e0be13da5982818362fb20c","ssdeep":"3072:qufRfBs+nD1PxoPiIm6gnxnNTkhOQgEEEI0r980LmbW1d0xjOqC/DNdz/kjm486S:rJBs+DiaxnNTGODEEEmW1dXjg1wiBKL","tlshash":"c364088a3262683313f642c3a4311a42f37a255d6886847cf37caeef6658dc571e7b74","size":336249,"data":"","first_seen":"2026-07-21T16:14:01.543411Z","last_seen":"2026-07-30T12:07:42.978529Z","times_seen":171,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"d447efc8d70cd230c8d1aeceb785f41a","sha1":"514bb8b8e607dfc732292f318f4bfde74ba1dc69","sha256":"296fecef64db7872b3e6a68cc2d145fb0270ac18be4edfa52ede7bcacc77642f","sha512":"3933d416e3b7ad9299e126a468928906682aa98eac8862af1e3794d4e6b730888cda3c19ca8ebf85e841b26ee68c086530dc74d6526c62cffcb907a94bd3d705","ssdeep":"","tlshash":"c6d0128e210f6cb241bb2e068b7fa204b41a326394a0a9203b5ea3448f20f17d754864","size":236,"data":"","first_seen":"2026-07-27T03:56:11.752297Z","last_seen":"2026-07-27T10:05:53.959162Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/chunks/lib-next-28c5d7bae9b88f4e.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"3cbb2057334109f537360685ecd8d05f","sha1":"eecfbae04201d62add59d77d6a9bf10ce7deb7d1","sha256":"7d5b315f8fa11a66a3192fd9a171740ee58feeafaa28a09fec8d733178418f0b","sha512":"ef8506f5b7ee64c641467ee29d5b83f687dff2991b556f6ee319076c7a90a9475c2c807a3e11960a58d8d364f230c0593423f7d57d0def74fc7dc124dc9faf59","ssdeep":"768:b0CqsZ629AJVx10shWcXt9IGjde1O3Je1K9uS7+lH5mNXqDnDKYRaIRRXzo+ug/P:bL9ABq0rjI4JiK9L50n1jUG","tlshash":"a4f20772330308074cdd1398d85259512659891e601f8e47bb5feec2b2a1f5ee1efe7a","size":35794,"data":"","first_seen":"2026-07-27T03:56:11.714404Z","last_seen":"2026-07-27T10:05:53.937945Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"eventHandler","is_inline":false,"md5":"7c3c3ddeb80438dcbb3d081d2d00e152","sha1":"5a4016732ee72ec77b4f6ab17047bcea6d2ea34d","sha256":"321b4f657afbf8ba49518e6ab4cbad07ea967d0b4c68f71c7deed05ed09c1187","sha512":"b252f7dc795284fe8ce404711809130d8e16670a8e49b271f9a24b04a542a0fccb7a8c7238c12b37db35fe73a2fbf1cdb374468574db4e6d39975a17dca547a3","ssdeep":"","tlshash":"de6000f0003000000003c30000330cf300000c0f00ccc30cfc0000c000c00000000c03","size":16,"data":"","first_seen":"2023-04-10T15:57:29Z","last_seen":"2026-08-03T14:15:34.781817Z","times_seen":345599,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"client.crisp.chat/static/javascripts/features/chat_default_23e4212.js","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"623d9c929f8a62d35103cb7a1cd84d08","sha1":"1e306add908e799ec63ab0afffca1404c5cd0571","sha256":"3190e96ac86ba529fe100a6d684a93ef5702867cc0f483724a87367956004410","sha512":"9a324f960dc1ea620bb9a8e8b8c855ab9ba9b3be1b1c99060905e8034616e41bce2e68b5f2e1340734b8617960e69ee50500df4b5ceb434789f6f9b341dea7d9","ssdeep":"1536:8tOS+HXh8T4O5baSDt18TZXRMi0NW7zDowfB0qi2EFdU7hay:8IRHR8zbaNRH0I6p/U7h/","tlshash":"aad3b6556205a93a02f711dff891344072793e96c8c8043af7bc6d7e26dcd9872abfa4","size":134379,"data":"","first_seen":"2026-07-21T21:10:40.910548Z","last_seen":"2026-07-29T15:29:45.69266Z","times_seen":13,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"client.crisp.chat/static/javascripts/common_default_23e4212.js","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"fc42c30d7c70b9c9610aa2173475528b","sha1":"78b1a19363cfa2a80827d10efbb93493dd51156f","sha256":"c615a2b545259a9dd7fc5c3e36f14eb1566a8b33f8cb793e79cb96c653fbc075","sha512":"0385c19c7f6765bb79aa663911d1b8c6a6eb14168e2c5e48be81531a9dfbd70ffc2104a8ccc8236a5a35f8344077c4cb2c8cc09735ad3dc8b702181c49122bfe","ssdeep":"768:OMqFMYjgVHcgGGHNl6gont6aIYGj2z+TcGERsHQx/04PfMhnOI/YMAZg0tCVeTOO:OP5kgx7crTqFszwjVrFae","tlshash":"fa532ba93285b43127ed08e6503b4001f37c6a56740bd4d1e26dbdab2d3688e61ebf7d","size":62391,"data":"","first_seen":"2026-07-21T21:10:40.883914Z","last_seen":"2026-07-29T15:29:45.633785Z","times_seen":13,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/chunks/framework-1405868483290479.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"e00733546f3323ffb85b07313e7e7717","sha1":"4716425cdc116f42ab2cf5be06799956f24eea6a","sha256":"15a624abd1b6acac2143ff8f3b41982af139b64e4d047773b1f7ddbf9aec16d0","sha512":"7bae0b477acb72989cfb56a7b5aef441829d02541d25ef3d7f25a416aac686a77e45fa3ae46284ee3df47a4feeae16d6d4949328b43ec9436f7993b7d48ee1f0","ssdeep":"1536:YzvlNAND5d7fCJZKYYfLif/5VolRqZwKksm/S6bQg5FSrJRX/S:YzN87KrYfL7Exj6E7bvS","tlshash":"e2d309e97996f5539a7312ab00af1403727c692b780c8cb0e140eedd65bc46da17bf8d","size":142442,"data":"","first_seen":"2026-07-27T03:56:11.630965Z","last_seen":"2026-07-27T10:05:53.933853Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/chunks/pages/_app-d2cf24766888d776.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"547e2666aefaa22142dd7d5dc6509263","sha1":"fe24cf0da6f79876dbfd57da4a8a519875021f86","sha256":"012d0db4199958dbcaa9f05570576ff8cac37d931f210c02c467b83ee994b5d5","sha512":"8d4c09172b24f695d33261df2d98a64e7273419a0cb064e37b9df4d905b9310a96fb3ba84f226feb2bb74e09bdba6660ee443baccc21e8b64c69cf2107cc9d01","ssdeep":"384:Wx8CvoM6ZaEoSZQA37kQvlQoyvI2fTuaifTumY5UsIafTur3F8zKg5/ht:Wx8CAM6ZaExZQI77WoyvIVaxmvsIZr3q","tlshash":"cea219c47ad16c9344fb25e8d033932d707feb2a380da812f51f2d9511d4e99e2bab15","size":23023,"data":"","first_seen":"2026-07-27T03:56:11.740699Z","last_seen":"2026-07-27T04:49:42.850287Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"client.crisp.chat/static/javascripts/en_default_23e4212.js","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"1d4e460d136d3b4ace41c2e63e3bf09a","sha1":"95b79cfa13cee485dd23fb3b2e74894096ceaaad","sha256":"b3a86387d318444ce5bd8e2b53384ee55ca8047021c01721184f27d1fe112b54","sha512":"3b7848727ff289b750c7b9ccc1b0e4e893715722d439efe408dfaadfd3c8daa374cc210ffef2ab73a40df1d2ba369865cf73e2885eec040866d06b1aa12a03ed","ssdeep":"192:oiJbPFmXDS83jwhwPteE2WZXikEeMeTAFSIPAU1RrUWBGfj7nOmrY2FYXCYLvvKN:oePFmX28HXikEeMeYSIPfRrLc7sQroRs","tlshash":"0c72ca1edf32de7b02b74b83b185ba024eb1117106e0687ed45d497d02a4dcab65bf4d","size":16072,"data":"","first_seen":"2026-07-21T16:14:01.53143Z","last_seen":"2026-07-30T12:07:42.89912Z","times_seen":142,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/chunks/lib-misc.e1ea40c94ed1df40.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"231b445d110aba91ce2fba6fedd26b6a","sha1":"4d3ddab76465b4742133e7511f5f69203cf6af83","sha256":"b145ac827ad0086855d73bf038223099e37508ca9ada2140594653beee5345df","sha512":"e57cc1b4b953a60db2e3f28116dd675bafa42c76cfad4508df709dfb0c4b6753b3fc9145f49aad107fa637c2322d6f2088c90dfab4276e5e8a7bb8e378ab709b","ssdeep":"384:Dv1vhR3fm5c4OVIZHfT4kt1X84FdtiJ+DV4wYWzZQlYWWX:DNvhR3fm5c4OVgHb4O1XZdtiJu4wYWtJ","tlshash":"09a2412c0fc51f9ee542be501913e15a3253236ea26f5c9d99bdb03025945c8eeee38e","size":22013,"data":"","first_seen":"2026-07-27T03:56:11.681324Z","last_seen":"2026-07-27T10:05:53.920348Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/chunks/webpack-4d87b19e96b82f3e.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"4fdb1a8f4c46621a4d77b40e8fe7ef6b","sha1":"01800e51c00df45f6ebf97be2506195fa091a3bf","sha256":"224d3f5d2021e9873c41e4b34bfca03b313d373077f0058a12ce07371287cef7","sha512":"b57a488aa957c3d17dea8bfe5520e93d1d3c93c8740a80f6cb7706219a74a89a89fb6c59df42f777c2ffc43bc71d8706f949c7b4617e768f4d3ad806bf142874","ssdeep":"192:wLbKC49XfvP60jWyHO4d1/kYCxZULWlxMI+0ICPy52GbDwR7siuEV6Wh0CS:wLbKhX3i2OylkYCxnlRImy52SwR7siuj","tlshash":"1e22c8882f50f82b74a73de9e137723ae36fc0a3583954d1de5ecce404e2a459329676","size":9973,"data":"","first_seen":"2026-07-27T03:56:11.720233Z","last_seen":"2026-07-27T04:49:42.844509Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/chunks/lib-framer-motion-0cc9adbda5ab8c32.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"c16197621928d5410176e2e8e4aa1448","sha1":"9554e2a1a1aa243b111ba4e7c8dcccd51384f01c","sha256":"df413e07d99dd87816af00187a8f9d4e776c97b22deaa6143e88b7fa041b6aae","sha512":"9aef4aff7e767d600426deff8682d6f160f9df452bdf8c7fbdbb466ecbc375a620cfac4281f36c34d409d389d490295cd08fede07d18a7ed4de75442814bead5","ssdeep":"384:l9bsk41JVlBJdE+6gBqn/gQlgiRS3jROmQdullOVr3Stx6rbWPW8vLh0uJNIKyNZ:lYXKZgiRSkmQQllQsjRJN+NM225Za+k","tlshash":"66f2b666a7510f8aa386fd64d69bc34635670a96002c503d3e3d3ee365b09487ede33e","size":36550,"data":"","first_seen":"2026-07-27T03:56:11.657151Z","last_seen":"2026-07-27T10:05:53.909856Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/chunks/main-05a0ec5e4a5fc095.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"537ed861075db344a2fd2600160c101f","sha1":"2ac3a505d4cbda0729a5c0c7d3213b116c52addc","sha256":"9694c3f21356e6badda7701395101358b0ca9b1897c09ee9ef27dd6cb796fb6f","sha512":"ccfea5df57e648583686f2ae0a8bcee74d68527195a85b6e9491c947d4d1d300bb5cd1ad0f69c95baa3b8cb21de853c772888429cb18014a271d6fa98ae85987","ssdeep":"1536:tF53lxnGRXHojwpobtc8ecno2GkLbV/S+2SXNI9QaRFK5DXgQa:tFsc9no25bV/HsfK5Lg1","tlshash":"e7b32b7a7291bcd30ada12d8c5379156b11ac82b74187892f7aedfda10d4d8dc27af30","size":111265,"data":"","first_seen":"2026-07-27T03:56:11.746988Z","last_seen":"2026-07-27T10:05:53.914409Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/chunks/lib-next-i18next-7ea2fa27591cb009.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"819f6ec0a4e1ff14a9f672177f6d551a","sha1":"44e45b0f5516998372e5de3b32c08c979702899d","sha256":"19a46d6e95dec7629f37750da8451ba6d4c488f9935d646a9b075214a798ef55","sha512":"fc1f896f7e18c12389601b1249f6d6b92f0cc63964ec128b293a0fc11792e753563606b0f3dee6a168273e8472999d30bebb103cbba3b01e9385997dc2beb7db","ssdeep":"768:mjwA0/x04Rd4gALS27k+1ZmgReDs71aoSozwZtqOui0RX/mjkbzMCb7ZFOLDMxSB:mj10/x04r4jj7h+4gtqnikv/fOLAx1PQ","tlshash":"3873084876d3aa4489c3a2d4247b170ef139af251058a00afe75dfd099e5d0de2e7f3a","size":77926,"data":"","first_seen":"2026-07-27T03:56:11.666668Z","last_seen":"2026-07-27T10:05:53.930255Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/chunks/pages/index-90cea8059c43276c.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"5558c09d324aef25445844399063ceb6","sha1":"9913b8a9defbb496d9f964fc1e2f583f91b29261","sha256":"ecdee69ac96e0e1efa9e4435f5dd5cdede9938c1df5256480ba37e1b88d77709","sha512":"9d6c8b4cd9e7ccc6306769b0e7b16ce0761198e684c602819bf3eecca2aab6902c3c6fe323b9b18ba405a555b511f1beea6fb73067cc8cce18dc263e8a0c34e0","ssdeep":"768:krvnv+YJeZdPmi9kEq7aI2g8ImOsle/MM+nvI07OwldcLGoM7mt78eUdmPXo5E+t:s/eHPsPzUVOPNt0","tlshash":"29138901edc5f572b317b99c44f5c244f236a7c96966841bf89ea35323a00a852bff8d","size":45073,"data":"","first_seen":"2026-07-27T03:56:11.659164Z","last_seen":"2026-07-27T10:05:53.926021Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"client.crisp.chat/l.js","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"72c259f46cd540cdc3c987b515fe19f5","sha1":"4b2b6305cb0a58d67c3b85fbeaa00d703c90e4fc","sha256":"a8f55dbc140c0cc28590dc488fd4374b5d5a113dea704a50402236692f75dbe4","sha512":"72fed7388562dae5b81b1d48d20b9e131af1b6d5459f9cd37a70204c007cf95cf66eb6f336d4e8c20d51d5a058f79021dc1784e8ebc4531a1f723c796b269fe8","ssdeep":"192:lQSfZ0VsUEswg2r/gAbe39QoxdpsxGVkdlY3AnL/dCSaQwiY:J+SS4/M9QoxLkjY3AxZ1O","tlshash":"54f1631732696132059362aa163b2b49f43361295cc5c15cb169ecf1297ca8fa13bffe","size":7637,"data":"","first_seen":"2026-07-21T16:14:01.53582Z","last_seen":"2026-07-30T12:07:43.002176Z","times_seen":175,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"9e8f56e8e1806253ba01a95cfc3d392c","sha1":"a8af90d7482e1e99d03de6bf88fed2315c5dd728","sha256":"2595496fe48df6fcf9b1bc57c29a744c121eb4dd11566466bc13d2e52e6bbcc8","sha512":"63f0f6f94fbabadc3f774ccaa6a401696e8a7651a074bc077d214f91da080b36714fd799eb40fed64154972008e34fc733d6ee314ac675727b37b58ffbebebee","ssdeep":"","tlshash":"6021d5743a18107e226a0133e56f66cee1f23715fd17e440408ad89566e4fe5063fed9","size":1239,"data":"","first_seen":"2023-03-07T01:02:00Z","last_seen":"2026-08-03T14:28:06.118506Z","times_seen":413817,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/chunks/1668-ae179e3f97d4bfb8.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"01ac4e4cdc6b046af276c1e5d5c65850","sha1":"3aaa6b27dd0f4f7d59232060aa46b5facb976fbd","sha256":"d2965202802429aba9cd1f9845d5760f6b61a31f6ef8f63ea00ae1a0061238d8","sha512":"3b2acc15d0cc167551d42f45a2a7159e845dd29bdd3691ccf6c0a139aa33134c22a2090c44a476101a7fb7548a28d2b4c5f1b5128961060cb1f53055eb744103","ssdeep":"6144:t5dghrOQ4G2nyQerE/qnEaR6OT9j4keiGZ:tY9OQ0n3erOjke3Z","tlshash":"537419f873d27d2686e772e49037420a767a8691201d2495e97ddedc26d0488f3fbb2c","size":368776,"data":"","first_seen":"2026-07-27T03:56:11.646831Z","last_seen":"2026-07-27T10:05:53.927586Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"60055150900cad76579010619908b170","sha1":"67afad588a8c00ad939850ec3a33ef1c93efc35a","sha256":"cbf7f661d9a3f55803cde78b030515952eeca2c918129e9bfc738d323fd175b1","sha512":"9bd24a0258eeee429c6379ebff783270c9ed3220b9cb335b79a693403c6095c898afbed29cdba3be5354105391c8c8f45bd2ac8972e3cca3337d49cde43d64ed","ssdeep":"","tlshash":"b1e0721a30c2103a12b348aa23f7810a2922370fc8aecb22be5fc5d62f24ca5040694c","size":353,"data":"","first_seen":"2026-07-27T03:56:11.750058Z","last_seen":"2026-07-27T10:05:53.959723Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtag/js?id=G-085T6Y7PBP","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"e10d0f54567ab32ff7b4cc9c8d8923ed","sha1":"1776eeca42004ef0b49848997ed0d38839d8e963","sha256":"af19544ab59b645618d2532e951a40e6006bf12b46f288aff901592cdbebbde8","sha512":"d7c5b8b97c8651c03a8d0f40d6476796e52efd93a142ccb6f3717f8664be2c5061fe5166cfd31dfe442960bf9145eecb06df3bb4253ec777e77371bdb81595f2","ssdeep":"6144:RfkxU0jIWXbP69FMxmRkqn0hdBScPmfxNf3EjPUGxVGaZoXuARH3u:pki1WLP69V3KDUGxVZO5u","tlshash":"38c40aceb3d67422539af478543f01cba97b25e2b45cc89ab1c9cce02d7464a8167f78","size":571075,"data":"","first_seen":"2026-07-27T03:56:11.704759Z","last_seen":"2026-07-27T04:49:42.843256Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}}],"eval":null,"write":null,"console":null},"http":[{"url":{"schema":"https","addr":"buvei.com/_next/static/chunks/1668-ae179e3f97d4bfb8.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.448Z","timestamp":1785127668448,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/static/chunks/1668-ae179e3f97d4bfb8.js HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: application/javascript; charset=UTF-8\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\ncache-control: public, max-age=31536000, immutable\r\naccept-ranges: bytes\r\nlast-modified: Mon, 29 Jun 2026 05:34:13 GMT\r\netag: W/\"5a088-19f11def808\"\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nage: 334919\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=gnIzzM1jXv8sbyrgsKoqYFjuPvppUTGdMdA0TOHcF7Ixr2M5rxsh4l7aWSgDrUy%2FMnYPAewQ19TPCqNSUzIR7jkZLa3o%2FRQNHFFqvgopTcMNFaXAqWkcZAymNA%3D%3D\"}]}\r\ncf-ray: a2190217cb678be6-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"]}],"data":{"size":368776,"size_decoded":91811,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (65522), with no line terminators","md5":"01ac4e4cdc6b046af276c1e5d5c65850","sha1":"3aaa6b27dd0f4f7d59232060aa46b5facb976fbd","sha256":"d2965202802429aba9cd1f9845d5760f6b61a31f6ef8f63ea00ae1a0061238d8","sha512":"3b2acc15d0cc167551d42f45a2a7159e845dd29bdd3691ccf6c0a139aa33134c22a2090c44a476101a7fb7548a28d2b4c5f1b5128961060cb1f53055eb744103","ssdeep":"6144:t5dghrOQ4G2nyQerE/qnEaR6OT9j4keiGZ:tY9OQ0n3erOjke3Z","tlshash":"537419f873d27d2686e772e49037420a767a8691201d2495e97ddedc26d0488f3fbb2c","first_seen":"2026-07-27T03:56:11.646831Z","last_seen":"2026-07-27T10:05:53.927586Z","times_seen":4,"resource_available":true,"data":"dHJ5eyFmdW5jdGlvbigpe3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sbj0obmV3IGUuRXJyb3IpLnN0YWNrO24mJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbbl09IjA0NTlkNzEzLTg4YzAtNDkxMS04OTEyLTUwZWMyNzE2MDY0MCIsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9InNlbnRyeS1kYmlkLTA0NTlkNzEzLTg4YzAtNDkxMS04OTEyLTUwZWMyNzE2MDY0MCIpfSgpfWNhdGNoKGUpe30oc2VsZi53ZWJwYWNrQ2h1bmtfTl9FPXNlbGYud2VicGFja0NodW5rX05fRXx8W10pLnB1c2goW1sxNjY4XSx7ODQxNzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBjcmVhdGVDYWNoZX19KTt2YXIgU3R5bGVTaGVldD1mdW5jdGlvbigpe2Z1bmN0aW9uIFN0eWxlU2hlZXQob3B0aW9ucyl7dmFyIF90aGlzPXRoaXM7dGhpcy5faW5zZXJ0VGFnPWZ1bmN0aW9uKHRhZyl7dmFyIGJlZm9yZTtiZWZvcmU9MD09PV90aGlzLnRhZ3MubGVuZ3RoP190aGlzLmluc2VydGlvblBvaW50P190aGlzLmluc2VydGlvblBvaW50Lm5leHRTaWJsaW5nOl90aGlzLnByZXBlbmQ/X3RoaXMuY29udGFpbmVyLmZpcnN0Q2hpbGQ6X3RoaXMuYmVmb3JlOl90aGlzLnRhZ3NbX3RoaXMudGFncy5sZW5ndGgtMV0ubmV4dFNpYmxpbmcsX3RoaXMuY29udGFpbmVyLmluc2VydEJlZm9yZSh0YWcsYmVmb3JlKSxfdGhpcy50YWdzLnB1c2godGFnKX0sdGhpcy5pc1NwZWVkeT12b2lkIDA9PT1vcHRpb25zLnNwZWVkeXx8b3B0aW9ucy5zcGVlZHksdGhpcy50YWdzPVtdLHRoaXMuY3RyPTAsdGhpcy5ub25jZT1vcHRpb25zLm5vbmNlLHRoaXMua2V5PW9wdGlvbnMua2V5LHRoaXMuY29udGFpbmVyPW9wdGlvbnMuY29udGFpbmVyLHRoaXMucHJlcGVuZD1vcHRpb25zLnByZXBlbmQsdGhpcy5pbnNlcnRpb25Qb2ludD1vcHRpb25zLmluc2VydGlvblBvaW50LHRoaXMuYmVmb3JlPW51bGx9dmFyIF9wcm90bz1TdHlsZVNoZWV0LnByb3RvdHlwZTtyZXR1cm4gX3Byb3RvLmh5ZHJhdGU9ZnVuY3Rpb24obm9kZXMpe25vZGVzLmZvckVhY2godGhpcy5faW5zZXJ0VGFnKX0sX3Byb3RvLmluc2VydD1mdW5jdGlvbihydWxlKXtpZih0aGlzLmN0ciUodGhpcy5pc1NwZWVkeT82NWUzOjEpPT0wKXt2YXIgdGFnO3RoaXMuX2luc2VydFRhZygoKHRhZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpKS5zZXRBdHRyaWJ1dGUoImRhdGEtZW1vdGlvbiIsdGhpcy5rZXkpLHZvaWQgMCE9PXRoaXMubm9uY2UmJnRhZy5zZXRBdHRyaWJ1dGUoIm5vbmNlIix0aGlzLm5vbmNlKSx0YWcuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpKSx0YWcuc2V0QXR0cmlidXRlKCJkYXRhLXMiLCIiKSx0YWcpKX12YXIgdGFnMT10aGlzLnRhZ3NbdGhpcy50YWdzLmxlbmd0aC0xXTtpZih0aGlzLmlzU3BlZWR5KXt2YXIgc2hlZXQ9ZnVuY3Rpb24odGFnKXtpZih0YWcuc2hlZXQpcmV0dXJuIHRhZy5zaGVldDtmb3IodmFyIGk9MDtpPGRvY3VtZW50LnN0eWxlU2hlZXRzLmxlbmd0aDtpKyspaWYoZG9jdW1lbnQuc3R5bGVTaGVldHNbaV0ub3duZXJOb2RlPT09dGFnKXJldHVybiBkb2N1bWVudC5zdHlsZVNoZWV0c1tpXX0odGFnMSk7dHJ5e3NoZWV0Lmluc2VydFJ1bGUocnVsZSxzaGVldC5jc3NSdWxlcy5sZW5ndGgpfWNhdGNoKGUpe319ZWxzZSB0YWcxLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHJ1bGUpKTt0aGlzLmN0cisrfSxfcHJvdG8uZmx1c2g9ZnVuY3Rpb24oKXt0aGlzLnRhZ3MuZm9yRWFjaChmdW5jdGlvbih0YWcpe3JldHVybiB0YWcucGFyZW50Tm9kZSYmdGFnLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGFnKX0pLHRoaXMudGFncz1bXSx0aGlzLmN0cj0wfSxTdHlsZVNoZWV0fSgpLGFicz1NYXRoLmFicyxVdGlsaXR5X2Zyb209U3RyaW5nLmZyb21DaGFyQ29kZSxVdGlsaXR5X2Fzc2lnbj1PYmplY3QuYXNzaWduO2Z1bmN0aW9uIFV0aWxpdHlfcmVwbGFjZSh2YWx1ZSxwYXR0ZXJuLHJlcGxhY2VtZW50KXtyZXR1cm4gdmFsdWUucmVwbGFjZShwYXR0ZXJuLHJlcGxhY2VtZW50KX1mdW5jdGlvbiBpbmRleG9mKHZhbHVlLHNlYXJjaCl7cmV0dXJuIHZhbHVlLmluZGV4T2Yoc2VhcmNoKX1mdW5jdGlvbiBVdGlsaXR5X2NoYXJhdCh2YWx1ZSxpbmRleCl7cmV0dXJuIDB8dmFsdWUuY2hhckNvZGVBdChpbmRleCl9ZnVuY3Rpb24gVXRpbGl0eV9zdWJzdHIodmFsdWUsYmVnaW4sZW5kKXtyZXR1cm4gdmFsdWUuc2xpY2UoYmVnaW4sZW5kKX1mdW5jdGlvbiBVdGlsaXR5X3N0cmxlbih2YWx1ZSl7cmV0dXJuIHZhbHVlLmxlbmd0aH1mdW5jdGlvbiBVdGlsaXR5X2FwcGVuZCh2YWx1ZSxhcnJheSl7cmV0dXJuIGFycmF5LnB1c2godmFsdWUpLHZhbHVlfXZhciBsaW5lPTEsY29sdW1uPTEsVG9rZW5pemVyX2xlbmd0aD0wLHBvc2l0aW9uPTAsY2hhcmFjdGVyPTAsY2hhcmFjdGVycz0iIjtmdW5jdGlvbiBub2RlKHZhbHVlLHJvb3QscGFyZW50LHR5cGUscHJvcHMsY2hpbGRyZW4sbGVuZ3RoKXtyZXR1cm57dmFsdWU6dmFsdWUscm9vdDpyb290LHBhcmVudDpwYXJlbnQsdHlwZTp0eXBlLHByb3BzOnByb3BzLGNoaWxkcmVuOmNoaWxkcmVuLGxpbmU6bGluZSxjb2x1bW46Y29sdW1uLGxlbmd0aDpsZW5ndGgscmV0dXJuOiIifX1mdW5jdGlvbiBUb2tlbml6ZXJfY29weShyb290LHByb3BzKXtyZXR1cm4gVXRpbGl0eV9hc3NpZ24obm9kZSgiIixudWxsLG51bGwsIiIsbnVsbCxudWxsLDApLHJvb3Qse2xlbmd0aDotcm9vdC5sZW5ndGh9LHByb3BzKX1mdW5jdGlvbiBuZXh0KCl7cmV0dXJuIGNoYXJhY3Rlcj1wb3NpdGlvbjxUb2tlbml6ZXJfbGVuZ3RoP1V0aWxpdHlfY2hhcmF0KGNoYXJhY3RlcnMscG9zaXRpb24rKyk6MCxjb2x1bW4rKywxMD09PWNoYXJhY3RlciYmKGNvbHVtbj0xLGxpbmUrKyksY2hhcmFjdGVyfWZ1bmN0aW9uIHBlZWsoKXtyZXR1cm4gVXRpbGl0eV9jaGFyYXQoY2hhcmFjdGVycyxwb3NpdGlvbil9ZnVuY3Rpb24gdG9rZW4odHlwZSl7c3dpdGNoKHR5cGUpe2Nhc2UgMDpjYXNlIDk6Y2FzZSAxMDpjYXNlIDEzOmNhc2UgMzI6cmV0dXJuIDU7Y2FzZSAzMzpjYXNlIDQzOmNhc2UgNDQ6Y2FzZSA0NzpjYXNlIDYyOmNhc2UgNjQ6Y2FzZSAxMjY6Y2FzZSA1OTpjYXNlIDEyMzpjYXNlIDEyNTpyZXR1cm4gNDtjYXNlIDU4OnJldHVybiAzO2Nhc2UgMzQ6Y2FzZSAzOTpjYXNlIDQwOmNhc2UgOTE6cmV0dXJuIDI7Y2FzZSA0MTpjYXNlIDkzOnJldHVybiAxfXJldHVybiAwfWZ1bmN0aW9uIGFsbG9jKHZhbHVlKXtyZXR1cm4gbGluZT1jb2x1bW49MSxUb2tlbml6ZXJfbGVuZ3RoPVV0aWxpdHlfc3RybGVuKGNoYXJhY3RlcnM9dmFsdWUpLHBvc2l0aW9uPTAsW119ZnVuY3Rpb24gZGVsaW1pdCh0eXBlKXt2YXIgYmVnaW4sZW5kO3JldHVybihiZWdpbj1wb3NpdGlvbi0xLGVuZD1mdW5jdGlvbiBkZWxpbWl0ZXIodHlwZSl7Zm9yKDtuZXh0KCk7KXN3aXRjaChjaGFyYWN0ZXIpe2Nhc2UgdHlwZTpyZXR1cm4gcG9zaXRpb247Y2FzZSAzNDpjYXNlIDM5OjM0IT09dHlwZSYmMzkhPT10eXBlJiZkZWxpbWl0ZXIoY2hhcmFjdGVyKTticmVhaztjYXNlIDQwOjQxPT09dHlwZSYmZGVsaW1pdGVyKHR5cGUpO2JyZWFrO2Nhc2UgOTI6bmV4dCgpfXJldHVybiBwb3NpdGlvbn0oOTE9PT10eXBlP3R5cGUrMjo0MD09PXR5cGU/dHlwZSsxOnR5cGUpLFV0aWxpdHlfc3Vic3RyKGNoYXJhY3RlcnMsYmVnaW4sZW5kKSkudHJpbSgpfXZhciBFbnVtX01TPSItbXMtIixFbnVtX01PWj0iLW1vei0iLEVudW1fV0VCS0lUPSItd2Via2l0LSIsQ09NTUVOVD0iY29tbSIsRW51bV9SVUxFU0VUPSJydWxlIixFbnVtX0RFQ0xBUkFUSU9OPSJkZWNsIixFbnVtX0tFWUZSQU1FUz0iQGtleWZyYW1lcyI7ZnVuY3Rpb24gU2VyaWFsaXplcl9zZXJpYWxpemUoY2hpbGRyZW4sY2FsbGJhY2spe2Zvcih2YXIgb3V0cHV0PSIiLGxlbmd0aD1jaGlsZHJlbi5sZW5ndGgsaT0wO2k8bGVuZ3RoO2krKylvdXRwdXQrPWNhbGxiYWNrKGNoaWxkcmVuW2ldLGksY2hpbGRyZW4sY2FsbGJhY2spfHwiIjtyZXR1cm4gb3V0cHV0fWZ1bmN0aW9uIHN0cmluZ2lmeShlbGVtZW50LGluZGV4LGNoaWxkcmVuLGNhbGxiYWNrKXtzd2l0Y2goZWxlbWVudC50eXBlKXtjYXNlIkBsYXllciI6aWYoZWxlbWVudC5jaGlsZHJlbi5sZW5ndGgpYnJlYWs7Y2FzZSJAaW1wb3J0IjpjYXNlIEVudW1fREVDTEFSQVRJT046cmV0dXJuIGVsZW1lbnQucmV0dXJuPWVsZW1lbnQucmV0dXJufHxlbGVtZW50LnZhbHVlO2Nhc2UgQ09NTUVOVDpyZXR1cm4iIjtjYXNlIEVudW1fS0VZRlJBTUVTOnJldHVybiBlbGVtZW50LnJldHVybj1lbGVtZW50LnZhbHVlKyJ7IitTZXJpYWxpemVyX3NlcmlhbGl6ZShlbGVtZW50LmNoaWxkcmVuLGNhbGxiYWNrKSsifSI7Y2FzZSBFbnVtX1JVTEVTRVQ6ZWxlbWVudC52YWx1ZT1lbGVtZW50LnByb3BzLmpvaW4oIiwiKX1yZXR1cm4gVXRpbGl0eV9zdHJsZW4oY2hpbGRyZW49U2VyaWFsaXplcl9zZXJpYWxpemUoZWxlbWVudC5jaGlsZHJlbixjYWxsYmFjaykpP2VsZW1lbnQucmV0dXJuPWVsZW1lbnQudmFsdWUrInsiK2NoaWxkcmVuKyJ9IjoiIn1mdW5jdGlvbiBydWxlc2V0KHZhbHVlLHJvb3QscGFyZW50LGluZGV4LG9mZnNldCxydWxlcyxwb2ludHMsdHlwZSxwcm9wcyxjaGlsZHJlbixsZW5ndGgpe2Zvcih2YXIgcG9zdD1vZmZzZXQtMSxydWxlPTA9PT1vZmZzZXQ/cnVsZXM6WyIiXSxzaXplPXJ1bGUubGVuZ3RoLGk9MCxqPTAsaz0wO2k8aW5kZXg7KytpKWZvcih2YXIgeD0wLHk9VXRpbGl0eV9zdWJzdHIodmFsdWUscG9zdCsxLHBvc3Q9YWJzKGo9cG9pbnRzW2ldKSksej12YWx1ZTt4PHNpemU7Kyt4KSh6PShqPjA/cnVsZVt4XSsiICIreTpVdGlsaXR5X3JlcGxhY2UoeSwvJlxmL2cscnVsZVt4XSkpLnRyaW0oKSkmJihwcm9wc1trKytdPXopO3JldHVybiBub2RlKHZhbHVlLHJvb3QscGFyZW50LDA9PT1vZmZzZXQ/RW51bV9SVUxFU0VUOnR5cGUscHJvcHMsY2hpbGRyZW4sbGVuZ3RoKX1mdW5jdGlvbiBkZWNsYXJhdGlvbih2YWx1ZSxyb290LHBhcmVudCxsZW5ndGgpe3JldHVybiBub2RlKHZhbHVlLHJvb3QscGFyZW50LEVudW1fREVDTEFSQVRJT04sVXRpbGl0eV9zdWJzdHIodmFsdWUsMCxsZW5ndGgpLFV0aWxpdHlfc3Vic3RyKHZhbHVlLGxlbmd0aCsxLC0xKSxsZW5ndGgpfXZhciBpZGVudGlmaWVyV2l0aFBvaW50VHJhY2tpbmc9ZnVuY3Rpb24oYmVnaW4scG9pbnRzLGluZGV4KXtmb3IodmFyIHByZXZpb3VzPTAsY2hhcmFjdGVyPTA7cHJldmlvdXM9Y2hhcmFjdGVyLGNoYXJhY3Rlcj1wZWVrKCksMzg9PT1wcmV2aW91cyYmMTI9PT1jaGFyYWN0ZXImJihwb2ludHNbaW5kZXhdPTEpLCF0b2tlbihjaGFyYWN0ZXIpOyluZXh0KCk7cmV0dXJuIFV0aWxpdHlfc3Vic3RyKGNoYXJhY3RlcnMsYmVnaW4scG9zaXRpb24pfSx0b1J1bGVzPWZ1bmN0aW9uKHBhcnNlZCxwb2ludHMpe3ZhciBpbmRleD0tMSxjaGFyYWN0ZXI9NDQ7ZG8gc3dpdGNoKHRva2VuKGNoYXJhY3Rlcikpe2Nhc2UgMDozOD09PWNoYXJhY3RlciYmMTI9PT1wZWVrKCkmJihwb2ludHNbaW5kZXhdPTEpLHBhcnNlZFtpbmRleF0rPWlkZW50aWZpZXJXaXRoUG9pbnRUcmFja2luZyhwb3NpdGlvbi0xLHBvaW50cyxpbmRleCk7YnJlYWs7Y2FzZSAyOnBhcnNlZFtpbmRleF0rPWRlbGltaXQoY2hhcmFjdGVyKTticmVhaztjYXNlIDQ6aWYoNDQ9PT1jaGFyYWN0ZXIpe3BhcnNlZFsrK2luZGV4XT01OD09PXBlZWsoKT8iJlxmIjoiIixwb2ludHNbaW5kZXhdPXBhcnNlZFtpbmRleF0ubGVuZ3RoO2JyZWFrfWRlZmF1bHQ6cGFyc2VkW2luZGV4XSs9VXRpbGl0eV9mcm9tKGNoYXJhY3Rlcil9d2hpbGUoY2hhcmFjdGVyPW5leHQoKSk7cmV0dXJuIHBhcnNlZH0sZ2V0UnVsZXM9ZnVuY3Rpb24odmFsdWUscG9pbnRzKXt2YXIgdmFsdWUxO3JldHVybiB2YWx1ZTE9dG9SdWxlcyhhbGxvYyh2YWx1ZSkscG9pbnRzKSxjaGFyYWN0ZXJzPSIiLHZhbHVlMX0sZml4ZWRFbGVtZW50cz1uZXcgV2Vha01hcCxjb21wYXQ9ZnVuY3Rpb24oZWxlbWVudCl7aWYoInJ1bGUiPT09ZWxlbWVudC50eXBlJiZlbGVtZW50LnBhcmVudCYmIShlbGVtZW50Lmxlbmd0aDwxKSl7Zm9yKHZhciB2YWx1ZT1lbGVtZW50LnZhbHVlLHBhcmVudD1lbGVtZW50LnBhcmVudCxpc0ltcGxpY2l0UnVsZT1lbGVtZW50LmNvbHVtbj09PXBhcmVudC5jb2x1bW4mJmVsZW1lbnQubGluZT09PXBhcmVudC5saW5lOyJydWxlIiE9PXBhcmVudC50eXBlOylpZighKHBhcmVudD1wYXJlbnQucGFyZW50KSlyZXR1cm47aWYoKDEhPT1lbGVtZW50LnByb3BzLmxlbmd0aHx8NTg9PT12YWx1ZS5jaGFyQ29kZUF0KDApfHxmaXhlZEVsZW1lbnRzLmdldChwYXJlbnQpKSYmIWlzSW1wbGljaXRSdWxlKXtmaXhlZEVsZW1lbnRzLnNldChlbGVtZW50LCEwKTtmb3IodmFyIHBvaW50cz1bXSxydWxlcz1nZXRSdWxlcyh2YWx1ZSxwb2ludHMpLHBhcmVudFJ1bGVzPXBhcmVudC5wcm9wcyxpPTAsaz0wO2k8cnVsZXMubGVuZ3RoO2krKylmb3IodmFyIGo9MDtqPHBhcmVudFJ1bGVzLmxlbmd0aDtqKyssaysrKWVsZW1lbnQucHJvcHNba109cG9pbnRzW2ldP3J1bGVzW2ldLnJlcGxhY2UoLyZcZi9nLHBhcmVudFJ1bGVzW2pdKTpwYXJlbnRSdWxlc1tqXSsiICIrcnVsZXNbaV19fX0scmVtb3ZlTGFiZWw9ZnVuY3Rpb24oZWxlbWVudCl7aWYoImRlY2wiPT09ZWxlbWVudC50eXBlKXt2YXIgdmFsdWU9ZWxlbWVudC52YWx1ZTsxMDg9PT12YWx1ZS5jaGFyQ29kZUF0KDApJiY5OD09PXZhbHVlLmNoYXJDb2RlQXQoMikmJihlbGVtZW50LnJldHVybj0iIixlbGVtZW50LnZhbHVlPSIiKX19LGRlZmF1bHRTdHlsaXNQbHVnaW5zPVtmdW5jdGlvbihlbGVtZW50LGluZGV4LGNoaWxkcmVuLGNhbGxiYWNrKXtpZihlbGVtZW50Lmxlbmd0aD4tMSYmIWVsZW1lbnQucmV0dXJuKXN3aXRjaChlbGVtZW50LnR5cGUpe2Nhc2UgRW51bV9ERUNMQVJBVElPTjplbGVtZW50LnJldHVybj1mdW5jdGlvbiBlbW90aW9uX2NhY2hlX2Jyb3dzZXJfZXNtX3ByZWZpeCh2YWx1ZSxsZW5ndGgpe3N3aXRjaCg0NV5VdGlsaXR5X2NoYXJhdCh2YWx1ZSwwKT8oKChsZW5ndGg8PDJeVXRpbGl0eV9jaGFyYXQodmFsdWUsMCkpPDwyXlV0aWxpdHlfY2hhcmF0KHZhbHVlLDEpKTw8Ml5VdGlsaXR5X2NoYXJhdCh2YWx1ZSwyKSk8PDJeVXRpbGl0eV9jaGFyYXQodmFsdWUsMyk6MCl7Y2FzZSA1MTAzOnJldHVybiBFbnVtX1dFQktJVCsicHJpbnQtIit2YWx1ZSt2YWx1ZTtjYXNlIDU3Mzc6Y2FzZSA0MjAxOmNhc2UgMzE3NzpjYXNlIDM0MzM6Y2FzZSAxNjQxOmNhc2UgNDQ1NzpjYXNlIDI5MjE6Y2FzZSA1NTcyOmNhc2UgNjM1NjpjYXNlIDU4NDQ6Y2FzZSAzMTkxOmNhc2UgNjY0NTpjYXNlIDMwMDU6Y2FzZSA2MzkxOmNhc2UgNTg3OTpjYXNlIDU2MjM6Y2FzZSA2MTM1OmNhc2UgNDU5OTpjYXNlIDQ4NTU6Y2FzZSA0MjE1OmNhc2UgNjM4OTpjYXNlIDUxMDk6Y2FzZSA1MzY1OmNhc2UgNTYyMTpjYXNlIDM4Mjk6cmV0dXJuIEVudW1fV0VCS0lUK3ZhbHVlK3ZhbHVlO2Nhc2UgNTM0OTpjYXNlIDQyNDY6Y2FzZSA0ODEwOmNhc2UgNjk2ODpjYXNlIDI3NTY6cmV0dXJuIEVudW1fV0VCS0lUK3ZhbHVlK0VudW1fTU9aK3ZhbHVlK0VudW1fTVMrdmFsdWUrdmFsdWU7Y2FzZSA2ODI4OmNhc2UgNDI2ODpyZXR1cm4gRW51bV9XRUJLSVQrdmFsdWUrRW51bV9NUyt2YWx1ZSt2YWx1ZTtjYXNlIDYxNjU6cmV0dXJuIEVudW1fV0VCS0lUK3ZhbHVlK0VudW1fTVMrImZsZXgtIit2YWx1ZSt2YWx1ZTtjYXNlIDUxODc6cmV0dXJuIEVudW1fV0VCS0lUK3ZhbHVlK1V0aWxpdHlfcmVwbGFjZSh2YWx1ZSwvKFx3KykuKyg6W15dKykvLEVudW1fV0VCS0lUKyJib3gtJDEkMiIrRW51bV9NUysiZmxleC0kMSQyIikrdmFsdWU7Y2FzZSA1NDQzOnJldHVybiBFbnVtX1dFQktJVCt2YWx1ZStFbnVtX01TKyJmbGV4LWl0ZW0tIitVdGlsaXR5X3JlcGxhY2UodmFsdWUsL2ZsZXgtfC1zZWxmLywiIikrdmFsdWU7Y2FzZSA0Njc1OnJldHVybiBFbnVtX1dFQktJVCt2YWx1ZStFbnVtX01TKyJmbGV4LWxpbmUtcGFjayIrVXRpbGl0eV9yZXBsYWNlKHZhbHVlLC9hbGlnbi1jb250ZW50fGZsZXgtfC1zZWxmLywiIikrdmFsdWU7Y2FzZSA1NTQ4OnJldHVybiBFbnVtX1dFQktJVCt2YWx1ZStFbnVtX01TK1V0aWxpdHlfcmVwbGFjZSh2YWx1ZSwic2hyaW5rIiwibmVnYXRpdmUiKSt2YWx1ZTtjYXNlIDUyOTI6cmV0dXJuIEVudW1fV0VCS0lUK3ZhbHVlK0VudW1fTVMrVXRpbGl0eV9yZXBsYWNlKHZhbHVlLCJiYXNpcyIsInByZWZlcnJlZC1zaXplIikrdmFsdWU7Y2FzZSA2MDYwOnJldHVybiBFbnVtX1dFQktJVCsiYm94LSIrVXRpbGl0eV9yZXBsYWNlKHZhbHVlLCItZ3JvdyIsIiIpK0VudW1fV0VCS0lUK3ZhbHVlK0VudW1fTVMrVXRpbGl0eV9yZXBsYWNlKHZhbHVlLCJncm93IiwicG9zaXRpdmUiKSt2YWx1ZTtjYXNlIDQ1NTQ6cmV0dXJuIEVudW1fV0VCS0lUK1V0aWxpdHlfcmVwbGFjZSh2YWx1ZSwvKFteLV0pKHRyYW5zZm9ybSkvZywiJDEiK0VudW1fV0VCS0lUKyIkMiIpK3ZhbHVlO2Nhc2UgNjE4NzpyZXR1cm4gVXRpbGl0eV9yZXBsYWNlKFV0aWxpdHlfcmVwbGFjZShVdGlsaXR5X3JlcGxhY2UodmFsdWUsLyh6b29tLXxncmFiKS8sRW51bV9XRUJLSVQrIiQxIiksLyhpbWFnZS1zZXQpLyxFbnVtX1dFQktJVCsiJDEiKSx2YWx1ZSwiIikrdmFsdWU7Y2FzZSA1NDk1OmNhc2UgMzk1OTpyZXR1cm4gVXRpbGl0eV9yZXBsYWNlKHZhbHVlLC8oaW1hZ2Utc2V0XChbXl0qKS8sRW51bV9XRUJLSVQrIiQxJGAkMSIpO2Nhc2UgNDk2ODpyZXR1cm4gVXRpbGl0eV9yZXBsYWNlKFV0aWxpdHlfcmVwbGFjZSh2YWx1ZSwvKC4rOikoZmxleC0pPyguKikvLEVudW1fV0VCS0lUKyJib3gtcGFjazokMyIrRW51bV9NUysiZmxleC1wYWNrOiQzIiksL3MuKy1iW147XSsvLCJqdXN0aWZ5IikrRW51bV9XRUJLSVQrdmFsdWUrdmFsdWU7Y2FzZSA0MDk1OmNhc2UgMzU4MzpjYXNlIDQwNjg6Y2FzZSAyNTMyOnJldHVybiBVdGlsaXR5X3JlcGxhY2UodmFsdWUsLyguKyktaW5saW5lKC4rKS8sRW51bV9XRUJLSVQrIiQxJDIiKSt2YWx1ZTtjYXNlIDgxMTY6Y2FzZSA3MDU5OmNhc2UgNTc1MzpjYXNlIDU1MzU6Y2FzZSA1NDQ1OmNhc2UgNTcwMTpjYXNlIDQ5MzM6Y2FzZSA0Njc3OmNhc2UgNTUzMzpjYXNlIDU3ODk6Y2FzZSA1MDIxOmNhc2UgNDc2NTppZihVdGlsaXR5X3N0cmxlbih2YWx1ZSktMS1sZW5ndGg+Nilzd2l0Y2goVXRpbGl0eV9jaGFyYXQodmFsdWUsbGVuZ3RoKzEpKXtjYXNlIDEwOTppZig0NSE9PVV0aWxpdHlfY2hhcmF0KHZhbHVlLGxlbmd0aCs0KSlicmVhaztjYXNlIDEwMjpyZXR1cm4gVXRpbGl0eV9yZXBsYWNlKHZhbHVlLC8oLis6KSguKyktKFteXSspLywiJDEiK0VudW1fV0VCS0lUKyIkMi0kMyQxIitFbnVtX01PWisoMTA4PT1VdGlsaXR5X2NoYXJhdCh2YWx1ZSxsZW5ndGgrMyk/IiQzIjoiJDItJDMiKSkrdmFsdWU7Y2FzZSAxMTU6cmV0dXJufmluZGV4b2YodmFsdWUsInN0cmV0Y2giKT9lbW90aW9uX2NhY2hlX2Jyb3dzZXJfZXNtX3ByZWZpeChVdGlsaXR5X3JlcGxhY2UodmFsdWUsInN0cmV0Y2giLCJmaWxsLWF2YWlsYWJsZSIpLGxlbmd0aCkrdmFsdWU6dmFsdWV9YnJlYWs7Y2FzZSA0OTQ5OmlmKDExNSE9PVV0aWxpdHlfY2hhcmF0KHZhbHVlLGxlbmd0aCsxKSlicmVhaztjYXNlIDY0NDQ6c3dpdGNoKFV0aWxpdHlfY2hhcmF0KHZhbHVlLFV0aWxpdHlfc3RybGVuKHZhbHVlKS0zLSh+aW5kZXhvZih2YWx1ZSwiIWltcG9ydGFudCIpJiYxMCkpKXtjYXNlIDEwNzpyZXR1cm4gVXRpbGl0eV9yZXBsYWNlKHZhbHVlLCI6IiwiOiIrRW51bV9XRUJLSVQpK3ZhbHVlO2Nhc2UgMTAxOnJldHVybiBVdGlsaXR5X3JlcGxhY2UodmFsdWUsLyguKzopKFteOyFdKykoO3whLispPy8sIiQxIitFbnVtX1dFQktJVCsoNDU9PT1VdGlsaXR5X2NoYXJhdCh2YWx1ZSwxNCk/ImlubGluZS0iOiIiKSsiYm94JDMkMSIrRW51bV9XRUJLSVQrIiQyJDMkMSIrRW51bV9NUysiJDJib3gkMyIpK3ZhbHVlfWJyZWFrO2Nhc2UgNTkzNjpzd2l0Y2goVXRpbGl0eV9jaGFyYXQodmFsdWUsbGVuZ3RoKzExKSl7Y2FzZSAxMTQ6cmV0dXJuIEVudW1fV0VCS0lUK3ZhbHVlK0VudW1fTVMrVXRpbGl0eV9yZXBsYWNlKHZhbHVlLC9bc3ZoXVx3Ky1bdGJscl17Mn0vLCJ0YiIpK3ZhbHVlO2Nhc2UgMTA4OnJldHVybiBFbnVtX1dFQktJVCt2YWx1ZStFbnVtX01TK1V0aWxpdHlfcmVwbGFjZSh2YWx1ZSwvW3N2aF1cdystW3RibHJdezJ9LywidGItcmwiKSt2YWx1ZTtjYXNlIDQ1OnJldHVybiBFbnVtX1dFQktJVCt2YWx1ZStFbnVtX01TK1V0aWxpdHlfcmVwbGFjZSh2YWx1ZSwvW3N2aF1cdystW3RibHJdezJ9LywibHIiKSt2YWx1ZX1yZXR1cm4gRW51bV9XRUJLSVQrdmFsdWUrRW51bV9NUyt2YWx1ZSt2YWx1ZX1yZXR1cm4gdmFsdWV9KGVsZW1lbnQudmFsdWUsZWxlbWVudC5sZW5ndGgpO2JyZWFrO2Nhc2UgRW51bV9LRVlGUkFNRVM6cmV0dXJuIFNlcmlhbGl6ZXJfc2VyaWFsaXplKFtUb2tlbml6ZXJfY29weShlbGVtZW50LHt2YWx1ZTpVdGlsaXR5X3JlcGxhY2UoZWxlbWVudC52YWx1ZSwiQCIsIkAiK0VudW1fV0VCS0lUKX0pXSxjYWxsYmFjayk7Y2FzZSBFbnVtX1JVTEVTRVQ6aWYoZWxlbWVudC5sZW5ndGgpcmV0dXJuIGVsZW1lbnQucHJvcHMubWFwKGZ1bmN0aW9uKHZhbHVlKXt2YXIgdmFsdWUxO3N3aXRjaCh2YWx1ZTE9dmFsdWUsKHZhbHVlMT0vKDo6cGxhY1x3K3w6cmVhZC1cdyspLy5leGVjKHZhbHVlMSkpP3ZhbHVlMVswXTp2YWx1ZTEpe2Nhc2UiOnJlYWQtb25seSI6Y2FzZSI6cmVhZC13cml0ZSI6cmV0dXJuIFNlcmlhbGl6ZXJfc2VyaWFsaXplKFtUb2tlbml6ZXJfY29weShlbGVtZW50LHtwcm9wczpbVXRpbGl0eV9yZXBsYWNlKHZhbHVlLC86KHJlYWQtXHcrKS8sIjoiK0VudW1fTU9aKyIkMSIpXX0pXSxjYWxsYmFjayk7Y2FzZSI6OnBsYWNlaG9sZGVyIjpyZXR1cm4gU2VyaWFsaXplcl9zZXJpYWxpemUoW1Rva2VuaXplcl9jb3B5KGVsZW1lbnQse3Byb3BzOltVdGlsaXR5X3JlcGxhY2UodmFsdWUsLzoocGxhY1x3KykvLCI6IitFbnVtX1dFQktJVCsiaW5wdXQtJDEiKV19KSxUb2tlbml6ZXJfY29weShlbGVtZW50LHtwcm9wczpbVXRpbGl0eV9yZXBsYWNlKHZhbHVlLC86KHBsYWNcdyspLywiOiIrRW51bV9NT1orIiQxIildfSksVG9rZW5pemVyX2NvcHkoZWxlbWVudCx7cHJvcHM6W1V0aWxpdHlfcmVwbGFjZSh2YWx1ZSwvOihwbGFjXHcrKS8sRW51bV9NUysiaW5wdXQtJDEiKV19KV0sY2FsbGJhY2spfXJldHVybiIifSkuam9pbigiIil9fV0sY3JlYXRlQ2FjaGU9ZnVuY3Rpb24ob3B0aW9ucyl7dmFyIGNvbGxlY3Rpb24sbGVuZ3RoLGNhbGxiYWNrLGNvbnRhaW5lcixjdXJyZW50U2hlZXQsa2V5PW9wdGlvbnMua2V5O2lmKCJjc3MiPT09a2V5KXt2YXIgc3NyU3R5bGVzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlW2RhdGEtZW1vdGlvbl06bm90KFtkYXRhLXNdKSIpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoc3NyU3R5bGVzLGZ1bmN0aW9uKG5vZGUpey0xIT09bm9kZS5nZXRBdHRyaWJ1dGUoImRhdGEtZW1vdGlvbiIpLmluZGV4T2YoIiAiKSYmKGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobm9kZSksbm9kZS5zZXRBdHRyaWJ1dGUoImRhdGEtcyIsIiIpKX0pfXZhciBzdHlsaXNQbHVnaW5zPW9wdGlvbnMuc3R5bGlzUGx1Z2luc3x8ZGVmYXVsdFN0eWxpc1BsdWdpbnMsaW5zZXJ0ZWQ9e30sbm9kZXNUb0h5ZHJhdGU9W107Y29udGFpbmVyPW9wdGlvbnMuY29udGFpbmVyfHxkb2N1bWVudC5oZWFkLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc3R5bGVbZGF0YS1lbW90aW9uXj0iJytrZXkrJyAiXScpLGZ1bmN0aW9uKG5vZGUpe2Zvcih2YXIgYXR0cmliPW5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhLWVtb3Rpb24iKS5zcGxpdCgiICIpLGk9MTtpPGF0dHJpYi5sZW5ndGg7aSsrKWluc2VydGVkW2F0dHJpYltpXV09ITA7bm9kZXNUb0h5ZHJhdGUucHVzaChub2RlKX0pO3ZhciBzZXJpYWxpemVyPShsZW5ndGg9KGNvbGxlY3Rpb249W2NvbXBhdCxyZW1vdmVMYWJlbF0uY29uY2F0KHN0eWxpc1BsdWdpbnMsW3N0cmluZ2lmeSwoY2FsbGJhY2s9ZnVuY3Rpb24ocnVsZSl7Y3VycmVudFNoZWV0Lmluc2VydChydWxlKX0sZnVuY3Rpb24oZWxlbWVudCl7IWVsZW1lbnQucm9vdCYmKGVsZW1lbnQ9ZWxlbWVudC5yZXR1cm4pJiZjYWxsYmFjayhlbGVtZW50KX0pXSkpLmxlbmd0aCxmdW5jdGlvbihlbGVtZW50LGluZGV4LGNoaWxkcmVuLGNhbGxiYWNrKXtmb3IodmFyIG91dHB1dD0iIixpPTA7aTxsZW5ndGg7aSsrKW91dHB1dCs9Y29sbGVjdGlvbltpXShlbGVtZW50LGluZGV4LGNoaWxkcmVuLGNhbGxiYWNrKXx8IiI7cmV0dXJuIG91dHB1dH0pLHN0eWxpcz1mdW5jdGlvbihzdHlsZXMpe3ZhciB2YWx1ZSx2YWx1ZTE7cmV0dXJuIFNlcmlhbGl6ZXJfc2VyaWFsaXplKCh2YWx1ZTE9ZnVuY3Rpb24gcGFyc2UodmFsdWUscm9vdCxwYXJlbnQscnVsZSxydWxlcyxydWxlc2V0cyxwc2V1ZG8scG9pbnRzLGRlY2xhcmF0aW9ucyl7Zm9yKHZhciB2YWx1ZTEsaW5kZXg9MCxvZmZzZXQ9MCxsZW5ndGg9cHNldWRvLGF0cnVsZT0wLHByb3BlcnR5PTAscHJldmlvdXM9MCx2YXJpYWJsZT0xLHNjYW5uaW5nPTEsYW1wZXJzYW5kPTEsY2hhcmFjdGVyMT0wLHR5cGU9IiIscHJvcHM9cnVsZXMsY2hpbGRyZW49cnVsZXNldHMscmVmZXJlbmNlPXJ1bGUsY2hhcmFjdGVyczE9dHlwZTtzY2FubmluZzspc3dpdGNoKHByZXZpb3VzPWNoYXJhY3RlcjEsY2hhcmFjdGVyMT1uZXh0KCkpe2Nhc2UgNDA6aWYoMTA4IT1wcmV2aW91cyYmNTg9PVV0aWxpdHlfY2hhcmF0KGNoYXJhY3RlcnMxLGxlbmd0aC0xKSl7LTEhPWluZGV4b2YoY2hhcmFjdGVyczErPVV0aWxpdHlfcmVwbGFjZShkZWxpbWl0KGNoYXJhY3RlcjEpLCImIiwiJlxmIiksIiZcZiIpJiYoYW1wZXJzYW5kPS0xKTticmVha31jYXNlIDM0OmNhc2UgMzk6Y2FzZSA5MTpjaGFyYWN0ZXJzMSs9ZGVsaW1pdChjaGFyYWN0ZXIxKTticmVhaztjYXNlIDk6Y2FzZSAxMDpjYXNlIDEzOmNhc2UgMzI6Y2hhcmFjdGVyczErPWZ1bmN0aW9uKHR5cGUpe2Zvcig7Y2hhcmFjdGVyPXBlZWsoKTspaWYoY2hhcmFjdGVyPDMzKW5leHQoKTtlbHNlIGJyZWFrO3JldHVybiB0b2tlbih0eXBlKT4yfHx0b2tlbihjaGFyYWN0ZXIpPjM/IiI6IiAifShwcmV2aW91cyk7YnJlYWs7Y2FzZSA5MjpjaGFyYWN0ZXJzMSs9ZnVuY3Rpb24oaW5kZXgsY291bnQpe2Zvcih2YXIgZW5kOy0tY291bnQmJm5leHQoKSYmIShjaGFyYWN0ZXI8NDgpJiYhKGNoYXJhY3Rlcj4xMDIpJiYoIShjaGFyYWN0ZXI+NTcpfHwhKGNoYXJhY3Rlcjw2NSkpJiYoIShjaGFyYWN0ZXI+NzApfHwhKGNoYXJhY3Rlcjw5NykpOyk7cmV0dXJuIGVuZD1wb3NpdGlvbisoY291bnQ8NiYmMzI9PXBlZWsoKSYmMzI9PW5leHQoKSksVXRpbGl0eV9zdWJzdHIoY2hhcmFjdGVycyxpbmRleCxlbmQpfShwb3NpdGlvbi0xLDcpO2NvbnRpbnVlO2Nhc2UgNDc6c3dpdGNoKHBlZWsoKSl7Y2FzZSA0MjpjYXNlIDQ3OlV0aWxpdHlfYXBwZW5kKG5vZGUodmFsdWUxPWZ1bmN0aW9uKHR5cGUsaW5kZXgpe2Zvcig7bmV4dCgpOylpZih0eXBlK2NoYXJhY3Rlcj09PTU3KWJyZWFrO2Vsc2UgaWYodHlwZStjaGFyYWN0ZXI9PT04NCYmNDc9PT1wZWVrKCkpYnJlYWs7cmV0dXJuIi8qIitVdGlsaXR5X3N1YnN0cihjaGFyYWN0ZXJzLGluZGV4LHBvc2l0aW9uLTEpKyIqIitVdGlsaXR5X2Zyb20oNDc9PT10eXBlP3R5cGU6bmV4dCgpKX0obmV4dCgpLHBvc2l0aW9uKSxyb290LHBhcmVudCxDT01NRU5ULFV0aWxpdHlfZnJvbShjaGFyYWN0ZXIpLFV0aWxpdHlfc3Vic3RyKHZhbHVlMSwyLC0yKSwwKSxkZWNsYXJhdGlvbnMpO2JyZWFrO2RlZmF1bHQ6Y2hhcmFjdGVyczErPSIvIn1icmVhaztjYXNlIDEyMyp2YXJpYWJsZTpwb2ludHNbaW5kZXgrK109VXRpbGl0eV9zdHJsZW4oY2hhcmFjdGVyczEpKmFtcGVyc2FuZDtjYXNlIDEyNSp2YXJpYWJsZTpjYXNlIDU5OmNhc2UgMDpzd2l0Y2goY2hhcmFjdGVyMSl7Y2FzZSAwOmNhc2UgMTI1OnNjYW5uaW5nPTA7Y2FzZSA1OStvZmZzZXQ6LTE9PWFtcGVyc2FuZCYmKGNoYXJhY3RlcnMxPVV0aWxpdHlfcmVwbGFjZShjaGFyYWN0ZXJzMSwvXGYvZywiIikpLHByb3BlcnR5PjAmJlV0aWxpdHlfc3RybGVuKGNoYXJhY3RlcnMxKS1sZW5ndGgmJlV0aWxpdHlfYXBwZW5kKHByb3BlcnR5PjMyP2RlY2xhcmF0aW9uKGNoYXJhY3RlcnMxKyI7IixydWxlLHBhcmVudCxsZW5ndGgtMSk6ZGVjbGFyYXRpb24oVXRpbGl0eV9yZXBsYWNlKGNoYXJhY3RlcnMxLCIgIiwiIikrIjsiLHJ1bGUscGFyZW50LGxlbmd0aC0yKSxkZWNsYXJhdGlvbnMpO2JyZWFrO2Nhc2UgNTk6Y2hhcmFjdGVyczErPSI7IjtkZWZhdWx0OmlmKFV0aWxpdHlfYXBwZW5kKHJlZmVyZW5jZT1ydWxlc2V0KGNoYXJhY3RlcnMxLHJvb3QscGFyZW50LGluZGV4LG9mZnNldCxydWxlcyxwb2ludHMsdHlwZSxwcm9wcz1bXSxjaGlsZHJlbj1bXSxsZW5ndGgpLHJ1bGVzZXRzKSwxMjM9PT1jaGFyYWN0ZXIxKXtpZigwPT09b2Zmc2V0KXBhcnNlKGNoYXJhY3RlcnMxLHJvb3QscmVmZXJlbmNlLHJlZmVyZW5jZSxwcm9wcyxydWxlc2V0cyxsZW5ndGgscG9pbnRzLGNoaWxkcmVuKTtlbHNlIHN3aXRjaCg5OT09PWF0cnVsZSYmMTEwPT09VXRpbGl0eV9jaGFyYXQoY2hhcmFjdGVyczEsMyk/MTAwOmF0cnVsZSl7Y2FzZSAxMDA6Y2FzZSAxMDg6Y2FzZSAxMDk6Y2FzZSAxMTU6cGFyc2UodmFsdWUscmVmZXJlbmNlLHJlZmVyZW5jZSxydWxlJiZVdGlsaXR5X2FwcGVuZChydWxlc2V0KHZhbHVlLHJlZmVyZW5jZSxyZWZlcmVuY2UsMCwwLHJ1bGVzLHBvaW50cyx0eXBlLHJ1bGVzLHByb3BzPVtdLGxlbmd0aCksY2hpbGRyZW4pLHJ1bGVzLGNoaWxkcmVuLGxlbmd0aCxwb2ludHMscnVsZT9wcm9wczpjaGlsZHJlbik7YnJlYWs7ZGVmYXVsdDpwYXJzZShjaGFyYWN0ZXJzMSxyZWZlcmVuY2UscmVmZXJlbmNlLHJlZmVyZW5jZSxbIiJdLGNoaWxkcmVuLDAscG9pbnRzLGNoaWxkcmVuKX19fWluZGV4PW9mZnNldD1wcm9wZXJ0eT0wLHZhcmlhYmxlPWFtcGVyc2FuZD0xLHR5cGU9Y2hhcmFjdGVyczE9IiIsbGVuZ3RoPXBzZXVkbzticmVhaztjYXNlIDU4Omxlbmd0aD0xK1V0aWxpdHlfc3RybGVuKGNoYXJhY3RlcnMxKSxwcm9wZXJ0eT1wcmV2aW91cztkZWZhdWx0OmlmKHZhcmlhYmxlPDEpe2lmKDEyMz09Y2hhcmFjdGVyMSktLXZhcmlhYmxlO2Vsc2UgaWYoMTI1PT1jaGFyYWN0ZXIxJiYwPT12YXJpYWJsZSsrJiYxMjU9PShjaGFyYWN0ZXI9cG9zaXRpb24+MD9VdGlsaXR5X2NoYXJhdChjaGFyYWN0ZXJzLC0tcG9zaXRpb24pOjAsY29sdW1uLS0sMTA9PT1jaGFyYWN0ZXImJihjb2x1bW49MSxsaW5lLS0pLGNoYXJhY3RlcikpY29udGludWV9c3dpdGNoKGNoYXJhY3RlcnMxKz1VdGlsaXR5X2Zyb20oY2hhcmFjdGVyMSksY2hhcmFjdGVyMSp2YXJpYWJsZSl7Y2FzZSAzODphbXBlcnNhbmQ9b2Zmc2V0PjA/MTooY2hhcmFjdGVyczErPSJcZiIsLTEpO2JyZWFrO2Nhc2UgNDQ6cG9pbnRzW2luZGV4KytdPShVdGlsaXR5X3N0cmxlbihjaGFyYWN0ZXJzMSktMSkqYW1wZXJzYW5kLGFtcGVyc2FuZD0xO2JyZWFrO2Nhc2UgNjQ6NDU9PT1wZWVrKCkmJihjaGFyYWN0ZXJzMSs9ZGVsaW1pdChuZXh0KCkpKSxhdHJ1bGU9cGVlaygpLG9mZnNldD1sZW5ndGg9VXRpbGl0eV9zdHJsZW4odHlwZT1jaGFyYWN0ZXJzMSs9ZnVuY3Rpb24oaW5kZXgpe2Zvcig7IXRva2VuKHBlZWsoKSk7KW5leHQoKTtyZXR1cm4gVXRpbGl0eV9zdWJzdHIoY2hhcmFjdGVycyxpbmRleCxwb3NpdGlvbil9KHBvc2l0aW9uKSksY2hhcmFjdGVyMSsrO2JyZWFrO2Nhc2UgNDU6NDU9PT1wcmV2aW91cyYmMj09VXRpbGl0eV9zdHJsZW4oY2hhcmFjdGVyczEpJiYodmFyaWFibGU9MCl9fXJldHVybiBydWxlc2V0c30oIiIsbnVsbCxudWxsLG51bGwsWyIiXSx2YWx1ZT1hbGxvYyh2YWx1ZT1zdHlsZXMpLDAsWzBdLHZhbHVlKSxjaGFyYWN0ZXJzPSIiLHZhbHVlMSksc2VyaWFsaXplcil9LGNhY2hlPXtrZXk6a2V5LHNoZWV0Om5ldyBTdHlsZVNoZWV0KHtrZXk6a2V5LGNvbnRhaW5lcjpjb250YWluZXIsbm9uY2U6b3B0aW9ucy5ub25jZSxzcGVlZHk6b3B0aW9ucy5zcGVlZHkscHJlcGVuZDpvcHRpb25zLnByZXBlbmQsaW5zZXJ0aW9uUG9pbnQ6b3B0aW9ucy5pbnNlcnRpb25Qb2ludH0pLG5vbmNlOm9wdGlvbnMubm9uY2UsaW5zZXJ0ZWQ6aW5zZXJ0ZWQscmVnaXN0ZXJlZDp7fSxpbnNlcnQ6ZnVuY3Rpb24oc2VsZWN0b3Isc2VyaWFsaXplZCxzaGVldCxzaG91bGRDYWNoZSl7Y3VycmVudFNoZWV0PXNoZWV0LHN0eWxpcyhzZWxlY3Rvcj9zZWxlY3RvcisieyIrc2VyaWFsaXplZC5zdHlsZXMrIn0iOnNlcmlhbGl6ZWQuc3R5bGVzKSxzaG91bGRDYWNoZSYmKGNhY2hlLmluc2VydGVkW3NlcmlhbGl6ZWQubmFtZV09ITApfX07cmV0dXJuIGNhY2hlLnNoZWV0Lmh5ZHJhdGUobm9kZXNUb0h5ZHJhdGUpLGNhY2hlfX0sNjI1MDY6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19leHBvcnRzX18uWj1mdW5jdGlvbihzdHIpe2Zvcih2YXIgayxoPTAsaT0wLGxlbj1zdHIubGVuZ3RoO2xlbj49NDsrK2ksbGVuLT00KWs9KDY1NTM1JihrPTI1NSZzdHIuY2hhckNvZGVBdChpKXwoMjU1JnN0ci5jaGFyQ29kZUF0KCsraSkpPDw4fCgyNTUmc3RyLmNoYXJDb2RlQXQoKytpKSk8PDE2fCgyNTUmc3RyLmNoYXJDb2RlQXQoKytpKSk8PDI0KSkqMTU0MDQ4MzQ3NysoKGs+Pj4xNikqNTk3OTc8PDE2KSxrXj1rPj4+MjQsaD0oNjU1MzUmaykqMTU0MDQ4MzQ3NysoKGs+Pj4xNikqNTk3OTc8PDE2KV4oNjU1MzUmaCkqMTU0MDQ4MzQ3NysoKGg+Pj4xNikqNTk3OTc8PDE2KTtzd2l0Y2gobGVuKXtjYXNlIDM6aF49KDI1NSZzdHIuY2hhckNvZGVBdChpKzIpKTw8MTY7Y2FzZSAyOmhePSgyNTUmc3RyLmNoYXJDb2RlQXQoaSsxKSk8PDg7Y2FzZSAxOmhePTI1NSZzdHIuY2hhckNvZGVBdChpKSxoPSg2NTUzNSZoKSoxNTQwNDgzNDc3KygoaD4+PjE2KSo1OTc5Nzw8MTYpfXJldHVybiBoXj1oPj4+MTMsKCgoaD0oNjU1MzUmaCkqMTU0MDQ4MzQ3NysoKGg+Pj4xNikqNTk3OTc8PDE2KSleaD4+PjE1KT4+PjApLnRvU3RyaW5nKDM2KX19LDQ1MDQyOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG1lbW9pemUoZm4pe3ZhciBjYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBmdW5jdGlvbihhcmcpe3JldHVybiB2b2lkIDA9PT1jYWNoZVthcmddJiYoY2FjaGVbYXJnXT1mbihhcmcpKSxjYWNoZVthcmddfX1fX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBtZW1vaXplfX0pfSw5NzU3OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtFOmZ1bmN0aW9uKCl7cmV0dXJuIEVtb3Rpb24kMX0sVDpmdW5jdGlvbigpe3JldHVybiBUaGVtZUNvbnRleHR9LGE6ZnVuY3Rpb24oKXtyZXR1cm4gVGhlbWVQcm92aWRlcn0sYzpmdW5jdGlvbigpe3JldHVybiBjcmVhdGVFbW90aW9uUHJvcHN9LGg6ZnVuY3Rpb24oKXtyZXR1cm4gZW1vdGlvbl9lbGVtZW50X2MzOTYxN2Q4X2Jyb3dzZXJfZXNtX2hhc093blByb3BlcnR5fSxpOmZ1bmN0aW9uKCl7cmV0dXJuIGlzQnJvd3Nlcn0sdzpmdW5jdGlvbigpe3JldHVybiB3aXRoRW1vdGlvbkNhY2hlfX0pO3ZhciByZWFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxlbW90aW9uX2NhY2hlX2Jyb3dzZXJfZXNtPV9fd2VicGFja19yZXF1aXJlX18oODQxNyk7ZnVuY3Rpb24gZXh0ZW5kc19leHRlbmRzKCl7cmV0dXJuKGV4dGVuZHNfZXh0ZW5kcz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHRhcmdldCl7Zm9yKHZhciBpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKyl7dmFyIHNvdXJjZT1hcmd1bWVudHNbaV07Zm9yKHZhciBrZXkgaW4gc291cmNlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2Usa2V5KSYmKHRhcmdldFtrZXldPXNvdXJjZVtrZXldKX1yZXR1cm4gdGFyZ2V0fSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfXZhciB3ZWFrTWVtb2l6ZT1mdW5jdGlvbihmdW5jKXt2YXIgY2FjaGU9bmV3IFdlYWtNYXA7cmV0dXJuIGZ1bmN0aW9uKGFyZyl7aWYoY2FjaGUuaGFzKGFyZykpcmV0dXJuIGNhY2hlLmdldChhcmcpO3ZhciByZXQ9ZnVuYyhhcmcpO3JldHVybiBjYWNoZS5zZXQoYXJnLHJldCkscmV0fX0sZW1vdGlvbl91dGlsc19icm93c2VyX2VzbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDcwNDQ0KSxlbW90aW9uX3NlcmlhbGl6ZV9icm93c2VyX2VzbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDUwNjQ5KSxlbW90aW9uX3VzZV9pbnNlcnRpb25fZWZmZWN0X3dpdGhfZmFsbGJhY2tzX2Jyb3dzZXJfZXNtPV9fd2VicGFja19yZXF1aXJlX18oMjcyNzgpLGlzQnJvd3Nlcj0hMCxlbW90aW9uX2VsZW1lbnRfYzM5NjE3ZDhfYnJvd3Nlcl9lc21faGFzT3duUHJvcGVydHk9e30uaGFzT3duUHJvcGVydHksRW1vdGlvbkNhY2hlQ29udGV4dD1yZWFjdC5jcmVhdGVDb250ZXh0KCJ1bmRlZmluZWQiIT10eXBlb2YgSFRNTEVsZW1lbnQ/KDAsZW1vdGlvbl9jYWNoZV9icm93c2VyX2VzbS5aKSh7a2V5OiJjc3MifSk6bnVsbCk7RW1vdGlvbkNhY2hlQ29udGV4dC5Qcm92aWRlcjt2YXIgd2l0aEVtb3Rpb25DYWNoZT1mdW5jdGlvbihmdW5jKXtyZXR1cm4oMCxyZWFjdC5mb3J3YXJkUmVmKShmdW5jdGlvbihwcm9wcyxyZWYpe3JldHVybiBmdW5jKHByb3BzLCgwLHJlYWN0LnVzZUNvbnRleHQpKEVtb3Rpb25DYWNoZUNvbnRleHQpLHJlZil9KX07aXNCcm93c2VyfHwod2l0aEVtb3Rpb25DYWNoZT1mdW5jdGlvbihmdW5jKXtyZXR1cm4gZnVuY3Rpb24ocHJvcHMpe3ZhciBjYWNoZT0oMCxyZWFjdC51c2VDb250ZXh0KShFbW90aW9uQ2FjaGVDb250ZXh0KTtyZXR1cm4gbnVsbD09PWNhY2hlPyhjYWNoZT0oMCxlbW90aW9uX2NhY2hlX2Jyb3dzZXJfZXNtLlopKHtrZXk6ImNzcyJ9KSxyZWFjdC5jcmVhdGVFbGVtZW50KEVtb3Rpb25DYWNoZUNvbnRleHQuUHJvdmlkZXIse3ZhbHVlOmNhY2hlfSxmdW5jKHByb3BzLGNhY2hlKSkpOmZ1bmMocHJvcHMsY2FjaGUpfX0pO3ZhciBUaGVtZUNvbnRleHQ9cmVhY3QuY3JlYXRlQ29udGV4dCh7fSksY3JlYXRlQ2FjaGVXaXRoVGhlbWU9d2Vha01lbW9pemUoZnVuY3Rpb24ob3V0ZXJUaGVtZSl7cmV0dXJuIHdlYWtNZW1vaXplKGZ1bmN0aW9uKHRoZW1lKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdGhlbWU/dGhlbWUob3V0ZXJUaGVtZSk6ZXh0ZW5kc19leHRlbmRzKHt9LG91dGVyVGhlbWUsdGhlbWUpfSl9KSxUaGVtZVByb3ZpZGVyPWZ1bmN0aW9uKHByb3BzKXt2YXIgdGhlbWU9cmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO3JldHVybiBwcm9wcy50aGVtZSE9PXRoZW1lJiYodGhlbWU9Y3JlYXRlQ2FjaGVXaXRoVGhlbWUodGhlbWUpKHByb3BzLnRoZW1lKSkscmVhY3QuY3JlYXRlRWxlbWVudChUaGVtZUNvbnRleHQuUHJvdmlkZXIse3ZhbHVlOnRoZW1lfSxwcm9wcy5jaGlsZHJlbil9LHR5cGVQcm9wTmFtZT0iX19FTU9USU9OX1RZUEVfUExFQVNFX0RPX05PVF9VU0VfXyIsY3JlYXRlRW1vdGlvblByb3BzPWZ1bmN0aW9uKHR5cGUscHJvcHMpe3ZhciBuZXdQcm9wcz17fTtmb3IodmFyIGtleSBpbiBwcm9wcyllbW90aW9uX2VsZW1lbnRfYzM5NjE3ZDhfYnJvd3Nlcl9lc21faGFzT3duUHJvcGVydHkuY2FsbChwcm9wcyxrZXkpJiYobmV3UHJvcHNba2V5XT1wcm9wc1trZXldKTtyZXR1cm4gbmV3UHJvcHNbdHlwZVByb3BOYW1lXT10eXBlLG5ld1Byb3BzfSxJbnNlcnRpb249ZnVuY3Rpb24oX3JlZil7dmFyIGNhY2hlPV9yZWYuY2FjaGUsc2VyaWFsaXplZD1fcmVmLnNlcmlhbGl6ZWQsaXNTdHJpbmdUYWc9X3JlZi5pc1N0cmluZ1RhZztyZXR1cm4oMCxlbW90aW9uX3V0aWxzX2Jyb3dzZXJfZXNtLmhDKShjYWNoZSxzZXJpYWxpemVkLGlzU3RyaW5nVGFnKSwoMCxlbW90aW9uX3VzZV9pbnNlcnRpb25fZWZmZWN0X3dpdGhfZmFsbGJhY2tzX2Jyb3dzZXJfZXNtLkwpKGZ1bmN0aW9uKCl7cmV0dXJuKDAsZW1vdGlvbl91dGlsc19icm93c2VyX2VzbS5NeSkoY2FjaGUsc2VyaWFsaXplZCxpc1N0cmluZ1RhZyl9KSxudWxsfSxFbW90aW9uJDE9d2l0aEVtb3Rpb25DYWNoZShmdW5jdGlvbihwcm9wcyxjYWNoZSxyZWYpe3ZhciBjc3NQcm9wPXByb3BzLmNzczsic3RyaW5nIj09dHlwZW9mIGNzc1Byb3AmJnZvaWQgMCE9PWNhY2hlLnJlZ2lzdGVyZWRbY3NzUHJvcF0mJihjc3NQcm9wPWNhY2hlLnJlZ2lzdGVyZWRbY3NzUHJvcF0pO3ZhciBXcmFwcGVkQ29tcG9uZW50PXByb3BzW3R5cGVQcm9wTmFtZV0scmVnaXN0ZXJlZFN0eWxlcz1bY3NzUHJvcF0sY2xhc3NOYW1lPSIiOyJzdHJpbmciPT10eXBlb2YgcHJvcHMuY2xhc3NOYW1lP2NsYXNzTmFtZT0oMCxlbW90aW9uX3V0aWxzX2Jyb3dzZXJfZXNtLmZwKShjYWNoZS5yZWdpc3RlcmVkLHJlZ2lzdGVyZWRTdHlsZXMscHJvcHMuY2xhc3NOYW1lKTpudWxsIT1wcm9wcy5jbGFzc05hbWUmJihjbGFzc05hbWU9cHJvcHMuY2xhc3NOYW1lKyIgIik7dmFyIHNlcmlhbGl6ZWQ9KDAsZW1vdGlvbl9zZXJpYWxpemVfYnJvd3Nlcl9lc20uTykocmVnaXN0ZXJlZFN0eWxlcyx2b2lkIDAscmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpKTtjbGFzc05hbWUrPWNhY2hlLmtleSsiLSIrc2VyaWFsaXplZC5uYW1lO3ZhciBuZXdQcm9wcz17fTtmb3IodmFyIGtleSBpbiBwcm9wcyllbW90aW9uX2VsZW1lbnRfYzM5NjE3ZDhfYnJvd3Nlcl9lc21faGFzT3duUHJvcGVydHkuY2FsbChwcm9wcyxrZXkpJiYiY3NzIiE9PWtleSYma2V5IT09dHlwZVByb3BOYW1lJiYobmV3UHJvcHNba2V5XT1wcm9wc1trZXldKTtyZXR1cm4gbmV3UHJvcHMucmVmPXJlZixuZXdQcm9wcy5jbGFzc05hbWU9Y2xhc3NOYW1lLHJlYWN0LmNyZWF0ZUVsZW1lbnQocmVhY3QuRnJhZ21lbnQsbnVsbCxyZWFjdC5jcmVhdGVFbGVtZW50KEluc2VydGlvbix7Y2FjaGU6Y2FjaGUsc2VyaWFsaXplZDpzZXJpYWxpemVkLGlzU3RyaW5nVGFnOiJzdHJpbmciPT10eXBlb2YgV3JhcHBlZENvbXBvbmVudH0pLHJlYWN0LmNyZWF0ZUVsZW1lbnQoV3JhcHBlZENvbXBvbmVudCxuZXdQcm9wcykpfSl9LDM1OTQ0OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtCWDpmdW5jdGlvbigpe3JldHVybiBqc3hzfSxIWTpmdW5jdGlvbigpe3JldHVybiBGcmFnbWVudH0sdFo6ZnVuY3Rpb24oKXtyZXR1cm4ganN4fX0pO3ZhciByZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oODU4OTMpLF9kaXN0X2Vtb3Rpb25fZWxlbWVudF9jMzk2MTdkOF9icm93c2VyX2VzbV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fPV9fd2VicGFja19yZXF1aXJlX18oOTc1Nyk7X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksX193ZWJwYWNrX3JlcXVpcmVfXyg4NDE3KSxfX3dlYnBhY2tfcmVxdWlyZV9fKDg2NzkpLF9fd2VicGFja19yZXF1aXJlX18oNTA2NDkpLF9fd2VicGFja19yZXF1aXJlX18oMjcyNzgpO3ZhciBGcmFnbWVudD1yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkZyYWdtZW50O2Z1bmN0aW9uIGpzeCh0eXBlLHByb3BzLGtleSl7cmV0dXJuIF9kaXN0X2Vtb3Rpb25fZWxlbWVudF9jMzk2MTdkOF9icm93c2VyX2VzbV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLmguY2FsbChwcm9wcywiY3NzIik/cmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5qc3goX2Rpc3RfZW1vdGlvbl9lbGVtZW50X2MzOTYxN2Q4X2Jyb3dzZXJfZXNtX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uRSwoMCxfZGlzdF9lbW90aW9uX2VsZW1lbnRfYzM5NjE3ZDhfYnJvd3Nlcl9lc21fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5jKSh0eXBlLHByb3BzKSxrZXkpOnJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4KHR5cGUscHJvcHMsa2V5KX1mdW5jdGlvbiBqc3hzKHR5cGUscHJvcHMsa2V5KXtyZXR1cm4gX2Rpc3RfZW1vdGlvbl9lbGVtZW50X2MzOTYxN2Q4X2Jyb3dzZXJfZXNtX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uaC5jYWxsKHByb3BzLCJjc3MiKT9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmpzeHMoX2Rpc3RfZW1vdGlvbl9lbGVtZW50X2MzOTYxN2Q4X2Jyb3dzZXJfZXNtX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uRSwoMCxfZGlzdF9lbW90aW9uX2VsZW1lbnRfYzM5NjE3ZDhfYnJvd3Nlcl9lc21fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5jKSh0eXBlLHByb3BzKSxrZXkpOnJlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uanN4cyh0eXBlLHByb3BzLGtleSl9fSw1MDY0OTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7TzpmdW5jdGlvbigpe3JldHVybiBzZXJpYWxpemVTdHlsZXN9fSk7dmFyIGN1cnNvcix1bml0bGVzc0tleXM9e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OjEsYXNwZWN0UmF0aW86MSxib3JkZXJJbWFnZU91dHNldDoxLGJvcmRlckltYWdlU2xpY2U6MSxib3JkZXJJbWFnZVdpZHRoOjEsYm94RmxleDoxLGJveEZsZXhHcm91cDoxLGJveE9yZGluYWxHcm91cDoxLGNvbHVtbkNvdW50OjEsY29sdW1uczoxLGZsZXg6MSxmbGV4R3JvdzoxLGZsZXhQb3NpdGl2ZToxLGZsZXhTaHJpbms6MSxmbGV4TmVnYXRpdmU6MSxmbGV4T3JkZXI6MSxncmlkUm93OjEsZ3JpZFJvd0VuZDoxLGdyaWRSb3dTcGFuOjEsZ3JpZFJvd1N0YXJ0OjEsZ3JpZENvbHVtbjoxLGdyaWRDb2x1bW5FbmQ6MSxncmlkQ29sdW1uU3BhbjoxLGdyaWRDb2x1bW5TdGFydDoxLG1zR3JpZFJvdzoxLG1zR3JpZFJvd1NwYW46MSxtc0dyaWRDb2x1bW46MSxtc0dyaWRDb2x1bW5TcGFuOjEsZm9udFdlaWdodDoxLGxpbmVIZWlnaHQ6MSxvcGFjaXR5OjEsb3JkZXI6MSxvcnBoYW5zOjEsdGFiU2l6ZToxLHdpZG93czoxLHpJbmRleDoxLHpvb206MSxXZWJraXRMaW5lQ2xhbXA6MSxmaWxsT3BhY2l0eToxLGZsb29kT3BhY2l0eToxLHN0b3BPcGFjaXR5OjEsc3Ryb2tlRGFzaGFycmF5OjEsc3Ryb2tlRGFzaG9mZnNldDoxLHN0cm9rZU1pdGVybGltaXQ6MSxzdHJva2VPcGFjaXR5OjEsc3Ryb2tlV2lkdGg6MX0sZW1vdGlvbl9tZW1vaXplX2VzbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ1MDQyKSxoeXBoZW5hdGVSZWdleD0vW0EtWl18Xm1zL2csYW5pbWF0aW9uUmVnZXg9L19FTU9fKFteX10rPylfKFteXSo/KV9FTU9fL2csaXNDdXN0b21Qcm9wZXJ0eT1mdW5jdGlvbihwcm9wZXJ0eSl7cmV0dXJuIDQ1PT09cHJvcGVydHkuY2hhckNvZGVBdCgxKX0saXNQcm9jZXNzYWJsZVZhbHVlPWZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gbnVsbCE9dmFsdWUmJiJib29sZWFuIiE9dHlwZW9mIHZhbHVlfSxwcm9jZXNzU3R5bGVOYW1lPSgwLGVtb3Rpb25fbWVtb2l6ZV9lc20uWikoZnVuY3Rpb24oc3R5bGVOYW1lKXtyZXR1cm4gaXNDdXN0b21Qcm9wZXJ0eShzdHlsZU5hbWUpP3N0eWxlTmFtZTpzdHlsZU5hbWUucmVwbGFjZShoeXBoZW5hdGVSZWdleCwiLSQmIikudG9Mb3dlckNhc2UoKX0pLHByb2Nlc3NTdHlsZVZhbHVlPWZ1bmN0aW9uKGtleSx2YWx1ZSl7c3dpdGNoKGtleSl7Y2FzZSJhbmltYXRpb24iOmNhc2UiYW5pbWF0aW9uTmFtZSI6aWYoInN0cmluZyI9PXR5cGVvZiB2YWx1ZSlyZXR1cm4gdmFsdWUucmVwbGFjZShhbmltYXRpb25SZWdleCxmdW5jdGlvbihtYXRjaCxwMSxwMil7cmV0dXJuIGN1cnNvcj17bmFtZTpwMSxzdHlsZXM6cDIsbmV4dDpjdXJzb3J9LHAxfSl9cmV0dXJuIDE9PT11bml0bGVzc0tleXNba2V5XXx8aXNDdXN0b21Qcm9wZXJ0eShrZXkpfHwibnVtYmVyIiE9dHlwZW9mIHZhbHVlfHwwPT09dmFsdWU/dmFsdWU6dmFsdWUrInB4In07ZnVuY3Rpb24gaGFuZGxlSW50ZXJwb2xhdGlvbihtZXJnZWRQcm9wcyxyZWdpc3RlcmVkLGludGVycG9sYXRpb24pe2lmKG51bGw9PWludGVycG9sYXRpb24pcmV0dXJuIiI7aWYodm9pZCAwIT09aW50ZXJwb2xhdGlvbi5fX2Vtb3Rpb25fc3R5bGVzKXJldHVybiBpbnRlcnBvbGF0aW9uO3N3aXRjaCh0eXBlb2YgaW50ZXJwb2xhdGlvbil7Y2FzZSJib29sZWFuIjpyZXR1cm4iIjtjYXNlIm9iamVjdCI6aWYoMT09PWludGVycG9sYXRpb24uYW5pbSlyZXR1cm4gY3Vyc29yPXtuYW1lOmludGVycG9sYXRpb24ubmFtZSxzdHlsZXM6aW50ZXJwb2xhdGlvbi5zdHlsZXMsbmV4dDpjdXJzb3J9LGludGVycG9sYXRpb24ubmFtZTtpZih2b2lkIDAhPT1pbnRlcnBvbGF0aW9uLnN0eWxlcyl7dmFyIG5leHQ9aW50ZXJwb2xhdGlvbi5uZXh0O2lmKHZvaWQgMCE9PW5leHQpZm9yKDt2b2lkIDAhPT1uZXh0OyljdXJzb3I9e25hbWU6bmV4dC5uYW1lLHN0eWxlczpuZXh0LnN0eWxlcyxuZXh0OmN1cnNvcn0sbmV4dD1uZXh0Lm5leHQ7cmV0dXJuIGludGVycG9sYXRpb24uc3R5bGVzKyI7In1yZXR1cm4gZnVuY3Rpb24obWVyZ2VkUHJvcHMscmVnaXN0ZXJlZCxvYmope3ZhciBzdHJpbmc9IiI7aWYoQXJyYXkuaXNBcnJheShvYmopKWZvcih2YXIgaT0wO2k8b2JqLmxlbmd0aDtpKyspc3RyaW5nKz1oYW5kbGVJbnRlcnBvbGF0aW9uKG1lcmdlZFByb3BzLHJlZ2lzdGVyZWQsb2JqW2ldKSsiOyI7ZWxzZSBmb3IodmFyIF9rZXkgaW4gb2JqKXt2YXIgdmFsdWU9b2JqW19rZXldO2lmKCJvYmplY3QiIT10eXBlb2YgdmFsdWUpbnVsbCE9cmVnaXN0ZXJlZCYmdm9pZCAwIT09cmVnaXN0ZXJlZFt2YWx1ZV0/c3RyaW5nKz1fa2V5KyJ7IityZWdpc3RlcmVkW3ZhbHVlXSsifSI6aXNQcm9jZXNzYWJsZVZhbHVlKHZhbHVlKSYmKHN0cmluZys9cHJvY2Vzc1N0eWxlTmFtZShfa2V5KSsiOiIrcHJvY2Vzc1N0eWxlVmFsdWUoX2tleSx2YWx1ZSkrIjsiKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkodmFsdWUpJiYic3RyaW5nIj09dHlwZW9mIHZhbHVlWzBdJiYobnVsbD09cmVnaXN0ZXJlZHx8dm9pZCAwPT09cmVnaXN0ZXJlZFt2YWx1ZVswXV0pKWZvcih2YXIgX2k9MDtfaTx2YWx1ZS5sZW5ndGg7X2krKylpc1Byb2Nlc3NhYmxlVmFsdWUodmFsdWVbX2ldKSYmKHN0cmluZys9cHJvY2Vzc1N0eWxlTmFtZShfa2V5KSsiOiIrcHJvY2Vzc1N0eWxlVmFsdWUoX2tleSx2YWx1ZVtfaV0pKyI7Iik7ZWxzZXt2YXIgaW50ZXJwb2xhdGVkPWhhbmRsZUludGVycG9sYXRpb24obWVyZ2VkUHJvcHMscmVnaXN0ZXJlZCx2YWx1ZSk7c3dpdGNoKF9rZXkpe2Nhc2UiYW5pbWF0aW9uIjpjYXNlImFuaW1hdGlvbk5hbWUiOnN0cmluZys9cHJvY2Vzc1N0eWxlTmFtZShfa2V5KSsiOiIraW50ZXJwb2xhdGVkKyI7IjticmVhaztkZWZhdWx0OnN0cmluZys9X2tleSsieyIraW50ZXJwb2xhdGVkKyJ9In19fXJldHVybiBzdHJpbmd9KG1lcmdlZFByb3BzLHJlZ2lzdGVyZWQsaW50ZXJwb2xhdGlvbik7Y2FzZSJmdW5jdGlvbiI6aWYodm9pZCAwIT09bWVyZ2VkUHJvcHMpe3ZhciBwcmV2aW91c0N1cnNvcj1jdXJzb3IscmVzdWx0PWludGVycG9sYXRpb24obWVyZ2VkUHJvcHMpO3JldHVybiBjdXJzb3I9cHJldmlvdXNDdXJzb3IsaGFuZGxlSW50ZXJwb2xhdGlvbihtZXJnZWRQcm9wcyxyZWdpc3RlcmVkLHJlc3VsdCl9fWlmKG51bGw9PXJlZ2lzdGVyZWQpcmV0dXJuIGludGVycG9sYXRpb247dmFyIGNhY2hlZD1yZWdpc3RlcmVkW2ludGVycG9sYXRpb25dO3JldHVybiB2b2lkIDAhPT1jYWNoZWQ/Y2FjaGVkOmludGVycG9sYXRpb259dmFyIGxhYmVsUGF0dGVybj0vbGFiZWw6XHMqKFteXHM7XG57XSspXHMqKDt8JCkvZyxzZXJpYWxpemVTdHlsZXM9ZnVuY3Rpb24oYXJncyxyZWdpc3RlcmVkLG1lcmdlZFByb3BzKXtpZigxPT09YXJncy5sZW5ndGgmJiJvYmplY3QiPT10eXBlb2YgYXJnc1swXSYmbnVsbCE9PWFyZ3NbMF0mJnZvaWQgMCE9PWFyZ3NbMF0uc3R5bGVzKXJldHVybiBhcmdzWzBdO3ZhciBtYXRjaCxzdHJpbmdNb2RlPSEwLHN0eWxlcz0iIjtjdXJzb3I9dm9pZCAwO3ZhciBzdHJpbmdzPWFyZ3NbMF07bnVsbD09c3RyaW5nc3x8dm9pZCAwPT09c3RyaW5ncy5yYXc/KHN0cmluZ01vZGU9ITEsc3R5bGVzKz1oYW5kbGVJbnRlcnBvbGF0aW9uKG1lcmdlZFByb3BzLHJlZ2lzdGVyZWQsc3RyaW5ncykpOnN0eWxlcys9c3RyaW5nc1swXTtmb3IodmFyIGk9MTtpPGFyZ3MubGVuZ3RoO2krKylzdHlsZXMrPWhhbmRsZUludGVycG9sYXRpb24obWVyZ2VkUHJvcHMscmVnaXN0ZXJlZCxhcmdzW2ldKSxzdHJpbmdNb2RlJiYoc3R5bGVzKz1zdHJpbmdzW2ldKTtsYWJlbFBhdHRlcm4ubGFzdEluZGV4PTA7Zm9yKHZhciBpZGVudGlmaWVyTmFtZT0iIjtudWxsIT09KG1hdGNoPWxhYmVsUGF0dGVybi5leGVjKHN0eWxlcykpOylpZGVudGlmaWVyTmFtZSs9Ii0iK21hdGNoWzFdO3JldHVybntuYW1lOmZ1bmN0aW9uKHN0cil7Zm9yKHZhciBrLGg9MCxpPTAsbGVuPXN0ci5sZW5ndGg7bGVuPj00OysraSxsZW4tPTQpaz0oNjU1MzUmKGs9MjU1JnN0ci5jaGFyQ29kZUF0KGkpfCgyNTUmc3RyLmNoYXJDb2RlQXQoKytpKSk8PDh8KDI1NSZzdHIuY2hhckNvZGVBdCgrK2kpKTw8MTZ8KDI1NSZzdHIuY2hhckNvZGVBdCgrK2kpKTw8MjQpKSoxNTQwNDgzNDc3Kygoaz4+PjE2KSo1OTc5Nzw8MTYpLGtePWs+Pj4yNCxoPSg2NTUzNSZrKSoxNTQwNDgzNDc3Kygoaz4+PjE2KSo1OTc5Nzw8MTYpXig2NTUzNSZoKSoxNTQwNDgzNDc3KygoaD4+PjE2KSo1OTc5Nzw8MTYpO3N3aXRjaChsZW4pe2Nhc2UgMzpoXj0oMjU1JnN0ci5jaGFyQ29kZUF0KGkrMikpPDwxNjtjYXNlIDI6aF49KDI1NSZzdHIuY2hhckNvZGVBdChpKzEpKTw8ODtjYXNlIDE6aF49MjU1JnN0ci5jaGFyQ29kZUF0KGkpLGg9KDY1NTM1JmgpKjE1NDA0ODM0NzcrKChoPj4+MTYpKjU5Nzk3PDwxNil9cmV0dXJuIGhePWg+Pj4xMywoKChoPSg2NTUzNSZoKSoxNTQwNDgzNDc3KygoaD4+PjE2KSo1OTc5Nzw8MTYpKV5oPj4+MTUpPj4+MCkudG9TdHJpbmcoMzYpfShzdHlsZXMpK2lkZW50aWZpZXJOYW1lLHN0eWxlczpzdHlsZXMsbmV4dDpjdXJzb3J9fX0sNDAzNTE6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19leHBvcnRzX18uWj17YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6MSxib3JkZXJJbWFnZU91dHNldDoxLGJvcmRlckltYWdlU2xpY2U6MSxib3JkZXJJbWFnZVdpZHRoOjEsYm94RmxleDoxLGJveEZsZXhHcm91cDoxLGJveE9yZGluYWxHcm91cDoxLGNvbHVtbkNvdW50OjEsY29sdW1uczoxLGZsZXg6MSxmbGV4R3JvdzoxLGZsZXhQb3NpdGl2ZToxLGZsZXhTaHJpbms6MSxmbGV4TmVnYXRpdmU6MSxmbGV4T3JkZXI6MSxncmlkUm93OjEsZ3JpZFJvd0VuZDoxLGdyaWRSb3dTcGFuOjEsZ3JpZFJvd1N0YXJ0OjEsZ3JpZENvbHVtbjoxLGdyaWRDb2x1bW5FbmQ6MSxncmlkQ29sdW1uU3BhbjoxLGdyaWRDb2x1bW5TdGFydDoxLG1zR3JpZFJvdzoxLG1zR3JpZFJvd1NwYW46MSxtc0dyaWRDb2x1bW46MSxtc0dyaWRDb2x1bW5TcGFuOjEsZm9udFdlaWdodDoxLGxpbmVIZWlnaHQ6MSxvcGFjaXR5OjEsb3JkZXI6MSxvcnBoYW5zOjEsdGFiU2l6ZToxLHdpZG93czoxLHpJbmRleDoxLHpvb206MSxXZWJraXRMaW5lQ2xhbXA6MSxmaWxsT3BhY2l0eToxLGZsb29kT3BhY2l0eToxLHN0b3BPcGFjaXR5OjEsc3Ryb2tlRGFzaGFycmF5OjEsc3Ryb2tlRGFzaG9mZnNldDoxLHN0cm9rZU1pdGVybGltaXQ6MSxzdHJva2VPcGFjaXR5OjEsc3Ryb2tlV2lkdGg6MX19LDI3Mjc4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtMOmZ1bmN0aW9uKCl7cmV0dXJuIHVzZUluc2VydGlvbkVmZmVjdEFsd2F5c1dpdGhTeW5jRmFsbGJhY2t9LGo6ZnVuY3Rpb24oKXtyZXR1cm4gdXNlSW5zZXJ0aW9uRWZmZWN0V2l0aExheW91dEZhbGxiYWNrfX0pO3ZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX25hbWVzcGFjZV9jYWNoZSxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLHVzZUluc2VydGlvbkVmZmVjdD0hIShyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX25hbWVzcGFjZV9jYWNoZXx8KHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19fbmFtZXNwYWNlX2NhY2hlPV9fd2VicGFja19yZXF1aXJlX18udChyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLDIpKSkudXNlSW5zZXJ0aW9uRWZmZWN0JiYocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX19uYW1lc3BhY2VfY2FjaGV8fChyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX25hbWVzcGFjZV9jYWNoZT1fX3dlYnBhY2tfcmVxdWlyZV9fLnQocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXywyKSkpLnVzZUluc2VydGlvbkVmZmVjdCx1c2VJbnNlcnRpb25FZmZlY3RBbHdheXNXaXRoU3luY0ZhbGxiYWNrPXVzZUluc2VydGlvbkVmZmVjdHx8ZnVuY3Rpb24oY3JlYXRlKXtyZXR1cm4gY3JlYXRlKCl9LHVzZUluc2VydGlvbkVmZmVjdFdpdGhMYXlvdXRGYWxsYmFjaz11c2VJbnNlcnRpb25FZmZlY3R8fHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlTGF5b3V0RWZmZWN0fSw3MDQ0NDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBnZXRSZWdpc3RlcmVkU3R5bGVzKHJlZ2lzdGVyZWQscmVnaXN0ZXJlZFN0eWxlcyxjbGFzc05hbWVzKXt2YXIgcmF3Q2xhc3NOYW1lPSIiO3JldHVybiBjbGFzc05hbWVzLnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbihjbGFzc05hbWUpe3ZvaWQgMCE9PXJlZ2lzdGVyZWRbY2xhc3NOYW1lXT9yZWdpc3RlcmVkU3R5bGVzLnB1c2gocmVnaXN0ZXJlZFtjbGFzc05hbWVdKyI7Iik6cmF3Q2xhc3NOYW1lKz1jbGFzc05hbWUrIiAifSkscmF3Q2xhc3NOYW1lfV9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtNeTpmdW5jdGlvbigpe3JldHVybiBpbnNlcnRTdHlsZXN9LGZwOmZ1bmN0aW9uKCl7cmV0dXJuIGdldFJlZ2lzdGVyZWRTdHlsZXN9LGhDOmZ1bmN0aW9uKCl7cmV0dXJuIHJlZ2lzdGVyU3R5bGVzfX0pO3ZhciByZWdpc3RlclN0eWxlcz1mdW5jdGlvbihjYWNoZSxzZXJpYWxpemVkLGlzU3RyaW5nVGFnKXt2YXIgY2xhc3NOYW1lPWNhY2hlLmtleSsiLSIrc2VyaWFsaXplZC5uYW1lOyExPT09aXNTdHJpbmdUYWcmJnZvaWQgMD09PWNhY2hlLnJlZ2lzdGVyZWRbY2xhc3NOYW1lXSYmKGNhY2hlLnJlZ2lzdGVyZWRbY2xhc3NOYW1lXT1zZXJpYWxpemVkLnN0eWxlcyl9LGluc2VydFN0eWxlcz1mdW5jdGlvbihjYWNoZSxzZXJpYWxpemVkLGlzU3RyaW5nVGFnKXtyZWdpc3RlclN0eWxlcyhjYWNoZSxzZXJpYWxpemVkLGlzU3RyaW5nVGFnKTt2YXIgY2xhc3NOYW1lPWNhY2hlLmtleSsiLSIrc2VyaWFsaXplZC5uYW1lO2lmKHZvaWQgMD09PWNhY2hlLmluc2VydGVkW3NlcmlhbGl6ZWQubmFtZV0pe3ZhciBjdXJyZW50PXNlcmlhbGl6ZWQ7ZG8gY2FjaGUuaW5zZXJ0KHNlcmlhbGl6ZWQ9PT1jdXJyZW50PyIuIitjbGFzc05hbWU6IiIsY3VycmVudCxjYWNoZS5zaGVldCwhMCksY3VycmVudD1jdXJyZW50Lm5leHQ7d2hpbGUodm9pZCAwIT09Y3VycmVudCl9fX0sMzY2NjE6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se2Z2OmZ1bmN0aW9uKCl7cmV0dXJuIHNpbmdsZXRvbn19KTt2YXIgRXZlbnRzQ29sb3JzLENoYXRib3hDb2xvcnMsQ2hhdGJveFBvc2l0aW9uLEV2ZW50c0NvbG9yczEsQ2hhdGJveENvbG9yczEsQ2hhdGJveFBvc2l0aW9uMSxDcmlzcE1lc3NhZ2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBDcmlzcE1lc3NhZ2UoY3Jpc3Ape3RoaXMucGFyZW50PWNyaXNwfXJldHVybiBDcmlzcE1lc3NhZ2UucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24odHlwZSxjb250ZW50KXt0aGlzLnBhcmVudC5jcmVhdGVTaW5nbGV0b25JZk5lY2Vzc2FyeSgpLHdpbmRvdy4kY3Jpc3AucHVzaChbImRvIiwibWVzc2FnZTpzZW5kIixbdHlwZSxjb250ZW50XV0pfSxDcmlzcE1lc3NhZ2UucHJvdG90eXBlLnNlbmRUZXh0PWZ1bmN0aW9uKGNvbnRlbnQpe3RoaXMuc2VuZCgidGV4dCIsY29udGVudCl9LENyaXNwTWVzc2FnZS5wcm90b3R5cGUuc2VuZEZpbGU9ZnVuY3Rpb24oY29udGVudCl7dGhpcy5zZW5kKCJmaWxlIixjb250ZW50KX0sQ3Jpc3BNZXNzYWdlLnByb3RvdHlwZS5zZW5kQW5pbWF0aW9uPWZ1bmN0aW9uKGNvbnRlbnQpe3RoaXMuc2VuZCgiYW5pbWF0aW9uIixjb250ZW50KX0sQ3Jpc3BNZXNzYWdlLnByb3RvdHlwZS5zZW5kQXVkaW89ZnVuY3Rpb24oY29udGVudCl7dGhpcy5zZW5kKCJhdWRpbyIsY29udGVudCl9LENyaXNwTWVzc2FnZS5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbih0eXBlLGNvbnRlbnQpe3RoaXMucGFyZW50LmNyZWF0ZVNpbmdsZXRvbklmTmVjZXNzYXJ5KCksd2luZG93LiRjcmlzcC5wdXNoKFsiZG8iLCJtZXNzYWdlOnNob3ciLFt0eXBlLGNvbnRlbnRdXSl9LENyaXNwTWVzc2FnZS5wcm90b3R5cGUuc2hvd1RleHQ9ZnVuY3Rpb24oY29udGVudCl7dGhpcy5zaG93KCJ0ZXh0Iixjb250ZW50KX0sQ3Jpc3BNZXNzYWdlLnByb3RvdHlwZS5zaG93RmlsZT1mdW5jdGlvbihjb250ZW50KXt0aGlzLnNob3coImZpbGUiLGNvbnRlbnQpfSxDcmlzcE1lc3NhZ2UucHJvdG90eXBlLnNob3dBbmltYXRpb249ZnVuY3Rpb24oY29udGVudCl7dGhpcy5zaG93KCJhbmltYXRpb24iLGNvbnRlbnQpfSxDcmlzcE1lc3NhZ2UucHJvdG90eXBlLnNob3dBdWRpbz1mdW5jdGlvbihjb250ZW50KXt0aGlzLnNob3coImF1ZGlvIixjb250ZW50KX0sQ3Jpc3BNZXNzYWdlLnByb3RvdHlwZS5zaG93UGlja2VyPWZ1bmN0aW9uKGNvbnRlbnQpe3RoaXMuc2hvdygicGlja2VyIixjb250ZW50KX0sQ3Jpc3BNZXNzYWdlLnByb3RvdHlwZS5zaG93RmllbGQ9ZnVuY3Rpb24oY29udGVudCl7dGhpcy5zaG93KCJmaWVsZCIsY29udGVudCl9LENyaXNwTWVzc2FnZS5wcm90b3R5cGUuc2hvd0Nhcm91c2VsPWZ1bmN0aW9uKGNvbnRlbnQpe3RoaXMuc2hvdygiY2Fyb3VzZWwiLGNvbnRlbnQpfSxDcmlzcE1lc3NhZ2UucHJvdG90eXBlLm1hcmtBc1JlYWQ9ZnVuY3Rpb24oKXt0aGlzLnBhcmVudC5jcmVhdGVTaW5nbGV0b25JZk5lY2Vzc2FyeSgpLHdpbmRvdy4kY3Jpc3AucHVzaChbImRvIiwibWVzc2FnZTpyZWFkIl0pfSxDcmlzcE1lc3NhZ2UucHJvdG90eXBlLm9uTWVzc2FnZVNlbnQ9ZnVuY3Rpb24oY2FsbGJhY2spe3RoaXMucGFyZW50LmNyZWF0ZVNpbmdsZXRvbklmTmVjZXNzYXJ5KCksd2luZG93LiRjcmlzcC5wdXNoKFsib2ZmIiwibWVzc2FnZTpzZW50Il0pLHdpbmRvdy4kY3Jpc3AucHVzaChbIm9uIiwibWVzc2FnZTpzZW50IixjYWxsYmFja10pfSxDcmlzcE1lc3NhZ2UucHJvdG90eXBlLm9uTWVzc2FnZVJlY2VpdmVkPWZ1bmN0aW9uKGNhbGxiYWNrKXt0aGlzLnBhcmVudC5jcmVhdGVTaW5nbGV0b25JZk5lY2Vzc2FyeSgpLHdpbmRvdy4kY3Jpc3AucHVzaChbIm9mZiIsIm1lc3NhZ2U6cmVjZWl2ZWQiXSksd2luZG93LiRjcmlzcC5wdXNoKFsib24iLCJtZXNzYWdlOnJlY2VpdmVkIixjYWxsYmFja10pfSxDcmlzcE1lc3NhZ2UucHJvdG90eXBlLm9uTWVzc2FnZUNvbXBvc2VTZW50PWZ1bmN0aW9uKGNhbGxiYWNrKXt0aGlzLnBhcmVudC5jcmVhdGVTaW5nbGV0b25JZk5lY2Vzc2FyeSgpLHdpbmRvdy4kY3Jpc3AucHVzaChbIm9mZiIsIm1lc3NhZ2U6Y29tcG9zZTpzZW50Il0pLHdpbmRvdy4kY3Jpc3AucHVzaChbIm9uIiwibWVzc2FnZTpjb21wb3NlOnNlbnQiLGNhbGxiYWNrXSl9LENyaXNwTWVzc2FnZS5wcm90b3R5cGUub25NZXNzYWdlQ29tcG9zZVJlY2VpdmU9ZnVuY3Rpb24oY2FsbGJhY2spe3RoaXMucGFyZW50LmNyZWF0ZVNpbmdsZXRvbklmTmVjZXNzYXJ5KCksd2luZG93LiRjcmlzcC5wdXNoKFsib2ZmIiwibWVzc2FnZTpjb21wb3NlOnJlY2VpdmVkIl0pLHdpbmRvdy4kY3Jpc3AucHVzaChbIm9uIiwibWVzc2FnZTpjb21wb3NlOnJlY2VpdmVkIixjYWxsYmFja10pfSxDcmlzcE1lc3NhZ2V9KCksQ3Jpc3BVc2VyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQ3Jpc3BVc2VyKGNyaXNwKXt0aGlzLnBhcmVudD1jcmlzcH1yZXR1cm4gQ3Jpc3BVc2VyLnByb3RvdHlwZS5zZXROaWNrbmFtZT1mdW5jdGlvbihuaWNrbmFtZSl7dGhpcy5wYXJlbnQuY3JlYXRlU2luZ2xldG9uSWZOZWNlc3NhcnkoKSx3aW5kb3cuJGNyaXNwLnB1c2goWyJzZXQiLCJ1c2VyOm5pY2tuYW1lIixbbmlja25hbWVdXSl9LENyaXNwVXNlci5wcm90b3R5cGUuc2V0RW1haWw9ZnVuY3Rpb24oZW1haWwsaG1hYyl7dGhpcy5wYXJlbnQuY3JlYXRlU2luZ2xldG9uSWZOZWNlc3NhcnkoKSx3aW5kb3cuJGNyaXNwLnB1c2goWyJzZXQiLCJ1c2VyOmVtYWlsIixbZW1haWwsaG1hY11dKX0sQ3Jpc3BVc2VyLnByb3RvdHlwZS5zZXRQaG9uZT1mdW5jdGlvbihwaG9uZSl7dGhpcy5wYXJlbnQuY3JlYXRlU2luZ2xldG9uSWZOZWNlc3NhcnkoKSx3aW5kb3cuJGNyaXNwLnB1c2goWyJzZXQiLCJ1c2VyOnBob25lIixbcGhvbmVdXSl9LENyaXNwVXNlci5wcm90b3R5cGUuc2V0QXZhdGFyPWZ1bmN0aW9uKGF2YXRhcil7dGhpcy5wYXJlbnQuY3JlYXRlU2luZ2xldG9uSWZOZWNlc3NhcnkoKSx3aW5kb3cuJGNyaXNwLnB1c2goWyJzZXQiLCJ1c2VyOmF2YXRhciIsW2F2YXRhcl1dKX0sQ3Jpc3BVc2VyLnByb3RvdHlwZS5zZXRDb21wYW55PWZ1bmN0aW9uKG5hbWUsZGF0YSl7dmFyIF9wYXlsb2FkPXt9O2RhdGEmJmRhdGEudXJsJiYoX3BheWxvYWQudXJsPWRhdGEudXJsKSxkYXRhJiZkYXRhLmRlc2NyaXB0aW9uJiYoX3BheWxvYWQuZGVzY3JpcHRpb249ZGF0YS5kZXNjcmlwdGlvbiksZGF0YSYmZGF0YS5lbXBsb3ltZW50JiYoX3BheWxvYWQuZW1wbG95bWVudD1bZGF0YS5lbXBsb3ltZW50LnRpdGxlXSxkYXRhLmVtcGxveW1lbnQucm9sZSYmX3BheWxvYWQuZW1wbG95bWVudC5wdXNoKGRhdGEuZW1wbG95bWVudC5yb2xlKSksdGhpcy5wYXJlbnQuY3JlYXRlU2luZ2xldG9uSWZOZWNlc3NhcnkoKSx3aW5kb3cuJGNyaXNwLnB1c2goWyJzZXQiLCJ1c2VyOmNvbXBhbnkiLFtuYW1lLF9wYXlsb2FkXV0pfSxDcmlzcFVzZXIucHJvdG90eXBlLmdldEVtYWlsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50LmlzQ3Jpc3BJbmplY3RlZCgpP3dpbmRvdy4kY3Jpc3AuZ2V0KCJ1c2VyOmVtYWlsIik6bnVsbH0sQ3Jpc3BVc2VyLnByb3RvdHlwZS5nZXRQaG9uZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVudC5pc0NyaXNwSW5qZWN0ZWQoKT93aW5kb3cuJGNyaXNwLmdldCgidXNlcjpwaG9uZSIpOm51bGx9LENyaXNwVXNlci5wcm90b3R5cGUuZ2V0Tmlja25hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnQuaXNDcmlzcEluamVjdGVkKCk/d2luZG93LiRjcmlzcC5nZXQoInVzZXI6bmlja25hbWUiKTpudWxsfSxDcmlzcFVzZXIucHJvdG90eXBlLmdldEF2YXRhcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVudC5pc0NyaXNwSW5qZWN0ZWQoKT93aW5kb3cuJGNyaXNwLmdldCgidXNlcjphdmF0YXIiKTpudWxsfSxDcmlzcFVzZXIucHJvdG90eXBlLmdldENvbXBhbnk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnQuaXNDcmlzcEluamVjdGVkKCk/d2luZG93LiRjcmlzcC5nZXQoInVzZXI6Y29tcGFueSIpOm51bGx9LENyaXNwVXNlci5wcm90b3R5cGUub25FbWFpbENoYW5nZWQ9ZnVuY3Rpb24oY2FsbGJhY2spe3RoaXMucGFyZW50LmlzQ3Jpc3BJbmplY3RlZCgpJiYod2luZG93LiRjcmlzcC5wdXNoKFsib2ZmIiwidXNlcjplbWFpbDpjaGFuZ2VkIl0pLHdpbmRvdy4kY3Jpc3AucHVzaChbIm9uIiwidXNlcjplbWFpbDpjaGFuZ2VkIixjYWxsYmFja10pKX0sQ3Jpc3BVc2VyLnByb3RvdHlwZS5vblBob25lQ2hhbmdlZD1mdW5jdGlvbihjYWxsYmFjayl7dGhpcy5wYXJlbnQuaXNDcmlzcEluamVjdGVkKCkmJih3aW5kb3cuJGNyaXNwLnB1c2goWyJvZmYiLCJ1c2VyOnBob25lOmNoYW5nZWQiXSksd2luZG93LiRjcmlzcC5wdXNoKFsib24iLCJ1c2VyOnBob25lOmNoYW5nZWQiLGNhbGxiYWNrXSkpfSxDcmlzcFVzZXIucHJvdG90eXBlLm9uTmlja25hbWVDaGFuZ2VkPWZ1bmN0aW9uKGNhbGxiYWNrKXt0aGlzLnBhcmVudC5pc0NyaXNwSW5qZWN0ZWQoKSYmKHdpbmRvdy4kY3Jpc3AucHVzaChbIm9mZiIsInVzZXI6bmlja25hbWU6Y2hhbmdlZCJdKSx3aW5kb3cuJGNyaXNwLnB1c2goWyJvbiIsInVzZXI6bmlja25hbWU6Y2hhbmdlZCIsY2FsbGJhY2tdKSl9LENyaXNwVXNlci5wcm90b3R5cGUub25BdmF0YXJDaGFuZ2VkPWZ1bmN0aW9uKGNhbGxiYWNrKXt0aGlzLnBhcmVudC5pc0NyaXNwSW5qZWN0ZWQoKSYmKHdpbmRvdy4kY3Jpc3AucHVzaChbIm9mZiIsInVzZXI6YXZhdGFyOmNoYW5nZWQiXSksd2luZG93LiRjcmlzcC5wdXNoKFsib24iLCJ1c2VyOmF2YXRhcjpjaGFuZ2VkIixjYWxsYmFja10pKX0sQ3Jpc3BVc2VyfSgpLENyaXNwVHJpZ2dlcj1mdW5jdGlvbigpe2Z1bmN0aW9uIENyaXNwVHJpZ2dlcihjcmlzcCl7dGhpcy5wYXJlbnQ9Y3Jpc3B9cmV0dXJuIENyaXNwVHJpZ2dlci5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKG5hbWUpe3RoaXMucGFyZW50LmNyZWF0ZVNpbmdsZXRvbklmTmVjZXNzYXJ5KCksd2luZG93LiRjcmlzcC5wdXNoKFsiZG8iLCJ0cmlnZ2VyOnJ1biIsW25hbWVdXSl9LENyaXNwVHJpZ2dlcn0oKTsoRXZlbnRzQ29sb3JzPUV2ZW50c0NvbG9yczF8fChFdmVudHNDb2xvcnMxPXt9KSkuUmVkPSJyZWQiLEV2ZW50c0NvbG9ycy5PcmFuZ2U9Im9yYW5nZSIsRXZlbnRzQ29sb3JzLlllbGxvdz0ieWVsbG93IixFdmVudHNDb2xvcnMuR3JlZW49ImdyZWVuIixFdmVudHNDb2xvcnMuQmx1ZT0iYmx1ZSIsRXZlbnRzQ29sb3JzLlB1cnBsZT0icHVycGxlIixFdmVudHNDb2xvcnMuUGluaz0icGluayIsRXZlbnRzQ29sb3JzLkJyb3duPSJicm93biIsRXZlbnRzQ29sb3JzLkdyZXk9ImdyZXkiLEV2ZW50c0NvbG9ycy5CbGFjaz0iYmxhY2siO3ZhciBDcmlzcFNlc3Npb249ZnVuY3Rpb24oKXtmdW5jdGlvbiBDcmlzcFNlc3Npb24oY3Jpc3Ape3RoaXMucGFyZW50PWNyaXNwfXJldHVybiBDcmlzcFNlc3Npb24ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKHJlbG9hZCl7dm9pZCAwPT09cmVsb2FkJiYocmVsb2FkPSExKSx0aGlzLnBhcmVudC5pc0NyaXNwSW5qZWN0ZWQoKSYmd2luZG93LiRjcmlzcC5kbygic2Vzc2lvbjpyZXNldCIsW3JlbG9hZF0pfSxDcmlzcFNlc3Npb24ucHJvdG90eXBlLnNldFNlZ21lbnRzPWZ1bmN0aW9uKHNlZ21lbnRzLG92ZXJ3cml0ZSl7dGhpcy5wYXJlbnQuY3JlYXRlU2luZ2xldG9uSWZOZWNlc3NhcnkoKSwkY3Jpc3AucHVzaChbInNldCIsInNlc3Npb246c2VnbWVudHMiLFtzZWdtZW50cyxvdmVyd3JpdGVdXSl9LENyaXNwU2Vzc2lvbi5wcm90b3R5cGUuc2V0RGF0YT1mdW5jdGlvbihkYXRhKXt2YXIgX3RoaXM9dGhpcyxfcGF5bG9hZD1bXTtPYmplY3QuZW50cmllcyhkYXRhKS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pe190aGlzLmlzVmFsaWREYXRhVmFsdWUoaXRlbVswXSkmJl9wYXlsb2FkLnB1c2goW2l0ZW1bMF0saXRlbVsxXV0pfSksdGhpcy5wYXJlbnQuY3JlYXRlU2luZ2xldG9uSWZOZWNlc3NhcnkoKSwkY3Jpc3AucHVzaChbInNldCIsInNlc3Npb246ZGF0YSIsW19wYXlsb2FkXV0pfSxDcmlzcFNlc3Npb24ucHJvdG90eXBlLnB1c2hFdmVudD1mdW5jdGlvbihuYW1lLGRhdGEsY29sb3Ipe3ZvaWQgMD09PWRhdGEmJihkYXRhPXt9KSx2b2lkIDA9PT1jb2xvciYmKGNvbG9yPUV2ZW50c0NvbG9yczEuQmx1ZSksdGhpcy5wYXJlbnQuaXNDcmlzcEluamVjdGVkKCkmJndpbmRvdy4kY3Jpc3AucHVzaChbInNldCIsInNlc3Npb246ZXZlbnQiLFtbW25hbWUsZGF0YSxjb2xvcl1dXV0pfSxDcmlzcFNlc3Npb24ucHJvdG90eXBlLmdldERhdGE9ZnVuY3Rpb24oa2V5KXtpZih0aGlzLnBhcmVudC5pc0NyaXNwSW5qZWN0ZWQoKSlyZXR1cm4gd2luZG93LiRjcmlzcC5nZXQoInNlc3Npb246ZGF0YSIsa2V5KX0sQ3Jpc3BTZXNzaW9uLnByb3RvdHlwZS5nZXRJZGVudGlmaWVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50LmlzQ3Jpc3BJbmplY3RlZCgpP3dpbmRvdy4kY3Jpc3AuZ2V0KCJzZXNzaW9uOmlkZW50aWZpZXIiKTpudWxsfSxDcmlzcFNlc3Npb24ucHJvdG90eXBlLm9uTG9hZGVkPWZ1bmN0aW9uKGNhbGxiYWNrKXt0aGlzLnBhcmVudC5jcmVhdGVTaW5nbGV0b25JZk5lY2Vzc2FyeSgpLHdpbmRvdy4kY3Jpc3AucHVzaChbIm9mZiIsInNlc3Npb246bG9hZGVkIl0pLHdpbmRvdy4kY3Jpc3AucHVzaChbIm9uIiwic2Vzc2lvbjpsb2FkZWQiLGNhbGxiYWNrXSl9LENyaXNwU2Vzc2lvbi5wcm90b3R5cGUuaXNWYWxpZERhdGFWYWx1ZT1mdW5jdGlvbih2YWx1ZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB2YWx1ZXx8Im51bWJlciI9PXR5cGVvZiB2YWx1ZXx8ImJvb2xlYW4iPT10eXBlb2YgdmFsdWV9LENyaXNwU2Vzc2lvbn0oKSxDcmlzcENoYXQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBDcmlzcENoYXQoY3Jpc3Ape3RoaXMucGFyZW50PWNyaXNwfXJldHVybiBDcmlzcENoYXQucHJvdG90eXBlLnNob3c9ZnVuY3Rpb24oKXt0aGlzLnBhcmVudC5hdXRvSW5qZWN0SWZOZWNlc3Nhc3koKSx3aW5kb3cuJGNyaXNwLnB1c2goWyJkbyIsImNoYXQ6c2hvdyJdKX0sQ3Jpc3BDaGF0LnByb3RvdHlwZS5oaWRlPWZ1bmN0aW9uKCl7dGhpcy5wYXJlbnQuYXV0b0luamVjdElmTmVjZXNzYXN5KCksd2luZG93LiRjcmlzcC5wdXNoKFsiZG8iLCJjaGF0OmhpZGUiXSl9LENyaXNwQ2hhdC5wcm90b3R5cGUub3Blbj1mdW5jdGlvbigpe3RoaXMucGFyZW50LmF1dG9JbmplY3RJZk5lY2Vzc2FzeSgpLHdpbmRvdy4kY3Jpc3AucHVzaChbImRvIiwiY2hhdDpvcGVuIl0pfSxDcmlzcENoYXQucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7dGhpcy5wYXJlbnQuaXNDcmlzcEluamVjdGVkKCkmJndpbmRvdy4kY3Jpc3AucHVzaChbImRvIiwiY2hhdDpjbG9zZSJdKX0sQ3Jpc3BDaGF0LnByb3RvdHlwZS51bnJlYWRDb3VudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVudC5pc0NyaXNwSW5qZWN0ZWQoKT93aW5kb3cuJGNyaXNwLmdldCgiY2hhdDp1bnJlYWQ6Y291bnQiKTowfSxDcmlzcENoYXQucHJvdG90eXBlLmlzQ2hhdE9wZW5lZD1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5wYXJlbnQuaXNDcmlzcEluamVjdGVkKCkmJndpbmRvdy4kY3Jpc3AuaXMoImNoYXQ6b3BlbmVkIil9LENyaXNwQ2hhdC5wcm90b3R5cGUuaXNWaXNpYmxlPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLnBhcmVudC5pc0NyaXNwSW5qZWN0ZWQoKSYmd2luZG93LiRjcmlzcC5pcygiY2hhdDp2aXNpYmxlIil9LENyaXNwQ2hhdC5wcm90b3R5cGUub25DaGF0SW5pdGlhdGVkPWZ1bmN0aW9uKGNhbGxiYWNrKXt0aGlzLnBhcmVudC5jcmVhdGVTaW5nbGV0b25JZk5lY2Vzc2FyeSgpLHdpbmRvdy4kY3Jpc3AucHVzaChbIm9mZiIsImNoYXQ6aW5pdGlhdGVkIl0pLHdpbmRvdy4kY3Jpc3AucHVzaChbIm9uIiwiY2hhdDppbml0aWF0ZWQiLGNhbGxiYWNrXSl9LENyaXNwQ2hhdC5wcm90b3R5cGUub25DaGF0T3BlbmVkPWZ1bmN0aW9uKGNhbGxiYWNrKXt0aGlzLnBhcmVudC5jcmVhdGVTaW5nbGV0b25JZk5lY2Vzc2FyeSgpLHdpbmRvdy4kY3Jpc3AucHVzaChbIm9mZiIsImNoYXQ6b3BlbmVkIl0pLHdpbmRvdy4kY3Jpc3AucHVzaChbIm9uIiwiY2hhdDpvcGVuZWQiLGNhbGxiYWNrXSl9LENyaXNwQ2hhdC5wcm90b3R5cGUub25DaGF0Q2xvc2VkPWZ1bmN0aW9uKGNhbGxiYWNrKXt0aGlzLnBhcmVudC5jcmVhdGVTaW5nbGV0b25JZk5lY2Vzc2FyeSgpLHdpbmRvdy4kY3Jpc3AucHVzaChbIm9mZiIsImNoYXQ6Y2xvc2VkIl0pLHdpbmRvdy4kY3Jpc3AucHVzaChbIm9uIiwiY2hhdDpjbG9zZWQiLGNhbGxiYWNrXSl9LENyaXNwQ2hhdH0oKTsoQ2hhdGJveENvbG9ycz1DaGF0Ym94Q29sb3JzMXx8KENoYXRib3hDb2xvcnMxPXt9KSkuRGVmYXVsdD0iZGVmYXVsdCIsQ2hhdGJveENvbG9ycy5BbWJlcj0iYW1iZXIiLENoYXRib3hDb2xvcnMuQmxhY2s9ImJsYWNrIixDaGF0Ym94Q29sb3JzLkJsdWU9ImJsdWUiLENoYXRib3hDb2xvcnMuQmx1ZUdyZXk9ImJsdWVfZ3JleSIsQ2hhdGJveENvbG9ycy5MaWdodEJsdWU9ImxpZ2h0X2JsdWUiLENoYXRib3hDb2xvcnMuQnJvd249ImJyb3duIixDaGF0Ym94Q29sb3JzLkN5YW49ImN5YW4iLENoYXRib3hDb2xvcnMuR3JlZW49ImdyZWVuIixDaGF0Ym94Q29sb3JzLkxpZ2h0R3JlZW49ImxpZ2h0X2dyZWVuIixDaGF0Ym94Q29sb3JzLkdyZXk9ImdyZXkiLENoYXRib3hDb2xvcnMuSW5kaWdvPSJpbmRpZ28iLENoYXRib3hDb2xvcnMuT3JhbmdlPSJvcmFuZ2UiLENoYXRib3hDb2xvcnMuRGVlcE9yYW5nZT0iZGVlcF9vcmFuZ2UiLENoYXRib3hDb2xvcnMuUGluaz0icGluayIsQ2hhdGJveENvbG9ycy5QdXJwbGU9InB1cnBsZSIsQ2hhdGJveENvbG9ycy5EZWVwUHVycGxlPSJkZWVwX3B1cnBsZSIsQ2hhdGJveENvbG9ycy5SZWQ9InJlZCIsQ2hhdGJveENvbG9ycy5UZWFsPSJ0ZWFsIiwoQ2hhdGJveFBvc2l0aW9uPUNoYXRib3hQb3NpdGlvbjF8fChDaGF0Ym94UG9zaXRpb24xPXt9KSkuTGVmdD0ibGVmdCIsQ2hhdGJveFBvc2l0aW9uLlJpZ2h0PSJyaWdodCI7dmFyIHNpbmdsZXRvbj1uZXcoZnVuY3Rpb24oKXtmdW5jdGlvbiBDcmlzcCgpe3RoaXMuY2xpZW50VXJsPSJodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L2wuanMiLHRoaXMud2Vic2l0ZUlkPSIiLHRoaXMuYXV0b2xvYWQ9ITAsdGhpcy5pbmplY3RlZD0hMSx0aGlzLmNoYXQ9bmV3IENyaXNwQ2hhdCh0aGlzKSx0aGlzLnNlc3Npb249bmV3IENyaXNwU2Vzc2lvbih0aGlzKSx0aGlzLnVzZXI9bmV3IENyaXNwVXNlcih0aGlzKSx0aGlzLm1lc3NhZ2U9bmV3IENyaXNwTWVzc2FnZSh0aGlzKSx0aGlzLnRyaWdnZXI9bmV3IENyaXNwVHJpZ2dlcih0aGlzKX1yZXR1cm4gQ3Jpc3AucHJvdG90eXBlLmNvbmZpZ3VyZT1mdW5jdGlvbih3ZWJzaXRlSWQsb3B0aW9ucyl7dm9pZCAwPT09b3B0aW9ucyYmKG9wdGlvbnM9e30pLHRoaXMud2Vic2l0ZUlkPXdlYnNpdGVJZCx0aGlzLnRva2VuSWQ9b3B0aW9ucy50b2tlbklkLHRoaXMubG9jYWxlPW9wdGlvbnMubG9jYWxlLHRoaXMuc2Vzc2lvbk1lcmdlPW9wdGlvbnMuc2Vzc2lvbk1lcmdlLHRoaXMuY29va2llRG9tYWluPW9wdGlvbnMuY29va2llRG9tYWluLHRoaXMubG9ja0Z1bGx2aWV3PW9wdGlvbnMubG9ja0Z1bGx2aWV3LHRoaXMubG9ja01heGltaXplZD1vcHRpb25zLmxvY2tNYXhpbWl6ZWQsdGhpcy5zYWZlTW9kZT1vcHRpb25zLnNhZmVNb2RlLHZvaWQgMCE9PW9wdGlvbnMuY2xpZW50VXJsJiYodGhpcy5jbGllbnRVcmw9b3B0aW9ucy5jbGllbnRVcmwpLHZvaWQgMCE9PW9wdGlvbnMuYXV0b2xvYWQmJih0aGlzLmF1dG9sb2FkPW9wdGlvbnMuYXV0b2xvYWQpLHRoaXMuYXV0b2xvYWQmJnRoaXMubG9hZCgpfSxDcmlzcC5wcm90b3R5cGUubG9hZD1mdW5jdGlvbigpe3ZhciBfaGVhZD1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpO2lmKHRoaXMuY3JlYXRlU2luZ2xldG9uSWZOZWNlc3NhcnkoKSwhMCE9PXRoaXMuaXNDcmlzcEluamVjdGVkKCkpe2lmKCF0aGlzLndlYnNpdGVJZCl0aHJvdyBFcnJvcigid2Vic2l0ZUlkIG11c3QgYmUgc2V0IGJlZm9yZSBsb2FkaW5nIENyaXNwIik7aWYod2luZG93LkNSSVNQX1dFQlNJVEVfSUQ9dGhpcy53ZWJzaXRlSWQsd2luZG93LkNSSVNQX1JVTlRJTUVfQ09ORklHPXt9LHRoaXMudG9rZW5JZCYmKHdpbmRvdy5DUklTUF9UT0tFTl9JRD10aGlzLnRva2VuSWQpLHRoaXMuc2Vzc2lvbk1lcmdlJiYod2luZG93LkNSSVNQX1JVTlRJTUVfQ09ORklHLnNlc3Npb25fbWVyZ2U9ITApLHRoaXMubG9jYWxlJiYod2luZG93LkNSSVNQX1JVTlRJTUVfQ09ORklHLmxvY2FsZT10aGlzLmxvY2FsZSksdGhpcy5sb2NrRnVsbHZpZXcmJih3aW5kb3cuQ1JJU1BfUlVOVElNRV9DT05GSUcubG9ja19mdWxsX3ZpZXc9ITApLHRoaXMubG9ja01heGltaXplZCYmKHdpbmRvdy5DUklTUF9SVU5USU1FX0NPTkZJRy5sb2NrX21heGltaXplZD0hMCksdGhpcy5jb29raWVEb21haW4mJih3aW5kb3cuQ1JJU1BfQ09PS0lFX0RPTUFJTj10aGlzLmNvb2tpZURvbWFpbiksdGhpcy5jb29raWVFeHBpcmUmJih3aW5kb3cuQ1JJU1BfQ09PS0lFX0VYUElSRT10aGlzLmNvb2tpZUV4cGlyZSksIV9oZWFkfHwhX2hlYWRbMF0pcmV0dXJuIHRoaXMuZGVmZXJyZWRMb2FkaW5nKCk7ITA9PT10aGlzLnNhZmVNb2RlJiZ0aGlzLnNldFNhZmVNb2RlKCEwKTt2YXIgX3NjcmlwdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtfc2NyaXB0LnNyYz10aGlzLmNsaWVudFVybCxfc2NyaXB0LmFzeW5jPSEwLF9oZWFkWzBdLmFwcGVuZENoaWxkKF9zY3JpcHQpLHRoaXMuaW5qZWN0ZWQ9ITB9fSxDcmlzcC5wcm90b3R5cGUuc2V0VG9rZW5JZD1mdW5jdGlvbih0b2tlbklkKXt0aGlzLnRva2VuSWQ9dG9rZW5JZCwhMD09PXRoaXMuaXNDcmlzcEluamVjdGVkKCkmJih0b2tlbklkP3dpbmRvdy5DUklTUF9UT0tFTl9JRD10b2tlbklkOmRlbGV0ZSB3aW5kb3cuQ1JJU1BfVE9LRU5fSUQpfSxDcmlzcC5wcm90b3R5cGUuc2V0WkluZGV4PWZ1bmN0aW9uKHpJbmRleCl7dGhpcy5jcmVhdGVTaW5nbGV0b25JZk5lY2Vzc2FyeSgpLHdpbmRvdy4kY3Jpc3AucHVzaChbImNvbmZpZyIsImNvbnRhaW5lcjppbmRleCIsW3pJbmRleF1dKX0sQ3Jpc3AucHJvdG90eXBlLnNldENvbG9yVGhlbWU9ZnVuY3Rpb24oY29sb3Ipe3RoaXMuY3JlYXRlU2luZ2xldG9uSWZOZWNlc3NhcnkoKSx3aW5kb3cuJGNyaXNwLnB1c2goWyJjb25maWciLCJjb2xvcjp0aGVtZSIsW2NvbG9yXV0pfSxDcmlzcC5wcm90b3R5cGUuc2V0SGlkZU9uQXdheT1mdW5jdGlvbihlbmFibGVkKXt0aGlzLmNyZWF0ZVNpbmdsZXRvbklmTmVjZXNzYXJ5KCksd2luZG93LiRjcmlzcC5wdXNoKFsiY29uZmlnIiwiaGlkZTpvbjphd2F5IixbZW5hYmxlZF1dKX0sQ3Jpc3AucHJvdG90eXBlLnNldEhpZGVPbk1vYmlsZT1mdW5jdGlvbihlbmFibGVkKXt0aGlzLmNyZWF0ZVNpbmdsZXRvbklmTmVjZXNzYXJ5KCksd2luZG93LiRjcmlzcC5wdXNoKFsiY29uZmlnIiwiaGlkZTpvbjptb2JpbGUiLFtlbmFibGVkXV0pfSxDcmlzcC5wcm90b3R5cGUuc2V0UG9zaXRpb249ZnVuY3Rpb24ocG9zaXRpb24pe3RoaXMuY3JlYXRlU2luZ2xldG9uSWZOZWNlc3NhcnkoKSwkY3Jpc3AucHVzaChbImNvbmZpZyIsInBvc2l0aW9uOnJldmVyc2UiLFtwb3NpdGlvbj09PUNoYXRib3hQb3NpdGlvbjEuTGVmdF1dKX0sQ3Jpc3AucHJvdG90eXBlLnNldEF2YWlsYWJpbGl0eVRvb2x0aXA9ZnVuY3Rpb24oZW5hYmxlZCl7dGhpcy5jcmVhdGVTaW5nbGV0b25JZk5lY2Vzc2FyeSgpLHdpbmRvdy4kY3Jpc3AucHVzaChbImNvbmZpZyIsImF2YWlsYWJpbGl0eTp0b29sdGlwIixbZW5hYmxlZF1dKX0sQ3Jpc3AucHJvdG90eXBlLnNldFZhY2F0aW9uTW9kZT1mdW5jdGlvbihlbmFibGVkKXt0aGlzLmNyZWF0ZVNpbmdsZXRvbklmTmVjZXNzYXJ5KCksd2luZG93LiRjcmlzcC5wdXNoKFsiY29uZmlnIiwiaGlkZTp2YWNhdGlvbiIsW2VuYWJsZWRdXSl9LENyaXNwLnByb3RvdHlwZS5zZXRTYWZlTW9kZT1mdW5jdGlvbihzYWZlKXt2b2lkIDA9PT1zYWZlJiYoc2FmZT0hMCksdGhpcy5jcmVhdGVTaW5nbGV0b25JZk5lY2Vzc2FyeSgpLHdpbmRvdy4kY3Jpc3AucHVzaChbInNhZmUiLHNhZmVdKX0sQ3Jpc3AucHJvdG90eXBlLm11dGVTb3VuZD1mdW5jdGlvbihtdXRlKXt0aGlzLmNyZWF0ZVNpbmdsZXRvbklmTmVjZXNzYXJ5KCksd2luZG93LiRjcmlzcC5wdXNoKFsiY29uZmlnIiwic291bmQ6bXV0ZSIsW211dGVdXSl9LENyaXNwLnByb3RvdHlwZS50b2dnbGVPcGVyYXRvckNvdW50PWZ1bmN0aW9uKGVuYWJsZWQpe3RoaXMuY3JlYXRlU2luZ2xldG9uSWZOZWNlc3NhcnkoKSx3aW5kb3cuJGNyaXNwLnB1c2goWyJjb25maWciLCJzaG93Om9wZXJhdG9yOmNvdW50IixbZW5hYmxlZF1dKX0sQ3Jpc3AucHJvdG90eXBlLmNyZWF0ZVNpbmdsZXRvbklmTmVjZXNzYXJ5PWZ1bmN0aW9uKCl7dm9pZCAwPT09d2luZG93LiRjcmlzcCYmKHdpbmRvdy4kY3Jpc3A9W10pfSxDcmlzcC5wcm90b3R5cGUuYXV0b0luamVjdElmTmVjZXNzYXN5PWZ1bmN0aW9uKCl7dGhpcy5pc0NyaXNwSW5qZWN0ZWQoKXx8dGhpcy5sb2FkKCl9LENyaXNwLnByb3RvdHlwZS5pc0NyaXNwSW5qZWN0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMD09PXRoaXMuaW5qZWN0ZWR8fCEhd2luZG93LiRjcmlzcCYmISF3aW5kb3cuJGNyaXNwLmlzfSxDcmlzcC5wcm90b3R5cGUuZGVmZXJyZWRMb2FkaW5nPWZ1bmN0aW9uKCl7dmFyIF90aGlzPXRoaXM7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsZnVuY3Rpb24oKXtfdGhpcy5sb2FkKCl9KX0sQ3Jpc3B9KCkpfSw0NDAyMDpmdW5jdGlvbihtb2R1bGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgdG9rZW49IiVbYS1mMC05XXsyfSIsc2luZ2xlTWF0Y2hlcj1SZWdFeHAoIigiK3Rva2VuKyIpfChbXiVdKz8pIiwiZ2kiKSxtdWx0aU1hdGNoZXI9UmVnRXhwKCIoIit0b2tlbisiKSsiLCJnaSIpO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGVuY29kZWRVUkkpe2lmKCJzdHJpbmciIT10eXBlb2YgZW5jb2RlZFVSSSl0aHJvdyBUeXBlRXJyb3IoIkV4cGVjdGVkIGBlbmNvZGVkVVJJYCB0byBiZSBvZiB0eXBlIGBzdHJpbmdgLCBnb3QgYCIrdHlwZW9mIGVuY29kZWRVUkkrImAiKTt0cnl7cmV0dXJuIGVuY29kZWRVUkk9ZW5jb2RlZFVSSS5yZXBsYWNlKC9cKy9nLCIgIiksZGVjb2RlVVJJQ29tcG9uZW50KGVuY29kZWRVUkkpfWNhdGNoKGVycil7cmV0dXJuIGZ1bmN0aW9uKGlucHV0KXtmb3IodmFyIHJlcGxhY2VNYXA9eyIlRkUlRkYiOiLvv73vv70iLCIlRkYlRkUiOiLvv73vv70ifSxtYXRjaD1tdWx0aU1hdGNoZXIuZXhlYyhpbnB1dCk7bWF0Y2g7KXt0cnl7cmVwbGFjZU1hcFttYXRjaFswXV09ZGVjb2RlVVJJQ29tcG9uZW50KG1hdGNoWzBdKX1jYXRjaChlcnIpe3ZhciByZXN1bHQ9ZnVuY3Rpb24oaW5wdXQpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGlucHV0KX1jYXRjaChlcnIpe2Zvcih2YXIgdG9rZW5zPWlucHV0Lm1hdGNoKHNpbmdsZU1hdGNoZXIpfHxbXSxpPTE7aTx0b2tlbnMubGVuZ3RoO2krKyl0b2tlbnM9KGlucHV0PShmdW5jdGlvbiBkZWNvZGVDb21wb25lbnRzKGNvbXBvbmVudHMsc3BsaXQpe3RyeXtyZXR1cm5bZGVjb2RlVVJJQ29tcG9uZW50KGNvbXBvbmVudHMuam9pbigiIikpXX1jYXRjaChlcnIpe31pZigxPT09Y29tcG9uZW50cy5sZW5ndGgpcmV0dXJuIGNvbXBvbmVudHM7c3BsaXQ9c3BsaXR8fDE7dmFyIGxlZnQ9Y29tcG9uZW50cy5zbGljZSgwLHNwbGl0KSxyaWdodD1jb21wb25lbnRzLnNsaWNlKHNwbGl0KTtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5jYWxsKFtdLGRlY29kZUNvbXBvbmVudHMobGVmdCksZGVjb2RlQ29tcG9uZW50cyhyaWdodCkpfSkodG9rZW5zLGkpLmpvaW4oIiIpKS5tYXRjaChzaW5nbGVNYXRjaGVyKXx8W107cmV0dXJuIGlucHV0fX0obWF0Y2hbMF0pO3Jlc3VsdCE9PW1hdGNoWzBdJiYocmVwbGFjZU1hcFttYXRjaFswXV09cmVzdWx0KX1tYXRjaD1tdWx0aU1hdGNoZXIuZXhlYyhpbnB1dCl9cmVwbGFjZU1hcFsiJUMyIl09Iu+/vSI7Zm9yKHZhciBlbnRyaWVzPU9iamVjdC5rZXlzKHJlcGxhY2VNYXApLGk9MDtpPGVudHJpZXMubGVuZ3RoO2krKyl7dmFyIGtleT1lbnRyaWVzW2ldO2lucHV0PWlucHV0LnJlcGxhY2UoUmVnRXhwKGtleSwiZyIpLHJlcGxhY2VNYXBba2V5XSl9cmV0dXJuIGlucHV0fShlbmNvZGVkVVJJKX19fSw5MjgwNjpmdW5jdGlvbihtb2R1bGUpeyJ1c2Ugc3RyaWN0Ijttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihvYmoscHJlZGljYXRlKXtmb3IodmFyIHJldD17fSxrZXlzPU9iamVjdC5rZXlzKG9iaiksaXNBcnI9QXJyYXkuaXNBcnJheShwcmVkaWNhdGUpLGk9MDtpPGtleXMubGVuZ3RoO2krKyl7dmFyIGtleT1rZXlzW2ldLHZhbD1vYmpba2V5XTsoaXNBcnI/LTEhPT1wcmVkaWNhdGUuaW5kZXhPZihrZXkpOnByZWRpY2F0ZShrZXksdmFsLG9iaikpJiYocmV0W2tleV09dmFsKX1yZXR1cm4gcmV0fX0sODY3OTpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfd2VicGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0Ijt2YXIgcmVhY3RJcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDU5ODY0KSxSRUFDVF9TVEFUSUNTPXtjaGlsZENvbnRleHRUeXBlczohMCxjb250ZXh0VHlwZTohMCxjb250ZXh0VHlwZXM6ITAsZGVmYXVsdFByb3BzOiEwLGRpc3BsYXlOYW1lOiEwLGdldERlZmF1bHRQcm9wczohMCxnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I6ITAsZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzOiEwLG1peGluczohMCxwcm9wVHlwZXM6ITAsdHlwZTohMH0sS05PV05fU1RBVElDUz17bmFtZTohMCxsZW5ndGg6ITAscHJvdG90eXBlOiEwLGNhbGxlcjohMCxjYWxsZWU6ITAsYXJndW1lbnRzOiEwLGFyaXR5OiEwfSxNRU1PX1NUQVRJQ1M9eyQkdHlwZW9mOiEwLGNvbXBhcmU6ITAsZGVmYXVsdFByb3BzOiEwLGRpc3BsYXlOYW1lOiEwLHByb3BUeXBlczohMCx0eXBlOiEwfSxUWVBFX1NUQVRJQ1M9e307ZnVuY3Rpb24gZ2V0U3RhdGljcyhjb21wb25lbnQpe3JldHVybiByZWFjdElzLmlzTWVtbyhjb21wb25lbnQpP01FTU9fU1RBVElDUzpUWVBFX1NUQVRJQ1NbY29tcG9uZW50LiQkdHlwZW9mXXx8UkVBQ1RfU1RBVElDU31UWVBFX1NUQVRJQ1NbcmVhY3RJcy5Gb3J3YXJkUmVmXT17JCR0eXBlb2Y6ITAscmVuZGVyOiEwLGRlZmF1bHRQcm9wczohMCxkaXNwbGF5TmFtZTohMCxwcm9wVHlwZXM6ITB9LFRZUEVfU1RBVElDU1tyZWFjdElzLk1lbW9dPU1FTU9fU1RBVElDUzt2YXIgZGVmaW5lUHJvcGVydHk9T2JqZWN0LmRlZmluZVByb3BlcnR5LGdldE93blByb3BlcnR5TmFtZXM9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMsZ2V0T3duUHJvcGVydHlTeW1ib2xzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsZ2V0UHJvdG90eXBlT2Y9T2JqZWN0LmdldFByb3RvdHlwZU9mLG9iamVjdFByb3RvdHlwZT1PYmplY3QucHJvdG90eXBlO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uIGhvaXN0Tm9uUmVhY3RTdGF0aWNzKHRhcmdldENvbXBvbmVudCxzb3VyY2VDb21wb25lbnQsYmxhY2tsaXN0KXtpZigic3RyaW5nIiE9dHlwZW9mIHNvdXJjZUNvbXBvbmVudCl7aWYob2JqZWN0UHJvdG90eXBlKXt2YXIgaW5oZXJpdGVkQ29tcG9uZW50PWdldFByb3RvdHlwZU9mKHNvdXJjZUNvbXBvbmVudCk7aW5oZXJpdGVkQ29tcG9uZW50JiZpbmhlcml0ZWRDb21wb25lbnQhPT1vYmplY3RQcm90b3R5cGUmJmhvaXN0Tm9uUmVhY3RTdGF0aWNzKHRhcmdldENvbXBvbmVudCxpbmhlcml0ZWRDb21wb25lbnQsYmxhY2tsaXN0KX12YXIga2V5cz1nZXRPd25Qcm9wZXJ0eU5hbWVzKHNvdXJjZUNvbXBvbmVudCk7Z2V0T3duUHJvcGVydHlTeW1ib2xzJiYoa2V5cz1rZXlzLmNvbmNhdChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoc291cmNlQ29tcG9uZW50KSkpO2Zvcih2YXIgdGFyZ2V0U3RhdGljcz1nZXRTdGF0aWNzKHRhcmdldENvbXBvbmVudCksc291cmNlU3RhdGljcz1nZXRTdGF0aWNzKHNvdXJjZUNvbXBvbmVudCksaT0wO2k8a2V5cy5sZW5ndGg7KytpKXt2YXIga2V5PWtleXNbaV07aWYoIUtOT1dOX1NUQVRJQ1Nba2V5XSYmIShibGFja2xpc3QmJmJsYWNrbGlzdFtrZXldKSYmIShzb3VyY2VTdGF0aWNzJiZzb3VyY2VTdGF0aWNzW2tleV0pJiYhKHRhcmdldFN0YXRpY3MmJnRhcmdldFN0YXRpY3Nba2V5XSkpe3ZhciBkZXNjcmlwdG9yPWdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2VDb21wb25lbnQsa2V5KTt0cnl7ZGVmaW5lUHJvcGVydHkodGFyZ2V0Q29tcG9uZW50LGtleSxkZXNjcmlwdG9yKX1jYXRjaChlKXt9fX19cmV0dXJuIHRhcmdldENvbXBvbmVudH19LDYyNzA1OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIFN5bWJvbDE9X193ZWJwYWNrX3JlcXVpcmVfXyg1NTYzOSkuU3ltYm9sO21vZHVsZS5leHBvcnRzPVN5bWJvbDF9LDQ0MjM5OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIFN5bWJvbDE9X193ZWJwYWNrX3JlcXVpcmVfXyg2MjcwNSksZ2V0UmF3VGFnPV9fd2VicGFja19yZXF1aXJlX18oODk2MDcpLG9iamVjdFRvU3RyaW5nPV9fd2VicGFja19yZXF1aXJlX18oMjMzMyksc3ltVG9TdHJpbmdUYWc9U3ltYm9sMT9TeW1ib2wxLnRvU3RyaW5nVGFnOnZvaWQgMDttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbih2YWx1ZSl7cmV0dXJuIG51bGw9PXZhbHVlP3ZvaWQgMD09PXZhbHVlPyJbb2JqZWN0IFVuZGVmaW5lZF0iOiJbb2JqZWN0IE51bGxdIjpzeW1Ub1N0cmluZ1RhZyYmc3ltVG9TdHJpbmdUYWcgaW4gT2JqZWN0KHZhbHVlKT9nZXRSYXdUYWcodmFsdWUpOm9iamVjdFRvU3RyaW5nKHZhbHVlKX19LDI3NTYxOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIHRyaW1tZWRFbmRJbmRleD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3OTkwKSxyZVRyaW1TdGFydD0vXlxzKy87bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oc3RyaW5nKXtyZXR1cm4gc3RyaW5nP3N0cmluZy5zbGljZSgwLHRyaW1tZWRFbmRJbmRleChzdHJpbmcpKzEpLnJlcGxhY2UocmVUcmltU3RhcnQsIiIpOnN0cmluZ319LDMxOTU3OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGZyZWVHbG9iYWw9Im9iamVjdCI9PXR5cGVvZiBfX3dlYnBhY2tfcmVxdWlyZV9fLmcmJl9fd2VicGFja19yZXF1aXJlX18uZyYmX193ZWJwYWNrX3JlcXVpcmVfXy5nLk9iamVjdD09PU9iamVjdCYmX193ZWJwYWNrX3JlcXVpcmVfXy5nO21vZHVsZS5leHBvcnRzPWZyZWVHbG9iYWx9LDg5NjA3OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIFN5bWJvbDE9X193ZWJwYWNrX3JlcXVpcmVfXyg2MjcwNSksb2JqZWN0UHJvdG89T2JqZWN0LnByb3RvdHlwZSxoYXNPd25Qcm9wZXJ0eT1vYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eSxuYXRpdmVPYmplY3RUb1N0cmluZz1vYmplY3RQcm90by50b1N0cmluZyxzeW1Ub1N0cmluZ1RhZz1TeW1ib2wxP1N5bWJvbDEudG9TdHJpbmdUYWc6dm9pZCAwO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKHZhbHVlKXt2YXIgaXNPd249aGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSxzeW1Ub1N0cmluZ1RhZyksdGFnPXZhbHVlW3N5bVRvU3RyaW5nVGFnXTt0cnl7dmFsdWVbc3ltVG9TdHJpbmdUYWddPXZvaWQgMDt2YXIgdW5tYXNrZWQ9ITB9Y2F0Y2goZSl7fXZhciByZXN1bHQ9bmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7cmV0dXJuIHVubWFza2VkJiYoaXNPd24/dmFsdWVbc3ltVG9TdHJpbmdUYWddPXRhZzpkZWxldGUgdmFsdWVbc3ltVG9TdHJpbmdUYWddKSxyZXN1bHR9fSwyMzMzOmZ1bmN0aW9uKG1vZHVsZSl7dmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24odmFsdWUpe3JldHVybiBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKX19LDU1NjM5OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGZyZWVHbG9iYWw9X193ZWJwYWNrX3JlcXVpcmVfXygzMTk1NyksZnJlZVNlbGY9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixyb290PWZyZWVHbG9iYWx8fGZyZWVTZWxmfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpO21vZHVsZS5leHBvcnRzPXJvb3R9LDY3OTkwOmZ1bmN0aW9uKG1vZHVsZSl7dmFyIHJlV2hpdGVzcGFjZT0vXHMvO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKHN0cmluZyl7Zm9yKHZhciBpbmRleD1zdHJpbmcubGVuZ3RoO2luZGV4LS0mJnJlV2hpdGVzcGFjZS50ZXN0KHN0cmluZy5jaGFyQXQoaW5kZXgpKTspO3JldHVybiBpbmRleH19LDIzMjc5OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGlzT2JqZWN0PV9fd2VicGFja19yZXF1aXJlX18oMTMyMTgpLG5vdz1fX3dlYnBhY2tfcmVxdWlyZV9fKDc3NzEpLHRvTnVtYmVyPV9fd2VicGFja19yZXF1aXJlX18oMTQ4NDEpLG5hdGl2ZU1heD1NYXRoLm1heCxuYXRpdmVNaW49TWF0aC5taW47bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oZnVuYyx3YWl0LG9wdGlvbnMpe3ZhciBsYXN0QXJncyxsYXN0VGhpcyxtYXhXYWl0LHJlc3VsdCx0aW1lcklkLGxhc3RDYWxsVGltZSxsYXN0SW52b2tlVGltZT0wLGxlYWRpbmc9ITEsbWF4aW5nPSExLHRyYWlsaW5nPSEwO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBmdW5jKXRocm93IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBmdW5jdGlvbiIpO2Z1bmN0aW9uIGludm9rZUZ1bmModGltZSl7dmFyIGFyZ3M9bGFzdEFyZ3MsdGhpc0FyZz1sYXN0VGhpcztyZXR1cm4gbGFzdEFyZ3M9bGFzdFRoaXM9dm9pZCAwLGxhc3RJbnZva2VUaW1lPXRpbWUscmVzdWx0PWZ1bmMuYXBwbHkodGhpc0FyZyxhcmdzKX1mdW5jdGlvbiBzaG91bGRJbnZva2UodGltZSl7dmFyIHRpbWVTaW5jZUxhc3RDYWxsPXRpbWUtbGFzdENhbGxUaW1lLHRpbWVTaW5jZUxhc3RJbnZva2U9dGltZS1sYXN0SW52b2tlVGltZTtyZXR1cm4gdm9pZCAwPT09bGFzdENhbGxUaW1lfHx0aW1lU2luY2VMYXN0Q2FsbD49d2FpdHx8dGltZVNpbmNlTGFzdENhbGw8MHx8bWF4aW5nJiZ0aW1lU2luY2VMYXN0SW52b2tlPj1tYXhXYWl0fWZ1bmN0aW9uIHRpbWVyRXhwaXJlZCgpe3ZhciB0aW1lU2luY2VMYXN0Q2FsbCx0aW1lU2luY2VMYXN0SW52b2tlLHRpbWVXYWl0aW5nLHRpbWU9bm93KCk7aWYoc2hvdWxkSW52b2tlKHRpbWUpKXJldHVybiB0cmFpbGluZ0VkZ2UodGltZSk7dGltZXJJZD1zZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwodGltZVNpbmNlTGFzdENhbGw9dGltZS1sYXN0Q2FsbFRpbWUsdGltZVNpbmNlTGFzdEludm9rZT10aW1lLWxhc3RJbnZva2VUaW1lLHRpbWVXYWl0aW5nPXdhaXQtdGltZVNpbmNlTGFzdENhbGwsbWF4aW5nP25hdGl2ZU1pbih0aW1lV2FpdGluZyxtYXhXYWl0LXRpbWVTaW5jZUxhc3RJbnZva2UpOnRpbWVXYWl0aW5nKSl9ZnVuY3Rpb24gdHJhaWxpbmdFZGdlKHRpbWUpe3JldHVybih0aW1lcklkPXZvaWQgMCx0cmFpbGluZyYmbGFzdEFyZ3MpP2ludm9rZUZ1bmModGltZSk6KGxhc3RBcmdzPWxhc3RUaGlzPXZvaWQgMCxyZXN1bHQpfWZ1bmN0aW9uIGRlYm91bmNlZCgpe3ZhciB0aW1lLHRpbWUxPW5vdygpLGlzSW52b2tpbmc9c2hvdWxkSW52b2tlKHRpbWUxKTtpZihsYXN0QXJncz1hcmd1bWVudHMsbGFzdFRoaXM9dGhpcyxsYXN0Q2FsbFRpbWU9dGltZTEsaXNJbnZva2luZyl7aWYodm9pZCAwPT09dGltZXJJZClyZXR1cm4gbGFzdEludm9rZVRpbWU9dGltZT1sYXN0Q2FsbFRpbWUsdGltZXJJZD1zZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCx3YWl0KSxsZWFkaW5nP2ludm9rZUZ1bmModGltZSk6cmVzdWx0O2lmKG1heGluZylyZXR1cm4gY2xlYXJUaW1lb3V0KHRpbWVySWQpLHRpbWVySWQ9c2V0VGltZW91dCh0aW1lckV4cGlyZWQsd2FpdCksaW52b2tlRnVuYyhsYXN0Q2FsbFRpbWUpfXJldHVybiB2b2lkIDA9PT10aW1lcklkJiYodGltZXJJZD1zZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCx3YWl0KSkscmVzdWx0fXJldHVybiB3YWl0PXRvTnVtYmVyKHdhaXQpfHwwLGlzT2JqZWN0KG9wdGlvbnMpJiYobGVhZGluZz0hIW9wdGlvbnMubGVhZGluZyxtYXhXYWl0PShtYXhpbmc9Im1heFdhaXQiaW4gb3B0aW9ucyk/bmF0aXZlTWF4KHRvTnVtYmVyKG9wdGlvbnMubWF4V2FpdCl8fDAsd2FpdCk6bWF4V2FpdCx0cmFpbGluZz0idHJhaWxpbmciaW4gb3B0aW9ucz8hIW9wdGlvbnMudHJhaWxpbmc6dHJhaWxpbmcpLGRlYm91bmNlZC5jYW5jZWw9ZnVuY3Rpb24oKXt2b2lkIDAhPT10aW1lcklkJiZjbGVhclRpbWVvdXQodGltZXJJZCksbGFzdEludm9rZVRpbWU9MCxsYXN0QXJncz1sYXN0Q2FsbFRpbWU9bGFzdFRoaXM9dGltZXJJZD12b2lkIDB9LGRlYm91bmNlZC5mbHVzaD1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT10aW1lcklkP3Jlc3VsdDp0cmFpbGluZ0VkZ2Uobm93KCkpfSxkZWJvdW5jZWR9fSwxMzIxODpmdW5jdGlvbihtb2R1bGUpe21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKHZhbHVlKXt2YXIgdHlwZT10eXBlb2YgdmFsdWU7cmV0dXJuIG51bGwhPXZhbHVlJiYoIm9iamVjdCI9PXR5cGV8fCJmdW5jdGlvbiI9PXR5cGUpfX0sMzcwMDU6ZnVuY3Rpb24obW9kdWxlKXttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbih2YWx1ZSl7cmV0dXJuIG51bGwhPXZhbHVlJiYib2JqZWN0Ij09dHlwZW9mIHZhbHVlfX0sMzM0NDg6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3dlYnBhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgYmFzZUdldFRhZz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ0MjM5KSxpc09iamVjdExpa2U9X193ZWJwYWNrX3JlcXVpcmVfXygzNzAwNSk7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24odmFsdWUpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgdmFsdWV8fGlzT2JqZWN0TGlrZSh2YWx1ZSkmJiJbb2JqZWN0IFN5bWJvbF0iPT1iYXNlR2V0VGFnKHZhbHVlKX19LDc3NzE6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3dlYnBhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgcm9vdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDU1NjM5KTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiByb290LkRhdGUubm93KCl9fSwyMzQ5MzpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfd2VicGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBkZWJvdW5jZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDIzMjc5KSxpc09iamVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDEzMjE4KTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihmdW5jLHdhaXQsb3B0aW9ucyl7dmFyIGxlYWRpbmc9ITAsdHJhaWxpbmc9ITA7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGZ1bmMpdGhyb3cgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGZ1bmN0aW9uIik7cmV0dXJuIGlzT2JqZWN0KG9wdGlvbnMpJiYobGVhZGluZz0ibGVhZGluZyJpbiBvcHRpb25zPyEhb3B0aW9ucy5sZWFkaW5nOmxlYWRpbmcsdHJhaWxpbmc9InRyYWlsaW5nImluIG9wdGlvbnM/ISFvcHRpb25zLnRyYWlsaW5nOnRyYWlsaW5nKSxkZWJvdW5jZShmdW5jLHdhaXQse2xlYWRpbmc6bGVhZGluZyxtYXhXYWl0OndhaXQsdHJhaWxpbmc6dHJhaWxpbmd9KX19LDE0ODQxOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGJhc2VUcmltPV9fd2VicGFja19yZXF1aXJlX18oMjc1NjEpLGlzT2JqZWN0PV9fd2VicGFja19yZXF1aXJlX18oMTMyMTgpLGlzU3ltYm9sPV9fd2VicGFja19yZXF1aXJlX18oMzM0NDgpLE5BTj0wLzAscmVJc0JhZEhleD0vXlstK10weFswLTlhLWZdKyQvaSxyZUlzQmluYXJ5PS9eMGJbMDFdKyQvaSxyZUlzT2N0YWw9L14wb1swLTddKyQvaSxmcmVlUGFyc2VJbnQ9cGFyc2VJbnQ7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24odmFsdWUpe2lmKCJudW1iZXIiPT10eXBlb2YgdmFsdWUpcmV0dXJuIHZhbHVlO2lmKGlzU3ltYm9sKHZhbHVlKSlyZXR1cm4gTkFOO2lmKGlzT2JqZWN0KHZhbHVlKSl7dmFyIG90aGVyPSJmdW5jdGlvbiI9PXR5cGVvZiB2YWx1ZS52YWx1ZU9mP3ZhbHVlLnZhbHVlT2YoKTp2YWx1ZTt2YWx1ZT1pc09iamVjdChvdGhlcik/b3RoZXIrIiI6b3RoZXJ9aWYoInN0cmluZyIhPXR5cGVvZiB2YWx1ZSlyZXR1cm4gMD09PXZhbHVlP3ZhbHVlOit2YWx1ZTt2YWx1ZT1iYXNlVHJpbSh2YWx1ZSk7dmFyIGlzQmluYXJ5PXJlSXNCaW5hcnkudGVzdCh2YWx1ZSk7cmV0dXJuIGlzQmluYXJ5fHxyZUlzT2N0YWwudGVzdCh2YWx1ZSk/ZnJlZVBhcnNlSW50KHZhbHVlLnNsaWNlKDIpLGlzQmluYXJ5PzI6OCk6cmVJc0JhZEhleC50ZXN0KHZhbHVlKT9OQU46K3ZhbHVlfX0sODY5MDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7SmM6ZnVuY3Rpb24oKXtyZXR1cm4gYXBwV2l0aFRyYW5zbGF0aW9ufSwkRzpmdW5jdGlvbigpe3JldHVybiB1c2VUcmFuc2xhdGlvbn19KTt2YXIgaTE4bkluc3RhbmNlLGFycmF5V2l0aEhvbGVzPV9fd2VicGFja19yZXF1aXJlX18oMjU4NDMpLHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5PV9fd2VicGFja19yZXF1aXJlX18oMzYxNDQpLG5vbkl0ZXJhYmxlUmVzdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQzNzU2KTtmdW5jdGlvbiBfc2xpY2VkVG9BcnJheShhcnIsaSl7cmV0dXJuKDAsYXJyYXlXaXRoSG9sZXMuWikoYXJyKXx8ZnVuY3Rpb24oYXJyLGkpe3ZhciBfaT1udWxsPT1hcnI/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmYXJyW1N5bWJvbC5pdGVyYXRvcl18fGFyclsiQEBpdGVyYXRvciJdO2lmKG51bGwhPV9pKXt2YXIgX3MsX2UsX3gsX3IsX2Fycj1bXSxfbj0hMCxfZD0hMTt0cnl7aWYoX3g9KF9pPV9pLmNhbGwoYXJyKSkubmV4dCwwPT09aSl7aWYoT2JqZWN0KF9pKSE9PV9pKXJldHVybjtfbj0hMX1lbHNlIGZvcig7IShfbj0oX3M9X3guY2FsbChfaSkpLmRvbmUpJiYoX2Fyci5wdXNoKF9zLnZhbHVlKSxfYXJyLmxlbmd0aCE9PWkpO19uPSEwKTt9Y2F0Y2goZXJyKXtfZD0hMCxfZT1lcnJ9ZmluYWxseXt0cnl7aWYoIV9uJiZudWxsIT1faS5yZXR1cm4mJihfcj1faS5yZXR1cm4oKSxPYmplY3QoX3IpIT09X3IpKXJldHVybn1maW5hbGx5e2lmKF9kKXRocm93IF9lfX1yZXR1cm4gX2Fycn19KGFycixpKXx8KDAsdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuWikoYXJyLGkpfHwoMCxub25JdGVyYWJsZVJlc3QuWikoKX12YXIgZGVmaW5lUHJvcGVydHk9X193ZWJwYWNrX3JlcXVpcmVfXyg0NjY5NikscmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksY2xhc3NDYWxsQ2hlY2s9X193ZWJwYWNrX3JlcXVpcmVfXyg3NDUzNiksY3JlYXRlQ2xhc3M9X193ZWJwYWNrX3JlcXVpcmVfXygzMDg2NiksbWF0Y2hIdG1sRW50aXR5PS8mKD86YW1wfCMzOHxsdHwjNjB8Z3R8IzYyfGFwb3N8IzM5fHF1b3R8IzM0fG5ic3B8IzE2MHxjb3B5fCMxNjl8cmVnfCMxNzR8aGVsbGlwfCM4MjMwfCN4MkZ8IzQ3KTsvZyxodG1sRW50aXRpZXM9eyImYW1wOyI6IiYiLCImIzM4OyI6IiYiLCImbHQ7IjoiPCIsIiYjNjA7IjoiPCIsIiZndDsiOiI+IiwiJiM2MjsiOiI+IiwiJmFwb3M7IjoiJyIsIiYjMzk7IjoiJyIsIiZxdW90OyI6JyInLCImIzM0OyI6JyInLCImbmJzcDsiOiIgIiwiJiMxNjA7IjoiICIsIiZjb3B5OyI6Ilx4YTkiLCImIzE2OTsiOiJceGE5IiwiJnJlZzsiOiJceGFlIiwiJiMxNzQ7IjoiXHhhZSIsIiZoZWxsaXA7Ijoi4oCmIiwiJiM4MjMwOyI6IuKApiIsIiYjeDJGOyI6Ii8iLCImIzQ3OyI6Ii8ifSx1bmVzY2FwZUh0bWxFbnRpdHk9ZnVuY3Rpb24obSl7cmV0dXJuIGh0bWxFbnRpdGllc1ttXX0sZGVmYXVsdE9wdGlvbnM9e2JpbmRJMThuOiJsYW5ndWFnZUNoYW5nZWQiLGJpbmRJMThuU3RvcmU6IiIsdHJhbnNFbXB0eU5vZGVWYWx1ZToiIix0cmFuc1N1cHBvcnRCYXNpY0h0bWxOb2RlczohMCx0cmFuc1dyYXBUZXh0Tm9kZXM6IiIsdHJhbnNLZWVwQmFzaWNIdG1sTm9kZXNGb3I6WyJiciIsInN0cm9uZyIsImkiLCJwIl0sdXNlU3VzcGVuc2U6ITAsdW5lc2NhcGU6ZnVuY3Rpb24odGV4dCl7cmV0dXJuIHRleHQucmVwbGFjZShtYXRjaEh0bWxFbnRpdHksdW5lc2NhcGVIdG1sRW50aXR5KX19LEkxOG5Db250ZXh0PSgwLHJlYWN0LmNyZWF0ZUNvbnRleHQpKCksUmVwb3J0TmFtZXNwYWNlcz1mdW5jdGlvbigpe2Z1bmN0aW9uIFJlcG9ydE5hbWVzcGFjZXMoKXsoMCxjbGFzc0NhbGxDaGVjay5aKSh0aGlzLFJlcG9ydE5hbWVzcGFjZXMpLHRoaXMudXNlZE5hbWVzcGFjZXM9e319cmV0dXJuKDAsY3JlYXRlQ2xhc3MuWikoUmVwb3J0TmFtZXNwYWNlcyxbe2tleToiYWRkVXNlZE5hbWVzcGFjZXMiLHZhbHVlOmZ1bmN0aW9uKG5hbWVzcGFjZXMpe3ZhciBfdGhpcz10aGlzO25hbWVzcGFjZXMuZm9yRWFjaChmdW5jdGlvbihucyl7X3RoaXMudXNlZE5hbWVzcGFjZXNbbnNdfHwoX3RoaXMudXNlZE5hbWVzcGFjZXNbbnNdPSEwKX0pfX0se2tleToiZ2V0VXNlZE5hbWVzcGFjZXMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMudXNlZE5hbWVzcGFjZXMpfX1dKSxSZXBvcnROYW1lc3BhY2VzfSgpO2Z1bmN0aW9uIHdhcm4oKXtpZihjb25zb2xlJiZjb25zb2xlLndhcm4pe2Zvcih2YXIgX2NvbnNvbGUsX2xlbj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbiksX2tleT0wO19rZXk8X2xlbjtfa2V5KyspYXJnc1tfa2V5XT1hcmd1bWVudHNbX2tleV07InN0cmluZyI9PXR5cGVvZiBhcmdzWzBdJiYoYXJnc1swXT0icmVhY3QtaTE4bmV4dDo6ICIuY29uY2F0KGFyZ3NbMF0pKSwoX2NvbnNvbGU9Y29uc29sZSkud2Fybi5hcHBseShfY29uc29sZSxhcmdzKX19dmFyIGFscmVhZHlXYXJuZWQ9e307ZnVuY3Rpb24gd2Fybk9uY2UoKXtmb3IodmFyIF9sZW4yPWFyZ3VtZW50cy5sZW5ndGgsYXJncz1BcnJheShfbGVuMiksX2tleTI9MDtfa2V5MjxfbGVuMjtfa2V5MisrKWFyZ3NbX2tleTJdPWFyZ3VtZW50c1tfa2V5Ml07InN0cmluZyI9PXR5cGVvZiBhcmdzWzBdJiZhbHJlYWR5V2FybmVkW2FyZ3NbMF1dfHwoInN0cmluZyI9PXR5cGVvZiBhcmdzWzBdJiYoYWxyZWFkeVdhcm5lZFthcmdzWzBdXT1uZXcgRGF0ZSksd2Fybi5hcHBseSh2b2lkIDAsYXJncykpfWZ1bmN0aW9uIGxvYWROYW1lc3BhY2VzKGkxOG4sbnMsY2Ipe2kxOG4ubG9hZE5hbWVzcGFjZXMobnMsZnVuY3Rpb24oKXtpMThuLmlzSW5pdGlhbGl6ZWQ/Y2IoKTppMThuLm9uKCJpbml0aWFsaXplZCIsZnVuY3Rpb24gaW5pdGlhbGl6ZWQoKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aTE4bi5vZmYoImluaXRpYWxpemVkIixpbml0aWFsaXplZCl9LDApLGNiKCl9KX0pfWZ1bmN0aW9uIHVzZVRyYW5zbGF0aW9uX293bktleXMob2JqZWN0LGVudW1lcmFibGVPbmx5KXt2YXIga2V5cz1PYmplY3Qua2V5cyhvYmplY3QpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBzeW1ib2xzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTtlbnVtZXJhYmxlT25seSYmKHN5bWJvbHM9c3ltYm9scy5maWx0ZXIoZnVuY3Rpb24oc3ltKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3Qsc3ltKS5lbnVtZXJhYmxlfSkpLGtleXMucHVzaC5hcHBseShrZXlzLHN5bWJvbHMpfXJldHVybiBrZXlzfWZ1bmN0aW9uIHVzZVRyYW5zbGF0aW9uX29iamVjdFNwcmVhZCh0YXJnZXQpe2Zvcih2YXIgaT0xO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspe3ZhciBzb3VyY2U9bnVsbCE9YXJndW1lbnRzW2ldP2FyZ3VtZW50c1tpXTp7fTtpJTI/dXNlVHJhbnNsYXRpb25fb3duS2V5cyhPYmplY3Qoc291cmNlKSwhMCkuZm9yRWFjaChmdW5jdGlvbihrZXkpeygwLGRlZmluZVByb3BlcnR5LlopKHRhcmdldCxrZXksc291cmNlW2tleV0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpOnVzZVRyYW5zbGF0aW9uX293bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24oa2V5KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LGtleSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSxrZXkpKX0pfXJldHVybiB0YXJnZXR9dmFyIHVzZVByZXZpb3VzPWZ1bmN0aW9uKHZhbHVlLGlnbm9yZSl7dmFyIHJlZj0oMCxyZWFjdC51c2VSZWYpKCk7cmV0dXJuKDAscmVhY3QudXNlRWZmZWN0KShmdW5jdGlvbigpe3JlZi5jdXJyZW50PWlnbm9yZT9yZWYuY3VycmVudDp2YWx1ZX0sW3ZhbHVlLGlnbm9yZV0pLHJlZi5jdXJyZW50fTtmdW5jdGlvbiB1c2VUcmFuc2xhdGlvbihucyl7dmFyIHByb3BzPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxpMThuRnJvbVByb3BzPXByb3BzLmkxOG4sX3JlZj0oMCxyZWFjdC51c2VDb250ZXh0KShJMThuQ29udGV4dCl8fHt9LGkxOG5Gcm9tQ29udGV4dD1fcmVmLmkxOG4sZGVmYXVsdE5TRnJvbUNvbnRleHQ9X3JlZi5kZWZhdWx0TlMsaTE4bj1pMThuRnJvbVByb3BzfHxpMThuRnJvbUNvbnRleHR8fGkxOG5JbnN0YW5jZTtpZihpMThuJiYhaTE4bi5yZXBvcnROYW1lc3BhY2VzJiYoaTE4bi5yZXBvcnROYW1lc3BhY2VzPW5ldyBSZXBvcnROYW1lc3BhY2VzKSwhaTE4bil7d2Fybk9uY2UoIllvdSB3aWxsIG5lZWQgdG8gcGFzcyBpbiBhbiBpMThuZXh0IGluc3RhbmNlIGJ5IHVzaW5nIGluaXRSZWFjdEkxOG5leHQiKTt2YXIgbm90UmVhZHlUPWZ1bmN0aW9uKGspe3JldHVybiBBcnJheS5pc0FycmF5KGspP2tbay5sZW5ndGgtMV06a30scmV0Tm90UmVhZHk9W25vdFJlYWR5VCx7fSwhMV07cmV0dXJuIHJldE5vdFJlYWR5LnQ9bm90UmVhZHlULHJldE5vdFJlYWR5LmkxOG49e30scmV0Tm90UmVhZHkucmVhZHk9ITEscmV0Tm90UmVhZHl9aTE4bi5vcHRpb25zLnJlYWN0JiZ2b2lkIDAhPT1pMThuLm9wdGlvbnMucmVhY3Qud2FpdCYmd2Fybk9uY2UoIkl0IHNlZW1zIHlvdSBhcmUgc3RpbGwgdXNpbmcgdGhlIG9sZCB3YWl0IG9wdGlvbiwgeW91IG1heSBtaWdyYXRlIHRvIHRoZSBuZXcgdXNlU3VzcGVuc2UgYmVoYXZpb3VyLiIpO3ZhciBpMThuT3B0aW9ucz11c2VUcmFuc2xhdGlvbl9vYmplY3RTcHJlYWQodXNlVHJhbnNsYXRpb25fb2JqZWN0U3ByZWFkKHVzZVRyYW5zbGF0aW9uX29iamVjdFNwcmVhZCh7fSxkZWZhdWx0T3B0aW9ucyksaTE4bi5vcHRpb25zLnJlYWN0KSxwcm9wcyksdXNlU3VzcGVuc2U9aTE4bk9wdGlvbnMudXNlU3VzcGVuc2Usa2V5UHJlZml4PWkxOG5PcHRpb25zLmtleVByZWZpeCxuYW1lc3BhY2VzPW5zfHxkZWZhdWx0TlNGcm9tQ29udGV4dHx8aTE4bi5vcHRpb25zJiZpMThuLm9wdGlvbnMuZGVmYXVsdE5TO25hbWVzcGFjZXM9InN0cmluZyI9PXR5cGVvZiBuYW1lc3BhY2VzP1tuYW1lc3BhY2VzXTpuYW1lc3BhY2VzfHxbInRyYW5zbGF0aW9uIl0saTE4bi5yZXBvcnROYW1lc3BhY2VzLmFkZFVzZWROYW1lc3BhY2VzJiZpMThuLnJlcG9ydE5hbWVzcGFjZXMuYWRkVXNlZE5hbWVzcGFjZXMobmFtZXNwYWNlcyk7dmFyIHJlYWR5PShpMThuLmlzSW5pdGlhbGl6ZWR8fGkxOG4uaW5pdGlhbGl6ZWRTdG9yZU9uY2UpJiZuYW1lc3BhY2VzLmV2ZXJ5KGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbihucyxpMThuKXt2YXIgb3B0aW9ucz1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307cmV0dXJuIGkxOG4ubGFuZ3VhZ2VzJiZpMThuLmxhbmd1YWdlcy5sZW5ndGg/dm9pZCAwIT09aTE4bi5vcHRpb25zLmlnbm9yZUpTT05TdHJ1Y3R1cmU/aTE4bi5oYXNMb2FkZWROYW1lc3BhY2UobnMse3ByZWNoZWNrOmZ1bmN0aW9uKGkxOG5JbnN0YW5jZSxsb2FkTm90UGVuZGluZyl7aWYob3B0aW9ucy5iaW5kSTE4biYmb3B0aW9ucy5iaW5kSTE4bi5pbmRleE9mKCJsYW5ndWFnZUNoYW5naW5nIik+LTEmJmkxOG5JbnN0YW5jZS5zZXJ2aWNlcy5iYWNrZW5kQ29ubmVjdG9yLmJhY2tlbmQmJmkxOG5JbnN0YW5jZS5pc0xhbmd1YWdlQ2hhbmdpbmdUbyYmIWxvYWROb3RQZW5kaW5nKGkxOG5JbnN0YW5jZS5pc0xhbmd1YWdlQ2hhbmdpbmdUbyxucykpcmV0dXJuITF9fSk6ZnVuY3Rpb24obnMsaTE4bil7dmFyIG9wdGlvbnM9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9LGxuZz1pMThuLmxhbmd1YWdlc1swXSxmYWxsYmFja0xuZz0hIWkxOG4ub3B0aW9ucyYmaTE4bi5vcHRpb25zLmZhbGxiYWNrTG5nLGxhc3RMbmc9aTE4bi5sYW5ndWFnZXNbaTE4bi5sYW5ndWFnZXMubGVuZ3RoLTFdO2lmKCJjaW1vZGUiPT09bG5nLnRvTG93ZXJDYXNlKCkpcmV0dXJuITA7dmFyIGxvYWROb3RQZW5kaW5nPWZ1bmN0aW9uKGwsbil7dmFyIGxvYWRTdGF0ZT1pMThuLnNlcnZpY2VzLmJhY2tlbmRDb25uZWN0b3Iuc3RhdGVbIiIuY29uY2F0KGwsInwiKS5jb25jYXQobildO3JldHVybiAtMT09PWxvYWRTdGF0ZXx8Mj09PWxvYWRTdGF0ZX07cmV0dXJuKCEob3B0aW9ucy5iaW5kSTE4biYmb3B0aW9ucy5iaW5kSTE4bi5pbmRleE9mKCJsYW5ndWFnZUNoYW5naW5nIik+LTEpfHwhaTE4bi5zZXJ2aWNlcy5iYWNrZW5kQ29ubmVjdG9yLmJhY2tlbmR8fCFpMThuLmlzTGFuZ3VhZ2VDaGFuZ2luZ1RvfHwhIWxvYWROb3RQZW5kaW5nKGkxOG4uaXNMYW5ndWFnZUNoYW5naW5nVG8sbnMpKSYmISEoaTE4bi5oYXNSZXNvdXJjZUJ1bmRsZShsbmcsbnMpfHwhaTE4bi5zZXJ2aWNlcy5iYWNrZW5kQ29ubmVjdG9yLmJhY2tlbmR8fGkxOG4ub3B0aW9ucy5yZXNvdXJjZXMmJiFpMThuLm9wdGlvbnMucGFydGlhbEJ1bmRsZWRMYW5ndWFnZXN8fGxvYWROb3RQZW5kaW5nKGxuZyxucykmJighZmFsbGJhY2tMbmd8fGxvYWROb3RQZW5kaW5nKGxhc3RMbmcsbnMpKSl9KG5zLGkxOG4sb3B0aW9ucyk6KHdhcm5PbmNlKCJpMThuLmxhbmd1YWdlcyB3ZXJlIHVuZGVmaW5lZCBvciBlbXB0eSIsaTE4bi5sYW5ndWFnZXMpLCEwKX0obixpMThuLGkxOG5PcHRpb25zKX0pO2Z1bmN0aW9uIGdldFQoKXtyZXR1cm4gaTE4bi5nZXRGaXhlZFQobnVsbCwiZmFsbGJhY2siPT09aTE4bk9wdGlvbnMubnNNb2RlP25hbWVzcGFjZXM6bmFtZXNwYWNlc1swXSxrZXlQcmVmaXgpfXZhciBfdXNlU3RhdGUyPV9zbGljZWRUb0FycmF5KCgwLHJlYWN0LnVzZVN0YXRlKShnZXRUKSwyKSx0PV91c2VTdGF0ZTJbMF0sc2V0VD1fdXNlU3RhdGUyWzFdLGpvaW5lZE5TPW5hbWVzcGFjZXMuam9pbigpLHByZXZpb3VzSm9pbmVkTlM9dXNlUHJldmlvdXMoam9pbmVkTlMpLGlzTW91bnRlZD0oMCxyZWFjdC51c2VSZWYpKCEwKTsoMCxyZWFjdC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIGJpbmRJMThuPWkxOG5PcHRpb25zLmJpbmRJMThuLGJpbmRJMThuU3RvcmU9aTE4bk9wdGlvbnMuYmluZEkxOG5TdG9yZTtmdW5jdGlvbiBib3VuZFJlc2V0KCl7aXNNb3VudGVkLmN1cnJlbnQmJnNldFQoZ2V0VCl9cmV0dXJuIGlzTW91bnRlZC5jdXJyZW50PSEwLHJlYWR5fHx1c2VTdXNwZW5zZXx8bG9hZE5hbWVzcGFjZXMoaTE4bixuYW1lc3BhY2VzLGZ1bmN0aW9uKCl7aXNNb3VudGVkLmN1cnJlbnQmJnNldFQoZ2V0VCl9KSxyZWFkeSYmcHJldmlvdXNKb2luZWROUyYmcHJldmlvdXNKb2luZWROUyE9PWpvaW5lZE5TJiZpc01vdW50ZWQuY3VycmVudCYmc2V0VChnZXRUKSxiaW5kSTE4biYmaTE4biYmaTE4bi5vbihiaW5kSTE4bixib3VuZFJlc2V0KSxiaW5kSTE4blN0b3JlJiZpMThuJiZpMThuLnN0b3JlLm9uKGJpbmRJMThuU3RvcmUsYm91bmRSZXNldCksZnVuY3Rpb24oKXtpc01vdW50ZWQuY3VycmVudD0hMSxiaW5kSTE4biYmaTE4biYmYmluZEkxOG4uc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBpMThuLm9mZihlLGJvdW5kUmVzZXQpfSksYmluZEkxOG5TdG9yZSYmaTE4biYmYmluZEkxOG5TdG9yZS5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGkxOG4uc3RvcmUub2ZmKGUsYm91bmRSZXNldCl9KX19LFtpMThuLGpvaW5lZE5TXSk7dmFyIGlzSW5pdGlhbD0oMCxyZWFjdC51c2VSZWYpKCEwKTsoMCxyZWFjdC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7aXNNb3VudGVkLmN1cnJlbnQmJiFpc0luaXRpYWwuY3VycmVudCYmc2V0VChnZXRUKSxpc0luaXRpYWwuY3VycmVudD0hMX0sW2kxOG4sa2V5UHJlZml4XSk7dmFyIHJldD1bdCxpMThuLHJlYWR5XTtpZihyZXQudD10LHJldC5pMThuPWkxOG4scmV0LnJlYWR5PXJlYWR5LHJlYWR5fHwhcmVhZHkmJiF1c2VTdXNwZW5zZSlyZXR1cm4gcmV0O3Rocm93IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpe2xvYWROYW1lc3BhY2VzKGkxOG4sbmFtZXNwYWNlcyxmdW5jdGlvbigpe3Jlc29sdmUoKX0pfSl9ZnVuY3Rpb24gX2V4dGVuZHMoKXtyZXR1cm4oX2V4dGVuZHM9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0YXJnZXQpe2Zvcih2YXIgaT0xO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspe3ZhciBzb3VyY2U9YXJndW1lbnRzW2ldO2Zvcih2YXIga2V5IGluIHNvdXJjZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLGtleSkmJih0YXJnZXRba2V5XT1zb3VyY2Vba2V5XSl9cmV0dXJuIHRhcmdldH0pLmFwcGx5KHRoaXMsYXJndW1lbnRzKX12YXIgaG9pc3Rfbm9uX3JlYWN0X3N0YXRpY3NfY2pzPV9fd2VicGFja19yZXF1aXJlX18oODY3OSksaG9pc3Rfbm9uX3JlYWN0X3N0YXRpY3NfY2pzX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGhvaXN0X25vbl9yZWFjdF9zdGF0aWNzX2Nqcyk7ZnVuY3Rpb24gSTE4bmV4dFByb3ZpZGVyKF9yZWYpe3ZhciBpMThuPV9yZWYuaTE4bixkZWZhdWx0TlM9X3JlZi5kZWZhdWx0TlMsY2hpbGRyZW49X3JlZi5jaGlsZHJlbix2YWx1ZT0oMCxyZWFjdC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybntpMThuOmkxOG4sZGVmYXVsdE5TOmRlZmF1bHROU319LFtpMThuLGRlZmF1bHROU10pO3JldHVybigwLHJlYWN0LmNyZWF0ZUVsZW1lbnQpKEkxOG5Db250ZXh0LlByb3ZpZGVyLHt2YWx1ZTp2YWx1ZX0sY2hpbGRyZW4pfXZhciBhcnJheUxpa2VUb0FycmF5PV9fd2VicGFja19yZXF1aXJlX18oMzkxMzYpLGl0ZXJhYmxlVG9BcnJheT1fX3dlYnBhY2tfcmVxdWlyZV9fKDI5Mzc3KSxlc21fdHlwZW9mPV9fd2VicGFja19yZXF1aXJlX18oNTA3Myk7ZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHNvdXJjZSxleGNsdWRlZCl7aWYobnVsbD09c291cmNlKXJldHVybnt9O3ZhciBrZXksaSx0YXJnZXQ9ZnVuY3Rpb24oc291cmNlLGV4Y2x1ZGVkKXtpZihudWxsPT1zb3VyY2UpcmV0dXJue307dmFyIGtleSxpLHRhcmdldD17fSxzb3VyY2VLZXlzPU9iamVjdC5rZXlzKHNvdXJjZSk7Zm9yKGk9MDtpPHNvdXJjZUtleXMubGVuZ3RoO2krKylrZXk9c291cmNlS2V5c1tpXSxleGNsdWRlZC5pbmRleE9mKGtleSk+PTB8fCh0YXJnZXRba2V5XT1zb3VyY2Vba2V5XSk7cmV0dXJuIHRhcmdldH0oc291cmNlLGV4Y2x1ZGVkKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgc291cmNlU3ltYm9sS2V5cz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHNvdXJjZSk7Zm9yKGk9MDtpPHNvdXJjZVN5bWJvbEtleXMubGVuZ3RoO2krKylrZXk9c291cmNlU3ltYm9sS2V5c1tpXSwhKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzb3VyY2Usa2V5KSYmKHRhcmdldFtrZXldPXNvdXJjZVtrZXldKX1yZXR1cm4gdGFyZ2V0fXZhciBkZWZhdWx0Q29uZmlnPXtkZWZhdWx0TlM6ImNvbW1vbiIsZXJyb3JTdGFja1RyYWNlTGltaXQ6MCxpMThuOntkZWZhdWx0TG9jYWxlOiJlbiIsbG9jYWxlczpbImVuIl19LGdldCBpbml0SW1tZWRpYXRlKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3d9LGludGVycG9sYXRpb246e2VzY2FwZVZhbHVlOiExfSxsb2FkOiJjdXJyZW50T25seSIsbG9jYWxlRXh0ZW5zaW9uOiJqc29uIixsb2NhbGVQYXRoOiIuL3B1YmxpYy9sb2NhbGVzIixsb2NhbGVTdHJ1Y3R1cmU6Int7bG5nfX0ve3tuc319IixyZWFjdDp7dXNlU3VzcGVuc2U6ITF9LHJlbG9hZE9uUHJlcmVuZGVyOiExLHNlcmlhbGl6ZUNvbmZpZzohMCx1c2U6W119LF9leGNsdWRlZD1bImkxOG4iXSxfZXhjbHVkZWQyPVsiaTE4biJdO2Z1bmN0aW9uIGNyZWF0ZUNvbmZpZ19vd25LZXlzKG9iamVjdCxlbnVtZXJhYmxlT25seSl7dmFyIGtleXM9T2JqZWN0LmtleXMob2JqZWN0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgc3ltYm9scz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7ZW51bWVyYWJsZU9ubHkmJihzeW1ib2xzPXN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uKHN5bSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LHN5bSkuZW51bWVyYWJsZX0pKSxrZXlzLnB1c2guYXBwbHkoa2V5cyxzeW1ib2xzKX1yZXR1cm4ga2V5c31mdW5jdGlvbiBjcmVhdGVDb25maWdfb2JqZWN0U3ByZWFkKHRhcmdldCl7Zm9yKHZhciBpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKyl7dmFyIHNvdXJjZT1udWxsIT1hcmd1bWVudHNbaV0/YXJndW1lbnRzW2ldOnt9O2klMj9jcmVhdGVDb25maWdfb3duS2V5cyhPYmplY3Qoc291cmNlKSwhMCkuZm9yRWFjaChmdW5jdGlvbihrZXkpeygwLGRlZmluZVByb3BlcnR5LlopKHRhcmdldCxrZXksc291cmNlW2tleV0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpOmNyZWF0ZUNvbmZpZ19vd25LZXlzKE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCxrZXksT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2Usa2V5KSl9KX1yZXR1cm4gdGFyZ2V0fXZhciBkZWVwTWVyZ2VPYmplY3RzPVsiYmFja2VuZCIsImRldGVjdGlvbiJdLGNyZWF0ZUNvbmZpZz1mdW5jdGlvbih1c2VyQ29uZmlnKXtpZigic3RyaW5nIiE9dHlwZW9mKG51bGw9PXVzZXJDb25maWc/dm9pZCAwOnVzZXJDb25maWcubG5nKSl0aHJvdyBFcnJvcigiY29uZmlnLmxuZyB3YXMgbm90IHBhc3NlZCBpbnRvIGNyZWF0ZUNvbmZpZyIpO3ZhciBfdXNlckNvbmZpZyR1c2UsdXNlckkxOG49dXNlckNvbmZpZy5pMThuLHVzZXJDb25maWdTdHJpcHBlZD1fb2JqZWN0V2l0aG91dFByb3BlcnRpZXModXNlckNvbmZpZyxfZXhjbHVkZWQpLGRlZmF1bHRJMThuPWRlZmF1bHRDb25maWcuaTE4bixjb21iaW5lZENvbmZpZz1jcmVhdGVDb25maWdfb2JqZWN0U3ByZWFkKGNyZWF0ZUNvbmZpZ19vYmplY3RTcHJlYWQoY3JlYXRlQ29uZmlnX29iamVjdFNwcmVhZChjcmVhdGVDb25maWdfb2JqZWN0U3ByZWFkKHt9LF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhkZWZhdWx0Q29uZmlnLF9leGNsdWRlZDIpKSx1c2VyQ29uZmlnU3RyaXBwZWQpLGRlZmF1bHRJMThuKSx1c2VySTE4biksZGVmYXVsdE5TPWNvbWJpbmVkQ29uZmlnLmRlZmF1bHROUyxsbmc9Y29tYmluZWRDb25maWcubG5nLGxvY2FsZUV4dGVuc2lvbj1jb21iaW5lZENvbmZpZy5sb2NhbGVFeHRlbnNpb24sbG9jYWxlUGF0aD1jb21iaW5lZENvbmZpZy5sb2NhbGVQYXRoLGxvY2FsZVN0cnVjdHVyZT1jb21iaW5lZENvbmZpZy5sb2NhbGVTdHJ1Y3R1cmUsbm9uRXhwbGljaXRTdXBwb3J0ZWRMbmdzPWNvbWJpbmVkQ29uZmlnLm5vbkV4cGxpY2l0U3VwcG9ydGVkTG5ncyxsb2NhbGVzPWNvbWJpbmVkQ29uZmlnLmxvY2FsZXMuZmlsdGVyKGZ1bmN0aW9uKGwpe3JldHVybiJkZWZhdWx0IiE9PWx9KTtpZigiY2ltb2RlIj09PWxuZylyZXR1cm4gY29tYmluZWRDb25maWc7aWYodm9pZCAwPT09Y29tYmluZWRDb25maWcuZmFsbGJhY2tMbmcmJihjb21iaW5lZENvbmZpZy5mYWxsYmFja0xuZz1jb21iaW5lZENvbmZpZy5kZWZhdWx0TG9jYWxlLCJkZWZhdWx0Ij09PWNvbWJpbmVkQ29uZmlnLmZhbGxiYWNrTG5nKSl7dmFyIF9sb2NhbGVzPV9zbGljZWRUb0FycmF5KGxvY2FsZXMsMSk7Y29tYmluZWRDb25maWcuZmFsbGJhY2tMbmc9X2xvY2FsZXNbMF19dmFyIGZhbGxiYWNrTG5nPWNvbWJpbmVkQ29uZmlnLmZhbGxiYWNrTG5nO2lmKG5vbkV4cGxpY2l0U3VwcG9ydGVkTG5ncyl7dmFyIGNyZWF0ZUZhbGxiYWNrT2JqZWN0PWZ1bmN0aW9uKGFjYyxsKXt2YXIgbG9jYWxlPV9zbGljZWRUb0FycmF5KGwuc3BsaXQoIi0iKSwxKVswXTtyZXR1cm4gYWNjW2xdPVtsb2NhbGVdLGFjY307aWYoInN0cmluZyI9PXR5cGVvZiBmYWxsYmFja0xuZyljb21iaW5lZENvbmZpZy5mYWxsYmFja0xuZz1jb21iaW5lZENvbmZpZy5sb2NhbGVzLmZpbHRlcihmdW5jdGlvbihsKXtyZXR1cm4gbC5pbmNsdWRlcygiLSIpfSkucmVkdWNlKGNyZWF0ZUZhbGxiYWNrT2JqZWN0LHtkZWZhdWx0OltmYWxsYmFja0xuZ119KTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoZmFsbGJhY2tMbmcpKWNvbWJpbmVkQ29uZmlnLmZhbGxiYWNrTG5nPWNvbWJpbmVkQ29uZmlnLmxvY2FsZXMuZmlsdGVyKGZ1bmN0aW9uKGwpe3JldHVybiBsLmluY2x1ZGVzKCItIil9KS5yZWR1Y2UoY3JlYXRlRmFsbGJhY2tPYmplY3Qse2RlZmF1bHQ6ZmFsbGJhY2tMbmd9KTtlbHNlIGlmKCJvYmplY3QiPT09KDAsZXNtX3R5cGVvZi5aKShmYWxsYmFja0xuZykpY29tYmluZWRDb25maWcuZmFsbGJhY2tMbmc9T2JqZWN0LmVudHJpZXMoY29tYmluZWRDb25maWcuZmFsbGJhY2tMbmcpLnJlZHVjZShmdW5jdGlvbihhY2MsX3JlZil7dmFyIGxpc3QsX3JlZjI9X3NsaWNlZFRvQXJyYXkoX3JlZiwyKSxsPV9yZWYyWzBdLGY9X3JlZjJbMV07cmV0dXJuIGFjY1tsXT1sLmluY2x1ZGVzKCItIik/KGxpc3Q9W2wuc3BsaXQoIi0iKVswXV0uY29uY2F0KGZ1bmN0aW9uKGFycil7aWYoQXJyYXkuaXNBcnJheShhcnIpKXJldHVybigwLGFycmF5TGlrZVRvQXJyYXkuWikoYXJyKX0oZil8fCgwLGl0ZXJhYmxlVG9BcnJheS5aKShmKXx8KDAsdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuWikoZil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKSksQXJyYXkuZnJvbShuZXcgU2V0KGxpc3QpKSk6ZixhY2N9LGZhbGxiYWNrTG5nKTtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBmYWxsYmFja0xuZyl0aHJvdyBFcnJvcigiSWYgbm9uRXhwbGljaXRTdXBwb3J0ZWRMbmdzIGlzIHRydWUsIG5vIGZ1bmN0aW9ucyBhcmUgYWxsb3dlZCBmb3IgZmFsbGJhY2tMbmciKX1yZXR1cm4obnVsbD09dXNlckNvbmZpZz92b2lkIDA6bnVsbD09PShfdXNlckNvbmZpZyR1c2U9dXNlckNvbmZpZy51c2UpfHx2b2lkIDA9PT1fdXNlckNvbmZpZyR1c2U/dm9pZCAwOl91c2VyQ29uZmlnJHVzZS5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiJiYWNrZW5kIj09PWIudHlwZX0pKXx8KCJzdHJpbmciPT10eXBlb2YgbG9jYWxlUGF0aD9jb21iaW5lZENvbmZpZy5iYWNrZW5kPXthZGRQYXRoOiIiLmNvbmNhdChsb2NhbGVQYXRoLCIvIikuY29uY2F0KGxvY2FsZVN0cnVjdHVyZSwiLm1pc3NpbmcuIikuY29uY2F0KGxvY2FsZUV4dGVuc2lvbiksbG9hZFBhdGg6IiIuY29uY2F0KGxvY2FsZVBhdGgsIi8iKS5jb25jYXQobG9jYWxlU3RydWN0dXJlLCIuIikuY29uY2F0KGxvY2FsZUV4dGVuc2lvbil9OiJmdW5jdGlvbiIhPXR5cGVvZiBsb2NhbGVQYXRofHwoY29tYmluZWRDb25maWcuYmFja2VuZD17YWRkUGF0aDpmdW5jdGlvbihsb2NhbGUsbmFtZXNwYWNlKXtyZXR1cm4gbG9jYWxlUGF0aChsb2NhbGUsbmFtZXNwYWNlLCEwKX0sbG9hZFBhdGg6ZnVuY3Rpb24obG9jYWxlLG5hbWVzcGFjZSl7cmV0dXJuIGxvY2FsZVBhdGgobG9jYWxlLG5hbWVzcGFjZSwhMSl9fSkpLCJzdHJpbmciPT10eXBlb2YgY29tYmluZWRDb25maWcubnN8fEFycmF5LmlzQXJyYXkoY29tYmluZWRDb25maWcubnMpfHwoY29tYmluZWRDb25maWcubnM9W2RlZmF1bHROU10pLGRlZXBNZXJnZU9iamVjdHMuZm9yRWFjaChmdW5jdGlvbihvYmope3VzZXJDb25maWdbb2JqXSYmKGNvbWJpbmVkQ29uZmlnW29ial09Y3JlYXRlQ29uZmlnX29iamVjdFNwcmVhZChjcmVhdGVDb25maWdfb2JqZWN0U3ByZWFkKHt9LGNvbWJpbmVkQ29uZmlnW29ial0pLHVzZXJDb25maWdbb2JqXSkpfSksY29tYmluZWRDb25maWd9LGkxOG5leHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg0MjQ5NCksYnJvd3Nlcj1mdW5jdGlvbihjb25maWcpe3ZvaWQgMD09PWNvbmZpZy5ucyYmKGNvbmZpZy5ucz1bXSk7dmFyIGluaXRQcm9taXNlLF9jb25maWckdXNlLGluc3RhbmNlPWkxOG5leHQuWlAuY3JlYXRlSW5zdGFuY2UoY29uZmlnKTtyZXR1cm4gaW5zdGFuY2UuaXNJbml0aWFsaXplZD9pbml0UHJvbWlzZT1Qcm9taXNlLnJlc29sdmUoaTE4bmV4dC5aUC50KToobnVsbD09Y29uZmlnfHxudWxsPT09KF9jb25maWckdXNlPWNvbmZpZy51c2UpfHx2b2lkIDA9PT1fY29uZmlnJHVzZXx8X2NvbmZpZyR1c2UuZm9yRWFjaChmdW5jdGlvbih4KXtyZXR1cm4gaW5zdGFuY2UudXNlKHgpfSksImZ1bmN0aW9uIj09dHlwZW9mIGNvbmZpZy5vblByZUluaXRJMThuZXh0JiZjb25maWcub25QcmVJbml0STE4bmV4dChpbnN0YW5jZSksaW5pdFByb21pc2U9aW5zdGFuY2UuaW5pdChjb25maWcpKSx7aTE4bjppbnN0YW5jZSxpbml0UHJvbWlzZTppbml0UHJvbWlzZX19LF9fanN4PXJlYWN0LmNyZWF0ZUVsZW1lbnQ7ZnVuY3Rpb24gYXBwV2l0aFRyYW5zbGF0aW9uX293bktleXMob2JqZWN0LGVudW1lcmFibGVPbmx5KXt2YXIga2V5cz1PYmplY3Qua2V5cyhvYmplY3QpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBzeW1ib2xzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTtlbnVtZXJhYmxlT25seSYmKHN5bWJvbHM9c3ltYm9scy5maWx0ZXIoZnVuY3Rpb24oc3ltKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3Qsc3ltKS5lbnVtZXJhYmxlfSkpLGtleXMucHVzaC5hcHBseShrZXlzLHN5bWJvbHMpfXJldHVybiBrZXlzfWZ1bmN0aW9uIGFwcFdpdGhUcmFuc2xhdGlvbl9vYmplY3RTcHJlYWQodGFyZ2V0KXtmb3IodmFyIGk9MTtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXt2YXIgc291cmNlPW51bGwhPWFyZ3VtZW50c1tpXT9hcmd1bWVudHNbaV06e307aSUyP2FwcFdpdGhUcmFuc2xhdGlvbl9vd25LZXlzKE9iamVjdChzb3VyY2UpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSl7KDAsZGVmaW5lUHJvcGVydHkuWikodGFyZ2V0LGtleSxzb3VyY2Vba2V5XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk6YXBwV2l0aFRyYW5zbGF0aW9uX293bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24oa2V5KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LGtleSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSxrZXkpKX0pfXJldHVybiB0YXJnZXR9dmFyIGFwcFdpdGhUcmFuc2xhdGlvbj1mdW5jdGlvbihXcmFwcGVkQ29tcG9uZW50KXt2YXIgY29uZmlnT3ZlcnJpZGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm51bGw7cmV0dXJuIGhvaXN0X25vbl9yZWFjdF9zdGF0aWNzX2Nqc19kZWZhdWx0KCkoZnVuY3Rpb24ocHJvcHMpe3ZhciBfbmV4dEkxOE5leHQkaW5pdGlhbEwsX3Byb3BzJHJvdXRlcixfbmV4dEkxOE5leHQ9cHJvcHMucGFnZVByb3BzLl9uZXh0STE4TmV4dCxsb2NhbGU9bnVsbCE9PShfbmV4dEkxOE5leHQkaW5pdGlhbEw9bnVsbD09X25leHRJMThOZXh0P3ZvaWQgMDpfbmV4dEkxOE5leHQuaW5pdGlhbExvY2FsZSkmJnZvaWQgMCE9PV9uZXh0STE4TmV4dCRpbml0aWFsTD9fbmV4dEkxOE5leHQkaW5pdGlhbEw6bnVsbD09cHJvcHM/dm9pZCAwOm51bGw9PT0oX3Byb3BzJHJvdXRlcj1wcm9wcy5yb3V0ZXIpfHx2b2lkIDA9PT1fcHJvcHMkcm91dGVyP3ZvaWQgMDpfcHJvcHMkcm91dGVyLmxvY2FsZSxucz1udWxsPT1fbmV4dEkxOE5leHQ/dm9pZCAwOl9uZXh0STE4TmV4dC5ucyxpMThuPSgwLHJlYWN0LnVzZU1lbW8pKGZ1bmN0aW9uKCl7aWYoIV9uZXh0STE4TmV4dCYmIWNvbmZpZ092ZXJyaWRlKXJldHVybiBudWxsO3ZhciBfdXNlckNvbmZpZyxfdXNlckNvbmZpZzIsX3VzZXJDb25maWcyJGkxOG4sdXNlckNvbmZpZz1udWxsIT1jb25maWdPdmVycmlkZT9jb25maWdPdmVycmlkZTpudWxsPT1fbmV4dEkxOE5leHQ/dm9pZCAwOl9uZXh0STE4TmV4dC51c2VyQ29uZmlnO2lmKCF1c2VyQ29uZmlnJiZudWxsPT09Y29uZmlnT3ZlcnJpZGUpdGhyb3cgRXJyb3IoImFwcFdpdGhUcmFuc2xhdGlvbiB3YXMgY2FsbGVkIHdpdGhvdXQgYSBuZXh0LWkxOG5leHQgY29uZmlnIik7aWYobnVsbCE9PWNvbmZpZ092ZXJyaWRlJiYodXNlckNvbmZpZz1jb25maWdPdmVycmlkZSksIShudWxsIT09KF91c2VyQ29uZmlnPXVzZXJDb25maWcpJiZ2b2lkIDAhPT1fdXNlckNvbmZpZyYmX3VzZXJDb25maWcuaTE4bikpdGhyb3cgRXJyb3IoImFwcFdpdGhUcmFuc2xhdGlvbiB3YXMgY2FsbGVkIHdpdGhvdXQgY29uZmlnLmkxOG4iKTtpZighKG51bGwhPT0oX3VzZXJDb25maWcyPXVzZXJDb25maWcpJiZ2b2lkIDAhPT1fdXNlckNvbmZpZzImJm51bGwhPT0oX3VzZXJDb25maWcyJGkxOG49X3VzZXJDb25maWcyLmkxOG4pJiZ2b2lkIDAhPT1fdXNlckNvbmZpZzIkaTE4biYmX3VzZXJDb25maWcyJGkxOG4uZGVmYXVsdExvY2FsZSkpdGhyb3cgRXJyb3IoImNvbmZpZy5pMThuIGRvZXMgbm90IGluY2x1ZGUgYSBkZWZhdWx0TG9jYWxlIHByb3BlcnR5Iik7dmFyIGluaXRpYWxJMThuU3RvcmU9KF9uZXh0STE4TmV4dHx8e30pLmluaXRpYWxJMThuU3RvcmUscmVzb3VyY2VzPW51bGwhPWNvbmZpZ092ZXJyaWRlJiZjb25maWdPdmVycmlkZS5yZXNvdXJjZXM/Y29uZmlnT3ZlcnJpZGUucmVzb3VyY2VzOmluaXRpYWxJMThuU3RvcmU7cmV0dXJuIGxvY2FsZXx8KGxvY2FsZT11c2VyQ29uZmlnLmkxOG4uZGVmYXVsdExvY2FsZSksYnJvd3NlcihhcHBXaXRoVHJhbnNsYXRpb25fb2JqZWN0U3ByZWFkKGFwcFdpdGhUcmFuc2xhdGlvbl9vYmplY3RTcHJlYWQoe30sY3JlYXRlQ29uZmlnKGFwcFdpdGhUcmFuc2xhdGlvbl9vYmplY3RTcHJlYWQoYXBwV2l0aFRyYW5zbGF0aW9uX29iamVjdFNwcmVhZCh7fSx1c2VyQ29uZmlnKSx7fSx7bG5nOmxvY2FsZX0pKSkse30se2xuZzpsb2NhbGUsbnM6bnMscmVzb3VyY2VzOnJlc291cmNlc30pKS5pMThufSxbX25leHRJMThOZXh0LGxvY2FsZSxjb25maWdPdmVycmlkZSxuc10pO3JldHVybiBudWxsIT09aTE4bj9fX2pzeChJMThuZXh0UHJvdmlkZXIse2kxOG46aTE4bn0sX19qc3goV3JhcHBlZENvbXBvbmVudCxwcm9wcykpOl9fanN4KFdyYXBwZWRDb21wb25lbnQsX2V4dGVuZHMoe2tleTpsb2NhbGV9LHByb3BzKSl9LFdyYXBwZWRDb21wb25lbnQpfX0sODM0NTQ6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3dlYnBhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7dmFyIHJlZixyZWYxO21vZHVsZS5leHBvcnRzPShudWxsPT0ocmVmPV9fd2VicGFja19yZXF1aXJlX18uZy5wcm9jZXNzKT92b2lkIDA6cmVmLmVudikmJiJvYmplY3QiPT10eXBlb2YobnVsbD09KHJlZjE9X193ZWJwYWNrX3JlcXVpcmVfXy5nLnByb2Nlc3MpP3ZvaWQgMDpyZWYxLmVudik/X193ZWJwYWNrX3JlcXVpcmVfXy5nLnByb2Nlc3M6X193ZWJwYWNrX3JlcXVpcmVfXyg3NzY2Myl9LDc3NjYzOmZ1bmN0aW9uKG1vZHVsZSl7IWZ1bmN0aW9uKCl7dmFyIGU9ezIyOTpmdW5jdGlvbihlKXt2YXIgcixuLHUsdD1lLmV4cG9ydHM9e307ZnVuY3Rpb24gZGVmYXVsdFNldFRpbW91dCgpe3Rocm93IEVycm9yKCJzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gZGVmYXVsdENsZWFyVGltZW91dCgpe3Rocm93IEVycm9yKCJjbGVhclRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQiKX1mdW5jdGlvbiBydW5UaW1lb3V0KGUpe2lmKHI9PT1zZXRUaW1lb3V0KXJldHVybiBzZXRUaW1lb3V0KGUsMCk7aWYoKHI9PT1kZWZhdWx0U2V0VGltb3V0fHwhcikmJnNldFRpbWVvdXQpcmV0dXJuIHI9c2V0VGltZW91dCxzZXRUaW1lb3V0KGUsMCk7dHJ5e3JldHVybiByKGUsMCl9Y2F0Y2godDEpe3RyeXtyZXR1cm4gci5jYWxsKG51bGwsZSwwKX1jYXRjaCh0KXtyZXR1cm4gci5jYWxsKHRoaXMsZSwwKX19fSFmdW5jdGlvbigpe3RyeXtyPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6ZGVmYXVsdFNldFRpbW91dH1jYXRjaChlKXtyPWRlZmF1bHRTZXRUaW1vdXR9dHJ5e249ImZ1bmN0aW9uIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6ZGVmYXVsdENsZWFyVGltZW91dH1jYXRjaChlMSl7bj1kZWZhdWx0Q2xlYXJUaW1lb3V0fX0oKTt2YXIgaT1bXSxvPSExLGE9LTE7ZnVuY3Rpb24gY2xlYW5VcE5leHRUaWNrKCl7byYmdSYmKG89ITEsdS5sZW5ndGg/aT11LmNvbmNhdChpKTphPS0xLGkubGVuZ3RoJiZkcmFpblF1ZXVlKCkpfWZ1bmN0aW9uIGRyYWluUXVldWUoKXtpZighbyl7dmFyIGU9cnVuVGltZW91dChjbGVhblVwTmV4dFRpY2spO289ITA7Zm9yKHZhciB0PWkubGVuZ3RoO3Q7KXtmb3IodT1pLGk9W107KythPHQ7KXUmJnVbYV0ucnVuKCk7YT0tMSx0PWkubGVuZ3RofXU9bnVsbCxvPSExLGZ1bmN0aW9uKGUpe2lmKG49PT1jbGVhclRpbWVvdXQpcmV0dXJuIGNsZWFyVGltZW91dChlKTtpZigobj09PWRlZmF1bHRDbGVhclRpbWVvdXR8fCFuKSYmY2xlYXJUaW1lb3V0KXJldHVybiBuPWNsZWFyVGltZW91dCxjbGVhclRpbWVvdXQoZSk7dHJ5e24oZSl9Y2F0Y2godDEpe3RyeXtyZXR1cm4gbi5jYWxsKG51bGwsZSl9Y2F0Y2godCl7cmV0dXJuIG4uY2FsbCh0aGlzLGUpfX19KGUpfX1mdW5jdGlvbiBJdGVtKGUsdCl7dGhpcy5mdW49ZSx0aGlzLmFycmF5PXR9ZnVuY3Rpb24gbm9vcCgpe310Lm5leHRUaWNrPWZ1bmN0aW9uKGUpe3ZhciB0PUFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSk7aWYoYXJndW1lbnRzLmxlbmd0aD4xKWZvcih2YXIgcj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspdFtyLTFdPWFyZ3VtZW50c1tyXTtpLnB1c2gobmV3IEl0ZW0oZSx0KSksMSE9PWkubGVuZ3RofHxvfHxydW5UaW1lb3V0KGRyYWluUXVldWUpfSxJdGVtLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXt0aGlzLmZ1bi5hcHBseShudWxsLHRoaXMuYXJyYXkpfSx0LnRpdGxlPSJicm93c2VyIix0LmJyb3dzZXI9ITAsdC5lbnY9e30sdC5hcmd2PVtdLHQudmVyc2lvbj0iIix0LnZlcnNpb25zPXt9LHQub249bm9vcCx0LmFkZExpc3RlbmVyPW5vb3AsdC5vbmNlPW5vb3AsdC5vZmY9bm9vcCx0LnJlbW92ZUxpc3RlbmVyPW5vb3AsdC5yZW1vdmVBbGxMaXN0ZW5lcnM9bm9vcCx0LmVtaXQ9bm9vcCx0LnByZXBlbmRMaXN0ZW5lcj1ub29wLHQucHJlcGVuZE9uY2VMaXN0ZW5lcj1ub29wLHQubGlzdGVuZXJzPWZ1bmN0aW9uKGUpe3JldHVybltdfSx0LmJpbmRpbmc9ZnVuY3Rpb24oZSl7dGhyb3cgRXJyb3IoInByb2Nlc3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkIil9LHQuY3dkPWZ1bmN0aW9uKCl7cmV0dXJuIi8ifSx0LmNoZGlyPWZ1bmN0aW9uKGUpe3Rocm93IEVycm9yKCJwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQiKX0sdC51bWFzaz1mdW5jdGlvbigpe3JldHVybiAwfX19LHQ9e307ZnVuY3Rpb24gX19uY2N3cGNrX3JlcXVpcmVfXyhyKXt2YXIgbj10W3JdO2lmKHZvaWQgMCE9PW4pcmV0dXJuIG4uZXhwb3J0czt2YXIgaT10W3JdPXtleHBvcnRzOnt9fSxvPSEwO3RyeXtlW3JdKGksaS5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pLG89ITF9ZmluYWxseXtvJiZkZWxldGUgdFtyXX1yZXR1cm4gaS5leHBvcnRzfV9fbmNjd3Bja19yZXF1aXJlX18uYWI9Ii8vIjt2YXIgcj1fX25jY3dwY2tfcmVxdWlyZV9fKDIyOSk7bW9kdWxlLmV4cG9ydHM9cn0oKX0sOTAwODpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfd2VicGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe21vZHVsZS5leHBvcnRzPV9fd2VicGFja19yZXF1aXJlX18oODMxMjEpfSwxMTE2MzpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfd2VicGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe21vZHVsZS5leHBvcnRzPV9fd2VicGFja19yZXF1aXJlX18oODA4ODApfSw0Mjk4OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7bW9kdWxlLmV4cG9ydHM9X193ZWJwYWNrX3JlcXVpcmVfXyg2MzU3Myl9LDE3NTYzOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2xldCBzdHJpY3RVcmlFbmNvZGU9X193ZWJwYWNrX3JlcXVpcmVfXyg3MDYxMCksZGVjb2RlQ29tcG9uZW50PV9fd2VicGFja19yZXF1aXJlX18oNDQwMjApLHNwbGl0T25GaXJzdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDgwNTAwKSxmaWx0ZXJPYmplY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg5MjgwNiksaXNOdWxsT3JVbmRlZmluZWQ9dmFsdWU9Pm51bGw9PXZhbHVlO2Z1bmN0aW9uIHZhbGlkYXRlQXJyYXlGb3JtYXRTZXBhcmF0b3IodmFsdWUpe2lmKCJzdHJpbmciIT10eXBlb2YgdmFsdWV8fDEhPT12YWx1ZS5sZW5ndGgpdGhyb3cgVHlwZUVycm9yKCJhcnJheUZvcm1hdFNlcGFyYXRvciBtdXN0IGJlIHNpbmdsZSBjaGFyYWN0ZXIgc3RyaW5nIil9ZnVuY3Rpb24gZW5jb2RlKHZhbHVlLG9wdGlvbnMpe3JldHVybiBvcHRpb25zLmVuY29kZT9vcHRpb25zLnN0cmljdD9zdHJpY3RVcmlFbmNvZGUodmFsdWUpOmVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk6dmFsdWV9ZnVuY3Rpb24gZGVjb2RlKHZhbHVlLG9wdGlvbnMpe3JldHVybiBvcHRpb25zLmRlY29kZT9kZWNvZGVDb21wb25lbnQodmFsdWUpOnZhbHVlfWZ1bmN0aW9uIHJlbW92ZUhhc2goaW5wdXQpe2xldCBoYXNoU3RhcnQ9aW5wdXQuaW5kZXhPZigiIyIpO3JldHVybiAtMSE9PWhhc2hTdGFydCYmKGlucHV0PWlucHV0LnNsaWNlKDAsaGFzaFN0YXJ0KSksaW5wdXR9ZnVuY3Rpb24gZXh0cmFjdChpbnB1dCl7aW5wdXQ9cmVtb3ZlSGFzaChpbnB1dCk7bGV0IHF1ZXJ5U3RhcnQ9aW5wdXQuaW5kZXhPZigiPyIpO3JldHVybiAtMT09PXF1ZXJ5U3RhcnQ/IiI6aW5wdXQuc2xpY2UocXVlcnlTdGFydCsxKX1mdW5jdGlvbiBwYXJzZVZhbHVlKHZhbHVlLG9wdGlvbnMpe3JldHVybiBvcHRpb25zLnBhcnNlTnVtYmVycyYmIU51bWJlci5pc05hTihOdW1iZXIodmFsdWUpKSYmInN0cmluZyI9PXR5cGVvZiB2YWx1ZSYmIiIhPT12YWx1ZS50cmltKCk/dmFsdWU9TnVtYmVyKHZhbHVlKTpvcHRpb25zLnBhcnNlQm9vbGVhbnMmJm51bGwhPT12YWx1ZSYmKCJ0cnVlIj09PXZhbHVlLnRvTG93ZXJDYXNlKCl8fCJmYWxzZSI9PT12YWx1ZS50b0xvd2VyQ2FzZSgpKSYmKHZhbHVlPSJ0cnVlIj09PXZhbHVlLnRvTG93ZXJDYXNlKCkpLHZhbHVlfWZ1bmN0aW9uIHBhcnNlKHF1ZXJ5LG9wdGlvbnMpe3ZhbGlkYXRlQXJyYXlGb3JtYXRTZXBhcmF0b3IoKG9wdGlvbnM9T2JqZWN0LmFzc2lnbih7ZGVjb2RlOiEwLHNvcnQ6ITAsYXJyYXlGb3JtYXQ6Im5vbmUiLGFycmF5Rm9ybWF0U2VwYXJhdG9yOiIsIixwYXJzZU51bWJlcnM6ITEscGFyc2VCb29sZWFuczohMX0sb3B0aW9ucykpLmFycmF5Rm9ybWF0U2VwYXJhdG9yKTtsZXQgZm9ybWF0dGVyPWZ1bmN0aW9uKG9wdGlvbnMpe2xldCByZXN1bHQ7c3dpdGNoKG9wdGlvbnMuYXJyYXlGb3JtYXQpe2Nhc2UiaW5kZXgiOnJldHVybihrZXksdmFsdWUsYWNjdW11bGF0b3IpPT57aWYocmVzdWx0PS9cWyhcZCopXF0kLy5leGVjKGtleSksa2V5PWtleS5yZXBsYWNlKC9cW1xkKlxdJC8sIiIpLCFyZXN1bHQpe2FjY3VtdWxhdG9yW2tleV09dmFsdWU7cmV0dXJufXZvaWQgMD09PWFjY3VtdWxhdG9yW2tleV0mJihhY2N1bXVsYXRvcltrZXldPXt9KSxhY2N1bXVsYXRvcltrZXldW3Jlc3VsdFsxXV09dmFsdWV9O2Nhc2UiYnJhY2tldCI6cmV0dXJuKGtleSx2YWx1ZSxhY2N1bXVsYXRvcik9PntpZihyZXN1bHQ9LyhcW1xdKSQvLmV4ZWMoa2V5KSxrZXk9a2V5LnJlcGxhY2UoL1xbXF0kLywiIiksIXJlc3VsdCl7YWNjdW11bGF0b3Jba2V5XT12YWx1ZTtyZXR1cm59aWYodm9pZCAwPT09YWNjdW11bGF0b3Jba2V5XSl7YWNjdW11bGF0b3Jba2V5XT1bdmFsdWVdO3JldHVybn1hY2N1bXVsYXRvcltrZXldPVtdLmNvbmNhdChhY2N1bXVsYXRvcltrZXldLHZhbHVlKX07Y2FzZSJjb21tYSI6Y2FzZSJzZXBhcmF0b3IiOnJldHVybihrZXksdmFsdWUsYWNjdW11bGF0b3IpPT57bGV0IGlzQXJyYXk9InN0cmluZyI9PXR5cGVvZiB2YWx1ZSYmdmFsdWUuaW5jbHVkZXMob3B0aW9ucy5hcnJheUZvcm1hdFNlcGFyYXRvciksaXNFbmNvZGVkQXJyYXk9InN0cmluZyI9PXR5cGVvZiB2YWx1ZSYmIWlzQXJyYXkmJmRlY29kZSh2YWx1ZSxvcHRpb25zKS5pbmNsdWRlcyhvcHRpb25zLmFycmF5Rm9ybWF0U2VwYXJhdG9yKTt2YWx1ZT1pc0VuY29kZWRBcnJheT9kZWNvZGUodmFsdWUsb3B0aW9ucyk6dmFsdWU7bGV0IG5ld1ZhbHVlPWlzQXJyYXl8fGlzRW5jb2RlZEFycmF5P3ZhbHVlLnNwbGl0KG9wdGlvbnMuYXJyYXlGb3JtYXRTZXBhcmF0b3IpLm1hcChpdGVtPT5kZWNvZGUoaXRlbSxvcHRpb25zKSk6bnVsbD09PXZhbHVlP3ZhbHVlOmRlY29kZSh2YWx1ZSxvcHRpb25zKTthY2N1bXVsYXRvcltrZXldPW5ld1ZhbHVlfTtkZWZhdWx0OnJldHVybihrZXksdmFsdWUsYWNjdW11bGF0b3IpPT57aWYodm9pZCAwPT09YWNjdW11bGF0b3Jba2V5XSl7YWNjdW11bGF0b3Jba2V5XT12YWx1ZTtyZXR1cm59YWNjdW11bGF0b3Jba2V5XT1bXS5jb25jYXQoYWNjdW11bGF0b3Jba2V5XSx2YWx1ZSl9fX0ob3B0aW9ucykscmV0PU9iamVjdC5jcmVhdGUobnVsbCk7aWYoInN0cmluZyIhPXR5cGVvZiBxdWVyeXx8IShxdWVyeT1xdWVyeS50cmltKCkucmVwbGFjZSgvXls/IyZdLywiIikpKXJldHVybiByZXQ7Zm9yKGxldCBwYXJhbSBvZiBxdWVyeS5zcGxpdCgiJiIpKXtpZigiIj09PXBhcmFtKWNvbnRpbnVlO2xldFtrZXksdmFsdWVdPXNwbGl0T25GaXJzdChvcHRpb25zLmRlY29kZT9wYXJhbS5yZXBsYWNlKC9cKy9nLCIgIik6cGFyYW0sIj0iKTt2YWx1ZT12b2lkIDA9PT12YWx1ZT9udWxsOlsiY29tbWEiLCJzZXBhcmF0b3IiXS5pbmNsdWRlcyhvcHRpb25zLmFycmF5Rm9ybWF0KT92YWx1ZTpkZWNvZGUodmFsdWUsb3B0aW9ucyksZm9ybWF0dGVyKGRlY29kZShrZXksb3B0aW9ucyksdmFsdWUscmV0KX1mb3IobGV0IGtleTEgb2YgT2JqZWN0LmtleXMocmV0KSl7bGV0IHZhbHVlMT1yZXRba2V5MV07aWYoIm9iamVjdCI9PXR5cGVvZiB2YWx1ZTEmJm51bGwhPT12YWx1ZTEpZm9yKGxldCBrIG9mIE9iamVjdC5rZXlzKHZhbHVlMSkpdmFsdWUxW2tdPXBhcnNlVmFsdWUodmFsdWUxW2tdLG9wdGlvbnMpO2Vsc2UgcmV0W2tleTFdPXBhcnNlVmFsdWUodmFsdWUxLG9wdGlvbnMpfXJldHVybiExPT09b3B0aW9ucy5zb3J0P3JldDooITA9PT1vcHRpb25zLnNvcnQ/T2JqZWN0LmtleXMocmV0KS5zb3J0KCk6T2JqZWN0LmtleXMocmV0KS5zb3J0KG9wdGlvbnMuc29ydCkpLnJlZHVjZSgocmVzdWx0LGtleSk9PntsZXQgdmFsdWU9cmV0W2tleV07cmV0dXJuIEJvb2xlYW4odmFsdWUpJiYib2JqZWN0Ij09dHlwZW9mIHZhbHVlJiYhQXJyYXkuaXNBcnJheSh2YWx1ZSk/cmVzdWx0W2tleV09ZnVuY3Rpb24ga2V5c1NvcnRlcihpbnB1dCl7cmV0dXJuIEFycmF5LmlzQXJyYXkoaW5wdXQpP2lucHV0LnNvcnQoKToib2JqZWN0Ij09dHlwZW9mIGlucHV0P2tleXNTb3J0ZXIoT2JqZWN0LmtleXMoaW5wdXQpKS5zb3J0KChhLGIpPT5OdW1iZXIoYSktTnVtYmVyKGIpKS5tYXAoa2V5PT5pbnB1dFtrZXldKTppbnB1dH0odmFsdWUpOnJlc3VsdFtrZXldPXZhbHVlLHJlc3VsdH0sT2JqZWN0LmNyZWF0ZShudWxsKSl9ZXhwb3J0cy5leHRyYWN0PWV4dHJhY3QsZXhwb3J0cy5wYXJzZT1wYXJzZSxleHBvcnRzLnN0cmluZ2lmeT0ob2JqZWN0LG9wdGlvbnMpPT57aWYoIW9iamVjdClyZXR1cm4iIjt2YWxpZGF0ZUFycmF5Rm9ybWF0U2VwYXJhdG9yKChvcHRpb25zPU9iamVjdC5hc3NpZ24oe2VuY29kZTohMCxzdHJpY3Q6ITAsYXJyYXlGb3JtYXQ6Im5vbmUiLGFycmF5Rm9ybWF0U2VwYXJhdG9yOiIsIn0sb3B0aW9ucykpLmFycmF5Rm9ybWF0U2VwYXJhdG9yKTtsZXQgc2hvdWxkRmlsdGVyPWtleT0+b3B0aW9ucy5za2lwTnVsbCYmaXNOdWxsT3JVbmRlZmluZWQob2JqZWN0W2tleV0pfHxvcHRpb25zLnNraXBFbXB0eVN0cmluZyYmIiI9PT1vYmplY3Rba2V5XSxmb3JtYXR0ZXI9ZnVuY3Rpb24ob3B0aW9ucyl7c3dpdGNoKG9wdGlvbnMuYXJyYXlGb3JtYXQpe2Nhc2UiaW5kZXgiOnJldHVybiBrZXk9PihyZXN1bHQsdmFsdWUpPT57bGV0IGluZGV4PXJlc3VsdC5sZW5ndGg7cmV0dXJuIHZvaWQgMD09PXZhbHVlfHxvcHRpb25zLnNraXBOdWxsJiZudWxsPT09dmFsdWV8fG9wdGlvbnMuc2tpcEVtcHR5U3RyaW5nJiYiIj09PXZhbHVlP3Jlc3VsdDpudWxsPT09dmFsdWU/Wy4uLnJlc3VsdCxbZW5jb2RlKGtleSxvcHRpb25zKSwiWyIsaW5kZXgsIl0iXS5qb2luKCIiKV06Wy4uLnJlc3VsdCxbZW5jb2RlKGtleSxvcHRpb25zKSwiWyIsZW5jb2RlKGluZGV4LG9wdGlvbnMpLCJdPSIsZW5jb2RlKHZhbHVlLG9wdGlvbnMpXS5qb2luKCIiKV19O2Nhc2UiYnJhY2tldCI6cmV0dXJuIGtleT0+KHJlc3VsdCx2YWx1ZSk9PnZvaWQgMD09PXZhbHVlfHxvcHRpb25zLnNraXBOdWxsJiZudWxsPT09dmFsdWV8fG9wdGlvbnMuc2tpcEVtcHR5U3RyaW5nJiYiIj09PXZhbHVlP3Jlc3VsdDpudWxsPT09dmFsdWU/Wy4uLnJlc3VsdCxbZW5jb2RlKGtleSxvcHRpb25zKSwiW10iXS5qb2luKCIiKV06Wy4uLnJlc3VsdCxbZW5jb2RlKGtleSxvcHRpb25zKSwiW109IixlbmNvZGUodmFsdWUsb3B0aW9ucyldLmpvaW4oIiIpXTtjYXNlImNvbW1hIjpjYXNlInNlcGFyYXRvciI6cmV0dXJuIGtleT0+KHJlc3VsdCx2YWx1ZSk9Pm51bGw9PXZhbHVlfHwwPT09dmFsdWUubGVuZ3RoP3Jlc3VsdDowPT09cmVzdWx0Lmxlbmd0aD9bW2VuY29kZShrZXksb3B0aW9ucyksIj0iLGVuY29kZSh2YWx1ZSxvcHRpb25zKV0uam9pbigiIildOltbcmVzdWx0LGVuY29kZSh2YWx1ZSxvcHRpb25zKV0uam9pbihvcHRpb25zLmFycmF5Rm9ybWF0U2VwYXJhdG9yKV07ZGVmYXVsdDpyZXR1cm4ga2V5PT4ocmVzdWx0LHZhbHVlKT0+dm9pZCAwPT09dmFsdWV8fG9wdGlvbnMuc2tpcE51bGwmJm51bGw9PT12YWx1ZXx8b3B0aW9ucy5za2lwRW1wdHlTdHJpbmcmJiIiPT09dmFsdWU/cmVzdWx0Om51bGw9PT12YWx1ZT9bLi4ucmVzdWx0LGVuY29kZShrZXksb3B0aW9ucyldOlsuLi5yZXN1bHQsW2VuY29kZShrZXksb3B0aW9ucyksIj0iLGVuY29kZSh2YWx1ZSxvcHRpb25zKV0uam9pbigiIildfX0ob3B0aW9ucyksb2JqZWN0Q29weT17fTtmb3IobGV0IGtleSBvZiBPYmplY3Qua2V5cyhvYmplY3QpKXNob3VsZEZpbHRlcihrZXkpfHwob2JqZWN0Q29weVtrZXldPW9iamVjdFtrZXldKTtsZXQga2V5cz1PYmplY3Qua2V5cyhvYmplY3RDb3B5KTtyZXR1cm4hMSE9PW9wdGlvbnMuc29ydCYma2V5cy5zb3J0KG9wdGlvbnMuc29ydCksa2V5cy5tYXAoa2V5PT57bGV0IHZhbHVlPW9iamVjdFtrZXldO3JldHVybiB2b2lkIDA9PT12YWx1ZT8iIjpudWxsPT09dmFsdWU/ZW5jb2RlKGtleSxvcHRpb25zKTpBcnJheS5pc0FycmF5KHZhbHVlKT92YWx1ZS5yZWR1Y2UoZm9ybWF0dGVyKGtleSksW10pLmpvaW4oIiYiKTplbmNvZGUoa2V5LG9wdGlvbnMpKyI9IitlbmNvZGUodmFsdWUsb3B0aW9ucyl9KS5maWx0ZXIoeD0+eC5sZW5ndGg+MCkuam9pbigiJiIpfSxleHBvcnRzLnBhcnNlVXJsPSh1cmwsb3B0aW9ucyk9PntvcHRpb25zPU9iamVjdC5hc3NpZ24oe2RlY29kZTohMH0sb3B0aW9ucyk7bGV0W3VybF8saGFzaF09c3BsaXRPbkZpcnN0KHVybCwiIyIpO3JldHVybiBPYmplY3QuYXNzaWduKHt1cmw6dXJsXy5zcGxpdCgiPyIpWzBdfHwiIixxdWVyeTpwYXJzZShleHRyYWN0KHVybCksb3B0aW9ucyl9LG9wdGlvbnMmJm9wdGlvbnMucGFyc2VGcmFnbWVudElkZW50aWZpZXImJmhhc2g/e2ZyYWdtZW50SWRlbnRpZmllcjpkZWNvZGUoaGFzaCxvcHRpb25zKX06e30pfSxleHBvcnRzLnN0cmluZ2lmeVVybD0ob2JqZWN0LG9wdGlvbnMpPT57b3B0aW9ucz1PYmplY3QuYXNzaWduKHtlbmNvZGU6ITAsc3RyaWN0OiEwfSxvcHRpb25zKTtsZXQgdXJsPXJlbW92ZUhhc2gob2JqZWN0LnVybCkuc3BsaXQoIj8iKVswXXx8IiIscXVlcnlGcm9tVXJsPWV4cG9ydHMuZXh0cmFjdChvYmplY3QudXJsKSxwYXJzZWRRdWVyeUZyb21Vcmw9ZXhwb3J0cy5wYXJzZShxdWVyeUZyb21Vcmwse3NvcnQ6ITF9KSxxdWVyeT1PYmplY3QuYXNzaWduKHBhcnNlZFF1ZXJ5RnJvbVVybCxvYmplY3QucXVlcnkpLHF1ZXJ5U3RyaW5nPWV4cG9ydHMuc3RyaW5naWZ5KHF1ZXJ5LG9wdGlvbnMpO3F1ZXJ5U3RyaW5nJiYocXVlcnlTdHJpbmc9YD8ke3F1ZXJ5U3RyaW5nfWApO2xldCBoYXNoPWZ1bmN0aW9uKHVybCl7bGV0IGhhc2g9IiIsaGFzaFN0YXJ0PXVybC5pbmRleE9mKCIjIik7cmV0dXJuIC0xIT09aGFzaFN0YXJ0JiYoaGFzaD11cmwuc2xpY2UoaGFzaFN0YXJ0KSksaGFzaH0ob2JqZWN0LnVybCk7cmV0dXJuIG9iamVjdC5mcmFnbWVudElkZW50aWZpZXImJihoYXNoPWAjJHtlbmNvZGUob2JqZWN0LmZyYWdtZW50SWRlbnRpZmllcixvcHRpb25zKX1gKSxgJHt1cmx9JHtxdWVyeVN0cmluZ30ke2hhc2h9YH0sZXhwb3J0cy5waWNrPShpbnB1dCxmaWx0ZXIsb3B0aW9ucyk9PntvcHRpb25zPU9iamVjdC5hc3NpZ24oe3BhcnNlRnJhZ21lbnRJZGVudGlmaWVyOiEwfSxvcHRpb25zKTtsZXR7dXJsLHF1ZXJ5LGZyYWdtZW50SWRlbnRpZmllcn09ZXhwb3J0cy5wYXJzZVVybChpbnB1dCxvcHRpb25zKTtyZXR1cm4gZXhwb3J0cy5zdHJpbmdpZnlVcmwoe3VybCxxdWVyeTpmaWx0ZXJPYmplY3QocXVlcnksZmlsdGVyKSxmcmFnbWVudElkZW50aWZpZXJ9LG9wdGlvbnMpfSxleHBvcnRzLmV4Y2x1ZGU9KGlucHV0LGZpbHRlcixvcHRpb25zKT0+e2xldCBleGNsdXNpb25GaWx0ZXI9QXJyYXkuaXNBcnJheShmaWx0ZXIpP2tleT0+IWZpbHRlci5pbmNsdWRlcyhrZXkpOihrZXksdmFsdWUpPT4hZmlsdGVyKGtleSx2YWx1ZSk7cmV0dXJuIGV4cG9ydHMucGljayhpbnB1dCxleGNsdXNpb25GaWx0ZXIsb3B0aW9ucyl9fSw2OTkyMTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxleHBvcnRzKXsidXNlIHN0cmljdCI7LyoqIEBsaWNlbnNlIFJlYWN0IHYxNi4xMy4xCiAqIHJlYWN0LWlzLnByb2R1Y3Rpb24ubWluLmpzCiAqCiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLgogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGUKICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi8gdmFyIGI9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmZvcixjPWI/U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpOjYwMTAzLGQ9Yj9TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKTo2MDEwNixlPWI/U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKTo2MDEwNyxmPWI/U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKTo2MDEwOCxnPWI/U3ltYm9sLmZvcigicmVhY3QucHJvZmlsZXIiKTo2MDExNCxoPWI/U3ltYm9sLmZvcigicmVhY3QucHJvdmlkZXIiKTo2MDEwOSxrPWI/U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpOjYwMTEwLGw9Yj9TeW1ib2wuZm9yKCJyZWFjdC5hc3luY19tb2RlIik6NjAxMTEsbT1iP1N5bWJvbC5mb3IoInJlYWN0LmNvbmN1cnJlbnRfbW9kZSIpOjYwMTExLG49Yj9TeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIpOjYwMTEyLHA9Yj9TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZSIpOjYwMTEzLHE9Yj9TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZV9saXN0Iik6NjAxMjAscj1iP1N5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKTo2MDExNSx0PWI/U3ltYm9sLmZvcigicmVhY3QubGF6eSIpOjYwMTE2LHY9Yj9TeW1ib2wuZm9yKCJyZWFjdC5ibG9jayIpOjYwMTIxLHc9Yj9TeW1ib2wuZm9yKCJyZWFjdC5mdW5kYW1lbnRhbCIpOjYwMTE3LHg9Yj9TeW1ib2wuZm9yKCJyZWFjdC5yZXNwb25kZXIiKTo2MDExOCx5PWI/U3ltYm9sLmZvcigicmVhY3Quc2NvcGUiKTo2MDExOTtmdW5jdGlvbiB6KGEpe2lmKCJvYmplY3QiPT10eXBlb2YgYSYmbnVsbCE9PWEpe3ZhciB1PWEuJCR0eXBlb2Y7c3dpdGNoKHUpe2Nhc2UgYzpzd2l0Y2goYT1hLnR5cGUpe2Nhc2UgbDpjYXNlIG06Y2FzZSBlOmNhc2UgZzpjYXNlIGY6Y2FzZSBwOnJldHVybiBhO2RlZmF1bHQ6c3dpdGNoKGE9YSYmYS4kJHR5cGVvZil7Y2FzZSBrOmNhc2UgbjpjYXNlIHQ6Y2FzZSByOmNhc2UgaDpyZXR1cm4gYTtkZWZhdWx0OnJldHVybiB1fX1jYXNlIGQ6cmV0dXJuIHV9fX1mdW5jdGlvbiBBKGEpe3JldHVybiB6KGEpPT09bX1leHBvcnRzLkFzeW5jTW9kZT1sLGV4cG9ydHMuQ29uY3VycmVudE1vZGU9bSxleHBvcnRzLkNvbnRleHRDb25zdW1lcj1rLGV4cG9ydHMuQ29udGV4dFByb3ZpZGVyPWgsZXhwb3J0cy5FbGVtZW50PWMsZXhwb3J0cy5Gb3J3YXJkUmVmPW4sZXhwb3J0cy5GcmFnbWVudD1lLGV4cG9ydHMuTGF6eT10LGV4cG9ydHMuTWVtbz1yLGV4cG9ydHMuUG9ydGFsPWQsZXhwb3J0cy5Qcm9maWxlcj1nLGV4cG9ydHMuU3RyaWN0TW9kZT1mLGV4cG9ydHMuU3VzcGVuc2U9cCxleHBvcnRzLmlzQXN5bmNNb2RlPWZ1bmN0aW9uKGEpe3JldHVybiBBKGEpfHx6KGEpPT09bH0sZXhwb3J0cy5pc0NvbmN1cnJlbnRNb2RlPUEsZXhwb3J0cy5pc0NvbnRleHRDb25zdW1lcj1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PWt9LGV4cG9ydHMuaXNDb250ZXh0UHJvdmlkZXI9ZnVuY3Rpb24oYSl7cmV0dXJuIHooYSk9PT1ofSxleHBvcnRzLmlzRWxlbWVudD1mdW5jdGlvbihhKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGEmJm51bGwhPT1hJiZhLiQkdHlwZW9mPT09Y30sZXhwb3J0cy5pc0ZvcndhcmRSZWY9ZnVuY3Rpb24oYSl7cmV0dXJuIHooYSk9PT1ufSxleHBvcnRzLmlzRnJhZ21lbnQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHooYSk9PT1lfSxleHBvcnRzLmlzTGF6eT1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PXR9LGV4cG9ydHMuaXNNZW1vPWZ1bmN0aW9uKGEpe3JldHVybiB6KGEpPT09cn0sZXhwb3J0cy5pc1BvcnRhbD1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PWR9LGV4cG9ydHMuaXNQcm9maWxlcj1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PWd9LGV4cG9ydHMuaXNTdHJpY3RNb2RlPWZ1bmN0aW9uKGEpe3JldHVybiB6KGEpPT09Zn0sZXhwb3J0cy5pc1N1c3BlbnNlPWZ1bmN0aW9uKGEpe3JldHVybiB6KGEpPT09cH0sZXhwb3J0cy5pc1ZhbGlkRWxlbWVudFR5cGU9ZnVuY3Rpb24oYSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBhfHwiZnVuY3Rpb24iPT10eXBlb2YgYXx8YT09PWV8fGE9PT1tfHxhPT09Z3x8YT09PWZ8fGE9PT1wfHxhPT09cXx8Im9iamVjdCI9PXR5cGVvZiBhJiZudWxsIT09YSYmKGEuJCR0eXBlb2Y9PT10fHxhLiQkdHlwZW9mPT09cnx8YS4kJHR5cGVvZj09PWh8fGEuJCR0eXBlb2Y9PT1rfHxhLiQkdHlwZW9mPT09bnx8YS4kJHR5cGVvZj09PXd8fGEuJCR0eXBlb2Y9PT14fHxhLiQkdHlwZW9mPT09eXx8YS4kJHR5cGVvZj09PXYpfSxleHBvcnRzLnR5cGVPZj16fSw1OTg2NDpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfd2VicGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0Ijttb2R1bGUuZXhwb3J0cz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY5OTIxKX0sODA1MDA6ZnVuY3Rpb24obW9kdWxlKXsidXNlIHN0cmljdCI7bW9kdWxlLmV4cG9ydHM9KHN0cmluZyxzZXBhcmF0b3IpPT57aWYoISgic3RyaW5nIj09dHlwZW9mIHN0cmluZyYmInN0cmluZyI9PXR5cGVvZiBzZXBhcmF0b3IpKXRocm93IFR5cGVFcnJvcigiRXhwZWN0ZWQgdGhlIGFyZ3VtZW50cyB0byBiZSBvZiB0eXBlIGBzdHJpbmdgIik7aWYoIiI9PT1zZXBhcmF0b3IpcmV0dXJuW3N0cmluZ107bGV0IHNlcGFyYXRvckluZGV4PXN0cmluZy5pbmRleE9mKHNlcGFyYXRvcik7cmV0dXJuIC0xPT09c2VwYXJhdG9ySW5kZXg/W3N0cmluZ106W3N0cmluZy5zbGljZSgwLHNlcGFyYXRvckluZGV4KSxzdHJpbmcuc2xpY2Uoc2VwYXJhdG9ySW5kZXgrc2VwYXJhdG9yLmxlbmd0aCldfX0sNzA2MTA6ZnVuY3Rpb24obW9kdWxlKXsidXNlIHN0cmljdCI7bW9kdWxlLmV4cG9ydHM9c3RyPT5lbmNvZGVVUklDb21wb25lbnQoc3RyKS5yZXBsYWNlKC9bIScoKSpdL2cseD0+YCUke3guY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX1gKX0sMTIwMTY6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1g6ZnVuY3Rpb24oKXtyZXR1cm4gREVCVUdfQlVJTER9fSk7bGV0IERFQlVHX0JVSUxEPSExfSw5OTU3OTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtsZXQgbGFzdEhyZWY7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se2E6ZnVuY3Rpb24oKXtyZXR1cm4gYWRkSGlzdG9yeUluc3RydW1lbnRhdGlvbkhhbmRsZXJ9fSk7dmFyIF9zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oOTE0OTkpLF9zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fPV9fd2VicGFja19yZXF1aXJlX18oNDc5NzcpLF9zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fPV9fd2VicGFja19yZXF1aXJlX18oOTM4MjApLF90eXBlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oMjMwMzkpO2Z1bmN0aW9uIGFkZEhpc3RvcnlJbnN0cnVtZW50YXRpb25IYW5kbGVyKGhhbmRsZXIpe2xldCB0eXBlPSJoaXN0b3J5IjsoMCxfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5IaikodHlwZSxoYW5kbGVyKSwoMCxfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5EMikodHlwZSxpbnN0cnVtZW50SGlzdG9yeSl9ZnVuY3Rpb24gaW5zdHJ1bWVudEhpc3RvcnkoKXtfdHlwZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5tLmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIiwoKT0+e2xldCB0bz1fdHlwZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5tLmxvY2F0aW9uLmhyZWYsZnJvbT1sYXN0SHJlZjtsYXN0SHJlZj10byxmcm9tIT09dG8mJigwLF9zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnJLKSgiaGlzdG9yeSIse2Zyb20sdG99KX0pLCgwLF9zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkJmKSgpJiYoKDAsX3NlbnRyeV9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uaGwpKF90eXBlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLm0uaGlzdG9yeSwicHVzaFN0YXRlIixoaXN0b3J5UmVwbGFjZW1lbnRGdW5jdGlvbiksKDAsX3NlbnRyeV9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uaGwpKF90eXBlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLm0uaGlzdG9yeSwicmVwbGFjZVN0YXRlIixoaXN0b3J5UmVwbGFjZW1lbnRGdW5jdGlvbikpO2Z1bmN0aW9uIGhpc3RvcnlSZXBsYWNlbWVudEZ1bmN0aW9uKG9yaWdpbmFsSGlzdG9yeUZ1bmN0aW9uKXtyZXR1cm4gZnVuY3Rpb24oLi4uYXJncyl7bGV0IHVybD1hcmdzLmxlbmd0aD4yP2FyZ3NbMl06dm9pZCAwO2lmKHVybCl7bGV0IGZyb209bGFzdEhyZWYsdG89ZnVuY3Rpb24odXJsT3JQYXRoKXt0cnl7bGV0IHVybD1uZXcgVVJMKHVybE9yUGF0aCxfdHlwZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5tLmxvY2F0aW9uLm9yaWdpbik7cmV0dXJuIHVybC50b1N0cmluZygpfWNhdGNoe3JldHVybiB1cmxPclBhdGh9fShTdHJpbmcodXJsKSk7aWYobGFzdEhyZWY9dG8sZnJvbT09PXRvKXJldHVybiBvcmlnaW5hbEhpc3RvcnlGdW5jdGlvbi5hcHBseSh0aGlzLGFyZ3MpOygwLF9zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnJLKSgiaGlzdG9yeSIse2Zyb20sdG99KX1yZXR1cm4gb3JpZ2luYWxIaXN0b3J5RnVuY3Rpb24uYXBwbHkodGhpcyxhcmdzKX19fX0sNjcxMjc6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1VLOmZ1bmN0aW9uKCl7cmV0dXJuIGFkZFhockluc3RydW1lbnRhdGlvbkhhbmRsZXJ9LHhVOmZ1bmN0aW9uKCl7cmV0dXJuIFNFTlRSWV9YSFJfREFUQV9LRVl9fSk7dmFyIF9zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oOTE0OTkpLF9zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fPV9fd2VicGFja19yZXF1aXJlX18oOTA3NzIpLF9zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fPV9fd2VicGFja19yZXF1aXJlX18oNDE3NDUpLF90eXBlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oMjMwMzkpO2xldCBTRU5UUllfWEhSX0RBVEFfS0VZPSJfX3NlbnRyeV94aHJfdjNfXyI7ZnVuY3Rpb24gYWRkWGhySW5zdHJ1bWVudGF0aW9uSGFuZGxlcihoYW5kbGVyKXsoMCxfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5IaikoInhociIsaGFuZGxlciksKDAsX3NlbnRyeV9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRDIpKCJ4aHIiLGluc3RydW1lbnRYSFIpfWZ1bmN0aW9uIGluc3RydW1lbnRYSFIoKXtpZighX3R5cGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ubS5YTUxIdHRwUmVxdWVzdClyZXR1cm47bGV0IHhocnByb3RvPVhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZTt4aHJwcm90by5vcGVuPW5ldyBQcm94eSh4aHJwcm90by5vcGVuLHthcHBseShvcmlnaW5hbE9wZW4seGhyT3BlblRoaXNBcmcseGhyT3BlbkFyZ0FycmF5KXtsZXQgdmlydHVhbEVycm9yPUVycm9yKCksc3RhcnRUaW1lc3RhbXA9MWUzKigwLF9zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnBoKSgpLG1ldGhvZD0oMCxfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5IRCkoeGhyT3BlbkFyZ0FycmF5WzBdKT94aHJPcGVuQXJnQXJyYXlbMF0udG9VcHBlckNhc2UoKTp2b2lkIDAsdXJsPWZ1bmN0aW9uKHVybCl7aWYoKDAsX3NlbnRyeV9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uSEQpKHVybCkpcmV0dXJuIHVybDt0cnl7cmV0dXJuIHVybC50b1N0cmluZygpfWNhdGNoe319KHhock9wZW5BcmdBcnJheVsxXSk7aWYoIW1ldGhvZHx8IXVybClyZXR1cm4gb3JpZ2luYWxPcGVuLmFwcGx5KHhock9wZW5UaGlzQXJnLHhock9wZW5BcmdBcnJheSk7eGhyT3BlblRoaXNBcmdbU0VOVFJZX1hIUl9EQVRBX0tFWV09e21ldGhvZCx1cmwscmVxdWVzdF9oZWFkZXJzOnt9fSwiUE9TVCI9PT1tZXRob2QmJnVybC5tYXRjaCgvc2VudHJ5X2tleS8pJiYoeGhyT3BlblRoaXNBcmcuX19zZW50cnlfb3duX3JlcXVlc3RfXz0hMCk7bGV0IG9ucmVhZHlzdGF0ZWNoYW5nZUhhbmRsZXI9KCk9PntsZXQgeGhySW5mbz14aHJPcGVuVGhpc0FyZ1tTRU5UUllfWEhSX0RBVEFfS0VZXTtpZih4aHJJbmZvJiY0PT09eGhyT3BlblRoaXNBcmcucmVhZHlTdGF0ZSl7dHJ5e3hockluZm8uc3RhdHVzX2NvZGU9eGhyT3BlblRoaXNBcmcuc3RhdHVzfWNhdGNoe31sZXQgaGFuZGxlckRhdGE9e2VuZFRpbWVzdGFtcDoxZTMqKDAsX3NlbnRyeV9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ucGgpKCksc3RhcnRUaW1lc3RhbXAseGhyOnhock9wZW5UaGlzQXJnLHZpcnR1YWxFcnJvcn07KDAsX3NlbnRyeV9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uckspKCJ4aHIiLGhhbmRsZXJEYXRhKX19O3JldHVybiJvbnJlYWR5c3RhdGVjaGFuZ2UiaW4geGhyT3BlblRoaXNBcmcmJiJmdW5jdGlvbiI9PXR5cGVvZiB4aHJPcGVuVGhpc0FyZy5vbnJlYWR5c3RhdGVjaGFuZ2U/eGhyT3BlblRoaXNBcmcub25yZWFkeXN0YXRlY2hhbmdlPW5ldyBQcm94eSh4aHJPcGVuVGhpc0FyZy5vbnJlYWR5c3RhdGVjaGFuZ2Use2FwcGx5OihvcmlnaW5hbE9ucmVhZHlzdGF0ZWNoYW5nZSxvbnJlYWR5c3RhdGVjaGFuZ2VUaGlzQXJnLG9ucmVhZHlzdGF0ZWNoYW5nZUFyZ0FycmF5KT0+KG9ucmVhZHlzdGF0ZWNoYW5nZUhhbmRsZXIoKSxvcmlnaW5hbE9ucmVhZHlzdGF0ZWNoYW5nZS5hcHBseShvbnJlYWR5c3RhdGVjaGFuZ2VUaGlzQXJnLG9ucmVhZHlzdGF0ZWNoYW5nZUFyZ0FycmF5KSl9KTp4aHJPcGVuVGhpc0FyZy5hZGRFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIixvbnJlYWR5c3RhdGVjaGFuZ2VIYW5kbGVyKSx4aHJPcGVuVGhpc0FyZy5zZXRSZXF1ZXN0SGVhZGVyPW5ldyBQcm94eSh4aHJPcGVuVGhpc0FyZy5zZXRSZXF1ZXN0SGVhZGVyLHthcHBseShvcmlnaW5hbFNldFJlcXVlc3RIZWFkZXIsc2V0UmVxdWVzdEhlYWRlclRoaXNBcmcsc2V0UmVxdWVzdEhlYWRlckFyZ0FycmF5KXtsZXRbaGVhZGVyLHZhbHVlXT1zZXRSZXF1ZXN0SGVhZGVyQXJnQXJyYXkseGhySW5mbz1zZXRSZXF1ZXN0SGVhZGVyVGhpc0FyZ1tTRU5UUllfWEhSX0RBVEFfS0VZXTtyZXR1cm4geGhySW5mbyYmKDAsX3NlbnRyeV9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uSEQpKGhlYWRlcikmJigwLF9zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLkhEKSh2YWx1ZSkmJih4aHJJbmZvLnJlcXVlc3RfaGVhZGVyc1toZWFkZXIudG9Mb3dlckNhc2UoKV09dmFsdWUpLG9yaWdpbmFsU2V0UmVxdWVzdEhlYWRlci5hcHBseShzZXRSZXF1ZXN0SGVhZGVyVGhpc0FyZyxzZXRSZXF1ZXN0SGVhZGVyQXJnQXJyYXkpfX0pLG9yaWdpbmFsT3Blbi5hcHBseSh4aHJPcGVuVGhpc0FyZyx4aHJPcGVuQXJnQXJyYXkpfX0pLHhocnByb3RvLnNlbmQ9bmV3IFByb3h5KHhocnByb3RvLnNlbmQse2FwcGx5KG9yaWdpbmFsU2VuZCxzZW5kVGhpc0FyZyxzZW5kQXJnQXJyYXkpe2xldCBzZW50cnlYaHJEYXRhPXNlbmRUaGlzQXJnW1NFTlRSWV9YSFJfREFUQV9LRVldO2lmKCFzZW50cnlYaHJEYXRhKXJldHVybiBvcmlnaW5hbFNlbmQuYXBwbHkoc2VuZFRoaXNBcmcsc2VuZEFyZ0FycmF5KTt2b2lkIDAhPT1zZW5kQXJnQXJyYXlbMF0mJihzZW50cnlYaHJEYXRhLmJvZHk9c2VuZEFyZ0FycmF5WzBdKTtsZXQgaGFuZGxlckRhdGE9e3N0YXJ0VGltZXN0YW1wOjFlMyooMCxfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5waCkoKSx4aHI6c2VuZFRoaXNBcmd9O3JldHVybigwLF9zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnJLKSgieGhyIixoYW5kbGVyRGF0YSksb3JpZ2luYWxTZW5kLmFwcGx5KHNlbmRUaGlzQXJnLHNlbmRBcmdBcnJheSl9fSl9fSwyMzAzOTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7bTpmdW5jdGlvbigpe3JldHVybiBXSU5ET1d9fSk7dmFyIF9zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNTE1OTcpO2xldCBXSU5ET1c9X3NlbnRyeV9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubn0sODUyNjk6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1g6ZnVuY3Rpb24oKXtyZXR1cm4gREVCVUdfQlVJTER9fSk7bGV0IERFQlVHX0JVSUxEPSExfSwzMDU0NDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7UEo6ZnVuY3Rpb24oKXtyZXR1cm4gZ2V0SHR0cFJlcXVlc3REYXRhfSxXejpmdW5jdGlvbigpe3JldHVybiBzaG91bGRJZ25vcmVPbkVycm9yfSxtOTpmdW5jdGlvbigpe3JldHVybiBXSU5ET1d9LHJlOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIHdyYXAoZm4sb3B0aW9ucz17fSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGZuKXJldHVybiBmbjt0cnl7bGV0IHdyYXBwZXI9Zm4uX19zZW50cnlfd3JhcHBlZF9fO2lmKHdyYXBwZXIpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB3cmFwcGVyKXJldHVybiB3cmFwcGVyO3JldHVybiBmbn1pZigoMCxfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5ISykoZm4pKXJldHVybiBmbn1jYXRjaHtyZXR1cm4gZm59bGV0IHNlbnRyeVdyYXBwZWQ9ZnVuY3Rpb24oLi4uYXJncyl7dHJ5e2xldCB3cmFwcGVkQXJndW1lbnRzPWFyZ3MubWFwKGFyZz0+d3JhcChhcmcsb3B0aW9ucykpO3JldHVybiBmbi5hcHBseSh0aGlzLHdyYXBwZWRBcmd1bWVudHMpfWNhdGNoKGV4KXt0aHJvdyBpZ25vcmVPbkVycm9yKyssc2V0VGltZW91dCgoKT0+e2lnbm9yZU9uRXJyb3ItLX0pLCgwLF9zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLiRlKShzY29wZT0+e3Njb3BlLmFkZEV2ZW50UHJvY2Vzc29yKGV2ZW50PT4ob3B0aW9ucy5tZWNoYW5pc20mJigoMCxfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5EYikoZXZlbnQsdm9pZCAwLHZvaWQgMCksKDAsX3NlbnRyeV9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uRUcpKGV2ZW50LG9wdGlvbnMubWVjaGFuaXNtKSksZXZlbnQuZXh0cmE9ey4uLmV2ZW50LmV4dHJhLGFyZ3VtZW50czphcmdzfSxldmVudCkpLCgwLF9zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlRiKShleCl9KSxleH19O3RyeXtmb3IobGV0IHByb3BlcnR5IGluIGZuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmbixwcm9wZXJ0eSkmJihzZW50cnlXcmFwcGVkW3Byb3BlcnR5XT1mbltwcm9wZXJ0eV0pfWNhdGNoe30oMCxfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy4kUSkoc2VudHJ5V3JhcHBlZCxmbiksKDAsX3NlbnRyeV9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ueHApKGZuLCJfX3NlbnRyeV93cmFwcGVkX18iLHNlbnRyeVdyYXBwZWQpO3RyeXtsZXQgZGVzY3JpcHRvcj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbnRyeVdyYXBwZWQsIm5hbWUiKTtkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHNlbnRyeVdyYXBwZWQsIm5hbWUiLHtnZXQ6KCk9PmZuLm5hbWV9KX1jYXRjaHt9cmV0dXJuIHNlbnRyeVdyYXBwZWR9fX0pO3ZhciBfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDUxNTk3KSxfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDkzODIwKSxfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDczMDc2KSxfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDM0MTU2KSxfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDM5NDI0KSxfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDM4MTQzKTtsZXQgV0lORE9XPV9zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLm4saWdub3JlT25FcnJvcj0wO2Z1bmN0aW9uIHNob3VsZElnbm9yZU9uRXJyb3IoKXtyZXR1cm4gaWdub3JlT25FcnJvcj4wfWZ1bmN0aW9uIGdldEh0dHBSZXF1ZXN0RGF0YSgpe2xldCB1cmw9KDAsX3NlbnRyeV9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18ubDQpKCkse3JlZmVycmVyfT1XSU5ET1cuZG9jdW1lbnR8fHt9LHt1c2VyQWdlbnR9PVdJTkRPVy5uYXZpZ2F0b3J8fHt9LGhlYWRlcnM9ey4uLnJlZmVycmVyJiZ7UmVmZXJlcjpyZWZlcnJlcn0sLi4udXNlckFnZW50JiZ7IlVzZXItQWdlbnQiOnVzZXJBZ2VudH19O3JldHVybnt1cmwsaGVhZGVyc319fSw3Njc0MzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtsZXQgcG8sX3ByZXZpb3VzQ2xzLF9wcmV2aW91c0xjcCxfcHJldmlvdXNUdGZiLF9wcmV2aW91c0lucCxfbGNwRW50cnksX2Nsc0VudHJ5O19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtFODpmdW5jdGlvbigpe3JldHVybiBicm93c2VyVHJhY2luZ0ludGVncmF0aW9ufSxvZzpmdW5jdGlvbigpe3JldHVybiBzdGFydEJyb3dzZXJUcmFjaW5nTmF2aWdhdGlvblNwYW59LFdvOmZ1bmN0aW9uKCl7cmV0dXJuIHN0YXJ0QnJvd3NlclRyYWNpbmdQYWdlTG9hZFNwYW59fSk7dmFyIGN1cnJlbnRTY29wZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg3MzA3NiksZGVidWdfYnVpbGQ9X193ZWJwYWNrX3JlcXVpcmVfXyg5NDIyMyksc2VtYW50aWNBdHRyaWJ1dGVzPV9fd2VicGFja19yZXF1aXJlX18oMzEyMTgpLGRlYnVnX2xvZ2dlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MjQpLGhhc1NwYW5zRW5hYmxlZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDUxMDcyKSxzaG91bGRfaWdub3JlX3NwYW49X193ZWJwYWNrX3JlcXVpcmVfXyg5MTgxOSksc3Bhbk9uU2NvcGU9X193ZWJwYWNrX3JlcXVpcmVfXyg4OTM2Niksc3BhblV0aWxzPV9fd2VicGFja19yZXF1aXJlX18oODE1ODUpLHV0aWxzX3RpbWU9X193ZWJwYWNrX3JlcXVpcmVfXyg5MDc3MiksZHluYW1pY1NhbXBsaW5nQ29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDcyMTIzKSx1dGlsc19wcm9wYWdhdGlvbkNvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg4MTUxKTtjbGFzcyBzZW50cnlOb25SZWNvcmRpbmdTcGFuX1NlbnRyeU5vblJlY29yZGluZ1NwYW57Y29uc3RydWN0b3Ioc3BhbkNvbnRleHQ9e30pe3RoaXMuX3RyYWNlSWQ9c3BhbkNvbnRleHQudHJhY2VJZHx8KDAsdXRpbHNfcHJvcGFnYXRpb25Db250ZXh0LkgpKCksdGhpcy5fc3BhbklkPXNwYW5Db250ZXh0LnNwYW5JZHx8KDAsdXRpbHNfcHJvcGFnYXRpb25Db250ZXh0Lk0pKCl9c3BhbkNvbnRleHQoKXtyZXR1cm57c3BhbklkOnRoaXMuX3NwYW5JZCx0cmFjZUlkOnRoaXMuX3RyYWNlSWQsdHJhY2VGbGFnczpzcGFuVXRpbHMudmV9fWVuZChfdGltZXN0YW1wKXt9c2V0QXR0cmlidXRlKF9rZXksX3ZhbHVlKXtyZXR1cm4gdGhpc31zZXRBdHRyaWJ1dGVzKF92YWx1ZXMpe3JldHVybiB0aGlzfXNldFN0YXR1cyhfc3RhdHVzKXtyZXR1cm4gdGhpc311cGRhdGVOYW1lKF9uYW1lKXtyZXR1cm4gdGhpc31pc1JlY29yZGluZygpe3JldHVybiExfWFkZEV2ZW50KF9uYW1lLF9hdHRyaWJ1dGVzT3JTdGFydFRpbWUsX3N0YXJ0VGltZSl7cmV0dXJuIHRoaXN9YWRkTGluayhfbGluayl7cmV0dXJuIHRoaXN9YWRkTGlua3MoX2xpbmtzKXtyZXR1cm4gdGhpc31yZWNvcmRFeGNlcHRpb24oX2V4Y2VwdGlvbixfdGltZSl7fX12YXIgZW52ZWxvcGU9X193ZWJwYWNrX3JlcXVpcmVfXygxMTc5Myk7ZnVuY3Rpb24gdGltZWRFdmVudHNUb01lYXN1cmVtZW50cyhldmVudHMpe2lmKCFldmVudHN8fDA9PT1ldmVudHMubGVuZ3RoKXJldHVybjtsZXQgbWVhc3VyZW1lbnRzPXt9O3JldHVybiBldmVudHMuZm9yRWFjaChldmVudD0+e2xldCBhdHRyaWJ1dGVzPWV2ZW50LmF0dHJpYnV0ZXN8fHt9LHVuaXQ9YXR0cmlidXRlc1tzZW1hbnRpY0F0dHJpYnV0ZXMuRTFdLHZhbHVlPWF0dHJpYnV0ZXNbc2VtYW50aWNBdHRyaWJ1dGVzLldiXTsic3RyaW5nIj09dHlwZW9mIHVuaXQmJiJudW1iZXIiPT10eXBlb2YgdmFsdWUmJihtZWFzdXJlbWVudHNbZXZlbnQubmFtZV09e3ZhbHVlLHVuaXR9KX0pLG1lYXN1cmVtZW50c312YXIgdXRpbHM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NjUxNSk7Y2xhc3MgU2VudHJ5U3Bhbntjb25zdHJ1Y3RvcihzcGFuQ29udGV4dD17fSl7dGhpcy5fdHJhY2VJZD1zcGFuQ29udGV4dC50cmFjZUlkfHwoMCx1dGlsc19wcm9wYWdhdGlvbkNvbnRleHQuSCkoKSx0aGlzLl9zcGFuSWQ9c3BhbkNvbnRleHQuc3BhbklkfHwoMCx1dGlsc19wcm9wYWdhdGlvbkNvbnRleHQuTSkoKSx0aGlzLl9zdGFydFRpbWU9c3BhbkNvbnRleHQuc3RhcnRUaW1lc3RhbXB8fCgwLHV0aWxzX3RpbWUucGgpKCksdGhpcy5fbGlua3M9c3BhbkNvbnRleHQubGlua3MsdGhpcy5fYXR0cmlidXRlcz17fSx0aGlzLnNldEF0dHJpYnV0ZXMoe1tzZW1hbnRpY0F0dHJpYnV0ZXMuUzNdOiJtYW51YWwiLFtzZW1hbnRpY0F0dHJpYnV0ZXMuJEpdOnNwYW5Db250ZXh0Lm9wLC4uLnNwYW5Db250ZXh0LmF0dHJpYnV0ZXN9KSx0aGlzLl9uYW1lPXNwYW5Db250ZXh0Lm5hbWUsc3BhbkNvbnRleHQucGFyZW50U3BhbklkJiYodGhpcy5fcGFyZW50U3BhbklkPXNwYW5Db250ZXh0LnBhcmVudFNwYW5JZCksInNhbXBsZWQiaW4gc3BhbkNvbnRleHQmJih0aGlzLl9zYW1wbGVkPXNwYW5Db250ZXh0LnNhbXBsZWQpLHNwYW5Db250ZXh0LmVuZFRpbWVzdGFtcCYmKHRoaXMuX2VuZFRpbWU9c3BhbkNvbnRleHQuZW5kVGltZXN0YW1wKSx0aGlzLl9ldmVudHM9W10sdGhpcy5faXNTdGFuZGFsb25lU3Bhbj1zcGFuQ29udGV4dC5pc1N0YW5kYWxvbmUsdGhpcy5fZW5kVGltZSYmdGhpcy5fb25TcGFuRW5kZWQoKX1hZGRMaW5rKGxpbmspe3JldHVybiB0aGlzLl9saW5rcz90aGlzLl9saW5rcy5wdXNoKGxpbmspOnRoaXMuX2xpbmtzPVtsaW5rXSx0aGlzfWFkZExpbmtzKGxpbmtzKXtyZXR1cm4gdGhpcy5fbGlua3M/dGhpcy5fbGlua3MucHVzaCguLi5saW5rcyk6dGhpcy5fbGlua3M9bGlua3MsdGhpc31yZWNvcmRFeGNlcHRpb24oX2V4Y2VwdGlvbixfdGltZSl7fXNwYW5Db250ZXh0KCl7bGV0e19zcGFuSWQ6c3BhbklkLF90cmFjZUlkOnRyYWNlSWQsX3NhbXBsZWQ6c2FtcGxlZH09dGhpcztyZXR1cm57c3BhbklkLHRyYWNlSWQsdHJhY2VGbGFnczpzYW1wbGVkP3NwYW5VdGlscy5pMDpzcGFuVXRpbHMudmV9fXNldEF0dHJpYnV0ZShrZXksdmFsdWUpe3JldHVybiB2b2lkIDA9PT12YWx1ZT9kZWxldGUgdGhpcy5fYXR0cmlidXRlc1trZXldOnRoaXMuX2F0dHJpYnV0ZXNba2V5XT12YWx1ZSx0aGlzfXNldEF0dHJpYnV0ZXMoYXR0cmlidXRlcyl7cmV0dXJuIE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMpLmZvckVhY2goa2V5PT50aGlzLnNldEF0dHJpYnV0ZShrZXksYXR0cmlidXRlc1trZXldKSksdGhpc311cGRhdGVTdGFydFRpbWUodGltZUlucHV0KXt0aGlzLl9zdGFydFRpbWU9KDAsc3BhblV0aWxzLiRrKSh0aW1lSW5wdXQpfXNldFN0YXR1cyh2YWx1ZSl7cmV0dXJuIHRoaXMuX3N0YXR1cz12YWx1ZSx0aGlzfXVwZGF0ZU5hbWUobmFtZSl7cmV0dXJuIHRoaXMuX25hbWU9bmFtZSx0aGlzLnNldEF0dHJpYnV0ZShzZW1hbnRpY0F0dHJpYnV0ZXMuWmosImN1c3RvbSIpLHRoaXN9ZW5kKGVuZFRpbWVzdGFtcCl7dGhpcy5fZW5kVGltZXx8KHRoaXMuX2VuZFRpbWU9KDAsc3BhblV0aWxzLiRrKShlbmRUaW1lc3RhbXApLGZ1bmN0aW9uKHNwYW4pe2lmKCFkZWJ1Z19idWlsZC5YKXJldHVybjtsZXR7ZGVzY3JpcHRpb249IjwgdW5rbm93biBuYW1lID4iLG9wPSI8IHVua25vd24gb3AgPiJ9PSgwLHNwYW5VdGlscy5YVSkoc3Bhbikse3NwYW5JZH09c3Bhbi5zcGFuQ29udGV4dCgpLHJvb3RTcGFuPSgwLHNwYW5VdGlscy5HeCkoc3BhbiksbXNnPWBbVHJhY2luZ10gRmluaXNoaW5nICIke29wfSIgJHtyb290U3Bhbj09PXNwYW4/InJvb3QgIjoiIn1zcGFuICIke2Rlc2NyaXB0aW9ufSIgd2l0aCBJRCAke3NwYW5JZH1gO2RlYnVnX2xvZ2dlci5mRi5sb2cobXNnKX0odGhpcyksdGhpcy5fb25TcGFuRW5kZWQoKSl9Z2V0U3BhbkpTT04oKXtyZXR1cm57ZGF0YTp0aGlzLl9hdHRyaWJ1dGVzLGRlc2NyaXB0aW9uOnRoaXMuX25hbWUsb3A6dGhpcy5fYXR0cmlidXRlc1tzZW1hbnRpY0F0dHJpYnV0ZXMuJEpdLHBhcmVudF9zcGFuX2lkOnRoaXMuX3BhcmVudFNwYW5JZCxzcGFuX2lkOnRoaXMuX3NwYW5JZCxzdGFydF90aW1lc3RhbXA6dGhpcy5fc3RhcnRUaW1lLHN0YXR1czooMCxzcGFuVXRpbHMuXzQpKHRoaXMuX3N0YXR1cyksdGltZXN0YW1wOnRoaXMuX2VuZFRpbWUsdHJhY2VfaWQ6dGhpcy5fdHJhY2VJZCxvcmlnaW46dGhpcy5fYXR0cmlidXRlc1tzZW1hbnRpY0F0dHJpYnV0ZXMuUzNdLHByb2ZpbGVfaWQ6dGhpcy5fYXR0cmlidXRlc1tzZW1hbnRpY0F0dHJpYnV0ZXMucDZdLGV4Y2x1c2l2ZV90aW1lOnRoaXMuX2F0dHJpYnV0ZXNbc2VtYW50aWNBdHRyaWJ1dGVzLkpRXSxtZWFzdXJlbWVudHM6dGltZWRFdmVudHNUb01lYXN1cmVtZW50cyh0aGlzLl9ldmVudHMpLGlzX3NlZ21lbnQ6dGhpcy5faXNTdGFuZGFsb25lU3BhbiYmKDAsc3BhblV0aWxzLkd4KSh0aGlzKT09PXRoaXN8fHZvaWQgMCxzZWdtZW50X2lkOnRoaXMuX2lzU3RhbmRhbG9uZVNwYW4/KDAsc3BhblV0aWxzLkd4KSh0aGlzKS5zcGFuQ29udGV4dCgpLnNwYW5JZDp2b2lkIDAsbGlua3M6KDAsc3BhblV0aWxzLkZGKSh0aGlzLl9saW5rcyl9fWlzUmVjb3JkaW5nKCl7cmV0dXJuIXRoaXMuX2VuZFRpbWUmJiEhdGhpcy5fc2FtcGxlZH1hZGRFdmVudChuYW1lLGF0dHJpYnV0ZXNPclN0YXJ0VGltZSxzdGFydFRpbWUpe2RlYnVnX2J1aWxkLlgmJmRlYnVnX2xvZ2dlci5mRi5sb2coIltUcmFjaW5nXSBBZGRpbmcgYW4gZXZlbnQgdG8gc3BhbjoiLG5hbWUpO2xldCB0aW1lPWlzU3BhblRpbWVJbnB1dChhdHRyaWJ1dGVzT3JTdGFydFRpbWUpP2F0dHJpYnV0ZXNPclN0YXJ0VGltZTpzdGFydFRpbWV8fCgwLHV0aWxzX3RpbWUucGgpKCksYXR0cmlidXRlcz1pc1NwYW5UaW1lSW5wdXQoYXR0cmlidXRlc09yU3RhcnRUaW1lKT97fTphdHRyaWJ1dGVzT3JTdGFydFRpbWV8fHt9LGV2ZW50PXtuYW1lLHRpbWU6KDAsc3BhblV0aWxzLiRrKSh0aW1lKSxhdHRyaWJ1dGVzfTtyZXR1cm4gdGhpcy5fZXZlbnRzLnB1c2goZXZlbnQpLHRoaXN9aXNTdGFuZGFsb25lU3Bhbigpe3JldHVybiEhdGhpcy5faXNTdGFuZGFsb25lU3Bhbn1fb25TcGFuRW5kZWQoKXtsZXQgY2xpZW50PSgwLGN1cnJlbnRTY29wZXMuczMpKCk7Y2xpZW50JiZjbGllbnQuZW1pdCgic3BhbkVuZCIsdGhpcyk7bGV0IGlzU2VnbWVudFNwYW49dGhpcy5faXNTdGFuZGFsb25lU3Bhbnx8dGhpcz09PSgwLHNwYW5VdGlscy5HeCkodGhpcyk7aWYoIWlzU2VnbWVudFNwYW4pcmV0dXJuO2lmKHRoaXMuX2lzU3RhbmRhbG9uZVNwYW4pe3RoaXMuX3NhbXBsZWQ/ZnVuY3Rpb24oZW52ZWxvcGUpe2xldCBjbGllbnQ9KDAsY3VycmVudFNjb3Blcy5zMykoKTtpZighY2xpZW50KXJldHVybjtsZXQgc3Bhbkl0ZW1zPWVudmVsb3BlWzFdO2lmKCFzcGFuSXRlbXN8fDA9PT1zcGFuSXRlbXMubGVuZ3RoKXtjbGllbnQucmVjb3JkRHJvcHBlZEV2ZW50KCJiZWZvcmVfc2VuZCIsInNwYW4iKTtyZXR1cm59Y2xpZW50LnNlbmRFbnZlbG9wZShlbnZlbG9wZSl9KCgwLGVudmVsb3BlLnVFKShbdGhpc10sY2xpZW50KSk6KGRlYnVnX2J1aWxkLlgmJmRlYnVnX2xvZ2dlci5mRi5sb2coIltUcmFjaW5nXSBEaXNjYXJkaW5nIHN0YW5kYWxvbmUgc3BhbiBiZWNhdXNlIGl0cyB0cmFjZSB3YXMgbm90IGNob3NlbiB0byBiZSBzYW1wbGVkLiIpLGNsaWVudCYmY2xpZW50LnJlY29yZERyb3BwZWRFdmVudCgic2FtcGxlX3JhdGUiLCJzcGFuIikpO3JldHVybn1sZXQgdHJhbnNhY3Rpb25FdmVudD10aGlzLl9jb252ZXJ0U3BhblRvVHJhbnNhY3Rpb24oKTtpZih0cmFuc2FjdGlvbkV2ZW50KXtsZXQgc2NvcGU9KDAsdXRpbHMuSSkodGhpcykuc2NvcGV8fCgwLGN1cnJlbnRTY29wZXMublopKCk7c2NvcGUuY2FwdHVyZUV2ZW50KHRyYW5zYWN0aW9uRXZlbnQpfX1fY29udmVydFNwYW5Ub1RyYW5zYWN0aW9uKCl7aWYoIWlzRnVsbEZpbmlzaGVkU3BhbigoMCxzcGFuVXRpbHMuWFUpKHRoaXMpKSlyZXR1cm47dGhpcy5fbmFtZXx8KGRlYnVnX2J1aWxkLlgmJmRlYnVnX2xvZ2dlci5mRi53YXJuKCJUcmFuc2FjdGlvbiBoYXMgbm8gbmFtZSwgZmFsbGluZyBiYWNrIHRvIGA8dW5sYWJlbGVkIHRyYW5zYWN0aW9uPmAuIiksdGhpcy5fbmFtZT0iPHVubGFiZWxlZCB0cmFuc2FjdGlvbj4iKTtsZXR7c2NvcGU6Y2FwdHVyZWRTcGFuU2NvcGUsaXNvbGF0aW9uU2NvcGU6Y2FwdHVyZWRTcGFuSXNvbGF0aW9uU2NvcGV9PSgwLHV0aWxzLkkpKHRoaXMpLG5vcm1hbGl6ZWRSZXF1ZXN0PWNhcHR1cmVkU3BhblNjb3BlPy5nZXRTY29wZURhdGEoKS5zZGtQcm9jZXNzaW5nTWV0YWRhdGE/Lm5vcm1hbGl6ZWRSZXF1ZXN0O2lmKCEwIT09dGhpcy5fc2FtcGxlZClyZXR1cm47bGV0IGZpbmlzaGVkU3BhbnM9KDAsc3BhblV0aWxzLkRwKSh0aGlzKS5maWx0ZXIoc3Bhbj0+c3BhbiE9PXRoaXMmJiEoc3BhbiBpbnN0YW5jZW9mIFNlbnRyeVNwYW4mJnNwYW4uaXNTdGFuZGFsb25lU3BhbigpKSksc3BhbnM9ZmluaXNoZWRTcGFucy5tYXAoc3Bhbj0+KDAsc3BhblV0aWxzLlhVKShzcGFuKSkuZmlsdGVyKGlzRnVsbEZpbmlzaGVkU3Bhbiksc291cmNlPXRoaXMuX2F0dHJpYnV0ZXNbc2VtYW50aWNBdHRyaWJ1dGVzLlpqXTtkZWxldGUgdGhpcy5fYXR0cmlidXRlc1tzZW1hbnRpY0F0dHJpYnV0ZXMueEZdLHNwYW5zLmZvckVhY2goc3Bhbj0+e2RlbGV0ZSBzcGFuLmRhdGFbc2VtYW50aWNBdHRyaWJ1dGVzLnhGXX0pO2xldCB0cmFuc2FjdGlvbj17Y29udGV4dHM6e3RyYWNlOigwLHNwYW5VdGlscy5IUikodGhpcyl9LHNwYW5zOnNwYW5zLmxlbmd0aD4xZTM/c3BhbnMuc29ydCgoYSxiKT0+YS5zdGFydF90aW1lc3RhbXAtYi5zdGFydF90aW1lc3RhbXApLnNsaWNlKDAsMWUzKTpzcGFucyxzdGFydF90aW1lc3RhbXA6dGhpcy5fc3RhcnRUaW1lLHRpbWVzdGFtcDp0aGlzLl9lbmRUaW1lLHRyYW5zYWN0aW9uOnRoaXMuX25hbWUsdHlwZToidHJhbnNhY3Rpb24iLHNka1Byb2Nlc3NpbmdNZXRhZGF0YTp7Y2FwdHVyZWRTcGFuU2NvcGUsY2FwdHVyZWRTcGFuSXNvbGF0aW9uU2NvcGUsZHluYW1pY1NhbXBsaW5nQ29udGV4dDooMCxkeW5hbWljU2FtcGxpbmdDb250ZXh0LmpDKSh0aGlzKX0scmVxdWVzdDpub3JtYWxpemVkUmVxdWVzdCwuLi5zb3VyY2UmJnt0cmFuc2FjdGlvbl9pbmZvOntzb3VyY2V9fX0sbWVhc3VyZW1lbnRzPXRpbWVkRXZlbnRzVG9NZWFzdXJlbWVudHModGhpcy5fZXZlbnRzKSxoYXNNZWFzdXJlbWVudHM9bWVhc3VyZW1lbnRzJiZPYmplY3Qua2V5cyhtZWFzdXJlbWVudHMpLmxlbmd0aDtyZXR1cm4gaGFzTWVhc3VyZW1lbnRzJiYoZGVidWdfYnVpbGQuWCYmZGVidWdfbG9nZ2VyLmZGLmxvZygiW01lYXN1cmVtZW50c10gQWRkaW5nIG1lYXN1cmVtZW50cyB0byB0cmFuc2FjdGlvbiBldmVudCIsSlNPTi5zdHJpbmdpZnkobWVhc3VyZW1lbnRzLHZvaWQgMCwyKSksdHJhbnNhY3Rpb24ubWVhc3VyZW1lbnRzPW1lYXN1cmVtZW50cyksdHJhbnNhY3Rpb259fWZ1bmN0aW9uIGlzU3BhblRpbWVJbnB1dCh2YWx1ZSl7cmV0dXJuIHZhbHVlJiYibnVtYmVyIj09dHlwZW9mIHZhbHVlfHx2YWx1ZSBpbnN0YW5jZW9mIERhdGV8fEFycmF5LmlzQXJyYXkodmFsdWUpfWZ1bmN0aW9uIGlzRnVsbEZpbmlzaGVkU3BhbihpbnB1dCl7cmV0dXJuISFpbnB1dC5zdGFydF90aW1lc3RhbXAmJiEhaW5wdXQudGltZXN0YW1wJiYhIWlucHV0LnNwYW5faWQmJiEhaW5wdXQudHJhY2VfaWR9dmFyIHNwYW5zdGF0dXM9X193ZWJwYWNrX3JlcXVpcmVfXyg2OTczNyksYXN5bmNDb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oNjA4MTEpLGVzbV9jYXJyaWVyPV9fd2VicGFja19yZXF1aXJlX18oMTM1MzMpLGlzPV9fd2VicGFja19yZXF1aXJlX18oNDE3NDUpLHBhcnNlU2FtcGxlUmF0ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDc5NzY5KTtsZXQgU1VQUFJFU1NfVFJBQ0lOR19LRVk9Il9fU0VOVFJZX1NVUFBSRVNTX1RSQUNJTkdfXyI7ZnVuY3Rpb24gc3RhcnRJbmFjdGl2ZVNwYW4ob3B0aW9ucyl7bGV0IGFjcz1nZXRBY3MoKTtpZihhY3Muc3RhcnRJbmFjdGl2ZVNwYW4pcmV0dXJuIGFjcy5zdGFydEluYWN0aXZlU3BhbihvcHRpb25zKTtsZXQgc3BhbkFyZ3VtZW50cz1wYXJzZVNlbnRyeVNwYW5Bcmd1bWVudHMob3B0aW9ucykse2ZvcmNlVHJhbnNhY3Rpb24scGFyZW50U3BhbjpjdXN0b21QYXJlbnRTcGFufT1vcHRpb25zLHdyYXBwZXI9b3B0aW9ucy5zY29wZT9jYWxsYmFjaz0+KDAsY3VycmVudFNjb3Blcy4kZSkob3B0aW9ucy5zY29wZSxjYWxsYmFjayk6dm9pZCAwIT09Y3VzdG9tUGFyZW50U3Bhbj9jYWxsYmFjaz0+d2l0aEFjdGl2ZVNwYW4oY3VzdG9tUGFyZW50U3BhbixjYWxsYmFjayk6Y2FsbGJhY2s9PmNhbGxiYWNrKCk7cmV0dXJuIHdyYXBwZXIoKCk9PntsZXQgc2NvcGU9KDAsY3VycmVudFNjb3Blcy5uWikoKSxwYXJlbnRTcGFuPWdldFBhcmVudFNwYW4oc2NvcGUsY3VzdG9tUGFyZW50U3Bhbiksc2hvdWxkU2tpcFNwYW49b3B0aW9ucy5vbmx5SWZQYXJlbnQmJiFwYXJlbnRTcGFuO3JldHVybiBzaG91bGRTa2lwU3Bhbj9uZXcgc2VudHJ5Tm9uUmVjb3JkaW5nU3Bhbl9TZW50cnlOb25SZWNvcmRpbmdTcGFuOmNyZWF0ZUNoaWxkT3JSb290U3Bhbih7cGFyZW50U3BhbixzcGFuQXJndW1lbnRzLGZvcmNlVHJhbnNhY3Rpb24sc2NvcGV9KX0pfWZ1bmN0aW9uIHdpdGhBY3RpdmVTcGFuKHNwYW4sY2FsbGJhY2spe2xldCBhY3M9Z2V0QWNzKCk7cmV0dXJuIGFjcy53aXRoQWN0aXZlU3Bhbj9hY3Mud2l0aEFjdGl2ZVNwYW4oc3BhbixjYWxsYmFjayk6KDAsY3VycmVudFNjb3Blcy4kZSkoc2NvcGU9PigoMCxzcGFuT25TY29wZS5EKShzY29wZSxzcGFufHx2b2lkIDApLGNhbGxiYWNrKHNjb3BlKSkpfWZ1bmN0aW9uIGNyZWF0ZUNoaWxkT3JSb290U3Bhbih7cGFyZW50U3BhbixzcGFuQXJndW1lbnRzLGZvcmNlVHJhbnNhY3Rpb24sc2NvcGV9KXtsZXQgc3BhbjtpZighKDAsaGFzU3BhbnNFbmFibGVkLmYpKCkpe2xldCBzcGFuMT1uZXcgc2VudHJ5Tm9uUmVjb3JkaW5nU3Bhbl9TZW50cnlOb25SZWNvcmRpbmdTcGFuO2lmKGZvcmNlVHJhbnNhY3Rpb258fCFwYXJlbnRTcGFuKXtsZXQgZHNjPXtzYW1wbGVkOiJmYWxzZSIsc2FtcGxlX3JhdGU6IjAiLHRyYW5zYWN0aW9uOnNwYW5Bcmd1bWVudHMubmFtZSwuLi4oMCxkeW5hbWljU2FtcGxpbmdDb250ZXh0LmpDKShzcGFuMSl9OygwLGR5bmFtaWNTYW1wbGluZ0NvbnRleHQuTGgpKHNwYW4xLGRzYyl9cmV0dXJuIHNwYW4xfWxldCBpc29sYXRpb25TY29wZT0oMCxjdXJyZW50U2NvcGVzLmFGKSgpO2lmKHBhcmVudFNwYW4mJiFmb3JjZVRyYW5zYWN0aW9uKXNwYW49ZnVuY3Rpb24ocGFyZW50U3BhbixzY29wZSxzcGFuQXJndW1lbnRzKXtsZXR7c3BhbklkLHRyYWNlSWR9PXBhcmVudFNwYW4uc3BhbkNvbnRleHQoKSxzYW1wbGVkPSFzY29wZS5nZXRTY29wZURhdGEoKS5zZGtQcm9jZXNzaW5nTWV0YWRhdGFbU1VQUFJFU1NfVFJBQ0lOR19LRVldJiYoMCxzcGFuVXRpbHMuVHQpKHBhcmVudFNwYW4pLGNoaWxkU3Bhbj1zYW1wbGVkP25ldyBTZW50cnlTcGFuKHsuLi5zcGFuQXJndW1lbnRzLHBhcmVudFNwYW5JZDpzcGFuSWQsdHJhY2VJZCxzYW1wbGVkfSk6bmV3IHNlbnRyeU5vblJlY29yZGluZ1NwYW5fU2VudHJ5Tm9uUmVjb3JkaW5nU3Bhbih7dHJhY2VJZH0pOygwLHNwYW5VdGlscy5qNSkocGFyZW50U3BhbixjaGlsZFNwYW4pO2xldCBjbGllbnQ9KDAsY3VycmVudFNjb3Blcy5zMykoKTtyZXR1cm4gY2xpZW50JiYoY2xpZW50LmVtaXQoInNwYW5TdGFydCIsY2hpbGRTcGFuKSxzcGFuQXJndW1lbnRzLmVuZFRpbWVzdGFtcCYmY2xpZW50LmVtaXQoInNwYW5FbmQiLGNoaWxkU3BhbikpLGNoaWxkU3Bhbn0ocGFyZW50U3BhbixzY29wZSxzcGFuQXJndW1lbnRzKSwoMCxzcGFuVXRpbHMuajUpKHBhcmVudFNwYW4sc3Bhbik7ZWxzZSBpZihwYXJlbnRTcGFuKXtsZXQgZHNjMT0oMCxkeW5hbWljU2FtcGxpbmdDb250ZXh0LmpDKShwYXJlbnRTcGFuKSx7dHJhY2VJZCxzcGFuSWQ6cGFyZW50U3BhbklkfT1wYXJlbnRTcGFuLnNwYW5Db250ZXh0KCkscGFyZW50U2FtcGxlZD0oMCxzcGFuVXRpbHMuVHQpKHBhcmVudFNwYW4pO3NwYW49X3N0YXJ0Um9vdFNwYW4oe3RyYWNlSWQscGFyZW50U3BhbklkLC4uLnNwYW5Bcmd1bWVudHN9LHNjb3BlLHBhcmVudFNhbXBsZWQpLCgwLGR5bmFtaWNTYW1wbGluZ0NvbnRleHQuTGgpKHNwYW4sZHNjMSl9ZWxzZXtsZXR7dHJhY2VJZDp0cmFjZUlkMSxkc2M6ZHNjMixwYXJlbnRTcGFuSWQ6cGFyZW50U3BhbklkMSxzYW1wbGVkOnBhcmVudFNhbXBsZWQxfT17Li4uaXNvbGF0aW9uU2NvcGUuZ2V0UHJvcGFnYXRpb25Db250ZXh0KCksLi4uc2NvcGUuZ2V0UHJvcGFnYXRpb25Db250ZXh0KCl9O3NwYW49X3N0YXJ0Um9vdFNwYW4oe3RyYWNlSWQ6dHJhY2VJZDEscGFyZW50U3BhbklkOnBhcmVudFNwYW5JZDEsLi4uc3BhbkFyZ3VtZW50c30sc2NvcGUscGFyZW50U2FtcGxlZDEpLGRzYzImJigwLGR5bmFtaWNTYW1wbGluZ0NvbnRleHQuTGgpKHNwYW4sZHNjMil9cmV0dXJuIWZ1bmN0aW9uKHNwYW4pe2lmKCFkZWJ1Z19idWlsZC5YKXJldHVybjtsZXR7ZGVzY3JpcHRpb249IjwgdW5rbm93biBuYW1lID4iLG9wPSI8IHVua25vd24gb3AgPiIscGFyZW50X3NwYW5faWQ6cGFyZW50U3BhbklkfT0oMCxzcGFuVXRpbHMuWFUpKHNwYW4pLHtzcGFuSWR9PXNwYW4uc3BhbkNvbnRleHQoKSxzYW1wbGVkPSgwLHNwYW5VdGlscy5UdCkoc3Bhbikscm9vdFNwYW49KDAsc3BhblV0aWxzLkd4KShzcGFuKSxpc1Jvb3RTcGFuPXJvb3RTcGFuPT09c3BhbixoZWFkZXI9YFtUcmFjaW5nXSBTdGFydGluZyAke3NhbXBsZWQ/InNhbXBsZWQiOiJ1bnNhbXBsZWQifSAke2lzUm9vdFNwYW4/InJvb3QgIjoiIn1zcGFuYCxpbmZvUGFydHM9W2BvcDogJHtvcH1gLGBuYW1lOiAke2Rlc2NyaXB0aW9ufWAsYElEOiAke3NwYW5JZH1gXTtpZihwYXJlbnRTcGFuSWQmJmluZm9QYXJ0cy5wdXNoKGBwYXJlbnQgSUQ6ICR7cGFyZW50U3BhbklkfWApLCFpc1Jvb3RTcGFuKXtsZXR7b3A6b3AxLGRlc2NyaXB0aW9uOmRlc2NyaXB0aW9uMX09KDAsc3BhblV0aWxzLlhVKShyb290U3Bhbik7aW5mb1BhcnRzLnB1c2goYHJvb3QgSUQ6ICR7cm9vdFNwYW4uc3BhbkNvbnRleHQoKS5zcGFuSWR9YCksb3AxJiZpbmZvUGFydHMucHVzaChgcm9vdCBvcDogJHtvcDF9YCksZGVzY3JpcHRpb24xJiZpbmZvUGFydHMucHVzaChgcm9vdCBkZXNjcmlwdGlvbjogJHtkZXNjcmlwdGlvbjF9YCl9ZGVidWdfbG9nZ2VyLmZGLmxvZyhgJHtoZWFkZXJ9CiAgJHtpbmZvUGFydHMuam9pbigiXG4gICIpfWApfShzcGFuKSwoMCx1dGlscy5ZKShzcGFuLHNjb3BlLGlzb2xhdGlvblNjb3BlKSxzcGFufWZ1bmN0aW9uIHBhcnNlU2VudHJ5U3BhbkFyZ3VtZW50cyhvcHRpb25zKXtsZXQgZXhwPW9wdGlvbnMuZXhwZXJpbWVudGFsfHx7fSxpbml0aWFsQ3R4PXtpc1N0YW5kYWxvbmU6ZXhwLnN0YW5kYWxvbmUsLi4ub3B0aW9uc307aWYob3B0aW9ucy5zdGFydFRpbWUpe2xldCBjdHg9ey4uLmluaXRpYWxDdHh9O3JldHVybiBjdHguc3RhcnRUaW1lc3RhbXA9KDAsc3BhblV0aWxzLiRrKShvcHRpb25zLnN0YXJ0VGltZSksZGVsZXRlIGN0eC5zdGFydFRpbWUsY3R4fXJldHVybiBpbml0aWFsQ3R4fWZ1bmN0aW9uIGdldEFjcygpe2xldCBjYXJyaWVyPSgwLGVzbV9jYXJyaWVyLmN1KSgpO3JldHVybigwLGFzeW5jQ29udGV4dC5HKShjYXJyaWVyKX1mdW5jdGlvbiBfc3RhcnRSb290U3BhbihzcGFuQXJndW1lbnRzLHNjb3BlLHBhcmVudFNhbXBsZWQpe2xldCBjbGllbnQ9KDAsY3VycmVudFNjb3Blcy5zMykoKSxvcHRpb25zPWNsaWVudD8uZ2V0T3B0aW9ucygpfHx7fSx7bmFtZT0iIn09c3BhbkFyZ3VtZW50cyxtdXRhYmxlU3BhblNhbXBsaW5nRGF0YT17c3BhbkF0dHJpYnV0ZXM6ey4uLnNwYW5Bcmd1bWVudHMuYXR0cmlidXRlc30sc3Bhbk5hbWU6bmFtZSxwYXJlbnRTYW1wbGVkfTtjbGllbnQ/LmVtaXQoImJlZm9yZVNhbXBsaW5nIixtdXRhYmxlU3BhblNhbXBsaW5nRGF0YSx7ZGVjaXNpb246ITF9KTtsZXQgZmluYWxQYXJlbnRTYW1wbGVkPW11dGFibGVTcGFuU2FtcGxpbmdEYXRhLnBhcmVudFNhbXBsZWQ/P3BhcmVudFNhbXBsZWQsZmluYWxBdHRyaWJ1dGVzPW11dGFibGVTcGFuU2FtcGxpbmdEYXRhLnNwYW5BdHRyaWJ1dGVzLGN1cnJlbnRQcm9wYWdhdGlvbkNvbnRleHQ9c2NvcGUuZ2V0UHJvcGFnYXRpb25Db250ZXh0KCksW3NhbXBsZWQsc2FtcGxlUmF0ZSxsb2NhbFNhbXBsZVJhdGVXYXNBcHBsaWVkXT1zY29wZS5nZXRTY29wZURhdGEoKS5zZGtQcm9jZXNzaW5nTWV0YWRhdGFbU1VQUFJFU1NfVFJBQ0lOR19LRVldP1shMV06ZnVuY3Rpb24ob3B0aW9ucyxzYW1wbGluZ0NvbnRleHQsc2FtcGxlUmFuZCl7bGV0IHNhbXBsZVJhdGUsbG9jYWxTYW1wbGVSYXRlV2FzQXBwbGllZDtpZighKDAsaGFzU3BhbnNFbmFibGVkLmYpKG9wdGlvbnMpKXJldHVyblshMV07ImZ1bmN0aW9uIj09dHlwZW9mIG9wdGlvbnMudHJhY2VzU2FtcGxlcj8oc2FtcGxlUmF0ZT1vcHRpb25zLnRyYWNlc1NhbXBsZXIoey4uLnNhbXBsaW5nQ29udGV4dCxpbmhlcml0T3JTYW1wbGVXaXRoOmZhbGxiYWNrU2FtcGxlUmF0ZT0+Im51bWJlciI9PXR5cGVvZiBzYW1wbGluZ0NvbnRleHQucGFyZW50U2FtcGxlUmF0ZT9zYW1wbGluZ0NvbnRleHQucGFyZW50U2FtcGxlUmF0ZToiYm9vbGVhbiI9PXR5cGVvZiBzYW1wbGluZ0NvbnRleHQucGFyZW50U2FtcGxlZD9OdW1iZXIoc2FtcGxpbmdDb250ZXh0LnBhcmVudFNhbXBsZWQpOmZhbGxiYWNrU2FtcGxlUmF0ZX0pLGxvY2FsU2FtcGxlUmF0ZVdhc0FwcGxpZWQ9ITApOnZvaWQgMCE9PXNhbXBsaW5nQ29udGV4dC5wYXJlbnRTYW1wbGVkP3NhbXBsZVJhdGU9c2FtcGxpbmdDb250ZXh0LnBhcmVudFNhbXBsZWQ6dm9pZCAwIT09b3B0aW9ucy50cmFjZXNTYW1wbGVSYXRlJiYoc2FtcGxlUmF0ZT1vcHRpb25zLnRyYWNlc1NhbXBsZVJhdGUsbG9jYWxTYW1wbGVSYXRlV2FzQXBwbGllZD0hMCk7bGV0IHBhcnNlZFNhbXBsZVJhdGU9KDAscGFyc2VTYW1wbGVSYXRlLm8pKHNhbXBsZVJhdGUpO2lmKHZvaWQgMD09PXBhcnNlZFNhbXBsZVJhdGUpcmV0dXJuIGRlYnVnX2J1aWxkLlgmJmRlYnVnX2xvZ2dlci5mRi53YXJuKGBbVHJhY2luZ10gRGlzY2FyZGluZyByb290IHNwYW4gYmVjYXVzZSBvZiBpbnZhbGlkIHNhbXBsZSByYXRlLiBTYW1wbGUgcmF0ZSBtdXN0IGJlIGEgYm9vbGVhbiBvciBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEuIEdvdCAke0pTT04uc3RyaW5naWZ5KHNhbXBsZVJhdGUpfSBvZiB0eXBlICR7SlNPTi5zdHJpbmdpZnkodHlwZW9mIHNhbXBsZVJhdGUpfS5gKSxbITFdO2lmKCFwYXJzZWRTYW1wbGVSYXRlKXJldHVybiBkZWJ1Z19idWlsZC5YJiZkZWJ1Z19sb2dnZXIuZkYubG9nKGBbVHJhY2luZ10gRGlzY2FyZGluZyB0cmFuc2FjdGlvbiBiZWNhdXNlICR7ImZ1bmN0aW9uIj09dHlwZW9mIG9wdGlvbnMudHJhY2VzU2FtcGxlcj8idHJhY2VzU2FtcGxlciByZXR1cm5lZCAwIG9yIGZhbHNlIjoiYSBuZWdhdGl2ZSBzYW1wbGluZyBkZWNpc2lvbiB3YXMgaW5oZXJpdGVkIG9yIHRyYWNlc1NhbXBsZVJhdGUgaXMgc2V0IHRvIDAifWApLFshMSxwYXJzZWRTYW1wbGVSYXRlLGxvY2FsU2FtcGxlUmF0ZVdhc0FwcGxpZWRdO2xldCBzaG91bGRTYW1wbGU9c2FtcGxlUmFuZDxwYXJzZWRTYW1wbGVSYXRlO3JldHVybiFzaG91bGRTYW1wbGUmJmRlYnVnX2J1aWxkLlgmJmRlYnVnX2xvZ2dlci5mRi5sb2coYFtUcmFjaW5nXSBEaXNjYXJkaW5nIHRyYW5zYWN0aW9uIGJlY2F1c2UgaXQncyBub3QgaW5jbHVkZWQgaW4gdGhlIHJhbmRvbSBzYW1wbGUgKHNhbXBsaW5nIHJhdGUgPSAke051bWJlcihzYW1wbGVSYXRlKX0pYCksW3Nob3VsZFNhbXBsZSxwYXJzZWRTYW1wbGVSYXRlLGxvY2FsU2FtcGxlUmF0ZVdhc0FwcGxpZWRdfShvcHRpb25zLHtuYW1lLHBhcmVudFNhbXBsZWQ6ZmluYWxQYXJlbnRTYW1wbGVkLGF0dHJpYnV0ZXM6ZmluYWxBdHRyaWJ1dGVzLHBhcmVudFNhbXBsZVJhdGU6KDAscGFyc2VTYW1wbGVSYXRlLm8pKGN1cnJlbnRQcm9wYWdhdGlvbkNvbnRleHQuZHNjPy5zYW1wbGVfcmF0ZSl9LGN1cnJlbnRQcm9wYWdhdGlvbkNvbnRleHQuc2FtcGxlUmFuZCkscm9vdFNwYW49bmV3IFNlbnRyeVNwYW4oey4uLnNwYW5Bcmd1bWVudHMsYXR0cmlidXRlczp7W3NlbWFudGljQXR0cmlidXRlcy5aal06ImN1c3RvbSIsW3NlbWFudGljQXR0cmlidXRlcy5URV06dm9pZCAwIT09c2FtcGxlUmF0ZSYmbG9jYWxTYW1wbGVSYXRlV2FzQXBwbGllZD9zYW1wbGVSYXRlOnZvaWQgMCwuLi5maW5hbEF0dHJpYnV0ZXN9LHNhbXBsZWR9KTtyZXR1cm4hc2FtcGxlZCYmY2xpZW50JiYoZGVidWdfYnVpbGQuWCYmZGVidWdfbG9nZ2VyLmZGLmxvZygiW1RyYWNpbmddIERpc2NhcmRpbmcgcm9vdCBzcGFuIGJlY2F1c2UgaXRzIHRyYWNlIHdhcyBub3QgY2hvc2VuIHRvIGJlIHNhbXBsZWQuIiksY2xpZW50LnJlY29yZERyb3BwZWRFdmVudCgic2FtcGxlX3JhdGUiLCJ0cmFuc2FjdGlvbiIpKSxjbGllbnQmJmNsaWVudC5lbWl0KCJzcGFuU3RhcnQiLHJvb3RTcGFuKSxyb290U3Bhbn1mdW5jdGlvbiBnZXRQYXJlbnRTcGFuKHNjb3BlLGN1c3RvbVBhcmVudFNwYW4pe2lmKGN1c3RvbVBhcmVudFNwYW4pcmV0dXJuIGN1c3RvbVBhcmVudFNwYW47aWYobnVsbD09PWN1c3RvbVBhcmVudFNwYW4pcmV0dXJuO2xldCBzcGFuPSgwLHNwYW5PblNjb3BlLlkpKHNjb3BlKTtpZighc3BhbilyZXR1cm47bGV0IGNsaWVudD0oMCxjdXJyZW50U2NvcGVzLnMzKSgpLG9wdGlvbnM9Y2xpZW50P2NsaWVudC5nZXRPcHRpb25zKCk6e307cmV0dXJuIG9wdGlvbnMucGFyZW50U3BhbklzQWx3YXlzUm9vdFNwYW4/KDAsc3BhblV0aWxzLkd4KShzcGFuKTpzcGFufWxldCBUUkFDSU5HX0RFRkFVTFRTPXtpZGxlVGltZW91dDoxZTMsZmluYWxUaW1lb3V0OjNlNCxjaGlsZFNwYW5UaW1lb3V0OjE1ZTN9O2Z1bmN0aW9uIHN0YXJ0SWRsZVNwYW4oc3RhcnRTcGFuT3B0aW9ucyxvcHRpb25zPXt9KXtsZXQgX2lkbGVUaW1lb3V0SUQ7bGV0IGFjdGl2aXRpZXM9bmV3IE1hcCxfZmluaXNoZWQ9ITEsX2ZpbmlzaFJlYXNvbj0iZXh0ZXJuYWxGaW5pc2giLF9hdXRvRmluaXNoQWxsb3dlZD0hb3B0aW9ucy5kaXNhYmxlQXV0b0ZpbmlzaCxfY2xlYW51cEhvb2tzPVtdLHtpZGxlVGltZW91dD1UUkFDSU5HX0RFRkFVTFRTLmlkbGVUaW1lb3V0LGZpbmFsVGltZW91dD1UUkFDSU5HX0RFRkFVTFRTLmZpbmFsVGltZW91dCxjaGlsZFNwYW5UaW1lb3V0PVRSQUNJTkdfREVGQVVMVFMuY2hpbGRTcGFuVGltZW91dCxiZWZvcmVTcGFuRW5kLHRyaW1JZGxlU3BhbkVuZFRpbWVzdGFtcD0hMH09b3B0aW9ucyxjbGllbnQ9KDAsY3VycmVudFNjb3Blcy5zMykoKTtpZighY2xpZW50fHwhKDAsaGFzU3BhbnNFbmFibGVkLmYpKCkpe2xldCBzcGFuPW5ldyBzZW50cnlOb25SZWNvcmRpbmdTcGFuX1NlbnRyeU5vblJlY29yZGluZ1NwYW4sZHNjPXtzYW1wbGVfcmF0ZToiMCIsc2FtcGxlZDoiZmFsc2UiLC4uLigwLGR5bmFtaWNTYW1wbGluZ0NvbnRleHQuakMpKHNwYW4pfTtyZXR1cm4oMCxkeW5hbWljU2FtcGxpbmdDb250ZXh0LkxoKShzcGFuLGRzYyksc3Bhbn1sZXQgc2NvcGU9KDAsY3VycmVudFNjb3Blcy5uWikoKSxwcmV2aW91c0FjdGl2ZVNwYW49KDAsc3BhblV0aWxzLkhOKSgpLHNwYW4xPWZ1bmN0aW9uKG9wdGlvbnMpe2xldCBzcGFuPXN0YXJ0SW5hY3RpdmVTcGFuKG9wdGlvbnMpO3JldHVybigwLHNwYW5PblNjb3BlLkQpKCgwLGN1cnJlbnRTY29wZXMublopKCksc3BhbiksZGVidWdfYnVpbGQuWCYmZGVidWdfbG9nZ2VyLmZGLmxvZygiW1RyYWNpbmddIFN0YXJ0ZWQgc3BhbiBpcyBhbiBpZGxlIHNwYW4iKSxzcGFufShzdGFydFNwYW5PcHRpb25zKTtmdW5jdGlvbiBfY2FuY2VsSWRsZVRpbWVvdXQoKXtfaWRsZVRpbWVvdXRJRCYmKGNsZWFyVGltZW91dChfaWRsZVRpbWVvdXRJRCksX2lkbGVUaW1lb3V0SUQ9dm9pZCAwKX1mdW5jdGlvbiBfcmVzdGFydElkbGVUaW1lb3V0KGVuZFRpbWVzdGFtcCl7X2NhbmNlbElkbGVUaW1lb3V0KCksX2lkbGVUaW1lb3V0SUQ9c2V0VGltZW91dCgoKT0+eyFfZmluaXNoZWQmJjA9PT1hY3Rpdml0aWVzLnNpemUmJl9hdXRvRmluaXNoQWxsb3dlZCYmKF9maW5pc2hSZWFzb249ImlkbGVUaW1lb3V0IixzcGFuMS5lbmQoZW5kVGltZXN0YW1wKSl9LGlkbGVUaW1lb3V0KX1mdW5jdGlvbiBfcmVzdGFydENoaWxkU3BhblRpbWVvdXQoZW5kVGltZXN0YW1wKXtfaWRsZVRpbWVvdXRJRD1zZXRUaW1lb3V0KCgpPT57IV9maW5pc2hlZCYmX2F1dG9GaW5pc2hBbGxvd2VkJiYoX2ZpbmlzaFJlYXNvbj0iaGVhcnRiZWF0RmFpbGVkIixzcGFuMS5lbmQoZW5kVGltZXN0YW1wKSl9LGNoaWxkU3BhblRpbWVvdXQpfWZ1bmN0aW9uIG9uSWRsZVNwYW5FbmRlZChlbmRUaW1lc3RhbXApe19maW5pc2hlZD0hMCxhY3Rpdml0aWVzLmNsZWFyKCksX2NsZWFudXBIb29rcy5mb3JFYWNoKGNsZWFudXA9PmNsZWFudXAoKSksKDAsc3Bhbk9uU2NvcGUuRCkoc2NvcGUscHJldmlvdXNBY3RpdmVTcGFuKTtsZXQgc3BhbkpTT049KDAsc3BhblV0aWxzLlhVKShzcGFuMSkse3N0YXJ0X3RpbWVzdGFtcDpzdGFydFRpbWVzdGFtcH09c3BhbkpTT047aWYoIXN0YXJ0VGltZXN0YW1wKXJldHVybjtsZXQgYXR0cmlidXRlcz1zcGFuSlNPTi5kYXRhO2F0dHJpYnV0ZXNbc2VtYW50aWNBdHRyaWJ1dGVzLmp1XXx8c3BhbjEuc2V0QXR0cmlidXRlKHNlbWFudGljQXR0cmlidXRlcy5qdSxfZmluaXNoUmVhc29uKTtsZXQgY3VycmVudFN0YXR1cz1zcGFuSlNPTi5zdGF0dXM7Y3VycmVudFN0YXR1cyYmInVua25vd24iIT09Y3VycmVudFN0YXR1c3x8c3BhbjEuc2V0U3RhdHVzKHtjb2RlOnNwYW5zdGF0dXMuT1B9KSxkZWJ1Z19sb2dnZXIuZkYubG9nKGBbVHJhY2luZ10gSWRsZSBzcGFuICIke3NwYW5KU09OLm9wfSIgZmluaXNoZWRgKTtsZXQgY2hpbGRTcGFucz0oMCxzcGFuVXRpbHMuRHApKHNwYW4xKS5maWx0ZXIoY2hpbGQ9PmNoaWxkIT09c3BhbjEpLGRpc2NhcmRlZFNwYW5zPTA7Y2hpbGRTcGFucy5mb3JFYWNoKGNoaWxkU3Bhbj0+e2NoaWxkU3Bhbi5pc1JlY29yZGluZygpJiYoY2hpbGRTcGFuLnNldFN0YXR1cyh7Y29kZTpzcGFuc3RhdHVzLmp0LG1lc3NhZ2U6ImNhbmNlbGxlZCJ9KSxjaGlsZFNwYW4uZW5kKGVuZFRpbWVzdGFtcCksZGVidWdfYnVpbGQuWCYmZGVidWdfbG9nZ2VyLmZGLmxvZygiW1RyYWNpbmddIENhbmNlbGxpbmcgc3BhbiBzaW5jZSBzcGFuIGVuZGVkIGVhcmx5IixKU09OLnN0cmluZ2lmeShjaGlsZFNwYW4sdm9pZCAwLDIpKSk7bGV0IGNoaWxkU3BhbkpTT049KDAsc3BhblV0aWxzLlhVKShjaGlsZFNwYW4pLHt0aW1lc3RhbXA6Y2hpbGRFbmRUaW1lc3RhbXA9MCxzdGFydF90aW1lc3RhbXA6Y2hpbGRTdGFydFRpbWVzdGFtcD0wfT1jaGlsZFNwYW5KU09OLHNwYW5TdGFydGVkQmVmb3JlSWRsZVNwYW5FbmQ9Y2hpbGRTdGFydFRpbWVzdGFtcDw9ZW5kVGltZXN0YW1wLHNwYW5FbmRlZEJlZm9yZUZpbmFsVGltZW91dD1jaGlsZEVuZFRpbWVzdGFtcC1jaGlsZFN0YXJ0VGltZXN0YW1wPD0oZmluYWxUaW1lb3V0K2lkbGVUaW1lb3V0KS8xZTM7aWYoZGVidWdfYnVpbGQuWCl7bGV0IHN0cmluZ2lmaWVkU3Bhbj1KU09OLnN0cmluZ2lmeShjaGlsZFNwYW4sdm9pZCAwLDIpO3NwYW5TdGFydGVkQmVmb3JlSWRsZVNwYW5FbmQ/c3BhbkVuZGVkQmVmb3JlRmluYWxUaW1lb3V0fHxkZWJ1Z19sb2dnZXIuZkYubG9nKCJbVHJhY2luZ10gRGlzY2FyZGluZyBzcGFuIHNpbmNlIGl0IGZpbmlzaGVkIGFmdGVyIGlkbGUgc3BhbiBmaW5hbCB0aW1lb3V0IixzdHJpbmdpZmllZFNwYW4pOmRlYnVnX2xvZ2dlci5mRi5sb2coIltUcmFjaW5nXSBEaXNjYXJkaW5nIHNwYW4gc2luY2UgaXQgaGFwcGVuZWQgYWZ0ZXIgaWRsZSBzcGFuIHdhcyBmaW5pc2hlZCIsc3RyaW5naWZpZWRTcGFuKX0oIXNwYW5FbmRlZEJlZm9yZUZpbmFsVGltZW91dHx8IXNwYW5TdGFydGVkQmVmb3JlSWRsZVNwYW5FbmQpJiYoKDAsc3BhblV0aWxzLmVkKShzcGFuMSxjaGlsZFNwYW4pLGRpc2NhcmRlZFNwYW5zKyspfSksZGlzY2FyZGVkU3BhbnM+MCYmc3BhbjEuc2V0QXR0cmlidXRlKCJzZW50cnkuaWRsZV9zcGFuX2Rpc2NhcmRlZF9zcGFucyIsZGlzY2FyZGVkU3BhbnMpfXJldHVybiBzcGFuMS5lbmQ9bmV3IFByb3h5KHNwYW4xLmVuZCx7YXBwbHkodGFyZ2V0LHRoaXNBcmcsYXJncyl7aWYoYmVmb3JlU3BhbkVuZCYmYmVmb3JlU3BhbkVuZChzcGFuMSksdGhpc0FyZyBpbnN0YW5jZW9mIHNlbnRyeU5vblJlY29yZGluZ1NwYW5fU2VudHJ5Tm9uUmVjb3JkaW5nU3BhbilyZXR1cm47bGV0W2RlZmluZWRFbmRUaW1lc3RhbXAsLi4ucmVzdF09YXJncyx0aW1lc3RhbXA9ZGVmaW5lZEVuZFRpbWVzdGFtcHx8KDAsdXRpbHNfdGltZS5waCkoKSxzcGFuRW5kVGltZXN0YW1wPSgwLHNwYW5VdGlscy4kaykodGltZXN0YW1wKSxzcGFucz0oMCxzcGFuVXRpbHMuRHApKHNwYW4xKS5maWx0ZXIoY2hpbGQ9PmNoaWxkIT09c3BhbjEpLHNwYW5Kc29uPSgwLHNwYW5VdGlscy5YVSkoc3BhbjEpO2lmKCFzcGFucy5sZW5ndGh8fCF0cmltSWRsZVNwYW5FbmRUaW1lc3RhbXApcmV0dXJuIG9uSWRsZVNwYW5FbmRlZChzcGFuRW5kVGltZXN0YW1wKSxSZWZsZWN0LmFwcGx5KHRhcmdldCx0aGlzQXJnLFtzcGFuRW5kVGltZXN0YW1wLC4uLnJlc3RdKTtsZXQgaWdub3JlU3BhbnM9Y2xpZW50LmdldE9wdGlvbnMoKS5pZ25vcmVTcGFucyxsYXRlc3RTcGFuRW5kVGltZXN0YW1wPXNwYW5zPy5yZWR1Y2UoKGFjYyxjdXJyZW50KT0+e2xldCBjdXJyZW50U3Bhbkpzb249KDAsc3BhblV0aWxzLlhVKShjdXJyZW50KTtyZXR1cm4hY3VycmVudFNwYW5Kc29uLnRpbWVzdGFtcHx8aWdub3JlU3BhbnMmJigwLHNob3VsZF9pZ25vcmVfc3Bhbi5sKShjdXJyZW50U3Bhbkpzb24saWdub3JlU3BhbnMpP2FjYzphY2M/TWF0aC5tYXgoYWNjLGN1cnJlbnRTcGFuSnNvbi50aW1lc3RhbXApOmN1cnJlbnRTcGFuSnNvbi50aW1lc3RhbXB9LHZvaWQgMCksc3BhblN0YXJ0VGltZXN0YW1wPXNwYW5Kc29uLnN0YXJ0X3RpbWVzdGFtcCxlbmRUaW1lc3RhbXA9TWF0aC5taW4oc3BhblN0YXJ0VGltZXN0YW1wP3NwYW5TdGFydFRpbWVzdGFtcCtmaW5hbFRpbWVvdXQvMWUzOjEvMCxNYXRoLm1heChzcGFuU3RhcnRUaW1lc3RhbXB8fC0xLzAsTWF0aC5taW4oc3BhbkVuZFRpbWVzdGFtcCxsYXRlc3RTcGFuRW5kVGltZXN0YW1wfHwxLzApKSk7cmV0dXJuIG9uSWRsZVNwYW5FbmRlZChlbmRUaW1lc3RhbXApLFJlZmxlY3QuYXBwbHkodGFyZ2V0LHRoaXNBcmcsW2VuZFRpbWVzdGFtcCwuLi5yZXN0XSl9fSksX2NsZWFudXBIb29rcy5wdXNoKGNsaWVudC5vbigic3BhblN0YXJ0IixzdGFydGVkU3Bhbj0+e2lmKF9maW5pc2hlZHx8c3RhcnRlZFNwYW49PT1zcGFuMXx8KDAsc3BhblV0aWxzLlhVKShzdGFydGVkU3BhbikudGltZXN0YW1wfHxzdGFydGVkU3BhbiBpbnN0YW5jZW9mIFNlbnRyeVNwYW4mJnN0YXJ0ZWRTcGFuLmlzU3RhbmRhbG9uZVNwYW4oKSlyZXR1cm47bGV0IGFsbFNwYW5zPSgwLHNwYW5VdGlscy5EcCkoc3BhbjEpO2FsbFNwYW5zLmluY2x1ZGVzKHN0YXJ0ZWRTcGFuKSYmZnVuY3Rpb24oc3BhbklkKXtfY2FuY2VsSWRsZVRpbWVvdXQoKSxhY3Rpdml0aWVzLnNldChzcGFuSWQsITApO2xldCBlbmRUaW1lc3RhbXA9KDAsdXRpbHNfdGltZS5waCkoKTtfcmVzdGFydENoaWxkU3BhblRpbWVvdXQoZW5kVGltZXN0YW1wK2NoaWxkU3BhblRpbWVvdXQvMWUzKX0oc3RhcnRlZFNwYW4uc3BhbkNvbnRleHQoKS5zcGFuSWQpfSkpLF9jbGVhbnVwSG9va3MucHVzaChjbGllbnQub24oInNwYW5FbmQiLGVuZGVkU3Bhbj0+e19maW5pc2hlZHx8ZnVuY3Rpb24oc3BhbklkKXtpZihhY3Rpdml0aWVzLmhhcyhzcGFuSWQpJiZhY3Rpdml0aWVzLmRlbGV0ZShzcGFuSWQpLDA9PT1hY3Rpdml0aWVzLnNpemUpe2xldCBlbmRUaW1lc3RhbXA9KDAsdXRpbHNfdGltZS5waCkoKTtfcmVzdGFydElkbGVUaW1lb3V0KGVuZFRpbWVzdGFtcCtpZGxlVGltZW91dC8xZTMpfX0oZW5kZWRTcGFuLnNwYW5Db250ZXh0KCkuc3BhbklkKX0pKSxfY2xlYW51cEhvb2tzLnB1c2goY2xpZW50Lm9uKCJpZGxlU3BhbkVuYWJsZUF1dG9GaW5pc2giLHNwYW5Ub0FsbG93QXV0b0ZpbmlzaD0+e3NwYW5Ub0FsbG93QXV0b0ZpbmlzaD09PXNwYW4xJiYoX2F1dG9GaW5pc2hBbGxvd2VkPSEwLF9yZXN0YXJ0SWRsZVRpbWVvdXQoKSxhY3Rpdml0aWVzLnNpemUmJl9yZXN0YXJ0Q2hpbGRTcGFuVGltZW91dCgpKX0pKSxvcHRpb25zLmRpc2FibGVBdXRvRmluaXNofHxfcmVzdGFydElkbGVUaW1lb3V0KCksc2V0VGltZW91dCgoKT0+e19maW5pc2hlZHx8KHNwYW4xLnNldFN0YXR1cyh7Y29kZTpzcGFuc3RhdHVzLmp0LG1lc3NhZ2U6ImRlYWRsaW5lX2V4Y2VlZGVkIn0pLF9maW5pc2hSZWFzb249ImZpbmFsVGltZW91dCIsc3BhbjEuZW5kKCkpfSxmaW5hbFRpbWVvdXQpLHNwYW4xfXZhciBnbG9iYWxFcnJvcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDIxMzY4KSxnbG9iYWxVbmhhbmRsZWRSZWplY3Rpb249X193ZWJwYWNrX3JlcXVpcmVfXyg4OTkwMik7bGV0IGVycm9yc0luc3RydW1lbnRlZD0hMTt2YXIgd29ybGR3aWRlPV9fd2VicGFja19yZXF1aXJlX18oNTE1OTcpLHRyYWNpbmc9X193ZWJwYWNrX3JlcXVpcmVfXygzMjYxNiksYnJvd3Nlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDM4MTQzKSx1dGlsc191cmw9X193ZWJwYWNrX3JlcXVpcmVfXyg2ODMyNSksb2JqZWN0PV9fd2VicGFja19yZXF1aXJlX18oOTM4MjApLHN0cmluZz1fX3dlYnBhY2tfcmVxdWlyZV9fKDU3MzYwKSx0eXBlcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDIzMDM5KSxlc21fZGVidWdfYnVpbGQ9X193ZWJwYWNrX3JlcXVpcmVfXygxMjAxNiksc3RhY2t0cmFjZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk5NjAzKTtsZXQgZ2V0UmF0aW5nPSh2YWx1ZSx0aHJlc2hvbGRzKT0+dmFsdWU+dGhyZXNob2xkc1sxXT8icG9vciI6dmFsdWU+dGhyZXNob2xkc1swXT8ibmVlZHMtaW1wcm92ZW1lbnQiOiJnb29kIixiaW5kUmVwb3J0ZXI9KGNhbGxiYWNrLG1ldHJpYyx0aHJlc2hvbGRzLHJlcG9ydEFsbENoYW5nZXMpPT57bGV0IHByZXZWYWx1ZSxkZWx0YTtyZXR1cm4gZm9yY2VSZXBvcnQ9PnttZXRyaWMudmFsdWU+PTAmJihmb3JjZVJlcG9ydHx8cmVwb3J0QWxsQ2hhbmdlcykmJigoZGVsdGE9bWV0cmljLnZhbHVlLShwcmV2VmFsdWU/PzApKXx8dm9pZCAwPT09cHJldlZhbHVlKSYmKHByZXZWYWx1ZT1tZXRyaWMudmFsdWUsbWV0cmljLmRlbHRhPWRlbHRhLG1ldHJpYy5yYXRpbmc9Z2V0UmF0aW5nKG1ldHJpYy52YWx1ZSx0aHJlc2hvbGRzKSxjYWxsYmFjayhtZXRyaWMpKX19LGdldE5hdmlnYXRpb25FbnRyeT0oY2hlY2tSZXNwb25zZVN0YXJ0PSEwKT0+e2xldCBuYXZpZ2F0aW9uRW50cnk9dHlwZXMubS5wZXJmb3JtYW5jZT8uZ2V0RW50cmllc0J5VHlwZT8uKCJuYXZpZ2F0aW9uIilbMF07aWYoIWNoZWNrUmVzcG9uc2VTdGFydHx8bmF2aWdhdGlvbkVudHJ5JiZuYXZpZ2F0aW9uRW50cnkucmVzcG9uc2VTdGFydD4wJiZuYXZpZ2F0aW9uRW50cnkucmVzcG9uc2VTdGFydDxwZXJmb3JtYW5jZS5ub3coKSlyZXR1cm4gbmF2aWdhdGlvbkVudHJ5fSxnZXRBY3RpdmF0aW9uU3RhcnQ9KCk9PntsZXQgbmF2RW50cnk9Z2V0TmF2aWdhdGlvbkVudHJ5KCk7cmV0dXJuIG5hdkVudHJ5Py5hY3RpdmF0aW9uU3RhcnQ/PzB9O2Z1bmN0aW9uIGFkZFBhZ2VMaXN0ZW5lcih0eXBlLGxpc3RlbmVyLG9wdGlvbnMpe3R5cGVzLm0uZG9jdW1lbnQmJnR5cGVzLm0uYWRkRXZlbnRMaXN0ZW5lcih0eXBlLGxpc3RlbmVyLG9wdGlvbnMpfWZ1bmN0aW9uIHJlbW92ZVBhZ2VMaXN0ZW5lcih0eXBlLGxpc3RlbmVyLG9wdGlvbnMpe3R5cGVzLm0uZG9jdW1lbnQmJnR5cGVzLm0ucmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlLGxpc3RlbmVyLG9wdGlvbnMpfWxldCBmaXJzdEhpZGRlblRpbWU9LTEsb25IaWRkZW5GdW5jdGlvbnM9bmV3IFNldCxpbml0SGlkZGVuVGltZT0oKT0+dHlwZXMubS5kb2N1bWVudD8udmlzaWJpbGl0eVN0YXRlIT09ImhpZGRlbiJ8fHR5cGVzLm0uZG9jdW1lbnQ/LnByZXJlbmRlcmluZz8xLzA6MCxvblZpc2liaWxpdHlVcGRhdGU9ZXZlbnQ9PntpZigoInBhZ2VoaWRlIj09PWV2ZW50LnR5cGV8fHR5cGVzLm0uZG9jdW1lbnQ/LnZpc2liaWxpdHlTdGF0ZT09PSJoaWRkZW4iKSYmZmlyc3RIaWRkZW5UaW1lPi0xKXtpZigidmlzaWJpbGl0eWNoYW5nZSI9PT1ldmVudC50eXBlfHwicGFnZWhpZGUiPT09ZXZlbnQudHlwZSlmb3IobGV0IG9uSGlkZGVuRnVuY3Rpb24gb2Ygb25IaWRkZW5GdW5jdGlvbnMpb25IaWRkZW5GdW5jdGlvbigpO2lzRmluaXRlKGZpcnN0SGlkZGVuVGltZSl8fChmaXJzdEhpZGRlblRpbWU9InZpc2liaWxpdHljaGFuZ2UiPT09ZXZlbnQudHlwZT9ldmVudC50aW1lU3RhbXA6MCxyZW1vdmVQYWdlTGlzdGVuZXIoInByZXJlbmRlcmluZ2NoYW5nZSIsb25WaXNpYmlsaXR5VXBkYXRlLCEwKSl9fSxnZXRWaXNpYmlsaXR5V2F0Y2hlcj0oKT0+e2lmKHR5cGVzLm0uZG9jdW1lbnQmJmZpcnN0SGlkZGVuVGltZTwwKXtsZXQgYWN0aXZhdGlvblN0YXJ0PWdldEFjdGl2YXRpb25TdGFydCgpLGZpcnN0VmlzaWJpbGl0eVN0YXRlSGlkZGVuVGltZT10eXBlcy5tLmRvY3VtZW50LnByZXJlbmRlcmluZz92b2lkIDA6Z2xvYmFsVGhpcy5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKCJ2aXNpYmlsaXR5LXN0YXRlIikuZmlsdGVyKGU9PiJoaWRkZW4iPT09ZS5uYW1lJiZlLnN0YXJ0VGltZT5hY3RpdmF0aW9uU3RhcnQpWzBdPy5zdGFydFRpbWU7Zmlyc3RIaWRkZW5UaW1lPWZpcnN0VmlzaWJpbGl0eVN0YXRlSGlkZGVuVGltZT8/aW5pdEhpZGRlblRpbWUoKSxhZGRQYWdlTGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLG9uVmlzaWJpbGl0eVVwZGF0ZSwhMCksYWRkUGFnZUxpc3RlbmVyKCJwYWdlaGlkZSIsb25WaXNpYmlsaXR5VXBkYXRlLCEwKSxhZGRQYWdlTGlzdGVuZXIoInByZXJlbmRlcmluZ2NoYW5nZSIsb25WaXNpYmlsaXR5VXBkYXRlLCEwKX1yZXR1cm57Z2V0IGZpcnN0SGlkZGVuVGltZSgpe3JldHVybiBmaXJzdEhpZGRlblRpbWV9LG9uSGlkZGVuKGNiKXtvbkhpZGRlbkZ1bmN0aW9ucy5hZGQoY2IpfX19LGdlbmVyYXRlVW5pcXVlSUQ9KCk9PmB2NS0ke0RhdGUubm93KCl9LSR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKig5ZTEyLTEpKSsxZTEyfWAsaW5pdE1ldHJpYz0obmFtZSx2YWx1ZT0tMSk9PntsZXQgbmF2RW50cnk9Z2V0TmF2aWdhdGlvbkVudHJ5KCksbmF2aWdhdGlvblR5cGU9Im5hdmlnYXRlIjtyZXR1cm4gbmF2RW50cnkmJih0eXBlcy5tLmRvY3VtZW50Py5wcmVyZW5kZXJpbmd8fGdldEFjdGl2YXRpb25TdGFydCgpPjA/bmF2aWdhdGlvblR5cGU9InByZXJlbmRlciI6dHlwZXMubS5kb2N1bWVudD8ud2FzRGlzY2FyZGVkP25hdmlnYXRpb25UeXBlPSJyZXN0b3JlIjpuYXZFbnRyeS50eXBlJiYobmF2aWdhdGlvblR5cGU9bmF2RW50cnkudHlwZS5yZXBsYWNlKC9fL2csIi0iKSkpLHtuYW1lLHZhbHVlLHJhdGluZzoiZ29vZCIsZGVsdGE6MCxlbnRyaWVzOltdLGlkOmdlbmVyYXRlVW5pcXVlSUQoKSxuYXZpZ2F0aW9uVHlwZX19LGluc3RhbmNlTWFwPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIGluaXRVbmlxdWUoaWRlbnRpdHlPYmosQ2xhc3NPYmope3JldHVybiBpbnN0YW5jZU1hcC5nZXQoaWRlbnRpdHlPYmopfHxpbnN0YW5jZU1hcC5zZXQoaWRlbnRpdHlPYmosbmV3IENsYXNzT2JqKSxpbnN0YW5jZU1hcC5nZXQoaWRlbnRpdHlPYmopfWNsYXNzIExheW91dFNoaWZ0TWFuYWdlcntjb25zdHJ1Y3Rvcigpe0xheW91dFNoaWZ0TWFuYWdlci5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyksTGF5b3V0U2hpZnRNYW5hZ2VyLnByb3RvdHlwZS5fX2luaXQyLmNhbGwodGhpcyl9X19pbml0KCl7dGhpcy5fc2Vzc2lvblZhbHVlPTB9X19pbml0Migpe3RoaXMuX3Nlc3Npb25FbnRyaWVzPVtdfV9wcm9jZXNzRW50cnkoZW50cnkpe2lmKGVudHJ5LmhhZFJlY2VudElucHV0KXJldHVybjtsZXQgZmlyc3RTZXNzaW9uRW50cnk9dGhpcy5fc2Vzc2lvbkVudHJpZXNbMF0sbGFzdFNlc3Npb25FbnRyeT10aGlzLl9zZXNzaW9uRW50cmllc1t0aGlzLl9zZXNzaW9uRW50cmllcy5sZW5ndGgtMV07dGhpcy5fc2Vzc2lvblZhbHVlJiZmaXJzdFNlc3Npb25FbnRyeSYmbGFzdFNlc3Npb25FbnRyeSYmZW50cnkuc3RhcnRUaW1lLWxhc3RTZXNzaW9uRW50cnkuc3RhcnRUaW1lPDFlMyYmZW50cnkuc3RhcnRUaW1lLWZpcnN0U2Vzc2lvbkVudHJ5LnN0YXJ0VGltZTw1ZTM/KHRoaXMuX3Nlc3Npb25WYWx1ZSs9ZW50cnkudmFsdWUsdGhpcy5fc2Vzc2lvbkVudHJpZXMucHVzaChlbnRyeSkpOih0aGlzLl9zZXNzaW9uVmFsdWU9ZW50cnkudmFsdWUsdGhpcy5fc2Vzc2lvbkVudHJpZXM9W2VudHJ5XSksdGhpcy5fb25BZnRlclByb2Nlc3NpbmdVbmV4cGVjdGVkU2hpZnQ/LihlbnRyeSl9fWxldCBvYnNlcnZlPSh0eXBlLGNhbGxiYWNrLG9wdHM9e30pPT57dHJ5e2lmKFBlcmZvcm1hbmNlT2JzZXJ2ZXIuc3VwcG9ydGVkRW50cnlUeXBlcy5pbmNsdWRlcyh0eXBlKSl7bGV0IHBvPW5ldyBQZXJmb3JtYW5jZU9ic2VydmVyKGxpc3Q9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57Y2FsbGJhY2sobGlzdC5nZXRFbnRyaWVzKCkpfSl9KTtyZXR1cm4gcG8ub2JzZXJ2ZSh7dHlwZSxidWZmZXJlZDohMCwuLi5vcHRzfSkscG99fWNhdGNoe319LHJ1bk9uY2U9Y2I9PntsZXQgY2FsbGVkPSExO3JldHVybigpPT57Y2FsbGVkfHwoY2IoKSxjYWxsZWQ9ITApfX0sd2hlbkFjdGl2YXRlZD1jYWxsYmFjaz0+e3R5cGVzLm0uZG9jdW1lbnQ/LnByZXJlbmRlcmluZz9hZGRFdmVudExpc3RlbmVyKCJwcmVyZW5kZXJpbmdjaGFuZ2UiLCgpPT5jYWxsYmFjaygpLCEwKTpjYWxsYmFjaygpfSxGQ1BUaHJlc2hvbGRzPVsxODAwLDNlM10sb25GQ1A9KG9uUmVwb3J0LG9wdHM9e30pPT57d2hlbkFjdGl2YXRlZCgoKT0+e2xldCByZXBvcnQ7bGV0IHZpc2liaWxpdHlXYXRjaGVyPWdldFZpc2liaWxpdHlXYXRjaGVyKCksbWV0cmljPWluaXRNZXRyaWMoIkZDUCIpLGhhbmRsZUVudHJpZXM9ZW50cmllcz0+e2ZvcihsZXQgZW50cnkgb2YgZW50cmllcykiZmlyc3QtY29udGVudGZ1bC1wYWludCI9PT1lbnRyeS5uYW1lJiYocG8uZGlzY29ubmVjdCgpLGVudHJ5LnN0YXJ0VGltZTx2aXNpYmlsaXR5V2F0Y2hlci5maXJzdEhpZGRlblRpbWUmJihtZXRyaWMudmFsdWU9TWF0aC5tYXgoZW50cnkuc3RhcnRUaW1lLWdldEFjdGl2YXRpb25TdGFydCgpLDApLG1ldHJpYy5lbnRyaWVzLnB1c2goZW50cnkpLHJlcG9ydCghMCkpKX0scG89b2JzZXJ2ZSgicGFpbnQiLGhhbmRsZUVudHJpZXMpO3BvJiYocmVwb3J0PWJpbmRSZXBvcnRlcihvblJlcG9ydCxtZXRyaWMsRkNQVGhyZXNob2xkcyxvcHRzLnJlcG9ydEFsbENoYW5nZXMpKX0pfSxDTFNUaHJlc2hvbGRzPVsuMSwuMjVdLG9uQ0xTPShvblJlcG9ydCxvcHRzPXt9KT0+e29uRkNQKHJ1bk9uY2UoKCk9PntsZXQgcmVwb3J0O2xldCBtZXRyaWM9aW5pdE1ldHJpYygiQ0xTIiwwKSx2aXNpYmlsaXR5V2F0Y2hlcj1nZXRWaXNpYmlsaXR5V2F0Y2hlcigpLGxheW91dFNoaWZ0TWFuYWdlcj1pbml0VW5pcXVlKG9wdHMsTGF5b3V0U2hpZnRNYW5hZ2VyKSxoYW5kbGVFbnRyaWVzPWVudHJpZXM9Pntmb3IobGV0IGVudHJ5IG9mIGVudHJpZXMpbGF5b3V0U2hpZnRNYW5hZ2VyLl9wcm9jZXNzRW50cnkoZW50cnkpO2xheW91dFNoaWZ0TWFuYWdlci5fc2Vzc2lvblZhbHVlPm1ldHJpYy52YWx1ZSYmKG1ldHJpYy52YWx1ZT1sYXlvdXRTaGlmdE1hbmFnZXIuX3Nlc3Npb25WYWx1ZSxtZXRyaWMuZW50cmllcz1sYXlvdXRTaGlmdE1hbmFnZXIuX3Nlc3Npb25FbnRyaWVzLHJlcG9ydCgpKX0scG89b2JzZXJ2ZSgibGF5b3V0LXNoaWZ0IixoYW5kbGVFbnRyaWVzKTtwbyYmKHJlcG9ydD1iaW5kUmVwb3J0ZXIob25SZXBvcnQsbWV0cmljLENMU1RocmVzaG9sZHMsb3B0cy5yZXBvcnRBbGxDaGFuZ2VzKSx2aXNpYmlsaXR5V2F0Y2hlci5vbkhpZGRlbigoKT0+e2hhbmRsZUVudHJpZXMocG8udGFrZVJlY29yZHMoKSkscmVwb3J0KCEwKX0pLHR5cGVzLm0/LnNldFRpbWVvdXQ/LihyZXBvcnQpKX0pKX0saW50ZXJhY3Rpb25Db3VudEVzdGltYXRlPTAsbWluS25vd25JbnRlcmFjdGlvbklkPTEvMCxtYXhLbm93bkludGVyYWN0aW9uSWQ9MCx1cGRhdGVFc3RpbWF0ZT1lbnRyaWVzPT57ZW50cmllcy5mb3JFYWNoKGU9PntlLmludGVyYWN0aW9uSWQmJihtaW5Lbm93bkludGVyYWN0aW9uSWQ9TWF0aC5taW4obWluS25vd25JbnRlcmFjdGlvbklkLGUuaW50ZXJhY3Rpb25JZCksaW50ZXJhY3Rpb25Db3VudEVzdGltYXRlPShtYXhLbm93bkludGVyYWN0aW9uSWQ9TWF0aC5tYXgobWF4S25vd25JbnRlcmFjdGlvbklkLGUuaW50ZXJhY3Rpb25JZCkpPyhtYXhLbm93bkludGVyYWN0aW9uSWQtbWluS25vd25JbnRlcmFjdGlvbklkKS83KzE6MCl9KX0sZ2V0SW50ZXJhY3Rpb25Db3VudD0oKT0+cG8/aW50ZXJhY3Rpb25Db3VudEVzdGltYXRlOnBlcmZvcm1hbmNlLmludGVyYWN0aW9uQ291bnR8fDAsaW5pdEludGVyYWN0aW9uQ291bnRQb2x5ZmlsbD0oKT0+eyJpbnRlcmFjdGlvbkNvdW50ImluIHBlcmZvcm1hbmNlfHxwb3x8KHBvPW9ic2VydmUoImV2ZW50Iix1cGRhdGVFc3RpbWF0ZSx7dHlwZToiZXZlbnQiLGJ1ZmZlcmVkOiEwLGR1cmF0aW9uVGhyZXNob2xkOjB9KSl9LHByZXZJbnRlcmFjdGlvbkNvdW50PTAsZ2V0SW50ZXJhY3Rpb25Db3VudEZvck5hdmlnYXRpb249KCk9PmdldEludGVyYWN0aW9uQ291bnQoKS1wcmV2SW50ZXJhY3Rpb25Db3VudDtjbGFzcyBJbnRlcmFjdGlvbk1hbmFnZXJ7Y29uc3RydWN0b3IoKXtJbnRlcmFjdGlvbk1hbmFnZXIucHJvdG90eXBlLl9faW5pdC5jYWxsKHRoaXMpLEludGVyYWN0aW9uTWFuYWdlci5wcm90b3R5cGUuX19pbml0Mi5jYWxsKHRoaXMpfV9faW5pdCgpe3RoaXMuX2xvbmdlc3RJbnRlcmFjdGlvbkxpc3Q9W119X19pbml0Migpe3RoaXMuX2xvbmdlc3RJbnRlcmFjdGlvbk1hcD1uZXcgTWFwfV9yZXNldEludGVyYWN0aW9ucygpe3ByZXZJbnRlcmFjdGlvbkNvdW50PWdldEludGVyYWN0aW9uQ291bnQoKSx0aGlzLl9sb25nZXN0SW50ZXJhY3Rpb25MaXN0Lmxlbmd0aD0wLHRoaXMuX2xvbmdlc3RJbnRlcmFjdGlvbk1hcC5jbGVhcigpfV9lc3RpbWF0ZVA5OExvbmdlc3RJbnRlcmFjdGlvbigpe2xldCBjYW5kaWRhdGVJbnRlcmFjdGlvbkluZGV4PU1hdGgubWluKHRoaXMuX2xvbmdlc3RJbnRlcmFjdGlvbkxpc3QubGVuZ3RoLTEsTWF0aC5mbG9vcihnZXRJbnRlcmFjdGlvbkNvdW50Rm9yTmF2aWdhdGlvbigpLzUwKSk7cmV0dXJuIHRoaXMuX2xvbmdlc3RJbnRlcmFjdGlvbkxpc3RbY2FuZGlkYXRlSW50ZXJhY3Rpb25JbmRleF19X3Byb2Nlc3NFbnRyeShlbnRyeSl7aWYodGhpcy5fb25CZWZvcmVQcm9jZXNzaW5nRW50cnk/LihlbnRyeSksIShlbnRyeS5pbnRlcmFjdGlvbklkfHwiZmlyc3QtaW5wdXQiPT09ZW50cnkuZW50cnlUeXBlKSlyZXR1cm47bGV0IG1pbkxvbmdlc3RJbnRlcmFjdGlvbj10aGlzLl9sb25nZXN0SW50ZXJhY3Rpb25MaXN0LmF0KC0xKSxpbnRlcmFjdGlvbj10aGlzLl9sb25nZXN0SW50ZXJhY3Rpb25NYXAuZ2V0KGVudHJ5LmludGVyYWN0aW9uSWQpO2lmKGludGVyYWN0aW9ufHx0aGlzLl9sb25nZXN0SW50ZXJhY3Rpb25MaXN0Lmxlbmd0aDwxMHx8ZW50cnkuZHVyYXRpb24+bWluTG9uZ2VzdEludGVyYWN0aW9uLl9sYXRlbmN5KXtpZihpbnRlcmFjdGlvbj9lbnRyeS5kdXJhdGlvbj5pbnRlcmFjdGlvbi5fbGF0ZW5jeT8oaW50ZXJhY3Rpb24uZW50cmllcz1bZW50cnldLGludGVyYWN0aW9uLl9sYXRlbmN5PWVudHJ5LmR1cmF0aW9uKTplbnRyeS5kdXJhdGlvbj09PWludGVyYWN0aW9uLl9sYXRlbmN5JiZlbnRyeS5zdGFydFRpbWU9PT1pbnRlcmFjdGlvbi5lbnRyaWVzWzBdLnN0YXJ0VGltZSYmaW50ZXJhY3Rpb24uZW50cmllcy5wdXNoKGVudHJ5KTooaW50ZXJhY3Rpb249e2lkOmVudHJ5LmludGVyYWN0aW9uSWQsZW50cmllczpbZW50cnldLF9sYXRlbmN5OmVudHJ5LmR1cmF0aW9ufSx0aGlzLl9sb25nZXN0SW50ZXJhY3Rpb25NYXAuc2V0KGludGVyYWN0aW9uLmlkLGludGVyYWN0aW9uKSx0aGlzLl9sb25nZXN0SW50ZXJhY3Rpb25MaXN0LnB1c2goaW50ZXJhY3Rpb24pKSx0aGlzLl9sb25nZXN0SW50ZXJhY3Rpb25MaXN0LnNvcnQoKGEsYik9PmIuX2xhdGVuY3ktYS5fbGF0ZW5jeSksdGhpcy5fbG9uZ2VzdEludGVyYWN0aW9uTGlzdC5sZW5ndGg+MTApe2xldCByZW1vdmVkSW50ZXJhY3Rpb25zPXRoaXMuX2xvbmdlc3RJbnRlcmFjdGlvbkxpc3Quc3BsaWNlKDEwKTtmb3IobGV0IGludGVyYWN0aW9uMSBvZiByZW1vdmVkSW50ZXJhY3Rpb25zKXRoaXMuX2xvbmdlc3RJbnRlcmFjdGlvbk1hcC5kZWxldGUoaW50ZXJhY3Rpb24xLmlkKX10aGlzLl9vbkFmdGVyUHJvY2Vzc2luZ0lOUENhbmRpZGF0ZT8uKGludGVyYWN0aW9uKX19fWxldCBvbkhpZGRlbj1jYj0+e2xldCBvbkhpZGRlbk9yUGFnZUhpZGU9ZXZlbnQ9PnsoInBhZ2VoaWRlIj09PWV2ZW50LnR5cGV8fHR5cGVzLm0uZG9jdW1lbnQ/LnZpc2liaWxpdHlTdGF0ZT09PSJoaWRkZW4iKSYmY2IoZXZlbnQpfTthZGRQYWdlTGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLG9uSGlkZGVuT3JQYWdlSGlkZSwhMCksYWRkUGFnZUxpc3RlbmVyKCJwYWdlaGlkZSIsb25IaWRkZW5PclBhZ2VIaWRlLCEwKX0sd2hlbklkbGVPckhpZGRlbj1jYj0+e2xldCBySUM9dHlwZXMubS5yZXF1ZXN0SWRsZUNhbGxiYWNrfHx0eXBlcy5tLnNldFRpbWVvdXQ7dHlwZXMubS5kb2N1bWVudD8udmlzaWJpbGl0eVN0YXRlPT09ImhpZGRlbiI/Y2IoKTooYWRkUGFnZUxpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixjYj1ydW5PbmNlKGNiKSx7b25jZTohMCxjYXB0dXJlOiEwfSkscklDKCgpPT57Y2IoKSxyZW1vdmVQYWdlTGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLGNiLHtjYXB0dXJlOiEwfSl9KSxvbkhpZGRlbihjYikpfSxJTlBUaHJlc2hvbGRzPVsyMDAsNTAwXSxvbklOUD0ob25SZXBvcnQsb3B0cz17fSk9PntpZighKGdsb2JhbFRoaXMuUGVyZm9ybWFuY2VFdmVudFRpbWluZyYmImludGVyYWN0aW9uSWQiaW4gUGVyZm9ybWFuY2VFdmVudFRpbWluZy5wcm90b3R5cGUpKXJldHVybjtsZXQgdmlzaWJpbGl0eVdhdGNoZXI9Z2V0VmlzaWJpbGl0eVdhdGNoZXIoKTt3aGVuQWN0aXZhdGVkKCgpPT57bGV0IHJlcG9ydDtpbml0SW50ZXJhY3Rpb25Db3VudFBvbHlmaWxsKCk7bGV0IG1ldHJpYz1pbml0TWV0cmljKCJJTlAiKSxpbnRlcmFjdGlvbk1hbmFnZXI9aW5pdFVuaXF1ZShvcHRzLEludGVyYWN0aW9uTWFuYWdlciksaGFuZGxlRW50cmllcz1lbnRyaWVzPT57d2hlbklkbGVPckhpZGRlbigoKT0+e2ZvcihsZXQgZW50cnkgb2YgZW50cmllcylpbnRlcmFjdGlvbk1hbmFnZXIuX3Byb2Nlc3NFbnRyeShlbnRyeSk7bGV0IGlucD1pbnRlcmFjdGlvbk1hbmFnZXIuX2VzdGltYXRlUDk4TG9uZ2VzdEludGVyYWN0aW9uKCk7aW5wJiZpbnAuX2xhdGVuY3khPT1tZXRyaWMudmFsdWUmJihtZXRyaWMudmFsdWU9aW5wLl9sYXRlbmN5LG1ldHJpYy5lbnRyaWVzPWlucC5lbnRyaWVzLHJlcG9ydCgpKX0pfSxwbz1vYnNlcnZlKCJldmVudCIsaGFuZGxlRW50cmllcyx7ZHVyYXRpb25UaHJlc2hvbGQ6b3B0cy5kdXJhdGlvblRocmVzaG9sZD8/NDB9KTtyZXBvcnQ9YmluZFJlcG9ydGVyKG9uUmVwb3J0LG1ldHJpYyxJTlBUaHJlc2hvbGRzLG9wdHMucmVwb3J0QWxsQ2hhbmdlcykscG8mJihwby5vYnNlcnZlKHt0eXBlOiJmaXJzdC1pbnB1dCIsYnVmZmVyZWQ6ITB9KSx2aXNpYmlsaXR5V2F0Y2hlci5vbkhpZGRlbigoKT0+e2hhbmRsZUVudHJpZXMocG8udGFrZVJlY29yZHMoKSkscmVwb3J0KCEwKX0pKX0pfTtjbGFzcyBMQ1BFbnRyeU1hbmFnZXJ7X3Byb2Nlc3NFbnRyeShlbnRyeSl7dGhpcy5fb25CZWZvcmVQcm9jZXNzaW5nRW50cnk/LihlbnRyeSl9fWxldCBMQ1BUaHJlc2hvbGRzPVsyNTAwLDRlM10sb25MQ1A9KG9uUmVwb3J0LG9wdHM9e30pPT57d2hlbkFjdGl2YXRlZCgoKT0+e2xldCByZXBvcnQ7bGV0IHZpc2liaWxpdHlXYXRjaGVyPWdldFZpc2liaWxpdHlXYXRjaGVyKCksbWV0cmljPWluaXRNZXRyaWMoIkxDUCIpLGxjcEVudHJ5TWFuYWdlcj1pbml0VW5pcXVlKG9wdHMsTENQRW50cnlNYW5hZ2VyKSxoYW5kbGVFbnRyaWVzPWVudHJpZXM9Pntmb3IobGV0IGVudHJ5IG9mKG9wdHMucmVwb3J0QWxsQ2hhbmdlc3x8KGVudHJpZXM9ZW50cmllcy5zbGljZSgtMSkpLGVudHJpZXMpKWxjcEVudHJ5TWFuYWdlci5fcHJvY2Vzc0VudHJ5KGVudHJ5KSxlbnRyeS5zdGFydFRpbWU8dmlzaWJpbGl0eVdhdGNoZXIuZmlyc3RIaWRkZW5UaW1lJiYobWV0cmljLnZhbHVlPU1hdGgubWF4KGVudHJ5LnN0YXJ0VGltZS1nZXRBY3RpdmF0aW9uU3RhcnQoKSwwKSxtZXRyaWMuZW50cmllcz1bZW50cnldLHJlcG9ydCgpKX0scG89b2JzZXJ2ZSgibGFyZ2VzdC1jb250ZW50ZnVsLXBhaW50IixoYW5kbGVFbnRyaWVzKTtpZihwbyl7cmVwb3J0PWJpbmRSZXBvcnRlcihvblJlcG9ydCxtZXRyaWMsTENQVGhyZXNob2xkcyxvcHRzLnJlcG9ydEFsbENoYW5nZXMpO2xldCBzdG9wTGlzdGVuaW5nPXJ1bk9uY2UoKCk9PntoYW5kbGVFbnRyaWVzKHBvLnRha2VSZWNvcmRzKCkpLHBvLmRpc2Nvbm5lY3QoKSxyZXBvcnQoITApfSksc3RvcExpc3RlbmluZ1dyYXBwZXI9ZXZlbnQ9PntldmVudC5pc1RydXN0ZWQmJih3aGVuSWRsZU9ySGlkZGVuKHN0b3BMaXN0ZW5pbmcpLHJlbW92ZVBhZ2VMaXN0ZW5lcihldmVudC50eXBlLHN0b3BMaXN0ZW5pbmdXcmFwcGVyLHtjYXB0dXJlOiEwfSkpfTtmb3IobGV0IHR5cGUgb2ZbImtleWRvd24iLCJjbGljayIsInZpc2liaWxpdHljaGFuZ2UiXSlhZGRQYWdlTGlzdGVuZXIodHlwZSxzdG9wTGlzdGVuaW5nV3JhcHBlcix7Y2FwdHVyZTohMH0pfX0pfSxUVEZCVGhyZXNob2xkcz1bODAwLDE4MDBdLHdoZW5SZWFkeT1jYWxsYmFjaz0+e3R5cGVzLm0uZG9jdW1lbnQ/LnByZXJlbmRlcmluZz93aGVuQWN0aXZhdGVkKCgpPT53aGVuUmVhZHkoY2FsbGJhY2spKTp0eXBlcy5tLmRvY3VtZW50Py5yZWFkeVN0YXRlIT09ImNvbXBsZXRlIj9hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoKT0+d2hlblJlYWR5KGNhbGxiYWNrKSwhMCk6c2V0VGltZW91dChjYWxsYmFjayl9LG9uVFRGQj0ob25SZXBvcnQsb3B0cz17fSk9PntsZXQgbWV0cmljPWluaXRNZXRyaWMoIlRURkIiKSxyZXBvcnQ9YmluZFJlcG9ydGVyKG9uUmVwb3J0LG1ldHJpYyxUVEZCVGhyZXNob2xkcyxvcHRzLnJlcG9ydEFsbENoYW5nZXMpO3doZW5SZWFkeSgoKT0+e2xldCBuYXZpZ2F0aW9uRW50cnk9Z2V0TmF2aWdhdGlvbkVudHJ5KCk7bmF2aWdhdGlvbkVudHJ5JiYobWV0cmljLnZhbHVlPU1hdGgubWF4KG5hdmlnYXRpb25FbnRyeS5yZXNwb25zZVN0YXJ0LWdldEFjdGl2YXRpb25TdGFydCgpLDApLG1ldHJpYy5lbnRyaWVzPVtuYXZpZ2F0aW9uRW50cnldLHJlcG9ydCghMCkpfSl9LGhhbmRsZXJzPXt9LGluc3RydW1lbnRlZD17fTtmdW5jdGlvbiBhZGRDbHNJbnN0cnVtZW50YXRpb25IYW5kbGVyKGNhbGxiYWNrLHN0b3BPbkNhbGxiYWNrPSExKXtyZXR1cm4gYWRkTWV0cmljT2JzZXJ2ZXIoImNscyIsY2FsbGJhY2ssaW5zdHJ1bWVudENscyxfcHJldmlvdXNDbHMsc3RvcE9uQ2FsbGJhY2spfWZ1bmN0aW9uIGFkZExjcEluc3RydW1lbnRhdGlvbkhhbmRsZXIoY2FsbGJhY2ssc3RvcE9uQ2FsbGJhY2s9ITEpe3JldHVybiBhZGRNZXRyaWNPYnNlcnZlcigibGNwIixjYWxsYmFjayxpbnN0cnVtZW50TGNwLF9wcmV2aW91c0xjcCxzdG9wT25DYWxsYmFjayl9ZnVuY3Rpb24gYWRkUGVyZm9ybWFuY2VJbnN0cnVtZW50YXRpb25IYW5kbGVyKHR5cGUsY2FsbGJhY2spe3JldHVybiBhZGRIYW5kbGVyKHR5cGUsY2FsbGJhY2spLGluc3RydW1lbnRlZFt0eXBlXXx8KGZ1bmN0aW9uKHR5cGUpe2xldCBvcHRpb25zPXt9OyJldmVudCI9PT10eXBlJiYob3B0aW9ucy5kdXJhdGlvblRocmVzaG9sZD0wKSxvYnNlcnZlKHR5cGUsZW50cmllcz0+e3RyaWdnZXJIYW5kbGVycyh0eXBlLHtlbnRyaWVzfSl9LG9wdGlvbnMpfSh0eXBlKSxpbnN0cnVtZW50ZWRbdHlwZV09ITApLGdldENsZWFudXBDYWxsYmFjayh0eXBlLGNhbGxiYWNrKX1mdW5jdGlvbiB0cmlnZ2VySGFuZGxlcnModHlwZSxkYXRhKXtsZXQgdHlwZUhhbmRsZXJzPWhhbmRsZXJzW3R5cGVdO2lmKHR5cGVIYW5kbGVycz8ubGVuZ3RoKWZvcihsZXQgaGFuZGxlciBvZiB0eXBlSGFuZGxlcnMpdHJ5e2hhbmRsZXIoZGF0YSl9Y2F0Y2goZSl7ZXNtX2RlYnVnX2J1aWxkLlgmJmRlYnVnX2xvZ2dlci5mRi5lcnJvcihgRXJyb3Igd2hpbGUgdHJpZ2dlcmluZyBpbnN0cnVtZW50YXRpb24gaGFuZGxlci4KVHlwZTogJHt0eXBlfQpOYW1lOiAkeygwLHN0YWNrdHJhY2UuJFApKGhhbmRsZXIpfQpFcnJvcjpgLGUpfX1mdW5jdGlvbiBpbnN0cnVtZW50Q2xzKCl7cmV0dXJuIG9uQ0xTKG1ldHJpYz0+e3RyaWdnZXJIYW5kbGVycygiY2xzIix7bWV0cmljfSksX3ByZXZpb3VzQ2xzPW1ldHJpY30se3JlcG9ydEFsbENoYW5nZXM6ITB9KX1mdW5jdGlvbiBpbnN0cnVtZW50TGNwKCl7cmV0dXJuIG9uTENQKG1ldHJpYz0+e3RyaWdnZXJIYW5kbGVycygibGNwIix7bWV0cmljfSksX3ByZXZpb3VzTGNwPW1ldHJpY30se3JlcG9ydEFsbENoYW5nZXM6ITB9KX1mdW5jdGlvbiBpbnN0cnVtZW50VHRmYigpe3JldHVybiBvblRURkIobWV0cmljPT57dHJpZ2dlckhhbmRsZXJzKCJ0dGZiIix7bWV0cmljfSksX3ByZXZpb3VzVHRmYj1tZXRyaWN9KX1mdW5jdGlvbiBpbnN0cnVtZW50SW5wKCl7cmV0dXJuIG9uSU5QKG1ldHJpYz0+e3RyaWdnZXJIYW5kbGVycygiaW5wIix7bWV0cmljfSksX3ByZXZpb3VzSW5wPW1ldHJpY30pfWZ1bmN0aW9uIGFkZE1ldHJpY09ic2VydmVyKHR5cGUsY2FsbGJhY2ssaW5zdHJ1bWVudEZuLHByZXZpb3VzVmFsdWUsc3RvcE9uQ2FsbGJhY2s9ITEpe2xldCBzdG9wTGlzdGVuaW5nO3JldHVybiBhZGRIYW5kbGVyKHR5cGUsY2FsbGJhY2spLGluc3RydW1lbnRlZFt0eXBlXXx8KHN0b3BMaXN0ZW5pbmc9aW5zdHJ1bWVudEZuKCksaW5zdHJ1bWVudGVkW3R5cGVdPSEwKSxwcmV2aW91c1ZhbHVlJiZjYWxsYmFjayh7bWV0cmljOnByZXZpb3VzVmFsdWV9KSxnZXRDbGVhbnVwQ2FsbGJhY2sodHlwZSxjYWxsYmFjayxzdG9wT25DYWxsYmFjaz9zdG9wTGlzdGVuaW5nOnZvaWQgMCl9ZnVuY3Rpb24gYWRkSGFuZGxlcih0eXBlLGhhbmRsZXIpe2hhbmRsZXJzW3R5cGVdPWhhbmRsZXJzW3R5cGVdfHxbXSxoYW5kbGVyc1t0eXBlXS5wdXNoKGhhbmRsZXIpfWZ1bmN0aW9uIGdldENsZWFudXBDYWxsYmFjayh0eXBlLGNhbGxiYWNrLHN0b3BMaXN0ZW5pbmcpe3JldHVybigpPT57c3RvcExpc3RlbmluZyYmc3RvcExpc3RlbmluZygpO2xldCB0eXBlSGFuZGxlcnM9aGFuZGxlcnNbdHlwZV07aWYoIXR5cGVIYW5kbGVycylyZXR1cm47bGV0IGluZGV4PXR5cGVIYW5kbGVycy5pbmRleE9mKGNhbGxiYWNrKTstMSE9PWluZGV4JiZ0eXBlSGFuZGxlcnMuc3BsaWNlKGluZGV4LDEpfX1mdW5jdGlvbiBpc01lYXN1cmVtZW50VmFsdWUodmFsdWUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdmFsdWUmJmlzRmluaXRlKHZhbHVlKX1mdW5jdGlvbiBzdGFydEFuZEVuZFNwYW4ocGFyZW50U3BhbixzdGFydFRpbWVJblNlY29uZHMsZW5kVGltZSx7Li4uY3R4fSl7bGV0IHBhcmVudFN0YXJ0VGltZT0oMCxzcGFuVXRpbHMuWFUpKHBhcmVudFNwYW4pLnN0YXJ0X3RpbWVzdGFtcDtyZXR1cm4gcGFyZW50U3RhcnRUaW1lJiZwYXJlbnRTdGFydFRpbWU+c3RhcnRUaW1lSW5TZWNvbmRzJiYiZnVuY3Rpb24iPT10eXBlb2YgcGFyZW50U3Bhbi51cGRhdGVTdGFydFRpbWUmJnBhcmVudFNwYW4udXBkYXRlU3RhcnRUaW1lKHN0YXJ0VGltZUluU2Vjb25kcyksd2l0aEFjdGl2ZVNwYW4ocGFyZW50U3BhbiwoKT0+e2xldCBzcGFuPXN0YXJ0SW5hY3RpdmVTcGFuKHtzdGFydFRpbWU6c3RhcnRUaW1lSW5TZWNvbmRzLC4uLmN0eH0pO3JldHVybiBzcGFuJiZzcGFuLmVuZChlbmRUaW1lKSxzcGFufSl9ZnVuY3Rpb24gc3RhcnRTdGFuZGFsb25lV2ViVml0YWxTcGFuKG9wdGlvbnMpe2xldCBwcm9maWxlSWQ7bGV0IGNsaWVudD0oMCxjdXJyZW50U2NvcGVzLnMzKSgpO2lmKCFjbGllbnQpcmV0dXJuO2xldHtuYW1lLHRyYW5zYWN0aW9uLGF0dHJpYnV0ZXM6cGFzc2VkQXR0cmlidXRlcyxzdGFydFRpbWV9PW9wdGlvbnMse3JlbGVhc2UsZW52aXJvbm1lbnQsc2VuZERlZmF1bHRQaWl9PWNsaWVudC5nZXRPcHRpb25zKCkscmVwbGF5PWNsaWVudC5nZXRJbnRlZ3JhdGlvbkJ5TmFtZSgiUmVwbGF5IikscmVwbGF5SWQ9cmVwbGF5Py5nZXRSZXBsYXlJZCgpLHNjb3BlPSgwLGN1cnJlbnRTY29wZXMublopKCksdXNlcj1zY29wZS5nZXRVc2VyKCksdXNlckRpc3BsYXk9dm9pZCAwIT09dXNlcj91c2VyLmVtYWlsfHx1c2VyLmlkfHx1c2VyLmlwX2FkZHJlc3M6dm9pZCAwO3RyeXtwcm9maWxlSWQ9c2NvcGUuZ2V0U2NvcGVEYXRhKCkuY29udGV4dHMucHJvZmlsZS5wcm9maWxlX2lkfWNhdGNoe31sZXQgYXR0cmlidXRlcz17cmVsZWFzZSxlbnZpcm9ubWVudCx1c2VyOnVzZXJEaXNwbGF5fHx2b2lkIDAscHJvZmlsZV9pZDpwcm9maWxlSWR8fHZvaWQgMCxyZXBsYXlfaWQ6cmVwbGF5SWR8fHZvaWQgMCx0cmFuc2FjdGlvbiwidXNlcl9hZ2VudC5vcmlnaW5hbCI6dHlwZXMubS5uYXZpZ2F0b3I/LnVzZXJBZ2VudCwiY2xpZW50LmFkZHJlc3MiOnNlbmREZWZhdWx0UGlpPyJ7e2F1dG99fSI6dm9pZCAwLC4uLnBhc3NlZEF0dHJpYnV0ZXN9O3JldHVybiBzdGFydEluYWN0aXZlU3Bhbih7bmFtZSxhdHRyaWJ1dGVzLHN0YXJ0VGltZSxleHBlcmltZW50YWw6e3N0YW5kYWxvbmU6ITB9fSl9ZnVuY3Rpb24gZ2V0QnJvd3NlclBlcmZvcm1hbmNlQVBJKCl7cmV0dXJuIHR5cGVzLm0uYWRkRXZlbnRMaXN0ZW5lciYmdHlwZXMubS5wZXJmb3JtYW5jZX1mdW5jdGlvbiBtc1RvU2VjKHRpbWUpe3JldHVybiB0aW1lLzFlM31mdW5jdGlvbiBzdXBwb3J0c1dlYlZpdGFsKGVudHJ5VHlwZSl7dHJ5e3JldHVybiBQZXJmb3JtYW5jZU9ic2VydmVyLnN1cHBvcnRlZEVudHJ5VHlwZXMuaW5jbHVkZXMoZW50cnlUeXBlKX1jYXRjaHtyZXR1cm4hMX19ZnVuY3Rpb24gbGlzdGVuRm9yV2ViVml0YWxSZXBvcnRFdmVudHMoY2xpZW50LGNvbGxlY3RvckNhbGxiYWNrKXtsZXQgcGFnZWxvYWRTcGFuSWQ7bGV0IGNvbGxlY3RlZD0hMTtmdW5jdGlvbiBfcnVuQ29sbGVjdG9yQ2FsbGJhY2tPbmNlKGV2ZW50KXshY29sbGVjdGVkJiZwYWdlbG9hZFNwYW5JZCYmY29sbGVjdG9yQ2FsbGJhY2soZXZlbnQscGFnZWxvYWRTcGFuSWQpLGNvbGxlY3RlZD0hMH1vbkhpZGRlbigoKT0+e19ydW5Db2xsZWN0b3JDYWxsYmFja09uY2UoInBhZ2VoaWRlIil9KTtsZXQgdW5zdWJzY3JpYmVTdGFydE5hdmlnYXRpb249Y2xpZW50Lm9uKCJiZWZvcmVTdGFydE5hdmlnYXRpb25TcGFuIiwoXyxvcHRpb25zKT0+e29wdGlvbnM/LmlzUmVkaXJlY3R8fChfcnVuQ29sbGVjdG9yQ2FsbGJhY2tPbmNlKCJuYXZpZ2F0aW9uIiksdW5zdWJzY3JpYmVTdGFydE5hdmlnYXRpb24oKSx1bnN1YnNjcmliZUFmdGVyU3RhcnRQYWdlTG9hZFNwYW4oKSl9KSx1bnN1YnNjcmliZUFmdGVyU3RhcnRQYWdlTG9hZFNwYW49Y2xpZW50Lm9uKCJhZnRlclN0YXJ0UGFnZUxvYWRTcGFuIixzcGFuPT57cGFnZWxvYWRTcGFuSWQ9c3Bhbi5zcGFuQ29udGV4dCgpLnNwYW5JZCx1bnN1YnNjcmliZUFmdGVyU3RhcnRQYWdlTG9hZFNwYW4oKX0pfWZ1bmN0aW9uIGdldEFic29sdXRlVGltZSh0aW1lKXtyZXR1cm4gdGltZT8oKCgwLHV0aWxzX3RpbWUuWjEpKCl8fHBlcmZvcm1hbmNlLnRpbWVPcmlnaW4pK3RpbWUpLzFlMzp0aW1lfWZ1bmN0aW9uIHJlc291cmNlVGltaW5nVG9TcGFuQXR0cmlidXRlcyhyZXNvdXJjZVRpbWluZyl7bGV0IHRpbWluZ1NwYW5EYXRhPXt9O2lmKHZvaWQgMCE9cmVzb3VyY2VUaW1pbmcubmV4dEhvcFByb3RvY29sKXtsZXR7bmFtZSx2ZXJzaW9ufT1mdW5jdGlvbihuZXh0SG9wUHJvdG9jb2wpe2xldCBuYW1lPSJ1bmtub3duIix2ZXJzaW9uPSJ1bmtub3duIixfbmFtZT0iIjtmb3IobGV0IGNoYXIgb2YgbmV4dEhvcFByb3RvY29sKXtpZigiLyI9PT1jaGFyKXtbbmFtZSx2ZXJzaW9uXT1uZXh0SG9wUHJvdG9jb2wuc3BsaXQoIi8iKTticmVha31pZighaXNOYU4oTnVtYmVyKGNoYXIpKSl7bmFtZT0iaCI9PT1fbmFtZT8iaHR0cCI6X25hbWUsdmVyc2lvbj1uZXh0SG9wUHJvdG9jb2wuc3BsaXQoX25hbWUpWzFdO2JyZWFrfV9uYW1lKz1jaGFyfXJldHVybiBfbmFtZT09PW5leHRIb3BQcm90b2NvbCYmKG5hbWU9X25hbWUpLHtuYW1lLHZlcnNpb259fShyZXNvdXJjZVRpbWluZy5uZXh0SG9wUHJvdG9jb2wpO3RpbWluZ1NwYW5EYXRhWyJuZXR3b3JrLnByb3RvY29sLnZlcnNpb24iXT12ZXJzaW9uLHRpbWluZ1NwYW5EYXRhWyJuZXR3b3JrLnByb3RvY29sLm5hbWUiXT1uYW1lfXJldHVybigwLHV0aWxzX3RpbWUuWjEpKCl8fGdldEJyb3dzZXJQZXJmb3JtYW5jZUFQSSgpPy50aW1lT3JpZ2luP09iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh7Li4udGltaW5nU3BhbkRhdGEsImh0dHAucmVxdWVzdC5yZWRpcmVjdF9zdGFydCI6Z2V0QWJzb2x1dGVUaW1lKHJlc291cmNlVGltaW5nLnJlZGlyZWN0U3RhcnQpLCJodHRwLnJlcXVlc3QucmVkaXJlY3RfZW5kIjpnZXRBYnNvbHV0ZVRpbWUocmVzb3VyY2VUaW1pbmcucmVkaXJlY3RFbmQpLCJodHRwLnJlcXVlc3Qud29ya2VyX3N0YXJ0IjpnZXRBYnNvbHV0ZVRpbWUocmVzb3VyY2VUaW1pbmcud29ya2VyU3RhcnQpLCJodHRwLnJlcXVlc3QuZmV0Y2hfc3RhcnQiOmdldEFic29sdXRlVGltZShyZXNvdXJjZVRpbWluZy5mZXRjaFN0YXJ0KSwiaHR0cC5yZXF1ZXN0LmRvbWFpbl9sb29rdXBfc3RhcnQiOmdldEFic29sdXRlVGltZShyZXNvdXJjZVRpbWluZy5kb21haW5Mb29rdXBTdGFydCksImh0dHAucmVxdWVzdC5kb21haW5fbG9va3VwX2VuZCI6Z2V0QWJzb2x1dGVUaW1lKHJlc291cmNlVGltaW5nLmRvbWFpbkxvb2t1cEVuZCksImh0dHAucmVxdWVzdC5jb25uZWN0X3N0YXJ0IjpnZXRBYnNvbHV0ZVRpbWUocmVzb3VyY2VUaW1pbmcuY29ubmVjdFN0YXJ0KSwiaHR0cC5yZXF1ZXN0LnNlY3VyZV9jb25uZWN0aW9uX3N0YXJ0IjpnZXRBYnNvbHV0ZVRpbWUocmVzb3VyY2VUaW1pbmcuc2VjdXJlQ29ubmVjdGlvblN0YXJ0KSwiaHR0cC5yZXF1ZXN0LmNvbm5lY3Rpb25fZW5kIjpnZXRBYnNvbHV0ZVRpbWUocmVzb3VyY2VUaW1pbmcuY29ubmVjdEVuZCksImh0dHAucmVxdWVzdC5yZXF1ZXN0X3N0YXJ0IjpnZXRBYnNvbHV0ZVRpbWUocmVzb3VyY2VUaW1pbmcucmVxdWVzdFN0YXJ0KSwiaHR0cC5yZXF1ZXN0LnJlc3BvbnNlX3N0YXJ0IjpnZXRBYnNvbHV0ZVRpbWUocmVzb3VyY2VUaW1pbmcucmVzcG9uc2VTdGFydCksImh0dHAucmVxdWVzdC5yZXNwb25zZV9lbmQiOmdldEFic29sdXRlVGltZShyZXNvdXJjZVRpbWluZy5yZXNwb25zZUVuZCksImh0dHAucmVxdWVzdC50aW1lX3RvX2ZpcnN0X2J5dGUiOm51bGwhPXJlc291cmNlVGltaW5nLnJlc3BvbnNlU3RhcnQ/cmVzb3VyY2VUaW1pbmcucmVzcG9uc2VTdGFydC8xZTM6dm9pZCAwfSkuZmlsdGVyKChbLHZhbHVlXSk9Pm51bGwhPXZhbHVlKSk6dGltaW5nU3BhbkRhdGF9bGV0IF9wZXJmb3JtYW5jZUN1cnNvcj0wLF9tZWFzdXJlbWVudHM9e307ZnVuY3Rpb24gX2FkZFBlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZyhzcGFuLGVudHJ5LGV2ZW50LHRpbWVPcmlnaW4sbmFtZT1ldmVudCl7bGV0IGV2ZW50RW5kPSJzZWN1cmVDb25uZWN0aW9uIj09PWV2ZW50PyJjb25uZWN0RW5kIjoiZmV0Y2giPT09ZXZlbnQ/ImRvbWFpbkxvb2t1cFN0YXJ0IjpgJHtldmVudH1FbmRgLGVuZD1lbnRyeVtldmVudEVuZF0sc3RhcnQ9ZW50cnlbYCR7ZXZlbnR9U3RhcnRgXTtzdGFydCYmZW5kJiZzdGFydEFuZEVuZFNwYW4oc3Bhbix0aW1lT3JpZ2luK21zVG9TZWMoc3RhcnQpLHRpbWVPcmlnaW4rbXNUb1NlYyhlbmQpLHtvcDpgYnJvd3Nlci4ke25hbWV9YCxuYW1lOmVudHJ5Lm5hbWUsYXR0cmlidXRlczp7W3NlbWFudGljQXR0cmlidXRlcy5TM106ImF1dG8udWkuYnJvd3Nlci5tZXRyaWNzIiwuLi4icmVkaXJlY3QiPT09ZXZlbnQmJm51bGwhPWVudHJ5LnJlZGlyZWN0Q291bnQ/eyJodHRwLnJlZGlyZWN0X2NvdW50IjplbnRyeS5yZWRpcmVjdENvdW50fTp7fX19KX12YXIgZW52PV9fd2VicGFja19yZXF1aXJlX18oOTkxMDcpLHByb2Nlc3M9X193ZWJwYWNrX3JlcXVpcmVfXyg4MzQ1NCk7bGV0IExBU1RfSU5URVJBQ1RJT05TPVtdLElOVEVSQUNUSU9OU19TUEFOX01BUD1uZXcgTWFwLEVMRU1FTlRfTkFNRV9USU1FU1RBTVBfTUFQPW5ldyBNYXAsSU5QX0VOVFJZX01BUD17Y2xpY2s6ImNsaWNrIixwb2ludGVyZG93bjoiY2xpY2siLHBvaW50ZXJ1cDoiY2xpY2siLG1vdXNlZG93bjoiY2xpY2siLG1vdXNldXA6ImNsaWNrIix0b3VjaHN0YXJ0OiJjbGljayIsdG91Y2hlbmQ6ImNsaWNrIixtb3VzZW92ZXI6ImhvdmVyIixtb3VzZW91dDoiaG92ZXIiLG1vdXNlZW50ZXI6ImhvdmVyIixtb3VzZWxlYXZlOiJob3ZlciIscG9pbnRlcm92ZXI6ImhvdmVyIixwb2ludGVyb3V0OiJob3ZlciIscG9pbnRlcmVudGVyOiJob3ZlciIscG9pbnRlcmxlYXZlOiJob3ZlciIsZHJhZ3N0YXJ0OiJkcmFnIixkcmFnZW5kOiJkcmFnIixkcmFnOiJkcmFnIixkcmFnZW50ZXI6ImRyYWciLGRyYWdsZWF2ZToiZHJhZyIsZHJhZ292ZXI6ImRyYWciLGRyb3A6ImRyYWciLGtleWRvd246InByZXNzIixrZXl1cDoicHJlc3MiLGtleXByZXNzOiJwcmVzcyIsaW5wdXQ6InByZXNzIn0sX29uSW5wPSh7bWV0cmljfSk9PntpZih2b2lkIDA9PW1ldHJpYy52YWx1ZSlyZXR1cm47bGV0IGR1cmF0aW9uPW1zVG9TZWMobWV0cmljLnZhbHVlKTtpZihkdXJhdGlvbj42MClyZXR1cm47bGV0IGVudHJ5PW1ldHJpYy5lbnRyaWVzLmZpbmQoZW50cnk9PmVudHJ5LmR1cmF0aW9uPT09bWV0cmljLnZhbHVlJiZJTlBfRU5UUllfTUFQW2VudHJ5Lm5hbWVdKTtpZighZW50cnkpcmV0dXJuO2xldHtpbnRlcmFjdGlvbklkfT1lbnRyeSxpbnRlcmFjdGlvblR5cGU9SU5QX0VOVFJZX01BUFtlbnRyeS5uYW1lXSxzdGFydFRpbWU9bXNUb1NlYygoMCx1dGlsc190aW1lLloxKSgpK2VudHJ5LnN0YXJ0VGltZSksYWN0aXZlU3Bhbj0oMCxzcGFuVXRpbHMuSE4pKCkscm9vdFNwYW49YWN0aXZlU3Bhbj8oMCxzcGFuVXRpbHMuR3gpKGFjdGl2ZVNwYW4pOnZvaWQgMCxjYWNoZWRJbnRlcmFjdGlvbkNvbnRleHQ9bnVsbCE9aW50ZXJhY3Rpb25JZD9JTlRFUkFDVElPTlNfU1BBTl9NQVAuZ2V0KGludGVyYWN0aW9uSWQpOnZvaWQgMCxzcGFuVG9Vc2U9Y2FjaGVkSW50ZXJhY3Rpb25Db250ZXh0Py5zcGFufHxyb290U3Bhbixyb3V0ZU5hbWU9c3BhblRvVXNlPygwLHNwYW5VdGlscy5YVSkoc3BhblRvVXNlKS5kZXNjcmlwdGlvbjooMCxjdXJyZW50U2NvcGVzLm5aKSgpLmdldFNjb3BlRGF0YSgpLnRyYW5zYWN0aW9uTmFtZSxuYW1lPWNhY2hlZEludGVyYWN0aW9uQ29udGV4dD8uZWxlbWVudE5hbWV8fCgwLGJyb3dzZXIuUnQpKGVudHJ5LnRhcmdldCksYXR0cmlidXRlcz17W3NlbWFudGljQXR0cmlidXRlcy5TM106ImF1dG8uaHR0cC5icm93c2VyLmlucCIsW3NlbWFudGljQXR0cmlidXRlcy4kSl06YHVpLmludGVyYWN0aW9uLiR7aW50ZXJhY3Rpb25UeXBlfWAsW3NlbWFudGljQXR0cmlidXRlcy5KUV06ZW50cnkuZHVyYXRpb259LHNwYW49c3RhcnRTdGFuZGFsb25lV2ViVml0YWxTcGFuKHtuYW1lLHRyYW5zYWN0aW9uOnJvdXRlTmFtZSxhdHRyaWJ1dGVzLHN0YXJ0VGltZX0pO3NwYW4mJihzcGFuLmFkZEV2ZW50KCJpbnAiLHtbc2VtYW50aWNBdHRyaWJ1dGVzLkUxXToibWlsbGlzZWNvbmQiLFtzZW1hbnRpY0F0dHJpYnV0ZXMuV2JdOm1ldHJpYy52YWx1ZX0pLHNwYW4uZW5kKHN0YXJ0VGltZStkdXJhdGlvbikpfSxfb25FbGVtZW50VGltaW5nPSh7ZW50cmllc30pPT57bGV0IGFjdGl2ZVNwYW49KDAsc3BhblV0aWxzLkhOKSgpLHJvb3RTcGFuPWFjdGl2ZVNwYW4/KDAsc3BhblV0aWxzLkd4KShhY3RpdmVTcGFuKTp2b2lkIDAsdHJhbnNhY3Rpb25OYW1lPXJvb3RTcGFuPygwLHNwYW5VdGlscy5YVSkocm9vdFNwYW4pLmRlc2NyaXB0aW9uOigwLGN1cnJlbnRTY29wZXMublopKCkuZ2V0U2NvcGVEYXRhKCkudHJhbnNhY3Rpb25OYW1lO2VudHJpZXMuZm9yRWFjaChlbnRyeT0+e2lmKCFlbnRyeS5pZGVudGlmaWVyKXJldHVybjtsZXQgcGFpbnRUeXBlPWVudHJ5Lm5hbWUscmVuZGVyVGltZT1lbnRyeS5yZW5kZXJUaW1lLGxvYWRUaW1lPWVudHJ5LmxvYWRUaW1lLFtzcGFuU3RhcnRUaW1lLHNwYW5TdGFydFRpbWVTb3VyY2VdPWxvYWRUaW1lP1ttc1RvU2VjKGxvYWRUaW1lKSwibG9hZC10aW1lIl06cmVuZGVyVGltZT9bbXNUb1NlYyhyZW5kZXJUaW1lKSwicmVuZGVyLXRpbWUiXTpbKDAsdXRpbHNfdGltZS5waCkoKSwiZW50cnktZW1pc3Npb24iXSxkdXJhdGlvbj0iaW1hZ2UtcGFpbnQiPT09cGFpbnRUeXBlP21zVG9TZWMoTWF0aC5tYXgoMCwocmVuZGVyVGltZT8/MCktKGxvYWRUaW1lPz8wKSkpOjAsYXR0cmlidXRlcz17W3NlbWFudGljQXR0cmlidXRlcy5TM106ImF1dG8udWkuYnJvd3Nlci5lbGVtZW50dGltaW5nIixbc2VtYW50aWNBdHRyaWJ1dGVzLiRKXToidWkuZWxlbWVudHRpbWluZyIsW3NlbWFudGljQXR0cmlidXRlcy5aal06ImNvbXBvbmVudCIsInNlbnRyeS5zcGFuX3N0YXJ0X3RpbWVfc291cmNlIjpzcGFuU3RhcnRUaW1lU291cmNlLCJzZW50cnkudHJhbnNhY3Rpb25fbmFtZSI6dHJhbnNhY3Rpb25OYW1lLCJlbGVtZW50LmlkIjplbnRyeS5pZCwiZWxlbWVudC50eXBlIjplbnRyeS5lbGVtZW50Py50YWdOYW1lPy50b0xvd2VyQ2FzZSgpfHwidW5rbm93biIsImVsZW1lbnQuc2l6ZSI6ZW50cnkubmF0dXJhbFdpZHRoJiZlbnRyeS5uYXR1cmFsSGVpZ2h0P2Ake2VudHJ5Lm5hdHVyYWxXaWR0aH14JHtlbnRyeS5uYXR1cmFsSGVpZ2h0fWA6dm9pZCAwLCJlbGVtZW50LnJlbmRlcl90aW1lIjpyZW5kZXJUaW1lLCJlbGVtZW50LmxvYWRfdGltZSI6bG9hZFRpbWUsImVsZW1lbnQudXJsIjplbnRyeS51cmx8fHZvaWQgMCwiZWxlbWVudC5pZGVudGlmaWVyIjplbnRyeS5pZGVudGlmaWVyLCJlbGVtZW50LnBhaW50X3R5cGUiOnBhaW50VHlwZX07IWZ1bmN0aW9uKG9wdGlvbnMsY2FsbGJhY2spe2xldCBhY3M9Z2V0QWNzKCk7aWYoYWNzLnN0YXJ0U3BhbilyZXR1cm4gYWNzLnN0YXJ0U3BhbihvcHRpb25zLGNhbGxiYWNrKTtsZXQgc3BhbkFyZ3VtZW50cz1wYXJzZVNlbnRyeVNwYW5Bcmd1bWVudHMob3B0aW9ucykse2ZvcmNlVHJhbnNhY3Rpb24scGFyZW50U3BhbjpjdXN0b21QYXJlbnRTcGFuLHNjb3BlOmN1c3RvbVNjb3BlfT1vcHRpb25zLGN1c3RvbUZvcmtlZFNjb3BlPWN1c3RvbVNjb3BlPy5jbG9uZSgpOygwLGN1cnJlbnRTY29wZXMuJGUpKGN1c3RvbUZvcmtlZFNjb3BlLCgpPT4odm9pZCAwIT09Y3VzdG9tUGFyZW50U3Bhbj9jYWxsYmFjaz0+d2l0aEFjdGl2ZVNwYW4oY3VzdG9tUGFyZW50U3BhbixjYWxsYmFjayk6Y2FsbGJhY2s9PmNhbGxiYWNrKCkpKCgpPT57bGV0IHNjb3BlPSgwLGN1cnJlbnRTY29wZXMublopKCkscGFyZW50U3Bhbj1nZXRQYXJlbnRTcGFuKHNjb3BlLGN1c3RvbVBhcmVudFNwYW4pLHNob3VsZFNraXBTcGFuPW9wdGlvbnMub25seUlmUGFyZW50JiYhcGFyZW50U3BhbixhY3RpdmVTcGFuPXNob3VsZFNraXBTcGFuP25ldyBzZW50cnlOb25SZWNvcmRpbmdTcGFuX1NlbnRyeU5vblJlY29yZGluZ1NwYW46Y3JlYXRlQ2hpbGRPclJvb3RTcGFuKHtwYXJlbnRTcGFuLHNwYW5Bcmd1bWVudHMsZm9yY2VUcmFuc2FjdGlvbixzY29wZX0pO3JldHVybigwLHNwYW5PblNjb3BlLkQpKHNjb3BlLGFjdGl2ZVNwYW4pLGZ1bmN0aW9uKGZuLG9uRXJyb3Isb25GaW5hbGx5PSgpPT57fSxvblN1Y2Nlc3M9KCk9Pnt9KXt2YXIgdmFsdWU7bGV0IG1heWJlUHJvbWlzZVJlc3VsdDt0cnl7bWF5YmVQcm9taXNlUmVzdWx0PWZuKCl9Y2F0Y2goZSl7dGhyb3cgb25FcnJvcihlKSxvbkZpbmFsbHkoKSxlfXJldHVybiB2YWx1ZT1tYXliZVByb21pc2VSZXN1bHQsKDAsaXMuSjgpKHZhbHVlKT92YWx1ZS50aGVuKHJlcz0+KG9uRmluYWxseSgpLG9uU3VjY2VzcyhyZXMpLHJlcyksZT0+e3Rocm93IG9uRXJyb3IoZSksb25GaW5hbGx5KCksZX0pOihvbkZpbmFsbHkoKSxvblN1Y2Nlc3ModmFsdWUpLHZhbHVlKX0oKCk9PmNhbGxiYWNrKGFjdGl2ZVNwYW4pLCgpPT57bGV0e3N0YXR1c309KDAsc3BhblV0aWxzLlhVKShhY3RpdmVTcGFuKTthY3RpdmVTcGFuLmlzUmVjb3JkaW5nKCkmJighc3RhdHVzfHwib2siPT09c3RhdHVzKSYmYWN0aXZlU3Bhbi5zZXRTdGF0dXMoe2NvZGU6c3BhbnN0YXR1cy5qdCxtZXNzYWdlOiJpbnRlcm5hbF9lcnJvciJ9KX0sKCk9PnthY3RpdmVTcGFuLmVuZCgpfSl9KSl9KHtuYW1lOmBlbGVtZW50WyR7ZW50cnkuaWRlbnRpZmllcn1dYCxhdHRyaWJ1dGVzLHN0YXJ0VGltZTpzcGFuU3RhcnRUaW1lLG9ubHlJZlBhcmVudDohMH0sc3Bhbj0+e3NwYW4uZW5kKHNwYW5TdGFydFRpbWUrZHVyYXRpb24pfSl9KX07dmFyIGluc3RydW1lbnRfaGlzdG9yeT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk5NTc5KSxwcm9kX2RlYnVnX2J1aWxkPV9fd2VicGFja19yZXF1aXJlX18oODUyNjkpLGhlbHBlcnM9X193ZWJwYWNrX3JlcXVpcmVfXygzMDU0NCk7bGV0IFBSRVZJT1VTX1RSQUNFX0tFWT0ic2VudHJ5X3ByZXZpb3VzX3RyYWNlIjtmdW5jdGlvbiBzcGFuQ29udGV4dFNhbXBsZWQoY3R4KXtyZXR1cm4gMT09PWN0eC50cmFjZUZsYWdzfXZhciBmZXRjaD1fX3dlYnBhY2tfcmVxdWlyZV9fKDEyMzEpLHV0aWxzX2JhZ2dhZ2U9X193ZWJwYWNrX3JlcXVpcmVfXygxNTE5NyksZXNtX2V4cG9ydHM9X193ZWJwYWNrX3JlcXVpcmVfXygzOTQyNCk7ZnVuY3Rpb24gZ2V0VHJhY2VEYXRhKG9wdGlvbnM9e30pe2xldCBjbGllbnQ9b3B0aW9ucy5jbGllbnR8fCgwLGN1cnJlbnRTY29wZXMuczMpKCk7aWYoISgwLGVzbV9leHBvcnRzLl9rKSgpfHwhY2xpZW50KXJldHVybnt9O2xldCBjYXJyaWVyPSgwLGVzbV9jYXJyaWVyLmN1KSgpLGFjcz0oMCxhc3luY0NvbnRleHQuRykoY2Fycmllcik7aWYoYWNzLmdldFRyYWNlRGF0YSlyZXR1cm4gYWNzLmdldFRyYWNlRGF0YShvcHRpb25zKTtsZXQgc2NvcGU9b3B0aW9ucy5zY29wZXx8KDAsY3VycmVudFNjb3Blcy5uWikoKSxzcGFuPW9wdGlvbnMuc3Bhbnx8KDAsc3BhblV0aWxzLkhOKSgpLHNlbnRyeVRyYWNlPXNwYW4/KDAsc3BhblV0aWxzLkhiKShzcGFuKTpmdW5jdGlvbihzY29wZSl7bGV0e3RyYWNlSWQsc2FtcGxlZCxwcm9wYWdhdGlvblNwYW5JZH09c2NvcGUuZ2V0UHJvcGFnYXRpb25Db250ZXh0KCk7cmV0dXJuKDAsdHJhY2luZy4kcCkodHJhY2VJZCxwcm9wYWdhdGlvblNwYW5JZCxzYW1wbGVkKX0oc2NvcGUpLGRzYz1zcGFuPygwLGR5bmFtaWNTYW1wbGluZ0NvbnRleHQuakMpKHNwYW4pOigwLGR5bmFtaWNTYW1wbGluZ0NvbnRleHQuQ0cpKGNsaWVudCxzY29wZSksYmFnZ2FnZT0oMCx1dGlsc19iYWdnYWdlLklRKShkc2MpLGlzVmFsaWRTZW50cnlUcmFjZUhlYWRlcj10cmFjaW5nLktlLnRlc3Qoc2VudHJ5VHJhY2UpO2lmKCFpc1ZhbGlkU2VudHJ5VHJhY2VIZWFkZXIpcmV0dXJuIGRlYnVnX2xvZ2dlci5mRi53YXJuKCJJbnZhbGlkIHNlbnRyeS10cmFjZSBkYXRhLiBDYW5ub3QgZ2VuZXJhdGUgdHJhY2UgZGF0YSIpLHt9O2xldCB0cmFjZURhdGE9eyJzZW50cnktdHJhY2UiOnNlbnRyeVRyYWNlLGJhZ2dhZ2V9O3JldHVybiBvcHRpb25zLnByb3BhZ2F0ZVRyYWNlcGFyZW50JiYodHJhY2VEYXRhLnRyYWNlcGFyZW50PXNwYW4/KDAsc3BhblV0aWxzLmpOKShzcGFuKTpmdW5jdGlvbihzY29wZSl7bGV0e3RyYWNlSWQsc2FtcGxlZCxwcm9wYWdhdGlvblNwYW5JZH09c2NvcGUuZ2V0UHJvcGFnYXRpb25Db250ZXh0KCk7cmV0dXJuKDAsdHJhY2luZy5pNykodHJhY2VJZCxwcm9wYWdhdGlvblNwYW5JZCxzYW1wbGVkKX0oc2NvcGUpKSx0cmFjZURhdGF9ZnVuY3Rpb24gYmFnZ2FnZUhlYWRlckhhc1NlbnRyeUJhZ2dhZ2VWYWx1ZXMoYmFnZ2FnZUhlYWRlcil7cmV0dXJuIGJhZ2dhZ2VIZWFkZXIuc3BsaXQoIiwiKS5zb21lKGJhZ2dhZ2VFbnRyeT0+YmFnZ2FnZUVudHJ5LnRyaW0oKS5zdGFydHNXaXRoKHV0aWxzX2JhZ2dhZ2UubHEpKX12YXIgaW5zdHJ1bWVudF94aHI9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzEyNyk7ZnVuY3Rpb24gZ2V0RnVsbFVSTCh1cmwpe3RyeXtsZXQgcGFyc2VkPW5ldyBVUkwodXJsLGhlbHBlcnMubTkubG9jYXRpb24ub3JpZ2luKTtyZXR1cm4gcGFyc2VkLmhyZWZ9Y2F0Y2h7cmV0dXJufX1mdW5jdGlvbiBjcmVhdGVIZWFkZXJzU2FmZWx5KGhlYWRlcnMpe3RyeXtyZXR1cm4gbmV3IEhlYWRlcnMoaGVhZGVycyl9Y2F0Y2h7cmV0dXJufX1TeW1ib2wuZm9yKCJzZW50cnlfX29yaWdpbmFsUmVxdWVzdEJvZHkiKTtsZXQgcmVzcG9uc2VUb1NwYW5JZD1uZXcgV2Vha01hcCxzcGFuSWRUb0VuZFRpbWVzdGFtcD1uZXcgTWFwLGRlZmF1bHRSZXF1ZXN0SW5zdHJ1bWVudGF0aW9uT3B0aW9ucz17dHJhY2VGZXRjaDohMCx0cmFjZVhIUjohMCxlbmFibGVIVFRQVGltaW5nczohMCx0cmFja0ZldGNoU3RyZWFtUGVyZm9ybWFuY2U6ITF9O2Z1bmN0aW9uIGFkZEhUVFBUaW1pbmdzKHNwYW4pe2xldHt1cmx9PSgwLHNwYW5VdGlscy5YVSkoc3BhbikuZGF0YTtpZighdXJsfHwic3RyaW5nIiE9dHlwZW9mIHVybClyZXR1cm47bGV0IGNsZWFudXA9YWRkUGVyZm9ybWFuY2VJbnN0cnVtZW50YXRpb25IYW5kbGVyKCJyZXNvdXJjZSIsKHtlbnRyaWVzfSk9PntlbnRyaWVzLmZvckVhY2goZW50cnk9PnsicmVzb3VyY2UiPT09ZW50cnkuZW50cnlUeXBlJiYiaW5pdGlhdG9yVHlwZSJpbiBlbnRyeSYmInN0cmluZyI9PXR5cGVvZiBlbnRyeS5uZXh0SG9wUHJvdG9jb2wmJigiZmV0Y2giPT09ZW50cnkuaW5pdGlhdG9yVHlwZXx8InhtbGh0dHByZXF1ZXN0Ij09PWVudHJ5LmluaXRpYXRvclR5cGUpJiZlbnRyeS5uYW1lLmVuZHNXaXRoKHVybCkmJihzcGFuLnNldEF0dHJpYnV0ZXMocmVzb3VyY2VUaW1pbmdUb1NwYW5BdHRyaWJ1dGVzKGVudHJ5KSksc2V0VGltZW91dChjbGVhbnVwKSl9KX0pfWxldCBERUZBVUxUX0JST1dTRVJfVFJBQ0lOR19PUFRJT05TPXsuLi5UUkFDSU5HX0RFRkFVTFRTLGluc3RydW1lbnROYXZpZ2F0aW9uOiEwLGluc3RydW1lbnRQYWdlTG9hZDohMCxtYXJrQmFja2dyb3VuZFNwYW46ITAsZW5hYmxlTG9uZ1Rhc2s6ITAsZW5hYmxlTG9uZ0FuaW1hdGlvbkZyYW1lOiEwLGVuYWJsZUlucDohMCxlbmFibGVFbGVtZW50VGltaW5nOiEwLGlnbm9yZVJlc291cmNlU3BhbnM6W10saWdub3JlUGVyZm9ybWFuY2VBcGlTcGFuczpbXSxkZXRlY3RSZWRpcmVjdHM6ITAsbGlua1ByZXZpb3VzVHJhY2U6ImluLW1lbW9yeSIsY29uc2lzdGVudFRyYWNlU2FtcGxpbmc6ITEsZW5hYmxlUmVwb3J0UGFnZUxvYWRlZDohMSxfZXhwZXJpbWVudHM6e30sLi4uZGVmYXVsdFJlcXVlc3RJbnN0cnVtZW50YXRpb25PcHRpb25zfSxicm93c2VyVHJhY2luZ0ludGVncmF0aW9uPShvcHRpb25zPXt9KT0+e2xldCBfY29sbGVjdFdlYlZpdGFscyxsYXN0SW50ZXJhY3Rpb25UaW1lc3RhbXAsX3BhZ2Vsb2FkU3BhbjtsZXQgbGF0ZXN0Um91dGU9e25hbWU6dm9pZCAwLHNvdXJjZTp2b2lkIDB9LG9wdGlvbmFsV2luZG93RG9jdW1lbnQ9aGVscGVycy5tOS5kb2N1bWVudCx7ZW5hYmxlSW5wLGVuYWJsZUVsZW1lbnRUaW1pbmcsZW5hYmxlTG9uZ1Rhc2ssZW5hYmxlTG9uZ0FuaW1hdGlvbkZyYW1lLF9leHBlcmltZW50czp7ZW5hYmxlSW50ZXJhY3Rpb25zLGVuYWJsZVN0YW5kYWxvbmVDbHNTcGFucyxlbmFibGVTdGFuZGFsb25lTGNwU3BhbnN9LGJlZm9yZVN0YXJ0U3BhbixpZGxlVGltZW91dCxmaW5hbFRpbWVvdXQsY2hpbGRTcGFuVGltZW91dCxtYXJrQmFja2dyb3VuZFNwYW4sdHJhY2VGZXRjaCx0cmFjZVhIUix0cmFja0ZldGNoU3RyZWFtUGVyZm9ybWFuY2Usc2hvdWxkQ3JlYXRlU3BhbkZvclJlcXVlc3QsZW5hYmxlSFRUUFRpbWluZ3MsaWdub3JlUmVzb3VyY2VTcGFucyxpZ25vcmVQZXJmb3JtYW5jZUFwaVNwYW5zLGluc3RydW1lbnRQYWdlTG9hZCxpbnN0cnVtZW50TmF2aWdhdGlvbixkZXRlY3RSZWRpcmVjdHMsbGlua1ByZXZpb3VzVHJhY2UsY29uc2lzdGVudFRyYWNlU2FtcGxpbmcsZW5hYmxlUmVwb3J0UGFnZUxvYWRlZCxvblJlcXVlc3RTcGFuU3RhcnQsb25SZXF1ZXN0U3BhbkVuZH09ey4uLkRFRkFVTFRfQlJPV1NFUl9UUkFDSU5HX09QVElPTlMsLi4ub3B0aW9uc307ZnVuY3Rpb24gX2NyZWF0ZVJvdXRlU3BhbihjbGllbnQsc3RhcnRTcGFuT3B0aW9ucyxtYWtlQWN0aXZlPSEwKXtsZXQgaXNQYWdlbG9hZFNwYW49InBhZ2Vsb2FkIj09PXN0YXJ0U3Bhbk9wdGlvbnMub3AsaW5pdGlhbFNwYW5OYW1lPXN0YXJ0U3Bhbk9wdGlvbnMubmFtZSxmaW5hbFN0YXJ0U3Bhbk9wdGlvbnM9YmVmb3JlU3RhcnRTcGFuP2JlZm9yZVN0YXJ0U3BhbihzdGFydFNwYW5PcHRpb25zKTpzdGFydFNwYW5PcHRpb25zLGF0dHJpYnV0ZXM9ZmluYWxTdGFydFNwYW5PcHRpb25zLmF0dHJpYnV0ZXN8fHt9O2lmKGluaXRpYWxTcGFuTmFtZSE9PWZpbmFsU3RhcnRTcGFuT3B0aW9ucy5uYW1lJiYoYXR0cmlidXRlc1tzZW1hbnRpY0F0dHJpYnV0ZXMuWmpdPSJjdXN0b20iLGZpbmFsU3RhcnRTcGFuT3B0aW9ucy5hdHRyaWJ1dGVzPWF0dHJpYnV0ZXMpLCFtYWtlQWN0aXZlKXtsZXQgbm93PSgwLHV0aWxzX3RpbWUueVcpKCk7c3RhcnRJbmFjdGl2ZVNwYW4oey4uLmZpbmFsU3RhcnRTcGFuT3B0aW9ucyxzdGFydFRpbWU6bm93fSkuZW5kKG5vdyk7cmV0dXJufWxhdGVzdFJvdXRlLm5hbWU9ZmluYWxTdGFydFNwYW5PcHRpb25zLm5hbWUsbGF0ZXN0Um91dGUuc291cmNlPWF0dHJpYnV0ZXNbc2VtYW50aWNBdHRyaWJ1dGVzLlpqXTtsZXQgaWRsZVNwYW49c3RhcnRJZGxlU3BhbihmaW5hbFN0YXJ0U3Bhbk9wdGlvbnMse2lkbGVUaW1lb3V0LGZpbmFsVGltZW91dCxjaGlsZFNwYW5UaW1lb3V0LGRpc2FibGVBdXRvRmluaXNoOmlzUGFnZWxvYWRTcGFuLGJlZm9yZVNwYW5FbmQoc3Bhbil7X2NvbGxlY3RXZWJWaXRhbHM/LigpLGZ1bmN0aW9uKHNwYW4sb3B0aW9ucyl7bGV0IHBlcmZvcm1hbmNlMT1nZXRCcm93c2VyUGVyZm9ybWFuY2VBUEkoKSxvcmlnaW49KDAsdXRpbHNfdGltZS5aMSkoKTtpZighcGVyZm9ybWFuY2UxPy5nZXRFbnRyaWVzfHwhb3JpZ2luKXJldHVybjtsZXQgdGltZU9yaWdpbj1tc1RvU2VjKG9yaWdpbikscGVyZm9ybWFuY2VFbnRyaWVzPXBlcmZvcm1hbmNlMS5nZXRFbnRyaWVzKCkse29wLHN0YXJ0X3RpbWVzdGFtcDp0cmFuc2FjdGlvblN0YXJ0VGltZX09KDAsc3BhblV0aWxzLlhVKShzcGFuKTtwZXJmb3JtYW5jZUVudHJpZXMuc2xpY2UoX3BlcmZvcm1hbmNlQ3Vyc29yKS5mb3JFYWNoKGVudHJ5PT57bGV0IHN0YXJ0VGltZT1tc1RvU2VjKGVudHJ5LnN0YXJ0VGltZSksZHVyYXRpb249bXNUb1NlYyhNYXRoLm1heCgwLGVudHJ5LmR1cmF0aW9uKSk7aWYoIm5hdmlnYXRpb24iIT09b3B8fCF0cmFuc2FjdGlvblN0YXJ0VGltZXx8ISh0aW1lT3JpZ2luK3N0YXJ0VGltZTx0cmFuc2FjdGlvblN0YXJ0VGltZSkpc3dpdGNoKGVudHJ5LmVudHJ5VHlwZSl7Y2FzZSJuYXZpZ2F0aW9uIjpbInVubG9hZEV2ZW50IiwicmVkaXJlY3QiLCJkb21Db250ZW50TG9hZGVkRXZlbnQiLCJsb2FkRXZlbnQiLCJjb25uZWN0Il0uZm9yRWFjaChldmVudD0+e19hZGRQZXJmb3JtYW5jZU5hdmlnYXRpb25UaW1pbmcoc3BhbixlbnRyeSxldmVudCx0aW1lT3JpZ2luKX0pLF9hZGRQZXJmb3JtYW5jZU5hdmlnYXRpb25UaW1pbmcoc3BhbixlbnRyeSwic2VjdXJlQ29ubmVjdGlvbiIsdGltZU9yaWdpbiwiVExTL1NTTCIpLF9hZGRQZXJmb3JtYW5jZU5hdmlnYXRpb25UaW1pbmcoc3BhbixlbnRyeSwiZmV0Y2giLHRpbWVPcmlnaW4sImNhY2hlIiksX2FkZFBlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZyhzcGFuLGVudHJ5LCJkb21haW5Mb29rdXAiLHRpbWVPcmlnaW4sIkROUyIpLGZ1bmN0aW9uKHNwYW4sZW50cnksdGltZU9yaWdpbil7bGV0IHJlcXVlc3RTdGFydFRpbWVzdGFtcD10aW1lT3JpZ2luK21zVG9TZWMoZW50cnkucmVxdWVzdFN0YXJ0KSxyZXNwb25zZUVuZFRpbWVzdGFtcD10aW1lT3JpZ2luK21zVG9TZWMoZW50cnkucmVzcG9uc2VFbmQpLHJlc3BvbnNlU3RhcnRUaW1lc3RhbXA9dGltZU9yaWdpbittc1RvU2VjKGVudHJ5LnJlc3BvbnNlU3RhcnQpO2VudHJ5LnJlc3BvbnNlRW5kJiYoc3RhcnRBbmRFbmRTcGFuKHNwYW4scmVxdWVzdFN0YXJ0VGltZXN0YW1wLHJlc3BvbnNlRW5kVGltZXN0YW1wLHtvcDoiYnJvd3Nlci5yZXF1ZXN0IixuYW1lOmVudHJ5Lm5hbWUsYXR0cmlidXRlczp7W3NlbWFudGljQXR0cmlidXRlcy5TM106ImF1dG8udWkuYnJvd3Nlci5tZXRyaWNzIn19KSxzdGFydEFuZEVuZFNwYW4oc3BhbixyZXNwb25zZVN0YXJ0VGltZXN0YW1wLHJlc3BvbnNlRW5kVGltZXN0YW1wLHtvcDoiYnJvd3Nlci5yZXNwb25zZSIsbmFtZTplbnRyeS5uYW1lLGF0dHJpYnV0ZXM6e1tzZW1hbnRpY0F0dHJpYnV0ZXMuUzNdOiJhdXRvLnVpLmJyb3dzZXIubWV0cmljcyJ9fSkpfShzcGFuLGVudHJ5LHRpbWVPcmlnaW4pO2JyZWFrO2Nhc2UibWFyayI6Y2FzZSJwYWludCI6Y2FzZSJtZWFzdXJlIjp7KGZ1bmN0aW9uKHNwYW4sZW50cnksc3RhcnRUaW1lLGR1cmF0aW9uLHRpbWVPcmlnaW4saWdub3JlUGVyZm9ybWFuY2VBcGlTcGFucyl7aWYoZnVuY3Rpb24oZW50cnkpe2lmKGVudHJ5Py5lbnRyeVR5cGU9PT0ibWVhc3VyZSIpdHJ5e3JldHVybiJDb21wb25lbnRzIOKamyI9PT1lbnRyeS5kZXRhaWwuZGV2dG9vbHMudHJhY2t9Y2F0Y2h7cmV0dXJufX0oZW50cnkpfHxbIm1hcmsiLCJtZWFzdXJlIl0uaW5jbHVkZXMoZW50cnkuZW50cnlUeXBlKSYmKDAsc3RyaW5nLlUwKShlbnRyeS5uYW1lLGlnbm9yZVBlcmZvcm1hbmNlQXBpU3BhbnMpKXJldHVybjtsZXQgbmF2RW50cnk9Z2V0TmF2aWdhdGlvbkVudHJ5KCExKSxyZXF1ZXN0VGltZT1tc1RvU2VjKG5hdkVudHJ5P25hdkVudHJ5LnJlcXVlc3RTdGFydDowKSxtZWFzdXJlU3RhcnRUaW1lc3RhbXA9dGltZU9yaWdpbitNYXRoLm1heChzdGFydFRpbWUscmVxdWVzdFRpbWUpLHN0YXJ0VGltZVN0YW1wPXRpbWVPcmlnaW4rc3RhcnRUaW1lLG1lYXN1cmVFbmRUaW1lc3RhbXA9c3RhcnRUaW1lU3RhbXArZHVyYXRpb24sYXR0cmlidXRlcz17W3NlbWFudGljQXR0cmlidXRlcy5TM106ImF1dG8ucmVzb3VyY2UuYnJvd3Nlci5tZXRyaWNzIn07bWVhc3VyZVN0YXJ0VGltZXN0YW1wIT09c3RhcnRUaW1lU3RhbXAmJihhdHRyaWJ1dGVzWyJzZW50cnkuYnJvd3Nlci5tZWFzdXJlX2hhcHBlbmVkX2JlZm9yZV9yZXF1ZXN0Il09ITAsYXR0cmlidXRlc1sic2VudHJ5LmJyb3dzZXIubWVhc3VyZV9zdGFydF90aW1lIl09bWVhc3VyZVN0YXJ0VGltZXN0YW1wKSxmdW5jdGlvbihhdHRyaWJ1dGVzLHBlcmZvcm1hbmNlTWVhc3VyZSl7dHJ5e2xldCBkZXRhaWw9cGVyZm9ybWFuY2VNZWFzdXJlLmRldGFpbDtpZighZGV0YWlsKXJldHVybjtpZigib2JqZWN0Ij09dHlwZW9mIGRldGFpbCl7Zm9yKGxldFtrZXksdmFsdWVdb2YgT2JqZWN0LmVudHJpZXMoZGV0YWlsKSlpZih2YWx1ZSYmKDAsaXMucHQpKHZhbHVlKSlhdHRyaWJ1dGVzW2BzZW50cnkuYnJvd3Nlci5tZWFzdXJlLmRldGFpbC4ke2tleX1gXT12YWx1ZTtlbHNlIGlmKHZvaWQgMCE9PXZhbHVlKXRyeXthdHRyaWJ1dGVzW2BzZW50cnkuYnJvd3Nlci5tZWFzdXJlLmRldGFpbC4ke2tleX1gXT1KU09OLnN0cmluZ2lmeSh2YWx1ZSl9Y2F0Y2h7fXJldHVybn1pZigoMCxpcy5wdCkoZGV0YWlsKSl7YXR0cmlidXRlc1sic2VudHJ5LmJyb3dzZXIubWVhc3VyZS5kZXRhaWwiXT1kZXRhaWw7cmV0dXJufXRyeXthdHRyaWJ1dGVzWyJzZW50cnkuYnJvd3Nlci5tZWFzdXJlLmRldGFpbCJdPUpTT04uc3RyaW5naWZ5KGRldGFpbCl9Y2F0Y2h7fX1jYXRjaHt9fShhdHRyaWJ1dGVzLGVudHJ5KSxtZWFzdXJlU3RhcnRUaW1lc3RhbXA8PW1lYXN1cmVFbmRUaW1lc3RhbXAmJnN0YXJ0QW5kRW5kU3BhbihzcGFuLG1lYXN1cmVTdGFydFRpbWVzdGFtcCxtZWFzdXJlRW5kVGltZXN0YW1wLHtuYW1lOmVudHJ5Lm5hbWUsb3A6ZW50cnkuZW50cnlUeXBlLGF0dHJpYnV0ZXN9KX0pKHNwYW4sZW50cnksc3RhcnRUaW1lLGR1cmF0aW9uLHRpbWVPcmlnaW4sb3B0aW9ucy5pZ25vcmVQZXJmb3JtYW5jZUFwaVNwYW5zKTtsZXQgZmlyc3RIaWRkZW49Z2V0VmlzaWJpbGl0eVdhdGNoZXIoKSxzaG91bGRSZWNvcmQ9ZW50cnkuc3RhcnRUaW1lPGZpcnN0SGlkZGVuLmZpcnN0SGlkZGVuVGltZTsiZmlyc3QtcGFpbnQiPT09ZW50cnkubmFtZSYmc2hvdWxkUmVjb3JkJiYoX21lYXN1cmVtZW50cy5mcD17dmFsdWU6ZW50cnkuc3RhcnRUaW1lLHVuaXQ6Im1pbGxpc2Vjb25kIn0pLCJmaXJzdC1jb250ZW50ZnVsLXBhaW50Ij09PWVudHJ5Lm5hbWUmJnNob3VsZFJlY29yZCYmKF9tZWFzdXJlbWVudHMuZmNwPXt2YWx1ZTplbnRyeS5zdGFydFRpbWUsdW5pdDoibWlsbGlzZWNvbmQifSk7YnJlYWt9Y2FzZSJyZXNvdXJjZSI6KGZ1bmN0aW9uKHNwYW4sZW50cnkscmVzb3VyY2VVcmwsc3RhcnRUaW1lLGR1cmF0aW9uLHRpbWVPcmlnaW4saWdub3JlZFJlc291cmNlU3Bhbk9wcyl7aWYoInhtbGh0dHByZXF1ZXN0Ij09PWVudHJ5LmluaXRpYXRvclR5cGV8fCJmZXRjaCI9PT1lbnRyeS5pbml0aWF0b3JUeXBlKXJldHVybjtsZXQgb3A9ZW50cnkuaW5pdGlhdG9yVHlwZT9gcmVzb3VyY2UuJHtlbnRyeS5pbml0aWF0b3JUeXBlfWA6InJlc291cmNlLm90aGVyIjtpZihpZ25vcmVkUmVzb3VyY2VTcGFuT3BzPy5pbmNsdWRlcyhvcCkpcmV0dXJuO2xldCBhdHRyaWJ1dGVzPXtbc2VtYW50aWNBdHRyaWJ1dGVzLlMzXToiYXV0by5yZXNvdXJjZS5icm93c2VyLm1ldHJpY3MifSxwYXJzZWRVcmw9KDAsdXRpbHNfdXJsLmVuKShyZXNvdXJjZVVybCk7cGFyc2VkVXJsLnByb3RvY29sJiYoYXR0cmlidXRlc1sidXJsLnNjaGVtZSJdPXBhcnNlZFVybC5wcm90b2NvbC5zcGxpdCgiOiIpLnBvcCgpKSxwYXJzZWRVcmwuaG9zdCYmKGF0dHJpYnV0ZXNbInNlcnZlci5hZGRyZXNzIl09cGFyc2VkVXJsLmhvc3QpLGF0dHJpYnV0ZXNbInVybC5zYW1lX29yaWdpbiJdPXJlc291cmNlVXJsLmluY2x1ZGVzKHR5cGVzLm0ubG9jYXRpb24ub3JpZ2luKSxmdW5jdGlvbihlbnRyeSxhdHRyaWJ1dGVzLHByb3BlcnRpZXMpe3Byb3BlcnRpZXMuZm9yRWFjaCgoW2VudHJ5S2V5LGF0dHJpYnV0ZUtleV0pPT57bGV0IGVudHJ5VmFsPWVudHJ5W2VudHJ5S2V5XTtudWxsIT1lbnRyeVZhbCYmKCJudW1iZXIiPT10eXBlb2YgZW50cnlWYWwmJmVudHJ5VmFsPDIxNDc0ODM2NDd8fCJzdHJpbmciPT10eXBlb2YgZW50cnlWYWwpJiYoYXR0cmlidXRlc1thdHRyaWJ1dGVLZXldPWVudHJ5VmFsKX0pfShlbnRyeSxhdHRyaWJ1dGVzLFtbInJlc3BvbnNlU3RhdHVzIiwiaHR0cC5yZXNwb25zZS5zdGF0dXNfY29kZSJdLFsidHJhbnNmZXJTaXplIiwiaHR0cC5yZXNwb25zZV90cmFuc2Zlcl9zaXplIl0sWyJlbmNvZGVkQm9keVNpemUiLCJodHRwLnJlc3BvbnNlX2NvbnRlbnRfbGVuZ3RoIl0sWyJkZWNvZGVkQm9keVNpemUiLCJodHRwLmRlY29kZWRfcmVzcG9uc2VfY29udGVudF9sZW5ndGgiXSxbInJlbmRlckJsb2NraW5nU3RhdHVzIiwicmVzb3VyY2UucmVuZGVyX2Jsb2NraW5nX3N0YXR1cyJdLFsiZGVsaXZlcnlUeXBlIiwiaHR0cC5yZXNwb25zZV9kZWxpdmVyeV90eXBlIl1dKTtsZXQgYXR0cmlidXRlc1dpdGhSZXNvdXJjZVRpbWluZz17Li4uYXR0cmlidXRlcywuLi5yZXNvdXJjZVRpbWluZ1RvU3BhbkF0dHJpYnV0ZXMoZW50cnkpfSxzdGFydFRpbWVzdGFtcD10aW1lT3JpZ2luK3N0YXJ0VGltZTtzdGFydEFuZEVuZFNwYW4oc3BhbixzdGFydFRpbWVzdGFtcCxzdGFydFRpbWVzdGFtcCtkdXJhdGlvbix7bmFtZTpyZXNvdXJjZVVybC5yZXBsYWNlKHR5cGVzLm0ubG9jYXRpb24ub3JpZ2luLCIiKSxvcCxhdHRyaWJ1dGVzOmF0dHJpYnV0ZXNXaXRoUmVzb3VyY2VUaW1pbmd9KX0pKHNwYW4sZW50cnksZW50cnkubmFtZSxzdGFydFRpbWUsZHVyYXRpb24sdGltZU9yaWdpbixvcHRpb25zLmlnbm9yZVJlc291cmNlU3BhbnMpfX0pLF9wZXJmb3JtYW5jZUN1cnNvcj1NYXRoLm1heChwZXJmb3JtYW5jZUVudHJpZXMubGVuZ3RoLTEsMCksZnVuY3Rpb24oc3Bhbil7bGV0IG5hdmlnYXRvcj10eXBlcy5tLm5hdmlnYXRvcjtpZighbmF2aWdhdG9yKXJldHVybjtsZXQgY29ubmVjdGlvbj1uYXZpZ2F0b3IuY29ubmVjdGlvbjtjb25uZWN0aW9uJiYoY29ubmVjdGlvbi5lZmZlY3RpdmVUeXBlJiZzcGFuLnNldEF0dHJpYnV0ZSgiZWZmZWN0aXZlQ29ubmVjdGlvblR5cGUiLGNvbm5lY3Rpb24uZWZmZWN0aXZlVHlwZSksY29ubmVjdGlvbi50eXBlJiZzcGFuLnNldEF0dHJpYnV0ZSgiY29ubmVjdGlvblR5cGUiLGNvbm5lY3Rpb24udHlwZSksaXNNZWFzdXJlbWVudFZhbHVlKGNvbm5lY3Rpb24ucnR0KSYmKF9tZWFzdXJlbWVudHNbImNvbm5lY3Rpb24ucnR0Il09e3ZhbHVlOmNvbm5lY3Rpb24ucnR0LHVuaXQ6Im1pbGxpc2Vjb25kIn0pKSxpc01lYXN1cmVtZW50VmFsdWUobmF2aWdhdG9yLmRldmljZU1lbW9yeSkmJnNwYW4uc2V0QXR0cmlidXRlKCJkZXZpY2VNZW1vcnkiLGAke25hdmlnYXRvci5kZXZpY2VNZW1vcnl9IEdCYCksaXNNZWFzdXJlbWVudFZhbHVlKG5hdmlnYXRvci5oYXJkd2FyZUNvbmN1cnJlbmN5KSYmc3Bhbi5zZXRBdHRyaWJ1dGUoImhhcmR3YXJlQ29uY3VycmVuY3kiLFN0cmluZyhuYXZpZ2F0b3IuaGFyZHdhcmVDb25jdXJyZW5jeSkpfShzcGFuKSwicGFnZWxvYWQiPT09b3AmJihmdW5jdGlvbihfbWVhc3VyZW1lbnRzKXtsZXQgbmF2RW50cnk9Z2V0TmF2aWdhdGlvbkVudHJ5KCExKTtpZighbmF2RW50cnkpcmV0dXJuO2xldHtyZXNwb25zZVN0YXJ0LHJlcXVlc3RTdGFydH09bmF2RW50cnk7cmVxdWVzdFN0YXJ0PD1yZXNwb25zZVN0YXJ0JiYoX21lYXN1cmVtZW50c1sidHRmYi5yZXF1ZXN0VGltZSJdPXt2YWx1ZTpyZXNwb25zZVN0YXJ0LXJlcXVlc3RTdGFydCx1bml0OiJtaWxsaXNlY29uZCJ9KX0oX21lYXN1cmVtZW50cyksb3B0aW9ucy5yZWNvcmRDbHNPblBhZ2Vsb2FkU3Bhbnx8ZGVsZXRlIF9tZWFzdXJlbWVudHMuY2xzLG9wdGlvbnMucmVjb3JkTGNwT25QYWdlbG9hZFNwYW58fGRlbGV0ZSBfbWVhc3VyZW1lbnRzLmxjcCxPYmplY3QuZW50cmllcyhfbWVhc3VyZW1lbnRzKS5mb3JFYWNoKChbbWVhc3VyZW1lbnROYW1lLG1lYXN1cmVtZW50XSk9PnshZnVuY3Rpb24obmFtZSx2YWx1ZSx1bml0LGFjdGl2ZVNwYW49KDAsc3BhblV0aWxzLkhOKSgpKXtsZXQgcm9vdFNwYW49YWN0aXZlU3BhbiYmKDAsc3BhblV0aWxzLkd4KShhY3RpdmVTcGFuKTtyb290U3BhbiYmKGRlYnVnX2J1aWxkLlgmJmRlYnVnX2xvZ2dlci5mRi5sb2coYFtNZWFzdXJlbWVudF0gU2V0dGluZyBtZWFzdXJlbWVudCBvbiByb290IHNwYW46ICR7bmFtZX0gPSAke3ZhbHVlfSAke3VuaXR9YCkscm9vdFNwYW4uYWRkRXZlbnQobmFtZSx7W3NlbWFudGljQXR0cmlidXRlcy5XYl06dmFsdWUsW3NlbWFudGljQXR0cmlidXRlcy5FMV06dW5pdH0pKX0obWVhc3VyZW1lbnROYW1lLG1lYXN1cmVtZW50LnZhbHVlLG1lYXN1cmVtZW50LnVuaXQpfSksc3Bhbi5zZXRBdHRyaWJ1dGUoInBlcmZvcm1hbmNlLnRpbWVPcmlnaW4iLHRpbWVPcmlnaW4pLHNwYW4uc2V0QXR0cmlidXRlKCJwZXJmb3JtYW5jZS5hY3RpdmF0aW9uU3RhcnQiLGdldEFjdGl2YXRpb25TdGFydCgpKSxfbGNwRW50cnkmJm9wdGlvbnMucmVjb3JkTGNwT25QYWdlbG9hZFNwYW4mJihfbGNwRW50cnkuZWxlbWVudCYmc3Bhbi5zZXRBdHRyaWJ1dGUoImxjcC5lbGVtZW50IiwoMCxicm93c2VyLlJ0KShfbGNwRW50cnkuZWxlbWVudCkpLF9sY3BFbnRyeS5pZCYmc3Bhbi5zZXRBdHRyaWJ1dGUoImxjcC5pZCIsX2xjcEVudHJ5LmlkKSxfbGNwRW50cnkudXJsJiZzcGFuLnNldEF0dHJpYnV0ZSgibGNwLnVybCIsX2xjcEVudHJ5LnVybC50cmltKCkuc2xpY2UoMCwyMDApKSxudWxsIT1fbGNwRW50cnkubG9hZFRpbWUmJnNwYW4uc2V0QXR0cmlidXRlKCJsY3AubG9hZFRpbWUiLF9sY3BFbnRyeS5sb2FkVGltZSksbnVsbCE9X2xjcEVudHJ5LnJlbmRlclRpbWUmJnNwYW4uc2V0QXR0cmlidXRlKCJsY3AucmVuZGVyVGltZSIsX2xjcEVudHJ5LnJlbmRlclRpbWUpLHNwYW4uc2V0QXR0cmlidXRlKCJsY3Auc2l6ZSIsX2xjcEVudHJ5LnNpemUpKSxfY2xzRW50cnk/LnNvdXJjZXMmJm9wdGlvbnMucmVjb3JkQ2xzT25QYWdlbG9hZFNwYW4mJl9jbHNFbnRyeS5zb3VyY2VzLmZvckVhY2goKHNvdXJjZSxpbmRleCk9PnNwYW4uc2V0QXR0cmlidXRlKGBjbHMuc291cmNlLiR7aW5kZXgrMX1gLCgwLGJyb3dzZXIuUnQpKHNvdXJjZS5ub2RlKSkpKSxfbGNwRW50cnk9dm9pZCAwLF9jbHNFbnRyeT12b2lkIDAsX21lYXN1cmVtZW50cz17fX0oc3Bhbix7cmVjb3JkQ2xzT25QYWdlbG9hZFNwYW46IWVuYWJsZVN0YW5kYWxvbmVDbHNTcGFucyxyZWNvcmRMY3BPblBhZ2Vsb2FkU3BhbjohZW5hYmxlU3RhbmRhbG9uZUxjcFNwYW5zLGlnbm9yZVJlc291cmNlU3BhbnMsaWdub3JlUGVyZm9ybWFuY2VBcGlTcGFuc30pLCgwLG9iamVjdC54cCkoY2xpZW50LEFDVElWRV9JRExFX1NQQU5fUFJPUEVSVFksdm9pZCAwKTtsZXQgc2NvcGU9KDAsY3VycmVudFNjb3Blcy5uWikoKSxvbGRQcm9wYWdhdGlvbkNvbnRleHQ9c2NvcGUuZ2V0UHJvcGFnYXRpb25Db250ZXh0KCk7c2NvcGUuc2V0UHJvcGFnYXRpb25Db250ZXh0KHsuLi5vbGRQcm9wYWdhdGlvbkNvbnRleHQsdHJhY2VJZDppZGxlU3Bhbi5zcGFuQ29udGV4dCgpLnRyYWNlSWQsc2FtcGxlZDooMCxzcGFuVXRpbHMuVHQpKGlkbGVTcGFuKSxkc2M6KDAsZHluYW1pY1NhbXBsaW5nQ29udGV4dC5qQykoc3Bhbil9KSxpc1BhZ2Vsb2FkU3BhbiYmKF9wYWdlbG9hZFNwYW49dm9pZCAwKX0sdHJpbUlkbGVTcGFuRW5kVGltZXN0YW1wOiFlbmFibGVSZXBvcnRQYWdlTG9hZGVkfSk7ZnVuY3Rpb24gZW1pdEZpbmlzaCgpe29wdGlvbmFsV2luZG93RG9jdW1lbnQmJlsiaW50ZXJhY3RpdmUiLCJjb21wbGV0ZSJdLmluY2x1ZGVzKG9wdGlvbmFsV2luZG93RG9jdW1lbnQucmVhZHlTdGF0ZSkmJmNsaWVudC5lbWl0KCJpZGxlU3BhbkVuYWJsZUF1dG9GaW5pc2giLGlkbGVTcGFuKX1pc1BhZ2Vsb2FkU3BhbiYmZW5hYmxlUmVwb3J0UGFnZUxvYWRlZCYmKF9wYWdlbG9hZFNwYW49aWRsZVNwYW4pLCgwLG9iamVjdC54cCkoY2xpZW50LEFDVElWRV9JRExFX1NQQU5fUFJPUEVSVFksaWRsZVNwYW4pLGlzUGFnZWxvYWRTcGFuJiYhZW5hYmxlUmVwb3J0UGFnZUxvYWRlZCYmb3B0aW9uYWxXaW5kb3dEb2N1bWVudCYmKG9wdGlvbmFsV2luZG93RG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsKCk9PntlbWl0RmluaXNoKCl9KSxlbWl0RmluaXNoKCkpfXJldHVybntuYW1lOiJCcm93c2VyVHJhY2luZyIsc2V0dXAoY2xpZW50KXtpZighZnVuY3Rpb24oKXtlcnJvcnNJbnN0cnVtZW50ZWR8fChlcnJvckNhbGxiYWNrLnRhZz0ic2VudHJ5X3RyYWNpbmdFcnJvckNhbGxiYWNrIixlcnJvcnNJbnN0cnVtZW50ZWQ9ITAsKDAsZ2xvYmFsRXJyb3IuVikoZXJyb3JDYWxsYmFjayksKDAsZ2xvYmFsVW5oYW5kbGVkUmVqZWN0aW9uLmgpKGVycm9yQ2FsbGJhY2spKTtmdW5jdGlvbiBlcnJvckNhbGxiYWNrKCl7bGV0IGFjdGl2ZVNwYW49KDAsc3BhblV0aWxzLkhOKSgpLHJvb3RTcGFuPWFjdGl2ZVNwYW4mJigwLHNwYW5VdGlscy5HeCkoYWN0aXZlU3Bhbik7aWYocm9vdFNwYW4pe2xldCBtZXNzYWdlPSJpbnRlcm5hbF9lcnJvciI7ZGVidWdfYnVpbGQuWCYmZGVidWdfbG9nZ2VyLmZGLmxvZyhgW1RyYWNpbmddIFJvb3Qgc3BhbjogJHttZXNzYWdlfSAtPiBHbG9iYWwgZXJyb3Igb2NjdXJyZWRgKSxyb290U3Bhbi5zZXRTdGF0dXMoe2NvZGU6c3BhbnN0YXR1cy5qdCxtZXNzYWdlfSl9fX0oKSxfY29sbGVjdFdlYlZpdGFscz1mdW5jdGlvbih7cmVjb3JkQ2xzU3RhbmRhbG9uZVNwYW5zLHJlY29yZExjcFN0YW5kYWxvbmVTcGFucyxjbGllbnR9KXtsZXQgcGVyZm9ybWFuY2UxPWdldEJyb3dzZXJQZXJmb3JtYW5jZUFQSSgpO2lmKHBlcmZvcm1hbmNlMSYmKDAsdXRpbHNfdGltZS5aMSkoKSl7cGVyZm9ybWFuY2UxLm1hcmsmJnR5cGVzLm0ucGVyZm9ybWFuY2UubWFyaygic2VudHJ5LXRyYWNpbmctaW5pdCIpO2xldCBsY3BDbGVhbnVwQ2FsbGJhY2s9cmVjb3JkTGNwU3RhbmRhbG9uZVNwYW5zP2Z1bmN0aW9uKGNsaWVudCl7bGV0IHN0YW5kYWxvbmVMY3BFbnRyeSxzdGFuZGFsb25lTGNwVmFsdWU9MDtpZighc3VwcG9ydHNXZWJWaXRhbCgibGFyZ2VzdC1jb250ZW50ZnVsLXBhaW50IikpcmV0dXJuO2xldCBjbGVhbnVwTGNwSGFuZGxlcj1hZGRMY3BJbnN0cnVtZW50YXRpb25IYW5kbGVyKCh7bWV0cmljfSk9PntsZXQgZW50cnk9bWV0cmljLmVudHJpZXNbbWV0cmljLmVudHJpZXMubGVuZ3RoLTFdO2VudHJ5JiYoc3RhbmRhbG9uZUxjcFZhbHVlPW1ldHJpYy52YWx1ZSxzdGFuZGFsb25lTGNwRW50cnk9ZW50cnkpfSwhMCk7bGlzdGVuRm9yV2ViVml0YWxSZXBvcnRFdmVudHMoY2xpZW50LChyZXBvcnRFdmVudCxwYWdlbG9hZFNwYW5JZCk9PnsoZnVuY3Rpb24obGNwVmFsdWUsZW50cnkscGFnZWxvYWRTcGFuSWQscmVwb3J0RXZlbnQpe2VzbV9kZWJ1Z19idWlsZC5YJiZkZWJ1Z19sb2dnZXIuZkYubG9nKGBTZW5kaW5nIExDUCBzcGFuICgke2xjcFZhbHVlfSlgKTtsZXQgc3RhcnRUaW1lPW1zVG9TZWMoKCgwLHV0aWxzX3RpbWUuWjEpKCl8fDApKyhlbnRyeT8uc3RhcnRUaW1lfHwwKSkscm91dGVOYW1lPSgwLGN1cnJlbnRTY29wZXMublopKCkuZ2V0U2NvcGVEYXRhKCkudHJhbnNhY3Rpb25OYW1lLG5hbWU9ZW50cnk/KDAsYnJvd3Nlci5SdCkoZW50cnkuZWxlbWVudCk6Ikxhcmdlc3QgY29udGVudGZ1bCBwYWludCIsYXR0cmlidXRlcz17W3NlbWFudGljQXR0cmlidXRlcy5TM106ImF1dG8uaHR0cC5icm93c2VyLmxjcCIsW3NlbWFudGljQXR0cmlidXRlcy4kSl06InVpLndlYnZpdGFsLmxjcCIsW3NlbWFudGljQXR0cmlidXRlcy5KUV06MCwic2VudHJ5LnBhZ2Vsb2FkLnNwYW5faWQiOnBhZ2Vsb2FkU3BhbklkLCJzZW50cnkucmVwb3J0X2V2ZW50IjpyZXBvcnRFdmVudH07ZW50cnkmJihlbnRyeS5lbGVtZW50JiYoYXR0cmlidXRlc1sibGNwLmVsZW1lbnQiXT0oMCxicm93c2VyLlJ0KShlbnRyeS5lbGVtZW50KSksZW50cnkuaWQmJihhdHRyaWJ1dGVzWyJsY3AuaWQiXT1lbnRyeS5pZCksZW50cnkudXJsJiYoYXR0cmlidXRlc1sibGNwLnVybCJdPWVudHJ5LnVybCksbnVsbCE9ZW50cnkubG9hZFRpbWUmJihhdHRyaWJ1dGVzWyJsY3AubG9hZFRpbWUiXT1lbnRyeS5sb2FkVGltZSksbnVsbCE9ZW50cnkucmVuZGVyVGltZSYmKGF0dHJpYnV0ZXNbImxjcC5yZW5kZXJUaW1lIl09ZW50cnkucmVuZGVyVGltZSksbnVsbCE9ZW50cnkuc2l6ZSYmKGF0dHJpYnV0ZXNbImxjcC5zaXplIl09ZW50cnkuc2l6ZSkpO2xldCBzcGFuPXN0YXJ0U3RhbmRhbG9uZVdlYlZpdGFsU3Bhbih7bmFtZSx0cmFuc2FjdGlvbjpyb3V0ZU5hbWUsYXR0cmlidXRlcyxzdGFydFRpbWV9KTtzcGFuJiYoc3Bhbi5hZGRFdmVudCgibGNwIix7W3NlbWFudGljQXR0cmlidXRlcy5FMV06Im1pbGxpc2Vjb25kIixbc2VtYW50aWNBdHRyaWJ1dGVzLldiXTpsY3BWYWx1ZX0pLHNwYW4uZW5kKHN0YXJ0VGltZSkpfSkoc3RhbmRhbG9uZUxjcFZhbHVlLHN0YW5kYWxvbmVMY3BFbnRyeSxwYWdlbG9hZFNwYW5JZCxyZXBvcnRFdmVudCksY2xlYW51cExjcEhhbmRsZXIoKX0pfShjbGllbnQpOmFkZExjcEluc3RydW1lbnRhdGlvbkhhbmRsZXIoKHttZXRyaWN9KT0+e2xldCBlbnRyeT1tZXRyaWMuZW50cmllc1ttZXRyaWMuZW50cmllcy5sZW5ndGgtMV07ZW50cnkmJihfbWVhc3VyZW1lbnRzLmxjcD17dmFsdWU6bWV0cmljLnZhbHVlLHVuaXQ6Im1pbGxpc2Vjb25kIn0sX2xjcEVudHJ5PWVudHJ5KX0sITApLHR0ZmJDbGVhbnVwQ2FsbGJhY2s9YWRkTWV0cmljT2JzZXJ2ZXIoInR0ZmIiLCh7bWV0cmljfSk9PntsZXQgZW50cnk9bWV0cmljLmVudHJpZXNbbWV0cmljLmVudHJpZXMubGVuZ3RoLTFdO2VudHJ5JiYoX21lYXN1cmVtZW50cy50dGZiPXt2YWx1ZTptZXRyaWMudmFsdWUsdW5pdDoibWlsbGlzZWNvbmQifSl9LGluc3RydW1lbnRUdGZiLF9wcmV2aW91c1R0ZmIpLGNsc0NsZWFudXBDYWxsYmFjaz1yZWNvcmRDbHNTdGFuZGFsb25lU3BhbnM/ZnVuY3Rpb24oY2xpZW50KXtsZXQgc3RhbmRhbG9uZUNsc0VudHJ5LHN0YW5kYWxvbmVDTHNWYWx1ZT0wO2lmKCFzdXBwb3J0c1dlYlZpdGFsKCJsYXlvdXQtc2hpZnQiKSlyZXR1cm47bGV0IGNsZWFudXBDbHNIYW5kbGVyPWFkZENsc0luc3RydW1lbnRhdGlvbkhhbmRsZXIoKHttZXRyaWN9KT0+e2xldCBlbnRyeT1tZXRyaWMuZW50cmllc1ttZXRyaWMuZW50cmllcy5sZW5ndGgtMV07ZW50cnkmJihzdGFuZGFsb25lQ0xzVmFsdWU9bWV0cmljLnZhbHVlLHN0YW5kYWxvbmVDbHNFbnRyeT1lbnRyeSl9LCEwKTtsaXN0ZW5Gb3JXZWJWaXRhbFJlcG9ydEV2ZW50cyhjbGllbnQsKHJlcG9ydEV2ZW50LHBhZ2Vsb2FkU3BhbklkKT0+eyhmdW5jdGlvbihjbHNWYWx1ZSxlbnRyeSxwYWdlbG9hZFNwYW5JZCxyZXBvcnRFdmVudCl7ZXNtX2RlYnVnX2J1aWxkLlgmJmRlYnVnX2xvZ2dlci5mRi5sb2coYFNlbmRpbmcgQ0xTIHNwYW4gKCR7Y2xzVmFsdWV9KWApO2xldCBzdGFydFRpbWU9ZW50cnk/bXNUb1NlYygoKDAsdXRpbHNfdGltZS5aMSkoKXx8MCkrZW50cnkuc3RhcnRUaW1lKTooMCx1dGlsc190aW1lLnBoKSgpLHJvdXRlTmFtZT0oMCxjdXJyZW50U2NvcGVzLm5aKSgpLmdldFNjb3BlRGF0YSgpLnRyYW5zYWN0aW9uTmFtZSxuYW1lPWVudHJ5PygwLGJyb3dzZXIuUnQpKGVudHJ5LnNvdXJjZXNbMF0/Lm5vZGUpOiJMYXlvdXQgc2hpZnQiLGF0dHJpYnV0ZXM9e1tzZW1hbnRpY0F0dHJpYnV0ZXMuUzNdOiJhdXRvLmh0dHAuYnJvd3Nlci5jbHMiLFtzZW1hbnRpY0F0dHJpYnV0ZXMuJEpdOiJ1aS53ZWJ2aXRhbC5jbHMiLFtzZW1hbnRpY0F0dHJpYnV0ZXMuSlFdOjAsInNlbnRyeS5wYWdlbG9hZC5zcGFuX2lkIjpwYWdlbG9hZFNwYW5JZCwic2VudHJ5LnJlcG9ydF9ldmVudCI6cmVwb3J0RXZlbnR9O2VudHJ5Py5zb3VyY2VzJiZlbnRyeS5zb3VyY2VzLmZvckVhY2goKHNvdXJjZSxpbmRleCk9PnthdHRyaWJ1dGVzW2BjbHMuc291cmNlLiR7aW5kZXgrMX1gXT0oMCxicm93c2VyLlJ0KShzb3VyY2Uubm9kZSl9KTtsZXQgc3Bhbj1zdGFydFN0YW5kYWxvbmVXZWJWaXRhbFNwYW4oe25hbWUsdHJhbnNhY3Rpb246cm91dGVOYW1lLGF0dHJpYnV0ZXMsc3RhcnRUaW1lfSk7c3BhbiYmKHNwYW4uYWRkRXZlbnQoImNscyIse1tzZW1hbnRpY0F0dHJpYnV0ZXMuRTFdOiIiLFtzZW1hbnRpY0F0dHJpYnV0ZXMuV2JdOmNsc1ZhbHVlfSksc3Bhbi5lbmQoc3RhcnRUaW1lKSl9KShzdGFuZGFsb25lQ0xzVmFsdWUsc3RhbmRhbG9uZUNsc0VudHJ5LHBhZ2Vsb2FkU3BhbklkLHJlcG9ydEV2ZW50KSxjbGVhbnVwQ2xzSGFuZGxlcigpfSl9KGNsaWVudCk6YWRkQ2xzSW5zdHJ1bWVudGF0aW9uSGFuZGxlcigoe21ldHJpY30pPT57bGV0IGVudHJ5PW1ldHJpYy5lbnRyaWVzW21ldHJpYy5lbnRyaWVzLmxlbmd0aC0xXTtlbnRyeSYmKF9tZWFzdXJlbWVudHMuY2xzPXt2YWx1ZTptZXRyaWMudmFsdWUsdW5pdDoiIn0sX2Nsc0VudHJ5PWVudHJ5KX0sITApO3JldHVybigpPT57bGNwQ2xlYW51cENhbGxiYWNrPy4oKSx0dGZiQ2xlYW51cENhbGxiYWNrKCksY2xzQ2xlYW51cENhbGxiYWNrPy4oKX19cmV0dXJuKCk9PnZvaWQgMH0oe3JlY29yZENsc1N0YW5kYWxvbmVTcGFuczplbmFibGVTdGFuZGFsb25lQ2xzU3BhbnN8fCExLHJlY29yZExjcFN0YW5kYWxvbmVTcGFuczplbmFibGVTdGFuZGFsb25lTGNwU3BhbnN8fCExLGNsaWVudH0pLGVuYWJsZUlucCYmZnVuY3Rpb24oKXtsZXQgcGVyZm9ybWFuY2UxPWdldEJyb3dzZXJQZXJmb3JtYW5jZUFQSSgpO2lmKHBlcmZvcm1hbmNlMSYmKDAsdXRpbHNfdGltZS5aMSkoKSl7bGV0IGlucENhbGxiYWNrPWFkZE1ldHJpY09ic2VydmVyKCJpbnAiLF9vbklucCxpbnN0cnVtZW50SW5wLF9wcmV2aW91c0lucCl9fSgpLGVuYWJsZUVsZW1lbnRUaW1pbmcmJmZ1bmN0aW9uKCl7bGV0IHBlcmZvcm1hbmNlMT1nZXRCcm93c2VyUGVyZm9ybWFuY2VBUEkoKTtwZXJmb3JtYW5jZTEmJigwLHV0aWxzX3RpbWUuWjEpKCkmJmFkZFBlcmZvcm1hbmNlSW5zdHJ1bWVudGF0aW9uSGFuZGxlcigiZWxlbWVudCIsX29uRWxlbWVudFRpbWluZyl9KCksZW5hYmxlTG9uZ0FuaW1hdGlvbkZyYW1lJiZ3b3JsZHdpZGUubi5QZXJmb3JtYW5jZU9ic2VydmVyJiZQZXJmb3JtYW5jZU9ic2VydmVyLnN1cHBvcnRlZEVudHJ5VHlwZXMmJlBlcmZvcm1hbmNlT2JzZXJ2ZXIuc3VwcG9ydGVkRW50cnlUeXBlcy5pbmNsdWRlcygibG9uZy1hbmltYXRpb24tZnJhbWUiKT9mdW5jdGlvbigpe2xldCBvYnNlcnZlcj1uZXcgUGVyZm9ybWFuY2VPYnNlcnZlcihsaXN0PT57bGV0IHBhcmVudD0oMCxzcGFuVXRpbHMuSE4pKCk7aWYocGFyZW50KWZvcihsZXQgZW50cnkgb2YgbGlzdC5nZXRFbnRyaWVzKCkpe2lmKCFlbnRyeS5zY3JpcHRzWzBdKWNvbnRpbnVlO2xldCBzdGFydFRpbWU9bXNUb1NlYygoMCx1dGlsc190aW1lLloxKSgpK2VudHJ5LnN0YXJ0VGltZSkse3N0YXJ0X3RpbWVzdGFtcDpwYXJlbnRTdGFydFRpbWVzdGFtcCxvcDpwYXJlbnRPcH09KDAsc3BhblV0aWxzLlhVKShwYXJlbnQpO2lmKCJuYXZpZ2F0aW9uIj09PXBhcmVudE9wJiZwYXJlbnRTdGFydFRpbWVzdGFtcCYmc3RhcnRUaW1lPHBhcmVudFN0YXJ0VGltZXN0YW1wKWNvbnRpbnVlO2xldCBkdXJhdGlvbj1tc1RvU2VjKGVudHJ5LmR1cmF0aW9uKSxhdHRyaWJ1dGVzPXtbc2VtYW50aWNBdHRyaWJ1dGVzLlMzXToiYXV0by51aS5icm93c2VyLm1ldHJpY3MifSxpbml0aWFsU2NyaXB0PWVudHJ5LnNjcmlwdHNbMF0se2ludm9rZXIsaW52b2tlclR5cGUsc291cmNlVVJMLHNvdXJjZUZ1bmN0aW9uTmFtZSxzb3VyY2VDaGFyUG9zaXRpb259PWluaXRpYWxTY3JpcHQ7YXR0cmlidXRlc1siYnJvd3Nlci5zY3JpcHQuaW52b2tlciJdPWludm9rZXIsYXR0cmlidXRlc1siYnJvd3Nlci5zY3JpcHQuaW52b2tlcl90eXBlIl09aW52b2tlclR5cGUsc291cmNlVVJMJiYoYXR0cmlidXRlc1siY29kZS5maWxlcGF0aCJdPXNvdXJjZVVSTCksc291cmNlRnVuY3Rpb25OYW1lJiYoYXR0cmlidXRlc1siY29kZS5mdW5jdGlvbiJdPXNvdXJjZUZ1bmN0aW9uTmFtZSksLTEhPT1zb3VyY2VDaGFyUG9zaXRpb24mJihhdHRyaWJ1dGVzWyJicm93c2VyLnNjcmlwdC5zb3VyY2VfY2hhcl9wb3NpdGlvbiJdPXNvdXJjZUNoYXJQb3NpdGlvbiksc3RhcnRBbmRFbmRTcGFuKHBhcmVudCxzdGFydFRpbWUsc3RhcnRUaW1lK2R1cmF0aW9uLHtuYW1lOiJNYWluIFVJIHRocmVhZCBibG9ja2VkIixvcDoidWkubG9uZy1hbmltYXRpb24tZnJhbWUiLGF0dHJpYnV0ZXN9KX19KTtvYnNlcnZlci5vYnNlcnZlKHt0eXBlOiJsb25nLWFuaW1hdGlvbi1mcmFtZSIsYnVmZmVyZWQ6ITB9KX0oKTplbmFibGVMb25nVGFzayYmYWRkUGVyZm9ybWFuY2VJbnN0cnVtZW50YXRpb25IYW5kbGVyKCJsb25ndGFzayIsKHtlbnRyaWVzfSk9PntsZXQgcGFyZW50PSgwLHNwYW5VdGlscy5ITikoKTtpZighcGFyZW50KXJldHVybjtsZXR7b3A6cGFyZW50T3Asc3RhcnRfdGltZXN0YW1wOnBhcmVudFN0YXJ0VGltZXN0YW1wfT0oMCxzcGFuVXRpbHMuWFUpKHBhcmVudCk7Zm9yKGxldCBlbnRyeSBvZiBlbnRyaWVzKXtsZXQgc3RhcnRUaW1lPW1zVG9TZWMoKDAsdXRpbHNfdGltZS5aMSkoKStlbnRyeS5zdGFydFRpbWUpLGR1cmF0aW9uPW1zVG9TZWMoZW50cnkuZHVyYXRpb24pOyJuYXZpZ2F0aW9uIj09PXBhcmVudE9wJiZwYXJlbnRTdGFydFRpbWVzdGFtcCYmc3RhcnRUaW1lPHBhcmVudFN0YXJ0VGltZXN0YW1wfHxzdGFydEFuZEVuZFNwYW4ocGFyZW50LHN0YXJ0VGltZSxzdGFydFRpbWUrZHVyYXRpb24se25hbWU6Ik1haW4gVUkgdGhyZWFkIGJsb2NrZWQiLG9wOiJ1aS5sb25nLXRhc2siLGF0dHJpYnV0ZXM6e1tzZW1hbnRpY0F0dHJpYnV0ZXMuUzNdOiJhdXRvLnVpLmJyb3dzZXIubWV0cmljcyJ9fSl9fSksZW5hYmxlSW50ZXJhY3Rpb25zJiZhZGRQZXJmb3JtYW5jZUluc3RydW1lbnRhdGlvbkhhbmRsZXIoImV2ZW50Iiwoe2VudHJpZXN9KT0+e2xldCBwYXJlbnQ9KDAsc3BhblV0aWxzLkhOKSgpO2lmKHBhcmVudCl7Zm9yKGxldCBlbnRyeSBvZiBlbnRyaWVzKWlmKCJjbGljayI9PT1lbnRyeS5uYW1lKXtsZXQgc3RhcnRUaW1lPW1zVG9TZWMoKDAsdXRpbHNfdGltZS5aMSkoKStlbnRyeS5zdGFydFRpbWUpLGR1cmF0aW9uPW1zVG9TZWMoZW50cnkuZHVyYXRpb24pLHNwYW5PcHRpb25zPXtuYW1lOigwLGJyb3dzZXIuUnQpKGVudHJ5LnRhcmdldCksb3A6YHVpLmludGVyYWN0aW9uLiR7ZW50cnkubmFtZX1gLHN0YXJ0VGltZTpzdGFydFRpbWUsYXR0cmlidXRlczp7W3NlbWFudGljQXR0cmlidXRlcy5TM106ImF1dG8udWkuYnJvd3Nlci5tZXRyaWNzIn19LGNvbXBvbmVudE5hbWU9KDAsYnJvd3Nlci5pWSkoZW50cnkudGFyZ2V0KTtjb21wb25lbnROYW1lJiYoc3Bhbk9wdGlvbnMuYXR0cmlidXRlc1sidWkuY29tcG9uZW50X25hbWUiXT1jb21wb25lbnROYW1lKSxzdGFydEFuZEVuZFNwYW4ocGFyZW50LHN0YXJ0VGltZSxzdGFydFRpbWUrZHVyYXRpb24sc3Bhbk9wdGlvbnMpfX19KSxkZXRlY3RSZWRpcmVjdHMmJm9wdGlvbmFsV2luZG93RG9jdW1lbnQpe2xldCBpbnRlcmFjdGlvbkhhbmRsZXI9KCk9PntsYXN0SW50ZXJhY3Rpb25UaW1lc3RhbXA9KDAsdXRpbHNfdGltZS5waCkoKX07YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGludGVyYWN0aW9uSGFuZGxlcix7Y2FwdHVyZTohMH0pLGFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGludGVyYWN0aW9uSGFuZGxlcix7Y2FwdHVyZTohMCxwYXNzaXZlOiEwfSl9ZnVuY3Rpb24gbWF5YmVFbmRBY3RpdmVTcGFuKCl7bGV0IGFjdGl2ZVNwYW49Y2xpZW50W0FDVElWRV9JRExFX1NQQU5fUFJPUEVSVFldO2FjdGl2ZVNwYW4mJiEoMCxzcGFuVXRpbHMuWFUpKGFjdGl2ZVNwYW4pLnRpbWVzdGFtcCYmKHByb2RfZGVidWdfYnVpbGQuWCYmZGVidWdfbG9nZ2VyLmZGLmxvZyhgW1RyYWNpbmddIEZpbmlzaGluZyBjdXJyZW50IGFjdGl2ZSBzcGFuIHdpdGggb3A6ICR7KDAsc3BhblV0aWxzLlhVKShhY3RpdmVTcGFuKS5vcH1gKSxhY3RpdmVTcGFuLnNldEF0dHJpYnV0ZShzZW1hbnRpY0F0dHJpYnV0ZXMuanUsImNhbmNlbGxlZCIpLGFjdGl2ZVNwYW4uZW5kKCkpfWNsaWVudC5vbigic3RhcnROYXZpZ2F0aW9uU3BhbiIsKHN0YXJ0U3Bhbk9wdGlvbnMsbmF2aWdhdGlvbk9wdGlvbnMpPT57aWYoKDAsY3VycmVudFNjb3Blcy5zMykoKSE9PWNsaWVudClyZXR1cm47aWYobmF2aWdhdGlvbk9wdGlvbnM/LmlzUmVkaXJlY3Qpe3Byb2RfZGVidWdfYnVpbGQuWCYmZGVidWdfbG9nZ2VyLmZGLndhcm4oIltUcmFjaW5nXSBEZXRlY3RlZCByZWRpcmVjdCwgbmF2aWdhdGlvbiBzcGFuIHdpbGwgbm90IGJlIHRoZSByb290IHNwYW4sIGJ1dCBhIGNoaWxkIHNwYW4uIiksX2NyZWF0ZVJvdXRlU3BhbihjbGllbnQse29wOiJuYXZpZ2F0aW9uLnJlZGlyZWN0IiwuLi5zdGFydFNwYW5PcHRpb25zfSwhMSk7cmV0dXJufWxhc3RJbnRlcmFjdGlvblRpbWVzdGFtcD12b2lkIDAsbWF5YmVFbmRBY3RpdmVTcGFuKCksKDAsY3VycmVudFNjb3Blcy5hRikoKS5zZXRQcm9wYWdhdGlvbkNvbnRleHQoe3RyYWNlSWQ6KDAsdXRpbHNfcHJvcGFnYXRpb25Db250ZXh0LkgpKCksc2FtcGxlUmFuZDpNYXRoLnJhbmRvbSgpLHByb3BhZ2F0aW9uU3BhbklkOigwLGhhc1NwYW5zRW5hYmxlZC5mKSgpP3ZvaWQgMDooMCx1dGlsc19wcm9wYWdhdGlvbkNvbnRleHQuTSkoKX0pO2xldCBzY29wZT0oMCxjdXJyZW50U2NvcGVzLm5aKSgpO3Njb3BlLnNldFByb3BhZ2F0aW9uQ29udGV4dCh7dHJhY2VJZDooMCx1dGlsc19wcm9wYWdhdGlvbkNvbnRleHQuSCkoKSxzYW1wbGVSYW5kOk1hdGgucmFuZG9tKCkscHJvcGFnYXRpb25TcGFuSWQ6KDAsaGFzU3BhbnNFbmFibGVkLmYpKCk/dm9pZCAwOigwLHV0aWxzX3Byb3BhZ2F0aW9uQ29udGV4dC5NKSgpfSksc2NvcGUuc2V0U0RLUHJvY2Vzc2luZ01ldGFkYXRhKHtub3JtYWxpemVkUmVxdWVzdDp2b2lkIDB9KSxfY3JlYXRlUm91dGVTcGFuKGNsaWVudCx7b3A6Im5hdmlnYXRpb24iLC4uLnN0YXJ0U3Bhbk9wdGlvbnMscGFyZW50U3BhbjpudWxsLGZvcmNlVHJhbnNhY3Rpb246ITB9KX0pLGNsaWVudC5vbigic3RhcnRQYWdlTG9hZFNwYW4iLChzdGFydFNwYW5PcHRpb25zLHRyYWNlT3B0aW9ucz17fSk9PntpZigoMCxjdXJyZW50U2NvcGVzLnMzKSgpIT09Y2xpZW50KXJldHVybjttYXliZUVuZEFjdGl2ZVNwYW4oKTtsZXQgc2VudHJ5VHJhY2U9dHJhY2VPcHRpb25zLnNlbnRyeVRyYWNlfHxnZXRNZXRhQ29udGVudCgic2VudHJ5LXRyYWNlIiksYmFnZ2FnZT10cmFjZU9wdGlvbnMuYmFnZ2FnZXx8Z2V0TWV0YUNvbnRlbnQoImJhZ2dhZ2UiKSxwcm9wYWdhdGlvbkNvbnRleHQ9KDAsdHJhY2luZy5wVCkoc2VudHJ5VHJhY2UsYmFnZ2FnZSksc2NvcGU9KDAsY3VycmVudFNjb3Blcy5uWikoKTtzY29wZS5zZXRQcm9wYWdhdGlvbkNvbnRleHQocHJvcGFnYXRpb25Db250ZXh0KSwoMCxoYXNTcGFuc0VuYWJsZWQuZikoKXx8KHNjb3BlLmdldFByb3BhZ2F0aW9uQ29udGV4dCgpLnByb3BhZ2F0aW9uU3BhbklkPSgwLHV0aWxzX3Byb3BhZ2F0aW9uQ29udGV4dC5NKSgpKSxzY29wZS5zZXRTREtQcm9jZXNzaW5nTWV0YWRhdGEoe25vcm1hbGl6ZWRSZXF1ZXN0OigwLGhlbHBlcnMuUEopKCl9KSxfY3JlYXRlUm91dGVTcGFuKGNsaWVudCx7b3A6InBhZ2Vsb2FkIiwuLi5zdGFydFNwYW5PcHRpb25zfSl9KSxjbGllbnQub24oImVuZFBhZ2Vsb2FkU3BhbiIsKCk9PntlbmFibGVSZXBvcnRQYWdlTG9hZGVkJiZfcGFnZWxvYWRTcGFuJiYoX3BhZ2Vsb2FkU3Bhbi5zZXRBdHRyaWJ1dGUoc2VtYW50aWNBdHRyaWJ1dGVzLmp1LCJyZXBvcnRQYWdlTG9hZGVkIiksX3BhZ2Vsb2FkU3Bhbi5lbmQoKSl9KX0sYWZ0ZXJBbGxTZXR1cChjbGllbnQpe2xldCBzdGFydGluZ1VybD0oMCxicm93c2VyLmw0KSgpO2lmKCJvZmYiIT09bGlua1ByZXZpb3VzVHJhY2UmJmZ1bmN0aW9uKGNsaWVudCx7bGlua1ByZXZpb3VzVHJhY2UsY29uc2lzdGVudFRyYWNlU2FtcGxpbmd9KXtsZXQgdXNlU2Vzc2lvblN0b3JhZ2U9InNlc3Npb24tc3RvcmFnZSI9PT1saW5rUHJldmlvdXNUcmFjZSxpbk1lbW9yeVByZXZpb3VzVHJhY2VJbmZvPXVzZVNlc3Npb25TdG9yYWdlP2Z1bmN0aW9uKCl7dHJ5e2xldCBwcmV2aW91c1RyYWNlSW5mbz1oZWxwZXJzLm05LnNlc3Npb25TdG9yYWdlPy5nZXRJdGVtKFBSRVZJT1VTX1RSQUNFX0tFWSk7cmV0dXJuIEpTT04ucGFyc2UocHJldmlvdXNUcmFjZUluZm8pfWNhdGNoe3JldHVybn19KCk6dm9pZCAwO2NsaWVudC5vbigic3BhblN0YXJ0IixzcGFuPT57aWYoKDAsc3BhblV0aWxzLkd4KShzcGFuKSE9PXNwYW4pcmV0dXJuO2xldCBvbGRQcm9wYWdhdGlvbkNvbnRleHQ9KDAsY3VycmVudFNjb3Blcy5uWikoKS5nZXRQcm9wYWdhdGlvbkNvbnRleHQoKTtpbk1lbW9yeVByZXZpb3VzVHJhY2VJbmZvPWZ1bmN0aW9uKHByZXZpb3VzVHJhY2VJbmZvLHNwYW4sb2xkUHJvcGFnYXRpb25Db250ZXh0KXtsZXQgc3Bhbkpzb249KDAsc3BhblV0aWxzLlhVKShzcGFuKSx1cGRhdGVkUHJldmlvdXNUcmFjZUluZm89e3NwYW5Db250ZXh0OnNwYW4uc3BhbkNvbnRleHQoKSxzdGFydFRpbWVzdGFtcDpzcGFuSnNvbi5zdGFydF90aW1lc3RhbXAsc2FtcGxlUmF0ZTpmdW5jdGlvbigpe3RyeXtyZXR1cm4gTnVtYmVyKG9sZFByb3BhZ2F0aW9uQ29udGV4dC5kc2M/LnNhbXBsZV9yYXRlKT8/TnVtYmVyKHNwYW5Kc29uLmRhdGE/LltzZW1hbnRpY0F0dHJpYnV0ZXMuVEVdKX1jYXRjaHtyZXR1cm4gMH19KCksc2FtcGxlUmFuZDpvbGRQcm9wYWdhdGlvbkNvbnRleHQuc2FtcGxlUmFuZH07aWYoIXByZXZpb3VzVHJhY2VJbmZvKXJldHVybiB1cGRhdGVkUHJldmlvdXNUcmFjZUluZm87bGV0IHByZXZpb3VzVHJhY2VTcGFuQ3R4PXByZXZpb3VzVHJhY2VJbmZvLnNwYW5Db250ZXh0O3JldHVybiBwcmV2aW91c1RyYWNlU3BhbkN0eC50cmFjZUlkPT09c3Bhbkpzb24udHJhY2VfaWQ/cHJldmlvdXNUcmFjZUluZm86KERhdGUubm93KCkvMWUzLXByZXZpb3VzVHJhY2VJbmZvLnN0YXJ0VGltZXN0YW1wPD0zNjAwJiYocHJvZF9kZWJ1Z19idWlsZC5YJiZkZWJ1Z19sb2dnZXIuZkYubG9nKGBBZGRpbmcgcHJldmlvdXNfdHJhY2UgXGAke0pTT04uc3RyaW5naWZ5KHByZXZpb3VzVHJhY2VTcGFuQ3R4KX1cYCBsaW5rIHRvIHNwYW4gXGAke0pTT04uc3RyaW5naWZ5KHtvcDpzcGFuSnNvbi5vcCwuLi5zcGFuLnNwYW5Db250ZXh0KCl9KX1cYGApLHNwYW4uYWRkTGluayh7Y29udGV4dDpwcmV2aW91c1RyYWNlU3BhbkN0eCxhdHRyaWJ1dGVzOntbc2VtYW50aWNBdHRyaWJ1dGVzLmxIXToicHJldmlvdXNfdHJhY2UifX0pLHNwYW4uc2V0QXR0cmlidXRlKCJzZW50cnkucHJldmlvdXNfdHJhY2UiLGAke3ByZXZpb3VzVHJhY2VTcGFuQ3R4LnRyYWNlSWR9LSR7cHJldmlvdXNUcmFjZVNwYW5DdHguc3BhbklkfS0ke3NwYW5Db250ZXh0U2FtcGxlZChwcmV2aW91c1RyYWNlU3BhbkN0eCk/MTowfWApKSx1cGRhdGVkUHJldmlvdXNUcmFjZUluZm8pfShpbk1lbW9yeVByZXZpb3VzVHJhY2VJbmZvLHNwYW4sb2xkUHJvcGFnYXRpb25Db250ZXh0KSx1c2VTZXNzaW9uU3RvcmFnZSYmZnVuY3Rpb24ocHJldmlvdXNUcmFjZUluZm8pe3RyeXtoZWxwZXJzLm05LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oUFJFVklPVVNfVFJBQ0VfS0VZLEpTT04uc3RyaW5naWZ5KHByZXZpb3VzVHJhY2VJbmZvKSl9Y2F0Y2goZSl7cHJvZF9kZWJ1Z19idWlsZC5YJiZkZWJ1Z19sb2dnZXIuZkYud2FybigiQ291bGQgbm90IHN0b3JlIHByZXZpb3VzIHRyYWNlIGluIHNlc3Npb25TdG9yYWdlIixlKX19KGluTWVtb3J5UHJldmlvdXNUcmFjZUluZm8pfSk7bGV0IGlzRmlyc3RUcmFjZU9uUGFnZWxvYWQ9ITA7Y29uc2lzdGVudFRyYWNlU2FtcGxpbmcmJmNsaWVudC5vbigiYmVmb3JlU2FtcGxpbmciLG11dGFibGVTYW1wbGluZ0NvbnRleHREYXRhPT57aWYoIWluTWVtb3J5UHJldmlvdXNUcmFjZUluZm8pcmV0dXJuO2xldCBzY29wZT0oMCxjdXJyZW50U2NvcGVzLm5aKSgpLGN1cnJlbnRQcm9wYWdhdGlvbkNvbnRleHQ9c2NvcGUuZ2V0UHJvcGFnYXRpb25Db250ZXh0KCk7aWYoaXNGaXJzdFRyYWNlT25QYWdlbG9hZCYmY3VycmVudFByb3BhZ2F0aW9uQ29udGV4dC5wYXJlbnRTcGFuSWQpe2lzRmlyc3RUcmFjZU9uUGFnZWxvYWQ9ITE7cmV0dXJufXNjb3BlLnNldFByb3BhZ2F0aW9uQ29udGV4dCh7Li4uY3VycmVudFByb3BhZ2F0aW9uQ29udGV4dCxkc2M6ey4uLmN1cnJlbnRQcm9wYWdhdGlvbkNvbnRleHQuZHNjLHNhbXBsZV9yYXRlOlN0cmluZyhpbk1lbW9yeVByZXZpb3VzVHJhY2VJbmZvLnNhbXBsZVJhdGUpLHNhbXBsZWQ6U3RyaW5nKHNwYW5Db250ZXh0U2FtcGxlZChpbk1lbW9yeVByZXZpb3VzVHJhY2VJbmZvLnNwYW5Db250ZXh0KSl9LHNhbXBsZVJhbmQ6aW5NZW1vcnlQcmV2aW91c1RyYWNlSW5mby5zYW1wbGVSYW5kfSksbXV0YWJsZVNhbXBsaW5nQ29udGV4dERhdGEucGFyZW50U2FtcGxlZD1zcGFuQ29udGV4dFNhbXBsZWQoaW5NZW1vcnlQcmV2aW91c1RyYWNlSW5mby5zcGFuQ29udGV4dCksbXV0YWJsZVNhbXBsaW5nQ29udGV4dERhdGEucGFyZW50U2FtcGxlUmF0ZT1pbk1lbW9yeVByZXZpb3VzVHJhY2VJbmZvLnNhbXBsZVJhdGUsbXV0YWJsZVNhbXBsaW5nQ29udGV4dERhdGEuc3BhbkF0dHJpYnV0ZXM9ey4uLm11dGFibGVTYW1wbGluZ0NvbnRleHREYXRhLnNwYW5BdHRyaWJ1dGVzLFtzZW1hbnRpY0F0dHJpYnV0ZXMuaVRdOmluTWVtb3J5UHJldmlvdXNUcmFjZUluZm8uc2FtcGxlUmF0ZX19KX0oY2xpZW50LHtsaW5rUHJldmlvdXNUcmFjZSxjb25zaXN0ZW50VHJhY2VTYW1wbGluZ30pLGhlbHBlcnMubTkubG9jYXRpb24pe2lmKGluc3RydW1lbnRQYWdlTG9hZCl7bGV0IG9yaWdpbj0oMCx1dGlsc190aW1lLloxKSgpO3N0YXJ0QnJvd3NlclRyYWNpbmdQYWdlTG9hZFNwYW4oY2xpZW50LHtuYW1lOmhlbHBlcnMubTkubG9jYXRpb24ucGF0aG5hbWUsc3RhcnRUaW1lOm9yaWdpbj9vcmlnaW4vMWUzOnZvaWQgMCxhdHRyaWJ1dGVzOntbc2VtYW50aWNBdHRyaWJ1dGVzLlpqXToidXJsIixbc2VtYW50aWNBdHRyaWJ1dGVzLlMzXToiYXV0by5wYWdlbG9hZC5icm93c2VyIn19KX1pbnN0cnVtZW50TmF2aWdhdGlvbiYmKDAsaW5zdHJ1bWVudF9oaXN0b3J5LmEpKCh7dG8sZnJvbX0pPT57aWYodm9pZCAwPT09ZnJvbSYmLTEhPT1zdGFydGluZ1VybD8uaW5kZXhPZih0bykpe3N0YXJ0aW5nVXJsPXZvaWQgMDtyZXR1cm59c3RhcnRpbmdVcmw9dm9pZCAwO2xldCBwYXJzZWQ9KDAsdXRpbHNfdXJsLmdrKSh0byksYWN0aXZlU3Bhbj1jbGllbnRbQUNUSVZFX0lETEVfU1BBTl9QUk9QRVJUWV0sbmF2aWdhdGlvbklzUmVkaXJlY3Q9YWN0aXZlU3BhbiYmZGV0ZWN0UmVkaXJlY3RzJiZmdW5jdGlvbihhY3RpdmVTcGFuLGxhc3RJbnRlcmFjdGlvblRpbWVzdGFtcCl7bGV0IHNwYW5EYXRhPSgwLHNwYW5VdGlscy5YVSkoYWN0aXZlU3Bhbiksbm93PSgwLHV0aWxzX3RpbWUueVcpKCksc3RhcnRUaW1lc3RhbXA9c3BhbkRhdGEuc3RhcnRfdGltZXN0YW1wO3JldHVybiEobm93LXN0YXJ0VGltZXN0YW1wPjEuNSkmJighbGFzdEludGVyYWN0aW9uVGltZXN0YW1wfHwhKG5vdy1sYXN0SW50ZXJhY3Rpb25UaW1lc3RhbXA8PTEuNSkpfShhY3RpdmVTcGFuLGxhc3RJbnRlcmFjdGlvblRpbWVzdGFtcCk7c3RhcnRCcm93c2VyVHJhY2luZ05hdmlnYXRpb25TcGFuKGNsaWVudCx7bmFtZTpwYXJzZWQ/LnBhdGhuYW1lfHxoZWxwZXJzLm05LmxvY2F0aW9uLnBhdGhuYW1lLGF0dHJpYnV0ZXM6e1tzZW1hbnRpY0F0dHJpYnV0ZXMuWmpdOiJ1cmwiLFtzZW1hbnRpY0F0dHJpYnV0ZXMuUzNdOiJhdXRvLm5hdmlnYXRpb24uYnJvd3NlciJ9fSx7dXJsOnRvLGlzUmVkaXJlY3Q6bmF2aWdhdGlvbklzUmVkaXJlY3R9KX0pfW1hcmtCYWNrZ3JvdW5kU3BhbiYmKGhlbHBlcnMubTkuZG9jdW1lbnQ/aGVscGVycy5tOS5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwoKT0+e2xldCBhY3RpdmVTcGFuPSgwLHNwYW5VdGlscy5ITikoKTtpZighYWN0aXZlU3BhbilyZXR1cm47bGV0IHJvb3RTcGFuPSgwLHNwYW5VdGlscy5HeCkoYWN0aXZlU3Bhbik7aWYoaGVscGVycy5tOS5kb2N1bWVudC5oaWRkZW4mJnJvb3RTcGFuKXtsZXQgY2FuY2VsbGVkU3RhdHVzPSJjYW5jZWxsZWQiLHtvcCxzdGF0dXN9PSgwLHNwYW5VdGlscy5YVSkocm9vdFNwYW4pO3Byb2RfZGVidWdfYnVpbGQuWCYmZGVidWdfbG9nZ2VyLmZGLmxvZyhgW1RyYWNpbmddIFRyYW5zYWN0aW9uOiAke2NhbmNlbGxlZFN0YXR1c30gLT4gc2luY2UgdGFiIG1vdmVkIHRvIHRoZSBiYWNrZ3JvdW5kLCBvcDogJHtvcH1gKSxzdGF0dXN8fHJvb3RTcGFuLnNldFN0YXR1cyh7Y29kZTpzcGFuc3RhdHVzLmp0LG1lc3NhZ2U6Y2FuY2VsbGVkU3RhdHVzfSkscm9vdFNwYW4uc2V0QXR0cmlidXRlKCJzZW50cnkuY2FuY2VsbGF0aW9uX3JlYXNvbiIsImRvY3VtZW50LmhpZGRlbiIpLHJvb3RTcGFuLmVuZCgpfX0pOnByb2RfZGVidWdfYnVpbGQuWCYmZGVidWdfbG9nZ2VyLmZGLndhcm4oIltUcmFjaW5nXSBDb3VsZCBub3Qgc2V0IHVwIGJhY2tncm91bmQgdGFiIGRldGVjdGlvbiBkdWUgdG8gbGFjayBvZiBnbG9iYWwgZG9jdW1lbnQiKSksZW5hYmxlSW50ZXJhY3Rpb25zJiZmdW5jdGlvbihjbGllbnQsaWRsZVRpbWVvdXQsZmluYWxUaW1lb3V0LGNoaWxkU3BhblRpbWVvdXQsbGF0ZXN0Um91dGUpe2xldCBpbmZsaWdodEludGVyYWN0aW9uU3BhbjtsZXQgb3B0aW9uYWxXaW5kb3dEb2N1bWVudD1oZWxwZXJzLm05LmRvY3VtZW50LHJlZ2lzdGVySW50ZXJhY3Rpb25UcmFuc2FjdGlvbj0oKT0+e2xldCBvcD0idWkuYWN0aW9uLmNsaWNrIixhY3RpdmVJZGxlU3Bhbj1jbGllbnRbQUNUSVZFX0lETEVfU1BBTl9QUk9QRVJUWV07aWYoYWN0aXZlSWRsZVNwYW4pe2xldCBjdXJyZW50Um9vdFNwYW5PcD0oMCxzcGFuVXRpbHMuWFUpKGFjdGl2ZUlkbGVTcGFuKS5vcDtpZihbIm5hdmlnYXRpb24iLCJwYWdlbG9hZCJdLmluY2x1ZGVzKGN1cnJlbnRSb290U3Bhbk9wKSl7cHJvZF9kZWJ1Z19idWlsZC5YJiZkZWJ1Z19sb2dnZXIuZkYud2FybihgW1RyYWNpbmddIERpZCBub3QgY3JlYXRlICR7b3B9IHNwYW4gYmVjYXVzZSBhIHBhZ2Vsb2FkIG9yIG5hdmlnYXRpb24gc3BhbiBpcyBpbiBwcm9ncmVzcy5gKTtyZXR1cm59fWlmKGluZmxpZ2h0SW50ZXJhY3Rpb25TcGFuJiYoaW5mbGlnaHRJbnRlcmFjdGlvblNwYW4uc2V0QXR0cmlidXRlKHNlbWFudGljQXR0cmlidXRlcy5qdSwiaW50ZXJhY3Rpb25JbnRlcnJ1cHRlZCIpLGluZmxpZ2h0SW50ZXJhY3Rpb25TcGFuLmVuZCgpLGluZmxpZ2h0SW50ZXJhY3Rpb25TcGFuPXZvaWQgMCksIWxhdGVzdFJvdXRlLm5hbWUpe3Byb2RfZGVidWdfYnVpbGQuWCYmZGVidWdfbG9nZ2VyLmZGLndhcm4oYFtUcmFjaW5nXSBEaWQgbm90IGNyZWF0ZSAke29wfSB0cmFuc2FjdGlvbiBiZWNhdXNlIF9sYXRlc3RSb3V0ZU5hbWUgaXMgbWlzc2luZy5gKTtyZXR1cm59aW5mbGlnaHRJbnRlcmFjdGlvblNwYW49c3RhcnRJZGxlU3Bhbih7bmFtZTpsYXRlc3RSb3V0ZS5uYW1lLG9wLGF0dHJpYnV0ZXM6e1tzZW1hbnRpY0F0dHJpYnV0ZXMuWmpdOmxhdGVzdFJvdXRlLnNvdXJjZXx8InVybCJ9fSx7aWRsZVRpbWVvdXQsZmluYWxUaW1lb3V0LGNoaWxkU3BhblRpbWVvdXR9KX07b3B0aW9uYWxXaW5kb3dEb2N1bWVudCYmYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHJlZ2lzdGVySW50ZXJhY3Rpb25UcmFuc2FjdGlvbix7Y2FwdHVyZTohMH0pfShjbGllbnQsaWRsZVRpbWVvdXQsZmluYWxUaW1lb3V0LGNoaWxkU3BhblRpbWVvdXQsbGF0ZXN0Um91dGUpLGVuYWJsZUlucCYmZnVuY3Rpb24oKXtsZXQgaW50ZXJhY3Rpb25FdmVudHM9T2JqZWN0LmtleXMoSU5QX0VOVFJZX01BUCk7ZnVuY3Rpb24gY2FwdHVyZUVsZW1lbnRGcm9tRXZlbnQoZXZlbnQpe2xldCB0YXJnZXQ9ZXZlbnQudGFyZ2V0O2lmKCF0YXJnZXQpcmV0dXJuO2xldCBlbGVtZW50TmFtZT0oMCxicm93c2VyLlJ0KSh0YXJnZXQpLHRpbWVzdGFtcD1NYXRoLnJvdW5kKGV2ZW50LnRpbWVTdGFtcCk7aWYoRUxFTUVOVF9OQU1FX1RJTUVTVEFNUF9NQVAuc2V0KHRpbWVzdGFtcCxlbGVtZW50TmFtZSksRUxFTUVOVF9OQU1FX1RJTUVTVEFNUF9NQVAuc2l6ZT41MCl7bGV0IGZpcnN0S2V5PUVMRU1FTlRfTkFNRV9USU1FU1RBTVBfTUFQLmtleXMoKS5uZXh0KCkudmFsdWU7dm9pZCAwIT09Zmlyc3RLZXkmJkVMRU1FTlRfTkFNRV9USU1FU1RBTVBfTUFQLmRlbGV0ZShmaXJzdEtleSl9fSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYoISghKDAsZW52Lm4pKCkmJiJbb2JqZWN0IHByb2Nlc3NdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2b2lkIDAhPT1wcm9jZXNzP3Byb2Nlc3M6MCkpfHxmdW5jdGlvbigpe2xldCBwcm9jZXNzPXdvcmxkd2lkZS5uLnByb2Nlc3M7cmV0dXJuIHByb2Nlc3M/LnR5cGU9PT0icmVuZGVyZXIifSgpKSYmaW50ZXJhY3Rpb25FdmVudHMuZm9yRWFjaChldmVudFR5cGU9Pnt0eXBlcy5tLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLGNhcHR1cmVFbGVtZW50RnJvbUV2ZW50LHtjYXB0dXJlOiEwLHBhc3NpdmU6ITB9KX0pO2xldCBoYW5kbGVFbnRyaWVzPSh7ZW50cmllc30pPT57bGV0IGFjdGl2ZVNwYW49KDAsc3BhblV0aWxzLkhOKSgpLGFjdGl2ZVJvb3RTcGFuPWFjdGl2ZVNwYW4mJigwLHNwYW5VdGlscy5HeCkoYWN0aXZlU3Bhbik7ZW50cmllcy5mb3JFYWNoKGVudHJ5PT57aWYoISgiZHVyYXRpb24iaW4gZW50cnkpKXJldHVybjtsZXQgaW50ZXJhY3Rpb25JZD1lbnRyeS5pbnRlcmFjdGlvbklkO2lmKG51bGw9PWludGVyYWN0aW9uSWR8fElOVEVSQUNUSU9OU19TUEFOX01BUC5oYXMoaW50ZXJhY3Rpb25JZCkpcmV0dXJuO2xldCBlbGVtZW50TmFtZT1lbnRyeS50YXJnZXQ/KDAsYnJvd3Nlci5SdCkoZW50cnkudGFyZ2V0KTpmdW5jdGlvbihlbnRyeSl7bGV0IHRpbWVzdGFtcD1NYXRoLnJvdW5kKGVudHJ5LnN0YXJ0VGltZSksZWxlbWVudE5hbWU9RUxFTUVOVF9OQU1FX1RJTUVTVEFNUF9NQVAuZ2V0KHRpbWVzdGFtcCk7aWYoIWVsZW1lbnROYW1lKWZvcihsZXQgb2Zmc2V0PS01O29mZnNldDw9NTtvZmZzZXQrKyl7bGV0IG5lYXJieU5hbWU9RUxFTUVOVF9OQU1FX1RJTUVTVEFNUF9NQVAuZ2V0KHRpbWVzdGFtcCtvZmZzZXQpO2lmKG5lYXJieU5hbWUpe2VsZW1lbnROYW1lPW5lYXJieU5hbWU7YnJlYWt9fXJldHVybiBlbGVtZW50TmFtZXx8Ijx1bmtub3duPiJ9KGVudHJ5KTtpZihMQVNUX0lOVEVSQUNUSU9OUy5sZW5ndGg+MTApe2xldCBsYXN0PUxBU1RfSU5URVJBQ1RJT05TLnNoaWZ0KCk7SU5URVJBQ1RJT05TX1NQQU5fTUFQLmRlbGV0ZShsYXN0KX1MQVNUX0lOVEVSQUNUSU9OUy5wdXNoKGludGVyYWN0aW9uSWQpLElOVEVSQUNUSU9OU19TUEFOX01BUC5zZXQoaW50ZXJhY3Rpb25JZCx7c3BhbjphY3RpdmVSb290U3BhbixlbGVtZW50TmFtZX0pfSl9O2FkZFBlcmZvcm1hbmNlSW5zdHJ1bWVudGF0aW9uSGFuZGxlcigiZXZlbnQiLGhhbmRsZUVudHJpZXMpLGFkZFBlcmZvcm1hbmNlSW5zdHJ1bWVudGF0aW9uSGFuZGxlcigiZmlyc3QtaW5wdXQiLGhhbmRsZUVudHJpZXMpfSgpLGZ1bmN0aW9uKGNsaWVudCxfb3B0aW9ucyl7bGV0e3RyYWNlRmV0Y2gsdHJhY2VYSFIsdHJhY2tGZXRjaFN0cmVhbVBlcmZvcm1hbmNlLHNob3VsZENyZWF0ZVNwYW5Gb3JSZXF1ZXN0LGVuYWJsZUhUVFBUaW1pbmdzLHRyYWNlUHJvcGFnYXRpb25UYXJnZXRzLG9uUmVxdWVzdFNwYW5TdGFydCxvblJlcXVlc3RTcGFuRW5kfT17Li4uZGVmYXVsdFJlcXVlc3RJbnN0cnVtZW50YXRpb25PcHRpb25zLC4uLl9vcHRpb25zfSxzaG91bGRDcmVhdGVTcGFuPSJmdW5jdGlvbiI9PXR5cGVvZiBzaG91bGRDcmVhdGVTcGFuRm9yUmVxdWVzdD9zaG91bGRDcmVhdGVTcGFuRm9yUmVxdWVzdDpfPT4hMCxzaG91bGRBdHRhY2hIZWFkZXJzV2l0aFRhcmdldHM9dXJsPT4oZnVuY3Rpb24odGFyZ2V0VXJsLHRyYWNlUHJvcGFnYXRpb25UYXJnZXRzKXtsZXQgaHJlZj0oMCxicm93c2VyLmw0KSgpO2lmKGhyZWYpe2xldCByZXNvbHZlZFVybCxjdXJyZW50T3JpZ2luO3RyeXtyZXNvbHZlZFVybD1uZXcgVVJMKHRhcmdldFVybCxocmVmKSxjdXJyZW50T3JpZ2luPW5ldyBVUkwoaHJlZikub3JpZ2lufWNhdGNoe3JldHVybiExfWxldCBpc1NhbWVPcmlnaW5SZXF1ZXN0PXJlc29sdmVkVXJsLm9yaWdpbj09PWN1cnJlbnRPcmlnaW47cmV0dXJuIHRyYWNlUHJvcGFnYXRpb25UYXJnZXRzPygwLHN0cmluZy5VMCkocmVzb2x2ZWRVcmwudG9TdHJpbmcoKSx0cmFjZVByb3BhZ2F0aW9uVGFyZ2V0cyl8fGlzU2FtZU9yaWdpblJlcXVlc3QmJigwLHN0cmluZy5VMCkocmVzb2x2ZWRVcmwucGF0aG5hbWUsdHJhY2VQcm9wYWdhdGlvblRhcmdldHMpOmlzU2FtZU9yaWdpblJlcXVlc3R9e2xldCBpc1JlbGF0aXZlU2FtZU9yaWdpblJlcXVlc3Q9ISF0YXJnZXRVcmwubWF0Y2goL15cLyg/IVwvKS8pO3JldHVybiB0cmFjZVByb3BhZ2F0aW9uVGFyZ2V0cz8oMCxzdHJpbmcuVTApKHRhcmdldFVybCx0cmFjZVByb3BhZ2F0aW9uVGFyZ2V0cyk6aXNSZWxhdGl2ZVNhbWVPcmlnaW5SZXF1ZXN0fX0pKHVybCx0cmFjZVByb3BhZ2F0aW9uVGFyZ2V0cyksc3BhbnM9e30scHJvcGFnYXRlVHJhY2VwYXJlbnQ9Y2xpZW50LmdldE9wdGlvbnMoKS5wcm9wYWdhdGVUcmFjZXBhcmVudDt0cmFjZUZldGNoJiYoY2xpZW50LmFkZEV2ZW50UHJvY2Vzc29yKGV2ZW50PT4oInRyYW5zYWN0aW9uIj09PWV2ZW50LnR5cGUmJmV2ZW50LnNwYW5zJiZldmVudC5zcGFucy5mb3JFYWNoKHNwYW49PntpZigiaHR0cC5jbGllbnQiPT09c3Bhbi5vcCl7bGV0IHVwZGF0ZWRUaW1lc3RhbXA9c3BhbklkVG9FbmRUaW1lc3RhbXAuZ2V0KHNwYW4uc3Bhbl9pZCk7dXBkYXRlZFRpbWVzdGFtcCYmKHNwYW4udGltZXN0YW1wPXVwZGF0ZWRUaW1lc3RhbXAvMWUzLHNwYW5JZFRvRW5kVGltZXN0YW1wLmRlbGV0ZShzcGFuLnNwYW5faWQpKX19KSxldmVudCkpLHRyYWNrRmV0Y2hTdHJlYW1QZXJmb3JtYW5jZSYmKDAsZmV0Y2guY2YpKGhhbmRsZXJEYXRhPT57aWYoaGFuZGxlckRhdGEucmVzcG9uc2Upe2xldCBzcGFuPXJlc3BvbnNlVG9TcGFuSWQuZ2V0KGhhbmRsZXJEYXRhLnJlc3BvbnNlKTtzcGFuJiZoYW5kbGVyRGF0YS5lbmRUaW1lc3RhbXAmJnNwYW5JZFRvRW5kVGltZXN0YW1wLnNldChzcGFuLGhhbmRsZXJEYXRhLmVuZFRpbWVzdGFtcCl9fSksKDAsZmV0Y2guVWYpKGhhbmRsZXJEYXRhPT57bGV0IGNyZWF0ZWRTcGFuPWZ1bmN0aW9uKGhhbmRsZXJEYXRhLHNob3VsZENyZWF0ZVNwYW4sc2hvdWxkQXR0YWNoSGVhZGVycyxzcGFucyxzcGFuT3JpZ2luT3JPcHRpb25zKXtpZighaGFuZGxlckRhdGEuZmV0Y2hEYXRhKXJldHVybjtsZXR7bWV0aG9kLHVybH09aGFuZGxlckRhdGEuZmV0Y2hEYXRhLHNob3VsZENyZWF0ZVNwYW5SZXN1bHQ9KDAsaGFzU3BhbnNFbmFibGVkLmYpKCkmJnNob3VsZENyZWF0ZVNwYW4odXJsKTtpZihoYW5kbGVyRGF0YS5lbmRUaW1lc3RhbXAmJnNob3VsZENyZWF0ZVNwYW5SZXN1bHQpe2xldCBzcGFuSWQ9aGFuZGxlckRhdGEuZmV0Y2hEYXRhLl9fc3BhbjtpZighc3BhbklkKXJldHVybjtsZXQgc3Bhbj1zcGFuc1tzcGFuSWRdO3NwYW4mJihmdW5jdGlvbihzcGFuLGhhbmRsZXJEYXRhKXtpZihoYW5kbGVyRGF0YS5yZXNwb25zZSl7KDAsc3BhbnN0YXR1cy5RMCkoc3BhbixoYW5kbGVyRGF0YS5yZXNwb25zZS5zdGF0dXMpO2xldCBjb250ZW50TGVuZ3RoPWhhbmRsZXJEYXRhLnJlc3BvbnNlPy5oZWFkZXJzPy5nZXQoImNvbnRlbnQtbGVuZ3RoIik7aWYoY29udGVudExlbmd0aCl7bGV0IGNvbnRlbnRMZW5ndGhOdW09cGFyc2VJbnQoY29udGVudExlbmd0aCk7Y29udGVudExlbmd0aE51bT4wJiZzcGFuLnNldEF0dHJpYnV0ZSgiaHR0cC5yZXNwb25zZV9jb250ZW50X2xlbmd0aCIsY29udGVudExlbmd0aE51bSl9fWVsc2UgaGFuZGxlckRhdGEuZXJyb3ImJnNwYW4uc2V0U3RhdHVzKHtjb2RlOnNwYW5zdGF0dXMuanQsbWVzc2FnZToiaW50ZXJuYWxfZXJyb3IifSk7c3Bhbi5lbmQoKX0oc3BhbixoYW5kbGVyRGF0YSksZnVuY3Rpb24oc3BhbixoYW5kbGVyRGF0YSxzcGFuT3JpZ2luT3JPcHRpb25zKXtsZXQgb25SZXF1ZXN0U3BhbkVuZD0ib2JqZWN0Ij09dHlwZW9mIHNwYW5PcmlnaW5Pck9wdGlvbnMmJm51bGwhPT1zcGFuT3JpZ2luT3JPcHRpb25zP3NwYW5PcmlnaW5Pck9wdGlvbnMub25SZXF1ZXN0U3BhbkVuZDp2b2lkIDA7b25SZXF1ZXN0U3BhbkVuZD8uKHNwYW4se2hlYWRlcnM6aGFuZGxlckRhdGEucmVzcG9uc2U/LmhlYWRlcnMsZXJyb3I6aGFuZGxlckRhdGEuZXJyb3J9KX0oc3BhbixoYW5kbGVyRGF0YSxzcGFuT3JpZ2luT3JPcHRpb25zKSxkZWxldGUgc3BhbnNbc3BhbklkXSk7cmV0dXJufWxldHtzcGFuT3JpZ2luPSJhdXRvLmh0dHAuYnJvd3NlciIscHJvcGFnYXRlVHJhY2VwYXJlbnQ9ITF9PSJvYmplY3QiPT10eXBlb2Ygc3Bhbk9yaWdpbk9yT3B0aW9ucz9zcGFuT3JpZ2luT3JPcHRpb25zOntzcGFuT3JpZ2luOnNwYW5PcmlnaW5Pck9wdGlvbnN9LGhhc1BhcmVudD0hISgwLHNwYW5VdGlscy5ITikoKSxzcGFuMT1zaG91bGRDcmVhdGVTcGFuUmVzdWx0JiZoYXNQYXJlbnQ/c3RhcnRJbmFjdGl2ZVNwYW4oZnVuY3Rpb24odXJsLG1ldGhvZCxzcGFuT3JpZ2luKXtsZXQgcGFyc2VkVXJsPSgwLHV0aWxzX3VybC5naykodXJsKTtyZXR1cm57bmFtZTpwYXJzZWRVcmw/YCR7bWV0aG9kfSAkeygwLHV0aWxzX3VybC5RcSkocGFyc2VkVXJsKX1gOm1ldGhvZCxhdHRyaWJ1dGVzOmZ1bmN0aW9uKHVybCxwYXJzZWRVcmwsbWV0aG9kLHNwYW5PcmlnaW4pe2xldCBhdHRyaWJ1dGVzPXt1cmwsdHlwZToiZmV0Y2giLCJodHRwLm1ldGhvZCI6bWV0aG9kLFtzZW1hbnRpY0F0dHJpYnV0ZXMuUzNdOnNwYW5PcmlnaW4sW3NlbWFudGljQXR0cmlidXRlcy4kSl06Imh0dHAuY2xpZW50In07cmV0dXJuIHBhcnNlZFVybCYmKCgwLHV0aWxzX3VybC5EUikocGFyc2VkVXJsKXx8KGF0dHJpYnV0ZXNbImh0dHAudXJsIl09cGFyc2VkVXJsLmhyZWYsYXR0cmlidXRlc1sic2VydmVyLmFkZHJlc3MiXT1wYXJzZWRVcmwuaG9zdCkscGFyc2VkVXJsLnNlYXJjaCYmKGF0dHJpYnV0ZXNbImh0dHAucXVlcnkiXT1wYXJzZWRVcmwuc2VhcmNoKSxwYXJzZWRVcmwuaGFzaCYmKGF0dHJpYnV0ZXNbImh0dHAuZnJhZ21lbnQiXT1wYXJzZWRVcmwuaGFzaCkpLGF0dHJpYnV0ZXN9KHVybCxwYXJzZWRVcmwsbWV0aG9kLHNwYW5PcmlnaW4pfX0odXJsLG1ldGhvZCxzcGFuT3JpZ2luKSk6bmV3IHNlbnRyeU5vblJlY29yZGluZ1NwYW5fU2VudHJ5Tm9uUmVjb3JkaW5nU3BhbjtpZihoYW5kbGVyRGF0YS5mZXRjaERhdGEuX19zcGFuPXNwYW4xLnNwYW5Db250ZXh0KCkuc3BhbklkLHNwYW5zW3NwYW4xLnNwYW5Db250ZXh0KCkuc3BhbklkXT1zcGFuMSxzaG91bGRBdHRhY2hIZWFkZXJzKGhhbmRsZXJEYXRhLmZldGNoRGF0YS51cmwpKXtsZXQgcmVxdWVzdD1oYW5kbGVyRGF0YS5hcmdzWzBdLG9wdGlvbnM9aGFuZGxlckRhdGEuYXJnc1sxXXx8e30saGVhZGVycz1mdW5jdGlvbihyZXF1ZXN0LGZldGNoT3B0aW9uc09iaixzcGFuLHByb3BhZ2F0ZVRyYWNlcGFyZW50KXtsZXQgdHJhY2VIZWFkZXJzPWdldFRyYWNlRGF0YSh7c3Bhbixwcm9wYWdhdGVUcmFjZXBhcmVudH0pLHNlbnRyeVRyYWNlPXRyYWNlSGVhZGVyc1sic2VudHJ5LXRyYWNlIl0sYmFnZ2FnZT10cmFjZUhlYWRlcnMuYmFnZ2FnZSx0cmFjZXBhcmVudD10cmFjZUhlYWRlcnMudHJhY2VwYXJlbnQ7aWYoIXNlbnRyeVRyYWNlKXJldHVybjtsZXQgb3JpZ2luYWxIZWFkZXJzPWZldGNoT3B0aW9uc09iai5oZWFkZXJzfHwoKDAsaXMuZ0opKHJlcXVlc3QpP3JlcXVlc3QuaGVhZGVyczp2b2lkIDApO2lmKCFvcmlnaW5hbEhlYWRlcnMpcmV0dXJuey4uLnRyYWNlSGVhZGVyc307aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBIZWFkZXJzJiYoMCxpcy5WOSkob3JpZ2luYWxIZWFkZXJzLEhlYWRlcnMpKXtsZXQgbmV3SGVhZGVycz1uZXcgSGVhZGVycyhvcmlnaW5hbEhlYWRlcnMpO2lmKG5ld0hlYWRlcnMuZ2V0KCJzZW50cnktdHJhY2UiKXx8bmV3SGVhZGVycy5zZXQoInNlbnRyeS10cmFjZSIsc2VudHJ5VHJhY2UpLHByb3BhZ2F0ZVRyYWNlcGFyZW50JiZ0cmFjZXBhcmVudCYmIW5ld0hlYWRlcnMuZ2V0KCJ0cmFjZXBhcmVudCIpJiZuZXdIZWFkZXJzLnNldCgidHJhY2VwYXJlbnQiLHRyYWNlcGFyZW50KSxiYWdnYWdlKXtsZXQgcHJldkJhZ2dhZ2VIZWFkZXI9bmV3SGVhZGVycy5nZXQoImJhZ2dhZ2UiKTtwcmV2QmFnZ2FnZUhlYWRlcj9iYWdnYWdlSGVhZGVySGFzU2VudHJ5QmFnZ2FnZVZhbHVlcyhwcmV2QmFnZ2FnZUhlYWRlcil8fG5ld0hlYWRlcnMuc2V0KCJiYWdnYWdlIixgJHtwcmV2QmFnZ2FnZUhlYWRlcn0sJHtiYWdnYWdlfWApOm5ld0hlYWRlcnMuc2V0KCJiYWdnYWdlIixiYWdnYWdlKX1yZXR1cm4gbmV3SGVhZGVyc31pZihBcnJheS5pc0FycmF5KG9yaWdpbmFsSGVhZGVycykpe2xldCBuZXdIZWFkZXJzMT1bLi4ub3JpZ2luYWxIZWFkZXJzXTtvcmlnaW5hbEhlYWRlcnMuZmluZChoZWFkZXI9PiJzZW50cnktdHJhY2UiPT09aGVhZGVyWzBdKXx8bmV3SGVhZGVyczEucHVzaChbInNlbnRyeS10cmFjZSIsc2VudHJ5VHJhY2VdKSxwcm9wYWdhdGVUcmFjZXBhcmVudCYmdHJhY2VwYXJlbnQmJiFvcmlnaW5hbEhlYWRlcnMuZmluZChoZWFkZXI9PiJ0cmFjZXBhcmVudCI9PT1oZWFkZXJbMF0pJiZuZXdIZWFkZXJzMS5wdXNoKFsidHJhY2VwYXJlbnQiLHRyYWNlcGFyZW50XSk7bGV0IHByZXZCYWdnYWdlSGVhZGVyV2l0aFNlbnRyeVZhbHVlcz1vcmlnaW5hbEhlYWRlcnMuZmluZChoZWFkZXI9PiJiYWdnYWdlIj09PWhlYWRlclswXSYmYmFnZ2FnZUhlYWRlckhhc1NlbnRyeUJhZ2dhZ2VWYWx1ZXMoaGVhZGVyWzFdKSk7cmV0dXJuIGJhZ2dhZ2UmJiFwcmV2QmFnZ2FnZUhlYWRlcldpdGhTZW50cnlWYWx1ZXMmJm5ld0hlYWRlcnMxLnB1c2goWyJiYWdnYWdlIixiYWdnYWdlXSksbmV3SGVhZGVyczF9e2xldCBleGlzdGluZ1NlbnRyeVRyYWNlSGVhZGVyPSJzZW50cnktdHJhY2UiaW4gb3JpZ2luYWxIZWFkZXJzP29yaWdpbmFsSGVhZGVyc1sic2VudHJ5LXRyYWNlIl06dm9pZCAwLGV4aXN0aW5nVHJhY2VwYXJlbnRIZWFkZXI9InRyYWNlcGFyZW50ImluIG9yaWdpbmFsSGVhZGVycz9vcmlnaW5hbEhlYWRlcnMudHJhY2VwYXJlbnQ6dm9pZCAwLGV4aXN0aW5nQmFnZ2FnZUhlYWRlcj0iYmFnZ2FnZSJpbiBvcmlnaW5hbEhlYWRlcnM/b3JpZ2luYWxIZWFkZXJzLmJhZ2dhZ2U6dm9pZCAwLG5ld0JhZ2dhZ2VIZWFkZXJzPWV4aXN0aW5nQmFnZ2FnZUhlYWRlcj9BcnJheS5pc0FycmF5KGV4aXN0aW5nQmFnZ2FnZUhlYWRlcik/Wy4uLmV4aXN0aW5nQmFnZ2FnZUhlYWRlcl06W2V4aXN0aW5nQmFnZ2FnZUhlYWRlcl06W10scHJldkJhZ2dhZ2VIZWFkZXJXaXRoU2VudHJ5VmFsdWVzMT1leGlzdGluZ0JhZ2dhZ2VIZWFkZXImJihBcnJheS5pc0FycmF5KGV4aXN0aW5nQmFnZ2FnZUhlYWRlcik/ZXhpc3RpbmdCYWdnYWdlSGVhZGVyLmZpbmQoaGVhZGVySXRlbT0+YmFnZ2FnZUhlYWRlckhhc1NlbnRyeUJhZ2dhZ2VWYWx1ZXMoaGVhZGVySXRlbSkpOmJhZ2dhZ2VIZWFkZXJIYXNTZW50cnlCYWdnYWdlVmFsdWVzKGV4aXN0aW5nQmFnZ2FnZUhlYWRlcikpO2JhZ2dhZ2UmJiFwcmV2QmFnZ2FnZUhlYWRlcldpdGhTZW50cnlWYWx1ZXMxJiZuZXdCYWdnYWdlSGVhZGVycy5wdXNoKGJhZ2dhZ2UpO2xldCBuZXdIZWFkZXJzMj17Li4ub3JpZ2luYWxIZWFkZXJzLCJzZW50cnktdHJhY2UiOmV4aXN0aW5nU2VudHJ5VHJhY2VIZWFkZXI/P3NlbnRyeVRyYWNlLGJhZ2dhZ2U6bmV3QmFnZ2FnZUhlYWRlcnMubGVuZ3RoPjA/bmV3QmFnZ2FnZUhlYWRlcnMuam9pbigiLCIpOnZvaWQgMH07cmV0dXJuIHByb3BhZ2F0ZVRyYWNlcGFyZW50JiZ0cmFjZXBhcmVudCYmIWV4aXN0aW5nVHJhY2VwYXJlbnRIZWFkZXImJihuZXdIZWFkZXJzMi50cmFjZXBhcmVudD10cmFjZXBhcmVudCksbmV3SGVhZGVyczJ9fShyZXF1ZXN0LG9wdGlvbnMsKDAsaGFzU3BhbnNFbmFibGVkLmYpKCkmJmhhc1BhcmVudD9zcGFuMTp2b2lkIDAscHJvcGFnYXRlVHJhY2VwYXJlbnQpO2hlYWRlcnMmJihoYW5kbGVyRGF0YS5hcmdzWzFdPW9wdGlvbnMsb3B0aW9ucy5oZWFkZXJzPWhlYWRlcnMpfWxldCBjbGllbnQ9KDAsY3VycmVudFNjb3Blcy5zMykoKTtpZihjbGllbnQpe2xldCBmZXRjaEhpbnQ9e2lucHV0OmhhbmRsZXJEYXRhLmFyZ3MscmVzcG9uc2U6aGFuZGxlckRhdGEucmVzcG9uc2Usc3RhcnRUaW1lc3RhbXA6aGFuZGxlckRhdGEuc3RhcnRUaW1lc3RhbXAsZW5kVGltZXN0YW1wOmhhbmRsZXJEYXRhLmVuZFRpbWVzdGFtcH07Y2xpZW50LmVtaXQoImJlZm9yZU91dGdvaW5nUmVxdWVzdFNwYW4iLHNwYW4xLGZldGNoSGludCl9cmV0dXJuIHNwYW4xfShoYW5kbGVyRGF0YSxzaG91bGRDcmVhdGVTcGFuLHNob3VsZEF0dGFjaEhlYWRlcnNXaXRoVGFyZ2V0cyxzcGFucyx7cHJvcGFnYXRlVHJhY2VwYXJlbnQsb25SZXF1ZXN0U3BhbkVuZH0pO2lmKGhhbmRsZXJEYXRhLnJlc3BvbnNlJiZoYW5kbGVyRGF0YS5mZXRjaERhdGEuX19zcGFuJiZyZXNwb25zZVRvU3BhbklkLnNldChoYW5kbGVyRGF0YS5yZXNwb25zZSxoYW5kbGVyRGF0YS5mZXRjaERhdGEuX19zcGFuKSxjcmVhdGVkU3Bhbil7bGV0IGZ1bGxVcmw9Z2V0RnVsbFVSTChoYW5kbGVyRGF0YS5mZXRjaERhdGEudXJsKSxob3N0PWZ1bGxVcmw/KDAsdXRpbHNfdXJsLmVuKShmdWxsVXJsKS5ob3N0OnZvaWQgMDtjcmVhdGVkU3Bhbi5zZXRBdHRyaWJ1dGVzKHsiaHR0cC51cmwiOmZ1bGxVcmwsInNlcnZlci5hZGRyZXNzIjpob3N0fSksZW5hYmxlSFRUUFRpbWluZ3MmJmFkZEhUVFBUaW1pbmdzKGNyZWF0ZWRTcGFuKSxvblJlcXVlc3RTcGFuU3RhcnQ/LihjcmVhdGVkU3Bhbix7aGVhZGVyczpoYW5kbGVyRGF0YS5oZWFkZXJzfSl9fSkpLHRyYWNlWEhSJiYoMCxpbnN0cnVtZW50X3hoci5VSykoaGFuZGxlckRhdGE9PntsZXQgY3JlYXRlZFNwYW49ZnVuY3Rpb24oaGFuZGxlckRhdGEsc2hvdWxkQ3JlYXRlU3BhbixzaG91bGRBdHRhY2hIZWFkZXJzLHNwYW5zLHByb3BhZ2F0ZVRyYWNlcGFyZW50LG9uUmVxdWVzdFNwYW5FbmQpe2xldCB4aHI9aGFuZGxlckRhdGEueGhyLHNlbnRyeVhockRhdGE9eGhyPy5baW5zdHJ1bWVudF94aHIueFVdO2lmKCF4aHJ8fHhoci5fX3NlbnRyeV9vd25fcmVxdWVzdF9ffHwhc2VudHJ5WGhyRGF0YSlyZXR1cm47bGV0e3VybCxtZXRob2R9PXNlbnRyeVhockRhdGEsc2hvdWxkQ3JlYXRlU3BhblJlc3VsdD0oMCxoYXNTcGFuc0VuYWJsZWQuZikoKSYmc2hvdWxkQ3JlYXRlU3Bhbih1cmwpO2lmKGhhbmRsZXJEYXRhLmVuZFRpbWVzdGFtcCYmc2hvdWxkQ3JlYXRlU3BhblJlc3VsdCl7bGV0IHNwYW5JZD14aHIuX19zZW50cnlfeGhyX3NwYW5faWRfXztpZighc3BhbklkKXJldHVybjtsZXQgc3Bhbj1zcGFuc1tzcGFuSWRdO3NwYW4mJnZvaWQgMCE9PXNlbnRyeVhockRhdGEuc3RhdHVzX2NvZGUmJigoMCxzcGFuc3RhdHVzLlEwKShzcGFuLHNlbnRyeVhockRhdGEuc3RhdHVzX2NvZGUpLHNwYW4uZW5kKCksb25SZXF1ZXN0U3BhbkVuZD8uKHNwYW4se2hlYWRlcnM6Y3JlYXRlSGVhZGVyc1NhZmVseShmdW5jdGlvbih4aHIpe2xldCBoZWFkZXJzO3RyeXtoZWFkZXJzPXhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKX1jYXRjaChlcnJvcil7cmV0dXJuIGVzbV9kZWJ1Z19idWlsZC5YJiZkZWJ1Z19sb2dnZXIuZkYuZXJyb3IoZXJyb3IsIkZhaWxlZCB0byBnZXQgeGhyIHJlc3BvbnNlIGhlYWRlcnMiLHhocikse319cmV0dXJuIGhlYWRlcnM/aGVhZGVycy5zcGxpdCgiXHJcbiIpLnJlZHVjZSgoYWNjLGxpbmUpPT57bGV0W2tleSx2YWx1ZV09bGluZS5zcGxpdCgiOiAiKTtyZXR1cm4gdmFsdWUmJihhY2Nba2V5LnRvTG93ZXJDYXNlKCldPXZhbHVlKSxhY2N9LHt9KTp7fX0oeGhyKSksZXJyb3I6aGFuZGxlckRhdGEuZXJyb3J9KSxkZWxldGUgc3BhbnNbc3BhbklkXSk7cmV0dXJufWxldCBmdWxsVXJsPWdldEZ1bGxVUkwodXJsKSxwYXJzZWRVcmw9ZnVsbFVybD8oMCx1dGlsc191cmwuZW4pKGZ1bGxVcmwpOigwLHV0aWxzX3VybC5lbikodXJsKSx1cmxGb3JTcGFuTmFtZT0oMCx1dGlsc191cmwucnQpKHVybCksaGFzUGFyZW50PSEhKDAsc3BhblV0aWxzLkhOKSgpLHNwYW4xPXNob3VsZENyZWF0ZVNwYW5SZXN1bHQmJmhhc1BhcmVudD9zdGFydEluYWN0aXZlU3Bhbih7bmFtZTpgJHttZXRob2R9ICR7dXJsRm9yU3Bhbk5hbWV9YCxhdHRyaWJ1dGVzOnt1cmwsdHlwZToieGhyIiwiaHR0cC5tZXRob2QiOm1ldGhvZCwiaHR0cC51cmwiOmZ1bGxVcmwsInNlcnZlci5hZGRyZXNzIjpwYXJzZWRVcmw/Lmhvc3QsW3NlbWFudGljQXR0cmlidXRlcy5TM106ImF1dG8uaHR0cC5icm93c2VyIixbc2VtYW50aWNBdHRyaWJ1dGVzLiRKXToiaHR0cC5jbGllbnQiLC4uLnBhcnNlZFVybD8uc2VhcmNoJiZ7Imh0dHAucXVlcnkiOnBhcnNlZFVybD8uc2VhcmNofSwuLi5wYXJzZWRVcmw/Lmhhc2gmJnsiaHR0cC5mcmFnbWVudCI6cGFyc2VkVXJsPy5oYXNofX19KTpuZXcgc2VudHJ5Tm9uUmVjb3JkaW5nU3Bhbl9TZW50cnlOb25SZWNvcmRpbmdTcGFuO3hoci5fX3NlbnRyeV94aHJfc3Bhbl9pZF9fPXNwYW4xLnNwYW5Db250ZXh0KCkuc3BhbklkLHNwYW5zW3hoci5fX3NlbnRyeV94aHJfc3Bhbl9pZF9fXT1zcGFuMSxzaG91bGRBdHRhY2hIZWFkZXJzKHVybCkmJmZ1bmN0aW9uKHhocixzcGFuLHByb3BhZ2F0ZVRyYWNlcGFyZW50KXtsZXR7InNlbnRyeS10cmFjZSI6c2VudHJ5VHJhY2UsYmFnZ2FnZSx0cmFjZXBhcmVudH09Z2V0VHJhY2VEYXRhKHtzcGFuLHByb3BhZ2F0ZVRyYWNlcGFyZW50fSk7c2VudHJ5VHJhY2UmJmZ1bmN0aW9uKHhocixzZW50cnlUcmFjZUhlYWRlcixzZW50cnlCYWdnYWdlSGVhZGVyLHRyYWNlcGFyZW50SGVhZGVyKXtsZXQgb3JpZ2luYWxIZWFkZXJzPXhoci5fX3NlbnRyeV94aHJfdjNfXz8ucmVxdWVzdF9oZWFkZXJzO2lmKCFvcmlnaW5hbEhlYWRlcnM/Llsic2VudHJ5LXRyYWNlIl0mJnhoci5zZXRSZXF1ZXN0SGVhZGVyKXRyeXtpZih4aHIuc2V0UmVxdWVzdEhlYWRlcigic2VudHJ5LXRyYWNlIixzZW50cnlUcmFjZUhlYWRlciksdHJhY2VwYXJlbnRIZWFkZXImJiFvcmlnaW5hbEhlYWRlcnM/LnRyYWNlcGFyZW50JiZ4aHIuc2V0UmVxdWVzdEhlYWRlcigidHJhY2VwYXJlbnQiLHRyYWNlcGFyZW50SGVhZGVyKSxzZW50cnlCYWdnYWdlSGVhZGVyKXtsZXQgb3JpZ2luYWxCYWdnYWdlSGVhZGVyPW9yaWdpbmFsSGVhZGVycz8uYmFnZ2FnZTtvcmlnaW5hbEJhZ2dhZ2VIZWFkZXImJm9yaWdpbmFsQmFnZ2FnZUhlYWRlci5zcGxpdCgiLCIpLnNvbWUodmFsdWU9PnZhbHVlLnRyaW0oKS5zdGFydHNXaXRoKCJzZW50cnktIikpfHx4aHIuc2V0UmVxdWVzdEhlYWRlcigiYmFnZ2FnZSIsc2VudHJ5QmFnZ2FnZUhlYWRlcil9fWNhdGNoe319KHhocixzZW50cnlUcmFjZSxiYWdnYWdlLHRyYWNlcGFyZW50KX0oeGhyLCgwLGhhc1NwYW5zRW5hYmxlZC5mKSgpJiZoYXNQYXJlbnQ/c3BhbjE6dm9pZCAwLHByb3BhZ2F0ZVRyYWNlcGFyZW50KTtsZXQgY2xpZW50PSgwLGN1cnJlbnRTY29wZXMuczMpKCk7cmV0dXJuIGNsaWVudCYmY2xpZW50LmVtaXQoImJlZm9yZU91dGdvaW5nUmVxdWVzdFNwYW4iLHNwYW4xLGhhbmRsZXJEYXRhKSxzcGFuMX0oaGFuZGxlckRhdGEsc2hvdWxkQ3JlYXRlU3BhbixzaG91bGRBdHRhY2hIZWFkZXJzV2l0aFRhcmdldHMsc3BhbnMscHJvcGFnYXRlVHJhY2VwYXJlbnQsb25SZXF1ZXN0U3BhbkVuZCk7Y3JlYXRlZFNwYW4mJihlbmFibGVIVFRQVGltaW5ncyYmYWRkSFRUUFRpbWluZ3MoY3JlYXRlZFNwYW4pLG9uUmVxdWVzdFNwYW5TdGFydD8uKGNyZWF0ZWRTcGFuLHtoZWFkZXJzOmNyZWF0ZUhlYWRlcnNTYWZlbHkoaGFuZGxlckRhdGEueGhyLl9fc2VudHJ5X3hocl92M19fPy5yZXF1ZXN0X2hlYWRlcnMpfSkpfSl9KGNsaWVudCx7dHJhY2VGZXRjaCx0cmFjZVhIUix0cmFja0ZldGNoU3RyZWFtUGVyZm9ybWFuY2UsdHJhY2VQcm9wYWdhdGlvblRhcmdldHM6Y2xpZW50LmdldE9wdGlvbnMoKS50cmFjZVByb3BhZ2F0aW9uVGFyZ2V0cyxzaG91bGRDcmVhdGVTcGFuRm9yUmVxdWVzdCxlbmFibGVIVFRQVGltaW5ncyxvblJlcXVlc3RTcGFuU3RhcnQsb25SZXF1ZXN0U3BhbkVuZH0pfX19O2Z1bmN0aW9uIHN0YXJ0QnJvd3NlclRyYWNpbmdQYWdlTG9hZFNwYW4oY2xpZW50LHNwYW5PcHRpb25zLHRyYWNlT3B0aW9ucyl7Y2xpZW50LmVtaXQoInN0YXJ0UGFnZUxvYWRTcGFuIixzcGFuT3B0aW9ucyx0cmFjZU9wdGlvbnMpLCgwLGN1cnJlbnRTY29wZXMublopKCkuc2V0VHJhbnNhY3Rpb25OYW1lKHNwYW5PcHRpb25zLm5hbWUpO2xldCBwYWdlbG9hZFNwYW49Y2xpZW50W0FDVElWRV9JRExFX1NQQU5fUFJPUEVSVFldO3JldHVybiBwYWdlbG9hZFNwYW4mJmNsaWVudC5lbWl0KCJhZnRlclN0YXJ0UGFnZUxvYWRTcGFuIixwYWdlbG9hZFNwYW4pLHBhZ2Vsb2FkU3Bhbn1mdW5jdGlvbiBzdGFydEJyb3dzZXJUcmFjaW5nTmF2aWdhdGlvblNwYW4oY2xpZW50LHNwYW5PcHRpb25zLG9wdGlvbnMpe2xldHt1cmwsaXNSZWRpcmVjdH09b3B0aW9uc3x8e307Y2xpZW50LmVtaXQoImJlZm9yZVN0YXJ0TmF2aWdhdGlvblNwYW4iLHNwYW5PcHRpb25zLHtpc1JlZGlyZWN0fSksY2xpZW50LmVtaXQoInN0YXJ0TmF2aWdhdGlvblNwYW4iLHNwYW5PcHRpb25zLHtpc1JlZGlyZWN0fSk7bGV0IHNjb3BlPSgwLGN1cnJlbnRTY29wZXMublopKCk7cmV0dXJuIHNjb3BlLnNldFRyYW5zYWN0aW9uTmFtZShzcGFuT3B0aW9ucy5uYW1lKSx1cmwmJiFpc1JlZGlyZWN0JiZzY29wZS5zZXRTREtQcm9jZXNzaW5nTWV0YWRhdGEoe25vcm1hbGl6ZWRSZXF1ZXN0OnsuLi4oMCxoZWxwZXJzLlBKKSgpLHVybH19KSxjbGllbnRbQUNUSVZFX0lETEVfU1BBTl9QUk9QRVJUWV19ZnVuY3Rpb24gZ2V0TWV0YUNvbnRlbnQobWV0YU5hbWUpe2xldCBvcHRpb25hbFdpbmRvd0RvY3VtZW50PWhlbHBlcnMubTkuZG9jdW1lbnQsbWV0YVRhZz1vcHRpb25hbFdpbmRvd0RvY3VtZW50Py5xdWVyeVNlbGVjdG9yKGBtZXRhW25hbWU9JHttZXRhTmFtZX1dYCk7cmV0dXJuIG1ldGFUYWc/LmdldEF0dHJpYnV0ZSgiY29udGVudCIpfHx2b2lkIDB9bGV0IEFDVElWRV9JRExFX1NQQU5fUFJPUEVSVFk9Il9zZW50cnlfaWRsZVNwYW4ifSw2MDgxMTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7RzpmdW5jdGlvbigpe3JldHVybiBnZXRBc3luY0NvbnRleHRTdHJhdGVneX19KTt2YXIgZXNtX2NhcnJpZXI9X193ZWJwYWNrX3JlcXVpcmVfXygxMzUzMyksZXNtX3Njb3BlPV9fd2VicGFja19yZXF1aXJlX18oNDM5MjcpLGlzPV9fd2VicGFja19yZXF1aXJlX18oNDE3NDUpO2NsYXNzIEFzeW5jQ29udGV4dFN0YWNre2NvbnN0cnVjdG9yKHNjb3BlLGlzb2xhdGlvblNjb3BlKXtsZXQgYXNzaWduZWRTY29wZSxhc3NpZ25lZElzb2xhdGlvblNjb3BlO2Fzc2lnbmVkU2NvcGU9c2NvcGV8fG5ldyBlc21fc2NvcGUucyxhc3NpZ25lZElzb2xhdGlvblNjb3BlPWlzb2xhdGlvblNjb3BlfHxuZXcgZXNtX3Njb3BlLnMsdGhpcy5fc3RhY2s9W3tzY29wZTphc3NpZ25lZFNjb3BlfV0sdGhpcy5faXNvbGF0aW9uU2NvcGU9YXNzaWduZWRJc29sYXRpb25TY29wZX13aXRoU2NvcGUoY2FsbGJhY2spe2xldCBtYXliZVByb21pc2VSZXN1bHQ7bGV0IHNjb3BlPXRoaXMuX3B1c2hTY29wZSgpO3RyeXttYXliZVByb21pc2VSZXN1bHQ9Y2FsbGJhY2soc2NvcGUpfWNhdGNoKGUpe3Rocm93IHRoaXMuX3BvcFNjb3BlKCksZX1yZXR1cm4oMCxpcy5KOCkobWF5YmVQcm9taXNlUmVzdWx0KT9tYXliZVByb21pc2VSZXN1bHQudGhlbihyZXM9Pih0aGlzLl9wb3BTY29wZSgpLHJlcyksZT0+e3Rocm93IHRoaXMuX3BvcFNjb3BlKCksZX0pOih0aGlzLl9wb3BTY29wZSgpLG1heWJlUHJvbWlzZVJlc3VsdCl9Z2V0Q2xpZW50KCl7cmV0dXJuIHRoaXMuZ2V0U3RhY2tUb3AoKS5jbGllbnR9Z2V0U2NvcGUoKXtyZXR1cm4gdGhpcy5nZXRTdGFja1RvcCgpLnNjb3BlfWdldElzb2xhdGlvblNjb3BlKCl7cmV0dXJuIHRoaXMuX2lzb2xhdGlvblNjb3BlfWdldFN0YWNrVG9wKCl7cmV0dXJuIHRoaXMuX3N0YWNrW3RoaXMuX3N0YWNrLmxlbmd0aC0xXX1fcHVzaFNjb3BlKCl7bGV0IHNjb3BlPXRoaXMuZ2V0U2NvcGUoKS5jbG9uZSgpO3JldHVybiB0aGlzLl9zdGFjay5wdXNoKHtjbGllbnQ6dGhpcy5nZXRDbGllbnQoKSxzY29wZX0pLHNjb3BlfV9wb3BTY29wZSgpe3JldHVybiEodGhpcy5fc3RhY2subGVuZ3RoPD0xKSYmISF0aGlzLl9zdGFjay5wb3AoKX19ZnVuY3Rpb24gZ2V0QXN5bmNDb250ZXh0U3RhY2soKXtsZXQgcmVnaXN0cnk9KDAsZXNtX2NhcnJpZXIuY3UpKCksc2VudHJ5PSgwLGVzbV9jYXJyaWVyLnFBKShyZWdpc3RyeSk7cmV0dXJuIHNlbnRyeS5zdGFjaz1zZW50cnkuc3RhY2t8fG5ldyBBc3luY0NvbnRleHRTdGFjaygoMCxlc21fY2Fycmllci5ZTykoImRlZmF1bHRDdXJyZW50U2NvcGUiLCgpPT5uZXcgZXNtX3Njb3BlLnMpLCgwLGVzbV9jYXJyaWVyLllPKSgiZGVmYXVsdElzb2xhdGlvblNjb3BlIiwoKT0+bmV3IGVzbV9zY29wZS5zKSl9ZnVuY3Rpb24gd2l0aFNjb3BlKGNhbGxiYWNrKXtyZXR1cm4gZ2V0QXN5bmNDb250ZXh0U3RhY2soKS53aXRoU2NvcGUoY2FsbGJhY2spfWZ1bmN0aW9uIHdpdGhTZXRTY29wZShzY29wZSxjYWxsYmFjayl7bGV0IHN0YWNrPWdldEFzeW5jQ29udGV4dFN0YWNrKCk7cmV0dXJuIHN0YWNrLndpdGhTY29wZSgoKT0+KHN0YWNrLmdldFN0YWNrVG9wKCkuc2NvcGU9c2NvcGUsY2FsbGJhY2soc2NvcGUpKSl9ZnVuY3Rpb24gd2l0aElzb2xhdGlvblNjb3BlKGNhbGxiYWNrKXtyZXR1cm4gZ2V0QXN5bmNDb250ZXh0U3RhY2soKS53aXRoU2NvcGUoKCk9PmNhbGxiYWNrKGdldEFzeW5jQ29udGV4dFN0YWNrKCkuZ2V0SXNvbGF0aW9uU2NvcGUoKSkpfWZ1bmN0aW9uIGdldEFzeW5jQ29udGV4dFN0cmF0ZWd5KGNhcnJpZXIpe2xldCBzZW50cnk9KDAsZXNtX2NhcnJpZXIucUEpKGNhcnJpZXIpO3JldHVybiBzZW50cnkuYWNzP3NlbnRyeS5hY3M6e3dpdGhJc29sYXRpb25TY29wZSx3aXRoU2NvcGUsd2l0aFNldFNjb3BlLHdpdGhTZXRJc29sYXRpb25TY29wZTooX2lzb2xhdGlvblNjb3BlLGNhbGxiYWNrKT0+d2l0aElzb2xhdGlvblNjb3BlKGNhbGxiYWNrKSxnZXRDdXJyZW50U2NvcGU6KCk9PmdldEFzeW5jQ29udGV4dFN0YWNrKCkuZ2V0U2NvcGUoKSxnZXRJc29sYXRpb25TY29wZTooKT0+Z2V0QXN5bmNDb250ZXh0U3RhY2soKS5nZXRJc29sYXRpb25TY29wZSgpfX19LDEzNTMzOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtZTzpmdW5jdGlvbigpe3JldHVybiBnZXRHbG9iYWxTaW5nbGV0b259LGN1OmZ1bmN0aW9uKCl7cmV0dXJuIGdldE1haW5DYXJyaWVyfSxxQTpmdW5jdGlvbigpe3JldHVybiBnZXRTZW50cnlDYXJyaWVyfX0pO3ZhciBfdXRpbHNfdmVyc2lvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oMzk0OTQpLF91dGlsc193b3JsZHdpZGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDUxNTk3KTtmdW5jdGlvbiBnZXRNYWluQ2Fycmllcigpe3JldHVybiBnZXRTZW50cnlDYXJyaWVyKF91dGlsc193b3JsZHdpZGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5uKSxfdXRpbHNfd29ybGR3aWRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubn1mdW5jdGlvbiBnZXRTZW50cnlDYXJyaWVyKGNhcnJpZXIpe2xldCBfX1NFTlRSWV9fPWNhcnJpZXIuX19TRU5UUllfXz1jYXJyaWVyLl9fU0VOVFJZX198fHt9O3JldHVybiBfX1NFTlRSWV9fLnZlcnNpb249X19TRU5UUllfXy52ZXJzaW9ufHxfdXRpbHNfdmVyc2lvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkosX19TRU5UUllfX1tfdXRpbHNfdmVyc2lvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkpdPV9fU0VOVFJZX19bX3V0aWxzX3ZlcnNpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5KXXx8e319ZnVuY3Rpb24gZ2V0R2xvYmFsU2luZ2xldG9uKG5hbWUsY3JlYXRvcixvYmo9X3V0aWxzX3dvcmxkd2lkZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLm4pe2xldCBfX1NFTlRSWV9fPW9iai5fX1NFTlRSWV9fPW9iai5fX1NFTlRSWV9ffHx7fSxjYXJyaWVyPV9fU0VOVFJZX19bX3V0aWxzX3ZlcnNpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5KXT1fX1NFTlRSWV9fW191dGlsc192ZXJzaW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uSl18fHt9O3JldHVybiBjYXJyaWVyW25hbWVdfHwoY2FycmllcltuYW1lXT1jcmVhdG9yKCkpfX0sNzMyNDM6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se0o6ZnVuY3Rpb24oKXtyZXR1cm4gREVGQVVMVF9FTlZJUk9OTUVOVH19KTtsZXQgREVGQVVMVF9FTlZJUk9OTUVOVD0icHJvZHVjdGlvbiJ9LDczMDc2OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHskZTpmdW5jdGlvbigpe3JldHVybiB3aXRoU2NvcGV9LFhYOmZ1bmN0aW9uKCl7cmV0dXJuIGdldFRyYWNlQ29udGV4dEZyb21TY29wZX0sYUY6ZnVuY3Rpb24oKXtyZXR1cm4gZ2V0SXNvbGF0aW9uU2NvcGV9LGxXOmZ1bmN0aW9uKCl7cmV0dXJuIGdldEdsb2JhbFNjb3BlfSxuWjpmdW5jdGlvbigpe3JldHVybiBnZXRDdXJyZW50U2NvcGV9LHMzOmZ1bmN0aW9uKCl7cmV0dXJuIGdldENsaWVudH19KTt2YXIgX2FzeW5jQ29udGV4dF9pbmRleF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oNjA4MTEpLF9jYXJyaWVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXygxMzUzMyksX3Njb3BlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXyg0MzkyNyksX3V0aWxzX3Byb3BhZ2F0aW9uQ29udGV4dF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fPV9fd2VicGFja19yZXF1aXJlX18oODE1MSk7ZnVuY3Rpb24gZ2V0Q3VycmVudFNjb3BlKCl7bGV0IGNhcnJpZXI9KDAsX2NhcnJpZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jdSkoKSxhY3M9KDAsX2FzeW5jQ29udGV4dF9pbmRleF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkcpKGNhcnJpZXIpO3JldHVybiBhY3MuZ2V0Q3VycmVudFNjb3BlKCl9ZnVuY3Rpb24gZ2V0SXNvbGF0aW9uU2NvcGUoKXtsZXQgY2Fycmllcj0oMCxfY2Fycmllcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmN1KSgpLGFjcz0oMCxfYXN5bmNDb250ZXh0X2luZGV4X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uRykoY2Fycmllcik7cmV0dXJuIGFjcy5nZXRJc29sYXRpb25TY29wZSgpfWZ1bmN0aW9uIGdldEdsb2JhbFNjb3BlKCl7cmV0dXJuKDAsX2NhcnJpZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5ZTykoImdsb2JhbFNjb3BlIiwoKT0+bmV3IF9zY29wZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnMpfWZ1bmN0aW9uIHdpdGhTY29wZSguLi5yZXN0KXtsZXQgY2Fycmllcj0oMCxfY2Fycmllcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmN1KSgpLGFjcz0oMCxfYXN5bmNDb250ZXh0X2luZGV4X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uRykoY2Fycmllcik7aWYoMj09PXJlc3QubGVuZ3RoKXtsZXRbc2NvcGUsY2FsbGJhY2tdPXJlc3Q7cmV0dXJuIHNjb3BlP2Fjcy53aXRoU2V0U2NvcGUoc2NvcGUsY2FsbGJhY2spOmFjcy53aXRoU2NvcGUoY2FsbGJhY2spfXJldHVybiBhY3Mud2l0aFNjb3BlKHJlc3RbMF0pfWZ1bmN0aW9uIGdldENsaWVudCgpe3JldHVybiBnZXRDdXJyZW50U2NvcGUoKS5nZXRDbGllbnQoKX1mdW5jdGlvbiBnZXRUcmFjZUNvbnRleHRGcm9tU2NvcGUoc2NvcGUpe2xldCBwcm9wYWdhdGlvbkNvbnRleHQ9c2NvcGUuZ2V0UHJvcGFnYXRpb25Db250ZXh0KCkse3RyYWNlSWQscGFyZW50U3BhbklkLHByb3BhZ2F0aW9uU3BhbklkfT1wcm9wYWdhdGlvbkNvbnRleHQsdHJhY2VDb250ZXh0PXt0cmFjZV9pZDp0cmFjZUlkLHNwYW5faWQ6cHJvcGFnYXRpb25TcGFuSWR8fCgwLF91dGlsc19wcm9wYWdhdGlvbkNvbnRleHRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5NKSgpfTtyZXR1cm4gcGFyZW50U3BhbklkJiYodHJhY2VDb250ZXh0LnBhcmVudF9zcGFuX2lkPXBhcmVudFNwYW5JZCksdHJhY2VDb250ZXh0fX0sOTQyMjM6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1g6ZnVuY3Rpb24oKXtyZXR1cm4gREVCVUdfQlVJTER9fSk7bGV0IERFQlVHX0JVSUxEPSExfSwxMTc5MzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7TXE6ZnVuY3Rpb24oKXtyZXR1cm4gY3JlYXRlRXZlbnRFbnZlbG9wZX0sUTM6ZnVuY3Rpb24oKXtyZXR1cm4gY3JlYXRlU2Vzc2lvbkVudmVsb3BlfSx1RTpmdW5jdGlvbigpe3JldHVybiBjcmVhdGVTcGFuRW52ZWxvcGV9fSk7dmFyIF90cmFjaW5nX2R5bmFtaWNTYW1wbGluZ0NvbnRleHRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDcyMTIzKSxfdXRpbHNfZHNuX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg1MjYzNyksX3V0aWxzX2VudmVsb3BlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg2NDAwNCksX3V0aWxzX3Nob3VsZF9pZ25vcmVfc3Bhbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fPV9fd2VicGFja19yZXF1aXJlX18oOTE4MTkpLF91dGlsc19zcGFuVXRpbHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDgxNTg1KTtmdW5jdGlvbiBjcmVhdGVTZXNzaW9uRW52ZWxvcGUoc2Vzc2lvbixkc24sbWV0YWRhdGEsdHVubmVsKXtsZXQgc2RrSW5mbz0oMCxfdXRpbHNfZW52ZWxvcGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5IWSkobWV0YWRhdGEpLGVudmVsb3BlSGVhZGVycz17c2VudF9hdDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksLi4uc2RrSW5mbyYme3NkazpzZGtJbmZvfSwuLi4hIXR1bm5lbCYmZHNuJiZ7ZHNuOigwLF91dGlsc19kc25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5SQSkoZHNuKX19LGVudmVsb3BlSXRlbT0iYWdncmVnYXRlcyJpbiBzZXNzaW9uP1t7dHlwZToic2Vzc2lvbnMifSxzZXNzaW9uXTpbe3R5cGU6InNlc3Npb24ifSxzZXNzaW9uLnRvSlNPTigpXTtyZXR1cm4oMCxfdXRpbHNfZW52ZWxvcGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5KZCkoZW52ZWxvcGVIZWFkZXJzLFtlbnZlbG9wZUl0ZW1dKX1mdW5jdGlvbiBjcmVhdGVFdmVudEVudmVsb3BlKGV2ZW50LGRzbixtZXRhZGF0YSx0dW5uZWwpe2xldCBzZGtJbmZvPSgwLF91dGlsc19lbnZlbG9wZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkhZKShtZXRhZGF0YSksZXZlbnRUeXBlPWV2ZW50LnR5cGUmJiJyZXBsYXlfZXZlbnQiIT09ZXZlbnQudHlwZT9ldmVudC50eXBlOiJldmVudCI7IWZ1bmN0aW9uKGV2ZW50LG5ld1Nka0luZm8pe2lmKCFuZXdTZGtJbmZvKXJldHVybjtsZXQgZXZlbnRTZGtJbmZvPWV2ZW50LnNka3x8e307ZXZlbnQuc2RrPXsuLi5ldmVudFNka0luZm8sbmFtZTpldmVudFNka0luZm8ubmFtZXx8bmV3U2RrSW5mby5uYW1lLHZlcnNpb246ZXZlbnRTZGtJbmZvLnZlcnNpb258fG5ld1Nka0luZm8udmVyc2lvbixpbnRlZ3JhdGlvbnM6Wy4uLmV2ZW50LnNkaz8uaW50ZWdyYXRpb25zfHxbXSwuLi5uZXdTZGtJbmZvLmludGVncmF0aW9uc3x8W11dLHBhY2thZ2VzOlsuLi5ldmVudC5zZGs/LnBhY2thZ2VzfHxbXSwuLi5uZXdTZGtJbmZvLnBhY2thZ2VzfHxbXV0sc2V0dGluZ3M6ZXZlbnQuc2RrPy5zZXR0aW5nc3x8bmV3U2RrSW5mby5zZXR0aW5ncz97Li4uZXZlbnQuc2RrPy5zZXR0aW5ncywuLi5uZXdTZGtJbmZvLnNldHRpbmdzfTp2b2lkIDB9fShldmVudCxtZXRhZGF0YT8uc2RrKTtsZXQgZW52ZWxvcGVIZWFkZXJzPSgwLF91dGlsc19lbnZlbG9wZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkNkKShldmVudCxzZGtJbmZvLHR1bm5lbCxkc24pO2RlbGV0ZSBldmVudC5zZGtQcm9jZXNzaW5nTWV0YWRhdGE7bGV0IGV2ZW50SXRlbT1be3R5cGU6ZXZlbnRUeXBlfSxldmVudF07cmV0dXJuKDAsX3V0aWxzX2VudmVsb3BlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uSmQpKGVudmVsb3BlSGVhZGVycyxbZXZlbnRJdGVtXSl9ZnVuY3Rpb24gY3JlYXRlU3BhbkVudmVsb3BlKHNwYW5zLGNsaWVudCl7bGV0IGRzYz0oMCxfdHJhY2luZ19keW5hbWljU2FtcGxpbmdDb250ZXh0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uakMpKHNwYW5zWzBdKSxkc249Y2xpZW50Py5nZXREc24oKSx0dW5uZWw9Y2xpZW50Py5nZXRPcHRpb25zKCkudHVubmVsLGhlYWRlcnM9e3NlbnRfYXQ6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLC4uLiEhZHNjLnRyYWNlX2lkJiYhIWRzYy5wdWJsaWNfa2V5JiZ7dHJhY2U6ZHNjfSwuLi4hIXR1bm5lbCYmZHNuJiZ7ZHNuOigwLF91dGlsc19kc25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5SQSkoZHNuKX19LHtiZWZvcmVTZW5kU3BhbixpZ25vcmVTcGFuc309Y2xpZW50Py5nZXRPcHRpb25zKCl8fHt9LGZpbHRlcmVkU3BhbnM9aWdub3JlU3BhbnM/Lmxlbmd0aD9zcGFucy5maWx0ZXIoc3Bhbj0+ISgwLF91dGlsc19zaG91bGRfaWdub3JlX3NwYW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5sKSgoMCxfdXRpbHNfc3BhblV0aWxzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uWFUpKHNwYW4pLGlnbm9yZVNwYW5zKSk6c3BhbnMsZHJvcHBlZFNwYW5zPXNwYW5zLmxlbmd0aC1maWx0ZXJlZFNwYW5zLmxlbmd0aDtkcm9wcGVkU3BhbnMmJmNsaWVudD8ucmVjb3JkRHJvcHBlZEV2ZW50KCJiZWZvcmVfc2VuZCIsInNwYW4iLGRyb3BwZWRTcGFucyk7bGV0IGNvbnZlcnRUb1NwYW5KU09OPWJlZm9yZVNlbmRTcGFuP3NwYW49PntsZXQgc3Bhbkpzb249KDAsX3V0aWxzX3NwYW5VdGlsc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlhVKShzcGFuKSxwcm9jZXNzZWRTcGFuPWJlZm9yZVNlbmRTcGFuKHNwYW5Kc29uKTtyZXR1cm4gcHJvY2Vzc2VkU3Bhbnx8KCgwLF91dGlsc19zcGFuVXRpbHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5SNikoKSxzcGFuSnNvbil9Ol91dGlsc19zcGFuVXRpbHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5YVSxpdGVtcz1bXTtmb3IobGV0IHNwYW4gb2YgZmlsdGVyZWRTcGFucyl7bGV0IHNwYW5Kc29uPWNvbnZlcnRUb1NwYW5KU09OKHNwYW4pO3NwYW5Kc29uJiZpdGVtcy5wdXNoKCgwLF91dGlsc19lbnZlbG9wZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLktRKShzcGFuSnNvbikpfXJldHVybigwLF91dGlsc19lbnZlbG9wZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkpkKShoZWFkZXJzLGl0ZW1zKX19LDM5NDI0OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtReTpmdW5jdGlvbigpe3JldHVybiBhZGRFdmVudFByb2Nlc3Nvcn0sVGI6ZnVuY3Rpb24oKXtyZXR1cm4gY2FwdHVyZUV4Y2VwdGlvbn0sX2s6ZnVuY3Rpb24oKXtyZXR1cm4gaXNFbmFibGVkfSxjZzpmdW5jdGlvbigpe3JldHVybiBjYXB0dXJlU2Vzc2lvbn0sZU46ZnVuY3Rpb24oKXtyZXR1cm4gY2FwdHVyZUV2ZW50fSx2OmZ1bmN0aW9uKCl7cmV0dXJuIHNldENvbnRleHR9LHlqOmZ1bmN0aW9uKCl7cmV0dXJuIHN0YXJ0U2Vzc2lvbn0seWw6ZnVuY3Rpb24oKXtyZXR1cm4gZmx1c2h9fSk7dmFyIF9jdXJyZW50U2NvcGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg3MzA3NiksX2RlYnVnX2J1aWxkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXyg5NDIyMyksX3Nlc3Npb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDEwMDQyKSxfdXRpbHNfZGVidWdfbG9nZ2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX189X193ZWJwYWNrX3JlcXVpcmVfXyg1ODI0KSxfdXRpbHNfcHJlcGFyZUV2ZW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg1MzEyKSxfdXRpbHNfd29ybGR3aWRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X189X193ZWJwYWNrX3JlcXVpcmVfXyg1MTU5Nyk7ZnVuY3Rpb24gY2FwdHVyZUV4Y2VwdGlvbihleGNlcHRpb24saGludCl7cmV0dXJuKDAsX2N1cnJlbnRTY29wZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5uWikoKS5jYXB0dXJlRXhjZXB0aW9uKGV4Y2VwdGlvbiwoMCxfdXRpbHNfcHJlcGFyZUV2ZW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uVTApKGhpbnQpKX1mdW5jdGlvbiBjYXB0dXJlRXZlbnQoZXZlbnQsaGludCl7cmV0dXJuKDAsX2N1cnJlbnRTY29wZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5uWikoKS5jYXB0dXJlRXZlbnQoZXZlbnQsaGludCl9ZnVuY3Rpb24gc2V0Q29udGV4dChuYW1lLGNvbnRleHQpeygwLF9jdXJyZW50U2NvcGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uYUYpKCkuc2V0Q29udGV4dChuYW1lLGNvbnRleHQpfWFzeW5jIGZ1bmN0aW9uIGZsdXNoKHRpbWVvdXQpe2xldCBjbGllbnQ9KDAsX2N1cnJlbnRTY29wZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5zMykoKTtyZXR1cm4gY2xpZW50P2NsaWVudC5mbHVzaCh0aW1lb3V0KTooX2RlYnVnX2J1aWxkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uWCYmX3V0aWxzX2RlYnVnX2xvZ2dlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmZGLndhcm4oIkNhbm5vdCBmbHVzaCBldmVudHMuIE5vIGNsaWVudCBkZWZpbmVkLiIpLFByb21pc2UucmVzb2x2ZSghMSkpfWZ1bmN0aW9uIGlzRW5hYmxlZCgpe2xldCBjbGllbnQ9KDAsX2N1cnJlbnRTY29wZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5zMykoKTtyZXR1cm4hMSE9PWNsaWVudD8uZ2V0T3B0aW9ucygpLmVuYWJsZWQmJiEhY2xpZW50Py5nZXRUcmFuc3BvcnQoKX1mdW5jdGlvbiBhZGRFdmVudFByb2Nlc3NvcihjYWxsYmFjayl7KDAsX2N1cnJlbnRTY29wZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5hRikoKS5hZGRFdmVudFByb2Nlc3NvcihjYWxsYmFjayl9ZnVuY3Rpb24gc3RhcnRTZXNzaW9uKGNvbnRleHQpe2xldCBpc29sYXRpb25TY29wZT0oMCxfY3VycmVudFNjb3Blc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmFGKSgpLGN1cnJlbnRTY29wZT0oMCxfY3VycmVudFNjb3Blc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLm5aKSgpLHt1c2VyQWdlbnR9PV91dGlsc193b3JsZHdpZGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5uLm5hdmlnYXRvcnx8e30sc2Vzc2lvbj0oMCxfc2Vzc2lvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLkh2KSh7dXNlcjpjdXJyZW50U2NvcGUuZ2V0VXNlcigpfHxpc29sYXRpb25TY29wZS5nZXRVc2VyKCksLi4udXNlckFnZW50JiZ7dXNlckFnZW50fSwuLi5jb250ZXh0fSksY3VycmVudFNlc3Npb249aXNvbGF0aW9uU2NvcGUuZ2V0U2Vzc2lvbigpO3JldHVybiBjdXJyZW50U2Vzc2lvbj8uc3RhdHVzPT09Im9rIiYmKDAsX3Nlc3Npb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5DVCkoY3VycmVudFNlc3Npb24se3N0YXR1czoiZXhpdGVkIn0pLGVuZFNlc3Npb24oKSxpc29sYXRpb25TY29wZS5zZXRTZXNzaW9uKHNlc3Npb24pLHNlc3Npb259ZnVuY3Rpb24gZW5kU2Vzc2lvbigpe2xldCBpc29sYXRpb25TY29wZT0oMCxfY3VycmVudFNjb3Blc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmFGKSgpLGN1cnJlbnRTY29wZT0oMCxfY3VycmVudFNjb3Blc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLm5aKSgpLHNlc3Npb249Y3VycmVudFNjb3BlLmdldFNlc3Npb24oKXx8aXNvbGF0aW9uU2NvcGUuZ2V0U2Vzc2lvbigpO3Nlc3Npb24mJigwLF9zZXNzaW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uUkopKHNlc3Npb24pLF9zZW5kU2Vzc2lvblVwZGF0ZSgpLGlzb2xhdGlvblNjb3BlLnNldFNlc3Npb24oKX1mdW5jdGlvbiBfc2VuZFNlc3Npb25VcGRhdGUoKXtsZXQgaXNvbGF0aW9uU2NvcGU9KDAsX2N1cnJlbnRTY29wZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5hRikoKSxjbGllbnQ9KDAsX2N1cnJlbnRTY29wZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5zMykoKSxzZXNzaW9uPWlzb2xhdGlvblNjb3BlLmdldFNlc3Npb24oKTtzZXNzaW9uJiZjbGllbnQmJmNsaWVudC5jYXB0dXJlU2Vzc2lvbihzZXNzaW9uKX1mdW5jdGlvbiBjYXB0dXJlU2Vzc2lvbihlbmQ9ITEpe2lmKGVuZCl7ZW5kU2Vzc2lvbigpO3JldHVybn1fc2VuZFNlc3Npb25VcGRhdGUoKX19LDEyMzE6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1VmOmZ1bmN0aW9uKCl7cmV0dXJuIGFkZEZldGNoSW5zdHJ1bWVudGF0aW9uSGFuZGxlcn0sY2Y6ZnVuY3Rpb24oKXtyZXR1cm4gYWRkRmV0Y2hFbmRJbnN0cnVtZW50YXRpb25IYW5kbGVyfX0pO3ZhciBfdXRpbHNfaXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQxNzQ1KSxfdXRpbHNfb2JqZWN0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXyg5MzgyMCksX3V0aWxzX3N1cHBvcnRzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg0Nzk3NyksX3V0aWxzX3RpbWVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDkwNzcyKSxfdXRpbHNfd29ybGR3aWRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX189X193ZWJwYWNrX3JlcXVpcmVfXyg1MTU5NyksX2hhbmRsZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg5MTQ5OSk7ZnVuY3Rpb24gYWRkRmV0Y2hJbnN0cnVtZW50YXRpb25IYW5kbGVyKGhhbmRsZXIsc2tpcE5hdGl2ZUZldGNoQ2hlY2spe2xldCB0eXBlPSJmZXRjaCI7KDAsX2hhbmRsZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uSGopKHR5cGUsaGFuZGxlciksKDAsX2hhbmRsZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRDIpKHR5cGUsKCk9Pmluc3RydW1lbnRGZXRjaCh2b2lkIDAsc2tpcE5hdGl2ZUZldGNoQ2hlY2spKX1mdW5jdGlvbiBhZGRGZXRjaEVuZEluc3RydW1lbnRhdGlvbkhhbmRsZXIoaGFuZGxlcil7bGV0IHR5cGU9ImZldGNoLWJvZHktcmVzb2x2ZWQiOygwLF9oYW5kbGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkhqKSh0eXBlLGhhbmRsZXIpLCgwLF9oYW5kbGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkQyKSh0eXBlLCgpPT5pbnN0cnVtZW50RmV0Y2goc3RyZWFtSGFuZGxlcikpfWZ1bmN0aW9uIGluc3RydW1lbnRGZXRjaChvbkZldGNoUmVzb2x2ZWQsc2tpcE5hdGl2ZUZldGNoQ2hlY2s9ITEpeyghc2tpcE5hdGl2ZUZldGNoQ2hlY2t8fCgwLF91dGlsc19zdXBwb3J0c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnQkKSgpKSYmKDAsX3V0aWxzX29iamVjdF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmhsKShfdXRpbHNfd29ybGR3aWRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18ubiwiZmV0Y2giLGZ1bmN0aW9uKG9yaWdpbmFsRmV0Y2gpe3JldHVybiBmdW5jdGlvbiguLi5hcmdzKXtsZXQgdmlydHVhbEVycm9yPUVycm9yKCkse21ldGhvZCx1cmx9PWZ1bmN0aW9uKGZldGNoQXJncyl7aWYoMD09PWZldGNoQXJncy5sZW5ndGgpcmV0dXJue21ldGhvZDoiR0VUIix1cmw6IiJ9O2lmKDI9PT1mZXRjaEFyZ3MubGVuZ3RoKXtsZXRbcmVzb3VyY2Usb3B0aW9uc109ZmV0Y2hBcmdzO3JldHVybnt1cmw6Z2V0VXJsRnJvbVJlc291cmNlKHJlc291cmNlKSxtZXRob2Q6aGFzUHJvcChvcHRpb25zLCJtZXRob2QiKT9TdHJpbmcob3B0aW9ucy5tZXRob2QpLnRvVXBwZXJDYXNlKCk6KDAsX3V0aWxzX2lzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ0opKHJlc291cmNlKSYmaGFzUHJvcChyZXNvdXJjZSwibWV0aG9kIik/U3RyaW5nKHJlc291cmNlLm1ldGhvZCkudG9VcHBlckNhc2UoKToiR0VUIn19bGV0IGFyZz1mZXRjaEFyZ3NbMF07cmV0dXJue3VybDpnZXRVcmxGcm9tUmVzb3VyY2UoYXJnKSxtZXRob2Q6aGFzUHJvcChhcmcsIm1ldGhvZCIpP1N0cmluZyhhcmcubWV0aG9kKS50b1VwcGVyQ2FzZSgpOiJHRVQifX0oYXJncyksaGFuZGxlckRhdGE9e2FyZ3MsZmV0Y2hEYXRhOnttZXRob2QsdXJsfSxzdGFydFRpbWVzdGFtcDoxZTMqKDAsX3V0aWxzX3RpbWVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5waCkoKSx2aXJ0dWFsRXJyb3IsaGVhZGVyczpmdW5jdGlvbihmZXRjaEFyZ3Mpe2xldFtyZXF1ZXN0QXJndW1lbnQsb3B0aW9uc0FyZ3VtZW50XT1mZXRjaEFyZ3M7dHJ5e2lmKCJvYmplY3QiPT10eXBlb2Ygb3B0aW9uc0FyZ3VtZW50JiZudWxsIT09b3B0aW9uc0FyZ3VtZW50JiYiaGVhZGVycyJpbiBvcHRpb25zQXJndW1lbnQmJm9wdGlvbnNBcmd1bWVudC5oZWFkZXJzKXJldHVybiBuZXcgSGVhZGVycyhvcHRpb25zQXJndW1lbnQuaGVhZGVycyk7aWYoKDAsX3V0aWxzX2lzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ0opKHJlcXVlc3RBcmd1bWVudCkpcmV0dXJuIG5ldyBIZWFkZXJzKHJlcXVlc3RBcmd1bWVudC5oZWFkZXJzKX1jYXRjaHt9fShhcmdzKX07cmV0dXJuIG9uRmV0Y2hSZXNvbHZlZHx8KDAsX2hhbmRsZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uckspKCJmZXRjaCIsey4uLmhhbmRsZXJEYXRhfSksb3JpZ2luYWxGZXRjaC5hcHBseShfdXRpbHNfd29ybGR3aWRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18ubixhcmdzKS50aGVuKGFzeW5jIHJlc3BvbnNlPT4ob25GZXRjaFJlc29sdmVkP29uRmV0Y2hSZXNvbHZlZChyZXNwb25zZSk6KDAsX2hhbmRsZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uckspKCJmZXRjaCIsey4uLmhhbmRsZXJEYXRhLGVuZFRpbWVzdGFtcDoxZTMqKDAsX3V0aWxzX3RpbWVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5waCkoKSxyZXNwb25zZX0pLHJlc3BvbnNlKSxlcnJvcj0+e2lmKCgwLF9oYW5kbGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnJLKSgiZmV0Y2giLHsuLi5oYW5kbGVyRGF0YSxlbmRUaW1lc3RhbXA6MWUzKigwLF91dGlsc190aW1lX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18ucGgpKCksZXJyb3J9KSwoMCxfdXRpbHNfaXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5WWikoZXJyb3IpJiZ2b2lkIDA9PT1lcnJvci5zdGFjayYmKGVycm9yLnN0YWNrPXZpcnR1YWxFcnJvci5zdGFjaywoMCxfdXRpbHNfb2JqZWN0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ueHApKGVycm9yLCJmcmFtZXNUb1BvcCIsMSkpLGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yJiYoIkZhaWxlZCB0byBmZXRjaCI9PT1lcnJvci5tZXNzYWdlfHwiTG9hZCBmYWlsZWQiPT09ZXJyb3IubWVzc2FnZXx8Ik5ldHdvcmtFcnJvciB3aGVuIGF0dGVtcHRpbmcgdG8gZmV0Y2ggcmVzb3VyY2UuIj09PWVycm9yLm1lc3NhZ2UpKXRyeXtsZXQgdXJsPW5ldyBVUkwoaGFuZGxlckRhdGEuZmV0Y2hEYXRhLnVybCk7ZXJyb3IubWVzc2FnZT1gJHtlcnJvci5tZXNzYWdlfSAoJHt1cmwuaG9zdH0pYH1jYXRjaHt9dGhyb3cgZXJyb3J9KX19KX1hc3luYyBmdW5jdGlvbiByZXNvbHZlUmVzcG9uc2UocmVzLG9uRmluaXNoZWRSZXNvbHZpbmcpe2lmKHJlcz8uYm9keSl7bGV0IGJvZHk9cmVzLmJvZHkscmVzcG9uc2VSZWFkZXI9Ym9keS5nZXRSZWFkZXIoKSxtYXhGZXRjaER1cmF0aW9uVGltZW91dD1zZXRUaW1lb3V0KCgpPT57Ym9keS5jYW5jZWwoKS50aGVuKG51bGwsKCk9Pnt9KX0sOWU0KSxyZWFkaW5nQWN0aXZlPSEwO2Zvcig7cmVhZGluZ0FjdGl2ZTspe2xldCBjaHVua1RpbWVvdXQ7dHJ5e2NodW5rVGltZW91dD1zZXRUaW1lb3V0KCgpPT57Ym9keS5jYW5jZWwoKS50aGVuKG51bGwsKCk9Pnt9KX0sNWUzKTtsZXR7ZG9uZX09YXdhaXQgcmVzcG9uc2VSZWFkZXIucmVhZCgpO2NsZWFyVGltZW91dChjaHVua1RpbWVvdXQpLGRvbmUmJihvbkZpbmlzaGVkUmVzb2x2aW5nKCkscmVhZGluZ0FjdGl2ZT0hMSl9Y2F0Y2h7cmVhZGluZ0FjdGl2ZT0hMX1maW5hbGx5e2NsZWFyVGltZW91dChjaHVua1RpbWVvdXQpfX1jbGVhclRpbWVvdXQobWF4RmV0Y2hEdXJhdGlvblRpbWVvdXQpLHJlc3BvbnNlUmVhZGVyLnJlbGVhc2VMb2NrKCksYm9keS5jYW5jZWwoKS50aGVuKG51bGwsKCk9Pnt9KX19ZnVuY3Rpb24gc3RyZWFtSGFuZGxlcihyZXNwb25zZSl7bGV0IGNsb25lZFJlc3BvbnNlRm9yUmVzb2x2aW5nO3RyeXtjbG9uZWRSZXNwb25zZUZvclJlc29sdmluZz1yZXNwb25zZS5jbG9uZSgpfWNhdGNoe3JldHVybn1yZXNvbHZlUmVzcG9uc2UoY2xvbmVkUmVzcG9uc2VGb3JSZXNvbHZpbmcsKCk9PnsoMCxfaGFuZGxlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5ySykoImZldGNoLWJvZHktcmVzb2x2ZWQiLHtlbmRUaW1lc3RhbXA6MWUzKigwLF91dGlsc190aW1lX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18ucGgpKCkscmVzcG9uc2V9KX0pfWZ1bmN0aW9uIGhhc1Byb3Aob2JqLHByb3Ape3JldHVybiEhb2JqJiYib2JqZWN0Ij09dHlwZW9mIG9iaiYmISFvYmpbcHJvcF19ZnVuY3Rpb24gZ2V0VXJsRnJvbVJlc291cmNlKHJlc291cmNlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHJlc291cmNlP3Jlc291cmNlOnJlc291cmNlP2hhc1Byb3AocmVzb3VyY2UsInVybCIpP3Jlc291cmNlLnVybDpyZXNvdXJjZS50b1N0cmluZz9yZXNvdXJjZS50b1N0cmluZygpOiIiOiIifX0sMjEzNjg6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1Y6ZnVuY3Rpb24oKXtyZXR1cm4gYWRkR2xvYmFsRXJyb3JJbnN0cnVtZW50YXRpb25IYW5kbGVyfX0pO3ZhciBfdXRpbHNfd29ybGR3aWRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg1MTU5NyksX2hhbmRsZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg5MTQ5OSk7bGV0IF9vbGRPbkVycm9ySGFuZGxlcj1udWxsO2Z1bmN0aW9uIGFkZEdsb2JhbEVycm9ySW5zdHJ1bWVudGF0aW9uSGFuZGxlcihoYW5kbGVyKXtsZXQgdHlwZT0iZXJyb3IiOygwLF9oYW5kbGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkhqKSh0eXBlLGhhbmRsZXIpLCgwLF9oYW5kbGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkQyKSh0eXBlLGluc3RydW1lbnRFcnJvcil9ZnVuY3Rpb24gaW5zdHJ1bWVudEVycm9yKCl7X29sZE9uRXJyb3JIYW5kbGVyPV91dGlsc193b3JsZHdpZGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5uLm9uZXJyb3IsX3V0aWxzX3dvcmxkd2lkZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLm4ub25lcnJvcj1mdW5jdGlvbihtc2csdXJsLGxpbmUsY29sdW1uLGVycm9yKXtyZXR1cm4oMCxfaGFuZGxlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5ySykoImVycm9yIix7Y29sdW1uLGVycm9yLGxpbmUsbXNnLHVybH0pLCEhX29sZE9uRXJyb3JIYW5kbGVyJiZfb2xkT25FcnJvckhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxfdXRpbHNfd29ybGR3aWRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ubi5vbmVycm9yLl9fU0VOVFJZX0lOU1RSVU1FTlRFRF9fPSEwfX0sODk5MDI6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se2g6ZnVuY3Rpb24oKXtyZXR1cm4gYWRkR2xvYmFsVW5oYW5kbGVkUmVqZWN0aW9uSW5zdHJ1bWVudGF0aW9uSGFuZGxlcn19KTt2YXIgX3V0aWxzX3dvcmxkd2lkZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oNTE1OTcpLF9oYW5kbGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oOTE0OTkpO2xldCBfb2xkT25VbmhhbmRsZWRSZWplY3Rpb25IYW5kbGVyPW51bGw7ZnVuY3Rpb24gYWRkR2xvYmFsVW5oYW5kbGVkUmVqZWN0aW9uSW5zdHJ1bWVudGF0aW9uSGFuZGxlcihoYW5kbGVyKXtsZXQgdHlwZT0idW5oYW5kbGVkcmVqZWN0aW9uIjsoMCxfaGFuZGxlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5IaikodHlwZSxoYW5kbGVyKSwoMCxfaGFuZGxlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5EMikodHlwZSxpbnN0cnVtZW50VW5oYW5kbGVkUmVqZWN0aW9uKX1mdW5jdGlvbiBpbnN0cnVtZW50VW5oYW5kbGVkUmVqZWN0aW9uKCl7X29sZE9uVW5oYW5kbGVkUmVqZWN0aW9uSGFuZGxlcj1fdXRpbHNfd29ybGR3aWRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ubi5vbnVuaGFuZGxlZHJlamVjdGlvbixfdXRpbHNfd29ybGR3aWRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ubi5vbnVuaGFuZGxlZHJlamVjdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4oMCxfaGFuZGxlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5ySykoInVuaGFuZGxlZHJlamVjdGlvbiIsZSksIV9vbGRPblVuaGFuZGxlZFJlamVjdGlvbkhhbmRsZXJ8fF9vbGRPblVuaGFuZGxlZFJlamVjdGlvbkhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxfdXRpbHNfd29ybGR3aWRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ubi5vbnVuaGFuZGxlZHJlamVjdGlvbi5fX1NFTlRSWV9JTlNUUlVNRU5URURfXz0hMH19LDkxNDk5OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtEMjpmdW5jdGlvbigpe3JldHVybiBtYXliZUluc3RydW1lbnR9LEhqOmZ1bmN0aW9uKCl7cmV0dXJuIGFkZEhhbmRsZXJ9LHJLOmZ1bmN0aW9uKCl7cmV0dXJuIHRyaWdnZXJIYW5kbGVyc319KTt2YXIgX2RlYnVnX2J1aWxkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg5NDIyMyksX3V0aWxzX2RlYnVnX2xvZ2dlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oNTgyNCksX3V0aWxzX3N0YWNrdHJhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk5NjAzKTtsZXQgaGFuZGxlcnM9e30saW5zdHJ1bWVudGVkPXt9O2Z1bmN0aW9uIGFkZEhhbmRsZXIodHlwZSxoYW5kbGVyKXtoYW5kbGVyc1t0eXBlXT1oYW5kbGVyc1t0eXBlXXx8W10saGFuZGxlcnNbdHlwZV0ucHVzaChoYW5kbGVyKX1mdW5jdGlvbiBtYXliZUluc3RydW1lbnQodHlwZSxpbnN0cnVtZW50Rm4pe2lmKCFpbnN0cnVtZW50ZWRbdHlwZV0pe2luc3RydW1lbnRlZFt0eXBlXT0hMDt0cnl7aW5zdHJ1bWVudEZuKCl9Y2F0Y2goZSl7X2RlYnVnX2J1aWxkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWCYmX3V0aWxzX2RlYnVnX2xvZ2dlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmZGLmVycm9yKGBFcnJvciB3aGlsZSBpbnN0cnVtZW50aW5nICR7dHlwZX1gLGUpfX19ZnVuY3Rpb24gdHJpZ2dlckhhbmRsZXJzKHR5cGUsZGF0YSl7bGV0IHR5cGVIYW5kbGVycz10eXBlJiZoYW5kbGVyc1t0eXBlXTtpZih0eXBlSGFuZGxlcnMpZm9yKGxldCBoYW5kbGVyIG9mIHR5cGVIYW5kbGVycyl0cnl7aGFuZGxlcihkYXRhKX1jYXRjaChlKXtfZGVidWdfYnVpbGRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5YJiZfdXRpbHNfZGVidWdfbG9nZ2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uZkYuZXJyb3IoYEVycm9yIHdoaWxlIHRyaWdnZXJpbmcgaW5zdHJ1bWVudGF0aW9uIGhhbmRsZXIuClR5cGU6ICR7dHlwZX0KTmFtZTogJHsoMCxfdXRpbHNfc3RhY2t0cmFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLiRQKShoYW5kbGVyKX0KRXJyb3I6YCxlKX19fSw0MzkyNzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7czpmdW5jdGlvbigpe3JldHVybiBTY29wZX19KTt2YXIgX2RlYnVnX2J1aWxkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X189X193ZWJwYWNrX3JlcXVpcmVfXyg5NDIyMyksX3Nlc3Npb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDEwMDQyKSxfdXRpbHNfZGVidWdfbG9nZ2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X189X193ZWJwYWNrX3JlcXVpcmVfXyg1ODI0KSxfdXRpbHNfaXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQxNzQ1KSxfdXRpbHNfbWVyZ2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDM2MTMpLF91dGlsc19taXNjX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X189X193ZWJwYWNrX3JlcXVpcmVfXygzNDE1NiksX3V0aWxzX3Byb3BhZ2F0aW9uQ29udGV4dF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oODE1MSksX3V0aWxzX3NwYW5PblNjb3BlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg4OTM2NiksX3V0aWxzX3N0cmluZ19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fPV9fd2VicGFja19yZXF1aXJlX18oNTczNjApLF91dGlsc190aW1lX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X189X193ZWJwYWNrX3JlcXVpcmVfXyg5MDc3Mik7Y2xhc3MgU2NvcGV7Y29uc3RydWN0b3IoKXt0aGlzLl9ub3RpZnlpbmdMaXN0ZW5lcnM9ITEsdGhpcy5fc2NvcGVMaXN0ZW5lcnM9W10sdGhpcy5fZXZlbnRQcm9jZXNzb3JzPVtdLHRoaXMuX2JyZWFkY3J1bWJzPVtdLHRoaXMuX2F0dGFjaG1lbnRzPVtdLHRoaXMuX3VzZXI9e30sdGhpcy5fdGFncz17fSx0aGlzLl9hdHRyaWJ1dGVzPXt9LHRoaXMuX2V4dHJhPXt9LHRoaXMuX2NvbnRleHRzPXt9LHRoaXMuX3Nka1Byb2Nlc3NpbmdNZXRhZGF0YT17fSx0aGlzLl9wcm9wYWdhdGlvbkNvbnRleHQ9e3RyYWNlSWQ6KDAsX3V0aWxzX3Byb3BhZ2F0aW9uQ29udGV4dF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkgpKCksc2FtcGxlUmFuZDpNYXRoLnJhbmRvbSgpfX1jbG9uZSgpe2xldCBuZXdTY29wZT1uZXcgU2NvcGU7cmV0dXJuIG5ld1Njb3BlLl9icmVhZGNydW1icz1bLi4udGhpcy5fYnJlYWRjcnVtYnNdLG5ld1Njb3BlLl90YWdzPXsuLi50aGlzLl90YWdzfSxuZXdTY29wZS5fYXR0cmlidXRlcz17Li4udGhpcy5fYXR0cmlidXRlc30sbmV3U2NvcGUuX2V4dHJhPXsuLi50aGlzLl9leHRyYX0sbmV3U2NvcGUuX2NvbnRleHRzPXsuLi50aGlzLl9jb250ZXh0c30sdGhpcy5fY29udGV4dHMuZmxhZ3MmJihuZXdTY29wZS5fY29udGV4dHMuZmxhZ3M9e3ZhbHVlczpbLi4udGhpcy5fY29udGV4dHMuZmxhZ3MudmFsdWVzXX0pLG5ld1Njb3BlLl91c2VyPXRoaXMuX3VzZXIsbmV3U2NvcGUuX2xldmVsPXRoaXMuX2xldmVsLG5ld1Njb3BlLl9zZXNzaW9uPXRoaXMuX3Nlc3Npb24sbmV3U2NvcGUuX3RyYW5zYWN0aW9uTmFtZT10aGlzLl90cmFuc2FjdGlvbk5hbWUsbmV3U2NvcGUuX2ZpbmdlcnByaW50PXRoaXMuX2ZpbmdlcnByaW50LG5ld1Njb3BlLl9ldmVudFByb2Nlc3NvcnM9Wy4uLnRoaXMuX2V2ZW50UHJvY2Vzc29yc10sbmV3U2NvcGUuX2F0dGFjaG1lbnRzPVsuLi50aGlzLl9hdHRhY2htZW50c10sbmV3U2NvcGUuX3Nka1Byb2Nlc3NpbmdNZXRhZGF0YT17Li4udGhpcy5fc2RrUHJvY2Vzc2luZ01ldGFkYXRhfSxuZXdTY29wZS5fcHJvcGFnYXRpb25Db250ZXh0PXsuLi50aGlzLl9wcm9wYWdhdGlvbkNvbnRleHR9LG5ld1Njb3BlLl9jbGllbnQ9dGhpcy5fY2xpZW50LG5ld1Njb3BlLl9sYXN0RXZlbnRJZD10aGlzLl9sYXN0RXZlbnRJZCwoMCxfdXRpbHNfc3Bhbk9uU2NvcGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5EKShuZXdTY29wZSwoMCxfdXRpbHNfc3Bhbk9uU2NvcGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5ZKSh0aGlzKSksbmV3U2NvcGV9c2V0Q2xpZW50KGNsaWVudCl7dGhpcy5fY2xpZW50PWNsaWVudH1zZXRMYXN0RXZlbnRJZChsYXN0RXZlbnRJZCl7dGhpcy5fbGFzdEV2ZW50SWQ9bGFzdEV2ZW50SWR9Z2V0Q2xpZW50KCl7cmV0dXJuIHRoaXMuX2NsaWVudH1sYXN0RXZlbnRJZCgpe3JldHVybiB0aGlzLl9sYXN0RXZlbnRJZH1hZGRTY29wZUxpc3RlbmVyKGNhbGxiYWNrKXt0aGlzLl9zY29wZUxpc3RlbmVycy5wdXNoKGNhbGxiYWNrKX1hZGRFdmVudFByb2Nlc3NvcihjYWxsYmFjayl7cmV0dXJuIHRoaXMuX2V2ZW50UHJvY2Vzc29ycy5wdXNoKGNhbGxiYWNrKSx0aGlzfXNldFVzZXIodXNlcil7cmV0dXJuIHRoaXMuX3VzZXI9dXNlcnx8e2VtYWlsOnZvaWQgMCxpZDp2b2lkIDAsaXBfYWRkcmVzczp2b2lkIDAsdXNlcm5hbWU6dm9pZCAwfSx0aGlzLl9zZXNzaW9uJiYoMCxfc2Vzc2lvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkNUKSh0aGlzLl9zZXNzaW9uLHt1c2VyfSksdGhpcy5fbm90aWZ5U2NvcGVMaXN0ZW5lcnMoKSx0aGlzfWdldFVzZXIoKXtyZXR1cm4gdGhpcy5fdXNlcn1zZXRUYWdzKHRhZ3Mpe3JldHVybiB0aGlzLl90YWdzPXsuLi50aGlzLl90YWdzLC4uLnRhZ3N9LHRoaXMuX25vdGlmeVNjb3BlTGlzdGVuZXJzKCksdGhpc31zZXRUYWcoa2V5LHZhbHVlKXtyZXR1cm4gdGhpcy5zZXRUYWdzKHtba2V5XTp2YWx1ZX0pfXNldEF0dHJpYnV0ZXMobmV3QXR0cmlidXRlcyl7cmV0dXJuIHRoaXMuX2F0dHJpYnV0ZXM9ey4uLnRoaXMuX2F0dHJpYnV0ZXMsLi4ubmV3QXR0cmlidXRlc30sdGhpcy5fbm90aWZ5U2NvcGVMaXN0ZW5lcnMoKSx0aGlzfXNldEF0dHJpYnV0ZShrZXksdmFsdWUpe3JldHVybiB0aGlzLnNldEF0dHJpYnV0ZXMoe1trZXldOnZhbHVlfSl9cmVtb3ZlQXR0cmlidXRlKGtleSl7cmV0dXJuIGtleSBpbiB0aGlzLl9hdHRyaWJ1dGVzJiYoZGVsZXRlIHRoaXMuX2F0dHJpYnV0ZXNba2V5XSx0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpKSx0aGlzfXNldEV4dHJhcyhleHRyYXMpe3JldHVybiB0aGlzLl9leHRyYT17Li4udGhpcy5fZXh0cmEsLi4uZXh0cmFzfSx0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpLHRoaXN9c2V0RXh0cmEoa2V5LGV4dHJhKXtyZXR1cm4gdGhpcy5fZXh0cmE9ey4uLnRoaXMuX2V4dHJhLFtrZXldOmV4dHJhfSx0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpLHRoaXN9c2V0RmluZ2VycHJpbnQoZmluZ2VycHJpbnQpe3JldHVybiB0aGlzLl9maW5nZXJwcmludD1maW5nZXJwcmludCx0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpLHRoaXN9c2V0TGV2ZWwobGV2ZWwpe3JldHVybiB0aGlzLl9sZXZlbD1sZXZlbCx0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpLHRoaXN9c2V0VHJhbnNhY3Rpb25OYW1lKG5hbWUpe3JldHVybiB0aGlzLl90cmFuc2FjdGlvbk5hbWU9bmFtZSx0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpLHRoaXN9c2V0Q29udGV4dChrZXksY29udGV4dCl7cmV0dXJuIG51bGw9PT1jb250ZXh0P2RlbGV0ZSB0aGlzLl9jb250ZXh0c1trZXldOnRoaXMuX2NvbnRleHRzW2tleV09Y29udGV4dCx0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpLHRoaXN9c2V0U2Vzc2lvbihzZXNzaW9uKXtyZXR1cm4gc2Vzc2lvbj90aGlzLl9zZXNzaW9uPXNlc3Npb246ZGVsZXRlIHRoaXMuX3Nlc3Npb24sdGhpcy5fbm90aWZ5U2NvcGVMaXN0ZW5lcnMoKSx0aGlzfWdldFNlc3Npb24oKXtyZXR1cm4gdGhpcy5fc2Vzc2lvbn11cGRhdGUoY2FwdHVyZUNvbnRleHQpe2lmKCFjYXB0dXJlQ29udGV4dClyZXR1cm4gdGhpcztsZXQgc2NvcGVUb01lcmdlPSJmdW5jdGlvbiI9PXR5cGVvZiBjYXB0dXJlQ29udGV4dD9jYXB0dXJlQ29udGV4dCh0aGlzKTpjYXB0dXJlQ29udGV4dCxzY29wZUluc3RhbmNlPXNjb3BlVG9NZXJnZSBpbnN0YW5jZW9mIFNjb3BlP3Njb3BlVG9NZXJnZS5nZXRTY29wZURhdGEoKTooMCxfdXRpbHNfaXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5QTykoc2NvcGVUb01lcmdlKT9jYXB0dXJlQ29udGV4dDp2b2lkIDAse3RhZ3MsYXR0cmlidXRlcyxleHRyYSx1c2VyLGNvbnRleHRzLGxldmVsLGZpbmdlcnByaW50PVtdLHByb3BhZ2F0aW9uQ29udGV4dH09c2NvcGVJbnN0YW5jZXx8e307cmV0dXJuIHRoaXMuX3RhZ3M9ey4uLnRoaXMuX3RhZ3MsLi4udGFnc30sdGhpcy5fYXR0cmlidXRlcz17Li4udGhpcy5fYXR0cmlidXRlcywuLi5hdHRyaWJ1dGVzfSx0aGlzLl9leHRyYT17Li4udGhpcy5fZXh0cmEsLi4uZXh0cmF9LHRoaXMuX2NvbnRleHRzPXsuLi50aGlzLl9jb250ZXh0cywuLi5jb250ZXh0c30sdXNlciYmT2JqZWN0LmtleXModXNlcikubGVuZ3RoJiYodGhpcy5fdXNlcj11c2VyKSxsZXZlbCYmKHRoaXMuX2xldmVsPWxldmVsKSxmaW5nZXJwcmludC5sZW5ndGgmJih0aGlzLl9maW5nZXJwcmludD1maW5nZXJwcmludCkscHJvcGFnYXRpb25Db250ZXh0JiYodGhpcy5fcHJvcGFnYXRpb25Db250ZXh0PXByb3BhZ2F0aW9uQ29udGV4dCksdGhpc31jbGVhcigpe3JldHVybiB0aGlzLl9icmVhZGNydW1icz1bXSx0aGlzLl90YWdzPXt9LHRoaXMuX2F0dHJpYnV0ZXM9e30sdGhpcy5fZXh0cmE9e30sdGhpcy5fdXNlcj17fSx0aGlzLl9jb250ZXh0cz17fSx0aGlzLl9sZXZlbD12b2lkIDAsdGhpcy5fdHJhbnNhY3Rpb25OYW1lPXZvaWQgMCx0aGlzLl9maW5nZXJwcmludD12b2lkIDAsdGhpcy5fc2Vzc2lvbj12b2lkIDAsKDAsX3V0aWxzX3NwYW5PblNjb3BlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uRCkodGhpcyx2b2lkIDApLHRoaXMuX2F0dGFjaG1lbnRzPVtdLHRoaXMuc2V0UHJvcGFnYXRpb25Db250ZXh0KHt0cmFjZUlkOigwLF91dGlsc19wcm9wYWdhdGlvbkNvbnRleHRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5IKSgpLHNhbXBsZVJhbmQ6TWF0aC5yYW5kb20oKX0pLHRoaXMuX25vdGlmeVNjb3BlTGlzdGVuZXJzKCksdGhpc31hZGRCcmVhZGNydW1iKGJyZWFkY3J1bWIsbWF4QnJlYWRjcnVtYnMpe2xldCBtYXhDcnVtYnM9Im51bWJlciI9PXR5cGVvZiBtYXhCcmVhZGNydW1icz9tYXhCcmVhZGNydW1iczoxMDA7aWYobWF4Q3J1bWJzPD0wKXJldHVybiB0aGlzO2xldCBtZXJnZWRCcmVhZGNydW1iPXt0aW1lc3RhbXA6KDAsX3V0aWxzX3RpbWVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy55VykoKSwuLi5icmVhZGNydW1iLG1lc3NhZ2U6YnJlYWRjcnVtYi5tZXNzYWdlPygwLF91dGlsc19zdHJpbmdfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy4kRykoYnJlYWRjcnVtYi5tZXNzYWdlLDIwNDgpOmJyZWFkY3J1bWIubWVzc2FnZX07cmV0dXJuIHRoaXMuX2JyZWFkY3J1bWJzLnB1c2gobWVyZ2VkQnJlYWRjcnVtYiksdGhpcy5fYnJlYWRjcnVtYnMubGVuZ3RoPm1heENydW1icyYmKHRoaXMuX2JyZWFkY3J1bWJzPXRoaXMuX2JyZWFkY3J1bWJzLnNsaWNlKC1tYXhDcnVtYnMpLHRoaXMuX2NsaWVudD8ucmVjb3JkRHJvcHBlZEV2ZW50KCJidWZmZXJfb3ZlcmZsb3ciLCJsb2dfaXRlbSIpKSx0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpLHRoaXN9Z2V0TGFzdEJyZWFkY3J1bWIoKXtyZXR1cm4gdGhpcy5fYnJlYWRjcnVtYnNbdGhpcy5fYnJlYWRjcnVtYnMubGVuZ3RoLTFdfWNsZWFyQnJlYWRjcnVtYnMoKXtyZXR1cm4gdGhpcy5fYnJlYWRjcnVtYnM9W10sdGhpcy5fbm90aWZ5U2NvcGVMaXN0ZW5lcnMoKSx0aGlzfWFkZEF0dGFjaG1lbnQoYXR0YWNobWVudCl7cmV0dXJuIHRoaXMuX2F0dGFjaG1lbnRzLnB1c2goYXR0YWNobWVudCksdGhpc31jbGVhckF0dGFjaG1lbnRzKCl7cmV0dXJuIHRoaXMuX2F0dGFjaG1lbnRzPVtdLHRoaXN9Z2V0U2NvcGVEYXRhKCl7cmV0dXJue2JyZWFkY3J1bWJzOnRoaXMuX2JyZWFkY3J1bWJzLGF0dGFjaG1lbnRzOnRoaXMuX2F0dGFjaG1lbnRzLGNvbnRleHRzOnRoaXMuX2NvbnRleHRzLHRhZ3M6dGhpcy5fdGFncyxhdHRyaWJ1dGVzOnRoaXMuX2F0dHJpYnV0ZXMsZXh0cmE6dGhpcy5fZXh0cmEsdXNlcjp0aGlzLl91c2VyLGxldmVsOnRoaXMuX2xldmVsLGZpbmdlcnByaW50OnRoaXMuX2ZpbmdlcnByaW50fHxbXSxldmVudFByb2Nlc3NvcnM6dGhpcy5fZXZlbnRQcm9jZXNzb3JzLHByb3BhZ2F0aW9uQ29udGV4dDp0aGlzLl9wcm9wYWdhdGlvbkNvbnRleHQsc2RrUHJvY2Vzc2luZ01ldGFkYXRhOnRoaXMuX3Nka1Byb2Nlc3NpbmdNZXRhZGF0YSx0cmFuc2FjdGlvbk5hbWU6dGhpcy5fdHJhbnNhY3Rpb25OYW1lLHNwYW46KDAsX3V0aWxzX3NwYW5PblNjb3BlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uWSkodGhpcyl9fXNldFNES1Byb2Nlc3NpbmdNZXRhZGF0YShuZXdEYXRhKXtyZXR1cm4gdGhpcy5fc2RrUHJvY2Vzc2luZ01ldGFkYXRhPSgwLF91dGlsc19tZXJnZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLlQpKHRoaXMuX3Nka1Byb2Nlc3NpbmdNZXRhZGF0YSxuZXdEYXRhLDIpLHRoaXN9c2V0UHJvcGFnYXRpb25Db250ZXh0KGNvbnRleHQpe3JldHVybiB0aGlzLl9wcm9wYWdhdGlvbkNvbnRleHQ9Y29udGV4dCx0aGlzfWdldFByb3BhZ2F0aW9uQ29udGV4dCgpe3JldHVybiB0aGlzLl9wcm9wYWdhdGlvbkNvbnRleHR9Y2FwdHVyZUV4Y2VwdGlvbihleGNlcHRpb24saGludCl7bGV0IGV2ZW50SWQ9aGludD8uZXZlbnRfaWR8fCgwLF91dGlsc19taXNjX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uRE0pKCk7aWYoIXRoaXMuX2NsaWVudClyZXR1cm4gX2RlYnVnX2J1aWxkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uWCYmX3V0aWxzX2RlYnVnX2xvZ2dlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLmZGLndhcm4oIk5vIGNsaWVudCBjb25maWd1cmVkIG9uIHNjb3BlIC0gd2lsbCBub3QgY2FwdHVyZSBleGNlcHRpb24hIiksZXZlbnRJZDtsZXQgc3ludGhldGljRXhjZXB0aW9uPUVycm9yKCJTZW50cnkgc3ludGhldGljRXhjZXB0aW9uIik7cmV0dXJuIHRoaXMuX2NsaWVudC5jYXB0dXJlRXhjZXB0aW9uKGV4Y2VwdGlvbix7b3JpZ2luYWxFeGNlcHRpb246ZXhjZXB0aW9uLHN5bnRoZXRpY0V4Y2VwdGlvbiwuLi5oaW50LGV2ZW50X2lkOmV2ZW50SWR9LHRoaXMpLGV2ZW50SWR9Y2FwdHVyZU1lc3NhZ2UobWVzc2FnZSxsZXZlbCxoaW50KXtsZXQgZXZlbnRJZD1oaW50Py5ldmVudF9pZHx8KDAsX3V0aWxzX21pc2NfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5ETSkoKTtpZighdGhpcy5fY2xpZW50KXJldHVybiBfZGVidWdfYnVpbGRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5YJiZfdXRpbHNfZGVidWdfbG9nZ2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18uZkYud2FybigiTm8gY2xpZW50IGNvbmZpZ3VyZWQgb24gc2NvcGUgLSB3aWxsIG5vdCBjYXB0dXJlIG1lc3NhZ2UhIiksZXZlbnRJZDtsZXQgc3ludGhldGljRXhjZXB0aW9uPWhpbnQ/LnN5bnRoZXRpY0V4Y2VwdGlvbj8/RXJyb3IobWVzc2FnZSk7cmV0dXJuIHRoaXMuX2NsaWVudC5jYXB0dXJlTWVzc2FnZShtZXNzYWdlLGxldmVsLHtvcmlnaW5hbEV4Y2VwdGlvbjptZXNzYWdlLHN5bnRoZXRpY0V4Y2VwdGlvbiwuLi5oaW50LGV2ZW50X2lkOmV2ZW50SWR9LHRoaXMpLGV2ZW50SWR9Y2FwdHVyZUV2ZW50KGV2ZW50LGhpbnQpe2xldCBldmVudElkPWhpbnQ/LmV2ZW50X2lkfHwoMCxfdXRpbHNfbWlzY19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLkRNKSgpO3JldHVybiB0aGlzLl9jbGllbnQ/KHRoaXMuX2NsaWVudC5jYXB0dXJlRXZlbnQoZXZlbnQsey4uLmhpbnQsZXZlbnRfaWQ6ZXZlbnRJZH0sdGhpcyksZXZlbnRJZCk6KF9kZWJ1Z19idWlsZF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLlgmJl91dGlsc19kZWJ1Z19sb2dnZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5mRi53YXJuKCJObyBjbGllbnQgY29uZmlndXJlZCBvbiBzY29wZSAtIHdpbGwgbm90IGNhcHR1cmUgZXZlbnQhIiksZXZlbnRJZCl9X25vdGlmeVNjb3BlTGlzdGVuZXJzKCl7dGhpcy5fbm90aWZ5aW5nTGlzdGVuZXJzfHwodGhpcy5fbm90aWZ5aW5nTGlzdGVuZXJzPSEwLHRoaXMuX3Njb3BlTGlzdGVuZXJzLmZvckVhY2goY2FsbGJhY2s9PntjYWxsYmFjayh0aGlzKX0pLHRoaXMuX25vdGlmeWluZ0xpc3RlbmVycz0hMSl9fX0sMzEyMTg6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18seyRKOmZ1bmN0aW9uKCl7cmV0dXJuIFNFTUFOVElDX0FUVFJJQlVURV9TRU5UUllfT1B9LEUxOmZ1bmN0aW9uKCl7cmV0dXJuIFNFTUFOVElDX0FUVFJJQlVURV9TRU5UUllfTUVBU1VSRU1FTlRfVU5JVH0sSlE6ZnVuY3Rpb24oKXtyZXR1cm4gU0VNQU5USUNfQVRUUklCVVRFX0VYQ0xVU0lWRV9USU1FfSxTMzpmdW5jdGlvbigpe3JldHVybiBTRU1BTlRJQ19BVFRSSUJVVEVfU0VOVFJZX09SSUdJTn0sVEU6ZnVuY3Rpb24oKXtyZXR1cm4gU0VNQU5USUNfQVRUUklCVVRFX1NFTlRSWV9TQU1QTEVfUkFURX0sV2I6ZnVuY3Rpb24oKXtyZXR1cm4gU0VNQU5USUNfQVRUUklCVVRFX1NFTlRSWV9NRUFTVVJFTUVOVF9WQUxVRX0sWmo6ZnVuY3Rpb24oKXtyZXR1cm4gU0VNQU5USUNfQVRUUklCVVRFX1NFTlRSWV9TT1VSQ0V9LGlUOmZ1bmN0aW9uKCl7cmV0dXJuIFNFTUFOVElDX0FUVFJJQlVURV9TRU5UUllfUFJFVklPVVNfVFJBQ0VfU0FNUExFX1JBVEV9LGp1OmZ1bmN0aW9uKCl7cmV0dXJuIFNFTUFOVElDX0FUVFJJQlVURV9TRU5UUllfSURMRV9TUEFOX0ZJTklTSF9SRUFTT059LGxIOmZ1bmN0aW9uKCl7cmV0dXJuIFNFTUFOVElDX0xJTktfQVRUUklCVVRFX0xJTktfVFlQRX0scDY6ZnVuY3Rpb24oKXtyZXR1cm4gU0VNQU5USUNfQVRUUklCVVRFX1BST0ZJTEVfSUR9LHhGOmZ1bmN0aW9uKCl7cmV0dXJuIFNFTUFOVElDX0FUVFJJQlVURV9TRU5UUllfQ1VTVE9NX1NQQU5fTkFNRX19KTtsZXQgU0VNQU5USUNfQVRUUklCVVRFX1NFTlRSWV9TT1VSQ0U9InNlbnRyeS5zb3VyY2UiLFNFTUFOVElDX0FUVFJJQlVURV9TRU5UUllfU0FNUExFX1JBVEU9InNlbnRyeS5zYW1wbGVfcmF0ZSIsU0VNQU5USUNfQVRUUklCVVRFX1NFTlRSWV9QUkVWSU9VU19UUkFDRV9TQU1QTEVfUkFURT0ic2VudHJ5LnByZXZpb3VzX3RyYWNlX3NhbXBsZV9yYXRlIixTRU1BTlRJQ19BVFRSSUJVVEVfU0VOVFJZX09QPSJzZW50cnkub3AiLFNFTUFOVElDX0FUVFJJQlVURV9TRU5UUllfT1JJR0lOPSJzZW50cnkub3JpZ2luIixTRU1BTlRJQ19BVFRSSUJVVEVfU0VOVFJZX0lETEVfU1BBTl9GSU5JU0hfUkVBU09OPSJzZW50cnkuaWRsZV9zcGFuX2ZpbmlzaF9yZWFzb24iLFNFTUFOVElDX0FUVFJJQlVURV9TRU5UUllfTUVBU1VSRU1FTlRfVU5JVD0ic2VudHJ5Lm1lYXN1cmVtZW50X3VuaXQiLFNFTUFOVElDX0FUVFJJQlVURV9TRU5UUllfTUVBU1VSRU1FTlRfVkFMVUU9InNlbnRyeS5tZWFzdXJlbWVudF92YWx1ZSIsU0VNQU5USUNfQVRUUklCVVRFX1NFTlRSWV9DVVNUT01fU1BBTl9OQU1FPSJzZW50cnkuY3VzdG9tX3NwYW5fbmFtZSIsU0VNQU5USUNfQVRUUklCVVRFX1BST0ZJTEVfSUQ9InNlbnRyeS5wcm9maWxlX2lkIixTRU1BTlRJQ19BVFRSSUJVVEVfRVhDTFVTSVZFX1RJTUU9InNlbnRyeS5leGNsdXNpdmVfdGltZSIsU0VNQU5USUNfTElOS19BVFRSSUJVVEVfTElOS19UWVBFPSJzZW50cnkubGluay50eXBlIn0sMTAwNDI6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se0NUOmZ1bmN0aW9uKCl7cmV0dXJuIHVwZGF0ZVNlc3Npb259LEh2OmZ1bmN0aW9uKCl7cmV0dXJuIG1ha2VTZXNzaW9ufSxSSjpmdW5jdGlvbigpe3JldHVybiBjbG9zZVNlc3Npb259fSk7dmFyIF91dGlsc19taXNjX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXygzNDE1NiksX3V0aWxzX3RpbWVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDkwNzcyKTtmdW5jdGlvbiBtYWtlU2Vzc2lvbihjb250ZXh0KXtsZXQgc3RhcnRpbmdUaW1lPSgwLF91dGlsc190aW1lX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucGgpKCksc2Vzc2lvbj17c2lkOigwLF91dGlsc19taXNjX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uRE0pKCksaW5pdDohMCx0aW1lc3RhbXA6c3RhcnRpbmdUaW1lLHN0YXJ0ZWQ6c3RhcnRpbmdUaW1lLGR1cmF0aW9uOjAsc3RhdHVzOiJvayIsZXJyb3JzOjAsaWdub3JlRHVyYXRpb246ITEsdG9KU09OOigpPT4oe3NpZDpgJHtzZXNzaW9uLnNpZH1gLGluaXQ6c2Vzc2lvbi5pbml0LHN0YXJ0ZWQ6bmV3IERhdGUoMWUzKnNlc3Npb24uc3RhcnRlZCkudG9JU09TdHJpbmcoKSx0aW1lc3RhbXA6bmV3IERhdGUoMWUzKnNlc3Npb24udGltZXN0YW1wKS50b0lTT1N0cmluZygpLHN0YXR1czpzZXNzaW9uLnN0YXR1cyxlcnJvcnM6c2Vzc2lvbi5lcnJvcnMsZGlkOiJudW1iZXIiPT10eXBlb2Ygc2Vzc2lvbi5kaWR8fCJzdHJpbmciPT10eXBlb2Ygc2Vzc2lvbi5kaWQ/YCR7c2Vzc2lvbi5kaWR9YDp2b2lkIDAsZHVyYXRpb246c2Vzc2lvbi5kdXJhdGlvbixhYm5vcm1hbF9tZWNoYW5pc206c2Vzc2lvbi5hYm5vcm1hbF9tZWNoYW5pc20sYXR0cnM6e3JlbGVhc2U6c2Vzc2lvbi5yZWxlYXNlLGVudmlyb25tZW50OnNlc3Npb24uZW52aXJvbm1lbnQsaXBfYWRkcmVzczpzZXNzaW9uLmlwQWRkcmVzcyx1c2VyX2FnZW50OnNlc3Npb24udXNlckFnZW50fX0pfTtyZXR1cm4gY29udGV4dCYmdXBkYXRlU2Vzc2lvbihzZXNzaW9uLGNvbnRleHQpLHNlc3Npb259ZnVuY3Rpb24gdXBkYXRlU2Vzc2lvbihzZXNzaW9uLGNvbnRleHQ9e30pe2lmKCFjb250ZXh0LnVzZXJ8fCghc2Vzc2lvbi5pcEFkZHJlc3MmJmNvbnRleHQudXNlci5pcF9hZGRyZXNzJiYoc2Vzc2lvbi5pcEFkZHJlc3M9Y29udGV4dC51c2VyLmlwX2FkZHJlc3MpLHNlc3Npb24uZGlkfHxjb250ZXh0LmRpZHx8KHNlc3Npb24uZGlkPWNvbnRleHQudXNlci5pZHx8Y29udGV4dC51c2VyLmVtYWlsfHxjb250ZXh0LnVzZXIudXNlcm5hbWUpKSxzZXNzaW9uLnRpbWVzdGFtcD1jb250ZXh0LnRpbWVzdGFtcHx8KDAsX3V0aWxzX3RpbWVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5waCkoKSxjb250ZXh0LmFibm9ybWFsX21lY2hhbmlzbSYmKHNlc3Npb24uYWJub3JtYWxfbWVjaGFuaXNtPWNvbnRleHQuYWJub3JtYWxfbWVjaGFuaXNtKSxjb250ZXh0Lmlnbm9yZUR1cmF0aW9uJiYoc2Vzc2lvbi5pZ25vcmVEdXJhdGlvbj1jb250ZXh0Lmlnbm9yZUR1cmF0aW9uKSxjb250ZXh0LnNpZCYmKHNlc3Npb24uc2lkPTMyPT09Y29udGV4dC5zaWQubGVuZ3RoP2NvbnRleHQuc2lkOigwLF91dGlsc19taXNjX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uRE0pKCkpLHZvaWQgMCE9PWNvbnRleHQuaW5pdCYmKHNlc3Npb24uaW5pdD1jb250ZXh0LmluaXQpLCFzZXNzaW9uLmRpZCYmY29udGV4dC5kaWQmJihzZXNzaW9uLmRpZD1gJHtjb250ZXh0LmRpZH1gKSwibnVtYmVyIj09dHlwZW9mIGNvbnRleHQuc3RhcnRlZCYmKHNlc3Npb24uc3RhcnRlZD1jb250ZXh0LnN0YXJ0ZWQpLHNlc3Npb24uaWdub3JlRHVyYXRpb24pc2Vzc2lvbi5kdXJhdGlvbj12b2lkIDA7ZWxzZSBpZigibnVtYmVyIj09dHlwZW9mIGNvbnRleHQuZHVyYXRpb24pc2Vzc2lvbi5kdXJhdGlvbj1jb250ZXh0LmR1cmF0aW9uO2Vsc2V7bGV0IGR1cmF0aW9uPXNlc3Npb24udGltZXN0YW1wLXNlc3Npb24uc3RhcnRlZDtzZXNzaW9uLmR1cmF0aW9uPWR1cmF0aW9uPj0wP2R1cmF0aW9uOjB9Y29udGV4dC5yZWxlYXNlJiYoc2Vzc2lvbi5yZWxlYXNlPWNvbnRleHQucmVsZWFzZSksY29udGV4dC5lbnZpcm9ubWVudCYmKHNlc3Npb24uZW52aXJvbm1lbnQ9Y29udGV4dC5lbnZpcm9ubWVudCksIXNlc3Npb24uaXBBZGRyZXNzJiZjb250ZXh0LmlwQWRkcmVzcyYmKHNlc3Npb24uaXBBZGRyZXNzPWNvbnRleHQuaXBBZGRyZXNzKSwhc2Vzc2lvbi51c2VyQWdlbnQmJmNvbnRleHQudXNlckFnZW50JiYoc2Vzc2lvbi51c2VyQWdlbnQ9Y29udGV4dC51c2VyQWdlbnQpLCJudW1iZXIiPT10eXBlb2YgY29udGV4dC5lcnJvcnMmJihzZXNzaW9uLmVycm9ycz1jb250ZXh0LmVycm9ycyksY29udGV4dC5zdGF0dXMmJihzZXNzaW9uLnN0YXR1cz1jb250ZXh0LnN0YXR1cyl9ZnVuY3Rpb24gY2xvc2VTZXNzaW9uKHNlc3Npb24sc3RhdHVzKXtsZXQgY29udGV4dD17fTtzdGF0dXM/Y29udGV4dD17c3RhdHVzfToib2siPT09c2Vzc2lvbi5zdGF0dXMmJihjb250ZXh0PXtzdGF0dXM6ImV4aXRlZCJ9KSx1cGRhdGVTZXNzaW9uKHNlc3Npb24sY29udGV4dCl9fSw3MjEyMzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7Q0c6ZnVuY3Rpb24oKXtyZXR1cm4gZ2V0RHluYW1pY1NhbXBsaW5nQ29udGV4dEZyb21TY29wZX0sTGg6ZnVuY3Rpb24oKXtyZXR1cm4gZnJlZXplRHNjT25TcGFufSxqQzpmdW5jdGlvbigpe3JldHVybiBnZXREeW5hbWljU2FtcGxpbmdDb250ZXh0RnJvbVNwYW59fSk7dmFyIF9jb25zdGFudHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDczMjQzKSxfY3VycmVudFNjb3Blc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fPV9fd2VicGFja19yZXF1aXJlX18oNzMwNzYpLF9zZW1hbnRpY0F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDMxMjE4KSxfdXRpbHNfYmFnZ2FnZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fPV9fd2VicGFja19yZXF1aXJlX18oMTUxOTcpLF91dGlsc19kc25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDUyNjM3KSxfdXRpbHNfaGFzU3BhbnNFbmFibGVkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X189X193ZWJwYWNrX3JlcXVpcmVfXyg1MTA3MiksX3V0aWxzX29iamVjdF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oOTM4MjApLF91dGlsc19zcGFuVXRpbHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDgxNTg1KSxfdXRpbHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk2NTE1KTtsZXQgRlJPWkVOX0RTQ19GSUVMRD0iX2Zyb3plbkRzYyI7ZnVuY3Rpb24gZnJlZXplRHNjT25TcGFuKHNwYW4sZHNjKXsoMCxfdXRpbHNfb2JqZWN0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ueHApKHNwYW4sRlJPWkVOX0RTQ19GSUVMRCxkc2MpfWZ1bmN0aW9uIGdldER5bmFtaWNTYW1wbGluZ0NvbnRleHRGcm9tQ2xpZW50KHRyYWNlX2lkLGNsaWVudCl7bGV0IG9wdGlvbnM9Y2xpZW50LmdldE9wdGlvbnMoKSx7cHVibGljS2V5OnB1YmxpY19rZXl9PWNsaWVudC5nZXREc24oKXx8e30sZHNjPXtlbnZpcm9ubWVudDpvcHRpb25zLmVudmlyb25tZW50fHxfY29uc3RhbnRzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uSixyZWxlYXNlOm9wdGlvbnMucmVsZWFzZSxwdWJsaWNfa2V5LHRyYWNlX2lkLG9yZ19pZDooMCxfdXRpbHNfZHNuX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uZHUpKGNsaWVudCl9O3JldHVybiBjbGllbnQuZW1pdCgiY3JlYXRlRHNjIixkc2MpLGRzY31mdW5jdGlvbiBnZXREeW5hbWljU2FtcGxpbmdDb250ZXh0RnJvbVNjb3BlKGNsaWVudCxzY29wZSl7bGV0IHByb3BhZ2F0aW9uQ29udGV4dD1zY29wZS5nZXRQcm9wYWdhdGlvbkNvbnRleHQoKTtyZXR1cm4gcHJvcGFnYXRpb25Db250ZXh0LmRzY3x8Z2V0RHluYW1pY1NhbXBsaW5nQ29udGV4dEZyb21DbGllbnQocHJvcGFnYXRpb25Db250ZXh0LnRyYWNlSWQsY2xpZW50KX1mdW5jdGlvbiBnZXREeW5hbWljU2FtcGxpbmdDb250ZXh0RnJvbVNwYW4oc3Bhbil7bGV0IGNsaWVudD0oMCxfY3VycmVudFNjb3Blc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnMzKSgpO2lmKCFjbGllbnQpcmV0dXJue307bGV0IHJvb3RTcGFuPSgwLF91dGlsc19zcGFuVXRpbHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5HeCkoc3Bhbikscm9vdFNwYW5Kc29uPSgwLF91dGlsc19zcGFuVXRpbHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5YVSkocm9vdFNwYW4pLHJvb3RTcGFuQXR0cmlidXRlcz1yb290U3Bhbkpzb24uZGF0YSx0cmFjZVN0YXRlPXJvb3RTcGFuLnNwYW5Db250ZXh0KCkudHJhY2VTdGF0ZSxyb290U3BhblNhbXBsZVJhdGU9dHJhY2VTdGF0ZT8uZ2V0KCJzZW50cnkuc2FtcGxlX3JhdGUiKT8/cm9vdFNwYW5BdHRyaWJ1dGVzW19zZW1hbnRpY0F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5URV0/P3Jvb3RTcGFuQXR0cmlidXRlc1tfc2VtYW50aWNBdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uaVRdO2Z1bmN0aW9uIGFwcGx5TG9jYWxTYW1wbGVSYXRlVG9Ec2MoZHNjKXtyZXR1cm4oIm51bWJlciI9PXR5cGVvZiByb290U3BhblNhbXBsZVJhdGV8fCJzdHJpbmciPT10eXBlb2Ygcm9vdFNwYW5TYW1wbGVSYXRlKSYmKGRzYy5zYW1wbGVfcmF0ZT1gJHtyb290U3BhblNhbXBsZVJhdGV9YCksZHNjfWxldCBmcm96ZW5Ec2M9cm9vdFNwYW5bRlJPWkVOX0RTQ19GSUVMRF07aWYoZnJvemVuRHNjKXJldHVybiBhcHBseUxvY2FsU2FtcGxlUmF0ZVRvRHNjKGZyb3plbkRzYyk7bGV0IHRyYWNlU3RhdGVEc2M9dHJhY2VTdGF0ZT8uZ2V0KCJzZW50cnkuZHNjIiksZHNjT25UcmFjZVN0YXRlPXRyYWNlU3RhdGVEc2MmJigwLF91dGlsc19iYWdnYWdlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uRU4pKHRyYWNlU3RhdGVEc2MpO2lmKGRzY09uVHJhY2VTdGF0ZSlyZXR1cm4gYXBwbHlMb2NhbFNhbXBsZVJhdGVUb0RzYyhkc2NPblRyYWNlU3RhdGUpO2xldCBkc2M9Z2V0RHluYW1pY1NhbXBsaW5nQ29udGV4dEZyb21DbGllbnQoc3Bhbi5zcGFuQ29udGV4dCgpLnRyYWNlSWQsY2xpZW50KSxzb3VyY2U9cm9vdFNwYW5BdHRyaWJ1dGVzW19zZW1hbnRpY0F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5aal0sbmFtZT1yb290U3Bhbkpzb24uZGVzY3JpcHRpb247cmV0dXJuInVybCIhPT1zb3VyY2UmJm5hbWUmJihkc2MudHJhbnNhY3Rpb249bmFtZSksKDAsX3V0aWxzX2hhc1NwYW5zRW5hYmxlZF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmYpKCkmJihkc2Muc2FtcGxlZD1TdHJpbmcoKDAsX3V0aWxzX3NwYW5VdGlsc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlR0KShyb290U3BhbikpLGRzYy5zYW1wbGVfcmFuZD10cmFjZVN0YXRlPy5nZXQoInNlbnRyeS5zYW1wbGVfcmFuZCIpPz9fdXRpbHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5JKHJvb3RTcGFuKS5zY29wZT8uZ2V0UHJvcGFnYXRpb25Db250ZXh0KCkuc2FtcGxlUmFuZC50b1N0cmluZygpKSxhcHBseUxvY2FsU2FtcGxlUmF0ZVRvRHNjKGRzYyksY2xpZW50LmVtaXQoImNyZWF0ZURzYyIsZHNjLHJvb3RTcGFuKSxkc2N9fSw2OTczNzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7T1A6ZnVuY3Rpb24oKXtyZXR1cm4gU1BBTl9TVEFUVVNfT0t9LFEwOmZ1bmN0aW9uKCl7cmV0dXJuIHNldEh0dHBTdGF0dXN9LGp0OmZ1bmN0aW9uKCl7cmV0dXJuIFNQQU5fU1RBVFVTX0VSUk9SfSxwcTpmdW5jdGlvbigpe3JldHVybiBTUEFOX1NUQVRVU19VTlNFVH19KTtsZXQgU1BBTl9TVEFUVVNfVU5TRVQ9MCxTUEFOX1NUQVRVU19PSz0xLFNQQU5fU1RBVFVTX0VSUk9SPTI7ZnVuY3Rpb24gc2V0SHR0cFN0YXR1cyhzcGFuLGh0dHBTdGF0dXMpe3NwYW4uc2V0QXR0cmlidXRlKCJodHRwLnJlc3BvbnNlLnN0YXR1c19jb2RlIixodHRwU3RhdHVzKTtsZXQgc3BhblN0YXR1cz1mdW5jdGlvbihodHRwU3RhdHVzKXtpZihodHRwU3RhdHVzPDQwMCYmaHR0cFN0YXR1cz49MTAwKXJldHVybntjb2RlOlNQQU5fU1RBVFVTX09LfTtpZihodHRwU3RhdHVzPj00MDAmJmh0dHBTdGF0dXM8NTAwKXN3aXRjaChodHRwU3RhdHVzKXtjYXNlIDQwMTpyZXR1cm57Y29kZTpTUEFOX1NUQVRVU19FUlJPUixtZXNzYWdlOiJ1bmF1dGhlbnRpY2F0ZWQifTtjYXNlIDQwMzpyZXR1cm57Y29kZTpTUEFOX1NUQVRVU19FUlJPUixtZXNzYWdlOiJwZXJtaXNzaW9uX2RlbmllZCJ9O2Nhc2UgNDA0OnJldHVybntjb2RlOlNQQU5fU1RBVFVTX0VSUk9SLG1lc3NhZ2U6Im5vdF9mb3VuZCJ9O2Nhc2UgNDA5OnJldHVybntjb2RlOlNQQU5fU1RBVFVTX0VSUk9SLG1lc3NhZ2U6ImFscmVhZHlfZXhpc3RzIn07Y2FzZSA0MTM6cmV0dXJue2NvZGU6U1BBTl9TVEFUVVNfRVJST1IsbWVzc2FnZToiZmFpbGVkX3ByZWNvbmRpdGlvbiJ9O2Nhc2UgNDI5OnJldHVybntjb2RlOlNQQU5fU1RBVFVTX0VSUk9SLG1lc3NhZ2U6InJlc291cmNlX2V4aGF1c3RlZCJ9O2Nhc2UgNDk5OnJldHVybntjb2RlOlNQQU5fU1RBVFVTX0VSUk9SLG1lc3NhZ2U6ImNhbmNlbGxlZCJ9O2RlZmF1bHQ6cmV0dXJue2NvZGU6U1BBTl9TVEFUVVNfRVJST1IsbWVzc2FnZToiaW52YWxpZF9hcmd1bWVudCJ9fWlmKGh0dHBTdGF0dXM+PTUwMCYmaHR0cFN0YXR1czw2MDApc3dpdGNoKGh0dHBTdGF0dXMpe2Nhc2UgNTAxOnJldHVybntjb2RlOlNQQU5fU1RBVFVTX0VSUk9SLG1lc3NhZ2U6InVuaW1wbGVtZW50ZWQifTtjYXNlIDUwMzpyZXR1cm57Y29kZTpTUEFOX1NUQVRVU19FUlJPUixtZXNzYWdlOiJ1bmF2YWlsYWJsZSJ9O2Nhc2UgNTA0OnJldHVybntjb2RlOlNQQU5fU1RBVFVTX0VSUk9SLG1lc3NhZ2U6ImRlYWRsaW5lX2V4Y2VlZGVkIn19cmV0dXJue2NvZGU6U1BBTl9TVEFUVVNfRVJST1IsbWVzc2FnZToiaW50ZXJuYWxfZXJyb3IifX0oaHR0cFN0YXR1cyk7InVua25vd25fZXJyb3IiIT09c3BhblN0YXR1cy5tZXNzYWdlJiZzcGFuLnNldFN0YXR1cyhzcGFuU3RhdHVzKX19LDk2NTE1OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtJOmZ1bmN0aW9uKCl7cmV0dXJuIGdldENhcHR1cmVkU2NvcGVzT25TcGFufSxZOmZ1bmN0aW9uKCl7cmV0dXJuIHNldENhcHR1cmVkU2NvcGVzT25TcGFufX0pO3ZhciBfdXRpbHNfb2JqZWN0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg5MzgyMCksX3V0aWxzX3dvcmxkd2lkZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNTE1OTcpO2xldCBTQ09QRV9PTl9TVEFSVF9TUEFOX0ZJRUxEPSJfc2VudHJ5U2NvcGUiLElTT0xBVElPTl9TQ09QRV9PTl9TVEFSVF9TUEFOX0ZJRUxEPSJfc2VudHJ5SXNvbGF0aW9uU2NvcGUiO2Z1bmN0aW9uIHNldENhcHR1cmVkU2NvcGVzT25TcGFuKHNwYW4sc2NvcGUsaXNvbGF0aW9uU2NvcGUpe3NwYW4mJigoMCxfdXRpbHNfb2JqZWN0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ueHApKHNwYW4sSVNPTEFUSU9OX1NDT1BFX09OX1NUQVJUX1NQQU5fRklFTEQsZnVuY3Rpb24oc2NvcGUpe3RyeXtsZXQgV2Vha1JlZkNsYXNzPV91dGlsc193b3JsZHdpZGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5uLldlYWtSZWY7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFdlYWtSZWZDbGFzcylyZXR1cm4gbmV3IFdlYWtSZWZDbGFzcyhzY29wZSl9Y2F0Y2h7fXJldHVybiBzY29wZX0oaXNvbGF0aW9uU2NvcGUpKSwoMCxfdXRpbHNfb2JqZWN0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ueHApKHNwYW4sU0NPUEVfT05fU1RBUlRfU1BBTl9GSUVMRCxzY29wZSkpfWZ1bmN0aW9uIGdldENhcHR1cmVkU2NvcGVzT25TcGFuKHNwYW4pe3JldHVybntzY29wZTpzcGFuW1NDT1BFX09OX1NUQVJUX1NQQU5fRklFTERdLGlzb2xhdGlvblNjb3BlOmZ1bmN0aW9uKHNjb3BlUmVmKXtpZihzY29wZVJlZil7aWYoIm9iamVjdCI9PXR5cGVvZiBzY29wZVJlZiYmImRlcmVmImluIHNjb3BlUmVmJiYiZnVuY3Rpb24iPT10eXBlb2Ygc2NvcGVSZWYuZGVyZWYpdHJ5e3JldHVybiBzY29wZVJlZi5kZXJlZigpfWNhdGNoe3JldHVybn1yZXR1cm4gc2NvcGVSZWZ9fShzcGFuW0lTT0xBVElPTl9TQ09QRV9PTl9TVEFSVF9TUEFOX0ZJRUxEXSl9fX0sMTUxOTc6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se0VOOmZ1bmN0aW9uKCl7cmV0dXJuIGJhZ2dhZ2VIZWFkZXJUb0R5bmFtaWNTYW1wbGluZ0NvbnRleHR9LElROmZ1bmN0aW9uKCl7cmV0dXJuIGR5bmFtaWNTYW1wbGluZ0NvbnRleHRUb1NlbnRyeUJhZ2dhZ2VIZWFkZXJ9LFhNOmZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlQmFnZ2FnZUhlYWRlcn0sbHE6ZnVuY3Rpb24oKXtyZXR1cm4gU0VOVFJZX0JBR0dBR0VfS0VZX1BSRUZJWH19KTt2YXIgX2RlYnVnX2J1aWxkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg5NDIyMyksX2RlYnVnX2xvZ2dlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fPV9fd2VicGFja19yZXF1aXJlX18oNTgyNCksX2lzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg0MTc0NSk7bGV0IFNFTlRSWV9CQUdHQUdFX0tFWV9QUkVGSVg9InNlbnRyeS0iLFNFTlRSWV9CQUdHQUdFX0tFWV9QUkVGSVhfUkVHRVg9L15zZW50cnktLztmdW5jdGlvbiBiYWdnYWdlSGVhZGVyVG9EeW5hbWljU2FtcGxpbmdDb250ZXh0KGJhZ2dhZ2VIZWFkZXIpe2xldCBiYWdnYWdlT2JqZWN0PXBhcnNlQmFnZ2FnZUhlYWRlcihiYWdnYWdlSGVhZGVyKTtpZighYmFnZ2FnZU9iamVjdClyZXR1cm47bGV0IGR5bmFtaWNTYW1wbGluZ0NvbnRleHQ9T2JqZWN0LmVudHJpZXMoYmFnZ2FnZU9iamVjdCkucmVkdWNlKChhY2MsW2tleSx2YWx1ZV0pPT57aWYoa2V5Lm1hdGNoKFNFTlRSWV9CQUdHQUdFX0tFWV9QUkVGSVhfUkVHRVgpKXtsZXQgbm9uUHJlZml4ZWRLZXk9a2V5LnNsaWNlKFNFTlRSWV9CQUdHQUdFX0tFWV9QUkVGSVgubGVuZ3RoKTthY2Nbbm9uUHJlZml4ZWRLZXldPXZhbHVlfXJldHVybiBhY2N9LHt9KTtyZXR1cm4gT2JqZWN0LmtleXMoZHluYW1pY1NhbXBsaW5nQ29udGV4dCkubGVuZ3RoPjA/ZHluYW1pY1NhbXBsaW5nQ29udGV4dDp2b2lkIDB9ZnVuY3Rpb24gZHluYW1pY1NhbXBsaW5nQ29udGV4dFRvU2VudHJ5QmFnZ2FnZUhlYWRlcihkeW5hbWljU2FtcGxpbmdDb250ZXh0KXtpZighZHluYW1pY1NhbXBsaW5nQ29udGV4dClyZXR1cm47bGV0IHNlbnRyeVByZWZpeGVkRFNDPU9iamVjdC5lbnRyaWVzKGR5bmFtaWNTYW1wbGluZ0NvbnRleHQpLnJlZHVjZSgoYWNjLFtkc2NLZXksZHNjVmFsdWVdKT0+KGRzY1ZhbHVlJiYoYWNjW2Ake1NFTlRSWV9CQUdHQUdFX0tFWV9QUkVGSVh9JHtkc2NLZXl9YF09ZHNjVmFsdWUpLGFjYykse30pO3JldHVybiBmdW5jdGlvbihvYmplY3Qpe2lmKDAhPT1PYmplY3Qua2V5cyhvYmplY3QpLmxlbmd0aClyZXR1cm4gT2JqZWN0LmVudHJpZXMob2JqZWN0KS5yZWR1Y2UoKGJhZ2dhZ2VIZWFkZXIsW29iamVjdEtleSxvYmplY3RWYWx1ZV0sY3VycmVudEluZGV4KT0+e2xldCBiYWdnYWdlRW50cnk9YCR7ZW5jb2RlVVJJQ29tcG9uZW50KG9iamVjdEtleSl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KG9iamVjdFZhbHVlKX1gLG5ld0JhZ2dhZ2VIZWFkZXI9MD09PWN1cnJlbnRJbmRleD9iYWdnYWdlRW50cnk6YCR7YmFnZ2FnZUhlYWRlcn0sJHtiYWdnYWdlRW50cnl9YDtyZXR1cm4gbmV3QmFnZ2FnZUhlYWRlci5sZW5ndGg+ODE5Mj8oX2RlYnVnX2J1aWxkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uWCYmX2RlYnVnX2xvZ2dlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmZGLndhcm4oYE5vdCBhZGRpbmcga2V5OiAke29iamVjdEtleX0gd2l0aCB2YWw6ICR7b2JqZWN0VmFsdWV9IHRvIGJhZ2dhZ2UgaGVhZGVyIGR1ZSB0byBleGNlZWRpbmcgYmFnZ2FnZSBzaXplIGxpbWl0cy5gKSxiYWdnYWdlSGVhZGVyKTpuZXdCYWdnYWdlSGVhZGVyfSwiIil9KHNlbnRyeVByZWZpeGVkRFNDKX1mdW5jdGlvbiBwYXJzZUJhZ2dhZ2VIZWFkZXIoYmFnZ2FnZUhlYWRlcil7cmV0dXJuIGJhZ2dhZ2VIZWFkZXImJigoMCxfaXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5IRCkoYmFnZ2FnZUhlYWRlcil8fEFycmF5LmlzQXJyYXkoYmFnZ2FnZUhlYWRlcikpP0FycmF5LmlzQXJyYXkoYmFnZ2FnZUhlYWRlcik/YmFnZ2FnZUhlYWRlci5yZWR1Y2UoKGFjYyxjdXJyKT0+e2xldCBjdXJyQmFnZ2FnZU9iamVjdD1iYWdnYWdlSGVhZGVyVG9PYmplY3QoY3Vycik7cmV0dXJuIE9iamVjdC5lbnRyaWVzKGN1cnJCYWdnYWdlT2JqZWN0KS5mb3JFYWNoKChba2V5LHZhbHVlXSk9PnthY2Nba2V5XT12YWx1ZX0pLGFjY30se30pOmJhZ2dhZ2VIZWFkZXJUb09iamVjdChiYWdnYWdlSGVhZGVyKTp2b2lkIDB9ZnVuY3Rpb24gYmFnZ2FnZUhlYWRlclRvT2JqZWN0KGJhZ2dhZ2VIZWFkZXIpe3JldHVybiBiYWdnYWdlSGVhZGVyLnNwbGl0KCIsIikubWFwKGJhZ2dhZ2VFbnRyeT0+e2xldCBlcUlkeD1iYWdnYWdlRW50cnkuaW5kZXhPZigiPSIpO2lmKC0xPT09ZXFJZHgpcmV0dXJuW107bGV0IGtleT1iYWdnYWdlRW50cnkuc2xpY2UoMCxlcUlkeCksdmFsdWU9YmFnZ2FnZUVudHJ5LnNsaWNlKGVxSWR4KzEpO3JldHVybltrZXksdmFsdWVdLm1hcChrZXlPclZhbHVlPT57dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoa2V5T3JWYWx1ZS50cmltKCkpfWNhdGNoe3JldHVybn19KX0pLnJlZHVjZSgoYWNjLFtrZXksdmFsdWVdKT0+KGtleSYmdmFsdWUmJihhY2Nba2V5XT12YWx1ZSksYWNjKSx7fSl9fSwzODE0MzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7UnQ6ZnVuY3Rpb24oKXtyZXR1cm4gaHRtbFRyZWVBc1N0cmluZ30saVk6ZnVuY3Rpb24oKXtyZXR1cm4gZ2V0Q29tcG9uZW50TmFtZX0sbDQ6ZnVuY3Rpb24oKXtyZXR1cm4gZ2V0TG9jYXRpb25IcmVmfX0pO3ZhciBfaXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQxNzQ1KSxfd29ybGR3aWRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg1MTU5Nyk7bGV0IFdJTkRPVz1fd29ybGR3aWRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubjtmdW5jdGlvbiBodG1sVHJlZUFzU3RyaW5nKGVsZW0sb3B0aW9ucz17fSl7aWYoIWVsZW0pcmV0dXJuIjx1bmtub3duPiI7dHJ5e2xldCBuZXh0U3RyLGN1cnJlbnRFbGVtPWVsZW0sb3V0PVtdLGhlaWdodD0wLGxlbj0wLGtleUF0dHJzPUFycmF5LmlzQXJyYXkob3B0aW9ucyk/b3B0aW9uczpvcHRpb25zLmtleUF0dHJzLG1heFN0cmluZ0xlbmd0aD0hQXJyYXkuaXNBcnJheShvcHRpb25zKSYmb3B0aW9ucy5tYXhTdHJpbmdMZW5ndGh8fDgwO2Zvcig7Y3VycmVudEVsZW0mJmhlaWdodCsrPDUmJihuZXh0U3RyPWZ1bmN0aW9uKGVsLGtleUF0dHJzKXtsZXQgb3V0PVtdO2lmKCFlbD8udGFnTmFtZSlyZXR1cm4iIjtpZihXSU5ET1cuSFRNTEVsZW1lbnQmJmVsIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJmVsLmRhdGFzZXQpe2lmKGVsLmRhdGFzZXQuc2VudHJ5Q29tcG9uZW50KXJldHVybiBlbC5kYXRhc2V0LnNlbnRyeUNvbXBvbmVudDtpZihlbC5kYXRhc2V0LnNlbnRyeUVsZW1lbnQpcmV0dXJuIGVsLmRhdGFzZXQuc2VudHJ5RWxlbWVudH1vdXQucHVzaChlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpO2xldCBrZXlBdHRyUGFpcnM9a2V5QXR0cnM/Lmxlbmd0aD9rZXlBdHRycy5maWx0ZXIoa2V5QXR0cj0+ZWwuZ2V0QXR0cmlidXRlKGtleUF0dHIpKS5tYXAoa2V5QXR0cj0+W2tleUF0dHIsZWwuZ2V0QXR0cmlidXRlKGtleUF0dHIpXSk6bnVsbDtpZihrZXlBdHRyUGFpcnM/Lmxlbmd0aClrZXlBdHRyUGFpcnMuZm9yRWFjaChrZXlBdHRyUGFpcj0+e291dC5wdXNoKGBbJHtrZXlBdHRyUGFpclswXX09IiR7a2V5QXR0clBhaXJbMV19Il1gKX0pO2Vsc2V7ZWwuaWQmJm91dC5wdXNoKGAjJHtlbC5pZH1gKTtsZXQgY2xhc3NOYW1lPWVsLmNsYXNzTmFtZTtpZihjbGFzc05hbWUmJigwLF9pc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkhEKShjbGFzc05hbWUpKXtsZXQgY2xhc3Nlcz1jbGFzc05hbWUuc3BsaXQoL1xzKy8pO2ZvcihsZXQgYyBvZiBjbGFzc2VzKW91dC5wdXNoKGAuJHtjfWApfX1mb3IobGV0IGsgb2ZbImFyaWEtbGFiZWwiLCJ0eXBlIiwibmFtZSIsInRpdGxlIiwiYWx0Il0pe2xldCBhdHRyPWVsLmdldEF0dHJpYnV0ZShrKTthdHRyJiZvdXQucHVzaChgWyR7a309IiR7YXR0cn0iXWApfXJldHVybiBvdXQuam9pbigiIil9KGN1cnJlbnRFbGVtLGtleUF0dHJzKSwiaHRtbCIhPT1uZXh0U3RyJiYoIShoZWlnaHQ+MSl8fCEobGVuKzMqb3V0Lmxlbmd0aCtuZXh0U3RyLmxlbmd0aD49bWF4U3RyaW5nTGVuZ3RoKSkpOylvdXQucHVzaChuZXh0U3RyKSxsZW4rPW5leHRTdHIubGVuZ3RoLGN1cnJlbnRFbGVtPWN1cnJlbnRFbGVtLnBhcmVudE5vZGU7cmV0dXJuIG91dC5yZXZlcnNlKCkuam9pbigiID4gIil9Y2F0Y2h7cmV0dXJuIjx1bmtub3duPiJ9fWZ1bmN0aW9uIGdldExvY2F0aW9uSHJlZigpe3RyeXtyZXR1cm4gV0lORE9XLmRvY3VtZW50LmxvY2F0aW9uLmhyZWZ9Y2F0Y2h7cmV0dXJuIiJ9fWZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWUoZWxlbSl7aWYoIVdJTkRPVy5IVE1MRWxlbWVudClyZXR1cm4gbnVsbDtsZXQgY3VycmVudEVsZW09ZWxlbTtmb3IobGV0IGk9MDtpPDUmJmN1cnJlbnRFbGVtO2krKyl7aWYoY3VycmVudEVsZW0gaW5zdGFuY2VvZiBIVE1MRWxlbWVudCl7aWYoY3VycmVudEVsZW0uZGF0YXNldC5zZW50cnlDb21wb25lbnQpcmV0dXJuIGN1cnJlbnRFbGVtLmRhdGFzZXQuc2VudHJ5Q29tcG9uZW50O2lmKGN1cnJlbnRFbGVtLmRhdGFzZXQuc2VudHJ5RWxlbWVudClyZXR1cm4gY3VycmVudEVsZW0uZGF0YXNldC5zZW50cnlFbGVtZW50fWN1cnJlbnRFbGVtPWN1cnJlbnRFbGVtLnBhcmVudE5vZGV9cmV0dXJuIG51bGx9fSw1ODI0OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtDZjpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlU2FuZGJveH0sTEQ6ZnVuY3Rpb24oKXtyZXR1cm4gb3JpZ2luYWxDb25zb2xlTWV0aG9kc30sUlU6ZnVuY3Rpb24oKXtyZXR1cm4gQ09OU09MRV9MRVZFTFN9LGZGOmZ1bmN0aW9uKCl7cmV0dXJuIGRlYnVnfX0pO3ZhciBfY2Fycmllcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fPV9fd2VicGFja19yZXF1aXJlX18oMTM1MzMpLF9kZWJ1Z19idWlsZF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oOTQyMjMpLF93b3JsZHdpZGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDUxNTk3KTtsZXQgQ09OU09MRV9MRVZFTFM9WyJkZWJ1ZyIsImluZm8iLCJ3YXJuIiwiZXJyb3IiLCJsb2ciLCJhc3NlcnQiLCJ0cmFjZSJdLG9yaWdpbmFsQ29uc29sZU1ldGhvZHM9e307ZnVuY3Rpb24gY29uc29sZVNhbmRib3goY2FsbGJhY2spe2lmKCEoImNvbnNvbGUiaW4gX3dvcmxkd2lkZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLm4pKXJldHVybiBjYWxsYmFjaygpO2xldCBjb25zb2xlMT1fd29ybGR3aWRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubi5jb25zb2xlLHdyYXBwZWRGdW5jcz17fSx3cmFwcGVkTGV2ZWxzPU9iamVjdC5rZXlzKG9yaWdpbmFsQ29uc29sZU1ldGhvZHMpO3dyYXBwZWRMZXZlbHMuZm9yRWFjaChsZXZlbD0+e2xldCBvcmlnaW5hbENvbnNvbGVNZXRob2Q9b3JpZ2luYWxDb25zb2xlTWV0aG9kc1tsZXZlbF07d3JhcHBlZEZ1bmNzW2xldmVsXT1jb25zb2xlMVtsZXZlbF0sY29uc29sZTFbbGV2ZWxdPW9yaWdpbmFsQ29uc29sZU1ldGhvZH0pO3RyeXtyZXR1cm4gY2FsbGJhY2soKX1maW5hbGx5e3dyYXBwZWRMZXZlbHMuZm9yRWFjaChsZXZlbD0+e2NvbnNvbGUxW2xldmVsXT13cmFwcGVkRnVuY3NbbGV2ZWxdfSl9fWZ1bmN0aW9uIGlzRW5hYmxlZCgpe3JldHVybiBfZ2V0TG9nZ2VyU2V0dGluZ3MoKS5lbmFibGVkfWZ1bmN0aW9uIF9tYXliZUxvZyhsZXZlbCwuLi5hcmdzKXtfZGVidWdfYnVpbGRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5YJiZpc0VuYWJsZWQoKSYmY29uc29sZVNhbmRib3goKCk9Pntfd29ybGR3aWRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubi5jb25zb2xlW2xldmVsXShgU2VudHJ5IExvZ2dlciBbJHtsZXZlbH1dOmAsLi4uYXJncyl9KX1mdW5jdGlvbiBfZ2V0TG9nZ2VyU2V0dGluZ3MoKXtyZXR1cm4gX2RlYnVnX2J1aWxkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uWD8oMCxfY2Fycmllcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLllPKSgibG9nZ2VyU2V0dGluZ3MiLCgpPT4oe2VuYWJsZWQ6ITF9KSk6e2VuYWJsZWQ6ITF9fWxldCBkZWJ1Zz17ZW5hYmxlOmZ1bmN0aW9uKCl7X2dldExvZ2dlclNldHRpbmdzKCkuZW5hYmxlZD0hMH0sZGlzYWJsZTpmdW5jdGlvbigpe19nZXRMb2dnZXJTZXR0aW5ncygpLmVuYWJsZWQ9ITF9LGlzRW5hYmxlZCxsb2c6ZnVuY3Rpb24oLi4uYXJncyl7X21heWJlTG9nKCJsb2ciLC4uLmFyZ3MpfSx3YXJuOmZ1bmN0aW9uKC4uLmFyZ3Mpe19tYXliZUxvZygid2FybiIsLi4uYXJncyl9LGVycm9yOmZ1bmN0aW9uKC4uLmFyZ3Mpe19tYXliZUxvZygiZXJyb3IiLC4uLmFyZ3MpfX19LDUyNjM3OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtSQTpmdW5jdGlvbigpe3JldHVybiBkc25Ub1N0cmluZ30sVTQ6ZnVuY3Rpb24oKXtyZXR1cm4gZHNuRnJvbVN0cmluZ30sZHU6ZnVuY3Rpb24oKXtyZXR1cm4gZXh0cmFjdE9yZ0lkRnJvbUNsaWVudH0sdks6ZnVuY3Rpb24oKXtyZXR1cm4gbWFrZURzbn19KTt2YXIgX2RlYnVnX2J1aWxkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg5NDIyMyksX2RlYnVnX2xvZ2dlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNTgyNCk7bGV0IE9SR19JRF9SRUdFWD0vXm8oXGQrKVwuLyxEU05fUkVHRVg9L14oPzooXHcrKTopXC9cLyg/OihcdyspKD86OihcdyspPyk/QCkoW1x3Li1dKykoPzo6KFxkKykpP1wvKC4rKS87ZnVuY3Rpb24gZHNuVG9TdHJpbmcoZHNuLHdpdGhQYXNzd29yZD0hMSl7bGV0e2hvc3QscGF0aCxwYXNzLHBvcnQscHJvamVjdElkLHByb3RvY29sLHB1YmxpY0tleX09ZHNuO3JldHVybmAke3Byb3RvY29sfTovLyR7cHVibGljS2V5fSR7d2l0aFBhc3N3b3JkJiZwYXNzP2A6JHtwYXNzfWA6IiJ9QCR7aG9zdH0ke3BvcnQ/YDoke3BvcnR9YDoiIn0vJHtwYXRoP2Ake3BhdGh9L2A6cGF0aH0ke3Byb2plY3RJZH1gfWZ1bmN0aW9uIGRzbkZyb21TdHJpbmcoc3RyKXtsZXQgbWF0Y2g9RFNOX1JFR0VYLmV4ZWMoc3RyKTtpZighbWF0Y2gpeygwLF9kZWJ1Z19sb2dnZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5DZikoKCk9Pntjb25zb2xlLmVycm9yKGBJbnZhbGlkIFNlbnRyeSBEc246ICR7c3RyfWApfSk7cmV0dXJufWxldFtwcm90b2NvbCxwdWJsaWNLZXkscGFzcz0iIixob3N0PSIiLHBvcnQ9IiIsbGFzdFBhdGg9IiJdPW1hdGNoLnNsaWNlKDEpLHBhdGg9IiIscHJvamVjdElkPWxhc3RQYXRoLHNwbGl0PXByb2plY3RJZC5zcGxpdCgiLyIpO2lmKHNwbGl0Lmxlbmd0aD4xJiYocGF0aD1zcGxpdC5zbGljZSgwLC0xKS5qb2luKCIvIikscHJvamVjdElkPXNwbGl0LnBvcCgpKSxwcm9qZWN0SWQpe2xldCBwcm9qZWN0TWF0Y2g9cHJvamVjdElkLm1hdGNoKC9eXGQrLyk7cHJvamVjdE1hdGNoJiYocHJvamVjdElkPXByb2plY3RNYXRjaFswXSl9cmV0dXJuIGRzbkZyb21Db21wb25lbnRzKHtob3N0LHBhc3MscGF0aCxwcm9qZWN0SWQscG9ydCxwcm90b2NvbDpwcm90b2NvbCxwdWJsaWNLZXl9KX1mdW5jdGlvbiBkc25Gcm9tQ29tcG9uZW50cyhjb21wb25lbnRzKXtyZXR1cm57cHJvdG9jb2w6Y29tcG9uZW50cy5wcm90b2NvbCxwdWJsaWNLZXk6Y29tcG9uZW50cy5wdWJsaWNLZXl8fCIiLHBhc3M6Y29tcG9uZW50cy5wYXNzfHwiIixob3N0OmNvbXBvbmVudHMuaG9zdCxwb3J0OmNvbXBvbmVudHMucG9ydHx8IiIscGF0aDpjb21wb25lbnRzLnBhdGh8fCIiLHByb2plY3RJZDpjb21wb25lbnRzLnByb2plY3RJZH19ZnVuY3Rpb24gZXh0cmFjdE9yZ0lkRnJvbUNsaWVudChjbGllbnQpe2xldCBvcmdfaWQ7bGV0IG9wdGlvbnM9Y2xpZW50LmdldE9wdGlvbnMoKSx7aG9zdH09Y2xpZW50LmdldERzbigpfHx7fTtyZXR1cm4gb3B0aW9ucy5vcmdJZD9vcmdfaWQ9U3RyaW5nKG9wdGlvbnMub3JnSWQpOmhvc3QmJihvcmdfaWQ9ZnVuY3Rpb24oaG9zdCl7bGV0IG1hdGNoPWhvc3QubWF0Y2goT1JHX0lEX1JFR0VYKTtyZXR1cm4gbWF0Y2g/LlsxXX0oaG9zdCkpLG9yZ19pZH1mdW5jdGlvbiBtYWtlRHNuKGZyb20pe2xldCBjb21wb25lbnRzPSJzdHJpbmciPT10eXBlb2YgZnJvbT9kc25Gcm9tU3RyaW5nKGZyb20pOmRzbkZyb21Db21wb25lbnRzKGZyb20pO2lmKGNvbXBvbmVudHMmJmZ1bmN0aW9uKGRzbil7aWYoIV9kZWJ1Z19idWlsZF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlgpcmV0dXJuITA7bGV0e3BvcnQscHJvamVjdElkLHByb3RvY29sfT1kc24saGFzTWlzc2luZ1JlcXVpcmVkQ29tcG9uZW50PVsicHJvdG9jb2wiLCJwdWJsaWNLZXkiLCJob3N0IiwicHJvamVjdElkIl0uZmluZChjb21wb25lbnQ9PiFkc25bY29tcG9uZW50XSYmKF9kZWJ1Z19sb2dnZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5mRi5lcnJvcihgSW52YWxpZCBTZW50cnkgRHNuOiAke2NvbXBvbmVudH0gbWlzc2luZ2ApLCEwKSk7cmV0dXJuIWhhc01pc3NpbmdSZXF1aXJlZENvbXBvbmVudCYmKHByb2plY3RJZC5tYXRjaCgvXlxkKyQvKT8iaHR0cCI9PT1wcm90b2NvbHx8Imh0dHBzIj09PXByb3RvY29sPyEocG9ydCYmaXNOYU4ocGFyc2VJbnQocG9ydCwxMCkpKXx8KF9kZWJ1Z19sb2dnZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5mRi5lcnJvcihgSW52YWxpZCBTZW50cnkgRHNuOiBJbnZhbGlkIHBvcnQgJHtwb3J0fWApLCExKTooX2RlYnVnX2xvZ2dlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmZGLmVycm9yKGBJbnZhbGlkIFNlbnRyeSBEc246IEludmFsaWQgcHJvdG9jb2wgJHtwcm90b2NvbH1gKSwhMSk6KF9kZWJ1Z19sb2dnZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5mRi5lcnJvcihgSW52YWxpZCBTZW50cnkgRHNuOiBJbnZhbGlkIHByb2plY3RJZCAke3Byb2plY3RJZH1gKSwhMSkpfShjb21wb25lbnRzKSlyZXR1cm4gY29tcG9uZW50c319LDk5MTA3OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGlzQnJvd3NlckJ1bmRsZSgpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgX19TRU5UUllfQlJPV1NFUl9CVU5ETEVfXyYmISFfX1NFTlRSWV9CUk9XU0VSX0JVTkRMRV9ffWZ1bmN0aW9uIGdldFNES1NvdXJjZSgpe3JldHVybiJucG0ifV9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtTOmZ1bmN0aW9uKCl7cmV0dXJuIGdldFNES1NvdXJjZX0sbjpmdW5jdGlvbigpe3JldHVybiBpc0Jyb3dzZXJCdW5kbGV9fSl9LDY0MDA0OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtCTzpmdW5jdGlvbigpe3JldHVybiBhZGRJdGVtVG9FbnZlbG9wZX0sQ2Q6ZnVuY3Rpb24oKXtyZXR1cm4gY3JlYXRlRXZlbnRFbnZlbG9wZUhlYWRlcnN9LEhZOmZ1bmN0aW9uKCl7cmV0dXJuIGdldFNka01ldGFkYXRhRm9yRW52ZWxvcGVIZWFkZXJ9LEpkOmZ1bmN0aW9uKCl7cmV0dXJuIGNyZWF0ZUVudmVsb3BlfSxLUTpmdW5jdGlvbigpe3JldHVybiBjcmVhdGVTcGFuRW52ZWxvcGVJdGVtfSxWJDpmdW5jdGlvbigpe3JldHVybiBzZXJpYWxpemVFbnZlbG9wZX0sZ3Y6ZnVuY3Rpb24oKXtyZXR1cm4gZm9yRWFjaEVudmVsb3BlSXRlbX0sbUw6ZnVuY3Rpb24oKXtyZXR1cm4gZW52ZWxvcGVJdGVtVHlwZVRvRGF0YUNhdGVnb3J5fSx6UTpmdW5jdGlvbigpe3JldHVybiBjcmVhdGVBdHRhY2htZW50RW52ZWxvcGVJdGVtfX0pO3ZhciBfY2Fycmllcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oMTM1MzMpLF9kc25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDUyNjM3KSxfbm9ybWFsaXplX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXyg3NzU5MyksX3dvcmxkd2lkZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oNTE1OTcpO2Z1bmN0aW9uIGNyZWF0ZUVudmVsb3BlKGhlYWRlcnMsaXRlbXM9W10pe3JldHVybltoZWFkZXJzLGl0ZW1zXX1mdW5jdGlvbiBhZGRJdGVtVG9FbnZlbG9wZShlbnZlbG9wZSxuZXdJdGVtKXtsZXRbaGVhZGVycyxpdGVtc109ZW52ZWxvcGU7cmV0dXJuW2hlYWRlcnMsWy4uLml0ZW1zLG5ld0l0ZW1dXX1mdW5jdGlvbiBmb3JFYWNoRW52ZWxvcGVJdGVtKGVudmVsb3BlLGNhbGxiYWNrKXtsZXQgZW52ZWxvcGVJdGVtcz1lbnZlbG9wZVsxXTtmb3IobGV0IGVudmVsb3BlSXRlbSBvZiBlbnZlbG9wZUl0ZW1zKXtsZXQgZW52ZWxvcGVJdGVtVHlwZT1lbnZlbG9wZUl0ZW1bMF0udHlwZSxyZXN1bHQ9Y2FsbGJhY2soZW52ZWxvcGVJdGVtLGVudmVsb3BlSXRlbVR5cGUpO2lmKHJlc3VsdClyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBlbmNvZGVVVEY4KGlucHV0KXtsZXQgY2Fycmllcj0oMCxfY2Fycmllcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnFBKShfd29ybGR3aWRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ubik7cmV0dXJuIGNhcnJpZXIuZW5jb2RlUG9seWZpbGw/Y2Fycmllci5lbmNvZGVQb2x5ZmlsbChpbnB1dCk6bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKGlucHV0KX1mdW5jdGlvbiBzZXJpYWxpemVFbnZlbG9wZShlbnZlbG9wZSl7bGV0W2VudkhlYWRlcnMsaXRlbXNdPWVudmVsb3BlLHBhcnRzPUpTT04uc3RyaW5naWZ5KGVudkhlYWRlcnMpO2Z1bmN0aW9uIGFwcGVuZChuZXh0KXsic3RyaW5nIj09dHlwZW9mIHBhcnRzP3BhcnRzPSJzdHJpbmciPT10eXBlb2YgbmV4dD9wYXJ0cytuZXh0OltlbmNvZGVVVEY4KHBhcnRzKSxuZXh0XTpwYXJ0cy5wdXNoKCJzdHJpbmciPT10eXBlb2YgbmV4dD9lbmNvZGVVVEY4KG5leHQpOm5leHQpfWZvcihsZXQgaXRlbSBvZiBpdGVtcyl7bGV0W2l0ZW1IZWFkZXJzLHBheWxvYWRdPWl0ZW07aWYoYXBwZW5kKGAKJHtKU09OLnN0cmluZ2lmeShpdGVtSGVhZGVycyl9CmApLCJzdHJpbmciPT10eXBlb2YgcGF5bG9hZHx8cGF5bG9hZCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpYXBwZW5kKHBheWxvYWQpO2Vsc2V7bGV0IHN0cmluZ2lmaWVkUGF5bG9hZDt0cnl7c3RyaW5naWZpZWRQYXlsb2FkPUpTT04uc3RyaW5naWZ5KHBheWxvYWQpfWNhdGNoe3N0cmluZ2lmaWVkUGF5bG9hZD1KU09OLnN0cmluZ2lmeSgoMCxfbm9ybWFsaXplX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uRnYpKHBheWxvYWQpKX1hcHBlbmQoc3RyaW5naWZpZWRQYXlsb2FkKX19cmV0dXJuInN0cmluZyI9PXR5cGVvZiBwYXJ0cz9wYXJ0czpmdW5jdGlvbihidWZmZXJzKXtsZXQgdG90YWxMZW5ndGg9YnVmZmVycy5yZWR1Y2UoKGFjYyxidWYpPT5hY2MrYnVmLmxlbmd0aCwwKSxtZXJnZWQ9bmV3IFVpbnQ4QXJyYXkodG90YWxMZW5ndGgpLG9mZnNldD0wO2ZvcihsZXQgYnVmZmVyIG9mIGJ1ZmZlcnMpbWVyZ2VkLnNldChidWZmZXIsb2Zmc2V0KSxvZmZzZXQrPWJ1ZmZlci5sZW5ndGg7cmV0dXJuIG1lcmdlZH0ocGFydHMpfWZ1bmN0aW9uIGNyZWF0ZVNwYW5FbnZlbG9wZUl0ZW0oc3Bhbkpzb24pe3JldHVyblt7dHlwZToic3BhbiJ9LHNwYW5Kc29uXX1mdW5jdGlvbiBjcmVhdGVBdHRhY2htZW50RW52ZWxvcGVJdGVtKGF0dGFjaG1lbnQpe2xldCBidWZmZXI9InN0cmluZyI9PXR5cGVvZiBhdHRhY2htZW50LmRhdGE/ZW5jb2RlVVRGOChhdHRhY2htZW50LmRhdGEpOmF0dGFjaG1lbnQuZGF0YTtyZXR1cm5be3R5cGU6ImF0dGFjaG1lbnQiLGxlbmd0aDpidWZmZXIubGVuZ3RoLGZpbGVuYW1lOmF0dGFjaG1lbnQuZmlsZW5hbWUsY29udGVudF90eXBlOmF0dGFjaG1lbnQuY29udGVudFR5cGUsYXR0YWNobWVudF90eXBlOmF0dGFjaG1lbnQuYXR0YWNobWVudFR5cGV9LGJ1ZmZlcl19bGV0IElURU1fVFlQRV9UT19EQVRBX0NBVEVHT1JZX01BUD17c2Vzc2lvbjoic2Vzc2lvbiIsc2Vzc2lvbnM6InNlc3Npb24iLGF0dGFjaG1lbnQ6ImF0dGFjaG1lbnQiLHRyYW5zYWN0aW9uOiJ0cmFuc2FjdGlvbiIsZXZlbnQ6ImVycm9yIixjbGllbnRfcmVwb3J0OiJpbnRlcm5hbCIsdXNlcl9yZXBvcnQ6ImRlZmF1bHQiLHByb2ZpbGU6InByb2ZpbGUiLHByb2ZpbGVfY2h1bms6InByb2ZpbGUiLHJlcGxheV9ldmVudDoicmVwbGF5IixyZXBsYXlfcmVjb3JkaW5nOiJyZXBsYXkiLGNoZWNrX2luOiJtb25pdG9yIixmZWVkYmFjazoiZmVlZGJhY2siLHNwYW46InNwYW4iLHJhd19zZWN1cml0eToic2VjdXJpdHkiLGxvZzoibG9nX2l0ZW0iLG1ldHJpYzoibWV0cmljIix0cmFjZV9tZXRyaWM6Im1ldHJpYyJ9O2Z1bmN0aW9uIGVudmVsb3BlSXRlbVR5cGVUb0RhdGFDYXRlZ29yeSh0eXBlKXtyZXR1cm4gSVRFTV9UWVBFX1RPX0RBVEFfQ0FURUdPUllfTUFQW3R5cGVdfWZ1bmN0aW9uIGdldFNka01ldGFkYXRhRm9yRW52ZWxvcGVIZWFkZXIobWV0YWRhdGFPckV2ZW50KXtpZighbWV0YWRhdGFPckV2ZW50Py5zZGspcmV0dXJuO2xldHtuYW1lLHZlcnNpb259PW1ldGFkYXRhT3JFdmVudC5zZGs7cmV0dXJue25hbWUsdmVyc2lvbn19ZnVuY3Rpb24gY3JlYXRlRXZlbnRFbnZlbG9wZUhlYWRlcnMoZXZlbnQsc2RrSW5mbyx0dW5uZWwsZHNuKXtsZXQgZHluYW1pY1NhbXBsaW5nQ29udGV4dD1ldmVudC5zZGtQcm9jZXNzaW5nTWV0YWRhdGE/LmR5bmFtaWNTYW1wbGluZ0NvbnRleHQ7cmV0dXJue2V2ZW50X2lkOmV2ZW50LmV2ZW50X2lkLHNlbnRfYXQ6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLC4uLnNka0luZm8mJntzZGs6c2RrSW5mb30sLi4uISF0dW5uZWwmJmRzbiYme2RzbjooMCxfZHNuX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uUkEpKGRzbil9LC4uLmR5bmFtaWNTYW1wbGluZ0NvbnRleHQmJnt0cmFjZTpkeW5hbWljU2FtcGxpbmdDb250ZXh0fX19fSw1MTA3MjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7ZjpmdW5jdGlvbigpe3JldHVybiBoYXNTcGFuc0VuYWJsZWR9fSk7dmFyIF9jdXJyZW50U2NvcGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg3MzA3Nik7ZnVuY3Rpb24gaGFzU3BhbnNFbmFibGVkKG1heWJlT3B0aW9ucyl7aWYoImJvb2xlYW4iPT10eXBlb2YgX19TRU5UUllfVFJBQ0lOR19fJiYhX19TRU5UUllfVFJBQ0lOR19fKXJldHVybiExO2xldCBvcHRpb25zPW1heWJlT3B0aW9uc3x8X2N1cnJlbnRTY29wZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5zMygpPy5nZXRPcHRpb25zKCk7cmV0dXJuISFvcHRpb25zJiYobnVsbCE9b3B0aW9ucy50cmFjZXNTYW1wbGVSYXRlfHwhIW9wdGlvbnMudHJhY2VzU2FtcGxlcil9fSw0MTc0NTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7Q3k6ZnVuY3Rpb24oKXtyZXR1cm4gaXNTeW50aGV0aWNFdmVudH0sSEQ6ZnVuY3Rpb24oKXtyZXR1cm4gaXNTdHJpbmd9LEo4OmZ1bmN0aW9uKCl7cmV0dXJuIGlzVGhlbmFibGV9LEtqOmZ1bmN0aW9uKCl7cmV0dXJuIGlzUmVnRXhwfSxMZTpmdW5jdGlvbigpe3JldHVybiBpc1BhcmFtZXRlcml6ZWRTdHJpbmd9LFBPOmZ1bmN0aW9uKCl7cmV0dXJuIGlzUGxhaW5PYmplY3R9LFRYOmZ1bmN0aW9uKCl7cmV0dXJuIGlzRE9NRXJyb3J9LFY5OmZ1bmN0aW9uKCl7cmV0dXJuIGlzSW5zdGFuY2VPZn0sVlc6ZnVuY3Rpb24oKXtyZXR1cm4gaXNFcnJvckV2ZW50fSxWWjpmdW5jdGlvbigpe3JldHVybiBpc0Vycm9yfSxjTzpmdW5jdGlvbigpe3JldHVybiBpc0V2ZW50fSxmbTpmdW5jdGlvbigpe3JldHVybiBpc0RPTUV4Y2VwdGlvbn0sZ0o6ZnVuY3Rpb24oKXtyZXR1cm4gaXNSZXF1ZXN0fSxrSzpmdW5jdGlvbigpe3JldHVybiBpc0VsZW1lbnR9LHB0OmZ1bmN0aW9uKCl7cmV0dXJuIGlzUHJpbWl0aXZlfSx5MTpmdW5jdGlvbigpe3JldHVybiBpc1Z1ZVZpZXdNb2RlbH19KTtsZXQgb2JqZWN0VG9TdHJpbmc9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBpc0Vycm9yKHdhdCl7c3dpdGNoKG9iamVjdFRvU3RyaW5nLmNhbGwod2F0KSl7Y2FzZSJbb2JqZWN0IEVycm9yXSI6Y2FzZSJbb2JqZWN0IEV4Y2VwdGlvbl0iOmNhc2UiW29iamVjdCBET01FeGNlcHRpb25dIjpjYXNlIltvYmplY3QgV2ViQXNzZW1ibHkuRXhjZXB0aW9uXSI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4gaXNJbnN0YW5jZU9mKHdhdCxFcnJvcil9fWZ1bmN0aW9uIGlzQnVpbHRpbih3YXQsY2xhc3NOYW1lKXtyZXR1cm4gb2JqZWN0VG9TdHJpbmcuY2FsbCh3YXQpPT09YFtvYmplY3QgJHtjbGFzc05hbWV9XWB9ZnVuY3Rpb24gaXNFcnJvckV2ZW50KHdhdCl7cmV0dXJuIGlzQnVpbHRpbih3YXQsIkVycm9yRXZlbnQiKX1mdW5jdGlvbiBpc0RPTUVycm9yKHdhdCl7cmV0dXJuIGlzQnVpbHRpbih3YXQsIkRPTUVycm9yIil9ZnVuY3Rpb24gaXNET01FeGNlcHRpb24od2F0KXtyZXR1cm4gaXNCdWlsdGluKHdhdCwiRE9NRXhjZXB0aW9uIil9ZnVuY3Rpb24gaXNTdHJpbmcod2F0KXtyZXR1cm4gaXNCdWlsdGluKHdhdCwiU3RyaW5nIil9ZnVuY3Rpb24gaXNQYXJhbWV0ZXJpemVkU3RyaW5nKHdhdCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB3YXQmJm51bGwhPT13YXQmJiJfX3NlbnRyeV90ZW1wbGF0ZV9zdHJpbmdfXyJpbiB3YXQmJiJfX3NlbnRyeV90ZW1wbGF0ZV92YWx1ZXNfXyJpbiB3YXR9ZnVuY3Rpb24gaXNQcmltaXRpdmUod2F0KXtyZXR1cm4gbnVsbD09PXdhdHx8aXNQYXJhbWV0ZXJpemVkU3RyaW5nKHdhdCl8fCJvYmplY3QiIT10eXBlb2Ygd2F0JiYiZnVuY3Rpb24iIT10eXBlb2Ygd2F0fWZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qod2F0KXtyZXR1cm4gaXNCdWlsdGluKHdhdCwiT2JqZWN0Iil9ZnVuY3Rpb24gaXNFdmVudCh3YXQpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgRXZlbnQmJmlzSW5zdGFuY2VPZih3YXQsRXZlbnQpfWZ1bmN0aW9uIGlzRWxlbWVudCh3YXQpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgRWxlbWVudCYmaXNJbnN0YW5jZU9mKHdhdCxFbGVtZW50KX1mdW5jdGlvbiBpc1JlZ0V4cCh3YXQpe3JldHVybiBpc0J1aWx0aW4od2F0LCJSZWdFeHAiKX1mdW5jdGlvbiBpc1RoZW5hYmxlKHdhdCl7cmV0dXJuIEJvb2xlYW4od2F0Py50aGVuJiYiZnVuY3Rpb24iPT10eXBlb2Ygd2F0LnRoZW4pfWZ1bmN0aW9uIGlzU3ludGhldGljRXZlbnQod2F0KXtyZXR1cm4gaXNQbGFpbk9iamVjdCh3YXQpJiYibmF0aXZlRXZlbnQiaW4gd2F0JiYicHJldmVudERlZmF1bHQiaW4gd2F0JiYic3RvcFByb3BhZ2F0aW9uImluIHdhdH1mdW5jdGlvbiBpc0luc3RhbmNlT2Yod2F0LGJhc2Upe3RyeXtyZXR1cm4gd2F0IGluc3RhbmNlb2YgYmFzZX1jYXRjaHtyZXR1cm4hMX19ZnVuY3Rpb24gaXNWdWVWaWV3TW9kZWwod2F0KXtyZXR1cm4hISgib2JqZWN0Ij09dHlwZW9mIHdhdCYmbnVsbCE9PXdhdCYmKHdhdC5fX2lzVnVlfHx3YXQuX2lzVnVlfHx3YXQuX192X2lzVk5vZGUpKX1mdW5jdGlvbiBpc1JlcXVlc3QocmVxdWVzdCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBSZXF1ZXN0JiZpc0luc3RhbmNlT2YocmVxdWVzdCxSZXF1ZXN0KX19LDM2MTM6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1Q6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gbWVyZ2UoaW5pdGlhbE9iaixtZXJnZU9iaixsZXZlbHM9Mil7aWYoIW1lcmdlT2JqfHwib2JqZWN0IiE9dHlwZW9mIG1lcmdlT2JqfHxsZXZlbHM8PTApcmV0dXJuIG1lcmdlT2JqO2lmKGluaXRpYWxPYmomJjA9PT1PYmplY3Qua2V5cyhtZXJnZU9iaikubGVuZ3RoKXJldHVybiBpbml0aWFsT2JqO2xldCBvdXRwdXQ9ey4uLmluaXRpYWxPYmp9O2ZvcihsZXQga2V5IGluIG1lcmdlT2JqKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtZXJnZU9iaixrZXkpJiYob3V0cHV0W2tleV09bWVyZ2Uob3V0cHV0W2tleV0sbWVyZ2VPYmpba2V5XSxsZXZlbHMtMSkpO3JldHVybiBvdXRwdXR9fX0pfSwzNDE1NjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtsZXQgZW1wdHlVdWlkO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtETTpmdW5jdGlvbigpe3JldHVybiB1dWlkNH0sRGI6ZnVuY3Rpb24oKXtyZXR1cm4gYWRkRXhjZXB0aW9uVHlwZVZhbHVlfSxFRzpmdW5jdGlvbigpe3JldHVybiBhZGRFeGNlcHRpb25NZWNoYW5pc219LFlPOmZ1bmN0aW9uKCl7cmV0dXJuIGNoZWNrT3JTZXRBbHJlYWR5Q2F1Z2h0fSxqSDpmdW5jdGlvbigpe3JldHVybiBnZXRFdmVudERlc2NyaXB0aW9ufX0pO3ZhciBfb2JqZWN0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg5MzgyMCksX3dvcmxkd2lkZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNTE1OTcpO2Z1bmN0aW9uIHV1aWQ0KGNyeXB0bz1mdW5jdGlvbigpe2xldCBnYmw9X3dvcmxkd2lkZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLm47cmV0dXJuIGdibC5jcnlwdG98fGdibC5tc0NyeXB0b30oKSl7dHJ5e2lmKGNyeXB0bz8ucmFuZG9tVVVJRClyZXR1cm4gY3J5cHRvLnJhbmRvbVVVSUQoKS5yZXBsYWNlKC8tL2csIiIpfWNhdGNoe31yZXR1cm4gZW1wdHlVdWlkfHwoZW1wdHlVdWlkPSIxMDAwMDAwMDEwMDA0MDAwODAwMDEwMDAwMDAwMDAwMCIpLGVtcHR5VXVpZC5yZXBsYWNlKC9bMDE4XS9nLGM9PihjXigxNSYxNipNYXRoLnJhbmRvbSgpKT4+Yy80KS50b1N0cmluZygxNikpfWZ1bmN0aW9uIGdldEZpcnN0RXhjZXB0aW9uKGV2ZW50KXtyZXR1cm4gZXZlbnQuZXhjZXB0aW9uPy52YWx1ZXM/LlswXX1mdW5jdGlvbiBnZXRFdmVudERlc2NyaXB0aW9uKGV2ZW50KXtsZXR7bWVzc2FnZSxldmVudF9pZDpldmVudElkfT1ldmVudDtpZihtZXNzYWdlKXJldHVybiBtZXNzYWdlO2xldCBmaXJzdEV4Y2VwdGlvbj1nZXRGaXJzdEV4Y2VwdGlvbihldmVudCk7cmV0dXJuIGZpcnN0RXhjZXB0aW9uP2ZpcnN0RXhjZXB0aW9uLnR5cGUmJmZpcnN0RXhjZXB0aW9uLnZhbHVlP2Ake2ZpcnN0RXhjZXB0aW9uLnR5cGV9OiAke2ZpcnN0RXhjZXB0aW9uLnZhbHVlfWA6Zmlyc3RFeGNlcHRpb24udHlwZXx8Zmlyc3RFeGNlcHRpb24udmFsdWV8fGV2ZW50SWR8fCI8dW5rbm93bj4iOmV2ZW50SWR8fCI8dW5rbm93bj4ifWZ1bmN0aW9uIGFkZEV4Y2VwdGlvblR5cGVWYWx1ZShldmVudCx2YWx1ZSx0eXBlKXtsZXQgZXhjZXB0aW9uPWV2ZW50LmV4Y2VwdGlvbj1ldmVudC5leGNlcHRpb258fHt9LHZhbHVlcz1leGNlcHRpb24udmFsdWVzPWV4Y2VwdGlvbi52YWx1ZXN8fFtdLGZpcnN0RXhjZXB0aW9uPXZhbHVlc1swXT12YWx1ZXNbMF18fHt9O2ZpcnN0RXhjZXB0aW9uLnZhbHVlfHwoZmlyc3RFeGNlcHRpb24udmFsdWU9dmFsdWV8fCIiKSxmaXJzdEV4Y2VwdGlvbi50eXBlfHwoZmlyc3RFeGNlcHRpb24udHlwZT10eXBlfHwiRXJyb3IiKX1mdW5jdGlvbiBhZGRFeGNlcHRpb25NZWNoYW5pc20oZXZlbnQsbmV3TWVjaGFuaXNtKXtsZXQgZmlyc3RFeGNlcHRpb249Z2V0Rmlyc3RFeGNlcHRpb24oZXZlbnQpO2lmKCFmaXJzdEV4Y2VwdGlvbilyZXR1cm47bGV0IGN1cnJlbnRNZWNoYW5pc209Zmlyc3RFeGNlcHRpb24ubWVjaGFuaXNtO2lmKGZpcnN0RXhjZXB0aW9uLm1lY2hhbmlzbT17dHlwZToiZ2VuZXJpYyIsaGFuZGxlZDohMCwuLi5jdXJyZW50TWVjaGFuaXNtLC4uLm5ld01lY2hhbmlzbX0sbmV3TWVjaGFuaXNtJiYiZGF0YSJpbiBuZXdNZWNoYW5pc20pe2xldCBtZXJnZWREYXRhPXsuLi5jdXJyZW50TWVjaGFuaXNtPy5kYXRhLC4uLm5ld01lY2hhbmlzbS5kYXRhfTtmaXJzdEV4Y2VwdGlvbi5tZWNoYW5pc20uZGF0YT1tZXJnZWREYXRhfX1mdW5jdGlvbiBjaGVja09yU2V0QWxyZWFkeUNhdWdodChleGNlcHRpb24pe2lmKGZ1bmN0aW9uKGV4Y2VwdGlvbil7dHJ5e3JldHVybiBleGNlcHRpb24uX19zZW50cnlfY2FwdHVyZWRfX31jYXRjaHt9fShleGNlcHRpb24pKXJldHVybiEwO3RyeXsoMCxfb2JqZWN0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ueHApKGV4Y2VwdGlvbiwiX19zZW50cnlfY2FwdHVyZWRfXyIsITApfWNhdGNoe31yZXR1cm4hMX19LDc3NTkzOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtGdjpmdW5jdGlvbigpe3JldHVybiBub3JtYWxpemV9LFF5OmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIG5vcm1hbGl6ZVRvU2l6ZShvYmplY3QsZGVwdGg9MyxtYXhTaXplPTEwMjQwMCl7bGV0IG5vcm1hbGl6ZWQ9bm9ybWFsaXplKG9iamVjdCxkZXB0aCk7cmV0dXJufi1lbmNvZGVVUkkoSlNPTi5zdHJpbmdpZnkobm9ybWFsaXplZCkpLnNwbGl0KC8lLi58Li8pLmxlbmd0aD5tYXhTaXplP25vcm1hbGl6ZVRvU2l6ZShvYmplY3QsZGVwdGgtMSxtYXhTaXplKTpub3JtYWxpemVkfX19KTt2YXIgX2lzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg0MTc0NSksX29iamVjdF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oOTM4MjApLF9zdGFja3RyYWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXyg5OTYwMyk7ZnVuY3Rpb24gbm9ybWFsaXplKGlucHV0LGRlcHRoPTEwMCxtYXhQcm9wZXJ0aWVzPUluZmluaXR5KXt0cnl7cmV0dXJuIGZ1bmN0aW9uIHZpc2l0KGtleSx2YWx1ZSxkZXB0aD1JbmZpbml0eSxtYXhQcm9wZXJ0aWVzPUluZmluaXR5LG1lbW89ZnVuY3Rpb24oKXtsZXQgaW5uZXI9bmV3IFdlYWtTZXQ7cmV0dXJuW2Z1bmN0aW9uKG9iail7cmV0dXJuISFpbm5lci5oYXMob2JqKXx8KGlubmVyLmFkZChvYmopLCExKX0sZnVuY3Rpb24ob2JqKXtpbm5lci5kZWxldGUob2JqKX1dfSgpKXtsZXRbbWVtb2l6ZSx1bm1lbW9pemVdPW1lbW87aWYobnVsbD09dmFsdWV8fFsiYm9vbGVhbiIsInN0cmluZyJdLmluY2x1ZGVzKHR5cGVvZiB2YWx1ZSl8fCJudW1iZXIiPT10eXBlb2YgdmFsdWUmJk51bWJlci5pc0Zpbml0ZSh2YWx1ZSkpcmV0dXJuIHZhbHVlO2xldCBzdHJpbmdpZmllZD1mdW5jdGlvbihrZXksdmFsdWUpe3RyeXtpZigiZG9tYWluIj09PWtleSYmdmFsdWUmJiJvYmplY3QiPT10eXBlb2YgdmFsdWUmJnZhbHVlLl9ldmVudHMpcmV0dXJuIltEb21haW5dIjtpZigiZG9tYWluRW1pdHRlciI9PT1rZXkpcmV0dXJuIltEb21haW5FbWl0dGVyXSI7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWwmJnZhbHVlPT09Z2xvYmFsKXJldHVybiJbR2xvYmFsXSI7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJnZhbHVlPT09d2luZG93KXJldHVybiJbV2luZG93XSI7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCYmdmFsdWU9PT1kb2N1bWVudClyZXR1cm4iW0RvY3VtZW50XSI7aWYoKDAsX2lzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ueTEpKHZhbHVlKSlyZXR1cm4oMCxfc3RhY2t0cmFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkpoKSh2YWx1ZSk7aWYoKDAsX2lzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uQ3kpKHZhbHVlKSlyZXR1cm4iW1N5bnRoZXRpY0V2ZW50XSI7aWYoIm51bWJlciI9PXR5cGVvZiB2YWx1ZSYmIU51bWJlci5pc0Zpbml0ZSh2YWx1ZSkpcmV0dXJuYFske3ZhbHVlfV1gO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB2YWx1ZSlyZXR1cm5gW0Z1bmN0aW9uOiAkeygwLF9zdGFja3RyYWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uJFApKHZhbHVlKX1dYDtpZigic3ltYm9sIj09dHlwZW9mIHZhbHVlKXJldHVybmBbJHtTdHJpbmcodmFsdWUpfV1gO2lmKCJiaWdpbnQiPT10eXBlb2YgdmFsdWUpcmV0dXJuYFtCaWdJbnQ6ICR7U3RyaW5nKHZhbHVlKX1dYDtsZXQgb2JqTmFtZT1mdW5jdGlvbih2YWx1ZSl7bGV0IHByb3RvdHlwZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YodmFsdWUpO3JldHVybiBwcm90b3R5cGU/LmNvbnN0cnVjdG9yP3Byb3RvdHlwZS5jb25zdHJ1Y3Rvci5uYW1lOiJudWxsIHByb3RvdHlwZSJ9KHZhbHVlKTtpZigvXkhUTUwoXHcqKUVsZW1lbnQkLy50ZXN0KG9iak5hbWUpKXJldHVybmBbSFRNTEVsZW1lbnQ6ICR7b2JqTmFtZX1dYDtyZXR1cm5gW29iamVjdCAke29iak5hbWV9XWB9Y2F0Y2goZXJyKXtyZXR1cm5gKipub24tc2VyaWFsaXphYmxlKiogKCR7ZXJyfSlgfX0oa2V5LHZhbHVlKTtpZighc3RyaW5naWZpZWQuc3RhcnRzV2l0aCgiW29iamVjdCAiKSlyZXR1cm4gc3RyaW5naWZpZWQ7aWYodmFsdWUuX19zZW50cnlfc2tpcF9ub3JtYWxpemF0aW9uX18pcmV0dXJuIHZhbHVlO2xldCByZW1haW5pbmdEZXB0aD0ibnVtYmVyIj09dHlwZW9mIHZhbHVlLl9fc2VudHJ5X292ZXJyaWRlX25vcm1hbGl6YXRpb25fZGVwdGhfXz92YWx1ZS5fX3NlbnRyeV9vdmVycmlkZV9ub3JtYWxpemF0aW9uX2RlcHRoX186ZGVwdGg7aWYoMD09PXJlbWFpbmluZ0RlcHRoKXJldHVybiBzdHJpbmdpZmllZC5yZXBsYWNlKCJvYmplY3QgIiwiIik7aWYobWVtb2l6ZSh2YWx1ZSkpcmV0dXJuIltDaXJjdWxhciB+XSI7aWYodmFsdWUmJiJmdW5jdGlvbiI9PXR5cGVvZiB2YWx1ZS50b0pTT04pdHJ5e2xldCBqc29uVmFsdWU9dmFsdWUudG9KU09OKCk7cmV0dXJuIHZpc2l0KCIiLGpzb25WYWx1ZSxyZW1haW5pbmdEZXB0aC0xLG1heFByb3BlcnRpZXMsbWVtbyl9Y2F0Y2h7fWxldCBub3JtYWxpemVkPUFycmF5LmlzQXJyYXkodmFsdWUpP1tdOnt9LG51bUFkZGVkPTAsdmlzaXRhYmxlPSgwLF9vYmplY3RfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5TaCkodmFsdWUpO2ZvcihsZXQgdmlzaXRLZXkgaW4gdmlzaXRhYmxlKXtpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZpc2l0YWJsZSx2aXNpdEtleSkpY29udGludWU7aWYobnVtQWRkZWQ+PW1heFByb3BlcnRpZXMpe25vcm1hbGl6ZWRbdmlzaXRLZXldPSJbTWF4UHJvcGVydGllcyB+XSI7YnJlYWt9bGV0IHZpc2l0VmFsdWU9dmlzaXRhYmxlW3Zpc2l0S2V5XTtub3JtYWxpemVkW3Zpc2l0S2V5XT12aXNpdCh2aXNpdEtleSx2aXNpdFZhbHVlLHJlbWFpbmluZ0RlcHRoLTEsbWF4UHJvcGVydGllcyxtZW1vKSxudW1BZGRlZCsrfXJldHVybiB1bm1lbW9pemUodmFsdWUpLG5vcm1hbGl6ZWR9KCIiLGlucHV0LGRlcHRoLG1heFByb3BlcnRpZXMpfWNhdGNoKGVycil7cmV0dXJue0VSUk9SOmAqKm5vbi1zZXJpYWxpemFibGUqKiAoJHtlcnJ9KWB9fX19LDkzODIwOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHskUTpmdW5jdGlvbigpe3JldHVybiBtYXJrRnVuY3Rpb25XcmFwcGVkfSxISzpmdW5jdGlvbigpe3JldHVybiBnZXRPcmlnaW5hbEZ1bmN0aW9ufSxTaDpmdW5jdGlvbigpe3JldHVybiBjb252ZXJ0VG9QbGFpbk9iamVjdH0saGw6ZnVuY3Rpb24oKXtyZXR1cm4gZmlsbH0seHA6ZnVuY3Rpb24oKXtyZXR1cm4gYWRkTm9uRW51bWVyYWJsZVByb3BlcnR5fSx6ZjpmdW5jdGlvbigpe3JldHVybiBleHRyYWN0RXhjZXB0aW9uS2V5c0Zvck1lc3NhZ2V9fSk7dmFyIF9kZWJ1Z19idWlsZF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oOTQyMjMpLF9icm93c2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX189X193ZWJwYWNrX3JlcXVpcmVfXygzODE0MyksX2RlYnVnX2xvZ2dlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oNTgyNCksX2lzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXyg0MTc0NSk7ZnVuY3Rpb24gZmlsbChzb3VyY2UsbmFtZSxyZXBsYWNlbWVudEZhY3Rvcnkpe2lmKCEobmFtZSBpbiBzb3VyY2UpKXJldHVybjtsZXQgb3JpZ2luYWw9c291cmNlW25hbWVdO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBvcmlnaW5hbClyZXR1cm47bGV0IHdyYXBwZWQ9cmVwbGFjZW1lbnRGYWN0b3J5KG9yaWdpbmFsKTsiZnVuY3Rpb24iPT10eXBlb2Ygd3JhcHBlZCYmbWFya0Z1bmN0aW9uV3JhcHBlZCh3cmFwcGVkLG9yaWdpbmFsKTt0cnl7c291cmNlW25hbWVdPXdyYXBwZWR9Y2F0Y2h7X2RlYnVnX2J1aWxkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWCYmX2RlYnVnX2xvZ2dlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmZGLmxvZyhgRmFpbGVkIHRvIHJlcGxhY2UgbWV0aG9kICIke25hbWV9IiBpbiBvYmplY3RgLHNvdXJjZSl9fWZ1bmN0aW9uIGFkZE5vbkVudW1lcmFibGVQcm9wZXJ0eShvYmosbmFtZSx2YWx1ZSl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosbmFtZSx7dmFsdWU6dmFsdWUsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSl9Y2F0Y2h7X2RlYnVnX2J1aWxkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWCYmX2RlYnVnX2xvZ2dlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmZGLmxvZyhgRmFpbGVkIHRvIGFkZCBub24tZW51bWVyYWJsZSBwcm9wZXJ0eSAiJHtuYW1lfSIgdG8gb2JqZWN0YCxvYmopfX1mdW5jdGlvbiBtYXJrRnVuY3Rpb25XcmFwcGVkKHdyYXBwZWQsb3JpZ2luYWwpe3RyeXtsZXQgcHJvdG89b3JpZ2luYWwucHJvdG90eXBlfHx7fTt3cmFwcGVkLnByb3RvdHlwZT1vcmlnaW5hbC5wcm90b3R5cGU9cHJvdG8sYWRkTm9uRW51bWVyYWJsZVByb3BlcnR5KHdyYXBwZWQsIl9fc2VudHJ5X29yaWdpbmFsX18iLG9yaWdpbmFsKX1jYXRjaHt9fWZ1bmN0aW9uIGdldE9yaWdpbmFsRnVuY3Rpb24oZnVuYyl7cmV0dXJuIGZ1bmMuX19zZW50cnlfb3JpZ2luYWxfX31mdW5jdGlvbiBjb252ZXJ0VG9QbGFpbk9iamVjdCh2YWx1ZSl7aWYoKDAsX2lzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uVlopKHZhbHVlKSlyZXR1cm57bWVzc2FnZTp2YWx1ZS5tZXNzYWdlLG5hbWU6dmFsdWUubmFtZSxzdGFjazp2YWx1ZS5zdGFjaywuLi5nZXRPd25Qcm9wZXJ0aWVzKHZhbHVlKX07aWYoISgwLF9pc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmNPKSh2YWx1ZSkpcmV0dXJuIHZhbHVlO3tsZXQgbmV3T2JqPXt0eXBlOnZhbHVlLnR5cGUsdGFyZ2V0OnNlcmlhbGl6ZUV2ZW50VGFyZ2V0KHZhbHVlLnRhcmdldCksY3VycmVudFRhcmdldDpzZXJpYWxpemVFdmVudFRhcmdldCh2YWx1ZS5jdXJyZW50VGFyZ2V0KSwuLi5nZXRPd25Qcm9wZXJ0aWVzKHZhbHVlKX07cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBDdXN0b21FdmVudCYmKDAsX2lzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uVjkpKHZhbHVlLEN1c3RvbUV2ZW50KSYmKG5ld09iai5kZXRhaWw9dmFsdWUuZGV0YWlsKSxuZXdPYmp9fWZ1bmN0aW9uIHNlcmlhbGl6ZUV2ZW50VGFyZ2V0KHRhcmdldCl7dHJ5e3JldHVybigwLF9pc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmtLKSh0YXJnZXQpPygwLF9icm93c2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uUnQpKHRhcmdldCk6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRhcmdldCl9Y2F0Y2h7cmV0dXJuIjx1bmtub3duPiJ9fWZ1bmN0aW9uIGdldE93blByb3BlcnRpZXMob2JqKXtpZigib2JqZWN0IiE9dHlwZW9mIG9ianx8bnVsbD09PW9iailyZXR1cm57fTt7bGV0IGV4dHJhY3RlZFByb3BzPXt9O2ZvcihsZXQgcHJvcGVydHkgaW4gb2JqKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmoscHJvcGVydHkpJiYoZXh0cmFjdGVkUHJvcHNbcHJvcGVydHldPW9ialtwcm9wZXJ0eV0pO3JldHVybiBleHRyYWN0ZWRQcm9wc319ZnVuY3Rpb24gZXh0cmFjdEV4Y2VwdGlvbktleXNGb3JNZXNzYWdlKGV4Y2VwdGlvbil7bGV0IGtleXM9T2JqZWN0LmtleXMoY29udmVydFRvUGxhaW5PYmplY3QoZXhjZXB0aW9uKSk7cmV0dXJuIGtleXMuc29ydCgpLGtleXNbMF0/a2V5cy5qb2luKCIsICIpOiJbb2JqZWN0IGhhcyBubyBrZXlzXSJ9fSw3OTc2OTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBwYXJzZVNhbXBsZVJhdGUoc2FtcGxlUmF0ZSl7aWYoImJvb2xlYW4iPT10eXBlb2Ygc2FtcGxlUmF0ZSlyZXR1cm4gTnVtYmVyKHNhbXBsZVJhdGUpO2xldCByYXRlPSJzdHJpbmciPT10eXBlb2Ygc2FtcGxlUmF0ZT9wYXJzZUZsb2F0KHNhbXBsZVJhdGUpOnNhbXBsZVJhdGU7aWYoISgibnVtYmVyIiE9dHlwZW9mIHJhdGV8fGlzTmFOKHJhdGUpKSYmIShyYXRlPDApJiYhKHJhdGU+MSkpcmV0dXJuIHJhdGV9X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se286ZnVuY3Rpb24oKXtyZXR1cm4gcGFyc2VTYW1wbGVSYXRlfX0pfSw1MzEyOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2xldCBwYXJzZWRTdGFja1Jlc3VsdHMsbGFzdFNlbnRyeUtleXNDb3VudCxsYXN0TmF0aXZlS2V5c0NvdW50LGNhY2hlZEZpbGVuYW1lRGVidWdJZHM7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1UwOmZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlRXZlbnRIaW50T3JDYXB0dXJlQ29udGV4dH0sUjpmdW5jdGlvbigpe3JldHVybiBwcmVwYXJlRXZlbnR9fSk7dmFyIGNvbnN0YW50cz1fX3dlYnBhY2tfcmVxdWlyZV9fKDczMjQzKSxjdXJyZW50U2NvcGVzPV9fd2VicGFja19yZXF1aXJlX18oNzMwNzYpLGRlYnVnX2J1aWxkPV9fd2VicGFja19yZXF1aXJlX18oOTQyMjMpLGRlYnVnX2xvZ2dlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MjQpLGlzPV9fd2VicGFja19yZXF1aXJlX18oNDE3NDUpLHN5bmNwcm9taXNlPV9fd2VicGFja19yZXF1aXJlX18oODAxNTcpLGVzbV9zY29wZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDQzOTI3KSxkeW5hbWljU2FtcGxpbmdDb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oNzIxMjMpLG1lcmdlPV9fd2VicGFja19yZXF1aXJlX18oMzYxMyksc3BhblV0aWxzPV9fd2VicGFja19yZXF1aXJlX18oODE1ODUpO2Z1bmN0aW9uIG1lcmdlU2NvcGVEYXRhKGRhdGEsbWVyZ2VEYXRhKXtsZXR7ZXh0cmEsdGFncyxhdHRyaWJ1dGVzLHVzZXIsY29udGV4dHMsbGV2ZWwsc2RrUHJvY2Vzc2luZ01ldGFkYXRhLGJyZWFkY3J1bWJzLGZpbmdlcnByaW50LGV2ZW50UHJvY2Vzc29ycyxhdHRhY2htZW50cyxwcm9wYWdhdGlvbkNvbnRleHQsdHJhbnNhY3Rpb25OYW1lLHNwYW59PW1lcmdlRGF0YTttZXJnZUFuZE92ZXJ3cml0ZVNjb3BlRGF0YShkYXRhLCJleHRyYSIsZXh0cmEpLG1lcmdlQW5kT3ZlcndyaXRlU2NvcGVEYXRhKGRhdGEsInRhZ3MiLHRhZ3MpLG1lcmdlQW5kT3ZlcndyaXRlU2NvcGVEYXRhKGRhdGEsImF0dHJpYnV0ZXMiLGF0dHJpYnV0ZXMpLG1lcmdlQW5kT3ZlcndyaXRlU2NvcGVEYXRhKGRhdGEsInVzZXIiLHVzZXIpLG1lcmdlQW5kT3ZlcndyaXRlU2NvcGVEYXRhKGRhdGEsImNvbnRleHRzIixjb250ZXh0cyksZGF0YS5zZGtQcm9jZXNzaW5nTWV0YWRhdGE9KDAsbWVyZ2UuVCkoZGF0YS5zZGtQcm9jZXNzaW5nTWV0YWRhdGEsc2RrUHJvY2Vzc2luZ01ldGFkYXRhLDIpLGxldmVsJiYoZGF0YS5sZXZlbD1sZXZlbCksdHJhbnNhY3Rpb25OYW1lJiYoZGF0YS50cmFuc2FjdGlvbk5hbWU9dHJhbnNhY3Rpb25OYW1lKSxzcGFuJiYoZGF0YS5zcGFuPXNwYW4pLGJyZWFkY3J1bWJzLmxlbmd0aCYmKGRhdGEuYnJlYWRjcnVtYnM9Wy4uLmRhdGEuYnJlYWRjcnVtYnMsLi4uYnJlYWRjcnVtYnNdKSxmaW5nZXJwcmludC5sZW5ndGgmJihkYXRhLmZpbmdlcnByaW50PVsuLi5kYXRhLmZpbmdlcnByaW50LC4uLmZpbmdlcnByaW50XSksZXZlbnRQcm9jZXNzb3JzLmxlbmd0aCYmKGRhdGEuZXZlbnRQcm9jZXNzb3JzPVsuLi5kYXRhLmV2ZW50UHJvY2Vzc29ycywuLi5ldmVudFByb2Nlc3NvcnNdKSxhdHRhY2htZW50cy5sZW5ndGgmJihkYXRhLmF0dGFjaG1lbnRzPVsuLi5kYXRhLmF0dGFjaG1lbnRzLC4uLmF0dGFjaG1lbnRzXSksZGF0YS5wcm9wYWdhdGlvbkNvbnRleHQ9ey4uLmRhdGEucHJvcGFnYXRpb25Db250ZXh0LC4uLnByb3BhZ2F0aW9uQ29udGV4dH19ZnVuY3Rpb24gbWVyZ2VBbmRPdmVyd3JpdGVTY29wZURhdGEoZGF0YSxwcm9wLG1lcmdlVmFsKXtkYXRhW3Byb3BdPSgwLG1lcmdlLlQpKGRhdGFbcHJvcF0sbWVyZ2VWYWwsMSl9dmFyIHdvcmxkd2lkZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDUxNTk3KSxtaXNjPV9fd2VicGFja19yZXF1aXJlX18oMzQxNTYpLG5vcm1hbGl6ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDc3NTkzKSxzdHJpbmc9X193ZWJwYWNrX3JlcXVpcmVfXyg1NzM2MCksdGltZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDkwNzcyKTtmdW5jdGlvbiBwcmVwYXJlRXZlbnQob3B0aW9ucyxldmVudCxoaW50LHNjb3BlLGNsaWVudCxpc29sYXRpb25TY29wZSl7dmFyIGV2ZW50MTtsZXR7bm9ybWFsaXplRGVwdGg9Myxub3JtYWxpemVNYXhCcmVhZHRoPTFlM309b3B0aW9ucyxwcmVwYXJlZD17Li4uZXZlbnQsZXZlbnRfaWQ6ZXZlbnQuZXZlbnRfaWR8fGhpbnQuZXZlbnRfaWR8fCgwLG1pc2MuRE0pKCksdGltZXN0YW1wOmV2ZW50LnRpbWVzdGFtcHx8KDAsdGltZS55VykoKX0saW50ZWdyYXRpb25zPWhpbnQuaW50ZWdyYXRpb25zfHxvcHRpb25zLmludGVncmF0aW9ucy5tYXAoaT0+aS5uYW1lKTsoZnVuY3Rpb24oZXZlbnQsb3B0aW9ucyl7bGV0e2Vudmlyb25tZW50LHJlbGVhc2UsZGlzdCxtYXhWYWx1ZUxlbmd0aH09b3B0aW9ucztldmVudC5lbnZpcm9ubWVudD1ldmVudC5lbnZpcm9ubWVudHx8ZW52aXJvbm1lbnR8fGNvbnN0YW50cy5KLCFldmVudC5yZWxlYXNlJiZyZWxlYXNlJiYoZXZlbnQucmVsZWFzZT1yZWxlYXNlKSwhZXZlbnQuZGlzdCYmZGlzdCYmKGV2ZW50LmRpc3Q9ZGlzdCk7bGV0IHJlcXVlc3Q9ZXZlbnQucmVxdWVzdDtyZXF1ZXN0Py51cmwmJm1heFZhbHVlTGVuZ3RoJiYocmVxdWVzdC51cmw9KDAsc3RyaW5nLiRHKShyZXF1ZXN0LnVybCxtYXhWYWx1ZUxlbmd0aCkpLG1heFZhbHVlTGVuZ3RoJiZldmVudC5leGNlcHRpb24/LnZhbHVlcz8uZm9yRWFjaChleGNlcHRpb249PntleGNlcHRpb24udmFsdWUmJihleGNlcHRpb24udmFsdWU9KDAsc3RyaW5nLiRHKShleGNlcHRpb24udmFsdWUsbWF4VmFsdWVMZW5ndGgpKX0pfSkocHJlcGFyZWQsb3B0aW9ucyksZXZlbnQxPXByZXBhcmVkLGludGVncmF0aW9ucy5sZW5ndGg+MCYmKGV2ZW50MS5zZGs9ZXZlbnQxLnNka3x8e30sZXZlbnQxLnNkay5pbnRlZ3JhdGlvbnM9Wy4uLmV2ZW50MS5zZGsuaW50ZWdyYXRpb25zfHxbXSwuLi5pbnRlZ3JhdGlvbnNdKSxjbGllbnQmJmNsaWVudC5lbWl0KCJhcHBseUZyYW1lTWV0YWRhdGEiLGV2ZW50KSx2b2lkIDA9PT1ldmVudC50eXBlJiZmdW5jdGlvbihldmVudCxzdGFja1BhcnNlcil7bGV0IGZpbGVuYW1lRGVidWdJZE1hcD1mdW5jdGlvbihzdGFja1BhcnNlcil7bGV0IHNlbnRyeURlYnVnSWRNYXA9d29ybGR3aWRlLm4uX3NlbnRyeURlYnVnSWRzLG5hdGl2ZURlYnVnSWRNYXA9d29ybGR3aWRlLm4uX2RlYnVnSWRzO2lmKCFzZW50cnlEZWJ1Z0lkTWFwJiYhbmF0aXZlRGVidWdJZE1hcClyZXR1cm57fTtsZXQgc2VudHJ5RGVidWdJZEtleXM9c2VudHJ5RGVidWdJZE1hcD9PYmplY3Qua2V5cyhzZW50cnlEZWJ1Z0lkTWFwKTpbXSxuYXRpdmVEZWJ1Z0lkS2V5cz1uYXRpdmVEZWJ1Z0lkTWFwP09iamVjdC5rZXlzKG5hdGl2ZURlYnVnSWRNYXApOltdO2lmKGNhY2hlZEZpbGVuYW1lRGVidWdJZHMmJnNlbnRyeURlYnVnSWRLZXlzLmxlbmd0aD09PWxhc3RTZW50cnlLZXlzQ291bnQmJm5hdGl2ZURlYnVnSWRLZXlzLmxlbmd0aD09PWxhc3ROYXRpdmVLZXlzQ291bnQpcmV0dXJuIGNhY2hlZEZpbGVuYW1lRGVidWdJZHM7bGFzdFNlbnRyeUtleXNDb3VudD1zZW50cnlEZWJ1Z0lkS2V5cy5sZW5ndGgsbGFzdE5hdGl2ZUtleXNDb3VudD1uYXRpdmVEZWJ1Z0lkS2V5cy5sZW5ndGgsY2FjaGVkRmlsZW5hbWVEZWJ1Z0lkcz17fSxwYXJzZWRTdGFja1Jlc3VsdHN8fChwYXJzZWRTdGFja1Jlc3VsdHM9e30pO2xldCBwcm9jZXNzRGVidWdJZHM9KGRlYnVnSWRLZXlzLGRlYnVnSWRNYXApPT57Zm9yKGxldCBrZXkgb2YgZGVidWdJZEtleXMpe2xldCBkZWJ1Z0lkPWRlYnVnSWRNYXBba2V5XSxyZXN1bHQ9cGFyc2VkU3RhY2tSZXN1bHRzPy5ba2V5XTtpZihyZXN1bHQmJmNhY2hlZEZpbGVuYW1lRGVidWdJZHMmJmRlYnVnSWQpY2FjaGVkRmlsZW5hbWVEZWJ1Z0lkc1tyZXN1bHRbMF1dPWRlYnVnSWQscGFyc2VkU3RhY2tSZXN1bHRzJiYocGFyc2VkU3RhY2tSZXN1bHRzW2tleV09W3Jlc3VsdFswXSxkZWJ1Z0lkXSk7ZWxzZSBpZihkZWJ1Z0lkKXtsZXQgcGFyc2VkU3RhY2s9c3RhY2tQYXJzZXIoa2V5KTtmb3IobGV0IGk9cGFyc2VkU3RhY2subGVuZ3RoLTE7aT49MDtpLS0pe2xldCBzdGFja0ZyYW1lPXBhcnNlZFN0YWNrW2ldLGZpbGVuYW1lPXN0YWNrRnJhbWU/LmZpbGVuYW1lO2lmKGZpbGVuYW1lJiZjYWNoZWRGaWxlbmFtZURlYnVnSWRzJiZwYXJzZWRTdGFja1Jlc3VsdHMpe2NhY2hlZEZpbGVuYW1lRGVidWdJZHNbZmlsZW5hbWVdPWRlYnVnSWQscGFyc2VkU3RhY2tSZXN1bHRzW2tleV09W2ZpbGVuYW1lLGRlYnVnSWRdO2JyZWFrfX19fX07cmV0dXJuIHNlbnRyeURlYnVnSWRNYXAmJnByb2Nlc3NEZWJ1Z0lkcyhzZW50cnlEZWJ1Z0lkS2V5cyxzZW50cnlEZWJ1Z0lkTWFwKSxuYXRpdmVEZWJ1Z0lkTWFwJiZwcm9jZXNzRGVidWdJZHMobmF0aXZlRGVidWdJZEtleXMsbmF0aXZlRGVidWdJZE1hcCksY2FjaGVkRmlsZW5hbWVEZWJ1Z0lkc30oc3RhY2tQYXJzZXIpO2V2ZW50LmV4Y2VwdGlvbj8udmFsdWVzPy5mb3JFYWNoKGV4Y2VwdGlvbj0+e2V4Y2VwdGlvbi5zdGFja3RyYWNlPy5mcmFtZXM/LmZvckVhY2goZnJhbWU9PntmcmFtZS5maWxlbmFtZSYmKGZyYW1lLmRlYnVnX2lkPWZpbGVuYW1lRGVidWdJZE1hcFtmcmFtZS5maWxlbmFtZV0pfSl9KX0ocHJlcGFyZWQsb3B0aW9ucy5zdGFja1BhcnNlcik7bGV0IGZpbmFsU2NvcGU9ZnVuY3Rpb24oc2NvcGUsY2FwdHVyZUNvbnRleHQpe2lmKCFjYXB0dXJlQ29udGV4dClyZXR1cm4gc2NvcGU7bGV0IGZpbmFsU2NvcGU9c2NvcGU/c2NvcGUuY2xvbmUoKTpuZXcgZXNtX3Njb3BlLnM7cmV0dXJuIGZpbmFsU2NvcGUudXBkYXRlKGNhcHR1cmVDb250ZXh0KSxmaW5hbFNjb3BlfShzY29wZSxoaW50LmNhcHR1cmVDb250ZXh0KTtoaW50Lm1lY2hhbmlzbSYmKDAsbWlzYy5FRykocHJlcGFyZWQsaGludC5tZWNoYW5pc20pO2xldCBjbGllbnRFdmVudFByb2Nlc3NvcnM9Y2xpZW50P2NsaWVudC5nZXRFdmVudFByb2Nlc3NvcnMoKTpbXSxkYXRhPSgwLGN1cnJlbnRTY29wZXMubFcpKCkuZ2V0U2NvcGVEYXRhKCk7aWYoaXNvbGF0aW9uU2NvcGUpe2xldCBpc29sYXRpb25EYXRhPWlzb2xhdGlvblNjb3BlLmdldFNjb3BlRGF0YSgpO21lcmdlU2NvcGVEYXRhKGRhdGEsaXNvbGF0aW9uRGF0YSl9aWYoZmluYWxTY29wZSl7bGV0IGZpbmFsU2NvcGVEYXRhPWZpbmFsU2NvcGUuZ2V0U2NvcGVEYXRhKCk7bWVyZ2VTY29wZURhdGEoZGF0YSxmaW5hbFNjb3BlRGF0YSl9bGV0IGF0dGFjaG1lbnRzPVsuLi5oaW50LmF0dGFjaG1lbnRzfHxbXSwuLi5kYXRhLmF0dGFjaG1lbnRzXTthdHRhY2htZW50cy5sZW5ndGgmJihoaW50LmF0dGFjaG1lbnRzPWF0dGFjaG1lbnRzKSxmdW5jdGlvbihldmVudCxkYXRhKXt2YXIgZXZlbnQxLGV2ZW50MjtsZXR7ZmluZ2VycHJpbnQsc3BhbixicmVhZGNydW1icyxzZGtQcm9jZXNzaW5nTWV0YWRhdGF9PWRhdGE7KGZ1bmN0aW9uKGV2ZW50LGRhdGEpe2xldHtleHRyYSx0YWdzLHVzZXIsY29udGV4dHMsbGV2ZWwsdHJhbnNhY3Rpb25OYW1lfT1kYXRhO09iamVjdC5rZXlzKGV4dHJhKS5sZW5ndGgmJihldmVudC5leHRyYT17Li4uZXh0cmEsLi4uZXZlbnQuZXh0cmF9KSxPYmplY3Qua2V5cyh0YWdzKS5sZW5ndGgmJihldmVudC50YWdzPXsuLi50YWdzLC4uLmV2ZW50LnRhZ3N9KSxPYmplY3Qua2V5cyh1c2VyKS5sZW5ndGgmJihldmVudC51c2VyPXsuLi51c2VyLC4uLmV2ZW50LnVzZXJ9KSxPYmplY3Qua2V5cyhjb250ZXh0cykubGVuZ3RoJiYoZXZlbnQuY29udGV4dHM9ey4uLmNvbnRleHRzLC4uLmV2ZW50LmNvbnRleHRzfSksbGV2ZWwmJihldmVudC5sZXZlbD1sZXZlbCksdHJhbnNhY3Rpb25OYW1lJiYidHJhbnNhY3Rpb24iIT09ZXZlbnQudHlwZSYmKGV2ZW50LnRyYW5zYWN0aW9uPXRyYW5zYWN0aW9uTmFtZSl9KShldmVudCxkYXRhKSxzcGFuJiZmdW5jdGlvbihldmVudCxzcGFuKXtldmVudC5jb250ZXh0cz17dHJhY2U6KDAsc3BhblV0aWxzLnd5KShzcGFuKSwuLi5ldmVudC5jb250ZXh0c30sZXZlbnQuc2RrUHJvY2Vzc2luZ01ldGFkYXRhPXtkeW5hbWljU2FtcGxpbmdDb250ZXh0OigwLGR5bmFtaWNTYW1wbGluZ0NvbnRleHQuakMpKHNwYW4pLC4uLmV2ZW50LnNka1Byb2Nlc3NpbmdNZXRhZGF0YX07bGV0IHJvb3RTcGFuPSgwLHNwYW5VdGlscy5HeCkoc3BhbiksdHJhbnNhY3Rpb25OYW1lPSgwLHNwYW5VdGlscy5YVSkocm9vdFNwYW4pLmRlc2NyaXB0aW9uO3RyYW5zYWN0aW9uTmFtZSYmIWV2ZW50LnRyYW5zYWN0aW9uJiYidHJhbnNhY3Rpb24iPT09ZXZlbnQudHlwZSYmKGV2ZW50LnRyYW5zYWN0aW9uPXRyYW5zYWN0aW9uTmFtZSl9KGV2ZW50LHNwYW4pLChldmVudDE9ZXZlbnQpLmZpbmdlcnByaW50PWV2ZW50MS5maW5nZXJwcmludD9BcnJheS5pc0FycmF5KGV2ZW50MS5maW5nZXJwcmludCk/ZXZlbnQxLmZpbmdlcnByaW50OltldmVudDEuZmluZ2VycHJpbnRdOltdLGZpbmdlcnByaW50JiYoZXZlbnQxLmZpbmdlcnByaW50PWV2ZW50MS5maW5nZXJwcmludC5jb25jYXQoZmluZ2VycHJpbnQpKSxldmVudDEuZmluZ2VycHJpbnQubGVuZ3RofHxkZWxldGUgZXZlbnQxLmZpbmdlcnByaW50LGZ1bmN0aW9uKGV2ZW50LGJyZWFkY3J1bWJzKXtsZXQgbWVyZ2VkQnJlYWRjcnVtYnM9Wy4uLmV2ZW50LmJyZWFkY3J1bWJzfHxbXSwuLi5icmVhZGNydW1ic107ZXZlbnQuYnJlYWRjcnVtYnM9bWVyZ2VkQnJlYWRjcnVtYnMubGVuZ3RoP21lcmdlZEJyZWFkY3J1bWJzOnZvaWQgMH0oZXZlbnQsYnJlYWRjcnVtYnMpLChldmVudDI9ZXZlbnQpLnNka1Byb2Nlc3NpbmdNZXRhZGF0YT17Li4uZXZlbnQyLnNka1Byb2Nlc3NpbmdNZXRhZGF0YSwuLi5zZGtQcm9jZXNzaW5nTWV0YWRhdGF9fShwcmVwYXJlZCxkYXRhKTtsZXQgZXZlbnRQcm9jZXNzb3JzPVsuLi5jbGllbnRFdmVudFByb2Nlc3NvcnMsLi4uZGF0YS5ldmVudFByb2Nlc3NvcnNdLHJlc3VsdD1mdW5jdGlvbihwcm9jZXNzb3JzLGV2ZW50LGhpbnQsaW5kZXg9MCl7dHJ5e2xldCByZXN1bHQ9ZnVuY3Rpb24gX25vdGlmeUV2ZW50UHJvY2Vzc29ycyhldmVudCxoaW50LHByb2Nlc3NvcnMsaW5kZXgpe2xldCBwcm9jZXNzb3I9cHJvY2Vzc29yc1tpbmRleF07aWYoIWV2ZW50fHwhcHJvY2Vzc29yKXJldHVybiBldmVudDtsZXQgcmVzdWx0PXByb2Nlc3Nvcih7Li4uZXZlbnR9LGhpbnQpO3JldHVybihkZWJ1Z19idWlsZC5YJiZudWxsPT09cmVzdWx0JiZkZWJ1Z19sb2dnZXIuZkYubG9nKGBFdmVudCBwcm9jZXNzb3IgIiR7cHJvY2Vzc29yLmlkfHwiPyJ9IiBkcm9wcGVkIGV2ZW50YCksKDAsaXMuSjgpKHJlc3VsdCkpP3Jlc3VsdC50aGVuKGZpbmFsPT5fbm90aWZ5RXZlbnRQcm9jZXNzb3JzKGZpbmFsLGhpbnQscHJvY2Vzc29ycyxpbmRleCsxKSk6X25vdGlmeUV2ZW50UHJvY2Vzc29ycyhyZXN1bHQsaGludCxwcm9jZXNzb3JzLGluZGV4KzEpfShldmVudCxoaW50LHByb2Nlc3NvcnMsaW5kZXgpO3JldHVybigwLGlzLko4KShyZXN1bHQpP3Jlc3VsdDooMCxzeW5jcHJvbWlzZS5XRCkocmVzdWx0KX1jYXRjaChlcnJvcil7cmV0dXJuKDAsc3luY3Byb21pc2UuJDIpKGVycm9yKX19KGV2ZW50UHJvY2Vzc29ycyxwcmVwYXJlZCxoaW50KTtyZXR1cm4gcmVzdWx0LnRoZW4oZXZ0PT4oZXZ0JiZmdW5jdGlvbihldmVudCl7bGV0IGZpbGVuYW1lRGVidWdJZE1hcD17fTtpZihldmVudC5leGNlcHRpb24/LnZhbHVlcz8uZm9yRWFjaChleGNlcHRpb249PntleGNlcHRpb24uc3RhY2t0cmFjZT8uZnJhbWVzPy5mb3JFYWNoKGZyYW1lPT57ZnJhbWUuZGVidWdfaWQmJihmcmFtZS5hYnNfcGF0aD9maWxlbmFtZURlYnVnSWRNYXBbZnJhbWUuYWJzX3BhdGhdPWZyYW1lLmRlYnVnX2lkOmZyYW1lLmZpbGVuYW1lJiYoZmlsZW5hbWVEZWJ1Z0lkTWFwW2ZyYW1lLmZpbGVuYW1lXT1mcmFtZS5kZWJ1Z19pZCksZGVsZXRlIGZyYW1lLmRlYnVnX2lkKX0pfSksMD09PU9iamVjdC5rZXlzKGZpbGVuYW1lRGVidWdJZE1hcCkubGVuZ3RoKXJldHVybjtldmVudC5kZWJ1Z19tZXRhPWV2ZW50LmRlYnVnX21ldGF8fHt9LGV2ZW50LmRlYnVnX21ldGEuaW1hZ2VzPWV2ZW50LmRlYnVnX21ldGEuaW1hZ2VzfHxbXTtsZXQgaW1hZ2VzPWV2ZW50LmRlYnVnX21ldGEuaW1hZ2VzO09iamVjdC5lbnRyaWVzKGZpbGVuYW1lRGVidWdJZE1hcCkuZm9yRWFjaCgoW2ZpbGVuYW1lLGRlYnVnX2lkXSk9PntpbWFnZXMucHVzaCh7dHlwZToic291cmNlbWFwIixjb2RlX2ZpbGU6ZmlsZW5hbWUsZGVidWdfaWR9KX0pfShldnQpLCJudW1iZXIiPT10eXBlb2Ygbm9ybWFsaXplRGVwdGgmJm5vcm1hbGl6ZURlcHRoPjApP2Z1bmN0aW9uKGV2ZW50LGRlcHRoLG1heEJyZWFkdGgpe2lmKCFldmVudClyZXR1cm4gbnVsbDtsZXQgbm9ybWFsaXplZD17Li4uZXZlbnQsLi4uZXZlbnQuYnJlYWRjcnVtYnMmJnticmVhZGNydW1iczpldmVudC5icmVhZGNydW1icy5tYXAoYj0+KHsuLi5iLC4uLmIuZGF0YSYme2RhdGE6KDAsbm9ybWFsaXplLkZ2KShiLmRhdGEsZGVwdGgsbWF4QnJlYWR0aCl9fSkpfSwuLi5ldmVudC51c2VyJiZ7dXNlcjooMCxub3JtYWxpemUuRnYpKGV2ZW50LnVzZXIsZGVwdGgsbWF4QnJlYWR0aCl9LC4uLmV2ZW50LmNvbnRleHRzJiZ7Y29udGV4dHM6KDAsbm9ybWFsaXplLkZ2KShldmVudC5jb250ZXh0cyxkZXB0aCxtYXhCcmVhZHRoKX0sLi4uZXZlbnQuZXh0cmEmJntleHRyYTooMCxub3JtYWxpemUuRnYpKGV2ZW50LmV4dHJhLGRlcHRoLG1heEJyZWFkdGgpfX07cmV0dXJuIGV2ZW50LmNvbnRleHRzPy50cmFjZSYmbm9ybWFsaXplZC5jb250ZXh0cyYmKG5vcm1hbGl6ZWQuY29udGV4dHMudHJhY2U9ZXZlbnQuY29udGV4dHMudHJhY2UsZXZlbnQuY29udGV4dHMudHJhY2UuZGF0YSYmKG5vcm1hbGl6ZWQuY29udGV4dHMudHJhY2UuZGF0YT0oMCxub3JtYWxpemUuRnYpKGV2ZW50LmNvbnRleHRzLnRyYWNlLmRhdGEsZGVwdGgsbWF4QnJlYWR0aCkpKSxldmVudC5zcGFucyYmKG5vcm1hbGl6ZWQuc3BhbnM9ZXZlbnQuc3BhbnMubWFwKHNwYW49Pih7Li4uc3BhbiwuLi5zcGFuLmRhdGEmJntkYXRhOigwLG5vcm1hbGl6ZS5Gdikoc3Bhbi5kYXRhLGRlcHRoLG1heEJyZWFkdGgpfX0pKSksZXZlbnQuY29udGV4dHM/LmZsYWdzJiZub3JtYWxpemVkLmNvbnRleHRzJiYobm9ybWFsaXplZC5jb250ZXh0cy5mbGFncz0oMCxub3JtYWxpemUuRnYpKGV2ZW50LmNvbnRleHRzLmZsYWdzLDMsbWF4QnJlYWR0aCkpLG5vcm1hbGl6ZWR9KGV2dCxub3JtYWxpemVEZXB0aCxub3JtYWxpemVNYXhCcmVhZHRoKTpldnQpfWZ1bmN0aW9uIHBhcnNlRXZlbnRIaW50T3JDYXB0dXJlQ29udGV4dChoaW50KXtyZXR1cm4gaGludD9oaW50IGluc3RhbmNlb2YgZXNtX3Njb3BlLnN8fCJmdW5jdGlvbiI9PXR5cGVvZiBoaW50fHxPYmplY3Qua2V5cyhoaW50KS5zb21lKGtleT0+Y2FwdHVyZUNvbnRleHRLZXlzLmluY2x1ZGVzKGtleSkpP3tjYXB0dXJlQ29udGV4dDpoaW50fTpoaW50OnZvaWQgMH1sZXQgY2FwdHVyZUNvbnRleHRLZXlzPVsidXNlciIsImxldmVsIiwiZXh0cmEiLCJjb250ZXh0cyIsInRhZ3MiLCJmaW5nZXJwcmludCIsInByb3BhZ2F0aW9uQ29udGV4dCJdfSw4MTUxOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtIOmZ1bmN0aW9uKCl7cmV0dXJuIGdlbmVyYXRlVHJhY2VJZH0sTTpmdW5jdGlvbigpe3JldHVybiBnZW5lcmF0ZVNwYW5JZH19KTt2YXIgX21pc2NfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDM0MTU2KTtmdW5jdGlvbiBnZW5lcmF0ZVRyYWNlSWQoKXtyZXR1cm4oMCxfbWlzY19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkRNKSgpfWZ1bmN0aW9uIGdlbmVyYXRlU3BhbklkKCl7cmV0dXJuKDAsX21pc2NfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5ETSkoKS5zdWJzdHJpbmcoMTYpfX0sOTE4MTk6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se2w6ZnVuY3Rpb24oKXtyZXR1cm4gc2hvdWxkSWdub3JlU3Bhbn0seDpmdW5jdGlvbigpe3JldHVybiByZXBhcmVudENoaWxkU3BhbnN9fSk7dmFyIF9kZWJ1Z19idWlsZF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fPV9fd2VicGFja19yZXF1aXJlX18oOTQyMjMpLF9kZWJ1Z19sb2dnZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MjQpLF9zdHJpbmdfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDU3MzYwKTtmdW5jdGlvbiBsb2dJZ25vcmVkU3Bhbihkcm9wcGVkU3Bhbil7X2RlYnVnX2xvZ2dlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmZGLmxvZyhgSWdub3Jpbmcgc3BhbiAke2Ryb3BwZWRTcGFuLm9wfSAtICR7ZHJvcHBlZFNwYW4uZGVzY3JpcHRpb259IGJlY2F1c2UgaXQgbWF0Y2hlcyBcYGlnbm9yZVNwYW5zXGAuYCl9ZnVuY3Rpb24gc2hvdWxkSWdub3JlU3BhbihzcGFuLGlnbm9yZVNwYW5zKXtpZighaWdub3JlU3BhbnM/Lmxlbmd0aHx8IXNwYW4uZGVzY3JpcHRpb24pcmV0dXJuITE7Zm9yKGxldCBwYXR0ZXJuIG9mIGlnbm9yZVNwYW5zKXt2YXIgdmFsdWU7aWYoInN0cmluZyI9PXR5cGVvZih2YWx1ZT1wYXR0ZXJuKXx8dmFsdWUgaW5zdGFuY2VvZiBSZWdFeHApe2lmKCgwLF9zdHJpbmdfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy56Qykoc3Bhbi5kZXNjcmlwdGlvbixwYXR0ZXJuKSlyZXR1cm4gX2RlYnVnX2J1aWxkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uWCYmbG9nSWdub3JlZFNwYW4oc3BhbiksITA7Y29udGludWV9aWYoIXBhdHRlcm4ubmFtZSYmIXBhdHRlcm4ub3ApY29udGludWU7bGV0IG5hbWVNYXRjaGVzPSFwYXR0ZXJuLm5hbWV8fCgwLF9zdHJpbmdfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy56Qykoc3Bhbi5kZXNjcmlwdGlvbixwYXR0ZXJuLm5hbWUpLG9wTWF0Y2hlcz0hcGF0dGVybi5vcHx8c3Bhbi5vcCYmKDAsX3N0cmluZ19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnpDKShzcGFuLm9wLHBhdHRlcm4ub3ApO2lmKG5hbWVNYXRjaGVzJiZvcE1hdGNoZXMpcmV0dXJuIF9kZWJ1Z19idWlsZF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLlgmJmxvZ0lnbm9yZWRTcGFuKHNwYW4pLCEwfXJldHVybiExfWZ1bmN0aW9uIHJlcGFyZW50Q2hpbGRTcGFucyhzcGFucyxkcm9wU3Bhbil7bGV0IGRyb3BwZWRTcGFuUGFyZW50SWQ9ZHJvcFNwYW4ucGFyZW50X3NwYW5faWQsZHJvcHBlZFNwYW5JZD1kcm9wU3Bhbi5zcGFuX2lkO2lmKGRyb3BwZWRTcGFuUGFyZW50SWQpZm9yKGxldCBzcGFuIG9mIHNwYW5zKXNwYW4ucGFyZW50X3NwYW5faWQ9PT1kcm9wcGVkU3BhbklkJiYoc3Bhbi5wYXJlbnRfc3Bhbl9pZD1kcm9wcGVkU3BhblBhcmVudElkKX19LDg5MzY2OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtEOmZ1bmN0aW9uKCl7cmV0dXJuIF9zZXRTcGFuRm9yU2NvcGV9LFk6ZnVuY3Rpb24oKXtyZXR1cm4gX2dldFNwYW5Gb3JTY29wZX19KTt2YXIgX29iamVjdF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oOTM4MjApO2xldCBTQ09QRV9TUEFOX0ZJRUxEPSJfc2VudHJ5U3BhbiI7ZnVuY3Rpb24gX3NldFNwYW5Gb3JTY29wZShzY29wZSxzcGFuKXtzcGFuPygwLF9vYmplY3RfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy54cCkoc2NvcGUsU0NPUEVfU1BBTl9GSUVMRCxzcGFuKTpkZWxldGUgc2NvcGVbU0NPUEVfU1BBTl9GSUVMRF19ZnVuY3Rpb24gX2dldFNwYW5Gb3JTY29wZShzY29wZSl7cmV0dXJuIHNjb3BlW1NDT1BFX1NQQU5fRklFTERdfX0sODE1ODU6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18seyRrOmZ1bmN0aW9uKCl7cmV0dXJuIHNwYW5UaW1lSW5wdXRUb1NlY29uZHN9LERwOmZ1bmN0aW9uKCl7cmV0dXJuIGdldFNwYW5EZXNjZW5kYW50c30sRkY6ZnVuY3Rpb24oKXtyZXR1cm4gY29udmVydFNwYW5MaW5rc0ZvckVudmVsb3BlfSxHeDpmdW5jdGlvbigpe3JldHVybiBnZXRSb290U3Bhbn0sSE46ZnVuY3Rpb24oKXtyZXR1cm4gZ2V0QWN0aXZlU3Bhbn0sSFI6ZnVuY3Rpb24oKXtyZXR1cm4gc3BhblRvVHJhbnNhY3Rpb25UcmFjZUNvbnRleHR9LEhiOmZ1bmN0aW9uKCl7cmV0dXJuIHNwYW5Ub1RyYWNlSGVhZGVyfSxSNjpmdW5jdGlvbigpe3JldHVybiBzaG93U3BhbkRyb3BXYXJuaW5nfSxUdDpmdW5jdGlvbigpe3JldHVybiBzcGFuSXNTYW1wbGVkfSxYVTpmdW5jdGlvbigpe3JldHVybiBzcGFuVG9KU09OfSxfNDpmdW5jdGlvbigpe3JldHVybiBnZXRTdGF0dXNNZXNzYWdlfSxlZDpmdW5jdGlvbigpe3JldHVybiByZW1vdmVDaGlsZFNwYW5Gcm9tU3Bhbn0saTA6ZnVuY3Rpb24oKXtyZXR1cm4gVFJBQ0VfRkxBR19TQU1QTEVEfSxqNTpmdW5jdGlvbigpe3JldHVybiBhZGRDaGlsZFNwYW5Ub1NwYW59LGpOOmZ1bmN0aW9uKCl7cmV0dXJuIHNwYW5Ub1RyYWNlcGFyZW50SGVhZGVyfSx2ZTpmdW5jdGlvbigpe3JldHVybiBUUkFDRV9GTEFHX05PTkV9LHd5OmZ1bmN0aW9uKCl7cmV0dXJuIHNwYW5Ub1RyYWNlQ29udGV4dH19KTt2YXIgX2FzeW5jQ29udGV4dF9pbmRleF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fPV9fd2VicGFja19yZXF1aXJlX18oNjA4MTEpLF9jYXJyaWVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X189X193ZWJwYWNrX3JlcXVpcmVfXygxMzUzMyksX2N1cnJlbnRTY29wZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX189X193ZWJwYWNrX3JlcXVpcmVfXyg3MzA3NiksX3NlbWFudGljQXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fPV9fd2VicGFja19yZXF1aXJlX18oMzEyMTgpLF90cmFjaW5nX3NwYW5zdGF0dXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY5NzM3KSxfdHJhY2luZ191dGlsc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oOTY1MTUpLF9vYmplY3RfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDkzODIwKSxfcHJvcGFnYXRpb25Db250ZXh0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg4MTUxKSxfdGltZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fPV9fd2VicGFja19yZXF1aXJlX18oOTA3NzIpLF90cmFjaW5nX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXygzMjYxNiksX2RlYnVnX2xvZ2dlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MjQpLF9zcGFuT25TY29wZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fPV9fd2VicGFja19yZXF1aXJlX18oODkzNjYpO2xldCBUUkFDRV9GTEFHX05PTkU9MCxUUkFDRV9GTEFHX1NBTVBMRUQ9MSxoYXNTaG93blNwYW5Ecm9wV2FybmluZz0hMTtmdW5jdGlvbiBzcGFuVG9UcmFuc2FjdGlvblRyYWNlQ29udGV4dChzcGFuKXtsZXR7c3BhbklkOnNwYW5faWQsdHJhY2VJZDp0cmFjZV9pZH09c3Bhbi5zcGFuQ29udGV4dCgpLHtkYXRhLG9wLHBhcmVudF9zcGFuX2lkLHN0YXR1cyxvcmlnaW4sbGlua3N9PXNwYW5Ub0pTT04oc3Bhbik7cmV0dXJue3BhcmVudF9zcGFuX2lkLHNwYW5faWQsdHJhY2VfaWQsZGF0YSxvcCxzdGF0dXMsb3JpZ2luLGxpbmtzfX1mdW5jdGlvbiBzcGFuVG9UcmFjZUNvbnRleHQoc3Bhbil7bGV0e3NwYW5JZCx0cmFjZUlkOnRyYWNlX2lkLGlzUmVtb3RlfT1zcGFuLnNwYW5Db250ZXh0KCkscGFyZW50X3NwYW5faWQ9aXNSZW1vdGU/c3BhbklkOnNwYW5Ub0pTT04oc3BhbikucGFyZW50X3NwYW5faWQsc2NvcGU9KDAsX3RyYWNpbmdfdXRpbHNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5JKShzcGFuKS5zY29wZSxzcGFuX2lkPWlzUmVtb3RlP3Njb3BlPy5nZXRQcm9wYWdhdGlvbkNvbnRleHQoKS5wcm9wYWdhdGlvblNwYW5JZHx8KDAsX3Byb3BhZ2F0aW9uQ29udGV4dF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLk0pKCk6c3BhbklkO3JldHVybntwYXJlbnRfc3Bhbl9pZCxzcGFuX2lkLHRyYWNlX2lkfX1mdW5jdGlvbiBzcGFuVG9UcmFjZUhlYWRlcihzcGFuKXtsZXR7dHJhY2VJZCxzcGFuSWR9PXNwYW4uc3BhbkNvbnRleHQoKSxzYW1wbGVkPXNwYW5Jc1NhbXBsZWQoc3Bhbik7cmV0dXJuKDAsX3RyYWNpbmdfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy4kcCkodHJhY2VJZCxzcGFuSWQsc2FtcGxlZCl9ZnVuY3Rpb24gc3BhblRvVHJhY2VwYXJlbnRIZWFkZXIoc3Bhbil7bGV0e3RyYWNlSWQsc3BhbklkfT1zcGFuLnNwYW5Db250ZXh0KCksc2FtcGxlZD1zcGFuSXNTYW1wbGVkKHNwYW4pO3JldHVybigwLF90cmFjaW5nX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uaTcpKHRyYWNlSWQsc3BhbklkLHNhbXBsZWQpfWZ1bmN0aW9uIGNvbnZlcnRTcGFuTGlua3NGb3JFbnZlbG9wZShsaW5rcyl7cmV0dXJuIGxpbmtzJiZsaW5rcy5sZW5ndGg+MD9saW5rcy5tYXAoKHtjb250ZXh0OntzcGFuSWQsdHJhY2VJZCx0cmFjZUZsYWdzLC4uLnJlc3RDb250ZXh0fSxhdHRyaWJ1dGVzfSk9Pih7c3Bhbl9pZDpzcGFuSWQsdHJhY2VfaWQ6dHJhY2VJZCxzYW1wbGVkOnRyYWNlRmxhZ3M9PT1UUkFDRV9GTEFHX1NBTVBMRUQsYXR0cmlidXRlcywuLi5yZXN0Q29udGV4dH0pKTp2b2lkIDB9ZnVuY3Rpb24gc3BhblRpbWVJbnB1dFRvU2Vjb25kcyhpbnB1dCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBpbnB1dD9lbnN1cmVUaW1lc3RhbXBJblNlY29uZHMoaW5wdXQpOkFycmF5LmlzQXJyYXkoaW5wdXQpP2lucHV0WzBdK2lucHV0WzFdLzFlOTppbnB1dCBpbnN0YW5jZW9mIERhdGU/ZW5zdXJlVGltZXN0YW1wSW5TZWNvbmRzKGlucHV0LmdldFRpbWUoKSk6KDAsX3RpbWVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5waCkoKX1mdW5jdGlvbiBlbnN1cmVUaW1lc3RhbXBJblNlY29uZHModGltZXN0YW1wKXtyZXR1cm4gdGltZXN0YW1wPjk5OTk5OTk5OTk/dGltZXN0YW1wLzFlMzp0aW1lc3RhbXB9ZnVuY3Rpb24gc3BhblRvSlNPTihzcGFuKXtpZigiZnVuY3Rpb24iPT10eXBlb2Ygc3Bhbi5nZXRTcGFuSlNPTilyZXR1cm4gc3Bhbi5nZXRTcGFuSlNPTigpO2xldHtzcGFuSWQ6c3Bhbl9pZCx0cmFjZUlkOnRyYWNlX2lkfT1zcGFuLnNwYW5Db250ZXh0KCk7aWYoc3Bhbi5hdHRyaWJ1dGVzJiZzcGFuLnN0YXJ0VGltZSYmc3Bhbi5uYW1lJiZzcGFuLmVuZFRpbWUmJnNwYW4uc3RhdHVzKXtsZXR7YXR0cmlidXRlcyxzdGFydFRpbWUsbmFtZSxlbmRUaW1lLHN0YXR1cyxsaW5rc309c3BhbixwYXJlbnRTcGFuSWQ9InBhcmVudFNwYW5JZCJpbiBzcGFuP3NwYW4ucGFyZW50U3BhbklkOiJwYXJlbnRTcGFuQ29udGV4dCJpbiBzcGFuP3NwYW4ucGFyZW50U3BhbkNvbnRleHQ/LnNwYW5JZDp2b2lkIDA7cmV0dXJue3NwYW5faWQsdHJhY2VfaWQsZGF0YTphdHRyaWJ1dGVzLGRlc2NyaXB0aW9uOm5hbWUscGFyZW50X3NwYW5faWQ6cGFyZW50U3BhbklkLHN0YXJ0X3RpbWVzdGFtcDpzcGFuVGltZUlucHV0VG9TZWNvbmRzKHN0YXJ0VGltZSksdGltZXN0YW1wOnNwYW5UaW1lSW5wdXRUb1NlY29uZHMoZW5kVGltZSl8fHZvaWQgMCxzdGF0dXM6Z2V0U3RhdHVzTWVzc2FnZShzdGF0dXMpLG9wOmF0dHJpYnV0ZXNbX3NlbWFudGljQXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLiRKXSxvcmlnaW46YXR0cmlidXRlc1tfc2VtYW50aWNBdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uUzNdLGxpbmtzOmNvbnZlcnRTcGFuTGlua3NGb3JFbnZlbG9wZShsaW5rcyl9fXJldHVybntzcGFuX2lkLHRyYWNlX2lkLHN0YXJ0X3RpbWVzdGFtcDowLGRhdGE6e319fWZ1bmN0aW9uIHNwYW5Jc1NhbXBsZWQoc3Bhbil7bGV0e3RyYWNlRmxhZ3N9PXNwYW4uc3BhbkNvbnRleHQoKTtyZXR1cm4gdHJhY2VGbGFncz09PVRSQUNFX0ZMQUdfU0FNUExFRH1mdW5jdGlvbiBnZXRTdGF0dXNNZXNzYWdlKHN0YXR1cyl7cmV0dXJuIHN0YXR1cyYmc3RhdHVzLmNvZGUhPT1fdHJhY2luZ19zcGFuc3RhdHVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18ucHE/c3RhdHVzLmNvZGU9PT1fdHJhY2luZ19zcGFuc3RhdHVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uT1A/Im9rIjpzdGF0dXMubWVzc2FnZXx8ImludGVybmFsX2Vycm9yIjp2b2lkIDB9bGV0IENISUxEX1NQQU5TX0ZJRUxEPSJfc2VudHJ5Q2hpbGRTcGFucyIsUk9PVF9TUEFOX0ZJRUxEPSJfc2VudHJ5Um9vdFNwYW4iO2Z1bmN0aW9uIGFkZENoaWxkU3BhblRvU3BhbihzcGFuLGNoaWxkU3Bhbil7bGV0IHJvb3RTcGFuPXNwYW5bUk9PVF9TUEFOX0ZJRUxEXXx8c3BhbjsoMCxfb2JqZWN0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18ueHApKGNoaWxkU3BhbixST09UX1NQQU5fRklFTEQscm9vdFNwYW4pLHNwYW5bQ0hJTERfU1BBTlNfRklFTERdP3NwYW5bQ0hJTERfU1BBTlNfRklFTERdLmFkZChjaGlsZFNwYW4pOigwLF9vYmplY3RfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy54cCkoc3BhbixDSElMRF9TUEFOU19GSUVMRCxuZXcgU2V0KFtjaGlsZFNwYW5dKSl9ZnVuY3Rpb24gcmVtb3ZlQ2hpbGRTcGFuRnJvbVNwYW4oc3BhbixjaGlsZFNwYW4pe3NwYW5bQ0hJTERfU1BBTlNfRklFTERdJiZzcGFuW0NISUxEX1NQQU5TX0ZJRUxEXS5kZWxldGUoY2hpbGRTcGFuKX1mdW5jdGlvbiBnZXRTcGFuRGVzY2VuZGFudHMoc3Bhbil7bGV0IHJlc3VsdFNldD1uZXcgU2V0O3JldHVybiFmdW5jdGlvbiBhZGRTcGFuQ2hpbGRyZW4oc3Bhbil7aWYoIXJlc3VsdFNldC5oYXMoc3BhbikmJnNwYW5Jc1NhbXBsZWQoc3Bhbikpe3Jlc3VsdFNldC5hZGQoc3Bhbik7bGV0IGNoaWxkU3BhbnM9c3BhbltDSElMRF9TUEFOU19GSUVMRF0/QXJyYXkuZnJvbShzcGFuW0NISUxEX1NQQU5TX0ZJRUxEXSk6W107Zm9yKGxldCBjaGlsZFNwYW4gb2YgY2hpbGRTcGFucylhZGRTcGFuQ2hpbGRyZW4oY2hpbGRTcGFuKX19KHNwYW4pLEFycmF5LmZyb20ocmVzdWx0U2V0KX1mdW5jdGlvbiBnZXRSb290U3BhbihzcGFuKXtyZXR1cm4gc3BhbltST09UX1NQQU5fRklFTERdfHxzcGFufWZ1bmN0aW9uIGdldEFjdGl2ZVNwYW4oKXtsZXQgY2Fycmllcj0oMCxfY2Fycmllcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmN1KSgpLGFjcz0oMCxfYXN5bmNDb250ZXh0X2luZGV4X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uRykoY2Fycmllcik7cmV0dXJuIGFjcy5nZXRBY3RpdmVTcGFuP2Fjcy5nZXRBY3RpdmVTcGFuKCk6KDAsX3NwYW5PblNjb3BlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18uWSkoKDAsX2N1cnJlbnRTY29wZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18ublopKCkpfWZ1bmN0aW9uIHNob3dTcGFuRHJvcFdhcm5pbmcoKXtoYXNTaG93blNwYW5Ecm9wV2FybmluZ3x8KCgwLF9kZWJ1Z19sb2dnZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uQ2YpKCgpPT57Y29uc29sZS53YXJuKCJbU2VudHJ5XSBSZXR1cm5pbmcgbnVsbCBmcm9tIGBiZWZvcmVTZW5kU3BhbmAgaXMgZGlzYWxsb3dlZC4gVG8gZHJvcCBjZXJ0YWluIHNwYW5zLCBjb25maWd1cmUgdGhlIHJlc3BlY3RpdmUgaW50ZWdyYXRpb25zIGRpcmVjdGx5IG9yIHVzZSBgaWdub3JlU3BhbnNgLiIpfSksaGFzU2hvd25TcGFuRHJvcFdhcm5pbmc9ITApfX0sOTk2MDM6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18seyRQOmZ1bmN0aW9uKCl7cmV0dXJuIGdldEZ1bmN0aW9uTmFtZX0sRmk6ZnVuY3Rpb24oKXtyZXR1cm4gVU5LTk9XTl9GVU5DVElPTn0sRnI6ZnVuY3Rpb24oKXtyZXR1cm4gZ2V0RnJhbWVzRnJvbUV2ZW50fSxKaDpmdW5jdGlvbigpe3JldHVybiBnZXRWdWVJbnRlcm5hbE5hbWV9LFNxOmZ1bmN0aW9uKCl7cmV0dXJuIHN0YWNrUGFyc2VyRnJvbVN0YWNrUGFyc2VyT3B0aW9uc30scEU6ZnVuY3Rpb24oKXtyZXR1cm4gY3JlYXRlU3RhY2tQYXJzZXJ9fSk7bGV0IFVOS05PV05fRlVOQ1RJT049Ij8iLFdFQlBBQ0tfRVJST1JfUkVHRVhQPS9cKGVycm9yOiAoLiopXCkvLFNUUklQX0ZSQU1FX1JFR0VYUD0vY2FwdHVyZU1lc3NhZ2V8Y2FwdHVyZUV4Y2VwdGlvbi87ZnVuY3Rpb24gY3JlYXRlU3RhY2tQYXJzZXIoLi4ucGFyc2Vycyl7bGV0IHNvcnRlZFBhcnNlcnM9cGFyc2Vycy5zb3J0KChhLGIpPT5hWzBdLWJbMF0pLm1hcChwPT5wWzFdKTtyZXR1cm4oc3RhY2ssc2tpcEZpcnN0TGluZXM9MCxmcmFtZXNUb1BvcD0wKT0+e2xldCBmcmFtZXM9W10sbGluZXM9c3RhY2suc3BsaXQoIlxuIik7Zm9yKGxldCBpPXNraXBGaXJzdExpbmVzO2k8bGluZXMubGVuZ3RoO2krKyl7bGV0IGxpbmU9bGluZXNbaV07bGluZS5sZW5ndGg+MTAyNCYmKGxpbmU9bGluZS5zbGljZSgwLDEwMjQpKTtsZXQgY2xlYW5lZExpbmU9V0VCUEFDS19FUlJPUl9SRUdFWFAudGVzdChsaW5lKT9saW5lLnJlcGxhY2UoV0VCUEFDS19FUlJPUl9SRUdFWFAsIiQxIik6bGluZTtpZighY2xlYW5lZExpbmUubWF0Y2goL1xTKkVycm9yOiAvKSl7Zm9yKGxldCBwYXJzZXIgb2Ygc29ydGVkUGFyc2Vycyl7bGV0IGZyYW1lPXBhcnNlcihjbGVhbmVkTGluZSk7aWYoZnJhbWUpe2ZyYW1lcy5wdXNoKGZyYW1lKTticmVha319aWYoZnJhbWVzLmxlbmd0aD49NTArZnJhbWVzVG9Qb3ApYnJlYWt9fXJldHVybiBmdW5jdGlvbihzdGFjayl7aWYoIXN0YWNrLmxlbmd0aClyZXR1cm5bXTtsZXQgbG9jYWxTdGFjaz1BcnJheS5mcm9tKHN0YWNrKTtyZXR1cm4vc2VudHJ5V3JhcHBlZC8udGVzdChnZXRMYXN0U3RhY2tGcmFtZShsb2NhbFN0YWNrKS5mdW5jdGlvbnx8IiIpJiZsb2NhbFN0YWNrLnBvcCgpLGxvY2FsU3RhY2sucmV2ZXJzZSgpLFNUUklQX0ZSQU1FX1JFR0VYUC50ZXN0KGdldExhc3RTdGFja0ZyYW1lKGxvY2FsU3RhY2spLmZ1bmN0aW9ufHwiIikmJihsb2NhbFN0YWNrLnBvcCgpLFNUUklQX0ZSQU1FX1JFR0VYUC50ZXN0KGdldExhc3RTdGFja0ZyYW1lKGxvY2FsU3RhY2spLmZ1bmN0aW9ufHwiIikmJmxvY2FsU3RhY2sucG9wKCkpLGxvY2FsU3RhY2suc2xpY2UoMCw1MCkubWFwKGZyYW1lPT4oey4uLmZyYW1lLGZpbGVuYW1lOmZyYW1lLmZpbGVuYW1lfHxnZXRMYXN0U3RhY2tGcmFtZShsb2NhbFN0YWNrKS5maWxlbmFtZSxmdW5jdGlvbjpmcmFtZS5mdW5jdGlvbnx8VU5LTk9XTl9GVU5DVElPTn0pKX0oZnJhbWVzLnNsaWNlKGZyYW1lc1RvUG9wKSl9fWZ1bmN0aW9uIHN0YWNrUGFyc2VyRnJvbVN0YWNrUGFyc2VyT3B0aW9ucyhzdGFja1BhcnNlcil7cmV0dXJuIEFycmF5LmlzQXJyYXkoc3RhY2tQYXJzZXIpP2NyZWF0ZVN0YWNrUGFyc2VyKC4uLnN0YWNrUGFyc2VyKTpzdGFja1BhcnNlcn1mdW5jdGlvbiBnZXRMYXN0U3RhY2tGcmFtZShhcnIpe3JldHVybiBhcnJbYXJyLmxlbmd0aC0xXXx8e319bGV0IGRlZmF1bHRGdW5jdGlvbk5hbWU9Ijxhbm9ueW1vdXM+IjtmdW5jdGlvbiBnZXRGdW5jdGlvbk5hbWUoZm4pe3RyeXtpZighZm58fCJmdW5jdGlvbiIhPXR5cGVvZiBmbilyZXR1cm4gZGVmYXVsdEZ1bmN0aW9uTmFtZTtyZXR1cm4gZm4ubmFtZXx8ZGVmYXVsdEZ1bmN0aW9uTmFtZX1jYXRjaHtyZXR1cm4gZGVmYXVsdEZ1bmN0aW9uTmFtZX19ZnVuY3Rpb24gZ2V0RnJhbWVzRnJvbUV2ZW50KGV2ZW50KXtsZXQgZXhjZXB0aW9uPWV2ZW50LmV4Y2VwdGlvbjtpZihleGNlcHRpb24pe2xldCBmcmFtZXM9W107dHJ5e3JldHVybiBleGNlcHRpb24udmFsdWVzLmZvckVhY2godmFsdWU9Pnt2YWx1ZS5zdGFja3RyYWNlLmZyYW1lcyYmZnJhbWVzLnB1c2goLi4udmFsdWUuc3RhY2t0cmFjZS5mcmFtZXMpfSksZnJhbWVzfWNhdGNoe319fWZ1bmN0aW9uIGdldFZ1ZUludGVybmFsTmFtZSh2YWx1ZSl7bGV0IGlzVk5vZGU9Il9fdl9pc1ZOb2RlImluIHZhbHVlJiZ2YWx1ZS5fX3ZfaXNWTm9kZTtyZXR1cm4gaXNWTm9kZT8iW1Z1ZVZOb2RlXSI6IltWdWVWaWV3TW9kZWxdIn19LDU3MzYwOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHskRzpmdW5jdGlvbigpe3JldHVybiB0cnVuY2F0ZX0sVTA6ZnVuY3Rpb24oKXtyZXR1cm4gc3RyaW5nTWF0Y2hlc1NvbWVQYXR0ZXJufSxuSzpmdW5jdGlvbigpe3JldHVybiBzYWZlSm9pbn0sekM6ZnVuY3Rpb24oKXtyZXR1cm4gaXNNYXRjaGluZ1BhdHRlcm59fSk7dmFyIF9pc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNDE3NDUpLF9zdGFja3RyYWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg5OTYwMyk7ZnVuY3Rpb24gdHJ1bmNhdGUoc3RyLG1heD0wKXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHN0cnx8MD09PW1heD9zdHI6c3RyLmxlbmd0aDw9bWF4P3N0cjpgJHtzdHIuc2xpY2UoMCxtYXgpfS4uLmB9ZnVuY3Rpb24gc2FmZUpvaW4oaW5wdXQsZGVsaW1pdGVyKXtpZighQXJyYXkuaXNBcnJheShpbnB1dCkpcmV0dXJuIiI7bGV0IG91dHB1dD1bXTtmb3IobGV0IGk9MDtpPGlucHV0Lmxlbmd0aDtpKyspe2xldCB2YWx1ZT1pbnB1dFtpXTt0cnl7KDAsX2lzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ueTEpKHZhbHVlKT9vdXRwdXQucHVzaCgoMCxfc3RhY2t0cmFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkpoKSh2YWx1ZSkpOm91dHB1dC5wdXNoKFN0cmluZyh2YWx1ZSkpfWNhdGNoe291dHB1dC5wdXNoKCJbdmFsdWUgY2Fubm90IGJlIHNlcmlhbGl6ZWRdIil9fXJldHVybiBvdXRwdXQuam9pbihkZWxpbWl0ZXIpfWZ1bmN0aW9uIGlzTWF0Y2hpbmdQYXR0ZXJuKHZhbHVlLHBhdHRlcm4scmVxdWlyZUV4YWN0U3RyaW5nTWF0Y2g9ITEpe3JldHVybiEhKDAsX2lzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uSEQpKHZhbHVlKSYmKCgwLF9pc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLktqKShwYXR0ZXJuKT9wYXR0ZXJuLnRlc3QodmFsdWUpOiEhKDAsX2lzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uSEQpKHBhdHRlcm4pJiYocmVxdWlyZUV4YWN0U3RyaW5nTWF0Y2g/dmFsdWU9PT1wYXR0ZXJuOnZhbHVlLmluY2x1ZGVzKHBhdHRlcm4pKSl9ZnVuY3Rpb24gc3RyaW5nTWF0Y2hlc1NvbWVQYXR0ZXJuKHRlc3RTdHJpbmcscGF0dGVybnM9W10scmVxdWlyZUV4YWN0U3RyaW5nTWF0Y2g9ITEpe3JldHVybiBwYXR0ZXJucy5zb21lKHBhdHRlcm49PmlzTWF0Y2hpbmdQYXR0ZXJuKHRlc3RTdHJpbmcscGF0dGVybixyZXF1aXJlRXhhY3RTdHJpbmdNYXRjaCkpfX0sNDc5Nzc6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se0JmOmZ1bmN0aW9uKCl7cmV0dXJuIHN1cHBvcnRzSGlzdG9yeX0sUUM6ZnVuY3Rpb24oKXtyZXR1cm4gaXNOYXRpdmVGdW5jdGlvbn0sdCQ6ZnVuY3Rpb24oKXtyZXR1cm4gc3VwcG9ydHNOYXRpdmVGZXRjaH19KTt2YXIgX2RlYnVnX2J1aWxkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg5NDIyMyksX2RlYnVnX2xvZ2dlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fPV9fd2VicGFja19yZXF1aXJlX18oNTgyNCksX3dvcmxkd2lkZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNTE1OTcpO2xldCBXSU5ET1c9X3dvcmxkd2lkZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLm47ZnVuY3Rpb24gc3VwcG9ydHNIaXN0b3J5KCl7cmV0dXJuImhpc3RvcnkiaW4gV0lORE9XJiYhIVdJTkRPVy5oaXN0b3J5fWZ1bmN0aW9uIGlzTmF0aXZlRnVuY3Rpb24oZnVuYyl7cmV0dXJuIGZ1bmMmJi9eZnVuY3Rpb25ccytcdytcKFwpXHMrXHtccytcW25hdGl2ZSBjb2RlXF1ccytcfSQvLnRlc3QoZnVuYy50b1N0cmluZygpKX1mdW5jdGlvbiBzdXBwb3J0c05hdGl2ZUZldGNoKCl7aWYoInN0cmluZyI9PXR5cGVvZiBFZGdlUnVudGltZSlyZXR1cm4hMDtpZighZnVuY3Rpb24oKXtpZighKCJmZXRjaCJpbiBXSU5ET1cpKXJldHVybiExO3RyeXtyZXR1cm4gbmV3IEhlYWRlcnMsbmV3IFJlcXVlc3QoImRhdGE6LCIpLG5ldyBSZXNwb25zZSwhMH1jYXRjaHtyZXR1cm4hMX19KCkpcmV0dXJuITE7aWYoaXNOYXRpdmVGdW5jdGlvbihXSU5ET1cuZmV0Y2gpKXJldHVybiEwO2xldCByZXN1bHQ9ITEsZG9jPVdJTkRPVy5kb2N1bWVudDtpZihkb2MmJiJmdW5jdGlvbiI9PXR5cGVvZiBkb2MuY3JlYXRlRWxlbWVudCl0cnl7bGV0IHNhbmRib3g9ZG9jLmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO3NhbmRib3guaGlkZGVuPSEwLGRvYy5oZWFkLmFwcGVuZENoaWxkKHNhbmRib3gpLHNhbmRib3guY29udGVudFdpbmRvdz8uZmV0Y2gmJihyZXN1bHQ9aXNOYXRpdmVGdW5jdGlvbihzYW5kYm94LmNvbnRlbnRXaW5kb3cuZmV0Y2gpKSxkb2MuaGVhZC5yZW1vdmVDaGlsZChzYW5kYm94KX1jYXRjaChlcnIpe19kZWJ1Z19idWlsZF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlgmJl9kZWJ1Z19sb2dnZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5mRi53YXJuKCJDb3VsZCBub3QgY3JlYXRlIHNhbmRib3ggaWZyYW1lIGZvciBwdXJlIGZldGNoIGNoZWNrLCBiYWlsaW5nIHRvIHdpbmRvdy5mZXRjaDogIixlcnIpfXJldHVybiByZXN1bHR9fSw4MDE1NzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7JDI6ZnVuY3Rpb24oKXtyZXR1cm4gcmVqZWN0ZWRTeW5jUHJvbWlzZX0sV0Q6ZnVuY3Rpb24oKXtyZXR1cm4gcmVzb2x2ZWRTeW5jUHJvbWlzZX19KTt2YXIgX2lzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg0MTc0NSk7ZnVuY3Rpb24gcmVzb2x2ZWRTeW5jUHJvbWlzZSh2YWx1ZSl7cmV0dXJuIG5ldyBTeW5jUHJvbWlzZShyZXNvbHZlPT57cmVzb2x2ZSh2YWx1ZSl9KX1mdW5jdGlvbiByZWplY3RlZFN5bmNQcm9taXNlKHJlYXNvbil7cmV0dXJuIG5ldyBTeW5jUHJvbWlzZSgoXyxyZWplY3QpPT57cmVqZWN0KHJlYXNvbil9KX1jbGFzcyBTeW5jUHJvbWlzZXtjb25zdHJ1Y3RvcihleGVjdXRvcil7dGhpcy5fc3RhdGU9MCx0aGlzLl9oYW5kbGVycz1bXSx0aGlzLl9ydW5FeGVjdXRvcihleGVjdXRvcil9dGhlbihvbmZ1bGZpbGxlZCxvbnJlamVjdGVkKXtyZXR1cm4gbmV3IFN5bmNQcm9taXNlKChyZXNvbHZlLHJlamVjdCk9Pnt0aGlzLl9oYW5kbGVycy5wdXNoKFshMSxyZXN1bHQ9PntpZihvbmZ1bGZpbGxlZCl0cnl7cmVzb2x2ZShvbmZ1bGZpbGxlZChyZXN1bHQpKX1jYXRjaChlKXtyZWplY3QoZSl9ZWxzZSByZXNvbHZlKHJlc3VsdCl9LHJlYXNvbj0+e2lmKG9ucmVqZWN0ZWQpdHJ5e3Jlc29sdmUob25yZWplY3RlZChyZWFzb24pKX1jYXRjaChlKXtyZWplY3QoZSl9ZWxzZSByZWplY3QocmVhc29uKX1dKSx0aGlzLl9leGVjdXRlSGFuZGxlcnMoKX0pfWNhdGNoKG9ucmVqZWN0ZWQpe3JldHVybiB0aGlzLnRoZW4odmFsPT52YWwsb25yZWplY3RlZCl9ZmluYWxseShvbmZpbmFsbHkpe3JldHVybiBuZXcgU3luY1Byb21pc2UoKHJlc29sdmUscmVqZWN0KT0+e2xldCB2YWwsaXNSZWplY3RlZDtyZXR1cm4gdGhpcy50aGVuKHZhbHVlPT57aXNSZWplY3RlZD0hMSx2YWw9dmFsdWUsb25maW5hbGx5JiZvbmZpbmFsbHkoKX0scmVhc29uPT57aXNSZWplY3RlZD0hMCx2YWw9cmVhc29uLG9uZmluYWxseSYmb25maW5hbGx5KCl9KS50aGVuKCgpPT57aWYoaXNSZWplY3RlZCl7cmVqZWN0KHZhbCk7cmV0dXJufXJlc29sdmUodmFsKX0pfSl9X2V4ZWN1dGVIYW5kbGVycygpe2lmKDA9PT10aGlzLl9zdGF0ZSlyZXR1cm47bGV0IGNhY2hlZEhhbmRsZXJzPXRoaXMuX2hhbmRsZXJzLnNsaWNlKCk7dGhpcy5faGFuZGxlcnM9W10sY2FjaGVkSGFuZGxlcnMuZm9yRWFjaChoYW5kbGVyPT57aGFuZGxlclswXXx8KDE9PT10aGlzLl9zdGF0ZSYmaGFuZGxlclsxXSh0aGlzLl92YWx1ZSksMj09PXRoaXMuX3N0YXRlJiZoYW5kbGVyWzJdKHRoaXMuX3ZhbHVlKSxoYW5kbGVyWzBdPSEwKX0pfV9ydW5FeGVjdXRvcihleGVjdXRvcil7bGV0IHNldFJlc3VsdD0oc3RhdGUsdmFsdWUpPT57aWYoMD09PXRoaXMuX3N0YXRlKXtpZigoMCxfaXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5KOCkodmFsdWUpKXt2YWx1ZS50aGVuKHJlc29sdmUscmVqZWN0KTtyZXR1cm59dGhpcy5fc3RhdGU9c3RhdGUsdGhpcy5fdmFsdWU9dmFsdWUsdGhpcy5fZXhlY3V0ZUhhbmRsZXJzKCl9fSxyZXNvbHZlPXZhbHVlPT57c2V0UmVzdWx0KDEsdmFsdWUpfSxyZWplY3Q9cmVhc29uPT57c2V0UmVzdWx0KDIscmVhc29uKX07dHJ5e2V4ZWN1dG9yKHJlc29sdmUscmVqZWN0KX1jYXRjaChlKXtyZWplY3QoZSl9fX19LDkwNzcyOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2xldCBfY2FjaGVkVGltZXN0YW1wSW5TZWNvbmRzLGNhY2hlZFRpbWVPcmlnaW47X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1oxOmZ1bmN0aW9uKCl7cmV0dXJuIGJyb3dzZXJQZXJmb3JtYW5jZVRpbWVPcmlnaW59LHBoOmZ1bmN0aW9uKCl7cmV0dXJuIHRpbWVzdGFtcEluU2Vjb25kc30seVc6ZnVuY3Rpb24oKXtyZXR1cm4gZGF0ZVRpbWVzdGFtcEluU2Vjb25kc319KTt2YXIgX3dvcmxkd2lkZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNTE1OTcpO2Z1bmN0aW9uIGRhdGVUaW1lc3RhbXBJblNlY29uZHMoKXtyZXR1cm4gRGF0ZS5ub3coKS8xZTN9ZnVuY3Rpb24gdGltZXN0YW1wSW5TZWNvbmRzKCl7bGV0IGZ1bmM9X2NhY2hlZFRpbWVzdGFtcEluU2Vjb25kcz8/KF9jYWNoZWRUaW1lc3RhbXBJblNlY29uZHM9ZnVuY3Rpb24oKXtsZXR7cGVyZm9ybWFuY2U6cGVyZm9ybWFuY2UxfT1fd29ybGR3aWRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubjtpZighcGVyZm9ybWFuY2UxPy5ub3d8fCFwZXJmb3JtYW5jZTEudGltZU9yaWdpbilyZXR1cm4gZGF0ZVRpbWVzdGFtcEluU2Vjb25kcztsZXQgdGltZU9yaWdpbj1wZXJmb3JtYW5jZTEudGltZU9yaWdpbjtyZXR1cm4oKT0+KHRpbWVPcmlnaW4rcGVyZm9ybWFuY2UxLm5vdygpKS8xZTN9KCkpO3JldHVybiBmdW5jKCl9ZnVuY3Rpb24gYnJvd3NlclBlcmZvcm1hbmNlVGltZU9yaWdpbigpe3JldHVybiBjYWNoZWRUaW1lT3JpZ2lufHwoY2FjaGVkVGltZU9yaWdpbj1mdW5jdGlvbigpe2xldHtwZXJmb3JtYW5jZTpwZXJmb3JtYW5jZTF9PV93b3JsZHdpZGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5uO2lmKCFwZXJmb3JtYW5jZTE/Lm5vdylyZXR1cm5bdm9pZCAwLCJub25lIl07bGV0IHBlcmZvcm1hbmNlTm93PXBlcmZvcm1hbmNlMS5ub3coKSxkYXRlTm93PURhdGUubm93KCksdGltZU9yaWdpbkRlbHRhPXBlcmZvcm1hbmNlMS50aW1lT3JpZ2luP01hdGguYWJzKHBlcmZvcm1hbmNlMS50aW1lT3JpZ2luK3BlcmZvcm1hbmNlTm93LWRhdGVOb3cpOjM2ZTUsbmF2aWdhdGlvblN0YXJ0PXBlcmZvcm1hbmNlMS50aW1pbmc/Lm5hdmlnYXRpb25TdGFydCxuYXZpZ2F0aW9uU3RhcnREZWx0YT0ibnVtYmVyIj09dHlwZW9mIG5hdmlnYXRpb25TdGFydD9NYXRoLmFicyhuYXZpZ2F0aW9uU3RhcnQrcGVyZm9ybWFuY2VOb3ctZGF0ZU5vdyk6MzZlNTtyZXR1cm4gdGltZU9yaWdpbkRlbHRhPDM2ZTV8fG5hdmlnYXRpb25TdGFydERlbHRhPDM2ZTU/dGltZU9yaWdpbkRlbHRhPD1uYXZpZ2F0aW9uU3RhcnREZWx0YT9bcGVyZm9ybWFuY2UxLnRpbWVPcmlnaW4sInRpbWVPcmlnaW4iXTpbbmF2aWdhdGlvblN0YXJ0LCJuYXZpZ2F0aW9uU3RhcnQiXTpbZGF0ZU5vdywiZGF0ZU5vdyJdfSgpKSxjYWNoZWRUaW1lT3JpZ2luWzBdfX0sMzI2MTY6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18seyRwOmZ1bmN0aW9uKCl7cmV0dXJuIGdlbmVyYXRlU2VudHJ5VHJhY2VIZWFkZXJ9LEtlOmZ1bmN0aW9uKCl7cmV0dXJuIFRSQUNFUEFSRU5UX1JFR0VYUH0saTc6ZnVuY3Rpb24oKXtyZXR1cm4gZ2VuZXJhdGVUcmFjZXBhcmVudEhlYWRlcn0scFQ6ZnVuY3Rpb24oKXtyZXR1cm4gcHJvcGFnYXRpb25Db250ZXh0RnJvbUhlYWRlcnN9fSk7dmFyIF9iYWdnYWdlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXygxNTE5NyksX3BhcnNlU2FtcGxlUmF0ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fPV9fd2VicGFja19yZXF1aXJlX18oNzk3NjkpLF9wcm9wYWdhdGlvbkNvbnRleHRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDgxNTEpO2xldCBUUkFDRVBBUkVOVF9SRUdFWFA9UmVnRXhwKCJeWyBcXHRdKihbMC05YS1mXXszMn0pPy0/KFswLTlhLWZdezE2fSk/LT8oWzAxXSk/WyBcXHRdKiQiKTtmdW5jdGlvbiBwcm9wYWdhdGlvbkNvbnRleHRGcm9tSGVhZGVycyhzZW50cnlUcmFjZSxiYWdnYWdlKXtsZXQgdHJhY2VwYXJlbnREYXRhPWZ1bmN0aW9uKHRyYWNlcGFyZW50KXtsZXQgcGFyZW50U2FtcGxlZDtpZighdHJhY2VwYXJlbnQpcmV0dXJuO2xldCBtYXRjaGVzPXRyYWNlcGFyZW50Lm1hdGNoKFRSQUNFUEFSRU5UX1JFR0VYUCk7aWYobWF0Y2hlcylyZXR1cm4iMSI9PT1tYXRjaGVzWzNdP3BhcmVudFNhbXBsZWQ9ITA6IjAiPT09bWF0Y2hlc1szXSYmKHBhcmVudFNhbXBsZWQ9ITEpLHt0cmFjZUlkOm1hdGNoZXNbMV0scGFyZW50U2FtcGxlZCxwYXJlbnRTcGFuSWQ6bWF0Y2hlc1syXX19KHNlbnRyeVRyYWNlKSxkeW5hbWljU2FtcGxpbmdDb250ZXh0PSgwLF9iYWdnYWdlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRU4pKGJhZ2dhZ2UpO2lmKCF0cmFjZXBhcmVudERhdGE/LnRyYWNlSWQpcmV0dXJue3RyYWNlSWQ6KDAsX3Byb3BhZ2F0aW9uQ29udGV4dF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkgpKCksc2FtcGxlUmFuZDpNYXRoLnJhbmRvbSgpfTtsZXQgc2FtcGxlUmFuZD1mdW5jdGlvbih0cmFjZXBhcmVudERhdGEsZHNjKXtsZXQgcGFyc2VkU2FtcGxlUmFuZD0oMCxfcGFyc2VTYW1wbGVSYXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ubykoZHNjPy5zYW1wbGVfcmFuZCk7aWYodm9pZCAwIT09cGFyc2VkU2FtcGxlUmFuZClyZXR1cm4gcGFyc2VkU2FtcGxlUmFuZDtsZXQgcGFyc2VkU2FtcGxlUmF0ZT0oMCxfcGFyc2VTYW1wbGVSYXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ubykoZHNjPy5zYW1wbGVfcmF0ZSk7cmV0dXJuIHBhcnNlZFNhbXBsZVJhdGUmJnRyYWNlcGFyZW50RGF0YT8ucGFyZW50U2FtcGxlZCE9PXZvaWQgMD90cmFjZXBhcmVudERhdGEucGFyZW50U2FtcGxlZD9NYXRoLnJhbmRvbSgpKnBhcnNlZFNhbXBsZVJhdGU6cGFyc2VkU2FtcGxlUmF0ZStNYXRoLnJhbmRvbSgpKigxLXBhcnNlZFNhbXBsZVJhdGUpOk1hdGgucmFuZG9tKCl9KHRyYWNlcGFyZW50RGF0YSxkeW5hbWljU2FtcGxpbmdDb250ZXh0KTtkeW5hbWljU2FtcGxpbmdDb250ZXh0JiYoZHluYW1pY1NhbXBsaW5nQ29udGV4dC5zYW1wbGVfcmFuZD1zYW1wbGVSYW5kLnRvU3RyaW5nKCkpO2xldHt0cmFjZUlkLHBhcmVudFNwYW5JZCxwYXJlbnRTYW1wbGVkfT10cmFjZXBhcmVudERhdGE7cmV0dXJue3RyYWNlSWQscGFyZW50U3BhbklkLHNhbXBsZWQ6cGFyZW50U2FtcGxlZCxkc2M6ZHluYW1pY1NhbXBsaW5nQ29udGV4dHx8e30sc2FtcGxlUmFuZH19ZnVuY3Rpb24gZ2VuZXJhdGVTZW50cnlUcmFjZUhlYWRlcih0cmFjZUlkPSgwLF9wcm9wYWdhdGlvbkNvbnRleHRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5IKSgpLHNwYW5JZD0oMCxfcHJvcGFnYXRpb25Db250ZXh0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uTSkoKSxzYW1wbGVkKXtsZXQgc2FtcGxlZFN0cmluZz0iIjtyZXR1cm4gdm9pZCAwIT09c2FtcGxlZCYmKHNhbXBsZWRTdHJpbmc9c2FtcGxlZD8iLTEiOiItMCIpLGAke3RyYWNlSWR9LSR7c3BhbklkfSR7c2FtcGxlZFN0cmluZ31gfWZ1bmN0aW9uIGdlbmVyYXRlVHJhY2VwYXJlbnRIZWFkZXIodHJhY2VJZD0oMCxfcHJvcGFnYXRpb25Db250ZXh0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uSCkoKSxzcGFuSWQ9KDAsX3Byb3BhZ2F0aW9uQ29udGV4dF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLk0pKCksc2FtcGxlZCl7cmV0dXJuYDAwLSR7dHJhY2VJZH0tJHtzcGFuSWR9LSR7c2FtcGxlZD8iMDEiOiIwMCJ9YH19LDY4MzI1OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGlzVVJMT2JqZWN0UmVsYXRpdmUodXJsKXtyZXR1cm4iaXNSZWxhdGl2ZSJpbiB1cmx9ZnVuY3Rpb24gcGFyc2VTdHJpbmdUb1VSTE9iamVjdCh1cmwsdXJsQmFzZSl7bGV0IGlzUmVsYXRpdmU9MD49dXJsLmluZGV4T2YoIjovLyIpJiYwIT09dXJsLmluZGV4T2YoIi8vIiksYmFzZT11cmxCYXNlPz8oaXNSZWxhdGl2ZT8idGhpc21lc3NhZ2U6LyI6dm9pZCAwKTt0cnl7aWYoImNhblBhcnNlImluIFVSTCYmIVVSTC5jYW5QYXJzZSh1cmwsYmFzZSkpcmV0dXJuO2xldCBmdWxsVXJsT2JqZWN0PW5ldyBVUkwodXJsLGJhc2UpO2lmKGlzUmVsYXRpdmUpcmV0dXJue2lzUmVsYXRpdmUscGF0aG5hbWU6ZnVsbFVybE9iamVjdC5wYXRobmFtZSxzZWFyY2g6ZnVsbFVybE9iamVjdC5zZWFyY2gsaGFzaDpmdWxsVXJsT2JqZWN0Lmhhc2h9O3JldHVybiBmdWxsVXJsT2JqZWN0fWNhdGNoe319ZnVuY3Rpb24gZ2V0U2FuaXRpemVkVXJsU3RyaW5nRnJvbVVybE9iamVjdCh1cmwpe2lmKGlzVVJMT2JqZWN0UmVsYXRpdmUodXJsKSlyZXR1cm4gdXJsLnBhdGhuYW1lO2xldCBuZXdVcmw9bmV3IFVSTCh1cmwpO3JldHVybiBuZXdVcmwuc2VhcmNoPSIiLG5ld1VybC5oYXNoPSIiLFsiODAiLCI0NDMiXS5pbmNsdWRlcyhuZXdVcmwucG9ydCkmJihuZXdVcmwucG9ydD0iIiksbmV3VXJsLnBhc3N3b3JkJiYobmV3VXJsLnBhc3N3b3JkPSIlZmlsdGVyZWQlIiksbmV3VXJsLnVzZXJuYW1lJiYobmV3VXJsLnVzZXJuYW1lPSIlZmlsdGVyZWQlIiksbmV3VXJsLnRvU3RyaW5nKCl9ZnVuY3Rpb24gcGFyc2VVcmwodXJsKXtpZighdXJsKXJldHVybnt9O2xldCBtYXRjaD11cmwubWF0Y2goL14oKFteOi8/I10rKTopPyhcL1wvKFteLz8jXSopKT8oW14/I10qKShcPyhbXiNdKikpPygjKC4qKSk/JC8pO2lmKCFtYXRjaClyZXR1cm57fTtsZXQgcXVlcnk9bWF0Y2hbNl18fCIiLGZyYWdtZW50PW1hdGNoWzhdfHwiIjtyZXR1cm57aG9zdDptYXRjaFs0XSxwYXRoOm1hdGNoWzVdLHByb3RvY29sOm1hdGNoWzJdLHNlYXJjaDpxdWVyeSxoYXNoOmZyYWdtZW50LHJlbGF0aXZlOm1hdGNoWzVdK3F1ZXJ5K2ZyYWdtZW50fX1mdW5jdGlvbiBzdHJpcFVybFF1ZXJ5QW5kRnJhZ21lbnQodXJsUGF0aCl7cmV0dXJuIHVybFBhdGguc3BsaXQoL1s/I10vLDEpWzBdfV9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtEUjpmdW5jdGlvbigpe3JldHVybiBpc1VSTE9iamVjdFJlbGF0aXZlfSxRcTpmdW5jdGlvbigpe3JldHVybiBnZXRTYW5pdGl6ZWRVcmxTdHJpbmdGcm9tVXJsT2JqZWN0fSxlbjpmdW5jdGlvbigpe3JldHVybiBwYXJzZVVybH0sZ2s6ZnVuY3Rpb24oKXtyZXR1cm4gcGFyc2VTdHJpbmdUb1VSTE9iamVjdH0scnQ6ZnVuY3Rpb24oKXtyZXR1cm4gc3RyaXBVcmxRdWVyeUFuZEZyYWdtZW50fX0pfSwzOTQ5NDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7SjpmdW5jdGlvbigpe3JldHVybiBTREtfVkVSU0lPTn19KTtsZXQgU0RLX1ZFUlNJT049IjEwLjMyLjEifSw1MTU5NzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7bjpmdW5jdGlvbigpe3JldHVybiBHTE9CQUxfT0JKfX0pO2xldCBHTE9CQUxfT0JKPWdsb2JhbFRoaXN9LDkyOTE4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2xldCBvcmlnaW5hbEZ1bmN0aW9uVG9TdHJpbmcsZGVib3VuY2VUaW1lcklELGxhc3RDYXB0dXJlZEV2ZW50VHlwZSxsYXN0Q2FwdHVyZWRFdmVudFRhcmdldElkO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtTMW46ZnVuY3Rpb24oKXtyZXR1cm4gY2xpZW50X2luaXR9fSk7dmFyIHdvcmxkd2lkZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDUxNTk3KSxkZWJ1Z19sb2dnZXI9X193ZWJwYWNrX3JlcXVpcmVfXyg1ODI0KSx2ZXJzaW9uPV9fd2VicGFja19yZXF1aXJlX18oMzk0OTQpO2Z1bmN0aW9uIGFwcGx5U2RrTWV0YWRhdGEob3B0aW9ucyxuYW1lLG5hbWVzPVtuYW1lXSxzb3VyY2U9Im5wbSIpe2xldCBtZXRhZGF0YT1vcHRpb25zLl9tZXRhZGF0YXx8e307bWV0YWRhdGEuc2RrfHwobWV0YWRhdGEuc2RrPXtuYW1lOmBzZW50cnkuamF2YXNjcmlwdC4ke25hbWV9YCxwYWNrYWdlczpuYW1lcy5tYXAobmFtZT0+KHtuYW1lOmAke3NvdXJjZX06QHNlbnRyeS8ke25hbWV9YCx2ZXJzaW9uOnZlcnNpb24uSn0pKSx2ZXJzaW9uOnZlcnNpb24uSn0pLG9wdGlvbnMuX21ldGFkYXRhPW1ldGFkYXRhfXZhciBlc21fZXhwb3J0cz1fX3dlYnBhY2tfcmVxdWlyZV9fKDM5NDI0KSxjdXJyZW50U2NvcGVzPV9fd2VicGFja19yZXF1aXJlX18oNzMwNzYpLGRlYnVnX2J1aWxkPV9fd2VicGFja19yZXF1aXJlX18oOTQyMjMpO2xldCBpbnN0YWxsZWRJbnRlZ3JhdGlvbnM9W107ZnVuY3Rpb24gYWZ0ZXJTZXR1cEludGVncmF0aW9ucyhjbGllbnQsaW50ZWdyYXRpb25zKXtmb3IobGV0IGludGVncmF0aW9uIG9mIGludGVncmF0aW9ucylpbnRlZ3JhdGlvbj8uYWZ0ZXJBbGxTZXR1cCYmaW50ZWdyYXRpb24uYWZ0ZXJBbGxTZXR1cChjbGllbnQpfWZ1bmN0aW9uIHNldHVwSW50ZWdyYXRpb24oY2xpZW50LGludGVncmF0aW9uLGludGVncmF0aW9uSW5kZXgpe2lmKGludGVncmF0aW9uSW5kZXhbaW50ZWdyYXRpb24ubmFtZV0pe2RlYnVnX2J1aWxkLlgmJmRlYnVnX2xvZ2dlci5mRi5sb2coYEludGVncmF0aW9uIHNraXBwZWQgYmVjYXVzZSBpdCB3YXMgYWxyZWFkeSBpbnN0YWxsZWQ6ICR7aW50ZWdyYXRpb24ubmFtZX1gKTtyZXR1cm59aWYoaW50ZWdyYXRpb25JbmRleFtpbnRlZ3JhdGlvbi5uYW1lXT1pbnRlZ3JhdGlvbixpbnN0YWxsZWRJbnRlZ3JhdGlvbnMuaW5jbHVkZXMoaW50ZWdyYXRpb24ubmFtZSl8fCJmdW5jdGlvbiIhPXR5cGVvZiBpbnRlZ3JhdGlvbi5zZXR1cE9uY2V8fChpbnRlZ3JhdGlvbi5zZXR1cE9uY2UoKSxpbnN0YWxsZWRJbnRlZ3JhdGlvbnMucHVzaChpbnRlZ3JhdGlvbi5uYW1lKSksaW50ZWdyYXRpb24uc2V0dXAmJiJmdW5jdGlvbiI9PXR5cGVvZiBpbnRlZ3JhdGlvbi5zZXR1cCYmaW50ZWdyYXRpb24uc2V0dXAoY2xpZW50KSwiZnVuY3Rpb24iPT10eXBlb2YgaW50ZWdyYXRpb24ucHJlcHJvY2Vzc0V2ZW50KXtsZXQgY2FsbGJhY2s9aW50ZWdyYXRpb24ucHJlcHJvY2Vzc0V2ZW50LmJpbmQoaW50ZWdyYXRpb24pO2NsaWVudC5vbigicHJlcHJvY2Vzc0V2ZW50IiwoZXZlbnQsaGludCk9PmNhbGxiYWNrKGV2ZW50LGhpbnQsY2xpZW50KSl9aWYoImZ1bmN0aW9uIj09dHlwZW9mIGludGVncmF0aW9uLnByb2Nlc3NFdmVudCl7bGV0IGNhbGxiYWNrMT1pbnRlZ3JhdGlvbi5wcm9jZXNzRXZlbnQuYmluZChpbnRlZ3JhdGlvbikscHJvY2Vzc29yPU9iamVjdC5hc3NpZ24oKGV2ZW50LGhpbnQpPT5jYWxsYmFjazEoZXZlbnQsaGludCxjbGllbnQpLHtpZDppbnRlZ3JhdGlvbi5uYW1lfSk7Y2xpZW50LmFkZEV2ZW50UHJvY2Vzc29yKHByb2Nlc3Nvcil9ZGVidWdfYnVpbGQuWCYmZGVidWdfbG9nZ2VyLmZGLmxvZyhgSW50ZWdyYXRpb24gaW5zdGFsbGVkOiAke2ludGVncmF0aW9uLm5hbWV9YCl9ZnVuY3Rpb24gZ2V0UG9zc2libGVFdmVudE1lc3NhZ2VzKGV2ZW50KXtsZXQgcG9zc2libGVNZXNzYWdlcz1bXTtldmVudC5tZXNzYWdlJiZwb3NzaWJsZU1lc3NhZ2VzLnB1c2goZXZlbnQubWVzc2FnZSk7dHJ5e2xldCBsYXN0RXhjZXB0aW9uPWV2ZW50LmV4Y2VwdGlvbi52YWx1ZXNbZXZlbnQuZXhjZXB0aW9uLnZhbHVlcy5sZW5ndGgtMV07bGFzdEV4Y2VwdGlvbj8udmFsdWUmJihwb3NzaWJsZU1lc3NhZ2VzLnB1c2gobGFzdEV4Y2VwdGlvbi52YWx1ZSksbGFzdEV4Y2VwdGlvbi50eXBlJiZwb3NzaWJsZU1lc3NhZ2VzLnB1c2goYCR7bGFzdEV4Y2VwdGlvbi50eXBlfTogJHtsYXN0RXhjZXB0aW9uLnZhbHVlfWApKX1jYXRjaHt9cmV0dXJuIHBvc3NpYmxlTWVzc2FnZXN9dmFyIG1pc2M9X193ZWJwYWNrX3JlcXVpcmVfXygzNDE1Niksc3RyaW5nPV9fd2VicGFja19yZXF1aXJlX18oNTczNjApO2xldCBERUZBVUxUX0lHTk9SRV9FUlJPUlM9Wy9eU2NyaXB0IGVycm9yXC4/JC8sL15KYXZhc2NyaXB0IGVycm9yOiBTY3JpcHQgZXJyb3JcLj8gb24gbGluZSAwJC8sL15SZXNpemVPYnNlcnZlciBsb29wIGNvbXBsZXRlZCB3aXRoIHVuZGVsaXZlcmVkIG5vdGlmaWNhdGlvbnMuJC8sL15DYW5ub3QgcmVkZWZpbmUgcHJvcGVydHk6IGdvb2dsZXRhZyQvLC9eQ2FuJ3QgZmluZCB2YXJpYWJsZTogZ21vJC8sL151bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCBcKGV2YWx1YXRpbmcgJ2FcLltBLVpdJ1wpJC8sJ2NhblwndCByZWRlZmluZSBub24tY29uZmlndXJhYmxlIHByb3BlcnR5ICJzb2xhbmEiJywidnYoKS5nZXRSZXN0cmljdGlvbnMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAndnYoKS5nZXRSZXN0cmljdGlvbnMoMSxhKScsICd2digpLmdldFJlc3RyaWN0aW9ucycgaXMgdW5kZWZpbmVkKSIsIkNhbid0IGZpbmQgdmFyaWFibGU6IF9BdXRvZmlsbENhbGxiYWNrSGFuZGxlciIsL15Ob24tRXJyb3IgcHJvbWlzZSByZWplY3Rpb24gY2FwdHVyZWQgd2l0aCB2YWx1ZTogT2JqZWN0IE5vdCBGb3VuZCBNYXRjaGluZyBJZDpcZCssIE1ldGhvZE5hbWU6c2ltdWxhdGVFdmVudCwgUGFyYW1Db3VudDpcZCskLywvXkphdmEgZXhjZXB0aW9uIHdhcyByYWlzZWQgZHVyaW5nIG1ldGhvZCBpbnZvY2F0aW9uJC9dLGV2ZW50RmlsdGVyc0ludGVncmF0aW9uPShvcHRpb25zPXt9KT0+e2xldCBtZXJnZWRPcHRpb25zO3JldHVybntuYW1lOiJFdmVudEZpbHRlcnMiLHNldHVwKGNsaWVudCl7bGV0IGNsaWVudE9wdGlvbnM9Y2xpZW50LmdldE9wdGlvbnMoKTttZXJnZWRPcHRpb25zPV9tZXJnZU9wdGlvbnMob3B0aW9ucyxjbGllbnRPcHRpb25zKX0scHJvY2Vzc0V2ZW50KGV2ZW50LF9oaW50LGNsaWVudCl7aWYoIW1lcmdlZE9wdGlvbnMpe2xldCBjbGllbnRPcHRpb25zPWNsaWVudC5nZXRPcHRpb25zKCk7bWVyZ2VkT3B0aW9ucz1fbWVyZ2VPcHRpb25zKG9wdGlvbnMsY2xpZW50T3B0aW9ucyl9cmV0dXJuIWZ1bmN0aW9uKGV2ZW50LG9wdGlvbnMpe2lmKGV2ZW50LnR5cGUpe2lmKCJ0cmFuc2FjdGlvbiI9PT1ldmVudC50eXBlJiZmdW5jdGlvbihldmVudCxpZ25vcmVUcmFuc2FjdGlvbnMpe2lmKCFpZ25vcmVUcmFuc2FjdGlvbnM/Lmxlbmd0aClyZXR1cm4hMTtsZXQgbmFtZT1ldmVudC50cmFuc2FjdGlvbjtyZXR1cm4hIW5hbWUmJigwLHN0cmluZy5VMCkobmFtZSxpZ25vcmVUcmFuc2FjdGlvbnMpfShldmVudCxvcHRpb25zLmlnbm9yZVRyYW5zYWN0aW9ucykpcmV0dXJuIGRlYnVnX2J1aWxkLlgmJmRlYnVnX2xvZ2dlci5mRi53YXJuKGBFdmVudCBkcm9wcGVkIGR1ZSB0byBiZWluZyBtYXRjaGVkIGJ5IFxgaWdub3JlVHJhbnNhY3Rpb25zXGAgb3B0aW9uLgpFdmVudDogJHsoMCxtaXNjLmpIKShldmVudCl9YCksITB9ZWxzZXt2YXIgaWdub3JlRXJyb3JzO2lmKChpZ25vcmVFcnJvcnM9b3B0aW9ucy5pZ25vcmVFcnJvcnMpPy5sZW5ndGgmJmdldFBvc3NpYmxlRXZlbnRNZXNzYWdlcyhldmVudCkuc29tZShtZXNzYWdlPT4oMCxzdHJpbmcuVTApKG1lc3NhZ2UsaWdub3JlRXJyb3JzKSkpcmV0dXJuIGRlYnVnX2J1aWxkLlgmJmRlYnVnX2xvZ2dlci5mRi53YXJuKGBFdmVudCBkcm9wcGVkIGR1ZSB0byBiZWluZyBtYXRjaGVkIGJ5IFxgaWdub3JlRXJyb3JzXGAgb3B0aW9uLgpFdmVudDogJHsoMCxtaXNjLmpIKShldmVudCl9YCksITA7aWYoZXZlbnQuZXhjZXB0aW9uPy52YWx1ZXM/Lmxlbmd0aCYmIWV2ZW50Lm1lc3NhZ2UmJiFldmVudC5leGNlcHRpb24udmFsdWVzLnNvbWUodmFsdWU9PnZhbHVlLnN0YWNrdHJhY2V8fHZhbHVlLnR5cGUmJiJFcnJvciIhPT12YWx1ZS50eXBlfHx2YWx1ZS52YWx1ZSkpcmV0dXJuIGRlYnVnX2J1aWxkLlgmJmRlYnVnX2xvZ2dlci5mRi53YXJuKGBFdmVudCBkcm9wcGVkIGR1ZSB0byBub3QgaGF2aW5nIGFuIGVycm9yIG1lc3NhZ2UsIGVycm9yIHR5cGUgb3Igc3RhY2t0cmFjZS4KRXZlbnQ6ICR7KDAsbWlzYy5qSCkoZXZlbnQpfWApLCEwO2lmKGZ1bmN0aW9uKGV2ZW50LGRlbnlVcmxzKXtpZighZGVueVVybHM/Lmxlbmd0aClyZXR1cm4hMTtsZXQgdXJsPV9nZXRFdmVudEZpbHRlclVybChldmVudCk7cmV0dXJuISF1cmwmJigwLHN0cmluZy5VMCkodXJsLGRlbnlVcmxzKX0oZXZlbnQsb3B0aW9ucy5kZW55VXJscykpcmV0dXJuIGRlYnVnX2J1aWxkLlgmJmRlYnVnX2xvZ2dlci5mRi53YXJuKGBFdmVudCBkcm9wcGVkIGR1ZSB0byBiZWluZyBtYXRjaGVkIGJ5IFxgZGVueVVybHNcYCBvcHRpb24uCkV2ZW50OiAkeygwLG1pc2MuakgpKGV2ZW50KX0uClVybDogJHtfZ2V0RXZlbnRGaWx0ZXJVcmwoZXZlbnQpfWApLCEwO2lmKCFmdW5jdGlvbihldmVudCxhbGxvd1VybHMpe2lmKCFhbGxvd1VybHM/Lmxlbmd0aClyZXR1cm4hMDtsZXQgdXJsPV9nZXRFdmVudEZpbHRlclVybChldmVudCk7cmV0dXJuIXVybHx8KDAsc3RyaW5nLlUwKSh1cmwsYWxsb3dVcmxzKX0oZXZlbnQsb3B0aW9ucy5hbGxvd1VybHMpKXJldHVybiBkZWJ1Z19idWlsZC5YJiZkZWJ1Z19sb2dnZXIuZkYud2FybihgRXZlbnQgZHJvcHBlZCBkdWUgdG8gbm90IGJlaW5nIG1hdGNoZWQgYnkgXGBhbGxvd1VybHNcYCBvcHRpb24uCkV2ZW50OiAkeygwLG1pc2MuakgpKGV2ZW50KX0uClVybDogJHtfZ2V0RXZlbnRGaWx0ZXJVcmwoZXZlbnQpfWApLCEwfXJldHVybiExfShldmVudCxtZXJnZWRPcHRpb25zKT9ldmVudDpudWxsfX19LGluYm91bmRGaWx0ZXJzSW50ZWdyYXRpb249KG9wdGlvbnM9e30pPT4oey4uLmV2ZW50RmlsdGVyc0ludGVncmF0aW9uKG9wdGlvbnMpLG5hbWU6IkluYm91bmRGaWx0ZXJzIn0pO2Z1bmN0aW9uIF9tZXJnZU9wdGlvbnMoaW50ZXJuYWxPcHRpb25zPXt9LGNsaWVudE9wdGlvbnM9e30pe3JldHVybnthbGxvd1VybHM6Wy4uLmludGVybmFsT3B0aW9ucy5hbGxvd1VybHN8fFtdLC4uLmNsaWVudE9wdGlvbnMuYWxsb3dVcmxzfHxbXV0sZGVueVVybHM6Wy4uLmludGVybmFsT3B0aW9ucy5kZW55VXJsc3x8W10sLi4uY2xpZW50T3B0aW9ucy5kZW55VXJsc3x8W11dLGlnbm9yZUVycm9yczpbLi4uaW50ZXJuYWxPcHRpb25zLmlnbm9yZUVycm9yc3x8W10sLi4uY2xpZW50T3B0aW9ucy5pZ25vcmVFcnJvcnN8fFtdLC4uLmludGVybmFsT3B0aW9ucy5kaXNhYmxlRXJyb3JEZWZhdWx0cz9bXTpERUZBVUxUX0lHTk9SRV9FUlJPUlNdLGlnbm9yZVRyYW5zYWN0aW9uczpbLi4uaW50ZXJuYWxPcHRpb25zLmlnbm9yZVRyYW5zYWN0aW9uc3x8W10sLi4uY2xpZW50T3B0aW9ucy5pZ25vcmVUcmFuc2FjdGlvbnN8fFtdXX19ZnVuY3Rpb24gX2dldEV2ZW50RmlsdGVyVXJsKGV2ZW50KXt0cnl7bGV0IHJvb3RFeGNlcHRpb249Wy4uLmV2ZW50LmV4Y2VwdGlvbj8udmFsdWVzPz9bXV0ucmV2ZXJzZSgpLmZpbmQodmFsdWU9PnZhbHVlLm1lY2hhbmlzbT8ucGFyZW50X2lkPT09dm9pZCAwJiZ2YWx1ZS5zdGFja3RyYWNlPy5mcmFtZXM/Lmxlbmd0aCksZnJhbWVzPXJvb3RFeGNlcHRpb24/LnN0YWNrdHJhY2U/LmZyYW1lcztyZXR1cm4gZnJhbWVzP2Z1bmN0aW9uKGZyYW1lcz1bXSl7Zm9yKGxldCBpPWZyYW1lcy5sZW5ndGgtMTtpPj0wO2ktLSl7bGV0IGZyYW1lPWZyYW1lc1tpXTtpZihmcmFtZSYmIjxhbm9ueW1vdXM+IiE9PWZyYW1lLmZpbGVuYW1lJiYiW25hdGl2ZSBjb2RlXSIhPT1mcmFtZS5maWxlbmFtZSlyZXR1cm4gZnJhbWUuZmlsZW5hbWV8fG51bGx9cmV0dXJuIG51bGx9KGZyYW1lcyk6bnVsbH1jYXRjaHtyZXR1cm4gZGVidWdfYnVpbGQuWCYmZGVidWdfbG9nZ2VyLmZGLmVycm9yKGBDYW5ub3QgZXh0cmFjdCB1cmwgZm9yIGV2ZW50ICR7KDAsbWlzYy5qSCkoZXZlbnQpfWApLG51bGx9fXZhciBvYmplY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg5MzgyMCk7bGV0IFNFVFVQX0NMSUVOVFM9bmV3IFdlYWtNYXAsX2Z1bmN0aW9uVG9TdHJpbmdJbnRlZ3JhdGlvbj0oKT0+KHtuYW1lOiJGdW5jdGlvblRvU3RyaW5nIixzZXR1cE9uY2UoKXtvcmlnaW5hbEZ1bmN0aW9uVG9TdHJpbmc9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO3RyeXtGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oLi4uYXJncyl7bGV0IG9yaWdpbmFsRnVuY3Rpb249KDAsb2JqZWN0LkhLKSh0aGlzKSxjb250ZXh0PVNFVFVQX0NMSUVOVFMuaGFzKCgwLGN1cnJlbnRTY29wZXMuczMpKCkpJiZ2b2lkIDAhPT1vcmlnaW5hbEZ1bmN0aW9uP29yaWdpbmFsRnVuY3Rpb246dGhpcztyZXR1cm4gb3JpZ2luYWxGdW5jdGlvblRvU3RyaW5nLmFwcGx5KGNvbnRleHQsYXJncyl9fWNhdGNoe319LHNldHVwKGNsaWVudCl7U0VUVVBfQ0xJRU5UUy5zZXQoY2xpZW50LCEwKX19KTt2YXIgc3RhY2t0cmFjZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk5NjAzKTtsZXQgX2RlZHVwZUludGVncmF0aW9uPSgpPT57bGV0IHByZXZpb3VzRXZlbnQ7cmV0dXJue25hbWU6IkRlZHVwZSIscHJvY2Vzc0V2ZW50KGN1cnJlbnRFdmVudCl7aWYoY3VycmVudEV2ZW50LnR5cGUpcmV0dXJuIGN1cnJlbnRFdmVudDt0cnl7dmFyIHByZXZpb3VzRXZlbnQxO2lmKChwcmV2aW91c0V2ZW50MT1wcmV2aW91c0V2ZW50KSYmKGZ1bmN0aW9uKGN1cnJlbnRFdmVudCxwcmV2aW91c0V2ZW50KXtsZXQgY3VycmVudE1lc3NhZ2U9Y3VycmVudEV2ZW50Lm1lc3NhZ2UscHJldmlvdXNNZXNzYWdlPXByZXZpb3VzRXZlbnQubWVzc2FnZTtyZXR1cm4hISgoY3VycmVudE1lc3NhZ2V8fHByZXZpb3VzTWVzc2FnZSkmJighY3VycmVudE1lc3NhZ2V8fHByZXZpb3VzTWVzc2FnZSkmJihjdXJyZW50TWVzc2FnZXx8IXByZXZpb3VzTWVzc2FnZSkmJmN1cnJlbnRNZXNzYWdlPT09cHJldmlvdXNNZXNzYWdlJiZfaXNTYW1lRmluZ2VycHJpbnQoY3VycmVudEV2ZW50LHByZXZpb3VzRXZlbnQpJiZfaXNTYW1lU3RhY2t0cmFjZShjdXJyZW50RXZlbnQscHJldmlvdXNFdmVudCkpfShjdXJyZW50RXZlbnQscHJldmlvdXNFdmVudDEpfHxmdW5jdGlvbihjdXJyZW50RXZlbnQscHJldmlvdXNFdmVudCl7bGV0IHByZXZpb3VzRXhjZXB0aW9uPV9nZXRFeGNlcHRpb25Gcm9tRXZlbnQocHJldmlvdXNFdmVudCksY3VycmVudEV4Y2VwdGlvbj1fZ2V0RXhjZXB0aW9uRnJvbUV2ZW50KGN1cnJlbnRFdmVudCk7cmV0dXJuISEocHJldmlvdXNFeGNlcHRpb24mJmN1cnJlbnRFeGNlcHRpb24mJnByZXZpb3VzRXhjZXB0aW9uLnR5cGU9PT1jdXJyZW50RXhjZXB0aW9uLnR5cGUmJnByZXZpb3VzRXhjZXB0aW9uLnZhbHVlPT09Y3VycmVudEV4Y2VwdGlvbi52YWx1ZSYmX2lzU2FtZUZpbmdlcnByaW50KGN1cnJlbnRFdmVudCxwcmV2aW91c0V2ZW50KSYmX2lzU2FtZVN0YWNrdHJhY2UoY3VycmVudEV2ZW50LHByZXZpb3VzRXZlbnQpKX0oY3VycmVudEV2ZW50LHByZXZpb3VzRXZlbnQxKSkpcmV0dXJuIGRlYnVnX2J1aWxkLlgmJmRlYnVnX2xvZ2dlci5mRi53YXJuKCJFdmVudCBkcm9wcGVkIGR1ZSB0byBiZWluZyBhIGR1cGxpY2F0ZSBvZiBwcmV2aW91c2x5IGNhcHR1cmVkIGV2ZW50LiIpLG51bGx9Y2F0Y2h7fXJldHVybiBwcmV2aW91c0V2ZW50PWN1cnJlbnRFdmVudH19fTtmdW5jdGlvbiBfaXNTYW1lU3RhY2t0cmFjZShjdXJyZW50RXZlbnQscHJldmlvdXNFdmVudCl7bGV0IGN1cnJlbnRGcmFtZXM9KDAsc3RhY2t0cmFjZS5GcikoY3VycmVudEV2ZW50KSxwcmV2aW91c0ZyYW1lcz0oMCxzdGFja3RyYWNlLkZyKShwcmV2aW91c0V2ZW50KTtpZighY3VycmVudEZyYW1lcyYmIXByZXZpb3VzRnJhbWVzKXJldHVybiEwO2lmKGN1cnJlbnRGcmFtZXMmJiFwcmV2aW91c0ZyYW1lc3x8IWN1cnJlbnRGcmFtZXMmJnByZXZpb3VzRnJhbWVzfHxwcmV2aW91c0ZyYW1lcy5sZW5ndGghPT1jdXJyZW50RnJhbWVzLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IGk9MDtpPHByZXZpb3VzRnJhbWVzLmxlbmd0aDtpKyspe2xldCBmcmFtZUE9cHJldmlvdXNGcmFtZXNbaV0sZnJhbWVCPWN1cnJlbnRGcmFtZXNbaV07aWYoZnJhbWVBLmZpbGVuYW1lIT09ZnJhbWVCLmZpbGVuYW1lfHxmcmFtZUEubGluZW5vIT09ZnJhbWVCLmxpbmVub3x8ZnJhbWVBLmNvbG5vIT09ZnJhbWVCLmNvbG5vfHxmcmFtZUEuZnVuY3Rpb24hPT1mcmFtZUIuZnVuY3Rpb24pcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gX2lzU2FtZUZpbmdlcnByaW50KGN1cnJlbnRFdmVudCxwcmV2aW91c0V2ZW50KXtsZXQgY3VycmVudEZpbmdlcnByaW50PWN1cnJlbnRFdmVudC5maW5nZXJwcmludCxwcmV2aW91c0ZpbmdlcnByaW50PXByZXZpb3VzRXZlbnQuZmluZ2VycHJpbnQ7aWYoIWN1cnJlbnRGaW5nZXJwcmludCYmIXByZXZpb3VzRmluZ2VycHJpbnQpcmV0dXJuITA7aWYoY3VycmVudEZpbmdlcnByaW50JiYhcHJldmlvdXNGaW5nZXJwcmludHx8IWN1cnJlbnRGaW5nZXJwcmludCYmcHJldmlvdXNGaW5nZXJwcmludClyZXR1cm4hMTt0cnl7cmV0dXJuIShjdXJyZW50RmluZ2VycHJpbnQuam9pbigiIikhPT1wcmV2aW91c0ZpbmdlcnByaW50LmpvaW4oIiIpKX1jYXRjaHtyZXR1cm4hMX19ZnVuY3Rpb24gX2dldEV4Y2VwdGlvbkZyb21FdmVudChldmVudCl7cmV0dXJuIGV2ZW50LmV4Y2VwdGlvbj8udmFsdWVzPy5bMF19dmFyIGNvbnN0YW50cz1fX3dlYnBhY2tfcmVxdWlyZV9fKDczMjQzKSxlbnZlbG9wZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDExNzkzKSxjYXJyaWVyPV9fd2VicGFja19yZXF1aXJlX18oMTM1MzMpLHV0aWxzX2Rzbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDUyNjM3KSx1dGlsc19lbnZlbG9wZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDY0MDA0KTtmdW5jdGlvbiBfSU5URVJOQUxfZmx1c2hMb2dzQnVmZmVyKGNsaWVudCxtYXliZUxvZ0J1ZmZlcil7bGV0IGxvZ0J1ZmZlcj1tYXliZUxvZ0J1ZmZlcj8/X2dldEJ1ZmZlck1hcCgpLmdldChjbGllbnQpPz9bXTtpZigwPT09bG9nQnVmZmVyLmxlbmd0aClyZXR1cm47bGV0IGNsaWVudE9wdGlvbnM9Y2xpZW50LmdldE9wdGlvbnMoKSxlbnZlbG9wZT1mdW5jdGlvbihsb2dzLG1ldGFkYXRhLHR1bm5lbCxkc24pe2xldCBoZWFkZXJzPXt9O3JldHVybiBtZXRhZGF0YT8uc2RrJiYoaGVhZGVycy5zZGs9e25hbWU6bWV0YWRhdGEuc2RrLm5hbWUsdmVyc2lvbjptZXRhZGF0YS5zZGsudmVyc2lvbn0pLHR1bm5lbCYmZHNuJiYoaGVhZGVycy5kc249KDAsdXRpbHNfZHNuLlJBKShkc24pKSwoMCx1dGlsc19lbnZlbG9wZS5KZCkoaGVhZGVycyxbW3t0eXBlOiJsb2ciLGl0ZW1fY291bnQ6bG9ncy5sZW5ndGgsY29udGVudF90eXBlOiJhcHBsaWNhdGlvbi92bmQuc2VudHJ5Lml0ZW1zLmxvZytqc29uIn0se2l0ZW1zOmxvZ3N9XV0pfShsb2dCdWZmZXIsY2xpZW50T3B0aW9ucy5fbWV0YWRhdGEsY2xpZW50T3B0aW9ucy50dW5uZWwsY2xpZW50LmdldERzbigpKTtfZ2V0QnVmZmVyTWFwKCkuc2V0KGNsaWVudCxbXSksY2xpZW50LmVtaXQoImZsdXNoTG9ncyIpLGNsaWVudC5zZW5kRW52ZWxvcGUoZW52ZWxvcGUpfWZ1bmN0aW9uIF9nZXRCdWZmZXJNYXAoKXtyZXR1cm4oMCxjYXJyaWVyLllPKSgiY2xpZW50VG9Mb2dCdWZmZXJNYXAiLCgpPT5uZXcgV2Vha01hcCl9ZnVuY3Rpb24gX0lOVEVSTkFMX2ZsdXNoTWV0cmljc0J1ZmZlcihjbGllbnQsbWF5YmVNZXRyaWNCdWZmZXIpe2xldCBtZXRyaWNCdWZmZXI9bWF5YmVNZXRyaWNCdWZmZXI/P2ludGVybmFsX2dldEJ1ZmZlck1hcCgpLmdldChjbGllbnQpPz9bXTtpZigwPT09bWV0cmljQnVmZmVyLmxlbmd0aClyZXR1cm47bGV0IGNsaWVudE9wdGlvbnM9Y2xpZW50LmdldE9wdGlvbnMoKSxlbnZlbG9wZT1mdW5jdGlvbihtZXRyaWNzLG1ldGFkYXRhLHR1bm5lbCxkc24pe2xldCBoZWFkZXJzPXt9O3JldHVybiBtZXRhZGF0YT8uc2RrJiYoaGVhZGVycy5zZGs9e25hbWU6bWV0YWRhdGEuc2RrLm5hbWUsdmVyc2lvbjptZXRhZGF0YS5zZGsudmVyc2lvbn0pLHR1bm5lbCYmZHNuJiYoaGVhZGVycy5kc249KDAsdXRpbHNfZHNuLlJBKShkc24pKSwoMCx1dGlsc19lbnZlbG9wZS5KZCkoaGVhZGVycyxbW3t0eXBlOiJ0cmFjZV9tZXRyaWMiLGl0ZW1fY291bnQ6bWV0cmljcy5sZW5ndGgsY29udGVudF90eXBlOiJhcHBsaWNhdGlvbi92bmQuc2VudHJ5Lml0ZW1zLnRyYWNlLW1ldHJpYytqc29uIn0se2l0ZW1zOm1ldHJpY3N9XV0pfShtZXRyaWNCdWZmZXIsY2xpZW50T3B0aW9ucy5fbWV0YWRhdGEsY2xpZW50T3B0aW9ucy50dW5uZWwsY2xpZW50LmdldERzbigpKTtpbnRlcm5hbF9nZXRCdWZmZXJNYXAoKS5zZXQoY2xpZW50LFtdKSxjbGllbnQuZW1pdCgiZmx1c2hNZXRyaWNzIiksY2xpZW50LnNlbmRFbnZlbG9wZShlbnZlbG9wZSl9ZnVuY3Rpb24gaW50ZXJuYWxfZ2V0QnVmZmVyTWFwKCl7cmV0dXJuKDAsY2Fycmllci5ZTykoImNsaWVudFRvTWV0cmljQnVmZmVyTWFwIiwoKT0+bmV3IFdlYWtNYXApfXZhciBlc21fc2Vzc2lvbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDEwMDQyKSx0cmFjaW5nX2R5bmFtaWNTYW1wbGluZ0NvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg3MjEyMyksc3luY3Byb21pc2U9X193ZWJwYWNrX3JlcXVpcmVfXyg4MDE1Nyk7bGV0IFNFTlRSWV9CVUZGRVJfRlVMTF9FUlJPUj1TeW1ib2wuZm9yKCJTZW50cnlCdWZmZXJGdWxsRXJyb3IiKTtmdW5jdGlvbiBtYWtlUHJvbWlzZUJ1ZmZlcihsaW1pdD0xMDApe2xldCBidWZmZXI9bmV3IFNldDtyZXR1cm57Z2V0ICQoKXtyZXR1cm4gQXJyYXkuZnJvbShidWZmZXIpfSxhZGQ6ZnVuY3Rpb24odGFza1Byb2R1Y2VyKXtpZighKGJ1ZmZlci5zaXplPGxpbWl0KSlyZXR1cm4oMCxzeW5jcHJvbWlzZS4kMikoU0VOVFJZX0JVRkZFUl9GVUxMX0VSUk9SKTtsZXQgdGFzaz10YXNrUHJvZHVjZXIoKTtyZXR1cm4gYnVmZmVyLmFkZCh0YXNrKSx0YXNrLnRoZW4oKCk9PntidWZmZXIuZGVsZXRlKHRhc2spfSwoKT0+e2J1ZmZlci5kZWxldGUodGFzayl9KSx0YXNrfSxkcmFpbjpmdW5jdGlvbih0aW1lb3V0KXtpZighYnVmZmVyLnNpemUpcmV0dXJuKDAsc3luY3Byb21pc2UuV0QpKCEwKTtsZXQgZHJhaW5Qcm9taXNlPVByb21pc2UuYWxsU2V0dGxlZChBcnJheS5mcm9tKGJ1ZmZlcikpLnRoZW4oKCk9PiEwKTtpZighdGltZW91dClyZXR1cm4gZHJhaW5Qcm9taXNlO2xldCBwcm9taXNlcz1bZHJhaW5Qcm9taXNlLG5ldyBQcm9taXNlKHJlc29sdmU9PnNldFRpbWVvdXQoKCk9PnJlc29sdmUoITEpLHRpbWVvdXQpKV07cmV0dXJuIFByb21pc2UucmFjZShwcm9taXNlcyl9fX12YXIgdGltZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDkwNzcyKSxpcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQxNzQ1KSxtZXJnZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDM2MTMpLHBhcnNlU2FtcGxlUmF0ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDc5NzY5KSxwcmVwYXJlRXZlbnQ9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzEyKSxzaG91bGRfaWdub3JlX3NwYW49X193ZWJwYWNrX3JlcXVpcmVfXyg5MTgxOSksc3BhblV0aWxzPV9fd2VicGFja19yZXF1aXJlX18oODE1ODUpLHNlbWFudGljQXR0cmlidXRlcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDMxMjE4KTtsZXQgQUxSRUFEWV9TRUVOX0VSUk9SPSJOb3QgY2FwdHVyaW5nIGV4Y2VwdGlvbiBiZWNhdXNlIGl0J3MgYWxyZWFkeSBiZWVuIGNhcHR1cmVkLiIsTUlTU0lOR19SRUxFQVNFX0ZPUl9TRVNTSU9OX0VSUk9SPSJEaXNjYXJkZWQgc2Vzc2lvbiBiZWNhdXNlIG9mIG1pc3Npbmcgb3Igbm9uLXN0cmluZyByZWxlYXNlIixJTlRFUk5BTF9FUlJPUl9TWU1CT0w9U3ltYm9sLmZvcigiU2VudHJ5SW50ZXJuYWxFcnJvciIpLERPX05PVF9TRU5EX0VWRU5UX1NZTUJPTD1TeW1ib2wuZm9yKCJTZW50cnlEb05vdFNlbmRFdmVudEVycm9yIik7ZnVuY3Rpb24gX21ha2VJbnRlcm5hbEVycm9yKG1lc3NhZ2Upe3JldHVybnttZXNzYWdlLFtJTlRFUk5BTF9FUlJPUl9TWU1CT0xdOiEwfX1mdW5jdGlvbiBfbWFrZURvTm90U2VuZEV2ZW50RXJyb3IobWVzc2FnZSl7cmV0dXJue21lc3NhZ2UsW0RPX05PVF9TRU5EX0VWRU5UX1NZTUJPTF06ITB9fWZ1bmN0aW9uIF9pc0ludGVybmFsRXJyb3IoZXJyb3Ipe3JldHVybiEhZXJyb3ImJiJvYmplY3QiPT10eXBlb2YgZXJyb3ImJklOVEVSTkFMX0VSUk9SX1NZTUJPTCBpbiBlcnJvcn1mdW5jdGlvbiBfaXNEb05vdFNlbmRFdmVudEVycm9yKGVycm9yKXtyZXR1cm4hIWVycm9yJiYib2JqZWN0Ij09dHlwZW9mIGVycm9yJiZET19OT1RfU0VORF9FVkVOVF9TWU1CT0wgaW4gZXJyb3J9ZnVuY3Rpb24gc2V0dXBXZWlnaHRCYXNlZEZsdXNoaW5nKGNsaWVudCxhZnRlckNhcHR1cmVIb29rLGZsdXNoSG9vayxlc3RpbWF0ZVNpemVGbixmbHVzaEZuKXtsZXQgZmx1c2hUaW1lb3V0LHdlaWdodD0wLGlzVGltZXJBY3RpdmU9ITE7Y2xpZW50Lm9uKGZsdXNoSG9vaywoKT0+e3dlaWdodD0wLGNsZWFyVGltZW91dChmbHVzaFRpbWVvdXQpLGlzVGltZXJBY3RpdmU9ITF9KSxjbGllbnQub24oYWZ0ZXJDYXB0dXJlSG9vayxpdGVtPT57KHdlaWdodCs9ZXN0aW1hdGVTaXplRm4oaXRlbSkpPj04ZTU/Zmx1c2hGbihjbGllbnQpOmlzVGltZXJBY3RpdmV8fChpc1RpbWVyQWN0aXZlPSEwLGZsdXNoVGltZW91dD1zZXRUaW1lb3V0KCgpPT57Zmx1c2hGbihjbGllbnQpfSw1ZTMpKX0pLGNsaWVudC5vbigiZmx1c2giLCgpPT57Zmx1c2hGbihjbGllbnQpfSl9Y2xhc3MgQ2xpZW50e2NvbnN0cnVjdG9yKG9wdGlvbnMpe2lmKHRoaXMuX29wdGlvbnM9b3B0aW9ucyx0aGlzLl9pbnRlZ3JhdGlvbnM9e30sdGhpcy5fbnVtUHJvY2Vzc2luZz0wLHRoaXMuX291dGNvbWVzPXt9LHRoaXMuX2hvb2tzPXt9LHRoaXMuX2V2ZW50UHJvY2Vzc29ycz1bXSx0aGlzLl9wcm9taXNlQnVmZmVyPW1ha2VQcm9taXNlQnVmZmVyKG9wdGlvbnMudHJhbnNwb3J0T3B0aW9ucz8uYnVmZmVyU2l6ZT8/NjQpLG9wdGlvbnMuZHNuP3RoaXMuX2Rzbj0oMCx1dGlsc19kc24udkspKG9wdGlvbnMuZHNuKTpkZWJ1Z19idWlsZC5YJiZkZWJ1Z19sb2dnZXIuZkYud2FybigiTm8gRFNOIHByb3ZpZGVkLCBjbGllbnQgd2lsbCBub3Qgc2VuZCBldmVudHMuIiksdGhpcy5fZHNuKXt2YXIgZHNuLHR1bm5lbCxzZGtJbmZvO2xldCB1cmw9KGRzbj10aGlzLl9kc24sdHVubmVsPW9wdGlvbnMudHVubmVsLHNka0luZm89b3B0aW9ucy5fbWV0YWRhdGE/b3B0aW9ucy5fbWV0YWRhdGEuc2RrOnZvaWQgMCx0dW5uZWx8fGAke2Z1bmN0aW9uKGRzbil7bGV0IHByb3RvY29sPWRzbi5wcm90b2NvbD9gJHtkc24ucHJvdG9jb2x9OmA6IiIscG9ydD1kc24ucG9ydD9gOiR7ZHNuLnBvcnR9YDoiIjtyZXR1cm5gJHtwcm90b2NvbH0vLyR7ZHNuLmhvc3R9JHtwb3J0fSR7ZHNuLnBhdGg/YC8ke2Rzbi5wYXRofWA6IiJ9L2FwaS9gfShkc24pfSR7ZHNuLnByb2plY3RJZH0vZW52ZWxvcGUvPyR7ZnVuY3Rpb24oZHNuLHNka0luZm8pe2xldCBwYXJhbXM9e3NlbnRyeV92ZXJzaW9uOiI3In07cmV0dXJuIGRzbi5wdWJsaWNLZXkmJihwYXJhbXMuc2VudHJ5X2tleT1kc24ucHVibGljS2V5KSxzZGtJbmZvJiYocGFyYW1zLnNlbnRyeV9jbGllbnQ9YCR7c2RrSW5mby5uYW1lfS8ke3Nka0luZm8udmVyc2lvbn1gKSxuZXcgVVJMU2VhcmNoUGFyYW1zKHBhcmFtcykudG9TdHJpbmcoKX0oZHNuLHNka0luZm8pfWApO3RoaXMuX3RyYW5zcG9ydD1vcHRpb25zLnRyYW5zcG9ydCh7dHVubmVsOnRoaXMuX29wdGlvbnMudHVubmVsLHJlY29yZERyb3BwZWRFdmVudDp0aGlzLnJlY29yZERyb3BwZWRFdmVudC5iaW5kKHRoaXMpLC4uLm9wdGlvbnMudHJhbnNwb3J0T3B0aW9ucyx1cmx9KX10aGlzLl9vcHRpb25zLmVuYWJsZUxvZ3M9dGhpcy5fb3B0aW9ucy5lbmFibGVMb2dzPz90aGlzLl9vcHRpb25zLl9leHBlcmltZW50cz8uZW5hYmxlTG9ncyx0aGlzLl9vcHRpb25zLmVuYWJsZUxvZ3MmJnNldHVwV2VpZ2h0QmFzZWRGbHVzaGluZyh0aGlzLCJhZnRlckNhcHR1cmVMb2ciLCJmbHVzaExvZ3MiLGVzdGltYXRlTG9nU2l6ZUluQnl0ZXMsX0lOVEVSTkFMX2ZsdXNoTG9nc0J1ZmZlcik7bGV0IGVuYWJsZU1ldHJpY3M9dGhpcy5fb3B0aW9ucy5lbmFibGVNZXRyaWNzPz90aGlzLl9vcHRpb25zLl9leHBlcmltZW50cz8uZW5hYmxlTWV0cmljcz8/ITA7ZW5hYmxlTWV0cmljcyYmc2V0dXBXZWlnaHRCYXNlZEZsdXNoaW5nKHRoaXMsImFmdGVyQ2FwdHVyZU1ldHJpYyIsImZsdXNoTWV0cmljcyIsZXN0aW1hdGVNZXRyaWNTaXplSW5CeXRlcyxfSU5URVJOQUxfZmx1c2hNZXRyaWNzQnVmZmVyKX1jYXB0dXJlRXhjZXB0aW9uKGV4Y2VwdGlvbixoaW50LHNjb3BlKXtsZXQgZXZlbnRJZD0oMCxtaXNjLkRNKSgpO2lmKCgwLG1pc2MuWU8pKGV4Y2VwdGlvbikpcmV0dXJuIGRlYnVnX2J1aWxkLlgmJmRlYnVnX2xvZ2dlci5mRi5sb2coQUxSRUFEWV9TRUVOX0VSUk9SKSxldmVudElkO2xldCBoaW50V2l0aEV2ZW50SWQ9e2V2ZW50X2lkOmV2ZW50SWQsLi4uaGludH07cmV0dXJuIHRoaXMuX3Byb2Nlc3MoKCk9PnRoaXMuZXZlbnRGcm9tRXhjZXB0aW9uKGV4Y2VwdGlvbixoaW50V2l0aEV2ZW50SWQpLnRoZW4oZXZlbnQ9PnRoaXMuX2NhcHR1cmVFdmVudChldmVudCxoaW50V2l0aEV2ZW50SWQsc2NvcGUpKS50aGVuKHJlcz0+cmVzKSwiZXJyb3IiKSxoaW50V2l0aEV2ZW50SWQuZXZlbnRfaWR9Y2FwdHVyZU1lc3NhZ2UobWVzc2FnZSxsZXZlbCxoaW50LGN1cnJlbnRTY29wZSl7bGV0IGhpbnRXaXRoRXZlbnRJZD17ZXZlbnRfaWQ6KDAsbWlzYy5ETSkoKSwuLi5oaW50fSxldmVudE1lc3NhZ2U9KDAsaXMuTGUpKG1lc3NhZ2UpP21lc3NhZ2U6U3RyaW5nKG1lc3NhZ2UpLGlzTWVzc2FnZT0oMCxpcy5wdCkobWVzc2FnZSkscHJvbWlzZWRFdmVudD1pc01lc3NhZ2U/dGhpcy5ldmVudEZyb21NZXNzYWdlKGV2ZW50TWVzc2FnZSxsZXZlbCxoaW50V2l0aEV2ZW50SWQpOnRoaXMuZXZlbnRGcm9tRXhjZXB0aW9uKG1lc3NhZ2UsaGludFdpdGhFdmVudElkKTtyZXR1cm4gdGhpcy5fcHJvY2VzcygoKT0+cHJvbWlzZWRFdmVudC50aGVuKGV2ZW50PT50aGlzLl9jYXB0dXJlRXZlbnQoZXZlbnQsaGludFdpdGhFdmVudElkLGN1cnJlbnRTY29wZSkpLGlzTWVzc2FnZT8idW5rbm93biI6ImVycm9yIiksaGludFdpdGhFdmVudElkLmV2ZW50X2lkfWNhcHR1cmVFdmVudChldmVudCxoaW50LGN1cnJlbnRTY29wZSl7bGV0IGV2ZW50SWQ9KDAsbWlzYy5ETSkoKTtpZihoaW50Py5vcmlnaW5hbEV4Y2VwdGlvbiYmKDAsbWlzYy5ZTykoaGludC5vcmlnaW5hbEV4Y2VwdGlvbikpcmV0dXJuIGRlYnVnX2J1aWxkLlgmJmRlYnVnX2xvZ2dlci5mRi5sb2coQUxSRUFEWV9TRUVOX0VSUk9SKSxldmVudElkO2xldCBoaW50V2l0aEV2ZW50SWQ9e2V2ZW50X2lkOmV2ZW50SWQsLi4uaGludH0sc2RrUHJvY2Vzc2luZ01ldGFkYXRhPWV2ZW50LnNka1Byb2Nlc3NpbmdNZXRhZGF0YXx8e30sY2FwdHVyZWRTcGFuU2NvcGU9c2RrUHJvY2Vzc2luZ01ldGFkYXRhLmNhcHR1cmVkU3BhblNjb3BlLGNhcHR1cmVkU3Bhbklzb2xhdGlvblNjb3BlPXNka1Byb2Nlc3NpbmdNZXRhZGF0YS5jYXB0dXJlZFNwYW5Jc29sYXRpb25TY29wZSxkYXRhQ2F0ZWdvcnk9Z2V0RGF0YUNhdGVnb3J5QnlUeXBlKGV2ZW50LnR5cGUpO3JldHVybiB0aGlzLl9wcm9jZXNzKCgpPT50aGlzLl9jYXB0dXJlRXZlbnQoZXZlbnQsaGludFdpdGhFdmVudElkLGNhcHR1cmVkU3BhblNjb3BlfHxjdXJyZW50U2NvcGUsY2FwdHVyZWRTcGFuSXNvbGF0aW9uU2NvcGUpLGRhdGFDYXRlZ29yeSksaGludFdpdGhFdmVudElkLmV2ZW50X2lkfWNhcHR1cmVTZXNzaW9uKHNlc3Npb24pe3RoaXMuc2VuZFNlc3Npb24oc2Vzc2lvbiksKDAsZXNtX3Nlc3Npb24uQ1QpKHNlc3Npb24se2luaXQ6ITF9KX1nZXREc24oKXtyZXR1cm4gdGhpcy5fZHNufWdldE9wdGlvbnMoKXtyZXR1cm4gdGhpcy5fb3B0aW9uc31nZXRTZGtNZXRhZGF0YSgpe3JldHVybiB0aGlzLl9vcHRpb25zLl9tZXRhZGF0YX1nZXRUcmFuc3BvcnQoKXtyZXR1cm4gdGhpcy5fdHJhbnNwb3J0fWFzeW5jIGZsdXNoKHRpbWVvdXQpe2xldCB0cmFuc3BvcnQ9dGhpcy5fdHJhbnNwb3J0O2lmKCF0cmFuc3BvcnQpcmV0dXJuITA7dGhpcy5lbWl0KCJmbHVzaCIpO2xldCBjbGllbnRGaW5pc2hlZD1hd2FpdCB0aGlzLl9pc0NsaWVudERvbmVQcm9jZXNzaW5nKHRpbWVvdXQpLHRyYW5zcG9ydEZsdXNoZWQ9YXdhaXQgdHJhbnNwb3J0LmZsdXNoKHRpbWVvdXQpO3JldHVybiBjbGllbnRGaW5pc2hlZCYmdHJhbnNwb3J0Rmx1c2hlZH1hc3luYyBjbG9zZSh0aW1lb3V0KXtsZXQgcmVzdWx0PWF3YWl0IHRoaXMuZmx1c2godGltZW91dCk7cmV0dXJuIHRoaXMuZ2V0T3B0aW9ucygpLmVuYWJsZWQ9ITEsdGhpcy5lbWl0KCJjbG9zZSIpLHJlc3VsdH1nZXRFdmVudFByb2Nlc3NvcnMoKXtyZXR1cm4gdGhpcy5fZXZlbnRQcm9jZXNzb3JzfWFkZEV2ZW50UHJvY2Vzc29yKGV2ZW50UHJvY2Vzc29yKXt0aGlzLl9ldmVudFByb2Nlc3NvcnMucHVzaChldmVudFByb2Nlc3Nvcil9aW5pdCgpeyh0aGlzLl9pc0VuYWJsZWQoKXx8dGhpcy5fb3B0aW9ucy5pbnRlZ3JhdGlvbnMuc29tZSgoe25hbWV9KT0+bmFtZS5zdGFydHNXaXRoKCJTcG90bGlnaHQiKSkpJiZ0aGlzLl9zZXR1cEludGVncmF0aW9ucygpfWdldEludGVncmF0aW9uQnlOYW1lKGludGVncmF0aW9uTmFtZSl7cmV0dXJuIHRoaXMuX2ludGVncmF0aW9uc1tpbnRlZ3JhdGlvbk5hbWVdfWFkZEludGVncmF0aW9uKGludGVncmF0aW9uKXtsZXQgaXNBbHJlYWR5SW5zdGFsbGVkPXRoaXMuX2ludGVncmF0aW9uc1tpbnRlZ3JhdGlvbi5uYW1lXTtzZXR1cEludGVncmF0aW9uKHRoaXMsaW50ZWdyYXRpb24sdGhpcy5faW50ZWdyYXRpb25zKSxpc0FscmVhZHlJbnN0YWxsZWR8fGFmdGVyU2V0dXBJbnRlZ3JhdGlvbnModGhpcyxbaW50ZWdyYXRpb25dKX1zZW5kRXZlbnQoZXZlbnQsaGludD17fSl7dGhpcy5lbWl0KCJiZWZvcmVTZW5kRXZlbnQiLGV2ZW50LGhpbnQpO2xldCBlbnY9KDAsZW52ZWxvcGUuTXEpKGV2ZW50LHRoaXMuX2Rzbix0aGlzLl9vcHRpb25zLl9tZXRhZGF0YSx0aGlzLl9vcHRpb25zLnR1bm5lbCk7Zm9yKGxldCBhdHRhY2htZW50IG9mIGhpbnQuYXR0YWNobWVudHN8fFtdKWVudj0oMCx1dGlsc19lbnZlbG9wZS5CTykoZW52LCgwLHV0aWxzX2VudmVsb3BlLnpRKShhdHRhY2htZW50KSk7dGhpcy5zZW5kRW52ZWxvcGUoZW52KS50aGVuKHNlbmRSZXNwb25zZT0+dGhpcy5lbWl0KCJhZnRlclNlbmRFdmVudCIsZXZlbnQsc2VuZFJlc3BvbnNlKSl9c2VuZFNlc3Npb24oc2Vzc2lvbil7bGV0e3JlbGVhc2U6Y2xpZW50UmVsZWFzZU9wdGlvbixlbnZpcm9ubWVudDpjbGllbnRFbnZpcm9ubWVudE9wdGlvbj1jb25zdGFudHMuSn09dGhpcy5fb3B0aW9ucztpZigiYWdncmVnYXRlcyJpbiBzZXNzaW9uKXtsZXQgc2Vzc2lvbkF0dHJzPXNlc3Npb24uYXR0cnN8fHt9O2lmKCFzZXNzaW9uQXR0cnMucmVsZWFzZSYmIWNsaWVudFJlbGVhc2VPcHRpb24pe2RlYnVnX2J1aWxkLlgmJmRlYnVnX2xvZ2dlci5mRi53YXJuKE1JU1NJTkdfUkVMRUFTRV9GT1JfU0VTU0lPTl9FUlJPUik7cmV0dXJufXNlc3Npb25BdHRycy5yZWxlYXNlPXNlc3Npb25BdHRycy5yZWxlYXNlfHxjbGllbnRSZWxlYXNlT3B0aW9uLHNlc3Npb25BdHRycy5lbnZpcm9ubWVudD1zZXNzaW9uQXR0cnMuZW52aXJvbm1lbnR8fGNsaWVudEVudmlyb25tZW50T3B0aW9uLHNlc3Npb24uYXR0cnM9c2Vzc2lvbkF0dHJzfWVsc2V7aWYoIXNlc3Npb24ucmVsZWFzZSYmIWNsaWVudFJlbGVhc2VPcHRpb24pe2RlYnVnX2J1aWxkLlgmJmRlYnVnX2xvZ2dlci5mRi53YXJuKE1JU1NJTkdfUkVMRUFTRV9GT1JfU0VTU0lPTl9FUlJPUik7cmV0dXJufXNlc3Npb24ucmVsZWFzZT1zZXNzaW9uLnJlbGVhc2V8fGNsaWVudFJlbGVhc2VPcHRpb24sc2Vzc2lvbi5lbnZpcm9ubWVudD1zZXNzaW9uLmVudmlyb25tZW50fHxjbGllbnRFbnZpcm9ubWVudE9wdGlvbn10aGlzLmVtaXQoImJlZm9yZVNlbmRTZXNzaW9uIixzZXNzaW9uKTtsZXQgZW52PSgwLGVudmVsb3BlLlEzKShzZXNzaW9uLHRoaXMuX2Rzbix0aGlzLl9vcHRpb25zLl9tZXRhZGF0YSx0aGlzLl9vcHRpb25zLnR1bm5lbCk7dGhpcy5zZW5kRW52ZWxvcGUoZW52KX1yZWNvcmREcm9wcGVkRXZlbnQocmVhc29uLGNhdGVnb3J5LGNvdW50PTEpe2lmKHRoaXMuX29wdGlvbnMuc2VuZENsaWVudFJlcG9ydHMpe2xldCBrZXk9YCR7cmVhc29ufToke2NhdGVnb3J5fWA7ZGVidWdfYnVpbGQuWCYmZGVidWdfbG9nZ2VyLmZGLmxvZyhgUmVjb3JkaW5nIG91dGNvbWU6ICIke2tleX0iJHtjb3VudD4xP2AgKCR7Y291bnR9IHRpbWVzKWA6IiJ9YCksdGhpcy5fb3V0Y29tZXNba2V5XT0odGhpcy5fb3V0Y29tZXNba2V5XXx8MCkrY291bnR9fW9uKGhvb2ssY2FsbGJhY2spe2xldCBob29rQ2FsbGJhY2tzPXRoaXMuX2hvb2tzW2hvb2tdPXRoaXMuX2hvb2tzW2hvb2tdfHxuZXcgU2V0LHVuaXF1ZUNhbGxiYWNrPSguLi5hcmdzKT0+Y2FsbGJhY2soLi4uYXJncyk7cmV0dXJuIGhvb2tDYWxsYmFja3MuYWRkKHVuaXF1ZUNhbGxiYWNrKSwoKT0+e2hvb2tDYWxsYmFja3MuZGVsZXRlKHVuaXF1ZUNhbGxiYWNrKX19ZW1pdChob29rLC4uLnJlc3Qpe2xldCBjYWxsYmFja3M9dGhpcy5faG9va3NbaG9va107Y2FsbGJhY2tzJiZjYWxsYmFja3MuZm9yRWFjaChjYWxsYmFjaz0+Y2FsbGJhY2soLi4ucmVzdCkpfWFzeW5jIHNlbmRFbnZlbG9wZShlbnZlbG9wZSl7aWYodGhpcy5lbWl0KCJiZWZvcmVFbnZlbG9wZSIsZW52ZWxvcGUpLHRoaXMuX2lzRW5hYmxlZCgpJiZ0aGlzLl90cmFuc3BvcnQpdHJ5e3JldHVybiBhd2FpdCB0aGlzLl90cmFuc3BvcnQuc2VuZChlbnZlbG9wZSl9Y2F0Y2gocmVhc29uKXtyZXR1cm4gZGVidWdfYnVpbGQuWCYmZGVidWdfbG9nZ2VyLmZGLmVycm9yKCJFcnJvciB3aGlsZSBzZW5kaW5nIGVudmVsb3BlOiIscmVhc29uKSx7fX1yZXR1cm4gZGVidWdfYnVpbGQuWCYmZGVidWdfbG9nZ2VyLmZGLmVycm9yKCJUcmFuc3BvcnQgZGlzYWJsZWQiKSx7fX1fc2V0dXBJbnRlZ3JhdGlvbnMoKXtsZXR7aW50ZWdyYXRpb25zfT10aGlzLl9vcHRpb25zO3RoaXMuX2ludGVncmF0aW9ucz1mdW5jdGlvbihjbGllbnQsaW50ZWdyYXRpb25zKXtsZXQgaW50ZWdyYXRpb25JbmRleD17fTtyZXR1cm4gaW50ZWdyYXRpb25zLmZvckVhY2goaW50ZWdyYXRpb249PntpbnRlZ3JhdGlvbiYmc2V0dXBJbnRlZ3JhdGlvbihjbGllbnQsaW50ZWdyYXRpb24saW50ZWdyYXRpb25JbmRleCl9KSxpbnRlZ3JhdGlvbkluZGV4fSh0aGlzLGludGVncmF0aW9ucyksYWZ0ZXJTZXR1cEludGVncmF0aW9ucyh0aGlzLGludGVncmF0aW9ucyl9X3VwZGF0ZVNlc3Npb25Gcm9tRXZlbnQoc2Vzc2lvbixldmVudCl7bGV0IGNyYXNoZWQ9ImZhdGFsIj09PWV2ZW50LmxldmVsLGVycm9yZWQ9ITEsZXhjZXB0aW9ucz1ldmVudC5leGNlcHRpb24/LnZhbHVlcztpZihleGNlcHRpb25zKXtmb3IobGV0IGV4IG9mKGVycm9yZWQ9ITAsY3Jhc2hlZD0hMSxleGNlcHRpb25zKSlpZihleC5tZWNoYW5pc20/LmhhbmRsZWQ9PT0hMSl7Y3Jhc2hlZD0hMDticmVha319bGV0IHNlc3Npb25Ob25UZXJtaW5hbD0ib2siPT09c2Vzc2lvbi5zdGF0dXMsc2hvdWxkVXBkYXRlQW5kU2VuZD1zZXNzaW9uTm9uVGVybWluYWwmJjA9PT1zZXNzaW9uLmVycm9yc3x8c2Vzc2lvbk5vblRlcm1pbmFsJiZjcmFzaGVkO3Nob3VsZFVwZGF0ZUFuZFNlbmQmJigoMCxlc21fc2Vzc2lvbi5DVCkoc2Vzc2lvbix7Li4uY3Jhc2hlZCYme3N0YXR1czoiY3Jhc2hlZCJ9LGVycm9yczpzZXNzaW9uLmVycm9yc3x8TnVtYmVyKGVycm9yZWR8fGNyYXNoZWQpfSksdGhpcy5jYXB0dXJlU2Vzc2lvbihzZXNzaW9uKSl9YXN5bmMgX2lzQ2xpZW50RG9uZVByb2Nlc3NpbmcodGltZW91dCl7bGV0IHRpY2tlZD0wO2Zvcig7IXRpbWVvdXR8fHRpY2tlZDx0aW1lb3V0Oyl7aWYoYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZT0+c2V0VGltZW91dChyZXNvbHZlLDEpKSwhdGhpcy5fbnVtUHJvY2Vzc2luZylyZXR1cm4hMDt0aWNrZWQrK31yZXR1cm4hMX1faXNFbmFibGVkKCl7cmV0dXJuITEhPT10aGlzLmdldE9wdGlvbnMoKS5lbmFibGVkJiZ2b2lkIDAhPT10aGlzLl90cmFuc3BvcnR9X3ByZXBhcmVFdmVudChldmVudCxoaW50LGN1cnJlbnRTY29wZSxpc29sYXRpb25TY29wZSl7bGV0IG9wdGlvbnM9dGhpcy5nZXRPcHRpb25zKCksaW50ZWdyYXRpb25zPU9iamVjdC5rZXlzKHRoaXMuX2ludGVncmF0aW9ucyk7cmV0dXJuIWhpbnQuaW50ZWdyYXRpb25zJiZpbnRlZ3JhdGlvbnM/Lmxlbmd0aCYmKGhpbnQuaW50ZWdyYXRpb25zPWludGVncmF0aW9ucyksdGhpcy5lbWl0KCJwcmVwcm9jZXNzRXZlbnQiLGV2ZW50LGhpbnQpLGV2ZW50LnR5cGV8fGlzb2xhdGlvblNjb3BlLnNldExhc3RFdmVudElkKGV2ZW50LmV2ZW50X2lkfHxoaW50LmV2ZW50X2lkKSwoMCxwcmVwYXJlRXZlbnQuUikob3B0aW9ucyxldmVudCxoaW50LGN1cnJlbnRTY29wZSx0aGlzLGlzb2xhdGlvblNjb3BlKS50aGVuKGV2dD0+e2lmKG51bGw9PT1ldnQpcmV0dXJuIGV2dDt0aGlzLmVtaXQoInBvc3Rwcm9jZXNzRXZlbnQiLGV2dCxoaW50KSxldnQuY29udGV4dHM9e3RyYWNlOigwLGN1cnJlbnRTY29wZXMuWFgpKGN1cnJlbnRTY29wZSksLi4uZXZ0LmNvbnRleHRzfTtsZXQgZHluYW1pY1NhbXBsaW5nQ29udGV4dD0oMCx0cmFjaW5nX2R5bmFtaWNTYW1wbGluZ0NvbnRleHQuQ0cpKHRoaXMsY3VycmVudFNjb3BlKTtyZXR1cm4gZXZ0LnNka1Byb2Nlc3NpbmdNZXRhZGF0YT17ZHluYW1pY1NhbXBsaW5nQ29udGV4dCwuLi5ldnQuc2RrUHJvY2Vzc2luZ01ldGFkYXRhfSxldnR9KX1fY2FwdHVyZUV2ZW50KGV2ZW50LGhpbnQ9e30sY3VycmVudFNjb3BlPSgwLGN1cnJlbnRTY29wZXMublopKCksaXNvbGF0aW9uU2NvcGU9KDAsY3VycmVudFNjb3Blcy5hRikoKSl7cmV0dXJuIGRlYnVnX2J1aWxkLlgmJmlzRXJyb3JFdmVudChldmVudCkmJmRlYnVnX2xvZ2dlci5mRi5sb2coYENhcHR1cmVkIGVycm9yIGV2ZW50IFxgJHtnZXRQb3NzaWJsZUV2ZW50TWVzc2FnZXMoZXZlbnQpWzBdfHwiPHVua25vd24+In1cYGApLHRoaXMuX3Byb2Nlc3NFdmVudChldmVudCxoaW50LGN1cnJlbnRTY29wZSxpc29sYXRpb25TY29wZSkudGhlbihmaW5hbEV2ZW50PT5maW5hbEV2ZW50LmV2ZW50X2lkLHJlYXNvbj0+e2RlYnVnX2J1aWxkLlgmJihfaXNEb05vdFNlbmRFdmVudEVycm9yKHJlYXNvbik/ZGVidWdfbG9nZ2VyLmZGLmxvZyhyZWFzb24ubWVzc2FnZSk6X2lzSW50ZXJuYWxFcnJvcihyZWFzb24pP2RlYnVnX2xvZ2dlci5mRi53YXJuKHJlYXNvbi5tZXNzYWdlKTpkZWJ1Z19sb2dnZXIuZkYud2FybihyZWFzb24pKX0pfV9wcm9jZXNzRXZlbnQoZXZlbnQsaGludCxjdXJyZW50U2NvcGUsaXNvbGF0aW9uU2NvcGUpe2xldCBvcHRpb25zPXRoaXMuZ2V0T3B0aW9ucygpLHtzYW1wbGVSYXRlfT1vcHRpb25zLGlzVHJhbnNhY3Rpb249aXNUcmFuc2FjdGlvbkV2ZW50KGV2ZW50KSxpc0Vycm9yPWlzRXJyb3JFdmVudChldmVudCksZXZlbnRUeXBlPWV2ZW50LnR5cGV8fCJlcnJvciIsYmVmb3JlU2VuZExhYmVsPWBiZWZvcmUgc2VuZCBmb3IgdHlwZSBcYCR7ZXZlbnRUeXBlfVxgYCxwYXJzZWRTYW1wbGVSYXRlPXZvaWQgMD09PXNhbXBsZVJhdGU/dm9pZCAwOigwLHBhcnNlU2FtcGxlUmF0ZS5vKShzYW1wbGVSYXRlKTtpZihpc0Vycm9yJiYibnVtYmVyIj09dHlwZW9mIHBhcnNlZFNhbXBsZVJhdGUmJk1hdGgucmFuZG9tKCk+cGFyc2VkU2FtcGxlUmF0ZSlyZXR1cm4gdGhpcy5yZWNvcmREcm9wcGVkRXZlbnQoInNhbXBsZV9yYXRlIiwiZXJyb3IiKSwoMCxzeW5jcHJvbWlzZS4kMikoX21ha2VEb05vdFNlbmRFdmVudEVycm9yKGBEaXNjYXJkaW5nIGV2ZW50IGJlY2F1c2UgaXQncyBub3QgaW5jbHVkZWQgaW4gdGhlIHJhbmRvbSBzYW1wbGUgKHNhbXBsaW5nIHJhdGUgPSAke3NhbXBsZVJhdGV9KWApKTtsZXQgZGF0YUNhdGVnb3J5PWdldERhdGFDYXRlZ29yeUJ5VHlwZShldmVudC50eXBlKTtyZXR1cm4gdGhpcy5fcHJlcGFyZUV2ZW50KGV2ZW50LGhpbnQsY3VycmVudFNjb3BlLGlzb2xhdGlvblNjb3BlKS50aGVuKHByZXBhcmVkPT57aWYobnVsbD09PXByZXBhcmVkKXRocm93IHRoaXMucmVjb3JkRHJvcHBlZEV2ZW50KCJldmVudF9wcm9jZXNzb3IiLGRhdGFDYXRlZ29yeSksX21ha2VEb05vdFNlbmRFdmVudEVycm9yKCJBbiBldmVudCBwcm9jZXNzb3IgcmV0dXJuZWQgYG51bGxgLCB3aWxsIG5vdCBzZW5kIGV2ZW50LiIpO2xldCBpc0ludGVybmFsRXhjZXB0aW9uPWhpbnQuZGF0YSYmITA9PT1oaW50LmRhdGEuX19zZW50cnlfXztpZihpc0ludGVybmFsRXhjZXB0aW9uKXJldHVybiBwcmVwYXJlZDtsZXQgcmVzdWx0PWZ1bmN0aW9uKGNsaWVudCxvcHRpb25zLGV2ZW50LGhpbnQpe2xldHtiZWZvcmVTZW5kLGJlZm9yZVNlbmRUcmFuc2FjdGlvbixiZWZvcmVTZW5kU3BhbixpZ25vcmVTcGFuc309b3B0aW9ucyxwcm9jZXNzZWRFdmVudD1ldmVudDtpZihpc0Vycm9yRXZlbnQocHJvY2Vzc2VkRXZlbnQpJiZiZWZvcmVTZW5kKXJldHVybiBiZWZvcmVTZW5kKHByb2Nlc3NlZEV2ZW50LGhpbnQpO2lmKGlzVHJhbnNhY3Rpb25FdmVudChwcm9jZXNzZWRFdmVudCkpe2lmKGJlZm9yZVNlbmRTcGFufHxpZ25vcmVTcGFucyl7bGV0IHJvb3RTcGFuSnNvbj1mdW5jdGlvbihldmVudCl7bGV0e3RyYWNlX2lkLHBhcmVudF9zcGFuX2lkLHNwYW5faWQsc3RhdHVzLG9yaWdpbixkYXRhLG9wfT1ldmVudC5jb250ZXh0cz8udHJhY2U/P3t9O3JldHVybntkYXRhOmRhdGE/P3t9LGRlc2NyaXB0aW9uOmV2ZW50LnRyYW5zYWN0aW9uLG9wLHBhcmVudF9zcGFuX2lkLHNwYW5faWQ6c3Bhbl9pZD8/IiIsc3RhcnRfdGltZXN0YW1wOmV2ZW50LnN0YXJ0X3RpbWVzdGFtcD8/MCxzdGF0dXMsdGltZXN0YW1wOmV2ZW50LnRpbWVzdGFtcCx0cmFjZV9pZDp0cmFjZV9pZD8/IiIsb3JpZ2luLHByb2ZpbGVfaWQ6ZGF0YT8uW3NlbWFudGljQXR0cmlidXRlcy5wNl0sZXhjbHVzaXZlX3RpbWU6ZGF0YT8uW3NlbWFudGljQXR0cmlidXRlcy5KUV0sbWVhc3VyZW1lbnRzOmV2ZW50Lm1lYXN1cmVtZW50cyxpc19zZWdtZW50OiEwfX0ocHJvY2Vzc2VkRXZlbnQpO2lmKGlnbm9yZVNwYW5zPy5sZW5ndGgmJigwLHNob3VsZF9pZ25vcmVfc3Bhbi5sKShyb290U3Bhbkpzb24saWdub3JlU3BhbnMpKXJldHVybiBudWxsO2lmKGJlZm9yZVNlbmRTcGFuKXtsZXQgcHJvY2Vzc2VkUm9vdFNwYW5Kc29uPWJlZm9yZVNlbmRTcGFuKHJvb3RTcGFuSnNvbik7cHJvY2Vzc2VkUm9vdFNwYW5Kc29uP3Byb2Nlc3NlZEV2ZW50PSgwLG1lcmdlLlQpKGV2ZW50LHt0eXBlOiJ0cmFuc2FjdGlvbiIsdGltZXN0YW1wOnByb2Nlc3NlZFJvb3RTcGFuSnNvbi50aW1lc3RhbXAsc3RhcnRfdGltZXN0YW1wOnByb2Nlc3NlZFJvb3RTcGFuSnNvbi5zdGFydF90aW1lc3RhbXAsdHJhbnNhY3Rpb246cHJvY2Vzc2VkUm9vdFNwYW5Kc29uLmRlc2NyaXB0aW9uLGNvbnRleHRzOnt0cmFjZTp7dHJhY2VfaWQ6cHJvY2Vzc2VkUm9vdFNwYW5Kc29uLnRyYWNlX2lkLHNwYW5faWQ6cHJvY2Vzc2VkUm9vdFNwYW5Kc29uLnNwYW5faWQscGFyZW50X3NwYW5faWQ6cHJvY2Vzc2VkUm9vdFNwYW5Kc29uLnBhcmVudF9zcGFuX2lkLG9wOnByb2Nlc3NlZFJvb3RTcGFuSnNvbi5vcCxzdGF0dXM6cHJvY2Vzc2VkUm9vdFNwYW5Kc29uLnN0YXR1cyxvcmlnaW46cHJvY2Vzc2VkUm9vdFNwYW5Kc29uLm9yaWdpbixkYXRhOnsuLi5wcm9jZXNzZWRSb290U3Bhbkpzb24uZGF0YSwuLi5wcm9jZXNzZWRSb290U3Bhbkpzb24ucHJvZmlsZV9pZCYme1tzZW1hbnRpY0F0dHJpYnV0ZXMucDZdOnByb2Nlc3NlZFJvb3RTcGFuSnNvbi5wcm9maWxlX2lkfSwuLi5wcm9jZXNzZWRSb290U3Bhbkpzb24uZXhjbHVzaXZlX3RpbWUmJntbc2VtYW50aWNBdHRyaWJ1dGVzLkpRXTpwcm9jZXNzZWRSb290U3Bhbkpzb24uZXhjbHVzaXZlX3RpbWV9fX19LG1lYXN1cmVtZW50czpwcm9jZXNzZWRSb290U3Bhbkpzb24ubWVhc3VyZW1lbnRzfSk6KDAsc3BhblV0aWxzLlI2KSgpfWlmKHByb2Nlc3NlZEV2ZW50LnNwYW5zKXtsZXQgcHJvY2Vzc2VkU3BhbnM9W10saW5pdGlhbFNwYW5zPXByb2Nlc3NlZEV2ZW50LnNwYW5zO2ZvcihsZXQgc3BhbiBvZiBpbml0aWFsU3BhbnMpe2lmKGlnbm9yZVNwYW5zPy5sZW5ndGgmJigwLHNob3VsZF9pZ25vcmVfc3Bhbi5sKShzcGFuLGlnbm9yZVNwYW5zKSl7KDAsc2hvdWxkX2lnbm9yZV9zcGFuLngpKGluaXRpYWxTcGFucyxzcGFuKTtjb250aW51ZX1pZihiZWZvcmVTZW5kU3Bhbil7bGV0IHByb2Nlc3NlZFNwYW49YmVmb3JlU2VuZFNwYW4oc3Bhbik7cHJvY2Vzc2VkU3Bhbj9wcm9jZXNzZWRTcGFucy5wdXNoKHByb2Nlc3NlZFNwYW4pOigoMCxzcGFuVXRpbHMuUjYpKCkscHJvY2Vzc2VkU3BhbnMucHVzaChzcGFuKSl9ZWxzZSBwcm9jZXNzZWRTcGFucy5wdXNoKHNwYW4pfWxldCBkcm9wcGVkU3BhbnM9cHJvY2Vzc2VkRXZlbnQuc3BhbnMubGVuZ3RoLXByb2Nlc3NlZFNwYW5zLmxlbmd0aDtkcm9wcGVkU3BhbnMmJmNsaWVudC5yZWNvcmREcm9wcGVkRXZlbnQoImJlZm9yZV9zZW5kIiwic3BhbiIsZHJvcHBlZFNwYW5zKSxwcm9jZXNzZWRFdmVudC5zcGFucz1wcm9jZXNzZWRTcGFuc319aWYoYmVmb3JlU2VuZFRyYW5zYWN0aW9uKXtpZihwcm9jZXNzZWRFdmVudC5zcGFucyl7bGV0IHNwYW5Db3VudEJlZm9yZT1wcm9jZXNzZWRFdmVudC5zcGFucy5sZW5ndGg7cHJvY2Vzc2VkRXZlbnQuc2RrUHJvY2Vzc2luZ01ldGFkYXRhPXsuLi5ldmVudC5zZGtQcm9jZXNzaW5nTWV0YWRhdGEsc3BhbkNvdW50QmVmb3JlUHJvY2Vzc2luZzpzcGFuQ291bnRCZWZvcmV9fXJldHVybiBiZWZvcmVTZW5kVHJhbnNhY3Rpb24ocHJvY2Vzc2VkRXZlbnQsaGludCl9fXJldHVybiBwcm9jZXNzZWRFdmVudH0odGhpcyxvcHRpb25zLHByZXBhcmVkLGhpbnQpO3JldHVybiBmdW5jdGlvbihiZWZvcmVTZW5kUmVzdWx0LGJlZm9yZVNlbmRMYWJlbCl7bGV0IGludmFsaWRWYWx1ZUVycm9yPWAke2JlZm9yZVNlbmRMYWJlbH0gbXVzdCByZXR1cm4gXGBudWxsXGAgb3IgYSB2YWxpZCBldmVudC5gO2lmKCgwLGlzLko4KShiZWZvcmVTZW5kUmVzdWx0KSlyZXR1cm4gYmVmb3JlU2VuZFJlc3VsdC50aGVuKGV2ZW50PT57aWYoISgwLGlzLlBPKShldmVudCkmJm51bGwhPT1ldmVudCl0aHJvdyBfbWFrZUludGVybmFsRXJyb3IoaW52YWxpZFZhbHVlRXJyb3IpO3JldHVybiBldmVudH0sZT0+e3Rocm93IF9tYWtlSW50ZXJuYWxFcnJvcihgJHtiZWZvcmVTZW5kTGFiZWx9IHJlamVjdGVkIHdpdGggJHtlfWApfSk7aWYoISgwLGlzLlBPKShiZWZvcmVTZW5kUmVzdWx0KSYmbnVsbCE9PWJlZm9yZVNlbmRSZXN1bHQpdGhyb3cgX21ha2VJbnRlcm5hbEVycm9yKGludmFsaWRWYWx1ZUVycm9yKTtyZXR1cm4gYmVmb3JlU2VuZFJlc3VsdH0ocmVzdWx0LGJlZm9yZVNlbmRMYWJlbCl9KS50aGVuKHByb2Nlc3NlZEV2ZW50PT57aWYobnVsbD09PXByb2Nlc3NlZEV2ZW50KXtpZih0aGlzLnJlY29yZERyb3BwZWRFdmVudCgiYmVmb3JlX3NlbmQiLGRhdGFDYXRlZ29yeSksaXNUcmFuc2FjdGlvbil7bGV0IHNwYW5zPWV2ZW50LnNwYW5zfHxbXSxzcGFuQ291bnQ9MStzcGFucy5sZW5ndGg7dGhpcy5yZWNvcmREcm9wcGVkRXZlbnQoImJlZm9yZV9zZW5kIiwic3BhbiIsc3BhbkNvdW50KX10aHJvdyBfbWFrZURvTm90U2VuZEV2ZW50RXJyb3IoYCR7YmVmb3JlU2VuZExhYmVsfSByZXR1cm5lZCBcYG51bGxcYCwgd2lsbCBub3Qgc2VuZCBldmVudC5gKX1sZXQgc2Vzc2lvbj1jdXJyZW50U2NvcGUuZ2V0U2Vzc2lvbigpfHxpc29sYXRpb25TY29wZS5nZXRTZXNzaW9uKCk7aWYoaXNFcnJvciYmc2Vzc2lvbiYmdGhpcy5fdXBkYXRlU2Vzc2lvbkZyb21FdmVudChzZXNzaW9uLHByb2Nlc3NlZEV2ZW50KSxpc1RyYW5zYWN0aW9uKXtsZXQgc3BhbkNvdW50QmVmb3JlPXByb2Nlc3NlZEV2ZW50LnNka1Byb2Nlc3NpbmdNZXRhZGF0YT8uc3BhbkNvdW50QmVmb3JlUHJvY2Vzc2luZ3x8MCxzcGFuQ291bnRBZnRlcj1wcm9jZXNzZWRFdmVudC5zcGFucz9wcm9jZXNzZWRFdmVudC5zcGFucy5sZW5ndGg6MCxkcm9wcGVkU3BhbkNvdW50PXNwYW5Db3VudEJlZm9yZS1zcGFuQ291bnRBZnRlcjtkcm9wcGVkU3BhbkNvdW50PjAmJnRoaXMucmVjb3JkRHJvcHBlZEV2ZW50KCJiZWZvcmVfc2VuZCIsInNwYW4iLGRyb3BwZWRTcGFuQ291bnQpfWxldCB0cmFuc2FjdGlvbkluZm89cHJvY2Vzc2VkRXZlbnQudHJhbnNhY3Rpb25faW5mbztyZXR1cm4gaXNUcmFuc2FjdGlvbiYmdHJhbnNhY3Rpb25JbmZvJiZwcm9jZXNzZWRFdmVudC50cmFuc2FjdGlvbiE9PWV2ZW50LnRyYW5zYWN0aW9uJiYocHJvY2Vzc2VkRXZlbnQudHJhbnNhY3Rpb25faW5mbz17Li4udHJhbnNhY3Rpb25JbmZvLHNvdXJjZToiY3VzdG9tIn0pLHRoaXMuc2VuZEV2ZW50KHByb2Nlc3NlZEV2ZW50LGhpbnQpLHByb2Nlc3NlZEV2ZW50fSkudGhlbihudWxsLHJlYXNvbj0+e2lmKF9pc0RvTm90U2VuZEV2ZW50RXJyb3IocmVhc29uKXx8X2lzSW50ZXJuYWxFcnJvcihyZWFzb24pKXRocm93IHJlYXNvbjt0aHJvdyB0aGlzLmNhcHR1cmVFeGNlcHRpb24ocmVhc29uLHttZWNoYW5pc206e2hhbmRsZWQ6ITEsdHlwZToiaW50ZXJuYWwifSxkYXRhOntfX3NlbnRyeV9fOiEwfSxvcmlnaW5hbEV4Y2VwdGlvbjpyZWFzb259KSxfbWFrZUludGVybmFsRXJyb3IoYEV2ZW50IHByb2Nlc3NpbmcgcGlwZWxpbmUgdGhyZXcgYW4gZXJyb3IsIG9yaWdpbmFsIGV2ZW50IHdpbGwgbm90IGJlIHNlbnQuIERldGFpbHMgaGF2ZSBiZWVuIHNlbnQgYXMgYSBuZXcgZXZlbnQuClJlYXNvbjogJHtyZWFzb259YCl9KX1fcHJvY2Vzcyh0YXNrUHJvZHVjZXIsZGF0YUNhdGVnb3J5KXt0aGlzLl9udW1Qcm9jZXNzaW5nKyssdGhpcy5fcHJvbWlzZUJ1ZmZlci5hZGQodGFza1Byb2R1Y2VyKS50aGVuKHZhbHVlPT4odGhpcy5fbnVtUHJvY2Vzc2luZy0tLHZhbHVlKSxyZWFzb249Pih0aGlzLl9udW1Qcm9jZXNzaW5nLS0scmVhc29uPT09U0VOVFJZX0JVRkZFUl9GVUxMX0VSUk9SJiZ0aGlzLnJlY29yZERyb3BwZWRFdmVudCgicXVldWVfb3ZlcmZsb3ciLGRhdGFDYXRlZ29yeSkscmVhc29uKSl9X2NsZWFyT3V0Y29tZXMoKXtsZXQgb3V0Y29tZXM9dGhpcy5fb3V0Y29tZXM7cmV0dXJuIHRoaXMuX291dGNvbWVzPXt9LE9iamVjdC5lbnRyaWVzKG91dGNvbWVzKS5tYXAoKFtrZXkscXVhbnRpdHldKT0+e2xldFtyZWFzb24sY2F0ZWdvcnldPWtleS5zcGxpdCgiOiIpO3JldHVybntyZWFzb24sY2F0ZWdvcnkscXVhbnRpdHl9fSl9X2ZsdXNoT3V0Y29tZXMoKXtkZWJ1Z19idWlsZC5YJiZkZWJ1Z19sb2dnZXIuZkYubG9nKCJGbHVzaGluZyBvdXRjb21lcy4uLiIpO2xldCBvdXRjb21lcz10aGlzLl9jbGVhck91dGNvbWVzKCk7aWYoMD09PW91dGNvbWVzLmxlbmd0aCl7ZGVidWdfYnVpbGQuWCYmZGVidWdfbG9nZ2VyLmZGLmxvZygiTm8gb3V0Y29tZXMgdG8gc2VuZCIpO3JldHVybn1pZighdGhpcy5fZHNuKXtkZWJ1Z19idWlsZC5YJiZkZWJ1Z19sb2dnZXIuZkYubG9nKCJObyBkc24gcHJvdmlkZWQsIHdpbGwgbm90IHNlbmQgb3V0Y29tZXMiKTtyZXR1cm59ZGVidWdfYnVpbGQuWCYmZGVidWdfbG9nZ2VyLmZGLmxvZygiU2VuZGluZyBvdXRjb21lczoiLG91dGNvbWVzKTtsZXQgZW52ZWxvcGU9ZnVuY3Rpb24oZGlzY2FyZGVkX2V2ZW50cyxkc24sdGltZXN0YW1wKXtsZXQgY2xpZW50UmVwb3J0SXRlbT1be3R5cGU6ImNsaWVudF9yZXBvcnQifSx7dGltZXN0YW1wOigwLHRpbWUueVcpKCksZGlzY2FyZGVkX2V2ZW50c31dO3JldHVybigwLHV0aWxzX2VudmVsb3BlLkpkKShkc24/e2Rzbn06e30sW2NsaWVudFJlcG9ydEl0ZW1dKX0ob3V0Y29tZXMsdGhpcy5fb3B0aW9ucy50dW5uZWwmJigwLHV0aWxzX2Rzbi5SQSkodGhpcy5fZHNuKSk7dGhpcy5zZW5kRW52ZWxvcGUoZW52ZWxvcGUpfX1mdW5jdGlvbiBnZXREYXRhQ2F0ZWdvcnlCeVR5cGUodHlwZSl7cmV0dXJuInJlcGxheV9ldmVudCI9PT10eXBlPyJyZXBsYXkiOnR5cGV8fCJlcnJvciJ9ZnVuY3Rpb24gaXNFcnJvckV2ZW50KGV2ZW50KXtyZXR1cm4gdm9pZCAwPT09ZXZlbnQudHlwZX1mdW5jdGlvbiBpc1RyYW5zYWN0aW9uRXZlbnQoZXZlbnQpe3JldHVybiJ0cmFuc2FjdGlvbiI9PT1ldmVudC50eXBlfWZ1bmN0aW9uIGVzdGltYXRlTWV0cmljU2l6ZUluQnl0ZXMobWV0cmljKXtsZXQgd2VpZ2h0PTA7cmV0dXJuIG1ldHJpYy5uYW1lJiYod2VpZ2h0Kz0yKm1ldHJpYy5uYW1lLmxlbmd0aCksKHdlaWdodCs9OCkrZXN0aW1hdGVBdHRyaWJ1dGVzU2l6ZUluQnl0ZXMobWV0cmljLmF0dHJpYnV0ZXMpfWZ1bmN0aW9uIGVzdGltYXRlTG9nU2l6ZUluQnl0ZXMobG9nKXtsZXQgd2VpZ2h0PTA7cmV0dXJuIGxvZy5tZXNzYWdlJiYod2VpZ2h0Kz0yKmxvZy5tZXNzYWdlLmxlbmd0aCksd2VpZ2h0K2VzdGltYXRlQXR0cmlidXRlc1NpemVJbkJ5dGVzKGxvZy5hdHRyaWJ1dGVzKX1mdW5jdGlvbiBlc3RpbWF0ZUF0dHJpYnV0ZXNTaXplSW5CeXRlcyhhdHRyaWJ1dGVzKXtpZighYXR0cmlidXRlcylyZXR1cm4gMDtsZXQgd2VpZ2h0PTA7cmV0dXJuIE9iamVjdC52YWx1ZXMoYXR0cmlidXRlcykuZm9yRWFjaCh2YWx1ZT0+e0FycmF5LmlzQXJyYXkodmFsdWUpP3dlaWdodCs9dmFsdWUubGVuZ3RoKmVzdGltYXRlUHJpbWl0aXZlU2l6ZUluQnl0ZXModmFsdWVbMF0pOigwLGlzLnB0KSh2YWx1ZSk/d2VpZ2h0Kz1lc3RpbWF0ZVByaW1pdGl2ZVNpemVJbkJ5dGVzKHZhbHVlKTp3ZWlnaHQrPTEwMH0pLHdlaWdodH1mdW5jdGlvbiBlc3RpbWF0ZVByaW1pdGl2ZVNpemVJbkJ5dGVzKHZhbHVlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHZhbHVlPzIqdmFsdWUubGVuZ3RoOiJudW1iZXIiPT10eXBlb2YgdmFsdWU/ODoiYm9vbGVhbiI9PXR5cGVvZiB2YWx1ZT80OjB9dmFyIGVudj1fX3dlYnBhY2tfcmVxdWlyZV9fKDk5MTA3KTtmdW5jdGlvbiBhZGRBdXRvSXBBZGRyZXNzVG9TZXNzaW9uKHNlc3Npb24peyJhZ2dyZWdhdGVzImluIHNlc3Npb24/c2Vzc2lvbi5hdHRycz8uaXBfYWRkcmVzcz09PXZvaWQgMCYmKHNlc3Npb24uYXR0cnM9ey4uLnNlc3Npb24uYXR0cnMsaXBfYWRkcmVzczoie3thdXRvfX0ifSk6dm9pZCAwPT09c2Vzc2lvbi5pcEFkZHJlc3MmJihzZXNzaW9uLmlwQWRkcmVzcz0ie3thdXRvfX0iKX12YXIgbm9ybWFsaXplPV9fd2VicGFja19yZXF1aXJlX18oNzc1OTMpO2Z1bmN0aW9uIGV4Y2VwdGlvbkZyb21FcnJvcihzdGFja1BhcnNlcixleCl7bGV0IGZyYW1lcz1wYXJzZVN0YWNrRnJhbWVzKHN0YWNrUGFyc2VyLGV4KSxleGNlcHRpb249e3R5cGU6ZnVuY3Rpb24oZXgpe2xldCBuYW1lPWV4Py5uYW1lO2lmKCFuYW1lJiZpc1dlYkFzc2VtYmx5RXhjZXB0aW9uKGV4KSl7bGV0IGhhc1R5cGVJbk1lc3NhZ2U9ZXgubWVzc2FnZSYmQXJyYXkuaXNBcnJheShleC5tZXNzYWdlKSYmMj09ZXgubWVzc2FnZS5sZW5ndGg7cmV0dXJuIGhhc1R5cGVJbk1lc3NhZ2U/ZXgubWVzc2FnZVswXToiV2ViQXNzZW1ibHkuRXhjZXB0aW9uIn1yZXR1cm4gbmFtZX0oZXgpLHZhbHVlOmZ1bmN0aW9uKGV4KXtsZXQgbWVzc2FnZT1leD8ubWVzc2FnZTtyZXR1cm4gaXNXZWJBc3NlbWJseUV4Y2VwdGlvbihleCk/QXJyYXkuaXNBcnJheShleC5tZXNzYWdlKSYmMj09ZXgubWVzc2FnZS5sZW5ndGg/ZXgubWVzc2FnZVsxXToid2FzbSBleGNlcHRpb24iOm1lc3NhZ2U/bWVzc2FnZS5lcnJvciYmInN0cmluZyI9PXR5cGVvZiBtZXNzYWdlLmVycm9yLm1lc3NhZ2U/bWVzc2FnZS5lcnJvci5tZXNzYWdlOm1lc3NhZ2U6Ik5vIGVycm9yIG1lc3NhZ2UifShleCl9O3JldHVybiBmcmFtZXMubGVuZ3RoJiYoZXhjZXB0aW9uLnN0YWNrdHJhY2U9e2ZyYW1lc30pLHZvaWQgMD09PWV4Y2VwdGlvbi50eXBlJiYiIj09PWV4Y2VwdGlvbi52YWx1ZSYmKGV4Y2VwdGlvbi52YWx1ZT0iVW5yZWNvdmVyYWJsZSBlcnJvciBjYXVnaHQiKSxleGNlcHRpb259ZnVuY3Rpb24gZXZlbnRGcm9tRXJyb3Ioc3RhY2tQYXJzZXIsZXgpe3JldHVybntleGNlcHRpb246e3ZhbHVlczpbZXhjZXB0aW9uRnJvbUVycm9yKHN0YWNrUGFyc2VyLGV4KV19fX1mdW5jdGlvbiBwYXJzZVN0YWNrRnJhbWVzKHN0YWNrUGFyc2VyLGV4KXtsZXQgc3RhY2t0cmFjZT1leC5zdGFja3RyYWNlfHxleC5zdGFja3x8IiIsc2tpcExpbmVzPWV4JiZyZWFjdE1pbmlmaWVkUmVnZXhwLnRlc3QoZXgubWVzc2FnZSk/MTowLGZyYW1lc1RvUG9wPSJudW1iZXIiPT10eXBlb2YgZXguZnJhbWVzVG9Qb3A/ZXguZnJhbWVzVG9Qb3A6MDt0cnl7cmV0dXJuIHN0YWNrUGFyc2VyKHN0YWNrdHJhY2Usc2tpcExpbmVzLGZyYW1lc1RvUG9wKX1jYXRjaHt9cmV0dXJuW119bGV0IHJlYWN0TWluaWZpZWRSZWdleHA9L01pbmlmaWVkIFJlYWN0IGVycm9yICNcZCs7L2k7ZnVuY3Rpb24gaXNXZWJBc3NlbWJseUV4Y2VwdGlvbihleGNlcHRpb24pe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgV2ViQXNzZW1ibHkmJnZvaWQgMCE9PVdlYkFzc2VtYmx5LkV4Y2VwdGlvbiYmZXhjZXB0aW9uIGluc3RhbmNlb2YgV2ViQXNzZW1ibHkuRXhjZXB0aW9ufWZ1bmN0aW9uIGV2ZW50RnJvbVVua25vd25JbnB1dChzdGFja1BhcnNlcixleGNlcHRpb24sc3ludGhldGljRXhjZXB0aW9uLGF0dGFjaFN0YWNrdHJhY2UsaXNVbmhhbmRsZWRSZWplY3Rpb24pe2xldCBldmVudDtpZigoMCxpcy5WVykoZXhjZXB0aW9uKSYmZXhjZXB0aW9uLmVycm9yKXJldHVybiBldmVudEZyb21FcnJvcihzdGFja1BhcnNlcixleGNlcHRpb24uZXJyb3IpO2lmKCgwLGlzLlRYKShleGNlcHRpb24pfHwoMCxpcy5mbSkoZXhjZXB0aW9uKSl7aWYoInN0YWNrImluIGV4Y2VwdGlvbilldmVudD1ldmVudEZyb21FcnJvcihzdGFja1BhcnNlcixleGNlcHRpb24pO2Vsc2V7bGV0IG5hbWU9ZXhjZXB0aW9uLm5hbWV8fCgoMCxpcy5UWCkoZXhjZXB0aW9uKT8iRE9NRXJyb3IiOiJET01FeGNlcHRpb24iKSxtZXNzYWdlPWV4Y2VwdGlvbi5tZXNzYWdlP2Ake25hbWV9OiAke2V4Y2VwdGlvbi5tZXNzYWdlfWA6bmFtZTtldmVudD1ldmVudEZyb21TdHJpbmcoc3RhY2tQYXJzZXIsbWVzc2FnZSxzeW50aGV0aWNFeGNlcHRpb24sYXR0YWNoU3RhY2t0cmFjZSksKDAsbWlzYy5EYikoZXZlbnQsbWVzc2FnZSl9cmV0dXJuImNvZGUiaW4gZXhjZXB0aW9uJiYoZXZlbnQudGFncz17Li4uZXZlbnQudGFncywiRE9NRXhjZXB0aW9uLmNvZGUiOmAke2V4Y2VwdGlvbi5jb2RlfWB9KSxldmVudH1yZXR1cm4oMCxpcy5WWikoZXhjZXB0aW9uKT9ldmVudEZyb21FcnJvcihzdGFja1BhcnNlcixleGNlcHRpb24pOigwLGlzLlBPKShleGNlcHRpb24pfHwoMCxpcy5jTykoZXhjZXB0aW9uKT8oZXZlbnQ9ZnVuY3Rpb24oc3RhY2tQYXJzZXIsZXhjZXB0aW9uLHN5bnRoZXRpY0V4Y2VwdGlvbixpc1VuaGFuZGxlZFJlamVjdGlvbil7bGV0IGNsaWVudD0oMCxjdXJyZW50U2NvcGVzLnMzKSgpLG5vcm1hbGl6ZURlcHRoPWNsaWVudD8uZ2V0T3B0aW9ucygpLm5vcm1hbGl6ZURlcHRoLGVycm9yRnJvbVByb3A9ZnVuY3Rpb24ob2JqKXtmb3IobGV0IHByb3AgaW4gb2JqKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmoscHJvcCkpe2xldCB2YWx1ZT1vYmpbcHJvcF07aWYodmFsdWUgaW5zdGFuY2VvZiBFcnJvcilyZXR1cm4gdmFsdWV9fShleGNlcHRpb24pLGV4dHJhPXtfX3NlcmlhbGl6ZWRfXzooMCxub3JtYWxpemUuUXkpKGV4Y2VwdGlvbixub3JtYWxpemVEZXB0aCl9O2lmKGVycm9yRnJvbVByb3ApcmV0dXJue2V4Y2VwdGlvbjp7dmFsdWVzOltleGNlcHRpb25Gcm9tRXJyb3Ioc3RhY2tQYXJzZXIsZXJyb3JGcm9tUHJvcCldfSxleHRyYX07bGV0IGV2ZW50PXtleGNlcHRpb246e3ZhbHVlczpbe3R5cGU6KDAsaXMuY08pKGV4Y2VwdGlvbik/ZXhjZXB0aW9uLmNvbnN0cnVjdG9yLm5hbWU6aXNVbmhhbmRsZWRSZWplY3Rpb24/IlVuaGFuZGxlZFJlamVjdGlvbiI6IkVycm9yIix2YWx1ZTpmdW5jdGlvbihleGNlcHRpb24se2lzVW5oYW5kbGVkUmVqZWN0aW9ufSl7bGV0IGtleXM9KDAsb2JqZWN0LnpmKShleGNlcHRpb24pLGNhcHR1cmVUeXBlPWlzVW5oYW5kbGVkUmVqZWN0aW9uPyJwcm9taXNlIHJlamVjdGlvbiI6ImV4Y2VwdGlvbiI7aWYoKDAsaXMuVlcpKGV4Y2VwdGlvbikpcmV0dXJuYEV2ZW50IFxgRXJyb3JFdmVudFxgIGNhcHR1cmVkIGFzICR7Y2FwdHVyZVR5cGV9IHdpdGggbWVzc2FnZSBcYCR7ZXhjZXB0aW9uLm1lc3NhZ2V9XGBgO2lmKCgwLGlzLmNPKShleGNlcHRpb24pKXtsZXQgY2xhc3NOYW1lPWZ1bmN0aW9uKG9iail7dHJ5e2xldCBwcm90b3R5cGU9T2JqZWN0LmdldFByb3RvdHlwZU9mKG9iaik7cmV0dXJuIHByb3RvdHlwZT9wcm90b3R5cGUuY29uc3RydWN0b3IubmFtZTp2b2lkIDB9Y2F0Y2h7fX0oZXhjZXB0aW9uKTtyZXR1cm5gRXZlbnQgXGAke2NsYXNzTmFtZX1cYCAodHlwZT0ke2V4Y2VwdGlvbi50eXBlfSkgY2FwdHVyZWQgYXMgJHtjYXB0dXJlVHlwZX1gfXJldHVybmBPYmplY3QgY2FwdHVyZWQgYXMgJHtjYXB0dXJlVHlwZX0gd2l0aCBrZXlzOiAke2tleXN9YH0oZXhjZXB0aW9uLHtpc1VuaGFuZGxlZFJlamVjdGlvbn0pfV19LGV4dHJhfTtpZihzeW50aGV0aWNFeGNlcHRpb24pe2xldCBmcmFtZXM9cGFyc2VTdGFja0ZyYW1lcyhzdGFja1BhcnNlcixzeW50aGV0aWNFeGNlcHRpb24pO2ZyYW1lcy5sZW5ndGgmJihldmVudC5leGNlcHRpb24udmFsdWVzWzBdLnN0YWNrdHJhY2U9e2ZyYW1lc30pfXJldHVybiBldmVudH0oc3RhY2tQYXJzZXIsZXhjZXB0aW9uLHN5bnRoZXRpY0V4Y2VwdGlvbixpc1VuaGFuZGxlZFJlamVjdGlvbiksKDAsbWlzYy5FRykoZXZlbnQse3N5bnRoZXRpYzohMH0pLGV2ZW50KTooZXZlbnQ9ZXZlbnRGcm9tU3RyaW5nKHN0YWNrUGFyc2VyLGV4Y2VwdGlvbixzeW50aGV0aWNFeGNlcHRpb24sYXR0YWNoU3RhY2t0cmFjZSksKDAsbWlzYy5EYikoZXZlbnQsYCR7ZXhjZXB0aW9ufWAsdm9pZCAwKSwoMCxtaXNjLkVHKShldmVudCx7c3ludGhldGljOiEwfSksZXZlbnQpfWZ1bmN0aW9uIGV2ZW50RnJvbVN0cmluZyhzdGFja1BhcnNlcixtZXNzYWdlLHN5bnRoZXRpY0V4Y2VwdGlvbixhdHRhY2hTdGFja3RyYWNlKXtsZXQgZXZlbnQ9e307aWYoYXR0YWNoU3RhY2t0cmFjZSYmc3ludGhldGljRXhjZXB0aW9uKXtsZXQgZnJhbWVzPXBhcnNlU3RhY2tGcmFtZXMoc3RhY2tQYXJzZXIsc3ludGhldGljRXhjZXB0aW9uKTtmcmFtZXMubGVuZ3RoJiYoZXZlbnQuZXhjZXB0aW9uPXt2YWx1ZXM6W3t2YWx1ZTptZXNzYWdlLHN0YWNrdHJhY2U6e2ZyYW1lc319XX0pLCgwLG1pc2MuRUcpKGV2ZW50LHtzeW50aGV0aWM6ITB9KX1pZigoMCxpcy5MZSkobWVzc2FnZSkpe2xldHtfX3NlbnRyeV90ZW1wbGF0ZV9zdHJpbmdfXyxfX3NlbnRyeV90ZW1wbGF0ZV92YWx1ZXNfX309bWVzc2FnZTtyZXR1cm4gZXZlbnQubG9nZW50cnk9e21lc3NhZ2U6X19zZW50cnlfdGVtcGxhdGVfc3RyaW5nX18scGFyYW1zOl9fc2VudHJ5X3RlbXBsYXRlX3ZhbHVlc19ffSxldmVudH1yZXR1cm4gZXZlbnQubWVzc2FnZT1tZXNzYWdlLGV2ZW50fXZhciBoZWxwZXJzPV9fd2VicGFja19yZXF1aXJlX18oMzA1NDQpO2NsYXNzIEJyb3dzZXJDbGllbnQgZXh0ZW5kcyBDbGllbnR7Y29uc3RydWN0b3Iob3B0aW9ucyl7bGV0IG9wdHM9e3JlbGVhc2U6InN0cmluZyI9PXR5cGVvZiBfX1NFTlRSWV9SRUxFQVNFX18/X19TRU5UUllfUkVMRUFTRV9fOmhlbHBlcnMubTkuU0VOVFJZX1JFTEVBU0U/LmlkLHNlbmRDbGllbnRSZXBvcnRzOiEwLHBhcmVudFNwYW5Jc0Fsd2F5c1Jvb3RTcGFuOiEwLC4uLm9wdGlvbnN9LHNka1NvdXJjZT1oZWxwZXJzLm05LlNFTlRSWV9TREtfU09VUkNFfHwoMCxlbnYuUykoKTthcHBseVNka01ldGFkYXRhKG9wdHMsImJyb3dzZXIiLFsiYnJvd3NlciJdLHNka1NvdXJjZSksb3B0cy5fbWV0YWRhdGE/LnNkayYmKG9wdHMuX21ldGFkYXRhLnNkay5zZXR0aW5ncz17aW5mZXJfaXA6b3B0cy5zZW5kRGVmYXVsdFBpaT8iYXV0byI6Im5ldmVyIiwuLi5vcHRzLl9tZXRhZGF0YS5zZGsuc2V0dGluZ3N9KSxzdXBlcihvcHRzKTtsZXR7c2VuZERlZmF1bHRQaWksc2VuZENsaWVudFJlcG9ydHMsZW5hYmxlTG9ncyxfZXhwZXJpbWVudHMsZW5hYmxlTWV0cmljczplbmFibGVNZXRyaWNzT3B0aW9ufT10aGlzLl9vcHRpb25zLGVuYWJsZU1ldHJpY3M9ZW5hYmxlTWV0cmljc09wdGlvbj8/X2V4cGVyaW1lbnRzPy5lbmFibGVNZXRyaWNzPz8hMDtoZWxwZXJzLm05LmRvY3VtZW50JiYoc2VuZENsaWVudFJlcG9ydHN8fGVuYWJsZUxvZ3N8fGVuYWJsZU1ldHJpY3MpJiZoZWxwZXJzLm05LmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLCgpPT57ImhpZGRlbiI9PT1oZWxwZXJzLm05LmRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSYmKHNlbmRDbGllbnRSZXBvcnRzJiZ0aGlzLl9mbHVzaE91dGNvbWVzKCksZW5hYmxlTG9ncyYmX0lOVEVSTkFMX2ZsdXNoTG9nc0J1ZmZlcih0aGlzKSxlbmFibGVNZXRyaWNzJiZfSU5URVJOQUxfZmx1c2hNZXRyaWNzQnVmZmVyKHRoaXMpKX0pLHNlbmREZWZhdWx0UGlpJiZ0aGlzLm9uKCJiZWZvcmVTZW5kU2Vzc2lvbiIsYWRkQXV0b0lwQWRkcmVzc1RvU2Vzc2lvbil9ZXZlbnRGcm9tRXhjZXB0aW9uKGV4Y2VwdGlvbixoaW50KXtyZXR1cm4gZnVuY3Rpb24oc3RhY2tQYXJzZXIsZXhjZXB0aW9uLGhpbnQsYXR0YWNoU3RhY2t0cmFjZSl7bGV0IHN5bnRoZXRpY0V4Y2VwdGlvbj1oaW50Py5zeW50aGV0aWNFeGNlcHRpb258fHZvaWQgMCxldmVudD1ldmVudEZyb21Vbmtub3duSW5wdXQoc3RhY2tQYXJzZXIsZXhjZXB0aW9uLHN5bnRoZXRpY0V4Y2VwdGlvbixhdHRhY2hTdGFja3RyYWNlKTtyZXR1cm4oMCxtaXNjLkVHKShldmVudCksZXZlbnQubGV2ZWw9ImVycm9yIixoaW50Py5ldmVudF9pZCYmKGV2ZW50LmV2ZW50X2lkPWhpbnQuZXZlbnRfaWQpLCgwLHN5bmNwcm9taXNlLldEKShldmVudCl9KHRoaXMuX29wdGlvbnMuc3RhY2tQYXJzZXIsZXhjZXB0aW9uLGhpbnQsdGhpcy5fb3B0aW9ucy5hdHRhY2hTdGFja3RyYWNlKX1ldmVudEZyb21NZXNzYWdlKG1lc3NhZ2UsbGV2ZWw9ImluZm8iLGhpbnQpe3JldHVybiBmdW5jdGlvbihzdGFja1BhcnNlcixtZXNzYWdlLGxldmVsPSJpbmZvIixoaW50LGF0dGFjaFN0YWNrdHJhY2Upe2xldCBzeW50aGV0aWNFeGNlcHRpb249aGludD8uc3ludGhldGljRXhjZXB0aW9ufHx2b2lkIDAsZXZlbnQ9ZXZlbnRGcm9tU3RyaW5nKHN0YWNrUGFyc2VyLG1lc3NhZ2Usc3ludGhldGljRXhjZXB0aW9uLGF0dGFjaFN0YWNrdHJhY2UpO3JldHVybiBldmVudC5sZXZlbD1sZXZlbCxoaW50Py5ldmVudF9pZCYmKGV2ZW50LmV2ZW50X2lkPWhpbnQuZXZlbnRfaWQpLCgwLHN5bmNwcm9taXNlLldEKShldmVudCl9KHRoaXMuX29wdGlvbnMuc3RhY2tQYXJzZXIsbWVzc2FnZSxsZXZlbCxoaW50LHRoaXMuX29wdGlvbnMuYXR0YWNoU3RhY2t0cmFjZSl9X3ByZXBhcmVFdmVudChldmVudCxoaW50LGN1cnJlbnRTY29wZSxpc29sYXRpb25TY29wZSl7cmV0dXJuIGV2ZW50LnBsYXRmb3JtPWV2ZW50LnBsYXRmb3JtfHwiamF2YXNjcmlwdCIsc3VwZXIuX3ByZXBhcmVFdmVudChldmVudCxoaW50LGN1cnJlbnRTY29wZSxpc29sYXRpb25TY29wZSl9fXZhciBoYW5kbGVycz1fX3dlYnBhY2tfcmVxdWlyZV9fKDkxNDk5KTtmdW5jdGlvbiBpbnN0cnVtZW50Q29uc29sZSgpeyJjb25zb2xlImluIHdvcmxkd2lkZS5uJiZkZWJ1Z19sb2dnZXIuUlUuZm9yRWFjaChmdW5jdGlvbihsZXZlbCl7bGV2ZWwgaW4gd29ybGR3aWRlLm4uY29uc29sZSYmKDAsb2JqZWN0LmhsKSh3b3JsZHdpZGUubi5jb25zb2xlLGxldmVsLGZ1bmN0aW9uKG9yaWdpbmFsQ29uc29sZU1ldGhvZCl7cmV0dXJuIGRlYnVnX2xvZ2dlci5MRFtsZXZlbF09b3JpZ2luYWxDb25zb2xlTWV0aG9kLGZ1bmN0aW9uKC4uLmFyZ3MpeygwLGhhbmRsZXJzLnJLKSgiY29uc29sZSIse2FyZ3MsbGV2ZWx9KTtsZXQgbG9nPWRlYnVnX2xvZ2dlci5MRFtsZXZlbF07bG9nPy5hcHBseSh3b3JsZHdpZGUubi5jb25zb2xlLGFyZ3MpfX0pfSl9dmFyIGZldGNoPV9fd2VicGFja19yZXF1aXJlX18oMTIzMSk7ZnVuY3Rpb24gYWRkQnJlYWRjcnVtYihicmVhZGNydW1iLGhpbnQpe2xldCBjbGllbnQ9KDAsY3VycmVudFNjb3Blcy5zMykoKSxpc29sYXRpb25TY29wZT0oMCxjdXJyZW50U2NvcGVzLmFGKSgpO2lmKCFjbGllbnQpcmV0dXJuO2xldHtiZWZvcmVCcmVhZGNydW1iPW51bGwsbWF4QnJlYWRjcnVtYnM9MTAwfT1jbGllbnQuZ2V0T3B0aW9ucygpO2lmKG1heEJyZWFkY3J1bWJzPD0wKXJldHVybjtsZXQgdGltZXN0YW1wPSgwLHRpbWUueVcpKCksbWVyZ2VkQnJlYWRjcnVtYj17dGltZXN0YW1wLC4uLmJyZWFkY3J1bWJ9LGZpbmFsQnJlYWRjcnVtYj1iZWZvcmVCcmVhZGNydW1iPygwLGRlYnVnX2xvZ2dlci5DZikoKCk9PmJlZm9yZUJyZWFkY3J1bWIobWVyZ2VkQnJlYWRjcnVtYixoaW50KSk6bWVyZ2VkQnJlYWRjcnVtYjtudWxsIT09ZmluYWxCcmVhZGNydW1iJiYoY2xpZW50LmVtaXQmJmNsaWVudC5lbWl0KCJiZWZvcmVBZGRCcmVhZGNydW1iIixmaW5hbEJyZWFkY3J1bWIsaGludCksaXNvbGF0aW9uU2NvcGUuYWRkQnJlYWRjcnVtYihmaW5hbEJyZWFkY3J1bWIsbWF4QnJlYWRjcnVtYnMpKX12YXIgYnJvd3Nlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDM4MTQzKTtmdW5jdGlvbiBnZXRCcmVhZGNydW1iTG9nTGV2ZWxGcm9tSHR0cFN0YXR1c0NvZGUoc3RhdHVzQ29kZSl7aWYodm9pZCAwIT09c3RhdHVzQ29kZSlyZXR1cm4gc3RhdHVzQ29kZT49NDAwJiZzdGF0dXNDb2RlPDUwMD8id2FybmluZyI6c3RhdHVzQ29kZT49NTAwPyJlcnJvciI6dm9pZCAwfXZhciB1cmw9X193ZWJwYWNrX3JlcXVpcmVfXyg2ODMyNSksdHlwZXM9X193ZWJwYWNrX3JlcXVpcmVfXygyMzAzOSk7ZnVuY3Rpb24gaW5zdHJ1bWVudERPTSgpe2lmKCF0eXBlcy5tLmRvY3VtZW50KXJldHVybjtsZXQgdHJpZ2dlckRPTUhhbmRsZXI9aGFuZGxlcnMucksuYmluZChudWxsLCJkb20iKSxnbG9iYWxET01FdmVudEhhbmRsZXI9bWFrZURPTUV2ZW50SGFuZGxlcih0cmlnZ2VyRE9NSGFuZGxlciwhMCk7dHlwZXMubS5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZ2xvYmFsRE9NRXZlbnRIYW5kbGVyLCExKSx0eXBlcy5tLmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXByZXNzIixnbG9iYWxET01FdmVudEhhbmRsZXIsITEpLFsiRXZlbnRUYXJnZXQiLCJOb2RlIl0uZm9yRWFjaCh0YXJnZXQ9PntsZXQgZ2xvYmFsT2JqZWN0PXR5cGVzLm0scHJvdG89Z2xvYmFsT2JqZWN0W3RhcmdldF0/LnByb3RvdHlwZTtwcm90bz8uaGFzT3duUHJvcGVydHk/LigiYWRkRXZlbnRMaXN0ZW5lciIpJiYoKDAsb2JqZWN0LmhsKShwcm90bywiYWRkRXZlbnRMaXN0ZW5lciIsZnVuY3Rpb24ob3JpZ2luYWxBZGRFdmVudExpc3RlbmVyKXtyZXR1cm4gZnVuY3Rpb24odHlwZSxsaXN0ZW5lcixvcHRpb25zKXtpZigiY2xpY2siPT09dHlwZXx8ImtleXByZXNzIj09dHlwZSl0cnl7bGV0IGhhbmRsZXJzPXRoaXMuX19zZW50cnlfaW5zdHJ1bWVudGF0aW9uX2hhbmRsZXJzX189dGhpcy5fX3NlbnRyeV9pbnN0cnVtZW50YXRpb25faGFuZGxlcnNfX3x8e30saGFuZGxlckZvclR5cGU9aGFuZGxlcnNbdHlwZV09aGFuZGxlcnNbdHlwZV18fHtyZWZDb3VudDowfTtpZighaGFuZGxlckZvclR5cGUuaGFuZGxlcil7bGV0IGhhbmRsZXI9bWFrZURPTUV2ZW50SGFuZGxlcih0cmlnZ2VyRE9NSGFuZGxlcik7aGFuZGxlckZvclR5cGUuaGFuZGxlcj1oYW5kbGVyLG9yaWdpbmFsQWRkRXZlbnRMaXN0ZW5lci5jYWxsKHRoaXMsdHlwZSxoYW5kbGVyLG9wdGlvbnMpfWhhbmRsZXJGb3JUeXBlLnJlZkNvdW50Kyt9Y2F0Y2h7fXJldHVybiBvcmlnaW5hbEFkZEV2ZW50TGlzdGVuZXIuY2FsbCh0aGlzLHR5cGUsbGlzdGVuZXIsb3B0aW9ucyl9fSksKDAsb2JqZWN0LmhsKShwcm90bywicmVtb3ZlRXZlbnRMaXN0ZW5lciIsZnVuY3Rpb24ob3JpZ2luYWxSZW1vdmVFdmVudExpc3RlbmVyKXtyZXR1cm4gZnVuY3Rpb24odHlwZSxsaXN0ZW5lcixvcHRpb25zKXtpZigiY2xpY2siPT09dHlwZXx8ImtleXByZXNzIj09dHlwZSl0cnl7bGV0IGhhbmRsZXJzPXRoaXMuX19zZW50cnlfaW5zdHJ1bWVudGF0aW9uX2hhbmRsZXJzX198fHt9LGhhbmRsZXJGb3JUeXBlPWhhbmRsZXJzW3R5cGVdO2hhbmRsZXJGb3JUeXBlJiYoaGFuZGxlckZvclR5cGUucmVmQ291bnQtLSxoYW5kbGVyRm9yVHlwZS5yZWZDb3VudDw9MCYmKG9yaWdpbmFsUmVtb3ZlRXZlbnRMaXN0ZW5lci5jYWxsKHRoaXMsdHlwZSxoYW5kbGVyRm9yVHlwZS5oYW5kbGVyLG9wdGlvbnMpLGhhbmRsZXJGb3JUeXBlLmhhbmRsZXI9dm9pZCAwLGRlbGV0ZSBoYW5kbGVyc1t0eXBlXSksMD09PU9iamVjdC5rZXlzKGhhbmRsZXJzKS5sZW5ndGgmJmRlbGV0ZSB0aGlzLl9fc2VudHJ5X2luc3RydW1lbnRhdGlvbl9oYW5kbGVyc19fKX1jYXRjaHt9cmV0dXJuIG9yaWdpbmFsUmVtb3ZlRXZlbnRMaXN0ZW5lci5jYWxsKHRoaXMsdHlwZSxsaXN0ZW5lcixvcHRpb25zKX19KSl9KX1mdW5jdGlvbiBtYWtlRE9NRXZlbnRIYW5kbGVyKGhhbmRsZXIsZ2xvYmFsTGlzdGVuZXI9ITEpe3JldHVybiBldmVudD0+e2lmKCFldmVudHx8ZXZlbnQuX3NlbnRyeUNhcHR1cmVkKXJldHVybjtsZXQgdGFyZ2V0PWZ1bmN0aW9uKGV2ZW50KXt0cnl7cmV0dXJuIGV2ZW50LnRhcmdldH1jYXRjaHtyZXR1cm4gbnVsbH19KGV2ZW50KTtpZigia2V5cHJlc3MiPT09ZXZlbnQudHlwZSYmKCF0YXJnZXQ/LnRhZ05hbWV8fCJJTlBVVCIhPT10YXJnZXQudGFnTmFtZSYmIlRFWFRBUkVBIiE9PXRhcmdldC50YWdOYW1lJiYhdGFyZ2V0LmlzQ29udGVudEVkaXRhYmxlKSlyZXR1cm47KDAsb2JqZWN0LnhwKShldmVudCwiX3NlbnRyeUNhcHR1cmVkIiwhMCksdGFyZ2V0JiYhdGFyZ2V0Ll9zZW50cnlJZCYmKDAsb2JqZWN0LnhwKSh0YXJnZXQsIl9zZW50cnlJZCIsKDAsbWlzYy5ETSkoKSk7bGV0IG5hbWU9ImtleXByZXNzIj09PWV2ZW50LnR5cGU/ImlucHV0IjpldmVudC50eXBlOyFmdW5jdGlvbihldmVudCl7aWYoZXZlbnQudHlwZSE9PWxhc3RDYXB0dXJlZEV2ZW50VHlwZSlyZXR1cm4hMTt0cnl7aWYoIWV2ZW50LnRhcmdldHx8ZXZlbnQudGFyZ2V0Ll9zZW50cnlJZCE9PWxhc3RDYXB0dXJlZEV2ZW50VGFyZ2V0SWQpcmV0dXJuITF9Y2F0Y2h7fXJldHVybiEwfShldmVudCkmJihoYW5kbGVyKHtldmVudCxuYW1lLGdsb2JhbDpnbG9iYWxMaXN0ZW5lcn0pLGxhc3RDYXB0dXJlZEV2ZW50VHlwZT1ldmVudC50eXBlLGxhc3RDYXB0dXJlZEV2ZW50VGFyZ2V0SWQ9dGFyZ2V0P3RhcmdldC5fc2VudHJ5SWQ6dm9pZCAwKSxjbGVhclRpbWVvdXQoZGVib3VuY2VUaW1lcklEKSxkZWJvdW5jZVRpbWVySUQ9dHlwZXMubS5zZXRUaW1lb3V0KCgpPT57bGFzdENhcHR1cmVkRXZlbnRUYXJnZXRJZD12b2lkIDAsbGFzdENhcHR1cmVkRXZlbnRUeXBlPXZvaWQgMH0sMWUzKX19dmFyIHhocj1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3MTI3KSxpbnN0cnVtZW50X2hpc3Rvcnk9X193ZWJwYWNrX3JlcXVpcmVfXyg5OTU3OSkscHJvZF9kZWJ1Z19idWlsZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDg1MjY5KTtsZXQgX2JyZWFkY3J1bWJzSW50ZWdyYXRpb249KG9wdGlvbnM9e30pPT57bGV0IF9vcHRpb25zPXtjb25zb2xlOiEwLGRvbTohMCxmZXRjaDohMCxoaXN0b3J5OiEwLHNlbnRyeTohMCx4aHI6ITAsLi4ub3B0aW9uc307cmV0dXJue25hbWU6IkJyZWFkY3J1bWJzIixzZXR1cChjbGllbnQpe3ZhciBkb207X29wdGlvbnMuY29uc29sZSYmZnVuY3Rpb24oaGFuZGxlcil7bGV0IHR5cGU9ImNvbnNvbGUiOygwLGhhbmRsZXJzLkhqKSh0eXBlLGhhbmRsZXIpLCgwLGhhbmRsZXJzLkQyKSh0eXBlLGluc3RydW1lbnRDb25zb2xlKX0oZnVuY3Rpb24oaGFuZGxlckRhdGEpe3ZhciBsZXZlbDtpZigoMCxjdXJyZW50U2NvcGVzLnMzKSgpIT09Y2xpZW50KXJldHVybjtsZXQgYnJlYWRjcnVtYj17Y2F0ZWdvcnk6ImNvbnNvbGUiLGRhdGE6e2FyZ3VtZW50czpoYW5kbGVyRGF0YS5hcmdzLGxvZ2dlcjoiY29uc29sZSJ9LGxldmVsOiJ3YXJuIj09PShsZXZlbD1oYW5kbGVyRGF0YS5sZXZlbCk/Indhcm5pbmciOlsiZmF0YWwiLCJlcnJvciIsIndhcm5pbmciLCJsb2ciLCJpbmZvIiwiZGVidWciXS5pbmNsdWRlcyhsZXZlbCk/bGV2ZWw6ImxvZyIsbWVzc2FnZTooMCxzdHJpbmcubkspKGhhbmRsZXJEYXRhLmFyZ3MsIiAiKX07aWYoImFzc2VydCI9PT1oYW5kbGVyRGF0YS5sZXZlbCl7aWYoITEhPT1oYW5kbGVyRGF0YS5hcmdzWzBdKXJldHVybjticmVhZGNydW1iLm1lc3NhZ2U9YEFzc2VydGlvbiBmYWlsZWQ6ICR7KDAsc3RyaW5nLm5LKShoYW5kbGVyRGF0YS5hcmdzLnNsaWNlKDEpLCIgIil8fCJjb25zb2xlLmFzc2VydCJ9YCxicmVhZGNydW1iLmRhdGEuYXJndW1lbnRzPWhhbmRsZXJEYXRhLmFyZ3Muc2xpY2UoMSl9YWRkQnJlYWRjcnVtYihicmVhZGNydW1iLHtpbnB1dDpoYW5kbGVyRGF0YS5hcmdzLGxldmVsOmhhbmRsZXJEYXRhLmxldmVsfSl9KSxfb3B0aW9ucy5kb20mJihkb209X29wdGlvbnMuZG9tLCgwLGhhbmRsZXJzLkhqKSgiZG9tIixmdW5jdGlvbihoYW5kbGVyRGF0YSl7bGV0IHRhcmdldCxjb21wb25lbnROYW1lO2lmKCgwLGN1cnJlbnRTY29wZXMuczMpKCkhPT1jbGllbnQpcmV0dXJuO2xldCBrZXlBdHRycz0ib2JqZWN0Ij09dHlwZW9mIGRvbT9kb20uc2VyaWFsaXplQXR0cmlidXRlOnZvaWQgMCxtYXhTdHJpbmdMZW5ndGg9Im9iamVjdCI9PXR5cGVvZiBkb20mJiJudW1iZXIiPT10eXBlb2YgZG9tLm1heFN0cmluZ0xlbmd0aD9kb20ubWF4U3RyaW5nTGVuZ3RoOnZvaWQgMDttYXhTdHJpbmdMZW5ndGgmJm1heFN0cmluZ0xlbmd0aD4xMDI0JiYocHJvZF9kZWJ1Z19idWlsZC5YJiZkZWJ1Z19sb2dnZXIuZkYud2FybihgXGBkb20ubWF4U3RyaW5nTGVuZ3RoXGAgY2Fubm90IGV4Y2VlZCAxMDI0LCBidXQgYSB2YWx1ZSBvZiAke21heFN0cmluZ0xlbmd0aH0gd2FzIGNvbmZpZ3VyZWQuIFNlbnRyeSB3aWxsIHVzZSAxMDI0IGluc3RlYWQuYCksbWF4U3RyaW5nTGVuZ3RoPTEwMjQpLCJzdHJpbmciPT10eXBlb2Yga2V5QXR0cnMmJihrZXlBdHRycz1ba2V5QXR0cnNdKTt0cnl7bGV0IGV2ZW50PWhhbmRsZXJEYXRhLmV2ZW50LGVsZW1lbnQ9ZXZlbnQmJmV2ZW50LnRhcmdldD9ldmVudC50YXJnZXQ6ZXZlbnQ7dGFyZ2V0PSgwLGJyb3dzZXIuUnQpKGVsZW1lbnQse2tleUF0dHJzLG1heFN0cmluZ0xlbmd0aH0pLGNvbXBvbmVudE5hbWU9KDAsYnJvd3Nlci5pWSkoZWxlbWVudCl9Y2F0Y2h7dGFyZ2V0PSI8dW5rbm93bj4ifWlmKDA9PT10YXJnZXQubGVuZ3RoKXJldHVybjtsZXQgYnJlYWRjcnVtYj17Y2F0ZWdvcnk6YHVpLiR7aGFuZGxlckRhdGEubmFtZX1gLG1lc3NhZ2U6dGFyZ2V0fTtjb21wb25lbnROYW1lJiYoYnJlYWRjcnVtYi5kYXRhPXsidWkuY29tcG9uZW50X25hbWUiOmNvbXBvbmVudE5hbWV9KSxhZGRCcmVhZGNydW1iKGJyZWFkY3J1bWIse2V2ZW50OmhhbmRsZXJEYXRhLmV2ZW50LG5hbWU6aGFuZGxlckRhdGEubmFtZSxnbG9iYWw6aGFuZGxlckRhdGEuZ2xvYmFsfSl9KSwoMCxoYW5kbGVycy5EMikoImRvbSIsaW5zdHJ1bWVudERPTSkpLF9vcHRpb25zLnhociYmKDAseGhyLlVLKShmdW5jdGlvbihoYW5kbGVyRGF0YSl7aWYoKDAsY3VycmVudFNjb3Blcy5zMykoKSE9PWNsaWVudClyZXR1cm47bGV0e3N0YXJ0VGltZXN0YW1wLGVuZFRpbWVzdGFtcH09aGFuZGxlckRhdGEsc2VudHJ5WGhyRGF0YT1oYW5kbGVyRGF0YS54aHJbeGhyLnhVXTtpZighc3RhcnRUaW1lc3RhbXB8fCFlbmRUaW1lc3RhbXB8fCFzZW50cnlYaHJEYXRhKXJldHVybjtsZXR7bWV0aG9kLHVybCxzdGF0dXNfY29kZSxib2R5fT1zZW50cnlYaHJEYXRhLGhpbnQ9e3hocjpoYW5kbGVyRGF0YS54aHIsaW5wdXQ6Ym9keSxzdGFydFRpbWVzdGFtcCxlbmRUaW1lc3RhbXB9LGJyZWFkY3J1bWI9e2NhdGVnb3J5OiJ4aHIiLGRhdGE6e21ldGhvZCx1cmwsc3RhdHVzX2NvZGV9LHR5cGU6Imh0dHAiLGxldmVsOmdldEJyZWFkY3J1bWJMb2dMZXZlbEZyb21IdHRwU3RhdHVzQ29kZShzdGF0dXNfY29kZSl9O2NsaWVudC5lbWl0KCJiZWZvcmVPdXRnb2luZ1JlcXVlc3RCcmVhZGNydW1iIixicmVhZGNydW1iLGhpbnQpLGFkZEJyZWFkY3J1bWIoYnJlYWRjcnVtYixoaW50KX0pLF9vcHRpb25zLmZldGNoJiYoMCxmZXRjaC5VZikoZnVuY3Rpb24oaGFuZGxlckRhdGEpe2lmKCgwLGN1cnJlbnRTY29wZXMuczMpKCkhPT1jbGllbnQpcmV0dXJuO2xldHtzdGFydFRpbWVzdGFtcCxlbmRUaW1lc3RhbXB9PWhhbmRsZXJEYXRhO2lmKCEoIWVuZFRpbWVzdGFtcHx8aGFuZGxlckRhdGEuZmV0Y2hEYXRhLnVybC5tYXRjaCgvc2VudHJ5X2tleS8pJiYiUE9TVCI9PT1oYW5kbGVyRGF0YS5mZXRjaERhdGEubWV0aG9kKSl7aWYoaGFuZGxlckRhdGEuZmV0Y2hEYXRhLm1ldGhvZCxoYW5kbGVyRGF0YS5mZXRjaERhdGEudXJsLGhhbmRsZXJEYXRhLmVycm9yKXtsZXQgZGF0YT1oYW5kbGVyRGF0YS5mZXRjaERhdGEsaGludD17ZGF0YTpoYW5kbGVyRGF0YS5lcnJvcixpbnB1dDpoYW5kbGVyRGF0YS5hcmdzLHN0YXJ0VGltZXN0YW1wLGVuZFRpbWVzdGFtcH0sYnJlYWRjcnVtYj17Y2F0ZWdvcnk6ImZldGNoIixkYXRhLGxldmVsOiJlcnJvciIsdHlwZToiaHR0cCJ9O2NsaWVudC5lbWl0KCJiZWZvcmVPdXRnb2luZ1JlcXVlc3RCcmVhZGNydW1iIixicmVhZGNydW1iLGhpbnQpLGFkZEJyZWFkY3J1bWIoYnJlYWRjcnVtYixoaW50KX1lbHNle2xldCByZXNwb25zZT1oYW5kbGVyRGF0YS5yZXNwb25zZSxkYXRhMT17Li4uaGFuZGxlckRhdGEuZmV0Y2hEYXRhLHN0YXR1c19jb2RlOnJlc3BvbnNlPy5zdGF0dXN9O2hhbmRsZXJEYXRhLmZldGNoRGF0YS5yZXF1ZXN0X2JvZHlfc2l6ZSxoYW5kbGVyRGF0YS5mZXRjaERhdGEucmVzcG9uc2VfYm9keV9zaXplLHJlc3BvbnNlPy5zdGF0dXM7bGV0IGhpbnQxPXtpbnB1dDpoYW5kbGVyRGF0YS5hcmdzLHJlc3BvbnNlLHN0YXJ0VGltZXN0YW1wLGVuZFRpbWVzdGFtcH0sYnJlYWRjcnVtYjE9e2NhdGVnb3J5OiJmZXRjaCIsZGF0YTpkYXRhMSx0eXBlOiJodHRwIixsZXZlbDpnZXRCcmVhZGNydW1iTG9nTGV2ZWxGcm9tSHR0cFN0YXR1c0NvZGUoZGF0YTEuc3RhdHVzX2NvZGUpfTtjbGllbnQuZW1pdCgiYmVmb3JlT3V0Z29pbmdSZXF1ZXN0QnJlYWRjcnVtYiIsYnJlYWRjcnVtYjEsaGludDEpLGFkZEJyZWFkY3J1bWIoYnJlYWRjcnVtYjEsaGludDEpfX19KSxfb3B0aW9ucy5oaXN0b3J5JiYoMCxpbnN0cnVtZW50X2hpc3RvcnkuYSkoZnVuY3Rpb24oaGFuZGxlckRhdGEpe2lmKCgwLGN1cnJlbnRTY29wZXMuczMpKCkhPT1jbGllbnQpcmV0dXJuO2xldCBmcm9tPWhhbmRsZXJEYXRhLmZyb20sdG89aGFuZGxlckRhdGEudG8scGFyc2VkTG9jPSgwLHVybC5lbikoaGVscGVycy5tOS5sb2NhdGlvbi5ocmVmKSxwYXJzZWRGcm9tPWZyb20/KDAsdXJsLmVuKShmcm9tKTp2b2lkIDAscGFyc2VkVG89KDAsdXJsLmVuKSh0byk7cGFyc2VkRnJvbT8ucGF0aHx8KHBhcnNlZEZyb209cGFyc2VkTG9jKSxwYXJzZWRMb2MucHJvdG9jb2w9PT1wYXJzZWRUby5wcm90b2NvbCYmcGFyc2VkTG9jLmhvc3Q9PT1wYXJzZWRUby5ob3N0JiYodG89cGFyc2VkVG8ucmVsYXRpdmUpLHBhcnNlZExvYy5wcm90b2NvbD09PXBhcnNlZEZyb20ucHJvdG9jb2wmJnBhcnNlZExvYy5ob3N0PT09cGFyc2VkRnJvbS5ob3N0JiYoZnJvbT1wYXJzZWRGcm9tLnJlbGF0aXZlKSxhZGRCcmVhZGNydW1iKHtjYXRlZ29yeToibmF2aWdhdGlvbiIsZGF0YTp7ZnJvbSx0b319KX0pLF9vcHRpb25zLnNlbnRyeSYmY2xpZW50Lm9uKCJiZWZvcmVTZW5kRXZlbnQiLGZ1bmN0aW9uKGV2ZW50KXsoMCxjdXJyZW50U2NvcGVzLnMzKSgpPT09Y2xpZW50JiZhZGRCcmVhZGNydW1iKHtjYXRlZ29yeTpgc2VudHJ5LiR7InRyYW5zYWN0aW9uIj09PWV2ZW50LnR5cGU/InRyYW5zYWN0aW9uIjoiZXZlbnQifWAsZXZlbnRfaWQ6ZXZlbnQuZXZlbnRfaWQsbGV2ZWw6ZXZlbnQubGV2ZWwsbWVzc2FnZTooMCxtaXNjLmpIKShldmVudCl9LHtldmVudH0pfSl9fX0sREVGQVVMVF9FVkVOVF9UQVJHRVQ9WyJFdmVudFRhcmdldCIsIldpbmRvdyIsIk5vZGUiLCJBcHBsaWNhdGlvbkNhY2hlIiwiQXVkaW9UcmFja0xpc3QiLCJCcm9hZGNhc3RDaGFubmVsIiwiQ2hhbm5lbE1lcmdlck5vZGUiLCJDcnlwdG9PcGVyYXRpb24iLCJFdmVudFNvdXJjZSIsIkZpbGVSZWFkZXIiLCJIVE1MVW5rbm93bkVsZW1lbnQiLCJJREJEYXRhYmFzZSIsIklEQlJlcXVlc3QiLCJJREJUcmFuc2FjdGlvbiIsIktleU9wZXJhdGlvbiIsIk1lZGlhQ29udHJvbGxlciIsIk1lc3NhZ2VQb3J0IiwiTW9kYWxXaW5kb3ciLCJOb3RpZmljYXRpb24iLCJTVkdFbGVtZW50SW5zdGFuY2UiLCJTY3JlZW4iLCJTaGFyZWRXb3JrZXIiLCJUZXh0VHJhY2siLCJUZXh0VHJhY2tDdWUiLCJUZXh0VHJhY2tMaXN0IiwiV2ViU29ja2V0IiwiV2ViU29ja2V0V29ya2VyIiwiV29ya2VyIiwiWE1MSHR0cFJlcXVlc3QiLCJYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0IiwiWE1MSHR0cFJlcXVlc3RVcGxvYWQiXSxfYnJvd3NlckFwaUVycm9yc0ludGVncmF0aW9uPShvcHRpb25zPXt9KT0+e2xldCBfb3B0aW9ucz17WE1MSHR0cFJlcXVlc3Q6ITAsZXZlbnRUYXJnZXQ6ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lOiEwLHNldEludGVydmFsOiEwLHNldFRpbWVvdXQ6ITAsdW5yZWdpc3Rlck9yaWdpbmFsQ2FsbGJhY2tzOiExLC4uLm9wdGlvbnN9O3JldHVybntuYW1lOiJCcm93c2VyQXBpRXJyb3JzIixzZXR1cE9uY2UoKXtfb3B0aW9ucy5zZXRUaW1lb3V0JiYoMCxvYmplY3QuaGwpKGhlbHBlcnMubTksInNldFRpbWVvdXQiLF93cmFwVGltZUZ1bmN0aW9uKSxfb3B0aW9ucy5zZXRJbnRlcnZhbCYmKDAsb2JqZWN0LmhsKShoZWxwZXJzLm05LCJzZXRJbnRlcnZhbCIsX3dyYXBUaW1lRnVuY3Rpb24pLF9vcHRpb25zLnJlcXVlc3RBbmltYXRpb25GcmFtZSYmKDAsb2JqZWN0LmhsKShoZWxwZXJzLm05LCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLF93cmFwUkFGKSxfb3B0aW9ucy5YTUxIdHRwUmVxdWVzdCYmIlhNTEh0dHBSZXF1ZXN0ImluIGhlbHBlcnMubTkmJigwLG9iamVjdC5obCkoWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLCJzZW5kIixfd3JhcFhIUik7bGV0IGV2ZW50VGFyZ2V0T3B0aW9uPV9vcHRpb25zLmV2ZW50VGFyZ2V0O2lmKGV2ZW50VGFyZ2V0T3B0aW9uKXtsZXQgZXZlbnRUYXJnZXQ9QXJyYXkuaXNBcnJheShldmVudFRhcmdldE9wdGlvbik/ZXZlbnRUYXJnZXRPcHRpb246REVGQVVMVF9FVkVOVF9UQVJHRVQ7ZXZlbnRUYXJnZXQuZm9yRWFjaCh0YXJnZXQ9PihmdW5jdGlvbih0YXJnZXQsaW50ZWdyYXRpb25PcHRpb25zKXtsZXQgZ2xvYmFsT2JqZWN0PWhlbHBlcnMubTkscHJvdG89Z2xvYmFsT2JqZWN0W3RhcmdldF0/LnByb3RvdHlwZTtwcm90bz8uaGFzT3duUHJvcGVydHk/LigiYWRkRXZlbnRMaXN0ZW5lciIpJiYoKDAsb2JqZWN0LmhsKShwcm90bywiYWRkRXZlbnRMaXN0ZW5lciIsZnVuY3Rpb24ob3JpZ2luYWwpe3JldHVybiBmdW5jdGlvbihldmVudE5hbWUsZm4sb3B0aW9ucyl7dHJ5eyJmdW5jdGlvbiI9PXR5cGVvZiBmbi5oYW5kbGVFdmVudCYmKGZuLmhhbmRsZUV2ZW50PSgwLGhlbHBlcnMucmUpKGZuLmhhbmRsZUV2ZW50LHttZWNoYW5pc206e2RhdGE6e2hhbmRsZXI6KDAsc3RhY2t0cmFjZS4kUCkoZm4pLHRhcmdldH0saGFuZGxlZDohMSx0eXBlOiJhdXRvLmJyb3dzZXIuYnJvd3NlcmFwaWVycm9ycy5oYW5kbGVFdmVudCJ9fSkpfWNhdGNoe31yZXR1cm4gaW50ZWdyYXRpb25PcHRpb25zLnVucmVnaXN0ZXJPcmlnaW5hbENhbGxiYWNrcyYmdGhpcyYmIm9iamVjdCI9PXR5cGVvZiB0aGlzJiYicmVtb3ZlRXZlbnRMaXN0ZW5lciJpbiB0aGlzJiYiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyJiZ0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLGZuKSxvcmlnaW5hbC5hcHBseSh0aGlzLFtldmVudE5hbWUsKDAsaGVscGVycy5yZSkoZm4se21lY2hhbmlzbTp7ZGF0YTp7aGFuZGxlcjooMCxzdGFja3RyYWNlLiRQKShmbiksdGFyZ2V0fSxoYW5kbGVkOiExLHR5cGU6ImF1dG8uYnJvd3Nlci5icm93c2VyYXBpZXJyb3JzLmFkZEV2ZW50TGlzdGVuZXIifX0pLG9wdGlvbnNdKX19KSwoMCxvYmplY3QuaGwpKHByb3RvLCJyZW1vdmVFdmVudExpc3RlbmVyIixmdW5jdGlvbihvcmlnaW5hbFJlbW92ZUV2ZW50TGlzdGVuZXIpe3JldHVybiBmdW5jdGlvbihldmVudE5hbWUsZm4sb3B0aW9ucyl7dHJ5e2xldCBvcmlnaW5hbEV2ZW50SGFuZGxlcj1mbi5fX3NlbnRyeV93cmFwcGVkX187b3JpZ2luYWxFdmVudEhhbmRsZXImJm9yaWdpbmFsUmVtb3ZlRXZlbnRMaXN0ZW5lci5jYWxsKHRoaXMsZXZlbnROYW1lLG9yaWdpbmFsRXZlbnRIYW5kbGVyLG9wdGlvbnMpfWNhdGNoe31yZXR1cm4gb3JpZ2luYWxSZW1vdmVFdmVudExpc3RlbmVyLmNhbGwodGhpcyxldmVudE5hbWUsZm4sb3B0aW9ucyl9fSkpfSkodGFyZ2V0LF9vcHRpb25zKSl9fX19O2Z1bmN0aW9uIF93cmFwVGltZUZ1bmN0aW9uKG9yaWdpbmFsKXtyZXR1cm4gZnVuY3Rpb24oLi4uYXJncyl7bGV0IG9yaWdpbmFsQ2FsbGJhY2s9YXJnc1swXTtyZXR1cm4gYXJnc1swXT0oMCxoZWxwZXJzLnJlKShvcmlnaW5hbENhbGxiYWNrLHttZWNoYW5pc206e2hhbmRsZWQ6ITEsdHlwZTpgYXV0by5icm93c2VyLmJyb3dzZXJhcGllcnJvcnMuJHsoMCxzdGFja3RyYWNlLiRQKShvcmlnaW5hbCl9YH19KSxvcmlnaW5hbC5hcHBseSh0aGlzLGFyZ3MpfX1mdW5jdGlvbiBfd3JhcFJBRihvcmlnaW5hbCl7cmV0dXJuIGZ1bmN0aW9uKGNhbGxiYWNrKXtyZXR1cm4gb3JpZ2luYWwuYXBwbHkodGhpcyxbKDAsaGVscGVycy5yZSkoY2FsbGJhY2sse21lY2hhbmlzbTp7ZGF0YTp7aGFuZGxlcjooMCxzdGFja3RyYWNlLiRQKShvcmlnaW5hbCl9LGhhbmRsZWQ6ITEsdHlwZToiYXV0by5icm93c2VyLmJyb3dzZXJhcGllcnJvcnMucmVxdWVzdEFuaW1hdGlvbkZyYW1lIn19KV0pfX1mdW5jdGlvbiBfd3JhcFhIUihvcmlnaW5hbFNlbmQpe3JldHVybiBmdW5jdGlvbiguLi5hcmdzKXtsZXQgeGhyPXRoaXM7cmV0dXJuWyJvbmxvYWQiLCJvbmVycm9yIiwib25wcm9ncmVzcyIsIm9ucmVhZHlzdGF0ZWNoYW5nZSJdLmZvckVhY2gocHJvcD0+e3Byb3AgaW4geGhyJiYiZnVuY3Rpb24iPT10eXBlb2YgeGhyW3Byb3BdJiYoMCxvYmplY3QuaGwpKHhocixwcm9wLGZ1bmN0aW9uKG9yaWdpbmFsKXtsZXQgd3JhcE9wdGlvbnM9e21lY2hhbmlzbTp7ZGF0YTp7aGFuZGxlcjooMCxzdGFja3RyYWNlLiRQKShvcmlnaW5hbCl9LGhhbmRsZWQ6ITEsdHlwZTpgYXV0by5icm93c2VyLmJyb3dzZXJhcGllcnJvcnMueGhyLiR7cHJvcH1gfX0sb3JpZ2luYWxGdW5jdGlvbj0oMCxvYmplY3QuSEspKG9yaWdpbmFsKTtyZXR1cm4gb3JpZ2luYWxGdW5jdGlvbiYmKHdyYXBPcHRpb25zLm1lY2hhbmlzbS5kYXRhLmhhbmRsZXI9KDAsc3RhY2t0cmFjZS4kUCkob3JpZ2luYWxGdW5jdGlvbikpLCgwLGhlbHBlcnMucmUpKG9yaWdpbmFsLHdyYXBPcHRpb25zKX0pfSksb3JpZ2luYWxTZW5kLmFwcGx5KHRoaXMsYXJncyl9fWxldCBicm93c2VyU2Vzc2lvbkludGVncmF0aW9uPSgpPT4oe25hbWU6IkJyb3dzZXJTZXNzaW9uIixzZXR1cE9uY2UoKXtpZih2b2lkIDA9PT1oZWxwZXJzLm05LmRvY3VtZW50KXtwcm9kX2RlYnVnX2J1aWxkLlgmJmRlYnVnX2xvZ2dlci5mRi53YXJuKCJVc2luZyB0aGUgYGJyb3dzZXJTZXNzaW9uSW50ZWdyYXRpb25gIGluIG5vbi1icm93c2VyIGVudmlyb25tZW50cyBpcyBub3Qgc3VwcG9ydGVkLiIpO3JldHVybn0oMCxlc21fZXhwb3J0cy55aikoe2lnbm9yZUR1cmF0aW9uOiEwfSksKDAsZXNtX2V4cG9ydHMuY2cpKCksKDAsaW5zdHJ1bWVudF9oaXN0b3J5LmEpKCh7ZnJvbSx0b30pPT57dm9pZCAwIT09ZnJvbSYmZnJvbSE9PXRvJiYoKDAsZXNtX2V4cG9ydHMueWopKHtpZ25vcmVEdXJhdGlvbjohMH0pLCgwLGVzbV9leHBvcnRzLmNnKSgpKX0pfX0pO3ZhciBnbG9iYWxFcnJvcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDIxMzY4KSxnbG9iYWxVbmhhbmRsZWRSZWplY3Rpb249X193ZWJwYWNrX3JlcXVpcmVfXyg4OTkwMik7bGV0IF9nbG9iYWxIYW5kbGVyc0ludGVncmF0aW9uPShvcHRpb25zPXt9KT0+e2xldCBfb3B0aW9ucz17b25lcnJvcjohMCxvbnVuaGFuZGxlZHJlamVjdGlvbjohMCwuLi5vcHRpb25zfTtyZXR1cm57bmFtZToiR2xvYmFsSGFuZGxlcnMiLHNldHVwT25jZSgpe0Vycm9yLnN0YWNrVHJhY2VMaW1pdD01MH0sc2V0dXAoY2xpZW50KXtfb3B0aW9ucy5vbmVycm9yJiYoKDAsZ2xvYmFsRXJyb3IuVikoZGF0YT0+e2xldHtzdGFja1BhcnNlcixhdHRhY2hTdGFja3RyYWNlfT1nZXRPcHRpb25zKCk7aWYoKDAsY3VycmVudFNjb3Blcy5zMykoKSE9PWNsaWVudHx8KDAsaGVscGVycy5XeikoKSlyZXR1cm47bGV0e21zZyx1cmwsbGluZSxjb2x1bW4sZXJyb3J9PWRhdGEsZXZlbnQ9ZnVuY3Rpb24oZXZlbnQsdXJsLGxpbmUsY29sdW1uKXtsZXQgZT1ldmVudC5leGNlcHRpb249ZXZlbnQuZXhjZXB0aW9ufHx7fSxldj1lLnZhbHVlcz1lLnZhbHVlc3x8W10sZXYwPWV2WzBdPWV2WzBdfHx7fSxldjBzPWV2MC5zdGFja3RyYWNlPWV2MC5zdGFja3RyYWNlfHx7fSxldjBzZj1ldjBzLmZyYW1lcz1ldjBzLmZyYW1lc3x8W10sZmlsZW5hbWU9ZnVuY3Rpb24odXJsKXtpZigoMCxpcy5IRCkodXJsKSYmMCE9PXVybC5sZW5ndGgpe2lmKHVybC5zdGFydHNXaXRoKCJkYXRhOiIpKXtsZXQgbWF0Y2g9dXJsLm1hdGNoKC9eZGF0YTooW147XSspLyksbWltZVR5cGU9bWF0Y2g/bWF0Y2hbMV06InRleHQvamF2YXNjcmlwdCIsaXNCYXNlNjQ9dXJsLmluY2x1ZGVzKCJiYXNlNjQsIik7cmV0dXJuYDxkYXRhOiR7bWltZVR5cGV9JHtpc0Jhc2U2ND8iLGJhc2U2NCI6IiJ9PmB9cmV0dXJuIHVybH19KHVybCk/PygwLGJyb3dzZXIubDQpKCk7cmV0dXJuIDA9PT1ldjBzZi5sZW5ndGgmJmV2MHNmLnB1c2goe2NvbG5vOmNvbHVtbixmaWxlbmFtZSxmdW5jdGlvbjpzdGFja3RyYWNlLkZpLGluX2FwcDohMCxsaW5lbm86bGluZX0pLGV2ZW50fShldmVudEZyb21Vbmtub3duSW5wdXQoc3RhY2tQYXJzZXIsZXJyb3J8fG1zZyx2b2lkIDAsYXR0YWNoU3RhY2t0cmFjZSwhMSksdXJsLGxpbmUsY29sdW1uKTtldmVudC5sZXZlbD0iZXJyb3IiLCgwLGVzbV9leHBvcnRzLmVOKShldmVudCx7b3JpZ2luYWxFeGNlcHRpb246ZXJyb3IsbWVjaGFuaXNtOntoYW5kbGVkOiExLHR5cGU6ImF1dG8uYnJvd3Nlci5nbG9iYWxfaGFuZGxlcnMub25lcnJvciJ9fSl9KSxnbG9iYWxIYW5kbGVyTG9nKCJvbmVycm9yIikpLF9vcHRpb25zLm9udW5oYW5kbGVkcmVqZWN0aW9uJiYoKDAsZ2xvYmFsVW5oYW5kbGVkUmVqZWN0aW9uLmgpKGU9PntsZXR7c3RhY2tQYXJzZXIsYXR0YWNoU3RhY2t0cmFjZX09Z2V0T3B0aW9ucygpO2lmKCgwLGN1cnJlbnRTY29wZXMuczMpKCkhPT1jbGllbnR8fCgwLGhlbHBlcnMuV3opKCkpcmV0dXJuO2xldCBlcnJvcj1mdW5jdGlvbihlcnJvcil7aWYoKDAsaXMucHQpKGVycm9yKSlyZXR1cm4gZXJyb3I7dHJ5e2lmKCJyZWFzb24iaW4gZXJyb3IpcmV0dXJuIGVycm9yLnJlYXNvbjtpZigiZGV0YWlsImluIGVycm9yJiYicmVhc29uImluIGVycm9yLmRldGFpbClyZXR1cm4gZXJyb3IuZGV0YWlsLnJlYXNvbn1jYXRjaHt9cmV0dXJuIGVycm9yfShlKSxldmVudD0oMCxpcy5wdCkoZXJyb3IpP3tleGNlcHRpb246e3ZhbHVlczpbe3R5cGU6IlVuaGFuZGxlZFJlamVjdGlvbiIsdmFsdWU6YE5vbi1FcnJvciBwcm9taXNlIHJlamVjdGlvbiBjYXB0dXJlZCB3aXRoIHZhbHVlOiAke1N0cmluZyhlcnJvcil9YH1dfX06ZXZlbnRGcm9tVW5rbm93bklucHV0KHN0YWNrUGFyc2VyLGVycm9yLHZvaWQgMCxhdHRhY2hTdGFja3RyYWNlLCEwKTtldmVudC5sZXZlbD0iZXJyb3IiLCgwLGVzbV9leHBvcnRzLmVOKShldmVudCx7b3JpZ2luYWxFeGNlcHRpb246ZXJyb3IsbWVjaGFuaXNtOntoYW5kbGVkOiExLHR5cGU6ImF1dG8uYnJvd3Nlci5nbG9iYWxfaGFuZGxlcnMub251bmhhbmRsZWRyZWplY3Rpb24ifX0pfSksZ2xvYmFsSGFuZGxlckxvZygib251bmhhbmRsZWRyZWplY3Rpb24iKSl9fX07ZnVuY3Rpb24gZ2xvYmFsSGFuZGxlckxvZyh0eXBlKXtwcm9kX2RlYnVnX2J1aWxkLlgmJmRlYnVnX2xvZ2dlci5mRi5sb2coYEdsb2JhbCBIYW5kbGVyIGF0dGFjaGVkOiAke3R5cGV9YCl9ZnVuY3Rpb24gZ2V0T3B0aW9ucygpe2xldCBjbGllbnQ9KDAsY3VycmVudFNjb3Blcy5zMykoKSxvcHRpb25zPWNsaWVudD8uZ2V0T3B0aW9ucygpfHx7c3RhY2tQYXJzZXI6KCk9PltdLGF0dGFjaFN0YWNrdHJhY2U6ITF9O3JldHVybiBvcHRpb25zfWxldCBodHRwQ29udGV4dEludGVncmF0aW9uPSgpPT4oe25hbWU6Ikh0dHBDb250ZXh0IixwcmVwcm9jZXNzRXZlbnQoZXZlbnQpe2lmKCFoZWxwZXJzLm05Lm5hdmlnYXRvciYmIWhlbHBlcnMubTkubG9jYXRpb24mJiFoZWxwZXJzLm05LmRvY3VtZW50KXJldHVybjtsZXQgcmVxRGF0YT0oMCxoZWxwZXJzLlBKKSgpLGhlYWRlcnM9ey4uLnJlcURhdGEuaGVhZGVycywuLi5ldmVudC5yZXF1ZXN0Py5oZWFkZXJzfTtldmVudC5yZXF1ZXN0PXsuLi5yZXFEYXRhLC4uLmV2ZW50LnJlcXVlc3QsaGVhZGVyc319fSk7ZnVuY3Rpb24gYXBwbHlFeGNlcHRpb25Hcm91cEZpZWxkc0ZvclBhcmVudEV4Y2VwdGlvbihleGNlcHRpb24sZXhjZXB0aW9uSWQpe2V4Y2VwdGlvbi5tZWNoYW5pc209e2hhbmRsZWQ6ITAsdHlwZToiYXV0by5jb3JlLmxpbmtlZF9lcnJvcnMiLC4uLmV4Y2VwdGlvbi5tZWNoYW5pc20sLi4uIkFnZ3JlZ2F0ZUVycm9yIj09PWV4Y2VwdGlvbi50eXBlJiZ7aXNfZXhjZXB0aW9uX2dyb3VwOiEwfSxleGNlcHRpb25faWQ6ZXhjZXB0aW9uSWR9fWZ1bmN0aW9uIGFwcGx5RXhjZXB0aW9uR3JvdXBGaWVsZHNGb3JDaGlsZEV4Y2VwdGlvbihleGNlcHRpb24sc291cmNlLGV4Y2VwdGlvbklkLHBhcmVudElkKXtleGNlcHRpb24ubWVjaGFuaXNtPXtoYW5kbGVkOiEwLC4uLmV4Y2VwdGlvbi5tZWNoYW5pc20sdHlwZToiY2hhaW5lZCIsc291cmNlLGV4Y2VwdGlvbl9pZDpleGNlcHRpb25JZCxwYXJlbnRfaWQ6cGFyZW50SWR9fWxldCBfbGlua2VkRXJyb3JzSW50ZWdyYXRpb249KG9wdGlvbnM9e30pPT57bGV0IGxpbWl0PW9wdGlvbnMubGltaXR8fDUsa2V5PW9wdGlvbnMua2V5fHwiY2F1c2UiO3JldHVybntuYW1lOiJMaW5rZWRFcnJvcnMiLHByZXByb2Nlc3NFdmVudChldmVudCxoaW50LGNsaWVudCl7bGV0IG9wdGlvbnM9Y2xpZW50LmdldE9wdGlvbnMoKTshZnVuY3Rpb24oZXhjZXB0aW9uRnJvbUVycm9ySW1wbGVtZW50YXRpb24scGFyc2VyLGtleSxsaW1pdCxldmVudCxoaW50KXtpZighZXZlbnQuZXhjZXB0aW9uPy52YWx1ZXN8fCFoaW50fHwhKDAsaXMuVjkpKGhpbnQub3JpZ2luYWxFeGNlcHRpb24sRXJyb3IpKXJldHVybjtsZXQgb3JpZ2luYWxFeGNlcHRpb249ZXZlbnQuZXhjZXB0aW9uLnZhbHVlcy5sZW5ndGg+MD9ldmVudC5leGNlcHRpb24udmFsdWVzW2V2ZW50LmV4Y2VwdGlvbi52YWx1ZXMubGVuZ3RoLTFdOnZvaWQgMDtvcmlnaW5hbEV4Y2VwdGlvbiYmKGV2ZW50LmV4Y2VwdGlvbi52YWx1ZXM9ZnVuY3Rpb24gYWdncmVnYXRlRXhjZXB0aW9uc0Zyb21FcnJvcihleGNlcHRpb25Gcm9tRXJyb3JJbXBsZW1lbnRhdGlvbixwYXJzZXIsbGltaXQsZXJyb3Isa2V5LHByZXZFeGNlcHRpb25zLGV4Y2VwdGlvbixleGNlcHRpb25JZCl7aWYocHJldkV4Y2VwdGlvbnMubGVuZ3RoPj1saW1pdCsxKXJldHVybiBwcmV2RXhjZXB0aW9ucztsZXQgbmV3RXhjZXB0aW9ucz1bLi4ucHJldkV4Y2VwdGlvbnNdO2lmKCgwLGlzLlY5KShlcnJvcltrZXldLEVycm9yKSl7YXBwbHlFeGNlcHRpb25Hcm91cEZpZWxkc0ZvclBhcmVudEV4Y2VwdGlvbihleGNlcHRpb24sZXhjZXB0aW9uSWQpO2xldCBuZXdFeGNlcHRpb249ZXhjZXB0aW9uRnJvbUVycm9ySW1wbGVtZW50YXRpb24ocGFyc2VyLGVycm9yW2tleV0pLG5ld0V4Y2VwdGlvbklkPW5ld0V4Y2VwdGlvbnMubGVuZ3RoO2FwcGx5RXhjZXB0aW9uR3JvdXBGaWVsZHNGb3JDaGlsZEV4Y2VwdGlvbihuZXdFeGNlcHRpb24sa2V5LG5ld0V4Y2VwdGlvbklkLGV4Y2VwdGlvbklkKSxuZXdFeGNlcHRpb25zPWFnZ3JlZ2F0ZUV4Y2VwdGlvbnNGcm9tRXJyb3IoZXhjZXB0aW9uRnJvbUVycm9ySW1wbGVtZW50YXRpb24scGFyc2VyLGxpbWl0LGVycm9yW2tleV0sa2V5LFtuZXdFeGNlcHRpb24sLi4ubmV3RXhjZXB0aW9uc10sbmV3RXhjZXB0aW9uLG5ld0V4Y2VwdGlvbklkKX1yZXR1cm4gQXJyYXkuaXNBcnJheShlcnJvci5lcnJvcnMpJiZlcnJvci5lcnJvcnMuZm9yRWFjaCgoY2hpbGRFcnJvcixpKT0+e2lmKCgwLGlzLlY5KShjaGlsZEVycm9yLEVycm9yKSl7YXBwbHlFeGNlcHRpb25Hcm91cEZpZWxkc0ZvclBhcmVudEV4Y2VwdGlvbihleGNlcHRpb24sZXhjZXB0aW9uSWQpO2xldCBuZXdFeGNlcHRpb249ZXhjZXB0aW9uRnJvbUVycm9ySW1wbGVtZW50YXRpb24ocGFyc2VyLGNoaWxkRXJyb3IpLG5ld0V4Y2VwdGlvbklkPW5ld0V4Y2VwdGlvbnMubGVuZ3RoO2FwcGx5RXhjZXB0aW9uR3JvdXBGaWVsZHNGb3JDaGlsZEV4Y2VwdGlvbihuZXdFeGNlcHRpb24sYGVycm9yc1ske2l9XWAsbmV3RXhjZXB0aW9uSWQsZXhjZXB0aW9uSWQpLG5ld0V4Y2VwdGlvbnM9YWdncmVnYXRlRXhjZXB0aW9uc0Zyb21FcnJvcihleGNlcHRpb25Gcm9tRXJyb3JJbXBsZW1lbnRhdGlvbixwYXJzZXIsbGltaXQsY2hpbGRFcnJvcixrZXksW25ld0V4Y2VwdGlvbiwuLi5uZXdFeGNlcHRpb25zXSxuZXdFeGNlcHRpb24sbmV3RXhjZXB0aW9uSWQpfX0pLG5ld0V4Y2VwdGlvbnN9KGV4Y2VwdGlvbkZyb21FcnJvckltcGxlbWVudGF0aW9uLHBhcnNlcixsaW1pdCxoaW50Lm9yaWdpbmFsRXhjZXB0aW9uLGtleSxldmVudC5leGNlcHRpb24udmFsdWVzLG9yaWdpbmFsRXhjZXB0aW9uLDApKX0oZXhjZXB0aW9uRnJvbUVycm9yLG9wdGlvbnMuc3RhY2tQYXJzZXIsa2V5LGxpbWl0LGV2ZW50LGhpbnQpfX19O2Z1bmN0aW9uIGNyZWF0ZUZyYW1lKGZpbGVuYW1lLGZ1bmMsbGluZW5vLGNvbG5vKXtsZXQgZnJhbWU9e2ZpbGVuYW1lLGZ1bmN0aW9uOiI8YW5vbnltb3VzPiI9PT1mdW5jP3N0YWNrdHJhY2UuRmk6ZnVuYyxpbl9hcHA6ITB9O3JldHVybiB2b2lkIDAhPT1saW5lbm8mJihmcmFtZS5saW5lbm89bGluZW5vKSx2b2lkIDAhPT1jb2xubyYmKGZyYW1lLmNvbG5vPWNvbG5vKSxmcmFtZX1sZXQgY2hyb21lUmVnZXhOb0ZuTmFtZT0vXlxzKmF0IChcUys/KSg/OjooXGQrKSkoPzo6KFxkKykpXHMqJC9pLGNocm9tZVJlZ2V4PS9eXHMqYXQgKD86KC4rP1wpKD86IFxbLitcXSk/fC4qPykgP1woKD86YWRkcmVzcyBhdCApPyk/KD86YXN5bmMgKT8oKD86PGFub255bW91cz58Wy1hLXpdKzp8LipidW5kbGV8XC8pPy4qPykoPzo6KFxkKykpPyg/OjooXGQrKSk/XCk/XHMqJC9pLGNocm9tZUV2YWxSZWdleD0vXCgoXFMqKSg/OjooXGQrKSkoPzo6KFxkKykpXCkvLGNocm9tZURhdGFVcmlSZWdleD0vYXQgKC4rPykgP1woZGF0YTooLis/KSwvLGNocm9tZVN0YWNrUGFyc2VyRm49bGluZT0+e2xldCBkYXRhVXJpTWF0Y2g9bGluZS5tYXRjaChjaHJvbWVEYXRhVXJpUmVnZXgpO2lmKGRhdGFVcmlNYXRjaClyZXR1cm57ZmlsZW5hbWU6YDxkYXRhOiR7ZGF0YVVyaU1hdGNoWzJdfT5gLGZ1bmN0aW9uOmRhdGFVcmlNYXRjaFsxXX07bGV0IG5vRm5QYXJ0cz1jaHJvbWVSZWdleE5vRm5OYW1lLmV4ZWMobGluZSk7aWYobm9GblBhcnRzKXtsZXRbLGZpbGVuYW1lLGxpbmUxLGNvbF09bm9GblBhcnRzO3JldHVybiBjcmVhdGVGcmFtZShmaWxlbmFtZSxzdGFja3RyYWNlLkZpLCtsaW5lMSwrY29sKX1sZXQgcGFydHM9Y2hyb21lUmVnZXguZXhlYyhsaW5lKTtpZihwYXJ0cyl7bGV0IGlzRXZhbD1wYXJ0c1syXSYmMD09PXBhcnRzWzJdLmluZGV4T2YoImV2YWwiKTtpZihpc0V2YWwpe2xldCBzdWJNYXRjaD1jaHJvbWVFdmFsUmVnZXguZXhlYyhwYXJ0c1syXSk7c3ViTWF0Y2gmJihwYXJ0c1syXT1zdWJNYXRjaFsxXSxwYXJ0c1szXT1zdWJNYXRjaFsyXSxwYXJ0c1s0XT1zdWJNYXRjaFszXSl9bGV0W2Z1bmMsZmlsZW5hbWUxXT1leHRyYWN0U2FmYXJpRXh0ZW5zaW9uRGV0YWlscyhwYXJ0c1sxXXx8c3RhY2t0cmFjZS5GaSxwYXJ0c1syXSk7cmV0dXJuIGNyZWF0ZUZyYW1lKGZpbGVuYW1lMSxmdW5jLHBhcnRzWzNdPytwYXJ0c1szXTp2b2lkIDAscGFydHNbNF0/K3BhcnRzWzRdOnZvaWQgMCl9fSxnZWNrb1JFZ2V4PS9eXHMqKC4qPykoPzpcKCguKj8pXCkpPyg/Ol58QCk/KCg/OlstYS16XSspPzpcLy4qP3xcW25hdGl2ZSBjb2RlXF18W15AXSooPzpidW5kbGV8XGQrXC5qcyl8XC9bXHdcLS4gLz1dKykoPzo6KFxkKykpPyg/OjooXGQrKSk/XHMqJC9pLGdlY2tvRXZhbFJlZ2V4PS8oXFMrKSBsaW5lIChcZCspKD86ID4gZXZhbCBsaW5lIFxkKykqID4gZXZhbC9pLGdlY2tvPWxpbmU9PntsZXQgcGFydHM9Z2Vja29SRWdleC5leGVjKGxpbmUpO2lmKHBhcnRzKXtsZXQgaXNFdmFsPXBhcnRzWzNdJiZwYXJ0c1szXS5pbmRleE9mKCIgPiBldmFsIik+LTE7aWYoaXNFdmFsKXtsZXQgc3ViTWF0Y2g9Z2Vja29FdmFsUmVnZXguZXhlYyhwYXJ0c1szXSk7c3ViTWF0Y2gmJihwYXJ0c1sxXT1wYXJ0c1sxXXx8ImV2YWwiLHBhcnRzWzNdPXN1Yk1hdGNoWzFdLHBhcnRzWzRdPXN1Yk1hdGNoWzJdLHBhcnRzWzVdPSIiKX1sZXQgZmlsZW5hbWU9cGFydHNbM10sZnVuYz1wYXJ0c1sxXXx8c3RhY2t0cmFjZS5GaTtyZXR1cm5bZnVuYyxmaWxlbmFtZV09ZXh0cmFjdFNhZmFyaUV4dGVuc2lvbkRldGFpbHMoZnVuYyxmaWxlbmFtZSksY3JlYXRlRnJhbWUoZmlsZW5hbWUsZnVuYyxwYXJ0c1s0XT8rcGFydHNbNF06dm9pZCAwLHBhcnRzWzVdPytwYXJ0c1s1XTp2b2lkIDApfX0sZGVmYXVsdFN0YWNrUGFyc2VyPSgwLHN0YWNrdHJhY2UucEUpKC4uLltbMzAsY2hyb21lU3RhY2tQYXJzZXJGbl0sWzUwLGdlY2tvXV0pLGV4dHJhY3RTYWZhcmlFeHRlbnNpb25EZXRhaWxzPShmdW5jLGZpbGVuYW1lKT0+e2xldCBpc1NhZmFyaUV4dGVuc2lvbj0tMSE9PWZ1bmMuaW5kZXhPZigic2FmYXJpLWV4dGVuc2lvbiIpLGlzU2FmYXJpV2ViRXh0ZW5zaW9uPS0xIT09ZnVuYy5pbmRleE9mKCJzYWZhcmktd2ViLWV4dGVuc2lvbiIpO3JldHVybiBpc1NhZmFyaUV4dGVuc2lvbnx8aXNTYWZhcmlXZWJFeHRlbnNpb24/Wy0xIT09ZnVuYy5pbmRleE9mKCJAIik/ZnVuYy5zcGxpdCgiQCIpWzBdOnN0YWNrdHJhY2UuRmksaXNTYWZhcmlFeHRlbnNpb24/YHNhZmFyaS1leHRlbnNpb246JHtmaWxlbmFtZX1gOmBzYWZhcmktd2ViLWV4dGVuc2lvbjoke2ZpbGVuYW1lfWBdOltmdW5jLGZpbGVuYW1lXX07dmFyIHN1cHBvcnRzPV9fd2VicGFja19yZXF1aXJlX18oNDc5NzcpLGVzbV9kZWJ1Z19idWlsZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDEyMDE2KTtsZXQgY2FjaGVkSW1wbGVtZW50YXRpb25zPXt9O2Z1bmN0aW9uIG1ha2VGZXRjaFRyYW5zcG9ydChvcHRpb25zLG5hdGl2ZUZldGNoPWZ1bmN0aW9uKG5hbWUpe2xldCBjYWNoZWQ9Y2FjaGVkSW1wbGVtZW50YXRpb25zW25hbWVdO2lmKGNhY2hlZClyZXR1cm4gY2FjaGVkO2xldCBpbXBsPXR5cGVzLm1bbmFtZV07aWYoKDAsc3VwcG9ydHMuUUMpKGltcGwpKXJldHVybiBjYWNoZWRJbXBsZW1lbnRhdGlvbnNbbmFtZV09aW1wbC5iaW5kKHR5cGVzLm0pO2xldCBkb2N1bWVudDE9dHlwZXMubS5kb2N1bWVudDtpZihkb2N1bWVudDEmJiJmdW5jdGlvbiI9PXR5cGVvZiBkb2N1bWVudDEuY3JlYXRlRWxlbWVudCl0cnl7bGV0IHNhbmRib3g9ZG9jdW1lbnQxLmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO3NhbmRib3guaGlkZGVuPSEwLGRvY3VtZW50MS5oZWFkLmFwcGVuZENoaWxkKHNhbmRib3gpO2xldCBjb250ZW50V2luZG93PXNhbmRib3guY29udGVudFdpbmRvdztjb250ZW50V2luZG93Py5bbmFtZV0mJihpbXBsPWNvbnRlbnRXaW5kb3dbbmFtZV0pLGRvY3VtZW50MS5oZWFkLnJlbW92ZUNoaWxkKHNhbmRib3gpfWNhdGNoKGUpe2VzbV9kZWJ1Z19idWlsZC5YJiZkZWJ1Z19sb2dnZXIuZkYud2FybihgQ291bGQgbm90IGNyZWF0ZSBzYW5kYm94IGlmcmFtZSBmb3IgJHtuYW1lfSBjaGVjaywgYmFpbGluZyB0byB3aW5kb3cuJHtuYW1lfTogYCxlKX1yZXR1cm4gaW1wbD9jYWNoZWRJbXBsZW1lbnRhdGlvbnNbbmFtZV09aW1wbC5iaW5kKHR5cGVzLm0pOmltcGx9KCJmZXRjaCIpKXtsZXQgcGVuZGluZ0JvZHlTaXplPTAscGVuZGluZ0NvdW50PTA7YXN5bmMgZnVuY3Rpb24gbWFrZVJlcXVlc3QocmVxdWVzdCl7bGV0IHJlcXVlc3RTaXplPXJlcXVlc3QuYm9keS5sZW5ndGg7cGVuZGluZ0JvZHlTaXplKz1yZXF1ZXN0U2l6ZSxwZW5kaW5nQ291bnQrKztsZXQgcmVxdWVzdE9wdGlvbnM9e2JvZHk6cmVxdWVzdC5ib2R5LG1ldGhvZDoiUE9TVCIscmVmZXJyZXJQb2xpY3k6InN0cmljdC1vcmlnaW4iLGhlYWRlcnM6b3B0aW9ucy5oZWFkZXJzLGtlZXBhbGl2ZTpwZW5kaW5nQm9keVNpemU8PTZlNCYmcGVuZGluZ0NvdW50PDE1LC4uLm9wdGlvbnMuZmV0Y2hPcHRpb25zfTt0cnl7bGV0IHJlc3BvbnNlPWF3YWl0IG5hdGl2ZUZldGNoKG9wdGlvbnMudXJsLHJlcXVlc3RPcHRpb25zKTtyZXR1cm57c3RhdHVzQ29kZTpyZXNwb25zZS5zdGF0dXMsaGVhZGVyczp7Ingtc2VudHJ5LXJhdGUtbGltaXRzIjpyZXNwb25zZS5oZWFkZXJzLmdldCgiWC1TZW50cnktUmF0ZS1MaW1pdHMiKSwicmV0cnktYWZ0ZXIiOnJlc3BvbnNlLmhlYWRlcnMuZ2V0KCJSZXRyeS1BZnRlciIpfX19Y2F0Y2goZSl7dGhyb3cgY2FjaGVkSW1wbGVtZW50YXRpb25zLmZldGNoPXZvaWQgMCxlfWZpbmFsbHl7cGVuZGluZ0JvZHlTaXplLT1yZXF1ZXN0U2l6ZSxwZW5kaW5nQ291bnQtLX19cmV0dXJuIGZ1bmN0aW9uKG9wdGlvbnMsbWFrZVJlcXVlc3QsYnVmZmVyPW1ha2VQcm9taXNlQnVmZmVyKG9wdGlvbnMuYnVmZmVyU2l6ZXx8NjQpKXtsZXQgcmF0ZUxpbWl0cz17fSxmbHVzaD10aW1lb3V0PT5idWZmZXIuZHJhaW4odGltZW91dCk7cmV0dXJue3NlbmQ6ZnVuY3Rpb24oZW52ZWxvcGUpe2xldCBmaWx0ZXJlZEVudmVsb3BlSXRlbXM9W107aWYoKDAsdXRpbHNfZW52ZWxvcGUuZ3YpKGVudmVsb3BlLChpdGVtLHR5cGUpPT57bGV0IGRhdGFDYXRlZ29yeT0oMCx1dGlsc19lbnZlbG9wZS5tTCkodHlwZSk7KGZ1bmN0aW9uKGxpbWl0cyxkYXRhQ2F0ZWdvcnksbm93PURhdGUubm93KCkpe3JldHVybihsaW1pdHNbZGF0YUNhdGVnb3J5XXx8bGltaXRzLmFsbHx8MCk+bm93fSkocmF0ZUxpbWl0cyxkYXRhQ2F0ZWdvcnkpP29wdGlvbnMucmVjb3JkRHJvcHBlZEV2ZW50KCJyYXRlbGltaXRfYmFja29mZiIsZGF0YUNhdGVnb3J5KTpmaWx0ZXJlZEVudmVsb3BlSXRlbXMucHVzaChpdGVtKX0pLDA9PT1maWx0ZXJlZEVudmVsb3BlSXRlbXMubGVuZ3RoKXJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO2xldCBmaWx0ZXJlZEVudmVsb3BlPSgwLHV0aWxzX2VudmVsb3BlLkpkKShlbnZlbG9wZVswXSxmaWx0ZXJlZEVudmVsb3BlSXRlbXMpLHJlY29yZEVudmVsb3BlTG9zcz1yZWFzb249PnsoMCx1dGlsc19lbnZlbG9wZS5ndikoZmlsdGVyZWRFbnZlbG9wZSwoaXRlbSx0eXBlKT0+e29wdGlvbnMucmVjb3JkRHJvcHBlZEV2ZW50KHJlYXNvbiwoMCx1dGlsc19lbnZlbG9wZS5tTCkodHlwZSkpfSl9LHJlcXVlc3RUYXNrPSgpPT5tYWtlUmVxdWVzdCh7Ym9keTooMCx1dGlsc19lbnZlbG9wZS5WJCkoZmlsdGVyZWRFbnZlbG9wZSl9KS50aGVuKHJlc3BvbnNlPT4odm9pZCAwIT09cmVzcG9uc2Uuc3RhdHVzQ29kZSYmKHJlc3BvbnNlLnN0YXR1c0NvZGU8MjAwfHxyZXNwb25zZS5zdGF0dXNDb2RlPj0zMDApJiZkZWJ1Z19idWlsZC5YJiZkZWJ1Z19sb2dnZXIuZkYud2FybihgU2VudHJ5IHJlc3BvbmRlZCB3aXRoIHN0YXR1cyBjb2RlICR7cmVzcG9uc2Uuc3RhdHVzQ29kZX0gdG8gc2VudCBldmVudC5gKSxyYXRlTGltaXRzPWZ1bmN0aW9uKGxpbWl0cyx7c3RhdHVzQ29kZSxoZWFkZXJzfSxub3c9RGF0ZS5ub3coKSl7bGV0IHVwZGF0ZWRSYXRlTGltaXRzPXsuLi5saW1pdHN9LHJhdGVMaW1pdEhlYWRlcj1oZWFkZXJzPy5bIngtc2VudHJ5LXJhdGUtbGltaXRzIl0scmV0cnlBZnRlckhlYWRlcj1oZWFkZXJzPy5bInJldHJ5LWFmdGVyIl07aWYocmF0ZUxpbWl0SGVhZGVyKWZvcihsZXQgbGltaXQgb2YgcmF0ZUxpbWl0SGVhZGVyLnRyaW0oKS5zcGxpdCgiLCIpKXtsZXRbcmV0cnlBZnRlcixjYXRlZ29yaWVzLCwsbmFtZXNwYWNlc109bGltaXQuc3BsaXQoIjoiLDUpLGhlYWRlckRlbGF5PXBhcnNlSW50KHJldHJ5QWZ0ZXIsMTApLGRlbGF5PShpc05hTihoZWFkZXJEZWxheSk/NjA6aGVhZGVyRGVsYXkpKjFlMztpZihjYXRlZ29yaWVzKWZvcihsZXQgY2F0ZWdvcnkgb2YgY2F0ZWdvcmllcy5zcGxpdCgiOyIpKSJtZXRyaWNfYnVja2V0Ij09PWNhdGVnb3J5PyghbmFtZXNwYWNlc3x8bmFtZXNwYWNlcy5zcGxpdCgiOyIpLmluY2x1ZGVzKCJjdXN0b20iKSkmJih1cGRhdGVkUmF0ZUxpbWl0c1tjYXRlZ29yeV09bm93K2RlbGF5KTp1cGRhdGVkUmF0ZUxpbWl0c1tjYXRlZ29yeV09bm93K2RlbGF5O2Vsc2UgdXBkYXRlZFJhdGVMaW1pdHMuYWxsPW5vdytkZWxheX1lbHNlIHJldHJ5QWZ0ZXJIZWFkZXI/dXBkYXRlZFJhdGVMaW1pdHMuYWxsPW5vdytmdW5jdGlvbihoZWFkZXIsbm93PURhdGUubm93KCkpe2xldCBoZWFkZXJEZWxheT1wYXJzZUludChgJHtoZWFkZXJ9YCwxMCk7aWYoIWlzTmFOKGhlYWRlckRlbGF5KSlyZXR1cm4gMWUzKmhlYWRlckRlbGF5O2xldCBoZWFkZXJEYXRlPURhdGUucGFyc2UoYCR7aGVhZGVyfWApO3JldHVybiBpc05hTihoZWFkZXJEYXRlKT82ZTQ6aGVhZGVyRGF0ZS1ub3d9KHJldHJ5QWZ0ZXJIZWFkZXIsbm93KTo0Mjk9PT1zdGF0dXNDb2RlJiYodXBkYXRlZFJhdGVMaW1pdHMuYWxsPW5vdys2ZTQpO3JldHVybiB1cGRhdGVkUmF0ZUxpbWl0c30ocmF0ZUxpbWl0cyxyZXNwb25zZSkscmVzcG9uc2UpLGVycm9yPT57dGhyb3cgcmVjb3JkRW52ZWxvcGVMb3NzKCJuZXR3b3JrX2Vycm9yIiksZGVidWdfYnVpbGQuWCYmZGVidWdfbG9nZ2VyLmZGLmVycm9yKCJFbmNvdW50ZXJlZCBlcnJvciBydW5uaW5nIHRyYW5zcG9ydCByZXF1ZXN0OiIsZXJyb3IpLGVycm9yfSk7cmV0dXJuIGJ1ZmZlci5hZGQocmVxdWVzdFRhc2spLnRoZW4ocmVzdWx0PT5yZXN1bHQsZXJyb3I9PntpZihlcnJvcj09PVNFTlRSWV9CVUZGRVJfRlVMTF9FUlJPUilyZXR1cm4gZGVidWdfYnVpbGQuWCYmZGVidWdfbG9nZ2VyLmZGLmVycm9yKCJTa2lwcGVkIHNlbmRpbmcgZXZlbnQgYmVjYXVzZSBidWZmZXIgaXMgZnVsbC4iKSxyZWNvcmRFbnZlbG9wZUxvc3MoInF1ZXVlX292ZXJmbG93IiksUHJvbWlzZS5yZXNvbHZlKHt9KTt0aHJvdyBlcnJvcn0pfSxmbHVzaH19KG9wdGlvbnMsbWFrZVJlcXVlc3QsbWFrZVByb21pc2VCdWZmZXIob3B0aW9ucy5idWZmZXJTaXplfHw0MCkpfWZ1bmN0aW9uIGdldERlZmF1bHRJbnRlZ3JhdGlvbnMoX29wdGlvbnMpe3JldHVybltpbmJvdW5kRmlsdGVyc0ludGVncmF0aW9uKCksX2Z1bmN0aW9uVG9TdHJpbmdJbnRlZ3JhdGlvbigpLF9icm93c2VyQXBpRXJyb3JzSW50ZWdyYXRpb24oKSxfYnJlYWRjcnVtYnNJbnRlZ3JhdGlvbigpLF9nbG9iYWxIYW5kbGVyc0ludGVncmF0aW9uKCksX2xpbmtlZEVycm9yc0ludGVncmF0aW9uKCksX2RlZHVwZUludGVncmF0aW9uKCksaHR0cENvbnRleHRJbnRlZ3JhdGlvbigpLGJyb3dzZXJTZXNzaW9uSW50ZWdyYXRpb24oKV19dmFyIHJlYWN0PV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLHByb2Nlc3M9X193ZWJwYWNrX3JlcXVpcmVfXyg4MzQ1NCksYnJvd3NlclRyYWNpbmdJbnRlZ3JhdGlvbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDc2NzQzKSxhcHBSb3V0ZXJSb3V0aW5nSW5zdHJ1bWVudGF0aW9uPV9fd2VicGFja19yZXF1aXJlX18oNzk4ODMpLHV0aWxzX2JhZ2dhZ2U9X193ZWJwYWNrX3JlcXVpcmVfXygxNTE5Nykscm91dGVyPV9fd2VicGFja19yZXF1aXJlX18oMTExNjMpLGNvbW1vbl9kZWJ1Z19idWlsZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDM2MDk2KTtsZXQgUm91dGVyPXJvdXRlci5ldmVudHM/cm91dGVyOnJvdXRlci5kZWZhdWx0LGdsb2JhbE9iamVjdD1oZWxwZXJzLm05LHNwbGl0UGF0aFJlPS9eKFxTKzpcXHxcLz8pKFtcc1xTXSo/KSgoPzpcLnsxLDJ9fFteL1xcXSs/fCkoXC5bXi4vXFxdKnwpKSg/OlsvXFxdKikkLztmdW5jdGlvbiByZXNvbHZlKC4uLmFyZ3Mpe2xldCByZXNvbHZlZFBhdGg9IiIscmVzb2x2ZWRBYnNvbHV0ZT0hMTtmb3IobGV0IGk9YXJncy5sZW5ndGgtMTtpPj0tMSYmIXJlc29sdmVkQWJzb2x1dGU7aS0tKXtsZXQgcGF0aD1pPj0wP2FyZ3NbaV06Ii8iO3BhdGgmJihyZXNvbHZlZFBhdGg9YCR7cGF0aH0vJHtyZXNvbHZlZFBhdGh9YCxyZXNvbHZlZEFic29sdXRlPSIvIj09PXBhdGguY2hhckF0KDApKX1yZXR1cm4gcmVzb2x2ZWRQYXRoPShmdW5jdGlvbihwYXJ0cyxhbGxvd0Fib3ZlUm9vdCl7bGV0IHVwPTA7Zm9yKGxldCBpPXBhcnRzLmxlbmd0aC0xO2k+PTA7aS0tKXtsZXQgbGFzdD1wYXJ0c1tpXTsiLiI9PT1sYXN0P3BhcnRzLnNwbGljZShpLDEpOiIuLiI9PT1sYXN0PyhwYXJ0cy5zcGxpY2UoaSwxKSx1cCsrKTp1cCYmKHBhcnRzLnNwbGljZShpLDEpLHVwLS0pfWlmKGFsbG93QWJvdmVSb290KWZvcig7dXAtLTt1cClwYXJ0cy51bnNoaWZ0KCIuLiIpO3JldHVybiBwYXJ0c30pKHJlc29sdmVkUGF0aC5zcGxpdCgiLyIpLmZpbHRlcihwPT4hIXApLCFyZXNvbHZlZEFic29sdXRlKS5qb2luKCIvIiksKHJlc29sdmVkQWJzb2x1dGU/Ii8iOiIiKStyZXNvbHZlZFBhdGh8fCIuIn1mdW5jdGlvbiB0cmltKGFycil7bGV0IHN0YXJ0PTA7Zm9yKDtzdGFydDxhcnIubGVuZ3RoJiYiIj09PWFycltzdGFydF07c3RhcnQrKyk7bGV0IGVuZD1hcnIubGVuZ3RoLTE7Zm9yKDtlbmQ+PTAmJiIiPT09YXJyW2VuZF07ZW5kLS0pO3JldHVybiBzdGFydD5lbmQ/W106YXJyLnNsaWNlKHN0YXJ0LGVuZC1zdGFydCsxKX1sZXQgcmV3cml0ZUZyYW1lc0ludGVncmF0aW9uPShvcHRpb25zPXt9KT0+e2xldCByb290PW9wdGlvbnMucm9vdCxwcmVmaXg9b3B0aW9ucy5wcmVmaXh8fCJhcHA6Ly8vIixpc0Jyb3dzZXI9IndpbmRvdyJpbiB3b3JsZHdpZGUubiYmISF3b3JsZHdpZGUubi53aW5kb3csaXRlcmF0ZWU9b3B0aW9ucy5pdGVyYXRlZXx8ZnVuY3Rpb24oe2lzQnJvd3Nlcixyb290LHByZWZpeH0pe3JldHVybiBmcmFtZT0+e2lmKCFmcmFtZS5maWxlbmFtZSlyZXR1cm4gZnJhbWU7bGV0IGlzV2luZG93c0ZyYW1lPS9eW2EtekEtWl06XFwvLnRlc3QoZnJhbWUuZmlsZW5hbWUpfHxmcmFtZS5maWxlbmFtZS5pbmNsdWRlcygiXFwiKSYmIWZyYW1lLmZpbGVuYW1lLmluY2x1ZGVzKCIvIiksc3RhcnRzV2l0aFNsYXNoPS9eXC8vLnRlc3QoZnJhbWUuZmlsZW5hbWUpO2lmKGlzQnJvd3Nlcil7aWYocm9vdCl7bGV0IG9sZEZpbGVuYW1lPWZyYW1lLmZpbGVuYW1lOzA9PT1vbGRGaWxlbmFtZS5pbmRleE9mKHJvb3QpJiYoZnJhbWUuZmlsZW5hbWU9b2xkRmlsZW5hbWUucmVwbGFjZShyb290LHByZWZpeCkpfX1lbHNlIGlmKGlzV2luZG93c0ZyYW1lfHxzdGFydHNXaXRoU2xhc2gpe3ZhciBleHQ7bGV0IGY7bGV0IGZpbGVuYW1lPWlzV2luZG93c0ZyYW1lP2ZyYW1lLmZpbGVuYW1lLnJlcGxhY2UoL15bYS16QS1aXTovLCIiKS5yZXBsYWNlKC9cXC9nLCIvIik6ZnJhbWUuZmlsZW5hbWUsYmFzZT1yb290P2Z1bmN0aW9uKGZyb20sdG8pe2Zyb209cmVzb2x2ZShmcm9tKS5zbGljZSgxKSx0bz1yZXNvbHZlKHRvKS5zbGljZSgxKTtsZXQgZnJvbVBhcnRzPXRyaW0oZnJvbS5zcGxpdCgiLyIpKSx0b1BhcnRzPXRyaW0odG8uc3BsaXQoIi8iKSksbGVuZ3RoPU1hdGgubWluKGZyb21QYXJ0cy5sZW5ndGgsdG9QYXJ0cy5sZW5ndGgpLHNhbWVQYXJ0c0xlbmd0aD1sZW5ndGg7Zm9yKGxldCBpPTA7aTxsZW5ndGg7aSsrKWlmKGZyb21QYXJ0c1tpXSE9PXRvUGFydHNbaV0pe3NhbWVQYXJ0c0xlbmd0aD1pO2JyZWFrfWxldCBvdXRwdXRQYXJ0cz1bXTtmb3IobGV0IGkxPXNhbWVQYXJ0c0xlbmd0aDtpMTxmcm9tUGFydHMubGVuZ3RoO2kxKyspb3V0cHV0UGFydHMucHVzaCgiLi4iKTtyZXR1cm4ob3V0cHV0UGFydHM9b3V0cHV0UGFydHMuY29uY2F0KHRvUGFydHMuc2xpY2Uoc2FtZVBhcnRzTGVuZ3RoKSkpLmpvaW4oIi8iKX0ocm9vdCxmaWxlbmFtZSk6KGY9ZnVuY3Rpb24oZmlsZW5hbWUpe2xldCB0cnVuY2F0ZWQ9ZmlsZW5hbWUubGVuZ3RoPjEwMjQ/YDx0cnVuY2F0ZWQ+JHtmaWxlbmFtZS5zbGljZSgtMTAyNCl9YDpmaWxlbmFtZSxwYXJ0cz1zcGxpdFBhdGhSZS5leGVjKHRydW5jYXRlZCk7cmV0dXJuIHBhcnRzP3BhcnRzLnNsaWNlKDEpOltdfShmaWxlbmFtZSlbMl18fCIiLGV4dCYmZi5zbGljZSgtMSpleHQubGVuZ3RoKT09PWV4dCYmKGY9Zi5zbGljZSgwLGYubGVuZ3RoLWV4dC5sZW5ndGgpKSxmKTtmcmFtZS5maWxlbmFtZT1gJHtwcmVmaXh9JHtiYXNlfWB9cmV0dXJuIGZyYW1lfX0oe2lzQnJvd3Nlcixyb290LHByZWZpeH0pO3JldHVybntuYW1lOiJSZXdyaXRlRnJhbWVzIixwcm9jZXNzRXZlbnQob3JpZ2luYWxFdmVudCl7bGV0IHByb2Nlc3NlZEV2ZW50PW9yaWdpbmFsRXZlbnQ7cmV0dXJuIG9yaWdpbmFsRXZlbnQuZXhjZXB0aW9uJiZBcnJheS5pc0FycmF5KG9yaWdpbmFsRXZlbnQuZXhjZXB0aW9uLnZhbHVlcykmJihwcm9jZXNzZWRFdmVudD1mdW5jdGlvbihldmVudCl7dHJ5e3JldHVybnsuLi5ldmVudCxleGNlcHRpb246ey4uLmV2ZW50LmV4Y2VwdGlvbix2YWx1ZXM6ZXZlbnQuZXhjZXB0aW9uLnZhbHVlcy5tYXAodmFsdWU9Pnt2YXIgc3RhY2t0cmFjZTtyZXR1cm57Li4udmFsdWUsLi4udmFsdWUuc3RhY2t0cmFjZSYme3N0YWNrdHJhY2U6ey4uLnN0YWNrdHJhY2U9dmFsdWUuc3RhY2t0cmFjZSxmcmFtZXM6c3RhY2t0cmFjZT8uZnJhbWVzPy5tYXAoZj0+aXRlcmF0ZWUoZikpfX19fSl9fX1jYXRjaHtyZXR1cm4gZXZlbnR9fShwcm9jZXNzZWRFdmVudCkpLHByb2Nlc3NlZEV2ZW50fX19LG5leHRqc0NsaWVudFN0YWNrRnJhbWVOb3JtYWxpemF0aW9uSW50ZWdyYXRpb249KHthc3NldFByZWZpeCxiYXNlUGF0aCxyZXdyaXRlRnJhbWVzQXNzZXRQcmVmaXhQYXRoLGV4cGVyaW1lbnRhbFRoaXJkUGFydHlPcmlnaW5TdGFja0ZyYW1lc30pPT57bGV0IHJld3JpdGVGcmFtZXNJbnN0YW5jZT1yZXdyaXRlRnJhbWVzSW50ZWdyYXRpb24oe2l0ZXJhdGVlKGZyYW1lKXtpZihleHBlcmltZW50YWxUaGlyZFBhcnR5T3JpZ2luU3RhY2tGcmFtZXMpe2xldCB3aW5kb3dPcmlnaW49InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5sb2NhdGlvbj93aW5kb3cubG9jYXRpb24ub3JpZ2luOiIiO2lmKGZyYW1lLmZpbGVuYW1lPy5zdGFydHNXaXRoKHdpbmRvd09yaWdpbikmJiFmcmFtZS5maWxlbmFtZS5lbmRzV2l0aCgiLmpzIikpcmV0dXJuIGZyYW1lO2lmKGFzc2V0UHJlZml4KWZyYW1lLmZpbGVuYW1lPy5zdGFydHNXaXRoKGFzc2V0UHJlZml4KSYmKGZyYW1lLmZpbGVuYW1lPWZyYW1lLmZpbGVuYW1lLnJlcGxhY2UoYXNzZXRQcmVmaXgsImFwcDovLyIpKTtlbHNlIGlmKGJhc2VQYXRoKXRyeXtsZXR7b3JpZ2luOmZyYW1lT3JpZ2lufT1uZXcgVVJMKGZyYW1lLmZpbGVuYW1lKTtmcmFtZU9yaWdpbj09PXdpbmRvd09yaWdpbiYmKGZyYW1lLmZpbGVuYW1lPWZyYW1lLmZpbGVuYW1lPy5yZXBsYWNlKGZyYW1lT3JpZ2luLCJhcHA6Ly8iKS5yZXBsYWNlKGJhc2VQYXRoLCIiKSl9Y2F0Y2h7fX1lbHNlIHRyeXtsZXR7b3JpZ2lufT1uZXcgVVJMKGZyYW1lLmZpbGVuYW1lKTtmcmFtZS5maWxlbmFtZT1mcmFtZS5maWxlbmFtZT8ucmVwbGFjZShvcmlnaW4sImFwcDovLyIpLnJlcGxhY2UocmV3cml0ZUZyYW1lc0Fzc2V0UHJlZml4UGF0aCwiIil9Y2F0Y2h7fXJldHVybiBleHBlcmltZW50YWxUaGlyZFBhcnR5T3JpZ2luU3RhY2tGcmFtZXM/KGZyYW1lLmZpbGVuYW1lPy5pbmNsdWRlcygiL19uZXh0IikmJihmcmFtZS5maWxlbmFtZT1kZWNvZGVVUkkoZnJhbWUuZmlsZW5hbWUpKSxmcmFtZS5maWxlbmFtZT8ubWF0Y2goL1wvX25leHRcL3N0YXRpY1wvY2h1bmtzXC8obWFpbi18bWFpbi1hcHAtfHBvbHlmaWxscy18d2VicGFjay18ZnJhbWV3b3JrLXxmcmFtZXdvcmtcLilbMC05YS1mXStcLmpzJC8pJiYoZnJhbWUuaW5fYXBwPSExKSk6KGZyYW1lLmZpbGVuYW1lPy5zdGFydHNXaXRoKCJhcHA6Ly8vX25leHQiKSYmKGZyYW1lLmZpbGVuYW1lPWRlY29kZVVSSShmcmFtZS5maWxlbmFtZSkpLGZyYW1lLmZpbGVuYW1lPy5tYXRjaCgvXmFwcDpcL1wvXC9fbmV4dFwvc3RhdGljXC9jaHVua3NcLyhtYWluLXxtYWluLWFwcC18cG9seWZpbGxzLXx3ZWJwYWNrLXxmcmFtZXdvcmstfGZyYW1ld29ya1wuKVswLTlhLWZdK1wuanMkLykmJihmcmFtZS5pbl9hcHA9ITEpKSxmcmFtZX19KTtyZXR1cm57Li4ucmV3cml0ZUZyYW1lc0luc3RhbmNlLG5hbWU6Ik5leHRqc0NsaWVudFN0YWNrRnJhbWVOb3JtYWxpemF0aW9uIn19O3ZhciBwYXJhbWV0ZXJpemF0aW9uPV9fd2VicGFja19yZXF1aXJlX18oMTA4NDgpO2xldCBJU19JU1JfU1NHX1JPVVRFX0NBQ0hFPW5ldyBjbGFzc3tjb25zdHJ1Y3RvcihfbWF4U2l6ZSl7dGhpcy5fbWF4U2l6ZT1fbWF4U2l6ZSx0aGlzLl9jYWNoZT1uZXcgTWFwfWdldCBzaXplKCl7cmV0dXJuIHRoaXMuX2NhY2hlLnNpemV9Z2V0KGtleSl7bGV0IHZhbHVlPXRoaXMuX2NhY2hlLmdldChrZXkpO2lmKHZvaWQgMCE9PXZhbHVlKXJldHVybiB0aGlzLl9jYWNoZS5kZWxldGUoa2V5KSx0aGlzLl9jYWNoZS5zZXQoa2V5LHZhbHVlKSx2YWx1ZX1zZXQoa2V5LHZhbHVlKXtpZih0aGlzLl9jYWNoZS5zaXplPj10aGlzLl9tYXhTaXplKXtsZXQgbmV4dEtleT10aGlzLl9jYWNoZS5rZXlzKCkubmV4dCgpLnZhbHVlO3RoaXMuX2NhY2hlLmRlbGV0ZShuZXh0S2V5KX10aGlzLl9jYWNoZS5zZXQoa2V5LHZhbHVlKX1yZW1vdmUoa2V5KXtsZXQgdmFsdWU9dGhpcy5fY2FjaGUuZ2V0KGtleSk7cmV0dXJuIHZhbHVlJiZ0aGlzLl9jYWNoZS5kZWxldGUoa2V5KSx2YWx1ZX1jbGVhcigpe3RoaXMuX2NhY2hlLmNsZWFyKCl9a2V5cygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuX2NhY2hlLmtleXMoKSl9dmFsdWVzKCl7bGV0IHZhbHVlcz1bXTtyZXR1cm4gdGhpcy5fY2FjaGUuZm9yRWFjaCh2YWx1ZT0+dmFsdWVzLnB1c2godmFsdWUpKSx2YWx1ZXN9fSgxMDApO3ZhciBjbGllbnRfcHJvY2Vzcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDgzNDU0KTtsZXQgY2xpZW50SXNJbml0aWFsaXplZD0hMSxjbGllbnRfZ2xvYmFsV2l0aEluamVjdGVkVmFsdWVzPXdvcmxkd2lkZS5uO2Z1bmN0aW9uIGNsaWVudF9pbml0KG9wdGlvbnMpe2NsaWVudElzSW5pdGlhbGl6ZWQmJigwLGRlYnVnX2xvZ2dlci5DZikoKCk9Pntjb25zb2xlLndhcm4oIltAc2VudHJ5L25leHRqc10gWW91IGFyZSBjYWxsaW5nIGBTZW50cnkuaW5pdCgpYCBtb3JlIHRoYW4gb25jZSBvbiB0aGUgY2xpZW50LiBUaGlzIGNhbiBoYXBwZW4gaWYgeW91IGhhdmUgYm90aCBhIGBzZW50cnkuY2xpZW50LmNvbmZpZy50c2AgYW5kIGEgYGluc3RydW1lbnRhdGlvbi1jbGllbnQudHNgIGZpbGUgd2l0aCBgU2VudHJ5LmluaXQoKWAgY2FsbHMuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGNhbGwgYFNlbnRyeS5pbml0KClgIG9uY2UgaW4gYGluc3RydW1lbnRhdGlvbi1jbGllbnQudHNgLiIpfSksY2xpZW50SXNJbml0aWFsaXplZD0hMCwoInVuZGVmaW5lZCI9PXR5cGVvZiBfX1NFTlRSWV9UUkFDSU5HX198fF9fU0VOVFJZX1RSQUNJTkdfXykmJmZ1bmN0aW9uKCl7aGVscGVycy5tOS5kb2N1bWVudCYmZnVuY3Rpb24ocGF0aG5hbWUpe2xldCBwYXJhbWV0ZXJpemVkUGF0aD0oMCxwYXJhbWV0ZXJpemF0aW9uLnYpKHBhdGhuYW1lKSxwYXRoVG9DaGVjaz1wYXJhbWV0ZXJpemVkUGF0aHx8cGF0aG5hbWUsY2FjaGVkUmVzdWx0PUlTX0lTUl9TU0dfUk9VVEVfQ0FDSEUuZ2V0KHBhdGhUb0NoZWNrKTtpZih2b2lkIDAhPT1jYWNoZWRSZXN1bHQpcmV0dXJuIGNhY2hlZFJlc3VsdDtsZXQgbWFuaWZlc3Q9KDAscGFyYW1ldGVyaXphdGlvbi5XKSgpO2lmKCFtYW5pZmVzdD8uaXNyUm91dGVzfHwhQXJyYXkuaXNBcnJheShtYW5pZmVzdC5pc3JSb3V0ZXMpfHwwPT09bWFuaWZlc3QuaXNyUm91dGVzLmxlbmd0aClyZXR1cm4gSVNfSVNSX1NTR19ST1VURV9DQUNIRS5zZXQocGF0aFRvQ2hlY2ssITEpLCExO2xldCBpc0lzclNzZ1JvdXRlPW1hbmlmZXN0LmlzclJvdXRlcy5pbmNsdWRlcyhwYXRoVG9DaGVjayk7cmV0dXJuIElTX0lTUl9TU0dfUk9VVEVfQ0FDSEUuc2V0KHBhdGhUb0NoZWNrLGlzSXNyU3NnUm91dGUpLGlzSXNyU3NnUm91dGV9KGhlbHBlcnMubTkubG9jYXRpb24ucGF0aG5hbWUpJiYocmVtb3ZlTWV0YVRhZygic2VudHJ5LXRyYWNlIikscmVtb3ZlTWV0YVRhZygiYmFnZ2FnZSIpKTtmdW5jdGlvbiByZW1vdmVNZXRhVGFnKG1ldGFOYW1lKXt0cnl7bGV0IG1ldGE9aGVscGVycy5tOS5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBtZXRhW25hbWU9IiR7bWV0YU5hbWV9Il1gKTttZXRhJiZtZXRhLnJlbW92ZSgpfWNhdGNoe319fSgpO2xldCBvcHRzPXtlbnZpcm9ubWVudDpmdW5jdGlvbihpc0NsaWVudCl7bGV0IHZlcmNlbEVudlZhcj1pc0NsaWVudD9wcm9jZXNzLmVudi5ORVhUX1BVQkxJQ19WRVJDRUxfRU5WOnByb2Nlc3MuZW52LlZFUkNFTF9FTlY7cmV0dXJuIHZlcmNlbEVudlZhcj9gdmVyY2VsLSR7dmVyY2VsRW52VmFyfWA6dm9pZCAwfSghMCl8fCJwcm9kdWN0aW9uIixkZWZhdWx0SW50ZWdyYXRpb25zOmZ1bmN0aW9uKG9wdGlvbnMpe2xldCBjdXN0b21EZWZhdWx0SW50ZWdyYXRpb25zPWdldERlZmF1bHRJbnRlZ3JhdGlvbnMob3B0aW9ucyk7KCJ1bmRlZmluZWQiPT10eXBlb2YgX19TRU5UUllfVFJBQ0lOR19ffHxfX1NFTlRSWV9UUkFDSU5HX18pJiZjdXN0b21EZWZhdWx0SW50ZWdyYXRpb25zLnB1c2goZnVuY3Rpb24ob3B0aW9ucz17fSl7bGV0IGJyb3dzZXJUcmFjaW5nSW50ZWdyYXRpb25JbnN0YW5jZT0oMCxicm93c2VyVHJhY2luZ0ludGVncmF0aW9uLkU4KSh7Li4ub3B0aW9ucyxpbnN0cnVtZW50TmF2aWdhdGlvbjohMSxpbnN0cnVtZW50UGFnZUxvYWQ6ITEsb25SZXF1ZXN0U3BhblN0YXJ0KC4uLmFyZ3Mpe2xldFtzcGFuLHtoZWFkZXJzfV09YXJncztyZXR1cm4gaGVhZGVycz8uZ2V0KCJuZXh0LXJvdXRlci1wcmVmZXRjaCIpJiZzcGFuPy5zZXRBdHRyaWJ1dGUoImh0dHAucmVxdWVzdC5wcmVmZXRjaCIsITApLG9wdGlvbnMub25SZXF1ZXN0U3BhblN0YXJ0Py4oLi4uYXJncyl9fSkse2luc3RydW1lbnRQYWdlTG9hZD0hMCxpbnN0cnVtZW50TmF2aWdhdGlvbj0hMH09b3B0aW9ucztyZXR1cm57Li4uYnJvd3NlclRyYWNpbmdJbnRlZ3JhdGlvbkluc3RhbmNlLGFmdGVyQWxsU2V0dXAoY2xpZW50KXtpbnN0cnVtZW50TmF2aWdhdGlvbiYmZnVuY3Rpb24oY2xpZW50KXtsZXQgaXNBcHBSb3V0ZXI9IWhlbHBlcnMubTkuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIl9fTkVYVF9EQVRBX18iKTtpc0FwcFJvdXRlcj8oMCxhcHBSb3V0ZXJSb3V0aW5nSW5zdHJ1bWVudGF0aW9uLkJIKShjbGllbnQpOlJvdXRlci5ldmVudHMub24oInJvdXRlQ2hhbmdlU3RhcnQiLG5hdmlnYXRpb25UYXJnZXQ9PntsZXQgbmV3TG9jYXRpb24sc3BhblNvdXJjZTtsZXQgc3RyaXBwZWROYXZpZ2F0aW9uVGFyZ2V0PSgwLHVybC5ydCkobmF2aWdhdGlvblRhcmdldCksbWF0Y2hlZFJvdXRlPWZ1bmN0aW9uKHBhdGhuYW1lKXtsZXQgcGFnZVJvdXRlcz1nbG9iYWxPYmplY3QuX19CVUlMRF9NQU5JRkVTVD8uc29ydGVkUGFnZXM7aWYocGFnZVJvdXRlcylyZXR1cm4gcGFnZVJvdXRlcy5maW5kKHJvdXRlPT57bGV0IHJvdXRlUmVnRXhwPWZ1bmN0aW9uKHJvdXRlKXtsZXQgcm91dGVQYXJ0cz1yb3V0ZS5zcGxpdCgiLyIpLG9wdGlvbmFsQ2F0Y2hhbGxXaWxkY2FyZFJlZ2V4PSIiO3JvdXRlUGFydHNbcm91dGVQYXJ0cy5sZW5ndGgtMV0/Lm1hdGNoKC9eXFtcW1wuXC5cLi4rXF1cXSQvKSYmKHJvdXRlUGFydHMucG9wKCksb3B0aW9uYWxDYXRjaGFsbFdpbGRjYXJkUmVnZXg9Iig/Oi8oLis/KSk/Iik7bGV0IHJlam9pbmVkUm91dGVQYXJ0cz1yb3V0ZVBhcnRzLm1hcChyb3V0ZVBhcnQ9PnJvdXRlUGFydC5yZXBsYWNlKC9eXFtcLlwuXC4uK1xdJC8sIiguKz8pIikucmVwbGFjZSgvXlxbLipcXSQvLCIoW14vXSs/KSIpKS5qb2luKCIvIik7cmV0dXJuIFJlZ0V4cChgXiR7cmVqb2luZWRSb3V0ZVBhcnRzfSR7b3B0aW9uYWxDYXRjaGFsbFdpbGRjYXJkUmVnZXh9KD86Lyk/JGApfShyb3V0ZSk7cmV0dXJuIHBhdGhuYW1lLm1hdGNoKHJvdXRlUmVnRXhwKX0pfShzdHJpcHBlZE5hdmlnYXRpb25UYXJnZXQpO21hdGNoZWRSb3V0ZT8obmV3TG9jYXRpb249bWF0Y2hlZFJvdXRlLHNwYW5Tb3VyY2U9InJvdXRlIik6KG5ld0xvY2F0aW9uPXN0cmlwcGVkTmF2aWdhdGlvblRhcmdldCxzcGFuU291cmNlPSJ1cmwiKSwoMCxicm93c2VyVHJhY2luZ0ludGVncmF0aW9uLm9nKShjbGllbnQse25hbWU6bmV3TG9jYXRpb24sYXR0cmlidXRlczp7W3NlbWFudGljQXR0cmlidXRlcy4kSl06Im5hdmlnYXRpb24iLFtzZW1hbnRpY0F0dHJpYnV0ZXMuUzNdOiJhdXRvLm5hdmlnYXRpb24ubmV4dGpzLnBhZ2VzX3JvdXRlcl9pbnN0cnVtZW50YXRpb24iLFtzZW1hbnRpY0F0dHJpYnV0ZXMuWmpdOnNwYW5Tb3VyY2V9fSl9KX0oY2xpZW50KSxicm93c2VyVHJhY2luZ0ludGVncmF0aW9uSW5zdGFuY2UuYWZ0ZXJBbGxTZXR1cChjbGllbnQpLGluc3RydW1lbnRQYWdlTG9hZCYmZnVuY3Rpb24oY2xpZW50KXtsZXQgaXNBcHBSb3V0ZXI9IWhlbHBlcnMubTkuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIl9fTkVYVF9EQVRBX18iKTtpc0FwcFJvdXRlcj8oMCxhcHBSb3V0ZXJSb3V0aW5nSW5zdHJ1bWVudGF0aW9uLlJvKShjbGllbnQpOmZ1bmN0aW9uKGNsaWVudCl7bGV0e3JvdXRlLHBhcmFtcyxzZW50cnlUcmFjZSxiYWdnYWdlfT1mdW5jdGlvbigpe2xldCBuZXh0RGF0YTtsZXQgbmV4dERhdGFUYWc9Z2xvYmFsT2JqZWN0LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJfX05FWFRfREFUQV9fIik7aWYobmV4dERhdGFUYWc/LmlubmVySFRNTCl0cnl7bmV4dERhdGE9SlNPTi5wYXJzZShuZXh0RGF0YVRhZy5pbm5lckhUTUwpfWNhdGNoe2NvbW1vbl9kZWJ1Z19idWlsZC5YJiZkZWJ1Z19sb2dnZXIuZkYud2FybigiQ291bGQgbm90IGV4dHJhY3QgX19ORVhUX0RBVEFfXyIpfWlmKCFuZXh0RGF0YSlyZXR1cm57fTtsZXQgbmV4dERhdGFUYWdJbmZvPXt9LHtwYWdlLHF1ZXJ5LHByb3BzfT1uZXh0RGF0YTtyZXR1cm4gbmV4dERhdGFUYWdJbmZvLnJvdXRlPXBhZ2UsbmV4dERhdGFUYWdJbmZvLnBhcmFtcz1xdWVyeSxwcm9wcz8ucGFnZVByb3BzJiYobmV4dERhdGFUYWdJbmZvLnNlbnRyeVRyYWNlPXByb3BzLnBhZ2VQcm9wcy5fc2VudHJ5VHJhY2VEYXRhLG5leHREYXRhVGFnSW5mby5iYWdnYWdlPXByb3BzLnBhZ2VQcm9wcy5fc2VudHJ5QmFnZ2FnZSksbmV4dERhdGFUYWdJbmZvfSgpLHBhcnNlZEJhZ2dhZ2U9KDAsdXRpbHNfYmFnZ2FnZS5YTSkoYmFnZ2FnZSksbmFtZT1yb3V0ZXx8Z2xvYmFsT2JqZWN0LmxvY2F0aW9uLnBhdGhuYW1lO3BhcnNlZEJhZ2dhZ2U/Llsic2VudHJ5LXRyYW5zYWN0aW9uIl0mJiIvX2Vycm9yIj09PW5hbWUmJihuYW1lPShuYW1lPXBhcnNlZEJhZ2dhZ2VbInNlbnRyeS10cmFuc2FjdGlvbiJdKS5yZXBsYWNlKC9eKEdFVHxQT1NUfFBVVHxERUxFVEV8UEFUQ0h8SEVBRHxPUFRJT05TfFRSQUNFfENPTk5FQ1QpXHMrL2ksIiIpKTtsZXQgb3JpZ2luPSgwLHRpbWUuWjEpKCk7KDAsYnJvd3NlclRyYWNpbmdJbnRlZ3JhdGlvbi5XbykoY2xpZW50LHtuYW1lLHN0YXJ0VGltZTpvcmlnaW4/b3JpZ2luLzFlMzp2b2lkIDAsYXR0cmlidXRlczp7W3NlbWFudGljQXR0cmlidXRlcy4kSl06InBhZ2Vsb2FkIixbc2VtYW50aWNBdHRyaWJ1dGVzLlMzXToiYXV0by5wYWdlbG9hZC5uZXh0anMucGFnZXNfcm91dGVyX2luc3RydW1lbnRhdGlvbiIsW3NlbWFudGljQXR0cmlidXRlcy5aal06cm91dGU/InJvdXRlIjoidXJsIiwuLi5wYXJhbXMmJmNsaWVudC5nZXRPcHRpb25zKCkuc2VuZERlZmF1bHRQaWkmJnsuLi5wYXJhbXN9fX0se3NlbnRyeVRyYWNlLGJhZ2dhZ2V9KX0oY2xpZW50KX0oY2xpZW50KX19fSgpKTtsZXQgcmV3cml0ZUZyYW1lc0Fzc2V0UHJlZml4UGF0aD1jbGllbnRfZ2xvYmFsV2l0aEluamVjdGVkVmFsdWVzLl9zZW50cnlSZXdyaXRlRnJhbWVzQXNzZXRQcmVmaXhQYXRofHwiIixhc3NldFByZWZpeD1jbGllbnRfcHJvY2Vzcy5lbnYuX3NlbnRyeUFzc2V0UHJlZml4fHxjbGllbnRfZ2xvYmFsV2l0aEluamVjdGVkVmFsdWVzLl9zZW50cnlBc3NldFByZWZpeCxiYXNlUGF0aD1jbGllbnRfcHJvY2Vzcy5lbnYuX3NlbnRyeUJhc2VQYXRofHxjbGllbnRfZ2xvYmFsV2l0aEluamVjdGVkVmFsdWVzLl9zZW50cnlCYXNlUGF0aCxleHBlcmltZW50YWxUaGlyZFBhcnR5T3JpZ2luU3RhY2tGcmFtZXM9InRydWUiPT09Y2xpZW50X3Byb2Nlc3MuZW52Ll9leHBlcmltZW50YWxUaGlyZFBhcnR5T3JpZ2luU3RhY2tGcmFtZXN8fCJ0cnVlIj09PWNsaWVudF9nbG9iYWxXaXRoSW5qZWN0ZWRWYWx1ZXMuX2V4cGVyaW1lbnRhbFRoaXJkUGFydHlPcmlnaW5TdGFja0ZyYW1lcztyZXR1cm4gY3VzdG9tRGVmYXVsdEludGVncmF0aW9ucy5wdXNoKG5leHRqc0NsaWVudFN0YWNrRnJhbWVOb3JtYWxpemF0aW9uSW50ZWdyYXRpb24oe2Fzc2V0UHJlZml4LGJhc2VQYXRoLHJld3JpdGVGcmFtZXNBc3NldFByZWZpeFBhdGgsZXhwZXJpbWVudGFsVGhpcmRQYXJ0eU9yaWdpblN0YWNrRnJhbWVzfSkpLGN1c3RvbURlZmF1bHRJbnRlZ3JhdGlvbnN9KG9wdGlvbnMpLHJlbGVhc2U6Y2xpZW50X3Byb2Nlc3MuZW52Ll9zZW50cnlSZWxlYXNlfHxjbGllbnRfZ2xvYmFsV2l0aEluamVjdGVkVmFsdWVzLl9zZW50cnlSZWxlYXNlLC4uLm9wdGlvbnN9OyFmdW5jdGlvbihvcHRpb25zKXtsZXQgdHVubmVsUm91dGVPcHRpb249Ii9tb25pdG9yaW5nIjtpZih0dW5uZWxSb3V0ZU9wdGlvbiYmb3B0aW9ucy5kc24pe2xldCBkc25Db21wb25lbnRzPSgwLHV0aWxzX2Rzbi5VNCkob3B0aW9ucy5kc24pO2lmKCFkc25Db21wb25lbnRzKXJldHVybjtsZXQgc2VudHJ5U2Fhc0Rzbk1hdGNoPWRzbkNvbXBvbmVudHMuaG9zdC5tYXRjaCgvXm8oXGQrKVwuaW5nZXN0KD86XC4oW2Etel17Mn0pKT9cLnNlbnRyeVwuaW8kLyk7aWYoc2VudHJ5U2Fhc0Rzbk1hdGNoKXtsZXQgb3JnSWQ9c2VudHJ5U2Fhc0Rzbk1hdGNoWzFdLHJlZ2lvbkNvZGU9c2VudHJ5U2Fhc0Rzbk1hdGNoWzJdLHR1bm5lbFBhdGg9YCR7dHVubmVsUm91dGVPcHRpb259P289JHtvcmdJZH0mcD0ke2RzbkNvbXBvbmVudHMucHJvamVjdElkfWA7cmVnaW9uQ29kZSYmKHR1bm5lbFBhdGgrPWAmcj0ke3JlZ2lvbkNvZGV9YCksb3B0aW9ucy50dW5uZWw9dHVubmVsUGF0aCxjb21tb25fZGVidWdfYnVpbGQuWCYmZGVidWdfbG9nZ2VyLmZGLmxvZyhgVHVubmVsaW5nIGV2ZW50cyB0byAiJHt0dW5uZWxQYXRofSJgKX1lbHNlIGNvbW1vbl9kZWJ1Z19idWlsZC5YJiZkZWJ1Z19sb2dnZXIuZkYud2FybigiUHJvdmlkZWQgRFNOIGlzIG5vdCBhIFNlbnRyeSBTYWFTIERTTi4gV2lsbCBub3QgdHVubmVsIGV2ZW50cy4iKX19KG9wdHMpLGFwcGx5U2RrTWV0YWRhdGEob3B0cywibmV4dGpzIixbIm5leHRqcyIsInJlYWN0Il0pO2xldCBjbGllbnQ9ZnVuY3Rpb24ob3B0aW9ucyl7bGV0IG9wdHM9ey4uLm9wdGlvbnN9O3JldHVybiBhcHBseVNka01ldGFkYXRhKG9wdHMsInJlYWN0IiksKDAsZXNtX2V4cG9ydHMudikoInJlYWN0Iix7dmVyc2lvbjpyZWFjdC52ZXJzaW9ufSksZnVuY3Rpb24ob3B0aW9ucz17fSl7bGV0IHNob3VsZERpc2FibGVCZWNhdXNlSXNCcm93c2VyRXh0ZW5zdGlvbj0hb3B0aW9ucy5za2lwQnJvd3NlckV4dGVuc2lvbkNoZWNrJiYhIWZ1bmN0aW9uKCl7aWYodm9pZCAwPT09aGVscGVycy5tOS53aW5kb3cpcmV0dXJuITE7bGV0IF93aW5kb3c9aGVscGVycy5tOTtpZihfd2luZG93Lm53KXJldHVybiExO2xldCBleHRlbnNpb25PYmplY3Q9X3dpbmRvdy5jaHJvbWV8fF93aW5kb3cuYnJvd3NlcjtpZighZXh0ZW5zaW9uT2JqZWN0Py5ydW50aW1lPy5pZClyZXR1cm4hMTtsZXQgaHJlZj0oMCxicm93c2VyLmw0KSgpLGlzRGVkaWNhdGVkRXh0ZW5zaW9uUGFnZT1oZWxwZXJzLm05PT09aGVscGVycy5tOS50b3AmJlsiY2hyb21lLWV4dGVuc2lvbiIsIm1vei1leHRlbnNpb24iLCJtcy1icm93c2VyLWV4dGVuc2lvbiIsInNhZmFyaS13ZWItZXh0ZW5zaW9uIl0uc29tZShwcm90b2NvbD0+aHJlZi5zdGFydHNXaXRoKGAke3Byb3RvY29sfTovL2ApKTtyZXR1cm4haXNEZWRpY2F0ZWRFeHRlbnNpb25QYWdlfSgpJiYocHJvZF9kZWJ1Z19idWlsZC5YJiYoMCxkZWJ1Z19sb2dnZXIuQ2YpKCgpPT57Y29uc29sZS5lcnJvcigiW1NlbnRyeV0gWW91IGNhbm5vdCB1c2UgU2VudHJ5LmluaXQoKSBpbiBhIGJyb3dzZXIgZXh0ZW5zaW9uLCBzZWU6IGh0dHBzOi8vZG9jcy5zZW50cnkuaW8vcGxhdGZvcm1zL2phdmFzY3JpcHQvYmVzdC1wcmFjdGljZXMvYnJvd3Nlci1leHRlbnNpb25zLyIpfSksITApLGRlZmF1bHRJbnRlZ3JhdGlvbnM9bnVsbD09b3B0aW9ucy5kZWZhdWx0SW50ZWdyYXRpb25zP2dldERlZmF1bHRJbnRlZ3JhdGlvbnMoKTpvcHRpb25zLmRlZmF1bHRJbnRlZ3JhdGlvbnMsY2xpZW50T3B0aW9ucz17Li4ub3B0aW9ucyxlbmFibGVkOiFzaG91bGREaXNhYmxlQmVjYXVzZUlzQnJvd3NlckV4dGVuc3Rpb24mJm9wdGlvbnMuZW5hYmxlZCxzdGFja1BhcnNlcjooMCxzdGFja3RyYWNlLlNxKShvcHRpb25zLnN0YWNrUGFyc2VyfHxkZWZhdWx0U3RhY2tQYXJzZXIpLGludGVncmF0aW9uczpmdW5jdGlvbihvcHRpb25zKXtsZXQgaW50ZWdyYXRpb25zO2xldCBkZWZhdWx0SW50ZWdyYXRpb25zPW9wdGlvbnMuZGVmYXVsdEludGVncmF0aW9uc3x8W10sdXNlckludGVncmF0aW9ucz1vcHRpb25zLmludGVncmF0aW9ucztpZihkZWZhdWx0SW50ZWdyYXRpb25zLmZvckVhY2goaW50ZWdyYXRpb249PntpbnRlZ3JhdGlvbi5pc0RlZmF1bHRJbnN0YW5jZT0hMH0pLEFycmF5LmlzQXJyYXkodXNlckludGVncmF0aW9ucykpaW50ZWdyYXRpb25zPVsuLi5kZWZhdWx0SW50ZWdyYXRpb25zLC4uLnVzZXJJbnRlZ3JhdGlvbnNdO2Vsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mIHVzZXJJbnRlZ3JhdGlvbnMpe2xldCByZXNvbHZlZFVzZXJJbnRlZ3JhdGlvbnM9dXNlckludGVncmF0aW9ucyhkZWZhdWx0SW50ZWdyYXRpb25zKTtpbnRlZ3JhdGlvbnM9QXJyYXkuaXNBcnJheShyZXNvbHZlZFVzZXJJbnRlZ3JhdGlvbnMpP3Jlc29sdmVkVXNlckludGVncmF0aW9uczpbcmVzb2x2ZWRVc2VySW50ZWdyYXRpb25zXX1lbHNlIGludGVncmF0aW9ucz1kZWZhdWx0SW50ZWdyYXRpb25zO3JldHVybiBmdW5jdGlvbihpbnRlZ3JhdGlvbnMpe2xldCBpbnRlZ3JhdGlvbnNCeU5hbWU9e307cmV0dXJuIGludGVncmF0aW9ucy5mb3JFYWNoKGN1cnJlbnRJbnN0YW5jZT0+e2xldHtuYW1lfT1jdXJyZW50SW5zdGFuY2UsZXhpc3RpbmdJbnN0YW5jZT1pbnRlZ3JhdGlvbnNCeU5hbWVbbmFtZV07ZXhpc3RpbmdJbnN0YW5jZSYmIWV4aXN0aW5nSW5zdGFuY2UuaXNEZWZhdWx0SW5zdGFuY2UmJmN1cnJlbnRJbnN0YW5jZS5pc0RlZmF1bHRJbnN0YW5jZXx8KGludGVncmF0aW9uc0J5TmFtZVtuYW1lXT1jdXJyZW50SW5zdGFuY2UpfSksT2JqZWN0LnZhbHVlcyhpbnRlZ3JhdGlvbnNCeU5hbWUpfShpbnRlZ3JhdGlvbnMpfSh7aW50ZWdyYXRpb25zOm9wdGlvbnMuaW50ZWdyYXRpb25zLGRlZmF1bHRJbnRlZ3JhdGlvbnN9KSx0cmFuc3BvcnQ6b3B0aW9ucy50cmFuc3BvcnR8fG1ha2VGZXRjaFRyYW5zcG9ydH07cmV0dXJuIGZ1bmN0aW9uKGNsaWVudENsYXNzLG9wdGlvbnMpeyEwPT09b3B0aW9ucy5kZWJ1ZyYmKGRlYnVnX2J1aWxkLlg/ZGVidWdfbG9nZ2VyLmZGLmVuYWJsZSgpOigwLGRlYnVnX2xvZ2dlci5DZikoKCk9Pntjb25zb2xlLndhcm4oIltTZW50cnldIENhbm5vdCBpbml0aWFsaXplIFNESyB3aXRoIGBkZWJ1Z2Agb3B0aW9uIHVzaW5nIGEgbm9uLWRlYnVnIGJ1bmRsZS4iKX0pKTtsZXQgc2NvcGU9KDAsY3VycmVudFNjb3Blcy5uWikoKTtzY29wZS51cGRhdGUob3B0aW9ucy5pbml0aWFsU2NvcGUpO2xldCBjbGllbnQ9bmV3IGNsaWVudENsYXNzKG9wdGlvbnMpO3JldHVybigwLGN1cnJlbnRTY29wZXMublopKCkuc2V0Q2xpZW50KGNsaWVudCksY2xpZW50LmluaXQoKSxjbGllbnR9KEJyb3dzZXJDbGllbnQsY2xpZW50T3B0aW9ucyl9KG9wdHMpfShvcHRzKSxmaWx0ZXJUcmFuc2FjdGlvbnM9ZXZlbnQ9PiJ0cmFuc2FjdGlvbiI9PT1ldmVudC50eXBlJiYiLzQwNCI9PT1ldmVudC50cmFuc2FjdGlvbj9udWxsOmV2ZW50O2ZpbHRlclRyYW5zYWN0aW9ucy5pZD0iTmV4dENsaWVudDQwNEZpbHRlciIsKDAsZXNtX2V4cG9ydHMuUXkpKGZpbHRlclRyYW5zYWN0aW9ucyk7bGV0IGZpbHRlckluY29tcGxldGVOYXZpZ2F0aW9uVHJhbnNhY3Rpb25zPWV2ZW50PT4idHJhbnNhY3Rpb24iPT09ZXZlbnQudHlwZSYmZXZlbnQudHJhbnNhY3Rpb249PT1hcHBSb3V0ZXJSb3V0aW5nSW5zdHJ1bWVudGF0aW9uLnVxP251bGw6ZXZlbnQ7ZmlsdGVySW5jb21wbGV0ZU5hdmlnYXRpb25UcmFuc2FjdGlvbnMuaWQ9IkluY29tcGxldGVUcmFuc2FjdGlvbkZpbHRlciIsKDAsZXNtX2V4cG9ydHMuUXkpKGZpbHRlckluY29tcGxldGVOYXZpZ2F0aW9uVHJhbnNhY3Rpb25zKTtsZXQgZmlsdGVyTmV4dFJlZGlyZWN0RXJyb3I9KGV2ZW50LGhpbnQpPT57dmFyIHN1YmplY3Q7cmV0dXJuKHN1YmplY3Q9aGludD8ub3JpZ2luYWxFeGNlcHRpb24sKDAsaXMuVlopKHN1YmplY3QpJiYic3RyaW5nIj09dHlwZW9mIHN1YmplY3QuZGlnZXN0JiZzdWJqZWN0LmRpZ2VzdC5zdGFydHNXaXRoKCJORVhUX1JFRElSRUNUOyIpfHxldmVudC5leGNlcHRpb24/LnZhbHVlcz8uWzBdPy52YWx1ZT09PSJORVhUX1JFRElSRUNUIik/bnVsbDpldmVudH07ZmlsdGVyTmV4dFJlZGlyZWN0RXJyb3IuaWQ9Ik5leHRSZWRpcmVjdEVycm9yRmlsdGVyIiwoMCxlc21fZXhwb3J0cy5ReSkoZmlsdGVyTmV4dFJlZGlyZWN0RXJyb3IpO3RyeXtjbGllbnRfcHJvY2Vzcy50dXJib3BhY2smJigwLGN1cnJlbnRTY29wZXMubFcpKCkuc2V0VGFnKCJ0dXJib3BhY2siLCEwKX1jYXRjaHt9cmV0dXJuIGNsaWVudH19LDc5ODgzOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2xldCByb3V0ZXJUcmFuc2l0aW9uSGFuZGxlcjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7Qkg6ZnVuY3Rpb24oKXtyZXR1cm4gYXBwUm91dGVySW5zdHJ1bWVudE5hdmlnYXRpb259LFFVOmZ1bmN0aW9uKCl7cmV0dXJuIGNhcHR1cmVSb3V0ZXJUcmFuc2l0aW9uU3RhcnR9LFJvOmZ1bmN0aW9uKCl7cmV0dXJuIGFwcFJvdXRlckluc3RydW1lbnRQYWdlTG9hZH0sdXE6ZnVuY3Rpb24oKXtyZXR1cm4gSU5DT01QTEVURV9BUFBfUk9VVEVSX0lOU1RSVU1FTlRBVElPTl9UUkFOU0FDVElPTl9OQU1FfX0pO3ZhciBfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDkwNzcyKSxfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDMxMjE4KSxfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDUxNTk3KSxfc2VudHJ5X3JlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXygzMDU0NCksX3NlbnRyeV9yZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fPV9fd2VicGFja19yZXF1aXJlX18oNzY3NDMpLF9wYXJhbWV0ZXJpemF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXygxMDg0OCkscHJvY2Vzcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDgzNDU0KTtsZXQgSU5DT01QTEVURV9BUFBfUk9VVEVSX0lOU1RSVU1FTlRBVElPTl9UUkFOU0FDVElPTl9OQU1FPSJpbmNvbXBsZXRlLWFwcC1yb3V0ZXItdHJhbnNhY3Rpb24iLG5hdmlnYXRpb25Sb3V0aW5nTW9kZT0icm91dGVyLXBhdGNoIixjdXJyZW50Um91dGVyUGF0Y2hpbmdOYXZpZ2F0aW9uU3BhblJlZj17Y3VycmVudDp2b2lkIDB9O2Z1bmN0aW9uIGFwcFJvdXRlckluc3RydW1lbnRQYWdlTG9hZChjbGllbnQpe2xldCBwYXJhbWV0ZXJpemVkUGF0aG5hbWU9KDAsX3BhcmFtZXRlcml6YXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy52KShfc2VudHJ5X3JlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ubTkubG9jYXRpb24ucGF0aG5hbWUpLG9yaWdpbj0oMCxfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5aMSkoKTsoMCxfc2VudHJ5X3JlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uV28pKGNsaWVudCx7bmFtZTpwYXJhbWV0ZXJpemVkUGF0aG5hbWU/P19zZW50cnlfcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5tOS5sb2NhdGlvbi5wYXRobmFtZSxzdGFydFRpbWU6b3JpZ2luP29yaWdpbi8xZTM6dm9pZCAwLGF0dHJpYnV0ZXM6e1tfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy4kSl06InBhZ2Vsb2FkIixbX3NlbnRyeV9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uUzNdOiJhdXRvLnBhZ2Vsb2FkLm5leHRqcy5hcHBfcm91dGVyX2luc3RydW1lbnRhdGlvbiIsW19zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlpqXTpwYXJhbWV0ZXJpemVkUGF0aG5hbWU/InJvdXRlIjoidXJsIn19KX1sZXQgR0xPQkFMX09CSl9XSVRIX05FWFRfUk9VVEVSPV9zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLm4sZ2xvYmFsV2l0aEluamVjdGVkQmFzZVBhdGg9X3NlbnRyeV9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18ubjtmdW5jdGlvbiBhcHBSb3V0ZXJJbnN0cnVtZW50TmF2aWdhdGlvbihjbGllbnQpe3JvdXRlclRyYW5zaXRpb25IYW5kbGVyPShocmVmLG5hdmlnYXRpb25UeXBlKT0+e2xldCBiYXNlUGF0aD1wcm9jZXNzLmVudi5fc2VudHJ5QmFzZVBhdGg/P2dsb2JhbFdpdGhJbmplY3RlZEJhc2VQYXRoLl9zZW50cnlCYXNlUGF0aCxub3JtYWxpemVkSHJlZj1iYXNlUGF0aCYmIWhyZWYuc3RhcnRzV2l0aChiYXNlUGF0aCk/YCR7YmFzZVBhdGh9JHtocmVmfWA6aHJlZix1bnBhcmFtZXRlcml6ZWRQYXRobmFtZT1uZXcgVVJMKG5vcm1hbGl6ZWRIcmVmLF9zZW50cnlfcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5tOS5sb2NhdGlvbi5ocmVmKS5wYXRobmFtZSxwYXJhbWV0ZXJpemVkUGF0aG5hbWU9KDAsX3BhcmFtZXRlcml6YXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy52KSh1bnBhcmFtZXRlcml6ZWRQYXRobmFtZSkscGF0aG5hbWU9cGFyYW1ldGVyaXplZFBhdGhuYW1lPz91bnBhcmFtZXRlcml6ZWRQYXRobmFtZTsicm91dGVyLXBhdGNoIj09PW5hdmlnYXRpb25Sb3V0aW5nTW9kZSYmKG5hdmlnYXRpb25Sb3V0aW5nTW9kZT0idHJhbnNpdGlvbi1zdGFydC1ob29rIik7bGV0IGN1cnJlbnROYXZpZ2F0aW9uU3Bhbj1jdXJyZW50Um91dGVyUGF0Y2hpbmdOYXZpZ2F0aW9uU3BhblJlZi5jdXJyZW50O2N1cnJlbnROYXZpZ2F0aW9uU3Bhbj8oY3VycmVudE5hdmlnYXRpb25TcGFuLnVwZGF0ZU5hbWUocGF0aG5hbWUpLGN1cnJlbnROYXZpZ2F0aW9uU3Bhbi5zZXRBdHRyaWJ1dGVzKHsibmF2aWdhdGlvbi50eXBlIjpgcm91dGVyLiR7bmF2aWdhdGlvblR5cGV9YCxbX3NlbnRyeV9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uWmpdOnBhcmFtZXRlcml6ZWRQYXRobmFtZT8icm91dGUiOiJ1cmwifSksY3VycmVudFJvdXRlclBhdGNoaW5nTmF2aWdhdGlvblNwYW5SZWYuY3VycmVudD12b2lkIDApOigwLF9zZW50cnlfcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5vZykoY2xpZW50LHtuYW1lOnBhdGhuYW1lLGF0dHJpYnV0ZXM6e1tfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy4kSl06Im5hdmlnYXRpb24iLFtfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5TM106ImF1dG8ubmF2aWdhdGlvbi5uZXh0anMuYXBwX3JvdXRlcl9pbnN0cnVtZW50YXRpb24iLFtfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5aal06cGFyYW1ldGVyaXplZFBhdGhuYW1lPyJyb3V0ZSI6InVybCIsIm5hdmlnYXRpb24udHlwZSI6YHJvdXRlci4ke25hdmlnYXRpb25UeXBlfWB9fSl9LF9zZW50cnlfcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5tOS5hZGRFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsKCk9PntsZXQgcGFyYW1ldGVyaXplZFBhdGhuYW1lPSgwLF9wYXJhbWV0ZXJpemF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udikoX3NlbnRyeV9yZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLm05LmxvY2F0aW9uLnBhdGhuYW1lKTtjdXJyZW50Um91dGVyUGF0Y2hpbmdOYXZpZ2F0aW9uU3BhblJlZi5jdXJyZW50Py5pc1JlY29yZGluZygpPyhjdXJyZW50Um91dGVyUGF0Y2hpbmdOYXZpZ2F0aW9uU3BhblJlZi5jdXJyZW50LnVwZGF0ZU5hbWUocGFyYW1ldGVyaXplZFBhdGhuYW1lPz9fc2VudHJ5X3JlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ubTkubG9jYXRpb24ucGF0aG5hbWUpLGN1cnJlbnRSb3V0ZXJQYXRjaGluZ05hdmlnYXRpb25TcGFuUmVmLmN1cnJlbnQuc2V0QXR0cmlidXRlKF9zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlpqLHBhcmFtZXRlcml6ZWRQYXRobmFtZT8icm91dGUiOiJ1cmwiKSk6Y3VycmVudFJvdXRlclBhdGNoaW5nTmF2aWdhdGlvblNwYW5SZWYuY3VycmVudD0oMCxfc2VudHJ5X3JlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18ub2cpKGNsaWVudCx7bmFtZTpwYXJhbWV0ZXJpemVkUGF0aG5hbWU/P19zZW50cnlfcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5tOS5sb2NhdGlvbi5wYXRobmFtZSxhdHRyaWJ1dGVzOntbX3NlbnRyeV9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uUzNdOiJhdXRvLm5hdmlnYXRpb24ubmV4dGpzLmFwcF9yb3V0ZXJfaW5zdHJ1bWVudGF0aW9uIixbX3NlbnRyeV9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uWmpdOnBhcmFtZXRlcml6ZWRQYXRobmFtZT8icm91dGUiOiJ1cmwiLCJuYXZpZ2F0aW9uLnR5cGUiOiJicm93c2VyLnBvcHN0YXRlIn19KX0pO2xldCByb3V0ZXJQYXRjaGVkPSExLHRyaWVzVG9GaW5kUm91dGVyPTAsY2hlY2tGb3JSb3V0ZXJBdmFpbGFiaWxpdHlJbnRlcnZhbD1zZXRJbnRlcnZhbCgoKT0+e3RyaWVzVG9GaW5kUm91dGVyKys7bGV0IHJvdXRlcj1HTE9CQUxfT0JKX1dJVEhfTkVYVF9ST1VURVI/Lm5leHQ/LnJvdXRlcj8/R0xPQkFMX09CSl9XSVRIX05FWFRfUk9VVEVSPy5uZD8ucm91dGVyO3JvdXRlclBhdGNoZWR8fHRyaWVzVG9GaW5kUm91dGVyPjUwMD9jbGVhckludGVydmFsKGNoZWNrRm9yUm91dGVyQXZhaWxhYmlsaXR5SW50ZXJ2YWwpOnJvdXRlciYmKGNsZWFySW50ZXJ2YWwoY2hlY2tGb3JSb3V0ZXJBdmFpbGFiaWxpdHlJbnRlcnZhbCkscm91dGVyUGF0Y2hlZD0hMCxwYXRjaFJvdXRlcihjbGllbnQscm91dGVyLGN1cnJlbnRSb3V0ZXJQYXRjaGluZ05hdmlnYXRpb25TcGFuUmVmKSxbIm5kIiwibmV4dCJdLmZvckVhY2goZ2xvYmFsVmFsdWVOYW1lPT57bGV0IGdsb2JhbFZhbHVlPUdMT0JBTF9PQkpfV0lUSF9ORVhUX1JPVVRFUltnbG9iYWxWYWx1ZU5hbWVdO2dsb2JhbFZhbHVlJiYoR0xPQkFMX09CSl9XSVRIX05FWFRfUk9VVEVSW2dsb2JhbFZhbHVlTmFtZV09bmV3IFByb3h5KGdsb2JhbFZhbHVlLHtzZXQ6KHRhcmdldCxwLG5ld1ZhbHVlKT0+KCJyb3V0ZXIiPT09cCYmIm9iamVjdCI9PXR5cGVvZiBuZXdWYWx1ZSYmbnVsbCE9PW5ld1ZhbHVlJiZwYXRjaFJvdXRlcihjbGllbnQsbmV3VmFsdWUsY3VycmVudFJvdXRlclBhdGNoaW5nTmF2aWdhdGlvblNwYW5SZWYpLHRhcmdldFtwXT1uZXdWYWx1ZSwhMCl9KSl9KSl9LDIwKX1mdW5jdGlvbiB0cmFuc2FjdGlvbk5hbWVpZnlSb3V0ZXJBcmd1bWVudCh0YXJnZXQpe3RyeXtyZXR1cm4gbmV3IFVSTCh0YXJnZXQsImh0dHA6Ly9leGFtcGxlLmNvbS8iKS5wYXRobmFtZX1jYXRjaHtyZXR1cm4iLyJ9fWxldCBwYXRjaGVkUm91dGVycz1uZXcgV2Vha1NldDtmdW5jdGlvbiBwYXRjaFJvdXRlcihjbGllbnQscm91dGVyLGN1cnJlbnROYXZpZ2F0aW9uU3BhblJlZil7cGF0Y2hlZFJvdXRlcnMuaGFzKHJvdXRlcil8fChwYXRjaGVkUm91dGVycy5hZGQocm91dGVyKSxbImJhY2siLCJmb3J3YXJkIiwicHVzaCIsInJlcGxhY2UiXS5mb3JFYWNoKHJvdXRlckZ1bmN0aW9uTmFtZT0+e3JvdXRlcj8uW3JvdXRlckZ1bmN0aW9uTmFtZV0mJihyb3V0ZXJbcm91dGVyRnVuY3Rpb25OYW1lXT1uZXcgUHJveHkocm91dGVyW3JvdXRlckZ1bmN0aW9uTmFtZV0se2FwcGx5KHRhcmdldCx0aGlzQXJnLGFyZ0FycmF5KXtpZigicm91dGVyLXBhdGNoIiE9PW5hdmlnYXRpb25Sb3V0aW5nTW9kZSlyZXR1cm4gdGFyZ2V0LmFwcGx5KHRoaXNBcmcsYXJnQXJyYXkpO2xldCB0cmFuc2FjdGlvbk5hbWU9SU5DT01QTEVURV9BUFBfUk9VVEVSX0lOU1RSVU1FTlRBVElPTl9UUkFOU0FDVElPTl9OQU1FLHRyYW5zYWN0aW9uQXR0cmlidXRlcz17W19zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLiRKXToibmF2aWdhdGlvbiIsW19zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlMzXToiYXV0by5uYXZpZ2F0aW9uLm5leHRqcy5hcHBfcm91dGVyX2luc3RydW1lbnRhdGlvbiIsW19zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlpqXToidXJsIn0saHJlZj1hcmdBcnJheVswXSxiYXNlUGF0aD1wcm9jZXNzLmVudi5fc2VudHJ5QmFzZVBhdGg/P2dsb2JhbFdpdGhJbmplY3RlZEJhc2VQYXRoLl9zZW50cnlCYXNlUGF0aCxub3JtYWxpemVkSHJlZj1iYXNlUGF0aCYmInN0cmluZyI9PXR5cGVvZiBocmVmJiYhaHJlZi5zdGFydHNXaXRoKGJhc2VQYXRoKT9gJHtiYXNlUGF0aH0ke2hyZWZ9YDpocmVmOyJwdXNoIj09PXJvdXRlckZ1bmN0aW9uTmFtZT8odHJhbnNhY3Rpb25OYW1lPXRyYW5zYWN0aW9uTmFtZWlmeVJvdXRlckFyZ3VtZW50KG5vcm1hbGl6ZWRIcmVmKSx0cmFuc2FjdGlvbkF0dHJpYnV0ZXNbIm5hdmlnYXRpb24udHlwZSJdPSJyb3V0ZXIucHVzaCIpOiJyZXBsYWNlIj09PXJvdXRlckZ1bmN0aW9uTmFtZT8odHJhbnNhY3Rpb25OYW1lPXRyYW5zYWN0aW9uTmFtZWlmeVJvdXRlckFyZ3VtZW50KG5vcm1hbGl6ZWRIcmVmKSx0cmFuc2FjdGlvbkF0dHJpYnV0ZXNbIm5hdmlnYXRpb24udHlwZSJdPSJyb3V0ZXIucmVwbGFjZSIpOiJiYWNrIj09PXJvdXRlckZ1bmN0aW9uTmFtZT90cmFuc2FjdGlvbkF0dHJpYnV0ZXNbIm5hdmlnYXRpb24udHlwZSJdPSJyb3V0ZXIuYmFjayI6ImZvcndhcmQiPT09cm91dGVyRnVuY3Rpb25OYW1lJiYodHJhbnNhY3Rpb25BdHRyaWJ1dGVzWyJuYXZpZ2F0aW9uLnR5cGUiXT0icm91dGVyLmZvcndhcmQiKTtsZXQgcGFyYW1ldGVyaXplZFBhdGhuYW1lPSgwLF9wYXJhbWV0ZXJpemF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udikodHJhbnNhY3Rpb25OYW1lKTtyZXR1cm4gY3VycmVudE5hdmlnYXRpb25TcGFuUmVmLmN1cnJlbnQ9KDAsX3NlbnRyeV9yZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLm9nKShjbGllbnQse25hbWU6cGFyYW1ldGVyaXplZFBhdGhuYW1lPz90cmFuc2FjdGlvbk5hbWUsYXR0cmlidXRlczp7Li4udHJhbnNhY3Rpb25BdHRyaWJ1dGVzLFtfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5aal06cGFyYW1ldGVyaXplZFBhdGhuYW1lPyJyb3V0ZSI6InVybCJ9fSksdGFyZ2V0LmFwcGx5KHRoaXNBcmcsYXJnQXJyYXkpfX0pKX0pKX1mdW5jdGlvbiBjYXB0dXJlUm91dGVyVHJhbnNpdGlvblN0YXJ0KGhyZWYsbmF2aWdhdGlvblR5cGUpe3JvdXRlclRyYW5zaXRpb25IYW5kbGVyJiZyb3V0ZXJUcmFuc2l0aW9uSGFuZGxlcihocmVmLG5hdmlnYXRpb25UeXBlKX19LDEwODQ4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2xldCBjYWNoZWRNYW5pZmVzdFN0cmluZztfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7VzpmdW5jdGlvbigpe3JldHVybiBnZXRNYW5pZmVzdH0sdjpmdW5jdGlvbigpe3JldHVybiBtYXliZVBhcmFtZXRlcml6ZVJvdXRlfX0pO3ZhciBfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDUxNTk3KSxfc2VudHJ5X2NvcmVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MjQpLF9jb21tb25fZGVidWdfYnVpbGRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDM2MDk2KTtsZXQgZ2xvYmFsV2l0aEluamVjdGVkTWFuaWZlc3Q9X3NlbnRyeV9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubixjYWNoZWRNYW5pZmVzdD1udWxsLGNvbXBpbGVkUmVnZXhDYWNoZT1uZXcgTWFwLHJvdXRlUmVzdWx0Q2FjaGU9bmV3IE1hcDtmdW5jdGlvbiBnZXRSb3V0ZVNwZWNpZmljaXR5KHJvdXRlUGF0aCl7bGV0IHNlZ21lbnRzPXJvdXRlUGF0aC5zcGxpdCgiLyIpLmZpbHRlcihCb29sZWFuKSxzY29yZT0wO2ZvcihsZXQgc2VnbWVudCBvZiBzZWdtZW50cylpZihzZWdtZW50LnN0YXJ0c1dpdGgoIjoiKSl7bGV0IHBhcmFtTmFtZT1zZWdtZW50LnN1YnN0cmluZygxKTtwYXJhbU5hbWUuZW5kc1dpdGgoIio/Iik/c2NvcmUrPTFlMzpwYXJhbU5hbWUuZW5kc1dpdGgoIioiKT9zY29yZSs9MTAwOnNjb3JlKz0xMH1pZihzZWdtZW50cy5sZW5ndGg+MCl7bGV0IHNlZ21lbnRDb3VudFBlbmFsdHk9MS9zZWdtZW50cy5sZW5ndGg7c2NvcmUrPXNlZ21lbnRDb3VudFBlbmFsdHl9cmV0dXJuIHNjb3JlfWZ1bmN0aW9uIGdldENvbXBpbGVkUmVnZXgocmVnZXhTdHJpbmcpe2lmKGNvbXBpbGVkUmVnZXhDYWNoZS5oYXMocmVnZXhTdHJpbmcpKXJldHVybiBjb21waWxlZFJlZ2V4Q2FjaGUuZ2V0KHJlZ2V4U3RyaW5nKT8/bnVsbDt0cnl7bGV0IHJlZ2V4PVJlZ0V4cChyZWdleFN0cmluZyk7cmV0dXJuIGNvbXBpbGVkUmVnZXhDYWNoZS5zZXQocmVnZXhTdHJpbmcscmVnZXgpLHJlZ2V4fWNhdGNoKGVycm9yKXtyZXR1cm4gX2NvbW1vbl9kZWJ1Z19idWlsZF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlgmJl9zZW50cnlfY29yZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmZGLndhcm4oIkNvdWxkIG5vdCBjb21waWxlIHJlZ2V4Iix7cmVnZXhTdHJpbmcsZXJyb3J9KSxudWxsfX1mdW5jdGlvbiBnZXRNYW5pZmVzdCgpe2lmKCFnbG9iYWxXaXRoSW5qZWN0ZWRNYW5pZmVzdD8uX3NlbnRyeVJvdXRlTWFuaWZlc3R8fCJzdHJpbmciIT10eXBlb2YgZ2xvYmFsV2l0aEluamVjdGVkTWFuaWZlc3QuX3NlbnRyeVJvdXRlTWFuaWZlc3QpcmV0dXJuIG51bGw7bGV0IGN1cnJlbnRNYW5pZmVzdFN0cmluZz1nbG9iYWxXaXRoSW5qZWN0ZWRNYW5pZmVzdC5fc2VudHJ5Um91dGVNYW5pZmVzdDtpZihjYWNoZWRNYW5pZmVzdCYmY2FjaGVkTWFuaWZlc3RTdHJpbmc9PT1jdXJyZW50TWFuaWZlc3RTdHJpbmcpcmV0dXJuIGNhY2hlZE1hbmlmZXN0O2NvbXBpbGVkUmVnZXhDYWNoZS5jbGVhcigpLHJvdXRlUmVzdWx0Q2FjaGUuY2xlYXIoKTtsZXQgbWFuaWZlc3Q9e3N0YXRpY1JvdXRlczpbXSxkeW5hbWljUm91dGVzOltdLGlzclJvdXRlczpbXX07dHJ5e2lmKG1hbmlmZXN0PUpTT04ucGFyc2UoY3VycmVudE1hbmlmZXN0U3RyaW5nKSwhQXJyYXkuaXNBcnJheShtYW5pZmVzdC5zdGF0aWNSb3V0ZXMpfHwhQXJyYXkuaXNBcnJheShtYW5pZmVzdC5keW5hbWljUm91dGVzKSlyZXR1cm4gbnVsbDtyZXR1cm4gY2FjaGVkTWFuaWZlc3Q9bWFuaWZlc3QsY2FjaGVkTWFuaWZlc3RTdHJpbmc9Y3VycmVudE1hbmlmZXN0U3RyaW5nLG1hbmlmZXN0fWNhdGNoe3JldHVybiBfY29tbW9uX2RlYnVnX2J1aWxkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uWCYmX3NlbnRyeV9jb3JlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uZkYud2FybigiQ291bGQgbm90IGV4dHJhY3Qgcm91dGUgbWFuaWZlc3QiKSxudWxsfX1sZXQgbWF5YmVQYXJhbWV0ZXJpemVSb3V0ZT1yb3V0ZT0+e2xldCBtYW5pZmVzdD1nZXRNYW5pZmVzdCgpO2lmKCFtYW5pZmVzdClyZXR1cm47aWYocm91dGVSZXN1bHRDYWNoZS5oYXMocm91dGUpKXJldHVybiByb3V0ZVJlc3VsdENhY2hlLmdldChyb3V0ZSk7bGV0e3N0YXRpY1JvdXRlcyxkeW5hbWljUm91dGVzfT1tYW5pZmVzdDtpZighQXJyYXkuaXNBcnJheShzdGF0aWNSb3V0ZXMpfHwhQXJyYXkuaXNBcnJheShkeW5hbWljUm91dGVzKSlyZXR1cm47bGV0IG1hdGNoZXM9ZnVuY3Rpb24ocm91dGUsc3RhdGljUm91dGVzLGR5bmFtaWNSb3V0ZXMpe2xldCBtYXRjaGVzPVtdO2lmKHN0YXRpY1JvdXRlcy5zb21lKHI9PnIucGF0aD09PXJvdXRlKSlyZXR1cm4gbWF0Y2hlcztmb3IobGV0IGR5bmFtaWNSb3V0ZSBvZiBkeW5hbWljUm91dGVzKWlmKGR5bmFtaWNSb3V0ZS5yZWdleCl7bGV0IHJlZ2V4PWdldENvbXBpbGVkUmVnZXgoZHluYW1pY1JvdXRlLnJlZ2V4KTtyZWdleD8udGVzdChyb3V0ZSkmJm1hdGNoZXMucHVzaChkeW5hbWljUm91dGUucGF0aCl9aWYoIXJvdXRlLnN0YXJ0c1dpdGgoIi86Iikpe2ZvcihsZXQgZHluYW1pY1JvdXRlMSBvZiBkeW5hbWljUm91dGVzKWlmKGR5bmFtaWNSb3V0ZTEuaGFzT3B0aW9uYWxQcmVmaXgmJmR5bmFtaWNSb3V0ZTEucmVnZXgpe2xldCByb3V0ZVdpdGhQcmVmaXg9Ii8iPT09cm91dGU/Ii9TRU5UUllfT1BUSU9OQUxfUFJFRklYIjpgL1NFTlRSWV9PUFRJT05BTF9QUkVGSVgke3JvdXRlfWAscmVnZXgxPWdldENvbXBpbGVkUmVnZXgoZHluYW1pY1JvdXRlMS5yZWdleCk7cmVnZXgxPy50ZXN0KHJvdXRlV2l0aFByZWZpeCkmJm1hdGNoZXMucHVzaChkeW5hbWljUm91dGUxLnBhdGgpfX1yZXR1cm4gbWF0Y2hlc30ocm91dGUsc3RhdGljUm91dGVzLGR5bmFtaWNSb3V0ZXMpLHJlc3VsdD1tYXRjaGVzLnNvcnQoKGEsYik9PmdldFJvdXRlU3BlY2lmaWNpdHkoYSktZ2V0Um91dGVTcGVjaWZpY2l0eShiKSlbMF07cmV0dXJuIHJvdXRlUmVzdWx0Q2FjaGUuc2V0KHJvdXRlLHJlc3VsdCkscmVzdWx0fX0sMzYwOTY6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1g6ZnVuY3Rpb24oKXtyZXR1cm4gREVCVUdfQlVJTER9fSk7bGV0IERFQlVHX0JVSUxEPSExfSwzOTEzNjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsbGVuKXsobnVsbD09bGVufHxsZW4+YXJyLmxlbmd0aCkmJihsZW49YXJyLmxlbmd0aCk7Zm9yKHZhciBpPTAsYXJyMj1BcnJheShsZW4pO2k8bGVuO2krKylhcnIyW2ldPWFycltpXTtyZXR1cm4gYXJyMn1fX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBfYXJyYXlMaWtlVG9BcnJheX19KX0sMjU4NDM6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gX2FycmF5V2l0aEhvbGVzKGFycil7aWYoQXJyYXkuaXNBcnJheShhcnIpKXJldHVybiBhcnJ9X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gX2FycmF5V2l0aEhvbGVzfX0pfSw5MTM2OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZjEpe2lmKHZvaWQgMD09PXNlbGYxKXRocm93IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gc2VsZjF9X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZH19KX0sNzQ1MzY6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLENvbnN0cnVjdG9yKXtpZighKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKXRocm93IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gX2NsYXNzQ2FsbENoZWNrfX0pfSwzMDg2NjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBfY3JlYXRlQ2xhc3N9fSk7dmFyIF90b1Byb3BlcnR5S2V5X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg4MjkyNyk7ZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LHByb3BzKXtmb3IodmFyIGk9MDtpPHByb3BzLmxlbmd0aDtpKyspe3ZhciBkZXNjcmlwdG9yPXByb3BzW2ldO2Rlc2NyaXB0b3IuZW51bWVyYWJsZT1kZXNjcmlwdG9yLmVudW1lcmFibGV8fCExLGRlc2NyaXB0b3IuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBkZXNjcmlwdG9yJiYoZGVzY3JpcHRvci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwoMCxfdG9Qcm9wZXJ0eUtleV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKGRlc2NyaXB0b3Iua2V5KSxkZXNjcmlwdG9yKX19ZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLHByb3RvUHJvcHMsc3RhdGljUHJvcHMpe3JldHVybiBwcm90b1Byb3BzJiZfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUscHJvdG9Qcm9wcyksc3RhdGljUHJvcHMmJl9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLHN0YXRpY1Byb3BzKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQ29uc3RydWN0b3IsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksQ29uc3RydWN0b3J9fSw0NjY5NjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBfZGVmaW5lUHJvcGVydHl9fSk7dmFyIF90b1Byb3BlcnR5S2V5X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg4MjkyNyk7ZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaixrZXksdmFsdWUpe3JldHVybihrZXk9KDAsX3RvUHJvcGVydHlLZXlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShrZXkpKWluIG9iaj9PYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLGtleSx7dmFsdWU6dmFsdWUsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpvYmpba2V5XT12YWx1ZSxvYmp9fSw4MDA5ODpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobyl7cmV0dXJuKF9nZXRQcm90b3R5cGVPZj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihvKXtyZXR1cm4gby5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihvKX0pKG8pfV9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIF9nZXRQcm90b3R5cGVPZn19KX0sNjAxMzQ6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8scCl7cmV0dXJuKF9zZXRQcm90b3R5cGVPZj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihvLHApe3JldHVybiBvLl9fcHJvdG9fXz1wLG99KShvLHApfWZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcyxzdXBlckNsYXNzKXtpZigiZnVuY3Rpb24iIT10eXBlb2Ygc3VwZXJDbGFzcyYmbnVsbCE9PXN1cGVyQ2xhc3MpdGhyb3cgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO3N1YkNsYXNzLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MmJnN1cGVyQ2xhc3MucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6c3ViQ2xhc3Msd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzdWJDbGFzcywicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxzdXBlckNsYXNzJiZfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3Msc3VwZXJDbGFzcyl9X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gX2luaGVyaXRzfX0pfSwyOTM3NzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5KGl0ZXIpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1pdGVyW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWl0ZXJbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShpdGVyKX1fX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBfaXRlcmFibGVUb0FycmF5fX0pfSw0Mzc1NjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfbm9uSXRlcmFibGVSZXN0KCl7dGhyb3cgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfV9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIF9ub25JdGVyYWJsZVJlc3R9fSl9LDQ2OTkwOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJufX0pO3ZhciBfdHlwZW9mX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg1MDczKSxfYXNzZXJ0VGhpc0luaXRpYWxpemVkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg5MTM2KTtmdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmMSxjYWxsKXtpZihjYWxsJiYoIm9iamVjdCI9PT0oMCxfdHlwZW9mX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoY2FsbCl8fCJmdW5jdGlvbiI9PXR5cGVvZiBjYWxsKSlyZXR1cm4gY2FsbDtpZih2b2lkIDAhPT1jYWxsKXRocm93IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4oMCxfYXNzZXJ0VGhpc0luaXRpYWxpemVkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uWikoc2VsZjEpfX0sNTcxNzI6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gX3RvQXJyYXl9fSk7dmFyIF9hcnJheVdpdGhIb2xlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oMjU4NDMpLF9pdGVyYWJsZVRvQXJyYXlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI5Mzc3KSxfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDM2MTQ0KSxfbm9uSXRlcmFibGVSZXN0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX189X193ZWJwYWNrX3JlcXVpcmVfXyg0Mzc1Nik7ZnVuY3Rpb24gX3RvQXJyYXkoYXJyKXtyZXR1cm4oMCxfYXJyYXlXaXRoSG9sZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShhcnIpfHwoMCxfaXRlcmFibGVUb0FycmF5X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uWikoYXJyKXx8KDAsX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uWikoYXJyKXx8KDAsX25vbkl0ZXJhYmxlUmVzdF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLlopKCl9fSw4MjkyNzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBfdG9Qcm9wZXJ0eUtleX19KTt2YXIgZXNtX3R5cGVvZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDUwNzMpO2Z1bmN0aW9uIF90b1Byb3BlcnR5S2V5KGFyZyl7dmFyIGtleT1mdW5jdGlvbihpbnB1dCxoaW50KXtpZigib2JqZWN0IiE9PSgwLGVzbV90eXBlb2YuWikoaW5wdXQpfHxudWxsPT09aW5wdXQpcmV0dXJuIGlucHV0O3ZhciBwcmltPWlucHV0W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cHJpbSl7dmFyIHJlcz1wcmltLmNhbGwoaW5wdXQsaGludHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9PSgwLGVzbV90eXBlb2YuWikocmVzKSlyZXR1cm4gcmVzO3Rocm93IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1oaW50P1N0cmluZzpOdW1iZXIpKGlucHV0KX0oYXJnLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09PSgwLGVzbV90eXBlb2YuWikoa2V5KT9rZXk6U3RyaW5nKGtleSl9fSw1MDczOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIF90eXBlb2Yob2JqKXtyZXR1cm4oX3R5cGVvZj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihvYmope3JldHVybiB0eXBlb2Ygb2JqfTpmdW5jdGlvbihvYmope3JldHVybiBvYmomJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJm9iai5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmb2JqIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2Ygb2JqfSkob2JqKX1fX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBfdHlwZW9mfX0pfSwzNjE0NDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXl9fSk7dmFyIF9hcnJheUxpa2VUb0FycmF5X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXygzOTEzNik7ZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sbWluTGVuKXtpZihvKXtpZigic3RyaW5nIj09dHlwZW9mIG8pcmV0dXJuKDAsX2FycmF5TGlrZVRvQXJyYXlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShvLG1pbkxlbik7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09biYmby5jb25zdHJ1Y3RvciYmKG49by5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bilyZXR1cm4gQXJyYXkuZnJvbShvKTtpZigiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybigwLF9hcnJheUxpa2VUb0FycmF5X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikobyxtaW5MZW4pfX19fV0pOw=="}},"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":"buvei.com/_next/static/css/9c9cff4cf5ffa797.css","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.832Z","timestamp":1785127668832,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/static/css/9c9cff4cf5ffa797.css HTTP/1.1\r\nHost: buvei.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: text/css; charset=UTF-8\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\ncache-control: public, max-age=31536000, immutable\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=3N%2BfxxlNt7dQRuBlPgWikcyOzwtp0lq6i4BW34D30RDFBU6D%2FHfQT%2F0qnwTz9avCfY2kVbgwwPKb7nrJulTh0%2B7Kk98rCoWnFClG56v3g0mSasRn95ZVFyl5ZA%3D%3D\"}]}\r\nlast-modified: Mon, 29 Jun 2026 05:34:13 GMT\r\netag: W/\"137-19f11def808\"\r\nvary: Accept-Encoding\r\nage: 188872\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\ncontent-encoding: br\r\ncf-ray: a219021a3fc48be6-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"]}],"data":{"size":311,"size_decoded":930,"mime_type":"text/css; charset=UTF-8","magic":"ASCII text, with very long lines (311), with no line terminators","md5":"fb7dc8dede8a65b124894e31e58556ac","sha1":"dbee797c71b7b1494b5b7df8093be12ca416919a","sha256":"2c1328b0d3eb4aee74846e42328b79240f42776afff3f2443115d5c0fc750997","sha512":"ebaf90bb6aa817f54955d470d88ef7c9deed1e1e28251885057602ae89c6f4652c7ffb60a2571d1be02150e3bae49a3be43d64a146c9a77cba04bb9d9609a281","ssdeep":"","tlshash":"59e0264409000031cbde5219dac30b69c4a8c31bca320e9eb2609ca706c3ea729dadc1","first_seen":"2026-07-27T03:56:11.678025Z","last_seen":"2026-07-27T10:05:53.912187Z","times_seen":4,"resource_available":false,"data":"QGtleWZyYW1lcyBhdXRvU2Nyb2xsX3Njcm9sbC1ob3Jpem9udGFsX19yN3FGQXswJXt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX10b3t0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTUwJSwwLDApfX0uYXV0b1Njcm9sbF9zY3JvbGwtY29udGFpbmVyX19NcXBvY3tvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9LmF1dG9TY3JvbGxfc2Nyb2xsLWNvbnRlbnRfXzAzUGJue2Rpc3BsYXk6ZmxleDthbmltYXRpb246YXV0b1Njcm9sbF9zY3JvbGwtaG9yaXpvbnRhbF9fcjdxRkEgbGluZWFyIGluZmluaXRlO3dpbGwtY2hhbmdlOnRyYW5zZm9ybX0="}},"time_used":9,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"image.crisp.chat/process/thumbnail/?url=https%3A%2F%2Fstorage.crisp.chat%2Fusers%2Favatar%2Foperator%2F-%2F8%2F7%2F8%2F3%2F878303b506282000%2Fimg0588jpg_p6blwl.jpg\u0026width=120\u0026height=120\u00261783170208855","fqdn":"image.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:50.327Z","timestamp":1785127670327,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /process/thumbnail/?url=https%3A%2F%2Fstorage.crisp.chat%2Fusers%2Favatar%2Foperator%2F-%2F8%2F7%2F8%2F3%2F878303b506282000%2Fimg0588jpg_p6blwl.jpg\u0026width=120\u0026height=120\u00261783170208855 HTTP/1.1\r\nHost: image.crisp.chat\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-type: image/webp\r\ncontent-length: 2512\r\naccept-ranges: bytes\r\ncache-control: public, max-age=315360000\r\ncross-origin-resource-policy: cross-origin\r\netag: W/\"9d0-19f9f411428\"\r\nexpires: Thu, 24 Jul 2036 04:47:50 GMT\r\nlast-modified: Sun, 26 Jul 2026 16:27:50 GMT\r\nserver: cloudflare\r\npriority: u=5,i\r\nage: 44400\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\ncf-ray: a219022388eab28a-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"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":2512,"size_decoded":3095,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image, VP8 encoding, 120x120, Scaling: [none]x[none], YUV color, decoders should clamp","md5":"8920ca573b8905818885c42b80820840","sha1":"2eb23db0bf21edb5afe991698372202290a305e4","sha256":"9170452581f0884f319c19667fc975032a829b4405f361b863a5bd09bda8caf8","sha512":"7c5ee5fd5431f1f3588e2e4c6bd0e6c66ad352eb638ba1cd15c91dbf4f18f9d0a628f0171a92c8459e80bef710552da9e4adac13b67f764a41f42ded097401ad","ssdeep":"","tlshash":"4151392442ea91d01784c1c0ece8956a319e05c5e3a8e7e80ba3c5b261d4e35abb6d29","first_seen":"2026-07-27T03:56:11.723169Z","last_seen":"2026-07-27T10:05:53.936216Z","times_seen":4,"resource_available":false,"data":"UklGRsgJAABXRUJQVlA4ILwJAAAQLwCdASp4AHgAPlEgjkWjoaEUyN4IOAUEsoBj0BCpr2Di7Qb7JXpj3AnOy6dLvT1poaacxJn+6E7TfrZQ3LquO7vL8WpQA/OXotaJ3q/9k/gP/Wv/k9gb9qvYz/bNBf9C1GPKrRJDLmnUSsqIhVKYUxapGBF4zu/z5TdbtJcb+gURRaKZvHakPkVRj4p0GNl4WB1C4yntZcM/voigYQpflU1E/cXn5L3ovC6ZKDft2jNVyI4stK1iyghbWgly+f8aO0PY46IVpgcxAfr19SEuim+WUszBo0ZzLyD9h8wosn0Mpp0k12bJ6brVl6SxpH2g/e1CRu4tpaRrcisAg6rPtGDfPomRECUCl5rimgLC2fcyDDf8P8EeIxkUi0IQl/44LQUjCmIwXh0UTWPpweoEwRCnA6MRAmS3Mb95X0RV2BFiJM3n7XdFEMboqsEbY1z5am1q54pOQ8IHKQu0b/++Xa0plt2Fhcm76ZhtqQGeGM1E1jZVbdefF51fRSwMIlEAAP79DirEBA2ixQjb1Z1Aii2s1zEJRqaqnrd4i5VuD8Y4x9Ow56lTt1fKP7qfz5k1pkyLySO6QCsozR/zY+h4vFMCJlTbQ6uBk7P/8C8SlEiRTU6eqSFP3wwy/xv0ulLNjZCHeAj62L5Zsrl6Wi/reo9doaiKkQZF+EvF57A0/NrZ3xh9tui8GUVqMx3idocPtctzcjQoaEx5+7U9y6fwHKvg1eCnmzgm3tr7deM5z/Z9WKf3XjTFQh3EO/1X7p6ksqSVF2ZUTvgb5wXKioAysXPimyJ/5m/4fQLXEdh29puznGgqrlhxdF/WxIM7iGEMP62KbN7GDM4+D0EGicT05hhkz0H62nhszDT/D0pbYgT5XFav+Xd8ljPAiAculW4At5p9fJ6I01obj+vEn6XwT2K2RlLLg3H6zQjPz7tJiL7P56B3WR48OytdLm6fz5t/Yb0+WhvpVAorUqh9SYxZfg63aOKaEbLv0ySWetn3eUubLCz4ekEiV6c3nS7Q2DrRYgr0WnxYzVRTC2eEWHzYfxmCiQc6cKI80OAp96guZJAor47Vlyfc6EDbxSkTeiuRx7Ltjut5ve1O6SyvGwfAUX8IOqB9FwtPKjh8Dfb4PR8eA52DbSzNOujUDbvrp+zBYHeNu4mbJvHL8MZlMmcFBZCEDaH/vK7IJMDEwKE1FH8R/tcFXUR/KlGKpXy/6HBv6larXZciYTlslawyP0T0vJLx07xfb0r1sODBIaQHZ/9Spu31maUrsz85ge3Sg8aD0tJVWLnzlco19whvjt3h2IuBkWSrEaDYwWUYZIyHHreViCy/uR1ikYMBrAW7CV6IoTC2kZwTGV3h6ReZHSndBEJdtd0p1Vwrf4a2q4wVTImxQ0q+gFnx4XXchXOiYQ8vkRjS1Kav1PGyT8ylZfz9zZI/L1byGYKDzrsFRKqGdIHCup6IySNhYlMa0rrup2LhSKGVqS9lfcuzXEfYlcy2OEsdfcsEYBMX4yXGuhYcDACp5gvxOcQP3KZYU0zd/OSRswzibgt+l2BGHHP0mLDHwgikKn+ty21oGRXHwAvHFnrlm6ywR1lmcwaiNwRfKYJP+IZ7kjxJYWaATQCUNkxsIwAc4PZHtP+o//6V6jKq7bVeEpFrhWbtpVh0RLyvZz4P8jbhnIad99eTpTIjS92rjWcU1Yge6uO4k2ovWV/eP//vA/jcbmQLvZL7dYpmnDXPD2ko2daeou2dzsy49VoDo2Lo7m/mMokm0f2gYlKn+1+8sE/nmTGn5mR+tfNj2oAQsTsW3d9GauwvFX0rNWSQIn3eb8ezrzzj/NZkAecWs+7gIhWqYHGzFADXShoy7AFVuoXa0rcWmdjShVBxQmDnO9OVguVeh0tpgugICme9WWAA+5eVCggX/DAzEYNtPlk97vSWXycQtwwqUqPaGIBBHskT0zn7DwyswXiI8QZTiJyxnn1kdghYFXH+lGHZBwha7KU4I4hLDPdyLSz3WDtqskDHnV6hSby4Qh8w0Gvs6U6pI9ZGcezaMfiw/cLEV/xN7giWDAnKp28CG69Ow08I+2vsn1SRwGFH0UD9iLTPzEmXTAgjX9/8CP/6OdDBs5b8evBlc4iSH9C/mU9/Ha4P715CUbCuhr9lyIEAVYja7MTgWMnX0sVlsCusa0xh/d2i/Yb1T126pqh2+QwEMWvscSpna1JDofArmTk6c0QnjiIk98MMOJmQO3QypQZ4Z4vZXiaN39Htliyz9d/BlEUx/BLp0s466ghEu4IRR8oYpIYgQ9jcc4pxjsGhgFXaLQKbGFmeZUmvpOIYYhoKAjgttZ7ytHSz3tysvo4vRSfESYrkkw2QXsSQCarOMLZfO5sVLYT/u0Zm+jXp4JStsM2iY0CoVjQOu8bTdBqSFZWhYedaCq34dmCxulxK0Uf1DewqL561e8fSwbYRx3NS8wAsKpD1gFL+CPQlu7iPp/z/cgpt1p7RbfDSooTHKONFnFEv9xokzVC391sCWe3lDpnkQVT9+PUh6vq/ebg4lZnc3q1uvbd4OtdfL7t1aq/zNhhiNtuzU6bmAvCjRvxxbkT0/cR+unK03JQTU8iFQvyLsryvLDTM10+8LYuqJ9gDlzLjEB/gtodWktvKWRlszkMHmMDzjHwInDoXUvCP3wFANZaTH9S9K6U3UYaAlhUnTjoUyrQjmUMMh+ecCQ0PQa0Y6uifxp+XEMEqpOoKM3Lj1AxT5jE1pS8eiE8W5APRSw0FFyRj74S6lkF8s1G/ZXRnspC7g6O+zhk8XVwQhPkkgoaEaNj5v/X/QkCNqRCouNWV3i12+crLYGUVPrXOy5FxfSN9bDSFh3ntBTwNcecSuAZzvEd3SjK8QRSN84DiCCaYPzRxcu4RxdN5ezWpjKTgJWcW5cGiX6hePzkyfmO4hszD2IhQWO4rXYj3YaLeCaMcHIcFwQ97yWXMVRX/Dm4PK29clABs8oWJOSfk9VjSHpk82dJqdLBOdoin+AZyJXpCEt5LmLL25aZMVyEsFaXnYPSf/Zk8iIg4SwvYKXAmyhdC2TgVTlZLYWT0qThLS6T1JINBAN1LFDipoCkBN2sPgMHVodKAyKX+B943H/k4JeGHkoOnh1weBAKC6Xo2xvx/rEHlA9eMG6jWOLinMUqx5clhFmE/kfOnGSzU1RPqSVvcVaLukq3l+GyNKlIiLrwu3v+leMwTh70AJd15nJeKk2neawd0dA97fJafU4/JDtIOk/nqPl/PmkYL0CYyoDkrtkKadEs53sbxd8Jk9YfZSju9f5jKIdyIqOvXlPZ6S49CGA5MiN4/MIAAAA=="}},"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":"buvei.com/_next/static/chunks/framework-1405868483290479.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.440Z","timestamp":1785127668440,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/static/chunks/framework-1405868483290479.js HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: application/javascript; charset=UTF-8\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\ncache-control: public, max-age=31536000, immutable\r\naccept-ranges: bytes\r\nlast-modified: Mon, 29 Jun 2026 05:34:13 GMT\r\netag: W/\"22c6a-19f11def808\"\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nage: 334919\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=Q2BZEh8HIBmp3qXUVB2Aug1XrupbcI2oBJ%2F8WFxoe8sUG0DOWX1w1j3kMTqW9mqlFD2YeszTPSWkK60xOtNNTpBRJ9K%2FyXzU0kL0pdA3fNqRtOFgZr3NDPMwjw%3D%3D\"}]}\r\ncf-ray: a2190217cb458be6-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"]}],"data":{"size":142442,"size_decoded":46848,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (64771)","md5":"e00733546f3323ffb85b07313e7e7717","sha1":"4716425cdc116f42ab2cf5be06799956f24eea6a","sha256":"15a624abd1b6acac2143ff8f3b41982af139b64e4d047773b1f7ddbf9aec16d0","sha512":"7bae0b477acb72989cfb56a7b5aef441829d02541d25ef3d7f25a416aac686a77e45fa3ae46284ee3df47a4feeae16d6d4949328b43ec9436f7993b7d48ee1f0","ssdeep":"1536:YzvlNAND5d7fCJZKYYfLif/5VolRqZwKksm/S6bQg5FSrJRX/S:YzN87KrYfL7Exj6E7bvS","tlshash":"e2d309e97996f5539a7312ab00af1403727c692b780c8cb0e140eedd65bc46da17bf8d","first_seen":"2026-07-27T03:56:11.630965Z","last_seen":"2026-07-27T10:05:53.933853Z","times_seen":4,"resource_available":true,"data":"dHJ5eyFmdW5jdGlvbigpe3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sbj0obmV3IGUuRXJyb3IpLnN0YWNrO24mJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbbl09IjZmMDI1OGQyLWEzNjYtNDkxMS05MzlkLTk1ODJhMTRiMGE0NyIsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9InNlbnRyeS1kYmlkLTZmMDI1OGQyLWEzNjYtNDkxMS05MzlkLTk1ODJhMTRiMGE0NyIpfSgpfWNhdGNoKGUpe30idXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rX05fRT1zZWxmLndlYnBhY2tDaHVua19OX0V8fFtdKS5wdXNoKFtbOTc3NF0sezY0NDQ4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7LyoqCiAqIEBsaWNlbnNlIFJlYWN0CiAqIHJlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qcwogKgogKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4KICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlCiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovIHZhciB4ZSxBaixCaixDaixEaixXayxhYT1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxjYT1fX3dlYnBhY2tfcmVxdWlyZV9fKDYzODQwKTtmdW5jdGlvbiBwKGEpe2Zvcih2YXIgYj0iaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2Vycm9yLWRlY29kZXIuaHRtbD9pbnZhcmlhbnQ9IithLGM9MTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKWIrPSImYXJnc1tdPSIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1tjXSk7cmV0dXJuIk1pbmlmaWVkIFJlYWN0IGVycm9yICMiK2ErIjsgdmlzaXQgIitiKyIgZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycyBhbmQgYWRkaXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLiJ9dmFyIGRhPW5ldyBTZXQsZWE9e307ZnVuY3Rpb24gZmEoYSxiKXtoYShhLGIpLGhhKGErIkNhcHR1cmUiLGIpfWZ1bmN0aW9uIGhhKGEsYil7Zm9yKGVhW2FdPWIsYT0wO2E8Yi5sZW5ndGg7YSsrKWRhLmFkZChiW2FdKX12YXIgaWE9ISgidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvd3x8dm9pZCAwPT09d2luZG93LmRvY3VtZW50fHx2b2lkIDA9PT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCksamE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxrYT0vXls6QS1aX2Etelx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDJGRlx1MDM3MC1cdTAzN0RcdTAzN0YtXHUxRkZGXHUyMDBDLVx1MjAwRFx1MjA3MC1cdTIxOEZcdTJDMDAtXHUyRkVGXHUzMDAxLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkZEXVs6QS1aX2Etelx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDJGRlx1MDM3MC1cdTAzN0RcdTAzN0YtXHUxRkZGXHUyMDBDLVx1MjAwRFx1MjA3MC1cdTIxOEZcdTJDMDAtXHUyRkVGXHUzMDAxLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkZEXC0uMC05XHUwMEI3XHUwMzAwLVx1MDM2Rlx1MjAzRi1cdTIwNDBdKiQvLGxhPXt9LG1hPXt9O2Z1bmN0aW9uIHYoYSxiLGMsZCxlLGYsZyl7dGhpcy5hY2NlcHRzQm9vbGVhbnM9Mj09PWJ8fDM9PT1ifHw0PT09Yix0aGlzLmF0dHJpYnV0ZU5hbWU9ZCx0aGlzLmF0dHJpYnV0ZU5hbWVzcGFjZT1lLHRoaXMubXVzdFVzZVByb3BlcnR5PWMsdGhpcy5wcm9wZXJ0eU5hbWU9YSx0aGlzLnR5cGU9Yix0aGlzLnNhbml0aXplVVJMPWYsdGhpcy5yZW1vdmVFbXB0eVN0cmluZz1nfXZhciB6PXt9OyJjaGlsZHJlbiBkYW5nZXJvdXNseVNldElubmVySFRNTCBkZWZhdWx0VmFsdWUgZGVmYXVsdENoZWNrZWQgaW5uZXJIVE1MIHN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyBzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcgc3R5bGUiLnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsMCwhMSxhLG51bGwsITEsITEpfSksW1siYWNjZXB0Q2hhcnNldCIsImFjY2VwdC1jaGFyc2V0Il0sWyJjbGFzc05hbWUiLCJjbGFzcyJdLFsiaHRtbEZvciIsImZvciJdLFsiaHR0cEVxdWl2IiwiaHR0cC1lcXVpdiJdXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPWFbMF07eltiXT1uZXcgdihiLDEsITEsYVsxXSxudWxsLCExLCExKX0pLFsiY29udGVudEVkaXRhYmxlIiwiZHJhZ2dhYmxlIiwic3BlbGxDaGVjayIsInZhbHVlIl0uZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsMiwhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KSxbImF1dG9SZXZlcnNlIiwiZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCIsImZvY3VzYWJsZSIsInByZXNlcnZlQWxwaGEiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSwyLCExLGEsbnVsbCwhMSwhMSl9KSwiYWxsb3dGdWxsU2NyZWVuIGFzeW5jIGF1dG9Gb2N1cyBhdXRvUGxheSBjb250cm9scyBkZWZhdWx0IGRlZmVyIGRpc2FibGVkIGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlIGRpc2FibGVSZW1vdGVQbGF5YmFjayBmb3JtTm9WYWxpZGF0ZSBoaWRkZW4gbG9vcCBub01vZHVsZSBub1ZhbGlkYXRlIG9wZW4gcGxheXNJbmxpbmUgcmVhZE9ubHkgcmVxdWlyZWQgcmV2ZXJzZWQgc2NvcGVkIHNlYW1sZXNzIGl0ZW1TY29wZSIuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSwzLCExLGEudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pLFsiY2hlY2tlZCIsIm11bHRpcGxlIiwibXV0ZWQiLCJzZWxlY3RlZCJdLmZvckVhY2goZnVuY3Rpb24oYSl7elthXT1uZXcgdihhLDMsITAsYSxudWxsLCExLCExKX0pLFsiY2FwdHVyZSIsImRvd25sb2FkIl0uZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsNCwhMSxhLG51bGwsITEsITEpfSksWyJjb2xzIiwicm93cyIsInNpemUiLCJzcGFuIl0uZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsNiwhMSxhLG51bGwsITEsITEpfSksWyJyb3dTcGFuIiwic3RhcnQiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSw1LCExLGEudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pO3ZhciByYT0vW1wtOl0oW2Etel0pL2c7ZnVuY3Rpb24gc2EoYSl7cmV0dXJuIGFbMV0udG9VcHBlckNhc2UoKX1mdW5jdGlvbiB0YShhLGIsYyxkKXt2YXIgYTEsZT16Lmhhc093blByb3BlcnR5KGIpP3pbYl06bnVsbDsobnVsbCE9PWU/MCE9PWUudHlwZTpkfHwhKDI8Yi5sZW5ndGgpfHwibyIhPT1iWzBdJiYiTyIhPT1iWzBdfHwibiIhPT1iWzFdJiYiTiIhPT1iWzFdKSYmKGZ1bmN0aW9uKGEsYixjLGQpe2lmKG51bGw9PWJ8fGZ1bmN0aW9uKGEsYixjLGQpe2lmKG51bGwhPT1jJiYwPT09Yy50eXBlKXJldHVybiExO3N3aXRjaCh0eXBlb2YgYil7Y2FzZSJmdW5jdGlvbiI6Y2FzZSJzeW1ib2wiOnJldHVybiEwO2Nhc2UiYm9vbGVhbiI6aWYoZClyZXR1cm4hMTtpZihudWxsIT09YylyZXR1cm4hYy5hY2NlcHRzQm9vbGVhbnM7cmV0dXJuImRhdGEtIiE9PShhPWEudG9Mb3dlckNhc2UoKS5zbGljZSgwLDUpKSYmImFyaWEtIiE9PWE7ZGVmYXVsdDpyZXR1cm4hMX19KGEsYixjLGQpKXJldHVybiEwO2lmKGQpcmV0dXJuITE7aWYobnVsbCE9PWMpc3dpdGNoKGMudHlwZSl7Y2FzZSAzOnJldHVybiFiO2Nhc2UgNDpyZXR1cm4hMT09PWI7Y2FzZSA1OnJldHVybiBpc05hTihiKTtjYXNlIDY6cmV0dXJuIGlzTmFOKGIpfHwxPmJ9cmV0dXJuITF9KGIsYyxlLGQpJiYoYz1udWxsKSxkfHxudWxsPT09ZT8oYTE9YiwoISFqYS5jYWxsKG1hLGExKXx8IWphLmNhbGwobGEsYTEpJiYoa2EudGVzdChhMSk/bWFbYTFdPSEwOihsYVthMV09ITAsITEpKSkmJihudWxsPT09Yz9hLnJlbW92ZUF0dHJpYnV0ZShiKTphLnNldEF0dHJpYnV0ZShiLCIiK2MpKSk6ZS5tdXN0VXNlUHJvcGVydHk/YVtlLnByb3BlcnR5TmFtZV09bnVsbD09PWM/MyE9PWUudHlwZSYmIiI6YzooYj1lLmF0dHJpYnV0ZU5hbWUsZD1lLmF0dHJpYnV0ZU5hbWVzcGFjZSxudWxsPT09Yz9hLnJlbW92ZUF0dHJpYnV0ZShiKTooYz0zPT09KGU9ZS50eXBlKXx8ND09PWUmJiEwPT09Yz8iIjoiIitjLGQ/YS5zZXRBdHRyaWJ1dGVOUyhkLGIsYyk6YS5zZXRBdHRyaWJ1dGUoYixjKSkpKX0iYWNjZW50LWhlaWdodCBhbGlnbm1lbnQtYmFzZWxpbmUgYXJhYmljLWZvcm0gYmFzZWxpbmUtc2hpZnQgY2FwLWhlaWdodCBjbGlwLXBhdGggY2xpcC1ydWxlIGNvbG9yLWludGVycG9sYXRpb24gY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIGNvbG9yLXByb2ZpbGUgY29sb3ItcmVuZGVyaW5nIGRvbWluYW50LWJhc2VsaW5lIGVuYWJsZS1iYWNrZ3JvdW5kIGZpbGwtb3BhY2l0eSBmaWxsLXJ1bGUgZmxvb2QtY29sb3IgZmxvb2Qtb3BhY2l0eSBmb250LWZhbWlseSBmb250LXNpemUgZm9udC1zaXplLWFkanVzdCBmb250LXN0cmV0Y2ggZm9udC1zdHlsZSBmb250LXZhcmlhbnQgZm9udC13ZWlnaHQgZ2x5cGgtbmFtZSBnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIGdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIGhvcml6LWFkdi14IGhvcml6LW9yaWdpbi14IGltYWdlLXJlbmRlcmluZyBsZXR0ZXItc3BhY2luZyBsaWdodGluZy1jb2xvciBtYXJrZXItZW5kIG1hcmtlci1taWQgbWFya2VyLXN0YXJ0IG92ZXJsaW5lLXBvc2l0aW9uIG92ZXJsaW5lLXRoaWNrbmVzcyBwYWludC1vcmRlciBwYW5vc2UtMSBwb2ludGVyLWV2ZW50cyByZW5kZXJpbmctaW50ZW50IHNoYXBlLXJlbmRlcmluZyBzdG9wLWNvbG9yIHN0b3Atb3BhY2l0eSBzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIHN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIHN0cm9rZS1kYXNoYXJyYXkgc3Ryb2tlLWRhc2hvZmZzZXQgc3Ryb2tlLWxpbmVjYXAgc3Ryb2tlLWxpbmVqb2luIHN0cm9rZS1taXRlcmxpbWl0IHN0cm9rZS1vcGFjaXR5IHN0cm9rZS13aWR0aCB0ZXh0LWFuY2hvciB0ZXh0LWRlY29yYXRpb24gdGV4dC1yZW5kZXJpbmcgdW5kZXJsaW5lLXBvc2l0aW9uIHVuZGVybGluZS10aGlja25lc3MgdW5pY29kZS1iaWRpIHVuaWNvZGUtcmFuZ2UgdW5pdHMtcGVyLWVtIHYtYWxwaGFiZXRpYyB2LWhhbmdpbmcgdi1pZGVvZ3JhcGhpYyB2LW1hdGhlbWF0aWNhbCB2ZWN0b3ItZWZmZWN0IHZlcnQtYWR2LXkgdmVydC1vcmlnaW4teCB2ZXJ0LW9yaWdpbi15IHdvcmQtc3BhY2luZyB3cml0aW5nLW1vZGUgeG1sbnM6eGxpbmsgeC1oZWlnaHQiLnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UocmEsc2EpO3pbYl09bmV3IHYoYiwxLCExLGEsbnVsbCwhMSwhMSl9KSwieGxpbms6YWN0dWF0ZSB4bGluazphcmNyb2xlIHhsaW5rOnJvbGUgeGxpbms6c2hvdyB4bGluazp0aXRsZSB4bGluazp0eXBlIi5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKHJhLHNhKTt6W2JdPW5ldyB2KGIsMSwhMSxhLCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwhMSwhMSl9KSxbInhtbDpiYXNlIiwieG1sOmxhbmciLCJ4bWw6c3BhY2UiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShyYSxzYSk7eltiXT1uZXcgdihiLDEsITEsYSwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwhMSwhMSl9KSxbInRhYkluZGV4IiwiY3Jvc3NPcmlnaW4iXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSwxLCExLGEudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pLHoueGxpbmtIcmVmPW5ldyB2KCJ4bGlua0hyZWYiLDEsITEsInhsaW5rOmhyZWYiLCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwhMCwhMSksWyJzcmMiLCJocmVmIiwiYWN0aW9uIiwiZm9ybUFjdGlvbiJdLmZvckVhY2goZnVuY3Rpb24oYSl7elthXT1uZXcgdihhLDEsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITAsITApfSk7dmFyIHVhPWFhLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVELHZhPVN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKSx3YT1TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKSx5YT1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLHphPVN5bWJvbC5mb3IoInJlYWN0LnN0cmljdF9tb2RlIiksQWE9U3ltYm9sLmZvcigicmVhY3QucHJvZmlsZXIiKSxCYT1TeW1ib2wuZm9yKCJyZWFjdC5wcm92aWRlciIpLENhPVN5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKSxEYT1TeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIpLEVhPVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlIiksRmE9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2VfbGlzdCIpLEdhPVN5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKSxIYT1TeW1ib2wuZm9yKCJyZWFjdC5sYXp5Iik7U3ltYm9sLmZvcigicmVhY3Quc2NvcGUiKSxTeW1ib2wuZm9yKCJyZWFjdC5kZWJ1Z190cmFjZV9tb2RlIik7dmFyIElhPVN5bWJvbC5mb3IoInJlYWN0Lm9mZnNjcmVlbiIpO1N5bWJvbC5mb3IoInJlYWN0LmxlZ2FjeV9oaWRkZW4iKSxTeW1ib2wuZm9yKCJyZWFjdC5jYWNoZSIpLFN5bWJvbC5mb3IoInJlYWN0LnRyYWNpbmdfbWFya2VyIik7dmFyIEphPVN5bWJvbC5pdGVyYXRvcjtmdW5jdGlvbiBLYShhKXtyZXR1cm4gbnVsbD09PWF8fCJvYmplY3QiIT10eXBlb2YgYT9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZihhPUphJiZhW0phXXx8YVsiQEBpdGVyYXRvciJdKT9hOm51bGx9dmFyIExhLEE9T2JqZWN0LmFzc2lnbjtmdW5jdGlvbiBNYShhKXtpZih2b2lkIDA9PT1MYSl0cnl7dGhyb3cgRXJyb3IoKX1jYXRjaChjKXt2YXIgYj1jLnN0YWNrLnRyaW0oKS5tYXRjaCgvXG4oICooYXQgKT8pLyk7TGE9YiYmYlsxXXx8IiJ9cmV0dXJuIlxuIitMYSthfXZhciBOYT0hMTtmdW5jdGlvbiBPYShhLGIpe2lmKCFhfHxOYSlyZXR1cm4iIjtOYT0hMDt2YXIgYz1FcnJvci5wcmVwYXJlU3RhY2tUcmFjZTtFcnJvci5wcmVwYXJlU3RhY2tUcmFjZT12b2lkIDA7dHJ5e2lmKGIpe2lmKGI9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5wcm90b3R5cGUsInByb3BzIix7c2V0OmZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoKX19KSwib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuY29uc3RydWN0KXt0cnl7UmVmbGVjdC5jb25zdHJ1Y3QoYixbXSl9Y2F0Y2gobCl7dmFyIGQ9bH1SZWZsZWN0LmNvbnN0cnVjdChhLFtdLGIpfWVsc2V7dHJ5e2IuY2FsbCgpfWNhdGNoKGwxKXtkPWwxfWEuY2FsbChiLnByb3RvdHlwZSl9fWVsc2V7dHJ5e3Rocm93IEVycm9yKCl9Y2F0Y2gobDIpe2Q9bDJ9YSgpfX1jYXRjaChsMyl7aWYobDMmJmQmJiJzdHJpbmciPT10eXBlb2YgbDMuc3RhY2spe2Zvcih2YXIgZT1sMy5zdGFjay5zcGxpdCgiXG4iKSxmPWQuc3RhY2suc3BsaXQoIlxuIiksZz1lLmxlbmd0aC0xLGg9Zi5sZW5ndGgtMTsxPD1nJiYwPD1oJiZlW2ddIT09ZltoXTspaC0tO2Zvcig7MTw9ZyYmMDw9aDtnLS0saC0tKWlmKGVbZ10hPT1mW2hdKXtpZigxIT09Z3x8MSE9PWgpZG8gaWYoZy0tLDA+LS1ofHxlW2ddIT09ZltoXSl7dmFyIGs9IlxuIitlW2ddLnJlcGxhY2UoIiBhdCBuZXcgIiwiIGF0ICIpO3JldHVybiBhLmRpc3BsYXlOYW1lJiZrLmluY2x1ZGVzKCI8YW5vbnltb3VzPiIpJiYoaz1rLnJlcGxhY2UoIjxhbm9ueW1vdXM+IixhLmRpc3BsYXlOYW1lKSksa313aGlsZSgxPD1nJiYwPD1oKTticmVha319fWZpbmFsbHl7TmE9ITEsRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U9Y31yZXR1cm4oYT1hP2EuZGlzcGxheU5hbWV8fGEubmFtZToiIik/TWEoYSk6IiJ9ZnVuY3Rpb24gU2EoYSl7c3dpdGNoKHR5cGVvZiBhKXtjYXNlImJvb2xlYW4iOmNhc2UibnVtYmVyIjpjYXNlInN0cmluZyI6Y2FzZSJ1bmRlZmluZWQiOmNhc2Uib2JqZWN0IjpyZXR1cm4gYTtkZWZhdWx0OnJldHVybiIifX1mdW5jdGlvbiBUYShhKXt2YXIgYj1hLnR5cGU7cmV0dXJuKGE9YS5ub2RlTmFtZSkmJiJpbnB1dCI9PT1hLnRvTG93ZXJDYXNlKCkmJigiY2hlY2tib3giPT09Ynx8InJhZGlvIj09PWIpfWZ1bmN0aW9uIFZhKGEpe2EuX3ZhbHVlVHJhY2tlcnx8KGEuX3ZhbHVlVHJhY2tlcj1mdW5jdGlvbihhKXt2YXIgYj1UYShhKT8iY2hlY2tlZCI6InZhbHVlIixjPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsYiksZD0iIithW2JdO2lmKCFhLmhhc093blByb3BlcnR5KGIpJiZ2b2lkIDAhPT1jJiYiZnVuY3Rpb24iPT10eXBlb2YgYy5nZXQmJiJmdW5jdGlvbiI9PXR5cGVvZiBjLnNldCl7dmFyIGU9Yy5nZXQsZj1jLnNldDtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlLmNhbGwodGhpcyl9LHNldDpmdW5jdGlvbihhKXtkPSIiK2EsZi5jYWxsKHRoaXMsYSl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYix7ZW51bWVyYWJsZTpjLmVudW1lcmFibGV9KSx7Z2V0VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sc2V0VmFsdWU6ZnVuY3Rpb24oYSl7ZD0iIithfSxzdG9wVHJhY2tpbmc6ZnVuY3Rpb24oKXthLl92YWx1ZVRyYWNrZXI9bnVsbCxkZWxldGUgYVtiXX19fX0oYSkpfWZ1bmN0aW9uIFdhKGEpe2lmKCFhKXJldHVybiExO3ZhciBiPWEuX3ZhbHVlVHJhY2tlcjtpZighYilyZXR1cm4hMDt2YXIgYz1iLmdldFZhbHVlKCksZD0iIjtyZXR1cm4gYSYmKGQ9VGEoYSk/YS5jaGVja2VkPyJ0cnVlIjoiZmFsc2UiOmEudmFsdWUpLChhPWQpIT09YyYmKGIuc2V0VmFsdWUoYSksITApfWZ1bmN0aW9uIFhhKGEpe2lmKHZvaWQgMD09PShhPWF8fCgidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50OnZvaWQgMCkpKXJldHVybiBudWxsO3RyeXtyZXR1cm4gYS5hY3RpdmVFbGVtZW50fHxhLmJvZHl9Y2F0Y2goYil7cmV0dXJuIGEuYm9keX19ZnVuY3Rpb24gWWEoYSxiKXt2YXIgYz1iLmNoZWNrZWQ7cmV0dXJuIEEoe30sYix7ZGVmYXVsdENoZWNrZWQ6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsdmFsdWU6dm9pZCAwLGNoZWNrZWQ6bnVsbCE9Yz9jOmEuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZH0pfWZ1bmN0aW9uIFphKGEsYil7dmFyIGM9bnVsbD09Yi5kZWZhdWx0VmFsdWU/IiI6Yi5kZWZhdWx0VmFsdWUsZD1udWxsIT1iLmNoZWNrZWQ/Yi5jaGVja2VkOmIuZGVmYXVsdENoZWNrZWQ7Yz1TYShudWxsIT1iLnZhbHVlP2IudmFsdWU6YyksYS5fd3JhcHBlclN0YXRlPXtpbml0aWFsQ2hlY2tlZDpkLGluaXRpYWxWYWx1ZTpjLGNvbnRyb2xsZWQ6ImNoZWNrYm94Ij09PWIudHlwZXx8InJhZGlvIj09PWIudHlwZT9udWxsIT1iLmNoZWNrZWQ6bnVsbCE9Yi52YWx1ZX19ZnVuY3Rpb24gYWIoYSxiKXtudWxsIT0oYj1iLmNoZWNrZWQpJiZ0YShhLCJjaGVja2VkIixiLCExKX1mdW5jdGlvbiBiYihhLGIpe2FiKGEsYik7dmFyIGM9U2EoYi52YWx1ZSksZD1iLnR5cGU7aWYobnVsbCE9YykibnVtYmVyIj09PWQ/KDA9PT1jJiYiIj09PWEudmFsdWV8fGEudmFsdWUhPWMpJiYoYS52YWx1ZT0iIitjKTphLnZhbHVlIT09IiIrYyYmKGEudmFsdWU9IiIrYyk7ZWxzZSBpZigic3VibWl0Ij09PWR8fCJyZXNldCI9PT1kKXthLnJlbW92ZUF0dHJpYnV0ZSgidmFsdWUiKTtyZXR1cm59Yi5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKT9jYihhLGIudHlwZSxjKTpiLmhhc093blByb3BlcnR5KCJkZWZhdWx0VmFsdWUiKSYmY2IoYSxiLnR5cGUsU2EoYi5kZWZhdWx0VmFsdWUpKSxudWxsPT1iLmNoZWNrZWQmJm51bGwhPWIuZGVmYXVsdENoZWNrZWQmJihhLmRlZmF1bHRDaGVja2VkPSEhYi5kZWZhdWx0Q2hlY2tlZCl9ZnVuY3Rpb24gZGIoYSxiLGMpe2lmKGIuaGFzT3duUHJvcGVydHkoInZhbHVlIil8fGIuaGFzT3duUHJvcGVydHkoImRlZmF1bHRWYWx1ZSIpKXt2YXIgZD1iLnR5cGU7aWYoISgic3VibWl0IiE9PWQmJiJyZXNldCIhPT1kfHx2b2lkIDAhPT1iLnZhbHVlJiZudWxsIT09Yi52YWx1ZSkpcmV0dXJuO2I9IiIrYS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSxjfHxiPT09YS52YWx1ZXx8KGEudmFsdWU9YiksYS5kZWZhdWx0VmFsdWU9Yn0iIiE9PShjPWEubmFtZSkmJihhLm5hbWU9IiIpLGEuZGVmYXVsdENoZWNrZWQ9ISFhLl93cmFwcGVyU3RhdGUuaW5pdGlhbENoZWNrZWQsIiIhPT1jJiYoYS5uYW1lPWMpfWZ1bmN0aW9uIGNiKGEsYixjKXsoIm51bWJlciIhPT1ifHxYYShhLm93bmVyRG9jdW1lbnQpIT09YSkmJihudWxsPT1jP2EuZGVmYXVsdFZhbHVlPSIiK2EuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWU6YS5kZWZhdWx0VmFsdWUhPT0iIitjJiYoYS5kZWZhdWx0VmFsdWU9IiIrYykpfXZhciBlYj1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIGZiKGEsYixjLGQpe2lmKGE9YS5vcHRpb25zLGIpe2I9e307Zm9yKHZhciBlPTA7ZTxjLmxlbmd0aDtlKyspYlsiJCIrY1tlXV09ITA7Zm9yKGM9MDtjPGEubGVuZ3RoO2MrKyllPWIuaGFzT3duUHJvcGVydHkoIiQiK2FbY10udmFsdWUpLGFbY10uc2VsZWN0ZWQhPT1lJiYoYVtjXS5zZWxlY3RlZD1lKSxlJiZkJiYoYVtjXS5kZWZhdWx0U2VsZWN0ZWQ9ITApfWVsc2V7Zm9yKGU9MCxjPSIiK1NhKGMpLGI9bnVsbDtlPGEubGVuZ3RoO2UrKyl7aWYoYVtlXS52YWx1ZT09PWMpe2FbZV0uc2VsZWN0ZWQ9ITAsZCYmKGFbZV0uZGVmYXVsdFNlbGVjdGVkPSEwKTtyZXR1cm59bnVsbCE9PWJ8fGFbZV0uZGlzYWJsZWR8fChiPWFbZV0pfW51bGwhPT1iJiYoYi5zZWxlY3RlZD0hMCl9fWZ1bmN0aW9uIGdiKGEsYil7aWYobnVsbCE9Yi5kYW5nZXJvdXNseVNldElubmVySFRNTCl0aHJvdyBFcnJvcihwKDkxKSk7cmV0dXJuIEEoe30sYix7dmFsdWU6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsY2hpbGRyZW46IiIrYS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZX0pfWZ1bmN0aW9uIGhiKGEsYil7dmFyIGM9Yi52YWx1ZTtpZihudWxsPT1jKXtpZihjPWIuY2hpbGRyZW4sYj1iLmRlZmF1bHRWYWx1ZSxudWxsIT1jKXtpZihudWxsIT1iKXRocm93IEVycm9yKHAoOTIpKTtpZihlYihjKSl7aWYoMTxjLmxlbmd0aCl0aHJvdyBFcnJvcihwKDkzKSk7Yz1jWzBdfWI9Y31udWxsPT1iJiYoYj0iIiksYz1ifWEuX3dyYXBwZXJTdGF0ZT17aW5pdGlhbFZhbHVlOlNhKGMpfX1mdW5jdGlvbiBpYihhLGIpe3ZhciBjPVNhKGIudmFsdWUpLGQ9U2EoYi5kZWZhdWx0VmFsdWUpO251bGwhPWMmJigoYz0iIitjKSE9PWEudmFsdWUmJihhLnZhbHVlPWMpLG51bGw9PWIuZGVmYXVsdFZhbHVlJiZhLmRlZmF1bHRWYWx1ZSE9PWMmJihhLmRlZmF1bHRWYWx1ZT1jKSksbnVsbCE9ZCYmKGEuZGVmYXVsdFZhbHVlPSIiK2QpfWZ1bmN0aW9uIGpiKGEpe3ZhciBiPWEudGV4dENvbnRlbnQ7Yj09PWEuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUmJiIiIT09YiYmbnVsbCE9PWImJihhLnZhbHVlPWIpfWZ1bmN0aW9uIGtiKGEpe3N3aXRjaChhKXtjYXNlInN2ZyI6cmV0dXJuImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjtjYXNlIm1hdGgiOnJldHVybiJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIjtkZWZhdWx0OnJldHVybiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIn19ZnVuY3Rpb24gbGIoYSxiKXtyZXR1cm4gbnVsbD09YXx8Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPT09YT9rYihiKToiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPT09YSYmImZvcmVpZ25PYmplY3QiPT09Yj8iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI6YX12YXIgYSxtYixuYj0oYT1mdW5jdGlvbihhLGIpe2lmKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIhPT1hLm5hbWVzcGFjZVVSSXx8ImlubmVySFRNTCJpbiBhKWEuaW5uZXJIVE1MPWI7ZWxzZXtmb3IoKG1iPW1ifHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuaW5uZXJIVE1MPSI8c3ZnPiIrYi52YWx1ZU9mKCkudG9TdHJpbmcoKSsiPC9zdmc+IixiPW1iLmZpcnN0Q2hpbGQ7YS5maXJzdENoaWxkOylhLnJlbW92ZUNoaWxkKGEuZmlyc3RDaGlsZCk7Zm9yKDtiLmZpcnN0Q2hpbGQ7KWEuYXBwZW5kQ2hpbGQoYi5maXJzdENoaWxkKX19LCJ1bmRlZmluZWQiIT10eXBlb2YgTVNBcHAmJk1TQXBwLmV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uP2Z1bmN0aW9uKGIsYyxkLGUpe01TQXBwLmV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uKGZ1bmN0aW9uKCl7cmV0dXJuIGEoYixjLGQsZSl9KX06YSk7ZnVuY3Rpb24gb2IoYSxiKXtpZihiKXt2YXIgYz1hLmZpcnN0Q2hpbGQ7aWYoYyYmYz09PWEubGFzdENoaWxkJiYzPT09Yy5ub2RlVHlwZSl7Yy5ub2RlVmFsdWU9YjtyZXR1cm59fWEudGV4dENvbnRlbnQ9Yn12YXIgcGI9e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiEwLGFzcGVjdFJhdGlvOiEwLGJvcmRlckltYWdlT3V0c2V0OiEwLGJvcmRlckltYWdlU2xpY2U6ITAsYm9yZGVySW1hZ2VXaWR0aDohMCxib3hGbGV4OiEwLGJveEZsZXhHcm91cDohMCxib3hPcmRpbmFsR3JvdXA6ITAsY29sdW1uQ291bnQ6ITAsY29sdW1uczohMCxmbGV4OiEwLGZsZXhHcm93OiEwLGZsZXhQb3NpdGl2ZTohMCxmbGV4U2hyaW5rOiEwLGZsZXhOZWdhdGl2ZTohMCxmbGV4T3JkZXI6ITAsZ3JpZEFyZWE6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLGdyaWRSb3dTcGFuOiEwLGdyaWRSb3dTdGFydDohMCxncmlkQ29sdW1uOiEwLGdyaWRDb2x1bW5FbmQ6ITAsZ3JpZENvbHVtblNwYW46ITAsZ3JpZENvbHVtblN0YXJ0OiEwLGZvbnRXZWlnaHQ6ITAsbGluZUNsYW1wOiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHRhYlNpemU6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwLGZpbGxPcGFjaXR5OiEwLGZsb29kT3BhY2l0eTohMCxzdG9wT3BhY2l0eTohMCxzdHJva2VEYXNoYXJyYXk6ITAsc3Ryb2tlRGFzaG9mZnNldDohMCxzdHJva2VNaXRlcmxpbWl0OiEwLHN0cm9rZU9wYWNpdHk6ITAsc3Ryb2tlV2lkdGg6ITB9LHFiPVsiV2Via2l0IiwibXMiLCJNb3oiLCJPIl07ZnVuY3Rpb24gcmIoYSxiLGMpe3JldHVybiBudWxsPT1ifHwiYm9vbGVhbiI9PXR5cGVvZiBifHwiIj09PWI/IiI6Y3x8Im51bWJlciIhPXR5cGVvZiBifHwwPT09Ynx8cGIuaGFzT3duUHJvcGVydHkoYSkmJnBiW2FdPygiIitiKS50cmltKCk6YisicHgifWZ1bmN0aW9uIHNiKGEsYil7Zm9yKHZhciBjIGluIGE9YS5zdHlsZSxiKWlmKGIuaGFzT3duUHJvcGVydHkoYykpe3ZhciBkPTA9PT1jLmluZGV4T2YoIi0tIiksZT1yYihjLGJbY10sZCk7ImZsb2F0Ij09PWMmJihjPSJjc3NGbG9hdCIpLGQ/YS5zZXRQcm9wZXJ0eShjLGUpOmFbY109ZX19T2JqZWN0LmtleXMocGIpLmZvckVhY2goZnVuY3Rpb24oYSl7cWIuZm9yRWFjaChmdW5jdGlvbihiKXtwYltiPWIrYS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSthLnN1YnN0cmluZygxKV09cGJbYV19KX0pO3ZhciB0Yj1BKHttZW51aXRlbTohMH0se2FyZWE6ITAsYmFzZTohMCxicjohMCxjb2w6ITAsZW1iZWQ6ITAsaHI6ITAsaW1nOiEwLGlucHV0OiEwLGtleWdlbjohMCxsaW5rOiEwLG1ldGE6ITAscGFyYW06ITAsc291cmNlOiEwLHRyYWNrOiEwLHdicjohMH0pO2Z1bmN0aW9uIHViKGEsYil7aWYoYil7aWYodGJbYV0mJihudWxsIT1iLmNoaWxkcmVufHxudWxsIT1iLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSl0aHJvdyBFcnJvcihwKDEzNyxhKSk7aWYobnVsbCE9Yi5kYW5nZXJvdXNseVNldElubmVySFRNTCl7aWYobnVsbCE9Yi5jaGlsZHJlbil0aHJvdyBFcnJvcihwKDYwKSk7aWYoIm9iamVjdCIhPXR5cGVvZiBiLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MfHwhKCJfX2h0bWwiaW4gYi5kYW5nZXJvdXNseVNldElubmVySFRNTCkpdGhyb3cgRXJyb3IocCg2MSkpfWlmKG51bGwhPWIuc3R5bGUmJiJvYmplY3QiIT10eXBlb2YgYi5zdHlsZSl0aHJvdyBFcnJvcihwKDYyKSl9fWZ1bmN0aW9uIHZiKGEsYil7aWYoLTE9PT1hLmluZGV4T2YoIi0iKSlyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGIuaXM7c3dpdGNoKGEpe2Nhc2UiYW5ub3RhdGlvbi14bWwiOmNhc2UiY29sb3ItcHJvZmlsZSI6Y2FzZSJmb250LWZhY2UiOmNhc2UiZm9udC1mYWNlLXNyYyI6Y2FzZSJmb250LWZhY2UtdXJpIjpjYXNlImZvbnQtZmFjZS1mb3JtYXQiOmNhc2UiZm9udC1mYWNlLW5hbWUiOmNhc2UibWlzc2luZy1nbHlwaCI6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19dmFyIHdiPW51bGw7ZnVuY3Rpb24geGIoYSl7cmV0dXJuKGE9YS50YXJnZXR8fGEuc3JjRWxlbWVudHx8d2luZG93KS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCYmKGE9YS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCksMz09PWEubm9kZVR5cGU/YS5wYXJlbnROb2RlOmF9dmFyIHliPW51bGwsemI9bnVsbCxBYj1udWxsO2Z1bmN0aW9uIEJiKGEpe2lmKGE9Q2IoYSkpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB5Yil0aHJvdyBFcnJvcihwKDI4MCkpO3ZhciBiPWEuc3RhdGVOb2RlO2ImJihiPURiKGIpLHliKGEuc3RhdGVOb2RlLGEudHlwZSxiKSl9fWZ1bmN0aW9uIEViKGEpe3piP0FiP0FiLnB1c2goYSk6QWI9W2FdOnpiPWF9ZnVuY3Rpb24gRmIoKXtpZih6Yil7dmFyIGE9emIsYj1BYjtpZihBYj16Yj1udWxsLEJiKGEpLGIpZm9yKGE9MDthPGIubGVuZ3RoO2ErKylCYihiW2FdKX19ZnVuY3Rpb24gR2IoYSxiKXtyZXR1cm4gYShiKX1mdW5jdGlvbiBIYigpe312YXIgSWI9ITE7ZnVuY3Rpb24gSmIoYSxiLGMpe2lmKEliKXJldHVybiBhKGIsYyk7SWI9ITA7dHJ5e3JldHVybiBHYihhLGIsYyl9ZmluYWxseXtJYj0hMSwobnVsbCE9PXpifHxudWxsIT09QWIpJiYoSGIoKSxGYigpKX19ZnVuY3Rpb24gS2IoYSxiKXt2YXIgYz1hLnN0YXRlTm9kZTtpZihudWxsPT09YylyZXR1cm4gbnVsbDt2YXIgZD1EYihjKTtpZihudWxsPT09ZClyZXR1cm4gbnVsbDtjPWRbYl07YTpzd2l0Y2goYil7Y2FzZSJvbkNsaWNrIjpjYXNlIm9uQ2xpY2tDYXB0dXJlIjpjYXNlIm9uRG91YmxlQ2xpY2siOmNhc2Uib25Eb3VibGVDbGlja0NhcHR1cmUiOmNhc2Uib25Nb3VzZURvd24iOmNhc2Uib25Nb3VzZURvd25DYXB0dXJlIjpjYXNlIm9uTW91c2VNb3ZlIjpjYXNlIm9uTW91c2VNb3ZlQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlVXAiOmNhc2Uib25Nb3VzZVVwQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlRW50ZXIiOihkPSFkLmRpc2FibGVkKXx8KGQ9ISgiYnV0dG9uIj09PShhPWEudHlwZSl8fCJpbnB1dCI9PT1hfHwic2VsZWN0Ij09PWF8fCJ0ZXh0YXJlYSI9PT1hKSksYT0hZDticmVhayBhO2RlZmF1bHQ6YT0hMX1pZihhKXJldHVybiBudWxsO2lmKGMmJiJmdW5jdGlvbiIhPXR5cGVvZiBjKXRocm93IEVycm9yKHAoMjMxLGIsdHlwZW9mIGMpKTtyZXR1cm4gY312YXIgTGI9ITE7aWYoaWEpdHJ5e3ZhciBNYj17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTWIsInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtMYj0hMH19KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsTWIsTWIpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixNYixNYil9Y2F0Y2goYTEpe0xiPSExfWZ1bmN0aW9uIE5iKGEsYixjLGQsZSxmLGcsaCxrKXt2YXIgbD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMyk7dHJ5e2IuYXBwbHkoYyxsKX1jYXRjaChtKXt0aGlzLm9uRXJyb3IobSl9fXZhciBPYj0hMSxQYj1udWxsLFFiPSExLFJiPW51bGwsU2I9e29uRXJyb3I6ZnVuY3Rpb24oYSl7T2I9ITAsUGI9YX19O2Z1bmN0aW9uIFRiKGEsYixjLGQsZSxmLGcsaCxrKXtPYj0hMSxQYj1udWxsLE5iLmFwcGx5KFNiLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVmIoYSl7dmFyIGI9YSxjPWE7aWYoYS5hbHRlcm5hdGUpZm9yKDtiLnJldHVybjspYj1iLnJldHVybjtlbHNle2E9YjtkbyAwIT0oNDA5OCYoYj1hKS5mbGFncykmJihjPWIucmV0dXJuKSxhPWIucmV0dXJuO3doaWxlKGEpfXJldHVybiAzPT09Yi50YWc/YzpudWxsfWZ1bmN0aW9uIFdiKGEpe2lmKDEzPT09YS50YWcpe3ZhciBiPWEubWVtb2l6ZWRTdGF0ZTtpZihudWxsPT09YiYmbnVsbCE9PShhPWEuYWx0ZXJuYXRlKSYmKGI9YS5tZW1vaXplZFN0YXRlKSxudWxsIT09YilyZXR1cm4gYi5kZWh5ZHJhdGVkfXJldHVybiBudWxsfWZ1bmN0aW9uIFhiKGEpe2lmKFZiKGEpIT09YSl0aHJvdyBFcnJvcihwKDE4OCkpfWZ1bmN0aW9uIFpiKGEpe3JldHVybiBudWxsIT09KGE9ZnVuY3Rpb24oYSl7dmFyIGI9YS5hbHRlcm5hdGU7aWYoIWIpe2lmKG51bGw9PT0oYj1WYihhKSkpdGhyb3cgRXJyb3IocCgxODgpKTtyZXR1cm4gYiE9PWE/bnVsbDphfWZvcih2YXIgYz1hLGQ9Yjs7KXt2YXIgZT1jLnJldHVybjtpZihudWxsPT09ZSlicmVhazt2YXIgZj1lLmFsdGVybmF0ZTtpZihudWxsPT09Zil7aWYobnVsbCE9PShkPWUucmV0dXJuKSl7Yz1kO2NvbnRpbnVlfWJyZWFrfWlmKGUuY2hpbGQ9PT1mLmNoaWxkKXtmb3IoZj1lLmNoaWxkO2Y7KXtpZihmPT09YylyZXR1cm4gWGIoZSksYTtpZihmPT09ZClyZXR1cm4gWGIoZSksYjtmPWYuc2libGluZ310aHJvdyBFcnJvcihwKDE4OCkpfWlmKGMucmV0dXJuIT09ZC5yZXR1cm4pYz1lLGQ9ZjtlbHNle2Zvcih2YXIgZz0hMSxoPWUuY2hpbGQ7aDspe2lmKGg9PT1jKXtnPSEwLGM9ZSxkPWY7YnJlYWt9aWYoaD09PWQpe2c9ITAsZD1lLGM9ZjticmVha31oPWguc2libGluZ31pZighZyl7Zm9yKGg9Zi5jaGlsZDtoOyl7aWYoaD09PWMpe2c9ITAsYz1mLGQ9ZTticmVha31pZihoPT09ZCl7Zz0hMCxkPWYsYz1lO2JyZWFrfWg9aC5zaWJsaW5nfWlmKCFnKXRocm93IEVycm9yKHAoMTg5KSl9fWlmKGMuYWx0ZXJuYXRlIT09ZCl0aHJvdyBFcnJvcihwKDE5MCkpfWlmKDMhPT1jLnRhZyl0aHJvdyBFcnJvcihwKDE4OCkpO3JldHVybiBjLnN0YXRlTm9kZS5jdXJyZW50PT09Yz9hOmJ9KGEpKT9mdW5jdGlvbiAkYihhKXtpZig1PT09YS50YWd8fDY9PT1hLnRhZylyZXR1cm4gYTtmb3IoYT1hLmNoaWxkO251bGwhPT1hOyl7dmFyIGI9JGIoYSk7aWYobnVsbCE9PWIpcmV0dXJuIGI7YT1hLnNpYmxpbmd9cmV0dXJuIG51bGx9KGEpOm51bGx9dmFyIGFjPWNhLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2ssYmM9Y2EudW5zdGFibGVfY2FuY2VsQ2FsbGJhY2ssY2M9Y2EudW5zdGFibGVfc2hvdWxkWWllbGQsZGM9Y2EudW5zdGFibGVfcmVxdWVzdFBhaW50LEI9Y2EudW5zdGFibGVfbm93LGVjPWNhLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsLGZjPWNhLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5LGdjPWNhLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5LGhjPWNhLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LGljPWNhLnVuc3RhYmxlX0xvd1ByaW9yaXR5LGpjPWNhLnVuc3RhYmxlX0lkbGVQcmlvcml0eSxrYz1udWxsLGxjPW51bGwsb2M9TWF0aC5jbHozMj9NYXRoLmNsejMyOmZ1bmN0aW9uKGEpe3JldHVybiAwPT0oYT4+Pj0wKT8zMjozMS0ocGMoYSkvcWN8MCl8MH0scGM9TWF0aC5sb2cscWM9TWF0aC5MTjIscmM9NjQsc2M9NDE5NDMwNDtmdW5jdGlvbiB0YyhhKXtzd2l0Y2goYSYtYSl7Y2FzZSAxOnJldHVybiAxO2Nhc2UgMjpyZXR1cm4gMjtjYXNlIDQ6cmV0dXJuIDQ7Y2FzZSA4OnJldHVybiA4O2Nhc2UgMTY6cmV0dXJuIDE2O2Nhc2UgMzI6cmV0dXJuIDMyO2Nhc2UgNjQ6Y2FzZSAxMjg6Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOmNhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6cmV0dXJuIDQxOTQyNDAmYTtjYXNlIDQxOTQzMDQ6Y2FzZSA4Mzg4NjA4OmNhc2UgMTY3NzcyMTY6Y2FzZSAzMzU1NDQzMjpjYXNlIDY3MTA4ODY0OnJldHVybiAxMzAwMjM0MjQmYTtjYXNlIDEzNDIxNzcyODpyZXR1cm4gMTM0MjE3NzI4O2Nhc2UgMjY4NDM1NDU2OnJldHVybiAyNjg0MzU0NTY7Y2FzZSA1MzY4NzA5MTI6cmV0dXJuIDUzNjg3MDkxMjtjYXNlIDEwNzM3NDE4MjQ6cmV0dXJuIDEwNzM3NDE4MjQ7ZGVmYXVsdDpyZXR1cm4gYX19ZnVuY3Rpb24gdWMoYSxiKXt2YXIgYz1hLnBlbmRpbmdMYW5lcztpZigwPT09YylyZXR1cm4gMDt2YXIgZD0wLGU9YS5zdXNwZW5kZWRMYW5lcyxmPWEucGluZ2VkTGFuZXMsZz0yNjg0MzU0NTUmYztpZigwIT09Zyl7dmFyIGg9ZyZ+ZTswIT09aD9kPXRjKGgpOjAhPShmJj1nKSYmKGQ9dGMoZikpfWVsc2UgMCE9KGc9YyZ+ZSk/ZD10YyhnKTowIT09ZiYmKGQ9dGMoZikpO2lmKDA9PT1kKXJldHVybiAwO2lmKDAhPT1iJiZiIT09ZCYmMD09KGImZSkmJigoZT1kJi1kKT49KGY9YiYtYil8fDE2PT09ZSYmMCE9KDQxOTQyNDAmZikpKXJldHVybiBiO2lmKDAhPSg0JmQpJiYoZHw9MTYmYyksMCE9PShiPWEuZW50YW5nbGVkTGFuZXMpKWZvcihhPWEuZW50YW5nbGVtZW50cyxiJj1kOzA8YjspZT0xPDwoYz0zMS1vYyhiKSksZHw9YVtjXSxiJj1+ZTtyZXR1cm4gZH1mdW5jdGlvbiB4YyhhKXtyZXR1cm4gMCE9KGE9LTEwNzM3NDE4MjUmYS5wZW5kaW5nTGFuZXMpP2E6MTA3Mzc0MTgyNCZhPzEwNzM3NDE4MjQ6MH1mdW5jdGlvbiB5Yygpe3ZhciBhPXJjO3JldHVybiAwPT0oNDE5NDI0MCYocmM8PD0xKSkmJihyYz02NCksYX1mdW5jdGlvbiB6YyhhKXtmb3IodmFyIGI9W10sYz0wOzMxPmM7YysrKWIucHVzaChhKTtyZXR1cm4gYn1mdW5jdGlvbiBBYyhhLGIsYyl7YS5wZW5kaW5nTGFuZXN8PWIsNTM2ODcwOTEyIT09YiYmKGEuc3VzcGVuZGVkTGFuZXM9MCxhLnBpbmdlZExhbmVzPTApLChhPWEuZXZlbnRUaW1lcylbYj0zMS1vYyhiKV09Y31mdW5jdGlvbiBDYyhhLGIpe3ZhciBjPWEuZW50YW5nbGVkTGFuZXN8PWI7Zm9yKGE9YS5lbnRhbmdsZW1lbnRzO2M7KXt2YXIgZD0zMS1vYyhjKSxlPTE8PGQ7ZSZifGFbZF0mYiYmKGFbZF18PWIpLGMmPX5lfX12YXIgQz0wO2Z1bmN0aW9uIERjKGEpe3JldHVybiAxPChhJj0tYSk/NDxhPzAhPSgyNjg0MzU0NTUmYSk/MTY6NTM2ODcwOTEyOjQ6MX12YXIgRWMsRmMsR2MsSGMsSWMsSmM9ITEsS2M9W10sTGM9bnVsbCxNYz1udWxsLE5jPW51bGwsT2M9bmV3IE1hcCxQYz1uZXcgTWFwLFFjPVtdLFJjPSJtb3VzZWRvd24gbW91c2V1cCB0b3VjaGNhbmNlbCB0b3VjaGVuZCB0b3VjaHN0YXJ0IGF1eGNsaWNrIGRibGNsaWNrIHBvaW50ZXJjYW5jZWwgcG9pbnRlcmRvd24gcG9pbnRlcnVwIGRyYWdlbmQgZHJhZ3N0YXJ0IGRyb3AgY29tcG9zaXRpb25lbmQgY29tcG9zaXRpb25zdGFydCBrZXlkb3duIGtleXByZXNzIGtleXVwIGlucHV0IHRleHRJbnB1dCBjb3B5IGN1dCBwYXN0ZSBjbGljayBjaGFuZ2UgY29udGV4dG1lbnUgcmVzZXQgc3VibWl0Ii5zcGxpdCgiICIpO2Z1bmN0aW9uIFNjKGEsYil7c3dpdGNoKGEpe2Nhc2UiZm9jdXNpbiI6Y2FzZSJmb2N1c291dCI6TGM9bnVsbDticmVhaztjYXNlImRyYWdlbnRlciI6Y2FzZSJkcmFnbGVhdmUiOk1jPW51bGw7YnJlYWs7Y2FzZSJtb3VzZW92ZXIiOmNhc2UibW91c2VvdXQiOk5jPW51bGw7YnJlYWs7Y2FzZSJwb2ludGVyb3ZlciI6Y2FzZSJwb2ludGVyb3V0IjpPYy5kZWxldGUoYi5wb2ludGVySWQpO2JyZWFrO2Nhc2UiZ290cG9pbnRlcmNhcHR1cmUiOmNhc2UibG9zdHBvaW50ZXJjYXB0dXJlIjpQYy5kZWxldGUoYi5wb2ludGVySWQpfX1mdW5jdGlvbiBUYyhhLGIsYyxkLGUsZil7cmV0dXJuIG51bGw9PT1hfHxhLm5hdGl2ZUV2ZW50IT09Zj8oYT17YmxvY2tlZE9uOmIsZG9tRXZlbnROYW1lOmMsZXZlbnRTeXN0ZW1GbGFnczpkLG5hdGl2ZUV2ZW50OmYsdGFyZ2V0Q29udGFpbmVyczpbZV19LG51bGwhPT1iJiZudWxsIT09KGI9Q2IoYikpJiZGYyhiKSxhKTooYS5ldmVudFN5c3RlbUZsYWdzfD1kLGI9YS50YXJnZXRDb250YWluZXJzLG51bGwhPT1lJiYtMT09PWIuaW5kZXhPZihlKSYmYi5wdXNoKGUpLGEpfWZ1bmN0aW9uIFZjKGEpe3ZhciBiPVdjKGEudGFyZ2V0KTtpZihudWxsIT09Yil7dmFyIGM9VmIoYik7aWYobnVsbCE9PWMpe2lmKDEzPT09KGI9Yy50YWcpKXtpZihudWxsIT09KGI9V2IoYykpKXthLmJsb2NrZWRPbj1iLEljKGEucHJpb3JpdHksZnVuY3Rpb24oKXtHYyhjKX0pO3JldHVybn19ZWxzZSBpZigzPT09YiYmYy5zdGF0ZU5vZGUuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCl7YS5ibG9ja2VkT249Mz09PWMudGFnP2Muc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbDtyZXR1cm59fX1hLmJsb2NrZWRPbj1udWxsfWZ1bmN0aW9uIFhjKGEpe2lmKG51bGwhPT1hLmJsb2NrZWRPbilyZXR1cm4hMTtmb3IodmFyIGI9YS50YXJnZXRDb250YWluZXJzOzA8Yi5sZW5ndGg7KXt2YXIgYz1ZYyhhLmRvbUV2ZW50TmFtZSxhLmV2ZW50U3lzdGVtRmxhZ3MsYlswXSxhLm5hdGl2ZUV2ZW50KTtpZihudWxsIT09YylyZXR1cm4gbnVsbCE9PShiPUNiKGMpKSYmRmMoYiksYS5ibG9ja2VkT249YywhMTt2YXIgZD1uZXcoYz1hLm5hdGl2ZUV2ZW50KS5jb25zdHJ1Y3RvcihjLnR5cGUsYyk7d2I9ZCxjLnRhcmdldC5kaXNwYXRjaEV2ZW50KGQpLHdiPW51bGwsYi5zaGlmdCgpfXJldHVybiEwfWZ1bmN0aW9uIFpjKGEsYixjKXtYYyhhKSYmYy5kZWxldGUoYil9ZnVuY3Rpb24gJGMoKXtKYz0hMSxudWxsIT09TGMmJlhjKExjKSYmKExjPW51bGwpLG51bGwhPT1NYyYmWGMoTWMpJiYoTWM9bnVsbCksbnVsbCE9PU5jJiZYYyhOYykmJihOYz1udWxsKSxPYy5mb3JFYWNoKFpjKSxQYy5mb3JFYWNoKFpjKX1mdW5jdGlvbiBhZChhLGIpe2EuYmxvY2tlZE9uPT09YiYmKGEuYmxvY2tlZE9uPW51bGwsSmN8fChKYz0hMCxjYS51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrKGNhLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LCRjKSkpfWZ1bmN0aW9uIGJkKGEpe2Z1bmN0aW9uIGIoYil7cmV0dXJuIGFkKGIsYSl9aWYoMDxLYy5sZW5ndGgpe2FkKEtjWzBdLGEpO2Zvcih2YXIgYz0xO2M8S2MubGVuZ3RoO2MrKyl7dmFyIGQ9S2NbY107ZC5ibG9ja2VkT249PT1hJiYoZC5ibG9ja2VkT249bnVsbCl9fWZvcihudWxsIT09TGMmJmFkKExjLGEpLG51bGwhPT1NYyYmYWQoTWMsYSksbnVsbCE9PU5jJiZhZChOYyxhKSxPYy5mb3JFYWNoKGIpLFBjLmZvckVhY2goYiksYz0wO2M8UWMubGVuZ3RoO2MrKykoZD1RY1tjXSkuYmxvY2tlZE9uPT09YSYmKGQuYmxvY2tlZE9uPW51bGwpO2Zvcig7MDxRYy5sZW5ndGgmJm51bGw9PT0oYz1RY1swXSkuYmxvY2tlZE9uOylWYyhjKSxudWxsPT09Yy5ibG9ja2VkT24mJlFjLnNoaWZ0KCl9dmFyIGNkPXVhLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLGRkPSEwO2Z1bmN0aW9uIGVkKGEsYixjLGQpe3ZhciBlPUMsZj1jZC50cmFuc2l0aW9uO2NkLnRyYW5zaXRpb249bnVsbDt0cnl7Qz0xLGZkKGEsYixjLGQpfWZpbmFsbHl7Qz1lLGNkLnRyYW5zaXRpb249Zn19ZnVuY3Rpb24gZ2QoYSxiLGMsZCl7dmFyIGU9QyxmPWNkLnRyYW5zaXRpb247Y2QudHJhbnNpdGlvbj1udWxsO3RyeXtDPTQsZmQoYSxiLGMsZCl9ZmluYWxseXtDPWUsY2QudHJhbnNpdGlvbj1mfX1mdW5jdGlvbiBmZChhLGIsYyxkKXtpZihkZCl7dmFyIGU9WWMoYSxiLGMsZCk7aWYobnVsbD09PWUpaGQoYSxiLGQsaWQsYyksU2MoYSxkKTtlbHNlIGlmKGZ1bmN0aW9uKGEsYixjLGQsZSl7c3dpdGNoKGIpe2Nhc2UiZm9jdXNpbiI6cmV0dXJuIExjPVRjKExjLGEsYixjLGQsZSksITA7Y2FzZSJkcmFnZW50ZXIiOnJldHVybiBNYz1UYyhNYyxhLGIsYyxkLGUpLCEwO2Nhc2UibW91c2VvdmVyIjpyZXR1cm4gTmM9VGMoTmMsYSxiLGMsZCxlKSwhMDtjYXNlInBvaW50ZXJvdmVyIjp2YXIgZj1lLnBvaW50ZXJJZDtyZXR1cm4gT2Muc2V0KGYsVGMoT2MuZ2V0KGYpfHxudWxsLGEsYixjLGQsZSkpLCEwO2Nhc2UiZ290cG9pbnRlcmNhcHR1cmUiOnJldHVybiBmPWUucG9pbnRlcklkLFBjLnNldChmLFRjKFBjLmdldChmKXx8bnVsbCxhLGIsYyxkLGUpKSwhMH1yZXR1cm4hMX0oZSxhLGIsYyxkKSlkLnN0b3BQcm9wYWdhdGlvbigpO2Vsc2UgaWYoU2MoYSxkKSw0JmImJi0xPFJjLmluZGV4T2YoYSkpe2Zvcig7bnVsbCE9PWU7KXt2YXIgZj1DYihlKTtpZihudWxsIT09ZiYmRWMoZiksbnVsbD09PShmPVljKGEsYixjLGQpKSYmaGQoYSxiLGQsaWQsYyksZj09PWUpYnJlYWs7ZT1mfW51bGwhPT1lJiZkLnN0b3BQcm9wYWdhdGlvbigpfWVsc2UgaGQoYSxiLGQsbnVsbCxjKX19dmFyIGlkPW51bGw7ZnVuY3Rpb24gWWMoYSxiLGMsZCl7aWYoaWQ9bnVsbCxudWxsIT09KGE9V2MoYT14YihkKSkpKXtpZihudWxsPT09KGI9VmIoYSkpKWE9bnVsbDtlbHNlIGlmKDEzPT09KGM9Yi50YWcpKXtpZihudWxsIT09KGE9V2IoYikpKXJldHVybiBhO2E9bnVsbH1lbHNlIGlmKDM9PT1jKXtpZihiLnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXJldHVybiAzPT09Yi50YWc/Yi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsO2E9bnVsbH1lbHNlIGIhPT1hJiYoYT1udWxsKX1yZXR1cm4gaWQ9YSxudWxsfWZ1bmN0aW9uIGpkKGEpe3N3aXRjaChhKXtjYXNlImNhbmNlbCI6Y2FzZSJjbGljayI6Y2FzZSJjbG9zZSI6Y2FzZSJjb250ZXh0bWVudSI6Y2FzZSJjb3B5IjpjYXNlImN1dCI6Y2FzZSJhdXhjbGljayI6Y2FzZSJkYmxjbGljayI6Y2FzZSJkcmFnZW5kIjpjYXNlImRyYWdzdGFydCI6Y2FzZSJkcm9wIjpjYXNlImZvY3VzaW4iOmNhc2UiZm9jdXNvdXQiOmNhc2UiaW5wdXQiOmNhc2UiaW52YWxpZCI6Y2FzZSJrZXlkb3duIjpjYXNlImtleXByZXNzIjpjYXNlImtleXVwIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJtb3VzZXVwIjpjYXNlInBhc3RlIjpjYXNlInBhdXNlIjpjYXNlInBsYXkiOmNhc2UicG9pbnRlcmNhbmNlbCI6Y2FzZSJwb2ludGVyZG93biI6Y2FzZSJwb2ludGVydXAiOmNhc2UicmF0ZWNoYW5nZSI6Y2FzZSJyZXNldCI6Y2FzZSJyZXNpemUiOmNhc2Uic2Vla2VkIjpjYXNlInN1Ym1pdCI6Y2FzZSJ0b3VjaGNhbmNlbCI6Y2FzZSJ0b3VjaGVuZCI6Y2FzZSJ0b3VjaHN0YXJ0IjpjYXNlInZvbHVtZWNoYW5nZSI6Y2FzZSJjaGFuZ2UiOmNhc2Uic2VsZWN0aW9uY2hhbmdlIjpjYXNlInRleHRJbnB1dCI6Y2FzZSJjb21wb3NpdGlvbnN0YXJ0IjpjYXNlImNvbXBvc2l0aW9uZW5kIjpjYXNlImNvbXBvc2l0aW9udXBkYXRlIjpjYXNlImJlZm9yZWJsdXIiOmNhc2UiYWZ0ZXJibHVyIjpjYXNlImJlZm9yZWlucHV0IjpjYXNlImJsdXIiOmNhc2UiZnVsbHNjcmVlbmNoYW5nZSI6Y2FzZSJmb2N1cyI6Y2FzZSJoYXNoY2hhbmdlIjpjYXNlInBvcHN0YXRlIjpjYXNlInNlbGVjdCI6Y2FzZSJzZWxlY3RzdGFydCI6cmV0dXJuIDE7Y2FzZSJkcmFnIjpjYXNlImRyYWdlbnRlciI6Y2FzZSJkcmFnZXhpdCI6Y2FzZSJkcmFnbGVhdmUiOmNhc2UiZHJhZ292ZXIiOmNhc2UibW91c2Vtb3ZlIjpjYXNlIm1vdXNlb3V0IjpjYXNlIm1vdXNlb3ZlciI6Y2FzZSJwb2ludGVybW92ZSI6Y2FzZSJwb2ludGVyb3V0IjpjYXNlInBvaW50ZXJvdmVyIjpjYXNlInNjcm9sbCI6Y2FzZSJ0b2dnbGUiOmNhc2UidG91Y2htb3ZlIjpjYXNlIndoZWVsIjpjYXNlIm1vdXNlZW50ZXIiOmNhc2UibW91c2VsZWF2ZSI6Y2FzZSJwb2ludGVyZW50ZXIiOmNhc2UicG9pbnRlcmxlYXZlIjpyZXR1cm4gNDtjYXNlIm1lc3NhZ2UiOnN3aXRjaChlYygpKXtjYXNlIGZjOnJldHVybiAxO2Nhc2UgZ2M6cmV0dXJuIDQ7Y2FzZSBoYzpjYXNlIGljOnJldHVybiAxNjtjYXNlIGpjOnJldHVybiA1MzY4NzA5MTI7ZGVmYXVsdDpyZXR1cm4gMTZ9ZGVmYXVsdDpyZXR1cm4gMTZ9fXZhciBrZD1udWxsLGxkPW51bGwsbWQ9bnVsbDtmdW5jdGlvbiBuZCgpe2lmKG1kKXJldHVybiBtZDt2YXIgYSxkLGI9bGQsYz1iLmxlbmd0aCxlPSJ2YWx1ZSJpbiBrZD9rZC52YWx1ZTprZC50ZXh0Q29udGVudCxmPWUubGVuZ3RoO2ZvcihhPTA7YTxjJiZiW2FdPT09ZVthXTthKyspO3ZhciBnPWMtYTtmb3IoZD0xO2Q8PWcmJmJbYy1kXT09PWVbZi1kXTtkKyspO3JldHVybiBtZD1lLnNsaWNlKGEsMTxkPzEtZDp2b2lkIDApfWZ1bmN0aW9uIG9kKGEpe3ZhciBiPWEua2V5Q29kZTtyZXR1cm4iY2hhckNvZGUiaW4gYT8wPT09KGE9YS5jaGFyQ29kZSkmJjEzPT09YiYmKGE9MTMpOmE9YiwxMD09PWEmJihhPTEzKSwzMjw9YXx8MTM9PT1hP2E6MH1mdW5jdGlvbiBwZCgpe3JldHVybiEwfWZ1bmN0aW9uIHFkKCl7cmV0dXJuITF9ZnVuY3Rpb24gcmQoYSl7ZnVuY3Rpb24gYihiLGQsZSxmLGcpe2Zvcih2YXIgYyBpbiB0aGlzLl9yZWFjdE5hbWU9Yix0aGlzLl90YXJnZXRJbnN0PWUsdGhpcy50eXBlPWQsdGhpcy5uYXRpdmVFdmVudD1mLHRoaXMudGFyZ2V0PWcsdGhpcy5jdXJyZW50VGFyZ2V0PW51bGwsYSlhLmhhc093blByb3BlcnR5KGMpJiYoYj1hW2NdLHRoaXNbY109Yj9iKGYpOmZbY10pO3JldHVybiB0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD0obnVsbCE9Zi5kZWZhdWx0UHJldmVudGVkP2YuZGVmYXVsdFByZXZlbnRlZDohMT09PWYucmV0dXJuVmFsdWUpP3BkOnFkLHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9cWQsdGhpc31yZXR1cm4gQShiLnByb3RvdHlwZSx7cHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITA7dmFyIGE9dGhpcy5uYXRpdmVFdmVudDthJiYoYS5wcmV2ZW50RGVmYXVsdD9hLnByZXZlbnREZWZhdWx0KCk6InVua25vd24iIT10eXBlb2YgYS5yZXR1cm5WYWx1ZSYmKGEucmV0dXJuVmFsdWU9ITEpLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPXBkKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5uYXRpdmVFdmVudDthJiYoYS5zdG9wUHJvcGFnYXRpb24/YS5zdG9wUHJvcGFnYXRpb24oKToidW5rbm93biIhPXR5cGVvZiBhLmNhbmNlbEJ1YmJsZSYmKGEuY2FuY2VsQnViYmxlPSEwKSx0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXBkKX0scGVyc2lzdDpmdW5jdGlvbigpe30saXNQZXJzaXN0ZW50OnBkfSksYn12YXIgd2QseGQseWQsc2Q9e2V2ZW50UGhhc2U6MCxidWJibGVzOjAsY2FuY2VsYWJsZTowLHRpbWVTdGFtcDpmdW5jdGlvbihhKXtyZXR1cm4gYS50aW1lU3RhbXB8fERhdGUubm93KCl9LGRlZmF1bHRQcmV2ZW50ZWQ6MCxpc1RydXN0ZWQ6MH0sdGQ9cmQoc2QpLHVkPUEoe30sc2Qse3ZpZXc6MCxkZXRhaWw6MH0pLHZkPXJkKHVkKSxBZD1BKHt9LHVkLHtzY3JlZW5YOjAsc2NyZWVuWTowLGNsaWVudFg6MCxjbGllbnRZOjAscGFnZVg6MCxwYWdlWTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGFsdEtleTowLG1ldGFLZXk6MCxnZXRNb2RpZmllclN0YXRlOnpkLGJ1dHRvbjowLGJ1dHRvbnM6MCxyZWxhdGVkVGFyZ2V0OmZ1bmN0aW9uKGEpe3JldHVybiB2b2lkIDA9PT1hLnJlbGF0ZWRUYXJnZXQ/YS5mcm9tRWxlbWVudD09PWEuc3JjRWxlbWVudD9hLnRvRWxlbWVudDphLmZyb21FbGVtZW50OmEucmVsYXRlZFRhcmdldH0sbW92ZW1lbnRYOmZ1bmN0aW9uKGEpe3JldHVybiJtb3ZlbWVudFgiaW4gYT9hLm1vdmVtZW50WDooYSE9PXlkJiYoeWQmJiJtb3VzZW1vdmUiPT09YS50eXBlPyh3ZD1hLnNjcmVlblgteWQuc2NyZWVuWCx4ZD1hLnNjcmVlblkteWQuc2NyZWVuWSk6eGQ9d2Q9MCx5ZD1hKSx3ZCl9LG1vdmVtZW50WTpmdW5jdGlvbihhKXtyZXR1cm4ibW92ZW1lbnRZImluIGE/YS5tb3ZlbWVudFk6eGR9fSksQmQ9cmQoQWQpLERkPXJkKEEoe30sQWQse2RhdGFUcmFuc2ZlcjowfSkpLEZkPXJkKEEoe30sdWQse3JlbGF0ZWRUYXJnZXQ6MH0pKSxIZD1yZChBKHt9LHNkLHthbmltYXRpb25OYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSksSmQ9cmQoQSh7fSxzZCx7Y2xpcGJvYXJkRGF0YTpmdW5jdGlvbihhKXtyZXR1cm4iY2xpcGJvYXJkRGF0YSJpbiBhP2EuY2xpcGJvYXJkRGF0YTp3aW5kb3cuY2xpcGJvYXJkRGF0YX19KSksTGQ9cmQoQSh7fSxzZCx7ZGF0YTowfSkpLE1kPXtFc2M6IkVzY2FwZSIsU3BhY2ViYXI6IiAiLExlZnQ6IkFycm93TGVmdCIsVXA6IkFycm93VXAiLFJpZ2h0OiJBcnJvd1JpZ2h0IixEb3duOiJBcnJvd0Rvd24iLERlbDoiRGVsZXRlIixXaW46Ik9TIixNZW51OiJDb250ZXh0TWVudSIsQXBwczoiQ29udGV4dE1lbnUiLFNjcm9sbDoiU2Nyb2xsTG9jayIsTW96UHJpbnRhYmxlS2V5OiJVbmlkZW50aWZpZWQifSxOZD17ODoiQmFja3NwYWNlIiw5OiJUYWIiLDEyOiJDbGVhciIsMTM6IkVudGVyIiwxNjoiU2hpZnQiLDE3OiJDb250cm9sIiwxODoiQWx0IiwxOToiUGF1c2UiLDIwOiJDYXBzTG9jayIsMjc6IkVzY2FwZSIsMzI6IiAiLDMzOiJQYWdlVXAiLDM0OiJQYWdlRG93biIsMzU6IkVuZCIsMzY6IkhvbWUiLDM3OiJBcnJvd0xlZnQiLDM4OiJBcnJvd1VwIiwzOToiQXJyb3dSaWdodCIsNDA6IkFycm93RG93biIsNDU6Ikluc2VydCIsNDY6IkRlbGV0ZSIsMTEyOiJGMSIsMTEzOiJGMiIsMTE0OiJGMyIsMTE1OiJGNCIsMTE2OiJGNSIsMTE3OiJGNiIsMTE4OiJGNyIsMTE5OiJGOCIsMTIwOiJGOSIsMTIxOiJGMTAiLDEyMjoiRjExIiwxMjM6IkYxMiIsMTQ0OiJOdW1Mb2NrIiwxNDU6IlNjcm9sbExvY2siLDIyNDoiTWV0YSJ9LE9kPXtBbHQ6ImFsdEtleSIsQ29udHJvbDoiY3RybEtleSIsTWV0YToibWV0YUtleSIsU2hpZnQ6InNoaWZ0S2V5In07ZnVuY3Rpb24gUGQoYSl7dmFyIGI9dGhpcy5uYXRpdmVFdmVudDtyZXR1cm4gYi5nZXRNb2RpZmllclN0YXRlP2IuZ2V0TW9kaWZpZXJTdGF0ZShhKTohIShhPU9kW2FdKSYmISFiW2FdfWZ1bmN0aW9uIHpkKCl7cmV0dXJuIFBkfXZhciBSZD1yZChBKHt9LHVkLHtrZXk6ZnVuY3Rpb24oYSl7aWYoYS5rZXkpe3ZhciBiPU1kW2Eua2V5XXx8YS5rZXk7aWYoIlVuaWRlbnRpZmllZCIhPT1iKXJldHVybiBifXJldHVybiJrZXlwcmVzcyI9PT1hLnR5cGU/MTM9PT0oYT1vZChhKSk/IkVudGVyIjpTdHJpbmcuZnJvbUNoYXJDb2RlKGEpOiJrZXlkb3duIj09PWEudHlwZXx8ImtleXVwIj09PWEudHlwZT9OZFthLmtleUNvZGVdfHwiVW5pZGVudGlmaWVkIjoiIn0sY29kZTowLGxvY2F0aW9uOjAsY3RybEtleTowLHNoaWZ0S2V5OjAsYWx0S2V5OjAsbWV0YUtleTowLHJlcGVhdDowLGxvY2FsZTowLGdldE1vZGlmaWVyU3RhdGU6emQsY2hhckNvZGU6ZnVuY3Rpb24oYSl7cmV0dXJuImtleXByZXNzIj09PWEudHlwZT9vZChhKTowfSxrZXlDb2RlOmZ1bmN0aW9uKGEpe3JldHVybiJrZXlkb3duIj09PWEudHlwZXx8ImtleXVwIj09PWEudHlwZT9hLmtleUNvZGU6MH0sd2hpY2g6ZnVuY3Rpb24oYSl7cmV0dXJuImtleXByZXNzIj09PWEudHlwZT9vZChhKToia2V5ZG93biI9PT1hLnR5cGV8fCJrZXl1cCI9PT1hLnR5cGU/YS5rZXlDb2RlOjB9fSkpLFRkPXJkKEEoe30sQWQse3BvaW50ZXJJZDowLHdpZHRoOjAsaGVpZ2h0OjAscHJlc3N1cmU6MCx0YW5nZW50aWFsUHJlc3N1cmU6MCx0aWx0WDowLHRpbHRZOjAsdHdpc3Q6MCxwb2ludGVyVHlwZTowLGlzUHJpbWFyeTowfSkpLFZkPXJkKEEoe30sdWQse3RvdWNoZXM6MCx0YXJnZXRUb3VjaGVzOjAsY2hhbmdlZFRvdWNoZXM6MCxhbHRLZXk6MCxtZXRhS2V5OjAsY3RybEtleTowLHNoaWZ0S2V5OjAsZ2V0TW9kaWZpZXJTdGF0ZTp6ZH0pKSxYZD1yZChBKHt9LHNkLHtwcm9wZXJ0eU5hbWU6MCxlbGFwc2VkVGltZTowLHBzZXVkb0VsZW1lbnQ6MH0pKSxaZD1yZChBKHt9LEFkLHtkZWx0YVg6ZnVuY3Rpb24oYSl7cmV0dXJuImRlbHRhWCJpbiBhP2EuZGVsdGFYOiJ3aGVlbERlbHRhWCJpbiBhPy1hLndoZWVsRGVsdGFYOjB9LGRlbHRhWTpmdW5jdGlvbihhKXtyZXR1cm4iZGVsdGFZImluIGE/YS5kZWx0YVk6IndoZWVsRGVsdGFZImluIGE/LWEud2hlZWxEZWx0YVk6IndoZWVsRGVsdGEiaW4gYT8tYS53aGVlbERlbHRhOjB9LGRlbHRhWjowLGRlbHRhTW9kZTowfSkpLCRkPVs5LDEzLDI3LDMyXSxhZT1pYSYmIkNvbXBvc2l0aW9uRXZlbnQiaW4gd2luZG93LGJlPW51bGw7aWEmJiJkb2N1bWVudE1vZGUiaW4gZG9jdW1lbnQmJihiZT1kb2N1bWVudC5kb2N1bWVudE1vZGUpO3ZhciBjZT1pYSYmIlRleHRFdmVudCJpbiB3aW5kb3cmJiFiZSxkZT1pYSYmKCFhZXx8YmUmJjg8YmUmJjExPj1iZSksZmU9ITE7ZnVuY3Rpb24gZ2UoYSxiKXtzd2l0Y2goYSl7Y2FzZSJrZXl1cCI6cmV0dXJuIC0xIT09JGQuaW5kZXhPZihiLmtleUNvZGUpO2Nhc2Uia2V5ZG93biI6cmV0dXJuIDIyOSE9PWIua2V5Q29kZTtjYXNlImtleXByZXNzIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJmb2N1c291dCI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gaGUoYSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZihhPWEuZGV0YWlsKSYmImRhdGEiaW4gYT9hLmRhdGE6bnVsbH12YXIgaWU9ITEsbGU9e2NvbG9yOiEwLGRhdGU6ITAsZGF0ZXRpbWU6ITAsImRhdGV0aW1lLWxvY2FsIjohMCxlbWFpbDohMCxtb250aDohMCxudW1iZXI6ITAscGFzc3dvcmQ6ITAscmFuZ2U6ITAsc2VhcmNoOiEwLHRlbDohMCx0ZXh0OiEwLHRpbWU6ITAsdXJsOiEwLHdlZWs6ITB9O2Z1bmN0aW9uIG1lKGEpe3ZhciBiPWEmJmEubm9kZU5hbWUmJmEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09Yj8hIWxlW2EudHlwZV06InRleHRhcmVhIj09PWJ9ZnVuY3Rpb24gbmUoYSxiLGMsZCl7RWIoZCksMDwoYj1vZShiLCJvbkNoYW5nZSIpKS5sZW5ndGgmJihjPW5ldyB0ZCgib25DaGFuZ2UiLCJjaGFuZ2UiLG51bGwsYyxkKSxhLnB1c2goe2V2ZW50OmMsbGlzdGVuZXJzOmJ9KSl9dmFyIHBlPW51bGwscWU9bnVsbDtmdW5jdGlvbiByZShhKXtzZShhLDApfWZ1bmN0aW9uIHRlKGEpe2lmKFdhKHVlKGEpKSlyZXR1cm4gYX1mdW5jdGlvbiB2ZShhLGIpe2lmKCJjaGFuZ2UiPT09YSlyZXR1cm4gYn12YXIgd2U9ITE7aWYoaWEpe2lmKGlhKXt2YXIgeWU9Im9uaW5wdXQiaW4gZG9jdW1lbnQ7aWYoIXllKXt2YXIgemU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7emUuc2V0QXR0cmlidXRlKCJvbmlucHV0IiwicmV0dXJuOyIpLHllPSJmdW5jdGlvbiI9PXR5cGVvZiB6ZS5vbmlucHV0fXhlPXllfWVsc2UgeGU9ITE7d2U9eGUmJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHw5PGRvY3VtZW50LmRvY3VtZW50TW9kZSl9ZnVuY3Rpb24gQWUoKXtwZSYmKHBlLmRldGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIixCZSkscWU9cGU9bnVsbCl9ZnVuY3Rpb24gQmUoYSl7aWYoInZhbHVlIj09PWEucHJvcGVydHlOYW1lJiZ0ZShxZSkpe3ZhciBiPVtdO25lKGIscWUsYSx4YihhKSksSmIocmUsYil9fWZ1bmN0aW9uIENlKGEsYixjKXsiZm9jdXNpbiI9PT1hPyhBZSgpLHBlPWIscWU9YyxwZS5hdHRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIsQmUpKToiZm9jdXNvdXQiPT09YSYmQWUoKX1mdW5jdGlvbiBEZShhKXtpZigic2VsZWN0aW9uY2hhbmdlIj09PWF8fCJrZXl1cCI9PT1hfHwia2V5ZG93biI9PT1hKXJldHVybiB0ZShxZSl9ZnVuY3Rpb24gRWUoYSxiKXtpZigiY2xpY2siPT09YSlyZXR1cm4gdGUoYil9ZnVuY3Rpb24gRmUoYSxiKXtpZigiaW5wdXQiPT09YXx8ImNoYW5nZSI9PT1hKXJldHVybiB0ZShiKX12YXIgSGU9ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5pcz9PYmplY3QuaXM6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT09PWImJigwIT09YXx8MS9hPT0xL2IpfHxhIT1hJiZiIT1ifTtmdW5jdGlvbiBJZShhLGIpe2lmKEhlKGEsYikpcmV0dXJuITA7aWYoIm9iamVjdCIhPXR5cGVvZiBhfHxudWxsPT09YXx8Im9iamVjdCIhPXR5cGVvZiBifHxudWxsPT09YilyZXR1cm4hMTt2YXIgYz1PYmplY3Qua2V5cyhhKSxkPU9iamVjdC5rZXlzKGIpO2lmKGMubGVuZ3RoIT09ZC5sZW5ndGgpcmV0dXJuITE7Zm9yKGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9Y1tkXTtpZighamEuY2FsbChiLGUpfHwhSGUoYVtlXSxiW2VdKSlyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBKZShhKXtmb3IoO2EmJmEuZmlyc3RDaGlsZDspYT1hLmZpcnN0Q2hpbGQ7cmV0dXJuIGF9ZnVuY3Rpb24gS2UoYSxiKXt2YXIgZCxjPUplKGEpO2ZvcihhPTA7Yzspe2lmKDM9PT1jLm5vZGVUeXBlKXtpZihkPWErYy50ZXh0Q29udGVudC5sZW5ndGgsYTw9YiYmZD49YilyZXR1cm57bm9kZTpjLG9mZnNldDpiLWF9O2E9ZH1hOntmb3IoO2M7KXtpZihjLm5leHRTaWJsaW5nKXtjPWMubmV4dFNpYmxpbmc7YnJlYWsgYX1jPWMucGFyZW50Tm9kZX1jPXZvaWQgMH1jPUplKGMpfX1mdW5jdGlvbiBNZSgpe2Zvcih2YXIgYT13aW5kb3csYj1YYSgpO2IgaW5zdGFuY2VvZiBhLkhUTUxJRnJhbWVFbGVtZW50Oyl7dHJ5e3ZhciBjPSJzdHJpbmciPT10eXBlb2YgYi5jb250ZW50V2luZG93LmxvY2F0aW9uLmhyZWZ9Y2F0Y2goZCl7Yz0hMX1pZihjKWE9Yi5jb250ZW50V2luZG93O2Vsc2UgYnJlYWs7Yj1YYShhLmRvY3VtZW50KX1yZXR1cm4gYn1mdW5jdGlvbiBOZShhKXt2YXIgYj1hJiZhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGImJigiaW5wdXQiPT09YiYmKCJ0ZXh0Ij09PWEudHlwZXx8InNlYXJjaCI9PT1hLnR5cGV8fCJ0ZWwiPT09YS50eXBlfHwidXJsIj09PWEudHlwZXx8InBhc3N3b3JkIj09PWEudHlwZSl8fCJ0ZXh0YXJlYSI9PT1ifHwidHJ1ZSI9PT1hLmNvbnRlbnRFZGl0YWJsZSl9dmFyIFBlPWlhJiYiZG9jdW1lbnRNb2RlImluIGRvY3VtZW50JiYxMT49ZG9jdW1lbnQuZG9jdW1lbnRNb2RlLFFlPW51bGwsUmU9bnVsbCxTZT1udWxsLFRlPSExO2Z1bmN0aW9uIFVlKGEsYixjKXt2YXIgZD1jLndpbmRvdz09PWM/Yy5kb2N1bWVudDo5PT09Yy5ub2RlVHlwZT9jOmMub3duZXJEb2N1bWVudDtUZXx8bnVsbD09UWV8fFFlIT09WGEoZCl8fChkPSJzZWxlY3Rpb25TdGFydCJpbihkPVFlKSYmTmUoZCk/e3N0YXJ0OmQuc2VsZWN0aW9uU3RhcnQsZW5kOmQuc2VsZWN0aW9uRW5kfTp7YW5jaG9yTm9kZTooZD0oZC5vd25lckRvY3VtZW50JiZkLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvdykuZ2V0U2VsZWN0aW9uKCkpLmFuY2hvck5vZGUsYW5jaG9yT2Zmc2V0OmQuYW5jaG9yT2Zmc2V0LGZvY3VzTm9kZTpkLmZvY3VzTm9kZSxmb2N1c09mZnNldDpkLmZvY3VzT2Zmc2V0fSxTZSYmSWUoU2UsZCl8fChTZT1kLDA8KGQ9b2UoUmUsIm9uU2VsZWN0IikpLmxlbmd0aCYmKGI9bmV3IHRkKCJvblNlbGVjdCIsInNlbGVjdCIsbnVsbCxiLGMpLGEucHVzaCh7ZXZlbnQ6YixsaXN0ZW5lcnM6ZH0pLGIudGFyZ2V0PVFlKSkpfWZ1bmN0aW9uIFZlKGEsYil7dmFyIGM9e307cmV0dXJuIGNbYS50b0xvd2VyQ2FzZSgpXT1iLnRvTG93ZXJDYXNlKCksY1siV2Via2l0IithXT0id2Via2l0IitiLGNbIk1veiIrYV09Im1veiIrYixjfXZhciBXZT17YW5pbWF0aW9uZW5kOlZlKCJBbmltYXRpb24iLCJBbmltYXRpb25FbmQiKSxhbmltYXRpb25pdGVyYXRpb246VmUoIkFuaW1hdGlvbiIsIkFuaW1hdGlvbkl0ZXJhdGlvbiIpLGFuaW1hdGlvbnN0YXJ0OlZlKCJBbmltYXRpb24iLCJBbmltYXRpb25TdGFydCIpLHRyYW5zaXRpb25lbmQ6VmUoIlRyYW5zaXRpb24iLCJUcmFuc2l0aW9uRW5kIil9LFhlPXt9LFllPXt9O2Z1bmN0aW9uIFplKGEpe2lmKFhlW2FdKXJldHVybiBYZVthXTtpZighV2VbYV0pcmV0dXJuIGE7dmFyIGMsYj1XZVthXTtmb3IoYyBpbiBiKWlmKGIuaGFzT3duUHJvcGVydHkoYykmJmMgaW4gWWUpcmV0dXJuIFhlW2FdPWJbY107cmV0dXJuIGF9aWEmJihZZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZSwiQW5pbWF0aW9uRXZlbnQiaW4gd2luZG93fHwoZGVsZXRlIFdlLmFuaW1hdGlvbmVuZC5hbmltYXRpb24sZGVsZXRlIFdlLmFuaW1hdGlvbml0ZXJhdGlvbi5hbmltYXRpb24sZGVsZXRlIFdlLmFuaW1hdGlvbnN0YXJ0LmFuaW1hdGlvbiksIlRyYW5zaXRpb25FdmVudCJpbiB3aW5kb3d8fGRlbGV0ZSBXZS50cmFuc2l0aW9uZW5kLnRyYW5zaXRpb24pO3ZhciAkZT1aZSgiYW5pbWF0aW9uZW5kIiksYWY9WmUoImFuaW1hdGlvbml0ZXJhdGlvbiIpLGJmPVplKCJhbmltYXRpb25zdGFydCIpLGNmPVplKCJ0cmFuc2l0aW9uZW5kIiksZGY9bmV3IE1hcCxlZj0iYWJvcnQgYXV4Q2xpY2sgY2FuY2VsIGNhblBsYXkgY2FuUGxheVRocm91Z2ggY2xpY2sgY2xvc2UgY29udGV4dE1lbnUgY29weSBjdXQgZHJhZyBkcmFnRW5kIGRyYWdFbnRlciBkcmFnRXhpdCBkcmFnTGVhdmUgZHJhZ092ZXIgZHJhZ1N0YXJ0IGRyb3AgZHVyYXRpb25DaGFuZ2UgZW1wdGllZCBlbmNyeXB0ZWQgZW5kZWQgZXJyb3IgZ290UG9pbnRlckNhcHR1cmUgaW5wdXQgaW52YWxpZCBrZXlEb3duIGtleVByZXNzIGtleVVwIGxvYWQgbG9hZGVkRGF0YSBsb2FkZWRNZXRhZGF0YSBsb2FkU3RhcnQgbG9zdFBvaW50ZXJDYXB0dXJlIG1vdXNlRG93biBtb3VzZU1vdmUgbW91c2VPdXQgbW91c2VPdmVyIG1vdXNlVXAgcGFzdGUgcGF1c2UgcGxheSBwbGF5aW5nIHBvaW50ZXJDYW5jZWwgcG9pbnRlckRvd24gcG9pbnRlck1vdmUgcG9pbnRlck91dCBwb2ludGVyT3ZlciBwb2ludGVyVXAgcHJvZ3Jlc3MgcmF0ZUNoYW5nZSByZXNldCByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdWJtaXQgc3VzcGVuZCB0aW1lVXBkYXRlIHRvdWNoQ2FuY2VsIHRvdWNoRW5kIHRvdWNoU3RhcnQgdm9sdW1lQ2hhbmdlIHNjcm9sbCB0b2dnbGUgdG91Y2hNb3ZlIHdhaXRpbmcgd2hlZWwiLnNwbGl0KCIgIik7ZnVuY3Rpb24gZmYoYSxiKXtkZi5zZXQoYSxiKSxmYShiLFthXSl9Zm9yKHZhciBnZj0wO2dmPGVmLmxlbmd0aDtnZisrKXt2YXIgaGY9ZWZbZ2ZdO2ZmKGhmLnRvTG93ZXJDYXNlKCksIm9uIisoaGZbMF0udG9VcHBlckNhc2UoKStoZi5zbGljZSgxKSkpfWZmKCRlLCJvbkFuaW1hdGlvbkVuZCIpLGZmKGFmLCJvbkFuaW1hdGlvbkl0ZXJhdGlvbiIpLGZmKGJmLCJvbkFuaW1hdGlvblN0YXJ0IiksZmYoImRibGNsaWNrIiwib25Eb3VibGVDbGljayIpLGZmKCJmb2N1c2luIiwib25Gb2N1cyIpLGZmKCJmb2N1c291dCIsIm9uQmx1ciIpLGZmKGNmLCJvblRyYW5zaXRpb25FbmQiKSxoYSgib25Nb3VzZUVudGVyIixbIm1vdXNlb3V0IiwibW91c2VvdmVyIl0pLGhhKCJvbk1vdXNlTGVhdmUiLFsibW91c2VvdXQiLCJtb3VzZW92ZXIiXSksaGEoIm9uUG9pbnRlckVudGVyIixbInBvaW50ZXJvdXQiLCJwb2ludGVyb3ZlciJdKSxoYSgib25Qb2ludGVyTGVhdmUiLFsicG9pbnRlcm91dCIsInBvaW50ZXJvdmVyIl0pLGZhKCJvbkNoYW5nZSIsImNoYW5nZSBjbGljayBmb2N1c2luIGZvY3Vzb3V0IGlucHV0IGtleWRvd24ga2V5dXAgc2VsZWN0aW9uY2hhbmdlIi5zcGxpdCgiICIpKSxmYSgib25TZWxlY3QiLCJmb2N1c291dCBjb250ZXh0bWVudSBkcmFnZW5kIGZvY3VzaW4ga2V5ZG93biBrZXl1cCBtb3VzZWRvd24gbW91c2V1cCBzZWxlY3Rpb25jaGFuZ2UiLnNwbGl0KCIgIikpLGZhKCJvbkJlZm9yZUlucHV0IixbImNvbXBvc2l0aW9uZW5kIiwia2V5cHJlc3MiLCJ0ZXh0SW5wdXQiLCJwYXN0ZSJdKSxmYSgib25Db21wb3NpdGlvbkVuZCIsImNvbXBvc2l0aW9uZW5kIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duIi5zcGxpdCgiICIpKSxmYSgib25Db21wb3NpdGlvblN0YXJ0IiwiY29tcG9zaXRpb25zdGFydCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93biIuc3BsaXQoIiAiKSksZmEoIm9uQ29tcG9zaXRpb25VcGRhdGUiLCJjb21wb3NpdGlvbnVwZGF0ZSBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93biIuc3BsaXQoIiAiKSk7dmFyIGxmPSJhYm9ydCBjYW5wbGF5IGNhbnBsYXl0aHJvdWdoIGR1cmF0aW9uY2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGxvYWRlZGRhdGEgbG9hZGVkbWV0YWRhdGEgbG9hZHN0YXJ0IHBhdXNlIHBsYXkgcGxheWluZyBwcm9ncmVzcyByYXRlY2hhbmdlIHJlc2l6ZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1c3BlbmQgdGltZXVwZGF0ZSB2b2x1bWVjaGFuZ2Ugd2FpdGluZyIuc3BsaXQoIiAiKSxtZj1uZXcgU2V0KCJjYW5jZWwgY2xvc2UgaW52YWxpZCBsb2FkIHNjcm9sbCB0b2dnbGUiLnNwbGl0KCIgIikuY29uY2F0KGxmKSk7ZnVuY3Rpb24gbmYoYSxiLGMpe3ZhciBkPWEudHlwZXx8InVua25vd24tZXZlbnQiO2EuY3VycmVudFRhcmdldD1jLGZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCxrKXtpZihUYi5hcHBseSh0aGlzLGFyZ3VtZW50cyksT2Ipe2lmKE9iKXt2YXIgbD1QYjtPYj0hMSxQYj1udWxsfWVsc2UgdGhyb3cgRXJyb3IocCgxOTgpKTtRYnx8KFFiPSEwLFJiPWwpfX0oZCxiLHZvaWQgMCxhKSxhLmN1cnJlbnRUYXJnZXQ9bnVsbH1mdW5jdGlvbiBzZShhLGIpe2I9MCE9KDQmYik7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10sZT1kLmV2ZW50O2Q9ZC5saXN0ZW5lcnM7YTp7dmFyIGY9dm9pZCAwO2lmKGIpZm9yKHZhciBnPWQubGVuZ3RoLTE7MDw9ZztnLS0pe3ZhciBoPWRbZ10saz1oLmluc3RhbmNlLGw9aC5jdXJyZW50VGFyZ2V0O2lmKGg9aC5saXN0ZW5lcixrIT09ZiYmZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWJyZWFrIGE7bmYoZSxoLGwpLGY9a31lbHNlIGZvcihnPTA7ZzxkLmxlbmd0aDtnKyspe2lmKGs9KGg9ZFtnXSkuaW5zdGFuY2UsbD1oLmN1cnJlbnRUYXJnZXQsaD1oLmxpc3RlbmVyLGshPT1mJiZlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgYTtuZihlLGgsbCksZj1rfX19aWYoUWIpdGhyb3cgYT1SYixRYj0hMSxSYj1udWxsLGF9ZnVuY3Rpb24gRChhLGIpe3ZhciBjPWJbb2ZdO3ZvaWQgMD09PWMmJihjPWJbb2ZdPW5ldyBTZXQpO3ZhciBkPWErIl9fYnViYmxlIjtjLmhhcyhkKXx8KHBmKGIsYSwyLCExKSxjLmFkZChkKSl9ZnVuY3Rpb24gcWYoYSxiLGMpe3ZhciBkPTA7YiYmKGR8PTQpLHBmKGMsYSxkLGIpfXZhciByZj0iX3JlYWN0TGlzdGVuaW5nIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKTtmdW5jdGlvbiBzZihhKXtpZighYVtyZl0pe2FbcmZdPSEwLGRhLmZvckVhY2goZnVuY3Rpb24oYil7InNlbGVjdGlvbmNoYW5nZSIhPT1iJiYobWYuaGFzKGIpfHxxZihiLCExLGEpLHFmKGIsITAsYSkpfSk7dmFyIGI9OT09PWEubm9kZVR5cGU/YTphLm93bmVyRG9jdW1lbnQ7bnVsbD09PWJ8fGJbcmZdfHwoYltyZl09ITAscWYoInNlbGVjdGlvbmNoYW5nZSIsITEsYikpfX1mdW5jdGlvbiBwZihhLGIsYyxkKXtzd2l0Y2goamQoYikpe2Nhc2UgMTp2YXIgZT1lZDticmVhaztjYXNlIDQ6ZT1nZDticmVhaztkZWZhdWx0OmU9ZmR9Yz1lLmJpbmQobnVsbCxiLGMsYSksZT12b2lkIDAsTGImJigidG91Y2hzdGFydCI9PT1ifHwidG91Y2htb3ZlIj09PWJ8fCJ3aGVlbCI9PT1iKSYmKGU9ITApLGQ/dm9pZCAwIT09ZT9hLmFkZEV2ZW50TGlzdGVuZXIoYixjLHtjYXB0dXJlOiEwLHBhc3NpdmU6ZX0pOmEuYWRkRXZlbnRMaXN0ZW5lcihiLGMsITApOnZvaWQgMCE9PWU/YS5hZGRFdmVudExpc3RlbmVyKGIsYyx7cGFzc2l2ZTplfSk6YS5hZGRFdmVudExpc3RlbmVyKGIsYywhMSl9ZnVuY3Rpb24gaGQoYSxiLGMsZCxlKXt2YXIgZj1kO2lmKDA9PSgxJmIpJiYwPT0oMiZiKSYmbnVsbCE9PWQpYTpmb3IoOzspe2lmKG51bGw9PT1kKXJldHVybjt2YXIgZz1kLnRhZztpZigzPT09Z3x8ND09PWcpe3ZhciBoPWQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87aWYoaD09PWV8fDg9PT1oLm5vZGVUeXBlJiZoLnBhcmVudE5vZGU9PT1lKWJyZWFrO2lmKDQ9PT1nKWZvcihnPWQucmV0dXJuO251bGwhPT1nOyl7dmFyIGs9Zy50YWc7aWYoKDM9PT1rfHw0PT09aykmJigoaz1nLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKT09PWV8fDg9PT1rLm5vZGVUeXBlJiZrLnBhcmVudE5vZGU9PT1lKSlyZXR1cm47Zz1nLnJldHVybn1mb3IoO251bGwhPT1oOyl7aWYobnVsbD09PShnPVdjKGgpKSlyZXR1cm47aWYoNT09PShrPWcudGFnKXx8Nj09PWspe2Q9Zj1nO2NvbnRpbnVlIGF9aD1oLnBhcmVudE5vZGV9fWQ9ZC5yZXR1cm59SmIoZnVuY3Rpb24oKXt2YXIgZD1mLGU9eGIoYyksZz1bXTthOnt2YXIgaD1kZi5nZXQoYSk7aWYodm9pZCAwIT09aCl7dmFyIGs9dGQsbj1hO3N3aXRjaChhKXtjYXNlImtleXByZXNzIjppZigwPT09b2QoYykpYnJlYWsgYTtjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOms9UmQ7YnJlYWs7Y2FzZSJmb2N1c2luIjpuPSJmb2N1cyIsaz1GZDticmVhaztjYXNlImZvY3Vzb3V0IjpuPSJibHVyIixrPUZkO2JyZWFrO2Nhc2UiYmVmb3JlYmx1ciI6Y2FzZSJhZnRlcmJsdXIiOms9RmQ7YnJlYWs7Y2FzZSJjbGljayI6aWYoMj09PWMuYnV0dG9uKWJyZWFrIGE7Y2FzZSJhdXhjbGljayI6Y2FzZSJkYmxjbGljayI6Y2FzZSJtb3VzZWRvd24iOmNhc2UibW91c2Vtb3ZlIjpjYXNlIm1vdXNldXAiOmNhc2UibW91c2VvdXQiOmNhc2UibW91c2VvdmVyIjpjYXNlImNvbnRleHRtZW51IjprPUJkO2JyZWFrO2Nhc2UiZHJhZyI6Y2FzZSJkcmFnZW5kIjpjYXNlImRyYWdlbnRlciI6Y2FzZSJkcmFnZXhpdCI6Y2FzZSJkcmFnbGVhdmUiOmNhc2UiZHJhZ292ZXIiOmNhc2UiZHJhZ3N0YXJ0IjpjYXNlImRyb3AiOms9RGQ7YnJlYWs7Y2FzZSJ0b3VjaGNhbmNlbCI6Y2FzZSJ0b3VjaGVuZCI6Y2FzZSJ0b3VjaG1vdmUiOmNhc2UidG91Y2hzdGFydCI6az1WZDticmVhaztjYXNlICRlOmNhc2UgYWY6Y2FzZSBiZjprPUhkO2JyZWFrO2Nhc2UgY2Y6az1YZDticmVhaztjYXNlInNjcm9sbCI6az12ZDticmVhaztjYXNlIndoZWVsIjprPVpkO2JyZWFrO2Nhc2UiY29weSI6Y2FzZSJjdXQiOmNhc2UicGFzdGUiOms9SmQ7YnJlYWs7Y2FzZSJnb3Rwb2ludGVyY2FwdHVyZSI6Y2FzZSJsb3N0cG9pbnRlcmNhcHR1cmUiOmNhc2UicG9pbnRlcmNhbmNlbCI6Y2FzZSJwb2ludGVyZG93biI6Y2FzZSJwb2ludGVybW92ZSI6Y2FzZSJwb2ludGVyb3V0IjpjYXNlInBvaW50ZXJvdmVyIjpjYXNlInBvaW50ZXJ1cCI6az1UZH12YXIgdD0wIT0oNCZiKSxKPSF0JiYic2Nyb2xsIj09PWEseD10P251bGwhPT1oP2grIkNhcHR1cmUiOm51bGw6aDt0PVtdO2Zvcih2YXIgdSx3PWQ7bnVsbCE9PXc7KXt2YXIgRj0odT13KS5zdGF0ZU5vZGU7aWYoNT09PXUudGFnJiZudWxsIT09RiYmKHU9RixudWxsIT09eCYmbnVsbCE9KEY9S2Iodyx4KSkmJnQucHVzaCh0Zih3LEYsdSkpKSxKKWJyZWFrO3c9dy5yZXR1cm59MDx0Lmxlbmd0aCYmKGg9bmV3IGsoaCxuLG51bGwsYyxlKSxnLnB1c2goe2V2ZW50OmgsbGlzdGVuZXJzOnR9KSl9fWlmKDA9PSg3JmIpKXthOmlmKGg9Im1vdXNlb3ZlciI9PT1hfHwicG9pbnRlcm92ZXIiPT09YSxrPSJtb3VzZW91dCI9PT1hfHwicG9pbnRlcm91dCI9PT1hLCEoaCYmYyE9PXdiJiYobj1jLnJlbGF0ZWRUYXJnZXR8fGMuZnJvbUVsZW1lbnQpJiYoV2Mobil8fG5bdWZdKSkmJihrfHxoKSYmKGg9ZS53aW5kb3c9PT1lP2U6KGg9ZS5vd25lckRvY3VtZW50KT9oLmRlZmF1bHRWaWV3fHxoLnBhcmVudFdpbmRvdzp3aW5kb3csaz8obj1jLnJlbGF0ZWRUYXJnZXR8fGMudG9FbGVtZW50LGs9ZCxudWxsIT09KG49bj9XYyhuKTpudWxsKSYmKEo9VmIobiksbiE9PUp8fDUhPT1uLnRhZyYmNiE9PW4udGFnKSYmKG49bnVsbCkpOihrPW51bGwsbj1kKSxrIT09bikpe2lmKHQ9QmQsRj0ib25Nb3VzZUxlYXZlIix4PSJvbk1vdXNlRW50ZXIiLHc9Im1vdXNlIiwoInBvaW50ZXJvdXQiPT09YXx8InBvaW50ZXJvdmVyIj09PWEpJiYodD1UZCxGPSJvblBvaW50ZXJMZWF2ZSIseD0ib25Qb2ludGVyRW50ZXIiLHc9InBvaW50ZXIiKSxKPW51bGw9PWs/aDp1ZShrKSx1PW51bGw9PW4/aDp1ZShuKSwoaD1uZXcgdChGLHcrImxlYXZlIixrLGMsZSkpLnRhcmdldD1KLGgucmVsYXRlZFRhcmdldD11LEY9bnVsbCxXYyhlKT09PWQmJigodD1uZXcgdCh4LHcrImVudGVyIixuLGMsZSkpLnRhcmdldD11LHQucmVsYXRlZFRhcmdldD1KLEY9dCksSj1GLGsmJm4pYjp7Zm9yKHQ9ayx4PW4sdz0wLHU9dDt1O3U9dmYodSkpdysrO2Zvcih1PTAsRj14O0Y7Rj12ZihGKSl1Kys7Zm9yKDswPHctdTspdD12Zih0KSx3LS07Zm9yKDswPHUtdzspeD12Zih4KSx1LS07Zm9yKDt3LS07KXtpZih0PT09eHx8bnVsbCE9PXgmJnQ9PT14LmFsdGVybmF0ZSlicmVhayBiO3Q9dmYodCkseD12Zih4KX10PW51bGx9ZWxzZSB0PW51bGw7bnVsbCE9PWsmJndmKGcsaCxrLHQsITEpLG51bGwhPT1uJiZudWxsIT09SiYmd2YoZyxKLG4sdCwhMCl9YTp7aWYoInNlbGVjdCI9PT0oaz0oaD1kP3VlKGQpOndpbmRvdykubm9kZU5hbWUmJmgubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl8fCJpbnB1dCI9PT1rJiYiZmlsZSI9PT1oLnR5cGUpdmFyICRhLG5hPXZlO2Vsc2UgaWYobWUoaCkpe2lmKHdlKW5hPUZlO2Vsc2V7bmE9RGU7dmFyIHhhPUNlfX1lbHNlKGs9aC5ub2RlTmFtZSkmJiJpbnB1dCI9PT1rLnRvTG93ZXJDYXNlKCkmJigiY2hlY2tib3giPT09aC50eXBlfHwicmFkaW8iPT09aC50eXBlKSYmKG5hPUVlKTtpZihuYSYmKG5hPW5hKGEsZCkpKXtuZShnLG5hLGMsZSk7YnJlYWsgYX14YSYmeGEoYSxoLGQpLCJmb2N1c291dCI9PT1hJiYoeGE9aC5fd3JhcHBlclN0YXRlKSYmeGEuY29udHJvbGxlZCYmIm51bWJlciI9PT1oLnR5cGUmJmNiKGgsIm51bWJlciIsaC52YWx1ZSl9c3dpdGNoKHhhPWQ/dWUoZCk6d2luZG93LGEpe2Nhc2UiZm9jdXNpbiI6KG1lKHhhKXx8InRydWUiPT09eGEuY29udGVudEVkaXRhYmxlKSYmKFFlPXhhLFJlPWQsU2U9bnVsbCk7YnJlYWs7Y2FzZSJmb2N1c291dCI6U2U9UmU9UWU9bnVsbDticmVhaztjYXNlIm1vdXNlZG93biI6VGU9ITA7YnJlYWs7Y2FzZSJjb250ZXh0bWVudSI6Y2FzZSJtb3VzZXVwIjpjYXNlImRyYWdlbmQiOlRlPSExLFVlKGcsYyxlKTticmVhaztjYXNlInNlbGVjdGlvbmNoYW5nZSI6aWYoUGUpYnJlYWs7Y2FzZSJrZXlkb3duIjpjYXNlImtleXVwIjpVZShnLGMsZSl9aWYoYWUpYjp7c3dpdGNoKGEpe2Nhc2UiY29tcG9zaXRpb25zdGFydCI6dmFyIGJhPSJvbkNvbXBvc2l0aW9uU3RhcnQiO2JyZWFrIGI7Y2FzZSJjb21wb3NpdGlvbmVuZCI6YmE9Im9uQ29tcG9zaXRpb25FbmQiO2JyZWFrIGI7Y2FzZSJjb21wb3NpdGlvbnVwZGF0ZSI6YmE9Im9uQ29tcG9zaXRpb25VcGRhdGUiO2JyZWFrIGJ9YmE9dm9pZCAwfWVsc2UgaWU/Z2UoYSxjKSYmKGJhPSJvbkNvbXBvc2l0aW9uRW5kIik6ImtleWRvd24iPT09YSYmMjI5PT09Yy5rZXlDb2RlJiYoYmE9Im9uQ29tcG9zaXRpb25TdGFydCIpO2JhJiYoZGUmJiJrbyIhPT1jLmxvY2FsZSYmKGllfHwib25Db21wb3NpdGlvblN0YXJ0IiE9PWJhPyJvbkNvbXBvc2l0aW9uRW5kIj09PWJhJiZpZSYmKCRhPW5kKCkpOihsZD0idmFsdWUiaW4oa2Q9ZSk/a2QudmFsdWU6a2QudGV4dENvbnRlbnQsaWU9ITApKSwwPCh4YT1vZShkLGJhKSkubGVuZ3RoJiYoYmE9bmV3IExkKGJhLGEsbnVsbCxjLGUpLGcucHVzaCh7ZXZlbnQ6YmEsbGlzdGVuZXJzOnhhfSksJGE/YmEuZGF0YT0kYTpudWxsIT09KCRhPWhlKGMpKSYmKGJhLmRhdGE9JGEpKSksKCRhPWNlP2Z1bmN0aW9uKGEsYil7c3dpdGNoKGEpe2Nhc2UiY29tcG9zaXRpb25lbmQiOnJldHVybiBoZShiKTtjYXNlImtleXByZXNzIjppZigzMiE9PWIud2hpY2gpcmV0dXJuIG51bGw7cmV0dXJuIGZlPSEwLCIgIjtjYXNlInRleHRJbnB1dCI6cmV0dXJuIiAiPT09KGE9Yi5kYXRhKSYmZmU/bnVsbDphO2RlZmF1bHQ6cmV0dXJuIG51bGx9fShhLGMpOmZ1bmN0aW9uKGEsYil7aWYoaWUpcmV0dXJuImNvbXBvc2l0aW9uZW5kIj09PWF8fCFhZSYmZ2UoYSxiKT8oYT1uZCgpLG1kPWxkPWtkPW51bGwsaWU9ITEsYSk6bnVsbDtzd2l0Y2goYSl7Y2FzZSJwYXN0ZSI6ZGVmYXVsdDpyZXR1cm4gbnVsbDtjYXNlImtleXByZXNzIjppZighKGIuY3RybEtleXx8Yi5hbHRLZXl8fGIubWV0YUtleSl8fGIuY3RybEtleSYmYi5hbHRLZXkpe2lmKGIuY2hhciYmMTxiLmNoYXIubGVuZ3RoKXJldHVybiBiLmNoYXI7aWYoYi53aGljaClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShiLndoaWNoKX1yZXR1cm4gbnVsbDtjYXNlImNvbXBvc2l0aW9uZW5kIjpyZXR1cm4gZGUmJiJrbyIhPT1iLmxvY2FsZT9udWxsOmIuZGF0YX19KGEsYykpJiYwPChkPW9lKGQsIm9uQmVmb3JlSW5wdXQiKSkubGVuZ3RoJiYoZT1uZXcgTGQoIm9uQmVmb3JlSW5wdXQiLCJiZWZvcmVpbnB1dCIsbnVsbCxjLGUpLGcucHVzaCh7ZXZlbnQ6ZSxsaXN0ZW5lcnM6ZH0pLGUuZGF0YT0kYSl9c2UoZyxiKX0pfWZ1bmN0aW9uIHRmKGEsYixjKXtyZXR1cm57aW5zdGFuY2U6YSxsaXN0ZW5lcjpiLGN1cnJlbnRUYXJnZXQ6Y319ZnVuY3Rpb24gb2UoYSxiKXtmb3IodmFyIGM9YisiQ2FwdHVyZSIsZD1bXTtudWxsIT09YTspe3ZhciBlPWEsZj1lLnN0YXRlTm9kZTs1PT09ZS50YWcmJm51bGwhPT1mJiYoZT1mLG51bGwhPShmPUtiKGEsYykpJiZkLnVuc2hpZnQodGYoYSxmLGUpKSxudWxsIT0oZj1LYihhLGIpKSYmZC5wdXNoKHRmKGEsZixlKSkpLGE9YS5yZXR1cm59cmV0dXJuIGR9ZnVuY3Rpb24gdmYoYSl7aWYobnVsbD09PWEpcmV0dXJuIG51bGw7ZG8gYT1hLnJldHVybjt3aGlsZShhJiY1IT09YS50YWcpO3JldHVybiBhfHxudWxsfWZ1bmN0aW9uIHdmKGEsYixjLGQsZSl7Zm9yKHZhciBmPWIuX3JlYWN0TmFtZSxnPVtdO251bGwhPT1jJiZjIT09ZDspe3ZhciBoPWMsaz1oLmFsdGVybmF0ZSxsPWguc3RhdGVOb2RlO2lmKG51bGwhPT1rJiZrPT09ZClicmVhazs1PT09aC50YWcmJm51bGwhPT1sJiYoaD1sLGU/bnVsbCE9KGs9S2IoYyxmKSkmJmcudW5zaGlmdCh0ZihjLGssaCkpOmV8fG51bGwhPShrPUtiKGMsZikpJiZnLnB1c2godGYoYyxrLGgpKSksYz1jLnJldHVybn0wIT09Zy5sZW5ndGgmJmEucHVzaCh7ZXZlbnQ6YixsaXN0ZW5lcnM6Z30pfXZhciB4Zj0vXHJcbj8vZyx5Zj0vXHUwMDAwfFx1RkZGRC9nO2Z1bmN0aW9uIHpmKGEpe3JldHVybigic3RyaW5nIj09dHlwZW9mIGE/YToiIithKS5yZXBsYWNlKHhmLCJcbiIpLnJlcGxhY2UoeWYsIiIpfWZ1bmN0aW9uIEFmKGEsYixjKXtpZihiPXpmKGIpLHpmKGEpIT09YiYmYyl0aHJvdyBFcnJvcihwKDQyNSkpfWZ1bmN0aW9uIEJmKCl7fXZhciBDZj1udWxsLERmPW51bGw7ZnVuY3Rpb24gRWYoYSxiKXtyZXR1cm4idGV4dGFyZWEiPT09YXx8Im5vc2NyaXB0Ij09PWF8fCJzdHJpbmciPT10eXBlb2YgYi5jaGlsZHJlbnx8Im51bWJlciI9PXR5cGVvZiBiLmNoaWxkcmVufHwib2JqZWN0Ij09dHlwZW9mIGIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJm51bGwhPT1iLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT1iLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbH12YXIgRmY9ImZ1bmN0aW9uIj09dHlwZW9mIHNldFRpbWVvdXQ/c2V0VGltZW91dDp2b2lkIDAsR2Y9ImZ1bmN0aW9uIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6dm9pZCAwLEhmPSJmdW5jdGlvbiI9PXR5cGVvZiBQcm9taXNlP1Byb21pc2U6dm9pZCAwLEpmPSJmdW5jdGlvbiI9PXR5cGVvZiBxdWV1ZU1pY3JvdGFzaz9xdWV1ZU1pY3JvdGFzazp2b2lkIDAhPT1IZj9mdW5jdGlvbihhKXtyZXR1cm4gSGYucmVzb2x2ZShudWxsKS50aGVuKGEpLmNhdGNoKElmKX06RmY7ZnVuY3Rpb24gSWYoYSl7c2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGF9KX1mdW5jdGlvbiBLZihhLGIpe3ZhciBjPWIsZD0wO2Rve3ZhciBlPWMubmV4dFNpYmxpbmc7aWYoYS5yZW1vdmVDaGlsZChjKSxlJiY4PT09ZS5ub2RlVHlwZSl7aWYoIi8kIj09PShjPWUuZGF0YSkpe2lmKDA9PT1kKXthLnJlbW92ZUNoaWxkKGUpLGJkKGIpO3JldHVybn1kLS19ZWxzZSIkIiE9PWMmJiIkPyIhPT1jJiYiJCEiIT09Y3x8ZCsrfWM9ZX13aGlsZShjKTtiZChiKX1mdW5jdGlvbiBMZihhKXtmb3IoO251bGwhPWE7YT1hLm5leHRTaWJsaW5nKXt2YXIgYj1hLm5vZGVUeXBlO2lmKDE9PT1ifHwzPT09YilicmVhaztpZig4PT09Yil7aWYoIiQiPT09KGI9YS5kYXRhKXx8IiQhIj09PWJ8fCIkPyI9PT1iKWJyZWFrO2lmKCIvJCI9PT1iKXJldHVybiBudWxsfX1yZXR1cm4gYX1mdW5jdGlvbiBNZihhKXthPWEucHJldmlvdXNTaWJsaW5nO2Zvcih2YXIgYj0wO2E7KXtpZig4PT09YS5ub2RlVHlwZSl7dmFyIGM9YS5kYXRhO2lmKCIkIj09PWN8fCIkISI9PT1jfHwiJD8iPT09Yyl7aWYoMD09PWIpcmV0dXJuIGE7Yi0tfWVsc2UiLyQiPT09YyYmYisrfWE9YS5wcmV2aW91c1NpYmxpbmd9cmV0dXJuIG51bGx9dmFyIE5mPU1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpLE9mPSJfX3JlYWN0RmliZXIkIitOZixQZj0iX19yZWFjdFByb3BzJCIrTmYsdWY9Il9fcmVhY3RDb250YWluZXIkIitOZixvZj0iX19yZWFjdEV2ZW50cyQiK05mLFFmPSJfX3JlYWN0TGlzdGVuZXJzJCIrTmYsUmY9Il9fcmVhY3RIYW5kbGVzJCIrTmY7ZnVuY3Rpb24gV2MoYSl7dmFyIGI9YVtPZl07aWYoYilyZXR1cm4gYjtmb3IodmFyIGM9YS5wYXJlbnROb2RlO2M7KXtpZihiPWNbdWZdfHxjW09mXSl7aWYoYz1iLmFsdGVybmF0ZSxudWxsIT09Yi5jaGlsZHx8bnVsbCE9PWMmJm51bGwhPT1jLmNoaWxkKWZvcihhPU1mKGEpO251bGwhPT1hOyl7aWYoYz1hW09mXSlyZXR1cm4gYzthPU1mKGEpfXJldHVybiBifWM9KGE9YykucGFyZW50Tm9kZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBDYihhKXtyZXR1cm4oYT1hW09mXXx8YVt1Zl0pJiYoNT09PWEudGFnfHw2PT09YS50YWd8fDEzPT09YS50YWd8fDM9PT1hLnRhZyk/YTpudWxsfWZ1bmN0aW9uIHVlKGEpe2lmKDU9PT1hLnRhZ3x8Nj09PWEudGFnKXJldHVybiBhLnN0YXRlTm9kZTt0aHJvdyBFcnJvcihwKDMzKSl9ZnVuY3Rpb24gRGIoYSl7cmV0dXJuIGFbUGZdfHxudWxsfXZhciBTZj1bXSxUZj0tMTtmdW5jdGlvbiBVZihhKXtyZXR1cm57Y3VycmVudDphfX1mdW5jdGlvbiBFKGEpezA+VGZ8fChhLmN1cnJlbnQ9U2ZbVGZdLFNmW1RmXT1udWxsLFRmLS0pfWZ1bmN0aW9uIEcoYSxiKXtTZlsrK1RmXT1hLmN1cnJlbnQsYS5jdXJyZW50PWJ9dmFyIFZmPXt9LEg9VWYoVmYpLFdmPVVmKCExKSxYZj1WZjtmdW5jdGlvbiBZZihhLGIpe3ZhciBjPWEudHlwZS5jb250ZXh0VHlwZXM7aWYoIWMpcmV0dXJuIFZmO3ZhciBkPWEuc3RhdGVOb2RlO2lmKGQmJmQuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD09PWIpcmV0dXJuIGQuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ7dmFyIGYsZT17fTtmb3IoZiBpbiBjKWVbZl09YltmXTtyZXR1cm4gZCYmKChhPWEuc3RhdGVOb2RlKS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PWIsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dD1lKSxlfWZ1bmN0aW9uIFpmKGEpe3JldHVybiBudWxsIT0oYT1hLmNoaWxkQ29udGV4dFR5cGVzKX1mdW5jdGlvbiAkZigpe0UoV2YpLEUoSCl9ZnVuY3Rpb24gYWcoYSxiLGMpe2lmKEguY3VycmVudCE9PVZmKXRocm93IEVycm9yKHAoMTY4KSk7RyhILGIpLEcoV2YsYyl9ZnVuY3Rpb24gYmcoYSxiLGMpe3ZhciBkPWEuc3RhdGVOb2RlO2lmKGI9Yi5jaGlsZENvbnRleHRUeXBlcywiZnVuY3Rpb24iIT10eXBlb2YgZC5nZXRDaGlsZENvbnRleHQpcmV0dXJuIGM7Zm9yKHZhciBlIGluIGQ9ZC5nZXRDaGlsZENvbnRleHQoKSlpZighKGUgaW4gYikpdGhyb3cgRXJyb3IocCgxMDgsZnVuY3Rpb24oYSl7dmFyIGI9YS50eXBlO3N3aXRjaChhLnRhZyl7Y2FzZSAyNDpyZXR1cm4iQ2FjaGUiO2Nhc2UgOTpyZXR1cm4oYi5kaXNwbGF5TmFtZXx8IkNvbnRleHQiKSsiLkNvbnN1bWVyIjtjYXNlIDEwOnJldHVybihiLl9jb250ZXh0LmRpc3BsYXlOYW1lfHwiQ29udGV4dCIpKyIuUHJvdmlkZXIiO2Nhc2UgMTg6cmV0dXJuIkRlaHlkcmF0ZWRGcmFnbWVudCI7Y2FzZSAxMTpyZXR1cm4gYT0oYT1iLnJlbmRlcikuZGlzcGxheU5hbWV8fGEubmFtZXx8IiIsYi5kaXNwbGF5TmFtZXx8KCIiIT09YT8iRm9yd2FyZFJlZigiK2ErIikiOiJGb3J3YXJkUmVmIik7Y2FzZSA3OnJldHVybiJGcmFnbWVudCI7Y2FzZSA1OnJldHVybiBiO2Nhc2UgNDpyZXR1cm4iUG9ydGFsIjtjYXNlIDM6cmV0dXJuIlJvb3QiO2Nhc2UgNjpyZXR1cm4iVGV4dCI7Y2FzZSAxNjpyZXR1cm4gZnVuY3Rpb24gUWEoYSl7aWYobnVsbD09YSlyZXR1cm4gbnVsbDtpZigiZnVuY3Rpb24iPT10eXBlb2YgYSlyZXR1cm4gYS5kaXNwbGF5TmFtZXx8YS5uYW1lfHxudWxsO2lmKCJzdHJpbmciPT10eXBlb2YgYSlyZXR1cm4gYTtzd2l0Y2goYSl7Y2FzZSB5YTpyZXR1cm4iRnJhZ21lbnQiO2Nhc2Ugd2E6cmV0dXJuIlBvcnRhbCI7Y2FzZSBBYTpyZXR1cm4iUHJvZmlsZXIiO2Nhc2UgemE6cmV0dXJuIlN0cmljdE1vZGUiO2Nhc2UgRWE6cmV0dXJuIlN1c3BlbnNlIjtjYXNlIEZhOnJldHVybiJTdXNwZW5zZUxpc3QifWlmKCJvYmplY3QiPT10eXBlb2YgYSlzd2l0Y2goYS4kJHR5cGVvZil7Y2FzZSBDYTpyZXR1cm4oYS5kaXNwbGF5TmFtZXx8IkNvbnRleHQiKSsiLkNvbnN1bWVyIjtjYXNlIEJhOnJldHVybihhLl9jb250ZXh0LmRpc3BsYXlOYW1lfHwiQ29udGV4dCIpKyIuUHJvdmlkZXIiO2Nhc2UgRGE6dmFyIGI9YS5yZW5kZXI7cmV0dXJuKGE9YS5kaXNwbGF5TmFtZSl8fChhPSIiIT09KGE9Yi5kaXNwbGF5TmFtZXx8Yi5uYW1lfHwiIik/IkZvcndhcmRSZWYoIithKyIpIjoiRm9yd2FyZFJlZiIpLGE7Y2FzZSBHYTpyZXR1cm4gbnVsbCE9PShiPWEuZGlzcGxheU5hbWV8fG51bGwpP2I6UWEoYS50eXBlKXx8Ik1lbW8iO2Nhc2UgSGE6Yj1hLl9wYXlsb2FkLGE9YS5faW5pdDt0cnl7cmV0dXJuIFFhKGEoYikpfWNhdGNoKGMpe319cmV0dXJuIG51bGx9KGIpO2Nhc2UgODpyZXR1cm4gYj09PXphPyJTdHJpY3RNb2RlIjoiTW9kZSI7Y2FzZSAyMjpyZXR1cm4iT2Zmc2NyZWVuIjtjYXNlIDEyOnJldHVybiJQcm9maWxlciI7Y2FzZSAyMTpyZXR1cm4iU2NvcGUiO2Nhc2UgMTM6cmV0dXJuIlN1c3BlbnNlIjtjYXNlIDE5OnJldHVybiJTdXNwZW5zZUxpc3QiO2Nhc2UgMjU6cmV0dXJuIlRyYWNpbmdNYXJrZXIiO2Nhc2UgMTpjYXNlIDA6Y2FzZSAxNzpjYXNlIDI6Y2FzZSAxNDpjYXNlIDE1OmlmKCJmdW5jdGlvbiI9PXR5cGVvZiBiKXJldHVybiBiLmRpc3BsYXlOYW1lfHxiLm5hbWV8fG51bGw7aWYoInN0cmluZyI9PXR5cGVvZiBiKXJldHVybiBifXJldHVybiBudWxsfShhKXx8IlVua25vd24iLGUpKTtyZXR1cm4gQSh7fSxjLGQpfWZ1bmN0aW9uIGNnKGEpe3JldHVybiBhPShhPWEuc3RhdGVOb2RlKSYmYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1lcmdlZENoaWxkQ29udGV4dHx8VmYsWGY9SC5jdXJyZW50LEcoSCxhKSxHKFdmLFdmLmN1cnJlbnQpLCEwfWZ1bmN0aW9uIGRnKGEsYixjKXt2YXIgZD1hLnN0YXRlTm9kZTtpZighZCl0aHJvdyBFcnJvcihwKDE2OSkpO2M/KGE9YmcoYSxiLFhmKSxkLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0PWEsRShXZiksRShIKSxHKEgsYSkpOkUoV2YpLEcoV2YsYyl9dmFyIGVnPW51bGwsZmc9ITEsZ2c9ITE7ZnVuY3Rpb24gamcoKXtpZighZ2cmJm51bGwhPT1lZyl7Z2c9ITA7dmFyIGE9MCxiPUM7dHJ5e3ZhciBjPWVnO2ZvcihDPTE7YTxjLmxlbmd0aDthKyspe3ZhciBkPWNbYV07ZG8gZD1kKCEwKTt3aGlsZShudWxsIT09ZCl9ZWc9bnVsbCxmZz0hMX1jYXRjaChlKXt0aHJvdyBudWxsIT09ZWcmJihlZz1lZy5zbGljZShhKzEpKSxhYyhmYyxqZyksZX1maW5hbGx5e0M9YixnZz0hMX19cmV0dXJuIG51bGx9dmFyIGtnPVtdLGxnPTAsbWc9bnVsbCxuZz0wLG9nPVtdLHBnPTAscWc9bnVsbCxyZz0xLHNnPSIiO2Z1bmN0aW9uIHRnKGEsYil7a2dbbGcrK109bmcsa2dbbGcrK109bWcsbWc9YSxuZz1ifWZ1bmN0aW9uIHVnKGEsYixjKXtvZ1twZysrXT1yZyxvZ1twZysrXT1zZyxvZ1twZysrXT1xZyxxZz1hO3ZhciBkPXJnO2E9c2c7dmFyIGU9MzItb2MoZCktMTtkJj1+KDE8PGUpLGMrPTE7dmFyIGY9MzItb2MoYikrZTtpZigzMDxmKXt2YXIgZz1lLWUlNTtmPShkJigxPDxnKS0xKS50b1N0cmluZygzMiksZD4+PWcsZS09ZyxyZz0xPDwzMi1vYyhiKStlfGM8PGV8ZCxzZz1mK2F9ZWxzZSByZz0xPDxmfGM8PGV8ZCxzZz1hfWZ1bmN0aW9uIHZnKGEpe251bGwhPT1hLnJldHVybiYmKHRnKGEsMSksdWcoYSwxLDApKX1mdW5jdGlvbiB3ZyhhKXtmb3IoO2E9PT1tZzspbWc9a2dbLS1sZ10sa2dbbGddPW51bGwsbmc9a2dbLS1sZ10sa2dbbGddPW51bGw7Zm9yKDthPT09cWc7KXFnPW9nWy0tcGddLG9nW3BnXT1udWxsLHNnPW9nWy0tcGddLG9nW3BnXT1udWxsLHJnPW9nWy0tcGddLG9nW3BnXT1udWxsfXZhciB4Zz1udWxsLHlnPW51bGwsST0hMSx6Zz1udWxsO2Z1bmN0aW9uIEFnKGEsYil7dmFyIGM9QmcoNSxudWxsLG51bGwsMCk7Yy5lbGVtZW50VHlwZT0iREVMRVRFRCIsYy5zdGF0ZU5vZGU9YixjLnJldHVybj1hLG51bGw9PT0oYj1hLmRlbGV0aW9ucyk/KGEuZGVsZXRpb25zPVtjXSxhLmZsYWdzfD0xNik6Yi5wdXNoKGMpfWZ1bmN0aW9uIENnKGEsYil7c3dpdGNoKGEudGFnKXtjYXNlIDU6dmFyIGM9YS50eXBlO3JldHVybiBudWxsIT09KGI9MSE9PWIubm9kZVR5cGV8fGMudG9Mb3dlckNhc2UoKSE9PWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKT9udWxsOmIpJiYoYS5zdGF0ZU5vZGU9Yix4Zz1hLHlnPUxmKGIuZmlyc3RDaGlsZCksITApO2Nhc2UgNjpyZXR1cm4gbnVsbCE9PShiPSIiPT09YS5wZW5kaW5nUHJvcHN8fDMhPT1iLm5vZGVUeXBlP251bGw6YikmJihhLnN0YXRlTm9kZT1iLHhnPWEseWc9bnVsbCwhMCk7Y2FzZSAxMzpyZXR1cm4gbnVsbCE9PShiPTghPT1iLm5vZGVUeXBlP251bGw6YikmJihjPW51bGwhPT1xZz97aWQ6cmcsb3ZlcmZsb3c6c2d9Om51bGwsYS5tZW1vaXplZFN0YXRlPXtkZWh5ZHJhdGVkOmIsdHJlZUNvbnRleHQ6YyxyZXRyeUxhbmU6MTA3Mzc0MTgyNH0sKGM9QmcoMTgsbnVsbCxudWxsLDApKS5zdGF0ZU5vZGU9YixjLnJldHVybj1hLGEuY2hpbGQ9Yyx4Zz1hLHlnPW51bGwsITApO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIERnKGEpe3JldHVybiAwIT0oMSZhLm1vZGUpJiYwPT0oMTI4JmEuZmxhZ3MpfWZ1bmN0aW9uIEVnKGEpe2lmKEkpe3ZhciBiPXlnO2lmKGIpe3ZhciBjPWI7aWYoIUNnKGEsYikpe2lmKERnKGEpKXRocm93IEVycm9yKHAoNDE4KSk7Yj1MZihjLm5leHRTaWJsaW5nKTt2YXIgZD14ZztiJiZDZyhhLGIpP0FnKGQsYyk6KGEuZmxhZ3M9LTQwOTcmYS5mbGFnc3wyLEk9ITEseGc9YSl9fWVsc2V7aWYoRGcoYSkpdGhyb3cgRXJyb3IocCg0MTgpKTthLmZsYWdzPS00MDk3JmEuZmxhZ3N8MixJPSExLHhnPWF9fX1mdW5jdGlvbiBGZyhhKXtmb3IoYT1hLnJldHVybjtudWxsIT09YSYmNSE9PWEudGFnJiYzIT09YS50YWcmJjEzIT09YS50YWc7KWE9YS5yZXR1cm47eGc9YX1mdW5jdGlvbiBHZyhhKXtpZihhIT09eGcpcmV0dXJuITE7aWYoIUkpcmV0dXJuIEZnKGEpLEk9ITAsITE7aWYoKGI9MyE9PWEudGFnKSYmIShiPTUhPT1hLnRhZykmJihiPSJoZWFkIiE9PShiPWEudHlwZSkmJiJib2R5IiE9PWImJiFFZihhLnR5cGUsYS5tZW1vaXplZFByb3BzKSksYiYmKGI9eWcpKXtpZihEZyhhKSl0aHJvdyBIZygpLEVycm9yKHAoNDE4KSk7Zm9yKDtiOylBZyhhLGIpLGI9TGYoYi5uZXh0U2libGluZyl9aWYoRmcoYSksMTM9PT1hLnRhZyl7aWYoIShhPW51bGwhPT0oYT1hLm1lbW9pemVkU3RhdGUpP2EuZGVoeWRyYXRlZDpudWxsKSl0aHJvdyBFcnJvcihwKDMxNykpO2E6e2ZvcihiPTAsYT1hLm5leHRTaWJsaW5nO2E7KXtpZig4PT09YS5ub2RlVHlwZSl7dmFyIGIsYz1hLmRhdGE7aWYoIi8kIj09PWMpe2lmKDA9PT1iKXt5Zz1MZihhLm5leHRTaWJsaW5nKTticmVhayBhfWItLX1lbHNlIiQiIT09YyYmIiQhIiE9PWMmJiIkPyIhPT1jfHxiKyt9YT1hLm5leHRTaWJsaW5nfXlnPW51bGx9fWVsc2UgeWc9eGc/TGYoYS5zdGF0ZU5vZGUubmV4dFNpYmxpbmcpOm51bGw7cmV0dXJuITB9ZnVuY3Rpb24gSGcoKXtmb3IodmFyIGE9eWc7YTspYT1MZihhLm5leHRTaWJsaW5nKX1mdW5jdGlvbiBJZygpe3lnPXhnPW51bGwsST0hMX1mdW5jdGlvbiBKZyhhKXtudWxsPT09emc/emc9W2FdOnpnLnB1c2goYSl9dmFyIEtnPXVhLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnO2Z1bmN0aW9uIExnKGEsYil7aWYoYSYmYS5kZWZhdWx0UHJvcHMpZm9yKHZhciBjIGluIGI9QSh7fSxiKSxhPWEuZGVmYXVsdFByb3BzKXZvaWQgMD09PWJbY10mJihiW2NdPWFbY10pO3JldHVybiBifXZhciBNZz1VZihudWxsKSxOZz1udWxsLE9nPW51bGwsUGc9bnVsbDtmdW5jdGlvbiBRZygpe1BnPU9nPU5nPW51bGx9ZnVuY3Rpb24gUmcoYSl7dmFyIGI9TWcuY3VycmVudDtFKE1nKSxhLl9jdXJyZW50VmFsdWU9Yn1mdW5jdGlvbiBTZyhhLGIsYyl7Zm9yKDtudWxsIT09YTspe3ZhciBkPWEuYWx0ZXJuYXRlO2lmKChhLmNoaWxkTGFuZXMmYikhPT1iPyhhLmNoaWxkTGFuZXN8PWIsbnVsbCE9PWQmJihkLmNoaWxkTGFuZXN8PWIpKTpudWxsIT09ZCYmKGQuY2hpbGRMYW5lcyZiKSE9PWImJihkLmNoaWxkTGFuZXN8PWIpLGE9PT1jKWJyZWFrO2E9YS5yZXR1cm59fWZ1bmN0aW9uIFRnKGEsYil7Tmc9YSxQZz1PZz1udWxsLG51bGwhPT0oYT1hLmRlcGVuZGVuY2llcykmJm51bGwhPT1hLmZpcnN0Q29udGV4dCYmKDAhPShhLmxhbmVzJmIpJiYoVWc9ITApLGEuZmlyc3RDb250ZXh0PW51bGwpfWZ1bmN0aW9uIFZnKGEpe3ZhciBiPWEuX2N1cnJlbnRWYWx1ZTtpZihQZyE9PWEpe2lmKGE9e2NvbnRleHQ6YSxtZW1vaXplZFZhbHVlOmIsbmV4dDpudWxsfSxudWxsPT09T2cpe2lmKG51bGw9PT1OZyl0aHJvdyBFcnJvcihwKDMwOCkpO09nPWEsTmcuZGVwZW5kZW5jaWVzPXtsYW5lczowLGZpcnN0Q29udGV4dDphfX1lbHNlIE9nPU9nLm5leHQ9YX1yZXR1cm4gYn12YXIgV2c9bnVsbDtmdW5jdGlvbiBYZyhhKXtudWxsPT09V2c/V2c9W2FdOldnLnB1c2goYSl9ZnVuY3Rpb24gWWcoYSxiLGMsZCl7dmFyIGU9Yi5pbnRlcmxlYXZlZDtyZXR1cm4gbnVsbD09PWU/KGMubmV4dD1jLFhnKGIpKTooYy5uZXh0PWUubmV4dCxlLm5leHQ9YyksYi5pbnRlcmxlYXZlZD1jLFpnKGEsZCl9ZnVuY3Rpb24gWmcoYSxiKXthLmxhbmVzfD1iO3ZhciBjPWEuYWx0ZXJuYXRlO2ZvcihudWxsIT09YyYmKGMubGFuZXN8PWIpLGM9YSxhPWEucmV0dXJuO251bGwhPT1hOylhLmNoaWxkTGFuZXN8PWIsbnVsbCE9PShjPWEuYWx0ZXJuYXRlKSYmKGMuY2hpbGRMYW5lc3w9YiksYz1hLGE9YS5yZXR1cm47cmV0dXJuIDM9PT1jLnRhZz9jLnN0YXRlTm9kZTpudWxsfXZhciAkZz0hMTtmdW5jdGlvbiBhaChhKXthLnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6YS5tZW1vaXplZFN0YXRlLGZpcnN0QmFzZVVwZGF0ZTpudWxsLGxhc3RCYXNlVXBkYXRlOm51bGwsc2hhcmVkOntwZW5kaW5nOm51bGwsaW50ZXJsZWF2ZWQ6bnVsbCxsYW5lczowfSxlZmZlY3RzOm51bGx9fWZ1bmN0aW9uIGJoKGEsYil7YT1hLnVwZGF0ZVF1ZXVlLGIudXBkYXRlUXVldWU9PT1hJiYoYi51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOmEuYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTphLmZpcnN0QmFzZVVwZGF0ZSxsYXN0QmFzZVVwZGF0ZTphLmxhc3RCYXNlVXBkYXRlLHNoYXJlZDphLnNoYXJlZCxlZmZlY3RzOmEuZWZmZWN0c30pfWZ1bmN0aW9uIGNoKGEsYil7cmV0dXJue2V2ZW50VGltZTphLGxhbmU6Yix0YWc6MCxwYXlsb2FkOm51bGwsY2FsbGJhY2s6bnVsbCxuZXh0Om51bGx9fWZ1bmN0aW9uIGRoKGEsYixjKXt2YXIgZD1hLnVwZGF0ZVF1ZXVlO2lmKG51bGw9PT1kKXJldHVybiBudWxsO2lmKGQ9ZC5zaGFyZWQsMCE9KDImSykpe3ZhciBlPWQucGVuZGluZztyZXR1cm4gbnVsbD09PWU/Yi5uZXh0PWI6KGIubmV4dD1lLm5leHQsZS5uZXh0PWIpLGQucGVuZGluZz1iLFpnKGEsYyl9cmV0dXJuIG51bGw9PT0oZT1kLmludGVybGVhdmVkKT8oYi5uZXh0PWIsWGcoZCkpOihiLm5leHQ9ZS5uZXh0LGUubmV4dD1iKSxkLmludGVybGVhdmVkPWIsWmcoYSxjKX1mdW5jdGlvbiBlaChhLGIsYyl7aWYobnVsbCE9PShiPWIudXBkYXRlUXVldWUpJiYoYj1iLnNoYXJlZCwwIT0oNDE5NDI0MCZjKSkpe3ZhciBkPWIubGFuZXM7ZCY9YS5wZW5kaW5nTGFuZXMsY3w9ZCxiLmxhbmVzPWMsQ2MoYSxjKX19ZnVuY3Rpb24gZmgoYSxiKXt2YXIgYz1hLnVwZGF0ZVF1ZXVlLGQ9YS5hbHRlcm5hdGU7aWYobnVsbCE9PWQmJmM9PT0oZD1kLnVwZGF0ZVF1ZXVlKSl7dmFyIGU9bnVsbCxmPW51bGw7aWYobnVsbCE9PShjPWMuZmlyc3RCYXNlVXBkYXRlKSl7ZG97dmFyIGc9e2V2ZW50VGltZTpjLmV2ZW50VGltZSxsYW5lOmMubGFuZSx0YWc6Yy50YWcscGF5bG9hZDpjLnBheWxvYWQsY2FsbGJhY2s6Yy5jYWxsYmFjayxuZXh0Om51bGx9O251bGw9PT1mP2U9Zj1nOmY9Zi5uZXh0PWcsYz1jLm5leHR9d2hpbGUobnVsbCE9PWMpO251bGw9PT1mP2U9Zj1iOmY9Zi5uZXh0PWJ9ZWxzZSBlPWY9YjtjPXtiYXNlU3RhdGU6ZC5iYXNlU3RhdGUsZmlyc3RCYXNlVXBkYXRlOmUsbGFzdEJhc2VVcGRhdGU6ZixzaGFyZWQ6ZC5zaGFyZWQsZWZmZWN0czpkLmVmZmVjdHN9LGEudXBkYXRlUXVldWU9YztyZXR1cm59bnVsbD09PShhPWMubGFzdEJhc2VVcGRhdGUpP2MuZmlyc3RCYXNlVXBkYXRlPWI6YS5uZXh0PWIsYy5sYXN0QmFzZVVwZGF0ZT1ifWZ1bmN0aW9uIGdoKGEsYixjLGQpe3ZhciBlPWEudXBkYXRlUXVldWU7JGc9ITE7dmFyIGY9ZS5maXJzdEJhc2VVcGRhdGUsZz1lLmxhc3RCYXNlVXBkYXRlLGg9ZS5zaGFyZWQucGVuZGluZztpZihudWxsIT09aCl7ZS5zaGFyZWQucGVuZGluZz1udWxsO3ZhciBrPWgsbD1rLm5leHQ7ay5uZXh0PW51bGwsbnVsbD09PWc/Zj1sOmcubmV4dD1sLGc9azt2YXIgbT1hLmFsdGVybmF0ZTtudWxsIT09bSYmKGg9KG09bS51cGRhdGVRdWV1ZSkubGFzdEJhc2VVcGRhdGUpIT09ZyYmKG51bGw9PT1oP20uZmlyc3RCYXNlVXBkYXRlPWw6aC5uZXh0PWwsbS5sYXN0QmFzZVVwZGF0ZT1rKX1pZihudWxsIT09Zil7dmFyIHE9ZS5iYXNlU3RhdGU7Zm9yKGc9MCxtPWw9az1udWxsLGg9Zjs7KXt2YXIgcj1oLmxhbmUseT1oLmV2ZW50VGltZTtpZigoZCZyKT09PXIpe251bGwhPT1tJiYobT1tLm5leHQ9e2V2ZW50VGltZTp5LGxhbmU6MCx0YWc6aC50YWcscGF5bG9hZDpoLnBheWxvYWQsY2FsbGJhY2s6aC5jYWxsYmFjayxuZXh0Om51bGx9KTthOnt2YXIgbj1hLHQ9aDtzd2l0Y2gocj1iLHk9Yyx0LnRhZyl7Y2FzZSAxOmlmKCJmdW5jdGlvbiI9PXR5cGVvZihuPXQucGF5bG9hZCkpe3E9bi5jYWxsKHkscSxyKTticmVhayBhfXE9bjticmVhayBhO2Nhc2UgMzpuLmZsYWdzPS02NTUzNyZuLmZsYWdzfDEyODtjYXNlIDA6aWYobnVsbD09KHI9ImZ1bmN0aW9uIj09dHlwZW9mKG49dC5wYXlsb2FkKT9uLmNhbGwoeSxxLHIpOm4pKWJyZWFrIGE7cT1BKHt9LHEscik7YnJlYWsgYTtjYXNlIDI6JGc9ITB9fW51bGwhPT1oLmNhbGxiYWNrJiYwIT09aC5sYW5lJiYoYS5mbGFnc3w9NjQsbnVsbD09PShyPWUuZWZmZWN0cyk/ZS5lZmZlY3RzPVtoXTpyLnB1c2goaCkpfWVsc2UgeT17ZXZlbnRUaW1lOnksbGFuZTpyLHRhZzpoLnRhZyxwYXlsb2FkOmgucGF5bG9hZCxjYWxsYmFjazpoLmNhbGxiYWNrLG5leHQ6bnVsbH0sbnVsbD09PW0/KGw9bT15LGs9cSk6bT1tLm5leHQ9eSxnfD1yO2lmKG51bGw9PT0oaD1oLm5leHQpKXtpZihudWxsPT09KGg9ZS5zaGFyZWQucGVuZGluZykpYnJlYWs7aD0ocj1oKS5uZXh0LHIubmV4dD1udWxsLGUubGFzdEJhc2VVcGRhdGU9cixlLnNoYXJlZC5wZW5kaW5nPW51bGx9fWlmKG51bGw9PT1tJiYoaz1xKSxlLmJhc2VTdGF0ZT1rLGUuZmlyc3RCYXNlVXBkYXRlPWwsZS5sYXN0QmFzZVVwZGF0ZT1tLG51bGwhPT0oYj1lLnNoYXJlZC5pbnRlcmxlYXZlZCkpe2U9YjtkbyBnfD1lLmxhbmUsZT1lLm5leHQ7d2hpbGUoZSE9PWIpfWVsc2UgbnVsbD09PWYmJihlLnNoYXJlZC5sYW5lcz0wKTtoaHw9ZyxhLmxhbmVzPWcsYS5tZW1vaXplZFN0YXRlPXF9fWZ1bmN0aW9uIGloKGEsYixjKXtpZihhPWIuZWZmZWN0cyxiLmVmZmVjdHM9bnVsbCxudWxsIT09YSlmb3IoYj0wO2I8YS5sZW5ndGg7YisrKXt2YXIgZD1hW2JdLGU9ZC5jYWxsYmFjaztpZihudWxsIT09ZSl7aWYoZC5jYWxsYmFjaz1udWxsLGQ9YywiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBFcnJvcihwKDE5MSxlKSk7ZS5jYWxsKGQpfX19dmFyIGpoPShuZXcgYWEuQ29tcG9uZW50KS5yZWZzO2Z1bmN0aW9uIGtoKGEsYixjLGQpe2I9YS5tZW1vaXplZFN0YXRlLGM9bnVsbD09KGM9YyhkLGIpKT9iOkEoe30sYixjKSxhLm1lbW9pemVkU3RhdGU9YywwPT09YS5sYW5lcyYmKGEudXBkYXRlUXVldWUuYmFzZVN0YXRlPWMpfXZhciBuaD17aXNNb3VudGVkOmZ1bmN0aW9uKGEpe3JldHVybiEhKGE9YS5fcmVhY3RJbnRlcm5hbHMpJiZWYihhKT09PWF9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbihhLGIsYyl7YT1hLl9yZWFjdEludGVybmFsczt2YXIgZD1MKCksZT1saChhKSxmPWNoKGQsZSk7Zi5wYXlsb2FkPWIsbnVsbCE9YyYmKGYuY2FsbGJhY2s9YyksbnVsbCE9PShiPWRoKGEsZixlKSkmJihtaChiLGEsZSxkKSxlaChiLGEsZSkpfSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKGEsYixjKXthPWEuX3JlYWN0SW50ZXJuYWxzO3ZhciBkPUwoKSxlPWxoKGEpLGY9Y2goZCxlKTtmLnRhZz0xLGYucGF5bG9hZD1iLG51bGwhPWMmJihmLmNhbGxiYWNrPWMpLG51bGwhPT0oYj1kaChhLGYsZSkpJiYobWgoYixhLGUsZCksZWgoYixhLGUpKX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKGEsYil7YT1hLl9yZWFjdEludGVybmFsczt2YXIgYz1MKCksZD1saChhKSxlPWNoKGMsZCk7ZS50YWc9MixudWxsIT1iJiYoZS5jYWxsYmFjaz1iKSxudWxsIT09KGI9ZGgoYSxlLGQpKSYmKG1oKGIsYSxkLGMpLGVoKGIsYSxkKSl9fTtmdW5jdGlvbiBvaChhLGIsYyxkLGUsZixnKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YoYT1hLnN0YXRlTm9kZSkuc2hvdWxkQ29tcG9uZW50VXBkYXRlP2Euc2hvdWxkQ29tcG9uZW50VXBkYXRlKGQsZixnKTohYi5wcm90b3R5cGV8fCFiLnByb3RvdHlwZS5pc1B1cmVSZWFjdENvbXBvbmVudHx8IUllKGMsZCl8fCFJZShlLGYpfWZ1bmN0aW9uIHBoKGEsYixjKXt2YXIgZD0hMSxlPVZmLGY9Yi5jb250ZXh0VHlwZTtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGYmJm51bGwhPT1mP2Y9VmcoZik6KGU9WmYoYik/WGY6SC5jdXJyZW50LGY9KGQ9bnVsbCE9KGQ9Yi5jb250ZXh0VHlwZXMpKT9ZZihhLGUpOlZmKSxiPW5ldyBiKGMsZiksYS5tZW1vaXplZFN0YXRlPW51bGwhPT1iLnN0YXRlJiZ2b2lkIDAhPT1iLnN0YXRlP2Iuc3RhdGU6bnVsbCxiLnVwZGF0ZXI9bmgsYS5zdGF0ZU5vZGU9YixiLl9yZWFjdEludGVybmFscz1hLGQmJigoYT1hLnN0YXRlTm9kZSkuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD1lLGEuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ9ZiksYn1mdW5jdGlvbiBxaChhLGIsYyxkKXthPWIuc3RhdGUsImZ1bmN0aW9uIj09dHlwZW9mIGIuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmYi5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKGMsZCksImZ1bmN0aW9uIj09dHlwZW9mIGIuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJmIuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoYyxkKSxiLnN0YXRlIT09YSYmbmguZW5xdWV1ZVJlcGxhY2VTdGF0ZShiLGIuc3RhdGUsbnVsbCl9ZnVuY3Rpb24gcmgoYSxiLGMsZCl7dmFyIGU9YS5zdGF0ZU5vZGU7ZS5wcm9wcz1jLGUuc3RhdGU9YS5tZW1vaXplZFN0YXRlLGUucmVmcz1qaCxhaChhKTt2YXIgZj1iLmNvbnRleHRUeXBlOyJvYmplY3QiPT10eXBlb2YgZiYmbnVsbCE9PWY/ZS5jb250ZXh0PVZnKGYpOihmPVpmKGIpP1hmOkguY3VycmVudCxlLmNvbnRleHQ9WWYoYSxmKSksZS5zdGF0ZT1hLm1lbW9pemVkU3RhdGUsImZ1bmN0aW9uIj09dHlwZW9mKGY9Yi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMpJiYoa2goYSxiLGYsYyksZS5zdGF0ZT1hLm1lbW9pemVkU3RhdGUpLCJmdW5jdGlvbiI9PXR5cGVvZiBiLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc3x8ImZ1bmN0aW9uIj09dHlwZW9mIGUuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fCJmdW5jdGlvbiIhPXR5cGVvZiBlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJiJmdW5jdGlvbiIhPXR5cGVvZiBlLmNvbXBvbmVudFdpbGxNb3VudHx8KGI9ZS5zdGF0ZSwiZnVuY3Rpb24iPT10eXBlb2YgZS5jb21wb25lbnRXaWxsTW91bnQmJmUuY29tcG9uZW50V2lsbE1vdW50KCksImZ1bmN0aW9uIj09dHlwZW9mIGUuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCksYiE9PWUuc3RhdGUmJm5oLmVucXVldWVSZXBsYWNlU3RhdGUoZSxlLnN0YXRlLG51bGwpLGdoKGEsYyxlLGQpLGUuc3RhdGU9YS5tZW1vaXplZFN0YXRlKSwiZnVuY3Rpb24iPT10eXBlb2YgZS5jb21wb25lbnREaWRNb3VudCYmKGEuZmxhZ3N8PTQxOTQzMDgpfWZ1bmN0aW9uIHNoKGEsYixjKXtpZihudWxsIT09KGE9Yy5yZWYpJiYiZnVuY3Rpb24iIT10eXBlb2YgYSYmIm9iamVjdCIhPXR5cGVvZiBhKXtpZihjLl9vd25lcil7aWYoYz1jLl9vd25lcil7aWYoMSE9PWMudGFnKXRocm93IEVycm9yKHAoMzA5KSk7dmFyIGQ9Yy5zdGF0ZU5vZGV9aWYoIWQpdGhyb3cgRXJyb3IocCgxNDcsYSkpO3ZhciBlPWQsZj0iIithO3JldHVybiBudWxsIT09YiYmbnVsbCE9PWIucmVmJiYiZnVuY3Rpb24iPT10eXBlb2YgYi5yZWYmJmIucmVmLl9zdHJpbmdSZWY9PT1mP2IucmVmOigoYj1mdW5jdGlvbihhKXt2YXIgYj1lLnJlZnM7Yj09PWpoJiYoYj1lLnJlZnM9e30pLG51bGw9PT1hP2RlbGV0ZSBiW2ZdOmJbZl09YX0pLl9zdHJpbmdSZWY9ZixiKX1pZigic3RyaW5nIiE9dHlwZW9mIGEpdGhyb3cgRXJyb3IocCgyODQpKTtpZighYy5fb3duZXIpdGhyb3cgRXJyb3IocCgyOTAsYSkpfXJldHVybiBhfWZ1bmN0aW9uIHRoKGEsYil7dGhyb3cgRXJyb3IocCgzMSwiW29iamVjdCBPYmplY3RdIj09PShhPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChiKSk/Im9iamVjdCB3aXRoIGtleXMgeyIrT2JqZWN0LmtleXMoYikuam9pbigiLCAiKSsifSI6YSkpfWZ1bmN0aW9uIHVoKGEpe3JldHVybigwLGEuX2luaXQpKGEuX3BheWxvYWQpfWZ1bmN0aW9uIHZoKGEpe2Z1bmN0aW9uIGIoYixjKXtpZihhKXt2YXIgZD1iLmRlbGV0aW9ucztudWxsPT09ZD8oYi5kZWxldGlvbnM9W2NdLGIuZmxhZ3N8PTE2KTpkLnB1c2goYyl9fWZ1bmN0aW9uIGMoYyxkKXtpZighYSlyZXR1cm4gbnVsbDtmb3IoO251bGwhPT1kOyliKGMsZCksZD1kLnNpYmxpbmc7cmV0dXJuIG51bGx9ZnVuY3Rpb24gZChhLGIpe2ZvcihhPW5ldyBNYXA7bnVsbCE9PWI7KW51bGwhPT1iLmtleT9hLnNldChiLmtleSxiKTphLnNldChiLmluZGV4LGIpLGI9Yi5zaWJsaW5nO3JldHVybiBhfWZ1bmN0aW9uIGUoYSxiKXtyZXR1cm4oYT13aChhLGIpKS5pbmRleD0wLGEuc2libGluZz1udWxsLGF9ZnVuY3Rpb24gZihiLGMsZCl7cmV0dXJuKGIuaW5kZXg9ZCxhKT9udWxsIT09KGQ9Yi5hbHRlcm5hdGUpPyhkPWQuaW5kZXgpPGM/KGIuZmxhZ3N8PTIsYyk6ZDooYi5mbGFnc3w9MixjKTooYi5mbGFnc3w9MTA0ODU3NixjKX1mdW5jdGlvbiBnKGIpe3JldHVybiBhJiZudWxsPT09Yi5hbHRlcm5hdGUmJihiLmZsYWdzfD0yKSxifWZ1bmN0aW9uIGgoYSxiLGMsZCl7cmV0dXJuIG51bGw9PT1ifHw2IT09Yi50YWc/KChiPXhoKGMsYS5tb2RlLGQpKS5yZXR1cm49YSxiKTooKGI9ZShiLGMpKS5yZXR1cm49YSxiKX1mdW5jdGlvbiBrKGEsYixjLGQpe3ZhciBmPWMudHlwZTtyZXR1cm4gZj09PXlhP20oYSxiLGMucHJvcHMuY2hpbGRyZW4sZCxjLmtleSk6bnVsbCE9PWImJihiLmVsZW1lbnRUeXBlPT09Znx8Im9iamVjdCI9PXR5cGVvZiBmJiZudWxsIT09ZiYmZi4kJHR5cGVvZj09PUhhJiZ1aChmKT09PWIudHlwZSk/KChkPWUoYixjLnByb3BzKSkucmVmPXNoKGEsYixjKSxkLnJldHVybj1hLGQpOigoZD15aChjLnR5cGUsYy5rZXksYy5wcm9wcyxudWxsLGEubW9kZSxkKSkucmVmPXNoKGEsYixjKSxkLnJldHVybj1hLGQpfWZ1bmN0aW9uIGwoYSxiLGMsZCl7cmV0dXJuIG51bGw9PT1ifHw0IT09Yi50YWd8fGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8hPT1jLmNvbnRhaW5lckluZm98fGIuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uIT09Yy5pbXBsZW1lbnRhdGlvbj8oKGI9emgoYyxhLm1vZGUsZCkpLnJldHVybj1hLGIpOigoYj1lKGIsYy5jaGlsZHJlbnx8W10pKS5yZXR1cm49YSxiKX1mdW5jdGlvbiBtKGEsYixjLGQsZil7cmV0dXJuIG51bGw9PT1ifHw3IT09Yi50YWc/KChiPUFoKGMsYS5tb2RlLGQsZikpLnJldHVybj1hLGIpOigoYj1lKGIsYykpLnJldHVybj1hLGIpfWZ1bmN0aW9uIHEoYSxiLGMpe2lmKCJzdHJpbmciPT10eXBlb2YgYiYmIiIhPT1ifHwibnVtYmVyIj09dHlwZW9mIGIpcmV0dXJuKGI9eGgoIiIrYixhLm1vZGUsYykpLnJldHVybj1hLGI7aWYoIm9iamVjdCI9PXR5cGVvZiBiJiZudWxsIT09Yil7c3dpdGNoKGIuJCR0eXBlb2Ype2Nhc2UgdmE6cmV0dXJuKGM9eWgoYi50eXBlLGIua2V5LGIucHJvcHMsbnVsbCxhLm1vZGUsYykpLnJlZj1zaChhLG51bGwsYiksYy5yZXR1cm49YSxjO2Nhc2Ugd2E6cmV0dXJuKGI9emgoYixhLm1vZGUsYykpLnJldHVybj1hLGI7Y2FzZSBIYTp2YXIgZD1iLl9pbml0O3JldHVybiBxKGEsZChiLl9wYXlsb2FkKSxjKX1pZihlYihiKXx8S2EoYikpcmV0dXJuKGI9QWgoYixhLm1vZGUsYyxudWxsKSkucmV0dXJuPWEsYjt0aChhLGIpfXJldHVybiBudWxsfWZ1bmN0aW9uIHIoYSxiLGMsZCl7dmFyIGU9bnVsbCE9PWI/Yi5rZXk6bnVsbDtpZigic3RyaW5nIj09dHlwZW9mIGMmJiIiIT09Y3x8Im51bWJlciI9PXR5cGVvZiBjKXJldHVybiBudWxsIT09ZT9udWxsOmgoYSxiLCIiK2MsZCk7aWYoIm9iamVjdCI9PXR5cGVvZiBjJiZudWxsIT09Yyl7c3dpdGNoKGMuJCR0eXBlb2Ype2Nhc2UgdmE6cmV0dXJuIGMua2V5PT09ZT9rKGEsYixjLGQpOm51bGw7Y2FzZSB3YTpyZXR1cm4gYy5rZXk9PT1lP2woYSxiLGMsZCk6bnVsbDtjYXNlIEhhOnJldHVybiByKGEsYiwoZT1jLl9pbml0KShjLl9wYXlsb2FkKSxkKX1pZihlYihjKXx8S2EoYykpcmV0dXJuIG51bGwhPT1lP251bGw6bShhLGIsYyxkLG51bGwpO3RoKGEsYyl9cmV0dXJuIG51bGx9ZnVuY3Rpb24geShhLGIsYyxkLGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZCYmIiIhPT1kfHwibnVtYmVyIj09dHlwZW9mIGQpcmV0dXJuIGgoYixhPWEuZ2V0KGMpfHxudWxsLCIiK2QsZSk7aWYoIm9iamVjdCI9PXR5cGVvZiBkJiZudWxsIT09ZCl7c3dpdGNoKGQuJCR0eXBlb2Ype2Nhc2UgdmE6cmV0dXJuIGsoYixhPWEuZ2V0KG51bGw9PT1kLmtleT9jOmQua2V5KXx8bnVsbCxkLGUpO2Nhc2Ugd2E6cmV0dXJuIGwoYixhPWEuZ2V0KG51bGw9PT1kLmtleT9jOmQua2V5KXx8bnVsbCxkLGUpO2Nhc2UgSGE6cmV0dXJuIHkoYSxiLGMsKDAsZC5faW5pdCkoZC5fcGF5bG9hZCksZSl9aWYoZWIoZCl8fEthKGQpKXJldHVybiBtKGIsYT1hLmdldChjKXx8bnVsbCxkLGUsbnVsbCk7dGgoYixkKX1yZXR1cm4gbnVsbH1yZXR1cm4gZnVuY3Rpb24gSihhMSxkMSxmMSxoKXtpZigib2JqZWN0Ij09dHlwZW9mIGYxJiZudWxsIT09ZjEmJmYxLnR5cGU9PT15YSYmbnVsbD09PWYxLmtleSYmKGYxPWYxLnByb3BzLmNoaWxkcmVuKSwib2JqZWN0Ij09dHlwZW9mIGYxJiZudWxsIT09ZjEpe3N3aXRjaChmMS4kJHR5cGVvZil7Y2FzZSB2YTphOntmb3IodmFyIGs9ZjEua2V5LGw9ZDE7bnVsbCE9PWw7KXtpZihsLmtleT09PWspe2lmKChrPWYxLnR5cGUpPT09eWEpe2lmKDc9PT1sLnRhZyl7YyhhMSxsLnNpYmxpbmcpLChkMT1lKGwsZjEucHJvcHMuY2hpbGRyZW4pKS5yZXR1cm49YTEsYTE9ZDE7YnJlYWsgYX19ZWxzZSBpZihsLmVsZW1lbnRUeXBlPT09a3x8Im9iamVjdCI9PXR5cGVvZiBrJiZudWxsIT09ayYmay4kJHR5cGVvZj09PUhhJiZ1aChrKT09PWwudHlwZSl7YyhhMSxsLnNpYmxpbmcpLChkMT1lKGwsZjEucHJvcHMpKS5yZWY9c2goYTEsbCxmMSksZDEucmV0dXJuPWExLGExPWQxO2JyZWFrIGF9YyhhMSxsKTticmVha31iKGExLGwpLGw9bC5zaWJsaW5nfWYxLnR5cGU9PT15YT8oKGQxPUFoKGYxLnByb3BzLmNoaWxkcmVuLGExLm1vZGUsaCxmMS5rZXkpKS5yZXR1cm49YTEsYTE9ZDEpOigoaD15aChmMS50eXBlLGYxLmtleSxmMS5wcm9wcyxudWxsLGExLm1vZGUsaCkpLnJlZj1zaChhMSxkMSxmMSksaC5yZXR1cm49YTEsYTE9aCl9cmV0dXJuIGcoYTEpO2Nhc2Ugd2E6YTp7Zm9yKGw9ZjEua2V5O251bGwhPT1kMTspe2lmKGQxLmtleT09PWwpe2lmKDQ9PT1kMS50YWcmJmQxLnN0YXRlTm9kZS5jb250YWluZXJJbmZvPT09ZjEuY29udGFpbmVySW5mbyYmZDEuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uPT09ZjEuaW1wbGVtZW50YXRpb24pe2MoYTEsZDEuc2libGluZyksKGQxPWUoZDEsZjEuY2hpbGRyZW58fFtdKSkucmV0dXJuPWExLGExPWQxO2JyZWFrIGF9YyhhMSxkMSk7YnJlYWt9YihhMSxkMSksZDE9ZDEuc2libGluZ30oZDE9emgoZjEsYTEubW9kZSxoKSkucmV0dXJuPWExLGExPWQxfXJldHVybiBnKGExKTtjYXNlIEhhOnJldHVybiBKKGExLGQxLChsPWYxLl9pbml0KShmMS5fcGF5bG9hZCksaCl9aWYoZWIoZjEpKXJldHVybiBmdW5jdGlvbihlLGcsaCxrKXtmb3IodmFyIGw9bnVsbCxtPW51bGwsdT1nLHc9Zz0wLHg9bnVsbDtudWxsIT09dSYmdzxoLmxlbmd0aDt3Kyspe3UuaW5kZXg+dz8oeD11LHU9bnVsbCk6eD11LnNpYmxpbmc7dmFyIG49cihlLHUsaFt3XSxrKTtpZihudWxsPT09bil7bnVsbD09PXUmJih1PXgpO2JyZWFrfWEmJnUmJm51bGw9PT1uLmFsdGVybmF0ZSYmYihlLHUpLGc9ZihuLGcsdyksbnVsbD09PW0/bD1uOm0uc2libGluZz1uLG09bix1PXh9aWYodz09PWgubGVuZ3RoKXJldHVybiBjKGUsdSksSSYmdGcoZSx3KSxsO2lmKG51bGw9PT11KXtmb3IoO3c8aC5sZW5ndGg7dysrKW51bGwhPT0odT1xKGUsaFt3XSxrKSkmJihnPWYodSxnLHcpLG51bGw9PT1tP2w9dTptLnNpYmxpbmc9dSxtPXUpO3JldHVybiBJJiZ0ZyhlLHcpLGx9Zm9yKHU9ZChlLHUpO3c8aC5sZW5ndGg7dysrKW51bGwhPT0oeD15KHUsZSx3LGhbd10saykpJiYoYSYmbnVsbCE9PXguYWx0ZXJuYXRlJiZ1LmRlbGV0ZShudWxsPT09eC5rZXk/dzp4LmtleSksZz1mKHgsZyx3KSxudWxsPT09bT9sPXg6bS5zaWJsaW5nPXgsbT14KTtyZXR1cm4gYSYmdS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBiKGUsYSl9KSxJJiZ0ZyhlLHcpLGx9KGExLGQxLGYxLGgpO2lmKEthKGYxKSlyZXR1cm4gZnVuY3Rpb24oZSxnLGgsayl7dmFyIGw9S2EoaCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGwpdGhyb3cgRXJyb3IocCgxNTApKTtpZihudWxsPT0oaD1sLmNhbGwoaCkpKXRocm93IEVycm9yKHAoMTUxKSk7Zm9yKHZhciB1PWw9bnVsbCxtPWcsdz1nPTAseD1udWxsLG49aC5uZXh0KCk7bnVsbCE9PW0mJiFuLmRvbmU7dysrLG49aC5uZXh0KCkpe20uaW5kZXg+dz8oeD1tLG09bnVsbCk6eD1tLnNpYmxpbmc7dmFyIHQ9cihlLG0sbi52YWx1ZSxrKTtpZihudWxsPT09dCl7bnVsbD09PW0mJihtPXgpO2JyZWFrfWEmJm0mJm51bGw9PT10LmFsdGVybmF0ZSYmYihlLG0pLGc9Zih0LGcsdyksbnVsbD09PXU/bD10OnUuc2libGluZz10LHU9dCxtPXh9aWYobi5kb25lKXJldHVybiBjKGUsbSksSSYmdGcoZSx3KSxsO2lmKG51bGw9PT1tKXtmb3IoOyFuLmRvbmU7dysrLG49aC5uZXh0KCkpbnVsbCE9PShuPXEoZSxuLnZhbHVlLGspKSYmKGc9ZihuLGcsdyksbnVsbD09PXU/bD1uOnUuc2libGluZz1uLHU9bik7cmV0dXJuIEkmJnRnKGUsdyksbH1mb3IobT1kKGUsbSk7IW4uZG9uZTt3Kyssbj1oLm5leHQoKSludWxsIT09KG49eShtLGUsdyxuLnZhbHVlLGspKSYmKGEmJm51bGwhPT1uLmFsdGVybmF0ZSYmbS5kZWxldGUobnVsbD09PW4ua2V5P3c6bi5rZXkpLGc9ZihuLGcsdyksbnVsbD09PXU/bD1uOnUuc2libGluZz1uLHU9bik7cmV0dXJuIGEmJm0uZm9yRWFjaChmdW5jdGlvbihhKXtyZXR1cm4gYihlLGEpfSksSSYmdGcoZSx3KSxsfShhMSxkMSxmMSxoKTt0aChhMSxmMSl9cmV0dXJuInN0cmluZyI9PXR5cGVvZiBmMSYmIiIhPT1mMXx8Im51bWJlciI9PXR5cGVvZiBmMT8oZjE9IiIrZjEsbnVsbCE9PWQxJiY2PT09ZDEudGFnPyhjKGExLGQxLnNpYmxpbmcpLChkMT1lKGQxLGYxKSkucmV0dXJuPWExLGExPWQxKTooYyhhMSxkMSksKGQxPXhoKGYxLGExLm1vZGUsaCkpLnJldHVybj1hMSxhMT1kMSksZyhhMSkpOmMoYTEsZDEpfX12YXIgQmg9dmgoITApLENoPXZoKCExKSxEaD17fSxFaD1VZihEaCksRmg9VWYoRGgpLEdoPVVmKERoKTtmdW5jdGlvbiBIaChhKXtpZihhPT09RGgpdGhyb3cgRXJyb3IocCgxNzQpKTtyZXR1cm4gYX1mdW5jdGlvbiBJaChhLGIpe3N3aXRjaChHKEdoLGIpLEcoRmgsYSksRyhFaCxEaCksYT1iLm5vZGVUeXBlKXtjYXNlIDk6Y2FzZSAxMTpiPShiPWIuZG9jdW1lbnRFbGVtZW50KT9iLm5hbWVzcGFjZVVSSTpsYihudWxsLCIiKTticmVhaztkZWZhdWx0OmI9KGE9OD09PWE/Yi5wYXJlbnROb2RlOmIpLm5hbWVzcGFjZVVSSXx8bnVsbCxhPWEudGFnTmFtZSxiPWxiKGIsYSl9RShFaCksRyhFaCxiKX1mdW5jdGlvbiBKaCgpe0UoRWgpLEUoRmgpLEUoR2gpfWZ1bmN0aW9uIEtoKGEpe0hoKEdoLmN1cnJlbnQpO3ZhciBiPUhoKEVoLmN1cnJlbnQpLGM9bGIoYixhLnR5cGUpO2IhPT1jJiYoRyhGaCxhKSxHKEVoLGMpKX1mdW5jdGlvbiBMaChhKXtGaC5jdXJyZW50PT09YSYmKEUoRWgpLEUoRmgpKX12YXIgTT1VZigwKTtmdW5jdGlvbiBNaChhKXtmb3IodmFyIGI9YTtudWxsIT09Yjspe2lmKDEzPT09Yi50YWcpe3ZhciBjPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09YyYmKG51bGw9PT0oYz1jLmRlaHlkcmF0ZWQpfHwiJD8iPT09Yy5kYXRhfHwiJCEiPT09Yy5kYXRhKSlyZXR1cm4gYn1lbHNlIGlmKDE5PT09Yi50YWcmJnZvaWQgMCE9PWIubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcil7aWYoMCE9KDEyOCZiLmZsYWdzKSlyZXR1cm4gYn1lbHNlIGlmKG51bGwhPT1iLmNoaWxkKXtiLmNoaWxkLnJldHVybj1iLGI9Yi5jaGlsZDtjb250aW51ZX1pZihiPT09YSlicmVhaztmb3IoO251bGw9PT1iLnNpYmxpbmc7KXtpZihudWxsPT09Yi5yZXR1cm58fGIucmV0dXJuPT09YSlyZXR1cm4gbnVsbDtiPWIucmV0dXJufWIuc2libGluZy5yZXR1cm49Yi5yZXR1cm4sYj1iLnNpYmxpbmd9cmV0dXJuIG51bGx9dmFyIE5oPVtdO2Z1bmN0aW9uIE9oKCl7Zm9yKHZhciBhPTA7YTxOaC5sZW5ndGg7YSsrKU5oW2FdLl93b3JrSW5Qcm9ncmVzc1ZlcnNpb25QcmltYXJ5PW51bGw7TmgubGVuZ3RoPTB9dmFyIFBoPXVhLlJlYWN0Q3VycmVudERpc3BhdGNoZXIsUWg9dWEuUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsUmg9MCxOPW51bGwsTz1udWxsLFA9bnVsbCxTaD0hMSxUaD0hMSxVaD0wLFZoPTA7ZnVuY3Rpb24gUSgpe3Rocm93IEVycm9yKHAoMzIxKSl9ZnVuY3Rpb24gV2goYSxiKXtpZihudWxsPT09YilyZXR1cm4hMTtmb3IodmFyIGM9MDtjPGIubGVuZ3RoJiZjPGEubGVuZ3RoO2MrKylpZighSGUoYVtjXSxiW2NdKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBYaChhLGIsYyxkLGUsZil7aWYoUmg9ZixOPWIsYi5tZW1vaXplZFN0YXRlPW51bGwsYi51cGRhdGVRdWV1ZT1udWxsLGIubGFuZXM9MCxQaC5jdXJyZW50PW51bGw9PT1hfHxudWxsPT09YS5tZW1vaXplZFN0YXRlP1loOlpoLGE9YyhkLGUpLFRoKXtmPTA7ZG97aWYoVGg9ITEsVWg9MCwyNTw9Zil0aHJvdyBFcnJvcihwKDMwMSkpO2YrPTEsUD1PPW51bGwsYi51cGRhdGVRdWV1ZT1udWxsLFBoLmN1cnJlbnQ9JGgsYT1jKGQsZSl9d2hpbGUoVGgpfWlmKFBoLmN1cnJlbnQ9YWksYj1udWxsIT09TyYmbnVsbCE9PU8ubmV4dCxSaD0wLFA9Tz1OPW51bGwsU2g9ITEsYil0aHJvdyBFcnJvcihwKDMwMCkpO3JldHVybiBhfWZ1bmN0aW9uIGJpKCl7dmFyIGE9MCE9PVVoO3JldHVybiBVaD0wLGF9ZnVuY3Rpb24gY2koKXt2YXIgYT17bWVtb2l6ZWRTdGF0ZTpudWxsLGJhc2VTdGF0ZTpudWxsLGJhc2VRdWV1ZTpudWxsLHF1ZXVlOm51bGwsbmV4dDpudWxsfTtyZXR1cm4gbnVsbD09PVA/Ti5tZW1vaXplZFN0YXRlPVA9YTpQPVAubmV4dD1hLFB9ZnVuY3Rpb24gZGkoKXtpZihudWxsPT09Tyl7dmFyIGE9Ti5hbHRlcm5hdGU7YT1udWxsIT09YT9hLm1lbW9pemVkU3RhdGU6bnVsbH1lbHNlIGE9Ty5uZXh0O3ZhciBiPW51bGw9PT1QP04ubWVtb2l6ZWRTdGF0ZTpQLm5leHQ7aWYobnVsbCE9PWIpUD1iLE89YTtlbHNle2lmKG51bGw9PT1hKXRocm93IEVycm9yKHAoMzEwKSk7YT17bWVtb2l6ZWRTdGF0ZTooTz1hKS5tZW1vaXplZFN0YXRlLGJhc2VTdGF0ZTpPLmJhc2VTdGF0ZSxiYXNlUXVldWU6Ty5iYXNlUXVldWUscXVldWU6Ty5xdWV1ZSxuZXh0Om51bGx9LG51bGw9PT1QP04ubWVtb2l6ZWRTdGF0ZT1QPWE6UD1QLm5leHQ9YX1yZXR1cm4gUH1mdW5jdGlvbiBlaShhLGIpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBiP2IoYSk6Yn1mdW5jdGlvbiBmaShhKXt2YXIgYj1kaSgpLGM9Yi5xdWV1ZTtpZihudWxsPT09Yyl0aHJvdyBFcnJvcihwKDMxMSkpO2MubGFzdFJlbmRlcmVkUmVkdWNlcj1hO3ZhciBkPU8sZT1kLmJhc2VRdWV1ZSxmPWMucGVuZGluZztpZihudWxsIT09Zil7aWYobnVsbCE9PWUpe3ZhciBnPWUubmV4dDtlLm5leHQ9Zi5uZXh0LGYubmV4dD1nfWQuYmFzZVF1ZXVlPWU9ZixjLnBlbmRpbmc9bnVsbH1pZihudWxsIT09ZSl7Zj1lLm5leHQsZD1kLmJhc2VTdGF0ZTt2YXIgaD1nPW51bGwsaz1udWxsLGw9Zjtkb3t2YXIgbT1sLmxhbmU7aWYoKFJoJm0pPT09bSludWxsIT09ayYmKGs9ay5uZXh0PXtsYW5lOjAsYWN0aW9uOmwuYWN0aW9uLGhhc0VhZ2VyU3RhdGU6bC5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6bC5lYWdlclN0YXRlLG5leHQ6bnVsbH0pLGQ9bC5oYXNFYWdlclN0YXRlP2wuZWFnZXJTdGF0ZTphKGQsbC5hY3Rpb24pO2Vsc2V7dmFyIHE9e2xhbmU6bSxhY3Rpb246bC5hY3Rpb24saGFzRWFnZXJTdGF0ZTpsLmhhc0VhZ2VyU3RhdGUsZWFnZXJTdGF0ZTpsLmVhZ2VyU3RhdGUsbmV4dDpudWxsfTtudWxsPT09az8oaD1rPXEsZz1kKTprPWsubmV4dD1xLE4ubGFuZXN8PW0saGh8PW19bD1sLm5leHR9d2hpbGUobnVsbCE9PWwmJmwhPT1mKTtudWxsPT09az9nPWQ6ay5uZXh0PWgsSGUoZCxiLm1lbW9pemVkU3RhdGUpfHwoVWc9ITApLGIubWVtb2l6ZWRTdGF0ZT1kLGIuYmFzZVN0YXRlPWcsYi5iYXNlUXVldWU9ayxjLmxhc3RSZW5kZXJlZFN0YXRlPWR9aWYobnVsbCE9PShhPWMuaW50ZXJsZWF2ZWQpKXtlPWE7ZG8gZj1lLmxhbmUsTi5sYW5lc3w9ZixoaHw9ZixlPWUubmV4dDt3aGlsZShlIT09YSl9ZWxzZSBudWxsPT09ZSYmKGMubGFuZXM9MCk7cmV0dXJuW2IubWVtb2l6ZWRTdGF0ZSxjLmRpc3BhdGNoXX1mdW5jdGlvbiBnaShhKXt2YXIgYj1kaSgpLGM9Yi5xdWV1ZTtpZihudWxsPT09Yyl0aHJvdyBFcnJvcihwKDMxMSkpO2MubGFzdFJlbmRlcmVkUmVkdWNlcj1hO3ZhciBkPWMuZGlzcGF0Y2gsZT1jLnBlbmRpbmcsZj1iLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWUpe2MucGVuZGluZz1udWxsO3ZhciBnPWU9ZS5uZXh0O2RvIGY9YShmLGcuYWN0aW9uKSxnPWcubmV4dDt3aGlsZShnIT09ZSk7SGUoZixiLm1lbW9pemVkU3RhdGUpfHwoVWc9ITApLGIubWVtb2l6ZWRTdGF0ZT1mLG51bGw9PT1iLmJhc2VRdWV1ZSYmKGIuYmFzZVN0YXRlPWYpLGMubGFzdFJlbmRlcmVkU3RhdGU9Zn1yZXR1cm5bZixkXX1mdW5jdGlvbiBoaSgpe31mdW5jdGlvbiBpaShhLGIpe3ZhciBjPU4sZD1kaSgpLGU9YigpLGY9IUhlKGQubWVtb2l6ZWRTdGF0ZSxlKTtpZihmJiYoZC5tZW1vaXplZFN0YXRlPWUsVWc9ITApLGQ9ZC5xdWV1ZSxqaShraS5iaW5kKG51bGwsYyxkLGEpLFthXSksZC5nZXRTbmFwc2hvdCE9PWJ8fGZ8fG51bGwhPT1QJiYxJlAubWVtb2l6ZWRTdGF0ZS50YWcpe2lmKGMuZmxhZ3N8PTIwNDgsbGkoOSxtaS5iaW5kKG51bGwsYyxkLGUsYiksdm9pZCAwLG51bGwpLG51bGw9PT1SKXRocm93IEVycm9yKHAoMzQ5KSk7MCE9KDMwJlJoKXx8bmkoYyxiLGUpfXJldHVybiBlfWZ1bmN0aW9uIG5pKGEsYixjKXthLmZsYWdzfD0xNjM4NCxhPXtnZXRTbmFwc2hvdDpiLHZhbHVlOmN9LG51bGw9PT0oYj1OLnVwZGF0ZVF1ZXVlKT8oYj17bGFzdEVmZmVjdDpudWxsLHN0b3JlczpudWxsfSxOLnVwZGF0ZVF1ZXVlPWIsYi5zdG9yZXM9W2FdKTpudWxsPT09KGM9Yi5zdG9yZXMpP2Iuc3RvcmVzPVthXTpjLnB1c2goYSl9ZnVuY3Rpb24gbWkoYSxiLGMsZCl7Yi52YWx1ZT1jLGIuZ2V0U25hcHNob3Q9ZCxvaShiKSYmcGkoYSl9ZnVuY3Rpb24ga2koYSxiLGMpe3JldHVybiBjKGZ1bmN0aW9uKCl7b2koYikmJnBpKGEpfSl9ZnVuY3Rpb24gb2koYSl7dmFyIGI9YS5nZXRTbmFwc2hvdDthPWEudmFsdWU7dHJ5e3ZhciBjPWIoKTtyZXR1cm4hSGUoYSxjKX1jYXRjaChkKXtyZXR1cm4hMH19ZnVuY3Rpb24gcGkoYSl7dmFyIGI9WmcoYSwxKTtudWxsIT09YiYmbWgoYixhLDEsLTEpfWZ1bmN0aW9uIHFpKGEpe3ZhciBiPWNpKCk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGEmJihhPWEoKSksYi5tZW1vaXplZFN0YXRlPWIuYmFzZVN0YXRlPWEsYT17cGVuZGluZzpudWxsLGludGVybGVhdmVkOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6ZWksbGFzdFJlbmRlcmVkU3RhdGU6YX0sYi5xdWV1ZT1hLGE9YS5kaXNwYXRjaD1yaS5iaW5kKG51bGwsTixhKSxbYi5tZW1vaXplZFN0YXRlLGFdfWZ1bmN0aW9uIGxpKGEsYixjLGQpe3JldHVybiBhPXt0YWc6YSxjcmVhdGU6YixkZXN0cm95OmMsZGVwczpkLG5leHQ6bnVsbH0sbnVsbD09PShiPU4udXBkYXRlUXVldWUpPyhiPXtsYXN0RWZmZWN0Om51bGwsc3RvcmVzOm51bGx9LE4udXBkYXRlUXVldWU9YixiLmxhc3RFZmZlY3Q9YS5uZXh0PWEpOm51bGw9PT0oYz1iLmxhc3RFZmZlY3QpP2IubGFzdEVmZmVjdD1hLm5leHQ9YTooZD1jLm5leHQsYy5uZXh0PWEsYS5uZXh0PWQsYi5sYXN0RWZmZWN0PWEpLGF9ZnVuY3Rpb24gc2koKXtyZXR1cm4gZGkoKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIHRpKGEsYixjLGQpe3ZhciBlPWNpKCk7Ti5mbGFnc3w9YSxlLm1lbW9pemVkU3RhdGU9bGkoMXxiLGMsdm9pZCAwLHZvaWQgMD09PWQ/bnVsbDpkKX1mdW5jdGlvbiB1aShhLGIsYyxkKXt2YXIgZT1kaSgpO2Q9dm9pZCAwPT09ZD9udWxsOmQ7dmFyIGY9dm9pZCAwO2lmKG51bGwhPT1PKXt2YXIgZz1PLm1lbW9pemVkU3RhdGU7aWYoZj1nLmRlc3Ryb3ksbnVsbCE9PWQmJldoKGQsZy5kZXBzKSl7ZS5tZW1vaXplZFN0YXRlPWxpKGIsYyxmLGQpO3JldHVybn19Ti5mbGFnc3w9YSxlLm1lbW9pemVkU3RhdGU9bGkoMXxiLGMsZixkKX1mdW5jdGlvbiB2aShhLGIpe3JldHVybiB0aSg4MzkwNjU2LDgsYSxiKX1mdW5jdGlvbiBqaShhLGIpe3JldHVybiB1aSgyMDQ4LDgsYSxiKX1mdW5jdGlvbiB3aShhLGIpe3JldHVybiB1aSg0LDIsYSxiKX1mdW5jdGlvbiB4aShhLGIpe3JldHVybiB1aSg0LDQsYSxiKX1mdW5jdGlvbiB5aShhLGIpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBiPyhiKGE9YSgpKSxmdW5jdGlvbigpe2IobnVsbCl9KTpudWxsIT1iPyhhPWEoKSxiLmN1cnJlbnQ9YSxmdW5jdGlvbigpe2IuY3VycmVudD1udWxsfSk6dm9pZCAwfWZ1bmN0aW9uIHppKGEsYixjKXtyZXR1cm4gYz1udWxsIT1jP2MuY29uY2F0KFthXSk6bnVsbCx1aSg0LDQseWkuYmluZChudWxsLGIsYSksYyl9ZnVuY3Rpb24gQWkoKXt9ZnVuY3Rpb24gQmkoYSxiKXt2YXIgYz1kaSgpO2I9dm9pZCAwPT09Yj9udWxsOmI7dmFyIGQ9Yy5tZW1vaXplZFN0YXRlO3JldHVybiBudWxsIT09ZCYmbnVsbCE9PWImJldoKGIsZFsxXSk/ZFswXTooYy5tZW1vaXplZFN0YXRlPVthLGJdLGEpfWZ1bmN0aW9uIENpKGEsYil7dmFyIGM9ZGkoKTtiPXZvaWQgMD09PWI/bnVsbDpiO3ZhciBkPWMubWVtb2l6ZWRTdGF0ZTtyZXR1cm4gbnVsbCE9PWQmJm51bGwhPT1iJiZXaChiLGRbMV0pP2RbMF06KGE9YSgpLGMubWVtb2l6ZWRTdGF0ZT1bYSxiXSxhKX1mdW5jdGlvbiBEaShhLGIsYyl7cmV0dXJuIDA9PSgyMSZSaCk/KGEuYmFzZVN0YXRlJiYoYS5iYXNlU3RhdGU9ITEsVWc9ITApLGEubWVtb2l6ZWRTdGF0ZT1jKTooSGUoYyxiKXx8KGM9eWMoKSxOLmxhbmVzfD1jLGhofD1jLGEuYmFzZVN0YXRlPSEwKSxiKX1mdW5jdGlvbiBFaShhLGIpe3ZhciBjPUM7Qz0wIT09YyYmND5jP2M6NCxhKCEwKTt2YXIgZD1RaC50cmFuc2l0aW9uO1FoLnRyYW5zaXRpb249e307dHJ5e2EoITEpLGIoKX1maW5hbGx5e0M9YyxRaC50cmFuc2l0aW9uPWR9fWZ1bmN0aW9uIEZpKCl7cmV0dXJuIGRpKCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiBHaShhLGIsYyl7dmFyIGQ9bGgoYSk7Yz17bGFuZTpkLGFjdGlvbjpjLGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH0sSGkoYSk/SWkoYixjKTpudWxsIT09KGM9WWcoYSxiLGMsZCkpJiYobWgoYyxhLGQsTCgpKSxKaShjLGIsZCkpfWZ1bmN0aW9uIHJpKGEsYixjKXt2YXIgZD1saChhKSxlPXtsYW5lOmQsYWN0aW9uOmMsaGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfTtpZihIaShhKSlJaShiLGUpO2Vsc2V7dmFyIGY9YS5hbHRlcm5hdGU7aWYoMD09PWEubGFuZXMmJihudWxsPT09Znx8MD09PWYubGFuZXMpJiZudWxsIT09KGY9Yi5sYXN0UmVuZGVyZWRSZWR1Y2VyKSl0cnl7dmFyIGc9Yi5sYXN0UmVuZGVyZWRTdGF0ZSxoPWYoZyxjKTtpZihlLmhhc0VhZ2VyU3RhdGU9ITAsZS5lYWdlclN0YXRlPWgsSGUoaCxnKSl7dmFyIGs9Yi5pbnRlcmxlYXZlZDtudWxsPT09az8oZS5uZXh0PWUsWGcoYikpOihlLm5leHQ9ay5uZXh0LGsubmV4dD1lKSxiLmludGVybGVhdmVkPWU7cmV0dXJufX1jYXRjaChsKXt9ZmluYWxseXt9bnVsbCE9PShjPVlnKGEsYixlLGQpKSYmKG1oKGMsYSxkLGU9TCgpKSxKaShjLGIsZCkpfX1mdW5jdGlvbiBIaShhKXt2YXIgYj1hLmFsdGVybmF0ZTtyZXR1cm4gYT09PU58fG51bGwhPT1iJiZiPT09Tn1mdW5jdGlvbiBJaShhLGIpe1RoPVNoPSEwO3ZhciBjPWEucGVuZGluZztudWxsPT09Yz9iLm5leHQ9YjooYi5uZXh0PWMubmV4dCxjLm5leHQ9YiksYS5wZW5kaW5nPWJ9ZnVuY3Rpb24gSmkoYSxiLGMpe2lmKDAhPSg0MTk0MjQwJmMpKXt2YXIgZD1iLmxhbmVzO2QmPWEucGVuZGluZ0xhbmVzLGN8PWQsYi5sYW5lcz1jLENjKGEsYyl9fXZhciBhaT17cmVhZENvbnRleHQ6VmcsdXNlQ2FsbGJhY2s6USx1c2VDb250ZXh0OlEsdXNlRWZmZWN0OlEsdXNlSW1wZXJhdGl2ZUhhbmRsZTpRLHVzZUluc2VydGlvbkVmZmVjdDpRLHVzZUxheW91dEVmZmVjdDpRLHVzZU1lbW86USx1c2VSZWR1Y2VyOlEsdXNlUmVmOlEsdXNlU3RhdGU6USx1c2VEZWJ1Z1ZhbHVlOlEsdXNlRGVmZXJyZWRWYWx1ZTpRLHVzZVRyYW5zaXRpb246USx1c2VNdXRhYmxlU291cmNlOlEsdXNlU3luY0V4dGVybmFsU3RvcmU6USx1c2VJZDpRLHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0sWWg9e3JlYWRDb250ZXh0OlZnLHVzZUNhbGxiYWNrOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGNpKCkubWVtb2l6ZWRTdGF0ZT1bYSx2b2lkIDA9PT1iP251bGw6Yl0sYX0sdXNlQ29udGV4dDpWZyx1c2VFZmZlY3Q6dmksdXNlSW1wZXJhdGl2ZUhhbmRsZTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGM9bnVsbCE9Yz9jLmNvbmNhdChbYV0pOm51bGwsdGkoNDE5NDMwOCw0LHlpLmJpbmQobnVsbCxiLGEpLGMpfSx1c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGkoNDE5NDMwOCw0LGEsYil9LHVzZUluc2VydGlvbkVmZmVjdDpmdW5jdGlvbihhLGIpe3JldHVybiB0aSg0LDIsYSxiKX0sdXNlTWVtbzpmdW5jdGlvbihhLGIpe3ZhciBjPWNpKCk7cmV0dXJuIGI9dm9pZCAwPT09Yj9udWxsOmIsYT1hKCksYy5tZW1vaXplZFN0YXRlPVthLGJdLGF9LHVzZVJlZHVjZXI6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWNpKCk7cmV0dXJuIGI9dm9pZCAwIT09Yz9jKGIpOmIsZC5tZW1vaXplZFN0YXRlPWQuYmFzZVN0YXRlPWIsYT17cGVuZGluZzpudWxsLGludGVybGVhdmVkOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6YSxsYXN0UmVuZGVyZWRTdGF0ZTpifSxkLnF1ZXVlPWEsYT1hLmRpc3BhdGNoPUdpLmJpbmQobnVsbCxOLGEpLFtkLm1lbW9pemVkU3RhdGUsYV19LHVzZVJlZjpmdW5jdGlvbihhKXtyZXR1cm4gYT17Y3VycmVudDphfSxjaSgpLm1lbW9pemVkU3RhdGU9YX0sdXNlU3RhdGU6cWksdXNlRGVidWdWYWx1ZTpBaSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGEpe3JldHVybiBjaSgpLm1lbW9pemVkU3RhdGU9YX0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciBhPXFpKCExKSxiPWFbMF07cmV0dXJuIGE9RWkuYmluZChudWxsLGFbMV0pLGNpKCkubWVtb2l6ZWRTdGF0ZT1hLFtiLGFdfSx1c2VNdXRhYmxlU291cmNlOmZ1bmN0aW9uKCl7fSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9TixlPWNpKCk7aWYoSSl7aWYodm9pZCAwPT09Yyl0aHJvdyBFcnJvcihwKDQwNykpO2M9YygpfWVsc2V7aWYoYz1iKCksbnVsbD09PVIpdGhyb3cgRXJyb3IocCgzNDkpKTswIT0oMzAmUmgpfHxuaShkLGIsYyl9ZS5tZW1vaXplZFN0YXRlPWM7dmFyIGY9e3ZhbHVlOmMsZ2V0U25hcHNob3Q6Yn07cmV0dXJuIGUucXVldWU9Zix2aShraS5iaW5kKG51bGwsZCxmLGEpLFthXSksZC5mbGFnc3w9MjA0OCxsaSg5LG1pLmJpbmQobnVsbCxkLGYsYyxiKSx2b2lkIDAsbnVsbCksY30sdXNlSWQ6ZnVuY3Rpb24oKXt2YXIgYT1jaSgpLGI9Ui5pZGVudGlmaWVyUHJlZml4O2lmKEkpe3ZhciBjPXNnLGQ9cmc7Yj0iOiIrYisiUiIrKGM9KGQmfigxPDwzMi1vYyhkKS0xKSkudG9TdHJpbmcoMzIpK2MpLDA8KGM9VWgrKykmJihiKz0iSCIrYy50b1N0cmluZygzMikpLGIrPSI6In1lbHNlIGI9IjoiK2IrInIiKyhjPVZoKyspLnRvU3RyaW5nKDMyKSsiOiI7cmV0dXJuIGEubWVtb2l6ZWRTdGF0ZT1ifSx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9LFpoPXtyZWFkQ29udGV4dDpWZyx1c2VDYWxsYmFjazpCaSx1c2VDb250ZXh0OlZnLHVzZUVmZmVjdDpqaSx1c2VJbXBlcmF0aXZlSGFuZGxlOnppLHVzZUluc2VydGlvbkVmZmVjdDp3aSx1c2VMYXlvdXRFZmZlY3Q6eGksdXNlTWVtbzpDaSx1c2VSZWR1Y2VyOmZpLHVzZVJlZjpzaSx1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBmaShlaSl9LHVzZURlYnVnVmFsdWU6QWksdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihhKXtyZXR1cm4gRGkoZGkoKSxPLm1lbW9pemVkU3RhdGUsYSl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm5bZmkoZWkpWzBdLGRpKCkubWVtb2l6ZWRTdGF0ZV19LHVzZU11dGFibGVTb3VyY2U6aGksdXNlU3luY0V4dGVybmFsU3RvcmU6aWksdXNlSWQ6RmksdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfSwkaD17cmVhZENvbnRleHQ6VmcsdXNlQ2FsbGJhY2s6QmksdXNlQ29udGV4dDpWZyx1c2VFZmZlY3Q6amksdXNlSW1wZXJhdGl2ZUhhbmRsZTp6aSx1c2VJbnNlcnRpb25FZmZlY3Q6d2ksdXNlTGF5b3V0RWZmZWN0OnhpLHVzZU1lbW86Q2ksdXNlUmVkdWNlcjpnaSx1c2VSZWY6c2ksdXNlU3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gZ2koZWkpfSx1c2VEZWJ1Z1ZhbHVlOkFpLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oYSl7dmFyIGI9ZGkoKTtyZXR1cm4gbnVsbD09PU8/Yi5tZW1vaXplZFN0YXRlPWE6RGkoYixPLm1lbW9pemVkU3RhdGUsYSl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm5bZ2koZWkpWzBdLGRpKCkubWVtb2l6ZWRTdGF0ZV19LHVzZU11dGFibGVTb3VyY2U6aGksdXNlU3luY0V4dGVybmFsU3RvcmU6aWksdXNlSWQ6RmksdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfTtmdW5jdGlvbiBLaShhLGIpe3RyeXt2YXIgYz0iIixkPWI7ZG8gYys9ZnVuY3Rpb24oYSl7c3dpdGNoKGEudGFnKXtjYXNlIDU6cmV0dXJuIE1hKGEudHlwZSk7Y2FzZSAxNjpyZXR1cm4gTWEoIkxhenkiKTtjYXNlIDEzOnJldHVybiBNYSgiU3VzcGVuc2UiKTtjYXNlIDE5OnJldHVybiBNYSgiU3VzcGVuc2VMaXN0Iik7Y2FzZSAwOmNhc2UgMjpjYXNlIDE1OnJldHVybiBhPU9hKGEudHlwZSwhMSk7Y2FzZSAxMTpyZXR1cm4gYT1PYShhLnR5cGUucmVuZGVyLCExKTtjYXNlIDE6cmV0dXJuIGE9T2EoYS50eXBlLCEwKTtkZWZhdWx0OnJldHVybiIifX0oZCksZD1kLnJldHVybjt3aGlsZShkKTt2YXIgZT1jfWNhdGNoKGYpe2U9IlxuRXJyb3IgZ2VuZXJhdGluZyBzdGFjazogIitmLm1lc3NhZ2UrIlxuIitmLnN0YWNrfXJldHVybnt2YWx1ZTphLHNvdXJjZTpiLHN0YWNrOmUsZGlnZXN0Om51bGx9fWZ1bmN0aW9uIExpKGEsYixjKXtyZXR1cm57dmFsdWU6YSxzb3VyY2U6bnVsbCxzdGFjazpudWxsIT1jP2M6bnVsbCxkaWdlc3Q6bnVsbCE9Yj9iOm51bGx9fWZ1bmN0aW9uIE1pKGEsYil7dHJ5e2NvbnNvbGUuZXJyb3IoYi52YWx1ZSl9Y2F0Y2goYyl7c2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGN9KX19dmFyIE5pPSJmdW5jdGlvbiI9PXR5cGVvZiBXZWFrTWFwP1dlYWtNYXA6TWFwO2Z1bmN0aW9uIE9pKGEsYixjKXsoYz1jaCgtMSxjKSkudGFnPTMsYy5wYXlsb2FkPXtlbGVtZW50Om51bGx9O3ZhciBkPWIudmFsdWU7cmV0dXJuIGMuY2FsbGJhY2s9ZnVuY3Rpb24oKXtQaXx8KFBpPSEwLFFpPWQpLE1pKGEsYil9LGN9ZnVuY3Rpb24gUmkoYSxiLGMpeyhjPWNoKC0xLGMpKS50YWc9Mzt2YXIgZD1hLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBkKXt2YXIgZT1iLnZhbHVlO2MucGF5bG9hZD1mdW5jdGlvbigpe3JldHVybiBkKGUpfSxjLmNhbGxiYWNrPWZ1bmN0aW9uKCl7TWkoYSxiKX19dmFyIGY9YS5zdGF0ZU5vZGU7cmV0dXJuIG51bGwhPT1mJiYiZnVuY3Rpb24iPT10eXBlb2YgZi5jb21wb25lbnREaWRDYXRjaCYmKGMuY2FsbGJhY2s9ZnVuY3Rpb24oKXtNaShhLGIpLCJmdW5jdGlvbiIhPXR5cGVvZiBkJiYobnVsbD09PVNpP1NpPW5ldyBTZXQoW3RoaXNdKTpTaS5hZGQodGhpcykpO3ZhciBjPWIuc3RhY2s7dGhpcy5jb21wb25lbnREaWRDYXRjaChiLnZhbHVlLHtjb21wb25lbnRTdGFjazpudWxsIT09Yz9jOiIifSl9KSxjfWZ1bmN0aW9uIFRpKGEsYixjKXt2YXIgZD1hLnBpbmdDYWNoZTtpZihudWxsPT09ZCl7ZD1hLnBpbmdDYWNoZT1uZXcgTmk7dmFyIGU9bmV3IFNldDtkLnNldChiLGUpfWVsc2Ugdm9pZCAwPT09KGU9ZC5nZXQoYikpJiYoZT1uZXcgU2V0LGQuc2V0KGIsZSkpO2UuaGFzKGMpfHwoZS5hZGQoYyksYT1VaS5iaW5kKG51bGwsYSxiLGMpLGIudGhlbihhLGEpKX1mdW5jdGlvbiBWaShhKXtkb3t2YXIgYjtpZigoYj0xMz09PWEudGFnKSYmKGI9bnVsbD09PShiPWEubWVtb2l6ZWRTdGF0ZSl8fG51bGwhPT1iLmRlaHlkcmF0ZWQpLGIpcmV0dXJuIGE7YT1hLnJldHVybn13aGlsZShudWxsIT09YSk7cmV0dXJuIG51bGx9ZnVuY3Rpb24gV2koYSxiLGMsZCxlKXtyZXR1cm4gMD09KDEmYS5tb2RlKT8oYT09PWI/YS5mbGFnc3w9NjU1MzY6KGEuZmxhZ3N8PTEyOCxjLmZsYWdzfD0xMzEwNzIsYy5mbGFncyY9LTUyODA1LDE9PT1jLnRhZyYmKG51bGw9PT1jLmFsdGVybmF0ZT9jLnRhZz0xNzooKGI9Y2goLTEsMSkpLnRhZz0yLGRoKGMsYiwxKSkpLGMubGFuZXN8PTEpLGEpOihhLmZsYWdzfD02NTUzNixhLmxhbmVzPWUsYSl9dmFyIFhpPXVhLlJlYWN0Q3VycmVudE93bmVyLFVnPSExO2Z1bmN0aW9uIFlpKGEsYixjLGQpe2IuY2hpbGQ9bnVsbD09PWE/Q2goYixudWxsLGMsZCk6QmgoYixhLmNoaWxkLGMsZCl9ZnVuY3Rpb24gWmkoYSxiLGMsZCxlKXtjPWMucmVuZGVyO3ZhciBmPWIucmVmO3JldHVybihUZyhiLGUpLGQ9WGgoYSxiLGMsZCxmLGUpLGM9YmkoKSxudWxsPT09YXx8VWcpPyhJJiZjJiZ2ZyhiKSxiLmZsYWdzfD0xLFlpKGEsYixkLGUpLGIuY2hpbGQpOihiLnVwZGF0ZVF1ZXVlPWEudXBkYXRlUXVldWUsYi5mbGFncyY9LTIwNTMsYS5sYW5lcyY9fmUsJGkoYSxiLGUpKX1mdW5jdGlvbiBhaihhLGIsYyxkLGUpe2lmKG51bGw9PT1hKXt2YXIgZj1jLnR5cGU7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIGZ8fGJqKGYpfHx2b2lkIDAhPT1mLmRlZmF1bHRQcm9wc3x8bnVsbCE9PWMuY29tcGFyZXx8dm9pZCAwIT09Yy5kZWZhdWx0UHJvcHM/KChhPXloKGMudHlwZSxudWxsLGQsYixiLm1vZGUsZSkpLnJlZj1iLnJlZixhLnJldHVybj1iLGIuY2hpbGQ9YSk6KGIudGFnPTE1LGIudHlwZT1mLGNqKGEsYixmLGQsZSkpfWlmKGY9YS5jaGlsZCwwPT0oYS5sYW5lcyZlKSl7dmFyIGc9Zi5tZW1vaXplZFByb3BzO2lmKChjPW51bGwhPT0oYz1jLmNvbXBhcmUpP2M6SWUpKGcsZCkmJmEucmVmPT09Yi5yZWYpcmV0dXJuICRpKGEsYixlKX1yZXR1cm4gYi5mbGFnc3w9MSwoYT13aChmLGQpKS5yZWY9Yi5yZWYsYS5yZXR1cm49YixiLmNoaWxkPWF9ZnVuY3Rpb24gY2ooYSxiLGMsZCxlKXtpZihudWxsIT09YSl7dmFyIGY9YS5tZW1vaXplZFByb3BzO2lmKEllKGYsZCkmJmEucmVmPT09Yi5yZWYpe2lmKFVnPSExLGIucGVuZGluZ1Byb3BzPWQ9ZiwwPT0oYS5sYW5lcyZlKSlyZXR1cm4gYi5sYW5lcz1hLmxhbmVzLCRpKGEsYixlKTswIT0oMTMxMDcyJmEuZmxhZ3MpJiYoVWc9ITApfX1yZXR1cm4gZGooYSxiLGMsZCxlKX1mdW5jdGlvbiBlaihhLGIsYyl7dmFyIGQ9Yi5wZW5kaW5nUHJvcHMsZT1kLmNoaWxkcmVuLGY9bnVsbCE9PWE/YS5tZW1vaXplZFN0YXRlOm51bGw7aWYoImhpZGRlbiI9PT1kLm1vZGUpe2lmKDA9PSgxJmIubW9kZSkpYi5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6MCxjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczpudWxsfSxHKGZqLGdqKSxnanw9YztlbHNle2lmKDA9PSgxMDczNzQxODI0JmMpKXJldHVybiBhPW51bGwhPT1mP2YuYmFzZUxhbmVzfGM6YyxiLmxhbmVzPWIuY2hpbGRMYW5lcz0xMDczNzQxODI0LGIubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOmEsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH0sYi51cGRhdGVRdWV1ZT1udWxsLEcoZmosZ2opLGdqfD1hLG51bGw7Yi5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6MCxjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczpudWxsfSxkPW51bGwhPT1mP2YuYmFzZUxhbmVzOmMsRyhmaixnaiksZ2p8PWR9fWVsc2UgbnVsbCE9PWY/KGQ9Zi5iYXNlTGFuZXN8YyxiLm1lbW9pemVkU3RhdGU9bnVsbCk6ZD1jLEcoZmosZ2opLGdqfD1kO3JldHVybiBZaShhLGIsZSxjKSxiLmNoaWxkfWZ1bmN0aW9uIGhqKGEsYil7dmFyIGM9Yi5yZWY7KG51bGw9PT1hJiZudWxsIT09Y3x8bnVsbCE9PWEmJmEucmVmIT09YykmJihiLmZsYWdzfD01MTIsYi5mbGFnc3w9MjA5NzE1Mil9ZnVuY3Rpb24gZGooYSxiLGMsZCxlKXt2YXIgZj1aZihjKT9YZjpILmN1cnJlbnQ7cmV0dXJuKGY9WWYoYixmKSxUZyhiLGUpLGM9WGgoYSxiLGMsZCxmLGUpLGQ9YmkoKSxudWxsPT09YXx8VWcpPyhJJiZkJiZ2ZyhiKSxiLmZsYWdzfD0xLFlpKGEsYixjLGUpLGIuY2hpbGQpOihiLnVwZGF0ZVF1ZXVlPWEudXBkYXRlUXVldWUsYi5mbGFncyY9LTIwNTMsYS5sYW5lcyY9fmUsJGkoYSxiLGUpKX1mdW5jdGlvbiBpaihhLGIsYyxkLGUpe2lmKFpmKGMpKXt2YXIgZj0hMDtjZyhiKX1lbHNlIGY9ITE7aWYoVGcoYixlKSxudWxsPT09Yi5zdGF0ZU5vZGUpamooYSxiKSxwaChiLGMsZCkscmgoYixjLGQsZSksZD0hMDtlbHNlIGlmKG51bGw9PT1hKXt2YXIgZz1iLnN0YXRlTm9kZSxoPWIubWVtb2l6ZWRQcm9wcztnLnByb3BzPWg7dmFyIGs9Zy5jb250ZXh0LGw9Yy5jb250ZXh0VHlwZTtsPSJvYmplY3QiPT10eXBlb2YgbCYmbnVsbCE9PWw/VmcobCk6WWYoYixsPVpmKGMpP1hmOkguY3VycmVudCk7dmFyIG09Yy5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMscT0iZnVuY3Rpb24iPT10eXBlb2YgbXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGU7cXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGcuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJiJmdW5jdGlvbiIhPXR5cGVvZiBnLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHN8fChoIT09ZHx8ayE9PWwpJiZxaChiLGcsZCxsKSwkZz0hMTt2YXIgcj1iLm1lbW9pemVkU3RhdGU7Zy5zdGF0ZT1yLGdoKGIsZCxnLGUpLGs9Yi5tZW1vaXplZFN0YXRlLGghPT1kfHxyIT09a3x8V2YuY3VycmVudHx8JGc/KCJmdW5jdGlvbiI9PXR5cGVvZiBtJiYoa2goYixjLG0sZCksaz1iLm1lbW9pemVkU3RhdGUpLChoPSRnfHxvaChiLGMsaCxkLHIsayxsKSk/KHF8fCJmdW5jdGlvbiIhPXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJiJmdW5jdGlvbiIhPXR5cGVvZiBnLmNvbXBvbmVudFdpbGxNb3VudHx8KCJmdW5jdGlvbiI9PXR5cGVvZiBnLmNvbXBvbmVudFdpbGxNb3VudCYmZy5jb21wb25lbnRXaWxsTW91bnQoKSwiZnVuY3Rpb24iPT10eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZnLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSksImZ1bmN0aW9uIj09dHlwZW9mIGcuY29tcG9uZW50RGlkTW91bnQmJihiLmZsYWdzfD00MTk0MzA4KSk6KCJmdW5jdGlvbiI9PXR5cGVvZiBnLmNvbXBvbmVudERpZE1vdW50JiYoYi5mbGFnc3w9NDE5NDMwOCksYi5tZW1vaXplZFByb3BzPWQsYi5tZW1vaXplZFN0YXRlPWspLGcucHJvcHM9ZCxnLnN0YXRlPWssZy5jb250ZXh0PWwsZD1oKTooImZ1bmN0aW9uIj09dHlwZW9mIGcuY29tcG9uZW50RGlkTW91bnQmJihiLmZsYWdzfD00MTk0MzA4KSxkPSExKX1lbHNle2c9Yi5zdGF0ZU5vZGUsYmgoYSxiKSxoPWIubWVtb2l6ZWRQcm9wcyxsPWIudHlwZT09PWIuZWxlbWVudFR5cGU/aDpMZyhiLnR5cGUsaCksZy5wcm9wcz1sLHE9Yi5wZW5kaW5nUHJvcHMscj1nLmNvbnRleHQsaz0ib2JqZWN0Ij09dHlwZW9mKGs9Yy5jb250ZXh0VHlwZSkmJm51bGwhPT1rP1ZnKGspOllmKGIsaz1aZihjKT9YZjpILmN1cnJlbnQpO3ZhciB5PWMuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzOyhtPSJmdW5jdGlvbiI9PXR5cGVvZiB5fHwiZnVuY3Rpb24iPT10eXBlb2YgZy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSl8fCJmdW5jdGlvbiIhPXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiYiZnVuY3Rpb24iIT10eXBlb2YgZy5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzfHwoaCE9PXF8fHIhPT1rKSYmcWgoYixnLGQsayksJGc9ITEscj1iLm1lbW9pemVkU3RhdGUsZy5zdGF0ZT1yLGdoKGIsZCxnLGUpO3ZhciBuPWIubWVtb2l6ZWRTdGF0ZTtoIT09cXx8ciE9PW58fFdmLmN1cnJlbnR8fCRnPygiZnVuY3Rpb24iPT10eXBlb2YgeSYmKGtoKGIsYyx5LGQpLG49Yi5tZW1vaXplZFN0YXRlKSwobD0kZ3x8b2goYixjLGwsZCxyLG4sayl8fCExKT8obXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGcuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUmJiJmdW5jdGlvbiIhPXR5cGVvZiBnLmNvbXBvbmVudFdpbGxVcGRhdGV8fCgiZnVuY3Rpb24iPT10eXBlb2YgZy5jb21wb25lbnRXaWxsVXBkYXRlJiZnLmNvbXBvbmVudFdpbGxVcGRhdGUoZCxuLGspLCJmdW5jdGlvbiI9PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiZnLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKGQsbixrKSksImZ1bmN0aW9uIj09dHlwZW9mIGcuY29tcG9uZW50RGlkVXBkYXRlJiYoYi5mbGFnc3w9NCksImZ1bmN0aW9uIj09dHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUmJihiLmZsYWdzfD0xMDI0KSk6KCJmdW5jdGlvbiIhPXR5cGVvZiBnLmNvbXBvbmVudERpZFVwZGF0ZXx8aD09PWEubWVtb2l6ZWRQcm9wcyYmcj09PWEubWVtb2l6ZWRTdGF0ZXx8KGIuZmxhZ3N8PTQpLCJmdW5jdGlvbiIhPXR5cGVvZiBnLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxoPT09YS5tZW1vaXplZFByb3BzJiZyPT09YS5tZW1vaXplZFN0YXRlfHwoYi5mbGFnc3w9MTAyNCksYi5tZW1vaXplZFByb3BzPWQsYi5tZW1vaXplZFN0YXRlPW4pLGcucHJvcHM9ZCxnLnN0YXRlPW4sZy5jb250ZXh0PWssZD1sKTooImZ1bmN0aW9uIiE9dHlwZW9mIGcuY29tcG9uZW50RGlkVXBkYXRlfHxoPT09YS5tZW1vaXplZFByb3BzJiZyPT09YS5tZW1vaXplZFN0YXRlfHwoYi5mbGFnc3w9NCksImZ1bmN0aW9uIiE9dHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fGg9PT1hLm1lbW9pemVkUHJvcHMmJnI9PT1hLm1lbW9pemVkU3RhdGV8fChiLmZsYWdzfD0xMDI0KSxkPSExKX1yZXR1cm4ga2ooYSxiLGMsZCxmLGUpfWZ1bmN0aW9uIGtqKGEsYixjLGQsZSxmKXtoaihhLGIpO3ZhciBnPTAhPSgxMjgmYi5mbGFncyk7aWYoIWQmJiFnKXJldHVybiBlJiZkZyhiLGMsITEpLCRpKGEsYixmKTtkPWIuc3RhdGVOb2RlLFhpLmN1cnJlbnQ9Yjt2YXIgaD1nJiYiZnVuY3Rpb24iIT10eXBlb2YgYy5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I/bnVsbDpkLnJlbmRlcigpO3JldHVybiBiLmZsYWdzfD0xLG51bGwhPT1hJiZnPyhiLmNoaWxkPUJoKGIsYS5jaGlsZCxudWxsLGYpLGIuY2hpbGQ9QmgoYixudWxsLGgsZikpOllpKGEsYixoLGYpLGIubWVtb2l6ZWRTdGF0ZT1kLnN0YXRlLGUmJmRnKGIsYywhMCksYi5jaGlsZH1mdW5jdGlvbiBsaihhKXt2YXIgYj1hLnN0YXRlTm9kZTtiLnBlbmRpbmdDb250ZXh0P2FnKGEsYi5wZW5kaW5nQ29udGV4dCxiLnBlbmRpbmdDb250ZXh0IT09Yi5jb250ZXh0KTpiLmNvbnRleHQmJmFnKGEsYi5jb250ZXh0LCExKSxJaChhLGIuY29udGFpbmVySW5mbyl9ZnVuY3Rpb24gbWooYSxiLGMsZCxlKXtyZXR1cm4gSWcoKSxKZyhlKSxiLmZsYWdzfD0yNTYsWWkoYSxiLGMsZCksYi5jaGlsZH12YXIgbmo9e2RlaHlkcmF0ZWQ6bnVsbCx0cmVlQ29udGV4dDpudWxsLHJldHJ5TGFuZTowfTtmdW5jdGlvbiBvaihhKXtyZXR1cm57YmFzZUxhbmVzOmEsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH19ZnVuY3Rpb24gcGooYSxiLGMpe3ZhciBoLGQ9Yi5wZW5kaW5nUHJvcHMsZT1NLmN1cnJlbnQsZj0hMSxnPTAhPSgxMjgmYi5mbGFncyk7aWYoKGg9Zyl8fChoPShudWxsPT09YXx8bnVsbCE9PWEubWVtb2l6ZWRTdGF0ZSkmJjAhPSgyJmUpKSxoPyhmPSEwLGIuZmxhZ3MmPS0xMjkpOihudWxsPT09YXx8bnVsbCE9PWEubWVtb2l6ZWRTdGF0ZSkmJihlfD0xKSxHKE0sMSZlKSxudWxsPT09YSlyZXR1cm4oRWcoYiksbnVsbCE9PShhPWIubWVtb2l6ZWRTdGF0ZSkmJm51bGwhPT0oYT1hLmRlaHlkcmF0ZWQpKT8oMD09KDEmYi5tb2RlKT9iLmxhbmVzPTE6IiQhIj09PWEuZGF0YT9iLmxhbmVzPTg6Yi5sYW5lcz0xMDczNzQxODI0LG51bGwpOihnPWQuY2hpbGRyZW4sYT1kLmZhbGxiYWNrLGY/KGQ9Yi5tb2RlLGY9Yi5jaGlsZCxnPXttb2RlOiJoaWRkZW4iLGNoaWxkcmVuOmd9LDA9PSgxJmQpJiZudWxsIT09Zj8oZi5jaGlsZExhbmVzPTAsZi5wZW5kaW5nUHJvcHM9Zyk6Zj1xaihnLGQsMCxudWxsKSxhPUFoKGEsZCxjLG51bGwpLGYucmV0dXJuPWIsYS5yZXR1cm49YixmLnNpYmxpbmc9YSxiLmNoaWxkPWYsYi5jaGlsZC5tZW1vaXplZFN0YXRlPW9qKGMpLGIubWVtb2l6ZWRTdGF0ZT1uaixhKTpyaihiLGcpKTtpZihudWxsIT09KGU9YS5tZW1vaXplZFN0YXRlKSYmbnVsbCE9PShoPWUuZGVoeWRyYXRlZCkpcmV0dXJuIGZ1bmN0aW9uKGEsYixjLGQsZSxmLGcpe2lmKGMpcmV0dXJuIDI1NiZiLmZsYWdzPyhiLmZsYWdzJj0tMjU3LHRqKGEsYixnLGQ9TGkoRXJyb3IocCg0MjIpKSkpKTpudWxsIT09Yi5tZW1vaXplZFN0YXRlPyhiLmNoaWxkPWEuY2hpbGQsYi5mbGFnc3w9MTI4LG51bGwpOihmPWQuZmFsbGJhY2ssZT1iLm1vZGUsZD1xaih7bW9kZToidmlzaWJsZSIsY2hpbGRyZW46ZC5jaGlsZHJlbn0sZSwwLG51bGwpLGY9QWgoZixlLGcsbnVsbCksZi5mbGFnc3w9MixkLnJldHVybj1iLGYucmV0dXJuPWIsZC5zaWJsaW5nPWYsYi5jaGlsZD1kLDAhPSgxJmIubW9kZSkmJkJoKGIsYS5jaGlsZCxudWxsLGcpLGIuY2hpbGQubWVtb2l6ZWRTdGF0ZT1vaihnKSxiLm1lbW9pemVkU3RhdGU9bmosZik7aWYoMD09KDEmYi5tb2RlKSlyZXR1cm4gdGooYSxiLGcsbnVsbCk7aWYoIiQhIj09PWUuZGF0YSl7aWYoZD1lLm5leHRTaWJsaW5nJiZlLm5leHRTaWJsaW5nLmRhdGFzZXQpdmFyIGg9ZC5kZ3N0O3JldHVybiBkPWgsZD1MaShmPUVycm9yKHAoNDE5KSksZCx2b2lkIDApLHRqKGEsYixnLGQpfWlmKGg9MCE9KGcmYS5jaGlsZExhbmVzKSxVZ3x8aCl7aWYobnVsbCE9PShkPVIpKXtzd2l0Y2goZyYtZyl7Y2FzZSA0OmU9MjticmVhaztjYXNlIDE2OmU9ODticmVhaztjYXNlIDY0OmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOmNhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAxNjc3NzIxNjpjYXNlIDMzNTU0NDMyOmNhc2UgNjcxMDg4NjQ6ZT0zMjticmVhaztjYXNlIDUzNjg3MDkxMjplPTI2ODQzNTQ1NjticmVhaztkZWZhdWx0OmU9MH0wIT09KGU9MCE9KGUmKGQuc3VzcGVuZGVkTGFuZXN8ZykpPzA6ZSkmJmUhPT1mLnJldHJ5TGFuZSYmKGYucmV0cnlMYW5lPWUsWmcoYSxlKSxtaChkLGEsZSwtMSkpfXJldHVybiB1aigpLHRqKGEsYixnLGQ9TGkoRXJyb3IocCg0MjEpKSkpfXJldHVybiIkPyI9PT1lLmRhdGE/KGIuZmxhZ3N8PTEyOCxiLmNoaWxkPWEuY2hpbGQsYj12ai5iaW5kKG51bGwsYSksZS5fcmVhY3RSZXRyeT1iLG51bGwpOihhPWYudHJlZUNvbnRleHQseWc9TGYoZS5uZXh0U2libGluZykseGc9YixJPSEwLHpnPW51bGwsbnVsbCE9PWEmJihvZ1twZysrXT1yZyxvZ1twZysrXT1zZyxvZ1twZysrXT1xZyxyZz1hLmlkLHNnPWEub3ZlcmZsb3cscWc9YiksYj1yaihiLGQuY2hpbGRyZW4pLGIuZmxhZ3N8PTQwOTYsYil9KGEsYixnLGQsaCxlLGMpO2lmKGYpe2Y9ZC5mYWxsYmFjayxnPWIubW9kZSxoPShlPWEuY2hpbGQpLnNpYmxpbmc7dmFyIGs9e21vZGU6ImhpZGRlbiIsY2hpbGRyZW46ZC5jaGlsZHJlbn07cmV0dXJuIDA9PSgxJmcpJiZiLmNoaWxkIT09ZT8oKGQ9Yi5jaGlsZCkuY2hpbGRMYW5lcz0wLGQucGVuZGluZ1Byb3BzPWssYi5kZWxldGlvbnM9bnVsbCk6KGQ9d2goZSxrKSkuc3VidHJlZUZsYWdzPTE0NjgwMDY0JmUuc3VidHJlZUZsYWdzLG51bGwhPT1oP2Y9d2goaCxmKTooZj1BaChmLGcsYyxudWxsKSxmLmZsYWdzfD0yKSxmLnJldHVybj1iLGQucmV0dXJuPWIsZC5zaWJsaW5nPWYsYi5jaGlsZD1kLGQ9ZixmPWIuY2hpbGQsZz1udWxsPT09KGc9YS5jaGlsZC5tZW1vaXplZFN0YXRlKT9vaihjKTp7YmFzZUxhbmVzOmcuYmFzZUxhbmVzfGMsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6Zy50cmFuc2l0aW9uc30sZi5tZW1vaXplZFN0YXRlPWcsZi5jaGlsZExhbmVzPWEuY2hpbGRMYW5lcyZ+YyxiLm1lbW9pemVkU3RhdGU9bmosZH1yZXR1cm4gYT0oZj1hLmNoaWxkKS5zaWJsaW5nLGQ9d2goZix7bW9kZToidmlzaWJsZSIsY2hpbGRyZW46ZC5jaGlsZHJlbn0pLDA9PSgxJmIubW9kZSkmJihkLmxhbmVzPWMpLGQucmV0dXJuPWIsZC5zaWJsaW5nPW51bGwsbnVsbCE9PWEmJihudWxsPT09KGM9Yi5kZWxldGlvbnMpPyhiLmRlbGV0aW9ucz1bYV0sYi5mbGFnc3w9MTYpOmMucHVzaChhKSksYi5jaGlsZD1kLGIubWVtb2l6ZWRTdGF0ZT1udWxsLGR9ZnVuY3Rpb24gcmooYSxiKXtyZXR1cm4oYj1xaih7bW9kZToidmlzaWJsZSIsY2hpbGRyZW46Yn0sYS5tb2RlLDAsbnVsbCkpLnJldHVybj1hLGEuY2hpbGQ9Yn1mdW5jdGlvbiB0aihhLGIsYyxkKXtyZXR1cm4gbnVsbCE9PWQmJkpnKGQpLEJoKGIsYS5jaGlsZCxudWxsLGMpLGE9cmooYixiLnBlbmRpbmdQcm9wcy5jaGlsZHJlbiksYS5mbGFnc3w9MixiLm1lbW9pemVkU3RhdGU9bnVsbCxhfWZ1bmN0aW9uIHdqKGEsYixjKXthLmxhbmVzfD1iO3ZhciBkPWEuYWx0ZXJuYXRlO251bGwhPT1kJiYoZC5sYW5lc3w9YiksU2coYS5yZXR1cm4sYixjKX1mdW5jdGlvbiB4aihhLGIsYyxkLGUpe3ZhciBmPWEubWVtb2l6ZWRTdGF0ZTtudWxsPT09Zj9hLm1lbW9pemVkU3RhdGU9e2lzQmFja3dhcmRzOmIscmVuZGVyaW5nOm51bGwscmVuZGVyaW5nU3RhcnRUaW1lOjAsbGFzdDpkLHRhaWw6Yyx0YWlsTW9kZTplfTooZi5pc0JhY2t3YXJkcz1iLGYucmVuZGVyaW5nPW51bGwsZi5yZW5kZXJpbmdTdGFydFRpbWU9MCxmLmxhc3Q9ZCxmLnRhaWw9YyxmLnRhaWxNb2RlPWUpfWZ1bmN0aW9uIHlqKGEsYixjKXt2YXIgZD1iLnBlbmRpbmdQcm9wcyxlPWQucmV2ZWFsT3JkZXIsZj1kLnRhaWw7aWYoWWkoYSxiLGQuY2hpbGRyZW4sYyksMCE9KDImKGQ9TS5jdXJyZW50KSkpZD0xJmR8MixiLmZsYWdzfD0xMjg7ZWxzZXtpZihudWxsIT09YSYmMCE9KDEyOCZhLmZsYWdzKSlhOmZvcihhPWIuY2hpbGQ7bnVsbCE9PWE7KXtpZigxMz09PWEudGFnKW51bGwhPT1hLm1lbW9pemVkU3RhdGUmJndqKGEsYyxiKTtlbHNlIGlmKDE5PT09YS50YWcpd2ooYSxjLGIpO2Vsc2UgaWYobnVsbCE9PWEuY2hpbGQpe2EuY2hpbGQucmV0dXJuPWEsYT1hLmNoaWxkO2NvbnRpbnVlfWlmKGE9PT1iKWJyZWFrIGE7Zm9yKDtudWxsPT09YS5zaWJsaW5nOyl7aWYobnVsbD09PWEucmV0dXJufHxhLnJldHVybj09PWIpYnJlYWsgYTthPWEucmV0dXJufWEuc2libGluZy5yZXR1cm49YS5yZXR1cm4sYT1hLnNpYmxpbmd9ZCY9MX1pZihHKE0sZCksMD09KDEmYi5tb2RlKSliLm1lbW9pemVkU3RhdGU9bnVsbDtlbHNlIHN3aXRjaChlKXtjYXNlImZvcndhcmRzIjpmb3IoZT1udWxsLGM9Yi5jaGlsZDtudWxsIT09YzspbnVsbCE9PShhPWMuYWx0ZXJuYXRlKSYmbnVsbD09PU1oKGEpJiYoZT1jKSxjPWMuc2libGluZztudWxsPT09KGM9ZSk/KGU9Yi5jaGlsZCxiLmNoaWxkPW51bGwpOihlPWMuc2libGluZyxjLnNpYmxpbmc9bnVsbCkseGooYiwhMSxlLGMsZik7YnJlYWs7Y2FzZSJiYWNrd2FyZHMiOmZvcihjPW51bGwsZT1iLmNoaWxkLGIuY2hpbGQ9bnVsbDtudWxsIT09ZTspe2lmKG51bGwhPT0oYT1lLmFsdGVybmF0ZSkmJm51bGw9PT1NaChhKSl7Yi5jaGlsZD1lO2JyZWFrfWE9ZS5zaWJsaW5nLGUuc2libGluZz1jLGM9ZSxlPWF9eGooYiwhMCxjLG51bGwsZik7YnJlYWs7Y2FzZSJ0b2dldGhlciI6eGooYiwhMSxudWxsLG51bGwsdm9pZCAwKTticmVhaztkZWZhdWx0OmIubWVtb2l6ZWRTdGF0ZT1udWxsfXJldHVybiBiLmNoaWxkfWZ1bmN0aW9uIGpqKGEsYil7MD09KDEmYi5tb2RlKSYmbnVsbCE9PWEmJihhLmFsdGVybmF0ZT1udWxsLGIuYWx0ZXJuYXRlPW51bGwsYi5mbGFnc3w9Mil9ZnVuY3Rpb24gJGkoYSxiLGMpe2lmKG51bGwhPT1hJiYoYi5kZXBlbmRlbmNpZXM9YS5kZXBlbmRlbmNpZXMpLGhofD1iLmxhbmVzLDA9PShjJmIuY2hpbGRMYW5lcykpcmV0dXJuIG51bGw7aWYobnVsbCE9PWEmJmIuY2hpbGQhPT1hLmNoaWxkKXRocm93IEVycm9yKHAoMTUzKSk7aWYobnVsbCE9PWIuY2hpbGQpe2ZvcihjPXdoKGE9Yi5jaGlsZCxhLnBlbmRpbmdQcm9wcyksYi5jaGlsZD1jLGMucmV0dXJuPWI7bnVsbCE9PWEuc2libGluZzspYT1hLnNpYmxpbmcsKGM9Yy5zaWJsaW5nPXdoKGEsYS5wZW5kaW5nUHJvcHMpKS5yZXR1cm49YjtjLnNpYmxpbmc9bnVsbH1yZXR1cm4gYi5jaGlsZH1mdW5jdGlvbiBFaihhLGIpe2lmKCFJKXN3aXRjaChhLnRhaWxNb2RlKXtjYXNlImhpZGRlbiI6Yj1hLnRhaWw7Zm9yKHZhciBjPW51bGw7bnVsbCE9PWI7KW51bGwhPT1iLmFsdGVybmF0ZSYmKGM9YiksYj1iLnNpYmxpbmc7bnVsbD09PWM/YS50YWlsPW51bGw6Yy5zaWJsaW5nPW51bGw7YnJlYWs7Y2FzZSJjb2xsYXBzZWQiOmM9YS50YWlsO2Zvcih2YXIgZD1udWxsO251bGwhPT1jOyludWxsIT09Yy5hbHRlcm5hdGUmJihkPWMpLGM9Yy5zaWJsaW5nO251bGw9PT1kP2J8fG51bGw9PT1hLnRhaWw/YS50YWlsPW51bGw6YS50YWlsLnNpYmxpbmc9bnVsbDpkLnNpYmxpbmc9bnVsbH19ZnVuY3Rpb24gUyhhKXt2YXIgYj1udWxsIT09YS5hbHRlcm5hdGUmJmEuYWx0ZXJuYXRlLmNoaWxkPT09YS5jaGlsZCxjPTAsZD0wO2lmKGIpZm9yKHZhciBlPWEuY2hpbGQ7bnVsbCE9PWU7KWN8PWUubGFuZXN8ZS5jaGlsZExhbmVzLGR8PTE0NjgwMDY0JmUuc3VidHJlZUZsYWdzLGR8PTE0NjgwMDY0JmUuZmxhZ3MsZS5yZXR1cm49YSxlPWUuc2libGluZztlbHNlIGZvcihlPWEuY2hpbGQ7bnVsbCE9PWU7KWN8PWUubGFuZXN8ZS5jaGlsZExhbmVzLGR8PWUuc3VidHJlZUZsYWdzLGR8PWUuZmxhZ3MsZS5yZXR1cm49YSxlPWUuc2libGluZztyZXR1cm4gYS5zdWJ0cmVlRmxhZ3N8PWQsYS5jaGlsZExhbmVzPWMsYn1Baj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1iLmNoaWxkO251bGwhPT1jOyl7aWYoNT09PWMudGFnfHw2PT09Yy50YWcpYS5hcHBlbmRDaGlsZChjLnN0YXRlTm9kZSk7ZWxzZSBpZig0IT09Yy50YWcmJm51bGwhPT1jLmNoaWxkKXtjLmNoaWxkLnJldHVybj1jLGM9Yy5jaGlsZDtjb250aW51ZX1pZihjPT09YilicmVhaztmb3IoO251bGw9PT1jLnNpYmxpbmc7KXtpZihudWxsPT09Yy5yZXR1cm58fGMucmV0dXJuPT09YilyZXR1cm47Yz1jLnJldHVybn1jLnNpYmxpbmcucmV0dXJuPWMucmV0dXJuLGM9Yy5zaWJsaW5nfX0sQmo9ZnVuY3Rpb24oKXt9LENqPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEubWVtb2l6ZWRQcm9wcztpZihlIT09ZCl7YT1iLnN0YXRlTm9kZSxIaChFaC5jdXJyZW50KTt2YXIgZyxmPW51bGw7c3dpdGNoKGMpe2Nhc2UiaW5wdXQiOmU9WWEoYSxlKSxkPVlhKGEsZCksZj1bXTticmVhaztjYXNlInNlbGVjdCI6ZT1BKHt9LGUse3ZhbHVlOnZvaWQgMH0pLGQ9QSh7fSxkLHt2YWx1ZTp2b2lkIDB9KSxmPVtdO2JyZWFrO2Nhc2UidGV4dGFyZWEiOmU9Z2IoYSxlKSxkPWdiKGEsZCksZj1bXTticmVhaztkZWZhdWx0OiJmdW5jdGlvbiIhPXR5cGVvZiBlLm9uQ2xpY2smJiJmdW5jdGlvbiI9PXR5cGVvZiBkLm9uQ2xpY2smJihhLm9uY2xpY2s9QmYpfWZvcihsIGluIHViKGMsZCksYz1udWxsLGUpaWYoIWQuaGFzT3duUHJvcGVydHkobCkmJmUuaGFzT3duUHJvcGVydHkobCkmJm51bGwhPWVbbF0pe2lmKCJzdHlsZSI9PT1sKXt2YXIgaD1lW2xdO2ZvcihnIGluIGgpaC5oYXNPd25Qcm9wZXJ0eShnKSYmKGN8fChjPXt9KSxjW2ddPSIiKX1lbHNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiE9PWwmJiJjaGlsZHJlbiIhPT1sJiYic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIiE9PWwmJiJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmciIT09bCYmImF1dG9Gb2N1cyIhPT1sJiYoZWEuaGFzT3duUHJvcGVydHkobCk/Znx8KGY9W10pOihmPWZ8fFtdKS5wdXNoKGwsbnVsbCkpfWZvcihsIGluIGQpe3ZhciBrPWRbbF07aWYoaD1udWxsIT1lP2VbbF06dm9pZCAwLGQuaGFzT3duUHJvcGVydHkobCkmJmshPT1oJiYobnVsbCE9a3x8bnVsbCE9aCkpe2lmKCJzdHlsZSI9PT1sKXtpZihoKXtmb3IoZyBpbiBoKSFoLmhhc093blByb3BlcnR5KGcpfHxrJiZrLmhhc093blByb3BlcnR5KGcpfHwoY3x8KGM9e30pLGNbZ109IiIpO2ZvcihnIGluIGspay5oYXNPd25Qcm9wZXJ0eShnKSYmaFtnXSE9PWtbZ10mJihjfHwoYz17fSksY1tnXT1rW2ddKX1lbHNlIGN8fChmfHwoZj1bXSksZi5wdXNoKGwsYykpLGM9a31lbHNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIj09PWw/KGs9az9rLl9faHRtbDp2b2lkIDAsaD1oP2guX19odG1sOnZvaWQgMCxudWxsIT1rJiZoIT09ayYmKGY9Znx8W10pLnB1c2gobCxrKSk6ImNoaWxkcmVuIj09PWw/InN0cmluZyIhPXR5cGVvZiBrJiYibnVtYmVyIiE9dHlwZW9mIGt8fChmPWZ8fFtdKS5wdXNoKGwsIiIrayk6InN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyIhPT1sJiYic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIiE9PWwmJihlYS5oYXNPd25Qcm9wZXJ0eShsKT8obnVsbCE9ayYmIm9uU2Nyb2xsIj09PWwmJkQoInNjcm9sbCIsYSksZnx8aD09PWt8fChmPVtdKSk6KGY9Znx8W10pLnB1c2gobCxrKSl9fWMmJihmPWZ8fFtdKS5wdXNoKCJzdHlsZSIsYyk7dmFyIGw9ZjsoYi51cGRhdGVRdWV1ZT1sKSYmKGIuZmxhZ3N8PTQpfX0sRGo9ZnVuY3Rpb24oYSxiLGMsZCl7YyE9PWQmJihiLmZsYWdzfD00KX07dmFyIEtqPSExLFU9ITEsTGo9ImZ1bmN0aW9uIj09dHlwZW9mIFdlYWtTZXQ/V2Vha1NldDpTZXQsVj1udWxsO2Z1bmN0aW9uIE1qKGEsYil7dmFyIGM9YS5yZWY7aWYobnVsbCE9PWMpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjKXRyeXtjKG51bGwpfWNhdGNoKGQpe1coYSxiLGQpfWVsc2UgYy5jdXJyZW50PW51bGx9fWZ1bmN0aW9uIE5qKGEsYixjKXt0cnl7YygpfWNhdGNoKGQpe1coYSxiLGQpfX12YXIgT2o9ITE7ZnVuY3Rpb24gUWooYSxiLGMpe3ZhciBkPWIudXBkYXRlUXVldWU7aWYobnVsbCE9PShkPW51bGwhPT1kP2QubGFzdEVmZmVjdDpudWxsKSl7dmFyIGU9ZD1kLm5leHQ7ZG97aWYoKGUudGFnJmEpPT09YSl7dmFyIGY9ZS5kZXN0cm95O2UuZGVzdHJveT12b2lkIDAsdm9pZCAwIT09ZiYmTmooYixjLGYpfWU9ZS5uZXh0fXdoaWxlKGUhPT1kKX19ZnVuY3Rpb24gUmooYSxiKXtpZihudWxsIT09KGI9bnVsbCE9PShiPWIudXBkYXRlUXVldWUpP2IubGFzdEVmZmVjdDpudWxsKSl7dmFyIGM9Yj1iLm5leHQ7ZG97aWYoKGMudGFnJmEpPT09YSl7dmFyIGQ9Yy5jcmVhdGU7Yy5kZXN0cm95PWQoKX1jPWMubmV4dH13aGlsZShjIT09Yil9fWZ1bmN0aW9uIFNqKGEpe3ZhciBiPWEucmVmO2lmKG51bGwhPT1iKXt2YXIgYz1hLnN0YXRlTm9kZTthLnRhZyxhPWMsImZ1bmN0aW9uIj09dHlwZW9mIGI/YihhKTpiLmN1cnJlbnQ9YX19ZnVuY3Rpb24gVWooYSl7cmV0dXJuIDU9PT1hLnRhZ3x8Mz09PWEudGFnfHw0PT09YS50YWd9ZnVuY3Rpb24gVmooYSl7YTpmb3IoOzspe2Zvcig7bnVsbD09PWEuc2libGluZzspe2lmKG51bGw9PT1hLnJldHVybnx8VWooYS5yZXR1cm4pKXJldHVybiBudWxsO2E9YS5yZXR1cm59Zm9yKGEuc2libGluZy5yZXR1cm49YS5yZXR1cm4sYT1hLnNpYmxpbmc7NSE9PWEudGFnJiY2IT09YS50YWcmJjE4IT09YS50YWc7KXtpZigyJmEuZmxhZ3N8fG51bGw9PT1hLmNoaWxkfHw0PT09YS50YWcpY29udGludWUgYTthLmNoaWxkLnJldHVybj1hLGE9YS5jaGlsZH1pZighKDImYS5mbGFncykpcmV0dXJuIGEuc3RhdGVOb2RlfX12YXIgWD1udWxsLFlqPSExO2Z1bmN0aW9uIFpqKGEsYixjKXtmb3IoYz1jLmNoaWxkO251bGwhPT1jOylhayhhLGIsYyksYz1jLnNpYmxpbmd9ZnVuY3Rpb24gYWsoYSxiLGMpe2lmKGxjJiYiZnVuY3Rpb24iPT10eXBlb2YgbGMub25Db21taXRGaWJlclVubW91bnQpdHJ5e2xjLm9uQ29tbWl0RmliZXJVbm1vdW50KGtjLGMpfWNhdGNoKGgpe31zd2l0Y2goYy50YWcpe2Nhc2UgNTpVfHxNaihjLGIpO2Nhc2UgNjp2YXIgZD1YLGU9WWo7WD1udWxsLFpqKGEsYixjKSxYPWQsWWo9ZSxudWxsIT09WCYmKFlqPyhhPVgsYz1jLnN0YXRlTm9kZSw4PT09YS5ub2RlVHlwZT9hLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYyk6YS5yZW1vdmVDaGlsZChjKSk6WC5yZW1vdmVDaGlsZChjLnN0YXRlTm9kZSkpO2JyZWFrO2Nhc2UgMTg6bnVsbCE9PVgmJihZaj8oYT1YLGM9Yy5zdGF0ZU5vZGUsOD09PWEubm9kZVR5cGU/S2YoYS5wYXJlbnROb2RlLGMpOjE9PT1hLm5vZGVUeXBlJiZLZihhLGMpLGJkKGEpKTpLZihYLGMuc3RhdGVOb2RlKSk7YnJlYWs7Y2FzZSA0OmQ9WCxlPVlqLFg9Yy5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxZaj0hMCxaaihhLGIsYyksWD1kLFlqPWU7YnJlYWs7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmlmKCFVJiZudWxsIT09KGQ9Yy51cGRhdGVRdWV1ZSkmJm51bGwhPT0oZD1kLmxhc3RFZmZlY3QpKXtlPWQ9ZC5uZXh0O2Rve3ZhciBmPWUsZz1mLmRlc3Ryb3k7Zj1mLnRhZyx2b2lkIDAhPT1nJiYoMCE9KDImZik/TmooYyxiLGcpOjAhPSg0JmYpJiZOaihjLGIsZykpLGU9ZS5uZXh0fXdoaWxlKGUhPT1kKX1aaihhLGIsYyk7YnJlYWs7Y2FzZSAxOmlmKCFVJiYoTWooYyxiKSwiZnVuY3Rpb24iPT10eXBlb2YoZD1jLnN0YXRlTm9kZSkuY29tcG9uZW50V2lsbFVubW91bnQpKXRyeXtkLnByb3BzPWMubWVtb2l6ZWRQcm9wcyxkLnN0YXRlPWMubWVtb2l6ZWRTdGF0ZSxkLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2goaDEpe1coYyxiLGgxKX1aaihhLGIsYyk7YnJlYWs7Y2FzZSAyMTpkZWZhdWx0OlpqKGEsYixjKTticmVhaztjYXNlIDIyOjEmYy5tb2RlPyhVPShkPVUpfHxudWxsIT09Yy5tZW1vaXplZFN0YXRlLFpqKGEsYixjKSxVPWQpOlpqKGEsYixjKX19ZnVuY3Rpb24gYmsoYSl7dmFyIGI9YS51cGRhdGVRdWV1ZTtpZihudWxsIT09Yil7YS51cGRhdGVRdWV1ZT1udWxsO3ZhciBjPWEuc3RhdGVOb2RlO251bGw9PT1jJiYoYz1hLnN0YXRlTm9kZT1uZXcgTGopLGIuZm9yRWFjaChmdW5jdGlvbihiKXt2YXIgZD1jay5iaW5kKG51bGwsYSxiKTtjLmhhcyhiKXx8KGMuYWRkKGIpLGIudGhlbihkLGQpKX0pfX1mdW5jdGlvbiBkayhhLGIpe3ZhciBjPWIuZGVsZXRpb25zO2lmKG51bGwhPT1jKWZvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1jW2RdO3RyeXt2YXIgZz1iLGg9ZzthOmZvcig7bnVsbCE9PWg7KXtzd2l0Y2goaC50YWcpe2Nhc2UgNTpYPWguc3RhdGVOb2RlLFlqPSExO2JyZWFrIGE7Y2FzZSAzOmNhc2UgNDpYPWguc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sWWo9ITA7YnJlYWsgYX1oPWgucmV0dXJufWlmKG51bGw9PT1YKXRocm93IEVycm9yKHAoMTYwKSk7YWsoYSxnLGUpLFg9bnVsbCxZaj0hMTt2YXIgaz1lLmFsdGVybmF0ZTtudWxsIT09ayYmKGsucmV0dXJuPW51bGwpLGUucmV0dXJuPW51bGx9Y2F0Y2gobCl7VyhlLGIsbCl9fWlmKDEyODU0JmIuc3VidHJlZUZsYWdzKWZvcihiPWIuY2hpbGQ7bnVsbCE9PWI7KWVrKGIsYSksYj1iLnNpYmxpbmd9ZnVuY3Rpb24gZWsoYSxiKXt2YXIgYz1hLmFsdGVybmF0ZSxkPWEuZmxhZ3M7c3dpdGNoKGEudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6aWYoZGsoYixhKSxmayhhKSw0JmQpe3RyeXtRaigzLGEsYS5yZXR1cm4pLFJqKDMsYSl9Y2F0Y2godCl7VyhhLGEucmV0dXJuLHQpfXRyeXtRaig1LGEsYS5yZXR1cm4pfWNhdGNoKHQxKXtXKGEsYS5yZXR1cm4sdDEpfX1icmVhaztjYXNlIDE6ZGsoYixhKSxmayhhKSw1MTImZCYmbnVsbCE9PWMmJk1qKGMsYy5yZXR1cm4pO2JyZWFrO2Nhc2UgNTppZihkayhiLGEpLGZrKGEpLDUxMiZkJiZudWxsIT09YyYmTWooYyxjLnJldHVybiksMzImYS5mbGFncyl7dmFyIGU9YS5zdGF0ZU5vZGU7dHJ5e29iKGUsIiIpfWNhdGNoKHQyKXtXKGEsYS5yZXR1cm4sdDIpfX1pZig0JmQmJm51bGwhPShlPWEuc3RhdGVOb2RlKSl7dmFyIGY9YS5tZW1vaXplZFByb3BzLGc9bnVsbCE9PWM/Yy5tZW1vaXplZFByb3BzOmYsaD1hLnR5cGUsaz1hLnVwZGF0ZVF1ZXVlO2lmKGEudXBkYXRlUXVldWU9bnVsbCxudWxsIT09ayl0cnl7ImlucHV0Ij09PWgmJiJyYWRpbyI9PT1mLnR5cGUmJm51bGwhPWYubmFtZSYmYWIoZSxmKSx2YihoLGcpO3ZhciBsPXZiKGgsZik7Zm9yKGc9MDtnPGsubGVuZ3RoO2crPTIpe3ZhciBtPWtbZ10scT1rW2crMV07InN0eWxlIj09PW0/c2IoZSxxKToiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiPT09bT9uYihlLHEpOiJjaGlsZHJlbiI9PT1tP29iKGUscSk6dGEoZSxtLHEsbCl9c3dpdGNoKGgpe2Nhc2UiaW5wdXQiOmJiKGUsZik7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6aWIoZSxmKTticmVhaztjYXNlInNlbGVjdCI6dmFyIHI9ZS5fd3JhcHBlclN0YXRlLndhc011bHRpcGxlO2UuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZT0hIWYubXVsdGlwbGU7dmFyIHk9Zi52YWx1ZTtudWxsIT15P2ZiKGUsISFmLm11bHRpcGxlLHksITEpOiEhZi5tdWx0aXBsZSE9PXImJihudWxsIT1mLmRlZmF1bHRWYWx1ZT9mYihlLCEhZi5tdWx0aXBsZSxmLmRlZmF1bHRWYWx1ZSwhMCk6ZmIoZSwhIWYubXVsdGlwbGUsZi5tdWx0aXBsZT9bXToiIiwhMSkpfWVbUGZdPWZ9Y2F0Y2godDMpe1coYSxhLnJldHVybix0Myl9fWJyZWFrO2Nhc2UgNjppZihkayhiLGEpLGZrKGEpLDQmZCl7aWYobnVsbD09PWEuc3RhdGVOb2RlKXRocm93IEVycm9yKHAoMTYyKSk7ZT1hLnN0YXRlTm9kZSxmPWEubWVtb2l6ZWRQcm9wczt0cnl7ZS5ub2RlVmFsdWU9Zn1jYXRjaCh0NCl7VyhhLGEucmV0dXJuLHQ0KX19YnJlYWs7Y2FzZSAzOmlmKGRrKGIsYSksZmsoYSksNCZkJiZudWxsIT09YyYmYy5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCl0cnl7YmQoYi5jb250YWluZXJJbmZvKX1jYXRjaCh0NSl7VyhhLGEucmV0dXJuLHQ1KX1icmVhaztjYXNlIDQ6ZGVmYXVsdDpkayhiLGEpLGZrKGEpO2JyZWFrO2Nhc2UgMTM6ZGsoYixhKSxmayhhKSw4MTkyJihlPWEuY2hpbGQpLmZsYWdzJiYoZj1udWxsIT09ZS5tZW1vaXplZFN0YXRlLGUuc3RhdGVOb2RlLmlzSGlkZGVuPWYsZiYmKG51bGw9PT1lLmFsdGVybmF0ZXx8bnVsbD09PWUuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUpJiYoZ2s9QigpKSksNCZkJiZiayhhKTticmVhaztjYXNlIDIyOmlmKG09bnVsbCE9PWMmJm51bGwhPT1jLm1lbW9pemVkU3RhdGUsMSZhLm1vZGU/KFU9KGw9VSl8fG0sZGsoYixhKSxVPWwpOmRrKGIsYSksZmsoYSksODE5MiZkKXtpZihsPW51bGwhPT1hLm1lbW9pemVkU3RhdGUsKGEuc3RhdGVOb2RlLmlzSGlkZGVuPWwpJiYhbSYmMCE9KDEmYS5tb2RlKSlmb3IoVj1hLG09YS5jaGlsZDtudWxsIT09bTspe2ZvcihxPVY9bTtudWxsIT09Vjspe3N3aXRjaCh5PShyPVYpLmNoaWxkLHIudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6UWooNCxyLHIucmV0dXJuKTticmVhaztjYXNlIDE6TWoocixyLnJldHVybik7dmFyIG49ci5zdGF0ZU5vZGU7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG4uY29tcG9uZW50V2lsbFVubW91bnQpe2Q9cixjPXIucmV0dXJuO3RyeXtiPWQsbi5wcm9wcz1iLm1lbW9pemVkUHJvcHMsbi5zdGF0ZT1iLm1lbW9pemVkU3RhdGUsbi5jb21wb25lbnRXaWxsVW5tb3VudCgpfWNhdGNoKHQ2KXtXKGQsYyx0Nil9fWJyZWFrO2Nhc2UgNTpNaihyLHIucmV0dXJuKTticmVhaztjYXNlIDIyOmlmKG51bGwhPT1yLm1lbW9pemVkU3RhdGUpe2hrKHEpO2NvbnRpbnVlfX1udWxsIT09eT8oeS5yZXR1cm49cixWPXkpOmhrKHEpfW09bS5zaWJsaW5nfWE6Zm9yKG09bnVsbCxxPWE7Oyl7aWYoNT09PXEudGFnKXtpZihudWxsPT09bSl7bT1xO3RyeXtlPXEuc3RhdGVOb2RlLGw/KGY9ZS5zdHlsZSwiZnVuY3Rpb24iPT10eXBlb2YgZi5zZXRQcm9wZXJ0eT9mLnNldFByb3BlcnR5KCJkaXNwbGF5Iiwibm9uZSIsImltcG9ydGFudCIpOmYuZGlzcGxheT0ibm9uZSIpOihoPXEuc3RhdGVOb2RlLGc9bnVsbCE9KGs9cS5tZW1vaXplZFByb3BzLnN0eWxlKSYmay5oYXNPd25Qcm9wZXJ0eSgiZGlzcGxheSIpP2suZGlzcGxheTpudWxsLGguc3R5bGUuZGlzcGxheT1yYigiZGlzcGxheSIsZykpfWNhdGNoKHQ3KXtXKGEsYS5yZXR1cm4sdDcpfX19ZWxzZSBpZig2PT09cS50YWcpe2lmKG51bGw9PT1tKXRyeXtxLnN0YXRlTm9kZS5ub2RlVmFsdWU9bD8iIjpxLm1lbW9pemVkUHJvcHN9Y2F0Y2godDgpe1coYSxhLnJldHVybix0OCl9fWVsc2UgaWYoKDIyIT09cS50YWcmJjIzIT09cS50YWd8fG51bGw9PT1xLm1lbW9pemVkU3RhdGV8fHE9PT1hKSYmbnVsbCE9PXEuY2hpbGQpe3EuY2hpbGQucmV0dXJuPXEscT1xLmNoaWxkO2NvbnRpbnVlfWlmKHE9PT1hKWJyZWFrIGE7Zm9yKDtudWxsPT09cS5zaWJsaW5nOyl7aWYobnVsbD09PXEucmV0dXJufHxxLnJldHVybj09PWEpYnJlYWsgYTttPT09cSYmKG09bnVsbCkscT1xLnJldHVybn1tPT09cSYmKG09bnVsbCkscS5zaWJsaW5nLnJldHVybj1xLnJldHVybixxPXEuc2libGluZ319YnJlYWs7Y2FzZSAxOTpkayhiLGEpLGZrKGEpLDQmZCYmYmsoYSk7Y2FzZSAyMTp9fWZ1bmN0aW9uIGZrKGEpe3ZhciBiPWEuZmxhZ3M7aWYoMiZiKXt0cnl7YTp7Zm9yKHZhciBjPWEucmV0dXJuO251bGwhPT1jOyl7aWYoVWooYykpe3ZhciBkPWM7YnJlYWsgYX1jPWMucmV0dXJufXRocm93IEVycm9yKHAoMTYwKSl9c3dpdGNoKGQudGFnKXtjYXNlIDU6dmFyIGU9ZC5zdGF0ZU5vZGU7MzImZC5mbGFncyYmKG9iKGUsIiIpLGQuZmxhZ3MmPS0zMyk7dmFyIGY9VmooYSk7IWZ1bmN0aW9uIFhqKGEsYixjKXt2YXIgZD1hLnRhZztpZig1PT09ZHx8Nj09PWQpYT1hLnN0YXRlTm9kZSxiP2MuaW5zZXJ0QmVmb3JlKGEsYik6Yy5hcHBlbmRDaGlsZChhKTtlbHNlIGlmKDQhPT1kJiZudWxsIT09KGE9YS5jaGlsZCkpZm9yKFhqKGEsYixjKSxhPWEuc2libGluZztudWxsIT09YTspWGooYSxiLGMpLGE9YS5zaWJsaW5nfShhLGYsZSk7YnJlYWs7Y2FzZSAzOmNhc2UgNDp2YXIgZz1kLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLGg9VmooYSk7IWZ1bmN0aW9uIFdqKGEsYixjKXt2YXIgZD1hLnRhZztpZig1PT09ZHx8Nj09PWQpYT1hLnN0YXRlTm9kZSxiPzg9PT1jLm5vZGVUeXBlP2MucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxiKTpjLmluc2VydEJlZm9yZShhLGIpOig4PT09Yy5ub2RlVHlwZT8oYj1jLnBhcmVudE5vZGUpLmluc2VydEJlZm9yZShhLGMpOihiPWMpLmFwcGVuZENoaWxkKGEpLG51bGwhPShjPWMuX3JlYWN0Um9vdENvbnRhaW5lcil8fG51bGwhPT1iLm9uY2xpY2t8fChiLm9uY2xpY2s9QmYpKTtlbHNlIGlmKDQhPT1kJiZudWxsIT09KGE9YS5jaGlsZCkpZm9yKFdqKGEsYixjKSxhPWEuc2libGluZztudWxsIT09YTspV2ooYSxiLGMpLGE9YS5zaWJsaW5nfShhLGgsZyk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihwKDE2MSkpfX1jYXRjaChrKXtXKGEsYS5yZXR1cm4sayl9YS5mbGFncyY9LTN9NDA5NiZiJiYoYS5mbGFncyY9LTQwOTcpfWZ1bmN0aW9uIGxrKGEpe2Zvcig7bnVsbCE9PVY7KXt2YXIgYj1WO2lmKDAhPSg4NzcyJmIuZmxhZ3MpKXt2YXIgYz1iLmFsdGVybmF0ZTt0cnl7aWYoMCE9KDg3NzImYi5mbGFncykpc3dpdGNoKGIudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OlV8fFJqKDUsYik7YnJlYWs7Y2FzZSAxOnZhciBkPWIuc3RhdGVOb2RlO2lmKDQmYi5mbGFncyYmIVUpe2lmKG51bGw9PT1jKWQuY29tcG9uZW50RGlkTW91bnQoKTtlbHNle3ZhciBlPWIuZWxlbWVudFR5cGU9PT1iLnR5cGU/Yy5tZW1vaXplZFByb3BzOkxnKGIudHlwZSxjLm1lbW9pemVkUHJvcHMpO2QuY29tcG9uZW50RGlkVXBkYXRlKGUsYy5tZW1vaXplZFN0YXRlLGQuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGUpfX12YXIgZj1iLnVwZGF0ZVF1ZXVlO251bGwhPT1mJiZpaChiLGYsZCk7YnJlYWs7Y2FzZSAzOnZhciBnPWIudXBkYXRlUXVldWU7aWYobnVsbCE9PWcpe2lmKGM9bnVsbCxudWxsIT09Yi5jaGlsZClzd2l0Y2goYi5jaGlsZC50YWcpe2Nhc2UgNTpjYXNlIDE6Yz1iLmNoaWxkLnN0YXRlTm9kZX1paChiLGcsYyl9YnJlYWs7Y2FzZSA1OnZhciBoPWIuc3RhdGVOb2RlO2lmKG51bGw9PT1jJiY0JmIuZmxhZ3Mpe2M9aDt2YXIgaz1iLm1lbW9pemVkUHJvcHM7c3dpdGNoKGIudHlwZSl7Y2FzZSJidXR0b24iOmNhc2UiaW5wdXQiOmNhc2Uic2VsZWN0IjpjYXNlInRleHRhcmVhIjprLmF1dG9Gb2N1cyYmYy5mb2N1cygpO2JyZWFrO2Nhc2UiaW1nIjprLnNyYyYmKGMuc3JjPWsuc3JjKX19YnJlYWs7Y2FzZSA2OmNhc2UgNDpjYXNlIDEyOmNhc2UgMTk6Y2FzZSAxNzpjYXNlIDIxOmNhc2UgMjI6Y2FzZSAyMzpjYXNlIDI1OmJyZWFrO2Nhc2UgMTM6aWYobnVsbD09PWIubWVtb2l6ZWRTdGF0ZSl7dmFyIGw9Yi5hbHRlcm5hdGU7aWYobnVsbCE9PWwpe3ZhciBtPWwubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09bSl7dmFyIHE9bS5kZWh5ZHJhdGVkO251bGwhPT1xJiZiZChxKX19fWJyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IocCgxNjMpKX1VfHw1MTImYi5mbGFncyYmU2ooYil9Y2F0Y2gocil7VyhiLGIucmV0dXJuLHIpfX1pZihiPT09YSl7Vj1udWxsO2JyZWFrfWlmKG51bGwhPT0oYz1iLnNpYmxpbmcpKXtjLnJldHVybj1iLnJldHVybixWPWM7YnJlYWt9Vj1iLnJldHVybn19ZnVuY3Rpb24gaGsoYSl7Zm9yKDtudWxsIT09Vjspe3ZhciBiPVY7aWYoYj09PWEpe1Y9bnVsbDticmVha312YXIgYz1iLnNpYmxpbmc7aWYobnVsbCE9PWMpe2MucmV0dXJuPWIucmV0dXJuLFY9YzticmVha31WPWIucmV0dXJufX1mdW5jdGlvbiBrayhhKXtmb3IoO251bGwhPT1WOyl7dmFyIGI9Vjt0cnl7c3dpdGNoKGIudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OnZhciBjPWIucmV0dXJuO3RyeXtSaig0LGIpfWNhdGNoKGspe1coYixjLGspfWJyZWFrO2Nhc2UgMTp2YXIgZD1iLnN0YXRlTm9kZTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZC5jb21wb25lbnREaWRNb3VudCl7dmFyIGU9Yi5yZXR1cm47dHJ5e2QuY29tcG9uZW50RGlkTW91bnQoKX1jYXRjaChrMSl7VyhiLGUsazEpfX12YXIgZj1iLnJldHVybjt0cnl7U2ooYil9Y2F0Y2goazIpe1coYixmLGsyKX1icmVhaztjYXNlIDU6dmFyIGc9Yi5yZXR1cm47dHJ5e1NqKGIpfWNhdGNoKGszKXtXKGIsZyxrMyl9fX1jYXRjaChrNCl7VyhiLGIucmV0dXJuLGs0KX1pZihiPT09YSl7Vj1udWxsO2JyZWFrfXZhciBoPWIuc2libGluZztpZihudWxsIT09aCl7aC5yZXR1cm49Yi5yZXR1cm4sVj1oO2JyZWFrfVY9Yi5yZXR1cm59fXZhciBtaz1NYXRoLmNlaWwsbms9dWEuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixvaz11YS5SZWFjdEN1cnJlbnRPd25lcixwaz11YS5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZyxLPTAsUj1udWxsLFk9bnVsbCxaPTAsZ2o9MCxmaj1VZigwKSxUPTAscWs9bnVsbCxoaD0wLHJrPTAsc2s9MCx0az1udWxsLHVrPW51bGwsZ2s9MCxIaj0xLzAsdms9bnVsbCxQaT0hMSxRaT1udWxsLFNpPW51bGwsd2s9ITEseGs9bnVsbCx5az0wLHprPTAsQWs9bnVsbCxCaz0tMSxDaz0wO2Z1bmN0aW9uIEwoKXtyZXR1cm4gMCE9KDYmSyk/QigpOi0xIT09Qms/Qms6Qms9QigpfWZ1bmN0aW9uIGxoKGEpe3JldHVybiAwPT0oMSZhLm1vZGUpPzE6MCE9KDImSykmJjAhPT1aP1omLVo6bnVsbCE9PUtnLnRyYW5zaXRpb24/KDA9PT1DayYmKENrPXljKCkpLENrKTowIT09KGE9Qyk/YTphPXZvaWQgMD09PShhPXdpbmRvdy5ldmVudCk/MTY6amQoYS50eXBlKX1mdW5jdGlvbiBtaChhLGIsYyxkKXtpZig1MDx6ayl0aHJvdyB6az0wLEFrPW51bGwsRXJyb3IocCgxODUpKTtBYyhhLGMsZCksKDA9PSgyJkspfHxhIT09UikmJihhPT09UiYmKDA9PSgyJkspJiYocmt8PWMpLDQ9PT1UJiZEayhhLFopKSxFayhhLGQpLDE9PT1jJiYwPT09SyYmMD09KDEmYi5tb2RlKSYmKEhqPUIoKSs1MDAsZmcmJmpnKCkpKX1mdW5jdGlvbiBFayhhLGIpe3ZhciBhMSxhMixiMSxjPWEuY2FsbGJhY2tOb2RlOyFmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hLnN1c3BlbmRlZExhbmVzLGQ9YS5waW5nZWRMYW5lcyxlPWEuZXhwaXJhdGlvblRpbWVzLGY9YS5wZW5kaW5nTGFuZXM7MDxmOyl7dmFyIGc9MzEtb2MoZiksaD0xPDxnLGs9ZVtnXTstMT09PWs/KDA9PShoJmMpfHwwIT0oaCZkKSkmJihlW2ddPWZ1bmN0aW9uKGEsYil7c3dpdGNoKGEpe2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OnJldHVybiBiKzI1MDtjYXNlIDg6Y2FzZSAxNjpjYXNlIDMyOmNhc2UgNjQ6Y2FzZSAxMjg6Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOmNhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6cmV0dXJuIGIrNWUzO2RlZmF1bHQ6cmV0dXJuIC0xfX0oaCxiKSk6azw9YiYmKGEuZXhwaXJlZExhbmVzfD1oKSxmJj1+aH19KGEsYik7dmFyIGQ9dWMoYSxhPT09Uj9aOjApO2lmKDA9PT1kKW51bGwhPT1jJiZiYyhjKSxhLmNhbGxiYWNrTm9kZT1udWxsLGEuY2FsbGJhY2tQcmlvcml0eT0wO2Vsc2UgaWYoYj1kJi1kLGEuY2FsbGJhY2tQcmlvcml0eSE9PWIpe2lmKG51bGwhPWMmJmJjKGMpLDE9PT1iKXs7MD09PWEudGFnJiYoZmc9ITApLGExPUZrLmJpbmQobnVsbCxhKSxudWxsPT09ZWc/ZWc9W2ExXTplZy5wdXNoKGExKSxKZihmdW5jdGlvbigpezA9PSg2JkspJiZqZygpfSksYz1udWxsfWVsc2V7c3dpdGNoKERjKGQpKXtjYXNlIDE6Yz1mYzticmVhaztjYXNlIDQ6Yz1nYzticmVhaztjYXNlIDE2OmRlZmF1bHQ6Yz1oYzticmVhaztjYXNlIDUzNjg3MDkxMjpjPWpjfWEyPWMsYjE9SGsuYmluZChudWxsLGEpLGM9YWMoYTIsYjEpfWEuY2FsbGJhY2tQcmlvcml0eT1iLGEuY2FsbGJhY2tOb2RlPWN9fWZ1bmN0aW9uIEhrKGEsYil7aWYoQms9LTEsQ2s9MCwwIT0oNiZLKSl0aHJvdyBFcnJvcihwKDMyNykpO3ZhciBjPWEuY2FsbGJhY2tOb2RlO2lmKElrKCkmJmEuY2FsbGJhY2tOb2RlIT09YylyZXR1cm4gbnVsbDt2YXIgZD11YyhhLGE9PT1SP1o6MCk7aWYoMD09PWQpcmV0dXJuIG51bGw7aWYoMCE9KDMwJmQpfHwwIT0oZCZhLmV4cGlyZWRMYW5lcyl8fGIpYj1KayhhLGQpO2Vsc2V7Yj1kO3ZhciBlPUs7S3w9Mjt2YXIgZj1LaygpO2ZvcigoUiE9PWF8fFohPT1iKSYmKHZrPW51bGwsSGo9QigpKzUwMCxMayhhLGIpKTs7KXRyeXshZnVuY3Rpb24oKXtmb3IoO251bGwhPT1ZJiYhY2MoKTspVmsoWSl9KCk7YnJlYWt9Y2F0Y2goaCl7TmsoYSxoKX1RZygpLG5rLmN1cnJlbnQ9ZixLPWUsbnVsbCE9PVk/Yj0wOihSPW51bGwsWj0wLGI9VCl9aWYoMCE9PWIpe2lmKDI9PT1iJiYwIT09KGU9eGMoYSkpJiYoZD1lLGI9T2soYSxlKSksMT09PWIpdGhyb3cgYz1xayxMayhhLDApLERrKGEsZCksRWsoYSxCKCkpLGM7aWYoNj09PWIpRGsoYSxkKTtlbHNle2lmKGU9YS5jdXJyZW50LmFsdGVybmF0ZSwwPT0oMzAmZCkmJiFmdW5jdGlvbihhKXtmb3IodmFyIGI9YTs7KXtpZigxNjM4NCZiLmZsYWdzKXt2YXIgYz1iLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1jJiZudWxsIT09KGM9Yy5zdG9yZXMpKWZvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1jW2RdLGY9ZS5nZXRTbmFwc2hvdDtlPWUudmFsdWU7dHJ5e2lmKCFIZShmKCksZSkpcmV0dXJuITF9Y2F0Y2goZyl7cmV0dXJuITF9fX1pZihjPWIuY2hpbGQsMTYzODQmYi5zdWJ0cmVlRmxhZ3MmJm51bGwhPT1jKWMucmV0dXJuPWIsYj1jO2Vsc2V7aWYoYj09PWEpYnJlYWs7Zm9yKDtudWxsPT09Yi5zaWJsaW5nOyl7aWYobnVsbD09PWIucmV0dXJufHxiLnJldHVybj09PWEpcmV0dXJuITA7Yj1iLnJldHVybn1iLnNpYmxpbmcucmV0dXJuPWIucmV0dXJuLGI9Yi5zaWJsaW5nfX1yZXR1cm4hMH0oZSkmJigyPT09KGI9SmsoYSxkKSkmJjAhPT0oZj14YyhhKSkmJihkPWYsYj1PayhhLGYpKSwxPT09YikpdGhyb3cgYz1xayxMayhhLDApLERrKGEsZCksRWsoYSxCKCkpLGM7c3dpdGNoKGEuZmluaXNoZWRXb3JrPWUsYS5maW5pc2hlZExhbmVzPWQsYil7Y2FzZSAwOmNhc2UgMTp0aHJvdyBFcnJvcihwKDM0NSkpO2Nhc2UgMjpjYXNlIDU6UWsoYSx1ayx2ayk7YnJlYWs7Y2FzZSAzOmlmKERrKGEsZCksKDEzMDAyMzQyNCZkKT09PWQmJjEwPChiPWdrKzUwMC1CKCkpKXtpZigwIT09dWMoYSwwKSlicmVhaztpZigoKGU9YS5zdXNwZW5kZWRMYW5lcykmZCkhPT1kKXtMKCksYS5waW5nZWRMYW5lc3w9YS5zdXNwZW5kZWRMYW5lcyZlO2JyZWFrfWEudGltZW91dEhhbmRsZT1GZihRay5iaW5kKG51bGwsYSx1ayx2ayksYik7YnJlYWt9UWsoYSx1ayx2ayk7YnJlYWs7Y2FzZSA0OmlmKERrKGEsZCksKDQxOTQyNDAmZCk9PT1kKWJyZWFrO2ZvcihlPS0xLGI9YS5ldmVudFRpbWVzOzA8ZDspe3ZhciBnPTMxLW9jKGQpO2Y9MTw8ZywoZz1iW2ddKT5lJiYoZT1nKSxkJj1+Zn1pZihkPWUsMTA8KGQ9KDEyMD4oZD1CKCktZCk/MTIwOjQ4MD5kPzQ4MDoxMDgwPmQ/MTA4MDoxOTIwPmQ/MTkyMDozZTM+ZD8zZTM6NDMyMD5kPzQzMjA6MTk2MCptayhkLzE5NjApKS1kKSl7YS50aW1lb3V0SGFuZGxlPUZmKFFrLmJpbmQobnVsbCxhLHVrLHZrKSxkKTticmVha31RayhhLHVrLHZrKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKHAoMzI5KSl9fX1yZXR1cm4gRWsoYSxCKCkpLGEuY2FsbGJhY2tOb2RlPT09Yz9Iay5iaW5kKG51bGwsYSk6bnVsbH1mdW5jdGlvbiBPayhhLGIpe3ZhciBjPXRrO3JldHVybiBhLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQmJihMayhhLGIpLmZsYWdzfD0yNTYpLDIhPT0oYT1KayhhLGIpKSYmKGI9dWssdWs9YyxudWxsIT09YiYmR2ooYikpLGF9ZnVuY3Rpb24gR2ooYSl7bnVsbD09PXVrP3VrPWE6dWsucHVzaC5hcHBseSh1ayxhKX1mdW5jdGlvbiBEayhhLGIpe2ZvcihiJj1+c2ssYiY9fnJrLGEuc3VzcGVuZGVkTGFuZXN8PWIsYS5waW5nZWRMYW5lcyY9fmIsYT1hLmV4cGlyYXRpb25UaW1lczswPGI7KXt2YXIgYz0zMS1vYyhiKSxkPTE8PGM7YVtjXT0tMSxiJj1+ZH19ZnVuY3Rpb24gRmsoYSl7aWYoMCE9KDYmSykpdGhyb3cgRXJyb3IocCgzMjcpKTtJaygpO3ZhciBiPXVjKGEsMCk7aWYoMD09KDEmYikpcmV0dXJuIEVrKGEsQigpKSxudWxsO3ZhciBjPUprKGEsYik7aWYoMCE9PWEudGFnJiYyPT09Yyl7dmFyIGQ9eGMoYSk7MCE9PWQmJihiPWQsYz1PayhhLGQpKX1pZigxPT09Yyl0aHJvdyBjPXFrLExrKGEsMCksRGsoYSxiKSxFayhhLEIoKSksYztpZig2PT09Yyl0aHJvdyBFcnJvcihwKDM0NSkpO3JldHVybiBhLmZpbmlzaGVkV29yaz1hLmN1cnJlbnQuYWx0ZXJuYXRlLGEuZmluaXNoZWRMYW5lcz1iLFFrKGEsdWssdmspLEVrKGEsQigpKSxudWxsfWZ1bmN0aW9uIFJrKGEsYil7dmFyIGM9SztLfD0xO3RyeXtyZXR1cm4gYShiKX1maW5hbGx5ezA9PT0oSz1jKSYmKEhqPUIoKSs1MDAsZmcmJmpnKCkpfX1mdW5jdGlvbiBTayhhKXtudWxsIT09eGsmJjA9PT14ay50YWcmJjA9PSg2JkspJiZJaygpO3ZhciBiPUs7S3w9MTt2YXIgYz1way50cmFuc2l0aW9uLGQ9Qzt0cnl7aWYocGsudHJhbnNpdGlvbj1udWxsLEM9MSxhKXJldHVybiBhKCl9ZmluYWxseXtDPWQscGsudHJhbnNpdGlvbj1jLDA9PSg2JihLPWIpKSYmamcoKX19ZnVuY3Rpb24gSWooKXtnaj1mai5jdXJyZW50LEUoZmopfWZ1bmN0aW9uIExrKGEsYil7YS5maW5pc2hlZFdvcms9bnVsbCxhLmZpbmlzaGVkTGFuZXM9MDt2YXIgYz1hLnRpbWVvdXRIYW5kbGU7aWYoLTEhPT1jJiYoYS50aW1lb3V0SGFuZGxlPS0xLEdmKGMpKSxudWxsIT09WSlmb3IoYz1ZLnJldHVybjtudWxsIT09Yzspe3ZhciBkPWM7c3dpdGNoKHdnKGQpLGQudGFnKXtjYXNlIDE6bnVsbCE9KGQ9ZC50eXBlLmNoaWxkQ29udGV4dFR5cGVzKSYmJGYoKTticmVhaztjYXNlIDM6SmgoKSxFKFdmKSxFKEgpLE9oKCk7YnJlYWs7Y2FzZSA1OkxoKGQpO2JyZWFrO2Nhc2UgNDpKaCgpO2JyZWFrO2Nhc2UgMTM6Y2FzZSAxOTpFKE0pO2JyZWFrO2Nhc2UgMTA6UmcoZC50eXBlLl9jb250ZXh0KTticmVhaztjYXNlIDIyOmNhc2UgMjM6SWooKX1jPWMucmV0dXJufWlmKFI9YSxZPWE9d2goYS5jdXJyZW50LG51bGwpLFo9Z2o9YixUPTAscWs9bnVsbCxzaz1yaz1oaD0wLHVrPXRrPW51bGwsbnVsbCE9PVdnKXtmb3IoYj0wO2I8V2cubGVuZ3RoO2IrKylpZihudWxsIT09KGQ9KGM9V2dbYl0pLmludGVybGVhdmVkKSl7Yy5pbnRlcmxlYXZlZD1udWxsO3ZhciBlPWQubmV4dCxmPWMucGVuZGluZztpZihudWxsIT09Zil7dmFyIGc9Zi5uZXh0O2YubmV4dD1lLGQubmV4dD1nfWMucGVuZGluZz1kfVdnPW51bGx9cmV0dXJuIGF9ZnVuY3Rpb24gTmsoYSxiKXtmb3IoOzspe3ZhciBjPVk7dHJ5e2lmKFFnKCksUGguY3VycmVudD1haSxTaCl7Zm9yKHZhciBkPU4ubWVtb2l6ZWRTdGF0ZTtudWxsIT09ZDspe3ZhciBlPWQucXVldWU7bnVsbCE9PWUmJihlLnBlbmRpbmc9bnVsbCksZD1kLm5leHR9U2g9ITF9aWYoUmg9MCxQPU89Tj1udWxsLFRoPSExLFVoPTAsb2suY3VycmVudD1udWxsLG51bGw9PT1jfHxudWxsPT09Yy5yZXR1cm4pe1Q9MSxxaz1iLFk9bnVsbDticmVha31hOnt2YXIgZj1hLGc9Yy5yZXR1cm4saD1jLGs9YjtpZihiPVosaC5mbGFnc3w9MzI3NjgsbnVsbCE9PWsmJiJvYmplY3QiPT10eXBlb2YgayYmImZ1bmN0aW9uIj09dHlwZW9mIGsudGhlbil7dmFyIGw9ayxtPWgscT1tLnRhZztpZigwPT0oMSZtLm1vZGUpJiYoMD09PXF8fDExPT09cXx8MTU9PT1xKSl7dmFyIHI9bS5hbHRlcm5hdGU7cj8obS51cGRhdGVRdWV1ZT1yLnVwZGF0ZVF1ZXVlLG0ubWVtb2l6ZWRTdGF0ZT1yLm1lbW9pemVkU3RhdGUsbS5sYW5lcz1yLmxhbmVzKToobS51cGRhdGVRdWV1ZT1udWxsLG0ubWVtb2l6ZWRTdGF0ZT1udWxsKX12YXIgeT1WaShnKTtpZihudWxsIT09eSl7eS5mbGFncyY9LTI1NyxXaSh5LGcsaCxmLGIpLDEmeS5tb2RlJiZUaShmLGwsYiksYj15LGs9bDt2YXIgbj1iLnVwZGF0ZVF1ZXVlO2lmKG51bGw9PT1uKXt2YXIgdD1uZXcgU2V0O3QuYWRkKGspLGIudXBkYXRlUXVldWU9dH1lbHNlIG4uYWRkKGspO2JyZWFrIGF9aWYoMD09KDEmYikpe1RpKGYsbCxiKSx1aigpO2JyZWFrIGF9az1FcnJvcihwKDQyNikpfWVsc2UgaWYoSSYmMSZoLm1vZGUpe3ZhciBKPVZpKGcpO2lmKG51bGwhPT1KKXswPT0oNjU1MzYmSi5mbGFncykmJihKLmZsYWdzfD0yNTYpLFdpKEosZyxoLGYsYiksSmcoS2koayxoKSk7YnJlYWsgYX19Zj1rPUtpKGssaCksNCE9PVQmJihUPTIpLG51bGw9PT10az90az1bZl06dGsucHVzaChmKSxmPWc7ZG97c3dpdGNoKGYudGFnKXtjYXNlIDM6Zi5mbGFnc3w9NjU1MzYsYiY9LWIsZi5sYW5lc3w9Yjt2YXIgeD1PaShmLGssYik7ZmgoZix4KTticmVhayBhO2Nhc2UgMTpoPWs7dmFyIHc9Zi50eXBlLHU9Zi5zdGF0ZU5vZGU7aWYoMD09KDEyOCZmLmZsYWdzKSYmKCJmdW5jdGlvbiI9PXR5cGVvZiB3LmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8bnVsbCE9PXUmJiJmdW5jdGlvbiI9PXR5cGVvZiB1LmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PVNpfHwhU2kuaGFzKHUpKSkpe2YuZmxhZ3N8PTY1NTM2LGImPS1iLGYubGFuZXN8PWI7dmFyIEY9UmkoZixoLGIpO2ZoKGYsRik7YnJlYWsgYX19Zj1mLnJldHVybn13aGlsZShudWxsIT09Zil9VGsoYyl9Y2F0Y2gobmEpe2I9bmEsWT09PWMmJm51bGwhPT1jJiYoWT1jPWMucmV0dXJuKTtjb250aW51ZX1icmVha319ZnVuY3Rpb24gS2soKXt2YXIgYT1uay5jdXJyZW50O3JldHVybiBuay5jdXJyZW50PWFpLG51bGw9PT1hP2FpOmF9ZnVuY3Rpb24gdWooKXsoMD09PVR8fDM9PT1UfHwyPT09VCkmJihUPTQpLG51bGw9PT1SfHwwPT0oMjY4NDM1NDU1JmhoKSYmMD09KDI2ODQzNTQ1NSZyayl8fERrKFIsWil9ZnVuY3Rpb24gSmsoYSxiKXt2YXIgYz1LO0t8PTI7dmFyIGQ9S2soKTtmb3IoKFIhPT1hfHxaIT09YikmJih2az1udWxsLExrKGEsYikpOzspdHJ5eyFmdW5jdGlvbigpe2Zvcig7bnVsbCE9PVk7KVZrKFkpfSgpO2JyZWFrfWNhdGNoKGUpe05rKGEsZSl9aWYoUWcoKSxLPWMsbmsuY3VycmVudD1kLG51bGwhPT1ZKXRocm93IEVycm9yKHAoMjYxKSk7cmV0dXJuIFI9bnVsbCxaPTAsVH1mdW5jdGlvbiBWayhhKXt2YXIgYj1XayhhLmFsdGVybmF0ZSxhLGdqKTthLm1lbW9pemVkUHJvcHM9YS5wZW5kaW5nUHJvcHMsbnVsbD09PWI/VGsoYSk6WT1iLG9rLmN1cnJlbnQ9bnVsbH1mdW5jdGlvbiBUayhhKXt2YXIgYj1hO2Rve3ZhciBjPWIuYWx0ZXJuYXRlO2lmKGE9Yi5yZXR1cm4sMD09KDMyNzY4JmIuZmxhZ3MpKXtpZihudWxsIT09KGM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWIucGVuZGluZ1Byb3BzO3N3aXRjaCh3ZyhiKSxiLnRhZyl7Y2FzZSAyOmNhc2UgMTY6Y2FzZSAxNTpjYXNlIDA6Y2FzZSAxMTpjYXNlIDc6Y2FzZSA4OmNhc2UgMTI6Y2FzZSA5OmNhc2UgMTQ6cmV0dXJuIFMoYiksbnVsbDtjYXNlIDE6Y2FzZSAxNzpyZXR1cm4gWmYoYi50eXBlKSYmJGYoKSxTKGIpLG51bGw7Y2FzZSAzOnJldHVybiBkPWIuc3RhdGVOb2RlLEpoKCksRShXZiksRShIKSxPaCgpLGQucGVuZGluZ0NvbnRleHQmJihkLmNvbnRleHQ9ZC5wZW5kaW5nQ29udGV4dCxkLnBlbmRpbmdDb250ZXh0PW51bGwpLChudWxsPT09YXx8bnVsbD09PWEuY2hpbGQpJiYoR2coYik/Yi5mbGFnc3w9NDpudWxsPT09YXx8YS5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCYmMD09KDI1NiZiLmZsYWdzKXx8KGIuZmxhZ3N8PTEwMjQsbnVsbCE9PXpnJiYoR2ooemcpLHpnPW51bGwpKSksQmooYSxiKSxTKGIpLG51bGw7Y2FzZSA1OkxoKGIpO3ZhciBlPUhoKEdoLmN1cnJlbnQpO2lmKGM9Yi50eXBlLG51bGwhPT1hJiZudWxsIT1iLnN0YXRlTm9kZSlDaihhLGIsYyxkLGUpLGEucmVmIT09Yi5yZWYmJihiLmZsYWdzfD01MTIsYi5mbGFnc3w9MjA5NzE1Mik7ZWxzZXtpZighZCl7aWYobnVsbD09PWIuc3RhdGVOb2RlKXRocm93IEVycm9yKHAoMTY2KSk7cmV0dXJuIFMoYiksbnVsbH1pZihhPUhoKEVoLmN1cnJlbnQpLEdnKGIpKXtkPWIuc3RhdGVOb2RlLGM9Yi50eXBlO3ZhciBmPWIubWVtb2l6ZWRQcm9wcztzd2l0Y2goZFtPZl09YixkW1BmXT1mLGE9MCE9KDEmYi5tb2RlKSxjKXtjYXNlImRpYWxvZyI6RCgiY2FuY2VsIixkKSxEKCJjbG9zZSIsZCk7YnJlYWs7Y2FzZSJpZnJhbWUiOmNhc2Uib2JqZWN0IjpjYXNlImVtYmVkIjpEKCJsb2FkIixkKTticmVhaztjYXNlInZpZGVvIjpjYXNlImF1ZGlvIjpmb3IoZT0wO2U8bGYubGVuZ3RoO2UrKylEKGxmW2VdLGQpO2JyZWFrO2Nhc2Uic291cmNlIjpEKCJlcnJvciIsZCk7YnJlYWs7Y2FzZSJpbWciOmNhc2UiaW1hZ2UiOmNhc2UibGluayI6RCgiZXJyb3IiLGQpLEQoImxvYWQiLGQpO2JyZWFrO2Nhc2UiZGV0YWlscyI6RCgidG9nZ2xlIixkKTticmVhaztjYXNlImlucHV0IjpaYShkLGYpLEQoImludmFsaWQiLGQpO2JyZWFrO2Nhc2Uic2VsZWN0IjpkLl93cmFwcGVyU3RhdGU9e3dhc011bHRpcGxlOiEhZi5tdWx0aXBsZX0sRCgiaW52YWxpZCIsZCk7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6aGIoZCxmKSxEKCJpbnZhbGlkIixkKX1mb3IodmFyIGcgaW4gdWIoYyxmKSxlPW51bGwsZilpZihmLmhhc093blByb3BlcnR5KGcpKXt2YXIgaD1mW2ddOyJjaGlsZHJlbiI9PT1nPyJzdHJpbmciPT10eXBlb2YgaD9kLnRleHRDb250ZW50IT09aCYmKCEwIT09Zi5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcmJkFmKGQudGV4dENvbnRlbnQsaCxhKSxlPVsiY2hpbGRyZW4iLGhdKToibnVtYmVyIj09dHlwZW9mIGgmJmQudGV4dENvbnRlbnQhPT0iIitoJiYoITAhPT1mLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyYmQWYoZC50ZXh0Q29udGVudCxoLGEpLGU9WyJjaGlsZHJlbiIsIiIraF0pOmVhLmhhc093blByb3BlcnR5KGcpJiZudWxsIT1oJiYib25TY3JvbGwiPT09ZyYmRCgic2Nyb2xsIixkKX1zd2l0Y2goYyl7Y2FzZSJpbnB1dCI6VmEoZCksZGIoZCxmLCEwKTticmVhaztjYXNlInRleHRhcmVhIjpWYShkKSxqYihkKTticmVhaztjYXNlInNlbGVjdCI6Y2FzZSJvcHRpb24iOmJyZWFrO2RlZmF1bHQ6ImZ1bmN0aW9uIj09dHlwZW9mIGYub25DbGljayYmKGQub25jbGljaz1CZil9ZD1lLGIudXBkYXRlUXVldWU9ZCxudWxsIT09ZCYmKGIuZmxhZ3N8PTQpfWVsc2V7Zz05PT09ZS5ub2RlVHlwZT9lOmUub3duZXJEb2N1bWVudCwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI9PT1hJiYoYT1rYihjKSksImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPT09YT8ic2NyaXB0Ij09PWM/KChhPWcuY3JlYXRlRWxlbWVudCgiZGl2IikpLmlubmVySFRNTD0iPHNjcmlwdD48L3NjcmlwdD4iLGE9YS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpKToic3RyaW5nIj09dHlwZW9mIGQuaXM/YT1nLmNyZWF0ZUVsZW1lbnQoYyx7aXM6ZC5pc30pOihhPWcuY3JlYXRlRWxlbWVudChjKSwic2VsZWN0Ij09PWMmJihnPWEsZC5tdWx0aXBsZT9nLm11bHRpcGxlPSEwOmQuc2l6ZSYmKGcuc2l6ZT1kLnNpemUpKSk6YT1nLmNyZWF0ZUVsZW1lbnROUyhhLGMpLGFbT2ZdPWIsYVtQZl09ZCxBaihhLGIsITEsITEpLGIuc3RhdGVOb2RlPWE7YTp7c3dpdGNoKGc9dmIoYyxkKSxjKXtjYXNlImRpYWxvZyI6RCgiY2FuY2VsIixhKSxEKCJjbG9zZSIsYSksZT1kO2JyZWFrO2Nhc2UiaWZyYW1lIjpjYXNlIm9iamVjdCI6Y2FzZSJlbWJlZCI6RCgibG9hZCIsYSksZT1kO2JyZWFrO2Nhc2UidmlkZW8iOmNhc2UiYXVkaW8iOmZvcihlPTA7ZTxsZi5sZW5ndGg7ZSsrKUQobGZbZV0sYSk7ZT1kO2JyZWFrO2Nhc2Uic291cmNlIjpEKCJlcnJvciIsYSksZT1kO2JyZWFrO2Nhc2UiaW1nIjpjYXNlImltYWdlIjpjYXNlImxpbmsiOkQoImVycm9yIixhKSxEKCJsb2FkIixhKSxlPWQ7YnJlYWs7Y2FzZSJkZXRhaWxzIjpEKCJ0b2dnbGUiLGEpLGU9ZDticmVhaztjYXNlImlucHV0IjpaYShhLGQpLGU9WWEoYSxkKSxEKCJpbnZhbGlkIixhKTticmVhaztjYXNlIm9wdGlvbiI6ZGVmYXVsdDplPWQ7YnJlYWs7Y2FzZSJzZWxlY3QiOmEuX3dyYXBwZXJTdGF0ZT17d2FzTXVsdGlwbGU6ISFkLm11bHRpcGxlfSxlPUEoe30sZCx7dmFsdWU6dm9pZCAwfSksRCgiaW52YWxpZCIsYSk7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6aGIoYSxkKSxlPWdiKGEsZCksRCgiaW52YWxpZCIsYSl9Zm9yKGYgaW4gdWIoYyxlKSxoPWUpaWYoaC5oYXNPd25Qcm9wZXJ0eShmKSl7dmFyIGs9aFtmXTsic3R5bGUiPT09Zj9zYihhLGspOiJkYW5nZXJvdXNseVNldElubmVySFRNTCI9PT1mP251bGwhPShrPWs/ay5fX2h0bWw6dm9pZCAwKSYmbmIoYSxrKToiY2hpbGRyZW4iPT09Zj8ic3RyaW5nIj09dHlwZW9mIGs/KCJ0ZXh0YXJlYSIhPT1jfHwiIiE9PWspJiZvYihhLGspOiJudW1iZXIiPT10eXBlb2YgayYmb2IoYSwiIitrKToic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIiE9PWYmJiJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmciIT09ZiYmImF1dG9Gb2N1cyIhPT1mJiYoZWEuaGFzT3duUHJvcGVydHkoZik/bnVsbCE9ayYmIm9uU2Nyb2xsIj09PWYmJkQoInNjcm9sbCIsYSk6bnVsbCE9ayYmdGEoYSxmLGssZykpfXN3aXRjaChjKXtjYXNlImlucHV0IjpWYShhKSxkYihhLGQsITEpO2JyZWFrO2Nhc2UidGV4dGFyZWEiOlZhKGEpLGpiKGEpO2JyZWFrO2Nhc2Uib3B0aW9uIjpudWxsIT1kLnZhbHVlJiZhLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIiK1NhKGQudmFsdWUpKTticmVhaztjYXNlInNlbGVjdCI6YS5tdWx0aXBsZT0hIWQubXVsdGlwbGUsbnVsbCE9KGY9ZC52YWx1ZSk/ZmIoYSwhIWQubXVsdGlwbGUsZiwhMSk6bnVsbCE9ZC5kZWZhdWx0VmFsdWUmJmZiKGEsISFkLm11bHRpcGxlLGQuZGVmYXVsdFZhbHVlLCEwKTticmVhaztkZWZhdWx0OiJmdW5jdGlvbiI9PXR5cGVvZiBlLm9uQ2xpY2smJihhLm9uY2xpY2s9QmYpfXN3aXRjaChjKXtjYXNlImJ1dHRvbiI6Y2FzZSJpbnB1dCI6Y2FzZSJzZWxlY3QiOmNhc2UidGV4dGFyZWEiOmQ9ISFkLmF1dG9Gb2N1czticmVhayBhO2Nhc2UiaW1nIjpkPSEwO2JyZWFrIGE7ZGVmYXVsdDpkPSExfX1kJiYoYi5mbGFnc3w9NCl9bnVsbCE9PWIucmVmJiYoYi5mbGFnc3w9NTEyLGIuZmxhZ3N8PTIwOTcxNTIpfXJldHVybiBTKGIpLG51bGw7Y2FzZSA2OmlmKGEmJm51bGwhPWIuc3RhdGVOb2RlKURqKGEsYixhLm1lbW9pemVkUHJvcHMsZCk7ZWxzZXtpZigic3RyaW5nIiE9dHlwZW9mIGQmJm51bGw9PT1iLnN0YXRlTm9kZSl0aHJvdyBFcnJvcihwKDE2NikpO2lmKGM9SGgoR2guY3VycmVudCksSGgoRWguY3VycmVudCksR2coYikpe2lmKGQ9Yi5zdGF0ZU5vZGUsYz1iLm1lbW9pemVkUHJvcHMsZFtPZl09YiwoZj1kLm5vZGVWYWx1ZSE9PWMpJiZudWxsIT09KGE9eGcpKXN3aXRjaChhLnRhZyl7Y2FzZSAzOkFmKGQubm9kZVZhbHVlLGMsMCE9KDEmYS5tb2RlKSk7YnJlYWs7Y2FzZSA1OiEwIT09YS5tZW1vaXplZFByb3BzLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyYmQWYoZC5ub2RlVmFsdWUsYywwIT0oMSZhLm1vZGUpKX1mJiYoYi5mbGFnc3w9NCl9ZWxzZShkPSg5PT09Yy5ub2RlVHlwZT9jOmMub3duZXJEb2N1bWVudCkuY3JlYXRlVGV4dE5vZGUoZCkpW09mXT1iLGIuc3RhdGVOb2RlPWR9cmV0dXJuIFMoYiksbnVsbDtjYXNlIDEzOmlmKEUoTSksZD1iLm1lbW9pemVkU3RhdGUsbnVsbD09PWF8fG51bGwhPT1hLm1lbW9pemVkU3RhdGUmJm51bGwhPT1hLm1lbW9pemVkU3RhdGUuZGVoeWRyYXRlZCl7aWYoSSYmbnVsbCE9PXlnJiYwIT0oMSZiLm1vZGUpJiYwPT0oMTI4JmIuZmxhZ3MpKUhnKCksSWcoKSxiLmZsYWdzfD05ODU2MCxmPSExO2Vsc2UgaWYoZj1HZyhiKSxudWxsIT09ZCYmbnVsbCE9PWQuZGVoeWRyYXRlZCl7aWYobnVsbD09PWEpe2lmKCFmKXRocm93IEVycm9yKHAoMzE4KSk7aWYoIShmPW51bGwhPT0oZj1iLm1lbW9pemVkU3RhdGUpP2YuZGVoeWRyYXRlZDpudWxsKSl0aHJvdyBFcnJvcihwKDMxNykpO2ZbT2ZdPWJ9ZWxzZSBJZygpLDA9PSgxMjgmYi5mbGFncykmJihiLm1lbW9pemVkU3RhdGU9bnVsbCksYi5mbGFnc3w9NDtTKGIpLGY9ITF9ZWxzZSBudWxsIT09emcmJihHaih6Zyksemc9bnVsbCksZj0hMDtpZighZilyZXR1cm4gNjU1MzYmYi5mbGFncz9iOm51bGx9aWYoMCE9KDEyOCZiLmZsYWdzKSlyZXR1cm4gYi5sYW5lcz1jLGI7cmV0dXJuKGQ9bnVsbCE9PWQpIT0obnVsbCE9PWEmJm51bGwhPT1hLm1lbW9pemVkU3RhdGUpJiZkJiYoYi5jaGlsZC5mbGFnc3w9ODE5MiwwIT0oMSZiLm1vZGUpJiYobnVsbD09PWF8fDAhPSgxJk0uY3VycmVudCk/MD09PVQmJihUPTMpOnVqKCkpKSxudWxsIT09Yi51cGRhdGVRdWV1ZSYmKGIuZmxhZ3N8PTQpLFMoYiksbnVsbDtjYXNlIDQ6cmV0dXJuIEpoKCksQmooYSxiKSxudWxsPT09YSYmc2YoYi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksUyhiKSxudWxsO2Nhc2UgMTA6cmV0dXJuIFJnKGIudHlwZS5fY29udGV4dCksUyhiKSxudWxsO2Nhc2UgMTk6aWYoRShNKSxudWxsPT09KGY9Yi5tZW1vaXplZFN0YXRlKSlyZXR1cm4gUyhiKSxudWxsO2lmKGQ9MCE9KDEyOCZiLmZsYWdzKSxudWxsPT09KGc9Zi5yZW5kZXJpbmcpKXtpZihkKUVqKGYsITEpO2Vsc2V7aWYoMCE9PVR8fG51bGwhPT1hJiYwIT0oMTI4JmEuZmxhZ3MpKWZvcihhPWIuY2hpbGQ7bnVsbCE9PWE7KXtpZihudWxsIT09KGc9TWgoYSkpKXtmb3IoYi5mbGFnc3w9MTI4LEVqKGYsITEpLG51bGwhPT0oZD1nLnVwZGF0ZVF1ZXVlKSYmKGIudXBkYXRlUXVldWU9ZCxiLmZsYWdzfD00KSxiLnN1YnRyZWVGbGFncz0wLGQ9YyxjPWIuY2hpbGQ7bnVsbCE9PWM7KWY9YyxhPWQsZi5mbGFncyY9MTQ2ODAwNjYsbnVsbD09PShnPWYuYWx0ZXJuYXRlKT8oZi5jaGlsZExhbmVzPTAsZi5sYW5lcz1hLGYuY2hpbGQ9bnVsbCxmLnN1YnRyZWVGbGFncz0wLGYubWVtb2l6ZWRQcm9wcz1udWxsLGYubWVtb2l6ZWRTdGF0ZT1udWxsLGYudXBkYXRlUXVldWU9bnVsbCxmLmRlcGVuZGVuY2llcz1udWxsLGYuc3RhdGVOb2RlPW51bGwpOihmLmNoaWxkTGFuZXM9Zy5jaGlsZExhbmVzLGYubGFuZXM9Zy5sYW5lcyxmLmNoaWxkPWcuY2hpbGQsZi5zdWJ0cmVlRmxhZ3M9MCxmLmRlbGV0aW9ucz1udWxsLGYubWVtb2l6ZWRQcm9wcz1nLm1lbW9pemVkUHJvcHMsZi5tZW1vaXplZFN0YXRlPWcubWVtb2l6ZWRTdGF0ZSxmLnVwZGF0ZVF1ZXVlPWcudXBkYXRlUXVldWUsZi50eXBlPWcudHlwZSxhPWcuZGVwZW5kZW5jaWVzLGYuZGVwZW5kZW5jaWVzPW51bGw9PT1hP251bGw6e2xhbmVzOmEubGFuZXMsZmlyc3RDb250ZXh0OmEuZmlyc3RDb250ZXh0fSksYz1jLnNpYmxpbmc7cmV0dXJuIEcoTSwxJk0uY3VycmVudHwyKSxiLmNoaWxkfWE9YS5zaWJsaW5nfW51bGwhPT1mLnRhaWwmJkIoKT5IaiYmKGIuZmxhZ3N8PTEyOCxkPSEwLEVqKGYsITEpLGIubGFuZXM9NDE5NDMwNCl9fWVsc2V7aWYoIWQpe2lmKG51bGwhPT0oYT1NaChnKSkpe2lmKGIuZmxhZ3N8PTEyOCxkPSEwLG51bGwhPT0oYz1hLnVwZGF0ZVF1ZXVlKSYmKGIudXBkYXRlUXVldWU9YyxiLmZsYWdzfD00KSxFaihmLCEwKSxudWxsPT09Zi50YWlsJiYiaGlkZGVuIj09PWYudGFpbE1vZGUmJiFnLmFsdGVybmF0ZSYmIUkpcmV0dXJuIFMoYiksbnVsbH1lbHNlIDIqQigpLWYucmVuZGVyaW5nU3RhcnRUaW1lPkhqJiYxMDczNzQxODI0IT09YyYmKGIuZmxhZ3N8PTEyOCxkPSEwLEVqKGYsITEpLGIubGFuZXM9NDE5NDMwNCl9Zi5pc0JhY2t3YXJkcz8oZy5zaWJsaW5nPWIuY2hpbGQsYi5jaGlsZD1nKToobnVsbCE9PShjPWYubGFzdCk/Yy5zaWJsaW5nPWc6Yi5jaGlsZD1nLGYubGFzdD1nKX1pZihudWxsIT09Zi50YWlsKXJldHVybiBiPWYudGFpbCxmLnJlbmRlcmluZz1iLGYudGFpbD1iLnNpYmxpbmcsZi5yZW5kZXJpbmdTdGFydFRpbWU9QigpLGIuc2libGluZz1udWxsLGM9TS5jdXJyZW50LEcoTSxkPzEmY3wyOjEmYyksYjtyZXR1cm4gUyhiKSxudWxsO2Nhc2UgMjI6Y2FzZSAyMzpyZXR1cm4gSWooKSxkPW51bGwhPT1iLm1lbW9pemVkU3RhdGUsbnVsbCE9PWEmJm51bGwhPT1hLm1lbW9pemVkU3RhdGUhPT1kJiYoYi5mbGFnc3w9ODE5MiksZCYmMCE9KDEmYi5tb2RlKT8wIT0oMTA3Mzc0MTgyNCZnaikmJihTKGIpLDYmYi5zdWJ0cmVlRmxhZ3MmJihiLmZsYWdzfD04MTkyKSk6UyhiKSxudWxsO2Nhc2UgMjQ6Y2FzZSAyNTpyZXR1cm4gbnVsbH10aHJvdyBFcnJvcihwKDE1NixiLnRhZykpfShjLGIsZ2opKSl7WT1jO3JldHVybn19ZWxzZXtpZihudWxsIT09KGM9ZnVuY3Rpb24oYSxiKXtzd2l0Y2god2coYiksYi50YWcpe2Nhc2UgMTpyZXR1cm4gWmYoYi50eXBlKSYmJGYoKSw2NTUzNiYoYT1iLmZsYWdzKT8oYi5mbGFncz0tNjU1MzcmYXwxMjgsYik6bnVsbDtjYXNlIDM6cmV0dXJuIEpoKCksRShXZiksRShIKSxPaCgpLDAhPSg2NTUzNiYoYT1iLmZsYWdzKSkmJjA9PSgxMjgmYSk/KGIuZmxhZ3M9LTY1NTM3JmF8MTI4LGIpOm51bGw7Y2FzZSA1OnJldHVybiBMaChiKSxudWxsO2Nhc2UgMTM6aWYoRShNKSxudWxsIT09KGE9Yi5tZW1vaXplZFN0YXRlKSYmbnVsbCE9PWEuZGVoeWRyYXRlZCl7aWYobnVsbD09PWIuYWx0ZXJuYXRlKXRocm93IEVycm9yKHAoMzQwKSk7SWcoKX1yZXR1cm4gNjU1MzYmKGE9Yi5mbGFncyk/KGIuZmxhZ3M9LTY1NTM3JmF8MTI4LGIpOm51bGw7Y2FzZSAxOTpyZXR1cm4gRShNKSxudWxsO2Nhc2UgNDpyZXR1cm4gSmgoKSxudWxsO2Nhc2UgMTA6cmV0dXJuIFJnKGIudHlwZS5fY29udGV4dCksbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIElqKCksbnVsbDtkZWZhdWx0OnJldHVybiBudWxsfX0oYyxiKSkpe2MuZmxhZ3MmPTMyNzY3LFk9YztyZXR1cm59aWYobnVsbCE9PWEpYS5mbGFnc3w9MzI3NjgsYS5zdWJ0cmVlRmxhZ3M9MCxhLmRlbGV0aW9ucz1udWxsO2Vsc2V7VD02LFk9bnVsbDtyZXR1cm59fWlmKG51bGwhPT0oYj1iLnNpYmxpbmcpKXtZPWI7cmV0dXJufVk9Yj1hfXdoaWxlKG51bGwhPT1iKTswPT09VCYmKFQ9NSl9ZnVuY3Rpb24gUWsoYSxiLGMpe3ZhciBkPUMsZT1way50cmFuc2l0aW9uO3RyeXtway50cmFuc2l0aW9uPW51bGwsQz0xLGZ1bmN0aW9uKGEsYixjLGQpe2RvIElrKCk7d2hpbGUobnVsbCE9PXhrKTtpZigwIT0oNiZLKSl0aHJvdyBFcnJvcihwKDMyNykpO2M9YS5maW5pc2hlZFdvcms7dmFyIGU9YS5maW5pc2hlZExhbmVzO2lmKG51bGwhPT1jKXtpZihhLmZpbmlzaGVkV29yaz1udWxsLGEuZmluaXNoZWRMYW5lcz0wLGM9PT1hLmN1cnJlbnQpdGhyb3cgRXJyb3IocCgxNzcpKTthLmNhbGxiYWNrTm9kZT1udWxsLGEuY2FsbGJhY2tQcmlvcml0eT0wO3ZhciBmPWMubGFuZXN8Yy5jaGlsZExhbmVzO2lmKGZ1bmN0aW9uKGEsYil7dmFyIGM9YS5wZW5kaW5nTGFuZXMmfmI7YS5wZW5kaW5nTGFuZXM9YixhLnN1c3BlbmRlZExhbmVzPTAsYS5waW5nZWRMYW5lcz0wLGEuZXhwaXJlZExhbmVzJj1iLGEubXV0YWJsZVJlYWRMYW5lcyY9YixhLmVudGFuZ2xlZExhbmVzJj1iLGI9YS5lbnRhbmdsZW1lbnRzO3ZhciBkPWEuZXZlbnRUaW1lcztmb3IoYT1hLmV4cGlyYXRpb25UaW1lczswPGM7KXt2YXIgZT0zMS1vYyhjKSxmPTE8PGU7YltlXT0wLGRbZV09LTEsYVtlXT0tMSxjJj1+Zn19KGEsZiksYT09PVImJihZPVI9bnVsbCxaPTApLDA9PSgyMDY0JmMuc3VidHJlZUZsYWdzKSYmMD09KDIwNjQmYy5mbGFncyl8fHdrfHwod2s9ITAsYTE9aGMsYjE9ZnVuY3Rpb24oKXtyZXR1cm4gSWsoKSxudWxsfSxhYyhhMSxiMSkpLGY9MCE9KDE1OTkwJmMuZmxhZ3MpLDAhPSgxNTk5MCZjLnN1YnRyZWVGbGFncyl8fGYpe2Y9cGsudHJhbnNpdGlvbixway50cmFuc2l0aW9uPW51bGw7dmFyIGExLGIxLGEyLGIyLGMxLGc9QztDPTE7dmFyIGg9SztLfD00LG9rLmN1cnJlbnQ9bnVsbCxmdW5jdGlvbihhLGIpe2lmKENmPWRkLE5lKGE9TWUoKSkpe2lmKCJzZWxlY3Rpb25TdGFydCJpbiBhKXZhciBjPXtzdGFydDphLnNlbGVjdGlvblN0YXJ0LGVuZDphLnNlbGVjdGlvbkVuZH07ZWxzZSBhOnt2YXIgZD0oYz0oYz1hLm93bmVyRG9jdW1lbnQpJiZjLmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbiYmYy5nZXRTZWxlY3Rpb24oKTtpZihkJiYwIT09ZC5yYW5nZUNvdW50KXtjPWQuYW5jaG9yTm9kZTt2YXIgeSxlPWQuYW5jaG9yT2Zmc2V0LGY9ZC5mb2N1c05vZGU7ZD1kLmZvY3VzT2Zmc2V0O3RyeXtjLm5vZGVUeXBlLGYubm9kZVR5cGV9Y2F0Y2goRil7Yz1udWxsO2JyZWFrIGF9dmFyIGc9MCxoPS0xLGs9LTEsbD0wLG09MCxxPWEscj1udWxsO2I6Zm9yKDs7KXtmb3IoO3EhPT1jfHwwIT09ZSYmMyE9PXEubm9kZVR5cGV8fChoPWcrZSkscSE9PWZ8fDAhPT1kJiYzIT09cS5ub2RlVHlwZXx8KGs9ZytkKSwzPT09cS5ub2RlVHlwZSYmKGcrPXEubm9kZVZhbHVlLmxlbmd0aCksbnVsbCE9PSh5PXEuZmlyc3RDaGlsZCk7KXI9cSxxPXk7Zm9yKDs7KXtpZihxPT09YSlicmVhayBiO2lmKHI9PT1jJiYrK2w9PT1lJiYoaD1nKSxyPT09ZiYmKyttPT09ZCYmKGs9ZyksbnVsbCE9PSh5PXEubmV4dFNpYmxpbmcpKWJyZWFrO3I9KHE9cikucGFyZW50Tm9kZX1xPXl9Yz0tMT09PWh8fC0xPT09az9udWxsOntzdGFydDpoLGVuZDprfX1lbHNlIGM9bnVsbH1jPWN8fHtzdGFydDowLGVuZDowfX1lbHNlIGM9bnVsbDtmb3IoRGY9e2ZvY3VzZWRFbGVtOmEsc2VsZWN0aW9uUmFuZ2U6Y30sZGQ9ITEsVj1iO251bGwhPT1WOylpZihhPShiPVYpLmNoaWxkLDAhPSgxMDI4JmIuc3VidHJlZUZsYWdzKSYmbnVsbCE9PWEpYS5yZXR1cm49YixWPWE7ZWxzZSBmb3IoO251bGwhPT1WOyl7Yj1WO3RyeXt2YXIgbj1iLmFsdGVybmF0ZTtpZigwIT0oMTAyNCZiLmZsYWdzKSlzd2l0Y2goYi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6Y2FzZSA1OmNhc2UgNjpjYXNlIDQ6Y2FzZSAxNzpicmVhaztjYXNlIDE6aWYobnVsbCE9PW4pe3ZhciB0PW4ubWVtb2l6ZWRQcm9wcyxKPW4ubWVtb2l6ZWRTdGF0ZSx4PWIuc3RhdGVOb2RlLHc9eC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShiLmVsZW1lbnRUeXBlPT09Yi50eXBlP3Q6TGcoYi50eXBlLHQpLEopO3guX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGU9d31icmVhaztjYXNlIDM6dmFyIHU9Yi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzsxPT09dS5ub2RlVHlwZT91LnRleHRDb250ZW50PSIiOjk9PT11Lm5vZGVUeXBlJiZ1LmRvY3VtZW50RWxlbWVudCYmdS5yZW1vdmVDaGlsZCh1LmRvY3VtZW50RWxlbWVudCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihwKDE2MykpfX1jYXRjaChGMSl7VyhiLGIucmV0dXJuLEYxKX1pZihudWxsIT09KGE9Yi5zaWJsaW5nKSl7YS5yZXR1cm49Yi5yZXR1cm4sVj1hO2JyZWFrfVY9Yi5yZXR1cm59bj1PaixPaj0hMX0oYSxjKSxlayhjLGEpLGZ1bmN0aW9uKGEpe3ZhciBiPU1lKCksYz1hLmZvY3VzZWRFbGVtLGQ9YS5zZWxlY3Rpb25SYW5nZTtpZihiIT09YyYmYyYmYy5vd25lckRvY3VtZW50JiZmdW5jdGlvbiBMZShhLGIpe3JldHVybiEhYSYmISFiJiYoYT09PWJ8fCghYXx8MyE9PWEubm9kZVR5cGUpJiYoYiYmMz09PWIubm9kZVR5cGU/TGUoYSxiLnBhcmVudE5vZGUpOiJjb250YWlucyJpbiBhP2EuY29udGFpbnMoYik6ISFhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYhISgxNiZhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIpKSkpfShjLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGMpKXtpZihudWxsIT09ZCYmTmUoYykpe2lmKGI9ZC5zdGFydCx2b2lkIDA9PT0oYT1kLmVuZCkmJihhPWIpLCJzZWxlY3Rpb25TdGFydCJpbiBjKWMuc2VsZWN0aW9uU3RhcnQ9YixjLnNlbGVjdGlvbkVuZD1NYXRoLm1pbihhLGMudmFsdWUubGVuZ3RoKTtlbHNlIGlmKChhPShiPWMub3duZXJEb2N1bWVudHx8ZG9jdW1lbnQpJiZiLmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbil7YT1hLmdldFNlbGVjdGlvbigpO3ZhciBlPWMudGV4dENvbnRlbnQubGVuZ3RoLGY9TWF0aC5taW4oZC5zdGFydCxlKTtkPXZvaWQgMD09PWQuZW5kP2Y6TWF0aC5taW4oZC5lbmQsZSksIWEuZXh0ZW5kJiZmPmQmJihlPWQsZD1mLGY9ZSksZT1LZShjLGYpO3ZhciBnPUtlKGMsZCk7ZSYmZyYmKDEhPT1hLnJhbmdlQ291bnR8fGEuYW5jaG9yTm9kZSE9PWUubm9kZXx8YS5hbmNob3JPZmZzZXQhPT1lLm9mZnNldHx8YS5mb2N1c05vZGUhPT1nLm5vZGV8fGEuZm9jdXNPZmZzZXQhPT1nLm9mZnNldCkmJigoYj1iLmNyZWF0ZVJhbmdlKCkpLnNldFN0YXJ0KGUubm9kZSxlLm9mZnNldCksYS5yZW1vdmVBbGxSYW5nZXMoKSxmPmQ/KGEuYWRkUmFuZ2UoYiksYS5leHRlbmQoZy5ub2RlLGcub2Zmc2V0KSk6KGIuc2V0RW5kKGcubm9kZSxnLm9mZnNldCksYS5hZGRSYW5nZShiKSkpfX1mb3IoYj1bXSxhPWM7YT1hLnBhcmVudE5vZGU7KTE9PT1hLm5vZGVUeXBlJiZiLnB1c2goe2VsZW1lbnQ6YSxsZWZ0OmEuc2Nyb2xsTGVmdCx0b3A6YS5zY3JvbGxUb3B9KTtmb3IoImZ1bmN0aW9uIj09dHlwZW9mIGMuZm9jdXMmJmMuZm9jdXMoKSxjPTA7YzxiLmxlbmd0aDtjKyspKGE9YltjXSkuZWxlbWVudC5zY3JvbGxMZWZ0PWEubGVmdCxhLmVsZW1lbnQuc2Nyb2xsVG9wPWEudG9wfX0oRGYpLGRkPSEhQ2YsRGY9Q2Y9bnVsbCxhLmN1cnJlbnQ9YyxhMj1jLGIyPWEsYzE9ZSxWPWEyLGZ1bmN0aW9uIGprKGEsYixjKXtmb3IodmFyIGQ9MCE9KDEmYS5tb2RlKTtudWxsIT09Vjspe3ZhciBlPVYsZj1lLmNoaWxkO2lmKDIyPT09ZS50YWcmJmQpe3ZhciBnPW51bGwhPT1lLm1lbW9pemVkU3RhdGV8fEtqO2lmKCFnKXt2YXIgaD1lLmFsdGVybmF0ZSxrPW51bGwhPT1oJiZudWxsIT09aC5tZW1vaXplZFN0YXRlfHxVO2g9S2o7dmFyIGw9VTtpZihLaj1nLChVPWspJiYhbClmb3IoVj1lO251bGwhPT1WOylrPShnPVYpLmNoaWxkLDIyPT09Zy50YWcmJm51bGwhPT1nLm1lbW9pemVkU3RhdGU/a2soZSk6bnVsbCE9PWs/KGsucmV0dXJuPWcsVj1rKTprayhlKTtmb3IoO251bGwhPT1mOylWPWYsamsoZixiLGMpLGY9Zi5zaWJsaW5nO1Y9ZSxLaj1oLFU9bH1sayhhLGIsYyl9ZWxzZSAwIT0oODc3MiZlLnN1YnRyZWVGbGFncykmJm51bGwhPT1mPyhmLnJldHVybj1lLFY9Zik6bGsoYSxiLGMpfX0oYTIsYjIsYzEpLGRjKCksSz1oLEM9Zyxway50cmFuc2l0aW9uPWZ9ZWxzZSBhLmN1cnJlbnQ9YztpZih3ayYmKHdrPSExLHhrPWEseWs9ZSksMD09PShmPWEucGVuZGluZ0xhbmVzKSYmKFNpPW51bGwpLGZ1bmN0aW9uKGEpe2lmKGxjJiYiZnVuY3Rpb24iPT10eXBlb2YgbGMub25Db21taXRGaWJlclJvb3QpdHJ5e2xjLm9uQ29tbWl0RmliZXJSb290KGtjLGEsdm9pZCAwLDEyOD09KDEyOCZhLmN1cnJlbnQuZmxhZ3MpKX1jYXRjaChiKXt9fShjLnN0YXRlTm9kZSxkKSxFayhhLEIoKSksbnVsbCE9PWIpZm9yKGQ9YS5vblJlY292ZXJhYmxlRXJyb3IsYz0wO2M8Yi5sZW5ndGg7YysrKWQoKGU9YltjXSkudmFsdWUse2NvbXBvbmVudFN0YWNrOmUuc3RhY2ssZGlnZXN0OmUuZGlnZXN0fSk7aWYoUGkpdGhyb3cgUGk9ITEsYT1RaSxRaT1udWxsLGE7MCE9KDEmeWspJiYwIT09YS50YWcmJklrKCksMCE9KDEmKGY9YS5wZW5kaW5nTGFuZXMpKT9hPT09QWs/emsrKzooems9MCxBaz1hKTp6az0wLGpnKCl9fShhLGIsYyxkKX1maW5hbGx5e3BrLnRyYW5zaXRpb249ZSxDPWR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gSWsoKXtpZihudWxsIT09eGspe3ZhciBhPURjKHlrKSxiPXBrLnRyYW5zaXRpb24sYz1DO3RyeXtpZihway50cmFuc2l0aW9uPW51bGwsQz0xNj5hPzE2OmEsbnVsbD09PXhrKXZhciBkPSExO2Vsc2V7aWYoYT14ayx4az1udWxsLHlrPTAsMCE9KDYmSykpdGhyb3cgRXJyb3IocCgzMzEpKTt2YXIgZT1LO2ZvcihLfD00LFY9YS5jdXJyZW50O251bGwhPT1WOyl7dmFyIGY9VixnPWYuY2hpbGQ7aWYoMCE9KDE2JlYuZmxhZ3MpKXt2YXIgaD1mLmRlbGV0aW9ucztpZihudWxsIT09aCl7Zm9yKHZhciBrPTA7azxoLmxlbmd0aDtrKyspe3ZhciBsPWhba107Zm9yKFY9bDtudWxsIT09Vjspe3ZhciBtPVY7c3dpdGNoKG0udGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OlFqKDgsbSxmKX12YXIgcT1tLmNoaWxkO2lmKG51bGwhPT1xKXEucmV0dXJuPW0sVj1xO2Vsc2UgZm9yKDtudWxsIT09Vjspe3ZhciByPShtPVYpLnNpYmxpbmcseT1tLnJldHVybjtpZighZnVuY3Rpb24gVGooYSl7dmFyIGI9YS5hbHRlcm5hdGU7bnVsbCE9PWImJihhLmFsdGVybmF0ZT1udWxsLFRqKGIpKSxhLmNoaWxkPW51bGwsYS5kZWxldGlvbnM9bnVsbCxhLnNpYmxpbmc9bnVsbCw1PT09YS50YWcmJm51bGwhPT0oYj1hLnN0YXRlTm9kZSkmJihkZWxldGUgYltPZl0sZGVsZXRlIGJbUGZdLGRlbGV0ZSBiW29mXSxkZWxldGUgYltRZl0sZGVsZXRlIGJbUmZdKSxhLnN0YXRlTm9kZT1udWxsLGEucmV0dXJuPW51bGwsYS5kZXBlbmRlbmNpZXM9bnVsbCxhLm1lbW9pemVkUHJvcHM9bnVsbCxhLm1lbW9pemVkU3RhdGU9bnVsbCxhLnBlbmRpbmdQcm9wcz1udWxsLGEuc3RhdGVOb2RlPW51bGwsYS51cGRhdGVRdWV1ZT1udWxsfShtKSxtPT09bCl7Vj1udWxsO2JyZWFrfWlmKG51bGwhPT1yKXtyLnJldHVybj15LFY9cjticmVha31WPXl9fX12YXIgbj1mLmFsdGVybmF0ZTtpZihudWxsIT09bil7dmFyIHQ9bi5jaGlsZDtpZihudWxsIT09dCl7bi5jaGlsZD1udWxsO2Rve3ZhciBKPXQuc2libGluZzt0LnNpYmxpbmc9bnVsbCx0PUp9d2hpbGUobnVsbCE9PXQpfX1WPWZ9fWlmKDAhPSgyMDY0JmYuc3VidHJlZUZsYWdzKSYmbnVsbCE9PWcpZy5yZXR1cm49ZixWPWc7ZWxzZSBiOmZvcig7bnVsbCE9PVY7KXtpZihmPVYsMCE9KDIwNDgmZi5mbGFncykpc3dpdGNoKGYudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OlFqKDksZixmLnJldHVybil9dmFyIHg9Zi5zaWJsaW5nO2lmKG51bGwhPT14KXt4LnJldHVybj1mLnJldHVybixWPXg7YnJlYWsgYn1WPWYucmV0dXJufX12YXIgdz1hLmN1cnJlbnQ7Zm9yKFY9dztudWxsIT09Vjspe3ZhciB1PShnPVYpLmNoaWxkO2lmKDAhPSgyMDY0Jmcuc3VidHJlZUZsYWdzKSYmbnVsbCE9PXUpdS5yZXR1cm49ZyxWPXU7ZWxzZSBiOmZvcihnPXc7bnVsbCE9PVY7KXtpZihoPVYsMCE9KDIwNDgmaC5mbGFncykpdHJ5e3N3aXRjaChoLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpSaig5LGgpfX1jYXRjaChuYSl7VyhoLGgucmV0dXJuLG5hKX1pZihoPT09Zyl7Vj1udWxsO2JyZWFrIGJ9dmFyIEY9aC5zaWJsaW5nO2lmKG51bGwhPT1GKXtGLnJldHVybj1oLnJldHVybixWPUY7YnJlYWsgYn1WPWgucmV0dXJufX1pZihLPWUsamcoKSxsYyYmImZ1bmN0aW9uIj09dHlwZW9mIGxjLm9uUG9zdENvbW1pdEZpYmVyUm9vdCl0cnl7bGMub25Qb3N0Q29tbWl0RmliZXJSb290KGtjLGEpfWNhdGNoKG5hMSl7fWQ9ITB9cmV0dXJuIGR9ZmluYWxseXtDPWMscGsudHJhbnNpdGlvbj1ifX1yZXR1cm4hMX1mdW5jdGlvbiBZayhhLGIsYyl7Yj1LaShjLGIpLGI9T2koYSxiLDEpLGE9ZGgoYSxiLDEpLGI9TCgpLG51bGwhPT1hJiYoQWMoYSwxLGIpLEVrKGEsYikpfWZ1bmN0aW9uIFcoYSxiLGMpe2lmKDM9PT1hLnRhZylZayhhLGEsYyk7ZWxzZSBmb3IoO251bGwhPT1iOyl7aWYoMz09PWIudGFnKXtZayhiLGEsYyk7YnJlYWt9aWYoMT09PWIudGFnKXt2YXIgZD1iLnN0YXRlTm9kZTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYi50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8ImZ1bmN0aW9uIj09dHlwZW9mIGQuY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09U2l8fCFTaS5oYXMoZCkpKXthPUtpKGMsYSksYT1SaShiLGEsMSksYj1kaChiLGEsMSksYT1MKCksbnVsbCE9PWImJihBYyhiLDEsYSksRWsoYixhKSk7YnJlYWt9fWI9Yi5yZXR1cm59fWZ1bmN0aW9uIFVpKGEsYixjKXt2YXIgZD1hLnBpbmdDYWNoZTtudWxsIT09ZCYmZC5kZWxldGUoYiksYj1MKCksYS5waW5nZWRMYW5lc3w9YS5zdXNwZW5kZWRMYW5lcyZjLFI9PT1hJiYoWiZjKT09PWMmJig0PT09VHx8Mz09PVQmJigxMzAwMjM0MjQmWik9PT1aJiY1MDA+QigpLWdrP0xrKGEsMCk6c2t8PWMpLEVrKGEsYil9ZnVuY3Rpb24gWmsoYSxiKXswPT09YiYmKDA9PSgxJmEubW9kZSk/Yj0xOihiPXNjLDA9PSgxMzAwMjM0MjQmKHNjPDw9MSkpJiYoc2M9NDE5NDMwNCkpKTt2YXIgYz1MKCk7bnVsbCE9PShhPVpnKGEsYikpJiYoQWMoYSxiLGMpLEVrKGEsYykpfWZ1bmN0aW9uIHZqKGEpe3ZhciBiPWEubWVtb2l6ZWRTdGF0ZSxjPTA7bnVsbCE9PWImJihjPWIucmV0cnlMYW5lKSxaayhhLGMpfWZ1bmN0aW9uIGNrKGEsYil7dmFyIGM9MDtzd2l0Y2goYS50YWcpe2Nhc2UgMTM6dmFyIGQ9YS5zdGF0ZU5vZGUsZT1hLm1lbW9pemVkU3RhdGU7bnVsbCE9PWUmJihjPWUucmV0cnlMYW5lKTticmVhaztjYXNlIDE5OmQ9YS5zdGF0ZU5vZGU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihwKDMxNCkpfW51bGwhPT1kJiZkLmRlbGV0ZShiKSxaayhhLGMpfWZ1bmN0aW9uIGFsKGEsYixjLGQpe3RoaXMudGFnPWEsdGhpcy5rZXk9Yyx0aGlzLnNpYmxpbmc9dGhpcy5jaGlsZD10aGlzLnJldHVybj10aGlzLnN0YXRlTm9kZT10aGlzLnR5cGU9dGhpcy5lbGVtZW50VHlwZT1udWxsLHRoaXMuaW5kZXg9MCx0aGlzLnJlZj1udWxsLHRoaXMucGVuZGluZ1Byb3BzPWIsdGhpcy5kZXBlbmRlbmNpZXM9dGhpcy5tZW1vaXplZFN0YXRlPXRoaXMudXBkYXRlUXVldWU9dGhpcy5tZW1vaXplZFByb3BzPW51bGwsdGhpcy5tb2RlPWQsdGhpcy5zdWJ0cmVlRmxhZ3M9dGhpcy5mbGFncz0wLHRoaXMuZGVsZXRpb25zPW51bGwsdGhpcy5jaGlsZExhbmVzPXRoaXMubGFuZXM9MCx0aGlzLmFsdGVybmF0ZT1udWxsfWZ1bmN0aW9uIEJnKGEsYixjLGQpe3JldHVybiBuZXcgYWwoYSxiLGMsZCl9ZnVuY3Rpb24gYmooYSl7cmV0dXJuISghKGE9YS5wcm90b3R5cGUpfHwhYS5pc1JlYWN0Q29tcG9uZW50KX1mdW5jdGlvbiB3aChhLGIpe3ZhciBjPWEuYWx0ZXJuYXRlO3JldHVybiBudWxsPT09Yz8oKGM9QmcoYS50YWcsYixhLmtleSxhLm1vZGUpKS5lbGVtZW50VHlwZT1hLmVsZW1lbnRUeXBlLGMudHlwZT1hLnR5cGUsYy5zdGF0ZU5vZGU9YS5zdGF0ZU5vZGUsYy5hbHRlcm5hdGU9YSxhLmFsdGVybmF0ZT1jKTooYy5wZW5kaW5nUHJvcHM9YixjLnR5cGU9YS50eXBlLGMuZmxhZ3M9MCxjLnN1YnRyZWVGbGFncz0wLGMuZGVsZXRpb25zPW51bGwpLGMuZmxhZ3M9MTQ2ODAwNjQmYS5mbGFncyxjLmNoaWxkTGFuZXM9YS5jaGlsZExhbmVzLGMubGFuZXM9YS5sYW5lcyxjLmNoaWxkPWEuY2hpbGQsYy5tZW1vaXplZFByb3BzPWEubWVtb2l6ZWRQcm9wcyxjLm1lbW9pemVkU3RhdGU9YS5tZW1vaXplZFN0YXRlLGMudXBkYXRlUXVldWU9YS51cGRhdGVRdWV1ZSxiPWEuZGVwZW5kZW5jaWVzLGMuZGVwZW5kZW5jaWVzPW51bGw9PT1iP251bGw6e2xhbmVzOmIubGFuZXMsZmlyc3RDb250ZXh0OmIuZmlyc3RDb250ZXh0fSxjLnNpYmxpbmc9YS5zaWJsaW5nLGMuaW5kZXg9YS5pbmRleCxjLnJlZj1hLnJlZixjfWZ1bmN0aW9uIHloKGEsYixjLGQsZSxmKXt2YXIgZz0yO2lmKGQ9YSwiZnVuY3Rpb24iPT10eXBlb2YgYSliaihhKSYmKGc9MSk7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGEpZz01O2Vsc2UgYTpzd2l0Y2goYSl7Y2FzZSB5YTpyZXR1cm4gQWgoYy5jaGlsZHJlbixlLGYsYik7Y2FzZSB6YTpnPTgsZXw9ODticmVhaztjYXNlIEFhOnJldHVybihhPUJnKDEyLGMsYiwyfGUpKS5lbGVtZW50VHlwZT1BYSxhLmxhbmVzPWYsYTtjYXNlIEVhOnJldHVybihhPUJnKDEzLGMsYixlKSkuZWxlbWVudFR5cGU9RWEsYS5sYW5lcz1mLGE7Y2FzZSBGYTpyZXR1cm4oYT1CZygxOSxjLGIsZSkpLmVsZW1lbnRUeXBlPUZhLGEubGFuZXM9ZixhO2Nhc2UgSWE6cmV0dXJuIHFqKGMsZSxmLGIpO2RlZmF1bHQ6aWYoIm9iamVjdCI9PXR5cGVvZiBhJiZudWxsIT09YSlzd2l0Y2goYS4kJHR5cGVvZil7Y2FzZSBCYTpnPTEwO2JyZWFrIGE7Y2FzZSBDYTpnPTk7YnJlYWsgYTtjYXNlIERhOmc9MTE7YnJlYWsgYTtjYXNlIEdhOmc9MTQ7YnJlYWsgYTtjYXNlIEhhOmc9MTYsZD1udWxsO2JyZWFrIGF9dGhyb3cgRXJyb3IocCgxMzAsbnVsbD09YT9hOnR5cGVvZiBhLCIiKSl9cmV0dXJuKGI9QmcoZyxjLGIsZSkpLmVsZW1lbnRUeXBlPWEsYi50eXBlPWQsYi5sYW5lcz1mLGJ9ZnVuY3Rpb24gQWgoYSxiLGMsZCl7cmV0dXJuKGE9QmcoNyxhLGQsYikpLmxhbmVzPWMsYX1mdW5jdGlvbiBxaihhLGIsYyxkKXtyZXR1cm4oYT1CZygyMixhLGQsYikpLmVsZW1lbnRUeXBlPUlhLGEubGFuZXM9YyxhLnN0YXRlTm9kZT17aXNIaWRkZW46ITF9LGF9ZnVuY3Rpb24geGgoYSxiLGMpe3JldHVybihhPUJnKDYsYSxudWxsLGIpKS5sYW5lcz1jLGF9ZnVuY3Rpb24gemgoYSxiLGMpe3JldHVybihiPUJnKDQsbnVsbCE9PWEuY2hpbGRyZW4/YS5jaGlsZHJlbjpbXSxhLmtleSxiKSkubGFuZXM9YyxiLnN0YXRlTm9kZT17Y29udGFpbmVySW5mbzphLmNvbnRhaW5lckluZm8scGVuZGluZ0NoaWxkcmVuOm51bGwsaW1wbGVtZW50YXRpb246YS5pbXBsZW1lbnRhdGlvbn0sYn1mdW5jdGlvbiBibChhLGIsYyxkLGUpe3RoaXMudGFnPWIsdGhpcy5jb250YWluZXJJbmZvPWEsdGhpcy5maW5pc2hlZFdvcms9dGhpcy5waW5nQ2FjaGU9dGhpcy5jdXJyZW50PXRoaXMucGVuZGluZ0NoaWxkcmVuPW51bGwsdGhpcy50aW1lb3V0SGFuZGxlPS0xLHRoaXMuY2FsbGJhY2tOb2RlPXRoaXMucGVuZGluZ0NvbnRleHQ9dGhpcy5jb250ZXh0PW51bGwsdGhpcy5jYWxsYmFja1ByaW9yaXR5PTAsdGhpcy5ldmVudFRpbWVzPXpjKDApLHRoaXMuZXhwaXJhdGlvblRpbWVzPXpjKC0xKSx0aGlzLmVudGFuZ2xlZExhbmVzPXRoaXMuZmluaXNoZWRMYW5lcz10aGlzLm11dGFibGVSZWFkTGFuZXM9dGhpcy5leHBpcmVkTGFuZXM9dGhpcy5waW5nZWRMYW5lcz10aGlzLnN1c3BlbmRlZExhbmVzPXRoaXMucGVuZGluZ0xhbmVzPTAsdGhpcy5lbnRhbmdsZW1lbnRzPXpjKDApLHRoaXMuaWRlbnRpZmllclByZWZpeD1kLHRoaXMub25SZWNvdmVyYWJsZUVycm9yPWUsdGhpcy5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhPW51bGx9ZnVuY3Rpb24gY2woYSxiLGMsZCxlLGYsZyxoLGspe3JldHVybiBhPW5ldyBibChhLGIsYyxoLGspLDE9PT1iPyhiPTEsITA9PT1mJiYoYnw9OCkpOmI9MCxmPUJnKDMsbnVsbCxudWxsLGIpLGEuY3VycmVudD1mLGYuc3RhdGVOb2RlPWEsZi5tZW1vaXplZFN0YXRlPXtlbGVtZW50OmQsaXNEZWh5ZHJhdGVkOmMsY2FjaGU6bnVsbCx0cmFuc2l0aW9uczpudWxsLHBlbmRpbmdTdXNwZW5zZUJvdW5kYXJpZXM6bnVsbH0sYWgoZiksYX1mdW5jdGlvbiBlbChhKXtpZighYSlyZXR1cm4gVmY7YT1hLl9yZWFjdEludGVybmFsczthOntpZihWYihhKSE9PWF8fDEhPT1hLnRhZyl0aHJvdyBFcnJvcihwKDE3MCkpO3ZhciBiPWE7ZG97c3dpdGNoKGIudGFnKXtjYXNlIDM6Yj1iLnN0YXRlTm9kZS5jb250ZXh0O2JyZWFrIGE7Y2FzZSAxOmlmKFpmKGIudHlwZSkpe2I9Yi5zdGF0ZU5vZGUuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQ7YnJlYWsgYX19Yj1iLnJldHVybn13aGlsZShudWxsIT09Yik7dGhyb3cgRXJyb3IocCgxNzEpKX1pZigxPT09YS50YWcpe3ZhciBjPWEudHlwZTtpZihaZihjKSlyZXR1cm4gYmcoYSxjLGIpfXJldHVybiBifWZ1bmN0aW9uIGZsKGEsYixjLGQsZSxmLGcsaCxrKXtyZXR1cm4oYT1jbChjLGQsITAsYSxlLGYsZyxoLGspKS5jb250ZXh0PWVsKG51bGwpLGM9YS5jdXJyZW50LChmPWNoKGQ9TCgpLGU9bGgoYykpKS5jYWxsYmFjaz1udWxsIT1iP2I6bnVsbCxkaChjLGYsZSksYS5jdXJyZW50LmxhbmVzPWUsQWMoYSxlLGQpLEVrKGEsZCksYX1mdW5jdGlvbiBnbChhLGIsYyxkKXt2YXIgZT1iLmN1cnJlbnQsZj1MKCksZz1saChlKTtyZXR1cm4gYz1lbChjKSxudWxsPT09Yi5jb250ZXh0P2IuY29udGV4dD1jOmIucGVuZGluZ0NvbnRleHQ9YywoYj1jaChmLGcpKS5wYXlsb2FkPXtlbGVtZW50OmF9LG51bGwhPT0oZD12b2lkIDA9PT1kP251bGw6ZCkmJihiLmNhbGxiYWNrPWQpLG51bGwhPT0oYT1kaChlLGIsZykpJiYobWgoYSxlLGcsZiksZWgoYSxlLGcpKSxnfWZ1bmN0aW9uIGhsKGEpe3JldHVybihhPWEuY3VycmVudCkuY2hpbGQ/KGEuY2hpbGQudGFnLGEuY2hpbGQuc3RhdGVOb2RlKTpudWxsfWZ1bmN0aW9uIGlsKGEsYil7aWYobnVsbCE9PShhPWEubWVtb2l6ZWRTdGF0ZSkmJm51bGwhPT1hLmRlaHlkcmF0ZWQpe3ZhciBjPWEucmV0cnlMYW5lO2EucmV0cnlMYW5lPTAhPT1jJiZjPGI/YzpifX1mdW5jdGlvbiBqbChhLGIpe2lsKGEsYiksKGE9YS5hbHRlcm5hdGUpJiZpbChhLGIpfVdrPWZ1bmN0aW9uKGEsYixjKXtpZihudWxsIT09YSl7aWYoYS5tZW1vaXplZFByb3BzIT09Yi5wZW5kaW5nUHJvcHN8fFdmLmN1cnJlbnQpVWc9ITA7ZWxzZXtpZigwPT0oYS5sYW5lcyZjKSYmMD09KDEyOCZiLmZsYWdzKSlyZXR1cm4gVWc9ITEsZnVuY3Rpb24oYSxiLGMpe3N3aXRjaChiLnRhZyl7Y2FzZSAzOmxqKGIpLElnKCk7YnJlYWs7Y2FzZSA1OktoKGIpO2JyZWFrO2Nhc2UgMTpaZihiLnR5cGUpJiZjZyhiKTticmVhaztjYXNlIDQ6SWgoYixiLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTticmVhaztjYXNlIDEwOnZhciBkPWIudHlwZS5fY29udGV4dCxlPWIubWVtb2l6ZWRQcm9wcy52YWx1ZTtHKE1nLGQuX2N1cnJlbnRWYWx1ZSksZC5fY3VycmVudFZhbHVlPWU7YnJlYWs7Y2FzZSAxMzppZihudWxsIT09KGQ9Yi5tZW1vaXplZFN0YXRlKSl7aWYobnVsbCE9PWQuZGVoeWRyYXRlZClyZXR1cm4gRyhNLDEmTS5jdXJyZW50KSxiLmZsYWdzfD0xMjgsbnVsbDtpZigwIT0oYyZiLmNoaWxkLmNoaWxkTGFuZXMpKXJldHVybiBwaihhLGIsYyk7cmV0dXJuIEcoTSwxJk0uY3VycmVudCksbnVsbCE9PShhPSRpKGEsYixjKSk/YS5zaWJsaW5nOm51bGx9RyhNLDEmTS5jdXJyZW50KTticmVhaztjYXNlIDE5OmlmKGQ9MCE9KGMmYi5jaGlsZExhbmVzKSwwIT0oMTI4JmEuZmxhZ3MpKXtpZihkKXJldHVybiB5aihhLGIsYyk7Yi5mbGFnc3w9MTI4fWlmKG51bGwhPT0oZT1iLm1lbW9pemVkU3RhdGUpJiYoZS5yZW5kZXJpbmc9bnVsbCxlLnRhaWw9bnVsbCxlLmxhc3RFZmZlY3Q9bnVsbCksRyhNLE0uY3VycmVudCksIWQpcmV0dXJuIG51bGw7YnJlYWs7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBiLmxhbmVzPTAsZWooYSxiLGMpfXJldHVybiAkaShhLGIsYyl9KGEsYixjKTtVZz0wIT0oMTMxMDcyJmEuZmxhZ3MpfX1lbHNlIFVnPSExLEkmJjAhPSgxMDQ4NTc2JmIuZmxhZ3MpJiZ1ZyhiLG5nLGIuaW5kZXgpO3N3aXRjaChiLmxhbmVzPTAsYi50YWcpe2Nhc2UgMjp2YXIgZD1iLnR5cGU7amooYSxiKSxhPWIucGVuZGluZ1Byb3BzO3ZhciBlPVlmKGIsSC5jdXJyZW50KTtUZyhiLGMpLGU9WGgobnVsbCxiLGQsYSxlLGMpO3ZhciBmPWJpKCk7cmV0dXJuIGIuZmxhZ3N8PTEsIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUucmVuZGVyJiZ2b2lkIDA9PT1lLiQkdHlwZW9mPyhiLnRhZz0xLGIubWVtb2l6ZWRTdGF0ZT1udWxsLGIudXBkYXRlUXVldWU9bnVsbCxaZihkKT8oZj0hMCxjZyhiKSk6Zj0hMSxiLm1lbW9pemVkU3RhdGU9bnVsbCE9PWUuc3RhdGUmJnZvaWQgMCE9PWUuc3RhdGU/ZS5zdGF0ZTpudWxsLGFoKGIpLGUudXBkYXRlcj1uaCxiLnN0YXRlTm9kZT1lLGUuX3JlYWN0SW50ZXJuYWxzPWIscmgoYixkLGEsYyksYj1raihudWxsLGIsZCwhMCxmLGMpKTooYi50YWc9MCxJJiZmJiZ2ZyhiKSxZaShudWxsLGIsZSxjKSxiPWIuY2hpbGQpLGI7Y2FzZSAxNjpkPWIuZWxlbWVudFR5cGU7YTp7c3dpdGNoKGpqKGEsYiksYT1iLnBlbmRpbmdQcm9wcyxkPShlPWQuX2luaXQpKGQuX3BheWxvYWQpLGIudHlwZT1kLGU9Yi50YWc9ZnVuY3Rpb24oYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEpcmV0dXJuIGJqKGEpPzE6MDtpZihudWxsIT1hKXtpZigoYT1hLiQkdHlwZW9mKT09PURhKXJldHVybiAxMTtpZihhPT09R2EpcmV0dXJuIDE0fXJldHVybiAyfShkKSxhPUxnKGQsYSksZSl7Y2FzZSAwOmI9ZGoobnVsbCxiLGQsYSxjKTticmVhayBhO2Nhc2UgMTpiPWlqKG51bGwsYixkLGEsYyk7YnJlYWsgYTtjYXNlIDExOmI9WmkobnVsbCxiLGQsYSxjKTticmVhayBhO2Nhc2UgMTQ6Yj1haihudWxsLGIsZCxMZyhkLnR5cGUsYSksYyk7YnJlYWsgYX10aHJvdyBFcnJvcihwKDMwNixkLCIiKSl9cmV0dXJuIGI7Y2FzZSAwOnJldHVybiBkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGU9Yi5lbGVtZW50VHlwZT09PWQ/ZTpMZyhkLGUpLGRqKGEsYixkLGUsYyk7Y2FzZSAxOnJldHVybiBkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGU9Yi5lbGVtZW50VHlwZT09PWQ/ZTpMZyhkLGUpLGlqKGEsYixkLGUsYyk7Y2FzZSAzOmE6e2lmKGxqKGIpLG51bGw9PT1hKXRocm93IEVycm9yKHAoMzg3KSk7ZD1iLnBlbmRpbmdQcm9wcyxlPShmPWIubWVtb2l6ZWRTdGF0ZSkuZWxlbWVudCxiaChhLGIpLGdoKGIsZCxudWxsLGMpO3ZhciBnPWIubWVtb2l6ZWRTdGF0ZTtpZihkPWcuZWxlbWVudCxmLmlzRGVoeWRyYXRlZCl7aWYoZj17ZWxlbWVudDpkLGlzRGVoeWRyYXRlZDohMSxjYWNoZTpnLmNhY2hlLHBlbmRpbmdTdXNwZW5zZUJvdW5kYXJpZXM6Zy5wZW5kaW5nU3VzcGVuc2VCb3VuZGFyaWVzLHRyYW5zaXRpb25zOmcudHJhbnNpdGlvbnN9LGIudXBkYXRlUXVldWUuYmFzZVN0YXRlPWYsYi5tZW1vaXplZFN0YXRlPWYsMjU2JmIuZmxhZ3Mpe2U9S2koRXJyb3IocCg0MjMpKSxiKSxiPW1qKGEsYixkLGMsZSk7YnJlYWsgYX1pZihkIT09ZSl7ZT1LaShFcnJvcihwKDQyNCkpLGIpLGI9bWooYSxiLGQsYyxlKTticmVhayBhfWZvcih5Zz1MZihiLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLmZpcnN0Q2hpbGQpLHhnPWIsST0hMCx6Zz1udWxsLGM9Q2goYixudWxsLGQsYyksYi5jaGlsZD1jO2M7KWMuZmxhZ3M9LTMmYy5mbGFnc3w0MDk2LGM9Yy5zaWJsaW5nfWVsc2V7aWYoSWcoKSxkPT09ZSl7Yj0kaShhLGIsYyk7YnJlYWsgYX1ZaShhLGIsZCxjKX1iPWIuY2hpbGR9cmV0dXJuIGI7Y2FzZSA1OnJldHVybiBLaChiKSxudWxsPT09YSYmRWcoYiksZD1iLnR5cGUsZT1iLnBlbmRpbmdQcm9wcyxmPW51bGwhPT1hP2EubWVtb2l6ZWRQcm9wczpudWxsLGc9ZS5jaGlsZHJlbixFZihkLGUpP2c9bnVsbDpudWxsIT09ZiYmRWYoZCxmKSYmKGIuZmxhZ3N8PTMyKSxoaihhLGIpLFlpKGEsYixnLGMpLGIuY2hpbGQ7Y2FzZSA2OnJldHVybiBudWxsPT09YSYmRWcoYiksbnVsbDtjYXNlIDEzOnJldHVybiBwaihhLGIsYyk7Y2FzZSA0OnJldHVybiBJaChiLGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLGQ9Yi5wZW5kaW5nUHJvcHMsbnVsbD09PWE/Yi5jaGlsZD1CaChiLG51bGwsZCxjKTpZaShhLGIsZCxjKSxiLmNoaWxkO2Nhc2UgMTE6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOkxnKGQsZSksWmkoYSxiLGQsZSxjKTtjYXNlIDc6cmV0dXJuIFlpKGEsYixiLnBlbmRpbmdQcm9wcyxjKSxiLmNoaWxkO2Nhc2UgODpjYXNlIDEyOnJldHVybiBZaShhLGIsYi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sYyksYi5jaGlsZDtjYXNlIDEwOmE6e2lmKGQ9Yi50eXBlLl9jb250ZXh0LGU9Yi5wZW5kaW5nUHJvcHMsZj1iLm1lbW9pemVkUHJvcHMsZz1lLnZhbHVlLEcoTWcsZC5fY3VycmVudFZhbHVlKSxkLl9jdXJyZW50VmFsdWU9ZyxudWxsIT09Zil7aWYoSGUoZi52YWx1ZSxnKSl7aWYoZi5jaGlsZHJlbj09PWUuY2hpbGRyZW4mJiFXZi5jdXJyZW50KXtiPSRpKGEsYixjKTticmVhayBhfX1lbHNlIGZvcihudWxsIT09KGY9Yi5jaGlsZCkmJihmLnJldHVybj1iKTtudWxsIT09Zjspe3ZhciBoPWYuZGVwZW5kZW5jaWVzO2lmKG51bGwhPT1oKXtnPWYuY2hpbGQ7Zm9yKHZhciBrPWguZmlyc3RDb250ZXh0O251bGwhPT1rOyl7aWYoay5jb250ZXh0PT09ZCl7aWYoMT09PWYudGFnKXsoaz1jaCgtMSxjJi1jKSkudGFnPTI7dmFyIGw9Zi51cGRhdGVRdWV1ZTtpZihudWxsIT09bCl7dmFyIG09KGw9bC5zaGFyZWQpLnBlbmRpbmc7bnVsbD09PW0/ay5uZXh0PWs6KGsubmV4dD1tLm5leHQsbS5uZXh0PWspLGwucGVuZGluZz1rfX1mLmxhbmVzfD1jLG51bGwhPT0oaz1mLmFsdGVybmF0ZSkmJihrLmxhbmVzfD1jKSxTZyhmLnJldHVybixjLGIpLGgubGFuZXN8PWM7YnJlYWt9az1rLm5leHR9fWVsc2UgaWYoMTA9PT1mLnRhZylnPWYudHlwZT09PWIudHlwZT9udWxsOmYuY2hpbGQ7ZWxzZSBpZigxOD09PWYudGFnKXtpZihudWxsPT09KGc9Zi5yZXR1cm4pKXRocm93IEVycm9yKHAoMzQxKSk7Zy5sYW5lc3w9YyxudWxsIT09KGg9Zy5hbHRlcm5hdGUpJiYoaC5sYW5lc3w9YyksU2coZyxjLGIpLGc9Zi5zaWJsaW5nfWVsc2UgZz1mLmNoaWxkO2lmKG51bGwhPT1nKWcucmV0dXJuPWY7ZWxzZSBmb3IoZz1mO251bGwhPT1nOyl7aWYoZz09PWIpe2c9bnVsbDticmVha31pZihudWxsIT09KGY9Zy5zaWJsaW5nKSl7Zi5yZXR1cm49Zy5yZXR1cm4sZz1mO2JyZWFrfWc9Zy5yZXR1cm59Zj1nfX1ZaShhLGIsZS5jaGlsZHJlbixjKSxiPWIuY2hpbGR9cmV0dXJuIGI7Y2FzZSA5OnJldHVybiBlPWIudHlwZSxkPWIucGVuZGluZ1Byb3BzLmNoaWxkcmVuLFRnKGIsYyksZT1WZyhlKSxkPWQoZSksYi5mbGFnc3w9MSxZaShhLGIsZCxjKSxiLmNoaWxkO2Nhc2UgMTQ6cmV0dXJuIGU9TGcoZD1iLnR5cGUsYi5wZW5kaW5nUHJvcHMpLGU9TGcoZC50eXBlLGUpLGFqKGEsYixkLGUsYyk7Y2FzZSAxNTpyZXR1cm4gY2ooYSxiLGIudHlwZSxiLnBlbmRpbmdQcm9wcyxjKTtjYXNlIDE3OnJldHVybiBkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGU9Yi5lbGVtZW50VHlwZT09PWQ/ZTpMZyhkLGUpLGpqKGEsYiksYi50YWc9MSxaZihkKT8oYT0hMCxjZyhiKSk6YT0hMSxUZyhiLGMpLHBoKGIsZCxlKSxyaChiLGQsZSxjKSxraihudWxsLGIsZCwhMCxhLGMpO2Nhc2UgMTk6cmV0dXJuIHlqKGEsYixjKTtjYXNlIDIyOnJldHVybiBlaihhLGIsYyl9dGhyb3cgRXJyb3IocCgxNTYsYi50YWcpKX07dmFyIGxsPSJmdW5jdGlvbiI9PXR5cGVvZiByZXBvcnRFcnJvcj9yZXBvcnRFcnJvcjpmdW5jdGlvbihhKXtjb25zb2xlLmVycm9yKGEpfTtmdW5jdGlvbiBtbChhKXt0aGlzLl9pbnRlcm5hbFJvb3Q9YX1mdW5jdGlvbiBubChhKXt0aGlzLl9pbnRlcm5hbFJvb3Q9YX1mdW5jdGlvbiBvbChhKXtyZXR1cm4hKCFhfHwxIT09YS5ub2RlVHlwZSYmOSE9PWEubm9kZVR5cGUmJjExIT09YS5ub2RlVHlwZSl9ZnVuY3Rpb24gcGwoYSl7cmV0dXJuISghYXx8MSE9PWEubm9kZVR5cGUmJjkhPT1hLm5vZGVUeXBlJiYxMSE9PWEubm9kZVR5cGUmJig4IT09YS5ub2RlVHlwZXx8IiByZWFjdC1tb3VudC1wb2ludC11bnN0YWJsZSAiIT09YS5ub2RlVmFsdWUpKX1mdW5jdGlvbiBxbCgpe31mdW5jdGlvbiBzbChhLGIsYyxkLGUpe3ZhciBmPWMuX3JlYWN0Um9vdENvbnRhaW5lcjtpZihmKXt2YXIgZz1mO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlKXt2YXIgaD1lO2U9ZnVuY3Rpb24oKXt2YXIgYT1obChnKTtoLmNhbGwoYSl9fWdsKGIsZyxhLGUpfWVsc2UgZz1mdW5jdGlvbihhLGIsYyxkLGUpe2lmKGUpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBkKXt2YXIgZj1kO2Q9ZnVuY3Rpb24oKXt2YXIgYT1obChnKTtmLmNhbGwoYSl9fXZhciBnPWZsKGIsZCxhLDAsbnVsbCwhMSwhMSwiIixxbCk7cmV0dXJuIGEuX3JlYWN0Um9vdENvbnRhaW5lcj1nLGFbdWZdPWcuY3VycmVudCxzZig4PT09YS5ub2RlVHlwZT9hLnBhcmVudE5vZGU6YSksU2soKSxnfWZvcig7ZT1hLmxhc3RDaGlsZDspYS5yZW1vdmVDaGlsZChlKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZCl7dmFyIGg9ZDtkPWZ1bmN0aW9uKCl7dmFyIGE9aGwoayk7aC5jYWxsKGEpfX12YXIgaz1jbChhLDAsITEsbnVsbCxudWxsLCExLCExLCIiLHFsKTtyZXR1cm4gYS5fcmVhY3RSb290Q29udGFpbmVyPWssYVt1Zl09ay5jdXJyZW50LHNmKDg9PT1hLm5vZGVUeXBlP2EucGFyZW50Tm9kZTphKSxTayhmdW5jdGlvbigpe2dsKGIsayxjLGQpfSksa30oYyxiLGEsZSxkKTtyZXR1cm4gaGwoZyl9bmwucHJvdG90eXBlLnJlbmRlcj1tbC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuX2ludGVybmFsUm9vdDtpZihudWxsPT09Yil0aHJvdyBFcnJvcihwKDQwOSkpO2dsKGEsYixudWxsLG51bGwpfSxubC5wcm90b3R5cGUudW5tb3VudD1tbC5wcm90b3R5cGUudW5tb3VudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuX2ludGVybmFsUm9vdDtpZihudWxsIT09YSl7dGhpcy5faW50ZXJuYWxSb290PW51bGw7dmFyIGI9YS5jb250YWluZXJJbmZvO1NrKGZ1bmN0aW9uKCl7Z2wobnVsbCxhLG51bGwsbnVsbCl9KSxiW3VmXT1udWxsfX0sbmwucHJvdG90eXBlLnVuc3RhYmxlX3NjaGVkdWxlSHlkcmF0aW9uPWZ1bmN0aW9uKGEpe2lmKGEpe3ZhciBiPUhjKCk7YT17YmxvY2tlZE9uOm51bGwsdGFyZ2V0OmEscHJpb3JpdHk6Yn07Zm9yKHZhciBjPTA7YzxRYy5sZW5ndGgmJjAhPT1iJiZiPFFjW2NdLnByaW9yaXR5O2MrKyk7UWMuc3BsaWNlKGMsMCxhKSwwPT09YyYmVmMoYSl9fSxFYz1mdW5jdGlvbihhKXtzd2l0Y2goYS50YWcpe2Nhc2UgMzp2YXIgYj1hLnN0YXRlTm9kZTtpZihiLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpe3ZhciBjPXRjKGIucGVuZGluZ0xhbmVzKTswIT09YyYmKENjKGIsMXxjKSxFayhiLEIoKSksMD09KDYmSykmJihIaj1CKCkrNTAwLGpnKCkpKX1icmVhaztjYXNlIDEzOlNrKGZ1bmN0aW9uKCl7dmFyIGI9WmcoYSwxKTtudWxsIT09YiYmbWgoYixhLDEsTCgpKX0pLGpsKGEsMSl9fSxGYz1mdW5jdGlvbihhKXtpZigxMz09PWEudGFnKXt2YXIgYj1aZyhhLDEzNDIxNzcyOCk7bnVsbCE9PWImJm1oKGIsYSwxMzQyMTc3MjgsTCgpKSxqbChhLDEzNDIxNzcyOCl9fSxHYz1mdW5jdGlvbihhKXtpZigxMz09PWEudGFnKXt2YXIgYj1saChhKSxjPVpnKGEsYik7bnVsbCE9PWMmJm1oKGMsYSxiLEwoKSksamwoYSxiKX19LEhjPWZ1bmN0aW9uKCl7cmV0dXJuIEN9LEljPWZ1bmN0aW9uKGEsYil7dmFyIGM9Qzt0cnl7cmV0dXJuIEM9YSxiKCl9ZmluYWxseXtDPWN9fSx5Yj1mdW5jdGlvbihhLGIsYyl7c3dpdGNoKGIpe2Nhc2UiaW5wdXQiOmlmKGJiKGEsYyksYj1jLm5hbWUsInJhZGlvIj09PWMudHlwZSYmbnVsbCE9Yil7Zm9yKGM9YTtjLnBhcmVudE5vZGU7KWM9Yy5wYXJlbnROb2RlO2ZvcihjPWMucXVlcnlTZWxlY3RvckFsbCgiaW5wdXRbbmFtZT0iK0pTT04uc3RyaW5naWZ5KCIiK2IpKyddW3R5cGU9InJhZGlvIl0nKSxiPTA7YjxjLmxlbmd0aDtiKyspe3ZhciBkPWNbYl07aWYoZCE9PWEmJmQuZm9ybT09PWEuZm9ybSl7dmFyIGU9RGIoZCk7aWYoIWUpdGhyb3cgRXJyb3IocCg5MCkpO1dhKGQpLGJiKGQsZSl9fX1icmVhaztjYXNlInRleHRhcmVhIjppYihhLGMpO2JyZWFrO2Nhc2Uic2VsZWN0IjpudWxsIT0oYj1jLnZhbHVlKSYmZmIoYSwhIWMubXVsdGlwbGUsYiwhMSl9fSxHYj1SayxIYj1Tazt2YXIgdWw9e2ZpbmRGaWJlckJ5SG9zdEluc3RhbmNlOldjLGJ1bmRsZVR5cGU6MCx2ZXJzaW9uOiIxOC4yLjAiLHJlbmRlcmVyUGFja2FnZU5hbWU6InJlYWN0LWRvbSJ9LHZsPXtidW5kbGVUeXBlOnVsLmJ1bmRsZVR5cGUsdmVyc2lvbjp1bC52ZXJzaW9uLHJlbmRlcmVyUGFja2FnZU5hbWU6dWwucmVuZGVyZXJQYWNrYWdlTmFtZSxyZW5kZXJlckNvbmZpZzp1bC5yZW5kZXJlckNvbmZpZyxvdmVycmlkZUhvb2tTdGF0ZTpudWxsLG92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aDpudWxsLG92ZXJyaWRlSG9va1N0YXRlUmVuYW1lUGF0aDpudWxsLG92ZXJyaWRlUHJvcHM6bnVsbCxvdmVycmlkZVByb3BzRGVsZXRlUGF0aDpudWxsLG92ZXJyaWRlUHJvcHNSZW5hbWVQYXRoOm51bGwsc2V0RXJyb3JIYW5kbGVyOm51bGwsc2V0U3VzcGVuc2VIYW5kbGVyOm51bGwsc2NoZWR1bGVVcGRhdGU6bnVsbCxjdXJyZW50RGlzcGF0Y2hlclJlZjp1YS5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLGZpbmRIb3N0SW5zdGFuY2VCeUZpYmVyOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT09KGE9WmIoYSkpP251bGw6YS5zdGF0ZU5vZGV9LGZpbmRGaWJlckJ5SG9zdEluc3RhbmNlOnVsLmZpbmRGaWJlckJ5SG9zdEluc3RhbmNlfHxmdW5jdGlvbigpe3JldHVybiBudWxsfSxmaW5kSG9zdEluc3RhbmNlc0ZvclJlZnJlc2g6bnVsbCxzY2hlZHVsZVJlZnJlc2g6bnVsbCxzY2hlZHVsZVJvb3Q6bnVsbCxzZXRSZWZyZXNoSGFuZGxlcjpudWxsLGdldEN1cnJlbnRGaWJlcjpudWxsLHJlY29uY2lsZXJWZXJzaW9uOiIxOC4yLjAtbmV4dC05ZTNiNzcyYjgtMjAyMjA2MDgifTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyl7dmFyIHdsPV9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztpZighd2wuaXNEaXNhYmxlZCYmd2wuc3VwcG9ydHNGaWJlcil0cnl7a2M9d2wuaW5qZWN0KHZsKSxsYz13bH1jYXRjaChhMil7fX1leHBvcnRzLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEPXt1c2luZ0NsaWVudEVudHJ5UG9pbnQ6ITEsRXZlbnRzOltDYix1ZSxEYixFYixGYixSa119LGV4cG9ydHMuY3JlYXRlUG9ydGFsPWZ1bmN0aW9uKGEsYil7dmFyIGM9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGw7aWYoIW9sKGIpKXRocm93IEVycm9yKHAoMjAwKSk7cmV0dXJuIGZ1bmN0aW9uKGEsYixjKXt2YXIgZD0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbDtyZXR1cm57JCR0eXBlb2Y6d2Esa2V5Om51bGw9PWQ/bnVsbDoiIitkLGNoaWxkcmVuOmEsY29udGFpbmVySW5mbzpiLGltcGxlbWVudGF0aW9uOm51bGx9fShhLGIsbnVsbCxjKX0sZXhwb3J0cy5jcmVhdGVSb290PWZ1bmN0aW9uKGEsYil7aWYoIW9sKGEpKXRocm93IEVycm9yKHAoMjk5KSk7dmFyIGM9ITEsZD0iIixlPWxsO3JldHVybiBudWxsIT1iJiYoITA9PT1iLnVuc3RhYmxlX3N0cmljdE1vZGUmJihjPSEwKSx2b2lkIDAhPT1iLmlkZW50aWZpZXJQcmVmaXgmJihkPWIuaWRlbnRpZmllclByZWZpeCksdm9pZCAwIT09Yi5vblJlY292ZXJhYmxlRXJyb3ImJihlPWIub25SZWNvdmVyYWJsZUVycm9yKSksYj1jbChhLDEsITEsbnVsbCxudWxsLGMsITEsZCxlKSxhW3VmXT1iLmN1cnJlbnQsc2YoOD09PWEubm9kZVR5cGU/YS5wYXJlbnROb2RlOmEpLG5ldyBtbChiKX0sZXhwb3J0cy5maW5kRE9NTm9kZT1mdW5jdGlvbihhKXtpZihudWxsPT1hKXJldHVybiBudWxsO2lmKDE9PT1hLm5vZGVUeXBlKXJldHVybiBhO3ZhciBiPWEuX3JlYWN0SW50ZXJuYWxzO2lmKHZvaWQgMD09PWIpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnJlbmRlcil0aHJvdyBFcnJvcihwKDE4OCkpO3Rocm93IEVycm9yKHAoMjY4LGE9T2JqZWN0LmtleXMoYSkuam9pbigiLCIpKSl9cmV0dXJuIGE9bnVsbD09PShhPVpiKGIpKT9udWxsOmEuc3RhdGVOb2RlfSxleHBvcnRzLmZsdXNoU3luYz1mdW5jdGlvbihhKXtyZXR1cm4gU2soYSl9LGV4cG9ydHMuaHlkcmF0ZT1mdW5jdGlvbihhLGIsYyl7aWYoIXBsKGIpKXRocm93IEVycm9yKHAoMjAwKSk7cmV0dXJuIHNsKG51bGwsYSxiLCEwLGMpfSxleHBvcnRzLmh5ZHJhdGVSb290PWZ1bmN0aW9uKGEsYixjKXtpZighb2woYSkpdGhyb3cgRXJyb3IocCg0MDUpKTt2YXIgZD1udWxsIT1jJiZjLmh5ZHJhdGVkU291cmNlc3x8bnVsbCxlPSExLGY9IiIsZz1sbDtpZihudWxsIT1jJiYoITA9PT1jLnVuc3RhYmxlX3N0cmljdE1vZGUmJihlPSEwKSx2b2lkIDAhPT1jLmlkZW50aWZpZXJQcmVmaXgmJihmPWMuaWRlbnRpZmllclByZWZpeCksdm9pZCAwIT09Yy5vblJlY292ZXJhYmxlRXJyb3ImJihnPWMub25SZWNvdmVyYWJsZUVycm9yKSksYj1mbChiLG51bGwsYSwxLG51bGwhPWM/YzpudWxsLGUsITEsZixnKSxhW3VmXT1iLmN1cnJlbnQsc2YoYSksZClmb3IoYT0wO2E8ZC5sZW5ndGg7YSsrKWU9KGU9KGM9ZFthXSkuX2dldFZlcnNpb24pKGMuX3NvdXJjZSksbnVsbD09Yi5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhP2IubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YT1bYyxlXTpiLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGEucHVzaChjLGUpO3JldHVybiBuZXcgbmwoYil9LGV4cG9ydHMucmVuZGVyPWZ1bmN0aW9uKGEsYixjKXtpZighcGwoYikpdGhyb3cgRXJyb3IocCgyMDApKTtyZXR1cm4gc2wobnVsbCxhLGIsITEsYyl9LGV4cG9ydHMudW5tb3VudENvbXBvbmVudEF0Tm9kZT1mdW5jdGlvbihhKXtpZighcGwoYSkpdGhyb3cgRXJyb3IocCg0MCkpO3JldHVybiEhYS5fcmVhY3RSb290Q29udGFpbmVyJiYoU2soZnVuY3Rpb24oKXtzbChudWxsLG51bGwsYSwhMSxmdW5jdGlvbigpe2EuX3JlYWN0Um9vdENvbnRhaW5lcj1udWxsLGFbdWZdPW51bGx9KX0pLCEwKX0sZXhwb3J0cy51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcz1SayxleHBvcnRzLnVuc3RhYmxlX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyPWZ1bmN0aW9uKGEsYixjLGQpe2lmKCFwbChjKSl0aHJvdyBFcnJvcihwKDIwMCkpO2lmKG51bGw9PWF8fHZvaWQgMD09PWEuX3JlYWN0SW50ZXJuYWxzKXRocm93IEVycm9yKHAoMzgpKTtyZXR1cm4gc2woYSxiLGMsITEsZCl9LGV4cG9ydHMudmVyc2lvbj0iMTguMi4wLW5leHQtOWUzYjc3MmI4LTIwMjIwNjA4In0sMjA3NDU6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDczOTM1KTtleHBvcnRzLmNyZWF0ZVJvb3Q9bS5jcmVhdGVSb290LGV4cG9ydHMuaHlkcmF0ZVJvb3Q9bS5oeWRyYXRlUm9vdH0sNzM5MzU6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3dlYnBhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXshZnVuY3Rpb24gY2hlY2tEQ0UoKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyYmImZ1bmN0aW9uIj09dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSl0cnl7X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKGNoZWNrRENFKX1jYXRjaChlcnIpe2NvbnNvbGUuZXJyb3IoZXJyKX19KCksbW9kdWxlLmV4cG9ydHM9X193ZWJwYWNrX3JlcXVpcmVfXyg2NDQ0OCl9LDc1MjUxOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7LyoqCiAqIEBsaWNlbnNlIFJlYWN0CiAqIHJlYWN0LWpzeC1ydW50aW1lLnByb2R1Y3Rpb24ubWluLmpzCiAqCiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLgogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGUKICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi8gdmFyIGY9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksaz1TeW1ib2wuZm9yKCJyZWFjdC5lbGVtZW50IiksbD1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLG09T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxuPWYuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQuUmVhY3RDdXJyZW50T3duZXIscD17a2V5OiEwLHJlZjohMCxfX3NlbGY6ITAsX19zb3VyY2U6ITB9O2Z1bmN0aW9uIHEoYyxhLGcpe3ZhciBiLGQ9e30sZT1udWxsLGg9bnVsbDtmb3IoYiBpbiB2b2lkIDAhPT1nJiYoZT0iIitnKSx2b2lkIDAhPT1hLmtleSYmKGU9IiIrYS5rZXkpLHZvaWQgMCE9PWEucmVmJiYoaD1hLnJlZiksYSltLmNhbGwoYSxiKSYmIXAuaGFzT3duUHJvcGVydHkoYikmJihkW2JdPWFbYl0pO2lmKGMmJmMuZGVmYXVsdFByb3BzKWZvcihiIGluIGE9Yy5kZWZhdWx0UHJvcHMpdm9pZCAwPT09ZFtiXSYmKGRbYl09YVtiXSk7cmV0dXJueyQkdHlwZW9mOmssdHlwZTpjLGtleTplLHJlZjpoLHByb3BzOmQsX293bmVyOm4uY3VycmVudH19ZXhwb3J0cy5GcmFnbWVudD1sLGV4cG9ydHMuanN4PXEsZXhwb3J0cy5qc3hzPXF9LDcyNDA4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMpey8qKgogKiBAbGljZW5zZSBSZWFjdAogKiByZWFjdC5wcm9kdWN0aW9uLm1pbi5qcwogKgogKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4KICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlCiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovIHZhciBsPVN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKSxuPVN5bWJvbC5mb3IoInJlYWN0LnBvcnRhbCIpLHA9U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKSxxPVN5bWJvbC5mb3IoInJlYWN0LnN0cmljdF9tb2RlIikscj1TeW1ib2wuZm9yKCJyZWFjdC5wcm9maWxlciIpLHQ9U3ltYm9sLmZvcigicmVhY3QucHJvdmlkZXIiKSx1PVN5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKSx2PVN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIiksdz1TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZSIpLHg9U3ltYm9sLmZvcigicmVhY3QubWVtbyIpLHk9U3ltYm9sLmZvcigicmVhY3QubGF6eSIpLHo9U3ltYm9sLml0ZXJhdG9yLEI9e2lzTW91bnRlZDpmdW5jdGlvbigpe3JldHVybiExfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbigpe319LEM9T2JqZWN0LmFzc2lnbixEPXt9O2Z1bmN0aW9uIEUoYSxiLGUpe3RoaXMucHJvcHM9YSx0aGlzLmNvbnRleHQ9Yix0aGlzLnJlZnM9RCx0aGlzLnVwZGF0ZXI9ZXx8Qn1mdW5jdGlvbiBGKCl7fWZ1bmN0aW9uIEcoYSxiLGUpe3RoaXMucHJvcHM9YSx0aGlzLmNvbnRleHQ9Yix0aGlzLnJlZnM9RCx0aGlzLnVwZGF0ZXI9ZXx8Qn1FLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9LEUucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKGEsYil7aWYoIm9iamVjdCIhPXR5cGVvZiBhJiYiZnVuY3Rpb24iIT10eXBlb2YgYSYmbnVsbCE9YSl0aHJvdyBFcnJvcigic2V0U3RhdGUoLi4uKTogdGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMuIik7dGhpcy51cGRhdGVyLmVucXVldWVTZXRTdGF0ZSh0aGlzLGEsYiwic2V0U3RhdGUiKX0sRS5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oYSl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLGEsImZvcmNlVXBkYXRlIil9LEYucHJvdG90eXBlPUUucHJvdG90eXBlO3ZhciBIPUcucHJvdG90eXBlPW5ldyBGO0guY29uc3RydWN0b3I9RyxDKEgsRS5wcm90b3R5cGUpLEguaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIEk9QXJyYXkuaXNBcnJheSxKPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksSz17Y3VycmVudDpudWxsfSxMPXtrZXk6ITAscmVmOiEwLF9fc2VsZjohMCxfX3NvdXJjZTohMH07ZnVuY3Rpb24gTShhLGIsZSl7dmFyIGQsYz17fSxrPW51bGwsaD1udWxsO2lmKG51bGwhPWIpZm9yKGQgaW4gdm9pZCAwIT09Yi5yZWYmJihoPWIucmVmKSx2b2lkIDAhPT1iLmtleSYmKGs9IiIrYi5rZXkpLGIpSi5jYWxsKGIsZCkmJiFMLmhhc093blByb3BlcnR5KGQpJiYoY1tkXT1iW2RdKTt2YXIgZz1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWcpYy5jaGlsZHJlbj1lO2Vsc2UgaWYoMTxnKXtmb3IodmFyIGY9QXJyYXkoZyksbT0wO208ZzttKyspZlttXT1hcmd1bWVudHNbbSsyXTtjLmNoaWxkcmVuPWZ9aWYoYSYmYS5kZWZhdWx0UHJvcHMpZm9yKGQgaW4gZz1hLmRlZmF1bHRQcm9wcyl2b2lkIDA9PT1jW2RdJiYoY1tkXT1nW2RdKTtyZXR1cm57JCR0eXBlb2Y6bCx0eXBlOmEsa2V5OmsscmVmOmgscHJvcHM6Yyxfb3duZXI6Sy5jdXJyZW50fX1mdW5jdGlvbiBPKGEpe3JldHVybiJvYmplY3QiPT10eXBlb2YgYSYmbnVsbCE9PWEmJmEuJCR0eXBlb2Y9PT1sfXZhciBQPS9cLysvZztmdW5jdGlvbiBRKGEsYil7dmFyIGExLGIxO3JldHVybiJvYmplY3QiPT10eXBlb2YgYSYmbnVsbCE9PWEmJm51bGwhPWEua2V5PyhhMT0iIithLmtleSxiMT17Ij0iOiI9MCIsIjoiOiI9MiJ9LCIkIithMS5yZXBsYWNlKC9bPTpdL2csZnVuY3Rpb24oYSl7cmV0dXJuIGIxW2FdfSkpOmIudG9TdHJpbmcoMzYpfWZ1bmN0aW9uIFMoYSxiLGUpe2lmKG51bGw9PWEpcmV0dXJuIGE7dmFyIGQ9W10sYz0wO3JldHVybiFmdW5jdGlvbiBSKGEsYixlLGQsYyl7dmFyIGExLGIxLGEyLGs9dHlwZW9mIGE7KCJ1bmRlZmluZWQiPT09a3x8ImJvb2xlYW4iPT09aykmJihhPW51bGwpO3ZhciBoPSExO2lmKG51bGw9PT1hKWg9ITA7ZWxzZSBzd2l0Y2goayl7Y2FzZSJzdHJpbmciOmNhc2UibnVtYmVyIjpoPSEwO2JyZWFrO2Nhc2Uib2JqZWN0Ijpzd2l0Y2goYS4kJHR5cGVvZil7Y2FzZSBsOmNhc2UgbjpoPSEwfX1pZihoKXJldHVybiBjPWMoaD1hKSxhPSIiPT09ZD8iLiIrUShoLDApOmQsSShjKT8oZT0iIixudWxsIT1hJiYoZT1hLnJlcGxhY2UoUCwiJCYvIikrIi8iKSxSKGMsYixlLCIiLGZ1bmN0aW9uKGEpe3JldHVybiBhfSkpOm51bGwhPWMmJihPKGMpJiYoYTE9YyxiMT1lKyghYy5rZXl8fGgmJmgua2V5PT09Yy5rZXk/IiI6KCIiK2Mua2V5KS5yZXBsYWNlKFAsIiQmLyIpKyIvIikrYSxjPXskJHR5cGVvZjpsLHR5cGU6YTEudHlwZSxrZXk6YjEscmVmOmExLnJlZixwcm9wczphMS5wcm9wcyxfb3duZXI6YTEuX293bmVyfSksYi5wdXNoKGMpKSwxO2lmKGg9MCxkPSIiPT09ZD8iLiI6ZCsiOiIsSShhKSlmb3IodmFyIGc9MDtnPGEubGVuZ3RoO2crKyl7az1hW2ddO3ZhciBmPWQrUShrLGcpO2grPVIoayxiLGUsZixjKX1lbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZihmPW51bGw9PT0oYTI9YSl8fCJvYmplY3QiIT10eXBlb2YgYTI/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YoYTI9eiYmYTJbel18fGEyWyJAQGl0ZXJhdG9yIl0pP2EyOm51bGwpKWZvcihhPWYuY2FsbChhKSxnPTA7IShrPWEubmV4dCgpKS5kb25lOylmPWQrUShrPWsudmFsdWUsZysrKSxoKz1SKGssYixlLGYsYyk7ZWxzZSBpZigib2JqZWN0Ij09PWspdGhyb3cgRXJyb3IoIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogIisoIltvYmplY3QgT2JqZWN0XSI9PT0oYj1TdHJpbmcoYSkpPyJvYmplY3Qgd2l0aCBrZXlzIHsiK09iamVjdC5rZXlzKGEpLmpvaW4oIiwgIikrIn0iOmIpKyIpLiBJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5IGluc3RlYWQuIik7cmV0dXJuIGh9KGEsZCwiIiwiIixmdW5jdGlvbihhKXtyZXR1cm4gYi5jYWxsKGUsYSxjKyspfSksZH1mdW5jdGlvbiBUKGEpe2lmKC0xPT09YS5fc3RhdHVzKXt2YXIgYj1hLl9yZXN1bHQ7KGI9YigpKS50aGVuKGZ1bmN0aW9uKGIpeygwPT09YS5fc3RhdHVzfHwtMT09PWEuX3N0YXR1cykmJihhLl9zdGF0dXM9MSxhLl9yZXN1bHQ9Yil9LGZ1bmN0aW9uKGIpeygwPT09YS5fc3RhdHVzfHwtMT09PWEuX3N0YXR1cykmJihhLl9zdGF0dXM9MixhLl9yZXN1bHQ9Yil9KSwtMT09PWEuX3N0YXR1cyYmKGEuX3N0YXR1cz0wLGEuX3Jlc3VsdD1iKX1pZigxPT09YS5fc3RhdHVzKXJldHVybiBhLl9yZXN1bHQuZGVmYXVsdDt0aHJvdyBhLl9yZXN1bHR9dmFyIFU9e2N1cnJlbnQ6bnVsbH0sVj17dHJhbnNpdGlvbjpudWxsfTtleHBvcnRzLkNoaWxkcmVuPXttYXA6Uyxmb3JFYWNoOmZ1bmN0aW9uKGEsYixlKXtTKGEsZnVuY3Rpb24oKXtiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZSl9LGNvdW50OmZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIFMoYSxmdW5jdGlvbigpe2IrK30pLGJ9LHRvQXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIFMoYSxmdW5jdGlvbihhKXtyZXR1cm4gYX0pfHxbXX0sb25seTpmdW5jdGlvbihhKXtpZighTyhhKSl0aHJvdyBFcnJvcigiUmVhY3QuQ2hpbGRyZW4ub25seSBleHBlY3RlZCB0byByZWNlaXZlIGEgc2luZ2xlIFJlYWN0IGVsZW1lbnQgY2hpbGQuIik7cmV0dXJuIGF9fSxleHBvcnRzLkNvbXBvbmVudD1FLGV4cG9ydHMuRnJhZ21lbnQ9cCxleHBvcnRzLlByb2ZpbGVyPXIsZXhwb3J0cy5QdXJlQ29tcG9uZW50PUcsZXhwb3J0cy5TdHJpY3RNb2RlPXEsZXhwb3J0cy5TdXNwZW5zZT13LGV4cG9ydHMuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ9e1JlYWN0Q3VycmVudERpc3BhdGNoZXI6VSxSZWFjdEN1cnJlbnRCYXRjaENvbmZpZzpWLFJlYWN0Q3VycmVudE93bmVyOkt9LGV4cG9ydHMuY2xvbmVFbGVtZW50PWZ1bmN0aW9uKGEsYixlKXtpZihudWxsPT1hKXRocm93IEVycm9yKCJSZWFjdC5jbG9uZUVsZW1lbnQoLi4uKTogVGhlIGFyZ3VtZW50IG11c3QgYmUgYSBSZWFjdCBlbGVtZW50LCBidXQgeW91IHBhc3NlZCAiK2ErIi4iKTt2YXIgZD1DKHt9LGEucHJvcHMpLGM9YS5rZXksaz1hLnJlZixoPWEuX293bmVyO2lmKG51bGwhPWIpe2lmKHZvaWQgMCE9PWIucmVmJiYoaz1iLnJlZixoPUsuY3VycmVudCksdm9pZCAwIT09Yi5rZXkmJihjPSIiK2Iua2V5KSxhLnR5cGUmJmEudHlwZS5kZWZhdWx0UHJvcHMpdmFyIGc9YS50eXBlLmRlZmF1bHRQcm9wcztmb3IoZiBpbiBiKUouY2FsbChiLGYpJiYhTC5oYXNPd25Qcm9wZXJ0eShmKSYmKGRbZl09dm9pZCAwPT09YltmXSYmdm9pZCAwIT09Zz9nW2ZdOmJbZl0pfXZhciBmPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09ZilkLmNoaWxkcmVuPWU7ZWxzZSBpZigxPGYpe2c9QXJyYXkoZik7Zm9yKHZhciBtPTA7bTxmO20rKylnW21dPWFyZ3VtZW50c1ttKzJdO2QuY2hpbGRyZW49Z31yZXR1cm57JCR0eXBlb2Y6bCx0eXBlOmEudHlwZSxrZXk6YyxyZWY6ayxwcm9wczpkLF9vd25lcjpofX0sZXhwb3J0cy5jcmVhdGVDb250ZXh0PWZ1bmN0aW9uKGEpe3JldHVybihhPXskJHR5cGVvZjp1LF9jdXJyZW50VmFsdWU6YSxfY3VycmVudFZhbHVlMjphLF90aHJlYWRDb3VudDowLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbCxfZGVmYXVsdFZhbHVlOm51bGwsX2dsb2JhbE5hbWU6bnVsbH0pLlByb3ZpZGVyPXskJHR5cGVvZjp0LF9jb250ZXh0OmF9LGEuQ29uc3VtZXI9YX0sZXhwb3J0cy5jcmVhdGVFbGVtZW50PU0sZXhwb3J0cy5jcmVhdGVGYWN0b3J5PWZ1bmN0aW9uKGEpe3ZhciBiPU0uYmluZChudWxsLGEpO3JldHVybiBiLnR5cGU9YSxifSxleHBvcnRzLmNyZWF0ZVJlZj1mdW5jdGlvbigpe3JldHVybntjdXJyZW50Om51bGx9fSxleHBvcnRzLmZvcndhcmRSZWY9ZnVuY3Rpb24oYSl7cmV0dXJueyQkdHlwZW9mOnYscmVuZGVyOmF9fSxleHBvcnRzLmlzVmFsaWRFbGVtZW50PU8sZXhwb3J0cy5sYXp5PWZ1bmN0aW9uKGEpe3JldHVybnskJHR5cGVvZjp5LF9wYXlsb2FkOntfc3RhdHVzOi0xLF9yZXN1bHQ6YX0sX2luaXQ6VH19LGV4cG9ydHMubWVtbz1mdW5jdGlvbihhLGIpe3JldHVybnskJHR5cGVvZjp4LHR5cGU6YSxjb21wYXJlOnZvaWQgMD09PWI/bnVsbDpifX0sZXhwb3J0cy5zdGFydFRyYW5zaXRpb249ZnVuY3Rpb24oYSl7dmFyIGI9Vi50cmFuc2l0aW9uO1YudHJhbnNpdGlvbj17fTt0cnl7YSgpfWZpbmFsbHl7Vi50cmFuc2l0aW9uPWJ9fSxleHBvcnRzLnVuc3RhYmxlX2FjdD1mdW5jdGlvbigpe3Rocm93IEVycm9yKCJhY3QoLi4uKSBpcyBub3Qgc3VwcG9ydGVkIGluIHByb2R1Y3Rpb24gYnVpbGRzIG9mIFJlYWN0LiIpfSxleHBvcnRzLnVzZUNhbGxiYWNrPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFUuY3VycmVudC51c2VDYWxsYmFjayhhLGIpfSxleHBvcnRzLnVzZUNvbnRleHQ9ZnVuY3Rpb24oYSl7cmV0dXJuIFUuY3VycmVudC51c2VDb250ZXh0KGEpfSxleHBvcnRzLnVzZURlYnVnVmFsdWU9ZnVuY3Rpb24oKXt9LGV4cG9ydHMudXNlRGVmZXJyZWRWYWx1ZT1mdW5jdGlvbihhKXtyZXR1cm4gVS5jdXJyZW50LnVzZURlZmVycmVkVmFsdWUoYSl9LGV4cG9ydHMudXNlRWZmZWN0PWZ1bmN0aW9uKGEsYil7cmV0dXJuIFUuY3VycmVudC51c2VFZmZlY3QoYSxiKX0sZXhwb3J0cy51c2VJZD1mdW5jdGlvbigpe3JldHVybiBVLmN1cnJlbnQudXNlSWQoKX0sZXhwb3J0cy51c2VJbXBlcmF0aXZlSGFuZGxlPWZ1bmN0aW9uKGEsYixlKXtyZXR1cm4gVS5jdXJyZW50LnVzZUltcGVyYXRpdmVIYW5kbGUoYSxiLGUpfSxleHBvcnRzLnVzZUluc2VydGlvbkVmZmVjdD1mdW5jdGlvbihhLGIpe3JldHVybiBVLmN1cnJlbnQudXNlSW5zZXJ0aW9uRWZmZWN0KGEsYil9LGV4cG9ydHMudXNlTGF5b3V0RWZmZWN0PWZ1bmN0aW9uKGEsYil7cmV0dXJuIFUuY3VycmVudC51c2VMYXlvdXRFZmZlY3QoYSxiKX0sZXhwb3J0cy51c2VNZW1vPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFUuY3VycmVudC51c2VNZW1vKGEsYil9LGV4cG9ydHMudXNlUmVkdWNlcj1mdW5jdGlvbihhLGIsZSl7cmV0dXJuIFUuY3VycmVudC51c2VSZWR1Y2VyKGEsYixlKX0sZXhwb3J0cy51c2VSZWY9ZnVuY3Rpb24oYSl7cmV0dXJuIFUuY3VycmVudC51c2VSZWYoYSl9LGV4cG9ydHMudXNlU3RhdGU9ZnVuY3Rpb24oYSl7cmV0dXJuIFUuY3VycmVudC51c2VTdGF0ZShhKX0sZXhwb3J0cy51c2VTeW5jRXh0ZXJuYWxTdG9yZT1mdW5jdGlvbihhLGIsZSl7cmV0dXJuIFUuY3VycmVudC51c2VTeW5jRXh0ZXJuYWxTdG9yZShhLGIsZSl9LGV4cG9ydHMudXNlVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiBVLmN1cnJlbnQudXNlVHJhbnNpdGlvbigpfSxleHBvcnRzLnZlcnNpb249IjE4LjIuMCJ9LDY3Mjk0OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7bW9kdWxlLmV4cG9ydHM9X193ZWJwYWNrX3JlcXVpcmVfXyg3MjQwOCl9LDg1ODkzOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7bW9kdWxlLmV4cG9ydHM9X193ZWJwYWNrX3JlcXVpcmVfXyg3NTI1MSl9LDYwMDUzOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMpey8qKgogKiBAbGljZW5zZSBSZWFjdAogKiBzY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanMKICoKICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZQogKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAqLyBmdW5jdGlvbiBmKGEsYil7dmFyIGM9YS5sZW5ndGg7YS5wdXNoKGIpO2E6Zm9yKDswPGM7KXt2YXIgZD1jLTE+Pj4xLGU9YVtkXTtpZigwPGcoZSxiKSlhW2RdPWIsYVtjXT1lLGM9ZDtlbHNlIGJyZWFrIGF9fWZ1bmN0aW9uIGgoYSl7cmV0dXJuIDA9PT1hLmxlbmd0aD9udWxsOmFbMF19ZnVuY3Rpb24gayhhKXtpZigwPT09YS5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIGI9YVswXSxjPWEucG9wKCk7aWYoYyE9PWIpe2FbMF09YzthOmZvcih2YXIgZD0wLGU9YS5sZW5ndGgsdz1lPj4+MTtkPHc7KXt2YXIgbT0yKihkKzEpLTEsQz1hW21dLG49bSsxLHg9YVtuXTtpZigwPmcoQyxjKSluPGUmJjA+Zyh4LEMpPyhhW2RdPXgsYVtuXT1jLGQ9bik6KGFbZF09QyxhW21dPWMsZD1tKTtlbHNlIGlmKG48ZSYmMD5nKHgsYykpYVtkXT14LGFbbl09YyxkPW47ZWxzZSBicmVhayBhfX1yZXR1cm4gYn1mdW5jdGlvbiBnKGEsYil7dmFyIGM9YS5zb3J0SW5kZXgtYi5zb3J0SW5kZXg7cmV0dXJuIDAhPT1jP2M6YS5pZC1iLmlkfWlmKCJvYmplY3QiPT10eXBlb2YgcGVyZm9ybWFuY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBwZXJmb3JtYW5jZS5ub3cpe3ZhciBTLGw9cGVyZm9ybWFuY2U7ZXhwb3J0cy51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gbC5ub3coKX19ZWxzZXt2YXIgcD1EYXRlLHE9cC5ub3coKTtleHBvcnRzLnVuc3RhYmxlX25vdz1mdW5jdGlvbigpe3JldHVybiBwLm5vdygpLXF9fXZhciByPVtdLHQ9W10sdT0xLHY9bnVsbCx5PTMsej0hMSxBPSExLEI9ITEsRD0iZnVuY3Rpb24iPT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0Om51bGwsRT0iZnVuY3Rpb24iPT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDpudWxsLEY9InVuZGVmaW5lZCIhPXR5cGVvZiBzZXRJbW1lZGlhdGU/c2V0SW1tZWRpYXRlOm51bGw7ZnVuY3Rpb24gRyhhKXtmb3IodmFyIGI9aCh0KTtudWxsIT09Yjspe2lmKG51bGw9PT1iLmNhbGxiYWNrKWsodCk7ZWxzZSBpZihiLnN0YXJ0VGltZTw9YSlrKHQpLGIuc29ydEluZGV4PWIuZXhwaXJhdGlvblRpbWUsZihyLGIpO2Vsc2UgYnJlYWs7Yj1oKHQpfX1mdW5jdGlvbiBIKGEpe2lmKEI9ITEsRyhhKSwhQSl7aWYobnVsbCE9PWgocikpQT0hMCxJKEopO2Vsc2V7dmFyIGI9aCh0KTtudWxsIT09YiYmSyhILGIuc3RhcnRUaW1lLWEpfX19ZnVuY3Rpb24gSihhLGIpe0E9ITEsQiYmKEI9ITEsRShMKSxMPS0xKSx6PSEwO3ZhciBjPXk7dHJ5e2ZvcihHKGIpLHY9aChyKTtudWxsIT09diYmKCEodi5leHBpcmF0aW9uVGltZT5iKXx8YSYmIU0oKSk7KXt2YXIgZD12LmNhbGxiYWNrO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBkKXt2LmNhbGxiYWNrPW51bGwseT12LnByaW9yaXR5TGV2ZWw7dmFyIGU9ZCh2LmV4cGlyYXRpb25UaW1lPD1iKTtiPWV4cG9ydHMudW5zdGFibGVfbm93KCksImZ1bmN0aW9uIj09dHlwZW9mIGU/di5jYWxsYmFjaz1lOnY9PT1oKHIpJiZrKHIpLEcoYil9ZWxzZSBrKHIpO3Y9aChyKX1pZihudWxsIT09dil2YXIgdz0hMDtlbHNle3ZhciBtPWgodCk7bnVsbCE9PW0mJksoSCxtLnN0YXJ0VGltZS1iKSx3PSExfXJldHVybiB3fWZpbmFsbHl7dj1udWxsLHk9Yyx6PSExfX0idW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmdm9pZCAwIT09bmF2aWdhdG9yLnNjaGVkdWxpbmcmJnZvaWQgMCE9PW5hdmlnYXRvci5zY2hlZHVsaW5nLmlzSW5wdXRQZW5kaW5nJiZuYXZpZ2F0b3Iuc2NoZWR1bGluZy5pc0lucHV0UGVuZGluZy5iaW5kKG5hdmlnYXRvci5zY2hlZHVsaW5nKTt2YXIgTj0hMSxPPW51bGwsTD0tMSxQPTUsUT0tMTtmdW5jdGlvbiBNKCl7cmV0dXJuIShleHBvcnRzLnVuc3RhYmxlX25vdygpLVE8UCl9ZnVuY3Rpb24gUigpe2lmKG51bGwhPT1PKXt2YXIgYT1leHBvcnRzLnVuc3RhYmxlX25vdygpO1E9YTt2YXIgYj0hMDt0cnl7Yj1PKCEwLGEpfWZpbmFsbHl7Yj9TKCk6KE49ITEsTz1udWxsKX19ZWxzZSBOPSExfWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBGKVM9ZnVuY3Rpb24oKXtGKFIpfTtlbHNlIGlmKCJ1bmRlZmluZWQiIT10eXBlb2YgTWVzc2FnZUNoYW5uZWwpe3ZhciBUPW5ldyBNZXNzYWdlQ2hhbm5lbCxVPVQucG9ydDI7VC5wb3J0MS5vbm1lc3NhZ2U9UixTPWZ1bmN0aW9uKCl7VS5wb3N0TWVzc2FnZShudWxsKX19ZWxzZSBTPWZ1bmN0aW9uKCl7RChSLDApfTtmdW5jdGlvbiBJKGEpe089YSxOfHwoTj0hMCxTKCkpfWZ1bmN0aW9uIEsoYSxiKXtMPUQoZnVuY3Rpb24oKXthKGV4cG9ydHMudW5zdGFibGVfbm93KCkpfSxiKX1leHBvcnRzLnVuc3RhYmxlX0lkbGVQcmlvcml0eT01LGV4cG9ydHMudW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHk9MSxleHBvcnRzLnVuc3RhYmxlX0xvd1ByaW9yaXR5PTQsZXhwb3J0cy51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eT0zLGV4cG9ydHMudW5zdGFibGVfUHJvZmlsaW5nPW51bGwsZXhwb3J0cy51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eT0yLGV4cG9ydHMudW5zdGFibGVfY2FuY2VsQ2FsbGJhY2s9ZnVuY3Rpb24oYSl7YS5jYWxsYmFjaz1udWxsfSxleHBvcnRzLnVuc3RhYmxlX2NvbnRpbnVlRXhlY3V0aW9uPWZ1bmN0aW9uKCl7QXx8enx8KEE9ITAsSShKKSl9LGV4cG9ydHMudW5zdGFibGVfZm9yY2VGcmFtZVJhdGU9ZnVuY3Rpb24oYSl7MD5hfHwxMjU8YT9jb25zb2xlLmVycm9yKCJmb3JjZUZyYW1lUmF0ZSB0YWtlcyBhIHBvc2l0aXZlIGludCBiZXR3ZWVuIDAgYW5kIDEyNSwgZm9yY2luZyBmcmFtZSByYXRlcyBoaWdoZXIgdGhhbiAxMjUgZnBzIGlzIG5vdCBzdXBwb3J0ZWQiKTpQPTA8YT9NYXRoLmZsb29yKDFlMy9hKTo1fSxleHBvcnRzLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsPWZ1bmN0aW9uKCl7cmV0dXJuIHl9LGV4cG9ydHMudW5zdGFibGVfZ2V0Rmlyc3RDYWxsYmFja05vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gaChyKX0sZXhwb3J0cy51bnN0YWJsZV9uZXh0PWZ1bmN0aW9uKGEpe3N3aXRjaCh5KXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzp2YXIgYj0zO2JyZWFrO2RlZmF1bHQ6Yj15fXZhciBjPXk7eT1iO3RyeXtyZXR1cm4gYSgpfWZpbmFsbHl7eT1jfX0sZXhwb3J0cy51bnN0YWJsZV9wYXVzZUV4ZWN1dGlvbj1mdW5jdGlvbigpe30sZXhwb3J0cy51bnN0YWJsZV9yZXF1ZXN0UGFpbnQ9ZnVuY3Rpb24oKXt9LGV4cG9ydHMudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5PWZ1bmN0aW9uKGEsYil7c3dpdGNoKGEpe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOmNhc2UgNDpjYXNlIDU6YnJlYWs7ZGVmYXVsdDphPTN9dmFyIGM9eTt5PWE7dHJ5e3JldHVybiBiKCl9ZmluYWxseXt5PWN9fSxleHBvcnRzLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2s9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWV4cG9ydHMudW5zdGFibGVfbm93KCk7c3dpdGNoKGM9Im9iamVjdCI9PXR5cGVvZiBjJiZudWxsIT09YyYmIm51bWJlciI9PXR5cGVvZihjPWMuZGVsYXkpJiYwPGM/ZCtjOmQsYSl7Y2FzZSAxOnZhciBlPS0xO2JyZWFrO2Nhc2UgMjplPTI1MDticmVhaztjYXNlIDU6ZT0xMDczNzQxODIzO2JyZWFrO2Nhc2UgNDplPTFlNDticmVhaztkZWZhdWx0OmU9NWUzfXJldHVybiBlPWMrZSxhPXtpZDp1KyssY2FsbGJhY2s6Yixwcmlvcml0eUxldmVsOmEsc3RhcnRUaW1lOmMsZXhwaXJhdGlvblRpbWU6ZSxzb3J0SW5kZXg6LTF9LGM+ZD8oYS5zb3J0SW5kZXg9YyxmKHQsYSksbnVsbD09PWgocikmJmE9PT1oKHQpJiYoQj8oRShMKSxMPS0xKTpCPSEwLEsoSCxjLWQpKSk6KGEuc29ydEluZGV4PWUsZihyLGEpLEF8fHp8fChBPSEwLEkoSikpKSxhfSxleHBvcnRzLnVuc3RhYmxlX3Nob3VsZFlpZWxkPU0sZXhwb3J0cy51bnN0YWJsZV93cmFwQ2FsbGJhY2s9ZnVuY3Rpb24oYSl7dmFyIGI9eTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYz15O3k9Yjt0cnl7cmV0dXJuIGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZpbmFsbHl7eT1jfX19fSw2Mzg0MDpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfd2VicGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe21vZHVsZS5leHBvcnRzPV9fd2VicGFja19yZXF1aXJlX18oNjAwNTMpfX1dKTs="}},"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":"buvei.com/_next/static/chunks/commons-45d986bc686a719f.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.452Z","timestamp":1785127668452,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/static/chunks/commons-45d986bc686a719f.js HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: application/javascript; charset=UTF-8\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\ncache-control: public, max-age=31536000, immutable\r\naccept-ranges: bytes\r\nlast-modified: Sun, 26 Jul 2026 06:35:30 GMT\r\netag: W/\"9e4c0-19f9d22c750\"\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nage: 66709\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=UBWUdC7Muphk6q3Plh7lqU8SWif8dCSlmcoxo5133WLtyiPCyofQRpiRirjeKpFEVcvFb8C5WwrNbwHibcjKTOmQDOfCQqW5zUOvVQOlpxEWD%2BC2VEFiAQ%2Brhg%3D%3D\"}]}\r\ncf-ray: a2190217db7d8be6-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"]}],"data":{"size":648384,"size_decoded":139780,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (65536), with no line terminators","md5":"edf2b9b2382e38c98817eac6c347956b","sha1":"7d927d88f91a0758db80cf4d4ef81dd6efc17e07","sha256":"5f4503945e4f521b13a12e8e720b87b3147f5edf08302bdab201e727fddaf297","sha512":"0cd77df95376e93558e85407ee9c9de27d39289a82f9958df3fe108a420b0f33705bee89800432e62ecffa13ebd8e2df9bbb87394eea5788ca0d497016dbf4da","ssdeep":"6144:ZYSQ+M8fq9vwq27SkiYyryfkjlXFICTr5KBls/Mvq/0cTKc2b8umVZ:ZtquqtDrAI0RbI","tlshash":"ced42b15fbc1b8638357a5ac84fb8204f23fa6c1242a4459f96ee5c217e055893bff6c","first_seen":"2026-07-27T03:56:11.699982Z","last_seen":"2026-07-27T04:49:42.862604Z","times_seen":3,"resource_available":true,"data":"dHJ5eyFmdW5jdGlvbigpe3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sbj0obmV3IGUuRXJyb3IpLnN0YWNrO24mJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbbl09ImVlMmMyNDJkLTFkNGEtNDEyMi05MWMzLTE3ODcyMjlhOTU3ZSIsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9InNlbnRyeS1kYmlkLWVlMmMyNDJkLTFkNGEtNDEyMi05MWMzLTE3ODcyMjlhOTU3ZSIpfSgpfWNhdGNoKGUpe30oc2VsZi53ZWJwYWNrQ2h1bmtfTl9FPXNlbGYud2VicGFja0NodW5rX05fRXx8W10pLnB1c2goW1s5MzUxXSx7ODY1MDA6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1Q2OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnZlcnRIZXhUb0RlY2ltYWx9LFZEOmZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlSW50RnJvbUhleH0sV0U6ZnVuY3Rpb24oKXtyZXR1cm4gaHN2VG9SZ2J9LHB5OmZ1bmN0aW9uKCl7cmV0dXJuIHJnYlRvSHN2fSxyVzpmdW5jdGlvbigpe3JldHVybiByZ2JUb1JnYn0sdmU6ZnVuY3Rpb24oKXtyZXR1cm4gaHNsVG9SZ2J9LHZxOmZ1bmN0aW9uKCl7cmV0dXJuIHJnYlRvSGV4fX0pO3ZhciBfdXRpbF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oOTAyNzkpO2Z1bmN0aW9uIHJnYlRvUmdiKHIsZyxiKXtyZXR1cm57cjoyNTUqKDAsX3V0aWxfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5zaCkociwyNTUpLGc6MjU1KigwLF91dGlsX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uc2gpKGcsMjU1KSxiOjI1NSooMCxfdXRpbF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnNoKShiLDI1NSl9fWZ1bmN0aW9uIGh1ZTJyZ2IocCxxLHQpe3JldHVybih0PDAmJih0Kz0xKSx0PjEmJih0LT0xKSx0PDEvNik/cCsocS1wKSooNip0KTp0PC41P3E6dDwyLzM/cCsocS1wKSooMi8zLXQpKjY6cH1mdW5jdGlvbiBoc2xUb1JnYihoLHMsbCl7aWYoaD0oMCxfdXRpbF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnNoKShoLDM2MCkscz0oMCxfdXRpbF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnNoKShzLDEwMCksbD0oMCxfdXRpbF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnNoKShsLDEwMCksMD09PXMpZz1sLGI9bCxyPWw7ZWxzZXt2YXIgcixnLGIscT1sPC41P2wqKDErcyk6bCtzLWwqcyxwPTIqbC1xO3I9aHVlMnJnYihwLHEsaCsxLzMpLGc9aHVlMnJnYihwLHEsaCksYj1odWUycmdiKHAscSxoLTEvMyl9cmV0dXJue3I6MjU1KnIsZzoyNTUqZyxiOjI1NSpifX1mdW5jdGlvbiByZ2JUb0hzdihyLGcsYil7dmFyIG1heD1NYXRoLm1heChyPSgwLF91dGlsX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uc2gpKHIsMjU1KSxnPSgwLF91dGlsX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uc2gpKGcsMjU1KSxiPSgwLF91dGlsX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uc2gpKGIsMjU1KSksbWluPU1hdGgubWluKHIsZyxiKSxoPTAsZD1tYXgtbWluO2lmKG1heD09PW1pbiloPTA7ZWxzZXtzd2l0Y2gobWF4KXtjYXNlIHI6aD0oZy1iKS9kKyhnPGI/NjowKTticmVhaztjYXNlIGc6aD0oYi1yKS9kKzI7YnJlYWs7Y2FzZSBiOmg9KHItZykvZCs0fWgvPTZ9cmV0dXJue2g6aCxzOjA9PT1tYXg/MDpkL21heCx2Om1heH19ZnVuY3Rpb24gaHN2VG9SZ2IoaCxzLHYpe2g9NiooMCxfdXRpbF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnNoKShoLDM2MCkscz0oMCxfdXRpbF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnNoKShzLDEwMCksdj0oMCxfdXRpbF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnNoKSh2LDEwMCk7dmFyIGk9TWF0aC5mbG9vcihoKSxmPWgtaSxwPXYqKDEtcykscT12KigxLWYqcyksdD12KigxLSgxLWYpKnMpLG1vZD1pJTY7cmV0dXJue3I6MjU1Klt2LHEscCxwLHQsdl1bbW9kXSxnOjI1NSpbdCx2LHYscSxwLHBdW21vZF0sYjoyNTUqW3AscCx0LHYsdixxXVttb2RdfX1mdW5jdGlvbiByZ2JUb0hleChyLGcsYixhbGxvdzNDaGFyKXt2YXIgaGV4PVsoMCxfdXRpbF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkZaKShNYXRoLnJvdW5kKHIpLnRvU3RyaW5nKDE2KSksKDAsX3V0aWxfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5GWikoTWF0aC5yb3VuZChnKS50b1N0cmluZygxNikpLCgwLF91dGlsX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRlopKE1hdGgucm91bmQoYikudG9TdHJpbmcoMTYpKV07cmV0dXJuIGFsbG93M0NoYXImJmhleFswXS5zdGFydHNXaXRoKGhleFswXS5jaGFyQXQoMSkpJiZoZXhbMV0uc3RhcnRzV2l0aChoZXhbMV0uY2hhckF0KDEpKSYmaGV4WzJdLnN0YXJ0c1dpdGgoaGV4WzJdLmNoYXJBdCgxKSk/aGV4WzBdLmNoYXJBdCgwKStoZXhbMV0uY2hhckF0KDApK2hleFsyXS5jaGFyQXQoMCk6aGV4LmpvaW4oIiIpfWZ1bmN0aW9uIGNvbnZlcnRIZXhUb0RlY2ltYWwoaCl7cmV0dXJuIHBhcnNlSW50RnJvbUhleChoKS8yNTV9ZnVuY3Rpb24gcGFyc2VJbnRGcm9tSGV4KHZhbCl7cmV0dXJuIHBhcnNlSW50KHZhbCwxNil9fSw2NzQzMDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7dUE6ZnVuY3Rpb24oKXtyZXR1cm4gaW5wdXRUb1JHQn19KTt2YXIgY29udmVyc2lvbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDg2NTAwKSxuYW1lcz17YWxpY2VibHVlOiIjZjBmOGZmIixhbnRpcXVld2hpdGU6IiNmYWViZDciLGFxdWE6IiMwMGZmZmYiLGFxdWFtYXJpbmU6IiM3ZmZmZDQiLGF6dXJlOiIjZjBmZmZmIixiZWlnZToiI2Y1ZjVkYyIsYmlzcXVlOiIjZmZlNGM0IixibGFjazoiIzAwMDAwMCIsYmxhbmNoZWRhbG1vbmQ6IiNmZmViY2QiLGJsdWU6IiMwMDAwZmYiLGJsdWV2aW9sZXQ6IiM4YTJiZTIiLGJyb3duOiIjYTUyYTJhIixidXJseXdvb2Q6IiNkZWI4ODciLGNhZGV0Ymx1ZToiIzVmOWVhMCIsY2hhcnRyZXVzZToiIzdmZmYwMCIsY2hvY29sYXRlOiIjZDI2OTFlIixjb3JhbDoiI2ZmN2Y1MCIsY29ybmZsb3dlcmJsdWU6IiM2NDk1ZWQiLGNvcm5zaWxrOiIjZmZmOGRjIixjcmltc29uOiIjZGMxNDNjIixjeWFuOiIjMDBmZmZmIixkYXJrYmx1ZToiIzAwMDA4YiIsZGFya2N5YW46IiMwMDhiOGIiLGRhcmtnb2xkZW5yb2Q6IiNiODg2MGIiLGRhcmtncmF5OiIjYTlhOWE5IixkYXJrZ3JlZW46IiMwMDY0MDAiLGRhcmtncmV5OiIjYTlhOWE5IixkYXJra2hha2k6IiNiZGI3NmIiLGRhcmttYWdlbnRhOiIjOGIwMDhiIixkYXJrb2xpdmVncmVlbjoiIzU1NmIyZiIsZGFya29yYW5nZToiI2ZmOGMwMCIsZGFya29yY2hpZDoiIzk5MzJjYyIsZGFya3JlZDoiIzhiMDAwMCIsZGFya3NhbG1vbjoiI2U5OTY3YSIsZGFya3NlYWdyZWVuOiIjOGZiYzhmIixkYXJrc2xhdGVibHVlOiIjNDgzZDhiIixkYXJrc2xhdGVncmF5OiIjMmY0ZjRmIixkYXJrc2xhdGVncmV5OiIjMmY0ZjRmIixkYXJrdHVycXVvaXNlOiIjMDBjZWQxIixkYXJrdmlvbGV0OiIjOTQwMGQzIixkZWVwcGluazoiI2ZmMTQ5MyIsZGVlcHNreWJsdWU6IiMwMGJmZmYiLGRpbWdyYXk6IiM2OTY5NjkiLGRpbWdyZXk6IiM2OTY5NjkiLGRvZGdlcmJsdWU6IiMxZTkwZmYiLGZpcmVicmljazoiI2IyMjIyMiIsZmxvcmFsd2hpdGU6IiNmZmZhZjAiLGZvcmVzdGdyZWVuOiIjMjI4YjIyIixmdWNoc2lhOiIjZmYwMGZmIixnYWluc2Jvcm86IiNkY2RjZGMiLGdob3N0d2hpdGU6IiNmOGY4ZmYiLGdvbGRlbnJvZDoiI2RhYTUyMCIsZ29sZDoiI2ZmZDcwMCIsZ3JheToiIzgwODA4MCIsZ3JlZW46IiMwMDgwMDAiLGdyZWVueWVsbG93OiIjYWRmZjJmIixncmV5OiIjODA4MDgwIixob25leWRldzoiI2YwZmZmMCIsaG90cGluazoiI2ZmNjliNCIsaW5kaWFucmVkOiIjY2Q1YzVjIixpbmRpZ286IiM0YjAwODIiLGl2b3J5OiIjZmZmZmYwIixraGFraToiI2YwZTY4YyIsbGF2ZW5kZXJibHVzaDoiI2ZmZjBmNSIsbGF2ZW5kZXI6IiNlNmU2ZmEiLGxhd25ncmVlbjoiIzdjZmMwMCIsbGVtb25jaGlmZm9uOiIjZmZmYWNkIixsaWdodGJsdWU6IiNhZGQ4ZTYiLGxpZ2h0Y29yYWw6IiNmMDgwODAiLGxpZ2h0Y3lhbjoiI2UwZmZmZiIsbGlnaHRnb2xkZW5yb2R5ZWxsb3c6IiNmYWZhZDIiLGxpZ2h0Z3JheToiI2QzZDNkMyIsbGlnaHRncmVlbjoiIzkwZWU5MCIsbGlnaHRncmV5OiIjZDNkM2QzIixsaWdodHBpbms6IiNmZmI2YzEiLGxpZ2h0c2FsbW9uOiIjZmZhMDdhIixsaWdodHNlYWdyZWVuOiIjMjBiMmFhIixsaWdodHNreWJsdWU6IiM4N2NlZmEiLGxpZ2h0c2xhdGVncmF5OiIjNzc4ODk5IixsaWdodHNsYXRlZ3JleToiIzc3ODg5OSIsbGlnaHRzdGVlbGJsdWU6IiNiMGM0ZGUiLGxpZ2h0eWVsbG93OiIjZmZmZmUwIixsaW1lOiIjMDBmZjAwIixsaW1lZ3JlZW46IiMzMmNkMzIiLGxpbmVuOiIjZmFmMGU2IixtYWdlbnRhOiIjZmYwMGZmIixtYXJvb246IiM4MDAwMDAiLG1lZGl1bWFxdWFtYXJpbmU6IiM2NmNkYWEiLG1lZGl1bWJsdWU6IiMwMDAwY2QiLG1lZGl1bW9yY2hpZDoiI2JhNTVkMyIsbWVkaXVtcHVycGxlOiIjOTM3MGRiIixtZWRpdW1zZWFncmVlbjoiIzNjYjM3MSIsbWVkaXVtc2xhdGVibHVlOiIjN2I2OGVlIixtZWRpdW1zcHJpbmdncmVlbjoiIzAwZmE5YSIsbWVkaXVtdHVycXVvaXNlOiIjNDhkMWNjIixtZWRpdW12aW9sZXRyZWQ6IiNjNzE1ODUiLG1pZG5pZ2h0Ymx1ZToiIzE5MTk3MCIsbWludGNyZWFtOiIjZjVmZmZhIixtaXN0eXJvc2U6IiNmZmU0ZTEiLG1vY2Nhc2luOiIjZmZlNGI1IixuYXZham93aGl0ZToiI2ZmZGVhZCIsbmF2eToiIzAwMDA4MCIsb2xkbGFjZToiI2ZkZjVlNiIsb2xpdmU6IiM4MDgwMDAiLG9saXZlZHJhYjoiIzZiOGUyMyIsb3JhbmdlOiIjZmZhNTAwIixvcmFuZ2VyZWQ6IiNmZjQ1MDAiLG9yY2hpZDoiI2RhNzBkNiIscGFsZWdvbGRlbnJvZDoiI2VlZThhYSIscGFsZWdyZWVuOiIjOThmYjk4IixwYWxldHVycXVvaXNlOiIjYWZlZWVlIixwYWxldmlvbGV0cmVkOiIjZGI3MDkzIixwYXBheWF3aGlwOiIjZmZlZmQ1IixwZWFjaHB1ZmY6IiNmZmRhYjkiLHBlcnU6IiNjZDg1M2YiLHBpbms6IiNmZmMwY2IiLHBsdW06IiNkZGEwZGQiLHBvd2RlcmJsdWU6IiNiMGUwZTYiLHB1cnBsZToiIzgwMDA4MCIscmViZWNjYXB1cnBsZToiIzY2MzM5OSIscmVkOiIjZmYwMDAwIixyb3N5YnJvd246IiNiYzhmOGYiLHJveWFsYmx1ZToiIzQxNjllMSIsc2FkZGxlYnJvd246IiM4YjQ1MTMiLHNhbG1vbjoiI2ZhODA3MiIsc2FuZHlicm93bjoiI2Y0YTQ2MCIsc2VhZ3JlZW46IiMyZThiNTciLHNlYXNoZWxsOiIjZmZmNWVlIixzaWVubmE6IiNhMDUyMmQiLHNpbHZlcjoiI2MwYzBjMCIsc2t5Ymx1ZToiIzg3Y2VlYiIsc2xhdGVibHVlOiIjNmE1YWNkIixzbGF0ZWdyYXk6IiM3MDgwOTAiLHNsYXRlZ3JleToiIzcwODA5MCIsc25vdzoiI2ZmZmFmYSIsc3ByaW5nZ3JlZW46IiMwMGZmN2YiLHN0ZWVsYmx1ZToiIzQ2ODJiNCIsdGFuOiIjZDJiNDhjIix0ZWFsOiIjMDA4MDgwIix0aGlzdGxlOiIjZDhiZmQ4Iix0b21hdG86IiNmZjYzNDciLHR1cnF1b2lzZToiIzQwZTBkMCIsdmlvbGV0OiIjZWU4MmVlIix3aGVhdDoiI2Y1ZGViMyIsd2hpdGU6IiNmZmZmZmYiLHdoaXRlc21va2U6IiNmNWY1ZjUiLHllbGxvdzoiI2ZmZmYwMCIseWVsbG93Z3JlZW46IiM5YWNkMzIifSx1dGlsPV9fd2VicGFja19yZXF1aXJlX18oOTAyNzkpO2Z1bmN0aW9uIGlucHV0VG9SR0IoY29sb3Ipe3ZhciByZ2I9e3I6MCxnOjAsYjowfSxhPTEscz1udWxsLHY9bnVsbCxsPW51bGwsb2s9ITEsZm9ybWF0PSExO3JldHVybiJzdHJpbmciPT10eXBlb2YgY29sb3ImJihjb2xvcj1mdW5jdGlvbihjb2xvcil7aWYoMD09PShjb2xvcj1jb2xvci50cmltKCkudG9Mb3dlckNhc2UoKSkubGVuZ3RoKXJldHVybiExO3ZhciBuYW1lZD0hMTtpZihuYW1lc1tjb2xvcl0pY29sb3I9bmFtZXNbY29sb3JdLG5hbWVkPSEwO2Vsc2UgaWYoInRyYW5zcGFyZW50Ij09PWNvbG9yKXJldHVybntyOjAsZzowLGI6MCxhOjAsZm9ybWF0OiJuYW1lIn07dmFyIG1hdGNoPW1hdGNoZXJzLnJnYi5leGVjKGNvbG9yKTtyZXR1cm4gbWF0Y2g/e3I6bWF0Y2hbMV0sZzptYXRjaFsyXSxiOm1hdGNoWzNdfToobWF0Y2g9bWF0Y2hlcnMucmdiYS5leGVjKGNvbG9yKSk/e3I6bWF0Y2hbMV0sZzptYXRjaFsyXSxiOm1hdGNoWzNdLGE6bWF0Y2hbNF19OihtYXRjaD1tYXRjaGVycy5oc2wuZXhlYyhjb2xvcikpP3toOm1hdGNoWzFdLHM6bWF0Y2hbMl0sbDptYXRjaFszXX06KG1hdGNoPW1hdGNoZXJzLmhzbGEuZXhlYyhjb2xvcikpP3toOm1hdGNoWzFdLHM6bWF0Y2hbMl0sbDptYXRjaFszXSxhOm1hdGNoWzRdfToobWF0Y2g9bWF0Y2hlcnMuaHN2LmV4ZWMoY29sb3IpKT97aDptYXRjaFsxXSxzOm1hdGNoWzJdLHY6bWF0Y2hbM119OihtYXRjaD1tYXRjaGVycy5oc3ZhLmV4ZWMoY29sb3IpKT97aDptYXRjaFsxXSxzOm1hdGNoWzJdLHY6bWF0Y2hbM10sYTptYXRjaFs0XX06KG1hdGNoPW1hdGNoZXJzLmhleDguZXhlYyhjb2xvcikpP3tyOigwLGNvbnZlcnNpb24uVkQpKG1hdGNoWzFdKSxnOigwLGNvbnZlcnNpb24uVkQpKG1hdGNoWzJdKSxiOigwLGNvbnZlcnNpb24uVkQpKG1hdGNoWzNdKSxhOigwLGNvbnZlcnNpb24uVDYpKG1hdGNoWzRdKSxmb3JtYXQ6bmFtZWQ/Im5hbWUiOiJoZXg4In06KG1hdGNoPW1hdGNoZXJzLmhleDYuZXhlYyhjb2xvcikpP3tyOigwLGNvbnZlcnNpb24uVkQpKG1hdGNoWzFdKSxnOigwLGNvbnZlcnNpb24uVkQpKG1hdGNoWzJdKSxiOigwLGNvbnZlcnNpb24uVkQpKG1hdGNoWzNdKSxmb3JtYXQ6bmFtZWQ/Im5hbWUiOiJoZXgifToobWF0Y2g9bWF0Y2hlcnMuaGV4NC5leGVjKGNvbG9yKSk/e3I6KDAsY29udmVyc2lvbi5WRCkobWF0Y2hbMV0rbWF0Y2hbMV0pLGc6KDAsY29udmVyc2lvbi5WRCkobWF0Y2hbMl0rbWF0Y2hbMl0pLGI6KDAsY29udmVyc2lvbi5WRCkobWF0Y2hbM10rbWF0Y2hbM10pLGE6KDAsY29udmVyc2lvbi5UNikobWF0Y2hbNF0rbWF0Y2hbNF0pLGZvcm1hdDpuYW1lZD8ibmFtZSI6ImhleDgifTohIShtYXRjaD1tYXRjaGVycy5oZXgzLmV4ZWMoY29sb3IpKSYme3I6KDAsY29udmVyc2lvbi5WRCkobWF0Y2hbMV0rbWF0Y2hbMV0pLGc6KDAsY29udmVyc2lvbi5WRCkobWF0Y2hbMl0rbWF0Y2hbMl0pLGI6KDAsY29udmVyc2lvbi5WRCkobWF0Y2hbM10rbWF0Y2hbM10pLGZvcm1hdDpuYW1lZD8ibmFtZSI6ImhleCJ9fShjb2xvcikpLCJvYmplY3QiPT10eXBlb2YgY29sb3ImJihpc1ZhbGlkQ1NTVW5pdChjb2xvci5yKSYmaXNWYWxpZENTU1VuaXQoY29sb3IuZykmJmlzVmFsaWRDU1NVbml0KGNvbG9yLmIpPyhyZ2I9KDAsY29udmVyc2lvbi5yVykoY29sb3Iucixjb2xvci5nLGNvbG9yLmIpLG9rPSEwLGZvcm1hdD0iJSI9PT1TdHJpbmcoY29sb3Iucikuc3Vic3RyKC0xKT8icHJnYiI6InJnYiIpOmlzVmFsaWRDU1NVbml0KGNvbG9yLmgpJiZpc1ZhbGlkQ1NTVW5pdChjb2xvci5zKSYmaXNWYWxpZENTU1VuaXQoY29sb3Iudik/KHM9KDAsdXRpbC5KWCkoY29sb3Iucyksdj0oMCx1dGlsLkpYKShjb2xvci52KSxyZ2I9KDAsY29udmVyc2lvbi5XRSkoY29sb3IuaCxzLHYpLG9rPSEwLGZvcm1hdD0iaHN2Iik6aXNWYWxpZENTU1VuaXQoY29sb3IuaCkmJmlzVmFsaWRDU1NVbml0KGNvbG9yLnMpJiZpc1ZhbGlkQ1NTVW5pdChjb2xvci5sKSYmKHM9KDAsdXRpbC5KWCkoY29sb3IucyksbD0oMCx1dGlsLkpYKShjb2xvci5sKSxyZ2I9KDAsY29udmVyc2lvbi52ZSkoY29sb3IuaCxzLGwpLG9rPSEwLGZvcm1hdD0iaHNsIiksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbG9yLCJhIikmJihhPWNvbG9yLmEpKSxhPSgwLHV0aWwuWXEpKGEpLHtvazpvayxmb3JtYXQ6Y29sb3IuZm9ybWF0fHxmb3JtYXQscjpNYXRoLm1pbigyNTUsTWF0aC5tYXgocmdiLnIsMCkpLGc6TWF0aC5taW4oMjU1LE1hdGgubWF4KHJnYi5nLDApKSxiOk1hdGgubWluKDI1NSxNYXRoLm1heChyZ2IuYiwwKSksYTphfX12YXIgQ1NTX1VOSVQ9Iig/OiIuY29uY2F0KCJbLVxcK10/XFxkKlxcLlxcZCslPyIsIil8KD86IikuY29uY2F0KCJbLVxcK10/XFxkKyU/IiwiKSIpLFBFUk1JU1NJVkVfTUFUQ0gzPSJbXFxzfFxcKF0rKCIuY29uY2F0KENTU19VTklULCIpWyx8XFxzXSsoIikuY29uY2F0KENTU19VTklULCIpWyx8XFxzXSsoIikuY29uY2F0KENTU19VTklULCIpXFxzKlxcKT8iKSxQRVJNSVNTSVZFX01BVENIND0iW1xcc3xcXChdKygiLmNvbmNhdChDU1NfVU5JVCwiKVssfFxcc10rKCIpLmNvbmNhdChDU1NfVU5JVCwiKVssfFxcc10rKCIpLmNvbmNhdChDU1NfVU5JVCwiKVssfFxcc10rKCIpLmNvbmNhdChDU1NfVU5JVCwiKVxccypcXCk/IiksbWF0Y2hlcnM9e0NTU19VTklUOlJlZ0V4cChDU1NfVU5JVCkscmdiOlJlZ0V4cCgicmdiIitQRVJNSVNTSVZFX01BVENIMykscmdiYTpSZWdFeHAoInJnYmEiK1BFUk1JU1NJVkVfTUFUQ0g0KSxoc2w6UmVnRXhwKCJoc2wiK1BFUk1JU1NJVkVfTUFUQ0gzKSxoc2xhOlJlZ0V4cCgiaHNsYSIrUEVSTUlTU0lWRV9NQVRDSDQpLGhzdjpSZWdFeHAoImhzdiIrUEVSTUlTU0lWRV9NQVRDSDMpLGhzdmE6UmVnRXhwKCJoc3ZhIitQRVJNSVNTSVZFX01BVENINCksaGV4MzovXiM/KFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pJC8saGV4NjovXiM/KFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pJC8saGV4NDovXiM/KFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KSQvLGhleDg6L14jPyhbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkkL307ZnVuY3Rpb24gaXNWYWxpZENTU1VuaXQoY29sb3Ipe3JldHVybiBCb29sZWFuKG1hdGNoZXJzLkNTU19VTklULmV4ZWMoU3RyaW5nKGNvbG9yKSkpfX0sOTAyNzk6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYm91bmQwMShuLG1heCl7InN0cmluZyI9PXR5cGVvZihuMT1uKSYmLTEhPT1uMS5pbmRleE9mKCIuIikmJjE9PT1wYXJzZUZsb2F0KG4xKSYmKG49IjEwMCUiKTt2YXIgbjEsbjIsaXNQZXJjZW50PSJzdHJpbmciPT10eXBlb2YobjI9bikmJi0xIT09bjIuaW5kZXhPZigiJSIpO3JldHVybihuPTM2MD09PW1heD9uOk1hdGgubWluKG1heCxNYXRoLm1heCgwLHBhcnNlRmxvYXQobikpKSxpc1BlcmNlbnQmJihuPXBhcnNlSW50KFN0cmluZyhuKm1heCksMTApLzEwMCksMWUtNj5NYXRoLmFicyhuLW1heCkpPzE6bj0zNjA9PT1tYXg/KG48MD9uJW1heCttYXg6biVtYXgpL3BhcnNlRmxvYXQoU3RyaW5nKG1heCkpOm4lbWF4L3BhcnNlRmxvYXQoU3RyaW5nKG1heCkpfWZ1bmN0aW9uIGJvdW5kQWxwaGEoYSl7cmV0dXJuKGlzTmFOKGE9cGFyc2VGbG9hdChhKSl8fGE8MHx8YT4xKSYmKGE9MSksYX1mdW5jdGlvbiBjb252ZXJ0VG9QZXJjZW50YWdlKG4pe3JldHVybiBuPD0xPyIiLmNvbmNhdCgxMDAqTnVtYmVyKG4pLCIlIik6bn1mdW5jdGlvbiBwYWQyKGMpe3JldHVybiAxPT09Yy5sZW5ndGg/IjAiK2M6U3RyaW5nKGMpfV9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtGWjpmdW5jdGlvbigpe3JldHVybiBwYWQyfSxKWDpmdW5jdGlvbigpe3JldHVybiBjb252ZXJ0VG9QZXJjZW50YWdlfSxZcTpmdW5jdGlvbigpe3JldHVybiBib3VuZEFscGhhfSxzaDpmdW5jdGlvbigpe3JldHVybiBib3VuZDAxfX0pfSwzMDI2NjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfdHlwZW9mKG8pe3JldHVybihfdHlwZW9mPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKG8pe3JldHVybiB0eXBlb2Ygb306ZnVuY3Rpb24obyl7cmV0dXJuIG8mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJm8uY29uc3RydWN0b3I9PT1TeW1ib2wmJm8hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBvfSkobyl9ZnVuY3Rpb24gdG9Qcm9wZXJ0eUtleSh0KXt2YXIgaT1mdW5jdGlvbih0LHIpe2lmKCJvYmplY3QiIT1fdHlwZW9mKHQpfHwhdClyZXR1cm4gdDt2YXIgZT10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09ZSl7dmFyIGk9ZS5jYWxsKHQscnx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9X3R5cGVvZihpKSlyZXR1cm4gaTt0aHJvdyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09cj9TdHJpbmc6TnVtYmVyKSh0KX0odCwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PV90eXBlb2YoaSk/aTppKyIifWZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShlLHIsdCl7cmV0dXJuKHI9dG9Qcm9wZXJ0eUtleShyKSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIse3ZhbHVlOnQsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3JdPXQsZX1mdW5jdGlvbiBvd25LZXlzKGUscil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIG89T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtyJiYobz1vLmZpbHRlcihmdW5jdGlvbihyKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHIpLmVudW1lcmFibGV9KSksdC5wdXNoLmFwcGx5KHQsbyl9cmV0dXJuIHR9ZnVuY3Rpb24gX29iamVjdFNwcmVhZDIoZSl7Zm9yKHZhciByPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW3JdP2FyZ3VtZW50c1tyXTp7fTtyJTI/b3duS2V5cyhPYmplY3QodCksITApLmZvckVhY2goZnVuY3Rpb24ocil7X2RlZmluZVByb3BlcnR5KGUscix0W3JdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOm93bktleXMoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpKX0pfXJldHVybiBlfWZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KHIsYSl7KG51bGw9PWF8fGE+ci5sZW5ndGgpJiYoYT1yLmxlbmd0aCk7Zm9yKHZhciBlPTAsbj1BcnJheShhKTtlPGE7ZSsrKW5bZV09cltlXTtyZXR1cm4gbn1mdW5jdGlvbiBfdG9Db25zdW1hYmxlQXJyYXkocil7cmV0dXJuIGZ1bmN0aW9uKHIpe2lmKEFycmF5LmlzQXJyYXkocikpcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KHIpfShyKXx8ZnVuY3Rpb24ocil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPXJbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9clsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKHIpfShyKXx8ZnVuY3Rpb24ocixhKXtpZihyKXtpZigic3RyaW5nIj09dHlwZW9mIHIpcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KHIsYSk7dmFyIHQ9KHt9KS50b1N0cmluZy5jYWxsKHIpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09dCYmci5jb25zdHJ1Y3RvciYmKHQ9ci5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PXR8fCJTZXQiPT09dD9BcnJheS5mcm9tKHIpOiJBcmd1bWVudHMiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCk/X2FycmF5TGlrZVRvQXJyYXkocixhKTp2b2lkIDB9fShyKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhhLG4pe2lmKCEoYSBpbnN0YW5jZW9mIG4pKXRocm93IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXMoZSxyKXtmb3IodmFyIHQ9MDt0PHIubGVuZ3RoO3QrKyl7dmFyIG89clt0XTtvLmVudW1lcmFibGU9by5lbnVtZXJhYmxlfHwhMSxvLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gbyYmKG8ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHRvUHJvcGVydHlLZXkoby5rZXkpLG8pfX1mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoZSxyLHQpe3JldHVybiByJiZfZGVmaW5lUHJvcGVydGllcyhlLnByb3RvdHlwZSxyKSx0JiZfZGVmaW5lUHJvcGVydGllcyhlLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGV9ZnVuY3Rpb24gbmV3TWVzc2FnZXMoKXtyZXR1cm57ZGVmYXVsdDoiVmFsaWRhdGlvbiBlcnJvciBvbiBmaWVsZCAlcyIscmVxdWlyZWQ6IiVzIGlzIHJlcXVpcmVkIixlbnVtOiIlcyBtdXN0IGJlIG9uZSBvZiAlcyIsd2hpdGVzcGFjZToiJXMgY2Fubm90IGJlIGVtcHR5IixkYXRlOntmb3JtYXQ6IiVzIGRhdGUgJXMgaXMgaW52YWxpZCBmb3IgZm9ybWF0ICVzIixwYXJzZToiJXMgZGF0ZSBjb3VsZCBub3QgYmUgcGFyc2VkLCAlcyBpcyBpbnZhbGlkICIsaW52YWxpZDoiJXMgZGF0ZSAlcyBpcyBpbnZhbGlkIn0sdHlwZXM6e3N0cmluZzoiJXMgaXMgbm90IGEgJXMiLG1ldGhvZDoiJXMgaXMgbm90IGEgJXMgKGZ1bmN0aW9uKSIsYXJyYXk6IiVzIGlzIG5vdCBhbiAlcyIsb2JqZWN0OiIlcyBpcyBub3QgYW4gJXMiLG51bWJlcjoiJXMgaXMgbm90IGEgJXMiLGRhdGU6IiVzIGlzIG5vdCBhICVzIixib29sZWFuOiIlcyBpcyBub3QgYSAlcyIsaW50ZWdlcjoiJXMgaXMgbm90IGFuICVzIixmbG9hdDoiJXMgaXMgbm90IGEgJXMiLHJlZ2V4cDoiJXMgaXMgbm90IGEgdmFsaWQgJXMiLGVtYWlsOiIlcyBpcyBub3QgYSB2YWxpZCAlcyIsdXJsOiIlcyBpcyBub3QgYSB2YWxpZCAlcyIsaGV4OiIlcyBpcyBub3QgYSB2YWxpZCAlcyJ9LHN0cmluZzp7bGVuOiIlcyBtdXN0IGJlIGV4YWN0bHkgJXMgY2hhcmFjdGVycyIsbWluOiIlcyBtdXN0IGJlIGF0IGxlYXN0ICVzIGNoYXJhY3RlcnMiLG1heDoiJXMgY2Fubm90IGJlIGxvbmdlciB0aGFuICVzIGNoYXJhY3RlcnMiLHJhbmdlOiIlcyBtdXN0IGJlIGJldHdlZW4gJXMgYW5kICVzIGNoYXJhY3RlcnMifSxudW1iZXI6e2xlbjoiJXMgbXVzdCBlcXVhbCAlcyIsbWluOiIlcyBjYW5ub3QgYmUgbGVzcyB0aGFuICVzIixtYXg6IiVzIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gJXMiLHJhbmdlOiIlcyBtdXN0IGJlIGJldHdlZW4gJXMgYW5kICVzIn0sYXJyYXk6e2xlbjoiJXMgbXVzdCBiZSBleGFjdGx5ICVzIGluIGxlbmd0aCIsbWluOiIlcyBjYW5ub3QgYmUgbGVzcyB0aGFuICVzIGluIGxlbmd0aCIsbWF4OiIlcyBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuICVzIGluIGxlbmd0aCIscmFuZ2U6IiVzIG11c3QgYmUgYmV0d2VlbiAlcyBhbmQgJXMgaW4gbGVuZ3RoIn0scGF0dGVybjp7bWlzbWF0Y2g6IiVzIHZhbHVlICVzIGRvZXMgbm90IG1hdGNoIHBhdHRlcm4gJXMifSxjbG9uZTpmdW5jdGlvbigpe3ZhciBjbG9uZWQ9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzKSk7cmV0dXJuIGNsb25lZC5jbG9uZT10aGlzLmNsb25lLGNsb25lZH19fV9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGVzfX0pO3ZhciB1cmxSZWcsbWVzc2FnZXNfbWVzc2FnZXM9bmV3TWVzc2FnZXMoKTtmdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKGUpe2lmKHZvaWQgMD09PWUpdGhyb3cgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBlfWZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZih0LGUpe3JldHVybihfc2V0UHJvdG90eXBlT2Y9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fX3Byb3RvX189ZSx0fSkodCxlKX1mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YodCl7cmV0dXJuKF9nZXRQcm90b3R5cGVPZj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0KXtyZXR1cm4gdC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KX0pKHQpfWZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKXt0cnl7dmFyIHQ9IUJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpfWNhdGNoKHQxKXt9cmV0dXJuKF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3Q9ZnVuY3Rpb24oKXtyZXR1cm4hIXR9KSgpfWZ1bmN0aW9uIF93cmFwTmF0aXZlU3VwZXIodCl7dmFyIHI9ImZ1bmN0aW9uIj09dHlwZW9mIE1hcD9uZXcgTWFwOnZvaWQgMDtyZXR1cm4oX3dyYXBOYXRpdmVTdXBlcj1mdW5jdGlvbih0KXtpZihudWxsPT09dHx8IWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gLTEhPT1GdW5jdGlvbi50b1N0cmluZy5jYWxsKHQpLmluZGV4T2YoIltuYXRpdmUgY29kZV0iKX1jYXRjaChuKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdH19KHQpKXJldHVybiB0O2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtpZih2b2lkIDAhPT1yKXtpZihyLmhhcyh0KSlyZXR1cm4gci5nZXQodCk7ci5zZXQodCxXcmFwcGVyKX1mdW5jdGlvbiBXcmFwcGVyKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyKXtpZihfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkpcmV0dXJuIFJlZmxlY3QuY29uc3RydWN0LmFwcGx5KG51bGwsYXJndW1lbnRzKTt2YXIgbz1bbnVsbF07by5wdXNoLmFwcGx5KG8sZSk7dmFyIHA9bmV3KHQuYmluZC5hcHBseSh0LG8pKTtyZXR1cm4gciYmX3NldFByb3RvdHlwZU9mKHAsci5wcm90b3R5cGUpLHB9KHQsYXJndW1lbnRzLF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3Rvcil9cmV0dXJuIFdyYXBwZXIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpXcmFwcGVyLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLF9zZXRQcm90b3R5cGVPZihXcmFwcGVyLHQpfSkodCl9dmFyIHByb2Nlc3M9X193ZWJwYWNrX3JlcXVpcmVfXyg4MzQ1NCksZm9ybWF0UmVnRXhwPS8lW3NkaiVdL2c7ZnVuY3Rpb24gY29udmVydEZpZWxkc0Vycm9yKGVycm9ycyl7aWYoIWVycm9yc3x8IWVycm9ycy5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIGZpZWxkcz17fTtyZXR1cm4gZXJyb3JzLmZvckVhY2goZnVuY3Rpb24oZXJyb3Ipe3ZhciBmaWVsZD1lcnJvci5maWVsZDtmaWVsZHNbZmllbGRdPWZpZWxkc1tmaWVsZF18fFtdLGZpZWxkc1tmaWVsZF0ucHVzaChlcnJvcil9KSxmaWVsZHN9ZnVuY3Rpb24gZm9ybWF0KHRlbXBsYXRlKXtmb3IodmFyIF9sZW49YXJndW1lbnRzLmxlbmd0aCxhcmdzPUFycmF5KF9sZW4+MT9fbGVuLTE6MCksX2tleT0xO19rZXk8X2xlbjtfa2V5KyspYXJnc1tfa2V5LTFdPWFyZ3VtZW50c1tfa2V5XTt2YXIgaT0wLGxlbj1hcmdzLmxlbmd0aDtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdGVtcGxhdGU/dGVtcGxhdGUuYXBwbHkobnVsbCxhcmdzKToic3RyaW5nIj09dHlwZW9mIHRlbXBsYXRlP3RlbXBsYXRlLnJlcGxhY2UoZm9ybWF0UmVnRXhwLGZ1bmN0aW9uKHgpe2lmKCIlJSI9PT14KXJldHVybiIlIjtpZihpPj1sZW4pcmV0dXJuIHg7c3dpdGNoKHgpe2Nhc2UiJXMiOnJldHVybiBTdHJpbmcoYXJnc1tpKytdKTtjYXNlIiVkIjpyZXR1cm4gTnVtYmVyKGFyZ3NbaSsrXSk7Y2FzZSIlaiI6dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShhcmdzW2krK10pfWNhdGNoKF8pe3JldHVybiJbQ2lyY3VsYXJdIn1icmVhaztkZWZhdWx0OnJldHVybiB4fX0pOnRlbXBsYXRlfWZ1bmN0aW9uIGlzRW1wdHlWYWx1ZSh2YWx1ZSx0eXBlKXtyZXR1cm4hIShudWxsPT12YWx1ZXx8ImFycmF5Ij09PXR5cGUmJkFycmF5LmlzQXJyYXkodmFsdWUpJiYhdmFsdWUubGVuZ3RoKXx8KCJzdHJpbmciPT09dHlwZXx8InVybCI9PT10eXBlfHwiaGV4Ij09PXR5cGV8fCJlbWFpbCI9PT10eXBlfHwiZGF0ZSI9PT10eXBlfHwicGF0dGVybiI9PT10eXBlKSYmInN0cmluZyI9PXR5cGVvZiB2YWx1ZSYmIXZhbHVlfWZ1bmN0aW9uIGFzeW5jU2VyaWFsQXJyYXkoYXJyLGZ1bmMsY2FsbGJhY2spe3ZhciBpbmRleD0wLGFyckxlbmd0aD1hcnIubGVuZ3RoOyFmdW5jdGlvbiBuZXh0KGVycm9ycyl7aWYoZXJyb3JzJiZlcnJvcnMubGVuZ3RoKXtjYWxsYmFjayhlcnJvcnMpO3JldHVybn12YXIgb3JpZ2luYWw9aW5kZXg7aW5kZXgrPTEsb3JpZ2luYWw8YXJyTGVuZ3RoP2Z1bmMoYXJyW29yaWdpbmFsXSxuZXh0KTpjYWxsYmFjayhbXSl9KFtdKX12b2lkIDAhPT1wcm9jZXNzJiZwcm9jZXNzLmVudjt2YXIgQXN5bmNWYWxpZGF0aW9uRXJyb3I9ZnVuY3Rpb24oX0Vycm9yKXshZnVuY3Rpb24odCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlJiZfc2V0UHJvdG90eXBlT2YodCxlKX0oQXN5bmNWYWxpZGF0aW9uRXJyb3IsX0Vycm9yKTt2YXIgcixfc3VwZXI9KHI9X2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpLGZ1bmN0aW9uKCl7dmFyIGUsbz1fZ2V0UHJvdG90eXBlT2YoQXN5bmNWYWxpZGF0aW9uRXJyb3IpO2lmKHIpe3ZhciBzPV9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjtlPVJlZmxlY3QuY29uc3RydWN0KG8sYXJndW1lbnRzLHMpfWVsc2UgZT1vLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZnVuY3Rpb24odCxlKXtpZihlJiYoIm9iamVjdCI9PV90eXBlb2YoZSl8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSlyZXR1cm4gZTtpZih2b2lkIDAhPT1lKXRocm93IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZCh0KX0odGhpcyxlKX0pO2Z1bmN0aW9uIEFzeW5jVmFsaWRhdGlvbkVycm9yKGVycm9ycyxmaWVsZHMpe3ZhciBfdGhpcztyZXR1cm4gX2NsYXNzQ2FsbENoZWNrKHRoaXMsQXN5bmNWYWxpZGF0aW9uRXJyb3IpLF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzPV9zdXBlci5jYWxsKHRoaXMsIkFzeW5jIFZhbGlkYXRpb24gRXJyb3IiKSksImVycm9ycyIsdm9pZCAwKSxfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksImZpZWxkcyIsdm9pZCAwKSxfdGhpcy5lcnJvcnM9ZXJyb3JzLF90aGlzLmZpZWxkcz1maWVsZHMsX3RoaXN9cmV0dXJuIF9jcmVhdGVDbGFzcyhBc3luY1ZhbGlkYXRpb25FcnJvcil9KF93cmFwTmF0aXZlU3VwZXIoRXJyb3IpKTtmdW5jdGlvbiBjb21wbGVtZW50RXJyb3IocnVsZSxzb3VyY2Upe3JldHVybiBmdW5jdGlvbihvZSl7dmFyIGZpZWxkVmFsdWU7cmV0dXJuKGZpZWxkVmFsdWU9cnVsZS5mdWxsRmllbGRzP2Z1bmN0aW9uKHZhbHVlLHBhdGgpe2Zvcih2YXIgdj12YWx1ZSxpPTA7aTxwYXRoLmxlbmd0aCYmdm9pZCAwIT12O2krKyl2PXZbcGF0aFtpXV07cmV0dXJuIHZ9KHNvdXJjZSxydWxlLmZ1bGxGaWVsZHMpOnNvdXJjZVtvZS5maWVsZHx8cnVsZS5mdWxsRmllbGRdLG9lJiZ2b2lkIDAhPT1vZS5tZXNzYWdlKT8ob2UuZmllbGQ9b2UuZmllbGR8fHJ1bGUuZnVsbEZpZWxkLG9lLmZpZWxkVmFsdWU9ZmllbGRWYWx1ZSxvZSk6e21lc3NhZ2U6ImZ1bmN0aW9uIj09dHlwZW9mIG9lP29lKCk6b2UsZmllbGRWYWx1ZTpmaWVsZFZhbHVlLGZpZWxkOm9lLmZpZWxkfHxydWxlLmZ1bGxGaWVsZH19fWZ1bmN0aW9uIGRlZXBNZXJnZSh0YXJnZXQsc291cmNlKXtpZihzb3VyY2Upe2Zvcih2YXIgcyBpbiBzb3VyY2UpaWYoc291cmNlLmhhc093blByb3BlcnR5KHMpKXt2YXIgdmFsdWU9c291cmNlW3NdOyJvYmplY3QiPT09X3R5cGVvZih2YWx1ZSkmJiJvYmplY3QiPT09X3R5cGVvZih0YXJnZXRbc10pP3RhcmdldFtzXT1fb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7fSx0YXJnZXRbc10pLHZhbHVlKTp0YXJnZXRbc109dmFsdWV9fXJldHVybiB0YXJnZXR9dmFyIEVOVU09ImVudW0iLHJ1bGVfcmVxdWlyZWQ9ZnVuY3Rpb24ocnVsZSx2YWx1ZSxzb3VyY2UsZXJyb3JzLG9wdGlvbnMsdHlwZSl7cnVsZS5yZXF1aXJlZCYmKCFzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCl8fGlzRW1wdHlWYWx1ZSh2YWx1ZSx0eXBlfHxydWxlLnR5cGUpKSYmZXJyb3JzLnB1c2goZm9ybWF0KG9wdGlvbnMubWVzc2FnZXMucmVxdWlyZWQscnVsZS5mdWxsRmllbGQpKX0scnVsZV91cmw9ZnVuY3Rpb24oKXtpZih1cmxSZWcpcmV0dXJuIHVybFJlZzt2YXIgd29yZD0iW2EtZkEtRlxcZDpdIixiPWZ1bmN0aW9uKG9wdGlvbnMpe3JldHVybiBvcHRpb25zJiZvcHRpb25zLmluY2x1ZGVCb3VuZGFyaWVzPyIoPzooPzw9XFxzfF4pKD89Ii5jb25jYXQod29yZCwiKXwoPzw9IikuY29uY2F0KHdvcmQsIikoPz1cXHN8JCkpIik6IiJ9LHY0PSIoPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkpezN9Iix2NnNlZz0iW2EtZkEtRlxcZF17MSw0fSIsdjZMaXN0PVsiKD86Ii5jb25jYXQodjZzZWcsIjopezd9KD86IikuY29uY2F0KHY2c2VnLCJ8OikiKSwiKD86Ii5jb25jYXQodjZzZWcsIjopezZ9KD86IikuY29uY2F0KHY0LCJ8OiIpLmNvbmNhdCh2NnNlZywifDopIiksIig/OiIuY29uY2F0KHY2c2VnLCI6KXs1fSg/OjoiKS5jb25jYXQodjQsInwoPzo6IikuY29uY2F0KHY2c2VnLCIpezEsMn18OikiKSwiKD86Ii5jb25jYXQodjZzZWcsIjopezR9KD86KD86OiIpLmNvbmNhdCh2NnNlZywiKXswLDF9OiIpLmNvbmNhdCh2NCwifCg/OjoiKS5jb25jYXQodjZzZWcsIil7MSwzfXw6KSIpLCIoPzoiLmNvbmNhdCh2NnNlZywiOil7M30oPzooPzo6IikuY29uY2F0KHY2c2VnLCIpezAsMn06IikuY29uY2F0KHY0LCJ8KD86OiIpLmNvbmNhdCh2NnNlZywiKXsxLDR9fDopIiksIig/OiIuY29uY2F0KHY2c2VnLCI6KXsyfSg/Oig/OjoiKS5jb25jYXQodjZzZWcsIil7MCwzfToiKS5jb25jYXQodjQsInwoPzo6IikuY29uY2F0KHY2c2VnLCIpezEsNX18OikiKSwiKD86Ii5jb25jYXQodjZzZWcsIjopezF9KD86KD86OiIpLmNvbmNhdCh2NnNlZywiKXswLDR9OiIpLmNvbmNhdCh2NCwifCg/OjoiKS5jb25jYXQodjZzZWcsIil7MSw2fXw6KSIpLCIoPzo6KD86KD86OiIuY29uY2F0KHY2c2VnLCIpezAsNX06IikuY29uY2F0KHY0LCJ8KD86OiIpLmNvbmNhdCh2NnNlZywiKXsxLDd9fDopKSIpXSx2Nj0iKD86Ii5jb25jYXQodjZMaXN0LmpvaW4oInwiKSwiKSIpLmNvbmNhdCgiKD86JVswLTlhLXpBLVpdezEsfSk/IiksdjQ2RXhhY3Q9UmVnRXhwKCIoPzpeIi5jb25jYXQodjQsIiQpfCg/Ol4iKS5jb25jYXQodjYsIiQpIikpLHY0ZXhhY3Q9UmVnRXhwKCJeIi5jb25jYXQodjQsIiQiKSksdjZleGFjdD1SZWdFeHAoIl4iLmNvbmNhdCh2NiwiJCIpKSxpcD1mdW5jdGlvbihvcHRpb25zKXtyZXR1cm4gb3B0aW9ucyYmb3B0aW9ucy5leGFjdD92NDZFeGFjdDpSZWdFeHAoIig/OiIuY29uY2F0KGIob3B0aW9ucykpLmNvbmNhdCh2NCkuY29uY2F0KGIob3B0aW9ucyksIil8KD86IikuY29uY2F0KGIob3B0aW9ucykpLmNvbmNhdCh2NikuY29uY2F0KGIob3B0aW9ucyksIikiKSwiZyIpfTtpcC52ND1mdW5jdGlvbihvcHRpb25zKXtyZXR1cm4gb3B0aW9ucyYmb3B0aW9ucy5leGFjdD92NGV4YWN0OlJlZ0V4cCgiIi5jb25jYXQoYihvcHRpb25zKSkuY29uY2F0KHY0KS5jb25jYXQoYihvcHRpb25zKSksImciKX0saXAudjY9ZnVuY3Rpb24ob3B0aW9ucyl7cmV0dXJuIG9wdGlvbnMmJm9wdGlvbnMuZXhhY3Q/djZleGFjdDpSZWdFeHAoIiIuY29uY2F0KGIob3B0aW9ucykpLmNvbmNhdCh2NikuY29uY2F0KGIob3B0aW9ucykpLCJnIil9O3ZhciBpcHY0PWlwLnY0KCkuc291cmNlLGlwdjY9aXAudjYoKS5zb3VyY2UscmVnZXg9Iig/OiIuY29uY2F0KCIoPzooPzpbYS16XSs6KT8vLykiLCJ8d3d3XFwuKSIpLmNvbmNhdCgiKD86XFxTKyg/OjpcXFMqKT9AKT8iLCIoPzpsb2NhbGhvc3R8IikuY29uY2F0KGlwdjQsInwiKS5jb25jYXQoaXB2NiwifCIpLmNvbmNhdCgiKD86KD86W2EtelxcdTAwYTEtXFx1ZmZmZjAtOV1bLV9dKikqW2EtelxcdTAwYTEtXFx1ZmZmZjAtOV0rKSIpLmNvbmNhdCgiKD86XFwuKD86W2EtelxcdTAwYTEtXFx1ZmZmZjAtOV0tKikqW2EtelxcdTAwYTEtXFx1ZmZmZjAtOV0rKSoiKS5jb25jYXQoIig/OlxcLig/OlthLXpcXHUwMGExLVxcdWZmZmZdezIsfSkpIiwiKSIpLmNvbmNhdCgiKD86OlxcZHsyLDV9KT8iKS5jb25jYXQoJyg/OlsvPyNdW15cXHMiXSopPycpO3JldHVybiB1cmxSZWc9UmVnRXhwKCIoPzpeIi5jb25jYXQocmVnZXgsIiQpIiksImkiKX0sdHlwZV9wYXR0ZXJuPXtlbWFpbDovXigoW148PigpXFtcXVxcLiw7OlxzQCJdKyhcLltePD4oKVxbXF1cXC4sOzpcc0AiXSspKil8KCIuKyIpKUAoKFxbWzAtOV17MSwzfVwuWzAtOV17MSwzfVwuWzAtOV17MSwzfVwuWzAtOV17MSwzfV0pfCgoW2EtekEtWlwtMC05XHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXStcLikrW2EtekEtWlx1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl17Mix9KSkkLyxoZXg6L14jPyhbYS1mMC05XXs2fXxbYS1mMC05XXszfSkkL2l9LHR5cGVzPXtpbnRlZ2VyOmZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdHlwZXMubnVtYmVyKHZhbHVlKSYmcGFyc2VJbnQodmFsdWUsMTApPT09dmFsdWV9LGZsb2F0OmZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdHlwZXMubnVtYmVyKHZhbHVlKSYmIXR5cGVzLmludGVnZXIodmFsdWUpfSxhcnJheTpmdW5jdGlvbih2YWx1ZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpfSxyZWdleHA6ZnVuY3Rpb24odmFsdWUpe2lmKHZhbHVlIGluc3RhbmNlb2YgUmVnRXhwKXJldHVybiEwO3RyeXtyZXR1cm4gUmVnRXhwKHZhbHVlKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19LGRhdGU6ZnVuY3Rpb24odmFsdWUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB2YWx1ZS5nZXRUaW1lJiYiZnVuY3Rpb24iPT10eXBlb2YgdmFsdWUuZ2V0TW9udGgmJiJmdW5jdGlvbiI9PXR5cGVvZiB2YWx1ZS5nZXRZZWFyJiYhaXNOYU4odmFsdWUuZ2V0VGltZSgpKX0sbnVtYmVyOmZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4haXNOYU4odmFsdWUpJiYibnVtYmVyIj09dHlwZW9mIHZhbHVlfSxvYmplY3Q6ZnVuY3Rpb24odmFsdWUpe3JldHVybiJvYmplY3QiPT09X3R5cGVvZih2YWx1ZSkmJiF0eXBlcy5hcnJheSh2YWx1ZSl9LG1ldGhvZDpmdW5jdGlvbih2YWx1ZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHZhbHVlfSxlbWFpbDpmdW5jdGlvbih2YWx1ZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB2YWx1ZSYmdmFsdWUubGVuZ3RoPD0zMjAmJiEhdmFsdWUubWF0Y2godHlwZV9wYXR0ZXJuLmVtYWlsKX0sdXJsOmZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHZhbHVlJiZ2YWx1ZS5sZW5ndGg8PTIwNDgmJiEhdmFsdWUubWF0Y2gocnVsZV91cmwoKSl9LGhleDpmdW5jdGlvbih2YWx1ZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB2YWx1ZSYmISF2YWx1ZS5tYXRjaCh0eXBlX3BhdHRlcm4uaGV4KX19LGVzX3J1bGU9e3JlcXVpcmVkOnJ1bGVfcmVxdWlyZWQsd2hpdGVzcGFjZTpmdW5jdGlvbihydWxlLHZhbHVlLHNvdXJjZSxlcnJvcnMsb3B0aW9ucyl7KC9eXHMrJC8udGVzdCh2YWx1ZSl8fCIiPT09dmFsdWUpJiZlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlcy53aGl0ZXNwYWNlLHJ1bGUuZnVsbEZpZWxkKSl9LHR5cGU6ZnVuY3Rpb24ocnVsZSx2YWx1ZSxzb3VyY2UsZXJyb3JzLG9wdGlvbnMpe2lmKHJ1bGUucmVxdWlyZWQmJnZvaWQgMD09PXZhbHVlKXtydWxlX3JlcXVpcmVkKHJ1bGUsdmFsdWUsc291cmNlLGVycm9ycyxvcHRpb25zKTtyZXR1cm59dmFyIHJ1bGVUeXBlPXJ1bGUudHlwZTtbImludGVnZXIiLCJmbG9hdCIsImFycmF5IiwicmVnZXhwIiwib2JqZWN0IiwibWV0aG9kIiwiZW1haWwiLCJudW1iZXIiLCJkYXRlIiwidXJsIiwiaGV4Il0uaW5kZXhPZihydWxlVHlwZSk+LTE/dHlwZXNbcnVsZVR5cGVdKHZhbHVlKXx8ZXJyb3JzLnB1c2goZm9ybWF0KG9wdGlvbnMubWVzc2FnZXMudHlwZXNbcnVsZVR5cGVdLHJ1bGUuZnVsbEZpZWxkLHJ1bGUudHlwZSkpOnJ1bGVUeXBlJiZfdHlwZW9mKHZhbHVlKSE9PXJ1bGUudHlwZSYmZXJyb3JzLnB1c2goZm9ybWF0KG9wdGlvbnMubWVzc2FnZXMudHlwZXNbcnVsZVR5cGVdLHJ1bGUuZnVsbEZpZWxkLHJ1bGUudHlwZSkpfSxyYW5nZTpmdW5jdGlvbihydWxlLHZhbHVlLHNvdXJjZSxlcnJvcnMsb3B0aW9ucyl7dmFyIGxlbj0ibnVtYmVyIj09dHlwZW9mIHJ1bGUubGVuLG1pbj0ibnVtYmVyIj09dHlwZW9mIHJ1bGUubWluLG1heD0ibnVtYmVyIj09dHlwZW9mIHJ1bGUubWF4LHZhbD12YWx1ZSxrZXk9bnVsbCxzdHI9InN0cmluZyI9PXR5cGVvZiB2YWx1ZSxhcnI9QXJyYXkuaXNBcnJheSh2YWx1ZSk7aWYoIm51bWJlciI9PXR5cGVvZiB2YWx1ZT9rZXk9Im51bWJlciI6c3RyP2tleT0ic3RyaW5nIjphcnImJihrZXk9ImFycmF5IiksIWtleSlyZXR1cm4hMTthcnImJih2YWw9dmFsdWUubGVuZ3RoKSxzdHImJih2YWw9dmFsdWUucmVwbGFjZSgvW1x1RDgwMC1cdURCRkZdW1x1REMwMC1cdURGRkZdL2csIl8iKS5sZW5ndGgpLGxlbj92YWwhPT1ydWxlLmxlbiYmZXJyb3JzLnB1c2goZm9ybWF0KG9wdGlvbnMubWVzc2FnZXNba2V5XS5sZW4scnVsZS5mdWxsRmllbGQscnVsZS5sZW4pKTptaW4mJiFtYXgmJnZhbDxydWxlLm1pbj9lcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlc1trZXldLm1pbixydWxlLmZ1bGxGaWVsZCxydWxlLm1pbikpOm1heCYmIW1pbiYmdmFsPnJ1bGUubWF4P2Vycm9ycy5wdXNoKGZvcm1hdChvcHRpb25zLm1lc3NhZ2VzW2tleV0ubWF4LHJ1bGUuZnVsbEZpZWxkLHJ1bGUubWF4KSk6bWluJiZtYXgmJih2YWw8cnVsZS5taW58fHZhbD5ydWxlLm1heCkmJmVycm9ycy5wdXNoKGZvcm1hdChvcHRpb25zLm1lc3NhZ2VzW2tleV0ucmFuZ2UscnVsZS5mdWxsRmllbGQscnVsZS5taW4scnVsZS5tYXgpKX0sZW51bTpmdW5jdGlvbihydWxlLHZhbHVlLHNvdXJjZSxlcnJvcnMsb3B0aW9ucyl7cnVsZVtFTlVNXT1BcnJheS5pc0FycmF5KHJ1bGVbRU5VTV0pP3J1bGVbRU5VTV06W10sLTE9PT1ydWxlW0VOVU1dLmluZGV4T2YodmFsdWUpJiZlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlc1tFTlVNXSxydWxlLmZ1bGxGaWVsZCxydWxlW0VOVU1dLmpvaW4oIiwgIikpKX0scGF0dGVybjpmdW5jdGlvbihydWxlLHZhbHVlLHNvdXJjZSxlcnJvcnMsb3B0aW9ucyl7IXJ1bGUucGF0dGVybnx8KHJ1bGUucGF0dGVybiBpbnN0YW5jZW9mIFJlZ0V4cD8ocnVsZS5wYXR0ZXJuLmxhc3RJbmRleD0wLHJ1bGUucGF0dGVybi50ZXN0KHZhbHVlKXx8ZXJyb3JzLnB1c2goZm9ybWF0KG9wdGlvbnMubWVzc2FnZXMucGF0dGVybi5taXNtYXRjaCxydWxlLmZ1bGxGaWVsZCx2YWx1ZSxydWxlLnBhdHRlcm4pKSk6InN0cmluZyIhPXR5cGVvZiBydWxlLnBhdHRlcm58fFJlZ0V4cChydWxlLnBhdHRlcm4pLnRlc3QodmFsdWUpfHxlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlcy5wYXR0ZXJuLm1pc21hdGNoLHJ1bGUuZnVsbEZpZWxkLHZhbHVlLHJ1bGUucGF0dGVybikpKX19LHZhbGlkYXRvcl90eXBlPWZ1bmN0aW9uKHJ1bGUsdmFsdWUsY2FsbGJhY2ssc291cmNlLG9wdGlvbnMpe3ZhciBydWxlVHlwZT1ydWxlLnR5cGUsZXJyb3JzPVtdO2lmKHJ1bGUucmVxdWlyZWR8fCFydWxlLnJlcXVpcmVkJiZzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCkpe2lmKGlzRW1wdHlWYWx1ZSh2YWx1ZSxydWxlVHlwZSkmJiFydWxlLnJlcXVpcmVkKXJldHVybiBjYWxsYmFjaygpO2VzX3J1bGUucmVxdWlyZWQocnVsZSx2YWx1ZSxzb3VyY2UsZXJyb3JzLG9wdGlvbnMscnVsZVR5cGUpLGlzRW1wdHlWYWx1ZSh2YWx1ZSxydWxlVHlwZSl8fGVzX3J1bGUudHlwZShydWxlLHZhbHVlLHNvdXJjZSxlcnJvcnMsb3B0aW9ucyl9Y2FsbGJhY2soZXJyb3JzKX0sZXNfdmFsaWRhdG9yPXtzdHJpbmc6ZnVuY3Rpb24ocnVsZSx2YWx1ZSxjYWxsYmFjayxzb3VyY2Usb3B0aW9ucyl7dmFyIGVycm9ycz1bXTtpZihydWxlLnJlcXVpcmVkfHwhcnVsZS5yZXF1aXJlZCYmc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpKXtpZihpc0VtcHR5VmFsdWUodmFsdWUsInN0cmluZyIpJiYhcnVsZS5yZXF1aXJlZClyZXR1cm4gY2FsbGJhY2soKTtlc19ydWxlLnJlcXVpcmVkKHJ1bGUsdmFsdWUsc291cmNlLGVycm9ycyxvcHRpb25zLCJzdHJpbmciKSxpc0VtcHR5VmFsdWUodmFsdWUsInN0cmluZyIpfHwoZXNfcnVsZS50eXBlKHJ1bGUsdmFsdWUsc291cmNlLGVycm9ycyxvcHRpb25zKSxlc19ydWxlLnJhbmdlKHJ1bGUsdmFsdWUsc291cmNlLGVycm9ycyxvcHRpb25zKSxlc19ydWxlLnBhdHRlcm4ocnVsZSx2YWx1ZSxzb3VyY2UsZXJyb3JzLG9wdGlvbnMpLCEwPT09cnVsZS53aGl0ZXNwYWNlJiZlc19ydWxlLndoaXRlc3BhY2UocnVsZSx2YWx1ZSxzb3VyY2UsZXJyb3JzLG9wdGlvbnMpKX1jYWxsYmFjayhlcnJvcnMpfSxtZXRob2Q6ZnVuY3Rpb24ocnVsZSx2YWx1ZSxjYWxsYmFjayxzb3VyY2Usb3B0aW9ucyl7dmFyIGVycm9ycz1bXTtpZihydWxlLnJlcXVpcmVkfHwhcnVsZS5yZXF1aXJlZCYmc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpKXtpZihpc0VtcHR5VmFsdWUodmFsdWUpJiYhcnVsZS5yZXF1aXJlZClyZXR1cm4gY2FsbGJhY2soKTtlc19ydWxlLnJlcXVpcmVkKHJ1bGUsdmFsdWUsc291cmNlLGVycm9ycyxvcHRpb25zKSx2b2lkIDAhPT12YWx1ZSYmZXNfcnVsZS50eXBlKHJ1bGUsdmFsdWUsc291cmNlLGVycm9ycyxvcHRpb25zKX1jYWxsYmFjayhlcnJvcnMpfSxudW1iZXI6ZnVuY3Rpb24ocnVsZSx2YWx1ZSxjYWxsYmFjayxzb3VyY2Usb3B0aW9ucyl7dmFyIGVycm9ycz1bXTtpZihydWxlLnJlcXVpcmVkfHwhcnVsZS5yZXF1aXJlZCYmc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpKXtpZigiIj09PXZhbHVlJiYodmFsdWU9dm9pZCAwKSxpc0VtcHR5VmFsdWUodmFsdWUpJiYhcnVsZS5yZXF1aXJlZClyZXR1cm4gY2FsbGJhY2soKTtlc19ydWxlLnJlcXVpcmVkKHJ1bGUsdmFsdWUsc291cmNlLGVycm9ycyxvcHRpb25zKSx2b2lkIDAhPT12YWx1ZSYmKGVzX3J1bGUudHlwZShydWxlLHZhbHVlLHNvdXJjZSxlcnJvcnMsb3B0aW9ucyksZXNfcnVsZS5yYW5nZShydWxlLHZhbHVlLHNvdXJjZSxlcnJvcnMsb3B0aW9ucykpfWNhbGxiYWNrKGVycm9ycyl9LGJvb2xlYW46ZnVuY3Rpb24ocnVsZSx2YWx1ZSxjYWxsYmFjayxzb3VyY2Usb3B0aW9ucyl7dmFyIGVycm9ycz1bXTtpZihydWxlLnJlcXVpcmVkfHwhcnVsZS5yZXF1aXJlZCYmc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpKXtpZihpc0VtcHR5VmFsdWUodmFsdWUpJiYhcnVsZS5yZXF1aXJlZClyZXR1cm4gY2FsbGJhY2soKTtlc19ydWxlLnJlcXVpcmVkKHJ1bGUsdmFsdWUsc291cmNlLGVycm9ycyxvcHRpb25zKSx2b2lkIDAhPT12YWx1ZSYmZXNfcnVsZS50eXBlKHJ1bGUsdmFsdWUsc291cmNlLGVycm9ycyxvcHRpb25zKX1jYWxsYmFjayhlcnJvcnMpfSxyZWdleHA6ZnVuY3Rpb24ocnVsZSx2YWx1ZSxjYWxsYmFjayxzb3VyY2Usb3B0aW9ucyl7dmFyIGVycm9ycz1bXTtpZihydWxlLnJlcXVpcmVkfHwhcnVsZS5yZXF1aXJlZCYmc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpKXtpZihpc0VtcHR5VmFsdWUodmFsdWUpJiYhcnVsZS5yZXF1aXJlZClyZXR1cm4gY2FsbGJhY2soKTtlc19ydWxlLnJlcXVpcmVkKHJ1bGUsdmFsdWUsc291cmNlLGVycm9ycyxvcHRpb25zKSxpc0VtcHR5VmFsdWUodmFsdWUpfHxlc19ydWxlLnR5cGUocnVsZSx2YWx1ZSxzb3VyY2UsZXJyb3JzLG9wdGlvbnMpfWNhbGxiYWNrKGVycm9ycyl9LGludGVnZXI6ZnVuY3Rpb24ocnVsZSx2YWx1ZSxjYWxsYmFjayxzb3VyY2Usb3B0aW9ucyl7dmFyIGVycm9ycz1bXTtpZihydWxlLnJlcXVpcmVkfHwhcnVsZS5yZXF1aXJlZCYmc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpKXtpZihpc0VtcHR5VmFsdWUodmFsdWUpJiYhcnVsZS5yZXF1aXJlZClyZXR1cm4gY2FsbGJhY2soKTtlc19ydWxlLnJlcXVpcmVkKHJ1bGUsdmFsdWUsc291cmNlLGVycm9ycyxvcHRpb25zKSx2b2lkIDAhPT12YWx1ZSYmKGVzX3J1bGUudHlwZShydWxlLHZhbHVlLHNvdXJjZSxlcnJvcnMsb3B0aW9ucyksZXNfcnVsZS5yYW5nZShydWxlLHZhbHVlLHNvdXJjZSxlcnJvcnMsb3B0aW9ucykpfWNhbGxiYWNrKGVycm9ycyl9LGZsb2F0OmZ1bmN0aW9uKHJ1bGUsdmFsdWUsY2FsbGJhY2ssc291cmNlLG9wdGlvbnMpe3ZhciBlcnJvcnM9W107aWYocnVsZS5yZXF1aXJlZHx8IXJ1bGUucmVxdWlyZWQmJnNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKSl7aWYoaXNFbXB0eVZhbHVlKHZhbHVlKSYmIXJ1bGUucmVxdWlyZWQpcmV0dXJuIGNhbGxiYWNrKCk7ZXNfcnVsZS5yZXF1aXJlZChydWxlLHZhbHVlLHNvdXJjZSxlcnJvcnMsb3B0aW9ucyksdm9pZCAwIT09dmFsdWUmJihlc19ydWxlLnR5cGUocnVsZSx2YWx1ZSxzb3VyY2UsZXJyb3JzLG9wdGlvbnMpLGVzX3J1bGUucmFuZ2UocnVsZSx2YWx1ZSxzb3VyY2UsZXJyb3JzLG9wdGlvbnMpKX1jYWxsYmFjayhlcnJvcnMpfSxhcnJheTpmdW5jdGlvbihydWxlLHZhbHVlLGNhbGxiYWNrLHNvdXJjZSxvcHRpb25zKXt2YXIgZXJyb3JzPVtdO2lmKHJ1bGUucmVxdWlyZWR8fCFydWxlLnJlcXVpcmVkJiZzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCkpe2lmKG51bGw9PXZhbHVlJiYhcnVsZS5yZXF1aXJlZClyZXR1cm4gY2FsbGJhY2soKTtlc19ydWxlLnJlcXVpcmVkKHJ1bGUsdmFsdWUsc291cmNlLGVycm9ycyxvcHRpb25zLCJhcnJheSIpLG51bGwhPXZhbHVlJiYoZXNfcnVsZS50eXBlKHJ1bGUsdmFsdWUsc291cmNlLGVycm9ycyxvcHRpb25zKSxlc19ydWxlLnJhbmdlKHJ1bGUsdmFsdWUsc291cmNlLGVycm9ycyxvcHRpb25zKSl9Y2FsbGJhY2soZXJyb3JzKX0sb2JqZWN0OmZ1bmN0aW9uKHJ1bGUsdmFsdWUsY2FsbGJhY2ssc291cmNlLG9wdGlvbnMpe3ZhciBlcnJvcnM9W107aWYocnVsZS5yZXF1aXJlZHx8IXJ1bGUucmVxdWlyZWQmJnNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKSl7aWYoaXNFbXB0eVZhbHVlKHZhbHVlKSYmIXJ1bGUucmVxdWlyZWQpcmV0dXJuIGNhbGxiYWNrKCk7ZXNfcnVsZS5yZXF1aXJlZChydWxlLHZhbHVlLHNvdXJjZSxlcnJvcnMsb3B0aW9ucyksdm9pZCAwIT09dmFsdWUmJmVzX3J1bGUudHlwZShydWxlLHZhbHVlLHNvdXJjZSxlcnJvcnMsb3B0aW9ucyl9Y2FsbGJhY2soZXJyb3JzKX0sZW51bTpmdW5jdGlvbihydWxlLHZhbHVlLGNhbGxiYWNrLHNvdXJjZSxvcHRpb25zKXt2YXIgZXJyb3JzPVtdO2lmKHJ1bGUucmVxdWlyZWR8fCFydWxlLnJlcXVpcmVkJiZzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCkpe2lmKGlzRW1wdHlWYWx1ZSh2YWx1ZSkmJiFydWxlLnJlcXVpcmVkKXJldHVybiBjYWxsYmFjaygpO2VzX3J1bGUucmVxdWlyZWQocnVsZSx2YWx1ZSxzb3VyY2UsZXJyb3JzLG9wdGlvbnMpLHZvaWQgMCE9PXZhbHVlJiZlc19ydWxlLmVudW0ocnVsZSx2YWx1ZSxzb3VyY2UsZXJyb3JzLG9wdGlvbnMpfWNhbGxiYWNrKGVycm9ycyl9LHBhdHRlcm46ZnVuY3Rpb24ocnVsZSx2YWx1ZSxjYWxsYmFjayxzb3VyY2Usb3B0aW9ucyl7dmFyIGVycm9ycz1bXTtpZihydWxlLnJlcXVpcmVkfHwhcnVsZS5yZXF1aXJlZCYmc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpKXtpZihpc0VtcHR5VmFsdWUodmFsdWUsInN0cmluZyIpJiYhcnVsZS5yZXF1aXJlZClyZXR1cm4gY2FsbGJhY2soKTtlc19ydWxlLnJlcXVpcmVkKHJ1bGUsdmFsdWUsc291cmNlLGVycm9ycyxvcHRpb25zKSxpc0VtcHR5VmFsdWUodmFsdWUsInN0cmluZyIpfHxlc19ydWxlLnBhdHRlcm4ocnVsZSx2YWx1ZSxzb3VyY2UsZXJyb3JzLG9wdGlvbnMpfWNhbGxiYWNrKGVycm9ycyl9LGRhdGU6ZnVuY3Rpb24ocnVsZSx2YWx1ZSxjYWxsYmFjayxzb3VyY2Usb3B0aW9ucyl7dmFyIGRhdGVPYmplY3QsZXJyb3JzPVtdO2lmKHJ1bGUucmVxdWlyZWR8fCFydWxlLnJlcXVpcmVkJiZzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCkpe2lmKGlzRW1wdHlWYWx1ZSh2YWx1ZSwiZGF0ZSIpJiYhcnVsZS5yZXF1aXJlZClyZXR1cm4gY2FsbGJhY2soKTtlc19ydWxlLnJlcXVpcmVkKHJ1bGUsdmFsdWUsc291cmNlLGVycm9ycyxvcHRpb25zKSwhaXNFbXB0eVZhbHVlKHZhbHVlLCJkYXRlIikmJihkYXRlT2JqZWN0PXZhbHVlIGluc3RhbmNlb2YgRGF0ZT92YWx1ZTpuZXcgRGF0ZSh2YWx1ZSksZXNfcnVsZS50eXBlKHJ1bGUsZGF0ZU9iamVjdCxzb3VyY2UsZXJyb3JzLG9wdGlvbnMpLGRhdGVPYmplY3QmJmVzX3J1bGUucmFuZ2UocnVsZSxkYXRlT2JqZWN0LmdldFRpbWUoKSxzb3VyY2UsZXJyb3JzLG9wdGlvbnMpKX1jYWxsYmFjayhlcnJvcnMpfSx1cmw6dmFsaWRhdG9yX3R5cGUsaGV4OnZhbGlkYXRvcl90eXBlLGVtYWlsOnZhbGlkYXRvcl90eXBlLHJlcXVpcmVkOmZ1bmN0aW9uKHJ1bGUsdmFsdWUsY2FsbGJhY2ssc291cmNlLG9wdGlvbnMpe3ZhciBlcnJvcnM9W10sdHlwZT1BcnJheS5pc0FycmF5KHZhbHVlKT8iYXJyYXkiOl90eXBlb2YodmFsdWUpO2VzX3J1bGUucmVxdWlyZWQocnVsZSx2YWx1ZSxzb3VyY2UsZXJyb3JzLG9wdGlvbnMsdHlwZSksY2FsbGJhY2soZXJyb3JzKX0sYW55OmZ1bmN0aW9uKHJ1bGUsdmFsdWUsY2FsbGJhY2ssc291cmNlLG9wdGlvbnMpe3ZhciBlcnJvcnM9W107aWYocnVsZS5yZXF1aXJlZHx8IXJ1bGUucmVxdWlyZWQmJnNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKSl7aWYoaXNFbXB0eVZhbHVlKHZhbHVlKSYmIXJ1bGUucmVxdWlyZWQpcmV0dXJuIGNhbGxiYWNrKCk7ZXNfcnVsZS5yZXF1aXJlZChydWxlLHZhbHVlLHNvdXJjZSxlcnJvcnMsb3B0aW9ucyl9Y2FsbGJhY2soZXJyb3JzKX19LFNjaGVtYT1mdW5jdGlvbigpe2Z1bmN0aW9uIFNjaGVtYShkZXNjcmlwdG9yKXtfY2xhc3NDYWxsQ2hlY2sodGhpcyxTY2hlbWEpLF9kZWZpbmVQcm9wZXJ0eSh0aGlzLCJydWxlcyIsbnVsbCksX2RlZmluZVByb3BlcnR5KHRoaXMsIl9tZXNzYWdlcyIsbWVzc2FnZXNfbWVzc2FnZXMpLHRoaXMuZGVmaW5lKGRlc2NyaXB0b3IpfXJldHVybiBfY3JlYXRlQ2xhc3MoU2NoZW1hLFt7a2V5OiJkZWZpbmUiLHZhbHVlOmZ1bmN0aW9uKHJ1bGVzKXt2YXIgX3RoaXM9dGhpcztpZighcnVsZXMpdGhyb3cgRXJyb3IoIkNhbm5vdCBjb25maWd1cmUgYSBzY2hlbWEgd2l0aCBubyBydWxlcyIpO2lmKCJvYmplY3QiIT09X3R5cGVvZihydWxlcyl8fEFycmF5LmlzQXJyYXkocnVsZXMpKXRocm93IEVycm9yKCJSdWxlcyBtdXN0IGJlIGFuIG9iamVjdCIpO3RoaXMucnVsZXM9e30sT2JqZWN0LmtleXMocnVsZXMpLmZvckVhY2goZnVuY3Rpb24obmFtZSl7dmFyIGl0ZW09cnVsZXNbbmFtZV07X3RoaXMucnVsZXNbbmFtZV09QXJyYXkuaXNBcnJheShpdGVtKT9pdGVtOltpdGVtXX0pfX0se2tleToibWVzc2FnZXMiLHZhbHVlOmZ1bmN0aW9uKF9tZXNzYWdlcyl7cmV0dXJuIF9tZXNzYWdlcyYmKHRoaXMuX21lc3NhZ2VzPWRlZXBNZXJnZShuZXdNZXNzYWdlcygpLF9tZXNzYWdlcykpLHRoaXMuX21lc3NhZ2VzfX0se2tleToidmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKHNvdXJjZV8pe3ZhciBfdGhpczI9dGhpcyxvPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxvYz1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06ZnVuY3Rpb24oKXt9LHNvdXJjZT1zb3VyY2VfLG9wdGlvbnM9byxjYWxsYmFjaz1vYztpZigiZnVuY3Rpb24iPT10eXBlb2Ygb3B0aW9ucyYmKGNhbGxiYWNrPW9wdGlvbnMsb3B0aW9ucz17fSksIXRoaXMucnVsZXN8fDA9PT1PYmplY3Qua2V5cyh0aGlzLnJ1bGVzKS5sZW5ndGgpcmV0dXJuIGNhbGxiYWNrJiZjYWxsYmFjayhudWxsLHNvdXJjZSksUHJvbWlzZS5yZXNvbHZlKHNvdXJjZSk7aWYob3B0aW9ucy5tZXNzYWdlcyl7dmFyIG1lc3NhZ2VzPXRoaXMubWVzc2FnZXMoKTttZXNzYWdlcz09PW1lc3NhZ2VzX21lc3NhZ2VzJiYobWVzc2FnZXM9bmV3TWVzc2FnZXMoKSksZGVlcE1lcmdlKG1lc3NhZ2VzLG9wdGlvbnMubWVzc2FnZXMpLG9wdGlvbnMubWVzc2FnZXM9bWVzc2FnZXN9ZWxzZSBvcHRpb25zLm1lc3NhZ2VzPXRoaXMubWVzc2FnZXMoKTt2YXIgc2VyaWVzPXt9OyhvcHRpb25zLmtleXN8fE9iamVjdC5rZXlzKHRoaXMucnVsZXMpKS5mb3JFYWNoKGZ1bmN0aW9uKHope3ZhciBhcnI9X3RoaXMyLnJ1bGVzW3pdLHZhbHVlPXNvdXJjZVt6XTthcnIuZm9yRWFjaChmdW5jdGlvbihyKXt2YXIgcnVsZT1yOyJmdW5jdGlvbiI9PXR5cGVvZiBydWxlLnRyYW5zZm9ybSYmKHNvdXJjZT09PXNvdXJjZV8mJihzb3VyY2U9X29iamVjdFNwcmVhZDIoe30sc291cmNlKSksbnVsbCE9KHZhbHVlPXNvdXJjZVt6XT1ydWxlLnRyYW5zZm9ybSh2YWx1ZSkpJiYocnVsZS50eXBlPXJ1bGUudHlwZXx8KEFycmF5LmlzQXJyYXkodmFsdWUpPyJhcnJheSI6X3R5cGVvZih2YWx1ZSkpKSksKHJ1bGU9ImZ1bmN0aW9uIj09dHlwZW9mIHJ1bGU/e3ZhbGlkYXRvcjpydWxlfTpfb2JqZWN0U3ByZWFkMih7fSxydWxlKSkudmFsaWRhdG9yPV90aGlzMi5nZXRWYWxpZGF0aW9uTWV0aG9kKHJ1bGUpLHJ1bGUudmFsaWRhdG9yJiYocnVsZS5maWVsZD16LHJ1bGUuZnVsbEZpZWxkPXJ1bGUuZnVsbEZpZWxkfHx6LHJ1bGUudHlwZT1fdGhpczIuZ2V0VHlwZShydWxlKSxzZXJpZXNbel09c2VyaWVzW3pdfHxbXSxzZXJpZXNbel0ucHVzaCh7cnVsZTpydWxlLHZhbHVlOnZhbHVlLHNvdXJjZTpzb3VyY2UsZmllbGQ6en0pKX0pfSk7dmFyIGVycm9yRmllbGRzPXt9O3JldHVybiBmdW5jdGlvbihvYmpBcnIsb3B0aW9uLGZ1bmMsY2FsbGJhY2ssc291cmNlKXtpZihvcHRpb24uZmlyc3Qpe3ZhciBfcGVuZGluZz1uZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLHJlamVjdCl7dmFyIHJldDthc3luY1NlcmlhbEFycmF5KChyZXQ9W10sT2JqZWN0LmtleXMob2JqQXJyKS5mb3JFYWNoKGZ1bmN0aW9uKGspe3JldC5wdXNoLmFwcGx5KHJldCxfdG9Db25zdW1hYmxlQXJyYXkob2JqQXJyW2tdfHxbXSkpfSkscmV0KSxmdW5jLGZ1bmN0aW9uKGVycm9ycyl7cmV0dXJuIGNhbGxiYWNrKGVycm9ycyksZXJyb3JzLmxlbmd0aD9yZWplY3QobmV3IEFzeW5jVmFsaWRhdGlvbkVycm9yKGVycm9ycyxjb252ZXJ0RmllbGRzRXJyb3IoZXJyb3JzKSkpOnJlc29sdmUoc291cmNlKX0pfSk7cmV0dXJuIF9wZW5kaW5nLmNhdGNoKGZ1bmN0aW9uKGUpe3JldHVybiBlfSksX3BlbmRpbmd9dmFyIGZpcnN0RmllbGRzPSEwPT09b3B0aW9uLmZpcnN0RmllbGRzP09iamVjdC5rZXlzKG9iakFycik6b3B0aW9uLmZpcnN0RmllbGRzfHxbXSxvYmpBcnJLZXlzPU9iamVjdC5rZXlzKG9iakFyciksb2JqQXJyTGVuZ3RoPW9iakFycktleXMubGVuZ3RoLHRvdGFsPTAscmVzdWx0cz1bXSxwZW5kaW5nPW5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUscmVqZWN0KXt2YXIgbmV4dD1mdW5jdGlvbihlcnJvcnMpe2lmKHJlc3VsdHMucHVzaC5hcHBseShyZXN1bHRzLGVycm9ycyksKyt0b3RhbD09PW9iakFyckxlbmd0aClyZXR1cm4gY2FsbGJhY2socmVzdWx0cykscmVzdWx0cy5sZW5ndGg/cmVqZWN0KG5ldyBBc3luY1ZhbGlkYXRpb25FcnJvcihyZXN1bHRzLGNvbnZlcnRGaWVsZHNFcnJvcihyZXN1bHRzKSkpOnJlc29sdmUoc291cmNlKX07b2JqQXJyS2V5cy5sZW5ndGh8fChjYWxsYmFjayhyZXN1bHRzKSxyZXNvbHZlKHNvdXJjZSkpLG9iakFycktleXMuZm9yRWFjaChmdW5jdGlvbihrZXkpe3ZhciBhcnI9b2JqQXJyW2tleV07LTEhPT1maXJzdEZpZWxkcy5pbmRleE9mKGtleSk/YXN5bmNTZXJpYWxBcnJheShhcnIsZnVuYyxuZXh0KTpmdW5jdGlvbihhcnIsZnVuYyxjYWxsYmFjayl7dmFyIHJlc3VsdHM9W10sdG90YWw9MCxhcnJMZW5ndGg9YXJyLmxlbmd0aDtmdW5jdGlvbiBjb3VudChlcnJvcnMpe3Jlc3VsdHMucHVzaC5hcHBseShyZXN1bHRzLF90b0NvbnN1bWFibGVBcnJheShlcnJvcnN8fFtdKSksKyt0b3RhbD09PWFyckxlbmd0aCYmY2FsbGJhY2socmVzdWx0cyl9YXJyLmZvckVhY2goZnVuY3Rpb24oYSl7ZnVuYyhhLGNvdW50KX0pfShhcnIsZnVuYyxuZXh0KX0pfSk7cmV0dXJuIHBlbmRpbmcuY2F0Y2goZnVuY3Rpb24oZSl7cmV0dXJuIGV9KSxwZW5kaW5nfShzZXJpZXMsb3B0aW9ucyxmdW5jdGlvbihkYXRhLGRvSXQpe3ZhciByZXMsX2NvbnNvbGUkZXJyb3IsX2NvbnNvbGUscnVsZT1kYXRhLnJ1bGUsZGVlcD0oIm9iamVjdCI9PT1ydWxlLnR5cGV8fCJhcnJheSI9PT1ydWxlLnR5cGUpJiYoIm9iamVjdCI9PT1fdHlwZW9mKHJ1bGUuZmllbGRzKXx8Im9iamVjdCI9PT1fdHlwZW9mKHJ1bGUuZGVmYXVsdEZpZWxkKSk7ZnVuY3Rpb24gYWRkRnVsbEZpZWxkKGtleSxzY2hlbWEpe3JldHVybiBfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7fSxzY2hlbWEpLHt9LHtmdWxsRmllbGQ6IiIuY29uY2F0KHJ1bGUuZnVsbEZpZWxkLCIuIikuY29uY2F0KGtleSksZnVsbEZpZWxkczpydWxlLmZ1bGxGaWVsZHM/W10uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheShydWxlLmZ1bGxGaWVsZHMpLFtrZXldKTpba2V5XX0pfWZ1bmN0aW9uIGNiKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltdLGVycm9yTGlzdD1BcnJheS5pc0FycmF5KGUpP2U6W2VdOyFvcHRpb25zLnN1cHByZXNzV2FybmluZyYmZXJyb3JMaXN0Lmxlbmd0aCYmU2NoZW1hLndhcm5pbmcoImFzeW5jLXZhbGlkYXRvcjoiLGVycm9yTGlzdCksZXJyb3JMaXN0Lmxlbmd0aCYmdm9pZCAwIT09cnVsZS5tZXNzYWdlJiYoZXJyb3JMaXN0PVtdLmNvbmNhdChydWxlLm1lc3NhZ2UpKTt2YXIgZmlsbGVkRXJyb3JzPWVycm9yTGlzdC5tYXAoY29tcGxlbWVudEVycm9yKHJ1bGUsc291cmNlKSk7aWYob3B0aW9ucy5maXJzdCYmZmlsbGVkRXJyb3JzLmxlbmd0aClyZXR1cm4gZXJyb3JGaWVsZHNbcnVsZS5maWVsZF09MSxkb0l0KGZpbGxlZEVycm9ycyk7aWYoZGVlcCl7aWYocnVsZS5yZXF1aXJlZCYmIWRhdGEudmFsdWUpcmV0dXJuIHZvaWQgMCE9PXJ1bGUubWVzc2FnZT9maWxsZWRFcnJvcnM9W10uY29uY2F0KHJ1bGUubWVzc2FnZSkubWFwKGNvbXBsZW1lbnRFcnJvcihydWxlLHNvdXJjZSkpOm9wdGlvbnMuZXJyb3ImJihmaWxsZWRFcnJvcnM9W29wdGlvbnMuZXJyb3IocnVsZSxmb3JtYXQob3B0aW9ucy5tZXNzYWdlcy5yZXF1aXJlZCxydWxlLmZpZWxkKSldKSxkb0l0KGZpbGxlZEVycm9ycyk7dmFyIGZpZWxkc1NjaGVtYT17fTtydWxlLmRlZmF1bHRGaWVsZCYmT2JqZWN0LmtleXMoZGF0YS52YWx1ZSkubWFwKGZ1bmN0aW9uKGtleSl7ZmllbGRzU2NoZW1hW2tleV09cnVsZS5kZWZhdWx0RmllbGR9KTt2YXIgcGFyZWRGaWVsZHNTY2hlbWE9e307T2JqZWN0LmtleXMoZmllbGRzU2NoZW1hPV9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LGZpZWxkc1NjaGVtYSksZGF0YS5ydWxlLmZpZWxkcykpLmZvckVhY2goZnVuY3Rpb24oZmllbGQpe3ZhciBmaWVsZFNjaGVtYT1maWVsZHNTY2hlbWFbZmllbGRdLGZpZWxkU2NoZW1hTGlzdD1BcnJheS5pc0FycmF5KGZpZWxkU2NoZW1hKT9maWVsZFNjaGVtYTpbZmllbGRTY2hlbWFdO3BhcmVkRmllbGRzU2NoZW1hW2ZpZWxkXT1maWVsZFNjaGVtYUxpc3QubWFwKGFkZEZ1bGxGaWVsZC5iaW5kKG51bGwsZmllbGQpKX0pO3ZhciBzY2hlbWE9bmV3IFNjaGVtYShwYXJlZEZpZWxkc1NjaGVtYSk7c2NoZW1hLm1lc3NhZ2VzKG9wdGlvbnMubWVzc2FnZXMpLGRhdGEucnVsZS5vcHRpb25zJiYoZGF0YS5ydWxlLm9wdGlvbnMubWVzc2FnZXM9b3B0aW9ucy5tZXNzYWdlcyxkYXRhLnJ1bGUub3B0aW9ucy5lcnJvcj1vcHRpb25zLmVycm9yKSxzY2hlbWEudmFsaWRhdGUoZGF0YS52YWx1ZSxkYXRhLnJ1bGUub3B0aW9uc3x8b3B0aW9ucyxmdW5jdGlvbihlcnJzKXt2YXIgZmluYWxFcnJvcnM9W107ZmlsbGVkRXJyb3JzJiZmaWxsZWRFcnJvcnMubGVuZ3RoJiZmaW5hbEVycm9ycy5wdXNoLmFwcGx5KGZpbmFsRXJyb3JzLF90b0NvbnN1bWFibGVBcnJheShmaWxsZWRFcnJvcnMpKSxlcnJzJiZlcnJzLmxlbmd0aCYmZmluYWxFcnJvcnMucHVzaC5hcHBseShmaW5hbEVycm9ycyxfdG9Db25zdW1hYmxlQXJyYXkoZXJycykpLGRvSXQoZmluYWxFcnJvcnMubGVuZ3RoP2ZpbmFsRXJyb3JzOm51bGwpfSl9ZWxzZSBkb0l0KGZpbGxlZEVycm9ycyl9aWYoZGVlcD1kZWVwJiYocnVsZS5yZXF1aXJlZHx8IXJ1bGUucmVxdWlyZWQmJmRhdGEudmFsdWUpLHJ1bGUuZmllbGQ9ZGF0YS5maWVsZCxydWxlLmFzeW5jVmFsaWRhdG9yKXJlcz1ydWxlLmFzeW5jVmFsaWRhdG9yKHJ1bGUsZGF0YS52YWx1ZSxjYixkYXRhLnNvdXJjZSxvcHRpb25zKTtlbHNlIGlmKHJ1bGUudmFsaWRhdG9yKXt0cnl7cmVzPXJ1bGUudmFsaWRhdG9yKHJ1bGUsZGF0YS52YWx1ZSxjYixkYXRhLnNvdXJjZSxvcHRpb25zKX1jYXRjaChlcnJvcil7bnVsbD09PShfY29uc29sZSRlcnJvcj0oX2NvbnNvbGU9Y29uc29sZSkuZXJyb3IpfHx2b2lkIDA9PT1fY29uc29sZSRlcnJvcnx8X2NvbnNvbGUkZXJyb3IuY2FsbChfY29uc29sZSxlcnJvciksb3B0aW9ucy5zdXBwcmVzc1ZhbGlkYXRvckVycm9yfHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgZXJyb3J9LDApLGNiKGVycm9yLm1lc3NhZ2UpfSEwPT09cmVzP2NiKCk6ITE9PT1yZXM/Y2IoImZ1bmN0aW9uIj09dHlwZW9mIHJ1bGUubWVzc2FnZT9ydWxlLm1lc3NhZ2UocnVsZS5mdWxsRmllbGR8fHJ1bGUuZmllbGQpOnJ1bGUubWVzc2FnZXx8IiIuY29uY2F0KHJ1bGUuZnVsbEZpZWxkfHxydWxlLmZpZWxkLCIgZmFpbHMiKSk6cmVzIGluc3RhbmNlb2YgQXJyYXk/Y2IocmVzKTpyZXMgaW5zdGFuY2VvZiBFcnJvciYmY2IocmVzLm1lc3NhZ2UpfXJlcyYmcmVzLnRoZW4mJnJlcy50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGNiKCl9LGZ1bmN0aW9uKGUpe3JldHVybiBjYihlKX0pfSxmdW5jdGlvbihyZXN1bHRzKXshZnVuY3Rpb24ocmVzdWx0cyl7Zm9yKHZhciBlcnJvcnM9W10sZmllbGRzPXt9LGk9MDtpPHJlc3VsdHMubGVuZ3RoO2krKykhZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSl7dmFyIF9lcnJvcnM7ZXJyb3JzPShfZXJyb3JzPWVycm9ycykuY29uY2F0LmFwcGx5KF9lcnJvcnMsX3RvQ29uc3VtYWJsZUFycmF5KGUpKX1lbHNlIGVycm9ycy5wdXNoKGUpfShyZXN1bHRzW2ldKTtlcnJvcnMubGVuZ3RoPyhmaWVsZHM9Y29udmVydEZpZWxkc0Vycm9yKGVycm9ycyksY2FsbGJhY2soZXJyb3JzLGZpZWxkcykpOmNhbGxiYWNrKG51bGwsc291cmNlKX0ocmVzdWx0cyl9LHNvdXJjZSl9fSx7a2V5OiJnZXRUeXBlIix2YWx1ZTpmdW5jdGlvbihydWxlKXtpZih2b2lkIDA9PT1ydWxlLnR5cGUmJnJ1bGUucGF0dGVybiBpbnN0YW5jZW9mIFJlZ0V4cCYmKHJ1bGUudHlwZT0icGF0dGVybiIpLCJmdW5jdGlvbiIhPXR5cGVvZiBydWxlLnZhbGlkYXRvciYmcnVsZS50eXBlJiYhZXNfdmFsaWRhdG9yLmhhc093blByb3BlcnR5KHJ1bGUudHlwZSkpdGhyb3cgRXJyb3IoZm9ybWF0KCJVbmtub3duIHJ1bGUgdHlwZSAlcyIscnVsZS50eXBlKSk7cmV0dXJuIHJ1bGUudHlwZXx8InN0cmluZyJ9fSx7a2V5OiJnZXRWYWxpZGF0aW9uTWV0aG9kIix2YWx1ZTpmdW5jdGlvbihydWxlKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgcnVsZS52YWxpZGF0b3IpcmV0dXJuIHJ1bGUudmFsaWRhdG9yO3ZhciBrZXlzPU9iamVjdC5rZXlzKHJ1bGUpLG1lc3NhZ2VJbmRleD1rZXlzLmluZGV4T2YoIm1lc3NhZ2UiKTtyZXR1cm4oLTEhPT1tZXNzYWdlSW5kZXgmJmtleXMuc3BsaWNlKG1lc3NhZ2VJbmRleCwxKSwxPT09a2V5cy5sZW5ndGgmJiJyZXF1aXJlZCI9PT1rZXlzWzBdKT9lc192YWxpZGF0b3IucmVxdWlyZWQ6ZXNfdmFsaWRhdG9yW3RoaXMuZ2V0VHlwZShydWxlKV18fHZvaWQgMH19XSksU2NoZW1hfSgpO19kZWZpbmVQcm9wZXJ0eShTY2hlbWEsInJlZ2lzdGVyIixmdW5jdGlvbih0eXBlLHZhbGlkYXRvcil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHZhbGlkYXRvcil0aHJvdyBFcnJvcigiQ2Fubm90IHJlZ2lzdGVyIGEgdmFsaWRhdG9yIGJ5IHR5cGUsIHZhbGlkYXRvciBpcyBub3QgYSBmdW5jdGlvbiIpO2VzX3ZhbGlkYXRvclt0eXBlXT12YWxpZGF0b3J9KSxfZGVmaW5lUHJvcGVydHkoU2NoZW1hLCJ3YXJuaW5nIixmdW5jdGlvbigpe30pLF9kZWZpbmVQcm9wZXJ0eShTY2hlbWEsIm1lc3NhZ2VzIixtZXNzYWdlc19tZXNzYWdlcyksX2RlZmluZVByb3BlcnR5KFNjaGVtYSwidmFsaWRhdG9ycyIsZXNfdmFsaWRhdG9yKTt2YXIgZXM9U2NoZW1hfSwxMjE2MDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfdHlwZW9mKG8pe3JldHVybihfdHlwZW9mPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKG8pe3JldHVybiB0eXBlb2Ygb306ZnVuY3Rpb24obyl7cmV0dXJuIG8mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJm8uY29uc3RydWN0b3I9PT1TeW1ib2wmJm8hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBvfSkobyl9ZnVuY3Rpb24gdG9Qcm9wZXJ0eUtleSh0KXt2YXIgaT1mdW5jdGlvbih0LHIpe2lmKCJvYmplY3QiIT1fdHlwZW9mKHQpfHwhdClyZXR1cm4gdDt2YXIgZT10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09ZSl7dmFyIGk9ZS5jYWxsKHQscnx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9X3R5cGVvZihpKSlyZXR1cm4gaTt0aHJvdyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09cj9TdHJpbmc6TnVtYmVyKSh0KX0odCwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PV90eXBlb2YoaSk/aTppKyIifWZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKGUscil7Zm9yKHZhciB0PTA7dDxyLmxlbmd0aDt0Kyspe3ZhciBvPXJbdF07by5lbnVtZXJhYmxlPW8uZW51bWVyYWJsZXx8ITEsby5jb25maWd1cmFibGU9ITAsInZhbHVlImluIG8mJihvLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0b1Byb3BlcnR5S2V5KG8ua2V5KSxvKX19ZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKHQsZSl7cmV0dXJuKF9zZXRQcm90b3R5cGVPZj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9fcHJvdG9fXz1lLHR9KSh0LGUpfWZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZih0KXtyZXR1cm4oX2dldFByb3RvdHlwZU9mPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfSkodCl9ZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpe3RyeXt2YXIgdD0hQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSl9Y2F0Y2godDEpe31yZXR1cm4oX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdD1mdW5jdGlvbigpe3JldHVybiEhdH0pKCl9ZnVuY3Rpb24gb3duS2V5cyhlLHIpe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7ciYmKG89by5maWx0ZXIoZnVuY3Rpb24ocil7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxyKS5lbnVtZXJhYmxlfSkpLHQucHVzaC5hcHBseSh0LG8pfXJldHVybiB0fWZ1bmN0aW9uIF9vYmplY3RTcHJlYWQyKGUpe2Zvcih2YXIgcj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tyXT9hcmd1bWVudHNbcl06e307ciUyP293bktleXMoT2JqZWN0KHQpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3ZhciBlMSxyMSx0MTtlMT1lLHIxPXIsdDE9dFtyXSwocjE9dG9Qcm9wZXJ0eUtleShyMSkpaW4gZTE/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUxLHIxLHt2YWx1ZTp0MSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmUxW3IxXT10MX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOm93bktleXMoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpKX0pfXJldHVybiBlfWZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG8scixpPWZ1bmN0aW9uKHIsZSl7aWYobnVsbD09cilyZXR1cm57fTt2YXIgdD17fTtmb3IodmFyIG4gaW4gcilpZigoe30pLmhhc093blByb3BlcnR5LmNhbGwocixuKSl7aWYoLTEhPT1lLmluZGV4T2YobikpY29udGludWU7dFtuXT1yW25dfXJldHVybiB0fShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPG4ubGVuZ3RoO3IrKylvPW5bcl0sLTE9PT10LmluZGV4T2YobykmJih7fSkucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG8pJiYoaVtvXT1lW29dKX1yZXR1cm4gaX1fX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7SWw6ZnVuY3Rpb24oKXtyZXR1cm4gY29sb3JfQ29sb3J9fSksX193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCk7dmFyIGNvbG9yLGVzPV9fd2VicGFja19yZXF1aXJlX18oMjQzMjcpLF9leGNsdWRlZD1bImIiXSxfZXhjbHVkZWQyPVsidiJdLGdldFJvdW5kTnVtYmVyPWZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gTWF0aC5yb3VuZChOdW1iZXIodmFsdWV8fDApKX0sY29udmVydEhzYjJIc3Y9ZnVuY3Rpb24oY29sb3Ipe2lmKGNvbG9yIGluc3RhbmNlb2YgZXMudClyZXR1cm4gY29sb3I7aWYoY29sb3ImJiJvYmplY3QiPT09X3R5cGVvZihjb2xvcikmJiJoImluIGNvbG9yJiYiYiJpbiBjb2xvcil7dmFyIGI9Y29sb3IuYjtyZXR1cm4gX29iamVjdFNwcmVhZDIoX29iamVjdFNwcmVhZDIoe30sX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKGNvbG9yLF9leGNsdWRlZCkpLHt9LHt2OmJ9KX1yZXR1cm4ic3RyaW5nIj09dHlwZW9mIGNvbG9yJiYvaHNiLy50ZXN0KGNvbG9yKT9jb2xvci5yZXBsYWNlKC9oc2IvLCJoc3YiKTpjb2xvcn0sY29sb3JfQ29sb3I9ZnVuY3Rpb24oX0Zhc3RDb2xvcil7IWZ1bmN0aW9uKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZSYmX3NldFByb3RvdHlwZU9mKHQsZSl9KENvbG9yLF9GYXN0Q29sb3IpO3ZhciByLHQsX3N1cGVyPShyPV9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSxmdW5jdGlvbigpe3ZhciBlLG89X2dldFByb3RvdHlwZU9mKENvbG9yKTtpZihyKXt2YXIgcz1fZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7ZT1SZWZsZWN0LmNvbnN0cnVjdChvLGFyZ3VtZW50cyxzKX1lbHNlIGU9by5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoZSYmKCJvYmplY3QiPT1fdHlwZW9mKGUpfHwiZnVuY3Rpb24iPT10eXBlb2YgZSkpcmV0dXJuIGU7aWYodm9pZCAwIT09ZSl0aHJvdyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKHZvaWQgMD09PWUpdGhyb3cgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBlfSh0KX0odGhpcyxlKX0pO2Z1bmN0aW9uIENvbG9yKGNvbG9yKXtyZXR1cm4hZnVuY3Rpb24oYSxuKXtpZighKGEgaW5zdGFuY2VvZiBuKSl0aHJvdyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLENvbG9yKSxfc3VwZXIuY2FsbCh0aGlzLGNvbnZlcnRIc2IySHN2KGNvbG9yKSl9cmV0dXJuIF9kZWZpbmVQcm9wZXJ0aWVzKENvbG9yLnByb3RvdHlwZSxbe2tleToidG9Ic2JTdHJpbmciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGhzYj10aGlzLnRvSHNiKCksc2F0dXJhdGlvbj1nZXRSb3VuZE51bWJlcigxMDAqaHNiLnMpLGxpZ2h0bmVzcz1nZXRSb3VuZE51bWJlcigxMDAqaHNiLmIpLGh1ZT1nZXRSb3VuZE51bWJlcihoc2IuaCksYWxwaGE9aHNiLmEsaHNiU3RyaW5nPSJoc2IoIi5jb25jYXQoaHVlLCIsICIpLmNvbmNhdChzYXR1cmF0aW9uLCIlLCAiKS5jb25jYXQobGlnaHRuZXNzLCIlKSIpLGhzYmFTdHJpbmc9ImhzYmEoIi5jb25jYXQoaHVlLCIsICIpLmNvbmNhdChzYXR1cmF0aW9uLCIlLCAiKS5jb25jYXQobGlnaHRuZXNzLCIlLCAiKS5jb25jYXQoYWxwaGEudG9GaXhlZCgwPT09YWxwaGE/MDoyKSwiKSIpO3JldHVybiAxPT09YWxwaGE/aHNiU3RyaW5nOmhzYmFTdHJpbmd9fSx7a2V5OiJ0b0hzYiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgX3RoaXMkdG9Ic3Y9dGhpcy50b0hzdigpLHY9X3RoaXMkdG9Ic3YudjtyZXR1cm4gX29iamVjdFNwcmVhZDIoX29iamVjdFNwcmVhZDIoe30sX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF90aGlzJHRvSHN2LF9leGNsdWRlZDIpKSx7fSx7Yjp2LGE6dGhpcy5hfSl9fV0pLHQmJl9kZWZpbmVQcm9wZXJ0aWVzKENvbG9yLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDb2xvciwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxDb2xvcn0oZXMudCk7KGNvbG9yPSIjMTY3N2ZmIilpbnN0YW5jZW9mIGNvbG9yX0NvbG9yfHxuZXcgY29sb3JfQ29sb3IoY29sb3IpLF9fd2VicGFja19yZXF1aXJlX18oOTQxODQpLF9fd2VicGFja19yZXF1aXJlX18oNTY3OTApfSw4MTUwOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaUDpmdW5jdGlvbigpe3JldHVybiBnZXRNaW5pRGVjaW1hbH0sRkg6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gdG9GaXhlZChudW1TdHIsc2VwYXJhdG9yU3RyLHByZWNpc2lvbil7dmFyIGN1dE9ubHk9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10mJmFyZ3VtZW50c1szXTtpZigiIj09PW51bVN0cilyZXR1cm4iIjt2YXIgX3RyaW1OdW1iZXI9KDAsbnVtYmVyVXRpbC5fVikobnVtU3RyKSxuZWdhdGl2ZVN0cj1fdHJpbU51bWJlci5uZWdhdGl2ZVN0cixpbnRlZ2VyU3RyPV90cmltTnVtYmVyLmludGVnZXJTdHIsZGVjaW1hbFN0cj1fdHJpbU51bWJlci5kZWNpbWFsU3RyLHByZWNpc2lvbkRlY2ltYWxTdHI9IiIuY29uY2F0KHNlcGFyYXRvclN0cikuY29uY2F0KGRlY2ltYWxTdHIpLG51bWJlcldpdGhvdXREZWNpbWFsPSIiLmNvbmNhdChuZWdhdGl2ZVN0cikuY29uY2F0KGludGVnZXJTdHIpO2lmKHByZWNpc2lvbj49MCl7dmFyIGFkdmFuY2VkTnVtPU51bWJlcihkZWNpbWFsU3RyW3ByZWNpc2lvbl0pO3JldHVybiBhZHZhbmNlZE51bT49NSYmIWN1dE9ubHk/dG9GaXhlZChnZXRNaW5pRGVjaW1hbChudW1TdHIpLmFkZCgiIi5jb25jYXQobmVnYXRpdmVTdHIsIjAuIikuY29uY2F0KCIwIi5yZXBlYXQocHJlY2lzaW9uKSkuY29uY2F0KDEwLWFkdmFuY2VkTnVtKSkudG9TdHJpbmcoKSxzZXBhcmF0b3JTdHIscHJlY2lzaW9uLGN1dE9ubHkpOjA9PT1wcmVjaXNpb24/bnVtYmVyV2l0aG91dERlY2ltYWw6IiIuY29uY2F0KG51bWJlcldpdGhvdXREZWNpbWFsKS5jb25jYXQoc2VwYXJhdG9yU3RyKS5jb25jYXQoZGVjaW1hbFN0ci5wYWRFbmQocHJlY2lzaW9uLCIwIikuc2xpY2UoMCxwcmVjaXNpb24pKX1yZXR1cm4iLjAiPT09cHJlY2lzaW9uRGVjaW1hbFN0cj9udW1iZXJXaXRob3V0RGVjaW1hbDoiIi5jb25jYXQobnVtYmVyV2l0aG91dERlY2ltYWwpLmNvbmNhdChwcmVjaXNpb25EZWNpbWFsU3RyKX19fSk7dmFyIGNsYXNzQ2FsbENoZWNrPV9fd2VicGFja19yZXF1aXJlX18oMTU2NzEpLGNyZWF0ZUNsYXNzPV9fd2VicGFja19yZXF1aXJlX18oNDMxNDQpLGRlZmluZVByb3BlcnR5PV9fd2VicGFja19yZXF1aXJlX18oNDk0MiksbnVtYmVyVXRpbD1fX3dlYnBhY2tfcmVxdWlyZV9fKDU1MjUyKSxCaWdJbnREZWNpbWFsPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQmlnSW50RGVjaW1hbCh2YWx1ZSl7aWYoKDAsY2xhc3NDYWxsQ2hlY2suWikodGhpcyxCaWdJbnREZWNpbWFsKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKSh0aGlzLCJvcmlnaW4iLCIiKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKSh0aGlzLCJuZWdhdGl2ZSIsdm9pZCAwKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKSh0aGlzLCJpbnRlZ2VyIix2b2lkIDApLCgwLGRlZmluZVByb3BlcnR5LlopKHRoaXMsImRlY2ltYWwiLHZvaWQgMCksKDAsZGVmaW5lUHJvcGVydHkuWikodGhpcywiZGVjaW1hbExlbiIsdm9pZCAwKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKSh0aGlzLCJlbXB0eSIsdm9pZCAwKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKSh0aGlzLCJuYW4iLHZvaWQgMCksKDAsbnVtYmVyVXRpbC54YikodmFsdWUpKXt0aGlzLmVtcHR5PSEwO3JldHVybn1pZih0aGlzLm9yaWdpbj1TdHJpbmcodmFsdWUpLCItIj09PXZhbHVlfHxOdW1iZXIuaXNOYU4odmFsdWUpKXt0aGlzLm5hbj0hMDtyZXR1cm59dmFyIG1lcmdlZFZhbHVlPXZhbHVlO2lmKCgwLG51bWJlclV0aWwuQ0MpKG1lcmdlZFZhbHVlKSYmKG1lcmdlZFZhbHVlPU51bWJlcihtZXJnZWRWYWx1ZSkpLG1lcmdlZFZhbHVlPSJzdHJpbmciPT10eXBlb2YgbWVyZ2VkVmFsdWU/bWVyZ2VkVmFsdWU6KDAsbnVtYmVyVXRpbC52UCkobWVyZ2VkVmFsdWUpLCgwLG51bWJlclV0aWwubUUpKG1lcmdlZFZhbHVlKSl7dmFyIHRyaW1SZXQ9KDAsbnVtYmVyVXRpbC5fVikobWVyZ2VkVmFsdWUpO3RoaXMubmVnYXRpdmU9dHJpbVJldC5uZWdhdGl2ZTt2YXIgbnVtYmVycz10cmltUmV0LnRyaW1TdHIuc3BsaXQoIi4iKTt0aGlzLmludGVnZXI9QmlnSW50KG51bWJlcnNbMF0pO3ZhciBkZWNpbWFsU3RyPW51bWJlcnNbMV18fCIwIjt0aGlzLmRlY2ltYWw9QmlnSW50KGRlY2ltYWxTdHIpLHRoaXMuZGVjaW1hbExlbj1kZWNpbWFsU3RyLmxlbmd0aH1lbHNlIHRoaXMubmFuPSEwfXJldHVybigwLGNyZWF0ZUNsYXNzLlopKEJpZ0ludERlY2ltYWwsW3trZXk6ImdldE1hcmsiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU/Ii0iOiIifX0se2tleToiZ2V0SW50ZWdlclN0ciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnRlZ2VyLnRvU3RyaW5nKCl9fSx7a2V5OiJnZXREZWNpbWFsU3RyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRlY2ltYWwudG9TdHJpbmcoKS5wYWRTdGFydCh0aGlzLmRlY2ltYWxMZW4sIjAiKX19LHtrZXk6ImFsaWduRGVjaW1hbCIsdmFsdWU6ZnVuY3Rpb24oZGVjaW1hbExlbmd0aCl7cmV0dXJuIEJpZ0ludCgiIi5jb25jYXQodGhpcy5nZXRNYXJrKCkpLmNvbmNhdCh0aGlzLmdldEludGVnZXJTdHIoKSkuY29uY2F0KHRoaXMuZ2V0RGVjaW1hbFN0cigpLnBhZEVuZChkZWNpbWFsTGVuZ3RoLCIwIikpKX19LHtrZXk6Im5lZ2F0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgY2xvbmU9bmV3IEJpZ0ludERlY2ltYWwodGhpcy50b1N0cmluZygpKTtyZXR1cm4gY2xvbmUubmVnYXRpdmU9IWNsb25lLm5lZ2F0aXZlLGNsb25lfX0se2tleToiY2FsIix2YWx1ZTpmdW5jdGlvbihvZmZzZXQsY2FsY3VsYXRvcixjYWxEZWNpbWFsTGVuKXt2YXIgbWF4RGVjaW1hbExlbmd0aD1NYXRoLm1heCh0aGlzLmdldERlY2ltYWxTdHIoKS5sZW5ndGgsb2Zmc2V0LmdldERlY2ltYWxTdHIoKS5sZW5ndGgpLHZhbHVlU3RyPWNhbGN1bGF0b3IodGhpcy5hbGlnbkRlY2ltYWwobWF4RGVjaW1hbExlbmd0aCksb2Zmc2V0LmFsaWduRGVjaW1hbChtYXhEZWNpbWFsTGVuZ3RoKSkudG9TdHJpbmcoKSxuZXh0RGVjaW1hbExlbmd0aD1jYWxEZWNpbWFsTGVuKG1heERlY2ltYWxMZW5ndGgpLF90cmltTnVtYmVyPSgwLG51bWJlclV0aWwuX1YpKHZhbHVlU3RyKSxuZWdhdGl2ZVN0cj1fdHJpbU51bWJlci5uZWdhdGl2ZVN0cix0cmltU3RyPV90cmltTnVtYmVyLnRyaW1TdHIsaHlkcmF0ZVZhbHVlU3RyPSIiLmNvbmNhdChuZWdhdGl2ZVN0cikuY29uY2F0KHRyaW1TdHIucGFkU3RhcnQobmV4dERlY2ltYWxMZW5ndGgrMSwiMCIpKTtyZXR1cm4gbmV3IEJpZ0ludERlY2ltYWwoIiIuY29uY2F0KGh5ZHJhdGVWYWx1ZVN0ci5zbGljZSgwLC1uZXh0RGVjaW1hbExlbmd0aCksIi4iKS5jb25jYXQoaHlkcmF0ZVZhbHVlU3RyLnNsaWNlKC1uZXh0RGVjaW1hbExlbmd0aCkpKX19LHtrZXk6ImFkZCIsdmFsdWU6ZnVuY3Rpb24odmFsdWUpe2lmKHRoaXMuaXNJbnZhbGlkYXRlKCkpcmV0dXJuIG5ldyBCaWdJbnREZWNpbWFsKHZhbHVlKTt2YXIgb2Zmc2V0PW5ldyBCaWdJbnREZWNpbWFsKHZhbHVlKTtyZXR1cm4gb2Zmc2V0LmlzSW52YWxpZGF0ZSgpP3RoaXM6dGhpcy5jYWwob2Zmc2V0LGZ1bmN0aW9uKG51bTEsbnVtMil7cmV0dXJuIG51bTErbnVtMn0sZnVuY3Rpb24obGVuKXtyZXR1cm4gbGVufSl9fSx7a2V5OiJtdWx0aSIsdmFsdWU6ZnVuY3Rpb24odmFsdWUpe3ZhciB0YXJnZXQ9bmV3IEJpZ0ludERlY2ltYWwodmFsdWUpO3JldHVybiB0aGlzLmlzSW52YWxpZGF0ZSgpfHx0YXJnZXQuaXNJbnZhbGlkYXRlKCk/bmV3IEJpZ0ludERlY2ltYWwoTmFOKTp0aGlzLmNhbCh0YXJnZXQsZnVuY3Rpb24obnVtMSxudW0yKXtyZXR1cm4gbnVtMSpudW0yfSxmdW5jdGlvbihsZW4pe3JldHVybiAyKmxlbn0pfX0se2tleToiaXNFbXB0eSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbXB0eX19LHtrZXk6ImlzTmFOIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5hbn19LHtrZXk6ImlzSW52YWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0VtcHR5KCl8fHRoaXMuaXNOYU4oKX19LHtrZXk6ImVxdWFscyIsdmFsdWU6ZnVuY3Rpb24odGFyZ2V0KXtyZXR1cm4gdGhpcy50b1N0cmluZygpPT09KG51bGw9PXRhcmdldD92b2lkIDA6dGFyZ2V0LnRvU3RyaW5nKCkpfX0se2tleToibGVzc0VxdWFscyIsdmFsdWU6ZnVuY3Rpb24odGFyZ2V0KXtyZXR1cm4gMD49dGhpcy5hZGQodGFyZ2V0Lm5lZ2F0ZSgpLnRvU3RyaW5nKCkpLnRvTnVtYmVyKCl9fSx7a2V5OiJ0b051bWJlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc05hTigpP05hTjpOdW1iZXIodGhpcy50b1N0cmluZygpKX19LHtrZXk6InRvU3RyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBzYWZlPSEoYXJndW1lbnRzLmxlbmd0aD4wKXx8dm9pZCAwPT09YXJndW1lbnRzWzBdfHxhcmd1bWVudHNbMF07cmV0dXJuIHNhZmU/dGhpcy5pc0ludmFsaWRhdGUoKT8iIjooMCxudW1iZXJVdGlsLl9WKSgiIi5jb25jYXQodGhpcy5nZXRNYXJrKCkpLmNvbmNhdCh0aGlzLmdldEludGVnZXJTdHIoKSwiLiIpLmNvbmNhdCh0aGlzLmdldERlY2ltYWxTdHIoKSkpLmZ1bGxTdHI6dGhpcy5vcmlnaW59fV0pLEJpZ0ludERlY2ltYWx9KCksTnVtYmVyRGVjaW1hbD1mdW5jdGlvbigpe2Z1bmN0aW9uIE51bWJlckRlY2ltYWwodmFsdWUpe2lmKCgwLGNsYXNzQ2FsbENoZWNrLlopKHRoaXMsTnVtYmVyRGVjaW1hbCksKDAsZGVmaW5lUHJvcGVydHkuWikodGhpcywib3JpZ2luIiwiIiksKDAsZGVmaW5lUHJvcGVydHkuWikodGhpcywibnVtYmVyIix2b2lkIDApLCgwLGRlZmluZVByb3BlcnR5LlopKHRoaXMsImVtcHR5Iix2b2lkIDApLCgwLG51bWJlclV0aWwueGIpKHZhbHVlKSl7dGhpcy5lbXB0eT0hMDtyZXR1cm59dGhpcy5vcmlnaW49U3RyaW5nKHZhbHVlKSx0aGlzLm51bWJlcj1OdW1iZXIodmFsdWUpfXJldHVybigwLGNyZWF0ZUNsYXNzLlopKE51bWJlckRlY2ltYWwsW3trZXk6Im5lZ2F0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE51bWJlckRlY2ltYWwoLXRoaXMudG9OdW1iZXIoKSl9fSx7a2V5OiJhZGQiLHZhbHVlOmZ1bmN0aW9uKHZhbHVlKXtpZih0aGlzLmlzSW52YWxpZGF0ZSgpKXJldHVybiBuZXcgTnVtYmVyRGVjaW1hbCh2YWx1ZSk7dmFyIHRhcmdldD1OdW1iZXIodmFsdWUpO2lmKE51bWJlci5pc05hTih0YXJnZXQpKXJldHVybiB0aGlzO3ZhciBudW1iZXI9dGhpcy5udW1iZXIrdGFyZ2V0O2lmKG51bWJlcj5OdW1iZXIuTUFYX1NBRkVfSU5URUdFUilyZXR1cm4gbmV3IE51bWJlckRlY2ltYWwoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpO2lmKG51bWJlcjxOdW1iZXIuTUlOX1NBRkVfSU5URUdFUilyZXR1cm4gbmV3IE51bWJlckRlY2ltYWwoTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpO3ZhciBtYXhQcmVjaXNpb249TWF0aC5tYXgoKDAsbnVtYmVyVXRpbC5OWCkodGhpcy5udW1iZXIpLCgwLG51bWJlclV0aWwuTlgpKHRhcmdldCkpO3JldHVybiBuZXcgTnVtYmVyRGVjaW1hbChudW1iZXIudG9GaXhlZChtYXhQcmVjaXNpb24pKX19LHtrZXk6Im11bHRpIix2YWx1ZTpmdW5jdGlvbih2YWx1ZSl7dmFyIHRhcmdldD1OdW1iZXIodmFsdWUpO2lmKHRoaXMuaXNJbnZhbGlkYXRlKCl8fE51bWJlci5pc05hTih0YXJnZXQpKXJldHVybiBuZXcgTnVtYmVyRGVjaW1hbChOYU4pO3ZhciBudW1iZXI9dGhpcy5udW1iZXIqdGFyZ2V0O2lmKG51bWJlcj5OdW1iZXIuTUFYX1NBRkVfSU5URUdFUilyZXR1cm4gbmV3IE51bWJlckRlY2ltYWwoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpO2lmKG51bWJlcjxOdW1iZXIuTUlOX1NBRkVfSU5URUdFUilyZXR1cm4gbmV3IE51bWJlckRlY2ltYWwoTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpO3ZhciBtYXhQcmVjaXNpb249TWF0aC5tYXgoKDAsbnVtYmVyVXRpbC5OWCkodGhpcy5udW1iZXIpLCgwLG51bWJlclV0aWwuTlgpKHRhcmdldCkpO3JldHVybiBuZXcgTnVtYmVyRGVjaW1hbChudW1iZXIudG9GaXhlZChtYXhQcmVjaXNpb24pKX19LHtrZXk6ImlzRW1wdHkiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW1wdHl9fSx7a2V5OiJpc05hTiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gTnVtYmVyLmlzTmFOKHRoaXMubnVtYmVyKX19LHtrZXk6ImlzSW52YWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0VtcHR5KCl8fHRoaXMuaXNOYU4oKX19LHtrZXk6ImVxdWFscyIsdmFsdWU6ZnVuY3Rpb24odGFyZ2V0KXtyZXR1cm4gdGhpcy50b051bWJlcigpPT09KG51bGw9PXRhcmdldD92b2lkIDA6dGFyZ2V0LnRvTnVtYmVyKCkpfX0se2tleToibGVzc0VxdWFscyIsdmFsdWU6ZnVuY3Rpb24odGFyZ2V0KXtyZXR1cm4gMD49dGhpcy5hZGQodGFyZ2V0Lm5lZ2F0ZSgpLnRvU3RyaW5nKCkpLnRvTnVtYmVyKCl9fSx7a2V5OiJ0b051bWJlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5udW1iZXJ9fSx7a2V5OiJ0b1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgc2FmZT0hKGFyZ3VtZW50cy5sZW5ndGg+MCl8fHZvaWQgMD09PWFyZ3VtZW50c1swXXx8YXJndW1lbnRzWzBdO3JldHVybiBzYWZlP3RoaXMuaXNJbnZhbGlkYXRlKCk/IiI6KDAsbnVtYmVyVXRpbC52UCkodGhpcy5udW1iZXIpOnRoaXMub3JpZ2lufX1dKSxOdW1iZXJEZWNpbWFsfSgpLHN1cHBvcnRVdGlsPV9fd2VicGFja19yZXF1aXJlX18oMTA0MzIpO2Z1bmN0aW9uIGdldE1pbmlEZWNpbWFsKHZhbHVlKXtyZXR1cm4oMCxzdXBwb3J0VXRpbC5MKSgpP25ldyBCaWdJbnREZWNpbWFsKHZhbHVlKTpuZXcgTnVtYmVyRGVjaW1hbCh2YWx1ZSl9fSw5ODg0NzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0Ijt2YXIgX01pbmlEZWNpbWFsX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg4MTUwKTtfX3dlYnBhY2tfZXhwb3J0c19fLlpQPV9NaW5pRGVjaW1hbF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlpQfSw1NTI1MjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7Q0M6ZnVuY3Rpb24oKXtyZXR1cm4gaXNFfSxOWDpmdW5jdGlvbigpe3JldHVybiBnZXROdW1iZXJQcmVjaXNpb259LF9WOmZ1bmN0aW9uKCl7cmV0dXJuIHRyaW1OdW1iZXJ9LG1FOmZ1bmN0aW9uKCl7cmV0dXJuIHZhbGlkYXRlTnVtYmVyfSx2UDpmdW5jdGlvbigpe3JldHVybiBudW0yc3RyfSx4YjpmdW5jdGlvbigpe3JldHVybiBpc0VtcHR5fX0pO3ZhciBfc3VwcG9ydFV0aWxfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDEwNDMyKTtmdW5jdGlvbiBpc0VtcHR5KHZhbHVlKXtyZXR1cm4hdmFsdWUmJjAhPT12YWx1ZSYmIU51bWJlci5pc05hTih2YWx1ZSl8fCFTdHJpbmcodmFsdWUpLnRyaW0oKX1mdW5jdGlvbiB0cmltTnVtYmVyKG51bVN0cil7dmFyIHN0cj1udW1TdHIudHJpbSgpLG5lZ2F0aXZlPXN0ci5zdGFydHNXaXRoKCItIik7bmVnYXRpdmUmJihzdHI9c3RyLnNsaWNlKDEpKSwoc3RyPXN0ci5yZXBsYWNlKC8oXC5cZCpbXjBdKTAqJC8sIiQxIikucmVwbGFjZSgvXC4wKiQvLCIiKS5yZXBsYWNlKC9eMCsvLCIiKSkuc3RhcnRzV2l0aCgiLiIpJiYoc3RyPSIwIi5jb25jYXQoc3RyKSk7dmFyIHRyaW1TdHI9c3RyfHwiMCIsc3BsaXROdW1iZXI9dHJpbVN0ci5zcGxpdCgiLiIpLGludGVnZXJTdHI9c3BsaXROdW1iZXJbMF18fCIwIixkZWNpbWFsU3RyPXNwbGl0TnVtYmVyWzFdfHwiMCI7IjAiPT09aW50ZWdlclN0ciYmIjAiPT09ZGVjaW1hbFN0ciYmKG5lZ2F0aXZlPSExKTt2YXIgbmVnYXRpdmVTdHI9bmVnYXRpdmU/Ii0iOiIiO3JldHVybntuZWdhdGl2ZTpuZWdhdGl2ZSxuZWdhdGl2ZVN0cjpuZWdhdGl2ZVN0cix0cmltU3RyOnRyaW1TdHIsaW50ZWdlclN0cjppbnRlZ2VyU3RyLGRlY2ltYWxTdHI6ZGVjaW1hbFN0cixmdWxsU3RyOiIiLmNvbmNhdChuZWdhdGl2ZVN0cikuY29uY2F0KHRyaW1TdHIpfX1mdW5jdGlvbiBpc0UobnVtYmVyKXt2YXIgc3RyPVN0cmluZyhudW1iZXIpO3JldHVybiFOdW1iZXIuaXNOYU4oTnVtYmVyKHN0cikpJiZzdHIuaW5jbHVkZXMoImUiKX1mdW5jdGlvbiBnZXROdW1iZXJQcmVjaXNpb24obnVtYmVyKXt2YXIgbnVtU3RyPVN0cmluZyhudW1iZXIpO2lmKGlzRShudW1iZXIpKXt2YXIgcHJlY2lzaW9uPU51bWJlcihudW1TdHIuc2xpY2UobnVtU3RyLmluZGV4T2YoImUtIikrMikpLGRlY2ltYWxNYXRjaD1udW1TdHIubWF0Y2goL1wuKFxkKykvKTtyZXR1cm4gbnVsbCE9ZGVjaW1hbE1hdGNoJiZkZWNpbWFsTWF0Y2hbMV0mJihwcmVjaXNpb24rPWRlY2ltYWxNYXRjaFsxXS5sZW5ndGgpLHByZWNpc2lvbn1yZXR1cm4gbnVtU3RyLmluY2x1ZGVzKCIuIikmJnZhbGlkYXRlTnVtYmVyKG51bVN0cik/bnVtU3RyLmxlbmd0aC1udW1TdHIuaW5kZXhPZigiLiIpLTE6MH1mdW5jdGlvbiBudW0yc3RyKG51bWJlcil7dmFyIG51bVN0cj1TdHJpbmcobnVtYmVyKTtpZihpc0UobnVtYmVyKSl7aWYobnVtYmVyPk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKXJldHVybiBTdHJpbmcoKDAsX3N1cHBvcnRVdGlsX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uTCkoKT9CaWdJbnQobnVtYmVyKS50b1N0cmluZygpOk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKTtpZihudW1iZXI8TnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpcmV0dXJuIFN0cmluZygoMCxfc3VwcG9ydFV0aWxfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5MKSgpP0JpZ0ludChudW1iZXIpLnRvU3RyaW5nKCk6TnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpO251bVN0cj1udW1iZXIudG9GaXhlZChnZXROdW1iZXJQcmVjaXNpb24obnVtU3RyKSl9cmV0dXJuIHRyaW1OdW1iZXIobnVtU3RyKS5mdWxsU3RyfWZ1bmN0aW9uIHZhbGlkYXRlTnVtYmVyKG51bSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBudW0/IU51bWJlci5pc05hTihudW0pOiEhbnVtJiYoL15ccyotP1xkKyhcLlxkKyk/XHMqJC8udGVzdChudW0pfHwvXlxzKi0/XGQrXC5ccyokLy50ZXN0KG51bSl8fC9eXHMqLT9cLlxkK1xzKiQvLnRlc3QobnVtKSl9fSwxMDQzMjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzdXBwb3J0QmlnSW50KCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIEJpZ0ludH1fX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7TDpmdW5jdGlvbigpe3JldHVybiBzdXBwb3J0QmlnSW50fX0pfSwyNzg4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGVzfX0pO3ZhciBzbGljZWRUb0FycmF5PV9fd2VicGFja19yZXF1aXJlX18oOTc2ODUpLHJlYWN0PV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLHJlYWN0X2RvbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDczOTM1KSxjYW5Vc2VEb209X193ZWJwYWNrX3JlcXVpcmVfXyg5ODkyNCk7X193ZWJwYWNrX3JlcXVpcmVfXyg4MDMzNCk7dmFyIGVzX3JlZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDQyNTUwKSxPcmRlckNvbnRleHQ9cmVhY3QuY3JlYXRlQ29udGV4dChudWxsKSx0b0NvbnN1bWFibGVBcnJheT1fX3dlYnBhY2tfcmVxdWlyZV9fKDc0OTAyKSx1c2VMYXlvdXRFZmZlY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg4NDEwKSxFTVBUWV9MSVNUPVtdLGR5bmFtaWNDU1M9X193ZWJwYWNrX3JlcXVpcmVfXyg0NDk1OCksZ2V0U2Nyb2xsQmFyU2l6ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDc0MjA0KSxVTklRVUVfSUQ9InJjLXV0aWwtbG9ja2VyLSIuY29uY2F0KERhdGUubm93KCkpLHV1aWQ9MCxpbmxpbmU9ITEsZ2V0UG9ydGFsQ29udGFpbmVyPWZ1bmN0aW9uKGdldENvbnRhaW5lcil7cmV0dXJuITEhPT1nZXRDb250YWluZXImJigoMCxjYW5Vc2VEb20uWikoKSYmZ2V0Q29udGFpbmVyPyJzdHJpbmciPT10eXBlb2YgZ2V0Q29udGFpbmVyP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZ2V0Q29udGFpbmVyKToiZnVuY3Rpb24iPT10eXBlb2YgZ2V0Q29udGFpbmVyP2dldENvbnRhaW5lcigpOmdldENvbnRhaW5lcjpudWxsKX0sZXM9cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3ZhciBtZXJnZWRMb2NrLF9SZWFjdCR1c2VTdGF0ZSxpZCxuZXh0SW5saW5lLG9wZW49cHJvcHMub3BlbixhdXRvTG9jaz1wcm9wcy5hdXRvTG9jayxnZXRDb250YWluZXI9cHJvcHMuZ2V0Q29udGFpbmVyLF9wcm9wcyRhdXRvRGVzdHJveT0ocHJvcHMuZGVidWcscHJvcHMuYXV0b0Rlc3Ryb3kpLGF1dG9EZXN0cm95PXZvaWQgMD09PV9wcm9wcyRhdXRvRGVzdHJveXx8X3Byb3BzJGF1dG9EZXN0cm95LGNoaWxkcmVuPXByb3BzLmNoaWxkcmVuLF9SZWFjdCR1c2VTdGF0ZTE9cmVhY3QudXNlU3RhdGUob3BlbiksX1JlYWN0JHVzZVN0YXRlMj0oMCxzbGljZWRUb0FycmF5LlopKF9SZWFjdCR1c2VTdGF0ZTEsMiksc2hvdWxkUmVuZGVyPV9SZWFjdCR1c2VTdGF0ZTJbMF0sc2V0U2hvdWxkUmVuZGVyPV9SZWFjdCR1c2VTdGF0ZTJbMV0sbWVyZ2VkUmVuZGVyPXNob3VsZFJlbmRlcnx8b3BlbjtyZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24oKXsoYXV0b0Rlc3Ryb3l8fG9wZW4pJiZzZXRTaG91bGRSZW5kZXIob3Blbil9LFtvcGVuLGF1dG9EZXN0cm95XSk7dmFyIF9SZWFjdCR1c2VTdGF0ZTM9cmVhY3QudXNlU3RhdGUoZnVuY3Rpb24oKXtyZXR1cm4gZ2V0UG9ydGFsQ29udGFpbmVyKGdldENvbnRhaW5lcil9KSxfUmVhY3QkdXNlU3RhdGU0PSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlMywyKSxpbm5lckNvbnRhaW5lcj1fUmVhY3QkdXNlU3RhdGU0WzBdLHNldElubmVyQ29udGFpbmVyPV9SZWFjdCR1c2VTdGF0ZTRbMV07cmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uKCl7dmFyIGN1c3RvbWl6ZUNvbnRhaW5lcj1nZXRQb3J0YWxDb250YWluZXIoZ2V0Q29udGFpbmVyKTtzZXRJbm5lckNvbnRhaW5lcihudWxsIT1jdXN0b21pemVDb250YWluZXI/Y3VzdG9taXplQ29udGFpbmVyOm51bGwpfSk7dmFyIF91c2VEb209ZnVuY3Rpb24ocmVuZGVyLGRlYnVnKXt2YXIgX1JlYWN0JHVzZVN0YXRlPXJlYWN0LnVzZVN0YXRlKGZ1bmN0aW9uKCl7cmV0dXJuKDAsY2FuVXNlRG9tLlopKCk/ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik6bnVsbH0pLGVsZT0oMCxzbGljZWRUb0FycmF5LlopKF9SZWFjdCR1c2VTdGF0ZSwxKVswXSxhcHBlbmRlZFJlZj1yZWFjdC51c2VSZWYoITEpLHF1ZXVlQ3JlYXRlPXJlYWN0LnVzZUNvbnRleHQoT3JkZXJDb250ZXh0KSxfUmVhY3QkdXNlU3RhdGUzPXJlYWN0LnVzZVN0YXRlKEVNUFRZX0xJU1QpLF9SZWFjdCR1c2VTdGF0ZTQ9KDAsc2xpY2VkVG9BcnJheS5aKShfUmVhY3QkdXNlU3RhdGUzLDIpLHF1ZXVlPV9SZWFjdCR1c2VTdGF0ZTRbMF0sc2V0UXVldWU9X1JlYWN0JHVzZVN0YXRlNFsxXSxtZXJnZWRRdWV1ZUNyZWF0ZT1xdWV1ZUNyZWF0ZXx8KGFwcGVuZGVkUmVmLmN1cnJlbnQ/dm9pZCAwOmZ1bmN0aW9uKGFwcGVuZEZuKXtzZXRRdWV1ZShmdW5jdGlvbihvcmlnaW4pe3JldHVyblthcHBlbmRGbl0uY29uY2F0KCgwLHRvQ29uc3VtYWJsZUFycmF5LlopKG9yaWdpbikpfSl9KTtmdW5jdGlvbiBhcHBlbmQoKXtlbGUucGFyZW50RWxlbWVudHx8ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGUpLGFwcGVuZGVkUmVmLmN1cnJlbnQ9ITB9ZnVuY3Rpb24gY2xlYW51cCgpe3ZhciBfZWxlJHBhcmVudEVsZW1lbnQ7bnVsbD09PShfZWxlJHBhcmVudEVsZW1lbnQ9ZWxlLnBhcmVudEVsZW1lbnQpfHx2b2lkIDA9PT1fZWxlJHBhcmVudEVsZW1lbnR8fF9lbGUkcGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChlbGUpLGFwcGVuZGVkUmVmLmN1cnJlbnQ9ITF9cmV0dXJuKDAsdXNlTGF5b3V0RWZmZWN0LlopKGZ1bmN0aW9uKCl7cmV0dXJuIHJlbmRlcj9xdWV1ZUNyZWF0ZT9xdWV1ZUNyZWF0ZShhcHBlbmQpOmFwcGVuZCgpOmNsZWFudXAoKSxjbGVhbnVwfSxbcmVuZGVyXSksKDAsdXNlTGF5b3V0RWZmZWN0LlopKGZ1bmN0aW9uKCl7cXVldWUubGVuZ3RoJiYocXVldWUuZm9yRWFjaChmdW5jdGlvbihhcHBlbmRGbil7cmV0dXJuIGFwcGVuZEZuKCl9KSxzZXRRdWV1ZShFTVBUWV9MSVNUKSl9LFtxdWV1ZV0pLFtlbGUsbWVyZ2VkUXVldWVDcmVhdGVdfShtZXJnZWRSZW5kZXImJiFpbm5lckNvbnRhaW5lciwwKSxfdXNlRG9tMj0oMCxzbGljZWRUb0FycmF5LlopKF91c2VEb20sMiksZGVmYXVsdENvbnRhaW5lcj1fdXNlRG9tMlswXSxxdWV1ZUNyZWF0ZT1fdXNlRG9tMlsxXSxtZXJnZWRDb250YWluZXI9bnVsbCE9aW5uZXJDb250YWluZXI/aW5uZXJDb250YWluZXI6ZGVmYXVsdENvbnRhaW5lcjttZXJnZWRMb2NrPSEhKGF1dG9Mb2NrJiZvcGVuJiYoMCxjYW5Vc2VEb20uWikoKSYmKG1lcmdlZENvbnRhaW5lcj09PWRlZmF1bHRDb250YWluZXJ8fG1lcmdlZENvbnRhaW5lcj09PWRvY3VtZW50LmJvZHkpKSxfUmVhY3QkdXNlU3RhdGU9cmVhY3QudXNlU3RhdGUoZnVuY3Rpb24oKXtyZXR1cm4gdXVpZCs9MSwiIi5jb25jYXQoVU5JUVVFX0lELCJfIikuY29uY2F0KHV1aWQpfSksaWQ9KDAsc2xpY2VkVG9BcnJheS5aKShfUmVhY3QkdXNlU3RhdGUsMSlbMF0sKDAsdXNlTGF5b3V0RWZmZWN0LlopKGZ1bmN0aW9uKCl7aWYobWVyZ2VkTG9jayl7dmFyIHNjcm9sbGJhclNpemU9KDAsZ2V0U2Nyb2xsQmFyU2l6ZS5vKShkb2N1bWVudC5ib2R5KS53aWR0aCxpc092ZXJmbG93PWRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0Pih3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpJiZ3aW5kb3cuaW5uZXJXaWR0aD5kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoOygwLGR5bmFtaWNDU1MuaHEpKCJcbmh0bWwgYm9keSB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgIi5jb25jYXQoaXNPdmVyZmxvdz8id2lkdGg6IGNhbGMoMTAwJSAtICIuY29uY2F0KHNjcm9sbGJhclNpemUsInB4KTsiKToiIiwiXG59IiksaWQpfWVsc2UoMCxkeW5hbWljQ1NTLmpMKShpZCk7cmV0dXJuIGZ1bmN0aW9uKCl7KDAsZHluYW1pY0NTUy5qTCkoaWQpfX0sW21lcmdlZExvY2ssaWRdKTt2YXIgY2hpbGRSZWY9bnVsbDtjaGlsZHJlbiYmKDAsZXNfcmVmLllyKShjaGlsZHJlbikmJnJlZiYmKGNoaWxkUmVmPWNoaWxkcmVuLnJlZik7dmFyIG1lcmdlZFJlZj0oMCxlc19yZWYueDEpKGNoaWxkUmVmLHJlZik7aWYoIW1lcmdlZFJlbmRlcnx8ISgwLGNhblVzZURvbS5aKSgpfHx2b2lkIDA9PT1pbm5lckNvbnRhaW5lcilyZXR1cm4gbnVsbDt2YXIgcmVuZGVySW5saW5lPSExPT09bWVyZ2VkQ29udGFpbmVyfHwoImJvb2xlYW4iPT10eXBlb2YgbmV4dElubGluZSYmKGlubGluZT1uZXh0SW5saW5lKSxpbmxpbmUpLHJlZmZlZENoaWxkcmVuPWNoaWxkcmVuO3JldHVybiByZWYmJihyZWZmZWRDaGlsZHJlbj1yZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4se3JlZjptZXJnZWRSZWZ9KSkscmVhY3QuY3JlYXRlRWxlbWVudChPcmRlckNvbnRleHQuUHJvdmlkZXIse3ZhbHVlOnF1ZXVlQ3JlYXRlfSxyZW5kZXJJbmxpbmU/cmVmZmVkQ2hpbGRyZW46KDAscmVhY3RfZG9tLmNyZWF0ZVBvcnRhbCkocmVmZmVkQ2hpbGRyZW4sbWVyZ2VkQ29udGFpbmVyKSl9KX0sNDAyMjg6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gdHJpZ2dlcl9lc319KTt2YXIgb2JqZWN0U3ByZWFkMj1fX3dlYnBhY2tfcmVxdWlyZV9fKDE0MTMpLHNsaWNlZFRvQXJyYXk9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzY4NSksb2JqZWN0V2l0aG91dFByb3BlcnRpZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg5MSksZXM9X193ZWJwYWNrX3JlcXVpcmVfXygyNzg4KSxjbGFzc25hbWVzPV9fd2VicGFja19yZXF1aXJlX18oOTQxODQpLGNsYXNzbmFtZXNfZGVmYXVsdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oY2xhc3NuYW1lcykscmNfcmVzaXplX29ic2VydmVyX2VzPV9fd2VicGFja19yZXF1aXJlX18oMjcyNTQpLGZpbmRET01Ob2RlPV9fd2VicGFja19yZXF1aXJlX18oMTc1NTEpLHNoYWRvdz1fX3dlYnBhY2tfcmVxdWlyZV9fKDkxNzM2KSx1c2VFdmVudD1fX3dlYnBhY2tfcmVxdWlyZV9fKDc0NDMwKSx1c2VJZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDMwNjE0KSx1c2VMYXlvdXRFZmZlY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg3NTQ4NyksaXNNb2JpbGU9X193ZWJwYWNrX3JlcXVpcmVfXygzMzAzOSkscmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksZXNtX2V4dGVuZHM9X193ZWJwYWNrX3JlcXVpcmVfXyg4NzQ2MikscmNfbW90aW9uX2VzPV9fd2VicGFja19yZXF1aXJlX18oODIyMjUpLGVzX3JlZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDM2OTc0KTtmdW5jdGlvbiBBcnJvdyhwcm9wcyl7dmFyIHByZWZpeENscz1wcm9wcy5wcmVmaXhDbHMsYWxpZ249cHJvcHMuYWxpZ24sYXJyb3c9cHJvcHMuYXJyb3csYXJyb3dQb3M9cHJvcHMuYXJyb3dQb3MsX3JlZj1hcnJvd3x8e30sY2xhc3NOYW1lPV9yZWYuY2xhc3NOYW1lLGNvbnRlbnQ9X3JlZi5jb250ZW50LF9hcnJvd1BvcyR4PWFycm93UG9zLngsX2Fycm93UG9zJHk9YXJyb3dQb3MueSxhcnJvd1JlZj1yZWFjdC51c2VSZWYoKTtpZighYWxpZ258fCFhbGlnbi5wb2ludHMpcmV0dXJuIG51bGw7dmFyIGFsaWduU3R5bGU9e3Bvc2l0aW9uOiJhYnNvbHV0ZSJ9O2lmKCExIT09YWxpZ24uYXV0b0Fycm93KXt2YXIgcG9wdXBQb2ludHM9YWxpZ24ucG9pbnRzWzBdLHRhcmdldFBvaW50cz1hbGlnbi5wb2ludHNbMV0scG9wdXBUQj1wb3B1cFBvaW50c1swXSxwb3B1cExSPXBvcHVwUG9pbnRzWzFdLHRhcmdldFRCPXRhcmdldFBvaW50c1swXSx0YXJnZXRMUj10YXJnZXRQb2ludHNbMV07cG9wdXBUQiE9PXRhcmdldFRCJiZbInQiLCJiIl0uaW5jbHVkZXMocG9wdXBUQik/InQiPT09cG9wdXBUQj9hbGlnblN0eWxlLnRvcD0wOmFsaWduU3R5bGUuYm90dG9tPTA6YWxpZ25TdHlsZS50b3A9dm9pZCAwPT09X2Fycm93UG9zJHk/MDpfYXJyb3dQb3MkeSxwb3B1cExSIT09dGFyZ2V0TFImJlsibCIsInIiXS5pbmNsdWRlcyhwb3B1cExSKT8ibCI9PT1wb3B1cExSP2FsaWduU3R5bGUubGVmdD0wOmFsaWduU3R5bGUucmlnaHQ9MDphbGlnblN0eWxlLmxlZnQ9dm9pZCAwPT09X2Fycm93UG9zJHg/MDpfYXJyb3dQb3MkeH1yZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOmFycm93UmVmLGNsYXNzTmFtZTpjbGFzc25hbWVzX2RlZmF1bHQoKSgiIi5jb25jYXQocHJlZml4Q2xzLCItYXJyb3ciKSxjbGFzc05hbWUpLHN0eWxlOmFsaWduU3R5bGV9LGNvbnRlbnQpfWZ1bmN0aW9uIE1hc2socHJvcHMpe3ZhciBwcmVmaXhDbHM9cHJvcHMucHJlZml4Q2xzLG9wZW49cHJvcHMub3Blbix6SW5kZXg9cHJvcHMuekluZGV4LG1hc2s9cHJvcHMubWFzayxtb3Rpb249cHJvcHMubW90aW9uO3JldHVybiBtYXNrP3JlYWN0LmNyZWF0ZUVsZW1lbnQocmNfbW90aW9uX2VzLlpQLCgwLGVzbV9leHRlbmRzLlopKHt9LG1vdGlvbix7bW90aW9uQXBwZWFyOiEwLHZpc2libGU6b3BlbixyZW1vdmVPbkxlYXZlOiEwfSksZnVuY3Rpb24oX3JlZil7dmFyIGNsYXNzTmFtZT1fcmVmLmNsYXNzTmFtZTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6e3pJbmRleDp6SW5kZXh9LGNsYXNzTmFtZTpjbGFzc25hbWVzX2RlZmF1bHQoKSgiIi5jb25jYXQocHJlZml4Q2xzLCItbWFzayIpLGNsYXNzTmFtZSl9KX0pOm51bGx9dmFyIFBvcHVwQ29udGVudD1yZWFjdC5tZW1vKGZ1bmN0aW9uKF9yZWYpe3JldHVybiBfcmVmLmNoaWxkcmVufSxmdW5jdGlvbihfLG5leHQpe3JldHVybiBuZXh0LmNhY2hlfSksUG9wdXA9cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3ZhciBwb3B1cD1wcm9wcy5wb3B1cCxjbGFzc05hbWU9cHJvcHMuY2xhc3NOYW1lLHByZWZpeENscz1wcm9wcy5wcmVmaXhDbHMsc3R5bGU9cHJvcHMuc3R5bGUsdGFyZ2V0PXByb3BzLnRhcmdldCxfb25WaXNpYmxlQ2hhbmdlZD1wcm9wcy5vblZpc2libGVDaGFuZ2VkLG9wZW49cHJvcHMub3BlbixrZWVwRG9tPXByb3BzLmtlZXBEb20sZnJlc2g9cHJvcHMuZnJlc2gsb25DbGljaz1wcm9wcy5vbkNsaWNrLG1hc2s9cHJvcHMubWFzayxhcnJvdz1wcm9wcy5hcnJvdyxhcnJvd1Bvcz1wcm9wcy5hcnJvd1BvcyxhbGlnbj1wcm9wcy5hbGlnbixtb3Rpb249cHJvcHMubW90aW9uLG1hc2tNb3Rpb249cHJvcHMubWFza01vdGlvbixmb3JjZVJlbmRlcj1wcm9wcy5mb3JjZVJlbmRlcixnZXRQb3B1cENvbnRhaW5lcj1wcm9wcy5nZXRQb3B1cENvbnRhaW5lcixhdXRvRGVzdHJveT1wcm9wcy5hdXRvRGVzdHJveSxQb3J0YWw9cHJvcHMucG9ydGFsLHpJbmRleD1wcm9wcy56SW5kZXgsb25Nb3VzZUVudGVyPXByb3BzLm9uTW91c2VFbnRlcixvbk1vdXNlTGVhdmU9cHJvcHMub25Nb3VzZUxlYXZlLG9uUG9pbnRlckVudGVyPXByb3BzLm9uUG9pbnRlckVudGVyLG9uUG9pbnRlckRvd25DYXB0dXJlPXByb3BzLm9uUG9pbnRlckRvd25DYXB0dXJlLHJlYWR5PXByb3BzLnJlYWR5LG9mZnNldFg9cHJvcHMub2Zmc2V0WCxvZmZzZXRZPXByb3BzLm9mZnNldFksb2Zmc2V0Uj1wcm9wcy5vZmZzZXRSLG9mZnNldEI9cHJvcHMub2Zmc2V0QixvbkFsaWduPXByb3BzLm9uQWxpZ24sb25QcmVwYXJlPXByb3BzLm9uUHJlcGFyZSxzdHJldGNoPXByb3BzLnN0cmV0Y2gsdGFyZ2V0V2lkdGg9cHJvcHMudGFyZ2V0V2lkdGgsdGFyZ2V0SGVpZ2h0PXByb3BzLnRhcmdldEhlaWdodCxjaGlsZE5vZGU9ImZ1bmN0aW9uIj09dHlwZW9mIHBvcHVwP3BvcHVwKCk6cG9wdXAsZ2V0UG9wdXBDb250YWluZXJOZWVkUGFyYW1zPShudWxsPT1nZXRQb3B1cENvbnRhaW5lcj92b2lkIDA6Z2V0UG9wdXBDb250YWluZXIubGVuZ3RoKT4wLF9SZWFjdCR1c2VTdGF0ZT1yZWFjdC51c2VTdGF0ZSghZ2V0UG9wdXBDb250YWluZXJ8fCFnZXRQb3B1cENvbnRhaW5lck5lZWRQYXJhbXMpLF9SZWFjdCR1c2VTdGF0ZTI9KDAsc2xpY2VkVG9BcnJheS5aKShfUmVhY3QkdXNlU3RhdGUsMiksc2hvdz1fUmVhY3QkdXNlU3RhdGUyWzBdLHNldFNob3c9X1JlYWN0JHVzZVN0YXRlMlsxXTtpZigoMCx1c2VMYXlvdXRFZmZlY3QuWikoZnVuY3Rpb24oKXshc2hvdyYmZ2V0UG9wdXBDb250YWluZXJOZWVkUGFyYW1zJiZ0YXJnZXQmJnNldFNob3coITApfSxbc2hvdyxnZXRQb3B1cENvbnRhaW5lck5lZWRQYXJhbXMsdGFyZ2V0XSksIXNob3cpcmV0dXJuIG51bGw7dmFyIEFVVE89ImF1dG8iLG9mZnNldFN0eWxlPXtsZWZ0OiItMTAwMHZ3Iix0b3A6Ii0xMDAwdmgiLHJpZ2h0OkFVVE8sYm90dG9tOkFVVE99O2lmKHJlYWR5fHwhb3Blbil7dmFyIF9leHBlcmltZW50YWwscG9pbnRzPWFsaWduLnBvaW50cyxkeW5hbWljSW5zZXQ9YWxpZ24uZHluYW1pY0luc2V0fHwobnVsbD09PShfZXhwZXJpbWVudGFsPWFsaWduLl9leHBlcmltZW50YWwpfHx2b2lkIDA9PT1fZXhwZXJpbWVudGFsP3ZvaWQgMDpfZXhwZXJpbWVudGFsLmR5bmFtaWNJbnNldCksYWxpZ25SaWdodD1keW5hbWljSW5zZXQmJiJyIj09PXBvaW50c1swXVsxXSxhbGlnbkJvdHRvbT1keW5hbWljSW5zZXQmJiJiIj09PXBvaW50c1swXVswXTthbGlnblJpZ2h0PyhvZmZzZXRTdHlsZS5yaWdodD1vZmZzZXRSLG9mZnNldFN0eWxlLmxlZnQ9QVVUTyk6KG9mZnNldFN0eWxlLmxlZnQ9b2Zmc2V0WCxvZmZzZXRTdHlsZS5yaWdodD1BVVRPKSxhbGlnbkJvdHRvbT8ob2Zmc2V0U3R5bGUuYm90dG9tPW9mZnNldEIsb2Zmc2V0U3R5bGUudG9wPUFVVE8pOihvZmZzZXRTdHlsZS50b3A9b2Zmc2V0WSxvZmZzZXRTdHlsZS5ib3R0b209QVVUTyl9dmFyIG1pc2NTdHlsZT17fTtyZXR1cm4gc3RyZXRjaCYmKHN0cmV0Y2guaW5jbHVkZXMoImhlaWdodCIpJiZ0YXJnZXRIZWlnaHQ/bWlzY1N0eWxlLmhlaWdodD10YXJnZXRIZWlnaHQ6c3RyZXRjaC5pbmNsdWRlcygibWluSGVpZ2h0IikmJnRhcmdldEhlaWdodCYmKG1pc2NTdHlsZS5taW5IZWlnaHQ9dGFyZ2V0SGVpZ2h0KSxzdHJldGNoLmluY2x1ZGVzKCJ3aWR0aCIpJiZ0YXJnZXRXaWR0aD9taXNjU3R5bGUud2lkdGg9dGFyZ2V0V2lkdGg6c3RyZXRjaC5pbmNsdWRlcygibWluV2lkdGgiKSYmdGFyZ2V0V2lkdGgmJihtaXNjU3R5bGUubWluV2lkdGg9dGFyZ2V0V2lkdGgpKSxvcGVufHwobWlzY1N0eWxlLnBvaW50ZXJFdmVudHM9Im5vbmUiKSxyZWFjdC5jcmVhdGVFbGVtZW50KFBvcnRhbCx7b3Blbjpmb3JjZVJlbmRlcnx8b3Blbnx8a2VlcERvbSxnZXRDb250YWluZXI6Z2V0UG9wdXBDb250YWluZXImJmZ1bmN0aW9uKCl7cmV0dXJuIGdldFBvcHVwQ29udGFpbmVyKHRhcmdldCl9LGF1dG9EZXN0cm95OmF1dG9EZXN0cm95fSxyZWFjdC5jcmVhdGVFbGVtZW50KE1hc2sse3ByZWZpeENsczpwcmVmaXhDbHMsb3BlbjpvcGVuLHpJbmRleDp6SW5kZXgsbWFzazptYXNrLG1vdGlvbjptYXNrTW90aW9ufSkscmVhY3QuY3JlYXRlRWxlbWVudChyY19yZXNpemVfb2JzZXJ2ZXJfZXMuWix7b25SZXNpemU6b25BbGlnbixkaXNhYmxlZDohb3Blbn0sZnVuY3Rpb24ocmVzaXplT2JzZXJ2ZXJSZWYpe3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KHJjX21vdGlvbl9lcy5aUCwoMCxlc21fZXh0ZW5kcy5aKSh7bW90aW9uQXBwZWFyOiEwLG1vdGlvbkVudGVyOiEwLG1vdGlvbkxlYXZlOiEwLHJlbW92ZU9uTGVhdmU6ITEsZm9yY2VSZW5kZXI6Zm9yY2VSZW5kZXIsbGVhdmVkQ2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi1oaWRkZW4iKX0sbW90aW9uLHtvbkFwcGVhclByZXBhcmU6b25QcmVwYXJlLG9uRW50ZXJQcmVwYXJlOm9uUHJlcGFyZSx2aXNpYmxlOm9wZW4sb25WaXNpYmxlQ2hhbmdlZDpmdW5jdGlvbihuZXh0VmlzaWJsZSl7dmFyIF9tb3Rpb24kb25WaXNpYmxlQ2hhbjtudWxsPT1tb3Rpb258fG51bGw9PT0oX21vdGlvbiRvblZpc2libGVDaGFuPW1vdGlvbi5vblZpc2libGVDaGFuZ2VkKXx8dm9pZCAwPT09X21vdGlvbiRvblZpc2libGVDaGFufHxfbW90aW9uJG9uVmlzaWJsZUNoYW4uY2FsbChtb3Rpb24sbmV4dFZpc2libGUpLF9vblZpc2libGVDaGFuZ2VkKG5leHRWaXNpYmxlKX19KSxmdW5jdGlvbihfcmVmLG1vdGlvblJlZil7dmFyIG1vdGlvbkNsYXNzTmFtZT1fcmVmLmNsYXNzTmFtZSxtb3Rpb25TdHlsZT1fcmVmLnN0eWxlLGNscz1jbGFzc25hbWVzX2RlZmF1bHQoKShwcmVmaXhDbHMsbW90aW9uQ2xhc3NOYW1lLGNsYXNzTmFtZSk7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjooMCxlc19yZWYuc1EpKHJlc2l6ZU9ic2VydmVyUmVmLHJlZixtb3Rpb25SZWYpLGNsYXNzTmFtZTpjbHMsc3R5bGU6KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoKDAsb2JqZWN0U3ByZWFkMi5aKSh7Ii0tYXJyb3cteCI6IiIuY29uY2F0KGFycm93UG9zLnh8fDAsInB4IiksIi0tYXJyb3cteSI6IiIuY29uY2F0KGFycm93UG9zLnl8fDAsInB4Iil9LG9mZnNldFN0eWxlKSxtaXNjU3R5bGUpLG1vdGlvblN0eWxlKSx7fSx7Ym94U2l6aW5nOiJib3JkZXItYm94Iix6SW5kZXg6ekluZGV4fSxzdHlsZSksb25Nb3VzZUVudGVyOm9uTW91c2VFbnRlcixvbk1vdXNlTGVhdmU6b25Nb3VzZUxlYXZlLG9uUG9pbnRlckVudGVyOm9uUG9pbnRlckVudGVyLG9uQ2xpY2s6b25DbGljayxvblBvaW50ZXJEb3duQ2FwdHVyZTpvblBvaW50ZXJEb3duQ2FwdHVyZX0sYXJyb3cmJnJlYWN0LmNyZWF0ZUVsZW1lbnQoQXJyb3cse3ByZWZpeENsczpwcmVmaXhDbHMsYXJyb3c6YXJyb3csYXJyb3dQb3M6YXJyb3dQb3MsYWxpZ246YWxpZ259KSxyZWFjdC5jcmVhdGVFbGVtZW50KFBvcHVwQ29udGVudCx7Y2FjaGU6IW9wZW4mJiFmcmVzaH0sY2hpbGROb2RlKSl9KX0pKX0pLFRyaWdnZXJXcmFwcGVyPXJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24ocHJvcHMscmVmKXt2YXIgY2hpbGRyZW49cHJvcHMuY2hpbGRyZW4sZ2V0VHJpZ2dlckRPTU5vZGU9cHJvcHMuZ2V0VHJpZ2dlckRPTU5vZGUsY2FuVXNlUmVmPSgwLGVzX3JlZi5ZcikoY2hpbGRyZW4pLHNldFJlZj1yZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbihub2RlKXsoMCxlc19yZWYubUgpKHJlZixnZXRUcmlnZ2VyRE9NTm9kZT9nZXRUcmlnZ2VyRE9NTm9kZShub2RlKTpub2RlKX0sW2dldFRyaWdnZXJET01Ob2RlXSksbWVyZ2VkUmVmPSgwLGVzX3JlZi54MSkoc2V0UmVmLCgwLGVzX3JlZi5DNCkoY2hpbGRyZW4pKTtyZXR1cm4gY2FuVXNlUmVmP3JlYWN0LmNsb25lRWxlbWVudChjaGlsZHJlbix7cmVmOm1lcmdlZFJlZn0pOmNoaWxkcmVufSksVHJpZ2dlckNvbnRleHQ9cmVhY3QuY3JlYXRlQ29udGV4dChudWxsKTtmdW5jdGlvbiB0b0FycmF5KHZhbCl7cmV0dXJuIHZhbD9BcnJheS5pc0FycmF5KHZhbCk/dmFsOlt2YWxdOltdfXZhciBpc1Zpc2libGU9X193ZWJwYWNrX3JlcXVpcmVfXygzNDg5KTtmdW5jdGlvbiBnZXRNb3Rpb24ocHJlZml4Q2xzLG1vdGlvbixhbmltYXRpb24sdHJhbnNpdGlvbk5hbWUpe3JldHVybiBtb3Rpb258fChhbmltYXRpb24/e21vdGlvbk5hbWU6IiIuY29uY2F0KHByZWZpeENscywiLSIpLmNvbmNhdChhbmltYXRpb24pfTp0cmFuc2l0aW9uTmFtZT97bW90aW9uTmFtZTp0cmFuc2l0aW9uTmFtZX06bnVsbCl9ZnVuY3Rpb24gZ2V0V2luKGVsZSl7cmV0dXJuIGVsZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fWZ1bmN0aW9uIGNvbGxlY3RTY3JvbGxlcihlbGUpe2Zvcih2YXIgc2Nyb2xsZXJMaXN0PVtdLGN1cnJlbnQ9bnVsbD09ZWxlP3ZvaWQgMDplbGUucGFyZW50RWxlbWVudCxzY3JvbGxTdHlsZT1bImhpZGRlbiIsInNjcm9sbCIsImNsaXAiLCJhdXRvIl07Y3VycmVudDspe3ZhciBfZ2V0V2luJGdldENvbXB1dGVkU3Q9Z2V0V2luKGN1cnJlbnQpLmdldENvbXB1dGVkU3R5bGUoY3VycmVudCk7W19nZXRXaW4kZ2V0Q29tcHV0ZWRTdC5vdmVyZmxvd1gsX2dldFdpbiRnZXRDb21wdXRlZFN0Lm92ZXJmbG93WSxfZ2V0V2luJGdldENvbXB1dGVkU3Qub3ZlcmZsb3ddLnNvbWUoZnVuY3Rpb24obyl7cmV0dXJuIHNjcm9sbFN0eWxlLmluY2x1ZGVzKG8pfSkmJnNjcm9sbGVyTGlzdC5wdXNoKGN1cnJlbnQpLGN1cnJlbnQ9Y3VycmVudC5wYXJlbnRFbGVtZW50fXJldHVybiBzY3JvbGxlckxpc3R9ZnVuY3Rpb24gdG9OdW0obnVtKXt2YXIgZGVmYXVsdFZhbHVlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToxO3JldHVybiBOdW1iZXIuaXNOYU4obnVtKT9kZWZhdWx0VmFsdWU6bnVtfWZ1bmN0aW9uIGdldFB4VmFsdWUodmFsKXtyZXR1cm4gdG9OdW0ocGFyc2VGbG9hdCh2YWwpLDApfWZ1bmN0aW9uIGdldFZpc2libGVBcmVhKGluaXRBcmVhLHNjcm9sbGVyTGlzdCl7dmFyIHZpc2libGVBcmVhPSgwLG9iamVjdFNwcmVhZDIuWikoe30saW5pdEFyZWEpO3JldHVybihzY3JvbGxlckxpc3R8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGVsZSl7aWYoIShlbGUgaW5zdGFuY2VvZiBIVE1MQm9keUVsZW1lbnR8fGVsZSBpbnN0YW5jZW9mIEhUTUxIdG1sRWxlbWVudCkpe3ZhciBfZ2V0V2luJGdldENvbXB1dGVkU3QyPWdldFdpbihlbGUpLmdldENvbXB1dGVkU3R5bGUoZWxlKSxvdmVyZmxvdz1fZ2V0V2luJGdldENvbXB1dGVkU3QyLm92ZXJmbG93LG92ZXJmbG93Q2xpcE1hcmdpbj1fZ2V0V2luJGdldENvbXB1dGVkU3QyLm92ZXJmbG93Q2xpcE1hcmdpbixib3JkZXJUb3BXaWR0aD1fZ2V0V2luJGdldENvbXB1dGVkU3QyLmJvcmRlclRvcFdpZHRoLGJvcmRlckJvdHRvbVdpZHRoPV9nZXRXaW4kZ2V0Q29tcHV0ZWRTdDIuYm9yZGVyQm90dG9tV2lkdGgsYm9yZGVyTGVmdFdpZHRoPV9nZXRXaW4kZ2V0Q29tcHV0ZWRTdDIuYm9yZGVyTGVmdFdpZHRoLGJvcmRlclJpZ2h0V2lkdGg9X2dldFdpbiRnZXRDb21wdXRlZFN0Mi5ib3JkZXJSaWdodFdpZHRoLGVsZVJlY3Q9ZWxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGVsZU91dEhlaWdodD1lbGUub2Zmc2V0SGVpZ2h0LGVsZUlubmVySGVpZ2h0PWVsZS5jbGllbnRIZWlnaHQsZWxlT3V0V2lkdGg9ZWxlLm9mZnNldFdpZHRoLGVsZUlubmVyV2lkdGg9ZWxlLmNsaWVudFdpZHRoLGJvcmRlclRvcE51bT1nZXRQeFZhbHVlKGJvcmRlclRvcFdpZHRoKSxib3JkZXJCb3R0b21OdW09Z2V0UHhWYWx1ZShib3JkZXJCb3R0b21XaWR0aCksYm9yZGVyTGVmdE51bT1nZXRQeFZhbHVlKGJvcmRlckxlZnRXaWR0aCksYm9yZGVyUmlnaHROdW09Z2V0UHhWYWx1ZShib3JkZXJSaWdodFdpZHRoKSxzY2FsZVg9dG9OdW0oTWF0aC5yb3VuZChlbGVSZWN0LndpZHRoL2VsZU91dFdpZHRoKjFlMykvMWUzKSxzY2FsZVk9dG9OdW0oTWF0aC5yb3VuZChlbGVSZWN0LmhlaWdodC9lbGVPdXRIZWlnaHQqMWUzKS8xZTMpLHNjYWxlZEJvcmRlclRvcFdpZHRoPWJvcmRlclRvcE51bSpzY2FsZVksc2NhbGVkQm9yZGVyTGVmdFdpZHRoPWJvcmRlckxlZnROdW0qc2NhbGVYLGNsaXBNYXJnaW5XaWR0aD0wLGNsaXBNYXJnaW5IZWlnaHQ9MDtpZigiY2xpcCI9PT1vdmVyZmxvdyl7dmFyIGNsaXBOdW09Z2V0UHhWYWx1ZShvdmVyZmxvd0NsaXBNYXJnaW4pO2NsaXBNYXJnaW5XaWR0aD1jbGlwTnVtKnNjYWxlWCxjbGlwTWFyZ2luSGVpZ2h0PWNsaXBOdW0qc2NhbGVZfXZhciBlbGVMZWZ0PWVsZVJlY3QueCtzY2FsZWRCb3JkZXJMZWZ0V2lkdGgtY2xpcE1hcmdpbldpZHRoLGVsZVRvcD1lbGVSZWN0Lnkrc2NhbGVkQm9yZGVyVG9wV2lkdGgtY2xpcE1hcmdpbkhlaWdodCxlbGVSaWdodD1lbGVMZWZ0K2VsZVJlY3Qud2lkdGgrMipjbGlwTWFyZ2luV2lkdGgtc2NhbGVkQm9yZGVyTGVmdFdpZHRoLWJvcmRlclJpZ2h0TnVtKnNjYWxlWC0oZWxlT3V0V2lkdGgtZWxlSW5uZXJXaWR0aC1ib3JkZXJMZWZ0TnVtLWJvcmRlclJpZ2h0TnVtKSpzY2FsZVgsZWxlQm90dG9tPWVsZVRvcCtlbGVSZWN0LmhlaWdodCsyKmNsaXBNYXJnaW5IZWlnaHQtc2NhbGVkQm9yZGVyVG9wV2lkdGgtYm9yZGVyQm90dG9tTnVtKnNjYWxlWS0oZWxlT3V0SGVpZ2h0LWVsZUlubmVySGVpZ2h0LWJvcmRlclRvcE51bS1ib3JkZXJCb3R0b21OdW0pKnNjYWxlWTt2aXNpYmxlQXJlYS5sZWZ0PU1hdGgubWF4KHZpc2libGVBcmVhLmxlZnQsZWxlTGVmdCksdmlzaWJsZUFyZWEudG9wPU1hdGgubWF4KHZpc2libGVBcmVhLnRvcCxlbGVUb3ApLHZpc2libGVBcmVhLnJpZ2h0PU1hdGgubWluKHZpc2libGVBcmVhLnJpZ2h0LGVsZVJpZ2h0KSx2aXNpYmxlQXJlYS5ib3R0b209TWF0aC5taW4odmlzaWJsZUFyZWEuYm90dG9tLGVsZUJvdHRvbSl9fSksdmlzaWJsZUFyZWF9ZnVuY3Rpb24gZ2V0VW5pdE9mZnNldChzaXplKXt2YXIgb2Zmc2V0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowLG9mZnNldFN0cj0iIi5jb25jYXQob2Zmc2V0KSxjZWxscz1vZmZzZXRTdHIubWF0Y2goL14oLiopXCUkLyk7cmV0dXJuIGNlbGxzP3NpemUqKHBhcnNlRmxvYXQoY2VsbHNbMV0pLzEwMCk6cGFyc2VGbG9hdChvZmZzZXRTdHIpfWZ1bmN0aW9uIGdldE51bWJlck9mZnNldChyZWN0LG9mZnNldCl7dmFyIF9yZWYyPSgwLHNsaWNlZFRvQXJyYXkuWikob2Zmc2V0fHxbXSwyKSxvZmZzZXRYPV9yZWYyWzBdLG9mZnNldFk9X3JlZjJbMV07cmV0dXJuW2dldFVuaXRPZmZzZXQocmVjdC53aWR0aCxvZmZzZXRYKSxnZXRVbml0T2Zmc2V0KHJlY3QuaGVpZ2h0LG9mZnNldFkpXX1mdW5jdGlvbiBzcGxpdFBvaW50cygpe3ZhciBwb2ludHM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiIiO3JldHVybltwb2ludHNbMF0scG9pbnRzWzFdXX1mdW5jdGlvbiBnZXRBbGlnblBvaW50KHJlY3QscG9pbnRzKXt2YXIgeSx0b3BCb3R0b209cG9pbnRzWzBdLGxlZnRSaWdodD1wb2ludHNbMV07cmV0dXJuIHk9InQiPT09dG9wQm90dG9tP3JlY3QueToiYiI9PT10b3BCb3R0b20/cmVjdC55K3JlY3QuaGVpZ2h0OnJlY3QueStyZWN0LmhlaWdodC8yLHt4OiJsIj09PWxlZnRSaWdodD9yZWN0Lng6InIiPT09bGVmdFJpZ2h0P3JlY3QueCtyZWN0LndpZHRoOnJlY3QueCtyZWN0LndpZHRoLzIseTp5fX1mdW5jdGlvbiByZXZlcnNlUG9pbnRzKHBvaW50cyxpbmRleCl7dmFyIHJldmVyc2VNYXA9e3Q6ImIiLGI6InQiLGw6InIiLHI6ImwifTtyZXR1cm4gcG9pbnRzLm1hcChmdW5jdGlvbihwb2ludCxpKXtyZXR1cm4gaT09PWluZGV4P3JldmVyc2VNYXBbcG9pbnRdfHwiYyI6cG9pbnR9KS5qb2luKCIiKX12YXIgdG9Db25zdW1hYmxlQXJyYXk9X193ZWJwYWNrX3JlcXVpcmVfXyg3NDkwMik7X193ZWJwYWNrX3JlcXVpcmVfXyg3NjI5NCk7dmFyIF9leGNsdWRlZD1bInByZWZpeENscyIsImNoaWxkcmVuIiwiYWN0aW9uIiwic2hvd0FjdGlvbiIsImhpZGVBY3Rpb24iLCJwb3B1cFZpc2libGUiLCJkZWZhdWx0UG9wdXBWaXNpYmxlIiwib25Qb3B1cFZpc2libGVDaGFuZ2UiLCJhZnRlclBvcHVwVmlzaWJsZUNoYW5nZSIsIm1vdXNlRW50ZXJEZWxheSIsIm1vdXNlTGVhdmVEZWxheSIsImZvY3VzRGVsYXkiLCJibHVyRGVsYXkiLCJtYXNrIiwibWFza0Nsb3NhYmxlIiwiZ2V0UG9wdXBDb250YWluZXIiLCJmb3JjZVJlbmRlciIsImF1dG9EZXN0cm95IiwiZGVzdHJveVBvcHVwT25IaWRlIiwicG9wdXAiLCJwb3B1cENsYXNzTmFtZSIsInBvcHVwU3R5bGUiLCJwb3B1cFBsYWNlbWVudCIsImJ1aWx0aW5QbGFjZW1lbnRzIiwicG9wdXBBbGlnbiIsInpJbmRleCIsInN0cmV0Y2giLCJnZXRQb3B1cENsYXNzTmFtZUZyb21BbGlnbiIsImZyZXNoIiwiYWxpZ25Qb2ludCIsIm9uUG9wdXBDbGljayIsIm9uUG9wdXBBbGlnbiIsImFycm93IiwicG9wdXBNb3Rpb24iLCJtYXNrTW90aW9uIiwicG9wdXBUcmFuc2l0aW9uTmFtZSIsInBvcHVwQW5pbWF0aW9uIiwibWFza1RyYW5zaXRpb25OYW1lIiwibWFza0FuaW1hdGlvbiIsImNsYXNzTmFtZSIsImdldFRyaWdnZXJET01Ob2RlIl0sdHJpZ2dlcl9lcz1mdW5jdGlvbigpe3ZhciBQb3J0YWxDb21wb25lbnQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOmVzLlo7cmV0dXJuIHJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24ocHJvcHMscmVmKXt2YXIgdGFyZ2V0LF9SZWFjdCR1c2VTdGF0ZSxfUmVhY3QkdXNlU3RhdGUyLG9mZnNldEluZm8sc2V0T2Zmc2V0SW5mbyxhbGlnbkNvdW50UmVmLHNjcm9sbGVyTGlzdCxwcmV2RmxpcFJlZixvbkFsaWduLHJlc2V0UmVhZHksYWN0aW9uLG9uU2Nyb2xsLG1hc2tDbG9zYWJsZSxvcGVuUmVmLHBvcHVwUG9pbnRlckRvd25SZWYsb25Qb3B1cE1vdXNlRW50ZXIsb25Qb3B1cE1vdXNlTGVhdmUsX3Byb3BzJHByZWZpeENscz1wcm9wcy5wcmVmaXhDbHMscHJlZml4Q2xzPXZvaWQgMD09PV9wcm9wcyRwcmVmaXhDbHM/InJjLXRyaWdnZXItcG9wdXAiOl9wcm9wcyRwcmVmaXhDbHMsY2hpbGRyZW49cHJvcHMuY2hpbGRyZW4sX3Byb3BzJGFjdGlvbj1wcm9wcy5hY3Rpb24sc2hvd0FjdGlvbj1wcm9wcy5zaG93QWN0aW9uLGhpZGVBY3Rpb249cHJvcHMuaGlkZUFjdGlvbixwb3B1cFZpc2libGU9cHJvcHMucG9wdXBWaXNpYmxlLGRlZmF1bHRQb3B1cFZpc2libGU9cHJvcHMuZGVmYXVsdFBvcHVwVmlzaWJsZSxvblBvcHVwVmlzaWJsZUNoYW5nZT1wcm9wcy5vblBvcHVwVmlzaWJsZUNoYW5nZSxhZnRlclBvcHVwVmlzaWJsZUNoYW5nZT1wcm9wcy5hZnRlclBvcHVwVmlzaWJsZUNoYW5nZSxtb3VzZUVudGVyRGVsYXk9cHJvcHMubW91c2VFbnRlckRlbGF5LF9wcm9wcyRtb3VzZUxlYXZlRGVsYT1wcm9wcy5tb3VzZUxlYXZlRGVsYXksbW91c2VMZWF2ZURlbGF5PXZvaWQgMD09PV9wcm9wcyRtb3VzZUxlYXZlRGVsYT8uMTpfcHJvcHMkbW91c2VMZWF2ZURlbGEsZm9jdXNEZWxheT1wcm9wcy5mb2N1c0RlbGF5LGJsdXJEZWxheT1wcm9wcy5ibHVyRGVsYXksbWFzaz1wcm9wcy5tYXNrLF9wcm9wcyRtYXNrQ2xvc2FibGU9cHJvcHMubWFza0Nsb3NhYmxlLGdldFBvcHVwQ29udGFpbmVyPXByb3BzLmdldFBvcHVwQ29udGFpbmVyLGZvcmNlUmVuZGVyPXByb3BzLmZvcmNlUmVuZGVyLGF1dG9EZXN0cm95PXByb3BzLmF1dG9EZXN0cm95LGRlc3Ryb3lQb3B1cE9uSGlkZT1wcm9wcy5kZXN0cm95UG9wdXBPbkhpZGUscG9wdXA9cHJvcHMucG9wdXAscG9wdXBDbGFzc05hbWU9cHJvcHMucG9wdXBDbGFzc05hbWUscG9wdXBTdHlsZT1wcm9wcy5wb3B1cFN0eWxlLHBvcHVwUGxhY2VtZW50PXByb3BzLnBvcHVwUGxhY2VtZW50LF9wcm9wcyRidWlsdGluUGxhY2VtZT1wcm9wcy5idWlsdGluUGxhY2VtZW50cyxidWlsdGluUGxhY2VtZW50cz12b2lkIDA9PT1fcHJvcHMkYnVpbHRpblBsYWNlbWU/e306X3Byb3BzJGJ1aWx0aW5QbGFjZW1lLHBvcHVwQWxpZ249cHJvcHMucG9wdXBBbGlnbix6SW5kZXg9cHJvcHMuekluZGV4LHN0cmV0Y2g9cHJvcHMuc3RyZXRjaCxnZXRQb3B1cENsYXNzTmFtZUZyb21BbGlnbj1wcm9wcy5nZXRQb3B1cENsYXNzTmFtZUZyb21BbGlnbixmcmVzaD1wcm9wcy5mcmVzaCxhbGlnblBvaW50PXByb3BzLmFsaWduUG9pbnQsb25Qb3B1cENsaWNrPXByb3BzLm9uUG9wdXBDbGljayxvblBvcHVwQWxpZ249cHJvcHMub25Qb3B1cEFsaWduLGFycm93PXByb3BzLmFycm93LHBvcHVwTW90aW9uPXByb3BzLnBvcHVwTW90aW9uLG1hc2tNb3Rpb249cHJvcHMubWFza01vdGlvbixwb3B1cFRyYW5zaXRpb25OYW1lPXByb3BzLnBvcHVwVHJhbnNpdGlvbk5hbWUscG9wdXBBbmltYXRpb249cHJvcHMucG9wdXBBbmltYXRpb24sbWFza1RyYW5zaXRpb25OYW1lPXByb3BzLm1hc2tUcmFuc2l0aW9uTmFtZSxtYXNrQW5pbWF0aW9uPXByb3BzLm1hc2tBbmltYXRpb24sY2xhc3NOYW1lPXByb3BzLmNsYXNzTmFtZSxnZXRUcmlnZ2VyRE9NTm9kZT1wcm9wcy5nZXRUcmlnZ2VyRE9NTm9kZSxyZXN0UHJvcHM9KDAsb2JqZWN0V2l0aG91dFByb3BlcnRpZXMuWikocHJvcHMsX2V4Y2x1ZGVkKSxfUmVhY3QkdXNlU3RhdGUxPXJlYWN0LnVzZVN0YXRlKCExKSxfUmVhY3QkdXNlU3RhdGUyMT0oMCxzbGljZWRUb0FycmF5LlopKF9SZWFjdCR1c2VTdGF0ZTEsMiksbW9iaWxlPV9SZWFjdCR1c2VTdGF0ZTIxWzBdLHNldE1vYmlsZT1fUmVhY3QkdXNlU3RhdGUyMVsxXTsoMCx1c2VMYXlvdXRFZmZlY3QuWikoZnVuY3Rpb24oKXtzZXRNb2JpbGUoKDAsaXNNb2JpbGUuWikoKSl9LFtdKTt2YXIgc3ViUG9wdXBFbGVtZW50cz1yZWFjdC51c2VSZWYoe30pLHBhcmVudENvbnRleHQ9cmVhY3QudXNlQ29udGV4dChUcmlnZ2VyQ29udGV4dCksY29udGV4dD1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJue3JlZ2lzdGVyU3ViUG9wdXA6ZnVuY3Rpb24oaWQsc3ViUG9wdXBFbGUpe3N1YlBvcHVwRWxlbWVudHMuY3VycmVudFtpZF09c3ViUG9wdXBFbGUsbnVsbD09cGFyZW50Q29udGV4dHx8cGFyZW50Q29udGV4dC5yZWdpc3RlclN1YlBvcHVwKGlkLHN1YlBvcHVwRWxlKX19fSxbcGFyZW50Q29udGV4dF0pLGlkPSgwLHVzZUlkLlopKCksX1JlYWN0JHVzZVN0YXRlMz1yZWFjdC51c2VTdGF0ZShudWxsKSxfUmVhY3QkdXNlU3RhdGU0PSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlMywyKSxwb3B1cEVsZT1fUmVhY3QkdXNlU3RhdGU0WzBdLHNldFBvcHVwRWxlPV9SZWFjdCR1c2VTdGF0ZTRbMV0sZXh0ZXJuYWxQb3B1cFJlZj1yZWFjdC51c2VSZWYobnVsbCksc2V0UG9wdXBSZWY9KDAsdXNlRXZlbnQuWikoZnVuY3Rpb24obm9kZSl7ZXh0ZXJuYWxQb3B1cFJlZi5jdXJyZW50PW5vZGUsKDAsZmluZERPTU5vZGUuU2gpKG5vZGUpJiZwb3B1cEVsZSE9PW5vZGUmJnNldFBvcHVwRWxlKG5vZGUpLG51bGw9PXBhcmVudENvbnRleHR8fHBhcmVudENvbnRleHQucmVnaXN0ZXJTdWJQb3B1cChpZCxub2RlKX0pLF9SZWFjdCR1c2VTdGF0ZTU9cmVhY3QudXNlU3RhdGUobnVsbCksX1JlYWN0JHVzZVN0YXRlNj0oMCxzbGljZWRUb0FycmF5LlopKF9SZWFjdCR1c2VTdGF0ZTUsMiksdGFyZ2V0RWxlPV9SZWFjdCR1c2VTdGF0ZTZbMF0sc2V0VGFyZ2V0RWxlPV9SZWFjdCR1c2VTdGF0ZTZbMV0sZXh0ZXJuYWxGb3J3YXJkUmVmPXJlYWN0LnVzZVJlZihudWxsKSxzZXRUYXJnZXRSZWY9KDAsdXNlRXZlbnQuWikoZnVuY3Rpb24obm9kZSl7KDAsZmluZERPTU5vZGUuU2gpKG5vZGUpJiZ0YXJnZXRFbGUhPT1ub2RlJiYoc2V0VGFyZ2V0RWxlKG5vZGUpLGV4dGVybmFsRm9yd2FyZFJlZi5jdXJyZW50PW5vZGUpfSksY2hpbGQ9cmVhY3QuQ2hpbGRyZW4ub25seShjaGlsZHJlbiksb3JpZ2luQ2hpbGRQcm9wcz0obnVsbD09Y2hpbGQ/dm9pZCAwOmNoaWxkLnByb3BzKXx8e30sY2xvbmVQcm9wcz17fSxpblBvcHVwT3JDaGlsZD0oMCx1c2VFdmVudC5aKShmdW5jdGlvbihlbGUpe3ZhciBfZ2V0U2hhZG93Um9vdCxfZ2V0U2hhZG93Um9vdDI7cmV0dXJuKG51bGw9PXRhcmdldEVsZT92b2lkIDA6dGFyZ2V0RWxlLmNvbnRhaW5zKGVsZSkpfHwobnVsbD09PShfZ2V0U2hhZG93Um9vdD0oMCxzaGFkb3cuQSkodGFyZ2V0RWxlKSl8fHZvaWQgMD09PV9nZXRTaGFkb3dSb290P3ZvaWQgMDpfZ2V0U2hhZG93Um9vdC5ob3N0KT09PWVsZXx8ZWxlPT09dGFyZ2V0RWxlfHwobnVsbD09cG9wdXBFbGU/dm9pZCAwOnBvcHVwRWxlLmNvbnRhaW5zKGVsZSkpfHwobnVsbD09PShfZ2V0U2hhZG93Um9vdDI9KDAsc2hhZG93LkEpKHBvcHVwRWxlKSl8fHZvaWQgMD09PV9nZXRTaGFkb3dSb290Mj92b2lkIDA6X2dldFNoYWRvd1Jvb3QyLmhvc3QpPT09ZWxlfHxlbGU9PT1wb3B1cEVsZXx8T2JqZWN0LnZhbHVlcyhzdWJQb3B1cEVsZW1lbnRzLmN1cnJlbnQpLnNvbWUoZnVuY3Rpb24oc3ViUG9wdXBFbGUpe3JldHVybihudWxsPT1zdWJQb3B1cEVsZT92b2lkIDA6c3ViUG9wdXBFbGUuY29udGFpbnMoZWxlKSl8fGVsZT09PXN1YlBvcHVwRWxlfSl9KSxtZXJnZVBvcHVwTW90aW9uPWdldE1vdGlvbihwcmVmaXhDbHMscG9wdXBNb3Rpb24scG9wdXBBbmltYXRpb24scG9wdXBUcmFuc2l0aW9uTmFtZSksbWVyZ2VNYXNrTW90aW9uPWdldE1vdGlvbihwcmVmaXhDbHMsbWFza01vdGlvbixtYXNrQW5pbWF0aW9uLG1hc2tUcmFuc2l0aW9uTmFtZSksX1JlYWN0JHVzZVN0YXRlNz1yZWFjdC51c2VTdGF0ZShkZWZhdWx0UG9wdXBWaXNpYmxlfHwhMSksX1JlYWN0JHVzZVN0YXRlOD0oMCxzbGljZWRUb0FycmF5LlopKF9SZWFjdCR1c2VTdGF0ZTcsMiksaW50ZXJuYWxPcGVuPV9SZWFjdCR1c2VTdGF0ZThbMF0sc2V0SW50ZXJuYWxPcGVuPV9SZWFjdCR1c2VTdGF0ZThbMV0sbWVyZ2VkT3Blbj1udWxsIT1wb3B1cFZpc2libGU/cG9wdXBWaXNpYmxlOmludGVybmFsT3BlbixzZXRNZXJnZWRPcGVuPSgwLHVzZUV2ZW50LlopKGZ1bmN0aW9uKG5leHRPcGVuKXt2b2lkIDA9PT1wb3B1cFZpc2libGUmJnNldEludGVybmFsT3BlbihuZXh0T3Blbil9KTsoMCx1c2VMYXlvdXRFZmZlY3QuWikoZnVuY3Rpb24oKXtzZXRJbnRlcm5hbE9wZW4ocG9wdXBWaXNpYmxlfHwhMSl9LFtwb3B1cFZpc2libGVdKTt2YXIgb3BlblJlZjE9cmVhY3QudXNlUmVmKG1lcmdlZE9wZW4pO29wZW5SZWYxLmN1cnJlbnQ9bWVyZ2VkT3Blbjt2YXIgbGFzdFRyaWdnZXJSZWY9cmVhY3QudXNlUmVmKFtdKTtsYXN0VHJpZ2dlclJlZi5jdXJyZW50PVtdO3ZhciBpbnRlcm5hbFRyaWdnZXJPcGVuPSgwLHVzZUV2ZW50LlopKGZ1bmN0aW9uKG5leHRPcGVuKXt2YXIgX2xhc3RUcmlnZ2VyUmVmJGN1cnJlO3NldE1lcmdlZE9wZW4obmV4dE9wZW4pLChudWxsIT09KF9sYXN0VHJpZ2dlclJlZiRjdXJyZT1sYXN0VHJpZ2dlclJlZi5jdXJyZW50W2xhc3RUcmlnZ2VyUmVmLmN1cnJlbnQubGVuZ3RoLTFdKSYmdm9pZCAwIT09X2xhc3RUcmlnZ2VyUmVmJGN1cnJlP19sYXN0VHJpZ2dlclJlZiRjdXJyZTptZXJnZWRPcGVuKSE9PW5leHRPcGVuJiYobGFzdFRyaWdnZXJSZWYuY3VycmVudC5wdXNoKG5leHRPcGVuKSxudWxsPT1vblBvcHVwVmlzaWJsZUNoYW5nZXx8b25Qb3B1cFZpc2libGVDaGFuZ2UobmV4dE9wZW4pKX0pLGRlbGF5UmVmPXJlYWN0LnVzZVJlZigpLGNsZWFyRGVsYXk9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoZGVsYXlSZWYuY3VycmVudCl9LHRyaWdnZXJPcGVuPWZ1bmN0aW9uKG5leHRPcGVuKXt2YXIgZGVsYXk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjA7Y2xlYXJEZWxheSgpLDA9PT1kZWxheT9pbnRlcm5hbFRyaWdnZXJPcGVuKG5leHRPcGVuKTpkZWxheVJlZi5jdXJyZW50PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpbnRlcm5hbFRyaWdnZXJPcGVuKG5leHRPcGVuKX0sMWUzKmRlbGF5KX07cmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIGNsZWFyRGVsYXl9LFtdKTt2YXIgX1JlYWN0JHVzZVN0YXRlOT1yZWFjdC51c2VTdGF0ZSghMSksX1JlYWN0JHVzZVN0YXRlMTA9KDAsc2xpY2VkVG9BcnJheS5aKShfUmVhY3QkdXNlU3RhdGU5LDIpLGluTW90aW9uPV9SZWFjdCR1c2VTdGF0ZTEwWzBdLHNldEluTW90aW9uPV9SZWFjdCR1c2VTdGF0ZTEwWzFdOygwLHVzZUxheW91dEVmZmVjdC5aKShmdW5jdGlvbihmaXJzdE1vdW50KXsoIWZpcnN0TW91bnR8fG1lcmdlZE9wZW4pJiZzZXRJbk1vdGlvbighMCl9LFttZXJnZWRPcGVuXSk7dmFyIF9SZWFjdCR1c2VTdGF0ZTExPXJlYWN0LnVzZVN0YXRlKG51bGwpLF9SZWFjdCR1c2VTdGF0ZTEyPSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlMTEsMiksbW90aW9uUHJlcGFyZVJlc29sdmU9X1JlYWN0JHVzZVN0YXRlMTJbMF0sc2V0TW90aW9uUHJlcGFyZVJlc29sdmU9X1JlYWN0JHVzZVN0YXRlMTJbMV0sX1JlYWN0JHVzZVN0YXRlMTM9cmVhY3QudXNlU3RhdGUobnVsbCksX1JlYWN0JHVzZVN0YXRlMTQ9KDAsc2xpY2VkVG9BcnJheS5aKShfUmVhY3QkdXNlU3RhdGUxMywyKSxtb3VzZVBvcz1fUmVhY3QkdXNlU3RhdGUxNFswXSxzZXRNb3VzZVBvcz1fUmVhY3QkdXNlU3RhdGUxNFsxXSxzZXRNb3VzZVBvc0J5RXZlbnQ9ZnVuY3Rpb24oZXZlbnQpe3NldE1vdXNlUG9zKFtldmVudC5jbGllbnRYLGV2ZW50LmNsaWVudFldKX0sX3VzZUFsaWduPSh0YXJnZXQ9YWxpZ25Qb2ludCYmbnVsbCE9PW1vdXNlUG9zP21vdXNlUG9zOnRhcmdldEVsZSxfUmVhY3QkdXNlU3RhdGU9cmVhY3QudXNlU3RhdGUoe3JlYWR5OiExLG9mZnNldFg6MCxvZmZzZXRZOjAsb2Zmc2V0UjowLG9mZnNldEI6MCxhcnJvd1g6MCxhcnJvd1k6MCxzY2FsZVg6MSxzY2FsZVk6MSxhbGlnbjpidWlsdGluUGxhY2VtZW50c1twb3B1cFBsYWNlbWVudF18fHt9fSksb2Zmc2V0SW5mbz0oX1JlYWN0JHVzZVN0YXRlMj0oMCxzbGljZWRUb0FycmF5LlopKF9SZWFjdCR1c2VTdGF0ZSwyKSlbMF0sc2V0T2Zmc2V0SW5mbz1fUmVhY3QkdXNlU3RhdGUyWzFdLGFsaWduQ291bnRSZWY9cmVhY3QudXNlUmVmKDApLHNjcm9sbGVyTGlzdD1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIHBvcHVwRWxlP2NvbGxlY3RTY3JvbGxlcihwb3B1cEVsZSk6W119LFtwb3B1cEVsZV0pLHByZXZGbGlwUmVmPXJlYWN0LnVzZVJlZih7fSksbWVyZ2VkT3Blbnx8KHByZXZGbGlwUmVmLmN1cnJlbnQ9e30pLG9uQWxpZ249KDAsdXNlRXZlbnQuWikoZnVuY3Rpb24oKXtpZihwb3B1cEVsZSYmdGFyZ2V0JiZtZXJnZWRPcGVuKXt2YXIgbmV4dFBvcHVwWSxuZXh0UG9wdXBCb3R0b20sbmV4dFBvcHVwWCxuZXh0UG9wdXBSaWdodCxwb3B1cEVsZW1lbnQ9cG9wdXBFbGUsZG9jPXBvcHVwRWxlbWVudC5vd25lckRvY3VtZW50LF93aW4kZ2V0Q29tcHV0ZWRTdHlsZT1nZXRXaW4ocG9wdXBFbGVtZW50KS5nZXRDb21wdXRlZFN0eWxlKHBvcHVwRWxlbWVudCksd2lkdGg9X3dpbiRnZXRDb21wdXRlZFN0eWxlLndpZHRoLGhlaWdodD1fd2luJGdldENvbXB1dGVkU3R5bGUuaGVpZ2h0LHBvcHVwUG9zaXRpb249X3dpbiRnZXRDb21wdXRlZFN0eWxlLnBvc2l0aW9uLG9yaWdpbkxlZnQ9cG9wdXBFbGVtZW50LnN0eWxlLmxlZnQsb3JpZ2luVG9wPXBvcHVwRWxlbWVudC5zdHlsZS50b3Asb3JpZ2luUmlnaHQ9cG9wdXBFbGVtZW50LnN0eWxlLnJpZ2h0LG9yaWdpbkJvdHRvbT1wb3B1cEVsZW1lbnQuc3R5bGUuYm90dG9tLG9yaWdpbk92ZXJmbG93PXBvcHVwRWxlbWVudC5zdHlsZS5vdmVyZmxvdyxwbGFjZW1lbnRJbmZvPSgwLG9iamVjdFNwcmVhZDIuWikoKDAsb2JqZWN0U3ByZWFkMi5aKSh7fSxidWlsdGluUGxhY2VtZW50c1twb3B1cFBsYWNlbWVudF0pLHBvcHVwQWxpZ24pLHBsYWNlaG9sZGVyRWxlbWVudD1kb2MuY3JlYXRlRWxlbWVudCgiZGl2Iik7aWYobnVsbD09PShfcG9wdXBFbGVtZW50JHBhcmVudEU9cG9wdXBFbGVtZW50LnBhcmVudEVsZW1lbnQpfHx2b2lkIDA9PT1fcG9wdXBFbGVtZW50JHBhcmVudEV8fF9wb3B1cEVsZW1lbnQkcGFyZW50RS5hcHBlbmRDaGlsZChwbGFjZWhvbGRlckVsZW1lbnQpLHBsYWNlaG9sZGVyRWxlbWVudC5zdHlsZS5sZWZ0PSIiLmNvbmNhdChwb3B1cEVsZW1lbnQub2Zmc2V0TGVmdCwicHgiKSxwbGFjZWhvbGRlckVsZW1lbnQuc3R5bGUudG9wPSIiLmNvbmNhdChwb3B1cEVsZW1lbnQub2Zmc2V0VG9wLCJweCIpLHBsYWNlaG9sZGVyRWxlbWVudC5zdHlsZS5wb3NpdGlvbj1wb3B1cFBvc2l0aW9uLHBsYWNlaG9sZGVyRWxlbWVudC5zdHlsZS5oZWlnaHQ9IiIuY29uY2F0KHBvcHVwRWxlbWVudC5vZmZzZXRIZWlnaHQsInB4IikscGxhY2Vob2xkZXJFbGVtZW50LnN0eWxlLndpZHRoPSIiLmNvbmNhdChwb3B1cEVsZW1lbnQub2Zmc2V0V2lkdGgsInB4IikscG9wdXBFbGVtZW50LnN0eWxlLmxlZnQ9IjAiLHBvcHVwRWxlbWVudC5zdHlsZS50b3A9IjAiLHBvcHVwRWxlbWVudC5zdHlsZS5yaWdodD0iYXV0byIscG9wdXBFbGVtZW50LnN0eWxlLmJvdHRvbT0iYXV0byIscG9wdXBFbGVtZW50LnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iLEFycmF5LmlzQXJyYXkodGFyZ2V0KSl0YXJnZXRSZWN0PXt4OnRhcmdldFswXSx5OnRhcmdldFsxXSx3aWR0aDowLGhlaWdodDowfTtlbHNle3ZhciBfcG9wdXBFbGVtZW50JHBhcmVudEUsX3BvcHVwUmVjdCR4LF9wb3B1cFJlY3QkeSxfcG9wdXBFbGVtZW50JHBhcmVudEUyLHRhcmdldFJlY3QsX3JlY3QkeCxfcmVjdCR5LHJlY3Q9dGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JlY3QueD1udWxsIT09KF9yZWN0JHg9cmVjdC54KSYmdm9pZCAwIT09X3JlY3QkeD9fcmVjdCR4OnJlY3QubGVmdCxyZWN0Lnk9bnVsbCE9PShfcmVjdCR5PXJlY3QueSkmJnZvaWQgMCE9PV9yZWN0JHk/X3JlY3QkeTpyZWN0LnRvcCx0YXJnZXRSZWN0PXt4OnJlY3QueCx5OnJlY3QueSx3aWR0aDpyZWN0LndpZHRoLGhlaWdodDpyZWN0LmhlaWdodH19dmFyIHBvcHVwUmVjdD1wb3B1cEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cG9wdXBSZWN0Lng9bnVsbCE9PShfcG9wdXBSZWN0JHg9cG9wdXBSZWN0LngpJiZ2b2lkIDAhPT1fcG9wdXBSZWN0JHg/X3BvcHVwUmVjdCR4OnBvcHVwUmVjdC5sZWZ0LHBvcHVwUmVjdC55PW51bGwhPT0oX3BvcHVwUmVjdCR5PXBvcHVwUmVjdC55KSYmdm9pZCAwIT09X3BvcHVwUmVjdCR5P19wb3B1cFJlY3QkeTpwb3B1cFJlY3QudG9wO3ZhciBfZG9jJGRvY3VtZW50RWxlbWVudD1kb2MuZG9jdW1lbnRFbGVtZW50LGNsaWVudFdpZHRoPV9kb2MkZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLGNsaWVudEhlaWdodD1fZG9jJGRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQsc2Nyb2xsV2lkdGg9X2RvYyRkb2N1bWVudEVsZW1lbnQuc2Nyb2xsV2lkdGgsc2Nyb2xsSGVpZ2h0PV9kb2MkZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCxzY3JvbGxUb3A9X2RvYyRkb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wLHNjcm9sbExlZnQ9X2RvYyRkb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCxwb3B1cEhlaWdodD1wb3B1cFJlY3QuaGVpZ2h0LHBvcHVwV2lkdGg9cG9wdXBSZWN0LndpZHRoLHRhcmdldEhlaWdodD10YXJnZXRSZWN0LmhlaWdodCx0YXJnZXRXaWR0aD10YXJnZXRSZWN0LndpZHRoLGh0bWxSZWdpb249cGxhY2VtZW50SW5mby5odG1sUmVnaW9uLFZJU0lCTEU9InZpc2libGUiLFZJU0lCTEVfRklSU1Q9InZpc2libGVGaXJzdCI7InNjcm9sbCIhPT1odG1sUmVnaW9uJiZodG1sUmVnaW9uIT09VklTSUJMRV9GSVJTVCYmKGh0bWxSZWdpb249VklTSUJMRSk7dmFyIGlzVmlzaWJsZUZpcnN0PWh0bWxSZWdpb249PT1WSVNJQkxFX0ZJUlNULHNjcm9sbFJlZ2lvbkFyZWE9Z2V0VmlzaWJsZUFyZWEoe2xlZnQ6LXNjcm9sbExlZnQsdG9wOi1zY3JvbGxUb3AscmlnaHQ6c2Nyb2xsV2lkdGgtc2Nyb2xsTGVmdCxib3R0b206c2Nyb2xsSGVpZ2h0LXNjcm9sbFRvcH0sc2Nyb2xsZXJMaXN0KSx2aXNpYmxlUmVnaW9uQXJlYT1nZXRWaXNpYmxlQXJlYSh7bGVmdDowLHRvcDowLHJpZ2h0OmNsaWVudFdpZHRoLGJvdHRvbTpjbGllbnRIZWlnaHR9LHNjcm9sbGVyTGlzdCksdmlzaWJsZUFyZWE9aHRtbFJlZ2lvbj09PVZJU0lCTEU/dmlzaWJsZVJlZ2lvbkFyZWE6c2Nyb2xsUmVnaW9uQXJlYSxhZGp1c3RDaGVja1Zpc2libGVBcmVhPWlzVmlzaWJsZUZpcnN0P3Zpc2libGVSZWdpb25BcmVhOnZpc2libGVBcmVhO3BvcHVwRWxlbWVudC5zdHlsZS5sZWZ0PSJhdXRvIixwb3B1cEVsZW1lbnQuc3R5bGUudG9wPSJhdXRvIixwb3B1cEVsZW1lbnQuc3R5bGUucmlnaHQ9IjAiLHBvcHVwRWxlbWVudC5zdHlsZS5ib3R0b209IjAiO3ZhciBwb3B1cE1pcnJvclJlY3Q9cG9wdXBFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3BvcHVwRWxlbWVudC5zdHlsZS5sZWZ0PW9yaWdpbkxlZnQscG9wdXBFbGVtZW50LnN0eWxlLnRvcD1vcmlnaW5Ub3AscG9wdXBFbGVtZW50LnN0eWxlLnJpZ2h0PW9yaWdpblJpZ2h0LHBvcHVwRWxlbWVudC5zdHlsZS5ib3R0b209b3JpZ2luQm90dG9tLHBvcHVwRWxlbWVudC5zdHlsZS5vdmVyZmxvdz1vcmlnaW5PdmVyZmxvdyxudWxsPT09KF9wb3B1cEVsZW1lbnQkcGFyZW50RTI9cG9wdXBFbGVtZW50LnBhcmVudEVsZW1lbnQpfHx2b2lkIDA9PT1fcG9wdXBFbGVtZW50JHBhcmVudEUyfHxfcG9wdXBFbGVtZW50JHBhcmVudEUyLnJlbW92ZUNoaWxkKHBsYWNlaG9sZGVyRWxlbWVudCk7dmFyIF9zY2FsZVg9dG9OdW0oTWF0aC5yb3VuZChwb3B1cFdpZHRoL3BhcnNlRmxvYXQod2lkdGgpKjFlMykvMWUzKSxfc2NhbGVZPXRvTnVtKE1hdGgucm91bmQocG9wdXBIZWlnaHQvcGFyc2VGbG9hdChoZWlnaHQpKjFlMykvMWUzKTtpZighKDA9PT1fc2NhbGVYfHwwPT09X3NjYWxlWXx8KDAsZmluZERPTU5vZGUuU2gpKHRhcmdldCkmJiEoMCxpc1Zpc2libGUuWikodGFyZ2V0KSkpe3ZhciBvZmZzZXQ9cGxhY2VtZW50SW5mby5vZmZzZXQsdGFyZ2V0T2Zmc2V0PXBsYWNlbWVudEluZm8udGFyZ2V0T2Zmc2V0LF9nZXROdW1iZXJPZmZzZXQ9Z2V0TnVtYmVyT2Zmc2V0KHBvcHVwUmVjdCxvZmZzZXQpLF9nZXROdW1iZXJPZmZzZXQyPSgwLHNsaWNlZFRvQXJyYXkuWikoX2dldE51bWJlck9mZnNldCwyKSxwb3B1cE9mZnNldFg9X2dldE51bWJlck9mZnNldDJbMF0scG9wdXBPZmZzZXRZPV9nZXROdW1iZXJPZmZzZXQyWzFdLF9nZXROdW1iZXJPZmZzZXQzPWdldE51bWJlck9mZnNldCh0YXJnZXRSZWN0LHRhcmdldE9mZnNldCksX2dldE51bWJlck9mZnNldDQ9KDAsc2xpY2VkVG9BcnJheS5aKShfZ2V0TnVtYmVyT2Zmc2V0MywyKSx0YXJnZXRPZmZzZXRYPV9nZXROdW1iZXJPZmZzZXQ0WzBdLHRhcmdldE9mZnNldFk9X2dldE51bWJlck9mZnNldDRbMV07dGFyZ2V0UmVjdC54LT10YXJnZXRPZmZzZXRYLHRhcmdldFJlY3QueS09dGFyZ2V0T2Zmc2V0WTt2YXIgX3JlZjM9cGxhY2VtZW50SW5mby5wb2ludHN8fFtdLF9yZWY0PSgwLHNsaWNlZFRvQXJyYXkuWikoX3JlZjMsMikscG9wdXBQb2ludD1fcmVmNFswXSx0YXJnZXRQb2ludHM9c3BsaXRQb2ludHMoX3JlZjRbMV0pLHBvcHVwUG9pbnRzPXNwbGl0UG9pbnRzKHBvcHVwUG9pbnQpLHRhcmdldEFsaWduUG9pbnQ9Z2V0QWxpZ25Qb2ludCh0YXJnZXRSZWN0LHRhcmdldFBvaW50cykscG9wdXBBbGlnblBvaW50PWdldEFsaWduUG9pbnQocG9wdXBSZWN0LHBvcHVwUG9pbnRzKSxuZXh0QWxpZ25JbmZvPSgwLG9iamVjdFNwcmVhZDIuWikoe30scGxhY2VtZW50SW5mbyksbmV4dE9mZnNldFg9dGFyZ2V0QWxpZ25Qb2ludC54LXBvcHVwQWxpZ25Qb2ludC54K3BvcHVwT2Zmc2V0WCxuZXh0T2Zmc2V0WT10YXJnZXRBbGlnblBvaW50LnktcG9wdXBBbGlnblBvaW50LnkrcG9wdXBPZmZzZXRZLG9yaWdpbkludGVyc2VjdGlvblZpc2libGVBcmVhPWdldEludGVyc2VjdGlvblZpc2libGVBcmVhKG5leHRPZmZzZXRYLG5leHRPZmZzZXRZKSxvcmlnaW5JbnRlcnNlY3Rpb25SZWNvbW1lbmRBcmVhPWdldEludGVyc2VjdGlvblZpc2libGVBcmVhKG5leHRPZmZzZXRYLG5leHRPZmZzZXRZLHZpc2libGVSZWdpb25BcmVhKSx0YXJnZXRBbGlnblBvaW50VEw9Z2V0QWxpZ25Qb2ludCh0YXJnZXRSZWN0LFsidCIsImwiXSkscG9wdXBBbGlnblBvaW50VEw9Z2V0QWxpZ25Qb2ludChwb3B1cFJlY3QsWyJ0IiwibCJdKSx0YXJnZXRBbGlnblBvaW50QlI9Z2V0QWxpZ25Qb2ludCh0YXJnZXRSZWN0LFsiYiIsInIiXSkscG9wdXBBbGlnblBvaW50QlI9Z2V0QWxpZ25Qb2ludChwb3B1cFJlY3QsWyJiIiwiciJdKSxvdmVyZmxvdz1wbGFjZW1lbnRJbmZvLm92ZXJmbG93fHx7fSxhZGp1c3RYPW92ZXJmbG93LmFkanVzdFgsYWRqdXN0WT1vdmVyZmxvdy5hZGp1c3RZLHNoaWZ0WD1vdmVyZmxvdy5zaGlmdFgsc2hpZnRZPW92ZXJmbG93LnNoaWZ0WSxzdXBwb3J0QWRqdXN0PWZ1bmN0aW9uKHZhbCl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdmFsP3ZhbDp2YWw+PTB9O3N5bmNOZXh0UG9wdXBQb3NpdGlvbigpO3ZhciBuZWVkQWRqdXN0WT1zdXBwb3J0QWRqdXN0KGFkanVzdFkpLHNhbWVUQj1wb3B1cFBvaW50c1swXT09PXRhcmdldFBvaW50c1swXTtpZihuZWVkQWRqdXN0WSYmInQiPT09cG9wdXBQb2ludHNbMF0mJihuZXh0UG9wdXBCb3R0b20+YWRqdXN0Q2hlY2tWaXNpYmxlQXJlYS5ib3R0b218fHByZXZGbGlwUmVmLmN1cnJlbnQuYnQpKXt2YXIgdG1wTmV4dE9mZnNldFk9bmV4dE9mZnNldFk7c2FtZVRCP3RtcE5leHRPZmZzZXRZLT1wb3B1cEhlaWdodC10YXJnZXRIZWlnaHQ6dG1wTmV4dE9mZnNldFk9dGFyZ2V0QWxpZ25Qb2ludFRMLnktcG9wdXBBbGlnblBvaW50QlIueS1wb3B1cE9mZnNldFk7dmFyIG5ld1Zpc2libGVBcmVhPWdldEludGVyc2VjdGlvblZpc2libGVBcmVhKG5leHRPZmZzZXRYLHRtcE5leHRPZmZzZXRZKSxuZXdWaXNpYmxlUmVjb21tZW5kQXJlYT1nZXRJbnRlcnNlY3Rpb25WaXNpYmxlQXJlYShuZXh0T2Zmc2V0WCx0bXBOZXh0T2Zmc2V0WSx2aXNpYmxlUmVnaW9uQXJlYSk7bmV3VmlzaWJsZUFyZWE+b3JpZ2luSW50ZXJzZWN0aW9uVmlzaWJsZUFyZWF8fG5ld1Zpc2libGVBcmVhPT09b3JpZ2luSW50ZXJzZWN0aW9uVmlzaWJsZUFyZWEmJighaXNWaXNpYmxlRmlyc3R8fG5ld1Zpc2libGVSZWNvbW1lbmRBcmVhPj1vcmlnaW5JbnRlcnNlY3Rpb25SZWNvbW1lbmRBcmVhKT8ocHJldkZsaXBSZWYuY3VycmVudC5idD0hMCxuZXh0T2Zmc2V0WT10bXBOZXh0T2Zmc2V0WSxwb3B1cE9mZnNldFk9LXBvcHVwT2Zmc2V0WSxuZXh0QWxpZ25JbmZvLnBvaW50cz1bcmV2ZXJzZVBvaW50cyhwb3B1cFBvaW50cywwKSxyZXZlcnNlUG9pbnRzKHRhcmdldFBvaW50cywwKV0pOnByZXZGbGlwUmVmLmN1cnJlbnQuYnQ9ITF9aWYobmVlZEFkanVzdFkmJiJiIj09PXBvcHVwUG9pbnRzWzBdJiYobmV4dFBvcHVwWTxhZGp1c3RDaGVja1Zpc2libGVBcmVhLnRvcHx8cHJldkZsaXBSZWYuY3VycmVudC50Yikpe3ZhciBfdG1wTmV4dE9mZnNldFk9bmV4dE9mZnNldFk7c2FtZVRCP190bXBOZXh0T2Zmc2V0WSs9cG9wdXBIZWlnaHQtdGFyZ2V0SGVpZ2h0Ol90bXBOZXh0T2Zmc2V0WT10YXJnZXRBbGlnblBvaW50QlIueS1wb3B1cEFsaWduUG9pbnRUTC55LXBvcHVwT2Zmc2V0WTt2YXIgX25ld1Zpc2libGVBcmVhPWdldEludGVyc2VjdGlvblZpc2libGVBcmVhKG5leHRPZmZzZXRYLF90bXBOZXh0T2Zmc2V0WSksX25ld1Zpc2libGVSZWNvbW1lbmRBcmVhPWdldEludGVyc2VjdGlvblZpc2libGVBcmVhKG5leHRPZmZzZXRYLF90bXBOZXh0T2Zmc2V0WSx2aXNpYmxlUmVnaW9uQXJlYSk7X25ld1Zpc2libGVBcmVhPm9yaWdpbkludGVyc2VjdGlvblZpc2libGVBcmVhfHxfbmV3VmlzaWJsZUFyZWE9PT1vcmlnaW5JbnRlcnNlY3Rpb25WaXNpYmxlQXJlYSYmKCFpc1Zpc2libGVGaXJzdHx8X25ld1Zpc2libGVSZWNvbW1lbmRBcmVhPj1vcmlnaW5JbnRlcnNlY3Rpb25SZWNvbW1lbmRBcmVhKT8ocHJldkZsaXBSZWYuY3VycmVudC50Yj0hMCxuZXh0T2Zmc2V0WT1fdG1wTmV4dE9mZnNldFkscG9wdXBPZmZzZXRZPS1wb3B1cE9mZnNldFksbmV4dEFsaWduSW5mby5wb2ludHM9W3JldmVyc2VQb2ludHMocG9wdXBQb2ludHMsMCkscmV2ZXJzZVBvaW50cyh0YXJnZXRQb2ludHMsMCldKTpwcmV2RmxpcFJlZi5jdXJyZW50LnRiPSExfXZhciBuZWVkQWRqdXN0WD1zdXBwb3J0QWRqdXN0KGFkanVzdFgpLHNhbWVMUj1wb3B1cFBvaW50c1sxXT09PXRhcmdldFBvaW50c1sxXTtpZihuZWVkQWRqdXN0WCYmImwiPT09cG9wdXBQb2ludHNbMV0mJihuZXh0UG9wdXBSaWdodD5hZGp1c3RDaGVja1Zpc2libGVBcmVhLnJpZ2h0fHxwcmV2RmxpcFJlZi5jdXJyZW50LnJsKSl7dmFyIHRtcE5leHRPZmZzZXRYPW5leHRPZmZzZXRYO3NhbWVMUj90bXBOZXh0T2Zmc2V0WC09cG9wdXBXaWR0aC10YXJnZXRXaWR0aDp0bXBOZXh0T2Zmc2V0WD10YXJnZXRBbGlnblBvaW50VEwueC1wb3B1cEFsaWduUG9pbnRCUi54LXBvcHVwT2Zmc2V0WDt2YXIgX25ld1Zpc2libGVBcmVhMj1nZXRJbnRlcnNlY3Rpb25WaXNpYmxlQXJlYSh0bXBOZXh0T2Zmc2V0WCxuZXh0T2Zmc2V0WSksX25ld1Zpc2libGVSZWNvbW1lbmRBcmVhMj1nZXRJbnRlcnNlY3Rpb25WaXNpYmxlQXJlYSh0bXBOZXh0T2Zmc2V0WCxuZXh0T2Zmc2V0WSx2aXNpYmxlUmVnaW9uQXJlYSk7X25ld1Zpc2libGVBcmVhMj5vcmlnaW5JbnRlcnNlY3Rpb25WaXNpYmxlQXJlYXx8X25ld1Zpc2libGVBcmVhMj09PW9yaWdpbkludGVyc2VjdGlvblZpc2libGVBcmVhJiYoIWlzVmlzaWJsZUZpcnN0fHxfbmV3VmlzaWJsZVJlY29tbWVuZEFyZWEyPj1vcmlnaW5JbnRlcnNlY3Rpb25SZWNvbW1lbmRBcmVhKT8ocHJldkZsaXBSZWYuY3VycmVudC5ybD0hMCxuZXh0T2Zmc2V0WD10bXBOZXh0T2Zmc2V0WCxwb3B1cE9mZnNldFg9LXBvcHVwT2Zmc2V0WCxuZXh0QWxpZ25JbmZvLnBvaW50cz1bcmV2ZXJzZVBvaW50cyhwb3B1cFBvaW50cywxKSxyZXZlcnNlUG9pbnRzKHRhcmdldFBvaW50cywxKV0pOnByZXZGbGlwUmVmLmN1cnJlbnQucmw9ITF9aWYobmVlZEFkanVzdFgmJiJyIj09PXBvcHVwUG9pbnRzWzFdJiYobmV4dFBvcHVwWDxhZGp1c3RDaGVja1Zpc2libGVBcmVhLmxlZnR8fHByZXZGbGlwUmVmLmN1cnJlbnQubHIpKXt2YXIgX3RtcE5leHRPZmZzZXRYPW5leHRPZmZzZXRYO3NhbWVMUj9fdG1wTmV4dE9mZnNldFgrPXBvcHVwV2lkdGgtdGFyZ2V0V2lkdGg6X3RtcE5leHRPZmZzZXRYPXRhcmdldEFsaWduUG9pbnRCUi54LXBvcHVwQWxpZ25Qb2ludFRMLngtcG9wdXBPZmZzZXRYO3ZhciBfbmV3VmlzaWJsZUFyZWEzPWdldEludGVyc2VjdGlvblZpc2libGVBcmVhKF90bXBOZXh0T2Zmc2V0WCxuZXh0T2Zmc2V0WSksX25ld1Zpc2libGVSZWNvbW1lbmRBcmVhMz1nZXRJbnRlcnNlY3Rpb25WaXNpYmxlQXJlYShfdG1wTmV4dE9mZnNldFgsbmV4dE9mZnNldFksdmlzaWJsZVJlZ2lvbkFyZWEpO19uZXdWaXNpYmxlQXJlYTM+b3JpZ2luSW50ZXJzZWN0aW9uVmlzaWJsZUFyZWF8fF9uZXdWaXNpYmxlQXJlYTM9PT1vcmlnaW5JbnRlcnNlY3Rpb25WaXNpYmxlQXJlYSYmKCFpc1Zpc2libGVGaXJzdHx8X25ld1Zpc2libGVSZWNvbW1lbmRBcmVhMz49b3JpZ2luSW50ZXJzZWN0aW9uUmVjb21tZW5kQXJlYSk/KHByZXZGbGlwUmVmLmN1cnJlbnQubHI9ITAsbmV4dE9mZnNldFg9X3RtcE5leHRPZmZzZXRYLHBvcHVwT2Zmc2V0WD0tcG9wdXBPZmZzZXRYLG5leHRBbGlnbkluZm8ucG9pbnRzPVtyZXZlcnNlUG9pbnRzKHBvcHVwUG9pbnRzLDEpLHJldmVyc2VQb2ludHModGFyZ2V0UG9pbnRzLDEpXSk6cHJldkZsaXBSZWYuY3VycmVudC5scj0hMX1zeW5jTmV4dFBvcHVwUG9zaXRpb24oKTt2YXIgbnVtU2hpZnRYPSEwPT09c2hpZnRYPzA6c2hpZnRYOyJudW1iZXIiPT10eXBlb2YgbnVtU2hpZnRYJiYobmV4dFBvcHVwWDx2aXNpYmxlUmVnaW9uQXJlYS5sZWZ0JiYobmV4dE9mZnNldFgtPW5leHRQb3B1cFgtdmlzaWJsZVJlZ2lvbkFyZWEubGVmdC1wb3B1cE9mZnNldFgsdGFyZ2V0UmVjdC54K3RhcmdldFdpZHRoPHZpc2libGVSZWdpb25BcmVhLmxlZnQrbnVtU2hpZnRYJiYobmV4dE9mZnNldFgrPXRhcmdldFJlY3QueC12aXNpYmxlUmVnaW9uQXJlYS5sZWZ0K3RhcmdldFdpZHRoLW51bVNoaWZ0WCkpLG5leHRQb3B1cFJpZ2h0PnZpc2libGVSZWdpb25BcmVhLnJpZ2h0JiYobmV4dE9mZnNldFgtPW5leHRQb3B1cFJpZ2h0LXZpc2libGVSZWdpb25BcmVhLnJpZ2h0LXBvcHVwT2Zmc2V0WCx0YXJnZXRSZWN0Lng+dmlzaWJsZVJlZ2lvbkFyZWEucmlnaHQtbnVtU2hpZnRYJiYobmV4dE9mZnNldFgrPXRhcmdldFJlY3QueC12aXNpYmxlUmVnaW9uQXJlYS5yaWdodCtudW1TaGlmdFgpKSk7dmFyIG51bVNoaWZ0WT0hMD09PXNoaWZ0WT8wOnNoaWZ0WTsibnVtYmVyIj09dHlwZW9mIG51bVNoaWZ0WSYmKG5leHRQb3B1cFk8dmlzaWJsZVJlZ2lvbkFyZWEudG9wJiYobmV4dE9mZnNldFktPW5leHRQb3B1cFktdmlzaWJsZVJlZ2lvbkFyZWEudG9wLXBvcHVwT2Zmc2V0WSx0YXJnZXRSZWN0LnkrdGFyZ2V0SGVpZ2h0PHZpc2libGVSZWdpb25BcmVhLnRvcCtudW1TaGlmdFkmJihuZXh0T2Zmc2V0WSs9dGFyZ2V0UmVjdC55LXZpc2libGVSZWdpb25BcmVhLnRvcCt0YXJnZXRIZWlnaHQtbnVtU2hpZnRZKSksbmV4dFBvcHVwQm90dG9tPnZpc2libGVSZWdpb25BcmVhLmJvdHRvbSYmKG5leHRPZmZzZXRZLT1uZXh0UG9wdXBCb3R0b20tdmlzaWJsZVJlZ2lvbkFyZWEuYm90dG9tLXBvcHVwT2Zmc2V0WSx0YXJnZXRSZWN0Lnk+dmlzaWJsZVJlZ2lvbkFyZWEuYm90dG9tLW51bVNoaWZ0WSYmKG5leHRPZmZzZXRZKz10YXJnZXRSZWN0LnktdmlzaWJsZVJlZ2lvbkFyZWEuYm90dG9tK251bVNoaWZ0WSkpKTt2YXIgcG9wdXBMZWZ0PXBvcHVwUmVjdC54K25leHRPZmZzZXRYLHBvcHVwVG9wPXBvcHVwUmVjdC55K25leHRPZmZzZXRZLHRhcmdldExlZnQ9dGFyZ2V0UmVjdC54LHRhcmdldFRvcD10YXJnZXRSZWN0Lnk7bnVsbD09b25Qb3B1cEFsaWdufHxvblBvcHVwQWxpZ24ocG9wdXBFbGUsbmV4dEFsaWduSW5mbyk7dmFyIG9mZnNldFg0UmlnaHQ9cG9wdXBNaXJyb3JSZWN0LnJpZ2h0LXBvcHVwUmVjdC54LShuZXh0T2Zmc2V0WCtwb3B1cFJlY3Qud2lkdGgpLG9mZnNldFk0Qm90dG9tPXBvcHVwTWlycm9yUmVjdC5ib3R0b20tcG9wdXBSZWN0LnktKG5leHRPZmZzZXRZK3BvcHVwUmVjdC5oZWlnaHQpOzE9PT1fc2NhbGVYJiYobmV4dE9mZnNldFg9TWF0aC5yb3VuZChuZXh0T2Zmc2V0WCksb2Zmc2V0WDRSaWdodD1NYXRoLnJvdW5kKG9mZnNldFg0UmlnaHQpKSwxPT09X3NjYWxlWSYmKG5leHRPZmZzZXRZPU1hdGgucm91bmQobmV4dE9mZnNldFkpLG9mZnNldFk0Qm90dG9tPU1hdGgucm91bmQob2Zmc2V0WTRCb3R0b20pKSxzZXRPZmZzZXRJbmZvKHtyZWFkeTohMCxvZmZzZXRYOm5leHRPZmZzZXRYL19zY2FsZVgsb2Zmc2V0WTpuZXh0T2Zmc2V0WS9fc2NhbGVZLG9mZnNldFI6b2Zmc2V0WDRSaWdodC9fc2NhbGVYLG9mZnNldEI6b2Zmc2V0WTRCb3R0b20vX3NjYWxlWSxhcnJvd1g6KChNYXRoLm1heChwb3B1cExlZnQsdGFyZ2V0TGVmdCkrTWF0aC5taW4ocG9wdXBMZWZ0K3BvcHVwV2lkdGgsdGFyZ2V0TGVmdCt0YXJnZXRXaWR0aCkpLzItcG9wdXBMZWZ0KS9fc2NhbGVYLGFycm93WTooKE1hdGgubWF4KHBvcHVwVG9wLHRhcmdldFRvcCkrTWF0aC5taW4ocG9wdXBUb3ArcG9wdXBIZWlnaHQsdGFyZ2V0VG9wK3RhcmdldEhlaWdodCkpLzItcG9wdXBUb3ApL19zY2FsZVksc2NhbGVYOl9zY2FsZVgsc2NhbGVZOl9zY2FsZVksYWxpZ246bmV4dEFsaWduSW5mb30pfWZ1bmN0aW9uIGdldEludGVyc2VjdGlvblZpc2libGVBcmVhKG9mZnNldFgsb2Zmc2V0WSl7dmFyIGFyZWE9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnZpc2libGVBcmVhLGw9cG9wdXBSZWN0Lngrb2Zmc2V0WCx0PXBvcHVwUmVjdC55K29mZnNldFksdmlzaWJsZUw9TWF0aC5tYXgobCxhcmVhLmxlZnQpLHZpc2libGVUPU1hdGgubWF4KHQsYXJlYS50b3ApO3JldHVybiBNYXRoLm1heCgwLChNYXRoLm1pbihsK3BvcHVwV2lkdGgsYXJlYS5yaWdodCktdmlzaWJsZUwpKihNYXRoLm1pbih0K3BvcHVwSGVpZ2h0LGFyZWEuYm90dG9tKS12aXNpYmxlVCkpfWZ1bmN0aW9uIHN5bmNOZXh0UG9wdXBQb3NpdGlvbigpe25leHRQb3B1cEJvdHRvbT0obmV4dFBvcHVwWT1wb3B1cFJlY3QueStuZXh0T2Zmc2V0WSkrcG9wdXBIZWlnaHQsbmV4dFBvcHVwUmlnaHQ9KG5leHRQb3B1cFg9cG9wdXBSZWN0LngrbmV4dE9mZnNldFgpK3BvcHVwV2lkdGh9fX0pLHJlc2V0UmVhZHk9ZnVuY3Rpb24oKXtzZXRPZmZzZXRJbmZvKGZ1bmN0aW9uKG9yaSl7cmV0dXJuKDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LG9yaSkse30se3JlYWR5OiExfSl9KX0sKDAsdXNlTGF5b3V0RWZmZWN0LlopKHJlc2V0UmVhZHksW3BvcHVwUGxhY2VtZW50XSksKDAsdXNlTGF5b3V0RWZmZWN0LlopKGZ1bmN0aW9uKCl7bWVyZ2VkT3Blbnx8cmVzZXRSZWFkeSgpfSxbbWVyZ2VkT3Blbl0pLFtvZmZzZXRJbmZvLnJlYWR5LG9mZnNldEluZm8ub2Zmc2V0WCxvZmZzZXRJbmZvLm9mZnNldFksb2Zmc2V0SW5mby5vZmZzZXRSLG9mZnNldEluZm8ub2Zmc2V0QixvZmZzZXRJbmZvLmFycm93WCxvZmZzZXRJbmZvLmFycm93WSxvZmZzZXRJbmZvLnNjYWxlWCxvZmZzZXRJbmZvLnNjYWxlWSxvZmZzZXRJbmZvLmFsaWduLGZ1bmN0aW9uKCl7YWxpZ25Db3VudFJlZi5jdXJyZW50Kz0xO3ZhciBpZD1hbGlnbkNvdW50UmVmLmN1cnJlbnQ7UHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe2FsaWduQ291bnRSZWYuY3VycmVudD09PWlkJiZvbkFsaWduKCl9KX1dKSxfdXNlQWxpZ24yPSgwLHNsaWNlZFRvQXJyYXkuWikoX3VzZUFsaWduLDExKSxyZWFkeT1fdXNlQWxpZ24yWzBdLG9mZnNldFg9X3VzZUFsaWduMlsxXSxvZmZzZXRZPV91c2VBbGlnbjJbMl0sb2Zmc2V0Uj1fdXNlQWxpZ24yWzNdLG9mZnNldEI9X3VzZUFsaWduMls0XSxhcnJvd1g9X3VzZUFsaWduMls1XSxhcnJvd1k9X3VzZUFsaWduMls2XSxzY2FsZVg9X3VzZUFsaWduMls3XSxzY2FsZVk9X3VzZUFsaWduMls4XSxhbGlnbkluZm89X3VzZUFsaWduMls5XSxvbkFsaWduMT1fdXNlQWxpZ24yWzEwXSxfdXNlQWN0aW9uPShhY3Rpb249dm9pZCAwPT09X3Byb3BzJGFjdGlvbj8iaG92ZXIiOl9wcm9wcyRhY3Rpb24scmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3ZhciBtZXJnZWRTaG93QWN0aW9uPXRvQXJyYXkobnVsbCE9c2hvd0FjdGlvbj9zaG93QWN0aW9uOmFjdGlvbiksbWVyZ2VkSGlkZUFjdGlvbj10b0FycmF5KG51bGwhPWhpZGVBY3Rpb24/aGlkZUFjdGlvbjphY3Rpb24pLHNob3dBY3Rpb25TZXQ9bmV3IFNldChtZXJnZWRTaG93QWN0aW9uKSxoaWRlQWN0aW9uU2V0PW5ldyBTZXQobWVyZ2VkSGlkZUFjdGlvbik7cmV0dXJuIG1vYmlsZSYmKHNob3dBY3Rpb25TZXQuaGFzKCJob3ZlciIpJiYoc2hvd0FjdGlvblNldC5kZWxldGUoImhvdmVyIiksc2hvd0FjdGlvblNldC5hZGQoImNsaWNrIikpLGhpZGVBY3Rpb25TZXQuaGFzKCJob3ZlciIpJiYoaGlkZUFjdGlvblNldC5kZWxldGUoImhvdmVyIiksaGlkZUFjdGlvblNldC5hZGQoImNsaWNrIikpKSxbc2hvd0FjdGlvblNldCxoaWRlQWN0aW9uU2V0XX0sW21vYmlsZSxhY3Rpb24sc2hvd0FjdGlvbixoaWRlQWN0aW9uXSkpLF91c2VBY3Rpb24yPSgwLHNsaWNlZFRvQXJyYXkuWikoX3VzZUFjdGlvbiwyKSxzaG93QWN0aW9ucz1fdXNlQWN0aW9uMlswXSxoaWRlQWN0aW9ucz1fdXNlQWN0aW9uMlsxXSxjbGlja1RvU2hvdz1zaG93QWN0aW9ucy5oYXMoImNsaWNrIiksY2xpY2tUb0hpZGU9aGlkZUFjdGlvbnMuaGFzKCJjbGljayIpfHxoaWRlQWN0aW9ucy5oYXMoImNvbnRleHRNZW51IiksdHJpZ2dlckFsaWduPSgwLHVzZUV2ZW50LlopKGZ1bmN0aW9uKCl7aW5Nb3Rpb258fG9uQWxpZ24xKCl9KTtvblNjcm9sbD1mdW5jdGlvbigpe29wZW5SZWYxLmN1cnJlbnQmJmFsaWduUG9pbnQmJmNsaWNrVG9IaWRlJiZ0cmlnZ2VyT3BlbighMSl9LCgwLHVzZUxheW91dEVmZmVjdC5aKShmdW5jdGlvbigpe2lmKG1lcmdlZE9wZW4mJnRhcmdldEVsZSYmcG9wdXBFbGUpe3ZhciB0YXJnZXRTY3JvbGxMaXN0PWNvbGxlY3RTY3JvbGxlcih0YXJnZXRFbGUpLHBvcHVwU2Nyb2xsTGlzdD1jb2xsZWN0U2Nyb2xsZXIocG9wdXBFbGUpLHdpbj1nZXRXaW4ocG9wdXBFbGUpLG1lcmdlZExpc3Q9bmV3IFNldChbd2luXS5jb25jYXQoKDAsdG9Db25zdW1hYmxlQXJyYXkuWikodGFyZ2V0U2Nyb2xsTGlzdCksKDAsdG9Db25zdW1hYmxlQXJyYXkuWikocG9wdXBTY3JvbGxMaXN0KSkpO2Z1bmN0aW9uIG5vdGlmeVNjcm9sbCgpe3RyaWdnZXJBbGlnbigpLG9uU2Nyb2xsKCl9cmV0dXJuIG1lcmdlZExpc3QuZm9yRWFjaChmdW5jdGlvbihzY3JvbGxlcil7c2Nyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixub3RpZnlTY3JvbGwse3Bhc3NpdmU6ITB9KX0pLHdpbi5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLG5vdGlmeVNjcm9sbCx7cGFzc2l2ZTohMH0pLHRyaWdnZXJBbGlnbigpLGZ1bmN0aW9uKCl7bWVyZ2VkTGlzdC5mb3JFYWNoKGZ1bmN0aW9uKHNjcm9sbGVyKXtzY3JvbGxlci5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLG5vdGlmeVNjcm9sbCksd2luLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsbm90aWZ5U2Nyb2xsKX0pfX19LFttZXJnZWRPcGVuLHRhcmdldEVsZSxwb3B1cEVsZV0pLCgwLHVzZUxheW91dEVmZmVjdC5aKShmdW5jdGlvbigpe3RyaWdnZXJBbGlnbigpfSxbbW91c2VQb3MscG9wdXBQbGFjZW1lbnRdKSwoMCx1c2VMYXlvdXRFZmZlY3QuWikoZnVuY3Rpb24oKXttZXJnZWRPcGVuJiYhKG51bGwhPWJ1aWx0aW5QbGFjZW1lbnRzJiZidWlsdGluUGxhY2VtZW50c1twb3B1cFBsYWNlbWVudF0pJiZ0cmlnZ2VyQWxpZ24oKX0sW0pTT04uc3RyaW5naWZ5KHBvcHVwQWxpZ24pXSk7dmFyIGFsaWduZWRDbGFzc05hbWU9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3ZhciBiYXNlQ2xhc3NOYW1lPWZ1bmN0aW9uKGJ1aWx0aW5QbGFjZW1lbnRzLHByZWZpeENscyxhbGlnbixpc0FsaWduUG9pbnQpe2Zvcih2YXIgcG9pbnRzPWFsaWduLnBvaW50cyxwbGFjZW1lbnRzPU9iamVjdC5rZXlzKGJ1aWx0aW5QbGFjZW1lbnRzKSxpPTA7aTxwbGFjZW1lbnRzLmxlbmd0aDtpKz0xKXt2YXIgX2J1aWx0aW5QbGFjZW1lbnRzJHBsLHBsYWNlbWVudD1wbGFjZW1lbnRzW2ldO2lmKGZ1bmN0aW9uKCl7dmFyIGExPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpbXSxhMj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W10saXNBbGlnblBvaW50PWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwO3JldHVybiBpc0FsaWduUG9pbnQ/YTFbMF09PT1hMlswXTphMVswXT09PWEyWzBdJiZhMVsxXT09PWEyWzFdfShudWxsPT09KF9idWlsdGluUGxhY2VtZW50cyRwbD1idWlsdGluUGxhY2VtZW50c1twbGFjZW1lbnRdKXx8dm9pZCAwPT09X2J1aWx0aW5QbGFjZW1lbnRzJHBsP3ZvaWQgMDpfYnVpbHRpblBsYWNlbWVudHMkcGwucG9pbnRzLHBvaW50cyxpc0FsaWduUG9pbnQpKXJldHVybiIiLmNvbmNhdChwcmVmaXhDbHMsIi1wbGFjZW1lbnQtIikuY29uY2F0KHBsYWNlbWVudCl9cmV0dXJuIiJ9KGJ1aWx0aW5QbGFjZW1lbnRzLHByZWZpeENscyxhbGlnbkluZm8sYWxpZ25Qb2ludCk7cmV0dXJuIGNsYXNzbmFtZXNfZGVmYXVsdCgpKGJhc2VDbGFzc05hbWUsbnVsbD09Z2V0UG9wdXBDbGFzc05hbWVGcm9tQWxpZ24/dm9pZCAwOmdldFBvcHVwQ2xhc3NOYW1lRnJvbUFsaWduKGFsaWduSW5mbykpfSxbYWxpZ25JbmZvLGdldFBvcHVwQ2xhc3NOYW1lRnJvbUFsaWduLGJ1aWx0aW5QbGFjZW1lbnRzLHByZWZpeENscyxhbGlnblBvaW50XSk7cmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsZnVuY3Rpb24oKXtyZXR1cm57bmF0aXZlRWxlbWVudDpleHRlcm5hbEZvcndhcmRSZWYuY3VycmVudCxwb3B1cEVsZW1lbnQ6ZXh0ZXJuYWxQb3B1cFJlZi5jdXJyZW50LGZvcmNlQWxpZ246dHJpZ2dlckFsaWdufX0pO3ZhciBfUmVhY3QkdXNlU3RhdGUxNT1yZWFjdC51c2VTdGF0ZSgwKSxfUmVhY3QkdXNlU3RhdGUxNj0oMCxzbGljZWRUb0FycmF5LlopKF9SZWFjdCR1c2VTdGF0ZTE1LDIpLHRhcmdldFdpZHRoPV9SZWFjdCR1c2VTdGF0ZTE2WzBdLHNldFRhcmdldFdpZHRoPV9SZWFjdCR1c2VTdGF0ZTE2WzFdLF9SZWFjdCR1c2VTdGF0ZTE3PXJlYWN0LnVzZVN0YXRlKDApLF9SZWFjdCR1c2VTdGF0ZTE4PSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlMTcsMiksdGFyZ2V0SGVpZ2h0PV9SZWFjdCR1c2VTdGF0ZTE4WzBdLHNldFRhcmdldEhlaWdodD1fUmVhY3QkdXNlU3RhdGUxOFsxXSxzeW5jVGFyZ2V0U2l6ZT1mdW5jdGlvbigpe2lmKHN0cmV0Y2gmJnRhcmdldEVsZSl7dmFyIHJlY3Q9dGFyZ2V0RWxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3NldFRhcmdldFdpZHRoKHJlY3Qud2lkdGgpLHNldFRhcmdldEhlaWdodChyZWN0LmhlaWdodCl9fTtmdW5jdGlvbiB3cmFwcGVyQWN0aW9uKGV2ZW50TmFtZSxuZXh0T3BlbixkZWxheSxwcmVFdmVudCl7Y2xvbmVQcm9wc1tldmVudE5hbWVdPWZ1bmN0aW9uKGV2ZW50KXt2YXIgX29yaWdpbkNoaWxkUHJvcHMkZXZlO251bGw9PXByZUV2ZW50fHxwcmVFdmVudChldmVudCksdHJpZ2dlck9wZW4obmV4dE9wZW4sZGVsYXkpO2Zvcih2YXIgX2xlbj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbj4xP19sZW4tMTowKSxfa2V5PTE7X2tleTxfbGVuO19rZXkrKylhcmdzW19rZXktMV09YXJndW1lbnRzW19rZXldO251bGw9PT0oX29yaWdpbkNoaWxkUHJvcHMkZXZlPW9yaWdpbkNoaWxkUHJvcHNbZXZlbnROYW1lXSl8fHZvaWQgMD09PV9vcmlnaW5DaGlsZFByb3BzJGV2ZXx8X29yaWdpbkNoaWxkUHJvcHMkZXZlLmNhbGwuYXBwbHkoX29yaWdpbkNoaWxkUHJvcHMkZXZlLFtvcmlnaW5DaGlsZFByb3BzLGV2ZW50XS5jb25jYXQoYXJncykpfX0oMCx1c2VMYXlvdXRFZmZlY3QuWikoZnVuY3Rpb24oKXttb3Rpb25QcmVwYXJlUmVzb2x2ZSYmKG9uQWxpZ24xKCksbW90aW9uUHJlcGFyZVJlc29sdmUoKSxzZXRNb3Rpb25QcmVwYXJlUmVzb2x2ZShudWxsKSl9LFttb3Rpb25QcmVwYXJlUmVzb2x2ZV0pLChjbGlja1RvU2hvd3x8Y2xpY2tUb0hpZGUpJiYoY2xvbmVQcm9wcy5vbkNsaWNrPWZ1bmN0aW9uKGV2ZW50KXt2YXIgX29yaWdpbkNoaWxkUHJvcHMkb25DO29wZW5SZWYxLmN1cnJlbnQmJmNsaWNrVG9IaWRlP3RyaWdnZXJPcGVuKCExKTohb3BlblJlZjEuY3VycmVudCYmY2xpY2tUb1Nob3cmJihzZXRNb3VzZVBvc0J5RXZlbnQoZXZlbnQpLHRyaWdnZXJPcGVuKCEwKSk7Zm9yKHZhciBfbGVuMj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbjI+MT9fbGVuMi0xOjApLF9rZXkyPTE7X2tleTI8X2xlbjI7X2tleTIrKylhcmdzW19rZXkyLTFdPWFyZ3VtZW50c1tfa2V5Ml07bnVsbD09PShfb3JpZ2luQ2hpbGRQcm9wcyRvbkM9b3JpZ2luQ2hpbGRQcm9wcy5vbkNsaWNrKXx8dm9pZCAwPT09X29yaWdpbkNoaWxkUHJvcHMkb25DfHxfb3JpZ2luQ2hpbGRQcm9wcyRvbkMuY2FsbC5hcHBseShfb3JpZ2luQ2hpbGRQcm9wcyRvbkMsW29yaWdpbkNoaWxkUHJvcHMsZXZlbnRdLmNvbmNhdChhcmdzKSl9KTt2YXIgb25Qb3B1cFBvaW50ZXJEb3duPShtYXNrQ2xvc2FibGU9dm9pZCAwPT09X3Byb3BzJG1hc2tDbG9zYWJsZXx8X3Byb3BzJG1hc2tDbG9zYWJsZSwob3BlblJlZj1yZWFjdC51c2VSZWYobWVyZ2VkT3BlbikpLmN1cnJlbnQ9bWVyZ2VkT3Blbixwb3B1cFBvaW50ZXJEb3duUmVmPXJlYWN0LnVzZVJlZighMSkscmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uKCl7aWYoY2xpY2tUb0hpZGUmJnBvcHVwRWxlJiYoIW1hc2t8fG1hc2tDbG9zYWJsZSkpe3ZhciBvblBvaW50ZXJEb3duPWZ1bmN0aW9uKCl7cG9wdXBQb2ludGVyRG93blJlZi5jdXJyZW50PSExfSxvblRyaWdnZXJDbG9zZT1mdW5jdGlvbihlKXt2YXIgX2UkY29tcG9zZWRQYXRoOyFvcGVuUmVmLmN1cnJlbnR8fGluUG9wdXBPckNoaWxkKChudWxsPT09KF9lJGNvbXBvc2VkUGF0aD1lLmNvbXBvc2VkUGF0aCl8fHZvaWQgMD09PV9lJGNvbXBvc2VkUGF0aHx8bnVsbD09PShfZSRjb21wb3NlZFBhdGg9X2UkY29tcG9zZWRQYXRoLmNhbGwoZSkpfHx2b2lkIDA9PT1fZSRjb21wb3NlZFBhdGg/dm9pZCAwOl9lJGNvbXBvc2VkUGF0aFswXSl8fGUudGFyZ2V0KXx8cG9wdXBQb2ludGVyRG93blJlZi5jdXJyZW50fHx0cmlnZ2VyT3BlbighMSl9LHdpbj1nZXRXaW4ocG9wdXBFbGUpO3dpbi5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsb25Qb2ludGVyRG93biwhMCksd2luLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsb25UcmlnZ2VyQ2xvc2UsITApLHdpbi5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsb25UcmlnZ2VyQ2xvc2UsITApO3ZhciB0YXJnZXRTaGFkb3dSb290PSgwLHNoYWRvdy5BKSh0YXJnZXRFbGUpO3JldHVybiB0YXJnZXRTaGFkb3dSb290JiYodGFyZ2V0U2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLG9uVHJpZ2dlckNsb3NlLCEwKSx0YXJnZXRTaGFkb3dSb290LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IixvblRyaWdnZXJDbG9zZSwhMCkpLGZ1bmN0aW9uKCl7d2luLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixvblBvaW50ZXJEb3duLCEwKSx3aW4ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixvblRyaWdnZXJDbG9zZSwhMCksd2luLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IixvblRyaWdnZXJDbG9zZSwhMCksdGFyZ2V0U2hhZG93Um9vdCYmKHRhcmdldFNoYWRvd1Jvb3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixvblRyaWdnZXJDbG9zZSwhMCksdGFyZ2V0U2hhZG93Um9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsb25UcmlnZ2VyQ2xvc2UsITApKX19fSxbY2xpY2tUb0hpZGUsdGFyZ2V0RWxlLHBvcHVwRWxlLG1hc2ssbWFza0Nsb3NhYmxlXSksZnVuY3Rpb24oKXtwb3B1cFBvaW50ZXJEb3duUmVmLmN1cnJlbnQ9ITB9KSxob3ZlclRvU2hvdz1zaG93QWN0aW9ucy5oYXMoImhvdmVyIiksaG92ZXJUb0hpZGU9aGlkZUFjdGlvbnMuaGFzKCJob3ZlciIpO2hvdmVyVG9TaG93JiYod3JhcHBlckFjdGlvbigib25Nb3VzZUVudGVyIiwhMCxtb3VzZUVudGVyRGVsYXksZnVuY3Rpb24oZXZlbnQpe3NldE1vdXNlUG9zQnlFdmVudChldmVudCl9KSx3cmFwcGVyQWN0aW9uKCJvblBvaW50ZXJFbnRlciIsITAsbW91c2VFbnRlckRlbGF5LGZ1bmN0aW9uKGV2ZW50KXtzZXRNb3VzZVBvc0J5RXZlbnQoZXZlbnQpfSksb25Qb3B1cE1vdXNlRW50ZXI9ZnVuY3Rpb24oZXZlbnQpeyhtZXJnZWRPcGVufHxpbk1vdGlvbikmJm51bGwhPXBvcHVwRWxlJiZwb3B1cEVsZS5jb250YWlucyhldmVudC50YXJnZXQpJiZ0cmlnZ2VyT3BlbighMCxtb3VzZUVudGVyRGVsYXkpfSxhbGlnblBvaW50JiYoY2xvbmVQcm9wcy5vbk1vdXNlTW92ZT1mdW5jdGlvbihldmVudCl7dmFyIF9vcmlnaW5DaGlsZFByb3BzJG9uTTtudWxsPT09KF9vcmlnaW5DaGlsZFByb3BzJG9uTT1vcmlnaW5DaGlsZFByb3BzLm9uTW91c2VNb3ZlKXx8dm9pZCAwPT09X29yaWdpbkNoaWxkUHJvcHMkb25NfHxfb3JpZ2luQ2hpbGRQcm9wcyRvbk0uY2FsbChvcmlnaW5DaGlsZFByb3BzLGV2ZW50KX0pKSxob3ZlclRvSGlkZSYmKHdyYXBwZXJBY3Rpb24oIm9uTW91c2VMZWF2ZSIsITEsbW91c2VMZWF2ZURlbGF5KSx3cmFwcGVyQWN0aW9uKCJvblBvaW50ZXJMZWF2ZSIsITEsbW91c2VMZWF2ZURlbGF5KSxvblBvcHVwTW91c2VMZWF2ZT1mdW5jdGlvbigpe3RyaWdnZXJPcGVuKCExLG1vdXNlTGVhdmVEZWxheSl9KSxzaG93QWN0aW9ucy5oYXMoImZvY3VzIikmJndyYXBwZXJBY3Rpb24oIm9uRm9jdXMiLCEwLGZvY3VzRGVsYXkpLGhpZGVBY3Rpb25zLmhhcygiZm9jdXMiKSYmd3JhcHBlckFjdGlvbigib25CbHVyIiwhMSxibHVyRGVsYXkpLHNob3dBY3Rpb25zLmhhcygiY29udGV4dE1lbnUiKSYmKGNsb25lUHJvcHMub25Db250ZXh0TWVudT1mdW5jdGlvbihldmVudCl7dmFyIF9vcmlnaW5DaGlsZFByb3BzJG9uQzI7b3BlblJlZjEuY3VycmVudCYmaGlkZUFjdGlvbnMuaGFzKCJjb250ZXh0TWVudSIpP3RyaWdnZXJPcGVuKCExKTooc2V0TW91c2VQb3NCeUV2ZW50KGV2ZW50KSx0cmlnZ2VyT3BlbighMCkpLGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Zm9yKHZhciBfbGVuMz1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbjM+MT9fbGVuMy0xOjApLF9rZXkzPTE7X2tleTM8X2xlbjM7X2tleTMrKylhcmdzW19rZXkzLTFdPWFyZ3VtZW50c1tfa2V5M107bnVsbD09PShfb3JpZ2luQ2hpbGRQcm9wcyRvbkMyPW9yaWdpbkNoaWxkUHJvcHMub25Db250ZXh0TWVudSl8fHZvaWQgMD09PV9vcmlnaW5DaGlsZFByb3BzJG9uQzJ8fF9vcmlnaW5DaGlsZFByb3BzJG9uQzIuY2FsbC5hcHBseShfb3JpZ2luQ2hpbGRQcm9wcyRvbkMyLFtvcmlnaW5DaGlsZFByb3BzLGV2ZW50XS5jb25jYXQoYXJncykpfSksY2xhc3NOYW1lJiYoY2xvbmVQcm9wcy5jbGFzc05hbWU9Y2xhc3NuYW1lc19kZWZhdWx0KCkob3JpZ2luQ2hpbGRQcm9wcy5jbGFzc05hbWUsY2xhc3NOYW1lKSk7dmFyIG1lcmdlZENoaWxkcmVuUHJvcHM9KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LG9yaWdpbkNoaWxkUHJvcHMpLGNsb25lUHJvcHMpLHBhc3NlZFByb3BzPXt9O1sib25Db250ZXh0TWVudSIsIm9uQ2xpY2siLCJvbk1vdXNlRG93biIsIm9uVG91Y2hTdGFydCIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsIm9uRm9jdXMiLCJvbkJsdXIiXS5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50TmFtZSl7cmVzdFByb3BzW2V2ZW50TmFtZV0mJihwYXNzZWRQcm9wc1tldmVudE5hbWVdPWZ1bmN0aW9uKCl7Zm9yKHZhciBfbWVyZ2VkQ2hpbGRyZW5Qcm9wcyQsX2xlbjQ9YXJndW1lbnRzLmxlbmd0aCxhcmdzPUFycmF5KF9sZW40KSxfa2V5ND0wO19rZXk0PF9sZW40O19rZXk0KyspYXJnc1tfa2V5NF09YXJndW1lbnRzW19rZXk0XTtudWxsPT09KF9tZXJnZWRDaGlsZHJlblByb3BzJD1tZXJnZWRDaGlsZHJlblByb3BzW2V2ZW50TmFtZV0pfHx2b2lkIDA9PT1fbWVyZ2VkQ2hpbGRyZW5Qcm9wcyR8fF9tZXJnZWRDaGlsZHJlblByb3BzJC5jYWxsLmFwcGx5KF9tZXJnZWRDaGlsZHJlblByb3BzJCxbbWVyZ2VkQ2hpbGRyZW5Qcm9wc10uY29uY2F0KGFyZ3MpKSxyZXN0UHJvcHNbZXZlbnROYW1lXS5hcHBseShyZXN0UHJvcHMsYXJncyl9KX0pO3ZhciB0cmlnZ2VyTm9kZT1yZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsKDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LG1lcmdlZENoaWxkcmVuUHJvcHMpLHBhc3NlZFByb3BzKSksaW5uZXJBcnJvdz1hcnJvdz8oMCxvYmplY3RTcHJlYWQyLlopKHt9LCEwIT09YXJyb3c/YXJyb3c6e30pOm51bGw7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQocmVhY3QuRnJhZ21lbnQsbnVsbCxyZWFjdC5jcmVhdGVFbGVtZW50KHJjX3Jlc2l6ZV9vYnNlcnZlcl9lcy5aLHtkaXNhYmxlZDohbWVyZ2VkT3BlbixyZWY6c2V0VGFyZ2V0UmVmLG9uUmVzaXplOmZ1bmN0aW9uKCl7c3luY1RhcmdldFNpemUoKSx0cmlnZ2VyQWxpZ24oKX19LHJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJpZ2dlcldyYXBwZXIse2dldFRyaWdnZXJET01Ob2RlOmdldFRyaWdnZXJET01Ob2RlfSx0cmlnZ2VyTm9kZSkpLHJlYWN0LmNyZWF0ZUVsZW1lbnQoVHJpZ2dlckNvbnRleHQuUHJvdmlkZXIse3ZhbHVlOmNvbnRleHR9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoUG9wdXAse3BvcnRhbDpQb3J0YWxDb21wb25lbnQscmVmOnNldFBvcHVwUmVmLHByZWZpeENsczpwcmVmaXhDbHMscG9wdXA6cG9wdXAsY2xhc3NOYW1lOmNsYXNzbmFtZXNfZGVmYXVsdCgpKHBvcHVwQ2xhc3NOYW1lLGFsaWduZWRDbGFzc05hbWUpLHN0eWxlOnBvcHVwU3R5bGUsdGFyZ2V0OnRhcmdldEVsZSxvbk1vdXNlRW50ZXI6b25Qb3B1cE1vdXNlRW50ZXIsb25Nb3VzZUxlYXZlOm9uUG9wdXBNb3VzZUxlYXZlLG9uUG9pbnRlckVudGVyOm9uUG9wdXBNb3VzZUVudGVyLHpJbmRleDp6SW5kZXgsb3BlbjptZXJnZWRPcGVuLGtlZXBEb206aW5Nb3Rpb24sZnJlc2g6ZnJlc2gsb25DbGljazpvblBvcHVwQ2xpY2ssb25Qb2ludGVyRG93bkNhcHR1cmU6b25Qb3B1cFBvaW50ZXJEb3duLG1hc2s6bWFzayxtb3Rpb246bWVyZ2VQb3B1cE1vdGlvbixtYXNrTW90aW9uOm1lcmdlTWFza01vdGlvbixvblZpc2libGVDaGFuZ2VkOmZ1bmN0aW9uKHZpc2libGUpe3NldEluTW90aW9uKCExKSxvbkFsaWduMSgpLG51bGw9PWFmdGVyUG9wdXBWaXNpYmxlQ2hhbmdlfHxhZnRlclBvcHVwVmlzaWJsZUNoYW5nZSh2aXNpYmxlKX0sb25QcmVwYXJlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpe3N5bmNUYXJnZXRTaXplKCksc2V0TW90aW9uUHJlcGFyZVJlc29sdmUoZnVuY3Rpb24oKXtyZXR1cm4gcmVzb2x2ZX0pfSl9LGZvcmNlUmVuZGVyOmZvcmNlUmVuZGVyLGF1dG9EZXN0cm95OmF1dG9EZXN0cm95fHxkZXN0cm95UG9wdXBPbkhpZGV8fCExLGdldFBvcHVwQ29udGFpbmVyOmdldFBvcHVwQ29udGFpbmVyLGFsaWduOmFsaWduSW5mbyxhcnJvdzppbm5lckFycm93LGFycm93UG9zOnt4OmFycm93WCx5OmFycm93WX0scmVhZHk6cmVhZHksb2Zmc2V0WDpvZmZzZXRYLG9mZnNldFk6b2Zmc2V0WSxvZmZzZXRSOm9mZnNldFIsb2Zmc2V0QjpvZmZzZXRCLG9uQWxpZ246dHJpZ2dlckFsaWduLHN0cmV0Y2g6c3RyZXRjaCx0YXJnZXRXaWR0aDp0YXJnZXRXaWR0aC9zY2FsZVgsdGFyZ2V0SGVpZ2h0OnRhcmdldEhlaWdodC9zY2FsZVl9KSkpfSl9KGVzLlopfSw0ODQ4MjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxleHBvcnRzKXsidXNlIHN0cmljdCI7LyoqCiAqIEBsaWNlbnNlIFJlYWN0CiAqIHJlYWN0LWlzLnByb2R1Y3Rpb24ubWluLmpzCiAqCiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLgogKgogKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGUKICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLgogKi8gdmFyIGI9U3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpLGM9U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIiksZD1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLGU9U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSxmPVN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIiksZz1TeW1ib2wuZm9yKCJyZWFjdC5wcm92aWRlciIpLGg9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLGs9U3ltYm9sLmZvcigicmVhY3Quc2VydmVyX2NvbnRleHQiKSxsPVN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIiksbT1TeW1ib2wuZm9yKCJyZWFjdC5zdXNwZW5zZSIpLG49U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2VfbGlzdCIpLHA9U3ltYm9sLmZvcigicmVhY3QubWVtbyIpLHE9U3ltYm9sLmZvcigicmVhY3QubGF6eSIpO1N5bWJvbC5mb3IoInJlYWN0Lm9mZnNjcmVlbiIpLFN5bWJvbC5mb3IoInJlYWN0Lm1vZHVsZS5yZWZlcmVuY2UiKSxleHBvcnRzLkZvcndhcmRSZWY9bCxleHBvcnRzLmlzTWVtbz1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYSl7aWYoIm9iamVjdCI9PXR5cGVvZiBhJiZudWxsIT09YSl7dmFyIHI9YS4kJHR5cGVvZjtzd2l0Y2gocil7Y2FzZSBiOnN3aXRjaChhPWEudHlwZSl7Y2FzZSBkOmNhc2UgZjpjYXNlIGU6Y2FzZSBtOmNhc2UgbjpyZXR1cm4gYTtkZWZhdWx0OnN3aXRjaChhPWEmJmEuJCR0eXBlb2Ype2Nhc2UgazpjYXNlIGg6Y2FzZSBsOmNhc2UgcTpjYXNlIHA6Y2FzZSBnOnJldHVybiBhO2RlZmF1bHQ6cmV0dXJuIHJ9fWNhc2UgYzpyZXR1cm4gcn19fShhKT09PXB9fSw1MjQ4MTpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfd2VicGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0Ijttb2R1bGUuZXhwb3J0cz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ4NDgyKX0sNzYxNTk6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se2tjOmZ1bmN0aW9uKCl7cmV0dXJuIGNyZWF0ZVN0eWxlczF9LEY0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uc19rZXlmcmFtZXN9fSk7dmFyIF9yZWYsaGFzaFByaW9yaXR5LHVzZVRoZW1lLEVtb3Rpb25Db250ZXh0LG9wdGlvbixEZWZhdWx0U3R5bGVkVGhlbWVQcm92aWRlcixTdHlsZUVuZ2luZUNvbnRleHQsX21hdGNoQnJvd3NlclByZWZlcnMsZGFya1RoZW1lTWF0Y2gsb3B0aW9ucyxfb3B0aW9ucyRrZXksX29wdGlvbnMkc3BlZWR5LF9pbnRlcm5hbE9wdGlvbnMkc3R5bCxpbnRlcm5hbE9wdGlvbnMsZW1vdGlvbixlbW90aW9uMSxFbW90aW9uQ29udGV4dDEsRW1vdGlvbkNvbnRleHQyLFN0eWxlUHJvdmlkZXIsQ3VzdG9tVGhlbWVDb250ZXh0LHN0eWxlZFRoZW1lQ29udGV4dCxTdHlsZUVuZ2luZUNvbnRleHQxLG9wdGlvbnMxLHVzZVRoZW1lMSxjcmVhdGVTdHlsZXMsVGhlbWVQcm92aWRlcixjeCxpbmplY3RHbG9iYWwsZGVmaW5lUHJvcGVydHk9X193ZWJwYWNrX3JlcXVpcmVfXyg0OTQyKSxyZWFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxjbGFzc0NhbGxDaGVjaz1fX3dlYnBhY2tfcmVxdWlyZV9fKDE1NjcxKSxjcmVhdGVDbGFzcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQzMTQ0KSxlbW90aW9uX2NhY2hlX2Jyb3dzZXJfZXNtPV9fd2VicGFja19yZXF1aXJlX18oODQxNyksZW1vdGlvbl9zZXJpYWxpemVfYnJvd3Nlcl9lc209X193ZWJwYWNrX3JlcXVpcmVfXyg1MDY0OSksZW1vdGlvbl91dGlsc19icm93c2VyX2VzbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDcwNDQ0KTtmdW5jdGlvbiBpbnNlcnRXaXRob3V0U2NvcGluZyhjYWNoZSxzZXJpYWxpemVkKXtpZih2b2lkIDA9PT1jYWNoZS5pbnNlcnRlZFtzZXJpYWxpemVkLm5hbWVdKXJldHVybiBjYWNoZS5pbnNlcnQoIiIsc2VyaWFsaXplZCxjYWNoZS5zaGVldCwhMCl9ZnVuY3Rpb24gbWVyZ2UocmVnaXN0ZXJlZCxjc3MsY2xhc3NOYW1lKXt2YXIgcmVnaXN0ZXJlZFN0eWxlcz1bXSxyYXdDbGFzc05hbWU9KDAsZW1vdGlvbl91dGlsc19icm93c2VyX2VzbS5mcCkocmVnaXN0ZXJlZCxyZWdpc3RlcmVkU3R5bGVzLGNsYXNzTmFtZSk7cmV0dXJuIHJlZ2lzdGVyZWRTdHlsZXMubGVuZ3RoPDI/Y2xhc3NOYW1lOnJhd0NsYXNzTmFtZStjc3MocmVnaXN0ZXJlZFN0eWxlcyl9dmFyIGNyZWF0ZUVtb3Rpb249ZnVuY3Rpb24ob3B0aW9ucyl7dmFyIGNhY2hlPSgwLGVtb3Rpb25fY2FjaGVfYnJvd3Nlcl9lc20uWikob3B0aW9ucyk7Y2FjaGUuc2hlZXQuc3BlZWR5PWZ1bmN0aW9uKHZhbHVlKXt0aGlzLmlzU3BlZWR5PXZhbHVlfSxjYWNoZS5jb21wYXQ9ITA7dmFyIGNzcz1mdW5jdGlvbigpe2Zvcih2YXIgX2xlbj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbiksX2tleT0wO19rZXk8X2xlbjtfa2V5KyspYXJnc1tfa2V5XT1hcmd1bWVudHNbX2tleV07dmFyIHNlcmlhbGl6ZWQ9KDAsZW1vdGlvbl9zZXJpYWxpemVfYnJvd3Nlcl9lc20uTykoYXJncyxjYWNoZS5yZWdpc3RlcmVkLHZvaWQgMCk7cmV0dXJuKDAsZW1vdGlvbl91dGlsc19icm93c2VyX2VzbS5NeSkoY2FjaGUsc2VyaWFsaXplZCwhMSksY2FjaGUua2V5KyItIitzZXJpYWxpemVkLm5hbWV9O3JldHVybntjc3M6Y3NzLGN4OmZ1bmN0aW9uKCl7Zm9yKHZhciBfbGVuND1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbjQpLF9rZXk0PTA7X2tleTQ8X2xlbjQ7X2tleTQrKylhcmdzW19rZXk0XT1hcmd1bWVudHNbX2tleTRdO3JldHVybiBtZXJnZShjYWNoZS5yZWdpc3RlcmVkLGNzcyxjbGFzc25hbWVzKGFyZ3MpKX0saW5qZWN0R2xvYmFsOmZ1bmN0aW9uKCl7Zm9yKHZhciBfbGVuMz1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbjMpLF9rZXkzPTA7X2tleTM8X2xlbjM7X2tleTMrKylhcmdzW19rZXkzXT1hcmd1bWVudHNbX2tleTNdO3ZhciBzZXJpYWxpemVkPSgwLGVtb3Rpb25fc2VyaWFsaXplX2Jyb3dzZXJfZXNtLk8pKGFyZ3MsY2FjaGUucmVnaXN0ZXJlZCk7aW5zZXJ0V2l0aG91dFNjb3BpbmcoY2FjaGUsc2VyaWFsaXplZCl9LGtleWZyYW1lczpmdW5jdGlvbigpe2Zvcih2YXIgX2xlbjI9YXJndW1lbnRzLmxlbmd0aCxhcmdzPUFycmF5KF9sZW4yKSxfa2V5Mj0wO19rZXkyPF9sZW4yO19rZXkyKyspYXJnc1tfa2V5Ml09YXJndW1lbnRzW19rZXkyXTt2YXIgc2VyaWFsaXplZD0oMCxlbW90aW9uX3NlcmlhbGl6ZV9icm93c2VyX2VzbS5PKShhcmdzLGNhY2hlLnJlZ2lzdGVyZWQpLGFuaW1hdGlvbj0iYW5pbWF0aW9uLSIrc2VyaWFsaXplZC5uYW1lO3JldHVybiBpbnNlcnRXaXRob3V0U2NvcGluZyhjYWNoZSx7bmFtZTpzZXJpYWxpemVkLm5hbWUsc3R5bGVzOiJAa2V5ZnJhbWVzICIrYW5pbWF0aW9uKyJ7IitzZXJpYWxpemVkLnN0eWxlcysifSJ9KSxhbmltYXRpb259LGh5ZHJhdGU6ZnVuY3Rpb24oaWRzKXtpZHMuZm9yRWFjaChmdW5jdGlvbihrZXkpe2NhY2hlLmluc2VydGVkW2tleV09ITB9KX0sZmx1c2g6ZnVuY3Rpb24oKXtjYWNoZS5yZWdpc3RlcmVkPXt9LGNhY2hlLmluc2VydGVkPXt9LGNhY2hlLnNoZWV0LmZsdXNoKCl9LHNoZWV0OmNhY2hlLnNoZWV0LGNhY2hlOmNhY2hlLGdldFJlZ2lzdGVyZWRTdHlsZXM6ZW1vdGlvbl91dGlsc19icm93c2VyX2VzbS5mcC5iaW5kKG51bGwsY2FjaGUucmVnaXN0ZXJlZCksbWVyZ2U6bWVyZ2UuYmluZChudWxsLGNhY2hlLnJlZ2lzdGVyZWQsY3NzKX19LGNsYXNzbmFtZXM9ZnVuY3Rpb24gY2xhc3NuYW1lcyhhcmdzKXtmb3IodmFyIGNscz0iIixpPTA7aTxhcmdzLmxlbmd0aDtpKyspe3ZhciBhcmc9YXJnc1tpXTtpZihudWxsIT1hcmcpe3ZhciB0b0FkZD12b2lkIDA7c3dpdGNoKHR5cGVvZiBhcmcpe2Nhc2UiYm9vbGVhbiI6YnJlYWs7Y2FzZSJvYmplY3QiOmlmKEFycmF5LmlzQXJyYXkoYXJnKSl0b0FkZD1jbGFzc25hbWVzKGFyZyk7ZWxzZSBmb3IodmFyIGsgaW4gdG9BZGQ9IiIsYXJnKWFyZ1trXSYmayYmKHRvQWRkJiYodG9BZGQrPSIgIiksdG9BZGQrPWspO2JyZWFrO2RlZmF1bHQ6dG9BZGQ9YXJnfXRvQWRkJiYoY2xzJiYoY2xzKz0iICIpLGNscys9dG9BZGQpfX1yZXR1cm4gY2xzfSxfY3JlYXRlRW1vdGlvbj1jcmVhdGVFbW90aW9uKHtrZXk6ImNzcyJ9KSxjYWNoZT0oX2NyZWF0ZUVtb3Rpb24uZmx1c2gsX2NyZWF0ZUVtb3Rpb24uaHlkcmF0ZSxfY3JlYXRlRW1vdGlvbi5jeCxfY3JlYXRlRW1vdGlvbi5tZXJnZSxfY3JlYXRlRW1vdGlvbi5nZXRSZWdpc3RlcmVkU3R5bGVzLF9jcmVhdGVFbW90aW9uLmluamVjdEdsb2JhbCxfY3JlYXRlRW1vdGlvbi5rZXlmcmFtZXMsX2NyZWF0ZUVtb3Rpb24uY3NzLF9jcmVhdGVFbW90aW9uLnNoZWV0LF9jcmVhdGVFbW90aW9uLmNhY2hlKSxDYWNoZU1hbmFnZXI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBDYWNoZU1hbmFnZXIoKXsoMCxjbGFzc0NhbGxDaGVjay5aKSh0aGlzLENhY2hlTWFuYWdlciksKDAsZGVmaW5lUHJvcGVydHkuWikodGhpcywiX2NhY2hlTGlzdCIsW2NhY2hlXSl9cmV0dXJuKDAsY3JlYXRlQ2xhc3MuWikoQ2FjaGVNYW5hZ2VyLFt7a2V5OiJhZGQiLHZhbHVlOmZ1bmN0aW9uKGNhY2hlKXtyZXR1cm4gdGhpcy5nZXRDYWNoZShjYWNoZS5rZXkpfHwodGhpcy5fY2FjaGVMaXN0LnB1c2goY2FjaGUpLGNhY2hlKX19LHtrZXk6ImRlbGV0ZSIsdmFsdWU6ZnVuY3Rpb24oY2FjaGUpe3RoaXMuX2NhY2hlTGlzdD10aGlzLl9jYWNoZUxpc3QuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBjLmtleSE9PWNhY2hlLmtleX0pfX0se2tleToiaGFzQ2FjaGUiLHZhbHVlOmZ1bmN0aW9uKGNhY2hlKXtyZXR1cm4gdGhpcy5fY2FjaGVMaXN0LnNvbWUoZnVuY3Rpb24oYyl7cmV0dXJuIGMua2V5PT09Y2FjaGUua2V5fSl9fSx7a2V5OiJnZXRDYWNoZSIsdmFsdWU6ZnVuY3Rpb24oa2V5KXtyZXR1cm4gdGhpcy5fY2FjaGVMaXN0LmZpbmQoZnVuY3Rpb24oYyl7cmV0dXJuIGMua2V5PT09a2V5fSl9fSx7a2V5OiJnZXRDYWNoZUxpc3QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhY2hlTGlzdH19XSksQ2FjaGVNYW5hZ2VyfSgpLGlzQnJvd3Nlcj0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50LGNyZWF0ZUhhc2hTdHlsZU5hbWU9ZnVuY3Rpb24oY2FjaGVLZXksaGFzaCl7cmV0dXJuIiIuY29uY2F0KGNhY2hlS2V5LCItIikuY29uY2F0KGhhc2gpfSxpbnNlcnRTdHlsZXNfaW5zZXJ0U3R5bGVzPWZ1bmN0aW9uKGNhY2hlLHNlcmlhbGl6ZWQsaXNTdHJpbmdUYWcsb3B0aW9ucyl7dmFyIGhhc2hQcmlvcml0eT1vcHRpb25zLmhhc2hQcmlvcml0eXx8ImhpZ2giOygwLGVtb3Rpb25fdXRpbHNfYnJvd3Nlcl9lc20uaEMpKGNhY2hlLHNlcmlhbGl6ZWQsaXNTdHJpbmdUYWcpO3ZhciBoYXNoQ2xhc3NOYW1lPSIuIi5jb25jYXQoY3JlYXRlSGFzaFN0eWxlTmFtZShjYWNoZS5rZXksc2VyaWFsaXplZC5uYW1lKSksaGFzaFNlbGVjdG9yPSJsb3ciPT09aGFzaFByaW9yaXR5PyI6d2hlcmUoIi5jb25jYXQoaGFzaENsYXNzTmFtZSwiKSIpOmhhc2hDbGFzc05hbWU7aWYodm9pZCAwPT09Y2FjaGUuaW5zZXJ0ZWRbc2VyaWFsaXplZC5uYW1lXSl7dmFyIHN0eWxlc0ZvclNTUj0iIixjdXJyZW50PXNlcmlhbGl6ZWQ7ZG97dmFyIG1heWJlU3R5bGVzPWNhY2hlLmluc2VydChzZXJpYWxpemVkPT09Y3VycmVudD9oYXNoU2VsZWN0b3I6IiIsY3VycmVudCxjYWNoZS5zaGVldCwhMCk7aXNCcm93c2VyfHx2b2lkIDA9PT1tYXliZVN0eWxlc3x8KHN0eWxlc0ZvclNTUis9bWF5YmVTdHlsZXMpLGN1cnJlbnQ9Y3VycmVudC5uZXh0fXdoaWxlKHZvaWQgMCE9PWN1cnJlbnQpO2lmKCFpc0Jyb3dzZXImJjAhPT1zdHlsZXNGb3JTU1IubGVuZ3RoKXJldHVybiBzdHlsZXNGb3JTU1J9fSxlc21fdHlwZW9mPV9fd2VicGFja19yZXF1aXJlX18oNzEwMDIpLGlzUmVhY3RDc3NSZXN1bHQ9ZnVuY3Rpb24ocGFyYW1zKXtyZXR1cm4ib2JqZWN0Ij09PSgwLGVzbV90eXBlb2YuWikocGFyYW1zKSYmInN0eWxlcyJpbiBwYXJhbXMmJiJuYW1lImluIHBhcmFtcyYmInRvU3RyaW5nImluIHBhcmFtc30sY3NzX2NsYXNzbmFtZXM9ZnVuY3Rpb24gY2xhc3NuYW1lcyhhcmdzKXtmb3IodmFyIGNscz0iIixpPTA7aTxhcmdzLmxlbmd0aDtpKyspe3ZhciBhcmc9YXJnc1tpXTtpZihudWxsIT09YXJnKXt2YXIgdG9BZGQ9dm9pZCAwO3N3aXRjaCgoMCxlc21fdHlwZW9mLlopKGFyZykpe2Nhc2UiYm9vbGVhbiI6YnJlYWs7Y2FzZSJvYmplY3QiOmlmKEFycmF5LmlzQXJyYXkoYXJnKSl0b0FkZD1jbGFzc25hbWVzKGFyZyk7ZWxzZSBmb3IodmFyIGsgaW4gdG9BZGQ9IiIsYXJnKWFyZ1trXSYmayYmKHRvQWRkJiYodG9BZGQrPSIgIiksdG9BZGQrPWspO2JyZWFrO2RlZmF1bHQ6dG9BZGQ9YXJnfXRvQWRkJiYoY2xzJiYoY2xzKz0iICIpLGNscys9dG9BZGQpfX1yZXR1cm4gY2xzfSxtZXJnZUNTUz1mdW5jdGlvbihyZWdpc3RlcmVkLGNzcyxjbGFzc05hbWUpe3ZhciByZWdpc3RlcmVkU3R5bGVzPVtdLHJhd0NsYXNzTmFtZT0oMCxlbW90aW9uX3V0aWxzX2Jyb3dzZXJfZXNtLmZwKShyZWdpc3RlcmVkLHJlZ2lzdGVyZWRTdHlsZXMsY2xhc3NOYW1lKTtyZXR1cm4gcmVnaXN0ZXJlZFN0eWxlcy5sZW5ndGg8Mj9jbGFzc05hbWU6cmF3Q2xhc3NOYW1lK2NzcyhyZWdpc3RlcmVkU3R5bGVzKX0sY3JlYXRlQ1NTPWZ1bmN0aW9uKGNhY2hlLG9wdGlvbnMpe3ZhciBvcHRpb25zMSxjc3M9KG9wdGlvbnMxPXtoYXNoUHJpb3JpdHk6b3B0aW9ucy5oYXNoUHJpb3JpdHl8fCJoaWdoIixsYWJlbDpvcHRpb25zLmxhYmVsfSxmdW5jdGlvbigpe2Zvcih2YXIgX2xlbj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbiksX2tleT0wO19rZXk8X2xlbjtfa2V5KyspYXJnc1tfa2V5XT1hcmd1bWVudHNbX2tleV07dmFyIHNlcmlhbGl6ZWQ9KDAsZW1vdGlvbl9zZXJpYWxpemVfYnJvd3Nlcl9lc20uTykoYXJncyxjYWNoZS5yZWdpc3RlcmVkLHZvaWQgMCk7cmV0dXJuIGluc2VydFN0eWxlc19pbnNlcnRTdHlsZXMoY2FjaGUsc2VyaWFsaXplZCwhMSxvcHRpb25zMSksY3JlYXRlSGFzaFN0eWxlTmFtZShjYWNoZS5rZXksc2VyaWFsaXplZC5uYW1lKX0pO3JldHVybntjc3M6Y3NzLGN4OmZ1bmN0aW9uKCl7Zm9yKHZhciBfbGVuMj1hcmd1bWVudHMubGVuZ3RoLGNsYXNzTmFtZXM9QXJyYXkoX2xlbjIpLF9rZXkyPTA7X2tleTI8X2xlbjI7X2tleTIrKyljbGFzc05hbWVzW19rZXkyXT1hcmd1bWVudHNbX2tleTJdO3ZhciBjbGFzc05hbWU9Y2xhc3NOYW1lcy5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGlzUmVhY3RDc3NSZXN1bHQoYyk/Y3NzKGMpOmN9KTtyZXR1cm4gbWVyZ2VDU1MoY2FjaGUucmVnaXN0ZXJlZCxjc3MsY3NzX2NsYXNzbmFtZXMoY2xhc3NOYW1lKSl9fX0sc2VyaWFsaXplQ1NTPWZ1bmN0aW9uKCl7Zm9yKHZhciBfbGVuPWFyZ3VtZW50cy5sZW5ndGgsYXJncz1BcnJheShfbGVuKSxfa2V5PTA7X2tleTxfbGVuO19rZXkrKylhcmdzW19rZXldPWFyZ3VtZW50c1tfa2V5XTtyZXR1cm4oMCxlbW90aW9uX3NlcmlhbGl6ZV9icm93c2VyX2VzbS5PKShhcmdzKX0sZW1vdGlvbl9lbGVtZW50X2MzOTYxN2Q4X2Jyb3dzZXJfZXNtPV9fd2VicGFja19yZXF1aXJlX18oOTc1NyksZW1vdGlvbl91c2VfaW5zZXJ0aW9uX2VmZmVjdF93aXRoX2ZhbGxiYWNrc19icm93c2VyX2VzbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDI3Mjc4KTtfX3dlYnBhY2tfcmVxdWlyZV9fKDg2NzkpO3ZhciBHbG9iYWw9KDAsZW1vdGlvbl9lbGVtZW50X2MzOTYxN2Q4X2Jyb3dzZXJfZXNtLncpKGZ1bmN0aW9uKHByb3BzLGNhY2hlKXt2YXIgc3R5bGVzPXByb3BzLnN0eWxlcyxzZXJpYWxpemVkPSgwLGVtb3Rpb25fc2VyaWFsaXplX2Jyb3dzZXJfZXNtLk8pKFtzdHlsZXNdLHZvaWQgMCxyZWFjdC51c2VDb250ZXh0KGVtb3Rpb25fZWxlbWVudF9jMzk2MTdkOF9icm93c2VyX2VzbS5UKSk7aWYoIWVtb3Rpb25fZWxlbWVudF9jMzk2MTdkOF9icm93c2VyX2VzbS5pKXtmb3IodmFyIF9yZWYsc2VyaWFsaXplZE5hbWVzPXNlcmlhbGl6ZWQubmFtZSxzZXJpYWxpemVkU3R5bGVzPXNlcmlhbGl6ZWQuc3R5bGVzLG5leHQ9c2VyaWFsaXplZC5uZXh0O3ZvaWQgMCE9PW5leHQ7KXNlcmlhbGl6ZWROYW1lcys9IiAiK25leHQubmFtZSxzZXJpYWxpemVkU3R5bGVzKz1uZXh0LnN0eWxlcyxuZXh0PW5leHQubmV4dDt2YXIgc2hvdWxkQ2FjaGU9ITA9PT1jYWNoZS5jb21wYXQscnVsZXM9Y2FjaGUuaW5zZXJ0KCIiLHtuYW1lOnNlcmlhbGl6ZWROYW1lcyxzdHlsZXM6c2VyaWFsaXplZFN0eWxlc30sY2FjaGUuc2hlZXQsc2hvdWxkQ2FjaGUpO3JldHVybiBzaG91bGRDYWNoZT9udWxsOnJlYWN0LmNyZWF0ZUVsZW1lbnQoInN0eWxlIiwoKF9yZWY9e30pWyJkYXRhLWVtb3Rpb24iXT1jYWNoZS5rZXkrIi1nbG9iYWwgIitzZXJpYWxpemVkTmFtZXMsX3JlZi5kYW5nZXJvdXNseVNldElubmVySFRNTD17X19odG1sOnJ1bGVzfSxfcmVmLm5vbmNlPWNhY2hlLnNoZWV0Lm5vbmNlLF9yZWYpKX12YXIgc2hlZXRSZWY9cmVhY3QudXNlUmVmKCk7cmV0dXJuKDAsZW1vdGlvbl91c2VfaW5zZXJ0aW9uX2VmZmVjdF93aXRoX2ZhbGxiYWNrc19icm93c2VyX2VzbS5qKShmdW5jdGlvbigpe3ZhciBrZXk9Y2FjaGUua2V5KyItZ2xvYmFsIixzaGVldD1uZXcgY2FjaGUuc2hlZXQuY29uc3RydWN0b3Ioe2tleTprZXksbm9uY2U6Y2FjaGUuc2hlZXQubm9uY2UsY29udGFpbmVyOmNhY2hlLnNoZWV0LmNvbnRhaW5lcixzcGVlZHk6Y2FjaGUuc2hlZXQuaXNTcGVlZHl9KSxyZWh5ZHJhdGluZz0hMSxub2RlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3N0eWxlW2RhdGEtZW1vdGlvbj0iJytrZXkrIiAiK3NlcmlhbGl6ZWQubmFtZSsnIl0nKTtyZXR1cm4gY2FjaGUuc2hlZXQudGFncy5sZW5ndGgmJihzaGVldC5iZWZvcmU9Y2FjaGUuc2hlZXQudGFnc1swXSksbnVsbCE9PW5vZGUmJihyZWh5ZHJhdGluZz0hMCxub2RlLnNldEF0dHJpYnV0ZSgiZGF0YS1lbW90aW9uIixrZXkpLHNoZWV0Lmh5ZHJhdGUoW25vZGVdKSksc2hlZXRSZWYuY3VycmVudD1bc2hlZXQscmVoeWRyYXRpbmddLGZ1bmN0aW9uKCl7c2hlZXQuZmx1c2goKX19LFtjYWNoZV0pLCgwLGVtb3Rpb25fdXNlX2luc2VydGlvbl9lZmZlY3Rfd2l0aF9mYWxsYmFja3NfYnJvd3Nlcl9lc20uaikoZnVuY3Rpb24oKXt2YXIgc2hlZXRSZWZDdXJyZW50PXNoZWV0UmVmLmN1cnJlbnQsc2hlZXQ9c2hlZXRSZWZDdXJyZW50WzBdO2lmKHNoZWV0UmVmQ3VycmVudFsxXSl7c2hlZXRSZWZDdXJyZW50WzFdPSExO3JldHVybn1pZih2b2lkIDAhPT1zZXJpYWxpemVkLm5leHQmJigwLGVtb3Rpb25fdXRpbHNfYnJvd3Nlcl9lc20uTXkpKGNhY2hlLHNlcmlhbGl6ZWQubmV4dCwhMCksc2hlZXQudGFncy5sZW5ndGgpe3ZhciBlbGVtZW50PXNoZWV0LnRhZ3Nbc2hlZXQudGFncy5sZW5ndGgtMV0ubmV4dEVsZW1lbnRTaWJsaW5nO3NoZWV0LmJlZm9yZT1lbGVtZW50LHNoZWV0LmZsdXNoKCl9Y2FjaGUuaW5zZXJ0KCIiLHNlcmlhbGl6ZWQsc2hlZXQsITEpfSxbY2FjaGUsc2VyaWFsaXplZC5uYW1lXSksbnVsbH0pLGpzeF9ydW50aW1lPV9fd2VicGFja19yZXF1aXJlX18oODU4OTMpO2Z1bmN0aW9uIG93bktleXMoZSxyKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3ImJihvPW8uZmlsdGVyKGZ1bmN0aW9uKHIpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUscikuZW51bWVyYWJsZX0pKSx0LnB1c2guYXBwbHkodCxvKX1yZXR1cm4gdH1mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKGUpe2Zvcih2YXIgcj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tyXT9hcmd1bWVudHNbcl06e307ciUyP293bktleXMoT2JqZWN0KHQpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHIpeygwLGRlZmluZVByb3BlcnR5LlopKGUscix0W3JdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOm93bktleXMoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpKX0pfXJldHVybiBlfXZhciBvYmplY3RXaXRob3V0UHJvcGVydGllcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDkxKSxlcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk1MTE1KSxfZXhjbHVkZWQ9WyJjaGlsZHJlbiIsInByZWZpeCIsInNwZWVkeSIsImdldFN0eWxlTWFuYWdlciIsImNvbnRhaW5lciIsIm5vbmNlIiwiaW5zZXJ0aW9uUG9pbnQiLCJzdHlsaXNQbHVnaW5zIiwibGludGVycyJdO2Z1bmN0aW9uIGNyZWF0ZVN0eWxlUHJvdmlkZXJfb3duS2V5cyhlLHIpe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7ciYmKG89by5maWx0ZXIoZnVuY3Rpb24ocil7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxyKS5lbnVtZXJhYmxlfSkpLHQucHVzaC5hcHBseSh0LG8pfXJldHVybiB0fWZ1bmN0aW9uIGNyZWF0ZVN0eWxlUHJvdmlkZXJfb2JqZWN0U3ByZWFkKGUpe2Zvcih2YXIgcj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tyXT9hcmd1bWVudHNbcl06e307ciUyP2NyZWF0ZVN0eWxlUHJvdmlkZXJfb3duS2V5cyhPYmplY3QodCksITApLmZvckVhY2goZnVuY3Rpb24ocil7KDAsZGVmaW5lUHJvcGVydHkuWikoZSxyLHRbcl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6Y3JlYXRlU3R5bGVQcm92aWRlcl9vd25LZXlzKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxyKSl9KX1yZXR1cm4gZX12YXIgc2xpY2VkVG9BcnJheT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk3Njg1KSx0aGVtZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDkzNjEpLHVzZUFudGRUb2tlbj1mdW5jdGlvbigpe3JldHVybiB0aGVtZS5aLnVzZVRva2VuKCkudG9rZW59LHJlc3BvbnNpdmU9X193ZWJwYWNrX3JlcXVpcmVfXyg4NjQ5OSksdXNlTWVkaWFRdWVyeU1hcD1mdW5jdGlvbigpe3ZhciB0b2tlbj11c2VBbnRkVG9rZW4oKSxicmVha3BvaW50cz17eHM6IkBtZWRpYSAobWF4LXdpZHRoOiAiLmNvbmNhdCh0b2tlbi5zY3JlZW5YU01heCwicHgpIiksc206IkBtZWRpYSAobWF4LXdpZHRoOiAiLmNvbmNhdCh0b2tlbi5zY3JlZW5TTU1heCwicHgpIiksbWQ6IkBtZWRpYSAobWF4LXdpZHRoOiAiLmNvbmNhdCh0b2tlbi5zY3JlZW5NRE1heCwicHgpIiksbGc6IkBtZWRpYSAobWF4LXdpZHRoOiAiLmNvbmNhdCh0b2tlbi5zY3JlZW5MR01heCwicHgpIikseGw6IkBtZWRpYSAobWF4LXdpZHRoOiAiLmNvbmNhdCh0b2tlbi5zY3JlZW5YTE1heCwicHgpIikseHhsOiJAbWVkaWEgKG1pbi13aWR0aDogIi5jb25jYXQodG9rZW4uc2NyZWVuWFhMTWluLCJweCkiKX07cmV0dXJuKDAscmVhY3QudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4oMCxyZXNwb25zaXZlLmYpKGJyZWFrcG9pbnRzKX0sW3Rva2VuXSl9LGNyZWF0ZVN0eWxlc19leGNsdWRlZD1bInN0eWxpc2giLCJhcHBlYXJhbmNlIiwiaXNEYXJrTW9kZSIsInByZWZpeENscyJdLF9leGNsdWRlZDI9WyJwcmVmaXhDbHMiXSxERUZBVUxUX1RIRU1FX1BST1ZJREVSPWVtb3Rpb25fZWxlbWVudF9jMzk2MTdkOF9icm93c2VyX2VzbS5hLERFRkFVTFRfVEhFTUVfQ09OVEVYVD1lbW90aW9uX2VsZW1lbnRfYzM5NjE3ZDhfYnJvd3Nlcl9lc20uVCxjcmVhdGVTdHlsZWRUaGVtZVByb3ZpZGVyX2NyZWF0ZVN0eWxlZFRoZW1lUHJvdmlkZXI9ZnVuY3Rpb24oc3R5bGVkQ29uZmlnKXtpZihzdHlsZWRDb25maWcuVGhlbWVQcm92aWRlcilyZXR1cm4gc3R5bGVkQ29uZmlnLlRoZW1lUHJvdmlkZXI7dmFyIFRoZW1lQ29udGV4dD1zdHlsZWRDb25maWcuVGhlbWVDb250ZXh0O3JldHVybiBmdW5jdGlvbihwcm9wcyl7cmV0dXJuKDAsanN4X3J1bnRpbWUuanN4KShUaGVtZUNvbnRleHQuUHJvdmlkZXIse3ZhbHVlOnByb3BzLnRoZW1lLGNoaWxkcmVuOnByb3BzLmNoaWxkcmVufSl9fSx0b0NvbnN1bWFibGVBcnJheT1fX3dlYnBhY2tfcmVxdWlyZV9fKDc0OTAyKSxtZXNzYWdlPV9fd2VicGFja19yZXF1aXJlX18oMjQ1Myksbm90aWZpY2F0aW9uPV9fd2VicGFja19yZXF1aXJlX18oMTY1NjgpLG1vZGFsPV9fd2VicGFja19yZXF1aXJlX18oOTQ4MjgpLGNvbmZpZ19wcm92aWRlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDM3ODEyKSxtYXRjaEJyb3dzZXJQcmVmZXJzPWZ1bmN0aW9uKG1vZGUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P21hdGNoTWVkaWEmJm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogIi5jb25jYXQobW9kZSwiKSIpKTp7bWF0Y2hlczohMX19LFRoZW1lTW9kZUNvbnRleHQ9KDAscmVhY3QuY3JlYXRlQ29udGV4dCkoe2FwcGVhcmFuY2U6ImxpZ2h0IixzZXRBcHBlYXJhbmNlOmZ1bmN0aW9uKCl7fSxpc0RhcmtNb2RlOiExLHRoZW1lTW9kZToibGlnaHQiLHNldFRoZW1lTW9kZTpmdW5jdGlvbigpe30sYnJvd3NlclByZWZlcnM6bnVsbCE9PShfbWF0Y2hCcm93c2VyUHJlZmVycz1tYXRjaEJyb3dzZXJQcmVmZXJzKCJkYXJrIikpJiZ2b2lkIDAhPT1fbWF0Y2hCcm93c2VyUHJlZmVycyYmX21hdGNoQnJvd3NlclByZWZlcnMubWF0Y2hlcz8iZGFyayI6ImxpZ2h0In0pLHVzZVRoZW1lTW9kZT1mdW5jdGlvbigpe3JldHVybigwLHJlYWN0LnVzZUNvbnRleHQpKFRoZW1lTW9kZUNvbnRleHQpfTtmdW5jdGlvbiBBbnRkUHJvdmlkZXJfb3duS2V5cyhlLHIpe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7ciYmKG89by5maWx0ZXIoZnVuY3Rpb24ocil7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxyKS5lbnVtZXJhYmxlfSkpLHQucHVzaC5hcHBseSh0LG8pfXJldHVybiB0fWZ1bmN0aW9uIEFudGRQcm92aWRlcl9vYmplY3RTcHJlYWQoZSl7Zm9yKHZhciByPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW3JdP2FyZ3VtZW50c1tyXTp7fTtyJTI/QW50ZFByb3ZpZGVyX293bktleXMoT2JqZWN0KHQpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHIpeygwLGRlZmluZVByb3BlcnR5LlopKGUscix0W3JdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOkFudGRQcm92aWRlcl9vd25LZXlzKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxyKSl9KX1yZXR1cm4gZX12YXIgQW50ZFByb3ZpZGVyPSgwLHJlYWN0Lm1lbW8pKGZ1bmN0aW9uKF9yZWYpe3ZhciBjaGlsZHJlbj1fcmVmLmNoaWxkcmVuLHRoZW1lUHJvcD1fcmVmLnRoZW1lLHByZWZpeENscz1fcmVmLnByZWZpeENscyxnZXRTdGF0aWNJbnN0YW5jZT1fcmVmLmdldFN0YXRpY0luc3RhbmNlLHN0YXRpY0luc3RhbmNlQ29uZmlnPV9yZWYuc3RhdGljSW5zdGFuY2VDb25maWcsX3VzZVRoZW1lTW9kZT11c2VUaGVtZU1vZGUoKSxhcHBlYXJhbmNlPV91c2VUaGVtZU1vZGUuYXBwZWFyYW5jZSxpc0RhcmtNb2RlPV91c2VUaGVtZU1vZGUuaXNEYXJrTW9kZSxfbWVzc2FnZSR1c2VNZXNzYWdlPW1lc3NhZ2UuWlAudXNlTWVzc2FnZShudWxsPT1zdGF0aWNJbnN0YW5jZUNvbmZpZz92b2lkIDA6c3RhdGljSW5zdGFuY2VDb25maWcubWVzc2FnZSksX21lc3NhZ2UkdXNlTWVzc2FnZTI9KDAsc2xpY2VkVG9BcnJheS5aKShfbWVzc2FnZSR1c2VNZXNzYWdlLDIpLG1lc3NhZ2VJbnN0YW5jZT1fbWVzc2FnZSR1c2VNZXNzYWdlMlswXSxtZXNzYWdlQ29udGV4dEhvbGRlcj1fbWVzc2FnZSR1c2VNZXNzYWdlMlsxXSxfbm90aWZpY2F0aW9uJHVzZU5vdGk9bm90aWZpY2F0aW9uLlpQLnVzZU5vdGlmaWNhdGlvbihudWxsPT1zdGF0aWNJbnN0YW5jZUNvbmZpZz92b2lkIDA6c3RhdGljSW5zdGFuY2VDb25maWcubm90aWZpY2F0aW9uKSxfbm90aWZpY2F0aW9uJHVzZU5vdGkyPSgwLHNsaWNlZFRvQXJyYXkuWikoX25vdGlmaWNhdGlvbiR1c2VOb3RpLDIpLG5vdGlmaWNhdGlvbkluc3RhbmNlPV9ub3RpZmljYXRpb24kdXNlTm90aTJbMF0sbm90aWZpY2F0aW9uQ29udGV4dEhvbGRlcj1fbm90aWZpY2F0aW9uJHVzZU5vdGkyWzFdLF9Nb2RhbCR1c2VNb2RhbD1tb2RhbC5aLnVzZU1vZGFsKCksX01vZGFsJHVzZU1vZGFsMj0oMCxzbGljZWRUb0FycmF5LlopKF9Nb2RhbCR1c2VNb2RhbCwyKSxtb2RhbEluc3RhbmNlPV9Nb2RhbCR1c2VNb2RhbDJbMF0sbW9kYWxDb250ZXh0SG9sZGVyPV9Nb2RhbCR1c2VNb2RhbDJbMV07KDAscmVhY3QudXNlRWZmZWN0KShmdW5jdGlvbigpe251bGw9PWdldFN0YXRpY0luc3RhbmNlfHxnZXRTdGF0aWNJbnN0YW5jZSh7bWVzc2FnZTptZXNzYWdlSW5zdGFuY2UsbW9kYWw6bW9kYWxJbnN0YW5jZSxub3RpZmljYXRpb246bm90aWZpY2F0aW9uSW5zdGFuY2V9KX0sW10pO3ZhciBhbnRkVGhlbWU9KDAscmVhY3QudXNlTWVtbykoZnVuY3Rpb24oKXt2YXIgYmFzZUFsZ29yaXRobT1pc0RhcmtNb2RlP3RoZW1lLlouZGFya0FsZ29yaXRobTp0aGVtZS5aLmRlZmF1bHRBbGdvcml0aG0sYW50ZFRoZW1lPXRoZW1lUHJvcDtpZigiZnVuY3Rpb24iPT10eXBlb2YgdGhlbWVQcm9wJiYoYW50ZFRoZW1lPXRoZW1lUHJvcChhcHBlYXJhbmNlKSksIWFudGRUaGVtZSlyZXR1cm57YWxnb3JpdGhtOmJhc2VBbGdvcml0aG19O3ZhciBhbGdvUHJvcD1hbnRkVGhlbWUuYWxnb3JpdGhtP2FudGRUaGVtZS5hbGdvcml0aG0gaW5zdGFuY2VvZiBBcnJheT9hbnRkVGhlbWUuYWxnb3JpdGhtOlthbnRkVGhlbWUuYWxnb3JpdGhtXTpbXTtyZXR1cm4gQW50ZFByb3ZpZGVyX29iamVjdFNwcmVhZChBbnRkUHJvdmlkZXJfb2JqZWN0U3ByZWFkKHt9LGFudGRUaGVtZSkse30se2FsZ29yaXRobTphbnRkVGhlbWUuYWxnb3JpdGhtP1tiYXNlQWxnb3JpdGhtXS5jb25jYXQoKDAsdG9Db25zdW1hYmxlQXJyYXkuWikoYWxnb1Byb3ApKTpiYXNlQWxnb3JpdGhtfSl9LFt0aGVtZVByb3AsaXNEYXJrTW9kZV0pO3JldHVybigwLGpzeF9ydW50aW1lLmpzeHMpKGNvbmZpZ19wcm92aWRlci5aUCx7cHJlZml4Q2xzOnByZWZpeENscyx0aGVtZTphbnRkVGhlbWUsY2hpbGRyZW46W21lc3NhZ2VDb250ZXh0SG9sZGVyLG5vdGlmaWNhdGlvbkNvbnRleHRIb2xkZXIsbW9kYWxDb250ZXh0SG9sZGVyLGNoaWxkcmVuXX0pfSk7ZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkoYXJyLGxlbil7KG51bGw9PWxlbnx8bGVuPmFyci5sZW5ndGgpJiYobGVuPWFyci5sZW5ndGgpO2Zvcih2YXIgaT0wLGFycjI9QXJyYXkobGVuKTtpPGxlbjtpKyspYXJyMltpXT1hcnJbaV07cmV0dXJuIGFycjJ9dmFyIGluZGV4X2VzbT1mdW5jdGlvbihkZWZhdWx0U3RhdGVWYWx1ZSxvcHRpb24pe3ZhciBhcnIsX3JlZj1vcHRpb258fHt9LGRlZmF1bHRWYWx1ZT1fcmVmLmRlZmF1bHRWYWx1ZSx2YWx1ZT1fcmVmLnZhbHVlLG9uQ2hhbmdlPV9yZWYub25DaGFuZ2UscG9zdFN0YXRlPV9yZWYucG9zdFN0YXRlLF9SZWFjdCR1c2VTdGF0ZTI9ZnVuY3Rpb24oYXJyKXtpZihBcnJheS5pc0FycmF5KGFycikpcmV0dXJuIGFycn0oYXJyPXJlYWN0LnVzZVN0YXRlKGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXZhbHVlP3ZhbHVlOnZvaWQgMCE9PWRlZmF1bHRWYWx1ZT8iZnVuY3Rpb24iPT10eXBlb2YgZGVmYXVsdFZhbHVlP2RlZmF1bHRWYWx1ZSgpOmRlZmF1bHRWYWx1ZToiZnVuY3Rpb24iPT10eXBlb2YgZGVmYXVsdFN0YXRlVmFsdWU/ZGVmYXVsdFN0YXRlVmFsdWUoKTpkZWZhdWx0U3RhdGVWYWx1ZX0pKXx8ZnVuY3Rpb24oYXJyLGkpe3ZhciBfaT1udWxsPT1hcnI/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmYXJyW1N5bWJvbC5pdGVyYXRvcl18fGFyclsiQEBpdGVyYXRvciJdO2lmKG51bGwhPV9pKXt2YXIgX3MsX2UsX3gsX3IsX2Fycj1bXSxfbj0hMCxfZD0hMTt0cnl7aWYoX3g9KF9pPV9pLmNhbGwoYXJyKSkubmV4dCwwPT09aSl7aWYoT2JqZWN0KF9pKSE9PV9pKXJldHVybjtfbj0hMX1lbHNlIGZvcig7IShfbj0oX3M9X3guY2FsbChfaSkpLmRvbmUpJiYoX2Fyci5wdXNoKF9zLnZhbHVlKSxfYXJyLmxlbmd0aCE9PWkpO19uPSEwKTt9Y2F0Y2goZXJyKXtfZD0hMCxfZT1lcnJ9ZmluYWxseXt0cnl7aWYoIV9uJiZudWxsIT1faS5yZXR1cm4mJihfcj1faS5yZXR1cm4oKSxPYmplY3QoX3IpIT09X3IpKXJldHVybn1maW5hbGx5e2lmKF9kKXRocm93IF9lfX1yZXR1cm4gX2Fycn19KGFyciwyKXx8ZnVuY3Rpb24obyxtaW5MZW4pe2lmKG8pe2lmKCJzdHJpbmciPT10eXBlb2YgbylyZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobyxtaW5MZW4pO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PW4mJm8uY29uc3RydWN0b3ImJihuPW8uY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ufHwiU2V0Ij09PW4pcmV0dXJuIEFycmF5LmZyb20obyk7aWYoIkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobyxtaW5MZW4pfX0oYXJyLDIpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKSxpbm5lclZhbHVlPV9SZWFjdCR1c2VTdGF0ZTJbMF0sc2V0SW5uZXJWYWx1ZT1fUmVhY3QkdXNlU3RhdGUyWzFdLG1lcmdlZFZhbHVlPXZvaWQgMCE9PXZhbHVlP3ZhbHVlOmlubmVyVmFsdWU7cmV0dXJuIHBvc3RTdGF0ZSYmKG1lcmdlZFZhbHVlPXBvc3RTdGF0ZShtZXJnZWRWYWx1ZSkpLFttZXJnZWRWYWx1ZSxmdW5jdGlvbihuZXdWYWx1ZSl7c2V0SW5uZXJWYWx1ZShuZXdWYWx1ZSksbWVyZ2VkVmFsdWUhPT1uZXdWYWx1ZSYmb25DaGFuZ2UmJm9uQ2hhbmdlKG5ld1ZhbHVlLG1lcmdlZFZhbHVlKX1dfSxzYWZlU3RhcnRUcmFuc2l0aW9uPWZ1bmN0aW9uKGZ1bmMpeyJmdW5jdGlvbiI9PXR5cGVvZiByZWFjdC5zdGFydFRyYW5zaXRpb24/KDAscmVhY3Quc3RhcnRUcmFuc2l0aW9uKShmdW5jKTpmdW5jKCl9LFRoZW1lT2JzZXJ2ZXI9ZnVuY3Rpb24oX3JlZil7dmFyIHRoZW1lTW9kZT1fcmVmLnRoZW1lTW9kZSxzZXRBcHBlYXJhbmNlPV9yZWYuc2V0QXBwZWFyYW5jZSxzZXRCcm93c2VyUHJlZmVycz1fcmVmLnNldEJyb3dzZXJQcmVmZXJzLG1hdGNoQnJvd3NlclRoZW1lPWZ1bmN0aW9uKCl7c2FmZVN0YXJ0VHJhbnNpdGlvbihmdW5jdGlvbigpe21hdGNoQnJvd3NlclByZWZlcnMoImRhcmsiKS5tYXRjaGVzP3NldEFwcGVhcmFuY2UoImRhcmsiKTpzZXRBcHBlYXJhbmNlKCJsaWdodCIpfSl9LHVwZGF0ZUJyb3dzZXJUaGVtZT1mdW5jdGlvbigpe3NhZmVTdGFydFRyYW5zaXRpb24oZnVuY3Rpb24oKXttYXRjaEJyb3dzZXJQcmVmZXJzKCJkYXJrIikubWF0Y2hlcz9zZXRCcm93c2VyUHJlZmVycygiZGFyayIpOnNldEJyb3dzZXJQcmVmZXJzKCJsaWdodCIpfSl9O3JldHVybigwLHJlYWN0LnVzZUxheW91dEVmZmVjdCkoZnVuY3Rpb24oKXtpZigiYXV0byIhPT10aGVtZU1vZGUpe3NhZmVTdGFydFRyYW5zaXRpb24oZnVuY3Rpb24oKXtzZXRBcHBlYXJhbmNlKHRoZW1lTW9kZSl9KTtyZXR1cm59cmV0dXJuIHNldFRpbWVvdXQobWF0Y2hCcm93c2VyVGhlbWUsMSksZGFya1RoZW1lTWF0Y2h8fChkYXJrVGhlbWVNYXRjaD1tYXRjaEJyb3dzZXJQcmVmZXJzKCJkYXJrIikpLGRhcmtUaGVtZU1hdGNoLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsbWF0Y2hCcm93c2VyVGhlbWUpLGZ1bmN0aW9uKCl7ZGFya1RoZW1lTWF0Y2gucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixtYXRjaEJyb3dzZXJUaGVtZSl9fSxbdGhlbWVNb2RlXSksKDAscmVhY3QudXNlTGF5b3V0RWZmZWN0KShmdW5jdGlvbigpe3JldHVybiBkYXJrVGhlbWVNYXRjaHx8KGRhcmtUaGVtZU1hdGNoPW1hdGNoQnJvd3NlclByZWZlcnMoImRhcmsiKSksZGFya1RoZW1lTWF0Y2guYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix1cGRhdGVCcm93c2VyVGhlbWUpLGZ1bmN0aW9uKCl7ZGFya1RoZW1lTWF0Y2gucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix1cGRhdGVCcm93c2VyVGhlbWUpfX0sW10pLG51bGx9LFRoZW1lU3dpdGNoZXI9KDAscmVhY3QubWVtbykoZnVuY3Rpb24oX3JlZjIpe3ZhciBfbWF0Y2hCcm93c2VyUHJlZmVycyxjaGlsZHJlbj1fcmVmMi5jaGlsZHJlbixhcHBlYXJhbmNlUHJvcD1fcmVmMi5hcHBlYXJhbmNlLGRlZmF1bHRBcHBlYXJhbmNlPV9yZWYyLmRlZmF1bHRBcHBlYXJhbmNlLG9uQXBwZWFyYW5jZUNoYW5nZT1fcmVmMi5vbkFwcGVhcmFuY2VDaGFuZ2UsdGhlbWVNb2RlUHJvcHM9X3JlZjIudGhlbWVNb2RlLGRlZmF1bHRUaGVtZU1vZGU9X3JlZjIuZGVmYXVsdFRoZW1lTW9kZSxvblRoZW1lTW9kZUNoYW5nZT1fcmVmMi5vblRoZW1lTW9kZUNoYW5nZSxfdXNlVGhlbWU9KDAsX3JlZjIudXNlVGhlbWUpKCksdXBwZXJBcHBlYXJhbmNlPV91c2VUaGVtZS5hcHBlYXJhbmNlLHVwcGVyVGhlbWVNb2RlPV91c2VUaGVtZS50aGVtZU1vZGUsX3VzZU1lcmdlVmFsdWU9aW5kZXhfZXNtKCJsaWdodCIse3ZhbHVlOnRoZW1lTW9kZVByb3BzLGRlZmF1bHRWYWx1ZTpudWxsIT1kZWZhdWx0VGhlbWVNb2RlP2RlZmF1bHRUaGVtZU1vZGU6dXBwZXJUaGVtZU1vZGUsb25DaGFuZ2U6ZnVuY3Rpb24odil7cmV0dXJuIG51bGw9PW9uVGhlbWVNb2RlQ2hhbmdlP3ZvaWQgMDpvblRoZW1lTW9kZUNoYW5nZSh2KX19KSxfdXNlTWVyZ2VWYWx1ZTI9KDAsc2xpY2VkVG9BcnJheS5aKShfdXNlTWVyZ2VWYWx1ZSwyKSx0aGVtZU1vZGU9X3VzZU1lcmdlVmFsdWUyWzBdLHNldFRoZW1lTW9kZT1fdXNlTWVyZ2VWYWx1ZTJbMV0sX3VzZU1lcmdlVmFsdWUzPWluZGV4X2VzbSgibGlnaHQiLHt2YWx1ZTphcHBlYXJhbmNlUHJvcCxkZWZhdWx0VmFsdWU6bnVsbCE9ZGVmYXVsdEFwcGVhcmFuY2U/ZGVmYXVsdEFwcGVhcmFuY2U6dXBwZXJBcHBlYXJhbmNlLG9uQ2hhbmdlOmZ1bmN0aW9uKHYpe3JldHVybiBudWxsPT1vbkFwcGVhcmFuY2VDaGFuZ2U/dm9pZCAwOm9uQXBwZWFyYW5jZUNoYW5nZSh2KX19KSxfdXNlTWVyZ2VWYWx1ZTQ9KDAsc2xpY2VkVG9BcnJheS5aKShfdXNlTWVyZ2VWYWx1ZTMsMiksYXBwZWFyYW5jZT1fdXNlTWVyZ2VWYWx1ZTRbMF0sc2V0QXBwZWFyYW5jZT1fdXNlTWVyZ2VWYWx1ZTRbMV0sX3VzZVN0YXRlPSgwLHJlYWN0LnVzZVN0YXRlKShudWxsIT09KF9tYXRjaEJyb3dzZXJQcmVmZXJzPW1hdGNoQnJvd3NlclByZWZlcnMoImRhcmsiKSkmJnZvaWQgMCE9PV9tYXRjaEJyb3dzZXJQcmVmZXJzJiZfbWF0Y2hCcm93c2VyUHJlZmVycy5tYXRjaGVzPyJkYXJrIjoibGlnaHQiKSxfdXNlU3RhdGUyPSgwLHNsaWNlZFRvQXJyYXkuWikoX3VzZVN0YXRlLDIpLGJyb3dzZXJQcmVmZXJzPV91c2VTdGF0ZTJbMF0sc2V0QnJvd3NlclByZWZlcnM9X3VzZVN0YXRlMlsxXSxfdXNlU3RhdGUzPSgwLHJlYWN0LnVzZVN0YXRlKSghMSksX3VzZVN0YXRlND0oMCxzbGljZWRUb0FycmF5LlopKF91c2VTdGF0ZTMsMiksc3RhcnRPYnNlcnZlcj1fdXNlU3RhdGU0WzBdLHNldFN0YXJ0T2JzZXJ2ZXI9X3VzZVN0YXRlNFsxXTtyZXR1cm4oMCxyZWFjdC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7c2FmZVN0YXJ0VHJhbnNpdGlvbihmdW5jdGlvbigpe3NldFN0YXJ0T2JzZXJ2ZXIoITApfSl9LFtdKSwoMCxqc3hfcnVudGltZS5qc3hzKShUaGVtZU1vZGVDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTp7dGhlbWVNb2RlOnRoZW1lTW9kZSxzZXRUaGVtZU1vZGU6c2V0VGhlbWVNb2RlLGFwcGVhcmFuY2U6YXBwZWFyYW5jZSxzZXRBcHBlYXJhbmNlOnNldEFwcGVhcmFuY2UsaXNEYXJrTW9kZToiZGFyayI9PT1hcHBlYXJhbmNlLGJyb3dzZXJQcmVmZXJzOmJyb3dzZXJQcmVmZXJzfSxjaGlsZHJlbjpbc3RhcnRPYnNlcnZlciYmKDAsanN4X3J1bnRpbWUuanN4KShUaGVtZU9ic2VydmVyLHt0aGVtZU1vZGU6dGhlbWVNb2RlLHNldEFwcGVhcmFuY2U6c2V0QXBwZWFyYW5jZSxzZXRCcm93c2VyUHJlZmVyczpzZXRCcm93c2VyUHJlZmVyc30pLGNoaWxkcmVuXX0pfSksY3JlYXRlQW50ZFN0eWxpc2g9ZnVuY3Rpb24oX3JlZil7dmFyIGNzcz1fcmVmLmNzcyx0b2tlbj1fcmVmLnRva2VuO3JldHVybntidXR0b25EZWZhdWx0SG92ZXI6Y3NzKHtiYWNrZ3JvdW5kQ29sb3I6dG9rZW4uY29sb3JCZ0NvbnRhaW5lcixib3JkZXI6IjFweCBzb2xpZCAiLmNvbmNhdCh0b2tlbi5jb2xvckJvcmRlciksY3Vyc29yOiJwb2ludGVyIiwiOmhvdmVyIjp7Y29sb3I6dG9rZW4uY29sb3JQcmltYXJ5SG92ZXIsYm9yZGVyQ29sb3I6dG9rZW4uY29sb3JQcmltYXJ5SG92ZXJ9LCI6YWN0aXZlIjp7Y29sb3I6dG9rZW4uY29sb3JQcmltYXJ5QWN0aXZlLGJvcmRlckNvbG9yOnRva2VuLmNvbG9yUHJpbWFyeUFjdGl2ZX19KX19LHVzZUFudGRTdHlsaXNoPWZ1bmN0aW9uKCl7dmFyIHRva2VuPXVzZUFudGRUb2tlbigpLF91c2VUaGVtZU1vZGU9dXNlVGhlbWVNb2RlKCksYXBwZWFyYW5jZT1fdXNlVGhlbWVNb2RlLmFwcGVhcmFuY2UsaXNEYXJrTW9kZT1fdXNlVGhlbWVNb2RlLmlzRGFya01vZGU7cmV0dXJuKDAscmVhY3QudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGNyZWF0ZUFudGRTdHlsaXNoKHt0b2tlbjp0b2tlbixjc3M6c2VyaWFsaXplQ1NTLGFwcGVhcmFuY2U6YXBwZWFyYW5jZSxpc0RhcmtNb2RlOmlzRGFya01vZGV9KSkubWFwKGZ1bmN0aW9uKF9yZWYpe3ZhciBfcmVmMj0oMCxzbGljZWRUb0FycmF5LlopKF9yZWYsMik7cmV0dXJuW19yZWYyWzBdLF9yZWYyWzFdLnN0eWxlc119KSl9LFt0b2tlbixhcHBlYXJhbmNlLGlzRGFya01vZGVdKX07ZnVuY3Rpb24gdXNlQW50ZFRoZW1lX293bktleXMoZSxyKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3ImJihvPW8uZmlsdGVyKGZ1bmN0aW9uKHIpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUscikuZW51bWVyYWJsZX0pKSx0LnB1c2guYXBwbHkodCxvKX1yZXR1cm4gdH1mdW5jdGlvbiB1c2VBbnRkVGhlbWVfb2JqZWN0U3ByZWFkKGUpe2Zvcih2YXIgcj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tyXT9hcmd1bWVudHNbcl06e307ciUyP3VzZUFudGRUaGVtZV9vd25LZXlzKE9iamVjdCh0KSwhMCkuZm9yRWFjaChmdW5jdGlvbihyKXsoMCxkZWZpbmVQcm9wZXJ0eS5aKShlLHIsdFtyXSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTp1c2VBbnRkVGhlbWVfb3duS2V5cyhPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24ocil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQscikpfSl9cmV0dXJuIGV9dmFyIHVzZUFudGRUaGVtZT1mdW5jdGlvbigpe3ZhciB0b2tlbj11c2VBbnRkVG9rZW4oKSxzdHlsaXNoPXVzZUFudGRTdHlsaXNoKCk7cmV0dXJuKDAscmVhY3QudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gdXNlQW50ZFRoZW1lX29iamVjdFNwcmVhZCh1c2VBbnRkVGhlbWVfb2JqZWN0U3ByZWFkKHt9LHRva2VuKSx7fSx7c3R5bGlzaDpzdHlsaXNofSl9LFt0b2tlbixzdHlsaXNoXSl9LFRva2VuQ29udGFpbmVyX2V4Y2x1ZGVkPVsic3R5bGlzaCJdO2Z1bmN0aW9uIFRva2VuQ29udGFpbmVyX293bktleXMoZSxyKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3ImJihvPW8uZmlsdGVyKGZ1bmN0aW9uKHIpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUscikuZW51bWVyYWJsZX0pKSx0LnB1c2guYXBwbHkodCxvKX1yZXR1cm4gdH1mdW5jdGlvbiBUb2tlbkNvbnRhaW5lcl9vYmplY3RTcHJlYWQoZSl7Zm9yKHZhciByPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW3JdP2FyZ3VtZW50c1tyXTp7fTtyJTI/VG9rZW5Db250YWluZXJfb3duS2V5cyhPYmplY3QodCksITApLmZvckVhY2goZnVuY3Rpb24ocil7KDAsZGVmaW5lUHJvcGVydHkuWikoZSxyLHRbcl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6VG9rZW5Db250YWluZXJfb3duS2V5cyhPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24ocil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQscikpfSl9cmV0dXJuIGV9dmFyIGNyZWF0ZVRoZW1lUHJvdmlkZXJfVG9rZW5Db250YWluZXI9ZnVuY3Rpb24oX3JlZil7dmFyIGNoaWxkcmVuPV9yZWYuY2hpbGRyZW4sY3VzdG9tVG9rZW5PckZuPV9yZWYuY3VzdG9tVG9rZW4sZGVmYXVsdEN1c3RvbVRva2VuRm49X3JlZi5kZWZhdWx0Q3VzdG9tVG9rZW4sc3R5bGlzaE9yR2V0U3R5bGlzaD1fcmVmLmN1c3RvbVN0eWxpc2gsX3JlZiRwcmVmaXhDbHM9X3JlZi5wcmVmaXhDbHMsU3R5bGVkVGhlbWVQcm92aWRlcj1fcmVmLlN0eWxlZFRoZW1lUHJvdmlkZXIsdGhlbWVTdGF0ZT11c2VUaGVtZU1vZGUoKSxhcHBlYXJhbmNlPXRoZW1lU3RhdGUuYXBwZWFyYW5jZSxpc0RhcmtNb2RlPXRoZW1lU3RhdGUuaXNEYXJrTW9kZSxfdXNlQW50ZFRoZW1lPXVzZUFudGRUaGVtZSgpLGFudGRTdHlsaXNoPV91c2VBbnRkVGhlbWUuc3R5bGlzaCx0b2tlbj0oMCxvYmplY3RXaXRob3V0UHJvcGVydGllcy5aKShfdXNlQW50ZFRoZW1lLFRva2VuQ29udGFpbmVyX2V4Y2x1ZGVkKSxkZWZhdWx0Q3VzdG9tVG9rZW49KDAscmVhY3QudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gZGVmYXVsdEN1c3RvbVRva2VuRm4/ZGVmYXVsdEN1c3RvbVRva2VuRm4gaW5zdGFuY2VvZiBGdW5jdGlvbj9kZWZhdWx0Q3VzdG9tVG9rZW5Gbih7dG9rZW46dG9rZW4sYXBwZWFyYW5jZTphcHBlYXJhbmNlLGlzRGFya01vZGU6aXNEYXJrTW9kZX0pOmRlZmF1bHRDdXN0b21Ub2tlbkZuOnt9fSxbZGVmYXVsdEN1c3RvbVRva2VuRm4sdG9rZW4sYXBwZWFyYW5jZV0pLGN1c3RvbVRva2VuPSgwLHJlYWN0LnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIGN1c3RvbVRva2VuT3JGbiBpbnN0YW5jZW9mIEZ1bmN0aW9uP1Rva2VuQ29udGFpbmVyX29iamVjdFNwcmVhZChUb2tlbkNvbnRhaW5lcl9vYmplY3RTcHJlYWQoe30sZGVmYXVsdEN1c3RvbVRva2VuKSxjdXN0b21Ub2tlbk9yRm4oe3Rva2VuOnRva2VuLGFwcGVhcmFuY2U6YXBwZWFyYW5jZSxpc0RhcmtNb2RlOmlzRGFya01vZGV9KSk6VG9rZW5Db250YWluZXJfb2JqZWN0U3ByZWFkKFRva2VuQ29udGFpbmVyX29iamVjdFNwcmVhZCh7fSxkZWZhdWx0Q3VzdG9tVG9rZW4pLGN1c3RvbVRva2VuT3JGbil9LFtkZWZhdWx0Q3VzdG9tVG9rZW4sY3VzdG9tVG9rZW5PckZuLHRva2VuLGFwcGVhcmFuY2VdKSxjdXN0b21TdHlsaXNoPSgwLHJlYWN0LnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIHN0eWxpc2hPckdldFN0eWxpc2g/c3R5bGlzaE9yR2V0U3R5bGlzaCh7dG9rZW46VG9rZW5Db250YWluZXJfb2JqZWN0U3ByZWFkKFRva2VuQ29udGFpbmVyX29iamVjdFNwcmVhZCh7fSx0b2tlbiksY3VzdG9tVG9rZW4pLHN0eWxpc2g6YW50ZFN0eWxpc2gsYXBwZWFyYW5jZTphcHBlYXJhbmNlLGlzRGFya01vZGU6aXNEYXJrTW9kZSxjc3M6c2VyaWFsaXplQ1NTfSk6e319LFtzdHlsaXNoT3JHZXRTdHlsaXNoLHRva2VuLGN1c3RvbVRva2VuLGFudGRTdHlsaXNoLGFwcGVhcmFuY2VdKSxzdHlsaXNoPSgwLHJlYWN0LnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIFRva2VuQ29udGFpbmVyX29iamVjdFNwcmVhZChUb2tlbkNvbnRhaW5lcl9vYmplY3RTcHJlYWQoe30sY3VzdG9tU3R5bGlzaCksYW50ZFN0eWxpc2gpfSxbY3VzdG9tU3R5bGlzaCxhbnRkU3R5bGlzaF0pLHRoZW1lPVRva2VuQ29udGFpbmVyX29iamVjdFNwcmVhZChUb2tlbkNvbnRhaW5lcl9vYmplY3RTcHJlYWQoVG9rZW5Db250YWluZXJfb2JqZWN0U3ByZWFkKFRva2VuQ29udGFpbmVyX29iamVjdFNwcmVhZCh7fSx0b2tlbiksY3VzdG9tVG9rZW4pLHt9LHtzdHlsaXNoOnN0eWxpc2h9LHRoZW1lU3RhdGUpLHt9LHtwcmVmaXhDbHM6dm9pZCAwPT09X3JlZiRwcmVmaXhDbHM/ImFudCI6X3JlZiRwcmVmaXhDbHN9KTtyZXR1cm4oMCxqc3hfcnVudGltZS5qc3gpKFN0eWxlZFRoZW1lUHJvdmlkZXIse3RoZW1lOnRoZW1lLGNoaWxkcmVuOmNoaWxkcmVufSl9O2Z1bmN0aW9uIGNyZWF0ZVVzZVRoZW1lX293bktleXMoZSxyKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3ImJihvPW8uZmlsdGVyKGZ1bmN0aW9uKHIpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUscikuZW51bWVyYWJsZX0pKSx0LnB1c2guYXBwbHkodCxvKX1yZXR1cm4gdH1mdW5jdGlvbiBjcmVhdGVVc2VUaGVtZV9vYmplY3RTcHJlYWQoZSl7Zm9yKHZhciByPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW3JdP2FyZ3VtZW50c1tyXTp7fTtyJTI/Y3JlYXRlVXNlVGhlbWVfb3duS2V5cyhPYmplY3QodCksITApLmZvckVhY2goZnVuY3Rpb24ocil7KDAsZGVmaW5lUHJvcGVydHkuWikoZSxyLHRbcl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6Y3JlYXRlVXNlVGhlbWVfb3duS2V5cyhPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24ocil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQscikpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gY3JlYXRlSW5zdGFuY2Vfb3duS2V5cyhlLHIpe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7ciYmKG89by5maWx0ZXIoZnVuY3Rpb24ocil7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxyKS5lbnVtZXJhYmxlfSkpLHQucHVzaC5hcHBseSh0LG8pfXJldHVybiB0fWZ1bmN0aW9uIGNyZWF0ZUluc3RhbmNlX29iamVjdFNwcmVhZChlKXtmb3IodmFyIHI9MTtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbcl0/YXJndW1lbnRzW3JdOnt9O3IlMj9jcmVhdGVJbnN0YW5jZV9vd25LZXlzKE9iamVjdCh0KSwhMCkuZm9yRWFjaChmdW5jdGlvbihyKXsoMCxkZWZpbmVQcm9wZXJ0eS5aKShlLHIsdFtyXSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTpjcmVhdGVJbnN0YW5jZV9vd25LZXlzKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxyKSl9KX1yZXR1cm4gZX12YXIgY2FjaGVNYW5hZ2VyPW5ldyBDYWNoZU1hbmFnZXI7dm9pZCAwIT09X193ZWJwYWNrX3JlcXVpcmVfXy5nJiYoX193ZWJwYWNrX3JlcXVpcmVfXy5nLl9fQU5URF9TVFlMRV9DQUNIRV9NQU5BR0VSX0ZPUl9TU1JfXz1jYWNoZU1hbmFnZXIpO3ZhciBzdHlsZUluc3RhbmNlPShlbW90aW9uMT1lbW90aW9uPWNyZWF0ZUVtb3Rpb24oe2tleTooaW50ZXJuYWxPcHRpb25zPWNyZWF0ZUluc3RhbmNlX29iamVjdFNwcmVhZChjcmVhdGVJbnN0YW5jZV9vYmplY3RTcHJlYWQoe30sb3B0aW9ucz17a2V5OiJhY3NzIixzcGVlZHk6ITF9KSx7fSx7a2V5Om51bGwhPT0oX29wdGlvbnMka2V5PW9wdGlvbnMua2V5KSYmdm9pZCAwIT09X29wdGlvbnMka2V5P19vcHRpb25zJGtleToiemNzcyIsc3BlZWR5Om51bGwhPT0oX29wdGlvbnMkc3BlZWR5PW9wdGlvbnMuc3BlZWR5KSYmdm9pZCAwIT09X29wdGlvbnMkc3BlZWR5JiZfb3B0aW9ucyRzcGVlZHl9KSkua2V5LHNwZWVkeTppbnRlcm5hbE9wdGlvbnMuc3BlZWR5LGNvbnRhaW5lcjppbnRlcm5hbE9wdGlvbnMuY29udGFpbmVyfSksRW1vdGlvbkNvbnRleHQyPUVtb3Rpb25Db250ZXh0MT0oMCxyZWFjdC5jcmVhdGVDb250ZXh0KShlbW90aW9uMSksU3R5bGVQcm92aWRlcj0oMCxyZWFjdC5tZW1vKShmdW5jdGlvbihfcmVmKXt2YXIgY2hpbGRyZW49X3JlZi5jaGlsZHJlbixvdXRlclByZWZpeD1fcmVmLnByZWZpeCxvdXRTcGVlZHk9X3JlZi5zcGVlZHksZ2V0U3R5bGVNYW5hZ2VyPV9yZWYuZ2V0U3R5bGVNYW5hZ2VyLG91dGVyQ29udGFpbmVyPV9yZWYuY29udGFpbmVyLG5vbmNlPV9yZWYubm9uY2UsaW5zZXJ0aW9uUG9pbnQ9X3JlZi5pbnNlcnRpb25Qb2ludCxzdHlsaXNQbHVnaW5zPV9yZWYuc3R5bGlzUGx1Z2lucyxsaW50ZXJzPV9yZWYubGludGVycyxhbnRkU3R5bGVQcm92aWRlclByb3BzPSgwLG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLlopKF9yZWYsX2V4Y2x1ZGVkKSxkZWZhdWx0RW1vdGlvbj0oMCxyZWFjdC51c2VDb250ZXh0KShFbW90aW9uQ29udGV4dDIpLHByZWZpeD1udWxsIT1vdXRlclByZWZpeD9vdXRlclByZWZpeDpkZWZhdWx0RW1vdGlvbi5zaGVldC5rZXksY29udGFpbmVyPW51bGwhPW91dGVyQ29udGFpbmVyP291dGVyQ29udGFpbmVyOmRlZmF1bHRFbW90aW9uLnNoZWV0LmNvbnRhaW5lcixzcGVlZHk9bnVsbCE9b3V0U3BlZWR5P291dFNwZWVkeTpkZWZhdWx0RW1vdGlvbi5zaGVldC5pc1NwZWVkeSxlbW90aW9uPSgwLHJlYWN0LnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIGluc3RhbmNlPWNyZWF0ZUVtb3Rpb24oe3NwZWVkeTpudWxsIT1zcGVlZHkmJnNwZWVkeSxrZXk6cHJlZml4LGNvbnRhaW5lcjpjb250YWluZXIsbm9uY2U6bm9uY2UsaW5zZXJ0aW9uUG9pbnQ6aW5zZXJ0aW9uUG9pbnQsc3R5bGlzUGx1Z2luczpzdHlsaXNQbHVnaW5zfSk7aWYodm9pZCAwIT09X193ZWJwYWNrX3JlcXVpcmVfXy5nKXt2YXIgY2FjaGVNYW5hZ2VyPV9fd2VicGFja19yZXF1aXJlX18uZy5fX0FOVERfU1RZTEVfQ0FDSEVfTUFOQUdFUl9GT1JfU1NSX187Y2FjaGVNYW5hZ2VyJiYoaW5zdGFuY2UuY2FjaGU9Y2FjaGVNYW5hZ2VyLmFkZChpbnN0YW5jZS5jYWNoZSkpfXJldHVybiBpbnN0YW5jZX0sW3ByZWZpeCxzcGVlZHksY29udGFpbmVyLG5vbmNlLGluc2VydGlvblBvaW50LHN0eWxpc1BsdWdpbnNdKTsoMCxyZWFjdC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7bnVsbD09Z2V0U3R5bGVNYW5hZ2VyfHxnZXRTdHlsZU1hbmFnZXIoZW1vdGlvbil9LFtlbW90aW9uXSk7dmFyIGNvbnRlbnQ9KDAsanN4X3J1bnRpbWUuanN4KShFbW90aW9uQ29udGV4dDIuUHJvdmlkZXIse3ZhbHVlOmVtb3Rpb24sY2hpbGRyZW46Y2hpbGRyZW59KTtyZXR1cm4gQm9vbGVhbihPYmplY3Qua2V5cyhhbnRkU3R5bGVQcm92aWRlclByb3BzKS5sZW5ndGgpfHxjb250YWluZXI/KDAsanN4X3J1bnRpbWUuanN4KShlcy5WOSxjcmVhdGVTdHlsZVByb3ZpZGVyX29iamVjdFNwcmVhZChjcmVhdGVTdHlsZVByb3ZpZGVyX29iamVjdFNwcmVhZCh7bGludGVyczpsaW50ZXJzLGNvbnRhaW5lcjpjb250YWluZXJ9LGFudGRTdHlsZVByb3ZpZGVyUHJvcHMpLHt9LHtjaGlsZHJlbjpjb250ZW50fSkpOmNvbnRlbnR9KSxlbW90aW9uLmNhY2hlPWNhY2hlTWFuYWdlci5hZGQoZW1vdGlvbi5jYWNoZSksQ3VzdG9tVGhlbWVDb250ZXh0PSgwLHJlYWN0LmNyZWF0ZUNvbnRleHQpKGludGVybmFsT3B0aW9ucy5jdXN0b21Ub2tlbj9pbnRlcm5hbE9wdGlvbnMuY3VzdG9tVG9rZW46e30pLHN0eWxlZFRoZW1lQ29udGV4dD1udWxsPT09KF9pbnRlcm5hbE9wdGlvbnMkc3R5bD1pbnRlcm5hbE9wdGlvbnMuc3R5bGVkKXx8dm9pZCAwPT09X2ludGVybmFsT3B0aW9ucyRzdHlsP3ZvaWQgMDpfaW50ZXJuYWxPcHRpb25zJHN0eWwuVGhlbWVDb250ZXh0LG9wdGlvbnMxPXtTdHlsZUVuZ2luZUNvbnRleHQ6U3R5bGVFbmdpbmVDb250ZXh0MT0oMCxyZWFjdC5jcmVhdGVDb250ZXh0KSh7Q3VzdG9tVGhlbWVDb250ZXh0OkN1c3RvbVRoZW1lQ29udGV4dCxTdHlsZWRUaGVtZUNvbnRleHQ6c3R5bGVkVGhlbWVDb250ZXh0LHByZWZpeENsczpudWxsPT1pbnRlcm5hbE9wdGlvbnM/dm9pZCAwOmludGVybmFsT3B0aW9ucy5wcmVmaXhDbHN9KX0sdXNlVGhlbWUxPWZ1bmN0aW9uKCl7dmFyIFN0eWxlRW5naW5lQ29udGV4dD1vcHRpb25zMS5TdHlsZUVuZ2luZUNvbnRleHQsX3VzZUNvbnRleHQ9KDAscmVhY3QudXNlQ29udGV4dCkoU3R5bGVFbmdpbmVDb250ZXh0KSxTdHlsZWRUaGVtZUNvbnRleHQ9X3VzZUNvbnRleHQuU3R5bGVkVGhlbWVDb250ZXh0LEN1c3RvbVRoZW1lQ29udGV4dD1fdXNlQ29udGV4dC5DdXN0b21UaGVtZUNvbnRleHQscHJlZml4Q2xzPV91c2VDb250ZXh0LnByZWZpeENscyxhbnRkVGhlbWU9dXNlQW50ZFRoZW1lKCksdGhlbWVTdGF0ZT11c2VUaGVtZU1vZGUoKSxkZWZhdWx0Q3VzdG9tVGhlbWU9KDAscmVhY3QudXNlQ29udGV4dCkoQ3VzdG9tVGhlbWVDb250ZXh0KSxzdHlsZWRUaGVtZT0oMCxyZWFjdC51c2VDb250ZXh0KShudWxsIT1TdHlsZWRUaGVtZUNvbnRleHQ/U3R5bGVkVGhlbWVDb250ZXh0OkRFRkFVTFRfVEhFTUVfQ09OVEVYVCl8fHt9LGluaXRUaGVtZT0oMCxyZWFjdC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiBjcmVhdGVVc2VUaGVtZV9vYmplY3RTcHJlYWQoY3JlYXRlVXNlVGhlbWVfb2JqZWN0U3ByZWFkKGNyZWF0ZVVzZVRoZW1lX29iamVjdFNwcmVhZChjcmVhdGVVc2VUaGVtZV9vYmplY3RTcHJlYWQoe30sYW50ZFRoZW1lKSx0aGVtZVN0YXRlKSxkZWZhdWx0Q3VzdG9tVGhlbWUpLHt9LHtwcmVmaXhDbHM6cHJlZml4Q2xzfHwiYW50In0pfSxbYW50ZFRoZW1lLHRoZW1lU3RhdGUscHJlZml4Q2xzLGRlZmF1bHRDdXN0b21UaGVtZV0pO3JldHVybiBzdHlsZWRUaGVtZSYmMCE9PU9iamVjdC5rZXlzKHN0eWxlZFRoZW1lKS5sZW5ndGg/c3R5bGVkVGhlbWU6aW5pdFRoZW1lfSxoYXNoUHJpb3JpdHk9KF9yZWY9e2hhc2hQcmlvcml0eTppbnRlcm5hbE9wdGlvbnMuaGFzaFByaW9yaXR5LHVzZVRoZW1lOnVzZVRoZW1lMSxFbW90aW9uQ29udGV4dDpFbW90aW9uQ29udGV4dDF9KS5oYXNoUHJpb3JpdHksdXNlVGhlbWU9X3JlZi51c2VUaGVtZSxFbW90aW9uQ29udGV4dD1fcmVmLkVtb3Rpb25Db250ZXh0LGNyZWF0ZVN0eWxlcz1mdW5jdGlvbihzdHlsZU9yR2V0U3R5bGUsb3B0aW9ucyl7dmFyIHN0eWxlRmlsZU5hbWU9bnVsbD09b3B0aW9ucz92b2lkIDA6b3B0aW9ucy5fX0JBQkVMX0ZJTEVfTkFNRV9fLHVzaW5nQmFiZWw9ISFzdHlsZUZpbGVOYW1lO3JldHVybiBmdW5jdGlvbihwcm9wcyl7dmFyIHRoZW1lPXVzZVRoZW1lKCksX2NyZWF0ZUNTUz1jcmVhdGVDU1MoKDAscmVhY3QudXNlQ29udGV4dCkoRW1vdGlvbkNvbnRleHQpLmNhY2hlLHtoYXNoUHJpb3JpdHk6KG51bGw9PW9wdGlvbnM/dm9pZCAwOm9wdGlvbnMuaGFzaFByaW9yaXR5KXx8aGFzaFByaW9yaXR5LGxhYmVsOm51bGw9PW9wdGlvbnM/dm9pZCAwOm9wdGlvbnMubGFiZWx9KSxjeD1fY3JlYXRlQ1NTLmN4LHRvQ2xhc3NOYW1lPV9jcmVhdGVDU1MuY3NzLHJlc3BvbnNpdmVNYXA9dXNlTWVkaWFRdWVyeU1hcCgpLHN0eWxlcz0oMCxyZWFjdC51c2VNZW1vKShmdW5jdGlvbigpe3ZhciB0ZW1wU3R5bGVzO2lmKHN0eWxlT3JHZXRTdHlsZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKXt2YXIgc3R5bGlzaD10aGVtZS5zdHlsaXNoLGFwcGVhcmFuY2U9dGhlbWUuYXBwZWFyYW5jZSxpc0RhcmtNb2RlPXRoZW1lLmlzRGFya01vZGUscHJlZml4Q2xzPXRoZW1lLnByZWZpeENscyx0b2tlbj0oMCxvYmplY3RXaXRob3V0UHJvcGVydGllcy5aKSh0aGVtZSxjcmVhdGVTdHlsZXNfZXhjbHVkZWQpLHJlc3BvbnNpdmU9ZnVuY3Rpb24oc3R5bGVzKXtyZXR1cm4gT2JqZWN0LmVudHJpZXMoc3R5bGVzKS5tYXAoZnVuY3Rpb24oX3JlZil7dmFyIF9yZWYyPSgwLHNsaWNlZFRvQXJyYXkuWikoX3JlZiwyKSxrZXk9X3JlZjJbMF0sdmFsdWU9X3JlZjJbMV0sc3RyPXZhbHVlO3JldHVybiBpc1JlYWN0Q3NzUmVzdWx0KHZhbHVlKXx8KHN0cj1zZXJpYWxpemVDU1ModmFsdWUpKSxyZXNwb25zaXZlTWFwW2tleV0/IiIuY29uY2F0KHJlc3BvbnNpdmVNYXBba2V5XSwiIHsiKS5jb25jYXQoc3RyLnN0eWxlcywifSIpOiIifSkuam9pbigiIil9O09iamVjdC5hc3NpZ24ocmVzcG9uc2l2ZSxyZXNwb25zaXZlTWFwKSx0ZW1wU3R5bGVzPXN0eWxlT3JHZXRTdHlsZSh7dG9rZW46dG9rZW4sc3R5bGlzaDpzdHlsaXNoLGFwcGVhcmFuY2U6YXBwZWFyYW5jZSxpc0RhcmtNb2RlOmlzRGFya01vZGUscHJlZml4Q2xzOnByZWZpeENscyxjeDpjeCxjc3M6c2VyaWFsaXplQ1NTLHJlc3BvbnNpdmU6cmVzcG9uc2l2ZX0scHJvcHMpfWVsc2UgdGVtcFN0eWxlcz1zdHlsZU9yR2V0U3R5bGU7cmV0dXJuIm9iamVjdCI9PT0oMCxlc21fdHlwZW9mLlopKHRlbXBTdHlsZXMpJiYodGVtcFN0eWxlcz1pc1JlYWN0Q3NzUmVzdWx0KHRlbXBTdHlsZXMpP3RvQ2xhc3NOYW1lKHRlbXBTdHlsZXMpOk9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh0ZW1wU3R5bGVzKS5tYXAoZnVuY3Rpb24oX3JlZjIpe3ZhciBfcmVmMz0oMCxzbGljZWRUb0FycmF5LlopKF9yZWYyLDIpLGtleT1fcmVmM1swXSx2YWx1ZT1fcmVmM1sxXSxsYWJlbD11c2luZ0JhYmVsPyIiLmNvbmNhdChzdHlsZUZpbGVOYW1lLCItIikuY29uY2F0KGtleSk6dm9pZCAwO3JldHVybiJvYmplY3QiPT09KDAsZXNtX3R5cGVvZi5aKSh2YWx1ZSk/dXNpbmdCYWJlbD9ba2V5LHRvQ2xhc3NOYW1lKHZhbHVlLCJsYWJlbDoiLmNvbmNhdChsYWJlbCkpXTpba2V5LHRvQ2xhc3NOYW1lKHZhbHVlKV06W2tleSx2YWx1ZV19KSkpLHRlbXBTdHlsZXN9LFtwcm9wcyx0aGVtZV0pO3JldHVybigwLHJlYWN0LnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIHByZWZpeENscz10aGVtZS5wcmVmaXhDbHM7cmV0dXJue3N0eWxlczpzdHlsZXMsY3g6Y3gsdGhlbWU6KDAsb2JqZWN0V2l0aG91dFByb3BlcnRpZXMuWikodGhlbWUsX2V4Y2x1ZGVkMikscHJlZml4Q2xzOnByZWZpeENsc319LFtzdHlsZXMsdGhlbWVdKX19LERlZmF1bHRTdHlsZWRUaGVtZVByb3ZpZGVyPShvcHRpb249e3N0eWxlZENvbmZpZzppbnRlcm5hbE9wdGlvbnMuc3R5bGVkLFN0eWxlRW5naW5lQ29udGV4dDpTdHlsZUVuZ2luZUNvbnRleHQxLHVzZVRoZW1lOnVzZVRoZW1lMX0pLnN0eWxlZENvbmZpZz9jcmVhdGVTdHlsZWRUaGVtZVByb3ZpZGVyX2NyZWF0ZVN0eWxlZFRoZW1lUHJvdmlkZXIob3B0aW9uLnN0eWxlZENvbmZpZyk6dm9pZCAwLFN0eWxlRW5naW5lQ29udGV4dD1vcHRpb24uU3R5bGVFbmdpbmVDb250ZXh0LFRoZW1lUHJvdmlkZXI9KDAscmVhY3QubWVtbykoZnVuY3Rpb24oX3JlZil7dmFyIGNoaWxkcmVuPV9yZWYuY2hpbGRyZW4sY3VzdG9tVG9rZW49X3JlZi5jdXN0b21Ub2tlbixjdXN0b21TdHlsaXNoPV9yZWYuY3VzdG9tU3R5bGlzaCx0aGVtZT1fcmVmLnRoZW1lLGdldFN0YXRpY0luc3RhbmNlPV9yZWYuZ2V0U3RhdGljSW5zdGFuY2Usb3V0UHJlZml4Q2xzPV9yZWYucHJlZml4Q2xzLHN0YXRpY0luc3RhbmNlQ29uZmlnPV9yZWYuc3RhdGljSW5zdGFuY2VDb25maWcsYXBwZWFyYW5jZT1fcmVmLmFwcGVhcmFuY2UsZGVmYXVsdEFwcGVhcmFuY2U9X3JlZi5kZWZhdWx0QXBwZWFyYW5jZSxvbkFwcGVhcmFuY2VDaGFuZ2U9X3JlZi5vbkFwcGVhcmFuY2VDaGFuZ2UsdGhlbWVNb2RlPV9yZWYudGhlbWVNb2RlLGRlZmF1bHRUaGVtZU1vZGU9X3JlZi5kZWZhdWx0VGhlbWVNb2RlLG9uVGhlbWVNb2RlQ2hhbmdlPV9yZWYub25UaGVtZU1vZGVDaGFuZ2Usc3R5bGVkPV9yZWYuc3R5bGVkLF91c2VDb250ZXh0PSgwLHJlYWN0LnVzZUNvbnRleHQpKFN0eWxlRW5naW5lQ29udGV4dCksZGVmYXVsdFByZWZpeENscz1fdXNlQ29udGV4dC5wcmVmaXhDbHMsU3R5bGVkVGhlbWVDb250ZXh0PV91c2VDb250ZXh0LlN0eWxlZFRoZW1lQ29udGV4dCxDdXN0b21UaGVtZUNvbnRleHQ9X3VzZUNvbnRleHQuQ3VzdG9tVGhlbWVDb250ZXh0LGRlZmF1bHRDdXN0b21Ub2tlbj0oMCxyZWFjdC51c2VDb250ZXh0KShDdXN0b21UaGVtZUNvbnRleHQpLFN0eWxlZFRoZW1lUHJvdmlkZXI9c3R5bGVkP2NyZWF0ZVN0eWxlZFRoZW1lUHJvdmlkZXJfY3JlYXRlU3R5bGVkVGhlbWVQcm92aWRlcihzdHlsZWQpOkRlZmF1bHRTdHlsZWRUaGVtZVByb3ZpZGVyfHxERUZBVUxUX1RIRU1FX1BST1ZJREVSLHByZWZpeENscz1vdXRQcmVmaXhDbHN8fGRlZmF1bHRQcmVmaXhDbHM7cmV0dXJuKDAsanN4X3J1bnRpbWUuanN4KShTdHlsZUVuZ2luZUNvbnRleHQuUHJvdmlkZXIse3ZhbHVlOntwcmVmaXhDbHM6cHJlZml4Q2xzLFN0eWxlZFRoZW1lQ29udGV4dDoobnVsbD09c3R5bGVkP3ZvaWQgMDpzdHlsZWQuVGhlbWVDb250ZXh0KXx8U3R5bGVkVGhlbWVDb250ZXh0fHxERUZBVUxUX1RIRU1FX0NPTlRFWFQsQ3VzdG9tVGhlbWVDb250ZXh0OkN1c3RvbVRoZW1lQ29udGV4dH0sY2hpbGRyZW46KDAsanN4X3J1bnRpbWUuanN4KShUaGVtZVN3aXRjaGVyLHt0aGVtZU1vZGU6dGhlbWVNb2RlLGRlZmF1bHRUaGVtZU1vZGU6ZGVmYXVsdFRoZW1lTW9kZSxvblRoZW1lTW9kZUNoYW5nZTpvblRoZW1lTW9kZUNoYW5nZSxkZWZhdWx0QXBwZWFyYW5jZTpkZWZhdWx0QXBwZWFyYW5jZSxhcHBlYXJhbmNlOmFwcGVhcmFuY2Usb25BcHBlYXJhbmNlQ2hhbmdlOm9uQXBwZWFyYW5jZUNoYW5nZSx1c2VUaGVtZTpvcHRpb24udXNlVGhlbWUsY2hpbGRyZW46KDAsanN4X3J1bnRpbWUuanN4KShBbnRkUHJvdmlkZXIse3ByZWZpeENsczpwcmVmaXhDbHMsc3RhdGljSW5zdGFuY2VDb25maWc6c3RhdGljSW5zdGFuY2VDb25maWcsdGhlbWU6dGhlbWUsZ2V0U3RhdGljSW5zdGFuY2U6Z2V0U3RhdGljSW5zdGFuY2UsY2hpbGRyZW46KDAsanN4X3J1bnRpbWUuanN4KShjcmVhdGVUaGVtZVByb3ZpZGVyX1Rva2VuQ29udGFpbmVyLHtwcmVmaXhDbHM6cHJlZml4Q2xzLGN1c3RvbVRva2VuOmN1c3RvbVRva2VuLGRlZmF1bHRDdXN0b21Ub2tlbjpkZWZhdWx0Q3VzdG9tVG9rZW4sY3VzdG9tU3R5bGlzaDpjdXN0b21TdHlsaXNoLFN0eWxlZFRoZW1lUHJvdmlkZXI6U3R5bGVkVGhlbWVQcm92aWRlcixjaGlsZHJlbjpjaGlsZHJlbn0pfSl9KX0pfSksY3g9Y3JlYXRlQ1NTKGVtb3Rpb24uY2FjaGUse2hhc2hQcmlvcml0eTppbnRlcm5hbE9wdGlvbnMuaGFzaFByaW9yaXR5fSkuY3gsaW5qZWN0R2xvYmFsPWVtb3Rpb24uaW5qZWN0R2xvYmFsLHtjcmVhdGVTdHlsZXM6Y3JlYXRlU3R5bGVzLGNyZWF0ZUdsb2JhbFN0eWxlOmZ1bmN0aW9uKCl7Zm9yKHZhciBfbGVuPWFyZ3VtZW50cy5sZW5ndGgsc3R5bGVzPUFycmF5KF9sZW4pLF9rZXk9MDtfa2V5PF9sZW47X2tleSsrKXN0eWxlc1tfa2V5XT1hcmd1bWVudHNbX2tleV07cmV0dXJuKDAscmVhY3QubWVtbykoZnVuY3Rpb24ocHJvcHMpe3ZhciB0aGVtZT11c2VUaGVtZTEoKTtyZXR1cm4oMCxqc3hfcnVudGltZS5qc3gpKEdsb2JhbCx7c3R5bGVzOigwLGVtb3Rpb25fc2VyaWFsaXplX2Jyb3dzZXJfZXNtLk8pKHN0eWxlcyx2b2lkIDAsX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LHByb3BzKSx7fSx7dGhlbWU6dGhlbWV9KSl9KX0pfSxjcmVhdGVTdHlsaXNoOmZ1bmN0aW9uKGNzc1N0eWxlT3JHZXRDc3NTdHlsZUZuKXt2YXIgdXNlU3R5bGVzPWNyZWF0ZVN0eWxlcyhjc3NTdHlsZU9yR2V0Q3NzU3R5bGVGbik7cmV0dXJuIGZ1bmN0aW9uKHByb3BzKXtyZXR1cm4gdXNlU3R5bGVzKHByb3BzKS5zdHlsZXN9fSxjc3M6c2VyaWFsaXplQ1NTLGN4OmN4LGtleWZyYW1lczplbW90aW9uLmtleWZyYW1lcyxpbmplY3RHbG9iYWw6aW5qZWN0R2xvYmFsLHN0eWxlTWFuYWdlcjplbW90aW9uLHVzZVRoZW1lOnVzZVRoZW1lMSxTdHlsZVByb3ZpZGVyOlN0eWxlUHJvdmlkZXIsVGhlbWVQcm92aWRlcjpUaGVtZVByb3ZpZGVyfSksY3JlYXRlU3R5bGVzMT1zdHlsZUluc3RhbmNlLmNyZWF0ZVN0eWxlcyxmdW5jdGlvbnNfa2V5ZnJhbWVzPShzdHlsZUluc3RhbmNlLmNyZWF0ZUdsb2JhbFN0eWxlLHN0eWxlSW5zdGFuY2UuY3JlYXRlU3R5bGlzaCxzdHlsZUluc3RhbmNlLmNzcyxzdHlsZUluc3RhbmNlLmN4LHN0eWxlSW5zdGFuY2Uua2V5ZnJhbWVzKTtzdHlsZUluc3RhbmNlLmluamVjdEdsb2JhbCxzdHlsZUluc3RhbmNlLnN0eWxlTWFuYWdlcixzdHlsZUluc3RhbmNlLlRoZW1lUHJvdmlkZXIsc3R5bGVJbnN0YW5jZS5TdHlsZVByb3ZpZGVyLHN0eWxlSW5zdGFuY2UudXNlVGhlbWV9LDI4NzQzOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtGOmZ1bmN0aW9uKCl7cmV0dXJuIHVzZVJlc3BvbnNpdmV9fSk7dmFyIF91dGlsc19yZXNwb25zaXZlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXyg4NjQ5OSksYW50ZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oNzUzMDIpLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksdXNlUmVzcG9uc2l2ZT1mdW5jdGlvbigpe3ZhciBicmVha3BvaW50cz1hbnRkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uWlAudXNlQnJlYWtwb2ludCgpO3JldHVybigwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4oMCxfdXRpbHNfcmVzcG9uc2l2ZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmYpKGJyZWFrcG9pbnRzKX0sW2JyZWFrcG9pbnRzXSl9fSw4NjQ5OTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7ZjpmdW5jdGlvbigpe3JldHVybiBjb252ZXJ0QnJlYWtwb2ludFRvUmVzcG9uc2l2ZX19KTt2YXIgX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fZGVmaW5lUHJvcGVydHlfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ5NDIpO2Z1bmN0aW9uIG93bktleXMoZSxyKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3ImJihvPW8uZmlsdGVyKGZ1bmN0aW9uKHIpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUscikuZW51bWVyYWJsZX0pKSx0LnB1c2guYXBwbHkodCxvKX1yZXR1cm4gdH1mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKGUpe2Zvcih2YXIgcj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tyXT9hcmd1bWVudHNbcl06e307ciUyP293bktleXMoT2JqZWN0KHQpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHIpeygwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX2RlZmluZVByb3BlcnR5X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoZSxyLHRbcl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6b3duS2V5cyhPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24ocil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQscikpfSl9cmV0dXJuIGV9dmFyIGNvbnZlcnRCcmVha3BvaW50VG9SZXNwb25zaXZlPWZ1bmN0aW9uKGJyZWFrcG9pbnRzKXtyZXR1cm4gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LGJyZWFrcG9pbnRzKSx7fSx7bW9iaWxlOmJyZWFrcG9pbnRzLnhzLHRhYmxldDpicmVha3BvaW50cy5tZCxsYXB0b3A6YnJlYWtwb2ludHMubGcsZGVza3RvcDpicmVha3BvaW50cy54eGx9KX19LDk0MTg0OmZ1bmN0aW9uKG1vZHVsZSxleHBvcnRzKXt2YXIgX19XRUJQQUNLX0FNRF9ERUZJTkVfUkVTVUxUX187IC8qIQoJQ29weXJpZ2h0IChjKSAyMDE4IEplZCBXYXRzb24uCglMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UgKE1JVCksIHNlZQoJaHR0cDovL2plZHdhdHNvbi5naXRodWIuaW8vY2xhc3NuYW1lcwoqLyAhZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGhhc093bj17fS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBjbGFzc05hbWVzKCl7Zm9yKHZhciBjbGFzc2VzPVtdLGk9MDtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXt2YXIgYXJnPWFyZ3VtZW50c1tpXTtpZihhcmcpe3ZhciBhcmdUeXBlPXR5cGVvZiBhcmc7aWYoInN0cmluZyI9PT1hcmdUeXBlfHwibnVtYmVyIj09PWFyZ1R5cGUpY2xhc3Nlcy5wdXNoKGFyZyk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGFyZykpe2lmKGFyZy5sZW5ndGgpe3ZhciBpbm5lcj1jbGFzc05hbWVzLmFwcGx5KG51bGwsYXJnKTtpbm5lciYmY2xhc3Nlcy5wdXNoKGlubmVyKX19ZWxzZSBpZigib2JqZWN0Ij09PWFyZ1R5cGUpe2lmKGFyZy50b1N0cmluZyE9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcmJiFhcmcudG9TdHJpbmcudG9TdHJpbmcoKS5pbmNsdWRlcygiW25hdGl2ZSBjb2RlXSIpKXtjbGFzc2VzLnB1c2goYXJnLnRvU3RyaW5nKCkpO2NvbnRpbnVlfWZvcih2YXIga2V5IGluIGFyZyloYXNPd24uY2FsbChhcmcsa2V5KSYmYXJnW2tleV0mJmNsYXNzZXMucHVzaChrZXkpfX19cmV0dXJuIGNsYXNzZXMuam9pbigiICIpfW1vZHVsZS5leHBvcnRzPyhjbGFzc05hbWVzLmRlZmF1bHQ9Y2xhc3NOYW1lcyxtb2R1bGUuZXhwb3J0cz1jbGFzc05hbWVzKTp2b2lkIDAhPT0oX19XRUJQQUNLX0FNRF9ERUZJTkVfUkVTVUxUX189KGZ1bmN0aW9uKCl7cmV0dXJuIGNsYXNzTmFtZXN9KS5hcHBseShleHBvcnRzLFtdKSkmJihtb2R1bGUuZXhwb3J0cz1fX1dFQlBBQ0tfQU1EX0RFRklORV9SRVNVTFRfXyl9KCl9LDIwNjQwOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO3ZhciBkZXNlbGVjdEN1cnJlbnQ9X193ZWJwYWNrX3JlcXVpcmVfXygxMTc0MiksY2xpcGJvYXJkVG9JRTExRm9ybWF0dGluZz17InRleHQvcGxhaW4iOiJUZXh0IiwidGV4dC9odG1sIjoiVXJsIixkZWZhdWx0OiJUZXh0In07bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24odGV4dCxvcHRpb25zKXt2YXIgbWVzc2FnZSxjb3B5S2V5LGRlYnVnLG1lc3NhZ2UxLHJlc2VsZWN0UHJldmlvdXMscmFuZ2Usc2VsZWN0aW9uLG1hcmssc3VjY2Vzcz0hMTtvcHRpb25zfHwob3B0aW9ucz17fSksZGVidWc9b3B0aW9ucy5kZWJ1Z3x8ITE7dHJ5e2lmKHJlc2VsZWN0UHJldmlvdXM9ZGVzZWxlY3RDdXJyZW50KCkscmFuZ2U9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxzZWxlY3Rpb249ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCksKG1hcms9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKS50ZXh0Q29udGVudD10ZXh0LG1hcmsuYXJpYUhpZGRlbj0idHJ1ZSIsbWFyay5zdHlsZS5hbGw9InVuc2V0IixtYXJrLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsbWFyay5zdHlsZS50b3A9MCxtYXJrLnN0eWxlLmNsaXA9InJlY3QoMCwgMCwgMCwgMCkiLG1hcmsuc3R5bGUud2hpdGVTcGFjZT0icHJlIixtYXJrLnN0eWxlLndlYmtpdFVzZXJTZWxlY3Q9InRleHQiLG1hcmsuc3R5bGUuTW96VXNlclNlbGVjdD0idGV4dCIsbWFyay5zdHlsZS5tc1VzZXJTZWxlY3Q9InRleHQiLG1hcmsuc3R5bGUudXNlclNlbGVjdD0idGV4dCIsbWFyay5hZGRFdmVudExpc3RlbmVyKCJjb3B5IixmdW5jdGlvbihlKXtpZihlLnN0b3BQcm9wYWdhdGlvbigpLG9wdGlvbnMuZm9ybWF0KXtpZihlLnByZXZlbnREZWZhdWx0KCksdm9pZCAwPT09ZS5jbGlwYm9hcmREYXRhKXtkZWJ1ZyYmY29uc29sZS53YXJuKCJ1bmFibGUgdG8gdXNlIGUuY2xpcGJvYXJkRGF0YSIpLGRlYnVnJiZjb25zb2xlLndhcm4oInRyeWluZyBJRSBzcGVjaWZpYyBzdHVmZiIpLHdpbmRvdy5jbGlwYm9hcmREYXRhLmNsZWFyRGF0YSgpO3ZhciBmb3JtYXQ9Y2xpcGJvYXJkVG9JRTExRm9ybWF0dGluZ1tvcHRpb25zLmZvcm1hdF18fGNsaXBib2FyZFRvSUUxMUZvcm1hdHRpbmcuZGVmYXVsdDt3aW5kb3cuY2xpcGJvYXJkRGF0YS5zZXREYXRhKGZvcm1hdCx0ZXh0KX1lbHNlIGUuY2xpcGJvYXJkRGF0YS5jbGVhckRhdGEoKSxlLmNsaXBib2FyZERhdGEuc2V0RGF0YShvcHRpb25zLmZvcm1hdCx0ZXh0KX1vcHRpb25zLm9uQ29weSYmKGUucHJldmVudERlZmF1bHQoKSxvcHRpb25zLm9uQ29weShlLmNsaXBib2FyZERhdGEpKX0pLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobWFyaykscmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKG1hcmspLHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSksIWRvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5IikpdGhyb3cgRXJyb3IoImNvcHkgY29tbWFuZCB3YXMgdW5zdWNjZXNzZnVsIik7c3VjY2Vzcz0hMH1jYXRjaChlcnIxKXtkZWJ1ZyYmY29uc29sZS5lcnJvcigidW5hYmxlIHRvIGNvcHkgdXNpbmcgZXhlY0NvbW1hbmQ6ICIsZXJyMSksZGVidWcmJmNvbnNvbGUud2FybigidHJ5aW5nIElFIHNwZWNpZmljIHN0dWZmIik7dHJ5e3dpbmRvdy5jbGlwYm9hcmREYXRhLnNldERhdGEob3B0aW9ucy5mb3JtYXR8fCJ0ZXh0Iix0ZXh0KSxvcHRpb25zLm9uQ29weSYmb3B0aW9ucy5vbkNvcHkod2luZG93LmNsaXBib2FyZERhdGEpLHN1Y2Nlc3M9ITB9Y2F0Y2goZXJyKXtkZWJ1ZyYmY29uc29sZS5lcnJvcigidW5hYmxlIHRvIGNvcHkgdXNpbmcgY2xpcGJvYXJkRGF0YTogIixlcnIpLGRlYnVnJiZjb25zb2xlLmVycm9yKCJmYWxsaW5nIGJhY2sgdG8gcHJvbXB0IiksbWVzc2FnZT0ibWVzc2FnZSJpbiBvcHRpb25zP29wdGlvbnMubWVzc2FnZToiQ29weSB0byBjbGlwYm9hcmQ6ICN7a2V5fSwgRW50ZXIiLGNvcHlLZXk9KC9tYWMgb3MgeC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk/IuKMmCI6IkN0cmwiKSsiK0MiLG1lc3NhZ2UxPW1lc3NhZ2UucmVwbGFjZSgvI3tccyprZXlccyp9L2csY29weUtleSksd2luZG93LnByb21wdChtZXNzYWdlMSx0ZXh0KX19ZmluYWxseXtzZWxlY3Rpb24mJigiZnVuY3Rpb24iPT10eXBlb2Ygc2VsZWN0aW9uLnJlbW92ZVJhbmdlP3NlbGVjdGlvbi5yZW1vdmVSYW5nZShyYW5nZSk6c2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpKSxtYXJrJiZkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG1hcmspLHJlc2VsZWN0UHJldmlvdXMoKX1yZXR1cm4gc3VjY2Vzc319LDI3NDg0OmZ1bmN0aW9uKG1vZHVsZSl7dmFyIHIsaSxzLHUsbyxjLGYsaCxkLGwsJCx5LG0sZyxELHAsUyx3LE8sYixfLGs7bW9kdWxlLmV4cG9ydHM9KHI9Im1pbGxpc2Vjb25kIixpPSJzZWNvbmQiLHM9Im1pbnV0ZSIsdT0iaG91ciIsbz0id2VlayIsYz0ibW9udGgiLGY9InF1YXJ0ZXIiLGg9InllYXIiLGQ9ImRhdGUiLGw9IkludmFsaWQgRGF0ZSIsJD0vXihcZHs0fSlbLS9dPyhcZHsxLDJ9KT9bLS9dPyhcZHswLDJ9KVtUdFxzXSooXGR7MSwyfSk/Oj8oXGR7MSwyfSk/Oj8oXGR7MSwyfSk/Wy46XT8oXGQrKT8kLyx5PS9cWyhbXlxdXSspXXxZezEsNH18TXsxLDR9fER7MSwyfXxkezEsNH18SHsxLDJ9fGh7MSwyfXxhfEF8bXsxLDJ9fHN7MSwyfXxaezEsMn18U1NTL2csbT1mdW5jdGlvbih0LGUsbil7dmFyIHI9U3RyaW5nKHQpO3JldHVybiFyfHxyLmxlbmd0aD49ZT90OiIiK0FycmF5KGUrMS1yLmxlbmd0aCkuam9pbihuKSt0fSwoRD17fSlbZz0iZW4iXT17bmFtZToiZW4iLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSxtb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksb3JkaW5hbDpmdW5jdGlvbih0KXt2YXIgZT1bInRoIiwic3QiLCJuZCIsInJkIl0sbj10JTEwMDtyZXR1cm4iWyIrdCsoZVsobi0yMCklMTBdfHxlW25dfHwidGgiKSsiXSJ9fSxwPSIkaXNEYXlqc09iamVjdCIsUz1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIF98fCEoIXR8fCF0W3BdKX0sdz1mdW5jdGlvbiB0KGUsbixyKXt2YXIgaTtpZighZSlyZXR1cm4gZztpZigic3RyaW5nIj09dHlwZW9mIGUpe3ZhciBzPWUudG9Mb3dlckNhc2UoKTtEW3NdJiYoaT1zKSxuJiYoRFtzXT1uLGk9cyk7dmFyIHU9ZS5zcGxpdCgiLSIpO2lmKCFpJiZ1Lmxlbmd0aD4xKXJldHVybiB0KHVbMF0pfWVsc2V7dmFyIGE9ZS5uYW1lO0RbYV09ZSxpPWF9cmV0dXJuIXImJmkmJihnPWkpLGl8fCFyJiZnfSxPPWZ1bmN0aW9uKHQsZSl7aWYoUyh0KSlyZXR1cm4gdC5jbG9uZSgpO3ZhciBuPSJvYmplY3QiPT10eXBlb2YgZT9lOnt9O3JldHVybiBuLmRhdGU9dCxuLmFyZ3M9YXJndW1lbnRzLG5ldyBfKG4pfSwoYj17czptLHo6ZnVuY3Rpb24odCl7dmFyIGU9LXQudXRjT2Zmc2V0KCksbj1NYXRoLmFicyhlKTtyZXR1cm4oZTw9MD8iKyI6Ii0iKSttKE1hdGguZmxvb3Iobi82MCksMiwiMCIpKyI6IittKG4lNjAsMiwiMCIpfSxtOmZ1bmN0aW9uIHQoZSxuKXtpZihlLmRhdGUoKTxuLmRhdGUoKSlyZXR1cm4tdChuLGUpO3ZhciByPTEyKihuLnllYXIoKS1lLnllYXIoKSkrKG4ubW9udGgoKS1lLm1vbnRoKCkpLGk9ZS5jbG9uZSgpLmFkZChyLGMpLHM9bi1pPDAsdT1lLmNsb25lKCkuYWRkKHIrKHM/LTE6MSksYyk7cmV0dXJuKygtKHIrKG4taSkvKHM/aS11OnUtaSkpfHwwKX0sYTpmdW5jdGlvbih0KXtyZXR1cm4gdDwwP01hdGguY2VpbCh0KXx8MDpNYXRoLmZsb29yKHQpfSxwOmZ1bmN0aW9uKHQpe3JldHVybih7TTpjLHk6aCx3Om8sZDoiZGF5IixEOmQsaDp1LG06cyxzOmksbXM6cixROmZ9KVt0XXx8U3RyaW5nKHR8fCIiKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL3MkLywiIil9LHU6ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXR9fSkubD13LGIuaT1TLGIudz1mdW5jdGlvbih0LGUpe3JldHVybiBPKHQse2xvY2FsZTplLiRMLHV0YzplLiR1LHg6ZS4keCwkb2Zmc2V0OmUuJG9mZnNldH0pfSxrPShfPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gTSh0KXt0aGlzLiRMPXcodC5sb2NhbGUsbnVsbCwhMCksdGhpcy5wYXJzZSh0KSx0aGlzLiR4PXRoaXMuJHh8fHQueHx8e30sdGhpc1twXT0hMH12YXIgbT1NLnByb3RvdHlwZTtyZXR1cm4gbS5wYXJzZT1mdW5jdGlvbih0KXt0aGlzLiRkPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZGF0ZSxuPXQudXRjO2lmKG51bGw9PT1lKXJldHVybiBuZXcgRGF0ZShOYU4pO2lmKGIudShlKSlyZXR1cm4gbmV3IERhdGU7aWYoZSBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIG5ldyBEYXRlKGUpO2lmKCJzdHJpbmciPT10eXBlb2YgZSYmIS9aJC9pLnRlc3QoZSkpe3ZhciByPWUubWF0Y2goJCk7aWYocil7dmFyIGk9clsyXS0xfHwwLHM9KHJbN118fCIwIikuc3Vic3RyaW5nKDAsMyk7cmV0dXJuIG4/bmV3IERhdGUoRGF0ZS5VVEMoclsxXSxpLHJbM118fDEscls0XXx8MCxyWzVdfHwwLHJbNl18fDAscykpOm5ldyBEYXRlKHJbMV0saSxyWzNdfHwxLHJbNF18fDAscls1XXx8MCxyWzZdfHwwLHMpfX1yZXR1cm4gbmV3IERhdGUoZSl9KHQpLHRoaXMuaW5pdCgpfSxtLmluaXQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRkO3RoaXMuJHk9dC5nZXRGdWxsWWVhcigpLHRoaXMuJE09dC5nZXRNb250aCgpLHRoaXMuJEQ9dC5nZXREYXRlKCksdGhpcy4kVz10LmdldERheSgpLHRoaXMuJEg9dC5nZXRIb3VycygpLHRoaXMuJG09dC5nZXRNaW51dGVzKCksdGhpcy4kcz10LmdldFNlY29uZHMoKSx0aGlzLiRtcz10LmdldE1pbGxpc2Vjb25kcygpfSxtLiR1dGlscz1mdW5jdGlvbigpe3JldHVybiBifSxtLmlzVmFsaWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC50b1N0cmluZygpIT09bH0sbS5pc1NhbWU9ZnVuY3Rpb24odCxlKXt2YXIgbj1PKHQpO3JldHVybiB0aGlzLnN0YXJ0T2YoZSk8PW4mJm48PXRoaXMuZW5kT2YoZSl9LG0uaXNBZnRlcj1mdW5jdGlvbih0LGUpe3JldHVybiBPKHQpPHRoaXMuc3RhcnRPZihlKX0sbS5pc0JlZm9yZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmVuZE9mKGUpPE8odCl9LG0uJGc9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBiLnUodCk/dGhpc1tlXTp0aGlzLnNldChuLHQpfSxtLnVuaXg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5mbG9vcih0aGlzLnZhbHVlT2YoKS8xZTMpfSxtLnZhbHVlT2Y9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC5nZXRUaW1lKCl9LG0uc3RhcnRPZj1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMscj0hIWIudShlKXx8ZSxmPWIucCh0KSxsPWZ1bmN0aW9uKHQsZSl7dmFyIGk9Yi53KG4uJHU/RGF0ZS5VVEMobi4keSxlLHQpOm5ldyBEYXRlKG4uJHksZSx0KSxuKTtyZXR1cm4gcj9pOmkuZW5kT2YoImRheSIpfSwkPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGIudyhuLnRvRGF0ZSgpW3RdLmFwcGx5KG4udG9EYXRlKCJzIiksKHI/WzAsMCwwLDBdOlsyMyw1OSw1OSw5OTldKS5zbGljZShlKSksbil9LHk9dGhpcy4kVyxNPXRoaXMuJE0sbT10aGlzLiRELHY9InNldCIrKHRoaXMuJHU/IlVUQyI6IiIpO3N3aXRjaChmKXtjYXNlIGg6cmV0dXJuIHI/bCgxLDApOmwoMzEsMTEpO2Nhc2UgYzpyZXR1cm4gcj9sKDEsTSk6bCgwLE0rMSk7Y2FzZSBvOnZhciBnPXRoaXMuJGxvY2FsZSgpLndlZWtTdGFydHx8MCxEPSh5PGc/eSs3OnkpLWc7cmV0dXJuIGwocj9tLUQ6bSsoNi1EKSxNKTtjYXNlImRheSI6Y2FzZSBkOnJldHVybiAkKHYrIkhvdXJzIiwwKTtjYXNlIHU6cmV0dXJuICQodisiTWludXRlcyIsMSk7Y2FzZSBzOnJldHVybiAkKHYrIlNlY29uZHMiLDIpO2Nhc2UgaTpyZXR1cm4gJCh2KyJNaWxsaXNlY29uZHMiLDMpO2RlZmF1bHQ6cmV0dXJuIHRoaXMuY2xvbmUoKX19LG0uZW5kT2Y9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3RhcnRPZih0LCExKX0sbS4kc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIG4sbz1iLnAodCksZj0ic2V0IisodGhpcy4kdT8iVVRDIjoiIiksbD0oKG49e30pLmRheT1mKyJEYXRlIixuW2RdPWYrIkRhdGUiLG5bY109ZisiTW9udGgiLG5baF09ZisiRnVsbFllYXIiLG5bdV09ZisiSG91cnMiLG5bc109ZisiTWludXRlcyIsbltpXT1mKyJTZWNvbmRzIixuW3JdPWYrIk1pbGxpc2Vjb25kcyIsbilbb10sJD0iZGF5Ij09PW8/dGhpcy4kRCsoZS10aGlzLiRXKTplO2lmKG89PT1jfHxvPT09aCl7dmFyIHk9dGhpcy5jbG9uZSgpLnNldChkLDEpO3kuJGRbbF0oJCkseS5pbml0KCksdGhpcy4kZD15LnNldChkLE1hdGgubWluKHRoaXMuJEQseS5kYXlzSW5Nb250aCgpKSkuJGR9ZWxzZSBsJiZ0aGlzLiRkW2xdKCQpO3JldHVybiB0aGlzLmluaXQoKSx0aGlzfSxtLnNldD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmNsb25lKCkuJHNldCh0LGUpfSxtLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpc1tiLnAodCldKCl9LG0uYWRkPWZ1bmN0aW9uKHIsZil7dmFyIGQsbD10aGlzO3I9TnVtYmVyKHIpO3ZhciAkPWIucChmKSx5PWZ1bmN0aW9uKHQpe3ZhciBlPU8obCk7cmV0dXJuIGIudyhlLmRhdGUoZS5kYXRlKCkrTWF0aC5yb3VuZCh0KnIpKSxsKX07aWYoJD09PWMpcmV0dXJuIHRoaXMuc2V0KGMsdGhpcy4kTStyKTtpZigkPT09aClyZXR1cm4gdGhpcy5zZXQoaCx0aGlzLiR5K3IpO2lmKCJkYXkiPT09JClyZXR1cm4geSgxKTtpZigkPT09bylyZXR1cm4geSg3KTt2YXIgTT0oKGQ9e30pW3NdPTZlNCxkW3VdPTM2ZTUsZFtpXT0xZTMsZClbJF18fDEsbT10aGlzLiRkLmdldFRpbWUoKStyKk07cmV0dXJuIGIudyhtLHRoaXMpfSxtLnN1YnRyYWN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYWRkKC0xKnQsZSl9LG0uZm9ybWF0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLiRsb2NhbGUoKTtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIG4uaW52YWxpZERhdGV8fGw7dmFyIHI9dHx8IllZWVktTU0tRERUSEg6bW06c3NaIixpPWIueih0aGlzKSxzPXRoaXMuJEgsdT10aGlzLiRtLGE9dGhpcy4kTSxvPW4ud2Vla2RheXMsYz1uLm1vbnRocyxmPW4ubWVyaWRpZW0saD1mdW5jdGlvbih0LG4saSxzKXtyZXR1cm4gdCYmKHRbbl18fHQoZSxyKSl8fGlbbl0uc2xpY2UoMCxzKX0sZD1mdW5jdGlvbih0KXtyZXR1cm4gYi5zKHMlMTJ8fDEyLHQsIjAiKX0sJD1mfHxmdW5jdGlvbih0LGUsbil7dmFyIHI9dDwxMj8iQU0iOiJQTSI7cmV0dXJuIG4/ci50b0xvd2VyQ2FzZSgpOnJ9O3JldHVybiByLnJlcGxhY2UoeSxmdW5jdGlvbih0LHIpe3JldHVybiByfHxmdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSJZWSI6cmV0dXJuIFN0cmluZyhlLiR5KS5zbGljZSgtMik7Y2FzZSJZWVlZIjpyZXR1cm4gYi5zKGUuJHksNCwiMCIpO2Nhc2UiTSI6cmV0dXJuIGErMTtjYXNlIk1NIjpyZXR1cm4gYi5zKGErMSwyLCIwIik7Y2FzZSJNTU0iOnJldHVybiBoKG4ubW9udGhzU2hvcnQsYSxjLDMpO2Nhc2UiTU1NTSI6cmV0dXJuIGgoYyxhKTtjYXNlIkQiOnJldHVybiBlLiREO2Nhc2UiREQiOnJldHVybiBiLnMoZS4kRCwyLCIwIik7Y2FzZSJkIjpyZXR1cm4gU3RyaW5nKGUuJFcpO2Nhc2UiZGQiOnJldHVybiBoKG4ud2Vla2RheXNNaW4sZS4kVyxvLDIpO2Nhc2UiZGRkIjpyZXR1cm4gaChuLndlZWtkYXlzU2hvcnQsZS4kVyxvLDMpO2Nhc2UiZGRkZCI6cmV0dXJuIG9bZS4kV107Y2FzZSJIIjpyZXR1cm4gU3RyaW5nKHMpO2Nhc2UiSEgiOnJldHVybiBiLnMocywyLCIwIik7Y2FzZSJoIjpyZXR1cm4gZCgxKTtjYXNlImhoIjpyZXR1cm4gZCgyKTtjYXNlImEiOnJldHVybiAkKHMsdSwhMCk7Y2FzZSJBIjpyZXR1cm4gJChzLHUsITEpO2Nhc2UibSI6cmV0dXJuIFN0cmluZyh1KTtjYXNlIm1tIjpyZXR1cm4gYi5zKHUsMiwiMCIpO2Nhc2UicyI6cmV0dXJuIFN0cmluZyhlLiRzKTtjYXNlInNzIjpyZXR1cm4gYi5zKGUuJHMsMiwiMCIpO2Nhc2UiU1NTIjpyZXR1cm4gYi5zKGUuJG1zLDMsIjAiKTtjYXNlIloiOnJldHVybiBpfXJldHVybiBudWxsfSh0KXx8aS5yZXBsYWNlKCI6IiwiIil9KX0sbS51dGNPZmZzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4tKDE1Kk1hdGgucm91bmQodGhpcy4kZC5nZXRUaW1lem9uZU9mZnNldCgpLzE1KSl9LG0uZGlmZj1mdW5jdGlvbihyLGQsbCl7dmFyICQseT10aGlzLE09Yi5wKGQpLG09TyhyKSx2PShtLnV0Y09mZnNldCgpLXRoaXMudXRjT2Zmc2V0KCkpKjZlNCxnPXRoaXMtbSxEPWZ1bmN0aW9uKCl7cmV0dXJuIGIubSh5LG0pfTtzd2l0Y2goTSl7Y2FzZSBoOiQ9RCgpLzEyO2JyZWFrO2Nhc2UgYzokPUQoKTticmVhaztjYXNlIGY6JD1EKCkvMzticmVhaztjYXNlIG86JD0oZy12KS82MDQ4ZTU7YnJlYWs7Y2FzZSJkYXkiOiQ9KGctdikvODY0ZTU7YnJlYWs7Y2FzZSB1OiQ9Zy8zNmU1O2JyZWFrO2Nhc2UgczokPWcvNmU0O2JyZWFrO2Nhc2UgaTokPWcvMWUzO2JyZWFrO2RlZmF1bHQ6JD1nfXJldHVybiBsPyQ6Yi5hKCQpfSxtLmRheXNJbk1vbnRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5kT2YoYykuJER9LG0uJGxvY2FsZT1mdW5jdGlvbigpe3JldHVybiBEW3RoaXMuJExdfSxtLmxvY2FsZT1mdW5jdGlvbih0LGUpe2lmKCF0KXJldHVybiB0aGlzLiRMO3ZhciBuPXRoaXMuY2xvbmUoKSxyPXcodCxlLCEwKTtyZXR1cm4gciYmKG4uJEw9ciksbn0sbS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBiLncodGhpcy4kZCx0aGlzKX0sbS50b0RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERhdGUodGhpcy52YWx1ZU9mKCkpfSxtLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVmFsaWQoKT90aGlzLnRvSVNPU3RyaW5nKCk6bnVsbH0sbS50b0lTT1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvSVNPU3RyaW5nKCl9LG0udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC50b1VUQ1N0cmluZygpfSxNfSgpKS5wcm90b3R5cGUsTy5wcm90b3R5cGU9ayxbWyIkbXMiLHJdLFsiJHMiLGldLFsiJG0iLHNdLFsiJEgiLHVdLFsiJFciLCJkYXkiXSxbIiRNIixjXSxbIiR5IixoXSxbIiREIixkXV0uZm9yRWFjaChmdW5jdGlvbih0KXtrW3RbMV1dPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLiRnKGUsdFswXSx0WzFdKX19KSxPLmV4dGVuZD1mdW5jdGlvbih0LGUpe3JldHVybiB0LiRpfHwodChlLF8sTyksdC4kaT0hMCksT30sTy5sb2NhbGU9dyxPLmlzRGF5anM9UyxPLnVuaXg9ZnVuY3Rpb24odCl7cmV0dXJuIE8oMWUzKnQpfSxPLmVuPURbZ10sTy5Mcz1ELE8ucD17fSxPKX0sMjg3MzQ6ZnVuY3Rpb24obW9kdWxlKXttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciByPXQucHJvdG90eXBlLG49ci5mb3JtYXQ7ci5mb3JtYXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxyPXRoaXMuJGxvY2FsZSgpO2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gbi5iaW5kKHRoaXMpKGUpO3ZhciBzPXRoaXMuJHV0aWxzKCksYT0oZXx8IllZWVktTU0tRERUSEg6bW06c3NaIikucmVwbGFjZSgvXFsoW15cXV0rKV18UXx3b3x3d3x3fFdXfFd8enp6fHp8Z2dnZ3xHR0dHfERvfFh8eHxrezEsMn18Uy9nLGZ1bmN0aW9uKGUpe3N3aXRjaChlKXtjYXNlIlEiOnJldHVybiBNYXRoLmNlaWwoKHQuJE0rMSkvMyk7Y2FzZSJEbyI6cmV0dXJuIHIub3JkaW5hbCh0LiREKTtjYXNlImdnZ2ciOnJldHVybiB0LndlZWtZZWFyKCk7Y2FzZSJHR0dHIjpyZXR1cm4gdC5pc29XZWVrWWVhcigpO2Nhc2Uid28iOnJldHVybiByLm9yZGluYWwodC53ZWVrKCksIlciKTtjYXNlInciOmNhc2Uid3ciOnJldHVybiBzLnModC53ZWVrKCksInciPT09ZT8xOjIsIjAiKTtjYXNlIlciOmNhc2UiV1ciOnJldHVybiBzLnModC5pc29XZWVrKCksIlciPT09ZT8xOjIsIjAiKTtjYXNlImsiOmNhc2Uia2siOnJldHVybiBzLnMoU3RyaW5nKDA9PT10LiRIPzI0OnQuJEgpLCJrIj09PWU/MToyLCIwIik7Y2FzZSJYIjpyZXR1cm4gTWF0aC5mbG9vcih0LiRkLmdldFRpbWUoKS8xZTMpO2Nhc2UieCI6cmV0dXJuIHQuJGQuZ2V0VGltZSgpO2Nhc2UieiI6cmV0dXJuIlsiK3Qub2Zmc2V0TmFtZSgpKyJdIjtjYXNlInp6eiI6cmV0dXJuIlsiK3Qub2Zmc2V0TmFtZSgibG9uZyIpKyJdIjtkZWZhdWx0OnJldHVybiBlfX0pO3JldHVybiBuLmJpbmQodGhpcykoYSl9fX0sMTAyODU6ZnVuY3Rpb24obW9kdWxlKXt2YXIgZSx0LG4scixpLG8scyxhLGYsaCx1LGQsYzttb2R1bGUuZXhwb3J0cz0oZT17TFRTOiJoOm1tOnNzIEEiLExUOiJoOm1tIEEiLEw6Ik1NL0REL1lZWVkiLExMOiJNTU1NIEQsIFlZWVkiLExMTDoiTU1NTSBELCBZWVlZIGg6bW0gQSIsTExMTDoiZGRkZCwgTU1NTSBELCBZWVlZIGg6bW0gQSJ9LHQ9LyhcW1teW10qXF0pfChbLV86Ly4sKClcc10rKXwoQXxhfFF8WVlZWXxZWT98d3c/fE1NP00/TT98RG98REQ/fGhoP3xISD98bW0/fHNzP3xTezEsM318enxaWj8pL2csbj0vXGQvLHI9L1xkXGQvLGk9L1xkXGQ/LyxvPS9cZCpbXi1fOi8sKClcc1xkXSsvLHM9e30sYT1mdW5jdGlvbihlKXtyZXR1cm4oZT0rZSkrKGU+Njg/MTkwMDoyZTMpfSxmPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXt0aGlzW2VdPSt0fX0saD1bL1srLV1cZFxkOj8oXGRcZCk/fFovLGZ1bmN0aW9uKGUpeyh0aGlzLnpvbmV8fCh0aGlzLnpvbmU9e30pKS5vZmZzZXQ9ZnVuY3Rpb24oZSl7aWYoIWV8fCJaIj09PWUpcmV0dXJuIDA7dmFyIHQ9ZS5tYXRjaCgvKFsrLV18XGRcZCkvZyksbj02MCp0WzFdKygrdFsyXXx8MCk7cmV0dXJuIDA9PT1uPzA6IisiPT09dFswXT8tbjpufShlKX1dLHU9ZnVuY3Rpb24oZSl7dmFyIHQ9c1tlXTtyZXR1cm4gdCYmKHQuaW5kZXhPZj90OnQucy5jb25jYXQodC5mKSl9LGQ9ZnVuY3Rpb24oZSx0KXt2YXIgbixyPXMubWVyaWRpZW07aWYocil7Zm9yKHZhciBpPTE7aTw9MjQ7aSs9MSlpZihlLmluZGV4T2YocihpLDAsdCkpPi0xKXtuPWk+MTI7YnJlYWt9fWVsc2Ugbj1lPT09KHQ/InBtIjoiUE0iKTtyZXR1cm4gbn0sYz17QTpbbyxmdW5jdGlvbihlKXt0aGlzLmFmdGVybm9vbj1kKGUsITEpfV0sYTpbbyxmdW5jdGlvbihlKXt0aGlzLmFmdGVybm9vbj1kKGUsITApfV0sUTpbbixmdW5jdGlvbihlKXt0aGlzLm1vbnRoPTMqKGUtMSkrMX1dLFM6W24sZnVuY3Rpb24oZSl7dGhpcy5taWxsaXNlY29uZHM9MTAwKitlfV0sU1M6W3IsZnVuY3Rpb24oZSl7dGhpcy5taWxsaXNlY29uZHM9MTAqK2V9XSxTU1M6Wy9cZHszfS8sZnVuY3Rpb24oZSl7dGhpcy5taWxsaXNlY29uZHM9K2V9XSxzOltpLGYoInNlY29uZHMiKV0sc3M6W2ksZigic2Vjb25kcyIpXSxtOltpLGYoIm1pbnV0ZXMiKV0sbW06W2ksZigibWludXRlcyIpXSxIOltpLGYoImhvdXJzIildLGg6W2ksZigiaG91cnMiKV0sSEg6W2ksZigiaG91cnMiKV0saGg6W2ksZigiaG91cnMiKV0sRDpbaSxmKCJkYXkiKV0sREQ6W3IsZigiZGF5IildLERvOltvLGZ1bmN0aW9uKGUpe3ZhciB0PXMub3JkaW5hbCxuPWUubWF0Y2goL1xkKy8pO2lmKHRoaXMuZGF5PW5bMF0sdClmb3IodmFyIHI9MTtyPD0zMTtyKz0xKXQocikucmVwbGFjZSgvXFt8XF0vZywiIik9PT1lJiYodGhpcy5kYXk9cil9XSx3OltpLGYoIndlZWsiKV0sd3c6W3IsZigid2VlayIpXSxNOltpLGYoIm1vbnRoIildLE1NOltyLGYoIm1vbnRoIildLE1NTTpbbyxmdW5jdGlvbihlKXt2YXIgdD11KCJtb250aHMiKSxuPSh1KCJtb250aHNTaG9ydCIpfHx0Lm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5zbGljZSgwLDMpfSkpLmluZGV4T2YoZSkrMTtpZihuPDEpdGhyb3cgRXJyb3IoKTt0aGlzLm1vbnRoPW4lMTJ8fG59XSxNTU1NOltvLGZ1bmN0aW9uKGUpe3ZhciB0PXUoIm1vbnRocyIpLmluZGV4T2YoZSkrMTtpZih0PDEpdGhyb3cgRXJyb3IoKTt0aGlzLm1vbnRoPXQlMTJ8fHR9XSxZOlsvWystXT9cZCsvLGYoInllYXIiKV0sWVk6W3IsZnVuY3Rpb24oZSl7dGhpcy55ZWFyPWEoZSl9XSxZWVlZOlsvXGR7NH0vLGYoInllYXIiKV0sWjpoLFpaOmh9LGZ1bmN0aW9uKGUxLHQxLG4pe24ucC5jdXN0b21QYXJzZUZvcm1hdD0hMCxlMSYmZTEucGFyc2VUd29EaWdpdFllYXImJihhPWUxLnBhcnNlVHdvRGlnaXRZZWFyKTt2YXIgcj10MS5wcm90b3R5cGUsaT1yLnBhcnNlO3IucGFyc2U9ZnVuY3Rpb24oZTEpe3ZhciB0MT1lMS5kYXRlLHI9ZTEudXRjLG89ZTEuYXJnczt0aGlzLiR1PXI7dmFyIGE9b1sxXTtpZigic3RyaW5nIj09dHlwZW9mIGEpe3ZhciBmPSEwPT09b1syXSxoPSEwPT09b1szXSxkPW9bMl07aCYmKGQ9b1syXSkscz10aGlzLiRsb2NhbGUoKSwhZiYmZCYmKHM9bi5Mc1tkXSksdGhpcy4kZD1mdW5jdGlvbihlMSx0MSxuLHIpe3RyeXtpZihbIngiLCJYIl0uaW5kZXhPZih0MSk+LTEpcmV0dXJuIG5ldyBEYXRlKCgiWCI9PT10MT8xZTM6MSkqZTEpO3ZhciBpPShmdW5jdGlvbihuKXt2YXIgcixpO3I9bixpPXMmJnMuZm9ybWF0cztmb3IodmFyIG89KG49ci5yZXBsYWNlKC8oXFtbXlxdXStdKXwoTFRTP3xsezEsNH18THsxLDR9KS9nLGZ1bmN0aW9uKHQsbixyKXt2YXIgbz1yJiZyLnRvVXBwZXJDYXNlKCk7cmV0dXJuIG58fGlbcl18fGVbcl18fGlbb10ucmVwbGFjZSgvKFxbW15cXV0rXSl8KE1NTU18TU18RER8ZGRkZCkvZyxmdW5jdGlvbihlLHQsbil7cmV0dXJuIHR8fG4uc2xpY2UoMSl9KX0pKS5tYXRjaCh0KSxhPW8ubGVuZ3RoLGY9MDtmPGE7Zis9MSl7dmFyIGg9b1tmXSx1PWNbaF0sZD11JiZ1WzBdLGw9dSYmdVsxXTtvW2ZdPWw/e3JlZ2V4OmQscGFyc2VyOmx9OmgucmVwbGFjZSgvXlxbfFxdJC9nLCIiKX1yZXR1cm4gZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXt9LG49MCxyPTA7bjxhO24rPTEpe3ZhciBpPW9bbl07aWYoInN0cmluZyI9PXR5cGVvZiBpKXIrPWkubGVuZ3RoO2Vsc2V7dmFyIHM9aS5yZWdleCxmPWkucGFyc2VyLGg9ZS5zbGljZShyKSx1PXMuZXhlYyhoKVswXTtmLmNhbGwodCx1KSxlPWUucmVwbGFjZSh1LCIiKX19cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciB0PWUuYWZ0ZXJub29uO2lmKHZvaWQgMCE9PXQpe3ZhciBuPWUuaG91cnM7dD9uPDEyJiYoZS5ob3Vycys9MTIpOjEyPT09biYmKGUuaG91cnM9MCksZGVsZXRlIGUuYWZ0ZXJub29ufX0odCksdH19KSh0MSkoZTEpLG89aS55ZWFyLHMxPWkubW9udGgsYT1pLmRheSxmPWkuaG91cnMsaD1pLm1pbnV0ZXMsdT1pLnNlY29uZHMsZD1pLm1pbGxpc2Vjb25kcyxjMT1pLnpvbmUsbT1pLndlZWssTT1uZXcgRGF0ZSxZPWF8fChvfHxzMT8xOk0uZ2V0RGF0ZSgpKSxwPW98fE0uZ2V0RnVsbFllYXIoKSx2PTA7byYmIXMxfHwodj1zMT4wP3MxLTE6TS5nZXRNb250aCgpKTt2YXIgRCx3PWZ8fDAsZz1ofHwwLHk9dXx8MCxMPWR8fDA7cmV0dXJuIGMxP25ldyBEYXRlKERhdGUuVVRDKHAsdixZLHcsZyx5LEwrNjAqYzEub2Zmc2V0KjFlMykpOm4/bmV3IERhdGUoRGF0ZS5VVEMocCx2LFksdyxnLHksTCkpOihEPW5ldyBEYXRlKHAsdixZLHcsZyx5LEwpLG0mJihEPXIoRCkud2VlayhtKS50b0RhdGUoKSksRCl9Y2F0Y2goZTIpe3JldHVybiBuZXcgRGF0ZSgiIil9fSh0MSxhLHIsbiksdGhpcy5pbml0KCksZCYmITAhPT1kJiYodGhpcy4kTD10aGlzLmxvY2FsZShkKS4kTCksKGZ8fGgpJiZ0MSE9dGhpcy5mb3JtYXQoYSkmJih0aGlzLiRkPW5ldyBEYXRlKCIiKSkscz17fX1lbHNlIGlmKGEgaW5zdGFuY2VvZiBBcnJheSlmb3IodmFyIGMxPWEubGVuZ3RoLG09MTttPD1jMTttKz0xKXtvWzFdPWFbbS0xXTt2YXIgTT1uLmFwcGx5KHRoaXMsbyk7aWYoTS5pc1ZhbGlkKCkpe3RoaXMuJGQ9TS4kZCx0aGlzLiRMPU0uJEwsdGhpcy5pbml0KCk7YnJlYWt9bT09PWMxJiYodGhpcy4kZD1uZXcgRGF0ZSgiIikpfWVsc2UgaS5jYWxsKHRoaXMsZTEpfX0pfSw5NjAzNjpmdW5jdGlvbihtb2R1bGUpe21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKG4sZSx0KXt2YXIgcj1lLnByb3RvdHlwZSxvPWZ1bmN0aW9uKG4pe3JldHVybiBuJiYobi5pbmRleE9mP246bi5zKX0sdT1mdW5jdGlvbihuLGUsdCxyLHUpe3ZhciBpPW4ubmFtZT9uOm4uJGxvY2FsZSgpLGE9byhpW2VdKSxzPW8oaVt0XSksZj1hfHxzLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gbi5zbGljZSgwLHIpfSk7aWYoIXUpcmV0dXJuIGY7dmFyIGQ9aS53ZWVrU3RhcnQ7cmV0dXJuIGYubWFwKGZ1bmN0aW9uKG4sZSl7cmV0dXJuIGZbKGUrKGR8fDApKSU3XX0pfSxpPWZ1bmN0aW9uKCl7cmV0dXJuIHQuTHNbdC5sb2NhbGUoKV19LGE9ZnVuY3Rpb24obixlKXtyZXR1cm4gbi5mb3JtYXRzW2VdfHxuLmZvcm1hdHNbZS50b1VwcGVyQ2FzZSgpXS5yZXBsYWNlKC8oXFtbXlxdXStdKXwoTU1NTXxNTXxERHxkZGRkKS9nLGZ1bmN0aW9uKG4sZSx0KXtyZXR1cm4gZXx8dC5zbGljZSgxKX0pfSxzPWZ1bmN0aW9uKCl7dmFyIG49dGhpcztyZXR1cm57bW9udGhzOmZ1bmN0aW9uKGUpe3JldHVybiBlP2UuZm9ybWF0KCJNTU1NIik6dShuLCJtb250aHMiKX0sbW9udGhzU2hvcnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/ZS5mb3JtYXQoIk1NTSIpOnUobiwibW9udGhzU2hvcnQiLCJtb250aHMiLDMpfSxmaXJzdERheU9mV2VlazpmdW5jdGlvbigpe3JldHVybiBuLiRsb2NhbGUoKS53ZWVrU3RhcnR8fDB9LHdlZWtkYXlzOmZ1bmN0aW9uKGUpe3JldHVybiBlP2UuZm9ybWF0KCJkZGRkIik6dShuLCJ3ZWVrZGF5cyIpfSx3ZWVrZGF5c01pbjpmdW5jdGlvbihlKXtyZXR1cm4gZT9lLmZvcm1hdCgiZGQiKTp1KG4sIndlZWtkYXlzTWluIiwid2Vla2RheXMiLDIpfSx3ZWVrZGF5c1Nob3J0OmZ1bmN0aW9uKGUpe3JldHVybiBlP2UuZm9ybWF0KCJkZGQiKTp1KG4sIndlZWtkYXlzU2hvcnQiLCJ3ZWVrZGF5cyIsMyl9LGxvbmdEYXRlRm9ybWF0OmZ1bmN0aW9uKGUpe3JldHVybiBhKG4uJGxvY2FsZSgpLGUpfSxtZXJpZGllbTp0aGlzLiRsb2NhbGUoKS5tZXJpZGllbSxvcmRpbmFsOnRoaXMuJGxvY2FsZSgpLm9yZGluYWx9fTtyLmxvY2FsZURhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gcy5iaW5kKHRoaXMpKCl9LHQubG9jYWxlRGF0YT1mdW5jdGlvbigpe3ZhciBuPWkoKTtyZXR1cm57Zmlyc3REYXlPZldlZWs6ZnVuY3Rpb24oKXtyZXR1cm4gbi53ZWVrU3RhcnR8fDB9LHdlZWtkYXlzOmZ1bmN0aW9uKCl7cmV0dXJuIHQud2Vla2RheXMoKX0sd2Vla2RheXNTaG9ydDpmdW5jdGlvbigpe3JldHVybiB0LndlZWtkYXlzU2hvcnQoKX0sd2Vla2RheXNNaW46ZnVuY3Rpb24oKXtyZXR1cm4gdC53ZWVrZGF5c01pbigpfSxtb250aHM6ZnVuY3Rpb24oKXtyZXR1cm4gdC5tb250aHMoKX0sbW9udGhzU2hvcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdC5tb250aHNTaG9ydCgpfSxsb25nRGF0ZUZvcm1hdDpmdW5jdGlvbihlKXtyZXR1cm4gYShuLGUpfSxtZXJpZGllbTpuLm1lcmlkaWVtLG9yZGluYWw6bi5vcmRpbmFsfX0sdC5tb250aHM9ZnVuY3Rpb24oKXtyZXR1cm4gdShpKCksIm1vbnRocyIpfSx0Lm1vbnRoc1Nob3J0PWZ1bmN0aW9uKCl7cmV0dXJuIHUoaSgpLCJtb250aHNTaG9ydCIsIm1vbnRocyIsMyl9LHQud2Vla2RheXM9ZnVuY3Rpb24obil7cmV0dXJuIHUoaSgpLCJ3ZWVrZGF5cyIsbnVsbCxudWxsLG4pfSx0LndlZWtkYXlzU2hvcnQ9ZnVuY3Rpb24obil7cmV0dXJuIHUoaSgpLCJ3ZWVrZGF5c1Nob3J0Iiwid2Vla2RheXMiLDMsbil9LHQud2Vla2RheXNNaW49ZnVuY3Rpb24obil7cmV0dXJuIHUoaSgpLCJ3ZWVrZGF5c01pbiIsIndlZWtkYXlzIiwyLG4pfX19LDU1MTgzOmZ1bmN0aW9uKG1vZHVsZSl7dmFyIGUsdDttb2R1bGUuZXhwb3J0cz0oZT0id2VlayIsdD0ieWVhciIsZnVuY3Rpb24oaSxuLHIpe3ZhciBmPW4ucHJvdG90eXBlO2Yud2Vlaz1mdW5jdGlvbihpKXtpZih2b2lkIDA9PT1pJiYoaT1udWxsKSxudWxsIT09aSlyZXR1cm4gdGhpcy5hZGQoNyooaS10aGlzLndlZWsoKSksImRheSIpO3ZhciBuPXRoaXMuJGxvY2FsZSgpLnllYXJTdGFydHx8MTtpZigxMT09PXRoaXMubW9udGgoKSYmdGhpcy5kYXRlKCk+MjUpe3ZhciBmPXIodGhpcykuc3RhcnRPZih0KS5hZGQoMSx0KS5kYXRlKG4pLHM9cih0aGlzKS5lbmRPZihlKTtpZihmLmlzQmVmb3JlKHMpKXJldHVybiAxfXZhciBhPXIodGhpcykuc3RhcnRPZih0KS5kYXRlKG4pLnN0YXJ0T2YoZSkuc3VidHJhY3QoMSwibWlsbGlzZWNvbmQiKSxvPXRoaXMuZGlmZihhLGUsITApO3JldHVybiBvPDA/cih0aGlzKS5zdGFydE9mKCJ3ZWVrIikud2VlaygpOk1hdGguY2VpbChvKX0sZi53ZWVrcz1mdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9bnVsbCksdGhpcy53ZWVrKGUpfX0pfSwxNzI6ZnVuY3Rpb24obW9kdWxlKXttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3QucHJvdG90eXBlLndlZWtZZWFyPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tb250aCgpLHQ9dGhpcy53ZWVrKCksbj10aGlzLnllYXIoKTtyZXR1cm4gMT09PXQmJjExPT09ZT9uKzE6MD09PWUmJnQ+PTUyP24tMTpufX19LDY4MzM6ZnVuY3Rpb24obW9kdWxlKXttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3QucHJvdG90eXBlLndlZWtkYXk9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy4kbG9jYWxlKCkud2Vla1N0YXJ0fHwwLGk9dGhpcy4kVyxuPShpPHQ/aSs3OmkpLXQ7cmV0dXJuIHRoaXMuJHV0aWxzKCkudShlKT9uOnRoaXMuc3VidHJhY3QobiwiZGF5IikuYWRkKGUsImRheSIpfX19LDgxNjYzOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtHVDpmdW5jdGlvbigpe3JldHVybiBFbWFpbH19KTtsZXQgRW1haWw9L15bQS1aYS16MC05XSsoWy5fJSstXVtBLVphLXowLTldKykqQChbQS1aYS16MC05LV0rXC4pK1tBLVphLXpdezIsNjN9JC99LDc3OTk6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7dmFyIF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX189X193ZWJwYWNrX3JlcXVpcmVfXygzNTk0NCkscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxjb21wb25lbnRzX2FudFN0eWxlX2luZGV4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg5MjA0MSksY29tcG9uZW50c19pbWFnZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fPV9fd2VicGFja19yZXF1aXJlX18oMTE1ODYpO2xldCBDTVA9cGFyYW09PntsZXR7bGFiZWwsY2hpbGRyZW59PXBhcmFtLFtvcGVuLHNldE9wZW5dPSgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlU3RhdGUpKCExKTtyZXR1cm4oMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnRaKShjb21wb25lbnRzX2FudFN0eWxlX2luZGV4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ubEkse29uQ2hhbmdlOigpPT5zZXRPcGVuKCFvcGVuKSxleHBhbmRJY29uUG9zaXRpb246ImVuZCIsZXhwYW5kSWNvbihwYXJhbSl7bGV0e2lzQWN0aXZlfT1wYXJhbTtyZXR1cm4oMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnRaKShjb21wb25lbnRzX2ltYWdlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uWix7d2lkdGg6MzIsaGVpZ2h0OjMyLGFsdDoib3BlbiIsc3JjOmlzQWN0aXZlPyJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDUxMjExMzcwNzM0YTIyZjBjZmMud2VicCI6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNTEyMTEzNzIwYTU3MzExZmYxZC53ZWJwIn0pfSxpdGVtczpbe2tleTpsYWJlbC5zdWJzdHJpbmcoMCw1KSxsYWJlbDpsYWJlbCxjaGlsZHJlbjooMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnRaKSgicCIse2NoaWxkcmVuOmNoaWxkcmVufSl9XX0pfTtfX3dlYnBhY2tfZXhwb3J0c19fLlo9Q01QfSw3MTIzOTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0Ijt2YXIgYW50ZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oMTY1NjgpO2xldCBOb3RpZnk9KHR5cGUsbWVzc2FnZSk9PnttZXNzYWdlJiZhbnRkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWlBbdHlwZV0oe3R5cGUsbWVzc2FnZX0pfTtfX3dlYnBhY2tfZXhwb3J0c19fLlo9Tm90aWZ5fSw5MjA0MTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfZXh0ZW5kcygpe3JldHVybihfZXh0ZW5kcz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHRhcmdldCl7Zm9yKHZhciBpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKyl7dmFyIHNvdXJjZT1hcmd1bWVudHNbaV07Zm9yKHZhciBrZXkgaW4gc291cmNlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2Usa2V5KSYmKHRhcmdldFtrZXldPXNvdXJjZVtrZXldKX1yZXR1cm4gdGFyZ2V0fSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfV9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtweTpmdW5jdGlvbigpe3JldHVybiBNQnV0dG9uVHJhbnNwYXJlbnR9LHQ4OmZ1bmN0aW9uKCl7cmV0dXJuIE1DbGlja0J1dHRvbn0sbEk6ZnVuY3Rpb24oKXtyZXR1cm4gTUNvbGxhcHNlfSxWJDpmdW5jdGlvbigpe3JldHVybiBNRGF0ZVBpY2tlcn0sZGY6ZnVuY3Rpb24oKXtyZXR1cm4gTUZvcm19LHp2OmZ1bmN0aW9uKCl7cmV0dXJuIE1JbnB1dH0saTY6ZnVuY3Rpb24oKXtyZXR1cm4gTUlucHV0TnVtYmVyfSx4NjpmdW5jdGlvbigpe3JldHVybiBNTW9kYWx9LFdIOmZ1bmN0aW9uKCl7cmV0dXJuIE1TZWxlY3R9LE9sOmZ1bmN0aW9uKCl7cmV0dXJuIE1TZWxlY3RBbmRJbnB1dH0sU246ZnVuY3Rpb24oKXtyZXR1cm4gTVRleHRBcmVhfX0pO3ZhciByZWFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxlbW90aW9uX21lbW9pemVfZXNtPV9fd2VicGFja19yZXF1aXJlX18oNDUwNDIpLHJlYWN0UHJvcHNSZWdleD0vXigoY2hpbGRyZW58ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUx8a2V5fHJlZnxhdXRvRm9jdXN8ZGVmYXVsdFZhbHVlfGRlZmF1bHRDaGVja2VkfGlubmVySFRNTHxzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmd8c3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nfHZhbHVlTGlua3xhYmJyfGFjY2VwdHxhY2NlcHRDaGFyc2V0fGFjY2Vzc0tleXxhY3Rpb258YWxsb3d8YWxsb3dVc2VyTWVkaWF8YWxsb3dQYXltZW50UmVxdWVzdHxhbGxvd0Z1bGxTY3JlZW58YWxsb3dUcmFuc3BhcmVuY3l8YWx0fGFzeW5jfGF1dG9Db21wbGV0ZXxhdXRvUGxheXxjYXB0dXJlfGNlbGxQYWRkaW5nfGNlbGxTcGFjaW5nfGNoYWxsZW5nZXxjaGFyU2V0fGNoZWNrZWR8Y2l0ZXxjbGFzc0lEfGNsYXNzTmFtZXxjb2xzfGNvbFNwYW58Y29udGVudHxjb250ZW50RWRpdGFibGV8Y29udGV4dE1lbnV8Y29udHJvbHN8Y29udHJvbHNMaXN0fGNvb3Jkc3xjcm9zc09yaWdpbnxkYXRhfGRhdGVUaW1lfGRlY29kaW5nfGRlZmF1bHR8ZGVmZXJ8ZGlyfGRpc2FibGVkfGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlfGRvd25sb2FkfGRyYWdnYWJsZXxlbmNUeXBlfGVudGVyS2V5SGludHxmb3JtfGZvcm1BY3Rpb258Zm9ybUVuY1R5cGV8Zm9ybU1ldGhvZHxmb3JtTm9WYWxpZGF0ZXxmb3JtVGFyZ2V0fGZyYW1lQm9yZGVyfGhlYWRlcnN8aGVpZ2h0fGhpZGRlbnxoaWdofGhyZWZ8aHJlZkxhbmd8aHRtbEZvcnxodHRwRXF1aXZ8aWR8aW5wdXRNb2RlfGludGVncml0eXxpc3xrZXlQYXJhbXN8a2V5VHlwZXxraW5kfGxhYmVsfGxhbmd8bGlzdHxsb2FkaW5nfGxvb3B8bG93fG1hcmdpbkhlaWdodHxtYXJnaW5XaWR0aHxtYXh8bWF4TGVuZ3RofG1lZGlhfG1lZGlhR3JvdXB8bWV0aG9kfG1pbnxtaW5MZW5ndGh8bXVsdGlwbGV8bXV0ZWR8bmFtZXxub25jZXxub1ZhbGlkYXRlfG9wZW58b3B0aW11bXxwYXR0ZXJufHBsYWNlaG9sZGVyfHBsYXlzSW5saW5lfHBvc3RlcnxwcmVsb2FkfHByb2ZpbGV8cmFkaW9Hcm91cHxyZWFkT25seXxyZWZlcnJlclBvbGljeXxyZWx8cmVxdWlyZWR8cmV2ZXJzZWR8cm9sZXxyb3dzfHJvd1NwYW58c2FuZGJveHxzY29wZXxzY29wZWR8c2Nyb2xsaW5nfHNlYW1sZXNzfHNlbGVjdGVkfHNoYXBlfHNpemV8c2l6ZXN8c2xvdHxzcGFufHNwZWxsQ2hlY2t8c3JjfHNyY0RvY3xzcmNMYW5nfHNyY1NldHxzdGFydHxzdGVwfHN0eWxlfHN1bW1hcnl8dGFiSW5kZXh8dGFyZ2V0fHRpdGxlfHRyYW5zbGF0ZXx0eXBlfHVzZU1hcHx2YWx1ZXx3aWR0aHx3bW9kZXx3cmFwfGFib3V0fGRhdGF0eXBlfGlubGlzdHxwcmVmaXh8cHJvcGVydHl8cmVzb3VyY2V8dHlwZW9mfHZvY2FifGF1dG9DYXBpdGFsaXplfGF1dG9Db3JyZWN0fGF1dG9TYXZlfGNvbG9yfGluY3JlbWVudGFsfGZhbGxiYWNrfGluZXJ0fGl0ZW1Qcm9wfGl0ZW1TY29wZXxpdGVtVHlwZXxpdGVtSUR8aXRlbVJlZnxvbnxvcHRpb258cmVzdWx0c3xzZWN1cml0eXx1bnNlbGVjdGFibGV8YWNjZW50SGVpZ2h0fGFjY3VtdWxhdGV8YWRkaXRpdmV8YWxpZ25tZW50QmFzZWxpbmV8YWxsb3dSZW9yZGVyfGFscGhhYmV0aWN8YW1wbGl0dWRlfGFyYWJpY0Zvcm18YXNjZW50fGF0dHJpYnV0ZU5hbWV8YXR0cmlidXRlVHlwZXxhdXRvUmV2ZXJzZXxhemltdXRofGJhc2VGcmVxdWVuY3l8YmFzZWxpbmVTaGlmdHxiYXNlUHJvZmlsZXxiYm94fGJlZ2lufGJpYXN8Ynl8Y2FsY01vZGV8Y2FwSGVpZ2h0fGNsaXB8Y2xpcFBhdGhVbml0c3xjbGlwUGF0aHxjbGlwUnVsZXxjb2xvckludGVycG9sYXRpb258Y29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyc3xjb2xvclByb2ZpbGV8Y29sb3JSZW5kZXJpbmd8Y29udGVudFNjcmlwdFR5cGV8Y29udGVudFN0eWxlVHlwZXxjdXJzb3J8Y3h8Y3l8ZHxkZWNlbGVyYXRlfGRlc2NlbnR8ZGlmZnVzZUNvbnN0YW50fGRpcmVjdGlvbnxkaXNwbGF5fGRpdmlzb3J8ZG9taW5hbnRCYXNlbGluZXxkdXJ8ZHh8ZHl8ZWRnZU1vZGV8ZWxldmF0aW9ufGVuYWJsZUJhY2tncm91bmR8ZW5kfGV4cG9uZW50fGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWR8ZmlsbHxmaWxsT3BhY2l0eXxmaWxsUnVsZXxmaWx0ZXJ8ZmlsdGVyUmVzfGZpbHRlclVuaXRzfGZsb29kQ29sb3J8Zmxvb2RPcGFjaXR5fGZvY3VzYWJsZXxmb250RmFtaWx5fGZvbnRTaXplfGZvbnRTaXplQWRqdXN0fGZvbnRTdHJldGNofGZvbnRTdHlsZXxmb250VmFyaWFudHxmb250V2VpZ2h0fGZvcm1hdHxmcm9tfGZyfGZ4fGZ5fGcxfGcyfGdseXBoTmFtZXxnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbHxnbHlwaE9yaWVudGF0aW9uVmVydGljYWx8Z2x5cGhSZWZ8Z3JhZGllbnRUcmFuc2Zvcm18Z3JhZGllbnRVbml0c3xoYW5naW5nfGhvcml6QWR2WHxob3Jpek9yaWdpblh8aWRlb2dyYXBoaWN8aW1hZ2VSZW5kZXJpbmd8aW58aW4yfGludGVyY2VwdHxrfGsxfGsyfGszfGs0fGtlcm5lbE1hdHJpeHxrZXJuZWxVbml0TGVuZ3RofGtlcm5pbmd8a2V5UG9pbnRzfGtleVNwbGluZXN8a2V5VGltZXN8bGVuZ3RoQWRqdXN0fGxldHRlclNwYWNpbmd8bGlnaHRpbmdDb2xvcnxsaW1pdGluZ0NvbmVBbmdsZXxsb2NhbHxtYXJrZXJFbmR8bWFya2VyTWlkfG1hcmtlclN0YXJ0fG1hcmtlckhlaWdodHxtYXJrZXJVbml0c3xtYXJrZXJXaWR0aHxtYXNrfG1hc2tDb250ZW50VW5pdHN8bWFza1VuaXRzfG1hdGhlbWF0aWNhbHxtb2RlfG51bU9jdGF2ZXN8b2Zmc2V0fG9wYWNpdHl8b3BlcmF0b3J8b3JkZXJ8b3JpZW50fG9yaWVudGF0aW9ufG9yaWdpbnxvdmVyZmxvd3xvdmVybGluZVBvc2l0aW9ufG92ZXJsaW5lVGhpY2tuZXNzfHBhbm9zZTF8cGFpbnRPcmRlcnxwYXRoTGVuZ3RofHBhdHRlcm5Db250ZW50VW5pdHN8cGF0dGVyblRyYW5zZm9ybXxwYXR0ZXJuVW5pdHN8cG9pbnRlckV2ZW50c3xwb2ludHN8cG9pbnRzQXRYfHBvaW50c0F0WXxwb2ludHNBdFp8cHJlc2VydmVBbHBoYXxwcmVzZXJ2ZUFzcGVjdFJhdGlvfHByaW1pdGl2ZVVuaXRzfHJ8cmFkaXVzfHJlZlh8cmVmWXxyZW5kZXJpbmdJbnRlbnR8cmVwZWF0Q291bnR8cmVwZWF0RHVyfHJlcXVpcmVkRXh0ZW5zaW9uc3xyZXF1aXJlZEZlYXR1cmVzfHJlc3RhcnR8cmVzdWx0fHJvdGF0ZXxyeHxyeXxzY2FsZXxzZWVkfHNoYXBlUmVuZGVyaW5nfHNsb3BlfHNwYWNpbmd8c3BlY3VsYXJDb25zdGFudHxzcGVjdWxhckV4cG9uZW50fHNwZWVkfHNwcmVhZE1ldGhvZHxzdGFydE9mZnNldHxzdGREZXZpYXRpb258c3RlbWh8c3RlbXZ8c3RpdGNoVGlsZXN8c3RvcENvbG9yfHN0b3BPcGFjaXR5fHN0cmlrZXRocm91Z2hQb3NpdGlvbnxzdHJpa2V0aHJvdWdoVGhpY2tuZXNzfHN0cmluZ3xzdHJva2V8c3Ryb2tlRGFzaGFycmF5fHN0cm9rZURhc2hvZmZzZXR8c3Ryb2tlTGluZWNhcHxzdHJva2VMaW5lam9pbnxzdHJva2VNaXRlcmxpbWl0fHN0cm9rZU9wYWNpdHl8c3Ryb2tlV2lkdGh8c3VyZmFjZVNjYWxlfHN5c3RlbUxhbmd1YWdlfHRhYmxlVmFsdWVzfHRhcmdldFh8dGFyZ2V0WXx0ZXh0QW5jaG9yfHRleHREZWNvcmF0aW9ufHRleHRSZW5kZXJpbmd8dGV4dExlbmd0aHx0b3x0cmFuc2Zvcm18dTF8dTJ8dW5kZXJsaW5lUG9zaXRpb258dW5kZXJsaW5lVGhpY2tuZXNzfHVuaWNvZGV8dW5pY29kZUJpZGl8dW5pY29kZVJhbmdlfHVuaXRzUGVyRW18dkFscGhhYmV0aWN8dkhhbmdpbmd8dklkZW9ncmFwaGljfHZNYXRoZW1hdGljYWx8dmFsdWVzfHZlY3RvckVmZmVjdHx2ZXJzaW9ufHZlcnRBZHZZfHZlcnRPcmlnaW5YfHZlcnRPcmlnaW5ZfHZpZXdCb3h8dmlld1RhcmdldHx2aXNpYmlsaXR5fHdpZHRoc3x3b3JkU3BhY2luZ3x3cml0aW5nTW9kZXx4fHhIZWlnaHR8eDF8eDJ8eENoYW5uZWxTZWxlY3Rvcnx4bGlua0FjdHVhdGV8eGxpbmtBcmNyb2xlfHhsaW5rSHJlZnx4bGlua1JvbGV8eGxpbmtTaG93fHhsaW5rVGl0bGV8eGxpbmtUeXBlfHhtbEJhc2V8eG1sbnN8eG1sbnNYbGlua3x4bWxMYW5nfHhtbFNwYWNlfHl8eTF8eTJ8eUNoYW5uZWxTZWxlY3Rvcnx6fHpvb21BbmRQYW58Zm9yfGNsYXNzfGF1dG9mb2N1cyl8KChbRGRdW0FhXVtUdF1bQWFdfFtBYV1bUnJdW0lpXVtBYV18eCktLiopKSQvLGlzUHJvcFZhbGlkPSgwLGVtb3Rpb25fbWVtb2l6ZV9lc20uWikoZnVuY3Rpb24ocHJvcCl7cmV0dXJuIHJlYWN0UHJvcHNSZWdleC50ZXN0KHByb3ApfHwxMTE9PT1wcm9wLmNoYXJDb2RlQXQoMCkmJjExMD09PXByb3AuY2hhckNvZGVBdCgxKSYmOTE+cHJvcC5jaGFyQ29kZUF0KDIpfSksZW1vdGlvbl9lbGVtZW50X2MzOTYxN2Q4X2Jyb3dzZXJfZXNtPV9fd2VicGFja19yZXF1aXJlX18oOTc1NyksZW1vdGlvbl91dGlsc19icm93c2VyX2VzbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDcwNDQ0KSxlbW90aW9uX3NlcmlhbGl6ZV9icm93c2VyX2VzbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDUwNjQ5KSxlbW90aW9uX3VzZV9pbnNlcnRpb25fZWZmZWN0X3dpdGhfZmFsbGJhY2tzX2Jyb3dzZXJfZXNtPV9fd2VicGFja19yZXF1aXJlX18oMjcyNzgpLHRlc3RPbWl0UHJvcHNPbkNvbXBvbmVudD1mdW5jdGlvbihrZXkpe3JldHVybiJ0aGVtZSIhPT1rZXl9LGdldERlZmF1bHRTaG91bGRGb3J3YXJkUHJvcD1mdW5jdGlvbih0YWcpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdGFnJiZ0YWcuY2hhckNvZGVBdCgwKT45Nj9pc1Byb3BWYWxpZDp0ZXN0T21pdFByb3BzT25Db21wb25lbnR9LGNvbXBvc2VTaG91bGRGb3J3YXJkUHJvcHM9ZnVuY3Rpb24odGFnLG9wdGlvbnMsaXNSZWFsKXt2YXIgc2hvdWxkRm9yd2FyZFByb3A7aWYob3B0aW9ucyl7dmFyIG9wdGlvbnNTaG91bGRGb3J3YXJkUHJvcD1vcHRpb25zLnNob3VsZEZvcndhcmRQcm9wO3Nob3VsZEZvcndhcmRQcm9wPXRhZy5fX2Vtb3Rpb25fZm9yd2FyZFByb3AmJm9wdGlvbnNTaG91bGRGb3J3YXJkUHJvcD9mdW5jdGlvbihwcm9wTmFtZSl7cmV0dXJuIHRhZy5fX2Vtb3Rpb25fZm9yd2FyZFByb3AocHJvcE5hbWUpJiZvcHRpb25zU2hvdWxkRm9yd2FyZFByb3AocHJvcE5hbWUpfTpvcHRpb25zU2hvdWxkRm9yd2FyZFByb3B9cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHNob3VsZEZvcndhcmRQcm9wJiZpc1JlYWwmJihzaG91bGRGb3J3YXJkUHJvcD10YWcuX19lbW90aW9uX2ZvcndhcmRQcm9wKSxzaG91bGRGb3J3YXJkUHJvcH0sSW5zZXJ0aW9uPWZ1bmN0aW9uKF9yZWYpe3ZhciBjYWNoZT1fcmVmLmNhY2hlLHNlcmlhbGl6ZWQ9X3JlZi5zZXJpYWxpemVkLGlzU3RyaW5nVGFnPV9yZWYuaXNTdHJpbmdUYWc7cmV0dXJuKDAsZW1vdGlvbl91dGlsc19icm93c2VyX2VzbS5oQykoY2FjaGUsc2VyaWFsaXplZCxpc1N0cmluZ1RhZyksKDAsZW1vdGlvbl91c2VfaW5zZXJ0aW9uX2VmZmVjdF93aXRoX2ZhbGxiYWNrc19icm93c2VyX2VzbS5MKShmdW5jdGlvbigpe3JldHVybigwLGVtb3Rpb25fdXRpbHNfYnJvd3Nlcl9lc20uTXkpKGNhY2hlLHNlcmlhbGl6ZWQsaXNTdHJpbmdUYWcpfSksbnVsbH0sbmV3U3R5bGVkPShmdW5jdGlvbiBjcmVhdGVTdHlsZWQodGFnLG9wdGlvbnMpe3ZhciBpZGVudGlmaWVyTmFtZSx0YXJnZXRDbGFzc05hbWUsaXNSZWFsPXRhZy5fX2Vtb3Rpb25fcmVhbD09PXRhZyxiYXNlVGFnPWlzUmVhbCYmdGFnLl9fZW1vdGlvbl9iYXNlfHx0YWc7dm9pZCAwIT09b3B0aW9ucyYmKGlkZW50aWZpZXJOYW1lPW9wdGlvbnMubGFiZWwsdGFyZ2V0Q2xhc3NOYW1lPW9wdGlvbnMudGFyZ2V0KTt2YXIgc2hvdWxkRm9yd2FyZFByb3A9Y29tcG9zZVNob3VsZEZvcndhcmRQcm9wcyh0YWcsb3B0aW9ucyxpc1JlYWwpLGRlZmF1bHRTaG91bGRGb3J3YXJkUHJvcD1zaG91bGRGb3J3YXJkUHJvcHx8Z2V0RGVmYXVsdFNob3VsZEZvcndhcmRQcm9wKGJhc2VUYWcpLHNob3VsZFVzZUFzPSFkZWZhdWx0U2hvdWxkRm9yd2FyZFByb3AoImFzIik7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGFyZ3M9YXJndW1lbnRzLHN0eWxlcz1pc1JlYWwmJnZvaWQgMCE9PXRhZy5fX2Vtb3Rpb25fc3R5bGVzP3RhZy5fX2Vtb3Rpb25fc3R5bGVzLnNsaWNlKDApOltdO2lmKHZvaWQgMCE9PWlkZW50aWZpZXJOYW1lJiZzdHlsZXMucHVzaCgibGFiZWw6IitpZGVudGlmaWVyTmFtZSsiOyIpLG51bGw9PWFyZ3NbMF18fHZvaWQgMD09PWFyZ3NbMF0ucmF3KXN0eWxlcy5wdXNoLmFwcGx5KHN0eWxlcyxhcmdzKTtlbHNle3N0eWxlcy5wdXNoKGFyZ3NbMF1bMF0pO2Zvcih2YXIgbGVuPWFyZ3MubGVuZ3RoLGk9MTtpPGxlbjtpKyspc3R5bGVzLnB1c2goYXJnc1tpXSxhcmdzWzBdW2ldKX12YXIgU3R5bGVkPSgwLGVtb3Rpb25fZWxlbWVudF9jMzk2MTdkOF9icm93c2VyX2VzbS53KShmdW5jdGlvbihwcm9wcyxjYWNoZSxyZWYpe3ZhciBGaW5hbFRhZz1zaG91bGRVc2VBcyYmcHJvcHMuYXN8fGJhc2VUYWcsY2xhc3NOYW1lPSIiLGNsYXNzSW50ZXJwb2xhdGlvbnM9W10sbWVyZ2VkUHJvcHM9cHJvcHM7aWYobnVsbD09cHJvcHMudGhlbWUpe2Zvcih2YXIga2V5IGluIG1lcmdlZFByb3BzPXt9LHByb3BzKW1lcmdlZFByb3BzW2tleV09cHJvcHNba2V5XTttZXJnZWRQcm9wcy50aGVtZT1yZWFjdC51c2VDb250ZXh0KGVtb3Rpb25fZWxlbWVudF9jMzk2MTdkOF9icm93c2VyX2VzbS5UKX0ic3RyaW5nIj09dHlwZW9mIHByb3BzLmNsYXNzTmFtZT9jbGFzc05hbWU9KDAsZW1vdGlvbl91dGlsc19icm93c2VyX2VzbS5mcCkoY2FjaGUucmVnaXN0ZXJlZCxjbGFzc0ludGVycG9sYXRpb25zLHByb3BzLmNsYXNzTmFtZSk6bnVsbCE9cHJvcHMuY2xhc3NOYW1lJiYoY2xhc3NOYW1lPXByb3BzLmNsYXNzTmFtZSsiICIpO3ZhciBzZXJpYWxpemVkPSgwLGVtb3Rpb25fc2VyaWFsaXplX2Jyb3dzZXJfZXNtLk8pKHN0eWxlcy5jb25jYXQoY2xhc3NJbnRlcnBvbGF0aW9ucyksY2FjaGUucmVnaXN0ZXJlZCxtZXJnZWRQcm9wcyk7Y2xhc3NOYW1lKz1jYWNoZS5rZXkrIi0iK3NlcmlhbGl6ZWQubmFtZSx2b2lkIDAhPT10YXJnZXRDbGFzc05hbWUmJihjbGFzc05hbWUrPSIgIit0YXJnZXRDbGFzc05hbWUpO3ZhciBmaW5hbFNob3VsZEZvcndhcmRQcm9wPXNob3VsZFVzZUFzJiZ2b2lkIDA9PT1zaG91bGRGb3J3YXJkUHJvcD9nZXREZWZhdWx0U2hvdWxkRm9yd2FyZFByb3AoRmluYWxUYWcpOmRlZmF1bHRTaG91bGRGb3J3YXJkUHJvcCxuZXdQcm9wcz17fTtmb3IodmFyIF9rZXkgaW4gcHJvcHMpKCFzaG91bGRVc2VBc3x8ImFzIiE9PV9rZXkpJiZmaW5hbFNob3VsZEZvcndhcmRQcm9wKF9rZXkpJiYobmV3UHJvcHNbX2tleV09cHJvcHNbX2tleV0pO3JldHVybiBuZXdQcm9wcy5jbGFzc05hbWU9Y2xhc3NOYW1lLG5ld1Byb3BzLnJlZj1yZWYscmVhY3QuY3JlYXRlRWxlbWVudChyZWFjdC5GcmFnbWVudCxudWxsLHJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5zZXJ0aW9uLHtjYWNoZTpjYWNoZSxzZXJpYWxpemVkOnNlcmlhbGl6ZWQsaXNTdHJpbmdUYWc6InN0cmluZyI9PXR5cGVvZiBGaW5hbFRhZ30pLHJlYWN0LmNyZWF0ZUVsZW1lbnQoRmluYWxUYWcsbmV3UHJvcHMpKX0pO3JldHVybiBTdHlsZWQuZGlzcGxheU5hbWU9dm9pZCAwIT09aWRlbnRpZmllck5hbWU/aWRlbnRpZmllck5hbWU6IlN0eWxlZCgiKygic3RyaW5nIj09dHlwZW9mIGJhc2VUYWc/YmFzZVRhZzpiYXNlVGFnLmRpc3BsYXlOYW1lfHxiYXNlVGFnLm5hbWV8fCJDb21wb25lbnQiKSsiKSIsU3R5bGVkLmRlZmF1bHRQcm9wcz10YWcuZGVmYXVsdFByb3BzLFN0eWxlZC5fX2Vtb3Rpb25fcmVhbD1TdHlsZWQsU3R5bGVkLl9fZW1vdGlvbl9iYXNlPWJhc2VUYWcsU3R5bGVkLl9fZW1vdGlvbl9zdHlsZXM9c3R5bGVzLFN0eWxlZC5fX2Vtb3Rpb25fZm9yd2FyZFByb3A9c2hvdWxkRm9yd2FyZFByb3AsT2JqZWN0LmRlZmluZVByb3BlcnR5KFN0eWxlZCwidG9TdHJpbmciLHt2YWx1ZTpmdW5jdGlvbigpe3JldHVybiIuIit0YXJnZXRDbGFzc05hbWV9fSksU3R5bGVkLndpdGhDb21wb25lbnQ9ZnVuY3Rpb24obmV4dFRhZyxuZXh0T3B0aW9ucyl7cmV0dXJuIGNyZWF0ZVN0eWxlZChuZXh0VGFnLF9leHRlbmRzKHt9LG9wdGlvbnMsbmV4dE9wdGlvbnMse3Nob3VsZEZvcndhcmRQcm9wOmNvbXBvc2VTaG91bGRGb3J3YXJkUHJvcHMoU3R5bGVkLG5leHRPcHRpb25zLCEwKX0pKS5hcHBseSh2b2lkIDAsc3R5bGVzKX0sU3R5bGVkfX0pLmJpbmQoKTtbImEiLCJhYmJyIiwiYWRkcmVzcyIsImFyZWEiLCJhcnRpY2xlIiwiYXNpZGUiLCJhdWRpbyIsImIiLCJiYXNlIiwiYmRpIiwiYmRvIiwiYmlnIiwiYmxvY2txdW90ZSIsImJvZHkiLCJiciIsImJ1dHRvbiIsImNhbnZhcyIsImNhcHRpb24iLCJjaXRlIiwiY29kZSIsImNvbCIsImNvbGdyb3VwIiwiZGF0YSIsImRhdGFsaXN0IiwiZGQiLCJkZWwiLCJkZXRhaWxzIiwiZGZuIiwiZGlhbG9nIiwiZGl2IiwiZGwiLCJkdCIsImVtIiwiZW1iZWQiLCJmaWVsZHNldCIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb290ZXIiLCJmb3JtIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaGVhZCIsImhlYWRlciIsImhncm91cCIsImhyIiwiaHRtbCIsImkiLCJpZnJhbWUiLCJpbWciLCJpbnB1dCIsImlucyIsImtiZCIsImtleWdlbiIsImxhYmVsIiwibGVnZW5kIiwibGkiLCJsaW5rIiwibWFpbiIsIm1hcCIsIm1hcmsiLCJtYXJxdWVlIiwibWVudSIsIm1lbnVpdGVtIiwibWV0YSIsIm1ldGVyIiwibmF2Iiwibm9zY3JpcHQiLCJvYmplY3QiLCJvbCIsIm9wdGdyb3VwIiwib3B0aW9uIiwib3V0cHV0IiwicCIsInBhcmFtIiwicGljdHVyZSIsInByZSIsInByb2dyZXNzIiwicSIsInJwIiwicnQiLCJydWJ5IiwicyIsInNhbXAiLCJzY3JpcHQiLCJzZWN0aW9uIiwic2VsZWN0Iiwic21hbGwiLCJzb3VyY2UiLCJzcGFuIiwic3Ryb25nIiwic3R5bGUiLCJzdWIiLCJzdW1tYXJ5Iiwic3VwIiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGV4dGFyZWEiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0aW1lIiwidGl0bGUiLCJ0ciIsInRyYWNrIiwidSIsInVsIiwidmFyIiwidmlkZW8iLCJ3YnIiLCJjaXJjbGUiLCJjbGlwUGF0aCIsImRlZnMiLCJlbGxpcHNlIiwiZm9yZWlnbk9iamVjdCIsImciLCJpbWFnZSIsImxpbmUiLCJsaW5lYXJHcmFkaWVudCIsIm1hc2siLCJwYXRoIiwicGF0dGVybiIsInBvbHlnb24iLCJwb2x5bGluZSIsInJhZGlhbEdyYWRpZW50IiwicmVjdCIsInN0b3AiLCJzdmciLCJ0ZXh0IiwidHNwYW4iXS5mb3JFYWNoKGZ1bmN0aW9uKHRhZ05hbWUpe25ld1N0eWxlZFt0YWdOYW1lXT1uZXdTdHlsZWQodGFnTmFtZSl9KTt2YXIgaW5wdXQ9X193ZWJwYWNrX3JlcXVpcmVfXyg3NjI5MiksZXNfZm9ybT1fX3dlYnBhY2tfcmVxdWlyZV9fKDYzMTAyKSxpbnB1dF9udW1iZXI9X193ZWJwYWNrX3JlcXVpcmVfXygxMzg4MCksZXNfYnV0dG9uPV9fd2VicGFja19yZXF1aXJlX18oODA0NDcpLGRhdGVfcGlja2VyPV9fd2VicGFja19yZXF1aXJlX18oNDAyMTYpLGNvbGxhcHNlPV9fd2VicGFja19yZXF1aXJlX18oNDcyMjEpLGVzX3NlbGVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDM1MTIyKSxtb2RhbD1fX3dlYnBhY2tfcmVxdWlyZV9fKDk0ODI4KTtsZXR7VGV4dEFyZWF9PWlucHV0LlosTUZvcm09bmV3U3R5bGVkKGVzX2Zvcm0uWix7dGFyZ2V0OiJlc2g5Ymo4MCJ9KSgiLmFudC1mb3JtLWl0ZW0tbGFiZWx7bGFiZWx7Zm9udC13ZWlnaHQ6Iixwcm9wcz0+cHJvcHMuYm9sZD82MDA6NTAwLCI7Zm9udC1zaXplOjIwcHg7fX0iKSxNSW5wdXQ9bmV3U3R5bGVkKGlucHV0Llose3RhcmdldDoiZXNoOWJqODEifSkoIiYuYW50LWlucHV0e3BhZGRpbmc6MTNweCAxMnB4O2JvcmRlcjoxcHggc29saWQgI0YzRjJGNjtib3JkZXItcmFkaXVzOjEycHg7fSYuYW50LWlucHV0LW91dGxpbmVkOmZvY3Vze2JvcmRlci1jb2xvcjojMzg0QUEwO30mLmFudC1pbnB1dC1hZmZpeC13cmFwcGVye3BhZGRpbmc6NnB4IDEycHg7fSIpLE1JbnB1dE51bWJlcj1uZXdTdHlsZWQoaW5wdXRfbnVtYmVyLlose3RhcmdldDoiZXNoOWJqODIifSkoIiYuYW50LWlucHV0LW51bWJlcntwYWRkaW5nOjEzcHggMTJweDtib3JkZXI6MXB4IHNvbGlkICNGM0YyRjY7Ym9yZGVyLXJhZGl1czoxMnB4O3dpZHRoOjEwMCU7fSYuYW50LWlucHV0LW51bWJlci1vdXRsaW5lZDpmb2N1c3tib3JkZXItY29sb3I6IzM4NEFBMDt9Ji5hbnQtaW5wdXQtbnVtYmVyLWFmZml4LXdyYXBwZXJ7cGFkZGluZzo2cHggMTJweDt9IiksTVRleHRBcmVhPW5ld1N0eWxlZChUZXh0QXJlYSx7dGFyZ2V0OiJlc2g5Ymo4MyJ9KSgiJi5hbnQtaW5wdXR7cGFkZGluZzoxM3B4IDEycHg7Ym9yZGVyOjFweCBzb2xpZCAjRjNGMkY2O2JvcmRlci1yYWRpdXM6MTJweDt9Ji5hbnQtaW5wdXQtb3V0bGluZWQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMzODRBQTA7fSYuYW50LWlucHV0LWFmZml4LXdyYXBwZXJ7cGFkZGluZzo2cHggMTJweDt9IiksTUNsaWNrQnV0dG9uPW5ld1N0eWxlZChlc19idXR0b24uWlAse3RhcmdldDoiZXNoOWJqODQifSkoIiYuYW50LWJ0bntmb250LXNpemU6Iixwcm9wcz0+cHJvcHMuc21hbGw/IjE0cHgiOnByb3BzLm1lZGl1bT8iMTRweCI6IjE2cHgiLCI7bGluZS1oZWlnaHQ6MTtib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luOjA7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXItcmFkaXVzOjQwcHg7Ym94LXNoYWRvdzowIDJweCAwIHJnYmEoNSwxNDUsMjU1LDAuMSk7aGVpZ2h0OiIscHJvcHM9PnByb3BzLnNtYWxsPyIzMHB4Ijpwcm9wcy5tZWRpdW0/IjQwcHgiOiI0NHB4IiwiO21pbi1oZWlnaHQ6Iixwcm9wcz0+cHJvcHMuc21hbGw/IjMwcHgiOnByb3BzLm1lZGl1bT8iNDBweCI6IjQ0cHgiLCI7cGFkZGluZzoiLHByb3BzPT5wcm9wcy5zbWFsbD8iNXB4IDE2cHgiOnByb3BzLm1lZGl1bT8iOXB4IDIwcHgiOiIxNHB4IDMwcHgiLCI7fSIpLE1CdXR0b25UcmFuc3BhcmVudD1uZXdTdHlsZWQoZXNfYnV0dG9uLlpQLHt0YXJnZXQ6ImVzaDliajg1In0pKCImLmFudC1idG57Zm9udC1zaXplOiIscHJvcHM9PnByb3BzLnNtYWxsPyIxNHB4Ijpwcm9wcy5tZWRpdW0/IjE0cHgiOiIxOHB4IiwiO2xpbmUtaGVpZ2h0OjE7Ym94LXNpemluZzpib3JkZXItYm94O2JveC1zaGFkb3c6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO21hcmdpbjowO2hlaWdodDoiLHByb3BzPT5wcm9wcy5zbWFsbD8iMzBweCI6cHJvcHMubWVkaXVtPyI0MHB4IjoiNDZweCIsIjttaW4taGVpZ2h0OiIscHJvcHM9PnByb3BzLnNtYWxsPyIzMHB4Ijpwcm9wcy5tZWRpdW0/IjQwcHgiOiI0NnB4IiwiO3BhZGRpbmc6Iixwcm9wcz0+cHJvcHMuc21hbGw/IjVweCAxNnB4Ijpwcm9wcy5tZWRpdW0/IjlweCAyMHB4IjoiMTRweCAzMHB4IiwiO30iKSxNRGF0ZVBpY2tlcj1uZXdTdHlsZWQoZGF0ZV9waWNrZXIuWix7dGFyZ2V0OiJlc2g5Ymo4NyJ9KSgiJi5hbnQtcGlja2Vye3dpZHRoOjEwMCU7cGFkZGluZzoxM3B4IDEycHg7Ym9yZGVyLXJhZGl1czoxMnB4O2JvcmRlcjoxcHggc29saWQgI0YzRjJGNjt9Ji5hbnQtcGlja2VyLWZvY3VzZWR7Ym9yZGVyLWNvbG9yOiMzODRBQTA7fSIpLE1Db2xsYXBzZT1uZXdTdHlsZWQoY29sbGFwc2UuWix7dGFyZ2V0OiJlc2g5Ymo4MTAifSkoIiYuYW50LWNvbGxhcHNle2JvcmRlci1jb2xvcjojREZFMUVCO2JhY2tncm91bmQ6I0ZGRkZGRjttYXJnaW4tYm90dG9tOjIwcHg7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlci1yYWRpdXM6MjBweDt9LmFudC1jb2xsYXBzZS1oZWFkZXItdGV4dHtmb250LXNpemU6MjRweDt9LmFudC1jb2xsYXBzZS1oZWFkZXJ7ZGlzcGxheTpmbGV4ICFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyICFpbXBvcnRhbnQ7fS5hbnQtY29sbGFwc2UtaXRlbS1hY3RpdmV7YmFja2dyb3VuZDojRjVGN0ZGO30uYW50LWNvbGxhcHNlLWNvbnRlbnQtYWN0aXZle2JhY2tncm91bmQ6I0Y1RjdGRjtib3JkZXItdG9wOm5vbmU7b3ZlcmZsb3c6aGlkZGVuO30uYW50LWNvbGxhcHNlLWNvbnRlbnQtYm94e3BhZGRpbmctdG9wOjBweCAhaW1wb3J0YW50O2JvcmRlci10b3A6bm9uZSAhaW1wb3J0YW50O30iKSxNU2VsZWN0PW5ld1N0eWxlZChlc19zZWxlY3QuWix7dGFyZ2V0OiJlc2g5Ymo4MTEifSkoIiYuYW50LXNlbGVjdHt3aWR0aDoxNjBweDtoZWlnaHQ6NDJweDt9LmFudC1zZWxlY3Qtc2VsZWN0b3J7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O2NvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZmZmMyAhaW1wb3J0YW50OyY6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmZmZmMWEgIWltcG9ydGFudDtib3JkZXItY29sb3I6I2ZmZmZmZjFhICFpbXBvcnRhbnQ7fX0uYW50LXNlbGVjdC1zZWxlY3Rpb24taXRlbSwuYW50LXNlbGVjdC1zZWxlY3Rpb24tc2VhcmNoLWlucHV0e2NvbG9yOiNmZmYgIWltcG9ydGFudDt9LmFudC1zZWxlY3QtYXJyb3d7Y29sb3I6I2ZmZiAhaW1wb3J0YW50O30iKSxNU2VsZWN0QW5kSW5wdXQ9bmV3U3R5bGVkKGVzX3NlbGVjdC5aLHt0YXJnZXQ6ImVzaDliajgxMiJ9KSgiJi5hbnQtc2VsZWN0e2hlaWdodDoiLHByb3BzPT5wcm9wcy5zbWFsbD8iNDJweCI6IjQ2cHgiLCI7aGVpZ2h0OjUwcHg7fS5hbnQtc2VsZWN0LXNlbGVjdG9ye2JvcmRlci1yYWRpdXM6Iixwcm9wcz0+cHJvcHMuc21hbGw/IjZweCI6IjhweCIsIjtib3JkZXI6MXB4IHNvbGlkICNGM0YyRjYgIWltcG9ydGFudDt9IiksTU1vZGFsPW5ld1N0eWxlZChtb2RhbC5aLHt0YXJnZXQ6ImVzaDliajgxMyJ9KSgpfSw2NjI1MTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0Ijt2YXIgX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDcyOTcpLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X189X193ZWJwYWNrX3JlcXVpcmVfXygzNTk0NCk7X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCk7dmFyIGFudGRfc3R5bGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDc2MTU5KSxhbnRkX3N0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX189X193ZWJwYWNrX3JlcXVpcmVfXygyODc0Myk7ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDEoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICAiLCIge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgfVxuICAgICAgIiwiIHtcbiAgICAgICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgICAgIHBhZGRpbmc6IDAgNDBweDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIH1cbiAgICAgICIsIiB7XG4gICAgICAgIG1heC13aWR0aDogOTAlO1xuICAgICAgICBwYWRkaW5nOiAwIDQwcHg7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB9XG4gICAgICAiLCIge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1sZXQgdXNlU3R5bGVzPSgwLGFudGRfc3R5bGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5rYykocGFyYW09PntsZXR7dG9rZW4sY3NzLHJlc3BvbnNpdmV9PXBhcmFtO3JldHVybntjb250YWluZXI6Y3NzKF90ZW1wbGF0ZU9iamVjdCgpKSxjb250YWluZXJNZWRpYTpjc3MoX3RlbXBsYXRlT2JqZWN0MSgpLHJlc3BvbnNpdmUuZGVza3RvcCxyZXNwb25zaXZlLmxhcHRvcCxyZXNwb25zaXZlLnRhYmxldCxyZXNwb25zaXZlLm1vYmlsZSl9fSksQ29udGFpbmVyPXBhcmFtPT57bGV0e2NoaWxkcmVuLGNsYXNzTmFtZSwuLi5yZXN0fT1wYXJhbSx7bW9iaWxlLHRhYmxldH09KDAsYW50ZF9zdHlsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLkYpKCkse3N0eWxlcyxjeH09dXNlU3R5bGVzKCk7cmV0dXJuKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50WikoImRpdiIse2NsYXNzTmFtZTpjeChzdHlsZXMuY29udGFpbmVyLHN0eWxlcy5jb250YWluZXJNZWRpYSxjbGFzc05hbWUpLC4uLnJlc3QsY2hpbGRyZW46Y2hpbGRyZW59KX07X193ZWJwYWNrX2V4cG9ydHNfXy5aPUNvbnRhaW5lcn0sMzMwMTQ6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pLF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIGdldENhcmR9fSk7dmFyIGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc209X193ZWJwYWNrX3JlcXVpcmVfXygzNTk0NCkscmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksZXNtPV9fd2VicGFja19yZXF1aXJlX18oODY5MCksX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsPV9fd2VicGFja19yZXF1aXJlX18oNzI5NyksZnVuY3Rpb25zPV9fd2VicGFja19yZXF1aXJlX18oNzYxNTkpO2Z1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdCgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgICAgei1pbmRleDogMTI7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MSgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDIoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMC44KTtcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA2MHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICAgIG1heC13aWR0aDogNTAwcHg7XG4gICAgICB3aWR0aDogOTAlO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHotaW5kZXg6IDEwMDAwO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0Mygpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMSk7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NCgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxNXB4O1xuICAgICAgcmlnaHQ6IDE1cHg7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBjb2xvcjogIzY2NjtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xuICAgICAgei1pbmRleDogMTAwMDE7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0ND1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDUoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmOGY5ZmEgMCUsICNlOWVjZWYgMTAwJSk7XG4gICAgICBwYWRkaW5nOiA0MHB4IDMwcHggMjBweDtcbiAgICAgIHBhZGRpbmctdG9wOiA2OHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDYoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q2PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0Nygpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgd2lkdGg6IDI4MHB4O1xuICAgICAgaGVpZ2h0OiAxODBweDtcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDI1cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNWRlZykgdHJhbnNsYXRlWSgxMHB4KTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgIH1cbiAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOGRlZykgdHJhbnNsYXRlWSgtMjBweCk7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xNjBweDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDc9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q4KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmOWY0ZGMsICNkMWQwYmYpO1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDg9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q5KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsnXG4gICAgICBmb250LWZhbWlseTogIkNvdXJpZXIgTmV3IiwgbW9ub3NwYWNlO1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICAgIGNvbG9yOiAjNjY2O1xuICAgICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgJ10pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q5PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTAoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBjb2xvcjogIzFhMWExYTtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDEwPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTEoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMjBweDtcbiAgICAgIGxlZnQ6IDIwcHg7XG4gICAgICB3aWR0aDogMTJweDtcbiAgICAgIGhlaWdodDogMTJweDtcbiAgICAgIGJhY2tncm91bmQ6ICM2NjY7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxMT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDEyKCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDIycHg7XG4gICAgICBsZWZ0OiA0MHB4O1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgY29sb3I6ICM2NjY7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTI9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxMygpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgcGFkZGluZzogMzBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDEzPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTQoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgY29sb3I6ICMxYTFhMWE7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE0PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTUoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGNvbG9yOiAjNjY2O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxNT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDE2KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNjM2NmYxLCAjOGI1Y2Y2KTtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDE2cHggMzJweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZTtcbiAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDE1cHggcmdiYSg5OSwgMTAyLCAyNDEsIDAuMyk7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDZweCAyMHB4IHJnYmEoOTksIDEwMiwgMjQxLCAwLjQpO1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTY9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1sZXQgdXNlU3R5bGVzPSgwLGZ1bmN0aW9ucy5rYykocGFyYW09PntsZXR7dG9rZW4sY3NzLHJlc3BvbnNpdmV9PXBhcmFtO3JldHVybntwb3B1cFB2ZXJsYXk6Y3NzKF90ZW1wbGF0ZU9iamVjdCgpKSxzaG93OmNzcyhfdGVtcGxhdGVPYmplY3QxKCkpLHZvbG9wYXlQb3B1cDpjc3MoX3RlbXBsYXRlT2JqZWN0MigpKSx2b2xvcGF5UG9wdXBTaG93OmNzcyhfdGVtcGxhdGVPYmplY3QzKCkpLHZvbG9wYXlDbG9zZTpjc3MoX3RlbXBsYXRlT2JqZWN0NCgpKSx2b2xvcGF5Q2FyZHM6Y3NzKF90ZW1wbGF0ZU9iamVjdDUoKSksY2FyZFN0YWNrOmNzcyhfdGVtcGxhdGVPYmplY3Q2KCkpLGNhcmQ6Y3NzKF90ZW1wbGF0ZU9iamVjdDcoKSksY2FyZENoaXA6Y3NzKF90ZW1wbGF0ZU9iamVjdDgoKSksY2FyZE51bWJlcjpjc3MoX3RlbXBsYXRlT2JqZWN0OSgpKSxjYXJkTG9nbzpjc3MoX3RlbXBsYXRlT2JqZWN0MTAoKSksdm9sb3BheUxvZ286Y3NzKF90ZW1wbGF0ZU9iamVjdDExKCkpLHZvbG9wYXlUZXh0OmNzcyhfdGVtcGxhdGVPYmplY3QxMigpKSx2b2xvcGF5Q29udGVudDpjc3MoX3RlbXBsYXRlT2JqZWN0MTMoKSksdm9sb3BheVRpdGxlOmNzcyhfdGVtcGxhdGVPYmplY3QxNCgpKSx2b2xvcGF5U3VidGl0bGU6Y3NzKF90ZW1wbGF0ZU9iamVjdDE1KCkpLHZvbG9wYXlCdXR0b246Y3NzKF90ZW1wbGF0ZU9iamVjdDE2KCkpfX0pLHRpbWVvdXRJZD1udWxsLENNUD0oKT0+e2xldHt0LGkxOG59PSgwLGVzbS4kRykoWyJjb21tb24iXSkse3N0eWxlcyxjeH09dXNlU3R5bGVzKCksW29wZW4sc2V0T3Blbl09KDAscmVhY3QudXNlU3RhdGUpKCExKTsoMCxyZWFjdC51c2VFZmZlY3QpKCgpPT57e2xldCBwb3BlZD13aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oIkdFVENBUkQiKTtwb3BlZHx8KHRpbWVvdXRJZD1zZXRUaW1lb3V0KCgpPT57c2V0T3BlbighMCksd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJHRVRDQVJEIiwiT3BlbmVkIil9LDJlNCkpfXJldHVybigpPT57Y2xlYXJUaW1lb3V0KHRpbWVvdXRJZCl9fSxbXSk7bGV0IGhhbmRsZUdldENhcmQ9KCk9Pnt3aW5kb3cub3BlbigiaHR0cHM6Ly9hcHAuYnV2ZWkuY29tP3M9QmluU2VhcmNoX1BvcHVwIiwiX2JsYW5rIil9O3JldHVybigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6Y3goc3R5bGVzLnBvcHVwUHZlcmxheSxvcGVuJiZzdHlsZXMuc2hvdyksaWQ6InZvbG9wYXlQb3B1cCIsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpjeChzdHlsZXMudm9sb3BheVBvcHVwLG9wZW4mJnN0eWxlcy52b2xvcGF5UG9wdXBTaG93KSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImJ1dHRvbiIse2NsYXNzTmFtZTpzdHlsZXMudm9sb3BheUNsb3NlLGlkOiJjbG9zZVBvcHVwIixvbkNsaWNrOigpPT5zZXRPcGVuKCExKSxjaGlsZHJlbjoiXHhkNyJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy52b2xvcGF5Q2FyZHMsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuY2FyZFN0YWNrLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5jYXJkLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5jYXJkQ2hpcH0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmNhcmROdW1iZXIsY2hpbGRyZW46IuKAouKAouKAouKAoiDigKLigKLigKLigKIgMTIzNCJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5jYXJkTG9nbyxjaGlsZHJlbjoiVklTQSJ9KV19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5jYXJkLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5jYXJkQ2hpcH0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmNhcmROdW1iZXIsY2hpbGRyZW46IuKAouKAouKAouKAoiDigKLigKLigKLigKIgNTY3OCJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5jYXJkTG9nbyxjaGlsZHJlbjoiVklTQSJ9KV19KV19KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnZvbG9wYXlDb250ZW50LGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiaDIiLHtjbGFzc05hbWU6c3R5bGVzLnZvbG9wYXlUaXRsZSxjaGlsZHJlbjp0KCJ0MjAiLHtuczoiY29tbW9uIn0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoInAiLHtjbGFzc05hbWU6c3R5bGVzLnZvbG9wYXlTdWJ0aXRsZSxjaGlsZHJlbjp0KCJ0MjEiLHtuczoiY29tbW9uIn0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImJ1dHRvbiIse2NsYXNzTmFtZTpzdHlsZXMudm9sb3BheUJ1dHRvbixvbkNsaWNrOmhhbmRsZUdldENhcmQsY2hpbGRyZW46dCgidDIyIix7bnM6ImNvbW1vbiJ9KX0pXX0pXX0pfSl9O3ZhciBnZXRDYXJkPUNNUH0sOTgyNzQ6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7dmFyIF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXygzNTk0NCk7X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCk7bGV0IENNUD1wcm9wcz0+KDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5CWCkoInN2ZyIse3ZpZXdCb3g6IjAgMCAxMCAxMCIsLi4ucHJvcHMsY2hpbGRyZW46WygwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udFopKCJkZWZzIix7Y2hpbGRyZW46KDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50WikoInJlY3QiLHtpZDoicGF0aC1mNzVqZC1udXltLTEiLHg6IjAiLHk6IjAiLHdpZHRoOiIxMCIsaGVpZ2h0OiIxMCJ9KX0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udFopKCJnIix7aWQ6Iumhtemdoi0xIixzdHJva2U6Im5vbmUiLCJzdHJva2Utd2lkdGgiOiIxIixmaWxsOiJub25lIiwiZmlsbC1ydWxlIjoiZXZlbm9kZCIsY2hpbGRyZW46KDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5CWCkoImciLHtpZDoiQ29taW5nLVNvb24iLGNoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnRaKSgibWFzayIse2lkOiJtYXNrLWY3NWpkLW51eW0tMiIsZmlsbDoid2hpdGUiLGNoaWxkcmVuOigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udFopKCJ1c2UiLHt4bGlua0hyZWY6IiNwYXRoLWY3NWpkLW51eW0tMSJ9KX0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udFopKCJnIix7aWQ6IuefqeW9oiJ9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnRaKSgiZyIse2lkOiLnvJbnu4QiLG1hc2s6InVybCgjbWFzay1mNzVqZC1udXltLTIpIixjaGlsZHJlbjooMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkJYKSgiZyIse3RyYW5zZm9ybToidHJhbnNsYXRlKDEuNDU4NSwgMC4zMzM1KSIsY2hpbGRyZW46WygwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udFopKCJjaXJjbGUiLHtpZDoi5qSt5ZyG5b2iIixzdHJva2U6IiM1NTM4QTAiLCJzdHJva2Utd2lkdGgiOiIxIixmaWxsOiJub25lIiwic3Ryb2tlLWxpbmVqb2luIjoicm91bmQiLGN4OiIzLjU0MTY2Njk4IixjeToiNS4yOTE2NjY5OCIscjoiMy41NDE2NjY5OCJ9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnRaKSgicGF0aCIse2Q6Ik0yLjI5MTUwMzkxLDAgTDQuNzkxNTAzOTEsMCBDNC44MjQzMzcyNCwwIDQuODU2ODUwNTcsMC4wMDMyMDIzMzMzMyA0Ljg4OTA0MzkxLDAuMDA5NjA3IEM0LjkyMTI0MzkxLDAuMDE2MDEyMzMzMyA0Ljk1MjUxMDU3LDAuMDI1NDk2NjY2NyA0Ljk4Mjg0MzkxLDAuMDM4MDYgQzUuMDEzMTc3MjQsMC4wNTA2MjQgNS4wNDE5OTA1NywwLjA2NjAyNTY2NjcgNS4wNjkyODM5MSwwLjA4NDI2NSBDNS4wOTY1ODM5MSwwLjEwMjUwNSA1LjEyMTg0MDU3LDAuMTIzMjMyMzMzIDUuMTQ1MDUzOTEsMC4xNDY0NDcgQzUuMTY4MjY3MjQsMC4xNjk2NjE2NjcgNS4xODg5OTM5MSwwLjE5NDkxNzY2NyA1LjIwNzIzMzkxLDAuMjIyMjE1IEM1LjIyNTQ3MzkxLDAuMjQ5NTEyMzMzIDUuMjQwODc3MjQsMC4yNzgzMjY2NjcgNS4yNTM0NDM5MSwwLjMwODY1OCBDNS4yNjYwMDM5MSwwLjMzODk4OTMzMyA1LjI3NTQ4NzI0LDAuMzcwMjU0OTY3IDUuMjgxODkzOTEsMC40MDI0NTQ5IEM1LjI4ODMwMDU3LDAuNDM0NjU0NSA1LjI5MTUwMzkxLDAuNDY3MTY5NTMzIDUuMjkxNTAzOTEsMC41IEM1LjI5MTUwMzkxLDAuNTMyODMwNDY3IDUuMjg4MzAwNTcsMC41NjUzNDU1IDUuMjgxODkzOTEsMC41OTc1NDUxIEM1LjI3NTQ4NzI0LDAuNjI5NzQ1MDMzIDUuMjY2MDAzOTEsMC42NjEwMTA2NjcgNS4yNTM0NDM5MSwwLjY5MTM0MiBDNS4yNDA4NzcyNCwwLjcyMTY3MzMzMyA1LjIyNTQ3MzkxLDAuNzUwNDg3NjY3IDUuMjA3MjMzOTEsMC43Nzc3ODUgQzUuMTg4OTkzOTEsMC44MDUwODIzMzMgNS4xNjgyNjcyNCwwLjgzMDMzODMzMyA1LjE0NTA1MzkxLDAuODUzNTUzIEM1LjEyMTg0MDU3LDAuODc2NzY3NjY3IDUuMDk2NTgzOTEsMC44OTc0OTUgNS4wNjkyODM5MSwwLjkxNTczNSBDNS4wNDE5OTA1NywwLjkzMzk3NDMzMyA1LjAxMzE3NzI0LDAuOTQ5Mzc2IDQuOTgyODQzOTEsMC45NjE5NCBDNC45NTI1MTA1NywwLjk3NDUwMzMzMyA0LjkyMTI0MzkxLDAuOTgzOTg3NjY3IDQuODg5MDQzOTEsMC45OTAzOTMgQzQuODU2ODUwNTcsMC45OTY3OTc2NjcgNC44MjQzMzcyNCwxIDQuNzkxNTAzOTEsMSBMMi4yOTE1MDM5MSwxIEMyLjI1ODY3MzQ0LDEgMi4yMjYxNTg0MSwwLjk5Njc5NzY2NyAyLjE5Mzk1ODgxLDAuOTkwMzkzIEMyLjE2MTc1ODg3LDAuOTgzOTg3NjY3IDIuMTMwNDkzMjQsMC45NzQ1MDMzMzMgMi4xMDAxNjE5MSwwLjk2MTk0IEMyLjA2OTgzMDU3LDAuOTQ5Mzc2IDIuMDQxMDE2MjQsMC45MzM5NzQzMzMgMi4wMTM3MTg5MSwwLjkxNTczNSBDMS45ODY0MjE1NywwLjg5NzQ5NSAxLjk2MTE2NTU3LDAuODc2NzY3NjY3IDEuOTM3OTUwOTEsMC44NTM1NTMgQzEuOTE0NzM2MjQsMC44MzAzMzgzMzMgMS44OTQwMDg5MSwwLjgwNTA4MjMzMyAxLjg3NTc2ODkxLDAuNzc3Nzg1IEMxLjg1NzUyOTU3LDAuNzUwNDg3NjY3IDEuODQyMTI3OTEsMC43MjE2NzMzMzMgMS44Mjk1NjM5MSwwLjY5MTM0MiBDMS44MTcwMDA1NywwLjY2MTAxMDY2NyAxLjgwNzUxNjI0LDAuNjI5NzQ1MDMzIDEuODAxMTEwOTEsMC41OTc1NDUxIEMxLjc5NDcwNjI0LDAuNTY1MzQ1NSAxLjc5MTUwMzkxLDAuNTMyODMwNDY3IDEuNzkxNTAzOTEsMC41IEMxLjc5MTUwMzkxLDAuNDY3MTY5NTMzIDEuNzk0NzA2MjQsMC40MzQ2NTQ1IDEuODAxMTEwOTEsMC40MDI0NTQ5IEMxLjgwNzUxNjI0LDAuMzcwMjU0OTY3IDEuODE3MDAwNTcsMC4zMzg5ODkzMzMgMS44Mjk1NjM5MSwwLjMwODY1OCBDMS44NDIxMjc5MSwwLjI3ODMyNjY2NyAxLjg1NzUyOTU3LDAuMjQ5NTEyMzMzIDEuODc1NzY4OTEsMC4yMjIyMTUgQzEuODk0MDA4OTEsMC4xOTQ5MTc2NjcgMS45MTQ3MzYyNCwwLjE2OTY2MTY2NyAxLjkzNzk1MDkxLDAuMTQ2NDQ3IEMxLjk2MTE2NTU3LDAuMTIzMjMyMzMzIDEuOTg2NDIxNTcsMC4xMDI1MDUgMi4wMTM3MTg5MSwwLjA4NDI2NSBDMi4wNDEwMTYyNCwwLjA2NjAyNTY2NjcgMi4wNjk4MzA1NywwLjA1MDYyNCAyLjEwMDE2MTkxLDAuMDM4MDYgQzIuMTMwNDkzMjQsMC4wMjU0OTY2NjY3IDIuMTYxNzU4ODcsMC4wMTYwMTIzMzMzIDIuMTkzOTU4ODEsMC4wMDk2MDcgQzIuMjI2MTU4NDEsMC4wMDMyMDIzMzMzMyAyLjI1ODY3MzQ0LDAgMi4yOTE1MDM5MSwwIFoiLGlkOiLot6/lvoQiLHN0cm9rZToibm9uZSIsZmlsbDoiIzU1MzhBMCIsImZpbGwtcnVsZSI6ImV2ZW5vZGQifSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50WikoInBhdGgiLHtkOiJNMy4wNDE1MDM5MSwzLjYyNSBDMy4wNDE1MDM5MSwzLjU5MjE2OTUzIDMuMDQ0NzA2MjQsMy41NTk2NTQ1IDMuMDUxMTEwOTEsMy41Mjc0NTQ5IEMzLjA1NzUxNjI0LDMuNDk1MjU0OTcgMy4wNjcwMDA1NywzLjQ2Mzk4OTMzIDMuMDc5NTYzOTEsMy40MzM2NTggQzMuMDkyMTI3OTEsMy40MDMzMjY2NyAzLjEwNzUyOTU3LDMuMzc0NTEyMzMgMy4xMjU3Njg5MSwzLjM0NzIxNSBDMy4xNDQwMDg5MSwzLjMxOTkxNzY3IDMuMTY0NzM2MjQsMy4yOTQ2NjE2NyAzLjE4Nzk1MDkxLDMuMjcxNDQ3IEMzLjIxMTE2NTU3LDMuMjQ4MjMyMzMgMy4yMzY0MjE1NywzLjIyNzUwNSAzLjI2MzcxODkxLDMuMjA5MjY1IEMzLjI5MTAxNjI0LDMuMTkxMDI1NjcgMy4zMTk4MzA1NywzLjE3NTYyNCAzLjM1MDE2MTkxLDMuMTYzMDYgQzMuMzgwNDkzMjQsMy4xNTA0OTY2NyAzLjQxMTc1ODg3LDMuMTQxMDEyMzMgMy40NDM5NTg4MSwzLjEzNDYwNyBDMy40NzYxNTg0MSwzLjEyODIwMjMzIDMuNTA4NjczNDQsMy4xMjUgMy41NDE1MDM5MSwzLjEyNSBDMy41NzQzMzQzNywzLjEyNSAzLjYwNjg0OTQxLDMuMTI4MjAyMzMgMy42MzkwNDkwMSwzLjEzNDYwNyBDMy42NzEyNDg5NCwzLjE0MTAxMjMzIDMuNzAyNTE0NTcsMy4xNTA0OTY2NyAzLjczMjg0NTkxLDMuMTYzMDYgQzMuNzYzMTc3MjQsMy4xNzU2MjQgMy43OTE5OTE1NywzLjE5MTAyNTY3IDMuODE5Mjg4OTEsMy4yMDkyNjUgQzMuODQ2NTg2MjQsMy4yMjc1MDUgMy44NzE4NDIyNCwzLjI0ODIzMjMzIDMuODk1MDU2OTEsMy4yNzE0NDcgQzMuOTE4MjcxNTcsMy4yOTQ2NjE2NyAzLjkzODk5ODkxLDMuMzE5OTE3NjcgMy45NTcyMzg5MSwzLjM0NzIxNSBDMy45NzU0NzgyNCwzLjM3NDUxMjMzIDMuOTkwODc5OTEsMy40MDMzMjY2NyA0LjAwMzQ0MzkxLDMuNDMzNjU4IEM0LjAxNjAwNzI0LDMuNDYzOTg5MzMgNC4wMjU0OTE1NywzLjQ5NTI1NDk3IDQuMDMxODk2OTEsMy41Mjc0NTQ5IEM0LjAzODMwMTU3LDMuNTU5NjU0NSA0LjA0MTUwMzkxLDMuNTkyMTY5NTMgNC4wNDE1MDM5MSwzLjYyNSBMNC4wNDE1MDM5MSw1LjI5MTY3IEM0LjA0MTUwMzkxLDUuMzI0NDk2NjcgNC4wMzgzMDE1Nyw1LjM1NzAxIDQuMDMxODk2OTEsNS4zODkyMSBDNC4wMjU0OTE1Nyw1LjQyMTQxIDQuMDE2MDA3MjQsNS40NTI2NzY2NyA0LjAwMzQ0MzkxLDUuNDgzMDEgQzMuOTkwODc5OTEsNS41MTMzNDMzMyAzLjk3NTQ3ODI0LDUuNTQyMTU2NjcgMy45NTcyMzg5MSw1LjU2OTQ1IEMzLjkzODk5ODkxLDUuNTk2NzUgMy45MTgyNzE1Nyw1LjYyMjAwNjY3IDMuODk1MDU2OTEsNS42NDUyMiBDMy44NzE4NDIyNCw1LjY2ODQzMzMzIDMuODQ2NTg2MjQsNS42ODkxNiAzLjgxOTI4ODkxLDUuNzA3NCBDMy43OTE5OTE1Nyw1LjcyNTY0IDMuNzYzMTc3MjQsNS43NDEwNDMzMyAzLjczMjg0NTkxLDUuNzUzNjEgQzMuNzAyNTE0NTcsNS43NjYxNyAzLjY3MTI0ODk0LDUuNzc1NjUzMzMgMy42MzkwNDkwMSw1Ljc4MjA2IEMzLjYwNjg0OTQxLDUuNzg4NDY2NjcgMy41NzQzMzQzNyw1Ljc5MTY3IDMuNTQxNTAzOTEsNS43OTE2NyBDMy41MDg2NzM0NCw1Ljc5MTY3IDMuNDc2MTU4NDEsNS43ODg0NjY2NyAzLjQ0Mzk1ODgxLDUuNzgyMDYgQzMuNDExNzU4ODcsNS43NzU2NTMzMyAzLjM4MDQ5MzI0LDUuNzY2MTcgMy4zNTAxNjE5MSw1Ljc1MzYxIEMzLjMxOTgzMDU3LDUuNzQxMDQzMzMgMy4yOTEwMTYyNCw1LjcyNTY0IDMuMjYzNzE4OTEsNS43MDc0IEMzLjIzNjQyMTU3LDUuNjg5MTYgMy4yMTExNjU1Nyw1LjY2ODQzMzMzIDMuMTg3OTUwOTEsNS42NDUyMiBDMy4xNjQ3MzYyNCw1LjYyMjAwNjY3IDMuMTQ0MDA4OTEsNS41OTY3NSAzLjEyNTc2ODkxLDUuNTY5NDUgQzMuMTA3NTI5NTcsNS41NDIxNTY2NyAzLjA5MjEyNzkxLDUuNTEzMzQzMzMgMy4wNzk1NjM5MSw1LjQ4MzAxIEMzLjA2NzAwMDU3LDUuNDUyNjc2NjcgMy4wNTc1MTYyNCw1LjQyMTQxIDMuMDUxMTEwOTEsNS4zODkyMSBDMy4wNDQ3MDYyNCw1LjM1NzAxIDMuMDQxNTAzOTEsNS4zMjQ0OTY2NyAzLjA0MTUwMzkxLDUuMjkxNjcgTDMuMDQxNTAzOTEsMy42MjUgWiIsaWQ6Iui3r+W+hCIsc3Ryb2tlOiJub25lIixmaWxsOiIjNTUzOEEwIiwiZmlsbC1ydWxlIjoiZXZlbm9kZCJ9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnRaKSgicGF0aCIse2Q6Ik0zLjU0MTUwMzkxLDQuNzkxNTAzOTEgTDUuMjA4MTczOTEsNC43OTE1MDM5MSBDNS4yNDEwMDA1Nyw0Ljc5MTUwMzkxIDUuMjczNTEzOTEsNC43OTQ3MDYyNCA1LjMwNTcxMzkxLDQuODAxMTEwOTEgQzUuMzM3OTEzOTEsNC44MDc1MTYyNCA1LjM2OTE4MDU3LDQuODE3MDAwNTcgNS4zOTk1MTM5MSw0LjgyOTU2MzkxIEM1LjQyOTg0NzI0LDQuODQyMTI3OTEgNS40NTg2NjA1Nyw0Ljg1NzUyOTU3IDUuNDg1OTUzOTEsNC44NzU3Njg5MSBDNS41MTMyNTM5MSw0Ljg5NDAwODkxIDUuNTM4NTEwNTcsNC45MTQ3MzYyNCA1LjU2MTcyMzkxLDQuOTM3OTUwOTEgQzUuNTg0OTM3MjQsNC45NjExNjU1NyA1LjYwNTY2MzkxLDQuOTg2NDIxNTcgNS42MjM5MDM5MSw1LjAxMzcxODkxIEM1LjY0MjE0MzkxLDUuMDQxMDE2MjQgNS42NTc1NDcyNCw1LjA2OTgzMDU3IDUuNjcwMTEzOTEsNS4xMDAxNjE5MSBDNS42ODI2NzM5MSw1LjEzMDQ5MzI0IDUuNjkyMTU3MjQsNS4xNjE3NTg4NyA1LjY5ODU2MzkxLDUuMTkzOTU4ODEgQzUuNzA0OTcwNTcsNS4yMjYxNTg0MSA1LjcwODE3MzkxLDUuMjU4NjczNDQgNS43MDgxNzM5MSw1LjI5MTUwMzkxIEM1LjcwODE3MzkxLDUuMzI0MzM0MzcgNS43MDQ5NzA1Nyw1LjM1Njg0OTQxIDUuNjk4NTYzOTEsNS4zODkwNDkwMSBDNS42OTIxNTcyNCw1LjQyMTI0ODk0IDUuNjgyNjczOTEsNS40NTI1MTQ1NyA1LjY3MDExMzkxLDUuNDgyODQ1OTEgQzUuNjU3NTQ3MjQsNS41MTMxNzcyNCA1LjY0MjE0MzkxLDUuNTQxOTkxNTcgNS42MjM5MDM5MSw1LjU2OTI4ODkxIEM1LjYwNTY2MzkxLDUuNTk2NTg2MjQgNS41ODQ5MzcyNCw1LjYyMTg0MjI0IDUuNTYxNzIzOTEsNS42NDUwNTY5MSBDNS41Mzg1MTA1Nyw1LjY2ODI3MTU3IDUuNTEzMjUzOTEsNS42ODg5OTg5MSA1LjQ4NTk1MzkxLDUuNzA3MjM4OTEgQzUuNDU4NjYwNTcsNS43MjU0NzgyNCA1LjQyOTg0NzI0LDUuNzQwODc5OTEgNS4zOTk1MTM5MSw1Ljc1MzQ0MzkxIEM1LjM2OTE4MDU3LDUuNzY2MDA3MjQgNS4zMzc5MTM5MSw1Ljc3NTQ5MTU3IDUuMzA1NzEzOTEsNS43ODE4OTY5MSBDNS4yNzM1MTM5MSw1Ljc4ODMwMTU3IDUuMjQxMDAwNTcsNS43OTE1MDM5MSA1LjIwODE3MzkxLDUuNzkxNTAzOTEgTDMuNTQxNTAzOTEsNS43OTE1MDM5MSBDMy41MDg2NzM0NCw1Ljc5MTUwMzkxIDMuNDc2MTU4NDEsNS43ODgzMDE1NyAzLjQ0Mzk1ODgxLDUuNzgxODk2OTEgQzMuNDExNzU4ODcsNS43NzU0OTE1NyAzLjM4MDQ5MzI0LDUuNzY2MDA3MjQgMy4zNTAxNjE5MSw1Ljc1MzQ0MzkxIEMzLjMxOTgzMDU3LDUuNzQwODc5OTEgMy4yOTEwMTYyNCw1LjcyNTQ3ODI0IDMuMjYzNzE4OTEsNS43MDcyMzg5MSBDMy4yMzY0MjE1Nyw1LjY4ODk5ODkxIDMuMjExMTY1NTcsNS42NjgyNzE1NyAzLjE4Nzk1MDkxLDUuNjQ1MDU2OTEgQzMuMTY0NzM2MjQsNS42MjE4NDIyNCAzLjE0NDAwODkxLDUuNTk2NTg2MjQgMy4xMjU3Njg5MSw1LjU2OTI4ODkxIEMzLjEwNzUyOTU3LDUuNTQxOTkxNTcgMy4wOTIxMjc5MSw1LjUxMzE3NzI0IDMuMDc5NTYzOTEsNS40ODI4NDU5MSBDMy4wNjcwMDA1Nyw1LjQ1MjUxNDU3IDMuMDU3NTE2MjQsNS40MjEyNDg5NCAzLjA1MTExMDkxLDUuMzg5MDQ5MDEgQzMuMDQ0NzA2MjQsNS4zNTY4NDk0MSAzLjA0MTUwMzkxLDUuMzI0MzM0MzcgMy4wNDE1MDM5MSw1LjI5MTUwMzkxIEMzLjA0MTUwMzkxLDUuMjU4NjczNDQgMy4wNDQ3MDYyNCw1LjIyNjE1ODQxIDMuMDUxMTEwOTEsNS4xOTM5NTg4MSBDMy4wNTc1MTYyNCw1LjE2MTc1ODg3IDMuMDY3MDAwNTcsNS4xMzA0OTMyNCAzLjA3OTU2MzkxLDUuMTAwMTYxOTEgQzMuMDkyMTI3OTEsNS4wNjk4MzA1NyAzLjEwNzUyOTU3LDUuMDQxMDE2MjQgMy4xMjU3Njg5MSw1LjAxMzcxODkxIEMzLjE0NDAwODkxLDQuOTg2NDIxNTcgMy4xNjQ3MzYyNCw0Ljk2MTE2NTU3IDMuMTg3OTUwOTEsNC45Mzc5NTA5MSBDMy4yMTExNjU1Nyw0LjkxNDczNjI0IDMuMjM2NDIxNTcsNC44OTQwMDg5MSAzLjI2MzcxODkxLDQuODc1NzY4OTEgQzMuMjkxMDE2MjQsNC44NTc1Mjk1NyAzLjMxOTgzMDU3LDQuODQyMTI3OTEgMy4zNTAxNjE5MSw0LjgyOTU2MzkxIEMzLjM4MDQ5MzI0LDQuODE3MDAwNTcgMy40MTE3NTg4Nyw0LjgwNzUxNjI0IDMuNDQzOTU4ODEsNC44MDExMTA5MSBDMy40NzYxNTg0MSw0Ljc5NDcwNjI0IDMuNTA4NjczNDQsNC43OTE1MDM5MSAzLjU0MTUwMzkxLDQuNzkxNTAzOTEgWiIsaWQ6Iui3r+W+hCIsc3Ryb2tlOiJub25lIixmaWxsOiIjNTUzOEEwIiwiZmlsbC1ydWxlIjoiZXZlbm9kZCJ9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnRaKSgicGF0aCIse2Q6Ik00LjA0MTUwMzkxLDAuNSBMNC4wNDE1MDM5MSwxLjMzMzMzMyBDNC4wNDE1MDM5MSwxLjM2NjE2MzY3IDQuMDM4MzAxNTcsMS4zOTg2Nzg2NyA0LjAzMTg5NjkxLDEuNDMwODc4IEM0LjAyNTQ5MTU3LDEuNDYzMDc4IDQuMDE2MDA3MjQsMS40OTQzNDUzMyA0LjAwMzQ0MzkxLDEuNTI0NjggQzMuOTkwODc5OTEsMS41NTUwMDY2NyAzLjk3NTQ3ODI0LDEuNTgzODIgMy45NTcyMzg5MSwxLjYxMTEyIEMzLjkzODk5ODkxLDEuNjM4NDEzMzMgMy45MTgyNzE1NywxLjY2MzY3IDMuODk1MDU2OTEsMS42ODY4OSBDMy44NzE4NDIyNCwxLjcxMDEwMzMzIDMuODQ2NTg2MjQsMS43MzA4MyAzLjgxOTI4ODkxLDEuNzQ5MDcgQzMuNzkxOTkxNTcsMS43NjczMSAzLjc2MzE3NzI0LDEuNzgyNzEgMy43MzI4NDU5MSwxLjc5NTI3IEMzLjcwMjUxNDU3LDEuODA3ODM2NjcgMy42NzEyNDg5NCwxLjgxNzMyMzMzIDMuNjM5MDQ5MDEsMS44MjM3MyBDMy42MDY4NDk0MSwxLjgzMDEzIDMuNTc0MzM0MzcsMS44MzMzMyAzLjU0MTUwMzkxLDEuODMzMzMgQzMuNTA4NjczNDQsMS44MzMzMyAzLjQ3NjE1ODQxLDEuODMwMTMgMy40NDM5NTg4MSwxLjgyMzczIEMzLjQxMTc1ODg3LDEuODE3MzIzMzMgMy4zODA0OTMyNCwxLjgwNzgzNjY3IDMuMzUwMTYxOTEsMS43OTUyNyBDMy4zMTk4MzA1NywxLjc4MjcxIDMuMjkxMDE2MjQsMS43NjczMSAzLjI2MzcxODkxLDEuNzQ5MDcgQzMuMjM2NDIxNTcsMS43MzA4MyAzLjIxMTE2NTU3LDEuNzEwMTAzMzMgMy4xODc5NTA5MSwxLjY4Njg5IEMzLjE2NDczNjI0LDEuNjYzNjcgMy4xNDQwMDg5MSwxLjYzODQxMzMzIDMuMTI1NzY4OTEsMS42MTExMiBDMy4xMDc1Mjk1NywxLjU4MzgyIDMuMDkyMTI3OTEsMS41NTUwMDY2NyAzLjA3OTU2MzkxLDEuNTI0NjggQzMuMDY3MDAwNTcsMS40OTQzNDUzMyAzLjA1NzUxNjI0LDEuNDYzMDc4IDMuMDUxMTEwOTEsMS40MzA4NzggQzMuMDQ0NzA2MjQsMS4zOTg2Nzg2NyAzLjA0MTUwMzkxLDEuMzY2MTYzNjcgMy4wNDE1MDM5MSwxLjMzMzMzMyBMMy4wNDE1MDM5MSwwLjUgQzMuMDQxNTAzOTEsMC40NjcxNjk1MzMgMy4wNDQ3MDYyNCwwLjQzNDY1NDUgMy4wNTExMTA5MSwwLjQwMjQ1NDkgQzMuMDU3NTE2MjQsMC4zNzAyNTQ5NjcgMy4wNjcwMDA1NywwLjMzODk4OTMzMyAzLjA3OTU2MzkxLDAuMzA4NjU4IEMzLjA5MjEyNzkxLDAuMjc4MzI2NjY3IDMuMTA3NTI5NTcsMC4yNDk1MTIzMzMgMy4xMjU3Njg5MSwwLjIyMjIxNSBDMy4xNDQwMDg5MSwwLjE5NDkxNzY2NyAzLjE2NDczNjI0LDAuMTY5NjYxNjY3IDMuMTg3OTUwOTEsMC4xNDY0NDcgQzMuMjExMTY1NTcsMC4xMjMyMzIzMzMgMy4yMzY0MjE1NywwLjEwMjUwNSAzLjI2MzcxODkxLDAuMDg0MjY1IEMzLjI5MTAxNjI0LDAuMDY2MDI1NjY2NyAzLjMxOTgzMDU3LDAuMDUwNjI0IDMuMzUwMTYxOTEsMC4wMzgwNiBDMy4zODA0OTMyNCwwLjAyNTQ5NjY2NjcgMy40MTE3NTg4NywwLjAxNjAxMjMzMzMgMy40NDM5NTg4MSwwLjAwOTYwNyBDMy40NzYxNTg0MSwwLjAwMzIwMjMzMzMzIDMuNTA4NjczNDQsMCAzLjU0MTUwMzkxLDAgQzMuNTc0MzM0MzcsMCAzLjYwNjg0OTQxLDAuMDAzMjAyMzMzMzMgMy42MzkwNDkwMSwwLjAwOTYwNyBDMy42NzEyNDg5NCwwLjAxNjAxMjMzMzMgMy43MDI1MTQ1NywwLjAyNTQ5NjY2NjcgMy43MzI4NDU5MSwwLjAzODA2IEMzLjc2MzE3NzI0LDAuMDUwNjI0IDMuNzkxOTkxNTcsMC4wNjYwMjU2NjY3IDMuODE5Mjg4OTEsMC4wODQyNjUgQzMuODQ2NTg2MjQsMC4xMDI1MDUgMy44NzE4NDIyNCwwLjEyMzIzMjMzMyAzLjg5NTA1NjkxLDAuMTQ2NDQ3IEMzLjkxODI3MTU3LDAuMTY5NjYxNjY3IDMuOTM4OTk4OTEsMC4xOTQ5MTc2NjcgMy45NTcyMzg5MSwwLjIyMjIxNSBDMy45NzU0NzgyNCwwLjI0OTUxMjMzMyAzLjk5MDg3OTkxLDAuMjc4MzI2NjY3IDQuMDAzNDQzOTEsMC4zMDg2NTggQzQuMDE2MDA3MjQsMC4zMzg5ODkzMzMgNC4wMjU0OTE1NywwLjM3MDI1NDk2NyA0LjAzMTg5NjkxLDAuNDAyNDU0OSBDNC4wMzgzMDE1NywwLjQzNDY1NDUgNC4wNDE1MDM5MSwwLjQ2NzE2OTUzMyA0LjA0MTUwMzkxLDAuNSBaIixpZDoi6Lev5b6EIixzdHJva2U6Im5vbmUiLGZpbGw6IiM1NTM4QTAiLCJmaWxsLXJ1bGUiOiJldmVub2RkIn0pXX0pfSldfSl9KV19KTtfX3dlYnBhY2tfZXhwb3J0c19fLlo9Q01QfSw2NDcwOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO3ZhciBfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oMzU5NDQpO19fd2VicGFja19yZXF1aXJlX18oNjcyOTQpO2xldCBDTVA9cHJvcHM9PigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udFopKCJzdmciLHt2aWV3Qm94OiIwIDAgMTYgMTQiLC4uLnByb3BzLGNoaWxkcmVuOigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udFopKCJnIix7aWQ6Iumhtemdoi0xIixzdHJva2U6Im5vbmUiLCJzdHJva2Utd2lkdGgiOiIxIixmaWxsOiJub25lIiwiZmlsbC1ydWxlIjoiZXZlbm9kZCIsY2hpbGRyZW46KDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50WikoImciLHtpZDoi57yW57uEIixmaWxsOiJjdXJyZW50Q29sb3IiLCJmaWxsLXJ1bGUiOiJub256ZXJvIixjaGlsZHJlbjooMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnRaKSgicGF0aCIse2Q6Ik0xMy42MjM5ODQ2LDYuMzAwMDg4NDEgTDAuNjk1NTk4MTEyLDYuMzAwMDg4NDEgQzAuMzExNDI5ODgzLDYuMzAwMDg4NDEgMCw2LjYxMzQ0OTUgMCw3IEMwLDcuMzg2NTUwNSAwLjMxMTQyOTg4Myw3LjY5OTkxMTU5IDAuNjk1NTk4MTEyLDcuNjk5OTExNTkgTDEzLjYyMzk4NDYsNy42OTk5MTE1OSBMOC41NTAyOTE5OSwxMi44MDM2NjY5IEM4LjI3ODMwMDg4LDEzLjA3NzM0NDYgOC4yNzgzMDA4OCwxMy41MjEwNjM5IDguNTUwMjkxOTksMTMuNzk0NzQxNyBDOC44MjIyODMxLDE0LjA2ODQxOTQgOS4yNjMyNjc4MSwxNC4wNjg0MTk0IDkuNTM1MjU4OTIsMTMuNzk0NzQxNyBMMTUuNzk1NjQxOSw3LjQ5NTUzNzQgQzE1LjkyNjQ3MjQsNy4zNjQyMjgwMiAxNiw3LjE4NTkzNDY4IDE2LDcgQzE2LDYuODE0MDY1MzIgMTUuOTI2NDcyNCw2LjYzNTc3MTk4IDE1Ljc5NTY0MTksNi41MDQ0NjI2IEw5LjUzNTI1ODkyLDAuMjA1MjU4MzEzIEM5LjI2MzI2NzgxLC0wLjA2ODQxOTQzNzcgOC44MjIyODMxLC0wLjA2ODQxOTQzNzcgOC41NTAyOTE5OSwwLjIwNTI1ODMxMyBDOC4yNzgzMDA4OCwwLjQ3ODkzNjA2NCA4LjI3ODMwMDg4LDAuOTIyNjU1MzY5IDguNTUwMjkxOTksMS4xOTYzMzMxMiBMMTMuNjIzOTg0Niw2LjMwMDA4ODQxIFoiLGlkOiLot6/lvoQifSl9KX0pfSk7X193ZWJwYWNrX2V4cG9ydHNfXy5aPUNNUH0sMTE1ODY6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7dmFyIF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXygzNTk0NCk7X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCk7dmFyIG5leHRfaW1hZ2VfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI1Njc1KSxuZXh0X2ltYWdlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4obmV4dF9pbWFnZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKTtsZXQgQ01QPXBhcmFtPT57bGV0e3NyYyxmaWxsLHdpZHRoLGhlaWdodCxhbHQsY2xhc3NOYW1lLHByaW9yaXR5PSExLC4uLnByb3BzfT1wYXJhbTtyZXR1cm4gZmlsbD8oMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnRaKShuZXh0X2ltYWdlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLHtjbGFzc05hbWU6Y2xhc3NOYW1lLHNyYzpzcmMsZmlsbDohMCxhbHQ6YWx0LHByaW9yaXR5OnByaW9yaXR5LC4uLnByb3BzfSk6KDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50WikobmV4dF9pbWFnZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKSx7Y2xhc3NOYW1lOmNsYXNzTmFtZSxzcmM6c3JjLHdpZHRoOndpZHRoLGhlaWdodDpoZWlnaHQsc3R5bGU6e3dpZHRoOiIiLmNvbmNhdCh3aWR0aCwicHgiKSxoZWlnaHQ6IiIuY29uY2F0KGhlaWdodCwicHgiKX0sYWx0OmFsdCxwcmlvcml0eTpwcmlvcml0eSwuLi5wcm9wc30pfTtfX3dlYnBhY2tfZXhwb3J0c19fLlo9Q01QfSw1OTAyNjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBtYWlufX0pO3ZhciBlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtPV9fd2VicGFja19yZXF1aXJlX18oMzU5NDQpLHJlYWN0PV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLHVzZVJlc3BvbnNpdmU9X193ZWJwYWNrX3JlcXVpcmVfXygyODc0MyksX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsPV9fd2VicGFja19yZXF1aXJlX18oNzI5NyksZnVuY3Rpb25zPV9fd2VicGFja19yZXF1aXJlX18oNzYxNTkpO2Z1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdCgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIiJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MSgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBhc3BlY3QtcmF0aW86IDE0NDAgLyA4MDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyKCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgLyogbWFyZ2luLXRvcDogNzBweDsgKi9cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDI9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzKCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgbWFyZ2luLXRvcDogNzBweDtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDM9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q0KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDQ9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1sZXQgdXNlU3R5bGVzPSgwLGZ1bmN0aW9ucy5rYykocGFyYW09PntsZXR7dG9rZW4sY3NzfT1wYXJhbTtyZXR1cm57Y29udGFpbmVyOmNzcyhfdGVtcGxhdGVPYmplY3QoKSksYmFubmVyOmNzcyhfdGVtcGxhdGVPYmplY3QxKCkpLGhlYWRlcjpjc3MoX3RlbXBsYXRlT2JqZWN0MigpKSxoZWFkZXJUb3A6Y3NzKF90ZW1wbGF0ZU9iamVjdDMoKSksbGluazI6Y3NzKF90ZW1wbGF0ZU9iamVjdDQoKSl9fSk7dmFyIGNvbnRhaW5lcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDY2MjUxKSxuZXh0X2ltYWdlPV9fd2VicGFja19yZXF1aXJlX18oMjU2NzUpLGltYWdlX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKG5leHRfaW1hZ2UpLG5leHRfbGluaz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQxNjY0KSxsaW5rX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKG5leHRfbGluaykscG9wb3Zlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDc0NjI3KSxlc209X193ZWJwYWNrX3JlcXVpcmVfXyg4NjkwKSxuZXh0X3JvdXRlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDExMTYzKSxyb3V0ZXJfZGVmYXVsdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4obmV4dF9yb3V0ZXIpLGxvZ289e3NyYzoiL19uZXh0L3N0YXRpYy9tZWRpYS9sb2dvLjdmMmM3M2YwLnN2ZyIsaGVpZ2h0OjMwLHdpZHRoOjEyOH0sYW50U3R5bGU9X193ZWJwYWNrX3JlcXVpcmVfXyg5MjA0MSk7ZnVuY3Rpb24gaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgICAgaGVpZ2h0OiA4MHB4O1xuICAgICAgICBhIHtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgfVxuICAgICAgIl0pO3JldHVybiBpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0MSgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGhlaWdodDogODBweDtcbiAgICAgICAgcGFkZGluZzogIiwiO1xuICAgICAgIl0pO3JldHVybiBpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDE9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDIoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICJdKTtyZXR1cm4gaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QyPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QzKCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICAgIHdpZHRoOiAzOHB4O1xuICAgICAgICBoZWlnaHQ6IDM4cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgIl0pO3JldHVybiBpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDM9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDQoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgICAiXSk7cmV0dXJuIGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0ND1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDUoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIiwiO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICIsIiB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q1PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0Nigpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q2PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0Nygpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgICBwYWRkaW5nOiA2cHggMTRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICB3aWR0aDogMTQwcHg7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDIsIDI0NiwgMjU1LCAxKTtcbiAgICAgICAgfVxuICAgICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q3PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0OCgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tbGVmdDogODBweDtcbiAgICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0OD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWxldCBpbmRleF9zdHlsZV91c2VTdHlsZXM9KDAsZnVuY3Rpb25zLmtjKSgocGFyYW0scGFyYW0xKT0+e2xldHt0b2tlbixjc3MscmVzcG9uc2l2ZX09cGFyYW0se21vYmlsZX09cGFyYW0xO3JldHVybntjb250YWluZXI6Y3NzKGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0KCkpLHdyYXA6Y3NzKGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0MSgpLG1vYmlsZT8iMCAyMHB4IjowKSxtZW51SWNvbjpjc3MoaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QyKCkpLG1lbnVDb250YWluZXI6Y3NzKGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0MygpKSxkb3duOmNzcyhpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDQoKSksaTE4bldyYXA6Y3NzKF90ZW1wbGF0ZU9iamVjdDUoKSx0b2tlbi5jb2xvclRleHQscmVzcG9uc2l2ZS5tb2JpbGUpLGxhbldyYXA6Y3NzKF90ZW1wbGF0ZU9iamVjdDYoKSksbGFuSXRlbTpjc3MoX3RlbXBsYXRlT2JqZWN0NygpKSxuYXZXcmFwOmNzcyhfdGVtcGxhdGVPYmplY3Q4KCkpfX0pO3ZhciBsb2FkPV9fd2VicGFja19yZXF1aXJlX18oNTE2MTApO2xldCBDTVA9cHJvcHM9PigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJzdmciLHt2aWV3Qm94OiIwIDAgNiA0IiwuLi5wcm9wcyxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZyIse2lkOiLpobXpnaItMSIsc3Ryb2tlOiJub25lIiwic3Ryb2tlLXdpZHRoIjoiMSIsZmlsbDoibm9uZSIsImZpbGwtcnVsZSI6ImV2ZW5vZGQiLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJnIix7aWQ6IuS4i+aLiSIsZmlsbDoiIzIxMkI1NSIsImZpbGwtcnVsZSI6Im5vbnplcm8iLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJwb2x5Z29uIix7aWQ6Iui3r+W+hCIscG9pbnRzOiIzIDMuOTk5MjkgMCAwLjk5OTgyMyAxLjAwMDQ3IDAgMyAxLjk5OTY1IDQuOTk5NTMgMCA2IDAuOTk5ODIzIDMgNCJ9KX0pfSl9KSxyaWdodEFycm93X0NNUD1wcm9wcz0+KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoInN2ZyIse3ZpZXdCb3g6IjAgMCAxNiAxNiIsLi4ucHJvcHMsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkZWZzIix7Y2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoInJlY3QiLHtpZDoicGF0aC1zOHppM25fNWQwLTEiLHg6IjAiLHk6IjAiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxNiJ9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJnIix7aWQ6Iumhtemdoi0xIixzdHJva2U6Im5vbmUiLCJzdHJva2Utd2lkdGgiOiIxIixmaWxsOiJub25lIiwiZmlsbC1ydWxlIjoiZXZlbm9kZCIsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImciLHtpZDoiVmlldy1hbGwiLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgibWFzayIse2lkOiJtYXNrLXM4emkzbl81ZDAtMiIsZmlsbDoid2hpdGUiLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJ1c2UiLHt4bGlua0hyZWY6IiNwYXRoLXM4emkzbl81ZDAtMSJ9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJnIix7aWQ6IuefqeW9oiJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgicGF0aCIse2Q6Ik0xMi43NzYwNDA5LDcuOTk5OTk5NTEgTDguNjM4MDQwOTQsMy44NjE5OTk1MSBMNy42OTUzODA5NCw0LjgwNDY2NjUxIEwxMC44OTA3MTA5LDcuOTk5OTk5NTEgTDcuNjk1MzgwOTQsMTEuMTk1MzI5NSBMOC42MzgwNDA5NCwxMi4xMzc5OTk1IEwxMi43NzYwNDA5LDcuOTk5OTk5NTEgWiBNOS4wMDkzODA5NCw3Ljk5OTk5OTUxIEw0Ljg3MTM3Nzk0LDMuODYxOTk5NTEgTDMuOTI4NzEwOTQsNC44MDQ2NjY1MSBMNy4xMjQwNDA5NCw3Ljk5OTk5OTUxIEwzLjkyODcxMDk0LDExLjE5NTMyOTUgTDQuODcxMzc3OTQsMTIuMTM3OTk5NSBMOS4wMDkzODA5NCw3Ljk5OTk5OTUxIFoiLGlkOiLlvaLnirYiLGZpbGw6IiMzODRBQTAiLCJmaWxsLXJ1bGUiOiJub256ZXJvIixtYXNrOiJ1cmwoI21hc2stczh6aTNuXzVkMC0yKSJ9KV19KX0pXX0pLGJsb2dHb19DTVA9cHJvcHM9PigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJzdmciLHt2aWV3Qm94OiIwIDAgMTYgMTYiLC4uLnByb3BzLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGVmcyIse2NoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJyZWN0Iix7aWQ6InBhdGgtbXNhbTFxbnd1dS0xIix4OiIwIix5OiIwIix3aWR0aDoiMTYiLGhlaWdodDoiMTYifSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZyIse2lkOiLpobXpnaItMSIsc3Ryb2tlOiJub25lIiwic3Ryb2tlLXdpZHRoIjoiMSIsZmlsbDoibm9uZSIsImZpbGwtcnVsZSI6ImV2ZW5vZGQiLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJnIix7aWQ6Iui/m+WFpSIsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJtYXNrIix7aWQ6Im1hc2stbXNhbTFxbnd1dS0yIixmaWxsOiJ3aGl0ZSIsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoInVzZSIse3hsaW5rSHJlZjoiI3BhdGgtbXNhbTFxbnd1dS0xIn0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImciLHtpZDoi55+p5b2iIn0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJwb2x5Z29uIix7aWQ6Iui3r+W+hCIsZmlsbDoiIzM4NEFBMCIsImZpbGwtcnVsZSI6Im5vbnplcm8iLG1hc2s6InVybCgjbWFzay1tc2FtMXFud3V1LTIpIixwb2ludHM6IjEwLjc4MTE3MzkgNy4zMzMzMDYyMyA3LjIwNTE3MzkxIDMuNzU3MzAzMjMgOC4xNDc4MzM5MSAyLjgxNDYzNjIzIDEzLjMzMzIwMzkgNy45OTk5NjYyMyA4LjE0NzgzMzkxIDEzLjE4NTMzNjIgNy4yMDUxNzM5MSAxMi4yNDI2MzYyIDEwLjc4MTE3MzkgOC42NjY2MzYyMyAyLjY2NjUwMzkxIDguNjY2NjM2MjMgMi42NjY1MDM5MSA3LjMzMzMwNjIzIn0pXX0pfSldfSk7ZnVuY3Rpb24gbmF2X3N0eWxlX3RlbXBsYXRlT2JqZWN0KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBoZWlnaHQ6IDgwcHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBtYXJnaW4tbGVmdDogIiwiO1xuICAgICAgICBtYXJnaW4tdG9wOiAiLCI7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMzBweDtcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgICAgIiwiIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICAgIH1cbiAgICAgICJdKTtyZXR1cm4gbmF2X3N0eWxlX3RlbXBsYXRlT2JqZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gbmF2X3N0eWxlX3RlbXBsYXRlT2JqZWN0MSgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAiXSk7cmV0dXJuIG5hdl9zdHlsZV90ZW1wbGF0ZU9iamVjdDE9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBuYXZfc3R5bGVfdGVtcGxhdGVPYmplY3QyKCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICIsIjtcbiAgICAgICAgbWFyZ2luLXRvcDogIiwiO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyOSwgMjM4LCAyNTUsIDAuNSk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTYyLCAxOTQsIDI1NSwgMSk7XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICAiXSk7cmV0dXJuIG5hdl9zdHlsZV90ZW1wbGF0ZU9iamVjdDI9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBuYXZfc3R5bGVfdGVtcGxhdGVPYmplY3QzKCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICAgIGhlaWdodDogNHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICAgICJdKTtyZXR1cm4gbmF2X3N0eWxlX3RlbXBsYXRlT2JqZWN0Mz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIG5hdl9zdHlsZV90ZW1wbGF0ZU9iamVjdDQoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAiXSk7cmV0dXJuIG5hdl9zdHlsZV90ZW1wbGF0ZU9iamVjdDQ9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBuYXZfc3R5bGVfdGVtcGxhdGVPYmplY3Q1KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgbWluLWhlaWdodDogMTAwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgcGFkZGluZzogOXB4IDEycHg7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQyLCAyNDYsIDI1NSwgMSk7XG4gICAgICAgIH1cbiAgICAgICJdKTtyZXR1cm4gbmF2X3N0eWxlX3RlbXBsYXRlT2JqZWN0NT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIG5hdl9zdHlsZV90ZW1wbGF0ZU9iamVjdDYoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDIsIDI0NiwgMjU1LCAxKTtcbiAgICAgICAgfVxuICAgICAgIl0pO3JldHVybiBuYXZfc3R5bGVfdGVtcGxhdGVPYmplY3Q2PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gbmF2X3N0eWxlX3RlbXBsYXRlT2JqZWN0Nygpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweCAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweCAhaW1wb3J0YW50O1xuICAgICAgIl0pO3JldHVybiBuYXZfc3R5bGVfdGVtcGxhdGVPYmplY3Q3PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gbmF2X3N0eWxlX3RlbXBsYXRlT2JqZWN0OCgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNHB4O1xuICAgICAgIl0pO3JldHVybiBuYXZfc3R5bGVfdGVtcGxhdGVPYmplY3Q4PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0OSgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDk9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxMCgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxMD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDExKCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIGZsZXg6IDAgMCA0MHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDExPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTIoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxMj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDEzKCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxMz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDE0KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICAgIG1heC13aWR0aDogOTcycHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDYwMHB4O1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAwIDhweDtcbiAgICAgICAgaGVpZ2h0OiAzMTJweDtcbiAgICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTQ9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxNSgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTU9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxNigpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTRweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWVlZWU7XG4gICAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE2PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTcoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTc9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxOCgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE4PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTkoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTk9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyMCgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIiJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MjA9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyMSgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyMT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDIyKCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICAgIHdpZHRoOiAyNzZweDtcbiAgICAgICAgaGVpZ2h0OiA3NHB4O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4IDhweCA4cHggOHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNGU4Zjk7XG4gICAgICAgIH1cbiAgICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MjI9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyMygpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgICB3aWR0aDogNThweDtcbiAgICAgICAgaGVpZ2h0OiA1OHB4O1xuICAgICAgICBmbGV4OiAwIDAgNThweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4IDhweCA4cHggOHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZThlYWYwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyMz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDI0KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyND1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDI1KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICAgIGNvbG9yOiAjN2Q4MjlkO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDI1PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MjYoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgICAgcGFkZGluZzogMnB4IDRweDtcbiAgICAgICAgY29sb3I6ICM1NTM4YTA7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmOWY3ZmY7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MjY9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyNygpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Mjc9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyOCgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgICBmbGV4OiAxO1xuICAgICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyOD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDI5KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsnXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgICAgd2lkdGg6IDE2MHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U0ZThmOTtcbiAgICAgICAgfVxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6ICIiO1xuICAgICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzIxMmI1NTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG4gICAgICAnXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDI5PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MzAoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgICAgIHdpZHRoOiAzMjBweDtcbiAgICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MzA9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzMSgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBjb2xvcjogIiwiO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgb3BhY2l0eTogMC44NTtcbiAgICAgICAgfVxuICAgICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzMT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDMyKCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDMyPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MzMoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgIDEzNWRlZyxcbiAgICAgICAgICAjZTRlOGY5IDAlLFxuICAgICAgICAgIHJnYmEoMjI4LCAyMzIsIDI0OSwgMC4yKSAxMDAlXG4gICAgICAgICk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweCA4cHggOHB4IDhweDtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MzM9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzNCgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogIiwiO1xuICAgICAgICAgIC5pY29uLW9wZW4ge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDM0PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MzUoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAgIH1cbiAgICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MzU9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzNigpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYmFja2dyb3VuZDogI2U0ZThmOTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDM2PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MzcoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDgwcHggLSAxMnB4KTtcbiAgICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Mzc9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzOCgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDM4PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MzkoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDI4cHgpO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzOT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDQwKCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6ICM3ZDgyOWQ7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7IC8qIOacgOWkmuaYvuekuiAyIOihjCAqL1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NDA9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q0MSgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDQxPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9bGV0IG5hdl9zdHlsZV91c2VTdHlsZXM9KDAsZnVuY3Rpb25zLmtjKSgocGFyYW0scGFyYW0xKT0+e2xldHt0b2tlbixjc3MscmVzcG9uc2l2ZX09cGFyYW0se3RhYmxldH09cGFyYW0xO3JldHVybntuYXY6Y3NzKG5hdl9zdHlsZV90ZW1wbGF0ZU9iamVjdCgpLHRhYmxldD8wOiItMjVweCIsdGFibGV0PzA6IjEwcHgiLHJlc3BvbnNpdmUubGFwdG9wKSxtcjA6Y3NzKG5hdl9zdHlsZV90ZW1wbGF0ZU9iamVjdDEoKSksbmF2TW9yZTpjc3MobmF2X3N0eWxlX3RlbXBsYXRlT2JqZWN0MigpLHRhYmxldD8wOiItMjVweCIsdGFibGV0PzA6IjEwcHgiKSxkb3duOmNzcyhuYXZfc3R5bGVfdGVtcGxhdGVPYmplY3QzKCkpLG5hdlRleHQ6Y3NzKG5hdl9zdHlsZV90ZW1wbGF0ZU9iamVjdDQoKSksc3ViTWVudUl0ZW06Y3NzKG5hdl9zdHlsZV90ZW1wbGF0ZU9iamVjdDUoKSksc3ViTWVudUl0ZW0yOmNzcyhuYXZfc3R5bGVfdGVtcGxhdGVPYmplY3Q2KCkpLHNpbmdsZUJ0bjpjc3MobmF2X3N0eWxlX3RlbXBsYXRlT2JqZWN0NygpKSxuYXZUaXRsZTpjc3MobmF2X3N0eWxlX3RlbXBsYXRlT2JqZWN0OCgpKSxuYXZUaXRsZTI6Y3NzKF90ZW1wbGF0ZU9iamVjdDkoKSksbmF2RGVzYzpjc3MoX3RlbXBsYXRlT2JqZWN0MTAoKSksbmF2SW1hZ2U6Y3NzKF90ZW1wbGF0ZU9iamVjdDExKCkpLG5hdkltYWdlV3JhcDpjc3MoX3RlbXBsYXRlT2JqZWN0MTIoKSksbmF2RGVzYzI6Y3NzKF90ZW1wbGF0ZU9iamVjdDEzKCkpLHBvcG92ZXJXcmFwOmNzcyhfdGVtcGxhdGVPYmplY3QxNCgpKSxzdWJQb3BvdmVyVGl0bGU6Y3NzKF90ZW1wbGF0ZU9iamVjdDE1KCkpLGhvdFdyYXA6Y3NzKF90ZW1wbGF0ZU9iamVjdDE2KCkpLG10MjA6Y3NzKF90ZW1wbGF0ZU9iamVjdDE3KCkpLGZsZXhDZW50ZXI6Y3NzKF90ZW1wbGF0ZU9iamVjdDE4KCkpLHBvcHZlckNvbnRlbnQ6Y3NzKF90ZW1wbGF0ZU9iamVjdDE5KCkpLHBvcHZlckxlZnQ6Y3NzKF90ZW1wbGF0ZU9iamVjdDIwKCkpLHBvcHZlck1lbnVXcmFwOmNzcyhfdGVtcGxhdGVPYmplY3QyMSgpKSxwb3BvdmVyTWVudUl0ZW06Y3NzKF90ZW1wbGF0ZU9iamVjdDIyKCkpLHBvcG92ZXJNZW51SWNvbjpjc3MoX3RlbXBsYXRlT2JqZWN0MjMoKSkscG9vcHZlck1lbnVUaXRsZTpjc3MoX3RlbXBsYXRlT2JqZWN0MjQoKSkscG9vcHZlck1lbnVEZXNjOmNzcyhfdGVtcGxhdGVPYmplY3QyNSgpKSxjb21taW5nV3JhcDpjc3MoX3RlbXBsYXRlT2JqZWN0MjYoKSksY2xvY2tJY29uOmNzcyhfdGVtcGxhdGVPYmplY3QyNygpKSxwb3BvdmVyTWVudVRleHRXcmFwOmNzcyhfdGVtcGxhdGVPYmplY3QyOCgpKSxwb3BvdmVyTWVudVN1Ykl0ZW06Y3NzKF90ZW1wbGF0ZU9iamVjdDI5KCkpLHBvcHZlclJpZ2h0OmNzcyhfdGVtcGxhdGVPYmplY3QzMCgpKSx2aWV3QWxsOmNzcyhfdGVtcGxhdGVPYmplY3QzMSgpLHRva2VuLmNvbG9yUHJpbWFyeSksdmlld0FsbEljb246Y3NzKF90ZW1wbGF0ZU9iamVjdDMyKCkpLHBvcHZlclJpZ2h0Q29udGVudDpjc3MoX3RlbXBsYXRlT2JqZWN0MzMoKSkscG9wb3ZlckJsb2dJdGVtOmNzcyhfdGVtcGxhdGVPYmplY3QzNCgpLHRva2VuLmNvbG9yUHJpbWFyeSkscG9wb3ZlckJsb2dJdGVtV3JhcDpjc3MoX3RlbXBsYXRlT2JqZWN0MzUoKSkscG9wb3ZlckJsb2dJbWc6Y3NzKF90ZW1wbGF0ZU9iamVjdDM2KCkpLHBvcG92ZXJCbG9nQ29udGVudDpjc3MoX3RlbXBsYXRlT2JqZWN0MzcoKSkscG9wb3ZlckJsb2dUaXRsZTpjc3MoX3RlbXBsYXRlT2JqZWN0MzgoKSkscG9wb3ZlclRpdGxlV3JhcDpjc3MoX3RlbXBsYXRlT2JqZWN0MzkoKSkscG9wb3ZlckJsb2dEZXNjOmNzcyhfdGVtcGxhdGVPYmplY3Q0MCgpKSxibG9ja0dvSWNvbjpjc3MoX3RlbXBsYXRlT2JqZWN0NDEoKSl9fSksYmxvZ19DTVA9cGFyYW09PntsZXR7ZGF0YUxpc3R9PXBhcmFtLHt0YWJsZXR9PSgwLHVzZVJlc3BvbnNpdmUuRikoKSx7c3R5bGVzLGN4fT1uYXZfc3R5bGVfdXNlU3R5bGVzKHt0YWJsZXR9KTtyZXR1cm4oMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsb2FkLnJELHtjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5wb3B2ZXJSaWdodENvbnRlbnQsY2hpbGRyZW46bnVsbD09ZGF0YUxpc3Q/dm9pZCAwOmRhdGFMaXN0Lm1hcCh4PT4oMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsb2FkLmdkLHtjbGFzc05hbWU6c3R5bGVzLnBvcG92ZXJCbG9nSXRlbVdyYXAsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMucG9wb3ZlckJsb2dJdGVtLG9uQ2xpY2soKXt3aW5kb3cub3Blbih4LmhyZWYpfSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMucG9wb3ZlckJsb2dJbWcsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoaW1hZ2VfZGVmYXVsdCgpLHtmaWxsOiEwLGFsdDoibmV3cyIsc3JjOngudXJsfSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5wb3BvdmVyQmxvZ0NvbnRlbnQsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnBvcG92ZXJCbG9nVGl0bGUsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnBvcG92ZXJUaXRsZVdyYXAsY2hpbGRyZW46eC50aXRsZX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGJsb2dHb19DTVAse3dpZHRoOjE2LGhlaWdodDoxNixjbGFzc05hbWU6Y3goc3R5bGVzLmJsb2NrR29JY29uLCJpY29uLW9wZW4iKX0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnBvcG92ZXJCbG9nRGVzYyxjaGlsZHJlbjp4LmRlc2N9KV19KV19KX0seC50aXRsZSkpfSl9KX07dmFyIGNvbXBvbmVudHNfaW1hZ2U9X193ZWJwYWNrX3JlcXVpcmVfXygxMTU4NiksY2xvY2s9X193ZWJwYWNrX3JlcXVpcmVfXyg5ODI3NCk7bGV0IG1lbnVJdGVtX0NNUD1wYXJhbT0+e2xldHt0aXRsZSxkZXNjLGNvbW1pbmdTb29uPSExLGltZyxhbHQsaHJlZn09cGFyYW0se3RhYmxldH09KDAsdXNlUmVzcG9uc2l2ZS5GKSgpLHtzdHlsZXMsY3h9PW5hdl9zdHlsZV91c2VTdHlsZXMoe3RhYmxldH0pLGNvbnRlbnQ9KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5IWSx7Y2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnBvcG92ZXJNZW51SWNvbixjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShjb21wb25lbnRzX2ltYWdlLlose3NyYzppbWcsd2lkdGg6IjI2IixoZWlnaHQ6MjYsYWx0OmFsdH0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMucG9wb3Zlck1lbnVUZXh0V3JhcCxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMucG9vcHZlck1lbnVUaXRsZSxjaGlsZHJlbjpbdGl0bGUsY29tbWluZ1Nvb24mJigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6Y3goc3R5bGVzLmNvbW1pbmdXcmFwKSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoY2xvY2suWix7d2lkdGg6MTAsaGVpZ2h0OjEwLGNsYXNzTmFtZTpzdHlsZXMuY2xvY2tJY29ufSksIkNvbWluZyBTb29uIl19KV19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5wb29wdmVyTWVudURlc2MsY2hpbGRyZW46ZGVzY30pXX0pXX0pO3JldHVybiBocmVmPygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxvYWQuZ2Qse2NoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxpbmtfZGVmYXVsdCgpLHtocmVmOmhyZWYsY2xhc3NOYW1lOnN0eWxlcy5wb3BvdmVyTWVudUl0ZW0sY2hpbGRyZW46Y29udGVudH0pfSk6KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikobG9hZC5nZCx7Y2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMucG9wb3Zlck1lbnVJdGVtLGNoaWxkcmVuOmNvbnRlbnR9KX0pfSxOYXZJdGVtPXBhcmFtPT57bGV0e3RpdGxlfT1wYXJhbSx7dGFibGV0fT0oMCx1c2VSZXNwb25zaXZlLkYpKCkse3N0eWxlcyxjeH09bmF2X3N0eWxlX3VzZVN0eWxlcyh7dGFibGV0fSkse3QsaTE4bn09KDAsZXNtLiRHKShbImNvbW1vbiJdKSxpbWdzPSgwLHJlYWN0LnVzZU1lbW8pKCgpPT5be3VybDoiaHR0cHM6Ly93b3JkcHJlc3MuYnV2ZWkuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzA1L1dYMjAyNTA1MjAtMTUzMzA5MngtMS00MDB4MjI1LnBuZyIsaHJlZjoiaHR0cHM6Ly9idXZlaS5jb20vYmxvZy9iYW5rcy12cy1jcnlwdG8tY29udmVyZ2VuY2UvIix0aXRsZTp0KCJhcnRpY2xlLnRpdGxlMSIse25zOiJjb21tb24ifSksZGVzYzp0KCJhcnRpY2xlLmRlc2MxIix7bnM6ImNvbW1vbiJ9KX0se3VybDoiaHR0cHM6Ly93b3JkcHJlc3MuYnV2ZWkuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzA1L1dYMjAyNTA1MTktMTIwNjU0QDJ4LTQwMHgyMjUucG5nIixocmVmOiJodHRwczovL2J1dmVpLmNvbS9ibG9nL2NvbnZlbmllbmNlLXZzLXNlY3VyaXR5LWNyZWRpdC1jYXJkcy1wYXltZW50LyIsdGl0bGU6dCgiYXJ0aWNsZS50aXRsZTIiLHtuczoiY29tbW9uIn0pLGRlc2M6dCgiYXJ0aWNsZS5kZXNjMiIse25zOiJjb21tb24ifSl9LHt1cmw6Imh0dHBzOi8vd29yZHByZXNzLmJ1dmVpLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNS8wNS9GbHV4X0Rldl9BX2Z1dHVyaXN0aWNfaWxsdXN0cmF0aW9uX2RlcGljdGluZ190aGVfaW50ZXJzZWN0aW9uX18xLTMwMHgxNzAuanBnIixocmVmOiJodHRwczovL2J1dmVpLmNvbS9ibG9nL3NldmVuLXBheW1lbnQtdHJlbmRzLTIwMjUvIix0aXRsZTp0KCJhcnRpY2xlLnRpdGxlMyIse25zOiJjb21tb24ifSksZGVzYzp0KCJhcnRpY2xlLmRlc2MzIix7bnM6ImNvbW1vbiJ9KX1dLFt0XSk7cmV0dXJuKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikocG9wb3Zlci5aLHthcnJvdzohMSxjb250ZW50OigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxvYWQuckQse2NoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnBvcG92ZXJXcmFwLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnBvcHZlckNvbnRlbnQsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnBvcHZlckxlZnQsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnN1YlBvcG92ZXJUaXRsZSxjaGlsZHJlbjp0aXRsZX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnBvcHZlck1lbnVXcmFwLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShtZW51SXRlbV9DTVAse3RpdGxlOnQoIm1lbnUudGl0bGU1Iix7bnM6ImNvbW1vbiJ9KSxkZXNjOnQoIm1lbnUuZGVzYzEiLHtuczoiY29tbW9uIn0pLGltZzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MjQxNzE4MzJjZWFlM2EwMjUxLnN2ZyIsYWx0OnQoIm1lbnUudGl0bGU1Iix7bnM6ImNvbW1vbiJ9KSxocmVmOiIvdmlydHVhbC1jYXJkcyJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShtZW51SXRlbV9DTVAse3RpdGxlOnQoIm1lbnUudGl0bGU2Iix7bnM6ImNvbW1vbiJ9KSxkZXNjOnQoIm1lbnUuZGVzYzIiLHtuczoiY29tbW9uIn0pLGNvbW1pbmdTb29uOiEwLGltZzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MjQxNzI0MzI0ZjExZjMyNDQ5LnN2ZyIsYWx0OnQoIm1lbnUudGl0bGU2Iix7bnM6ImNvbW1vbiJ9KX0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnBvcHZlck1lbnVXcmFwLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShtZW51SXRlbV9DTVAse3RpdGxlOnQoIm1lbnUudGl0bGU3Iix7bnM6ImNvbW1vbiJ9KSxkZXNjOnQoIm1lbnUuZGVzYzMiLHtuczoiY29tbW9uIn0pLGhyZWY6ImFwcGxlLXBheSIsaW1nOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDQyNDE3NDUxOTllZDM5ODE2NmUuc3ZnIixhbHQ6dCgibWVudS50aXRsZTciLHtuczoiY29tbW9uIn0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikobWVudUl0ZW1fQ01QLHt0aXRsZToiUGF5UGFsIixkZXNjOiJHbG9iYWwgUGF5UGFsIFBheW91dHMiLGhyZWY6Ii9wYXlwYWwiLGltZzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNjA2MjMxOTEzNDQ5OWZhYTlhN2Q2LnN2ZyIsYWx0OiJQYXlQYWwifSldfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMucG9wdmVyTWVudVdyYXAsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikobWVudUl0ZW1fQ01QLHtocmVmOiIvZGV2ZWxvcGVyIix0aXRsZTooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkhZLHtjaGlsZHJlbjp0KCJtZW51LnRpdGxlOCIse25zOiJjb21tb24ifSl9KSxkZXNjOnQoIm1lbnUuZGVzYzQiLHtuczoiY29tbW9uIn0pLGltZzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MjQxNzQ1NDdmNDI2ODNhMDljLnN2ZyIsYWx0OnQoIm1lbnUudGl0bGU4Iix7bnM6ImNvbW1vbiJ9KX0pfSldfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMucG9wdmVyUmlnaHQsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnN1YlBvcG92ZXJUaXRsZSxjaGlsZHJlbjpbdCgicmVjb21tYW5kQXJ0aWNsZSIse25zOiJjb21tb24ifSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkobGlua19kZWZhdWx0KCkse2hyZWY6Imh0dHBzOi8vYnV2ZWkuY29tL2Jsb2cvIix0YXJnZXQ6Il9ibGFuayIsY2xhc3NOYW1lOnN0eWxlcy52aWV3QWxsLGNoaWxkcmVuOlt0KCJ2aWV3QWxsIix7bnM6ImNvbW1vbiJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShyaWdodEFycm93X0NNUCx7Y2xhc3NOYW1lOnN0eWxlcy52aWV3QWxsSWNvbix3aWR0aDoxNixoZWlnaHQ6MTZ9KV19KV19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShibG9nX0NNUCx7ZGF0YUxpc3Q6aW1nc30pXX0pXX0pfSl9KSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5uYXYsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMubmF2VGV4dCxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoInNwYW4iLHtjaGlsZHJlbjp0aXRsZX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKENNUCx7Y2xhc3NOYW1lOnN0eWxlcy5kb3dufSldfSl9KX0pfTt2YXIgbmF2UHJvZHVjdD1yZWFjdC5tZW1vKE5hdkl0ZW0pO2xldCBzb2x1dGlvbl9OYXZJdGVtPXBhcmFtPT57bGV0e3RpdGxlfT1wYXJhbSx7dGFibGV0fT0oMCx1c2VSZXNwb25zaXZlLkYpKCkse3N0eWxlcyxjeH09bmF2X3N0eWxlX3VzZVN0eWxlcyh7dGFibGV0fSkse3QsaTE4bn09KDAsZXNtLiRHKShbImNvbW1vbiJdKSxpbWdzPSgwLHJlYWN0LnVzZU1lbW8pKCgpPT5be3VybDoiaHR0cHM6Ly93b3JkcHJlc3MuYnV2ZWkuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzA1L1dYMjAyNTA1MTctMTEwNDUxMngtNDAweDIyNS5wbmciLGhyZWY6Imh0dHBzOi8vYnV2ZWkuY29tL2Jsb2cvYWktYWdlbnQtY29tbWVyY2UtZGlnaXRhbC1wYXltZW50cy8iLHRpdGxlOnQoImFydGljbGUudGl0bGU0Iix7bnM6ImNvbW1vbiJ9KSxkZXNjOnQoImFydGljbGUuZGVzYzQiLHtuczoiY29tbW9uIn0pfSx7dXJsOiJodHRwczovL3dvcmRwcmVzcy5idXZlaS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjUvMDUvRmx1eF9EZXZfQV9zbGVla19mdXR1cmlzdGljX2RpZ2l0YWxfcGF5bWVudF9zeXN0ZW1faW50ZXJmYWNlX3dfMi0zMDB4MTcwLmpwZyIsaHJlZjoiaHR0cHM6Ly9idXZlaS5jb20vYmxvZy9mdXR1cmUtb2YtZGlnaXRhbC1wYXltZW50cy1pbi1ldS8iLHRpdGxlOnQoImFydGljbGUudGl0bGU1Iix7bnM6ImNvbW1vbiJ9KSxkZXNjOnQoImFydGljbGUuZGVzYzUiLHtuczoiY29tbW9uIn0pfSx7dXJsOiJodHRwczovL3dvcmRwcmVzcy5idXZlaS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjUvMDUvV1gyMDI1MDUyMC0xMzU2NDFAMngtMzAweDIzOS5wbmciLGhyZWY6Imh0dHBzOi8vYnV2ZWkuY29tL2Jsb2cvdmlydHVhbC1jYXJkLWZlZS1leHBsYWluZWQvIix0aXRsZTp0KCJhcnRpY2xlLnRpdGxlNiIse25zOiJjb21tb24ifSksZGVzYzp0KCJhcnRpY2xlLmRlc2M2Iix7bnM6ImNvbW1vbiJ9KX1dLFt0XSk7cmV0dXJuKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikocG9wb3Zlci5aLHthcnJvdzohMSxjb250ZW50OigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxvYWQuckQse2NoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnBvcG92ZXJXcmFwLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnBvcHZlckNvbnRlbnQsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnBvcHZlckxlZnQsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnN1YlBvcG92ZXJUaXRsZSxjaGlsZHJlbjp0aXRsZX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnBvcHZlck1lbnVXcmFwLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShtZW51SXRlbV9DTVAse3RpdGxlOnQoIm1lbnUudGl0bGU5Iix7bnM6ImNvbW1vbiJ9KSxkZXNjOnQoIm1lbnUuZGVzYzUiLHtuczoiY29tbW9uIn0pLGltZzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MjQyMDM3MDllNjFiZWRmODI4LnN2ZyIsYWx0OnQoIm1lbnUudGl0bGU5Iix7bnM6ImNvbW1vbiJ9KSxocmVmOiIvc29sdXRpb25zL2FkcyJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShtZW51SXRlbV9DTVAse3RpdGxlOnQoIm1lbnUudGl0bGUxMCIse25zOiJjb21tb24ifSksZGVzYzp0KCJtZW51LmRlc2M2Iix7bnM6ImNvbW1vbiJ9KSxpbWc6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDI0MjAzNzQwOWNlNzNiNzhiYi5zdmciLGFsdDp0KCJtZW51LnRpdGxlMTAiLHtuczoiY29tbW9uIn0pLGhyZWY6Ii9zb2x1dGlvbnMvdHJhdmVsIn0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnBvcHZlck1lbnVXcmFwLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKG1lbnVJdGVtX0NNUCx7dGl0bGU6dCgibWVudS50aXRsZTExIix7bnM6ImNvbW1vbiJ9KSxkZXNjOnQoIm1lbnUuZGVzYzciLHtuczoiY29tbW9uIn0pLGltZzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MjQyMDM4MDEwNjhjYjQ4MDVjLnN2ZyIsYWx0OnQoIm1lbnUudGl0bGUxMSIse25zOiJjb21tb24ifSksaHJlZjoiL3NvbHV0aW9ucy9zdWJzY3JpYmUifSl9KV19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5wb3B2ZXJSaWdodCxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuc3ViUG9wb3ZlclRpdGxlLGNoaWxkcmVuOlt0KCJyZWNvbW1hbmRBcnRpY2xlIix7bnM6ImNvbW1vbiJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKShsaW5rX2RlZmF1bHQoKSx7aHJlZjoiaHR0cHM6Ly9idXZlaS5jb20vYmxvZy8iLHRhcmdldDoiX2JsYW5rIixjbGFzc05hbWU6c3R5bGVzLnZpZXdBbGwsY2hpbGRyZW46W3QoInZpZXdBbGwiLHtuczoiY29tbW9uIn0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKHJpZ2h0QXJyb3dfQ01QLHtjbGFzc05hbWU6c3R5bGVzLnZpZXdBbGxJY29uLHdpZHRoOjE2LGhlaWdodDoxNn0pXX0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGJsb2dfQ01QLHtkYXRhTGlzdDppbWdzfSldfSldfSl9KX0pLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLm5hdixjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5uYXZUZXh0LGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgic3BhbiIse2NoaWxkcmVuOnRpdGxlfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoQ01QLHtjbGFzc05hbWU6c3R5bGVzLmRvd259KV19KX0pfSl9O3ZhciBzb2x1dGlvbj1yZWFjdC5tZW1vKHNvbHV0aW9uX05hdkl0ZW0pO2xldCBuYXZJdGVtU2luZ2xlX05hdkl0ZW09cGFyYW09Pnt2YXIgcmVmLHJlZjE7bGV0e2l0ZW1zPVtdfT1wYXJhbSx7dCxpMThufT0oMCxlc20uJEcpKFsiY29tbW9uIl0pLHtzdHlsZXN9PW5hdl9zdHlsZV91c2VTdHlsZXMoe30pO3JldHVybigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxpbmtfZGVmYXVsdCgpLHtocmVmOm51bGw9PT0ocmVmPWl0ZW1zWzBdKXx8dm9pZCAwPT09cmVmP3ZvaWQgMDpyZWYuaHJlZixjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShhbnRTdHlsZS5weSx7Y2xhc3NOYW1lOnN0eWxlcy5zaW5nbGVCdG4sY2hpbGRyZW46dChudWxsPT09KHJlZjE9aXRlbXNbMF0pfHx2b2lkIDA9PT1yZWYxP3ZvaWQgMDpyZWYxLmkxOG4se25zOiJjb21tb24ifSl9KX0pfSxjbGlja0Rvd25fQ01QPXByb3BzPT4oMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgic3ZnIix7dmlld0JveDoiMCAwIDE2IDE2IiwuLi5wcm9wcyxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRlZnMiLHtjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgicmVjdCIse2lkOiJwYXRoLTIzNGNvbmFxd2UtMSIseDoiMCIseToiMCIsd2lkdGg6IjE2IixoZWlnaHQ6IjE2IixyeDoiOCJ9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJnIix7aWQ6Iumhtemdoi0xIixzdHJva2U6Im5vbmUiLCJzdHJva2Utd2lkdGgiOiIxIixmaWxsOiJub25lIiwiZmlsbC1ydWxlIjoiZXZlbm9kZCIsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImciLHtpZDoi5bGV5byA6YCJ5Lit54K55Ye7IixjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoIm1hc2siLHtpZDoibWFzay0yMzRjb25hcXdlLTIiLGZpbGw6IndoaXRlIixjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgidXNlIix7eGxpbmtIcmVmOiIjcGF0aC0yMzRjb25hcXdlLTEifSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZyIse2lkOiLnn6nlvaIifSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImciLHtpZDoi57yW57uEIixtYXNrOiJ1cmwoI21hc2stMjM0Y29uYXF3ZS0yKSIsImZpbGwtcnVsZSI6Im5vbnplcm8iLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgicmVjdCIse2lkOiLnn6nlvaIiLGZpbGw6IiMzODRBQTAiLHg6IjAiLHk6IjAiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxNiIscng6IjgifSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoInBvbHlnb24iLHtpZDoi6Lev5b6EIixmaWxsOiIjRkZGRkZGIixwb2ludHM6IjguMDAwOTc2NTYgOS45OTkwNDU4NiA1LjAwMDk3NjU2IDYuOTk5NTc4ODYgNi4wMDE0NDY1NiA1Ljk5OTc1NTg2IDguMDAwOTc2NTYgNy45OTk0MDU4NiAxMC4wMDA1MDY2IDUuOTk5NzU1ODYgMTEuMDAwOTc2NiA2Ljk5OTU3ODg2IDguMDAwOTc2NTYgOS45OTk3NTU4NiJ9KV19KV19KX0pXX0pLHJlc291cmNlc19OYXZJdGVtPXBhcmFtPT57bGV0e3RpdGxlfT1wYXJhbSx7dGFibGV0fT0oMCx1c2VSZXNwb25zaXZlLkYpKCkse3N0eWxlcyxjeH09bmF2X3N0eWxlX3VzZVN0eWxlcyh7dGFibGV0fSkse3QsaTE4bn09KDAsZXNtLiRHKShbImNvbW1vbiJdKSxpbWdzPSgwLHJlYWN0LnVzZU1lbW8pKCgpPT5be3VybDoiaHR0cHM6Ly93b3JkcHJlc3MuYnV2ZWkuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzA1L0luZG9uZXNpYS1FLWNvbW1lcmNlLURhdGEyLTMwMHgxNjQucG5nIixocmVmOiJodHRwczovL2J1dmVpLmNvbS9ibG9nLzIwMjUtYW5hbHlzaXMtb2YtcGF5bWVudHMtYW5kLWVjb21tZXJjZS10cmVuZHMvIix0aXRsZTp0KCJhcnRpY2xlLnRpdGxlNyIse25zOiJjb21tb24ifSksZGVzYzp0KCJhcnRpY2xlLmRlc2M3Iix7bnM6ImNvbW1vbiJ9KX0se3VybDoiaHR0cHM6Ly93b3JkcHJlc3MuYnV2ZWkuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzA1L+S/oeeUqOWNoeS/neaKpC00MDB4MjI1LmpwZyIsaHJlZjoiaHR0cHM6Ly9idXZlaS5jb20vYmxvZy9jcmVkaXQtY2FyZC1za2ltbWluZy1wcmV2ZW50aW9uLWd1aWRlLyIsdGl0bGU6dCgiYXJ0aWNsZS50aXRsZTgiLHtuczoiY29tbW9uIn0pLGRlc2M6dCgiYXJ0aWNsZS5kZXNjOCIse25zOiJjb21tb24ifSl9LHt1cmw6Imh0dHBzOi8vd29yZHByZXNzLmJ1dmVpLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNS8wNS9IYXZlLVZpcnR1YWwtQ2FyZHMtZm9yLTIwMjVfLTEtMS00MDB4MjI1LmpwZyIsaHJlZjoiaHR0cHM6Ly9idXZlaS5jb20vYmxvZy90b3AtdmlydHVhbC1jYXJkcy0yMDI1LyIsdGl0bGU6dCgiYXJ0aWNsZS50aXRsZTkiLHtuczoiY29tbW9uIn0pLGRlc2M6dCgiYXJ0aWNsZS5kZXNjOSIse25zOiJjb21tb24ifSl9XSxbdF0pO3JldHVybigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKHBvcG92ZXIuWix7YXJyb3c6ITEsY29udGVudDooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsb2FkLnJELHtjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5wb3BvdmVyV3JhcCxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5wb3B2ZXJDb250ZW50LGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5wb3B2ZXJMZWZ0LGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5zdWJQb3BvdmVyVGl0bGUsY2hpbGRyZW46dGl0bGV9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5wb3B2ZXJNZW51V3JhcCxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikobWVudUl0ZW1fQ01QLHt0aXRsZTp0KCJtZW51LnRpdGxlMTIiLHtuczoiY29tbW9uIn0pLGRlc2M6dCgibWVudS5kZXNjOCIse25zOiJjb21tb24ifSksaW1nOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDQyNDIwNDE0MjY1YTE1ZWNmYWQuc3ZnIixhbHQ6dCgibWVudS50aXRsZTEyIix7bnM6ImNvbW1vbiJ9KSxocmVmOiJodHRwczovL2J1dmVpLmNvbS9ibG9nLyJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShtZW51SXRlbV9DTVAse3RpdGxlOnQoIm1lbnUudGl0bGUyMCIse25zOiJjb21tb24ifSksZGVzYzp0KCJtZW51LmRlc2MxMyIse25zOiJjb21tb24ifSksaW1nOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDQyNDIwMjg1MmZiY2I5Mjc0OTEuc3ZnIixhbHQ6dCgibWVudS50aXRsZTE4Iix7bnM6ImNvbW1vbiJ9KSxocmVmOiIvcGFydG5lcnMifSldfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMucG9wdmVyTWVudVdyYXAsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKG1lbnVJdGVtX0NNUCx7dGl0bGU6dCgibWVudS50aXRsZTEzIix7bnM6ImNvbW1vbiJ9KSxkZXNjOnQoIm1lbnUuZGVzYzkiLHtuczoiY29tbW9uIn0pLGltZzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MjQyMDQyMjI4NTRlMTM5YWQ1LnN2ZyIsYWx0OnQoIm1lbnUudGl0bGUxMyIse25zOiJjb21tb24ifSksaHJlZjoiL2Jpbi1zZWFyY2gifSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikocG9wb3Zlci5aLHthcnJvdzohMSxjb250ZW50OigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikobGlua19kZWZhdWx0KCkse2hyZWY6Ii9mYXEiLGNsYXNzTmFtZTpzdHlsZXMucG9wb3Zlck1lbnVTdWJJdGVtLGNoaWxkcmVuOnQoIm1lbnUudGl0bGUxNCIse25zOiJjb21tb24ifSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsaW5rX2RlZmF1bHQoKSx7aHJlZjoiL3Rlcm0iLGNsYXNzTmFtZTpzdHlsZXMucG9wb3Zlck1lbnVTdWJJdGVtLGNoaWxkcmVuOnQoIm1lbnUudGl0bGUxNSIse25zOiJjb21tb24ifSl9KV19KSxwbGFjZW1lbnQ6ImJvdHRvbSIsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKG1lbnVJdGVtX0NNUCx7aHJlZjoiL2hlbHAtY2VudGVyIix0aXRsZTooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKShlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkhZLHtjaGlsZHJlbjpbdCgibWVudS50aXRsZTE2Iix7bnM6ImNvbW1vbiJ9KSwiICIsKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoY2xpY2tEb3duX0NNUCx7d2lkdGg6MTYsaGVpZ2h0OjE2fSldfSksZGVzYzp0KCJtZW51LmRlc2MxMCIse25zOiJjb21tb24ifSksaW1nOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDQyNDIwNDI0MDFkNjExZmI5NzIuc3ZnIixhbHQ6ImhlbHAifSl9KX0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnBvcHZlck1lbnVXcmFwLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKG1lbnVJdGVtX0NNUCx7dGl0bGU6dCgibWVudS50aXRsZTE3Iix7bnM6ImNvbW1vbiJ9KSxkZXNjOnQoIm1lbnUuZGVzYzExIix7bnM6ImNvbW1vbiJ9KSxpbWc6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDI0MjAyNzA0ZWVlNzhiM2IxNC5zdmciLGFsdDp0KCJtZW51LnRpdGxlMTciLHtuczoiY29tbW9uIn0pLGhyZWY6Ii9jb250YWN0LXVzIn0pfSldfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMucG9wdmVyUmlnaHQsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnN1YlBvcG92ZXJUaXRsZSxjaGlsZHJlbjpbdCgicmVjb21tYW5kQXJ0aWNsZSIse25zOiJjb21tb24ifSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkobGlua19kZWZhdWx0KCkse2hyZWY6Imh0dHBzOi8vYnV2ZWkuY29tL2Jsb2cvIix0YXJnZXQ6Il9ibGFuayIsY2xhc3NOYW1lOnN0eWxlcy52aWV3QWxsLGNoaWxkcmVuOlt0KCJ2aWV3QWxsIix7bnM6ImNvbW1vbiJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShyaWdodEFycm93X0NNUCx7Y2xhc3NOYW1lOnN0eWxlcy52aWV3QWxsSWNvbix3aWR0aDoxNixoZWlnaHQ6MTZ9KV19KV19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShibG9nX0NNUCx7ZGF0YUxpc3Q6aW1nc30pXX0pXX0pfSl9KSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5uYXYsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMubmF2VGV4dCxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoInNwYW4iLHtjaGlsZHJlbjp0aXRsZX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKENNUCx7Y2xhc3NOYW1lOnN0eWxlcy5kb3dufSldfSl9KX0pfTt2YXIgcmVzb3VyY2VzPXJlYWN0Lm1lbW8ocmVzb3VyY2VzX05hdkl0ZW0pO2xldCBtZW51X0NNUD1wcm9wcz0+KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdmlld0JveDoiMCAwIDMwIDI2LjY2NyIsLi4ucHJvcHMsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoInBhdGgiLHtpZDoi6Lev5b6EXzE4MDU5IiwiZGF0YS1uYW1lIjoi6Lev5b6EIDE4MDU5IixkOiJNMTI4LDE3MC42NjdoMzBWMTc0SDEyOFptMCwxMS42NjdoMzB2My4zMzNIMTI4Wk0xMjgsMTk0aDMwdjMuMzMzSDEyOFoiLHRyYW5zZm9ybToidHJhbnNsYXRlKC0xMjggLTE3MC42NjcpIixmaWxsOiIjMGM2ZmZjIn0pfSksdG9wYmFyX0NNUD1wYXJhbT0+e2xldHtwYWdlcyxvblNpZGViYXJPcGVufT1wYXJhbSx7dCxpMThufT0oMCxlc20uJEcpKFsiY29tbW9uIl0pLHtsYXB0b3B9PSgwLHVzZVJlc3BvbnNpdmUuRikoKSx7c3R5bGVzfT1pbmRleF9zdHlsZV91c2VTdHlsZXMoe21vYmlsZTohbGFwdG9wfSkse3ByaWNlOnByaWNlLHJld2FyZCxzZXJ2aWNlLHBhcnRuZXJ9PXBhZ2VzLHJvdXRlcj0oMCxuZXh0X3JvdXRlci51c2VSb3V0ZXIpKCkscmVmPSJzdHJpbmciPT10eXBlb2Ygcm91dGVyLnF1ZXJ5LnJlZj9yb3V0ZXIucXVlcnkucmVmOiIiLGNoYW5nZUxhbmd1YWdlPSgwLHJlYWN0LnVzZUNhbGxiYWNrKShsYW49PntpMThuLmNoYW5nZUxhbmd1YWdlKGxhbiksd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJMQU5HVUFHRSIsbGFuKSxyb3V0ZXIucHVzaCh7cGF0aG5hbWU6cm91dGVyLnBhdGhuYW1lLHF1ZXJ5OnJvdXRlci5xdWVyeX0scm91dGVyLmFzUGF0aCx7bG9jYWxlOmxhbn0pfSxbaTE4bl0pLGxhbmd1YWdlQ29udGVudD0oMCxyZWFjdC51c2VNZW1vKSgoKT0+KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMubGFuV3JhcCxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMubGFuSXRlbSxvbkNsaWNrOigpPT5jaGFuZ2VMYW5ndWFnZSgiZW4iKSxjaGlsZHJlbjoiXHVEODNDXHVEREVDXHVEODNDXHVEREU3IEVuZ2xpc2gifSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMubGFuSXRlbSxvbkNsaWNrOigpPT5jaGFuZ2VMYW5ndWFnZSgidmkiKSxjaGlsZHJlbjoiXHVEODNDXHVEREZCXHVEODNDXHVEREYzIFRp4bq/bmcgVmnhu4d0In0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmxhbkl0ZW0sb25DbGljazooKT0+Y2hhbmdlTGFuZ3VhZ2UoInJ1IiksY2hpbGRyZW46Ilx1RDgzQ1x1RERGN1x1RDgzQ1x1RERGQSDQoNGD0YHRgdC60LjQuSJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5sYW5JdGVtLG9uQ2xpY2s6KCk9PmNoYW5nZUxhbmd1YWdlKCJqYSIpLGNoaWxkcmVuOiJcdUQ4M0NcdURERUZcdUQ4M0NcdURERjUg5pel5pys6KqeIn0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmxhbkl0ZW0sb25DbGljazooKT0+Y2hhbmdlTGFuZ3VhZ2UoInB0IiksY2hpbGRyZW46Ilx1RDgzQ1x1RERGNVx1RDgzQ1x1RERGOSBQb3J0dWd1XHhlYXMifSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMubGFuSXRlbSxvbkNsaWNrOigpPT5jaGFuZ2VMYW5ndWFnZSgiYXIiKSxjaGlsZHJlbjoiXHVEODNDXHVEREY4XHVEODNDXHVEREU2INi52LHYqNmKIn0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmxhbkl0ZW0sb25DbGljazooKT0+Y2hhbmdlTGFuZ3VhZ2UoImVzIiksY2hpbGRyZW46Ilx1RDgzQ1x1RERFQVx1RDgzQ1x1RERGOCBFc3BhXHhmMW9sIn0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmxhbkl0ZW0sb25DbGljazooKT0+Y2hhbmdlTGFuZ3VhZ2UoImZyIiksY2hpbGRyZW46Ilx1RDgzQ1x1RERFQlx1RDgzQ1x1RERGNyBGcmFuXHhlN2FpcyJ9KV19KSxbc3R5bGVzLmxhbldyYXAsc3R5bGVzLmxhbkl0ZW0sY2hhbmdlTGFuZ3VhZ2VdKTtyZXR1cm4oMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5jb250YWluZXIsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMud3JhcCxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse3N0eWxlOnthbGlnbkl0ZW1zOiJjZW50ZXIiLGRpc3BsYXk6ImZsZXgifSxjaGlsZHJlbjpsYXB0b3A/KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5IWSx7Y2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxpbmtfZGVmYXVsdCgpLHtocmVmOiIvIixjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShpbWFnZV9kZWZhdWx0KCkse3NyYzpsb2dvLGFsdDoibG9nbyIsaGVpZ2h0OjMwLHdpZHRoOjEyOH0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMubmF2V3JhcCxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikobmF2UHJvZHVjdCx7dGl0bGU6dCgibWVudS50aXRsZTEiLHtuczoiY29tbW9uIn0pLGlkOiJwcm9kdWN0In0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKHNvbHV0aW9uLHt0aXRsZTp0KCJtZW51LnRpdGxlMiIse25zOiJjb21tb24ifSksaWQ6IlNvbHV0aW9ucyJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShuYXZJdGVtU2luZ2xlX05hdkl0ZW0se2l0ZW1zOnByaWNlfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikocmVzb3VyY2VzLHt0aXRsZTp0KCJtZW51LnRpdGxlMyIse25zOiJjb21tb24ifSksaWQ6IlJlc291cmNlIn0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKG5hdkl0ZW1TaW5nbGVfTmF2SXRlbSx7aXRlbXM6W3t0aXRsZTp0KCJtZW51LnRpdGxlMTgiLHtuczoiY29tbW9uIn0pLGkxOG46Im1lbnUudGl0bGUxOCIsaHJlZjoiL3BhcnRuZXIifV19KV19KV19KTooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5tZW51Q29udGFpbmVyLG9uQ2xpY2s6b25TaWRlYmFyT3BlbixjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShtZW51X0NNUCx7Y2xhc3NOYW1lOnN0eWxlcy5tZW51SWNvbn0pfSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7c3R5bGU6e2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciJ9LGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShwb3BvdmVyLlose2NvbnRlbnQ6bGFuZ3VhZ2VDb250ZW50LGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmkxOG5XcmFwLGNoaWxkcmVuOltpMThuLmxhbmd1YWdlLnRvVXBwZXJDYXNlKCksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoQ01QLHtjbGFzc05hbWU6c3R5bGVzLmRvd259KV19KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxpbmtfZGVmYXVsdCgpLHtocmVmOiJodHRwczovL2FwcC5idXZlaS5jb20vc2lnbmluIixyZWw6Im5vZm9sbG93Iix0YXJnZXQ6Il9ibGFuayIsc3R5bGU6e21hcmdpbkxlZnQ6IjEwcHgifSxjaGlsZHJlbjp0KCJsb2dpbkluIix7bnM6ImNvbW1vbiJ9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxpbmtfZGVmYXVsdCgpLHtocmVmOnJlZj8iaHR0cHM6Ly9hcHAuYnV2ZWkuY29tL3NpZ251cC8iLmNvbmNhdChyZWYpOiJodHRwczovL2FwcC5idXZlaS5jb20vc2lnbnVwIixyZWw6Im5vZm9sbG93Iix0YXJnZXQ6Il9ibGFuayIsc3R5bGU6e21hcmdpbkxlZnQ6IjIwcHgifSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShhbnRTdHlsZS50OCx7dHlwZToicHJpbWFyeSIsY2hpbGRyZW46dCgic3RhcnRGcmVlIix7bnM6ImNvbW1vbiJ9KX0pfSldfSldfSl9KX07dmFyIHRvcGJhcj1yZWFjdC5tZW1vKHRvcGJhcl9DTVApLGRyYXdlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDQyNDc3KSxlc19tZW51PV9fd2VicGFja19yZXF1aXJlX18oMTQ3NjUpO2Z1bmN0aW9uIGdldEl0ZW0obGFiZWwsa2V5LGljb24sY2hpbGRyZW4pe3JldHVybntrZXksaWNvbixjaGlsZHJlbixsYWJlbH19bGV0IFNpZGViYXJOYXY9cGFyYW09PntsZXR7cGFnZXMsb25DbG9zZX09cGFyYW0se3QsaTE4bn09KDAsZXNtLiRHKShbImNvbW1vbiJdKSxQcm9kdWN0PSgwLHJlYWN0LnVzZU1lbW8pKCgpPT5be3RpdGxlOnQoIm1lbnUudGl0bGU1Iix7bnM6ImNvbW1vbiJ9KSxocmVmOiIvdmlydHVhbC1jYXJkcyJ9LHt0aXRsZTp0KCJtZW51LnRpdGxlNyIse25zOiJjb21tb24ifSksaHJlZjoiL2FwcGxlLXBheSJ9LHt0aXRsZToiUGF5UGFsIixocmVmOiIvcGF5cGFsIn0se3RpdGxlOiJBUEkiLGhyZWY6Ii9kZXZlbG9wZXIifV0sW3RdKSxTb2x1dGlvbnM9KDAscmVhY3QudXNlTWVtbykoKCk9Plt7dGl0bGU6dCgibWVudS50aXRsZTkiLHtuczoiY29tbW9uIn0pLGhyZWY6Ii9zb2x1dGlvbnMvYWRzIn0se3RpdGxlOnQoIm1lbnUudGl0bGUxMCIse25zOiJjb21tb24ifSksaHJlZjoiL3NvbHV0aW9ucy90cmF2ZWwifSx7dGl0bGU6dCgibWVudS50aXRsZTExIix7bnM6ImNvbW1vbiJ9KSxocmVmOiIvc29sdXRpb25zL3N1YnNjcmliZSJ9XSxbdF0pLFJlc291cmNlPSgwLHJlYWN0LnVzZU1lbW8pKCgpPT5be3RpdGxlOnQoIm1lbnUudGl0bGUxMiIse25zOiJjb21tb24ifSksaHJlZjoiaHR0cHM6Ly9idXZlaS5jb20vYmxvZy8ifSx7dGl0bGU6dCgibWVudS50aXRsZTEzIix7bnM6ImNvbW1vbiJ9KSxocmVmOiIvYmluLXNlYXJjaCJ9LHt0aXRsZTp0KCJtZW51LnRpdGxlMTQiLHtuczoiY29tbW9uIn0pLGhyZWY6Ii9mYXEifSx7dGl0bGU6dCgibWVudS50aXRsZTE1Iix7bnM6ImNvbW1vbiJ9KSxocmVmOiIvdGVybSJ9XSxbdF0pLENvbXBhbnk9KDAscmVhY3QudXNlTWVtbykoKCk9Plt7dGl0bGU6dCgicHJpY2UiLHtuczoiY29tbW9uIn0pLGhyZWY6Ii93aGl0ZS1sYWJlbCJ9LHt0aXRsZTp0KCJtZW51LnRpdGxlMTciLHtuczoiY29tbW9uIn0pLGhyZWY6Ii9jb250YWN0LXVzIn0se3RpdGxlOnQoIm1lbnUudGl0bGUxOCIse25zOiJjb21tb24ifSksaHJlZjoiL3BhcnRuZXJzIn1dLFt0XSksbGFuZ3VhZ2VzPSgwLHJlYWN0LnVzZU1lbW8pKCgpPT5be3RpdGxlOiJcdUQ4M0NcdURERUNcdUQ4M0NcdURERTcgRW5nbGlzaCIsY29kZToiZW4ifSx7dGl0bGU6Ilx1RDgzQ1x1RERGQlx1RDgzQ1x1RERGMyBUaeG6v25nIFZp4buHdCIsY29kZToidmkifSx7dGl0bGU6Ilx1RDgzQ1x1RERGN1x1RDgzQ1x1RERGQSDQoNGD0YHRgdC60LjQuSIsY29kZToicnUifSx7dGl0bGU6Ilx1RDgzQ1x1RERFRlx1RDgzQ1x1RERGNSDml6XmnKzoqp4iLGNvZGU6ImphIn0se3RpdGxlOiJcdUQ4M0NcdURERjVcdUQ4M0NcdURERjkgUG9ydHVndVx4ZWFzIixjb2RlOiJwdCJ9LHt0aXRsZToiXHVEODNDXHVEREY4XHVEODNDXHVEREU2INi52LHYqNmKIixjb2RlOiJhciJ9LHt0aXRsZToiXHVEODNDXHVEREVBXHVEODNDXHVEREY4IEVzcGFceGYxb2wiLGNvZGU6ImVzIn0se3RpdGxlOiJcdUQ4M0NcdURERUJcdUQ4M0NcdURERjcgRnJhblx4ZTdhaXMiLGNvZGU6ImZyIn1dLFtdKSxjaGFuZ2VMYW5ndWFnZT0oMCxyZWFjdC51c2VDYWxsYmFjaykobGFuPT57aTE4bi5jaGFuZ2VMYW5ndWFnZShsYW4pLHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiTEFOR1VBR0UiLGxhbikscm91dGVyX2RlZmF1bHQoKS5wdXNoKHtwYXRobmFtZTpyb3V0ZXJfZGVmYXVsdCgpLnBhdGhuYW1lLHF1ZXJ5OnJvdXRlcl9kZWZhdWx0KCkucXVlcnl9LHJvdXRlcl9kZWZhdWx0KCkuYXNQYXRoLHtsb2NhbGU6bGFufSl9LFtpMThuXSkse3ByaWNlOnByaWNlLHJlZ2lzdGVyQ29tcGFueTpyZWdpc3RlckNvbXBhbnlzLGNvbXBsaWFuY2UsdGF4LHJld2FyZCxzZXJ2aWNlLHBhcnRuZXJ9PXBhZ2VzLG1lbnVJdGVtcz0oMCxyZWFjdC51c2VNZW1vKSgoKT0+W2dldEl0ZW0odCgibWVudS50aXRsZTEiLHtuczoiY29tbW9uIn0pLCIxIiwiIixQcm9kdWN0Lm1hcChpdGVtPT5nZXRJdGVtKCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxpbmtfZGVmYXVsdCgpLHtocmVmOml0ZW0uaHJlZixjaGlsZHJlbjppdGVtLnRpdGxlfSksIlByb2R1Y3QtIi5jb25jYXQoaXRlbS50aXRsZSkpKSksZ2V0SXRlbSh0KCJtZW51LnRpdGxlMiIse25zOiJjb21tb24ifSksIjIiLCIiLFNvbHV0aW9ucy5tYXAoaXRlbT0+Z2V0SXRlbSgoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsaW5rX2RlZmF1bHQoKSx7aHJlZjppdGVtLmhyZWYsY2hpbGRyZW46aXRlbS50aXRsZX0pLCJTb2x1dGlvbnMtIi5jb25jYXQoaXRlbS50aXRsZSkpKSksZ2V0SXRlbSh0KCJtZW51LnRpdGxlMyIse25zOiJjb21tb24ifSksIjMiLCIiLFJlc291cmNlLm1hcChpdGVtPT5nZXRJdGVtKCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxpbmtfZGVmYXVsdCgpLHtocmVmOml0ZW0uaHJlZixjaGlsZHJlbjppdGVtLnRpdGxlfSksIlJlc291cmNlLSIuY29uY2F0KGl0ZW0udGl0bGUpKSkpLGdldEl0ZW0odCgibWVudS50aXRsZTQiLHtuczoiY29tbW9uIn0pLCI0IiwiIixDb21wYW55Lm1hcChpdGVtPT5nZXRJdGVtKCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxpbmtfZGVmYXVsdCgpLHtocmVmOml0ZW0uaHJlZixjaGlsZHJlbjppdGVtLnRpdGxlfSksIkNvbXBhbnktIi5jb25jYXQoaXRlbS50aXRsZSkpKSksZ2V0SXRlbSh0KCJtZW51LnRpdGxlMTkiLHtuczoiY29tbW9uIn0pLCI1IiwiIixsYW5ndWFnZXMubWFwKGl0ZW09PmdldEl0ZW0oKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse29uQ2xpY2s6KCk9PmNoYW5nZUxhbmd1YWdlKGl0ZW0uY29kZSksY2hpbGRyZW46aXRlbS50aXRsZX0pLCJsYW5nLSIuY29uY2F0KGl0ZW0udGl0bGUpKSkpXSxbdCxQcm9kdWN0LFNvbHV0aW9ucyxSZXNvdXJjZSxDb21wYW55LGxhbmd1YWdlcyxjaGFuZ2VMYW5ndWFnZV0pO3JldHVybigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxpbmtfZGVmYXVsdCgpLHtocmVmOiIvIixjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShjb21wb25lbnRzX2ltYWdlLlose3NyYzpsb2dvLGFsdDoibG9nbyIsaGVpZ2h0OjYwLHdpZHRoOjE0MH0pfSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShlc19tZW51Llose2RlZmF1bHRTZWxlY3RlZEtleXM6WyIxIl0sbW9kZToiaW5saW5lIixzdHlsZTp7Ym9yZGVyOiJub25lIn0saXRlbXM6bWVudUl0ZW1zfSldfSl9O3ZhciBzaWRlcmJhck5hdj1yZWFjdC5tZW1vKFNpZGViYXJOYXYpO2xldCBTaWRlYmFyPXBhcmFtPT57bGV0e3BhZ2VzLG9wZW4sb25DbG9zZX09cGFyYW07cmV0dXJuKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoZHJhd2VyLlose3BsYWNlbWVudDoibGVmdCIsb25DbG9zZTooKT0+b25DbG9zZSgpLG9wZW46b3Blbix3aWR0aDoyODAsY2xvc2VJY29uOm51bGwsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse3N0eWxlOnt9LGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKHNpZGVyYmFyTmF2LHtwYWdlczpwYWdlcyxvbkNsb3NlOm9uQ2xvc2V9KX0pfSl9LEJSRUFLUE9JTlRTPXttb2JpbGU6NjQwLHRhYmxldDoxMDI0LGRlc2t0b3A6MTI4MCx3aWRlOjE1MzZ9LE1FRElBX1FVRVJJRVM9e21vYmlsZToiQG1lZGlhIChtYXgtd2lkdGg6ICIuY29uY2F0KEJSRUFLUE9JTlRTLm1vYmlsZSwicHgpIiksdGFibGV0OiJAbWVkaWEgKG1pbi13aWR0aDogIi5jb25jYXQoQlJFQUtQT0lOVFMubW9iaWxlKzEsInB4KSBhbmQgKG1heC13aWR0aDogIikuY29uY2F0KEJSRUFLUE9JTlRTLnRhYmxldCwicHgpIiksZGVza3RvcDoiQG1lZGlhIChtaW4td2lkdGg6ICIuY29uY2F0KEJSRUFLUE9JTlRTLnRhYmxldCsxLCJweCkiKSx3aWRlOiJAbWVkaWEgKG1pbi13aWR0aDogIi5jb25jYXQoQlJFQUtQT0lOVFMud2lkZSwicHgpIiksc21hbGxNb2JpbGU6IkBtZWRpYSAobWF4LXdpZHRoOiA0MDBweCkiLHRhYmxldFVwOiJAbWVkaWEgKG1pbi13aWR0aDogIi5jb25jYXQoQlJFQUtQT0lOVFMubW9iaWxlKzEsInB4KSIpLG1vYmlsZU9ubHk6IkBtZWRpYSAobWF4LXdpZHRoOiAiLmNvbmNhdChCUkVBS1BPSU5UUy5tb2JpbGUsInB4KSIpfTtmdW5jdGlvbiBmb290ZXJfaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNzlkZWcsICMzODRhYTAgMCUsICMwZjBiNjUgMTAwJSk7XG4gICAgICBwYWRkaW5nLXRvcDogNjBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAiLCIge1xuICAgICAgICBwYWRkaW5nLXRvcDogNDBweDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIGZvb3Rlcl9pbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGZvb3Rlcl9pbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDEoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBnYXA6IDIwcHg7XG5cbiAgICAgICIsIiB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMzBweDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIGZvb3Rlcl9pbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDE9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBmb290ZXJfaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QyKCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICBtYXJnaW4tcmlnaHQ6IDgwcHg7XG4gICAgICBtYXgtd2lkdGg6IDI3OHB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgIiwiIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gZm9vdGVyX2luZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0Mj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGZvb3Rlcl9pbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDMoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIG1hcmdpbi1yaWdodDogODBweDtcbiAgICAgIG1heC13aWR0aDogMjc4cHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICIsIiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIGZvb3Rlcl9pbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDM9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBmb290ZXJfaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3Q0KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgIl0pO3JldHVybiBmb290ZXJfaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3Q0PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3Q1KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICBmbGV4OiAxO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICIsIiB7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0NT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0Nigpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgbWFyZ2luLXJpZ2h0OiA2MHB4O1xuICAgICAgZmxleDogMTtcbiAgICAgIG1pbi13aWR0aDogMTQwcHg7XG5cbiAgICAgICIsIiB7XG4gICAgICAgIGZsZXg6IDAgMCA0NSU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cblxuICAgICAgIiwiIHtcbiAgICAgICAgZmxleDogMSAxIDEwMCU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDY9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDcoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcblxuICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7XG4gICAgIl0pO3JldHVybiBpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDc9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDgoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAiXSk7cmV0dXJuIGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0OD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0OSgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0OT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0MTAoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgbWFyZ2luLXRvcDogNjBweDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGdhcDogMTVweDtcblxuICAgICAgIiwiIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDEwPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QxMSgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDExPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QxMigpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsMjU1LCAwLjEpO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QxMj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0MTMoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICJdKTtyZXR1cm4gaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QxMz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0MTQoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDQwcHg7XG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgICAiLCIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QxND1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0MTUoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAiLCIge1xuICAgICAgICBtYXgtd2lkdGg6IDE2MHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QxNT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0MTYoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAiLCI7XG4gICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgIiwiIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0MTY9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDE3KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICJdKTtyZXR1cm4gaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QxNz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0MTgoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIHBhZGRpbmc6IDZweCAxNHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgd2lkdGg6IDE0MHB4O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0MiwgMjQ2LCAyNTUsIDEpO1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QxOD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0MTkoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgbWFyZ2luLWxlZnQ6IDgwcHg7XG4gICAgIl0pO3JldHVybiBpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDE5PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QyMCgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICAiXSk7cmV0dXJuIGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0MjA9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDIxKCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICAvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmMWEgIWltcG9ydGFudDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmYzICFpbXBvcnRhbnQ7ICovXG4gICAgICBib3JkZXItcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbiAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpICFpbXBvcnRhbnQ7XG4gICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAuYW50LXNlbGVjdC1pdGVtIHtcbiAgICAgICAgLyogY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7ICovXG4gICAgICAgIHBhZGRpbmc6IDEycHggMTZweCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwcHggIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIC5hbnQtc2VsZWN0LWl0ZW06aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDgpICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAuYW50LXNlbGVjdC1pdGVtLW9wdGlvbi1zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMikgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QyMT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0MjIoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIG1hcmdpbi10b3A6IDIwMHB4O1xuICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbiAgICAgICIsIiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDIyPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QyMygpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAxMDBweDtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDglKTtcblxuICAgICJdKTtyZXR1cm4gaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QyMz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0MjQoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGFzcGVjdC1yYXRpbzogNTM0IC8gMTQ4O1xuICAgICAgd2lkdGg6IDYwMHB4O1xuICAgICAgIiwiIHtcbiAgICAgICAgd2lkdGg6IDcwJTtcbiAgICAgIH1cbiAgICAgIC8qICIsIiB7XG4gICAgICAgIHdpZHRoOiA3MCU7XG4gICAgICB9ICovXG4gICAgIl0pO3JldHVybiBpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDI0PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QyNSgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xuICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgIGZvbnQtc2l6ZTogMTJweDtcbiAiXSk7cmV0dXJuIGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0MjU9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1NRURJQV9RVUVSSUVTLm1vYmlsZU9ubHksTUVESUFfUVVFUklFUy50YWJsZXQsTUVESUFfUVVFUklFUy5kZXNrdG9wLE1FRElBX1FVRVJJRVMud2lkZSxNRURJQV9RVUVSSUVTLnNtYWxsTW9iaWxlLE1FRElBX1FVRVJJRVMudGFibGV0VXA7bGV0IGZvb3Rlcl9pbmRleF9zdHlsZV91c2VTdHlsZXM9KDAsZnVuY3Rpb25zLmtjKShwYXJhbT0+e2xldHt0b2tlbixjc3MscmVzcG9uc2l2ZX09cGFyYW07cmV0dXJue2JnOmNzcyhmb290ZXJfaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QoKSxNRURJQV9RVUVSSUVTLm1vYmlsZSksY29udGFpbmVyOmNzcyhmb290ZXJfaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QxKCksTUVESUFfUVVFUklFUy5tb2JpbGUpLGxlZnQ6Y3NzKGZvb3Rlcl9pbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDIoKSxNRURJQV9RVUVSSUVTLm1vYmlsZSksbGVmdDI6Y3NzKGZvb3Rlcl9pbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDMoKSxNRURJQV9RVUVSSUVTLm1vYmlsZSksZGVzYzpjc3MoZm9vdGVyX2luZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0NCgpKSxyaWdodDpjc3MoaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3Q1KCkscmVzcG9uc2l2ZS50YWJsZXQpLGl0ZW06Y3NzKGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0NigpLE1FRElBX1FVRVJJRVMudGFibGV0LE1FRElBX1FVRVJJRVMubW9iaWxlKSx0aXRsZTpjc3MoaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3Q3KCkpLHRpdGxlTWFyZ2luOmNzcyhpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDgoKSksbGluazpjc3MoaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3Q5KCkpLGZvb3Rlcjpjc3MoaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QxMCgpLE1FRElBX1FVRVJJRVMubW9iaWxlKSxpY29uTGluazpjc3MoaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QxMSgpKSxpY29uTGluazI6Y3NzKGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0MTIoKSksaWNvbkxpbmszOmNzcyhpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDEzKCkpLGxpbnRGb290ZXI6Y3NzKGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0MTQoKSxyZXNwb25zaXZlLm1vYmlsZSksbGVmdEZvb3Rlcjpjc3MoaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QxNSgpLHJlc3BvbnNpdmUubW9iaWxlKSxpMThuV3JhcDpjc3MoaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QxNigpLHRva2VuLmNvbG9yVGV4dCxyZXNwb25zaXZlLm1vYmlsZSksbGFuV3JhcDpjc3MoaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QxNygpKSxsYW5JdGVtOmNzcyhpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDE4KCkpLG5hdldyYXA6Y3NzKGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0MTkoKSksZG93bjpjc3MoaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QyMCgpKSxkb3JwZG93bjpjc3MoaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QyMSgpKSxyZXZlcnNlSW5mbzpjc3MoaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QyMigpLHJlc3BvbnNpdmUubW9iaWxlKSx0ZXh0V3JhcDpjc3MoaW5kZXhfc3R5bGVfdGVtcGxhdGVPYmplY3QyMygpKSxpbWdXcmFwOmNzcyhpbmRleF9zdHlsZV90ZW1wbGF0ZU9iamVjdDI0KCkscmVzcG9uc2l2ZS5tb2JpbGUscmVzcG9uc2l2ZS50YWJsZXQpLGZvb3Rlck1zYkRlc2M6Y3NzKGluZGV4X3N0eWxlX3RlbXBsYXRlT2JqZWN0MjUoKSl9fSk7dmFyIGNvbnN0YW50PV9fd2VicGFja19yZXF1aXJlX18oNjM3NjUpLGVzX3NlbGVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDM1MTIyKTtsZXQgRm9vdGVyPSgpPT57bGV0e3QsaTE4bn09KDAsZXNtLiRHKShbImNvbW1vbiJdKSx7c3R5bGVzLGN4fT1mb290ZXJfaW5kZXhfc3R5bGVfdXNlU3R5bGVzKCksY2hhbmdlTGFuZ3VhZ2U9bGFuPT57aTE4bi5jaGFuZ2VMYW5ndWFnZShsYW4pLHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiTEFOR1VBR0UiLGxhbikscm91dGVyX2RlZmF1bHQoKS5wdXNoKHtwYXRobmFtZTpyb3V0ZXJfZGVmYXVsdCgpLnBhdGhuYW1lLHF1ZXJ5OnJvdXRlcl9kZWZhdWx0KCkucXVlcnl9LHJvdXRlcl9kZWZhdWx0KCkuYXNQYXRoLHtsb2NhbGU6bGFufSl9O3JldHVybigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJmb290ZXIiLHtjbGFzc05hbWU6c3R5bGVzLmJnLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShpbWFnZV9kZWZhdWx0KCkse2ZpbGw6ITAsc3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDkwMTE2NTgzMTIxODJjYjhjMmMud2VicCIsYWx0OiJiZyJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy50ZXh0V3JhcCxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5pbWdXcmFwLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGltYWdlX2RlZmF1bHQoKSx7ZmlsbDohMCxzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwOTAyMTA1MTQ1NWI0NjcxZGFmMi5wbmciLGFsdDoiYmcifSl9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShjb250YWluZXIuWix7Y2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5jb250YWluZXIsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmxlZnQsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtzdHlsZTp7bWFyZ2luQm90dG9tOiIyMHB4In0sY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6Y3goc3R5bGVzLnRpdGxlLHN0eWxlcy50aXRsZU1hcmdpbiksY2hpbGRyZW46dCgidDE4Iix7bnM6ImNvbW1vbiJ9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKGFudFN0eWxlLldILHtkcm9wZG93bkNsYXNzTmFtZTpzdHlsZXMuZG9ycGRvd24sdmFsdWU6aTE4bi5sYW5ndWFnZSxvbkNoYW5nZTpjaGFuZ2VMYW5ndWFnZSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoZXNfc2VsZWN0LlouT3B0aW9uLHtjaGlsZHJlbjoiXHVEODNDXHVEREVDXHVEODNDXHVEREU3IEVuZ2xpc2gifSwiZW4iKSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShlc19zZWxlY3QuWi5PcHRpb24se2NoaWxkcmVuOiJcdUQ4M0NcdURERkJcdUQ4M0NcdURERjMgVGnhur9uZyBWaeG7h3QifSwidmkiKSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShlc19zZWxlY3QuWi5PcHRpb24se2NoaWxkcmVuOiJcdUQ4M0NcdURERjdcdUQ4M0NcdURERkEg0KDRg9GB0YHQutC40LkifSwicnUiKSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShlc19zZWxlY3QuWi5PcHRpb24se2NoaWxkcmVuOiJcdUQ4M0NcdURERUZcdUQ4M0NcdURERjUg5pel5pys6KqeIn0sImphIiksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoZXNfc2VsZWN0LlouT3B0aW9uLHtjaGlsZHJlbjoiXHVEODNDXHVEREY1XHVEODNDXHVEREY5IFBvcnR1Z3VceGVhcyJ9LCJwdCIpLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGVzX3NlbGVjdC5aLk9wdGlvbix7Y2hpbGRyZW46Ilx1RDgzQ1x1RERGOFx1RDgzQ1x1RERFNiDYudix2KjZiiJ9LCJhciIpLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGVzX3NlbGVjdC5aLk9wdGlvbix7Y2hpbGRyZW46Ilx1RDgzQ1x1RERFQVx1RDgzQ1x1RERGOCBFc3BhXHhmMW9sIn0sImVzIiksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoZXNfc2VsZWN0LlouT3B0aW9uLHtjaGlsZHJlbjoiXHVEODNDXHVEREVCXHVEODNDXHVEREY3IEZyYW5ceGU3YWlzIn0sImZyIildfSldfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMucmV2ZXJzZUluZm8sY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjaGlsZHJlbjoiMjAyNiBAIEJ1dmVpIExMQyJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2hpbGRyZW46IkFsbCBSaWdodHMgUmVzZXJ2ZWQifSldfSldfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMucmlnaHQsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLml0ZW0sY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnRpdGxlLGNoaWxkcmVuOnQoIm1lbnUudGl0bGUxIix7bnM6ImNvbW1vbiJ9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxpbmtfZGVmYXVsdCgpLHtocmVmOiIvdmlydHVhbC1jYXJkcyIsY2xhc3NOYW1lOnN0eWxlcy5saW5rLGNoaWxkcmVuOnQoIm1lbnUudGl0bGU1Iix7bnM6ImNvbW1vbiJ9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxpbmtfZGVmYXVsdCgpLHtocmVmOiIvIixjbGFzc05hbWU6c3R5bGVzLmxpbmssY2hpbGRyZW46dCgidDMiLHtuczoiY29tbW9uIn0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikobGlua19kZWZhdWx0KCkse2hyZWY6Ii9kZXZlbG9wZXIiLGNsYXNzTmFtZTpzdHlsZXMubGluayxjaGlsZHJlbjp0KCJ0NCIse25zOiJjb21tb24ifSl9KV19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5pdGVtLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy50aXRsZSxjaGlsZHJlbjp0KCJ0NSIse25zOiJjb21tb24ifSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsaW5rX2RlZmF1bHQoKSx7aHJlZjoiL3NvbHV0aW9ucy9hZHMiLGNsYXNzTmFtZTpzdHlsZXMubGluayxjaGlsZHJlbjp0KCJ0NiIse25zOiJjb21tb24ifSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsaW5rX2RlZmF1bHQoKSx7aHJlZjoiL3NvbHV0aW9ucy9zdWJzY3JpYmUiLGNsYXNzTmFtZTpzdHlsZXMubGluayxjaGlsZHJlbjp0KCJ0NyIse25zOiJjb21tb24ifSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsaW5rX2RlZmF1bHQoKSx7aHJlZjoiL3NvbHV0aW9ucy90cmF2ZWwiLGNsYXNzTmFtZTpzdHlsZXMubGluayxjaGlsZHJlbjp0KCJ0OCIse25zOiJjb21tb24ifSl9KV19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5pdGVtLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy50aXRsZSxjaGlsZHJlbjp0KCJ0OSIse25zOiJjb21tb24ifSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsaW5rX2RlZmF1bHQoKSx7aHJlZjoiL2RldmVsb3BlciIsY2xhc3NOYW1lOnN0eWxlcy5saW5rLGNoaWxkcmVuOnQoInQxMCIse25zOiJjb21tb24ifSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsaW5rX2RlZmF1bHQoKSx7aHJlZjoiLyIsY2xhc3NOYW1lOnN0eWxlcy5saW5rLGNoaWxkcmVuOnQoInQxMSIse25zOiJjb21tb24ifSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsaW5rX2RlZmF1bHQoKSx7aHJlZjoiLyIsY2xhc3NOYW1lOnN0eWxlcy5saW5rLGNoaWxkcmVuOnQoInQxMiIse25zOiJjb21tb24ifSl9KV19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5pdGVtLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy50aXRsZSxjaGlsZHJlbjp0KCJ0MTkiLHtuczoiY29tbW9uIn0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikobGlua19kZWZhdWx0KCkse2hyZWY6Ii90ZXJtcyIsY2xhc3NOYW1lOmN4KHN0eWxlcy5saW5rKSxjaGlsZHJlbjp0KCJ0MTYiLHtuczoiY29tbW9uIn0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikobGlua19kZWZhdWx0KCkse2hyZWY6Ii9wcml2YWN5IixjbGFzc05hbWU6Y3goc3R5bGVzLmxpbmspLGNoaWxkcmVuOnQoInQxNyIse25zOiJjb21tb24ifSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsaW5rX2RlZmF1bHQoKSx7aHJlZjoiL2Rpc2NsYWltZXIiLGNsYXNzTmFtZTpjeChzdHlsZXMubGluayksY2hpbGRyZW46dCgidDMxIix7bnM6ImNvbW1vbiJ9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6Y3goc3R5bGVzLmxlZnQyLHN0eWxlcy5sZWZ0Rm9vdGVyKSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikobGlua19kZWZhdWx0KCkse2hyZWY6Imh0dHBzOi8veC5jb20vYnV2ZWlfb2ZmaWNpYWwiLHRhcmdldDoiX2JsYW5rIixjbGFzc05hbWU6c3R5bGVzLmljb25MaW5rMixjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5pY29uTGluazMsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoaW1hZ2VfZGVmYXVsdCgpLHtzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjYwMTIyMTQzNjQ4Y2E2ZGNkMGMyZi53ZWJwIixmaWxsOiEwLGFsdDoidHdpdHRlciJ9KX0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikobGlua19kZWZhdWx0KCkse2hyZWY6Imh0dHBzOi8vdC5tZS9idXZlaV9vZmZpY2lhbCIsdGFyZ2V0OiJfYmxhbmsiLGNsYXNzTmFtZTpzdHlsZXMuaWNvbkxpbmssY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoaW1hZ2VfZGVmYXVsdCgpLHtzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDIyMTcxMzA4N2EyYmRlNDY1Mi53ZWJwIixmaWxsOiEwLGFsdDoidGVsZWdyYW0ifSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsaW5rX2RlZmF1bHQoKSx7aHJlZjoibWFpbHRvOiIuY29uY2F0KGNvbnN0YW50LmJRLmVtYWlsKSxjbGFzc05hbWU6c3R5bGVzLmljb25MaW5rLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGltYWdlX2RlZmF1bHQoKSx7c3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDQyMjE3MTMzMDI5MzFhMTgzODAud2VicCIsZmlsbDohMCxhbHQ6Im1haWwifSl9KV19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KHN0eWxlcy5sZWZ0MixzdHlsZXMubGVmdEZvb3RlciksY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxpbmtfZGVmYXVsdCgpLHtocmVmOiJodHRwczovL3d3dy5saW5rZWRpbi5jb20vY29tcGFueS9idXZlaS8iLHRhcmdldDoiX2JsYW5rIixjbGFzc05hbWU6c3R5bGVzLmljb25MaW5rMixjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgic3ZnIix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLGZpbGw6IndoaXRlIixjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgicGF0aCIse2Q6Ik0yMC40NDcgMjAuNDUyaC0zLjU1NHYtNS41NjljMC0xLjMyOC0uMDI3LTMuMDM3LTEuODUyLTMuMDM3LTEuODUzIDAtMi4xMzYgMS40NDUtMi4xMzYgMi45Mzl2NS42NjdIOS4zNTFWOWgzLjQxNHYxLjU2MWguMDQ2Yy40NzctLjkgMS42MzctMS44NSAzLjM3LTEuODUgMy42MDEgMCA0LjI2NyAyLjM3IDQuMjY3IDUuNDU1djYuMjg2ek01LjMzNyA3LjQzM2EyLjA2MiAyLjA2MiAwIDAxLTIuMDYzLTIuMDY1IDIuMDY0IDIuMDY0IDAgMTEyLjA2MyAyLjA2NXptMS43ODIgMTMuMDE5SDMuNTU1VjloMy41NjR2MTEuNDUyek0yMi4yMjUgMEgxLjc3MUMuNzkyIDAgMCAuNzc0IDAgMS43Mjl2MjAuNTQyQzAgMjMuMjI3Ljc5MiAyNCAxLjc3MSAyNGgyMC40NTFDMjMuMiAyNCAyNCAyMy4yMjcgMjQgMjIuMjcxVjEuNzI5QzI0IC43NzQgMjMuMiAwIDIyLjIyMiAwaC4wMDN6In0pfSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsaW5rX2RlZmF1bHQoKSx7aHJlZjoiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL2J1dmVpb2ZmaWNpYWwiLHRhcmdldDoiX2JsYW5rIixjbGFzc05hbWU6c3R5bGVzLmljb25MaW5rMixjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgic3ZnIix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLGZpbGw6IndoaXRlIixjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgicGF0aCIse2Q6Ik0yNCAxMi4wNzNjMC02LjYyNy01LjM3My0xMi0xMi0xMnMtMTIgNS4zNzMtMTIgMTJjMCA1Ljk5IDQuMzg4IDEwLjk1NCAxMC4xMjUgMTEuODU0di04LjM4NUg3LjA3OHYtMy40N2gzLjA0N1Y5LjQzYzAtMy4wMDcgMS43OTItNC42NjkgNC41MzMtNC42NjkgMS4zMTIgMCAyLjY4Ni4yMzUgMi42ODYuMjM1djIuOTUzSDE1LjgzYy0xLjQ5MSAwLTEuOTU2LjkyNS0xLjk1NiAxLjg3NHYyLjI1aDMuMzI4bC0uNTMyIDMuNDdoLTIuNzk2djguMzg1QzE5LjYxMiAyMy4wMjcgMjQgMTguMDYyIDI0IDEyLjA3M3oifSl9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxpbmtfZGVmYXVsdCgpLHtocmVmOiJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2J1dmVpb2ZmaWNpYWwvIix0YXJnZXQ6Il9ibGFuayIsY2xhc3NOYW1lOnN0eWxlcy5pY29uTGluazIsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoInN2ZyIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIsdmlld0JveDoiMCAwIDI0IDI0IixmaWxsOiJ3aGl0ZSIsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoInBhdGgiLHtkOiJNMTIgMi4xNjNjMy4yMDQgMCAzLjU4NC4wMTIgNC44NS4wNyAzLjI1Mi4xNDggNC43NzEgMS42OTEgNC45MTkgNC45MTkuMDU4IDEuMjY1LjA2OSAxLjY0NS4wNjkgNC44NDkgMCAzLjIwNS0uMDEyIDMuNTg0LS4wNjkgNC44NDktLjE0OSAzLjIyNS0xLjY2NCA0Ljc3MS00LjkxOSA0LjkxOS0xLjI2Ni4wNTgtMS42NDQuMDctNC44NS4wNy0zLjIwNCAwLTMuNTg0LS4wMTItNC44NDktLjA3LTMuMjYtLjE0OS00Ljc3MS0xLjY5OS00LjkxOS00LjkyLS4wNTgtMS4yNjUtLjA3LTEuNjQ0LS4wNy00Ljg0OSAwLTMuMjA0LjAxMy0zLjU4My4wNy00Ljg0OS4xNDktMy4yMjcgMS42NjQtNC43NzEgNC45MTktNC45MTkgMS4yNjYtLjA1NyAxLjY0NS0uMDY5IDQuODQ5LS4wNjl6TTEyIDBDOC43NDEgMCA4LjMzMy4wMTQgNy4wNTMuMDcyIDIuNjk1LjI3Mi4yNzMgMi42OS4wNzMgNy4wNTIuMDE0IDguMzMzIDAgOC43NDEgMCAxMmMwIDMuMjU5LjAxNCAzLjY2OC4wNzIgNC45NDguMiA0LjM1OCAyLjYxOCA2Ljc4IDYuOTggNi45OEM4LjMzMyAyMy45ODYgOC43NDEgMjQgMTIgMjRjMy4yNTkgMCAzLjY2OC0uMDE0IDQuOTQ4LS4wNzIgNC4zNTQtLjIgNi43ODItMi42MTggNi45NzktNi45OC4wNTktMS4yOC4wNzMtMS42ODkuMDczLTQuOTQ4IDAtMy4yNTktLjAxNC0zLjY2Ny0uMDcyLTQuOTQ3LS4xOTYtNC4zNTQtMi42MTctNi43OC02Ljk3OS02Ljk4QzE1LjY2OC4wMTQgMTUuMjU5IDAgMTIgMHptMCA1LjgzOGE2LjE2MiA2LjE2MiAwIDEwMCAxMi4zMjQgNi4xNjIgNi4xNjIgMCAwMDAtMTIuMzI0ek0xMiAxNmE0IDQgMCAxMTAtOCA0IDQgMCAwMTAgOHptNi40MDYtMTEuODQ1YTEuNDQgMS40NCAwIDEwMCAyLjg4MSAxLjQ0IDEuNDQgMCAwMDAtMi44ODF6In0pfSl9KV19KV19KV19KV19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5mb290ZXIsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMucmlnaHR9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuZm9vdGVyTXNiRGVzYyxjaGlsZHJlbjp0KCJ0MjMiLHtuczoiY29tbW9uIn0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuZm9vdGVyTXNiRGVzYyxjaGlsZHJlbjp0KCJ0MjQiLHtuczoiY29tbW9uIn0pfSldfSldfSl9KX0pXX0pfTt2YXIgZXNfYnV0dG9uPV9fd2VicGFja19yZXF1aXJlX18oODA0NDcpLHRvb2w9X193ZWJwYWNrX3JlcXVpcmVfXyg1OTAxNCk7ZnVuY3Rpb24gY29va2llX3RlbXBsYXRlT2JqZWN0KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAyNHB4O1xuICBsZWZ0OiAyNHB4O1xuICB6LWluZGV4OiA5OTk5O1xuICB3aWR0aDogMzYwcHg7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIHBhZGRpbmc6IDIwcHggMjBweCAxNnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2hhZG93OiAwIDhweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZjBmMGYwO1xuICBhbmltYXRpb246IHNsaWRlVXAgMC4zcyBlYXNlO1xuXG4gIEBrZXlmcmFtZXMgc2xpZGVVcCB7XG4gICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTsgfVxuICAgIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG4gIH1cblxuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMHZ3O1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHggMTZweCAwIDA7XG4gICAgcGFkZGluZzogMTZweCAxNnB4IDMycHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2hhZG93OiAwIC00cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIH1cbiJdKTtyZXR1cm4gY29va2llX3RlbXBsYXRlT2JqZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gY29va2llX3RlbXBsYXRlT2JqZWN0MSgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgIl0pO3JldHVybiBjb29raWVfdGVtcGxhdGVPYmplY3QxPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gY29va2llX3RlbXBsYXRlT2JqZWN0Migpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMWExZDNhO1xuICAgIG1hcmdpbjogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICJdKTtyZXR1cm4gY29va2llX3RlbXBsYXRlT2JqZWN0Mj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGNvb2tpZV90ZW1wbGF0ZU9iamVjdDMoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiAjODg4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycztcblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjZThlOGU4OyB9XG4gICJdKTtyZXR1cm4gY29va2llX3RlbXBsYXRlT2JqZWN0Mz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGNvb2tpZV90ZW1wbGF0ZU9iamVjdDQoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICM2NjY7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBtYXJnaW46IDAgMCAxNnB4IDA7XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiAiLCI7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAmOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICB9XG4gICJdKTtyZXR1cm4gY29va2llX3RlbXBsYXRlT2JqZWN0ND1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGNvb2tpZV90ZW1wbGF0ZU9iamVjdDUoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogOHB4O1xuXG4gICAgLyog56e75Yqo56uv5oyJ6ZKu5pu06auY77yM5pu05a655piT54K55Ye7ICovXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBnYXA6IDEwcHg7XG4gICAgICAuYW50LWJ0biB7XG4gICAgICAgIGhlaWdodDogNDRweCAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXNpemU6IDE1cHggIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gICJdKTtyZXR1cm4gY29va2llX3RlbXBsYXRlT2JqZWN0NT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWxldCBDT09LSUVfS0VZPSJjb29raWVfY29uc2VudF9kaXNtaXNzZWQiLGNvb2tpZV91c2VTdHlsZXM9KDAsZnVuY3Rpb25zLmtjKShwYXJhbT0+e2xldHt0b2tlbixjc3N9PXBhcmFtO3JldHVybntiYW5uZXI6Y3NzKGNvb2tpZV90ZW1wbGF0ZU9iamVjdCgpKSxoZWFkZXI6Y3NzKGNvb2tpZV90ZW1wbGF0ZU9iamVjdDEoKSksdGl0bGU6Y3NzKGNvb2tpZV90ZW1wbGF0ZU9iamVjdDIoKSksY2xvc2VCdG46Y3NzKGNvb2tpZV90ZW1wbGF0ZU9iamVjdDMoKSksZGVzYzpjc3MoY29va2llX3RlbXBsYXRlT2JqZWN0NCgpLHRva2VuLmNvbG9yUHJpbWFyeSksYWN0aW9uczpjc3MoY29va2llX3RlbXBsYXRlT2JqZWN0NSgpKX19KSxDb29raWVCYW5uZXI9KCk9PntsZXR7dH09KDAsZXNtLiRHKShbImNvbW1vbiJdKSx7c3R5bGVzfT1jb29raWVfdXNlU3R5bGVzKCksW3Zpc2libGUsc2V0VmlzaWJsZV09KDAscmVhY3QudXNlU3RhdGUpKCExKTsoMCxyZWFjdC51c2VFZmZlY3QpKCgpPT57bGV0IHN0b3JhZ2U9KDAsdG9vbC5FTikoKSxkaXNtaXNzZWQ9bnVsbD09c3RvcmFnZT92b2lkIDA6c3RvcmFnZS5nZXRJdGVtKENPT0tJRV9LRVkpO2Rpc21pc3NlZHx8c2V0VmlzaWJsZSghMCl9LFtdKTtsZXQgaGFuZGxlRGlzbWlzcz0oKT0+e2xvY2FsU3RvcmFnZS5zZXRJdGVtKENPT0tJRV9LRVksInRydWUiKSxzZXRWaXNpYmxlKCExKX0saGFuZGxlQWNjZXB0PSgpPT57bG9jYWxTdG9yYWdlLnNldEl0ZW0oQ09PS0lFX0tFWSwidHJ1ZSIpLHNldFZpc2libGUoITEpfTtyZXR1cm4gdmlzaWJsZT8oMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5iYW5uZXIsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmhlYWRlcixjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImg0Iix7Y2xhc3NOYW1lOnN0eWxlcy50aXRsZSxjaGlsZHJlbjp0KCJ0MjYiLHtuczoiY29tbW9uIn0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImJ1dHRvbiIse2NsYXNzTmFtZTpzdHlsZXMuY2xvc2VCdG4sb25DbGljazpoYW5kbGVEaXNtaXNzLGNoaWxkcmVuOiLinJUifSldfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoInAiLHtjbGFzc05hbWU6c3R5bGVzLmRlc2MsY2hpbGRyZW46W3QoInQyNyIse25zOiJjb21tb24ifSksIiAiLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJhIix7aHJlZjoiL3ByaXZhY3kiLHRhcmdldDoiX2JsYW5rIixyZWw6Im5vb3BlbmVyIG5vcmVmZXJyZXIiLGNoaWxkcmVuOnQoInQyOCIse25zOiJjb21tb24ifSl9KSwiLiJdfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYWN0aW9ucyxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoZXNfYnV0dG9uLlpQLHtvbkNsaWNrOmhhbmRsZURpc21pc3Msc3R5bGU6e2ZsZXg6MX0sY2hpbGRyZW46dCgidDI5Iix7bnM6ImNvbW1vbiJ9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGVzX2J1dHRvbi5aUCx7dHlwZToicHJpbWFyeSIsb25DbGljazpoYW5kbGVBY2NlcHQsc3R5bGU6e2ZsZXg6MX0sY2hpbGRyZW46dCgidDMwIix7bnM6ImNvbW1vbiJ9KX0pXX0pXX0pOm51bGx9O2Z1bmN0aW9uIGdvb2dsZVBsYXlfdGVtcGxhdGVPYmplY3QoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNjY3ZWVhIDAlLCAjNzY0YmEyIDEwMCUpO1xuICAgIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHotaW5kZXg6IDk5OTk7XG4gICAgYW5pbWF0aW9uOiBzbGlkZURvd24gMC41cyBlYXNlLW91dDtcblxuICAgIEBrZXlmcmFtZXMgc2xpZGVEb3duIHtcbiAgICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgIiwiIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgfVxuICAiXSk7cmV0dXJuIGdvb2dsZVBsYXlfdGVtcGxhdGVPYmplY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBnb29nbGVQbGF5X3RlbXBsYXRlT2JqZWN0MSgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC01MCU7XG4gICAgcmlnaHQ6IC0yMCU7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGhlaWdodDogMjAwcHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBhbmltYXRpb246IGZsb2F0IDZzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuXG4gICAgQGtleWZyYW1lcyBmbG9hdCB7XG4gICAgICAwJSxcbiAgICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgdHJhbnNsYXRlWCgwKTtcbiAgICAgIH1cbiAgICAgIDUwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCkgdHJhbnNsYXRlWCgxMHB4KTtcbiAgICAgIH1cbiAgICB9XG4gICJdKTtyZXR1cm4gZ29vZ2xlUGxheV90ZW1wbGF0ZU9iamVjdDE9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBnb29nbGVQbGF5X3RlbXBsYXRlT2JqZWN0Migpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC0zMCU7XG4gICAgbGVmdDogLTEwJTtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgaGVpZ2h0OiAxNTBweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBhbmltYXRpb246IGZsb2F0IDhzIGVhc2UtaW4tb3V0IGluZmluaXRlIHJldmVyc2U7XG5cbiAgICBAa2V5ZnJhbWVzIGZsb2F0IHtcbiAgICAgIDAlLFxuICAgICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSB0cmFuc2xhdGVYKDApO1xuICAgICAgfVxuICAgICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KSB0cmFuc2xhdGVYKDEwcHgpO1xuICAgICAgfVxuICAgIH1cbiAgIl0pO3JldHVybiBnb29nbGVQbGF5X3RlbXBsYXRlT2JqZWN0Mj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGdvb2dsZVBsYXlfdGVtcGxhdGVPYmplY3QzKCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBmbGV4OiAxO1xuICAgIHotaW5kZXg6IDE7XG4gICJdKTtyZXR1cm4gZ29vZ2xlUGxheV90ZW1wbGF0ZU9iamVjdDM9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBnb29nbGVQbGF5X3RlbXBsYXRlT2JqZWN0NCgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIGFuaW1hdGlvbjogYm91bmNlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuXG4gICAgQGtleWZyYW1lcyBib3VuY2Uge1xuICAgICAgMCUsXG4gICAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgfVxuICAgICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpO1xuICAgICAgfVxuICAgIH1cbiAgIl0pO3JldHVybiBnb29nbGVQbGF5X3RlbXBsYXRlT2JqZWN0ND1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGdvb2dsZVBsYXlfdGVtcGxhdGVPYmplY3Q1KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgZmxleDogMTtcbiAgIl0pO3JldHVybiBnb29nbGVQbGF5X3RlbXBsYXRlT2JqZWN0NT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGdvb2dsZVBsYXlfdGVtcGxhdGVPYmplY3Q2KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAiXSk7cmV0dXJuIGdvb2dsZVBsYXlfdGVtcGxhdGVPYmplY3Q2PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gZ29vZ2xlUGxheV90ZW1wbGF0ZU9iamVjdDcoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAiXSk7cmV0dXJuIGdvb2dsZVBsYXlfdGVtcGxhdGVPYmplY3Q3PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gZ29vZ2xlUGxheV90ZW1wbGF0ZU9iamVjdDgoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjNjY3ZWVhICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDI1cHggIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBtYXJnaW4tbGVmdDogMnB4O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KSAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6IDE7XG4gICAgYW5pbWF0aW9uOiBwdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpICFpbXBvcnRhbnQ7XG4gICAgICBib3gtc2hhZG93OiAwIDZweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSAhaW1wb3J0YW50O1xuICAgICAgY29sb3I6ICM2NjdlZWEgIWltcG9ydGFudDtcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICIsIiB7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAiXSk7cmV0dXJuIGdvb2dsZVBsYXlfdGVtcGxhdGVPYmplY3Q4PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gZ29vZ2xlUGxheV90ZW1wbGF0ZU9iamVjdDkoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA4cHg7XG4gICAgcmlnaHQ6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMjRweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMjRweCAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogMjRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbiAgICB6LWluZGV4OiAyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICAgIH1cblxuICAgIC5hbnRpY29uIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB9XG4gICJdKTtyZXR1cm4gZ29vZ2xlUGxheV90ZW1wbGF0ZU9iamVjdDk9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1jbGFzcyBCYW5uZXJTdG9yYWdle3N0YXRpYyBzZXREaXNtaXNzZWRUaW1lKCl7bGV0IGtleT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5ERUZBVUxUX0tFWTt0cnl7bGV0IHRpbWVzdGFtcD1EYXRlLm5vdygpO2xvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSx0aW1lc3RhbXAudG9TdHJpbmcoKSl9Y2F0Y2goZXJyb3Ipe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIHNhdmUgYmFubmVyIGRpc21pc3MgdGltZToiLGVycm9yKX19c3RhdGljIHNob3VsZFNob3dCYW5uZXIoKXtsZXQga2V5PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLkRFRkFVTFRfS0VZLGhpZGVGb3JIb3Vycz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MjQ7dHJ5e2xldCBkaXNtaXNzZWRBdD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO2lmKCFkaXNtaXNzZWRBdClyZXR1cm4hMDtsZXQgZGlzbWlzc2VkVGltZT1wYXJzZUludChkaXNtaXNzZWRBdCwxMCksY3VycmVudFRpbWU9RGF0ZS5ub3coKTtyZXR1cm4oY3VycmVudFRpbWUtZGlzbWlzc2VkVGltZSkvMzZlNT49aGlkZUZvckhvdXJzfWNhdGNoKGVycm9yKXtyZXR1cm4gY29uc29sZS53YXJuKCJGYWlsZWQgdG8gY2hlY2sgYmFubmVyIHZpc2liaWxpdHk6IixlcnJvciksITB9fXN0YXRpYyBjbGVhckRpc21pc3NlZFRpbWUoKXtsZXQga2V5PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLkRFRkFVTFRfS0VZO3RyeXtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpfWNhdGNoKGVycm9yKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBjbGVhciBiYW5uZXIgZGlzbWlzcyB0aW1lOiIsZXJyb3IpfX19QmFubmVyU3RvcmFnZS5ERUZBVUxUX0tFWT0iZ29vZ2xlUGxheUJhbm5lcl9kaXNtaXNzZWRBdCI7bGV0IGdvb2dsZVBsYXlfdXNlU3R5bGVzPSgwLGZ1bmN0aW9ucy5rYykocGFyYW09PntsZXR7Y3NzLHJlc3BvbnNpdmV9PXBhcmFtO3JldHVybntiYW5uZXI6Y3NzKGdvb2dsZVBsYXlfdGVtcGxhdGVPYmplY3QoKSxyZXNwb25zaXZlLm1vYmlsZSksYmFja2dyb3VuZENpcmNsZTE6Y3NzKGdvb2dsZVBsYXlfdGVtcGxhdGVPYmplY3QxKCkpLGJhY2tncm91bmRDaXJjbGUyOmNzcyhnb29nbGVQbGF5X3RlbXBsYXRlT2JqZWN0MigpKSxjb250ZW50OmNzcyhnb29nbGVQbGF5X3RlbXBsYXRlT2JqZWN0MygpKSxpY29uOmNzcyhnb29nbGVQbGF5X3RlbXBsYXRlT2JqZWN0NCgpKSx0ZXh0Q29udGFpbmVyOmNzcyhnb29nbGVQbGF5X3RlbXBsYXRlT2JqZWN0NSgpKSx0aXRsZTpjc3MoZ29vZ2xlUGxheV90ZW1wbGF0ZU9iamVjdDYoKSksc3VidGl0bGU6Y3NzKGdvb2dsZVBsYXlfdGVtcGxhdGVPYmplY3Q3KCkpLGRvd25sb2FkQnRuOmNzcyhnb29nbGVQbGF5X3RlbXBsYXRlT2JqZWN0OCgpLHJlc3BvbnNpdmUubW9iaWxlKSxjbG9zZUJ0bjpjc3MoZ29vZ2xlUGxheV90ZW1wbGF0ZU9iamVjdDkoKSl9fSksR29vZ2xlUGxheUJhbm5lcj1wYXJhbT0+e2xldHtkb3dubG9hZFVybD1jb25zdGFudC56VyxvbkNsb3NlLGF1dG9IaWRlRGVsYXksc3RvcmFnZUtleT0iZ29vZ2xlUGxheUJhbm5lcl9kaXNtaXNzZWRBdCIsaGlkZUZvckhvdXJzPTI0fT1wYXJhbSx7c3R5bGVzfT1nb29nbGVQbGF5X3VzZVN0eWxlcygpLHt0fT0oMCxlc20uJEcpKCJjb21tb24iKSxbdmlzaWJsZSxzZXRWaXNpYmxlXT0oMCxyZWFjdC51c2VTdGF0ZSkoKCk9PkJhbm5lclN0b3JhZ2Uuc2hvdWxkU2hvd0Jhbm5lcihzdG9yYWdlS2V5LGhpZGVGb3JIb3VycykpO3JlYWN0LnVzZUVmZmVjdCgoKT0+e2lmKGF1dG9IaWRlRGVsYXkpe2xldCB0aW1lcj1zZXRUaW1lb3V0KCgpPT57aGFuZGxlQ2xvc2UoKX0sYXV0b0hpZGVEZWxheSk7cmV0dXJuKCk9PmNsZWFyVGltZW91dCh0aW1lcil9fSxbYXV0b0hpZGVEZWxheV0pO2xldCBoYW5kbGVEb3dubG9hZD0oKT0+eygwLHRvb2wuTGYpKCJldmVudCIsImRvd25sb2FkLWdvb2dsZXBsYXktaG9tZSIpLHdpbmRvdy5vcGVuKGRvd25sb2FkVXJsLCJfYmxhbmsiKX0saGFuZGxlQ2xvc2U9KCk9PntCYW5uZXJTdG9yYWdlLnNldERpc21pc3NlZFRpbWUoc3RvcmFnZUtleSksc2V0VmlzaWJsZSghMSksbnVsbD09b25DbG9zZXx8b25DbG9zZSgpfTtyZXR1cm4gdmlzaWJsZT8oMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5iYW5uZXIsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJhY2tncm91bmRDaXJjbGUxfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmFja2dyb3VuZENpcmNsZTJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5jb250ZW50LGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5pY29uLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJzdmciLHt3aWR0aDoiMzIiLGhlaWdodDoiMzIiLHZpZXdCb3g6IjAgMCAyNCAyNCIsZmlsbDoibm9uZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoInBhdGgiLHtkOiJNMyAyMC41VjMuNUMzIDIuOTEgMy4zNCAyLjM5IDMuODQgMi4xNUwxMy42OSAxMkwzLjg0IDIxLjg1QzMuMzQgMjEuNiAzIDIxLjA5IDMgMjAuNVoiLGZpbGw6IiMwMEQ5RkYifSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoInBhdGgiLHtkOiJNMTYuODEgMTUuMTJMNi4wNSAyMS4zNEwxNC41NCAxMi44NUwxNi44MSAxNS4xMloiLGZpbGw6IiNGRkQ1MDAifSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoInBhdGgiLHtkOiJNMjAuMTYgMTAuODFDMjAuNSAxMS4wOCAyMC43NSAxMS41MyAyMC43NSAxMi4wNEMyMC43NSAxMi41NSAyMC41IDEzIDIwLjE2IDEzLjI3TDE3Ljg5IDE0LjZMMTUuNDUgMTIuMTZMMTcuODkgOS43MkwyMC4xNiAxMC44MVoiLGZpbGw6IiNGRjNBNDQifSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoInBhdGgiLHtkOiJNNi4wNSAyLjY2TDE2LjgxIDguODhMMTQuNTQgMTEuMTVMNi4wNSAyLjY2WiIsZmlsbDoiIzAwRjA3NiJ9KV19KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnRleHRDb250YWluZXIsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnRpdGxlLGNoaWxkcmVuOnQoInRpdGxlMjQ2Iix7bnM6ImNvbW1vbiJ9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnN1YnRpdGxlLGNoaWxkcmVuOnQoInRpdGxlMjU3Iix7bnM6ImNvbW1vbiJ9KX0pXX0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGVzX2J1dHRvbi5aUCx7Y2xhc3NOYW1lOnN0eWxlcy5kb3dubG9hZEJ0bixvbkNsaWNrOmhhbmRsZURvd25sb2FkLGNoaWxkcmVuOnQoInRpdGxlMjU1Iix7bnM6ImNvbW1vbiJ9KX0pXX0pOm51bGx9LGFwcFN0b3JlX0NNUD1wcm9wcz0+KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoInN2ZyIse3ZpZXdCb3g6IjAgMCAzNiAzNiIsLi4ucHJvcHMsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImciLHtpZDoi6aG16Z2iLTEiLHN0cm9rZToibm9uZSIsc3Ryb2tlV2lkdGg6IjEiLGZpbGw6Im5vbmUiLGZpbGxSdWxlOiJldmVub2RkIixjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZyIse2lkOiLnvJbnu4QiLGZpbGw6IiM0MTc5RUEiLCJmaWxsLXJ1bGUiOiJub256ZXJvIixjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgicGF0aCIse2Q6Ik0zLjY1ODIxMDI2LDI3LjYyMjQyMzEgQzIuMTk5ODI0MDcsMzAuODI4NjMzNiAwLjA1NDQyOTUwOTksMzQuMjAyOTYgMy40MDUxMDE5MiwzNS42Nzk5NzgzIEM2LjkzNjU2NiwzNy4yNDEwNTQ1IDcuOTYxMDUyMTYsMzIuODA5OTk5NiA5Ljg1MzMzODM4LDI4LjQ3NTAxMDkgQzcuNzY4MTAxMDQsMjguMzYyODUzNiA1LjY5NTg4MDI1LDI4LjA3NzY2OTggMy42NTgyMTAyNiwyNy42MjI0MjMxIEwzLjY1ODIxMDI2LDI3LjYyMjQyMzEgWiBNMzEuNzY1Mjg5NiwyNi44ODk5MTgxIEMyOC44NDg1MTcyLDI4LjIyMjgzNyAyNi44MTE1OTc2LDI4LjMxODkwMzMgMjUuMDc1OTk3NSwyNi42MTM3Mjc3IEMyNy40ODY1NTMyLDMyLjA4OTUwMjkgMjguNjkxODMxMSwzNy4yMDUwMjk3IDMyLjMwNzY2NDYsMzUuNjQzOTUzNCBDMzUuOTIzNDk4MSwzNC4wODI4NzcyIDMyLjk0NjQ2MTksMjkuNTkxNzgwOCAzMS43NjUyODk2LDI2LjkxMzkzNDYgTDMxLjc2NTI4OTYsMjYuODg5OTE4MSBaIE0zMC4yNDY2Mzk1LDE3LjU5NTUxMDEgQzI5LjEzNzc4MzksMTcuMTE1MTc5IDI4LjcxNTkzNjYsMTYuODYzMDA1MSAyNy41ODI5NzU1LDE3LjQyNzM5NDIgTDIwLjYyODUyMjMsMS42OTY1NDg3OSBDMjAuMTQ3MzcwNSwwLjYxODc0NDEwMiAxOS4wNTEwMTgxLC0wLjA1MzgxMDIxNjUgMTcuODY4NDM2LDAuMDAzMzgxNDU1NjQgQzE2LjY5NjcwMTksLTAuMDM4MTQ3MTQ2MiAxNS42MTIxNTc0LDAuNjE3NzI2NjM2IDE1LjEwODM0OTgsMS42NzI1MzIyMyBMNy40MzA3Mjk5MSwxOS4wOTY1NDUgQy0xMy45MTQ3NDA3LDI1LjIyMDc2NzMgMTYuNjYzMTU4MiwyOS42NjM4MzA1IDI1LjEwMDEwMzEsMjMuMTkxMzY4MSBDMjguNTIzMDkyMiwyOC4zMzA5MTE1IDM2LjczMTAzNDMsMTkuNzkzMDI1MiAzNS45NDc2MDM3LDE2LjczMDkxNDEgQzM1Ljg4MDg2OSwxNi41MDUwNTU4IDM1LjcyNTc0ODYsMTYuMzE1NDM3NSAzNS41MTcxNzM2LDE2LjIwNDc1ODggQzM1LjMwODU5ODYsMTYuMDk0MDgwMSAzNS4wNjQxMDQ0LDE2LjA3MTY0NiAzNC44Mzg3NDgxLDE2LjE0MjUwODQgQzM0LjgzODc0ODEsMTYuMTQyNTA4NCAzMS41ODQ0OTc5LDE4LjE1OTg5OTMgMzAuMjQ2NjM5NSwxNy42MTk1MjY3IEwzMC4yNDY2Mzk1LDE3LjU5NTUxMDEgWiBNMTQuNTc4MDI3NSwxNy42Nzk1NjgxIEwxNy44Njg0MzYsMTAuMzY2NTI2MiBMMjEuMzI3NTgzNSwxOC4xNzE5MDc1IEMxOS4xOTEyMDUyLDE3LjM1MTAzNjggMTYuODU2NzE2MSwxNy4xODc4OTEzIDE0LjYyNjIzODYsMTcuNzAzNTg0NyBMMTQuNTc4MDI3NSwxNy42Nzk1NjgxIFoiLGlkOiLlvaLnirYifSl9KX0pfSk7ZnVuY3Rpb24gYXBwU3RvcmVfdGVtcGxhdGVPYmplY3QoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNjY3ZWVhIDAlLCAjNzY0YmEyIDEwMCUpO1xuICAgIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHotaW5kZXg6IDk5OTk7XG4gICAgYW5pbWF0aW9uOiBzbGlkZURvd24gMC41cyBlYXNlLW91dDtcblxuICAgIEBrZXlmcmFtZXMgc2xpZGVEb3duIHtcbiAgICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgIiwiIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgfVxuICAiXSk7cmV0dXJuIGFwcFN0b3JlX3RlbXBsYXRlT2JqZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gYXBwU3RvcmVfdGVtcGxhdGVPYmplY3QxKCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTUwJTtcbiAgICByaWdodDogLTIwJTtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgaGVpZ2h0OiAyMDBweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGFuaW1hdGlvbjogZmxvYXQgNnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG5cbiAgICBAa2V5ZnJhbWVzIGZsb2F0IHtcbiAgICAgIDAlLFxuICAgICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSB0cmFuc2xhdGVYKDApO1xuICAgICAgfVxuICAgICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KSB0cmFuc2xhdGVYKDEwcHgpO1xuICAgICAgfVxuICAgIH1cbiAgIl0pO3JldHVybiBhcHBTdG9yZV90ZW1wbGF0ZU9iamVjdDE9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBhcHBTdG9yZV90ZW1wbGF0ZU9iamVjdDIoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAtMzAlO1xuICAgIGxlZnQ6IC0xMCU7XG4gICAgd2lkdGg6IDE1MHB4O1xuICAgIGhlaWdodDogMTUwcHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYW5pbWF0aW9uOiBmbG9hdCA4cyBlYXNlLWluLW91dCBpbmZpbml0ZSByZXZlcnNlO1xuXG4gICAgQGtleWZyYW1lcyBmbG9hdCB7XG4gICAgICAwJSxcbiAgICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgdHJhbnNsYXRlWCgwKTtcbiAgICAgIH1cbiAgICAgIDUwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCkgdHJhbnNsYXRlWCgxMHB4KTtcbiAgICAgIH1cbiAgICB9XG4gICJdKTtyZXR1cm4gYXBwU3RvcmVfdGVtcGxhdGVPYmplY3QyPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gYXBwU3RvcmVfdGVtcGxhdGVPYmplY3QzKCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBmbGV4OiAxO1xuICAgIHotaW5kZXg6IDE7XG4gICJdKTtyZXR1cm4gYXBwU3RvcmVfdGVtcGxhdGVPYmplY3QzPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gYXBwU3RvcmVfdGVtcGxhdGVPYmplY3Q0KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgYW5pbWF0aW9uOiBib3VuY2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG5cbiAgICBAa2V5ZnJhbWVzIGJvdW5jZSB7XG4gICAgICAwJSxcbiAgICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICB9XG4gICAgICA1MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XG4gICAgICB9XG4gICAgfVxuICAiXSk7cmV0dXJuIGFwcFN0b3JlX3RlbXBsYXRlT2JqZWN0ND1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGFwcFN0b3JlX3RlbXBsYXRlT2JqZWN0NSgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgIGZsZXg6IDE7XG4gICJdKTtyZXR1cm4gYXBwU3RvcmVfdGVtcGxhdGVPYmplY3Q1PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gYXBwU3RvcmVfdGVtcGxhdGVPYmplY3Q2KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAiXSk7cmV0dXJuIGFwcFN0b3JlX3RlbXBsYXRlT2JqZWN0Nj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIGFwcFN0b3JlX3RlbXBsYXRlT2JqZWN0Nygpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICJdKTtyZXR1cm4gYXBwU3RvcmVfdGVtcGxhdGVPYmplY3Q3PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gYXBwU3RvcmVfdGVtcGxhdGVPYmplY3Q4KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgYmFja2dyb3VuZDogd2hpdGUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzY2N2VlYSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAyNXB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkgIWltcG9ydGFudDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGFuaW1hdGlvbjogcHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KSAhaW1wb3J0YW50O1xuICAgICAgYm94LXNoYWRvdzogMCA2cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMikgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiAjNjY3ZWVhICFpbXBvcnRhbnQ7XG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAiLCIge1xuICAgICAgICBwYWRkaW5nOiA4cHggMTJweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgIl0pO3JldHVybiBhcHBTdG9yZV90ZW1wbGF0ZU9iamVjdDg9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBhcHBTdG9yZV90ZW1wbGF0ZU9iamVjdDkoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA4cHg7XG4gICAgcmlnaHQ6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMjRweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMjRweCAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogMjRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbiAgICB6LWluZGV4OiAyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICAgIH1cblxuICAgIC5hbnRpY29uIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB9XG4gICJdKTtyZXR1cm4gYXBwU3RvcmVfdGVtcGxhdGVPYmplY3Q5PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9Y2xhc3MgYXBwU3RvcmVfQmFubmVyU3RvcmFnZXtzdGF0aWMgc2V0RGlzbWlzc2VkVGltZSgpe2xldCBrZXk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuREVGQVVMVF9LRVk7dHJ5e2xldCB0aW1lc3RhbXA9RGF0ZS5ub3coKTtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksdGltZXN0YW1wLnRvU3RyaW5nKCkpfWNhdGNoKGVycm9yKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBzYXZlIGJhbm5lciBkaXNtaXNzIHRpbWU6IixlcnJvcil9fXN0YXRpYyBzaG91bGRTaG93QmFubmVyKCl7bGV0IGtleT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5ERUZBVUxUX0tFWSxoaWRlRm9ySG91cnM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjI0O3RyeXtsZXQgZGlzbWlzc2VkQXQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtpZighZGlzbWlzc2VkQXQpcmV0dXJuITA7bGV0IGRpc21pc3NlZFRpbWU9cGFyc2VJbnQoZGlzbWlzc2VkQXQsMTApLGN1cnJlbnRUaW1lPURhdGUubm93KCk7cmV0dXJuKGN1cnJlbnRUaW1lLWRpc21pc3NlZFRpbWUpLzM2ZTU+PWhpZGVGb3JIb3Vyc31jYXRjaChlcnJvcil7cmV0dXJuIGNvbnNvbGUud2FybigiRmFpbGVkIHRvIGNoZWNrIGJhbm5lciB2aXNpYmlsaXR5OiIsZXJyb3IpLCEwfX1zdGF0aWMgY2xlYXJEaXNtaXNzZWRUaW1lKCl7bGV0IGtleT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5ERUZBVUxUX0tFWTt0cnl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KX1jYXRjaChlcnJvcil7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gY2xlYXIgYmFubmVyIGRpc21pc3MgdGltZToiLGVycm9yKX19fWFwcFN0b3JlX0Jhbm5lclN0b3JhZ2UuREVGQVVMVF9LRVk9Imdvb2dsZVBsYXlCYW5uZXJfZGlzbWlzc2VkQXQiO2xldCBhcHBTdG9yZV91c2VTdHlsZXM9KDAsZnVuY3Rpb25zLmtjKShwYXJhbT0+e2xldHtjc3MscmVzcG9uc2l2ZX09cGFyYW07cmV0dXJue2Jhbm5lcjpjc3MoYXBwU3RvcmVfdGVtcGxhdGVPYmplY3QoKSxyZXNwb25zaXZlLm1vYmlsZSksYmFja2dyb3VuZENpcmNsZTE6Y3NzKGFwcFN0b3JlX3RlbXBsYXRlT2JqZWN0MSgpKSxiYWNrZ3JvdW5kQ2lyY2xlMjpjc3MoYXBwU3RvcmVfdGVtcGxhdGVPYmplY3QyKCkpLGNvbnRlbnQ6Y3NzKGFwcFN0b3JlX3RlbXBsYXRlT2JqZWN0MygpKSxpY29uOmNzcyhhcHBTdG9yZV90ZW1wbGF0ZU9iamVjdDQoKSksdGV4dENvbnRhaW5lcjpjc3MoYXBwU3RvcmVfdGVtcGxhdGVPYmplY3Q1KCkpLHRpdGxlOmNzcyhhcHBTdG9yZV90ZW1wbGF0ZU9iamVjdDYoKSksc3VidGl0bGU6Y3NzKGFwcFN0b3JlX3RlbXBsYXRlT2JqZWN0NygpKSxkb3dubG9hZEJ0bjpjc3MoYXBwU3RvcmVfdGVtcGxhdGVPYmplY3Q4KCkscmVzcG9uc2l2ZS5tb2JpbGUpLGNsb3NlQnRuOmNzcyhhcHBTdG9yZV90ZW1wbGF0ZU9iamVjdDkoKSl9fSksYXBwU3RvcmVfR29vZ2xlUGxheUJhbm5lcj1wYXJhbT0+e2xldHtkb3dubG9hZFVybD1jb25zdGFudC56eixvbkNsb3NlLGF1dG9IaWRlRGVsYXksc3RvcmFnZUtleT0iZ29vZ2xlUGxheUJhbm5lcl9kaXNtaXNzZWRBdCIsaGlkZUZvckhvdXJzPTI0fT1wYXJhbSx7c3R5bGVzfT1hcHBTdG9yZV91c2VTdHlsZXMoKSx7dH09KDAsZXNtLiRHKSgiY29tbW9uIiksW3Zpc2libGUsc2V0VmlzaWJsZV09KDAscmVhY3QudXNlU3RhdGUpKCgpPT5hcHBTdG9yZV9CYW5uZXJTdG9yYWdlLnNob3VsZFNob3dCYW5uZXIoc3RvcmFnZUtleSxoaWRlRm9ySG91cnMpKTtyZWFjdC51c2VFZmZlY3QoKCk9PntpZihhdXRvSGlkZURlbGF5KXtsZXQgdGltZXI9c2V0VGltZW91dCgoKT0+e2hhbmRsZUNsb3NlKCl9LGF1dG9IaWRlRGVsYXkpO3JldHVybigpPT5jbGVhclRpbWVvdXQodGltZXIpfX0sW2F1dG9IaWRlRGVsYXldKTtsZXQgaGFuZGxlRG93bmxvYWQ9KCk9PnsoMCx0b29sLkxmKSgiZXZlbnQiLCJkb3dubG9hZC1nb29nbGVwbGF5LWhvbWUiKSx3aW5kb3cub3Blbihkb3dubG9hZFVybCwiX2JsYW5rIil9LGhhbmRsZUNsb3NlPSgpPT57YXBwU3RvcmVfQmFubmVyU3RvcmFnZS5zZXREaXNtaXNzZWRUaW1lKHN0b3JhZ2VLZXkpLHNldFZpc2libGUoITEpLG51bGw9PW9uQ2xvc2V8fG9uQ2xvc2UoKX07cmV0dXJuIHZpc2libGU/KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmFubmVyLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5iYWNrZ3JvdW5kQ2lyY2xlMX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJhY2tncm91bmRDaXJjbGUyfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuY29udGVudCxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuaWNvbixjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShhcHBTdG9yZV9DTVAse3dpZHRoOjI0LGhlaWdodDoyNH0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMudGV4dENvbnRhaW5lcixjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMudGl0bGUsY2hpbGRyZW46dCgidGl0bGUyNTYiLHtuczoiY29tbW9uIn0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuc3VidGl0bGUsY2hpbGRyZW46dCgidGl0bGUyNTciLHtuczoiY29tbW9uIn0pfSldfSldfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoZXNfYnV0dG9uLlpQLHtjbGFzc05hbWU6c3R5bGVzLmRvd25sb2FkQnRuLG9uQ2xpY2s6aGFuZGxlRG93bmxvYWQsY2hpbGRyZW46dCgidGl0bGUyNTUiLHtuczoiY29tbW9uIn0pfSldfSk6bnVsbH07dmFyIG5hdk1lbnU9e3ByaWNlOlt7dGl0bGU6IldoaXRlLUxhYmVsIixpMThuOiJwcmljZSIsaHJlZjoiL3doaXRlLWxhYmVsIn1dfTtsZXQgTWFpbj1wYXJhbT0+e2xldHtjaGlsZHJlbn09cGFyYW0se3N0eWxlcyxjeH09dXNlU3R5bGVzKCkse21vYmlsZX09KDAsdXNlUmVzcG9uc2l2ZS5GKSgpLFtvcGVuU2lkZWJhcixzZXRPcGVuU2lkZWJhcl09KDAscmVhY3QudXNlU3RhdGUpKCExKSxzaG93UGxheT1tb2JpbGUmJigwLHRvb2wuUGspKCksc2hvd0lvcz1tb2JpbGUmJigwLHRvb2wuQjApKCk7cmV0dXJuKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuY29udGFpbmVyLGNoaWxkcmVuOltzaG93UGxheT8oMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShHb29nbGVQbGF5QmFubmVyLHt9KTpzaG93SW9zPygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGFwcFN0b3JlX0dvb2dsZVBsYXlCYW5uZXIse30pOm51bGwsKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImhlYWRlciIse2NsYXNzTmFtZTpjeChzdHlsZXMuaGVhZGVyLChzaG93UGxheXx8c2hvd0lvcykmJnN0eWxlcy5oZWFkZXJUb3ApLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbnRhaW5lci5aLHtjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSh0b3BiYXIse3BhZ2VzOm5hdk1lbnUsb25TaWRlYmFyT3BlbjooKT0+c2V0T3BlblNpZGViYXIoITApfSl9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKFNpZGViYXIse29uQ2xvc2U6KCk9PnNldE9wZW5TaWRlYmFyKCExKSxvcGVuOm9wZW5TaWRlYmFyLHBhZ2VzOm5hdk1lbnV9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgibWFpbiIse2NoaWxkcmVuOmNoaWxkcmVufSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoQ29va2llQmFubmVyLHt9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShGb290ZXIse30pXX0pfTt2YXIgbWFpbj1NYWlufSw1MTYxMDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7TTM6ZnVuY3Rpb24oKXtyZXR1cm4gTG9hZENoaWxkfSxycTpmdW5jdGlvbigpe3JldHVybiBMb2FkQ2hpbGRTY2FsZX0sZ2Q6ZnVuY3Rpb24oKXtyZXR1cm4gTG9hZENoaWxkU2xvd30sS0Y6ZnVuY3Rpb24oKXtyZXR1cm4gTG9hZFdyYXB9LG95OmZ1bmN0aW9uKCl7cmV0dXJuIExvYWRXcmFwTm93fSxyRDpmdW5jdGlvbigpe3JldHVybiBMb2FkV3JhcFF1aWNrfX0pO3ZhciBlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtPV9fd2VicGFja19yZXF1aXJlX18oMzU5NDQpO19fd2VicGFja19yZXF1aXJlX18oNjcyOTQpO3ZhciBkb21fbW90aW9uPV9fd2VicGFja19yZXF1aXJlX18oODQyMTcpLHVzZVJlc3BvbnNpdmU9X193ZWJwYWNrX3JlcXVpcmVfXygyODc0Myk7bGV0IGxvYWRXcmFwPXtvcGVuOnt0cmFuc2l0aW9uOntzdGFnZ2VyQ2hpbGRyZW46LjIsZGVsYXlDaGlsZHJlbjouMn19LGNsb3NlZDp7dHJhbnNpdGlvbjp7c3RhZ2dlckNoaWxkcmVuOi4wNSxzdGFnZ2VyRGlyZWN0aW9uOi0xfX19LGxvYWRXcmFwUXVpY2s9e29wZW46e3RyYW5zaXRpb246e3N0YWdnZXJDaGlsZHJlbjouMDcsZGVsYXlDaGlsZHJlbjouMX19LGNsb3NlZDp7dHJhbnNpdGlvbjp7c3RhZ2dlckNoaWxkcmVuOi4wNSxzdGFnZ2VyRGlyZWN0aW9uOi0xfX19LGxvYWRDaGlsZD17b3Blbjp7eTowLG9wYWNpdHk6MSx0cmFuc2l0aW9uOnt5OntzdGlmZm5lc3M6MWUzLHZlbG9jaXR5Oi0xMDB9fX0sY2xvc2VkOnt5OjUwLG9wYWNpdHk6MCx0cmFuc2l0aW9uOnt5OntzdGlmZm5lc3M6MWUzfX19fSxsb2FkQ2hpbGRTbG93PXtvcGVuOnt5OjAsb3BhY2l0eToxLHRyYW5zaXRpb246e3k6e3N0aWZmbmVzczoxZTMsdmVsb2NpdHk6LTEwMH19fSxjbG9zZWQ6e3k6MjAsb3BhY2l0eTowLHRyYW5zaXRpb246e3k6e3N0aWZmbmVzczoxZTN9fX19LGxvYWRDaGlsZFNjYWxlPXtvcGVuOntzY2FsZToxLG9wYWNpdHk6MSx5OjAsdHJhbnNpdGlvbjp7ZHVyYXRpb246LjMsZGVsYXk6LjIseTp7c3RpZmZuZXNzOjFlM319fSxjbG9zZWQ6e3NjYWxlOi45LG9wYWNpdHk6MCx5OjUwLHRyYW5zaXRpb246e3k6e3N0aWZmbmVzczoxZTN9fX19LExvYWRXcmFwPXBhcmFtPT57bGV0e2NoaWxkcmVuLC4uLnByb3BzfT1wYXJhbSx7bW9iaWxlfT0oMCx1c2VSZXNwb25zaXZlLkYpKCk7cmV0dXJuKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoZG9tX21vdGlvbi5FLmRpdix7dmFyaWFudHM6bG9hZFdyYXAsLi4ucHJvcHMsaW5pdGlhbDoiY2xvc2VkIix3aGlsZUluVmlldzoib3BlbiIsdmlld3BvcnQ6e2Ftb3VudDptb2JpbGU/MDouMX0sY2hpbGRyZW46Y2hpbGRyZW59KX0sTG9hZFdyYXBOb3c9cGFyYW09PntsZXR7Y2hpbGRyZW4sLi4ucHJvcHN9PXBhcmFtO3JldHVybigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGRvbV9tb3Rpb24uRS5kaXYse3ZhcmlhbnRzOmxvYWRXcmFwLC4uLnByb3BzLGluaXRpYWw6ImNsb3NlZCIsYW5pbWF0ZToib3BlbiIsY2hpbGRyZW46Y2hpbGRyZW59KX0sTG9hZFdyYXBRdWljaz1wYXJhbT0+e2xldHtjaGlsZHJlbiwuLi5wcm9wc309cGFyYW0se21vYmlsZX09KDAsdXNlUmVzcG9uc2l2ZS5GKSgpO3JldHVybigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGRvbV9tb3Rpb24uRS5kaXYse3ZhcmlhbnRzOmxvYWRXcmFwUXVpY2ssLi4ucHJvcHMsaW5pdGlhbDoiY2xvc2VkIix3aGlsZUluVmlldzoib3BlbiIsdmlld3BvcnQ6e2Ftb3VudDptb2JpbGU/MDouMX0sY2hpbGRyZW46Y2hpbGRyZW59KX0sTG9hZENoaWxkPXBhcmFtPT57bGV0e2NoaWxkcmVuLG1vYmlsZSwuLi5wcm9wc309cGFyYW07cmV0dXJuIG1vYmlsZT9jaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShkb21fbW90aW9uLkUuZGl2LHt2YXJpYW50czpsb2FkQ2hpbGQsLi4ucHJvcHMsY2hpbGRyZW46Y2hpbGRyZW59KX0sTG9hZENoaWxkU2xvdz1wYXJhbT0+e2xldHtjaGlsZHJlbixtb2JpbGUsLi4ucHJvcHN9PXBhcmFtO3JldHVybiBtb2JpbGU/Y2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoZG9tX21vdGlvbi5FLmRpdix7dmFyaWFudHM6bG9hZENoaWxkU2xvdywuLi5wcm9wcyxjaGlsZHJlbjpjaGlsZHJlbn0pfSxMb2FkQ2hpbGRTY2FsZT1wYXJhbT0+e2xldHtjaGlsZHJlbiwuLi5wcm9wc309cGFyYW07cmV0dXJuKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoZG9tX21vdGlvbi5FLmRpdix7d2hpbGVJblZpZXc6Im9wZW4iLGluaXRpYWw6ImNsb3NlZCIsdmFyaWFudHM6bG9hZENoaWxkU2NhbGUsLi4ucHJvcHMsY2hpbGRyZW46Y2hpbGRyZW59KX19LDcyMTc0OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIFNFT319KTt2YXIgX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDM1OTQ0KTtfX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KTt2YXIgbmV4dF9oZWFkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg5MDA4KSxuZXh0X2hlYWRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX19kZWZhdWx0PV9fd2VicGFja19yZXF1aXJlX18ubihuZXh0X2hlYWRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyk7bGV0IFNJVEVfVVJMPSJodHRwczovL2J1dmVpLmNvbSIsREVGQVVMVF9TSVRFX05BTUU9IkJ1dmVpIixTVVBQT1JURURfTE9DQUxFUz1bImVuIiwidmkiLCJydSIsImphIiwiZXMiLCJhciJdO2Z1bmN0aW9uIFNFTyhwYXJhbSl7bGV0e3RpdGxlLGRlc2NyaXB0aW9uLGtleXdvcmRzLGNhbm9uaWNhbCxwYXRoPSIiLGxvY2FsZT0iZW4iLG9nVHlwZT0id2Vic2l0ZSIsb2dJbWFnZSxvZ1NpdGVOYW1lPURFRkFVTFRfU0lURV9OQU1FLHR3aXR0ZXIsc3RydWN0dXJlZERhdGEscm9ib3RzLGF1dGhvcixwdWJsaXNoZWRUaW1lLG1vZGlmaWVkVGltZSxsYW5ndWFnZUFsdGVybmF0ZXMsYWRkaXRpb25hbE1ldGFUYWdzPVtdLGFkZGl0aW9uYWxMaW5rVGFncz1bXX09cGFyYW0sY2Fub25pY2FsVXJsPWNhbm9uaWNhbHx8IiIuY29uY2F0KFNJVEVfVVJMKS5jb25jYXQocGF0aCksb2dJbWFnZVVybD0ic3RyaW5nIj09dHlwZW9mIG9nSW1hZ2U/b2dJbWFnZToobnVsbD09b2dJbWFnZT92b2lkIDA6b2dJbWFnZS51cmwpfHwiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV9hNDQxNWQvMjAyNTA4MzAxMDIyNTBkZmQ3ZGE3MmFjLmljbyIsb2dJbWFnZURhdGE9Im9iamVjdCI9PXR5cGVvZiBvZ0ltYWdlJiZudWxsIT09b2dJbWFnZT9vZ0ltYWdlOm51bGwsaHJlZkxhbmdUYWdzPWxhbmd1YWdlQWx0ZXJuYXRlc3x8U1VQUE9SVEVEX0xPQ0FMRVMubWFwKGxvYz0+KHtocmVmTGFuZzpsb2MsaHJlZjoiIi5jb25jYXQoU0lURV9VUkwsIi8iKS5jb25jYXQobG9jKS5jb25jYXQocGF0aCl9KSk7cmV0dXJuIGhyZWZMYW5nVGFncy5wdXNoKHtocmVmTGFuZzoieC1kZWZhdWx0IixocmVmOiIiLmNvbmNhdChTSVRFX1VSTCkuY29uY2F0KHBhdGgpfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5CWCkobmV4dF9oZWFkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpLHtjaGlsZHJlbjpbKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50WikoInRpdGxlIix7Y2hpbGRyZW46dGl0bGV9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnRaKSgibWV0YSIse25hbWU6ImRlc2NyaXB0aW9uIixjb250ZW50OmRlc2NyaXB0aW9ufSksa2V5d29yZHMmJigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udFopKCJtZXRhIix7bmFtZToia2V5d29yZHMiLGNvbnRlbnQ6a2V5d29yZHN9KSxyb2JvdHMmJigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udFopKCJtZXRhIix7bmFtZToicm9ib3RzIixjb250ZW50OnJvYm90c30pLGF1dGhvciYmKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50WikoIm1ldGEiLHtuYW1lOiJhdXRob3IiLGNvbnRlbnQ6YXV0aG9yfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50WikoImxpbmsiLHtyZWw6ImNhbm9uaWNhbCIsaHJlZjpjYW5vbmljYWxVcmx9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnRaKSgibWV0YSIse3Byb3BlcnR5OiJvZzp0eXBlIixjb250ZW50Om9nVHlwZX0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udFopKCJtZXRhIix7cHJvcGVydHk6Im9nOnVybCIsY29udGVudDpjYW5vbmljYWxVcmx9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnRaKSgibWV0YSIse3Byb3BlcnR5OiJvZzpzaXRlX25hbWUiLGNvbnRlbnQ6b2dTaXRlTmFtZX0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udFopKCJtZXRhIix7cHJvcGVydHk6Im9nOnRpdGxlIixjb250ZW50OnRpdGxlfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50WikoIm1ldGEiLHtwcm9wZXJ0eToib2c6ZGVzY3JpcHRpb24iLGNvbnRlbnQ6ZGVzY3JpcHRpb259KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnRaKSgibWV0YSIse3Byb3BlcnR5OiJvZzppbWFnZSIsY29udGVudDpvZ0ltYWdlVXJsfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50WikoIm1ldGEiLHtwcm9wZXJ0eToib2c6bG9jYWxlIixjb250ZW50OmxvY2FsZS5yZXBsYWNlKCItIiwiXyIpfSksb2dJbWFnZURhdGEmJigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQlgpKF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uSFkse2NoaWxkcmVuOltvZ0ltYWdlRGF0YS53aWR0aCYmKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50WikoIm1ldGEiLHtwcm9wZXJ0eToib2c6aW1hZ2U6d2lkdGgiLGNvbnRlbnQ6U3RyaW5nKG9nSW1hZ2VEYXRhLndpZHRoKX0pLG9nSW1hZ2VEYXRhLmhlaWdodCYmKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50WikoIm1ldGEiLHtwcm9wZXJ0eToib2c6aW1hZ2U6aGVpZ2h0Iixjb250ZW50OlN0cmluZyhvZ0ltYWdlRGF0YS5oZWlnaHQpfSksb2dJbWFnZURhdGEuYWx0JiYoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnRaKSgibWV0YSIse3Byb3BlcnR5OiJvZzppbWFnZTphbHQiLGNvbnRlbnQ6b2dJbWFnZURhdGEuYWx0fSksb2dJbWFnZURhdGEudHlwZSYmKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50WikoIm1ldGEiLHtwcm9wZXJ0eToib2c6aW1hZ2U6dHlwZSIsY29udGVudDpvZ0ltYWdlRGF0YS50eXBlfSldfSksImFydGljbGUiPT09b2dUeXBlJiZwdWJsaXNoZWRUaW1lJiYoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnRaKSgibWV0YSIse3Byb3BlcnR5OiJhcnRpY2xlOnB1Ymxpc2hlZF90aW1lIixjb250ZW50OnB1Ymxpc2hlZFRpbWV9KSwiYXJ0aWNsZSI9PT1vZ1R5cGUmJm1vZGlmaWVkVGltZSYmKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50WikoIm1ldGEiLHtwcm9wZXJ0eToiYXJ0aWNsZTptb2RpZmllZF90aW1lIixjb250ZW50Om1vZGlmaWVkVGltZX0pLHR3aXR0ZXImJigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQlgpKF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uSFkse2NoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnRaKSgibWV0YSIse25hbWU6InR3aXR0ZXI6Y2FyZCIsY29udGVudDp0d2l0dGVyLmNhcmR8fCJzdW1tYXJ5X2xhcmdlX2ltYWdlIn0pLHR3aXR0ZXIuc2l0ZSYmKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50WikoIm1ldGEiLHtuYW1lOiJ0d2l0dGVyOnNpdGUiLGNvbnRlbnQ6dHdpdHRlci5zaXRlfSksdHdpdHRlci5jcmVhdG9yJiYoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnRaKSgibWV0YSIse25hbWU6InR3aXR0ZXI6Y3JlYXRvciIsY29udGVudDp0d2l0dGVyLmNyZWF0b3J9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnRaKSgibWV0YSIse25hbWU6InR3aXR0ZXI6dGl0bGUiLGNvbnRlbnQ6dHdpdHRlci50aXRsZXx8dGl0bGV9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnRaKSgibWV0YSIse25hbWU6InR3aXR0ZXI6ZGVzY3JpcHRpb24iLGNvbnRlbnQ6dHdpdHRlci5kZXNjcmlwdGlvbnx8ZGVzY3JpcHRpb259KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnRaKSgibWV0YSIse25hbWU6InR3aXR0ZXI6aW1hZ2UiLGNvbnRlbnQ6dHdpdHRlci5pbWFnZXx8b2dJbWFnZVVybH0pLHR3aXR0ZXIuaW1hZ2VBbHQmJigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udFopKCJtZXRhIix7bmFtZToidHdpdHRlcjppbWFnZTphbHQiLGNvbnRlbnQ6dHdpdHRlci5pbWFnZUFsdH0pXX0pLGhyZWZMYW5nVGFncy5tYXAoYWx0PT4oMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnRaKSgibGluayIse3JlbDoiYWx0ZXJuYXRlIixocmVmTGFuZzphbHQuaHJlZkxhbmcsaHJlZjphbHQuaHJlZn0sYWx0LmhyZWZMYW5nKSksYWRkaXRpb25hbE1ldGFUYWdzLm1hcCgodGFnLGluZGV4KT0+KDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50WikoIm1ldGEiLHsuLi50YWcubmFtZSYme25hbWU6dGFnLm5hbWV9LC4uLnRhZy5wcm9wZXJ0eSYme3Byb3BlcnR5OnRhZy5wcm9wZXJ0eX0sY29udGVudDp0YWcuY29udGVudH0sIm1ldGEtIi5jb25jYXQoaW5kZXgpKSksYWRkaXRpb25hbExpbmtUYWdzLm1hcCgodGFnLGluZGV4KT0+KDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50WikoImxpbmsiLHsuLi50YWd9LCJsaW5rLSIuY29uY2F0KGluZGV4KSkpLHN0cnVjdHVyZWREYXRhJiYoZGF0YT0+e2xldCBkYXRhQXJyYXk9QXJyYXkuaXNBcnJheShkYXRhKT9kYXRhOltkYXRhXTtyZXR1cm4gZGF0YUFycmF5Lm1hcCgoaXRlbSxpbmRleCk9PntsZXQganNvbkxkPXt9O3N3aXRjaChpdGVtLnR5cGUpe2Nhc2UiT3JnYW5pemF0aW9uIjpqc29uTGQ9eyJAY29udGV4dCI6Imh0dHBzOi8vc2NoZW1hLm9yZyIsIkB0eXBlIjoiT3JnYW5pemF0aW9uIixuYW1lOml0ZW0uZGF0YS5uYW1lfHxERUZBVUxUX1NJVEVfTkFNRSx1cmw6aXRlbS5kYXRhLnVybHx8U0lURV9VUkwsbG9nbzppdGVtLmRhdGEubG9nb3x8IiIuY29uY2F0KFNJVEVfVVJMLCIvaW1hZ2VzL2xvZ28uc3ZnIiksZGVzY3JpcHRpb246aXRlbS5kYXRhLmRlc2NyaXB0aW9ufHxkZXNjcmlwdGlvbixzYW1lQXM6aXRlbS5kYXRhLnNhbWVBc3x8W10sLi4uaXRlbS5kYXRhfTticmVhaztjYXNlIldlYlNpdGUiOmpzb25MZD17IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJXZWJTaXRlIixuYW1lOml0ZW0uZGF0YS5uYW1lfHxERUZBVUxUX1NJVEVfTkFNRSx1cmw6aXRlbS5kYXRhLnVybHx8U0lURV9VUkwsZGVzY3JpcHRpb246aXRlbS5kYXRhLmRlc2NyaXB0aW9ufHxkZXNjcmlwdGlvbixwb3RlbnRpYWxBY3Rpb246aXRlbS5kYXRhLnBvdGVudGlhbEFjdGlvbnx8eyJAdHlwZSI6IlNlYXJjaEFjdGlvbiIsdGFyZ2V0OnsiQHR5cGUiOiJFbnRyeVBvaW50Iix1cmxUZW1wbGF0ZToiIi5jb25jYXQoU0lURV9VUkwsIi9iaW4tc2VhcmNoP3F1ZXJ5PXtzZWFyY2hfdGVybV9zdHJpbmd9Iil9LCJxdWVyeS1pbnB1dCI6InJlcXVpcmVkIG5hbWU9c2VhcmNoX3Rlcm1fc3RyaW5nIn0sLi4uaXRlbS5kYXRhfTticmVhaztjYXNlIkJyZWFkY3J1bWJMaXN0Ijpqc29uTGQ9eyJAY29udGV4dCI6Imh0dHBzOi8vc2NoZW1hLm9yZyIsIkB0eXBlIjoiQnJlYWRjcnVtYkxpc3QiLGl0ZW1MaXN0RWxlbWVudDppdGVtLmRhdGEuaXRlbUxpc3RFbGVtZW50fHxbXSwuLi5pdGVtLmRhdGF9O2JyZWFrO2Nhc2UiRkFRUGFnZSI6anNvbkxkPXsiQGNvbnRleHQiOiJodHRwczovL3NjaGVtYS5vcmciLCJAdHlwZSI6IkZBUVBhZ2UiLG1haW5FbnRpdHk6aXRlbS5kYXRhLm1haW5FbnRpdHl8fFtdLC4uLml0ZW0uZGF0YX07YnJlYWs7Y2FzZSJQcm9kdWN0Ijpqc29uTGQ9eyJAY29udGV4dCI6Imh0dHBzOi8vc2NoZW1hLm9yZyIsIkB0eXBlIjoiUHJvZHVjdCIsLi4uaXRlbS5kYXRhfTticmVhaztjYXNlIlNlcnZpY2UiOmpzb25MZD17IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJTZXJ2aWNlIiwuLi5pdGVtLmRhdGF9O2JyZWFrO2RlZmF1bHQ6anNvbkxkPWl0ZW0uZGF0YX1yZXR1cm4oMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnRaKSgic2NyaXB0Iix7dHlwZToiYXBwbGljYXRpb24vbGQranNvbiIsZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDpKU09OLnN0cmluZ2lmeShqc29uTGQpfX0sInN0cnVjdHVyZWQtZGF0YS0iLmNvbmNhdChpbmRleCkpfSl9KShzdHJ1Y3R1cmVkRGF0YSldfSl9fSwzNzg1NDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7STE6ZnVuY3Rpb24oKXtyZXR1cm4gZmFxU2NoZW1hfSxOWDpmdW5jdGlvbigpe3JldHVybiBzZXJ2aWNlU2NoZW1hfSxSTjpmdW5jdGlvbigpe3JldHVybiBzb2x1dGlvblBhZ2VTY2hlbWFzfSxpajpmdW5jdGlvbigpe3JldHVybiBicmVhZGNydW1iU2NoZW1hfSxqdzpmdW5jdGlvbigpe3JldHVybiBob21lcGFnZVNjaGVtYXN9fSk7bGV0IFNJVEVfVVJMPSJodHRwczovL2J1dmVpLmNvbSIsU0lURV9OQU1FPSJCdXZlaSIsb3JnYW5pemF0aW9uU2NoZW1hPW92ZXJyaWRlcz0+KHt0eXBlOiJPcmdhbml6YXRpb24iLGRhdGE6e25hbWU6U0lURV9OQU1FLHVybDpTSVRFX1VSTCxsb2dvOiIiLmNvbmNhdChTSVRFX1VSTCwiL2ltYWdlcy9sb2dvLnN2ZyIpLGRlc2NyaXB0aW9uOiJCdXZlaSBwcm92aWRlcyB2aXJ0dWFsIGNhcmQgc29sdXRpb25zIGZvciBnbG9iYWwgcGF5bWVudHMsIGFkdmVydGlzaW5nLCBzdWJzY3JpcHRpb25zLCBhbmQgdHJhdmVsLiIsc2FtZUFzOltdLGNvbnRhY3RQb2ludDp7IkB0eXBlIjoiQ29udGFjdFBvaW50Iixjb250YWN0VHlwZToiQ3VzdG9tZXIgU2VydmljZSIsZW1haWw6InN1cHBvcnRAYnV2ZWkuY29tIixhdmFpbGFibGVMYW5ndWFnZTpbIkVuZ2xpc2giLCJWaWV0bmFtZXNlIiwiUnVzc2lhbiIsIkphcGFuZXNlIiwiU3BhbmlzaCIsIkFyYWJpYyJdfSwuLi5vdmVycmlkZXN9fSksd2Vic2l0ZVNjaGVtYT1vdmVycmlkZXM9Pih7dHlwZToiV2ViU2l0ZSIsZGF0YTp7bmFtZTpTSVRFX05BTUUsdXJsOlNJVEVfVVJMLGRlc2NyaXB0aW9uOiJWaXJ0dWFsIGNhcmQgc29sdXRpb25zIGZvciBnbG9iYWwgcGF5bWVudHMiLHBvdGVudGlhbEFjdGlvbjp7IkB0eXBlIjoiU2VhcmNoQWN0aW9uIix0YXJnZXQ6eyJAdHlwZSI6IkVudHJ5UG9pbnQiLHVybFRlbXBsYXRlOiIiLmNvbmNhdChTSVRFX1VSTCwiL2Jpbi1zZWFyY2g/cXVlcnk9e3NlYXJjaF90ZXJtX3N0cmluZ30iKX0sInF1ZXJ5LWlucHV0IjoicmVxdWlyZWQgbmFtZT1zZWFyY2hfdGVybV9zdHJpbmcifSwuLi5vdmVycmlkZXN9fSksYnJlYWRjcnVtYlNjaGVtYT1pdGVtcz0+KHt0eXBlOiJCcmVhZGNydW1iTGlzdCIsZGF0YTp7aXRlbUxpc3RFbGVtZW50Oml0ZW1zLm1hcCgoaXRlbSxpbmRleCk9Pih7IkB0eXBlIjoiTGlzdEl0ZW0iLHBvc2l0aW9uOmluZGV4KzEsbmFtZTppdGVtLm5hbWUsaXRlbTppdGVtLnVybH0pKX19KSxmYXFTY2hlbWE9ZmFxcz0+KHt0eXBlOiJGQVFQYWdlIixkYXRhOnttYWluRW50aXR5OmZhcXMubWFwKGZhcT0+KHsiQHR5cGUiOiJRdWVzdGlvbiIsbmFtZTpmYXEucXVlc3Rpb24sYWNjZXB0ZWRBbnN3ZXI6eyJAdHlwZSI6IkFuc3dlciIsdGV4dDpmYXEuYW5zd2VyfX0pKX19KSxzZXJ2aWNlU2NoZW1hPXNlcnZpY2U9Pih7dHlwZToiU2VydmljZSIsZGF0YTp7IkB0eXBlIjoiU2VydmljZSIsbmFtZTpzZXJ2aWNlLm5hbWUsZGVzY3JpcHRpb246c2VydmljZS5kZXNjcmlwdGlvbixwcm92aWRlcjpzZXJ2aWNlLnByb3ZpZGVyP3siQHR5cGUiOiJPcmdhbml6YXRpb24iLG5hbWU6c2VydmljZS5wcm92aWRlcn06dm9pZCAwLGFyZWFTZXJ2ZWQ6c2VydmljZS5hcmVhU2VydmVkLHNlcnZpY2VUeXBlOnNlcnZpY2Uuc2VydmljZVR5cGV9fSksaG9tZXBhZ2VTY2hlbWFzPSgpPT5bb3JnYW5pemF0aW9uU2NoZW1hKCksd2Vic2l0ZVNjaGVtYSgpXSxzb2x1dGlvblBhZ2VTY2hlbWFzPShzb2x1dGlvbk5hbWUsZGVzY3JpcHRpb24scGF0aCk9PltzZXJ2aWNlU2NoZW1hKHtuYW1lOnNvbHV0aW9uTmFtZSxkZXNjcmlwdGlvbjpkZXNjcmlwdGlvbixwcm92aWRlcjpTSVRFX05BTUUsYXJlYVNlcnZlZDoiV29ybGR3aWRlIn0pLGJyZWFkY3J1bWJTY2hlbWEoW3tuYW1lOiJIb21lIix1cmw6U0lURV9VUkx9LHtuYW1lOiJTb2x1dGlvbnMiLHVybDoiIi5jb25jYXQoU0lURV9VUkwsIi9zb2x1dGlvbnMiKX0se25hbWU6c29sdXRpb25OYW1lLHVybDoiIi5jb25jYXQoU0lURV9VUkwpLmNvbmNhdChwYXRoKX1dKV19LDgwOTc3OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtPZDpmdW5jdGlvbigpe3JldHVybiByZWdpc3RlclVzZXJCeUNvZGV9LFgyOmZ1bmN0aW9uKCl7cmV0dXJuIGdldFJlZ2lzdGVyTWFpbENvZGV9LGNTOmZ1bmN0aW9uKCl7cmV0dXJuIGdldEdvb2dsZUF1dGhVcmx9LHU5OmZ1bmN0aW9uKCl7cmV0dXJuIGdvb2dsZUxvZ2lufX0pO3ZhciB1dGlsc190b29sX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg1OTAxNCksY29uZmlnX2hvc3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ0MDE0KSxfY29tbW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg5MjIxMiksYW50ZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fPV9fd2VicGFja19yZXF1aXJlX18oMjQ1Myk7bGV0IGdldFJlZ2lzdGVyTWFpbENvZGU9YXN5bmMgb3B0aW9ucz0+e2xldCByZXM9KDAsX2NvbW1vbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlMpKGF3YWl0IHV0aWxzX3Rvb2xfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5XWS5wb3N0KCIiLmNvbmNhdChjb25maWdfaG9zdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkIsIi9zbXMvdXNlci9yZWdpc3Rlci9tYWlsL2NvZGUiKSxvcHRpb25zKSk7cmV0dXJuIHJlcy5zdWNjZXNzfHxhbnRkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uWlAuZXJyb3IocmVzLm1zZykscmVzfSxyZWdpc3RlclVzZXJCeUNvZGU9YXN5bmMgb3B0aW9ucz0+e2xldCByZXM9KDAsX2NvbW1vbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlMpKGF3YWl0IHV0aWxzX3Rvb2xfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5XWS5wb3N0KCIiLmNvbmNhdChjb25maWdfaG9zdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkIsIi91c2VyL25ldyIpLG9wdGlvbnMpKTtyZXR1cm4gcmVzLnN1Y2Nlc3N8fGFudGRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5aUC5lcnJvcihyZXMubXNnKSxyZXN9LGdldEdvb2dsZUF1dGhVcmw9YXN5bmMgb3B0aW9ucz0+e2xldCByZXM9KDAsX2NvbW1vbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlMpKGF3YWl0IHV0aWxzX3Rvb2xfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5XWS5nZXQoIiIuY29uY2F0KGNvbmZpZ19ob3N0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQiwiL3VzZXIvZ29vZ2xlL2F1dGgiKSxvcHRpb25zKSk7cmV0dXJuIHJlcy5zdWNjZXNzfHxhbnRkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uWlAuZXJyb3IocmVzLm1zZykscmVzfSxnb29nbGVMb2dpbj1hc3luYyBvcHRpb25zPT57bGV0IHJlcz0oMCxfY29tbW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uUykoYXdhaXQgdXRpbHNfdG9vbF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLldZLnBvc3QoIiIuY29uY2F0KGNvbmZpZ19ob3N0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQiwiL3VzZXIvZ29vZ2xlL2xvZ2luIiksb3B0aW9ucykpO3JldHVybiByZXMuc3VjY2Vzc3x8YW50ZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLlpQLmVycm9yKHJlcy5tc2cpLHJlc319LDQ4NTUwOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtMSzpmdW5jdGlvbigpe3JldHVybiBnZXRQYXJ0bmVyQ2F0ZWdvcnlMaXN0fSxjZTpmdW5jdGlvbigpe3JldHVybiBnZXRCaW5FeGlzdH0sa1c6ZnVuY3Rpb24oKXtyZXR1cm4gZ2V0UGFydG5lcn19KTt2YXIgdXRpbHNfdG9vbF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNTkwMTQpLGNvbmZpZ19ob3N0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXyg0NDAxNCksX2NvbW1vbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oOTIyMTIpO2xldCBnZXRCaW5FeGlzdD1hc3luYyBvcHRpb25zPT57bGV0IHJlcz0oMCxfY29tbW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uUykoYXdhaXQgdXRpbHNfdG9vbF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLldZLmdldCgiIi5jb25jYXQoY29uZmlnX2hvc3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5CLCIvY2FyZC9iaW4vc2VhcmNoL2V4aXN0Iiksb3B0aW9ucykpO3JldHVybiByZXMuc3VjY2VzcyxyZXN9LGdldFBhcnRuZXJDYXRlZ29yeUxpc3Q9YXN5bmMgb3B0aW9ucz0+e2xldCByZXM9KDAsX2NvbW1vbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlMpKGF3YWl0IHV0aWxzX3Rvb2xfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5XWS5nZXQoIiIuY29uY2F0KGNvbmZpZ19ob3N0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQiwiL3BhcnRuZXIvY2F0ZWdvcnkvbGlzdCIpLG9wdGlvbnMpKTtyZXR1cm4gcmVzLnN1Y2Nlc3MscmVzfSxnZXRQYXJ0bmVyPWFzeW5jIG9wdGlvbnM9PntsZXQgcmVzPSgwLF9jb21tb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5TKShhd2FpdCB1dGlsc190b29sX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uV1kuZ2V0KCIiLmNvbmNhdChjb25maWdfaG9zdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkIsIi9wYXJ0bmVyL2xpc3QiKSxvcHRpb25zKSk7cmV0dXJuIHJlcy5zdWNjZXNzLHJlc319LDEwMjI3OmZ1bmN0aW9uKG1vZHVsZSxleHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5nZXREb21haW5Mb2NhbGU9ZnVuY3Rpb24ocGF0aCxsb2NhbGUsbG9jYWxlcyxkb21haW5Mb2NhbGVzKXt7bGV0IG5vcm1hbGl6ZUxvY2FsZVBhdGg9X193ZWJwYWNrX3JlcXVpcmVfXyg3MjU1NCkubm9ybWFsaXplTG9jYWxlUGF0aCxkZXRlY3REb21haW5Mb2NhbGU9X193ZWJwYWNrX3JlcXVpcmVfXyg4NDY0MykuZGV0ZWN0RG9tYWluTG9jYWxlLHRhcmdldD1sb2NhbGV8fG5vcm1hbGl6ZUxvY2FsZVBhdGgocGF0aCxsb2NhbGVzKS5kZXRlY3RlZExvY2FsZSxkb21haW49ZGV0ZWN0RG9tYWluTG9jYWxlKGRvbWFpbkxvY2FsZXMsdm9pZCAwLHRhcmdldCk7aWYoZG9tYWluKXtsZXQgcHJvdG89Imh0dHAiLmNvbmNhdChkb21haW4uaHR0cD8iIjoicyIsIjovLyIpLGZpbmFsTG9jYWxlPXRhcmdldD09PWRvbWFpbi5kZWZhdWx0TG9jYWxlPyIiOiIvIi5jb25jYXQodGFyZ2V0KTtyZXR1cm4iIi5jb25jYXQocHJvdG8pLmNvbmNhdChkb21haW4uZG9tYWluKS5jb25jYXQoIiIpLmNvbmNhdChmaW5hbExvY2FsZSkuY29uY2F0KHBhdGgpfXJldHVybiExfX0sKCJmdW5jdGlvbiI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2YgZXhwb3J0cy5kZWZhdWx0JiZudWxsIT09ZXhwb3J0cy5kZWZhdWx0KSYmdm9pZCAwPT09ZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCxleHBvcnRzKSxtb2R1bGUuZXhwb3J0cz1leHBvcnRzLmRlZmF1bHQpfSwxOTc0OTpmdW5jdGlvbihtb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuZGVmYXVsdD1mdW5jdGlvbihfcGFyYW0pe2xldCBibHVyV2lkdGgsYmx1ckhlaWdodDt2YXIgc3JjLHtzcmM6c3JjMSxzaXplcyx1bm9wdGltaXplZD0hMSxwcmlvcml0eT0hMSxsb2FkaW5nLGNsYXNzTmFtZSxxdWFsaXR5LHdpZHRoLGhlaWdodCxmaWxsLHN0eWxlLG9uTG9hZCxvbkxvYWRpbmdDb21wbGV0ZSxwbGFjZWhvbGRlcj0iZW1wdHkiLGJsdXJEYXRhVVJMLGxheW91dCxvYmplY3RGaXQsb2JqZWN0UG9zaXRpb24sbGF6eUJvdW5kYXJ5LGxhenlSb290fT1fcGFyYW0sYWxsPV9vYmplY3Rfd2l0aG91dF9wcm9wZXJ0aWVzX2xvb3NlKF9wYXJhbSxbInNyYyIsInNpemVzIiwidW5vcHRpbWl6ZWQiLCJwcmlvcml0eSIsImxvYWRpbmciLCJjbGFzc05hbWUiLCJxdWFsaXR5Iiwid2lkdGgiLCJoZWlnaHQiLCJmaWxsIiwic3R5bGUiLCJvbkxvYWQiLCJvbkxvYWRpbmdDb21wbGV0ZSIsInBsYWNlaG9sZGVyIiwiYmx1ckRhdGFVUkwiLCJsYXlvdXQiLCJvYmplY3RGaXQiLCJvYmplY3RQb3NpdGlvbiIsImxhenlCb3VuZGFyeSIsImxhenlSb290Il0pO2xldCBjb25maWdDb250ZXh0PV9yZWFjdC51c2VDb250ZXh0KF9pbWFnZUNvbmZpZ0NvbnRleHQuSW1hZ2VDb25maWdDb250ZXh0KSxjb25maWc9X3JlYWN0LnVzZU1lbW8oKCk9PntsZXQgYz1jb25maWdFbnZ8fGNvbmZpZ0NvbnRleHR8fF9pbWFnZUNvbmZpZy5pbWFnZUNvbmZpZ0RlZmF1bHQsYWxsU2l6ZXM9Wy4uLmMuZGV2aWNlU2l6ZXMsLi4uYy5pbWFnZVNpemVzXS5zb3J0KChhLGIpPT5hLWIpLGRldmljZVNpemVzPWMuZGV2aWNlU2l6ZXMuc29ydCgoYSxiKT0+YS1iKTtyZXR1cm4gX2V4dGVuZHMoe30sYyx7YWxsU2l6ZXMsZGV2aWNlU2l6ZXN9KX0sW2NvbmZpZ0NvbnRleHRdKSxyZXN0PWFsbCxsb2FkZXI9cmVzdC5sb2FkZXJ8fF9pbWFnZUxvYWRlci5kZWZhdWx0O2lmKGRlbGV0ZSByZXN0LmxvYWRlciwiX19uZXh0X2ltZ19kZWZhdWx0ImluIGxvYWRlcil7aWYoImN1c3RvbSI9PT1jb25maWcubG9hZGVyKXRocm93IEVycm9yKCdJbWFnZSB3aXRoIHNyYyAiJy5jb25jYXQoc3JjMSwnIiBpcyBtaXNzaW5nICJsb2FkZXIiIHByb3AuJykrIlxuUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LWltYWdlLW1pc3NpbmctbG9hZGVyIil9ZWxzZXtsZXQgY3VzdG9tSW1hZ2VMb2FkZXI9bG9hZGVyO2xvYWRlcj1vYmo9PntsZXR7Y29uZmlnOl99PW9iaixvcHRzPV9vYmplY3Rfd2l0aG91dF9wcm9wZXJ0aWVzX2xvb3NlKG9iaixbImNvbmZpZyJdKTtyZXR1cm4gY3VzdG9tSW1hZ2VMb2FkZXIob3B0cyl9fWlmKGxheW91dCl7ImZpbGwiPT09bGF5b3V0JiYoZmlsbD0hMCk7bGV0IGxheW91dFN0eWxlPXtpbnRyaW5zaWM6e21heFdpZHRoOiIxMDAlIixoZWlnaHQ6ImF1dG8ifSxyZXNwb25zaXZlOnt3aWR0aDoiMTAwJSIsaGVpZ2h0OiJhdXRvIn19W2xheW91dF07bGF5b3V0U3R5bGUmJihzdHlsZT1fZXh0ZW5kcyh7fSxzdHlsZSxsYXlvdXRTdHlsZSkpO2xldCBsYXlvdXRTaXplcz17cmVzcG9uc2l2ZToiMTAwdnciLGZpbGw6IjEwMHZ3In1bbGF5b3V0XTtsYXlvdXRTaXplcyYmIXNpemVzJiYoc2l6ZXM9bGF5b3V0U2l6ZXMpfWxldCBzdGF0aWNTcmM9IiIsd2lkdGhJbnQ9Z2V0SW50KHdpZHRoKSxoZWlnaHRJbnQ9Z2V0SW50KGhlaWdodCk7aWYoIm9iamVjdCI9PXR5cGVvZihzcmM9c3JjMSkmJihpc1N0YXRpY1JlcXVpcmUoc3JjKXx8dm9pZCAwIT09c3JjLnNyYykpe2xldCBzdGF0aWNJbWFnZURhdGE9aXNTdGF0aWNSZXF1aXJlKHNyYzEpP3NyYzEuZGVmYXVsdDpzcmMxO2lmKCFzdGF0aWNJbWFnZURhdGEuc3JjKXRocm93IEVycm9yKCJBbiBvYmplY3Qgc2hvdWxkIG9ubHkgYmUgcGFzc2VkIHRvIHRoZSBpbWFnZSBjb21wb25lbnQgc3JjIHBhcmFtZXRlciBpZiBpdCBjb21lcyBmcm9tIGEgc3RhdGljIGltYWdlIGltcG9ydC4gSXQgbXVzdCBpbmNsdWRlIHNyYy4gUmVjZWl2ZWQgIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkoc3RhdGljSW1hZ2VEYXRhKSkpO2lmKCFzdGF0aWNJbWFnZURhdGEuaGVpZ2h0fHwhc3RhdGljSW1hZ2VEYXRhLndpZHRoKXRocm93IEVycm9yKCJBbiBvYmplY3Qgc2hvdWxkIG9ubHkgYmUgcGFzc2VkIHRvIHRoZSBpbWFnZSBjb21wb25lbnQgc3JjIHBhcmFtZXRlciBpZiBpdCBjb21lcyBmcm9tIGEgc3RhdGljIGltYWdlIGltcG9ydC4gSXQgbXVzdCBpbmNsdWRlIGhlaWdodCBhbmQgd2lkdGguIFJlY2VpdmVkICIuY29uY2F0KEpTT04uc3RyaW5naWZ5KHN0YXRpY0ltYWdlRGF0YSkpKTtpZihibHVyV2lkdGg9c3RhdGljSW1hZ2VEYXRhLmJsdXJXaWR0aCxibHVySGVpZ2h0PXN0YXRpY0ltYWdlRGF0YS5ibHVySGVpZ2h0LGJsdXJEYXRhVVJMPWJsdXJEYXRhVVJMfHxzdGF0aWNJbWFnZURhdGEuYmx1ckRhdGFVUkwsc3RhdGljU3JjPXN0YXRpY0ltYWdlRGF0YS5zcmMsIWZpbGwpe2lmKHdpZHRoSW50fHxoZWlnaHRJbnQpe2lmKHdpZHRoSW50JiYhaGVpZ2h0SW50KXtsZXQgcmF0aW89d2lkdGhJbnQvc3RhdGljSW1hZ2VEYXRhLndpZHRoO2hlaWdodEludD1NYXRoLnJvdW5kKHN0YXRpY0ltYWdlRGF0YS5oZWlnaHQqcmF0aW8pfWVsc2UgaWYoIXdpZHRoSW50JiZoZWlnaHRJbnQpe2xldCByYXRpbzE9aGVpZ2h0SW50L3N0YXRpY0ltYWdlRGF0YS5oZWlnaHQ7d2lkdGhJbnQ9TWF0aC5yb3VuZChzdGF0aWNJbWFnZURhdGEud2lkdGgqcmF0aW8xKX19ZWxzZSB3aWR0aEludD1zdGF0aWNJbWFnZURhdGEud2lkdGgsaGVpZ2h0SW50PXN0YXRpY0ltYWdlRGF0YS5oZWlnaHR9fWxldCBpc0xhenk9IXByaW9yaXR5JiYoImxhenkiPT09bG9hZGluZ3x8dm9pZCAwPT09bG9hZGluZyk7KChzcmMxPSJzdHJpbmciPT10eXBlb2Ygc3JjMT9zcmMxOnN0YXRpY1NyYykuc3RhcnRzV2l0aCgiZGF0YToiKXx8c3JjMS5zdGFydHNXaXRoKCJibG9iOiIpKSYmKHVub3B0aW1pemVkPSEwLGlzTGF6eT0hMSksY29uZmlnLnVub3B0aW1pemVkJiYodW5vcHRpbWl6ZWQ9ITApO2xldFtibHVyQ29tcGxldGUsc2V0Qmx1ckNvbXBsZXRlXT1fcmVhY3QudXNlU3RhdGUoITEpLFtzaG93QWx0VGV4dCxzZXRTaG93QWx0VGV4dF09X3JlYWN0LnVzZVN0YXRlKCExKSxxdWFsaXR5SW50PWdldEludChxdWFsaXR5KSxpbWdTdHlsZT1PYmplY3QuYXNzaWduKGZpbGw/e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaGVpZ2h0OiIxMDAlIix3aWR0aDoiMTAwJSIsbGVmdDowLHRvcDowLHJpZ2h0OjAsYm90dG9tOjAsb2JqZWN0Rml0LG9iamVjdFBvc2l0aW9ufTp7fSxzaG93QWx0VGV4dD97fTp7Y29sb3I6InRyYW5zcGFyZW50In0sc3R5bGUpLGJsdXJTdHlsZT0iYmx1ciI9PT1wbGFjZWhvbGRlciYmYmx1ckRhdGFVUkwmJiFibHVyQ29tcGxldGU/e2JhY2tncm91bmRTaXplOmltZ1N0eWxlLm9iamVjdEZpdHx8ImNvdmVyIixiYWNrZ3JvdW5kUG9zaXRpb246aW1nU3R5bGUub2JqZWN0UG9zaXRpb258fCI1MCUgNTAlIixiYWNrZ3JvdW5kUmVwZWF0OiJuby1yZXBlYXQiLGJhY2tncm91bmRJbWFnZTondXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwnLmNvbmNhdChfaW1hZ2VCbHVyU3ZnLmdldEltYWdlQmx1clN2Zyh7d2lkdGhJbnQsaGVpZ2h0SW50LGJsdXJXaWR0aCxibHVySGVpZ2h0LGJsdXJEYXRhVVJMfSksJyIpJyl9Ont9LGltZ0F0dHJpYnV0ZXM9ZnVuY3Rpb24ocGFyYW0pe2xldHtjb25maWcsc3JjLHVub3B0aW1pemVkLHdpZHRoLHF1YWxpdHksc2l6ZXMsbG9hZGVyfT1wYXJhbTtpZih1bm9wdGltaXplZClyZXR1cm57c3JjLHNyY1NldDp2b2lkIDAsc2l6ZXM6dm9pZCAwfTtsZXR7d2lkdGhzLGtpbmR9PWZ1bmN0aW9uKHBhcmFtLHdpZHRoLHNpemVzKXtsZXR7ZGV2aWNlU2l6ZXMsYWxsU2l6ZXN9PXBhcmFtO2lmKHNpemVzKXtsZXQgdmlld3BvcnRXaWR0aFJlPS8oXnxccykoMT9cZD9cZCl2dy9nLHBlcmNlbnRTaXplcz1bXTtmb3IobGV0IG1hdGNoO21hdGNoPXZpZXdwb3J0V2lkdGhSZS5leGVjKHNpemVzKTttYXRjaClwZXJjZW50U2l6ZXMucHVzaChwYXJzZUludChtYXRjaFsyXSkpO2lmKHBlcmNlbnRTaXplcy5sZW5ndGgpe2xldCBzbWFsbGVzdFJhdGlvPS4wMSpNYXRoLm1pbiguLi5wZXJjZW50U2l6ZXMpO3JldHVybnt3aWR0aHM6YWxsU2l6ZXMuZmlsdGVyKHM9PnM+PWRldmljZVNpemVzWzBdKnNtYWxsZXN0UmF0aW8pLGtpbmQ6IncifX1yZXR1cm57d2lkdGhzOmFsbFNpemVzLGtpbmQ6IncifX1pZigibnVtYmVyIiE9dHlwZW9mIHdpZHRoKXJldHVybnt3aWR0aHM6ZGV2aWNlU2l6ZXMsa2luZDoidyJ9O2xldCB3aWR0aHM9Wy4uLm5ldyBTZXQoW3dpZHRoLDIqd2lkdGhdLm1hcCh3PT5hbGxTaXplcy5maW5kKHA9PnA+PXcpfHxhbGxTaXplc1thbGxTaXplcy5sZW5ndGgtMV0pKV07cmV0dXJue3dpZHRocyxraW5kOiJ4In19KGNvbmZpZyx3aWR0aCxzaXplcyksbGFzdD13aWR0aHMubGVuZ3RoLTE7cmV0dXJue3NpemVzOnNpemVzfHwidyIhPT1raW5kP3NpemVzOiIxMDB2dyIsc3JjU2V0OndpZHRocy5tYXAoKHcsaSk9PiIiLmNvbmNhdChsb2FkZXIoe2NvbmZpZyxzcmMscXVhbGl0eSx3aWR0aDp3fSksIiAiKS5jb25jYXQoInciPT09a2luZD93OmkrMSkuY29uY2F0KGtpbmQpKS5qb2luKCIsICIpLHNyYzpsb2FkZXIoe2NvbmZpZyxzcmMscXVhbGl0eSx3aWR0aDp3aWR0aHNbbGFzdF19KX19KHtjb25maWcsc3JjOnNyYzEsdW5vcHRpbWl6ZWQsd2lkdGg6d2lkdGhJbnQscXVhbGl0eTpxdWFsaXR5SW50LHNpemVzLGxvYWRlcn0pLHNyY1N0cmluZz1zcmMxLGxpbmtQcm9wcz17aW1hZ2VTcmNTZXQ6aW1nQXR0cmlidXRlcy5zcmNTZXQsaW1hZ2VTaXplczppbWdBdHRyaWJ1dGVzLnNpemVzLGNyb3NzT3JpZ2luOnJlc3QuY3Jvc3NPcmlnaW59LG9uTG9hZFJlZj1fcmVhY3QudXNlUmVmKG9uTG9hZCk7X3JlYWN0LnVzZUVmZmVjdCgoKT0+e29uTG9hZFJlZi5jdXJyZW50PW9uTG9hZH0sW29uTG9hZF0pO2xldCBvbkxvYWRpbmdDb21wbGV0ZVJlZj1fcmVhY3QudXNlUmVmKG9uTG9hZGluZ0NvbXBsZXRlKTtfcmVhY3QudXNlRWZmZWN0KCgpPT57b25Mb2FkaW5nQ29tcGxldGVSZWYuY3VycmVudD1vbkxvYWRpbmdDb21wbGV0ZX0sW29uTG9hZGluZ0NvbXBsZXRlXSk7bGV0IGltZ0VsZW1lbnRBcmdzPV9leHRlbmRzKHtpc0xhenksaW1nQXR0cmlidXRlcyxoZWlnaHRJbnQsd2lkdGhJbnQscXVhbGl0eUludCxjbGFzc05hbWUsaW1nU3R5bGUsYmx1clN0eWxlLGxvYWRpbmcsY29uZmlnLGZpbGwsdW5vcHRpbWl6ZWQscGxhY2Vob2xkZXIsbG9hZGVyLHNyY1N0cmluZyxvbkxvYWRSZWYsb25Mb2FkaW5nQ29tcGxldGVSZWYsc2V0Qmx1ckNvbXBsZXRlLHNldFNob3dBbHRUZXh0fSxyZXN0KTtyZXR1cm4gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfcmVhY3QuZGVmYXVsdC5GcmFnbWVudCxudWxsLF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoSW1hZ2VFbGVtZW50LE9iamVjdC5hc3NpZ24oe30saW1nRWxlbWVudEFyZ3MpKSxwcmlvcml0eT9fcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9oZWFkLmRlZmF1bHQsbnVsbCxfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJsaW5rIixPYmplY3QuYXNzaWduKHtrZXk6Il9fbmltZy0iK2ltZ0F0dHJpYnV0ZXMuc3JjK2ltZ0F0dHJpYnV0ZXMuc3JjU2V0K2ltZ0F0dHJpYnV0ZXMuc2l6ZXMscmVsOiJwcmVsb2FkIixhczoiaW1hZ2UiLGhyZWY6aW1nQXR0cmlidXRlcy5zcmNTZXQ/dm9pZCAwOmltZ0F0dHJpYnV0ZXMuc3JjfSxsaW5rUHJvcHMpKSk6bnVsbCl9O3ZhciBfZXh0ZW5kcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY0OTUpLlosX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0PV9fd2VicGFja19yZXF1aXJlX18oOTI2NDgpLlosX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDkxNTk4KS5aLF9vYmplY3Rfd2l0aG91dF9wcm9wZXJ0aWVzX2xvb3NlPV9fd2VicGFja19yZXF1aXJlX18oMTcyNzMpLlosX3JlYWN0PV9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQoX193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCkpLF9oZWFkPV9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChfX3dlYnBhY2tfcmVxdWlyZV9fKDgzMTIxKSksX2ltYWdlQmx1clN2Zz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI2NzUpLF9pbWFnZUNvbmZpZz1fX3dlYnBhY2tfcmVxdWlyZV9fKDEwMTM5KSxfaW1hZ2VDb25maWdDb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oMjg3MzApO19fd2VicGFja19yZXF1aXJlX18oNTcyMzgpO3ZhciBfaW1hZ2VMb2FkZXI9X2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KF9fd2VicGFja19yZXF1aXJlX18oODk4MjQpKTtsZXQgY29uZmlnRW52PXtkZXZpY2VTaXplczpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OF0saW1hZ2VTaXplczpbMTYsMzIsNDgsNjQsOTYsMTI4LDI1NiwzODRdLHBhdGg6Ii9fbmV4dC9pbWFnZSIsbG9hZGVyOiJkZWZhdWx0IixkYW5nZXJvdXNseUFsbG93U1ZHOiExLHVub3B0aW1pemVkOiExfTtmdW5jdGlvbiBpc1N0YXRpY1JlcXVpcmUoc3JjKXtyZXR1cm4gdm9pZCAwIT09c3JjLmRlZmF1bHR9ZnVuY3Rpb24gZ2V0SW50KHgpe3JldHVybiJudW1iZXIiPT10eXBlb2YgeHx8dm9pZCAwPT09eD94OiJzdHJpbmciPT10eXBlb2YgeCYmL15bMC05XSskLy50ZXN0KHgpP3BhcnNlSW50KHgsMTApOk5hTn1mdW5jdGlvbiBoYW5kbGVMb2FkaW5nKGltZyxzcmMscGxhY2Vob2xkZXIsb25Mb2FkUmVmLG9uTG9hZGluZ0NvbXBsZXRlUmVmLHNldEJsdXJDb21wbGV0ZSx1bm9wdGltaXplZCl7aWYoIWltZ3x8aW1nWyJkYXRhLWxvYWRlZC1zcmMiXT09PXNyYylyZXR1cm47aW1nWyJkYXRhLWxvYWRlZC1zcmMiXT1zcmM7bGV0IHA9ImRlY29kZSJpbiBpbWc/aW1nLmRlY29kZSgpOlByb21pc2UucmVzb2x2ZSgpO3AuY2F0Y2goKCk9Pnt9KS50aGVuKCgpPT57aWYoaW1nLnBhcmVudE5vZGUpe2lmKCJibHVyIj09PXBsYWNlaG9sZGVyJiZzZXRCbHVyQ29tcGxldGUoITApLG51bGw9PW9uTG9hZFJlZj92b2lkIDA6b25Mb2FkUmVmLmN1cnJlbnQpe2xldCBldmVudD1uZXcgRXZlbnQoImxvYWQiKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXZlbnQsInRhcmdldCIse3dyaXRhYmxlOiExLHZhbHVlOmltZ30pO2xldCBwcmV2ZW50ZWQ9ITEsc3RvcHBlZD0hMTtvbkxvYWRSZWYuY3VycmVudChfZXh0ZW5kcyh7fSxldmVudCx7bmF0aXZlRXZlbnQ6ZXZlbnQsY3VycmVudFRhcmdldDppbWcsdGFyZ2V0OmltZyxpc0RlZmF1bHRQcmV2ZW50ZWQ6KCk9PnByZXZlbnRlZCxpc1Byb3BhZ2F0aW9uU3RvcHBlZDooKT0+c3RvcHBlZCxwZXJzaXN0KCl7fSxwcmV2ZW50RGVmYXVsdCgpe3ByZXZlbnRlZD0hMCxldmVudC5wcmV2ZW50RGVmYXVsdCgpfSxzdG9wUHJvcGFnYXRpb24oKXtzdG9wcGVkPSEwLGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpfX0pKX0obnVsbD09b25Mb2FkaW5nQ29tcGxldGVSZWY/dm9pZCAwOm9uTG9hZGluZ0NvbXBsZXRlUmVmLmN1cnJlbnQpJiZvbkxvYWRpbmdDb21wbGV0ZVJlZi5jdXJyZW50KGltZyl9fSl9bGV0IEltYWdlRWxlbWVudD1fcGFyYW09Pnt2YXJ7aW1nQXR0cmlidXRlcyxoZWlnaHRJbnQsd2lkdGhJbnQscXVhbGl0eUludCxjbGFzc05hbWUsaW1nU3R5bGUsYmx1clN0eWxlLGlzTGF6eSxmaWxsLHBsYWNlaG9sZGVyLGxvYWRpbmcsc3JjU3RyaW5nLGNvbmZpZyx1bm9wdGltaXplZCxsb2FkZXIsb25Mb2FkUmVmLG9uTG9hZGluZ0NvbXBsZXRlUmVmLHNldEJsdXJDb21wbGV0ZSxzZXRTaG93QWx0VGV4dCxvbkxvYWQsb25FcnJvcn09X3BhcmFtLHJlc3Q9X29iamVjdF93aXRob3V0X3Byb3BlcnRpZXNfbG9vc2UoX3BhcmFtLFsiaW1nQXR0cmlidXRlcyIsImhlaWdodEludCIsIndpZHRoSW50IiwicXVhbGl0eUludCIsImNsYXNzTmFtZSIsImltZ1N0eWxlIiwiYmx1clN0eWxlIiwiaXNMYXp5IiwiZmlsbCIsInBsYWNlaG9sZGVyIiwibG9hZGluZyIsInNyY1N0cmluZyIsImNvbmZpZyIsInVub3B0aW1pemVkIiwibG9hZGVyIiwib25Mb2FkUmVmIiwib25Mb2FkaW5nQ29tcGxldGVSZWYiLCJzZXRCbHVyQ29tcGxldGUiLCJzZXRTaG93QWx0VGV4dCIsIm9uTG9hZCIsIm9uRXJyb3IiXSk7cmV0dXJuIGxvYWRpbmc9aXNMYXp5PyJsYXp5Ijpsb2FkaW5nLF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX3JlYWN0LmRlZmF1bHQuRnJhZ21lbnQsbnVsbCxfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJpbWciLE9iamVjdC5hc3NpZ24oe30scmVzdCxpbWdBdHRyaWJ1dGVzLHt3aWR0aDp3aWR0aEludCxoZWlnaHQ6aGVpZ2h0SW50LGRlY29kaW5nOiJhc3luYyIsImRhdGEtbmltZyI6ZmlsbD8iZmlsbCI6IjEiLGNsYXNzTmFtZTpjbGFzc05hbWUsbG9hZGluZzpsb2FkaW5nLHN0eWxlOl9leHRlbmRzKHt9LGltZ1N0eWxlLGJsdXJTdHlsZSkscmVmOl9yZWFjdC51c2VDYWxsYmFjayhpbWc9PntpbWcmJihvbkVycm9yJiYoaW1nLnNyYz1pbWcuc3JjKSxpbWcuY29tcGxldGUmJmhhbmRsZUxvYWRpbmcoaW1nLHNyY1N0cmluZyxwbGFjZWhvbGRlcixvbkxvYWRSZWYsb25Mb2FkaW5nQ29tcGxldGVSZWYsc2V0Qmx1ckNvbXBsZXRlLHVub3B0aW1pemVkKSl9LFtzcmNTdHJpbmcscGxhY2Vob2xkZXIsb25Mb2FkUmVmLG9uTG9hZGluZ0NvbXBsZXRlUmVmLHNldEJsdXJDb21wbGV0ZSxvbkVycm9yLHVub3B0aW1pemVkXSksb25Mb2FkKGV2ZW50KXtsZXQgaW1nPWV2ZW50LmN1cnJlbnRUYXJnZXQ7aGFuZGxlTG9hZGluZyhpbWcsc3JjU3RyaW5nLHBsYWNlaG9sZGVyLG9uTG9hZFJlZixvbkxvYWRpbmdDb21wbGV0ZVJlZixzZXRCbHVyQ29tcGxldGUsdW5vcHRpbWl6ZWQpfSxvbkVycm9yKGV2ZW50KXtzZXRTaG93QWx0VGV4dCghMCksImJsdXIiPT09cGxhY2Vob2xkZXImJnNldEJsdXJDb21wbGV0ZSghMCksb25FcnJvciYmb25FcnJvcihldmVudCl9fSkpKX07KCJmdW5jdGlvbiI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2YgZXhwb3J0cy5kZWZhdWx0JiZudWxsIT09ZXhwb3J0cy5kZWZhdWx0KSYmdm9pZCAwPT09ZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCxleHBvcnRzKSxtb2R1bGUuZXhwb3J0cz1leHBvcnRzLmRlZmF1bHQpfSwzMTU1MTpmdW5jdGlvbihtb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuZGVmYXVsdD12b2lkIDA7dmFyIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDkyNjQ4KS5aLF9vYmplY3Rfd2l0aG91dF9wcm9wZXJ0aWVzX2xvb3NlPV9fd2VicGFja19yZXF1aXJlX18oMTcyNzMpLlosX3JlYWN0PV9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChfX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSksX3JvdXRlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDQxMDAzKSxfZm9ybWF0VXJsPV9fd2VicGFja19yZXF1aXJlX18oNjc3OTUpLF9hZGRMb2NhbGU9X193ZWJwYWNrX3JlcXVpcmVfXyg1NDQ2NSksX3JvdXRlckNvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg3MjY5MiksX2FwcFJvdXRlckNvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg0ODI0NSksX3VzZUludGVyc2VjdGlvbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDY5MjQ2KSxfZ2V0RG9tYWluTG9jYWxlPV9fd2VicGFja19yZXF1aXJlX18oMTAyMjcpLF9hZGRCYXNlUGF0aD1fX3dlYnBhY2tfcmVxdWlyZV9fKDMzNDY4KTtsZXQgcHJlZmV0Y2hlZD1uZXcgU2V0O2Z1bmN0aW9uIHByZWZldGNoKHJvdXRlcixocmVmLGFzLG9wdGlvbnMpe2lmKF9yb3V0ZXIuaXNMb2NhbFVSTChocmVmKSl7aWYoIW9wdGlvbnMuYnlwYXNzUHJlZmV0Y2hlZENoZWNrKXtsZXQgbG9jYWxlPXZvaWQgMCE9PW9wdGlvbnMubG9jYWxlP29wdGlvbnMubG9jYWxlOiJsb2NhbGUiaW4gcm91dGVyP3JvdXRlci5sb2NhbGU6dm9pZCAwLHByZWZldGNoZWRLZXk9aHJlZisiJSIrYXMrIiUiK2xvY2FsZTtpZihwcmVmZXRjaGVkLmhhcyhwcmVmZXRjaGVkS2V5KSlyZXR1cm47cHJlZmV0Y2hlZC5hZGQocHJlZmV0Y2hlZEtleSl9UHJvbWlzZS5yZXNvbHZlKHJvdXRlci5wcmVmZXRjaChocmVmLGFzLG9wdGlvbnMpKS5jYXRjaChlcnI9Pnt9KX19ZnVuY3Rpb24gZm9ybWF0U3RyaW5nT3JVcmwodXJsT2JqT3JTdHJpbmcpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdXJsT2JqT3JTdHJpbmc/dXJsT2JqT3JTdHJpbmc6X2Zvcm1hdFVybC5mb3JtYXRVcmwodXJsT2JqT3JTdHJpbmcpfWxldCBMaW5rPV9yZWFjdC5kZWZhdWx0LmZvcndhcmRSZWYoZnVuY3Rpb24ocHJvcHMsZm9yd2FyZGVkUmVmKXtsZXQgY2hpbGRyZW4sY2hpbGQ7bGV0e2hyZWY6aHJlZlByb3AsYXM6YXNQcm9wLGNoaWxkcmVuOmNoaWxkcmVuUHJvcCxwcmVmZXRjaDpwcmVmZXRjaFByb3AscGFzc0hyZWYscmVwbGFjZSxzaGFsbG93LHNjcm9sbCxsb2NhbGUsb25DbGljayxvbk1vdXNlRW50ZXI6b25Nb3VzZUVudGVyUHJvcCxvblRvdWNoU3RhcnQ6b25Ub3VjaFN0YXJ0UHJvcCxsZWdhY3lCZWhhdmlvcj0hMCE9PUJvb2xlYW4oITApfT1wcm9wcyxyZXN0UHJvcHM9X29iamVjdF93aXRob3V0X3Byb3BlcnRpZXNfbG9vc2UocHJvcHMsWyJocmVmIiwiYXMiLCJjaGlsZHJlbiIsInByZWZldGNoIiwicGFzc0hyZWYiLCJyZXBsYWNlIiwic2hhbGxvdyIsInNjcm9sbCIsImxvY2FsZSIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJvblRvdWNoU3RhcnQiLCJsZWdhY3lCZWhhdmlvciJdKTtjaGlsZHJlbj1jaGlsZHJlblByb3AsbGVnYWN5QmVoYXZpb3ImJigic3RyaW5nIj09dHlwZW9mIGNoaWxkcmVufHwibnVtYmVyIj09dHlwZW9mIGNoaWxkcmVuKSYmKGNoaWxkcmVuPV9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImEiLG51bGwsY2hpbGRyZW4pKTtsZXQgcHJlZmV0Y2hFbmFibGVkPSExIT09cHJlZmV0Y2hQcm9wLHBhZ2VzUm91dGVyPV9yZWFjdC5kZWZhdWx0LnVzZUNvbnRleHQoX3JvdXRlckNvbnRleHQuUm91dGVyQ29udGV4dCksYXBwUm91dGVyPV9yZWFjdC5kZWZhdWx0LnVzZUNvbnRleHQoX2FwcFJvdXRlckNvbnRleHQuQXBwUm91dGVyQ29udGV4dCkscm91dGVyPW51bGwhPXBhZ2VzUm91dGVyP3BhZ2VzUm91dGVyOmFwcFJvdXRlcixpc0FwcFJvdXRlcj0hcGFnZXNSb3V0ZXIse2hyZWYsYXN9PV9yZWFjdC5kZWZhdWx0LnVzZU1lbW8oKCk9PntpZighcGFnZXNSb3V0ZXIpe2xldCByZXNvbHZlZEhyZWY9Zm9ybWF0U3RyaW5nT3JVcmwoaHJlZlByb3ApO3JldHVybntocmVmOnJlc29sdmVkSHJlZixhczphc1Byb3A/Zm9ybWF0U3RyaW5nT3JVcmwoYXNQcm9wKTpyZXNvbHZlZEhyZWZ9fWxldFtyZXNvbHZlZEhyZWYxLHJlc29sdmVkQXNdPV9yb3V0ZXIucmVzb2x2ZUhyZWYocGFnZXNSb3V0ZXIsaHJlZlByb3AsITApO3JldHVybntocmVmOnJlc29sdmVkSHJlZjEsYXM6YXNQcm9wP19yb3V0ZXIucmVzb2x2ZUhyZWYocGFnZXNSb3V0ZXIsYXNQcm9wKTpyZXNvbHZlZEFzfHxyZXNvbHZlZEhyZWYxfX0sW3BhZ2VzUm91dGVyLGhyZWZQcm9wLGFzUHJvcF0pLHByZXZpb3VzSHJlZj1fcmVhY3QuZGVmYXVsdC51c2VSZWYoaHJlZikscHJldmlvdXNBcz1fcmVhY3QuZGVmYXVsdC51c2VSZWYoYXMpO2xlZ2FjeUJlaGF2aW9yJiYoY2hpbGQ9X3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4ub25seShjaGlsZHJlbikpO2xldCBjaGlsZFJlZj1sZWdhY3lCZWhhdmlvcj9jaGlsZCYmIm9iamVjdCI9PXR5cGVvZiBjaGlsZCYmY2hpbGQucmVmOmZvcndhcmRlZFJlZixbc2V0SW50ZXJzZWN0aW9uUmVmLGlzVmlzaWJsZSxyZXNldFZpc2libGVdPV91c2VJbnRlcnNlY3Rpb24udXNlSW50ZXJzZWN0aW9uKHtyb290TWFyZ2luOiIyMDBweCJ9KSxzZXRSZWY9X3JlYWN0LmRlZmF1bHQudXNlQ2FsbGJhY2soZWw9PnsocHJldmlvdXNBcy5jdXJyZW50IT09YXN8fHByZXZpb3VzSHJlZi5jdXJyZW50IT09aHJlZikmJihyZXNldFZpc2libGUoKSxwcmV2aW91c0FzLmN1cnJlbnQ9YXMscHJldmlvdXNIcmVmLmN1cnJlbnQ9aHJlZiksc2V0SW50ZXJzZWN0aW9uUmVmKGVsKSxjaGlsZFJlZiYmKCJmdW5jdGlvbiI9PXR5cGVvZiBjaGlsZFJlZj9jaGlsZFJlZihlbCk6Im9iamVjdCI9PXR5cGVvZiBjaGlsZFJlZiYmKGNoaWxkUmVmLmN1cnJlbnQ9ZWwpKX0sW2FzLGNoaWxkUmVmLGhyZWYscmVzZXRWaXNpYmxlLHNldEludGVyc2VjdGlvblJlZl0pO19yZWFjdC5kZWZhdWx0LnVzZUVmZmVjdCgoKT0+e3JvdXRlciYmaXNWaXNpYmxlJiZwcmVmZXRjaEVuYWJsZWQmJnByZWZldGNoKHJvdXRlcixocmVmLGFzLHtsb2NhbGV9KX0sW2FzLGhyZWYsaXNWaXNpYmxlLGxvY2FsZSxwcmVmZXRjaEVuYWJsZWQsbnVsbD09cGFnZXNSb3V0ZXI/dm9pZCAwOnBhZ2VzUm91dGVyLmxvY2FsZSxyb3V0ZXJdKTtsZXQgY2hpbGRQcm9wcz17cmVmOnNldFJlZixvbkNsaWNrKGUpe2xlZ2FjeUJlaGF2aW9yfHwiZnVuY3Rpb24iIT10eXBlb2Ygb25DbGlja3x8b25DbGljayhlKSxsZWdhY3lCZWhhdmlvciYmY2hpbGQucHJvcHMmJiJmdW5jdGlvbiI9PXR5cGVvZiBjaGlsZC5wcm9wcy5vbkNsaWNrJiZjaGlsZC5wcm9wcy5vbkNsaWNrKGUpLHJvdXRlciYmIWUuZGVmYXVsdFByZXZlbnRlZCYmZnVuY3Rpb24oZSxyb3V0ZXIsaHJlZixhcyxyZXBsYWNlLHNoYWxsb3csc2Nyb2xsLGxvY2FsZSxpc0FwcFJvdXRlcixwcmVmZXRjaEVuYWJsZWQpe2xldHtub2RlTmFtZX09ZS5jdXJyZW50VGFyZ2V0LGlzQW5jaG9yTm9kZU5hbWU9IkEiPT09bm9kZU5hbWUudG9VcHBlckNhc2UoKTtpZihpc0FuY2hvck5vZGVOYW1lJiYoZnVuY3Rpb24oZXZlbnQpe2xldHt0YXJnZXR9PWV2ZW50LmN1cnJlbnRUYXJnZXQ7cmV0dXJuIHRhcmdldCYmIl9zZWxmIiE9PXRhcmdldHx8ZXZlbnQubWV0YUtleXx8ZXZlbnQuY3RybEtleXx8ZXZlbnQuc2hpZnRLZXl8fGV2ZW50LmFsdEtleXx8ZXZlbnQubmF0aXZlRXZlbnQmJjI9PT1ldmVudC5uYXRpdmVFdmVudC53aGljaH0oZSl8fCFfcm91dGVyLmlzTG9jYWxVUkwoaHJlZikpKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCk7bGV0IG5hdmlnYXRlPSgpPT57ImJlZm9yZVBvcFN0YXRlImluIHJvdXRlcj9yb3V0ZXJbcmVwbGFjZT8icmVwbGFjZSI6InB1c2giXShocmVmLGFzLHtzaGFsbG93LGxvY2FsZSxzY3JvbGx9KTpyb3V0ZXJbcmVwbGFjZT8icmVwbGFjZSI6InB1c2giXShhc3x8aHJlZix7Zm9yY2VPcHRpbWlzdGljTmF2aWdhdGlvbjohcHJlZmV0Y2hFbmFibGVkfSl9O2lzQXBwUm91dGVyP19yZWFjdC5kZWZhdWx0LnN0YXJ0VHJhbnNpdGlvbihuYXZpZ2F0ZSk6bmF2aWdhdGUoKX0oZSxyb3V0ZXIsaHJlZixhcyxyZXBsYWNlLHNoYWxsb3csc2Nyb2xsLGxvY2FsZSxpc0FwcFJvdXRlcixwcmVmZXRjaEVuYWJsZWQpfSxvbk1vdXNlRW50ZXIoZSl7bGVnYWN5QmVoYXZpb3J8fCJmdW5jdGlvbiIhPXR5cGVvZiBvbk1vdXNlRW50ZXJQcm9wfHxvbk1vdXNlRW50ZXJQcm9wKGUpLGxlZ2FjeUJlaGF2aW9yJiZjaGlsZC5wcm9wcyYmImZ1bmN0aW9uIj09dHlwZW9mIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlciYmY2hpbGQucHJvcHMub25Nb3VzZUVudGVyKGUpLHJvdXRlciYmKHByZWZldGNoRW5hYmxlZHx8IWlzQXBwUm91dGVyKSYmcHJlZmV0Y2gocm91dGVyLGhyZWYsYXMse2xvY2FsZSxwcmlvcml0eTohMCxieXBhc3NQcmVmZXRjaGVkQ2hlY2s6ITB9KX0sb25Ub3VjaFN0YXJ0KGUpe2xlZ2FjeUJlaGF2aW9yfHwiZnVuY3Rpb24iIT10eXBlb2Ygb25Ub3VjaFN0YXJ0UHJvcHx8b25Ub3VjaFN0YXJ0UHJvcChlKSxsZWdhY3lCZWhhdmlvciYmY2hpbGQucHJvcHMmJiJmdW5jdGlvbiI9PXR5cGVvZiBjaGlsZC5wcm9wcy5vblRvdWNoU3RhcnQmJmNoaWxkLnByb3BzLm9uVG91Y2hTdGFydChlKSxyb3V0ZXImJihwcmVmZXRjaEVuYWJsZWR8fCFpc0FwcFJvdXRlcikmJnByZWZldGNoKHJvdXRlcixocmVmLGFzLHtsb2NhbGUscHJpb3JpdHk6ITAsYnlwYXNzUHJlZmV0Y2hlZENoZWNrOiEwfSl9fTtpZighbGVnYWN5QmVoYXZpb3J8fHBhc3NIcmVmfHwiYSI9PT1jaGlsZC50eXBlJiYhKCJocmVmImluIGNoaWxkLnByb3BzKSl7bGV0IGN1ckxvY2FsZT12b2lkIDAhPT1sb2NhbGU/bG9jYWxlOm51bGw9PXBhZ2VzUm91dGVyP3ZvaWQgMDpwYWdlc1JvdXRlci5sb2NhbGUsbG9jYWxlRG9tYWluPShudWxsPT1wYWdlc1JvdXRlcj92b2lkIDA6cGFnZXNSb3V0ZXIuaXNMb2NhbGVEb21haW4pJiZfZ2V0RG9tYWluTG9jYWxlLmdldERvbWFpbkxvY2FsZShhcyxjdXJMb2NhbGUsbnVsbD09cGFnZXNSb3V0ZXI/dm9pZCAwOnBhZ2VzUm91dGVyLmxvY2FsZXMsbnVsbD09cGFnZXNSb3V0ZXI/dm9pZCAwOnBhZ2VzUm91dGVyLmRvbWFpbkxvY2FsZXMpO2NoaWxkUHJvcHMuaHJlZj1sb2NhbGVEb21haW58fF9hZGRCYXNlUGF0aC5hZGRCYXNlUGF0aChfYWRkTG9jYWxlLmFkZExvY2FsZShhcyxjdXJMb2NhbGUsbnVsbD09cGFnZXNSb3V0ZXI/dm9pZCAwOnBhZ2VzUm91dGVyLmRlZmF1bHRMb2NhbGUpKX1yZXR1cm4gbGVnYWN5QmVoYXZpb3I/X3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGNoaWxkLGNoaWxkUHJvcHMpOl9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImEiLE9iamVjdC5hc3NpZ24oe30scmVzdFByb3BzLGNoaWxkUHJvcHMpLGNoaWxkcmVuKX0pO2V4cG9ydHMuZGVmYXVsdD1MaW5rLCgiZnVuY3Rpb24iPT10eXBlb2YgZXhwb3J0cy5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMuZGVmYXVsdCYmbnVsbCE9PWV4cG9ydHMuZGVmYXVsdCkmJnZvaWQgMD09PWV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsZXhwb3J0cyksbW9kdWxlLmV4cG9ydHM9ZXhwb3J0cy5kZWZhdWx0KX0sNzI1NTQ6ZnVuY3Rpb24obW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxleHBvcnRzLm5vcm1hbGl6ZUxvY2FsZVBhdGg9dm9pZCAwO2xldCBub3JtYWxpemVMb2NhbGVQYXRoPShwYXRobmFtZSxsb2NhbGVzKT0+X193ZWJwYWNrX3JlcXVpcmVfXygyNDc2OSkubm9ybWFsaXplTG9jYWxlUGF0aChwYXRobmFtZSxsb2NhbGVzKTtleHBvcnRzLm5vcm1hbGl6ZUxvY2FsZVBhdGg9bm9ybWFsaXplTG9jYWxlUGF0aCwoImZ1bmN0aW9uIj09dHlwZW9mIGV4cG9ydHMuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHQmJm51bGwhPT1leHBvcnRzLmRlZmF1bHQpJiZ2b2lkIDA9PT1leHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LGV4cG9ydHMpLG1vZHVsZS5leHBvcnRzPWV4cG9ydHMuZGVmYXVsdCl9LDY5MjQ2OmZ1bmN0aW9uKG1vZHVsZSxleHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy51c2VJbnRlcnNlY3Rpb249ZnVuY3Rpb24ocGFyYW0pe2xldHtyb290UmVmLHJvb3RNYXJnaW4sZGlzYWJsZWR9PXBhcmFtLGlzRGlzYWJsZWQ9ZGlzYWJsZWR8fCFoYXNJbnRlcnNlY3Rpb25PYnNlcnZlcixbdmlzaWJsZSxzZXRWaXNpYmxlXT1fcmVhY3QudXNlU3RhdGUoITEpLFtlbGVtZW50LHNldEVsZW1lbnRdPV9yZWFjdC51c2VTdGF0ZShudWxsKTtfcmVhY3QudXNlRWZmZWN0KCgpPT57aWYoaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpe2lmKCFpc0Rpc2FibGVkJiYhdmlzaWJsZSYmZWxlbWVudCYmZWxlbWVudC50YWdOYW1lKXtsZXQgdW5vYnNlcnZlPWZ1bmN0aW9uKGVsZW1lbnQsY2FsbGJhY2ssb3B0aW9ucyl7bGV0e2lkLG9ic2VydmVyLGVsZW1lbnRzfT1mdW5jdGlvbihvcHRpb25zKXtsZXQgaW5zdGFuY2U7bGV0IGlkPXtyb290Om9wdGlvbnMucm9vdHx8bnVsbCxtYXJnaW46b3B0aW9ucy5yb290TWFyZ2lufHwiIn0sZXhpc3Rpbmc9aWRMaXN0LmZpbmQob2JqPT5vYmoucm9vdD09PWlkLnJvb3QmJm9iai5tYXJnaW49PT1pZC5tYXJnaW4pO2lmKGV4aXN0aW5nJiYoaW5zdGFuY2U9b2JzZXJ2ZXJzLmdldChleGlzdGluZykpKXJldHVybiBpbnN0YW5jZTtsZXQgZWxlbWVudHM9bmV3IE1hcCxvYnNlcnZlcj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZW50cmllcz0+e2VudHJpZXMuZm9yRWFjaChlbnRyeT0+e2xldCBjYWxsYmFjaz1lbGVtZW50cy5nZXQoZW50cnkudGFyZ2V0KSxpc1Zpc2libGU9ZW50cnkuaXNJbnRlcnNlY3Rpbmd8fGVudHJ5LmludGVyc2VjdGlvblJhdGlvPjA7Y2FsbGJhY2smJmlzVmlzaWJsZSYmY2FsbGJhY2soaXNWaXNpYmxlKX0pfSxvcHRpb25zKTtyZXR1cm4gaW5zdGFuY2U9e2lkLG9ic2VydmVyLGVsZW1lbnRzfSxpZExpc3QucHVzaChpZCksb2JzZXJ2ZXJzLnNldChpZCxpbnN0YW5jZSksaW5zdGFuY2V9KG9wdGlvbnMpO3JldHVybiBlbGVtZW50cy5zZXQoZWxlbWVudCxjYWxsYmFjayksb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50KSxmdW5jdGlvbigpe2lmKGVsZW1lbnRzLmRlbGV0ZShlbGVtZW50KSxvYnNlcnZlci51bm9ic2VydmUoZWxlbWVudCksMD09PWVsZW1lbnRzLnNpemUpe29ic2VydmVyLmRpc2Nvbm5lY3QoKSxvYnNlcnZlcnMuZGVsZXRlKGlkKTtsZXQgaW5kZXg9aWRMaXN0LmZpbmRJbmRleChvYmo9Pm9iai5yb290PT09aWQucm9vdCYmb2JqLm1hcmdpbj09PWlkLm1hcmdpbik7aW5kZXg+LTEmJmlkTGlzdC5zcGxpY2UoaW5kZXgsMSl9fX0oZWxlbWVudCxpc1Zpc2libGU9PmlzVmlzaWJsZSYmc2V0VmlzaWJsZShpc1Zpc2libGUpLHtyb290Om51bGw9PXJvb3RSZWY/dm9pZCAwOnJvb3RSZWYuY3VycmVudCxyb290TWFyZ2lufSk7cmV0dXJuIHVub2JzZXJ2ZX19ZWxzZSBpZighdmlzaWJsZSl7bGV0IGlkbGVDYWxsYmFjaz1fcmVxdWVzdElkbGVDYWxsYmFjay5yZXF1ZXN0SWRsZUNhbGxiYWNrKCgpPT5zZXRWaXNpYmxlKCEwKSk7cmV0dXJuKCk9Pl9yZXF1ZXN0SWRsZUNhbGxiYWNrLmNhbmNlbElkbGVDYWxsYmFjayhpZGxlQ2FsbGJhY2spfX0sW2VsZW1lbnQsaXNEaXNhYmxlZCxyb290TWFyZ2luLHJvb3RSZWYsdmlzaWJsZV0pO2xldCByZXNldFZpc2libGU9X3JlYWN0LnVzZUNhbGxiYWNrKCgpPT57c2V0VmlzaWJsZSghMSl9LFtdKTtyZXR1cm5bc2V0RWxlbWVudCx2aXNpYmxlLHJlc2V0VmlzaWJsZV19O3ZhciBfcmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksX3JlcXVlc3RJZGxlQ2FsbGJhY2s9X193ZWJwYWNrX3JlcXVpcmVfXyg0NDY4Nik7bGV0IGhhc0ludGVyc2VjdGlvbk9ic2VydmVyPSJmdW5jdGlvbiI9PXR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlcixvYnNlcnZlcnM9bmV3IE1hcCxpZExpc3Q9W107KCJmdW5jdGlvbiI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2YgZXhwb3J0cy5kZWZhdWx0JiZudWxsIT09ZXhwb3J0cy5kZWZhdWx0KSYmdm9pZCAwPT09ZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCxleHBvcnRzKSxtb2R1bGUuZXhwb3J0cz1leHBvcnRzLmRlZmF1bHQpfSwzNzY0NTpmdW5jdGlvbihtb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuZGVmYXVsdD1mdW5jdGlvbihkeW5hbWljT3B0aW9ucyxvcHRpb25zKXtsZXQgbG9hZGFibGVGbj1fbG9hZGFibGUuZGVmYXVsdCxsb2FkYWJsZU9wdGlvbnM9KG51bGw9PW9wdGlvbnM/dm9pZCAwOm9wdGlvbnMuc3VzcGVuc2UpP3t9Ontsb2FkaW5nKHBhcmFtKXtsZXR7ZXJyb3IsaXNMb2FkaW5nLHBhc3REZWxheX09cGFyYW07cmV0dXJuIG51bGx9fTtpZihkeW5hbWljT3B0aW9ucyBpbnN0YW5jZW9mIFByb21pc2U/bG9hZGFibGVPcHRpb25zLmxvYWRlcj0oKT0+ZHluYW1pY09wdGlvbnM6ImZ1bmN0aW9uIj09dHlwZW9mIGR5bmFtaWNPcHRpb25zP2xvYWRhYmxlT3B0aW9ucy5sb2FkZXI9ZHluYW1pY09wdGlvbnM6Im9iamVjdCI9PXR5cGVvZiBkeW5hbWljT3B0aW9ucyYmKGxvYWRhYmxlT3B0aW9ucz1fZXh0ZW5kcyh7fSxsb2FkYWJsZU9wdGlvbnMsZHluYW1pY09wdGlvbnMpKSwobG9hZGFibGVPcHRpb25zPV9leHRlbmRzKHt9LGxvYWRhYmxlT3B0aW9ucyxvcHRpb25zKSkuc3VzcGVuc2UmJihkZWxldGUgbG9hZGFibGVPcHRpb25zLnNzcixkZWxldGUgbG9hZGFibGVPcHRpb25zLmxvYWRpbmcpLGxvYWRhYmxlT3B0aW9ucy5sb2FkYWJsZUdlbmVyYXRlZCYmZGVsZXRlKGxvYWRhYmxlT3B0aW9ucz1fZXh0ZW5kcyh7fSxsb2FkYWJsZU9wdGlvbnMsbG9hZGFibGVPcHRpb25zLmxvYWRhYmxlR2VuZXJhdGVkKSkubG9hZGFibGVHZW5lcmF0ZWQsImJvb2xlYW4iPT10eXBlb2YgbG9hZGFibGVPcHRpb25zLnNzciYmIWxvYWRhYmxlT3B0aW9ucy5zdXNwZW5zZSl7aWYoIWxvYWRhYmxlT3B0aW9ucy5zc3IpcmV0dXJuIGRlbGV0ZSBsb2FkYWJsZU9wdGlvbnMuc3NyLG5vU1NSKGxvYWRhYmxlRm4sbG9hZGFibGVPcHRpb25zKTtkZWxldGUgbG9hZGFibGVPcHRpb25zLnNzcn1yZXR1cm4gbG9hZGFibGVGbihsb2FkYWJsZU9wdGlvbnMpfSxleHBvcnRzLm5vU1NSPW5vU1NSO3ZhciBfZXh0ZW5kcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY0OTUpLlosX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0PV9fd2VicGFja19yZXF1aXJlX18oOTI2NDgpLlosX2xvYWRhYmxlPShfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCkpLF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChfX3dlYnBhY2tfcmVxdWlyZV9fKDE0NTg4KSkpO2Z1bmN0aW9uIG5vU1NSKExvYWRhYmxlSW5pdGlhbGl6ZXIsbG9hZGFibGVPcHRpb25zKXtyZXR1cm4gZGVsZXRlIGxvYWRhYmxlT3B0aW9ucy53ZWJwYWNrLGRlbGV0ZSBsb2FkYWJsZU9wdGlvbnMubW9kdWxlcyxMb2FkYWJsZUluaXRpYWxpemVyKGxvYWRhYmxlT3B0aW9ucyl9KCJmdW5jdGlvbiI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2YgZXhwb3J0cy5kZWZhdWx0JiZudWxsIT09ZXhwb3J0cy5kZWZhdWx0KSYmdm9pZCAwPT09ZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCxleHBvcnRzKSxtb2R1bGUuZXhwb3J0cz1leHBvcnRzLmRlZmF1bHQpfSwyNjc1OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5nZXRJbWFnZUJsdXJTdmc9ZnVuY3Rpb24ocGFyYW0pe2xldHt3aWR0aEludCxoZWlnaHRJbnQsYmx1cldpZHRoLGJsdXJIZWlnaHQsYmx1ckRhdGFVUkx9PXBhcmFtLHN2Z1dpZHRoPWJsdXJXaWR0aHx8d2lkdGhJbnQsc3ZnSGVpZ2h0PWJsdXJIZWlnaHR8fGhlaWdodEludCxmZUNvbXBvbmVudFRyYW5zZmVyPWJsdXJEYXRhVVJMLnN0YXJ0c1dpdGgoImRhdGE6aW1hZ2UvanBlZyIpPyIlM0NmZUNvbXBvbmVudFRyYW5zZmVyJTNFJTNDZmVGdW5jQSB0eXBlPSdkaXNjcmV0ZScgdGFibGVWYWx1ZXM9JzEgMScvJTNFJTNDL2ZlQ29tcG9uZW50VHJhbnNmZXIlM0UlIjoiIjtyZXR1cm4gc3ZnV2lkdGgmJnN2Z0hlaWdodD8iJTNDc3ZnIHhtbG5zPSdodHRwJTNBLy93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgIi5jb25jYXQoc3ZnV2lkdGgsIiAiKS5jb25jYXQoc3ZnSGVpZ2h0LCInJTNFJTNDZmlsdGVyIGlkPSdiJyBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9J3NSR0InJTNFJTNDZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSciKS5jb25jYXQoYmx1cldpZHRoJiZibHVySGVpZ2h0PyIxIjoiMjAiLCInLyUzRSIpLmNvbmNhdChmZUNvbXBvbmVudFRyYW5zZmVyLCIlM0MvZmlsdGVyJTNFJTNDaW1hZ2UgcHJlc2VydmVBc3BlY3RSYXRpbz0nbm9uZScgZmlsdGVyPSd1cmwoJTIzYiknIHg9JzAnIHk9JzAnIGhlaWdodD0nMTAwJTI1JyB3aWR0aD0nMTAwJTI1JyBocmVmPSciKS5jb25jYXQoYmx1ckRhdGFVUkwsIicvJTNFJTNDL3N2ZyUzRSIpOiIlM0NzdmcgeG1sbnM9J2h0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDaW1hZ2Ugc3R5bGU9J2ZpbHRlcjpibHVyKDIwcHgpJyB4PScwJyB5PScwJyBoZWlnaHQ9JzEwMCUyNScgd2lkdGg9JzEwMCUyNScgaHJlZj0nIi5jb25jYXQoYmx1ckRhdGFVUkwsIicvJTNFJTNDL3N2ZyUzRSIpfX0sODk4MjQ6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGRlZmF1bHRMb2FkZXIocGFyYW0pe2xldHtjb25maWcsc3JjLHdpZHRoLHF1YWxpdHl9PXBhcmFtO3JldHVybiBzcmMuZW5kc1dpdGgoIi5zdmciKSYmIWNvbmZpZy5kYW5nZXJvdXNseUFsbG93U1ZHP3NyYzoiIi5jb25jYXQoY29uZmlnLnBhdGgsIj91cmw9IikuY29uY2F0KGVuY29kZVVSSUNvbXBvbmVudChzcmMpLCImdz0iKS5jb25jYXQod2lkdGgsIiZxPSIpLmNvbmNhdChxdWFsaXR5fHw3NSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuZGVmYXVsdD12b2lkIDAsZGVmYXVsdExvYWRlci5fX25leHRfaW1nX2RlZmF1bHQ9ITAsZXhwb3J0cy5kZWZhdWx0PWRlZmF1bHRMb2FkZXJ9LDMzNjQ0OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxleHBvcnRzLkxvYWRhYmxlQ29udGV4dD12b2lkIDA7dmFyIF9yZWFjdD0oMCxfX3dlYnBhY2tfcmVxdWlyZV9fKDkyNjQ4KS5aKShfX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSk7bGV0IExvYWRhYmxlQ29udGV4dD1fcmVhY3QuZGVmYXVsdC5jcmVhdGVDb250ZXh0KG51bGwpO2V4cG9ydHMuTG9hZGFibGVDb250ZXh0PUxvYWRhYmxlQ29udGV4dH0sMTQ1ODg6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuZGVmYXVsdD12b2lkIDA7dmFyIF9leHRlbmRzPV9fd2VicGFja19yZXF1aXJlX18oNjQ5NSkuWixfcmVhY3Q9KDAsX193ZWJwYWNrX3JlcXVpcmVfXyg5MTU5OCkuWikoX193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCkpLF9sb2FkYWJsZUNvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXygzMzY0NCk7bGV0IEFMTF9JTklUSUFMSVpFUlM9W10sUkVBRFlfSU5JVElBTElaRVJTPVtdLGluaXRpYWxpemVkPSExO2Z1bmN0aW9uIGxvYWQobG9hZGVyKXtsZXQgcHJvbWlzZT1sb2FkZXIoKSxzdGF0ZT17bG9hZGluZzohMCxsb2FkZWQ6bnVsbCxlcnJvcjpudWxsfTtyZXR1cm4gc3RhdGUucHJvbWlzZT1wcm9taXNlLnRoZW4obG9hZGVkPT4oc3RhdGUubG9hZGluZz0hMSxzdGF0ZS5sb2FkZWQ9bG9hZGVkLGxvYWRlZCkpLmNhdGNoKGVycj0+e3Rocm93IHN0YXRlLmxvYWRpbmc9ITEsc3RhdGUuZXJyb3I9ZXJyLGVycn0pLHN0YXRlfWNsYXNzIExvYWRhYmxlU3Vic2NyaXB0aW9ue3Byb21pc2UoKXtyZXR1cm4gdGhpcy5fcmVzLnByb21pc2V9cmV0cnkoKXt0aGlzLl9jbGVhclRpbWVvdXRzKCksdGhpcy5fcmVzPXRoaXMuX2xvYWRGbih0aGlzLl9vcHRzLmxvYWRlciksdGhpcy5fc3RhdGU9e3Bhc3REZWxheTohMSx0aW1lZE91dDohMX07bGV0e19yZXM6cmVzLF9vcHRzOm9wdHN9PXRoaXM7cmVzLmxvYWRpbmcmJigibnVtYmVyIj09dHlwZW9mIG9wdHMuZGVsYXkmJigwPT09b3B0cy5kZWxheT90aGlzLl9zdGF0ZS5wYXN0RGVsYXk9ITA6dGhpcy5fZGVsYXk9c2V0VGltZW91dCgoKT0+e3RoaXMuX3VwZGF0ZSh7cGFzdERlbGF5OiEwfSl9LG9wdHMuZGVsYXkpKSwibnVtYmVyIj09dHlwZW9mIG9wdHMudGltZW91dCYmKHRoaXMuX3RpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuX3VwZGF0ZSh7dGltZWRPdXQ6ITB9KX0sb3B0cy50aW1lb3V0KSkpLHRoaXMuX3Jlcy5wcm9taXNlLnRoZW4oKCk9Pnt0aGlzLl91cGRhdGUoe30pLHRoaXMuX2NsZWFyVGltZW91dHMoKX0pLmNhdGNoKF9lcnI9Pnt0aGlzLl91cGRhdGUoe30pLHRoaXMuX2NsZWFyVGltZW91dHMoKX0pLHRoaXMuX3VwZGF0ZSh7fSl9X3VwZGF0ZShwYXJ0aWFsKXt0aGlzLl9zdGF0ZT1fZXh0ZW5kcyh7fSx0aGlzLl9zdGF0ZSx7ZXJyb3I6dGhpcy5fcmVzLmVycm9yLGxvYWRlZDp0aGlzLl9yZXMubG9hZGVkLGxvYWRpbmc6dGhpcy5fcmVzLmxvYWRpbmd9LHBhcnRpYWwpLHRoaXMuX2NhbGxiYWNrcy5mb3JFYWNoKGNhbGxiYWNrPT5jYWxsYmFjaygpKX1fY2xlYXJUaW1lb3V0cygpe2NsZWFyVGltZW91dCh0aGlzLl9kZWxheSksY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpfWdldEN1cnJlbnRWYWx1ZSgpe3JldHVybiB0aGlzLl9zdGF0ZX1zdWJzY3JpYmUoY2FsbGJhY2spe3JldHVybiB0aGlzLl9jYWxsYmFja3MuYWRkKGNhbGxiYWNrKSwoKT0+e3RoaXMuX2NhbGxiYWNrcy5kZWxldGUoY2FsbGJhY2spfX1jb25zdHJ1Y3Rvcihsb2FkRm4sb3B0cyl7dGhpcy5fbG9hZEZuPWxvYWRGbix0aGlzLl9vcHRzPW9wdHMsdGhpcy5fY2FsbGJhY2tzPW5ldyBTZXQsdGhpcy5fZGVsYXk9bnVsbCx0aGlzLl90aW1lb3V0PW51bGwsdGhpcy5yZXRyeSgpfX1mdW5jdGlvbiBMb2FkYWJsZShvcHRzKXtyZXR1cm4gZnVuY3Rpb24obG9hZEZuLG9wdGlvbnMpe2xldCBvcHRzPU9iamVjdC5hc3NpZ24oe2xvYWRlcjpudWxsLGxvYWRpbmc6bnVsbCxkZWxheToyMDAsdGltZW91dDpudWxsLHdlYnBhY2s6bnVsbCxtb2R1bGVzOm51bGwsc3VzcGVuc2U6ITF9LG9wdGlvbnMpO29wdHMuc3VzcGVuc2UmJihvcHRzLmxhenk9X3JlYWN0LmRlZmF1bHQubGF6eShvcHRzLmxvYWRlcikpO2xldCBzdWJzY3JpcHRpb249bnVsbDtmdW5jdGlvbiBpbml0KCl7aWYoIXN1YnNjcmlwdGlvbil7bGV0IHN1Yj1uZXcgTG9hZGFibGVTdWJzY3JpcHRpb24obG9hZEZuLG9wdHMpO3N1YnNjcmlwdGlvbj17Z2V0Q3VycmVudFZhbHVlOnN1Yi5nZXRDdXJyZW50VmFsdWUuYmluZChzdWIpLHN1YnNjcmliZTpzdWIuc3Vic2NyaWJlLmJpbmQoc3ViKSxyZXRyeTpzdWIucmV0cnkuYmluZChzdWIpLHByb21pc2U6c3ViLnByb21pc2UuYmluZChzdWIpfX1yZXR1cm4gc3Vic2NyaXB0aW9uLnByb21pc2UoKX1pZighaW5pdGlhbGl6ZWQpe2xldCBtb2R1bGVJZHM9b3B0cy53ZWJwYWNrP29wdHMud2VicGFjaygpOm9wdHMubW9kdWxlczttb2R1bGVJZHMmJlJFQURZX0lOSVRJQUxJWkVSUy5wdXNoKGlkcz0+e2ZvcihsZXQgbW9kdWxlSWQgb2YgbW9kdWxlSWRzKWlmKC0xIT09aWRzLmluZGV4T2YobW9kdWxlSWQpKXJldHVybiBpbml0KCl9KX1mdW5jdGlvbiB1c2VMb2FkYWJsZU1vZHVsZSgpe2luaXQoKTtsZXQgY29udGV4dD1fcmVhY3QuZGVmYXVsdC51c2VDb250ZXh0KF9sb2FkYWJsZUNvbnRleHQuTG9hZGFibGVDb250ZXh0KTtjb250ZXh0JiZBcnJheS5pc0FycmF5KG9wdHMubW9kdWxlcykmJm9wdHMubW9kdWxlcy5mb3JFYWNoKG1vZHVsZU5hbWU9Pntjb250ZXh0KG1vZHVsZU5hbWUpfSl9bGV0IExvYWRhYmxlQ29tcG9uZW50PW9wdHMuc3VzcGVuc2U/ZnVuY3Rpb24ocHJvcHMscmVmKXtyZXR1cm4gdXNlTG9hZGFibGVNb2R1bGUoKSxfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG9wdHMubGF6eSxfZXh0ZW5kcyh7fSxwcm9wcyx7cmVmfSkpfTpmdW5jdGlvbihwcm9wcyxyZWYpe3VzZUxvYWRhYmxlTW9kdWxlKCk7bGV0IHN0YXRlPV9yZWFjdC51c2VTeW5jRXh0ZXJuYWxTdG9yZShzdWJzY3JpcHRpb24uc3Vic2NyaWJlLHN1YnNjcmlwdGlvbi5nZXRDdXJyZW50VmFsdWUsc3Vic2NyaXB0aW9uLmdldEN1cnJlbnRWYWx1ZSk7cmV0dXJuIF9yZWFjdC5kZWZhdWx0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCgpPT4oe3JldHJ5OnN1YnNjcmlwdGlvbi5yZXRyeX0pLFtdKSxfcmVhY3QuZGVmYXVsdC51c2VNZW1vKCgpPT57dmFyIG9iajtyZXR1cm4gc3RhdGUubG9hZGluZ3x8c3RhdGUuZXJyb3I/X3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChvcHRzLmxvYWRpbmcse2lzTG9hZGluZzpzdGF0ZS5sb2FkaW5nLHBhc3REZWxheTpzdGF0ZS5wYXN0RGVsYXksdGltZWRPdXQ6c3RhdGUudGltZWRPdXQsZXJyb3I6c3RhdGUuZXJyb3IscmV0cnk6c3Vic2NyaXB0aW9uLnJldHJ5fSk6c3RhdGUubG9hZGVkP19yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoKG9iaj1zdGF0ZS5sb2FkZWQpJiZvYmouX19lc01vZHVsZT9vYmouZGVmYXVsdDpvYmoscHJvcHMpOm51bGx9LFtwcm9wcyxzdGF0ZV0pfTtyZXR1cm4gTG9hZGFibGVDb21wb25lbnQucHJlbG9hZD0oKT0+aW5pdCgpLExvYWRhYmxlQ29tcG9uZW50LmRpc3BsYXlOYW1lPSJMb2FkYWJsZUNvbXBvbmVudCIsX3JlYWN0LmRlZmF1bHQuZm9yd2FyZFJlZihMb2FkYWJsZUNvbXBvbmVudCl9KGxvYWQsb3B0cyl9ZnVuY3Rpb24gZmx1c2hJbml0aWFsaXplcnMoaW5pdGlhbGl6ZXJzLGlkcyl7bGV0IHByb21pc2VzPVtdO2Zvcig7aW5pdGlhbGl6ZXJzLmxlbmd0aDspe2xldCBpbml0PWluaXRpYWxpemVycy5wb3AoKTtwcm9taXNlcy5wdXNoKGluaXQoaWRzKSl9cmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKS50aGVuKCgpPT57aWYoaW5pdGlhbGl6ZXJzLmxlbmd0aClyZXR1cm4gZmx1c2hJbml0aWFsaXplcnMoaW5pdGlhbGl6ZXJzLGlkcyl9KX1Mb2FkYWJsZS5wcmVsb2FkQWxsPSgpPT5uZXcgUHJvbWlzZSgocmVzb2x2ZUluaXRpYWxpemVycyxyZWplY3QpPT57Zmx1c2hJbml0aWFsaXplcnMoQUxMX0lOSVRJQUxJWkVSUykudGhlbihyZXNvbHZlSW5pdGlhbGl6ZXJzLHJlamVjdCl9KSxMb2FkYWJsZS5wcmVsb2FkUmVhZHk9ZnVuY3Rpb24oKXtsZXQgaWRzPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpbXTtyZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZVByZWxvYWQ9PntsZXQgcmVzPSgpPT4oaW5pdGlhbGl6ZWQ9ITAscmVzb2x2ZVByZWxvYWQoKSk7Zmx1c2hJbml0aWFsaXplcnMoUkVBRFlfSU5JVElBTElaRVJTLGlkcykudGhlbihyZXMscmVzKX0pfSx3aW5kb3cuX19ORVhUX1BSRUxPQURSRUFEWT1Mb2FkYWJsZS5wcmVsb2FkUmVhZHksZXhwb3J0cy5kZWZhdWx0PUxvYWRhYmxlfSwzODY4OTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyksX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gSG9tZX19KTt2YXIgX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDM1OTQ0KTtfX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KTt2YXIgY29tcG9uZW50c19jb250YWluZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY2MjUxKSxuZXh0X2kxOG5leHRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDg2OTApLGNvbXBvbmVudHNfbW90aW9uX2xvYWRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDUxNjEwKSx2aWV3X2NvbW1vbl9jb21tb25fc3R5bGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk3NjMxKSxjb21wb25lbnRzX2ltYWdlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X189X193ZWJwYWNrX3JlcXVpcmVfXygxMTU4NiksX2luZGV4X3N0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X189X193ZWJwYWNrX3JlcXVpcmVfXyg3ODg1NyksY29tcG9uZW50c19hbnRTdHlsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fPV9fd2VicGFja19yZXF1aXJlX18oOTIwNDEpO2Z1bmN0aW9uIEhvbWUoKXtsZXR7c3R5bGVzOmNvbW1vblN0eWxlcyxjeH09KDAsdmlld19jb21tb25fY29tbW9uX3N0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uYykoKSx7c3R5bGVzfT0oMCxfaW5kZXhfc3R5bGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy55KSgpLHt0fT0oMCxuZXh0X2kxOG5leHRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy4kRykoWyJiaW4iXSk7cmV0dXJuKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy50WikoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMubWFpbixjb21tb25TdHlsZXMubWFpblBhZGRpbmc4MCksY2hpbGRyZW46KDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy50WikoY29tcG9uZW50c19jb250YWluZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5aLHtjaGlsZHJlbjooMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLnRaKShjb21wb25lbnRzX21vdGlvbl9sb2FkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18ucnEse2NoaWxkcmVuOigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uQlgpKCJkaXYiLHtjaGlsZHJlbjpbKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy50WikoImRpdiIse2NsYXNzTmFtZTpjeChzdHlsZXMuYmxvY2syTGVmdCxzdHlsZXMuYmxvY2syTGVmdFdyYXApLGNoaWxkcmVuOigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18udFopKGNvbXBvbmVudHNfaW1hZ2VfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5aLHtmaWxsOiEwLGFsdDoiYnV2ZWkgd29yayIsc3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDUyMTE4MjU1OGUxMzFiYjIwMmQud2VicCJ9KX0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrMlJpZ2h0LGNoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLnRaKSgiaDIiLHtjbGFzc05hbWU6Y29tbW9uU3R5bGVzLnNpemUyNCxjaGlsZHJlbjp0KCJ0MzAiLHtuczoiYmluIn0pfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy50WikoInAiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLm10MTIsY29tbW9uU3R5bGVzLnNpemUxNiksY2hpbGRyZW46dCgidDMxIix7bnM6ImJpbiJ9KX0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18udFopKCJkaXYiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLmZsZXgsY29tbW9uU3R5bGVzLm10MzYpLGNoaWxkcmVuOigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18udFopKGNvbXBvbmVudHNfYW50U3R5bGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy50OCx7dHlwZToicHJpbWFyeSIsaHJlZjoiaHR0cDovL2FwcC5idXZlaS5jb20vIixjaGlsZHJlbjp0KCJ0MzIiLHtuczoiYmluIn0pfSl9KV19KV19KX0pfSl9KX19LDc4ODU3OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHt5OmZ1bmN0aW9uKCl7cmV0dXJuIHVzZVN0eWxlc319KTt2YXIgX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDcyOTcpLGFudGRfc3R5bGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDc2MTU5KTtmdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBhc3BlY3QtcmF0aW86IDE0NDAgLyA0MzI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgbWFyZ2luLXJpZ2h0OiA4MHB4O1xuICAgICAgIiwiIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDIoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDI9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcGFkZGluZzogNDBweCAyMHB4O1xuICAgICAgcGFkZGluZy1yaWdodDogODBweDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgd2lkdGg6IDUyMHB4O1xuICAgICAgIiwiIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA1MjBweCk7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNlNGU4ZjkgMCUsICNmNWY3ZmYgMTAwJSk7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgcGFkZGluZzogNDBweDtcbiAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgICAgIiwiIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q0PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDYoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q2PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0Nygpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGNvbG9yOiAjN2Q4MjlkO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Nz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDgoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwYWRkaW5nOiAwcHggMjBweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDgwcHg7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHdpZHRoOiA1MjBweDtcbiAgICAgICIsIiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0OD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDkoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gNTIwcHgpO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICBwYWRkaW5nOiAwcHggNDBweDtcbiAgICAgICIsIiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0OT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDEwKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTA9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxMSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGFzcGVjdC1yYXRpbzogNTIwIC8gMzMyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxMT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDEyKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgbWluLXdpZHRoOiAxODBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMjBweCAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLXRvcDogMzBweCAhaW1wb3J0YW50O1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxMj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDEzKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgYmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0YW50O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIiwiICFpbXBvcnRhbnQ7XG4gICAgICBjb2xvcjogIiwiICFpbXBvcnRhbnQ7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTM9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxNCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC0gNjBweCkvIDMpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgZm9udC1zaXplOiAwcHg7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICY6bnRoLWNoaWxkKDNuKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICAgfVxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAiLCI7XG4gICAgICAgIC5pY29uLW9wZW4ge1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7XG4gICAgICAgIH1cbiAgICAgICAgLmJsb2ctaW1nIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxND1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDE1KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE1PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTYoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGFzcGVjdC1yYXRpbzogMzg2IC8gMjg4O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBpbWcge1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgIH1cbiAgICAgIFxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTY9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxNygpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4O1xuICAgICAgLyogd2lkdGg6IGNhbGMoMTAwJSAtIDgwcHggLSAxMnB4KTsgKi9cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE3PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTgoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTg9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxOSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDI4cHgpO1xuICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxOT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDIwKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgIGNvbG9yOiAjN2Q4MjlkO1xuICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyOyAvKiDmnIDlpJrmmL7npLogMiDooYwgKi9cbiAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDIwPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MjEoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgIG9wYWNpdHk6IDA7XG4gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MjE9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1sZXQgdXNlU3R5bGVzPSgwLGFudGRfc3R5bGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5rYykocGFyYW09PntsZXR7dG9rZW4sY3NzLHJlc3BvbnNpdmV9PXBhcmFtO3JldHVybntiZzE6Y3NzKF90ZW1wbGF0ZU9iamVjdCgpKSxtcjgwOmNzcyhfdGVtcGxhdGVPYmplY3QxKCkscmVzcG9uc2l2ZS5tb2JpbGUpLGJsb2NrMUJveFdyYXA6Y3NzKF90ZW1wbGF0ZU9iamVjdDIoKSksYmxvY2sxTGVmdDpjc3MoX3RlbXBsYXRlT2JqZWN0MygpLHJlc3BvbnNpdmUubW9iaWxlKSxibG9jazFSaWdodDpjc3MoX3RlbXBsYXRlT2JqZWN0NCgpLHJlc3BvbnNpdmUubW9iaWxlKSxpbmxpbmVDZW50ZXI6Y3NzKF90ZW1wbGF0ZU9iamVjdDUoKSksYmxvY2sxSXRlbTpjc3MoX3RlbXBsYXRlT2JqZWN0NigpKSxibG9jazFJdGVtVGl0bGU6Y3NzKF90ZW1wbGF0ZU9iamVjdDcoKSksYmxvY2syTGVmdDpjc3MoX3RlbXBsYXRlT2JqZWN0OCgpLHJlc3BvbnNpdmUubW9iaWxlKSxibG9jazJSaWdodDpjc3MoX3RlbXBsYXRlT2JqZWN0OSgpLHJlc3BvbnNpdmUubW9iaWxlKSxzaXplMTQ6Y3NzKF90ZW1wbGF0ZU9iamVjdDEwKCkpLGJsb2NrMkxlZnRXcmFwOmNzcyhfdGVtcGxhdGVPYmplY3QxMSgpKSxidG5JdGVtOmNzcyhfdGVtcGxhdGVPYmplY3QxMigpKSxidG4yOmNzcyhfdGVtcGxhdGVPYmplY3QxMygpLHRva2VuLmNvbG9yUHJpbWFyeSx0b2tlbi5jb2xvclByaW1hcnkpLHBvcG92ZXJCbG9nSXRlbTpjc3MoX3RlbXBsYXRlT2JqZWN0MTQoKSx0b2tlbi5jb2xvclByaW1hcnkpLHBvcG92ZXJCbG9nSXRlbVdyYXA6Y3NzKF90ZW1wbGF0ZU9iamVjdDE1KCkpLHBvcG92ZXJCbG9nSW1nOmNzcyhfdGVtcGxhdGVPYmplY3QxNigpKSxwb3BvdmVyQmxvZ0NvbnRlbnQ6Y3NzKF90ZW1wbGF0ZU9iamVjdDE3KCkpLHBvcG92ZXJCbG9nVGl0bGU6Y3NzKF90ZW1wbGF0ZU9iamVjdDE4KCkpLHBvcG92ZXJUaXRsZVdyYXA6Y3NzKF90ZW1wbGF0ZU9iamVjdDE5KCkpLHBvcG92ZXJCbG9nRGVzYzpjc3MoX3RlbXBsYXRlT2JqZWN0MjAoKSksYmxvY2tHb0ljb246Y3NzKF90ZW1wbGF0ZU9iamVjdDIxKCkpfX0pfSw5NzYzMTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7YzpmdW5jdGlvbigpe3JldHVybiB1c2VDb21tb25TdHlsZXN9fSk7dmFyIF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg3Mjk3KSxhbnRkX3N0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg3NjE1OSk7ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgZm9udC1zaXplOiA1MHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQxO1xuICAgICAgIiwiIHtcbiAgICAgICAgZm9udC1zaXplOiA0NnB4O1xuICAgICAgfVxuICAgICAgIiwiIHtcbiAgICAgICAgZm9udC1zaXplOiA0MnB4O1xuICAgICAgfVxuICAgICAgIiwiIHtcbiAgICAgICAgZm9udC1zaXplOiAzOHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBsaW5lLWhlaWdodDogMS40MTtcbiAgICAgICIsIiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMzhweDtcbiAgICAgIH1cbiAgICAgICIsIiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMzRweDtcbiAgICAgIH1cbiAgICAgICIsIiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQxO1xuICAgICAgIiwiIHtcbiAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgfVxuICAgICAgIiwiIHtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgfVxuICAgICAgIiwiIHtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Mj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDMoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgIGNvbG9yOiAiLCI7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBjb2xvcjogIiwiO1xuICAgICAgIiwiIHtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgfVxuICAgICAgIiwiIHtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0ND1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDUoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDU9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q2KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Nj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDcoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwYWRkaW5nOiA4MHB4IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgICIsIiB7XG4gICAgICAgIHBhZGRpbmc6IDY1cHggMDtcbiAgICAgIH1cbiAgICAgICIsIiB7XG4gICAgICAgIHBhZGRpbmc6IDQwcHggMDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDc9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q4KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcGFkZGluZzogMTIwcHggMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgIiwiIHtcbiAgICAgICAgcGFkZGluZzogODBweCAwO1xuICAgICAgfVxuICAgICAgIiwiIHtcbiAgICAgICAgcGFkZGluZzogNjBweCAwO1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0OD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDkoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q5PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTAoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTA9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxMSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxMT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDEyKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgZmxleDogMTtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDEyPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTMoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxMz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDE0KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxND1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDE1KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxNT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDE2KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE2PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTcoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxNz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDE4KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjZmZmZmZmIDUwJSwgI2JmYzdlYiAxMDAlKTtcbiAgICAgIGJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgZm9udC1zaXplOiA0OHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICIsIiB7XG4gICAgICAgIGZvbnQtc2l6ZTogNDRweDtcbiAgICAgIH1cbiAgICAgICIsIiB7XG4gICAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE4PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTkoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgIiwiIHtcbiAgICAgICAgZm9udC1zaXplOiA0NHB4O1xuICAgICAgfVxuICAgICAgIiwiIHtcbiAgICAgICAgZm9udC1zaXplOiA0MHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTk9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyMCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGZvbnQtc2l6ZTogNDJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICIsIiB7XG4gICAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgIH1cbiAgICAgICIsIiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICAgIH1cbiAgICAgICIsIiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MjA9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyMSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyMT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDIyKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICIsIiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDIyPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MjMoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAiLCIge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyMz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDI0KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgIiwiIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgfVxuICAgICAgIiwiIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MjQ9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyNSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGNvbG9yOiAjN2Q4MjlkO1xuICAgICAgIiwiIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MjU9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyNigpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICIsIiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDI2PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MjcoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBmb250LXNpemU6IDYwcHg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgIiwiIHtcbiAgICAgICAgZm9udC1zaXplOiA1MHB4O1xuICAgICAgfVxuICAgICAgIiwiIHtcbiAgICAgICAgZm9udC1zaXplOiA0MHB4O1xuICAgICAgfVxuICAgICAgIiwiIHtcbiAgICAgICAgZm9udC1zaXplOiAzMHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Mjc9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyOCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDI4PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MjkoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA4MHB4KTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAiLCIge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyOT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDMwKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzMD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDMxKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgY29sb3I6ICNiZmM3ZWI7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzMT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDMyKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgY29sb3I6IHJnYmEoMTI1LCAxMzAsIDE1NywgMSk7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzMj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDMzKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgY29sb3I6IHJnYmEoMjE5LCA5OSwgOTYsIDEpO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MzM9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzNCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGNvbG9yOiAjNTUzOGEwO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MzQ9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzNSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGNvbG9yOiAjN2Q4MjlkO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MzU9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzNigpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGNvbG9yOiAiLCI7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzNj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDM3KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Mzc9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzOCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIG1hcmdpbi10b3A6IDM2cHg7XG4gICAgICAiLCIge1xuICAgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgICAgfVxuICAgICAgIiwiIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDM4PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MzkoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBtYXJnaW4tdG9wOiA4MHB4O1xuICAgICAgIiwiIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNzBweDtcbiAgICAgIH1cbiAgICAgICIsIiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gICAgICB9XG4gICAgICAiLCIge1xuICAgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Mzk9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q0MCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAiLCIge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NDA9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q0MSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gICAgICAiLCIge1xuICAgICAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NDE9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q0Migpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDQyPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NDMoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NDM9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q0NCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q0ND1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDQ1KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U0ZThmOTtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDQ1PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NDYoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q0Nj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDQ3KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDQ3PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NDgoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBhc3BlY3QtcmF0aW86IDEyMDAgLyAzNjA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NDg9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q0OSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyIiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDQ5PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NTAoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIG1heC13aWR0aDogODAwcHg7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q1MD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDUxKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMzg0YWEwIDAlLCAjNTUzOGEwIDEwMCUpO1xuICAgICAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q1MT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDUyKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgbWF4LXdpZHRoOiAxMDAwcHg7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDUyPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NTMoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBwYWRkaW5nOiAxMHB4IDhweDtcbiAgICAgIGJhY2tncm91bmQ6ICIsIjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweCA4cHggOHB4IDhweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICAgIG1hcmdpbi10b3A6IDgwcHg7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjk7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q1Mz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDU0KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGNvbG9yOiAiLCI7XG4gICAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NTQ9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q1NSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBjb2xvcjogIiwiO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NTU9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q1Nigpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgY29sb3I6ICIsIjtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDU2PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NTcoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAiLCI7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDU3PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NTgoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDU4PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NTkoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NTk9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q2MCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogMTAwcHg7XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSA1MHB4KTtcbiAgICAgIG1hcmdpbi1yaWdodDogMTAwcHg7XG4gICAgXG4gICAgICAiLCIge1xuICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAzMHB4KTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2MHB4O1xuICAgICAgfVxuICAgICAgIiwiIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICAgfVxuICAgICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q2MD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWxldCB1c2VDb21tb25TdHlsZXM9KDAsYW50ZF9zdHlsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmtjKShwYXJhbT0+e2xldHt0b2tlbixjc3MscmVzcG9uc2l2ZX09cGFyYW0se21vYmlsZX09cmVzcG9uc2l2ZTtyZXR1cm57dGl0bGU6Y3NzKF90ZW1wbGF0ZU9iamVjdCgpLHJlc3BvbnNpdmUubGFwdG9wLHJlc3BvbnNpdmUudGFibGV0LHJlc3BvbnNpdmUubW9iaWxlKSx0aXRsZTI6Y3NzKF90ZW1wbGF0ZU9iamVjdDEoKSxyZXNwb25zaXZlLmxhcHRvcCxyZXNwb25zaXZlLnRhYmxldCxyZXNwb25zaXZlLm1vYmlsZSksdGl0bGUzOmNzcyhfdGVtcGxhdGVPYmplY3QyKCkscmVzcG9uc2l2ZS5sYXB0b3AscmVzcG9uc2l2ZS50YWJsZXQscmVzcG9uc2l2ZS5tb2JpbGUpLHN1YlRpdGxlOmNzcyhfdGVtcGxhdGVPYmplY3QzKCksdG9rZW4uY29sb3JUZXh0KSxzdWJUaXRsZTI6Y3NzKF90ZW1wbGF0ZU9iamVjdDQoKSx0b2tlbi5jb2xvclRleHQscmVzcG9uc2l2ZS50YWJsZXQscmVzcG9uc2l2ZS5tb2JpbGUpLG1haW5EZXNjOmNzcyhfdGVtcGxhdGVPYmplY3Q1KCkpLG1haW46Y3NzKF90ZW1wbGF0ZU9iamVjdDYoKSksbWFpblBhZGRpbmc4MDpjc3MoX3RlbXBsYXRlT2JqZWN0NygpLHJlc3BvbnNpdmUudGFibGV0LHJlc3BvbnNpdmUubW9iaWxlKSxtYWluUGFkZGluZzEyMDpjc3MoX3RlbXBsYXRlT2JqZWN0OCgpLHJlc3BvbnNpdmUudGFibGV0LHJlc3BvbnNpdmUubW9iaWxlKSxmbGV4V3JhcDpjc3MoX3RlbXBsYXRlT2JqZWN0OSgpKSxmbGV4OmNzcyhfdGVtcGxhdGVPYmplY3QxMCgpKSxmbGV4Q29sdW1uOmNzcyhfdGVtcGxhdGVPYmplY3QxMSgpKSxmbGV4MTpjc3MoX3RlbXBsYXRlT2JqZWN0MTIoKSksZmxleFN0YXJ0QmV0d2Vlbjpjc3MoX3RlbXBsYXRlT2JqZWN0MTMoKSksZmxleENlbnRlckJldHdlZW46Y3NzKF90ZW1wbGF0ZU9iamVjdDE0KCkpLGZsZXhDZW50ZXI6Y3NzKF90ZW1wbGF0ZU9iamVjdDE1KCkpLGZsZXhDZW50ZXJDZW50ZXI6Y3NzKF90ZW1wbGF0ZU9iamVjdDE2KCkpLGZsZXhTdGFydDpjc3MoX3RlbXBsYXRlT2JqZWN0MTcoKSksaDE6Y3NzKF90ZW1wbGF0ZU9iamVjdDE4KCkscmVzcG9uc2l2ZS5sYXB0b3AscmVzcG9uc2l2ZS50YWJsZXQpLGgxTm9ybWFsOmNzcyhfdGVtcGxhdGVPYmplY3QxOSgpLHJlc3BvbnNpdmUubGFwdG9wLHJlc3BvbnNpdmUudGFibGV0KSxoMjpjc3MoX3RlbXBsYXRlT2JqZWN0MjAoKSxyZXNwb25zaXZlLmxhcHRvcCxyZXNwb25zaXZlLnRhYmxldCxyZXNwb25zaXZlLm1vYmlsZSksc2l6ZTMyOmNzcyhfdGVtcGxhdGVPYmplY3QyMSgpKSxzaXplMjQ6Y3NzKF90ZW1wbGF0ZU9iamVjdDIyKCkscmVzcG9uc2l2ZS5tb2JpbGUpLHNpemUyNE5vcm1hbDpjc3MoX3RlbXBsYXRlT2JqZWN0MjMoKSxyZXNwb25zaXZlLm1vYmlsZSksc2l6ZTIwOmNzcyhfdGVtcGxhdGVPYmplY3QyNCgpLHJlc3BvbnNpdmUudGFibGV0LHJlc3BvbnNpdmUubW9iaWxlKSxzaXplMTY6Y3NzKF90ZW1wbGF0ZU9iamVjdDI1KCkscmVzcG9uc2l2ZS50YWJsZXQpLHNpemUxNk5vQ29sb3I6Y3NzKF90ZW1wbGF0ZU9iamVjdDI2KCkscmVzcG9uc2l2ZS50YWJsZXQpLHNpemU2MDpjc3MoX3RlbXBsYXRlT2JqZWN0MjcoKSxyZXNwb25zaXZlLmxhcHRvcCxyZXNwb25zaXZlLnRhYmxldCxyZXNwb25zaXZlLm1vYmlsZSkscmVsYXRpdmU6Y3NzKF90ZW1wbGF0ZU9iamVjdDI4KCkpLGJsb2NrMUZ1bGw6Y3NzKF90ZW1wbGF0ZU9iamVjdDI5KCkscmVzcG9uc2l2ZS5tb2JpbGUpLGNvbG9yV2hpdGU6Y3NzKF90ZW1wbGF0ZU9iamVjdDMwKCkpLGNvbG9yMTpjc3MoX3RlbXBsYXRlT2JqZWN0MzEoKSksY29sb3IyOmNzcyhfdGVtcGxhdGVPYmplY3QzMigpKSxjb2xvcjM6Y3NzKF90ZW1wbGF0ZU9iamVjdDMzKCkpLGNvbG9yNDpjc3MoX3RlbXBsYXRlT2JqZWN0MzQoKSksY29sb3I2OmNzcyhfdGVtcGxhdGVPYmplY3QzNSgpKSxjb2xvcjU6Y3NzKF90ZW1wbGF0ZU9iamVjdDM2KCksdG9rZW4uY29sb3JQcmltYXJ5KSx0ZXh0Q2VudGVyOmNzcyhfdGVtcGxhdGVPYmplY3QzNygpKSxtdDM2OmNzcyhfdGVtcGxhdGVPYmplY3QzOCgpLHJlc3BvbnNpdmUubGFwdG9wLHJlc3BvbnNpdmUudGFibGV0KSxtdDgwOmNzcyhfdGVtcGxhdGVPYmplY3QzOSgpLHJlc3BvbnNpdmUubGFwdG9wLHJlc3BvbnNpdmUudGFibGV0LHJlc3BvbnNpdmUubW9iaWxlKSxtdDIwOmNzcyhfdGVtcGxhdGVPYmplY3Q0MCgpLHJlc3BvbnNpdmUudGFibGV0KSxtdDYwOmNzcyhfdGVtcGxhdGVPYmplY3Q0MSgpLHJlc3BvbnNpdmUudGFibGV0KSxtdDg6Y3NzKF90ZW1wbGF0ZU9iamVjdDQyKCkpLG10MTI6Y3NzKF90ZW1wbGF0ZU9iamVjdDQzKCkpLGJnMTpjc3MoX3RlbXBsYXRlT2JqZWN0NDQoKSksYmcyOmNzcyhfdGVtcGxhdGVPYmplY3Q0NSgpKSxjZW50ZXI6Y3NzKF90ZW1wbGF0ZU9iamVjdDQ2KCkpLHRleHRMZWZ0OmNzcyhfdGVtcGxhdGVPYmplY3Q0NygpKSxmb290ZXI6Y3NzKF90ZW1wbGF0ZU9iamVjdDQ4KCkpLGZvb3RlckltZzpjc3MoX3RlbXBsYXRlT2JqZWN0NDkoKSksZm9vdGVyQ29udGVudDpjc3MoX3RlbXBsYXRlT2JqZWN0NTAoKSksZm9vdGVyVGl0bGU6Y3NzKF90ZW1wbGF0ZU9iamVjdDUxKCkpLG1heDEwMDA6Y3NzKF90ZW1wbGF0ZU9iamVjdDUyKCkpLHF1aWNrQnRuOmNzcyhfdGVtcGxhdGVPYmplY3Q1MygpLHRva2VuLmNvbG9yUHJpbWFyeSkscXVpY2tCdG4yOmNzcyhfdGVtcGxhdGVPYmplY3Q1NCgpLHRva2VuLmNvbG9yVGV4dCkscXVpY2tCdG4zOmNzcyhfdGVtcGxhdGVPYmplY3Q1NSgpLHRva2VuLmNvbG9yVGV4dCksYXJyb3dCb3g6Y3NzKF90ZW1wbGF0ZU9iamVjdDU2KCksdG9rZW4uY29sb3JQcmltYXJ5KSxhcnJvd0JveDI6Y3NzKF90ZW1wbGF0ZU9iamVjdDU3KCksdG9rZW4uY29sb3JQcmltYXJ5KSx0b3BJbmRleDpjc3MoX3RlbXBsYXRlT2JqZWN0NTgoKSksbWw4OmNzcyhfdGVtcGxhdGVPYmplY3Q1OSgpKSxpbnB1dEl0ZW06Y3NzKF90ZW1wbGF0ZU9iamVjdDYwKCkscmVzcG9uc2l2ZS50YWJsZXQscmVzcG9uc2l2ZS5tb2JpbGUpfX0pfSw2MjU0OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO3ZhciBfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fPV9fd2VicGFja19yZXF1aXJlX18oMzU5NDQpLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksbmV4dF9yb3V0ZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDExMTYzKSxuZXh0X2xpbmtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQxNjY0KSxuZXh0X2xpbmtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX19kZWZhdWx0PV9fd2VicGFja19yZXF1aXJlX18ubihuZXh0X2xpbmtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyksbmV4dF9pMThuZXh0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX189X193ZWJwYWNrX3JlcXVpcmVfXyg4NjkwKSxhbnRkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X189X193ZWJwYWNrX3JlcXVpcmVfXyg3MTAzMSksX2FudF9kZXNpZ25faWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDEwNTI0KSxjb21wb25lbnRzX2ltYWdlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X189X193ZWJwYWNrX3JlcXVpcmVfXygxMTU4NiksX2luZGV4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X189X193ZWJwYWNrX3JlcXVpcmVfXygxMTI2OCk7bGV0IExBTkdVQUdFUz1be2NvZGU6ImVuIixsYWJlbDoiRW5nbGlzaCIsZmxhZzoiXHVEODNDXHVEREVDXHVEODNDXHVEREU3In0se2NvZGU6InZpIixsYWJlbDoiVGnhur9uZyBWaeG7h3QiLGZsYWc6Ilx1RDgzQ1x1RERGQlx1RDgzQ1x1RERGMyJ9LHtjb2RlOiJydSIsbGFiZWw6ItCg0YPRgdGB0LrQuNC5IixmbGFnOiJcdUQ4M0NcdURERjdcdUQ4M0NcdURERkEifSx7Y29kZToiamEiLGxhYmVsOiLml6XmnKzoqp4iLGZsYWc6Ilx1RDgzQ1x1RERFRlx1RDgzQ1x1RERGNSJ9LHtjb2RlOiJwdCIsbGFiZWw6IlBvcnR1Z3VceGVhcyIsZmxhZzoiXHVEODNDXHVEREY1XHVEODNDXHVEREY5In0se2NvZGU6ImFyIixsYWJlbDoi2LnYsdio2YoiLGZsYWc6Ilx1RDgzQ1x1RERGOFx1RDgzQ1x1RERFNiJ9LHtjb2RlOiJlcyIsbGFiZWw6IkVzcGFceGYxb2wiLGZsYWc6Ilx1RDgzQ1x1RERFQVx1RDgzQ1x1RERGOCJ9LHtjb2RlOiJmciIsbGFiZWw6IkZyYW5ceGU3YWlzIixmbGFnOiJcdUQ4M0NcdURERUJcdUQ4M0NcdURERjcifV0sQ01QPSgpPT57dmFyIHJlZjtsZXR7c3R5bGVzfT0oMCxfaW5kZXhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy55KSgpLHtpMThuLHR9PSgwLG5leHRfaTE4bmV4dF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLiRHKSgiaW52aXRlIikscm91dGVyPSgwLG5leHRfcm91dGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udXNlUm91dGVyKSgpLGNoYW5nZUxhbmd1YWdlPSgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlQ2FsbGJhY2spKGxhbj0+e2kxOG4uY2hhbmdlTGFuZ3VhZ2UobGFuKSx3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oIkxBTkdVQUdFIixsYW4pLHJvdXRlci5wdXNoKHtwYXRobmFtZTpyb3V0ZXIucGF0aG5hbWUscXVlcnk6cm91dGVyLnF1ZXJ5fSxyb3V0ZXIuYXNQYXRoLHtsb2NhbGU6bGFufSl9LFtpMThuLHJvdXRlcl0pLGN1cnJlbnRMYW5nPSgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlTWVtbykoKCk9Pm51bGwhPT0ocmVmPUxBTkdVQUdFUy5maW5kKGw9PmwuY29kZT09PWkxOG4ubGFuZ3VhZ2UpKSYmdm9pZCAwIT09cmVmP3JlZjpMQU5HVUFHRVNbMF0sW2kxOG4ubGFuZ3VhZ2VdKSxtZW51SXRlbXM9KDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VNZW1vKSgoKT0+TEFOR1VBR0VTLm1hcChsYW5nPT4oe2tleTpsYW5nLmNvZGUsbGFiZWw6KDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5CWCkoInNwYW4iLHtjbGFzc05hbWU6c3R5bGVzLmxhbkl0ZW0sY2hpbGRyZW46W2xhbmcuZmxhZywiICIsbGFuZy5sYWJlbF19KX0pKSxbc3R5bGVzLmxhbkl0ZW1dKSxvbk1lbnVDbGljaz0oMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnVzZUNhbGxiYWNrKShwYXJhbT0+e2xldHtrZXl9PXBhcmFtO2NoYW5nZUxhbmd1YWdlKGtleSl9LFtjaGFuZ2VMYW5ndWFnZV0pO3JldHVybigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uQlgpKCJoZWFkZXIiLHtjbGFzc05hbWU6c3R5bGVzLmhlYWRlcixjaGlsZHJlbjpbKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMudGl0bGVDb250ZW50LGNoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLnRaKSgiaDEiLHtjbGFzc05hbWU6c3R5bGVzLnRpdGxlMSxjaGlsZHJlbjp0KCJoZWFkZXJfdGl0bGUxIil9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLkJYKSgiaDEiLHtjbGFzc05hbWU6c3R5bGVzLnRpdGxlMixjaGlsZHJlbjpbdCgiaGVhZGVyX3RpdGxlMl9nZXQiKSwiICIsKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy50WikoInNwYW4iLHtjbGFzc05hbWU6c3R5bGVzLmxpZ2h0LGNoaWxkcmVuOnQoImhlYWRlcl90aXRsZTJfYW1vdW50Iil9KSwiICIsdCgiaGVhZGVyX3RpdGxlMl9uZXdfcmVnIildfSldfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMubG9nbyxjaGlsZHJlbjooMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLnRaKShuZXh0X2xpbmtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX19kZWZhdWx0KCkse2hyZWY6Ii8iLGNoaWxkcmVuOigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18udFopKGNvbXBvbmVudHNfaW1hZ2VfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5aLHtzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjYwMjIwMTY1ODM1Y2M4ODI2YTlhNC53ZWJwIixhbHQ6ImxvZ28iLHdpZHRoOjg4LGhlaWdodDoyNH0pfSl9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLnRaKShhbnRkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uWix7bWVudTp7aXRlbXM6bWVudUl0ZW1zLG9uQ2xpY2s6b25NZW51Q2xpY2ssc2VsZWN0ZWRLZXlzOltpMThuLmxhbmd1YWdlXX0sdHJpZ2dlcjpbImNsaWNrIl0scGxhY2VtZW50OiJib3R0b21SaWdodCIsY2hpbGRyZW46KDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5CWCkoImJ1dHRvbiIse2NsYXNzTmFtZTpzdHlsZXMubGFuZ0J0bixjaGlsZHJlbjpbKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy50WikoX2FudF9kZXNpZ25faWNvbnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5aLHt9KSwiICIsY3VycmVudExhbmcubGFiZWxdfSl9KV19KX07X193ZWJwYWNrX2V4cG9ydHNfXy5aPUNNUH0sMTEyNjg6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se3k6ZnVuY3Rpb24oKXtyZXR1cm4gdXNlU3R5bGVzfX0pO3ZhciBfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNzI5NyksYW50ZF9zdHlsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oNzYxNTkpO2Z1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgMCUsIDEwMCUgeyBvcGFjaXR5OiAwLjY7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgNTAlIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBzY2FsZSgxLjIpOyB9XG4iXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDEoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsnXG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtd2lkdGg6IDQ4MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBmb250LWZhbWlseTogIlBsdXMgSmFrYXJ0YSBTYW5zIiwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjtcbiAgICBjb2xvcjogJywiO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIHBhZGRpbmctYm90dG9tOiAyODBweDtcbiAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0Migpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1MCwgMjUwLCAyNTAsIDEpO1xuICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDI9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbJ1xuICAgIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBhc3BlY3QtcmF0aW86IDc1MCAvIDg5NjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjYwMjIwMTY1NjQ0NzdlNjM0MzE4NC53ZWJwIik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAnXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDM9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q0KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAyMHB4O1xuICAgIHRvcDogMjBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0ND1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDUoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICIsIiwgIiwiKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogODAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q1PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0Nigpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuNXB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZmYsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSk7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDY9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q3KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMjBweDtcbiAgICB0b3A6IDIwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIHBhZGRpbmc6IDZweCAxNHB4O1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCk7XG4gICAgfVxuICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDc9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q4KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMHB4O1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICBsZWZ0OiAzMHB4O1xuICAgICIsIiB7XG4gICAgICB0b3A6IDcwcHg7XG4gICAgICBsZWZ0OiAyMHB4O1xuICAgIH1cbiAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q4PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0OSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICBjb2xvcjogcmdiYSgyNTIsIDIwMSwgMzcsIDEpO1xuICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDk9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxMCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICBmb250LXNpemU6IDIzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICA5MGRlZyxcbiAgICAgICNmZmZmZmYgMCUsXG4gICAgICAjZmZmZmZmIDEwJSxcbiAgICAgICNmY2M5MjUgMzAlLFxuICAgICAgI2Y1YTYyMyA1NSUsXG4gICAgICAjZmZmZmZmIDc1JSxcbiAgICAgICNmZmZmZmYgMTAwJVxuICAgICk7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgICAiLCIge1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgIH1cbiAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxMD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDExKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICIsIiB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgfVxuICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDExPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTIoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgcGFkZGluZy10b3A6IDQwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDQwcHg7XG4gICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTI9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxMygpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTM9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxNCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE0PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTUoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTU9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxNigpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIyNCwgMjI2LCAyMzQsIDEpO1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogMHB4IDBweCAxMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxNj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDE3KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgIG1hcmdpbi1sZWZ0OiA2cHg7XG4gICAgZm9udC1zaXplOiA1MDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE3PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTgoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTg9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxOSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXJnaW4tdG9wOiAyOHB4O1xuICAgIGFzcGVjdC1yYXRpbzogNDUyIC8gMjY4O1xuICAgIG1heC13aWR0aDogMzIwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE5PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MjAoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogLTJweDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLWhlaWdodDogMjA4cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNDQsIDI0NSwgMjQ2LCAxKTtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMjBweDtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAyMHB4O1xuICAgIG1heC13aWR0aDogNDgwcHg7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDIwcHg7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMjBweDtcbiAgICBwYWRkaW5nOiAyMHB4IDIwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoMjBweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwcHgpKTtcbiAgICB6LWluZGV4OiAxMDA7XG4gICAgYm94LXNoYWRvdzogMHB4IC00cHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDIwPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MjEoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgcGFkZGluZy10b3A6IDI0cHg7XG4gICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MjE9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyMigpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgICAuYW50LWZvcm0taXRlbSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIH1cblxuICAgIC5hbnQtaW5wdXQge1xuICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDEycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG5cbiAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6ICNiMGIzYmU7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMsXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDBweCAxMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5hbnQtaW5wdXQtYWZmaXgtd3JhcHBlciB7XG4gICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIHBhZGRpbmc6IDAgNnB4IDAgMjBweDtcbiAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMTJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA0KTtcblxuICAgICAgJjpmb2N1cyxcbiAgICAgICY6aG92ZXIsXG4gICAgICAmLmFudC1pbnB1dC1hZmZpeC13cmFwcGVyLWZvY3VzZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMTJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLmFudC1pbnB1dCB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5hbnQtaW5wdXQtcGFzc3dvcmQge1xuICAgICAgLmFudC1pbnB1dCB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYW50LWZvcm0taXRlbS1leHBsYWluLWVycm9yIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICB9XG4gICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MjI9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyMygpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAmLmFudC1idG4ge1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoNjcsIDc1LCAxNzIsIDAuMDgpO1xuICAgICAgY29sb3I6ICM0MzRiYWM7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgcGFkZGluZzogMCAxNnB4O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg2NywgNzUsIDE3MiwgMC4xNCkgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICM0MzRiYWMgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG4gICAgICAgIGNvbG9yOiAjYjBiM2JlO1xuICAgICAgfVxuICAgIH1cbiAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyMz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDI0KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICYuYW50LWJ0biB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogNDhweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzQzNGJhYyAwJSwgIzViNjNjNyAxMDAlKTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGJveC1zaGFkb3c6IDBweCA0cHggMTZweCAwcHggcmdiYSg2NywgNzUsIDE3MiwgMC4zKTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAxMzVkZWcsXG4gICAgICAgICAgIzNiNDJhMCAwJSxcbiAgICAgICAgICAjNTA1OGJmIDEwMCVcbiAgICAgICAgKSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2hhZG93OiAwcHggNnB4IDIwcHggMHB4IHJnYmEoNjcsIDc1LCAxNzIsIDAuNCk7XG4gICAgICB9XG5cbiAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTtcbiAgICAgIH1cblxuICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgIH1cbiAgICB9XG4gICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MjQ9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyNSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDhweDtcbiAgICB0b3A6IDMwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBhbmltYXRpb246ICIsIiAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyNT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDI2KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICYuYW50LWJ0biB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogNDhweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzQzNGJhYyAwJSwgIzViNjNjNyAxMDAlKTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGdhcDogOHB4O1xuICAgICAgYm94LXNoYWRvdzogMHB4IDRweCAxNnB4IDBweCByZ2JhKDY3LCA3NSwgMTcyLCAwLjI1KTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAxMzVkZWcsXG4gICAgICAgICAgIzNiNDJhMCAwJSxcbiAgICAgICAgICAjNTA1OGJmIDEwMCVcbiAgICAgICAgKSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyNj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDI3KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmbGV4LXNocmluazogMDtcbiAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyNz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDI4KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luOiAxMnB4IDA7XG4gICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Mjg9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyOSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICBmbGV4OiAxO1xuICAgIGhlaWdodDogMXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNik7XG4gICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Mjk9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzMCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICNiMGIzYmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzMD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDMxKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoMTAwJSArIDhweCk7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWluLXdpZHRoOiAxNjBweDtcbiAgICBiYWNrZ3JvdW5kOiAjMWYxZjNhO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAgIHBhZGRpbmc6IDZweCAwO1xuICAgIHotaW5kZXg6IDEwMDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzMT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDMyKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG4gICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MzI9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzMygpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICBjb2xvcjogI2ZhYWQxNDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjUwLCAxNzMsIDIwLCAwLjA4KTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTAsIDE3MywgMjAsIDAuMTUpO1xuICAgICAgY29sb3I6ICNmYWFkMTQ7XG4gICAgfVxuICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDMzPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MzQoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTI0cHg7XG4gICAgcmlnaHQ6IDEycHg7XG4gICAgd2lkdGg6IDU2cHg7XG4gICAgaGVpZ2h0OiA1NnB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDE7XG4gICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MzQ9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzNSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMjhweCAyNHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDI0cHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwgMHB4KSk7XG4gICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MzU9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzNigpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICBmb250LXNpemU6IDQwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzNj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDM3KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMjEyYjU1O1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzNz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDM4KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzhiOGZhMztcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Mzg9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzOSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Mzk9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q0MCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycztcblxuICAgICY6aG92ZXIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAzKTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDQwPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9bGV0IEJSQU5EPXtwcmltYXJ5OiIjMDE2NUZGIixwcmltYXJ5RGFyazoiIzAwNTBDQyIsYWNjZW50OiIjMDBENEFBIixnb2xkOiIjRkZENzAwIixnb2xkRGFyazoiI0ZGQTUwMCIsYmdEYXJrOiIjMEExNjI4IixiZ0NhcmQ6IiMwRjIwNDAiLHRleHQ6InJnYmEoMzMsIDQzLCA4NSwgMSkiLHRleHRTdWI6InJnYmEoMjU1LDI1NSwyNTUsMC43KSJ9LHNwYXJrbGU9KDAsYW50ZF9zdHlsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkY0KShfdGVtcGxhdGVPYmplY3QoKSksdXNlU3R5bGVzPSgwLGFudGRfc3R5bGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5rYykocGFyYW09PntsZXR7Y3NzLHJlc3BvbnNpdmV9PXBhcmFtO3JldHVybntwYWdlOmNzcyhfdGVtcGxhdGVPYmplY3QxKCksQlJBTkQudGV4dCksYmcyOmNzcyhfdGVtcGxhdGVPYmplY3QyKCkpLGhlYWRlcjpjc3MoX3RlbXBsYXRlT2JqZWN0MygpKSxsb2dvOmNzcyhfdGVtcGxhdGVPYmplY3Q0KCkpLGxvZ29JY29uOmNzcyhfdGVtcGxhdGVPYmplY3Q1KCksQlJBTkQucHJpbWFyeSxCUkFORC5hY2NlbnQpLGxvZ29UZXh0OmNzcyhfdGVtcGxhdGVPYmplY3Q2KCkpLGxhbmdCdG46Y3NzKF90ZW1wbGF0ZU9iamVjdDcoKSksdGl0bGVDb250ZW50OmNzcyhfdGVtcGxhdGVPYmplY3Q4KCkscmVzcG9uc2l2ZS5tb2JpbGUpLGxpZ2h0OmNzcyhfdGVtcGxhdGVPYmplY3Q5KCkpLHRpdGxlMTpjc3MoX3RlbXBsYXRlT2JqZWN0MTAoKSxyZXNwb25zaXZlLm1vYmlsZSksdGl0bGUyOmNzcyhfdGVtcGxhdGVPYmplY3QxMSgpLHJlc3BvbnNpdmUubW9iaWxlKSxjb250ZW50SXRlbTpjc3MoX3RlbXBsYXRlT2JqZWN0MTIoKSksc3ViVGl0bGU6Y3NzKF90ZW1wbGF0ZU9iamVjdDEzKCkpLHNjZW5lQ29udGFpbmVyOmNzcyhfdGVtcGxhdGVPYmplY3QxNCgpKSxzY2VuV3JhcDpjc3MoX3RlbXBsYXRlT2JqZWN0MTUoKSksc2NlbmVJdGVtOmNzcyhfdGVtcGxhdGVPYmplY3QxNigpKSxzY2VuZVRleHQ6Y3NzKF90ZW1wbGF0ZU9iamVjdDE3KCkpLHN1YkRlc2M6Y3NzKF90ZW1wbGF0ZU9iamVjdDE4KCkpLGJ1dmVpQ2FyZFdyYXA6Y3NzKF90ZW1wbGF0ZU9iamVjdDE5KCkpLHJlZ2lzdGVyV3JhcDpjc3MoX3RlbXBsYXRlT2JqZWN0MjAoKSksZXhwYW5kZWQ6Y3NzKF90ZW1wbGF0ZU9iamVjdDIxKCkpLGZvcm1XcmFwOmNzcyhfdGVtcGxhdGVPYmplY3QyMigpKSxjb2RlQnRuOmNzcyhfdGVtcGxhdGVPYmplY3QyMygpKSxidG5QcmltYXJ5OmNzcyhfdGVtcGxhdGVPYmplY3QyNCgpKSxidG5TcGFya2xlOmNzcyhfdGVtcGxhdGVPYmplY3QyNSgpLHNwYXJrbGUpLGJ0bkdvb2dsZTpjc3MoX3RlbXBsYXRlT2JqZWN0MjYoKSksZ29vZ2xlSWNvbjpjc3MoX3RlbXBsYXRlT2JqZWN0MjcoKSksZGl2aWRlcjpjc3MoX3RlbXBsYXRlT2JqZWN0MjgoKSksZGl2aWRlckxpbmU6Y3NzKF90ZW1wbGF0ZU9iamVjdDI5KCkpLGRpdmlkZXJUZXh0OmNzcyhfdGVtcGxhdGVPYmplY3QzMCgpKSxsYW5XcmFwOmNzcyhfdGVtcGxhdGVPYmplY3QzMSgpKSxsYW5JdGVtOmNzcyhfdGVtcGxhdGVPYmplY3QzMigpKSxsYW5JdGVtQWN0aXZlOmNzcyhfdGVtcGxhdGVPYmplY3QzMygpKSxjb2luV3JhcDpjc3MoX3RlbXBsYXRlT2JqZWN0MzQoKSksc3VjY2Vzc1dyYXA6Y3NzKF90ZW1wbGF0ZU9iamVjdDM1KCkpLHN1Y2Nlc3NJY29uOmNzcyhfdGVtcGxhdGVPYmplY3QzNigpKSxzdWNjZXNzVGl0bGU6Y3NzKF90ZW1wbGF0ZU9iamVjdDM3KCkpLHN1Y2Nlc3NEZXNjOmNzcyhfdGVtcGxhdGVPYmplY3QzOCgpKSxzdG9yZVJvdzpjc3MoX3RlbXBsYXRlT2JqZWN0MzkoKSksc3RvcmVCYWRnZTpjc3MoX3RlbXBsYXRlT2JqZWN0NDAoKSl9fSl9LDE1OTI5OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO3ZhciBfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fPV9fd2VicGFja19yZXF1aXJlX18oMzU5NDQpO19fd2VicGFja19yZXF1aXJlX18oNjcyOTQpO3ZhciBfaW5kZXhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDExMjY4KSxjb21wb25lbnRzX2ltYWdlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXygxMTU4NiksbmV4dF9pMThuZXh0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX189X193ZWJwYWNrX3JlcXVpcmVfXyg4NjkwKTtsZXQgQ01QPSgpPT57bGV0e3N0eWxlc309KDAsX2luZGV4X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ueSkoKSx7dH09KDAsbmV4dF9pMThuZXh0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uJEcpKCJpbnZpdGUiKTtyZXR1cm4oMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5jb250ZW50SXRlbSxjaGlsZHJlbjpbKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50WikoImgyIix7Y2xhc3NOYW1lOnN0eWxlcy5zdWJUaXRsZSxjaGlsZHJlbjp0KCJzY2VuZV90aXRsZSIpfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuc2NlbmVDb250YWluZXIsY2hpbGRyZW46WygwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnNjZW5XcmFwLGNoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5zY2VuZUl0ZW0sY2hpbGRyZW46WygwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udFopKGNvbXBvbmVudHNfaW1hZ2VfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5aLHtzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjYwMjE1MTgyMDIwZTIyYTg1ZTBhNy53ZWJwIixhbHQ6ImNoYXRHcHQiLHdpZHRoOjIyLGhlaWdodDoyMn0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udFopKCJzcGFuIix7Y2xhc3NOYW1lOnN0eWxlcy5zY2VuZVRleHQsY2hpbGRyZW46IkNoYXRHcHQifSldfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuc2NlbmVJdGVtLGNoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnRaKShjb21wb25lbnRzX2ltYWdlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uWix7c3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI2MDIxNTE4MjMxOTRlYjc1OTE2ODYud2VicCIsYWx0OiJmYWNlYm9vayBhZHMiLHdpZHRoOjIyLGhlaWdodDoyMn0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udFopKCJzcGFuIix7Y2xhc3NOYW1lOnN0eWxlcy5zY2VuZVRleHQsY2hpbGRyZW46IkZhY2Vib29rIn0pXX0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnNjZW5lSXRlbSxjaGlsZHJlbjpbKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50WikoY29tcG9uZW50c19pbWFnZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLlose3NyYzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNjAyMTUxODI3MjMwYzBlYTAwYzE0LndlYnAiLGFsdDoiYWlyYm5iIix3aWR0aDoyMixoZWlnaHQ6MjJ9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnRaKSgic3BhbiIse2NsYXNzTmFtZTpzdHlsZXMuc2NlbmVUZXh0LGNoaWxkcmVuOiJBaXJibmIifSldfSldfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuc2NlbldyYXAsY2hpbGRyZW46WygwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLnNjZW5lSXRlbSxjaGlsZHJlbjpbKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50WikoY29tcG9uZW50c19pbWFnZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLlose3NyYzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNjAyMTUxODMxMjNkODdjOTQyNTJlLndlYnAiLGFsdDoiQ2xhdWRlIix3aWR0aDoyMixoZWlnaHQ6MjJ9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnRaKSgic3BhbiIse2NsYXNzTmFtZTpzdHlsZXMuc2NlbmVUZXh0LGNoaWxkcmVuOiJDbGF1ZGUifSldfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuc2NlbmVJdGVtLGNoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnRaKShjb21wb25lbnRzX2ltYWdlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uWix7c3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI2MDIxNTE4MzEzNjg1M2NmMjhjYTQud2VicCIsYWx0OiJBcHBsZSBQYXkiLHdpZHRoOjIyLGhlaWdodDoyMn0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udFopKCJzcGFuIix7Y2xhc3NOYW1lOnN0eWxlcy5zY2VuZVRleHQsY2hpbGRyZW46IkFwcGxlIFBheSJ9KV19KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5zY2VuZUl0ZW0sY2hpbGRyZW46WygwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udFopKGNvbXBvbmVudHNfaW1hZ2VfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5aLHtzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjYwMjE1MTgzMTUzMDM4MGIyNzFmOC53ZWJwIixhbHQ6Ikdvb2dsZSBQYXkiLHdpZHRoOjIyLGhlaWdodDoyMn0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udFopKCJzcGFuIix7Y2xhc3NOYW1lOnN0eWxlcy5zY2VuZVRleHQsY2hpbGRyZW46Ikdvb2dsZSBQYXkifSldfSldfSldfSldfSl9O19fd2VicGFja19leHBvcnRzX18uWj1DTVB9LDE2Mjg6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7dmFyIF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X189X193ZWJwYWNrX3JlcXVpcmVfXygzNTk0NCk7X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCk7dmFyIF9pbmRleF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oMTEyNjgpLGNvbXBvbmVudHNfaW1hZ2VfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDExNTg2KSxuZXh0X2kxOG5leHRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDg2OTApO2xldCBDTVA9KCk9PntsZXR7c3R5bGVzLGN4fT0oMCxfaW5kZXhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy55KSgpLHt0fT0oMCxuZXh0X2kxOG5leHRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy4kRykoImludml0ZSIpO3JldHVybigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uQlgpKCJkaXYiLHtjbGFzc05hbWU6Y3goc3R5bGVzLmNvbnRlbnRJdGVtLHN0eWxlcy5iZzIpLGNoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnRaKSgiaDIiLHtjbGFzc05hbWU6c3R5bGVzLnN1YlRpdGxlLGNoaWxkcmVuOnQoInNwZW5kX3RpdGxlIil9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnRaKSgiaDIiLHtjbGFzc05hbWU6c3R5bGVzLnN1YkRlc2MsY2hpbGRyZW46dCgic3BlbmRfZGVzYyIpfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYnV2ZWlDYXJkV3JhcCxjaGlsZHJlbjooMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnRaKShjb21wb25lbnRzX2ltYWdlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uWix7ZmlsbDohMCxzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjYwMjE1MTgzOTIxZDJmNDFmMGU1Mi53ZWJwIixhbHQ6ImNhcmQifSl9KV19KX07X193ZWJwYWNrX2V4cG9ydHNfXy5aPUNNUH0sMjA1ODM6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pLF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnRhY3RCdXNpbmVzc319KTt2YXIgZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDM1OTQ0KSxyZWFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxhbnRTdHlsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDkyMDQxKSxyZWdleHA9X193ZWJwYWNrX3JlcXVpcmVfXyg4MTY2MyksX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsPV9fd2VicGFja19yZXF1aXJlX18oNzI5NyksZnVuY3Rpb25zPV9fd2VicGFja19yZXF1aXJlX18oNzYxNTkpO2Z1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdCgpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgbWF4LXdpZHRoOiAxMjAwcHggIWltcG9ydGFudDtcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICB0cmFuc2Zvcm06IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICAgICAgLmFudC1tb2RhbC1ib2R5IHtcbiAgICAgICAgcGFkZGluZzogMTAwcHg7XG4gICAgICB9XG4gICAgICAuYW50LW1vZGFsLWNvbnRlbnQge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAiLCIge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAuYW50LW1vZGFsLWJvZHkge1xuICAgICAgICAgIHBhZGRpbmc6IDgwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICIsIiB7XG4gICAgICAgIG1heC13aWR0aDogOTAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgNDBweDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgLmFudC1tb2RhbC1ib2R5IHtcbiAgICAgICAgICBwYWRkaW5nOiA2MHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAiLCIge1xuICAgICAgICBtYXgtd2lkdGg6IDkwJSAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwIDQwcHg7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIC5hbnQtbW9kYWwtYm9keSB7XG4gICAgICAgICAgcGFkZGluZzogMzBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgIiwiIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgLmFudC1tb2RhbC1ib2R5IHtcbiAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxKCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDIoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0Mygpe2xldCBkYXRhPSgwLF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbC5aKShbIlxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMDBweDtcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDUwcHgpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMDBweDtcblxuICAgICAgIiwiIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNjBweDtcbiAgICAgIH1cbiAgICAgICIsIiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweDtcbiAgICAgIH1cbiAgICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Mz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDQoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyIiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDQ9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q1KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDU9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q2KCl7bGV0IGRhdGE9KDAsX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsLlopKFsiXG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Nj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDcoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgIHdpZHRoOiA0MjBweDtcbiAgICAgICIsIiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Nz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDgoKXtsZXQgZGF0YT0oMCxfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWwuWikoWyJcbiAgICAgIHdpZHRoOiA2MnB4O1xuICAgICAgaGVpZ2h0OiA2MnB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0OD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWxldCB1c2VTdHlsZXM9KDAsZnVuY3Rpb25zLmtjKShwYXJhbT0+e2xldHt0b2tlbixjc3MscmVzcG9uc2l2ZX09cGFyYW07cmV0dXJue21vZGFsOmNzcyhfdGVtcGxhdGVPYmplY3QoKSxyZXNwb25zaXZlLmRlc2t0b3AscmVzcG9uc2l2ZS5sYXB0b3AscmVzcG9uc2l2ZS50YWJsZXQscmVzcG9uc2l2ZS5tb2JpbGUpLHRpdGxlOmNzcyhfdGVtcGxhdGVPYmplY3QxKCkpLHN1YkRlc2M6Y3NzKF90ZW1wbGF0ZU9iamVjdDIoKSksaW5wdXRJdGVtOmNzcyhfdGVtcGxhdGVPYmplY3QzKCkscmVzcG9uc2l2ZS50YWJsZXQscmVzcG9uc2l2ZS5tb2JpbGUpLG10ODA6Y3NzKF90ZW1wbGF0ZU9iamVjdDQoKSksYmxvY2sxU3VjY2Vzc0l0ZW06Y3NzKF90ZW1wbGF0ZU9iamVjdDUoKSksd3JhcDpjc3MoX3RlbXBsYXRlT2JqZWN0NigpKSxibG9jazFTdWNjZXNzQ29udGVudDpjc3MoX3RlbXBsYXRlT2JqZWN0NygpLHJlc3BvbnNpdmUubW9iaWxlKSxibG9jazFTdWJJbWc6Y3NzKF90ZW1wbGF0ZU9iamVjdDgoKSl9fSk7dmFyIGRheWpzX21pbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDI3NDg0KSxkYXlqc19taW5fZGVmYXVsdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oZGF5anNfbWluKSxlc19mb3JtPV9fd2VicGFja19yZXF1aXJlX18oNjMxMDIpLGVzbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDg2OTApLGNvbXBvbmVudHNfaW1hZ2U9X193ZWJwYWNrX3JlcXVpcmVfXygxMTU4NikscXVlc3Rpb249X193ZWJwYWNrX3JlcXVpcmVfXyg3MjgpLGNvbW1vbl9zdHlsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk3NjMxKSxOb3RpZnk9X193ZWJwYWNrX3JlcXVpcmVfXyg3MTIzOSksbG9hZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDUxNjEwKSx0b29sPV9fd2VicGFja19yZXF1aXJlX18oNTkwMTQpO2xldCBDTVA9cGFyYW09PntsZXR7b3BlbixvbkNsb3NlfT1wYXJhbSx7dH09KDAsZXNtLiRHKShbImluZGV4IiwiY29tbW9uIl0pLHtzdHlsZXMsY3h9PXVzZVN0eWxlcygpLHtzdHlsZXM6Y29tbW9uU3R5bGVzfT0oMCxjb21tb25fc3R5bGUuYykoKSxbbG9hZGluZyxzZXRMb2FkaW5nXT0oMCxyZWFjdC51c2VTdGF0ZSkoITEpLFtmb3JtXT1lc19mb3JtLloudXNlRm9ybSgpLFtkYXRhLHNldERhdGFdPSgwLHJlYWN0LnVzZVN0YXRlKShudWxsKSxvblN1Ym1pdD0oKT0+e2Zvcm0udmFsaWRhdGVGaWVsZHMoKS50aGVuKGFzeW5jIHZhbHVlcz0+e3NldExvYWRpbmcoITApO2xldCBwYXJhbXM9e25hbWU6dmFsdWVzLm5hbWUscGhvbmU6dmFsdWVzLnBob25lLGNvbXBhbnlOYW1lOnZhbHVlcy5jb21wYW55TmFtZSxlbWFpbDp2YWx1ZXMubWFpbCxhcHBvaW50bWVudFRpbWU6dmFsdWVzLnRpbWUudmFsdWVPZigpLGpvYlRpdGxlOnZhbHVlcy5qb2JUaXRsZSxzZXJ2aWNlRGVzY3JpcHRpb246dmFsdWVzLmRlc2N9LHJlcz1hd2FpdCAoMCxxdWVzdGlvbi5KRykocGFyYW1zKTtzZXRMb2FkaW5nKCExKSxyZXMuc3VjY2VzcyYmKHNldERhdGEocGFyYW1zKSwoMCxOb3RpZnkuWikoInN1Y2Nlc3MiLCJTdWJtaXR0ZWQiKSl9KS5jYXRjaCgoKT0+e3NldExvYWRpbmcoITEpfSl9O3JldHVybigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGFudFN0eWxlLng2LHtvcGVuOm9wZW4sZm9vdGVyOm51bGwsY2xhc3NOYW1lOnN0eWxlcy5tb2RhbCxvbkNsb3NlOm9uQ2xvc2Usb25DYW5jZWw6b25DbG9zZSxjaGlsZHJlbjpkYXRhPygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsb2FkLktGLHtjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5mbGV4Q2VudGVyQ2VudGVyLGNvbW1vblN0eWxlcy5mbGV4Q29sdW1uLGNvbW1vblN0eWxlcy5tdDYwKSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikobG9hZC5nZCx7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazFTdWJJbWcsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoY29tcG9uZW50c19pbWFnZS5aLHtmaWxsOiEwLGFsdDoic3VjY2VzcyIsc3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDUxNzE2MTg0OGZhMTNlOGM2MmYud2VicCJ9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxvYWQuZ2Qse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuc2l6ZTI0LGNvbW1vblN0eWxlcy5tdDIwKSxjaGlsZHJlbjp0KCJ0aXRsZTY1Iix7bnM6ImluZGV4In0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpjeChzdHlsZXMuYmxvY2sxU3VjY2Vzc0NvbnRlbnQsY29tbW9uU3R5bGVzLm10MzYpLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKShsb2FkLmdkLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrMVN1Y2Nlc3NJdGVtLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5mbGV4Q2VudGVyKSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoY29tcG9uZW50c19pbWFnZS5aLHt3aWR0aDoxNixoZWlnaHQ6MTYsYWx0OiJuYW1lIixzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNTE5MjEwOTMzNDgzOWM1NDg3Ni53ZWJwIn0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJzcGFuIix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5jb2xvcjYsY29tbW9uU3R5bGVzLm1sOCxzdHlsZXMud3JhcCksY2hpbGRyZW46W3QoInRpdGxlNjYiLHtuczoiaW5kZXgifSksIjoiXX0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6Y29tbW9uU3R5bGVzLm1sOCxjaGlsZHJlbjpudWxsPT1kYXRhP3ZvaWQgMDpkYXRhLm5hbWV9KV19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKShsb2FkLmdkLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrMVN1Y2Nlc3NJdGVtLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5mbGV4Q2VudGVyKSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoY29tcG9uZW50c19pbWFnZS5aLHt3aWR0aDoxNixoZWlnaHQ6MTYsYWx0OiJjb21wYW55IixzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNTE5MjExMDMxMWYwOWFhMDc0ZS53ZWJwIn0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJzcGFuIix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5jb2xvcjYsY29tbW9uU3R5bGVzLm1sOCksY2hpbGRyZW46W3QoInRpdGxlNjciLHtuczoiaW5kZXgifSksIjoiXX0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6Y29tbW9uU3R5bGVzLm1sOCxjaGlsZHJlbjpudWxsPT1kYXRhP3ZvaWQgMDpkYXRhLmNvbXBhbnlOYW1lfSldfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkobG9hZC5nZCx7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazFTdWNjZXNzSXRlbSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuZmxleENlbnRlciksY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7d2lkdGg6MTYsaGVpZ2h0OjE2LGFsdDoiam9iIixzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNTE5MjExMjE1YjI5MmEzNWQ3OC53ZWJwIn0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJzcGFuIix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5jb2xvcjYsY29tbW9uU3R5bGVzLm1sOCksY2hpbGRyZW46W3QoInRpdGxlNjgiLHtuczoiaW5kZXgifSksIjoiXX0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6Y29tbW9uU3R5bGVzLm1sOCxjaGlsZHJlbjpudWxsPT1kYXRhP3ZvaWQgMDpkYXRhLmpvYlRpdGxlfSldfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkobG9hZC5nZCx7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazFTdWNjZXNzSXRlbSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuZmxleENlbnRlciksY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7d2lkdGg6MTYsaGVpZ2h0OjE2LGFsdDoibWFpbCIsc3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDUxOTIxMTI0NzliMzlmMzU3ZTQud2VicCJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgic3BhbiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuY29sb3I2LGNvbW1vblN0eWxlcy5tbDgpLGNoaWxkcmVuOlt0KCJ0aXRsZTY5Iix7bnM6ImluZGV4In0pLCI6Il19KV19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmNvbW1vblN0eWxlcy5tbDgsY2hpbGRyZW46bnVsbD09ZGF0YT92b2lkIDA6ZGF0YS5lbWFpbH0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKGxvYWQuZ2Qse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2sxU3VjY2Vzc0l0ZW0sY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLmZsZXhDZW50ZXIpLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShjb21wb25lbnRzX2ltYWdlLlose3dpZHRoOjE2LGhlaWdodDoxNixhbHQ6InBob25lIixzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNTE5MjExMzM5YTgzYTRiMjEzNC53ZWJwIn0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJzcGFuIix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5jb2xvcjYsY29tbW9uU3R5bGVzLm1sOCksY2hpbGRyZW46W3QoInRpdGxlNzAiLHtuczoiaW5kZXgifSksIjoiXX0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6Y29tbW9uU3R5bGVzLm1sOCxjaGlsZHJlbjpudWxsPT1kYXRhP3ZvaWQgMDpkYXRhLnBob25lfSldfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkobG9hZC5nZCx7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazFTdWNjZXNzSXRlbSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuZmxleENlbnRlciksY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7d2lkdGg6MTYsaGVpZ2h0OjE2LGFsdDoidGltZSIsc3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDUxOTIxMTU0OGRkMzYzNjFjMGMud2VicCJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgic3BhbiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuY29sb3I2LGNvbW1vblN0eWxlcy5tbDgpLGNoaWxkcmVuOlt0KCJ0aXRsZTcxIix7bnM6ImluZGV4In0pLCI6Il19KV19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmNvbW1vblN0eWxlcy5tbDgsY2hpbGRyZW46KDAsdG9vbC52YykobnVsbD09ZGF0YT92b2lkIDA6ZGF0YS5hcHBvaW50bWVudFRpbWUsIllZWVktTU0tZGQgaGg6bW0iKX0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKGxvYWQuZ2Qse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2sxU3VjY2Vzc0l0ZW0sY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLmZsZXhDZW50ZXIpLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShjb21wb25lbnRzX2ltYWdlLlose3dpZHRoOjE2LGhlaWdodDoxNixhbHQ6ImRlc2MiLHNyYzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA1MTkyMTE2MDM0ZGNkNjc0OTU1LndlYnAifSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoInNwYW4iLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLmNvbG9yNixjb21tb25TdHlsZXMubWw4LHN0eWxlcy53cmFwKSxjaGlsZHJlbjpbdCgidGl0bGU3MiIse25zOiJpbmRleCJ9KSwiOiJdfSldfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpjb21tb25TdHlsZXMubWw4LGNoaWxkcmVuOm51bGw9PWRhdGE/dm9pZCAwOmRhdGEuc2VydmljZURlc2NyaXB0aW9ufSldfSldfSldfSl9KX0pOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpjb21tb25TdHlsZXMuY2VudGVyLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiaDEiLHtjbGFzc05hbWU6Y29tbW9uU3R5bGVzLmgyLGNoaWxkcmVuOnQoInRpdGxlNzMiLHtuczoiaW5kZXgifSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgicCIse2NsYXNzTmFtZTpjb21tb25TdHlsZXMuc2l6ZTIwLGNoaWxkcmVuOnQoInRpdGxlNzQiLHtuczoiaW5kZXgifSl9KV19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5tdDgwKSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShhbnRTdHlsZS5kZix7bGF5b3V0OiJ2ZXJ0aWNhbCIsZm9ybTpmb3JtLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLm10ODApLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmNvbW1vblN0eWxlcy5pbnB1dEl0ZW0sY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoZXNfZm9ybS5aLkl0ZW0se2xhYmVsOnQoInRpdGxlNjYiLHtuczoiaW5kZXgifSksbmFtZToibmFtZSIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOnQoInRpdGxlNzUiLHtuczoiaW5kZXgifSl9XSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShhbnRTdHlsZS56dix7cGxhY2Vob2xkZXI6dCgidGl0bGU3NiIse25zOiJpbmRleCJ9KX0pfSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmNvbW1vblN0eWxlcy5pbnB1dEl0ZW0sY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoZXNfZm9ybS5aLkl0ZW0se2xhYmVsOnQoInRpdGxlNjciLHtuczoiaW5kZXgifSksbmFtZToiY29tcGFueU5hbWUiLHJ1bGVzOlt7cmVxdWlyZWQ6ITAsbWVzc2FnZTp0KCJ0aXRsZTc3Iix7bnM6ImluZGV4In0pfV0sY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoYW50U3R5bGUuenYse3BsYWNlaG9sZGVyOnQoInRpdGxlNzgiLHtuczoiaW5kZXgifSl9KX0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpjb21tb25TdHlsZXMuaW5wdXRJdGVtLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGVzX2Zvcm0uWi5JdGVtLHtsYWJlbDp0KCJ0aXRsZTY4Iix7bnM6ImluZGV4In0pLG5hbWU6ImpvYlRpdGxlIixydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6dCgidGl0bGU3OSIse25zOiJpbmRleCJ9KX1dLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGFudFN0eWxlLnp2LHtwbGFjZWhvbGRlcjp0KCJ0aXRsZTgwIix7bnM6ImluZGV4In0pfSl9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6Y29tbW9uU3R5bGVzLmlucHV0SXRlbSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShlc19mb3JtLlouSXRlbSx7bGFiZWw6dCgidGl0bGU2OSIse25zOiJpbmRleCJ9KSxuYW1lOiJtYWlsIixydWxlczpbe3JlcXVpcmVkOiEwLG1lc3NhZ2U6dCgidGl0bGU4MSIse25zOiJpbmRleCJ9KX0se3BhdHRlcm46cmVnZXhwLkdULG1lc3NhZ2U6dCgidGl0bGU4MiIse25zOiJpbmRleCJ9KX1dLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGFudFN0eWxlLnp2LHtwbGFjZWhvbGRlcjp0KCJ0aXRsZTgzIix7bnM6ImluZGV4In0pfSl9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6Y29tbW9uU3R5bGVzLmlucHV0SXRlbSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShlc19mb3JtLlouSXRlbSx7bGFiZWw6dCgidGl0bGU3MCIse25zOiJpbmRleCJ9KSxuYW1lOiJwaG9uZSIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOnQoInRpdGxlODQiLHtuczoiaW5kZXgifSl9XSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShhbnRTdHlsZS56dix7cGxhY2Vob2xkZXI6dCgidGl0bGU4NSIse25zOiJpbmRleCJ9KX0pfSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmNvbW1vblN0eWxlcy5pbnB1dEl0ZW0sY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoZXNfZm9ybS5aLkl0ZW0se2xhYmVsOnQoInRpdGxlNzEiLHtuczoiaW5kZXgifSksbmFtZToidGltZSIscnVsZXM6W3tyZXF1aXJlZDohMCxtZXNzYWdlOnQoInRpdGxlODYiLHtuczoiaW5kZXgifSl9XSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShhbnRTdHlsZS5WJCx7c2hvd1RpbWU6ITAsZm9ybWF0OiJZWVlZLU1NLUREIEhIOm1tIixkaXNhYmxlZERhdGU6Y3VycmVudD0+Y3VycmVudCYmY3VycmVudDxkYXlqc19taW5fZGVmYXVsdCgpKCkuc3RhcnRPZigiZGF5Iil9KX0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoZXNfZm9ybS5aLkl0ZW0se2xhYmVsOnQoInRpdGxlNzIiLHtuczoiaW5kZXgifSksbmFtZToiZGVzYyIscnVsZXM6W10sY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoYW50U3R5bGUuU24se3Jvd3M6NCxwbGFjZWhvbGRlcjp0KCJ0MSIse25zOiJjb21tb24ifSl9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6Y29tbW9uU3R5bGVzLmNvbG9yNCxjaGlsZHJlbjp0KCJ0aXRsZTg3Iix7bnM6ImluZGV4In0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuZmxleENlbnRlckNlbnRlcixjb21tb25TdHlsZXMubXQ4MCksY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoYW50U3R5bGUudDgse3R5cGU6InByaW1hcnkiLG9uQ2xpY2s6b25TdWJtaXQsbG9hZGluZzpsb2FkaW5nLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJzcGFuIix7Y2hpbGRyZW46dCgidGl0bGU4OCIse25zOiJjb21tb24ifSl9KX0pfSldfSl9KX0pXX0pfSl9O3ZhciBjb250YWN0QnVzaW5lc3M9Q01QfSw4NDI4MzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7eTpmdW5jdGlvbigpe3JldHVybiB1c2VTdHlsZXN9fSk7dmFyIF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg3Mjk3KSxhbnRkX3N0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg3NjE1OSk7ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcGFkZGluZzogODBweCAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDI7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgbGluZS1oZWlnaHQ6IDI7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0Migpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWydcbiAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICIiO1xuICAgICAgICB3aWR0aDogNnB4O1xuICAgICAgICBoZWlnaHQ6IDZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDE1cHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICB9XG4gICAgJ10pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0Mygpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMjtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDM9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q0KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgbGluZS1oZWlnaHQ6IDI7XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q0PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9bGV0IHVzZVN0eWxlcz0oMCxhbnRkX3N0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ua2MpKHBhcmFtPT57bGV0e3Rva2VuLGNzcyxyZXNwb25zaXZlfT1wYXJhbTtyZXR1cm57d2FycDpjc3MoX3RlbXBsYXRlT2JqZWN0KCkpLGRlc2M6Y3NzKF90ZW1wbGF0ZU9iamVjdDEoKSksbGk6Y3NzKF90ZW1wbGF0ZU9iamVjdDIoKSksdGl0bGU6Y3NzKF90ZW1wbGF0ZU9iamVjdDMoKSksdGltZTpjc3MoX3RlbXBsYXRlT2JqZWN0NCgpKX19KX0sNzc1OTk6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se3k6ZnVuY3Rpb24oKXtyZXR1cm4gdXNlU3R5bGVzfX0pO3ZhciBfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNzI5NyksYW50ZF9zdHlsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oNzYxNTkpO2Z1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNlNGU4ZjkgMCUsICNmNWY3ZmYgMTAwJSk7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTA7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0Migpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIC8qIHdpZHRoOiAxMDhweDsgKi9cbiAgICAgIC8qIGFzcGVjdC1yYXRpbzogMTsgKi9cbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDg1cHg7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxNWRlZyk7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0Mygpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAxMDhweDtcbiAgICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgICAgIC8qIGxlZnQ6IDA7ICovXG4gICAgICB0b3A6IDg1cHg7XG4gICAgICAvKiB0cmFuc2Zvcm06IHJvdGF0ZSgxNWRlZyk7ICovXG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDEwOHB4O1xuICAgICAgdG9wOiA1OSU7XG4gICAgICAiLCIge1xuICAgICAgICBsZWZ0OiA2MHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0ND1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDUoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogNzhweDtcbiAgICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDU9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q2KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMjclO1xuICAgICAgdG9wOiA1MC44JTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM1MmRlZyk7XG4gICAgICAiLCIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Nj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDcoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogOTZweDtcbiAgICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDc9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q4KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMzklO1xuICAgICAgdG9wOiA3NCU7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNDdkZWcpO1xuICAgICAgIiwiIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDg9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q5KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDEwNXB4O1xuICAgICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0OT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDEwKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogNjklO1xuICAgICAgdG9wOiA2MCU7XG4gICAgICAiLCIge1xuICAgICAgICB0b3A6IDQwJTtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDEwPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTEoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogMTA4cHg7XG4gICAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxMT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDEyKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0b3A6IDY4JTtcbiAgICAgICIsIiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxMj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDEzKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDExNHB4O1xuICAgICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTM9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxNCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiA2MHB4O1xuICAgICAgdG9wOiAyMSU7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxND1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDE1KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDk2cHg7XG4gICAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxNT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDE2KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgcGFkZGluZzogMTBweCA4cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAiLCI7XG4gICAgICBib3JkZXItcmFkaXVzOiA4cHggOHB4IDhweCA4cHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgICBtYXJnaW4tdG9wOiA4MHB4O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMC45O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE2PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTcoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgY29sb3I6ICIsIjtcbiAgICAgIG1hcmdpbi10b3A6IDQwcHg7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMC45O1xuICAgICAgICBjb2xvcjogIiwiO1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTc9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxOCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgY29sb3I6ICIsIjtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE4PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTkoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAiLCI7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE5PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MjAoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMzg0YWEwIDAlLCAjNTUzOGEwIDEwMCUpO1xuICAgICAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyMD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDIxKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIG1hcmdpbi10b3A6IDgwcHg7XG4gICAgICAiLCIge1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyMT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDIyKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgZmxleDogMCAwIDU1JTtcbiAgICAgIG1hcmdpbi1yaWdodDogNDBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAiLCIge1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDIyPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MjMoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBmbGV4OiAxO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MjM9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyNCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ1LCAyNDcsIDI1NSwgMSk7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgcGFkZGluZzogMzBweDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAiLCIge1xuICAgICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MjQ9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyNSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgYXNwZWN0LXJhdGlvOiA1MTggLyAzMDA7XG4gICAgICBtYXgtd2lkdGg6IDUxOHB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyNT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDI2KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTA7XG4gICAgICBhc3BlY3QtcmF0aW86IDUwNiAvIDMxNjtcbiAgICAgIG1heC13aWR0aDogNTA2cHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDI2PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MjcoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIGFzcGVjdC1yYXRpbzogNTgwIC8gMzMwO1xuICAgICAgbWF4LXdpZHRoOiA1ODBweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Mjc9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyOCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGFzcGVjdC1yYXRpbzogNTYwIC8gMzAwO1xuICAgICAgbWF4LXdpZHRoOiA1MjBweDtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDI4PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MjkoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHotaW5kZXg6IDIwO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Mjk9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzMCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgaGVpZ2h0OiA4MHB4O1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MzA9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzMSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzMT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDMyKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgcGFkZGluZzogN3B4IDEycHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgY29sb3I6IHJnYmEoODUsIDU2LCAxNjAsIDEpO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg4NSwgNTYsIDE2MCwgMSk7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjVmN2ZmO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDMyPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MzMoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBjb2xvcjogIiwiO1xuICAgICAgYm9yZGVyOiAycHggc29saWQgIiwiO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MzM9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzNCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzND1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDM1KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzNT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDM2KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XG4gICAgICAiLCIge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDM2PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MzcoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBmbGV4OiAxO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1NHB4O1xuICAgICAgIiwiIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDM3PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MzgoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBmbGV4OiAxO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Mzg9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzOSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIG1hcmdpbjogNDBweCAwO1xuICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjOTI5ZWQ5O1xuICAgICAgIiwiIHtcbiAgICAgICAgbWFyZ2luOiAxNXB4IDA7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzOT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDQwKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMTBweCk7XG4gICAgICBoZWlnaHQ6IDIyMHB4O1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgYm9yZGVyOiAycHggc29saWQgI2ZmZmZmZjtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NDA9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q0MSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHdpZHRoOiA3MnB4O1xuICAgICAgaGVpZ2h0OiA3MnB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgIGZsZXg6IDAgMCA3MnB4O1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NDE9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q0Migpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGZsZXg6IDE7XG4gICAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2Y0ZjVmNjtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgIH1cbiAgICAgICIsIiB7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NDI9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q0Mygpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGhlaWdodDogODBweDtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICAiLCIge1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICB9XG4gICAgICAiLCIge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDQzPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NDQoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBjb2xvcjogIzdkODI5ZDtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDQ0PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NDUoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICBtaW4taGVpZ2h0OiAxNDBweDtcbiAgICAgICIsIiB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q0NT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDQ2KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgIGFzcGVjdC1yYXRpbzogMzY4IC8gMTAwO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NDY9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q0Nygpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGZsZXg6IDE7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBhc3BlY3QtcmF0aW86IDU5MCAvIDQyNDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgIiwiIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NDc9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q0OCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGFzcGVjdC1yYXRpbzogNTkwIC8gMzY0O1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NDg9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q0OSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGFzcGVjdC1yYXRpbzogNTkwIC8gNjE2O1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NDk9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q1MCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgIiwiIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDUwPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NTEoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBmbGV4OiAxO1xuICAgICAgIiwiIHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q1MT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDUyKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICBwYWRkaW5nOiA1MnB4IDIwcHggMjBweCAyMHB4O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDUyPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NTMoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NTM9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q1NCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IC0ycHg7XG4gICAgICB0b3A6IC0ycHg7XG4gICAgICBwYWRkaW5nOiA3cHggMTJweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMzBweDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzMHB4O1xuICAgICAgYmFja2dyb3VuZDogI2U0ZThmOTtcbiAgICAgIGNvbG9yOiAjMzg0YWEwO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NTQ9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q1NSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGJhY2tncm91bmQ6ICNlOWUzZmE7XG4gICAgICBjb2xvcjogIzU1MzhhMDtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDU1PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NTYoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICB3aWR0aDogNjBweDtcbiAgICAgIGhlaWdodDogNjBweDtcbiAgICAgIGZsZXg6IDAgMCA2MHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgYmFja2dyb3VuZDogI2ZhZmFmYTtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDU2PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NTcoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDU3PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NTgoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBhc3BlY3QtcmF0aW86IDEyMDAgLyAzNjA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NTg9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q1OSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyIiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDU5PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NjAoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDYwPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NjEoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICMzODRhYTAgMCUsICM1NTM4YTAgMTAwJSk7XG4gICAgICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDYxPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NjIoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBjb2xvcjogIiwiO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NjI9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q2Mygpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGZsZXg6IDE7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICAiLCIge1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgIH1cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDYzPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NjQoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NjQ9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q2NSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGNvbG9yOiAjN2Q4MjlkO1xuICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NjU9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q2Nigpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIG1heC13aWR0aDogMTAwMHB4O1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q2Nj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWxldCB1c2VTdHlsZXM9KDAsYW50ZF9zdHlsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmtjKShwYXJhbT0+e2xldHt0b2tlbixjc3MscmVzcG9uc2l2ZX09cGFyYW07cmV0dXJue2JnMTpjc3MoX3RlbXBsYXRlT2JqZWN0KCkpLHRvcEluZGV4OmNzcyhfdGVtcGxhdGVPYmplY3QxKCkpLGljb24xOmNzcyhfdGVtcGxhdGVPYmplY3QyKCkpLGljb24xMTpjc3MoX3RlbXBsYXRlT2JqZWN0MygpKSxpY29uMjpjc3MoX3RlbXBsYXRlT2JqZWN0NCgpLHJlc3BvbnNpdmUubW9iaWxlKSxpY29uMjI6Y3NzKF90ZW1wbGF0ZU9iamVjdDUoKSksaWNvbjM6Y3NzKF90ZW1wbGF0ZU9iamVjdDYoKSxyZXNwb25zaXZlLm1vYmlsZSksaWNvbjMzOmNzcyhfdGVtcGxhdGVPYmplY3Q3KCkpLGljb240OmNzcyhfdGVtcGxhdGVPYmplY3Q4KCkscmVzcG9uc2l2ZS5tb2JpbGUpLGljb240NDpjc3MoX3RlbXBsYXRlT2JqZWN0OSgpKSxpY29uNTpjc3MoX3RlbXBsYXRlT2JqZWN0MTAoKSxyZXNwb25zaXZlLm1vYmlsZSksaWNvbjU1OmNzcyhfdGVtcGxhdGVPYmplY3QxMSgpKSxpY29uNjpjc3MoX3RlbXBsYXRlT2JqZWN0MTIoKSxyZXNwb25zaXZlLm1vYmlsZSksaWNvbjY2OmNzcyhfdGVtcGxhdGVPYmplY3QxMygpKSxpY29uNzpjc3MoX3RlbXBsYXRlT2JqZWN0MTQoKSksaWNvbjc3OmNzcyhfdGVtcGxhdGVPYmplY3QxNSgpKSxibG9jazFRdWlja0J0bjpjc3MoX3RlbXBsYXRlT2JqZWN0MTYoKSx0b2tlbi5jb2xvclByaW1hcnkpLGJsb2NrMVF1aWNrQnRuMjpjc3MoX3RlbXBsYXRlT2JqZWN0MTcoKSx0b2tlbi5jb2xvclRleHQsdG9rZW4uY29sb3JUZXh0KSxhcnJvd0JveDpjc3MoX3RlbXBsYXRlT2JqZWN0MTgoKSx0b2tlbi5jb2xvclByaW1hcnkpLGFycm93Qm94Mjpjc3MoX3RlbXBsYXRlT2JqZWN0MTkoKSx0b2tlbi5jb2xvclByaW1hcnkpLGJsb2NrMlNidURlc2M6Y3NzKF90ZW1wbGF0ZU9iamVjdDIwKCkpLGJsb2NrMkl0ZW06Y3NzKF90ZW1wbGF0ZU9iamVjdDIxKCkscmVzcG9uc2l2ZS5tb2JpbGUpLGJsb2NrMkxlZnRJbWdXcmFwOmNzcyhfdGVtcGxhdGVPYmplY3QyMigpLHJlc3BvbnNpdmUubW9iaWxlKSxibG9jazJSaWdodENvbnRlbnQ6Y3NzKF90ZW1wbGF0ZU9iamVjdDIzKCkpLGJsb2NrMkltZ0NvbnRlbnQ6Y3NzKF90ZW1wbGF0ZU9iamVjdDI0KCkscmVzcG9uc2l2ZS5tb2JpbGUpLGJsb2NrMkltZzE6Y3NzKF90ZW1wbGF0ZU9iamVjdDI1KCkpLGJsb2NrMkltZzM6Y3NzKF90ZW1wbGF0ZU9iamVjdDI2KCkpLGJsb2NrMkltZzI6Y3NzKF90ZW1wbGF0ZU9iamVjdDI3KCkpLGJsb2NrMkltZzQ6Y3NzKF90ZW1wbGF0ZU9iamVjdDI4KCkpLGJsb2NrMk51bTpjc3MoX3RlbXBsYXRlT2JqZWN0MjkoKSksYmxvY2syTnVtV3JhcDpjc3MoX3RlbXBsYXRlT2JqZWN0MzAoKSkscHJvYmxlbTpjc3MoX3RlbXBsYXRlT2JqZWN0MzEoKSksYmxvY2syQnRuOmNzcyhfdGVtcGxhdGVPYmplY3QzMigpKSxibG9jazJCZ24yOmNzcyhfdGVtcGxhdGVPYmplY3QzMygpLHRva2VuLmNvbG9yUHJpbWFyeSx0b2tlbi5jb2xvclByaW1hcnkpLGJsb2NrMkJ0blRleHQ6Y3NzKF90ZW1wbGF0ZU9iamVjdDM0KCkpLGJsb2NrMkJ0blRleHQyOmNzcyhfdGVtcGxhdGVPYmplY3QzNSgpKSxub01hcmdpblJpZ2h0OmNzcyhfdGVtcGxhdGVPYmplY3QzNigpLHJlc3BvbnNpdmUubW9iaWxlKSxibG9jazNMZWZ0OmNzcyhfdGVtcGxhdGVPYmplY3QzNygpLHJlc3BvbnNpdmUubW9iaWxlKSxibG9jazNSaWdodDpjc3MoX3RlbXBsYXRlT2JqZWN0MzgoKSksYmxvY2szTGluZTpjc3MoX3RlbXBsYXRlT2JqZWN0MzkoKSxyZXNwb25zaXZlLm1vYmlsZSksYmxvY2szUmlnaHRJdGVtOmNzcyhfdGVtcGxhdGVPYmplY3Q0MCgpKSxibG9jazNSaWdodEl0ZW1JbWc6Y3NzKF90ZW1wbGF0ZU9iamVjdDQxKCkpLGJsb2NrNEl0ZW06Y3NzKF90ZW1wbGF0ZU9iamVjdDQyKCkscmVzcG9uc2l2ZS5tb2JpbGUpLGJsb2NrNFRpdGxlV3JhcDpjc3MoX3RlbXBsYXRlT2JqZWN0NDMoKSxyZXNwb25zaXZlLnRhYmxldCxyZXNwb25zaXZlLm1vYmlsZSksYmxvY2s0U3ViVGl0bGU6Y3NzKF90ZW1wbGF0ZU9iamVjdDQ0KCkpLGJsb2NrNFRleHQ6Y3NzKF90ZW1wbGF0ZU9iamVjdDQ1KCkscmVzcG9uc2l2ZS5tb2JpbGUpLGJsb2NrNEZvb3RlckltZzpjc3MoX3RlbXBsYXRlT2JqZWN0NDYoKSksYmxvY2s1UmlnaHQ6Y3NzKF90ZW1wbGF0ZU9iamVjdDQ3KCkscmVzcG9uc2l2ZS5tb2JpbGUpLGJsb2NrNVJpZ2h0Mzpjc3MoX3RlbXBsYXRlT2JqZWN0NDgoKSksYmxvY2s1UmlnaHQ0OmNzcyhfdGVtcGxhdGVPYmplY3Q0OSgpKSxibG9jazVSaWdodDI6Y3NzKF90ZW1wbGF0ZU9iamVjdDUwKCkscmVzcG9uc2l2ZS5tb2JpbGUpLGJsY29rNUxlZnQ6Y3NzKF90ZW1wbGF0ZU9iamVjdDUxKCkscmVzcG9uc2l2ZS5tb2JpbGUpLGJsb2NrNUl0ZW06Y3NzKF90ZW1wbGF0ZU9iamVjdDUyKCkpLGJsb2NrNUl0ZW1CZzI6Y3NzKF90ZW1wbGF0ZU9iamVjdDUzKCkpLGJsb2NrNVRhZzpjc3MoX3RlbXBsYXRlT2JqZWN0NTQoKSksYmxvY2s1VGFnMjpjc3MoX3RlbXBsYXRlT2JqZWN0NTUoKSksYmxvY2s1SW1nV3JhcDpjc3MoX3RlbXBsYXRlT2JqZWN0NTYoKSksYmxvY2s1VGl0bGVXcmFwOmNzcyhfdGVtcGxhdGVPYmplY3Q1NygpKSxibG9jazVGb290ZXI6Y3NzKF90ZW1wbGF0ZU9iamVjdDU4KCkpLGJsb2NrNUZvb3RlckltZzpjc3MoX3RlbXBsYXRlT2JqZWN0NTkoKSksYmxvY2s1Rm9vdGVyQ29udGVudDpjc3MoX3RlbXBsYXRlT2JqZWN0NjAoKSksYmxvY2s1Rm9vdGVyVGl0bGU6Y3NzKF90ZW1wbGF0ZU9iamVjdDYxKCkpLGJsb2NrMlNvbHV0aW9uOmNzcyhfdGVtcGxhdGVPYmplY3Q2MigpLHRva2VuLmNvbG9yUHJpbWFyeSksYmxvY2s0U3ViSXRlbTpjc3MoX3RlbXBsYXRlT2JqZWN0NjMoKSxyZXNwb25zaXZlLm1vYmlsZSksYmxvY2s0U3ViSXRlbVBlcnNvbldyYXA6Y3NzKF90ZW1wbGF0ZU9iamVjdDY0KCkpLGJsb2NrNFN1Ykl0ZW1QZXJzb25UYWc6Y3NzKF90ZW1wbGF0ZU9iamVjdDY1KCkpLG1heDEwMDA6Y3NzKF90ZW1wbGF0ZU9iamVjdDY2KCkpfX0pfSw2ODE3MTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7eTpmdW5jdGlvbigpe3JldHVybiB1c2VTdHlsZXN9fSk7dmFyIF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg3Mjk3KSxhbnRkX3N0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg3NjE1OSk7ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAxODBkZWcsXG4gICAgICAgIHJnYmEoNTYsIDc0LCAxNjAsIDkpIDAlLFxuICAgICAgICAjMjEzNTk2IDEwMCVcbiAgICAgICk7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgYXNwZWN0LXJhdGlvOiA1MTkgLyA0MTQ7XG4gICAgICBmbGV4OiAwIDAgNDAlO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgIiwiIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDI9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYXNwZWN0LXJhdGlvOiA0NDQgLyA0MzI7XG4gICAgICB3aWR0aDogNTg0cHg7XG4gICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAiLCIge1xuICAgICAgICB3aWR0aDogNDAwcHg7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0ND1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDUoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDQwcHg7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q1PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0Nigpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGNvbG9yOiAjYmZjN2ViO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Nj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDcoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICB3aWR0aDogMjI4cHg7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgcGFkZGluZzogMTBweCA4cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgYm9yZGVyLXJhZGl1czogOHB4IDhweCA4cHggOHB4O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuICAgICAgbWFyZ2luLXRvcDogNDhweDtcbiAgICAgIGNvbG9yOiAiLCI7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMC45O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Nz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDgoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAiLCI7XG4gICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDg9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q5KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLXRvcDogODBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNTBweDtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDk9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxMCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDEwPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTEoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBsZWZ0OiA5MnB4O1xuICAgICAgdG9wOiAtMzZweDtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDExPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTIoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogNzJweDtcbiAgICAgIGhlaWdodDogNzJweDtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDEyPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTMoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBsZWZ0OiBjYWxjKDkycHggKyA1MnB4KTtcbiAgICAgIHRvcDogNTZweDtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDEzPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTQoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBsZWZ0OiBjYWxjKDkycHggKyA1MnB4ICsgOTJweCk7XG4gICAgICB0b3A6IDBweDtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE0PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTUoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBsZWZ0OiBjYWxjKDkycHggKyA1MnB4ICsgOTJweCArIDExMnB4KTtcbiAgICAgIHRvcDogMzZweDtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICIsIiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxNT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDE2KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgbGVmdDogY2FsYyg5MnB4ICsgNTJweCArIDkycHggKyAxMTJweCArIDkycHgpO1xuICAgICAgdG9wOiAtMjBweDtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICIsIiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxNj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDE3KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSAxMHB4KTtcbiAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1pbi1oZWlnaHQ6IDI0MHB4O1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgICAgIiwiIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTc9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxOCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgd2lkdGg6IGNhbGMoKDEwMCUgLSA0MHB4KSAvIDMpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWluLWhlaWdodDogMjQwcHg7XG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgICAiLCIge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxOD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDE5KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMjBweDtcbiAgICAgIGJvdHRvbTogMjBweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE5PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MjAoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgICAgd2lkdGg6IDI0MHB4O1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MjA9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyMSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC0gNDBweCkgLyAzKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZjVmN2ZmIDAlLCAjZmZmZmZmIDEwMCUpO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtaW4taGVpZ2h0OiAzNjBweDtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cbiAgICAgICIsIiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDIxPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MjIoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBhc3BlY3QtcmF0aW86IDM0NyAvIDE4NjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MjI9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyMygpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMzODRhYTAgMCUsICM1NTM4YTAgMTAwJSk7XG4gICAgICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDIzPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MjQoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgbWFyZ2luLXRvcDogODBweDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAiLCIge1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyND1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDI1KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgZmxleDogMCAwIDUwJTtcbiAgICAgIG1hcmdpbi1yaWdodDogNDBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICIsIiB7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MjU9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyNigpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGZsZXg6IDE7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyNj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDI3KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDUsIDI0NywgMjU1LCAxKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICBwYWRkaW5nOiAzMHB4O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICIsIiB7XG4gICAgICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyNz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDI4KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTA7XG4gICAgICBhc3BlY3QtcmF0aW86IDU1MCAvIDQ2NDtcbiAgICAgIG1heC13aWR0aDogNTUwcHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDI4PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MjkoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIGFzcGVjdC1yYXRpbzogNTA2IC8gMzE2O1xuICAgICAgbWF4LXdpZHRoOiA1MDZweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Mjk9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzMCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgYXNwZWN0LXJhdGlvOiA1ODAgLyAzMzA7XG4gICAgICBtYXgtd2lkdGg6IDU4MHB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzMD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDMxKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgYXNwZWN0LXJhdGlvOiA1NjAgLyAzMDA7XG4gICAgICBtYXgtd2lkdGg6IDUyMHB4O1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MzE9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzMigpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xuICAgICAgIiwiIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzMj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDMzKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgZmxleDogMTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGZlMWViO1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MzM9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzNCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGZsZXg6IDE7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDU0cHg7XG4gICAgICAiLCIge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MzQ9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzNSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGZsZXg6IDE7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzNT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDM2KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgbWFyZ2luOiA0MHB4IDA7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIGJhY2tncm91bmQ6ICM5MjllZDk7XG4gICAgICAiLCIge1xuICAgICAgICBtYXJnaW46IDE1cHggMDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDM2PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MzcoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBhc3BlY3QtcmF0aW86IDQxMCAvIDQ2MDtcbiAgICAgIG1heC13aWR0aDogNDEwcHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDM3PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MzgoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICB3aWR0aDogMTZweDtcbiAgICAgIGhlaWdodDogMTRweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzOD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDM5KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIFxuICAgICAgY29sb3I6ICIsIjtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICIsIjtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDM5PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9bGV0IHVzZVN0eWxlcz0oMCxhbnRkX3N0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ua2MpKHBhcmFtPT57bGV0e3Rva2VuLGNzcyxyZXNwb25zaXZlfT1wYXJhbTtyZXR1cm57YmcxOmNzcyhfdGVtcGxhdGVPYmplY3QoKSksYmFubmVyOmNzcyhfdGVtcGxhdGVPYmplY3QxKCkscmVzcG9uc2l2ZS5sYXB0b3ApLGJnMldyYXA6Y3NzKF90ZW1wbGF0ZU9iamVjdDIoKSksYmcyOmNzcyhfdGVtcGxhdGVPYmplY3QzKCkscmVzcG9uc2l2ZS5tb2JpbGUpLGJhbm5lcldyYXA6Y3NzKF90ZW1wbGF0ZU9iamVjdDQoKSksYmxvY2sxU3ViSVRlbTpjc3MoX3RlbXBsYXRlT2JqZWN0NSgpKSxzdWJQcmltYXJ5VGV4dDpjc3MoX3RlbXBsYXRlT2JqZWN0NigpKSxibG9jazFRdWlja0J0bjpjc3MoX3RlbXBsYXRlT2JqZWN0NygpLHRva2VuLmNvbG9yVGV4dCksYXJyb3dCb3g6Y3NzKF90ZW1wbGF0ZU9iamVjdDgoKSx0b2tlbi5jb2xvclByaW1hcnkpLGJsb2NrSW1nV3JhcDpjc3MoX3RlbXBsYXRlT2JqZWN0OSgpKSxpbWdJdGVtOmNzcyhfdGVtcGxhdGVPYmplY3QxMCgpKSxpbWdJdGVtMjpjc3MoX3RlbXBsYXRlT2JqZWN0MTEoKSksaW1nV3JhcDpjc3MoX3RlbXBsYXRlT2JqZWN0MTIoKSksaW1nSXRlbTM6Y3NzKF90ZW1wbGF0ZU9iamVjdDEzKCkpLGltZ0l0ZW00OmNzcyhfdGVtcGxhdGVPYmplY3QxNCgpKSxpbWdJdGVtNTpjc3MoX3RlbXBsYXRlT2JqZWN0MTUoKSxyZXNwb25zaXZlLm1vYmlsZSksaW1nSXRlbTY6Y3NzKF90ZW1wbGF0ZU9iamVjdDE2KCkscmVzcG9uc2l2ZS5tb2JpbGUpLGJsb2NrMkl0ZW0yOmNzcyhfdGVtcGxhdGVPYmplY3QxNygpLHJlc3BvbnNpdmUubW9iaWxlKSxibG9jazJJdGVtMzpjc3MoX3RlbXBsYXRlT2JqZWN0MTgoKSxyZXNwb25zaXZlLm1vYmlsZSksYmxvY2syRm9vdGVyOmNzcyhfdGVtcGxhdGVPYmplY3QxOSgpKSxibG9jazJCZzpjc3MoX3RlbXBsYXRlT2JqZWN0MjAoKSksYmxvY2szSXRlbTpjc3MoX3RlbXBsYXRlT2JqZWN0MjEoKSxyZXNwb25zaXZlLm1vYmlsZSksYmxjb2szQmcxOmNzcyhfdGVtcGxhdGVPYmplY3QyMigpKSxibG9jazJTYnVEZXNjOmNzcyhfdGVtcGxhdGVPYmplY3QyMygpKSxibG9jazJJdGVtOmNzcyhfdGVtcGxhdGVPYmplY3QyNCgpLHJlc3BvbnNpdmUubW9iaWxlKSxibG9jazJMZWZ0SW1nV3JhcDpjc3MoX3RlbXBsYXRlT2JqZWN0MjUoKSxyZXNwb25zaXZlLm1vYmlsZSksYmxvY2syUmlnaHRDb250ZW50OmNzcyhfdGVtcGxhdGVPYmplY3QyNigpKSxibG9jazJJbWdDb250ZW50OmNzcyhfdGVtcGxhdGVPYmplY3QyNygpLHJlc3BvbnNpdmUubW9iaWxlKSxibG9jazJJbWcxOmNzcyhfdGVtcGxhdGVPYmplY3QyOCgpKSxibG9jazJJbWczOmNzcyhfdGVtcGxhdGVPYmplY3QyOSgpKSxibG9jazJJbWcyOmNzcyhfdGVtcGxhdGVPYmplY3QzMCgpKSxibG9jazJJbWc0OmNzcyhfdGVtcGxhdGVPYmplY3QzMSgpKSxub01hcmdpblJpZ2h0OmNzcyhfdGVtcGxhdGVPYmplY3QzMigpLHJlc3BvbnNpdmUubW9iaWxlKSxibG9jazRJbWdJdGVtOmNzcyhfdGVtcGxhdGVPYmplY3QzMygpKSxibG9jazNMZWZ0OmNzcyhfdGVtcGxhdGVPYmplY3QzNCgpLHJlc3BvbnNpdmUubW9iaWxlKSxibG9jazNSaWdodDpjc3MoX3RlbXBsYXRlT2JqZWN0MzUoKSksYmxvY2szTGluZTpjc3MoX3RlbXBsYXRlT2JqZWN0MzYoKSxyZXNwb25zaXZlLm1vYmlsZSksYmxvY2s1UmlnaHRJdGVtSW1nOmNzcyhfdGVtcGxhdGVPYmplY3QzNygpKSxyaWdodEljb246Y3NzKF90ZW1wbGF0ZU9iamVjdDM4KCkpLGJsb2NrNUJ0bjI6Y3NzKF90ZW1wbGF0ZU9iamVjdDM5KCksdG9rZW4uY29sb3JQcmltYXJ5LHRva2VuLmNvbG9yUHJpbWFyeSl9fSl9LDQ4ODU3OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHZjY19Ib21lfX0pO3ZhciBlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtPV9fd2VicGFja19yZXF1aXJlX18oMzU5NDQpLGVzbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDg2OTApLG5leHRfcm91dGVyPV9fd2VicGFja19yZXF1aXJlX18oMTExNjMpLHJlYWN0PV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLGR5bmFtaWM9X193ZWJwYWNrX3JlcXVpcmVfXyg1MTUyKSxkeW5hbWljX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGR5bmFtaWMpLG1haW49X193ZWJwYWNrX3JlcXVpcmVfXyg1OTAyNiksc2VvPV9fd2VicGFja19yZXF1aXJlX18oNzIxNzQpLHN0cnVjdHVyZWREYXRhPV9fd2VicGFja19yZXF1aXJlX18oMzc4NTQpLHVzZVJlc3BvbnNpdmU9X193ZWJwYWNrX3JlcXVpcmVfXygyODc0MyksY29udGFpbmVyPV9fd2VicGFja19yZXF1aXJlX18oNjYyNTEpLGxvYWQ9X193ZWJwYWNrX3JlcXVpcmVfXyg1MTYxMCksY29tcG9uZW50c19pbWFnZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDExNTg2KSxjb21tb25fc3R5bGU9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzYzMSkscmlnaHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg2NDcwKSxpbmRleF9zdHlsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDY4MTcxKSxuZXh0X2xpbms9X193ZWJwYWNrX3JlcXVpcmVfXyg0MTY2NCksbGlua19kZWZhdWx0PV9fd2VicGFja19yZXF1aXJlX18ubihuZXh0X2xpbmspO2Z1bmN0aW9uIEhvbWUoKXtsZXR7c3R5bGVzOmNvbW1vblN0eWxlcyxjeH09KDAsY29tbW9uX3N0eWxlLmMpKCkse3N0eWxlc309KDAsaW5kZXhfc3R5bGUueSkoKSx7dGFibGV0LGxhcHRvcCxtb2JpbGV9PSgwLHVzZVJlc3BvbnNpdmUuRikoKSx7dH09KDAsZXNtLiRHKShbImNvbW1vbiIsInZjYyJdKTtyZXR1cm4oMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5tYWluLHN0eWxlcy5iZzEsY29tbW9uU3R5bGVzLmNvbG9yV2hpdGUsY29tbW9uU3R5bGVzLnJlbGF0aXZlKSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKShjb250YWluZXIuWix7Y2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJnMldyYXAsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmcyLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7ZmlsbDohMCxwcmlvcml0eTohMCxhbHQ6ImJ1dmVpIixzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNTE1MTMzNzM2ZGI3YmFmMzIyOS53ZWJwIn0pfSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5tYWluUGFkZGluZzgwLGNvbW1vblN0eWxlcy50b3BJbmRleCksY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxvYWQuTTMse21vYmlsZTptb2JpbGUsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpjb21tb25TdHlsZXMuZmxleFN0YXJ0QmV0d2VlbixjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmFubmVyV3JhcCxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImgxIix7Y2xhc3NOYW1lOmNvbW1vblN0eWxlcy5oMixjaGlsZHJlbjpbdCgidDQiLHtuczoidmNjIn0pLCIgIiwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiYnIiLHt9KV19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgicCIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuc2l6ZTI0LGNvbW1vblN0eWxlcy5tdDM2KSxjaGlsZHJlbjp0KCJ0NiIse25zOiJ2Y2MifSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgicCIse2NsYXNzTmFtZToidmlzdWFsbHktaGlkZGVuIixjaGlsZHJlbjp0KCJ0NTgiLHtuczoidmNjIn0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkobGlua19kZWZhdWx0KCkse2hyZWY6Imh0dHBzOi8vYXBwLmJ1dmVpLmNvbSIsdGFyZ2V0OiJfYmxhbmsiLGNsYXNzTmFtZTpjeChzdHlsZXMuYmxvY2sxUXVpY2tCdG4sY29tbW9uU3R5bGVzLmZsZXhDZW50ZXJCZXR3ZWVuKSxjaGlsZHJlbjpbdCgidDciLHtuczoidmNjIn0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJzcGFuIix7Y2xhc3NOYW1lOnN0eWxlcy5hcnJvd0JveCxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShyaWdodC5aLHt3aWR0aDoxNixoZWlnaHQ6MTR9KX0pXX0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJhbm5lcixjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShjb21wb25lbnRzX2ltYWdlLlose3NyYzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA1MTUxMTI5MTliMTJkMWI3OTBiLndlYnAiLGFsdDoiYmFubmVyIixwcmlvcml0eTohMCxmaWxsOiEwfSl9KV19KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrSW1nV3JhcCxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikobG9hZC5nZCx7Y2xhc3NOYW1lOmN4KHN0eWxlcy5pbWdJdGVtKSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5pbWdXcmFwLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7c3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDUxNTE0MzAzOGU0ZTQxYTQ5ZDAud2VicCIsZmlsbDohMCxhbHQ6IlRpa3RvayJ9KX0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikobG9hZC5nZCx7Y2xhc3NOYW1lOmN4KHN0eWxlcy5pbWdJdGVtLHN0eWxlcy5pbWdJdGVtMiksY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuaW1nV3JhcCxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShjb21wb25lbnRzX2ltYWdlLlose3NyYzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA1MTUxNDMyNDdjY2IxZWNhMjUzLndlYnAiLGZpbGw6ITAsYWx0OiJ6b29tIn0pfSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsb2FkLmdkLHtjbGFzc05hbWU6Y3goc3R5bGVzLmltZ0l0ZW0sc3R5bGVzLmltZ0l0ZW0zKSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5pbWdXcmFwLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7c3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDUxNTE0MzQ1NjcwZjFiYjMzNTgud2VicCIsZmlsbDohMCxhbHQ6ImZhY2Vib29rIn0pfSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsb2FkLmdkLHtjbGFzc05hbWU6Y3goc3R5bGVzLmltZ0l0ZW0sc3R5bGVzLmltZ0l0ZW00KSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5pbWdXcmFwLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7c3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDUxNTE0MzUyNDhjMTAxMmIzZDIud2VicCIsZmlsbDohMCxhbHQ6ImFpcmJuYiJ9KX0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikobG9hZC5nZCx7Y2xhc3NOYW1lOmN4KHN0eWxlcy5pbWdJdGVtLHN0eWxlcy5pbWdJdGVtNSksY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuaW1nV3JhcCxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShjb21wb25lbnRzX2ltYWdlLlose3NyYzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA1MTUxNDM4MjgwZTA5OWY4MjllLndlYnAiLGZpbGw6ITAsYWx0OiJ0d2l0dGVyIn0pfSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsb2FkLmdkLHtjbGFzc05hbWU6Y3goc3R5bGVzLmltZ0l0ZW0sc3R5bGVzLmltZ0l0ZW02KSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5pbWdXcmFwLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7c3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDUxNTE0NDA0NWJjMGQ2ZGQwMjUud2VicCIsZmlsbDohMCxhbHQ6Im9wZW5haSJ9KX0pfSldfSldfSldfSl9KX1sZXQgQ2Fyb3VzZWxJdGVtPXJlYWN0Lm1lbW8ocGFyYW09PntsZXR7aXNBY3RpdmUsb25DbGljayxiZ0ltYWdlLGljb25JbWFnZSx0aXRsZSxkZXNjcmlwdGlvbixhbHQsY2xhc3NOYW1lLGNvbW1vblN0eWxlcyxzdHlsZXMsY3h9PXBhcmFtO3JldHVybigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKGxvYWQuZ2Qse2NsYXNzTmFtZTpjbGFzc05hbWUsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrMkJnLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7ZmlsbDohMCxhbHQ6YWx0LHNyYzpiZ0ltYWdlfSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmNvbW1vblN0eWxlcy50b3BJbmRleCxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7c3JjOmljb25JbWFnZSx3aWR0aDo1MixoZWlnaHQ6NTIsYWx0OmFsdH0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJoMyIse2NsYXNzTmFtZTpjb21tb25TdHlsZXMuc2l6ZTIwLGNoaWxkcmVuOnRpdGxlfSksaXNBY3RpdmUmJigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJwIix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5tdDEyLGNvbW1vblN0eWxlcy5zaXplMjApLGNoaWxkcmVuOmRlc2NyaXB0aW9ufSldfSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazJGb290ZXIsb25DbGljazpvbkNsaWNrLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7d2lkdGg6NDAsaGVpZ2h0OjI4LGFsdDoiYnV0dG9uIixzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNTE1MTUzMDExNGFlMWNjN2EyYS53ZWJwIn0pfSldfSl9KTtmdW5jdGlvbiBibG9jazJfSG9tZSgpe2xldHtzdHlsZXM6Y29tbW9uU3R5bGVzLGN4fT0oMCxjb21tb25fc3R5bGUuYykoKSx7c3R5bGVzfT0oMCxpbmRleF9zdHlsZS55KSgpLHt0YWJsZXQsbGFwdG9wLG1vYmlsZX09KDAsdXNlUmVzcG9uc2l2ZS5GKSgpLHt0fT0oMCxlc20uJEcpKFsidmNjIl0pLFtjdXJyZW50LHNldEN1cnJlbnRdPSgwLHJlYWN0LnVzZVN0YXRlKSgwKTsoMCxyZWFjdC51c2VFZmZlY3QpKCgpPT57bGV0IHRpbWVyPXNldEludGVydmFsKCgpPT57c2V0Q3VycmVudChwcmV2PT4ocHJldisxKSU1KX0sNWUzKTtyZXR1cm4oKT0+Y2xlYXJJbnRlcnZhbCh0aW1lcil9LFtdKTtsZXQgaGFuZGxlQ2xpY2s9KDAscmVhY3QudXNlQ2FsbGJhY2spKGluZGV4PT4oKT0+c2V0Q3VycmVudChpbmRleCksW10pLGNhcm91c2VsSXRlbXM9KDAscmVhY3QudXNlTWVtbykoKCk9Plt7YmdJbWFnZToiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA1MTUxNjEwNDA5ZTQ0ZDVlNWUyLndlYnAiLGljb25JbWFnZToiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA1MTUxNTI1MTEyYTlmODQ4M2YwLndlYnAiLHRpdGxlOnQoInQ5Iix7bnM6InZjYyJ9KSxkZXNjcmlwdGlvbjp0KCJ0MTAiLHtuczoidmNjIn0pLGFsdDoiSW5zdGFudCIsY2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5mbGV4Q2VudGVyQ2VudGVyLGNvbW1vblN0eWxlcy5mbGV4Q29sdW1uLHN0eWxlcy5ibG9jazJJdGVtMil9LHtiZ0ltYWdlOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDUxNTE2MDk0Mzg0ODFlNmQ3OWQud2VicCIsaWNvbkltYWdlOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDUxNTE1MzUyNzc1YzdhYjk3NGEud2VicCIsdGl0bGU6dCgidDExIix7bnM6InZjYyJ9KSxkZXNjcmlwdGlvbjp0KCJ0MTIiLHtuczoidmNjIn0pLGFsdDoiY29udHJvbCIsY2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5mbGV4Q2VudGVyQ2VudGVyLGNvbW1vblN0eWxlcy5mbGV4Q29sdW1uLHN0eWxlcy5ibG9jazJJdGVtMil9LHtiZ0ltYWdlOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDUxNTE1NTk0MjJiMDNkZjExMGMud2VicCIsaWNvbkltYWdlOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDUxNTE2MDUwM2E2M2I5NmEzZTIud2VicCIsdGl0bGU6dCgidDEzIix7bnM6InZjYyJ9KSxkZXNjcmlwdGlvbjp0KCJ0MTQiLHtuczoidmNjIn0pLGFsdDoiTXVsdGktQ2hhaW4iLGNsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuZmxleENlbnRlckNlbnRlcixjb21tb25TdHlsZXMuZmxleENvbHVtbixzdHlsZXMuYmxvY2sySXRlbTMpfSx7YmdJbWFnZToiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA1MTUxNjA3MDE1NGEwMmJlY2U5LndlYnAiLGljb25JbWFnZToiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA1MTUxNjA2MzFhZmQ2NzFhNTg1LndlYnAiLHRpdGxlOnQoInQxNSIse25zOiJ2Y2MifSksZGVzY3JpcHRpb246dCgidDE2Iix7bnM6InZjYyJ9KSxhbHQ6Ikdsb2JhbCIsY2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5mbGV4Q2VudGVyQ2VudGVyLGNvbW1vblN0eWxlcy5mbGV4Q29sdW1uLHN0eWxlcy5ibG9jazJJdGVtMyl9LHtiZ0ltYWdlOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDUxNTE2MDgwNjUzMTFiM2Q3ZGQud2VicCIsaWNvbkltYWdlOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDUxNTE2MDc0N2ZkYTBhNjE5YzUud2VicCIsdGl0bGU6dCgidDE3Iix7bnM6InZjYyJ9KSxkZXNjcmlwdGlvbjp0KCJ0MTgiLHtuczoidmNjIn0pLGFsdDoiY2FyZCIsY2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5mbGV4Q2VudGVyQ2VudGVyLGNvbW1vblN0eWxlcy5mbGV4Q29sdW1uLHN0eWxlcy5ibG9jazJJdGVtMyl9XSxbdCxjeCxjb21tb25TdHlsZXMsc3R5bGVzXSk7cmV0dXJuKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMubWFpbixjb21tb25TdHlsZXMubWFpblBhZGRpbmcxMjApLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbnRhaW5lci5aLHtjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKShsb2FkLktGLHtjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikobG9hZC5nZCx7Y2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImgyIix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5oMixjb21tb25TdHlsZXMudGV4dENlbnRlciksY2hpbGRyZW46dCgidDgiLHtuczoidmNjIn0pfSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOmNvbW1vblN0eWxlcy5tdDgwLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2hpbGRyZW46Y2Fyb3VzZWxJdGVtcy5zbGljZSgwLDIpLm1hcCgoaXRlbSxpbmRleCk9PigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKENhcm91c2VsSXRlbSx7aW5kZXg6aW5kZXgsaXNBY3RpdmU6Y3VycmVudD09PWluZGV4LG9uQ2xpY2s6aGFuZGxlQ2xpY2soaW5kZXgpLGJnSW1hZ2U6aXRlbS5iZ0ltYWdlLGljb25JbWFnZTppdGVtLmljb25JbWFnZSx0aXRsZTppdGVtLnRpdGxlLGRlc2NyaXB0aW9uOml0ZW0uZGVzY3JpcHRpb24sYWx0Oml0ZW0uYWx0LGNsYXNzTmFtZTppdGVtLmNsYXNzTmFtZSxjb21tb25TdHlsZXM6Y29tbW9uU3R5bGVzLHN0eWxlczpzdHlsZXMsY3g6Y3h9LGluZGV4KSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2hpbGRyZW46Y2Fyb3VzZWxJdGVtcy5zbGljZSgyLDUpLm1hcCgoaXRlbSxpbmRleCk9PigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKENhcm91c2VsSXRlbSx7aW5kZXg6aW5kZXgrMixpc0FjdGl2ZTpjdXJyZW50PT09aW5kZXgrMixvbkNsaWNrOmhhbmRsZUNsaWNrKGluZGV4KzIpLGJnSW1hZ2U6aXRlbS5iZ0ltYWdlLGljb25JbWFnZTppdGVtLmljb25JbWFnZSx0aXRsZTppdGVtLnRpdGxlLGRlc2NyaXB0aW9uOml0ZW0uZGVzY3JpcHRpb24sYWx0Oml0ZW0uYWx0LGNsYXNzTmFtZTppdGVtLmNsYXNzTmFtZSxjb21tb25TdHlsZXM6Y29tbW9uU3R5bGVzLHN0eWxlczpzdHlsZXMsY3g6Y3h9LGluZGV4KzIpKX0pXX0pXX0pfSl9KX1DYXJvdXNlbEl0ZW0uZGlzcGxheU5hbWU9IkNhcm91c2VsSXRlbSI7bGV0IEJsb2NrMz1keW5hbWljX2RlZmF1bHQoKSgoKT0+X193ZWJwYWNrX3JlcXVpcmVfXy5lKDYxNzcpLnRoZW4oX193ZWJwYWNrX3JlcXVpcmVfXy5iaW5kKF9fd2VicGFja19yZXF1aXJlX18sNjE3NykpLHtsb2FkYWJsZUdlbmVyYXRlZDp7d2VicGFjazooKT0+WzYxNzddfX0pLEJsb2NrND1keW5hbWljX2RlZmF1bHQoKSgoKT0+X193ZWJwYWNrX3JlcXVpcmVfXy5lKDQ5NTYpLnRoZW4oX193ZWJwYWNrX3JlcXVpcmVfXy5iaW5kKF9fd2VicGFja19yZXF1aXJlX18sODQ5NTYpKSx7bG9hZGFibGVHZW5lcmF0ZWQ6e3dlYnBhY2s6KCk9Pls4NDk1Nl19fSksQmxvY2s1PWR5bmFtaWNfZGVmYXVsdCgpKCgpPT5Qcm9taXNlLmFsbChbX193ZWJwYWNrX3JlcXVpcmVfXy5lKDkzNTEpLF9fd2VicGFja19yZXF1aXJlX18uZSg3MzM3KV0pLnRoZW4oX193ZWJwYWNrX3JlcXVpcmVfXy5iaW5kKF9fd2VicGFja19yZXF1aXJlX18sODczMzcpKSx7bG9hZGFibGVHZW5lcmF0ZWQ6e3dlYnBhY2s6KCk9Pls4NzMzN119fSksQmxvY2s2PWR5bmFtaWNfZGVmYXVsdCgpKCgpPT5Qcm9taXNlLmFsbChbX193ZWJwYWNrX3JlcXVpcmVfXy5lKDkzNTEpLF9fd2VicGFja19yZXF1aXJlX18uZSg1MDI4KV0pLnRoZW4oX193ZWJwYWNrX3JlcXVpcmVfXy5iaW5kKF9fd2VicGFja19yZXF1aXJlX18sODUwMjgpKSx7bG9hZGFibGVHZW5lcmF0ZWQ6e3dlYnBhY2s6KCk9Pls4NTAyOF19fSksQmxvY2s3PWR5bmFtaWNfZGVmYXVsdCgpKCgpPT5fX3dlYnBhY2tfcmVxdWlyZV9fLmUoNDI3MykudGhlbihfX3dlYnBhY2tfcmVxdWlyZV9fLmJpbmQoX193ZWJwYWNrX3JlcXVpcmVfXyw2NDI3MykpLHtsb2FkYWJsZUdlbmVyYXRlZDp7d2VicGFjazooKT0+WzY0MjczXX19KTtmdW5jdGlvbiB2Y2NfSG9tZShwcm9wcyl7bGV0e3R9PSgwLGVzbS4kRykoWyJjb21tb24iLCJ2Y2MiXSkscm91dGVyPSgwLG5leHRfcm91dGVyLnVzZVJvdXRlcikoKTtyZXR1cm4oMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKShlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkhZLHtjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50Wikoc2VvLlose3RpdGxlOnQoInQxIix7bnM6InZjYyJ9KSxkZXNjcmlwdGlvbjp0KCJ0MiIse25zOiJ2Y2MifSksa2V5d29yZHM6dCgidDMiLHtuczoidmNjIn0pLHBhdGg6Ii92aXJ0dWFsLWNhcmRzIixsb2NhbGU6cm91dGVyLmxvY2FsZXx8ImVuIixvZ1R5cGU6IndlYnNpdGUiLG9nSW1hZ2U6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfYTQ0MTVkLzIwMjUwODMwMTAyMjUwZGZkN2RhNzJhYy5pY28iLHR3aXR0ZXI6e2NhcmQ6InN1bW1hcnlfbGFyZ2VfaW1hZ2UifSxzdHJ1Y3R1cmVkRGF0YTpbKDAsc3RydWN0dXJlZERhdGEuTlgpKHtuYW1lOnQoInQxIix7bnM6InZjYyJ9KSxkZXNjcmlwdGlvbjp0KCJ0MiIse25zOiJ2Y2MifSkscHJvdmlkZXI6IkJ1dmVpIixhcmVhU2VydmVkOiJXb3JsZHdpZGUiLHNlcnZpY2VUeXBlOiJWaXJ0dWFsIENhcmQgU2VydmljZXMifSksKDAsc3RydWN0dXJlZERhdGEuaWopKFt7bmFtZToiSG9tZSIsdXJsOiJodHRwczovL2J1dmVpLmNvbSJ9LHtuYW1lOiJWaXJ0dWFsIENhcmRzIix1cmw6Imh0dHBzOi8vYnV2ZWkuY29tL3ZpcnR1YWwtY2FyZHMifV0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKShtYWluLlose2NoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShIb21lLHt9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShibG9jazJfSG9tZSx7fSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoQmxvY2szLHt9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShCbG9jazQse30pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKEJsb2NrNSx7fSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoQmxvY2s2LHt9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShCbG9jazcse30pXX0pfSldfSl9fSw1MTUyOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7bW9kdWxlLmV4cG9ydHM9X193ZWJwYWNrX3JlcXVpcmVfXygzNzY0NSl9LDI1Njc1OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7bW9kdWxlLmV4cG9ydHM9X193ZWJwYWNrX3JlcXVpcmVfXygxOTc0OSl9LDQxNjY0OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7bW9kdWxlLmV4cG9ydHM9X193ZWJwYWNrX3JlcXVpcmVfXygzMTU1MSl9LDkxMDMzOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO3ZhciBNYXBTaGltPWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBNYXApcmV0dXJuIE1hcDtmdW5jdGlvbiBnZXRJbmRleChhcnIsa2V5KXt2YXIgcmVzdWx0PS0xO3JldHVybiBhcnIuc29tZShmdW5jdGlvbihlbnRyeSxpbmRleCl7cmV0dXJuIGVudHJ5WzBdPT09a2V5JiYocmVzdWx0PWluZGV4LCEwKX0pLHJlc3VsdH1yZXR1cm4gZnVuY3Rpb24oKXtmdW5jdGlvbiBjbGFzc18xKCl7dGhpcy5fX2VudHJpZXNfXz1bXX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGNsYXNzXzEucHJvdG90eXBlLCJzaXplIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19lbnRyaWVzX18ubGVuZ3RofSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGNsYXNzXzEucHJvdG90eXBlLmdldD1mdW5jdGlvbihrZXkpe3ZhciBpbmRleD1nZXRJbmRleCh0aGlzLl9fZW50cmllc19fLGtleSksZW50cnk9dGhpcy5fX2VudHJpZXNfX1tpbmRleF07cmV0dXJuIGVudHJ5JiZlbnRyeVsxXX0sY2xhc3NfMS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGtleSx2YWx1ZSl7dmFyIGluZGV4PWdldEluZGV4KHRoaXMuX19lbnRyaWVzX18sa2V5KTt+aW5kZXg/dGhpcy5fX2VudHJpZXNfX1tpbmRleF1bMV09dmFsdWU6dGhpcy5fX2VudHJpZXNfXy5wdXNoKFtrZXksdmFsdWVdKX0sY2xhc3NfMS5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKGtleSl7dmFyIGVudHJpZXM9dGhpcy5fX2VudHJpZXNfXyxpbmRleD1nZXRJbmRleChlbnRyaWVzLGtleSk7fmluZGV4JiZlbnRyaWVzLnNwbGljZShpbmRleCwxKX0sY2xhc3NfMS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGtleSl7cmV0dXJuISF+Z2V0SW5kZXgodGhpcy5fX2VudHJpZXNfXyxrZXkpfSxjbGFzc18xLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX19lbnRyaWVzX18uc3BsaWNlKDApfSxjbGFzc18xLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGNhbGxiYWNrLGN0eCl7dm9pZCAwPT09Y3R4JiYoY3R4PW51bGwpO2Zvcih2YXIgX2k9MCxfYT10aGlzLl9fZW50cmllc19fO19pPF9hLmxlbmd0aDtfaSsrKXt2YXIgZW50cnk9X2FbX2ldO2NhbGxiYWNrLmNhbGwoY3R4LGVudHJ5WzFdLGVudHJ5WzBdKX19LGNsYXNzXzF9KCl9KCksaXNCcm93c2VyPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiZ3aW5kb3cuZG9jdW1lbnQ9PT1kb2N1bWVudCxnbG9iYWwkMT12b2lkIDAhPT1fX3dlYnBhY2tfcmVxdWlyZV9fLmcmJl9fd2VicGFja19yZXF1aXJlX18uZy5NYXRoPT09TWF0aD9fX3dlYnBhY2tfcmVxdWlyZV9fLmc6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiZzZWxmLk1hdGg9PT1NYXRoP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5NYXRoPT09TWF0aD93aW5kb3c6RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUkMT0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lP3JlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKGdsb2JhbCQxKTpmdW5jdGlvbihjYWxsYmFjayl7cmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gY2FsbGJhY2soRGF0ZS5ub3coKSl9LDFlMy82MCl9LHRyYW5zaXRpb25LZXlzPVsidG9wIiwicmlnaHQiLCJib3R0b20iLCJsZWZ0Iiwid2lkdGgiLCJoZWlnaHQiLCJzaXplIiwid2VpZ2h0Il0sbXV0YXRpb25PYnNlcnZlclN1cHBvcnRlZD0idW5kZWZpbmVkIiE9dHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXIsUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyKCl7dGhpcy5jb25uZWN0ZWRfPSExLHRoaXMubXV0YXRpb25FdmVudHNBZGRlZF89ITEsdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl89bnVsbCx0aGlzLm9ic2VydmVyc189W10sdGhpcy5vblRyYW5zaXRpb25FbmRfPXRoaXMub25UcmFuc2l0aW9uRW5kXy5iaW5kKHRoaXMpLHRoaXMucmVmcmVzaD1mdW5jdGlvbihjYWxsYmFjayxkZWxheSl7dmFyIGxlYWRpbmdDYWxsPSExLHRyYWlsaW5nQ2FsbD0hMSxsYXN0Q2FsbFRpbWU9MDtmdW5jdGlvbiByZXNvbHZlUGVuZGluZygpe2xlYWRpbmdDYWxsJiYobGVhZGluZ0NhbGw9ITEsY2FsbGJhY2soKSksdHJhaWxpbmdDYWxsJiZwcm94eSgpfWZ1bmN0aW9uIHRpbWVvdXRDYWxsYmFjaygpe3JlcXVlc3RBbmltYXRpb25GcmFtZSQxKHJlc29sdmVQZW5kaW5nKX1mdW5jdGlvbiBwcm94eSgpe3ZhciB0aW1lU3RhbXA9RGF0ZS5ub3coKTtpZihsZWFkaW5nQ2FsbCl7aWYodGltZVN0YW1wLWxhc3RDYWxsVGltZTwyKXJldHVybjt0cmFpbGluZ0NhbGw9ITB9ZWxzZSBsZWFkaW5nQ2FsbD0hMCx0cmFpbGluZ0NhbGw9ITEsc2V0VGltZW91dCh0aW1lb3V0Q2FsbGJhY2ssMjApO2xhc3RDYWxsVGltZT10aW1lU3RhbXB9cmV0dXJuIHByb3h5fSh0aGlzLnJlZnJlc2guYmluZCh0aGlzKSwwKX1yZXR1cm4gUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS5hZGRPYnNlcnZlcj1mdW5jdGlvbihvYnNlcnZlcil7fnRoaXMub2JzZXJ2ZXJzXy5pbmRleE9mKG9ic2VydmVyKXx8dGhpcy5vYnNlcnZlcnNfLnB1c2gob2JzZXJ2ZXIpLHRoaXMuY29ubmVjdGVkX3x8dGhpcy5jb25uZWN0XygpfSxSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIucHJvdG90eXBlLnJlbW92ZU9ic2VydmVyPWZ1bmN0aW9uKG9ic2VydmVyKXt2YXIgb2JzZXJ2ZXJzPXRoaXMub2JzZXJ2ZXJzXyxpbmRleD1vYnNlcnZlcnMuaW5kZXhPZihvYnNlcnZlcik7fmluZGV4JiZvYnNlcnZlcnMuc3BsaWNlKGluZGV4LDEpLCFvYnNlcnZlcnMubGVuZ3RoJiZ0aGlzLmNvbm5lY3RlZF8mJnRoaXMuZGlzY29ubmVjdF8oKX0sUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS5yZWZyZXNoPWZ1bmN0aW9uKCl7dGhpcy51cGRhdGVPYnNlcnZlcnNfKCkmJnRoaXMucmVmcmVzaCgpfSxSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIucHJvdG90eXBlLnVwZGF0ZU9ic2VydmVyc189ZnVuY3Rpb24oKXt2YXIgYWN0aXZlT2JzZXJ2ZXJzPXRoaXMub2JzZXJ2ZXJzXy5maWx0ZXIoZnVuY3Rpb24ob2JzZXJ2ZXIpe3JldHVybiBvYnNlcnZlci5nYXRoZXJBY3RpdmUoKSxvYnNlcnZlci5oYXNBY3RpdmUoKX0pO3JldHVybiBhY3RpdmVPYnNlcnZlcnMuZm9yRWFjaChmdW5jdGlvbihvYnNlcnZlcil7cmV0dXJuIG9ic2VydmVyLmJyb2FkY2FzdEFjdGl2ZSgpfSksYWN0aXZlT2JzZXJ2ZXJzLmxlbmd0aD4wfSxSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIucHJvdG90eXBlLmNvbm5lY3RfPWZ1bmN0aW9uKCl7aXNCcm93c2VyJiYhdGhpcy5jb25uZWN0ZWRfJiYoZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsdGhpcy5vblRyYW5zaXRpb25FbmRfKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLnJlZnJlc2gpLG11dGF0aW9uT2JzZXJ2ZXJTdXBwb3J0ZWQ/KHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfPW5ldyBNdXRhdGlvbk9ic2VydmVyKHRoaXMucmVmcmVzaCksdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8ub2JzZXJ2ZShkb2N1bWVudCx7YXR0cmlidXRlczohMCxjaGlsZExpc3Q6ITAsY2hhcmFjdGVyRGF0YTohMCxzdWJ0cmVlOiEwfSkpOihkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01TdWJ0cmVlTW9kaWZpZWQiLHRoaXMucmVmcmVzaCksdGhpcy5tdXRhdGlvbkV2ZW50c0FkZGVkXz0hMCksdGhpcy5jb25uZWN0ZWRfPSEwKX0sUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS5kaXNjb25uZWN0Xz1mdW5jdGlvbigpe2lzQnJvd3NlciYmdGhpcy5jb25uZWN0ZWRfJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsdGhpcy5vblRyYW5zaXRpb25FbmRfKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLnJlZnJlc2gpLHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfJiZ0aGlzLm11dGF0aW9uc09ic2VydmVyXy5kaXNjb25uZWN0KCksdGhpcy5tdXRhdGlvbkV2ZW50c0FkZGVkXyYmZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NU3VidHJlZU1vZGlmaWVkIix0aGlzLnJlZnJlc2gpLHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfPW51bGwsdGhpcy5tdXRhdGlvbkV2ZW50c0FkZGVkXz0hMSx0aGlzLmNvbm5lY3RlZF89ITEpfSxSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIucHJvdG90eXBlLm9uVHJhbnNpdGlvbkVuZF89ZnVuY3Rpb24oX2Epe3ZhciBfYj1fYS5wcm9wZXJ0eU5hbWUscHJvcGVydHlOYW1lPXZvaWQgMD09PV9iPyIiOl9iO3RyYW5zaXRpb25LZXlzLnNvbWUoZnVuY3Rpb24oa2V5KXtyZXR1cm4hIX5wcm9wZXJ0eU5hbWUuaW5kZXhPZihrZXkpfSkmJnRoaXMucmVmcmVzaCgpfSxSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIuZ2V0SW5zdGFuY2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnN0YW5jZV98fCh0aGlzLmluc3RhbmNlXz1uZXcgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyKSx0aGlzLmluc3RhbmNlX30sUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLmluc3RhbmNlXz1udWxsLFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlcn0oKSxkZWZpbmVDb25maWd1cmFibGU9ZnVuY3Rpb24odGFyZ2V0LHByb3BzKXtmb3IodmFyIF9pPTAsX2E9T2JqZWN0LmtleXMocHJvcHMpO19pPF9hLmxlbmd0aDtfaSsrKXt2YXIga2V5PV9hW19pXTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LGtleSx7dmFsdWU6cHJvcHNba2V5XSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pfXJldHVybiB0YXJnZXR9LGdldFdpbmRvd09mPWZ1bmN0aW9uKHRhcmdldCl7cmV0dXJuIHRhcmdldCYmdGFyZ2V0Lm93bmVyRG9jdW1lbnQmJnRhcmdldC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHxnbG9iYWwkMX0sZW1wdHlSZWN0PWNyZWF0ZVJlY3RJbml0KDAsMCwwLDApO2Z1bmN0aW9uIHRvRmxvYXQodmFsdWUpe3JldHVybiBwYXJzZUZsb2F0KHZhbHVlKXx8MH1mdW5jdGlvbiBnZXRCb3JkZXJzU2l6ZShzdHlsZXMpe2Zvcih2YXIgcG9zaXRpb25zPVtdLF9pPTE7X2k8YXJndW1lbnRzLmxlbmd0aDtfaSsrKXBvc2l0aW9uc1tfaS0xXT1hcmd1bWVudHNbX2ldO3JldHVybiBwb3NpdGlvbnMucmVkdWNlKGZ1bmN0aW9uKHNpemUscG9zaXRpb24pe3JldHVybiBzaXplK3RvRmxvYXQoc3R5bGVzWyJib3JkZXItIitwb3NpdGlvbisiLXdpZHRoIl0pfSwwKX12YXIgaXNTVkdHcmFwaGljc0VsZW1lbnQ9InVuZGVmaW5lZCIhPXR5cGVvZiBTVkdHcmFwaGljc0VsZW1lbnQ/ZnVuY3Rpb24odGFyZ2V0KXtyZXR1cm4gdGFyZ2V0IGluc3RhbmNlb2YgZ2V0V2luZG93T2YodGFyZ2V0KS5TVkdHcmFwaGljc0VsZW1lbnR9OmZ1bmN0aW9uKHRhcmdldCl7cmV0dXJuIHRhcmdldCBpbnN0YW5jZW9mIGdldFdpbmRvd09mKHRhcmdldCkuU1ZHRWxlbWVudCYmImZ1bmN0aW9uIj09dHlwZW9mIHRhcmdldC5nZXRCQm94fTtmdW5jdGlvbiBjcmVhdGVSZWN0SW5pdCh4LHksd2lkdGgsaGVpZ2h0KXtyZXR1cm57eDp4LHk6eSx3aWR0aDp3aWR0aCxoZWlnaHQ6aGVpZ2h0fX12YXIgUmVzaXplT2JzZXJ2YXRpb249ZnVuY3Rpb24oKXtmdW5jdGlvbiBSZXNpemVPYnNlcnZhdGlvbih0YXJnZXQpe3RoaXMuYnJvYWRjYXN0V2lkdGg9MCx0aGlzLmJyb2FkY2FzdEhlaWdodD0wLHRoaXMuY29udGVudFJlY3RfPWNyZWF0ZVJlY3RJbml0KDAsMCwwLDApLHRoaXMudGFyZ2V0PXRhcmdldH1yZXR1cm4gUmVzaXplT2JzZXJ2YXRpb24ucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7dmFyIHJlY3Q9ZnVuY3Rpb24odGFyZ2V0KXtpZighaXNCcm93c2VyKXJldHVybiBlbXB0eVJlY3Q7aWYoaXNTVkdHcmFwaGljc0VsZW1lbnQodGFyZ2V0KSl7dmFyIGJib3g7cmV0dXJuIGNyZWF0ZVJlY3RJbml0KDAsMCwoYmJveD10YXJnZXQuZ2V0QkJveCgpKS53aWR0aCxiYm94LmhlaWdodCl9cmV0dXJuIGZ1bmN0aW9uKHRhcmdldCl7dmFyIGNsaWVudFdpZHRoPXRhcmdldC5jbGllbnRXaWR0aCxjbGllbnRIZWlnaHQ9dGFyZ2V0LmNsaWVudEhlaWdodDtpZighY2xpZW50V2lkdGgmJiFjbGllbnRIZWlnaHQpcmV0dXJuIGVtcHR5UmVjdDt2YXIgc3R5bGVzPWdldFdpbmRvd09mKHRhcmdldCkuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLHBhZGRpbmdzPWZ1bmN0aW9uKHN0eWxlcyl7Zm9yKHZhciBwYWRkaW5ncz17fSxfaT0wLHBvc2l0aW9uc18xPVsidG9wIiwicmlnaHQiLCJib3R0b20iLCJsZWZ0Il07X2k8cG9zaXRpb25zXzEubGVuZ3RoO19pKyspe3ZhciBwb3NpdGlvbj1wb3NpdGlvbnNfMVtfaV0sdmFsdWU9c3R5bGVzWyJwYWRkaW5nLSIrcG9zaXRpb25dO3BhZGRpbmdzW3Bvc2l0aW9uXT10b0Zsb2F0KHZhbHVlKX1yZXR1cm4gcGFkZGluZ3N9KHN0eWxlcyksaG9yaXpQYWQ9cGFkZGluZ3MubGVmdCtwYWRkaW5ncy5yaWdodCx2ZXJ0UGFkPXBhZGRpbmdzLnRvcCtwYWRkaW5ncy5ib3R0b20sd2lkdGg9dG9GbG9hdChzdHlsZXMud2lkdGgpLGhlaWdodD10b0Zsb2F0KHN0eWxlcy5oZWlnaHQpO2lmKCJib3JkZXItYm94Ij09PXN0eWxlcy5ib3hTaXppbmcmJihNYXRoLnJvdW5kKHdpZHRoK2hvcml6UGFkKSE9PWNsaWVudFdpZHRoJiYod2lkdGgtPWdldEJvcmRlcnNTaXplKHN0eWxlcywibGVmdCIsInJpZ2h0IikraG9yaXpQYWQpLE1hdGgucm91bmQoaGVpZ2h0K3ZlcnRQYWQpIT09Y2xpZW50SGVpZ2h0JiYoaGVpZ2h0LT1nZXRCb3JkZXJzU2l6ZShzdHlsZXMsInRvcCIsImJvdHRvbSIpK3ZlcnRQYWQpKSx0YXJnZXQhPT1nZXRXaW5kb3dPZih0YXJnZXQpLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCl7dmFyIHZlcnRTY3JvbGxiYXI9TWF0aC5yb3VuZCh3aWR0aCtob3JpelBhZCktY2xpZW50V2lkdGgsaG9yaXpTY3JvbGxiYXI9TWF0aC5yb3VuZChoZWlnaHQrdmVydFBhZCktY2xpZW50SGVpZ2h0OzEhPT1NYXRoLmFicyh2ZXJ0U2Nyb2xsYmFyKSYmKHdpZHRoLT12ZXJ0U2Nyb2xsYmFyKSwxIT09TWF0aC5hYnMoaG9yaXpTY3JvbGxiYXIpJiYoaGVpZ2h0LT1ob3JpelNjcm9sbGJhcil9cmV0dXJuIGNyZWF0ZVJlY3RJbml0KHBhZGRpbmdzLmxlZnQscGFkZGluZ3MudG9wLHdpZHRoLGhlaWdodCl9KHRhcmdldCl9KHRoaXMudGFyZ2V0KTtyZXR1cm4gdGhpcy5jb250ZW50UmVjdF89cmVjdCxyZWN0LndpZHRoIT09dGhpcy5icm9hZGNhc3RXaWR0aHx8cmVjdC5oZWlnaHQhPT10aGlzLmJyb2FkY2FzdEhlaWdodH0sUmVzaXplT2JzZXJ2YXRpb24ucHJvdG90eXBlLmJyb2FkY2FzdFJlY3Q9ZnVuY3Rpb24oKXt2YXIgcmVjdD10aGlzLmNvbnRlbnRSZWN0XztyZXR1cm4gdGhpcy5icm9hZGNhc3RXaWR0aD1yZWN0LndpZHRoLHRoaXMuYnJvYWRjYXN0SGVpZ2h0PXJlY3QuaGVpZ2h0LHJlY3R9LFJlc2l6ZU9ic2VydmF0aW9ufSgpLFJlc2l6ZU9ic2VydmVyRW50cnk9ZnVuY3Rpb24odGFyZ2V0LHJlY3RJbml0KXt2YXIgeCx5LHdpZHRoLGhlaWdodCxyZWN0LGNvbnRlbnRSZWN0PSh4PXJlY3RJbml0LngseT1yZWN0SW5pdC55LHdpZHRoPXJlY3RJbml0LndpZHRoLGhlaWdodD1yZWN0SW5pdC5oZWlnaHQsZGVmaW5lQ29uZmlndXJhYmxlKHJlY3Q9T2JqZWN0LmNyZWF0ZSgoInVuZGVmaW5lZCIhPXR5cGVvZiBET01SZWN0UmVhZE9ubHk/RE9NUmVjdFJlYWRPbmx5Ok9iamVjdCkucHJvdG90eXBlKSx7eDp4LHk6eSx3aWR0aDp3aWR0aCxoZWlnaHQ6aGVpZ2h0LHRvcDp5LHJpZ2h0Ongrd2lkdGgsYm90dG9tOmhlaWdodCt5LGxlZnQ6eH0pLHJlY3QpO2RlZmluZUNvbmZpZ3VyYWJsZSh0aGlzLHt0YXJnZXQ6dGFyZ2V0LGNvbnRlbnRSZWN0OmNvbnRlbnRSZWN0fSl9LFJlc2l6ZU9ic2VydmVyU1BJPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gUmVzaXplT2JzZXJ2ZXJTUEkoY2FsbGJhY2ssY29udHJvbGxlcixjYWxsYmFja0N0eCl7aWYodGhpcy5hY3RpdmVPYnNlcnZhdGlvbnNfPVtdLHRoaXMub2JzZXJ2YXRpb25zXz1uZXcgTWFwU2hpbSwiZnVuY3Rpb24iIT10eXBlb2YgY2FsbGJhY2spdGhyb3cgVHlwZUVycm9yKCJUaGUgY2FsbGJhY2sgcHJvdmlkZWQgYXMgcGFyYW1ldGVyIDEgaXMgbm90IGEgZnVuY3Rpb24uIik7dGhpcy5jYWxsYmFja189Y2FsbGJhY2ssdGhpcy5jb250cm9sbGVyXz1jb250cm9sbGVyLHRoaXMuY2FsbGJhY2tDdHhfPWNhbGxiYWNrQ3R4fXJldHVybiBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUub2JzZXJ2ZT1mdW5jdGlvbih0YXJnZXQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXRocm93IFR5cGVFcnJvcigiMSBhcmd1bWVudCByZXF1aXJlZCwgYnV0IG9ubHkgMCBwcmVzZW50LiIpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgRWxlbWVudCYmRWxlbWVudCBpbnN0YW5jZW9mIE9iamVjdCl7aWYoISh0YXJnZXQgaW5zdGFuY2VvZiBnZXRXaW5kb3dPZih0YXJnZXQpLkVsZW1lbnQpKXRocm93IFR5cGVFcnJvcigncGFyYW1ldGVyIDEgaXMgbm90IG9mIHR5cGUgIkVsZW1lbnQiLicpO3ZhciBvYnNlcnZhdGlvbnM9dGhpcy5vYnNlcnZhdGlvbnNfO29ic2VydmF0aW9ucy5oYXModGFyZ2V0KXx8KG9ic2VydmF0aW9ucy5zZXQodGFyZ2V0LG5ldyBSZXNpemVPYnNlcnZhdGlvbih0YXJnZXQpKSx0aGlzLmNvbnRyb2xsZXJfLmFkZE9ic2VydmVyKHRoaXMpLHRoaXMuY29udHJvbGxlcl8ucmVmcmVzaCgpKX19LFJlc2l6ZU9ic2VydmVyU1BJLnByb3RvdHlwZS51bm9ic2VydmU9ZnVuY3Rpb24odGFyZ2V0KXtpZighYXJndW1lbnRzLmxlbmd0aCl0aHJvdyBUeXBlRXJyb3IoIjEgYXJndW1lbnQgcmVxdWlyZWQsIGJ1dCBvbmx5IDAgcHJlc2VudC4iKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEVsZW1lbnQmJkVsZW1lbnQgaW5zdGFuY2VvZiBPYmplY3Qpe2lmKCEodGFyZ2V0IGluc3RhbmNlb2YgZ2V0V2luZG93T2YodGFyZ2V0KS5FbGVtZW50KSl0aHJvdyBUeXBlRXJyb3IoJ3BhcmFtZXRlciAxIGlzIG5vdCBvZiB0eXBlICJFbGVtZW50Ii4nKTt2YXIgb2JzZXJ2YXRpb25zPXRoaXMub2JzZXJ2YXRpb25zXztvYnNlcnZhdGlvbnMuaGFzKHRhcmdldCkmJihvYnNlcnZhdGlvbnMuZGVsZXRlKHRhcmdldCksb2JzZXJ2YXRpb25zLnNpemV8fHRoaXMuY29udHJvbGxlcl8ucmVtb3ZlT2JzZXJ2ZXIodGhpcykpfX0sUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLmRpc2Nvbm5lY3Q9ZnVuY3Rpb24oKXt0aGlzLmNsZWFyQWN0aXZlKCksdGhpcy5vYnNlcnZhdGlvbnNfLmNsZWFyKCksdGhpcy5jb250cm9sbGVyXy5yZW1vdmVPYnNlcnZlcih0aGlzKX0sUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLmdhdGhlckFjdGl2ZT1mdW5jdGlvbigpe3ZhciBfdGhpcz10aGlzO3RoaXMuY2xlYXJBY3RpdmUoKSx0aGlzLm9ic2VydmF0aW9uc18uZm9yRWFjaChmdW5jdGlvbihvYnNlcnZhdGlvbil7b2JzZXJ2YXRpb24uaXNBY3RpdmUoKSYmX3RoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXy5wdXNoKG9ic2VydmF0aW9uKX0pfSxSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuYnJvYWRjYXN0QWN0aXZlPWZ1bmN0aW9uKCl7aWYodGhpcy5oYXNBY3RpdmUoKSl7dmFyIGN0eD10aGlzLmNhbGxiYWNrQ3R4XyxlbnRyaWVzPXRoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXy5tYXAoZnVuY3Rpb24ob2JzZXJ2YXRpb24pe3JldHVybiBuZXcgUmVzaXplT2JzZXJ2ZXJFbnRyeShvYnNlcnZhdGlvbi50YXJnZXQsb2JzZXJ2YXRpb24uYnJvYWRjYXN0UmVjdCgpKX0pO3RoaXMuY2FsbGJhY2tfLmNhbGwoY3R4LGVudHJpZXMsY3R4KSx0aGlzLmNsZWFyQWN0aXZlKCl9fSxSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuY2xlYXJBY3RpdmU9ZnVuY3Rpb24oKXt0aGlzLmFjdGl2ZU9ic2VydmF0aW9uc18uc3BsaWNlKDApfSxSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUuaGFzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXy5sZW5ndGg+MH0sUmVzaXplT2JzZXJ2ZXJTUEl9KCksb2JzZXJ2ZXJzPSJ1bmRlZmluZWQiIT10eXBlb2YgV2Vha01hcD9uZXcgV2Vha01hcDpuZXcgTWFwU2hpbSxSZXNpemVPYnNlcnZlcj1mdW5jdGlvbiBSZXNpemVPYnNlcnZlcihjYWxsYmFjayl7aWYoISh0aGlzIGluc3RhbmNlb2YgUmVzaXplT2JzZXJ2ZXIpKXRocm93IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uLiIpO2lmKCFhcmd1bWVudHMubGVuZ3RoKXRocm93IFR5cGVFcnJvcigiMSBhcmd1bWVudCByZXF1aXJlZCwgYnV0IG9ubHkgMCBwcmVzZW50LiIpO3ZhciBjb250cm9sbGVyPVJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLG9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlclNQSShjYWxsYmFjayxjb250cm9sbGVyLHRoaXMpO29ic2VydmVycy5zZXQodGhpcyxvYnNlcnZlcil9O1sib2JzZXJ2ZSIsInVub2JzZXJ2ZSIsImRpc2Nvbm5lY3QiXS5mb3JFYWNoKGZ1bmN0aW9uKG1ldGhvZCl7UmVzaXplT2JzZXJ2ZXIucHJvdG90eXBlW21ldGhvZF09ZnVuY3Rpb24oKXt2YXIgX2E7cmV0dXJuKF9hPW9ic2VydmVycy5nZXQodGhpcykpW21ldGhvZF0uYXBwbHkoX2EsYXJndW1lbnRzKX19KTt2YXIgaW5kZXg9dm9pZCAwIT09Z2xvYmFsJDEuUmVzaXplT2JzZXJ2ZXI/Z2xvYmFsJDEuUmVzaXplT2JzZXJ2ZXI6UmVzaXplT2JzZXJ2ZXI7X193ZWJwYWNrX2V4cG9ydHNfXy5aPWluZGV4fSwxMTc0MjpmdW5jdGlvbihtb2R1bGUpe21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIHNlbGVjdGlvbj1kb2N1bWVudC5nZXRTZWxlY3Rpb24oKTtpZighc2VsZWN0aW9uLnJhbmdlQ291bnQpcmV0dXJuIGZ1bmN0aW9uKCl7fTtmb3IodmFyIGFjdGl2ZT1kb2N1bWVudC5hY3RpdmVFbGVtZW50LHJhbmdlcz1bXSxpPTA7aTxzZWxlY3Rpb24ucmFuZ2VDb3VudDtpKyspcmFuZ2VzLnB1c2goc2VsZWN0aW9uLmdldFJhbmdlQXQoaSkpO3N3aXRjaChhY3RpdmUudGFnTmFtZS50b1VwcGVyQ2FzZSgpKXtjYXNlIklOUFVUIjpjYXNlIlRFWFRBUkVBIjphY3RpdmUuYmx1cigpO2JyZWFrO2RlZmF1bHQ6YWN0aXZlPW51bGx9cmV0dXJuIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKSxmdW5jdGlvbigpeyJDYXJldCI9PT1zZWxlY3Rpb24udHlwZSYmc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpLHNlbGVjdGlvbi5yYW5nZUNvdW50fHxyYW5nZXMuZm9yRWFjaChmdW5jdGlvbihyYW5nZSl7c2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKX0pLGFjdGl2ZSYmYWN0aXZlLmZvY3VzKCl9fX0sMzA5MDc6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkoYXJyLGxlbil7KG51bGw9PWxlbnx8bGVuPmFyci5sZW5ndGgpJiYobGVuPWFyci5sZW5ndGgpO2Zvcih2YXIgaT0wLGFycjI9QXJyYXkobGVuKTtpPGxlbjtpKyspYXJyMltpXT1hcnJbaV07cmV0dXJuIGFycjJ9X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gX2FycmF5TGlrZVRvQXJyYXl9fSl9LDgzODc4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIF9hcnJheVdpdGhIb2xlcyhhcnIpe2lmKEFycmF5LmlzQXJyYXkoYXJyKSlyZXR1cm4gYXJyfV9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIF9hcnJheVdpdGhIb2xlc319KX0sOTczMjY6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmMSl7aWYodm9pZCAwPT09c2VsZjEpdGhyb3cgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBzZWxmMX1fX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkfX0pfSwxNTg2MTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLHJlc29sdmUscmVqZWN0LF9uZXh0LF90aHJvdyxrZXksYXJnKXt0cnl7dmFyIGluZm89Z2VuW2tleV0oYXJnKSx2YWx1ZT1pbmZvLnZhbHVlfWNhdGNoKGVycm9yKXtyZWplY3QoZXJyb3IpO3JldHVybn1pbmZvLmRvbmU/cmVzb2x2ZSh2YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKHZhbHVlKS50aGVuKF9uZXh0LF90aHJvdyl9ZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pe3JldHVybiBmdW5jdGlvbigpe3ZhciBzZWxmMT10aGlzLGFyZ3M9YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLHJlamVjdCl7dmFyIGdlbj1mbi5hcHBseShzZWxmMSxhcmdzKTtmdW5jdGlvbiBfbmV4dCh2YWx1ZSl7YXN5bmNHZW5lcmF0b3JTdGVwKGdlbixyZXNvbHZlLHJlamVjdCxfbmV4dCxfdGhyb3csIm5leHQiLHZhbHVlKX1mdW5jdGlvbiBfdGhyb3coZXJyKXthc3luY0dlbmVyYXRvclN0ZXAoZ2VuLHJlc29sdmUscmVqZWN0LF9uZXh0LF90aHJvdywidGhyb3ciLGVycil9X25leHQodm9pZCAwKX0pfX1fX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBfYXN5bmNUb0dlbmVyYXRvcn19KX0sMTU2NzE6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLENvbnN0cnVjdG9yKXtpZighKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKXRocm93IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gX2NsYXNzQ2FsbENoZWNrfX0pfSw0MzE0NDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBfY3JlYXRlQ2xhc3N9fSk7dmFyIF90b1Byb3BlcnR5S2V5X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg4Mzk5Nyk7ZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LHByb3BzKXtmb3IodmFyIGk9MDtpPHByb3BzLmxlbmd0aDtpKyspe3ZhciBkZXNjcmlwdG9yPXByb3BzW2ldO2Rlc2NyaXB0b3IuZW51bWVyYWJsZT1kZXNjcmlwdG9yLmVudW1lcmFibGV8fCExLGRlc2NyaXB0b3IuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBkZXNjcmlwdG9yJiYoZGVzY3JpcHRvci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwoMCxfdG9Qcm9wZXJ0eUtleV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKGRlc2NyaXB0b3Iua2V5KSxkZXNjcmlwdG9yKX19ZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLHByb3RvUHJvcHMsc3RhdGljUHJvcHMpe3JldHVybiBwcm90b1Byb3BzJiZfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUscHJvdG9Qcm9wcyksc3RhdGljUHJvcHMmJl9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLHN0YXRpY1Byb3BzKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQ29uc3RydWN0b3IsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksQ29uc3RydWN0b3J9fSw3MzU2ODpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobyl7cmV0dXJuKF9nZXRQcm90b3R5cGVPZj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihvKXtyZXR1cm4gby5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihvKX0pKG8pfV9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIF9jcmVhdGVTdXBlcn19KTt2YXIgZXNtX3R5cGVvZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDcxMDAyKSxhc3NlcnRUaGlzSW5pdGlhbGl6ZWQ9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzMyNik7ZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpe3ZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0PWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciByZXN1bHQsU3VwZXI9X2dldFByb3RvdHlwZU9mKERlcml2ZWQpO2lmKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3Qpe3ZhciBOZXdUYXJnZXQ9X2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yO3Jlc3VsdD1SZWZsZWN0LmNvbnN0cnVjdChTdXBlcixhcmd1bWVudHMsTmV3VGFyZ2V0KX1lbHNlIHJlc3VsdD1TdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uKHNlbGYxLGNhbGwpe2lmKGNhbGwmJigib2JqZWN0Ij09PSgwLGVzbV90eXBlb2YuWikoY2FsbCl8fCJmdW5jdGlvbiI9PXR5cGVvZiBjYWxsKSlyZXR1cm4gY2FsbDtpZih2b2lkIDAhPT1jYWxsKXRocm93IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4oMCxhc3NlcnRUaGlzSW5pdGlhbGl6ZWQuWikoc2VsZjEpfSh0aGlzLHJlc3VsdCl9fX0sNDk0MjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBfZGVmaW5lUHJvcGVydHl9fSk7dmFyIF90b1Byb3BlcnR5S2V5X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg4Mzk5Nyk7ZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaixrZXksdmFsdWUpe3JldHVybihrZXk9KDAsX3RvUHJvcGVydHlLZXlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShrZXkpKWluIG9iaj9PYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLGtleSx7dmFsdWU6dmFsdWUsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpvYmpba2V5XT12YWx1ZSxvYmp9fSw4NzQ2MjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfZXh0ZW5kcygpe3JldHVybihfZXh0ZW5kcz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHRhcmdldCl7Zm9yKHZhciBpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKyl7dmFyIHNvdXJjZT1hcmd1bWVudHNbaV07Zm9yKHZhciBrZXkgaW4gc291cmNlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2Usa2V5KSYmKHRhcmdldFtrZXldPXNvdXJjZVtrZXldKX1yZXR1cm4gdGFyZ2V0fSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfV9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIF9leHRlbmRzfX0pfSwzMjUzMTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobyxwKXtyZXR1cm4oX3NldFByb3RvdHlwZU9mPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKG8scCl7cmV0dXJuIG8uX19wcm90b19fPXAsb30pKG8scCl9ZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLHN1cGVyQ2xhc3Mpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBzdXBlckNsYXNzJiZudWxsIT09c3VwZXJDbGFzcyl0aHJvdyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7c3ViQ2xhc3MucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyYmc3VwZXJDbGFzcy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpzdWJDbGFzcyx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHN1YkNsYXNzLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHN1cGVyQ2xhc3MmJl9zZXRQcm90b3R5cGVPZihzdWJDbGFzcyxzdXBlckNsYXNzKX1fX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBfaW5oZXJpdHN9fSl9LDU5MTk5OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkoaXRlcil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWl0ZXJbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9aXRlclsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGl0ZXIpfV9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIF9pdGVyYWJsZVRvQXJyYXl9fSl9LDI1MjY3OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIF9ub25JdGVyYWJsZVJlc3QoKXt0aHJvdyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gX25vbkl0ZXJhYmxlUmVzdH19KX0sMTQxMzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBfb2JqZWN0U3ByZWFkMn19KTt2YXIgX2RlZmluZVByb3BlcnR5X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg0OTQyKTtmdW5jdGlvbiBvd25LZXlzKGUscil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIG89T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtyJiYobz1vLmZpbHRlcihmdW5jdGlvbihyKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHIpLmVudW1lcmFibGV9KSksdC5wdXNoLmFwcGx5KHQsbyl9cmV0dXJuIHR9ZnVuY3Rpb24gX29iamVjdFNwcmVhZDIoZSl7Zm9yKHZhciByPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW3JdP2FyZ3VtZW50c1tyXTp7fTtyJTI/b3duS2V5cyhPYmplY3QodCksITApLmZvckVhY2goZnVuY3Rpb24ocil7KDAsX2RlZmluZVByb3BlcnR5X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoZSxyLHRbcl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6b3duS2V5cyhPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24ocil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQscikpfSl9cmV0dXJuIGV9fSw5MTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoc291cmNlLGV4Y2x1ZGVkKXtpZihudWxsPT1zb3VyY2UpcmV0dXJue307dmFyIGtleSxpLHRhcmdldD1mdW5jdGlvbihzb3VyY2UsZXhjbHVkZWQpe2lmKG51bGw9PXNvdXJjZSlyZXR1cm57fTt2YXIga2V5LGksdGFyZ2V0PXt9LHNvdXJjZUtleXM9T2JqZWN0LmtleXMoc291cmNlKTtmb3IoaT0wO2k8c291cmNlS2V5cy5sZW5ndGg7aSsrKWtleT1zb3VyY2VLZXlzW2ldLGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KT49MHx8KHRhcmdldFtrZXldPXNvdXJjZVtrZXldKTtyZXR1cm4gdGFyZ2V0fShzb3VyY2UsZXhjbHVkZWQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBzb3VyY2VTeW1ib2xLZXlzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoc291cmNlKTtmb3IoaT0wO2k8c291cmNlU3ltYm9sS2V5cy5sZW5ndGg7aSsrKWtleT1zb3VyY2VTeW1ib2xLZXlzW2ldLCEoZXhjbHVkZWQuaW5kZXhPZihrZXkpPj0wKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHNvdXJjZSxrZXkpJiYodGFyZ2V0W2tleV09c291cmNlW2tleV0pfXJldHVybiB0YXJnZXR9X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzfX0pfSw3NDE2NTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lfX0pO3ZhciBfdHlwZW9mX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg3MTAwMik7ZnVuY3Rpb24gX3JlZ2VuZXJhdG9yUnVudGltZSgpe19yZWdlbmVyYXRvclJ1bnRpbWU9ZnVuY3Rpb24oKXtyZXR1cm4gZX07dmFyIHQsZT17fSxyPU9iamVjdC5wcm90b3R5cGUsbj1yLmhhc093blByb3BlcnR5LG89T2JqZWN0LmRlZmluZVByb3BlcnR5fHxmdW5jdGlvbih0LGUscil7dFtlXT1yLnZhbHVlfSxpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LGE9aS5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLGM9aS5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIix1PWkudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBkZWZpbmUodCxlLHIpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7ZGVmaW5lKHt9LCIiKX1jYXRjaCh0MSl7ZGVmaW5lPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFtlXT1yfX1mdW5jdGlvbiB3cmFwKHQxLGUscixuKXt2YXIgbjEsbzEsYT1PYmplY3QuY3JlYXRlKChlJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIEdlbmVyYXRvcj9lOkdlbmVyYXRvcikucHJvdG90eXBlKTtyZXR1cm4gbyhhLCJfaW52b2tlIix7dmFsdWU6KG4xPW5ldyBDb250ZXh0KG58fFtdKSxvMT1oLGZ1bmN0aW9uKGksYSl7aWYobzE9PT1mKXRocm93IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYobzE9PT1zKXtpZigidGhyb3ciPT09aSl0aHJvdyBhO3JldHVybnt2YWx1ZTp0LGRvbmU6ITB9fWZvcihuMS5tZXRob2Q9aSxuMS5hcmc9YTs7KXt2YXIgYz1uMS5kZWxlZ2F0ZTtpZihjKXt2YXIgdT1mdW5jdGlvbiBtYXliZUludm9rZURlbGVnYXRlKGUscil7dmFyIG49ci5tZXRob2Qsbz1lLml0ZXJhdG9yW25dO2lmKG89PT10KXJldHVybiByLmRlbGVnYXRlPW51bGwsInRocm93Ij09PW4mJmUuaXRlcmF0b3IucmV0dXJuJiYoci5tZXRob2Q9InJldHVybiIsci5hcmc9dCxtYXliZUludm9rZURlbGVnYXRlKGUsciksInRocm93Ij09PXIubWV0aG9kKXx8InJldHVybiIhPT1uJiYoci5tZXRob2Q9InRocm93IixyLmFyZz1UeXBlRXJyb3IoIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJyIrbisiJyBtZXRob2QiKSkseTt2YXIgaT10cnlDYXRjaChvLGUuaXRlcmF0b3Isci5hcmcpO2lmKCJ0aHJvdyI9PT1pLnR5cGUpcmV0dXJuIHIubWV0aG9kPSJ0aHJvdyIsci5hcmc9aS5hcmcsci5kZWxlZ2F0ZT1udWxsLHk7dmFyIGE9aS5hcmc7cmV0dXJuIGE/YS5kb25lPyhyW2UucmVzdWx0TmFtZV09YS52YWx1ZSxyLm5leHQ9ZS5uZXh0TG9jLCJyZXR1cm4iIT09ci5tZXRob2QmJihyLm1ldGhvZD0ibmV4dCIsci5hcmc9dCksci5kZWxlZ2F0ZT1udWxsLHkpOmE6KHIubWV0aG9kPSJ0aHJvdyIsci5hcmc9VHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpLHIuZGVsZWdhdGU9bnVsbCx5KX0oYyxuMSk7aWYodSl7aWYodT09PXkpY29udGludWU7cmV0dXJuIHV9fWlmKCJuZXh0Ij09PW4xLm1ldGhvZCluMS5zZW50PW4xLl9zZW50PW4xLmFyZztlbHNlIGlmKCJ0aHJvdyI9PT1uMS5tZXRob2Qpe2lmKG8xPT09aCl0aHJvdyBvMT1zLG4xLmFyZztuMS5kaXNwYXRjaEV4Y2VwdGlvbihuMS5hcmcpfWVsc2UicmV0dXJuIj09PW4xLm1ldGhvZCYmbjEuYWJydXB0KCJyZXR1cm4iLG4xLmFyZyk7bzE9Zjt2YXIgcD10cnlDYXRjaCh0MSxyLG4xKTtpZigibm9ybWFsIj09PXAudHlwZSl7aWYobzE9bjEuZG9uZT9zOiJzdXNwZW5kZWRZaWVsZCIscC5hcmc9PT15KWNvbnRpbnVlO3JldHVybnt2YWx1ZTpwLmFyZyxkb25lOm4xLmRvbmV9fSJ0aHJvdyI9PT1wLnR5cGUmJihvMT1zLG4xLm1ldGhvZD0idGhyb3ciLG4xLmFyZz1wLmFyZyl9fSl9KSxhfWZ1bmN0aW9uIHRyeUNhdGNoKHQsZSxyKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLHIpfX1jYXRjaCh0MSl7cmV0dXJue3R5cGU6InRocm93Iixhcmc6dDF9fX1lLndyYXA9d3JhcDt2YXIgaD0ic3VzcGVuZGVkU3RhcnQiLGY9ImV4ZWN1dGluZyIscz0iY29tcGxldGVkIix5PXt9O2Z1bmN0aW9uIEdlbmVyYXRvcigpe31mdW5jdGlvbiBHZW5lcmF0b3JGdW5jdGlvbigpe31mdW5jdGlvbiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSgpe312YXIgcD17fTtkZWZpbmUocCxhLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KTt2YXIgZD1PYmplY3QuZ2V0UHJvdG90eXBlT2Ysdj1kJiZkKGQodmFsdWVzKFtdKSkpO3YmJnYhPT1yJiZuLmNhbGwodixhKSYmKHA9dik7dmFyIGc9R2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUucHJvdG90eXBlPUdlbmVyYXRvci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShwKTtmdW5jdGlvbiBkZWZpbmVJdGVyYXRvck1ldGhvZHModCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2RlZmluZSh0LGUsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSl9KX1mdW5jdGlvbiBBc3luY0l0ZXJhdG9yKHQsZSl7dmFyIHI7byh0aGlzLCJfaW52b2tlIix7dmFsdWU6ZnVuY3Rpb24odDEsbjEpe2Z1bmN0aW9uIGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnKCl7cmV0dXJuIG5ldyBlKGZ1bmN0aW9uKGUxLHIpeyFmdW5jdGlvbiBpbnZva2UocixvLGksYSl7dmFyIGM9dHJ5Q2F0Y2godFtyXSx0LG8pO2lmKCJ0aHJvdyIhPT1jLnR5cGUpe3ZhciB1PWMuYXJnLGg9dS52YWx1ZTtyZXR1cm4gaCYmIm9iamVjdCI9PSgwLF90eXBlb2ZfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShoKSYmbi5jYWxsKGgsIl9fYXdhaXQiKT9lLnJlc29sdmUoaC5fX2F3YWl0KS50aGVuKGZ1bmN0aW9uKHQpe2ludm9rZSgibmV4dCIsdCxpLGEpfSxmdW5jdGlvbih0KXtpbnZva2UoInRocm93Iix0LGksYSl9KTplLnJlc29sdmUoaCkudGhlbihmdW5jdGlvbih0KXt1LnZhbHVlPXQsaSh1KX0sZnVuY3Rpb24odCl7cmV0dXJuIGludm9rZSgidGhyb3ciLHQsaSxhKX0pfWEoYy5hcmcpfSh0MSxuMSxlMSxyKX0pfXJldHVybiByPXI/ci50aGVuKGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnLGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnKTpjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpfX0pfWZ1bmN0aW9uIHB1c2hUcnlFbnRyeSh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiByZXNldFRyeUVudHJ5KHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPSJub3JtYWwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBDb250ZXh0KHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSx0LmZvckVhY2gocHVzaFRyeUVudHJ5LHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIHZhbHVlcyhlKXtpZihlfHwiIj09PWUpe3ZhciByPWVbYV07aWYocilyZXR1cm4gci5jYWxsKGUpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLm5leHQpcmV0dXJuIGU7aWYoIWlzTmFOKGUubGVuZ3RoKSl7dmFyIG89LTEsaT1mdW5jdGlvbiBuZXh0KCl7Zm9yKDsrK288ZS5sZW5ndGg7KWlmKG4uY2FsbChlLG8pKXJldHVybiBuZXh0LnZhbHVlPWVbb10sbmV4dC5kb25lPSExLG5leHQ7cmV0dXJuIG5leHQudmFsdWU9dCxuZXh0LmRvbmU9ITAsbmV4dH07cmV0dXJuIGkubmV4dD1pfX10aHJvdyBUeXBlRXJyb3IoKDAsX3R5cGVvZl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIEdlbmVyYXRvckZ1bmN0aW9uLnByb3RvdHlwZT1HZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSxvKGcsImNvbnN0cnVjdG9yIix7dmFsdWU6R2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsY29uZmlndXJhYmxlOiEwfSksbyhHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSwiY29uc3RydWN0b3IiLHt2YWx1ZTpHZW5lcmF0b3JGdW5jdGlvbixjb25maWd1cmFibGU6ITB9KSxHZW5lcmF0b3JGdW5jdGlvbi5kaXNwbGF5TmFtZT1kZWZpbmUoR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsdSwiR2VuZXJhdG9yRnVuY3Rpb24iKSxlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PUdlbmVyYXRvckZ1bmN0aW9ufHwiR2VuZXJhdG9yRnVuY3Rpb24iPT09KGUuZGlzcGxheU5hbWV8fGUubmFtZSkpfSxlLm1hcms9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSk6KHQuX19wcm90b19fPUdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLGRlZmluZSh0LHUsIkdlbmVyYXRvckZ1bmN0aW9uIikpLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyksdH0sZS5hd3JhcD1mdW5jdGlvbih0KXtyZXR1cm57X19hd2FpdDp0fX0sZGVmaW5lSXRlcmF0b3JNZXRob2RzKEFzeW5jSXRlcmF0b3IucHJvdG90eXBlKSxkZWZpbmUoQXN5bmNJdGVyYXRvci5wcm90b3R5cGUsYyxmdW5jdGlvbigpe3JldHVybiB0aGlzfSksZS5Bc3luY0l0ZXJhdG9yPUFzeW5jSXRlcmF0b3IsZS5hc3luYz1mdW5jdGlvbih0LHIsbixvLGkpe3ZvaWQgMD09PWkmJihpPVByb21pc2UpO3ZhciBhPW5ldyBBc3luY0l0ZXJhdG9yKHdyYXAodCxyLG4sbyksaSk7cmV0dXJuIGUuaXNHZW5lcmF0b3JGdW5jdGlvbihyKT9hOmEubmV4dCgpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9uZT90LnZhbHVlOmEubmV4dCgpfSl9LGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhnKSxkZWZpbmUoZyx1LCJHZW5lcmF0b3IiKSxkZWZpbmUoZyxhLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxkZWZpbmUoZywidG9TdHJpbmciLGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSxlLmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KHQpLHI9W107Zm9yKHZhciBuIGluIGUpci5wdXNoKG4pO3JldHVybiByLnJldmVyc2UoKSxmdW5jdGlvbiBuZXh0KCl7Zm9yKDtyLmxlbmd0aDspe3ZhciB0PXIucG9wKCk7aWYodCBpbiBlKXJldHVybiBuZXh0LnZhbHVlPXQsbmV4dC5kb25lPSExLG5leHR9cmV0dXJuIG5leHQuZG9uZT0hMCxuZXh0fX0sZS52YWx1ZXM9dmFsdWVzLENvbnRleHQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpDb250ZXh0LHJlc2V0OmZ1bmN0aW9uKGUpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PXQsdGhpcy5kb25lPSExLHRoaXMuZGVsZWdhdGU9bnVsbCx0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5hcmc9dCx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChyZXNldFRyeUVudHJ5KSwhZSlmb3IodmFyIHIgaW4gdGhpcykidCI9PT1yLmNoYXJBdCgwKSYmbi5jYWxsKHRoaXMscikmJiFpc05hTigrci5zbGljZSgxKSkmJih0aGlzW3JdPXQpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciB0PXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oZSl7aWYodGhpcy5kb25lKXRocm93IGU7dmFyIHI9dGhpcztmdW5jdGlvbiBoYW5kbGUobixvKXtyZXR1cm4gYS50eXBlPSJ0aHJvdyIsYS5hcmc9ZSxyLm5leHQ9bixvJiYoci5tZXRob2Q9Im5leHQiLHIuYXJnPXQpLCEhb31mb3IodmFyIG89dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO28+PTA7LS1vKXt2YXIgaT10aGlzLnRyeUVudHJpZXNbb10sYT1pLmNvbXBsZXRpb247aWYoInJvb3QiPT09aS50cnlMb2MpcmV0dXJuIGhhbmRsZSgiZW5kIik7aWYoaS50cnlMb2M8PXRoaXMucHJldil7dmFyIGM9bi5jYWxsKGksImNhdGNoTG9jIiksdT1uLmNhbGwoaSwiZmluYWxseUxvYyIpO2lmKGMmJnUpe2lmKHRoaXMucHJldjxpLmNhdGNoTG9jKXJldHVybiBoYW5kbGUoaS5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PGkuZmluYWxseUxvYylyZXR1cm4gaGFuZGxlKGkuZmluYWxseUxvYyl9ZWxzZSBpZihjKXtpZih0aGlzLnByZXY8aS5jYXRjaExvYylyZXR1cm4gaGFuZGxlKGkuY2F0Y2hMb2MsITApfWVsc2V7aWYoIXUpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PGkuZmluYWxseUxvYylyZXR1cm4gaGFuZGxlKGkuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7cj49MDstLXIpe3ZhciBvPXRoaXMudHJ5RW50cmllc1tyXTtpZihvLnRyeUxvYzw9dGhpcy5wcmV2JiZuLmNhbGwobywiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX1pJiYoImJyZWFrIj09PXR8fCJjb250aW51ZSI9PT10KSYmaS50cnlMb2M8PWUmJmU8PWkuZmluYWxseUxvYyYmKGk9bnVsbCk7dmFyIGE9aT9pLmNvbXBsZXRpb246e307cmV0dXJuIGEudHlwZT10LGEuYXJnPWUsaT8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1pLmZpbmFsbHlMb2MseSk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24odCxlKXtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiJicmVhayI9PT10LnR5cGV8fCJjb250aW51ZSI9PT10LnR5cGU/dGhpcy5uZXh0PXQuYXJnOiJyZXR1cm4iPT09dC50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9dC5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKToibm9ybWFsIj09PXQudHlwZSYmZSYmKHRoaXMubmV4dD1lKSx5fSxmaW5pc2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIHI9dGhpcy50cnlFbnRyaWVzW2VdO2lmKHIuZmluYWxseUxvYz09PXQpcmV0dXJuIHRoaXMuY29tcGxldGUoci5jb21wbGV0aW9uLHIuYWZ0ZXJMb2MpLHJlc2V0VHJ5RW50cnkocikseX19LGNhdGNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciByPXRoaXMudHJ5RW50cmllc1tlXTtpZihyLnRyeUxvYz09PXQpe3ZhciBuPXIuY29tcGxldGlvbjtpZigidGhyb3ciPT09bi50eXBlKXt2YXIgbz1uLmFyZztyZXNldFRyeUVudHJ5KHIpfXJldHVybiBvfX10aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxyLG4pe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjp2YWx1ZXMoZSkscmVzdWx0TmFtZTpyLG5leHRMb2M6bn0sIm5leHQiPT09dGhpcy5tZXRob2QmJih0aGlzLmFyZz10KSx5fX0sZX19LDk3Njg1OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIF9zbGljZWRUb0FycmF5fX0pO3ZhciBhcnJheVdpdGhIb2xlcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDgzODc4KSx1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheT1fX3dlYnBhY2tfcmVxdWlyZV9fKDQwMTgxKSxub25JdGVyYWJsZVJlc3Q9X193ZWJwYWNrX3JlcXVpcmVfXygyNTI2Nyk7ZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkoYXJyLGkpe3JldHVybigwLGFycmF5V2l0aEhvbGVzLlopKGFycil8fGZ1bmN0aW9uKHIsbCl7dmFyIHQ9bnVsbD09cj9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZyW1N5bWJvbC5pdGVyYXRvcl18fHJbIkBAaXRlcmF0b3IiXTtpZihudWxsIT10KXt2YXIgZSxuLGksdSxhPVtdLGY9ITAsbz0hMTt0cnl7aWYoaT0odD10LmNhbGwocikpLm5leHQsMD09PWwpe2lmKE9iamVjdCh0KSE9PXQpcmV0dXJuO2Y9ITF9ZWxzZSBmb3IoOyEoZj0oZT1pLmNhbGwodCkpLmRvbmUpJiYoYS5wdXNoKGUudmFsdWUpLGEubGVuZ3RoIT09bCk7Zj0hMCk7fWNhdGNoKHIxKXtvPSEwLG49cjF9ZmluYWxseXt0cnl7aWYoIWYmJm51bGwhPXQucmV0dXJuJiYodT10LnJldHVybigpLE9iamVjdCh1KSE9PXUpKXJldHVybn1maW5hbGx5e2lmKG8pdGhyb3cgbn19cmV0dXJuIGF9fShhcnIsaSl8fCgwLHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LlopKGFycixpKXx8KDAsbm9uSXRlcmFibGVSZXN0LlopKCl9fSw4NDUwNjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBfdG9BcnJheX19KTt2YXIgX2FycmF5V2l0aEhvbGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg4Mzg3OCksX2l0ZXJhYmxlVG9BcnJheV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oNTkxOTkpLF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fPV9fd2VicGFja19yZXF1aXJlX18oNDAxODEpLF9ub25JdGVyYWJsZVJlc3RfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI1MjY3KTtmdW5jdGlvbiBfdG9BcnJheShhcnIpe3JldHVybigwLF9hcnJheVdpdGhIb2xlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKGFycil8fCgwLF9pdGVyYWJsZVRvQXJyYXlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5aKShhcnIpfHwoMCxfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5aKShhcnIpfHwoMCxfbm9uSXRlcmFibGVSZXN0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uWikoKX19LDc0OTAyOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIF90b0NvbnN1bWFibGVBcnJheX19KTt2YXIgYXJyYXlMaWtlVG9BcnJheT1fX3dlYnBhY2tfcmVxdWlyZV9fKDMwOTA3KSxpdGVyYWJsZVRvQXJyYXk9X193ZWJwYWNrX3JlcXVpcmVfXyg1OTE5OSksdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXk9X193ZWJwYWNrX3JlcXVpcmVfXyg0MDE4MSk7ZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KGFycil7cmV0dXJuIGZ1bmN0aW9uKGFycil7aWYoQXJyYXkuaXNBcnJheShhcnIpKXJldHVybigwLGFycmF5TGlrZVRvQXJyYXkuWikoYXJyKX0oYXJyKXx8KDAsaXRlcmFibGVUb0FycmF5LlopKGFycil8fCgwLHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LlopKGFycil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX19LDgzOTk3OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIF90b1Byb3BlcnR5S2V5fX0pO3ZhciBlc21fdHlwZW9mPV9fd2VicGFja19yZXF1aXJlX18oNzEwMDIpO2Z1bmN0aW9uIF90b1Byb3BlcnR5S2V5KGFyZyl7dmFyIGtleT1mdW5jdGlvbihpbnB1dCxoaW50KXtpZigib2JqZWN0IiE9PSgwLGVzbV90eXBlb2YuWikoaW5wdXQpfHxudWxsPT09aW5wdXQpcmV0dXJuIGlucHV0O3ZhciBwcmltPWlucHV0W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cHJpbSl7dmFyIHJlcz1wcmltLmNhbGwoaW5wdXQsaGludHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9PSgwLGVzbV90eXBlb2YuWikocmVzKSlyZXR1cm4gcmVzO3Rocm93IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1oaW50P1N0cmluZzpOdW1iZXIpKGlucHV0KX0oYXJnLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09PSgwLGVzbV90eXBlb2YuWikoa2V5KT9rZXk6U3RyaW5nKGtleSl9fSw3MTAwMjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfdHlwZW9mKG8pe3JldHVybihfdHlwZW9mPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKG8pe3JldHVybiB0eXBlb2Ygb306ZnVuY3Rpb24obyl7cmV0dXJuIG8mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJm8uY29uc3RydWN0b3I9PT1TeW1ib2wmJm8hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBvfSkobyl9X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gX3R5cGVvZn19KX0sNDAxODE6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5fX0pO3ZhciBfYXJyYXlMaWtlVG9BcnJheV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oMzA5MDcpO2Z1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLG1pbkxlbil7aWYobyl7aWYoInN0cmluZyI9PXR5cGVvZiBvKXJldHVybigwLF9hcnJheUxpa2VUb0FycmF5X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikobyxtaW5MZW4pO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PW4mJm8uY29uc3RydWN0b3ImJihuPW8uY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ufHwiU2V0Ij09PW4pcmV0dXJuIEFycmF5LmZyb20obyk7aWYoIkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4oMCxfYXJyYXlMaWtlVG9BcnJheV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKG8sbWluTGVuKX19fSw3Mjk3OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIF90YWdnZWRUZW1wbGF0ZUxpdGVyYWwoc3RyaW5ncyxyYXcpe3JldHVybiByYXd8fChyYXc9c3RyaW5ncy5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhzdHJpbmdzLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUocmF3KX19KSl9X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbH19KX0sNjEzMTI6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7bGV0IHJlc3VsdDtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7djpmdW5jdGlvbigpe3JldHVybiBhbmltYXRlTW90aW9uVmFsdWV9fSk7dmFyIGNhbGxiYWNrLGVycm9ycz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ1NDg3KSx0aW1lX2NvbnZlcnNpb249X193ZWJwYWNrX3JlcXVpcmVfXyg4NjkxNyk7bGV0IGluc3RhbnRBbmltYXRpb25TdGF0ZT17Y3VycmVudDohMX0saXNCZXppZXJEZWZpbml0aW9uPWVhc2luZz0+QXJyYXkuaXNBcnJheShlYXNpbmcpJiYibnVtYmVyIj09dHlwZW9mIGVhc2luZ1swXSxjdWJpY0JlemllckFzU3RyaW5nPShbYSxiLGMsZF0pPT5gY3ViaWMtYmV6aWVyKCR7YX0sICR7Yn0sICR7Y30sICR7ZH0pYCxzdXBwb3J0ZWRXYWFwaUVhc2luZz17bGluZWFyOiJsaW5lYXIiLGVhc2U6ImVhc2UiLGVhc2VJbjoiZWFzZS1pbiIsZWFzZU91dDoiZWFzZS1vdXQiLGVhc2VJbk91dDoiZWFzZS1pbi1vdXQiLGNpcmNJbjpjdWJpY0JlemllckFzU3RyaW5nKFswLC42NSwuNTUsMV0pLGNpcmNPdXQ6Y3ViaWNCZXppZXJBc1N0cmluZyhbLjU1LDAsMSwuNDVdKSxiYWNrSW46Y3ViaWNCZXppZXJBc1N0cmluZyhbLjMxLC4wMSwuNjYsLS41OV0pLGJhY2tPdXQ6Y3ViaWNCZXppZXJBc1N0cmluZyhbLjMzLDEuNTMsLjY5LC45OV0pfTt2YXIgbm9vcD1fX3dlYnBhY2tfcmVxdWlyZV9fKDgxNjYyKTtsZXQgY2FsY0Jlemllcj0odCxhMSxhMik9PigoKDEtMyphMiszKmExKSp0KygzKmEyLTYqYTEpKSp0KzMqYTEpKnQ7ZnVuY3Rpb24gY3ViaWNCZXppZXIobVgxLG1ZMSxtWDIsbVkyKXtpZihtWDE9PT1tWTEmJm1YMj09PW1ZMilyZXR1cm4gbm9vcC5aO2xldCBnZXRURm9yWD1hWD0+KGZ1bmN0aW9uKHgsbG93ZXJCb3VuZCx1cHBlckJvdW5kLG1YMSxtWDIpe2xldCBjdXJyZW50WCxjdXJyZW50VDtsZXQgaT0wO2RvKGN1cnJlbnRYPWNhbGNCZXppZXIoY3VycmVudFQ9bG93ZXJCb3VuZCsodXBwZXJCb3VuZC1sb3dlckJvdW5kKS8yLG1YMSxtWDIpLXgpPjA/dXBwZXJCb3VuZD1jdXJyZW50VDpsb3dlckJvdW5kPWN1cnJlbnRUO3doaWxlKE1hdGguYWJzKGN1cnJlbnRYKT4xZS03JiYrK2k8MTIpO3JldHVybiBjdXJyZW50VH0pKGFYLDAsMSxtWDEsbVgyKTtyZXR1cm4gdD0+MD09PXR8fDE9PT10P3Q6Y2FsY0JlemllcihnZXRURm9yWCh0KSxtWTEsbVkyKX1sZXQgZWFzZUluPWN1YmljQmV6aWVyKC40MiwwLDEsMSksZWFzZU91dD1jdWJpY0JlemllcigwLDAsLjU4LDEpLGVhc2VJbk91dD1jdWJpY0JlemllciguNDIsMCwuNTgsMSksaXNFYXNpbmdBcnJheT1lYXNlPT5BcnJheS5pc0FycmF5KGVhc2UpJiYibnVtYmVyIiE9dHlwZW9mIGVhc2VbMF07dmFyIGNpcmM9X193ZWJwYWNrX3JlcXVpcmVfXygyNzI1NSksbWlycm9yPV9fd2VicGFja19yZXF1aXJlX18oOTA0MTUpLHJldmVyc2U9X193ZWJwYWNrX3JlcXVpcmVfXyg3NTEyOSk7bGV0IGJhY2tPdXQ9Y3ViaWNCZXppZXIoLjMzLDEuNTMsLjY5LC45OSksYmFja0luPSgwLHJldmVyc2UuTSkoYmFja091dCksYmFja0luT3V0PSgwLG1pcnJvci5vKShiYWNrSW4pLGFudGljaXBhdGU9cD0+KHAqPTIpPDE/LjUqYmFja0luKHApOi41KigyLU1hdGgucG93KDIsLTEwKihwLTEpKSksZWFzaW5nTG9va3VwPXtsaW5lYXI6bm9vcC5aLGVhc2VJbjplYXNlSW4sZWFzZUluT3V0OmVhc2VJbk91dCxlYXNlT3V0OmVhc2VPdXQsY2lyY0luOmNpcmMuWjcsY2lyY0luT3V0OmNpcmMuWDcsY2lyY091dDpjaXJjLkJuLGJhY2tJbjpiYWNrSW4sYmFja0luT3V0OmJhY2tJbk91dCxiYWNrT3V0OmJhY2tPdXQsYW50aWNpcGF0ZTphbnRpY2lwYXRlfSxlYXNpbmdEZWZpbml0aW9uVG9GdW5jdGlvbj1kZWZpbml0aW9uPT57aWYoQXJyYXkuaXNBcnJheShkZWZpbml0aW9uKSl7KDAsZXJyb3JzLmspKDQ9PT1kZWZpbml0aW9uLmxlbmd0aCwiQ3ViaWMgYmV6aWVyIGFycmF5cyBtdXN0IGNvbnRhaW4gZm91ciBudW1lcmljYWwgdmFsdWVzLiIpO2xldFt4MSx5MSx4Mix5Ml09ZGVmaW5pdGlvbjtyZXR1cm4gY3ViaWNCZXppZXIoeDEseTEseDIseTIpfXJldHVybiJzdHJpbmciPT10eXBlb2YgZGVmaW5pdGlvbj8oKDAsZXJyb3JzLmspKHZvaWQgMCE9PWVhc2luZ0xvb2t1cFtkZWZpbml0aW9uXSxgSW52YWxpZCBlYXNpbmcgdHlwZSAnJHtkZWZpbml0aW9ufSdgKSxlYXNpbmdMb29rdXBbZGVmaW5pdGlvbl0pOmRlZmluaXRpb259O3ZhciBpbnRlcnBvbGF0ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDY0NjA2KSxtaXg9X193ZWJwYWNrX3JlcXVpcmVfXyg4MDAyMikscHJvZ3Jlc3M9X193ZWJwYWNrX3JlcXVpcmVfXygyMzk2Nyk7ZnVuY3Rpb24ga2V5ZnJhbWVzKHtkdXJhdGlvbj0zMDAsa2V5ZnJhbWVzOmtleWZyYW1lVmFsdWVzLHRpbWVzLGVhc2U9ImVhc2VJbk91dCJ9KXtsZXQgZWFzaW5nRnVuY3Rpb25zPWlzRWFzaW5nQXJyYXkoZWFzZSk/ZWFzZS5tYXAoZWFzaW5nRGVmaW5pdGlvblRvRnVuY3Rpb24pOmVhc2luZ0RlZmluaXRpb25Ub0Z1bmN0aW9uKGVhc2UpLHN0YXRlPXtkb25lOiExLHZhbHVlOmtleWZyYW1lVmFsdWVzWzBdfSxhYnNvbHV0ZVRpbWVzPSh0aW1lcyYmdGltZXMubGVuZ3RoPT09a2V5ZnJhbWVWYWx1ZXMubGVuZ3RoP3RpbWVzOmZ1bmN0aW9uKGFycil7bGV0IG9mZnNldD1bMF07cmV0dXJuIGZ1bmN0aW9uKG9mZnNldCxyZW1haW5pbmcpe2xldCBtaW49b2Zmc2V0W29mZnNldC5sZW5ndGgtMV07Zm9yKGxldCBpPTE7aTw9cmVtYWluaW5nO2krKyl7bGV0IG9mZnNldFByb2dyZXNzPSgwLHByb2dyZXNzLlkpKDAscmVtYWluaW5nLGkpO29mZnNldC5wdXNoKCgwLG1peC5DKShtaW4sMSxvZmZzZXRQcm9ncmVzcykpfX0ob2Zmc2V0LGFyci5sZW5ndGgtMSksb2Zmc2V0fShrZXlmcmFtZVZhbHVlcykpLm1hcChvPT5vKmR1cmF0aW9uKSxtYXBUaW1lVG9LZXlmcmFtZT0oMCxpbnRlcnBvbGF0ZS5zKShhYnNvbHV0ZVRpbWVzLGtleWZyYW1lVmFsdWVzLHtlYXNlOkFycmF5LmlzQXJyYXkoZWFzaW5nRnVuY3Rpb25zKT9lYXNpbmdGdW5jdGlvbnM6a2V5ZnJhbWVWYWx1ZXMubWFwKCgpPT5lYXNpbmdGdW5jdGlvbnN8fGVhc2VJbk91dCkuc3BsaWNlKDAsa2V5ZnJhbWVWYWx1ZXMubGVuZ3RoLTEpfSk7cmV0dXJue2NhbGN1bGF0ZWREdXJhdGlvbjpkdXJhdGlvbixuZXh0OnQ9PihzdGF0ZS52YWx1ZT1tYXBUaW1lVG9LZXlmcmFtZSh0KSxzdGF0ZS5kb25lPXQ+PWR1cmF0aW9uLHN0YXRlKX19dmFyIHZlbG9jaXR5X3Blcl9zZWNvbmQ9X193ZWJwYWNrX3JlcXVpcmVfXygzMDM4KTtmdW5jdGlvbiBjYWxjR2VuZXJhdG9yVmVsb2NpdHkocmVzb2x2ZVZhbHVlLHQsY3VycmVudCl7bGV0IHByZXZUPU1hdGgubWF4KHQtNSwwKTtyZXR1cm4oMCx2ZWxvY2l0eV9wZXJfc2Vjb25kLlIpKGN1cnJlbnQtcmVzb2x2ZVZhbHVlKHByZXZUKSx0LXByZXZUKX12YXIgY2xhbXA9X193ZWJwYWNrX3JlcXVpcmVfXygyNDE2OSk7ZnVuY3Rpb24gY2FsY0FuZ3VsYXJGcmVxKHVuZGFtcGVkRnJlcSxkYW1waW5nUmF0aW8pe3JldHVybiB1bmRhbXBlZEZyZXEqTWF0aC5zcXJ0KDEtZGFtcGluZ1JhdGlvKmRhbXBpbmdSYXRpbyl9bGV0IGR1cmF0aW9uS2V5cz1bImR1cmF0aW9uIiwiYm91bmNlIl0scGh5c2ljc0tleXM9WyJzdGlmZm5lc3MiLCJkYW1waW5nIiwibWFzcyJdO2Z1bmN0aW9uIGlzU3ByaW5nVHlwZShvcHRpb25zLGtleXMpe3JldHVybiBrZXlzLnNvbWUoa2V5PT52b2lkIDAhPT1vcHRpb25zW2tleV0pfWZ1bmN0aW9uIHNwcmluZyh7a2V5ZnJhbWVzLHJlc3REZWx0YSxyZXN0U3BlZWQsLi4ub3B0aW9uc30pe2xldCByZXNvbHZlU3ByaW5nO2xldCBvcmlnaW49a2V5ZnJhbWVzWzBdLHRhcmdldD1rZXlmcmFtZXNba2V5ZnJhbWVzLmxlbmd0aC0xXSxzdGF0ZT17ZG9uZTohMSx2YWx1ZTpvcmlnaW59LHtzdGlmZm5lc3MsZGFtcGluZyxtYXNzLHZlbG9jaXR5LGR1cmF0aW9uLGlzUmVzb2x2ZWRGcm9tRHVyYXRpb259PWZ1bmN0aW9uKG9wdGlvbnMpe2xldCBzcHJpbmdPcHRpb25zPXt2ZWxvY2l0eTowLHN0aWZmbmVzczoxMDAsZGFtcGluZzoxMCxtYXNzOjEsaXNSZXNvbHZlZEZyb21EdXJhdGlvbjohMSwuLi5vcHRpb25zfTtpZighaXNTcHJpbmdUeXBlKG9wdGlvbnMscGh5c2ljc0tleXMpJiZpc1NwcmluZ1R5cGUob3B0aW9ucyxkdXJhdGlvbktleXMpKXtsZXQgZGVyaXZlZD1mdW5jdGlvbih7ZHVyYXRpb249ODAwLGJvdW5jZT0uMjUsdmVsb2NpdHk9MCxtYXNzPTF9KXtsZXQgZW52ZWxvcGUsZGVyaXZhdGl2ZTsoMCxlcnJvcnMuSykoZHVyYXRpb248PSgwLHRpbWVfY29udmVyc2lvbi53KSgxMCksIlNwcmluZyBkdXJhdGlvbiBtdXN0IGJlIDEwIHNlY29uZHMgb3IgbGVzcyIpO2xldCBkYW1waW5nUmF0aW89MS1ib3VuY2U7ZGFtcGluZ1JhdGlvPSgwLGNsYW1wLnUpKC4wNSwxLGRhbXBpbmdSYXRpbyksZHVyYXRpb249KDAsY2xhbXAudSkoLjAxLDEwLCgwLHRpbWVfY29udmVyc2lvbi5YKShkdXJhdGlvbikpLGRhbXBpbmdSYXRpbzwxPyhlbnZlbG9wZT11bmRhbXBlZEZyZXE9PntsZXQgZXhwb25lbnRpYWxEZWNheT11bmRhbXBlZEZyZXEqZGFtcGluZ1JhdGlvLGRlbHRhPWV4cG9uZW50aWFsRGVjYXkqZHVyYXRpb24sYj1jYWxjQW5ndWxhckZyZXEodW5kYW1wZWRGcmVxLGRhbXBpbmdSYXRpbyk7cmV0dXJuIC4wMDEtKGV4cG9uZW50aWFsRGVjYXktdmVsb2NpdHkpL2IqTWF0aC5leHAoLWRlbHRhKX0sZGVyaXZhdGl2ZT11bmRhbXBlZEZyZXE9PntsZXQgZXhwb25lbnRpYWxEZWNheT11bmRhbXBlZEZyZXEqZGFtcGluZ1JhdGlvLGRlbHRhPWV4cG9uZW50aWFsRGVjYXkqZHVyYXRpb24sZT1NYXRoLnBvdyhkYW1waW5nUmF0aW8sMikqTWF0aC5wb3codW5kYW1wZWRGcmVxLDIpKmR1cmF0aW9uLGc9Y2FsY0FuZ3VsYXJGcmVxKE1hdGgucG93KHVuZGFtcGVkRnJlcSwyKSxkYW1waW5nUmF0aW8pLGZhY3Rvcj0tZW52ZWxvcGUodW5kYW1wZWRGcmVxKSsuMDAxPjA/LTE6MTtyZXR1cm4gZmFjdG9yKigoZGVsdGEqdmVsb2NpdHkrdmVsb2NpdHktZSkqTWF0aC5leHAoLWRlbHRhKSkvZ30pOihlbnZlbG9wZT11bmRhbXBlZEZyZXE9PntsZXQgYT1NYXRoLmV4cCgtdW5kYW1wZWRGcmVxKmR1cmF0aW9uKSxiPSh1bmRhbXBlZEZyZXEtdmVsb2NpdHkpKmR1cmF0aW9uKzE7cmV0dXJuIC0uMDAxK2EqYn0sZGVyaXZhdGl2ZT11bmRhbXBlZEZyZXE9PntsZXQgYT1NYXRoLmV4cCgtdW5kYW1wZWRGcmVxKmR1cmF0aW9uKSxiPSh2ZWxvY2l0eS11bmRhbXBlZEZyZXEpKihkdXJhdGlvbipkdXJhdGlvbik7cmV0dXJuIGEqYn0pO2xldCBpbml0aWFsR3Vlc3M9NS9kdXJhdGlvbix1bmRhbXBlZEZyZXE9ZnVuY3Rpb24oZW52ZWxvcGUsZGVyaXZhdGl2ZSxpbml0aWFsR3Vlc3Mpe2xldCByZXN1bHQ9aW5pdGlhbEd1ZXNzO2ZvcihsZXQgaT0xO2k8MTI7aSsrKXJlc3VsdC09ZW52ZWxvcGUocmVzdWx0KS9kZXJpdmF0aXZlKHJlc3VsdCk7cmV0dXJuIHJlc3VsdH0oZW52ZWxvcGUsZGVyaXZhdGl2ZSxpbml0aWFsR3Vlc3MpO2lmKGR1cmF0aW9uPSgwLHRpbWVfY29udmVyc2lvbi53KShkdXJhdGlvbiksaXNOYU4odW5kYW1wZWRGcmVxKSlyZXR1cm57c3RpZmZuZXNzOjEwMCxkYW1waW5nOjEwLGR1cmF0aW9ufTt7bGV0IHN0aWZmbmVzcz1NYXRoLnBvdyh1bmRhbXBlZEZyZXEsMikqbWFzcztyZXR1cm57c3RpZmZuZXNzLGRhbXBpbmc6MipkYW1waW5nUmF0aW8qTWF0aC5zcXJ0KG1hc3Mqc3RpZmZuZXNzKSxkdXJhdGlvbn19fShvcHRpb25zKTsoc3ByaW5nT3B0aW9ucz17Li4uc3ByaW5nT3B0aW9ucywuLi5kZXJpdmVkLHZlbG9jaXR5OjAsbWFzczoxfSkuaXNSZXNvbHZlZEZyb21EdXJhdGlvbj0hMH1yZXR1cm4gc3ByaW5nT3B0aW9uc30ob3B0aW9ucyksaW5pdGlhbFZlbG9jaXR5PXZlbG9jaXR5Py0oMCx0aW1lX2NvbnZlcnNpb24uWCkodmVsb2NpdHkpOjAsZGFtcGluZ1JhdGlvPWRhbXBpbmcvKDIqTWF0aC5zcXJ0KHN0aWZmbmVzcyptYXNzKSksaW5pdGlhbERlbHRhPXRhcmdldC1vcmlnaW4sdW5kYW1wZWRBbmd1bGFyRnJlcT0oMCx0aW1lX2NvbnZlcnNpb24uWCkoTWF0aC5zcXJ0KHN0aWZmbmVzcy9tYXNzKSksaXNHcmFudWxhclNjYWxlPTU+TWF0aC5hYnMoaW5pdGlhbERlbHRhKTtpZihyZXN0U3BlZWR8fChyZXN0U3BlZWQ9aXNHcmFudWxhclNjYWxlPy4wMToyKSxyZXN0RGVsdGF8fChyZXN0RGVsdGE9aXNHcmFudWxhclNjYWxlPy4wMDU6LjUpLGRhbXBpbmdSYXRpbzwxKXtsZXQgYW5ndWxhckZyZXE9Y2FsY0FuZ3VsYXJGcmVxKHVuZGFtcGVkQW5ndWxhckZyZXEsZGFtcGluZ1JhdGlvKTtyZXNvbHZlU3ByaW5nPXQ9PnRhcmdldC1NYXRoLmV4cCgtZGFtcGluZ1JhdGlvKnVuZGFtcGVkQW5ndWxhckZyZXEqdCkqKChpbml0aWFsVmVsb2NpdHkrZGFtcGluZ1JhdGlvKnVuZGFtcGVkQW5ndWxhckZyZXEqaW5pdGlhbERlbHRhKS9hbmd1bGFyRnJlcSpNYXRoLnNpbihhbmd1bGFyRnJlcSp0KStpbml0aWFsRGVsdGEqTWF0aC5jb3MoYW5ndWxhckZyZXEqdCkpfWVsc2UgaWYoMT09PWRhbXBpbmdSYXRpbylyZXNvbHZlU3ByaW5nPXQ9PnRhcmdldC1NYXRoLmV4cCgtdW5kYW1wZWRBbmd1bGFyRnJlcSp0KSooaW5pdGlhbERlbHRhKyhpbml0aWFsVmVsb2NpdHkrdW5kYW1wZWRBbmd1bGFyRnJlcSppbml0aWFsRGVsdGEpKnQpO2Vsc2V7bGV0IGRhbXBlZEFuZ3VsYXJGcmVxPXVuZGFtcGVkQW5ndWxhckZyZXEqTWF0aC5zcXJ0KGRhbXBpbmdSYXRpbypkYW1waW5nUmF0aW8tMSk7cmVzb2x2ZVNwcmluZz10PT57bGV0IGZyZXFGb3JUPU1hdGgubWluKGRhbXBlZEFuZ3VsYXJGcmVxKnQsMzAwKTtyZXR1cm4gdGFyZ2V0LU1hdGguZXhwKC1kYW1waW5nUmF0aW8qdW5kYW1wZWRBbmd1bGFyRnJlcSp0KSooKGluaXRpYWxWZWxvY2l0eStkYW1waW5nUmF0aW8qdW5kYW1wZWRBbmd1bGFyRnJlcSppbml0aWFsRGVsdGEpKk1hdGguc2luaChmcmVxRm9yVCkrZGFtcGVkQW5ndWxhckZyZXEqaW5pdGlhbERlbHRhKk1hdGguY29zaChmcmVxRm9yVCkpL2RhbXBlZEFuZ3VsYXJGcmVxfX1yZXR1cm57Y2FsY3VsYXRlZER1cmF0aW9uOmlzUmVzb2x2ZWRGcm9tRHVyYXRpb24mJmR1cmF0aW9ufHxudWxsLG5leHQodCl7bGV0IGN1cnJlbnQ9cmVzb2x2ZVNwcmluZyh0KTtpZihpc1Jlc29sdmVkRnJvbUR1cmF0aW9uKXN0YXRlLmRvbmU9dD49ZHVyYXRpb247ZWxzZXtsZXQgY3VycmVudFZlbG9jaXR5PWluaXRpYWxWZWxvY2l0eTswIT09dCYmKGN1cnJlbnRWZWxvY2l0eT1kYW1waW5nUmF0aW88MT9jYWxjR2VuZXJhdG9yVmVsb2NpdHkocmVzb2x2ZVNwcmluZyx0LGN1cnJlbnQpOjApO2xldCBpc0JlbG93VmVsb2NpdHlUaHJlc2hvbGQ9TWF0aC5hYnMoY3VycmVudFZlbG9jaXR5KTw9cmVzdFNwZWVkLGlzQmVsb3dEaXNwbGFjZW1lbnRUaHJlc2hvbGQ9TWF0aC5hYnModGFyZ2V0LWN1cnJlbnQpPD1yZXN0RGVsdGE7c3RhdGUuZG9uZT1pc0JlbG93VmVsb2NpdHlUaHJlc2hvbGQmJmlzQmVsb3dEaXNwbGFjZW1lbnRUaHJlc2hvbGR9cmV0dXJuIHN0YXRlLnZhbHVlPXN0YXRlLmRvbmU/dGFyZ2V0OmN1cnJlbnQsc3RhdGV9fX1mdW5jdGlvbiBpbmVydGlhKHtrZXlmcmFtZXMsdmVsb2NpdHk9MCxwb3dlcj0uOCx0aW1lQ29uc3RhbnQ9MzI1LGJvdW5jZURhbXBpbmc9MTAsYm91bmNlU3RpZmZuZXNzPTUwMCxtb2RpZnlUYXJnZXQsbWluLG1heCxyZXN0RGVsdGE9LjUscmVzdFNwZWVkfSl7bGV0IHRpbWVSZWFjaGVkQm91bmRhcnksc3ByaW5nJDE7bGV0IG9yaWdpbj1rZXlmcmFtZXNbMF0sc3RhdGU9e2RvbmU6ITEsdmFsdWU6b3JpZ2lufSxpc091dE9mQm91bmRzPXY9PnZvaWQgMCE9PW1pbiYmdjxtaW58fHZvaWQgMCE9PW1heCYmdj5tYXgsbmVhcmVzdEJvdW5kYXJ5PXY9PnZvaWQgMD09PW1pbj9tYXg6dm9pZCAwPT09bWF4P21pbjpNYXRoLmFicyhtaW4tdik8TWF0aC5hYnMobWF4LXYpP21pbjptYXgsYW1wbGl0dWRlPXBvd2VyKnZlbG9jaXR5LGlkZWFsPW9yaWdpbithbXBsaXR1ZGUsdGFyZ2V0PXZvaWQgMD09PW1vZGlmeVRhcmdldD9pZGVhbDptb2RpZnlUYXJnZXQoaWRlYWwpO3RhcmdldCE9PWlkZWFsJiYoYW1wbGl0dWRlPXRhcmdldC1vcmlnaW4pO2xldCBjYWxjRGVsdGE9dD0+LWFtcGxpdHVkZSpNYXRoLmV4cCgtdC90aW1lQ29uc3RhbnQpLGNhbGNMYXRlc3Q9dD0+dGFyZ2V0K2NhbGNEZWx0YSh0KSxhcHBseUZyaWN0aW9uPXQ9PntsZXQgZGVsdGE9Y2FsY0RlbHRhKHQpLGxhdGVzdD1jYWxjTGF0ZXN0KHQpO3N0YXRlLmRvbmU9TWF0aC5hYnMoZGVsdGEpPD1yZXN0RGVsdGEsc3RhdGUudmFsdWU9c3RhdGUuZG9uZT90YXJnZXQ6bGF0ZXN0fSxjaGVja0NhdGNoQm91bmRhcnk9dD0+e2lzT3V0T2ZCb3VuZHMoc3RhdGUudmFsdWUpJiYodGltZVJlYWNoZWRCb3VuZGFyeT10LHNwcmluZyQxPXNwcmluZyh7a2V5ZnJhbWVzOltzdGF0ZS52YWx1ZSxuZWFyZXN0Qm91bmRhcnkoc3RhdGUudmFsdWUpXSx2ZWxvY2l0eTpjYWxjR2VuZXJhdG9yVmVsb2NpdHkoY2FsY0xhdGVzdCx0LHN0YXRlLnZhbHVlKSxkYW1waW5nOmJvdW5jZURhbXBpbmcsc3RpZmZuZXNzOmJvdW5jZVN0aWZmbmVzcyxyZXN0RGVsdGEscmVzdFNwZWVkfSkpfTtyZXR1cm4gY2hlY2tDYXRjaEJvdW5kYXJ5KDApLHtjYWxjdWxhdGVkRHVyYXRpb246bnVsbCxuZXh0KHQpe2xldCBoYXNVcGRhdGVkRnJhbWU9ITE7cmV0dXJuKHNwcmluZyQxfHx2b2lkIDAhPT10aW1lUmVhY2hlZEJvdW5kYXJ5fHwoaGFzVXBkYXRlZEZyYW1lPSEwLGFwcGx5RnJpY3Rpb24odCksY2hlY2tDYXRjaEJvdW5kYXJ5KHQpKSx2b2lkIDAhPT10aW1lUmVhY2hlZEJvdW5kYXJ5JiZ0PnRpbWVSZWFjaGVkQm91bmRhcnkpP3NwcmluZyQxLm5leHQodC10aW1lUmVhY2hlZEJvdW5kYXJ5KTooaGFzVXBkYXRlZEZyYW1lfHxhcHBseUZyaWN0aW9uKHQpLHN0YXRlKX19fXZhciBmcmFtZWxvb3BfZnJhbWU9X193ZWJwYWNrX3JlcXVpcmVfXygyMDc0KTtsZXQgZnJhbWVsb29wRHJpdmVyPXVwZGF0ZT0+e2xldCBwYXNzVGltZXN0YW1wPSh7dGltZXN0YW1wfSk9PnVwZGF0ZSh0aW1lc3RhbXApO3JldHVybntzdGFydDooKT0+ZnJhbWVsb29wX2ZyYW1lLldpLnVwZGF0ZShwYXNzVGltZXN0YW1wLCEwKSxzdG9wOigpPT4oMCxmcmFtZWxvb3BfZnJhbWUuUG4pKHBhc3NUaW1lc3RhbXApLG5vdzooKT0+ZnJhbWVsb29wX2ZyYW1lLncwLmlzUHJvY2Vzc2luZz9mcmFtZWxvb3BfZnJhbWUudzAudGltZXN0YW1wOnBlcmZvcm1hbmNlLm5vdygpfX07ZnVuY3Rpb24gY2FsY0dlbmVyYXRvckR1cmF0aW9uKGdlbmVyYXRvcil7bGV0IGR1cmF0aW9uPTAsc3RhdGU9Z2VuZXJhdG9yLm5leHQoZHVyYXRpb24pO2Zvcig7IXN0YXRlLmRvbmUmJmR1cmF0aW9uPDJlNDspZHVyYXRpb24rPTUwLHN0YXRlPWdlbmVyYXRvci5uZXh0KGR1cmF0aW9uKTtyZXR1cm4gZHVyYXRpb24+PTJlND8xLzA6ZHVyYXRpb259bGV0IHR5cGVzPXtkZWNheTppbmVydGlhLGluZXJ0aWE6aW5lcnRpYSx0d2VlbjprZXlmcmFtZXMsa2V5ZnJhbWVzOmtleWZyYW1lcyxzcHJpbmc6c3ByaW5nfTtmdW5jdGlvbiBhbmltYXRlVmFsdWUoe2F1dG9wbGF5PSEwLGRlbGF5PTAsZHJpdmVyPWZyYW1lbG9vcERyaXZlcixrZXlmcmFtZXM6a2V5ZnJhbWVzJDEsdHlwZT0ia2V5ZnJhbWVzIixyZXBlYXQ9MCxyZXBlYXREZWxheT0wLHJlcGVhdFR5cGU9Imxvb3AiLG9uUGxheSxvblN0b3Asb25Db21wbGV0ZSxvblVwZGF0ZSwuLi5vcHRpb25zfSl7bGV0IHJlc29sdmVGaW5pc2hlZFByb21pc2UsY3VycmVudEZpbmlzaGVkUHJvbWlzZSxhbmltYXRpb25Ecml2ZXIsbWFwTnVtYmVyc1RvS2V5ZnJhbWVzLG1pcnJvcmVkR2VuZXJhdG9yLHNwZWVkPTEsaGFzU3RvcHBlZD0hMSx1cGRhdGVGaW5pc2hlZFByb21pc2U9KCk9PntjdXJyZW50RmluaXNoZWRQcm9taXNlPW5ldyBQcm9taXNlKHJlc29sdmU9PntyZXNvbHZlRmluaXNoZWRQcm9taXNlPXJlc29sdmV9KX07dXBkYXRlRmluaXNoZWRQcm9taXNlKCk7bGV0IGdlbmVyYXRvckZhY3Rvcnk9dHlwZXNbdHlwZV18fGtleWZyYW1lcztnZW5lcmF0b3JGYWN0b3J5IT09a2V5ZnJhbWVzJiYibnVtYmVyIiE9dHlwZW9mIGtleWZyYW1lcyQxWzBdJiYobWFwTnVtYmVyc1RvS2V5ZnJhbWVzPSgwLGludGVycG9sYXRlLnMpKFswLDEwMF0sa2V5ZnJhbWVzJDEse2NsYW1wOiExfSksa2V5ZnJhbWVzJDE9WzAsMTAwXSk7bGV0IGdlbmVyYXRvcj1nZW5lcmF0b3JGYWN0b3J5KHsuLi5vcHRpb25zLGtleWZyYW1lczprZXlmcmFtZXMkMX0pOyJtaXJyb3IiPT09cmVwZWF0VHlwZSYmKG1pcnJvcmVkR2VuZXJhdG9yPWdlbmVyYXRvckZhY3Rvcnkoey4uLm9wdGlvbnMsa2V5ZnJhbWVzOlsuLi5rZXlmcmFtZXMkMV0ucmV2ZXJzZSgpLHZlbG9jaXR5Oi0ob3B0aW9ucy52ZWxvY2l0eXx8MCl9KSk7bGV0IHBsYXlTdGF0ZT0iaWRsZSIsaG9sZFRpbWU9bnVsbCxzdGFydFRpbWU9bnVsbCxjYW5jZWxUaW1lPW51bGw7bnVsbD09PWdlbmVyYXRvci5jYWxjdWxhdGVkRHVyYXRpb24mJnJlcGVhdCYmKGdlbmVyYXRvci5jYWxjdWxhdGVkRHVyYXRpb249Y2FsY0dlbmVyYXRvckR1cmF0aW9uKGdlbmVyYXRvcikpO2xldHtjYWxjdWxhdGVkRHVyYXRpb259PWdlbmVyYXRvcixyZXNvbHZlZER1cmF0aW9uPTEvMCx0b3RhbER1cmF0aW9uPTEvMDtudWxsIT09Y2FsY3VsYXRlZER1cmF0aW9uJiYodG90YWxEdXJhdGlvbj0ocmVzb2x2ZWREdXJhdGlvbj1jYWxjdWxhdGVkRHVyYXRpb24rcmVwZWF0RGVsYXkpKihyZXBlYXQrMSktcmVwZWF0RGVsYXkpO2xldCBjdXJyZW50VGltZT0wLHRpY2s9dGltZXN0YW1wPT57aWYobnVsbD09PXN0YXJ0VGltZSlyZXR1cm47c3BlZWQ+MCYmKHN0YXJ0VGltZT1NYXRoLm1pbihzdGFydFRpbWUsdGltZXN0YW1wKSksc3BlZWQ8MCYmKHN0YXJ0VGltZT1NYXRoLm1pbih0aW1lc3RhbXAtdG90YWxEdXJhdGlvbi9zcGVlZCxzdGFydFRpbWUpKSxjdXJyZW50VGltZT1udWxsIT09aG9sZFRpbWU/aG9sZFRpbWU6TWF0aC5yb3VuZCh0aW1lc3RhbXAtc3RhcnRUaW1lKSpzcGVlZDtsZXQgdGltZVdpdGhvdXREZWxheT1jdXJyZW50VGltZS1kZWxheSooc3BlZWQ+PTA/MTotMSksaXNJbkRlbGF5UGhhc2U9c3BlZWQ+PTA/dGltZVdpdGhvdXREZWxheTwwOnRpbWVXaXRob3V0RGVsYXk+dG90YWxEdXJhdGlvbjtjdXJyZW50VGltZT1NYXRoLm1heCh0aW1lV2l0aG91dERlbGF5LDApLCJmaW5pc2hlZCI9PT1wbGF5U3RhdGUmJm51bGw9PT1ob2xkVGltZSYmKGN1cnJlbnRUaW1lPXRvdGFsRHVyYXRpb24pO2xldCBlbGFwc2VkPWN1cnJlbnRUaW1lLGZyYW1lR2VuZXJhdG9yPWdlbmVyYXRvcjtpZihyZXBlYXQpe2xldCBwcm9ncmVzcz1jdXJyZW50VGltZS9yZXNvbHZlZER1cmF0aW9uLGN1cnJlbnRJdGVyYXRpb249TWF0aC5mbG9vcihwcm9ncmVzcyksaXRlcmF0aW9uUHJvZ3Jlc3M9cHJvZ3Jlc3MlMTshaXRlcmF0aW9uUHJvZ3Jlc3MmJnByb2dyZXNzPj0xJiYoaXRlcmF0aW9uUHJvZ3Jlc3M9MSksMT09PWl0ZXJhdGlvblByb2dyZXNzJiZjdXJyZW50SXRlcmF0aW9uLS0sY3VycmVudEl0ZXJhdGlvbj1NYXRoLm1pbihjdXJyZW50SXRlcmF0aW9uLHJlcGVhdCsxKTtsZXQgaXRlcmF0aW9uSXNPZGQ9Qm9vbGVhbihjdXJyZW50SXRlcmF0aW9uJTIpO2l0ZXJhdGlvbklzT2RkJiYoInJldmVyc2UiPT09cmVwZWF0VHlwZT8oaXRlcmF0aW9uUHJvZ3Jlc3M9MS1pdGVyYXRpb25Qcm9ncmVzcyxyZXBlYXREZWxheSYmKGl0ZXJhdGlvblByb2dyZXNzLT1yZXBlYXREZWxheS9yZXNvbHZlZER1cmF0aW9uKSk6Im1pcnJvciI9PT1yZXBlYXRUeXBlJiYoZnJhbWVHZW5lcmF0b3I9bWlycm9yZWRHZW5lcmF0b3IpKTtsZXQgcD0oMCxjbGFtcC51KSgwLDEsaXRlcmF0aW9uUHJvZ3Jlc3MpO2N1cnJlbnRUaW1lPnRvdGFsRHVyYXRpb24mJihwPSJyZXZlcnNlIj09PXJlcGVhdFR5cGUmJml0ZXJhdGlvbklzT2RkPzE6MCksZWxhcHNlZD1wKnJlc29sdmVkRHVyYXRpb259bGV0IHN0YXRlPWlzSW5EZWxheVBoYXNlP3tkb25lOiExLHZhbHVlOmtleWZyYW1lcyQxWzBdfTpmcmFtZUdlbmVyYXRvci5uZXh0KGVsYXBzZWQpO21hcE51bWJlcnNUb0tleWZyYW1lcyYmKHN0YXRlLnZhbHVlPW1hcE51bWJlcnNUb0tleWZyYW1lcyhzdGF0ZS52YWx1ZSkpO2xldHtkb25lfT1zdGF0ZTtpc0luRGVsYXlQaGFzZXx8bnVsbD09PWNhbGN1bGF0ZWREdXJhdGlvbnx8KGRvbmU9c3BlZWQ+PTA/Y3VycmVudFRpbWU+PXRvdGFsRHVyYXRpb246Y3VycmVudFRpbWU8PTApO2xldCBpc0FuaW1hdGlvbkZpbmlzaGVkPW51bGw9PT1ob2xkVGltZSYmKCJmaW5pc2hlZCI9PT1wbGF5U3RhdGV8fCJydW5uaW5nIj09PXBsYXlTdGF0ZSYmZG9uZSk7cmV0dXJuIG9uVXBkYXRlJiZvblVwZGF0ZShzdGF0ZS52YWx1ZSksaXNBbmltYXRpb25GaW5pc2hlZCYmZmluaXNoKCksc3RhdGV9LHN0b3BBbmltYXRpb25Ecml2ZXI9KCk9PnthbmltYXRpb25Ecml2ZXImJmFuaW1hdGlvbkRyaXZlci5zdG9wKCksYW5pbWF0aW9uRHJpdmVyPXZvaWQgMH0sY2FuY2VsPSgpPT57cGxheVN0YXRlPSJpZGxlIixzdG9wQW5pbWF0aW9uRHJpdmVyKCkscmVzb2x2ZUZpbmlzaGVkUHJvbWlzZSgpLHVwZGF0ZUZpbmlzaGVkUHJvbWlzZSgpLHN0YXJ0VGltZT1jYW5jZWxUaW1lPW51bGx9LGZpbmlzaD0oKT0+e3BsYXlTdGF0ZT0iZmluaXNoZWQiLG9uQ29tcGxldGUmJm9uQ29tcGxldGUoKSxzdG9wQW5pbWF0aW9uRHJpdmVyKCkscmVzb2x2ZUZpbmlzaGVkUHJvbWlzZSgpfSxwbGF5PSgpPT57aWYoaGFzU3RvcHBlZClyZXR1cm47YW5pbWF0aW9uRHJpdmVyfHwoYW5pbWF0aW9uRHJpdmVyPWRyaXZlcih0aWNrKSk7bGV0IG5vdz1hbmltYXRpb25Ecml2ZXIubm93KCk7b25QbGF5JiZvblBsYXkoKSxudWxsIT09aG9sZFRpbWU/c3RhcnRUaW1lPW5vdy1ob2xkVGltZTpzdGFydFRpbWUmJiJmaW5pc2hlZCIhPT1wbGF5U3RhdGV8fChzdGFydFRpbWU9bm93KSwiZmluaXNoZWQiPT09cGxheVN0YXRlJiZ1cGRhdGVGaW5pc2hlZFByb21pc2UoKSxjYW5jZWxUaW1lPXN0YXJ0VGltZSxob2xkVGltZT1udWxsLHBsYXlTdGF0ZT0icnVubmluZyIsYW5pbWF0aW9uRHJpdmVyLnN0YXJ0KCl9O2F1dG9wbGF5JiZwbGF5KCk7bGV0IGNvbnRyb2xzPXt0aGVuOihyZXNvbHZlLHJlamVjdCk9PmN1cnJlbnRGaW5pc2hlZFByb21pc2UudGhlbihyZXNvbHZlLHJlamVjdCksZ2V0IHRpbWUoKXtyZXR1cm4oMCx0aW1lX2NvbnZlcnNpb24uWCkoY3VycmVudFRpbWUpfSxzZXQgdGltZShuZXdUaW1lKXtjdXJyZW50VGltZT1uZXdUaW1lPSgwLHRpbWVfY29udmVyc2lvbi53KShuZXdUaW1lKSxudWxsPT09aG9sZFRpbWUmJmFuaW1hdGlvbkRyaXZlciYmMCE9PXNwZWVkP3N0YXJ0VGltZT1hbmltYXRpb25Ecml2ZXIubm93KCktbmV3VGltZS9zcGVlZDpob2xkVGltZT1uZXdUaW1lfSxnZXQgZHVyYXRpb24oKXtsZXQgZHVyYXRpb249bnVsbD09PWdlbmVyYXRvci5jYWxjdWxhdGVkRHVyYXRpb24/Y2FsY0dlbmVyYXRvckR1cmF0aW9uKGdlbmVyYXRvcik6Z2VuZXJhdG9yLmNhbGN1bGF0ZWREdXJhdGlvbjtyZXR1cm4oMCx0aW1lX2NvbnZlcnNpb24uWCkoZHVyYXRpb24pfSxnZXQgc3BlZWQoKXtyZXR1cm4gc3BlZWR9LHNldCBzcGVlZChuZXdTcGVlZCl7aWYobmV3U3BlZWQ9PT1zcGVlZHx8IWFuaW1hdGlvbkRyaXZlcilyZXR1cm47c3BlZWQ9bmV3U3BlZWQsY29udHJvbHMudGltZT0oMCx0aW1lX2NvbnZlcnNpb24uWCkoY3VycmVudFRpbWUpfSxnZXQgc3RhdGUoKXtyZXR1cm4gcGxheVN0YXRlfSxwbGF5LHBhdXNlKCl7cGxheVN0YXRlPSJwYXVzZWQiLGhvbGRUaW1lPWN1cnJlbnRUaW1lfSxzdG9wKCl7aGFzU3RvcHBlZD0hMCwiaWRsZSIhPT1wbGF5U3RhdGUmJihwbGF5U3RhdGU9ImlkbGUiLG9uU3RvcCYmb25TdG9wKCksY2FuY2VsKCkpfSxjYW5jZWwoKXtudWxsIT09Y2FuY2VsVGltZSYmdGljayhjYW5jZWxUaW1lKSxjYW5jZWwoKX0sY29tcGxldGUoKXtwbGF5U3RhdGU9ImZpbmlzaGVkIn0sc2FtcGxlOmVsYXBzZWQ9PihzdGFydFRpbWU9MCx0aWNrKGVsYXBzZWQpKX07cmV0dXJuIGNvbnRyb2xzfWxldCBzdXBwb3J0c1dhYXBpPShjYWxsYmFjaz0oKT0+T2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoRWxlbWVudC5wcm90b3R5cGUsImFuaW1hdGUiKSwoKT0+KHZvaWQgMD09PXJlc3VsdCYmKHJlc3VsdD1jYWxsYmFjaygpKSxyZXN1bHQpKSxhY2NlbGVyYXRlZFZhbHVlcz1uZXcgU2V0KFsib3BhY2l0eSIsImNsaXBQYXRoIiwiZmlsdGVyIiwidHJhbnNmb3JtIiwiYmFja2dyb3VuZENvbG9yIl0pLHJlcXVpcmVzUHJlZ2VuZXJhdGVkS2V5ZnJhbWVzPSh2YWx1ZU5hbWUsb3B0aW9ucyk9PiJzcHJpbmciPT09b3B0aW9ucy50eXBlfHwiYmFja2dyb3VuZENvbG9yIj09PXZhbHVlTmFtZXx8IWZ1bmN0aW9uIGlzV2FhcGlTdXBwb3J0ZWRFYXNpbmcoZWFzaW5nKXtyZXR1cm4gQm9vbGVhbighZWFzaW5nfHwic3RyaW5nIj09dHlwZW9mIGVhc2luZyYmc3VwcG9ydGVkV2FhcGlFYXNpbmdbZWFzaW5nXXx8aXNCZXppZXJEZWZpbml0aW9uKGVhc2luZyl8fEFycmF5LmlzQXJyYXkoZWFzaW5nKSYmZWFzaW5nLmV2ZXJ5KGlzV2FhcGlTdXBwb3J0ZWRFYXNpbmcpKX0ob3B0aW9ucy5lYXNlKTt2YXIgdHJhbnNmb3JtPV9fd2VicGFja19yZXF1aXJlX18oOTQ3MTQpO2xldCB1bmRlckRhbXBlZFNwcmluZz17dHlwZToic3ByaW5nIixzdGlmZm5lc3M6NTAwLGRhbXBpbmc6MjUscmVzdFNwZWVkOjEwfSxjcml0aWNhbGx5RGFtcGVkU3ByaW5nPXRhcmdldD0+KHt0eXBlOiJzcHJpbmciLHN0aWZmbmVzczo1NTAsZGFtcGluZzowPT09dGFyZ2V0PzIqTWF0aC5zcXJ0KDU1MCk6MzAscmVzdFNwZWVkOjEwfSksa2V5ZnJhbWVzVHJhbnNpdGlvbj17dHlwZToia2V5ZnJhbWVzIixkdXJhdGlvbjouOH0sZWFzZT17dHlwZToia2V5ZnJhbWVzIixlYXNlOlsuMjUsLjEsLjM1LDFdLGR1cmF0aW9uOi4zfSxnZXREZWZhdWx0VHJhbnNpdGlvbj0odmFsdWVLZXkse2tleWZyYW1lc30pPT5rZXlmcmFtZXMubGVuZ3RoPjI/a2V5ZnJhbWVzVHJhbnNpdGlvbjp0cmFuc2Zvcm0uRy5oYXModmFsdWVLZXkpP3ZhbHVlS2V5LnN0YXJ0c1dpdGgoInNjYWxlIik/Y3JpdGljYWxseURhbXBlZFNwcmluZyhrZXlmcmFtZXNbMV0pOnVuZGVyRGFtcGVkU3ByaW5nOmVhc2U7dmFyIGNvbXBsZXg9X193ZWJwYWNrX3JlcXVpcmVfXyg1MTU1MCk7bGV0IGlzQW5pbWF0YWJsZT0oa2V5LHZhbHVlKT0+InpJbmRleCIhPT1rZXkmJiEhKCJudW1iZXIiPT10eXBlb2YgdmFsdWV8fEFycmF5LmlzQXJyYXkodmFsdWUpfHwic3RyaW5nIj09dHlwZW9mIHZhbHVlJiYoY29tcGxleC5QLnRlc3QodmFsdWUpfHwiMCI9PT12YWx1ZSkmJiF2YWx1ZS5zdGFydHNXaXRoKCJ1cmwoIikpO3ZhciBhbmltYXRhYmxlX25vbmU9X193ZWJwYWNrX3JlcXVpcmVfXyg3OTEzNSksaXNfemVyb192YWx1ZV9zdHJpbmc9X193ZWJwYWNrX3JlcXVpcmVfXygzMDY4MSksdHJhbnNpdGlvbnM9X193ZWJwYWNrX3JlcXVpcmVfXygzMTA1Nik7bGV0IGFuaW1hdGVNb3Rpb25WYWx1ZT0odmFsdWVOYW1lLHZhbHVlLHRhcmdldCx0cmFuc2l0aW9uPXt9KT0+b25Db21wbGV0ZT0+e2xldCB2YWx1ZVRyYW5zaXRpb249KDAsdHJhbnNpdGlvbnMuZSkodHJhbnNpdGlvbix2YWx1ZU5hbWUpfHx7fSxkZWxheT12YWx1ZVRyYW5zaXRpb24uZGVsYXl8fHRyYW5zaXRpb24uZGVsYXl8fDAse2VsYXBzZWQ9MH09dHJhbnNpdGlvbjtlbGFwc2VkLT0oMCx0aW1lX2NvbnZlcnNpb24udykoZGVsYXkpO2xldCBrZXlmcmFtZXM9ZnVuY3Rpb24odmFsdWUsdmFsdWVOYW1lLHRhcmdldCx0cmFuc2l0aW9uKXtsZXQga2V5ZnJhbWVzLGFuaW1hdGFibGVUZW1wbGF0ZVZhbHVlO2xldCBpc1RhcmdldEFuaW1hdGFibGU9aXNBbmltYXRhYmxlKHZhbHVlTmFtZSx0YXJnZXQpO2tleWZyYW1lcz1BcnJheS5pc0FycmF5KHRhcmdldCk/Wy4uLnRhcmdldF06W251bGwsdGFyZ2V0XTtsZXQgZGVmYXVsdE9yaWdpbj12b2lkIDAhPT10cmFuc2l0aW9uLmZyb20/dHJhbnNpdGlvbi5mcm9tOnZhbHVlLmdldCgpLG5vbmVLZXlmcmFtZUluZGV4ZXM9W107Zm9yKGxldCBpPTA7aTxrZXlmcmFtZXMubGVuZ3RoO2krKyl7dmFyIHZhbHVlMTtudWxsPT09a2V5ZnJhbWVzW2ldJiYoa2V5ZnJhbWVzW2ldPTA9PT1pP2RlZmF1bHRPcmlnaW46a2V5ZnJhbWVzW2ktMV0pLCgibnVtYmVyIj09dHlwZW9mKHZhbHVlMT1rZXlmcmFtZXNbaV0pPzA9PT12YWx1ZTE6bnVsbCE9PXZhbHVlMT8ibm9uZSI9PT12YWx1ZTF8fCIwIj09PXZhbHVlMXx8KDAsaXNfemVyb192YWx1ZV9zdHJpbmcuVykodmFsdWUxKTp2b2lkIDApJiZub25lS2V5ZnJhbWVJbmRleGVzLnB1c2goaSksInN0cmluZyI9PXR5cGVvZiBrZXlmcmFtZXNbaV0mJiJub25lIiE9PWtleWZyYW1lc1tpXSYmIjAiIT09a2V5ZnJhbWVzW2ldJiYoYW5pbWF0YWJsZVRlbXBsYXRlVmFsdWU9a2V5ZnJhbWVzW2ldKX1pZihpc1RhcmdldEFuaW1hdGFibGUmJm5vbmVLZXlmcmFtZUluZGV4ZXMubGVuZ3RoJiZhbmltYXRhYmxlVGVtcGxhdGVWYWx1ZSlmb3IobGV0IGkxPTA7aTE8bm9uZUtleWZyYW1lSW5kZXhlcy5sZW5ndGg7aTErKyl7bGV0IGluZGV4PW5vbmVLZXlmcmFtZUluZGV4ZXNbaTFdO2tleWZyYW1lc1tpbmRleF09KDAsYW5pbWF0YWJsZV9ub25lLlQpKHZhbHVlTmFtZSxhbmltYXRhYmxlVGVtcGxhdGVWYWx1ZSl9cmV0dXJuIGtleWZyYW1lc30odmFsdWUsdmFsdWVOYW1lLHRhcmdldCx2YWx1ZVRyYW5zaXRpb24pLG9yaWdpbktleWZyYW1lPWtleWZyYW1lc1swXSx0YXJnZXRLZXlmcmFtZT1rZXlmcmFtZXNba2V5ZnJhbWVzLmxlbmd0aC0xXSxpc09yaWdpbkFuaW1hdGFibGU9aXNBbmltYXRhYmxlKHZhbHVlTmFtZSxvcmlnaW5LZXlmcmFtZSksaXNUYXJnZXRBbmltYXRhYmxlPWlzQW5pbWF0YWJsZSh2YWx1ZU5hbWUsdGFyZ2V0S2V5ZnJhbWUpOygwLGVycm9ycy5LKShpc09yaWdpbkFuaW1hdGFibGU9PT1pc1RhcmdldEFuaW1hdGFibGUsYFlvdSBhcmUgdHJ5aW5nIHRvIGFuaW1hdGUgJHt2YWx1ZU5hbWV9IGZyb20gIiR7b3JpZ2luS2V5ZnJhbWV9IiB0byAiJHt0YXJnZXRLZXlmcmFtZX0iLiAke29yaWdpbktleWZyYW1lfSBpcyBub3QgYW4gYW5pbWF0YWJsZSB2YWx1ZSAtIHRvIGVuYWJsZSB0aGlzIGFuaW1hdGlvbiBzZXQgJHtvcmlnaW5LZXlmcmFtZX0gdG8gYSB2YWx1ZSBhbmltYXRhYmxlIHRvICR7dGFyZ2V0S2V5ZnJhbWV9IHZpYSB0aGUgXGBzdHlsZVxgIHByb3BlcnR5LmApO2xldCBvcHRpb25zPXtrZXlmcmFtZXMsdmVsb2NpdHk6dmFsdWUuZ2V0VmVsb2NpdHkoKSxlYXNlOiJlYXNlT3V0IiwuLi52YWx1ZVRyYW5zaXRpb24sZGVsYXk6LWVsYXBzZWQsb25VcGRhdGUodil7dmFsdWUuc2V0KHYpLHZhbHVlVHJhbnNpdGlvbi5vblVwZGF0ZSYmdmFsdWVUcmFuc2l0aW9uLm9uVXBkYXRlKHYpfSxvbkNvbXBsZXRlKCl7b25Db21wbGV0ZSgpLHZhbHVlVHJhbnNpdGlvbi5vbkNvbXBsZXRlJiZ2YWx1ZVRyYW5zaXRpb24ub25Db21wbGV0ZSgpfX07aWYoKDAsdHJhbnNpdGlvbnMucikodmFsdWVUcmFuc2l0aW9uKXx8KG9wdGlvbnM9ey4uLm9wdGlvbnMsLi4uZ2V0RGVmYXVsdFRyYW5zaXRpb24odmFsdWVOYW1lLG9wdGlvbnMpfSksb3B0aW9ucy5kdXJhdGlvbiYmKG9wdGlvbnMuZHVyYXRpb249KDAsdGltZV9jb252ZXJzaW9uLncpKG9wdGlvbnMuZHVyYXRpb24pKSxvcHRpb25zLnJlcGVhdERlbGF5JiYob3B0aW9ucy5yZXBlYXREZWxheT0oMCx0aW1lX2NvbnZlcnNpb24udykob3B0aW9ucy5yZXBlYXREZWxheSkpLCFpc09yaWdpbkFuaW1hdGFibGV8fCFpc1RhcmdldEFuaW1hdGFibGV8fGluc3RhbnRBbmltYXRpb25TdGF0ZS5jdXJyZW50fHwhMT09PXZhbHVlVHJhbnNpdGlvbi50eXBlKXJldHVybiBmdW5jdGlvbih7a2V5ZnJhbWVzLGRlbGF5LG9uVXBkYXRlLG9uQ29tcGxldGV9KXtsZXQgc2V0VmFsdWU9KCk9PihvblVwZGF0ZSYmb25VcGRhdGUoa2V5ZnJhbWVzW2tleWZyYW1lcy5sZW5ndGgtMV0pLG9uQ29tcGxldGUmJm9uQ29tcGxldGUoKSx7dGltZTowLHNwZWVkOjEsZHVyYXRpb246MCxwbGF5Om5vb3AuWixwYXVzZTpub29wLlosc3RvcDpub29wLlosdGhlbjpyZXNvbHZlPT4ocmVzb2x2ZSgpLFByb21pc2UucmVzb2x2ZSgpKSxjYW5jZWw6bm9vcC5aLGNvbXBsZXRlOm5vb3AuWn0pO3JldHVybiBkZWxheT9hbmltYXRlVmFsdWUoe2tleWZyYW1lczpbMCwxXSxkdXJhdGlvbjowLGRlbGF5LG9uQ29tcGxldGU6c2V0VmFsdWV9KTpzZXRWYWx1ZSgpfShpbnN0YW50QW5pbWF0aW9uU3RhdGUuY3VycmVudD97Li4ub3B0aW9ucyxkZWxheTowfTpvcHRpb25zKTtpZih2YWx1ZS5vd25lciYmdmFsdWUub3duZXIuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiYhdmFsdWUub3duZXIuZ2V0UHJvcHMoKS5vblVwZGF0ZSl7bGV0IGFjY2VsZXJhdGVkQW5pbWF0aW9uPWZ1bmN0aW9uKHZhbHVlLHZhbHVlTmFtZSx7b25VcGRhdGUsb25Db21wbGV0ZSwuLi5vcHRpb25zfSl7bGV0IHJlc29sdmVGaW5pc2hlZFByb21pc2UsY3VycmVudEZpbmlzaGVkUHJvbWlzZTtsZXQgY2FuQWNjZWxlcmF0ZUFuaW1hdGlvbj1zdXBwb3J0c1dhYXBpKCkmJmFjY2VsZXJhdGVkVmFsdWVzLmhhcyh2YWx1ZU5hbWUpJiYhb3B0aW9ucy5yZXBlYXREZWxheSYmIm1pcnJvciIhPT1vcHRpb25zLnJlcGVhdFR5cGUmJjAhPT1vcHRpb25zLmRhbXBpbmcmJiJpbmVydGlhIiE9PW9wdGlvbnMudHlwZTtpZighY2FuQWNjZWxlcmF0ZUFuaW1hdGlvbilyZXR1cm4hMTtsZXQgaGFzU3RvcHBlZD0hMSx1cGRhdGVGaW5pc2hlZFByb21pc2U9KCk9PntjdXJyZW50RmluaXNoZWRQcm9taXNlPW5ldyBQcm9taXNlKHJlc29sdmU9PntyZXNvbHZlRmluaXNoZWRQcm9taXNlPXJlc29sdmV9KX07dXBkYXRlRmluaXNoZWRQcm9taXNlKCk7bGV0e2tleWZyYW1lcyxkdXJhdGlvbj0zMDAsZWFzZSx0aW1lc309b3B0aW9ucztpZihyZXF1aXJlc1ByZWdlbmVyYXRlZEtleWZyYW1lcyh2YWx1ZU5hbWUsb3B0aW9ucykpe2xldCBzYW1wbGVBbmltYXRpb249YW5pbWF0ZVZhbHVlKHsuLi5vcHRpb25zLHJlcGVhdDowLGRlbGF5OjB9KSxzdGF0ZT17ZG9uZTohMSx2YWx1ZTprZXlmcmFtZXNbMF19LHByZWdlbmVyYXRlZEtleWZyYW1lcz1bXSx0PTA7Zm9yKDshc3RhdGUuZG9uZSYmdDwyZTQ7KXByZWdlbmVyYXRlZEtleWZyYW1lcy5wdXNoKChzdGF0ZT1zYW1wbGVBbmltYXRpb24uc2FtcGxlKHQpKS52YWx1ZSksdCs9MTA7dGltZXM9dm9pZCAwLGtleWZyYW1lcz1wcmVnZW5lcmF0ZWRLZXlmcmFtZXMsZHVyYXRpb249dC0xMCxlYXNlPSJsaW5lYXIifWxldCBhbmltYXRpb249ZnVuY3Rpb24oZWxlbWVudCx2YWx1ZU5hbWUsa2V5ZnJhbWVzLHtkZWxheT0wLGR1cmF0aW9uLHJlcGVhdD0wLHJlcGVhdFR5cGU9Imxvb3AiLGVhc2UsdGltZXN9PXt9KXtsZXQga2V5ZnJhbWVPcHRpb25zPXtbdmFsdWVOYW1lXTprZXlmcmFtZXN9O3RpbWVzJiYoa2V5ZnJhbWVPcHRpb25zLm9mZnNldD10aW1lcyk7bGV0IGVhc2luZz1mdW5jdGlvbiBtYXBFYXNpbmdUb05hdGl2ZUVhc2luZyhlYXNpbmcpe2lmKGVhc2luZylyZXR1cm4gaXNCZXppZXJEZWZpbml0aW9uKGVhc2luZyk/Y3ViaWNCZXppZXJBc1N0cmluZyhlYXNpbmcpOkFycmF5LmlzQXJyYXkoZWFzaW5nKT9lYXNpbmcubWFwKG1hcEVhc2luZ1RvTmF0aXZlRWFzaW5nKTpzdXBwb3J0ZWRXYWFwaUVhc2luZ1tlYXNpbmddfShlYXNlKTtyZXR1cm4gQXJyYXkuaXNBcnJheShlYXNpbmcpJiYoa2V5ZnJhbWVPcHRpb25zLmVhc2luZz1lYXNpbmcpLGVsZW1lbnQuYW5pbWF0ZShrZXlmcmFtZU9wdGlvbnMse2RlbGF5LGR1cmF0aW9uLGVhc2luZzpBcnJheS5pc0FycmF5KGVhc2luZyk/ImxpbmVhciI6ZWFzaW5nLGZpbGw6ImJvdGgiLGl0ZXJhdGlvbnM6cmVwZWF0KzEsZGlyZWN0aW9uOiJyZXZlcnNlIj09PXJlcGVhdFR5cGU/ImFsdGVybmF0ZSI6Im5vcm1hbCJ9KX0odmFsdWUub3duZXIuY3VycmVudCx2YWx1ZU5hbWUsa2V5ZnJhbWVzLHsuLi5vcHRpb25zLGR1cmF0aW9uLGVhc2U6ZWFzZSx0aW1lc30pO29wdGlvbnMuc3luY1N0YXJ0JiYoYW5pbWF0aW9uLnN0YXJ0VGltZT1mcmFtZWxvb3BfZnJhbWUudzAuaXNQcm9jZXNzaW5nP2ZyYW1lbG9vcF9mcmFtZS53MC50aW1lc3RhbXA6ZG9jdW1lbnQudGltZWxpbmU/ZG9jdW1lbnQudGltZWxpbmUuY3VycmVudFRpbWU6cGVyZm9ybWFuY2Uubm93KCkpO2xldCBjYW5jZWxBbmltYXRpb249KCk9PmFuaW1hdGlvbi5jYW5jZWwoKSxzYWZlQ2FuY2VsPSgpPT57ZnJhbWVsb29wX2ZyYW1lLldpLnVwZGF0ZShjYW5jZWxBbmltYXRpb24pLHJlc29sdmVGaW5pc2hlZFByb21pc2UoKSx1cGRhdGVGaW5pc2hlZFByb21pc2UoKX07YW5pbWF0aW9uLm9uZmluaXNoPSgpPT57dmFsdWUuc2V0KGZ1bmN0aW9uKGtleWZyYW1lcyx7cmVwZWF0LHJlcGVhdFR5cGU9Imxvb3AifSl7bGV0IGluZGV4PXJlcGVhdCYmImxvb3AiIT09cmVwZWF0VHlwZSYmcmVwZWF0JTI9PTE/MDprZXlmcmFtZXMubGVuZ3RoLTE7cmV0dXJuIGtleWZyYW1lc1tpbmRleF19KGtleWZyYW1lcyxvcHRpb25zKSksb25Db21wbGV0ZSYmb25Db21wbGV0ZSgpLHNhZmVDYW5jZWwoKX07bGV0IGNvbnRyb2xzPXt0aGVuOihyZXNvbHZlLHJlamVjdCk9PmN1cnJlbnRGaW5pc2hlZFByb21pc2UudGhlbihyZXNvbHZlLHJlamVjdCksYXR0YWNoVGltZWxpbmU6dGltZWxpbmU9PihhbmltYXRpb24udGltZWxpbmU9dGltZWxpbmUsYW5pbWF0aW9uLm9uZmluaXNoPW51bGwsbm9vcC5aKSxnZXQgdGltZSgpe3JldHVybigwLHRpbWVfY29udmVyc2lvbi5YKShhbmltYXRpb24uY3VycmVudFRpbWV8fDApfSxzZXQgdGltZShuZXdUaW1lKXthbmltYXRpb24uY3VycmVudFRpbWU9KDAsdGltZV9jb252ZXJzaW9uLncpKG5ld1RpbWUpfSxnZXQgc3BlZWQoKXtyZXR1cm4gYW5pbWF0aW9uLnBsYXliYWNrUmF0ZX0sc2V0IHNwZWVkKG5ld1NwZWVkKXthbmltYXRpb24ucGxheWJhY2tSYXRlPW5ld1NwZWVkfSxnZXQgZHVyYXRpb24oKXtyZXR1cm4oMCx0aW1lX2NvbnZlcnNpb24uWCkoZHVyYXRpb24pfSxwbGF5KCl7aGFzU3RvcHBlZHx8KGFuaW1hdGlvbi5wbGF5KCksKDAsZnJhbWVsb29wX2ZyYW1lLlBuKShjYW5jZWxBbmltYXRpb24pKX0scGF1c2U6KCk9PmFuaW1hdGlvbi5wYXVzZSgpLHN0b3AoKXtpZihoYXNTdG9wcGVkPSEwLCJpZGxlIj09PWFuaW1hdGlvbi5wbGF5U3RhdGUpcmV0dXJuO2xldHtjdXJyZW50VGltZX09YW5pbWF0aW9uO2lmKGN1cnJlbnRUaW1lKXtsZXQgc2FtcGxlQW5pbWF0aW9uPWFuaW1hdGVWYWx1ZSh7Li4ub3B0aW9ucyxhdXRvcGxheTohMX0pO3ZhbHVlLnNldFdpdGhWZWxvY2l0eShzYW1wbGVBbmltYXRpb24uc2FtcGxlKGN1cnJlbnRUaW1lLTEwKS52YWx1ZSxzYW1wbGVBbmltYXRpb24uc2FtcGxlKGN1cnJlbnRUaW1lKS52YWx1ZSwxMCl9c2FmZUNhbmNlbCgpfSxjb21wbGV0ZTooKT0+YW5pbWF0aW9uLmZpbmlzaCgpLGNhbmNlbDpzYWZlQ2FuY2VsfTtyZXR1cm4gY29udHJvbHN9KHZhbHVlLHZhbHVlTmFtZSxvcHRpb25zKTtpZihhY2NlbGVyYXRlZEFuaW1hdGlvbilyZXR1cm4gYWNjZWxlcmF0ZWRBbmltYXRpb259cmV0dXJuIGFuaW1hdGVWYWx1ZShvcHRpb25zKX19LDYxMDU5OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtEOmZ1bmN0aW9uKCl7cmV0dXJuIGFuaW1hdGVTaW5nbGVWYWx1ZX19KTt2YXIgX21vdGlvbl92YWx1ZV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDYxMzEyKSxfdmFsdWVfaW5kZXhfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXygzMzIzNCksX3ZhbHVlX3V0aWxzX2lzX21vdGlvbl92YWx1ZV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQwNDA2KTtmdW5jdGlvbiBhbmltYXRlU2luZ2xlVmFsdWUodmFsdWUsa2V5ZnJhbWVzLG9wdGlvbnMpe2xldCBtb3Rpb25WYWx1ZSQxPSgwLF92YWx1ZV91dGlsc19pc19tb3Rpb25fdmFsdWVfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uaSkodmFsdWUpP3ZhbHVlOigwLF92YWx1ZV9pbmRleF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5CWCkodmFsdWUpO3JldHVybiBtb3Rpb25WYWx1ZSQxLnN0YXJ0KCgwLF9tb3Rpb25fdmFsdWVfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udikoIiIsbW90aW9uVmFsdWUkMSxrZXlmcmFtZXMsb3B0aW9ucykpLG1vdGlvblZhbHVlJDEuYW5pbWF0aW9ufX0sNDg0ODg6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se0M6ZnVuY3Rpb24oKXtyZXR1cm4gaXNLZXlmcmFtZXNUYXJnZXR9fSk7bGV0IGlzS2V5ZnJhbWVzVGFyZ2V0PXY9PkFycmF5LmlzQXJyYXkodil9LDMxMDU2OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGlzVHJhbnNpdGlvbkRlZmluZWQoe3doZW4sZGVsYXk6X2RlbGF5LGRlbGF5Q2hpbGRyZW4sc3RhZ2dlckNoaWxkcmVuLHN0YWdnZXJEaXJlY3Rpb24scmVwZWF0LHJlcGVhdFR5cGUscmVwZWF0RGVsYXksZnJvbSxlbGFwc2VkLC4uLnRyYW5zaXRpb259KXtyZXR1cm4hIU9iamVjdC5rZXlzKHRyYW5zaXRpb24pLmxlbmd0aH1mdW5jdGlvbiBnZXRWYWx1ZVRyYW5zaXRpb24odHJhbnNpdGlvbixrZXkpe3JldHVybiB0cmFuc2l0aW9uW2tleV18fHRyYW5zaXRpb24uZGVmYXVsdHx8dHJhbnNpdGlvbn1fX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7ZTpmdW5jdGlvbigpe3JldHVybiBnZXRWYWx1ZVRyYW5zaXRpb259LHI6ZnVuY3Rpb24oKXtyZXR1cm4gaXNUcmFuc2l0aW9uRGVmaW5lZH19KX0sMjUzNjQ6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se3A6ZnVuY3Rpb24oKXtyZXR1cm4gTGF5b3V0R3JvdXBDb250ZXh0fX0pO3ZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpO2xldCBMYXlvdXRHcm91cENvbnRleHQ9KDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jcmVhdGVDb250ZXh0KSh7fSl9LDE2MDE0OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtfOmZ1bmN0aW9uKCl7cmV0dXJuIE1vdGlvbkNvbmZpZ0NvbnRleHR9fSk7dmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCk7bGV0IE1vdGlvbkNvbmZpZ0NvbnRleHQ9KDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jcmVhdGVDb250ZXh0KSh7dHJhbnNmb3JtUGFnZVBvaW50OnA9PnAsaXNTdGF0aWM6ITEscmVkdWNlZE1vdGlvbjoibmV2ZXIifSl9LDI0MDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7TzpmdW5jdGlvbigpe3JldHVybiBQcmVzZW5jZUNvbnRleHR9fSk7dmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCk7bGV0IFByZXNlbmNlQ29udGV4dD0oMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmNyZWF0ZUNvbnRleHQpKG51bGwpfSw4OTkwODpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByZWNvcmQoZGF0YSl7d2luZG93Lk1vdGlvbkRlYnVnJiZ3aW5kb3cuTW90aW9uRGVidWcucmVjb3JkKGRhdGEpfV9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtJOmZ1bmN0aW9uKCl7cmV0dXJuIHJlY29yZH19KX0sMjcyNTU6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se0JuOmZ1bmN0aW9uKCl7cmV0dXJuIGNpcmNPdXR9LFg3OmZ1bmN0aW9uKCl7cmV0dXJuIGNpcmNJbk91dH0sWjc6ZnVuY3Rpb24oKXtyZXR1cm4gY2lyY0lufX0pO3ZhciBfbW9kaWZpZXJzX21pcnJvcl9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDkwNDE1KSxfbW9kaWZpZXJzX3JldmVyc2VfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg3NTEyOSk7bGV0IGNpcmNJbj1wPT4xLU1hdGguc2luKE1hdGguYWNvcyhwKSksY2lyY091dD0oMCxfbW9kaWZpZXJzX3JldmVyc2VfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uTSkoY2lyY0luKSxjaXJjSW5PdXQ9KDAsX21vZGlmaWVyc19taXJyb3JfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ubykoY2lyY091dCl9LDkwNDE1OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtvOmZ1bmN0aW9uKCl7cmV0dXJuIG1pcnJvckVhc2luZ319KTtsZXQgbWlycm9yRWFzaW5nPWVhc2luZz0+cD0+cDw9LjU/ZWFzaW5nKDIqcCkvMjooMi1lYXNpbmcoMiooMS1wKSkpLzJ9LDc1MTI5OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtNOmZ1bmN0aW9uKCl7cmV0dXJuIHJldmVyc2VFYXNpbmd9fSk7bGV0IHJldmVyc2VFYXNpbmc9ZWFzaW5nPT5wPT4xLWVhc2luZygxLXApfSwyMDc0OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtQbjpmdW5jdGlvbigpe3JldHVybiBjYW5jZWxGcmFtZX0sV2k6ZnVuY3Rpb24oKXtyZXR1cm4gZnJhbWVfZnJhbWV9LHcwOmZ1bmN0aW9uKCl7cmV0dXJuIGZyYW1lRGF0YX0sUzY6ZnVuY3Rpb24oKXtyZXR1cm4gc3RlcHN9fSk7dmFyIG5vb3A9X193ZWJwYWNrX3JlcXVpcmVfXyg4MTY2Mik7Y2xhc3MgUXVldWV7Y29uc3RydWN0b3IoKXt0aGlzLm9yZGVyPVtdLHRoaXMuc2NoZWR1bGVkPW5ldyBTZXR9YWRkKHByb2Nlc3Mpe2lmKCF0aGlzLnNjaGVkdWxlZC5oYXMocHJvY2VzcykpcmV0dXJuIHRoaXMuc2NoZWR1bGVkLmFkZChwcm9jZXNzKSx0aGlzLm9yZGVyLnB1c2gocHJvY2VzcyksITB9cmVtb3ZlKHByb2Nlc3Mpe2xldCBpbmRleD10aGlzLm9yZGVyLmluZGV4T2YocHJvY2Vzcyk7LTEhPT1pbmRleCYmKHRoaXMub3JkZXIuc3BsaWNlKGluZGV4LDEpLHRoaXMuc2NoZWR1bGVkLmRlbGV0ZShwcm9jZXNzKSl9Y2xlYXIoKXt0aGlzLm9yZGVyLmxlbmd0aD0wLHRoaXMuc2NoZWR1bGVkLmNsZWFyKCl9fWxldCBzdGVwc09yZGVyPVsicHJlcGFyZSIsInJlYWQiLCJ1cGRhdGUiLCJwcmVSZW5kZXIiLCJyZW5kZXIiLCJwb3N0UmVuZGVyIl0se3NjaGVkdWxlOmZyYW1lX2ZyYW1lLGNhbmNlbDpjYW5jZWxGcmFtZSxzdGF0ZTpmcmFtZURhdGEsc3RlcHN9PWZ1bmN0aW9uKHNjaGVkdWxlTmV4dEJhdGNoLGFsbG93S2VlcEFsaXZlKXtsZXQgcnVuTmV4dEZyYW1lPSExLHVzZURlZmF1bHRFbGFwc2VkPSEwLHN0YXRlPXtkZWx0YTowLHRpbWVzdGFtcDowLGlzUHJvY2Vzc2luZzohMX0sc3RlcHM9c3RlcHNPcmRlci5yZWR1Y2UoKGFjYyxrZXkpPT4oYWNjW2tleV09ZnVuY3Rpb24ocnVuTmV4dEZyYW1lKXtsZXQgdGhpc0ZyYW1lPW5ldyBRdWV1ZSxuZXh0RnJhbWU9bmV3IFF1ZXVlLG51bVRvUnVuPTAsaXNQcm9jZXNzaW5nPSExLGZsdXNoTmV4dEZyYW1lPSExLHRvS2VlcEFsaXZlPW5ldyBXZWFrU2V0LHN0ZXA9e3NjaGVkdWxlKGNhbGxiYWNrLGtlZXBBbGl2ZT0hMSxpbW1lZGlhdGU9ITEpe2xldCBhZGRUb0N1cnJlbnRGcmFtZT1pbW1lZGlhdGUmJmlzUHJvY2Vzc2luZyxxdWV1ZT1hZGRUb0N1cnJlbnRGcmFtZT90aGlzRnJhbWU6bmV4dEZyYW1lO3JldHVybiBrZWVwQWxpdmUmJnRvS2VlcEFsaXZlLmFkZChjYWxsYmFjaykscXVldWUuYWRkKGNhbGxiYWNrKSYmYWRkVG9DdXJyZW50RnJhbWUmJmlzUHJvY2Vzc2luZyYmKG51bVRvUnVuPXRoaXNGcmFtZS5vcmRlci5sZW5ndGgpLGNhbGxiYWNrfSxjYW5jZWwoY2FsbGJhY2spe25leHRGcmFtZS5yZW1vdmUoY2FsbGJhY2spLHRvS2VlcEFsaXZlLmRlbGV0ZShjYWxsYmFjayl9LHByb2Nlc3MoZnJhbWVEYXRhKXtpZihpc1Byb2Nlc3Npbmcpe2ZsdXNoTmV4dEZyYW1lPSEwO3JldHVybn1pZihpc1Byb2Nlc3Npbmc9ITAsW3RoaXNGcmFtZSxuZXh0RnJhbWVdPVtuZXh0RnJhbWUsdGhpc0ZyYW1lXSxuZXh0RnJhbWUuY2xlYXIoKSxudW1Ub1J1bj10aGlzRnJhbWUub3JkZXIubGVuZ3RoKWZvcihsZXQgaT0wO2k8bnVtVG9SdW47aSsrKXtsZXQgY2FsbGJhY2s9dGhpc0ZyYW1lLm9yZGVyW2ldO2NhbGxiYWNrKGZyYW1lRGF0YSksdG9LZWVwQWxpdmUuaGFzKGNhbGxiYWNrKSYmKHN0ZXAuc2NoZWR1bGUoY2FsbGJhY2spLHJ1bk5leHRGcmFtZSgpKX1pc1Byb2Nlc3Npbmc9ITEsZmx1c2hOZXh0RnJhbWUmJihmbHVzaE5leHRGcmFtZT0hMSxzdGVwLnByb2Nlc3MoZnJhbWVEYXRhKSl9fTtyZXR1cm4gc3RlcH0oKCk9PnJ1bk5leHRGcmFtZT0hMCksYWNjKSx7fSkscHJvY2Vzc1N0ZXA9c3RlcElkPT5zdGVwc1tzdGVwSWRdLnByb2Nlc3Moc3RhdGUpLHByb2Nlc3NCYXRjaD0oKT0+e2xldCB0aW1lc3RhbXA9cGVyZm9ybWFuY2Uubm93KCk7cnVuTmV4dEZyYW1lPSExLHN0YXRlLmRlbHRhPXVzZURlZmF1bHRFbGFwc2VkPzFlMy82MDpNYXRoLm1heChNYXRoLm1pbih0aW1lc3RhbXAtc3RhdGUudGltZXN0YW1wLDQwKSwxKSxzdGF0ZS50aW1lc3RhbXA9dGltZXN0YW1wLHN0YXRlLmlzUHJvY2Vzc2luZz0hMCxzdGVwc09yZGVyLmZvckVhY2gocHJvY2Vzc1N0ZXApLHN0YXRlLmlzUHJvY2Vzc2luZz0hMSxydW5OZXh0RnJhbWUmJmFsbG93S2VlcEFsaXZlJiYodXNlRGVmYXVsdEVsYXBzZWQ9ITEsc2NoZWR1bGVOZXh0QmF0Y2gocHJvY2Vzc0JhdGNoKSl9LHdha2U9KCk9PntydW5OZXh0RnJhbWU9ITAsdXNlRGVmYXVsdEVsYXBzZWQ9ITAsc3RhdGUuaXNQcm9jZXNzaW5nfHxzY2hlZHVsZU5leHRCYXRjaChwcm9jZXNzQmF0Y2gpfSxzY2hlZHVsZT1zdGVwc09yZGVyLnJlZHVjZSgoYWNjLGtleSk9PntsZXQgc3RlcD1zdGVwc1trZXldO3JldHVybiBhY2Nba2V5XT0ocHJvY2VzcyxrZWVwQWxpdmU9ITEsaW1tZWRpYXRlPSExKT0+KHJ1bk5leHRGcmFtZXx8d2FrZSgpLHN0ZXAuc2NoZWR1bGUocHJvY2VzcyxrZWVwQWxpdmUsaW1tZWRpYXRlKSksYWNjfSx7fSksY2FuY2VsPXByb2Nlc3M9PnN0ZXBzT3JkZXIuZm9yRWFjaChrZXk9PnN0ZXBzW2tleV0uY2FuY2VsKHByb2Nlc3MpKTtyZXR1cm57c2NoZWR1bGUsY2FuY2VsLHN0YXRlLHN0ZXBzfX0oInVuZGVmaW5lZCIhPXR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU/cmVxdWVzdEFuaW1hdGlvbkZyYW1lOm5vb3AuWiwhMCl9LDczMDQ5OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtWOmZ1bmN0aW9uKCl7cmV0dXJuIG1peFZhbHVlc319KTt2YXIgX2Vhc2luZ19jaXJjX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fPV9fd2VicGFja19yZXF1aXJlX18oMjcyNTUpLF91dGlsc19wcm9ncmVzc19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDIzOTY3KSxfdXRpbHNfbWl4X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oODAwMjIpLF91dGlsc19ub29wX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fPV9fd2VicGFja19yZXF1aXJlX18oODE2NjIpLF92YWx1ZV90eXBlc19udW1iZXJzX3VuaXRzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oOTYxOTApO2xldCBib3JkZXJzPVsiVG9wTGVmdCIsIlRvcFJpZ2h0IiwiQm90dG9tTGVmdCIsIkJvdHRvbVJpZ2h0Il0sbnVtQm9yZGVycz1ib3JkZXJzLmxlbmd0aCxhc051bWJlcj12YWx1ZT0+InN0cmluZyI9PXR5cGVvZiB2YWx1ZT9wYXJzZUZsb2F0KHZhbHVlKTp2YWx1ZSxpc1B4PXZhbHVlPT4ibnVtYmVyIj09dHlwZW9mIHZhbHVlfHxfdmFsdWVfdHlwZXNfbnVtYmVyc191bml0c19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5weC50ZXN0KHZhbHVlKTtmdW5jdGlvbiBtaXhWYWx1ZXModGFyZ2V0LGZvbGxvdyxsZWFkLHByb2dyZXNzLHNob3VsZENyb3NzZmFkZU9wYWNpdHksaXNPbmx5TWVtYmVyKXtzaG91bGRDcm9zc2ZhZGVPcGFjaXR5Pyh0YXJnZXQub3BhY2l0eT0oMCxfdXRpbHNfbWl4X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkMpKDAsdm9pZCAwIT09bGVhZC5vcGFjaXR5P2xlYWQub3BhY2l0eToxLGVhc2VDcm9zc2ZhZGVJbihwcm9ncmVzcykpLHRhcmdldC5vcGFjaXR5RXhpdD0oMCxfdXRpbHNfbWl4X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkMpKHZvaWQgMCE9PWZvbGxvdy5vcGFjaXR5P2ZvbGxvdy5vcGFjaXR5OjEsMCxlYXNlQ3Jvc3NmYWRlT3V0KHByb2dyZXNzKSkpOmlzT25seU1lbWJlciYmKHRhcmdldC5vcGFjaXR5PSgwLF91dGlsc19taXhfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uQykodm9pZCAwIT09Zm9sbG93Lm9wYWNpdHk/Zm9sbG93Lm9wYWNpdHk6MSx2b2lkIDAhPT1sZWFkLm9wYWNpdHk/bGVhZC5vcGFjaXR5OjEscHJvZ3Jlc3MpKTtmb3IobGV0IGk9MDtpPG51bUJvcmRlcnM7aSsrKXtsZXQgYm9yZGVyTGFiZWw9YGJvcmRlciR7Ym9yZGVyc1tpXX1SYWRpdXNgLGZvbGxvd1JhZGl1cz1nZXRSYWRpdXMoZm9sbG93LGJvcmRlckxhYmVsKSxsZWFkUmFkaXVzPWdldFJhZGl1cyhsZWFkLGJvcmRlckxhYmVsKTtpZih2b2lkIDA9PT1mb2xsb3dSYWRpdXMmJnZvaWQgMD09PWxlYWRSYWRpdXMpY29udGludWU7Zm9sbG93UmFkaXVzfHwoZm9sbG93UmFkaXVzPTApLGxlYWRSYWRpdXN8fChsZWFkUmFkaXVzPTApO2xldCBjYW5NaXg9MD09PWZvbGxvd1JhZGl1c3x8MD09PWxlYWRSYWRpdXN8fGlzUHgoZm9sbG93UmFkaXVzKT09PWlzUHgobGVhZFJhZGl1cyk7Y2FuTWl4Pyh0YXJnZXRbYm9yZGVyTGFiZWxdPU1hdGgubWF4KCgwLF91dGlsc19taXhfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uQykoYXNOdW1iZXIoZm9sbG93UmFkaXVzKSxhc051bWJlcihsZWFkUmFkaXVzKSxwcm9ncmVzcyksMCksKF92YWx1ZV90eXBlc19udW1iZXJzX3VuaXRzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmFRLnRlc3QobGVhZFJhZGl1cyl8fF92YWx1ZV90eXBlc19udW1iZXJzX3VuaXRzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmFRLnRlc3QoZm9sbG93UmFkaXVzKSkmJih0YXJnZXRbYm9yZGVyTGFiZWxdKz0iJSIpKTp0YXJnZXRbYm9yZGVyTGFiZWxdPWxlYWRSYWRpdXN9KGZvbGxvdy5yb3RhdGV8fGxlYWQucm90YXRlKSYmKHRhcmdldC5yb3RhdGU9KDAsX3V0aWxzX21peF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5DKShmb2xsb3cucm90YXRlfHwwLGxlYWQucm90YXRlfHwwLHByb2dyZXNzKSl9ZnVuY3Rpb24gZ2V0UmFkaXVzKHZhbHVlcyxyYWRpdXNOYW1lKXtyZXR1cm4gdm9pZCAwIT09dmFsdWVzW3JhZGl1c05hbWVdP3ZhbHVlc1tyYWRpdXNOYW1lXTp2YWx1ZXMuYm9yZGVyUmFkaXVzfWxldCBlYXNlQ3Jvc3NmYWRlSW49Y29tcHJlc3MoMCwuNSxfZWFzaW5nX2NpcmNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQm4pLGVhc2VDcm9zc2ZhZGVPdXQ9Y29tcHJlc3MoLjUsLjk1LF91dGlsc19ub29wX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLlopO2Z1bmN0aW9uIGNvbXByZXNzKG1pbixtYXgsZWFzaW5nKXtyZXR1cm4gcD0+cDxtaW4/MDpwPm1heD8xOmVhc2luZygoMCxfdXRpbHNfcHJvZ3Jlc3NfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uWSkobWluLG1heCxwKSl9fSwxMTgyMzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjb3B5QXhpc0ludG8oYXhpcyxvcmlnaW5BeGlzKXtheGlzLm1pbj1vcmlnaW5BeGlzLm1pbixheGlzLm1heD1vcmlnaW5BeGlzLm1heH1mdW5jdGlvbiBjb3B5Qm94SW50byhib3gsb3JpZ2luQm94KXtjb3B5QXhpc0ludG8oYm94Lngsb3JpZ2luQm94LngpLGNvcHlBeGlzSW50byhib3gueSxvcmlnaW5Cb3gueSl9X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se2o6ZnVuY3Rpb24oKXtyZXR1cm4gY29weUJveEludG99fSl9LDE2ZTM6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se0QyOmZ1bmN0aW9uKCl7cmV0dXJuIHRyYW5zZm9ybUJveH0sWVk6ZnVuY3Rpb24oKXtyZXR1cm4gYXBwbHlUcmVlRGVsdGFzfSxhbTpmdW5jdGlvbigpe3JldHVybiB0cmFuc2xhdGVBeGlzfSxvMjpmdW5jdGlvbigpe3JldHVybiBhcHBseUJveERlbHRhfSxxMjpmdW5jdGlvbigpe3JldHVybiBzY2FsZVBvaW50fX0pO3ZhciBfdXRpbHNfbWl4X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oODAwMjIpLF91dGlsc19oYXNfdHJhbnNmb3JtX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oOTk1MjcpO2Z1bmN0aW9uIHNjYWxlUG9pbnQocG9pbnQsc2NhbGUsb3JpZ2luUG9pbnQpe3JldHVybiBvcmlnaW5Qb2ludCtzY2FsZSoocG9pbnQtb3JpZ2luUG9pbnQpfWZ1bmN0aW9uIGFwcGx5UG9pbnREZWx0YShwb2ludCx0cmFuc2xhdGUsc2NhbGUsb3JpZ2luUG9pbnQsYm94U2NhbGUpe3JldHVybiB2b2lkIDAhPT1ib3hTY2FsZSYmKHBvaW50PW9yaWdpblBvaW50K2JveFNjYWxlKihwb2ludC1vcmlnaW5Qb2ludCkpLG9yaWdpblBvaW50K3NjYWxlKihwb2ludC1vcmlnaW5Qb2ludCkrdHJhbnNsYXRlfWZ1bmN0aW9uIGFwcGx5QXhpc0RlbHRhKGF4aXMsdHJhbnNsYXRlPTAsc2NhbGU9MSxvcmlnaW5Qb2ludCxib3hTY2FsZSl7YXhpcy5taW49YXBwbHlQb2ludERlbHRhKGF4aXMubWluLHRyYW5zbGF0ZSxzY2FsZSxvcmlnaW5Qb2ludCxib3hTY2FsZSksYXhpcy5tYXg9YXBwbHlQb2ludERlbHRhKGF4aXMubWF4LHRyYW5zbGF0ZSxzY2FsZSxvcmlnaW5Qb2ludCxib3hTY2FsZSl9ZnVuY3Rpb24gYXBwbHlCb3hEZWx0YShib3gse3gseX0pe2FwcGx5QXhpc0RlbHRhKGJveC54LHgudHJhbnNsYXRlLHguc2NhbGUseC5vcmlnaW5Qb2ludCksYXBwbHlBeGlzRGVsdGEoYm94LnkseS50cmFuc2xhdGUseS5zY2FsZSx5Lm9yaWdpblBvaW50KX1mdW5jdGlvbiBhcHBseVRyZWVEZWx0YXMoYm94LHRyZWVTY2FsZSx0cmVlUGF0aCxpc1NoYXJlZFRyYW5zaXRpb249ITEpe2xldCBub2RlLGRlbHRhO2xldCB0cmVlTGVuZ3RoPXRyZWVQYXRoLmxlbmd0aDtpZih0cmVlTGVuZ3RoKXt0cmVlU2NhbGUueD10cmVlU2NhbGUueT0xO2ZvcihsZXQgaT0wO2k8dHJlZUxlbmd0aDtpKyspe2RlbHRhPShub2RlPXRyZWVQYXRoW2ldKS5wcm9qZWN0aW9uRGVsdGE7bGV0IGluc3RhbmNlPW5vZGUuaW5zdGFuY2U7KCFpbnN0YW5jZXx8IWluc3RhbmNlLnN0eWxlfHwiY29udGVudHMiIT09aW5zdGFuY2Uuc3R5bGUuZGlzcGxheSkmJihpc1NoYXJlZFRyYW5zaXRpb24mJm5vZGUub3B0aW9ucy5sYXlvdXRTY3JvbGwmJm5vZGUuc2Nyb2xsJiZub2RlIT09bm9kZS5yb290JiZ0cmFuc2Zvcm1Cb3goYm94LHt4Oi1ub2RlLnNjcm9sbC5vZmZzZXQueCx5Oi1ub2RlLnNjcm9sbC5vZmZzZXQueX0pLGRlbHRhJiYodHJlZVNjYWxlLngqPWRlbHRhLnguc2NhbGUsdHJlZVNjYWxlLnkqPWRlbHRhLnkuc2NhbGUsYXBwbHlCb3hEZWx0YShib3gsZGVsdGEpKSxpc1NoYXJlZFRyYW5zaXRpb24mJigwLF91dGlsc19oYXNfdHJhbnNmb3JtX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnVkKShub2RlLmxhdGVzdFZhbHVlcykmJnRyYW5zZm9ybUJveChib3gsbm9kZS5sYXRlc3RWYWx1ZXMpKX10cmVlU2NhbGUueD1zbmFwVG9EZWZhdWx0KHRyZWVTY2FsZS54KSx0cmVlU2NhbGUueT1zbmFwVG9EZWZhdWx0KHRyZWVTY2FsZS55KX19ZnVuY3Rpb24gc25hcFRvRGVmYXVsdChzY2FsZSl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoc2NhbGUpP3NjYWxlOnNjYWxlPjEuMDAwMDAwMDAwMDAwMXx8c2NhbGU8Ljk5OTk5OTk5OTk5OT9zY2FsZToxfWZ1bmN0aW9uIHRyYW5zbGF0ZUF4aXMoYXhpcyxkaXN0YW5jZSl7YXhpcy5taW49YXhpcy5taW4rZGlzdGFuY2UsYXhpcy5tYXg9YXhpcy5tYXgrZGlzdGFuY2V9ZnVuY3Rpb24gdHJhbnNmb3JtQXhpcyhheGlzLHRyYW5zZm9ybXMsW2tleSxzY2FsZUtleSxvcmlnaW5LZXldKXtsZXQgYXhpc09yaWdpbj12b2lkIDAhPT10cmFuc2Zvcm1zW29yaWdpbktleV0/dHJhbnNmb3Jtc1tvcmlnaW5LZXldOi41LG9yaWdpblBvaW50PSgwLF91dGlsc19taXhfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uQykoYXhpcy5taW4sYXhpcy5tYXgsYXhpc09yaWdpbik7YXBwbHlBeGlzRGVsdGEoYXhpcyx0cmFuc2Zvcm1zW2tleV0sdHJhbnNmb3Jtc1tzY2FsZUtleV0sb3JpZ2luUG9pbnQsdHJhbnNmb3Jtcy5zY2FsZSl9bGV0IHhLZXlzPVsieCIsInNjYWxlWCIsIm9yaWdpblgiXSx5S2V5cz1bInkiLCJzY2FsZVkiLCJvcmlnaW5ZIl07ZnVuY3Rpb24gdHJhbnNmb3JtQm94KGJveCx0cmFuc2Zvcm0pe3RyYW5zZm9ybUF4aXMoYm94LngsdHJhbnNmb3JtLHhLZXlzKSx0cmFuc2Zvcm1BeGlzKGJveC55LHRyYW5zZm9ybSx5S2V5cyl9fSwxNjY0NTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7Sk86ZnVuY3Rpb24oKXtyZXR1cm4gY2FsY0xlbmd0aH0sYjM6ZnVuY3Rpb24oKXtyZXR1cm4gY2FsY1JlbGF0aXZlUG9zaXRpb259LHRmOmZ1bmN0aW9uKCl7cmV0dXJuIGNhbGNSZWxhdGl2ZUJveH0sd1M6ZnVuY3Rpb24oKXtyZXR1cm4gaXNOZWFyfSx5JDpmdW5jdGlvbigpe3JldHVybiBjYWxjQm94RGVsdGF9fSk7dmFyIF91dGlsc19taXhfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg4MDAyMik7ZnVuY3Rpb24gY2FsY0xlbmd0aChheGlzKXtyZXR1cm4gYXhpcy5tYXgtYXhpcy5taW59ZnVuY3Rpb24gaXNOZWFyKHZhbHVlLHRhcmdldD0wLG1heERpc3RhbmNlPS4wMSl7cmV0dXJuIE1hdGguYWJzKHZhbHVlLXRhcmdldCk8PW1heERpc3RhbmNlfWZ1bmN0aW9uIGNhbGNBeGlzRGVsdGEoZGVsdGEsc291cmNlLHRhcmdldCxvcmlnaW49LjUpe2RlbHRhLm9yaWdpbj1vcmlnaW4sZGVsdGEub3JpZ2luUG9pbnQ9KDAsX3V0aWxzX21peF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5DKShzb3VyY2UubWluLHNvdXJjZS5tYXgsZGVsdGEub3JpZ2luKSxkZWx0YS5zY2FsZT1jYWxjTGVuZ3RoKHRhcmdldCkvY2FsY0xlbmd0aChzb3VyY2UpLChpc05lYXIoZGVsdGEuc2NhbGUsMSwxZS00KXx8aXNOYU4oZGVsdGEuc2NhbGUpKSYmKGRlbHRhLnNjYWxlPTEpLGRlbHRhLnRyYW5zbGF0ZT0oMCxfdXRpbHNfbWl4X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkMpKHRhcmdldC5taW4sdGFyZ2V0Lm1heCxkZWx0YS5vcmlnaW4pLWRlbHRhLm9yaWdpblBvaW50LChpc05lYXIoZGVsdGEudHJhbnNsYXRlKXx8aXNOYU4oZGVsdGEudHJhbnNsYXRlKSkmJihkZWx0YS50cmFuc2xhdGU9MCl9ZnVuY3Rpb24gY2FsY0JveERlbHRhKGRlbHRhLHNvdXJjZSx0YXJnZXQsb3JpZ2luKXtjYWxjQXhpc0RlbHRhKGRlbHRhLngsc291cmNlLngsdGFyZ2V0Lngsb3JpZ2luP29yaWdpbi5vcmlnaW5YOnZvaWQgMCksY2FsY0F4aXNEZWx0YShkZWx0YS55LHNvdXJjZS55LHRhcmdldC55LG9yaWdpbj9vcmlnaW4ub3JpZ2luWTp2b2lkIDApfWZ1bmN0aW9uIGNhbGNSZWxhdGl2ZUF4aXModGFyZ2V0LHJlbGF0aXZlLHBhcmVudCl7dGFyZ2V0Lm1pbj1wYXJlbnQubWluK3JlbGF0aXZlLm1pbix0YXJnZXQubWF4PXRhcmdldC5taW4rY2FsY0xlbmd0aChyZWxhdGl2ZSl9ZnVuY3Rpb24gY2FsY1JlbGF0aXZlQm94KHRhcmdldCxyZWxhdGl2ZSxwYXJlbnQpe2NhbGNSZWxhdGl2ZUF4aXModGFyZ2V0LngscmVsYXRpdmUueCxwYXJlbnQueCksY2FsY1JlbGF0aXZlQXhpcyh0YXJnZXQueSxyZWxhdGl2ZS55LHBhcmVudC55KX1mdW5jdGlvbiBjYWxjUmVsYXRpdmVBeGlzUG9zaXRpb24odGFyZ2V0LGxheW91dCxwYXJlbnQpe3RhcmdldC5taW49bGF5b3V0Lm1pbi1wYXJlbnQubWluLHRhcmdldC5tYXg9dGFyZ2V0Lm1pbitjYWxjTGVuZ3RoKGxheW91dCl9ZnVuY3Rpb24gY2FsY1JlbGF0aXZlUG9zaXRpb24odGFyZ2V0LGxheW91dCxwYXJlbnQpe2NhbGNSZWxhdGl2ZUF4aXNQb3NpdGlvbih0YXJnZXQueCxsYXlvdXQueCxwYXJlbnQueCksY2FsY1JlbGF0aXZlQXhpc1Bvc2l0aW9uKHRhcmdldC55LGxheW91dC55LHBhcmVudC55KX19LDY0MDM6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se21nOmZ1bmN0aW9uKCl7cmV0dXJuIHJlbW92ZUJveFRyYW5zZm9ybXN9fSk7dmFyIF91dGlsc19taXhfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXyg4MDAyMiksX3ZhbHVlX3R5cGVzX251bWJlcnNfdW5pdHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg5NjE5MCksX2RlbHRhX2FwcGx5X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oMTZlMyk7ZnVuY3Rpb24gcmVtb3ZlUG9pbnREZWx0YShwb2ludCx0cmFuc2xhdGUsc2NhbGUsb3JpZ2luUG9pbnQsYm94U2NhbGUpe3JldHVybiBwb2ludC09dHJhbnNsYXRlLHBvaW50PSgwLF9kZWx0YV9hcHBseV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5xMikocG9pbnQsMS9zY2FsZSxvcmlnaW5Qb2ludCksdm9pZCAwIT09Ym94U2NhbGUmJihwb2ludD0oMCxfZGVsdGFfYXBwbHlfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucTIpKHBvaW50LDEvYm94U2NhbGUsb3JpZ2luUG9pbnQpKSxwb2ludH1mdW5jdGlvbiByZW1vdmVBeGlzVHJhbnNmb3JtcyhheGlzLHRyYW5zZm9ybXMsW2tleSxzY2FsZUtleSxvcmlnaW5LZXldLG9yaWdpbixzb3VyY2VBeGlzKXshZnVuY3Rpb24oYXhpcyx0cmFuc2xhdGU9MCxzY2FsZT0xLG9yaWdpbj0uNSxib3hTY2FsZSxvcmlnaW5BeGlzPWF4aXMsc291cmNlQXhpcz1heGlzKXtpZihfdmFsdWVfdHlwZXNfbnVtYmVyc191bml0c19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5hUS50ZXN0KHRyYW5zbGF0ZSkpe3RyYW5zbGF0ZT1wYXJzZUZsb2F0KHRyYW5zbGF0ZSk7bGV0IHJlbGF0aXZlUHJvZ3Jlc3M9KDAsX3V0aWxzX21peF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5DKShzb3VyY2VBeGlzLm1pbixzb3VyY2VBeGlzLm1heCx0cmFuc2xhdGUvMTAwKTt0cmFuc2xhdGU9cmVsYXRpdmVQcm9ncmVzcy1zb3VyY2VBeGlzLm1pbn1pZigibnVtYmVyIiE9dHlwZW9mIHRyYW5zbGF0ZSlyZXR1cm47bGV0IG9yaWdpblBvaW50PSgwLF91dGlsc19taXhfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQykob3JpZ2luQXhpcy5taW4sb3JpZ2luQXhpcy5tYXgsb3JpZ2luKTtheGlzPT09b3JpZ2luQXhpcyYmKG9yaWdpblBvaW50LT10cmFuc2xhdGUpLGF4aXMubWluPXJlbW92ZVBvaW50RGVsdGEoYXhpcy5taW4sdHJhbnNsYXRlLHNjYWxlLG9yaWdpblBvaW50LGJveFNjYWxlKSxheGlzLm1heD1yZW1vdmVQb2ludERlbHRhKGF4aXMubWF4LHRyYW5zbGF0ZSxzY2FsZSxvcmlnaW5Qb2ludCxib3hTY2FsZSl9KGF4aXMsdHJhbnNmb3Jtc1trZXldLHRyYW5zZm9ybXNbc2NhbGVLZXldLHRyYW5zZm9ybXNbb3JpZ2luS2V5XSx0cmFuc2Zvcm1zLnNjYWxlLG9yaWdpbixzb3VyY2VBeGlzKX1sZXQgeEtleXM9WyJ4Iiwic2NhbGVYIiwib3JpZ2luWCJdLHlLZXlzPVsieSIsInNjYWxlWSIsIm9yaWdpblkiXTtmdW5jdGlvbiByZW1vdmVCb3hUcmFuc2Zvcm1zKGJveCx0cmFuc2Zvcm1zLG9yaWdpbkJveCxzb3VyY2VCb3gpe3JlbW92ZUF4aXNUcmFuc2Zvcm1zKGJveC54LHRyYW5zZm9ybXMseEtleXMsb3JpZ2luQm94P29yaWdpbkJveC54OnZvaWQgMCxzb3VyY2VCb3g/c291cmNlQm94Lng6dm9pZCAwKSxyZW1vdmVBeGlzVHJhbnNmb3Jtcyhib3gueSx0cmFuc2Zvcm1zLHlLZXlzLG9yaWdpbkJveD9vcmlnaW5Cb3gueTp2b2lkIDAsc291cmNlQm94P3NvdXJjZUJveC55OnZvaWQgMCl9fSw2MTUxMjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7ZE86ZnVuY3Rpb24oKXtyZXR1cm4gY3JlYXRlQm94fSx3YzpmdW5jdGlvbigpe3JldHVybiBjcmVhdGVEZWx0YX19KTtsZXQgY3JlYXRlQXhpc0RlbHRhPSgpPT4oe3RyYW5zbGF0ZTowLHNjYWxlOjEsb3JpZ2luOjAsb3JpZ2luUG9pbnQ6MH0pLGNyZWF0ZURlbHRhPSgpPT4oe3g6Y3JlYXRlQXhpc0RlbHRhKCkseTpjcmVhdGVBeGlzRGVsdGEoKX0pLGNyZWF0ZUF4aXM9KCk9Pih7bWluOjAsbWF4OjB9KSxjcmVhdGVCb3g9KCk9Pih7eDpjcmVhdGVBeGlzKCkseTpjcmVhdGVBeGlzKCl9KX0sODg4MzM6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se0JTOmZ1bmN0aW9uKCl7cmV0dXJuIGlzRGVsdGFaZXJvfSxEbTpmdW5jdGlvbigpe3JldHVybiBhc3BlY3RSYXRpb30sUkQ6ZnVuY3Rpb24oKXtyZXR1cm4gYm94RXF1YWxzfSxSbTpmdW5jdGlvbigpe3JldHVybiBib3hFcXVhbHNSb3VuZGVkfX0pO3ZhciBfZGVsdGFfY2FsY19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDE2NjQ1KTtmdW5jdGlvbiBpc0F4aXNEZWx0YVplcm8oZGVsdGEpe3JldHVybiAwPT09ZGVsdGEudHJhbnNsYXRlJiYxPT09ZGVsdGEuc2NhbGV9ZnVuY3Rpb24gaXNEZWx0YVplcm8oZGVsdGEpe3JldHVybiBpc0F4aXNEZWx0YVplcm8oZGVsdGEueCkmJmlzQXhpc0RlbHRhWmVybyhkZWx0YS55KX1mdW5jdGlvbiBib3hFcXVhbHMoYSxiKXtyZXR1cm4gYS54Lm1pbj09PWIueC5taW4mJmEueC5tYXg9PT1iLngubWF4JiZhLnkubWluPT09Yi55Lm1pbiYmYS55Lm1heD09PWIueS5tYXh9ZnVuY3Rpb24gYm94RXF1YWxzUm91bmRlZChhLGIpe3JldHVybiBNYXRoLnJvdW5kKGEueC5taW4pPT09TWF0aC5yb3VuZChiLngubWluKSYmTWF0aC5yb3VuZChhLngubWF4KT09PU1hdGgucm91bmQoYi54Lm1heCkmJk1hdGgucm91bmQoYS55Lm1pbik9PT1NYXRoLnJvdW5kKGIueS5taW4pJiZNYXRoLnJvdW5kKGEueS5tYXgpPT09TWF0aC5yb3VuZChiLnkubWF4KX1mdW5jdGlvbiBhc3BlY3RSYXRpbyhib3gpe3JldHVybigwLF9kZWx0YV9jYWxjX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkpPKShib3gueCkvKDAsX2RlbHRhX2NhbGNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uSk8pKGJveC55KX19LDkzMDgzOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtWOmZ1bmN0aW9uKCl7cmV0dXJuIGdsb2JhbFByb2plY3Rpb25TdGF0ZX19KTtsZXQgZ2xvYmFsUHJvamVjdGlvblN0YXRlPXtoYXNBbmltYXRlZFNpbmNlUmVzaXplOiEwLGhhc0V2ZXJVcGRhdGVkOiExfX0sOTQ4MTE6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se3Q6ZnVuY3Rpb24oKXtyZXR1cm4gTm9kZVN0YWNrfX0pO3ZhciBfdXRpbHNfYXJyYXlfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXygxMDAxMCk7Y2xhc3MgTm9kZVN0YWNre2NvbnN0cnVjdG9yKCl7dGhpcy5tZW1iZXJzPVtdfWFkZChub2RlKXsoMCxfdXRpbHNfYXJyYXlfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ueTQpKHRoaXMubWVtYmVycyxub2RlKSxub2RlLnNjaGVkdWxlUmVuZGVyKCl9cmVtb3ZlKG5vZGUpe2lmKCgwLF91dGlsc19hcnJheV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jbCkodGhpcy5tZW1iZXJzLG5vZGUpLG5vZGU9PT10aGlzLnByZXZMZWFkJiYodGhpcy5wcmV2TGVhZD12b2lkIDApLG5vZGU9PT10aGlzLmxlYWQpe2xldCBwcmV2TGVhZD10aGlzLm1lbWJlcnNbdGhpcy5tZW1iZXJzLmxlbmd0aC0xXTtwcmV2TGVhZCYmdGhpcy5wcm9tb3RlKHByZXZMZWFkKX19cmVsZWdhdGUobm9kZSl7bGV0IHByZXZMZWFkO2xldCBpbmRleE9mTm9kZT10aGlzLm1lbWJlcnMuZmluZEluZGV4KG1lbWJlcj0+bm9kZT09PW1lbWJlcik7aWYoMD09PWluZGV4T2ZOb2RlKXJldHVybiExO2ZvcihsZXQgaT1pbmRleE9mTm9kZTtpPj0wO2ktLSl7bGV0IG1lbWJlcj10aGlzLm1lbWJlcnNbaV07aWYoITEhPT1tZW1iZXIuaXNQcmVzZW50KXtwcmV2TGVhZD1tZW1iZXI7YnJlYWt9fXJldHVybiEhcHJldkxlYWQmJih0aGlzLnByb21vdGUocHJldkxlYWQpLCEwKX1wcm9tb3RlKG5vZGUscHJlc2VydmVGb2xsb3dPcGFjaXR5KXtsZXQgcHJldkxlYWQ9dGhpcy5sZWFkO2lmKG5vZGUhPT1wcmV2TGVhZCYmKHRoaXMucHJldkxlYWQ9cHJldkxlYWQsdGhpcy5sZWFkPW5vZGUsbm9kZS5zaG93KCkscHJldkxlYWQpKXtwcmV2TGVhZC5pbnN0YW5jZSYmcHJldkxlYWQuc2NoZWR1bGVSZW5kZXIoKSxub2RlLnNjaGVkdWxlUmVuZGVyKCksbm9kZS5yZXN1bWVGcm9tPXByZXZMZWFkLHByZXNlcnZlRm9sbG93T3BhY2l0eSYmKG5vZGUucmVzdW1lRnJvbS5wcmVzZXJ2ZU9wYWNpdHk9ITApLHByZXZMZWFkLnNuYXBzaG90JiYobm9kZS5zbmFwc2hvdD1wcmV2TGVhZC5zbmFwc2hvdCxub2RlLnNuYXBzaG90LmxhdGVzdFZhbHVlcz1wcmV2TGVhZC5hbmltYXRpb25WYWx1ZXN8fHByZXZMZWFkLmxhdGVzdFZhbHVlcyksbm9kZS5yb290JiZub2RlLnJvb3QuaXNVcGRhdGluZyYmKG5vZGUuaXNMYXlvdXREaXJ0eT0hMCk7bGV0e2Nyb3NzZmFkZX09bm9kZS5vcHRpb25zOyExPT09Y3Jvc3NmYWRlJiZwcmV2TGVhZC5oaWRlKCl9fWV4aXRBbmltYXRpb25Db21wbGV0ZSgpe3RoaXMubWVtYmVycy5mb3JFYWNoKG5vZGU9PntsZXR7b3B0aW9ucyxyZXN1bWluZ0Zyb219PW5vZGU7b3B0aW9ucy5vbkV4aXRDb21wbGV0ZSYmb3B0aW9ucy5vbkV4aXRDb21wbGV0ZSgpLHJlc3VtaW5nRnJvbSYmcmVzdW1pbmdGcm9tLm9wdGlvbnMub25FeGl0Q29tcGxldGUmJnJlc3VtaW5nRnJvbS5vcHRpb25zLm9uRXhpdENvbXBsZXRlKCl9KX1zY2hlZHVsZVJlbmRlcigpe3RoaXMubWVtYmVycy5mb3JFYWNoKG5vZGU9Pntub2RlLmluc3RhbmNlJiZub2RlLnNjaGVkdWxlUmVuZGVyKCExKX0pfXJlbW92ZUxlYWRTbmFwc2hvdCgpe3RoaXMubGVhZCYmdGhpcy5sZWFkLnNuYXBzaG90JiYodGhpcy5sZWFkLnNuYXBzaG90PXZvaWQgMCl9fX0sNjQ1NjE6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se0I6ZnVuY3Rpb24oKXtyZXR1cm4gYWRkU2NhbGVDb3JyZWN0b3J9LFA6ZnVuY3Rpb24oKXtyZXR1cm4gc2NhbGVDb3JyZWN0b3JzfX0pO2xldCBzY2FsZUNvcnJlY3RvcnM9e307ZnVuY3Rpb24gYWRkU2NhbGVDb3JyZWN0b3IoY29ycmVjdG9ycyl7T2JqZWN0LmFzc2lnbihzY2FsZUNvcnJlY3RvcnMsY29ycmVjdG9ycyl9fSw2NTE5OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGJ1aWxkUHJvamVjdGlvblRyYW5zZm9ybShkZWx0YSx0cmVlU2NhbGUsbGF0ZXN0VHJhbnNmb3JtKXtsZXQgdHJhbnNmb3JtPSIiLHhUcmFuc2xhdGU9ZGVsdGEueC50cmFuc2xhdGUvdHJlZVNjYWxlLngseVRyYW5zbGF0ZT1kZWx0YS55LnRyYW5zbGF0ZS90cmVlU2NhbGUueTtpZigoeFRyYW5zbGF0ZXx8eVRyYW5zbGF0ZSkmJih0cmFuc2Zvcm09YHRyYW5zbGF0ZTNkKCR7eFRyYW5zbGF0ZX1weCwgJHt5VHJhbnNsYXRlfXB4LCAwKSBgKSwoMSE9PXRyZWVTY2FsZS54fHwxIT09dHJlZVNjYWxlLnkpJiYodHJhbnNmb3JtKz1gc2NhbGUoJHsxL3RyZWVTY2FsZS54fSwgJHsxL3RyZWVTY2FsZS55fSkgYCksbGF0ZXN0VHJhbnNmb3JtKXtsZXR7cm90YXRlLHJvdGF0ZVgscm90YXRlWX09bGF0ZXN0VHJhbnNmb3JtO3JvdGF0ZSYmKHRyYW5zZm9ybSs9YHJvdGF0ZSgke3JvdGF0ZX1kZWcpIGApLHJvdGF0ZVgmJih0cmFuc2Zvcm0rPWByb3RhdGVYKCR7cm90YXRlWH1kZWcpIGApLHJvdGF0ZVkmJih0cmFuc2Zvcm0rPWByb3RhdGVZKCR7cm90YXRlWX1kZWcpIGApfWxldCBlbGVtZW50U2NhbGVYPWRlbHRhLnguc2NhbGUqdHJlZVNjYWxlLngsZWxlbWVudFNjYWxlWT1kZWx0YS55LnNjYWxlKnRyZWVTY2FsZS55O3JldHVybigxIT09ZWxlbWVudFNjYWxlWHx8MSE9PWVsZW1lbnRTY2FsZVkpJiYodHJhbnNmb3JtKz1gc2NhbGUoJHtlbGVtZW50U2NhbGVYfSwgJHtlbGVtZW50U2NhbGVZfSlgKSx0cmFuc2Zvcm18fCJub25lIn1fX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7ZDpmdW5jdGlvbigpe3JldHVybiBidWlsZFByb2plY3Rpb25UcmFuc2Zvcm19fSl9LDkxNzMwOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGVhY2hBeGlzKGNhbGxiYWNrKXtyZXR1cm5bY2FsbGJhY2soIngiKSxjYWxsYmFjaygieSIpXX1fX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7VTpmdW5jdGlvbigpe3JldHVybiBlYWNoQXhpc319KX0sOTk1Mjc6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaXNJZGVudGl0eVNjYWxlKHNjYWxlKXtyZXR1cm4gdm9pZCAwPT09c2NhbGV8fDE9PT1zY2FsZX1mdW5jdGlvbiBoYXNTY2FsZSh7c2NhbGUsc2NhbGVYLHNjYWxlWX0pe3JldHVybiFpc0lkZW50aXR5U2NhbGUoc2NhbGUpfHwhaXNJZGVudGl0eVNjYWxlKHNjYWxlWCl8fCFpc0lkZW50aXR5U2NhbGUoc2NhbGVZKX1mdW5jdGlvbiBoYXNUcmFuc2Zvcm0odmFsdWVzKXtyZXR1cm4gaGFzU2NhbGUodmFsdWVzKXx8aGFzMkRUcmFuc2xhdGUodmFsdWVzKXx8dmFsdWVzLnp8fHZhbHVlcy5yb3RhdGV8fHZhbHVlcy5yb3RhdGVYfHx2YWx1ZXMucm90YXRlWX1mdW5jdGlvbiBoYXMyRFRyYW5zbGF0ZSh2YWx1ZXMpe3ZhciB2YWx1ZSx2YWx1ZTE7cmV0dXJuKHZhbHVlPXZhbHVlcy54KSYmIjAlIiE9PXZhbHVlfHwodmFsdWUxPXZhbHVlcy55KSYmIjAlIiE9PXZhbHVlMX1fX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7RF86ZnVuY3Rpb24oKXtyZXR1cm4gaGFzMkRUcmFuc2xhdGV9LExqOmZ1bmN0aW9uKCl7cmV0dXJuIGhhc1NjYWxlfSx1ZDpmdW5jdGlvbigpe3JldHVybiBoYXNUcmFuc2Zvcm19fSl9LDg0MjE3OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtFOmZ1bmN0aW9uKCl7cmV0dXJuIG1vdGlvbn19KTt2YXIgaXNWYWxpZFByb3AscmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksTW90aW9uQ29uZmlnQ29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDE2MDE0KTtsZXQgTW90aW9uQ29udGV4dD0oMCxyZWFjdC5jcmVhdGVDb250ZXh0KSh7fSk7dmFyIGNvbnRleHRfUHJlc2VuY2VDb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oMjQwKSx1c2VfaXNvbW9ycGhpY19lZmZlY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg1ODg2OCk7bGV0IExhenlDb250ZXh0PSgwLHJlYWN0LmNyZWF0ZUNvbnRleHQpKHtzdHJpY3Q6ITF9KTtmdW5jdGlvbiBpc1JlZk9iamVjdChyZWYpe3JldHVybiJvYmplY3QiPT10eXBlb2YgcmVmJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmVmLCJjdXJyZW50Iil9ZnVuY3Rpb24gaXNWYXJpYW50TGFiZWwodil7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB2fHxBcnJheS5pc0FycmF5KHYpfWZ1bmN0aW9uIGlzQW5pbWF0aW9uQ29udHJvbHModil7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB2JiYiZnVuY3Rpb24iPT10eXBlb2Ygdi5zdGFydH1sZXQgdmFyaWFudFByaW9yaXR5T3JkZXI9WyJhbmltYXRlIiwid2hpbGVJblZpZXciLCJ3aGlsZUZvY3VzIiwid2hpbGVIb3ZlciIsIndoaWxlVGFwIiwid2hpbGVEcmFnIiwiZXhpdCJdLHZhcmlhbnRQcm9wcz1bImluaXRpYWwiLC4uLnZhcmlhbnRQcmlvcml0eU9yZGVyXTtmdW5jdGlvbiBpc0NvbnRyb2xsaW5nVmFyaWFudHMocHJvcHMpe3JldHVybiBpc0FuaW1hdGlvbkNvbnRyb2xzKHByb3BzLmFuaW1hdGUpfHx2YXJpYW50UHJvcHMuc29tZShuYW1lPT5pc1ZhcmlhbnRMYWJlbChwcm9wc1tuYW1lXSkpfWZ1bmN0aW9uIGlzVmFyaWFudE5vZGUocHJvcHMpe3JldHVybiBCb29sZWFuKGlzQ29udHJvbGxpbmdWYXJpYW50cyhwcm9wcyl8fHByb3BzLnZhcmlhbnRzKX1mdW5jdGlvbiB2YXJpYW50TGFiZWxzQXNEZXBlbmRlbmN5KHByb3Ape3JldHVybiBBcnJheS5pc0FycmF5KHByb3ApP3Byb3Auam9pbigiICIpOnByb3B9bGV0IGZlYXR1cmVQcm9wcz17YW5pbWF0aW9uOlsiYW5pbWF0ZSIsInZhcmlhbnRzIiwid2hpbGVIb3ZlciIsIndoaWxlVGFwIiwiZXhpdCIsIndoaWxlSW5WaWV3Iiwid2hpbGVGb2N1cyIsIndoaWxlRHJhZyJdLGV4aXQ6WyJleGl0Il0sZHJhZzpbImRyYWciLCJkcmFnQ29udHJvbHMiXSxmb2N1czpbIndoaWxlRm9jdXMiXSxob3ZlcjpbIndoaWxlSG92ZXIiLCJvbkhvdmVyU3RhcnQiLCJvbkhvdmVyRW5kIl0sdGFwOlsid2hpbGVUYXAiLCJvblRhcCIsIm9uVGFwU3RhcnQiLCJvblRhcENhbmNlbCJdLHBhbjpbIm9uUGFuIiwib25QYW5TdGFydCIsIm9uUGFuU2Vzc2lvblN0YXJ0Iiwib25QYW5FbmQiXSxpblZpZXc6WyJ3aGlsZUluVmlldyIsIm9uVmlld3BvcnRFbnRlciIsIm9uVmlld3BvcnRMZWF2ZSJdLGxheW91dDpbImxheW91dCIsImxheW91dElkIl19LGZlYXR1cmVEZWZpbml0aW9ucz17fTtmb3IobGV0IGtleSBpbiBmZWF0dXJlUHJvcHMpZmVhdHVyZURlZmluaXRpb25zW2tleV09e2lzRW5hYmxlZDpwcm9wcz0+ZmVhdHVyZVByb3BzW2tleV0uc29tZShuYW1lPT4hIXByb3BzW25hbWVdKX07dmFyIGlzX2Jyb3dzZXI9X193ZWJwYWNrX3JlcXVpcmVfXygxMTc0MSksTGF5b3V0R3JvdXBDb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oMjUzNjQpO2xldCBTd2l0Y2hMYXlvdXRHcm91cENvbnRleHQ9KDAscmVhY3QuY3JlYXRlQ29udGV4dCkoe30pLG1vdGlvbkNvbXBvbmVudFN5bWJvbD1TeW1ib2wuZm9yKCJtb3Rpb25Db21wb25lbnRTeW1ib2wiKSxsb3dlcmNhc2VTVkdFbGVtZW50cz1bImFuaW1hdGUiLCJjaXJjbGUiLCJkZWZzIiwiZGVzYyIsImVsbGlwc2UiLCJnIiwiaW1hZ2UiLCJsaW5lIiwiZmlsdGVyIiwibWFya2VyIiwibWFzayIsIm1ldGFkYXRhIiwicGF0aCIsInBhdHRlcm4iLCJwb2x5Z29uIiwicG9seWxpbmUiLCJyZWN0Iiwic3RvcCIsInN3aXRjaCIsInN5bWJvbCIsInN2ZyIsInRleHQiLCJ0c3BhbiIsInVzZSIsInZpZXciXTtmdW5jdGlvbiBpc1NWR0NvbXBvbmVudChDb21wb25lbnQpe2lmKCJzdHJpbmciIT10eXBlb2YgQ29tcG9uZW50fHxDb21wb25lbnQuaW5jbHVkZXMoIi0iKSk7ZWxzZSBpZihsb3dlcmNhc2VTVkdFbGVtZW50cy5pbmRleE9mKENvbXBvbmVudCk+LTF8fC9bQS1aXS8udGVzdChDb21wb25lbnQpKXJldHVybiEwO3JldHVybiExfXZhciBzY2FsZV9jb3JyZWN0aW9uPV9fd2VicGFja19yZXF1aXJlX18oNjQ1NjEpLHV0aWxzX3RyYW5zZm9ybT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk0NzE0KTtmdW5jdGlvbiBpc0ZvcmNlZE1vdGlvblZhbHVlKGtleSx7bGF5b3V0LGxheW91dElkfSl7cmV0dXJuIHV0aWxzX3RyYW5zZm9ybS5HLmhhcyhrZXkpfHxrZXkuc3RhcnRzV2l0aCgib3JpZ2luIil8fChsYXlvdXR8fHZvaWQgMCE9PWxheW91dElkKSYmKCEhc2NhbGVfY29ycmVjdGlvbi5QW2tleV18fCJvcGFjaXR5Ij09PWtleSl9dmFyIGlzX21vdGlvbl92YWx1ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDQwNDA2KTtsZXQgdHJhbnNsYXRlQWxpYXM9e3g6InRyYW5zbGF0ZVgiLHk6InRyYW5zbGF0ZVkiLHo6InRyYW5zbGF0ZVoiLHRyYW5zZm9ybVBlcnNwZWN0aXZlOiJwZXJzcGVjdGl2ZSJ9LG51bVRyYW5zZm9ybXM9dXRpbHNfdHJhbnNmb3JtLl8ubGVuZ3RoO3ZhciBpc19jc3NfdmFyaWFibGU9X193ZWJwYWNrX3JlcXVpcmVfXyg1NzYzMCk7bGV0IGdldFZhbHVlQXNUeXBlPSh2YWx1ZSx0eXBlKT0+dHlwZSYmIm51bWJlciI9PXR5cGVvZiB2YWx1ZT90eXBlLnRyYW5zZm9ybSh2YWx1ZSk6dmFsdWU7dmFyIG51bWJlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDM2MTczKTtmdW5jdGlvbiBidWlsZEhUTUxTdHlsZXMoc3RhdGUsbGF0ZXN0VmFsdWVzLG9wdGlvbnMsdHJhbnNmb3JtVGVtcGxhdGUpe2xldHtzdHlsZSx2YXJzLHRyYW5zZm9ybSx0cmFuc2Zvcm1PcmlnaW59PXN0YXRlLGhhc1RyYW5zZm9ybT0hMSxoYXNUcmFuc2Zvcm1PcmlnaW49ITEsdHJhbnNmb3JtSXNOb25lPSEwO2ZvcihsZXQga2V5IGluIGxhdGVzdFZhbHVlcyl7bGV0IHZhbHVlPWxhdGVzdFZhbHVlc1trZXldO2lmKCgwLGlzX2Nzc192YXJpYWJsZS5mOSkoa2V5KSl7dmFyc1trZXldPXZhbHVlO2NvbnRpbnVlfWxldCB2YWx1ZVR5cGU9bnVtYmVyLmpba2V5XSx2YWx1ZUFzVHlwZT1nZXRWYWx1ZUFzVHlwZSh2YWx1ZSx2YWx1ZVR5cGUpO2lmKHV0aWxzX3RyYW5zZm9ybS5HLmhhcyhrZXkpKXtpZihoYXNUcmFuc2Zvcm09ITAsdHJhbnNmb3JtW2tleV09dmFsdWVBc1R5cGUsIXRyYW5zZm9ybUlzTm9uZSljb250aW51ZTt2YWx1ZSE9PSh2YWx1ZVR5cGUuZGVmYXVsdHx8MCkmJih0cmFuc2Zvcm1Jc05vbmU9ITEpfWVsc2Uga2V5LnN0YXJ0c1dpdGgoIm9yaWdpbiIpPyhoYXNUcmFuc2Zvcm1PcmlnaW49ITAsdHJhbnNmb3JtT3JpZ2luW2tleV09dmFsdWVBc1R5cGUpOnN0eWxlW2tleV09dmFsdWVBc1R5cGV9aWYoIWxhdGVzdFZhbHVlcy50cmFuc2Zvcm0mJihoYXNUcmFuc2Zvcm18fHRyYW5zZm9ybVRlbXBsYXRlP3N0eWxlLnRyYW5zZm9ybT1mdW5jdGlvbih0cmFuc2Zvcm0se2VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0aW9uPSEwLGFsbG93VHJhbnNmb3JtTm9uZT0hMH0sdHJhbnNmb3JtSXNEZWZhdWx0LHRyYW5zZm9ybVRlbXBsYXRlKXtsZXQgdHJhbnNmb3JtU3RyaW5nPSIiO2ZvcihsZXQgaT0wO2k8bnVtVHJhbnNmb3JtcztpKyspe2xldCBrZXk9dXRpbHNfdHJhbnNmb3JtLl9baV07aWYodm9pZCAwIT09dHJhbnNmb3JtW2tleV0pe2xldCB0cmFuc2Zvcm1OYW1lPXRyYW5zbGF0ZUFsaWFzW2tleV18fGtleTt0cmFuc2Zvcm1TdHJpbmcrPWAke3RyYW5zZm9ybU5hbWV9KCR7dHJhbnNmb3JtW2tleV19KSBgfX1yZXR1cm4gZW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRpb24mJiF0cmFuc2Zvcm0ueiYmKHRyYW5zZm9ybVN0cmluZys9InRyYW5zbGF0ZVooMCkiKSx0cmFuc2Zvcm1TdHJpbmc9dHJhbnNmb3JtU3RyaW5nLnRyaW0oKSx0cmFuc2Zvcm1UZW1wbGF0ZT90cmFuc2Zvcm1TdHJpbmc9dHJhbnNmb3JtVGVtcGxhdGUodHJhbnNmb3JtLHRyYW5zZm9ybUlzRGVmYXVsdD8iIjp0cmFuc2Zvcm1TdHJpbmcpOmFsbG93VHJhbnNmb3JtTm9uZSYmdHJhbnNmb3JtSXNEZWZhdWx0JiYodHJhbnNmb3JtU3RyaW5nPSJub25lIiksdHJhbnNmb3JtU3RyaW5nfShzdGF0ZS50cmFuc2Zvcm0sb3B0aW9ucyx0cmFuc2Zvcm1Jc05vbmUsdHJhbnNmb3JtVGVtcGxhdGUpOnN0eWxlLnRyYW5zZm9ybSYmKHN0eWxlLnRyYW5zZm9ybT0ibm9uZSIpKSxoYXNUcmFuc2Zvcm1PcmlnaW4pe2xldHtvcmlnaW5YPSI1MCUiLG9yaWdpblk9IjUwJSIsb3JpZ2luWj0wfT10cmFuc2Zvcm1PcmlnaW47c3R5bGUudHJhbnNmb3JtT3JpZ2luPWAke29yaWdpblh9ICR7b3JpZ2luWX0gJHtvcmlnaW5afWB9fWxldCBjcmVhdGVIdG1sUmVuZGVyU3RhdGU9KCk9Pih7c3R5bGU6e30sdHJhbnNmb3JtOnt9LHRyYW5zZm9ybU9yaWdpbjp7fSx2YXJzOnt9fSk7ZnVuY3Rpb24gY29weVJhd1ZhbHVlc09ubHkodGFyZ2V0LHNvdXJjZSxwcm9wcyl7Zm9yKGxldCBrZXkgaW4gc291cmNlKSgwLGlzX21vdGlvbl92YWx1ZS5pKShzb3VyY2Vba2V5XSl8fGlzRm9yY2VkTW90aW9uVmFsdWUoa2V5LHByb3BzKXx8KHRhcmdldFtrZXldPXNvdXJjZVtrZXldKX1mdW5jdGlvbiB1c2VIVE1MUHJvcHMocHJvcHMsdmlzdWFsU3RhdGUsaXNTdGF0aWMpe2xldCBodG1sUHJvcHM9e30sc3R5bGU9ZnVuY3Rpb24ocHJvcHMsdmlzdWFsU3RhdGUsaXNTdGF0aWMpe2xldCBzdHlsZVByb3A9cHJvcHMuc3R5bGV8fHt9LHN0eWxlPXt9O3JldHVybiBjb3B5UmF3VmFsdWVzT25seShzdHlsZSxzdHlsZVByb3AscHJvcHMpLE9iamVjdC5hc3NpZ24oc3R5bGUsZnVuY3Rpb24oe3RyYW5zZm9ybVRlbXBsYXRlfSx2aXN1YWxTdGF0ZSxpc1N0YXRpYyl7cmV0dXJuKDAscmVhY3QudXNlTWVtbykoKCk9PntsZXQgc3RhdGU9Y3JlYXRlSHRtbFJlbmRlclN0YXRlKCk7cmV0dXJuIGJ1aWxkSFRNTFN0eWxlcyhzdGF0ZSx2aXN1YWxTdGF0ZSx7ZW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRpb246IWlzU3RhdGljfSx0cmFuc2Zvcm1UZW1wbGF0ZSksT2JqZWN0LmFzc2lnbih7fSxzdGF0ZS52YXJzLHN0YXRlLnN0eWxlKX0sW3Zpc3VhbFN0YXRlXSl9KHByb3BzLHZpc3VhbFN0YXRlLGlzU3RhdGljKSkscHJvcHMudHJhbnNmb3JtVmFsdWVzP3Byb3BzLnRyYW5zZm9ybVZhbHVlcyhzdHlsZSk6c3R5bGV9KHByb3BzLHZpc3VhbFN0YXRlLGlzU3RhdGljKTtyZXR1cm4gcHJvcHMuZHJhZyYmITEhPT1wcm9wcy5kcmFnTGlzdGVuZXImJihodG1sUHJvcHMuZHJhZ2dhYmxlPSExLHN0eWxlLnVzZXJTZWxlY3Q9c3R5bGUuV2Via2l0VXNlclNlbGVjdD1zdHlsZS5XZWJraXRUb3VjaENhbGxvdXQ9Im5vbmUiLHN0eWxlLnRvdWNoQWN0aW9uPSEwPT09cHJvcHMuZHJhZz8ibm9uZSI6YHBhbi0keyJ4Ij09PXByb3BzLmRyYWc/InkiOiJ4In1gKSx2b2lkIDA9PT1wcm9wcy50YWJJbmRleCYmKHByb3BzLm9uVGFwfHxwcm9wcy5vblRhcFN0YXJ0fHxwcm9wcy53aGlsZVRhcCkmJihodG1sUHJvcHMudGFiSW5kZXg9MCksaHRtbFByb3BzLnN0eWxlPXN0eWxlLGh0bWxQcm9wc31sZXQgdmFsaWRNb3Rpb25Qcm9wcz1uZXcgU2V0KFsiYW5pbWF0ZSIsImV4aXQiLCJ2YXJpYW50cyIsImluaXRpYWwiLCJzdHlsZSIsInZhbHVlcyIsInZhcmlhbnRzIiwidHJhbnNpdGlvbiIsInRyYW5zZm9ybVRlbXBsYXRlIiwidHJhbnNmb3JtVmFsdWVzIiwiY3VzdG9tIiwiaW5oZXJpdCIsIm9uTGF5b3V0QW5pbWF0aW9uU3RhcnQiLCJvbkxheW91dEFuaW1hdGlvbkNvbXBsZXRlIiwib25MYXlvdXRNZWFzdXJlIiwib25CZWZvcmVMYXlvdXRNZWFzdXJlIiwib25BbmltYXRpb25TdGFydCIsIm9uQW5pbWF0aW9uQ29tcGxldGUiLCJvblVwZGF0ZSIsIm9uRHJhZ1N0YXJ0Iiwib25EcmFnIiwib25EcmFnRW5kIiwib25NZWFzdXJlRHJhZ0NvbnN0cmFpbnRzIiwib25EaXJlY3Rpb25Mb2NrIiwib25EcmFnVHJhbnNpdGlvbkVuZCIsIl9kcmFnWCIsIl9kcmFnWSIsIm9uSG92ZXJTdGFydCIsIm9uSG92ZXJFbmQiLCJvblZpZXdwb3J0RW50ZXIiLCJvblZpZXdwb3J0TGVhdmUiLCJpZ25vcmVTdHJpY3QiLCJ2aWV3cG9ydCJdKTtmdW5jdGlvbiBpc1ZhbGlkTW90aW9uUHJvcChrZXkpe3JldHVybiBrZXkuc3RhcnRzV2l0aCgid2hpbGUiKXx8a2V5LnN0YXJ0c1dpdGgoImRyYWciKSYmImRyYWdnYWJsZSIhPT1rZXl8fGtleS5zdGFydHNXaXRoKCJsYXlvdXQiKXx8a2V5LnN0YXJ0c1dpdGgoIm9uVGFwIil8fGtleS5zdGFydHNXaXRoKCJvblBhbiIpfHx2YWxpZE1vdGlvblByb3BzLmhhcyhrZXkpfWxldCBzaG91bGRGb3J3YXJkPWtleT0+IWlzVmFsaWRNb3Rpb25Qcm9wKGtleSk7dHJ5eyhpc1ZhbGlkUHJvcD1yZXF1aXJlKCJAZW1vdGlvbi9pcy1wcm9wLXZhbGlkIikuZGVmYXVsdCkmJihzaG91bGRGb3J3YXJkPWtleT0+a2V5LnN0YXJ0c1dpdGgoIm9uIik/IWlzVmFsaWRNb3Rpb25Qcm9wKGtleSk6aXNWYWxpZFByb3Aoa2V5KSl9Y2F0Y2goX2Epe312YXIgdW5pdHM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NjE5MCk7ZnVuY3Rpb24gY2FsY09yaWdpbihvcmlnaW4sb2Zmc2V0LHNpemUpe3JldHVybiJzdHJpbmciPT10eXBlb2Ygb3JpZ2luP29yaWdpbjp1bml0cy5weC50cmFuc2Zvcm0ob2Zmc2V0K3NpemUqb3JpZ2luKX1sZXQgZGFzaEtleXM9e29mZnNldDoic3Ryb2tlLWRhc2hvZmZzZXQiLGFycmF5OiJzdHJva2UtZGFzaGFycmF5In0sY2FtZWxLZXlzPXtvZmZzZXQ6InN0cm9rZURhc2hvZmZzZXQiLGFycmF5OiJzdHJva2VEYXNoYXJyYXkifTtmdW5jdGlvbiBidWlsZFNWR0F0dHJzKHN0YXRlLHthdHRyWCxhdHRyWSxhdHRyU2NhbGUsb3JpZ2luWCxvcmlnaW5ZLHBhdGhMZW5ndGgscGF0aFNwYWNpbmc9MSxwYXRoT2Zmc2V0PTAsLi4ubGF0ZXN0fSxvcHRpb25zLGlzU1ZHVGFnLHRyYW5zZm9ybVRlbXBsYXRlKXtpZihidWlsZEhUTUxTdHlsZXMoc3RhdGUsbGF0ZXN0LG9wdGlvbnMsdHJhbnNmb3JtVGVtcGxhdGUpLGlzU1ZHVGFnKXtzdGF0ZS5zdHlsZS52aWV3Qm94JiYoc3RhdGUuYXR0cnMudmlld0JveD1zdGF0ZS5zdHlsZS52aWV3Qm94KTtyZXR1cm59c3RhdGUuYXR0cnM9c3RhdGUuc3R5bGUsc3RhdGUuc3R5bGU9e307bGV0e2F0dHJzLHN0eWxlLGRpbWVuc2lvbnN9PXN0YXRlO2F0dHJzLnRyYW5zZm9ybSYmKGRpbWVuc2lvbnMmJihzdHlsZS50cmFuc2Zvcm09YXR0cnMudHJhbnNmb3JtKSxkZWxldGUgYXR0cnMudHJhbnNmb3JtKSxkaW1lbnNpb25zJiYodm9pZCAwIT09b3JpZ2luWHx8dm9pZCAwIT09b3JpZ2luWXx8c3R5bGUudHJhbnNmb3JtKSYmKHN0eWxlLnRyYW5zZm9ybU9yaWdpbj1mdW5jdGlvbihkaW1lbnNpb25zLG9yaWdpblgsb3JpZ2luWSl7bGV0IHB4T3JpZ2luWD1jYWxjT3JpZ2luKG9yaWdpblgsZGltZW5zaW9ucy54LGRpbWVuc2lvbnMud2lkdGgpLHB4T3JpZ2luWT1jYWxjT3JpZ2luKG9yaWdpblksZGltZW5zaW9ucy55LGRpbWVuc2lvbnMuaGVpZ2h0KTtyZXR1cm5gJHtweE9yaWdpblh9ICR7cHhPcmlnaW5ZfWB9KGRpbWVuc2lvbnMsdm9pZCAwIT09b3JpZ2luWD9vcmlnaW5YOi41LHZvaWQgMCE9PW9yaWdpblk/b3JpZ2luWTouNSkpLHZvaWQgMCE9PWF0dHJYJiYoYXR0cnMueD1hdHRyWCksdm9pZCAwIT09YXR0clkmJihhdHRycy55PWF0dHJZKSx2b2lkIDAhPT1hdHRyU2NhbGUmJihhdHRycy5zY2FsZT1hdHRyU2NhbGUpLHZvaWQgMCE9PXBhdGhMZW5ndGgmJmZ1bmN0aW9uKGF0dHJzLGxlbmd0aCxzcGFjaW5nPTEsb2Zmc2V0PTAsdXNlRGFzaENhc2U9ITApe2F0dHJzLnBhdGhMZW5ndGg9MTtsZXQga2V5cz11c2VEYXNoQ2FzZT9kYXNoS2V5czpjYW1lbEtleXM7YXR0cnNba2V5cy5vZmZzZXRdPXVuaXRzLnB4LnRyYW5zZm9ybSgtb2Zmc2V0KTtsZXQgcGF0aExlbmd0aD11bml0cy5weC50cmFuc2Zvcm0obGVuZ3RoKSxwYXRoU3BhY2luZz11bml0cy5weC50cmFuc2Zvcm0oc3BhY2luZyk7YXR0cnNba2V5cy5hcnJheV09YCR7cGF0aExlbmd0aH0gJHtwYXRoU3BhY2luZ31gfShhdHRycyxwYXRoTGVuZ3RoLHBhdGhTcGFjaW5nLHBhdGhPZmZzZXQsITEpfWxldCBjcmVhdGVTdmdSZW5kZXJTdGF0ZT0oKT0+KHsuLi5jcmVhdGVIdG1sUmVuZGVyU3RhdGUoKSxhdHRyczp7fX0pLGlzU1ZHVGFnPXRhZz0+InN0cmluZyI9PXR5cGVvZiB0YWcmJiJzdmciPT09dGFnLnRvTG93ZXJDYXNlKCk7ZnVuY3Rpb24gdXNlU1ZHUHJvcHMocHJvcHMsdmlzdWFsU3RhdGUsX2lzU3RhdGljLENvbXBvbmVudCl7bGV0IHZpc3VhbFByb3BzPSgwLHJlYWN0LnVzZU1lbW8pKCgpPT57bGV0IHN0YXRlPWNyZWF0ZVN2Z1JlbmRlclN0YXRlKCk7cmV0dXJuIGJ1aWxkU1ZHQXR0cnMoc3RhdGUsdmlzdWFsU3RhdGUse2VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0aW9uOiExfSxpc1NWR1RhZyhDb21wb25lbnQpLHByb3BzLnRyYW5zZm9ybVRlbXBsYXRlKSx7Li4uc3RhdGUuYXR0cnMsc3R5bGU6ey4uLnN0YXRlLnN0eWxlfX19LFt2aXN1YWxTdGF0ZV0pO2lmKHByb3BzLnN0eWxlKXtsZXQgcmF3U3R5bGVzPXt9O2NvcHlSYXdWYWx1ZXNPbmx5KHJhd1N0eWxlcyxwcm9wcy5zdHlsZSxwcm9wcyksdmlzdWFsUHJvcHMuc3R5bGU9ey4uLnJhd1N0eWxlcywuLi52aXN1YWxQcm9wcy5zdHlsZX19cmV0dXJuIHZpc3VhbFByb3BzfWxldCBjYW1lbFRvRGFzaD1zdHI9PnN0ci5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCk7ZnVuY3Rpb24gcmVuZGVySFRNTChlbGVtZW50LHtzdHlsZSx2YXJzfSxzdHlsZVByb3AscHJvamVjdGlvbil7Zm9yKGxldCBrZXkgaW4gT2JqZWN0LmFzc2lnbihlbGVtZW50LnN0eWxlLHN0eWxlLHByb2plY3Rpb24mJnByb2plY3Rpb24uZ2V0UHJvamVjdGlvblN0eWxlcyhzdHlsZVByb3ApKSx2YXJzKWVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoa2V5LHZhcnNba2V5XSl9bGV0IGNhbWVsQ2FzZUF0dHJpYnV0ZXM9bmV3IFNldChbImJhc2VGcmVxdWVuY3kiLCJkaWZmdXNlQ29uc3RhbnQiLCJrZXJuZWxNYXRyaXgiLCJrZXJuZWxVbml0TGVuZ3RoIiwia2V5U3BsaW5lcyIsImtleVRpbWVzIiwibGltaXRpbmdDb25lQW5nbGUiLCJtYXJrZXJIZWlnaHQiLCJtYXJrZXJXaWR0aCIsIm51bU9jdGF2ZXMiLCJ0YXJnZXRYIiwidGFyZ2V0WSIsInN1cmZhY2VTY2FsZSIsInNwZWN1bGFyQ29uc3RhbnQiLCJzcGVjdWxhckV4cG9uZW50Iiwic3RkRGV2aWF0aW9uIiwidGFibGVWYWx1ZXMiLCJ2aWV3Qm94IiwiZ3JhZGllbnRUcmFuc2Zvcm0iLCJwYXRoTGVuZ3RoIiwic3RhcnRPZmZzZXQiLCJ0ZXh0TGVuZ3RoIiwibGVuZ3RoQWRqdXN0Il0pO2Z1bmN0aW9uIHJlbmRlclNWRyhlbGVtZW50LHJlbmRlclN0YXRlLF9zdHlsZVByb3AscHJvamVjdGlvbil7Zm9yKGxldCBrZXkgaW4gcmVuZGVySFRNTChlbGVtZW50LHJlbmRlclN0YXRlLHZvaWQgMCxwcm9qZWN0aW9uKSxyZW5kZXJTdGF0ZS5hdHRycyllbGVtZW50LnNldEF0dHJpYnV0ZShjYW1lbENhc2VBdHRyaWJ1dGVzLmhhcyhrZXkpP2tleTpjYW1lbFRvRGFzaChrZXkpLHJlbmRlclN0YXRlLmF0dHJzW2tleV0pfWZ1bmN0aW9uIHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhwcm9wcyxwcmV2UHJvcHMpe2xldHtzdHlsZX09cHJvcHMsbmV3VmFsdWVzPXt9O2ZvcihsZXQga2V5IGluIHN0eWxlKSgoMCxpc19tb3Rpb25fdmFsdWUuaSkoc3R5bGVba2V5XSl8fHByZXZQcm9wcy5zdHlsZSYmKDAsaXNfbW90aW9uX3ZhbHVlLmkpKHByZXZQcm9wcy5zdHlsZVtrZXldKXx8aXNGb3JjZWRNb3Rpb25WYWx1ZShrZXkscHJvcHMpKSYmKG5ld1ZhbHVlc1trZXldPXN0eWxlW2tleV0pO3JldHVybiBuZXdWYWx1ZXN9ZnVuY3Rpb24gc2NyYXBlX21vdGlvbl92YWx1ZXNfc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzKHByb3BzLHByZXZQcm9wcyl7bGV0IG5ld1ZhbHVlcz1zY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMocHJvcHMscHJldlByb3BzKTtmb3IobGV0IGtleSBpbiBwcm9wcylpZigoMCxpc19tb3Rpb25fdmFsdWUuaSkocHJvcHNba2V5XSl8fCgwLGlzX21vdGlvbl92YWx1ZS5pKShwcmV2UHJvcHNba2V5XSkpe2xldCB0YXJnZXRLZXk9LTEhPT11dGlsc190cmFuc2Zvcm0uXy5pbmRleE9mKGtleSk/ImF0dHIiK2tleS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStrZXkuc3Vic3RyaW5nKDEpOmtleTtuZXdWYWx1ZXNbdGFyZ2V0S2V5XT1wcm9wc1trZXldfXJldHVybiBuZXdWYWx1ZXN9ZnVuY3Rpb24gcmVzb2x2ZVZhcmlhbnRGcm9tUHJvcHMocHJvcHMsZGVmaW5pdGlvbixjdXN0b20sY3VycmVudFZhbHVlcz17fSxjdXJyZW50VmVsb2NpdHk9e30pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbml0aW9uJiYoZGVmaW5pdGlvbj1kZWZpbml0aW9uKHZvaWQgMCE9PWN1c3RvbT9jdXN0b206cHJvcHMuY3VzdG9tLGN1cnJlbnRWYWx1ZXMsY3VycmVudFZlbG9jaXR5KSksInN0cmluZyI9PXR5cGVvZiBkZWZpbml0aW9uJiYoZGVmaW5pdGlvbj1wcm9wcy52YXJpYW50cyYmcHJvcHMudmFyaWFudHNbZGVmaW5pdGlvbl0pLCJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbml0aW9uJiYoZGVmaW5pdGlvbj1kZWZpbml0aW9uKHZvaWQgMCE9PWN1c3RvbT9jdXN0b206cHJvcHMuY3VzdG9tLGN1cnJlbnRWYWx1ZXMsY3VycmVudFZlbG9jaXR5KSksZGVmaW5pdGlvbn12YXIgdXNlX2NvbnN0YW50PV9fd2VicGFja19yZXF1aXJlX18oOTY2ODEpLHJlc29sdmVfbW90aW9uX3ZhbHVlPV9fd2VicGFja19yZXF1aXJlX18oMTYzOTkpO2xldCBtYWtlVXNlVmlzdWFsU3RhdGU9Y29uZmlnPT4ocHJvcHMsaXNTdGF0aWMpPT57bGV0IGNvbnRleHQ9KDAscmVhY3QudXNlQ29udGV4dCkoTW90aW9uQ29udGV4dCkscHJlc2VuY2VDb250ZXh0PSgwLHJlYWN0LnVzZUNvbnRleHQpKGNvbnRleHRfUHJlc2VuY2VDb250ZXh0Lk8pLG1ha2U9KCk9PihmdW5jdGlvbih7c2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzLGNyZWF0ZVJlbmRlclN0YXRlLG9uTW91bnR9LHByb3BzLGNvbnRleHQscHJlc2VuY2VDb250ZXh0KXtsZXQgc3RhdGU9e2xhdGVzdFZhbHVlczpmdW5jdGlvbihwcm9wcyxjb250ZXh0LHByZXNlbmNlQ29udGV4dCxzY3JhcGVNb3Rpb25WYWx1ZXMpe2xldCB2YWx1ZXM9e30sbW90aW9uVmFsdWVzPXNjcmFwZU1vdGlvblZhbHVlcyhwcm9wcyx7fSk7Zm9yKGxldCBrZXkgaW4gbW90aW9uVmFsdWVzKXZhbHVlc1trZXldPSgwLHJlc29sdmVfbW90aW9uX3ZhbHVlLmIpKG1vdGlvblZhbHVlc1trZXldKTtsZXR7aW5pdGlhbCxhbmltYXRlfT1wcm9wcyxpc0NvbnRyb2xsaW5nVmFyaWFudHMkMT1pc0NvbnRyb2xsaW5nVmFyaWFudHMocHJvcHMpLGlzVmFyaWFudE5vZGUkMT1pc1ZhcmlhbnROb2RlKHByb3BzKTtjb250ZXh0JiZpc1ZhcmlhbnROb2RlJDEmJiFpc0NvbnRyb2xsaW5nVmFyaWFudHMkMSYmITEhPT1wcm9wcy5pbmhlcml0JiYodm9pZCAwPT09aW5pdGlhbCYmKGluaXRpYWw9Y29udGV4dC5pbml0aWFsKSx2b2lkIDA9PT1hbmltYXRlJiYoYW5pbWF0ZT1jb250ZXh0LmFuaW1hdGUpKTtsZXQgaXNJbml0aWFsQW5pbWF0aW9uQmxvY2tlZD0hIXByZXNlbmNlQ29udGV4dCYmITE9PT1wcmVzZW5jZUNvbnRleHQuaW5pdGlhbDtpc0luaXRpYWxBbmltYXRpb25CbG9ja2VkPWlzSW5pdGlhbEFuaW1hdGlvbkJsb2NrZWR8fCExPT09aW5pdGlhbDtsZXQgdmFyaWFudFRvU2V0PWlzSW5pdGlhbEFuaW1hdGlvbkJsb2NrZWQ/YW5pbWF0ZTppbml0aWFsO2lmKHZhcmlhbnRUb1NldCYmImJvb2xlYW4iIT10eXBlb2YgdmFyaWFudFRvU2V0JiYhaXNBbmltYXRpb25Db250cm9scyh2YXJpYW50VG9TZXQpKXtsZXQgbGlzdD1BcnJheS5pc0FycmF5KHZhcmlhbnRUb1NldCk/dmFyaWFudFRvU2V0Olt2YXJpYW50VG9TZXRdO2xpc3QuZm9yRWFjaChkZWZpbml0aW9uPT57bGV0IHJlc29sdmVkPXJlc29sdmVWYXJpYW50RnJvbVByb3BzKHByb3BzLGRlZmluaXRpb24pO2lmKCFyZXNvbHZlZClyZXR1cm47bGV0e3RyYW5zaXRpb25FbmQsdHJhbnNpdGlvbiwuLi50YXJnZXR9PXJlc29sdmVkO2ZvcihsZXQga2V5IGluIHRhcmdldCl7bGV0IHZhbHVlVGFyZ2V0PXRhcmdldFtrZXldO2lmKEFycmF5LmlzQXJyYXkodmFsdWVUYXJnZXQpKXtsZXQgaW5kZXg9aXNJbml0aWFsQW5pbWF0aW9uQmxvY2tlZD92YWx1ZVRhcmdldC5sZW5ndGgtMTowO3ZhbHVlVGFyZ2V0PXZhbHVlVGFyZ2V0W2luZGV4XX1udWxsIT09dmFsdWVUYXJnZXQmJih2YWx1ZXNba2V5XT12YWx1ZVRhcmdldCl9Zm9yKGxldCBrZXkxIGluIHRyYW5zaXRpb25FbmQpdmFsdWVzW2tleTFdPXRyYW5zaXRpb25FbmRba2V5MV19KX1yZXR1cm4gdmFsdWVzfShwcm9wcyxjb250ZXh0LHByZXNlbmNlQ29udGV4dCxzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMpLHJlbmRlclN0YXRlOmNyZWF0ZVJlbmRlclN0YXRlKCl9O3JldHVybiBvbk1vdW50JiYoc3RhdGUubW91bnQ9aW5zdGFuY2U9Pm9uTW91bnQocHJvcHMsaW5zdGFuY2Usc3RhdGUpKSxzdGF0ZX0pKGNvbmZpZyxwcm9wcyxjb250ZXh0LHByZXNlbmNlQ29udGV4dCk7cmV0dXJuIGlzU3RhdGljP21ha2UoKTooMCx1c2VfY29uc3RhbnQuaCkobWFrZSl9O3ZhciBmcmFtZWxvb3BfZnJhbWU9X193ZWJwYWNrX3JlcXVpcmVfXygyMDc0KTtsZXQgc3ZnTW90aW9uQ29uZmlnPXt1c2VWaXN1YWxTdGF0ZTptYWtlVXNlVmlzdWFsU3RhdGUoe3NjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wczpzY3JhcGVfbW90aW9uX3ZhbHVlc19zY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMsY3JlYXRlUmVuZGVyU3RhdGU6Y3JlYXRlU3ZnUmVuZGVyU3RhdGUsb25Nb3VudChwcm9wcyxpbnN0YW5jZSx7cmVuZGVyU3RhdGUsbGF0ZXN0VmFsdWVzfSl7ZnJhbWVsb29wX2ZyYW1lLldpLnJlYWQoKCk9Pnt0cnl7cmVuZGVyU3RhdGUuZGltZW5zaW9ucz0iZnVuY3Rpb24iPT10eXBlb2YgaW5zdGFuY2UuZ2V0QkJveD9pbnN0YW5jZS5nZXRCQm94KCk6aW5zdGFuY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9Y2F0Y2goZSl7cmVuZGVyU3RhdGUuZGltZW5zaW9ucz17eDowLHk6MCx3aWR0aDowLGhlaWdodDowfX19KSxmcmFtZWxvb3BfZnJhbWUuV2kucmVuZGVyKCgpPT57YnVpbGRTVkdBdHRycyhyZW5kZXJTdGF0ZSxsYXRlc3RWYWx1ZXMse2VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0aW9uOiExfSxpc1NWR1RhZyhpbnN0YW5jZS50YWdOYW1lKSxwcm9wcy50cmFuc2Zvcm1UZW1wbGF0ZSkscmVuZGVyU1ZHKGluc3RhbmNlLHJlbmRlclN0YXRlKX0pfX0pfSxodG1sTW90aW9uQ29uZmlnPXt1c2VWaXN1YWxTdGF0ZTptYWtlVXNlVmlzdWFsU3RhdGUoe3NjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wczpzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMsY3JlYXRlUmVuZGVyU3RhdGU6Y3JlYXRlSHRtbFJlbmRlclN0YXRlfSl9O2Z1bmN0aW9uIGFkZERvbUV2ZW50KHRhcmdldCxldmVudE5hbWUsaGFuZGxlcixvcHRpb25zPXtwYXNzaXZlOiEwfSl7cmV0dXJuIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSxoYW5kbGVyLG9wdGlvbnMpLCgpPT50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsaGFuZGxlcil9bGV0IGlzUHJpbWFyeVBvaW50ZXI9ZXZlbnQ9PiJtb3VzZSI9PT1ldmVudC5wb2ludGVyVHlwZT8ibnVtYmVyIiE9dHlwZW9mIGV2ZW50LmJ1dHRvbnx8ZXZlbnQuYnV0dG9uPD0wOiExIT09ZXZlbnQuaXNQcmltYXJ5O2Z1bmN0aW9uIGV4dHJhY3RFdmVudEluZm8oZXZlbnQscG9pbnRUeXBlPSJwYWdlIil7cmV0dXJue3BvaW50Ont4OmV2ZW50W3BvaW50VHlwZSsiWCJdLHk6ZXZlbnRbcG9pbnRUeXBlKyJZIl19fX1sZXQgYWRkUG9pbnRlckluZm89aGFuZGxlcj0+ZXZlbnQ9PmlzUHJpbWFyeVBvaW50ZXIoZXZlbnQpJiZoYW5kbGVyKGV2ZW50LGV4dHJhY3RFdmVudEluZm8oZXZlbnQpKTtmdW5jdGlvbiBhZGRQb2ludGVyRXZlbnQodGFyZ2V0LGV2ZW50TmFtZSxoYW5kbGVyLG9wdGlvbnMpe3JldHVybiBhZGREb21FdmVudCh0YXJnZXQsZXZlbnROYW1lLGFkZFBvaW50ZXJJbmZvKGhhbmRsZXIpLG9wdGlvbnMpfXZhciBwaXBlPV9fd2VicGFja19yZXF1aXJlX18oODM2MjQpO2Z1bmN0aW9uIGNyZWF0ZUxvY2sobmFtZSl7bGV0IGxvY2s9bnVsbDtyZXR1cm4oKT0+e2xldCBvcGVuTG9jaz0oKT0+e2xvY2s9bnVsbH07cmV0dXJuIG51bGw9PT1sb2NrJiYobG9jaz1uYW1lLG9wZW5Mb2NrKX19bGV0IGdsb2JhbEhvcml6b250YWxMb2NrPWNyZWF0ZUxvY2soImRyYWdIb3Jpem9udGFsIiksZ2xvYmFsVmVydGljYWxMb2NrPWNyZWF0ZUxvY2soImRyYWdWZXJ0aWNhbCIpO2Z1bmN0aW9uIGdldEdsb2JhbExvY2soZHJhZyl7bGV0IGxvY2s9ITE7aWYoInkiPT09ZHJhZylsb2NrPWdsb2JhbFZlcnRpY2FsTG9jaygpO2Vsc2UgaWYoIngiPT09ZHJhZylsb2NrPWdsb2JhbEhvcml6b250YWxMb2NrKCk7ZWxzZXtsZXQgb3Blbkhvcml6b250YWw9Z2xvYmFsSG9yaXpvbnRhbExvY2soKSxvcGVuVmVydGljYWw9Z2xvYmFsVmVydGljYWxMb2NrKCk7b3Blbkhvcml6b250YWwmJm9wZW5WZXJ0aWNhbD9sb2NrPSgpPT57b3Blbkhvcml6b250YWwoKSxvcGVuVmVydGljYWwoKX06KG9wZW5Ib3Jpem9udGFsJiZvcGVuSG9yaXpvbnRhbCgpLG9wZW5WZXJ0aWNhbCYmb3BlblZlcnRpY2FsKCkpfXJldHVybiBsb2NrfWZ1bmN0aW9uIGlzRHJhZ0FjdGl2ZSgpe2xldCBvcGVuR2VzdHVyZUxvY2s9Z2V0R2xvYmFsTG9jayghMCk7cmV0dXJuIW9wZW5HZXN0dXJlTG9ja3x8KG9wZW5HZXN0dXJlTG9jaygpLCExKX1jbGFzcyBGZWF0dXJle2NvbnN0cnVjdG9yKG5vZGUpe3RoaXMuaXNNb3VudGVkPSExLHRoaXMubm9kZT1ub2RlfXVwZGF0ZSgpe319ZnVuY3Rpb24gYWRkSG92ZXJFdmVudChub2RlLGlzQWN0aXZlKXtsZXQgY2FsbGJhY2tOYW1lPSJvbkhvdmVyIisoaXNBY3RpdmU/IlN0YXJ0IjoiRW5kIiksaGFuZGxlRXZlbnQ9KGV2ZW50LGluZm8pPT57aWYoInRvdWNoIj09PWV2ZW50LnR5cGV8fGlzRHJhZ0FjdGl2ZSgpKXJldHVybjtsZXQgcHJvcHM9bm9kZS5nZXRQcm9wcygpO25vZGUuYW5pbWF0aW9uU3RhdGUmJnByb3BzLndoaWxlSG92ZXImJm5vZGUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKCJ3aGlsZUhvdmVyIixpc0FjdGl2ZSkscHJvcHNbY2FsbGJhY2tOYW1lXSYmZnJhbWVsb29wX2ZyYW1lLldpLnVwZGF0ZSgoKT0+cHJvcHNbY2FsbGJhY2tOYW1lXShldmVudCxpbmZvKSl9O3JldHVybiBhZGRQb2ludGVyRXZlbnQobm9kZS5jdXJyZW50LCJwb2ludGVyIisoaXNBY3RpdmU/ImVudGVyIjoibGVhdmUiKSxoYW5kbGVFdmVudCx7cGFzc2l2ZTohbm9kZS5nZXRQcm9wcygpW2NhbGxiYWNrTmFtZV19KX1sZXQgaXNOb2RlT3JDaGlsZD0ocGFyZW50LGNoaWxkKT0+ISFjaGlsZCYmKHBhcmVudD09PWNoaWxkfHxpc05vZGVPckNoaWxkKHBhcmVudCxjaGlsZC5wYXJlbnRFbGVtZW50KSk7dmFyIG5vb3A9X193ZWJwYWNrX3JlcXVpcmVfXyg4MTY2Mik7ZnVuY3Rpb24gZmlyZVN5bnRoZXRpY1BvaW50ZXJFdmVudChuYW1lLGhhbmRsZXIpe2lmKCFoYW5kbGVyKXJldHVybjtsZXQgc3ludGhldGljUG9pbnRlckV2ZW50PW5ldyBQb2ludGVyRXZlbnQoInBvaW50ZXIiK25hbWUpO2hhbmRsZXIoc3ludGhldGljUG9pbnRlckV2ZW50LGV4dHJhY3RFdmVudEluZm8oc3ludGhldGljUG9pbnRlckV2ZW50KSl9bGV0IG9ic2VydmVyQ2FsbGJhY2tzPW5ldyBXZWFrTWFwLG9ic2VydmVycz1uZXcgV2Vha01hcCxmaXJlT2JzZXJ2ZXJDYWxsYmFjaz1lbnRyeT0+e2xldCBjYWxsYmFjaz1vYnNlcnZlckNhbGxiYWNrcy5nZXQoZW50cnkudGFyZ2V0KTtjYWxsYmFjayYmY2FsbGJhY2soZW50cnkpfSxmaXJlQWxsT2JzZXJ2ZXJDYWxsYmFja3M9ZW50cmllcz0+e2VudHJpZXMuZm9yRWFjaChmaXJlT2JzZXJ2ZXJDYWxsYmFjayl9LHRocmVzaG9sZE5hbWVzPXtzb21lOjAsYWxsOjF9O3ZhciBpc19rZXlmcmFtZXNfdGFyZ2V0PV9fd2VicGFja19yZXF1aXJlX18oNDg0ODgpO2Z1bmN0aW9uIHNoYWxsb3dDb21wYXJlKG5leHQscHJldil7aWYoIUFycmF5LmlzQXJyYXkocHJldikpcmV0dXJuITE7bGV0IHByZXZMZW5ndGg9cHJldi5sZW5ndGg7aWYocHJldkxlbmd0aCE9PW5leHQubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgaT0wO2k8cHJldkxlbmd0aDtpKyspaWYocHJldltpXSE9PW5leHRbaV0pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gcmVzb2x2ZVZhcmlhbnQodmlzdWFsRWxlbWVudCxkZWZpbml0aW9uLGN1c3RvbSl7bGV0IHByb3BzPXZpc3VhbEVsZW1lbnQuZ2V0UHJvcHMoKTtyZXR1cm4gcmVzb2x2ZVZhcmlhbnRGcm9tUHJvcHMocHJvcHMsZGVmaW5pdGlvbix2b2lkIDAhPT1jdXN0b20/Y3VzdG9tOnByb3BzLmN1c3RvbSxmdW5jdGlvbih2aXN1YWxFbGVtZW50KXtsZXQgY3VycmVudD17fTtyZXR1cm4gdmlzdWFsRWxlbWVudC52YWx1ZXMuZm9yRWFjaCgodmFsdWUsa2V5KT0+Y3VycmVudFtrZXldPXZhbHVlLmdldCgpKSxjdXJyZW50fSh2aXN1YWxFbGVtZW50KSxmdW5jdGlvbih2aXN1YWxFbGVtZW50KXtsZXQgdmVsb2NpdHk9e307cmV0dXJuIHZpc3VhbEVsZW1lbnQudmFsdWVzLmZvckVhY2goKHZhbHVlLGtleSk9PnZlbG9jaXR5W2tleV09dmFsdWUuZ2V0VmVsb2NpdHkoKSksdmVsb2NpdHl9KHZpc3VhbEVsZW1lbnQpKX1sZXQgb3B0aW1pemVkQXBwZWFyRGF0YUF0dHJpYnV0ZT0iZGF0YS0iK2NhbWVsVG9EYXNoKCJmcmFtZXJBcHBlYXJJZCIpO3ZhciBtb3Rpb25fdmFsdWU9X193ZWJwYWNrX3JlcXVpcmVfXyg2MTMxMik7ZnVuY3Rpb24gaXNXaWxsQ2hhbmdlTW90aW9uVmFsdWUodmFsdWUpe3JldHVybiBCb29sZWFuKCgwLGlzX21vdGlvbl92YWx1ZS5pKSh2YWx1ZSkmJnZhbHVlLmFkZCl9bGV0IGlzTnVtZXJpY2FsU3RyaW5nPXY9Pi9eXC0/XGQqXC4/XGQrJC8udGVzdCh2KTt2YXIgaXNfemVyb192YWx1ZV9zdHJpbmc9X193ZWJwYWNrX3JlcXVpcmVfXygzMDY4MSkscmVzb2x2ZV92YWx1ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDg3MTUpLGVzX3ZhbHVlPV9fd2VicGFja19yZXF1aXJlX18oMzMyMzQpLGNvbXBsZXg9X193ZWJwYWNrX3JlcXVpcmVfXyg1MTU1MCksYW5pbWF0YWJsZV9ub25lPV9fd2VicGFja19yZXF1aXJlX18oNzkxMzUpLGNvbG9yPV9fd2VicGFja19yZXF1aXJlX18oODUzODUpLG51bWJlcnM9X193ZWJwYWNrX3JlcXVpcmVfXyg2MTY0OSk7bGV0IHRlc3RWYWx1ZVR5cGU9dj0+dHlwZT0+dHlwZS50ZXN0KHYpLGRpbWVuc2lvblZhbHVlVHlwZXM9W251bWJlcnMuUngsdW5pdHMucHgsdW5pdHMuYVEsdW5pdHMuUlcsdW5pdHMudncsdW5pdHMudmgse3Rlc3Q6dj0+ImF1dG8iPT09dixwYXJzZTp2PT52fV0sZmluZERpbWVuc2lvblZhbHVlVHlwZT12PT5kaW1lbnNpb25WYWx1ZVR5cGVzLmZpbmQodGVzdFZhbHVlVHlwZSh2KSksdmFsdWVUeXBlcz1bLi4uZGltZW5zaW9uVmFsdWVUeXBlcyxjb2xvci4kLGNvbXBsZXguUF0sZmluZFZhbHVlVHlwZT12PT52YWx1ZVR5cGVzLmZpbmQodGVzdFZhbHVlVHlwZSh2KSk7ZnVuY3Rpb24gYW5pbWF0ZVRhcmdldCh2aXN1YWxFbGVtZW50LGRlZmluaXRpb24se2RlbGF5PTAsdHJhbnNpdGlvbk92ZXJyaWRlLHR5cGV9PXt9KXtsZXR7dHJhbnNpdGlvbj12aXN1YWxFbGVtZW50LmdldERlZmF1bHRUcmFuc2l0aW9uKCksdHJhbnNpdGlvbkVuZCwuLi50YXJnZXR9PXZpc3VhbEVsZW1lbnQubWFrZVRhcmdldEFuaW1hdGFibGUoZGVmaW5pdGlvbiksd2lsbENoYW5nZT12aXN1YWxFbGVtZW50LmdldFZhbHVlKCJ3aWxsQ2hhbmdlIik7dHJhbnNpdGlvbk92ZXJyaWRlJiYodHJhbnNpdGlvbj10cmFuc2l0aW9uT3ZlcnJpZGUpO2xldCBhbmltYXRpb25zPVtdLGFuaW1hdGlvblR5cGVTdGF0ZT10eXBlJiZ2aXN1YWxFbGVtZW50LmFuaW1hdGlvblN0YXRlJiZ2aXN1YWxFbGVtZW50LmFuaW1hdGlvblN0YXRlLmdldFN0YXRlKClbdHlwZV07Zm9yKGxldCBrZXkgaW4gdGFyZ2V0KXtsZXQgdmFsdWU9dmlzdWFsRWxlbWVudC5nZXRWYWx1ZShrZXkpLHZhbHVlVGFyZ2V0PXRhcmdldFtrZXldO2lmKCF2YWx1ZXx8dm9pZCAwPT09dmFsdWVUYXJnZXR8fGFuaW1hdGlvblR5cGVTdGF0ZSYmZnVuY3Rpb24oe3Byb3RlY3RlZEtleXMsbmVlZHNBbmltYXRpbmd9LGtleSl7bGV0IHNob3VsZEJsb2NrPXByb3RlY3RlZEtleXMuaGFzT3duUHJvcGVydHkoa2V5KSYmITAhPT1uZWVkc0FuaW1hdGluZ1trZXldO3JldHVybiBuZWVkc0FuaW1hdGluZ1trZXldPSExLHNob3VsZEJsb2NrfShhbmltYXRpb25UeXBlU3RhdGUsa2V5KSljb250aW51ZTtsZXQgdmFsdWVUcmFuc2l0aW9uPXtkZWxheSxlbGFwc2VkOjAsLi4udHJhbnNpdGlvbn07aWYod2luZG93LkhhbmRvZmZBcHBlYXJBbmltYXRpb25zJiYhdmFsdWUuaGFzQW5pbWF0ZWQpe2xldCBhcHBlYXJJZD12aXN1YWxFbGVtZW50LmdldFByb3BzKClbb3B0aW1pemVkQXBwZWFyRGF0YUF0dHJpYnV0ZV07YXBwZWFySWQmJih2YWx1ZVRyYW5zaXRpb24uZWxhcHNlZD13aW5kb3cuSGFuZG9mZkFwcGVhckFuaW1hdGlvbnMoYXBwZWFySWQsa2V5LHZhbHVlLGZyYW1lbG9vcF9mcmFtZS5XaSksdmFsdWVUcmFuc2l0aW9uLnN5bmNTdGFydD0hMCl9dmFsdWUuc3RhcnQoKDAsbW90aW9uX3ZhbHVlLnYpKGtleSx2YWx1ZSx2YWx1ZVRhcmdldCx2aXN1YWxFbGVtZW50LnNob3VsZFJlZHVjZU1vdGlvbiYmdXRpbHNfdHJhbnNmb3JtLkcuaGFzKGtleSk/e3R5cGU6ITF9OnZhbHVlVHJhbnNpdGlvbikpO2xldCBhbmltYXRpb249dmFsdWUuYW5pbWF0aW9uO2lzV2lsbENoYW5nZU1vdGlvblZhbHVlKHdpbGxDaGFuZ2UpJiYod2lsbENoYW5nZS5hZGQoa2V5KSxhbmltYXRpb24udGhlbigoKT0+d2lsbENoYW5nZS5yZW1vdmUoa2V5KSkpLGFuaW1hdGlvbnMucHVzaChhbmltYXRpb24pfXJldHVybiB0cmFuc2l0aW9uRW5kJiZQcm9taXNlLmFsbChhbmltYXRpb25zKS50aGVuKCgpPT57dHJhbnNpdGlvbkVuZCYmZnVuY3Rpb24odmlzdWFsRWxlbWVudCxkZWZpbml0aW9uKXtsZXQgcmVzb2x2ZWQ9cmVzb2x2ZVZhcmlhbnQodmlzdWFsRWxlbWVudCxkZWZpbml0aW9uKSx7dHJhbnNpdGlvbkVuZD17fSx0cmFuc2l0aW9uPXt9LC4uLnRhcmdldH09cmVzb2x2ZWQ/dmlzdWFsRWxlbWVudC5tYWtlVGFyZ2V0QW5pbWF0YWJsZShyZXNvbHZlZCwhMSk6e307Zm9yKGxldCBrZXkgaW4gdGFyZ2V0PXsuLi50YXJnZXQsLi4udHJhbnNpdGlvbkVuZH0pe3ZhciBrZXkxO2xldCB2YWx1ZT0oMCxyZXNvbHZlX3ZhbHVlLlkpKHRhcmdldFtrZXldKTtrZXkxPWtleSx2aXN1YWxFbGVtZW50Lmhhc1ZhbHVlKGtleTEpP3Zpc3VhbEVsZW1lbnQuZ2V0VmFsdWUoa2V5MSkuc2V0KHZhbHVlKTp2aXN1YWxFbGVtZW50LmFkZFZhbHVlKGtleTEsKDAsZXNfdmFsdWUuQlgpKHZhbHVlKSl9fSh2aXN1YWxFbGVtZW50LHRyYW5zaXRpb25FbmQpfSksYW5pbWF0aW9uc31mdW5jdGlvbiBhbmltYXRlVmFyaWFudCh2aXN1YWxFbGVtZW50LHZhcmlhbnQsb3B0aW9ucz17fSl7bGV0IHJlc29sdmVkPXJlc29sdmVWYXJpYW50KHZpc3VhbEVsZW1lbnQsdmFyaWFudCxvcHRpb25zLmN1c3RvbSkse3RyYW5zaXRpb249dmlzdWFsRWxlbWVudC5nZXREZWZhdWx0VHJhbnNpdGlvbigpfHx7fX09cmVzb2x2ZWR8fHt9O29wdGlvbnMudHJhbnNpdGlvbk92ZXJyaWRlJiYodHJhbnNpdGlvbj1vcHRpb25zLnRyYW5zaXRpb25PdmVycmlkZSk7bGV0IGdldEFuaW1hdGlvbj1yZXNvbHZlZD8oKT0+UHJvbWlzZS5hbGwoYW5pbWF0ZVRhcmdldCh2aXN1YWxFbGVtZW50LHJlc29sdmVkLG9wdGlvbnMpKTooKT0+UHJvbWlzZS5yZXNvbHZlKCksZ2V0Q2hpbGRBbmltYXRpb25zPXZpc3VhbEVsZW1lbnQudmFyaWFudENoaWxkcmVuJiZ2aXN1YWxFbGVtZW50LnZhcmlhbnRDaGlsZHJlbi5zaXplPyhmb3J3YXJkRGVsYXk9MCk9PntsZXR7ZGVsYXlDaGlsZHJlbj0wLHN0YWdnZXJDaGlsZHJlbixzdGFnZ2VyRGlyZWN0aW9ufT10cmFuc2l0aW9uO3JldHVybiBmdW5jdGlvbih2aXN1YWxFbGVtZW50LHZhcmlhbnQsZGVsYXlDaGlsZHJlbj0wLHN0YWdnZXJDaGlsZHJlbj0wLHN0YWdnZXJEaXJlY3Rpb249MSxvcHRpb25zKXtsZXQgYW5pbWF0aW9ucz1bXSxtYXhTdGFnZ2VyRHVyYXRpb249KHZpc3VhbEVsZW1lbnQudmFyaWFudENoaWxkcmVuLnNpemUtMSkqc3RhZ2dlckNoaWxkcmVuLGdlbmVyYXRlU3RhZ2dlckR1cmF0aW9uPTE9PT1zdGFnZ2VyRGlyZWN0aW9uPyhpPTApPT5pKnN0YWdnZXJDaGlsZHJlbjooaT0wKT0+bWF4U3RhZ2dlckR1cmF0aW9uLWkqc3RhZ2dlckNoaWxkcmVuO3JldHVybiBBcnJheS5mcm9tKHZpc3VhbEVsZW1lbnQudmFyaWFudENoaWxkcmVuKS5zb3J0KHNvcnRCeVRyZWVPcmRlcikuZm9yRWFjaCgoY2hpbGQsaSk9PntjaGlsZC5ub3RpZnkoIkFuaW1hdGlvblN0YXJ0Iix2YXJpYW50KSxhbmltYXRpb25zLnB1c2goYW5pbWF0ZVZhcmlhbnQoY2hpbGQsdmFyaWFudCx7Li4ub3B0aW9ucyxkZWxheTpkZWxheUNoaWxkcmVuK2dlbmVyYXRlU3RhZ2dlckR1cmF0aW9uKGkpfSkudGhlbigoKT0+Y2hpbGQubm90aWZ5KCJBbmltYXRpb25Db21wbGV0ZSIsdmFyaWFudCkpKX0pLFByb21pc2UuYWxsKGFuaW1hdGlvbnMpfSh2aXN1YWxFbGVtZW50LHZhcmlhbnQsZGVsYXlDaGlsZHJlbitmb3J3YXJkRGVsYXksc3RhZ2dlckNoaWxkcmVuLHN0YWdnZXJEaXJlY3Rpb24sb3B0aW9ucyl9OigpPT5Qcm9taXNlLnJlc29sdmUoKSx7d2hlbn09dHJhbnNpdGlvbjtpZighd2hlbilyZXR1cm4gUHJvbWlzZS5hbGwoW2dldEFuaW1hdGlvbigpLGdldENoaWxkQW5pbWF0aW9ucyhvcHRpb25zLmRlbGF5KV0pO3tsZXRbZmlyc3QsbGFzdF09ImJlZm9yZUNoaWxkcmVuIj09PXdoZW4/W2dldEFuaW1hdGlvbixnZXRDaGlsZEFuaW1hdGlvbnNdOltnZXRDaGlsZEFuaW1hdGlvbnMsZ2V0QW5pbWF0aW9uXTtyZXR1cm4gZmlyc3QoKS50aGVuKCgpPT5sYXN0KCkpfX1mdW5jdGlvbiBzb3J0QnlUcmVlT3JkZXIoYSxiKXtyZXR1cm4gYS5zb3J0Tm9kZVBvc2l0aW9uKGIpfWxldCByZXZlcnNlUHJpb3JpdHlPcmRlcj1bLi4udmFyaWFudFByaW9yaXR5T3JkZXJdLnJldmVyc2UoKSxudW1BbmltYXRpb25UeXBlcz12YXJpYW50UHJpb3JpdHlPcmRlci5sZW5ndGg7ZnVuY3Rpb24gY3JlYXRlVHlwZVN0YXRlKGlzQWN0aXZlPSExKXtyZXR1cm57aXNBY3RpdmUscHJvdGVjdGVkS2V5czp7fSxuZWVkc0FuaW1hdGluZzp7fSxwcmV2UmVzb2x2ZWRWYWx1ZXM6e319fWxldCBpZD0wO3ZhciBlcnJvcnM9X193ZWJwYWNrX3JlcXVpcmVfXyg0NTQ4NyksdGltZV9jb252ZXJzaW9uPV9fd2VicGFja19yZXF1aXJlX18oODY5MTcpO2xldCBkaXN0YW5jZT0oYSxiKT0+TWF0aC5hYnMoYS1iKTtjbGFzcyBQYW5TZXNzaW9ue2NvbnN0cnVjdG9yKGV2ZW50LGhhbmRsZXJzLHt0cmFuc2Zvcm1QYWdlUG9pbnR9PXt9KXtpZih0aGlzLnN0YXJ0RXZlbnQ9bnVsbCx0aGlzLmxhc3RNb3ZlRXZlbnQ9bnVsbCx0aGlzLmxhc3RNb3ZlRXZlbnRJbmZvPW51bGwsdGhpcy5oYW5kbGVycz17fSx0aGlzLnVwZGF0ZVBvaW50PSgpPT57aWYoISh0aGlzLmxhc3RNb3ZlRXZlbnQmJnRoaXMubGFzdE1vdmVFdmVudEluZm8pKXJldHVybjtsZXQgaW5mbz1nZXRQYW5JbmZvKHRoaXMubGFzdE1vdmVFdmVudEluZm8sdGhpcy5oaXN0b3J5KSxpc1BhblN0YXJ0ZWQ9bnVsbCE9PXRoaXMuc3RhcnRFdmVudCxpc0Rpc3RhbmNlUGFzdFRocmVzaG9sZD1mdW5jdGlvbihhLGIpe2xldCB4RGVsdGE9ZGlzdGFuY2UoYS54LGIueCkseURlbHRhPWRpc3RhbmNlKGEueSxiLnkpO3JldHVybiBNYXRoLnNxcnQoeERlbHRhKioyK3lEZWx0YSoqMil9KGluZm8ub2Zmc2V0LHt4OjAseTowfSk+PTM7aWYoIWlzUGFuU3RhcnRlZCYmIWlzRGlzdGFuY2VQYXN0VGhyZXNob2xkKXJldHVybjtsZXR7cG9pbnR9PWluZm8se3RpbWVzdGFtcH09ZnJhbWVsb29wX2ZyYW1lLncwO3RoaXMuaGlzdG9yeS5wdXNoKHsuLi5wb2ludCx0aW1lc3RhbXB9KTtsZXR7b25TdGFydCxvbk1vdmV9PXRoaXMuaGFuZGxlcnM7aXNQYW5TdGFydGVkfHwob25TdGFydCYmb25TdGFydCh0aGlzLmxhc3RNb3ZlRXZlbnQsaW5mbyksdGhpcy5zdGFydEV2ZW50PXRoaXMubGFzdE1vdmVFdmVudCksb25Nb3ZlJiZvbk1vdmUodGhpcy5sYXN0TW92ZUV2ZW50LGluZm8pfSx0aGlzLmhhbmRsZVBvaW50ZXJNb3ZlPShldmVudCxpbmZvKT0+e3RoaXMubGFzdE1vdmVFdmVudD1ldmVudCx0aGlzLmxhc3RNb3ZlRXZlbnRJbmZvPXRyYW5zZm9ybVBvaW50KGluZm8sdGhpcy50cmFuc2Zvcm1QYWdlUG9pbnQpLGZyYW1lbG9vcF9mcmFtZS5XaS51cGRhdGUodGhpcy51cGRhdGVQb2ludCwhMCl9LHRoaXMuaGFuZGxlUG9pbnRlclVwPShldmVudCxpbmZvKT0+e2lmKHRoaXMuZW5kKCksISh0aGlzLmxhc3RNb3ZlRXZlbnQmJnRoaXMubGFzdE1vdmVFdmVudEluZm8pKXJldHVybjtsZXR7b25FbmQsb25TZXNzaW9uRW5kfT10aGlzLmhhbmRsZXJzLHBhbkluZm89Z2V0UGFuSW5mbygicG9pbnRlcmNhbmNlbCI9PT1ldmVudC50eXBlP3RoaXMubGFzdE1vdmVFdmVudEluZm86dHJhbnNmb3JtUG9pbnQoaW5mbyx0aGlzLnRyYW5zZm9ybVBhZ2VQb2ludCksdGhpcy5oaXN0b3J5KTt0aGlzLnN0YXJ0RXZlbnQmJm9uRW5kJiZvbkVuZChldmVudCxwYW5JbmZvKSxvblNlc3Npb25FbmQmJm9uU2Vzc2lvbkVuZChldmVudCxwYW5JbmZvKX0sIWlzUHJpbWFyeVBvaW50ZXIoZXZlbnQpKXJldHVybjt0aGlzLmhhbmRsZXJzPWhhbmRsZXJzLHRoaXMudHJhbnNmb3JtUGFnZVBvaW50PXRyYW5zZm9ybVBhZ2VQb2ludDtsZXQgaW5mbz1leHRyYWN0RXZlbnRJbmZvKGV2ZW50KSxpbml0aWFsSW5mbz10cmFuc2Zvcm1Qb2ludChpbmZvLHRoaXMudHJhbnNmb3JtUGFnZVBvaW50KSx7cG9pbnR9PWluaXRpYWxJbmZvLHt0aW1lc3RhbXB9PWZyYW1lbG9vcF9mcmFtZS53MDt0aGlzLmhpc3Rvcnk9W3suLi5wb2ludCx0aW1lc3RhbXB9XTtsZXR7b25TZXNzaW9uU3RhcnR9PWhhbmRsZXJzO29uU2Vzc2lvblN0YXJ0JiZvblNlc3Npb25TdGFydChldmVudCxnZXRQYW5JbmZvKGluaXRpYWxJbmZvLHRoaXMuaGlzdG9yeSkpLHRoaXMucmVtb3ZlTGlzdGVuZXJzPSgwLHBpcGUueikoYWRkUG9pbnRlckV2ZW50KHdpbmRvdywicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlUG9pbnRlck1vdmUpLGFkZFBvaW50ZXJFdmVudCh3aW5kb3csInBvaW50ZXJ1cCIsdGhpcy5oYW5kbGVQb2ludGVyVXApLGFkZFBvaW50ZXJFdmVudCh3aW5kb3csInBvaW50ZXJjYW5jZWwiLHRoaXMuaGFuZGxlUG9pbnRlclVwKSl9dXBkYXRlSGFuZGxlcnMoaGFuZGxlcnMpe3RoaXMuaGFuZGxlcnM9aGFuZGxlcnN9ZW5kKCl7dGhpcy5yZW1vdmVMaXN0ZW5lcnMmJnRoaXMucmVtb3ZlTGlzdGVuZXJzKCksKDAsZnJhbWVsb29wX2ZyYW1lLlBuKSh0aGlzLnVwZGF0ZVBvaW50KX19ZnVuY3Rpb24gdHJhbnNmb3JtUG9pbnQoaW5mbyx0cmFuc2Zvcm1QYWdlUG9pbnQpe3JldHVybiB0cmFuc2Zvcm1QYWdlUG9pbnQ/e3BvaW50OnRyYW5zZm9ybVBhZ2VQb2ludChpbmZvLnBvaW50KX06aW5mb31mdW5jdGlvbiBzdWJ0cmFjdFBvaW50KGEsYil7cmV0dXJue3g6YS54LWIueCx5OmEueS1iLnl9fWZ1bmN0aW9uIGdldFBhbkluZm8oe3BvaW50fSxoaXN0b3J5KXtyZXR1cm57cG9pbnQsZGVsdGE6c3VidHJhY3RQb2ludChwb2ludCxsYXN0RGV2aWNlUG9pbnQoaGlzdG9yeSkpLG9mZnNldDpzdWJ0cmFjdFBvaW50KHBvaW50LGhpc3RvcnlbMF0pLHZlbG9jaXR5OmZ1bmN0aW9uKGhpc3RvcnksdGltZURlbHRhKXtpZihoaXN0b3J5Lmxlbmd0aDwyKXJldHVybnt4OjAseTowfTtsZXQgaT1oaXN0b3J5Lmxlbmd0aC0xLHRpbWVzdGFtcGVkUG9pbnQ9bnVsbCxsYXN0UG9pbnQ9bGFzdERldmljZVBvaW50KGhpc3RvcnkpO2Zvcig7aT49MCYmKHRpbWVzdGFtcGVkUG9pbnQ9aGlzdG9yeVtpXSwhKGxhc3RQb2ludC50aW1lc3RhbXAtdGltZXN0YW1wZWRQb2ludC50aW1lc3RhbXA+KDAsdGltZV9jb252ZXJzaW9uLncpKC4xKSkpOylpLS07aWYoIXRpbWVzdGFtcGVkUG9pbnQpcmV0dXJue3g6MCx5OjB9O2xldCB0aW1lPSgwLHRpbWVfY29udmVyc2lvbi5YKShsYXN0UG9pbnQudGltZXN0YW1wLXRpbWVzdGFtcGVkUG9pbnQudGltZXN0YW1wKTtpZigwPT09dGltZSlyZXR1cm57eDowLHk6MH07bGV0IGN1cnJlbnRWZWxvY2l0eT17eDoobGFzdFBvaW50LngtdGltZXN0YW1wZWRQb2ludC54KS90aW1lLHk6KGxhc3RQb2ludC55LXRpbWVzdGFtcGVkUG9pbnQueSkvdGltZX07cmV0dXJuIGN1cnJlbnRWZWxvY2l0eS54PT09MS8wJiYoY3VycmVudFZlbG9jaXR5Lng9MCksY3VycmVudFZlbG9jaXR5Lnk9PT0xLzAmJihjdXJyZW50VmVsb2NpdHkueT0wKSxjdXJyZW50VmVsb2NpdHl9KGhpc3RvcnksMCl9fWZ1bmN0aW9uIGxhc3REZXZpY2VQb2ludChoaXN0b3J5KXtyZXR1cm4gaGlzdG9yeVtoaXN0b3J5Lmxlbmd0aC0xXX12YXIgcHJvZ3Jlc3M9X193ZWJwYWNrX3JlcXVpcmVfXygyMzk2NyksZGVsdGFfY2FsYz1fX3dlYnBhY2tfcmVxdWlyZV9fKDE2NjQ1KSxjbGFtcD1fX3dlYnBhY2tfcmVxdWlyZV9fKDI0MTY5KSxtaXg9X193ZWJwYWNrX3JlcXVpcmVfXyg4MDAyMik7ZnVuY3Rpb24gY2FsY1JlbGF0aXZlQXhpc0NvbnN0cmFpbnRzKGF4aXMsbWluLG1heCl7cmV0dXJue21pbjp2b2lkIDAhPT1taW4/YXhpcy5taW4rbWluOnZvaWQgMCxtYXg6dm9pZCAwIT09bWF4P2F4aXMubWF4K21heC0oYXhpcy5tYXgtYXhpcy5taW4pOnZvaWQgMH19ZnVuY3Rpb24gY2FsY1ZpZXdwb3J0QXhpc0NvbnN0cmFpbnRzKGxheW91dEF4aXMsY29uc3RyYWludHNBeGlzKXtsZXQgbWluPWNvbnN0cmFpbnRzQXhpcy5taW4tbGF5b3V0QXhpcy5taW4sbWF4PWNvbnN0cmFpbnRzQXhpcy5tYXgtbGF5b3V0QXhpcy5tYXg7cmV0dXJuIGNvbnN0cmFpbnRzQXhpcy5tYXgtY29uc3RyYWludHNBeGlzLm1pbjxsYXlvdXRBeGlzLm1heC1sYXlvdXRBeGlzLm1pbiYmKFttaW4sbWF4XT1bbWF4LG1pbl0pLHttaW4sbWF4fX1mdW5jdGlvbiByZXNvbHZlQXhpc0VsYXN0aWMoZHJhZ0VsYXN0aWMsbWluTGFiZWwsbWF4TGFiZWwpe3JldHVybnttaW46cmVzb2x2ZVBvaW50RWxhc3RpYyhkcmFnRWxhc3RpYyxtaW5MYWJlbCksbWF4OnJlc29sdmVQb2ludEVsYXN0aWMoZHJhZ0VsYXN0aWMsbWF4TGFiZWwpfX1mdW5jdGlvbiByZXNvbHZlUG9pbnRFbGFzdGljKGRyYWdFbGFzdGljLGxhYmVsKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGRyYWdFbGFzdGljP2RyYWdFbGFzdGljOmRyYWdFbGFzdGljW2xhYmVsXXx8MH12YXIgbW9kZWxzPV9fd2VicGFja19yZXF1aXJlX18oNjE1MTIpLGVhY2hfYXhpcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDkxNzMwKTtmdW5jdGlvbiBjb252ZXJ0Qm91bmRpbmdCb3hUb0JveCh7dG9wLGxlZnQscmlnaHQsYm90dG9tfSl7cmV0dXJue3g6e21pbjpsZWZ0LG1heDpyaWdodH0seTp7bWluOnRvcCxtYXg6Ym90dG9tfX19dmFyIGRlbHRhX2FwcGx5PV9fd2VicGFja19yZXF1aXJlX18oMTZlMyk7ZnVuY3Rpb24gbWVhc3VyZVZpZXdwb3J0Qm94KGluc3RhbmNlLHRyYW5zZm9ybVBvaW50KXtyZXR1cm4gY29udmVydEJvdW5kaW5nQm94VG9Cb3goZnVuY3Rpb24ocG9pbnQsdHJhbnNmb3JtUG9pbnQpe2lmKCF0cmFuc2Zvcm1Qb2ludClyZXR1cm4gcG9pbnQ7bGV0IHRvcExlZnQ9dHJhbnNmb3JtUG9pbnQoe3g6cG9pbnQubGVmdCx5OnBvaW50LnRvcH0pLGJvdHRvbVJpZ2h0PXRyYW5zZm9ybVBvaW50KHt4OnBvaW50LnJpZ2h0LHk6cG9pbnQuYm90dG9tfSk7cmV0dXJue3RvcDp0b3BMZWZ0LnksbGVmdDp0b3BMZWZ0LngsYm90dG9tOmJvdHRvbVJpZ2h0LnkscmlnaHQ6Ym90dG9tUmlnaHQueH19KGluc3RhbmNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHRyYW5zZm9ybVBvaW50KSl9bGV0IGVsZW1lbnREcmFnQ29udHJvbHM9bmV3IFdlYWtNYXA7Y2xhc3MgVmlzdWFsRWxlbWVudERyYWdDb250cm9sc3tjb25zdHJ1Y3Rvcih2aXN1YWxFbGVtZW50KXt0aGlzLm9wZW5HbG9iYWxMb2NrPW51bGwsdGhpcy5pc0RyYWdnaW5nPSExLHRoaXMuY3VycmVudERpcmVjdGlvbj1udWxsLHRoaXMub3JpZ2luUG9pbnQ9e3g6MCx5OjB9LHRoaXMuY29uc3RyYWludHM9ITEsdGhpcy5oYXNNdXRhdGVkQ29uc3RyYWludHM9ITEsdGhpcy5lbGFzdGljPSgwLG1vZGVscy5kTykoKSx0aGlzLnZpc3VhbEVsZW1lbnQ9dmlzdWFsRWxlbWVudH1zdGFydChvcmlnaW5FdmVudCx7c25hcFRvQ3Vyc29yPSExfT17fSl7bGV0e3ByZXNlbmNlQ29udGV4dH09dGhpcy52aXN1YWxFbGVtZW50O2lmKHByZXNlbmNlQ29udGV4dCYmITE9PT1wcmVzZW5jZUNvbnRleHQuaXNQcmVzZW50KXJldHVybjtsZXQgb25TZXNzaW9uU3RhcnQ9ZXZlbnQ9Pnt0aGlzLnN0b3BBbmltYXRpb24oKSxzbmFwVG9DdXJzb3ImJnRoaXMuc25hcFRvQ3Vyc29yKGV4dHJhY3RFdmVudEluZm8oZXZlbnQsInBhZ2UiKS5wb2ludCl9LG9uU3RhcnQ9KGV2ZW50LGluZm8pPT57bGV0e2RyYWcsZHJhZ1Byb3BhZ2F0aW9uLG9uRHJhZ1N0YXJ0fT10aGlzLmdldFByb3BzKCk7aWYoZHJhZyYmIWRyYWdQcm9wYWdhdGlvbiYmKHRoaXMub3Blbkdsb2JhbExvY2smJnRoaXMub3Blbkdsb2JhbExvY2soKSx0aGlzLm9wZW5HbG9iYWxMb2NrPWdldEdsb2JhbExvY2soZHJhZyksIXRoaXMub3Blbkdsb2JhbExvY2spKXJldHVybjt0aGlzLmlzRHJhZ2dpbmc9ITAsdGhpcy5jdXJyZW50RGlyZWN0aW9uPW51bGwsdGhpcy5yZXNvbHZlQ29uc3RyYWludHMoKSx0aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbiYmKHRoaXMudmlzdWFsRWxlbWVudC5wcm9qZWN0aW9uLmlzQW5pbWF0aW9uQmxvY2tlZD0hMCx0aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbi50YXJnZXQ9dm9pZCAwKSwoMCxlYWNoX2F4aXMuVSkoYXhpcz0+e2xldCBjdXJyZW50PXRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpLmdldCgpfHwwO2lmKHVuaXRzLmFRLnRlc3QoY3VycmVudCkpe2xldHtwcm9qZWN0aW9ufT10aGlzLnZpc3VhbEVsZW1lbnQ7aWYocHJvamVjdGlvbiYmcHJvamVjdGlvbi5sYXlvdXQpe2xldCBtZWFzdXJlZEF4aXM9cHJvamVjdGlvbi5sYXlvdXQubGF5b3V0Qm94W2F4aXNdO2lmKG1lYXN1cmVkQXhpcyl7bGV0IGxlbmd0aD0oMCxkZWx0YV9jYWxjLkpPKShtZWFzdXJlZEF4aXMpO2N1cnJlbnQ9bGVuZ3RoKihwYXJzZUZsb2F0KGN1cnJlbnQpLzEwMCl9fX10aGlzLm9yaWdpblBvaW50W2F4aXNdPWN1cnJlbnR9KSxvbkRyYWdTdGFydCYmZnJhbWVsb29wX2ZyYW1lLldpLnVwZGF0ZSgoKT0+b25EcmFnU3RhcnQoZXZlbnQsaW5mbyksITEsITApO2xldHthbmltYXRpb25TdGF0ZX09dGhpcy52aXN1YWxFbGVtZW50O2FuaW1hdGlvblN0YXRlJiZhbmltYXRpb25TdGF0ZS5zZXRBY3RpdmUoIndoaWxlRHJhZyIsITApfSxvbk1vdmU9KGV2ZW50LGluZm8pPT57bGV0e2RyYWdQcm9wYWdhdGlvbixkcmFnRGlyZWN0aW9uTG9jayxvbkRpcmVjdGlvbkxvY2ssb25EcmFnfT10aGlzLmdldFByb3BzKCk7aWYoIWRyYWdQcm9wYWdhdGlvbiYmIXRoaXMub3Blbkdsb2JhbExvY2spcmV0dXJuO2xldHtvZmZzZXR9PWluZm87aWYoZHJhZ0RpcmVjdGlvbkxvY2smJm51bGw9PT10aGlzLmN1cnJlbnREaXJlY3Rpb24pe3RoaXMuY3VycmVudERpcmVjdGlvbj1mdW5jdGlvbihvZmZzZXQsbG9ja1RocmVzaG9sZD0xMCl7bGV0IGRpcmVjdGlvbj1udWxsO3JldHVybiBNYXRoLmFicyhvZmZzZXQueSk+bG9ja1RocmVzaG9sZD9kaXJlY3Rpb249InkiOk1hdGguYWJzKG9mZnNldC54KT5sb2NrVGhyZXNob2xkJiYoZGlyZWN0aW9uPSJ4IiksZGlyZWN0aW9ufShvZmZzZXQpLG51bGwhPT10aGlzLmN1cnJlbnREaXJlY3Rpb24mJm9uRGlyZWN0aW9uTG9jayYmb25EaXJlY3Rpb25Mb2NrKHRoaXMuY3VycmVudERpcmVjdGlvbik7cmV0dXJufXRoaXMudXBkYXRlQXhpcygieCIsaW5mby5wb2ludCxvZmZzZXQpLHRoaXMudXBkYXRlQXhpcygieSIsaW5mby5wb2ludCxvZmZzZXQpLHRoaXMudmlzdWFsRWxlbWVudC5yZW5kZXIoKSxvbkRyYWcmJm9uRHJhZyhldmVudCxpbmZvKX0sb25TZXNzaW9uRW5kPShldmVudCxpbmZvKT0+dGhpcy5zdG9wKGV2ZW50LGluZm8pO3RoaXMucGFuU2Vzc2lvbj1uZXcgUGFuU2Vzc2lvbihvcmlnaW5FdmVudCx7b25TZXNzaW9uU3RhcnQsb25TdGFydCxvbk1vdmUsb25TZXNzaW9uRW5kfSx7dHJhbnNmb3JtUGFnZVBvaW50OnRoaXMudmlzdWFsRWxlbWVudC5nZXRUcmFuc2Zvcm1QYWdlUG9pbnQoKX0pfXN0b3AoZXZlbnQsaW5mbyl7bGV0IGlzRHJhZ2dpbmc9dGhpcy5pc0RyYWdnaW5nO2lmKHRoaXMuY2FuY2VsKCksIWlzRHJhZ2dpbmcpcmV0dXJuO2xldHt2ZWxvY2l0eX09aW5mbzt0aGlzLnN0YXJ0QW5pbWF0aW9uKHZlbG9jaXR5KTtsZXR7b25EcmFnRW5kfT10aGlzLmdldFByb3BzKCk7b25EcmFnRW5kJiZmcmFtZWxvb3BfZnJhbWUuV2kudXBkYXRlKCgpPT5vbkRyYWdFbmQoZXZlbnQsaW5mbykpfWNhbmNlbCgpe3RoaXMuaXNEcmFnZ2luZz0hMTtsZXR7cHJvamVjdGlvbixhbmltYXRpb25TdGF0ZX09dGhpcy52aXN1YWxFbGVtZW50O3Byb2plY3Rpb24mJihwcm9qZWN0aW9uLmlzQW5pbWF0aW9uQmxvY2tlZD0hMSksdGhpcy5wYW5TZXNzaW9uJiZ0aGlzLnBhblNlc3Npb24uZW5kKCksdGhpcy5wYW5TZXNzaW9uPXZvaWQgMDtsZXR7ZHJhZ1Byb3BhZ2F0aW9ufT10aGlzLmdldFByb3BzKCk7IWRyYWdQcm9wYWdhdGlvbiYmdGhpcy5vcGVuR2xvYmFsTG9jayYmKHRoaXMub3Blbkdsb2JhbExvY2soKSx0aGlzLm9wZW5HbG9iYWxMb2NrPW51bGwpLGFuaW1hdGlvblN0YXRlJiZhbmltYXRpb25TdGF0ZS5zZXRBY3RpdmUoIndoaWxlRHJhZyIsITEpfXVwZGF0ZUF4aXMoYXhpcyxfcG9pbnQsb2Zmc2V0KXtsZXR7ZHJhZ309dGhpcy5nZXRQcm9wcygpO2lmKCFvZmZzZXR8fCFzaG91bGREcmFnKGF4aXMsZHJhZyx0aGlzLmN1cnJlbnREaXJlY3Rpb24pKXJldHVybjtsZXQgYXhpc1ZhbHVlPXRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpLG5leHQ9dGhpcy5vcmlnaW5Qb2ludFtheGlzXStvZmZzZXRbYXhpc107dGhpcy5jb25zdHJhaW50cyYmdGhpcy5jb25zdHJhaW50c1theGlzXSYmKG5leHQ9ZnVuY3Rpb24ocG9pbnQse21pbixtYXh9LGVsYXN0aWMpe3JldHVybiB2b2lkIDAhPT1taW4mJnBvaW50PG1pbj9wb2ludD1lbGFzdGljPygwLG1peC5DKShtaW4scG9pbnQsZWxhc3RpYy5taW4pOk1hdGgubWF4KHBvaW50LG1pbik6dm9pZCAwIT09bWF4JiZwb2ludD5tYXgmJihwb2ludD1lbGFzdGljPygwLG1peC5DKShtYXgscG9pbnQsZWxhc3RpYy5tYXgpOk1hdGgubWluKHBvaW50LG1heCkpLHBvaW50fShuZXh0LHRoaXMuY29uc3RyYWludHNbYXhpc10sdGhpcy5lbGFzdGljW2F4aXNdKSksYXhpc1ZhbHVlLnNldChuZXh0KX1yZXNvbHZlQ29uc3RyYWludHMoKXtsZXR7ZHJhZ0NvbnN0cmFpbnRzLGRyYWdFbGFzdGljfT10aGlzLmdldFByb3BzKCkse2xheW91dH09dGhpcy52aXN1YWxFbGVtZW50LnByb2plY3Rpb258fHt9LHByZXZDb25zdHJhaW50cz10aGlzLmNvbnN0cmFpbnRzO2RyYWdDb25zdHJhaW50cyYmaXNSZWZPYmplY3QoZHJhZ0NvbnN0cmFpbnRzKT90aGlzLmNvbnN0cmFpbnRzfHwodGhpcy5jb25zdHJhaW50cz10aGlzLnJlc29sdmVSZWZDb25zdHJhaW50cygpKTpkcmFnQ29uc3RyYWludHMmJmxheW91dD90aGlzLmNvbnN0cmFpbnRzPWZ1bmN0aW9uKGxheW91dEJveCx7dG9wLGxlZnQsYm90dG9tLHJpZ2h0fSl7cmV0dXJue3g6Y2FsY1JlbGF0aXZlQXhpc0NvbnN0cmFpbnRzKGxheW91dEJveC54LGxlZnQscmlnaHQpLHk6Y2FsY1JlbGF0aXZlQXhpc0NvbnN0cmFpbnRzKGxheW91dEJveC55LHRvcCxib3R0b20pfX0obGF5b3V0LmxheW91dEJveCxkcmFnQ29uc3RyYWludHMpOnRoaXMuY29uc3RyYWludHM9ITEsdGhpcy5lbGFzdGljPWZ1bmN0aW9uKGRyYWdFbGFzdGljPS4zNSl7cmV0dXJuITE9PT1kcmFnRWxhc3RpYz9kcmFnRWxhc3RpYz0wOiEwPT09ZHJhZ0VsYXN0aWMmJihkcmFnRWxhc3RpYz0uMzUpLHt4OnJlc29sdmVBeGlzRWxhc3RpYyhkcmFnRWxhc3RpYywibGVmdCIsInJpZ2h0IikseTpyZXNvbHZlQXhpc0VsYXN0aWMoZHJhZ0VsYXN0aWMsInRvcCIsImJvdHRvbSIpfX0oZHJhZ0VsYXN0aWMpLHByZXZDb25zdHJhaW50cyE9PXRoaXMuY29uc3RyYWludHMmJmxheW91dCYmdGhpcy5jb25zdHJhaW50cyYmIXRoaXMuaGFzTXV0YXRlZENvbnN0cmFpbnRzJiYoMCxlYWNoX2F4aXMuVSkoYXhpcz0+e3RoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpJiYodGhpcy5jb25zdHJhaW50c1theGlzXT1mdW5jdGlvbihsYXlvdXQsY29uc3RyYWludHMpe2xldCByZWxhdGl2ZUNvbnN0cmFpbnRzPXt9O3JldHVybiB2b2lkIDAhPT1jb25zdHJhaW50cy5taW4mJihyZWxhdGl2ZUNvbnN0cmFpbnRzLm1pbj1jb25zdHJhaW50cy5taW4tbGF5b3V0Lm1pbiksdm9pZCAwIT09Y29uc3RyYWludHMubWF4JiYocmVsYXRpdmVDb25zdHJhaW50cy5tYXg9Y29uc3RyYWludHMubWF4LWxheW91dC5taW4pLHJlbGF0aXZlQ29uc3RyYWludHN9KGxheW91dC5sYXlvdXRCb3hbYXhpc10sdGhpcy5jb25zdHJhaW50c1theGlzXSkpfSl9cmVzb2x2ZVJlZkNvbnN0cmFpbnRzKCl7dmFyIGxheW91dEJveDtsZXR7ZHJhZ0NvbnN0cmFpbnRzOmNvbnN0cmFpbnRzLG9uTWVhc3VyZURyYWdDb25zdHJhaW50c309dGhpcy5nZXRQcm9wcygpO2lmKCFjb25zdHJhaW50c3x8IWlzUmVmT2JqZWN0KGNvbnN0cmFpbnRzKSlyZXR1cm4hMTtsZXQgY29uc3RyYWludHNFbGVtZW50PWNvbnN0cmFpbnRzLmN1cnJlbnQ7KDAsZXJyb3JzLmspKG51bGwhPT1jb25zdHJhaW50c0VsZW1lbnQsIklmIGBkcmFnQ29uc3RyYWludHNgIGlzIHNldCBhcyBhIFJlYWN0IHJlZiwgdGhhdCByZWYgbXVzdCBiZSBwYXNzZWQgdG8gYW5vdGhlciBjb21wb25lbnQncyBgcmVmYCBwcm9wLiIpO2xldHtwcm9qZWN0aW9ufT10aGlzLnZpc3VhbEVsZW1lbnQ7aWYoIXByb2plY3Rpb258fCFwcm9qZWN0aW9uLmxheW91dClyZXR1cm4hMTtsZXQgY29uc3RyYWludHNCb3g9ZnVuY3Rpb24oZWxlbWVudCxyb290UHJvamVjdGlvbk5vZGUsdHJhbnNmb3JtUGFnZVBvaW50KXtsZXQgdmlld3BvcnRCb3g9bWVhc3VyZVZpZXdwb3J0Qm94KGVsZW1lbnQsdHJhbnNmb3JtUGFnZVBvaW50KSx7c2Nyb2xsfT1yb290UHJvamVjdGlvbk5vZGU7cmV0dXJuIHNjcm9sbCYmKCgwLGRlbHRhX2FwcGx5LmFtKSh2aWV3cG9ydEJveC54LHNjcm9sbC5vZmZzZXQueCksKDAsZGVsdGFfYXBwbHkuYW0pKHZpZXdwb3J0Qm94Lnksc2Nyb2xsLm9mZnNldC55KSksdmlld3BvcnRCb3h9KGNvbnN0cmFpbnRzRWxlbWVudCxwcm9qZWN0aW9uLnJvb3QsdGhpcy52aXN1YWxFbGVtZW50LmdldFRyYW5zZm9ybVBhZ2VQb2ludCgpKSxtZWFzdXJlZENvbnN0cmFpbnRzPXt4OmNhbGNWaWV3cG9ydEF4aXNDb25zdHJhaW50cygobGF5b3V0Qm94PXByb2plY3Rpb24ubGF5b3V0LmxheW91dEJveCkueCxjb25zdHJhaW50c0JveC54KSx5OmNhbGNWaWV3cG9ydEF4aXNDb25zdHJhaW50cyhsYXlvdXRCb3gueSxjb25zdHJhaW50c0JveC55KX07aWYob25NZWFzdXJlRHJhZ0NvbnN0cmFpbnRzKXtsZXQgdXNlckNvbnN0cmFpbnRzPW9uTWVhc3VyZURyYWdDb25zdHJhaW50cyhmdW5jdGlvbih7eCx5fSl7cmV0dXJue3RvcDp5Lm1pbixyaWdodDp4Lm1heCxib3R0b206eS5tYXgsbGVmdDp4Lm1pbn19KG1lYXN1cmVkQ29uc3RyYWludHMpKTt0aGlzLmhhc011dGF0ZWRDb25zdHJhaW50cz0hIXVzZXJDb25zdHJhaW50cyx1c2VyQ29uc3RyYWludHMmJihtZWFzdXJlZENvbnN0cmFpbnRzPWNvbnZlcnRCb3VuZGluZ0JveFRvQm94KHVzZXJDb25zdHJhaW50cykpfXJldHVybiBtZWFzdXJlZENvbnN0cmFpbnRzfXN0YXJ0QW5pbWF0aW9uKHZlbG9jaXR5KXtsZXR7ZHJhZyxkcmFnTW9tZW50dW0sZHJhZ0VsYXN0aWMsZHJhZ1RyYW5zaXRpb24sZHJhZ1NuYXBUb09yaWdpbixvbkRyYWdUcmFuc2l0aW9uRW5kfT10aGlzLmdldFByb3BzKCksY29uc3RyYWludHM9dGhpcy5jb25zdHJhaW50c3x8e30sbW9tZW50dW1BbmltYXRpb25zPSgwLGVhY2hfYXhpcy5VKShheGlzPT57aWYoIXNob3VsZERyYWcoYXhpcyxkcmFnLHRoaXMuY3VycmVudERpcmVjdGlvbikpcmV0dXJuO2xldCB0cmFuc2l0aW9uPWNvbnN0cmFpbnRzJiZjb25zdHJhaW50c1theGlzXXx8e307ZHJhZ1NuYXBUb09yaWdpbiYmKHRyYW5zaXRpb249e21pbjowLG1heDowfSk7bGV0IGluZXJ0aWE9e3R5cGU6ImluZXJ0aWEiLHZlbG9jaXR5OmRyYWdNb21lbnR1bT92ZWxvY2l0eVtheGlzXTowLGJvdW5jZVN0aWZmbmVzczpkcmFnRWxhc3RpYz8yMDA6MWU2LGJvdW5jZURhbXBpbmc6ZHJhZ0VsYXN0aWM/NDA6MWU3LHRpbWVDb25zdGFudDo3NTAscmVzdERlbHRhOjEscmVzdFNwZWVkOjEwLC4uLmRyYWdUcmFuc2l0aW9uLC4uLnRyYW5zaXRpb259O3JldHVybiB0aGlzLnN0YXJ0QXhpc1ZhbHVlQW5pbWF0aW9uKGF4aXMsaW5lcnRpYSl9KTtyZXR1cm4gUHJvbWlzZS5hbGwobW9tZW50dW1BbmltYXRpb25zKS50aGVuKG9uRHJhZ1RyYW5zaXRpb25FbmQpfXN0YXJ0QXhpc1ZhbHVlQW5pbWF0aW9uKGF4aXMsdHJhbnNpdGlvbil7bGV0IGF4aXNWYWx1ZT10aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShheGlzKTtyZXR1cm4gYXhpc1ZhbHVlLnN0YXJ0KCgwLG1vdGlvbl92YWx1ZS52KShheGlzLGF4aXNWYWx1ZSwwLHRyYW5zaXRpb24pKX1zdG9wQW5pbWF0aW9uKCl7KDAsZWFjaF9heGlzLlUpKGF4aXM9PnRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpLnN0b3AoKSl9Z2V0QXhpc01vdGlvblZhbHVlKGF4aXMpe2xldCBkcmFnS2V5PSJfZHJhZyIrYXhpcy50b1VwcGVyQ2FzZSgpLHByb3BzPXRoaXMudmlzdWFsRWxlbWVudC5nZXRQcm9wcygpLGV4dGVybmFsTW90aW9uVmFsdWU9cHJvcHNbZHJhZ0tleV07cmV0dXJuIGV4dGVybmFsTW90aW9uVmFsdWV8fHRoaXMudmlzdWFsRWxlbWVudC5nZXRWYWx1ZShheGlzLChwcm9wcy5pbml0aWFsP3Byb3BzLmluaXRpYWxbYXhpc106dm9pZCAwKXx8MCl9c25hcFRvQ3Vyc29yKHBvaW50KXsoMCxlYWNoX2F4aXMuVSkoYXhpcz0+e2xldHtkcmFnfT10aGlzLmdldFByb3BzKCk7aWYoIXNob3VsZERyYWcoYXhpcyxkcmFnLHRoaXMuY3VycmVudERpcmVjdGlvbikpcmV0dXJuO2xldHtwcm9qZWN0aW9ufT10aGlzLnZpc3VhbEVsZW1lbnQsYXhpc1ZhbHVlPXRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpO2lmKHByb2plY3Rpb24mJnByb2plY3Rpb24ubGF5b3V0KXtsZXR7bWluLG1heH09cHJvamVjdGlvbi5sYXlvdXQubGF5b3V0Qm94W2F4aXNdO2F4aXNWYWx1ZS5zZXQocG9pbnRbYXhpc10tKDAsbWl4LkMpKG1pbixtYXgsLjUpKX19KX1zY2FsZVBvc2l0aW9uV2l0aGluQ29uc3RyYWludHMoKXtpZighdGhpcy52aXN1YWxFbGVtZW50LmN1cnJlbnQpcmV0dXJuO2xldHtkcmFnLGRyYWdDb25zdHJhaW50c309dGhpcy5nZXRQcm9wcygpLHtwcm9qZWN0aW9ufT10aGlzLnZpc3VhbEVsZW1lbnQ7aWYoIWlzUmVmT2JqZWN0KGRyYWdDb25zdHJhaW50cyl8fCFwcm9qZWN0aW9ufHwhdGhpcy5jb25zdHJhaW50cylyZXR1cm47dGhpcy5zdG9wQW5pbWF0aW9uKCk7bGV0IGJveFByb2dyZXNzPXt4OjAseTowfTsoMCxlYWNoX2F4aXMuVSkoYXhpcz0+e2xldCBheGlzVmFsdWU9dGhpcy5nZXRBeGlzTW90aW9uVmFsdWUoYXhpcyk7aWYoYXhpc1ZhbHVlKXtsZXQgbGF0ZXN0PWF4aXNWYWx1ZS5nZXQoKTtib3hQcm9ncmVzc1theGlzXT1mdW5jdGlvbihzb3VyY2UsdGFyZ2V0KXtsZXQgb3JpZ2luPS41LHNvdXJjZUxlbmd0aD0oMCxkZWx0YV9jYWxjLkpPKShzb3VyY2UpLHRhcmdldExlbmd0aD0oMCxkZWx0YV9jYWxjLkpPKSh0YXJnZXQpO3JldHVybiB0YXJnZXRMZW5ndGg+c291cmNlTGVuZ3RoP29yaWdpbj0oMCxwcm9ncmVzcy5ZKSh0YXJnZXQubWluLHRhcmdldC5tYXgtc291cmNlTGVuZ3RoLHNvdXJjZS5taW4pOnNvdXJjZUxlbmd0aD50YXJnZXRMZW5ndGgmJihvcmlnaW49KDAscHJvZ3Jlc3MuWSkoc291cmNlLm1pbixzb3VyY2UubWF4LXRhcmdldExlbmd0aCx0YXJnZXQubWluKSksKDAsY2xhbXAudSkoMCwxLG9yaWdpbil9KHttaW46bGF0ZXN0LG1heDpsYXRlc3R9LHRoaXMuY29uc3RyYWludHNbYXhpc10pfX0pO2xldHt0cmFuc2Zvcm1UZW1wbGF0ZX09dGhpcy52aXN1YWxFbGVtZW50LmdldFByb3BzKCk7dGhpcy52aXN1YWxFbGVtZW50LmN1cnJlbnQuc3R5bGUudHJhbnNmb3JtPXRyYW5zZm9ybVRlbXBsYXRlP3RyYW5zZm9ybVRlbXBsYXRlKHt9LCIiKToibm9uZSIscHJvamVjdGlvbi5yb290JiZwcm9qZWN0aW9uLnJvb3QudXBkYXRlU2Nyb2xsKCkscHJvamVjdGlvbi51cGRhdGVMYXlvdXQoKSx0aGlzLnJlc29sdmVDb25zdHJhaW50cygpLCgwLGVhY2hfYXhpcy5VKShheGlzPT57aWYoIXNob3VsZERyYWcoYXhpcyxkcmFnLG51bGwpKXJldHVybjtsZXQgYXhpc1ZhbHVlPXRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpLHttaW4sbWF4fT10aGlzLmNvbnN0cmFpbnRzW2F4aXNdO2F4aXNWYWx1ZS5zZXQoKDAsbWl4LkMpKG1pbixtYXgsYm94UHJvZ3Jlc3NbYXhpc10pKX0pfWFkZExpc3RlbmVycygpe2lmKCF0aGlzLnZpc3VhbEVsZW1lbnQuY3VycmVudClyZXR1cm47ZWxlbWVudERyYWdDb250cm9scy5zZXQodGhpcy52aXN1YWxFbGVtZW50LHRoaXMpO2xldCBlbGVtZW50PXRoaXMudmlzdWFsRWxlbWVudC5jdXJyZW50LHN0b3BQb2ludGVyTGlzdGVuZXI9YWRkUG9pbnRlckV2ZW50KGVsZW1lbnQsInBvaW50ZXJkb3duIixldmVudD0+e2xldHtkcmFnLGRyYWdMaXN0ZW5lcj0hMH09dGhpcy5nZXRQcm9wcygpO2RyYWcmJmRyYWdMaXN0ZW5lciYmdGhpcy5zdGFydChldmVudCl9KSxtZWFzdXJlRHJhZ0NvbnN0cmFpbnRzPSgpPT57bGV0e2RyYWdDb25zdHJhaW50c309dGhpcy5nZXRQcm9wcygpO2lzUmVmT2JqZWN0KGRyYWdDb25zdHJhaW50cykmJih0aGlzLmNvbnN0cmFpbnRzPXRoaXMucmVzb2x2ZVJlZkNvbnN0cmFpbnRzKCkpfSx7cHJvamVjdGlvbn09dGhpcy52aXN1YWxFbGVtZW50LHN0b3BNZWFzdXJlTGF5b3V0TGlzdGVuZXI9cHJvamVjdGlvbi5hZGRFdmVudExpc3RlbmVyKCJtZWFzdXJlIixtZWFzdXJlRHJhZ0NvbnN0cmFpbnRzKTtwcm9qZWN0aW9uJiYhcHJvamVjdGlvbi5sYXlvdXQmJihwcm9qZWN0aW9uLnJvb3QmJnByb2plY3Rpb24ucm9vdC51cGRhdGVTY3JvbGwoKSxwcm9qZWN0aW9uLnVwZGF0ZUxheW91dCgpKSxtZWFzdXJlRHJhZ0NvbnN0cmFpbnRzKCk7bGV0IHN0b3BSZXNpemVMaXN0ZW5lcj1hZGREb21FdmVudCh3aW5kb3csInJlc2l6ZSIsKCk9PnRoaXMuc2NhbGVQb3NpdGlvbldpdGhpbkNvbnN0cmFpbnRzKCkpLHN0b3BMYXlvdXRVcGRhdGVMaXN0ZW5lcj1wcm9qZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoImRpZFVwZGF0ZSIsKHtkZWx0YSxoYXNMYXlvdXRDaGFuZ2VkfSk9Pnt0aGlzLmlzRHJhZ2dpbmcmJmhhc0xheW91dENoYW5nZWQmJigoMCxlYWNoX2F4aXMuVSkoYXhpcz0+e2xldCBtb3Rpb25WYWx1ZT10aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShheGlzKTttb3Rpb25WYWx1ZSYmKHRoaXMub3JpZ2luUG9pbnRbYXhpc10rPWRlbHRhW2F4aXNdLnRyYW5zbGF0ZSxtb3Rpb25WYWx1ZS5zZXQobW90aW9uVmFsdWUuZ2V0KCkrZGVsdGFbYXhpc10udHJhbnNsYXRlKSl9KSx0aGlzLnZpc3VhbEVsZW1lbnQucmVuZGVyKCkpfSk7cmV0dXJuKCk9PntzdG9wUmVzaXplTGlzdGVuZXIoKSxzdG9wUG9pbnRlckxpc3RlbmVyKCksc3RvcE1lYXN1cmVMYXlvdXRMaXN0ZW5lcigpLHN0b3BMYXlvdXRVcGRhdGVMaXN0ZW5lciYmc3RvcExheW91dFVwZGF0ZUxpc3RlbmVyKCl9fWdldFByb3BzKCl7bGV0IHByb3BzPXRoaXMudmlzdWFsRWxlbWVudC5nZXRQcm9wcygpLHtkcmFnPSExLGRyYWdEaXJlY3Rpb25Mb2NrPSExLGRyYWdQcm9wYWdhdGlvbj0hMSxkcmFnQ29uc3RyYWludHM9ITEsZHJhZ0VsYXN0aWM9LjM1LGRyYWdNb21lbnR1bT0hMH09cHJvcHM7cmV0dXJuey4uLnByb3BzLGRyYWcsZHJhZ0RpcmVjdGlvbkxvY2ssZHJhZ1Byb3BhZ2F0aW9uLGRyYWdDb25zdHJhaW50cyxkcmFnRWxhc3RpYyxkcmFnTW9tZW50dW19fX1mdW5jdGlvbiBzaG91bGREcmFnKGRpcmVjdGlvbixkcmFnLGN1cnJlbnREaXJlY3Rpb24pe3JldHVybighMD09PWRyYWd8fGRyYWc9PT1kaXJlY3Rpb24pJiYobnVsbD09PWN1cnJlbnREaXJlY3Rpb258fGN1cnJlbnREaXJlY3Rpb249PT1kaXJlY3Rpb24pfWxldCBhc3luY0hhbmRsZXI9aGFuZGxlcj0+KGV2ZW50LGluZm8pPT57aGFuZGxlciYmZnJhbWVsb29wX2ZyYW1lLldpLnVwZGF0ZSgoKT0+aGFuZGxlcihldmVudCxpbmZvKSl9O3ZhciBzdGF0ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDkzMDgzKTtmdW5jdGlvbiBwaXhlbHNUb1BlcmNlbnQocGl4ZWxzLGF4aXMpe3JldHVybiBheGlzLm1heD09PWF4aXMubWluPzA6cGl4ZWxzLyhheGlzLm1heC1heGlzLm1pbikqMTAwfWxldCBjb3JyZWN0Qm9yZGVyUmFkaXVzPXtjb3JyZWN0KGxhdGVzdCxub2RlKXtpZighbm9kZS50YXJnZXQpcmV0dXJuIGxhdGVzdDtpZigic3RyaW5nIj09dHlwZW9mIGxhdGVzdCl7aWYoIXVuaXRzLnB4LnRlc3QobGF0ZXN0KSlyZXR1cm4gbGF0ZXN0O2xhdGVzdD1wYXJzZUZsb2F0KGxhdGVzdCl9bGV0IHg9cGl4ZWxzVG9QZXJjZW50KGxhdGVzdCxub2RlLnRhcmdldC54KSx5PXBpeGVsc1RvUGVyY2VudChsYXRlc3Qsbm9kZS50YXJnZXQueSk7cmV0dXJuYCR7eH0lICR7eX0lYH19O2NsYXNzIE1lYXN1cmVMYXlvdXRXaXRoQ29udGV4dCBleHRlbmRzIHJlYWN0LkNvbXBvbmVudHtjb21wb25lbnREaWRNb3VudCgpe2xldHt2aXN1YWxFbGVtZW50LGxheW91dEdyb3VwLHN3aXRjaExheW91dEdyb3VwLGxheW91dElkfT10aGlzLnByb3BzLHtwcm9qZWN0aW9ufT12aXN1YWxFbGVtZW50OygwLHNjYWxlX2NvcnJlY3Rpb24uQikoZGVmYXVsdFNjYWxlQ29ycmVjdG9ycykscHJvamVjdGlvbiYmKGxheW91dEdyb3VwLmdyb3VwJiZsYXlvdXRHcm91cC5ncm91cC5hZGQocHJvamVjdGlvbiksc3dpdGNoTGF5b3V0R3JvdXAmJnN3aXRjaExheW91dEdyb3VwLnJlZ2lzdGVyJiZsYXlvdXRJZCYmc3dpdGNoTGF5b3V0R3JvdXAucmVnaXN0ZXIocHJvamVjdGlvbikscHJvamVjdGlvbi5yb290LmRpZFVwZGF0ZSgpLHByb2plY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcigiYW5pbWF0aW9uQ29tcGxldGUiLCgpPT57dGhpcy5zYWZlVG9SZW1vdmUoKX0pLHByb2plY3Rpb24uc2V0T3B0aW9ucyh7Li4ucHJvamVjdGlvbi5vcHRpb25zLG9uRXhpdENvbXBsZXRlOigpPT50aGlzLnNhZmVUb1JlbW92ZSgpfSkpLHN0YXRlLlYuaGFzRXZlclVwZGF0ZWQ9ITB9Z2V0U25hcHNob3RCZWZvcmVVcGRhdGUocHJldlByb3BzKXtsZXR7bGF5b3V0RGVwZW5kZW5jeSx2aXN1YWxFbGVtZW50LGRyYWcsaXNQcmVzZW50fT10aGlzLnByb3BzLHByb2plY3Rpb249dmlzdWFsRWxlbWVudC5wcm9qZWN0aW9uO3JldHVybiBwcm9qZWN0aW9uJiYocHJvamVjdGlvbi5pc1ByZXNlbnQ9aXNQcmVzZW50LGRyYWd8fHByZXZQcm9wcy5sYXlvdXREZXBlbmRlbmN5IT09bGF5b3V0RGVwZW5kZW5jeXx8dm9pZCAwPT09bGF5b3V0RGVwZW5kZW5jeT9wcm9qZWN0aW9uLndpbGxVcGRhdGUoKTp0aGlzLnNhZmVUb1JlbW92ZSgpLHByZXZQcm9wcy5pc1ByZXNlbnQ9PT1pc1ByZXNlbnR8fChpc1ByZXNlbnQ/cHJvamVjdGlvbi5wcm9tb3RlKCk6cHJvamVjdGlvbi5yZWxlZ2F0ZSgpfHxmcmFtZWxvb3BfZnJhbWUuV2kucG9zdFJlbmRlcigoKT0+e2xldCBzdGFjaz1wcm9qZWN0aW9uLmdldFN0YWNrKCk7c3RhY2smJnN0YWNrLm1lbWJlcnMubGVuZ3RofHx0aGlzLnNhZmVUb1JlbW92ZSgpfSkpKSxudWxsfWNvbXBvbmVudERpZFVwZGF0ZSgpe2xldHtwcm9qZWN0aW9ufT10aGlzLnByb3BzLnZpc3VhbEVsZW1lbnQ7cHJvamVjdGlvbiYmKHByb2plY3Rpb24ucm9vdC5kaWRVcGRhdGUoKSxxdWV1ZU1pY3JvdGFzaygoKT0+eyFwcm9qZWN0aW9uLmN1cnJlbnRBbmltYXRpb24mJnByb2plY3Rpb24uaXNMZWFkKCkmJnRoaXMuc2FmZVRvUmVtb3ZlKCl9KSl9Y29tcG9uZW50V2lsbFVubW91bnQoKXtsZXR7dmlzdWFsRWxlbWVudCxsYXlvdXRHcm91cCxzd2l0Y2hMYXlvdXRHcm91cDpwcm9tb3RlQ29udGV4dH09dGhpcy5wcm9wcyx7cHJvamVjdGlvbn09dmlzdWFsRWxlbWVudDtwcm9qZWN0aW9uJiYocHJvamVjdGlvbi5zY2hlZHVsZUNoZWNrQWZ0ZXJVbm1vdW50KCksbGF5b3V0R3JvdXAmJmxheW91dEdyb3VwLmdyb3VwJiZsYXlvdXRHcm91cC5ncm91cC5yZW1vdmUocHJvamVjdGlvbikscHJvbW90ZUNvbnRleHQmJnByb21vdGVDb250ZXh0LmRlcmVnaXN0ZXImJnByb21vdGVDb250ZXh0LmRlcmVnaXN0ZXIocHJvamVjdGlvbikpfXNhZmVUb1JlbW92ZSgpe2xldHtzYWZlVG9SZW1vdmV9PXRoaXMucHJvcHM7c2FmZVRvUmVtb3ZlJiZzYWZlVG9SZW1vdmUoKX1yZW5kZXIoKXtyZXR1cm4gbnVsbH19ZnVuY3Rpb24gTWVhc3VyZUxheW91dChwcm9wcyl7bGV0W2lzUHJlc2VudCxzYWZlVG9SZW1vdmVdPWZ1bmN0aW9uKCl7bGV0IGNvbnRleHQ9KDAscmVhY3QudXNlQ29udGV4dCkoY29udGV4dF9QcmVzZW5jZUNvbnRleHQuTyk7aWYobnVsbD09PWNvbnRleHQpcmV0dXJuWyEwLG51bGxdO2xldHtpc1ByZXNlbnQsb25FeGl0Q29tcGxldGUscmVnaXN0ZXJ9PWNvbnRleHQsaWQ9KDAscmVhY3QudXNlSWQpKCk7KDAscmVhY3QudXNlRWZmZWN0KSgoKT0+cmVnaXN0ZXIoaWQpLFtdKTtsZXQgc2FmZVRvUmVtb3ZlPSgpPT5vbkV4aXRDb21wbGV0ZSYmb25FeGl0Q29tcGxldGUoaWQpO3JldHVybiFpc1ByZXNlbnQmJm9uRXhpdENvbXBsZXRlP1shMSxzYWZlVG9SZW1vdmVdOlshMF19KCksbGF5b3V0R3JvdXA9KDAscmVhY3QudXNlQ29udGV4dCkoTGF5b3V0R3JvdXBDb250ZXh0LnApO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KE1lYXN1cmVMYXlvdXRXaXRoQ29udGV4dCx7Li4ucHJvcHMsbGF5b3V0R3JvdXA6bGF5b3V0R3JvdXAsc3dpdGNoTGF5b3V0R3JvdXA6KDAscmVhY3QudXNlQ29udGV4dCkoU3dpdGNoTGF5b3V0R3JvdXBDb250ZXh0KSxpc1ByZXNlbnQ6aXNQcmVzZW50LHNhZmVUb1JlbW92ZTpzYWZlVG9SZW1vdmV9KX1sZXQgZGVmYXVsdFNjYWxlQ29ycmVjdG9ycz17Ym9yZGVyUmFkaXVzOnsuLi5jb3JyZWN0Qm9yZGVyUmFkaXVzLGFwcGx5VG86WyJib3JkZXJUb3BMZWZ0UmFkaXVzIiwiYm9yZGVyVG9wUmlnaHRSYWRpdXMiLCJib3JkZXJCb3R0b21MZWZ0UmFkaXVzIiwiYm9yZGVyQm90dG9tUmlnaHRSYWRpdXMiXX0sYm9yZGVyVG9wTGVmdFJhZGl1czpjb3JyZWN0Qm9yZGVyUmFkaXVzLGJvcmRlclRvcFJpZ2h0UmFkaXVzOmNvcnJlY3RCb3JkZXJSYWRpdXMsYm9yZGVyQm90dG9tTGVmdFJhZGl1czpjb3JyZWN0Qm9yZGVyUmFkaXVzLGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOmNvcnJlY3RCb3JkZXJSYWRpdXMsYm94U2hhZG93Ontjb3JyZWN0KGxhdGVzdCx7dHJlZVNjYWxlLHByb2plY3Rpb25EZWx0YX0pe2xldCBzaGFkb3c9Y29tcGxleC5QLnBhcnNlKGxhdGVzdCk7aWYoc2hhZG93Lmxlbmd0aD41KXJldHVybiBsYXRlc3Q7bGV0IHRlbXBsYXRlPWNvbXBsZXguUC5jcmVhdGVUcmFuc2Zvcm1lcihsYXRlc3QpLG9mZnNldD0ibnVtYmVyIiE9dHlwZW9mIHNoYWRvd1swXT8xOjAseFNjYWxlPXByb2plY3Rpb25EZWx0YS54LnNjYWxlKnRyZWVTY2FsZS54LHlTY2FsZT1wcm9qZWN0aW9uRGVsdGEueS5zY2FsZSp0cmVlU2NhbGUueTtzaGFkb3dbMCtvZmZzZXRdLz14U2NhbGUsc2hhZG93WzErb2Zmc2V0XS89eVNjYWxlO2xldCBhdmVyYWdlU2NhbGU9KDAsbWl4LkMpKHhTY2FsZSx5U2NhbGUsLjUpO3JldHVybiJudW1iZXIiPT10eXBlb2Ygc2hhZG93WzIrb2Zmc2V0XSYmKHNoYWRvd1syK29mZnNldF0vPWF2ZXJhZ2VTY2FsZSksIm51bWJlciI9PXR5cGVvZiBzaGFkb3dbMytvZmZzZXRdJiYoc2hhZG93WzMrb2Zmc2V0XS89YXZlcmFnZVNjYWxlKSx0ZW1wbGF0ZShzaGFkb3cpfX19O3ZhciBjcmVhdGVfcHJvamVjdGlvbl9ub2RlPV9fd2VicGFja19yZXF1aXJlX18oMjMyNjApO2xldCBEb2N1bWVudFByb2plY3Rpb25Ob2RlPSgwLGNyZWF0ZV9wcm9qZWN0aW9uX25vZGUueVYpKHthdHRhY2hSZXNpemVMaXN0ZW5lcjoocmVmLG5vdGlmeSk9PmFkZERvbUV2ZW50KHJlZiwicmVzaXplIixub3RpZnkpLG1lYXN1cmVTY3JvbGw6KCk9Pih7eDpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0LHk6ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3B9KSxjaGVja0lzU2Nyb2xsUm9vdDooKT0+ITB9KSxyb290UHJvamVjdGlvbk5vZGU9e2N1cnJlbnQ6dm9pZCAwfSxIVE1MUHJvamVjdGlvbk5vZGU9KDAsY3JlYXRlX3Byb2plY3Rpb25fbm9kZS55Vikoe21lYXN1cmVTY3JvbGw6aW5zdGFuY2U9Pih7eDppbnN0YW5jZS5zY3JvbGxMZWZ0LHk6aW5zdGFuY2Uuc2Nyb2xsVG9wfSksZGVmYXVsdFBhcmVudCgpe2lmKCFyb290UHJvamVjdGlvbk5vZGUuY3VycmVudCl7bGV0IGRvY3VtZW50Tm9kZT1uZXcgRG9jdW1lbnRQcm9qZWN0aW9uTm9kZSh7fSk7ZG9jdW1lbnROb2RlLm1vdW50KHdpbmRvdyksZG9jdW1lbnROb2RlLnNldE9wdGlvbnMoe2xheW91dFNjcm9sbDohMH0pLHJvb3RQcm9qZWN0aW9uTm9kZS5jdXJyZW50PWRvY3VtZW50Tm9kZX1yZXR1cm4gcm9vdFByb2plY3Rpb25Ob2RlLmN1cnJlbnR9LHJlc2V0VHJhbnNmb3JtKGluc3RhbmNlLHZhbHVlKXtpbnN0YW5jZS5zdHlsZS50cmFuc2Zvcm09dm9pZCAwIT09dmFsdWU/dmFsdWU6Im5vbmUifSxjaGVja0lzU2Nyb2xsUm9vdDppbnN0YW5jZT0+Qm9vbGVhbigiZml4ZWQiPT09d2luZG93LmdldENvbXB1dGVkU3R5bGUoaW5zdGFuY2UpLnBvc2l0aW9uKX0pO3ZhciBkZWZhdWx0cz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI3MjgpO2xldCBzcGxpdENTU1ZhcmlhYmxlUmVnZXg9L3ZhclwoKC0tW2EtekEtWjAtOS1fXSspLD8gPyhbYS16QS1aMC05ICgpJSMuLC1dKyk/XCkvO2Z1bmN0aW9uIGdldFZhcmlhYmxlVmFsdWUoY3VycmVudCxlbGVtZW50LGRlcHRoPTEpeygwLGVycm9ycy5rKShkZXB0aDw9NCxgTWF4IENTUyB2YXJpYWJsZSBmYWxsYmFjayBkZXB0aCBkZXRlY3RlZCBpbiBwcm9wZXJ0eSAiJHtjdXJyZW50fSIuIFRoaXMgbWF5IGluZGljYXRlIGEgY2lyY3VsYXIgZmFsbGJhY2sgZGVwZW5kZW5jeS5gKTtsZXRbdG9rZW4sZmFsbGJhY2tdPWZ1bmN0aW9uKGN1cnJlbnQpe2xldCBtYXRjaD1zcGxpdENTU1ZhcmlhYmxlUmVnZXguZXhlYyhjdXJyZW50KTtpZighbWF0Y2gpcmV0dXJuWyxdO2xldFssdG9rZW4sZmFsbGJhY2tdPW1hdGNoO3JldHVyblt0b2tlbixmYWxsYmFja119KGN1cnJlbnQpO2lmKCF0b2tlbilyZXR1cm47bGV0IHJlc29sdmVkPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUodG9rZW4pO2lmKHJlc29sdmVkKXtsZXQgdHJpbW1lZD1yZXNvbHZlZC50cmltKCk7cmV0dXJuIGlzTnVtZXJpY2FsU3RyaW5nKHRyaW1tZWQpP3BhcnNlRmxvYXQodHJpbW1lZCk6dHJpbW1lZH1yZXR1cm4oMCxpc19jc3NfdmFyaWFibGUudG0pKGZhbGxiYWNrKT9nZXRWYXJpYWJsZVZhbHVlKGZhbGxiYWNrLGVsZW1lbnQsZGVwdGgrMSk6ZmFsbGJhY2t9bGV0IHBvc2l0aW9uYWxLZXlzPW5ldyBTZXQoWyJ3aWR0aCIsImhlaWdodCIsInRvcCIsImxlZnQiLCJyaWdodCIsImJvdHRvbSIsIngiLCJ5IiwidHJhbnNsYXRlWCIsInRyYW5zbGF0ZVkiXSksaXNQb3NpdGlvbmFsS2V5PWtleT0+cG9zaXRpb25hbEtleXMuaGFzKGtleSksaGFzUG9zaXRpb25hbEtleT10YXJnZXQ9Pk9iamVjdC5rZXlzKHRhcmdldCkuc29tZShpc1Bvc2l0aW9uYWxLZXkpLGlzTnVtT3JQeFR5cGU9dj0+dj09PW51bWJlcnMuUnh8fHY9PT11bml0cy5weCxnZXRQb3NGcm9tTWF0cml4PShtYXRyaXgscG9zKT0+cGFyc2VGbG9hdChtYXRyaXguc3BsaXQoIiwgIilbcG9zXSksZ2V0VHJhbnNsYXRlRnJvbU1hdHJpeD0ocG9zMixwb3MzKT0+KF9iYm94LHt0cmFuc2Zvcm19KT0+e2lmKCJub25lIj09PXRyYW5zZm9ybXx8IXRyYW5zZm9ybSlyZXR1cm4gMDtsZXQgbWF0cml4M2Q9dHJhbnNmb3JtLm1hdGNoKC9ebWF0cml4M2RcKCguKylcKSQvKTtpZihtYXRyaXgzZClyZXR1cm4gZ2V0UG9zRnJvbU1hdHJpeChtYXRyaXgzZFsxXSxwb3MzKTt7bGV0IG1hdHJpeD10cmFuc2Zvcm0ubWF0Y2goL15tYXRyaXhcKCguKylcKSQvKTtyZXR1cm4gbWF0cml4P2dldFBvc0Zyb21NYXRyaXgobWF0cml4WzFdLHBvczIpOjB9fSx0cmFuc2Zvcm1LZXlzPW5ldyBTZXQoWyJ4IiwieSIsInoiXSksbm9uVHJhbnNsYXRpb25hbFRyYW5zZm9ybUtleXM9dXRpbHNfdHJhbnNmb3JtLl8uZmlsdGVyKGtleT0+IXRyYW5zZm9ybUtleXMuaGFzKGtleSkpLHBvc2l0aW9uYWxWYWx1ZXM9e3dpZHRoOih7eH0se3BhZGRpbmdMZWZ0PSIwIixwYWRkaW5nUmlnaHQ9IjAifSk9PngubWF4LXgubWluLXBhcnNlRmxvYXQocGFkZGluZ0xlZnQpLXBhcnNlRmxvYXQocGFkZGluZ1JpZ2h0KSxoZWlnaHQ6KHt5fSx7cGFkZGluZ1RvcD0iMCIscGFkZGluZ0JvdHRvbT0iMCJ9KT0+eS5tYXgteS5taW4tcGFyc2VGbG9hdChwYWRkaW5nVG9wKS1wYXJzZUZsb2F0KHBhZGRpbmdCb3R0b20pLHRvcDooX2Jib3gse3RvcH0pPT5wYXJzZUZsb2F0KHRvcCksbGVmdDooX2Jib3gse2xlZnR9KT0+cGFyc2VGbG9hdChsZWZ0KSxib3R0b206KHt5fSx7dG9wfSk9PnBhcnNlRmxvYXQodG9wKSsoeS5tYXgteS5taW4pLHJpZ2h0Oih7eH0se2xlZnR9KT0+cGFyc2VGbG9hdChsZWZ0KSsoeC5tYXgteC5taW4pLHg6Z2V0VHJhbnNsYXRlRnJvbU1hdHJpeCg0LDEzKSx5OmdldFRyYW5zbGF0ZUZyb21NYXRyaXgoNSwxNCl9O3Bvc2l0aW9uYWxWYWx1ZXMudHJhbnNsYXRlWD1wb3NpdGlvbmFsVmFsdWVzLngscG9zaXRpb25hbFZhbHVlcy50cmFuc2xhdGVZPXBvc2l0aW9uYWxWYWx1ZXMueTtsZXQgY29udmVydENoYW5nZWRWYWx1ZVR5cGVzPSh0YXJnZXQsdmlzdWFsRWxlbWVudCxjaGFuZ2VkS2V5cyk9PntsZXQgb3JpZ2luQmJveD12aXN1YWxFbGVtZW50Lm1lYXN1cmVWaWV3cG9ydEJveCgpLGVsZW1lbnQ9dmlzdWFsRWxlbWVudC5jdXJyZW50LGVsZW1lbnRDb21wdXRlZFN0eWxlPWdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkse2Rpc3BsYXl9PWVsZW1lbnRDb21wdXRlZFN0eWxlLG9yaWdpbj17fTsibm9uZSI9PT1kaXNwbGF5JiZ2aXN1YWxFbGVtZW50LnNldFN0YXRpY1ZhbHVlKCJkaXNwbGF5Iix0YXJnZXQuZGlzcGxheXx8ImJsb2NrIiksY2hhbmdlZEtleXMuZm9yRWFjaChrZXk9PntvcmlnaW5ba2V5XT1wb3NpdGlvbmFsVmFsdWVzW2tleV0ob3JpZ2luQmJveCxlbGVtZW50Q29tcHV0ZWRTdHlsZSl9KSx2aXN1YWxFbGVtZW50LnJlbmRlcigpO2xldCB0YXJnZXRCYm94PXZpc3VhbEVsZW1lbnQubWVhc3VyZVZpZXdwb3J0Qm94KCk7cmV0dXJuIGNoYW5nZWRLZXlzLmZvckVhY2goa2V5PT57bGV0IHZhbHVlPXZpc3VhbEVsZW1lbnQuZ2V0VmFsdWUoa2V5KTt2YWx1ZSYmdmFsdWUuanVtcChvcmlnaW5ba2V5XSksdGFyZ2V0W2tleV09cG9zaXRpb25hbFZhbHVlc1trZXldKHRhcmdldEJib3gsZWxlbWVudENvbXB1dGVkU3R5bGUpfSksdGFyZ2V0fSxjaGVja0FuZENvbnZlcnRDaGFuZ2VkVmFsdWVUeXBlcz0odmlzdWFsRWxlbWVudCx0YXJnZXQsb3JpZ2luPXt9LHRyYW5zaXRpb25FbmQ9e30pPT57dGFyZ2V0PXsuLi50YXJnZXR9LHRyYW5zaXRpb25FbmQ9ey4uLnRyYW5zaXRpb25FbmR9O2xldCB0YXJnZXRQb3NpdGlvbmFsS2V5cz1PYmplY3Qua2V5cyh0YXJnZXQpLmZpbHRlcihpc1Bvc2l0aW9uYWxLZXkpLHJlbW92ZWRUcmFuc2Zvcm1WYWx1ZXM9W10saGFzQXR0ZW1wdGVkVG9SZW1vdmVUcmFuc2Zvcm1WYWx1ZXM9ITEsY2hhbmdlZFZhbHVlVHlwZUtleXM9W107aWYodGFyZ2V0UG9zaXRpb25hbEtleXMuZm9yRWFjaChrZXk9PntsZXQgdG9UeXBlO2xldCB2YWx1ZT12aXN1YWxFbGVtZW50LmdldFZhbHVlKGtleSk7aWYoIXZpc3VhbEVsZW1lbnQuaGFzVmFsdWUoa2V5KSlyZXR1cm47bGV0IGZyb209b3JpZ2luW2tleV0sZnJvbVR5cGU9ZmluZERpbWVuc2lvblZhbHVlVHlwZShmcm9tKSx0bz10YXJnZXRba2V5XTtpZigoMCxpc19rZXlmcmFtZXNfdGFyZ2V0LkMpKHRvKSl7bGV0IG51bUtleWZyYW1lcz10by5sZW5ndGgsZnJvbUluZGV4PW51bGw9PT10b1swXT8xOjA7ZnJvbVR5cGU9ZmluZERpbWVuc2lvblZhbHVlVHlwZShmcm9tPXRvW2Zyb21JbmRleF0pO2ZvcihsZXQgaT1mcm9tSW5kZXg7aTxudW1LZXlmcmFtZXMmJm51bGwhPT10b1tpXTtpKyspdG9UeXBlPygwLGVycm9ycy5rKShmaW5kRGltZW5zaW9uVmFsdWVUeXBlKHRvW2ldKT09PXRvVHlwZSwiQWxsIGtleWZyYW1lcyBtdXN0IGJlIG9mIHRoZSBzYW1lIHR5cGUiKToodG9UeXBlPWZpbmREaW1lbnNpb25WYWx1ZVR5cGUodG9baV0pLCgwLGVycm9ycy5rKSh0b1R5cGU9PT1mcm9tVHlwZXx8aXNOdW1PclB4VHlwZShmcm9tVHlwZSkmJmlzTnVtT3JQeFR5cGUodG9UeXBlKSwiS2V5ZnJhbWVzIG11c3QgYmUgb2YgdGhlIHNhbWUgZGltZW5zaW9uIGFzIHRoZSBjdXJyZW50IHZhbHVlIikpfWVsc2UgdG9UeXBlPWZpbmREaW1lbnNpb25WYWx1ZVR5cGUodG8pO2lmKGZyb21UeXBlIT09dG9UeXBlKXtpZihpc051bU9yUHhUeXBlKGZyb21UeXBlKSYmaXNOdW1PclB4VHlwZSh0b1R5cGUpKXtsZXQgY3VycmVudD12YWx1ZS5nZXQoKTsic3RyaW5nIj09dHlwZW9mIGN1cnJlbnQmJnZhbHVlLnNldChwYXJzZUZsb2F0KGN1cnJlbnQpKSwic3RyaW5nIj09dHlwZW9mIHRvP3RhcmdldFtrZXldPXBhcnNlRmxvYXQodG8pOkFycmF5LmlzQXJyYXkodG8pJiZ0b1R5cGU9PT11bml0cy5weCYmKHRhcmdldFtrZXldPXRvLm1hcChwYXJzZUZsb2F0KSl9ZWxzZShudWxsPT1mcm9tVHlwZT92b2lkIDA6ZnJvbVR5cGUudHJhbnNmb3JtKSYmKG51bGw9PXRvVHlwZT92b2lkIDA6dG9UeXBlLnRyYW5zZm9ybSkmJigwPT09ZnJvbXx8MD09PXRvKT8wPT09ZnJvbT92YWx1ZS5zZXQodG9UeXBlLnRyYW5zZm9ybShmcm9tKSk6dGFyZ2V0W2tleV09ZnJvbVR5cGUudHJhbnNmb3JtKHRvKTooaGFzQXR0ZW1wdGVkVG9SZW1vdmVUcmFuc2Zvcm1WYWx1ZXN8fChyZW1vdmVkVHJhbnNmb3JtVmFsdWVzPWZ1bmN0aW9uKHZpc3VhbEVsZW1lbnQpe2xldCByZW1vdmVkVHJhbnNmb3Jtcz1bXTtyZXR1cm4gbm9uVHJhbnNsYXRpb25hbFRyYW5zZm9ybUtleXMuZm9yRWFjaChrZXk9PntsZXQgdmFsdWU9dmlzdWFsRWxlbWVudC5nZXRWYWx1ZShrZXkpO3ZvaWQgMCE9PXZhbHVlJiYocmVtb3ZlZFRyYW5zZm9ybXMucHVzaChba2V5LHZhbHVlLmdldCgpXSksdmFsdWUuc2V0KGtleS5zdGFydHNXaXRoKCJzY2FsZSIpPzE6MCkpfSkscmVtb3ZlZFRyYW5zZm9ybXMubGVuZ3RoJiZ2aXN1YWxFbGVtZW50LnJlbmRlcigpLHJlbW92ZWRUcmFuc2Zvcm1zfSh2aXN1YWxFbGVtZW50KSxoYXNBdHRlbXB0ZWRUb1JlbW92ZVRyYW5zZm9ybVZhbHVlcz0hMCksY2hhbmdlZFZhbHVlVHlwZUtleXMucHVzaChrZXkpLHRyYW5zaXRpb25FbmRba2V5XT12b2lkIDAhPT10cmFuc2l0aW9uRW5kW2tleV0/dHJhbnNpdGlvbkVuZFtrZXldOnRhcmdldFtrZXldLHZhbHVlLmp1bXAodG8pKX19KSwhY2hhbmdlZFZhbHVlVHlwZUtleXMubGVuZ3RoKXJldHVybnt0YXJnZXQsdHJhbnNpdGlvbkVuZH07e2xldCBzY3JvbGxZPWNoYW5nZWRWYWx1ZVR5cGVLZXlzLmluZGV4T2YoImhlaWdodCIpPj0wP3dpbmRvdy5wYWdlWU9mZnNldDpudWxsLGNvbnZlcnRlZFRhcmdldD1jb252ZXJ0Q2hhbmdlZFZhbHVlVHlwZXModGFyZ2V0LHZpc3VhbEVsZW1lbnQsY2hhbmdlZFZhbHVlVHlwZUtleXMpO3JldHVybiByZW1vdmVkVHJhbnNmb3JtVmFsdWVzLmxlbmd0aCYmcmVtb3ZlZFRyYW5zZm9ybVZhbHVlcy5mb3JFYWNoKChba2V5LHZhbHVlXSk9Pnt2aXN1YWxFbGVtZW50LmdldFZhbHVlKGtleSkuc2V0KHZhbHVlKX0pLHZpc3VhbEVsZW1lbnQucmVuZGVyKCksaXNfYnJvd3Nlci5qJiZudWxsIT09c2Nyb2xsWSYmd2luZG93LnNjcm9sbFRvKHt0b3A6c2Nyb2xsWX0pLHt0YXJnZXQ6Y29udmVydGVkVGFyZ2V0LHRyYW5zaXRpb25FbmR9fX0scGFyc2VEb21WYXJpYW50PSh2aXN1YWxFbGVtZW50LHRhcmdldCxvcmlnaW4sdHJhbnNpdGlvbkVuZCk9Pnt2YXIgdGFyZ2V0MSx0cmFuc2l0aW9uRW5kMTtsZXQgcmVzb2x2ZWQ9ZnVuY3Rpb24odmlzdWFsRWxlbWVudCx7Li4udGFyZ2V0fSx0cmFuc2l0aW9uRW5kKXtsZXQgZWxlbWVudD12aXN1YWxFbGVtZW50LmN1cnJlbnQ7aWYoIShlbGVtZW50IGluc3RhbmNlb2YgRWxlbWVudCkpcmV0dXJue3RhcmdldCx0cmFuc2l0aW9uRW5kfTtmb3IobGV0IGtleSBpbiB0cmFuc2l0aW9uRW5kJiYodHJhbnNpdGlvbkVuZD17Li4udHJhbnNpdGlvbkVuZH0pLHZpc3VhbEVsZW1lbnQudmFsdWVzLmZvckVhY2godmFsdWU9PntsZXQgY3VycmVudD12YWx1ZS5nZXQoKTtpZighKDAsaXNfY3NzX3ZhcmlhYmxlLnRtKShjdXJyZW50KSlyZXR1cm47bGV0IHJlc29sdmVkPWdldFZhcmlhYmxlVmFsdWUoY3VycmVudCxlbGVtZW50KTtyZXNvbHZlZCYmdmFsdWUuc2V0KHJlc29sdmVkKX0pLHRhcmdldCl7bGV0IGN1cnJlbnQ9dGFyZ2V0W2tleV07aWYoISgwLGlzX2Nzc192YXJpYWJsZS50bSkoY3VycmVudCkpY29udGludWU7bGV0IHJlc29sdmVkPWdldFZhcmlhYmxlVmFsdWUoY3VycmVudCxlbGVtZW50KTtyZXNvbHZlZCYmKHRhcmdldFtrZXldPXJlc29sdmVkLHRyYW5zaXRpb25FbmR8fCh0cmFuc2l0aW9uRW5kPXt9KSx2b2lkIDA9PT10cmFuc2l0aW9uRW5kW2tleV0mJih0cmFuc2l0aW9uRW5kW2tleV09Y3VycmVudCkpfXJldHVybnt0YXJnZXQsdHJhbnNpdGlvbkVuZH19KHZpc3VhbEVsZW1lbnQsdGFyZ2V0LHRyYW5zaXRpb25FbmQpO3JldHVybiB0YXJnZXQ9cmVzb2x2ZWQudGFyZ2V0LHRyYW5zaXRpb25FbmQ9cmVzb2x2ZWQudHJhbnNpdGlvbkVuZCx0YXJnZXQxPXRhcmdldCx0cmFuc2l0aW9uRW5kMT10cmFuc2l0aW9uRW5kLGhhc1Bvc2l0aW9uYWxLZXkodGFyZ2V0MSk/Y2hlY2tBbmRDb252ZXJ0Q2hhbmdlZFZhbHVlVHlwZXModmlzdWFsRWxlbWVudCx0YXJnZXQxLG9yaWdpbix0cmFuc2l0aW9uRW5kMSk6e3RhcmdldDp0YXJnZXQxLHRyYW5zaXRpb25FbmQ6dHJhbnNpdGlvbkVuZDF9fSxwcmVmZXJzUmVkdWNlZE1vdGlvbj17Y3VycmVudDpudWxsfSxoYXNSZWR1Y2VkTW90aW9uTGlzdGVuZXI9e2N1cnJlbnQ6ITF9O3ZhciBzdWJzY3JpcHRpb25fbWFuYWdlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDIxNTYwKTtsZXQgdmlzdWFsRWxlbWVudFN0b3JlPW5ldyBXZWFrTWFwLGZlYXR1cmVOYW1lcz1PYmplY3Qua2V5cyhmZWF0dXJlRGVmaW5pdGlvbnMpLG51bUZlYXR1cmVzPWZlYXR1cmVOYW1lcy5sZW5ndGgscHJvcEV2ZW50SGFuZGxlcnM9WyJBbmltYXRpb25TdGFydCIsIkFuaW1hdGlvbkNvbXBsZXRlIiwiVXBkYXRlIiwiQmVmb3JlTGF5b3V0TWVhc3VyZSIsIkxheW91dE1lYXN1cmUiLCJMYXlvdXRBbmltYXRpb25TdGFydCIsIkxheW91dEFuaW1hdGlvbkNvbXBsZXRlIl0sbnVtVmFyaWFudFByb3BzPXZhcmlhbnRQcm9wcy5sZW5ndGg7Y2xhc3MgVmlzdWFsRWxlbWVudHtjb25zdHJ1Y3Rvcih7cGFyZW50LHByb3BzLHByZXNlbmNlQ29udGV4dCxyZWR1Y2VkTW90aW9uQ29uZmlnLHZpc3VhbFN0YXRlfSxvcHRpb25zPXt9KXt0aGlzLmN1cnJlbnQ9bnVsbCx0aGlzLmNoaWxkcmVuPW5ldyBTZXQsdGhpcy5pc1ZhcmlhbnROb2RlPSExLHRoaXMuaXNDb250cm9sbGluZ1ZhcmlhbnRzPSExLHRoaXMuc2hvdWxkUmVkdWNlTW90aW9uPW51bGwsdGhpcy52YWx1ZXM9bmV3IE1hcCx0aGlzLmZlYXR1cmVzPXt9LHRoaXMudmFsdWVTdWJzY3JpcHRpb25zPW5ldyBNYXAsdGhpcy5wcmV2TW90aW9uVmFsdWVzPXt9LHRoaXMuZXZlbnRzPXt9LHRoaXMucHJvcEV2ZW50U3Vic2NyaXB0aW9ucz17fSx0aGlzLm5vdGlmeVVwZGF0ZT0oKT0+dGhpcy5ub3RpZnkoIlVwZGF0ZSIsdGhpcy5sYXRlc3RWYWx1ZXMpLHRoaXMucmVuZGVyPSgpPT57dGhpcy5jdXJyZW50JiYodGhpcy50cmlnZ2VyQnVpbGQoKSx0aGlzLnJlbmRlckluc3RhbmNlKHRoaXMuY3VycmVudCx0aGlzLnJlbmRlclN0YXRlLHRoaXMucHJvcHMuc3R5bGUsdGhpcy5wcm9qZWN0aW9uKSl9LHRoaXMuc2NoZWR1bGVSZW5kZXI9KCk9PmZyYW1lbG9vcF9mcmFtZS5XaS5yZW5kZXIodGhpcy5yZW5kZXIsITEsITApO2xldHtsYXRlc3RWYWx1ZXMscmVuZGVyU3RhdGV9PXZpc3VhbFN0YXRlO3RoaXMubGF0ZXN0VmFsdWVzPWxhdGVzdFZhbHVlcyx0aGlzLmJhc2VUYXJnZXQ9ey4uLmxhdGVzdFZhbHVlc30sdGhpcy5pbml0aWFsVmFsdWVzPXByb3BzLmluaXRpYWw/ey4uLmxhdGVzdFZhbHVlc306e30sdGhpcy5yZW5kZXJTdGF0ZT1yZW5kZXJTdGF0ZSx0aGlzLnBhcmVudD1wYXJlbnQsdGhpcy5wcm9wcz1wcm9wcyx0aGlzLnByZXNlbmNlQ29udGV4dD1wcmVzZW5jZUNvbnRleHQsdGhpcy5kZXB0aD1wYXJlbnQ/cGFyZW50LmRlcHRoKzE6MCx0aGlzLnJlZHVjZWRNb3Rpb25Db25maWc9cmVkdWNlZE1vdGlvbkNvbmZpZyx0aGlzLm9wdGlvbnM9b3B0aW9ucyx0aGlzLmlzQ29udHJvbGxpbmdWYXJpYW50cz1pc0NvbnRyb2xsaW5nVmFyaWFudHMocHJvcHMpLHRoaXMuaXNWYXJpYW50Tm9kZT1pc1ZhcmlhbnROb2RlKHByb3BzKSx0aGlzLmlzVmFyaWFudE5vZGUmJih0aGlzLnZhcmlhbnRDaGlsZHJlbj1uZXcgU2V0KSx0aGlzLm1hbnVhbGx5QW5pbWF0ZU9uTW91bnQ9Qm9vbGVhbihwYXJlbnQmJnBhcmVudC5jdXJyZW50KTtsZXR7d2lsbENoYW5nZSwuLi5pbml0aWFsTW90aW9uVmFsdWVzfT10aGlzLnNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhwcm9wcyx7fSk7Zm9yKGxldCBrZXkgaW4gaW5pdGlhbE1vdGlvblZhbHVlcyl7bGV0IHZhbHVlPWluaXRpYWxNb3Rpb25WYWx1ZXNba2V5XTt2b2lkIDAhPT1sYXRlc3RWYWx1ZXNba2V5XSYmKDAsaXNfbW90aW9uX3ZhbHVlLmkpKHZhbHVlKSYmKHZhbHVlLnNldChsYXRlc3RWYWx1ZXNba2V5XSwhMSksaXNXaWxsQ2hhbmdlTW90aW9uVmFsdWUod2lsbENoYW5nZSkmJndpbGxDaGFuZ2UuYWRkKGtleSkpfX1zY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMoX3Byb3BzLF9wcmV2UHJvcHMpe3JldHVybnt9fW1vdW50KGluc3RhbmNlKXt0aGlzLmN1cnJlbnQ9aW5zdGFuY2UsdmlzdWFsRWxlbWVudFN0b3JlLnNldChpbnN0YW5jZSx0aGlzKSx0aGlzLnByb2plY3Rpb24mJiF0aGlzLnByb2plY3Rpb24uaW5zdGFuY2UmJnRoaXMucHJvamVjdGlvbi5tb3VudChpbnN0YW5jZSksdGhpcy5wYXJlbnQmJnRoaXMuaXNWYXJpYW50Tm9kZSYmIXRoaXMuaXNDb250cm9sbGluZ1ZhcmlhbnRzJiYodGhpcy5yZW1vdmVGcm9tVmFyaWFudFRyZWU9dGhpcy5wYXJlbnQuYWRkVmFyaWFudENoaWxkKHRoaXMpKSx0aGlzLnZhbHVlcy5mb3JFYWNoKCh2YWx1ZSxrZXkpPT50aGlzLmJpbmRUb01vdGlvblZhbHVlKGtleSx2YWx1ZSkpLGhhc1JlZHVjZWRNb3Rpb25MaXN0ZW5lci5jdXJyZW50fHxmdW5jdGlvbigpe2lmKGhhc1JlZHVjZWRNb3Rpb25MaXN0ZW5lci5jdXJyZW50PSEwLGlzX2Jyb3dzZXIuail7aWYod2luZG93Lm1hdGNoTWVkaWEpe2xldCBtb3Rpb25NZWRpYVF1ZXJ5PXdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbikiKSxzZXRSZWR1Y2VkTW90aW9uUHJlZmVyZW5jZXM9KCk9PnByZWZlcnNSZWR1Y2VkTW90aW9uLmN1cnJlbnQ9bW90aW9uTWVkaWFRdWVyeS5tYXRjaGVzO21vdGlvbk1lZGlhUXVlcnkuYWRkTGlzdGVuZXIoc2V0UmVkdWNlZE1vdGlvblByZWZlcmVuY2VzKSxzZXRSZWR1Y2VkTW90aW9uUHJlZmVyZW5jZXMoKX1lbHNlIHByZWZlcnNSZWR1Y2VkTW90aW9uLmN1cnJlbnQ9ITF9fSgpLHRoaXMuc2hvdWxkUmVkdWNlTW90aW9uPSJuZXZlciIhPT10aGlzLnJlZHVjZWRNb3Rpb25Db25maWcmJigiYWx3YXlzIj09PXRoaXMucmVkdWNlZE1vdGlvbkNvbmZpZ3x8cHJlZmVyc1JlZHVjZWRNb3Rpb24uY3VycmVudCksdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmNoaWxkcmVuLmFkZCh0aGlzKSx0aGlzLnVwZGF0ZSh0aGlzLnByb3BzLHRoaXMucHJlc2VuY2VDb250ZXh0KX11bm1vdW50KCl7Zm9yKGxldCBrZXkgaW4gdmlzdWFsRWxlbWVudFN0b3JlLmRlbGV0ZSh0aGlzLmN1cnJlbnQpLHRoaXMucHJvamVjdGlvbiYmdGhpcy5wcm9qZWN0aW9uLnVubW91bnQoKSwoMCxmcmFtZWxvb3BfZnJhbWUuUG4pKHRoaXMubm90aWZ5VXBkYXRlKSwoMCxmcmFtZWxvb3BfZnJhbWUuUG4pKHRoaXMucmVuZGVyKSx0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucy5mb3JFYWNoKHJlbW92ZT0+cmVtb3ZlKCkpLHRoaXMucmVtb3ZlRnJvbVZhcmlhbnRUcmVlJiZ0aGlzLnJlbW92ZUZyb21WYXJpYW50VHJlZSgpLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5jaGlsZHJlbi5kZWxldGUodGhpcyksdGhpcy5ldmVudHMpdGhpcy5ldmVudHNba2V5XS5jbGVhcigpO2ZvcihsZXQga2V5MSBpbiB0aGlzLmZlYXR1cmVzKXRoaXMuZmVhdHVyZXNba2V5MV0udW5tb3VudCgpO3RoaXMuY3VycmVudD1udWxsfWJpbmRUb01vdGlvblZhbHVlKGtleSx2YWx1ZSl7bGV0IHZhbHVlSXNUcmFuc2Zvcm09dXRpbHNfdHJhbnNmb3JtLkcuaGFzKGtleSkscmVtb3ZlT25DaGFuZ2U9dmFsdWUub24oImNoYW5nZSIsbGF0ZXN0VmFsdWU9Pnt0aGlzLmxhdGVzdFZhbHVlc1trZXldPWxhdGVzdFZhbHVlLHRoaXMucHJvcHMub25VcGRhdGUmJmZyYW1lbG9vcF9mcmFtZS5XaS51cGRhdGUodGhpcy5ub3RpZnlVcGRhdGUsITEsITApLHZhbHVlSXNUcmFuc2Zvcm0mJnRoaXMucHJvamVjdGlvbiYmKHRoaXMucHJvamVjdGlvbi5pc1RyYW5zZm9ybURpcnR5PSEwKX0pLHJlbW92ZU9uUmVuZGVyUmVxdWVzdD12YWx1ZS5vbigicmVuZGVyUmVxdWVzdCIsdGhpcy5zY2hlZHVsZVJlbmRlcik7dGhpcy52YWx1ZVN1YnNjcmlwdGlvbnMuc2V0KGtleSwoKT0+e3JlbW92ZU9uQ2hhbmdlKCkscmVtb3ZlT25SZW5kZXJSZXF1ZXN0KCl9KX1zb3J0Tm9kZVBvc2l0aW9uKG90aGVyKXtyZXR1cm4gdGhpcy5jdXJyZW50JiZ0aGlzLnNvcnRJbnN0YW5jZU5vZGVQb3NpdGlvbiYmdGhpcy50eXBlPT09b3RoZXIudHlwZT90aGlzLnNvcnRJbnN0YW5jZU5vZGVQb3NpdGlvbih0aGlzLmN1cnJlbnQsb3RoZXIuY3VycmVudCk6MH1sb2FkRmVhdHVyZXMoe2NoaWxkcmVuLC4uLnJlbmRlcmVkUHJvcHN9LGlzU3RyaWN0LHByZWxvYWRlZEZlYXR1cmVzLGluaXRpYWxMYXlvdXRHcm91cENvbmZpZyl7bGV0IFByb2plY3Rpb25Ob2RlQ29uc3RydWN0b3IsTWVhc3VyZUxheW91dDtmb3IobGV0IGk9MDtpPG51bUZlYXR1cmVzO2krKyl7bGV0IG5hbWU9ZmVhdHVyZU5hbWVzW2ldLHtpc0VuYWJsZWQsRmVhdHVyZTpGZWF0dXJlQ29uc3RydWN0b3IsUHJvamVjdGlvbk5vZGUsTWVhc3VyZUxheW91dDpNZWFzdXJlTGF5b3V0Q29tcG9uZW50fT1mZWF0dXJlRGVmaW5pdGlvbnNbbmFtZV07UHJvamVjdGlvbk5vZGUmJihQcm9qZWN0aW9uTm9kZUNvbnN0cnVjdG9yPVByb2plY3Rpb25Ob2RlKSxpc0VuYWJsZWQocmVuZGVyZWRQcm9wcykmJighdGhpcy5mZWF0dXJlc1tuYW1lXSYmRmVhdHVyZUNvbnN0cnVjdG9yJiYodGhpcy5mZWF0dXJlc1tuYW1lXT1uZXcgRmVhdHVyZUNvbnN0cnVjdG9yKHRoaXMpKSxNZWFzdXJlTGF5b3V0Q29tcG9uZW50JiYoTWVhc3VyZUxheW91dD1NZWFzdXJlTGF5b3V0Q29tcG9uZW50KSl9aWYoIXRoaXMucHJvamVjdGlvbiYmUHJvamVjdGlvbk5vZGVDb25zdHJ1Y3Rvcil7dGhpcy5wcm9qZWN0aW9uPW5ldyBQcm9qZWN0aW9uTm9kZUNvbnN0cnVjdG9yKHRoaXMubGF0ZXN0VmFsdWVzLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5wcm9qZWN0aW9uKTtsZXR7bGF5b3V0SWQsbGF5b3V0LGRyYWcsZHJhZ0NvbnN0cmFpbnRzLGxheW91dFNjcm9sbCxsYXlvdXRSb290fT1yZW5kZXJlZFByb3BzO3RoaXMucHJvamVjdGlvbi5zZXRPcHRpb25zKHtsYXlvdXRJZCxsYXlvdXQsYWx3YXlzTWVhc3VyZUxheW91dDpCb29sZWFuKGRyYWcpfHxkcmFnQ29uc3RyYWludHMmJmlzUmVmT2JqZWN0KGRyYWdDb25zdHJhaW50cyksdmlzdWFsRWxlbWVudDp0aGlzLHNjaGVkdWxlUmVuZGVyOigpPT50aGlzLnNjaGVkdWxlUmVuZGVyKCksYW5pbWF0aW9uVHlwZToic3RyaW5nIj09dHlwZW9mIGxheW91dD9sYXlvdXQ6ImJvdGgiLGluaXRpYWxQcm9tb3Rpb25Db25maWc6aW5pdGlhbExheW91dEdyb3VwQ29uZmlnLGxheW91dFNjcm9sbCxsYXlvdXRSb290fSl9cmV0dXJuIE1lYXN1cmVMYXlvdXR9dXBkYXRlRmVhdHVyZXMoKXtmb3IobGV0IGtleSBpbiB0aGlzLmZlYXR1cmVzKXtsZXQgZmVhdHVyZT10aGlzLmZlYXR1cmVzW2tleV07ZmVhdHVyZS5pc01vdW50ZWQ/ZmVhdHVyZS51cGRhdGUoKTooZmVhdHVyZS5tb3VudCgpLGZlYXR1cmUuaXNNb3VudGVkPSEwKX19dHJpZ2dlckJ1aWxkKCl7dGhpcy5idWlsZCh0aGlzLnJlbmRlclN0YXRlLHRoaXMubGF0ZXN0VmFsdWVzLHRoaXMub3B0aW9ucyx0aGlzLnByb3BzKX1tZWFzdXJlVmlld3BvcnRCb3goKXtyZXR1cm4gdGhpcy5jdXJyZW50P3RoaXMubWVhc3VyZUluc3RhbmNlVmlld3BvcnRCb3godGhpcy5jdXJyZW50LHRoaXMucHJvcHMpOigwLG1vZGVscy5kTykoKX1nZXRTdGF0aWNWYWx1ZShrZXkpe3JldHVybiB0aGlzLmxhdGVzdFZhbHVlc1trZXldfXNldFN0YXRpY1ZhbHVlKGtleSx2YWx1ZSl7dGhpcy5sYXRlc3RWYWx1ZXNba2V5XT12YWx1ZX1tYWtlVGFyZ2V0QW5pbWF0YWJsZSh0YXJnZXQsY2FuTXV0YXRlPSEwKXtyZXR1cm4gdGhpcy5tYWtlVGFyZ2V0QW5pbWF0YWJsZUZyb21JbnN0YW5jZSh0YXJnZXQsdGhpcy5wcm9wcyxjYW5NdXRhdGUpfXVwZGF0ZShwcm9wcyxwcmVzZW5jZUNvbnRleHQpeyhwcm9wcy50cmFuc2Zvcm1UZW1wbGF0ZXx8dGhpcy5wcm9wcy50cmFuc2Zvcm1UZW1wbGF0ZSkmJnRoaXMuc2NoZWR1bGVSZW5kZXIoKSx0aGlzLnByZXZQcm9wcz10aGlzLnByb3BzLHRoaXMucHJvcHM9cHJvcHMsdGhpcy5wcmV2UHJlc2VuY2VDb250ZXh0PXRoaXMucHJlc2VuY2VDb250ZXh0LHRoaXMucHJlc2VuY2VDb250ZXh0PXByZXNlbmNlQ29udGV4dDtmb3IobGV0IGk9MDtpPHByb3BFdmVudEhhbmRsZXJzLmxlbmd0aDtpKyspe2xldCBrZXk9cHJvcEV2ZW50SGFuZGxlcnNbaV07dGhpcy5wcm9wRXZlbnRTdWJzY3JpcHRpb25zW2tleV0mJih0aGlzLnByb3BFdmVudFN1YnNjcmlwdGlvbnNba2V5XSgpLGRlbGV0ZSB0aGlzLnByb3BFdmVudFN1YnNjcmlwdGlvbnNba2V5XSk7bGV0IGxpc3RlbmVyPXByb3BzWyJvbiIra2V5XTtsaXN0ZW5lciYmKHRoaXMucHJvcEV2ZW50U3Vic2NyaXB0aW9uc1trZXldPXRoaXMub24oa2V5LGxpc3RlbmVyKSl9dGhpcy5wcmV2TW90aW9uVmFsdWVzPWZ1bmN0aW9uKGVsZW1lbnQsbmV4dCxwcmV2KXtsZXR7d2lsbENoYW5nZX09bmV4dDtmb3IobGV0IGtleSBpbiBuZXh0KXtsZXQgbmV4dFZhbHVlPW5leHRba2V5XSxwcmV2VmFsdWU9cHJldltrZXldO2lmKCgwLGlzX21vdGlvbl92YWx1ZS5pKShuZXh0VmFsdWUpKWVsZW1lbnQuYWRkVmFsdWUoa2V5LG5leHRWYWx1ZSksaXNXaWxsQ2hhbmdlTW90aW9uVmFsdWUod2lsbENoYW5nZSkmJndpbGxDaGFuZ2UuYWRkKGtleSk7ZWxzZSBpZigoMCxpc19tb3Rpb25fdmFsdWUuaSkocHJldlZhbHVlKSllbGVtZW50LmFkZFZhbHVlKGtleSwoMCxlc192YWx1ZS5CWCkobmV4dFZhbHVlLHtvd25lcjplbGVtZW50fSkpLGlzV2lsbENoYW5nZU1vdGlvblZhbHVlKHdpbGxDaGFuZ2UpJiZ3aWxsQ2hhbmdlLnJlbW92ZShrZXkpO2Vsc2UgaWYocHJldlZhbHVlIT09bmV4dFZhbHVlKXtpZihlbGVtZW50Lmhhc1ZhbHVlKGtleSkpe2xldCBleGlzdGluZ1ZhbHVlPWVsZW1lbnQuZ2V0VmFsdWUoa2V5KTtleGlzdGluZ1ZhbHVlLmhhc0FuaW1hdGVkfHxleGlzdGluZ1ZhbHVlLnNldChuZXh0VmFsdWUpfWVsc2V7bGV0IGxhdGVzdFZhbHVlPWVsZW1lbnQuZ2V0U3RhdGljVmFsdWUoa2V5KTtlbGVtZW50LmFkZFZhbHVlKGtleSwoMCxlc192YWx1ZS5CWCkodm9pZCAwIT09bGF0ZXN0VmFsdWU/bGF0ZXN0VmFsdWU6bmV4dFZhbHVlLHtvd25lcjplbGVtZW50fSkpfX19Zm9yKGxldCBrZXkxIGluIHByZXYpdm9pZCAwPT09bmV4dFtrZXkxXSYmZWxlbWVudC5yZW1vdmVWYWx1ZShrZXkxKTtyZXR1cm4gbmV4dH0odGhpcyx0aGlzLnNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhwcm9wcyx0aGlzLnByZXZQcm9wcyksdGhpcy5wcmV2TW90aW9uVmFsdWVzKSx0aGlzLmhhbmRsZUNoaWxkTW90aW9uVmFsdWUmJnRoaXMuaGFuZGxlQ2hpbGRNb3Rpb25WYWx1ZSgpfWdldFByb3BzKCl7cmV0dXJuIHRoaXMucHJvcHN9Z2V0VmFyaWFudChuYW1lKXtyZXR1cm4gdGhpcy5wcm9wcy52YXJpYW50cz90aGlzLnByb3BzLnZhcmlhbnRzW25hbWVdOnZvaWQgMH1nZXREZWZhdWx0VHJhbnNpdGlvbigpe3JldHVybiB0aGlzLnByb3BzLnRyYW5zaXRpb259Z2V0VHJhbnNmb3JtUGFnZVBvaW50KCl7cmV0dXJuIHRoaXMucHJvcHMudHJhbnNmb3JtUGFnZVBvaW50fWdldENsb3Nlc3RWYXJpYW50Tm9kZSgpe3JldHVybiB0aGlzLmlzVmFyaWFudE5vZGU/dGhpczp0aGlzLnBhcmVudD90aGlzLnBhcmVudC5nZXRDbG9zZXN0VmFyaWFudE5vZGUoKTp2b2lkIDB9Z2V0VmFyaWFudENvbnRleHQoc3RhcnRBdFBhcmVudD0hMSl7aWYoc3RhcnRBdFBhcmVudClyZXR1cm4gdGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQuZ2V0VmFyaWFudENvbnRleHQoKTp2b2lkIDA7aWYoIXRoaXMuaXNDb250cm9sbGluZ1ZhcmlhbnRzKXtsZXQgY29udGV4dD10aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuZ2V0VmFyaWFudENvbnRleHQoKXx8e307cmV0dXJuIHZvaWQgMCE9PXRoaXMucHJvcHMuaW5pdGlhbCYmKGNvbnRleHQuaW5pdGlhbD10aGlzLnByb3BzLmluaXRpYWwpLGNvbnRleHR9bGV0IGNvbnRleHQxPXt9O2ZvcihsZXQgaT0wO2k8bnVtVmFyaWFudFByb3BzO2krKyl7bGV0IG5hbWU9dmFyaWFudFByb3BzW2ldLHByb3A9dGhpcy5wcm9wc1tuYW1lXTsoaXNWYXJpYW50TGFiZWwocHJvcCl8fCExPT09cHJvcCkmJihjb250ZXh0MVtuYW1lXT1wcm9wKX1yZXR1cm4gY29udGV4dDF9YWRkVmFyaWFudENoaWxkKGNoaWxkKXtsZXQgY2xvc2VzdFZhcmlhbnROb2RlPXRoaXMuZ2V0Q2xvc2VzdFZhcmlhbnROb2RlKCk7aWYoY2xvc2VzdFZhcmlhbnROb2RlKXJldHVybiBjbG9zZXN0VmFyaWFudE5vZGUudmFyaWFudENoaWxkcmVuJiZjbG9zZXN0VmFyaWFudE5vZGUudmFyaWFudENoaWxkcmVuLmFkZChjaGlsZCksKCk9PmNsb3Nlc3RWYXJpYW50Tm9kZS52YXJpYW50Q2hpbGRyZW4uZGVsZXRlKGNoaWxkKX1hZGRWYWx1ZShrZXksdmFsdWUpe3ZhbHVlIT09dGhpcy52YWx1ZXMuZ2V0KGtleSkmJih0aGlzLnJlbW92ZVZhbHVlKGtleSksdGhpcy5iaW5kVG9Nb3Rpb25WYWx1ZShrZXksdmFsdWUpKSx0aGlzLnZhbHVlcy5zZXQoa2V5LHZhbHVlKSx0aGlzLmxhdGVzdFZhbHVlc1trZXldPXZhbHVlLmdldCgpfXJlbW92ZVZhbHVlKGtleSl7dGhpcy52YWx1ZXMuZGVsZXRlKGtleSk7bGV0IHVuc3Vic2NyaWJlPXRoaXMudmFsdWVTdWJzY3JpcHRpb25zLmdldChrZXkpO3Vuc3Vic2NyaWJlJiYodW5zdWJzY3JpYmUoKSx0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucy5kZWxldGUoa2V5KSksZGVsZXRlIHRoaXMubGF0ZXN0VmFsdWVzW2tleV0sdGhpcy5yZW1vdmVWYWx1ZUZyb21SZW5kZXJTdGF0ZShrZXksdGhpcy5yZW5kZXJTdGF0ZSl9aGFzVmFsdWUoa2V5KXtyZXR1cm4gdGhpcy52YWx1ZXMuaGFzKGtleSl9Z2V0VmFsdWUoa2V5LGRlZmF1bHRWYWx1ZSl7aWYodGhpcy5wcm9wcy52YWx1ZXMmJnRoaXMucHJvcHMudmFsdWVzW2tleV0pcmV0dXJuIHRoaXMucHJvcHMudmFsdWVzW2tleV07bGV0IHZhbHVlPXRoaXMudmFsdWVzLmdldChrZXkpO3JldHVybiB2b2lkIDA9PT12YWx1ZSYmdm9pZCAwIT09ZGVmYXVsdFZhbHVlJiYodmFsdWU9KDAsZXNfdmFsdWUuQlgpKGRlZmF1bHRWYWx1ZSx7b3duZXI6dGhpc30pLHRoaXMuYWRkVmFsdWUoa2V5LHZhbHVlKSksdmFsdWV9cmVhZFZhbHVlKGtleSl7dmFyIF9hO3JldHVybiB2b2lkIDA9PT10aGlzLmxhdGVzdFZhbHVlc1trZXldJiZ0aGlzLmN1cnJlbnQ/bnVsbCE9PShfYT10aGlzLmdldEJhc2VUYXJnZXRGcm9tUHJvcHModGhpcy5wcm9wcyxrZXkpKSYmdm9pZCAwIT09X2E/X2E6dGhpcy5yZWFkVmFsdWVGcm9tSW5zdGFuY2UodGhpcy5jdXJyZW50LGtleSx0aGlzLm9wdGlvbnMpOnRoaXMubGF0ZXN0VmFsdWVzW2tleV19c2V0QmFzZVRhcmdldChrZXksdmFsdWUpe3RoaXMuYmFzZVRhcmdldFtrZXldPXZhbHVlfWdldEJhc2VUYXJnZXQoa2V5KXt2YXIgX2E7bGV0e2luaXRpYWx9PXRoaXMucHJvcHMsdmFsdWVGcm9tSW5pdGlhbD0ic3RyaW5nIj09dHlwZW9mIGluaXRpYWx8fCJvYmplY3QiPT10eXBlb2YgaW5pdGlhbD9udWxsPT09KF9hPXJlc29sdmVWYXJpYW50RnJvbVByb3BzKHRoaXMucHJvcHMsaW5pdGlhbCkpfHx2b2lkIDA9PT1fYT92b2lkIDA6X2Fba2V5XTp2b2lkIDA7aWYoaW5pdGlhbCYmdm9pZCAwIT09dmFsdWVGcm9tSW5pdGlhbClyZXR1cm4gdmFsdWVGcm9tSW5pdGlhbDtsZXQgdGFyZ2V0PXRoaXMuZ2V0QmFzZVRhcmdldEZyb21Qcm9wcyh0aGlzLnByb3BzLGtleSk7cmV0dXJuIHZvaWQgMD09PXRhcmdldHx8KDAsaXNfbW90aW9uX3ZhbHVlLmkpKHRhcmdldCk/dm9pZCAwIT09dGhpcy5pbml0aWFsVmFsdWVzW2tleV0mJnZvaWQgMD09PXZhbHVlRnJvbUluaXRpYWw/dm9pZCAwOnRoaXMuYmFzZVRhcmdldFtrZXldOnRhcmdldH1vbihldmVudE5hbWUsY2FsbGJhY2spe3JldHVybiB0aGlzLmV2ZW50c1tldmVudE5hbWVdfHwodGhpcy5ldmVudHNbZXZlbnROYW1lXT1uZXcgc3Vic2NyaXB0aW9uX21hbmFnZXIuTCksdGhpcy5ldmVudHNbZXZlbnROYW1lXS5hZGQoY2FsbGJhY2spfW5vdGlmeShldmVudE5hbWUsLi4uYXJncyl7dGhpcy5ldmVudHNbZXZlbnROYW1lXSYmdGhpcy5ldmVudHNbZXZlbnROYW1lXS5ub3RpZnkoLi4uYXJncyl9fWNsYXNzIERPTVZpc3VhbEVsZW1lbnQgZXh0ZW5kcyBWaXN1YWxFbGVtZW50e3NvcnRJbnN0YW5jZU5vZGVQb3NpdGlvbihhLGIpe3JldHVybiAyJmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYik/MTotMX1nZXRCYXNlVGFyZ2V0RnJvbVByb3BzKHByb3BzLGtleSl7cmV0dXJuIHByb3BzLnN0eWxlP3Byb3BzLnN0eWxlW2tleV06dm9pZCAwfXJlbW92ZVZhbHVlRnJvbVJlbmRlclN0YXRlKGtleSx7dmFycyxzdHlsZX0pe2RlbGV0ZSB2YXJzW2tleV0sZGVsZXRlIHN0eWxlW2tleV19bWFrZVRhcmdldEFuaW1hdGFibGVGcm9tSW5zdGFuY2Uoe3RyYW5zaXRpb24sdHJhbnNpdGlvbkVuZCwuLi50YXJnZXR9LHt0cmFuc2Zvcm1WYWx1ZXN9LGlzTW91bnRlZCl7bGV0IG9yaWdpbj1mdW5jdGlvbih0YXJnZXQsdHJhbnNpdGlvbix2aXN1YWxFbGVtZW50KXtsZXQgb3JpZ2luPXt9O2ZvcihsZXQga2V5IGluIHRhcmdldCl7bGV0IHRyYW5zaXRpb25PcmlnaW49ZnVuY3Rpb24oa2V5LHRyYW5zaXRpb24pe2lmKCF0cmFuc2l0aW9uKXJldHVybjtsZXQgdmFsdWVUcmFuc2l0aW9uPXRyYW5zaXRpb25ba2V5XXx8dHJhbnNpdGlvbi5kZWZhdWx0fHx0cmFuc2l0aW9uO3JldHVybiB2YWx1ZVRyYW5zaXRpb24uZnJvbX0oa2V5LHRyYW5zaXRpb24pO2lmKHZvaWQgMCE9PXRyYW5zaXRpb25PcmlnaW4pb3JpZ2luW2tleV09dHJhbnNpdGlvbk9yaWdpbjtlbHNle2xldCB2YWx1ZT12aXN1YWxFbGVtZW50LmdldFZhbHVlKGtleSk7dmFsdWUmJihvcmlnaW5ba2V5XT12YWx1ZS5nZXQoKSl9fXJldHVybiBvcmlnaW59KHRhcmdldCx0cmFuc2l0aW9ufHx7fSx0aGlzKTtpZih0cmFuc2Zvcm1WYWx1ZXMmJih0cmFuc2l0aW9uRW5kJiYodHJhbnNpdGlvbkVuZD10cmFuc2Zvcm1WYWx1ZXModHJhbnNpdGlvbkVuZCkpLHRhcmdldCYmKHRhcmdldD10cmFuc2Zvcm1WYWx1ZXModGFyZ2V0KSksb3JpZ2luJiYob3JpZ2luPXRyYW5zZm9ybVZhbHVlcyhvcmlnaW4pKSksaXNNb3VudGVkKXshZnVuY3Rpb24odmlzdWFsRWxlbWVudCx0YXJnZXQsb3JpZ2luKXt2YXIgX2EsX2I7bGV0IG5ld1ZhbHVlS2V5cz1PYmplY3Qua2V5cyh0YXJnZXQpLmZpbHRlcihrZXk9PiF2aXN1YWxFbGVtZW50Lmhhc1ZhbHVlKGtleSkpLG51bU5ld1ZhbHVlcz1uZXdWYWx1ZUtleXMubGVuZ3RoO2lmKG51bU5ld1ZhbHVlcylmb3IobGV0IGk9MDtpPG51bU5ld1ZhbHVlcztpKyspe2xldCBrZXk9bmV3VmFsdWVLZXlzW2ldLHRhcmdldFZhbHVlPXRhcmdldFtrZXldLHZhbHVlPW51bGw7QXJyYXkuaXNBcnJheSh0YXJnZXRWYWx1ZSkmJih2YWx1ZT10YXJnZXRWYWx1ZVswXSksbnVsbD09PXZhbHVlJiYodmFsdWU9bnVsbCE9PShfYj1udWxsIT09KF9hPW9yaWdpbltrZXldKSYmdm9pZCAwIT09X2E/X2E6dmlzdWFsRWxlbWVudC5yZWFkVmFsdWUoa2V5KSkmJnZvaWQgMCE9PV9iP19iOnRhcmdldFtrZXldKSxudWxsIT12YWx1ZSYmKCJzdHJpbmciPT10eXBlb2YgdmFsdWUmJihpc051bWVyaWNhbFN0cmluZyh2YWx1ZSl8fCgwLGlzX3plcm9fdmFsdWVfc3RyaW5nLlcpKHZhbHVlKSk/dmFsdWU9cGFyc2VGbG9hdCh2YWx1ZSk6IWZpbmRWYWx1ZVR5cGUodmFsdWUpJiZjb21wbGV4LlAudGVzdCh0YXJnZXRWYWx1ZSkmJih2YWx1ZT0oMCxhbmltYXRhYmxlX25vbmUuVCkoa2V5LHRhcmdldFZhbHVlKSksdmlzdWFsRWxlbWVudC5hZGRWYWx1ZShrZXksKDAsZXNfdmFsdWUuQlgpKHZhbHVlLHtvd25lcjp2aXN1YWxFbGVtZW50fSkpLHZvaWQgMD09PW9yaWdpbltrZXldJiYob3JpZ2luW2tleV09dmFsdWUpLG51bGwhPT12YWx1ZSYmdmlzdWFsRWxlbWVudC5zZXRCYXNlVGFyZ2V0KGtleSx2YWx1ZSkpfX0odGhpcyx0YXJnZXQsb3JpZ2luKTtsZXQgcGFyc2VkPXBhcnNlRG9tVmFyaWFudCh0aGlzLHRhcmdldCxvcmlnaW4sdHJhbnNpdGlvbkVuZCk7dHJhbnNpdGlvbkVuZD1wYXJzZWQudHJhbnNpdGlvbkVuZCx0YXJnZXQ9cGFyc2VkLnRhcmdldH1yZXR1cm57dHJhbnNpdGlvbix0cmFuc2l0aW9uRW5kLC4uLnRhcmdldH19fWNsYXNzIEhUTUxWaXN1YWxFbGVtZW50IGV4dGVuZHMgRE9NVmlzdWFsRWxlbWVudHtyZWFkVmFsdWVGcm9tSW5zdGFuY2UoaW5zdGFuY2Usa2V5KXtpZih1dGlsc190cmFuc2Zvcm0uRy5oYXMoa2V5KSl7bGV0IGRlZmF1bHRUeXBlPSgwLGRlZmF1bHRzLkEpKGtleSk7cmV0dXJuIGRlZmF1bHRUeXBlJiZkZWZhdWx0VHlwZS5kZWZhdWx0fHwwfXtsZXQgY29tcHV0ZWRTdHlsZT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShpbnN0YW5jZSksdmFsdWU9KCgwLGlzX2Nzc192YXJpYWJsZS5mOSkoa2V5KT9jb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoa2V5KTpjb21wdXRlZFN0eWxlW2tleV0pfHwwO3JldHVybiJzdHJpbmciPT10eXBlb2YgdmFsdWU/dmFsdWUudHJpbSgpOnZhbHVlfX1tZWFzdXJlSW5zdGFuY2VWaWV3cG9ydEJveChpbnN0YW5jZSx7dHJhbnNmb3JtUGFnZVBvaW50fSl7cmV0dXJuIG1lYXN1cmVWaWV3cG9ydEJveChpbnN0YW5jZSx0cmFuc2Zvcm1QYWdlUG9pbnQpfWJ1aWxkKHJlbmRlclN0YXRlLGxhdGVzdFZhbHVlcyxvcHRpb25zLHByb3BzKXtidWlsZEhUTUxTdHlsZXMocmVuZGVyU3RhdGUsbGF0ZXN0VmFsdWVzLG9wdGlvbnMscHJvcHMudHJhbnNmb3JtVGVtcGxhdGUpfXNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhwcm9wcyxwcmV2UHJvcHMpe3JldHVybiBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMocHJvcHMscHJldlByb3BzKX1oYW5kbGVDaGlsZE1vdGlvblZhbHVlKCl7dGhpcy5jaGlsZFN1YnNjcmlwdGlvbiYmKHRoaXMuY2hpbGRTdWJzY3JpcHRpb24oKSxkZWxldGUgdGhpcy5jaGlsZFN1YnNjcmlwdGlvbik7bGV0e2NoaWxkcmVufT10aGlzLnByb3BzOygwLGlzX21vdGlvbl92YWx1ZS5pKShjaGlsZHJlbikmJih0aGlzLmNoaWxkU3Vic2NyaXB0aW9uPWNoaWxkcmVuLm9uKCJjaGFuZ2UiLGxhdGVzdD0+e3RoaXMuY3VycmVudCYmKHRoaXMuY3VycmVudC50ZXh0Q29udGVudD1gJHtsYXRlc3R9YCl9KSl9cmVuZGVySW5zdGFuY2UoaW5zdGFuY2UscmVuZGVyU3RhdGUsc3R5bGVQcm9wLHByb2plY3Rpb24pe3JlbmRlckhUTUwoaW5zdGFuY2UscmVuZGVyU3RhdGUsc3R5bGVQcm9wLHByb2plY3Rpb24pfX1jbGFzcyBTVkdWaXN1YWxFbGVtZW50IGV4dGVuZHMgRE9NVmlzdWFsRWxlbWVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5pc1NWR1RhZz0hMX1nZXRCYXNlVGFyZ2V0RnJvbVByb3BzKHByb3BzLGtleSl7cmV0dXJuIHByb3BzW2tleV19cmVhZFZhbHVlRnJvbUluc3RhbmNlKGluc3RhbmNlLGtleSl7aWYodXRpbHNfdHJhbnNmb3JtLkcuaGFzKGtleSkpe2xldCBkZWZhdWx0VHlwZT0oMCxkZWZhdWx0cy5BKShrZXkpO3JldHVybiBkZWZhdWx0VHlwZSYmZGVmYXVsdFR5cGUuZGVmYXVsdHx8MH1yZXR1cm4ga2V5PWNhbWVsQ2FzZUF0dHJpYnV0ZXMuaGFzKGtleSk/a2V5OmNhbWVsVG9EYXNoKGtleSksaW5zdGFuY2UuZ2V0QXR0cmlidXRlKGtleSl9bWVhc3VyZUluc3RhbmNlVmlld3BvcnRCb3goKXtyZXR1cm4oMCxtb2RlbHMuZE8pKCl9c2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzKHByb3BzLHByZXZQcm9wcyl7cmV0dXJuIHNjcmFwZV9tb3Rpb25fdmFsdWVzX3NjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhwcm9wcyxwcmV2UHJvcHMpfWJ1aWxkKHJlbmRlclN0YXRlLGxhdGVzdFZhbHVlcyxvcHRpb25zLHByb3BzKXtidWlsZFNWR0F0dHJzKHJlbmRlclN0YXRlLGxhdGVzdFZhbHVlcyxvcHRpb25zLHRoaXMuaXNTVkdUYWcscHJvcHMudHJhbnNmb3JtVGVtcGxhdGUpfXJlbmRlckluc3RhbmNlKGluc3RhbmNlLHJlbmRlclN0YXRlLHN0eWxlUHJvcCxwcm9qZWN0aW9uKXtyZW5kZXJTVkcoaW5zdGFuY2UscmVuZGVyU3RhdGUsc3R5bGVQcm9wLHByb2plY3Rpb24pfW1vdW50KGluc3RhbmNlKXt0aGlzLmlzU1ZHVGFnPWlzU1ZHVGFnKGluc3RhbmNlLnRhZ05hbWUpLHN1cGVyLm1vdW50KGluc3RhbmNlKX19bGV0IGNyZWF0ZV92aXN1YWxfZWxlbWVudF9jcmVhdGVEb21WaXN1YWxFbGVtZW50PShDb21wb25lbnQsb3B0aW9ucyk9PmlzU1ZHQ29tcG9uZW50KENvbXBvbmVudCk/bmV3IFNWR1Zpc3VhbEVsZW1lbnQob3B0aW9ucyx7ZW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRpb246ITF9KTpuZXcgSFRNTFZpc3VhbEVsZW1lbnQob3B0aW9ucyx7ZW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRpb246ITB9KSxwcmVsb2FkZWRGZWF0dXJlcz17YW5pbWF0aW9uOntGZWF0dXJlOmNsYXNzIGV4dGVuZHMgRmVhdHVyZXtjb25zdHJ1Y3Rvcihub2RlKXtzdXBlcihub2RlKSxub2RlLmFuaW1hdGlvblN0YXRlfHwobm9kZS5hbmltYXRpb25TdGF0ZT1mdW5jdGlvbih2aXN1YWxFbGVtZW50KXtsZXQgYW5pbWF0ZT1hbmltYXRpb25zPT5Qcm9taXNlLmFsbChhbmltYXRpb25zLm1hcCgoe2FuaW1hdGlvbixvcHRpb25zfSk9PihmdW5jdGlvbih2aXN1YWxFbGVtZW50LGRlZmluaXRpb24sb3B0aW9ucz17fSl7bGV0IGFuaW1hdGlvbjtpZih2aXN1YWxFbGVtZW50Lm5vdGlmeSgiQW5pbWF0aW9uU3RhcnQiLGRlZmluaXRpb24pLEFycmF5LmlzQXJyYXkoZGVmaW5pdGlvbikpe2xldCBhbmltYXRpb25zPWRlZmluaXRpb24ubWFwKHZhcmlhbnQ9PmFuaW1hdGVWYXJpYW50KHZpc3VhbEVsZW1lbnQsdmFyaWFudCxvcHRpb25zKSk7YW5pbWF0aW9uPVByb21pc2UuYWxsKGFuaW1hdGlvbnMpfWVsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBkZWZpbml0aW9uKWFuaW1hdGlvbj1hbmltYXRlVmFyaWFudCh2aXN1YWxFbGVtZW50LGRlZmluaXRpb24sb3B0aW9ucyk7ZWxzZXtsZXQgcmVzb2x2ZWREZWZpbml0aW9uPSJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbml0aW9uP3Jlc29sdmVWYXJpYW50KHZpc3VhbEVsZW1lbnQsZGVmaW5pdGlvbixvcHRpb25zLmN1c3RvbSk6ZGVmaW5pdGlvbjthbmltYXRpb249UHJvbWlzZS5hbGwoYW5pbWF0ZVRhcmdldCh2aXN1YWxFbGVtZW50LHJlc29sdmVkRGVmaW5pdGlvbixvcHRpb25zKSl9cmV0dXJuIGFuaW1hdGlvbi50aGVuKCgpPT52aXN1YWxFbGVtZW50Lm5vdGlmeSgiQW5pbWF0aW9uQ29tcGxldGUiLGRlZmluaXRpb24pKX0pKHZpc3VhbEVsZW1lbnQsYW5pbWF0aW9uLG9wdGlvbnMpKSksc3RhdGU9e2FuaW1hdGU6Y3JlYXRlVHlwZVN0YXRlKCEwKSx3aGlsZUluVmlldzpjcmVhdGVUeXBlU3RhdGUoKSx3aGlsZUhvdmVyOmNyZWF0ZVR5cGVTdGF0ZSgpLHdoaWxlVGFwOmNyZWF0ZVR5cGVTdGF0ZSgpLHdoaWxlRHJhZzpjcmVhdGVUeXBlU3RhdGUoKSx3aGlsZUZvY3VzOmNyZWF0ZVR5cGVTdGF0ZSgpLGV4aXQ6Y3JlYXRlVHlwZVN0YXRlKCl9LGlzSW5pdGlhbFJlbmRlcj0hMCxidWlsZFJlc29sdmVkVHlwZVZhbHVlcz0oYWNjLGRlZmluaXRpb24pPT57bGV0IHJlc29sdmVkPXJlc29sdmVWYXJpYW50KHZpc3VhbEVsZW1lbnQsZGVmaW5pdGlvbik7aWYocmVzb2x2ZWQpe2xldHt0cmFuc2l0aW9uLHRyYW5zaXRpb25FbmQsLi4udGFyZ2V0fT1yZXNvbHZlZDthY2M9ey4uLmFjYywuLi50YXJnZXQsLi4udHJhbnNpdGlvbkVuZH19cmV0dXJuIGFjY307ZnVuY3Rpb24gYW5pbWF0ZUNoYW5nZXMob3B0aW9ucyxjaGFuZ2VkQWN0aXZlVHlwZSl7bGV0IHByb3BzPXZpc3VhbEVsZW1lbnQuZ2V0UHJvcHMoKSxjb250ZXh0PXZpc3VhbEVsZW1lbnQuZ2V0VmFyaWFudENvbnRleHQoITApfHx7fSxhbmltYXRpb25zPVtdLHJlbW92ZWRLZXlzPW5ldyBTZXQsZW5jb3VudGVyZWRLZXlzPXt9LHJlbW92ZWRWYXJpYW50SW5kZXg9MS8wO2ZvcihsZXQgaT0wO2k8bnVtQW5pbWF0aW9uVHlwZXM7aSsrKXt2YXIgcHJldjtsZXQgdHlwZT1yZXZlcnNlUHJpb3JpdHlPcmRlcltpXSx0eXBlU3RhdGU9c3RhdGVbdHlwZV0scHJvcD12b2lkIDAhPT1wcm9wc1t0eXBlXT9wcm9wc1t0eXBlXTpjb250ZXh0W3R5cGVdLHByb3BJc1ZhcmlhbnQ9aXNWYXJpYW50TGFiZWwocHJvcCksYWN0aXZlRGVsdGE9dHlwZT09PWNoYW5nZWRBY3RpdmVUeXBlP3R5cGVTdGF0ZS5pc0FjdGl2ZTpudWxsOyExPT09YWN0aXZlRGVsdGEmJihyZW1vdmVkVmFyaWFudEluZGV4PWkpO2xldCBpc0luaGVyaXRlZD1wcm9wPT09Y29udGV4dFt0eXBlXSYmcHJvcCE9PXByb3BzW3R5cGVdJiZwcm9wSXNWYXJpYW50O2lmKGlzSW5oZXJpdGVkJiZpc0luaXRpYWxSZW5kZXImJnZpc3VhbEVsZW1lbnQubWFudWFsbHlBbmltYXRlT25Nb3VudCYmKGlzSW5oZXJpdGVkPSExKSx0eXBlU3RhdGUucHJvdGVjdGVkS2V5cz17Li4uZW5jb3VudGVyZWRLZXlzfSwhdHlwZVN0YXRlLmlzQWN0aXZlJiZudWxsPT09YWN0aXZlRGVsdGF8fCFwcm9wJiYhdHlwZVN0YXRlLnByZXZQcm9wfHxpc0FuaW1hdGlvbkNvbnRyb2xzKHByb3ApfHwiYm9vbGVhbiI9PXR5cGVvZiBwcm9wKWNvbnRpbnVlO2xldCB2YXJpYW50RGlkQ2hhbmdlPShwcmV2PXR5cGVTdGF0ZS5wcmV2UHJvcCwic3RyaW5nIj09dHlwZW9mIHByb3A/cHJvcCE9PXByZXY6ISFBcnJheS5pc0FycmF5KHByb3ApJiYhc2hhbGxvd0NvbXBhcmUocHJvcCxwcmV2KSksc2hvdWxkQW5pbWF0ZVR5cGU9dmFyaWFudERpZENoYW5nZXx8dHlwZT09PWNoYW5nZWRBY3RpdmVUeXBlJiZ0eXBlU3RhdGUuaXNBY3RpdmUmJiFpc0luaGVyaXRlZCYmcHJvcElzVmFyaWFudHx8aT5yZW1vdmVkVmFyaWFudEluZGV4JiZwcm9wSXNWYXJpYW50LGRlZmluaXRpb25MaXN0PUFycmF5LmlzQXJyYXkocHJvcCk/cHJvcDpbcHJvcF0scmVzb2x2ZWRWYWx1ZXM9ZGVmaW5pdGlvbkxpc3QucmVkdWNlKGJ1aWxkUmVzb2x2ZWRUeXBlVmFsdWVzLHt9KTshMT09PWFjdGl2ZURlbHRhJiYocmVzb2x2ZWRWYWx1ZXM9e30pO2xldHtwcmV2UmVzb2x2ZWRWYWx1ZXM9e319PXR5cGVTdGF0ZSxhbGxLZXlzPXsuLi5wcmV2UmVzb2x2ZWRWYWx1ZXMsLi4ucmVzb2x2ZWRWYWx1ZXN9LG1hcmtUb0FuaW1hdGU9a2V5PT57c2hvdWxkQW5pbWF0ZVR5cGU9ITAscmVtb3ZlZEtleXMuZGVsZXRlKGtleSksdHlwZVN0YXRlLm5lZWRzQW5pbWF0aW5nW2tleV09ITB9O2ZvcihsZXQga2V5IGluIGFsbEtleXMpe2xldCBuZXh0PXJlc29sdmVkVmFsdWVzW2tleV0scHJldjE9cHJldlJlc29sdmVkVmFsdWVzW2tleV07ZW5jb3VudGVyZWRLZXlzLmhhc093blByb3BlcnR5KGtleSl8fChuZXh0IT09cHJldjE/KDAsaXNfa2V5ZnJhbWVzX3RhcmdldC5DKShuZXh0KSYmKDAsaXNfa2V5ZnJhbWVzX3RhcmdldC5DKShwcmV2MSk/IXNoYWxsb3dDb21wYXJlKG5leHQscHJldjEpfHx2YXJpYW50RGlkQ2hhbmdlP21hcmtUb0FuaW1hdGUoa2V5KTp0eXBlU3RhdGUucHJvdGVjdGVkS2V5c1trZXldPSEwOnZvaWQgMCE9PW5leHQ/bWFya1RvQW5pbWF0ZShrZXkpOnJlbW92ZWRLZXlzLmFkZChrZXkpOnZvaWQgMCE9PW5leHQmJnJlbW92ZWRLZXlzLmhhcyhrZXkpP21hcmtUb0FuaW1hdGUoa2V5KTp0eXBlU3RhdGUucHJvdGVjdGVkS2V5c1trZXldPSEwKX10eXBlU3RhdGUucHJldlByb3A9cHJvcCx0eXBlU3RhdGUucHJldlJlc29sdmVkVmFsdWVzPXJlc29sdmVkVmFsdWVzLHR5cGVTdGF0ZS5pc0FjdGl2ZSYmKGVuY291bnRlcmVkS2V5cz17Li4uZW5jb3VudGVyZWRLZXlzLC4uLnJlc29sdmVkVmFsdWVzfSksaXNJbml0aWFsUmVuZGVyJiZ2aXN1YWxFbGVtZW50LmJsb2NrSW5pdGlhbEFuaW1hdGlvbiYmKHNob3VsZEFuaW1hdGVUeXBlPSExKSxzaG91bGRBbmltYXRlVHlwZSYmIWlzSW5oZXJpdGVkJiZhbmltYXRpb25zLnB1c2goLi4uZGVmaW5pdGlvbkxpc3QubWFwKGFuaW1hdGlvbj0+KHthbmltYXRpb246YW5pbWF0aW9uLG9wdGlvbnM6e3R5cGUsLi4ub3B0aW9uc319KSkpfWlmKHJlbW92ZWRLZXlzLnNpemUpe2xldCBmYWxsYmFja0FuaW1hdGlvbj17fTtyZW1vdmVkS2V5cy5mb3JFYWNoKGtleT0+e2xldCBmYWxsYmFja1RhcmdldD12aXN1YWxFbGVtZW50LmdldEJhc2VUYXJnZXQoa2V5KTt2b2lkIDAhPT1mYWxsYmFja1RhcmdldCYmKGZhbGxiYWNrQW5pbWF0aW9uW2tleV09ZmFsbGJhY2tUYXJnZXQpfSksYW5pbWF0aW9ucy5wdXNoKHthbmltYXRpb246ZmFsbGJhY2tBbmltYXRpb259KX1sZXQgc2hvdWxkQW5pbWF0ZT1Cb29sZWFuKGFuaW1hdGlvbnMubGVuZ3RoKTtyZXR1cm4gaXNJbml0aWFsUmVuZGVyJiYhMT09PXByb3BzLmluaXRpYWwmJiF2aXN1YWxFbGVtZW50Lm1hbnVhbGx5QW5pbWF0ZU9uTW91bnQmJihzaG91bGRBbmltYXRlPSExKSxpc0luaXRpYWxSZW5kZXI9ITEsc2hvdWxkQW5pbWF0ZT9hbmltYXRlKGFuaW1hdGlvbnMpOlByb21pc2UucmVzb2x2ZSgpfXJldHVybnthbmltYXRlQ2hhbmdlcyxzZXRBY3RpdmU6ZnVuY3Rpb24odHlwZSxpc0FjdGl2ZSxvcHRpb25zKXt2YXIgX2E7aWYoc3RhdGVbdHlwZV0uaXNBY3RpdmU9PT1pc0FjdGl2ZSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7bnVsbD09PShfYT12aXN1YWxFbGVtZW50LnZhcmlhbnRDaGlsZHJlbil8fHZvaWQgMD09PV9hfHxfYS5mb3JFYWNoKGNoaWxkPT57dmFyIF9hO3JldHVybiBudWxsPT09KF9hPWNoaWxkLmFuaW1hdGlvblN0YXRlKXx8dm9pZCAwPT09X2E/dm9pZCAwOl9hLnNldEFjdGl2ZSh0eXBlLGlzQWN0aXZlKX0pLHN0YXRlW3R5cGVdLmlzQWN0aXZlPWlzQWN0aXZlO2xldCBhbmltYXRpb25zPWFuaW1hdGVDaGFuZ2VzKG9wdGlvbnMsdHlwZSk7Zm9yKGxldCBrZXkgaW4gc3RhdGUpc3RhdGVba2V5XS5wcm90ZWN0ZWRLZXlzPXt9O3JldHVybiBhbmltYXRpb25zfSxzZXRBbmltYXRlRnVuY3Rpb246ZnVuY3Rpb24obWFrZUFuaW1hdG9yKXthbmltYXRlPW1ha2VBbmltYXRvcih2aXN1YWxFbGVtZW50KX0sZ2V0U3RhdGU6KCk9PnN0YXRlfX0obm9kZSkpfXVwZGF0ZUFuaW1hdGlvbkNvbnRyb2xzU3Vic2NyaXB0aW9uKCl7bGV0e2FuaW1hdGV9PXRoaXMubm9kZS5nZXRQcm9wcygpO3RoaXMudW5tb3VudCgpLGlzQW5pbWF0aW9uQ29udHJvbHMoYW5pbWF0ZSkmJih0aGlzLnVubW91bnQ9YW5pbWF0ZS5zdWJzY3JpYmUodGhpcy5ub2RlKSl9bW91bnQoKXt0aGlzLnVwZGF0ZUFuaW1hdGlvbkNvbnRyb2xzU3Vic2NyaXB0aW9uKCl9dXBkYXRlKCl7bGV0e2FuaW1hdGV9PXRoaXMubm9kZS5nZXRQcm9wcygpLHthbmltYXRlOnByZXZBbmltYXRlfT10aGlzLm5vZGUucHJldlByb3BzfHx7fTthbmltYXRlIT09cHJldkFuaW1hdGUmJnRoaXMudXBkYXRlQW5pbWF0aW9uQ29udHJvbHNTdWJzY3JpcHRpb24oKX11bm1vdW50KCl7fX19LGV4aXQ6e0ZlYXR1cmU6Y2xhc3MgZXh0ZW5kcyBGZWF0dXJle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmlkPWlkKyt9dXBkYXRlKCl7aWYoIXRoaXMubm9kZS5wcmVzZW5jZUNvbnRleHQpcmV0dXJuO2xldHtpc1ByZXNlbnQsb25FeGl0Q29tcGxldGUsY3VzdG9tfT10aGlzLm5vZGUucHJlc2VuY2VDb250ZXh0LHtpc1ByZXNlbnQ6cHJldklzUHJlc2VudH09dGhpcy5ub2RlLnByZXZQcmVzZW5jZUNvbnRleHR8fHt9O2lmKCF0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGV8fGlzUHJlc2VudD09PXByZXZJc1ByZXNlbnQpcmV0dXJuO2xldCBleGl0QW5pbWF0aW9uPXRoaXMubm9kZS5hbmltYXRpb25TdGF0ZS5zZXRBY3RpdmUoImV4aXQiLCFpc1ByZXNlbnQse2N1c3RvbTpudWxsIT1jdXN0b20/Y3VzdG9tOnRoaXMubm9kZS5nZXRQcm9wcygpLmN1c3RvbX0pO29uRXhpdENvbXBsZXRlJiYhaXNQcmVzZW50JiZleGl0QW5pbWF0aW9uLnRoZW4oKCk9Pm9uRXhpdENvbXBsZXRlKHRoaXMuaWQpKX1tb3VudCgpe2xldHtyZWdpc3Rlcn09dGhpcy5ub2RlLnByZXNlbmNlQ29udGV4dHx8e307cmVnaXN0ZXImJih0aGlzLnVubW91bnQ9cmVnaXN0ZXIodGhpcy5pZCkpfXVubW91bnQoKXt9fX0saW5WaWV3OntGZWF0dXJlOmNsYXNzIGV4dGVuZHMgRmVhdHVyZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5oYXNFbnRlcmVkVmlldz0hMSx0aGlzLmlzSW5WaWV3PSExfXN0YXJ0T2JzZXJ2ZXIoKXt0aGlzLnVubW91bnQoKTtsZXR7dmlld3BvcnQ9e319PXRoaXMubm9kZS5nZXRQcm9wcygpLHtyb290LG1hcmdpbjpyb290TWFyZ2luLGFtb3VudD0ic29tZSIsb25jZX09dmlld3BvcnQsb3B0aW9ucz17cm9vdDpyb290P3Jvb3QuY3VycmVudDp2b2lkIDAscm9vdE1hcmdpbix0aHJlc2hvbGQ6Im51bWJlciI9PXR5cGVvZiBhbW91bnQ/YW1vdW50OnRocmVzaG9sZE5hbWVzW2Ftb3VudF19LG9uSW50ZXJzZWN0aW9uVXBkYXRlPWVudHJ5PT57bGV0e2lzSW50ZXJzZWN0aW5nfT1lbnRyeTtpZih0aGlzLmlzSW5WaWV3PT09aXNJbnRlcnNlY3Rpbmd8fCh0aGlzLmlzSW5WaWV3PWlzSW50ZXJzZWN0aW5nLG9uY2UmJiFpc0ludGVyc2VjdGluZyYmdGhpcy5oYXNFbnRlcmVkVmlldykpcmV0dXJuO2lzSW50ZXJzZWN0aW5nJiYodGhpcy5oYXNFbnRlcmVkVmlldz0hMCksdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlJiZ0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKCJ3aGlsZUluVmlldyIsaXNJbnRlcnNlY3RpbmcpO2xldHtvblZpZXdwb3J0RW50ZXIsb25WaWV3cG9ydExlYXZlfT10aGlzLm5vZGUuZ2V0UHJvcHMoKSxjYWxsYmFjaz1pc0ludGVyc2VjdGluZz9vblZpZXdwb3J0RW50ZXI6b25WaWV3cG9ydExlYXZlO2NhbGxiYWNrJiZjYWxsYmFjayhlbnRyeSl9O3JldHVybiBmdW5jdGlvbihlbGVtZW50LG9wdGlvbnMsY2FsbGJhY2spe2xldCByb290SW50ZXJlc2VjdGlvbk9ic2VydmVyPWZ1bmN0aW9uKHtyb290LC4uLm9wdGlvbnN9KXtsZXQgbG9va3VwUm9vdD1yb290fHxkb2N1bWVudDtvYnNlcnZlcnMuaGFzKGxvb2t1cFJvb3QpfHxvYnNlcnZlcnMuc2V0KGxvb2t1cFJvb3Qse30pO2xldCByb290T2JzZXJ2ZXJzPW9ic2VydmVycy5nZXQobG9va3VwUm9vdCksa2V5PUpTT04uc3RyaW5naWZ5KG9wdGlvbnMpO3JldHVybiByb290T2JzZXJ2ZXJzW2tleV18fChyb290T2JzZXJ2ZXJzW2tleV09bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZpcmVBbGxPYnNlcnZlckNhbGxiYWNrcyx7cm9vdCwuLi5vcHRpb25zfSkpLHJvb3RPYnNlcnZlcnNba2V5XX0ob3B0aW9ucyk7cmV0dXJuIG9ic2VydmVyQ2FsbGJhY2tzLnNldChlbGVtZW50LGNhbGxiYWNrKSxyb290SW50ZXJlc2VjdGlvbk9ic2VydmVyLm9ic2VydmUoZWxlbWVudCksKCk9PntvYnNlcnZlckNhbGxiYWNrcy5kZWxldGUoZWxlbWVudCkscm9vdEludGVyZXNlY3Rpb25PYnNlcnZlci51bm9ic2VydmUoZWxlbWVudCl9fSh0aGlzLm5vZGUuY3VycmVudCxvcHRpb25zLG9uSW50ZXJzZWN0aW9uVXBkYXRlKX1tb3VudCgpe3RoaXMuc3RhcnRPYnNlcnZlcigpfXVwZGF0ZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpcmV0dXJuO2xldHtwcm9wcyxwcmV2UHJvcHN9PXRoaXMubm9kZSxoYXNPcHRpb25zQ2hhbmdlZD1bImFtb3VudCIsIm1hcmdpbiIsInJvb3QiXS5zb21lKGZ1bmN0aW9uKHt2aWV3cG9ydD17fX0se3ZpZXdwb3J0OnByZXZWaWV3cG9ydD17fX09e30pe3JldHVybiBuYW1lPT52aWV3cG9ydFtuYW1lXSE9PXByZXZWaWV3cG9ydFtuYW1lXX0ocHJvcHMscHJldlByb3BzKSk7aGFzT3B0aW9uc0NoYW5nZWQmJnRoaXMuc3RhcnRPYnNlcnZlcigpfXVubW91bnQoKXt9fX0sdGFwOntGZWF0dXJlOmNsYXNzIGV4dGVuZHMgRmVhdHVyZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5yZW1vdmVTdGFydExpc3RlbmVycz1ub29wLlosdGhpcy5yZW1vdmVFbmRMaXN0ZW5lcnM9bm9vcC5aLHRoaXMucmVtb3ZlQWNjZXNzaWJsZUxpc3RlbmVycz1ub29wLlosdGhpcy5zdGFydFBvaW50ZXJQcmVzcz0oc3RhcnRFdmVudCxzdGFydEluZm8pPT57aWYodGhpcy5yZW1vdmVFbmRMaXN0ZW5lcnMoKSx0aGlzLmlzUHJlc3NpbmcpcmV0dXJuO2xldCBwcm9wcz10aGlzLm5vZGUuZ2V0UHJvcHMoKSxlbmRQb2ludGVyUHJlc3M9KGVuZEV2ZW50LGVuZEluZm8pPT57aWYoIXRoaXMuY2hlY2tQcmVzc0VuZCgpKXJldHVybjtsZXR7b25UYXAsb25UYXBDYW5jZWx9PXRoaXMubm9kZS5nZXRQcm9wcygpO2ZyYW1lbG9vcF9mcmFtZS5XaS51cGRhdGUoKCk9Pntpc05vZGVPckNoaWxkKHRoaXMubm9kZS5jdXJyZW50LGVuZEV2ZW50LnRhcmdldCk/b25UYXAmJm9uVGFwKGVuZEV2ZW50LGVuZEluZm8pOm9uVGFwQ2FuY2VsJiZvblRhcENhbmNlbChlbmRFdmVudCxlbmRJbmZvKX0pfSxyZW1vdmVQb2ludGVyVXBMaXN0ZW5lcj1hZGRQb2ludGVyRXZlbnQod2luZG93LCJwb2ludGVydXAiLGVuZFBvaW50ZXJQcmVzcyx7cGFzc2l2ZTohKHByb3BzLm9uVGFwfHxwcm9wcy5vblBvaW50ZXJVcCl9KSxyZW1vdmVQb2ludGVyQ2FuY2VsTGlzdGVuZXI9YWRkUG9pbnRlckV2ZW50KHdpbmRvdywicG9pbnRlcmNhbmNlbCIsKGNhbmNlbEV2ZW50LGNhbmNlbEluZm8pPT50aGlzLmNhbmNlbFByZXNzKGNhbmNlbEV2ZW50LGNhbmNlbEluZm8pLHtwYXNzaXZlOiEocHJvcHMub25UYXBDYW5jZWx8fHByb3BzLm9uUG9pbnRlckNhbmNlbCl9KTt0aGlzLnJlbW92ZUVuZExpc3RlbmVycz0oMCxwaXBlLnopKHJlbW92ZVBvaW50ZXJVcExpc3RlbmVyLHJlbW92ZVBvaW50ZXJDYW5jZWxMaXN0ZW5lciksdGhpcy5zdGFydFByZXNzKHN0YXJ0RXZlbnQsc3RhcnRJbmZvKX0sdGhpcy5zdGFydEFjY2Vzc2libGVQcmVzcz0oKT0+e2xldCBoYW5kbGVLZXlkb3duPWtleWRvd25FdmVudD0+e2lmKCJFbnRlciIhPT1rZXlkb3duRXZlbnQua2V5fHx0aGlzLmlzUHJlc3NpbmcpcmV0dXJuO2xldCBoYW5kbGVLZXl1cD1rZXl1cEV2ZW50PT57IkVudGVyIj09PWtleXVwRXZlbnQua2V5JiZ0aGlzLmNoZWNrUHJlc3NFbmQoKSYmZmlyZVN5bnRoZXRpY1BvaW50ZXJFdmVudCgidXAiLChldmVudCxpbmZvKT0+e2xldHtvblRhcH09dGhpcy5ub2RlLmdldFByb3BzKCk7b25UYXAmJmZyYW1lbG9vcF9mcmFtZS5XaS51cGRhdGUoKCk9Pm9uVGFwKGV2ZW50LGluZm8pKX0pfTt0aGlzLnJlbW92ZUVuZExpc3RlbmVycygpLHRoaXMucmVtb3ZlRW5kTGlzdGVuZXJzPWFkZERvbUV2ZW50KHRoaXMubm9kZS5jdXJyZW50LCJrZXl1cCIsaGFuZGxlS2V5dXApLGZpcmVTeW50aGV0aWNQb2ludGVyRXZlbnQoImRvd24iLChldmVudCxpbmZvKT0+e3RoaXMuc3RhcnRQcmVzcyhldmVudCxpbmZvKX0pfSxyZW1vdmVLZXlkb3duTGlzdGVuZXI9YWRkRG9tRXZlbnQodGhpcy5ub2RlLmN1cnJlbnQsImtleWRvd24iLGhhbmRsZUtleWRvd24pLGhhbmRsZUJsdXI9KCk9Pnt0aGlzLmlzUHJlc3NpbmcmJmZpcmVTeW50aGV0aWNQb2ludGVyRXZlbnQoImNhbmNlbCIsKGNhbmNlbEV2ZW50LGNhbmNlbEluZm8pPT50aGlzLmNhbmNlbFByZXNzKGNhbmNlbEV2ZW50LGNhbmNlbEluZm8pKX0scmVtb3ZlQmx1ckxpc3RlbmVyPWFkZERvbUV2ZW50KHRoaXMubm9kZS5jdXJyZW50LCJibHVyIixoYW5kbGVCbHVyKTt0aGlzLnJlbW92ZUFjY2Vzc2libGVMaXN0ZW5lcnM9KDAscGlwZS56KShyZW1vdmVLZXlkb3duTGlzdGVuZXIscmVtb3ZlQmx1ckxpc3RlbmVyKX19c3RhcnRQcmVzcyhldmVudCxpbmZvKXt0aGlzLmlzUHJlc3Npbmc9ITA7bGV0e29uVGFwU3RhcnQsd2hpbGVUYXB9PXRoaXMubm9kZS5nZXRQcm9wcygpO3doaWxlVGFwJiZ0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUmJnRoaXMubm9kZS5hbmltYXRpb25TdGF0ZS5zZXRBY3RpdmUoIndoaWxlVGFwIiwhMCksb25UYXBTdGFydCYmZnJhbWVsb29wX2ZyYW1lLldpLnVwZGF0ZSgoKT0+b25UYXBTdGFydChldmVudCxpbmZvKSl9Y2hlY2tQcmVzc0VuZCgpe3RoaXMucmVtb3ZlRW5kTGlzdGVuZXJzKCksdGhpcy5pc1ByZXNzaW5nPSExO2xldCBwcm9wcz10aGlzLm5vZGUuZ2V0UHJvcHMoKTtyZXR1cm4gcHJvcHMud2hpbGVUYXAmJnRoaXMubm9kZS5hbmltYXRpb25TdGF0ZSYmdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlLnNldEFjdGl2ZSgid2hpbGVUYXAiLCExKSwhaXNEcmFnQWN0aXZlKCl9Y2FuY2VsUHJlc3MoZXZlbnQsaW5mbyl7aWYoIXRoaXMuY2hlY2tQcmVzc0VuZCgpKXJldHVybjtsZXR7b25UYXBDYW5jZWx9PXRoaXMubm9kZS5nZXRQcm9wcygpO29uVGFwQ2FuY2VsJiZmcmFtZWxvb3BfZnJhbWUuV2kudXBkYXRlKCgpPT5vblRhcENhbmNlbChldmVudCxpbmZvKSl9bW91bnQoKXtsZXQgcHJvcHM9dGhpcy5ub2RlLmdldFByb3BzKCkscmVtb3ZlUG9pbnRlckxpc3RlbmVyPWFkZFBvaW50ZXJFdmVudCh0aGlzLm5vZGUuY3VycmVudCwicG9pbnRlcmRvd24iLHRoaXMuc3RhcnRQb2ludGVyUHJlc3Mse3Bhc3NpdmU6IShwcm9wcy5vblRhcFN0YXJ0fHxwcm9wcy5vblBvaW50ZXJTdGFydCl9KSxyZW1vdmVGb2N1c0xpc3RlbmVyPWFkZERvbUV2ZW50KHRoaXMubm9kZS5jdXJyZW50LCJmb2N1cyIsdGhpcy5zdGFydEFjY2Vzc2libGVQcmVzcyk7dGhpcy5yZW1vdmVTdGFydExpc3RlbmVycz0oMCxwaXBlLnopKHJlbW92ZVBvaW50ZXJMaXN0ZW5lcixyZW1vdmVGb2N1c0xpc3RlbmVyKX11bm1vdW50KCl7dGhpcy5yZW1vdmVTdGFydExpc3RlbmVycygpLHRoaXMucmVtb3ZlRW5kTGlzdGVuZXJzKCksdGhpcy5yZW1vdmVBY2Nlc3NpYmxlTGlzdGVuZXJzKCl9fX0sZm9jdXM6e0ZlYXR1cmU6Y2xhc3MgZXh0ZW5kcyBGZWF0dXJle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmlzQWN0aXZlPSExfW9uRm9jdXMoKXtsZXQgaXNGb2N1c1Zpc2libGU9ITE7dHJ5e2lzRm9jdXNWaXNpYmxlPXRoaXMubm9kZS5jdXJyZW50Lm1hdGNoZXMoIjpmb2N1cy12aXNpYmxlIil9Y2F0Y2goZSl7aXNGb2N1c1Zpc2libGU9ITB9aXNGb2N1c1Zpc2libGUmJnRoaXMubm9kZS5hbmltYXRpb25TdGF0ZSYmKHRoaXMubm9kZS5hbmltYXRpb25TdGF0ZS5zZXRBY3RpdmUoIndoaWxlRm9jdXMiLCEwKSx0aGlzLmlzQWN0aXZlPSEwKX1vbkJsdXIoKXt0aGlzLmlzQWN0aXZlJiZ0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUmJih0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKCJ3aGlsZUZvY3VzIiwhMSksdGhpcy5pc0FjdGl2ZT0hMSl9bW91bnQoKXt0aGlzLnVubW91bnQ9KDAscGlwZS56KShhZGREb21FdmVudCh0aGlzLm5vZGUuY3VycmVudCwiZm9jdXMiLCgpPT50aGlzLm9uRm9jdXMoKSksYWRkRG9tRXZlbnQodGhpcy5ub2RlLmN1cnJlbnQsImJsdXIiLCgpPT50aGlzLm9uQmx1cigpKSl9dW5tb3VudCgpe319fSxob3Zlcjp7RmVhdHVyZTpjbGFzcyBleHRlbmRzIEZlYXR1cmV7bW91bnQoKXt0aGlzLnVubW91bnQ9KDAscGlwZS56KShhZGRIb3ZlckV2ZW50KHRoaXMubm9kZSwhMCksYWRkSG92ZXJFdmVudCh0aGlzLm5vZGUsITEpKX11bm1vdW50KCl7fX19LHBhbjp7RmVhdHVyZTpjbGFzcyBleHRlbmRzIEZlYXR1cmV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVtb3ZlUG9pbnRlckRvd25MaXN0ZW5lcj1ub29wLlp9b25Qb2ludGVyRG93bihwb2ludGVyRG93bkV2ZW50KXt0aGlzLnNlc3Npb249bmV3IFBhblNlc3Npb24ocG9pbnRlckRvd25FdmVudCx0aGlzLmNyZWF0ZVBhbkhhbmRsZXJzKCkse3RyYW5zZm9ybVBhZ2VQb2ludDp0aGlzLm5vZGUuZ2V0VHJhbnNmb3JtUGFnZVBvaW50KCl9KX1jcmVhdGVQYW5IYW5kbGVycygpe2xldHtvblBhblNlc3Npb25TdGFydCxvblBhblN0YXJ0LG9uUGFuLG9uUGFuRW5kfT10aGlzLm5vZGUuZ2V0UHJvcHMoKTtyZXR1cm57b25TZXNzaW9uU3RhcnQ6YXN5bmNIYW5kbGVyKG9uUGFuU2Vzc2lvblN0YXJ0KSxvblN0YXJ0OmFzeW5jSGFuZGxlcihvblBhblN0YXJ0KSxvbk1vdmU6b25QYW4sb25FbmQ6KGV2ZW50LGluZm8pPT57ZGVsZXRlIHRoaXMuc2Vzc2lvbixvblBhbkVuZCYmZnJhbWVsb29wX2ZyYW1lLldpLnVwZGF0ZSgoKT0+b25QYW5FbmQoZXZlbnQsaW5mbykpfX19bW91bnQoKXt0aGlzLnJlbW92ZVBvaW50ZXJEb3duTGlzdGVuZXI9YWRkUG9pbnRlckV2ZW50KHRoaXMubm9kZS5jdXJyZW50LCJwb2ludGVyZG93biIsZXZlbnQ9PnRoaXMub25Qb2ludGVyRG93bihldmVudCkpfXVwZGF0ZSgpe3RoaXMuc2Vzc2lvbiYmdGhpcy5zZXNzaW9uLnVwZGF0ZUhhbmRsZXJzKHRoaXMuY3JlYXRlUGFuSGFuZGxlcnMoKSl9dW5tb3VudCgpe3RoaXMucmVtb3ZlUG9pbnRlckRvd25MaXN0ZW5lcigpLHRoaXMuc2Vzc2lvbiYmdGhpcy5zZXNzaW9uLmVuZCgpfX19LGRyYWc6e0ZlYXR1cmU6Y2xhc3MgZXh0ZW5kcyBGZWF0dXJle2NvbnN0cnVjdG9yKG5vZGUpe3N1cGVyKG5vZGUpLHRoaXMucmVtb3ZlR3JvdXBDb250cm9scz1ub29wLlosdGhpcy5yZW1vdmVMaXN0ZW5lcnM9bm9vcC5aLHRoaXMuY29udHJvbHM9bmV3IFZpc3VhbEVsZW1lbnREcmFnQ29udHJvbHMobm9kZSl9bW91bnQoKXtsZXR7ZHJhZ0NvbnRyb2xzfT10aGlzLm5vZGUuZ2V0UHJvcHMoKTtkcmFnQ29udHJvbHMmJih0aGlzLnJlbW92ZUdyb3VwQ29udHJvbHM9ZHJhZ0NvbnRyb2xzLnN1YnNjcmliZSh0aGlzLmNvbnRyb2xzKSksdGhpcy5yZW1vdmVMaXN0ZW5lcnM9dGhpcy5jb250cm9scy5hZGRMaXN0ZW5lcnMoKXx8bm9vcC5afXVubW91bnQoKXt0aGlzLnJlbW92ZUdyb3VwQ29udHJvbHMoKSx0aGlzLnJlbW92ZUxpc3RlbmVycygpfX0sUHJvamVjdGlvbk5vZGU6SFRNTFByb2plY3Rpb25Ob2RlLE1lYXN1cmVMYXlvdXQ6TWVhc3VyZUxheW91dH0sbGF5b3V0OntQcm9qZWN0aW9uTm9kZTpIVE1MUHJvamVjdGlvbk5vZGUsTWVhc3VyZUxheW91dDpNZWFzdXJlTGF5b3V0fX0sbW90aW9uPWZ1bmN0aW9uKGNyZWF0ZUNvbmZpZyl7ZnVuY3Rpb24gY3VzdG9tKENvbXBvbmVudCxjdXN0b21Nb3Rpb25Db21wb25lbnRDb25maWc9e30pe3JldHVybiBmdW5jdGlvbih7cHJlbG9hZGVkRmVhdHVyZXMsY3JlYXRlVmlzdWFsRWxlbWVudCx1c2VSZW5kZXIsdXNlVmlzdWFsU3RhdGUsQ29tcG9uZW50fSl7cHJlbG9hZGVkRmVhdHVyZXMmJmZ1bmN0aW9uKGZlYXR1cmVzKXtmb3IobGV0IGtleSBpbiBmZWF0dXJlcylmZWF0dXJlRGVmaW5pdGlvbnNba2V5XT17Li4uZmVhdHVyZURlZmluaXRpb25zW2tleV0sLi4uZmVhdHVyZXNba2V5XX19KHByZWxvYWRlZEZlYXR1cmVzKTtsZXQgRm9yd2FyZFJlZkNvbXBvbmVudD0oMCxyZWFjdC5mb3J3YXJkUmVmKShmdW5jdGlvbihwcm9wcyxleHRlcm5hbFJlZil7dmFyIHZpc3VhbEVsZW1lbnQsZXh0ZXJuYWxSZWYxO2xldCBNZWFzdXJlTGF5b3V0O2xldCBjb25maWdBbmRQcm9wcz17Li4uKDAscmVhY3QudXNlQ29udGV4dCkoTW90aW9uQ29uZmlnQ29udGV4dC5fKSwuLi5wcm9wcyxsYXlvdXRJZDpmdW5jdGlvbih7bGF5b3V0SWR9KXtsZXQgbGF5b3V0R3JvdXBJZD0oMCxyZWFjdC51c2VDb250ZXh0KShMYXlvdXRHcm91cENvbnRleHQucCkuaWQ7cmV0dXJuIGxheW91dEdyb3VwSWQmJnZvaWQgMCE9PWxheW91dElkP2xheW91dEdyb3VwSWQrIi0iK2xheW91dElkOmxheW91dElkfShwcm9wcyl9LHtpc1N0YXRpY309Y29uZmlnQW5kUHJvcHMsY29udGV4dD1mdW5jdGlvbihwcm9wcyl7bGV0e2luaXRpYWwsYW5pbWF0ZX09ZnVuY3Rpb24ocHJvcHMsY29udGV4dCl7aWYoaXNDb250cm9sbGluZ1ZhcmlhbnRzKHByb3BzKSl7bGV0e2luaXRpYWwsYW5pbWF0ZX09cHJvcHM7cmV0dXJue2luaXRpYWw6ITE9PT1pbml0aWFsfHxpc1ZhcmlhbnRMYWJlbChpbml0aWFsKT9pbml0aWFsOnZvaWQgMCxhbmltYXRlOmlzVmFyaWFudExhYmVsKGFuaW1hdGUpP2FuaW1hdGU6dm9pZCAwfX1yZXR1cm4hMSE9PXByb3BzLmluaGVyaXQ/Y29udGV4dDp7fX0ocHJvcHMsKDAscmVhY3QudXNlQ29udGV4dCkoTW90aW9uQ29udGV4dCkpO3JldHVybigwLHJlYWN0LnVzZU1lbW8pKCgpPT4oe2luaXRpYWwsYW5pbWF0ZX0pLFt2YXJpYW50TGFiZWxzQXNEZXBlbmRlbmN5KGluaXRpYWwpLHZhcmlhbnRMYWJlbHNBc0RlcGVuZGVuY3koYW5pbWF0ZSldKX0ocHJvcHMpLHZpc3VhbFN0YXRlPXVzZVZpc3VhbFN0YXRlKHByb3BzLGlzU3RhdGljKTtpZighaXNTdGF0aWMmJmlzX2Jyb3dzZXIuail7Y29udGV4dC52aXN1YWxFbGVtZW50PWZ1bmN0aW9uKENvbXBvbmVudCx2aXN1YWxTdGF0ZSxwcm9wcyxjcmVhdGVWaXN1YWxFbGVtZW50KXtsZXR7dmlzdWFsRWxlbWVudDpwYXJlbnR9PSgwLHJlYWN0LnVzZUNvbnRleHQpKE1vdGlvbkNvbnRleHQpLGxhenlDb250ZXh0PSgwLHJlYWN0LnVzZUNvbnRleHQpKExhenlDb250ZXh0KSxwcmVzZW5jZUNvbnRleHQ9KDAscmVhY3QudXNlQ29udGV4dCkoY29udGV4dF9QcmVzZW5jZUNvbnRleHQuTykscmVkdWNlZE1vdGlvbkNvbmZpZz0oMCxyZWFjdC51c2VDb250ZXh0KShNb3Rpb25Db25maWdDb250ZXh0Ll8pLnJlZHVjZWRNb3Rpb24sdmlzdWFsRWxlbWVudFJlZj0oMCxyZWFjdC51c2VSZWYpKCk7Y3JlYXRlVmlzdWFsRWxlbWVudD1jcmVhdGVWaXN1YWxFbGVtZW50fHxsYXp5Q29udGV4dC5yZW5kZXJlciwhdmlzdWFsRWxlbWVudFJlZi5jdXJyZW50JiZjcmVhdGVWaXN1YWxFbGVtZW50JiYodmlzdWFsRWxlbWVudFJlZi5jdXJyZW50PWNyZWF0ZVZpc3VhbEVsZW1lbnQoQ29tcG9uZW50LHt2aXN1YWxTdGF0ZSxwYXJlbnQscHJvcHMscHJlc2VuY2VDb250ZXh0LGJsb2NrSW5pdGlhbEFuaW1hdGlvbjohIXByZXNlbmNlQ29udGV4dCYmITE9PT1wcmVzZW5jZUNvbnRleHQuaW5pdGlhbCxyZWR1Y2VkTW90aW9uQ29uZmlnfSkpO2xldCB2aXN1YWxFbGVtZW50PXZpc3VhbEVsZW1lbnRSZWYuY3VycmVudDsoMCxyZWFjdC51c2VJbnNlcnRpb25FZmZlY3QpKCgpPT57dmlzdWFsRWxlbWVudCYmdmlzdWFsRWxlbWVudC51cGRhdGUocHJvcHMscHJlc2VuY2VDb250ZXh0KX0pO2xldCBjYW5IYW5kb2ZmPSgwLHJlYWN0LnVzZVJlZikoQm9vbGVhbih3aW5kb3cuSGFuZG9mZkFwcGVhckFuaW1hdGlvbnMpKTtyZXR1cm4oMCx1c2VfaXNvbW9ycGhpY19lZmZlY3QuTCkoKCk9Pnt2aXN1YWxFbGVtZW50JiYodmlzdWFsRWxlbWVudC5yZW5kZXIoKSxjYW5IYW5kb2ZmLmN1cnJlbnQmJnZpc3VhbEVsZW1lbnQuYW5pbWF0aW9uU3RhdGUmJnZpc3VhbEVsZW1lbnQuYW5pbWF0aW9uU3RhdGUuYW5pbWF0ZUNoYW5nZXMoKSl9KSwoMCxyZWFjdC51c2VFZmZlY3QpKCgpPT57dmlzdWFsRWxlbWVudCYmKHZpc3VhbEVsZW1lbnQudXBkYXRlRmVhdHVyZXMoKSwhY2FuSGFuZG9mZi5jdXJyZW50JiZ2aXN1YWxFbGVtZW50LmFuaW1hdGlvblN0YXRlJiZ2aXN1YWxFbGVtZW50LmFuaW1hdGlvblN0YXRlLmFuaW1hdGVDaGFuZ2VzKCksd2luZG93LkhhbmRvZmZBcHBlYXJBbmltYXRpb25zPXZvaWQgMCxjYW5IYW5kb2ZmLmN1cnJlbnQ9ITEpfSksdmlzdWFsRWxlbWVudH0oQ29tcG9uZW50LHZpc3VhbFN0YXRlLGNvbmZpZ0FuZFByb3BzLGNyZWF0ZVZpc3VhbEVsZW1lbnQpO2xldCBpbml0aWFsTGF5b3V0R3JvdXBDb25maWc9KDAscmVhY3QudXNlQ29udGV4dCkoU3dpdGNoTGF5b3V0R3JvdXBDb250ZXh0KSxpc1N0cmljdD0oMCxyZWFjdC51c2VDb250ZXh0KShMYXp5Q29udGV4dCkuc3RyaWN0O2NvbnRleHQudmlzdWFsRWxlbWVudCYmKE1lYXN1cmVMYXlvdXQ9Y29udGV4dC52aXN1YWxFbGVtZW50LmxvYWRGZWF0dXJlcyhjb25maWdBbmRQcm9wcyxpc1N0cmljdCxwcmVsb2FkZWRGZWF0dXJlcyxpbml0aWFsTGF5b3V0R3JvdXBDb25maWcpKX1yZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChNb3Rpb25Db250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpjb250ZXh0fSxNZWFzdXJlTGF5b3V0JiZjb250ZXh0LnZpc3VhbEVsZW1lbnQ/cmVhY3QuY3JlYXRlRWxlbWVudChNZWFzdXJlTGF5b3V0LHt2aXN1YWxFbGVtZW50OmNvbnRleHQudmlzdWFsRWxlbWVudCwuLi5jb25maWdBbmRQcm9wc30pOm51bGwsdXNlUmVuZGVyKENvbXBvbmVudCxwcm9wcywodmlzdWFsRWxlbWVudD1jb250ZXh0LnZpc3VhbEVsZW1lbnQsZXh0ZXJuYWxSZWYxPWV4dGVybmFsUmVmLCgwLHJlYWN0LnVzZUNhbGxiYWNrKShpbnN0YW5jZT0+e2luc3RhbmNlJiZ2aXN1YWxTdGF0ZS5tb3VudCYmdmlzdWFsU3RhdGUubW91bnQoaW5zdGFuY2UpLHZpc3VhbEVsZW1lbnQmJihpbnN0YW5jZT92aXN1YWxFbGVtZW50Lm1vdW50KGluc3RhbmNlKTp2aXN1YWxFbGVtZW50LnVubW91bnQoKSksZXh0ZXJuYWxSZWYxJiYoImZ1bmN0aW9uIj09dHlwZW9mIGV4dGVybmFsUmVmMT9leHRlcm5hbFJlZjEoaW5zdGFuY2UpOmlzUmVmT2JqZWN0KGV4dGVybmFsUmVmMSkmJihleHRlcm5hbFJlZjEuY3VycmVudD1pbnN0YW5jZSkpfSxbdmlzdWFsRWxlbWVudF0pKSx2aXN1YWxTdGF0ZSxpc1N0YXRpYyxjb250ZXh0LnZpc3VhbEVsZW1lbnQpKX0pO3JldHVybiBGb3J3YXJkUmVmQ29tcG9uZW50W21vdGlvbkNvbXBvbmVudFN5bWJvbF09Q29tcG9uZW50LEZvcndhcmRSZWZDb21wb25lbnR9KGNyZWF0ZUNvbmZpZyhDb21wb25lbnQsY3VzdG9tTW90aW9uQ29tcG9uZW50Q29uZmlnKSl9aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBQcm94eSlyZXR1cm4gY3VzdG9tO2xldCBjb21wb25lbnRDYWNoZT1uZXcgTWFwO3JldHVybiBuZXcgUHJveHkoY3VzdG9tLHtnZXQ6KF90YXJnZXQsa2V5KT0+KGNvbXBvbmVudENhY2hlLmhhcyhrZXkpfHxjb21wb25lbnRDYWNoZS5zZXQoa2V5LGN1c3RvbShrZXkpKSxjb21wb25lbnRDYWNoZS5nZXQoa2V5KSl9KX0oKENvbXBvbmVudCxjb25maWcpPT4oZnVuY3Rpb24oQ29tcG9uZW50LHtmb3J3YXJkTW90aW9uUHJvcHM9ITF9LHByZWxvYWRlZEZlYXR1cmVzLGNyZWF0ZVZpc3VhbEVsZW1lbnQpe2xldCBiYXNlQ29uZmlnPWlzU1ZHQ29tcG9uZW50KENvbXBvbmVudCk/c3ZnTW90aW9uQ29uZmlnOmh0bWxNb3Rpb25Db25maWc7cmV0dXJuey4uLmJhc2VDb25maWcscHJlbG9hZGVkRmVhdHVyZXMsdXNlUmVuZGVyOmZ1bmN0aW9uKGZvcndhcmRNb3Rpb25Qcm9wcz0hMSl7bGV0IHVzZVJlbmRlcj0oQ29tcG9uZW50LHByb3BzLHJlZix7bGF0ZXN0VmFsdWVzfSxpc1N0YXRpYyk9PntsZXQgdXNlVmlzdWFsUHJvcHM9aXNTVkdDb21wb25lbnQoQ29tcG9uZW50KT91c2VTVkdQcm9wczp1c2VIVE1MUHJvcHMsdmlzdWFsUHJvcHM9dXNlVmlzdWFsUHJvcHMocHJvcHMsbGF0ZXN0VmFsdWVzLGlzU3RhdGljLENvbXBvbmVudCksZmlsdGVyZWRQcm9wcz1mdW5jdGlvbihwcm9wcyxpc0RvbSxmb3J3YXJkTW90aW9uUHJvcHMpe2xldCBmaWx0ZXJlZFByb3BzPXt9O2ZvcihsZXQga2V5IGluIHByb3BzKSgidmFsdWVzIiE9PWtleXx8Im9iamVjdCIhPXR5cGVvZiBwcm9wcy52YWx1ZXMpJiYoc2hvdWxkRm9yd2FyZChrZXkpfHwhMD09PWZvcndhcmRNb3Rpb25Qcm9wcyYmaXNWYWxpZE1vdGlvblByb3Aoa2V5KXx8IWlzRG9tJiYhaXNWYWxpZE1vdGlvblByb3Aoa2V5KXx8cHJvcHMuZHJhZ2dhYmxlJiZrZXkuc3RhcnRzV2l0aCgib25EcmFnIikpJiYoZmlsdGVyZWRQcm9wc1trZXldPXByb3BzW2tleV0pO3JldHVybiBmaWx0ZXJlZFByb3BzfShwcm9wcywic3RyaW5nIj09dHlwZW9mIENvbXBvbmVudCxmb3J3YXJkTW90aW9uUHJvcHMpLGVsZW1lbnRQcm9wcz17Li4uZmlsdGVyZWRQcm9wcywuLi52aXN1YWxQcm9wcyxyZWZ9LHtjaGlsZHJlbn09cHJvcHMscmVuZGVyZWRDaGlsZHJlbj0oMCxyZWFjdC51c2VNZW1vKSgoKT0+KDAsaXNfbW90aW9uX3ZhbHVlLmkpKGNoaWxkcmVuKT9jaGlsZHJlbi5nZXQoKTpjaGlsZHJlbixbY2hpbGRyZW5dKTtyZXR1cm4oMCxyZWFjdC5jcmVhdGVFbGVtZW50KShDb21wb25lbnQsey4uLmVsZW1lbnRQcm9wcyxjaGlsZHJlbjpyZW5kZXJlZENoaWxkcmVufSl9O3JldHVybiB1c2VSZW5kZXJ9KGZvcndhcmRNb3Rpb25Qcm9wcyksY3JlYXRlVmlzdWFsRWxlbWVudCxDb21wb25lbnR9fSkoQ29tcG9uZW50LGNvbmZpZyxwcmVsb2FkZWRGZWF0dXJlcyxjcmVhdGVfdmlzdWFsX2VsZW1lbnRfY3JlYXRlRG9tVmlzdWFsRWxlbWVudCkpfSw1NzYzMDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WHA6ZnVuY3Rpb24oKXtyZXR1cm4gY3NzVmFyaWFibGVSZWdleH0sZjk6ZnVuY3Rpb24oKXtyZXR1cm4gaXNDU1NWYXJpYWJsZU5hbWV9LHRtOmZ1bmN0aW9uKCl7cmV0dXJuIGlzQ1NTVmFyaWFibGVUb2tlbn19KTtsZXQgY2hlY2tTdHJpbmdTdGFydHNXaXRoPXRva2VuPT5rZXk9PiJzdHJpbmciPT10eXBlb2Yga2V5JiZrZXkuc3RhcnRzV2l0aCh0b2tlbiksaXNDU1NWYXJpYWJsZU5hbWU9Y2hlY2tTdHJpbmdTdGFydHNXaXRoKCItLSIpLGlzQ1NTVmFyaWFibGVUb2tlbj1jaGVja1N0cmluZ1N0YXJ0c1dpdGgoInZhcigtLSIpLGNzc1ZhcmlhYmxlUmVnZXg9L3ZhclxzKlwoXHMqLS1bXHctXSsoXHMqLFxzKig/Oig/OlteKShdfFwoKD86W14pKF0rfFwoW14pKF0qXCkpKlwpKSopKyk/XHMqXCkvZ30sNzUxOTQ6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaXNTVkdFbGVtZW50KGVsZW1lbnQpe3JldHVybiBlbGVtZW50IGluc3RhbmNlb2YgU1ZHRWxlbWVudCYmInN2ZyIhPT1lbGVtZW50LnRhZ05hbWV9X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se3Y6ZnVuY3Rpb24oKXtyZXR1cm4gaXNTVkdFbGVtZW50fX0pfSw3OTEzNTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7VDpmdW5jdGlvbigpe3JldHVybiBnZXRBbmltYXRhYmxlTm9uZX19KTt2YXIgX3ZhbHVlX3R5cGVzX2NvbXBsZXhfaW5kZXhfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXyg1MTU1MCksX3ZhbHVlX3R5cGVzX2NvbXBsZXhfZmlsdGVyX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oOTcxOTcpLF9kZWZhdWx0c19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI3MjgpO2Z1bmN0aW9uIGdldEFuaW1hdGFibGVOb25lKGtleSx2YWx1ZSl7bGV0IGRlZmF1bHRWYWx1ZVR5cGU9KDAsX2RlZmF1bHRzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkEpKGtleSk7cmV0dXJuIGRlZmF1bHRWYWx1ZVR5cGUhPT1fdmFsdWVfdHlwZXNfY29tcGxleF9maWx0ZXJfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uaCYmKGRlZmF1bHRWYWx1ZVR5cGU9X3ZhbHVlX3R5cGVzX2NvbXBsZXhfaW5kZXhfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uUCksZGVmYXVsdFZhbHVlVHlwZS5nZXRBbmltYXRhYmxlTm9uZT9kZWZhdWx0VmFsdWVUeXBlLmdldEFuaW1hdGFibGVOb25lKHZhbHVlKTp2b2lkIDB9fSwyNzI4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtBOmZ1bmN0aW9uKCl7cmV0dXJuIGdldERlZmF1bHRWYWx1ZVR5cGV9fSk7dmFyIF92YWx1ZV90eXBlc19jb2xvcl9pbmRleF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDg1Mzg1KSxfdmFsdWVfdHlwZXNfY29tcGxleF9maWx0ZXJfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXyg5NzE5NyksX251bWJlcl9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDM2MTczKTtsZXQgZGVmYXVsdFZhbHVlVHlwZXM9ey4uLl9udW1iZXJfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uaixjb2xvcjpfdmFsdWVfdHlwZXNfY29sb3JfaW5kZXhfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uJCxiYWNrZ3JvdW5kQ29sb3I6X3ZhbHVlX3R5cGVzX2NvbG9yX2luZGV4X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLiQsb3V0bGluZUNvbG9yOl92YWx1ZV90eXBlc19jb2xvcl9pbmRleF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy4kLGZpbGw6X3ZhbHVlX3R5cGVzX2NvbG9yX2luZGV4X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLiQsc3Ryb2tlOl92YWx1ZV90eXBlc19jb2xvcl9pbmRleF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy4kLGJvcmRlckNvbG9yOl92YWx1ZV90eXBlc19jb2xvcl9pbmRleF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy4kLGJvcmRlclRvcENvbG9yOl92YWx1ZV90eXBlc19jb2xvcl9pbmRleF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy4kLGJvcmRlclJpZ2h0Q29sb3I6X3ZhbHVlX3R5cGVzX2NvbG9yX2luZGV4X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLiQsYm9yZGVyQm90dG9tQ29sb3I6X3ZhbHVlX3R5cGVzX2NvbG9yX2luZGV4X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLiQsYm9yZGVyTGVmdENvbG9yOl92YWx1ZV90eXBlc19jb2xvcl9pbmRleF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy4kLGZpbHRlcjpfdmFsdWVfdHlwZXNfY29tcGxleF9maWx0ZXJfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uaCxXZWJraXRGaWx0ZXI6X3ZhbHVlX3R5cGVzX2NvbXBsZXhfZmlsdGVyX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmh9LGdldERlZmF1bHRWYWx1ZVR5cGU9a2V5PT5kZWZhdWx0VmFsdWVUeXBlc1trZXldfSwzNjE3MzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7ajpmdW5jdGlvbigpe3JldHVybiBudW1iZXJWYWx1ZVR5cGVzfX0pO3ZhciBudW1iZXJzPV9fd2VicGFja19yZXF1aXJlX18oNjE2NDkpLHVuaXRzPV9fd2VicGFja19yZXF1aXJlX18oOTYxOTApO2xldCB0eXBlX2ludF9pbnQ9ey4uLm51bWJlcnMuUngsdHJhbnNmb3JtOk1hdGgucm91bmR9LG51bWJlclZhbHVlVHlwZXM9e2JvcmRlcldpZHRoOnVuaXRzLnB4LGJvcmRlclRvcFdpZHRoOnVuaXRzLnB4LGJvcmRlclJpZ2h0V2lkdGg6dW5pdHMucHgsYm9yZGVyQm90dG9tV2lkdGg6dW5pdHMucHgsYm9yZGVyTGVmdFdpZHRoOnVuaXRzLnB4LGJvcmRlclJhZGl1czp1bml0cy5weCxyYWRpdXM6dW5pdHMucHgsYm9yZGVyVG9wTGVmdFJhZGl1czp1bml0cy5weCxib3JkZXJUb3BSaWdodFJhZGl1czp1bml0cy5weCxib3JkZXJCb3R0b21SaWdodFJhZGl1czp1bml0cy5weCxib3JkZXJCb3R0b21MZWZ0UmFkaXVzOnVuaXRzLnB4LHdpZHRoOnVuaXRzLnB4LG1heFdpZHRoOnVuaXRzLnB4LGhlaWdodDp1bml0cy5weCxtYXhIZWlnaHQ6dW5pdHMucHgsc2l6ZTp1bml0cy5weCx0b3A6dW5pdHMucHgscmlnaHQ6dW5pdHMucHgsYm90dG9tOnVuaXRzLnB4LGxlZnQ6dW5pdHMucHgscGFkZGluZzp1bml0cy5weCxwYWRkaW5nVG9wOnVuaXRzLnB4LHBhZGRpbmdSaWdodDp1bml0cy5weCxwYWRkaW5nQm90dG9tOnVuaXRzLnB4LHBhZGRpbmdMZWZ0OnVuaXRzLnB4LG1hcmdpbjp1bml0cy5weCxtYXJnaW5Ub3A6dW5pdHMucHgsbWFyZ2luUmlnaHQ6dW5pdHMucHgsbWFyZ2luQm90dG9tOnVuaXRzLnB4LG1hcmdpbkxlZnQ6dW5pdHMucHgscm90YXRlOnVuaXRzLlJXLHJvdGF0ZVg6dW5pdHMuUlcscm90YXRlWTp1bml0cy5SVyxyb3RhdGVaOnVuaXRzLlJXLHNjYWxlOm51bWJlcnMuYkEsc2NhbGVYOm51bWJlcnMuYkEsc2NhbGVZOm51bWJlcnMuYkEsc2NhbGVaOm51bWJlcnMuYkEsc2tldzp1bml0cy5SVyxza2V3WDp1bml0cy5SVyxza2V3WTp1bml0cy5SVyxkaXN0YW5jZTp1bml0cy5weCx0cmFuc2xhdGVYOnVuaXRzLnB4LHRyYW5zbGF0ZVk6dW5pdHMucHgsdHJhbnNsYXRlWjp1bml0cy5weCx4OnVuaXRzLnB4LHk6dW5pdHMucHgsejp1bml0cy5weCxwZXJzcGVjdGl2ZTp1bml0cy5weCx0cmFuc2Zvcm1QZXJzcGVjdGl2ZTp1bml0cy5weCxvcGFjaXR5Om51bWJlcnMuRnEsb3JpZ2luWDp1bml0cy4kQyxvcmlnaW5ZOnVuaXRzLiRDLG9yaWdpblo6dW5pdHMucHgsekluZGV4OnR5cGVfaW50X2ludCxmaWxsT3BhY2l0eTpudW1iZXJzLkZxLHN0cm9rZU9wYWNpdHk6bnVtYmVycy5GcSxudW1PY3RhdmVzOnR5cGVfaW50X2ludH19LDk0NzE0OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtHOmZ1bmN0aW9uKCl7cmV0dXJuIHRyYW5zZm9ybVByb3BzfSxfOmZ1bmN0aW9uKCl7cmV0dXJuIHRyYW5zZm9ybVByb3BPcmRlcn19KTtsZXQgdHJhbnNmb3JtUHJvcE9yZGVyPVsidHJhbnNmb3JtUGVyc3BlY3RpdmUiLCJ4IiwieSIsInoiLCJ0cmFuc2xhdGVYIiwidHJhbnNsYXRlWSIsInRyYW5zbGF0ZVoiLCJzY2FsZSIsInNjYWxlWCIsInNjYWxlWSIsInJvdGF0ZSIsInJvdGF0ZVgiLCJyb3RhdGVZIiwicm90YXRlWiIsInNrZXciLCJza2V3WCIsInNrZXdZIl0sdHJhbnNmb3JtUHJvcHM9bmV3IFNldCh0cmFuc2Zvcm1Qcm9wT3JkZXIpfSwzMTQxOTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7RTpmdW5jdGlvbigpe3JldHVybiBGbGF0VHJlZX19KTt2YXIgYXJyYXk9X193ZWJwYWNrX3JlcXVpcmVfXygxMDAxMCk7bGV0IGNvbXBhcmVCeURlcHRoPShhLGIpPT5hLmRlcHRoLWIuZGVwdGg7Y2xhc3MgRmxhdFRyZWV7Y29uc3RydWN0b3IoKXt0aGlzLmNoaWxkcmVuPVtdLHRoaXMuaXNEaXJ0eT0hMX1hZGQoY2hpbGQpeygwLGFycmF5Lnk0KSh0aGlzLmNoaWxkcmVuLGNoaWxkKSx0aGlzLmlzRGlydHk9ITB9cmVtb3ZlKGNoaWxkKXsoMCxhcnJheS5jbCkodGhpcy5jaGlsZHJlbixjaGlsZCksdGhpcy5pc0RpcnR5PSEwfWZvckVhY2goY2FsbGJhY2spe3RoaXMuaXNEaXJ0eSYmdGhpcy5jaGlsZHJlbi5zb3J0KGNvbXBhcmVCeURlcHRoKSx0aGlzLmlzRGlydHk9ITEsdGhpcy5jaGlsZHJlbi5mb3JFYWNoKGNhbGxiYWNrKX19fSwxMDAxMDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBhZGRVbmlxdWVJdGVtKGFycixpdGVtKXstMT09PWFyci5pbmRleE9mKGl0ZW0pJiZhcnIucHVzaChpdGVtKX1mdW5jdGlvbiByZW1vdmVJdGVtKGFycixpdGVtKXtsZXQgaW5kZXg9YXJyLmluZGV4T2YoaXRlbSk7aW5kZXg+LTEmJmFyci5zcGxpY2UoaW5kZXgsMSl9X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se2NsOmZ1bmN0aW9uKCl7cmV0dXJuIHJlbW92ZUl0ZW19LHk0OmZ1bmN0aW9uKCl7cmV0dXJuIGFkZFVuaXF1ZUl0ZW19fSl9LDI0MTY5OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHt1OmZ1bmN0aW9uKCl7cmV0dXJuIGNsYW1wfX0pO2xldCBjbGFtcD0obWluLG1heCx2KT0+TWF0aC5taW4oTWF0aC5tYXgodixtaW4pLG1heCl9LDYzMzc4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtnOmZ1bmN0aW9uKCl7cmV0dXJuIGRlbGF5fX0pO3ZhciBfZnJhbWVsb29wX2ZyYW1lX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oMjA3NCk7ZnVuY3Rpb24gZGVsYXkoY2FsbGJhY2ssdGltZW91dCl7bGV0IHN0YXJ0PXBlcmZvcm1hbmNlLm5vdygpLGNoZWNrRWxhcHNlZD0oe3RpbWVzdGFtcH0pPT57bGV0IGVsYXBzZWQ9dGltZXN0YW1wLXN0YXJ0O2VsYXBzZWQ+PXRpbWVvdXQmJigoMCxfZnJhbWVsb29wX2ZyYW1lX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlBuKShjaGVja0VsYXBzZWQpLGNhbGxiYWNrKGVsYXBzZWQtdGltZW91dCkpfTtyZXR1cm4gX2ZyYW1lbG9vcF9mcmFtZV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5XaS5yZWFkKGNoZWNrRWxhcHNlZCwhMCksKCk9PigwLF9mcmFtZWxvb3BfZnJhbWVfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uUG4pKGNoZWNrRWxhcHNlZCl9fSw0NTQ4NzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7SzpmdW5jdGlvbigpe3JldHVybiB3YXJuaW5nfSxrOmZ1bmN0aW9uKCl7cmV0dXJuIGludmFyaWFudH19KTt2YXIgX25vb3BfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg4MTY2Mik7bGV0IHdhcm5pbmc9X25vb3BfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWixpbnZhcmlhbnQ9X25vb3BfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWn0sNjQ2MDY6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se3M6ZnVuY3Rpb24oKXtyZXR1cm4gaW50ZXJwb2xhdGV9fSk7dmFyIGVycm9ycz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ1NDg3KSxjb2xvcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDg1Mzg1KSxjbGFtcD1fX3dlYnBhY2tfcmVxdWlyZV9fKDI0MTY5KSxtaXg9X193ZWJwYWNrX3JlcXVpcmVfXyg4MDAyMik7ZnVuY3Rpb24gaHVlVG9SZ2IocCxxLHQpe3JldHVybih0PDAmJih0Kz0xKSx0PjEmJih0LT0xKSx0PDEvNik/cCsocS1wKSo2KnQ6dDwuNT9xOnQ8Mi8zP3ArKHEtcCkqKDIvMy10KSo2OnB9dmFyIGhleD1fX3dlYnBhY2tfcmVxdWlyZV9fKDI2MzgyKSxyZ2JhPV9fd2VicGFja19yZXF1aXJlX18oNDA4MTkpLGhzbGE9X193ZWJwYWNrX3JlcXVpcmVfXyg5MzE4NCk7bGV0IG1peExpbmVhckNvbG9yPShmcm9tLHRvLHYpPT57bGV0IGZyb21FeHBvPWZyb20qZnJvbTtyZXR1cm4gTWF0aC5zcXJ0KE1hdGgubWF4KDAsdioodG8qdG8tZnJvbUV4cG8pK2Zyb21FeHBvKSl9LGNvbG9yVHlwZXM9W2hleC4kLHJnYmEubSxoc2xhLkpdLGdldENvbG9yVHlwZT12PT5jb2xvclR5cGVzLmZpbmQodHlwZT0+dHlwZS50ZXN0KHYpKTtmdW5jdGlvbiBhc1JHQkEoY29sb3Ipe2xldCB0eXBlPWdldENvbG9yVHlwZShjb2xvcik7KDAsZXJyb3JzLmspKEJvb2xlYW4odHlwZSksYCcke2NvbG9yfScgaXMgbm90IGFuIGFuaW1hdGFibGUgY29sb3IuIFVzZSB0aGUgZXF1aXZhbGVudCBjb2xvciBjb2RlIGluc3RlYWQuYCk7bGV0IG1vZGVsPXR5cGUucGFyc2UoY29sb3IpO3JldHVybiB0eXBlPT09aHNsYS5KJiYobW9kZWw9ZnVuY3Rpb24oe2h1ZSxzYXR1cmF0aW9uLGxpZ2h0bmVzcyxhbHBoYX0pe2h1ZS89MzYwLGxpZ2h0bmVzcy89MTAwO2xldCByZWQ9MCxncmVlbj0wLGJsdWU9MDtpZihzYXR1cmF0aW9uLz0xMDApe2xldCBxPWxpZ2h0bmVzczwuNT9saWdodG5lc3MqKDErc2F0dXJhdGlvbik6bGlnaHRuZXNzK3NhdHVyYXRpb24tbGlnaHRuZXNzKnNhdHVyYXRpb24scD0yKmxpZ2h0bmVzcy1xO3JlZD1odWVUb1JnYihwLHEsaHVlKzEvMyksZ3JlZW49aHVlVG9SZ2IocCxxLGh1ZSksYmx1ZT1odWVUb1JnYihwLHEsaHVlLTEvMyl9ZWxzZSByZWQ9Z3JlZW49Ymx1ZT1saWdodG5lc3M7cmV0dXJue3JlZDpNYXRoLnJvdW5kKDI1NSpyZWQpLGdyZWVuOk1hdGgucm91bmQoMjU1KmdyZWVuKSxibHVlOk1hdGgucm91bmQoMjU1KmJsdWUpLGFscGhhfX0obW9kZWwpKSxtb2RlbH1sZXQgbWl4Q29sb3I9KGZyb20sdG8pPT57bGV0IGZyb21SR0JBPWFzUkdCQShmcm9tKSx0b1JHQkE9YXNSR0JBKHRvKSxibGVuZGVkPXsuLi5mcm9tUkdCQX07cmV0dXJuIHY9PihibGVuZGVkLnJlZD1taXhMaW5lYXJDb2xvcihmcm9tUkdCQS5yZWQsdG9SR0JBLnJlZCx2KSxibGVuZGVkLmdyZWVuPW1peExpbmVhckNvbG9yKGZyb21SR0JBLmdyZWVuLHRvUkdCQS5ncmVlbix2KSxibGVuZGVkLmJsdWU9bWl4TGluZWFyQ29sb3IoZnJvbVJHQkEuYmx1ZSx0b1JHQkEuYmx1ZSx2KSxibGVuZGVkLmFscGhhPSgwLG1peC5DKShmcm9tUkdCQS5hbHBoYSx0b1JHQkEuYWxwaGEsdikscmdiYS5tLnRyYW5zZm9ybShibGVuZGVkKSl9O3ZhciBwaXBlPV9fd2VicGFja19yZXF1aXJlX18oODM2MjQpLGNvbXBsZXg9X193ZWJwYWNrX3JlcXVpcmVfXyg1MTU1MCk7bGV0IG1peEltbWVkaWF0ZT0ob3JpZ2luLHRhcmdldCk9PnA9PmAke3A+MD90YXJnZXQ6b3JpZ2lufWA7ZnVuY3Rpb24gZ2V0TWl4ZXIob3JpZ2luLHRhcmdldCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBvcmlnaW4/dj0+KDAsbWl4LkMpKG9yaWdpbix0YXJnZXQsdik6Y29sb3IuJC50ZXN0KG9yaWdpbik/bWl4Q29sb3Iob3JpZ2luLHRhcmdldCk6b3JpZ2luLnN0YXJ0c1dpdGgoInZhcigiKT9taXhJbW1lZGlhdGUob3JpZ2luLHRhcmdldCk6bWl4Q29tcGxleChvcmlnaW4sdGFyZ2V0KX1sZXQgbWl4QXJyYXk9KGZyb20sdG8pPT57bGV0IG91dHB1dD1bLi4uZnJvbV0sbnVtVmFsdWVzPW91dHB1dC5sZW5ndGgsYmxlbmRWYWx1ZT1mcm9tLm1hcCgoZnJvbVRoaXMsaSk9PmdldE1peGVyKGZyb21UaGlzLHRvW2ldKSk7cmV0dXJuIHY9Pntmb3IobGV0IGk9MDtpPG51bVZhbHVlcztpKyspb3V0cHV0W2ldPWJsZW5kVmFsdWVbaV0odik7cmV0dXJuIG91dHB1dH19LG1peE9iamVjdD0ob3JpZ2luLHRhcmdldCk9PntsZXQgb3V0cHV0PXsuLi5vcmlnaW4sLi4udGFyZ2V0fSxibGVuZFZhbHVlPXt9O2ZvcihsZXQga2V5IGluIG91dHB1dCl2b2lkIDAhPT1vcmlnaW5ba2V5XSYmdm9pZCAwIT09dGFyZ2V0W2tleV0mJihibGVuZFZhbHVlW2tleV09Z2V0TWl4ZXIob3JpZ2luW2tleV0sdGFyZ2V0W2tleV0pKTtyZXR1cm4gdj0+e2ZvcihsZXQga2V5IGluIGJsZW5kVmFsdWUpb3V0cHV0W2tleV09YmxlbmRWYWx1ZVtrZXldKHYpO3JldHVybiBvdXRwdXR9fSxtaXhDb21wbGV4PShvcmlnaW4sdGFyZ2V0KT0+e2xldCB0ZW1wbGF0ZT1jb21wbGV4LlAuY3JlYXRlVHJhbnNmb3JtZXIodGFyZ2V0KSxvcmlnaW5TdGF0cz0oMCxjb21wbGV4LlYpKG9yaWdpbiksdGFyZ2V0U3RhdHM9KDAsY29tcGxleC5WKSh0YXJnZXQpLGNhbkludGVycG9sYXRlPW9yaWdpblN0YXRzLm51bVZhcnM9PT10YXJnZXRTdGF0cy5udW1WYXJzJiZvcmlnaW5TdGF0cy5udW1Db2xvcnM9PT10YXJnZXRTdGF0cy5udW1Db2xvcnMmJm9yaWdpblN0YXRzLm51bU51bWJlcnM+PXRhcmdldFN0YXRzLm51bU51bWJlcnM7cmV0dXJuIGNhbkludGVycG9sYXRlPygwLHBpcGUueikobWl4QXJyYXkob3JpZ2luU3RhdHMudmFsdWVzLHRhcmdldFN0YXRzLnZhbHVlcyksdGVtcGxhdGUpOigoMCxlcnJvcnMuSykoITAsYENvbXBsZXggdmFsdWVzICcke29yaWdpbn0nIGFuZCAnJHt0YXJnZXR9JyB0b28gZGlmZmVyZW50IHRvIG1peC4gRW5zdXJlIGFsbCBjb2xvcnMgYXJlIG9mIHRoZSBzYW1lIHR5cGUsIGFuZCB0aGF0IGVhY2ggY29udGFpbnMgdGhlIHNhbWUgcXVhbnRpdHkgb2YgbnVtYmVyIGFuZCBjb2xvciB2YWx1ZXMuIEZhbGxpbmcgYmFjayB0byBpbnN0YW50IHRyYW5zaXRpb24uYCksbWl4SW1tZWRpYXRlKG9yaWdpbix0YXJnZXQpKX07dmFyIHByb2dyZXNzPV9fd2VicGFja19yZXF1aXJlX18oMjM5NjcpLG5vb3A9X193ZWJwYWNrX3JlcXVpcmVfXyg4MTY2Mik7bGV0IG1peE51bWJlcj0oZnJvbSx0byk9PnA9PigwLG1peC5DKShmcm9tLHRvLHApO2Z1bmN0aW9uIGludGVycG9sYXRlKGlucHV0LG91dHB1dCx7Y2xhbXA6aXNDbGFtcD0hMCxlYXNlLG1peGVyfT17fSl7bGV0IGlucHV0TGVuZ3RoPWlucHV0Lmxlbmd0aDtpZigoMCxlcnJvcnMuaykoaW5wdXRMZW5ndGg9PT1vdXRwdXQubGVuZ3RoLCJCb3RoIGlucHV0IGFuZCBvdXRwdXQgcmFuZ2VzIG11c3QgYmUgdGhlIHNhbWUgbGVuZ3RoIiksMT09PWlucHV0TGVuZ3RoKXJldHVybigpPT5vdXRwdXRbMF07aW5wdXRbMF0+aW5wdXRbaW5wdXRMZW5ndGgtMV0mJihpbnB1dD1bLi4uaW5wdXRdLnJldmVyc2UoKSxvdXRwdXQ9Wy4uLm91dHB1dF0ucmV2ZXJzZSgpKTtsZXQgbWl4ZXJzPWZ1bmN0aW9uKG91dHB1dCxlYXNlLGN1c3RvbU1peGVyKXtsZXQgbWl4ZXJzPVtdLG1peGVyRmFjdG9yeT1jdXN0b21NaXhlcnx8ZnVuY3Rpb24odil7aWYoIm51bWJlciI9PXR5cGVvZiB2KTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgdilyZXR1cm4gY29sb3IuJC50ZXN0KHYpP21peENvbG9yOm1peENvbXBsZXg7ZWxzZSBpZihBcnJheS5pc0FycmF5KHYpKXJldHVybiBtaXhBcnJheTtlbHNlIGlmKCJvYmplY3QiPT10eXBlb2YgdilyZXR1cm4gbWl4T2JqZWN0O3JldHVybiBtaXhOdW1iZXJ9KG91dHB1dFswXSksbnVtTWl4ZXJzPW91dHB1dC5sZW5ndGgtMTtmb3IobGV0IGk9MDtpPG51bU1peGVycztpKyspe2xldCBtaXhlcj1taXhlckZhY3Rvcnkob3V0cHV0W2ldLG91dHB1dFtpKzFdKTtpZihlYXNlKXtsZXQgZWFzaW5nRnVuY3Rpb249QXJyYXkuaXNBcnJheShlYXNlKT9lYXNlW2ldfHxub29wLlo6ZWFzZTttaXhlcj0oMCxwaXBlLnopKGVhc2luZ0Z1bmN0aW9uLG1peGVyKX1taXhlcnMucHVzaChtaXhlcil9cmV0dXJuIG1peGVyc30ob3V0cHV0LGVhc2UsbWl4ZXIpLG51bU1peGVycz1taXhlcnMubGVuZ3RoLGludGVycG9sYXRvcj12PT57bGV0IGk9MDtpZihudW1NaXhlcnM+MSlmb3IoO2k8aW5wdXQubGVuZ3RoLTImJiEodjxpbnB1dFtpKzFdKTtpKyspO2xldCBwcm9ncmVzc0luUmFuZ2U9KDAscHJvZ3Jlc3MuWSkoaW5wdXRbaV0saW5wdXRbaSsxXSx2KTtyZXR1cm4gbWl4ZXJzW2ldKHByb2dyZXNzSW5SYW5nZSl9O3JldHVybiBpc0NsYW1wP3Y9PmludGVycG9sYXRvcigoMCxjbGFtcC51KShpbnB1dFswXSxpbnB1dFtpbnB1dExlbmd0aC0xXSx2KSk6aW50ZXJwb2xhdG9yfX0sMTE3NDE6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se2o6ZnVuY3Rpb24oKXtyZXR1cm4gaXNCcm93c2VyfX0pO2xldCBpc0Jyb3dzZXI9InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudH0sMzA2ODE6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1c6ZnVuY3Rpb24oKXtyZXR1cm4gaXNaZXJvVmFsdWVTdHJpbmd9fSk7bGV0IGlzWmVyb1ZhbHVlU3RyaW5nPXY9Pi9eMFteLlxzXSskLy50ZXN0KHYpfSw4MDAyMjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7QzpmdW5jdGlvbigpe3JldHVybiBtaXh9fSk7bGV0IG1peD0oZnJvbSx0byxwcm9ncmVzcyk9Pi1wcm9ncmVzcypmcm9tK3Byb2dyZXNzKnRvK2Zyb219LDgxNjYyOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIG5vb3B9fSk7bGV0IG5vb3A9YW55PT5hbnl9LDgzNjI0OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHt6OmZ1bmN0aW9uKCl7cmV0dXJuIHBpcGV9fSk7bGV0IGNvbWJpbmVGdW5jdGlvbnM9KGEsYik9PnY9PmIoYSh2KSkscGlwZT0oLi4udHJhbnNmb3JtZXJzKT0+dHJhbnNmb3JtZXJzLnJlZHVjZShjb21iaW5lRnVuY3Rpb25zKX0sMjM5Njc6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1k6ZnVuY3Rpb24oKXtyZXR1cm4gcHJvZ3Jlc3N9fSk7bGV0IHByb2dyZXNzPShmcm9tLHRvLHZhbHVlKT0+e2xldCB0b0Zyb21EaWZmZXJlbmNlPXRvLWZyb207cmV0dXJuIDA9PT10b0Zyb21EaWZmZXJlbmNlPzE6KHZhbHVlLWZyb20pL3RvRnJvbURpZmZlcmVuY2V9fSw4NzE1OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtZOmZ1bmN0aW9uKCl7cmV0dXJuIHJlc29sdmVGaW5hbFZhbHVlSW5LZXlmcmFtZXN9LHA6ZnVuY3Rpb24oKXtyZXR1cm4gaXNDdXN0b21WYWx1ZX19KTt2YXIgX2FuaW1hdGlvbl91dGlsc19pc19rZXlmcmFtZXNfdGFyZ2V0X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNDg0ODgpO2xldCBpc0N1c3RvbVZhbHVlPXY9PkJvb2xlYW4odiYmIm9iamVjdCI9PXR5cGVvZiB2JiZ2Lm1peCYmdi50b1ZhbHVlKSxyZXNvbHZlRmluYWxWYWx1ZUluS2V5ZnJhbWVzPXY9PigwLF9hbmltYXRpb25fdXRpbHNfaXNfa2V5ZnJhbWVzX3RhcmdldF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5DKSh2KT92W3YubGVuZ3RoLTFdfHwwOnZ9LDIxNTYwOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtMOmZ1bmN0aW9uKCl7cmV0dXJuIFN1YnNjcmlwdGlvbk1hbmFnZXJ9fSk7dmFyIF9hcnJheV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDEwMDEwKTtjbGFzcyBTdWJzY3JpcHRpb25NYW5hZ2Vye2NvbnN0cnVjdG9yKCl7dGhpcy5zdWJzY3JpcHRpb25zPVtdfWFkZChoYW5kbGVyKXtyZXR1cm4oMCxfYXJyYXlfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ueTQpKHRoaXMuc3Vic2NyaXB0aW9ucyxoYW5kbGVyKSwoKT0+KDAsX2FycmF5X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmNsKSh0aGlzLnN1YnNjcmlwdGlvbnMsaGFuZGxlcil9bm90aWZ5KGEsYixjKXtsZXQgbnVtU3Vic2NyaXB0aW9ucz10aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoO2lmKG51bVN1YnNjcmlwdGlvbnMpe2lmKDE9PT1udW1TdWJzY3JpcHRpb25zKXRoaXMuc3Vic2NyaXB0aW9uc1swXShhLGIsYyk7ZWxzZSBmb3IobGV0IGk9MDtpPG51bVN1YnNjcmlwdGlvbnM7aSsrKXtsZXQgaGFuZGxlcj10aGlzLnN1YnNjcmlwdGlvbnNbaV07aGFuZGxlciYmaGFuZGxlcihhLGIsYyl9fX1nZXRTaXplKCl7cmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGh9Y2xlYXIoKXt0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoPTB9fX0sODY5MTc6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1g6ZnVuY3Rpb24oKXtyZXR1cm4gbWlsbGlzZWNvbmRzVG9TZWNvbmRzfSx3OmZ1bmN0aW9uKCl7cmV0dXJuIHNlY29uZHNUb01pbGxpc2Vjb25kc319KTtsZXQgc2Vjb25kc1RvTWlsbGlzZWNvbmRzPXNlY29uZHM9PjFlMypzZWNvbmRzLG1pbGxpc2Vjb25kc1RvU2Vjb25kcz1taWxsaXNlY29uZHM9Pm1pbGxpc2Vjb25kcy8xZTN9LDk2NjgxOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtoOmZ1bmN0aW9uKCl7cmV0dXJuIHVzZUNvbnN0YW50fX0pO3ZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpO2Z1bmN0aW9uIHVzZUNvbnN0YW50KGluaXQpe2xldCByZWY9KDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VSZWYpKG51bGwpO3JldHVybiBudWxsPT09cmVmLmN1cnJlbnQmJihyZWYuY3VycmVudD1pbml0KCkpLHJlZi5jdXJyZW50fX0sMTkyMTU6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1k6ZnVuY3Rpb24oKXtyZXR1cm4gdXNlSW5WaWV3fX0pO3ZhciByZWFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxlcnJvcnM9X193ZWJwYWNrX3JlcXVpcmVfXyg0NTQ4Nyk7bGV0IHRocmVzaG9sZHM9e3NvbWU6MCxhbGw6MX07ZnVuY3Rpb24gdXNlSW5WaWV3KHJlZix7cm9vdCxtYXJnaW4sYW1vdW50LG9uY2U9ITF9PXt9KXtsZXRbaXNJblZpZXcsc2V0SW5WaWV3XT0oMCxyZWFjdC51c2VTdGF0ZSkoITEpO3JldHVybigwLHJlYWN0LnVzZUVmZmVjdCkoKCk9PntpZighcmVmLmN1cnJlbnR8fG9uY2UmJmlzSW5WaWV3KXJldHVybjtsZXQgb25FbnRlcj0oKT0+KHNldEluVmlldyghMCksb25jZT92b2lkIDA6KCk9PnNldEluVmlldyghMSkpLG9wdGlvbnM9e3Jvb3Q6cm9vdCYmcm9vdC5jdXJyZW50fHx2b2lkIDAsbWFyZ2luLGFtb3VudH07cmV0dXJuIGZ1bmN0aW9uKGVsZW1lbnRPclNlbGVjdG9yLG9uU3RhcnQse3Jvb3QsbWFyZ2luOnJvb3RNYXJnaW4sYW1vdW50PSJzb21lIn09e30pe2xldCBlbGVtZW50cz1mdW5jdGlvbihlbGVtZW50cyxzY29wZSxzZWxlY3RvckNhY2hlKXt2YXIgX2E7aWYoInN0cmluZyI9PXR5cGVvZiBlbGVtZW50cyl7bGV0IHJvb3Q9ZG9jdW1lbnQ7c2NvcGUmJigoMCxlcnJvcnMuaykoQm9vbGVhbihzY29wZS5jdXJyZW50KSwiU2NvcGUgcHJvdmlkZWQsIGJ1dCBubyBlbGVtZW50IGRldGVjdGVkLiIpLHJvb3Q9c2NvcGUuY3VycmVudCksc2VsZWN0b3JDYWNoZT8obnVsbCE9PShfYT1zZWxlY3RvckNhY2hlW2VsZW1lbnRzXSkmJnZvaWQgMCE9PV9hfHwoc2VsZWN0b3JDYWNoZVtlbGVtZW50c109cm9vdC5xdWVyeVNlbGVjdG9yQWxsKGVsZW1lbnRzKSksZWxlbWVudHM9c2VsZWN0b3JDYWNoZVtlbGVtZW50c10pOmVsZW1lbnRzPXJvb3QucXVlcnlTZWxlY3RvckFsbChlbGVtZW50cyl9ZWxzZSBlbGVtZW50cyBpbnN0YW5jZW9mIEVsZW1lbnQmJihlbGVtZW50cz1bZWxlbWVudHNdKTtyZXR1cm4gQXJyYXkuZnJvbShlbGVtZW50c3x8W10pfShlbGVtZW50T3JTZWxlY3RvciksYWN0aXZlSW50ZXJzZWN0aW9ucz1uZXcgV2Vha01hcCxvbkludGVyc2VjdGlvbkNoYW5nZT1lbnRyaWVzPT57ZW50cmllcy5mb3JFYWNoKGVudHJ5PT57bGV0IG9uRW5kPWFjdGl2ZUludGVyc2VjdGlvbnMuZ2V0KGVudHJ5LnRhcmdldCk7aWYoZW50cnkuaXNJbnRlcnNlY3RpbmchPT1Cb29sZWFuKG9uRW5kKSl7aWYoZW50cnkuaXNJbnRlcnNlY3Rpbmcpe2xldCBuZXdPbkVuZD1vblN0YXJ0KGVudHJ5KTsiZnVuY3Rpb24iPT10eXBlb2YgbmV3T25FbmQ/YWN0aXZlSW50ZXJzZWN0aW9ucy5zZXQoZW50cnkudGFyZ2V0LG5ld09uRW5kKTpvYnNlcnZlci51bm9ic2VydmUoZW50cnkudGFyZ2V0KX1lbHNlIG9uRW5kJiYob25FbmQoZW50cnkpLGFjdGl2ZUludGVyc2VjdGlvbnMuZGVsZXRlKGVudHJ5LnRhcmdldCkpfX0pfSxvYnNlcnZlcj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIob25JbnRlcnNlY3Rpb25DaGFuZ2Use3Jvb3Qscm9vdE1hcmdpbix0aHJlc2hvbGQ6Im51bWJlciI9PXR5cGVvZiBhbW91bnQ/YW1vdW50OnRocmVzaG9sZHNbYW1vdW50XX0pO3JldHVybiBlbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQ9Pm9ic2VydmVyLm9ic2VydmUoZWxlbWVudCkpLCgpPT5vYnNlcnZlci5kaXNjb25uZWN0KCl9KHJlZi5jdXJyZW50LG9uRW50ZXIsb3B0aW9ucyl9LFtyb290LHJlZixtYXJnaW4sb25jZV0pLGlzSW5WaWV3fX0sNTg4Njg6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se0w6ZnVuY3Rpb24oKXtyZXR1cm4gdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdH19KTt2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxfaXNfYnJvd3Nlcl9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDExNzQxKTtsZXQgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdD1faXNfYnJvd3Nlcl9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5qP3JlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlTGF5b3V0RWZmZWN0OnJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlRWZmZWN0fSwzMDM4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHZlbG9jaXR5UGVyU2Vjb25kKHZlbG9jaXR5LGZyYW1lRHVyYXRpb24pe3JldHVybiBmcmFtZUR1cmF0aW9uP3ZlbG9jaXR5KigxZTMvZnJhbWVEdXJhdGlvbik6MH1fX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7UjpmdW5jdGlvbigpe3JldHVybiB2ZWxvY2l0eVBlclNlY29uZH19KX0sMzMyMzQ6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se0JYOmZ1bmN0aW9uKCl7cmV0dXJuIG1vdGlvblZhbHVlfSxTMTpmdW5jdGlvbigpe3JldHVybiBjb2xsZWN0TW90aW9uVmFsdWVzfX0pO3ZhciBfdXRpbHNfc3Vic2NyaXB0aW9uX21hbmFnZXJfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXygyMTU2MCksX3V0aWxzX3ZlbG9jaXR5X3Blcl9zZWNvbmRfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXygzMDM4KSxfZnJhbWVsb29wX2ZyYW1lX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oMjA3NCk7bGV0IGlzRmxvYXQ9dmFsdWU9PiFpc05hTihwYXJzZUZsb2F0KHZhbHVlKSksY29sbGVjdE1vdGlvblZhbHVlcz17Y3VycmVudDp2b2lkIDB9O2NsYXNzIE1vdGlvblZhbHVle2NvbnN0cnVjdG9yKGluaXQsb3B0aW9ucz17fSl7dGhpcy52ZXJzaW9uPSIxMC4xNi41Iix0aGlzLnRpbWVEZWx0YT0wLHRoaXMubGFzdFVwZGF0ZWQ9MCx0aGlzLmNhblRyYWNrVmVsb2NpdHk9ITEsdGhpcy5ldmVudHM9e30sdGhpcy51cGRhdGVBbmROb3RpZnk9KHYscmVuZGVyPSEwKT0+e3RoaXMucHJldj10aGlzLmN1cnJlbnQsdGhpcy5jdXJyZW50PXY7bGV0e2RlbHRhLHRpbWVzdGFtcH09X2ZyYW1lbG9vcF9mcmFtZV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy53MDt0aGlzLmxhc3RVcGRhdGVkIT09dGltZXN0YW1wJiYodGhpcy50aW1lRGVsdGE9ZGVsdGEsdGhpcy5sYXN0VXBkYXRlZD10aW1lc3RhbXAsX2ZyYW1lbG9vcF9mcmFtZV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5XaS5wb3N0UmVuZGVyKHRoaXMuc2NoZWR1bGVWZWxvY2l0eUNoZWNrKSksdGhpcy5wcmV2IT09dGhpcy5jdXJyZW50JiZ0aGlzLmV2ZW50cy5jaGFuZ2UmJnRoaXMuZXZlbnRzLmNoYW5nZS5ub3RpZnkodGhpcy5jdXJyZW50KSx0aGlzLmV2ZW50cy52ZWxvY2l0eUNoYW5nZSYmdGhpcy5ldmVudHMudmVsb2NpdHlDaGFuZ2Uubm90aWZ5KHRoaXMuZ2V0VmVsb2NpdHkoKSkscmVuZGVyJiZ0aGlzLmV2ZW50cy5yZW5kZXJSZXF1ZXN0JiZ0aGlzLmV2ZW50cy5yZW5kZXJSZXF1ZXN0Lm5vdGlmeSh0aGlzLmN1cnJlbnQpfSx0aGlzLnNjaGVkdWxlVmVsb2NpdHlDaGVjaz0oKT0+X2ZyYW1lbG9vcF9mcmFtZV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5XaS5wb3N0UmVuZGVyKHRoaXMudmVsb2NpdHlDaGVjayksdGhpcy52ZWxvY2l0eUNoZWNrPSh7dGltZXN0YW1wfSk9Pnt0aW1lc3RhbXAhPT10aGlzLmxhc3RVcGRhdGVkJiYodGhpcy5wcmV2PXRoaXMuY3VycmVudCx0aGlzLmV2ZW50cy52ZWxvY2l0eUNoYW5nZSYmdGhpcy5ldmVudHMudmVsb2NpdHlDaGFuZ2Uubm90aWZ5KHRoaXMuZ2V0VmVsb2NpdHkoKSkpfSx0aGlzLmhhc0FuaW1hdGVkPSExLHRoaXMucHJldj10aGlzLmN1cnJlbnQ9aW5pdCx0aGlzLmNhblRyYWNrVmVsb2NpdHk9aXNGbG9hdCh0aGlzLmN1cnJlbnQpLHRoaXMub3duZXI9b3B0aW9ucy5vd25lcn1vbkNoYW5nZShzdWJzY3JpcHRpb24pe3JldHVybiB0aGlzLm9uKCJjaGFuZ2UiLHN1YnNjcmlwdGlvbil9b24oZXZlbnROYW1lLGNhbGxiYWNrKXt0aGlzLmV2ZW50c1tldmVudE5hbWVdfHwodGhpcy5ldmVudHNbZXZlbnROYW1lXT1uZXcgX3V0aWxzX3N1YnNjcmlwdGlvbl9tYW5hZ2VyX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkwpO2xldCB1bnN1YnNjcmliZT10aGlzLmV2ZW50c1tldmVudE5hbWVdLmFkZChjYWxsYmFjayk7cmV0dXJuImNoYW5nZSI9PT1ldmVudE5hbWU/KCk9Pnt1bnN1YnNjcmliZSgpLF9mcmFtZWxvb3BfZnJhbWVfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uV2kucmVhZCgoKT0+e3RoaXMuZXZlbnRzLmNoYW5nZS5nZXRTaXplKCl8fHRoaXMuc3RvcCgpfSl9OnVuc3Vic2NyaWJlfWNsZWFyTGlzdGVuZXJzKCl7Zm9yKGxldCBldmVudE1hbmFnZXJzIGluIHRoaXMuZXZlbnRzKXRoaXMuZXZlbnRzW2V2ZW50TWFuYWdlcnNdLmNsZWFyKCl9YXR0YWNoKHBhc3NpdmVFZmZlY3Qsc3RvcFBhc3NpdmVFZmZlY3Qpe3RoaXMucGFzc2l2ZUVmZmVjdD1wYXNzaXZlRWZmZWN0LHRoaXMuc3RvcFBhc3NpdmVFZmZlY3Q9c3RvcFBhc3NpdmVFZmZlY3R9c2V0KHYscmVuZGVyPSEwKXtyZW5kZXImJnRoaXMucGFzc2l2ZUVmZmVjdD90aGlzLnBhc3NpdmVFZmZlY3Qodix0aGlzLnVwZGF0ZUFuZE5vdGlmeSk6dGhpcy51cGRhdGVBbmROb3RpZnkodixyZW5kZXIpfXNldFdpdGhWZWxvY2l0eShwcmV2LGN1cnJlbnQsZGVsdGEpe3RoaXMuc2V0KGN1cnJlbnQpLHRoaXMucHJldj1wcmV2LHRoaXMudGltZURlbHRhPWRlbHRhfWp1bXAodil7dGhpcy51cGRhdGVBbmROb3RpZnkodiksdGhpcy5wcmV2PXYsdGhpcy5zdG9wKCksdGhpcy5zdG9wUGFzc2l2ZUVmZmVjdCYmdGhpcy5zdG9wUGFzc2l2ZUVmZmVjdCgpfWdldCgpe3JldHVybiBjb2xsZWN0TW90aW9uVmFsdWVzLmN1cnJlbnQmJmNvbGxlY3RNb3Rpb25WYWx1ZXMuY3VycmVudC5wdXNoKHRoaXMpLHRoaXMuY3VycmVudH1nZXRQcmV2aW91cygpe3JldHVybiB0aGlzLnByZXZ9Z2V0VmVsb2NpdHkoKXtyZXR1cm4gdGhpcy5jYW5UcmFja1ZlbG9jaXR5PygwLF91dGlsc192ZWxvY2l0eV9wZXJfc2Vjb25kX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLlIpKHBhcnNlRmxvYXQodGhpcy5jdXJyZW50KS1wYXJzZUZsb2F0KHRoaXMucHJldiksdGhpcy50aW1lRGVsdGEpOjB9c3RhcnQoc3RhcnRBbmltYXRpb24pe3JldHVybiB0aGlzLnN0b3AoKSxuZXcgUHJvbWlzZShyZXNvbHZlPT57dGhpcy5oYXNBbmltYXRlZD0hMCx0aGlzLmFuaW1hdGlvbj1zdGFydEFuaW1hdGlvbihyZXNvbHZlKSx0aGlzLmV2ZW50cy5hbmltYXRpb25TdGFydCYmdGhpcy5ldmVudHMuYW5pbWF0aW9uU3RhcnQubm90aWZ5KCl9KS50aGVuKCgpPT57dGhpcy5ldmVudHMuYW5pbWF0aW9uQ29tcGxldGUmJnRoaXMuZXZlbnRzLmFuaW1hdGlvbkNvbXBsZXRlLm5vdGlmeSgpLHRoaXMuY2xlYXJBbmltYXRpb24oKX0pfXN0b3AoKXt0aGlzLmFuaW1hdGlvbiYmKHRoaXMuYW5pbWF0aW9uLnN0b3AoKSx0aGlzLmV2ZW50cy5hbmltYXRpb25DYW5jZWwmJnRoaXMuZXZlbnRzLmFuaW1hdGlvbkNhbmNlbC5ub3RpZnkoKSksdGhpcy5jbGVhckFuaW1hdGlvbigpfWlzQW5pbWF0aW5nKCl7cmV0dXJuISF0aGlzLmFuaW1hdGlvbn1jbGVhckFuaW1hdGlvbigpe2RlbGV0ZSB0aGlzLmFuaW1hdGlvbn1kZXN0cm95KCl7dGhpcy5jbGVhckxpc3RlbmVycygpLHRoaXMuc3RvcCgpLHRoaXMuc3RvcFBhc3NpdmVFZmZlY3QmJnRoaXMuc3RvcFBhc3NpdmVFZmZlY3QoKX19ZnVuY3Rpb24gbW90aW9uVmFsdWUoaW5pdCxvcHRpb25zKXtyZXR1cm4gbmV3IE1vdGlvblZhbHVlKGluaXQsb3B0aW9ucyl9fSwyNjM4MjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7JDpmdW5jdGlvbigpe3JldHVybiBoZXh9fSk7dmFyIF9yZ2JhX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oNDA4MTkpLF91dGlsc19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk4ODM0KTtsZXQgaGV4PXt0ZXN0OigwLF91dGlsc19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5pKSgiIyIpLHBhcnNlOmZ1bmN0aW9uKHYpe2xldCByPSIiLGc9IiIsYj0iIixhPSIiO3JldHVybiB2Lmxlbmd0aD41PyhyPXYuc3Vic3RyaW5nKDEsMyksZz12LnN1YnN0cmluZygzLDUpLGI9di5zdWJzdHJpbmcoNSw3KSxhPXYuc3Vic3RyaW5nKDcsOSkpOihyPXYuc3Vic3RyaW5nKDEsMiksZz12LnN1YnN0cmluZygyLDMpLGI9di5zdWJzdHJpbmcoMyw0KSxhPXYuc3Vic3RyaW5nKDQsNSkscis9cixnKz1nLGIrPWIsYSs9YSkse3JlZDpwYXJzZUludChyLDE2KSxncmVlbjpwYXJzZUludChnLDE2KSxibHVlOnBhcnNlSW50KGIsMTYpLGFscGhhOmE/cGFyc2VJbnQoYSwxNikvMjU1OjF9fSx0cmFuc2Zvcm06X3JnYmFfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ubS50cmFuc2Zvcm19fSw5MzE4NDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7SjpmdW5jdGlvbigpe3JldHVybiBoc2xhfX0pO3ZhciBfbnVtYmVyc19pbmRleF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDYxNjQ5KSxfbnVtYmVyc191bml0c19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk2MTkwKSxfdXRpbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXygzNjQzMCksX3V0aWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oOTg4MzQpO2xldCBoc2xhPXt0ZXN0OigwLF91dGlsc19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5pKSgiaHNsIiwiaHVlIikscGFyc2U6KDAsX3V0aWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmQpKCJodWUiLCJzYXR1cmF0aW9uIiwibGlnaHRuZXNzIiksdHJhbnNmb3JtOih7aHVlLHNhdHVyYXRpb24sbGlnaHRuZXNzLGFscGhhOmFscGhhJDE9MX0pPT4iaHNsYSgiK01hdGgucm91bmQoaHVlKSsiLCAiK19udW1iZXJzX3VuaXRzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmFRLnRyYW5zZm9ybSgoMCxfdXRpbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uTncpKHNhdHVyYXRpb24pKSsiLCAiK19udW1iZXJzX3VuaXRzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmFRLnRyYW5zZm9ybSgoMCxfdXRpbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uTncpKGxpZ2h0bmVzcykpKyIsICIrKDAsX3V0aWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLk53KShfbnVtYmVyc19pbmRleF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5GcS50cmFuc2Zvcm0oYWxwaGEkMSkpKyIpIn19LDg1Mzg1OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHskOmZ1bmN0aW9uKCl7cmV0dXJuIGNvbG9yfX0pO3ZhciBfdXRpbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX189X193ZWJwYWNrX3JlcXVpcmVfXygzNjQzMCksX2hleF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI2MzgyKSxfaHNsYV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDkzMTg0KSxfcmdiYV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQwODE5KTtsZXQgY29sb3I9e3Rlc3Q6dj0+X3JnYmFfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubS50ZXN0KHYpfHxfaGV4X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLiQudGVzdCh2KXx8X2hzbGFfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uSi50ZXN0KHYpLHBhcnNlOnY9Pl9yZ2JhX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLm0udGVzdCh2KT9fcmdiYV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5tLnBhcnNlKHYpOl9oc2xhX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkoudGVzdCh2KT9faHNsYV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5KLnBhcnNlKHYpOl9oZXhfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uJC5wYXJzZSh2KSx0cmFuc2Zvcm06dj0+KDAsX3V0aWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLkhEKSh2KT92OnYuaGFzT3duUHJvcGVydHkoInJlZCIpP19yZ2JhX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLm0udHJhbnNmb3JtKHYpOl9oc2xhX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkoudHJhbnNmb3JtKHYpfX0sNDA4MTk6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se206ZnVuY3Rpb24oKXtyZXR1cm4gcmdiYX19KTt2YXIgX3V0aWxzX2NsYW1wX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oMjQxNjkpLF9udW1iZXJzX2luZGV4X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oNjE2NDkpLF91dGlsc19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDM2NDMwKSxfdXRpbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXyg5ODgzNCk7bGV0IGNsYW1wUmdiVW5pdD12PT4oMCxfdXRpbHNfY2xhbXBfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udSkoMCwyNTUsdikscmdiVW5pdD17Li4uX251bWJlcnNfaW5kZXhfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uUngsdHJhbnNmb3JtOnY9Pk1hdGgucm91bmQoY2xhbXBSZ2JVbml0KHYpKX0scmdiYT17dGVzdDooMCxfdXRpbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uaSkoInJnYiIsInJlZCIpLHBhcnNlOigwLF91dGlsc19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5kKSgicmVkIiwiZ3JlZW4iLCJibHVlIiksdHJhbnNmb3JtOih7cmVkLGdyZWVuLGJsdWUsYWxwaGE6YWxwaGEkMT0xfSk9PiJyZ2JhKCIrcmdiVW5pdC50cmFuc2Zvcm0ocmVkKSsiLCAiK3JnYlVuaXQudHJhbnNmb3JtKGdyZWVuKSsiLCAiK3JnYlVuaXQudHJhbnNmb3JtKGJsdWUpKyIsICIrKDAsX3V0aWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLk53KShfbnVtYmVyc19pbmRleF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5GcS50cmFuc2Zvcm0oYWxwaGEkMSkpKyIpIn19LDk4ODM0OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtkOmZ1bmN0aW9uKCl7cmV0dXJuIHNwbGl0Q29sb3J9LGk6ZnVuY3Rpb24oKXtyZXR1cm4gaXNDb2xvclN0cmluZ319KTt2YXIgX3V0aWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oMzY0MzApO2xldCBpc0NvbG9yU3RyaW5nPSh0eXBlLHRlc3RQcm9wKT0+dj0+Qm9vbGVhbigoMCxfdXRpbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uSEQpKHYpJiZfdXRpbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ubWoudGVzdCh2KSYmdi5zdGFydHNXaXRoKHR5cGUpfHx0ZXN0UHJvcCYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHYsdGVzdFByb3ApKSxzcGxpdENvbG9yPShhTmFtZSxiTmFtZSxjTmFtZSk9PnY9PntpZighKDAsX3V0aWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkhEKSh2KSlyZXR1cm4gdjtsZXRbYSxiLGMsYWxwaGFdPXYubWF0Y2goX3V0aWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLktQKTtyZXR1cm57W2FOYW1lXTpwYXJzZUZsb2F0KGEpLFtiTmFtZV06cGFyc2VGbG9hdChiKSxbY05hbWVdOnBhcnNlRmxvYXQoYyksYWxwaGE6dm9pZCAwIT09YWxwaGE/cGFyc2VGbG9hdChhbHBoYSk6MX19fSw5NzE5NzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7aDpmdW5jdGlvbigpe3JldHVybiBmaWx0ZXJ9fSk7dmFyIF9pbmRleF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDUxNTUwKSxfdXRpbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXygzNjQzMCk7bGV0IG1heERlZmF1bHRzPW5ldyBTZXQoWyJicmlnaHRuZXNzIiwiY29udHJhc3QiLCJzYXR1cmF0ZSIsIm9wYWNpdHkiXSk7ZnVuY3Rpb24gYXBwbHlEZWZhdWx0RmlsdGVyKHYpe2xldFtuYW1lLHZhbHVlXT12LnNsaWNlKDAsLTEpLnNwbGl0KCIoIik7aWYoImRyb3Atc2hhZG93Ij09PW5hbWUpcmV0dXJuIHY7bGV0W251bWJlcl09dmFsdWUubWF0Y2goX3V0aWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLktQKXx8W107aWYoIW51bWJlcilyZXR1cm4gdjtsZXQgdW5pdD12YWx1ZS5yZXBsYWNlKG51bWJlciwiIiksZGVmYXVsdFZhbHVlPW1heERlZmF1bHRzLmhhcyhuYW1lKT8xOjA7cmV0dXJuIG51bWJlciE9PXZhbHVlJiYoZGVmYXVsdFZhbHVlKj0xMDApLG5hbWUrIigiK2RlZmF1bHRWYWx1ZSt1bml0KyIpIn1sZXQgZnVuY3Rpb25SZWdleD0vKFthLXotXSopXCguKj9cKS9nLGZpbHRlcj17Li4uX2luZGV4X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlAsZ2V0QW5pbWF0YWJsZU5vbmUodil7bGV0IGZ1bmN0aW9ucz12Lm1hdGNoKGZ1bmN0aW9uUmVnZXgpO3JldHVybiBmdW5jdGlvbnM/ZnVuY3Rpb25zLm1hcChhcHBseURlZmF1bHRGaWx0ZXIpLmpvaW4oIiAiKTp2fX19LDUxNTUwOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtQOmZ1bmN0aW9uKCl7cmV0dXJuIGNvbXBsZXh9LFY6ZnVuY3Rpb24oKXtyZXR1cm4gYW5hbHlzZUNvbXBsZXhWYWx1ZX19KTt2YXIgX3JlbmRlcl9kb21fdXRpbHNfaXNfY3NzX3ZhcmlhYmxlX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oNTc2MzApLF91dGlsc19ub29wX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fPV9fd2VicGFja19yZXF1aXJlX18oODE2NjIpLF9jb2xvcl9pbmRleF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDg1Mzg1KSxfbnVtYmVyc19pbmRleF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDYxNjQ5KSxfdXRpbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXygzNjQzMCk7bGV0IGNzc1ZhclRva2VuaXNlcj17cmVnZXg6X3JlbmRlcl9kb21fdXRpbHNfaXNfY3NzX3ZhcmlhYmxlX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlhwLGNvdW50S2V5OiJWYXJzIix0b2tlbjoiJHt2fSIscGFyc2U6X3V0aWxzX25vb3BfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uWn0sY29sb3JUb2tlbmlzZXI9e3JlZ2V4Ol91dGlsc19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5kQSxjb3VudEtleToiQ29sb3JzIix0b2tlbjoiJHtjfSIscGFyc2U6X2NvbG9yX2luZGV4X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLiQucGFyc2V9LG51bWJlclRva2VuaXNlcj17cmVnZXg6X3V0aWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLktQLGNvdW50S2V5OiJOdW1iZXJzIix0b2tlbjoiJHtufSIscGFyc2U6X251bWJlcnNfaW5kZXhfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uUngucGFyc2V9O2Z1bmN0aW9uIHRva2VuaXNlKGluZm8se3JlZ2V4LGNvdW50S2V5LHRva2VuLHBhcnNlfSl7bGV0IG1hdGNoZXM9aW5mby50b2tlbmlzZWQubWF0Y2gocmVnZXgpO21hdGNoZXMmJihpbmZvWyJudW0iK2NvdW50S2V5XT1tYXRjaGVzLmxlbmd0aCxpbmZvLnRva2VuaXNlZD1pbmZvLnRva2VuaXNlZC5yZXBsYWNlKHJlZ2V4LHRva2VuKSxpbmZvLnZhbHVlcy5wdXNoKC4uLm1hdGNoZXMubWFwKHBhcnNlKSkpfWZ1bmN0aW9uIGFuYWx5c2VDb21wbGV4VmFsdWUodmFsdWUpe2xldCBvcmlnaW5hbFZhbHVlPXZhbHVlLnRvU3RyaW5nKCksaW5mbz17dmFsdWU6b3JpZ2luYWxWYWx1ZSx0b2tlbmlzZWQ6b3JpZ2luYWxWYWx1ZSx2YWx1ZXM6W10sbnVtVmFyczowLG51bUNvbG9yczowLG51bU51bWJlcnM6MH07cmV0dXJuIGluZm8udmFsdWUuaW5jbHVkZXMoInZhcigtLSIpJiZ0b2tlbmlzZShpbmZvLGNzc1ZhclRva2VuaXNlciksdG9rZW5pc2UoaW5mbyxjb2xvclRva2VuaXNlciksdG9rZW5pc2UoaW5mbyxudW1iZXJUb2tlbmlzZXIpLGluZm99ZnVuY3Rpb24gcGFyc2VDb21wbGV4VmFsdWUodil7cmV0dXJuIGFuYWx5c2VDb21wbGV4VmFsdWUodikudmFsdWVzfWZ1bmN0aW9uIGNyZWF0ZVRyYW5zZm9ybWVyKHNvdXJjZSl7bGV0e3ZhbHVlcyxudW1Db2xvcnMsbnVtVmFycyx0b2tlbmlzZWR9PWFuYWx5c2VDb21wbGV4VmFsdWUoc291cmNlKSxudW1WYWx1ZXM9dmFsdWVzLmxlbmd0aDtyZXR1cm4gdj0+e2xldCBvdXRwdXQ9dG9rZW5pc2VkO2ZvcihsZXQgaT0wO2k8bnVtVmFsdWVzO2krKylvdXRwdXQ9aTxudW1WYXJzP291dHB1dC5yZXBsYWNlKGNzc1ZhclRva2VuaXNlci50b2tlbix2W2ldKTppPG51bVZhcnMrbnVtQ29sb3JzP291dHB1dC5yZXBsYWNlKGNvbG9yVG9rZW5pc2VyLnRva2VuLF9jb2xvcl9pbmRleF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy4kLnRyYW5zZm9ybSh2W2ldKSk6b3V0cHV0LnJlcGxhY2UobnVtYmVyVG9rZW5pc2VyLnRva2VuLCgwLF91dGlsc19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5OdykodltpXSkpO3JldHVybiBvdXRwdXR9fWxldCBjb252ZXJ0TnVtYmVyc1RvWmVybz12PT4ibnVtYmVyIj09dHlwZW9mIHY/MDp2LGNvbXBsZXg9e3Rlc3Q6ZnVuY3Rpb24odil7dmFyIF9hLF9iO3JldHVybiBpc05hTih2KSYmKDAsX3V0aWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkhEKSh2KSYmKChudWxsPT09KF9hPXYubWF0Y2goX3V0aWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLktQKSl8fHZvaWQgMD09PV9hP3ZvaWQgMDpfYS5sZW5ndGgpfHwwKSsoKG51bGw9PT0oX2I9di5tYXRjaChfdXRpbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZEEpKXx8dm9pZCAwPT09X2I/dm9pZCAwOl9iLmxlbmd0aCl8fDApPjB9LHBhcnNlOnBhcnNlQ29tcGxleFZhbHVlLGNyZWF0ZVRyYW5zZm9ybWVyLGdldEFuaW1hdGFibGVOb25lOmZ1bmN0aW9uKHYpe2xldCBwYXJzZWQ9cGFyc2VDb21wbGV4VmFsdWUodiksdHJhbnNmb3JtZXI9Y3JlYXRlVHJhbnNmb3JtZXIodik7cmV0dXJuIHRyYW5zZm9ybWVyKHBhcnNlZC5tYXAoY29udmVydE51bWJlcnNUb1plcm8pKX19fSw2MTY0OTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7RnE6ZnVuY3Rpb24oKXtyZXR1cm4gYWxwaGF9LFJ4OmZ1bmN0aW9uKCl7cmV0dXJuIG51bWJlcn0sYkE6ZnVuY3Rpb24oKXtyZXR1cm4gc2NhbGV9fSk7dmFyIF91dGlsc19jbGFtcF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI0MTY5KTtsZXQgbnVtYmVyPXt0ZXN0OnY9PiJudW1iZXIiPT10eXBlb2YgdixwYXJzZTpwYXJzZUZsb2F0LHRyYW5zZm9ybTp2PT52fSxhbHBoYT17Li4ubnVtYmVyLHRyYW5zZm9ybTp2PT4oMCxfdXRpbHNfY2xhbXBfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udSkoMCwxLHYpfSxzY2FsZT17Li4ubnVtYmVyLGRlZmF1bHQ6MX19LDk2MTkwOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHskQzpmdW5jdGlvbigpe3JldHVybiBwcm9ncmVzc1BlcmNlbnRhZ2V9LFJXOmZ1bmN0aW9uKCl7cmV0dXJuIGRlZ3JlZXN9LGFROmZ1bmN0aW9uKCl7cmV0dXJuIHBlcmNlbnR9LHB4OmZ1bmN0aW9uKCl7cmV0dXJuIHB4fSx2aDpmdW5jdGlvbigpe3JldHVybiB2aH0sdnc6ZnVuY3Rpb24oKXtyZXR1cm4gdnd9fSk7dmFyIF91dGlsc19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDM2NDMwKTtsZXQgY3JlYXRlVW5pdFR5cGU9dW5pdD0+KHt0ZXN0OnY9PigwLF91dGlsc19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5IRCkodikmJnYuZW5kc1dpdGgodW5pdCkmJjE9PT12LnNwbGl0KCIgIikubGVuZ3RoLHBhcnNlOnBhcnNlRmxvYXQsdHJhbnNmb3JtOnY9PmAke3Z9JHt1bml0fWB9KSxkZWdyZWVzPWNyZWF0ZVVuaXRUeXBlKCJkZWciKSxwZXJjZW50PWNyZWF0ZVVuaXRUeXBlKCIlIikscHg9Y3JlYXRlVW5pdFR5cGUoInB4Iiksdmg9Y3JlYXRlVW5pdFR5cGUoInZoIiksdnc9Y3JlYXRlVW5pdFR5cGUoInZ3IikscHJvZ3Jlc3NQZXJjZW50YWdlPXsuLi5wZXJjZW50LHBhcnNlOnY9PnBlcmNlbnQucGFyc2UodikvMTAwLHRyYW5zZm9ybTp2PT5wZXJjZW50LnRyYW5zZm9ybSgxMDAqdil9fSwzNjQzMDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7SEQ6ZnVuY3Rpb24oKXtyZXR1cm4gaXNTdHJpbmd9LEtQOmZ1bmN0aW9uKCl7cmV0dXJuIGZsb2F0UmVnZXh9LE53OmZ1bmN0aW9uKCl7cmV0dXJuIHNhbml0aXplfSxkQTpmdW5jdGlvbigpe3JldHVybiBjb2xvclJlZ2V4fSxtajpmdW5jdGlvbigpe3JldHVybiBzaW5nbGVDb2xvclJlZ2V4fX0pO2xldCBzYW5pdGl6ZT12PT5NYXRoLnJvdW5kKDFlNSp2KS8xZTUsZmxvYXRSZWdleD0vKC0pPyhbXGRdKlwuP1tcZF0pKy9nLGNvbG9yUmVnZXg9LygjWzAtOWEtZl17Myw4fXwocmdifGhzbClhP1woKC0/W1xkXC5dKyU/Wyxcc10rKXsyfSgtP1tcZFwuXSslPylccypbXCxcL10/XHMqW1xkXC5dKiU/XCkpL2dpLHNpbmdsZUNvbG9yUmVnZXg9L14oI1swLTlhLWZdezMsOH18KHJnYnxoc2wpYT9cKCgtP1tcZFwuXSslP1ssXHNdKyl7Mn0oLT9bXGRcLl0rJT8pXHMqW1wsXC9dP1xzKltcZFwuXSolP1wpKSQvaTtmdW5jdGlvbiBpc1N0cmluZyh2KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHZ9fSw0OTYwOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtjOmZ1bmN0aW9uKCl7cmV0dXJuIHVzZU1vdGlvblZhbHVlfX0pO3ZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLF9pbmRleF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDMzMjM0KSxfY29udGV4dF9Nb3Rpb25Db25maWdDb250ZXh0X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fPV9fd2VicGFja19yZXF1aXJlX18oMTYwMTQpLF91dGlsc191c2VfY29uc3RhbnRfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg5NjY4MSk7ZnVuY3Rpb24gdXNlTW90aW9uVmFsdWUoaW5pdGlhbCl7bGV0IHZhbHVlPSgwLF91dGlsc191c2VfY29uc3RhbnRfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uaCkoKCk9PigwLF9pbmRleF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5CWCkoaW5pdGlhbCkpLHtpc1N0YXRpY309KDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VDb250ZXh0KShfY29udGV4dF9Nb3Rpb25Db25maWdDb250ZXh0X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLl8pO2lmKGlzU3RhdGljKXtsZXRbLHNldExhdGVzdF09KDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VTdGF0ZSkoaW5pdGlhbCk7KDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VFZmZlY3QpKCgpPT52YWx1ZS5vbigiY2hhbmdlIixzZXRMYXRlc3QpLFtdKX1yZXR1cm4gdmFsdWV9fSw0ODgyODpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7SDpmdW5jdGlvbigpe3JldHVybiB1c2VUcmFuc2Zvcm19fSk7dmFyIGludGVycG9sYXRlPV9fd2VicGFja19yZXF1aXJlX18oNjQ2MDYpO2xldCBpc0N1c3RvbVZhbHVlVHlwZT12PT4ib2JqZWN0Ij09dHlwZW9mIHYmJnYubWl4LGdldE1peGVyPXY9PmlzQ3VzdG9tVmFsdWVUeXBlKHYpP3YubWl4OnZvaWQgMDt2YXIgdXNlX21vdGlvbl92YWx1ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ5NjApLHVzZV9pc29tb3JwaGljX2VmZmVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4ODY4KSxmcmFtZWxvb3BfZnJhbWU9X193ZWJwYWNrX3JlcXVpcmVfXygyMDc0KTtmdW5jdGlvbiB1c2VDb21iaW5lTW90aW9uVmFsdWVzKHZhbHVlcyxjb21iaW5lVmFsdWVzKXtsZXQgdmFsdWU9KDAsdXNlX21vdGlvbl92YWx1ZS5jKShjb21iaW5lVmFsdWVzKCkpLHVwZGF0ZVZhbHVlPSgpPT52YWx1ZS5zZXQoY29tYmluZVZhbHVlcygpKTtyZXR1cm4gdXBkYXRlVmFsdWUoKSwoMCx1c2VfaXNvbW9ycGhpY19lZmZlY3QuTCkoKCk9PntsZXQgc2NoZWR1bGVVcGRhdGU9KCk9PmZyYW1lbG9vcF9mcmFtZS5XaS51cGRhdGUodXBkYXRlVmFsdWUsITEsITApLHN1YnNjcmlwdGlvbnM9dmFsdWVzLm1hcCh2PT52Lm9uKCJjaGFuZ2UiLHNjaGVkdWxlVXBkYXRlKSk7cmV0dXJuKCk9PntzdWJzY3JpcHRpb25zLmZvckVhY2godW5zdWJzY3JpYmU9PnVuc3Vic2NyaWJlKCkpLCgwLGZyYW1lbG9vcF9mcmFtZS5QbikodXBkYXRlVmFsdWUpfX0pLHZhbHVlfXZhciB1c2VfY29uc3RhbnQ9X193ZWJwYWNrX3JlcXVpcmVfXyg5NjY4MSksZXNfdmFsdWU9X193ZWJwYWNrX3JlcXVpcmVfXygzMzIzNCk7ZnVuY3Rpb24gdXNlVHJhbnNmb3JtKGlucHV0LGlucHV0UmFuZ2VPclRyYW5zZm9ybWVyLG91dHB1dFJhbmdlLG9wdGlvbnMpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBpbnB1dClyZXR1cm4gZnVuY3Rpb24oY29tcHV0ZSl7ZXNfdmFsdWUuUzEuY3VycmVudD1bXSxjb21wdXRlKCk7bGV0IHZhbHVlPXVzZUNvbWJpbmVNb3Rpb25WYWx1ZXMoZXNfdmFsdWUuUzEuY3VycmVudCxjb21wdXRlKTtyZXR1cm4gZXNfdmFsdWUuUzEuY3VycmVudD12b2lkIDAsdmFsdWV9KGlucHV0KTtsZXQgdHJhbnNmb3JtZXI9ImZ1bmN0aW9uIj09dHlwZW9mIGlucHV0UmFuZ2VPclRyYW5zZm9ybWVyP2lucHV0UmFuZ2VPclRyYW5zZm9ybWVyOmZ1bmN0aW9uKC4uLmFyZ3Mpe2xldCB1c2VJbW1lZGlhdGU9IUFycmF5LmlzQXJyYXkoYXJnc1swXSksYXJnT2Zmc2V0PXVzZUltbWVkaWF0ZT8wOi0xLGlucHV0VmFsdWU9YXJnc1swK2FyZ09mZnNldF0saW5wdXRSYW5nZT1hcmdzWzErYXJnT2Zmc2V0XSxvdXRwdXRSYW5nZT1hcmdzWzIrYXJnT2Zmc2V0XSxvcHRpb25zPWFyZ3NbMythcmdPZmZzZXRdLGludGVycG9sYXRvcj0oMCxpbnRlcnBvbGF0ZS5zKShpbnB1dFJhbmdlLG91dHB1dFJhbmdlLHttaXhlcjpnZXRNaXhlcihvdXRwdXRSYW5nZVswXSksLi4ub3B0aW9uc30pO3JldHVybiB1c2VJbW1lZGlhdGU/aW50ZXJwb2xhdG9yKGlucHV0VmFsdWUpOmludGVycG9sYXRvcn0oaW5wdXRSYW5nZU9yVHJhbnNmb3JtZXIsb3V0cHV0UmFuZ2Usb3B0aW9ucyk7cmV0dXJuIEFycmF5LmlzQXJyYXkoaW5wdXQpP3VzZUxpc3RUcmFuc2Zvcm0oaW5wdXQsdHJhbnNmb3JtZXIpOnVzZUxpc3RUcmFuc2Zvcm0oW2lucHV0XSwoW2xhdGVzdF0pPT50cmFuc2Zvcm1lcihsYXRlc3QpKX1mdW5jdGlvbiB1c2VMaXN0VHJhbnNmb3JtKHZhbHVlcyx0cmFuc2Zvcm1lcil7bGV0IGxhdGVzdD0oMCx1c2VfY29uc3RhbnQuaCkoKCk9PltdKTtyZXR1cm4gdXNlQ29tYmluZU1vdGlvblZhbHVlcyh2YWx1ZXMsKCk9PntsYXRlc3QubGVuZ3RoPTA7bGV0IG51bVZhbHVlcz12YWx1ZXMubGVuZ3RoO2ZvcihsZXQgaT0wO2k8bnVtVmFsdWVzO2krKylsYXRlc3RbaV09dmFsdWVzW2ldLmdldCgpO3JldHVybiB0cmFuc2Zvcm1lcihsYXRlc3QpfSl9fSw0MDQwNjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7aTpmdW5jdGlvbigpe3JldHVybiBpc01vdGlvblZhbHVlfX0pO2xldCBpc01vdGlvblZhbHVlPXZhbHVlPT5Cb29sZWFuKHZhbHVlJiZ2YWx1ZS5nZXRWZWxvY2l0eSl9LDE2Mzk5OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtiOmZ1bmN0aW9uKCl7cmV0dXJuIHJlc29sdmVNb3Rpb25WYWx1ZX19KTt2YXIgX3V0aWxzX3Jlc29sdmVfdmFsdWVfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg4NzE1KSxfaXNfbW90aW9uX3ZhbHVlX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNDA0MDYpO2Z1bmN0aW9uIHJlc29sdmVNb3Rpb25WYWx1ZSh2YWx1ZSl7bGV0IHVud3JhcHBlZFZhbHVlPSgwLF9pc19tb3Rpb25fdmFsdWVfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uaSkodmFsdWUpP3ZhbHVlLmdldCgpOnZhbHVlO3JldHVybigwLF91dGlsc19yZXNvbHZlX3ZhbHVlX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnApKHVud3JhcHBlZFZhbHVlKT91bndyYXBwZWRWYWx1ZS50b1ZhbHVlKCk6dW53cmFwcGVkVmFsdWV9fSwxNzQyMzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXyxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBkaXN0X2V9fSk7bGV0IHQ9dD0+Im9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT10JiYxPT09dC5ub2RlVHlwZSxlPSh0LGUpPT4oIWV8fCJoaWRkZW4iIT09dCkmJiJ2aXNpYmxlIiE9PXQmJiJjbGlwIiE9PXQsbj0odCxuKT0+e2lmKHQuY2xpZW50SGVpZ2h0PHQuc2Nyb2xsSGVpZ2h0fHx0LmNsaWVudFdpZHRoPHQuc2Nyb2xsV2lkdGgpe2xldCBvPWdldENvbXB1dGVkU3R5bGUodCxudWxsKTtyZXR1cm4gZShvLm92ZXJmbG93WSxuKXx8ZShvLm92ZXJmbG93WCxuKXx8KHQ9PntsZXQgZT0odD0+e2lmKCF0Lm93bmVyRG9jdW1lbnR8fCF0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpcmV0dXJuIG51bGw7dHJ5e3JldHVybiB0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVFbGVtZW50fWNhdGNoKHQxKXtyZXR1cm4gbnVsbH19KSh0KTtyZXR1cm4hIWUmJihlLmNsaWVudEhlaWdodDx0LnNjcm9sbEhlaWdodHx8ZS5jbGllbnRXaWR0aDx0LnNjcm9sbFdpZHRoKX0pKHQpfXJldHVybiExfSxvPSh0LGUsbixvLGwscixpLHMpPT5yPHQmJmk+ZXx8cj50JiZpPGU/MDpyPD10JiZzPD1ufHxpPj1lJiZzPj1uP3ItdC1vOmk+ZSYmczxufHxyPHQmJnM+bj9pLWUrbDowLGw9dD0+e2xldCBlPXQucGFyZW50RWxlbWVudDtyZXR1cm4gbnVsbD09ZT90LmdldFJvb3ROb2RlKCkuaG9zdHx8bnVsbDplfSxkaXN0X3I9KGUscik9Pnt2YXIgaSxzLGQsaDtpZigidW5kZWZpbmVkIj09dHlwZW9mIGRvY3VtZW50KXJldHVybltdO2xldHtzY3JvbGxNb2RlOmMsYmxvY2s6ZixpbmxpbmU6dSxib3VuZGFyeTphLHNraXBPdmVyZmxvd0hpZGRlbkVsZW1lbnRzOmd9PXIscD0iZnVuY3Rpb24iPT10eXBlb2YgYT9hOnQ9PnQhPT1hO2lmKCF0KGUpKXRocm93IFR5cGVFcnJvcigiSW52YWxpZCB0YXJnZXQiKTtsZXQgbT1kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsdz1bXSxXPWU7Zm9yKDt0KFcpJiZwKFcpOyl7aWYoKFc9bChXKSk9PT1tKXt3LnB1c2goVyk7YnJlYWt9bnVsbCE9VyYmVz09PWRvY3VtZW50LmJvZHkmJm4oVykmJiFuKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCl8fG51bGwhPVcmJm4oVyxnKSYmdy5wdXNoKFcpfWxldCBiPW51bGwhPShzPW51bGw9PShpPXdpbmRvdy52aXN1YWxWaWV3cG9ydCk/dm9pZCAwOmkud2lkdGgpP3M6aW5uZXJXaWR0aCxIPW51bGwhPShoPW51bGw9PShkPXdpbmRvdy52aXN1YWxWaWV3cG9ydCk/dm9pZCAwOmQuaGVpZ2h0KT9oOmlubmVySGVpZ2h0LHtzY3JvbGxYOnksc2Nyb2xsWTpNfT13aW5kb3cse2hlaWdodDp2LHdpZHRoOkUsdG9wOngscmlnaHQ6Qyxib3R0b206SSxsZWZ0OlJ9PWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkse3RvcDpULHJpZ2h0OkIsYm90dG9tOkYsbGVmdDpWfT0odD0+e2xldCBlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpO3JldHVybnt0b3A6cGFyc2VGbG9hdChlLnNjcm9sbE1hcmdpblRvcCl8fDAscmlnaHQ6cGFyc2VGbG9hdChlLnNjcm9sbE1hcmdpblJpZ2h0KXx8MCxib3R0b206cGFyc2VGbG9hdChlLnNjcm9sbE1hcmdpbkJvdHRvbSl8fDAsbGVmdDpwYXJzZUZsb2F0KGUuc2Nyb2xsTWFyZ2luTGVmdCl8fDB9fSkoZSksaz0ic3RhcnQiPT09Znx8Im5lYXJlc3QiPT09Zj94LVQ6ImVuZCI9PT1mP0krRjp4K3YvMi1UK0YsRD0iY2VudGVyIj09PXU/UitFLzItVitCOiJlbmQiPT09dT9DK0I6Ui1WLEw9W107Zm9yKGxldCB0MT0wO3QxPHcubGVuZ3RoO3QxKyspe2xldCBlMT13W3QxXSx7aGVpZ2h0Om4xLHdpZHRoOmwxLHRvcDpyMSxyaWdodDppMSxib3R0b206czEsbGVmdDpkMX09ZTEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoImlmLW5lZWRlZCI9PT1jJiZ4Pj0wJiZSPj0wJiZJPD1IJiZDPD1iJiZ4Pj1yMSYmSTw9czEmJlI+PWQxJiZDPD1pMSlicmVhaztsZXQgaDE9Z2V0Q29tcHV0ZWRTdHlsZShlMSksYTE9cGFyc2VJbnQoaDEuYm9yZGVyTGVmdFdpZHRoLDEwKSxnMT1wYXJzZUludChoMS5ib3JkZXJUb3BXaWR0aCwxMCkscDE9cGFyc2VJbnQoaDEuYm9yZGVyUmlnaHRXaWR0aCwxMCksVzE9cGFyc2VJbnQoaDEuYm9yZGVyQm90dG9tV2lkdGgsMTApLFQxPTAsQjE9MCxGMT0ib2Zmc2V0V2lkdGgiaW4gZTE/ZTEub2Zmc2V0V2lkdGgtZTEuY2xpZW50V2lkdGgtYTEtcDE6MCxWMT0ib2Zmc2V0SGVpZ2h0ImluIGUxP2UxLm9mZnNldEhlaWdodC1lMS5jbGllbnRIZWlnaHQtZzEtVzE6MCxTPSJvZmZzZXRXaWR0aCJpbiBlMT8wPT09ZTEub2Zmc2V0V2lkdGg/MDpsMS9lMS5vZmZzZXRXaWR0aDowLFg9Im9mZnNldEhlaWdodCJpbiBlMT8wPT09ZTEub2Zmc2V0SGVpZ2h0PzA6bjEvZTEub2Zmc2V0SGVpZ2h0OjA7aWYobT09PWUxKVQxPSJzdGFydCI9PT1mP2s6ImVuZCI9PT1mP2stSDoibmVhcmVzdCI9PT1mP28oTSxNK0gsSCxnMSxXMSxNK2ssTStrK3Ysdik6ay1ILzIsQjE9InN0YXJ0Ij09PXU/RDoiY2VudGVyIj09PXU/RC1iLzI6ImVuZCI9PT11P0QtYjpvKHkseStiLGIsYTEscDEseStELHkrRCtFLEUpLFQxPU1hdGgubWF4KDAsVDErTSksQjE9TWF0aC5tYXgoMCxCMSt5KTtlbHNle1QxPSJzdGFydCI9PT1mP2stcjEtZzE6ImVuZCI9PT1mP2stczErVzErVjE6Im5lYXJlc3QiPT09Zj9vKHIxLHMxLG4xLGcxLFcxK1YxLGssayt2LHYpOmstKHIxK24xLzIpK1YxLzIsQjE9InN0YXJ0Ij09PXU/RC1kMS1hMToiY2VudGVyIj09PXU/RC0oZDErbDEvMikrRjEvMjoiZW5kIj09PXU/RC1pMStwMStGMTpvKGQxLGkxLGwxLGExLHAxK0YxLEQsRCtFLEUpO2xldHtzY3JvbGxMZWZ0OnQyLHNjcm9sbFRvcDpoMn09ZTE7VDE9MD09PVg/MDpNYXRoLm1heCgwLE1hdGgubWluKGgyK1QxL1gsZTEuc2Nyb2xsSGVpZ2h0LW4xL1grVjEpKSxCMT0wPT09Uz8wOk1hdGgubWF4KDAsTWF0aC5taW4odDIrQjEvUyxlMS5zY3JvbGxXaWR0aC1sMS9TK0YxKSksays9aDItVDEsRCs9dDItQjF9TC5wdXNoKHtlbDplMSx0b3A6VDEsbGVmdDpCMX0pfXJldHVybiBMfSxkaXN0X289dD0+ITE9PT10P3tibG9jazoiZW5kIixpbmxpbmU6Im5lYXJlc3QifTp0PT09T2JqZWN0KHQpJiYwIT09T2JqZWN0LmtleXModCkubGVuZ3RoP3Q6e2Jsb2NrOiJzdGFydCIsaW5saW5lOiJuZWFyZXN0In07ZnVuY3Rpb24gZGlzdF9lKGUscil7aWYoIWUuaXNDb25uZWN0ZWR8fCEodD0+e2xldCBvPXQ7Zm9yKDtvJiZvLnBhcmVudE5vZGU7KXtpZihvLnBhcmVudE5vZGU9PT1kb2N1bWVudClyZXR1cm4hMDtvPW8ucGFyZW50Tm9kZSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3Q/by5wYXJlbnROb2RlLmhvc3Q6by5wYXJlbnROb2RlfXJldHVybiExfSkoZSkpcmV0dXJuO2xldCBuPSh0PT57bGV0IG89d2luZG93LmdldENvbXB1dGVkU3R5bGUodCk7cmV0dXJue3RvcDpwYXJzZUZsb2F0KG8uc2Nyb2xsTWFyZ2luVG9wKXx8MCxyaWdodDpwYXJzZUZsb2F0KG8uc2Nyb2xsTWFyZ2luUmlnaHQpfHwwLGJvdHRvbTpwYXJzZUZsb2F0KG8uc2Nyb2xsTWFyZ2luQm90dG9tKXx8MCxsZWZ0OnBhcnNlRmxvYXQoby5zY3JvbGxNYXJnaW5MZWZ0KXx8MH19KShlKTtpZigib2JqZWN0Ij09dHlwZW9mIHImJiJmdW5jdGlvbiI9PXR5cGVvZiByLmJlaGF2aW9yKXJldHVybiByLmJlaGF2aW9yKGRpc3RfcihlLHIpKTtsZXQgbD0iYm9vbGVhbiI9PXR5cGVvZiByfHxudWxsPT1yP3ZvaWQgMDpyLmJlaGF2aW9yO2ZvcihsZXR7ZWw6YSx0b3A6aSxsZWZ0OnN9b2YgZGlzdF9yKGUsZGlzdF9vKHIpKSl7bGV0IHQ9aS1uLnRvcCtuLmJvdHRvbSxvPXMtbi5sZWZ0K24ucmlnaHQ7YS5zY3JvbGwoe3RvcDp0LGxlZnQ6byxiZWhhdmlvcjpsfSl9fX19XSk7"}},"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":"buvei.com/_next/image?url=https%3A%2F%2Fosspremium.s3.us-east-2.amazonaws.com%2Fa%2Fa_642f08%2F20250419104503001cfc23cc.webp\u0026w=1920\u0026q=75","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"imageset","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:49.260Z","timestamp":1785127669260,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/image?url=https%3A%2F%2Fosspremium.s3.us-east-2.amazonaws.com%2Fa%2Fa_642f08%2F20250419104503001cfc23cc.webp\u0026w=1920\u0026q=75 HTTP/1.1\r\nHost: buvei.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:49 GMT\r\ncontent-type: image/webp\r\ncontent-length: 133102\r\nserver: cloudflare\r\ncontent-security-policy: script-src 'none'; frame-src 'none'; sandbox;\r\nx-frame-options: DENY\r\nvary: Accept\r\ncache-control: public, max-age=60, must-revalidate\r\netag: R-IwFnQ+3vjXtITCmoCzAt-xlr7x-YGO6+2PAWGZ8dk=\r\ncontent-disposition: inline; filename=\"20250419104503001cfc23cc.webp\"\r\nx-nextjs-cache: STALE\r\ncf-cache-status: DYNAMIC\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=9jmhP%2FyfUbvbYAYmgiKThyRl2iImkxieGeAunmKx1EjCe8t3uKZ0pH1F0IHG41qGGtJh01PUkBrfeLh7bdjOm8Lv1QZTb6tyOlUJLGKunViFUiErXu7wDh3Hug%3D%3D\"}]}\r\ncf-ray: a219021ced128be6-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"]}],"data":{"size":133102,"size_decoded":133920,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image","md5":"1d0237abd009f08bea8925fe3b842052","sha1":"2f384d57b22147d0526695a9f718457f77abb6df","sha256":"47f23016743edef8d7b484c29a80b302dff196bef1fd818eebed8f016199f1d9","sha512":"7d5906176e99be6064b9da560239b3b72fa0823a84dc28ea8da1fa7328fe7f228f413323d238416e5a463cf972775897b8020557061240619cf443749e6db6f1","ssdeep":"3072:KHaRZyI0Unpzbl6lsWkCG4SEAKNfvVQI2oM:KHaRZhzb2EF/6nVS","tlshash":"edd312844660d36cfc93c03a3434524726bc9925f7ccf8dee820f8a92d46dfb69195ba","first_seen":"2026-07-27T03:56:11.641885Z","last_seen":"2026-07-27T10:05:53.93931Z","times_seen":4,"resource_available":false,"data":"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"}},"time_used":264,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":143,"receive":121,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/image?url=https%3A%2F%2Fosspremium.s3.us-east-2.amazonaws.com%2Fa%2Fa_642f08%2F202504191222404b08684b75.webp\u0026w=1920\u0026q=75","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"lazy-imageset","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:49.495Z","timestamp":1785127669495,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/image?url=https%3A%2F%2Fosspremium.s3.us-east-2.amazonaws.com%2Fa%2Fa_642f08%2F202504191222404b08684b75.webp\u0026w=1920\u0026q=75 HTTP/1.1\r\nHost: buvei.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:49 GMT\r\ncontent-type: image/webp\r\ncontent-length: 9342\r\nserver: cloudflare\r\ncontent-security-policy: script-src 'none'; frame-src 'none'; sandbox;\r\nx-frame-options: DENY\r\nvary: Accept\r\ncache-control: public, max-age=60, must-revalidate\r\netag: w8u6EW5QYVW1GDAiqcJCL6+ZuqXDPQFb7pQ8JGiNvRo=\r\ncontent-disposition: inline; filename=\"202504191222404b08684b75.webp\"\r\nx-nextjs-cache: STALE\r\ncf-cache-status: DYNAMIC\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=oM60gbDyscf7LYGMnmz%2F%2FpCFbK%2F1WRvQpdLL6%2BhBCOEf6o5BwMPFMqz7tv%2FYvO0Wx8DIpJEi1XRx1Me9W80Lx9qosVZUs3r6YBIlhuCi2gNHIEUtFyxCGs9C8Q%3D%3D\"}]}\r\ncf-ray: a219021e5fe98be6-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"]}],"data":{"size":9342,"size_decoded":10166,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image","md5":"ba6d05ba85b2a559771db96f342437c7","sha1":"e7b1372ad66b1d283f26dd44aecef414e77ee3c3","sha256":"c3cbba116e506155b5183022a9c2422faf99baa5c33d015bee943c24688dbd1a","sha512":"34b5a3b5ca68f6875ed35ec54b45972459bdc6cc8ae97945b9d2c256f7a218afc487e0bcdb0e2ac0e73be68b3bf451986b2af3f51c161f653d8cde35c1f1e759","ssdeep":"192:Bwz8TNfVN+giKwreLKK8fUM0N5f7iB36Wi66d88:BwzglVNGMKK8H0X7U3fgdb","tlshash":"32125b86b13deac9fa0311bdb8753fc31603a970c3d66de9e6538b445740dea54a83e0","first_seen":"2026-07-27T03:56:11.671496Z","last_seen":"2026-07-27T10:05:53.933242Z","times_seen":4,"resource_available":false,"data":"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"}},"time_used":185,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":185,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"wss","addr":"wss://client.relay.crisp.chat/w/da8/?EIO=4\u0026transport=websocket","fqdn":"client.relay.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"64.227.36.222","port":443,"asn":14061,"as":"DIGITALOCEAN-ASN","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"websocket","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:49.732Z","timestamp":1785127669732,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.relay.crisp.chat","organization":""},"issuer":{"commonName":"Sectigo Public Server Authentication CA DV E36","organization":"Sectigo Limited"},"validity":{"start":"Mon, 09 Mar 2026 00:00:00 GMT","end":"Fri, 09 Apr 2027 23:59:59 GMT"},"fingerprint":{"sha1":"D6:77:52:86:F5:CD:F8:10:0F:40:54:04:1E:4B:73:AE:72:FB:C8:6F","sha256":"89:E0:2C:E5:3B:95:C3:4D:F9:9C:21:BC:FB:7B:F9:71:C8:21:87:5E:A8:72:2E:79:82:E7:64:63:52:83:E5:05"}}},"request":{"raw":"GET /w/da8/?EIO=4\u0026transport=websocket HTTP/1.1\r\nHost: client.relay.crisp.chat\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://buvei.com\r\nSec-WebSocket-Extensions: permessage-deflate\r\nSec-WebSocket-Key: jdJjOOuKscGiLLkXuNxigg==\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: Upgrade\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: websocket\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nUpgrade: websocket\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 101 Switching Protocols\r\nServer: nginx\r\nDate: Mon, 27 Jul 2026 04:47:49 GMT\r\nConnection: upgrade\r\nUpgrade: websocket\r\nSec-WebSocket-Accept: 8OtxzoiUkHlVY4OE0mAbZx8r3X8=\r\nX-Crisp-Ray: website w:da8 10.133.40.187:3000\r\nAccess-Control-Allow-Headers: Content-Type, Origin, Upgrade\r\nAccess-Control-Allow-Methods: HEAD, GET, OPTIONS\r\nAccess-Control-Allow-Credentials: false\r\nAccess-Control-Allow-Origin: *\r\nAccess-Control-Max-Age: 300\r\n\r\n","headers":null,"cookies":null,"status_code":"101","status_text":"Switching Protocols","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":0,"size_decoded":441,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-03T14:27:57.238673Z","times_seen":17691327,"resource_available":true,"data":""}},"time_used":245,"timings":{"blocked":0,"dns":88,"connect":103,"send":0,"wait":32,"receive":0,"ssl":22},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/monitoring?o=4510469741281280\u0026p=4510661302484992\u0026r=us","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:51.779Z","timestamp":1785127671779,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"POST /monitoring?o=4510469741281280\u0026p=4510661302484992\u0026r=us HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\nContent-Type: text/plain;charset=UTF-8\r\nContent-Length: 93752\r\nOrigin: https://buvei.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: _ga_085T6Y7PBP=GS2.1.s1785127669$o1$g0$t1785127669$j60$l0$h0; _ga=GA1.1.1959893868.1785127670; crisp-client%2Fsession%2F04c4ac10-ff79-40d3-97b2-e069177c1b37=session_c03fcdcc-0b11-4340-8035-96dc80fdfded; _gcl_au=1.1.1717034728.1785127670; crisp-client%2Fsocket%2F04c4ac10-ff79-40d3-97b2-e069177c1b37=1\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"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:52 GMT\r\ncontent-type: application/json\r\ncontent-length: 41\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\nvary: origin, access-control-request-method, access-control-request-headers, Accept-Encoding\r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: x-sentry-error,x-sentry-rate-limits,retry-after\r\ncross-origin-resource-policy: cross-origin\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nvia: 1.1 google\r\ncf-cache-status: DYNAMIC\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=QvD04Oc1ZKN6LXLGdD6XP8HX4TYOg1IMqHbdiqxG3PBzHChpQAUtLw76WVVBN%2B0ElrcbeRiHSMEWfu88qrNHK%2F5YGtfujATb%2Bi2VqOhY2czrFDftzyzxMOEk1A%3D%3D\"}]}\r\ncf-ray: a219022cafaf8be6-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Google Cloud CDN","description":"Cloud CDN uses Google's global edge network to serve content closer to users.","website":"https://cloud.google.com/cdn","common_platform_enumeration":"","icon":"google-cloud-cdn.svg","categories":["CDN"]},{"name":"Google Cloud","description":"Google Cloud is a suite of cloud computing services.","website":"https://cloud.google.com","common_platform_enumeration":"cpe:2.3:a:google:cloud_platform:*:*:*:*:*:*:*:*","icon":"Google Cloud.svg","categories":["IaaS"]},{"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":41,"size_decoded":971,"mime_type":"application/json","magic":"JSON text data","md5":"99d6ec115cab944f2a21c9fac66c0f63","sha1":"9997ee8fc73eeaf6a65f47dcbcf7103083d38818","sha256":"03937155823791389ac13502b168f040890fdb3dedd8454cafabea1546e422db","sha512":"d02cc45cec93354f021b431803a84e393e4f82cb8eb4b864aff15d8d74527817dad866cb6c901dc89988a114b774aeb86648f69d34dd7b7b9faa03d7cb32025a","ssdeep":"","tlshash":"1490041111454005c110c4c1ff5154511c3c700444fc1444c534cc4445413d55f51515","first_seen":"2026-07-27T04:48:28.469261Z","last_seen":"2026-07-27T04:48:28.469261Z","times_seen":1,"resource_available":false,"data":"eyJpZCI6ImRmNjg3ZDZiNmMzMjQ2N2Y4ZWI1YTdlZGM2NmU4M2U1In0="}},"time_used":431,"timings":{"blocked":0,"dns":0,"connect":0,"send":2,"wait":429,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/chunks/1926.6d86221996340421.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.433Z","timestamp":1785127668433,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/static/chunks/1926.6d86221996340421.js HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: application/javascript; charset=UTF-8\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\ncache-control: public, max-age=31536000, immutable\r\naccept-ranges: bytes\r\nlast-modified: Mon, 29 Jun 2026 05:34:13 GMT\r\netag: W/\"2bcc-19f11def808\"\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nage: 188872\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=uFGVykPzVbhE9zumeBSi6%2BZXyLajj%2FgFUMZHZE40DqDxV7pQqkCzZ3Yzw5BcNze1QhDEDIpHB6bllWjMs1YAktGOH2FwH0bjsXaLP4Wepqcic2oF97xux8yLRQ%3D%3D\"}]}\r\ncf-ray: a2190217bb2d8be6-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"]}],"data":{"size":11212,"size_decoded":2977,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (11212), with no line terminators","md5":"b2ae37cabc22a155bed1989262bd5d4d","sha1":"a74b2cd58c4399673b383f1236c90999c4cdfb94","sha256":"4fb996f4cb8cb4c3f81fe064a55407441574aa4a83f711f9bcbbfbd06a9b509f","sha512":"dc1be381e1fc135753dfd09566efafc22b0b444fb2ce73e1d8837bd90a1f01cbb7cff77b34f26f302f21d0cf93b473bb22c2baa111a54729840bb9f4d59e2124","ssdeep":"192:E0BQltkODdlgcSeFTaMev9E6ADpb2w327Tr:E0q3BDdlgcSeFTaMkKhpbVgTr","tlshash":"aa3203518dcc6561fc23354d107afed9722b478577b788a5cc7baa3008846e8d61dbce","first_seen":"2026-07-27T03:56:11.679493Z","last_seen":"2026-07-27T10:05:53.909095Z","times_seen":4,"resource_available":true,"data":"dHJ5eyFmdW5jdGlvbigpe3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sbj0obmV3IGUuRXJyb3IpLnN0YWNrO24mJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbbl09ImQyMGFhYzRmLTIyMmYtNDBiZi04YWJkLTA5ZWFiZjQzYzJmNSIsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9InNlbnRyeS1kYmlkLWQyMGFhYzRmLTIyMmYtNDBiZi04YWJkLTA5ZWFiZjQzYzJmNSIpfSgpfWNhdGNoKGUpe30oc2VsZi53ZWJwYWNrQ2h1bmtfTl9FPXNlbGYud2VicGFja0NodW5rX05fRXx8W10pLnB1c2goW1sxOTI2XSx7NzE5MjY6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pLF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIEhvbWV9fSk7dmFyIGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc209X193ZWJwYWNrX3JlcXVpcmVfXygzNTk0NCkscmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksdXNlUmVzcG9uc2l2ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDI4NzQzKSx1c2VfaW5fdmlldz1fX3dlYnBhY2tfcmVxdWlyZV9fKDE5MjE1KSxjb250YWluZXI9X193ZWJwYWNrX3JlcXVpcmVfXyg2NjI1MSksZXNtPV9fd2VicGFja19yZXF1aXJlX18oODY5MCksbG9hZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDUxNjEwKSxpbmRleF9tb2R1bGU9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzY4MyksaW5kZXhfbW9kdWxlX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGluZGV4X21vZHVsZSk7bGV0IFNjcm9sbD1wYXJhbT0+e2xldHtoZWlnaHQsd2lkdGgsc3BlZWQsY2hpbGRyZW59PXBhcmFtLGNvbnRlbnRSZWY9KDAscmVhY3QudXNlUmVmKShudWxsKSxbZHVyYXRpb24sc2V0RHVyYXRpb25dPSgwLHJlYWN0LnVzZVN0YXRlKSgwKTsoMCxyZWFjdC51c2VFZmZlY3QpKCgpPT57aWYoY29udGVudFJlZi5jdXJyZW50KXtsZXQgb2Zmc2V0V2lkdGg9d2lkdGh8fGNvbnRlbnRSZWYuY3VycmVudC5vZmZzZXRXaWR0aDtzZXREdXJhdGlvbihNYXRoLmZsb29yKDFlMypvZmZzZXRXaWR0aC8oMipzcGVlZCkpKX19LFt3aWR0aCxzcGVlZF0pO2xldCBhbmltYXRpb25TdHlsZT0oMCxyZWFjdC51c2VNZW1vKSgoKT0+KHthbmltYXRpb25EdXJhdGlvbjpkdXJhdGlvbj8iIi5jb25jYXQoZHVyYXRpb24sIm1zIik6IjBtcyJ9KSxbZHVyYXRpb25dKTtyZXR1cm4oMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmluZGV4X21vZHVsZV9kZWZhdWx0KCkuc2Nyb2xsQ29udGFpbmVyLHN0eWxlOntoZWlnaHR9LGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtyZWY6Y29udGVudFJlZixjbGFzc05hbWU6aW5kZXhfbW9kdWxlX2RlZmF1bHQoKS5zY3JvbGxDb250ZW50LHN0eWxlOmFuaW1hdGlvblN0eWxlLGNoaWxkcmVuOltjaGlsZHJlbixjaGlsZHJlbl19KX0pfTt2YXIgYXV0b1Njcm9sbD1yZWFjdC5tZW1vKFNjcm9sbCksY29tcG9uZW50c19pbWFnZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDExNTg2KTtsZXQgZWFzZU91dFF1YWQ9dD0+dCooMi10KSxBbmltYXRlZENvdW50ZXI9cGFyYW09PntsZXR7dG89MTAwLGR1cmF0aW9uPTIsc3RhcnQ9ITF9PXBhcmFtLFtkaXNwbGF5LHNldERpc3BsYXldPSgwLHJlYWN0LnVzZVN0YXRlKSgwKSxmcmFtZVJlZj0oMCxyZWFjdC51c2VSZWYpKCksc3RhcnRUaW1lUmVmPSgwLHJlYWN0LnVzZVJlZikoKTtyZXR1cm4oMCxyZWFjdC51c2VFZmZlY3QpKCgpPT57aWYoIXN0YXJ0KXJldHVybjtsZXQgYW5pbWF0ZT1jdXJyZW50VGltZT0+e3N0YXJ0VGltZVJlZi5jdXJyZW50fHwoc3RhcnRUaW1lUmVmLmN1cnJlbnQ9Y3VycmVudFRpbWUpO2xldCBlbGFwc2VkPWN1cnJlbnRUaW1lLXN0YXJ0VGltZVJlZi5jdXJyZW50LHByb2dyZXNzPU1hdGgubWluKGVsYXBzZWQvKDFlMypkdXJhdGlvbiksMSksZWFzZWRQcm9ncmVzcz1lYXNlT3V0UXVhZChwcm9ncmVzcyk7c2V0RGlzcGxheShNYXRoLnJvdW5kKGVhc2VkUHJvZ3Jlc3MqdG8pKSxwcm9ncmVzczwxJiYoZnJhbWVSZWYuY3VycmVudD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYW5pbWF0ZSkpfTtyZXR1cm4gZnJhbWVSZWYuY3VycmVudD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYW5pbWF0ZSksKCk9PntmcmFtZVJlZi5jdXJyZW50JiZjYW5jZWxBbmltYXRpb25GcmFtZShmcmFtZVJlZi5jdXJyZW50KSxzdGFydFRpbWVSZWYuY3VycmVudD12b2lkIDB9fSxbdG8sZHVyYXRpb24sc3RhcnRdKSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgic3BhbiIse2NoaWxkcmVuOmRpc3BsYXl9KX07dmFyIGNvbW1vbl9zdHlsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk3NjMxKSxpbmRleF9zdHlsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDIwOTgyKTtmdW5jdGlvbiBIb21lKCl7bGV0e3N0eWxlczpjb21tb25TdHlsZXMsY3h9PSgwLGNvbW1vbl9zdHlsZS5jKSgpLHtzdHlsZXN9PSgwLGluZGV4X3N0eWxlLnkpKCkscmVmPSgwLHJlYWN0LnVzZVJlZikobnVsbCksaXNJblZpZXc9KDAsdXNlX2luX3ZpZXcuWSkocmVmKSx7dGFibGV0LGxhcHRvcCxtb2JpbGV9PSgwLHVzZVJlc3BvbnNpdmUuRikoKSx7dH09KDAsZXNtLiRHKShbImNvbW1vbiIsImluZGV4Il0pLGltYWdlcz1be2ljb246KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2szSW1nSXRlbSxzdHlsZTp7d2lkdGg6MTY1fSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoY29tcG9uZW50c19pbWFnZS5aLHtzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDE5MTU1MTMxZTRjZjhjNDZjOS53ZWJwIixhbHQ6dCgidGl0bGUyOCIse25zOiJpbmRleCJ9KSx3aWR0aDozMCxoZWlnaHQ6MzB9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgic3BhbiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2szSW1nVGV4dCxjaGlsZHJlbjp0KCJ0aXRsZTI4Iix7bnM6ImluZGV4In0pfSldfSksd2lkdGg6MTY1fSx7aWNvbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazNJbWdJdGVtLHN0eWxlOnt3aWR0aDoxODV9LGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShjb21wb25lbnRzX2ltYWdlLlose3NyYzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MTkxNTU1MTBiYjg2MzBmOTQ5LndlYnAiLGFsdDp0KCJ0aXRsZTI5Iix7bnM6ImluZGV4In0pLHdpZHRoOjMwLGhlaWdodDozMH0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJzcGFuIix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazNJbWdUZXh0LGNoaWxkcmVuOnQoInRpdGxlMjkiLHtuczoiaW5kZXgifSl9KV19KSx3aWR0aDoxODV9LHtpY29uOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrM0ltZ0l0ZW0sc3R5bGU6e3dpZHRoOjE2OH0sY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7c3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDQxOTE1NTU1ODA2MTVjYTM1M2Yud2VicCIsYWx0OnQoInRpdGxlMzAiLHtuczoiaW5kZXgifSksd2lkdGg6MzAsaGVpZ2h0OjMwfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoInNwYW4iLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrM0ltZ1RleHQsY2hpbGRyZW46dCgidGl0bGUzMCIse25zOiJpbmRleCJ9KX0pXX0pLHdpZHRoOjE2OH0se2ljb246KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2szSW1nSXRlbSxzdHlsZTp7d2lkdGg6MTYzfSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoY29tcG9uZW50c19pbWFnZS5aLHtzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDE5MTU1NzExN2I4ZDMzYWRlMy53ZWJwIixhbHQ6dCgidGl0bGUzMSIse25zOiJpbmRleCJ9KSx3aWR0aDozMCxoZWlnaHQ6MzB9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgic3BhbiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2szSW1nVGV4dCxjaGlsZHJlbjp0KCJ0aXRsZTMxIix7bnM6ImluZGV4In0pfSldfSksd2lkdGg6MTYzfSx7aWNvbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazNJbWdJdGVtLHN0eWxlOnt3aWR0aDoxNDN9LGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShjb21wb25lbnRzX2ltYWdlLlose3NyYzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MTkxNTU3NTY0YTJlZmRkY2I1LndlYnAiLGFsdDp0KCJ0aXRsZTMyIix7bnM6ImluZGV4In0pLHdpZHRoOjMwLGhlaWdodDozMH0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJzcGFuIix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazNJbWdUZXh0LGNoaWxkcmVuOnQoInRpdGxlMzIiLHtuczoiaW5kZXgifSl9KV19KSx3aWR0aDoxNDN9LHtpY29uOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrM0ltZ0l0ZW0sc3R5bGU6e3dpZHRoOjE2Mn0sY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7c3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDQxOTE1NTkwNGIzNTNmN2RjOTIud2VicCIsYWx0OnQoInRpdGxlMzIiLHtuczoiaW5kZXgifSksd2lkdGg6MzAsaGVpZ2h0OjMwfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoInNwYW4iLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrM0ltZ1RleHQsY2hpbGRyZW46dCgidGl0bGUzMyIse25zOiJpbmRleCJ9KX0pXX0pLHdpZHRoOjE2Mn0se2ljb246KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2szSW1nSXRlbSxzdHlsZTp7d2lkdGg6MTQ1fSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoY29tcG9uZW50c19pbWFnZS5aLHtzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDE5MTYwMDE3MGZkMWVhMDI2NC53ZWJwIixhbHQ6dCgidGl0bGUzNCIse25zOiJpbmRleCJ9KSx3aWR0aDozMCxoZWlnaHQ6MzB9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgic3BhbiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2szSW1nVGV4dCxjaGlsZHJlbjp0KCJ0aXRsZTM0Iix7bnM6ImluZGV4In0pfSldfSksd2lkdGg6MTQ1fSx7aWNvbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazNJbWdJdGVtLHN0eWxlOnt3aWR0aDoxNzV9LGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7c3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDQxOTE2MDE0MTBhOTNiZjg3ZTAud2VicCIsYWx0OiJXYWxtYXJ0Iix3aWR0aDoxMjcsaGVpZ2h0OjMwfSl9KSx3aWR0aDoxNzV9LHtpY29uOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrM0ltZ0l0ZW0sc3R5bGU6e3dpZHRoOjE2OH0sY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoY29tcG9uZW50c19pbWFnZS5aLHtzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDE5MTYwMjI5YjBiOWM2ZTIxYi53ZWJwIixhbHQ6IkxhemFkYSIsd2lkdGg6MTIwLGhlaWdodDozMH0pfSksd2lkdGg6MTY4fSx7aWNvbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazNJbWdJdGVtLHN0eWxlOnt3aWR0aDoxMDh9LGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7c3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDQxOTE2MDMxNTNjNjAwNGM5OGUud2VicCIsYWx0OiJFVFNZIix3aWR0aDo2MCxoZWlnaHQ6MzB9KX0pLHdpZHRoOjEwOH0se2ljb246KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2szSW1nSXRlbSxzdHlsZTp7d2lkdGg6MTIyfSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShjb21wb25lbnRzX2ltYWdlLlose3NyYzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MTkxNjAzNTM3OWU1YzI0MjQyLndlYnAiLGFsdDoiRUJBWSIsd2lkdGg6NzQsaGVpZ2h0OjMwfSl9KSx3aWR0aDoxMjJ9XSx3aWR0aD0yMCppbWFnZXMubGVuZ3RoO3JldHVybiBpbWFnZXMuZm9yRWFjaChpdGVtPT57d2lkdGgrPWl0ZW0ud2lkdGh9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5tYWluLGNvbW1vblN0eWxlcy5iZzEsY29tbW9uU3R5bGVzLm1haW5QYWRkaW5nMTIwKSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoY29udGFpbmVyLlose2NoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxvYWQucnEse2NoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtyZWY6cmVmLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiaDIiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLmgyLGNvbW1vblN0eWxlcy50ZXh0Q2VudGVyKSxjaGlsZHJlbjp0KCJ0aXRsZTM1Iix7bnM6ImluZGV4In0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuc3ViVGl0bGUyLGNvbW1vblN0eWxlcy50ZXh0Q2VudGVyKSxjaGlsZHJlbjp0KCJ0aXRsZTM2Iix7bnM6ImluZGV4In0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpjeChzdHlsZXMuc21hbGxDb250YWluZXIsY29tbW9uU3R5bGVzLm10ODAsY29tbW9uU3R5bGVzLmZsZXhDZW50ZXJDZW50ZXIsY29tbW9uU3R5bGVzLmNvbG9yV2hpdGUpLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazNCaW5JdGVtLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5zaXplNjApLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShBbmltYXRlZENvdW50ZXIse3RvOjE1LHN0YXJ0OmlzSW5WaWV3LGR1cmF0aW9uOjEuNX0pLCIrIl19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5zaXplMjAsY29tbW9uU3R5bGVzLmNvbG9yMSxjb21tb25TdHlsZXMubXQxMiksY2hpbGRyZW46dCgidGl0bGU2Iix7bnM6ImluZGV4In0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2szSW1hZ2UsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoY29tcG9uZW50c19pbWFnZS5aLHtzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDIyMTE1NTE2OGQwMjFmMDVhZi53ZWJwIixhbHQ6dCgidGl0bGU2Iix7bnM6ImluZGV4In0pLGZpbGw6ITB9KX0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrM0Jpbkl0ZW0sY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLnNpemU2MCksY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKEFuaW1hdGVkQ291bnRlcix7dG86MjUsc3RhcnQ6aXNJblZpZXcsZHVyYXRpb246MS41fSksIisiXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLnNpemUyMCxjb21tb25TdHlsZXMuY29sb3IxLGNvbW1vblN0eWxlcy5tdDEyKSxjaGlsZHJlbjp0KCJ0aXRsZTciLHtuczoiaW5kZXgifSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazNJbWFnZSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShjb21wb25lbnRzX2ltYWdlLlose3NyYzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MjIxMjA0MDkwOWQ5MjdkYTQ4LndlYnAiLGFsdDp0KCJ0aXRsZTciLHtuczoiaW5kZXgifSksZmlsbDohMH0pfSldfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2szQmluSXRlbSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuc2l6ZTYwLHN0eWxlcy5mb250TWluV2lkdGgpLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShBbmltYXRlZENvdW50ZXIse3RvOjVlMyxzdGFydDppc0luVmlldyxkdXJhdGlvbjoxLjV9KSwiKyJdfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuc2l6ZTIwLGNvbW1vblN0eWxlcy5jb2xvcjEsY29tbW9uU3R5bGVzLm10MTIpLGNoaWxkcmVuOnQoInRpdGxlMzciLHtuczoiaW5kZXgifSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazNJbWFnZSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShjb21wb25lbnRzX2ltYWdlLlose3NyYzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MjIxMjA0NTA4MjU1NWYyMTIwLndlYnAiLGFsdDp0KCJ0aXRsZTM3Iix7bnM6ImluZGV4In0pLGZpbGw6ITB9KX0pXX0pXX0pXX0pfSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KHN0eWxlcy5vdmVyZmxvd0hpZGRlbixjb21tb25TdHlsZXMubXQ2MCksY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoYXV0b1Njcm9sbCx7aGVpZ2h0OjU2LHNwZWVkOjE1LHdpZHRoOndpZHRoLGNoaWxkcmVuOmltYWdlcy5tYXAoKHgsaW5kZXgpPT4oMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7c3R5bGU6e2Rpc3BsYXk6ImlubGluZS1mbGV4Iix2ZXJ0aWNhbEFsaWduOiJtaWRkbGUiLG1hcmdpblJpZ2h0OiIyMHB4In0sY2hpbGRyZW46eC5pY29ufSxpbmRleCkpfSl9KV19KX19LDY3NjgzOmZ1bmN0aW9uKG1vZHVsZSl7bW9kdWxlLmV4cG9ydHM9eyJzY3JvbGwtY29udGFpbmVyIjoiYXV0b1Njcm9sbF9zY3JvbGwtY29udGFpbmVyX19NcXBvYyIsInNjcm9sbC1jb250ZW50IjoiYXV0b1Njcm9sbF9zY3JvbGwtY29udGVudF9fMDNQYm4iLCJzY3JvbGwtaG9yaXpvbnRhbCI6ImF1dG9TY3JvbGxfc2Nyb2xsLWhvcml6b250YWxfX3I3cUZBIn19fV0pOw=="}},"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.googletagmanager.com/gtag/js?id=G-085T6Y7PBP","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:49.586Z","timestamp":1785127669586,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google-analytics.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:33 GMT","end":"Mon, 21 Sep 2026 08:37:32 GMT"},"fingerprint":{"sha1":"85:82:80:E9:F0:BC:08:B5:D8:5D:91:B4:E5:D3:DB:B1:A7:2F:E3:F3","sha256":"E3:94:E9:DA:2C:F1:36:09:33:63:D3:69:08:E7:E6:91:8D:F3:61:7F:0F:D0:5F:8E:B6:E9:D7:F3:DD:10:3C:DC"}}},"request":{"raw":"GET /gtag/js?id=G-085T6Y7PBP HTTP/1.1\r\nHost: www.googletagmanager.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ncontent-type: application/javascript; charset=UTF-8\r\naccess-control-allow-origin: *\r\naccess-control-allow-credentials: true\r\naccess-control-allow-headers: Cache-Control\r\ncontent-encoding: zstd\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 04:47:49 GMT\r\nexpires: Mon, 27 Jul 2026 04:47:49 GMT\r\ncache-control: private, max-age=900\r\nstrict-transport-security: max-age=31536000; includeSubDomains\r\ncross-origin-resource-policy: cross-origin\r\nserver: Google Tag Manager\r\ncontent-length: 187472\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":571075,"size_decoded":188076,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (6033)","md5":"e10d0f54567ab32ff7b4cc9c8d8923ed","sha1":"1776eeca42004ef0b49848997ed0d38839d8e963","sha256":"af19544ab59b645618d2532e951a40e6006bf12b46f288aff901592cdbebbde8","sha512":"d7c5b8b97c8651c03a8d0f40d6476796e52efd93a142ccb6f3717f8664be2c5061fe5166cfd31dfe442960bf9145eecb06df3bb4253ec777e77371bdb81595f2","ssdeep":"6144:RfkxU0jIWXbP69FMxmRkqn0hdBScPmfxNf3EjPUGxVGaZoXuARH3u:pki1WLP69V3KDUGxVZO5u","tlshash":"38c40aceb3d67422539af478543f01cba97b25e2b45cc89ab1c9cce02d7464a8167f78","first_seen":"2026-07-27T03:56:11.704759Z","last_seen":"2026-07-27T04:49:42.843256Z","times_seen":3,"resource_available":true,"data":"Ci8vIENvcHlyaWdodCAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKKGZ1bmN0aW9uKCl7Cgp2YXIgZGF0YSA9IHsKInJlc291cmNlIjogewogICJ2ZXJzaW9uIjoiMSIsCiAgCiAgIm1hY3JvcyI6W3siZnVuY3Rpb24iOiJfX2UifSx7ImZ1bmN0aW9uIjoiX19jIiwidnRwX3ZhbHVlIjoidW5kZWZpbmVkIn0seyJmdW5jdGlvbiI6Il9fYyIsInZ0cF92YWx1ZSI6Imdvb2dsZS5ubyJ9LHsiZnVuY3Rpb24iOiJfX2MiLCJ2dHBfdmFsdWUiOjB9XSwKICAidGFncyI6W3siZnVuY3Rpb24iOiJfX29ndF8xcF9kYXRhX3YyIiwicHJpb3JpdHkiOjE1LCJ2dHBfaXNBdXRvRW5hYmxlZCI6dHJ1ZSwidnRwX2F1dG9QaG9uZUVuYWJsZWQiOnRydWUsInZ0cF9hdXRvQ29sbGVjdEV4Y2x1c2lvblNlbGVjdG9ycyI6WyJsaXN0IixbIm1hcCIsImV4Y2x1c2lvblNlbGVjdG9yIiwiIl1dLCJ2dHBfaXNFbmFibGVkIjp0cnVlLCJ2dHBfYXV0b0FkZHJlc3NFbmFibGVkIjp0cnVlLCJ2dHBfYXV0b0VtYWlsRW5hYmxlZCI6dHJ1ZSwidnRwX2lzQXV0b0NvbGxlY3RQaWlFbmFibGVkRmxhZyI6dHJ1ZSwidGFnX2lkIjoxMH0seyJmdW5jdGlvbiI6Il9fY2NkX2dhX2ZpcnN0IiwicHJpb3JpdHkiOjE0LCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy0wODVUNlk3UEJQIiwidGFnX2lkIjoyNn0seyJmdW5jdGlvbiI6Il9fc2V0X3Byb2R1Y3Rfc2V0dGluZ3MiLCJwcmlvcml0eSI6MTMsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLTA4NVQ2WTdQQlAiLCJ2dHBfZm9yZWlnblRsZE1hY3JvUmVzdWx0IjpbIm1hY3JvIiwyXSwidnRwX2lzQ2hpbmFWaXBSZWdpb25NYWNyb1Jlc3VsdCI6WyJtYWNybyIsM10sInRhZ19pZCI6MjV9LHsiZnVuY3Rpb24iOiJfX2NjZF9nYV9yZWdzY29wZSIsInByaW9yaXR5IjoxMiwidnRwX3NldHRpbmdzVGFibGUiOlsibGlzdCIsWyJtYXAiLCJyZWRhY3RGaWVsZEdyb3VwIiwiREVWSUNFX0FORF9HRU8iLCJkaXNhbGxvd0FsbFJlZ2lvbnMiLGZhbHNlLCJkaXNhbGxvd2VkUmVnaW9ucyIsIiJdLFsibWFwIiwicmVkYWN0RmllbGRHcm91cCIsIkdPT0dMRV9TSUdOQUxTIiwiZGlzYWxsb3dBbGxSZWdpb25zIix0cnVlLCJkaXNhbGxvd2VkUmVnaW9ucyIsIiJdXSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctMDg1VDZZN1BCUCIsInRhZ19pZCI6MjR9LHsiZnVuY3Rpb24iOiJfX2NjZF9lbV9kb3dubG9hZCIsInByaW9yaXR5IjoxMSwidnRwX2luY2x1ZGVQYXJhbXMiOnRydWUsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLTA4NVQ2WTdQQlAiLCJ0YWdfaWQiOjIzfSx7ImZ1bmN0aW9uIjoiX19jY2RfZW1fZm9ybSIsInByaW9yaXR5IjoxMCwidnRwX2luY2x1ZGVQYXJhbXMiOnRydWUsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLTA4NVQ2WTdQQlAiLCJ0YWdfaWQiOjIyfSx7ImZ1bmN0aW9uIjoiX19jY2RfZW1fb3V0Ym91bmRfY2xpY2siLCJwcmlvcml0eSI6OSwidnRwX2luY2x1ZGVQYXJhbXMiOnRydWUsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLTA4NVQ2WTdQQlAiLCJ0YWdfaWQiOjIxfSx7ImZ1bmN0aW9uIjoiX19jY2RfZW1fcGFnZV92aWV3IiwicHJpb3JpdHkiOjgsInZ0cF9oaXN0b3J5RXZlbnRzIjp0cnVlLCJ2dHBfaW5jbHVkZVBhcmFtcyI6dHJ1ZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctMDg1VDZZN1BCUCIsInRhZ19pZCI6MjB9LHsiZnVuY3Rpb24iOiJfX2NjZF9lbV9zY3JvbGwiLCJwcmlvcml0eSI6NywidnRwX2luY2x1ZGVQYXJhbXMiOnRydWUsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLTA4NVQ2WTdQQlAiLCJ0YWdfaWQiOjE5fSx7ImZ1bmN0aW9uIjoiX19jY2RfZW1fc2l0ZV9zZWFyY2giLCJwcmlvcml0eSI6NiwidnRwX3NlYXJjaFF1ZXJ5UGFyYW1zIjoicSxzLHNlYXJjaCxxdWVyeSxrZXl3b3JkIiwidnRwX2luY2x1ZGVQYXJhbXMiOnRydWUsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLTA4NVQ2WTdQQlAiLCJ0YWdfaWQiOjE4fSx7ImZ1bmN0aW9uIjoiX19jY2RfZW1fdmlkZW8iLCJwcmlvcml0eSI6NSwidnRwX2luY2x1ZGVQYXJhbXMiOnRydWUsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLTA4NVQ2WTdQQlAiLCJ0YWdfaWQiOjE3fSx7ImZ1bmN0aW9uIjoiX19jY2RfY29udmVyc2lvbl9tYXJraW5nIiwicHJpb3JpdHkiOjQsInZ0cF9jb252ZXJzaW9uUnVsZXMiOlsibGlzdCIsWyJtYXAiLCJtYXRjaGluZ1J1bGVzIiwie1widHlwZVwiOjUsXCJhcmdzXCI6W3tcInN0cmluZ1ZhbHVlXCI6XCJwdXJjaGFzZVwifSx7XCJjb250ZXh0VmFsdWVcIjp7XCJuYW1lc3BhY2VUeXBlXCI6MSxcImtleVBhcnRzXCI6W1wiZXZlbnROYW1lXCJdfX1dfSJdXSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctMDg1VDZZN1BCUCIsInRhZ19pZCI6MTZ9LHsiZnVuY3Rpb24iOiJfX29ndF9ldmVudF9jcmVhdGUiLCJwcmlvcml0eSI6MywidnRwX2V2ZW50TmFtZSI6ImNvbnRhY3RfdXMiLCJ2dHBfaXNDb3B5IjpmYWxzZSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctMDg1VDZZN1BCUCIsInZ0cF9wcmVjb21waWxlZFJ1bGUiOlsibWFwIiwibmV3X2V2ZW50X25hbWUiLCJjb250YWN0X3VzIiwibWVyZ2Vfc291cmNlX2V2ZW50X3BhcmFtcyIsZmFsc2UsImV2ZW50X25hbWVfcHJlZGljYXRlIixbImxpc3QiLFsibWFwIiwidmFsdWVzIixbImxpc3QiLFsibWFwIiwidHlwZSIsImV2ZW50X25hbWUiXSxbIm1hcCIsInR5cGUiLCJjb25zdCIsImNvbnN0X3ZhbHVlIiwiY29udGFjdF91cyJdXSwidHlwZSIsImVxIl1dLCJjb25kaXRpb25zIixbImxpc3QiLFsibWFwIiwicHJlZGljYXRlcyIsWyJsaXN0IixbIm1hcCIsInZhbHVlcyIsWyJsaXN0IixbIm1hcCIsInR5cGUiLCJldmVudF9wYXJhbSIsImV2ZW50X3BhcmFtIixbIm1hcCIsInBhcmFtX25hbWUiLCJwYWdlX2xvY2F0aW9uIl1dLFsibWFwIiwidHlwZSIsImNvbnN0IiwiY29uc3RfdmFsdWUiLCJodHRwczpcL1wvYnV2ZWkuY29tXC9jb250YWN0LXVzIl1dLCJ0eXBlIiwiY25pIl1dXV1dLCJ0YWdfaWQiOjE1fSx7ImZ1bmN0aW9uIjoiX19jY2RfYXV0b19yZWRhY3QiLCJwcmlvcml0eSI6MiwidnRwX3JlZGFjdEVtYWlsIjp0cnVlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy0wODVUNlk3UEJQIiwidGFnX2lkIjoxNH0seyJmdW5jdGlvbiI6Il9fY2NkX2dhX2Fkc19saW5rIiwicHJpb3JpdHkiOjEsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLTA4NVQ2WTdQQlAiLCJ0YWdfaWQiOjEzfSx7ImZ1bmN0aW9uIjoiX19nY3QiLCJ2dHBfdHJhY2tpbmdJZCI6IkctMDg1VDZZN1BCUCIsInZ0cF9zZXNzaW9uRHVyYXRpb24iOjAsInRhZ19pZCI6MX0seyJmdW5jdGlvbiI6Il9fem9uZSIsInZ0cF9jaGlsZENvbnRhaW5lcnMiOlsibGlzdCIsWyJtYXAiLCJwdWJsaWNJZCIsIkFXLTExMjk3NTk0Nzk1Il1dLCJ2dHBfZW5hYmxlQ29uZmlndXJhdGlvbiI6ZmFsc2UsInRhZ19pZCI6M30seyJmdW5jdGlvbiI6Il9fY2NkX2dhX2xhc3QiLCJwcmlvcml0eSI6MCwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctMDg1VDZZN1BCUCIsInRhZ19pZCI6MTJ9XSwKICAicHJlZGljYXRlcyI6W3siZnVuY3Rpb24iOiJfZXEiLCJhcmcwIjpbIm1hY3JvIiwwXSwiYXJnMSI6Imd0bS5qcyJ9LHsiZnVuY3Rpb24iOiJfZXEiLCJhcmcwIjpbIm1hY3JvIiwwXSwiYXJnMSI6Imd0bS5pbml0In1dLAogICJydWxlcyI6W1tbImlmIiwwXSxbImFkZCIsMTUsMTZdXSxbWyJpZiIsMV0sWyJhZGQiLDAsMTcsMTQsMTMsMTIsMTEsMTAsOSw4LDcsNiw1LDQsMywyLDFdXV0KfSwKInJ1bnRpbWUiOlsgWzUwLCJfX2MiLFs0NiwiYSJdLFszNixbMTcsWzE1LCJhIl0sInZhbHVlIl1dXQogLFs1MCwiX19jY2RfYXV0b19yZWRhY3QiLFs0NiwiYSJdLFs1MCwidiIsWzQ2LCJhRiJdLFszNixbMixbMTUsImFGIl0sInJlcGxhY2UiLFs3LFsxNSwidSJdLCJcXCQxIl1dXV0sWzUwLCJ3IixbNDYsImFGIl0sWzUyLCJhRyIsWzMwLFsiYyIsWzE1LCJhRiJdXSxbMTUsImFGIl1dXSxbNTIsImFIIixbN11dLFs2NSwiYUkiLFsyLFsxNSwiYUciXSwic3BsaXQiLFs3LCIiXV0sWzQ2LFs1MyxbNTIsImFKIixbNyxbInYiLFsxNSwiYUkiXV1dXSxbNTIsImFLIixbImQiLFsxNSwiYUkiXV1dLFsyMixbMTIsWzE1LCJhSyJdLFs0NV1dLFs0NixbNTMsWzM2LFsiZCIsWyJ2IixbMTUsImFGIl1dXV1dXV0sWzIyLFsyMSxbMTUsImFLIl0sWzE1LCJhSSJdXSxbNDYsWzUzLFsyLFsxNSwiYUoiXSwicHVzaCIsWzcsWzE1LCJhSyJdXV0sWzIyLFsyMSxbMTUsImFJIl0sWzIsWzE1LCJhSSJdLCJ0b0xvd2VyQ2FzZSIsWzddXV0sWzQ2LFs1MyxbMixbMTUsImFKIl0sInB1c2giLFs3LFsiZCIsWzIsWzE1LCJhSSJdLCJ0b0xvd2VyQ2FzZSIsWzddXV1dXV1dLFs0NixbMjIsWzIxLFsxNSwiYUkiXSxbMixbMTUsImFJIl0sInRvVXBwZXJDYXNlIixbN11dXSxbNDYsWzUzLFsyLFsxNSwiYUoiXSwicHVzaCIsWzcsWyJkIixbMixbMTUsImFJIl0sInRvVXBwZXJDYXNlIixbN11dXV1dXV1dXV1dXV0sWzIyLFsxOCxbMTcsWzE1LCJhSiJdLCJsZW5ndGgiXSwxXSxbNDYsWzUzLFsyLFsxNSwiYUgiXSwicHVzaCIsWzcsWzAsWzAsIig/OiIsWzIsWzE1LCJhSiJdLCJqb2luIixbNywifCJdXV0sIikiXV1dXV0sWzQ2LFs1MyxbMixbMTUsImFIIl0sInB1c2giLFs3LFsxNixbMTUsImFKIl0sMF1dXV1dXV1dXSxbMzYsWzIsWzE1LCJhSCJdLCJqb2luIixbNywiIl1dXV0sWzUwLCJ4IixbNDYsImFGIiwiYUciLCJhSCJdLFs1MiwiYUkiLFsieiIsWzE1LCJhRiJdLFsxNSwiYUgiXV1dLFsyMixbMjgsWzE1LCJhSSJdXSxbNDYsWzM2LFsxNSwiYUYiXV1dXSxbMjIsWzI4LFsxNyxbMTUsImFJIl0sInNlYXJjaCJdXSxbNDYsWzM2LFsxNSwiYUYiXV1dXSxbNDEsImFKIl0sWzMsImFKIixbMTcsWzE1LCJhSSJdLCJzZWFyY2giXV0sWzY1LCJhSyIsWzE1LCJhRyJdLFs0NixbNTMsWzUyLCJhTCIsWzcsWyJ2IixbMTUsImFLIl1dLFsidyIsWzE1LCJhSyJdXV1dLFs2NSwiYU0iLFsxNSwiYUwiXSxbNDYsWzUzLFs1MiwiYU4iLFszMCxbMTYsWzE1LCJ0Il0sWzE1LCJhTSJdXSxbNDMsWzE1LCJ0Il0sWzE1LCJhTSJdLFsiYiIsWzAsWzAsIihbPyZdIixbMTUsImFNIl1dLCI9KShbXiZdKikiXSwiZ2kiXV1dXSxbMywiYUoiLFsyLFsxNSwiYUoiXSwicmVwbGFjZSIsWzcsWzE1LCJhTiJdLFswLCIkMSIsWzE1LCJyIl1dXV1dXV1dXV1dLFsyMixbMjAsWzE1LCJhSiJdLFsxNyxbMTUsImFJIl0sInNlYXJjaCJdXSxbNDYsWzM2LFsxNSwiYUYiXV1dXSxbMjIsWzIwLFsxNixbMTUsImFKIl0sMF0sIiYiXSxbNDYsWzMsImFKIixbMixbMTUsImFKIl0sInN1YnN0cmluZyIsWzcsMV1dXV1dLFsyMixbMjEsWzE2LFsxNSwiYUoiXSwwXSwiPyJdLFs0NixbMywiYUoiLFswLCI/IixbMTUsImFKIl1dXV1dLFsyMixbMjAsWzE1LCJhSiJdLCI/Il0sWzQ2LFszLCJhSiIsIiJdXV0sWzQzLFsxNSwiYUkiXSwic2VhcmNoIixbMTUsImFKIl1dLFszNixbImFBIixbMTUsImFJIl0sWzE1LCJhSCJdXV1dLFs1MCwieiIsWzQ2LCJhRiIsImFHIl0sWzIyLFsyMCxbMTUsImFHIl0sWzE3LFsxNSwicyJdLCJQQVRIIl1dLFs0NixbNTMsWzMsImFGIixbMCxbMTUsInkiXSxbMTUsImFGIl1dXV1dXSxbMzYsWyJmIixbMTUsImFGIl1dXV0sWzUwLCJhQSIsWzQ2LCJhRiIsImFHIl0sWzQxLCJhSCJdLFszLCJhSCIsIiJdLFsyMixbMjAsWzE1LCJhRyJdLFsxNyxbMTUsInMiXSwiVVJMIl1dLFs0NixbNTMsWzQxLCJhSSJdLFszLCJhSSIsIiJdLFsyMixbMzAsWzE3LFsxNSwiYUYiXSwidXNlcm5hbWUiXSxbMTcsWzE1LCJhRiJdLCJwYXNzd29yZCJdXSxbNDYsWzUzLFszLCJhSSIsWzAsWzE1LCJhSSJdLFswLFswLFswLFsxNyxbMTUsImFGIl0sInVzZXJuYW1lIl0sWzM5LFsxNyxbMTUsImFGIl0sInBhc3N3b3JkIl0sIjoiLCIiXV0sWzE3LFsxNSwiYUYiXSwicGFzc3dvcmQiXV0sIkAiXV1dXV1dLFszLCJhSCIsWzAsWzAsWzAsWzE3LFsxNSwiYUYiXSwicHJvdG9jb2wiXSwiLy8iXSxbMTUsImFJIl1dLFsxNyxbMTUsImFGIl0sImhvc3QiXV1dXV1dLFszNixbMCxbMCxbMCxbMTUsImFIIl0sWzE3LFsxNSwiYUYiXSwicGF0aG5hbWUiXV0sWzE3LFsxNSwiYUYiXSwic2VhcmNoIl1dLFsxNyxbMTUsImFGIl0sImhhc2giXV1dXSxbNTAsImFCIixbNDYsImFGIiwiYUciXSxbNDEsImFIIl0sWzMsImFIIixbMixbMTUsImFGIl0sInJlcGxhY2UiLFs3LFsxNSwibiJdLFsxNSwiciJdXV1dLFsyMixbMzAsWzIwLFsxNSwiYUciXSxbMTcsWzE1LCJzIl0sIlVSTCJdXSxbMjAsWzE1LCJhRyJdLFsxNyxbMTUsInMiXSwiUEFUSCJdXV0sWzQ2LFs1MyxbNTIsImFJIixbInoiLFsxNSwiYUgiXSxbMTUsImFHIl1dXSxbMjIsWzIwLFsxNSwiYUkiXSxbNDRdXSxbNDYsWzM2LFsxNSwiYUgiXV1dXSxbNTIsImFKIixbMTcsWzE1LCJhSSJdLCJzZWFyY2giXV0sWzUyLCJhSyIsWzIsWzE1LCJhSiJdLCJyZXBsYWNlIixbNyxbMTUsIm8iXSxbMTUsInIiXV1dXSxbMjIsWzIwLFsxNSwiYUoiXSxbMTUsImFLIl1dLFs0NixbMzYsWzE1LCJhSCJdXV1dLFs0MyxbMTUsImFJIl0sInNlYXJjaCIsWzE1LCJhSyJdXSxbMywiYUgiLFsiYUEiLFsxNSwiYUkiXSxbMTUsImFHIl1dXV1dXSxbMzYsWzE1LCJhSCJdXV0sWzUwLCJhQyIsWzQ2LCJhRiJdLFsyMixbMjAsWzE1LCJhRiJdLFsxNSwicSJdXSxbNDYsWzUzLFszNixbMTcsWzE1LCJzIl0sIlBBVEgiXV1dXSxbNDYsWzIyLFsyMSxbMixbMTUsInAiXSwiaW5kZXhPZiIsWzcsWzE1LCJhRiJdXV0sWzI3LDFdXSxbNDYsWzUzLFszNixbMTcsWzE1LCJzIl0sIlVSTCJdXV1dLFs0NixbNTMsWzM2LFsxNyxbMTUsInMiXSwiVEVYVCJdXV1dXV1dXSxbNTAsImFEIixbNDYsImFGIiwiYUciXSxbNDEsImFIIl0sWzMsImFIIixmYWxzZV0sWzUyLCJhSSIsWyJlIixbMTUsImFGIl1dXSxbMzgsWzE1LCJhSSJdLFs0Niwic3RyaW5nIiwiYXJyYXkiLCJvYmplY3QiXSxbNDYsWzUsWzQ2LFs1MiwiYUoiLFsiYUIiLFsxNSwiYUYiXSxbMTUsImFHIl1dXSxbMjIsWzIxLFsxNSwiYUYiXSxbMTUsImFKIl1dLFs0NixbNTMsWzM2LFsxNSwiYUoiXV1dXV0sWzRdXV0sWzUsWzQ2LFs1MyxbNDEsImFLIl0sWzMsImFLIiwwXSxbNjMsWzcsImFLIl0sWzIzLFsxNSwiYUsiXSxbMTcsWzE1LCJhRiJdLCJsZW5ndGgiXV0sWzMzLFsxNSwiYUsiXSxbMywiYUsiLFswLFsxNSwiYUsiXSwxXV1dLFs0NixbNTMsWzUyLCJhTCIsWyJhRCIsWzE2LFsxNSwiYUYiXSxbMTUsImFLIl1dLFsxNyxbMTUsInMiXSwiVEVYVCJdXV0sWzIyLFsyMSxbMTUsImFMIl0sWzQ0XV0sWzQ2LFs1MyxbNDMsWzE1LCJhRiJdLFsxNSwiYUsiXSxbMTUsImFMIl1dLFszLCJhSCIsdHJ1ZV1dXV1dXV1dLFs0XV1dLFs1LFs0NixbNTQsImFLIixbMTUsImFGIl0sWzQ2LFs1MyxbNTIsImFMIixbImFEIixbMTYsWzE1LCJhRiJdLFsxNSwiYUsiXV0sWzE3LFsxNSwicyJdLCJURVhUIl1dXSxbMjIsWzIxLFsxNSwiYUwiXSxbNDRdXSxbNDYsWzUzLFs0MyxbMTUsImFGIl0sWzE1LCJhSyJdLFsxNSwiYUwiXV0sWzMsImFIIix0cnVlXV1dXV1dXSxbNF1dXV1dLFszNixbMzksWzE1LCJhSCJdLFsxNSwiYUYiXSxbNDRdXV1dLFs1MCwiYUUiLFs0NiwiYUYiLCJhRyJdLFs1MiwiYUgiLFszMCxbMixbMTUsImFGIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJoIl0sIkFDIl1dXSxbN11dXSxbMjIsWzIwLFsyLFsxNSwiYUgiXSwiaW5kZXhPZiIsWzcsWzE1LCJhRyJdXV0sWzI3LDFdXSxbNDYsWzUzLFsyLFsxNSwiYUgiXSwicHVzaCIsWzcsWzE1LCJhRyJdXV1dXV0sWzIsWzE1LCJhRiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJBQyJdLFsxNSwiYUgiXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmNyZWF0ZVJlZ2V4Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiZGVjb2RlVXJpQ29tcG9uZW50Il1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiZW5jb2RlVXJpQ29tcG9uZW50Il1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiZ2V0VHlwZSJdXSxbNTIsImYiLFsicmVxdWlyZSIsInBhcnNlVXJsIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImgiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX2dvbGRFdmVudFVzYWdlSWQiXV0sWzUyLCJqIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbNTIsImsiLFsxNyxbMTUsImEiXSwicmVkYWN0RW1haWwiXV0sWzUyLCJsIixbMTcsWzE1LCJhIl0sInJlZGFjdFF1ZXJ5UGFyYW1zIl1dLFs1MiwibSIsWzM5LFsxNSwibCJdLFsyLFsxNSwibCJdLCJzcGxpdCIsWzcsIiwiXV0sWzddXV0sWzIyLFsxLFsyOCxbMTcsWzE1LCJtIl0sImxlbmd0aCJdXSxbMjgsWzE1LCJrIl1dXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbNTIsIm4iLFsiYiIsIltBLVowLTkuXyUrLV0rQFtBLVowLTkuLV0rXFwuW0EtWl17Mix9IiwiZ2kiXV0sWzUyLCJvIixbImIiLFswLCIoW0EtWjAtOS5fLV18JTI1fCUyQikrJTQwW0EtWjAtOS4tXSIsIitcXC5bQS1aXXsyLH0iXSwiZ2kiXV0sWzUyLCJwIixbNywicGFnZV9sb2NhdGlvbiIsInBhZ2VfcmVmZXJyZXIiLCJwYWdlX3BhdGgiLCJsaW5rX3VybCIsInZpZGVvX3VybCIsImZvcm1fZGVzdGluYXRpb24iXV0sWzUyLCJxIiwicGFnZV9wYXRoIl0sWzUyLCJyIiwiKHJlZGFjdGVkKSJdLFs1MiwicyIsWzgsIlRFWFQiLDAsIlVSTCIsMSwiUEFUSCIsMl1dLFs1MiwidCIsWzhdXSxbNTIsInUiLFsiYiIsIihbXFxcXF4kLnw/KisoKXt9XXxcXFt8XFxbKSIsImciXV0sWzUyLCJ5IiwiaHR0cDovLy4iXSxbImciLFsxNSwiaiJdLFs1MSwiIixbNywiYUYiXSxbMjIsWzE1LCJrIl0sWzQ2LFs1MyxbNTIsImFHIixbMixbMTUsImFGIl0sImdldEhpdEtleXMiLFs3XV1dLFs2NSwiYUgiLFsxNSwiYUciXSxbNDYsWzUzLFsyMixbMjAsWzE1LCJhSCJdLCJfc3N0X3BhcmFtZXRlcnMiXSxbNDYsWzZdXV0sWzUyLCJhSSIsWzIsWzE1LCJhRiJdLCJnZXRIaXREYXRhIixbNyxbMTUsImFIIl1dXV0sWzIyLFsyOCxbMTUsImFJIl1dLFs0NixbNl1dXSxbNTIsImFKIixbImFDIixbMTUsImFIIl1dXSxbNTIsImFLIixbImFEIixbMTUsImFJIl0sWzE1LCJhSiJdXV0sWzIyLFsyMSxbMTUsImFLIl0sWzQ0XV0sWzQ2LFs1MyxbMixbMTUsImFGIl0sInNldEhpdERhdGEiLFs3LFsxNSwiYUgiXSxbMTUsImFLIl1dXSxbImFFIixbMTUsImFGIl0sWzM5LFsyLFsxNSwiYUYiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImgiXSwiQk8iXV1dLFsxNyxbMTUsImkiXSwiVyJdLFsxNyxbMTUsImkiXSwiTyJdXV1dXV1dXV1dXV0sWzIyLFsxNyxbMTUsIm0iXSwibGVuZ3RoIl0sWzQ2LFs1MyxbNjUsImFHIixbMTUsInAiXSxbNDYsWzUzLFs1MiwiYUgiLFsyLFsxNSwiYUYiXSwiZ2V0SGl0RGF0YSIsWzcsWzE1LCJhRyJdXV1dLFsyMixbMjgsWzE1LCJhSCJdXSxbNDYsWzZdXV0sWzUyLCJhSSIsWzM5LFsyMCxbMTUsImFHIl0sWzE1LCJxIl1dLFsxNyxbMTUsInMiXSwiUEFUSCJdLFsxNyxbMTUsInMiXSwiVVJMIl1dXSxbNTIsImFKIixbIngiLFsxNSwiYUgiXSxbMTUsIm0iXSxbMTUsImFJIl1dXSxbMjIsWzIxLFsxNSwiYUoiXSxbMTUsImFIIl1dLFs0NixbNTMsWzIsWzE1LCJhRiJdLCJzZXRIaXREYXRhIixbNyxbMTUsImFHIl0sWzE1LCJhSiJdXV0sWyJhRSIsWzE1LCJhRiJdLFszOSxbMixbMTUsImFGIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJoIl0sIkJPIl1dXSxbMTcsWzE1LCJpIl0sIlgiXSxbMTcsWzE1LCJpIl0sIlAiXV1dXV1dXV1dXV1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2NvbnZlcnNpb25fbWFya2luZyIsWzQ2LCJhIl0sWzIyLFszMCxbMjgsWzE3LFsxNSwiYSJdLCJjb252ZXJzaW9uUnVsZXMiXV0sWzIwLFsxNyxbMTcsWzE1LCJhIl0sImNvbnZlcnNpb25SdWxlcyJdLCJsZW5ndGgiXSwwXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5UHJlSGl0Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZiIsImZpcnN0X3Zpc2l0Il0sWzUyLCJnIiwic2Vzc2lvbl9zdGFydCJdLFs0MSwiaCJdLFs0MSwiaSJdLFsiZCIsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXSxbNTEsIiIsWzcsImoiXSxbNTIsImsiLFs4LCJwcmVIaXQiLFsxNSwiaiJdXV0sWzIsWzE1LCJqIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIlAiXSx0cnVlXV0sWzY1LCJsIixbMTcsWzE1LCJhIl0sImNvbnZlcnNpb25SdWxlcyJdLFs0NixbNTMsWzIyLFsiYyIsWzE3LFsxNSwibCJdLCJtYXRjaGluZ1J1bGVzIl0sWzE1LCJrIl1dLFs0NixbNTMsWzIsWzE1LCJqIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkFWIl0sdHJ1ZV1dLFs0XV1dXV1dXSxbMjIsWzIsWzE1LCJqIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkFaIl1dXSxbNDYsWzUzLFsyMixbMjgsWzE1LCJoIl1dLFs0NixbNTMsWzUyLCJsIixbImIiLFsxNSwiaiJdLFs4LCJvbWl0SGl0RGF0YSIsdHJ1ZSwib21pdE1ldGFkYXRhIix0cnVlXV1dLFsyLFsxNSwibCJdLCJzZXRFdmVudE5hbWUiLFs3LFsxNSwiZiJdXV0sWzMsImgiLFs4LCJwcmVIaXQiLFsxNSwibCJdXV1dXV0sWzY1LCJsIixbMTcsWzE1LCJhIl0sImNvbnZlcnNpb25SdWxlcyJdLFs0NixbNTMsWzIyLFsiYyIsWzE3LFsxNSwibCJdLCJtYXRjaGluZ1J1bGVzIl0sWzE1LCJoIl1dLFs0NixbNTMsWzIsWzE1LCJqIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkJBIl0sdHJ1ZV1dLFs0XV1dXV1dXV1dXSxbMjIsWzIsWzE1LCJqIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkJMIl1dXSxbNDYsWzUzLFsyMixbMjgsWzE1LCJpIl1dLFs0NixbNTMsWzUyLCJsIixbImIiLFsxNSwiaiJdLFs4LCJvbWl0SGl0RGF0YSIsdHJ1ZSwib21pdE1ldGFkYXRhIix0cnVlXV1dLFsyLFsxNSwibCJdLCJzZXRFdmVudE5hbWUiLFs3LFsxNSwiZyJdXV0sWzMsImkiLFs4LCJwcmVIaXQiLFsxNSwibCJdXV1dXV0sWzY1LCJsIixbMTcsWzE1LCJhIl0sImNvbnZlcnNpb25SdWxlcyJdLFs0NixbNTMsWzIyLFsiYyIsWzE3LFsxNSwibCJdLCJtYXRjaGluZ1J1bGVzIl0sWzE1LCJpIl1dLFs0NixbNTMsWzIsWzE1LCJqIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkJNIl0sdHJ1ZV1dLFs0XV1dXV1dXV1dXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV0KICxbNTAsIl9fY2NkX2VtX2Rvd25sb2FkIixbNDYsImEiXSxbNTAsInEiLFs0NiwidiJdLFszNixbMSxbMTUsInYiXSxbMjEsWzIsWzIsWzE1LCJ2Il0sInRvTG93ZXJDYXNlIixbN11dLCJtYXRjaCIsWzcsWzE1LCJwIl1dXSxbNDVdXV1dXSxbNTAsInIiLFs0NiwidiJdLFs1MiwidyIsWzIsWzE3LFsxNSwidiJdLCJwYXRobmFtZSJdLCJzcGxpdCIsWzcsIi4iXV1dLFs1MiwieCIsWzM5LFsxOCxbMTcsWzE1LCJ3Il0sImxlbmd0aCJdLDFdLFsxNixbMTUsInciXSxbMzcsWzE3LFsxNSwidyJdLCJsZW5ndGgiXSwxXV0sIiJdXSxbMzYsWzE2LFsyLFsxNSwieCJdLCJzcGxpdCIsWzcsIi8iXV0sMF1dXSxbNTAsInMiLFs0NiwidiJdLFszNixbMzksWzEyLFsyLFsxNyxbMTUsInYiXSwicGF0aG5hbWUiXSwic3Vic3RyaW5nIixbNywwLDFdXSwiLyJdLFsxNyxbMTUsInYiXSwicGF0aG5hbWUiXSxbMCwiLyIsWzE3LFsxNSwidiJdLCJwYXRobmFtZSJdXV1dXSxbNTAsInQiLFs0NiwidiJdLFs0MSwidyJdLFszLCJ3IiwiIl0sWzIyLFsxLFsxNSwidiJdLFsxNyxbMTUsInYiXSwiaHJlZiJdXSxbNDYsWzUzLFs0MSwieCJdLFszLCJ4IixbMixbMTcsWzE1LCJ2Il0sImhyZWYiXSwiaW5kZXhPZiIsWzcsIiMiXV1dLFszLCJ3IixbMzksWzIzLFsxNSwieCJdLDBdLFsxNyxbMTUsInYiXSwiaHJlZiJdLFsyLFsxNyxbMTUsInYiXSwiaHJlZiJdLCJzdWJzdHJpbmciLFs3LDAsWzE1LCJ4Il1dXV1dXV1dLFszNixbMTUsInciXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwidGVtcGxhdGVTdG9yYWdlIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfY2NkRW1Eb3dubG9hZEFjdGl2aXR5Il1dLFs1MiwiZiIsWzE3LFsxNSwiZCJdLCJBIl1dLFs1MiwiZyIsImZpbGVfZG93bmxvYWQiXSxbNTIsImgiLCJpc1JlZ2lzdGVyZWQiXSxbNTIsImkiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFsyMixbImIiLFsxNSwiaSJdLFsxNSwiZiJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbMixbMTUsImUiXSwiQSIsWzcsWzE1LCJpIl0sWzE3LFsxNSwiYSJdLCJpbmNsdWRlUGFyYW1zIl1dXSxbMjIsWzIsWzE1LCJjIl0sImdldEl0ZW0iLFs3LFsxNSwiaCJdXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJqIixbInJlcXVpcmUiLCJpbnRlcm5hbC5hZGREYXRhTGF5ZXJFdmVudExpc3RlbmVyIl1dLFs1MiwiayIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25MaW5rQ2xpY2siXV0sWzUyLCJsIixbMTUsIl9fbW9kdWxlX2VuaGFuY2VkTWVhc3VyZW1lbnQiXV0sWzUyLCJtIixbInJlcXVpcmUiLCJwYXJzZVVybCJdXSxbNTIsIm4iLFsicmVxdWlyZSIsImludGVybmFsLnNlbmRHdGFnRXZlbnQiXV0sWzUyLCJvIixbMixbMTUsImwiXSwiQSIsWzcsImRvd25sb2FkIl1dXSxbNTIsInAiLFswLCJeKHBkZnx4bHN4P3xkb2N4P3x0eHR8cnRmfGNzdnxleGV8a2V5fHBwKHN8dHx0eCl8N3p8cGtnfHJhcnxnenx6aXB8YXZpfCIsIm1vdnxtcDR8bXBlP2d8d212fG1pZGk/fG1wM3x3YXZ8d21hKSQiXV0sWzUyLCJ1IixbImsiLFs4LCJjaGVja1ZhbGlkYXRpb24iLHRydWVdXV0sWzIyLFsyOCxbMTUsInUiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25GYWlsdXJlIixbN11dLFszNl1dXV0sWzIsWzE1LCJjIl0sInNldEl0ZW0iLFs3LFsxNSwiaCJdLHRydWVdXSxbImoiLCJndG0ubGlua0NsaWNrIixbNTEsIiIsWzcsInYiLCJ3Il0sWyJ3Il0sWzUyLCJ4IixbOCwiZXZlbnRJZCIsWzE2LFsxNSwidiJdLCJndG0udW5pcXVlRXZlbnRJZCJdLCJkZWZlcnJhYmxlIix0cnVlXV0sWzUyLCJ5IixbMTYsWzE1LCJ2Il0sImd0bS5lbGVtZW50VXJsIl1dLFs1MiwieiIsWyJtIixbMTUsInkiXV1dLFsyMixbMjgsWzE1LCJ6Il1dLFs0NixbMzZdXV0sWzUyLCJhQSIsWyJyIixbMTUsInoiXV1dLFsyMixbMjgsWyJxIixbMTUsImFBIl1dXSxbNDYsWzUzLFszNl1dXV0sWzUyLCJhQiIsWzgsImxpbmtfaWQiLFsxNixbMTUsInYiXSwiZ3RtLmVsZW1lbnRJZCJdLCJsaW5rX3VybCIsWyJ0IixbMTUsInoiXV0sImxpbmtfdGV4dCIsWzE2LFsxNSwidiJdLCJndG0uZWxlbWVudFRleHQiXSwiZmlsZV9uYW1lIixbInMiLFsxNSwieiJdXSwiZmlsZV9leHRlbnNpb24iLFsxNSwiYUEiXV1dLFsyLFsxNSwibCJdLCJCIixbNyxbMTUsIngiXV1dLFsibiIsWzE1LCJvIl0sWzE1LCJnIl0sWzE1LCJhQiJdLFsxNSwieCJdXV0sWzE1LCJ1Il1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9lbV9mb3JtIixbNDYsImEiXSxbNTAsIngiLFs0NiwiYUwiXSxbNTIsImFNIixbMzAsWzE2LFsxNSwiYUwiXSxbMTUsInIiXV0sWzhdXV0sWzQzLFsxNSwiYU0iXSwiZXZlbnRfdXNhZ2UiLFs3LFsxNyxbMTUsImciXSwiSCJdXV0sWzQzLFsxNSwiYUwiXSxbMTUsInIiXSxbMTUsImFNIl1dXSxbNTAsInkiLFs0NiwiYUwiLCJhTSJdLFs1MiwiYU4iLFszMCxbMTYsWzE1LCJhTCJdLFsxNSwiciJdXSxbOF1dXSxbMjIsWzE2LFsxNSwiYU0iXSwiZ3RtLmZvcm1DYW5jZWxlZCJdLFs0NixbNTMsWzQzLFsxNSwiYU4iXSxbMTcsWzE1LCJpIl0sIkFKIl0sdHJ1ZV1dXV0sWzIsWzE1LCJ1Il0sIkIiLFs3LFsxNSwiYUwiXSxbMTUsImFOIl1dXV0sWzUwLCJ6IixbNDYsImFMIiwiYU0iLCJhTiJdLFs1MiwiYU8iLFsyLFsxNSwidyJdLCJmaWx0ZXIiLFs3LFs1MSwiIixbNywiYVEiXSxbMzYsWzIwLFsyLFsxNSwiYVEiXSwiaW5kZXhPZiIsWzcsIkFXLSJdXSwwXV1dXV1dLFsyMixbMTgsWzE3LFsxNSwiYU8iXSwibGVuZ3RoIl0sMF0sWzQ2LFs1MyxbInYiLFsxNSwiYU8iXSxbMTUsImFMIl0sWzE1LCJhTSJdLFsxNSwiYU4iXV1dXV0sWzUyLCJhUCIsWzIsWzE1LCJ3Il0sImZpbHRlciIsWzcsWzUxLCIiLFs3LCJhUSJdLFszNixbMjEsWzIsWzE1LCJhUSJdLCJpbmRleE9mIixbNywiQVctIl1dLDBdXV1dXV0sWzIyLFsxOCxbMTcsWzE1LCJhUCJdLCJsZW5ndGgiXSwwXSxbNDYsWzUzLFs0MyxbMTUsImFOIl0sImRlZmVycmFibGUiLHRydWVdLFsidiIsWzE1LCJhUCJdLFsxNSwiYUwiXSxbMTUsImFNIl0sWzE1LCJhTiJdXV1dXV0sWzUwLCJhSyIsWzQ2XSxbNTIsImFMIixbIm0iLFsibCIsMCwyLjE0NzQ4MzY0N0U5XV1dLFs0MSwiYU0iXSxbMywiYU0iLDBdLFszNixbNTEsIiIsWzcsImFOIl0sWzIyLFsyMCxbMTUsImFOIl0sWzE1LCJzIl1dLFs0NixbNTMsWzMsImFNIixbImsiXV0sWzM2LFswLFsibSIsWzE1LCJhTSJdXSxbMTUsImFMIl1dXV1dLFs0NixbMjIsWzIwLFsxNSwiYU4iXSxbMTUsIm8iXV0sWzQ2LFs1MyxbMjIsWzIwLFsxNSwiYU0iXSwwXSxbNDYsWzUzLFszNixbMCxbIm0iLFsiayJdXSxbMTUsImFMIl1dXV1dXSxbNTIsImFPIixbImsiXV0sWzIyLFsyMyxbMzcsWzE1LCJhTyJdLFsxNSwiYU0iXV0sMjAwXSxbNDYsWzUzLFs1MiwiYVAiLFsxNSwiYU0iXV0sWzMsImFNIiwwXSxbMzYsWzAsWyJtIixbMTUsImFQIl1dLFsxNSwiYUwiXV1dXV1dLFszLCJhTSIsMF0sWzM2LFswLFsibSIsWzE1LCJhTyJdXSxbMTUsImFMIl1dXV1dXV1dXV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfY2NkRW1Gb3JtQWN0aXZpdHkiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwidGVtcGxhdGVTdG9yYWdlIl1dLFs1MiwiZyIsWzE1LCJfX21vZHVsZV9nb2xkRXZlbnRVc2FnZUlkIl1dLFs1MiwiaCIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJqIixbMTUsIl9fbW9kdWxlX2Fkd29yZHNIaXRUeXBlIl1dLFs1MiwiayIsWyJyZXF1aXJlIiwiZ2V0VGltZXN0YW1wTWlsbGlzIl1dLFs1MiwibCIsWyJyZXF1aXJlIiwiZ2VuZXJhdGVSYW5kb20iXV0sWzUyLCJtIixbInJlcXVpcmUiLCJtYWtlU3RyaW5nIl1dLFs1MiwibiIsWzE3LFsxNSwiaCJdLCJCIl1dLFs1MiwibyIsImZvcm1fc3VibWl0Il0sWzUyLCJwIiwiZm9ybV9zdGFydCJdLFs1MiwicSIsImlzUmVnaXN0ZXJlZCJdLFs1MiwiciIsImV2ZW50TWV0YWRhdGEiXSxbNTIsInMiLCJjbGljayJdLFs1MiwidCIsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXV0sWzIyLFsiZCIsWzE1LCJ0Il0sWzE1LCJuIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFsyLFsxNSwiYyJdLCJBIixbNyxbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFsxNyxbMTUsImEiXSwic2tpcFZhbGlkYXRpb24iXSxbMTcsWzE1LCJhIl0sImluY2x1ZGVQYXJhbXMiXV1dLFsyMixbMixbMTUsImYiXSwiZ2V0SXRlbSIsWzcsWzE1LCJxIl1dXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbMixbMTUsImYiXSwic2V0SXRlbSIsWzcsWzE1LCJxIl0sdHJ1ZV1dLFs1MiwidSIsWzE1LCJfX21vZHVsZV9lbmhhbmNlZE1lYXN1cmVtZW50Il1dLFs1MiwidiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2VuZEd0YWdFdmVudCJdXSxbNTIsInciLFsyLFsxNSwidSJdLCJBIixbNywiZm9ybSJdXV0sWzUyLCJhQSIsWzhdXSxbNTIsImFCIixbNTEsIiIsWzcsImFMIiwiYU0iXSxbMjIsWzE1LCJhTSJdLFs0NixbImFNIl1dXSxbNTIsImFOIixbMTYsWzE1LCJhTCJdLCJndG0uZWxlbWVudElkIl1dLFsyMixbMTYsWzE1LCJhQSJdLFsxNSwiYU4iXV0sWzQ2LFszNl1dXSxbNDMsWzE1LCJhQSJdLFsxNSwiYU4iXSx0cnVlXSxbNTIsImFPIixbOCwiZm9ybV9pZCIsWzE1LCJhTiJdLCJmb3JtX25hbWUiLFsxNixbMTUsImFMIl0sImd0bS5pbnRlcmFjdGVkRm9ybU5hbWUiXSwiZm9ybV9kZXN0aW5hdGlvbiIsWzE2LFsxNSwiYUwiXSwiZ3RtLmVsZW1lbnRVcmwiXSwiZm9ybV9sZW5ndGgiLFsxNixbMTUsImFMIl0sImd0bS5pbnRlcmFjdGVkRm9ybUxlbmd0aCJdLCJmaXJzdF9maWVsZF9pZCIsWzE2LFsxNSwiYUwiXSwiZ3RtLmludGVyYWN0ZWRGb3JtRmllbGRJZCJdLCJmaXJzdF9maWVsZF9uYW1lIixbMTYsWzE1LCJhTCJdLCJndG0uaW50ZXJhY3RlZEZvcm1GaWVsZE5hbWUiXSwiZmlyc3RfZmllbGRfdHlwZSIsWzE2LFsxNSwiYUwiXSwiZ3RtLmludGVyYWN0ZWRGb3JtRmllbGRUeXBlIl0sImZpcnN0X2ZpZWxkX3Bvc2l0aW9uIixbMTYsWzE1LCJhTCJdLCJndG0uaW50ZXJhY3RlZEZvcm1GaWVsZFBvc2l0aW9uIl1dXSxbNTIsImFQIixbOCwiZXZlbnRJZCIsWzE2LFsxNSwiYUwiXSwiZ3RtLnVuaXF1ZUV2ZW50SWQiXV1dLFsieCIsWzE1LCJhUCJdXSxbInkiLFsxNSwiYVAiXSxbMTUsImFMIl1dLFs0MyxbMTYsWzE1LCJhUCJdLFsxNSwiciJdXSxbMTcsWzE1LCJpIl0sIkFBIl0sImZvcm1fc3RhcnQiXSxbInoiLFsxNSwicCJdLFsxNSwiYU8iXSxbMTUsImFQIl1dXV0sWzUyLCJhQyIsWyJhSyJdXSxbNTIsImFEIixbNTEsIiIsWzcsImFMIiwiYU0iXSxbNTIsImFOIixbImFDIixbMTUsIm8iXV1dLFsiYUIiLFsxNSwiYUwiXSxbNDRdXSxbNTIsImFPIixbOCwiZm9ybV9pZCIsWzE2LFsxNSwiYUwiXSwiZ3RtLmVsZW1lbnRJZCJdLCJmb3JtX25hbWUiLFsxNixbMTUsImFMIl0sImd0bS5pbnRlcmFjdGVkRm9ybU5hbWUiXSwiZm9ybV9kZXN0aW5hdGlvbiIsWzE2LFsxNSwiYUwiXSwiZ3RtLmVsZW1lbnRVcmwiXSwiZm9ybV9sZW5ndGgiLFsxNixbMTUsImFMIl0sImd0bS5pbnRlcmFjdGVkRm9ybUxlbmd0aCJdLCJmb3JtX3N1Ym1pdF90ZXh0IixbMTYsWzE1LCJhTCJdLCJndG0uZm9ybVN1Ym1pdEVsZW1lbnRUZXh0Il1dXSxbNDMsWzE1LCJhTyJdLCJldmVudF9jYWxsYmFjayIsWzE1LCJhTSJdXSxbNTIsImFQIixbOCwiZXZlbnRJZCIsWzE2LFsxNSwiYUwiXSwiZ3RtLnVuaXF1ZUV2ZW50SWQiXV1dLFsieCIsWzE1LCJhUCJdXSxbInkiLFsxNSwiYVAiXSxbMTUsImFMIl1dLFs0MyxbMTYsWzE1LCJhUCJdLFsxNSwiciJdXSxbMTcsWzE1LCJpIl0sIkFBIl0sImZvcm1fc3VibWl0Il0sWzQzLFsxNixbMTUsImFQIl0sWzE1LCJyIl1dLFsxNyxbMTUsImkiXSwiUyJdLFsxNSwiYU4iXV0sWyJ6IixbMTUsIm8iXSxbMTUsImFPIl0sWzE1LCJhUCJdXV1dLFs1MiwiYUUiLFsicmVxdWlyZSIsImludGVybmFsLmFkZERhdGFMYXllckV2ZW50TGlzdGVuZXIiXV0sWzUyLCJhRiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25Gb3JtU3VibWl0Il1dLFs1MiwiYUciLFsicmVxdWlyZSIsImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uRm9ybUludGVyYWN0aW9uIl1dLFs1MiwiYUgiLFsicmVxdWlyZSIsImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uQ2xpY2siXV0sWzUyLCJhSSIsWyJhRyJdXSxbMjIsWzI4LFsxNSwiYUkiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25GYWlsdXJlIixbN11dLFszNl1dXV0sWyJhRSIsImd0bS5mb3JtSW50ZXJhY3QiLFsxNSwiYUIiXSxbMTUsImFJIl1dLFs1MiwiYUoiLFsiYUYiLFs4LCJjaGVja1ZhbGlkYXRpb24iLGZhbHNlLCJ3YWl0Rm9yVGFncyIsZmFsc2VdXV0sWzIyLFsyOCxbMTUsImFKIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uRmFpbHVyZSIsWzddXSxbMzZdXV1dLFsiYUUiLCJndG0uZm9ybVN1Ym1pdCIsWzE1LCJhRCJdLFsxNSwiYUoiXV0sWzIyLFsiZSIsWzE3LFsxNSwiYiJdLCJDUCJdXSxbNDYsWzUzLFs1MiwiYUwiLFsiYUgiLFs4LCJ1c2VWMkV2ZW50TmFtZSIsdHJ1ZSwiY3NzU2VsZWN0b3IiLFswLFswLFswLFswLFswLFswLFswLCJmb3JtIGJ1dHRvblt0eXBlPVwic3VibWl0XCJdLCAiLCJmb3JtIGJ1dHRvbjpub3QoW3R5cGVdKSwiXSwiZm9ybSBpbnB1dFt0eXBlPVwic3VibWl0XCJdLCAiXSwiZm9ybSBpbnB1dFt0eXBlPVwiaW1hZ2VcIl0sICJdLCJidXR0b25bZm9ybV1bdHlwZT1cInN1Ym1pdFwiXSwgIl0sImJ1dHRvbltmb3JtXTpub3QoW3R5cGVdKSwgIl0sImlucHV0W3R5cGU9XCJzdWJtaXRcIl1bZm9ybV0sICJdLCJpbnB1dFt0eXBlPVwiaW1hZ2VcIl1bZm9ybV0iXV1dXSxbNTAsImFNIixbNDYsImFOIiwiYU8iXSxbNTIsImFQIixbOCwiZXZlbnRfY2FsbGJhY2siLFsxNSwiYU8iXV1dLFs1MiwiYVEiLFs4LCJldmVudElkIixbMTYsWzE1LCJhTiJdLCJndG0udW5pcXVlRXZlbnRJZCJdXV0sWyJ4IixbMTUsImFRIl1dLFsieSIsWzE1LCJhUSJdLFsxNSwiYU4iXV0sWzQzLFsxNixbMTUsImFRIl0sWzE1LCJyIl1dLFsxNyxbMTUsImkiXSwiQVIiXSxbMTcsWzE1LCJqIl0sIksiXV0sWzQzLFsxNixbMTUsImFRIl0sWzE1LCJyIl1dLFsxNyxbMTUsImkiXSwiQUEiXSwiY2xpY2siXSxbNDMsWzE2LFsxNSwiYVEiXSxbMTUsInIiXV0sWzE3LFsxNSwiaSJdLCJTIl0sWyJhQyIsWzE1LCJzIl1dXSxbInoiLFsxNSwibyJdLFsxNSwiYVAiXSxbMTUsImFRIl1dXSxbImFFIiwiZ3RtLmNsaWNrLXYyIixbMTUsImFNIl0sWzE1LCJhTCJdXV1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZW1fb3V0Ym91bmRfY2xpY2siLFs0NiwiYSJdLFs1MCwiciIsWzQ2LCJ3Il0sWzIyLFsyOCxbMTUsInciXV0sWzQ2LFszNixbNDRdXV1dLFs0MSwieCJdLFszLCJ4IiwiIl0sWzIyLFsxLFsxNSwidyJdLFsxNyxbMTUsInciXSwiaHJlZiJdXSxbNDYsWzUzLFs0MSwieSJdLFszLCJ5IixbMixbMTcsWzE1LCJ3Il0sImhyZWYiXSwiaW5kZXhPZiIsWzcsIiMiXV1dLFszLCJ4IixbMzksWzIzLFsxNSwieSJdLDBdLFsxNyxbMTUsInciXSwiaHJlZiJdLFsyLFsxNyxbMTUsInciXSwiaHJlZiJdLCJzdWJzdHJpbmciLFs3LDAsWzE1LCJ5Il1dXV1dXV1dLFszNixbMTUsIngiXV1dLFs1MCwicyIsWzQ2LCJ3Il0sWzIyLFsyOCxbMTUsInciXV0sWzQ2LFszNixbNDRdXV1dLFs0MSwieCJdLFszLCJ4IixbMTcsWzE1LCJ3Il0sImhvc3RuYW1lIl1dLFs1MiwieSIsWzIsWzE1LCJ4Il0sIm1hdGNoIixbNywiXnd3d1xcZCpcXC4iXV1dLFsyMixbMSxbMTUsInkiXSxbMTYsWzE1LCJ5Il0sMF1dLFs0NixbMywieCIsWzIsWzE1LCJ4Il0sInN1YnN0cmluZyIsWzcsWzE3LFsxNixbMTUsInkiXSwwXSwibGVuZ3RoIl1dXV1dXSxbMzYsWzE1LCJ4Il1dXSxbNTAsInQiLFs0NiwidyJdLFsyMixbMjgsWzE1LCJ3Il1dLFs0NixbMzYsZmFsc2VdXV0sWzUyLCJ4IixbMixbMTcsWzE1LCJ3Il0sImhvc3RuYW1lIl0sInRvTG93ZXJDYXNlIixbN11dXSxbMjIsWzI4LFsxNSwieCJdXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzQxLCJ5Il0sWzMsInkiLFsyLFsicyIsWyJvIixbIm4iXV1dLCJ0b0xvd2VyQ2FzZSIsWzddXV0sWzQxLCJ6Il0sWzMsInoiLFszNyxbMTcsWzE1LCJ4Il0sImxlbmd0aCJdLFsxNyxbMTUsInkiXSwibGVuZ3RoIl1dXSxbMjIsWzEsWzE4LFsxNSwieiJdLDBdLFsyOSxbMixbMTUsInkiXSwiY2hhckF0IixbNywwXV0sIi4iXV0sWzQ2LFs1MyxbMzIsWzE1LCJ6Il0sWzMsInoiLFszNyxbMTUsInoiXSwxXV1dLFszLCJ5IixbMCwiLiIsWzE1LCJ5Il1dXV1dXSxbMjIsWzEsWzE5LFsxNSwieiJdLDBdLFsxMixbMixbMTUsIngiXSwiaW5kZXhPZiIsWzcsWzE1LCJ5Il0sWzE1LCJ6Il1dXSxbMTUsInoiXV1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbMzYsdHJ1ZV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwidGVtcGxhdGVTdG9yYWdlIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfY2NkRW1PdXRib3VuZENsaWNrQWN0aXZpdHkiXV0sWzUyLCJmIixbMTcsWzE1LCJkIl0sIkQiXV0sWzUyLCJnIiwiY2xpY2siXSxbNTIsImgiLCJpc1JlZ2lzdGVyZWQiXSxbNTIsImkiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFsyMixbImIiLFsxNSwiaSJdLFsxNSwiZiJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbMixbMTUsImUiXSwiQSIsWzcsWzE1LCJpIl0sWzE3LFsxNSwiYSJdLCJpbmNsdWRlUGFyYW1zIl1dXSxbMjIsWzIsWzE1LCJjIl0sImdldEl0ZW0iLFs3LFsxNSwiaCJdXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJqIixbInJlcXVpcmUiLCJpbnRlcm5hbC5hZGREYXRhTGF5ZXJFdmVudExpc3RlbmVyIl1dLFs1MiwiayIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25MaW5rQ2xpY2siXV0sWzUyLCJsIixbMTUsIl9fbW9kdWxlX2VuaGFuY2VkTWVhc3VyZW1lbnQiXV0sWzUyLCJtIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiXV0sWzUyLCJuIixbInJlcXVpcmUiLCJnZXRVcmwiXV0sWzUyLCJvIixbInJlcXVpcmUiLCJwYXJzZVVybCJdXSxbNTIsInAiLFsicmVxdWlyZSIsImludGVybmFsLnNlbmRHdGFnRXZlbnQiXV0sWzUyLCJxIixbMixbMTUsImwiXSwiQSIsWzcsIm91dGJvdW5kX2NsaWNrIl1dXSxbNTIsInUiLFsibSIsWzE1LCJpIl0sImNyb3NzX2RvbWFpbl9jb25kaXRpb25zIl1dLFs1MiwidiIsWyJrIixbOCwiYWZmaWxpYXRlRG9tYWlucyIsWzE1LCJ1Il0sImNoZWNrVmFsaWRhdGlvbiIsdHJ1ZSwid2FpdEZvclRhZ3MiLGZhbHNlXV1dLFsyMixbMjgsWzE1LCJ2Il1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uRmFpbHVyZSIsWzddXSxbMzZdXV1dLFsyLFsxNSwiYyJdLCJzZXRJdGVtIixbNyxbMTUsImgiXSx0cnVlXV0sWyJqIiwiZ3RtLmxpbmtDbGljayIsWzUxLCIiLFs3LCJ3IiwieCJdLFs1MiwieSIsWyJvIixbMTYsWzE1LCJ3Il0sImd0bS5lbGVtZW50VXJsIl1dXSxbMjIsWzI4LFsidCIsWzE1LCJ5Il1dXSxbNDYsWzUzLFsieCJdLFszNl1dXV0sWzUyLCJ6IixbOCwibGlua19pZCIsWzE2LFsxNSwidyJdLCJndG0uZWxlbWVudElkIl0sImxpbmtfY2xhc3NlcyIsWzE2LFsxNSwidyJdLCJndG0uZWxlbWVudENsYXNzZXMiXSwibGlua191cmwiLFsiciIsWzE1LCJ5Il1dLCJsaW5rX2RvbWFpbiIsWyJzIixbMTUsInkiXV0sIm91dGJvdW5kIix0cnVlXV0sWzQzLFsxNSwieiJdLCJldmVudF9jYWxsYmFjayIsWzE1LCJ4Il1dLFs1MiwiYUEiLFs4LCJldmVudElkIixbMTYsWzE1LCJ3Il0sImd0bS51bmlxdWVFdmVudElkIl0sImRlZmVycmFibGUiLHRydWVdXSxbMixbMTUsImwiXSwiQiIsWzcsWzE1LCJhQSJdXV0sWyJwIixbMTUsInEiXSxbMTUsImciXSxbMTUsInoiXSxbMTUsImFBIl1dXSxbMTUsInYiXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2VtX3BhZ2VfdmlldyIsWzQ2LCJhIl0sWzIyLFsyOCxbMTcsWzE1LCJhIl0sImhpc3RvcnlFdmVudHMiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJ0ZW1wbGF0ZVN0b3JhZ2UiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2NjZEVtUGFnZVZpZXdBY3Rpdml0eSJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJnIixbMTcsWzE1LCJmIl0sIkMiXV0sWzUyLCJoIiwicGFnZV92aWV3Il0sWzUyLCJpIiwiaXNSZWdpc3RlcmVkIl0sWzUyLCJqIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbMjIsWyJiIixbMTUsImoiXSxbMTUsImciXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzIsWzE1LCJlIl0sIkEiLFs3LFsxNSwiaiJdXV0sWzIyLFsyLFsxNSwiZCJdLCJnZXRJdGVtIixbNyxbMTUsImkiXV1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwiayIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuYWRkRGF0YUxheWVyRXZlbnRMaXN0ZW5lciJdXSxbNTIsImwiLFsicmVxdWlyZSIsImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uSGlzdG9yeUNoYW5nZSJdXSxbNTIsIm0iLFsxNSwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCJdXSxbNTIsIm4iLFsicmVxdWlyZSIsImludGVybmFsLnNlbmRHdGFnRXZlbnQiXV0sWzUyLCJvIixbMixbMTUsIm0iXSwiQSIsWzcsInBhZ2VfdmlldyJdXV0sWzUyLCJwIixbOCwiaW50ZXJ2YWwiLDEwMDAsInVzZVYyRXZlbnROYW1lIix0cnVlXV0sWzUyLCJxIixbImwiLFsxNSwicCJdXV0sWzIyLFsyOCxbMTUsInEiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25GYWlsdXJlIixbN11dLFszNl1dXV0sWzIsWzE1LCJkIl0sInNldEl0ZW0iLFs3LFsxNSwiaSJdLHRydWVdXSxbImsiLCJndG0uaGlzdG9yeUNoYW5nZS12MiIsWzUxLCIiLFs3LCJyIiwicyJdLFsicyJdLFs1MiwidCIsWzE2LFsxNSwiciJdLCJndG0ub2xkVXJsIl1dLFsyMixbMjAsWzE2LFsxNSwiciJdLCJndG0ubmV3VXJsIl0sWzE1LCJ0Il1dLFs0NixbMzZdXV0sWzUyLCJ1IixbMTYsWzE1LCJyIl0sImd0bS5oaXN0b3J5Q2hhbmdlU291cmNlIl1dLFsyMixbMSxbMSxbMjEsWzE1LCJ1Il0sInB1c2hTdGF0ZSJdLFsyMSxbMTUsInUiXSwicG9wc3RhdGUiXV0sWzIxLFsxNSwidSJdLCJyZXBsYWNlU3RhdGUiXV0sWzQ2LFs1MyxbMzZdXV1dLFs1MiwidiIsWzhdXSxbMjIsWzE3LFsxNSwiYSJdLCJpbmNsdWRlUGFyYW1zIl0sWzQ2LFs1MyxbNDMsWzE1LCJ2Il0sInBhZ2VfbG9jYXRpb24iLFsxNixbMTUsInIiXSwiZ3RtLm5ld1VybCJdXSxbNDMsWzE1LCJ2Il0sInBhZ2VfcmVmZXJyZXIiLFsxNSwidCJdXV1dXSxbNTIsInciLFs4LCJldmVudElkIixbMTYsWzE1LCJyIl0sImd0bS51bmlxdWVFdmVudElkIl1dXSxbMjIsWzIxLFsxNyxbMTUsImEiXSwiZGVmZXJQYWdlVmlldyJdLGZhbHNlXSxbNDYsWzUzLFs0MyxbMTUsInciXSwiZGVmZXJyYWJsZSIsdHJ1ZV1dXV0sWzIsWzE1LCJtIl0sIkIiLFs3LFsxNSwidyJdXV0sWyJuIixbMTUsIm8iXSxbMTUsImgiXSxbMTUsInYiXSxbMTUsInciXV1dLFsxNSwicSJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZW1fc2Nyb2xsIixbNDYsImEiXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsInRlbXBsYXRlU3RvcmFnZSJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2NjZEVtU2Nyb2xsQWN0aXZpdHkiXV0sWzUyLCJmIixbMTcsWzE1LCJkIl0sIkUiXV0sWzUyLCJnIiwic2Nyb2xsIl0sWzUyLCJoIiwiaXNSZWdpc3RlcmVkIl0sWzUyLCJpIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbMjIsWyJiIixbMTUsImkiXSxbMTUsImYiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzIsWzE1LCJlIl0sIkEiLFs3LFsxNSwiaSJdLFsxNyxbMTUsImEiXSwiaW5jbHVkZVBhcmFtcyJdXV0sWzIyLFsyLFsxNSwiYyJdLCJnZXRJdGVtIixbNyxbMTUsImgiXV1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwiaiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuYWRkRGF0YUxheWVyRXZlbnRMaXN0ZW5lciJdXSxbNTIsImsiLFsicmVxdWlyZSIsImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uU2Nyb2xsIl1dLFs1MiwibCIsWzE1LCJfX21vZHVsZV9lbmhhbmNlZE1lYXN1cmVtZW50Il1dLFs1MiwibSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2VuZEd0YWdFdmVudCJdXSxbNTIsIm4iLFsyLFsxNSwibCJdLCJBIixbNywic2Nyb2xsIl1dXSxbNTIsIm8iLFsiayIsWzgsInZlcnRpY2FsVGhyZXNob2xkVW5pdHMiLCJQRVJDRU5UIiwidmVydGljYWxUaHJlc2hvbGRzIiw5MF1dXSxbMjIsWzI4LFsxNSwibyJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV0sWzM2XV1dXSxbMixbMTUsImMiXSwic2V0SXRlbSIsWzcsWzE1LCJoIl0sdHJ1ZV1dLFsiaiIsImd0bS5zY3JvbGxEZXB0aCIsWzUxLCIiLFs3LCJwIiwicSJdLFsicSJdLFs1MiwiciIsWzgsImV2ZW50SWQiLFsxNixbMTUsInAiXSwiZ3RtLnVuaXF1ZUV2ZW50SWQiXSwiZGVmZXJyYWJsZSIsdHJ1ZV1dLFs1MiwicyIsWzgsInBlcmNlbnRfc2Nyb2xsZWQiLFsxNixbMTUsInAiXSwiZ3RtLnNjcm9sbFRocmVzaG9sZCJdXV0sWzIsWzE1LCJsIl0sIkIiLFs3LFsxNSwiciJdXV0sWyJtIixbMTUsIm4iXSxbMTUsImciXSxbMTUsInMiXSxbMTUsInIiXV1dLFsxNSwibyJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZW1fc2l0ZV9zZWFyY2giLFs0NiwiYSJdLFs1MiwiYiIsWyJyZXF1aXJlIiwiZ2V0UXVlcnlQYXJhbWV0ZXJzIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2VuZEd0YWdFdmVudCJdXSxbNTIsImQiLFsicmVxdWlyZSIsImdldENvbnRhaW5lclZlcnNpb24iXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJoIixbMTUsIl9fbW9kdWxlX2NjZEVtU2l0ZVNlYXJjaEFjdGl2aXR5Il1dLFs1MiwiaSIsWzIsWzE1LCJoIl0sIkEiLFs3LFsxNyxbMTUsImEiXSwic2VhcmNoUXVlcnlQYXJhbXMiXSxbMTUsImIiXV1dXSxbNTIsImoiLFszMCxbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFsxNyxbImQiXSwiY29udGFpbmVySWQiXV1dLFs1MiwiayIsWzgsImRlZmVycmFibGUiLHRydWUsImV2ZW50SWQiLFsxNyxbMTUsImEiXSwiZ3RtRXZlbnRJZCJdLCJldmVudE1ldGFkYXRhIixbOCwiZW1fZXZlbnQiLHRydWVdXV0sWzIyLFsxNSwiaSJdLFs0NixbNTMsWzUyLCJsIixbMzksWzI4LFsyOCxbMTcsWzE1LCJhIl0sImluY2x1ZGVQYXJhbXMiXV1dLFsyLFsxNSwiaCJdLCJCIixbNyxbMTUsImkiXSxbMTcsWzE1LCJhIl0sImFkZGl0aW9uYWxRdWVyeVBhcmFtcyJdLFsxNSwiYiJdXV0sWzhdXV0sWzQzLFsxNyxbMTUsImsiXSwiZXZlbnRNZXRhZGF0YSJdLFsxNyxbMTUsImciXSwiWiJdLCJhIl0sWyJjIixbMTUsImoiXSwidmlld19zZWFyY2hfcmVzdWx0cyIsWzE1LCJsIl0sWzE1LCJrIl1dXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9lbV92aWRlbyIsWzQ2LCJhIl0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJ0ZW1wbGF0ZVN0b3JhZ2UiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9jY2RFbVZpZGVvQWN0aXZpdHkiXV0sWzUyLCJmIixbMTcsWzE1LCJkIl0sIkYiXV0sWzUyLCJnIiwidmlkZW9fc3RhcnQiXSxbNTIsImgiLCJ2aWRlb19wcm9ncmVzcyJdLFs1MiwiaSIsInZpZGVvX2NvbXBsZXRlIl0sWzUyLCJqIiwiaXNSZWdpc3RlcmVkIl0sWzUyLCJrIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbMjIsWyJiIixbMTUsImsiXSxbMTUsImYiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzIsWzE1LCJlIl0sIkEiLFs3LFsxNSwiayJdLFsxNyxbMTUsImEiXSwiaW5jbHVkZVBhcmFtcyJdXV0sWzIyLFsyLFsxNSwiYyJdLCJnZXRJdGVtIixbNyxbMTUsImoiXV1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwibCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuYWRkRGF0YUxheWVyRXZlbnRMaXN0ZW5lciJdXSxbNTIsIm0iLFsicmVxdWlyZSIsImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uWW91VHViZUFjdGl2aXR5Il1dLFs1MiwibiIsWzE1LCJfX21vZHVsZV9lbmhhbmNlZE1lYXN1cmVtZW50Il1dLFs1MiwibyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2VuZEd0YWdFdmVudCJdXSxbNTIsInAiLFsyLFsxNSwibiJdLCJBIixbNywidmlkZW8iXV1dLFs1MiwicSIsWyJtIixbOCwiY2FwdHVyZUNvbXBsZXRlIix0cnVlLCJjYXB0dXJlU3RhcnQiLHRydWUsInByb2dyZXNzVGhyZXNob2xkc1BlcmNlbnQiLFs3LDEwLDI1LDUwLDc1XV1dXSxbMjIsWzI4LFsxNSwicSJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV0sWzM2XV1dXSxbMixbMTUsImMiXSwic2V0SXRlbSIsWzcsWzE1LCJqIl0sdHJ1ZV1dLFsibCIsImd0bS52aWRlbyIsWzUxLCIiLFs3LCJyIiwicyJdLFsicyJdLFs1MiwidCIsWzE2LFsxNSwiciJdLCJndG0udmlkZW9TdGF0dXMiXV0sWzQxLCJ1Il0sWzIyLFsyMCxbMTUsInQiXSwic3RhcnQiXSxbNDYsWzUzLFszLCJ1IixbMTUsImciXV1dXSxbNDYsWzIyLFsyMCxbMTUsInQiXSwicHJvZ3Jlc3MiXSxbNDYsWzUzLFszLCJ1IixbMTUsImgiXV1dXSxbNDYsWzIyLFsyMCxbMTUsInQiXSwiY29tcGxldGUiXSxbNDYsWzUzLFszLCJ1IixbMTUsImkiXV1dXSxbNDYsWzUzLFszNl1dXV1dXV1dLFs1MiwidiIsWzgsInZpZGVvX2N1cnJlbnRfdGltZSIsWzE2LFsxNSwiciJdLCJndG0udmlkZW9DdXJyZW50VGltZSJdLCJ2aWRlb19kdXJhdGlvbiIsWzE2LFsxNSwiciJdLCJndG0udmlkZW9EdXJhdGlvbiJdLCJ2aWRlb19wZXJjZW50IixbMTYsWzE1LCJyIl0sImd0bS52aWRlb1BlcmNlbnQiXSwidmlkZW9fcHJvdmlkZXIiLFsxNixbMTUsInIiXSwiZ3RtLnZpZGVvUHJvdmlkZXIiXSwidmlkZW9fdGl0bGUiLFsxNixbMTUsInIiXSwiZ3RtLnZpZGVvVGl0bGUiXSwidmlkZW9fdXJsIixbMTYsWzE1LCJyIl0sImd0bS52aWRlb1VybCJdLCJ2aXNpYmxlIixbMTYsWzE1LCJyIl0sImd0bS52aWRlb1Zpc2libGUiXV1dLFs1MiwidyIsWzgsImV2ZW50SWQiLFsxNixbMTUsInIiXSwiZ3RtLnVuaXF1ZUV2ZW50SWQiXSwiZGVmZXJyYWJsZSIsdHJ1ZV1dLFsyLFsxNSwibiJdLCJCIixbNyxbMTUsInciXV1dLFsibyIsWzE1LCJwIl0sWzE1LCJ1Il0sWzE1LCJ2Il0sWzE1LCJ3Il1dXSxbMTUsInEiXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2dhX2Fkc19saW5rIixbNDYsImEiXSxbNTAsImsiLFs0NiwibiJdLFszNixbImoiLFs3LCJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl1dXV0sWzUwLCJsIixbNDYsIm4iXSxbNDEsIm8iXSxbMywibyIsWzIsWzE1LCJuIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImIiXSwiSlIiXV1dXSxbMjIsWzI4LFsxNSwibyJdXSxbNDYsWzUzLFs1MiwiciIsWzMwLFsyLFsxNSwibiJdLCJnZXRIaXREYXRhIixbNyxbMTcsWzE1LCJiIl0sIkpTIl1dXSxbOF1dXSxbMywibyIsWzE2LFsxNSwiciJdLFsxNyxbMTUsImIiXSwiSlIiXV1dXV1dLFsyMixbMjgsWzE1LCJvIl1dLFs0NixbNTMsWzM2XV1dXSxbNTIsInAiLFsiZCIsWzE3LFsxNSwiYyJdLCJTIl1dXSxbMjIsWzE1LCJwIl0sWzQ2LFs1MyxbMzZdXV1dLFsiZSIsWzE3LFsxNSwiYyJdLCJTIl0sWzE1LCJvIl1dLFsiZSIsWzE3LFsxNSwiYyJdLCJVIl0sWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXV0sWzUyLCJxIixbImQiLFsxNyxbMTUsImMiXSwiVCJdXV0sWzIyLFsxNSwicSJdLFs0NixbNTMsWzUyLCJyIixbMzAsWzIsWzE1LCJuIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJoIl0sIkFDIl1dXSxbN11dXSxbMjIsWzIzLFsyLFsxNSwiciJdLCJpbmRleE9mIixbNyxbMTcsWzE1LCJpIl0sIkFBIl1dXSwwXSxbNDYsWzUzLFsyLFsxNSwiciJdLCJwdXNoIixbNyxbMTcsWzE1LCJpIl0sIkFBIl1dXSxbMixbMTUsIm4iXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImgiXSwiQUMiXSxbMTUsInIiXV1dXV1dXV1dXSxbNTAsIm0iLFs0NiwibiIsIm8iXSxbMixbMTUsImciXSwiQiIsWzcsWzE1LCJuIl0sWzE1LCJvIl1dXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2Nyb3NzQ29udGFpbmVyU2NoZW1hIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY29weUZyb21Dcm9zc0NvbnRhaW5lckRhdGEiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRJbkNyb3NzQ29udGFpbmVyRGF0YSJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfZ2FBZHNMaW5rQWN0aXZpdHkiXV0sWzUyLCJnIixbMTUsIl9fbW9kdWxlX3Byb2Nlc3NvcnMiXV0sWzUyLCJoIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9nb2xkRXZlbnRVc2FnZUlkIl1dLFs1MiwiaiIsWyJyZXF1aXJlIiwiaXNDb25zZW50R3JhbnRlZCJdXSxbMixbMTUsImYiXSwiQSIsWzcsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXSxbMTUsImwiXSxbMTUsIm0iXSxbMTUsImsiXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9nYV9maXJzdCIsWzQ2LCJhIl0sWzUwLCJlIixbNDYsImYiXSxbMixbMTUsImMiXSwiQSIsWzcsWzE1LCJmIl1dXSxbMixbMTUsImQiXSwiQSIsWzcsWzE1LCJmIl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV90YXNrUGxhdGZvcm1EZXRlY3Rpb24iXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRUZXN0SGl0UGFyYW1zIl1dLFsiYiIsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXSxbNTEsIiIsWzcsImYiXSxbImUiLFsxNSwiZiJdXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9nYV9sYXN0IixbNDYsImEiXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZ2FfcmVnc2NvcGUiLFs0NiwiYSJdLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9jY2RHYVJlZ2lvblNjb3BlZFNldHRpbmdzIl1dLFs1MiwiYyIsWzIsWzE1LCJiIl0sIkIiLFs3LFsxNSwiYSJdXV1dLFsyLFsxNSwiYiJdLCJBIixbNyxbMTUsImEiXSxbMTUsImMiXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2UiLFs0NiwiYSJdLFszNixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0RXZlbnREYXRhIl1dLFsiJDAiLCJldmVudCJdXV1dCiAsWzUwLCJfX2djdCIsWzQ2LCJhIl0sWzUwLCJnIixbNDYsIm0iXSxbNTIsIm4iLFs3XV0sWzY1LCJvIixbMTUsIm0iXSxbNDYsWzUzLFs1MiwicCIsWyJiIixbMTUsIm8iXV1dLFsyMixbMjEsWzE1LCJwIl0sWzQ1XV0sWzQ2LFsyLFsxNSwibiJdLCJwdXNoIixbNyxbMTUsInAiXV1dXV1dXV0sWzM2LFsxNSwibiJdXV0sWzUwLCJoIixbNDYsIm0iXSxbNTIsIm4iLFsxNyxbMTUsIm0iXSwibGlua2VyIl1dLFsyMixbMSxbMTUsIm4iXSxbMTYsWzE1LCJuIl0sImRvbWFpbnMiXV0sWzQ2LFs1MyxbNDMsWzE1LCJuIl0sImRvbWFpbnMiLFsiZyIsWzE2LFsxNSwibiJdLCJkb21haW5zIl1dXV1dXSxbMzYsWzE1LCJuIl1dXSxbNTAsImkiLFs0NiwibSJdLFs1MiwibiIsWzE3LFsxNSwibSJdLCJyZWZlcnJhbEV4Y2x1c2lvbkRlZmluaXRpb24iXV0sWzIyLFsxLFsxNSwibiJdLFsxNixbMTUsIm4iXSwiaW5jbHVkZV9jb25kaXRpb25zIl1dLFs0NixbNTMsWzQzLFsxNSwibiJdLCJpbmNsdWRlX2NvbmRpdGlvbnMiLFsiZyIsWzE2LFsxNSwibiJdLCJpbmNsdWRlX2NvbmRpdGlvbnMiXV1dXV1dLFszNixbMTUsIm4iXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY3JlYXRlUmVnZXgiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJnZXRUeXBlIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwubWVyZ2VSZW1vdGVDb25maWciXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckRlc3RpbmF0aW9uIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwidGVtcGxhdGVTdG9yYWdlIl1dLFs1MiwiaiIsWzMwLFsyLFsxNSwiZiJdLCJnZXRJdGVtIixbNywicmVnZXgiXV0sWyJiIiwiWy4qK1xcLT9eJHt9KCl8W1xcXVxcXFxdIiwiZyJdXV0sWzIsWzE1LCJmIl0sInNldEl0ZW0iLFs3LCJyZWdleCIsWzE1LCJqIl1dXSxbNTIsImsiLFs4XV0sWzUyLCJsIixbMTcsWzE1LCJhIl0sInNlc3Npb25EdXJhdGlvbiJdXSxbMjIsWzE4LFsxNSwibCJdLDBdLFs0NixbNTMsWzQzLFsxNSwiayJdLCJzZXNzaW9uX2R1cmF0aW9uIixbMTUsImwiXV1dXV0sWzQzLFsxNSwiayJdLCJldmVudF9zZXR0aW5ncyIsWzE3LFsxNSwiYSJdLCJldmVudFNldHRpbmdzIl1dLFs0MyxbMTUsImsiXSwiZHluYW1pY19ldmVudF9zZXR0aW5ncyIsWzE3LFsxNSwiYSJdLCJkeW5hbWljRXZlbnRTZXR0aW5ncyJdXSxbNDMsWzE1LCJrIl0sImdvb2dsZV9zaWduYWxzIixbMjAsWzE3LFsxNSwiYSJdLCJnb29nbGVTaWduYWxzIl0sMV1dLFs0MyxbMTUsImsiXSwiZ29vZ2xlX3RsZCIsWzE3LFsxNSwiYSJdLCJmb3JlaWduVGxkIl1dLFs0MyxbMTUsImsiXSwiZ2FfcmVzdHJpY3RfZG9tYWluIixbMjAsWzE3LFsxNSwiYSJdLCJyZXN0cmljdERvbWFpbiJdLDFdXSxbNDMsWzE1LCJrIl0sImludGVybmFsX3RyYWZmaWNfcmVzdWx0cyIsWzE3LFsxNSwiYSJdLCJpbnRlcm5hbFRyYWZmaWNSZXN1bHRzIl1dLFs0MyxbMTUsImsiXSwibGlua2VyIixbImgiLFsxNSwiYSJdXV0sWzQzLFsxNSwiayJdLCJyZWZlcnJhbF9leGNsdXNpb25fZGVmaW5pdGlvbiIsWyJpIixbMTUsImEiXV1dLFsiZCIsWzE3LFsxNSwiYSJdLCJ0cmFja2luZ0lkIl0sWzE1LCJrIl1dLFsiZSIsWzE3LFsxNSwiYSJdLCJ0cmFja2luZ0lkIl1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX29ndF8xcF9kYXRhX3YyIixbNDYsImEiXSxbNTAsInAiLFs0NiwiciIsInMiLCJ0IiwidSJdLFsyMixbMjAsWzE2LFsxNSwicyJdLCJ0eXBlIl0sWzE1LCJ0Il1dLFs0NixbNTMsWzIyLFsyOCxbMTUsInIiXV0sWzQ2LFs1MyxbMywiciIsWzhdXV1dXSxbMjIsWzI4LFsxNixbMTUsInIiXSxbMTUsInQiXV1dLFs0NixbNTMsWzQzLFsxNSwiciJdLFsxNSwidCJdLFsxNixbMTUsInMiXSwidXNlckRhdGEiXV0sWzUyLCJ2IixbOCwibW9kZSIsImEiXV0sWzIyLFsxNixbMTUsInMiXSwidGFnTmFtZSJdLFs0NixbNTMsWzQzLFsxNSwidiJdLCJsb2NhdGlvbiIsWzE2LFsxNSwicyJdLCJ0YWdOYW1lIl1dXV1dLFsyMixbMTYsWzE1LCJzIl0sInF1ZXJ5U2VsZWN0b3IiXSxbNDYsWzUzLFs0MyxbMTUsInYiXSwic2VsZWN0b3IiLFsxNixbMTUsInMiXSwicXVlcnlTZWxlY3RvciJdXV1dXSxbNDMsWzE1LCJ1Il0sWzE1LCJ0Il0sWzE1LCJ2Il1dXV1dXV1dLFszNixbMTUsInIiXV1dLFs1MCwicSIsWzQ2LCJyIiwicyIsInQiXSxbMjIsWzI4LFsxNixbMTUsImEiXSxbMTUsInQiXV1dLFs0NixbMzZdXV0sWzQzLFsxNSwiciJdLFsxNSwicyJdLFs4LCJ2YWx1ZSIsWzE2LFsxNSwiYSJdLFsxNSwidCJdXV1dXSxbMjIsWzI4LFsxNyxbMTUsImEiXSwiaXNFbmFibGVkIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiT2JqZWN0Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLmdldERlc3RpbmF0aW9uSWRzIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZGV0ZWN0VXNlclByb3ZpZGVkRGF0YSJdXSxbNTIsImgiLFsicmVxdWlyZSIsInF1ZXJ5UGVybWlzc2lvbiJdXSxbNTIsImkiLFsicmVxdWlyZSIsImludGVybmFsLnNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciJdXSxbNTIsImoiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJrIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwibCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwibSIsWyJjIixbMTcsWzE1LCJlIl0sIkFUIl1dXSxbNTIsIm4iLFszMCxbImYiXSxbN11dXSxbNTIsIm8iLFs4LCJlbmFibGVfY29kZSIsdHJ1ZV1dLFsyMixbMTcsWzE1LCJhIl0sImlzQXV0b0VuYWJsZWQiXSxbNDYsWzUzLFs1MiwiciIsWzddXSxbMjIsWzEsWzE3LFsxNSwiYSJdLCJhdXRvQ29sbGVjdEV4Y2x1c2lvblNlbGVjdG9ycyJdLFsxNyxbMTcsWzE1LCJhIl0sImF1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIl0sImxlbmd0aCJdXSxbNDYsWzUzLFs1MyxbNDEsInUiXSxbMywidSIsMF0sWzYzLFs3LCJ1Il0sWzIzLFsxNSwidSJdLFsxNyxbMTcsWzE1LCJhIl0sImF1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJ1Il0sWzMsInUiLFswLFsxNSwidSJdLDFdXV0sWzQ2LFs1MyxbNTIsInYiLFsxNyxbMTYsWzE3LFsxNSwiYSJdLCJhdXRvQ29sbGVjdEV4Y2x1c2lvblNlbGVjdG9ycyJdLFsxNSwidSJdXSwiZXhjbHVzaW9uU2VsZWN0b3IiXV0sWzIyLFsxNSwidiJdLFs0NixbNTMsWzIsWzE1LCJyIl0sInB1c2giLFs3LFsxNSwidiJdXV1dXV1dXV1dXV1dLFs1MiwicyIsWzE3LFsxNSwiYSJdLCJpc0F1dG9Db2xsZWN0UGlpRW5hYmxlZEZsYWciXV0sWzUyLCJ0IixbMzksWzE3LFsxNSwiYSJdLCJpc0F1dG9Db2xsZWN0UGlpRW5hYmxlZEZsYWciXSxbMTcsWzE1LCJhIl0sImF1dG9FbWFpbEVuYWJsZWQiXSx0cnVlXV0sWzQzLFsxNSwibyJdLCJhdXRvX2RldGVjdCIsWzgsImVtYWlsIixbMTUsInQiXSwicGhvbmUiLFsxLFsxNSwicyJdLFsxNyxbMTUsImEiXSwiYXV0b1Bob25lRW5hYmxlZCJdXSwiYWRkcmVzcyIsWzEsWzE1LCJzIl0sWzE3LFsxNSwiYSJdLCJhdXRvQWRkcmVzc0VuYWJsZWQiXV0sImV4Y2x1ZGVfZWxlbWVudF9zZWxlY3RvcnMiLFsxNSwiciJdXV1dXV0sWzIyLFsxNyxbMTUsImEiXSwiaXNNYW51YWxFbmFibGVkIl0sWzQ2LFs1MyxbNTIsInIiLFs4XV0sWzIyLFsxNyxbMTUsImEiXSwibWFudWFsRW1haWxFbmFibGVkIl0sWzQ2LFs1MyxbInEiLFsxNSwiciJdLCJlbWFpbCIsImVtYWlsVmFsdWUiXV1dXSxbMjIsWzE3LFsxNSwiYSJdLCJtYW51YWxQaG9uZUVuYWJsZWQiXSxbNDYsWzUzLFsicSIsWzE1LCJyIl0sInBob25lIiwicGhvbmVWYWx1ZSJdXV1dLFsyMixbMTcsWzE1LCJhIl0sIm1hbnVhbEFkZHJlc3NFbmFibGVkIl0sWzQ2LFs1MyxbNTIsInMiLFs4XV0sWyJxIixbMTUsInMiXSwiZmlyc3RfbmFtZSIsImZpcnN0TmFtZVZhbHVlIl0sWyJxIixbMTUsInMiXSwibGFzdF9uYW1lIiwibGFzdE5hbWVWYWx1ZSJdLFsicSIsWzE1LCJzIl0sInN0cmVldCIsInN0cmVldFZhbHVlIl0sWyJxIixbMTUsInMiXSwiY2l0eSIsImNpdHlWYWx1ZSJdLFsicSIsWzE1LCJzIl0sInJlZ2lvbiIsInJlZ2lvblZhbHVlIl0sWyJxIixbMTUsInMiXSwiY291bnRyeSIsImNvdW50cnlWYWx1ZSJdLFsicSIsWzE1LCJzIl0sInBvc3RhbF9jb2RlIiwicG9zdGFsQ29kZVZhbHVlIl0sWzQzLFsxNSwiciJdLCJuYW1lX2FuZF9hZGRyZXNzIixbNyxbMTUsInMiXV1dXV1dLFs0MyxbMTUsIm8iXSwic2VsZWN0b3JzIixbMTUsInIiXV1dXV0sWzY1LCJyIixbMTUsIm4iXSxbNDYsWzUzLFsiaSIsWzE1LCJyIl0sInVzZXJfZGF0YV9zZXR0aW5ncyIsWzE1LCJvIl1dLFs1MiwicyIsWzE2LFsxNSwibyJdLCJhdXRvX2RldGVjdCJdXSxbMjIsWzI4LFsxNSwicyJdXSxbNDYsWzUzLFs2XV1dXSxbNTIsInQiLFs1MSwiIixbNywidSJdLFs1MiwidiIsWzIsWzE1LCJ1Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJrIl0sIkNYIl1dXV0sWzIyLFsxNSwidiJdLFs0NixbNTMsWzM2LFsxNSwidiJdXV1dXSxbNTIsInciLFsiYyIsWzE3LFsxNSwiZSJdLCJCViJdXV0sWzUyLCJ4IixbImMiLFsxNyxbMTUsImUiXSwiQ0kiXV1dLFs0MSwieSJdLFsyMixbImgiLCJkZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhIiwiYXV0byJdLFs0NixbNTMsWzMsInkiLFsiZyIsWzgsImV4Y2x1ZGVFbGVtZW50U2VsZWN0b3JzIixbMTYsWzE1LCJzIl0sImV4Y2x1ZGVfZWxlbWVudF9zZWxlY3RvcnMiXSwiZmllbGRGaWx0ZXJzIixbOCwiZW1haWwiLFsxNixbMTUsInMiXSwiZW1haWwiXSwicGhvbmUiLFsxNixbMTUsInMiXSwicGhvbmUiXSwiYWRkcmVzcyIsWzE2LFsxNSwicyJdLCJhZGRyZXNzIl1dLCJpbmNsdWRlU2VsZWN0b3IiLFsxNSwidyJdLCJyZWFkRnJvbURhdGFMYXllciIsWzE1LCJ4Il1dXV1dXV0sWzUyLCJ6IixbMSxbMTUsInkiXSxbMTYsWzE1LCJ5Il0sImVsZW1lbnRzIl1dXSxbNTIsImFBIixbOF1dLFs1MiwiYUIiLFs4XV0sWzIyLFsxLFsxNSwieiJdLFsxOCxbMTcsWzE1LCJ6Il0sImxlbmd0aCJdLDBdXSxbNDYsWzUzLFs0MSwiYUMiXSxbNDEsImFEIl0sWzMsImFEIixbOF1dLFs1MyxbNDEsImFFIl0sWzMsImFFIiwwXSxbNjMsWzcsImFFIl0sWzIzLFsxNSwiYUUiXSxbMTcsWzE1LCJ6Il0sImxlbmd0aCJdXSxbMzMsWzE1LCJhRSJdLFszLCJhRSIsWzAsWzE1LCJhRSJdLDFdXV0sWzQ2LFs1MyxbNTIsImFGIixbMTYsWzE1LCJ6Il0sWzE1LCJhRSJdXV0sWyJwIixbMTUsImFBIl0sWzE1LCJhRiJdLCJlbWFpbCIsWzE1LCJhQiJdXSxbMjIsWyJjIixbMTcsWzE1LCJlIl0sIkJPIl1dLFs0NixbNTMsWyJwIixbMTUsImFBIl0sWzE1LCJhRiJdLCJwaG9uZV9udW1iZXIiLFsxNSwiYUIiXV0sWzMsImFDIixbInAiLFsxNSwiYUMiXSxbMTUsImFGIl0sImZpcnN0X25hbWUiLFsxNSwiYUQiXV1dLFszLCJhQyIsWyJwIixbMTUsImFDIl0sWzE1LCJhRiJdLCJsYXN0X25hbWUiLFsxNSwiYUQiXV1dLFszLCJhQyIsWyJwIixbMTUsImFDIl0sWzE1LCJhRiJdLCJjb3VudHJ5IixbMTUsImFEIl1dXSxbMywiYUMiLFsicCIsWzE1LCJhQyJdLFsxNSwiYUYiXSwicG9zdGFsX2NvZGUiLFsxNSwiYUQiXV1dXV1dXV1dXSxbMjIsWzEsWzE1LCJhQyJdLFsyOCxbMTYsWzE1LCJhQSJdLCJhZGRyZXNzIl1dXSxbNDYsWzUzLFs0MyxbMTUsImFBIl0sImFkZHJlc3MiLFsxNSwiYUMiXV0sWzIyLFsxNSwibSJdLFs0NixbNTMsWzQzLFsxNixbMTUsImFBIl0sImFkZHJlc3MiXSwiX3RhZ19tZXRhZGF0YSIsWzE1LCJhRCJdXV1dXV1dXV1dXSxbMjIsWzEsWzE1LCJ5Il0sWzE1LCJ4Il1dLFs0NixbNTMsWzUyLCJhQyIsWzE2LFsxNSwieSJdLCJkYXRhTGF5ZXJTZWFyY2hUaW1lIl1dLFs1MiwiYUQiLFsxNixbMTUsInkiXSwiZGF0YUxheWVyU2VhcmNoQ291bnQiXV0sWzIsWzE1LCJ1Il0sIm1lcmdlSGl0RGF0YUZvcktleSIsWzcsWzE3LFsxNSwibCJdLCJGVCJdLFs4LCJkbHN0IixbMTUsImFDIl0sImRsc2MiLFsxNSwiYUQiXV1dXV1dXSxbMjIsWzE1LCJtIl0sWzQ2LFs1MyxbMjIsWzMwLFsxNixbMTUsImFBIl0sImVtYWlsIl0sWzE2LFsxNSwiYUEiXSwicGhvbmVfbnVtYmVyIl1dLFs0NixbNTMsWzQzLFsxNSwiYUEiXSwiX3RhZ19tZXRhZGF0YSIsWzE1LCJhQiJdXV1dXV1dXSxbMixbMTUsInUiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImsiXSwiQ1giXSxbMTUsImFBIl1dXSxbMzYsWzE1LCJhQSJdXV1dLFsiaiIsWzE1LCJyIl0sWzUxLCIiLFs3LCJ1Il0sWzIsWzE1LCJ1Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJrIl0sIkNZIl0sWzE1LCJ0Il1dXV1dXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX29ndF9ldmVudF9jcmVhdGUiLFs0NiwiYSJdLFs1MCwiciIsWzQ2LCJzIiwidCJdLFsyMixbMjgsWzIsWzE1LCJjIl0sIkIiLFs3LFsxNSwicyJdLFsxNixbMTUsInQiXSxbMTUsIm4iXV0sWzMwLFsxNixbMTUsInQiXSxbMTUsIm8iXV0sWzddXV1dXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzUyLCJ1IixbMTYsWzE1LCJ0Il0sWzE1LCJwIl1dXSxbMjIsWzIsWzE1LCJjIl0sIkQiLFs3LFsxNSwidSJdXV0sWzQ2LFs1MyxbMzZdXV1dLFs1MiwidiIsWzI4LFsxNixbMTUsInQiXSxbMTUsInEiXV1dXSxbNDEsInciXSxbMywidyIsWzE1LCJ2Il1dLFsyMixbImkiLFsxNyxbMTUsImoiXSwiQUUiXV0sWzQ2LFs1MyxbMywidyIsWzMwLFsxNSwidyJdLFsyOCxbMixbMTUsInMiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImciXSwiQk8iXV1dXV1dXV1dLFs1MiwieCIsWzMwLFsyLFsxNSwicyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZyJdLCJBQyJdXV0sWzddXV0sWzIyLFsyMCxbMixbMTUsIngiXSwiaW5kZXhPZiIsWzcsWzE3LFsxNSwiaCJdLCJBIl1dXSxbMjcsMV1dLFs0NixbNTMsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImgiXSwiQSJdXV1dXV0sWzIsWzE1LCJzIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJnIl0sIkFDIl0sWzE1LCJ4Il1dXSxbNTIsInkiLFsiYiIsWzE1LCJzIl0sWzgsIm9taXRIaXREYXRhIixbMTUsInciXSwib21pdEV2ZW50Q29udGV4dCIsWzE1LCJ2Il0sIm9taXRNZXRhZGF0YSIsdHJ1ZV1dXSxbMixbMTUsImMiXSwiQSIsWzcsWzE1LCJ5Il0sWzE1LCJ0Il1dXSxbMixbMTUsInkiXSwic2V0RXZlbnROYW1lIixbNyxbMTUsInUiXV1dLFsyLFsxNSwieSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZyJdLCJCUiJdLHRydWVdXSxbMixbMTUsInkiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImciXSwiQUMiXSxbNyxbMTcsWzE1LCJoIl0sIksiXV1dXSxbImQiLFsxNSwieSJdXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5UHJlSGl0Il1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ldmVudEVkaXRpbmdBbmRTeW50aGVzaXMiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5wcm9jZXNzQXNOZXdFdmVudCJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJmIixbInJlcXVpcmUiLCJ0ZW1wbGF0ZVN0b3JhZ2UiXV0sWzUyLCJnIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiaCIsWzE1LCJfX21vZHVsZV9nb2xkRXZlbnRVc2FnZUlkIl1dLFs1MiwiaSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImoiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJrIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbNDEsImwiXSxbMywibCIsWzIsWzE1LCJmIl0sImdldEl0ZW0iLFs3LFsxNSwiayJdXV1dLFs0MSwibSJdLFszLCJtIixbMjgsWzI4LFsxNSwibCJdXV1dLFsyMixbMTUsIm0iXSxbNDYsWzUzLFsyLFsxNSwibCJdLCJwdXNoIixbNyxbMTcsWzE1LCJhIl0sInByZWNvbXBpbGVkUnVsZSJdXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFsyLFsxNSwiZiJdLCJzZXRJdGVtIixbNyxbMTUsImsiXSxbNyxbMTcsWzE1LCJhIl0sInByZWNvbXBpbGVkUnVsZSJdXV1dLFs1MiwibiIsImV2ZW50X25hbWVfcHJlZGljYXRlIl0sWzUyLCJvIiwiY29uZGl0aW9ucyJdLFs1MiwicCIsIm5ld19ldmVudF9uYW1lIl0sWzUyLCJxIiwibWVyZ2Vfc291cmNlX2V2ZW50X3BhcmFtcyJdLFsiZSIsWzE1LCJrIl0sWzUxLCIiLFs3LCJzIl0sWzIyLFsyLFsxNSwicyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZyJdLCJCUiJdXV0sWzQ2LFs1MyxbMzZdXV1dLFs1MiwidCIsWzIsWzE1LCJmIl0sImdldEl0ZW0iLFs3LFsxNSwiayJdXV1dLFs2NiwidSIsWzE1LCJ0Il0sWzQ2LFs1MyxbInIiLFsxNSwicyJdLFsxNSwidSJdXV1dXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX3NldF9wcm9kdWN0X3NldHRpbmdzIixbNDYsImEiXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MiwiX19tb2R1bGVfYWR3b3Jkc0hpdFR5cGUiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCJjb252ZXJzaW9uIl0sWzUyLCJjIiwiZmxvb2RsaWdodCJdLFs1MiwiZCIsImdhX2NvbnZlcnNpb24iXSxbNTIsImUiLCJwYWdlX3ZpZXciXSxbNTIsImYiLCJyZW1hcmtldGluZyJdLFs1MiwiZyIsInVzZXJfZGF0YV9sZWFkIl0sWzUyLCJoIiwidXNlcl9kYXRhX3dlYiJdLFszNixbOCwiRCIsWzE1LCJiIl0sIkUiLFsxNSwiYyJdLCJGIixbMTUsImQiXSwiSCIsWzE1LCJlIl0sIkkiLFsxNSwiZiJdLCJKIixbMTUsImciXSwiSyIsWzE1LCJoIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9ndGFnU2NoZW1hIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiYWRfcGVyc29uYWxpemF0aW9uIl0sWzUyLCJjIiwiYWRfc3RvcmFnZSJdLFs1MiwiZCIsImFkX3VzZXJfZGF0YSJdLFs1MiwiZSIsImNvbnNlbnRfdXBkYXRlZCJdLFs1MiwiZiIsImFwcF9yZW1vdmUiXSxbNTIsImciLCJhcHBfc3RvcmVfcmVmdW5kIl0sWzUyLCJoIiwiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9jYW5jZWwiXSxbNTIsImkiLCJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX2NvbnZlcnQiXSxbNTIsImoiLCJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX3JlbmV3Il0sWzUyLCJrIiwiY29udmVyc2lvbiJdLFs1MiwibCIsInB1cmNoYXNlIl0sWzUyLCJtIiwiZmlyc3Rfb3BlbiJdLFs1MiwibiIsImZpcnN0X3Zpc2l0Il0sWzUyLCJvIiwiZ3RhZy5jb25maWciXSxbNTIsInAiLCJpbl9hcHBfcHVyY2hhc2UiXSxbNTIsInEiLCJwYWdlX3ZpZXciXSxbNTIsInIiLCJzZXNzaW9uX3N0YXJ0Il0sWzUyLCJzIiwidXNlcl9lbmdhZ2VtZW50Il0sWzUyLCJ0IiwiYWRzX2RhdGFfcmVkYWN0aW9uIl0sWzUyLCJ1IiwiYWxsb3dfYWRfcGVyc29uYWxpemF0aW9uX3NpZ25hbHMiXSxbNTIsInYiLCJhbGxvd19jdXN0b21fc2NyaXB0cyJdLFs1MiwidyIsImFsbG93X2VuaGFuY2VkX2NvbnZlcnNpb25zIl0sWzUyLCJ4IiwiYWxsb3dfZ29vZ2xlX3NpZ25hbHMiXSxbNTIsInkiLCJhdWlkIl0sWzUyLCJ6IiwiYXdfcmVtYXJrZXRpbmdfb25seSJdLFs1MiwiYUEiLCJkaXNjb3VudCJdLFs1MiwiYUIiLCJhd19mZWVkX2NvdW50cnkiXSxbNTIsImFDIiwiYXdfZmVlZF9sYW5ndWFnZSJdLFs1MiwiYUQiLCJpdGVtcyJdLFs1MiwiYUUiLCJhd19tZXJjaGFudF9pZCJdLFs1MiwiYUYiLCJhd19iYXNrZXRfdHlwZSJdLFs1MiwiYUciLCJjbGllbnRfaWQiXSxbNTIsImFIIiwiY29udmVyc2lvbl9jb29raWVfcHJlZml4Il0sWzUyLCJhSSIsImNvbnZlcnNpb25faWQiXSxbNTIsImFKIiwiY29udmVyc2lvbl9saW5rZXIiXSxbNTIsImFLIiwiY29udmVyc2lvbl9hcGkiXSxbNTIsImFMIiwiY29va2llX2RlcHJlY2F0aW9uIl0sWzUyLCJhTSIsImNvb2tpZV9leHBpcmVzIl0sWzUyLCJhTiIsImNvb2tpZV9wcmVmaXgiXSxbNTIsImFPIiwiY29va2llX3VwZGF0ZSJdLFs1MiwiYVAiLCJjb3VudHJ5Il0sWzUyLCJhUSIsImN1cnJlbmN5Il0sWzUyLCJhUiIsImN1c3RvbWVyX2xpZmV0aW1lX3ZhbHVlIl0sWzUyLCJhUyIsImN1c3RvbWVyX3R5cGUiXSxbNTIsImFUIiwiZGVidWdfbW9kZSJdLFs1MiwiYVUiLCJzaGlwcGluZyJdLFs1MiwiYVYiLCJlbmdhZ2VtZW50X3RpbWVfbXNlYyJdLFs1MiwiYVciLCJlc3RpbWF0ZWRfZGVsaXZlcnlfZGF0ZSJdLFs1MiwiYVgiLCJldmVudF9kZXZlbG9wZXJfaWRfc3RyaW5nIl0sWzUyLCJhWSIsImV2ZW50X2lkIl0sWzUyLCJhWiIsImV2ZW50Il0sWzUyLCJiQSIsIl8mYWUiXSxbNTIsImJCIiwiZXZlbnRfdGltZW91dCJdLFs1MiwiYkMiLCJleHRfY2xpZW50X2lkIl0sWzUyLCJiRCIsImZpcnN0X3BhcnR5X2NvbGxlY3Rpb24iXSxbNTIsImJFIiwibWF0Y2hfaWQiXSxbNTIsImJGIiwiZ2Rwcl9hcHBsaWVzIl0sWzUyLCJiRyIsIl9ndF9tZXRhZGF0YSJdLFs1MiwiYkgiLCJnb29nbGVfYW5hbHlzaXNfcGFyYW1zIl0sWzUyLCJiSSIsIl9nb29nbGVfbmciXSxbNTIsImJKIiwiX29ubyJdLFs1MiwiYksiLCJncHBfc2lkIl0sWzUyLCJiTCIsImdwcF9zdHJpbmciXSxbNTIsImJNIiwiZ3NhX2V4cGVyaW1lbnRfaWQiXSxbNTIsImJOIiwiZ3RhZ19ldmVudF9mZWF0dXJlX3VzYWdlIl0sWzUyLCJiTyIsImlmcmFtZV9zdGF0ZSJdLFs1MiwiYlAiLCJpZ25vcmVfcmVmZXJyZXIiXSxbNTIsImJRIiwiaXNfcGFzc3Rocm91Z2giXSxbNTIsImJSIiwibGFuZ3VhZ2UiXSxbNTIsImJTIiwibWVyY2hhbnRfZmVlZF9sYWJlbCJdLFs1MiwiYlQiLCJtZXJjaGFudF9mZWVkX2xhbmd1YWdlIl0sWzUyLCJiVSIsIm1lcmNoYW50X2lkIl0sWzUyLCJiViIsIm5ld19jdXN0b21lciJdLFs1MiwiYlciLCJwYWdlX2hvc3RuYW1lIl0sWzUyLCJiWCIsInBhZ2VfcGF0aCJdLFs1MiwiYlkiLCJwYWdlX3JlZmVycmVyIl0sWzUyLCJiWiIsInBhZ2VfdGl0bGUiXSxbNTIsImNBIiwiX3BsYXRpbnVtX3JlcXVlc3Rfc3RhdHVzIl0sWzUyLCJjQiIsInF1YW50aXR5Il0sWzUyLCJjQyIsInJlc3RyaWN0ZWRfZGF0YV9wcm9jZXNzaW5nIl0sWzUyLCJjRCIsInNjcmVlbl9yZXNvbHV0aW9uIl0sWzUyLCJjRSIsInNlbmRfcGFnZV92aWV3Il0sWzUyLCJjRiIsInNlcnZlcl9jb250YWluZXJfM3BfZW5yaWNobWVudCJdLFs1MiwiY0ciLCJzZXJ2ZXJfY29udGFpbmVyX3VybCJdLFs1MiwiY0giLCJzZXNzaW9uX2R1cmF0aW9uIl0sWzUyLCJjSSIsInNlc3Npb25fZW5nYWdlZF90aW1lIl0sWzUyLCJjSiIsInNlc3Npb25faWQiXSxbNTIsImNLIiwiX3NoYXJlZF91c2VyX2lkIl0sWzUyLCJjTCIsImRlbGl2ZXJ5X3Bvc3RhbF9jb2RlIl0sWzUyLCJjTSIsInRlc3Rvbmx5Il0sWzUyLCJjTiIsInRvcG1vc3RfdXJsIl0sWzUyLCJjTyIsInRyYW5zYWN0aW9uX2lkIl0sWzUyLCJjUCIsInRyYW5zYWN0aW9uX2lkX3NvdXJjZSJdLFs1MiwiY1EiLCJ0cmFuc3BvcnRfdXJsIl0sWzUyLCJjUiIsInVwZGF0ZSJdLFs1MiwiY1MiLCJfdXNlcl9hZ2VudF9hcmNoaXRlY3R1cmUiXSxbNTIsImNUIiwiX3VzZXJfYWdlbnRfYml0bmVzcyJdLFs1MiwiY1UiLCJfdXNlcl9hZ2VudF9mdWxsX3ZlcnNpb25fbGlzdCJdLFs1MiwiY1YiLCJfdXNlcl9hZ2VudF9tb2JpbGUiXSxbNTIsImNXIiwiX3VzZXJfYWdlbnRfbW9kZWwiXSxbNTIsImNYIiwiX3VzZXJfYWdlbnRfcGxhdGZvcm0iXSxbNTIsImNZIiwiX3VzZXJfYWdlbnRfcGxhdGZvcm1fdmVyc2lvbiJdLFs1MiwiY1oiLCJfdXNlcl9hZ2VudF93b3c2NCJdLFs1MiwiZEEiLCJ1c2VyX2RhdGEiXSxbNTIsImRCIiwidXNlcl9kYXRhX2F1dG9fbGF0ZW5jeSJdLFs1MiwiZEMiLCJ1c2VyX2RhdGFfYXV0b19tZXRhIl0sWzUyLCJkRCIsInVzZXJfZGF0YV9hdXRvX211bHRpIl0sWzUyLCJkRSIsInVzZXJfZGF0YV9hdXRvX3NlbGVjdG9ycyJdLFs1MiwiZEYiLCJ1c2VyX2RhdGFfYXV0b19zdGF0dXMiXSxbNTIsImRHIiwidXNlcl9kYXRhX21vZGUiXSxbNTIsImRIIiwidXNlcl9pZCJdLFs1MiwiZEkiLCJ1c2VyX3Byb3BlcnRpZXMiXSxbNTIsImRKIiwidXNfcHJpdmFjeV9zdHJpbmciXSxbNTIsImRLIiwidmFsdWUiXSxbNTIsImRMIiwiX2ZwbV9wYXJhbWV0ZXJzIl0sWzUyLCJkTSIsIl9ob3N0X25hbWUiXSxbNTIsImROIiwiX2luX3BhZ2VfY29tbWFuZCJdLFs1MiwiZE8iLCJfbWVhc3VyZW1lbnRfdHlwZSJdLFs1MiwiZFAiLCJub25fcGVyc29uYWxpemVkX2FkcyJdLFs1MiwiZFEiLCJjb252ZXJzaW9uX2xhYmVsIl0sWzUyLCJkUiIsInBhZ2VfbG9jYXRpb24iXSxbNTIsImRTIiwiX2V4dHJhY3RlZF9kYXRhIl0sWzUyLCJkVCIsImdsb2JhbF9kZXZlbG9wZXJfaWRfc3RyaW5nIl0sWzUyLCJkVSIsInRjX3ByaXZhY3lfc3RyaW5nIl0sWzM2LFs4LCJBIixbMTUsImIiXSwiQiIsWzE1LCJjIl0sIkMiLFsxNSwiZCJdLCJGIixbMTUsImUiXSwiSSIsWzE1LCJmIl0sIkoiLFsxNSwiZyJdLCJLIixbMTUsImgiXSwiTCIsWzE1LCJpIl0sIk0iLFsxNSwiaiJdLCJPIixbMTUsImsiXSwiQUEiLFsxNSwibCJdLCJBRiIsWzE1LCJtIl0sIkFHIixbMTUsIm4iXSwiQUgiLFsxNSwibyJdLCJBSiIsWzE1LCJwIl0sIkFLIixbMTUsInEiXSwiQU0iLFsxNSwiciJdLCJBUSIsWzE1LCJzIl0sIkJDIixbMTUsInQiXSwiQkoiLFsxNSwidSJdLCJCSyIsWzE1LCJ2Il0sIkJNIixbMTUsInciXSwiQk4iLFsxNSwieCJdLCJCVCIsWzE1LCJ5Il0sIkJYIixbMTUsInoiXSwiQlkiLFsxNSwiYUEiXSwiQloiLFsxNSwiYUIiXSwiQ0EiLFsxNSwiYUMiXSwiQ0IiLFsxNSwiYUQiXSwiQ0MiLFsxNSwiYUUiXSwiQ0QiLFsxNSwiYUYiXSwiQ0wiLFsxNSwiYUciXSwiQ1EiLFsxNSwiYUgiXSwiQ1IiLFsxNSwiYUkiXSwiS0ciLFsxNSwiZFEiXSwiQ1MiLFsxNSwiYUoiXSwiQ1UiLFsxNSwiYUsiXSwiQ1ciLFsxNSwiYUwiXSwiQ1kiLFsxNSwiYU0iXSwiREMiLFsxNSwiYU4iXSwiREQiLFsxNSwiYU8iXSwiREUiLFsxNSwiYVAiXSwiREYiLFsxNSwiYVEiXSwiREciLFsxNSwiYVIiXSwiREgiLFsxNSwiYVMiXSwiRE4iLFsxNSwiYVQiXSwiRUEiLFsxNSwiYVUiXSwiRUMiLFsxNSwiYVYiXSwiRUciLFsxNSwiYVciXSwiRUoiLFsxNSwiYVgiXSwiRUsiLFsxNSwiYVkiXSwiRU4iLFsxNSwiYVoiXSwiRU8iLFsxNSwiYkEiXSwiRVEiLFsxNSwiYkIiXSwiS0kiLFsxNSwiZFMiXSwiRVUiLFsxNSwiYkMiXSwiRVciLFsxNSwiYkQiXSwiRkUiLFsxNSwiYkUiXSwiRk8iLFsxNSwiYkYiXSwiRlAiLFsxNSwiYkciXSwiS0oiLFsxNSwiZFQiXSwiRlQiLFsxNSwiYkgiXSwiRlUiLFsxNSwiYkkiXSwiRlYiLFsxNSwiYkoiXSwiRlkiLFsxNSwiYksiXSwiRloiLFsxNSwiYkwiXSwiR0IiLFsxNSwiYk0iXSwiR0MiLFsxNSwiYk4iXSwiR0UiLFsxNSwiYk8iXSwiR0YiLFsxNSwiYlAiXSwiR0siLFsxNSwiYlEiXSwiR00iLFsxNSwiYlIiXSwiR1QiLFsxNSwiYlMiXSwiR1UiLFsxNSwiYlQiXSwiR1YiLFsxNSwiYlUiXSwiR1oiLFsxNSwiYlYiXSwiSEMiLFsxNSwiYlciXSwiS0giLFsxNSwiZFIiXSwiSEQiLFsxNSwiYlgiXSwiSEUiLFsxNSwiYlkiXSwiSEYiLFsxNSwiYloiXSwiSE4iLFsxNSwiY0EiXSwiSFAiLFsxNSwiY0IiXSwiSFQiLFsxNSwiY0MiXSwiSFgiLFsxNSwiY0QiXSwiSUEiLFsxNSwiY0UiXSwiSUMiLFsxNSwiY0YiXSwiSUQiLFsxNSwiY0ciXSwiSUYiLFsxNSwiY0giXSwiSUgiLFsxNSwiY0kiXSwiSUkiLFsxNSwiY0oiXSwiSUsiLFsxNSwiY0siXSwiSUwiLFsxNSwiY0wiXSwiS0siLFsxNSwiZFUiXSwiSVAiLFsxNSwiY00iXSwiSVIiLFsxNSwiY04iXSwiSVUiLFsxNSwiY08iXSwiSVYiLFsxNSwiY1AiXSwiSVciLFsxNSwiY1EiXSwiSVkiLFsxNSwiY1IiXSwiSkIiLFsxNSwiY1MiXSwiSkMiLFsxNSwiY1QiXSwiSkQiLFsxNSwiY1UiXSwiSkUiLFsxNSwiY1YiXSwiSkYiLFsxNSwiY1ciXSwiSkciLFsxNSwiY1giXSwiSkgiLFsxNSwiY1kiXSwiSkkiLFsxNSwiY1oiXSwiSkoiLFsxNSwiZEEiXSwiSksiLFsxNSwiZEIiXSwiSkwiLFsxNSwiZEMiXSwiSk0iLFsxNSwiZEQiXSwiSk4iLFsxNSwiZEUiXSwiSk8iLFsxNSwiZEYiXSwiSlAiLFsxNSwiZEciXSwiSlIiLFsxNSwiZEgiXSwiSlMiLFsxNSwiZEkiXSwiSlUiLFsxNSwiZEoiXSwiSlYiLFsxNSwiZEsiXSwiSlgiLFsxNSwiZEwiXSwiSlkiLFsxNSwiZE0iXSwiSloiLFsxNSwiZE4iXSwiS0MiLFsxNSwiZE8iXSwiS0QiLFsxNSwiZFAiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiYWJvcnRfd2l0aG91dF9mYWlsIl0sWzUyLCJjIiwiYWNjZXB0X2J5X2RlZmF1bHQiXSxbNTIsImQiLCJhbGxvd19hZF9wZXJzb25hbGl6YXRpb24iXSxbNTIsImUiLCJjb25zZW50X3N0YXRlIl0sWzUyLCJmIiwiY29uc2VudF91cGRhdGVkIl0sWzUyLCJnIiwiY29udmVyc2lvbl9saW5rZXJfZW5hYmxlZCJdLFs1MiwiaCIsImNvbnZlcnNpb25fbWFya2luZ19jYWxsZWQiXSxbNTIsImkiLCJjb29raWVfb3B0aW9ucyJdLFs1MiwiaiIsImRlZHVwZV9pZCJdLFs1MiwiayIsImVtX2V2ZW50Il0sWzUyLCJsIiwiZXZlbnRfcHJvdmVuYW5jZSJdLFs1MiwibSIsImV2ZW50X3NvdXJjZSJdLFs1MiwibiIsImV2ZW50X3N0YXJ0X3RpbWVzdGFtcF9tcyJdLFs1MiwibyIsImV2ZW50X3VzYWdlIl0sWzUyLCJwIiwiZXh0cmFfdGFnX2V4cGVyaW1lbnRfaWRzIl0sWzUyLCJxIiwiZm9ybV9ldmVudF9jYW5jZWxlZCJdLFs1MiwiciIsImdhNF9jb2xsZWN0aW9uX3N1YmRvbWFpbiJdLFs1MiwicyIsImd0bV9leHRyYWN0ZWRfZGF0YSJdLFs1MiwidCIsImhhbmRsZV9pbnRlcm5hbGx5Il0sWzUyLCJ1IiwiaGFzX2dhX2NvbnZlcnNpb25fY29uc2VudHMiXSxbNTIsInYiLCJoaXRfdHlwZSJdLFs1MiwidyIsImhpdF90eXBlX292ZXJyaWRlIl0sWzUyLCJ4IiwiaWdub3JlX2R1cGVfY29uZmlnIl0sWzUyLCJ5IiwiaXNfY29udmVyc2lvbiJdLFs1MiwieiIsImlzX2V4dGVybmFsX2V2ZW50Il0sWzUyLCJhQSIsImlzX2ZpcnN0X3Zpc2l0Il0sWzUyLCJhQiIsImlzX2ZpcnN0X3Zpc2l0X2NvbnZlcnNpb24iXSxbNTIsImFDIiwiaXNfZnBtX2VuY3J5cHRpb24iXSxbNTIsImFEIiwiaXNfZnBtX3NwbGl0Il0sWzUyLCJhRSIsImlzX2djcF9icm93c2VyIl0sWzUyLCJhRiIsImlzX2dvb2dsZV9tZWFzdXJlbWVudF9hbGxvd2VkIl0sWzUyLCJhRyIsImlzX3NlcnZlcl9zaWRlX2Rlc3RpbmF0aW9uIl0sWzUyLCJhSCIsImlzX3Nlc3Npb25fc3RhcnQiXSxbNTIsImFJIiwiaXNfc2Vzc2lvbl9zdGFydF9jb252ZXJzaW9uIl0sWzUyLCJhSiIsImlzX3NndG1fZ2FfYWRzX2NvbnZlcnNpb25fc3R1ZHlfY29udHJvbF9ncm91cCJdLFs1MiwiYUsiLCJpc19zZ3RtX3ByZWhpdCJdLFs1MiwiYUwiLCJpc19zcGxpdF9jb252ZXJzaW9uIl0sWzUyLCJhTSIsImlzX3N5biJdLFs1MiwiYU4iLCJpc190ZXN0X2V2ZW50Il0sWzUyLCJhTyIsInByZWhpdF9mb3JfcmV0cnkiXSxbNTIsImFQIiwicmVkYWN0X2Fkc19kYXRhIl0sWzUyLCJhUSIsInJlZGFjdF9jbGlja19pZHMiXSxbNTIsImFSIiwic2VuZF9jY21fcGFyYWxsZWxfcGluZyJdLFs1MiwiYVMiLCJzZW5kX3VzZXJfZGF0YV9oaXQiXSxbNTIsImFUIiwic3BlY3VsYXRpdmUiXSxbNTIsImFVIiwic3luX29yX21vZCJdLFs1MiwiYVYiLCJ0cmFuc2llbnRfZWNzaWQiXSxbNTIsImFXIiwidXNlcl9kYXRhIl0sWzUyLCJhWCIsInVzZXJfZGF0YV9mcm9tX2F1dG9tYXRpYyJdLFs1MiwiYVkiLCJ1c2VyX2RhdGFfZnJvbV9hdXRvbWF0aWNfZ2V0dGVyIl0sWzUyLCJhWiIsInVzZXJfZGF0YV9mcm9tX2NvZGUiXSxbNTIsImJBIiwidXNlcl9kYXRhX2Zyb21fbWFudWFsIl0sWzM2LFs4LCJBIixbMTUsImIiXSwiQiIsWzE1LCJjIl0sIkYiLFsxNSwiZCJdLCJNIixbMTUsImUiXSwiTiIsWzE1LCJmIl0sIk8iLFsxNSwiZyJdLCJQIixbMTUsImgiXSwiUSIsWzE1LCJpIl0sIlMiLFsxNSwiaiJdLCJUIixbMTUsImsiXSwiWiIsWzE1LCJsIl0sIkFBIixbMTUsIm0iXSwiQUIiLFsxNSwibiJdLCJBQyIsWzE1LCJvIl0sIkFEIixbMTUsInAiXSwiQUoiLFsxNSwicSJdLCJBSyIsWzE1LCJyIl0sIkFOIixbMTUsInMiXSwiQU8iLFsxNSwidCJdLCJBUCIsWzE1LCJ1Il0sIkFRIixbMTUsInYiXSwiQVIiLFsxNSwidyJdLCJBUyIsWzE1LCJ4Il0sIkFWIixbMTUsInkiXSwiQVkiLFsxNSwieiJdLCJBWiIsWzE1LCJhQSJdLCJCQSIsWzE1LCJhQiJdLCJCQyIsWzE1LCJhQyJdLCJCRCIsWzE1LCJhRCJdLCJCRSIsWzE1LCJhRSJdLCJCRiIsWzE1LCJhRiJdLCJCSyIsWzE1LCJhRyJdLCJCTCIsWzE1LCJhSCJdLCJCTSIsWzE1LCJhSSJdLCJCTiIsWzE1LCJhSiJdLCJCTyIsWzE1LCJhSyJdLCJCUSIsWzE1LCJhTCJdLCJCUiIsWzE1LCJhTSJdLCJCUyIsWzE1LCJhTiJdLCJCWSIsWzE1LCJhTyJdLCJDQiIsWzE1LCJhUCJdLCJDQyIsWzE1LCJhUSJdLCJDRSIsWzE1LCJhUiJdLCJDTiIsWzE1LCJhUyJdLCJDUSIsWzE1LCJhVCJdLCJDVCIsWzE1LCJhVSJdLCJDVSIsWzE1LCJhViJdLCJDVyIsWzE1LCJhVyJdLCJDWCIsWzE1LCJhWCJdLCJDWSIsWzE1LCJhWSJdLCJDWiIsWzE1LCJhWiJdLCJEQSIsWzE1LCJiQSJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiw0NV0sWzUyLCJjIiw0Nl0sWzUyLCJkIiw0N10sWzUyLCJlIiwxNzRdLFs1MiwiZiIsMjc2XSxbMzYsWzgsIkYiLFsxNSwiYiJdLCJHIixbMTUsImMiXSwiSCIsWzE1LCJkIl0sIlYiLFsxNSwiZSJdLCJBRCIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9lY1R5cGVzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiZnNyYyJdLFs1MiwiYyIsImZlaWQiXSxbNTIsImQiLCIwIl0sWzUyLCJlIiwiMSJdLFs1MiwiZiIsIjIiXSxbNTIsImciLCIzIl0sWzUyLCJoIiwiNCJdLFszNixbOCwiQiIsWzE1LCJjIl0sIkYiLFsxNSwiZyJdLCJEIixbMTUsImUiXSwiRSIsWzE1LCJmIl0sIkMiLFsxNSwiZCJdLCJHIixbMTUsImgiXSwiQSIsWzE1LCJiIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9mZWF0dXJlcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsNDI1XSxbNTIsImMiLDQzNV0sWzUyLCJkIiw0ODhdLFs1MiwiZSIsNDg5XSxbNTIsImYiLDQ5OF0sWzUyLCJnIiw1MDNdLFs1MiwiaCIsNTA0XSxbNTIsImkiLDUwNl0sWzUyLCJqIiw1MjNdLFs1MiwiayIsNTMyXSxbNTIsImwiLDU1M10sWzUyLCJtIiw1NjhdLFs1MiwibiIsNTc3XSxbNTIsIm8iLDU4MV0sWzUyLCJwIiw1ODNdLFs1MiwicSIsNTkyXSxbNTIsInIiLDU5NF0sWzUyLCJzIiw1OTldLFszNixbOCwiQVYiLFsxNSwiayJdLCJBRCIsWzE1LCJkIl0sIkNJIixbMTUsInEiXSwiQlYiLFsxNSwibiJdLCJCTyIsWzE1LCJtIl0sIkNLIixbMTUsInIiXSwiQ1AiLFsxNSwicyJdLCJBTSIsWzE1LCJnIl0sIkJaIixbMTUsIm8iXSwiQVQiLFsxNSwiaiJdLCJBRSIsWzE1LCJlIl0sIkFOIixbMTUsImgiXSwiTCIsWzE1LCJjIl0sIkJDIixbMTUsImwiXSwiQU8iLFsxNSwiaSJdLCJDQiIsWzE1LCJwIl0sIkFJIixbMTUsImYiXSwiSSIsWzE1LCJiIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jcm9zc0NvbnRhaW5lclNjaGVtYSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsImNvb2tpZV9kZXByZWNhdGlvbl9sYWJlbCJdLFs1MiwiYyIsInBsZCJdLFs1MiwiZCIsInNoYXJlZF91c2VyX2lkIl0sWzUyLCJlIiwic2hhcmVkX3VzZXJfaWRfcmVxdWVzdGVkIl0sWzUyLCJmIiwic2hhcmVkX3VzZXJfaWRfc291cmNlIl0sWzM2LFs4LCJCIixbMTUsImIiXSwiTiIsWzE1LCJjIl0sIlMiLFsxNSwiZCJdLCJUIixbMTUsImUiXSwiVSIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9wbGF0Zm9ybVNjaGVtYSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsMV0sWzUyLCJjIiwyXSxbNTIsImQiLDNdLFs1MiwiZSIsNF0sWzUyLCJmIiw1XSxbNTIsImciLDZdLFszNixbOCwiQSIsWzE1LCJiIl0sIkYiLFsxNSwiZyJdLCJCIixbMTUsImMiXSwiQyIsWzE1LCJkIl0sIkQiLFsxNSwiZSJdLCJFIixbMTUsImYiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2dvbGRFdmVudFVzYWdlSWQiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLDFdLFs1MiwiYyIsMl0sWzUyLCJkIiw1XSxbNTIsImUiLDZdLFs1MiwiZiIsN10sWzUyLCJnIiw4XSxbNTIsImgiLDldLFs1MiwiaSIsMTFdLFs1MiwiaiIsMTVdLFs1MiwiayIsMTZdLFs1MiwibCIsMjBdLFs1MiwibSIsMjFdLFs1MiwibiIsMjNdLFs1MiwibyIsMjRdLFs1MiwicCIsMjddLFs1MiwicSIsNDBdLFs1MiwiciIsNDFdLFszNixbOCwiTyIsWzE1LCJqIl0sIlciLFsxNSwibiJdLCJQIixbMTUsImsiXSwiWCIsWzE1LCJvIl0sIksiLFsxNSwiaSJdLCJBIixbMTUsImIiXSwiVCIsWzE1LCJsIl0sIkUiLFsxNSwiZCJdLCJGIixbMTUsImUiXSwiQiIsWzE1LCJjIl0sIkgiLFsxNSwiZyJdLCJBTiIsWzE1LCJxIl0sIkkiLFsxNSwiaCJdLCJHIixbMTUsImYiXSwiVSIsWzE1LCJtIl0sIkFPIixbMTUsInIiXSwiQUEiLFsxNSwicCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCJhZV9ibG9ja19kb3dubG9hZHMiXSxbNTIsImMiLCJhZV9ibG9ja19mb3JtIl0sWzUyLCJkIiwiYWVfYmxvY2tfaGlzdG9yeSJdLFs1MiwiZSIsImFlX2Jsb2NrX291dGJvdW5kX2NsaWNrIl0sWzUyLCJmIiwiYWVfYmxvY2tfc2Nyb2xsIl0sWzUyLCJnIiwiYWVfYmxvY2tfdmlkZW8iXSxbMzYsWzgsIkEiLFsxNSwiYiJdLCJCIixbMTUsImMiXSwiQyIsWzE1LCJkIl0sIkQiLFsxNSwiZSJdLCJFIixbMTUsImYiXSwiRiIsWzE1LCJnIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jY2RFbVNpdGVTZWFyY2hBY3Rpdml0eSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiYiIsWzQ2LCJkIiwiZSJdLFs1MiwiZiIsWzIsWzMwLFsxNSwiZCJdLCIiXSwic3BsaXQiLFs3LCIsIl1dXSxbNTMsWzQxLCJnIl0sWzMsImciLDBdLFs2MyxbNywiZyJdLFsyMyxbMTUsImciXSxbMTcsWzE1LCJmIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJnIl0sWzMsImciLFswLFsxNSwiZyJdLDFdXV0sWzQ2LFs1MyxbNTIsImgiLFsiZSIsWzIsWzE2LFsxNSwiZiJdLFsxNSwiZyJdXSwidHJpbSIsWzddXV1dLFsyMixbMjEsWzE1LCJoIl0sWzQ0XV0sWzQ2LFs1MyxbMzYsWzE1LCJoIl1dXV1dXV1dXV0sWzUwLCJjIixbNDYsImQiLCJlIiwiZiJdLFs1MiwiZyIsWzgsInNlYXJjaF90ZXJtIixbMTUsImQiXV1dLFs1MiwiaCIsWzIsWzMwLFsxNSwiZSJdLCIiXSwic3BsaXQiLFs3LCIsIl1dXSxbNTMsWzQxLCJpIl0sWzMsImkiLDBdLFs2MyxbNywiaSJdLFsyMyxbMTUsImkiXSxbMTcsWzE1LCJoIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJpIl0sWzMsImkiLFswLFsxNSwiaSJdLDFdXV0sWzQ2LFs1MyxbNTIsImoiLFsyLFsxNixbMTUsImgiXSxbMTUsImkiXV0sInRyaW0iLFs3XV1dLFs1MiwiayIsWyJmIixbMTUsImoiXV1dLFsyMixbMjEsWzE1LCJrIl0sWzQ0XV0sWzQ2LFs1MyxbNDMsWzE1LCJnIl0sWzAsInFfIixbMTUsImoiXV0sWzE1LCJrIl1dXV1dXV1dXSxbMzYsWzE1LCJnIl1dXSxbMzYsWzgsIkIiLFsxNSwiYyJdLCJBIixbMTUsImIiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2Fkd29yZHNPcmRlcklkU291cmNlIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiMSJdLFs1MiwiYyIsIjIiXSxbNTIsImQiLCIzIl0sWzM2LFs4LCJBIixbMTUsImIiXSwiQiIsWzE1LCJjIl0sIkMiLFsxNSwiZCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZnBtUGFyYW1ldGVyIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiY2UiXSxbMzYsWzgsIkIiLFsxNSwiYiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza0luaXRTZXJ2aWNlV29ya2VyIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJjIixbNDYsImQiXSxbImIiLFsxNSwiZCJdXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pbml0aWFsaXplU2VydmljZVdvcmtlciJdXSxbMzYsWzgsIkEiLFsxNSwiYyJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfYWN0aXZpdGllcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiYiIsWzQ2LCJjIiwiZCJdLFszNixbMzksWzE1LCJkIl0sWyJkIixbMTUsImMiXV0sWzE1LCJjIl1dXV0sWzM2LFs4LCJBIixbMTUsImIiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3BsYXRmb3JtRGV0ZWN0aW9uIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJvIixbNDZdLFs2OCwidyIsWzUzLFsyMixbMSxbMjgsWyJlIixbMTcsWzE1LCJoIl0sIkFJIl1dXSxbMjgsWyJlIixbMTcsWzE1LCJoIl0sIkkiXV1dXSxbNDYsWzUzLFszNixbN11dXV1dLFs1MiwidyIsWyJiIixbMTcsWzE1LCJnIl0sIk4iXV1dLFsyMixbIm4iLFsxNSwidyJdXSxbNDYsWzUzLFszNixbMTUsInciXV1dXV0sWzUyLCJ4IixbN11dLFsyMixbInAiXSxbNDYsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImoiXSwiQSJdXV1dXSxbMjIsWyJxIl0sWzQ2LFsyLFsxNSwieCJdLCJwdXNoIixbNyxbMTcsWzE1LCJqIl0sIkIiXV1dXV0sWzIyLFsiciJdLFs0NixbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaiJdLCJGIl1dXV1dLFsyMixbInUiXSxbNDYsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImoiXSwiRCJdXV1dXSxbMjIsWyJzIl0sWzQ2LFsyLFsxNSwieCJdLCJwdXNoIixbNyxbMTcsWzE1LCJqIl0sIkUiXV1dXV0sWzIyLFsidCJdLFs0NixbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaiJdLCJDIl1dXV1dLFsyMixbImwiXSxbNDYsWzUzLFsiZiIsWzE3LFsxNSwiZyJdLCJOIl0sWzE1LCJ4Il0sdHJ1ZV1dXV0sWzM2LFsxNSwieCJdXV0sWzQ2XV0sWzM2LFs3XV1dLFs1MCwicCIsWzQ2XSxbNjgsInciLFs1MyxbMzYsWzI4LFsyOCxbImMiLCJzY3JpcHRbZGF0YS1yZXF1aXJlbW9kdWxlXj1cIm1hZ2UvXCJdIl1dXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwicSIsWzQ2XSxbNjgsInciLFs1MyxbNTIsInciLFsibSIsIllYTnpaWFJ6TG5OeGRXRnlaWE53WVdObExtTnZiUzg9Il1dLFsyMixbMjgsWzE1LCJ3Il1dLFs0NixbMzYsZmFsc2VdXV0sWzM2LFsyOCxbMjgsWyJjIixbMCxbMCwic2NyaXB0W3NyY149XCIvLyIsWzE1LCJ3Il1dLCJcIl0iXV1dXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwiciIsWzQ2XSxbMjIsWzI4LFsiZSIsWzE3LFsxNSwiaCJdLCJJIl1dXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzY4LCJ3IixbNTMsWzUyLCJ3IixbIm0iLCJjMmh2Y0dsbWVTNWpiMjA9Il1dLFs1MiwieCIsWyJtIiwiYzJodmNHbG1lV05rYmk1amIyMD0iXV0sWzIyLFszMCxbMjgsWzE1LCJ3Il1dLFsyOCxbMTUsIngiXV1dLFs0NixbMzYsZmFsc2VdXV0sWzM2LFsyOCxbMjgsWyJjIixbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCwic2NyaXB0W3NyYyo9XCJjZG4uIixbMTUsInciXV0sIlwiXSwiXSwibWV0YVtwcm9wZXJ0eT1cIm9nOmltYWdlXCJdW2NvbnRlbnQqPVwiY2RuLiJdLFsxNSwidyJdXSwiXCJdLCJdLCJsaW5rW3JlbD1cInByZWNvbm5lY3RcIl1baHJlZio9XCJjZG4uIl0sWzE1LCJ3Il1dLCJcIl0sIl0sImxpbmtbcmVsPVwicHJlY29ubmVjdFwiXVtocmVmKj1cImZvbnRzLiJdLFsxNSwieCJdXSwiXCJdLCJdLCJsaW5rW3JlbD1cInByZWNvbm5lY3RcIl1baHJlZio9XCJpdGVyYWJsZS1zaG9waWZ5XCJdLCJdLCJsaW5rW3JlbD1cInByZWNvbm5lY3RcIl1baHJlZio9XCJ2LiJdLFsxNSwidyJdXSwiXCJdIl1dXV1dXSxbNDZdXSxbMzYsZmFsc2VdXSxbNTAsInMiLFs0Nl0sWzY4LCJ3IixbNTMsWzUyLCJ3IixbImQiLCJwcm90b2NvbCJdXSxbNTIsIngiLFsiZCIsImhvc3QiXV0sWzUyLCJ5IixbMzksWzEsWzE1LCJ3Il0sWzE1LCJ4Il1dLFswLFswLFswLFswLCJbc3JjXj1cIiIsWzE1LCJ3Il1dLCI6Ly8iXSxbMTUsIngiXV0sIi93cC1jb250ZW50XCJdLCJdLCIiXV0sWzUyLCJ6IixbIm0iLCJMbmR2Y21Sd2NtVnpjeTVqYjIwPSJdXSxbNTIsImFBIixbIm0iLCJMeTl6TG5jdWIzSm4iXV0sWzIyLFszMCxbMjgsWzE1LCJ6Il1dLFsyOCxbMTUsImFBIl1dXSxbNDYsWzM2LGZhbHNlXV1dLFszNixbMzAsWyJ2IixbMTUsIngiXSxbMTUsInoiXV0sWzI4LFsyOCxbImMiLFswLFswLFswLFswLFsxNSwieSJdLCJtZXRhW25hbWU9XCJnZW5lcmF0b3JcIl1bY29udGVudF49XCJXb3JkUHJlc3MgXCJdLCJdLCJsaW5rW3JlbD1cImRucy1wcmVmZXRjaFwiXVtocmVmPVwiIl0sWzE1LCJhQSJdXSwiXCJdIl1dXV1dXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJ0IixbNDZdLFs2OCwidyIsWzUzLFs1MiwidyIsWzI4LFsyOCxbImMiLFswLCJbY2xhc3MqPVwid29vY29tbWVyY2VcIl0sIiwibWV0YVtuYW1lPVwiZ2VuZXJhdG9yXCJdW2NvbnRlbnRePVwiV29vQ29tbWVyY2UgXCJdIl1dXV1dLFsyMixbMTUsInciXSxbNDYsWzUzXV1dLFszNixbMTUsInciXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwidSIsWzQ2XSxbNjgsInciLFs1MyxbNTIsInciLFsyOCxbMjgsWyJjIixbMCxbMCwic2NyaXB0W3NyYyo9XCJ3b29jb21tZXJjZVwiXSwiLCJsaW5rW2hyZWYqPVwid29vY29tbWVyY2VcIl0sIl0sIltjbGFzc3w9XCJ3b29jb21tZXJjZVwiXSJdXV1dXSxbMjIsWzE1LCJ3Il0sWzQ2LFs1M11dXSxbMzYsWzE1LCJ3Il1dXSxbNDZdXSxbMzYsZmFsc2VdXSxbNTAsInYiLFs0NiwidyIsIngiXSxbMzYsWzEsWzE5LFsxNyxbMTUsInciXSwibGVuZ3RoIl0sWzE3LFsxNSwieCJdLCJsZW5ndGgiXV0sWzIwLFsyLFsxNSwidyJdLCJzdWJzdHJpbmciLFs3LFszNyxbMTcsWzE1LCJ3Il0sImxlbmd0aCJdLFsxNyxbMTUsIngiXSwibGVuZ3RoIl1dLFsxNyxbMTUsInciXSwibGVuZ3RoIl1dXSxbMTUsIngiXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5RnJvbUNyb3NzQ29udGFpbmVyRGF0YSJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmdldEZpcnN0RWxlbWVudEJ5Q3NzU2VsZWN0b3IiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJnZXRVcmwiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0SW5Dcm9zc0NvbnRhaW5lckRhdGEiXV0sWzUyLCJnIixbMTUsIl9fbW9kdWxlX2Nyb3NzQ29udGFpbmVyU2NoZW1hIl1dLFs1MiwiaCIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIl1dLFs1MiwiaiIsWzE1LCJfX21vZHVsZV9wbGF0Zm9ybVNjaGVtYSJdXSxbNTIsImsiLFsicmVxdWlyZSIsImdldFR5cGUiXV0sWzUyLCJsIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0RvbVJlYWR5Il1dLFs1MiwibSIsWyJyZXF1aXJlIiwiZnJvbUJhc2U2NCJdXSxbNTIsIm4iLFs1MSwiIixbNywidyJdLFszNixbMjAsWyJrIixbMTUsInciXV0sImFycmF5Il1dXV0sWzM2LFs4LCJBIixbMTUsIm8iXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2NjZEVtRG93bmxvYWRBY3Rpdml0eSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiaCIsWzQ2LCJpIiwiaiJdLFsiYyIsWzE1LCJpIl0sWzUxLCIiLFs3LCJrIl0sWzIyLFszMCxbMjEsWzIsWzE1LCJrIl0sImdldEV2ZW50TmFtZSIsWzddXSxbMTUsImciXV0sWzI4LFsyLFsxNSwiayJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJUIl1dXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWyJiIixbMTUsImkiXSxbMTUsImYiXV0sWzQ2LFs1MyxbMixbMTUsImsiXSwiYWJvcnQiLFs3XV0sWzM2XV1dXSxbMixbMTUsImsiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiQ1EiXSxmYWxzZV1dLFsyMixbMjgsWzE1LCJqIl1dLFs0NixbNTMsWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJsaW5rX2lkIixbNDRdXV0sWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJsaW5rX3VybCIsWzQ0XV1dLFsyLFsxNSwiayJdLCJzZXRIaXREYXRhIixbNywibGlua190ZXh0IixbNDRdXV0sWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJmaWxlX25hbWUiLFs0NF1dXSxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsImZpbGVfZXh0ZW5zaW9uIixbNDRdXV1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJmIixbMTcsWzE1LCJlIl0sIkEiXV0sWzUyLCJnIiwiZmlsZV9kb3dubG9hZCJdLFszNixbOCwiQSIsWzE1LCJoIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9lbmhhbmNlZE1lYXN1cmVtZW50IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJlIixbNDYsImciXSxbNTIsImgiLFsiYiJdXSxbNTIsImkiLFs3XV0sWzUzLFs0MSwiaiJdLFszLCJqIiwwXSxbNjMsWzcsImoiXSxbMjMsWzE1LCJqIl0sWzE3LFsxNSwiaCJdLCJsZW5ndGgiXV0sWzMzLFsxNSwiaiJdLFszLCJqIixbMCxbMTUsImoiXSwxXV1dLFs0NixbNTMsWzUyLCJrIixbMTYsWzE1LCJoIl0sWzE1LCJqIl1dXSxbMjIsWyJkIixbMTUsImciXSxbMTUsImsiXV0sWzQ2LFs1MyxbMixbMTUsImkiXSwicHVzaCIsWzcsWzE1LCJrIl1dXV1dXV1dXV0sWzM2LFsxNSwiaSJdXV0sWzUwLCJmIixbNDYsImciLCJoIl0sWzUyLCJpIixbMzAsWzE1LCJoIl0sWzhdXV0sWzQzLFsxNSwiaSJdLFsxNyxbMTUsImMiXSwiVCJdLHRydWVdLFs0MyxbMTUsImkiXSxbMTcsWzE1LCJjIl0sIkNRIl0sdHJ1ZV0sWzQzLFsxNSwiaSJdLFsxNyxbMTUsImMiXSwiWiJdLCJhIl0sWzQzLFsxNSwiZyJdLCJldmVudE1ldGFkYXRhIixbMTUsImkiXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0RGVzdGluYXRpb25JZHMiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY2xhaW1EZXN0aW5hdGlvbiJdXSxbMzYsWzgsIkEiLFsxNSwiZSJdLCJCIixbMTUsImYiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2NjZEVtRm9ybUFjdGl2aXR5IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJuIixbNDYsIm8iLCJwIiwicSJdLFs1MiwiciIsWzIwLFsyLFsxNSwibyJdLCJpbmRleE9mIixbNywiQVctIl1dLDBdXSxbMjIsWzIwLFsxNSwicCJdLFs0NF1dLFs0NixbNTMsWzMsInAiLFsxNSwiciJdXV1dXSxbImMiLFsxNSwibyJdLFs1MSwiIixbNywicyJdLFs1MiwidCIsWzIsWzE1LCJzIl0sImdldEV2ZW50TmFtZSIsWzddXV0sWzUyLCJ1IixbMzAsWzIwLFsxNSwidCJdLFsxNSwibCJdXSxbMjAsWzE1LCJ0Il0sWzE1LCJrIl1dXV0sWzIyLFszMCxbMjgsWzE1LCJ1Il1dLFsyOCxbMixbMTUsInMiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiVCJdXV1dXSxbNDYsWzUzLFszNl1dXV0sWzIyLFsiYiIsWzE1LCJvIl0sWzE1LCJqIl1dLFs0NixbNTMsWzIsWzE1LCJzIl0sImFib3J0IixbN11dLFszNl1dXV0sWzIyLFsxLFsyOCxbMTUsInAiXV0sWzIsWzE1LCJzIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIkFKIl1dXV0sWzQ2LFs1MyxbMixbMTUsInMiXSwiYWJvcnQiLFs3XV0sWzM2XV1dXSxbNTIsInYiLFsyLFsxNSwicyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJBQSJdXV1dLFsyMixbMSxbMjgsWzE1LCJyIl1dLFsyMCxbMTUsInYiXSxbMTUsIm0iXV1dLFs0NixbNTMsWzIsWzE1LCJzIl0sImFib3J0IixbN11dLFszNl1dXV0sWzIyLFsyOCxbImgiLFsxNyxbMTUsImkiXSwiQloiXV1dLFs0NixbNTMsWzIyLFsyMCxbMTUsInYiXSxbMTUsIm0iXV0sWzQ2LFs1MyxbMixbMTUsInMiXSwiYWJvcnQiLFs3XV0sWzM2XV1dLFs0NixbMjIsWzIwLFsxNSwidiJdLFsxNSwiayJdXSxbNDYsWzUzLFsyLFsxNSwicyJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJTIl0sWzQ0XV1dXV1dXV1dXV0sWzIsWzE1LCJzIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIkNRIl0sZmFsc2VdXSxbMjIsWzEsWzE1LCJ2Il0sWzE1LCJyIl1dLFs0NixbNTMsWzQxLCJ3Il0sWzMsInciLFsxNyxbMTUsImciXSwiQyJdXSxbNDEsIngiXSxbMjIsWzIwLFsxNSwidiJdLFsxNSwibCJdXSxbNDYsWzUzLFszLCJ3IixbMTcsWzE1LCJnIl0sIkQiXV1dXSxbNDYsWzIyLFsyMCxbMTUsInYiXSxbMTUsImsiXV0sWzQ2LFs1MyxbMywidyIsWzE3LFsxNSwiZyJdLCJFIl1dLFszLCJ4IixbMixbMTUsInMiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiUyJdXV1dXV0sWzQ2LFsyMixbMjAsWzE1LCJ2Il0sWzE1LCJtIl1dLFs0NixbNTMsWzMsInciLFsxNyxbMTUsImciXSwiRiJdXSxbMywieCIsWzIsWzE1LCJzIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIlMiXV1dXV1dXV1dXV0sWzUyLCJ5IixbOF1dLFs0MyxbMTUsInkiXSxbMTcsWzE1LCJnIl0sIkEiXSxbMTUsInciXV0sWzIyLFsxNSwieCJdLFs0NixbNTMsWzQzLFsxNSwieSJdLFsxNyxbMTUsImciXSwiQiJdLFsxNSwieCJdXV1dXSxbMixbMTUsInMiXSwibWVyZ2VIaXREYXRhRm9yS2V5IixbNyxbMTcsWzE1LCJmIl0sIkZUIl0sWzE1LCJ5Il1dXV1dXSxbMjIsWzI4LFsxNSwicSJdXSxbNDYsWzUzLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZm9ybV9pZCIsWzQ0XV1dLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZm9ybV9uYW1lIixbNDRdXV0sWzIsWzE1LCJzIl0sInNldEhpdERhdGEiLFs3LCJmb3JtX2Rlc3RpbmF0aW9uIixbNDRdXV0sWzIsWzE1LCJzIl0sInNldEhpdERhdGEiLFs3LCJmb3JtX2xlbmd0aCIsWzQ0XV1dLFsyMixbMjAsWzE1LCJ0Il0sWzE1LCJrIl1dLFs0NixbNTMsWzIsWzE1LCJzIl0sInNldEhpdERhdGEiLFs3LCJmb3JtX3N1Ym1pdF90ZXh0IixbNDRdXV1dXSxbNDYsWzIyLFsyMCxbMTUsInQiXSxbMTUsImwiXV0sWzQ2LFs1MyxbMixbMTUsInMiXSwic2V0SGl0RGF0YSIsWzcsImZpcnN0X2ZpZWxkX2lkIixbNDRdXV0sWzIsWzE1LCJzIl0sInNldEhpdERhdGEiLFs3LCJmaXJzdF9maWVsZF9uYW1lIixbNDRdXV0sWzIsWzE1LCJzIl0sInNldEhpdERhdGEiLFs3LCJmaXJzdF9maWVsZF90eXBlIixbNDRdXV0sWzIsWzE1LCJzIl0sInNldEhpdERhdGEiLFs3LCJmaXJzdF9maWVsZF9wb3NpdGlvbiIsWzQ0XV1dXV1dXV1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJmIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJnIixbMTUsIl9fbW9kdWxlX2VjVHlwZXMiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImoiLFsxNyxbMTUsImUiXSwiQiJdXSxbNTIsImsiLCJmb3JtX3N1Ym1pdCJdLFs1MiwibCIsImZvcm1fc3RhcnQiXSxbNTIsIm0iLCJjbGljayJdLFszNixbOCwiQSIsWzE1LCJuIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jY2RFbU91dGJvdW5kQ2xpY2tBY3Rpdml0eSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiaCIsWzQ2LCJpIiwiaiJdLFsiYyIsWzE1LCJpIl0sWzUxLCIiLFs3LCJrIl0sWzIyLFszMCxbMjEsWzIsWzE1LCJrIl0sImdldEV2ZW50TmFtZSIsWzddXSxbMTUsImciXV0sWzI4LFsyLFsxNSwiayJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJUIl1dXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWyJiIixbMTUsImkiXSxbMTUsImYiXV0sWzQ2LFs1MyxbMixbMTUsImsiXSwiYWJvcnQiLFs3XV0sWzM2XV1dXSxbMixbMTUsImsiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiQ1EiXSxmYWxzZV1dLFsyMixbMjgsWzE1LCJqIl1dLFs0NixbNTMsWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJsaW5rX2lkIixbNDRdXV0sWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJsaW5rX2NsYXNzZXMiLFs0NF1dXSxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsImxpbmtfdXJsIixbNDRdXV0sWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJsaW5rX2RvbWFpbiIsWzQ0XV1dLFsyLFsxNSwiayJdLCJzZXRIaXREYXRhIixbNywib3V0Ym91bmQiLFs0NF1dXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImYiLFsxNyxbMTUsImUiXSwiRCJdXSxbNTIsImciLCJjbGljayJdLFszNixbOCwiQSIsWzE1LCJoIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jY2RFbVBhZ2VWaWV3QWN0aXZpdHkiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImoiLFs0NiwiayJdLFsiYyIsWzE1LCJrIl0sWzUxLCIiLFs3LCJsIl0sWzIyLFszMCxbMjEsWzIsWzE1LCJsIl0sImdldEV2ZW50TmFtZSIsWzddXSxbMTUsImkiXV0sWzI4LFsyLFsxNSwibCJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJUIl1dXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWyJiIixbMTUsImsiXSxbMTUsImgiXV0sWzQ2LFs1MyxbMixbMTUsImwiXSwiYWJvcnQiLFs3XV0sWzM2XV1dXSxbMjIsWzI4LFsyLFsxNSwibCJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJCTyJdXV1dLFs0NixbNTMsWyJkIixbMTUsImsiXSxbMTcsWzE1LCJmIl0sIkhFIl0sWzIsWzE1LCJsIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImYiXSwiSEUiXV1dXV1dXSxbMixbMTUsImwiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiQ1EiXSxmYWxzZV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLnNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJmIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJnIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiaCIsWzE3LFsxNSwiZyJdLCJDIl1dLFs1MiwiaSIsWzE3LFsxNSwiZiJdLCJBSyJdXSxbMzYsWzgsIkEiLFsxNSwiaiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY2NkRW1TY3JvbGxBY3Rpdml0eSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiaCIsWzQ2LCJpIiwiaiJdLFsiYyIsWzE1LCJpIl0sWzUxLCIiLFs3LCJrIl0sWzIyLFszMCxbMjEsWzIsWzE1LCJrIl0sImdldEV2ZW50TmFtZSIsWzddXSxbMTUsImciXV0sWzI4LFsyLFsxNSwiayJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJUIl1dXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWyJiIixbMTUsImkiXSxbMTUsImYiXV0sWzQ2LFs1MyxbMixbMTUsImsiXSwiYWJvcnQiLFs3XV0sWzM2XV1dXSxbMixbMTUsImsiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiQ1EiXSxmYWxzZV1dLFsyMixbMjgsWzE1LCJqIl1dLFs0NixbNTMsWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJwZXJjZW50X3Njcm9sbGVkIixbNDRdXV1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJmIixbMTcsWzE1LCJlIl0sIkUiXV0sWzUyLCJnIiwic2Nyb2xsIl0sWzM2LFs4LCJBIixbMTUsImgiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2NjZEVtVmlkZW9BY3Rpdml0eSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiaiIsWzQ2LCJrIiwibCJdLFsiYyIsWzE1LCJrIl0sWzUxLCIiLFs3LCJtIl0sWzUyLCJuIixbMixbMTUsIm0iXSwiZ2V0RXZlbnROYW1lIixbN11dXSxbNTIsIm8iLFszMCxbMzAsWzIwLFsxNSwibiJdLFsxNSwiZyJdXSxbMjAsWzE1LCJuIl0sWzE1LCJoIl1dXSxbMjAsWzE1LCJuIl0sWzE1LCJpIl1dXV0sWzIyLFszMCxbMjgsWzE1LCJvIl1dLFsyOCxbMixbMTUsIm0iXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiVCJdXV1dXSxbNDYsWzUzLFszNl1dXV0sWzIyLFsiYiIsWzE1LCJrIl0sWzE1LCJmIl1dLFs0NixbNTMsWzIsWzE1LCJtIl0sImFib3J0IixbN11dLFszNl1dXV0sWzIsWzE1LCJtIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIkNRIl0sZmFsc2VdXSxbMjIsWzI4LFsxNSwibCJdXSxbNDYsWzUzLFsyLFsxNSwibSJdLCJzZXRIaXREYXRhIixbNywidmlkZW9fY3VycmVudF90aW1lIixbNDRdXV0sWzIsWzE1LCJtIl0sInNldEhpdERhdGEiLFs3LCJ2aWRlb19kdXJhdGlvbiIsWzQ0XV1dLFsyLFsxNSwibSJdLCJzZXRIaXREYXRhIixbNywidmlkZW9fcGVyY2VudCIsWzQ0XV1dLFsyLFsxNSwibSJdLCJzZXRIaXREYXRhIixbNywidmlkZW9fcHJvdmlkZXIiLFs0NF1dXSxbMixbMTUsIm0iXSwic2V0SGl0RGF0YSIsWzcsInZpZGVvX3RpdGxlIixbNDRdXV0sWzIsWzE1LCJtIl0sInNldEhpdERhdGEiLFs3LCJ2aWRlb191cmwiLFs0NF1dXSxbMixbMTUsIm0iXSwic2V0SGl0RGF0YSIsWzcsInZpc2libGUiLFs0NF1dXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImYiLFsxNyxbMTUsImUiXSwiRiJdXSxbNTIsImciLCJ2aWRlb19zdGFydCJdLFs1MiwiaCIsInZpZGVvX3Byb2dyZXNzIl0sWzUyLCJpIiwidmlkZW9fY29tcGxldGUiXSxbMzYsWzgsIkEiLFsxNSwiaiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NldEdwcFBhcmFtcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZCIsWzQ2LCJlIl0sWzUyLCJmIixbImIiXV0sWzIyLFsxNixbMTUsImYiXSxbMTcsWzE1LCJjIl0sIkZaIl1dLFs0NixbNTMsWzIsWzE1LCJlIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImMiXSwiRloiXSxbMTYsWzE1LCJmIl0sWzE3LFsxNSwiYyJdLCJGWiJdXV1dXV1dLFsyMixbMTYsWzE1LCJmIl0sWzE3LFsxNSwiYyJdLCJGWSJdXSxbNDYsWzUzLFsyLFsxNSwiZSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJjIl0sIkZZIl0sWzE2LFsxNSwiZiJdLFsxNyxbMTUsImMiXSwiRlkiXV1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcml2YWN5U3RyaW5ncyJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiZCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NldFRlc3RIaXRQYXJhbXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImYiLFs0NiwiZyJdLFsyMixbMixbMTUsImciXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiQlMiXV1dLFs0NixbNTMsWzIsWzE1LCJnIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImQiXSwiSVAiXSwiMSJdXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzM2LFs4LCJBIixbMTUsImYiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3dlYkFkc1Rhc2tzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJqIixbNDYsIm0iXSxbNTIsIm4iLFs4XV0sWzQzLFsxNSwibiJdLFsxNyxbMTUsImQiXSwiQiJdLFsiZSIsWzE3LFsxNSwiZCJdLCJCIl1dXSxbNDMsWzE1LCJuIl0sWzE3LFsxNSwiZCJdLCJDIl0sWyJlIixbMTcsWzE1LCJkIl0sIkMiXV1dLFs0MyxbMTUsIm4iXSxbMTcsWzE1LCJkIl0sIkEiXSxbImMiLFsxNSwibSJdXV0sWzIsWzE1LCJtIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJpIl0sIk0iXSxbMTUsIm4iXV1dXSxbNTAsImsiLFs0NiwibSJdLFs1MiwibiIsWzMwLFsyLFsxNSwibSJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaSJdLCJNIl1dXSxbOF1dXSxbMjIsWzI4LFsxNixbMTUsIm4iXSxbMTcsWzE1LCJkIl0sIkMiXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWyJoIl0sWzQ2LFs1MyxbMixbMTUsIm0iXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJDVSJdLCIyIl1dXV1dXSxbNTAsImwiLFs0NiwibSJdLFsyMixbImciXSxbNDYsWzUzLFsyLFsxNSwibSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaSJdLCJCRSJdLHRydWVdXSxbMixbMTUsIm0iXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJKWSJdLCJ3d3cuZ29vZ2xlLmNvbSJdXV1dLFs0NixbNTMsWzIsWzE1LCJtIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImQiXSwiSlkiXSwid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIl1dXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0QWxsb3dBZFBlcnNvbmFsaXphdGlvbiJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImUiLFsicmVxdWlyZSIsImlzQ29uc2VudEdyYW50ZWQiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNHY3BCcm93c2VyIl1dLFs1MiwiaCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNTYWZhcmlQY21FbGlnaWJsZUJyb3dzZXIiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFszNixbOCwiQiIsWzE1LCJrIl0sIkEiLFsxNSwiaiJdLCJDIixbMTUsImwiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2NvbW1vbkFkc1Rhc2tzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJqIixbNDYsInQiXSxbNTIsInUiLFsiZCJdXSxbMjIsWzIwLFsxNSwidSJdLCJVUy1DTyJdLFs0NixbNTMsWzIsWzE1LCJ0Il0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiRlUiXSwxXV1dXV1dLFs1MCwiayIsWzQ2LCJ0Il0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiSVUiXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkpWIl1dXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJERiJdXV0sWzIyLFsiZiIsWzE3LFsxNSwiYiJdLCJBTiJdXSxbNDYsWzUzLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkVLIl1dXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJFVSJdXV1dXV1dLFs1MCwibCIsWzQ2LCJ0Il0sWzIyLFsyMSxbMixbMTUsInQiXSwiZ2V0RXZlbnROYW1lIixbN11dLFsxNyxbMTUsImgiXSwiQUEiXV0sWzQ2LFs1MyxbMzZdXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkNCIl1dXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJDQyJdXV0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiQloiXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkNBIl1dXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJCWSJdXV0sWzIsWzE1LCJ0Il0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiQ0QiXSxbMTcsWzE1LCJoIl0sIkFBIl1dXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJHViJdXV0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiR1QiXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkdVIl1dXV0sWzUwLCJtIixbNDYsInQiXSxbMjIsWzIsWzE1LCJ0Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJpIl0sIk4iXV1dLFs0NixbNTMsWzIsWzE1LCJ0Il0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiRiJdLHRydWVdXV1dXV0sWzUwLCJuIixbNDYsInQiXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJHWiJdXV0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiREciXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkVHIl1dXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJERSJdXV0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiRUEiXV1dXSxbNTAsIm8iLFs0NiwidCJdLFs1MiwidSIsWzIsWzE1LCJ0Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJpIl0sIk0iXV1dXSxbMjIsWzE1LCJ1Il0sWzQ2LFs1MyxbNTIsInYiLFsxLFsxNixbMTUsInUiXSxbMTcsWzE1LCJoIl0sIkMiXV0sWzE2LFsxNSwidSJdLFsxNyxbMTUsImgiXSwiQiJdXV1dLFsyLFsxNSwidCJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaSJdLCJDQyJdLFsxLFsyOCxbMjgsWzIsWzE1LCJ0Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJpIl0sIkNCIl1dXV1dLFsyOCxbMTUsInYiXV1dXV1dXV1dLFs1MCwicCIsWzQ2LCJ0Il0sWzUyLCJ1IixbMixbMTUsInQiXSwiZ2V0RnJvbUV2ZW50Q29udGV4dCIsWzcsWzE3LFsxNSwiaCJdLCJIVCJdXV1dLFsyMixbMzAsWzIwLFsxNSwidSJdLHRydWVdLFsyMCxbMTUsInUiXSxmYWxzZV1dLFs0NixbNTMsWzIsWzE1LCJ0Il0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiSFQiXSxbMTUsInUiXV1dXV1dLFsyMixbMjAsWzIsWzE1LCJ0Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJpIl0sIkYiXV1dLGZhbHNlXSxbNDYsWzUzLFsyLFsxNSwidCJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIktEIl0sdHJ1ZV1dXV0sWzQ2LFs1MyxbNTIsInYiLFsyLFsxNSwidCJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaSJdLCJNIl1dXV0sWzIyLFsxNSwidiJdLFs0NixbNTMsWzIsWzE1LCJ0Il0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiS0QiXSxbMjgsWzE2LFsxNSwidiJdLFsxNyxbMTUsImgiXSwiQSJdXV1dXV1dXV1dXV0sWzUwLCJxIixbNDYsInQiXSxbMjIsWyJjIixbMixbMTUsInQiXSwiZ2V0RGVzdGluYXRpb25JZCIsWzddXSwiZ29vZ2xlX25nIl0sWzQ2LFs1MyxbMixbMTUsInQiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJGVSJdLHRydWVdXV1dXSxbMjIsWyJjIixbMixbMTUsInQiXSwiZ2V0RGVzdGluYXRpb25JZCIsWzddXSwiZ29vZ2xlX29ubyJdLFs0NixbNTMsWzIsWzE1LCJ0Il0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiRlYiXSx0cnVlXV1dXV1dLFs1MCwiciIsWzQ2LCJ0Il0sWzIyLFsyLFsxNSwidCJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaSJdLCJBWSJdXV0sWzQ2LFs1MyxbMixbMTUsInQiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJKWiJdLHRydWVdXV1dXV0sWzUwLCJzIixbNDYsInQiXSxbMjIsWyJlIixbMTUsInQiXV0sWzQ2LFs1MyxbMixbMTUsInQiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJETiJdLHRydWVdXV1dXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UmVnaW9uQ29kZSJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLmlzRGVidWdNb2RlIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImciLFsicmVxdWlyZSIsImludGVybmFsLnNjcnViVXJsUGFyYW1zIl1dLFs1MiwiaCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbMzYsWzgsIkIiLFsxNSwiayJdLCJDIixbMTUsImwiXSwiSSIsWzE1LCJyIl0sIkEiLFsxNSwiaiJdLCJFIixbMTUsIm4iXSwiRCIsWzE1LCJtIl0sIkoiLFsxNSwicyJdLCJIIixbMTUsInEiXSwiRyIsWzE1LCJwIl0sIkYiLFsxNSwibyJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza0FkZENvb2tpZURlcHJlY2F0aW9uTGFiZWwiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImYiLFs0NiwiZyJdLFs0MSwiaCJdLFszLCJoIixbNDRdXSxbNTIsImkiLFsyLFsxNSwiZyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJNIl1dXV0sWzIyLFsxLFsxNSwiaSJdLFsxNixbMTUsImkiXSxbMTcsWzE1LCJkIl0sIkIiXV1dLFs0NixbNTMsWzMsImgiLFsiYiIsWzE3LFsxNSwiYyJdLCJCIl1dXV1dLFs0NixbNTMsWzMsImgiLCJkZW5pZWQiXV1dXSxbMjIsWzI5LFsxNSwiaCJdLFs0NV1dLFs0NixbNTMsWzIsWzE1LCJnIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImQiXSwiQ1ciXSxbMTUsImgiXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmNvcHlGcm9tQ3Jvc3NDb250YWluZXJEYXRhIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9jcm9zc0NvbnRhaW5lclNjaGVtYSJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzM2LFs4LCJBIixbMTUsImYiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tBZGREZXZlbG9wZXJJZCIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZCIsWzQ2LCJlIl0sWzUyLCJmIixbImIiLFsxNSwiZSJdXV0sWzY1LCJnIixbNyxbMTcsWzE1LCJjIl0sIktKIl0sWzE3LFsxNSwiYyJdLCJFSiJdXSxbNDYsWzUzLFsyLFsxNSwiZSJdLCJzZXRIaXREYXRhIixbNyxbMTUsImciXSxbMTYsWzE1LCJmIl0sWzE1LCJnIl1dXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0RGV2ZWxvcGVySWRzIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJkIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrQWRkRXZlbnRQcm92ZW5hbmNlIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJmIixbNDYsImciXSxbMjIsWzI4LFsyLFsxNSwiZyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJaIl1dXV0sWzQ2LFs1MyxbMzZdXV1dLFsyLFsxNSwiZyJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJiIl0sIkVPIl0sWzIsWzE1LCJnIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIloiXV1dXV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrQWRkVWFjaFBhcmFtcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZSIsWzQ2LCJmIl0sWzIyLFsyOCxbImQiLCJnZXRfdXNlcl9hZ2VudCJdXSxbNDYsWzM2XV1dLFs1MiwiZyIsWyJiIl1dLFsyMixbMjgsWzE1LCJnIl1dLFs0NixbMzZdXV0sWzUyLCJoIixbNyxbMTcsWzE1LCJjIl0sIkpCIl0sWzE3LFsxNSwiYyJdLCJKQyJdLFsxNyxbMTUsImMiXSwiSkQiXSxbMTcsWzE1LCJjIl0sIkpFIl0sWzE3LFsxNSwiYyJdLCJKRiJdLFsxNyxbMTUsImMiXSwiSkciXSxbMTcsWzE1LCJjIl0sIkpIIl0sWzE3LFsxNSwiYyJdLCJKSSJdXV0sWzY1LCJpIixbMTUsImgiXSxbNDYsWzUzLFsyLFsxNSwiZiJdLCJzZXRIaXREYXRhIixbNyxbMTUsImkiXSxbMTYsWzE1LCJnIl0sWzE1LCJpIl1dXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0VXNlckFnZW50Q2xpZW50SGludHMiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJxdWVyeVBlcm1pc3Npb24iXV0sWzM2LFs4LCJBIixbMTUsImUiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZW5kQWRzSGl0cyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZSIsWzQ2LCJmIl0sWyJiIixbMTUsImYiXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwudGFza1NlbmRBZHNIaXRzIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIl1dLFszNixbOCwiQSIsWzE1LCJlIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0QWRzUGFnZVBhcmFtcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwibyIsWzQ2LCJxIl0sWzIyLFsyLFsxNSwicSJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJOIl1dXSxbNDYsWzUzLFszNl1dXV0sWzUyLCJyIixbImwiLCJnZXRfdXJsIl1dLFs1MiwicyIsWzIsWzE1LCJxIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiR0UiXV1dXSxbMixbMTUsInEiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJHRSJdLFsxNSwicyJdXV0sWzUyLCJ0IixbMixbMTUsInEiXSwiZ2V0RnJvbUV2ZW50Q29udGV4dCIsWzcsWzE3LFsxNSwiaCJdLCJLSCJdXV1dLFs0MSwidSJdLFszLCJ1IixbMTUsInQiXV0sWzIyLFsxLFsyOCxbMTUsInUiXV0sWzE1LCJyIl1dLFs0NixbNTMsWzIyLFsyMCxbMTUsInMiXSxbMTcsWzE1LCJiIl0sIlNBTUVfRE9NQUlOX0lGUkFNSU5HIl1dLFs0NixbNTMsWzMsInUiLFsiZiJdXV1dLFs0NixbNTMsWzMsInUiLFsiZyJdXV1dXV1dXSxbMixbMTUsInEiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJLSCJdLFsicCIsWzE1LCJ1Il1dXV0sWzIyLFsibCIsImdldF9yZWZlcnJlciJdLFs0NixbNTMsWzIsWzE1LCJxIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiSEUiXSxbImMiXV1dXV1dLFsyMixbImwiLCJyZWFkX3RpdGxlIl0sWzQ2LFs1MyxbMixbMTUsInEiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJIRiJdLFsiayJdXV1dXV0sWzIsWzE1LCJxIl0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiR00iXV1dLFs1MiwidiIsWyJkIl1dLFsyLFsxNSwicSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkhYIl0sWzAsWzAsWyJpIixbMTcsWzE1LCJ2Il0sIndpZHRoIl1dLCJ4Il0sWyJpIixbMTcsWzE1LCJ2Il0sImhlaWdodCJdXV1dXSxbNTIsInciLFsxLFsibSIsWzE3LFsxNSwibiJdLCJDQiJdXSxbMjgsWzI4LFsxNSwidCJdXV1dXSxbMjIsWzE1LCJyIl0sWzQ2LFs1MyxbNTIsIngiLFsiZSJdXSxbMjIsWzEsWzE1LCJ4Il0sWzIxLFsxNSwieCJdLFsxNSwidSJdXV0sWzQ2LFs1MyxbNDEsInkiXSxbMywieSIsWyJwIixbMTUsIngiXV1dLFsyMixbMTUsInciXSxbNDYsWzUzLFszLCJ5IixbMTYsWzIsWzE1LCJ5Il0sInNwbGl0IixbNywiPyJdXSwwXV1dXV0sWzIsWzE1LCJxIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiSVIiXSxbMTUsInkiXV1dXV1dXV1dXSxbNTAsInAiLFs0NiwicSJdLFsyMixbMjgsWzE1LCJxIl1dLFs0NixbMzYsIiJdXV0sWzUyLCJyIixbImkiLFsxNSwicSJdXV0sWzUyLCJzIixbMixbMTUsInIiXSwic3Vic3RyaW5nIixbNywwLDUxMl1dXSxbNTIsInQiLFsyLFsxNSwicyJdLCJpbmRleE9mIixbNywiIyJdXV0sWzIyLFsyMCxbMTUsInQiXSxbMjcsMV1dLFs0NixbNTMsWzM2LFsxNSwicyJdXV1dLFs0NixbNTMsWzM2LFsyLFsxNSwicyJdLCJzdWJzdHJpbmciLFs3LDAsWzE1LCJ0Il1dXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuSWZyYW1pbmdTdGF0ZVNjaGVtYSJdXSxbNTIsImMiLFsicmVxdWlyZSIsImdldFJlZmVycmVyVXJsIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0U2NyZWVuRGltZW5zaW9ucyJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLmdldFRvcFNhbWVEb21haW5VcmwiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRUb3BXaW5kb3dVcmwiXV0sWzUyLCJnIixbInJlcXVpcmUiLCJnZXRVcmwiXV0sWzUyLCJoIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJpIixbInJlcXVpcmUiLCJtYWtlU3RyaW5nIl1dLFs1MiwiaiIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImsiLFsicmVxdWlyZSIsInJlYWRUaXRsZSJdXSxbNTIsImwiLFsicmVxdWlyZSIsInF1ZXJ5UGVybWlzc2lvbiJdXSxbNTIsIm0iLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJuIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFszNixbOCwiQSIsWzE1LCJvIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0QXVpZFBhcmFtIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJlIixbNDYsImYiXSxbNTIsImciLFszMCxbMixbMTUsImYiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiTSJdXV0sWzhdXV0sWzIyLFszMCxbMzAsWzI4LFsyLFsxNSwiZiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJPIl1dXV0sWzI4LFsxNixbMTUsImciXSxbMTcsWzE1LCJjIl0sIkIiXV1dXSxbMjgsWzE2LFsxNSwiZyJdLFsxNyxbMTUsImMiXSwiQyJdXV1dLFs0NixbNTMsWzM2XV1dXSxbNTIsImgiLFsiYiIsWzE1LCJmIl1dXSxbMjIsWzE1LCJoIl0sWzQ2LFs1MyxbMixbMTUsImYiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYyJdLCJCVCJdLFsxNSwiaCJdXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0QXVpZCJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzM2LFs4LCJBIixbMTUsImUiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRDb25maWdQYXJhbXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImUiLFs0NiwiZiJdLFsyLFsxNSwiZiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJPIl0sWzIxLFsyLFsxNSwiZiJdLCJnZXRGcm9tRXZlbnRDb250ZXh0IixbNyxbMTcsWzE1LCJkIl0sIkNTIl1dXSxmYWxzZV1dXSxbMixbMTUsImYiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiUSJdLFsiYyIsWzE1LCJmIl1dXV0sWzUyLCJnIixbMixbMTUsImYiXSwiZ2V0RnJvbUV2ZW50Q29udGV4dCIsWzcsWzE3LFsxNSwiZCJdLCJCQyJdXV1dLFsyLFsxNSwiZiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJDQiJdLFsxLFsyOSxbMTUsImciXSxbNDVdXSxbMjEsWzE1LCJnIl0sZmFsc2VdXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRBZHNDb29raWVXcml0aW5nT3B0aW9ucyJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiZSJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NldEZlYXR1cmVVc2FnZVBhcmFtcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZCIsWzQ2LCJlIl0sWzUyLCJmIixbImIiXV0sWzIyLFsxNSwiZiJdLFs0NixbNTMsWzIsWzE1LCJlIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImMiXSwiR0MiXSxbMTUsImYiXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldEFuZFJlc2V0RXZlbnRVc2FnZSJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiZCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NldEdvb2dsZUFuYWx5c2lzUGFyYW1zIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJjIixbNDYsImQiXSxbMixbMTUsImQiXSwibWVyZ2VIaXREYXRhRm9yS2V5IixbNyxbMTcsWzE1LCJiIl0sIkZUIl0sWzIsWzE1LCJkIl0sImdldE1lcmdlZFZhbHVlcyIsWzcsWzE3LFsxNSwiYiJdLCJGVCJdXV1dXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzM2LFs4LCJBIixbMTUsImMiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRJZnJhbWVTdGF0ZVBhcmFtIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJkIixbNDYsImUiXSxbMixbMTUsImUiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYyJdLCJHRSJdLFsiYiJdXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0SWZyYW1pbmdTdGF0ZSJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiZCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NldFByaXZhY3lQYXJhbXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImQiLFs0NiwiZSJdLFs1MiwiZiIsWyJiIl1dLFs2NSwiZyIsWzcsWzE3LFsxNSwiYyJdLCJKVSJdLFsxNyxbMTUsImMiXSwiRk8iXSxbMTcsWzE1LCJjIl0sIktLIl1dLFs0NixbNTMsWzIsWzE1LCJlIl0sInNldEhpdERhdGEiLFs3LFsxNSwiZyJdLFsxNixbMTUsImYiXSxbMTUsImciXV1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcml2YWN5U3RyaW5ncyJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiZCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NldFVybFBhc3N0aHJvdWdoUGFyYW1zIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJkIixbNDYsImUiXSxbNTIsImYiLFsxNixbImMiLGZhbHNlXSwiX3VwIl1dLFsyMixbMjAsWzE1LCJmIl0sIjEiXSxbNDYsWzUzLFsyLFsxNSwiZSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJiIl0sIkdLIl0sdHJ1ZV1dXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmdldExpbmtlclZhbHVlRnJvbUxvY2F0aW9uIl1dLFszNixbOCwiQSIsWzE1LCJkIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0Q29va2llRXhwaXJhdGlvblBhcmFtIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJkIixbNDYsImYiXSxbImUiLFsxNSwiZiJdLFsxNyxbMTUsImIiXSwiQiJdLFsyLFsxNSwiZiJdLCJnZXRGcm9tRXZlbnRDb250ZXh0IixbNyxbMTcsWzE1LCJjIl0sIkNZIl1dXV1dLFs1MCwiZSIsWzQ2LCJmIiwiZyIsImgiXSxbNTIsImkiLFszMCxbMixbMTUsImYiXSwiZ2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYyJdLCJKWCJdXV0sWzhdXV0sWzQzLFsxNSwiaSJdLFsxNSwiZyJdLFsxNSwiaCJdXSxbMixbMTUsImYiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYyJdLCJKWCJdLFsxNSwiaSJdXV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9mcG1QYXJhbWV0ZXIiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzM2LFs4LCJBIixbMTUsImQiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRVc2VySWRQYXJhbXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImciLFs0NiwiaCJdLFs1MiwiaSIsWzMwLFsyLFsxNSwiaCJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJNIl1dXSxbOF1dXSxbMjIsWzI4LFsxNixbMTUsImkiXSxbMTcsWzE1LCJkIl0sIkMiXV1dLFs0NixbNTMsWzM2XV1dXSxbMixbMTUsImgiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJKUiJdXV0sWzUyLCJqIixbImIiLFsxNyxbMTUsImMiXSwiUyJdXV0sWzIyLFsyMCxbMTUsImoiXSxbNDRdXSxbNDYsWzUzLFsiZiIsWzE3LFsxNSwiYyJdLCJUIl0sdHJ1ZV0sWzM2XV1dXSxbNTIsImsiLFsiYiIsWzE3LFsxNSwiYyJdLCJVIl1dXSxbMixbMTUsImgiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJJSyJdLFswLFswLFsxNSwiayJdLCIuIl0sWzE1LCJqIl1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY29weUZyb21Dcm9zc0NvbnRhaW5lckRhdGEiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2Nyb3NzQ29udGFpbmVyU2NoZW1hIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLnNldEluQ3Jvc3NDb250YWluZXJEYXRhIl1dLFszNixbOCwiQSIsWzE1LCJnIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0Q3VzdG9tZXJMaWZlY3ljbGVQYXJhbXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImUiLFs0NiwiZiJdLFsyMixbMjgsWyJkIixbMTcsWzE1LCJjIl0sIkgiXV1dLFs0NixbNTMsWzM2XV1dXSxbMixbMTUsImYiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJESCJdXV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFszNixbOCwiQSIsWzE1LCJlIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0R3NhRXhwZXJpbWVudElkIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJkIixbNDYsImUiXSxbNTIsImYiLFsiYiJdXSxbMjIsWzIxLFsxNSwiZiJdLFs0NF1dLFs0NixbNTMsWzIsWzE1LCJlIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImMiXSwiR0IiXSxbMTUsImYiXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldEdzYUV4cGVyaW1lbnRJZCJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiZCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1N0b3JlQnJhaWRMYWJlbHMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImUiLFs0NiwiZiJdLFs1MiwiZyIsWzMwLFsyLFsxNSwiZiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiYyJdLCJNIl1dXSxbOF1dXSxbMjIsWzI4LFsxNixbMTUsImciXSxbMTcsWzE1LCJiIl0sIkIiXV1dLFs0NixbNTMsWzM2XV1dXSxbImQiLFsxNSwiZiJdXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc3RvcmVBZHNCcmFpZExhYmVscyJdXSxbMzYsWzgsIkEiLFsxNSwiZSJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZXZlbnRFZGl0aW5nQW5kU3ludGhlc2lzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJhQSIsWzQ2LCJhTiIsImFPIl0sWzUyLCJhUCIsWzMwLFsxNixbMTUsImFPIl0sWzE1LCJtIl1dLFs3XV1dLFs2NiwiYVEiLFsxNSwiYVAiXSxbNDYsWzUzLFsyMixbMTYsWzE1LCJhUSJdLFsxNSwibiJdXSxbNDYsWzUzLFs1MiwiYVIiLFsxNixbMTYsWzE1LCJhUSJdLFsxNSwibiJdXSxbMTUsInAiXV1dLFs1MiwiYVMiLFsiYUYiLFsxNSwiYU4iXSxbMTYsWzE2LFsxNSwiYVEiXSxbMTUsIm4iXV0sWzE1LCJxIl1dXV0sWzIsWzE1LCJhTiJdLCJzZXRIaXREYXRhIixbNyxbMTUsImFSIl0sWyJhQiIsWzE1LCJhUyJdXV1dXV0sWzQ2LFsyMixbMTYsWzE1LCJhUSJdLFsxNSwibyJdXSxbNDYsWzUzLFs1MiwiYVIiLFsxNixbMTYsWzE1LCJhUSJdLFsxNSwibyJdXSxbMTUsInAiXV1dLFsyLFsxNSwiYU4iXSwic2V0SGl0RGF0YSIsWzcsWzE1LCJhUiJdLFs0NF1dXV1dXV1dXV1dXSxbNTAsImFCIixbNDYsImFOIl0sWzIyLFsyOCxbMTUsImFOIl1dLFs0NixbMzYsWzE1LCJhTiJdXV1dLFs1MiwiYU8iLFsiYiIsWzE1LCJhTiJdXV0sWzUyLCJhUCIsWzIxLFsxNSwiYU8iXSxbMTUsImFPIl1dXSxbMjIsWzE1LCJhUCJdLFs0NixbMzYsWzE1LCJhTiJdXV1dLFszNixbMTUsImFPIl1dXSxbNTAsImFDIixbNDYsImFOIiwiYU8iLCJhUCJdLFs0MSwiYVEiXSxbMywiYVEiLFszMCxbMTUsImFPIl0sWzddXV0sWzMsImFRIixbMzksWyJsIixbMTUsImFRIl1dLFsxNSwiYVEiXSxbNyxbMTUsImFRIl1dXV0sWzIyLFsyOCxbImFEIixbMTUsImFOIl0sWzE1LCJhUSJdXV0sWzQ2LFs1MyxbMzYsZmFsc2VdXV1dLFsyMixbMzAsWzI4LFsxNSwiYVAiXV0sWzIwLFsxNyxbMTUsImFQIl0sImxlbmd0aCJdLDBdXSxbNDYsWzM2LHRydWVdXV0sWzUzLFs0MSwiYVIiXSxbMywiYVIiLDBdLFs2MyxbNywiYVIiXSxbMjMsWzE1LCJhUiJdLFsxNyxbMTUsImFQIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJhUiJdLFszLCJhUiIsWzAsWzE1LCJhUiJdLDFdXV0sWzQ2LFs1MyxbNTIsImFTIixbMzAsWzE2LFsxNixbMTUsImFQIl0sWzE1LCJhUiJdXSxbMTUsInUiXV0sWzddXV0sWzIyLFsiYUQiLFsxNSwiYU4iXSxbMTUsImFTIl0sdHJ1ZV0sWzQ2LFs1MyxbMzYsdHJ1ZV1dXV1dXV1dLFszNixmYWxzZV1dLFs1MCwiYUQiLFs0NiwiYU4iLCJhTyIsImFQIl0sWzUzLFs0MSwiYVEiXSxbMywiYVEiLDBdLFs2MyxbNywiYVEiXSxbMjMsWzE1LCJhUSJdLFsxNyxbMTUsImFPIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJhUSJdLFszLCJhUSIsWzAsWzE1LCJhUSJdLDFdXV0sWzQ2LFs1MyxbNTIsImFSIixbMTYsWzE1LCJhTyJdLFsxNSwiYVEiXV1dLFs1MiwiYVMiLFsiYUUiLFsxNSwiYU4iXSxbMTUsImFSIl0sZmFsc2VdXSxbMjIsWzE1LCJhUCJdLFs0NixbNTMsWzUyLCJhVCIsWzE2LFszMCxbMTYsWzE1LCJhUiJdLFsxNSwieCJdXSxbN11dLDBdXSxbMjIsWzEsWzEsWzE1LCJhVCJdLFsyMCxbMTYsWzE1LCJhVCJdLFsxNSwieSJdXSxbMTUsInQiXV1dLFsyMSxbMixbMTUsInoiXSwiaW5kZXhPZiIsWzcsWzE2LFsxNixbMTUsImFUIl0sWzE1LCJ0Il1dLFsxNSwicyJdXV1dLFsyNywxXV1dLFs0NixbNTMsWzUyLCJhVSIsWyJhRSIsWzE1LCJhTiJdLFsxNSwiYVIiXSx0cnVlXV0sWzIyLFsyMSxbMTUsImFTIl0sWzE1LCJhVSJdXSxbNDYsWzUzLFs1MiwiYVYiLFszMCxbMixbMTUsImFOIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJpIl0sIkFDIl1dXSxbN11dXSxbMixbMTUsImFWIl0sInB1c2giLFs3LFszOSxbMTUsImFTIl0sWzE3LFsxNSwiayJdLCJVIl0sWzE3LFsxNSwiayJdLCJUIl1dXV0sWzIsWzE1LCJhTiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaSJdLCJBQyJdLFsxNSwiYVYiXV1dXV1dXV1dXV1dLFsyMixbMjgsWzE1LCJhUyJdXSxbNDYsWzUzLFszNixmYWxzZV1dXV1dXV1dLFszNix0cnVlXV0sWzUwLCJhRSIsWzQ2LCJhTiIsImFPIiwiYVAiXSxbNTIsImFRIixbMzAsWzE2LFsxNSwiYU8iXSxbMTUsIngiXV0sWzddXV0sWzQxLCJhUiJdLFszLCJhUiIsWyJhRiIsWzE1LCJhTiJdLFsxNixbMTUsImFRIl0sMF1dXSxbNDEsImFTIl0sWzMsImFTIixbImFGIixbMTUsImFOIl0sWzE2LFsxNSwiYVEiXSwxXV1dLFsyMixbMSxbMTUsImFQIl0sWzE1LCJhUiJdXSxbNDYsWzUzLFszLCJhUiIsWzMwLFsiZyIsWzE1LCJhUiJdXSxbMTUsImFSIl1dXV1dXSxbMjIsWzE1LCJhUyJdLFs0NixbNTMsWzUyLCJhWSIsWzE2LFszMCxbMTYsWzE1LCJhTyJdLFsxNSwieCJdXSxbN11dLDBdXSxbMjIsWzEsWzEsWzE1LCJhWSJdLFsyMCxbMTYsWzE1LCJhWSJdLFsxNSwieSJdXSxbMTUsInQiXV1dLFsyMSxbMixbMTUsInoiXSwiaW5kZXhPZiIsWzcsWzE2LFsxNixbMTUsImFZIl0sWzE1LCJ0Il1dLFsxNSwicyJdXV1dLFsyNywxXV1dLFs0NixbNTMsWzUyLCJhWiIsWzIsWzE1LCJhUyJdLCJpbmRleE9mIixbNywiPyJdXV0sWzIyLFsyMCxbMTUsImFaIl0sWzI3LDFdXSxbNDYsWzUzLFszLCJhUyIsWzMwLFsiZyIsWzE1LCJhUyJdXSxbMTUsImFTIl1dXV1dLFs0NixbNTMsWzUyLCJiQSIsWzIsWzE1LCJhUyJdLCJzdWJzdHJpbmciLFs3LDAsWzE1LCJhWiJdXV1dLFszLCJhUyIsWzAsWzMwLFsiZyIsWzE1LCJiQSJdXSxbMTUsImJBIl1dLFsyLFsxNSwiYVMiXSwic3Vic3RyaW5nIixbNyxbMTUsImFaIl1dXV1dXV1dXV1dXV1dLFs1MiwiYVQiLFsxNixbMTUsImFPIl0sWzE1LCJ3Il1dXSxbMjIsWzMwLFszMCxbMzAsWzIwLFsxNSwiYVQiXSwiZXFpIl0sWzIwLFsxNSwiYVQiXSwic3dpIl1dLFsyMCxbMTUsImFUIl0sImV3aSJdXSxbMjAsWzE1LCJhVCJdLCJjbmkiXV0sWzQ2LFs1MyxbMjIsWzE1LCJhUiJdLFs0NixbMywiYVIiLFsyLFsiZCIsWzE1LCJhUiJdXSwidG9Mb3dlckNhc2UiLFs3XV1dXV0sWzIyLFsxNSwiYVMiXSxbNDYsWzMsImFTIixbMixbImQiLFsxNSwiYVMiXV0sInRvTG93ZXJDYXNlIixbN11dXV1dXV1dLFs0MSwiYVUiXSxbMywiYVUiLGZhbHNlXSxbMzgsWzE1LCJhVCJdLFs0NiwiZXEiLCJlcWkiLCJzdyIsInN3aSIsImV3IiwiZXdpIiwiY24iLCJjbmkiLCJsdCIsImxlIiwiZ3QiLCJnZSIsInJlIiwicmVpIl0sWzQ2LFs1LFs0Nl1dLFs1LFs0NixbMywiYVUiLFsyMCxbImQiLFsxNSwiYVIiXV0sWyJkIixbMTUsImFTIl1dXV0sWzRdXV0sWzUsWzQ2XV0sWzUsWzQ2LFszLCJhVSIsWzIwLFsyLFsiZCIsWzE1LCJhUiJdXSwiaW5kZXhPZiIsWzcsWyJkIixbMTUsImFTIl1dXV0sMF1dLFs0XV1dLFs1LFs0Nl1dLFs1LFs0NixbNDEsImFWIl0sWzMsImFWIixbImQiLFsxNSwiYVIiXV1dLFs0MSwiYVciXSxbMywiYVciLFsiZCIsWzE1LCJhUyJdXV0sWzUyLCJhWCIsWzM3LFsxNyxbMTUsImFWIl0sImxlbmd0aCJdLFsxNyxbMTUsImFXIl0sImxlbmd0aCJdXV0sWzMsImFVIixbMSxbMTksWzE1LCJhWCJdLDBdLFsyMCxbMixbMTUsImFWIl0sImluZGV4T2YiLFs3LFsxNSwiYVciXSxbMTUsImFYIl1dXSxbMTUsImFYIl1dXV0sWzRdXV0sWzUsWzQ2XV0sWzUsWzQ2LFszLCJhVSIsWzE5LFsyLFsiZCIsWzE1LCJhUiJdXSwiaW5kZXhPZiIsWzcsWyJkIixbMTUsImFTIl1dXV0sMF1dLFs0XV1dLFs1LFs0NixbMywiYVUiLFsyMyxbImIiLFsxNSwiYVIiXV0sWyJiIixbMTUsImFTIl1dXV0sWzRdXV0sWzUsWzQ2LFszLCJhVSIsWzI0LFsiYiIsWzE1LCJhUiJdXSxbImIiLFsxNSwiYVMiXV1dXSxbNF1dXSxbNSxbNDYsWzMsImFVIixbMTgsWyJiIixbMTUsImFSIl1dLFsiYiIsWzE1LCJhUyJdXV1dLFs0XV1dLFs1LFs0NixbMywiYVUiLFsxOSxbImIiLFsxNSwiYVIiXV0sWyJiIixbMTUsImFTIl1dXV0sWzRdXV0sWzUsWzQ2LFsyMixbMjEsWzE1LCJhUiJdLFs0NF1dLFs0NixbNTMsWzUyLCJhWSIsWyJlIixbMTUsImFTIl1dXSxbMjIsWzE1LCJhWSJdLFs0NixbMywiYVUiLFsiZiIsWzE1LCJhWSJdLFsxNSwiYVIiXV1dXV1dXV0sWzRdXV0sWzUsWzQ2LFsyMixbMjEsWzE1LCJhUiJdLFs0NF1dLFs0NixbNTMsWzUyLCJhWSIsWyJlIixbMTUsImFTIl0sImkiXV0sWzIyLFsxNSwiYVkiXSxbNDYsWzMsImFVIixbImYiLFsxNSwiYVkiXSxbMTUsImFSIl1dXV1dXV1dLFs0XV1dLFs5LFs0Nl1dXV0sWzIyLFsyOCxbMjgsWzE2LFsxNSwiYU8iXSxbMTUsInYiXV1dXSxbNDYsWzM2LFsyOCxbMTUsImFVIl1dXV1dLFszNixbMTUsImFVIl1dXSxbNTAsImFGIixbNDYsImFOIiwiYU8iXSxbMjIsWzI4LFsxNSwiYU8iXV0sWzQ2LFszNixbNDRdXV1dLFszOCxbMTYsWzE1LCJhTyJdLFsxNSwieSJdXSxbNDYsImV2ZW50X25hbWUiLCJjb25zdCIsImV2ZW50X3BhcmFtIl0sWzQ2LFs1LFs0NixbMzYsWzIsWzE1LCJhTiJdLCJnZXRFdmVudE5hbWUiLFs3XV1dXV0sWzUsWzQ2LFszNixbMTYsWzE1LCJhTyJdLFsxNSwiciJdXV1dXSxbNSxbNDYsWzUyLCJhUCIsWzE2LFsxNixbMTUsImFPIl0sWzE1LCJ0Il1dLFsxNSwicyJdXV0sWzIyLFsyMCxbMTUsImFQIl0sWzE3LFsxNSwiaiJdLCJIRCJdXSxbNDYsWzUzLFszNixbImFJIixbMTUsImFOIl1dXV1dXSxbMjIsWzIwLFsxNSwiYVAiXSxbMTcsWzE1LCJqIl0sIkhDIl1dLFs0NixbNTMsWzM2LFsiYUoiLFsxNSwiYU4iXV1dXV1dLFszNixbMixbMTUsImFOIl0sImdldEhpdERhdGEiLFs3LFsxNSwiYVAiXV1dXV1dLFs5LFs0NixbMzYsWzQ0XV1dXV1dXSxbNTAsImFIIixbNDYsImFOIl0sWzIyLFsyOCxbMTUsImFOIl1dLFs0NixbNTMsWzM2LFsxNSwiYU4iXV1dXV0sWzUyLCJhTyIsWzIsWzE1LCJhTiJdLCJzcGxpdCIsWzcsIiYiXV1dLFs1MiwiYVAiLFs3XV0sWzQzLFsxNSwiYU8iXSwwLFsyLFsxNixbMTUsImFPIl0sMF0sInN1YnN0cmluZyIsWzcsMV1dXSxbNTMsWzQxLCJhUSJdLFszLCJhUSIsMF0sWzYzLFs3LCJhUSJdLFsyMyxbMTUsImFRIl0sWzE3LFsxNSwiYU8iXSwibGVuZ3RoIl1dLFszMyxbMTUsImFRIl0sWzMsImFRIixbMCxbMTUsImFRIl0sMV1dXSxbNDYsWzUzLFs1MiwiYVIiLFsxNixbMTUsImFPIl0sWzE1LCJhUSJdXV0sWzUyLCJhUyIsWzIsWzE1LCJhUiJdLCJpbmRleE9mIixbNywiPSJdXV0sWzUyLCJhVCIsWzM5LFsxOSxbMTUsImFTIl0sMF0sWzIsWzE1LCJhUiJdLCJzdWJzdHJpbmciLFs3LDAsWzE1LCJhUyJdXV0sWzE1LCJhUiJdXV0sWzIyLFsyOCxbMTYsWzE1LCJhRyJdLFsxNSwiYVQiXV1dLFs0NixbNTMsWzIsWzE1LCJhUCJdLCJwdXNoIixbNyxbMTYsWzE1LCJhTyJdLFsxNSwiYVEiXV1dXV1dXV1dXV0sWzIyLFsxNyxbMTUsImFQIl0sImxlbmd0aCJdLFs0NixbNTMsWzM2LFswLCI/IixbMixbMTUsImFQIl0sImpvaW4iLFs3LCImIl1dXV1dXV0sWzM2LCIiXV0sWzUwLCJhSSIsWzQ2LCJhTiJdLFs1MiwiYU8iLFsyLFsxNSwiYU4iXSwiZ2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJIRCJdXV1dLFsyMixbMTUsImFPIl0sWzQ2LFszNixbMTUsImFPIl1dXV0sWzUyLCJhUCIsWzIsWzE1LCJhTiJdLCJnZXRIaXREYXRhIixbNyxbMTcsWzE1LCJqIl0sIktIIl1dXV0sWzIyLFsyMSxbNDAsWzE1LCJhUCJdXSwic3RyaW5nIl0sWzQ2LFszNixbNDRdXV1dLFs1MiwiYVEiLFsiYyIsWzE1LCJhUCJdXV0sWzIyLFsyOCxbMTUsImFRIl1dLFs0NixbMzYsWzQ0XV1dXSxbNDEsImFSIl0sWzMsImFSIixbMTcsWzE1LCJhUSJdLCJwYXRobmFtZSJdXSxbMywiYVIiLFszMCxbImciLFsxNSwiYVIiXV0sWzE1LCJhUiJdXV0sWzM2LFswLFsxNSwiYVIiXSxbImFIIixbMTcsWzE1LCJhUSJdLCJzZWFyY2giXV1dXV0sWzUwLCJhSiIsWzQ2LCJhTiJdLFs1MiwiYU8iLFsyLFsxNSwiYU4iXSwiZ2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJIQyJdXV1dLFsyMixbMTUsImFPIl0sWzQ2LFszNixbMTUsImFPIl1dXV0sWzUyLCJhUCIsWzIsWzE1LCJhTiJdLCJnZXRIaXREYXRhIixbNyxbMTcsWzE1LCJqIl0sIktIIl1dXV0sWzIyLFsyMSxbNDAsWzE1LCJhUCJdXSwic3RyaW5nIl0sWzQ2LFszNixbNDRdXV1dLFs1MiwiYVEiLFsiYyIsWzE1LCJhUCJdXV0sWzIyLFsyOCxbMTUsImFRIl1dLFs0NixbMzYsWzQ0XV1dXSxbMzYsWzE3LFsxNSwiYVEiXSwiaG9zdG5hbWUiXV1dLFs1MCwiYU0iLFs0NiwiYU4iXSxbMjIsWzI4LFsxNSwiYU4iXV0sWzQ2LFszNix0cnVlXV1dLFszLCJhTiIsWyJkIixbMTUsImFOIl1dXSxbNjYsImFPIixbMTUsImFMIl0sWzQ2LFs1MyxbMjIsWzIwLFsyLFsxNSwiYU4iXSwiaW5kZXhPZiIsWzcsWzE1LCJhTyJdXV0sMF0sWzQ2LFszNix0cnVlXV1dXV1dLFsyMixbMTgsWzIsWzE1LCJhSyJdLCJpbmRleE9mIixbNyxbMTUsImFOIl1dXSxbMjcsMV1dLFs0NixbMzYsdHJ1ZV1dXSxbMzYsZmFsc2VdXSxbNTIsImIiLFsicmVxdWlyZSIsIm1ha2VOdW1iZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJwYXJzZVVybCJdXSxbNTIsImQiLFsicmVxdWlyZSIsIm1ha2VTdHJpbmciXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jcmVhdGVSZWdleCJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLnRlc3RSZWdleCJdXSxbNTIsImciLFsicmVxdWlyZSIsImRlY29kZVVyaUNvbXBvbmVudCJdXSxbNTIsImgiLFsicmVxdWlyZSIsImdldFR5cGUiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiaiIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiayIsWzE1LCJfX21vZHVsZV9nb2xkRXZlbnRVc2FnZUlkIl1dLFs1MiwibCIsWzUxLCIiLFs3LCJhTiJdLFszNixbMjAsWyJoIixbMTUsImFOIl1dLCJhcnJheSJdXV1dLFs1MiwibSIsImV2ZW50X3BhcmFtX29wcyJdLFs1MiwibiIsImVkaXRfcGFyYW0iXSxbNTIsIm8iLCJkZWxldGVfcGFyYW0iXSxbNTIsInAiLCJwYXJhbV9uYW1lIl0sWzUyLCJxIiwicGFyYW1fdmFsdWUiXSxbNTIsInIiLCJjb25zdF92YWx1ZSJdLFs1MiwicyIsInBhcmFtX25hbWUiXSxbNTIsInQiLCJldmVudF9wYXJhbSJdLFs1MiwidSIsInByZWRpY2F0ZXMiXSxbNTIsInYiLCJuZWdhdGUiXSxbNTIsInciLCJ0eXBlIl0sWzUyLCJ4IiwidmFsdWVzIl0sWzUyLCJ5IiwidHlwZSJdLFs1MiwieiIsWzcsWzE3LFsxNSwiaiJdLCJIRCJdLFsxNyxbMTUsImoiXSwiS0giXSxbMTcsWzE1LCJqIl0sIkhFIl1dXSxbNTIsImFHIixbOCwiX19nYSIsMSwiX191dG1hIiwxLCJfX3V0bWIiLDEsIl9fdXRtYyIsMSwiX191dG1rIiwxLCJfX3V0bXYiLDEsIl9fdXRteCIsMSwiX191dG16IiwxLCJfZ2FjIiwxLCJfZ2wiLDEsImRjbGlkIiwxLCJnYWRfY2FtcGFpZ25pZCIsMSwiZ2FkX3NvdXJjZSIsMSwiZ2JyYWlkIiwxLCJnY2xpZCIsMSwiZ2Nsc3JjIiwxLCJ1dG1fY2FtcGFpZ24iLDEsInV0bV9jb250ZW50IiwxLCJ1dG1fZXhwaWQiLDEsInV0bV9pZCIsMSwidXRtX21lZGl1bSIsMSwidXRtX25vb3ZlcnJpZGUiLDEsInV0bV9yZWZlcnJlciIsMSwidXRtX3NvdXJjZSIsMSwidXRtX3Rlcm0iLDEsIndicmFpZCIsMV1dLFs1MiwiYUsiLFs3LFsxNyxbMTUsImoiXSwiSSJdLFsxNyxbMTUsImoiXSwiSiJdLFsxNyxbMTUsImoiXSwiSyJdLFsxNyxbMTUsImoiXSwiTCJdLFsxNyxbMTUsImoiXSwiTSJdLFsxNyxbMTUsImoiXSwiQUYiXSxbMTcsWzE1LCJqIl0sIkFHIl0sWzE3LFsxNSwiaiJdLCJBSiJdLFsxNyxbMTUsImoiXSwiQU0iXSxbMTcsWzE1LCJqIl0sIkFRIl1dXSxbNTIsImFMIixbNywiXyIsImdhXyIsImdvb2dsZV8iLCJndGFnLiIsImZpcmViYXNlXyJdXSxbMzYsWzgsIkEiLFsxNSwiYUEiXSwiRCIsWzE1LCJhTSJdLCJCIixbMTUsImFDIl0sIkMiLFsxNSwiYUYiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2dhQWRzTGlua0FjdGl2aXR5IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJwIixbNDYsInciLCJ4IiwieSIsInoiXSxbImYiLFsxNSwidyJdLCJnYTRfYWRzX2xpbmtlZCIsdHJ1ZV0sWyJlIixbMTUsInciXSxbNTEsIiIsWzcsImFBIiwiYUIiXSxbIngiLFsxNSwiYUEiXV0sWzIsWzE1LCJhQSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJBUCJdLFsyOCxbMjgsWyJ6IixbMTUsImFBIl1dXV1dXSxbInEiLFsxNSwieSJdLFsxNSwiYUEiXSxbMTUsImFCIl1dXV1dLFs1MCwicSIsWzQ2LCJ3IiwieCIsInkiXSxbMjIsWzI4LFsicyIsWzE1LCJ4Il1dXSxbNDYsWzM2XV1dLFsyMixbInQiLFsxNSwieCJdLFsxNSwieSJdXSxbNDYsWzM2XV1dLFsyMixbMixbMTUsIngiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQVYiXV1dLFs0NixbNTMsWyJyIixbMTUsInciXSxbMTUsIngiXV1dXV0sWzIyLFsyLFsxNSwieCJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJCQSJdXV0sWzQ2LFs1MyxbInIiLFsxNSwidyJdLFsxNSwieCJdLCJmaXJzdF92aXNpdCJdXV1dLFsyMixbMixbMTUsIngiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQk0iXV1dLFs0NixbNTMsWyJyIixbMTUsInciXSxbMTUsIngiXSwic2Vzc2lvbl9zdGFydCJdXV1dXSxbNTAsInIiLFs0NiwidyIsIngiLCJ5Il0sWzUwLCJhQSIsWzQ2LCJhQiJdLFs1MiwiYUMiLFsyLFsxNSwieCJdLCJnZXRIaXREYXRhIixbNyxbMTUsImFCIl1dXV0sWzIyLFsyMSxbMTUsImFDIl0sWzQ0XV0sWzQ2LFs1MyxbMixbMTUsInoiXSwic2V0SGl0RGF0YSIsWzcsWzE1LCJhQiJdLFsxNSwiYUMiXV1dXV1dXSxbNTIsInoiLFsiYiIsWzE1LCJ4Il0sWzgsIm9taXRIaXREYXRhIix0cnVlLCJ1c2VIaXREYXRhIix0cnVlXV1dLFsyMixbMTUsInkiXSxbNDYsWzUzLFsyLFsxNSwieiJdLCJzZXRFdmVudE5hbWUiLFs3LFsxNSwieSJdXV1dXV0sWzIsWzE1LCJ6Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkFRIl0sImdhX2NvbnZlcnNpb24iXV0sWyJhQSIsWzE3LFsxNSwiayJdLCJDTCJdXSxbImFBIixbMTcsWzE1LCJrIl0sIkpSIl1dLFsiYUEiLCJfJmlidCJdLFsidyIsImdhX2NvbnZlcnNpb24iLFsxNSwieiJdXV0sWzUwLCJzIixbNDYsInciXSxbNTIsIngiLFsyOCxbImQiLFsxNyxbMTUsImkiXSwiTCJdXV1dLFsyMixbMTUsIngiXSxbNDYsWzUzLFsyMixbImQiLFsxNyxbMTUsImkiXSwiQkMiXV0sWzQ2LFs1MyxbNTIsInoiLFszMCxbMixbMTUsInciXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQUQiXV1dLFs3XV1dLFsyLFsxNSwieiJdLCJwdXNoIixbNyxbMTUsIm8iXV1dLFsyLFsxNSwidyJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJBRCJdLFsxNSwieiJdXV1dXSxbNDYsWzUzLFszNixmYWxzZV1dXV1dXV0sWzIyLFsyLFsxNSwidyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJCTiJdXV0sWzQ2LFs1MyxbMzYsZmFsc2VdXV1dLFsyMixbMixbMTUsInciXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQksiXV1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbNTIsInkiLFszMCxbMixbMTUsInciXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQUMiXV1dLFs3XV1dLFsyMixbMjAsWzIsWzE1LCJ5Il0sImluZGV4T2YiLFs3LFsxNyxbMTUsImwiXSwiQU8iXV1dLFsyNywxXV0sWzQ2LFs1MyxbMixbMTUsInkiXSwicHVzaCIsWzcsWzE3LFsxNSwibCJdLCJBTyJdXV1dXV0sWzIyLFsyOCxbMixbMTUsInciXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiUCJdXV1dLFs0NixbNTMsWzIyLFsyMCxbMixbMTUsInkiXSwiaW5kZXhPZiIsWzcsWzE3LFsxNSwibCJdLCJBTiJdXV0sWzI3LDFdXSxbNDYsWzUzLFsyLFsxNSwieSJdLCJwdXNoIixbNyxbMTcsWzE1LCJsIl0sIkFOIl1dXV1dXV1dXSxbMixbMTUsInciXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQUMiXSxbMTUsInkiXV1dLFsyMixbMjgsWzMwLFszMCxbMixbMTUsInciXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQVYiXV1dLFsyLFsxNSwidyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJCQSJdXV1dLFsyLFsxNSwidyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJCTSJdXV1dXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzM2LHRydWVdXSxbNTAsInQiLFs0NiwidyIsIngiXSxbNDEsInkiXSxbMywieSIsZmFsc2VdLFs1MiwieiIsWzddXSxbNTIsImFBIixbIm4iLFsxNSwiYyJdLFsxNSwieCJdXV0sWzUyLCJhQiIsWzUxLCIiLFs3LCJhQyIsImFEIl0sWzIyLFsiYUMiLFsxNSwidyJdLFsxNSwiYUEiXV0sWzQ2LFs1MyxbMywieSIsdHJ1ZV0sWzIsWzE1LCJ6Il0sInB1c2giLFs3LFsxNSwiYUQiXV1dXV1dXV0sWyJhQiIsWzE1LCJ1Il0sWzE3LFsxNSwibSJdLCJHT09HTEVfU0lHTkFMX0RJU0FCTEVEIl1dLFsiYUIiLFsxNSwidiJdLFsxNyxbMTUsIm0iXSwiREVWSUNFX0RBVEFfUkVEQUNUSU9OX0VOQUJMRUQiXV0sWzIyLFsyOCxbMTUsInkiXV0sWzQ2LFsyLFsxNSwieiJdLCJwdXNoIixbNyxbMTcsWzE1LCJtIl0sIkJFQUNPTl9TRU5UIl1dXV1dLFsyLFsxNSwidyJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJrIl0sIkhOIl0sWzIsWzE1LCJ6Il0sImpvaW4iLFs3LCIuIl1dXV0sWzM2LFsxNSwieSJdXV0sWzUwLCJ1IixbNDYsInciLCJ4Il0sWzIyLFsyOCxbMixbMTUsInciXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQkYiXV1dXSxbNDYsWzUzLFszNix0cnVlXV1dXSxbMjIsWyJkIixbMTcsWzE1LCJpIl0sIkFPIl1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbMjIsWzIwLFsieCIsWzIsWzE1LCJ3Il0sImdldERlc3RpbmF0aW9uSWQiLFs3XV0sWzE3LFsxNSwiayJdLCJCTiJdXSxmYWxzZV0sWzQ2LFs1MyxbMzYsdHJ1ZV1dXV0sWzM2LGZhbHNlXV0sWzUwLCJ2IixbNDYsInciLCJ4Il0sWzM2LFszMCxbMjAsWyJ4IixbMixbMTUsInciXSwiZ2V0RGVzdGluYXRpb25JZCIsWzddXSwicmVkYWN0X2RldmljZV9pbmZvIl0sdHJ1ZV0sWzIwLFsieCIsWzIsWzE1LCJ3Il0sImdldERlc3RpbmF0aW9uSWQiLFs3XV0sImdlb19ncmFudWxhcml0eSJdLHRydWVdXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY29weVByZUhpdCJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmdldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiT2JqZWN0Il1dLFs1MiwiaCIsWzE1LCJfX21vZHVsZV9hY3Rpdml0aWVzIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImoiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJrIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJsIixbMTUsIl9fbW9kdWxlX2dvbGRFdmVudFVzYWdlSWQiXV0sWzUyLCJtIixbMixbMTUsImciXSwiZnJlZXplIixbNyxbOCwiQkVBQ09OX1NFTlQiLCJvayIsIkdPT0dMRV9TSUdOQUxfRElTQUJMRUQiLCJncyIsIkdBNF9TVUJET01BSU5fRU5BQkxFRCIsIndnIiwiREVWSUNFX0RBVEFfUkVEQUNUSU9OX0VOQUJMRUQiLCJyZCIsIkdBNF9TVUJET01BSU5fRU5BQkxFRF9XSVRIT1VUX0NPTlNFTlQiLCJ3Z2MiXV1dXSxbNTIsIm4iLFsxNyxbMTUsImgiXSwiQSJdXSxbNTIsIm8iLDEuMTg4NjkxODhFOF0sWzM2LFs4LCJBIixbMTUsInAiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2NjZEdhUmVnaW9uU2NvcGVkU2V0dGluZ3MiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImoiLFs0NiwibSIsIm4iLCJvIl0sWzUwLCJ0IixbNDYsInYiXSxbNTIsInciLFsxNixbMTUsImkiXSxbMTUsInYiXV1dLFsyMixbMjgsWzE1LCJ3Il1dLFs0NixbMzZdXV0sWzUzLFs0MSwieCJdLFszLCJ4IiwwXSxbNjMsWzcsIngiXSxbMjMsWzE1LCJ4Il0sWzE3LFsxNSwidyJdLCJsZW5ndGgiXV0sWzMzLFsxNSwieCJdLFszLCJ4IixbMCxbMTUsIngiXSwxXV1dLFs0NixbNTMsWzUyLCJ5IixbMTYsWzE1LCJ3Il0sWzE1LCJ4Il1dXSxbInEiLFsxNSwicCJdLFsxNyxbMTUsInkiXSwibmFtZSJdLFsxNyxbMTUsInkiXSwidmFsdWUiXV1dXV1dXSxbNTAsInUiLFs0NiwidiJdLFsyMixbMzAsWzI4LFsxNSwiciJdXSxbMjEsWzE3LFsxNSwiciJdLCJsZW5ndGgiXSwyXV0sWzQ2LFs1MyxbMzYsZmFsc2VdXV1dLFs0MSwidyJdLFszLCJ3IixbMTYsWzE1LCJ2Il0sWzE1LCJzIl1dXSxbMjIsWzIwLFsxNSwidyJdLFs0NF1dLFs0NixbNTMsWzMsInciLFsxNixbMTUsInYiXSxbMTUsInIiXV1dXV1dLFszNixbMjgsWzI4LFsxNSwidyJdXV1dXSxbMjIsWzI4LFsxNSwibiJdXSxbNDYsWzM2XV1dLFs1MiwicCIsWzMwLFsxNyxbMTUsIm0iXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl0sWzE3LFsiYyJdLCJjb250YWluZXJJZCJdXV0sWzUyLCJxIixbImgiLFsxNSwiZiJdLFsxNSwibyJdXV0sWzUyLCJyIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWyJoIixbMTUsImQiXSxbMTUsIm8iXV1dLFsiJDAiXV1dLFs1MiwicyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFsiaCIsWzE1LCJlIl0sWzE1LCJvIl1dXSxbIiQwIl1dXSxbNTMsWzQxLCJ2Il0sWzMsInYiLDBdLFs2MyxbNywidiJdLFsyMyxbMTUsInYiXSxbMTcsWzE1LCJuIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJ2Il0sWzMsInYiLFswLFsxNSwidiJdLDFdXV0sWzQ2LFs1MyxbNTIsInciLFsxNixbMTUsIm4iXSxbMTUsInYiXV1dLFsyMixbMzAsWzE3LFsxNSwidyJdLCJkaXNhbGxvd0FsbFJlZ2lvbnMiXSxbInUiLFsxNyxbMTUsInciXSwiZGlzYWxsb3dlZFJlZ2lvbnMiXV1dLFs0NixbNTMsWyJ0IixbMTcsWzE1LCJ3Il0sInJlZGFjdEZpZWxkR3JvdXAiXV1dXV1dXV1dXSxbNTAsImsiLFs0NiwibSJdLFs1MiwibiIsWzhdXSxbMjIsWzI4LFsxNSwibSJdXSxbNDYsWzM2LFsxNSwibiJdXV1dLFs1MiwibyIsWzIsWzE1LCJtIl0sInNwbGl0IixbNywiLCJdXV0sWzUzLFs0MSwicCJdLFszLCJwIiwwXSxbNjMsWzcsInAiXSxbMjMsWzE1LCJwIl0sWzE3LFsxNSwibyJdLCJsZW5ndGgiXV0sWzMzLFsxNSwicCJdLFszLCJwIixbMCxbMTUsInAiXSwxXV1dLFs0NixbNTMsWzUyLCJxIixbMixbMTYsWzE1LCJvIl0sWzE1LCJwIl1dLCJ0cmltIixbN11dXSxbMjIsWzI4LFsxNSwicSJdXSxbNDYsWzZdXV0sWzUyLCJyIixbMixbMTUsInEiXSwic3BsaXQiLFs3LCItIl1dXSxbNTIsInMiLFsxNixbMTUsInIiXSwwXV0sWzUyLCJ0IixbMzksWzIwLFsxNyxbMTUsInIiXSwibGVuZ3RoIl0sMl0sWzE1LCJxIl0sWzQ0XV1dLFsyMixbMzAsWzI4LFsxNSwicyJdXSxbMjEsWzE3LFsxNSwicyJdLCJsZW5ndGgiXSwyXV0sWzQ2LFs1MyxbNl1dXV0sWzIyLFsxLFsyMSxbMTUsInQiXSxbNDRdXSxbMzAsWzIzLFsxNyxbMTUsInQiXSwibGVuZ3RoIl0sNF0sWzE4LFsxNyxbMTUsInQiXSwibGVuZ3RoIl0sNl1dXSxbNDYsWzUzLFs2XV1dXSxbNDMsWzE1LCJuIl0sWzE1LCJxIl0sdHJ1ZV1dXV1dLFszNixbMTUsIm4iXV1dLFs1MCwibCIsWzQ2LCJtIl0sWzIyLFsyOCxbMTcsWzE1LCJtIl0sInNldHRpbmdzVGFibGUiXV0sWzQ2LFszNixbN11dXV0sWzUyLCJuIixbOF1dLFs1MyxbNDEsIm8iXSxbMywibyIsMF0sWzYzLFs3LCJvIl0sWzIzLFsxNSwibyJdLFsxNyxbMTcsWzE1LCJtIl0sInNldHRpbmdzVGFibGUiXSwibGVuZ3RoIl1dLFszMyxbMTUsIm8iXSxbMywibyIsWzAsWzE1LCJvIl0sMV1dXSxbNDYsWzUzLFs1MiwicCIsWzE2LFsxNyxbMTUsIm0iXSwic2V0dGluZ3NUYWJsZSJdLFsxNSwibyJdXV0sWzUyLCJxIixbMTcsWzE1LCJwIl0sInJlZGFjdEZpZWxkR3JvdXAiXV0sWzIyLFsyOCxbMTYsWzE1LCJpIl0sWzE1LCJxIl1dXSxbNDYsWzZdXV0sWzQzLFsxNSwibiJdLFsxNSwicSJdLFs4LCJyZWRhY3RGaWVsZEdyb3VwIixbMTUsInEiXSwiZGlzYWxsb3dBbGxSZWdpb25zIixmYWxzZSwiZGlzYWxsb3dlZFJlZ2lvbnMiLFs4XV1dLFs1MiwiciIsWzE2LFsxNSwibiJdLFsxNSwicSJdXV0sWzIyLFsxNyxbMTUsInAiXSwiZGlzYWxsb3dBbGxSZWdpb25zIl0sWzQ2LFs1MyxbNDMsWzE1LCJyIl0sImRpc2FsbG93QWxsUmVnaW9ucyIsdHJ1ZV0sWzZdXV1dLFs0MyxbMTUsInIiXSwiZGlzYWxsb3dlZFJlZ2lvbnMiLFsiayIsWzE3LFsxNSwicCJdLCJkaXNhbGxvd2VkUmVnaW9ucyJdXV1dXV1dLFszNixbMixbMTUsImIiXSwidmFsdWVzIixbNyxbMTUsIm4iXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJPYmplY3QiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJnZXRDb250YWluZXJWZXJzaW9uIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0Q291bnRyeUNvZGUiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRSZWdpb25Db2RlIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0UmVtb3RlQ29uZmlnUGFyYW1ldGVyIl1dLFs1MiwiZyIsWzE1LCJfX21vZHVsZV9hY3Rpdml0aWVzIl1dLFs1MiwiaCIsWzE3LFsxNSwiZyJdLCJBIl1dLFs1MiwiaSIsWzgsIkdPT0dMRV9TSUdOQUxTIixbNyxbOCwibmFtZSIsImFsbG93X2dvb2dsZV9zaWduYWxzIiwidmFsdWUiLGZhbHNlXV0sIkRFVklDRV9BTkRfR0VPIixbNyxbOCwibmFtZSIsImdlb19ncmFudWxhcml0eSIsInZhbHVlIix0cnVlXSxbOCwibmFtZSIsInJlZGFjdF9kZXZpY2VfaW5mbyIsInZhbHVlIix0cnVlXV1dXSxbMzYsWzgsIkEiLFsxNSwiaiJdLCJCIixbMTUsImwiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tQbGF0Zm9ybURldGVjdGlvbiIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZCIsWzQ2LCJlIl0sWzUyLCJmIixbMixbMTUsImMiXSwiQSIsWzddXV0sWzIyLFsxLFsxNSwiZiJdLFsxOCxbMTcsWzE1LCJmIl0sImxlbmd0aCJdLDBdXSxbNDYsWzUzLFsyLFsxNSwiZSJdLCJtZXJnZUhpdERhdGFGb3JLZXkiLFs3LFsxNyxbMTUsImIiXSwiRlQiXSxbOCwicGxmIixbMixbMTUsImYiXSwiam9pbiIsWzcsIi4iXV1dXV1dXV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9wbGF0Zm9ybURldGVjdGlvbiJdXSxbMzYsWzgsIkEiLFsxNSwiZCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZ2FDb252ZXJzaW9uUHJvY2Vzc29yIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJhQyIsWzQ2LCJhRCJdLFs1MiwiYUUiLFs3LFsxNyxbMTUsImYiXSwiQiJdLFsxNyxbMTUsImYiXSwiQyJdXV0sWzUyLCJhRiIsWzUxLCIiLFs3XSxbInIiLFsxNSwiYUQiXV0sWzIsWzE1LCJhQiJdLCJBIixbNyxbMTUsImFEIl1dXSxbMixbMTUsInciXSwiQSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJ0Il0sIkEiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwiYiJdLCJBIixbNyxbMTUsImFEIl1dXSxbMixbMTUsImIiXSwiSiIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJuIl0sIkEiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwieCJdLCJBIixbNyxbMTUsImFEIl1dXSxbMixbMTUsInEiXSwiQSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJiIl0sIkIiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwibSJdLCJBIixbNyxbMTUsImFEIl1dXSxbMixbMTUsImIiXSwiQyIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJiIl0sIkUiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwiYiJdLCJJIixbNyxbMTUsImFEIl1dXSxbMixbMTUsImIiXSwiRyIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJiIl0sIkgiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwieSJdLCJBIixbNyxbMTUsImFEIl1dXSxbMixbMTUsImFBIl0sIkEiLFs3LFsxNSwiYUQiXV1dLFsiayIsWzE1LCJhRCJdXSxbMixbMTUsImwiXSwiQSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJzIl0sIkEiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwiYiJdLCJGIixbNyxbMTUsImFEIl1dXSxbMixbMTUsImIiXSwiRCIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJvIl0sIkEiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwidiJdLCJBIixbNyxbMTUsImFEIl1dXSxbMixbMTUsInUiXSwiQSIsWzcsWzE1LCJhRCJdXV0sWyJ6IixbMTUsImFEIl1dLFsyLFsxNSwicCJdLCJBIixbNyxbMTUsImFEIl1dXV1dLFs1MiwiYUciLFs1MSwiIixbN10sWyJjIixbNTEsIiIsWzddLFsiYUYiXSxbMjIsWzI4LFsiZyIsWzE1LCJhRSJdXV0sWzQ2LFs1MyxbImQiLFs1MSwiIixbN10sWzIyLFsiZyIsWzE1LCJhRSJdXSxbNDYsWzUzLFsyLFsxNSwiYUQiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImkiXSwiTiJdLHRydWVdXSxbImFGIl1dXV1dLFsxNSwiYUUiXV1dXV1dLFsxNSwiYUUiXV1dXSxbImoiLFsxNSwiYUciXV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9jb21tb25BZHNUYXNrcyJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmNvbnNlbnRTY2hlZHVsZUZpcnN0VHJ5Il1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY29uc2VudFNjaGVkdWxlUmV0cnkiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVGbGFncyJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImciLFsicmVxdWlyZSIsImlzQ29uc2VudEdyYW50ZWQiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImoiLFsicmVxdWlyZSIsImludGVybmFsLnF1ZXVlQWRzVHJhbnNtaXNzaW9uIl1dLFs1MiwiayIsWyJyZXF1aXJlIiwiaW50ZXJuYWwudGFza0FkZEFkc0NsaWNrSWRzIl1dLFs1MiwibCIsWzE1LCJfX21vZHVsZV90YXNrQWRkQ29va2llRGVwcmVjYXRpb25MYWJlbCJdXSxbNTIsIm0iLFsxNSwiX19tb2R1bGVfdGFza0FkZERldmVsb3BlcklkIl1dLFs1MiwibiIsWzE1LCJfX21vZHVsZV90YXNrQWRkRXZlbnRQcm92ZW5hbmNlIl1dLFs1MiwibyIsWzE1LCJfX21vZHVsZV90YXNrQWRkVWFjaFBhcmFtcyJdXSxbNTIsInAiLFsxNSwiX19tb2R1bGVfdGFza1NlbmRBZHNIaXRzIl1dLFs1MiwicSIsWzE1LCJfX21vZHVsZV90YXNrU2V0QWRzUGFnZVBhcmFtcyJdXSxbNTIsInIiLFsicmVxdWlyZSIsImludGVybmFsLnRhc2tTZXRBZHNUcmFuc21pc3Npb25UeXBlIl1dLFs1MiwicyIsWzE1LCJfX21vZHVsZV90YXNrU2V0QXVpZFBhcmFtIl1dLFs1MiwidCIsWzE1LCJfX21vZHVsZV90YXNrU2V0Q29uZmlnUGFyYW1zIl1dLFs1MiwidSIsWzE1LCJfX21vZHVsZV90YXNrU2V0RmVhdHVyZVVzYWdlUGFyYW1zIl1dLFs1MiwidiIsWzE1LCJfX21vZHVsZV90YXNrU2V0R29vZ2xlQW5hbHlzaXNQYXJhbXMiXV0sWzUyLCJ3IixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRHcHBQYXJhbXMiXV0sWzUyLCJ4IixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRJZnJhbWVTdGF0ZVBhcmFtIl1dLFs1MiwieSIsWzE1LCJfX21vZHVsZV90YXNrU2V0UHJpdmFjeVBhcmFtcyJdXSxbNTIsInoiLFsicmVxdWlyZSIsImludGVybmFsLnRhc2tTZXRVbml2ZXJzYWxQYXJhbXMiXV0sWzUyLCJhQSIsWzE1LCJfX21vZHVsZV90YXNrU2V0VXJsUGFzc3Rocm91Z2hQYXJhbXMiXV0sWzUyLCJhQiIsWzE1LCJfX21vZHVsZV93ZWJBZHNUYXNrcyJdXSxbMzYsWzgsIkEiLFsxNSwiYUMiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3VzZXJEYXRhV2ViUHJvY2Vzc29yIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJ3IixbNDYsIngiXSxbNTIsInkiLFs3LFsxNyxbMTUsImMiXSwiQiJdLFsxNyxbMTUsImMiXSwiQyJdXV0sWzUyLCJ6IixbNTEsIiIsWzddLFsibSIsWzE1LCJ4Il1dLFsyLFsxNSwidiJdLCJBIixbNyxbMTUsIngiXV1dLFsyLFsxNSwibyJdLCJBIixbNyxbMTUsIngiXV1dLFsyLFsxNSwiYiJdLCJBIixbNyxbMTUsIngiXV1dLFsyLFsxNSwidSJdLCJBIixbNyxbMTUsIngiXV1dLFsyLFsxNSwiaiJdLCJBIixbNyxbMTUsIngiXV1dLFsyLFsxNSwiYiJdLCJHIixbNyxbMTUsIngiXV1dLFsyLFsxNSwicyJdLCJBIixbNyxbMTUsIngiXV1dLFsyLFsxNSwiayJdLCJBIixbNyxbMTUsIngiXV1dLFsiaCIsWzE1LCJ4Il1dLFsyLFsxNSwiaSJdLCJBIixbNyxbMTUsIngiXV1dLFsyLFsxNSwicCJdLCJBIixbNyxbMTUsIngiXV1dLFsyLFsxNSwiciJdLCJBIixbNyxbMTUsIngiXV1dLFsyLFsxNSwibiJdLCJBIixbNyxbMTUsIngiXV1dLFsyLFsxNSwibCJdLCJBIixbNyxbMTUsIngiXV1dLFsyLFsxNSwiYiJdLCJEIixbNyxbMTUsIngiXV1dLFsyLFsxNSwicSJdLCJBIixbNyxbMTUsIngiXV1dLFsidCIsWzE1LCJ4Il1dLFsyMixbMjgsWzIsWzE1LCJ4Il0sImlzQWJvcnRlZCIsWzddXV0sWzQ2LFs1MyxbImciLFsxNSwieCJdXV1dXV1dLFs1MiwiYUEiLFs1MSwiIixbN10sWzIyLFsyOCxbImQiLFsxNSwieSJdXV0sWzQ2LFs1MyxbMzZdXV1dLFsieiJdXV0sWyJmIixbMTUsImFBIl1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfY29tbW9uQWRzVGFza3MiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpc0NvbnNlbnRHcmFudGVkIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLnF1ZXVlQWRzVHJhbnNtaXNzaW9uIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2VuZEFkc0hpdCJdXSxbNTIsImgiLFsicmVxdWlyZSIsImludGVybmFsLnRhc2tBZGRBZHNDbGlja0lkcyJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfdGFza0FkZENvb2tpZURlcHJlY2F0aW9uTGFiZWwiXV0sWzUyLCJqIixbMTUsIl9fbW9kdWxlX3Rhc2tBZGREZXZlbG9wZXJJZCJdXSxbNTIsImsiLFsxNSwiX19tb2R1bGVfdGFza0FkZEV2ZW50UHJvdmVuYW5jZSJdXSxbNTIsImwiLFsxNSwiX19tb2R1bGVfdGFza0FkZFVhY2hQYXJhbXMiXV0sWzUyLCJtIixbInJlcXVpcmUiLCJpbnRlcm5hbC50YXNrU2V0QWRzVHJhbnNtaXNzaW9uVHlwZSJdXSxbNTIsIm4iLFsxNSwiX19tb2R1bGVfdGFza1NldEF1aWRQYXJhbSJdXSxbNTIsIm8iLFsxNSwiX19tb2R1bGVfdGFza1NldENvbmZpZ1BhcmFtcyJdXSxbNTIsInAiLFsxNSwiX19tb2R1bGVfdGFza1NldENvb2tpZUV4cGlyYXRpb25QYXJhbSJdXSxbNTIsInEiLFsxNSwiX19tb2R1bGVfdGFza1NldEZlYXR1cmVVc2FnZVBhcmFtcyJdXSxbNTIsInIiLFsxNSwiX19tb2R1bGVfdGFza1NldEdvb2dsZUFuYWx5c2lzUGFyYW1zIl1dLFs1MiwicyIsWzE1LCJfX21vZHVsZV90YXNrU2V0SWZyYW1lU3RhdGVQYXJhbSJdXSxbNTIsInQiLFsicmVxdWlyZSIsImludGVybmFsLnRhc2tTZXRVbml2ZXJzYWxQYXJhbXMiXV0sWzUyLCJ1IixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRVc2VySWRQYXJhbXMiXV0sWzUyLCJ2IixbMTUsIl9fbW9kdWxlX3dlYkFkc1Rhc2tzIl1dLFszNixbOCwiQSIsWzE1LCJ3Il1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9hZHNDb252ZXJzaW9uU3BsaXQiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsIm8iLFs0NiwicCJdLFs1MiwicSIsWzMwLFsyLFsxNSwicCJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwibCJdLCJNIl1dXSxbOF1dXSxbMjIsWzMwLFsyOCxbMTYsWzE1LCJxIl0sWzE3LFsxNSwiaiJdLCJDIl1dXSxbMjgsWzE2LFsxNSwicSJdLFsxNyxbMTUsImoiXSwiQiJdXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWzI4LFsiayJdXSxbNDYsWzM2XV1dLFs1MiwiciIsWyJpIixbMixbMTUsInAiXSwiZ2V0RGVzdGluYXRpb25JZCIsWzddXSwiY2NkX2VuYWJsZV9jbSJdXSxbNTIsInMiLFsyLFsxNSwicCJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwibCJdLCJDVyJdXV1dLFsyMixbMjgsWzE1LCJzIl1dLFs0NixbNTMsWzM2XV1dXSxbMixbMTUsInAiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiQkQiXSx0cnVlXV0sWzIsWzE1LCJwIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJsIl0sIkJDIl0sdHJ1ZV1dLFsyMixbMjgsWyJtIixbMTUsInMiXV1dLFs0NixbNTMsWzM2XV1dXSxbMixbMTUsInAiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiQlEiXSx0cnVlXV0sWzUyLCJ0IixbMzAsWyJoIixbMTUsInAiXV0sWyJnIl1dXSxbMjIsWzIsWzE1LCJwIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiSVUiXV1dLFs0NixbNTMsWzIsWzE1LCJwIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiSVYiXSxbMTcsWzE1LCJjIl0sIkEiXV1dXV0sWzQ2LFs1MyxbNDEsInYiXSxbMywidiIsWzQ0XV0sWzQxLCJ3Il0sWzMsInciLFs0NF1dLFs1MiwieCIsWzIsWzE1LCJwIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiS0kiXV1dXSxbMjIsWzE1LCJ4Il0sWzQ2LFs1MyxbMjIsWzE2LFsxNSwieCJdLFsxNyxbMTUsImoiXSwiSVUiXV0sWzQ2LFs1MyxbMywidiIsWzE2LFsxNSwieCJdLFsxNyxbMTUsImoiXSwiSVUiXV1dLFszLCJ3IixbMTcsWzE1LCJjIl0sIkIiXV1dXV1dXV0sWzIyLFsyOCxbMTUsInYiXV0sWzQ2LFs1MyxbMywidiIsWyJnIixbMixbMTUsInAiXSwiZ2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJLRyJdXV1dXSxbMywidyIsWzE3LFsxNSwiYyJdLCJDIl1dXV1dLFsyLFsxNSwicCJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJqIl0sIklVIl0sWzE1LCJ2Il1dXSxbMixbMTUsInAiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJJViJdLFsxNSwidyJdXV1dXV0sWzIsWzE1LCJwIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJsIl0sIkNVIl0sWzE1LCJ0Il1dXSxbMjIsWzMwLFsyOCxbMTUsInIiXV0sWzI4LFsyLFsxNSwicCJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwibCJdLCJGIl1dXV1dLFs0NixbNTMsWzIsWzE1LCJwIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJsIl0sIkNXIl0sWzQ0XV1dXV1dLFsyLFsxNSwicCJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwibCJdLCJDRSJdLHRydWVdXSxbMixbMTUsInAiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJJSSJdLFsxNSwidCJdXV0sWzUyLCJ1IixbImQiLFsxNSwicCJdLFs4LCJvbWl0SGl0RGF0YSIsdHJ1ZV1dXSxbMixbMTUsInUiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiQVEiXSxbMTcsWzE1LCJiIl0sIksiXV1dLFsyLFsxNSwidSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwibCJdLCJDVyJdLFsxNSwicyJdXV0sWzIsWzE1LCJ1Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJsIl0sIkJDIl0sdHJ1ZV1dLFsyLFsxNSwidSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwibCJdLCJCRCJdLHRydWVdXSxbMixbMTUsInUiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiQlEiXSx0cnVlXV0sWzIsWzE1LCJ1Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJsIl0sIkNVIl0sWzE1LCJ0Il1dXSxbMixbMTUsInUiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJDUiJdLFsyLFsxNSwicCJdLCJnZXRIaXREYXRhIixbNyxbMTcsWzE1LCJqIl0sIkNSIl1dXV1dLFsyMixbMSxbMTUsInIiXSxbImsiXV0sWzQ2LFs1MyxbMixbMTUsInUiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJLQyJdLCIxIl1dXV1dLFs2OCwidiIsWzUzLFsyLFsxNSwibiJdLCJBIixbNyxbMTUsInUiXV1dXSxbNDZdXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2Fkd29yZHNIaXRUeXBlIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9hZHdvcmRzT3JkZXJJZFNvdXJjZSJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLmNvcHlQcmVIaXQiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZiIsWzE1LCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiXV0sWzUyLCJnIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZW5lcmF0ZUNsaWVudElkIl1dLFs1MiwiaCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0RWNzaWRDb29raWVWYWx1ZSJdXSxbNTIsImkiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImoiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImsiLFsicmVxdWlyZSIsImludGVybmFsLmlzRnBmZSJdXSxbNTIsImwiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJtIixbInJlcXVpcmUiLCJpbnRlcm5hbC51c2VyRGF0YU5lZWRzRW5jcnlwdGlvbiJdXSxbNTIsIm4iLFsxNSwiX19tb2R1bGVfdXNlckRhdGFXZWJQcm9jZXNzb3IiXV0sWzM2LFs4LCJBIixbMTUsIm8iXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2dhY3RDb252ZXJzaW9uUHJvY2Vzc29yIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJhRSIsWzQ2LCJhRiJdLFs1MiwiYUciLFs1MSwiIixbN10sWyJvIixbMTUsImFGIl1dLFsyLFsxNSwiYUQiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJsIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiciJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsInYiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJxIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiYyJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImMiXSwiSiIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJ4Il0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiaiJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsIm4iXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJjIl0sIkIiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiaSJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImMiXSwiQyIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJjIl0sIkUiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiYyJdLCJJIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImMiXSwiRyIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJ5Il0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiYUEiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWyJnIixbMTUsImFGIl1dLFsyLFsxNSwiaCJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsInAiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJjIl0sIkYiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiYyJdLCJEIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImsiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJ3Il0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiYUMiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJzIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiYUIiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJ1Il0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiYUQiXSwiQiIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJhRCJdLCJDIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImIiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJ0Il0sIkEiLFs3LFsxNSwiYUYiXV1dLFsieiIsWzE1LCJhRiJdXSxbMixbMTUsIm0iXSwiQSIsWzcsWzE1LCJhRiJdXV1dXSxbImYiLFsxNSwiYUciXV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9hZHNDb252ZXJzaW9uU3BsaXQiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2NvbW1vbkFkc1Rhc2tzIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucXVldWVBZHNUcmFuc21pc3Npb24iXV0sWzUyLCJnIixbInJlcXVpcmUiLCJpbnRlcm5hbC50YXNrQWRkQWRzQ2xpY2tJZHMiXV0sWzUyLCJoIixbMTUsIl9fbW9kdWxlX3Rhc2tBZGRDb29raWVEZXByZWNhdGlvbkxhYmVsIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV90YXNrQWRkRGV2ZWxvcGVySWQiXV0sWzUyLCJqIixbMTUsIl9fbW9kdWxlX3Rhc2tBZGRFdmVudFByb3ZlbmFuY2UiXV0sWzUyLCJrIixbMTUsIl9fbW9kdWxlX3Rhc2tBZGRVYWNoUGFyYW1zIl1dLFs1MiwibCIsWzE1LCJfX21vZHVsZV90YXNrSW5pdFNlcnZpY2VXb3JrZXIiXV0sWzUyLCJtIixbMTUsIl9fbW9kdWxlX3Rhc2tTZW5kQWRzSGl0cyJdXSxbNTIsIm4iLFsxNSwiX19tb2R1bGVfdGFza1NldEFkc1BhZ2VQYXJhbXMiXV0sWzUyLCJvIixbInJlcXVpcmUiLCJpbnRlcm5hbC50YXNrU2V0QWRzVHJhbnNtaXNzaW9uVHlwZSJdXSxbNTIsInAiLFsxNSwiX19tb2R1bGVfdGFza1NldEF1aWRQYXJhbSJdXSxbNTIsInEiLFsxNSwiX19tb2R1bGVfdGFza1NldENvbmZpZ1BhcmFtcyJdXSxbNTIsInIiLFsxNSwiX19tb2R1bGVfdGFza1NldENvb2tpZUV4cGlyYXRpb25QYXJhbSJdXSxbNTIsInMiLFsxNSwiX19tb2R1bGVfdGFza1NldEN1c3RvbWVyTGlmZWN5Y2xlUGFyYW1zIl1dLFs1MiwidCIsWzE1LCJfX21vZHVsZV90YXNrU2V0RmVhdHVyZVVzYWdlUGFyYW1zIl1dLFs1MiwidSIsWzE1LCJfX21vZHVsZV90YXNrU2V0R29vZ2xlQW5hbHlzaXNQYXJhbXMiXV0sWzUyLCJ2IixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRHcHBQYXJhbXMiXV0sWzUyLCJ3IixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRHc2FFeHBlcmltZW50SWQiXV0sWzUyLCJ4IixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRJZnJhbWVTdGF0ZVBhcmFtIl1dLFs1MiwieSIsWzE1LCJfX21vZHVsZV90YXNrU2V0UHJpdmFjeVBhcmFtcyJdXSxbNTIsInoiLFsicmVxdWlyZSIsImludGVybmFsLnRhc2tTZXRVbml2ZXJzYWxQYXJhbXMiXV0sWzUyLCJhQSIsWzE1LCJfX21vZHVsZV90YXNrU2V0VXJsUGFzc3Rocm91Z2hQYXJhbXMiXV0sWzUyLCJhQiIsWzE1LCJfX21vZHVsZV90YXNrU2V0VXNlcklkUGFyYW1zIl1dLFs1MiwiYUMiLFsxNSwiX19tb2R1bGVfdGFza1N0b3JlQnJhaWRMYWJlbHMiXV0sWzUyLCJhRCIsWzE1LCJfX21vZHVsZV93ZWJBZHNUYXNrcyJdXSxbMzYsWzgsIkEiLFsxNSwiYUUiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Byb2Nlc3NvcnMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImciLFs0NiwiaSIsImoiXSxbNDMsWzE1LCJmIl0sWzE1LCJpIl0sWzgsInByb2Nlc3MiLFsxNSwiaiJdXV1dLFs1MCwiaCIsWzQ2LCJpIiwiaiJdLFs1MiwiayIsWzE2LFsxNSwiZiJdLFsxNSwiaSJdXV0sWzIyLFsyOCxbMTUsImsiXV0sWzQ2LFs1MyxbMixbMTUsImsiXSwibm9TdWNoUHJvY2Vzc29yRm9ySGl0VHlwZSIsWzddXV1dXSxbNjgsImwiLFs1MyxbMixbMTUsImsiXSwicHJvY2VzcyIsWzcsWzE1LCJqIl1dXV0sWzQ2XV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9hZHdvcmRzSGl0VHlwZSJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfZ2FDb252ZXJzaW9uUHJvY2Vzc29yIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9nYWN0Q29udmVyc2lvblByb2Nlc3NvciJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfdXNlckRhdGFXZWJQcm9jZXNzb3IiXV0sWzUyLCJmIixbOF1dLFsiZyIsWzE3LFsxNSwiYiJdLCJGIl0sWzE3LFsxNSwiYyJdLCJBIl1dLFsiZyIsWzE3LFsxNSwiYiJdLCJEIl0sWzE3LFsxNSwiZCJdLCJBIl1dLFsiZyIsWzE3LFsxNSwiYiJdLCJLIl0sWzE3LFsxNSwiZSJdLCJBIl1dLFszNixbOCwiQiIsWzE1LCJoIl0sIkEiLFsxNSwiZyJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogCl0KLCJlbnRpdGllcyI6ewoiX19jIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2F1dG9fcmVkYWN0Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2NvbnZlcnNpb25fbWFya2luZyI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9lbV9kb3dubG9hZCI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9lbV9mb3JtIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2VtX291dGJvdW5kX2NsaWNrIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2VtX3BhZ2VfdmlldyI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9lbV9zY3JvbGwiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfZW1fc2l0ZV9zZWFyY2giOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfZW1fdmlkZW8iOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfZ2FfYWRzX2xpbmsiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfZ2FfZmlyc3QiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfZ2FfbGFzdCI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9nYV9yZWdzY29wZSI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2UiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19nY3QiOnsiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19vZ3RfMXBfZGF0YV92MiI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX29ndF9ldmVudF9jcmVhdGUiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19zZXRfcHJvZHVjdF9zZXR0aW5ncyI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQoKCn0KLCJibG9iIjp7IjEiOiIxIiwiMTAiOiJHLTA4NVQ2WTdQQlB8R1QtVFhCRlNUR0YiLCIxMSI6dHJ1ZSwiMTQiOiI2N20wIiwiMTUiOiIwIiwiMTYiOiJDaEFJOE9DVzB3WVFyNURna0orZThhTjlFaDBBaCtnR2ZtMDZab1VTYVV1amNYMzYzVi9ualFWdjBmd0IvZzhTVEJvQ3A0VT0iLCIxNyI6IiIsIjE5IjoiZGF0YUxheWVyIiwiMiI6dHJ1ZSwiMjAiOiIiLCIyMSI6Ind3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbSIsIjIyIjoiZXlJd0lqb2lUazhpTENJeElqb2lUazh0TURNaUxDSXlJanBtWVd4elpTd2lNeUk2SW1kdmIyZHNaUzV1YnlJc0lqUWlPaUp5WldkcGIyNHhJaXdpTlNJNlptRnNjMlVzSWpZaU9uUnlkV1VzSWpjaU9pSmhaRjl6ZEc5eVlXZGxmR0Z1WVd4NWRHbGpjMTl6ZEc5eVlXZGxmR0ZrWDNWelpYSmZaR0YwWVh4aFpGOXdaWEp6YjI1aGJHbDZZWFJwYjI0aUxDSTVJanAwY25WbGZRIiwiMjMiOiJnb29nbGUudGFnbWFuYWdlci5kZWJ1Z3VpMi5xdWV1ZSIsIjI0IjoidGFnYXNzaXN0YW50Lmdvb2dsZS5jb20iLCIyNyI6MC4wMDUsIjMiOiJ3d3cuZ29vZ2xldGFnbWFuYWdlci5jb20iLCIzMCI6Ik5PIiwiMzEiOiJOTy0wMyIsIjMyIjpmYWxzZSwiMzMiOiJyZWdpb24xIiwiMzQiOiJHLTA4NVQ2WTdQQlAiLCIzNSI6IkciLCIzNiI6Imh0dHBzOi8vYWRzZXJ2aWNlLmdvb2dsZS5jb20vcGFnZWFkL3JlZ2NsayIsIjM3IjoiX19UQUdHWV9JTlNUQUxMRUQiLCIzOCI6ImNjdC5nb29nbGUiLCIzOSI6Imdvb2dUYWdneVJlZmVycmVyIiwiNDAiOiJodHRwczovL2NjdC5nb29nbGUvdGFnZ3kvYWdlbnQuanMiLCI0MSI6Imdvb2dsZS50YWdtYW5hZ2VyLnRhLnByb2RxdWV1ZSIsIjQyIjowLjAxLCI0MyI6IntcImtleXNcIjpbe1wiaHBrZVB1YmxpY0tleVwiOntcInBhcmFtc1wiOntcImFlYWRcIjpcIkFFU18xMjhfR0NNXCIsXCJrZGZcIjpcIkhLREZfU0hBMjU2XCIsXCJrZW1cIjpcIkRIS0VNX1AyNTZfSEtERl9TSEEyNTZcIn0sXCJwdWJsaWNLZXlcIjpcIkJLbHlUWDJqeW9icFFDbWZVeUJiaEJ5UUhrOVoySGRONWxIeHBCQXRJS0dNY216dzBnRStlYmxZQ21tMUdhN2JZZVRkeWRvSm1lNklwYVNvQ1UwSVVVbz1cIixcInZlcnNpb25cIjowfSxcImlkXCI6XCJkZWU0YjM1MS1iMGY1LTRjMjctYThjOC1lZDY2MDQ3N2E0NGNcIn0se1wiaHBrZVB1YmxpY0tleVwiOntcInBhcmFtc1wiOntcImFlYWRcIjpcIkFFU18xMjhfR0NNXCIsXCJrZGZcIjpcIkhLREZfU0hBMjU2XCIsXCJrZW1cIjpcIkRIS0VNX1AyNTZfSEtERl9TSEEyNTZcIn0sXCJwdWJsaWNLZXlcIjpcIkJEdFlCUm5QQlMxZzZtZVhPMXJRNWE1MkI1RmJuaDdEQzVqcXYwMml4SnNzbjBrMUo5cmNIQ2FWYy96elJzbnNIQnpTb0ZLczZKOHBIN0NjblFQM0Vqdz1cIixcInZlcnNpb25cIjowfSxcImlkXCI6XCJhZDE5M2IyYS00YTkwLTRjMWEtYjc5ZS1kZTM3YWMzOTFiZDJcIn0se1wiaHBrZVB1YmxpY0tleVwiOntcInBhcmFtc1wiOntcImFlYWRcIjpcIkFFU18xMjhfR0NNXCIsXCJrZGZcIjpcIkhLREZfU0hBMjU2XCIsXCJrZW1cIjpcIkRIS0VNX1AyNTZfSEtERl9TSEEyNTZcIn0sXCJwdWJsaWNLZXlcIjpcIkJNWjBVTXVkQWU0UG9hZlNUcFV4UHRJa2ZCZUNNYkZCWHZ0eVJZdkhMQ1NRL0VVdkVKc21zVjR0Nk5CL0JFVnBxTDNIdjhnTlNRaDdLK1NVb29mMjVhbz1cIixcInZlcnNpb25cIjowfSxcImlkXCI6XCI0OGM0ZWZlMS1mZGQwLTQzNmEtYWM4Zi05MjNmMTE5MTg3ODdcIn0se1wiaHBrZVB1YmxpY0tleVwiOntcInBhcmFtc1wiOntcImFlYWRcIjpcIkFFU18xMjhfR0NNXCIsXCJrZGZcIjpcIkhLREZfU0hBMjU2XCIsXCJrZW1cIjpcIkRIS0VNX1AyNTZfSEtERl9TSEEyNTZcIn0sXCJwdWJsaWNLZXlcIjpcIkJGZmx2VWwreHBIYUZWQ0lZTzFLUEx4a3YrQWpkbDRkOHJ2clhoSTZ6ZnBuYkJEcUk1MUREa3RISGIzWldJUzU3b0RoMEtpcjlBdUNPb24yTU94TlY5WT1cIixcInZlcnNpb25cIjowfSxcImlkXCI6XCI0MzJiYzI3MC05OWVhLTQyMjAtYjU2Mi1lMmM1YWU3N2Q0ZDlcIn0se1wiaHBrZVB1YmxpY0tleVwiOntcInBhcmFtc1wiOntcImFlYWRcIjpcIkFFU18xMjhfR0NNXCIsXCJrZGZcIjpcIkhLREZfU0hBMjU2XCIsXCJrZW1cIjpcIkRIS0VNX1AyNTZfSEtERl9TSEEyNTZcIn0sXCJwdWJsaWNLZXlcIjpcIkJBUThUa3k0RExXT0piSE9IYlZZRGJRWkVmRWVsYjRGVEI4RVlNUWVSUWlMMW0xTHRBZDByM3pleUxqZ1ozL1cyNFI4VmZiMjJ6WTJpeDZXL1RmQ2pqQT1cIixcInZlcnNpb25cIjowfSxcImlkXCI6XCIwNTBhNmUxMS0zOGFiLTRmODAtODljYi03YjMxOWI5NzA0YzBcIn1dfSIsIjQ0IjoiMTE4ODk3OTIwfjExODg5NzkzMCIsIjQ1Ijp0cnVlLCI0NiI6eyIxIjoiMTAwMCIsIjEwIjoiNjZ1MCIsIjExIjoiNjZnMCIsIjE0IjoiMTAwMCIsIjE2IjoiVVMtQ09+VVMtQ1R+VVMtTVR+VVMtTkV+VVMtTkh+VVMtVFh+VVMtTU5+VVMtTkp+VVMtTUR+VVMtT1J+VVMtREUiLCIxNyI6IlVTLUNPflVTLUNUflVTLU1UflVTLU5FflVTLU5IflVTLVRYflVTLU1OflVTLU5KflVTLU1EflVTLU9SflVTLURFIiwiMiI6IjkiLCIyMCI6IjUwMDAiLCIyMSI6IjUwMDAiLCIyMiI6IjQuNC4wIiwiMjMiOiIwLjAuMCIsIjI1IjoiMSIsIjI2IjoiNDAwMCIsIjI3IjoiMTAwIiwiMyI6IjUiLCI0IjoiYWRfc3RvcmFnZXxhbmFseXRpY3Nfc3RvcmFnZXxhZF91c2VyX2RhdGF8YWRfcGVyc29uYWxpemF0aW9uIiwiNDQiOiIxNTAwMCIsIjQ4IjoiMzAwMDAiLCI1IjoiYWRfc3RvcmFnZXxhbmFseXRpY3Nfc3RvcmFnZXxhZF91c2VyX2RhdGEiLCI2IjoiMSIsIjYxIjoiMTAwMCIsIjYyIjoiQTZPTkhSWTcvYnZCcm8rSU1aZC9hNkxOam43U1N2OTk5U2tOL2hGQUU5TDZ2TXIzNGROZ2ZkU1ZkWW12NFUrTkhaZzFzeGQzOFJ0Y2lScFJVdElSUGdRQUFBQ0NleUp2Y21sbmFXNGlPaUpvZEhSd2N6b3ZMM2QzZHk1bmIyOW5iR1YwWVdkdFlXNWhaMlZ5TG1OdmJUbzBORE1pTENKbVpXRjBkWEpsSWpvaVUyaGhjbVZrVjI5eWEyVnlSWGgwWlc1a1pXUk1hV1psZEdsdFpTSXNJbVY0Y0dseWVTSTZNVGMzTmpjeU9UWXdNQ3dpYVhOVWFHbHlaRkJoY25SNUlqcDBjblZsZlE9PSIsIjYzIjoiMTAwMCIsIjY2IjoiMTAwIiwiNyI6IjEwIn0sIjQ4Ijp0cnVlLCI1IjoiRy0wODVUNlk3UEJQIiwiNTUiOlsiRy0wODVUNlk3UEJQIl0sIjU2IjpbeyIxIjo0MDMsIjMiOjAuNSwiNCI6MTE1OTM4NDY1LCI1IjoxMTU5Mzg0NjYsIjYiOjAsIjciOjJ9LHsiMSI6NDA0LCIzIjowLjUsIjQiOjExNTkzODQ2OCwiNSI6MTE1OTM4NDY5LCI2IjowLCI3IjoxfSx7IjEiOjYwMiwiMyI6MC4wMSwiNCI6MTIwMTI0NDU1LCI1IjoxMjAxMjQ0NTMsIjYiOjEyMDEyNDQ1NCwiNyI6M30seyIxIjo1NjksIjIiOnRydWV9LHsiMSI6NDc1LCIyIjp0cnVlfSx7IjEiOjUwMiwiMiI6dHJ1ZX0seyIxIjo1NzcsIjIiOnRydWV9LHsiMSI6NTY4LCIzIjowLjAxLCI0IjoxMTk3OTE3NDksIjUiOjExOTc5MTc0OCwiNiI6MCwiNyI6MX0seyIxIjo0OTAsIjIiOnRydWV9LHsiMSI6NDkxLCIzIjowLjAxLCI0IjoxMTgwMTIwMDcsIjUiOjExODAxMjAwOCwiNiI6MTE4MDEyMDA5LCI3IjoxfSx7IjEiOjQ4MCwiMiI6dHJ1ZX0seyIxIjo1OTQsIjMiOjAuMDEsIjQiOjExOTc5Mzk3NCwiNSI6MTE5NzkzOTcyLCI2IjoxMTk3OTM5NzMsIjciOjF9LHsiMSI6NTk5LCIyIjp0cnVlfSx7IjEiOjU4MCwiMyI6MC4xLCI0IjoxMTk1MjcwMjAsIjUiOjExOTUyNzAxOSwiNiI6MCwiNyI6MX0seyIxIjo1MjMsIjIiOnRydWV9LHsiMSI6NTgxLCIzIjowLjAxLCI0IjoxMTk5NDg4NTQsIjUiOjExOTk0ODg1MiwiNiI6MTE5OTQ4ODUzLCI3IjozfSx7IjEiOjU1NSwiMyI6MC4wMSwiNCI6MTE5MjU5NjA2LCI1IjoxMTkyNTk2MDUsIjYiOjAsIjciOjJ9LHsiMSI6NTA0LCIyIjp0cnVlfSx7IjEiOjQ2MiwiMyI6MC4wNSwiNCI6MTE4ODA2NTI0LCI1IjoxMTg4MDY1MjUsIjYiOjExODgwNjUyNiwiNyI6MX0seyIxIjo0MTMsIjIiOnRydWV9LHsiMSI6NTkzLCIyIjp0cnVlfSx7IjEiOjUwNiwiMiI6dHJ1ZX0seyIxIjo1MDAsIjIiOnRydWV9LHsiMSI6NTYxLCIzIjowLjAwMSwiNCI6MTE5NDA0NzAzLCI1IjoxMTk0MDQ3MDIsIjYiOjAsIjciOjF9LHsiMSI6NDgxLCIzIjowLjAwMSwiNCI6MTE5NDA0NzAxLCI1IjoxMTk0MDQ3MDAsIjYiOjAsIjciOjF9LHsiMSI6NDUwLCIzIjowLjAxLCI0IjoxMTcyMjc3MTQsIjUiOjExNzIyNzcxNSwiNiI6MTE3MjI3NzE2LCI3IjozfSx7IjEiOjU4MywiMyI6MC41LCI0IjoxMTk4OTY4MDMsIjUiOjExOTg5NjgwMiwiNiI6MCwiNyI6MX0seyIxIjo0NTgsIjIiOnRydWV9LHsiMSI6NTgyLCIzIjowLjAxLCI0IjoxMTkzODE2NjQsIjUiOjExOTM4MTY2MiwiNiI6MTE5MzgxNjYzLCI3IjoxfSx7IjEiOjU3MCwiMiI6dHJ1ZX0seyIxIjo0OTgsIjMiOjAuMiwiNCI6MTE1NjE2OTg1LCI1IjoxMTU2MTY5ODYsIjYiOjAsIjciOjF9LHsiMSI6NTk1LCIyIjp0cnVlfSx7IjEiOjU4OSwiMyI6MC4wMSwiNCI6MTIwMDg0MjE1LCI1IjoxMjAwODQyMTQsIjYiOjAsIjciOjF9LHsiMSI6NDk1LCIzIjowLjA1LCI0IjoxMTgxMzE4MTAsIjUiOjExODEzMTgwOCwiNiI6MTE4MTMxODA5LCI3IjozfSx7IjEiOjU4NywiMyI6MC4xLCI0IjoxMTk3MzIxNzEsIjUiOjExOTczMjE3MCwiNiI6MCwiNyI6M30seyIxIjo1ODQsIjIiOnRydWV9LHsiMSI6NTY0LCIzIjowLjAwMDEsIjQiOjExOTIwNTMxNywiNSI6MTE5MjA1MzE1LCI2IjoxMTkyMDUzMTYsIjciOjF9LHsiMSI6NTU3LCIyIjp0cnVlfSx7IjEiOjQyNywiMyI6MC4xLCI0IjoxMTk3MjQzMjIsIjUiOjExOTcyNDMyMCwiNiI6MTE5NzI0MzIxLCI3IjoyfSx7IjEiOjU3NiwiMyI6MC4wMSwiNCI6MTE5MzE3ODEwLCI1IjoxMTkzMTc4MTEsIjYiOjExOTMxODE3NywiNyI6M30seyIxIjo1NzMsIjIiOnRydWV9LHsiMSI6NDk5LCIyIjp0cnVlfSx7IjEiOjUxNiwiMyI6MC4xLCI0IjoxMTgzOTUzMzUsIjUiOjExODM5NTMzMywiNiI6MTE4Mzk1MzM0LCI3IjoxfSx7IjEiOjUyNCwiMiI6dHJ1ZX1dLCI1OSI6WyJHLTA4NVQ2WTdQQlAiXSwiNiI6IjIxODc0NzAzNCIsIjYyIjp0cnVlLCI2MyI6MC4wMDV9CiwicGVybWlzc2lvbnMiOnsKIl9fYyI6e30KLAoiX19jY2RfYXV0b19yZWRhY3QiOnt9CiwKIl9fY2NkX2NvbnZlcnNpb25fbWFya2luZyI6e30KLAoiX19jY2RfZW1fZG93bmxvYWQiOnsibGlzdGVuX2RhdGFfbGF5ZXIiOnsiYWNjZXNzVHlwZSI6InNwZWNpZmljIiwiYWxsb3dlZEV2ZW50cyI6WyJndG0ubGlua0NsaWNrIl19LCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSI6e30sImRldGVjdF9saW5rX2NsaWNrX2V2ZW50cyI6eyJhbGxvd1dhaXRGb3JUYWdzIjoiIn19CiwKIl9fY2NkX2VtX2Zvcm0iOnsiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiOnt9LCJsaXN0ZW5fZGF0YV9sYXllciI6eyJhY2Nlc3NUeXBlIjoic3BlY2lmaWMiLCJhbGxvd2VkRXZlbnRzIjpbImd0bS5mb3JtSW50ZXJhY3QiLCJndG0uZm9ybVN1Ym1pdCIsImd0bS5jbGljay12MiJdfSwiZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50cyI6eyJhbGxvd1dhaXRGb3JUYWdzIjoiIn0sImRldGVjdF9jbGlja19ldmVudHMiOnt9LCJkZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHMiOnt9fQosCiJfX2NjZF9lbV9vdXRib3VuZF9jbGljayI6eyJnZXRfdXJsIjp7InVybFBhcnRzIjoiYW55IiwicXVlcmllc0FsbG93ZWQiOiJhbnkifSwibGlzdGVuX2RhdGFfbGF5ZXIiOnsiYWNjZXNzVHlwZSI6InNwZWNpZmljIiwiYWxsb3dlZEV2ZW50cyI6WyJndG0ubGlua0NsaWNrIl19LCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSI6e30sImRldGVjdF9saW5rX2NsaWNrX2V2ZW50cyI6eyJhbGxvd1dhaXRGb3JUYWdzIjoiIn19CiwKIl9fY2NkX2VtX3BhZ2VfdmlldyI6eyJsaXN0ZW5fZGF0YV9sYXllciI6eyJhY2Nlc3NUeXBlIjoic3BlY2lmaWMiLCJhbGxvd2VkRXZlbnRzIjpbImd0bS5oaXN0b3J5Q2hhbmdlLXYyIl19LCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSI6e30sImRldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMiOnt9fQosCiJfX2NjZF9lbV9zY3JvbGwiOnsibGlzdGVuX2RhdGFfbGF5ZXIiOnsiYWNjZXNzVHlwZSI6InNwZWNpZmljIiwiYWxsb3dlZEV2ZW50cyI6WyJndG0uc2Nyb2xsRGVwdGgiXX0sImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIjp7fSwiZGV0ZWN0X3Njcm9sbF9ldmVudHMiOnt9fQosCiJfX2NjZF9lbV9zaXRlX3NlYXJjaCI6eyJnZXRfdXJsIjp7InVybFBhcnRzIjoiYW55IiwicXVlcmllc0FsbG93ZWQiOiJhbnkifSwicmVhZF9jb250YWluZXJfZGF0YSI6e319CiwKIl9fY2NkX2VtX3ZpZGVvIjp7Imxpc3Rlbl9kYXRhX2xheWVyIjp7ImFjY2Vzc1R5cGUiOiJzcGVjaWZpYyIsImFsbG93ZWRFdmVudHMiOlsiZ3RtLnZpZGVvIl19LCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSI6e30sImRldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50cyI6eyJhbGxvd0ZpeE1pc3NpbmdKYXZhU2NyaXB0QXBpIjpmYWxzZX19CiwKIl9fY2NkX2dhX2Fkc19saW5rIjp7ImdldF91c2VyX2FnZW50Ijp7fSwicmVhZF9ldmVudF9kYXRhIjp7ImV2ZW50RGF0YUFjY2VzcyI6ImFueSJ9LCJyZWFkX3RpdGxlIjp7fSwicmVhZF9zY3JlZW5fZGltZW5zaW9ucyI6e30sImFjY2Vzc19jb25zZW50Ijp7ImNvbnNlbnRUeXBlcyI6W3siY29uc2VudFR5cGUiOiJhZF9wZXJzb25hbGl6YXRpb24iLCJyZWFkIjp0cnVlLCJ3cml0ZSI6ZmFsc2V9LHsiY29uc2VudFR5cGUiOiJhZF9zdG9yYWdlIiwicmVhZCI6dHJ1ZSwid3JpdGUiOmZhbHNlfSx7ImNvbnNlbnRUeXBlIjoiYWRfdXNlcl9kYXRhIiwicmVhZCI6dHJ1ZSwid3JpdGUiOmZhbHNlfV19LCJnZXRfdXJsIjp7InVybFBhcnRzIjoiYW55In0sImdldF9yZWZlcnJlciI6eyJ1cmxQYXJ0cyI6ImFueSJ9LCJhY2Nlc3NfZ2xvYmFscyI6eyJrZXlzIjpbeyJrZXkiOiJfX2dzYUV4cC5pZCIsInJlYWQiOmZhbHNlLCJ3cml0ZSI6ZmFsc2UsImV4ZWN1dGUiOnRydWV9XX19CiwKIl9fY2NkX2dhX2ZpcnN0Ijp7InJlYWRfZG9tX2VsZW1lbnRzIjp7ImFsbG93ZWRDc3NTZWxlY3RvcnMiOiJhbnkifSwiZ2V0X3VybCI6eyJ1cmxQYXJ0cyI6InNwZWNpZmljIiwicHJvdG9jb2wiOnRydWUsImhvc3QiOnRydWV9fQosCiJfX2NjZF9nYV9sYXN0Ijp7fQosCiJfX2NjZF9nYV9yZWdzY29wZSI6eyJyZWFkX2NvbnRhaW5lcl9kYXRhIjp7fX0KLAoiX19lIjp7InJlYWRfZXZlbnRfZGF0YSI6eyJldmVudERhdGFBY2Nlc3MiOiJzcGVjaWZpYyIsImtleVBhdHRlcm5zIjpbImV2ZW50Il19fQosCiJfX2djdCI6eyJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSI6e319CiwKIl9fb2d0XzFwX2RhdGFfdjIiOnsiZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YSI6eyJsaW1pdERhdGFTb3VyY2VzIjp0cnVlLCJhbGxvd0F1dG9EYXRhU291cmNlcyI6dHJ1ZSwiYWxsb3dNYW51YWxEYXRhU291cmNlcyI6ZmFsc2UsImFsbG93Q29kZURhdGFTb3VyY2VzIjpmYWxzZX19CiwKIl9fb2d0X2V2ZW50X2NyZWF0ZSI6eyJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSI6e319CiwKIl9fc2V0X3Byb2R1Y3Rfc2V0dGluZ3MiOnt9CgoKfQoKCgosInNlY3VyaXR5X2dyb3VwcyI6ewoiZ29vZ2xlIjpbCiJfX2MiCiwKIl9fY2NkX2F1dG9fcmVkYWN0IgosCiJfX2NjZF9jb252ZXJzaW9uX21hcmtpbmciCiwKIl9fY2NkX2VtX2Rvd25sb2FkIgosCiJfX2NjZF9lbV9mb3JtIgosCiJfX2NjZF9lbV9vdXRib3VuZF9jbGljayIKLAoiX19jY2RfZW1fcGFnZV92aWV3IgosCiJfX2NjZF9lbV9zY3JvbGwiCiwKIl9fY2NkX2VtX3NpdGVfc2VhcmNoIgosCiJfX2NjZF9lbV92aWRlbyIKLAoiX19jY2RfZ2FfYWRzX2xpbmsiCiwKIl9fY2NkX2dhX2ZpcnN0IgosCiJfX2NjZF9nYV9sYXN0IgosCiJfX2NjZF9nYV9yZWdzY29wZSIKLAoiX19lIgosCiJfX2djdCIKLAoiX19vZ3RfMXBfZGF0YV92MiIKLAoiX19vZ3RfZXZlbnRfY3JlYXRlIgosCiJfX3NldF9wcm9kdWN0X3NldHRpbmdzIgoKXQoKCn0KCgoKCgp9OwoKCgoKdmFyIGssYWE9dHlwZW9mIE9iamVjdC5jcmVhdGU9PSJmdW5jdGlvbiI/T2JqZWN0LmNyZWF0ZTpmdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbigpe307Yi5wcm90b3R5cGU9YTtyZXR1cm4gbmV3IGJ9LGJhPXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz09ImZ1bmN0aW9uIj9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9LGNhPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGEsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF0sYz0wO2M8Yi5sZW5ndGg7KytjKXt2YXIgZD1iW2NdO2lmKGQmJmQuTWF0aD09TWF0aClyZXR1cm4gZH10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpOwp9LGhhPWNhKHRoaXMpLGlhPXR5cGVvZiBTeW1ib2w9PT0iZnVuY3Rpb24iJiZ0eXBlb2YgU3ltYm9sKCJ4Iik9PT0ic3ltYm9sIixrYT17fSxsYT17fSxuYT1mdW5jdGlvbihhLGIsYyl7aWYoIWN8fGEhPW51bGwpe3ZhciBkPWxhW2JdO2lmKGQ9PW51bGwpcmV0dXJuIGFbYl07dmFyIGU9YVtkXTtyZXR1cm4gZSE9PXZvaWQgMD9lOmFbYl19fSxvYT1mdW5jdGlvbihhLGIsYyl7aWYoYilhOnt2YXIgZD1hLnNwbGl0KCIuIiksZT1kLmxlbmd0aD09PTEsZj1kWzBdLGc7IWUmJmYgaW4ga2E/Zz1rYTpnPWhhO2Zvcih2YXIgaD0wO2g8ZC5sZW5ndGgtMTtoKyspe3ZhciBsPWRbaF07aWYoIShsIGluIGcpKWJyZWFrIGE7Zz1nW2xdfXZhciBuPWRbZC5sZW5ndGgtMV0scD1pYSYmYz09PSJlczYiP2dbbl06bnVsbCxxPWIocCk7aWYocSE9bnVsbClpZihlKWJhKGthLG4se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpxfSk7ZWxzZSBpZihxIT09cCl7aWYobGFbbl09PT12b2lkIDApe3ZhciByPQpNYXRoLnJhbmRvbSgpKjFFOT4+PjA7bGFbbl09aWE/aGEuU3ltYm9sKG4pOiIkanNjcCQiK3IrIiQiK259YmEoZyxsYVtuXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnF9KX19fSxwYTtpZihpYSYmdHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj09ImZ1bmN0aW9uIilwYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y7ZWxzZXt2YXIgcmE7YTp7dmFyIHRhPXthOiEwfSx1YT17fTt0cnl7dWEuX19wcm90b19fPXRhO3JhPXVhLmE7YnJlYWsgYX1jYXRjaChhKXt9cmE9ITF9cGE9cmE/ZnVuY3Rpb24oYSxiKXthLl9fcHJvdG9fXz1iO2lmKGEuX19wcm90b19fIT09Yil0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBhfTpudWxsfQp2YXIgdmE9cGEsd2E9ZnVuY3Rpb24oYSxiKXthLnByb3RvdHlwZT1hYShiLnByb3RvdHlwZSk7YS5wcm90b3R5cGUuY29uc3RydWN0b3I9YTtpZih2YSl2YShhLGIpO2Vsc2UgZm9yKHZhciBjIGluIGIpaWYoYyE9InByb3RvdHlwZSIpaWYoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMpe3ZhciBkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYixjKTtkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxjLGQpfWVsc2UgYVtjXT1iW2NdO2EuRnQ9Yi5wcm90b3R5cGV9LHhhPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fSxtPWZ1bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiBTeW1ib2whPSJ1bmRlZmluZWQiJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtpZihiKXJldHVybiBiLmNhbGwoYSk7aWYodHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIilyZXR1cm57bmV4dDp4YShhKX07CnRocm93IEVycm9yKFN0cmluZyhhKSsiIGlzIG5vdCBhbiBpdGVyYWJsZSBvciBBcnJheUxpa2UiKTt9LHlhPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYixjPVtdOyEoYj1hLm5leHQoKSkuZG9uZTspYy5wdXNoKGIudmFsdWUpO3JldHVybiBjfSx3PWZ1bmN0aW9uKGEpe3JldHVybiBhIGluc3RhbmNlb2YgQXJyYXk/YTp5YShtKGEpKX0sQWE9ZnVuY3Rpb24oYSl7cmV0dXJuIHphKGEsYSl9LHphPWZ1bmN0aW9uKGEsYil7YS5yYXc9YjtPYmplY3QuZnJlZXplJiYoT2JqZWN0LmZyZWV6ZShhKSxPYmplY3QuZnJlZXplKGIpKTtyZXR1cm4gYX0sQmE9aWEmJnR5cGVvZiBuYShPYmplY3QsImFzc2lnbiIpPT0iZnVuY3Rpb24iP25hKE9iamVjdCwiYXNzaWduIik6ZnVuY3Rpb24oYSxiKXtpZihhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIk5vIG51bGxpc2ggYXJnIik7YT1PYmplY3QoYSk7Zm9yKHZhciBjPTE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyl7dmFyIGQ9YXJndW1lbnRzW2NdOwppZihkKWZvcih2YXIgZSBpbiBkKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGUpJiYoYVtlXT1kW2VdKX1yZXR1cm4gYX07b2EoIk9iamVjdC5hc3NpZ24iLGZ1bmN0aW9uKGEpe3JldHVybiBhfHxCYX0sImVzNiIpO3ZhciBDYT1mdW5jdGlvbihhKXtpZighKGEgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2ErIiBpcyBub3QgYW4gb2JqZWN0Iik7fSxEYT1mdW5jdGlvbigpe3RoaXMuZmE9ITE7dGhpcy5SPW51bGw7dGhpcy5qYT12b2lkIDA7dGhpcy5IPTE7dGhpcy5OPXRoaXMuWj0wO3RoaXMuTGE9dGhpcy5LPW51bGx9LEVhPWZ1bmN0aW9uKGEpe2lmKGEuZmEpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2EuZmE9ITB9O0RhLnByb3RvdHlwZS55YT1mdW5jdGlvbihhKXt0aGlzLmphPWF9Owp2YXIgR2E9ZnVuY3Rpb24oYSxiKXthLks9e2FvOmIsaXNFeGNlcHRpb246ITB9O2EuSD1hLlp8fGEuTn07RGEucHJvdG90eXBlLmdldE5leHRBZGRyZXNzSnNjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSH07RGEucHJvdG90eXBlLmdldFlpZWxkUmVzdWx0SnNjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuamF9O0RhLnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYSl7dGhpcy5LPXtyZXR1cm46YX07dGhpcy5IPXRoaXMuTn07RGEucHJvdG90eXBlWyJyZXR1cm4iXT1EYS5wcm90b3R5cGUucmV0dXJuO0RhLnByb3RvdHlwZS5Baj1mdW5jdGlvbihhKXt0aGlzLks9e25kOmF9O3RoaXMuSD10aGlzLk59O0RhLnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9RGEucHJvdG90eXBlLkFqO0RhLnByb3RvdHlwZS5hYz1mdW5jdGlvbihhLGIpe3RoaXMuSD1iO3JldHVybnt2YWx1ZTphfX07RGEucHJvdG90eXBlLnlpZWxkPURhLnByb3RvdHlwZS5hYzsKRGEucHJvdG90eXBlLnhzPWZ1bmN0aW9uKGEsYil7dmFyIGM9bShhKSxkPWMubmV4dCgpO0NhKGQpO2lmKGQuZG9uZSl0aGlzLmphPWQudmFsdWUsdGhpcy5IPWI7ZWxzZSByZXR1cm4gdGhpcy5SPWMsdGhpcy5hYyhkLnZhbHVlLGIpfTtEYS5wcm90b3R5cGUueWllbGRBbGw9RGEucHJvdG90eXBlLnhzO0RhLnByb3RvdHlwZS5uZD1mdW5jdGlvbihhKXt0aGlzLkg9YX07RGEucHJvdG90eXBlLmp1bXBUbz1EYS5wcm90b3R5cGUubmQ7RGEucHJvdG90eXBlLkRqPWZ1bmN0aW9uKCl7dGhpcy5IPTB9O0RhLnByb3RvdHlwZS5qdW1wVG9FbmQ9RGEucHJvdG90eXBlLkRqO0RhLnByb3RvdHlwZS5Oaj1mdW5jdGlvbihhLGIpe3RoaXMuWj1hO2IhPXZvaWQgMCYmKHRoaXMuTj1iKX07RGEucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1EYS5wcm90b3R5cGUuTmo7RGEucHJvdG90eXBlLnZnPWZ1bmN0aW9uKGEpe3RoaXMuWj0wO3RoaXMuTj1hfHwwfTsKRGEucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1EYS5wcm90b3R5cGUudmc7RGEucHJvdG90eXBlLklqPWZ1bmN0aW9uKGEsYil7dGhpcy5IPWE7dGhpcy5aPWJ8fDB9O0RhLnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPURhLnByb3RvdHlwZS5JajtEYS5wcm90b3R5cGUuUGg9ZnVuY3Rpb24oYSl7dGhpcy5aPWF8fDA7dmFyIGI9dGhpcy5LLmFvO3RoaXMuSz1udWxsO3JldHVybiBifTtEYS5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPURhLnByb3RvdHlwZS5QaDtEYS5wcm90b3R5cGUua2Q9ZnVuY3Rpb24oYSxiLGMpe2M/dGhpcy5MYVtjXT10aGlzLks6dGhpcy5MYT1bdGhpcy5LXTt0aGlzLlo9YXx8MDt0aGlzLk49Ynx8MH07RGEucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPURhLnByb3RvdHlwZS5rZDsKRGEucHJvdG90eXBlLmhlPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5MYS5zcGxpY2UoYnx8MClbMF0sZD10aGlzLks9dGhpcy5LfHxjO2Q/ZC5pc0V4Y2VwdGlvbj90aGlzLkg9dGhpcy5afHx0aGlzLk46ZC5uZCE9dm9pZCAwJiZ0aGlzLk48ZC5uZD8odGhpcy5IPWQubmQsdGhpcy5LPW51bGwpOnRoaXMuSD10aGlzLk46dGhpcy5IPWF9O0RhLnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1EYS5wcm90b3R5cGUuaGU7RGEucHJvdG90eXBlLmZlPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgSGEoYSl9O0RhLnByb3RvdHlwZS5mb3JJbj1EYS5wcm90b3R5cGUuZmU7dmFyIEhhPWZ1bmN0aW9uKGEpe3RoaXMuSz1hO3RoaXMuSD1bXTtmb3IodmFyIGIgaW4gYSl0aGlzLkgucHVzaChiKTt0aGlzLkgucmV2ZXJzZSgpfTtIYS5wcm90b3R5cGUuaG89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuSC5sZW5ndGg+MDspe3ZhciBhPXRoaXMuSC5wb3AoKTtpZihhIGluIHRoaXMuSylyZXR1cm4gYX1yZXR1cm4gbnVsbH07CkhhLnByb3RvdHlwZS5nZXROZXh0PUhhLnByb3RvdHlwZS5obzsKdmFyIElhPWZ1bmN0aW9uKGEpe3RoaXMuSD1uZXcgRGE7dGhpcy5LPWF9LExhPWZ1bmN0aW9uKGEsYil7RWEoYS5IKTt2YXIgYz1hLkguUjtpZihjKXJldHVybiBKYShhLCJyZXR1cm4iaW4gYz9jWyJyZXR1cm4iXTpmdW5jdGlvbihkKXtyZXR1cm57dmFsdWU6ZCxkb25lOiEwfX0sYixhLkgucmV0dXJuKTthLkgucmV0dXJuKGIpO3JldHVybiBLYShhKX0sSmE9ZnVuY3Rpb24oYSxiLGMsZCl7dHJ5e3ZhciBlPWIuY2FsbChhLkguUixjKTtDYShlKTtpZighZS5kb25lKXJldHVybiBhLkguZmE9ITEsZTt2YXIgZj1lLnZhbHVlfWNhdGNoKGcpe3JldHVybiBhLkguUj1udWxsLEdhKGEuSCxnKSxLYShhKX1hLkguUj1udWxsO2QuY2FsbChhLkgsZik7cmV0dXJuIEthKGEpfSxLYT1mdW5jdGlvbihhKXtmb3IoO2EuSC5IOyl0cnl7dmFyIGI9YS5LKGEuSCk7aWYoYilyZXR1cm4gYS5ILmZhPSExLHt2YWx1ZTpiLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGQpe2EuSC5qYT12b2lkIDAsR2EoYS5ILApkKX1hLkguZmE9ITE7aWYoYS5ILkspe3ZhciBjPWEuSC5LO2EuSC5LPW51bGw7aWYoYy5pc0V4Y2VwdGlvbil0aHJvdyBjLmFvO3JldHVybnt2YWx1ZTpjLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fSxNYT1mdW5jdGlvbihhKXt0aGlzLm5leHQ9ZnVuY3Rpb24oYil7dmFyIGM7RWEoYS5IKTthLkguUj9jPUphKGEsYS5ILlIubmV4dCxiLGEuSC55YSk6KGEuSC55YShiKSxjPUthKGEpKTtyZXR1cm4gY307dGhpcy50aHJvdz1mdW5jdGlvbihiKXt2YXIgYztFYShhLkgpO2EuSC5SP2M9SmEoYSxhLkguUlsidGhyb3ciXSxiLGEuSC55YSk6KEdhKGEuSCxiKSxjPUthKGEpKTtyZXR1cm4gY307dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIExhKGEsYil9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX0sTmE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1uZXcgTWEobmV3IElhKGIpKTt2YSYmYS5wcm90b3R5cGUmJnZhKGMsCmEucHJvdG90eXBlKTtyZXR1cm4gY30sT2E9ZnVuY3Rpb24oKXtmb3IodmFyIGE9TnVtYmVyKHRoaXMpLGI9W10sYz1hO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspYltjLWFdPWFyZ3VtZW50c1tjXTtyZXR1cm4gYn0sUWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGF9Oy8qCgogQ29weXJpZ2h0IFRoZSBDbG9zdXJlIExpYnJhcnkgQXV0aG9ycy4KIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiovCnZhciBSYT10aGlzfHxzZWxmLFNhPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe31jLnByb3RvdHlwZT1iLnByb3RvdHlwZTthLkZ0PWIucHJvdG90eXBlO2EucHJvdG90eXBlPW5ldyBjO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7YS5udj1mdW5jdGlvbihkLGUsZil7Zm9yKHZhciBnPUFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMiksaD0yO2g8YXJndW1lbnRzLmxlbmd0aDtoKyspZ1toLTJdPWFyZ3VtZW50c1toXTtyZXR1cm4gYi5wcm90b3R5cGVbZV0uYXBwbHkoZCxnKX19O3ZhciBUYT1mdW5jdGlvbihhLGIpe3RoaXMudHlwZT1hO3RoaXMuZGF0YT1ifTt2YXIgVWE9ZnVuY3Rpb24oKXt0aGlzLm1hcD17fTt0aGlzLkg9e319O1VhLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubWFwWyJkdXN0LiIrYV19O1VhLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz0iZHVzdC4iK2E7dGhpcy5ILmhhc093blByb3BlcnR5KGMpfHwodGhpcy5tYXBbY109Yil9O1VhLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubWFwLmhhc093blByb3BlcnR5KCJkdXN0LiIrYSl9O1VhLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oYSl7dmFyIGI9ImR1c3QuIithO3RoaXMuSC5oYXNPd25Qcm9wZXJ0eShiKXx8ZGVsZXRlIHRoaXMubWFwW2JdfTsKdmFyIFZhPWZ1bmN0aW9uKGEsYil7dmFyIGM9W10sZDtmb3IoZCBpbiBhLm1hcClpZihhLm1hcC5oYXNPd25Qcm9wZXJ0eShkKSl7dmFyIGU9ZC5zdWJzdHJpbmcoNSk7c3dpdGNoKGIpe2Nhc2UgMTpjLnB1c2goZSk7YnJlYWs7Y2FzZSAyOmMucHVzaChhLm1hcFtkXSk7YnJlYWs7Y2FzZSAzOmMucHVzaChbZSxhLm1hcFtkXV0pfX1yZXR1cm4gY307VWEucHJvdG90eXBlLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIFZhKHRoaXMsMSl9O1VhLnByb3RvdHlwZS5oYz1mdW5jdGlvbigpe3JldHVybiBWYSh0aGlzLDIpfTtVYS5wcm90b3R5cGUuZmM9ZnVuY3Rpb24oKXtyZXR1cm4gVmEodGhpcywzKX07dmFyIFdhPWZ1bmN0aW9uKCl7fTtXYS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt9O3ZhciBYYT1mdW5jdGlvbigpe3RoaXMudmFsdWU9e307dGhpcy5wcmVmaXg9Imd0bS4ifTtrPVhhLnByb3RvdHlwZTtrLnNldD1mdW5jdGlvbihhLGIpe3RoaXMudmFsdWVbdGhpcy5wcmVmaXgrU3RyaW5nKGEpXT1ifTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZVt0aGlzLnByZWZpeCtTdHJpbmcoYSldfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZS5oYXNPd25Qcm9wZXJ0eSh0aGlzLnByZWZpeCtTdHJpbmcoYSkpfTtrLmRlbGV0ZT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLnByZWZpeCtTdHJpbmcoYSk7cmV0dXJuIHRoaXMudmFsdWUuaGFzT3duUHJvcGVydHkoYik/KGRlbGV0ZSB0aGlzLnZhbHVlW2JdLCEwKTohMX07ay5jbGVhcj1mdW5jdGlvbigpe3RoaXMudmFsdWU9e319OwprLnZhbHVlcz1mdW5jdGlvbigpe3ZhciBhPXRoaXM7cmV0dXJuIGZ1bmN0aW9uIGMoKXt2YXIgZCxlLGY7cmV0dXJuIE5hKGMsZnVuY3Rpb24oZyl7c3dpdGNoKGcuSCl7Y2FzZSAxOmcudmcoMiksZT1nLmZlKGEudmFsdWUpO2Nhc2UgNDppZigoZD1lLmhvKCkpPT1udWxsKXtnLm5kKDIpO2JyZWFrfWlmKCFhLnZhbHVlLmhhc093blByb3BlcnR5KGQpKXtnLm5kKDQpO2JyZWFrfWY9UWE7cmV0dXJuIGcuYWMoYS52YWx1ZVtkXSw4KTtjYXNlIDg6ZihnLmphKTtnLm5kKDQpO2JyZWFrO2Nhc2UgMjpnLmtkKCksZy5oZSgwKX19KX0oKX07aGEuT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoWGEucHJvdG90eXBlLHtzaXplOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy52YWx1ZSkubGVuZ3RofX19KTsKZnVuY3Rpb24gWWEoKXt0cnl7aWYoTWFwKXJldHVybiBuZXcgTWFwfWNhdGNoKGEpe31yZXR1cm4gbmV3IFhhfTt2YXIgWmE9ZnVuY3Rpb24oKXt0aGlzLnZhbHVlcz1bXX07WmEucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhKXt0aGlzLnZhbHVlcy5pbmRleE9mKGEpPT09LTEmJnRoaXMudmFsdWVzLnB1c2goYSl9O1phLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWVzLmluZGV4T2YoYSk+LTF9O3ZhciAkYT1mdW5jdGlvbihhLGIpe3RoaXMuZmE9YTt0aGlzLnBhcmVudD1iO3RoaXMuUj10aGlzLks9dm9pZCAwO3RoaXMuSGI9ITE7dGhpcy5OPWZ1bmN0aW9uKGQsZSxmKXtyZXR1cm4gZC5hcHBseShlLGYpfTt0aGlzLkg9WWEoKTt2YXIgYzthOnt0cnl7aWYoU2V0KXtjPW5ldyBTZXQ7YnJlYWsgYX19Y2F0Y2goZCl7fWM9bmV3IFphfXRoaXMuWj1jfTskYS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYil7YWIodGhpcyxhLGIsITEpfTskYS5wcm90b3R5cGUuUWg9ZnVuY3Rpb24oYSxiKXthYih0aGlzLGEsYiwhMCl9O3ZhciBhYj1mdW5jdGlvbihhLGIsYyxkKXthLkhifHxhLlouaGFzKGIpfHwoZCYmYS5aLmFkZChiKSxhLkguc2V0KGIsYykpfTtrPSRhLnByb3RvdHlwZTsKay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLkhifHwoIXRoaXMuSC5oYXMoYSkmJnRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5oYXMoYSk/dGhpcy5wYXJlbnQuc2V0KGEsYik6dGhpcy5aLmhhcyhhKXx8dGhpcy5ILnNldChhLGIpKX07ay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuSC5oYXMoYSk/dGhpcy5ILmdldChhKTp0aGlzLnBhcmVudD90aGlzLnBhcmVudC5nZXQoYSk6dm9pZCAwfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4hIXRoaXMuSC5oYXMoYSl8fCEoIXRoaXMucGFyZW50fHwhdGhpcy5wYXJlbnQuaGFzKGEpKX07ay53Yj1mdW5jdGlvbigpe3ZhciBhPW5ldyAkYSh0aGlzLmZhLHRoaXMpO3RoaXMuSyYmYS5RYih0aGlzLkspO2Euc2QodGhpcy5OKTthLnVlKHRoaXMuUik7cmV0dXJuIGF9O2suamU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mYX07ay5RYj1mdW5jdGlvbihhKXt0aGlzLks9YX07ay5mbz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkt9OwprLnNkPWZ1bmN0aW9uKGEpe3RoaXMuTj1hfTtrLlBqPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTn07ay5aYT1mdW5jdGlvbigpe3RoaXMuSGI9ITB9O2sudWU9ZnVuY3Rpb24oYSl7dGhpcy5SPWF9O2sueGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SfTt2YXIgYmI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2Q9RXJyb3IuY2FsbCh0aGlzLGEubWVzc2FnZSk7dGhpcy5tZXNzYWdlPWQubWVzc2FnZTsic3RhY2siaW4gZCYmKHRoaXMuc3RhY2s9ZC5zdGFjayk7dGhpcy52bz1hO3RoaXMuU249Yz09PXZvaWQgMD8hMTpjO3RoaXMuSz1bXTt0aGlzLkg9Yn07d2EoYmIsRXJyb3IpO3ZhciBjYj1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIGJiP2E6bmV3IGJiKGEsdm9pZCAwLCEwKX07dmFyIGRiPVlhKCk7ZnVuY3Rpb24gZWIoYSxiKXtmb3IodmFyIGMsZD1tKGIpLGU9ZC5uZXh0KCk7IWUuZG9uZSYmIShjPWZiKGEsZS52YWx1ZSksYyBpbnN0YW5jZW9mIFRhKTtlPWQubmV4dCgpKTtyZXR1cm4gY31mdW5jdGlvbiBmYihhLGIpe3RyeXt2YXIgYz1iWzBdLGQ9Yi5zbGljZSgxKSxlPVN0cmluZyhjKSxmPWRiLmhhcyhlKT9kYi5nZXQoZSk6YS5nZXQoZSk7aWYoIWZ8fHR5cGVvZiBmLmludm9rZSE9PSJmdW5jdGlvbiIpdGhyb3cgY2IoRXJyb3IoIkF0dGVtcHRpbmcgdG8gZXhlY3V0ZSBub24tZnVuY3Rpb24gIitiWzBdKyIuIikpO3JldHVybiBmLmFwcGx5KGEsZCl9Y2F0Y2goaCl7dmFyIGc9YS5mbygpO2cmJmcoaCxiLmNvbnRleHQ/e2lkOmJbMF0sbGluZTpiLmNvbnRleHQubGluZX06bnVsbCk7dGhyb3cgaDt9fTt2YXIgZ2I9ZnVuY3Rpb24oKXt0aGlzLks9bmV3IFdhO3RoaXMuSD1uZXcgJGEodGhpcy5LKX07az1nYi5wcm90b3R5cGU7ay5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkt9O2suUWI9ZnVuY3Rpb24oYSl7dGhpcy5ILlFiKGEpfTtrLnNkPWZ1bmN0aW9uKGEpe3RoaXMuSC5zZChhKX07ay5leGVjdXRlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnJrKFthXS5jb25jYXQodyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKSl9O2sucms9ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj1tKE9hLmFwcGx5KDAsYXJndW1lbnRzKSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpYT1mYih0aGlzLkgsYy52YWx1ZSk7cmV0dXJuIGF9O2suSnE9ZnVuY3Rpb24oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpLGM9dGhpcy5ILndiKCk7Yy51ZShhKTtmb3IodmFyIGQsZT1tKGIpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKWQ9ZmIoYyxmLnZhbHVlKTtyZXR1cm4gZH07ay5aYT1mdW5jdGlvbigpe3RoaXMuSC5aYSgpfTt2YXIgaGI9ZnVuY3Rpb24oYSxiKXt0aGlzLlI9YTt0aGlzLnBhcmVudD1iO3RoaXMuTj10aGlzLkg9dm9pZCAwO3RoaXMuSGI9ITE7dGhpcy5LPWZ1bmN0aW9uKGMsZCxlKXtyZXR1cm4gYy5hcHBseShkLGUpfTt0aGlzLnZhbHVlcz1uZXcgVWF9O2hiLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxiKXtqYih0aGlzLGEsYiwhMSl9O2hiLnByb3RvdHlwZS5RaD1mdW5jdGlvbihhLGIpe2piKHRoaXMsYSxiLCEwKX07dmFyIGpiPWZ1bmN0aW9uKGEsYixjLGQpe2lmKCFhLkhiKWlmKGQpe3ZhciBlPWEudmFsdWVzO2Uuc2V0KGIsYyk7ZS5IWyJkdXN0LiIrYl09ITB9ZWxzZSBhLnZhbHVlcy5zZXQoYixjKX07az1oYi5wcm90b3R5cGU7ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLkhifHwoIXRoaXMudmFsdWVzLmhhcyhhKSYmdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmhhcyhhKT90aGlzLnBhcmVudC5zZXQoYSxiKTp0aGlzLnZhbHVlcy5zZXQoYSxiKSl9OwprLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZXMuaGFzKGEpP3RoaXMudmFsdWVzLmdldChhKTp0aGlzLnBhcmVudD90aGlzLnBhcmVudC5nZXQoYSk6dm9pZCAwfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4hIXRoaXMudmFsdWVzLmhhcyhhKXx8ISghdGhpcy5wYXJlbnR8fCF0aGlzLnBhcmVudC5oYXMoYSkpfTtrLndiPWZ1bmN0aW9uKCl7dmFyIGE9bmV3IGhiKHRoaXMuUix0aGlzKTt0aGlzLkgmJmEuUWIodGhpcy5IKTthLnNkKHRoaXMuSyk7YS51ZSh0aGlzLk4pO3JldHVybiBhfTtrLmplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUn07ay5RYj1mdW5jdGlvbihhKXt0aGlzLkg9YX07ay5mbz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkh9O2suc2Q9ZnVuY3Rpb24oYSl7dGhpcy5LPWF9O2suUGo9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5IYj0hMH07ay51ZT1mdW5jdGlvbihhKXt0aGlzLk49YX07ay54Yj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk59O3ZhciBrYj1mdW5jdGlvbigpe3RoaXMuTmE9ITE7dGhpcy5sYT1uZXcgVWF9O2s9a2IucHJvdG90eXBlO2suZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmdldChhKX07ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLk5hfHx0aGlzLmxhLnNldChhLGIpfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5oYXMoYSl9O2sucmVtb3ZlPWZ1bmN0aW9uKGEpe3RoaXMuTmF8fHRoaXMubGEucmVtb3ZlKGEpfTtrLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuRmEoKX07ay5oYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmhjKCl9O2suZmM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5mYygpfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5OYT0hMH07ay5IYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk5hfTtmdW5jdGlvbiBsYigpe2Zvcih2YXIgYT1tYixiPXt9LGM9MDtjPGEubGVuZ3RoOysrYyliW2FbY11dPWM7cmV0dXJuIGJ9ZnVuY3Rpb24gbmIoKXt2YXIgYT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiO2ErPWEudG9Mb3dlckNhc2UoKSsiMDEyMzQ1Njc4OS1fIjtyZXR1cm4gYSsiLiJ9dmFyIG1iLG9iO2Z1bmN0aW9uIHBiKGEpe21iPW1ifHxuYigpO29iPW9ifHxsYigpO2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKz0zKXt2YXIgZD1jKzE8YS5sZW5ndGgsZT1jKzI8YS5sZW5ndGgsZj1hLmNoYXJDb2RlQXQoYyksZz1kP2EuY2hhckNvZGVBdChjKzEpOjAsaD1lP2EuY2hhckNvZGVBdChjKzIpOjAsbD1mPj4yLG49KGYmMyk8PDR8Zz4+NCxwPShnJjE1KTw8MnxoPj42LHE9aCY2MztlfHwocT02NCxkfHwocD02NCkpO2IucHVzaChtYltsXSxtYltuXSxtYltwXSxtYltxXSl9cmV0dXJuIGIuam9pbigiIil9CmZ1bmN0aW9uIHFiKGEpe2Z1bmN0aW9uIGIobCl7Zm9yKDtkPGEubGVuZ3RoOyl7dmFyIG49YS5jaGFyQXQoZCsrKSxwPW9iW25dO2lmKHAhPW51bGwpcmV0dXJuIHA7aWYoIS9eW1xzXHhhMF0qJC8udGVzdChuKSl0aHJvdyBFcnJvcigiVW5rbm93biBiYXNlNjQgZW5jb2RpbmcgYXQgY2hhcjogIituKTt9cmV0dXJuIGx9bWI9bWJ8fG5iKCk7b2I9b2J8fGxiKCk7Zm9yKHZhciBjPSIiLGQ9MDs7KXt2YXIgZT1iKC0xKSxmPWIoMCksZz1iKDY0KSxoPWIoNjQpO2lmKGg9PT02NCYmZT09PS0xKXJldHVybiBjO2MrPVN0cmluZy5mcm9tQ2hhckNvZGUoZTw8MnxmPj40KTtnIT09NjQmJihjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGY8PDQmMjQwfGc+PjIpLGghPT02NCYmKGMrPVN0cmluZy5mcm9tQ2hhckNvZGUoZzw8NiYxOTJ8aCkpKX19O3ZhciByYj17fTtmdW5jdGlvbiBzYihhLGIpe3ZhciBjPXJiW2FdO2N8fChjPXJiW2FdPVtdKTtjW2JdPSEwfWZ1bmN0aW9uIHRiKCl7ZGVsZXRlIHJiLkdBNF9FVkVOVH1mdW5jdGlvbiB1Yigpe3ZhciBhPXZiLkguc2xpY2UoKTtyYi5HVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTD1hfWZ1bmN0aW9uIHdiKGEpe2Zvcih2YXIgYj1bXSxjPTAsZD0wO2Q8YS5sZW5ndGg7ZCsrKWQlOD09PTAmJmQ+MCYmKGIucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGMpKSxjPTApLGFbZF0mJihjfD0xPDxkJTgpO2M+MCYmYi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYykpO3JldHVybiBwYihiLmpvaW4oIiIpKS5yZXBsYWNlKC9cLiskLywiIil9O2Z1bmN0aW9uIHhiKCl7fWZ1bmN0aW9uIHliKGEpe3JldHVybiB0eXBlb2YgYT09PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gemIoYSl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyJ9ZnVuY3Rpb24gQWIoYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciImJiFpc05hTihhKX1mdW5jdGlvbiBCYihhKXtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hOlthXX1mdW5jdGlvbiBDYihhLGIpe2lmKGEmJkFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYVtjXSYmYihhW2NdKSlyZXR1cm4gYVtjXX1mdW5jdGlvbiBEYihhLGIpe2lmKCFBYihhKXx8IUFiKGIpfHxhPmIpYT0wLGI9MjE0NzQ4MzY0NztyZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKihiLWErMSkrYSl9CmZ1bmN0aW9uIEViKGEsYil7Zm9yKHZhciBjPW5ldyBGYixkPTA7ZDxhLmxlbmd0aDtkKyspYy5zZXQoYVtkXSwhMCk7Zm9yKHZhciBlPTA7ZTxiLmxlbmd0aDtlKyspaWYoYy5nZXQoYltlXSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gR2IoYSxiKXtmb3IodmFyIGMgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxjKSYmYihjLGFbY10pfWZ1bmN0aW9uIEhiKGEpe3JldHVybiEhYSYmKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKT09PSJbb2JqZWN0IEFyZ3VtZW50c10ifHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSwiY2FsbGVlIikpfWZ1bmN0aW9uIEliKGEpe3JldHVybiBNYXRoLnJvdW5kKE51bWJlcihhKSl8fDB9ZnVuY3Rpb24gSmIoYSl7cmV0dXJuImZhbHNlIj09PVN0cmluZyhhKS50b0xvd2VyQ2FzZSgpPyExOiEhYX0KZnVuY3Rpb24gS2IoYSl7dmFyIGI9W107aWYoQXJyYXkuaXNBcnJheShhKSlmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKyliLnB1c2goU3RyaW5nKGFbY10pKTtyZXR1cm4gYn1mdW5jdGlvbiBMYihhKXtyZXR1cm4gYT9hLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKToiIn1mdW5jdGlvbiBNYigpe3JldHVybiBuZXcgRGF0ZShEYXRlLm5vdygpKX1mdW5jdGlvbiBOYigpe3JldHVybiBNYigpLmdldFRpbWUoKX12YXIgRmI9ZnVuY3Rpb24oKXt0aGlzLnByZWZpeD0iZ3RtLiI7dGhpcy52YWx1ZXM9e319O0ZiLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLnZhbHVlc1t0aGlzLnByZWZpeCthXT1ifTtGYi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlc1t0aGlzLnByZWZpeCthXX07RmIucHJvdG90eXBlLmNvbnRhaW5zPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmdldChhKSE9PXZvaWQgMH07CmZ1bmN0aW9uIE9iKGEsYixjKXtyZXR1cm4gYSYmYS5oYXNPd25Qcm9wZXJ0eShiKT9hW2JdOmN9ZnVuY3Rpb24gUGIoYSl7dmFyIGI9YTtyZXR1cm4gZnVuY3Rpb24oKXtpZihiKXt2YXIgYz1iO2I9dm9pZCAwO3RyeXtjKCl9Y2F0Y2goZCl7fX19fWZ1bmN0aW9uIFFiKGEsYil7Zm9yKHZhciBjIGluIGIpYi5oYXNPd25Qcm9wZXJ0eShjKSYmKGFbY109YltjXSl9ZnVuY3Rpb24gUmIoYSxiKXtmb3IodmFyIGM9W10sZD0wO2Q8YS5sZW5ndGg7ZCsrKWMucHVzaChhW2RdKSxjLnB1c2guYXBwbHkoYyxiW2FbZF1dfHxbXSk7cmV0dXJuIGN9ZnVuY3Rpb24gU2IoYSxiKXtyZXR1cm4gYS5sZW5ndGg+PWIubGVuZ3RoJiZhLnN1YnN0cmluZygwLGIubGVuZ3RoKT09PWJ9ZnVuY3Rpb24gVGIoYSxiKXtyZXR1cm4gYS5sZW5ndGg+PWIubGVuZ3RoJiZhLnN1YnN0cmluZyhhLmxlbmd0aC1iLmxlbmd0aCxhLmxlbmd0aCk9PT1ifQpmdW5jdGlvbiBVYihhLGIsYyl7Yz1jfHxbXTtmb3IodmFyIGQ9YSxlPTA7ZTxiLmxlbmd0aC0xO2UrKyl7aWYoIWQuaGFzT3duUHJvcGVydHkoYltlXSkpcmV0dXJuO2Q9ZFtiW2VdXTtpZihjLmluZGV4T2YoZCk+PTApcmV0dXJufXJldHVybiBkfWZ1bmN0aW9uIFZiKGEsYil7Zm9yKHZhciBjPXt9LGQ9YyxlPWEuc3BsaXQoIi4iKSxmPTA7ZjxlLmxlbmd0aC0xO2YrKylkPWRbZVtmXV09e307ZFtlW2UubGVuZ3RoLTFdXT1iO3JldHVybiBjfXZhciBXYj0vXlx3ezEsOX0kLztmdW5jdGlvbiBZYihhLGIpe2E9YXx8e307Yj1ifHwiLCI7dmFyIGM9W107R2IoYSxmdW5jdGlvbihkLGUpe1diLnRlc3QoZCkmJmUmJmMucHVzaChkKX0pO3JldHVybiBjLmpvaW4oYil9CmZ1bmN0aW9uIFpiKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWEuY2hhckNvZGVBdChjKTtkPDEyOD9iLnB1c2goZCk6ZDwyMDQ4P2IucHVzaCgxOTJ8ZD4+NiwxMjh8ZCY2Myk6ZDw1NTI5Nnx8ZD49NTczNDQ/Yi5wdXNoKDIyNHxkPj4xMiwxMjh8ZD4+NiY2MywxMjh8ZCY2Myk6KGQ9NjU1MzYrKChkJjEwMjMpPDwxMHxhLmNoYXJDb2RlQXQoKytjKSYxMDIzKSxiLnB1c2goMjQwfGQ+PjE4LDEyOHxkPj4xMiY2MywxMjh8ZD4+NiY2MywxMjh8ZCY2MykpfXJldHVybiBuZXcgVWludDhBcnJheShiKX1mdW5jdGlvbiAkYihhKXtpZighYSlyZXR1cm4gYTt2YXIgYj1hO3RyeXtiPWRlY29kZVVSSUNvbXBvbmVudChhKX1jYXRjaChkKXt9dmFyIGM9Yi5zcGxpdCgiLCIpO3JldHVybiBjLmxlbmd0aD09PTImJmNbMF09PT1jWzFdP2NbMF06YX0KZnVuY3Rpb24gYWMoYSxiLGMpe2Z1bmN0aW9uIGQobil7dmFyIHA9bi5zcGxpdCgiPSIpWzBdO2lmKGEuaW5kZXhPZihwKTwwKXJldHVybiBuO2lmKGMhPT12b2lkIDApcmV0dXJuIHArIj0iK2N9ZnVuY3Rpb24gZShuKXtyZXR1cm4gbi5zcGxpdCgiJiIpLm1hcChkKS5maWx0ZXIoZnVuY3Rpb24ocCl7cmV0dXJuIHAhPT12b2lkIDB9KS5qb2luKCImIil9dmFyIGY9Yi5ocmVmLnNwbGl0KC9bPyNdLylbMF0sZz1iLnNlYXJjaCxoPWIuaGFzaDtnWzBdPT09Ij8iJiYoZz1nLnN1YnN0cmluZygxKSk7aFswXT09PSIjIiYmKGg9aC5zdWJzdHJpbmcoMSkpO2c9ZShnKTtoPWUoaCk7ZyE9PSIiJiYoZz0iPyIrZyk7aCE9PSIiJiYoaD0iIyIraCk7dmFyIGw9IiIrZitnK2g7bFtsLmxlbmd0aC0xXT09PSIvIiYmKGw9bC5zdWJzdHJpbmcoMCxsLmxlbmd0aC0xKSk7cmV0dXJuIGx9CmZ1bmN0aW9uIGJjKGEpe2Zvcih2YXIgYj0wO2I8MzsrK2IpdHJ5e3ZhciBjPWRlY29kZVVSSUNvbXBvbmVudChhKS5yZXBsYWNlKC9cKy9nLCIgIik7aWYoYz09PWEpYnJlYWs7YT1jfWNhdGNoKGQpe3JldHVybiIifXJldHVybiBhfWZ1bmN0aW9uIGNjKCl7dmFyIGE9QSxiO2E6e3ZhciBjPWEuY3J5cHRvfHxhLm1zQ3J5cHRvO2lmKGMmJmMuZ2V0UmFuZG9tVmFsdWVzKXRyeXt2YXIgZD1uZXcgVWludDhBcnJheSgyNSk7Yy5nZXRSYW5kb21WYWx1ZXMoZCk7Yj1idG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHcoZCkpKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC8sIiIpO2JyZWFrIGF9Y2F0Y2goZSl7fWI9dm9pZCAwfXJldHVybiBifTsvKgoKIENvcHlyaWdodCBHb29nbGUgTExDCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwp2YXIgZGM9Z2xvYmFsVGhpcy50cnVzdGVkVHlwZXMsZWM7ZnVuY3Rpb24gZmMoKXt2YXIgYT1udWxsO2lmKCFkYylyZXR1cm4gYTt0cnl7dmFyIGI9ZnVuY3Rpb24oYyl7cmV0dXJuIGN9O2E9ZGMuY3JlYXRlUG9saWN5KCJnb29nI2h0bWwiLHtjcmVhdGVIVE1MOmIsY3JlYXRlU2NyaXB0OmIsY3JlYXRlU2NyaXB0VVJMOmJ9KX1jYXRjaChjKXt9cmV0dXJuIGF9ZnVuY3Rpb24gaGMoKXtlYz09PXZvaWQgMCYmKGVjPWZjKCkpO3JldHVybiBlY307dmFyIGljPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTtpYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IKyIifTtmdW5jdGlvbiBqYyhhKXt2YXIgYj1hLGM9aGMoKSxkPWM/Yy5jcmVhdGVTY3JpcHRVUkwoYik6YjtyZXR1cm4gbmV3IGljKGQpfWZ1bmN0aW9uIGtjKGEpe2lmKGEgaW5zdGFuY2VvZiBpYylyZXR1cm4gYS5IO3Rocm93IEVycm9yKCIiKTt9O3ZhciBsYz1BYShbIiJdKSxtYz16YShbIlx4MDAiXSxbIlxcMCJdKSxuYz16YShbIlxuIl0sWyJcXG4iXSksb2M9emEoWyJceDAwIl0sWyJcXHUwMDAwIl0pO2Z1bmN0aW9uIHBjKGEpe3JldHVybiBhLnRvU3RyaW5nKCkuaW5kZXhPZigiYCIpPT09LTF9cGMoZnVuY3Rpb24oYSl7cmV0dXJuIGEobGMpfSl8fHBjKGZ1bmN0aW9uKGEpe3JldHVybiBhKG1jKX0pfHxwYyhmdW5jdGlvbihhKXtyZXR1cm4gYShuYyl9KXx8cGMoZnVuY3Rpb24oYSl7cmV0dXJuIGEob2MpfSk7dmFyIHFjPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTtxYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IfTt2YXIgcmM9ZnVuY3Rpb24oYSl7dGhpcy5Kcz1hfTtmdW5jdGlvbiBzYyhhKXtyZXR1cm4gbmV3IHJjKGZ1bmN0aW9uKGIpe3JldHVybiBiLnN1YnN0cigwLGEubGVuZ3RoKzEpLnRvTG93ZXJDYXNlKCk9PT1hKyI6In0pfXZhciB0Yz1bc2MoImRhdGEiKSxzYygiaHR0cCIpLHNjKCJodHRwcyIpLHNjKCJtYWlsdG8iKSxzYygiZnRwIiksbmV3IHJjKGZ1bmN0aW9uKGEpe3JldHVybi9eW146XSooWy8/I118JCkvLnRlc3QoYSl9KV07ZnVuY3Rpb24gdWMoYSl7dmFyIGI7Yj1iPT09dm9pZCAwP3RjOmI7aWYoYSBpbnN0YW5jZW9mIHFjKXJldHVybiBhO2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7KytjKXt2YXIgZD1iW2NdO2lmKGQgaW5zdGFuY2VvZiByYyYmZC5KcyhhKSlyZXR1cm4gbmV3IHFjKGEpfX12YXIgdmM9L15ccyooPyFqYXZhc2NyaXB0OikoPzpbXHcrLi1dKzp8W146Lz8jXSooPzpbLz8jXXwkKSkvaTsKZnVuY3Rpb24gd2MoYSl7dmFyIGI7aWYoYSBpbnN0YW5jZW9mIHFjKWlmKGEgaW5zdGFuY2VvZiBxYyliPWEuSDtlbHNlIHRocm93IEVycm9yKCIiKTtlbHNlIGI9dmMudGVzdChhKT9hOnZvaWQgMDtyZXR1cm4gYn07ZnVuY3Rpb24geGMoYSxiKXt2YXIgYz13YyhiKTtjIT09dm9pZCAwJiYoYS5hY3Rpb249Yyl9O2Z1bmN0aW9uIHljKGEsYil7dGhyb3cgRXJyb3IoYj09PXZvaWQgMD8idW5leHBlY3RlZCB2YWx1ZSAiK2ErIiEiOmIpO307dmFyIHpjPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTt6Yy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IKyIifTt2YXIgQmM9ZnVuY3Rpb24oKXt0aGlzLkg9QWNbMF0udG9Mb3dlckNhc2UoKX07QmMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSH07ZnVuY3Rpb24gQ2MoYSxiKXt2YXIgYz1bbmV3IEJjXTtpZihjLmxlbmd0aD09PTApdGhyb3cgRXJyb3IoIiIpO3ZhciBkPWMubWFwKGZ1bmN0aW9uKGYpe3ZhciBnO2lmKGYgaW5zdGFuY2VvZiBCYylnPWYuSDtlbHNlIHRocm93IEVycm9yKCIiKTtyZXR1cm4gZ30pLGU9Yi50b0xvd2VyQ2FzZSgpO2lmKGQuZXZlcnkoZnVuY3Rpb24oZil7cmV0dXJuIGUuaW5kZXhPZihmKSE9PTB9KSl0aHJvdyBFcnJvcignQXR0cmlidXRlICInK2IrJyIgZG9lcyBub3QgbWF0Y2ggYW55IG9mIHRoZSBhbGxvd2VkIHByZWZpeGVzLicpO2Euc2V0QXR0cmlidXRlKGIsInRydWUiKX07dmFyIERjPUFycmF5LnByb3RvdHlwZS5pbmRleE9mP2Z1bmN0aW9uKGEsYil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoYSxiLHZvaWQgMCl9OmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilyZXR1cm4gdHlwZW9mIGIhPT0ic3RyaW5nInx8Yi5sZW5ndGghPTE/LTE6YS5pbmRleE9mKGIsMCk7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYyBpbiBhJiZhW2NdPT09YilyZXR1cm4gYztyZXR1cm4tMX07IkFSVElDTEUgU0VDVElPTiBOQVYgQVNJREUgSDEgSDIgSDMgSDQgSDUgSDYgSEVBREVSIEZPT1RFUiBBRERSRVNTIFAgSFIgUFJFIEJMT0NLUVVPVEUgT0wgVUwgTEggTEkgREwgRFQgREQgRklHVVJFIEZJR0NBUFRJT04gTUFJTiBESVYgRU0gU1RST05HIFNNQUxMIFMgQ0lURSBRIERGTiBBQkJSIFJVQlkgUkIgUlQgUlRDIFJQIERBVEEgVElNRSBDT0RFIFZBUiBTQU1QIEtCRCBTVUIgU1VQIEkgQiBVIE1BUksgQkRJIEJETyBTUEFOIEJSIFdCUiBOT0JSIElOUyBERUwgUElDVFVSRSBQQVJBTSBUUkFDSyBNQVAgVEFCTEUgQ0FQVElPTiBDT0xHUk9VUCBDT0wgVEJPRFkgVEhFQUQgVEZPT1QgVFIgVEQgVEggU0VMRUNUIERBVEFMSVNUIE9QVEdST1VQIE9QVElPTiBPVVRQVVQgUFJPR1JFU1MgTUVURVIgRklFTERTRVQgTEVHRU5EIERFVEFJTFMgU1VNTUFSWSBNRU5VIERJQUxPRyBTTE9UIENBTlZBUyBGT05UIENFTlRFUiBBQ1JPTllNIEJBU0VGT05UIEJJRyBESVIgSEdST1VQIFNUUklLRSBUVCIuc3BsaXQoIiAiKS5jb25jYXQoWyJCVVRUT04iLAoiSU5QVVQiXSk7ZnVuY3Rpb24gRWMoYSl7cmV0dXJuIGE9PT1udWxsPyJudWxsIjphPT09dm9pZCAwPyJ1bmRlZmluZWQiOmF9O3ZhciBBPXdpbmRvdyxGYz1bXSxHYz13aW5kb3cuaGlzdG9yeSxCPWRvY3VtZW50LEhjPW5hdmlnYXRvcjtmdW5jdGlvbiBJYygpe3ZhciBhO3RyeXthPUhjLnNlcnZpY2VXb3JrZXJ9Y2F0Y2goYil7cmV0dXJufXJldHVybiBhfXZhciBKYz1CLmN1cnJlbnRTY3JpcHQsS2M9SmMmJkpjLnNyYztmdW5jdGlvbiBNYyhhLGIpe3ZhciBjPUEsZD1jW2FdO2NbYV09ZD09PXZvaWQgMD9iOmQ7cmV0dXJuIGNbYV19ZnVuY3Rpb24gTmMoYSl7cmV0dXJuKEhjLnVzZXJBZ2VudHx8IiIpLmluZGV4T2YoYSkhPT0tMX1mdW5jdGlvbiBPYygpe3JldHVybiBOYygiRmlyZWZveCIpfHxOYygiRnhpT1MiKX1mdW5jdGlvbiBQYygpe3JldHVybihOYygiR1NBIil8fE5jKCJHb29nbGVBcHAiKSkmJihOYygiaVBob25lIil8fE5jKCJpUGFkIikpfWZ1bmN0aW9uIFFjKCl7cmV0dXJuIE5jKCJFZGcvIil8fE5jKCJFZGdBLyIpfHxOYygiRWRnaU9TLyIpfQp2YXIgUmM9e2FzeW5jOjEsbm9uY2U6MSxvbmVycm9yOjEsb25sb2FkOjEsc3JjOjEsdHlwZToxfSxTYz17aGVpZ2h0OjEsb25sb2FkOjEsc3JjOjEsc3R5bGU6MSx3aWR0aDoxfTtmdW5jdGlvbiBUYyhhLGIsYyl7YiYmR2IoYixmdW5jdGlvbihkLGUpe2Q9ZC50b0xvd2VyQ2FzZSgpO2MuaGFzT3duUHJvcGVydHkoZCl8fGEuc2V0QXR0cmlidXRlKGQsZSl9KX0KZnVuY3Rpb24gVWMoYSxiLGMsZCxlKXt2YXIgZj1CLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO1RjKGYsZCxSYyk7Zi50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiO2YuYXN5bmM9ZCYmZC5hc3luYz09PSExPyExOiEwO3ZhciBnO2c9amMoRWMoYSkpO2Yuc3JjPWtjKGcpO3ZhciBoLGw9Zi5vd25lckRvY3VtZW50O2w9bD09PXZvaWQgMD9kb2N1bWVudDpsO3ZhciBuLHAscT0ocD0obj1sKS5xdWVyeVNlbGVjdG9yKT09bnVsbD92b2lkIDA6cC5jYWxsKG4sInNjcmlwdFtub25jZV0iKTsoaD1xPT1udWxsPyIiOnEubm9uY2V8fHEuZ2V0QXR0cmlidXRlKCJub25jZSIpfHwiIikmJmYuc2V0QXR0cmlidXRlKCJub25jZSIsaCk7YiYmKGYub25sb2FkPWIpO2MmJihmLm9uZXJyb3I9Yyk7ZT9lLmFwcGVuZENoaWxkKGYpOlZjLkJzKGYpO3JldHVybiBmfQpmdW5jdGlvbiBXYygpe2lmKEtjKXt2YXIgYT1LYy50b0xvd2VyQ2FzZSgpO2lmKGEuaW5kZXhPZigiaHR0cHM6Ly8iKT09PTApcmV0dXJuIDI7aWYoYS5pbmRleE9mKCJodHRwOi8vIik9PT0wKXJldHVybiAzfXJldHVybiAxfWZ1bmN0aW9uIFhjKGEsYixjLGQsZSxmKXtmPWY9PT12b2lkIDA/ITA6Zjt2YXIgZz1lLGg9ITE7Z3x8KGc9Qi5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxoPSEwKTtUYyhnLGMsU2MpO2QmJkdiKGQsZnVuY3Rpb24obixwKXtnLmRhdGFzZXRbbl09cH0pO2YmJihnLmhlaWdodD0iMCIsZy53aWR0aD0iMCIsZy5zdHlsZS5kaXNwbGF5PSJub25lIixnLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIpO2EhPT12b2lkIDAmJihnLnNyYz1hKTtpZihoKXt2YXIgbD1CLmJvZHkmJkIuYm9keS5sYXN0Q2hpbGR8fEIuYm9keXx8Qi5oZWFkO2wucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZyxsKX1iJiYoZy5vbmxvYWQ9Yik7cmV0dXJuIGd9CmZ1bmN0aW9uIFpjKCl7cmV0dXJuIFZjLkVyLmFwcGx5KFZjLHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSl9ZnVuY3Rpb24gJGMoYSxiLGMsZCl7YS5hZGRFdmVudExpc3RlbmVyJiZhLmFkZEV2ZW50TGlzdGVuZXIoYixjLCEhZCl9ZnVuY3Rpb24gYWQoYSxiLGMpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lciYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYywhMSl9ZnVuY3Rpb24gYmQoYSl7QS5zZXRUaW1lb3V0KGEsMCl9ZnVuY3Rpb24gY2QoYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyksZCxlPShkPUEpLnNldEludGVydmFsLmFwcGx5KGQsW2EsYl0uY29uY2F0KHcoYykpKTtGYy5wdXNoKGUpO3JldHVybiBlfQpmdW5jdGlvbiBkZChhKXt2YXIgYj1BO3liKGIucXVldWVNaWNyb3Rhc2spP2IucXVldWVNaWNyb3Rhc2soYSk6eWIoYi5Qcm9taXNlKSYmYi5Qcm9taXNlLnJlc29sdmU/Yi5Qcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCl7YSgpfSkuY2F0Y2goZnVuY3Rpb24oKXt9KTpiZChhKX1mdW5jdGlvbiBlZChhLGIpe3JldHVybiBhJiZiJiZhLmF0dHJpYnV0ZXMmJmEuYXR0cmlidXRlc1tiXT9hLmF0dHJpYnV0ZXNbYl0udmFsdWU6bnVsbH1mdW5jdGlvbiBmZChhKXt2YXIgYj1hLmlubmVyVGV4dHx8YS50ZXh0Q29udGVudHx8IiI7YiYmYiE9PSIgIiYmKGI9Yi5yZXBsYWNlKC9eW1xzXHhhMF0rL2csIiIpLGI9Yi5yZXBsYWNlKC9bXHNceGEwXSskL2csIiIpKTtiJiYoYj1iLnJlcGxhY2UoLyhceGEwK3xcc3syLH18XG58XHJcdCkvZywiICIpKTtyZXR1cm4gYn0KZnVuY3Rpb24gZ2QoYSl7dmFyIGI9Qi5jcmVhdGVFbGVtZW50KCJkaXYiKSxjPWIsZCxlPUVjKCJBPGRpdj4iK2ErIjwvZGl2PiIpLGY9aGMoKSxnPWY/Zi5jcmVhdGVIVE1MKGUpOmU7ZD1uZXcgemMoZyk7aWYoYy5ub2RlVHlwZT09PTEmJi9eKHNjcmlwdHxzdHlsZSkkL2kudGVzdChjLnRhZ05hbWUpKXRocm93IEVycm9yKCIiKTt2YXIgaDtpZihkIGluc3RhbmNlb2YgemMpaD1kLkg7ZWxzZSB0aHJvdyBFcnJvcigiIik7Yy5pbm5lckhUTUw9aDtiPWIubGFzdENoaWxkO2Zvcih2YXIgbD1bXTtiJiZiLmZpcnN0Q2hpbGQ7KWwucHVzaChiLnJlbW92ZUNoaWxkKGIuZmlyc3RDaGlsZCkpO3JldHVybiBsfQpmdW5jdGlvbiBoZChhLGIsYyl7Yz1jfHwxMDA7Zm9yKHZhciBkPXt9LGU9MDtlPGIubGVuZ3RoO2UrKylkW2JbZV1dPSEwO2Zvcih2YXIgZj1hLGc9MDtmJiZnPD1jO2crKyl7aWYoZFtTdHJpbmcoZi50YWdOYW1lKS50b0xvd2VyQ2FzZSgpXSlyZXR1cm4gZjtmPWYucGFyZW50RWxlbWVudH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBpZChhLGIsYyl7dmFyIGQ7dHJ5e2Q9SGMuc2VuZEJlYWNvbiYmSGMuc2VuZEJlYWNvbihhKX1jYXRjaChlKXtzYigiVEFHR0lORyIsMTUpfWQ/Yj09bnVsbHx8YigpOlpjKGEsYixjKX1mdW5jdGlvbiBqZChhLGIpe3RyeXtpZihIYy5zZW5kQmVhY29uIT09dm9pZCAwKXJldHVybiBIYy5zZW5kQmVhY29uKGEsYil9Y2F0Y2goYyl7c2IoIlRBR0dJTkciLDE1KX1yZXR1cm4hMX1mdW5jdGlvbiBrZCgpe3JldHVybiBIYy5zZW5kQmVhY29uIT09dm9pZCAwfQp2YXIgbGQ9e2NhY2hlOiJuby1zdG9yZSIsY3JlZGVudGlhbHM6ImluY2x1ZGUiLGtlZXBhbGl2ZTohMCxtZXRob2Q6IlBPU1QiLG1vZGU6Im5vLWNvcnMiLHJlZGlyZWN0OiJmb2xsb3cifTsKZnVuY3Rpb24gbWQoYSxiLGMsZCxlKXtpZihuZCgpKXt2YXIgZj1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGxkKTtiJiYoZi5ib2R5PWIpO2MmJihjLmF0dHJpYnV0aW9uUmVwb3J0aW5nJiYoZi5hdHRyaWJ1dGlvblJlcG9ydGluZz1jLmF0dHJpYnV0aW9uUmVwb3J0aW5nKSxjLmJyb3dzaW5nVG9waWNzIT09dm9pZCAwJiYoZi5icm93c2luZ1RvcGljcz1jLmJyb3dzaW5nVG9waWNzKSxjLmNyZWRlbnRpYWxzJiYoZi5jcmVkZW50aWFscz1jLmNyZWRlbnRpYWxzKSxjLmtlZXBhbGl2ZSE9PXZvaWQgMCYmKGYua2VlcGFsaXZlPWMua2VlcGFsaXZlKSxjLm1ldGhvZCYmKGYubWV0aG9kPWMubWV0aG9kKSxjLm1vZGUmJihmLm1vZGU9Yy5tb2RlKSk7dHJ5e3ZhciBnPUEuZmV0Y2goYSxmKTtpZihnKXJldHVybiBnLnRoZW4oZnVuY3Rpb24obCl7bCYmKGwub2t8fGwuc3RhdHVzPT09MCk/ZD09bnVsbHx8ZCgpOmU9PW51bGx8fGUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ZT09Cm51bGx8fGUoKX0pLCEwfWNhdGNoKGwpe319aWYoKGM9PW51bGw/MDpjLlFnKXx8KGM9PW51bGw/MDpjLmNyZWRlbnRpYWxzKSYmYy5jcmVkZW50aWFscyE9PSJpbmNsdWRlIilyZXR1cm4gZT09bnVsbHx8ZSgpLCExO2lmKGIpe3ZhciBoPWpkKGEsYik7aD9kPT1udWxsfHxkKCk6ZT09bnVsbHx8ZSgpO3JldHVybiBofVZjLnd0KGEsZCxlKTtyZXR1cm4hMH1mdW5jdGlvbiBuZCgpe3JldHVybiB5YihBLmZldGNoKX1mdW5jdGlvbiBvZChhLGIpe3ZhciBjPWFbYl07YyYmdHlwZW9mIGMuYW5pbVZhbD09PSJzdHJpbmciJiYoYz1jLmFuaW1WYWwpO3JldHVybiBjfWZ1bmN0aW9uIHBkKCl7dmFyIGE9QS5wZXJmb3JtYW5jZTtpZihhJiZ5YihhLm5vdykpcmV0dXJuIGEubm93KCl9CmZ1bmN0aW9uIHFkKCl7dmFyIGEsYj1BLnBlcmZvcm1hbmNlO2lmKGImJmIuZ2V0RW50cmllc0J5VHlwZSl0cnl7dmFyIGM9Yi5nZXRFbnRyaWVzQnlUeXBlKCJuYXZpZ2F0aW9uIik7YyYmYy5sZW5ndGg+MCYmKGE9Y1swXS50eXBlKX1jYXRjaChkKXtyZXR1cm4iZSJ9aWYoIWEpcmV0dXJuInUiO3N3aXRjaChhKXtjYXNlICJuYXZpZ2F0ZSI6cmV0dXJuIm4iO2Nhc2UgImJhY2tfZm9yd2FyZCI6cmV0dXJuImgiO2Nhc2UgInJlbG9hZCI6cmV0dXJuInIiO2Nhc2UgInByZXJlbmRlciI6cmV0dXJuInAiO2RlZmF1bHQ6cmV0dXJuIngifX1mdW5jdGlvbiByZCgpe3JldHVybiBBLnBlcmZvcm1hbmNlfHx2b2lkIDB9ZnVuY3Rpb24gc2QoKXt2YXIgYT1BLndlYlBpeGVsc01hbmFnZXI7cmV0dXJuIGE/YS5jcmVhdGVTaG9waWZ5RXh0ZW5kIT09dm9pZCAwOiExfQp2YXIgVmM9e0VyOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPW5ldyBJbWFnZSgxLDEpO1RjKGUsZCx7fSk7ZS5vbmxvYWQ9ZnVuY3Rpb24oKXtlLm9ubG9hZD1udWxsO2ImJmIoKX07ZS5vbmVycm9yPWZ1bmN0aW9uKCl7ZS5vbmVycm9yPW51bGw7YyYmYygpfTtlLnNyYz1hO3JldHVybiBlfSxCczpmdW5jdGlvbihhKXt2YXIgYj1CLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXXx8Qi5ib2R5fHxCLmhlYWQ7Yi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLGIpfSx3dDppZH07ZnVuY3Rpb24gdGQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSYmdGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiB1ZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpPT09dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiB2ZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpfHx0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIHdkKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKSxkPXRoaXMuZXZhbHVhdGUoYik7cmV0dXJuIFN0cmluZyhjKS5pbmRleE9mKFN0cmluZyhkKSk+LTF9ZnVuY3Rpb24geGQoYSxiKXt2YXIgYz1TdHJpbmcodGhpcy5ldmFsdWF0ZShhKSksZD1TdHJpbmcodGhpcy5ldmFsdWF0ZShiKSk7cmV0dXJuIGMuc3Vic3RyaW5nKDAsZC5sZW5ndGgpPT09ZH0KZnVuY3Rpb24geWQoYSxiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGEpLGQ9dGhpcy5ldmFsdWF0ZShiKTtzd2l0Y2goYyl7Y2FzZSAicGFnZUxvY2F0aW9uIjp2YXIgZT1BLmxvY2F0aW9uLmhyZWY7ZCBpbnN0YW5jZW9mIGtiJiZkLmdldCgic3RyaXBQcm90b2NvbCIpJiYoZT1lLnJlcGxhY2UoL15odHRwcz86XC9cLy8sIiIpKTtyZXR1cm4gZX19Oy8qCiBqUXVlcnkgKGMpIDIwMDUsIDIwMTIgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4ganF1ZXJ5Lm9yZy9saWNlbnNlLgoqLwp2YXIgemQ9L1xbb2JqZWN0IChCb29sZWFufE51bWJlcnxTdHJpbmd8RnVuY3Rpb258QXJyYXl8RGF0ZXxSZWdFeHApXF0vLEFkPWZ1bmN0aW9uKGEpe2lmKGE9PW51bGwpcmV0dXJuIFN0cmluZyhhKTt2YXIgYj16ZC5leGVjKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChPYmplY3QoYSkpKTtyZXR1cm4gYj9iWzFdLnRvTG93ZXJDYXNlKCk6Im9iamVjdCJ9LEJkPWZ1bmN0aW9uKGEsYil7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChPYmplY3QoYSksYil9LENkPWZ1bmN0aW9uKGEpe2lmKCFhfHxBZChhKSE9Im9iamVjdCJ8fGEubm9kZVR5cGV8fGE9PWEud2luZG93KXJldHVybiExO3RyeXtpZihhLmNvbnN0cnVjdG9yJiYhQmQoYSwiY29uc3RydWN0b3IiKSYmIUJkKGEuY29uc3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIikpcmV0dXJuITF9Y2F0Y2goYyl7cmV0dXJuITF9Zm9yKHZhciBiIGluIGEpO3JldHVybiBiPT09dm9pZCAwfHwKQmQoYSxiKX0sRWQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1ifHwoQWQoYSk9PSJhcnJheSI/W106e30pLGQ7Zm9yKGQgaW4gYSlpZihCZChhLGQpKXt2YXIgZT1hW2RdO0FkKGUpPT0iYXJyYXkiPyhBZChjW2RdKSE9ImFycmF5IiYmKGNbZF09W10pLGNbZF09RWQoZSxjW2RdKSk6Q2QoZSk/KENkKGNbZF0pfHwoY1tkXT17fSksY1tkXT1FZChlLGNbZF0pKTpjW2RdPWV9cmV0dXJuIGN9O2Z1bmN0aW9uIEZkKGEpe3JldHVybiB0eXBlb2YgYT09PSJudW1iZXIiJiZhPj0wJiZpc0Zpbml0ZShhKSYmYSUxPT09MHx8dHlwZW9mIGE9PT0ic3RyaW5nIiYmYVswXSE9PSItIiYmYT09PSIiK3BhcnNlSW50KGEpfTt2YXIgR2Q9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP1tdOmE7dGhpcy5sYT1uZXcgVWE7dGhpcy52YWx1ZXM9W107dGhpcy5OYT0hMTtmb3IodmFyIGIgaW4gYSlhLmhhc093blByb3BlcnR5KGIpJiYoRmQoYik/dGhpcy52YWx1ZXNbTnVtYmVyKGIpXT1hW051bWJlcihiKV06dGhpcy5sYS5zZXQoYixhW2JdKSl9O2s9R2QucHJvdG90eXBlO2sudG9TdHJpbmc9ZnVuY3Rpb24oYSl7aWYoYSYmYS5pbmRleE9mKHRoaXMpPj0wKXJldHVybiIiO2Zvcih2YXIgYj1bXSxjPTA7Yzx0aGlzLnZhbHVlcy5sZW5ndGg7YysrKXt2YXIgZD10aGlzLnZhbHVlc1tjXTtkPT09bnVsbHx8ZD09PXZvaWQgMD9iLnB1c2goIiIpOmQgaW5zdGFuY2VvZiBHZD8oYT1hfHxbXSxhLnB1c2godGhpcyksYi5wdXNoKGQudG9TdHJpbmcoYSkpLGEucG9wKCkpOmIucHVzaChTdHJpbmcoZCkpfXJldHVybiBiLmpvaW4oIiwiKX07Cmsuc2V0PWZ1bmN0aW9uKGEsYil7aWYoIXRoaXMuTmEpaWYoYT09PSJsZW5ndGgiKXtpZighRmQoYikpdGhyb3cgY2IoRXJyb3IoIlJhbmdlRXJyb3I6IExlbmd0aCBwcm9wZXJ0eSBtdXN0IGJlIGEgdmFsaWQgaW50ZWdlci4iKSk7dGhpcy52YWx1ZXMubGVuZ3RoPU51bWJlcihiKX1lbHNlIEZkKGEpP3RoaXMudmFsdWVzW051bWJlcihhKV09Yjp0aGlzLmxhLnNldChhLGIpfTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gYT09PSJsZW5ndGgiP3RoaXMubGVuZ3RoKCk6RmQoYSk/dGhpcy52YWx1ZXNbTnVtYmVyKGEpXTp0aGlzLmxhLmdldChhKX07ay5sZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMubGVuZ3RofTtrLkZhPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMubGEuRmEoKSxiPTA7Yjx0aGlzLnZhbHVlcy5sZW5ndGg7YisrKXRoaXMudmFsdWVzLmhhc093blByb3BlcnR5KGIpJiZhLnB1c2goU3RyaW5nKGIpKTtyZXR1cm4gYX07CmsuaGM9ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcy5sYS5oYygpLGI9MDtiPHRoaXMudmFsdWVzLmxlbmd0aDtiKyspdGhpcy52YWx1ZXMuaGFzT3duUHJvcGVydHkoYikmJmEucHVzaCh0aGlzLnZhbHVlc1tiXSk7cmV0dXJuIGF9O2suZmM9ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcy5sYS5mYygpLGI9MDtiPHRoaXMudmFsdWVzLmxlbmd0aDtiKyspdGhpcy52YWx1ZXMuaGFzT3duUHJvcGVydHkoYikmJmEucHVzaChbU3RyaW5nKGIpLHRoaXMudmFsdWVzW2JdXSk7cmV0dXJuIGF9O2sucmVtb3ZlPWZ1bmN0aW9uKGEpe0ZkKGEpP2RlbGV0ZSB0aGlzLnZhbHVlc1tOdW1iZXIoYSldOnRoaXMuTmF8fHRoaXMubGEucmVtb3ZlKGEpfTtrLnBvcD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5wb3AoKX07ay5wdXNoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVzLnB1c2guYXBwbHkodGhpcy52YWx1ZXMsdyhPYS5hcHBseSgwLGFyZ3VtZW50cykpKX07ay5zaGlmdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5zaGlmdCgpfTsKay5zcGxpY2U9ZnVuY3Rpb24oYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyk7cmV0dXJuIGI9PT12b2lkIDAmJmMubGVuZ3RoPT09MD9uZXcgR2QodGhpcy52YWx1ZXMuc3BsaWNlKGEpKTpuZXcgR2QodGhpcy52YWx1ZXMuc3BsaWNlLmFwcGx5KHRoaXMudmFsdWVzLFthLGJ8fDBdLmNvbmNhdCh3KGMpKSkpfTtrLnVuc2hpZnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMudW5zaGlmdC5hcHBseSh0aGlzLnZhbHVlcyx3KE9hLmFwcGx5KDAsYXJndW1lbnRzKSkpfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gRmQoYSkmJnRoaXMudmFsdWVzLmhhc093blByb3BlcnR5KGEpfHx0aGlzLmxhLmhhcyhhKX07ay5aYT1mdW5jdGlvbigpe3RoaXMuTmE9ITA7T2JqZWN0LmZyZWV6ZSh0aGlzLnZhbHVlcyl9O2suSGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OYX07CmZ1bmN0aW9uIEhkKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aCgpO2MrKylhLmhhcyhjKSYmKGJbY109YS5nZXQoYykpO3JldHVybiBifTt2YXIgSWQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmZ1bmN0aW9uTmFtZT1hO3RoaXMuaWU9Yjt0aGlzLmxhPW5ldyBVYTt0aGlzLk5hPSExfTtrPUlkLnByb3RvdHlwZTtrLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZnVuY3Rpb25OYW1lfTtrLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mdW5jdGlvbk5hbWV9O2suZ2V0S2V5cz1mdW5jdGlvbigpe3JldHVybiBuZXcgR2QodGhpcy5GYSgpKX07ay5pbnZva2U9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaWUuY2FsbC5hcHBseSh0aGlzLmllLFtuZXcgSmQodGhpcyxhKV0uY29uY2F0KHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSkpfTtrLmFwcGx5PWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuaWUuYXBwbHkobmV3IEpkKHRoaXMsYSksYil9O2suTmM9ZnVuY3Rpb24oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO3RyeXtyZXR1cm4gdGhpcy5pbnZva2UuYXBwbHkodGhpcyxbYV0uY29uY2F0KHcoYikpKX1jYXRjaChjKXt9fTsKay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuZ2V0KGEpfTtrLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuTmF8fHRoaXMubGEuc2V0KGEsYil9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmhhcyhhKX07ay5yZW1vdmU9ZnVuY3Rpb24oYSl7dGhpcy5OYXx8dGhpcy5sYS5yZW1vdmUoYSl9O2suRmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5GYSgpfTtrLmhjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuaGMoKX07ay5mYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmZjKCl9O2suWmE9ZnVuY3Rpb24oKXt0aGlzLk5hPSEwfTtrLkhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTmF9O3ZhciBLZD1mdW5jdGlvbihhLGIpe0lkLmNhbGwodGhpcyxhLGIpfTt3YShLZCxJZCk7dmFyIExkPWZ1bmN0aW9uKGEsYil7SWQuY2FsbCh0aGlzLGEsYil9O3dhKExkLElkKTt2YXIgSmQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmllPWE7dGhpcy5UPWJ9OwpKZC5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5UO3JldHVybiBBcnJheS5pc0FycmF5KGEpP2ZiKGIsYSk6YX07SmQucHJvdG90eXBlLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pZS5nZXROYW1lKCl9O0pkLnByb3RvdHlwZS5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlQuamUoKX07dmFyIE1kPWZ1bmN0aW9uKCl7dGhpcy5tYXA9bmV3IE1hcH07TWQucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMubWFwLnNldChhLGIpfTtNZC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm1hcC5nZXQoYSl9O3ZhciBOZD1mdW5jdGlvbigpe3RoaXMua2V5cz1bXTt0aGlzLnZhbHVlcz1bXX07TmQucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMua2V5cy5wdXNoKGEpO3RoaXMudmFsdWVzLnB1c2goYil9O05kLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5rZXlzLmluZGV4T2YoYSk7aWYoYj4tMSlyZXR1cm4gdGhpcy52YWx1ZXNbYl19O2Z1bmN0aW9uIE9kKCl7dHJ5e3JldHVybiBNYXA/bmV3IE1kOm5ldyBOZH1jYXRjaChhKXtyZXR1cm4gbmV3IE5kfX07dmFyIFBkPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBQZClyZXR1cm4gYTt2YXIgYjthOmlmKGE9PXZvaWQgMHx8QXJyYXkuaXNBcnJheShhKXx8Q2QoYSkpYj0hMDtlbHNle3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAiYm9vbGVhbiI6Y2FzZSAibnVtYmVyIjpjYXNlICJzdHJpbmciOmNhc2UgImZ1bmN0aW9uIjpiPSEwO2JyZWFrIGF9Yj0hMX1pZihiKXRocm93IEVycm9yKCJUeXBlIG9mIGdpdmVuIHZhbHVlIGhhcyBhbiBlcXVpdmFsZW50IFBpeGllIHR5cGUuIik7dGhpcy52YWx1ZT1hfTtQZC5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX07UGQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZyh0aGlzLnZhbHVlKX07dmFyIFNkPWZ1bmN0aW9uKGEpe3RoaXMucHJvbWlzZT1hO3RoaXMuTmE9ITE7dGhpcy5sYT1uZXcgVWE7dGhpcy5sYS5zZXQoInRoZW4iLFJkKHRoaXMpKTt0aGlzLmxhLnNldCgiY2F0Y2giLFJkKHRoaXMsITApKTt0aGlzLmxhLnNldCgiZmluYWxseSIsUmQodGhpcywhMSwhMCkpfTtrPVNkLnByb3RvdHlwZTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5nZXQoYSl9O2suc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5OYXx8dGhpcy5sYS5zZXQoYSxiKX07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuaGFzKGEpfTtrLnJlbW92ZT1mdW5jdGlvbihhKXt0aGlzLk5hfHx0aGlzLmxhLnJlbW92ZShhKX07ay5GYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLkZhKCl9O2suaGM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5oYygpfTtrLmZjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuZmMoKX07CnZhciBSZD1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPyExOmI7Yz1jPT09dm9pZCAwPyExOmM7cmV0dXJuIG5ldyBLZCgiIixmdW5jdGlvbihkLGUpe2ImJihlPWQsZD12b2lkIDApO2MmJihlPWQpO2QgaW5zdGFuY2VvZiBLZHx8KGQ9dm9pZCAwKTtlIGluc3RhbmNlb2YgS2R8fChlPXZvaWQgMCk7dmFyIGY9dGhpcy5ULndiKCksZz1mdW5jdGlvbihsKXtyZXR1cm4gZnVuY3Rpb24obil7dHJ5e3JldHVybiBjPyhsLmludm9rZShmKSxhLnByb21pc2UpOmwuaW52b2tlKGYsbil9Y2F0Y2gocCl7cmV0dXJuIFByb21pc2UucmVqZWN0KHAgaW5zdGFuY2VvZiBFcnJvcj9uZXcgUGQocCk6U3RyaW5nKHApKX19fSxoPWEucHJvbWlzZS50aGVuKGQmJmcoZCksZSYmZyhlKSk7cmV0dXJuIG5ldyBTZChoKX0pfTtTZC5wcm90b3R5cGUuWmE9ZnVuY3Rpb24oKXt0aGlzLk5hPSEwfTtTZC5wcm90b3R5cGUuSGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OYX07ZnVuY3Rpb24gVGQoYSxiLGMpe3ZhciBkPU9kKCksZT1mdW5jdGlvbihnLGgpe2Zvcih2YXIgbD1nLkZhKCksbj0wO248bC5sZW5ndGg7bisrKWhbbFtuXV09ZihnLmdldChsW25dKSl9LGY9ZnVuY3Rpb24oZyl7aWYoZz09PW51bGx8fGc9PT12b2lkIDApcmV0dXJuIGc7dmFyIGg9ZC5nZXQoZyk7aWYoaClyZXR1cm4gaDtpZihnIGluc3RhbmNlb2YgR2Qpe3ZhciBsPVtdO2Quc2V0KGcsbCk7Zm9yKHZhciBuPWcuRmEoKSxwPTA7cDxuLmxlbmd0aDtwKyspbFtuW3BdXT1mKGcuZ2V0KG5bcF0pKTtyZXR1cm4gbH1pZihnIGluc3RhbmNlb2YgU2QpcmV0dXJuIGcucHJvbWlzZS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiBUZCh1LGIsMSl9LGZ1bmN0aW9uKHUpe3JldHVybiBQcm9taXNlLnJlamVjdChUZCh1LGIsMSkpfSk7aWYoZyBpbnN0YW5jZW9mIGtiKXt2YXIgcT17fTtkLnNldChnLHEpO2UoZyxxKTtyZXR1cm4gcX1pZihnIGluc3RhbmNlb2YgS2Qpe3ZhciByPWZ1bmN0aW9uKCl7Zm9yKHZhciB1PQpbXSx2PTA7djxhcmd1bWVudHMubGVuZ3RoO3YrKyl1W3ZdPVVkKGFyZ3VtZW50c1t2XSxiLGMpO3ZhciB4PW5ldyBoYihiP2IuamUoKTpuZXcgV2EpO2ImJngudWUoYi54YigpKTtyZXR1cm4gZihnLmFwcGx5KHgsdSkpfTtkLnNldChnLHIpO2UoZyxyKTtyZXR1cm4gcn12YXIgdD0hMTtzd2l0Y2goYyl7Y2FzZSAxOnQ9ITA7YnJlYWs7Y2FzZSAyOnQ9ITE7YnJlYWs7Y2FzZSAzOnQ9ITE7YnJlYWs7ZGVmYXVsdDp9aWYoZyBpbnN0YW5jZW9mIFBkJiZ0KXJldHVybiBnLmdldFZhbHVlKCk7c3dpdGNoKHR5cGVvZiBnKXtjYXNlICJib29sZWFuIjpjYXNlICJudW1iZXIiOmNhc2UgInN0cmluZyI6Y2FzZSAidW5kZWZpbmVkIjpyZXR1cm4gZztjYXNlICJvYmplY3QiOmlmKGc9PT0KbnVsbClyZXR1cm4gbnVsbH19O3JldHVybiBmKGEpfQpmdW5jdGlvbiBVZChhLGIsYyl7dmFyIGQ9T2QoKSxlPWZ1bmN0aW9uKGcsaCl7Zm9yKHZhciBsIGluIGcpZy5oYXNPd25Qcm9wZXJ0eShsKSYmaC5zZXQobCxmKGdbbF0pKX0sZj1mdW5jdGlvbihnKXt2YXIgaD1kLmdldChnKTtpZihoKXJldHVybiBoO2lmKEFycmF5LmlzQXJyYXkoZyl8fEhiKGcpKXt2YXIgbD1uZXcgR2Q7ZC5zZXQoZyxsKTtmb3IodmFyIG4gaW4gZylnLmhhc093blByb3BlcnR5KG4pJiZsLnNldChuLGYoZ1tuXSkpO3JldHVybiBsfWlmKENkKGcpKXt2YXIgcD1uZXcga2I7ZC5zZXQoZyxwKTtlKGcscCk7cmV0dXJuIHB9aWYodHlwZW9mIGc9PT0iZnVuY3Rpb24iKXt2YXIgcT1uZXcgS2QoIiIsZnVuY3Rpb24oKXtmb3IodmFyIHU9T2EuYXBwbHkoMCxhcmd1bWVudHMpLHY9W10seD0wO3g8dS5sZW5ndGg7eCsrKXZbeF09VGQodGhpcy5ldmFsdWF0ZSh1W3hdKSxiLGMpO3JldHVybiBmKHRoaXMuVC5QaigpKGcsZyx2KSl9KTtkLnNldChnLHEpO2UoZyxxKTtyZXR1cm4gcX12YXIgcj10eXBlb2YgZztpZihnPT09bnVsbHx8cj09PSJzdHJpbmcifHxyPT09Im51bWJlciJ8fHI9PT0iYm9vbGVhbiIpcmV0dXJuIGc7dmFyIHQ9ITE7c3dpdGNoKGMpe2Nhc2UgMTp0PSEwO2JyZWFrO2Nhc2UgMjp0PSExO2JyZWFrO2RlZmF1bHQ6fWlmKGchPT12b2lkIDAmJnQpcmV0dXJuIG5ldyBQZChnKX07cmV0dXJuIGYoYSl9O3ZhciBWZD17c3VwcG9ydGVkTWV0aG9kczoiY29uY2F0IGV2ZXJ5IGZpbHRlciBmb3JFYWNoIGhhc093blByb3BlcnR5IGluZGV4T2Ygam9pbiBsYXN0SW5kZXhPZiBtYXAgcG9wIHB1c2ggcmVkdWNlIHJlZHVjZVJpZ2h0IHJldmVyc2Ugc2hpZnQgc2xpY2Ugc29tZSBzb3J0IHNwbGljZSB1bnNoaWZ0IHRvU3RyaW5nIi5zcGxpdCgiICIpLGNvbmNhdDpmdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz0wO2M8dGhpcy5sZW5ndGgoKTtjKyspYi5wdXNoKHRoaXMuZ2V0KGMpKTtmb3IodmFyIGQ9MTtkPGFyZ3VtZW50cy5sZW5ndGg7ZCsrKWlmKGFyZ3VtZW50c1tkXWluc3RhbmNlb2YgR2QpZm9yKHZhciBlPWFyZ3VtZW50c1tkXSxmPTA7ZjxlLmxlbmd0aCgpO2YrKyliLnB1c2goZS5nZXQoZikpO2Vsc2UgYi5wdXNoKGFyZ3VtZW50c1tkXSk7cmV0dXJuIG5ldyBHZChiKX0sZXZlcnk6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5sZW5ndGgoKSxkPTA7ZDx0aGlzLmxlbmd0aCgpJiYKZDxjO2QrKylpZih0aGlzLmhhcyhkKSYmIWIuaW52b2tlKGEsdGhpcy5nZXQoZCksZCx0aGlzKSlyZXR1cm4hMTtyZXR1cm4hMH0sZmlsdGVyOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD1bXSxlPTA7ZTx0aGlzLmxlbmd0aCgpJiZlPGM7ZSsrKXRoaXMuaGFzKGUpJiZiLmludm9rZShhLHRoaXMuZ2V0KGUpLGUsdGhpcykmJmQucHVzaCh0aGlzLmdldChlKSk7cmV0dXJuIG5ldyBHZChkKX0sZm9yRWFjaDpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz10aGlzLmxlbmd0aCgpLGQ9MDtkPHRoaXMubGVuZ3RoKCkmJmQ8YztkKyspdGhpcy5oYXMoZCkmJmIuaW52b2tlKGEsdGhpcy5nZXQoZCksZCx0aGlzKX0saGFzT3duUHJvcGVydHk6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5oYXMoYil9LGluZGV4T2Y6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCksZT1jPT09dm9pZCAwPzA6TnVtYmVyKGMpO2U8MCYmKGU9TWF0aC5tYXgoZCtlLDApKTtmb3IodmFyIGY9CmU7ZjxkO2YrKylpZih0aGlzLmhhcyhmKSYmdGhpcy5nZXQoZik9PT1iKXJldHVybiBmO3JldHVybi0xfSxqb2luOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPHRoaXMubGVuZ3RoKCk7ZCsrKWMucHVzaCh0aGlzLmdldChkKSk7cmV0dXJuIGMuam9pbihiKX0sbGFzdEluZGV4T2Y6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCksZT1kLTE7YyE9PXZvaWQgMCYmKGU9YzwwP2QrYzpNYXRoLm1pbihjLGUpKTtmb3IodmFyIGY9ZTtmPj0wO2YtLSlpZih0aGlzLmhhcyhmKSYmdGhpcy5nZXQoZik9PT1iKXJldHVybiBmO3JldHVybi0xfSxtYXA6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5sZW5ndGgoKSxkPVtdLGU9MDtlPHRoaXMubGVuZ3RoKCkmJmU8YztlKyspdGhpcy5oYXMoZSkmJihkW2VdPWIuaW52b2tlKGEsdGhpcy5nZXQoZSksZSx0aGlzKSk7cmV0dXJuIG5ldyBHZChkKX0scG9wOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucG9wKCl9LHB1c2g6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaC5hcHBseSh0aGlzLAp3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpfSxyZWR1Y2U6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCksZSxmPTA7aWYoYyE9PXZvaWQgMCllPWM7ZWxzZXtpZihkPT09MCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBSZWR1Y2Ugb24gTGlzdCB3aXRoIG5vIGVsZW1lbnRzLiIpKTtmb3IodmFyIGc9MDtnPGQ7ZysrKWlmKHRoaXMuaGFzKGcpKXtlPXRoaXMuZ2V0KGcpO2Y9ZysxO2JyZWFrfWlmKGc9PT1kKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IFJlZHVjZSBvbiBMaXN0IHdpdGggbm8gZWxlbWVudHMuIikpO31mb3IodmFyIGg9ZjtoPGQ7aCsrKXRoaXMuaGFzKGgpJiYoZT1iLmludm9rZShhLGUsdGhpcy5nZXQoaCksaCx0aGlzKSk7cmV0dXJuIGV9LHJlZHVjZVJpZ2h0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmxlbmd0aCgpLGUsZj1kLTE7aWYoYyE9PXZvaWQgMCllPWM7ZWxzZXtpZihkPT09MCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBSZWR1Y2VSaWdodCBvbiBMaXN0IHdpdGggbm8gZWxlbWVudHMuIikpOwpmb3IodmFyIGc9MTtnPD1kO2crKylpZih0aGlzLmhhcyhkLWcpKXtlPXRoaXMuZ2V0KGQtZyk7Zj1kLShnKzEpO2JyZWFrfWlmKGc+ZCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBSZWR1Y2VSaWdodCBvbiBMaXN0IHdpdGggbm8gZWxlbWVudHMuIikpO31mb3IodmFyIGg9ZjtoPj0wO2gtLSl0aGlzLmhhcyhoKSYmKGU9Yi5pbnZva2UoYSxlLHRoaXMuZ2V0KGgpLGgsdGhpcykpO3JldHVybiBlfSxyZXZlcnNlOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPUhkKHRoaXMpLGI9YS5sZW5ndGgtMSxjPTA7Yj49MDtiLS0sYysrKWEuaGFzT3duUHJvcGVydHkoYik/dGhpcy5zZXQoYyxhW2JdKTp0aGlzLnJlbW92ZShjKTtyZXR1cm4gdGhpc30sc2hpZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaGlmdCgpfSxzbGljZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5sZW5ndGgoKTtiPT09dm9pZCAwJiYoYj0wKTtiPWI8MD9NYXRoLm1heChkK2IsMCk6TWF0aC5taW4oYixkKTtjPWM9PT0Kdm9pZCAwP2Q6YzwwP01hdGgubWF4KGQrYywwKTpNYXRoLm1pbihjLGQpO2M9TWF0aC5tYXgoYixjKTtmb3IodmFyIGU9W10sZj1iO2Y8YztmKyspZS5wdXNoKHRoaXMuZ2V0KGYpKTtyZXR1cm4gbmV3IEdkKGUpfSxzb21lOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD0wO2Q8dGhpcy5sZW5ndGgoKSYmZDxjO2QrKylpZih0aGlzLmhhcyhkKSYmYi5pbnZva2UoYSx0aGlzLmdldChkKSxkLHRoaXMpKXJldHVybiEwO3JldHVybiExfSxzb3J0OmZ1bmN0aW9uKGEsYil7dmFyIGM9SGQodGhpcyk7Yj09PXZvaWQgMD9jLnNvcnQoKTpjLnNvcnQoZnVuY3Rpb24oZSxmKXtyZXR1cm4gTnVtYmVyKGIuaW52b2tlKGEsZSxmKSl9KTtmb3IodmFyIGQ9MDtkPGMubGVuZ3RoO2QrKyljLmhhc093blByb3BlcnR5KGQpP3RoaXMuc2V0KGQsY1tkXSk6dGhpcy5yZW1vdmUoZCk7cmV0dXJuIHRoaXN9LHNwbGljZTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMuc3BsaWNlLmFwcGx5KHRoaXMsCltiLGNdLmNvbmNhdCh3KE9hLmFwcGx5KDMsYXJndW1lbnRzKSkpKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygpfSx1bnNoaWZ0OmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnVuc2hpZnQuYXBwbHkodGhpcyx3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpfX07dmFyIFdkPXtjaGFyQXQ6MSxjb25jYXQ6MSxpbmRleE9mOjEsbGFzdEluZGV4T2Y6MSxtYXRjaDoxLHJlcGxhY2U6MSxzZWFyY2g6MSxzbGljZToxLHNwbGl0OjEsc3Vic3RyaW5nOjEsdG9Mb3dlckNhc2U6MSx0b0xvY2FsZUxvd2VyQ2FzZToxLHRvU3RyaW5nOjEsdG9VcHBlckNhc2U6MSx0b0xvY2FsZVVwcGVyQ2FzZToxLHRyaW06MX0sWGQ9bmV3IFRhKCJicmVhayIpLFlkPW5ldyBUYSgiY29udGludWUiKTtmdW5jdGlvbiBaZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpK3RoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gJGQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSYmdGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24gYWUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKTtpZighKGYgaW5zdGFuY2VvZiBHZCkpdGhyb3cgRXJyb3IoIkVycm9yOiBOb24tTGlzdCBhcmd1bWVudCBnaXZlbiB0byBBcHBseSBpbnN0cnVjdGlvbi4iKTtpZihkPT09bnVsbHx8ZD09PXZvaWQgMCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBDYW4ndCByZWFkIHByb3BlcnR5ICIrZSsiIG9mICIrZCsiLiIpKTt2YXIgZz10eXBlb2YgZD09PSJudW1iZXIiO2lmKHR5cGVvZiBkPT09ImJvb2xlYW4ifHxnKXtpZihlPT09InRvU3RyaW5nIil7aWYoZyYmZi5sZW5ndGgoKSl7dmFyIGg9VGQoZi5nZXQoMCkpO3RyeXtyZXR1cm4gZC50b1N0cmluZyhoKX1jYXRjaCh1KXt9fXJldHVybiBkLnRvU3RyaW5nKCl9dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogIitkKyIuIitlKyIgaXMgbm90IGEgZnVuY3Rpb24uIikpO31pZih0eXBlb2YgZD09PQoic3RyaW5nIil7aWYoV2QuaGFzT3duUHJvcGVydHkoZSkpe3ZhciBsPVRkKGYsdm9pZCAwLDEpO3JldHVybiBVZChkW2VdLmFwcGx5KGQsbCksdGhpcy5UKX10aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiAiK2UrIiBpcyBub3QgYSBmdW5jdGlvbiIpKTt9aWYoZCBpbnN0YW5jZW9mIEdkKXtpZihkLmhhcyhlKSl7dmFyIG49ZC5nZXQoU3RyaW5nKGUpKTtpZihuIGluc3RhbmNlb2YgS2Qpe3ZhciBwPUhkKGYpO3JldHVybiBuLmFwcGx5KHRoaXMuVCxwKX10aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiAiK2UrIiBpcyBub3QgYSBmdW5jdGlvbiIpKTt9aWYoVmQuc3VwcG9ydGVkTWV0aG9kcy5pbmRleE9mKGUpPj0wKXt2YXIgcT1IZChmKTtyZXR1cm4gVmRbZV0uY2FsbC5hcHBseShWZFtlXSxbZCx0aGlzLlRdLmNvbmNhdCh3KHEpKSl9fWlmKGQgaW5zdGFuY2VvZiBLZHx8ZCBpbnN0YW5jZW9mIGtifHxkIGluc3RhbmNlb2YgU2Qpe2lmKGQuaGFzKGUpKXt2YXIgcj1kLmdldChlKTsKaWYociBpbnN0YW5jZW9mIEtkKXt2YXIgdD1IZChmKTtyZXR1cm4gci5hcHBseSh0aGlzLlQsdCl9dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogIitlKyIgaXMgbm90IGEgZnVuY3Rpb24iKSk7fWlmKGU9PT0idG9TdHJpbmciKXJldHVybiBkIGluc3RhbmNlb2YgS2Q/ZC5nZXROYW1lKCk6ZC50b1N0cmluZygpO2lmKGU9PT0iaGFzT3duUHJvcGVydHkiKXJldHVybiBkLmhhcyhmLmdldCgwKSl9aWYoZCBpbnN0YW5jZW9mIFBkJiZlPT09InRvU3RyaW5nIilyZXR1cm4gZC50b1N0cmluZygpO3Rocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IE9iamVjdCBoYXMgbm8gJyIrZSsiJyBwcm9wZXJ0eS4iKSk7fQpmdW5jdGlvbiBiZShhLGIpe2E9dGhpcy5ldmFsdWF0ZShhKTtpZih0eXBlb2YgYSE9PSJzdHJpbmciKXRocm93IEVycm9yKCJJbnZhbGlkIGtleSBuYW1lIGdpdmVuIGZvciBhc3NpZ25tZW50LiIpO3ZhciBjPXRoaXMuVDtpZighYy5oYXMoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYXNzaWduIHRvIHVuZGVmaW5lZCB2YWx1ZSAiK2IpO3ZhciBkPXRoaXMuZXZhbHVhdGUoYik7Yy5zZXQoYSxkKTtyZXR1cm4gZH1mdW5jdGlvbiBjZSgpe3ZhciBhPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxiPXRoaXMuVC53YigpLGM9ZWIoYixhKTtpZihjIGluc3RhbmNlb2YgVGEpcmV0dXJuIGN9ZnVuY3Rpb24gZGUoKXtyZXR1cm4gWGR9ZnVuY3Rpb24gZWUoYSl7Zm9yKHZhciBiPXRoaXMuZXZhbHVhdGUoYSksYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD10aGlzLmV2YWx1YXRlKGJbY10pO2lmKGQgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZH19CmZ1bmN0aW9uIGZlKCl7Zm9yKHZhciBhPXRoaXMuVCxiPTA7Yjxhcmd1bWVudHMubGVuZ3RoLTE7Yis9Mil7dmFyIGM9YXJndW1lbnRzW2JdO2lmKHR5cGVvZiBjPT09InN0cmluZyIpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2IrMV0pO2EuUWgoYyxkKX19fWZ1bmN0aW9uIGdlKCl7cmV0dXJuIFlkfWZ1bmN0aW9uIGhlKGEsYil7cmV0dXJuIG5ldyBUYShhLHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGllKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpLGQ7ZD1uZXcgR2Q7Zm9yKHZhciBlPXRoaXMuZXZhbHVhdGUoYiksZj0wO2Y8ZS5sZW5ndGg7ZisrKWQucHVzaChlW2ZdKTt2YXIgZz1bNTEsYSxkXS5jb25jYXQodyhjKSk7dGhpcy5ULmFkZChhLHRoaXMuZXZhbHVhdGUoZykpfWZ1bmN0aW9uIGplKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkvdGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24ga2UoYSxiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGEpLGQ9dGhpcy5ldmFsdWF0ZShiKSxlPWMgaW5zdGFuY2VvZiBQZCxmPWQgaW5zdGFuY2VvZiBQZDtyZXR1cm4gZXx8Zj9lJiZmP2MuZ2V0VmFsdWUoKT09PWQuZ2V0VmFsdWUoKTohMTpjPT1kfWZ1bmN0aW9uIGxlKCl7Zm9yKHZhciBhLGI9MDtiPGFyZ3VtZW50cy5sZW5ndGg7YisrKWE9dGhpcy5ldmFsdWF0ZShhcmd1bWVudHNbYl0pO3JldHVybiBhfWZ1bmN0aW9uIG1lKGEsYixjLGQpe2Zvcih2YXIgZT0wO2U8YigpO2UrKyl7dmFyIGY9YShjKGUpKSxnPWViKGYsZCk7aWYoZyBpbnN0YW5jZW9mIFRhKXtpZihnLnR5cGU9PT0iYnJlYWsiKWJyZWFrO2lmKGcudHlwZT09PSJyZXR1cm4iKXJldHVybiBnfX19CmZ1bmN0aW9uIG5lKGEsYixjKXtpZih0eXBlb2YgYj09PSJzdHJpbmciKXJldHVybiBtZShhLGZ1bmN0aW9uKCl7cmV0dXJuIGIubGVuZ3RofSxmdW5jdGlvbihmKXtyZXR1cm4gZn0sYyk7aWYoYiBpbnN0YW5jZW9mIGtifHxiIGluc3RhbmNlb2YgU2R8fGIgaW5zdGFuY2VvZiBHZHx8YiBpbnN0YW5jZW9mIEtkKXt2YXIgZD1iLkZhKCksZT1kLmxlbmd0aDtyZXR1cm4gbWUoYSxmdW5jdGlvbigpe3JldHVybiBlfSxmdW5jdGlvbihmKXtyZXR1cm4gZFtmXX0sYyl9fWZ1bmN0aW9uIG9lKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIG5lKGZ1bmN0aW9uKGgpe2cuc2V0KGQsaCk7cmV0dXJuIGd9LGUsZil9CmZ1bmN0aW9uIHBlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIG5lKGZ1bmN0aW9uKGgpe3ZhciBsPWcud2IoKTtsLlFoKGQsaCk7cmV0dXJuIGx9LGUsZil9ZnVuY3Rpb24gcWUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gbmUoZnVuY3Rpb24oaCl7dmFyIGw9Zy53YigpO2wuYWRkKGQsaCk7cmV0dXJuIGx9LGUsZil9ZnVuY3Rpb24gcmUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gc2UoZnVuY3Rpb24oaCl7Zy5zZXQoZCxoKTtyZXR1cm4gZ30sZSxmKX0KZnVuY3Rpb24gdGUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gc2UoZnVuY3Rpb24oaCl7dmFyIGw9Zy53YigpO2wuUWgoZCxoKTtyZXR1cm4gbH0sZSxmKX1mdW5jdGlvbiB1ZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBzZShmdW5jdGlvbihoKXt2YXIgbD1nLndiKCk7bC5hZGQoZCxoKTtyZXR1cm4gbH0sZSxmKX0KZnVuY3Rpb24gc2UoYSxiLGMpe2lmKHR5cGVvZiBiPT09InN0cmluZyIpcmV0dXJuIG1lKGEsZnVuY3Rpb24oKXtyZXR1cm4gYi5sZW5ndGh9LGZ1bmN0aW9uKGQpe3JldHVybiBiW2RdfSxjKTtpZihiIGluc3RhbmNlb2YgR2QpcmV0dXJuIG1lKGEsZnVuY3Rpb24oKXtyZXR1cm4gYi5sZW5ndGgoKX0sZnVuY3Rpb24oZCl7cmV0dXJuIGIuZ2V0KGQpfSxjKTt0aHJvdyBjYihFcnJvcigiVGhlIHZhbHVlIGlzIG5vdCBpdGVyYWJsZS4iKSk7fQpmdW5jdGlvbiB2ZShhLGIsYyxkKXtmdW5jdGlvbiBlKHEscil7Zm9yKHZhciB0PTA7dDxmLmxlbmd0aCgpO3QrKyl7dmFyIHU9Zi5nZXQodCk7ci5hZGQodSxxLmdldCh1KSl9fXZhciBmPXRoaXMuZXZhbHVhdGUoYSk7aWYoIShmIGluc3RhbmNlb2YgR2QpKXRocm93IEVycm9yKCJUeXBlRXJyb3I6IE5vbi1MaXN0IGFyZ3VtZW50IGdpdmVuIHRvIEZvckxldCBpbnN0cnVjdGlvbi4iKTt2YXIgZz10aGlzLlQsaD10aGlzLmV2YWx1YXRlKGQpLGw9Zy53YigpO2ZvcihlKGcsbCk7ZmIobCxiKTspe3ZhciBuPWViKGwsaCk7aWYobiBpbnN0YW5jZW9mIFRhKXtpZihuLnR5cGU9PT0iYnJlYWsiKWJyZWFrO2lmKG4udHlwZT09PSJyZXR1cm4iKXJldHVybiBufXZhciBwPWcud2IoKTtlKGwscCk7ZmIocCxjKTtsPXB9fQpmdW5jdGlvbiB3ZShhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkPXRoaXMuVCxlPXRoaXMuZXZhbHVhdGUoYik7aWYoIShlIGluc3RhbmNlb2YgR2QpKXRocm93IEVycm9yKCJFcnJvcjogbm9uLUxpc3QgdmFsdWUgZ2l2ZW4gZm9yIEZuIGFyZ3VtZW50IG5hbWVzLiIpO3JldHVybiBuZXcgS2QoYSxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3ZhciBmPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxnPWQud2IoKTtnLnhiKCk9PT12b2lkIDAmJmcudWUodGhpcy5ULnhiKCkpO2Zvcih2YXIgaD1bXSxsPTA7bDxmLmxlbmd0aDtsKyspe3ZhciBuPXRoaXMuZXZhbHVhdGUoZltsXSk7aFtsXT1ufWZvcih2YXIgcD1lLmdldCgibGVuZ3RoIikscT0wO3E8cDtxKyspcTxoLmxlbmd0aD9nLmFkZChlLmdldChxKSxoW3FdKTpnLmFkZChlLmdldChxKSx2b2lkIDApO2cuYWRkKCJhcmd1bWVudHMiLG5ldyBHZChoKSk7dmFyIHI9ZWIoZyxjKTtpZihyIGluc3RhbmNlb2YgVGEpcmV0dXJuIHIudHlwZT09PQoicmV0dXJuIj9yLmRhdGE6cn19KCkpfWZ1bmN0aW9uIHhlKGEpe3ZhciBiPXRoaXMuZXZhbHVhdGUoYSksYz10aGlzLlQ7aWYoeWUmJiFjLmhhcyhiKSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoYisiIGlzIG5vdCBkZWZpbmVkLiIpO3JldHVybiBjLmdldChiKX0KZnVuY3Rpb24gemUoYSxiKXt2YXIgYyxkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpO2lmKGQ9PT12b2lkIDB8fGQ9PT1udWxsKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IENhbm5vdCByZWFkIHByb3BlcnRpZXMgb2YgIitkKyIgKHJlYWRpbmcgJyIrZSsiJykiKSk7aWYoZCBpbnN0YW5jZW9mIGtifHxkIGluc3RhbmNlb2YgU2R8fGQgaW5zdGFuY2VvZiBHZHx8ZCBpbnN0YW5jZW9mIEtkKWM9ZC5nZXQoZSk7ZWxzZSBpZih0eXBlb2YgZD09PSJzdHJpbmciKWU9PT0ibGVuZ3RoIj9jPWQubGVuZ3RoOkZkKGUpJiYoYz1kW2VdKTtlbHNlIGlmKGQgaW5zdGFuY2VvZiBQZClyZXR1cm47cmV0dXJuIGN9ZnVuY3Rpb24gQWUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKT50aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIEJlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk+PXRoaXMuZXZhbHVhdGUoYil9CmZ1bmN0aW9uIENlKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKSxkPXRoaXMuZXZhbHVhdGUoYik7YyBpbnN0YW5jZW9mIFBkJiYoYz1jLmdldFZhbHVlKCkpO2QgaW5zdGFuY2VvZiBQZCYmKGQ9ZC5nZXRWYWx1ZSgpKTtyZXR1cm4gYz09PWR9ZnVuY3Rpb24gRGUoYSxiKXtyZXR1cm4hQ2UuY2FsbCh0aGlzLGEsYil9ZnVuY3Rpb24gRWUoYSxiLGMpe3ZhciBkPVtdO3RoaXMuZXZhbHVhdGUoYSk/ZD10aGlzLmV2YWx1YXRlKGIpOmMmJihkPXRoaXMuZXZhbHVhdGUoYykpO3ZhciBlPWViKHRoaXMuVCxkKTtpZihlIGluc3RhbmNlb2YgVGEpcmV0dXJuIGV9dmFyIHllPSExOwpmdW5jdGlvbiBGZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpPHRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gR2UoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKTw9dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiBIZSgpe2Zvcih2YXIgYT1uZXcgR2QsYj0wO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspe3ZhciBjPXRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2JdKTthLnB1c2goYyl9cmV0dXJuIGF9ZnVuY3Rpb24gSWUoKXtmb3IodmFyIGE9bmV3IGtiLGI9MDtiPGFyZ3VtZW50cy5sZW5ndGgtMTtiKz0yKXt2YXIgYz1TdHJpbmcodGhpcy5ldmFsdWF0ZShhcmd1bWVudHNbYl0pKSxkPXRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2IrMV0pO2Euc2V0KGMsZCl9cmV0dXJuIGF9ZnVuY3Rpb24gSmUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSV0aGlzLmV2YWx1YXRlKGIpfQpmdW5jdGlvbiBLZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpKnRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gTGUoYSl7cmV0dXJuLXRoaXMuZXZhbHVhdGUoYSl9ZnVuY3Rpb24gTWUoYSl7cmV0dXJuIXRoaXMuZXZhbHVhdGUoYSl9ZnVuY3Rpb24gTmUoYSxiKXtyZXR1cm4ha2UuY2FsbCh0aGlzLGEsYil9ZnVuY3Rpb24gT2UoKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBQZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpfHx0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIFFlKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKTt0aGlzLmV2YWx1YXRlKGIpO3JldHVybiBjfWZ1bmN0aW9uIFJlKGEpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpfWZ1bmN0aW9uIFNlKCl7cmV0dXJuIE9hLmFwcGx5KDAsYXJndW1lbnRzKX1mdW5jdGlvbiBUZShhKXtyZXR1cm4gbmV3IFRhKCJyZXR1cm4iLHRoaXMuZXZhbHVhdGUoYSkpfQpmdW5jdGlvbiBVZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpO2lmKGQ9PT1udWxsfHxkPT09dm9pZCAwKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IENhbid0IHNldCBwcm9wZXJ0eSAiK2UrIiBvZiAiK2QrIi4iKSk7KGQgaW5zdGFuY2VvZiBLZHx8ZCBpbnN0YW5jZW9mIEdkfHxkIGluc3RhbmNlb2Yga2IpJiZkLnNldChTdHJpbmcoZSksZik7cmV0dXJuIGZ9ZnVuY3Rpb24gVmUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKS10aGlzLmV2YWx1YXRlKGIpfQpmdW5jdGlvbiBXZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpO2lmKCFBcnJheS5pc0FycmF5KGUpfHwhQXJyYXkuaXNBcnJheShmKSl0aHJvdyBFcnJvcigiRXJyb3I6IE1hbGZvcm1lZCBzd2l0Y2ggaW5zdHJ1Y3Rpb24uIik7Zm9yKHZhciBnLGg9ITEsbD0wO2w8ZS5sZW5ndGg7bCsrKWlmKGh8fGQ9PT10aGlzLmV2YWx1YXRlKGVbbF0pKWlmKGc9dGhpcy5ldmFsdWF0ZShmW2xdKSxnIGluc3RhbmNlb2YgVGEpe3ZhciBuPWcudHlwZTtpZihuPT09ImJyZWFrIilyZXR1cm47aWYobj09PSJyZXR1cm4ifHxuPT09ImNvbnRpbnVlIilyZXR1cm4gZ31lbHNlIGg9ITA7aWYoZi5sZW5ndGg9PT1lLmxlbmd0aCsxJiYoZz10aGlzLmV2YWx1YXRlKGZbZi5sZW5ndGgtMV0pLGcgaW5zdGFuY2VvZiBUYSYmKGcudHlwZT09PSJyZXR1cm4ifHxnLnR5cGU9PT0iY29udGludWUiKSkpcmV0dXJuIGd9CmZ1bmN0aW9uIFhlKGEsYixjKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKT90aGlzLmV2YWx1YXRlKGIpOnRoaXMuZXZhbHVhdGUoYyl9ZnVuY3Rpb24gWWUoYSl7dmFyIGI9dGhpcy5ldmFsdWF0ZShhKTtyZXR1cm4gYiBpbnN0YW5jZW9mIEtkPyJmdW5jdGlvbiI6dHlwZW9mIGJ9ZnVuY3Rpb24gWmUoKXtmb3IodmFyIGE9dGhpcy5ULGI9MDtiPGFyZ3VtZW50cy5sZW5ndGg7YisrKXt2YXIgYz1hcmd1bWVudHNbYl07dHlwZW9mIGMhPT0ic3RyaW5nInx8YS5hZGQoYyx2b2lkIDApfX0KZnVuY3Rpb24gJGUoYSxiLGMsZCl7dmFyIGU9dGhpcy5ldmFsdWF0ZShkKTtpZih0aGlzLmV2YWx1YXRlKGMpKXt2YXIgZj1lYih0aGlzLlQsZSk7aWYoZiBpbnN0YW5jZW9mIFRhKXtpZihmLnR5cGU9PT0iYnJlYWsiKXJldHVybjtpZihmLnR5cGU9PT0icmV0dXJuIilyZXR1cm4gZn19Zm9yKDt0aGlzLmV2YWx1YXRlKGEpOyl7dmFyIGc9ZWIodGhpcy5ULGUpO2lmKGcgaW5zdGFuY2VvZiBUYSl7aWYoZy50eXBlPT09ImJyZWFrIilicmVhaztpZihnLnR5cGU9PT0icmV0dXJuIilyZXR1cm4gZ310aGlzLmV2YWx1YXRlKGIpfX1mdW5jdGlvbiBhZihhKXtyZXR1cm5+TnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpfWZ1bmN0aW9uIGJmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKTw8TnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGNmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKT4+TnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfQpmdW5jdGlvbiBkZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSk+Pj5OdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gZWYoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpJk51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBmZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSleTnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGdmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKXxOdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gaGYoKXt9CmZ1bmN0aW9uIGtmKGEsYixjKXt0cnl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShiKTtpZihkIGluc3RhbmNlb2YgVGEpcmV0dXJuIGR9Y2F0Y2goaCl7aWYoIShoIGluc3RhbmNlb2YgYmImJmguU24pKXRocm93IGg7dmFyIGU9dGhpcy5ULndiKCk7YSE9PSIiJiYoaCBpbnN0YW5jZW9mIGJiJiYoaD1oLnZvKSxlLmFkZChhLG5ldyBQZChoKSkpO3ZhciBmPXRoaXMuZXZhbHVhdGUoYyksZz1lYihlLGYpO2lmKGcgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZ319ZnVuY3Rpb24gbGYoYSxiKXt2YXIgYyxkO3RyeXtkPXRoaXMuZXZhbHVhdGUoYSl9Y2F0Y2goZil7aWYoIShmIGluc3RhbmNlb2YgYmImJmYuU24pKXRocm93IGY7Yz1mfXZhciBlPXRoaXMuZXZhbHVhdGUoYik7aWYoZSBpbnN0YW5jZW9mIFRhKXJldHVybiBlO2lmKGMpdGhyb3cgYztpZihkIGluc3RhbmNlb2YgVGEpcmV0dXJuIGR9O3ZhciBuZj1mdW5jdGlvbigpe3RoaXMuSD1uZXcgZ2I7bWYodGhpcyl9O25mLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLkgucmsoYSl9O3ZhciBtZj1mdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbihjLGQpe3ZhciBlPW5ldyBMZChTdHJpbmcoYyksZCk7ZS5aYSgpO3ZhciBmPVN0cmluZyhjKTthLkguSC5zZXQoZixlKTtkYi5zZXQoZixlKX07YigibWFwIixJZSk7YigiYW5kIix0ZCk7YigiY29udGFpbnMiLHdkKTtiKCJlcXVhbHMiLHVkKTtiKCJvciIsdmQpO2IoInN0YXJ0c1dpdGgiLHhkKTtiKCJ2YXJpYWJsZSIseWQpfTtuZi5wcm90b3R5cGUuUWI9ZnVuY3Rpb24oYSl7dGhpcy5ILlFiKGEpfTt2YXIgcGY9ZnVuY3Rpb24oKXt0aGlzLks9ITE7dGhpcy5IPW5ldyBnYjtvZih0aGlzKTt0aGlzLks9ITB9O3BmLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKGEpe3JldHVybiBxZih0aGlzLkgucmsoYSkpfTt2YXIgcmY9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBxZihhLkguSnEoYixjKSl9O3BmLnByb3RvdHlwZS5aYT1mdW5jdGlvbigpe3RoaXMuSC5aYSgpfTsKdmFyIG9mPWZ1bmN0aW9uKGEpe3ZhciBiPWZ1bmN0aW9uKGMsZCl7dmFyIGU9U3RyaW5nKGMpLGY9bmV3IExkKGUsZCk7Zi5aYSgpO2EuSC5ILnNldChlLGYpO2RiLnNldChlLGYpfTtiKDAsWmQpO2IoMSwkZCk7YigyLGFlKTtiKDMsYmUpO2IoNTYsZWYpO2IoNTcsYmYpO2IoNTgsYWYpO2IoNTksZ2YpO2IoNjAsY2YpO2IoNjEsZGYpO2IoNjIsZmYpO2IoNTMsY2UpO2IoNCxkZSk7Yig1LGVlKTtiKDY4LGtmKTtiKDUyLGZlKTtiKDYsZ2UpO2IoNDksaGUpO2IoNyxIZSk7Yig4LEllKTtiKDksZWUpO2IoNTAsaWUpO2IoMTAsamUpO2IoMTIsa2UpO2IoMTMsbGUpO2IoNjcsbGYpO2IoNTEsd2UpO2IoNDcsb2UpO2IoNTQscGUpO2IoNTUscWUpO2IoNjMsdmUpO2IoNjQscmUpO2IoNjUsdGUpO2IoNjYsdWUpO2IoMTUseGUpO2IoMTYsemUpO2IoMTcsemUpO2IoMTgsQWUpO2IoMTksQmUpO2IoMjAsQ2UpO2IoMjEsRGUpO2IoMjIsRWUpO2IoMjMsRmUpO2IoMjQsR2UpO2IoMjUsSmUpO2IoMjYsCktlKTtiKDI3LExlKTtiKDI4LE1lKTtiKDI5LE5lKTtiKDQ1LE9lKTtiKDMwLFBlKTtiKDMyLFFlKTtiKDMzLFFlKTtiKDM0LFJlKTtiKDM1LFJlKTtiKDQ2LFNlKTtiKDM2LFRlKTtiKDQzLFVlKTtiKDM3LFZlKTtiKDM4LFdlKTtiKDM5LFhlKTtiKDQwLFllKTtiKDQ0LGhmKTtiKDQxLFplKTtiKDQyLCRlKX07cGYucHJvdG90eXBlLmplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSC5qZSgpfTtwZi5wcm90b3R5cGUuUWI9ZnVuY3Rpb24oYSl7dGhpcy5ILlFiKGEpfTtwZi5wcm90b3R5cGUuc2Q9ZnVuY3Rpb24oYSl7dGhpcy5ILnNkKGEpfTsKZnVuY3Rpb24gcWYoYSl7aWYoYSBpbnN0YW5jZW9mIFRhfHxhIGluc3RhbmNlb2YgS2R8fGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2R8fGEgaW5zdGFuY2VvZiBQZHx8YT09PW51bGx8fGE9PT12b2lkIDB8fHR5cGVvZiBhPT09InN0cmluZyJ8fHR5cGVvZiBhPT09Im51bWJlciJ8fHR5cGVvZiBhPT09ImJvb2xlYW4iKXJldHVybiBhfTt2YXIgc2Y9ZnVuY3Rpb24oYSl7dGhpcy5tZXNzYWdlPWF9O2Z1bmN0aW9uIHRmKGEpe2EucXY9ITA7cmV0dXJuIGF9O3ZhciB1Zj10ZihmdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIn0pLHZmPXRmKGZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmcifSksd2Y9dGYoZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09ImJvb2xlYW4ifSk7ZnVuY3Rpb24geGYoYSl7dmFyIGI9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2FdO3JldHVybiBiPT09dm9pZCAwP25ldyBzZigiVmFsdWUgIithKyIgY2FuIG5vdCBiZSBlbmNvZGVkIGluIHdlYi1zYWZlIGJhc2U2NCBkaWN0aW9uYXJ5LiIpOmJ9O2Z1bmN0aW9uIHlmKGEpe3N3aXRjaChhKXtjYXNlIDE6cmV0dXJuIjEiO2Nhc2UgMjpjYXNlIDQ6cmV0dXJuIjAiO2RlZmF1bHQ6cmV0dXJuIi0ifX07dmFyIHpmPS9eWzEtOWEtekEtWl8tXVsxLTlhLWNdWzEtOWEtdl1cZCQvO2Z1bmN0aW9uIEFmKGEsYil7Zm9yKHZhciBjPSIiLGQ9ITA7YT43Oyl7dmFyIGU9YSYzMTthPj49NTtkP2Q9ITE6ZXw9MzI7Yz0iIit4ZihlKStjfWE8PD0yO2R8fChhfD0zMik7cmV0dXJuIGM9IiIreGYoYXxiKStjfWZ1bmN0aW9uIEJmKGEsYil7cmV0dXJuIGI9PT12b2lkIDB8fGI9PT0wPyIiOiIiK0FmKGEsMSkreGYoYil9CmZ1bmN0aW9uIENmKGEsYil7dmFyIGM7dmFyIGQ9YS5oaSxlPWEuYms7ZD09PXZvaWQgMD9jPSIiOihlfHwoZT0wKSxjPSIiK0FmKDEsMSkreGYoZDw8MnxlKSk7dmFyIGY9IjQiK2MrQmYoMixhLnFyKSxnLGg9YS5JbztnPWgmJnpmLnRlc3QoaCk/IiIrQWYoMywyKStoOiIiO3ZhciBsO3ZhciBuPWEuY3RpZDtpZihuJiZiKXt2YXIgcD1BZig1LDMpLHE9bi5zcGxpdCgiLSIpLHI9cVswXS50b1VwcGVyQ2FzZSgpO2lmKHIhPT0iR1RNIiYmciE9PSJPUFQiKWw9IiI7ZWxzZXt2YXIgdD1xWzFdO2w9IiIrcCt4ZigxK3QubGVuZ3RoKSsoYS5Mc3x8MCkrdH19ZWxzZSBsPSIiO3ZhciB1PWEuY2Fub25pY2FsSWQsdj1hLm1jLHg9YS56dix5PWYrZytCZig0LGEuRG8pK2wrQmYoNixhLkR0KSsodT8iIitBZig3LDMpK3hmKHUubGVuZ3RoKSt1OiIiKSsodj8iIitBZig4LDMpK3hmKHYubGVuZ3RoKSt2OiIiKSsoeD8iIitBZig5LDMpK3hmKHgubGVuZ3RoKSt4OiIiKSx6O3ZhciBDPWEuenI7Qz0KQz09PXZvaWQgMD97fTpDO2Zvcih2YXIgRD1bXSxJPW0oT2JqZWN0LmtleXMoQykpLEc9SS5uZXh0KCk7IUcuZG9uZTtHPUkubmV4dCgpKXt2YXIgTj1HLnZhbHVlO0RbTnVtYmVyKE4pXT1DW05dfWlmKEQubGVuZ3RoKXt2YXIgUz1BZigxMCwzKSxXO2lmKEQubGVuZ3RoPT09MClXPXhmKDApO2Vsc2V7Zm9yKHZhciBlYT1bXSxqYT0wLGZhPSExLHNhPTA7c2E8RC5sZW5ndGg7c2ErKyl7ZmE9ITA7dmFyIGRhPXNhJTY7RFtzYV0mJihqYXw9MTw8ZGEpO2RhPT09NSYmKGVhLnB1c2goeGYoamEpKSxqYT0wLGZhPSExKX1mYSYmZWEucHVzaCh4ZihqYSkpO1c9ZWEuam9pbigiIil9dmFyIG1hPVc7ej0iIitTK3hmKG1hLmxlbmd0aCkrbWF9ZWxzZSB6PSIiO3ZhciBQYT1hLlVzLEZhPWEubnQ7cmV0dXJuIHkreisoUGE/IiIrQWYoMTEsMykreGYoUGEubGVuZ3RoKStQYToiIikrKEZhPyIiK0FmKDEzLDMpK3hmKEZhLmxlbmd0aCkrRmE6IiIpK0JmKDE0LGEuRXQpK0JmKDE1LGEucnYpK0JmKDE2LAphLkF2KX07ZnVuY3Rpb24gRGYoYSl7Zm9yKHZhciBiPVtdLGM9MCxkPTA7ZDxhLmxlbmd0aDtkKyspe3ZhciBlPWEuY2hhckNvZGVBdChkKTtlPDEyOD9iW2MrK109ZTooZTwyMDQ4P2JbYysrXT1lPj42fDE5MjooKGUmNjQ1MTIpPT01NTI5NiYmZCsxPGEubGVuZ3RoJiYoYS5jaGFyQ29kZUF0KGQrMSkmNjQ1MTIpPT01NjMyMD8oZT02NTUzNisoKGUmMTAyMyk8PDEwKSsoYS5jaGFyQ29kZUF0KCsrZCkmMTAyMyksYltjKytdPWU+PjE4fDI0MCxiW2MrK109ZT4+MTImNjN8MTI4KTpiW2MrK109ZT4+MTJ8MjI0LGJbYysrXT1lPj42JjYzfDEyOCksYltjKytdPWUmNjN8MTI4KX1yZXR1cm4gYn07ZnVuY3Rpb24gRWYoYSxiKXtmb3IodmFyIGM9cWIoYiksZD1uZXcgVWludDhBcnJheShjLmxlbmd0aCksZT0wO2U8Yy5sZW5ndGg7ZSsrKWRbZV09Yy5jaGFyQ29kZUF0KGUpO2lmKGQubGVuZ3RoIT09MzIpdGhyb3cgRXJyb3IoIktleSBpcyBub3QgMzIgYnl0ZXMuIik7cmV0dXJuIEZmKGEsZCl9ZnVuY3Rpb24gRmYoYSxiKXtpZihhPT09IiIpcmV0dXJuIiI7dmFyIGM9WmIoYSksZD1iLnNsaWNlKC0yKSxlPVtdLmNvbmNhdCh3KGQpLHcoYykpLm1hcChmdW5jdGlvbihnLGgpe3JldHVybiBnXmJbaCViLmxlbmd0aF19KSxmPW5ldyBVaW50OEFycmF5KFtdLmNvbmNhdCh3KGUpLHcoZCkpKTtyZXR1cm4gcGIoU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdyhmKSkpLnJlcGxhY2UoL1wuKyQvLCIiKX07dmFyIEdmPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiKXtyZXR1cm57dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gYn19fXJldHVybntjcDphKCJjb25zZW50IiksWms6YSgiY29udmVydF9jYXNlX3RvIiksYWw6YSgiY29udmVydF9mYWxzZV90byIpLGJsOmEoImNvbnZlcnRfbnVsbF90byIpLGVwOmEoImNvbnZlcnRfdG9fYm9vbGVhbiIpLGFoOmEoImNvbnZlcnRfdG9fbnVtYmVyIiksZmw6YSgiY29udmVydF90cnVlX3RvIiksaWw6YSgiY29udmVydF91bmRlZmluZWRfdG8iKSxZdDphKCJkZWJ1Z19tb2RlX21ldGFkYXRhIiksWWI6YSgiZnVuY3Rpb24iKSxSbTphKCJpbnN0YW5jZV9uYW1lIiksTnE6YSgibGl2ZV9vbmx5IiksT3E6YSgibWFsd2FyZV9kaXNhYmxlZCIpLE1FVEFEQVRBOmEoIm1ldGFkYXRhIiksUnE6YSgib3JpZ2luYWxfYWN0aXZpdHlfaWQiKSxUdTphKCJvcmlnaW5hbF92ZW5kb3JfdGVtcGxhdGVfaWQiKSxTdTphKCJvbmNlX29uX2xvYWQiKSxRcTphKCJvbmNlX3Blcl9ldmVudCIpLAprbjphKCJvbmNlX3Blcl9sb2FkIiksVnU6YSgicHJpb3JpdHlfb3ZlcnJpZGUiKSxZdTphKCJyZXNwZWN0ZWRfY29uc2VudF90eXBlcyIpLHRuOmEoInNldHVwX3RhZ3MiKSx5ajphKCJ0YWdfaWQiKSxEbjphKCJ0ZWFyZG93bl90YWdzIikscGw6YSgiZGlzYWJsZWRfaW5fZ29vZ2xlX21vZGUiKSxGcTphKCJnZW5lcmF0ZWRfdGFnZ2luZ19tZXRhZGF0YSIpfX0oKTtmdW5jdGlvbiBIZihhLGIpe3ZhciBjPXt9O2NbR2YuWWJdPSJfXyIrYTtmb3IodmFyIGQgaW4gYiliLmhhc093blByb3BlcnR5KGQpJiYoY1sidnRwXyIrZF09YltkXSk7cmV0dXJuIGN9O2Z1bmN0aW9uIElmKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGMsZDtyZXR1cm4oKGM9ZGF0YSk9PW51bGw/MDooZD1jLmJsb2IpPT1udWxsPzA6ZC5oYXNPd25Qcm9wZXJ0eShhKSk/ISFkYXRhLmJsb2JbYV06Yn1mdW5jdGlvbiBFKGEpe3ZhciBiO2I9Yj09PXZvaWQgMD8iIjpiO3ZhciBjLGQ7cmV0dXJuKChjPWRhdGEpPT1udWxsPzA6KGQ9Yy5ibG9iKT09bnVsbD8wOmQuaGFzT3duUHJvcGVydHkoYSkpP1N0cmluZyhkYXRhLmJsb2JbYV0pOmJ9ZnVuY3Rpb24gSmYoYSl7dmFyIGIsYztyZXR1cm4oKGI9ZGF0YSk9PW51bGw/MDooYz1iLmJsb2IpPT1udWxsPzA6Yy5oYXNPd25Qcm9wZXJ0eShhKSk/TnVtYmVyKGRhdGEuYmxvYlthXSk6MH1mdW5jdGlvbiBLZihhKXt2YXIgYjtiPWI9PT12b2lkIDA/W106Yjt2YXIgYyxkLGU9KGM9ZGF0YSk9PW51bGw/dm9pZCAwOihkPWMuYmxvYik9PW51bGw/dm9pZCAwOmRbYV07cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZTpifQpmdW5jdGlvbiBMZihhKXt2YXIgYjtiPWI9PT12b2lkIDA/IiI6Yjt2YXIgYz1NZig0Nik7cmV0dXJuIGMmJihjPT1udWxsPzA6Yy5oYXNPd25Qcm9wZXJ0eShhKSk/U3RyaW5nKGNbYV0pOmJ9ZnVuY3Rpb24gTmYoYSxiKXt2YXIgYz1NZig0Nik7cmV0dXJuIGMmJihjPT1udWxsPzA6Yy5oYXNPd25Qcm9wZXJ0eShhKSk/TnVtYmVyKGNbYV0pOmJ9ZnVuY3Rpb24gTWYoYSl7dmFyIGIsYztyZXR1cm4oYj1kYXRhKT09bnVsbD92b2lkIDA6KGM9Yi5ibG9iKT09bnVsbD92b2lkIDA6Y1thXX07dmFyIE9mPWZ1bmN0aW9uKGEsYixjKXt2YXIgZDtkPUVycm9yLmNhbGwodGhpcyxjKTt0aGlzLm1lc3NhZ2U9ZC5tZXNzYWdlOyJzdGFjayJpbiBkJiYodGhpcy5zdGFjaz1kLnN0YWNrKTt0aGlzLnBlcm1pc3Npb25JZD1hO3RoaXMucGFyYW1ldGVycz1iO3RoaXMubmFtZT0iUGVybWlzc2lvbkVycm9yIn07d2EoT2YsRXJyb3IpO09mLnByb3RvdHlwZS5nZXRNZXNzYWdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWVzc2FnZX07ZnVuY3Rpb24gUGYoYSxiKXtpZihBcnJheS5pc0FycmF5KGEpKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwiY29udGV4dCIse3ZhbHVlOntsaW5lOmJbMF19fSk7Zm9yKHZhciBjPTE7YzxhLmxlbmd0aDtjKyspUGYoYVtjXSxiW2NdKX19O2Z1bmN0aW9uIFFmKCl7cmV0dXJuIGZ1bmN0aW9uKGEsYil7dmFyIGM7dmFyIGQ9UmY7YSBpbnN0YW5jZW9mIGJiPyhhLkg9ZCxjPWEpOmM9bmV3IGJiKGEsZCk7dmFyIGU9YztiJiZlLksucHVzaChiKTt0aHJvdyBlO319ZnVuY3Rpb24gUmYoYSl7aWYoIWEubGVuZ3RoKXJldHVybiBhO2EucHVzaCh7aWQ6Im1haW4iLGxpbmU6MH0pO2Zvcih2YXIgYj1hLmxlbmd0aC0xO2I+MDtiLS0pQWIoYVtiXS5pZCkmJmEuc3BsaWNlKGIrKywxKTtmb3IodmFyIGM9YS5sZW5ndGgtMTtjPjA7Yy0tKWFbY10ubGluZT1hW2MtMV0ubGluZTthLnNwbGljZSgwLDEpO3JldHVybiBhfTt2YXIgU2Y9UmVnRXhwKCJbXjAtOVxcListXSIsImciKSxUZj1SZWdFeHAoIlteMC05XFwsKy1dIiwiZyIpLFVmPVJlZ0V4cCgiW14wLTkrLV0iLCJnIik7CmZ1bmN0aW9uIFZmKGEsYil7aWYodHlwZW9mIGE9PT0ibnVtYmVyIilyZXR1cm4gYTt2YXIgYz1TdHJpbmcoYSksZDtpZihiPT09IkFVVE9NQVRJQyIpe3ZhciBlPShjLm1hdGNoKC9cLi9nKXx8W10pLmxlbmd0aCxmPShjLm1hdGNoKC8sL2cpfHxbXSkubGVuZ3RoLGc9Ik5PTkUiO2lmKGU+MCYmZj4wKXt2YXIgaD1jLmxhc3RJbmRleE9mKCIuIik+Yy5sYXN0SW5kZXhPZigiLCIpO2gmJmU9PT0xP2c9IlBFUklPRCI6aHx8ZiE9PTF8fChnPSJDT01NQSIpfWVsc2UgZT09PTE/Zz0oYy5zcGxpdCgiLiIpWzFdLm1hdGNoKC9bMC05XS9nKXx8W10pLmxlbmd0aCE9PTM/IlBFUklPRCI6Ik5PTkUiOmY9PT0xJiYoZz0oYy5zcGxpdCgiLCIpWzFdLm1hdGNoKC9bMC05XS9nKXx8W10pLmxlbmd0aCE9PTM/IkNPTU1BIjoiTk9ORSIpO2Q9Z31lbHNlIGQ9Yj09PSJDT01NQSI/IkNPTU1BIjoiUEVSSU9EIjt2YXIgbCxuO2Q9PT0iUEVSSU9EIj8obD0iLiIsbj1TZik6ZD09PSJDT01NQSI/KGw9IiwiLApuPVRmKToobD0iIixuPVVmKTt2YXIgcD1jLnJlcGxhY2UobiwiIik7aWYobCE9PSIiJiZwLnNwbGl0KGwpLmxlbmd0aD4yKXJldHVybiBhO3ZhciBxPXAucmVwbGFjZSgvLC9nLCIuIik7aWYocT09PSIiKXJldHVybiBhO3ZhciByPU51bWJlcihxKTtyZXR1cm4gaXNOYU4ocik/YTpyfTt2YXIgV2Y9W10sWGY9e307ZnVuY3Rpb24gWWYoYSl7cmV0dXJuIFdmW2FdPT09dm9pZCAwPyExOldmW2FdfTt2YXIgWmY9ZnVuY3Rpb24oKXt0aGlzLkg9e319LCRmPWZ1bmN0aW9uKGEsYixjKXt2YXIgZDsoZD1hLkgpW2JdIT1udWxsfHwoZFtiXT1bXSk7YS5IW2JdLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gYy5hcHBseShudWxsLHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSl9KX07ZnVuY3Rpb24gYWcoYSxiLGMsZCl7aWYoYSlmb3IodmFyIGU9MDtlPGEubGVuZ3RoO2UrKyl7dmFyIGY9dm9pZCAwLGc9IkEgcG9saWN5IGZ1bmN0aW9uIGRlbmllZCB0aGUgcGVybWlzc2lvbiByZXF1ZXN0Ijt0cnl7Zj1hW2VdKGIsYyxkKSxnKz0iLiJ9Y2F0Y2goaCl7Zz10eXBlb2YgaD09PSJzdHJpbmciP2crKCI6ICIraCk6aCBpbnN0YW5jZW9mIEVycm9yP2crKCI6ICIraC5tZXNzYWdlKTpnKyIuIn1pZighZil0aHJvdyBuZXcgT2YoYyxkLGcpO319CmZ1bmN0aW9uIGJnKGEsYil7dmFyIGM9Y2coZGcuSCxiLGZ1bmN0aW9uKCl7cmV0dXJue319KTt0cnl7cmV0dXJuIGMoYSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fWZ1bmN0aW9uIGNnKGEsYixjKXtyZXR1cm4gZnVuY3Rpb24oZCl7aWYoZCl7dmFyIGU9YS5IW2RdLGY9YS5ILmFsbDtpZihlfHxmKXt2YXIgZz1jLmFwcGx5KHZvaWQgMCxbZF0uY29uY2F0KHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSkpO2FnKGUsYixkLGcpO2FnKGYsYixkLGcpfX19fTt2YXIgZ2c9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXM7dGhpcy5LPXt9O3RoaXMuSD1uZXcgWmY7dmFyIGU9e30sZj17fSxnPWNnKHRoaXMuSCxhLGZ1bmN0aW9uKGgpe3JldHVybiBoJiZlW2hdP2VbaF0uYXBwbHkodm9pZCAwLFtoXS5jb25jYXQodyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKSk6e319KTtHYihiLGZ1bmN0aW9uKGgsbCl7ZnVuY3Rpb24gbihxKXt2YXIgcj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7aWYoIXBbcV0pdGhyb3cgZWcocSx7fSwiVGhlIHJlcXVlc3RlZCBhZGRpdGlvbmFsIHBlcm1pc3Npb24gIitxKyIgaXMgbm90IGNvbmZpZ3VyZWQuIik7Zy5hcHBseShudWxsLFtxXS5jb25jYXQodyhyKSkpfXZhciBwPXt9O0diKGwsZnVuY3Rpb24ocSxyKXt2YXIgdD1mZyhxLHIsYyk7cFtxXT10LmFzc2VydDtlW3FdfHwoZVtxXT10LmFhKTt0Lk9uJiYhZltxXSYmKGZbcV09dC5Pbil9KTtkLktbaF09ZnVuY3Rpb24ocSxyKXt2YXIgdD1wW3FdO2lmKCF0KXRocm93IGVnKHEsCnt9LCJUaGUgcmVxdWVzdGVkIHBlcm1pc3Npb24gIitxKyIgaXMgbm90IGNvbmZpZ3VyZWQuIik7dmFyIHU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApO3QuYXBwbHkodm9pZCAwLHUpO2cuYXBwbHkodm9pZCAwLHUpO3ZhciB2PWZbcV07diYmdi5hcHBseShudWxsLFtuXS5jb25jYXQodyh1LnNsaWNlKDEpKSkpfX0pfSxoZz1mdW5jdGlvbihhKXtyZXR1cm4gZGcuS1thXXx8ZnVuY3Rpb24oKXt9fTsKZnVuY3Rpb24gZmcoYSxiLGMpe3RyeXt2YXIgZD1jWyJfXyIrYV07aWYoIWQpdGhyb3cgRXJyb3IoIk5vIGZ1bmN0aW9uIGZvdW5kIGZvciBwZXJtaXNzaW9uOiAiK2ErIi4iKTt2YXIgZT1IZihhLGIpO2UudnRwX3Blcm1pc3Npb25OYW1lPWE7ZS52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yPWVnO2RlbGV0ZSBlW0dmLlliXTtyZXR1cm4gZChlKX1jYXRjaChmKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGcpe3Rocm93IG5ldyBPZihnLHt9LCJQZXJtaXNzaW9uICIrZysiIGlzIHVua25vd24uIik7fSxhYTpmdW5jdGlvbigpe3Rocm93IG5ldyBPZihhLHt9LCJQZXJtaXNzaW9uICIrYSsiIGlzIHVua25vd24uIik7fX19fWZ1bmN0aW9uIGVnKGEsYixjKXtyZXR1cm4gbmV3IE9mKGEsYixjKX07dmFyIGlnPUUoNSksamc9RSgyMCksa2c9RSgxKSxsZz0hMTt2YXIgbWc9e307bWcuUG89SWYoMjkpO21nLktyPUlmKDI4KTtmdW5jdGlvbiBuZyhhKXt2YXIgYj0xLGMsZCxlO2lmKGEpZm9yKGI9MCxkPWEubGVuZ3RoLTE7ZD49MDtkLS0pZT1hLmNoYXJDb2RlQXQoZCksYj0oYjw8NiYyNjg0MzU0NTUpK2UrKGU8PDE0KSxjPWImMjY2MzM4MzA0LGI9YyE9PTA/Yl5jPj4yMTpiO3JldHVybiBifTt2YXIgb2c9ZnVuY3Rpb24oYSl7dGhpcy5jYWNoZT1hfTtvZy5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3ZhciBiPW5nKGEpLGM9dGhpcy5jYWNoZS5nZXQoYik7aWYoIWMpcmV0dXJue3Byb21pc2U6dm9pZCAwLEtqOjB9O2lmKERhdGUubm93KCk+PWMudGltZXN0YW1wKzlFNSlyZXR1cm4gdGhpcy5jYWNoZS5kZWxldGUoYikse3Byb21pc2U6dm9pZCAwLEtqOjN9O3ZhciBkPWMucmVzb2x2ZWRWYWx1ZT8yOjE7cmV0dXJue3Byb21pc2U6Yy5yZXNvbHZlZFZhbHVlP1Byb21pc2UucmVzb2x2ZShjLnJlc29sdmVkVmFsdWUpOmMucHJvbWlzZSxLajpkfX07b2cucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3ZhciBjPXtwcm9taXNlOmIscmVzb2x2ZWRWYWx1ZTp2b2lkIDAsdGltZXN0YW1wOkRhdGUubm93KCl9O3RoaXMuY2FjaGUuc2V0KG5nKGEpLGMpO2IudGhlbihmdW5jdGlvbihkKXtjLnJlc29sdmVkVmFsdWU9ZH0pfTtmdW5jdGlvbiBwZyhhKXtzd2l0Y2goYSl7Y2FzZSAwOmJyZWFrO2Nhc2UgOTpyZXR1cm4iZTQiO2Nhc2UgNjpyZXR1cm4iZTUiO2Nhc2UgMTQ6cmV0dXJuImU2IjtkZWZhdWx0OnJldHVybiJlNyJ9fTt2YXIgRj17RDp7WGE6ImFkX3BlcnNvbmFsaXphdGlvbiIsa2E6ImFkX3N0b3JhZ2UiLG1hOiJhZF91c2VyX2RhdGEiLHJhOiJhbmFseXRpY3Nfc3RvcmFnZSIsbmM6InJlZ2lvbiIsc2E6ImNvbnNlbnRfdXBkYXRlZCIsWWc6IndhaXRfZm9yX3VwZGF0ZSIsZWg6ImVuZHBvaW50X3R5cGUiLHFwOiJhcHBfcmVtb3ZlIixycDoiYXBwX3N0b3JlX3JlZnVuZCIsdHA6ImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fY2FuY2VsIix1cDoiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9jb252ZXJ0Iix2cDoiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9yZW5ldyIsd3A6ImNvbnNlbnRfdXBkYXRlIix4cDoiY29udmVyc2lvbiIsdmw6ImFkZF9wYXltZW50X2luZm8iLHdsOiJhZGRfc2hpcHBpbmdfaW5mbyIseGU6ImFkZF90b19jYXJ0Iix5ZToicmVtb3ZlX2Zyb21fY2FydCIseGw6InZpZXdfY2FydCIsQWQ6ImJlZ2luX2NoZWNrb3V0IixldToiZ2VuZXJhdGVfbGVhZCIsemU6InNlbGVjdF9pdGVtIixvYzoidmlld19pdGVtX2xpc3QiLApRYzoic2VsZWN0X3Byb21vdGlvbiIscWM6InZpZXdfcHJvbW90aW9uIixJYjoicHVyY2hhc2UiLEFlOiJyZWZ1bmQiLHJjOiJ2aWV3X2l0ZW0iLHlsOiJhZGRfdG9fd2lzaGxpc3QiLHlwOiJleGNlcHRpb24iLHpwOiJmaXJzdF9vcGVuIixBcDoiZmlyc3RfdmlzaXQiLHdhOiJndGFnLmNvbmZpZyIsSmI6Imd0YWcuZ2V0IixCcDoiaW5fYXBwX3B1cmNoYXNlIixzYzoicGFnZV92aWV3IixDcDoic2NyZWVuX3ZpZXciLERwOiJzZXNzaW9uX3N0YXJ0IixFcDoic291cmNlX3VwZGF0ZSIsRnA6InRpbWluZ19jb21wbGV0ZSIsR3A6InRyYWNrX3NvY2lhbCIseWY6InVzZXJfZW5nYWdlbWVudCIsSHA6InVzZXJfaWRfdXBkYXRlIixmaDoiYnJhaWRfbGlua19kZWNvcmF0aW9uX3NvdXJjZSIsZ2g6ImJyYWlkX3N0b3JhZ2Vfc291cmNlIixCZDoiZ2NsaWRfbGlua19kZWNvcmF0aW9uX3NvdXJjZSIsQ2Q6ImdjbGlkX3N0b3JhZ2Vfc291cmNlIixTYjoiZ2NsZ2IiLGxiOiJnY2xpZCIsemw6ImdjbGlkX2xlbiIsCkJlOiJnY2xncyIsQ2U6ImdjbGxwIixEZToiZ2Nsc3QiLG1iOiJhZHNfZGF0YV9yZWRhY3Rpb24iLHpmOiJnYWRfc291cmNlIixBZjoiZ2FkX3NvdXJjZV9zcmMiLERkOiJnY2xpZF91cmwiLEFsOiJnY2xzcmMiLEJmOiJnYnJhaWQiLEVlOiJ3YnJhaWQiLFJjOiJhbGxvd19hZF9wZXJzb25hbGl6YXRpb25fc2lnbmFscyIscmk6ImFsbG93X2N1c3RvbV9zY3JpcHRzIixoaDoiYWxsb3dfZGlzcGxheV9mZWF0dXJlcyIsc2k6ImFsbG93X2VuaGFuY2VkX2NvbnZlcnNpb25zIixTYzoiYWxsb3dfZ29vZ2xlX3NpZ25hbHMiLHVpOiJhbGxvd19pbnRlcmVzdF9ncm91cHMiLElwOiJhcHBfaWQiLEpwOiJhcHBfaW5zdGFsbGVyX2lkIixLcDoiYXBwX25hbWUiLExwOiJhcHBfdmVyc2lvbiIsRWQ6ImF1aWQiLGZ1OiJhdXRvX2RldGVjdGlvbl9lbmFibGVkIixCbDoiYXV0b19ldmVudCIsQ2w6ImF3X3JlbWFya2V0aW5nIixpaDoiYXdfcmVtYXJrZXRpbmdfb25seSIsQ2Y6ImRpc2NvdW50IixEZjoiYXdfZmVlZF9jb3VudHJ5IiwKRWY6ImF3X2ZlZWRfbGFuZ3VhZ2UiLEhhOiJpdGVtcyIsRmY6ImF3X21lcmNoYW50X2lkIix3aToiYXdfYmFza2V0X3R5cGUiLEdmOiJjYW1wYWlnbl9jb250ZW50IixIZjoiY2FtcGFpZ25faWQiLElmOiJjYW1wYWlnbl9tZWRpdW0iLEpmOiJjYW1wYWlnbl9uYW1lIixLZjoiY2FtcGFpZ24iLExmOiJjYW1wYWlnbl9zb3VyY2UiLE1mOiJjYW1wYWlnbl90ZXJtIixLYjoiY2xpZW50X2lkIixEbDoicm5kIix4aToiY29uc2VudF91cGRhdGVfdHlwZSIsTXA6ImNvbnRlbnRfZ3JvdXAiLE5wOiJjb250ZW50X3R5cGUiLEZkOiJjb252ZXJzaW9uX2Nvb2tpZV9wcmVmaXgiLHlpOiJjb252ZXJzaW9uX2lkIix1YzoiY29udmVyc2lvbl9saW5rZXIiLEhkOiJjb252ZXJzaW9uX2xpbmtlcl9kaXNhYmxlZCIsRmU6ImNvbnZlcnNpb25fYXBpIix6aToiXyZyY2IiLGpoOiJjb29raWVfZGVwcmVjYXRpb24iLExiOiJjb29raWVfZG9tYWluIixDYjoiY29va2llX2V4cGlyZXMiLFRiOiJjb29raWVfZmxhZ3MiLApJZDoiY29va2llX25hbWUiLHZjOiJjb29raWVfcGF0aCIsbmI6ImNvb2tpZV9wcmVmaXgiLEpkOiJjb29raWVfdXBkYXRlIixUYzoiY291bnRyeSIsZWI6ImN1cnJlbmN5IixHZToiY3VzdG9tZXJfbGlmZXRpbWVfdmFsdWUiLGtoOiJjdXN0b21lcl90eXBlIixIZToiY3VzdG9tX21hcCIsQWk6ImdjbGRjX2xpbmtfZGVjb3JhdGlvbl9zb3VyY2UiLEJpOiJnY2xkY19zdG9yYWdlX3NvdXJjZSIsTmY6ImdjbGRjIixLZDoiZGNsaWQiLEVsOiJkZWJ1Z19tb2RlIixPYToiZGV2ZWxvcGVyX2lkIixPcDoiZGlzYWJsZV9tZXJjaGFudF9yZXBvcnRlZF9wdXJjaGFzZXMiLFVjOiJkY19jdXN0b21fcGFyYW1zIixQcDoiZGNfbmF0dXJhbF9zZWFyY2giLFFwOiJkeW5hbWljX2V2ZW50X3NldHRpbmdzIixGbDoiYWZmaWxpYXRpb24iLG1oOiJjaGVja291dF9vcHRpb24iLENpOiJjaGVja291dF9zdGVwIixHbDoiY291cG9uIixPZjoiaXRlbV9saXN0X25hbWUiLERpOiJsaXN0X25hbWUiLFJwOiJwcm9tb3Rpb25zIiwKTGQ6InNoaXBwaW5nIixIbDoidGF4IixuaDoiZW5nYWdlbWVudF90aW1lX21zZWMiLG9oOiJlbmhhbmNlZF9jbGllbnRfaWQiLFNwOiJlbmhhbmNlZF9jb252ZXJzaW9ucyIsZ3U6ImVuaGFuY2VkX2NvbnZlcnNpb25zX2F1dG9tYXRpY19zZXR0aW5ncyIsSWU6ImVzdGltYXRlZF9kZWxpdmVyeV9kYXRlIixQZjoiZXZlbnRfY2FsbGJhY2siLFRwOiJldmVudF9jYXRlZ29yeSIsVmM6ImV2ZW50X2RldmVsb3Blcl9pZF9zdHJpbmciLE1kOiJldmVudF9pZCIsRWk6Il9ldmVudF9qb2luX2lkIixVcDoiZXZlbnRfbGFiZWwiLFViOiJldmVudCIsSWw6Il8mYWUiLEZpOiJldmVudF9zZXR0aW5ncyIscGg6ImV2ZW50X3RpbWVvdXQiLFZwOiJkZXNjcmlwdGlvbiIsV3A6ImZhdGFsIixYcDoiZXhwZXJpbWVudHMiLE5kOiJleHRfY2xpZW50X2lkIixHaToiZmlyZWJhc2VfaWQiLFFmOiJmaXJzdF9wYXJ0eV9jb2xsZWN0aW9uIixSZjoiX3hfMjAiLFZiOiJfeF8xOSIsWXA6ImZsaWdodF9lcnJvcl9jb2RlIiwKWnA6ImZsaWdodF9lcnJvcl9tZXNzYWdlIixIaToiZmxfYWN0aXZpdHlfY2F0ZWdvcnkiLElpOiJmbF9hY3Rpdml0eV9ncm91cCIscWg6ImZsX2FkdmVydGlzZXJfaWQiLEppOiJtYXRjaF9pZCIsSmw6ImZsX3JhbmRvbV9udW1iZXIiLEtsOiJ0cmFuIixMbDoidSIscmg6ImdhY19nY2xpZCIsSmU6ImdhY193YnJhaWQiLE1sOiJnYWNfd2JyYWlkX211bHRpcGxlX2NvbnZlcnNpb25zIixhcToiZ2FfcmVzdHJpY3RfZG9tYWluIixObDoiZ2FfdGVtcF9jbGllbnRfaWQiLGJxOiJnYV90ZW1wX2VjaWQiLEtlOiJnZHByX2FwcGxpZXMiLHNoOiJfZ3RfbWV0YWRhdGEiLE9sOiJnZW9fZ3JhbnVsYXJpdHkiLFNmOiJ2YWx1ZV9jYWxsYmFjayIsVGY6InZhbHVlX2tleSIsVGE6Imdvb2dsZV9hbmFseXNpc19wYXJhbXMiLExlOiJfZ29vZ2xlX25nIixjcToiX29ubyIsVWY6Imdvb2dsZV9zaWduYWxzIixmcToiZ29vZ2xlX3RsZCIsdGg6ImdwcF9zaWQiLHVoOiJncHBfc3RyaW5nIixPZDoiZ3JvdXBzIiwKUGw6ImdzYV9leHBlcmltZW50X2lkIixWZjoiZ3RhZ19ldmVudF9mZWF0dXJlX3VzYWdlIixRbDoiZ3RtX3VwIixNZToiaWZyYW1lX3N0YXRlIixXZjoiaWdub3JlX3JlZmVycmVyIixSbDoiaW50ZXJuYWxfdHJhZmZpY19yZXN1bHRzIixTbDoiX2lzX2ZwbSIsWWM6ImlzX2xlZ2FjeV9jb252ZXJ0ZWQiLFpjOiJpc19sZWdhY3lfbG9hZGVkIixLaToiaXNfcGFzc3Rocm91Z2giLFBkOiJfbHBzIix0YjoibGFuZ3VhZ2UiLExpOiJsZWdhY3lfZGV2ZWxvcGVyX2lkX3N0cmluZyIsRGI6ImxpbmtlciIsWGY6ImFjY2VwdF9pbmNvbWluZyIsd2M6ImRlY29yYXRlX2Zvcm1zIixBYToiZG9tYWlucyIsYWQ6InVybF9wb3NpdGlvbiIsUWQ6Im1lcmNoYW50X2ZlZWRfbGFiZWwiLFJkOiJtZXJjaGFudF9mZWVkX2xhbmd1YWdlIixTZDoibWVyY2hhbnRfaWQiLFRsOiJtZXRob2QiLGdxOiJuYW1lIixVbDoibmF2aWdhdGlvbl90eXBlIixOZToibmV3X2N1c3RvbWVyIixNaToibm9uX2ludGVyYWN0aW9uIiwKaHE6Im9wdGltaXplX2lkIixWbDoicGFnZV9ob3N0bmFtZSIsWWY6InBhZ2VfcGF0aCIsVWE6InBhZ2VfcmVmZXJyZXIiLE1iOiJwYWdlX3RpdGxlIixpcToicGFzc2VuZ2VycyIsV2w6InBob25lX2NvbnZlcnNpb25fY2FsbGJhY2siLGpxOiJwaG9uZV9jb252ZXJzaW9uX2NvdW50cnlfY29kZSIsWGw6InBob25lX2NvbnZlcnNpb25fY3NzX2NsYXNzIixrcToicGhvbmVfY29udmVyc2lvbl9pZHMiLFlsOiJwaG9uZV9jb252ZXJzaW9uX251bWJlciIsWmw6InBob25lX2NvbnZlcnNpb25fb3B0aW9ucyIsbHE6Il9wbGF0aW51bV9yZXF1ZXN0X3N0YXR1cyIsbXE6Il9wcm90ZWN0ZWRfYXVkaWVuY2VfZW5hYmxlZCIsd2g6InF1YW50aXR5Iix4aDoicmVkYWN0X2RldmljZV9pbmZvIixhbToicmVmZXJyYWxfZXhjbHVzaW9uX2RlZmluaXRpb24iLGh1OiJfcmVxdWVzdF9zdGFydF90aW1lIixXYjoicmVzdHJpY3RlZF9kYXRhX3Byb2Nlc3NpbmciLG5xOiJyZXRva2VuIixvcToic2FtcGxlX3JhdGUiLApOaToic2NyZWVuX25hbWUiLGJkOiJzY3JlZW5fcmVzb2x1dGlvbiIsYm06Il9zY3JpcHRfc291cmNlIixwcToic2VhcmNoX3Rlcm0iLFRkOiJzZW5kX3BhZ2VfdmlldyIsWGI6InNlbmRfdG8iLE9pOiJzZXJ2ZXJfY29udGFpbmVyXzNwX2VucmljaG1lbnQiLGRkOiJzZXJ2ZXJfY29udGFpbmVyX3VybCIscXE6InNlc3Npb25fYXR0cmlidXRlc19lbmNvZGVkIix5aDoic2Vzc2lvbl9kdXJhdGlvbiIsemg6InNlc3Npb25fZW5nYWdlZCIsUGk6InNlc3Npb25fZW5nYWdlZF90aW1lIix4Yzoic2Vzc2lvbl9pZCIsQWg6InNlc3Npb25fbnVtYmVyIixaZjoiX3NoYXJlZF91c2VyX2lkIixVZDoiZGVsaXZlcnlfcG9zdGFsX2NvZGUiLGl1OiJfdGFnX2ZpcmluZ19kZWxheSIsanU6Il90YWdfZmlyaW5nX3RpbWUiLGt1OiJ0ZW1wb3JhcnlfY2xpZW50X2lkIixRaToidGVzdG9ubHkiLHJxOiJfdGltZXpvbmUiLFBlOiJ0b3Btb3N0X3VybCIsUWU6InRyYWNraW5nX2lkIixSaToidHJhZmZpY190eXBlIiwKUGE6InRyYW5zYWN0aW9uX2lkIixkbToidHJhbnNhY3Rpb25faWRfc291cmNlIix5YzoidHJhbnNwb3J0X3VybCIsc3E6InRyaXBfdHlwZSIsVmQ6InVwZGF0ZSIsemM6InVybF9wYXNzdGhyb3VnaCIsZm06InVwdGdzIixjZzoiX3VzZXJfYWdlbnRfYXJjaGl0ZWN0dXJlIixkZzoiX3VzZXJfYWdlbnRfYml0bmVzcyIsZWc6Il91c2VyX2FnZW50X2Z1bGxfdmVyc2lvbl9saXN0IixmZzoiX3VzZXJfYWdlbnRfbW9iaWxlIixnZzoiX3VzZXJfYWdlbnRfbW9kZWwiLGhnOiJfdXNlcl9hZ2VudF9wbGF0Zm9ybSIsaWc6Il91c2VyX2FnZW50X3BsYXRmb3JtX3ZlcnNpb24iLGpnOiJfdXNlcl9hZ2VudF93b3c2NCIsQWM6InVzZXJfZGF0YSIsZ206InVzZXJfZGF0YV9hdXRvX2xhdGVuY3kiLGhtOiJ1c2VyX2RhdGFfYXV0b19tZXRhIixpbToidXNlcl9kYXRhX2F1dG9fbXVsdGkiLGptOiJ1c2VyX2RhdGFfYXV0b19zZWxlY3RvcnMiLGttOiJ1c2VyX2RhdGFfYXV0b19zdGF0dXMiLEJjOiJ1c2VyX2RhdGFfbW9kZSIsCmxtOiJ1c2VyX2RhdGFfc2V0dGluZ3MiLGZiOiJ1c2VyX2lkIixXZDoidXNlcl9wcm9wZXJ0aWVzIixvbToiX3VzZXJfcmVnaW9uIixrZzoidXNfcHJpdmFjeV9zdHJpbmciLFFhOiJ2YWx1ZSIscW06IndicmFpZF9tdWx0aXBsZV9jb252ZXJzaW9ucyIsZWQ6Il9mcG1fcGFyYW1ldGVycyIsV2k6Il9ob3N0X25hbWUiLFZtOiJfaW5fcGFnZV9jb21tYW5kIixZaToiX2lwX292ZXJyaWRlIixabToiX2lzX3Bhc3N0aHJvdWdoX2NpZCIsSmg6Il9tZWFzdXJlbWVudF90eXBlIixkZToibm9uX3BlcnNvbmFsaXplZF9hZHMiLG9qOiJfc3N0X3BhcmFtZXRlcnMiLFlxOiJzZ3RtX2dlb191c2VyX2NvdW50cnkiLEdkOiJjb252ZXJzaW9uX2xhYmVsIix6YToicGFnZV9sb2NhdGlvbiIsV2M6Il9leHRyYWN0ZWRfZGF0YSIsWGM6Imdsb2JhbF9kZXZlbG9wZXJfaWRfc3RyaW5nIixPZToidGNfcHJpdmFjeV9zdHJpbmcifX07dmFyIEg9e0o6e1NvOiJhYm9ydF93aXRob3V0X2ZhaWwiLGtpOiJhY2NlcHRfYnlfZGVmYXVsdCIsQms6ImFkZF90YWdfdGltaW5nIixEazoiYWRzX2NvbnNlbnRfZ3JhbnRlZCIsdmQ6ImFkc19ldmVudF9wYWdlX3ZpZXciLHdkOiJhbGxvd19hZF9wZXJzb25hbGl6YXRpb24iLFF0OiJhdXRvX2V2ZW50IixLazoiYmF0Y2hfb25fbmF2aWdhdGlvbiIsWGc6ImJpc2NvdHRpX2pvaW5faWQiLFBrOiJjbGllbnRfaWRfc291cmNlIix1ZjoiY29uc2VudF9ldmVudF9pZCIsdmY6ImNvbnNlbnRfcHJpb3JpdHlfaWQiLFN0OiJjb25zZW50X3N0YXRlIixzYToiY29uc2VudF91cGRhdGVkIix3ZjoiY29udmVyc2lvbl9saW5rZXJfZW5hYmxlZCIsVHQ6ImNvbnZlcnNpb25fbWFya2luZ19jYWxsZWQiLEdhOiJjb29raWVfb3B0aW9ucyIsb2w6ImRjX3JhbmRvbSIsWnQ6ImRlZHVwZV9pZCIsUGM6ImVtX2V2ZW50IixidToiZW5kcG9pbnRfZm9yX2RlYnVnIix0bDoiZW5oYW5jZWRfY2xpZW50X2lkX3NvdXJjZSIsCnBwOiJlbmhhbmNlZF9tYXRjaF9yZXN1bHQiLHJtOiJldWlkX2xvZ2dlZF9pbl9zdGF0ZSIsbGc6ImV1aWRfbW9kZV9lbmFibGVkIix0cToiZXZlbnRfcHJvdmVuYW5jZSIsbXU6ImV2ZW50X3NvdXJjZSIsRWI6ImV2ZW50X3N0YXJ0X3RpbWVzdGFtcF9tcyIsd206ImV2ZW50X3VzYWdlIixDaDoiZXh0cmFfdGFnX2V4cGVyaW1lbnRfaWRzIixwdToiYWRkX3BhcmFtZXRlciIsVWk6ImNvdW50aW5nX21ldGhvZCIsRGg6InNlbmRfYXNfaWZyYW1lIixxdToicGFyYW1ldGVyX29yZGVyIixFaDoicGFyc2VkX3RhcmdldCIsc3U6ImZvcm1fZXZlbnRfY2FuY2VsZWQiLEFxOiJnYTRfY29sbGVjdGlvbl9zdWJkb21haW4iLFZpOiJnYTRfcmVxdWVzdF9mbGFncyIsTm06ImdicmFpZF9jb29raWVfbWFya2VkIixRbToiZ3RtX2V4dHJhY3RlZF9kYXRhIixDYzoiaGFuZGxlX2ludGVybmFsbHkiLHV1OiJoYXNfZ2FfY29udmVyc2lvbl9jb25zZW50cyIsZGE6ImhpdF90eXBlIixEYzoiaGl0X3R5cGVfb3ZlcnJpZGUiLApIcToiaWdub3JlX2R1cGVfY29uZmlnIixPdToiaXNfY29uZmlnX2NvbW1hbmQiLEdoOiJpc19jb25zZW50X3VwZGF0ZSIsbWc6ImlzX2NvbnZlcnNpb24iLFdtOiJpc19lY29tbWVyY2UiLFhtOiJpc19lY19jbV9zcGxpdCIsYWU6ImlzX2V4dGVybmFsX2V2ZW50IixuZzoiaXNfZmlyc3RfdmlzaXQiLFltOiJpc19maXJzdF92aXNpdF9jb252ZXJzaW9uIixaaToiaXNfZmxfZmFsbGJhY2tfY29udmVyc2lvbl9mbG93X2FsbG93ZWQiLGZkOiJpc19mcG1fZW5jcnlwdGlvbiIsYWo6ImlzX2ZwbV9zcGxpdCIsb2I6ImlzX2djcF9icm93c2VyIixiajoiaXNfZ29vZ2xlX21lYXN1cmVtZW50X2FsbG93ZWQiLGNqOiJpc19nb29nbGVfc2lnbmFsc19lbmFibGVkIixiZToiaXNfbWVyY2hhbnRfY2VudGVyIixIaDoiaXNfbmV3X3RvX3NpdGUiLEVjOiJpc19wZXJzb25hbGl6YXRpb24iLGRqOiJpc19zZXJ2ZXJfc2lkZV9kZXN0aW5hdGlvbiIsVGU6ImlzX3Nlc3Npb25fc3RhcnQiLGJuOiJpc19zZXNzaW9uX3N0YXJ0X2NvbnZlcnNpb24iLApQdToiaXNfc2d0bV9nYV9hZHNfY29udmVyc2lvbl9zdHVkeV9jb250cm9sX2dyb3VwIixRdToiaXNfc2d0bV9wcmVoaXQiLGRuOiJpc19zZ3RtX3NlcnZpY2Vfd29ya2VyIixJaDoiaXNfc3BsaXRfY29udmVyc2lvbiIsSXE6ImlzX3N5biIsRmM6ImlzX3Rlc3RfZXZlbnQiLG9nOiJqb2luX2lkIixlajoiam9pbl9lbGFwc2VkIixwZzoiam9pbl90aW1lcl9zZWMiLGduOiJsb2NhbF9zdG9yYWdlX2F3X2NvbnZlcnNpb25fY291bnRlcnMiLFdlOiJ0dW5uZWxfdXBkYXRlZCIsVXU6InByZWhpdF9mb3JfcmV0cnkiLFd1OiJwcm9taXNlcyIsWHU6InJlY29yZF9hd19sYXRlbmN5IixYZToicmVkYWN0X2Fkc19kYXRhIixZZToicmVkYWN0X2NsaWNrX2lkcyIscG46InJlbWFya2V0aW5nX29ubHkiLGxqOiJzZW5kX2NjbV9wYXJhbGxlbF9waW5nIixoZDoic2VuZF9kb3VibGVjbGlja19qb2luIixNaDoic2VuZF9mcG1fZ2VvX2pvaW4iLE5oOiJzZW5kX2ZwbV9nb29nbGVfam9pbiIsWnU6InNlbmRfY2NtX3BhcmFsbGVsX3Rlc3RfcGluZyIsCnJuOiJzZW5kX2dvb2dsZV9tZWFzdXJlbWVudCIscmc6InNlbmRfdGxkX2pvaW4iLHNnOiJzZW5kX3RvX2Rlc3RpbmF0aW9ucyIsbWo6InNlbmRfdG9fdGFyZ2V0cyIsc246InNlbmRfdXNlcl9kYXRhX2hpdCIscGo6InNlcnZpY2Vfd29ya2VyX2NvbnRleHQiLE5iOiJzb3VyY2VfY2Fub25pY2FsX2lkIixKYToic3BlY3VsYXRpdmUiLHluOiJzcGVjdWxhdGl2ZV9pbl9tZXNzYWdlIixBbjoic3VwcHJlc3Nfc2NyaXB0X2xvYWQiLEJuOiJzeW5fb3JfbW9kIix6ajoidHJhbnNpZW50X2Vjc2lkIix0ZzoidHJhbnNtaXNzaW9uX3R5cGUiLFlhOiJ1c2VyX2RhdGEiLGd2OiJ1c2VyX2RhdGFfZnJvbV9hdXRvbWF0aWMiLGh2OiJ1c2VyX2RhdGFfZnJvbV9hdXRvbWF0aWNfZ2V0dGVyIixHbjoidXNlcl9kYXRhX2Zyb21fY29kZSIsaXI6InVzZXJfZGF0YV9mcm9tX21hbnVhbCIsanY6InVzZXJfZGF0YV9tb2RlIix1ZzoidXNlcl9pZF91cGRhdGVkIn19Owp2YXIgdGc9ZnVuY3Rpb24oYSl7dmFyIGI9e30sYz0wO0diKGEsZnVuY3Rpb24oZSxmKXtpZihmIT1udWxsKXt2YXIgZz0oIiIrZikucmVwbGFjZSgvfi9nLCJ+fiIpO2lmKHFnLmhhc093blByb3BlcnR5KGUpKWJbcWdbZV1dPWc7ZWxzZSBpZihyZy5oYXNPd25Qcm9wZXJ0eShlKSl7dmFyIGg9cmdbZV07Yi5oYXNPd25Qcm9wZXJ0eShoKXx8KGJbaF09Zyl9ZWxzZSBpZihlPT09ImNhdGVnb3J5Iilmb3IodmFyIGw9Zy5zcGxpdCgiLyIsNSksbj0wO248bC5sZW5ndGg7bisrKXt2YXIgcD1iLHE9c2dbbl0scj1sW25dO3AuaGFzT3duUHJvcGVydHkocSl8fChwW3FdPXIpfWVsc2UgaWYoYzwyNyl7dmFyIHQ9U3RyaW5nLmZyb21DaGFyQ29kZShjPDEwPzQ4K2M6NjUrYy0xMCk7YlsiayIrdF09KCIiK1N0cmluZyhlKSkucmVwbGFjZSgvfi9nLCJ+fiIpO2JbInYiK3RdPWc7YysrfX19KTt2YXIgZD1bXTtHYihiLGZ1bmN0aW9uKGUsZil7ZC5wdXNoKCIiK2UrZil9KTtyZXR1cm4gZC5qb2luKCJ+Iil9LApxZz17aXRlbV9pZDoiaWQiLGl0ZW1fbmFtZToibm0iLGl0ZW1fYnJhbmQ6ImJyIixpdGVtX2NhdGVnb3J5OiJjYSIsaXRlbV9jYXRlZ29yeTI6ImMyIixpdGVtX2NhdGVnb3J5MzoiYzMiLGl0ZW1fY2F0ZWdvcnk0OiJjNCIsaXRlbV9jYXRlZ29yeTU6ImM1IixpdGVtX3ZhcmlhbnQ6InZhIixwcmljZToicHIiLHF1YW50aXR5OiJxdCIsY291cG9uOiJjcCIsaXRlbV9saXN0X25hbWU6ImxuIixpbmRleDoibHAiLGl0ZW1fbGlzdF9pZDoibGkiLGRpc2NvdW50OiJkcyIsYWZmaWxpYXRpb246ImFmIixwcm9tb3Rpb25faWQ6InBpIixwcm9tb3Rpb25fbmFtZToicG4iLGNyZWF0aXZlX25hbWU6ImNuIixjcmVhdGl2ZV9zbG90OiJjcyIsbG9jYXRpb25faWQ6ImxvIn0scmc9e2lkOiJpZCIsbmFtZToibm0iLGJyYW5kOiJiciIsdmFyaWFudDoidmEiLGxpc3RfbmFtZToibG4iLGxpc3RfcG9zaXRpb246ImxwIixsaXN0OiJsbiIscG9zaXRpb246ImxwIixjcmVhdGl2ZToiY24ifSxzZz1bImNhIiwKImMyIiwiYzMiLCJjNCIsImM1Il07dmFyIHVnPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO0diKGEsZnVuY3Rpb24oYyxkKXtkIT1udWxsJiZiLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGMpKyI9IitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGQpKSl9KTtyZXR1cm4gYi5qb2luKCImIil9LHZnPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCl7dGhpcy5iYXNlVXJsPWI7dGhpcy5lbmRwb2ludD1jO3RoaXMuZGVzdGluYXRpb25JZD1mO3RoaXMuZXZlbnRJZD1nO3RoaXMucHJpb3JpdHlJZD1oO3RoaXMuQmE9YS5CYTt0aGlzLnZlPWEudmU7dGhpcy5Maj1hLkxqO3RoaXMuTj1kO3RoaXMuSz11ZyhhLkJhKTt0aGlzLkg9dWcoYS5Maik7dGhpcy5SPXRoaXMuSC5sZW5ndGg7aWYoZSYmdGhpcy5SPjE2Mzg0KXRocm93IEVycm9yKCJFVkVOVF9UT09fTEFSR0UiKTt9Owp2YXIgd2c9ZnVuY3Rpb24oKXt0aGlzLmV2ZW50cz1bXTt0aGlzLkg9IiI7dGhpcy5CYT17fTt0aGlzLmJhc2VVcmw9IiI7dGhpcy5OPTA7dGhpcy5LPTE7dGhpcy5lbmRwb2ludD0wfTt3Zy5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLlIoYSk/KHRoaXMuZXZlbnRzLnB1c2goYSksdGhpcy5IPWEuSyx0aGlzLkJhPWEuQmEsdGhpcy5iYXNlVXJsPWEuYmFzZVVybCx0aGlzLk4rPWEuUix0aGlzLks9YS5OLHRoaXMuZW5kcG9pbnQ9YS5lbmRwb2ludCx0aGlzLmRlc3RpbmF0aW9uSWQ9YS5kZXN0aW5hdGlvbklkLHRoaXMuWj1hLmV2ZW50SWQsdGhpcy5mYT1hLnByaW9yaXR5SWQsITApOiExfTt3Zy5wcm90b3R5cGUuUj1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5ldmVudHMubGVuZ3RoP3RoaXMuZXZlbnRzLmxlbmd0aD49MjB8fGEuUit0aGlzLk4+PTE2Mzg0PyExOnRoaXMuYmFzZVVybD09PWEuYmFzZVVybCYmdGhpcy5LPT09YS5OJiZ0aGlzLmphKGEpOiEwfTsKd2cucHJvdG90eXBlLmphPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLkg9PT1hLkt9O3ZhciBKPXtVOntrcDoxLG1wOjIsRW46Myxubjo0LHFsOjUscmw6NixFcTo3LG5wOjgsRHE6OSxqcDoxMCxocDoxMSx4bjoxMix2bjoxMyxOazoxNCxVbzoxNSxXbzoxNixobjoxNyxzbDoxOCxmbjoxOSxscDoyMCxQcToyMSxhcDoyMixWbzoyMyxYbzoyNCxubDoyNSxMazoyNixlcjoyNyxKbToyOCxVbToyOSxUbTozMCxTbTozMSxNbTozMixLbTozMyxMbTozNCxHbTozNSxGbTozNixIbTozNyxJbTozOCxCcTozOSxDcTo0MCxVcTo0MX19O0ouVVtKLlUua3BdPSJDUkVBVEVfRVZFTlRfU09VUkNFIjtKLlVbSi5VLm1wXT0iRURJVF9FVkVOVCI7Si5VW0ouVS5Fbl09IlRSQUZGSUNfVFlQRSI7Si5VW0ouVS5ubl09IlJFRkVSUkFMX0VYQ0xVU0lPTiI7Si5VW0ouVS5xbF09IkVDT01NRVJDRV9GUk9NX0dUTV9UQUciO0ouVVtKLlUucmxdPSJFQ09NTUVSQ0VfRlJPTV9HVE1fVUFfU0NIRU1BIjtKLlVbSi5VLkVxXT0iR0FfU0VORCI7Si5VW0ouVS5ucF09IkVNX0ZPUk0iOwpKLlVbSi5VLkRxXT0iR0FfR0FNX0xJTksiO0ouVVtKLlUuanBdPSJDUkVBVEVfRVZFTlRfQVVUT19QQUdFX1BBVEgiO0ouVVtKLlUuaHBdPSJDUkVBVEVEX0VWRU5UIjtKLlVbSi5VLnhuXT0iU0lERUxPQURFRCI7Si5VW0ouVS52bl09IlNHVE1fTEVHQUNZX0NPTkZJR1VSQVRJT04iO0ouVVtKLlUuTmtdPSJDQ0RfRU1fRVZFTlQiO0ouVVtKLlUuVW9dPSJBVVRPX1JFREFDVF9FTUFJTCI7Si5VW0ouVS5Xb109IkFVVE9fUkVEQUNUX1FVRVJZX1BBUkFNIjtKLlVbSi5VLmhuXT0iTVVMVElQTEVfUEFHRVZJRVdfRlJPTV9DT05GSUciO0ouVVtKLlUuc2xdPSJFTV9FVkVOVF9TRU5UX0JFRk9SRV9DT05GSUciO0ouVVtKLlUuZm5dPSJMT0FERURfVklBX0NTVF9PUl9TSURFTE9BRElORyI7Si5VW0ouVS5scF09IkRFQ09ERURfUEFSQU1fTUFUQ0giO0ouVVtKLlUuUHFdPSJOT05fREVDT0RFRF9QQVJBTV9NQVRDSCI7Si5VW0ouVS5hcF09IkNDRF9FVkVOVF9TR1RNIjsKSi5VW0ouVS5Wb109IkFVVE9fUkVEQUNUX0VNQUlMX1NHVE0iO0ouVVtKLlUuWG9dPSJBVVRPX1JFREFDVF9RVUVSWV9QQVJBTV9TR1RNIjtKLlVbSi5VLm5sXT0iREFJTFlfTElNSVRfUkVBQ0hFRCI7Si5VW0ouVS5Ma109IkJVUlNUX0xJTUlUX1JFQUNIRUQiO0ouVVtKLlUuZXJdPSJTSEFSRURfVVNFUl9JRF9TRVRfQUZURVJfUkVRVUVTVCI7Si5VW0ouVS5KbV09IkdBNF9NVUxUSVBMRV9TRVNTSU9OX0NPT0tJRVMiO0ouVVtKLlUuVW1dPSJJTlZBTElEX0dBNF9TRVNTSU9OX0NPVU5UIjtKLlVbSi5VLlRtXT0iSU5WQUxJRF9HQTRfTEFTVF9FVkVOVF9USU1FU1RBTVAiO0ouVVtKLlUuU21dPSJJTlZBTElEX0dBNF9KT0lOX1RJTUVSIjtKLlVbSi5VLk1tXT0iR0E0X1NUQUxFX1NFU1NJT05fQ09PS0lFX1NFTEVDVEVEIjtKLlVbSi5VLkttXT0iR0E0X1NFU1NJT05fQ09PS0lFX0dTMV9SRUFEIjtKLlVbSi5VLkxtXT0iR0E0X1NFU1NJT05fQ09PS0lFX0dTMl9SRUFEIjsKSi5VW0ouVS5HbV09IkdBNF9ETF9QQVJBTV9SRUNPVkVSWV9BVkFJTEFCTEUiO0ouVVtKLlUuRm1dPSJHQTRfRExfUEFSQU1fUkVDT1ZFUllfQVBQTElFRCI7Si5VW0ouVS5IbV09IkdBNF9HT09HTEVfTUVBU1VSRU1FTlRfQUxMT1dFRCI7Si5VW0ouVS5JbV09IkdBNF9HT09HTEVfU0lHTkFMU19FTkFCTEVEIjtKLlVbSi5VLkJxXT0iR0E0X0ZBTExCQUNLX1JFUVVFU1QiO0ouVVtKLlUuQ3FdPSJHQV9BRFNfTElOS19CRUZPUkVfQ09OVkVSU0lPTl9NQVJLSU5HIjtKLlVbSi5VLlVxXT0iUExBVElOVU1fRUxJR0lCTEUiO3ZhciB4Zz17fSx5Zz0oeGcudWFhPSEwLHhnLnVhYj0hMCx4Zy51YWZ2bD0hMCx4Zy51YW1iPSEwLHhnLnVhbT0hMCx4Zy51YXA9ITAseGcudWFwdj0hMCx4Zy51YXc9ITAseGcpOwp2YXIgQmc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmV2ZW50cztpZihjLmxlbmd0aD09PTEpcmV0dXJuIHpnKGNbMF0sYik7dmFyIGQ9W107YS5IJiZkLnB1c2goYS5IKTtmb3IodmFyIGU9e30sZj0wO2Y8Yy5sZW5ndGg7ZisrKUdiKGNbZl0udmUsZnVuY3Rpb24odCx1KXt1IT1udWxsJiYoZVt0XT1lW3RdfHx7fSxlW3RdW1N0cmluZyh1KV09ZVt0XVtTdHJpbmcodSldKzF8fDEpfSk7dmFyIGc9e307R2IoZSxmdW5jdGlvbih0LHUpe3ZhciB2LHg9LTEseT0wO0diKHUsZnVuY3Rpb24oeixDKXt5Kz1DO3ZhciBEPSh6Lmxlbmd0aCt0Lmxlbmd0aCsyKSooQy0xKTtEPngmJih2PXoseD1EKX0pO3k9PT1jLmxlbmd0aCYmKGdbdF09dil9KTtBZyhnLGQpO2ImJmQucHVzaCgiX3M9IitiKTtmb3IodmFyIGg9ZC5qb2luKCImIiksbD1bXSxuPXt9LHA9MDtwPGMubGVuZ3RoO249e2ZrOnZvaWQgMH0scCsrKXt2YXIgcT1bXTtuLmZrPXt9O0diKGNbcF0udmUsZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHUsCnYpe2dbdV0hPT0iIit2JiYodC5ma1t1XT12KX19KG4pKTtjW3BdLkgmJnEucHVzaChjW3BdLkgpO0FnKG4uZmsscSk7bC5wdXNoKHEuam9pbigiJiIpKX12YXIgcj1sLmpvaW4oIlxyXG4iKTtyZXR1cm57cGFyYW1zOmgsYm9keTpyfX0semc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTthLksmJmMucHVzaChhLkspO2ImJmMucHVzaCgiX3M9IitiKTtBZyhhLnZlLGMpO3ZhciBkPSExO2EuSCYmKGMucHVzaChhLkgpLGQ9ITApO3ZhciBlPWMuam9pbigiJiIpLGY9IiIsZz1lLmxlbmd0aCthLmJhc2VVcmwubGVuZ3RoKzE7ZCYmZz4yMDQ4JiYoZj1jLnBvcCgpLGU9Yy5qb2luKCImIikpO3JldHVybntwYXJhbXM6ZSxib2R5OmZ9fSxBZz1mdW5jdGlvbihhLGIpe0diKGEsZnVuY3Rpb24oYyxkKXtkIT1udWxsJiZiLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGMpKyI9IitlbmNvZGVVUklDb21wb25lbnQoZCkpfSl9Owp2YXIgRWc9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YSxlPWJbY107aWYoIUNnLmV4ZWMoZSkpdGhyb3cgRXJyb3IoIkludmFsaWQga2V5IHdpbGRjYXJkIik7dmFyIGY9ZS5pbmRleE9mKCIuKiIpLGc9ZiE9PS0xJiZmPT09ZS5sZW5ndGgtMixoPWc/ZS5zbGljZSgwLGUubGVuZ3RoLTIpOmUsbDthOmlmKGQubGVuZ3RoPT09MClsPSExO2Vsc2V7Zm9yKHZhciBuPWQuc3BsaXQoIi4iKSxwPTA7cDxuLmxlbmd0aDtwKyspaWYoIURnLmV4ZWMobltwXSkpe2w9ITE7YnJlYWsgYX1sPSEwfWlmKCFsfHxoLmxlbmd0aD5kLmxlbmd0aHx8IWcmJmQubGVuZ3RoIT09ZS5sZW5ndGg/MDpnP1NiKGQsaCkmJihkPT09aHx8ZC5jaGFyQXQoaC5sZW5ndGgpPT09Ii4iKTpkPT09aClyZXR1cm4hMH1yZXR1cm4hMX0sRGc9L15bYS16JF9dW1x3LSRdKiQvaSxDZz0vXig/OlthLXpfJF1bYS16LV8kMC05XSpcLikqW2Etel8kXVthLXotXyQwLTldKig/OlwuXCopPyQvaTsKdmFyIEZnPVsibWF0Y2hlcyIsIndlYmtpdE1hdGNoZXNTZWxlY3RvciIsIm1vek1hdGNoZXNTZWxlY3RvciIsIm1zTWF0Y2hlc1NlbGVjdG9yIiwib01hdGNoZXNTZWxlY3RvciJdO2Z1bmN0aW9uIEdnKGEsYil7aWYoIWEpcmV0dXJuITE7dHJ5e2Zvcih2YXIgYz0wO2M8RmcubGVuZ3RoO2MrKyl7dmFyIGQ9RmdbY107aWYoYVtkXSE9bnVsbClyZXR1cm4gYVtkXShiKX19Y2F0Y2goZSl7fXJldHVybiExfWZ1bmN0aW9uIEhnKGEsYil7dmFyIGM9U3RyaW5nKGEpLGQ9U3RyaW5nKGIpLGU9Yy5sZW5ndGgtZC5sZW5ndGg7cmV0dXJuIGU+PTAmJmMuaW5kZXhPZihkLGUpPT09ZX1mdW5jdGlvbiBJZyhhLGIpe3JldHVybiBTdHJpbmcoYSkuc3BsaXQoIiwiKS5pbmRleE9mKFN0cmluZyhiKSk+PTB9CmZ1bmN0aW9uIEpnKGEsYixjLGQpe3ZhciBlPWM/ImkiOnZvaWQgMDt0cnl7dmFyIGY9U3RyaW5nKGIpK1N0cmluZyhlKSxnPWQ9PW51bGw/dm9pZCAwOmQuZ2V0KGYpO2d8fChnPW5ldyBSZWdFeHAoYixlKSxkPT1udWxsfHxkLnNldChmLGcpKTtyZXR1cm4gZy50ZXN0KGEpfWNhdGNoKGgpe3JldHVybiExfX1mdW5jdGlvbiBLZyhhLGIpe3JldHVybiBTdHJpbmcoYSkuaW5kZXhPZihTdHJpbmcoYikpPj0wfWZ1bmN0aW9uIExnKGEsYil7cmV0dXJuIFN0cmluZyhhKT09PVN0cmluZyhiKX1mdW5jdGlvbiBNZyhhLGIpe3JldHVybiBOdW1iZXIoYSk+PU51bWJlcihiKX1mdW5jdGlvbiBOZyhhLGIpe3JldHVybiBOdW1iZXIoYSk8PU51bWJlcihiKX1mdW5jdGlvbiBPZyhhLGIpe3JldHVybiBOdW1iZXIoYSk+TnVtYmVyKGIpfWZ1bmN0aW9uIFBnKGEsYil7cmV0dXJuIE51bWJlcihhKTxOdW1iZXIoYil9CmZ1bmN0aW9uIFFnKGEsYil7cmV0dXJuIFNiKFN0cmluZyhhKSxTdHJpbmcoYikpfTtmdW5jdGlvbiBYZyhhKXt2YXIgYj1hLnNlYXJjaDtyZXR1cm4gYS5wcm90b2NvbCsiLy8iK2EuaG9zdG5hbWUrYS5wYXRobmFtZSsoYj9iKyImcmljaHNzdHNzZSI6Ij9yaWNoc3N0c3NlIil9O3ZhciBZZz1mdW5jdGlvbigpe3RoaXMuUj0iIn0sJGc9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYz1iLmZhbGxiYWNrX3VybCxkPWIuZmFsbGJhY2tfdXJsX21ldGhvZDtpZihjJiZkKXt2YXIgZT17fTtaZyhhLChlW2RdPVtjXSxlLm9wdGlvbnM9e30sZSkpfX19LGFoPWZ1bmN0aW9uKGEsYixjKXtpZihBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgZD1tKGEpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO3R5cGVvZiBmPT09InN0cmluZyImJmMoZixiKX19LFpnPWZ1bmN0aW9uKGEsYil7aWYoYilmb3IodmFyIGM9Q2QoYi5vcHRpb25zKT9iLm9wdGlvbnM6e30sZD1tKE9iamVjdC5rZXlzKGIpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZSxnPWJbZl07c3dpdGNoKGYpe2Nhc2UgInNlbmRfcGl4ZWwiOmFoKGcsYyxmdW5jdGlvbihoLGwpe3JldHVybiB2b2lkIGEuSyhoLGwpfSk7YnJlYWs7Y2FzZSAiZmV0Y2giOmFoKGcsCmMsZnVuY3Rpb24oaCxsKXtyZXR1cm4gdm9pZCBhLkgoaCxsKX0pfX19O3ZhciBiaD0vXihbYS16XVthLXowLTldKik6KCF8XD8pKFwqfHN0cmluZ3xib29sZWFufG51bWJlcnxGbnxQaXhpZU1hcHxMaXN0fE9wYXF1ZVZhbHVlKSQvaSxjaD17Rm46ImZ1bmN0aW9uIixQaXhpZU1hcDoiT2JqZWN0IixMaXN0OiJBcnJheSJ9OwpmdW5jdGlvbiBkaChhLGIpe2Zvcih2YXIgYz1bImlucHV0OiEqIl0sZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1iaC5leGVjKGNbZF0pO2lmKCFlKXRocm93IEVycm9yKCJJbnRlcm5hbCBFcnJvciBpbiAiK2EpO3ZhciBmPWVbMV0sZz1lWzJdPT09IiEiLGg9ZVszXSxsPWJbZF07aWYobD09bnVsbCl7aWYoZyl0aHJvdyBFcnJvcigiRXJyb3IgaW4gIithKyIuIFJlcXVpcmVkIGFyZ3VtZW50ICIrZisiIG5vdCBzdXBwbGllZC4iKTt9ZWxzZSBpZihoIT09IioiKXt2YXIgbj10eXBlb2YgbDtsIGluc3RhbmNlb2YgS2Q/bj0iRm4iOmwgaW5zdGFuY2VvZiBHZD9uPSJMaXN0IjpsIGluc3RhbmNlb2Yga2I/bj0iUGl4aWVNYXAiOmwgaW5zdGFuY2VvZiBTZD9uPSJQaXhpZVByb21pc2UiOmwgaW5zdGFuY2VvZiBQZCYmKG49Ik9wYXF1ZVZhbHVlIik7aWYobiE9PWgpdGhyb3cgRXJyb3IoIkVycm9yIGluICIrYSsiLiBBcmd1bWVudCAiK2YrIiBoYXMgdHlwZSAiKygoY2hbbl18fG4pKyIsIHdoaWNoIGRvZXMgbm90IG1hdGNoIHJlcXVpcmVkIHR5cGUgIikrCigoY2hbaF18fGgpKyIuIikpO319fWZ1bmN0aW9uIEsoYSxiLGMpe2Zvcih2YXIgZD1bXSxlPW0oYyksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7ZyBpbnN0YW5jZW9mIEtkP2QucHVzaCgiZnVuY3Rpb24iKTpnIGluc3RhbmNlb2YgR2Q/ZC5wdXNoKCJBcnJheSIpOmcgaW5zdGFuY2VvZiBrYj9kLnB1c2goIk9iamVjdCIpOmcgaW5zdGFuY2VvZiBTZD9kLnB1c2goIlByb21pc2UiKTpnIGluc3RhbmNlb2YgUGQ/ZC5wdXNoKCJPcGFxdWVWYWx1ZSIpOmQucHVzaCh0eXBlb2YgZyl9cmV0dXJuIEVycm9yKCJBcmd1bWVudCBlcnJvciBpbiAiK2ErIi4gRXhwZWN0ZWQgYXJndW1lbnQgdHlwZXMgWyIrKGIuam9pbigiLCIpKyJdLCBidXQgcmVjZWl2ZWQgWyIpKyhkLmpvaW4oIiwiKSsiXS4iKSl9ZnVuY3Rpb24gZWgoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBrYn1mdW5jdGlvbiBmaChhKXtyZXR1cm4gZWgoYSl8fGE9PT1udWxsfHxnaChhKX0KZnVuY3Rpb24gaGgoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBLZH1mdW5jdGlvbiBpaChhKXtyZXR1cm4gaGgoYSl8fGE9PT1udWxsfHxnaChhKX1mdW5jdGlvbiBqaChhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIEdkfWZ1bmN0aW9uIGtoKGEpe3JldHVybiBhIGluc3RhbmNlb2YgUGR9ZnVuY3Rpb24gbGgoYSl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyJ9ZnVuY3Rpb24gbWgoYSl7cmV0dXJuIGxoKGEpfHxhPT09bnVsbHx8Z2goYSl9ZnVuY3Rpb24gbmgoYSl7cmV0dXJuIHR5cGVvZiBhPT09ImJvb2xlYW4ifWZ1bmN0aW9uIG9oKGEpe3JldHVybiBuaChhKXx8Z2goYSl9ZnVuY3Rpb24gcGgoYSl7cmV0dXJuIG5oKGEpfHxhPT09bnVsbHx8Z2goYSl9ZnVuY3Rpb24gcWgoYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciJ9ZnVuY3Rpb24gZ2goYSl7cmV0dXJuIGE9PT12b2lkIDB9O2Z1bmN0aW9uIHJoKGEpe3JldHVybiIiK2F9CmZ1bmN0aW9uIHNoKGEsYil7dmFyIGM9W107cmV0dXJuIGN9O2Z1bmN0aW9uIHRoKGEsYil7dmFyIGM9bmV3IEtkKGEsZnVuY3Rpb24oKXtmb3IodmFyIGQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApLGU9MDtlPGQubGVuZ3RoO2UrKylkW2VdPXRoaXMuZXZhbHVhdGUoZFtlXSk7dHJ5e3JldHVybiBiLmFwcGx5KHRoaXMsZCl9Y2F0Y2goZyl7dGhyb3cgY2IoZyk7fX0pO2MuWmEoKTtyZXR1cm4gY30KZnVuY3Rpb24gdWgoYSxiKXt2YXIgYz1uZXcga2IsZDtmb3IoZCBpbiBiKWlmKGIuaGFzT3duUHJvcGVydHkoZCkpe3ZhciBlPWJbZF07eWIoZSk/Yy5zZXQoZCx0aChhKyJfIitkLGUpKTpDZChlKT9jLnNldChkLHVoKGErIl8iK2QsZSkpOihBYihlKXx8emIoZSl8fHR5cGVvZiBlPT09ImJvb2xlYW4iKSYmYy5zZXQoZCxlKX1jLlphKCk7cmV0dXJuIGN9O2Z1bmN0aW9uIHdoKGEsYil7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO2lmKCFtaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwidW5kZWZpbmVkIl0sYXJndW1lbnRzKTt2YXIgYz17fSxkPW5ldyBrYjtyZXR1cm4gZD11aCgiQXNzZXJ0QXBpU3ViamVjdCIsCmMpfTtmdW5jdGlvbiB4aChhLGIpe2lmKCFtaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwidW5kZWZpbmVkIl0sYXJndW1lbnRzKTtpZihhIGluc3RhbmNlb2YgU2QpdGhyb3cgRXJyb3IoIkFyZ3VtZW50IGFjdHVhbCBjYW5ub3QgaGF2ZSB0eXBlIFByb21pc2UuIEFzc2VydGlvbnMgb24gYXN5bmNocm9ub3VzIGNvZGUgYXJlbid0IHN1cHBvcnRlZC4iKTt2YXIgYz17fSxkPW5ldyBrYjtyZXR1cm4gZD11aCgiQXNzZXJ0VGhhdFN1YmplY3QiLGMpfTtmdW5jdGlvbiB5aChhKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGI9T2EuYXBwbHkoMCxhcmd1bWVudHMpLGM9W10sZD10aGlzLlQsZT0wO2U8Yi5sZW5ndGg7KytlKWMucHVzaChUZChiW2VdLGQpKTtyZXR1cm4gVWQoYS5hcHBseShudWxsLGMpKX19ZnVuY3Rpb24gemgoKXtmb3IodmFyIGE9TWF0aCxiPUFoLGM9e30sZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdO2EuaGFzT3duUHJvcGVydHkoZSkmJihjW2VdPXloKGFbZV0uYmluZChhKSkpfXJldHVybiBjfTtmdW5jdGlvbiBCaChhKXtyZXR1cm4gYSE9bnVsbCYmU2IoYSwiX19jdnRfIil9O2Z1bmN0aW9uIENoKGEpe3ZhciBiO3JldHVybiBifTtmdW5jdGlvbiBEaChhKXt2YXIgYjtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7dHJ5e2I9ZGVjb2RlVVJJQ29tcG9uZW50KGEpfWNhdGNoKGMpe31yZXR1cm4gYn07ZnVuY3Rpb24gRWgoYSl7dHJ5e3JldHVybiBlbmNvZGVVUkkoYSl9Y2F0Y2goYil7fX07ZnVuY3Rpb24gRmgoYSl7dHJ5e3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGEpKX1jYXRjaChiKXt9fTtmdW5jdGlvbiBHaChhLGIpe3ZhciBjPSExO3ZhciBkPUpTT04ucGFyc2UoYSk7aWYoIWQpdGhyb3cgRXJyb3IoIkludmFsaWQgYm9vbGVhbiBleHByZXNzaW9uIHN0cmluZyB3YXMgZ2l2ZW4uIik7Yz1IaChkLGIpO3JldHVybiBjfQp2YXIgSWg9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7aWYoYT09PXZvaWQgMClyZXR1cm47YT1hW2JbY11dfXJldHVybiBhfSxKaD1mdW5jdGlvbihhLGIpe3ZhciBjPWIucHJlSGl0O2lmKGMpe3ZhciBkPWFbMF07c3dpdGNoKGQpe2Nhc2UgImhpdERhdGEiOnJldHVybiBhLmxlbmd0aDwyP3ZvaWQgMDpJaChjLmdldEhpdERhdGEoYVsxXSksYS5zbGljZSgyKSk7Y2FzZSAibWV0YWRhdGEiOnJldHVybiBhLmxlbmd0aDwyP3ZvaWQgMDpJaChjLmdldE1ldGFkYXRhKGFbMV0pLGEuc2xpY2UoMikpO2Nhc2UgImV2ZW50TmFtZSI6cmV0dXJuIGMuZ2V0RXZlbnROYW1lKCk7Y2FzZSAiZGVzdGluYXRpb25JZCI6cmV0dXJuIGMuZ2V0RGVzdGluYXRpb25JZCgpO2RlZmF1bHQ6dGhyb3cgRXJyb3IoZCsiIGlzIG5vdCBhIHZhbGlkIGZpZWxkIHRoYXQgY2FuIGJlIGFjY2Vzc2VkXG4gICAgICAgICAgICAgICAgICAgICAgZnJvbSBQcmVIaXQgZGF0YS4iKTt9fX0sCktoPWZ1bmN0aW9uKGEsYil7aWYoYSl7aWYoYS5jb250ZXh0VmFsdWUhPT12b2lkIDApe3ZhciBjO2E6e3ZhciBkPWEuY29udGV4dFZhbHVlLGU9ZC5rZXlQYXJ0cztpZihlJiZlLmxlbmd0aCE9PTApe3ZhciBmPWQubmFtZXNwYWNlVHlwZTtzd2l0Y2goZil7Y2FzZSAxOmM9SmgoZSxiKTticmVhayBhO2Nhc2UgMjp2YXIgZz1iLm1hY3JvO2M9Zz9nW2VbMF1dOnZvaWQgMDticmVhayBhO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIlVua25vd24gTmFtZXNwYWNlIFR5cGUgdXNlZDogIitmKTt9fWM9dm9pZCAwfXJldHVybiBjfWlmKGEuYm9vbGVhbkV4cHJlc3Npb25WYWx1ZSE9PXZvaWQgMClyZXR1cm4gSGgoYS5ib29sZWFuRXhwcmVzc2lvblZhbHVlLGIpO2lmKGEuYm9vbGVhblZhbHVlIT09dm9pZCAwKXJldHVybiEhYS5ib29sZWFuVmFsdWU7aWYoYS5zdHJpbmdWYWx1ZSE9PXZvaWQgMClyZXR1cm4gU3RyaW5nKGEuc3RyaW5nVmFsdWUpO2lmKGEuaW50ZWdlclZhbHVlIT09dm9pZCAwKXJldHVybiBOdW1iZXIoYS5pbnRlZ2VyVmFsdWUpOwppZihhLmRvdWJsZVZhbHVlIT09dm9pZCAwKXJldHVybiBOdW1iZXIoYS5kb3VibGVWYWx1ZSk7dGhyb3cgRXJyb3IoIlVua25vd24gZmllbGQgdXNlZCBmb3IgdmFyaWFibGUgb2YgdHlwZSBFeHByZXNzaW9uVmFsdWU6IithKTt9fSxIaD1mdW5jdGlvbihhLGIpe3ZhciBjPWEuYXJncztpZighQXJyYXkuaXNBcnJheShjKXx8Yy5sZW5ndGg9PT0wKXRocm93IEVycm9yKCdJbnZhbGlkIGJvb2xlYW4gZXhwcmVzc2lvbiBmb3JtYXQuIEV4cGVjdGVkICJhcmdzIjonK2MrIiBwcm9wZXJ0eSB0b1xuICAgICAgICAgYmUgbm9uLWVtcHR5IGFycmF5LiIpO3ZhciBkPWZ1bmN0aW9uKGcpe3JldHVybiBLaChnLGIpfTtzd2l0Y2goYS50eXBlKXtjYXNlIDE6Zm9yKHZhciBlPTA7ZTxjLmxlbmd0aDtlKyspaWYoZChjW2VdKSlyZXR1cm4hMDtyZXR1cm4hMTtjYXNlIDI6Zm9yKHZhciBmPTA7ZjxjLmxlbmd0aDtmKyspaWYoIWQoY1tmXSkpcmV0dXJuITE7cmV0dXJuIGMubGVuZ3RoPjA7Y2FzZSAzOnJldHVybiFkKGNbMF0pOwpjYXNlIDQ6cmV0dXJuIEpnKGQoY1swXSksZChjWzFdKSwhMSxiLnJlZ2V4Q2FjaGUpO2Nhc2UgNTpyZXR1cm4gTGcoZChjWzBdKSxkKGNbMV0pKTtjYXNlIDY6cmV0dXJuIFFnKGQoY1swXSksZChjWzFdKSk7Y2FzZSA3OnJldHVybiBIZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgODpyZXR1cm4gS2coZChjWzBdKSxkKGNbMV0pKTtjYXNlIDk6cmV0dXJuIFBnKGQoY1swXSksZChjWzFdKSk7Y2FzZSAxMDpyZXR1cm4gTmcoZChjWzBdKSxkKGNbMV0pKTtjYXNlIDExOnJldHVybiBPZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgMTI6cmV0dXJuIE1nKGQoY1swXSksZChjWzFdKSk7Y2FzZSAxMzpyZXR1cm4gSWcoZChjWzBdKSxTdHJpbmcoZChjWzFdKSkpO2RlZmF1bHQ6dGhyb3cgRXJyb3IoJ0ludmFsaWQgYm9vbGVhbiBleHByZXNzaW9uIGZvcm1hdC4gRXhwZWN0ZWQgInR5cGUiIHByb3BlcnR5IHRvYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIHdoaWNoIGlzIGxlc3MgdGhhbiAxNC4nKTt9fTsKZnVuY3Rpb24gTGgoYSl7aWYoIW1oKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt9O2Z1bmN0aW9uIE1oKGEpe3ZhciBiPVRkKGEpO3JldHVybiBuZyhiPyIiK2I6IiIpfTtmdW5jdGlvbiBOaChhLGIpe2lmKCFxaChhKXx8IXFoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJudW1iZXIiLCJudW1iZXIiXSxhcmd1bWVudHMpO3JldHVybiBEYihhLGIpfTtmdW5jdGlvbiBPaCgpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfTtmdW5jdGlvbiBQaChhKXtpZihhPT09bnVsbClyZXR1cm4ibnVsbCI7aWYoYSBpbnN0YW5jZW9mIEdkKXJldHVybiJhcnJheSI7aWYoYSBpbnN0YW5jZW9mIEtkKXJldHVybiJmdW5jdGlvbiI7aWYoYSBpbnN0YW5jZW9mIFBkKXt2YXIgYj1hLmdldFZhbHVlKCk7aWYoKGI9PW51bGw/dm9pZCAwOmIuY29uc3RydWN0b3IpPT09dm9pZCAwfHxiLmNvbnN0cnVjdG9yLm5hbWU9PT12b2lkIDApe3ZhciBjPVN0cmluZyhiKTtyZXR1cm4gYy5zdWJzdHJpbmcoOCxjLmxlbmd0aC0xKX1yZXR1cm4gU3RyaW5nKGIuY29uc3RydWN0b3IubmFtZSl9cmV0dXJuIHR5cGVvZiBhfTtmdW5jdGlvbiBRaChhKXtmdW5jdGlvbiBiKGMpe3JldHVybiBmdW5jdGlvbihkKXt0cnl7cmV0dXJuIGMoZCl9Y2F0Y2goZSl7KGxnfHxtZy5QbykmJmEuY2FsbCh0aGlzLGUubWVzc2FnZSl9fX1yZXR1cm57cGFyc2U6YihmdW5jdGlvbihjKXtyZXR1cm4gVWQoSlNPTi5wYXJzZShjKSl9KSxzdHJpbmdpZnk6YihmdW5jdGlvbihjKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoVGQoYykpfSkscHVibGljTmFtZToiSlNPTiJ9fTtmdW5jdGlvbiBSaChhKXtyZXR1cm4gSWIoVGQoYSx0aGlzLlQpKX07ZnVuY3Rpb24gU2goYSl7cmV0dXJuIE51bWJlcihUZChhLHRoaXMuVCkpfTtmdW5jdGlvbiBUaChhKXtyZXR1cm4gYT09PW51bGw/Im51bGwiOmE9PT12b2lkIDA/InVuZGVmaW5lZCI6YS50b1N0cmluZygpfTtmdW5jdGlvbiBVaChhLGIsYyl7dmFyIGQ9bnVsbCxlPSExO3JldHVybiBlP2Q6bnVsbH07dmFyIEFoPSJmbG9vciBjZWlsIHJvdW5kIG1heCBtaW4gYWJzIHBvdyBzcXJ0Ii5zcGxpdCgiICIpO2Z1bmN0aW9uIFZoKCl7dmFyIGE9e307cmV0dXJue1dyOmZ1bmN0aW9uKGIpe3JldHVybiBhLmhhc093blByb3BlcnR5KGIpP2FbYl06dm9pZCAwfSxLbzpmdW5jdGlvbihiLGMpe2FbYl09Y30scmVzZXQ6ZnVuY3Rpb24oKXthPXt9fX19ZnVuY3Rpb24gV2goYSxiKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gS2QucHJvdG90eXBlLmludm9rZS5hcHBseShhLFtiXS5jb25jYXQodyhPYS5hcHBseSgwLGFyZ3VtZW50cykpKSl9fQpmdW5jdGlvbiBYaChhLGIpe2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiYW55Il0sYXJndW1lbnRzKTt9CmZ1bmN0aW9uIFloKGEsYil7aWYoIWxoKGEpfHwhZWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIlBpeGllTWFwIl0sYXJndW1lbnRzKTt9O3ZhciBaaD17fTt2YXIgJGg9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IGtiO2lmKGEgaW5zdGFuY2VvZiBHZClmb3IodmFyIGM9YS5GYSgpLGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9Y1tkXTthLmhhcyhlKSYmYi5zZXQoZSxhLmdldChlKSl9ZWxzZSBpZihhIGluc3RhbmNlb2YgS2QpZm9yKHZhciBmPWEuRmEoKSxnPTA7ZzxmLmxlbmd0aDtnKyspe3ZhciBoPWZbZ107Yi5zZXQoaCxhLmdldChoKSl9ZWxzZSBmb3IodmFyIGw9MDtsPGEubGVuZ3RoO2wrKyliLnNldChsLGFbbF0pO3JldHVybiBifTsKWmgua2V5cz1mdW5jdGlvbihhKXtkaCh0aGlzLmdldE5hbWUoKSxhcmd1bWVudHMpO2lmKGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIEtkfHx0eXBlb2YgYT09PSJzdHJpbmciKWE9JGgoYSk7aWYoYSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2QpcmV0dXJuIG5ldyBHZChhLkZhKCkpO3JldHVybiBuZXcgR2R9OwpaaC52YWx1ZXM9ZnVuY3Rpb24oYSl7ZGgodGhpcy5nZXROYW1lKCksYXJndW1lbnRzKTtpZihhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBLZHx8dHlwZW9mIGE9PT0ic3RyaW5nIilhPSRoKGEpO2lmKGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkKXJldHVybiBuZXcgR2QoYS5oYygpKTtyZXR1cm4gbmV3IEdkfTsKWmguZW50cmllcz1mdW5jdGlvbihhKXtkaCh0aGlzLmdldE5hbWUoKSxhcmd1bWVudHMpO2lmKGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIEtkfHx0eXBlb2YgYT09PSJzdHJpbmciKWE9JGgoYSk7aWYoYSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2QpcmV0dXJuIG5ldyBHZChhLmZjKCkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBuZXcgR2QoYil9KSk7cmV0dXJuIG5ldyBHZH07ClpoLmZyZWV6ZT1mdW5jdGlvbihhKXsoYSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2R8fGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIEtkKSYmYS5aYSgpO3JldHVybiBhfTtaaC5kZWxldGU9ZnVuY3Rpb24oYSxiKXtpZihhIGluc3RhbmNlb2Yga2ImJiFhLkhiKCkpcmV0dXJuIGEucmVtb3ZlKGIpLCEwO3JldHVybiExfTtmdW5jdGlvbiBMKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpLGQ9YS5ULnhiKCk7aWYoIWQpdGhyb3cgRXJyb3IoIk1pc3NpbmcgcHJvZ3JhbSBzdGF0ZS4iKTtpZihkLml0KXt0cnl7ZC5Sbi5hcHBseShudWxsLFtiXS5jb25jYXQodyhjKSkpfWNhdGNoKGUpe3Rocm93IHNiKCJUQUdHSU5HIiwyMSksZTt9cmV0dXJufWQuUm4uYXBwbHkobnVsbCxbYl0uY29uY2F0KHcoYykpKX07dmFyIGFpPWZ1bmN0aW9uKCl7dGhpcy5LPXt9O3RoaXMuSD17fTt0aGlzLk49ITA7fTthaS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jb250YWlucyhhKT90aGlzLktbYV06dm9pZCAwO3JldHVybiBjfTthaS5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuSy5oYXNPd25Qcm9wZXJ0eShhKX07CmFpLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxiLGMpe2lmKHRoaXMuY29udGFpbnMoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYWRkIGEgZnVuY3Rpb24gd2hpY2ggYWxyZWFkeSBleGlzdHM6ICIrYSsiLiIpO2lmKHRoaXMuSC5oYXNPd25Qcm9wZXJ0eShhKSl0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhZGQgYW4gQVBJIHdpdGggYW4gZXhpc3RpbmcgcHJpdmF0ZSBBUEkgbmFtZTogIithKyIuIik7dGhpcy5LW2FdPWM/dm9pZCAwOnliKGIpP3RoKGEsYik6dWgoYSxiKX07ZnVuY3Rpb24gYmkoYSxiKXt2YXIgYz12b2lkIDA7cmV0dXJuIGN9O2Z1bmN0aW9uIGNpKCl7dmFyIGE9e307CnJldHVybiBhfTt2YXIgZGk9e30sZWk9KGRpW0YuRC5zYV09ImdjdSIsZGlbRi5ELmVoXT0iZXB0IixkaVtGLkQuU2JdPSJnY2xnYiIsZGlbRi5ELmxiXT0iZ2NsYXciLGRpW0YuRC56bF09ImdjbGlkX2xlbiIsZGlbRi5ELkJlXT0iZ2NsZ3MiLGRpW0YuRC5DZV09ImdjbGxwIixkaVtGLkQuRGVdPSJnY2xzdCIsZGlbRi5ELkVkXT0iYXVpZCIsZGlbRi5ELkJsXT0iYWUiLGRpW0YuRC5DZl09ImRzY250IixkaVtGLkQuRGZdPSJmY250ciIsZGlbRi5ELkVmXT0iZmxuZyIsZGlbRi5ELkZmXT0ibWlkIixkaVtGLkQud2ldPSJidHR5cGUiLGRpW0YuRC5LYl09ImdhY2lkIixkaVtGLkQuR2RdPSJsYWJlbCIsZGlbRi5ELkZlXT0iY2FwaSIsZGlbRi5ELmpoXT0icHNjZGwiLGRpW0YuRC5lYl09ImN1cnJlbmN5X2NvZGUiLGRpW0YuRC5HZV09InZkbHR2IixkaVtGLkQua2hdPSJjbG9jdCIsZGlbRi5ELkVsXT0iX2RiZyIsZGlbRi5ELkllXT0ib2VkZWxkIixkaVtGLkQuVmNdPSJlZGlkIixkaVtGLkQuTWRdPSJldm5pZCIsCmRpW0YuRC5FaV09ImV2amlkIixkaVtGLkQuTmRdPSJleGNpZCIsZGlbRi5ELnJoXT0iZ2FjIixkaVtGLkQuSmVdPSJnYWNnYiIsZGlbRi5ELk1sXT0iZ2FjbWNvdiIsZGlbRi5ELktlXT0iZ2RwciIsZGlbRi5ELlhjXT0iZ2RpZCIsZGlbRi5ELkxlXT0iX25nIixkaVtGLkQuY3FdPSJfb25vIixkaVtGLkQudGhdPSJncHBfc2lkIixkaVtGLkQudWhdPSJncHAiLGRpW0YuRC5QbF09ImdzYWV4cCIsZGlbRi5ELlZmXT0iX3R1IixkaVtGLkQuTWVdPSJmcm0iLGRpW0YuRC5LaV09Imd0bV91cCIsZGlbRi5ELlBkXT0ibHBzIixkaVtGLkQuTGldPSJkaWQiLGRpW0YuRC5RZF09ImZjbnRyIixkaVtGLkQuUmRdPSJmbG5nIixkaVtGLkQuU2RdPSJtaWQiLGRpW0YuRC5OZV09dm9pZCAwLGRpW0YuRC5NYl09InRpYmEiLGRpW0YuRC5XYl09InJkcCIsZGlbRi5ELnhjXT0iZWNzaWQiLGRpW0YuRC5aZl09ImdhX3VpZCIsZGlbRi5ELlVkXT0iZGVsb3BjIixkaVtGLkQuT2VdPSJnZHByX2NvbnNlbnQiLApkaVtGLkQuUGFdPSJvaWQiLGRpW0YuRC5kbV09Im9pZHNyYyIsZGlbRi5ELmZtXT0idXB0Z3MiLGRpW0YuRC5jZ109InVhYSIsZGlbRi5ELmRnXT0idWFiIixkaVtGLkQuZWddPSJ1YWZ2bCIsZGlbRi5ELmZnXT0idWFtYiIsZGlbRi5ELmdnXT0idWFtIixkaVtGLkQuaGddPSJ1YXAiLGRpW0YuRC5pZ109InVhcHYiLGRpW0YuRC5qZ109InVhdyIsZGlbRi5ELmdtXT0iZWNfbGF0IixkaVtGLkQuaG1dPSJlY19tZXRhIixkaVtGLkQuaW1dPSJlY19tIixkaVtGLkQuam1dPSJlY19zZWwiLGRpW0YuRC5rbV09ImVjX3MiLGRpW0YuRC5CY109ImVjX21vZGUiLGRpW0YuRC5mYl09InVzZXJJZCIsZGlbRi5ELmtnXT0idXNfcHJpdmFjeSIsZGlbRi5ELlFhXT0idmFsdWUiLGRpW0YuRC5xbV09Im1jb3YiLGRpW0YuRC5XaV09ImhuIixkaVtGLkQuVm1dPSJndG1fZWUiLGRpW0YuRC5ZaV09InVpcCIsZGlbRi5ELkpoXT0ibXQiLGRpW0YuRC5kZV09Im5wYSIsZGlbRi5ELllxXT0ic2dfdWMiLGRpW0YuRC55aV09Cm51bGwsZGlbRi5ELmJkXT1udWxsLGRpW0YuRC50Yl09bnVsbCxkaVtGLkQuSGFdPW51bGwsZGlbRi5ELnphXT1udWxsLGRpW0YuRC5VYV09bnVsbCxkaVtGLkQuUGVdPW51bGwsZGlbRi5ELmVkXT1udWxsLGRpW0YuRC5zaF09bnVsbCxkaVtGLkQuQmRdPW51bGwsZGlbRi5ELkNkXT1udWxsLGRpW0YuRC5maF09bnVsbCxkaVtGLkQuZ2hdPW51bGwsZGlbRi5ELlRhXT1udWxsLGRpW0YuRC5XY109bnVsbCxkaSk7ZnVuY3Rpb24gZmkoYSxiKXtpZihhKXt2YXIgYz1hLnNwbGl0KCJ4Iik7Yy5sZW5ndGg9PT0yJiYoZ2koYiwidV93IixjWzBdKSxnaShiLCJ1X2giLGNbMV0pKX19ZnVuY3Rpb24gaGkoYSl7dmFyIGI9aWk7Yj1iPT09dm9pZCAwP2ppOmI7cmV0dXJuIGtpKGxpKGEsYikpfWZ1bmN0aW9uIGtpKGEpe3JldHVybihhfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiEhYn0pLm1hcChmdW5jdGlvbihiKXtyZXR1cm4iKCIrW21pKGIudmFsdWUpLG1pKGIucXVhbnRpdHkpLG1pKGIuaXRlbV9pZCksbWkoYi5zdGFydF9kYXRlKSxtaShiLmVuZF9kYXRlKV0uam9pbigiKiIpKyIpIn0pLmpvaW4oIiIpfQpmdW5jdGlvbiBsaShhLGIpe3JldHVybihhfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiEhY30pLm1hcChmdW5jdGlvbihjKXtyZXR1cm57aXRlbV9pZDpiKGMpLHF1YW50aXR5OmMucXVhbnRpdHksdmFsdWU6Yy5wcmljZSxzdGFydF9kYXRlOmMuc3RhcnRfZGF0ZSxlbmRfZGF0ZTpjLmVuZF9kYXRlfX0pfWZ1bmN0aW9uIGppKGEpe3JldHVyblthLml0ZW1faWQsYS5pZCxhLml0ZW1fbmFtZV0uZmluZChmdW5jdGlvbihiKXtyZXR1cm4gYiE9bnVsbH0pfWZ1bmN0aW9uIG5pKGEpe2lmKGEmJmEubGVuZ3RoKXJldHVybiBhLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYiYmYi5lc3RpbWF0ZWRfZGVsaXZlcnlfZGF0ZT9iLmVzdGltYXRlZF9kZWxpdmVyeV9kYXRlOiIifSkuam9pbigiLCIpfWZ1bmN0aW9uIGdpKGEsYixjKXtjPT09dm9pZCAwfHxjPT09bnVsbHx8Yz09PSIiJiYheWdbYl18fChhW2JdPWMpfQpmdW5jdGlvbiBtaShhKXtyZXR1cm4gdHlwZW9mIGEhPT0ibnVtYmVyIiYmdHlwZW9mIGEhPT0ic3RyaW5nIj8iIjphLnRvU3RyaW5nKCl9O2Z1bmN0aW9uIG9pKCl7dGhpcy5ibG9ja1NpemU9LTF9O2Z1bmN0aW9uIHBpKGEsYil7dGhpcy5ibG9ja1NpemU9LTE7dGhpcy5ibG9ja1NpemU9NjQ7dGhpcy5OPVJhLlVpbnQ4QXJyYXk/bmV3IFVpbnQ4QXJyYXkodGhpcy5ibG9ja1NpemUpOkFycmF5KHRoaXMuYmxvY2tTaXplKTt0aGlzLlI9dGhpcy5LPTA7dGhpcy5IPVtdO3RoaXMuZmE9YTt0aGlzLlo9Yjt0aGlzLmphPVJhLkludDMyQXJyYXk/bmV3IEludDMyQXJyYXkoNjQpOkFycmF5KDY0KTtxaT09PXZvaWQgMCYmKFJhLkludDMyQXJyYXk/cWk9bmV3IEludDMyQXJyYXkocmkpOnFpPXJpKTt0aGlzLnJlc2V0KCl9U2EocGksb2kpO2Zvcih2YXIgc2k9W10sdGk9MDt0aTw2Mzt0aSsrKXNpW3RpXT0wO3ZhciB1aT1bXS5jb25jYXQoMTI4LHNpKTsKcGkucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5SPXRoaXMuSz0wO3ZhciBhO2lmKFJhLkludDMyQXJyYXkpYT1uZXcgSW50MzJBcnJheSh0aGlzLlopO2Vsc2V7dmFyIGI9dGhpcy5aLGM9Yi5sZW5ndGg7aWYoYz4wKXtmb3IodmFyIGQ9QXJyYXkoYyksZT0wO2U8YztlKyspZFtlXT1iW2VdO2E9ZH1lbHNlIGE9W119dGhpcy5IPWF9Owp2YXIgdmk9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWEuTixjPWEuamEsZD0wLGU9MDtlPGIubGVuZ3RoOyljW2QrK109YltlXTw8MjR8YltlKzFdPDwxNnxiW2UrMl08PDh8YltlKzNdLGU9ZCo0O2Zvcih2YXIgZj0xNjtmPDY0O2YrKyl7dmFyIGc9Y1tmLTE1XXwwLGg9Y1tmLTJdfDA7Y1tmXT0oKGNbZi0xNl18MCkrKChnPj4+N3xnPDwyNSleKGc+Pj4xOHxnPDwxNCleZz4+PjMpfDApKygoY1tmLTddfDApKygoaD4+PjE3fGg8PDE1KV4oaD4+PjE5fGg8PDEzKV5oPj4+MTApfDApfDB9Zm9yKHZhciBsPWEuSFswXXwwLG49YS5IWzFdfDAscD1hLkhbMl18MCxxPWEuSFszXXwwLHI9YS5IWzRdfDAsdD1hLkhbNV18MCx1PWEuSFs2XXwwLHY9YS5IWzddfDAseD0wO3g8NjQ7eCsrKXt2YXIgeT0oKGw+Pj4yfGw8PDMwKV4obD4+PjEzfGw8PDE5KV4obD4+PjIyfGw8PDEwKSkrKGwmbl5sJnBebiZwKXwwLHo9KHYrKChyPj4+NnxyPDwyNileKHI+Pj4xMXxyPDwyMSleKHI+Pj4yNXxyPDw3KSl8CjApKygoKHImdF5+ciZ1KSsocWlbeF18MCl8MCkrKGNbeF18MCl8MCl8MDt2PXU7dT10O3Q9cjtyPXErenwwO3E9cDtwPW47bj1sO2w9eit5fDB9YS5IWzBdPWEuSFswXStsfDA7YS5IWzFdPWEuSFsxXStufDA7YS5IWzJdPWEuSFsyXStwfDA7YS5IWzNdPWEuSFszXStxfDA7YS5IWzRdPWEuSFs0XStyfDA7YS5IWzVdPWEuSFs1XSt0fDA7YS5IWzZdPWEuSFs2XSt1fDA7YS5IWzddPWEuSFs3XSt2fDB9OwpwaS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGEsYil7Yj09PXZvaWQgMCYmKGI9YS5sZW5ndGgpO3ZhciBjPTAsZD10aGlzLks7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilmb3IoO2M8YjspdGhpcy5OW2QrK109YS5jaGFyQ29kZUF0KGMrKyksZD09dGhpcy5ibG9ja1NpemUmJih2aSh0aGlzKSxkPTApO2Vsc2V7dmFyIGUsZj10eXBlb2YgYTtlPWYhPSJvYmplY3QiP2Y6YT9BcnJheS5pc0FycmF5KGEpPyJhcnJheSI6ZjoibnVsbCI7aWYoZT09ImFycmF5Inx8ZT09Im9iamVjdCImJnR5cGVvZiBhLmxlbmd0aD09Im51bWJlciIpZm9yKDtjPGI7KXt2YXIgZz1hW2MrK107aWYoISgibnVtYmVyIj09dHlwZW9mIGcmJjA8PWcmJjI1NT49ZyYmZz09KGd8MCkpKXRocm93IEVycm9yKCJtZXNzYWdlIG11c3QgYmUgYSBieXRlIGFycmF5Iik7dGhpcy5OW2QrK109ZztkPT10aGlzLmJsb2NrU2l6ZSYmKHZpKHRoaXMpLGQ9MCl9ZWxzZSB0aHJvdyBFcnJvcigibWVzc2FnZSBtdXN0IGJlIHN0cmluZyBvciBhcnJheSIpOwp9dGhpcy5LPWQ7dGhpcy5SKz1ifTtwaS5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKCl7dmFyIGE9W10sYj10aGlzLlIqODt0aGlzLks8NTY/dGhpcy51cGRhdGUodWksNTYtdGhpcy5LKTp0aGlzLnVwZGF0ZSh1aSx0aGlzLmJsb2NrU2l6ZS0odGhpcy5LLTU2KSk7Zm9yKHZhciBjPTYzO2M+PTU2O2MtLSl0aGlzLk5bY109YiYyNTUsYi89MjU2O3ZpKHRoaXMpO2Zvcih2YXIgZD0wLGU9MDtlPHRoaXMuZmE7ZSsrKWZvcih2YXIgZj0yNDtmPj0wO2YtPTgpYVtkKytdPXRoaXMuSFtlXT4+ZiYyNTU7cmV0dXJuIGF9Owp2YXIgcmk9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCwKNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdLHFpO2Z1bmN0aW9uIHdpKCl7cGkuY2FsbCh0aGlzLDgseGkpfVNhKHdpLHBpKTt2YXIgeGk9WzE3NzkwMzM3MDMsMzE0NDEzNDI3NywxMDEzOTA0MjQyLDI3NzM0ODA3NjIsMTM1OTg5MzExOSwyNjAwODIyOTI0LDUyODczNDYzNSwxNTQxNDU5MjI1XTt2YXIgeWk9L15bMC05QS1GYS1mXXs2NH0kLztmdW5jdGlvbiB6aShhKXt0cnl7cmV0dXJuKG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKGEpfWNhdGNoKGIpe3JldHVybiBaYihhKX19ZnVuY3Rpb24gQWkoYSl7dmFyIGI9QTtpZihhPT09IiJ8fGE9PT0iZTAiKXJldHVybiBQcm9taXNlLnJlc29sdmUoYSk7dmFyIGM7aWYoKGM9Yi5jcnlwdG8pPT1udWxsPzA6Yy5zdWJ0bGUpe2lmKHlpLnRlc3QoYSkpcmV0dXJuIFByb21pc2UucmVzb2x2ZShhKTt0cnl7dmFyIGQ9emkoYSk7cmV0dXJuIGIuY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLGQpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIEJpKGUsYil9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiJlMiJ9KX1jYXRjaChlKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCJlMiIpfX1lbHNlIHJldHVybiBQcm9taXNlLnJlc29sdmUoImUxIil9CmZ1bmN0aW9uIENpKGEpe3RyeXt2YXIgYj1uZXcgd2k7Yi51cGRhdGUoemkoYSkpO3JldHVybiBiLmRpZ2VzdCgpfWNhdGNoKGMpe3JldHVybiJlMiJ9fWZ1bmN0aW9uIERpKGEpe3ZhciBiPUE7aWYoYT09PSIifHxhPT09ImUwInx8eWkudGVzdChhKSlyZXR1cm4gYTt2YXIgYz1DaShhKTtpZihjPT09ImUyIilyZXR1cm4iZTIiO3RyeXtyZXR1cm4gQmkoYyxiKX1jYXRjaChkKXtyZXR1cm4iZTIifX1mdW5jdGlvbiBCaShhLGIpe3ZhciBjPUFycmF5LmZyb20obmV3IFVpbnQ4QXJyYXkoYSkpLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShkKX0pLmpvaW4oIiIpO3JldHVybiBiLmJ0b2EoYykucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89KyQvLCIiKX07ZnVuY3Rpb24gRWkoKXtmb3IodmFyIGE9ITEsYj0hMSxjPTA7YT09PWI7KWlmKGE9RGIoMCwxKT09PTAsYj1EYigwLDEpPT09MCxjKyssYz4zMClyZXR1cm47cmV0dXJuIGF9dmFyIEdpPXtzazpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIEZpLnNrKGEsYixjKX19LEhpPWZ1bmN0aW9uKCl7dGhpcy5zdHVkaWVzPXt9O3RoaXMuSD1FaX07CkhpLnByb3RvdHlwZS5zaz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5zdHVkaWVzW2JdO2lmKCEoKGM9PT12b2lkIDA/RGIoMCw5OTk5KTpjJTFFNCk8ZC5wcm9iYWJpbGl0eSooZC5jb250cm9sSWQyPzQ6MikqMUU0KSlyZXR1cm4gYTthOnt2YXIgZT1kLnN0dWR5SWQsZj1kLmV4cGVyaW1lbnRJZCxnPWQuY29udHJvbElkLGg9ZC5jb250cm9sSWQyO2lmKCEoKGEuZXhwfHx7fSlbZl18fChhLmV4cHx8e30pW2ddfHxoJiYoYS5leHB8fHt9KVtoXSkpe3ZhciBsPWMhPT12b2lkIDA/YyUyPT09MDp0aGlzLkgoKTtpZihsIT09dm9pZCAwKXt2YXIgbj1sPzA6MTtpZihoKXt2YXIgcD1jIT09dm9pZCAwPyhjPj4xKSUyPT09MDp0aGlzLkgoKTtpZihwPT09dm9pZCAwKWJyZWFrIGE7bnw9KHA/MDoxKTw8MX1uPT09MD9JaShhLGYsZSk6bj09PTE/SWkoYSxnLGUpOm49PT0yJiZJaShhLGgsZSl9fX1yZXR1cm4gYX07CnZhciBLaT1mdW5jdGlvbihhLGIpe3ZhciBjPUZpO3JldHVybiBjLnN0dWRpZXNbYl0/SmkoYyxiKXx8ISEoYS5leHB8fHt9KVtjLnN0dWRpZXNbYl0uZXhwZXJpbWVudElkXTohMX0sTGk9ZnVuY3Rpb24oYSxiKXt2YXIgYz1GaTtyZXR1cm4gYy5zdHVkaWVzW2JdJiZjLnN0dWRpZXNbYl0uY29udHJvbElkJiYhSmkoYyxiKT8hIShhLmV4cHx8e30pW2Muc3R1ZGllc1tiXS5jb250cm9sSWRdOiExfSxNaT1mdW5jdGlvbihhLGIpe3ZhciBjPUZpO3JldHVybiBjLnN0dWRpZXNbYl0mJmMuc3R1ZGllc1tiXS5jb250cm9sSWQyJiYhSmkoYyxiKT8hIShhLmV4cHx8e30pW2Muc3R1ZGllc1tiXS5jb250cm9sSWQyXTohMX0sTmk9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YS5leHB8fHt9LGQ9bShPYmplY3Qua2V5cyhjKS5tYXAoTnVtYmVyKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7aWYoY1tmXT09PWIpcmV0dXJuIGZ9fSxKaT1mdW5jdGlvbihhLApiKXtyZXR1cm4hIWEuc3R1ZGllc1tiXS5hY3RpdmV8fGEuc3R1ZGllc1tiXS5wcm9iYWJpbGl0eT4uNX0sSWk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuZXhwfHx7fTtkW2JdPWM7YS5leHA9ZH0sRmk9bmV3IEhpO3ZhciBpaj1mdW5jdGlvbigpe3RoaXMuSD1BLmdvb2dsZV90YWdfbWFuYWdlcj1BLmdvb2dsZV90YWdfbWFuYWdlcnx8e319LGpqO2Z1bmN0aW9uIGtqKGEsYil7bGooKTt2YXIgYz1qajtyZXR1cm4gYy5IW2FdPWMuSFthXXx8YigpfWZ1bmN0aW9uIG1qKGEpe2xqKCk7cmV0dXJuIGpqLkhbYV19ZnVuY3Rpb24gbmooYSxiKXtsaigpO2pqLkhbYV09Yn1mdW5jdGlvbiBvaihhKXt2YXIgYj1FKDUpO2xqKCk7dmFyIGM9amo7Yy5IW2JdPWMuSFtiXXx8YX1mdW5jdGlvbiBwaigpe3ZhciBhPUUoMTkpO2xqKCk7dmFyIGI9amo7cmV0dXJuIGIuSFthXT1iLkhbYV18fHt9fWZ1bmN0aW9uIHFqKCl7dmFyIGE9RSgxOSk7bGooKTtyZXR1cm4gamouSFthXX1mdW5jdGlvbiByaigpe2xqKCk7dmFyIGE9amosYj1hLkguc2VxdWVuY2V8fDE7YS5ILnNlcXVlbmNlPWIrMTtyZXR1cm4gYn1mdW5jdGlvbiBsaigpe2pqfHwoamo9bmV3IGlqKX07dmFyIHNqPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIDE6cmV0dXJuIDA7Y2FzZSA0OTE6cmV0dXJuIDEyO2Nhc2UgNDgwOnJldHVybiAxMTtjYXNlIDQ5OTpyZXR1cm4gMTA7Y2FzZSA1MDA6cmV0dXJuIDY7Y2FzZSA0MjE6cmV0dXJuIDk7Y2FzZSA1NjE6cmV0dXJuIDE3O2Nhc2UgNDgyOnJldHVybiAxNTtjYXNlIDU3MDpyZXR1cm4gMTk7Y2FzZSA0OTU6cmV0dXJuIDEzO2Nhc2UgNTE0OnJldHVybiAxNjtjYXNlIDU3MzpyZXR1cm4gMTg7Y2FzZSAyMzU6cmV0dXJuIDg7Y2FzZSA1MzpyZXR1cm4gMTtjYXNlIDU0OnJldHVybiAyO2Nhc2UgNTI6cmV0dXJuIDQ7Y2FzZSA3NTpyZXR1cm4gM319LHRqPWZ1bmN0aW9uKGEsYil7YS5OW2JdPSEwO3ZhciBjPXNqKGIpO2MhPT12b2lkIDAmJihXZltjXT0hMCl9LE09ZnVuY3Rpb24oYSl7cmV0dXJuISF1ai5OW2FdfSx1aj1uZXcgZnVuY3Rpb24oKXt0aGlzLk49W107dGhpcy5LPVtdO3RoaXMuSD1bXTsKdGoodGhpcywxMzIpO3ZhciBhPU5mKDYsNkU0KTtYZlsxXT1hO3ZhciBiPU5mKDcsMSk7WGZbM109Yjt2YXIgYz1OZigzNSw1MCk7WGZbMl09Yzt2YXIgZD1OZig2OSwxNzc2NDQ4OTIwKTtYZls0XT1kOwp0aih0aGlzLDQzNSk7dGoodGhpcywxNDEpOwp9O3ZhciB2aj1mdW5jdGlvbigpe3RoaXMuSD1uZXcgU2V0O3RoaXMuSz1uZXcgU2V0fSx4aj1mdW5jdGlvbihhKXt2YXIgYj13ai5IO2E9YT09PXZvaWQgMD9bXTphO3ZhciBjPVtdLmNvbmNhdCh3KGIuSCkpLmNvbmNhdChbXS5jb25jYXQodyhiLkspKSkuY29uY2F0KGEpO2Muc29ydChmdW5jdGlvbihkLGUpe3JldHVybiBkLWV9KTtyZXR1cm4gY30seWo9ZnVuY3Rpb24oKXt2YXIgYT1bXS5jb25jYXQodyh3ai5ILkgpKTthLnNvcnQoZnVuY3Rpb24oYixjKXtyZXR1cm4gYi1jfSk7cmV0dXJuIGF9LHpqPWZ1bmN0aW9uKCl7dmFyIGE9d2ouSCxiPUUoNDQpO2EuSD1uZXcgU2V0O2lmKGIhPT0iIilmb3IodmFyIGM9bShiLnNwbGl0KCJ+IikpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1OdW1iZXIoZC52YWx1ZSk7aXNOYU4oZSl8fGEuSC5hZGQoZSl9fTt2YXIgQWo9e30sQmo9e19fY2w6MSxfX2VjbDoxLF9fZWhsOjEsX19ldmw6MSxfX2ZhbDoxLF9fZmlsOjEsX19mc2w6MSxfX2hsOjEsX19qZWw6MSxfX2xjbDoxLF9fc2RsOjEsX190bDoxLF9feXRsOjF9LENqPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30se19fcGF1c2VkOjEsX190ZzoxfSxCaiksRGosRWo9ITE7RGo9RWo7dmFyIEZqPSIiO0FqLnFqPUZqO3ZhciB3aj1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9bmV3IHZqfTt2YXIgR2o9LzpbMC05XSskLyxIaj0vXlxkK1wuZmxzXC5kb3VibGVjbGlja1wubmV0JC87ZnVuY3Rpb24gSWooYSxiLGMsZCl7dmFyIGU9SmooYSwhIWQsYiksZixnO3JldHVybiBjPyhnPWVbYl0pIT1udWxsP2c6W106KGY9ZVtiXSk9PW51bGw/dm9pZCAwOmZbMF19ZnVuY3Rpb24gSmooYSxiLGMpe2Zvcih2YXIgZD17fSxlPW0oYS5zcGxpdCgiJiIpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9bShmLnZhbHVlLnNwbGl0KCI9IikpLGg9Zy5uZXh0KCkudmFsdWUsbD15YShnKSxuPWRlY29kZVVSSUNvbXBvbmVudChoLnJlcGxhY2UoL1wrL2csIiAiKSk7aWYoYz09PXZvaWQgMHx8bj09PWMpe3ZhciBwPWwuam9pbigiPSIpO2Rbbl18fChkW25dPVtdKTtkW25dLnB1c2goYj9wOmRlY29kZVVSSUNvbXBvbmVudChwLnJlcGxhY2UoL1wrL2csIiAiKSkpfX1yZXR1cm4gZH0KZnVuY3Rpb24gS2ooYSl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoYSl9Y2F0Y2goYil7fX1mdW5jdGlvbiBMaihhLGIsYyxkLGUpe2ImJihiPVN0cmluZyhiKS50b0xvd2VyQ2FzZSgpKTtpZihiPT09InByb3RvY29sInx8Yj09PSJwb3J0IilhLnByb3RvY29sPU1qKGEucHJvdG9jb2wpfHxNaihBLmxvY2F0aW9uLnByb3RvY29sKTtiPT09InBvcnQiP2EucG9ydD1TdHJpbmcoTnVtYmVyKGEuaG9zdG5hbWU/YS5wb3J0OkEubG9jYXRpb24ucG9ydCl8fChhLnByb3RvY29sPT09Imh0dHAiPzgwOmEucHJvdG9jb2w9PT0iaHR0cHMiPzQ0MzoiIikpOmI9PT0iaG9zdCImJihhLmhvc3RuYW1lPShhLmhvc3RuYW1lfHxBLmxvY2F0aW9uLmhvc3RuYW1lKS5yZXBsYWNlKEdqLCIiKS50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gTmooYSxiLGMsZCxlKX0KZnVuY3Rpb24gTmooYSxiLGMsZCxlKXt2YXIgZixnPU1qKGEucHJvdG9jb2wpO2ImJihiPVN0cmluZyhiKS50b0xvd2VyQ2FzZSgpKTtzd2l0Y2goYil7Y2FzZSAidXJsX25vX2ZyYWdtZW50IjpmPU9qKGEpO2JyZWFrO2Nhc2UgInByb3RvY29sIjpmPWc7YnJlYWs7Y2FzZSAiaG9zdCI6Zj1hLmhvc3RuYW1lLnJlcGxhY2UoR2osIiIpLnRvTG93ZXJDYXNlKCk7aWYoYyl7dmFyIGg9L153d3dcZCpcLi8uZXhlYyhmKTtoJiZoWzBdJiYoZj1mLnN1YnN0cmluZyhoWzBdLmxlbmd0aCkpfWJyZWFrO2Nhc2UgInBvcnQiOmY9U3RyaW5nKE51bWJlcihhLnBvcnQpfHwoZz09PSJodHRwIj84MDpnPT09Imh0dHBzIj80NDM6IiIpKTticmVhaztjYXNlICJwYXRoIjphLnBhdGhuYW1lfHxhLmhvc3RuYW1lfHxzYigiVEFHR0lORyIsMSk7Zj1hLnBhdGhuYW1lLnN1YnN0cmluZygwLDEpPT09Ii8iP2EucGF0aG5hbWU6Ii8iK2EucGF0aG5hbWU7dmFyIGw9Zi5zcGxpdCgiLyIpOyhkfHxbXSkuaW5kZXhPZihsW2wubGVuZ3RoLQoxXSk+PTAmJihsW2wubGVuZ3RoLTFdPSIiKTtmPWwuam9pbigiLyIpO2JyZWFrO2Nhc2UgInF1ZXJ5IjpmPWEuc2VhcmNoLnJlcGxhY2UoIj8iLCIiKTtlJiYoZj1JaihmLGUsITEpKTticmVhaztjYXNlICJleHRlbnNpb24iOnZhciBuPWEucGF0aG5hbWUuc3BsaXQoIi4iKTtmPW4ubGVuZ3RoPjE/bltuLmxlbmd0aC0xXToiIjtmPWYuc3BsaXQoIi8iKVswXTticmVhaztjYXNlICJmcmFnbWVudCI6Zj1hLmhhc2gucmVwbGFjZSgiIyIsIiIpO2JyZWFrO2RlZmF1bHQ6Zj1hJiZhLmhyZWZ9cmV0dXJuIGZ9ZnVuY3Rpb24gTWooYSl7cmV0dXJuIGE/YS5yZXBsYWNlKCI6IiwiIikudG9Mb3dlckNhc2UoKToiIn1mdW5jdGlvbiBPaihhKXt2YXIgYj0iIjtpZihhJiZhLmhyZWYpe3ZhciBjPWEuaHJlZi5pbmRleE9mKCIjIik7Yj1jPDA/YS5ocmVmOmEuaHJlZi5zdWJzdHJpbmcoMCxjKX1yZXR1cm4gYn12YXIgUGo9e30sUWo9MDsKZnVuY3Rpb24gUmooYSl7dmFyIGI9UGpbYV07aWYoIWIpe3ZhciBjPUIuY3JlYXRlRWxlbWVudCgiYSIpO2EmJihjLmhyZWY9YSk7dmFyIGQ9Yy5wYXRobmFtZTtkWzBdIT09Ii8iJiYoYXx8c2IoIlRBR0dJTkciLDEpLGQ9Ii8iK2QpO3ZhciBlPWMuaG9zdG5hbWUucmVwbGFjZShHaiwiIik7Yj17aHJlZjpjLmhyZWYscHJvdG9jb2w6Yy5wcm90b2NvbCxob3N0OmMuaG9zdCxob3N0bmFtZTplLHBhdGhuYW1lOmQsc2VhcmNoOmMuc2VhcmNoLGhhc2g6Yy5oYXNoLHBvcnQ6Yy5wb3J0fTtRajw1JiYoUGpbYV09YixRaisrKX1yZXR1cm4gYn1mdW5jdGlvbiBTaihhLGIsYyl7dmFyIGQ9UmooYSk7cmV0dXJuIGFjKGIsZCxjKX0KZnVuY3Rpb24gVGooYSl7dmFyIGI9UmooQS5sb2NhdGlvbi5ocmVmKSxjPUxqKGIsImhvc3QiLCExKTtpZihjJiZjLm1hdGNoKEhqKSl7dmFyIGQ9TGooYiwicGF0aCIpO2lmKGQpe3ZhciBlPWQuc3BsaXQoYSsiPSIpO2lmKGUubGVuZ3RoPjEpcmV0dXJuIGVbMV0uc3BsaXQoIjsiKVswXS5zcGxpdCgiPyIpWzBdfX19O3ZhciBVaj17Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20iOiIvZyIsImh0dHBzOi8vd3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIjoiL2FzIiwiaHR0cHM6Ly9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSI6Ii9ncyJ9LFZqPVsiL2FzL2QvY2NtL2NvbnZlcnNpb24iLCIvZy9kL2NjbS9jb252ZXJzaW9uIiwiL2dzL2NjbS9jb252ZXJzaW9uIiwiL2QvY2NtL2Zvcm0tZGF0YSJdO2Z1bmN0aW9uIFdqKCl7cmV0dXJuIElmKDQ3KT9KZig1NCkhPT0xOiExfWZ1bmN0aW9uIFhqKCl7dmFyIGE9RSgxOCksYj1hLmxlbmd0aDtyZXR1cm4gYVtiLTFdPT09Ii8iP2Euc3Vic3RyaW5nKDAsYi0xKTphfQpmdW5jdGlvbiBZaihhLGIpe2lmKGEpe3ZhciBjPSIiK2E7Yy5pbmRleE9mKCJodHRwOi8vIikhPT0wJiZjLmluZGV4T2YoImh0dHBzOi8vIikhPT0wJiYoYz0iaHR0cHM6Ly8iK2MpO2NbYy5sZW5ndGgtMV09PT0iLyImJihjPWMuc3Vic3RyaW5nKDAsYy5sZW5ndGgtMSkpO3JldHVybiBSaigiIitjK2IpLmhyZWZ9fWZ1bmN0aW9uIFpqKGEpe2lmKGFrKCkpcmV0dXJuIFlqKGEsIi9hbmFseXRpY3MuanMiKX1mdW5jdGlvbiBiayhhKXtyZXR1cm4gYT09PTJ8fGE9PT0zfWZ1bmN0aW9uIGNrKGEpe3JldHVybiBNKDU4OCkmJmE9PT0zfWZ1bmN0aW9uIGFrKCl7cmV0dXJuIFdqKCl8fElmKDUwKX1mdW5jdGlvbiBkaygpe3JldHVybiEhQWoucWomJkFqLnFqLnNwbGl0KCJAQCIpLmpvaW4oIiIpIT09IlNHVE1fVE9LRU4ifQpmdW5jdGlvbiBlayhhKXtmb3IodmFyIGI9bShbRi5ELmRkLEYuRC55Y10pLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXt2YXIgZD1PKGEsYy52YWx1ZSk7aWYoZClyZXR1cm4gZH19ZnVuY3Rpb24gZmsoYSxiLGMpe2M9Yz09PXZvaWQgMD8iIjpjO2lmKCFXaigpKXJldHVybiBhO3ZhciBkPWI/VWpbYV18fCIiOiIiO2Q9PT0iL2dzIiYmKGM9IiIpO3JldHVybiIiK1hqKCkrZCtjfWZ1bmN0aW9uIGdrKGEpe2lmKFdqKCkpZm9yKHZhciBiPW0oVmopLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXt2YXIgZD1jLnZhbHVlO2lmKFNiKGEsIiIrWGooKStkKSlyZXR1cm4iOjoifX0KZnVuY3Rpb24gaGsoKXt2YXIgYT1BO2lmKCFhKXJldHVybiExO3RyeXtpZihhPT09YS50b3ApcmV0dXJuITE7dmFyIGI9YS5sb2NhdGlvbi5wYXRobmFtZTtyZXR1cm4gYi5pbmRleE9mKCIvXy9zZXJ2aWNlX3dvcmtlci8iKSE9PS0xJiZUYihiLCIvc3dfaWZyYW1lLmh0bWwiKX1jYXRjaChjKXtyZXR1cm4hMX19O3ZhciBpaz0vZ3RhZ1suXC9danMvLGprPS9ndG1bLlwvXWpzLyxsaz1mdW5jdGlvbihhKXt2YXIgYj1raztpZigoYS5zY3JpcHRDb250YWluZXJJZHx8IiIpLmluZGV4T2YoIkdUTS0iKT49MCl7dmFyIGM7YTp7dmFyIGQsZT0oZD1hLnNjcmlwdEVsZW1lbnQpPT1udWxsP3ZvaWQgMDpkLnNyYztpZihlKXtmb3IodmFyIGY9SWYoNDcpLGc9UmooZSksaD1mP2cucGF0aG5hbWU6IiIrZy5ob3N0bmFtZStnLnBhdGhuYW1lLGw9Qi5zY3JpcHRzLG49IiIscD0wO3A8bC5sZW5ndGg7KytwKXt2YXIgcT1sW3BdO2lmKCEocS5pbm5lckhUTUwubGVuZ3RoPT09MHx8IWYmJnEuaW5uZXJIVE1MLmluZGV4T2YoYS5zY3JpcHRDb250YWluZXJJZHx8IlNIT1VMRF9OT1RfQkVfU0VUIik8MHx8cS5pbm5lckhUTUwuaW5kZXhPZihoKTwwKSl7aWYocS5pbm5lckhUTUwuaW5kZXhPZigiKGZ1bmN0aW9uKHcsZCxzLGwsaSkiKT49MCl7Yz1TdHJpbmcocCk7YnJlYWsgYX1uPVN0cmluZyhwKX19aWYobil7Yz0KbjticmVhayBhfX1jPXZvaWQgMH12YXIgcj1jO2lmKHIpcmV0dXJuIGIuSD0hMCxyfXZhciB0PVtdLnNsaWNlLmNhbGwoQi5zY3JpcHRzKTtyZXR1cm4gYS5zY3JpcHRFbGVtZW50P1N0cmluZyh0LmluZGV4T2YoYS5zY3JpcHRFbGVtZW50KSk6Ii0xIn0sbWs9ZnVuY3Rpb24oYSl7aWYoa2suSClyZXR1cm4iMSI7dmFyIGIsYz0oYj1hLnNjcmlwdEVsZW1lbnQpPT1udWxsP3ZvaWQgMDpiLnNyYztpZihjKXtpZihpay50ZXN0KGMpKXJldHVybiIzIjtpZihqay50ZXN0KGMpKXJldHVybiIyIn1yZXR1cm4iMCJ9LGtrPW5ldyBmdW5jdGlvbigpe3RoaXMuSD0hMX07ZnVuY3Rpb24gUChhKXtzYigiR1RNIixhKX07ZnVuY3Rpb24gbmsoYSl7dmFyIGI9b2soKS5kZXN0aW5hdGlvbkFycmF5W2FdLGM9b2soKS5kZXN0aW5hdGlvblthXTtyZXR1cm4gYiYmYi5sZW5ndGg+MD9iWzBdOmN9ZnVuY3Rpb24gcGsoYSxiKXt2YXIgYz1vaygpO2MucGVuZGluZ3x8KGMucGVuZGluZz1bXSk7Q2IoYy5wZW5kaW5nLGZ1bmN0aW9uKGQpe3JldHVybiBkLnRhcmdldC5jdGlkPT09YS5jdGlkJiZkLnRhcmdldC5pc0Rlc3RpbmF0aW9uPT09YS5pc0Rlc3RpbmF0aW9ufSl8fGMucGVuZGluZy5wdXNoKHt0YXJnZXQ6YSxvbkxvYWQ6Yn0pfWZ1bmN0aW9uIHFrKCl7dmFyIGE9QS5nb29nbGVfdGFnc19maXJzdF9wYXJ0eTtBcnJheS5pc0FycmF5KGEpfHwoYT1bXSk7Zm9yKHZhciBiPXt9LGM9bShhKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSliW2QudmFsdWVdPSEwO3JldHVybiBPYmplY3QuZnJlZXplKGIpfQp2YXIgcms9ZnVuY3Rpb24oKXt0aGlzLmNvbnRhaW5lcj17fTt0aGlzLmRlc3RpbmF0aW9uPXt9O3RoaXMuZGVzdGluYXRpb25BcnJheT17fTt0aGlzLmNhbm9uaWNhbD17fTt0aGlzLnBlbmRpbmc9W107dGhpcy5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzPXt9O3RoaXMuaW5qZWN0ZWRGaXJzdFBhcnR5Q29udGFpbmVycz1xaygpfTsKZnVuY3Rpb24gb2soKXt2YXIgYT1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSksYj1hLnRpZHI7YiYmdHlwZW9mIGI9PT0ib2JqZWN0Inx8KGI9bmV3IHJrLGEudGlkcj1iKTt2YXIgYz1iO2MuY29udGFpbmVyfHwoYy5jb250YWluZXI9e30pO2MuZGVzdGluYXRpb258fChjLmRlc3RpbmF0aW9uPXt9KTtjLmRlc3RpbmF0aW9uQXJyYXl8fChjLmRlc3RpbmF0aW9uQXJyYXk9e30pO2MuY2Fub25pY2FsfHwoYy5jYW5vbmljYWw9e30pO2MucGVuZGluZ3x8KGMucGVuZGluZz1bXSk7Yy5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzfHwoYy5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzPXFrKCkpO3JldHVybiBjfTtmdW5jdGlvbiBzaygpe3JldHVybiBJZig3KSYmdGsoKS5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBhPT09RSg1KX0pfWZ1bmN0aW9uIHVrKCl7dmFyIGE7cmV0dXJuKGE9S2YoNTUpKSE9bnVsbD9hOltdfWZ1bmN0aW9uIHZrKCl7cmV0dXJuIEUoNil8fCJfIitFKDUpfWZ1bmN0aW9uIHdrKCl7dmFyIGE9RSgxMCk7cmV0dXJuIGE/YS5zcGxpdCgifCIpOltFKDUpXX1mdW5jdGlvbiB0aygpe3ZhciBhPUtmKDU5KTtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gdHlwZW9mIGI9PT0ic3RyaW5nIn0pLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gYi5pbmRleE9mKCJHVE0tIikhPT0wfSk6W119ZnVuY3Rpb24geGsoKXt2YXIgYT15ayh6aygpKSxiPWEmJmEucGFyZW50O2lmKGIpcmV0dXJuIHlrKGIpfQpmdW5jdGlvbiBBaygpe3ZhciBhPXlrKHprKCkpO2lmKGEpe2Zvcig7YS5wYXJlbnQ7KXt2YXIgYj15ayhhLnBhcmVudCk7aWYoIWIpYnJlYWs7YT1ifXJldHVybiBhfX1mdW5jdGlvbiB5ayhhKXt2YXIgYj1vaygpO3JldHVybiBhLmlzRGVzdGluYXRpb24/bmsoYS5jdGlkKTpiLmNvbnRhaW5lclthLmN0aWRdfWZ1bmN0aW9uIEJrKCl7dmFyIGE9b2soKTtpZihhLnBlbmRpbmcpe2Zvcih2YXIgYixjPVtdLGQ9ITEsZT13aygpLGY9dGsoKSxnPXt9LGg9MDtoPGEucGVuZGluZy5sZW5ndGg7Zz17Umc6dm9pZCAwfSxoKyspZy5SZz1hLnBlbmRpbmdbaF0sQ2IoZy5SZy50YXJnZXQuaXNEZXN0aW5hdGlvbj9mOmUsZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBuPT09bC5SZy50YXJnZXQuY3RpZH19KGcpKT9kfHwoYj1nLlJnLm9uTG9hZCxkPSEwKTpjLnB1c2goZy5SZyk7YS5wZW5kaW5nPWM7aWYoYil0cnl7Yih2aygpKX1jYXRjaChsKXt9fX0KZnVuY3Rpb24gQ2soKXtmb3IodmFyIGE9RSg1KSxiPXdrKCksYz10aygpLGQ9dWsoKSxlPWZ1bmN0aW9uKHEscil7dmFyIHQ9e2Nhbm9uaWNhbENvbnRhaW5lcklkOkUoNiksc2NyaXB0Q29udGFpbmVySWQ6YSxzdGF0ZToyLGNvbnRhaW5lcnM6Yi5zbGljZSgpLGRlc3RpbmF0aW9uczpjLnNsaWNlKCl9O0pjJiYodC5zY3JpcHRFbGVtZW50PUpjKTtLYyYmKHQuc2NyaXB0U291cmNlPUtjKTt4aygpPT09dm9pZCAwJiYodC5odG1sTG9hZE9yZGVyPWxrKHQpLHQubG9hZFNjcmlwdFR5cGU9bWsodCkpO3ZhciB1LHY7c3dpdGNoKHIpe2Nhc2UgMDp1PWZ1bmN0aW9uKHope2YuY29udGFpbmVyW3FdPXp9O3Y9Zi5jb250YWluZXJbcV07YnJlYWs7Y2FzZSAxOnU9ZnVuY3Rpb24oeil7Zi5kZXN0aW5hdGlvbkFycmF5W3FdPWYuZGVzdGluYXRpb25BcnJheVtxXXx8W107Zi5kZXN0aW5hdGlvbkFycmF5W3FdLnVuc2hpZnQoeil9O3ZhciB4LHk9KCh4PWYuZGVzdGluYXRpb25BcnJheVtxXSk9PQpudWxsP3ZvaWQgMDp4WzBdKXx8Zi5kZXN0aW5hdGlvbltxXTsheXx8eS5zdGF0ZSE9PTAmJnkuc3RhdGUhPT0xfHwodj15KTticmVhaztjYXNlIDI6dT1mdW5jdGlvbih6KXtmLmRlc3RpbmF0aW9uQXJyYXlbcV09Zi5kZXN0aW5hdGlvbkFycmF5W3FdfHxbXTtmLmRlc3RpbmF0aW9uQXJyYXlbcV0ucHVzaCh6KX0sdj12b2lkIDB9dSYmKHY/KHYuc3RhdGU9PT0wJiZQKDkzKSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHYsdCkpOnUodCkpfSxmPW9rKCksZz1tKGIpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKWUoaC52YWx1ZSwwKTtmb3IodmFyIGw9bShjKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtkLmluY2x1ZGVzKHApP2UocCwxKTplKHAsMil9Zi5jYW5vbmljYWxbdmsoKV09e307QmsoKX1mdW5jdGlvbiBEaygpe3ZhciBhPXZrKCk7cmV0dXJuISFvaygpLmNhbm9uaWNhbFthXX0KZnVuY3Rpb24gRWsoYSl7cmV0dXJuISFvaygpLmNvbnRhaW5lclthXX1mdW5jdGlvbiBGaygpe3ZhciBhPXprKCksYj15ayhhKTtyZXR1cm4gYiYmYi5jb250ZXh0fWZ1bmN0aW9uIEdrKGEpe3ZhciBiPW5rKGEpO3JldHVybiBiP2Iuc3RhdGUhPT0wOiExfWZ1bmN0aW9uIHprKCl7cmV0dXJue2N0aWQ6RSg1KSxpc0Rlc3RpbmF0aW9uOklmKDcpfX1mdW5jdGlvbiBIayhhLGIsYyl7dmFyIGQ9emsoKSxlPW9rKCkuY29udGFpbmVyW2FdO2UmJmUuc3RhdGUhPT0zfHwob2soKS5jb250YWluZXJbYV09e3N0YXRlOjEsY29udGV4dDpiLHBhcmVudDpkfSxwayh7Y3RpZDphLGlzRGVzdGluYXRpb246ITF9LGMpKX1mdW5jdGlvbiBJayhhLGIsYyl7dmFyIGQ9b2soKSxlPW5rKGEpO2U/ZS5zdGF0ZT0xOihlPXtjb250ZXh0OmIsc3RhdGU6MSxwYXJlbnQ6emsoKX0sZC5kZXN0aW5hdGlvbkFycmF5W2FdPVtlXSk7cGsoe2N0aWQ6YSxpc0Rlc3RpbmF0aW9uOiEwfSxjKX0KZnVuY3Rpb24gSmsoYSxiLGMsZCl7dmFyIGU9b2soKSxmPW5rKGEpO2Y/Zi5zdGF0ZT0wOihmPXtzdGF0ZTowLHRyYW5zcG9ydFVybDpiLGNvbnRleHQ6YyxwYXJlbnQ6emsoKX0sZS5kZXN0aW5hdGlvbkFycmF5W2FdPVtmXSk7cGsoe2N0aWQ6YSxpc0Rlc3RpbmF0aW9uOiEwfSxkKTtQKDkxKX1mdW5jdGlvbiBLaygpe3ZhciBhPW9rKCkuY29udGFpbmVyLGI7Zm9yKGIgaW4gYSlpZihhLmhhc093blByb3BlcnR5KGIpJiZhW2JdLnN0YXRlPT09MSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBMaygpe3ZhciBhPXt9O0diKG9rKCkuZGVzdGluYXRpb24sZnVuY3Rpb24oYixjKXsoYz09bnVsbD92b2lkIDA6Yy5zdGF0ZSk9PT0wJiYoYVtiXT1jKX0pO0diKG9rKCkuZGVzdGluYXRpb25BcnJheSxmdW5jdGlvbihiLGMpe3ZhciBkPWNbMF07KGQ9PW51bGw/dm9pZCAwOmQuc3RhdGUpPT09MCYmKGFbYl09ZCl9KTtyZXR1cm4gYX0KZnVuY3Rpb24gTWsoYSl7cmV0dXJuISEoYSYmYS5wYXJlbnQmJmEuY29udGV4dCYmYS5jb250ZXh0LnNvdXJjZT09PTEmJmEucGFyZW50LmN0aWQuaW5kZXhPZigiR1RNLSIpIT09MCl9ZnVuY3Rpb24gTmsoKXtmb3IodmFyIGE9b2soKSxiPW0od2soKSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpaWYoYS5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzW2MudmFsdWVdKXJldHVybiEwO3JldHVybiExfTt2YXIgT2s9ZnVuY3Rpb24oKXt9O09rLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJ1bmRlZmluZWQifTt2YXIgUGs9bmV3IE9rO3ZhciBYaz1mdW5jdGlvbigpe3RoaXMuc3RvcmFnZT1ZYSgpfTtYay5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5zdG9yYWdlLnNldChTdHJpbmcoYSksYil9O1hrLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuc3RvcmFnZS5nZXQoU3RyaW5nKGEpKX07dmFyIFlrO2Z1bmN0aW9uIFprKGEsYil7WWt8fChZaz1uZXcgWGspO1lrLnNldChhLGIpfWZ1bmN0aW9uICRrKGEpe1lrfHwoWWs9bmV3IFhrKTtyZXR1cm4gWWsuZ2V0KGEpfWZ1bmN0aW9uIGFsKGEsYil7WWt8fChZaz1uZXcgWGspO3ZhciBjPVlrO2Muc3RvcmFnZS5oYXMoU3RyaW5nKGEpKXx8Yy5zdG9yYWdlLnNldChTdHJpbmcoYSksYigpKTtyZXR1cm4gYy5zdG9yYWdlLmdldChTdHJpbmcoYSkpfTtmdW5jdGlvbiBibChhLGIpe2Z1bmN0aW9uIGMoZyl7dmFyIGg9UmooZyksbD1MaihoLCJwcm90b2NvbCIpLG49TGooaCwiaG9zdCIsITApLHA9TGooaCwicG9ydCIpLHE9TGooaCwicGF0aCIpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXC8kLywiIik7aWYobD09PXZvaWQgMHx8bD09PSJodHRwIiYmcD09PSI4MCJ8fGw9PT0iaHR0cHMiJiZwPT09IjQ0MyIpbD0id2ViIixwPSJkZWZhdWx0IjtyZXR1cm5bbCxuLHAscV19Zm9yKHZhciBkPWMoU3RyaW5nKGEpKSxlPWMoU3RyaW5nKGIpKSxmPTA7ZjxkLmxlbmd0aDtmKyspaWYoZFtmXSE9PWVbZl0pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gY2woYSl7cmV0dXJuIGRsKGEpPzE6MH0KZnVuY3Rpb24gZGwoYSl7dmFyIGI9YS5hcmcwLGM9YS5hcmcxO2lmKGEuYW55X29mJiZBcnJheS5pc0FycmF5KGMpKXtmb3IodmFyIGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9RWQoYSx7fSk7RWQoe2FyZzE6Y1tkXSxhbnlfb2Y6dm9pZCAwfSxlKTtpZihjbChlKSlyZXR1cm4hMH1yZXR1cm4hMX1zd2l0Y2goYVsiZnVuY3Rpb24iXSl7Y2FzZSAiX2NuIjpyZXR1cm4gS2coYixjKTtjYXNlICJfY3NzIjpyZXR1cm4gR2coYixjKTtjYXNlICJfZXciOnJldHVybiBIZyhiLGMpO2Nhc2UgIl9lcSI6cmV0dXJuIExnKGIsYyk7Y2FzZSAiX2dlIjpyZXR1cm4gTWcoYixjKTtjYXNlICJfZ3QiOnJldHVybiBPZyhiLGMpO2Nhc2UgIl9sYyI6cmV0dXJuIElnKGIsYyk7Y2FzZSAiX2xlIjpyZXR1cm4gTmcoYixjKTtjYXNlICJfbHQiOnJldHVybiBQZyhiLGMpO2Nhc2UgIl9yZSI6cmV0dXJuIEpnKGIsYyxhLmlnbm9yZV9jYXNlLGFsKDMsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE1hcH0pKTtjYXNlICJfc3ciOnJldHVybiBRZyhiLApjKTtjYXNlICJfdW0iOnJldHVybiBibChiLGMpfXJldHVybiExfTtmdW5jdGlvbiBlbChhLGIsYyxkLGUpe2lmKEFycmF5LmlzQXJyYXkoYSkpe3ZhciBmO3N3aXRjaChhWzBdKXtjYXNlICJmdW5jdGlvbl9pZCI6cmV0dXJuIGFbMV07Y2FzZSAibGlzdCI6Zj1bXTtmb3IodmFyIGc9MTtnPGEubGVuZ3RoO2crKylmLnB1c2goZWwoYVtnXSxiLGMsZCxlKSk7cmV0dXJuIGY7Y2FzZSAibWFjcm8iOnZhciBoPWRbYVsxXV07cmV0dXJuIGg/aC5ldmFsdWF0ZShiLGUpOnZvaWQgMDtjYXNlICJtYXAiOmY9e307Zm9yKHZhciBsPTE7bDxhLmxlbmd0aDtsKz0yKWZbZWwoYVtsXSxiLGMsZCxlKV09ZWwoYVtsKzFdLGIsYyxkLGUpO3JldHVybiBmO2Nhc2UgInRlbXBsYXRlIjpmPVtdO2Zvcih2YXIgbj0hMSxwPTE7cDxhLmxlbmd0aDtwKyspe3ZhciBxPWVsKGFbcF0sYixjLGQsZSk7Zi5wdXNoKHEpfXJldHVybiBmLmpvaW4oIiIpO2Nhc2UgImVzY2FwZSI6Zj1lbChhWzFdLGIsYyxkLGUpO2Y9U3RyaW5nKGYpO2Zvcih2YXIgeT0yO3k8YS5sZW5ndGg7eSsrKVVpW2FbeV1dJiYoZj1VaVthW3ldXShmKSk7cmV0dXJuIGY7Y2FzZSAidGFnIjp2YXIgej1hWzFdO2lmKCFjW3pdKXRocm93IEVycm9yKCJVbmFibGUgdG8gcmVzb2x2ZSB0YWcgcmVmZXJlbmNlICIrCnorIi4iKTtyZXR1cm57Ym86YVsyXSxpbmRleDp6fTtjYXNlICJ6YiI6dmFyIEM9e30sRD0oQ1tHZi5ZYl09YVsxXSxDLmFyZzA9ZWwoYVsyXSxiLGMsZCxlKSxDLmFyZzE9ZWwoYVszXSxiLGMsZCxlKSxDLmlnbm9yZV9jYXNlPWVsKGFbNV0sYixjLGQsZSksQyksST1jbChEKSxHPSEhYVs0XTtyZXR1cm4gR3x8SSE9PTI/RyE9PShJPT09MSk6bnVsbDtkZWZhdWx0OnRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGV4cGFuZCB1bmtub3duIFZhbHVlIHR5cGU6ICIrYVswXSsiLiIpO319cmV0dXJuIGF9O2Z1bmN0aW9uIGZsKGEpe3JldHVybiBhJiZhLmluZGV4T2YoInBlbmRpbmc6Iik9PT0wP2dsKGEuc3Vic3RyKDgpKTohMX1mdW5jdGlvbiBnbChhKXtpZihhPT1udWxsfHxhLmxlbmd0aD09PTApcmV0dXJuITE7dmFyIGI9TnVtYmVyKGEpLGM9TmIoKTtyZXR1cm4gYjxjKzNFNSYmYj5jLTlFNX07dmFyIGhsPSExLGlsPSExLGpsPSExLGtsPTAsbGw9ITEsbWw9dm9pZCAwLG5sPVtdO2Z1bmN0aW9uIG9sKGEpe2lmKGtsPT09MClsbCYmbmwmJihubC5sZW5ndGg+PTEwMCYmbmwuc2hpZnQoKSxubC5wdXNoKGEpKTtlbHNlIGlmKHBsKCkpe3ZhciBiPUUoNDEpLGM9TWMoYixbXSk7Yy5sZW5ndGg+PTUwJiZjLnNoaWZ0KCk7Yy5wdXNoKGEpfX1mdW5jdGlvbiBxbCgpe2lsfHwocmwoKSxzbChrbCkpfWZ1bmN0aW9uIHNsKGEpe2lmKCFpbHx8a2w9PT0yJiZhPT09MSlpZihpbD0hMCxqbCYmKGFkKEIsIlRBUHJvZERlYnVnU2lnbmFsIixxbCksamw9ITEpLG1sIT09dm9pZCAwJiYoQS5jbGVhclRpbWVvdXQobWwpLG1sPXZvaWQgMCksa2w9YSxhPT09MSl7dmFyIGI9bmw7bmw9dm9pZCAwO2I9PW51bGx8fGIuZm9yRWFjaChmdW5jdGlvbihjKXtvbChjKX0pfX0KZnVuY3Rpb24gcmwoKXt2YXIgYT1CLmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtdGFnLWFzc2lzdGFudC1wcm9kLXByZXNlbnQiKTtnbChhKT9rbD0xOiFmbChhKXx8aGx8fGpsP2tsPTI6KGpsPSEwLCRjKEIsIlRBUHJvZERlYnVnU2lnbmFsIixxbCwhMSksbWw9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWx8fChybCgpLHNsKGtsKSk7aGw9ITB9LDIwMCkpfWZ1bmN0aW9uIHBsKCl7aWYoIWxsKXJldHVybiExO3N3aXRjaChrbCl7Y2FzZSAxOmNhc2UgMDpyZXR1cm4hMDtjYXNlIDI6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMX19O2Z1bmN0aW9uIHRsKCl7dmFyIGE9TWMoImdvb2dsZV90YWdfZGF0YSIse30pO3JldHVybiBhLmljcz1hLmljc3x8bmV3IHVsfXZhciB1bD1mdW5jdGlvbigpe3RoaXMuZW50cmllcz17fTt0aGlzLndhaXRQZXJpb2RUaW1lZE91dD10aGlzLndhc1NldExhdGU9dGhpcy5hY2Nlc3NlZEFueT10aGlzLmFjY2Vzc2VkRGVmYXVsdD10aGlzLnVzZWRJbXBsaWNpdD10aGlzLnVzZWRVcGRhdGU9dGhpcy51c2VkRGVmYXVsdD10aGlzLnVzZWREZWNsYXJlPXRoaXMuYWN0aXZlPSExO3RoaXMuSD1bXX07CnVsLnByb3RvdHlwZS5kZWZhdWx0PWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcpe3RoaXMudXNlZERlZmF1bHR8fHRoaXMudXNlZERlY2xhcmV8fCF0aGlzLmFjY2Vzc2VkRGVmYXVsdCYmIXRoaXMuYWNjZXNzZWRBbnl8fCh0aGlzLndhc1NldExhdGU9ITApO3RoaXMudXNlZERlZmF1bHQ9dGhpcy5hY3RpdmU9ITA7c2IoIlRBR0dJTkciLDE5KTtiPT1udWxsP3NiKCJUQUdHSU5HIiwxOCk6dmwodGhpcyxhLGI9PT0iZ3JhbnRlZCIsYyxkLGUsZixnKX07dWwucHJvdG90eXBlLndhaXRGb3JVcGRhdGU9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wO2Q8YS5sZW5ndGg7ZCsrKXZsKHRoaXMsYVtkXSx2b2lkIDAsdm9pZCAwLCIiLCIiLGIsYyl9Owp2YXIgdmw9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoKXt2YXIgbD1hLmVudHJpZXMsbj1sW2JdfHx7fSxwPW4ucmVnaW9uLHE9ZCYmemIoZCk/ZC50b1VwcGVyQ2FzZSgpOnZvaWQgMDtlPWUudG9VcHBlckNhc2UoKTtmPWYudG9VcHBlckNhc2UoKTtpZihlPT09IiJ8fHE9PT1mfHwocT09PWU/cCE9PWY6IXEmJiFwKSl7dmFyIHI9ISEoZyYmZz4wJiZuLnVwZGF0ZT09PXZvaWQgMCksdD17cmVnaW9uOnEsZGVjbGFyZV9yZWdpb246bi5kZWNsYXJlX3JlZ2lvbixpbXBsaWNpdDpuLmltcGxpY2l0LGRlZmF1bHQ6YyE9PXZvaWQgMD9jOm4uZGVmYXVsdCxkZWNsYXJlOm4uZGVjbGFyZSx1cGRhdGU6bi51cGRhdGUscXVpZXQ6cn07aWYoZSE9PSIifHxuLmRlZmF1bHQhPT0hMSlsW2JdPXQ7ciYmQS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bFtiXT09PXQmJnQucXVpZXQmJihzYigiVEFHR0lORyIsMiksYS53YWl0UGVyaW9kVGltZWRPdXQ9ITAsYS5jbGVhclRpbWVvdXQoYix2b2lkIDAsaCksCmEubm90aWZ5TGlzdGVuZXJzKCkpfSxnKX19O2s9dWwucHJvdG90eXBlO2suY2xlYXJUaW1lb3V0PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bYV0sZT1jLmRlbGVnYXRlZENvbnNlbnRUeXBlcyxmO2ZvcihmIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShmKSYmZVtmXT09PWEmJmQucHVzaChmKTt2YXIgZz10aGlzLmVudHJpZXNbYV18fHt9LGg9dGhpcy5nZXRDb25zZW50U3RhdGUoYSxjKTtpZihnLnF1aWV0KXtnLnF1aWV0PSExO2Zvcih2YXIgbD1tKGQpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXdsKHRoaXMsbi52YWx1ZSl9ZWxzZSBpZihiIT09dm9pZCAwJiZoIT09Yilmb3IodmFyIHA9bShkKSxxPXAubmV4dCgpOyFxLmRvbmU7cT1wLm5leHQoKSl3bCh0aGlzLHEudmFsdWUpfTsKay51cGRhdGU9ZnVuY3Rpb24oYSxiLGMpe3RoaXMudXNlZERlZmF1bHR8fHRoaXMudXNlZERlY2xhcmV8fHRoaXMudXNlZFVwZGF0ZXx8IXRoaXMuYWNjZXNzZWRBbnl8fCh0aGlzLndhc1NldExhdGU9ITApO3RoaXMudXNlZFVwZGF0ZT10aGlzLmFjdGl2ZT0hMDtpZihiIT1udWxsKXt2YXIgZD10aGlzLmdldENvbnNlbnRTdGF0ZShhLGMpLGU9dGhpcy5lbnRyaWVzOyhlW2FdPWVbYV18fHt9KS51cGRhdGU9Yj09PSJncmFudGVkIjt0aGlzLmNsZWFyVGltZW91dChhLGQsYyl9fTsKay5kZWNsYXJlPWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy51c2VkRGVjbGFyZT10aGlzLmFjdGl2ZT0hMDt2YXIgZj10aGlzLmVudHJpZXMsZz1mW2FdfHx7fSxoPWcuZGVjbGFyZV9yZWdpb24sbD1jJiZ6YihjKT9jLnRvVXBwZXJDYXNlKCk6dm9pZCAwO2Q9ZC50b1VwcGVyQ2FzZSgpO2U9ZS50b1VwcGVyQ2FzZSgpO2lmKGQ9PT0iInx8bD09PWV8fChsPT09ZD9oIT09ZTohbCYmIWgpKXt2YXIgbj17cmVnaW9uOmcucmVnaW9uLGRlY2xhcmVfcmVnaW9uOmwsZGVjbGFyZTpiPT09ImdyYW50ZWQiLGltcGxpY2l0OmcuaW1wbGljaXQsZGVmYXVsdDpnLmRlZmF1bHQsdXBkYXRlOmcudXBkYXRlLHF1aWV0OmcucXVpZXR9O2lmKGQhPT0iInx8Zy5kZWNsYXJlIT09ITEpZlthXT1ufX07CmsuaW1wbGljaXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLnVzZWRJbXBsaWNpdD0hMDt2YXIgYz10aGlzLmVudHJpZXMsZD1jW2FdPWNbYV18fHt9O2QuaW1wbGljaXQhPT0hMSYmKGQuaW1wbGljaXQ9Yj09PSJncmFudGVkIil9OwprLmdldENvbnNlbnRTdGF0ZT1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuZW50cmllcyxkPWNbYV18fHt9LGU9ZC51cGRhdGU7aWYoZSE9PXZvaWQgMClyZXR1cm4gZT8xOjI7aWYoYi51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHMpe3ZhciBmPWIuY29udGFpbmVyU2NvcGVkRGVmYXVsdHNbYV07aWYoZj09PTMpcmV0dXJuIDE7aWYoZj09PTIpcmV0dXJuIDJ9ZWxzZSBpZihlPWQuZGVmYXVsdCxlIT09dm9pZCAwKXJldHVybiBlPzE6MjtpZihiPT1udWxsPzA6Yi5kZWxlZ2F0ZWRDb25zZW50VHlwZXMuaGFzT3duUHJvcGVydHkoYSkpe3ZhciBnPWIuZGVsZWdhdGVkQ29uc2VudFR5cGVzW2FdLGg9Y1tnXXx8e307ZT1oLnVwZGF0ZTtpZihlIT09dm9pZCAwKXJldHVybiBlPzE6MjtpZihiLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cyl7dmFyIGw9Yi5jb250YWluZXJTY29wZWREZWZhdWx0c1tnXTtpZihsPT09MylyZXR1cm4gMTtpZihsPT09MilyZXR1cm4gMn1lbHNlIGlmKGU9CmguZGVmYXVsdCxlIT09dm9pZCAwKXJldHVybiBlPzE6Mn1lPWQuZGVjbGFyZTtpZihlIT09dm9pZCAwKXJldHVybiBlPzE6MjtlPWQuaW1wbGljaXQ7cmV0dXJuIGUhPT12b2lkIDA/ZT8zOjQ6MH07ay5hZGRMaXN0ZW5lcj1mdW5jdGlvbihhLGIpe3RoaXMuSC5wdXNoKHtjb25zZW50VHlwZXM6YSxpZTpifSl9O3ZhciB3bD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2M8YS5ILmxlbmd0aDsrK2Mpe3ZhciBkPWEuSFtjXTtBcnJheS5pc0FycmF5KGQuY29uc2VudFR5cGVzKSYmZC5jb25zZW50VHlwZXMuaW5kZXhPZihiKSE9PS0xJiYoZC54bz0hMCl9fTt1bC5wcm90b3R5cGUubm90aWZ5TGlzdGVuZXJzPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7Yzx0aGlzLkgubGVuZ3RoOysrYyl7dmFyIGQ9dGhpcy5IW2NdO2lmKGQueG8pe2QueG89ITE7dHJ5e2QuaWUoe2NvbnNlbnRFdmVudElkOmEsY29uc2VudFByaW9yaXR5SWQ6Yn0pfWNhdGNoKGUpe319fX07dmFyIHhsPSExLHlsPSExLHpsPXt9LEFsPXtkZWxlZ2F0ZWRDb25zZW50VHlwZXM6e30sY29yZVBsYXRmb3JtU2VydmljZXM6e30sdXNlZENvcmVQbGF0Zm9ybVNlcnZpY2VzOiExLHNlbGVjdGVkQWxsQ29yZVBsYXRmb3JtU2VydmljZXM6ITEsY29udGFpbmVyU2NvcGVkRGVmYXVsdHM6KHpsLmFkX3N0b3JhZ2U9MSx6bC5hbmFseXRpY3Nfc3RvcmFnZT0xLHpsLmFkX3VzZXJfZGF0YT0xLHpsLmFkX3BlcnNvbmFsaXphdGlvbj0xLHpsKSx1c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHM6ITF9O2Z1bmN0aW9uIEJsKGEpe3ZhciBiPXRsKCk7Yi5hY2Nlc3NlZEFueT0hMDtyZXR1cm4oemIoYSk/W2FdOmEpLmV2ZXJ5KGZ1bmN0aW9uKGMpe3N3aXRjaChiLmdldENvbnNlbnRTdGF0ZShjLEFsKSl7Y2FzZSAxOmNhc2UgMzpyZXR1cm4hMDtjYXNlIDI6Y2FzZSA0OnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fSl9CmZ1bmN0aW9uIENsKGEpe3ZhciBiPXRsKCk7Yi5hY2Nlc3NlZEFueT0hMDtyZXR1cm4gYi5nZXRDb25zZW50U3RhdGUoYSxBbCl9ZnVuY3Rpb24gRGwoYSl7dmFyIGI9dGwoKTtiLmFjY2Vzc2VkQW55PSEwO3JldHVybiEoYi5lbnRyaWVzW2FdfHx7fSkucXVpZXR9ZnVuY3Rpb24gRWwoKXtpZighWWYoNSkpcmV0dXJuITE7dmFyIGE9dGwoKTthLmFjY2Vzc2VkQW55PSEwO2lmKGEuYWN0aXZlKXJldHVybiEwO2lmKCFBbC51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHMpcmV0dXJuITE7Zm9yKHZhciBiPW0oT2JqZWN0LmtleXMoQWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHMpKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSlpZihBbC5jb250YWluZXJTY29wZWREZWZhdWx0c1tjLnZhbHVlXSE9PTEpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gRmwoYSxiKXt0bCgpLmFkZExpc3RlbmVyKGEsYil9CmZ1bmN0aW9uIEdsKGEsYil7dGwoKS5ub3RpZnlMaXN0ZW5lcnMoYSxiKX1mdW5jdGlvbiBIbChhLGIpe2lmKGIuZXZlcnkoRGwpKWEoe30pO2Vsc2V7dmFyIGM9ITE7RmwoYixmdW5jdGlvbihkKXshYyYmYi5ldmVyeShEbCkmJihjPSEwLGEoZCkpfSl9fQpmdW5jdGlvbiBJbChhLGIpe3ZhciBjPXpiKGIpP1tiXTpiLGQ9e30sZT1mdW5jdGlvbigpe3JldHVybiBjLmZpbHRlcihmdW5jdGlvbihoKXtyZXR1cm4gQmwoaCkmJiFkW2hdfSl9LGY9ZSgpO2lmKGYubGVuZ3RoIT09Yy5sZW5ndGgpe3ZhciBnPWZ1bmN0aW9uKGgpe2Zvcih2YXIgbD1tKGgpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKWRbbi52YWx1ZV09ITB9O2coZik7RmwoYyxmdW5jdGlvbihoKXtmdW5jdGlvbiBsKHEpe3EubGVuZ3RoIT09MCYmKGcocSksaC5jb25zZW50VHlwZXM9cSxhKGgpKX12YXIgbj1lKCk7aWYobi5sZW5ndGghPT0wKXt2YXIgcD1PYmplY3Qua2V5cyhkKS5sZW5ndGg7bi5sZW5ndGgrcD49Yy5sZW5ndGg/bChuKTpBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtsKGUoKSl9LDUwMCl9fSl9fTt2YXIgSmw9ITE7ZnVuY3Rpb24gS2woYSxiKXt2YXIgYz13aygpLGQ9dGsoKTtFKDI2KTt2YXIgZT1JZig0Nyk/MDpJZig1MCk/MTozLGY9WGooKTtpZihwbCgpKXt2YXIgZz1MbCgiSU5JVCIpO2cuY29udGFpbmVyTG9hZFNvdXJjZT1hIT1udWxsP2E6MDtiJiYoZy5wYXJlbnRUYXJnZXRSZWZlcmVuY2U9Yik7Zy5hbGlhc2VzPWM7Zy5kZXN0aW5hdGlvbnM9ZDtlIT09dm9pZCAwJiYoZy5ndGc9e3NvdXJjZTplLG1QYXRoOmYhPW51bGw/ZjoiIn0pO29sKGcpfX0KZnVuY3Rpb24gTWwoYSl7dmFyIGIsYyxkLGU7Yj1hLnRhcmdldElkO2M9YS5yZXF1ZXN0O2Q9YS5xYjtlPWEuaXNCYXRjaGVkO3ZhciBmO2lmKGY9cGwoKSl7dmFyIGc7YTpzd2l0Y2goYy5lbmRwb2ludCl7Y2FzZSA2ODpjYXNlIDY5OmNhc2UgMTk6Y2FzZSA2MjpjYXNlIDQ3Omc9ITA7YnJlYWsgYTtkZWZhdWx0Omc9ITF9Zj0hZ31pZihmKXt2YXIgaD1MbCgiR1RBR19ISVQiLHtldmVudElkOmQuZXZlbnRJZCxwcmlvcml0eUlkOmQucHJpb3JpdHlJZH0pO2gudGFyZ2V0PWI7aC51cmw9Yy51cmw7Yy5wb3N0Qm9keSYmKGgucG9zdEJvZHk9Yy5wb3N0Qm9keSk7aC5wYXJhbWV0ZXJFbmNvZGluZz1jLnBhcmFtZXRlckVuY29kaW5nO2guZW5kcG9pbnQ9Yy5lbmRwb2ludDtlIT09dm9pZCAwJiYoaC5pc0JhdGNoZWQ9ZSk7b2woaCl9fWZ1bmN0aW9uIE5sKGEpe3BsKCkmJk1sKGEoKSl9CmZ1bmN0aW9uIExsKGEsYil7Yj1iPT09dm9pZCAwP3t9OmI7Yi5ncm91cElkPU9sO3ZhciBjLGQ9YixlPVBsLGY9e3B1YmxpY0lkOlFsfTtkLmV2ZW50SWQhPW51bGwmJihmLmV2ZW50SWQ9ZC5ldmVudElkKTtkLnByaW9yaXR5SWQhPW51bGwmJihmLnByaW9yaXR5SWQ9ZC5wcmlvcml0eUlkKTtkLmV2ZW50TmFtZSYmKGYuZXZlbnROYW1lPWQuZXZlbnROYW1lKTtkLmdyb3VwSWQmJihmLmdyb3VwSWQ9ZC5ncm91cElkKTtkLnRhZ05hbWUmJihmLnRhZ05hbWU9ZC50YWdOYW1lKTtjPXtjb250YWluZXJQcm9kdWN0OiJHVE0iLGtleTpmLHZlcnNpb246ZSxtZXNzYWdlVHlwZTphfTtjLmNvbnRhaW5lclByb2R1Y3Q9Smw/Ik9HVCI6IkdUTSI7Yy5rZXkudGFyZ2V0UmVmPVJsO3JldHVybiBjfXZhciBRbD0iIixQbD0iIixSbD17Y3RpZDoiIixpc0Rlc3RpbmF0aW9uOiExfSxPbDsKZnVuY3Rpb24gU2woYSl7dmFyIGI9RSg1KSxjPUlmKDQ1KSxkPXNrKCksZT1FKDYpLGY9RSgxKTtFKDIzKTtrbD0wO2xsPSEwO3JsKCk7T2w9YTtRbD1iO1BsPWY7Smw9YztSbD17Y3RpZDpiLGlzRGVzdGluYXRpb246ZCxjYW5vbmljYWxJZDplfX07ZnVuY3Rpb24gVGwoYSxiLGMsZCl7aWYocGwoKSl7dmFyIGU9Yi5NO01sKHt0YXJnZXRJZDpkfHxbYi50YXJnZXQuZGVzdGluYXRpb25JZF0scmVxdWVzdDp7dXJsOmEscGFyYW1ldGVyRW5jb2Rpbmc6MixlbmRwb2ludDpjfSxxYjp7ZXZlbnRJZDplLmV2ZW50SWQscHJpb3JpdHlJZDplLnByaW9yaXR5SWR9LEZqOntldmVudElkOlEoYixILkoudWYpLHByaW9yaXR5SWQ6UShiLEguSi52Zil9fSl9fTtmdW5jdGlvbiBVbChhLGIsYyl7dmFyIGQ9Imh0dHBzOi8vIithK2I7cmV0dXJuIGM/ZnVuY3Rpb24oKXtyZXR1cm4gV2ooKT9YaigpK2MrYjpkfTpmdW5jdGlvbigpe3JldHVybiBkfX07dmFyIFZsPXt9LFdsPShWbFsyMl09VWwoInd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSIsIi9jY20vY29udmVyc2lvbiIsIi9hcy9kIiksVmxbNjBdPVVsKCJwYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIsIi9jY20vY29udmVyc2lvbiIsIi9ncyIpLFZsWzIzXT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvY2NtL2NvbnZlcnNpb24iLCIvZy9kIiksVmwpO3ZhciBYbD17fSxZbD0oWGxbNV09VWwoInd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSIsIi9wYWdlYWQvY29udmVyc2lvbiIpLFhsWzZdPVVsKCJwYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIsIi9wYWdlYWQvY29udmVyc2lvbiIsIi9ncyIpLFhsWzhdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvMXAtY29udmVyc2lvbiIpLFhsWzY2XT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcGFnZWFkL3Vjb252ZXJzaW9uIiksWGxbNjNdPVVsKCJ3d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iLCIvcGFnZWFkL2NvbnZlcnNpb24iKSxYbFs2NF09VWwoInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIiwiL3BhZ2VhZC9jb252ZXJzaW9uIiwiL2dzIiksWGxbNjVdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvMXAtY29udmVyc2lvbiIpLFhsWzc0XT1mdW5jdGlvbigpe3JldHVybiBYaigpKyIvYXMvcC9jIn0sWGwpO3ZhciBabD17fSwkbD0oWmxbNDVdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9jY20vY29sbGVjdCIpLFpsWzQ2XT1VbCgicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvY2NtL2NvbGxlY3QiLCIvZ3MiKSxabFs2OV09VWwoImFkLmRvdWJsZWNsaWNrLm5ldCIsIi9jY20vcy9jb2xsZWN0IiksWmxbNThdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvc2V0X3BhcnRpdGlvbmVkX2Nvb2tpZSIpLFpsWzU3XT1VbCgid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIiwiL3BhZ2VhZC9zZXRfcGFydGl0aW9uZWRfY29va2llIiksWmwpO3ZhciBhbT17fSxibT0oYW1bOV09VWwoImdvb2dsZWFkcy5nLmRvdWJsZWNsaWNrLm5ldCIsIi9wYWdlYWQvdmlld3Rocm91Z2hjb252ZXJzaW9uIiksYW1bNjhdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9ybWt0L2NvbGxlY3QiKSxhbSk7dmFyIGNtPXt9LGRtPShjbVsxMV09VWwoInd3dy5nb29nbGUuY29tIiwiL3BhZ2VhZC9mb3JtLWRhdGEiLCIvZCIpLGNtWzIxXT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvY2NtL2Zvcm0tZGF0YSIsIi9kIiksY21bNzJdPVVsKCJnb29nbGUuY29tIiwiL3BhZ2VhZC9mb3JtLWRhdGEiLCIvZCIpLGNtWzczXT1VbCgiZ29vZ2xlLmNvbSIsIi9jY20vZm9ybS1kYXRhIiwiL2QiKSxjbSk7dmFyIGVtPXt9LGZtPShlbVs1MV09VWwoInd3dy5nb29nbGUuY29tIiwiL3RyYXZlbC9mbGlnaHRzL2NsaWNrL2NvbnZlcnNpb24iKSxlbSk7dmFyIGdtPXt9LGhtPShnbVsxXT1mdW5jdGlvbigpe3JldHVybiJodHRwczovL2FkLmRvdWJsZWNsaWNrLm5ldC9hY3Rpdml0eTsifSxnbVsyXT1mdW5jdGlvbigpe3JldHVybihXaigpP1hqKCk6Imh0dHBzOi8vYWRlLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIpKyIvZGRtL2FjdGl2aXR5IisoTSg0NjcpPyI7IjoiLyIpfSxnbVszXT1mdW5jdGlvbihhKXtyZXR1cm4iaHR0cHM6Ly8iK2EubHIrIi5mbHMuZG91YmxlY2xpY2submV0L2FjdGl2aXR5aTsifSxnbSk7ZnVuY3Rpb24gaW0oYSl7c2IoIkhFQUxUSCIsYSl9O3ZhciBqbT17YmE6e1B0OiJhd191c2VyX2RhdGFfY2FjaGUiLG9pOiJjb29raWVfZGVwcmVjYXRpb25fbGFiZWwiLGJoOiJkaWFnbm9zdGljc19wYWdlX2lkIixvcDoiZW1lbW8iLGR1OiJlbV9yZWdpc3RyeSIsU2k6ImVhYiIscnU6ImZsX3VzZXJfZGF0YV9jYWNoZSIsdHU6ImdhNF91c2VyX2RhdGFfY2FjaGUiLEx1OiJpZGNfcHZfY2xhaW0iLFNlOiJpcF9nZW9fZGF0YV9jYWNoZSIsWGk6ImlwX2dlb19mZXRjaF9pbl9wcm9ncmVzcyIsam46Im5iX2RhdGEiLFRxOiJwYWdlX2V4cGVyaW1lbnRfaWRzIixsbjoicGxkIixWZToicHRfZGF0YSIsbW46InB0X2xpc3RlbmVyX3NldCIsa2o6InJldHJ5X2NvbnRhaW5lcnMiLE9oOiJzZXJ2aWNlX3dvcmtlcl9lbmRwb2ludCIsWnE6InNoYXJlZF91c2VyX2lkIixhcjoic2hhcmVkX3VzZXJfaWRfcmVxdWVzdGVkIixzajoic2hhcmVkX3VzZXJfaWRfc291cmNlIixidjoiYXdoIixocjoidW5pdmVyc2FsX2NsYWltX3JlZ2lzdHJ5In19O3ZhciBrbT1mdW5jdGlvbihhKXtyZXR1cm4gdGYoZnVuY3Rpb24oYil7Zm9yKHZhciBjIGluIGEpaWYoYj09PWFbY10mJiEvXlswLTldKyQvLnRlc3QoYykpcmV0dXJuITA7cmV0dXJuITF9KX0oam0uYmEpOwpmdW5jdGlvbiBsbShhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO2lmKGttKGEpKXt2YXIgYyxkLGU9KGQ9KGM9TWMoImdvb2dsZV90YWdfZGF0YSIse30pKS54Y2QpIT1udWxsP2Q6Yy54Y2Q9e307aWYoZVthXSlyZXR1cm4gZVthXTtpZihiKXt2YXIgZj12b2lkIDAsZz0xLGg9e30sbD17c2V0OmZ1bmN0aW9uKG4pe2Y9bjtsLm5vdGlmeSgpfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sc3Vic2NyaWJlOmZ1bmN0aW9uKG4pe2hbU3RyaW5nKGcpXT1uO3JldHVybiBnKyt9LHVuc3Vic2NyaWJlOmZ1bmN0aW9uKG4pe3ZhciBwPVN0cmluZyhuKTtyZXR1cm4gaC5oYXNPd25Qcm9wZXJ0eShwKT8oZGVsZXRlIGhbcF0sITApOiExfSxub3RpZnk6ZnVuY3Rpb24oKXtmb3IodmFyIG49bShPYmplY3Qua2V5cyhoKSkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPXAudmFsdWU7dHJ5e2hbcV0oYSxmKX1jYXRjaChyKXt9fX19O3JldHVybiBlW2FdPWx9fX0KZnVuY3Rpb24gbW0oYSxiKXt2YXIgYz1sbShhLCEwKTtjJiZjLnNldChiKX1mdW5jdGlvbiBubShhKXt2YXIgYjtyZXR1cm4oYj1sbShhKSk9PW51bGw/dm9pZCAwOmIuZ2V0KCl9ZnVuY3Rpb24gb20oYSxiKXt2YXIgYz1sbShhKTtpZighYyl7Yz1sbShhLCEwKTtpZighYylyZXR1cm47Yy5zZXQoYil9cmV0dXJuIGMuZ2V0KCl9ZnVuY3Rpb24gcG0oYSxiKXtpZih0eXBlb2YgYj09PSJmdW5jdGlvbiIpe3ZhciBjO3JldHVybihjPWxtKGEsITApKT09bnVsbD92b2lkIDA6Yy5zdWJzY3JpYmUoYil9fWZ1bmN0aW9uIHFtKGEsYil7dmFyIGM9bG0oYSk7cmV0dXJuIGM/Yy51bnN1YnNjcmliZShiKTohMX07dmFyIHNtPWZ1bmN0aW9uKCl7dGhpcy5IPXt9O3RoaXMuSz0hMX07c20ucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt0aGlzLkt8fCh0aGlzLkg9dG0oKSx0aGlzLkhbIjAiXSYmb20oam0uYmEuU2UsSlNPTi5zdHJpbmdpZnkodGhpcy5IKSkpfTsKdmFyIHhtPWZ1bmN0aW9uKCl7dmFyIGE9dW0sYj12bSxjPXZvaWQgMCxkPWZ1bmN0aW9uKCl7YyE9PXZvaWQgMCYmcW0oam0uYmEuU2UsYyk7dHJ5e3ZhciBmPW5tKGptLmJhLlNlKTtiLkg9SlNPTi5wYXJzZShmKX1jYXRjaChnKXtQKDEyMyksaW0oMiksYi5IPXt9fWIuSz0hMDthKCl9LGU9bm0oam0uYmEuU2UpO2U/ZChlKTooYz1wbShqbS5iYS5TZSxkKSx3bSgpKX0sd209ZnVuY3Rpb24oKXtpZighbm0oam0uYmEuWGkpKXttbShqbS5iYS5YaSwhMCk7dmFyIGE9ZnVuY3Rpb24oYil7bW0oam0uYmEuU2UsYnx8Int9Iik7bW0oam0uYmEuWGksITEpfTt0cnl7QS5mZXRjaCgiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9jY20vZ2VvIix7bWV0aG9kOiJHRVQiLGNhY2hlOiJuby1zdG9yZSIsbW9kZToiY29ycyIsY3JlZGVudGlhbHM6Im9taXQifSkudGhlbihmdW5jdGlvbihiKXtiLm9rP2IudGV4dCgpLnRoZW4oZnVuY3Rpb24oYyl7YShjKX0sZnVuY3Rpb24oKXthKCl9KTphKCl9LGZ1bmN0aW9uKCl7YSgpfSl9Y2F0Y2goYil7YSgpfX19LAp0bT1mdW5jdGlvbigpe3ZhciBhPUUoMjIpO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShxYihhKSl9Y2F0Y2goYil7cmV0dXJuIFAoMTIzKSxpbSgyKSx7fX19LHltPWZ1bmN0aW9uKCl7cmV0dXJuIHZtLkhbIjAiXXx8IiJ9LHptPWZ1bmN0aW9uKCl7cmV0dXJuIHZtLkhbIjEiXXx8IiJ9LEFtPWZ1bmN0aW9uKCl7dmFyIGE9dm0sYj0hMTtiPSEhYS5IWyIyIl07cmV0dXJuIGJ9LEJtPWZ1bmN0aW9uKCl7cmV0dXJuIHZtLkhbIjYiXSE9PSExfSxDbT1mdW5jdGlvbigpe3ZhciBhPXZtLGI9ITE7Yj0hIWEuSFsiOSJdO3JldHVybiBifSxEbT1mdW5jdGlvbigpe3ZhciBhPXZtLGI9IiI7Yj1hLkhbIjQiXXx8IiI7CnJldHVybiBifSxFbT1mdW5jdGlvbigpe3ZhciBhPXZtLGI9IiI7Yj1hLkhbIjMiXXx8IiI7cmV0dXJuIGJ9LHZtPW5ldyBzbTtmdW5jdGlvbiBGbShhKXthPWE9PT12b2lkIDA/ImcvY29sbGVjdCI6YTtyZXR1cm4iaHR0cHM6Ly8iKyhEbSgpfHwid3d3IikrIi5nb29nbGUtYW5hbHl0aWNzLmNvbS8iK2F9ZnVuY3Rpb24gR20oYSl7YT1hPT09dm9pZCAwPyJnL2NvbGxlY3QiOmE7dmFyIGI9RG0oKTtyZXR1cm4iaHR0cHM6Ly8iKyhiP2IrIi4iOiIiKSsiYW5hbHl0aWNzLmdvb2dsZS5jb20vIithfXZhciBIbT17fSxJbT0oSG1bMTddPWZ1bmN0aW9uKCl7cmV0dXJuIFdqKCkmJiFEbSgpP1hqKCkrIi9hZy9nL2MiOkdtKCl9LEhtWzE2XT1mdW5jdGlvbigpe3JldHVybiBXaigpJiYhRG0oKT9YaigpKyIvZ2EvZy9jIjpGbSgpfSxIbVs2N109ZnVuY3Rpb24oKXt2YXIgYTthPWE9PT12b2lkIDA/ImcvY29sbGVjdCI6YTtyZXR1cm4gRG0oKT8iIjoiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS8iK2F9LEhtKTtmdW5jdGlvbiBKbShhLGIsYyl7dmFyIGQ9VWwoYiwiL21lYXN1cmVtZW50L2NvbnZlcnNpb24iLGMpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBEbSgpP2EoIm1lYXN1cmVtZW50L2NvbnZlcnNpb24iKTpkKCl9fXZhciBLbT17fSxMbT0oS21bNTVdPUptKEZtLCJwYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIsIi9ncyIpLEttWzU0XT1KbShHbSwid3d3Lmdvb2dsZS5jb20iLCIvZyIpLEttKTt2YXIgTW09bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxXbCxZbCwkbCxibSxkbSxmbSxobSxMbSxJbSk7ZnVuY3Rpb24gTm0oYSxiKXt2YXIgYz1PYmplY3Qua2V5cyhiKS5maWx0ZXIoZnVuY3Rpb24oZCl7cmV0dXJuIGJbZF0hPW51bGx9KS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQrIj0iK2JbZF19KS5qb2luKCImIik7cmV0dXJuIE1tW2FdKHZvaWQgMCkrIj8iK2N9O3ZhciBPbT17fSxQbT0oT20udGRwPTEsT20uZXhwPTEsT20uZ3RtPTEsT20ucGlkPTEsT20uZGw9MSxPbS5zZXE9MSxPbS50PTEsT20udj0xLE9tKSxSbT1mdW5jdGlvbigpe3ZhciBhPVFtO3JldHVybiBPYmplY3Qua2V5cyhhLkgpLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gYS5IW2JdfSl9LFNtPWZ1bmN0aW9uKGEsYixjKXtpZihhLkhbYl09PT12b2lkIDB8fChjPT09dm9pZCAwPzA6YykpYS5IW2JdPSEwfSxUbT1mdW5jdGlvbihhKXthLmZvckVhY2goZnVuY3Rpb24oYil7UG1bYl18fChRbS5IW2JdPSExKX0pfSxRbT1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9e307dGhpcy5LPXt9fTtmdW5jdGlvbiBVbShhLGIsYyl7dmFyIGQ9Yz09PXZvaWQgMD8hMDpjLGU9UW07ZS5LW2FdPWI7KGQ9PT12b2lkIDB8fGQpJiZTbShlLGEpfWZ1bmN0aW9uIFZtKGEsYil7U20oUW0sYSxiPT09dm9pZCAwPyExOmIpfTtmdW5jdGlvbiBXbShhKXt2YXIgYj0wO2EuR2MuZm9yRWFjaChmdW5jdGlvbihjKXtifD0xPDxjfSk7cmV0dXJuIGJ9ZnVuY3Rpb24gWG0oKXtyZXR1cm57dG90YWw6MCxqYjowLEdjOm5ldyBTZXQsbGY6e319fWZ1bmN0aW9uIFltKGEsYixjLGQpe3ZhciBlPU9iamVjdC5rZXlzKGEubmYpLnNvcnQoZnVuY3Rpb24oZixnKXtyZXR1cm4gTnVtYmVyKGYpLU51bWJlcihnKX0pLm1hcChmdW5jdGlvbihmKXtyZXR1cm5bZixiKGEubmZbZl0pXX0pLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gZlsxXSE9PXZvaWQgMH0pLm1hcChmdW5jdGlvbihmKXtyZXR1cm4gZi5qb2luKGMpfSkuam9pbihkKTtyZXR1cm4gZT9lOnZvaWQgMH0KZnVuY3Rpb24gWm0oYSxiKXt2YXIgYyxkLGU7Yz1jPT09dm9pZCAwPyJfIjpjO2Q9ZD09PXZvaWQgMD8iOyI6ZDtlPWU9PT12b2lkIDA/In4iOmU7Zm9yKHZhciBmPVtdLGc9bShPYmplY3Qua2V5cyhhLmxmKS5zb3J0KCkpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlLG49WW0oYS5sZltsXSxiLGMsZCk7aWYobil7dmFyIHA9dm9pZCAwO2YucHVzaCgiIisoKHA9bCkhPW51bGw/cDoiIikrZCtuKX19cmV0dXJuIGYubGVuZ3RoP2Yuam9pbihlKTp2b2lkIDB9CmZ1bmN0aW9uICRtKGEpe2EuamI9MDthLkdjLmNsZWFyKCk7Zm9yKHZhciBiPW0oT2JqZWN0LmtleXMoYS5sZikpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXt2YXIgZD1hLmxmW2MudmFsdWVdO2QuamI9MDtkLkdjLmNsZWFyKCk7Zm9yKHZhciBlPW0oT2JqZWN0LmtleXMoZC5uZikpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1kLm5mW2YudmFsdWVdO2cuamI9MDtnLkdjLmNsZWFyKCl9fX0KZnVuY3Rpb24gYW4oYSxiLGMsZCxlKXtkPWQ9PT12b2lkIDA/MTpkO2EudG90YWwrPWQ7YS5qYis9ZDt2YXIgZixnPWI9PT12b2lkIDA/IiI6YjtmPWEubGZbZ118fChhLmxmW2ddPXt0b3RhbDowLGpiOjAsR2M6bmV3IFNldCxuZjp7fX0pO2YudG90YWwrPWQ7Zi5qYis9ZDt2YXIgaCxsPVN0cmluZyhjKTtoPWYubmZbbF18fChmLm5mW2xdPXt0b3RhbDowLGpiOjAsR2M6bmV3IFNldH0pO2gudG90YWwrPWQ7aC5qYis9ZDtlIT09dm9pZCAwJiYoYS5HYy5hZGQoZSksZi5HYy5hZGQoZSksaC5HYy5hZGQoZSkpfTt2YXIgYm49ZnVuY3Rpb24oKXt0aGlzLkg9WG0oKX07Ym4ucHJvdG90eXBlLmluY3JlbWVudD1mdW5jdGlvbihhLGIpe2FuKHRoaXMuSCxhLGIpfTt2YXIgY249bmV3IGJuO2Z1bmN0aW9uIGRuKGEpe3ZhciBiPVN0cmluZyhhW0dmLlliXXx8IiIpLnJlcGxhY2UoL18vZywiIik7cmV0dXJuIFNiKGIsImN2dCIpPyJjdnQiOmJ9dmFyIGVuPUEubG9jYXRpb24uc2VhcmNoLmluZGV4T2YoIj9ndG1fbGF0ZW5jeT0iKT49MHx8QS5sb2NhdGlvbi5zZWFyY2guaW5kZXhPZigiJmd0bV9sYXRlbmN5PSIpPj0wO3ZhciBnbj1mdW5jdGlvbigpe3ZhciBhPWZuO3JldHVybiBNKDYwMykmJklmKDY1LCExKSYmIWEuWn0sZm49bmV3IGZ1bmN0aW9uKGEpe3RoaXMuUj1hKCk7dmFyIGI9SmYoMjcpO3RoaXMuTj1lbnx8dGhpcy5SPGI7dmFyIGM9SmYoNDIpO3RoaXMuWj1lbnx8dGhpcy5SPj0xLWM7dmFyIGQ9TSg2MDMpJiZJZig2NSwhMSk7dGhpcy5LPXRoaXMuWnx8ZDt2YXIgZT1KZigyNyksZj1KZig2Myk7dGhpcy5IPWVufHxmPT09MXx8dGhpcy5SPj1lJiZ0aGlzLlI8ZStmfShmdW5jdGlvbigpe3JldHVybiBNYXRoLnJhbmRvbSgpfSk7dmFyIGhuPWZ1bmN0aW9uKCl7dGhpcy5IPXt9fTtobi5wcm90b3R5cGUucmVnaXN0ZXI9ZnVuY3Rpb24oYSxiLGMpe2lmKGZuLkspe3ZhciBkPWpuKGIsYyk7aWYoZCl7dmFyIGUsZj1iO2Y9PT00JiYoZj01KTt2YXIgZz10aGlzLkhbZl07Z3x8KGc9dGhpcy5IW2ZdPXt9KTtlPWc7dmFyIGg9ZVtkXTtofHwoaD1lW2RdPVtdKTtoLnB1c2gobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxhKSk7Y24uaW5jcmVtZW50KGEuZGVzdGluYXRpb25JZCxhLmVuZHBvaW50KTthLmVuZHBvaW50IT09NTYmJmEuZW5kcG9pbnQhPT02MSYmVm0oIm1kZSIsITApfX19Owp2YXIgbW49ZnVuY3Rpb24oYSxiKXt2YXIgYz1rbixkPWpuKGEsYik7aWYoZCl7dmFyIGU9bG4oYyxhKTtpZihlKXt2YXIgZj1lW2RdO2YmJihlW2RdPWYuZmlsdGVyKGZ1bmN0aW9uKGcpe3JldHVybiFnLkVvfSkpfX19LGxuPWZ1bmN0aW9uKGEsYil7Yj09PTQmJihiPTUpO3JldHVybiBhLkhbYl19LGpuPWZ1bmN0aW9uKGEsYil7dmFyIGM9YjtpZihiWzBdPT09Ii8iKXt2YXIgZDtjPSgoZD1BLmxvY2F0aW9uKT09bnVsbD92b2lkIDA6ZC5vcmlnaW4pK2J9dHJ5e3ZhciBlPW5ldyBVUkwoYyk7cmV0dXJuIGE9PT0yP2Uub3JpZ2luOmUub3JpZ2luK2UucGF0aG5hbWV9Y2F0Y2goZil7fX0sa249bmV3IGhuOwpmdW5jdGlvbiBubihhKXtzd2l0Y2goYSl7Y2FzZSAic2NyaXB0LXNyYyI6cmV0dXJuIDQ7Y2FzZSAic2NyaXB0LXNyYy1lbGVtIjpyZXR1cm4gNTtjYXNlICJmcmFtZS1zcmMiOnJldHVybiAyO2Nhc2UgImNvbm5lY3Qtc3JjIjpyZXR1cm4gMTtjYXNlICJpbWctc3JjIjpyZXR1cm4gM319O2Z1bmN0aW9uIG9uKGEsYixjKXt2YXIgZCxlPWEuR29vZ2xlYlFoQ3NPO2V8fChlPXt9LGEuR29vZ2xlYlFoQ3NPPWUpO2Q9ZTtpZihkW2JdKXJldHVybiExO2RbYl09W107ZFtiXVswXT1jO3JldHVybiEwfTt2YXIgcG4scW47YTp7Zm9yKHZhciBybj1bIkNMT1NVUkVfRkxBR1MiXSxzbj1SYSx0bj0wO3RuPHJuLmxlbmd0aDt0bisrKWlmKHNuPXNuW3JuW3RuXV0sc249PW51bGwpe3FuPW51bGw7YnJlYWsgYX1xbj1zbn12YXIgdW49cW4mJnFuWzYxMDQwMTMwMV07cG49dW4hPW51bGw/dW46ITE7ZnVuY3Rpb24gdm4oKXt2YXIgYT1SYS5uYXZpZ2F0b3I7aWYoYSl7dmFyIGI9YS51c2VyQWdlbnQ7aWYoYilyZXR1cm4gYn1yZXR1cm4iIn12YXIgd24seG49UmEubmF2aWdhdG9yO3duPXhuP3huLnVzZXJBZ2VudERhdGF8fG51bGw6bnVsbDtmdW5jdGlvbiB5bihhKXtpZighcG58fCF3bilyZXR1cm4hMTtmb3IodmFyIGI9MDtiPHduLmJyYW5kcy5sZW5ndGg7YisrKXt2YXIgYz13bi5icmFuZHNbYl0uYnJhbmQ7aWYoYyYmYy5pbmRleE9mKGEpIT0tMSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiB6bihhKXtyZXR1cm4gdm4oKS5pbmRleE9mKGEpIT0tMX07ZnVuY3Rpb24gQW4oKXtyZXR1cm4gcG4/ISF3biYmd24uYnJhbmRzLmxlbmd0aD4wOiExfWZ1bmN0aW9uIEJuKCl7cmV0dXJuIEFuKCk/ITE6em4oIk9wZXJhIil9ZnVuY3Rpb24gQ24oKXtyZXR1cm4gem4oIkZpcmVmb3giKXx8em4oIkZ4aU9TIil9ZnVuY3Rpb24gRG4oKXtyZXR1cm4gQW4oKT95bigiQ2hyb21pdW0iKTooem4oIkNocm9tZSIpfHx6bigiQ3JpT1MiKSkmJiEoQW4oKT8wOnpuKCJFZGdlIikpfHx6bigiU2lsayIpfTtmdW5jdGlvbiBFbigpe3JldHVybiBwbj8hIXduJiYhIXduLnBsYXRmb3JtOiExfWZ1bmN0aW9uIEZuKCl7cmV0dXJuIHpuKCJpUGhvbmUiKSYmIXpuKCJpUG9kIikmJiF6bigiaVBhZCIpfWZ1bmN0aW9uIEduKCl7Rm4oKXx8em4oImlQYWQiKXx8em4oImlQb2QiKX07dmFyIEhuPWZ1bmN0aW9uKGEpe0huWyIgIl0oYSk7cmV0dXJuIGF9O0huWyIgIl09ZnVuY3Rpb24oKXt9O0JuKCk7QW4oKXx8em4oIlRyaWRlbnQiKXx8em4oIk1TSUUiKTt6bigiRWRnZSIpOyF6bigiR2Vja28iKXx8dm4oKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIndlYmtpdCIpIT0tMSYmIXpuKCJFZGdlIil8fHpuKCJUcmlkZW50Iil8fHpuKCJNU0lFIil8fHpuKCJFZGdlIik7dm4oKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIndlYmtpdCIpIT0tMSYmIXpuKCJFZGdlIikmJnpuKCJNb2JpbGUiKTtFbigpfHx6bigiTWFjaW50b3NoIik7RW4oKXx8em4oIldpbmRvd3MiKTsoRW4oKT93bi5wbGF0Zm9ybT09PSJMaW51eCI6em4oIkxpbnV4IikpfHxFbigpfHx6bigiQ3JPUyIpO0VuKCl8fHpuKCJBbmRyb2lkIik7Rm4oKTt6bigiaVBhZCIpO3puKCJpUG9kIik7R24oKTt2bigpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigia2Fpb3MiKTtDbigpO0ZuKCl8fHpuKCJpUG9kIik7em4oImlQYWQiKTshem4oIkFuZHJvaWQiKXx8RG4oKXx8Q24oKXx8Qm4oKXx8em4oIlNpbGsiKTtEbigpOyF6bigiU2FmYXJpIil8fERuKCl8fChBbigpPzA6em4oIkNvYXN0IikpfHxCbigpfHwoQW4oKT8wOnpuKCJFZGdlIikpfHwoQW4oKT95bigiTWljcm9zb2Z0IEVkZ2UiKTp6bigiRWRnLyIpKXx8KEFuKCk/eW4oIk9wZXJhIik6em4oIk9QUiIpKXx8Q24oKXx8em4oIlNpbGsiKXx8em4oIkFuZHJvaWQiKXx8R24oKTt2YXIgSW49e30sSm49bnVsbDsKZnVuY3Rpb24gS24oYSl7Zm9yKHZhciBiPVtdLGM9MCxkPTA7ZDxhLmxlbmd0aDtkKyspe3ZhciBlPWEuY2hhckNvZGVBdChkKTtlPjI1NSYmKGJbYysrXT1lJjI1NSxlPj49OCk7YltjKytdPWV9dmFyIGY9NDtmPT09dm9pZCAwJiYoZj0wKTtpZighSm4pe0puPXt9O2Zvcih2YXIgZz0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiLnNwbGl0KCIiKSxoPVsiKy89IiwiKy8iLCItXz0iLCItXy4iLCItXyJdLGw9MDtsPDU7bCsrKXt2YXIgbj1nLmNvbmNhdChoW2xdLnNwbGl0KCIiKSk7SW5bbF09bjtmb3IodmFyIHA9MDtwPG4ubGVuZ3RoO3ArKyl7dmFyIHE9bltwXTtKbltxXT09PXZvaWQgMCYmKEpuW3FdPXApfX19Zm9yKHZhciByPUluW2ZdLHQ9QXJyYXkoTWF0aC5mbG9vcihiLmxlbmd0aC8zKSksdT1yWzY0XXx8IiIsdj0wLHg9MDt2PGIubGVuZ3RoLTI7dis9Myl7dmFyIHk9Ylt2XSx6PWJbdisxXSxDPWJbdisyXSwKRD1yW3k+PjJdLEk9clsoeSYzKTw8NHx6Pj40XSxHPXJbKHomMTUpPDwyfEM+PjZdLE49cltDJjYzXTt0W3grK109IiIrRCtJK0crTn12YXIgUz0wLFc9dTtzd2l0Y2goYi5sZW5ndGgtdil7Y2FzZSAyOlM9Ylt2KzFdLFc9clsoUyYxNSk8PDJdfHx1O2Nhc2UgMTp2YXIgZWE9Ylt2XTt0W3hdPSIiK3JbZWE+PjJdK3JbKGVhJjMpPDw0fFM+PjRdK1crdX1yZXR1cm4gdC5qb2luKCIiKX07dmFyIExuPWZ1bmN0aW9uKGEpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoYS5yZXBsYWNlKC9cKy9nLCIgIikpfTt2YXIgTW49UmVnRXhwKCJeKD86KFteOi8/Iy5dKyk6KT8oPzovLyg/OihbXlxcXFwvPyNdKilAKT8oW15cXFxcLz8jXSo/KSg/OjooWzAtOV0rKSk/KD89W1xcXFwvPyNdfCQpKT8oW14/I10rKT8oPzpcXD8oW14jXSopKT8oPzojKFtcXHNcXFNdKikpPyQiKTtmdW5jdGlvbiBObihhLGIsYyxkKXtmb3IodmFyIGU9YixmPWMubGVuZ3RoOyhlPWEuaW5kZXhPZihjLGUpKT49MCYmZTxkOyl7dmFyIGc9YS5jaGFyQ29kZUF0KGUtMSk7aWYoZz09Mzh8fGc9PTYzKXt2YXIgaD1hLmNoYXJDb2RlQXQoZStmKTtpZighaHx8aD09NjF8fGg9PTM4fHxoPT0zNSlyZXR1cm4gZX1lKz1mKzF9cmV0dXJuLTF9dmFyIE9uPS8jfCQvOwpmdW5jdGlvbiBQbihhLGIpe3ZhciBjPWEuc2VhcmNoKE9uKSxkPU5uKGEsMCxiLGMpO2lmKGQ8MClyZXR1cm4gbnVsbDt2YXIgZT1hLmluZGV4T2YoIiYiLGQpO2lmKGU8MHx8ZT5jKWU9YztkKz1iLmxlbmd0aCsxO3JldHVybiBMbihhLnNsaWNlKGQsZSE9PS0xP2U6MCkpfXZhciBRbj0vWz8mXSgkfCMpLzsKZnVuY3Rpb24gUm4oYSxiLGMpe2Zvcih2YXIgZCxlPWEuc2VhcmNoKE9uKSxmPTAsZyxoPVtdOyhnPU5uKGEsZixiLGUpKT49MDspaC5wdXNoKGEuc3Vic3RyaW5nKGYsZykpLGY9TWF0aC5taW4oYS5pbmRleE9mKCImIixnKSsxfHxlLGUpO2gucHVzaChhLnNsaWNlKGYpKTtkPWguam9pbigiIikucmVwbGFjZShRbiwiJDEiKTt2YXIgbCxuPWMhPW51bGw/Ij0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYykpOiIiO3ZhciBwPWIrbjtpZihwKXt2YXIgcSxyPWQuaW5kZXhPZigiIyIpO3I8MCYmKHI9ZC5sZW5ndGgpO3ZhciB0PWQuaW5kZXhPZigiPyIpLHU7dDwwfHx0PnI/KHQ9cix1PSIiKTp1PWQuc3Vic3RyaW5nKHQrMSxyKTtxPVtkLnNsaWNlKDAsdCksdSxkLnNsaWNlKHIpXTt2YXIgdj1xWzFdO3FbMV09cD92P3YrIiYiK3A6cDp2O2w9cVswXSsocVsxXT8iPyIrcVsxXToiIikrcVsyXX1lbHNlIGw9ZDtyZXR1cm4gbH07ZnVuY3Rpb24gU24oYSxiLGMsZCxlLGYsZyxoKXt2YXIgbD1QbihjLCJmbXQiKTtpZihkKXt2YXIgbj1QbihjLCJyYW5kb20iKSxwPVBuKGMsImxhYmVsIil8fCIiO2lmKCFuKXJldHVybjt2YXIgcT1LbihMbihwKSsiOiIrTG4obikpO2lmKCFvbihhLHEsZCkpcmV0dXJufWwmJk51bWJlcihsKSE9PTQ/KGM9Um4oYywicmZtdCIsbCksYz1SbihjLCJmbXQiLDQpKTpsfHwoYz1SbihjLCJmbXQiLDQpKTtVYyhjLGZ1bmN0aW9uKCl7Zz09bnVsbHx8VG4oZyk7aD09bnVsbHx8VW4oaCxjKTthLmdvb2dsZV9ub0Z1cnRoZXJSZWRpcmVjdHMmJmQmJihhLmdvb2dsZV9ub0Z1cnRoZXJSZWRpcmVjdHM9bnVsbCxkKCkpfSxmdW5jdGlvbigpe2c9PW51bGx8fFRuKGcpO2g9PW51bGx8fFVuKGgsYyk7ZT09bnVsbHx8ZSgpfSxmLGIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdLnBhcmVudEVsZW1lbnR8fHZvaWQgMCk7cmV0dXJuIGN9O2Z1bmN0aW9uIFZuKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtrbi5yZWdpc3RlcihhLDEsYlswXSk7aWQuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBXbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSwxLGJbMF0pO3JldHVybiBqZC5hcHBseShudWxsLHcoYikpfWZ1bmN0aW9uIFhuKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtrbi5yZWdpc3RlcihhLDMsYlswXSk7WmMuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBZbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSwxLGJbMF0pO3JldHVybiBtZC5hcHBseShudWxsLHcoYikpfWZ1bmN0aW9uIFpuKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtrbi5yZWdpc3RlcihhLDUsYlswXSk7VWMuYXBwbHkobnVsbCx3KGIpKX0KZnVuY3Rpb24gJG4oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2JbMF0mJmtuLnJlZ2lzdGVyKGEsMixiWzBdKTtYYy5hcHBseShudWxsLHcoYikpfWZ1bmN0aW9uIGFvKGEpe3ZhciBiPVNuLmFwcGx5KG51bGwsdyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKTtiJiZrbi5yZWdpc3RlcihhLDQsYik7cmV0dXJuIGJ9O3ZhciBibz17TWE6e1JlOjAsVWU6MSxMaDoyfX07Ym8uTWFbYm8uTWEuUmVdPSJGVUxMX1RSQU5TTUlTU0lPTiI7Ym8uTWFbYm8uTWEuVWVdPSJMSU1JVEVEX1RSQU5TTUlTU0lPTiI7Ym8uTWFbYm8uTWEuTGhdPSJOT19UUkFOU01JU1NJT04iO3ZhciBjbz17aWE6e2dkOjAsY2I6MSx4ZDoyLFpiOjN9fTtjby5pYVtjby5pYS5nZF09Ik5PX1FVRVVFIjtjby5pYVtjby5pYS5jYl09IkFEUyI7Y28uaWFbY28uaWEueGRdPSJBTkFMWVRJQ1MiO2NvLmlhW2NvLmlhLlpiXT0iTU9OSVRPUklORyI7dmFyIGVvPWZ1bmN0aW9uKGEsYil7dGhpcy5IPWE7dGhpcy5jb25zZW50VHlwZXM9Yn07ZW8ucHJvdG90eXBlLmlzQ29uc2VudEdyYW50ZWQ9ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5IKXtjYXNlIDA6cmV0dXJuIHRoaXMuY29uc2VudFR5cGVzLmV2ZXJ5KGZ1bmN0aW9uKGEpe3JldHVybiBCbChhKX0pO2Nhc2UgMTpyZXR1cm4gdGhpcy5jb25zZW50VHlwZXMuc29tZShmdW5jdGlvbihhKXtyZXR1cm4gQmwoYSl9KTtkZWZhdWx0OnljKHRoaXMuSCwiY29uc2VudHNSZXF1aXJlZCBoYWQgYW4gdW5rbm93biB0eXBlIil9fTsKdmFyIGZvPW5ldyBmdW5jdGlvbigpe3ZhciBhPXt9O3RoaXMuSD0oYVtjby5pYS5nZF09Ym8uTWEuUmUsYVtjby5pYS5jYl09Ym8uTWEuUmUsYVtjby5pYS54ZF09Ym8uTWEuUmUsYVtjby5pYS5aYl09Ym8uTWEuUmUsYSk7dmFyIGI9e307dGhpcy5LPShiW2NvLmlhLmdkXT1uZXcgZW8oMCxbXSksYltjby5pYS5jYl09bmV3IGVvKDAsWyJhZF9zdG9yYWdlIl0pLGJbY28uaWEueGRdPW5ldyBlbygwLFsiYW5hbHl0aWNzX3N0b3JhZ2UiXSksYltjby5pYS5aYl09bmV3IGVvKDEsWyJhZF9zdG9yYWdlIiwiYW5hbHl0aWNzX3N0b3JhZ2UiXSksYil9O3ZhciBobz1mdW5jdGlvbihhKXt2YXIgYj10aGlzO3RoaXMudHlwZT1hO3RoaXMuSD1bXTtGbChmby5LW2FdLmNvbnNlbnRUeXBlcyxmdW5jdGlvbigpe2dvKGIpfHxiLmZsdXNoKCl9KX07aG8ucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPW0odGhpcy5IKSxiPWEubmV4dCgpOyFiLmRvbmU7Yj1hLm5leHQoKSl7dmFyIGM9Yi52YWx1ZTtjKCl9dGhpcy5IPVtdfTt2YXIgZ289ZnVuY3Rpb24oYSl7cmV0dXJuIGZvLkhbYS50eXBlXT09PWJvLk1hLkxoJiYhZm8uS1thLnR5cGVdLmlzQ29uc2VudEdyYW50ZWQoKX0saW89ZnVuY3Rpb24oYSxiKXtnbyhhKT9hLkgucHVzaChiKTpiKCl9LGpvPWZ1bmN0aW9uKCl7dGhpcy5IPW5ldyBNYXB9LGxvPWZ1bmN0aW9uKGEpe3ZhciBiPWtvO2IuSC5oYXMoYSl8fGIuSC5zZXQoYSxuZXcgaG8oYSkpO3JldHVybiBiLkguZ2V0KGEpfTtqby5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLkguY2xlYXIoKX07CnZhciBrbz1uZXcgam87dmFyIG1vPVsiZmluIiwiZnMiLCJtY2MiLCJuY2MiXSxubz1mdW5jdGlvbihhKXthPWE9PT12b2lkIDA/ITE6YTt2YXIgYj1SbSgpLGM9UW0uSyxkPWIuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBjW2VdIT09dm9pZCAwJiYoYXx8IW1vLmluY2x1ZGVzKGUpKX0pO1RtKGQpO3JldHVybiBkLm1hcChmdW5jdGlvbihlKXt2YXIgZj1jW2VdO3R5cGVvZiBmPT09ImZ1bmN0aW9uIiYmKGY9ZigpKTtyZXR1cm4gZj8iJiIrZSsiPSIrZjoiIn0pLmpvaW4oIiIpKyImej0wIn0sb289ZnVuY3Rpb24oYSl7dmFyIGI9Imh0dHBzOi8vIitFKDIxKSxjPSIvdGQ/aWQ9IitFKDUpO3JldHVybiIiK2ZrKGIpK2MrYX0scG89ZnVuY3Rpb24oYSxiLGMpe2I9Yj09PXZvaWQgMD8hMTpiO2M9Yz09PXZvaWQgMD8hMTpjO2lmKCRrKDI2KSYmZm4uSyYmRSg1KSYmKGN8fCFnbigpKSl7dmFyIGQ9bG8oY28uaWEuWmIpO2lmKGdvKGQpKWEuSHx8KGEuSD0hMCxpbyhkLGZ1bmN0aW9uKCl7cmV0dXJuIHBvKGEpfSkpOwplbHNle2ImJlVtKCJmaW4iLCIxIik7dmFyIGU9bm8oYiksZj1vbyhlKSxnPXtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6NjF9O2I/WW4oZyxmLHZvaWQgMCx7UWc6ITB9LHZvaWQgMCxmdW5jdGlvbigpe1pjKGYrIiZpbWc9MSIpfSk6WG4oZyxmKTthLkg9ITE7cW8oZSl9fX0scW89ZnVuY3Rpb24oYSl7aWYoS2MmJihTYihLYywiaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vIil8fElmKDQ3KSkmJiEoYS5pbmRleE9mKCImY3NwPSIpPDAmJmEuaW5kZXhPZigiJm1kZT0iKTwwKSl7dmFyIGI7YTp7dHJ5e2lmKEtjKXtiPW5ldyBVUkwoS2MpO2JyZWFrIGF9fWNhdGNoKGMpe31iPXZvaWQgMH1iJiZVYygiIitLYysoS2MuaW5kZXhPZigiPyIpPj0wPyImIjoiPyIpKyJpc190ZD0xIithKX19LHJvPWZ1bmN0aW9uKGEpe1JtKCkuc29tZShmdW5jdGlvbihiKXtyZXR1cm4hUG1bYl19KSYmcG8oYSwhMCl9LHNvPW5ldyBmdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5IPSExOwokYyhBLCJwYWdlaGlkZSIsZnVuY3Rpb24oKXtybyhhKX0pfTtmdW5jdGlvbiB0byhhLGIpe3BvKHNvLGE9PT12b2lkIDA/ITE6YSxiPT09dm9pZCAwPyExOmIpfTt2YXIgdW89WyJhZF9zdG9yYWdlIiwiYW5hbHl0aWNzX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiLCJhZF9wZXJzb25hbGl6YXRpb24iXSx2bz1bRi5ELmRkLEYuRC55YyxGLkQuUWYsRi5ELktiLEYuRC54YyxGLkQuZmIsRi5ELkRiLEYuRC5uYixGLkQuTGIsRi5ELnZjXSx5bz1mdW5jdGlvbigpe3ZhciBhPXdvOyFhLlImJmEuSCYmKHVvLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzW2JdIT09MX0pfHx4bygibWJjIikpO2EuUj0hMH0seG89ZnVuY3Rpb24oYSl7Zm4uSyYmKFVtKGEsIjEiKSx0bygpKX0sem89ZnVuY3Rpb24oYSxiKXt2YXIgYz13bztpZighYy5OW2JdJiYoYy5OW2JdPSEwLGMuS1tiXSkpZm9yKHZhciBkPW0odm8pLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKWlmKE8oYSxlLnZhbHVlKSl7eG8oImVyYyIpO2JyZWFrfX0sd289bmV3IGZ1bmN0aW9uKCl7dGhpcy5SPXRoaXMuSD0hMTt0aGlzLk49e307dGhpcy5LPXt9fTt2YXIgQW89e30sQm89T2JqZWN0LmZyZWV6ZSgoQW9bRi5ELlJjXT0xLEFvW0YuRC5oaF09MSxBb1tGLkQuc2ldPTEsQW9bRi5ELlNjXT0xLEFvW0YuRC5IYV09MSxBb1tGLkQuTGJdPTEsQW9bRi5ELkNiXT0xLEFvW0YuRC5UYl09MSxBb1tGLkQuSWRdPTEsQW9bRi5ELnZjXT0xLEFvW0YuRC5uYl09MSxBb1tGLkQuSmRdPTEsQW9bRi5ELkhlXT0xLEFvW0YuRC5PYV09MSxBb1tGLkQuUXBdPTEsQW9bRi5ELlBmXT0xLEFvW0YuRC5GaV09MSxBb1tGLkQucGhdPTEsQW9bRi5ELldjXT0xLEFvW0YuRC5RZl09MSxBb1tGLkQuYXFdPTEsQW9bRi5ELlRhXT0xLEFvW0YuRC5VZl09MSxBb1tGLkQuZnFdPTEsQW9bRi5ELk9kXT0xLEFvW0YuRC5SbF09MSxBb1tGLkQuWWNdPTEsQW9bRi5ELlpjXT0xLEFvW0YuRC5EYl09MSxBb1tGLkQuYW1dPTEsQW9bRi5ELldiXT0xLEFvW0YuRC5UZF09MSxBb1tGLkQuWGJdPTEsQW9bRi5ELk9pXT0xLEFvW0YuRC5kZF09MSxBb1tGLkQueWhdPTEsQW9bRi5ELlBpXT0KMSxBb1tGLkQuVWRdPTEsQW9bRi5ELnljXT0xLEFvW0YuRC5WZF09MSxBb1tGLkQubG1dPTEsQW9bRi5ELldkXT0xLEFvW0YuRC5lZF09MSxBb1tGLkQub2pdPTEsQW8pKTtPYmplY3QuZnJlZXplKFtGLkQuemEsRi5ELlVhLEYuRC5NYixGLkQudGIsRi5ELk5pLEYuRC5mYixGLkQuR2ksRi5ELk1wXSk7CnZhciBDbz17fSxEbz1PYmplY3QuZnJlZXplKChDb1tGLkQucXBdPTEsQ29bRi5ELnJwXT0xLENvW0YuRC50cF09MSxDb1tGLkQudXBdPTEsQ29bRi5ELnZwXT0xLENvW0YuRC56cF09MSxDb1tGLkQuQXBdPTEsQ29bRi5ELkJwXT0xLENvW0YuRC5EcF09MSxDb1tGLkQueWZdPTEsQ28pKSxFbz17fSxGbz1PYmplY3QuZnJlZXplKChFb1tGLkQudmxdPTEsRW9bRi5ELndsXT0xLEVvW0YuRC54ZV09MSxFb1tGLkQueWVdPTEsRW9bRi5ELnhsXT0xLEVvW0YuRC5BZF09MSxFb1tGLkQuemVdPTEsRW9bRi5ELm9jXT0xLEVvW0YuRC5RY109MSxFb1tGLkQucWNdPTEsRW9bRi5ELkliXT0xLEVvW0YuRC5BZV09MSxFb1tGLkQucmNdPTEsRW9bRi5ELnlsXT0xLEVvKSksR289T2JqZWN0LmZyZWV6ZShbRi5ELlJjLEYuRC5TYyxGLkQuSmQsRi5ELlFmLEYuRC5XZixGLkQuVGQsRi5ELk9pLEYuRC5WZF0pLEhvPU9iamVjdC5mcmVlemUoW10uY29uY2F0KHcoR28pKSksSW89T2JqZWN0LmZyZWV6ZShbRi5ELkNiLApGLkQucGgsRi5ELnloLEYuRC5QaSxGLkQubmhdKSxKbz1PYmplY3QuZnJlZXplKFtdLmNvbmNhdCh3KElvKSkpLEtvPXt9LExvPShLb1tGLkQua2FdPSIxIixLb1tGLkQucmFdPSIyIixLb1tGLkQubWFdPSIzIixLb1tGLkQuWGFdPSI0IixLbyksTW89e30sTm89T2JqZWN0LmZyZWV6ZSgoTW8uc2VhcmNoPSJzIixNby55b3V0dWJlPSJ5IixNby5wbGF5c3RvcmU9InAiLE1vLnNob3BwaW5nPSJoIixNby5hZHM9ImEiLE1vLm1hcHM9Im0iLE1vKSk7ZnVuY3Rpb24gT28oYSl7cmV0dXJuIHR5cGVvZiBhIT09Im9iamVjdCJ8fGE9PT1udWxsP3t9OmF9ZnVuY3Rpb24gUG8oYSl7cmV0dXJuIGE9PT12b2lkIDB8fGE9PT1udWxsPyIiOnR5cGVvZiBhPT09Im9iamVjdCI/YS50b1N0cmluZygpOlN0cmluZyhhKX1mdW5jdGlvbiBRbyhhKXtpZihhIT09dm9pZCAwJiZhIT09bnVsbClyZXR1cm4gUG8oYSl9O3ZhciBSbz1bRi5ELmthLEYuRC5yYSxGLkQubWEsRi5ELlhhXTtmdW5jdGlvbiBTbyhhKXtmb3IodmFyIGI9bShhW0YuRC5uY118fFsiIl0pLGM9Yi5uZXh0KCksZD17fTshYy5kb25lO2Q9e3JlZ2lvbjp2b2lkIDB9LGM9Yi5uZXh0KCkpZC5yZWdpb249Yy52YWx1ZSxHYihhLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihmLGcpe2lmKGYhPT1GLkQubmMpe3ZhciBoPVBvKGcpLGw9ZS5yZWdpb24sbj15bSgpLHA9em0oKTt5bD0hMDt4bCYmc2IoIlRBR0dJTkciLDIwKTt0bCgpLmRlY2xhcmUoZixoLGwsbixwKX19fShkKSl9CmZ1bmN0aW9uIFRvKGEpe3lvKCk7dmFyIGI9YWwoMTcsZnVuY3Rpb24oKXtyZXR1cm4hMX0pLGM9YWwoMTYsZnVuY3Rpb24oKXtyZXR1cm4hMX0pOyFiJiZjJiZ4bygiY3JjIik7WmsoMTcsITApO3ZhciBkPWFbRi5ELllnXTtkJiZQKDQxKTt2YXIgZT1hW0YuRC5uY107ZT9QKDQwKTplPVsiIl07Zm9yKHZhciBmPW0oZSksZz1mLm5leHQoKSxoPXt9OyFnLmRvbmU7aD17Qm86dm9pZCAwfSxnPWYubmV4dCgpKWguQm89Zy52YWx1ZSxHYihhLGZ1bmN0aW9uKGwpe3JldHVybiBmdW5jdGlvbihuLHApe2lmKG4hPT1GLkQubmMmJm4hPT1GLkQuWWcpe3ZhciBxPVFvKHApLHI9bC5Cbyx0PU51bWJlcihkKSx1PXltKCksdj16bSgpO3Q9dD09PXZvaWQgMD8wOnQ7eGw9ITA7eWwmJnNiKCJUQUdHSU5HIiwyMCk7dGwoKS5kZWZhdWx0KG4scSxyLHUsdix0LEFsKX19fShoKSl9CmZ1bmN0aW9uIFVvKGEpe0FsLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cz0hMDt2YXIgYj1hW0YuRC5uY107aWYoYil7dmFyIGM9QXJyYXkuaXNBcnJheShiKT9iOltiXTtpZighYy5pbmNsdWRlcyh6bSgpKSYmIWMuaW5jbHVkZXMoeW0oKSkpcmV0dXJufUdiKGEsZnVuY3Rpb24oZCxlKXtzd2l0Y2goZCl7Y2FzZSAiYWRfc3RvcmFnZSI6Y2FzZSAiYW5hbHl0aWNzX3N0b3JhZ2UiOmNhc2UgImFkX3VzZXJfZGF0YSI6Y2FzZSAiYWRfcGVyc29uYWxpemF0aW9uIjpicmVhaztkZWZhdWx0OnJldHVybn1BbC51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHM9ITA7QWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHNbZF09ZT09PSJncmFudGVkIj8zOjJ9KX0KZnVuY3Rpb24gVm8oYSxiKXt5bygpO1prKDE2LCEwKTtHYihhLGZ1bmN0aW9uKGMsZCl7dmFyIGU9UG8oZCk7eGw9ITA7eWwmJnNiKCJUQUdHSU5HIiwyMCk7dGwoKS51cGRhdGUoYyxlLEFsKX0pO0dsKGIuZXZlbnRJZCxiLnByaW9yaXR5SWQpfWZ1bmN0aW9uIFdvKGEpe2EuaGFzT3duUHJvcGVydHkoImFsbCIpJiYoQWwuc2VsZWN0ZWRBbGxDb3JlUGxhdGZvcm1TZXJ2aWNlcz0hMCxHYihObyxmdW5jdGlvbihiKXtBbC5jb3JlUGxhdGZvcm1TZXJ2aWNlc1tiXT1hLmFsbD09PSJncmFudGVkIjtBbC51c2VkQ29yZVBsYXRmb3JtU2VydmljZXM9ITB9KSk7R2IoYSxmdW5jdGlvbihiLGMpe2IhPT0iYWxsIiYmKEFsLmNvcmVQbGF0Zm9ybVNlcnZpY2VzW2JdPWM9PT0iZ3JhbnRlZCIsQWwudXNlZENvcmVQbGF0Zm9ybVNlcnZpY2VzPSEwKX0pfQpmdW5jdGlvbiBYbyhhKXtBcnJheS5pc0FycmF5KGEpfHwoYT1bYV0pO3JldHVybiBhLmV2ZXJ5KGZ1bmN0aW9uKGIpe3JldHVybiBCbChiKX0pfWZ1bmN0aW9uIFlvKCl7dmFyIGE9Wm87QXJyYXkuaXNBcnJheShhKXx8KGE9W2FdKTtyZXR1cm4gYS5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBCbChiKX0pfWZ1bmN0aW9uICRvKGEsYil7RmwoYSxiKX1mdW5jdGlvbiBhcChhLGIpe0lsKGEsYil9ZnVuY3Rpb24gYnAoYSxiKXtIbChhLGIpfWZ1bmN0aW9uIGNwKCl7dmFyIGE9W0YuRC5rYSxGLkQuWGEsRi5ELm1hXTt0bCgpLndhaXRGb3JVcGRhdGUoYSw1MDAsQWwpfWZ1bmN0aW9uIGRwKGEpe2Zvcih2YXIgYj1tKGEpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXt2YXIgZD1jLnZhbHVlO3RsKCkuY2xlYXJUaW1lb3V0KGQsdm9pZCAwLEFsKX1HbCgpfQpmdW5jdGlvbiBlcChhKXtmb3IodmFyIGI9e30sYz1tKGEuc3BsaXQoInwiKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpYltkLnZhbHVlXT0hMDtyZXR1cm4gYn07dmFyIGZwPU9iamVjdC5mcmVlemUoW0YuRC5rYSxGLkQubWFdKTsKdmFyIGhwPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj17fSxjPW0oT2JqZWN0LmtleXMoYSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2JbZ3BbZV18fGVdPWFbZV19cmV0dXJuIGJ9LGlwPWZ1bmN0aW9uKGEpe3JldHVybiEhUShhLEguSi52ZCkmJlIoYSxGLkQuUGQpPT09IjEiJiZSKGEsRi5ELkhkKSE9PSIxIiYmWG8oZnApfSxqcD1mdW5jdGlvbihhLGIpe2lmKCFpcChhKSlyZXR1cm4hMTt2YXIgYz1RYygpfHxPYygpPzU4OjU3LGQ9Tm0oYyxocChiKSk7VGwoZCxhLGMpO1luKHtkZXN0aW5hdGlvbklkOmEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsZW5kcG9pbnQ6YyxldmVudElkOmEuTS5ldmVudElkLHByaW9yaXR5SWQ6YS5NLnByaW9yaXR5SWR9LGQrIiZmbXQ9OCIsdm9pZCAwLHtRZzohMCxtZXRob2Q6IkdFVCJ9LGZ1bmN0aW9uKCl7fSxmdW5jdGlvbigpe1pjKGQrIiZmbXQ9MyIpfSk7cmV0dXJuITB9LGtwPXt9LGdwPShrcC5kbD0idXJsIixrcC5kcj0KInJlZiIsa3AudWlkPSJ1c2VySWQiLGtwKTt2YXIgbHA9ZnVuY3Rpb24oYSxiKXt2YXIgYz17fSxkPWZ1bmN0aW9uKGUpe2JbZV0hPW51bGwmJmJbZV0hPT0iIiYmKGNbZV09YltlXSl9O00oNDc0KSYmZCgiX2dzaWQiKTtSKGEsRi5ELkhkKSE9PSIxIiYmKGQoImdjbGlkIiksZCgiZ2Nsc3JjIiksZCgiYXVpZCIpLGQoImRjbGlkIikpO2lmKE9iamVjdC5rZXlzKGMpLmxlbmd0aClyZXR1cm4gZCgiZ3RtIiksY307CnZhciBtcD17fSxucD0obXBbRi5ELnNhXT0iZ2N1IixtcFtGLkQuU2JdPSJnY2xnYiIsbXBbRi5ELmxiXT0iZ2NsYXciLG1wW0YuRC56Zl09ImdhZF9zb3VyY2UiLG1wW0YuRC5BZl09ImdhZF9zb3VyY2Vfc3JjIixtcFtGLkQuRGRdPSJnY2xpZCIsbXBbRi5ELkFsXT0iZ2Nsc3JjIixtcFtGLkQuQmZdPSJnYnJhaWQiLG1wW0YuRC5FZV09IndicmFpZCIsbXBbRi5ELkVkXT0iYXVpZCIsbXBbRi5ELkJsXT0iYWUiLG1wW0YuRC5IYV09bnVsbCxtcFtGLkQuRGxdPSJybmQiLG1wW0YuRC5IZF09Im5jbCIsbXBbRi5ELk5mXT0iZ2NsZGMiLG1wW0YuRC5LZF09ImRjbGlkIixtcFtGLkQuVmNdPSJlZGlkIixtcFtGLkQuVWJdPSJlbiIsbXBbRi5ELktlXT0iZ2RwciIsbXBbRi5ELlhjXT0iZ2RpZCIsbXBbRi5ELlRhXT1udWxsLG1wW0YuRC5MZV09Il9uZyIsbXBbRi5ELnRoXT0iZ3BwX3NpZCIsbXBbRi5ELnVoXT0iZ3BwIixtcFtGLkQuVmZdPSJfdHUiLG1wW0YuRC5RbF09Imd0bV91cCIsbXBbRi5ELk1lXT0KImZybSIsbXBbRi5ELlBkXT0ibHBzIixtcFtGLkQuTGldPSJkaWQiLG1wW0YuRC5VbF09Im5hdnQiLG1wW0YuRC56YV09ImRsIixtcFtGLkQuVWFdPSJkciIsbXBbRi5ELk1iXT0iZHQiLG1wW0YuRC5ibV09InNjcnNyYyIsbXBbRi5ELlpmXT0iZ2FfdWlkIixtcFtGLkQuT2VdPSJnZHByX2NvbnNlbnQiLG1wW0YuRC5RaV09InRlc3Rvbmx5IixtcFtGLkQucnFdPSJ1X3R6IixtcFtGLkQuUGVdPSJ0b3AiLG1wW0YuRC5RZV09InRpZCIsbXBbRi5ELmZiXT0idWlkIixtcFtGLkQua2ddPSJ1c19wcml2YWN5IixtcFtGLkQuZWRdPW51bGwsbXBbRi5ELmRlXT0ibnBhIixtcCk7ZnVuY3Rpb24gb3AoYSxiKXtpZihiIT1udWxsJiZiIT09IiIpe3ZhciBjPWI9PT0hMD8iMSI6Yj09PSExPyIwIjplbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGIpKTtpZihTYihhLCJfJiIpKXJldHVybntrZXk6YS5zdWJzdHJpbmcoMiksdmFsdWU6Y307dmFyIGQ9bnBbYV07aWYoZCE9PW51bGwpcmV0dXJuIGQ/e2tleTpkLHZhbHVlOmN9OntrZXk6QWIoYik/ImVwbi4iK2E6ImVwLiIrYSx2YWx1ZTpjfX19O2Z1bmN0aW9uIHBwKGEpe2E9YT09PXZvaWQgMD9bXTphO3JldHVybiB4aihhKS5qb2luKCJ+Iil9O2Z1bmN0aW9uIHFwKCl7dmFyIGE9W10sYj1OdW1iZXIoJycpfHwwLGM9TnVtYmVyKCcnKXx8MDtjfHwoYz1iLzEwMCk7dmFyIGQ9ZnVuY3Rpb24oKXt2YXIgdD0hMTtyZXR1cm4gdH0oKTthLnB1c2goe3VrOjIyOCxzdHVkeUlkOjIyOCxleHBlcmltZW50SWQ6MTA1MTc3MTU0LGNvbnRyb2xJZDoxMDUxNzcxNTUsY29udHJvbElkMjoxMDUyNTUyNDUscHJvYmFiaWxpdHk6YyxhY3RpdmU6ZCxaZTowfSk7dmFyIGU9TnVtYmVyKCcnKXx8CjAsZj1OdW1iZXIoJycpfHwwO2Z8fChmPWUvMTAwKTt2YXIgZz1mdW5jdGlvbigpe3ZhciB0PSExO3JldHVybiB0fSgpO2EucHVzaCh7dWs6MjM1LHN0dWR5SWQ6MjM1LGV4cGVyaW1lbnRJZDoxMDUzNTcxNTAsY29udHJvbElkOjEwNTM1NzE1MSxjb250cm9sSWQyOjAscHJvYmFiaWxpdHk6ZixhY3RpdmU6ZyxaZToxfSk7dmFyIGg9TnVtYmVyKCcnKXx8MCxsPU51bWJlcignJyl8fAowO2x8fChsPWgvMTAwKTt2YXIgbj1mdW5jdGlvbigpe3ZhciB0PSExO3JldHVybiB0fSgpO2EucHVzaCh7dWs6MjY2LHN0dWR5SWQ6MjY2LGV4cGVyaW1lbnRJZDoxMTU3MTg1MjksY29udHJvbElkOjExNTcxODUzMCxjb250cm9sSWQyOjExNTcxODUzMSxwcm9iYWJpbGl0eTpsLGFjdGl2ZTpuLFplOjB9KTt2YXIgcD1OdW1iZXIoJycpfHwwLHE9TnVtYmVyKCcnKXx8CjA7cXx8KHE9cC8xMDApO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7cmV0dXJuIHR9KCk7YS5wdXNoKHt1azoyNjcsc3R1ZHlJZDoyNjcsZXhwZXJpbWVudElkOjExNTcxODUyNixjb250cm9sSWQ6MTE1NzE4NTI3LGNvbnRyb2xJZDI6MTE1NzE4NTI4LHByb2JhYmlsaXR5OnEsYWN0aXZlOnIsWmU6MH0pO3JldHVybiBhfTt2YXIgcnA9ZnVuY3Rpb24oKXt0aGlzLks9e307dGhpcy5IPXt9O3RoaXMuTj17fTt0aGlzLlI9bmV3IFNldH0seHA9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLGQ9Yj1hLk5bYy5zdHVkeUlkXT9uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMse2FjdGl2ZTohMH0pOmMsZT1GaTtkLmNvbnRyb2xJZDImJmQucHJvYmFiaWxpdHk8PS4yNXx8KGQ9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxkLHtjb250cm9sSWQyOjB9KSk7ZS5zdHVkaWVzW2Quc3R1ZHlJZF09ZDtiLmZvY3VzZWQmJihhLktbYi5zdHVkeUlkXT0hMCk7aWYoYi5aZT09PTEpe3ZhciBmPWIuc3R1ZHlJZDtzcChhLHRwKCksZik7dXAoYSxmKT90aih1aixmKTp2cChhLGYpP3VqLktbZl09ITA6d3AoYSxmKSYmKHVqLkhbZl09ITApfWVsc2UgaWYoYi5aZT09PTApe3ZhciBnPWIuc3R1ZHlJZDtzcChhLGEuSCxnKTt1cChhLGcpP3RqKHVqLGcpOnZwKGEsZyk/dWouS1tnXT0hMDp3cChhLGcpJiYKKHVqLkhbZ109ITApfX0sc3A9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9Rmk7aWYoZS5zdHVkaWVzW2NdKXt2YXIgZj1lLnN0dWRpZXNbY10sZz1mLmV4cGVyaW1lbnRJZCxoPWYucHJvYmFiaWxpdHk7aWYoIShiLnN0dWRpZXN8fHt9KVtjXSl7dmFyIGw9Yi5zdHVkaWVzfHx7fTtsW2NdPSEwO2Iuc3R1ZGllcz1sO2lmKCFlLnN0dWRpZXNbY10uYWN0aXZlKWlmKGUuc3R1ZGllc1tjXS5wcm9iYWJpbGl0eT4uNSlJaShiLGcsYyk7ZWxzZSBpZighKGg8PTB8fGg+MSkpe3ZhciBuPXZvaWQgMDtpZihkKXt2YXIgcD1DaShkKyJ+IitjKTtpZihwPT09ImUyIiluPS0xO2Vsc2V7Zm9yKHZhciBxPW5ldyBVaW50OEFycmF5KHApLHI9QmlnSW50KDApLHQ9bShxKSx1PXQubmV4dCgpOyF1LmRvbmU7dT10Lm5leHQoKSlyPXI8PEJpZ0ludCg4KXxCaWdJbnQodS52YWx1ZSk7bj1OdW1iZXIociVCaWdJbnQoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpKX19R2kuc2soYixjLG4pfX19aWYoIWEuS1tjXSl7dmFyIHY9Ck5pKGIsYyk7diYmd2ouSC5LLmFkZCh2KX19LHRwPWZ1bmN0aW9uKCl7cmV0dXJuIG9tKGptLmJhLlRxLHt9KX0sdXA9ZnVuY3Rpb24oYSxiKXt2YXIgYz10cCgpO3JldHVybiBLaShjLGIpfHxLaShhLkgsYil9LHZwPWZ1bmN0aW9uKGEsYil7dmFyIGM9dHAoKTtyZXR1cm4gTGkoYyxiKXx8TGkoYS5ILGIpfSx3cD1mdW5jdGlvbihhLGIpe3ZhciBjPXRwKCk7cmV0dXJuIE1pKGMsYil8fE1pKGEuSCxiKX0seXA7CmZ1bmN0aW9uIHpwKCl7aWYoIXlwKXt2YXIgYT15cD1uZXcgcnAsYixjLGQ9KChiPUEpPT1udWxsP3ZvaWQgMDooYz1iLmxvY2F0aW9uKT09bnVsbD92b2lkIDA6Yy5oYXNoKXx8IiI7aWYoZFswXT09PSIjIiYmZFsxXT09PSJfIiYmZFsyXT09PSJ0IiYmZFszXT09PSJlIiYmZFs0XT09PSI9Iil7dmFyIGU9ZC5zdWJzdHJpbmcoNSk7aWYoZSlmb3IodmFyIGY9bShlLnNwbGl0KCJ+IikpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1OdW1iZXIoZy52YWx1ZSk7aCYmKGEuTltoXT0hMCx0aih1aixoKSl9fWZvcih2YXIgbD1tKHFwKCkpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXhwKGEsbi52YWx1ZSk7Zm9yKHZhciBwPVtdLHE9bShNZig1Nil8fFtdKSxyPXEubmV4dCgpOyFyLmRvbmU7cj1xLm5leHQoKSl7dmFyIHQ9ci52YWx1ZSx1PXtzdHVkeUlkOnRbMV0sYWN0aXZlOiEhdFsyXSxwcm9iYWJpbGl0eTp0WzNdfHwwLGV4cGVyaW1lbnRJZDp0WzRdfHwKMCxjb250cm9sSWQ6dFs1XXx8MCxjb250cm9sSWQyOnRbNl18fDB9LHY9MDtzd2l0Y2godFs3XSl7Y2FzZSAyOnY9MTticmVhaztjYXNlIDM6dj0yO2JyZWFrO2Nhc2UgMTpjYXNlIDQ6Y2FzZSA1OmNhc2UgMDp2PTB9dmFyIHg7YTpzd2l0Y2godS5zdHVkeUlkKXtjYXNlIDU2NzpjYXNlIDQ2Mjp4PSEwO2JyZWFrIGE7ZGVmYXVsdDp4PSExfXZhciB5PW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sdSx7WmU6dixmb2N1c2VkOnh9KTsoeS5hY3RpdmV8fHkucHJvYmFiaWxpdHk+LjUmJnkuZXhwZXJpbWVudElkfHx5LmV4cGVyaW1lbnRJZCYmeS5jb250cm9sSWQpJiZwLnB1c2goeSl9Zm9yKHZhciB6PW0ocCksQz16Lm5leHQoKTshQy5kb25lO0M9ei5uZXh0KCkpeHAoYSxDLnZhbHVlKX19CmZ1bmN0aW9uIEFwKGEsYil7enAoKTt2YXIgYz15cDtzcChjLHRwKCksYSxiKTt1cChjLGEpP3RqKHVqLGEpOnZwKGMsYSk/dWouS1thXT0hMDp3cChjLGEpJiYodWouSFthXT0hMCl9ZnVuY3Rpb24gQnAoKXt6cCgpO3ZhciBhPXlwLGI9dXAoYSw1NjcpO2lmKGEuS1s1NjddKXt2YXIgYyxkPXRwKCk7KGM9TmkoZCw1NjcpfHxOaShhLkgsNTY3KSkmJmEuUi5hZGQoYyl9cmV0dXJuIGJ9ZnVuY3Rpb24gQ3AoYSl7enAoKTt2YXIgYj1uZXcgU2V0KHlwLlIpO2lmKGEpZm9yKHZhciBjPVEoYSxILkouQ2gpfHxbXSxkPW0oYyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpYi5hZGQoZS52YWx1ZSk7cmV0dXJuIHBwKFtdLmNvbmNhdCh3KGIpKSl9O2Z1bmN0aW9uIERwKGEpe3ZhciBiPWEubG9jYXRpb24uaHJlZjtpZihhPT09YS50b3ApcmV0dXJue3VybDpiLElzOiEwfTt2YXIgYz0hMSxkPWEuZG9jdW1lbnQ7ZCYmZC5yZWZlcnJlciYmKGI9ZC5yZWZlcnJlcixhLnBhcmVudD09PWEudG9wJiYoYz0hMCkpO3ZhciBlPWEubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zO2lmKGUpe3ZhciBmPWVbZS5sZW5ndGgtMV0sZztmJiYoKGc9Yik9PW51bGw/dm9pZCAwOmcuaW5kZXhPZihmKSk9PT0tMSYmKGM9ITEsYj1mKX1yZXR1cm57dXJsOmIsSXM6Y319ZnVuY3Rpb24gRXAoYSl7dHJ5e3ZhciBiO2lmKGI9ISFhJiZhLmxvY2F0aW9uLmhyZWYhPW51bGwpYTp7dHJ5e0huKGEuZm9vKTtiPSEwO2JyZWFrIGF9Y2F0Y2goYyl7fWI9ITF9cmV0dXJuIGJ9Y2F0Y2goYyl7cmV0dXJuITF9fWZ1bmN0aW9uIEZwKCl7Zm9yKHZhciBhPUEsYj1hO2EmJmEhPT1hLnBhcmVudDspYT1hLnBhcmVudCxFcChhKSYmKGI9YSk7cmV0dXJuIGJ9O3ZhciBHcD1mdW5jdGlvbihhLGIpe3ZhciBjPWZ1bmN0aW9uKCl7fTtjLnByb3RvdHlwZT1hLnByb3RvdHlwZTt2YXIgZD1uZXcgYzthLmFwcGx5KGQsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKTtyZXR1cm4gZH0sSHA9ZnVuY3Rpb24oYSl7dmFyIGI9YTtyZXR1cm4gZnVuY3Rpb24oKXtpZihiKXt2YXIgYz1iO2I9bnVsbDtjKCl9fX07ZnVuY3Rpb24gSXAoYSxiKXtpZihhKWZvcih2YXIgYyBpbiBhKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLGMpJiZiKGFbY10sYyxhKX07ZnVuY3Rpb24gSnAoYSl7dmFyIGI9YS5zcGxpdCgvWz8jXS8pLGM9L1s/XS8udGVzdChhKT8iPyIrYlsxXToiIjtyZXR1cm57ems6YlswXSxwYXJhbXM6YyxmcmFnbWVudDovWyNdLy50ZXN0KGEpPyIjIisoYz9iWzJdOmJbMV0pOiIifX1mdW5jdGlvbiBLcChhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7aWYoYi5sZW5ndGg9PT0wKXJldHVybiBqYyhhWzBdKTtmb3IodmFyIGM9YVswXSxkPTA7ZDxiLmxlbmd0aDtkKyspYys9ZW5jb2RlVVJJQ29tcG9uZW50KGJbZF0pK2FbZCsxXTtyZXR1cm4gamMoYyl9CmZ1bmN0aW9uIExwKGEsYixjLGQpe2Z1bmN0aW9uIGUoZyxoKXtnIT1udWxsJiYoQXJyYXkuaXNBcnJheShnKT9nLmZvckVhY2goZnVuY3Rpb24obCl7cmV0dXJuIGUobCxoKX0pOihiKz1mK2VuY29kZVVSSUNvbXBvbmVudChoKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGcpLGY9IiYiKSl9dmFyIGY9Yi5sZW5ndGg/IiYiOiI/IjtkLmNvbnN0cnVjdG9yPT09T2JqZWN0JiYoZD1PYmplY3QuZW50cmllcyhkKSk7QXJyYXkuaXNBcnJheShkKT9kLmZvckVhY2goZnVuY3Rpb24oZyl7cmV0dXJuIGUoZ1sxXSxnWzBdKX0pOmQuZm9yRWFjaChlKTtyZXR1cm4gamMoYStiK2MpfWZ1bmN0aW9uIE1wKGEsYil7dmFyIGM9SnAoa2MoYSkudG9TdHJpbmcoKSksZD1jLnprLnNsaWNlKC0xKT09PSIvIj8iIjoiLyIsZT1jLnprK2QrZW5jb2RlVVJJQ29tcG9uZW50KGIpO3JldHVybiBqYyhlK2MucGFyYW1zK2MuZnJhZ21lbnQpfTt2YXIgTnA9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YSxkPTA7ZDw1MDsrK2Qpe3ZhciBlO3RyeXtlPSEoIWMuZnJhbWVzfHwhYy5mcmFtZXNbYl0pfWNhdGNoKGgpe2U9ITF9aWYoZSlyZXR1cm4gYzt2YXIgZjthOnt0cnl7dmFyIGc9Yy5wYXJlbnQ7aWYoZyYmZyE9PWMpe2Y9ZzticmVhayBhfX1jYXRjaChoKXt9Zj1udWxsfWlmKCEoYz1mKSlicmVha31yZXR1cm4gbnVsbH0sT3A9ZnVuY3Rpb24oYSl7dmFyIGI9QTtpZihiLnRvcD09YilyZXR1cm4gMDtpZihhPT09dm9pZCAwPzA6YSl7dmFyIGM9Yi5sb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnM7aWYoYylyZXR1cm4gY1tjLmxlbmd0aC0xXT09Yi5sb2NhdGlvbi5vcmlnaW4/MToyfXJldHVybiBFcChiLnRvcCk/MToyfSxQcD1mdW5jdGlvbihhKXthPWE9PT12b2lkIDA/ZG9jdW1lbnQ6YTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJpbWciKX07ZnVuY3Rpb24gUXAoYSl7Zm9yKHZhciBiPVtdLGM9Qi5jb29raWUuc3BsaXQoIjsiKSxkPW5ldyBSZWdFeHAoIl5cXHMqIisoYXx8Il9nYWMiKSsiXyhVQS1cXGQrLVxcZCspPVxccyooLis/KVxccyokIiksZT0wO2U8Yy5sZW5ndGg7ZSsrKXt2YXIgZj1jW2VdLm1hdGNoKGQpO2YmJmIucHVzaCh7dWQ6ZlsxXSx2YWx1ZTpmWzJdLHRpbWVzdGFtcDpOdW1iZXIoZlsyXS5zcGxpdCgiLiIpWzFdKXx8MH0pfWIuc29ydChmdW5jdGlvbihnLGgpe3JldHVybiBoLnRpbWVzdGFtcC1nLnRpbWVzdGFtcH0pO3JldHVybiBifQpmdW5jdGlvbiBScChhLGIpe3ZhciBjPVFwKGEpLGQ9e307aWYoIWN8fCFjLmxlbmd0aClyZXR1cm4gZDtmb3IodmFyIGU9MDtlPGMubGVuZ3RoO2UrKyl7dmFyIGY9Y1tlXS52YWx1ZS5zcGxpdCgiLiIpO2lmKCEoZlswXSE9PSIxInx8YiYmZi5sZW5ndGg8M3x8IWImJmYubGVuZ3RoIT09MykmJk51bWJlcihmWzFdKSl7ZFtjW2VdLnVkXXx8KGRbY1tlXS51ZF09W10pO3ZhciBnPXt2ZXJzaW9uOmZbMF0sdGltZXN0YW1wOk51bWJlcihmWzFdKSoxRTMsZ2NsaWQ6ZlsyXX07YiYmZi5sZW5ndGg+MyYmKGcubGFiZWxzPWYuc2xpY2UoMykpO2RbY1tlXS51ZF0ucHVzaChnKX19cmV0dXJuIGR9O2Z1bmN0aW9uIFNwKGEpe3JldHVybiBhLm9yaWdpbiE9PSJudWxsIn07dmFyIFRwPXt9LFVwPShUcC5rPXtuYTovXltcdy1dKyQvfSxUcC5iPXtuYTovXltcdy1dKyQvLG5rOiEwfSxUcC5pPXtuYTovXlsxLTldXGQqJC99LFRwLmg9e25hOi9eXGQrJC99LFRwLnQ9e25hOi9eWzEtOV1cZCokL30sVHAuZD17bmE6L15bQS1aYS16MC05Xy1dKyQvfSxUcC5qPXtuYTovXlxkKyQvfSxUcC51PXtuYTovXlsxLTldXGQqJC99LFRwLmw9e25hOi9eWzAxXSQvfSxUcC5vPXtuYTovXlsxLTldXGQqJC99LFRwLmc9e25hOi9eWzAxXSQvfSxUcC5zPXtuYTovXi4rJC99LFRwLm09e25hOi9eWzAxXSQvfSxUcCk7dmFyIFZwPXt9LFpwPShWcFs1XT17amk6ezI6V3B9LFpqOiIyIixSaDpbImsiLCJpIiwiYiIsInUiXX0sVnBbNF09e2ppOnsyOldwLEdDTDpYcH0sWmo6IjIiLFJoOlsiayIsImkiLCJiIiwibSJdfSxWcFsyXT17amk6e0dTMjpXcCxHUzE6WXB9LFpqOiJHUzIiLFJoOiJzb2d0amxoZCIuc3BsaXQoIiIpfSxWcCk7ZnVuY3Rpb24gJHAoYSxiLGMpe3ZhciBkPVpwW2JdO2lmKGQpe3ZhciBlPWEuc3BsaXQoIi4iKVswXTtjPT1udWxsfHxjKGUpO2lmKGUpe3ZhciBmPWQuamlbZV07aWYoZilyZXR1cm4gZihhLGIpfX19CmZ1bmN0aW9uIFdwKGEsYil7dmFyIGM9YS5zcGxpdCgiLiIpO2lmKGMubGVuZ3RoPT09Myl7dmFyIGQ9Y1syXTtpZihkLmluZGV4T2YoIiQiKT09PS0xJiZkLmluZGV4T2YoIiUyNCIpIT09LTEpdHJ5e2Q9ZGVjb2RlVVJJQ29tcG9uZW50KGQpfWNhdGNoKHQpe312YXIgZT17fSxmPVpwW2JdO2lmKGYpe2Zvcih2YXIgZz1mLlJoLGg9bShkLnNwbGl0KCIkIikpLGw9aC5uZXh0KCk7IWwuZG9uZTtsPWgubmV4dCgpKXt2YXIgbj1sLnZhbHVlLHA9blswXTtpZihnLmluZGV4T2YocCkhPT0tMSl0cnl7dmFyIHE9ZGVjb2RlVVJJQ29tcG9uZW50KG4uc3Vic3RyaW5nKDEpKSxyPVVwW3BdO3ImJihyLm5rPyhlW3BdPWVbcF18fFtdLGVbcF0ucHVzaChxKSk6ZVtwXT1xKX1jYXRjaCh0KXt9fXJldHVybiBlfX19ZnVuY3Rpb24gYXEoYSxiLGMpe3ZhciBkPVpwW2JdO2lmKGQpcmV0dXJuW2QuWmosY3x8IjEiLGJxKGEsYildLmpvaW4oIi4iKX0KZnVuY3Rpb24gYnEoYSxiKXt2YXIgYz1acFtiXTtpZihjKXtmb3IodmFyIGQ9W10sZT1tKGMuUmgpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlLGg9VXBbZ107aWYoaCl7dmFyIGw9YVtnXTtpZihsIT09dm9pZCAwKWlmKGgubmsmJkFycmF5LmlzQXJyYXkobCkpZm9yKHZhciBuPW0obCkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpZC5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCgiIitnK3AudmFsdWUpKTtlbHNlIGQucHVzaChlbmNvZGVVUklDb21wb25lbnQoIiIrZytsKSl9fXJldHVybiBkLmpvaW4oIiQiKX19ZnVuY3Rpb24gWHAoYSl7dmFyIGI9YS5zcGxpdCgiLiIpO2Iuc2hpZnQoKTt2YXIgYz1iLnNoaWZ0KCksZD1iLnNoaWZ0KCksZT17fTtyZXR1cm4gZS5rPWQsZS5pPWMsZS5iPWIsZX0KZnVuY3Rpb24gWXAoYSl7dmFyIGI9YS5zcGxpdCgiLiIpLnNsaWNlKDIpO2lmKCEoYi5sZW5ndGg8NXx8Yi5sZW5ndGg+Nykpe3ZhciBjPXt9O3JldHVybiBjLnM9YlswXSxjLm89YlsxXSxjLmc9YlsyXSxjLnQ9YlszXSxjLmo9Yls0XSxjLmw9Yls1XSxjLmg9Yls2XSxjfX07ZnVuY3Rpb24gY3EoYSxiLGMsZCl7dmFyIGU7cmV0dXJuKGU9ZHEoZnVuY3Rpb24oZil7cmV0dXJuIGY9PT1hfSxiLGMsZClbYV0pIT1udWxsP2U6W119ZnVuY3Rpb24gZHEoYSxiLGMsZCl7dmFyIGU7aWYoZXEoZCkpe2Zvcih2YXIgZj17fSxnPVN0cmluZyhifHxmcSgpKS5zcGxpdCgiOyIpLGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIGw9Z1toXS5zcGxpdCgiPSIpLG49bFswXS50cmltKCk7aWYobiYmYShuKSl7dmFyIHA9bC5zbGljZSgxKS5qb2luKCI9IikudHJpbSgpO3AmJmMmJihwPWRlY29kZVVSSUNvbXBvbmVudChwKSk7dmFyIHE9dm9pZCAwLHI9dm9pZCAwOygocT1mKVtyPW5dfHwocVtyXT1bXSkpLnB1c2gocCl9fWU9Zn1lbHNlIGU9e307cmV0dXJuIGV9CmZ1bmN0aW9uIGdxKGEsYixjLGQsZSl7aWYoZXEoZSkpe3ZhciBmPWhxKGEsZCxlKTtpZihmLmxlbmd0aD09PTEpcmV0dXJuIGZbMF07aWYoZi5sZW5ndGghPT0wKXtmPWlxKGYsZnVuY3Rpb24oZyl7cmV0dXJuIGcuSnJ9LGIpO2lmKGYubGVuZ3RoPT09MSlyZXR1cm4gZlswXTtmPWlxKGYsZnVuY3Rpb24oZyl7cmV0dXJuIGcuV3N9LGMpO3JldHVybiBmWzBdfX19ZnVuY3Rpb24ganEoYSxiLGMsZCl7dmFyIGU9ZnEoKSxmPUE7U3AoZikmJihmLmRvY3VtZW50LmNvb2tpZT1hKTt2YXIgZz1mcSgpO3JldHVybiBlIT09Z3x8YyE9PXZvaWQgMCYmY3EoYixnLCExLGQpLmluZGV4T2YoYyk+PTB9CmZ1bmN0aW9uIGtxKGEsYixjLGQpe2Z1bmN0aW9uIGUoeCx5LHope2lmKHo9PW51bGwpcmV0dXJuIGRlbGV0ZSBoW3ldLHg7aFt5XT16O3JldHVybiB4KyI7ICIreSsiPSIren1mdW5jdGlvbiBmKHgseSl7aWYoeT09bnVsbClyZXR1cm4geDtoW3ldPSEwO3JldHVybiB4KyI7ICIreX1pZighZXEoYy5NYykpcmV0dXJuIDI7dmFyIGc7Yj09bnVsbD9nPWErIj1kZWxldGVkOyBleHBpcmVzPSIrKG5ldyBEYXRlKDApKS50b1VUQ1N0cmluZygpOihjLmVuY29kZSYmKGI9ZW5jb2RlVVJJQ29tcG9uZW50KGIpKSxiPWxxKGIpLGc9YSsiPSIrYik7dmFyIGg9e307Zz1lKGcsInBhdGgiLGMucGF0aCk7dmFyIGw7Yy5leHBpcmVzIGluc3RhbmNlb2YgRGF0ZT9sPWMuZXhwaXJlcy50b1VUQ1N0cmluZygpOmMuZXhwaXJlcyE9bnVsbCYmKGw9IiIrYy5leHBpcmVzKTtnPWUoZywiZXhwaXJlcyIsbCk7Zz1lKGcsIm1heC1hZ2UiLGMuT3MpO2c9ZShnLCJzYW1lc2l0ZSIsYy5ydCk7Yy5zZWN1cmUmJgooZz1mKGcsInNlY3VyZSIpKTt2YXIgbj1jLmRvbWFpbjtpZihuJiZuLnRvTG93ZXJDYXNlKCk9PT0iYXV0byIpe2Zvcih2YXIgcD1tcSgpLHE9dm9pZCAwLHI9ITEsdD0wO3Q8cC5sZW5ndGg7Kyt0KXt2YXIgdT1wW3RdIT09Im5vbmUiP3BbdF06dm9pZCAwLHY9ZShnLCJkb21haW4iLHUpO3Y9Zih2LGMuZmxhZ3MpO3RyeXtkJiZkKGEsaCl9Y2F0Y2goeCl7cT14O2NvbnRpbnVlfXI9ITA7aWYoIW5xKHUsYy5wYXRoKSYmanEodixhLGIsYy5NYykpcmV0dXJuIDB9aWYocSYmIXIpdGhyb3cgcTtyZXR1cm4gMX1uJiZuLnRvTG93ZXJDYXNlKCkhPT0ibm9uZSImJihnPWUoZywiZG9tYWluIixuKSk7Zz1mKGcsYy5mbGFncyk7ZCYmZChhLGgpO3JldHVybiBucShuLGMucGF0aCk/MTpqcShnLGEsYixjLk1jKT8wOjF9ZnVuY3Rpb24gb3EoYSxiLGMpe2MucGF0aD09bnVsbCYmKGMucGF0aD0iLyIpO2MuZG9tYWlufHwoYy5kb21haW49ImF1dG8iKTtyZXR1cm4ga3EoYSxiLGMpfQpmdW5jdGlvbiBpcShhLGIsYyl7Zm9yKHZhciBkPVtdLGU9W10sZixnPTA7ZzxhLmxlbmd0aDtnKyspe3ZhciBoPWFbZ10sbD1iKGgpO2w9PT1jP2QucHVzaChoKTpmPT09dm9pZCAwfHxsPGY/KGU9W2hdLGY9bCk6bD09PWYmJmUucHVzaChoKX1yZXR1cm4gZC5sZW5ndGg+MD9kOmV9ZnVuY3Rpb24gaHEoYSxiLGMpe2Zvcih2YXIgZD1bXSxlPWNxKGEsdm9pZCAwLHZvaWQgMCxjKSxmPTA7ZjxlLmxlbmd0aDtmKyspe3ZhciBnPWVbZl0uc3BsaXQoIi4iKSxoPWcuc2hpZnQoKTtpZighYnx8IWh8fGIuaW5kZXhPZihoKSE9PS0xKXt2YXIgbD1nLnNoaWZ0KCk7aWYobCl7dmFyIG49bC5zcGxpdCgiLSIpO2QucHVzaCh7QnI6ZVtmXSxDcjpnLmpvaW4oIi4iKSxKcjpOdW1iZXIoblswXSl8fDEsV3M6TnVtYmVyKG5bMV0pfHwxfSl9fX1yZXR1cm4gZH1mdW5jdGlvbiBscShhKXthJiZhLmxlbmd0aD4xMjAwJiYoYT1hLnN1YnN0cmluZygwLDEyMDApKTtyZXR1cm4gYX0KdmFyIHBxPS9eKHd3d1wuKT9nb29nbGUoXC5jb20/KT8oXC5bYS16XXsyfSk/JC8scXE9LyhefFwuKWRvdWJsZWNsaWNrXC5uZXQkL2k7ZnVuY3Rpb24gbnEoYSxiKXtyZXR1cm4gYSE9PXZvaWQgMCYmKHFxLnRlc3QoQS5kb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSl8fGI9PT0iLyImJnBxLnRlc3QoYSkpfWZ1bmN0aW9uIHJxKGEpe2lmKCFhKXJldHVybiAxO3ZhciBiPWE7WWYoNCkmJmE9PT0ibm9uZSImJihiPUEuZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUpO2I9Yi5pbmRleE9mKCIuIik9PT0wP2Iuc3Vic3RyaW5nKDEpOmI7cmV0dXJuIGIuc3BsaXQoIi4iKS5sZW5ndGh9ZnVuY3Rpb24gc3EoYSl7aWYoIWF8fGE9PT0iLyIpcmV0dXJuIDE7YVswXSE9PSIvIiYmKGE9Ii8iK2EpO2FbYS5sZW5ndGgtMV0hPT0iLyImJihhKz0iLyIpO3JldHVybiBhLnNwbGl0KCIvIikubGVuZ3RoLTF9CmZ1bmN0aW9uIHRxKGEsYil7dmFyIGM9IiIrcnEoYSksZD1zcShiKTtkPjEmJihjKz0iLSIrZCk7cmV0dXJuIGN9CnZhciBmcT1mdW5jdGlvbigpe3ZhciBhPUE7cmV0dXJuIFNwKGEpP2EuZG9jdW1lbnQuY29va2llOiIifSxlcT1mdW5jdGlvbihhKXtyZXR1cm4gYSYmWWYoNSk/KEFycmF5LmlzQXJyYXkoYSk/YTpbYV0pLmV2ZXJ5KGZ1bmN0aW9uKGIpe3JldHVybiBEbChiKSYmQmwoYil9KTohMH0sbXE9ZnVuY3Rpb24oKXt2YXIgYT1bXSxiPUEuZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUuc3BsaXQoIi4iKTtpZihiLmxlbmd0aD09PTQpe3ZhciBjPWJbYi5sZW5ndGgtMV07aWYoTnVtYmVyKGMpLnRvU3RyaW5nKCk9PT1jKXJldHVyblsibm9uZSJdfWZvcih2YXIgZD1iLmxlbmd0aC0yO2Q+PTA7ZC0tKWEucHVzaChiLnNsaWNlKGQpLmpvaW4oIi4iKSk7dmFyIGU9QS5kb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZTtxcS50ZXN0KGUpfHxwcS50ZXN0KGUpfHxhLnB1c2goIm5vbmUiKTtyZXR1cm4gYX07ZnVuY3Rpb24gdXEoYSxiLGMsZCl7dmFyIGUsZj1OdW1iZXIoYS5wZCE9bnVsbD9hLnBkOnZvaWQgMCk7ZiE9PTAmJihlPW5ldyBEYXRlKChifHxOYigpKSsxRTMqKGZ8fDc3NzZFMykpKTtyZXR1cm57cGF0aDphLnBhdGgsZG9tYWluOmEuZG9tYWluLGZsYWdzOmEuZmxhZ3MsZW5jb2RlOiEhYyxleHBpcmVzOmUsTWM6ZH19O3ZhciB2cT1uZXcgTWFwKFtbNSwiYWRfc3RvcmFnZSJdLFs0LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdXSxbMiwiYW5hbHl0aWNzX3N0b3JhZ2UiXV0pO2Z1bmN0aW9uIHdxKGEsYixjKXtpZihacFtiXSl7Zm9yKHZhciBkPVtdLGU9Y3EoYSx2b2lkIDAsdm9pZCAwLHZxLmdldChiKSksZj1tKGUpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD0kcChnLnZhbHVlLGIsYyk7aCYmZC5wdXNoKHhxKGgpKX1yZXR1cm4gZH19CmZ1bmN0aW9uIHlxKGEpe3ZhciBiPXpxO2lmKFpwWzJdKXtmb3IodmFyIGM9e30sZD1kcShhLHZvaWQgMCx2b2lkIDAsdnEuZ2V0KDIpKSxlPU9iamVjdC5rZXlzKGQpLnNvcnQoKSxmPW0oZSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpZm9yKHZhciBoPWcudmFsdWUsbD1tKGRbaF0pLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD0kcChuLnZhbHVlLDIsYik7cCYmKGNbaF18fChjW2hdPVtdKSxjW2hdLnB1c2goeHEocCkpKX1yZXR1cm4gY319ZnVuY3Rpb24gQXEoYSxiLGMsZCxlKXtkPWR8fHt9O3ZhciBmPXRxKGQuZG9tYWluLGQucGF0aCksZz1hcShiLGMsZik7aWYoIWcpcmV0dXJuIDE7dmFyIGg9dXEoZCxlLHZvaWQgMCx2cS5nZXQoYykpO3JldHVybiBvcShhLGcsaCl9ZnVuY3Rpb24gQnEoYSxiKXt2YXIgYz1iLm5hO3JldHVybiB0eXBlb2YgYz09PSJmdW5jdGlvbiI/YyhhKTpjLnRlc3QoYSl9CmZ1bmN0aW9uIHhxKGEpe2Zvcih2YXIgYj1tKE9iamVjdC5rZXlzKGEpKSxjPWIubmV4dCgpLGQ9e307IWMuZG9uZTtkPXtBZzp2b2lkIDB9LGM9Yi5uZXh0KCkpe3ZhciBlPWMudmFsdWUsZj1hW2VdO2QuQWc9VXBbZV07ZC5BZz9kLkFnLm5rP2FbZV09QXJyYXkuaXNBcnJheShmKT9mLmZpbHRlcihmdW5jdGlvbihnKXtyZXR1cm4gZnVuY3Rpb24oaCl7cmV0dXJuIEJxKGgsZy5BZyl9fShkKSk6dm9pZCAwOnR5cGVvZiBmPT09InN0cmluZyImJkJxKGYsZC5BZyl8fChhW2VdPXZvaWQgMCk6YVtlXT12b2lkIDB9cmV0dXJuIGF9O3ZhciBDcTtmdW5jdGlvbiBEcSgpe2Z1bmN0aW9uIGEoZyl7YyhnLnRhcmdldHx8Zy5zcmNFbGVtZW50fHx7fSl9ZnVuY3Rpb24gYihnKXtkKGcudGFyZ2V0fHxnLnNyY0VsZW1lbnR8fHt9KX12YXIgYz1FcSxkPUZxLGU9R3EoKTtpZighZS5pbml0KXskYyhCLCJtb3VzZWRvd24iLGEpOyRjKEIsImtleXVwIixhKTskYyhCLCJzdWJtaXQiLGIpO3ZhciBmPUhUTUxGb3JtRWxlbWVudC5wcm90b3R5cGUuc3VibWl0O0hUTUxGb3JtRWxlbWVudC5wcm90b3R5cGUuc3VibWl0PWZ1bmN0aW9uKCl7ZCh0aGlzKTtmLmNhbGwodGhpcyl9O2UuaW5pdD0hMH19ZnVuY3Rpb24gSHEoYSxiLGMsZCxlKXt2YXIgZj17Y2FsbGJhY2s6YSxkb21haW5zOmIsZnJhZ21lbnQ6Yz09PTIscGxhY2VtZW50OmMsZm9ybXM6ZCxzYW1lSG9zdDplfTtHcSgpLmRlY29yYXRvcnMucHVzaChmKX0KZnVuY3Rpb24gSXEoYSxiLGMpe2Zvcih2YXIgZD1HcSgpLmRlY29yYXRvcnMsZT17fSxmPTA7ZjxkLmxlbmd0aDsrK2Ype3ZhciBnPWRbZl0saDtpZihoPSFjfHxnLmZvcm1zKWE6e3ZhciBsPWcuZG9tYWlucyxuPWEscD0hIWcuc2FtZUhvc3Q7aWYobCYmKHB8fG4hPT1CLmxvY2F0aW9uLmhvc3RuYW1lKSlmb3IodmFyIHE9MDtxPGwubGVuZ3RoO3ErKylpZihsW3FdaW5zdGFuY2VvZiBSZWdFeHApe2lmKGxbcV0udGVzdChuKSl7aD0hMDticmVhayBhfX1lbHNlIGlmKG4uaW5kZXhPZihsW3FdKT49MHx8cCYmbFtxXS5pbmRleE9mKG4pPj0wKXtoPSEwO2JyZWFrIGF9aD0hMX1pZihoKXt2YXIgcj1nLnBsYWNlbWVudDtyPT09dm9pZCAwJiYocj1nLmZyYWdtZW50PzI6MSk7cj09PWImJlFiKGUsZy5jYWxsYmFjaygpKX19cmV0dXJuIGV9CmZ1bmN0aW9uIEdxKCl7dmFyIGE9TWMoImdvb2dsZV90YWdfZGF0YSIse30pLGI9YS5nbDtiJiZiLmRlY29yYXRvcnN8fChiPXtkZWNvcmF0b3JzOltdfSxhLmdsPWIpO3JldHVybiBifTt2YXIgSnE9LyguKj8pXCooLio/KVwqKC4qKS8sS3E9L15odHRwcz86XC9cLyhbXlwvXSo/KVwuP2NkblwuYW1wcHJvamVjdFwub3JnXC8/KC4qKS8sTHE9L14oPzp3d3dcLnxtXC58YW1wXC4pKy8sTXE9LyhbXj8jXSspKFw/W14jXSopPygjLiopPy87ZnVuY3Rpb24gTnEoYSl7dmFyIGI9TXEuZXhlYyhhKTtpZihiKXJldHVybntoazpiWzFdLHF1ZXJ5OmJbMl0sZnJhZ21lbnQ6YlszXX19ZnVuY3Rpb24gT3EoYSl7cmV0dXJuIG5ldyBSZWdFeHAoIiguKj8pKF58JikiK2ErIj0oW14mXSopJj8oLiopIil9CmZ1bmN0aW9uIFBxKGEsYil7dmFyIGM9W0hjLnVzZXJBZ2VudCwobmV3IERhdGUpLmdldFRpbWV6b25lT2Zmc2V0KCksSGMudXNlckxhbmd1YWdlfHxIYy5sYW5ndWFnZSxNYXRoLmZsb29yKE5iKCkvNjAvMUUzKS0oYj09PXZvaWQgMD8wOmIpLGFdLmpvaW4oIioiKSxkO2lmKCEoZD1DcSkpe2Zvcih2YXIgZT1BcnJheSgyNTYpLGY9MDtmPDI1NjtmKyspe2Zvcih2YXIgZz1mLGg9MDtoPDg7aCsrKWc9ZyYxP2c+Pj4xXjM5ODgyOTIzODQ6Zz4+PjE7ZVtmXT1nfWQ9ZX1DcT1kO2Zvcih2YXIgbD00Mjk0OTY3Mjk1LG49MDtuPGMubGVuZ3RoO24rKylsPWw+Pj44XkNxWyhsXmMuY2hhckNvZGVBdChuKSkmMjU1XTtyZXR1cm4oKGxeLTEpPj4+MCkudG9TdHJpbmcoMzYpfQpmdW5jdGlvbiBRcShhKXtyZXR1cm4gZnVuY3Rpb24oYil7dmFyIGM9UmooQS5sb2NhdGlvbi5ocmVmKSxkPWMuc2VhcmNoLnJlcGxhY2UoIj8iLCIiKSxlPUlqKGQsIl9nbCIsITEsITApfHwiIjtiLnF1ZXJ5PVJxKGUpfHx7fTt2YXIgZj1MaihjLCJmcmFnbWVudCIpLGc7dmFyIGg9LTE7aWYoU2IoZiwiX2dsPSIpKWg9NDtlbHNle3ZhciBsPWYuaW5kZXhPZigiJl9nbD0iKTtsPjAmJihoPWwrMysyKX1pZihoPDApZz12b2lkIDA7ZWxzZXt2YXIgbj1mLmluZGV4T2YoIiYiLGgpO2c9bjwwP2Yuc3Vic3RyaW5nKGgpOmYuc3Vic3RyaW5nKGgsbil9Yi5mcmFnbWVudD1ScShnfHwiIil8fHt9O2EmJlNxKGMsZCxmKX19ZnVuY3Rpb24gVHEoYSxiKXt2YXIgYz1PcShhKS5leGVjKGIpLGQ9YjtpZihjKXt2YXIgZT1jWzJdLGY9Y1s0XTtkPWNbMV07ZiYmKGQ9ZCtlK2YpfXJldHVybiBkfQpmdW5jdGlvbiBTcShhLGIsYyl7ZnVuY3Rpb24gZChnLGgpe3ZhciBsPVRxKCJfZ2wiLGcpO2wubGVuZ3RoJiYobD1oK2wpO3JldHVybiBsfWlmKEdjJiZHYy5yZXBsYWNlU3RhdGUpe3ZhciBlPU9xKCJfZ2wiKTtpZihlLnRlc3QoYil8fGUudGVzdChjKSl7dmFyIGY9TGooYSwicGF0aCIpO2I9ZChiLCI/Iik7Yz1kKGMsIiMiKTtHYy5yZXBsYWNlU3RhdGUoe30sIiIsIiIrZitiK2MpfX19ZnVuY3Rpb24gVXEoYSxiKXt2YXIgYz1RcSghIWIpLGQ9R3EoKTtkLmRhdGF8fChkLmRhdGE9e3F1ZXJ5Ont9LGZyYWdtZW50Ont9fSxjKGQuZGF0YSkpO3ZhciBlPXt9LGY9ZC5kYXRhO2YmJihRYihlLGYucXVlcnkpLGEmJlFiKGUsZi5mcmFnbWVudCkpO3JldHVybiBlfQp2YXIgUnE9ZnVuY3Rpb24oYSl7dHJ5e3ZhciBiPVZxKGEsMyk7aWYoYiE9PXZvaWQgMCl7Zm9yKHZhciBjPXt9LGQ9Yj9iLnNwbGl0KCIqIik6W10sZT0wO2UrMTxkLmxlbmd0aDtlKz0yKXt2YXIgZj1kW2VdLGc9cWIoZFtlKzFdKTtjW2ZdPWd9c2IoIlRBR0dJTkciLDYpO3JldHVybiBjfX1jYXRjaChoKXtzYigiVEFHR0lORyIsOCl9fTtmdW5jdGlvbiBWcShhLGIpe2lmKGEpe3ZhciBjO2E6e2Zvcih2YXIgZD1hLGU9MDtlPDM7KytlKXt2YXIgZj1KcS5leGVjKGQpO2lmKGYpe2M9ZjticmVhayBhfWQ9S2ooZCl8fCIifWM9dm9pZCAwfXZhciBnPWM7aWYoZyYmZ1sxXT09PSIxIil7dmFyIGg9Z1szXSxsO2E6e2Zvcih2YXIgbj1nWzJdLHA9MDtwPGI7KytwKWlmKG49PT1QcShoLHApKXtsPSEwO2JyZWFrIGF9bD0hMX1pZihsKXJldHVybiBoO3NiKCJUQUdHSU5HIiw3KX19fQpmdW5jdGlvbiBXcShhLGIsYyxkLGUpe2Z1bmN0aW9uIGYocCl7cD1UcShhLHApO3ZhciBxPXAuY2hhckF0KHAubGVuZ3RoLTEpO3AmJnEhPT0iJiImJihwKz0iJiIpO3JldHVybiBwK259ZD1kPT09dm9pZCAwPyExOmQ7ZT1lPT09dm9pZCAwPyExOmU7dmFyIGc9TnEoYyk7aWYoIWcpcmV0dXJuIiI7dmFyIGg9Zy5xdWVyeXx8IiIsbD1nLmZyYWdtZW50fHwiIixuPWErIj0iK2I7ZD9sLnN1YnN0cmluZygxKS5sZW5ndGghPT0wJiZlfHwobD0iIyIrZihsLnN1YnN0cmluZygxKSkpOmg9Ij8iK2YoaC5zdWJzdHJpbmcoMSkpO3JldHVybiIiK2cuaGsraCtsfQpmdW5jdGlvbiBYcShhLGIpe2Z1bmN0aW9uIGMobixwLHEpe3ZhciByO2E6e2Zvcih2YXIgdCBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkodCkpe3I9ITA7YnJlYWsgYX1yPSExfWlmKHIpe3ZhciB1LHY9W10seDtmb3IoeCBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkoeCkpe3ZhciB5PW5beF07eSE9PXZvaWQgMCYmeT09PXkmJnkhPT1udWxsJiZ5LnRvU3RyaW5nKCkhPT0iW29iamVjdCBPYmplY3RdIiYmKHYucHVzaCh4KSx2LnB1c2gocGIoU3RyaW5nKHkpKSkpfXZhciB6PXYuam9pbigiKiIpO3U9WyIxIixQcSh6KSx6XS5qb2luKCIqIik7ZD8oWWYoMyl8fFlmKDEpfHwhcCkmJllxKCJfZ2wiLHUsYSxwLHEpOlpxKCJfZ2wiLHUsYSxwLHEpfX12YXIgZD0oYS50YWdOYW1lfHwiIikudG9VcHBlckNhc2UoKT09PSJGT1JNIixlPUlxKGIsMSxkKSxmPUlxKGIsMixkKSxnPUlxKGIsNCxkKSxoPUlxKGIsMyxkKTtjKGUsITEsITEpO2MoZiwhMCwhMSk7WWYoMSkmJmMoZywhMCwhMCk7Zm9yKHZhciBsIGluIGgpaC5oYXNPd25Qcm9wZXJ0eShsKSYmCiRxKGwsaFtsXSxhKX1mdW5jdGlvbiAkcShhLGIsYyl7Yy50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0iYSI/WnEoYSxiLGMpOmMudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09ImZvcm0iJiZZcShhLGIsYyl9ZnVuY3Rpb24gWnEoYSxiLGMsZCxlKXtkPWQ9PT12b2lkIDA/ITE6ZDtlPWU9PT12b2lkIDA/ITE6ZTt2YXIgZjtpZihmPWMuaHJlZil7dmFyIGc7aWYoIShnPWQpKXt2YXIgaD1BLmxvY2F0aW9uLmhyZWYsbD1OcShjLmhyZWYpLG49TnEoaCk7Zz0hKGwmJm4mJmwuaGs9PT1uLmhrJiZsLnF1ZXJ5PT09bi5xdWVyeSYmbC5mcmFnbWVudCl9Zj1nfWlmKGYpe3ZhciBwPVdxKGEsYixjLmhyZWYsZCxlKTt2Yy50ZXN0KHApJiYoYy5ocmVmPXApfX0KZnVuY3Rpb24gWXEoYSxiLGMsZCxlKXtkPWQ9PT12b2lkIDA/ITE6ZDtlPWU9PT12b2lkIDA/ITE6ZTtpZihjKXt2YXIgZj1jLmdldEF0dHJpYnV0ZSgiYWN0aW9uIil8fCIiO2lmKGYpe3ZhciBnPShjLm1ldGhvZHx8IiIpLnRvTG93ZXJDYXNlKCk7aWYoZyE9PSJnZXQifHxkKXtpZihnPT09ImdldCJ8fGc9PT0icG9zdCIpe3ZhciBoPVdxKGEsYixmLGQsZSk7dmMudGVzdChoKSYmKGMuYWN0aW9uPWgpfX1lbHNle2Zvcih2YXIgbD1jLmNoaWxkTm9kZXN8fFtdLG49ITEscD0wO3A8bC5sZW5ndGg7cCsrKXt2YXIgcT1sW3BdO2lmKHEubmFtZT09PWEpe3Euc2V0QXR0cmlidXRlKCJ2YWx1ZSIsYik7bj0hMDticmVha319aWYoIW4pe3ZhciByPUIuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtyLnNldEF0dHJpYnV0ZSgidHlwZSIsImhpZGRlbiIpO3Iuc2V0QXR0cmlidXRlKCJuYW1lIixhKTtyLnNldEF0dHJpYnV0ZSgidmFsdWUiLGIpO2MuYXBwZW5kQ2hpbGQocil9fX19fQpmdW5jdGlvbiBFcShhKXt0cnl7dmFyIGI7YTp7Zm9yKHZhciBjPWEsZD0xMDA7YyYmZD4wOyl7aWYoYy5ocmVmJiZjLm5vZGVOYW1lLm1hdGNoKC9eYSg/OnJlYSk/JC9pKSl7Yj1jO2JyZWFrIGF9Yz1jLnBhcmVudE5vZGU7ZC0tfWI9bnVsbH12YXIgZT1iO2lmKGUpe3ZhciBmPWUucHJvdG9jb2w7ZiE9PSJodHRwOiImJmYhPT0iaHR0cHM6Inx8WHEoZSxlLmhvc3RuYW1lKX19Y2F0Y2goZyl7fX1mdW5jdGlvbiBGcShhKXt0cnl7dmFyIGI9YS5nZXRBdHRyaWJ1dGUoImFjdGlvbiIpO2lmKGIpe3ZhciBjPUxqKFJqKGIpLCJob3N0Iik7WHEoYSxjKX19Y2F0Y2goZCl7fX1mdW5jdGlvbiBhcihhLGIsYyxkKXtEcSgpO3ZhciBlPWM9PT0iZnJhZ21lbnQiPzI6MTtkPSEhZDtIcShhLGIsZSxkLCExKTtlPT09MiYmc2IoIlRBR0dJTkciLDIzKTtkJiZzYigiVEFHR0lORyIsMjQpfQpmdW5jdGlvbiBicihhLGIpe0RxKCk7SHEoYSxbTmooQS5sb2NhdGlvbiwiaG9zdCIsITApXSxiLCEwLCEwKX1mdW5jdGlvbiBjcigpe3ZhciBhPUIubG9jYXRpb24uaG9zdG5hbWUsYj1LcS5leGVjKEIucmVmZXJyZXIpO2lmKCFiKXJldHVybiExO3ZhciBjPWJbMl0sZD1iWzFdLGU9IiI7aWYoYyl7dmFyIGY9Yy5zcGxpdCgiLyIpLGc9ZlsxXTtlPWc9PT0icyI/S2ooZlsyXSl8fCIiOktqKGcpfHwiIn1lbHNlIGlmKGQpe2lmKGQuaW5kZXhPZigieG4tLSIpPT09MClyZXR1cm4hMTtlPWQucmVwbGFjZSgvLS9nLCIuIikucmVwbGFjZSgvXC5cLi9nLCItIil9dmFyIGg9YS5yZXBsYWNlKExxLCIiKSxsPWUucmVwbGFjZShMcSwiIik7cmV0dXJuIGg9PT1sfHxUYihoLCIuIitsKX1mdW5jdGlvbiBkcihhLGIpe3JldHVybiBhPT09ITE/ITE6YXx8Ynx8Y3IoKX07dmFyIGVyPWZ1bmN0aW9uKGEpe3RoaXMudmFsdWU9MDt0aGlzLnZhbHVlPWE9PT12b2lkIDA/MDphfTtlci5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlfD0xPDxhfTt2YXIgZnI9ZnVuY3Rpb24oYSxiKXtiPD0wfHwoYS52YWx1ZXw9MTw8Yi0xKX07ZXIucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfTtlci5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oYSl7dGhpcy52YWx1ZSY9figxPDxhKX07ZXIucHJvdG90eXBlLmNsZWFyQWxsPWZ1bmN0aW9uKCl7dGhpcy52YWx1ZT0wfTtlci5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlPT09YS52YWx1ZX07ZnVuY3Rpb24gZ3IoYSl7aWYoYSl0cnl7cmV0dXJuIG5ldyBVaW50OEFycmF5KGF0b2IoYS5yZXBsYWNlKC8tL2csIisiKS5yZXBsYWNlKC9fL2csIi8iKSkuc3BsaXQoIiIpLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYi5jaGFyQ29kZUF0KDApfSkpfWNhdGNoKGIpe319ZnVuY3Rpb24gaHIoYSxiKXt2YXIgYz0wLGQ9MCxlLGY9Yjtkb3tpZihmPj1hLmxlbmd0aClyZXR1cm47ZT1hW2YrK107Y3w9KGUmMTI3KTw8ZDtkKz03fXdoaWxlKGUmMTI4KTtyZXR1cm5bYyxmXX07ZnVuY3Rpb24gaXIoKXt2YXIgYT1TdHJpbmcsYj1BLmxvY2F0aW9uLmhvc3RuYW1lLGM9QS5sb2NhdGlvbi5wYXRobmFtZSxkPWI9YmMoYik7ZC5zcGxpdCgiLiIpLmxlbmd0aD4yJiYoZD1kLnJlcGxhY2UoL14od3d3WzAtOV0qfHdlYnxmdHB8d2FwfGhvbWV8bXx3fGFtcHxtb2JpbGUpXC4vLCIiKSk7Yj1kO2M9YmMoYyk7dmFyIGU9Yy5zcGxpdCgiOyIpWzBdO2U9ZS5yZXBsYWNlKC9cLyhhcnxzbHB8d2VifGluZGV4KT9cLz8kLywiIik7cmV0dXJuIGEobmcoKCIiK2IrZSkudG9Mb3dlckNhc2UoKSkpfTt2YXIganI9WyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl07ZnVuY3Rpb24ga3IoYSxiKXtpZighYSlyZXR1cm4gc2IoIlRBR0dJTkciLDMyKSwxMDtpZihiPT09bnVsbHx8Yj09PXZvaWQgMHx8Yj09PSIiKXJldHVybiBzYigiVEFHR0lORyIsMzMpLDExO3ZhciBjPWxyKCExKTtpZihjLmVycm9yIT09MClyZXR1cm4gc2IoIlRBR0dJTkciLDM0KSxjLmVycm9yO2lmKCFjLnZhbHVlKXJldHVybiBzYigiVEFHR0lORyIsMzUpLDI7Yy52YWx1ZVthXT1iO3ZhciBkPW1yKGMpO2QhPT0wJiZzYigiVEFHR0lORyIsMzYpO3JldHVybiBkfQpmdW5jdGlvbiBucihhKXtpZighYSlyZXR1cm4gc2IoIlRBR0dJTkciLDI3KSx7ZXJyb3I6MTB9O3ZhciBiPWxyKCk7aWYoYi5lcnJvciE9PTApcmV0dXJuIHNiKCJUQUdHSU5HIiwyOSksYjtpZighYi52YWx1ZSlyZXR1cm4gc2IoIlRBR0dJTkciLDMwKSx7ZXJyb3I6Mn07aWYoIShhIGluIGIudmFsdWUpKXJldHVybiBzYigiVEFHR0lORyIsMzEpLHt2YWx1ZTp2b2lkIDAsZXJyb3I6MTV9O3ZhciBjPWIudmFsdWVbYV07cmV0dXJuIGM9PT1udWxsfHxjPT09dm9pZCAwfHxjPT09IiI/KHNiKCJUQUdHSU5HIiwyOCkse3ZhbHVlOnZvaWQgMCxlcnJvcjoxMX0pOnt2YWx1ZTpjLGVycm9yOjB9fQpmdW5jdGlvbiBvcihhKXtpZihhKXt2YXIgYj1scighMSk7Yi5lcnJvciE9PTA/c2IoIlRBR0dJTkciLDM4KTpiLnZhbHVlP2EgaW4gYi52YWx1ZT8oZGVsZXRlIGIudmFsdWVbYV0sbXIoYikhPT0wJiZzYigiVEFHR0lORyIsNDEpKTpzYigiVEFHR0lORyIsNDApOnNiKCJUQUdHSU5HIiwzOSl9ZWxzZSBzYigiVEFHR0lORyIsMzcpfQpmdW5jdGlvbiBscihhKXthPWE9PT12b2lkIDA/ITA6YTtpZighQmwoanIpKXJldHVybiBzYigiVEFHR0lORyIsNDMpLHtlcnJvcjozfTt0cnl7aWYoIUEubG9jYWxTdG9yYWdlKXJldHVybiBzYigiVEFHR0lORyIsNDQpLHtlcnJvcjoxfX1jYXRjaChmKXtyZXR1cm4gc2IoIlRBR0dJTkciLDQ1KSx7ZXJyb3I6MTR9fXZhciBiPXtzY2hlbWE6ImdjbCIsdmVyc2lvbjoxfSxjPXZvaWQgMDt0cnl7Yz1BLmxvY2FsU3RvcmFnZS5nZXRJdGVtKCJfZ2NsX2xzIil9Y2F0Y2goZil7cmV0dXJuIHNiKCJUQUdHSU5HIiw0Nikse2Vycm9yOjEzfX10cnl7aWYoYyl7dmFyIGQ9SlNPTi5wYXJzZShjKTtpZihkJiZ0eXBlb2YgZD09PSJvYmplY3QiKWI9ZDtlbHNlIHJldHVybiBzYigiVEFHR0lORyIsNDcpLHtlcnJvcjoxMn19fWNhdGNoKGYpe3JldHVybiBzYigiVEFHR0lORyIsNDgpLHtlcnJvcjo4fX1pZihiLnNjaGVtYSE9PSJnY2wiKXJldHVybiBzYigiVEFHR0lORyIsNDkpLHtlcnJvcjo0fTsKaWYoYi52ZXJzaW9uIT09MSlyZXR1cm4gc2IoIlRBR0dJTkciLDUwKSx7ZXJyb3I6NX07dHJ5e3ZhciBlPXByKGIpO2EmJmUmJm1yKHt2YWx1ZTpiLGVycm9yOjB9KX1jYXRjaChmKXtyZXR1cm4gc2IoIlRBR0dJTkciLDQ4KSx7ZXJyb3I6OH19cmV0dXJue3ZhbHVlOmIsZXJyb3I6MH19CmZ1bmN0aW9uIHByKGEpe2lmKCFhfHx0eXBlb2YgYSE9PSJvYmplY3QiKXJldHVybiExO2lmKCJleHBpcmVzImluIGEmJiJ2YWx1ZSJpbiBhKXt2YXIgYjt0eXBlb2YgYS5leHBpcmVzPT09Im51bWJlciI/Yj1hLmV4cGlyZXM6Yj10eXBlb2YgYS5leHBpcmVzPT09InN0cmluZyI/TnVtYmVyKGEuZXhwaXJlcyk6TmFOO2lmKGlzTmFOKGIpfHwhKERhdGUubm93KCk8PWIpKXJldHVybiBhLnZhbHVlPW51bGwsYS5lcnJvcj05LHNiKCJUQUdHSU5HIiw1NCksITB9ZWxzZXtmb3IodmFyIGM9ITEsZD1tKE9iamVjdC5rZXlzKGEpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSljPXByKGFbZS52YWx1ZV0pfHxjO3JldHVybiBjfXJldHVybiExfQpmdW5jdGlvbiBtcihhKXtpZihhLmVycm9yKXJldHVybiBhLmVycm9yO2lmKCFhLnZhbHVlKXJldHVybiBzYigiVEFHR0lORyIsNDIpLDI7dmFyIGI9YS52YWx1ZSxjO3RyeXtjPUpTT04uc3RyaW5naWZ5KGIpfWNhdGNoKGQpe3JldHVybiBzYigiVEFHR0lORyIsNTIpLDZ9dHJ5e0EubG9jYWxTdG9yYWdlLnNldEl0ZW0oIl9nY2xfbHMiLGMpfWNhdGNoKGQpe3JldHVybiBzYigiVEFHR0lORyIsNTMpLDd9cmV0dXJuIDB9O3ZhciBxcj17fSxycj0ocXIuZ2NsaWQ9ITAscXIuZGNsaWQ9ITAscXIuZ2JyYWlkPSEwLHFyLndicmFpZD0hMCxxciksc3I9L15cdyskLyx0cj0vXltcdy1dKyQvLHVyPXt9LHZyPSh1ci5hdz0iRlBHQ0xBVyIsdXIpLHdyPXt9LHhyPSh3ci5hZz0iX2FnIix3ci5nYj0iX2diIix3ci5hdz0iX2F3Iix3ci5kYz0iX2RjIix3ci5nZj0iX2dmIix3ci5oYT0iX2hhIix3ci5ncD0iX2dwIix3ci5ncz0iX2dzIix3cikseXI9L14oPzp3d3dcLik/Z29vZ2xlKD86XC5jb20/KT8oPzpcLlthLXpdezJ9dD8pPyQvLHpyPS9ed3d3XC5nb29nbGVhZHNlcnZpY2VzXC5jb20kLztmdW5jdGlvbiBBcigpe3JldHVyblsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdfWZ1bmN0aW9uIEJyKGEpe3JldHVybiFZZig1KXx8QmwoYSl9ZnVuY3Rpb24gQ3IoYSxiKXtmdW5jdGlvbiBjKCl7dmFyIGQ9QnIoYik7ZCYmYSgpO3JldHVybiBkfUhsKGZ1bmN0aW9uKCl7YygpfHxJbChjLGIpfSxiKX0KZnVuY3Rpb24gRHIoYSl7cmV0dXJuIEVyKGEpLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYi5nY2xpZH0pfWZ1bmN0aW9uIEZyKGEpe3JldHVybiBHcihhKS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIGIuZ2NsaWR9KS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGIuZ2NsaWR9KX1mdW5jdGlvbiBHcihhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPUhyKGEucHJlZml4KSxkPUlyKCJnYiIsYyksZT1JcigiYWciLGMpO2lmKCFlfHwhZClyZXR1cm5bXTt2YXIgZj1mdW5jdGlvbihsKXtyZXR1cm4gZnVuY3Rpb24obil7bi56Zz1sO3JldHVybiBufX0sZz1FcihkLGIpLm1hcChmKCJnYiIpKSxoPUpyKGUpLm1hcChmKCJhZyIpKTtyZXR1cm4gZy5jb25jYXQoaCkuc29ydChmdW5jdGlvbihsLG4pe3JldHVybiBuLnRpbWVzdGFtcC1sLnRpbWVzdGFtcH0pfQpmdW5jdGlvbiBLcihhLGIsYyxkLGUpe3ZhciBmPUNiKGEsZnVuY3Rpb24oZyl7cmV0dXJuIGcuZ2NsaWQ9PT1ifSk7Zj8oZi50aW1lc3RhbXA8YyYmKGYudGltZXN0YW1wPWMsZi5vZD1lKSxmLmxhYmVscz1McihmLmxhYmVsc3x8W10sZHx8W10pKTphLnB1c2goe3ZlcnNpb246IjIiLGdjbGlkOmIsdGltZXN0YW1wOmMsbGFiZWxzOmQsb2Q6ZX0pfWZ1bmN0aW9uIE1yKGEpe2Zvcih2YXIgYj13cShhLDUpfHxbXSxjPVtdLGQ9bShiKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZSxnPWYsaD1OcihmKTtoJiZLcihjLGcuayxoLGcuYnx8W10sZi51KX1yZXR1cm4gYy5zb3J0KGZ1bmN0aW9uKGwsbil7cmV0dXJuIG4udGltZXN0YW1wLWwudGltZXN0YW1wfSl9CmZ1bmN0aW9uIEVyKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9W107T3IoYyxhLDEpO2lmKGIpaWYoVGIoYSwiX2F3Iikpe3ZhciBkPVByKCk7ZCYmKGQub2Q9dm9pZCAwLGQub2E9ZC5vYXx8WzJdLFFyKGMsZCkpO09yKGMsImdjbF9hdyIsMil9ZWxzZSBUYihhLCJfZ2IiKSYmWWYoNikmJk9yKGMsImdjbF9nYiIsMik7Yy5zb3J0KGZ1bmN0aW9uKGUsZil7cmV0dXJuIGYudGltZXN0YW1wLWUudGltZXN0YW1wfSk7cmV0dXJuIFJyKGMpfWZ1bmN0aW9uIFNyKGEsYil7Zm9yKHZhciBjPVtdLGQ9bShhKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtjLmluY2x1ZGVzKGYpfHxjLnB1c2goZil9Zm9yKHZhciBnPW0oYiksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWU7Yy5pbmNsdWRlcyhsKXx8Yy5wdXNoKGwpfXJldHVybiBjfQpmdW5jdGlvbiBRcihhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7Zm9yKHZhciBkLGUsZj1tKGEpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1nLnZhbHVlO2lmKGguZ2NsaWQ9PT1iLmdjbGlkKXtkPWg7YnJlYWt9aC5xYSYmYi5xYSYmaC5xYS5lcXVhbHMoYi5xYSkmJihlPWgpfWlmKGQpe3ZhciBsLG4scD0obD1kLnFhKSE9bnVsbD9sOm5ldyBlcixxPShuPWIucWEpIT1udWxsP246bmV3IGVyO3AudmFsdWV8PXEudmFsdWU7ZC5xYT1wO2QudGltZXN0YW1wPGIudGltZXN0YW1wJiYoZC50aW1lc3RhbXA9Yi50aW1lc3RhbXAsZC5vZD1iLm9kKTtkLmxhYmVscz1TcihkLmxhYmVsc3x8W10sYi5sYWJlbHN8fFtdKTtkLm9hPVNyKGQub2F8fFtdLGIub2F8fFtdKX1lbHNlIGMmJmU/bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxlLGIpOmEucHVzaChiKX0KZnVuY3Rpb24gVHIoYSl7aWYoIWEpcmV0dXJuIG5ldyBlcjt2YXIgYj1uZXcgZXI7aWYoYT09PTEpcmV0dXJuIGZyKGIsMiksZnIoYiwzKSxiO2ZyKGIsYSk7cmV0dXJuIGJ9CmZ1bmN0aW9uIFByKCl7dmFyIGE9bnIoImdjbGlkIik7aWYoIWF8fGEuZXJyb3J8fCFhLnZhbHVlfHx0eXBlb2YgYS52YWx1ZSE9PSJvYmplY3QiKXJldHVybiBudWxsO3ZhciBiPWEudmFsdWU7dHJ5e2lmKCEoInZhbHVlImluIGImJmIudmFsdWUpfHx0eXBlb2YgYi52YWx1ZSE9PSJvYmplY3QiKXJldHVybiBudWxsO3ZhciBjPWIudmFsdWUsZD1jLnZhbHVlO2lmKCFkfHwhZC5tYXRjaCh0cikpcmV0dXJuIG51bGw7dmFyIGU9Yy5saW5rRGVjb3JhdGlvblNvdXJjZSxmPWMubGlua0RlY29yYXRpb25Tb3VyY2VzLGc9bmV3IGVyO3R5cGVvZiBlPT09Im51bWJlciI/Zz1UcihlKTp0eXBlb2YgZj09PSJudW1iZXIiJiYoZy52YWx1ZT1mKTtyZXR1cm57dmVyc2lvbjoiIixnY2xpZDpkLHRpbWVzdGFtcDpOdW1iZXIoYy5jcmVhdGlvblRpbWVNcyl8fDAsbGFiZWxzOltdLHFhOmcsb2E6WzJdfX1jYXRjaChoKXtyZXR1cm4gbnVsbH19CmZ1bmN0aW9uIFVyKGEpe3ZhciBiPW5yKGEpO2lmKGIuZXJyb3IhPT0wKXJldHVybiBudWxsO3RyeXtyZXR1cm4gYi52YWx1ZS5yZWR1Y2UoZnVuY3Rpb24oYyxkKXtpZighZC52YWx1ZXx8dHlwZW9mIGQudmFsdWUhPT0ib2JqZWN0IilyZXR1cm4gYzt2YXIgZT1kLnZhbHVlLGY9ZS52YWx1ZTtpZighZnx8IWYubWF0Y2godHIpKXJldHVybiBjO3ZhciBnPW5ldyBlcixoPWUubGlua0RlY29yYXRpb25Tb3VyY2VzO3R5cGVvZiBoPT09Im51bWJlciImJihnLnZhbHVlPWgpO3ZhciBsO2MucHVzaCh7dmVyc2lvbjoiIixnY2xpZDpmLHRpbWVzdGFtcDpOdW1iZXIoZS5jcmVhdGlvblRpbWVNcyl8fDAsZXhwaXJlczpOdW1iZXIoZC5leHBpcmVzKXx8MCxsYWJlbHM6KGw9ZS5sYWJlbHMpIT1udWxsP2w6W10scWE6ZyxvYTpbMl19KTtyZXR1cm4gY30sW10pfWNhdGNoKGMpe3JldHVybiBudWxsfX0KZnVuY3Rpb24gT3IoYSxiLGMpe2lmKGM9PT0xKWZvcih2YXIgZD1jcShiLEIuY29va2llLHZvaWQgMCxBcigpKSxlPW0oZCksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPVZyKGYudmFsdWUuc3BsaXQoIi4iKSksaD1nLmxlbmd0aD09PTA/bnVsbDp7dmVyc2lvbjpnWzBdLGdjbGlkOmdbMl0sdGltZXN0YW1wOihOdW1iZXIoZ1sxXSl8fDApKjFFMyxsYWJlbHM6Zy5zbGljZSgzKX07aCE9bnVsbCYmKGgub2Q9dm9pZCAwLGgucWE9bmV3IGVyLGgub2E9W2NdLFFyKGEsaCkpfWVsc2UgaWYoYz09PTIpe3ZhciBsPVVyKGIpO2lmKGwpZm9yKHZhciBuPW0obCkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPXAudmFsdWU7cS5vZD12b2lkIDA7cS5vYT1xLm9hO1FyKGEscSl9fX0KZnVuY3Rpb24gWnIoYSl7dmFyIGI9RXIoYSksYz1VcigiZ2NsX2RjIik7aWYoYylmb3IodmFyIGQ9bShjKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtmLm9kPXZvaWQgMDtmLm9hPWYub2F8fFsyXTtRcihiLGYpfWIuc29ydChmdW5jdGlvbihnLGgpe3ZhciBsPWcub2EmJmcub2EuaW5jbHVkZXMoMSksbj1oLm9hJiZoLm9hLmluY2x1ZGVzKDEpO3JldHVybiBsJiYhbj8tMTohbCYmbj8xOmgudGltZXN0YW1wLWcudGltZXN0YW1wfSk7cmV0dXJuIFJyKGIpfWZ1bmN0aW9uIEpyKGEpe3JldHVybiBNcihhKS5tYXAoZnVuY3Rpb24oYil7Yi5xYT1uZXcgZXI7Yi5vYT1bMV07cmV0dXJuIGJ9KX0KZnVuY3Rpb24gTHIoYSxiKXtpZighYS5sZW5ndGgpcmV0dXJuIGI7aWYoIWIubGVuZ3RoKXJldHVybiBhO3ZhciBjPXt9O3JldHVybiBhLmNvbmNhdChiKS5maWx0ZXIoZnVuY3Rpb24oZCl7cmV0dXJuIGMuaGFzT3duUHJvcGVydHkoZCk/ITE6Y1tkXT0hMH0pfWZ1bmN0aW9uIEhyKGEpe3JldHVybiBhJiZ0eXBlb2YgYT09PSJzdHJpbmciJiZhLm1hdGNoKHNyKT9hOiJfZ2NsIn1mdW5jdGlvbiAkcihhLGIpe2lmKGEpe3ZhciBjPXt2YWx1ZTphLHFhOm5ldyBlcn07ZnIoYy5xYSxiKTtyZXR1cm4gY319CmZ1bmN0aW9uIGFzKGEsYixjKXt2YXIgZD1SaihhKSxlPUxqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbHNyYyIpLGY9JHIoTGooZCwicXVlcnkiLCExLHZvaWQgMCwiZ2NsaWQiKSxjPzQ6Mik7aWYoYiYmKCFmfHwhZSkpe3ZhciBnPWQuaGFzaC5yZXBsYWNlKCIjIiwiIik7Znx8KGY9JHIoSWooZywiZ2NsaWQiLCExKSwzKSk7ZXx8KGU9SWooZywiZ2Nsc3JjIiwhMSkpfXJldHVybiBmJiYoZT09PXZvaWQgMHx8ZT09PSJhdyJ8fGU9PT0iYXcuZHMifHxZZig4KSYmZT09PSJhdy5kdiIpP1tmXTpbXX0KZnVuY3Rpb24gYnMoYSxiKXt2YXIgYz1SaihhKSxkPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbGlkIiksZT1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xzcmMiKSxmPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsIndicmFpZCIpO2Y9JGIoZik7dmFyIGc9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZ2JyYWlkIiksaD1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJnYWRfc291cmNlIiksbD1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJkY2xpZCIpO2lmKGImJiEoZCYmZSYmZiYmZykpe3ZhciBuPWMuaGFzaC5yZXBsYWNlKCIjIiwiIik7ZD1kfHxJaihuLCJnY2xpZCIsITEpO2U9ZXx8SWoobiwiZ2Nsc3JjIiwhMSk7Zj1mfHxJaihuLCJ3YnJhaWQiLCExKTtnPWd8fElqKG4sImdicmFpZCIsITEpO2g9aHx8SWoobiwiZ2FkX3NvdXJjZSIsITEpfXJldHVybiBjcyhkLGUsbCxmLGcsaCl9CmZ1bmN0aW9uIGRzKGEsYixjKXt2YXIgZD1SaihhKSxlPUxqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbHNyYyIpLGY9JHIoTGooZCwicXVlcnkiLCExLHZvaWQgMCwiZ2NsaWQiKSxjPzQ6MiksZz0kcihMaihkLCJxdWVyeSIsITEsdm9pZCAwLCJkY2xpZCIpLGM/NDoyKTtpZihiJiYoIWV8fCFmKSl7dmFyIGg9ZC5oYXNoLnJlcGxhY2UoIiMiLCIiKTtmfHwoZj0kcihJaihoLCJnY2xpZCIsITEpLDMpKTtlfHwoZT1JaihoLCJnY2xzcmMiLCExKSl9cmV0dXJuIGYmJmUmJihlPT09ImF3LmRzInx8ZT09PSJhdy5kdiJ8fGU9PT0iM3AuZHMifHxlPT09ImRzIik/W2ZdOmc/W2ddOltdfWZ1bmN0aW9uIGVzKCl7cmV0dXJuIGJzKEEubG9jYXRpb24uaHJlZiwhMCl9CmZ1bmN0aW9uIGNzKGEsYixjLGQsZSxmKXt2YXIgZz17fSxoPWZ1bmN0aW9uKGwsbil7Z1tuXXx8KGdbbl09W10pO2dbbl0ucHVzaChsKX07Zy5nY2xpZD1hO2cuZ2Nsc3JjPWI7Zy5kY2xpZD1jO2lmKGEhPT12b2lkIDAmJmEubWF0Y2godHIpKXN3aXRjaChiKXtjYXNlIHZvaWQgMDpoKGEsImF3Iik7YnJlYWs7Y2FzZSAiYXcuZHMiOmgoYSwiYXciKTtoKGEsImRjIik7YnJlYWs7Y2FzZSAiYXcuZHYiOllmKDgpJiYoaChhLCJhdyIpLGgoYSwiZGMiKSk7YnJlYWs7Y2FzZSAiZHMiOmgoYSwiZGMiKTticmVhaztjYXNlICIzcC5kcyI6aChhLCJkYyIpO2JyZWFrO2Nhc2UgImdmIjpoKGEsImdmIik7YnJlYWs7Y2FzZSAiaGEiOmgoYSwiaGEiKX1jJiZoKGMsImRjIik7ZCE9PXZvaWQgMCYmdHIudGVzdChkKSYmKGcud2JyYWlkPWQsaChkLCJnYiIpKTtlIT09dm9pZCAwJiZ0ci50ZXN0KGUpJiYoZy5nYnJhaWQ9ZSxoKGUsImFnIikpO2YhPT12b2lkIDAmJnRyLnRlc3QoZikmJihnLmdhZF9zb3VyY2U9CmYsaChmLCJncyIpKTtyZXR1cm4gZ31mdW5jdGlvbiBmcygpe2Zvcih2YXIgYT1lcygpLGI9ITAsYz1tKE9iamVjdC5rZXlzKGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSlpZihhW2QudmFsdWVdIT09dm9pZCAwKXtiPSExO2JyZWFrfWImJihhPWJzKEEuZG9jdW1lbnQucmVmZXJyZXIsITEpLGEuZ2FkX3NvdXJjZT12b2lkIDApO3JldHVybiBhfWZ1bmN0aW9uIGdzKGEpe3ZhciBiPWZzKCk7aHMoYiwhMSxhKX0KZnVuY3Rpb24gaXMoYSl7dmFyIGI9YXMoQS5sb2NhdGlvbi5ocmVmLCEwLCExKTtiLmxlbmd0aHx8KGI9YXMoQS5kb2N1bWVudC5yZWZlcnJlciwhMSwhMCkpO2E9YXx8e307anMoYSk7aWYoYi5sZW5ndGgpe3ZhciBjPWJbMF0sZD1OYigpLGU9dXEoYSxkLCEwKSxmPUFyKCksZz1mdW5jdGlvbigpe0JyKGYpJiZlLmV4cGlyZXMhPT12b2lkIDAmJmtyKCJnY2xpZCIse3ZhbHVlOnt2YWx1ZTpjLnZhbHVlLGNyZWF0aW9uVGltZU1zOmQsbGlua0RlY29yYXRpb25Tb3VyY2VzOmMucWEuZ2V0KCl9LGV4cGlyZXM6TnVtYmVyKGUuZXhwaXJlcyl9KX07SGwoZnVuY3Rpb24oKXtnKCk7QnIoZil8fElsKGcsZil9LGYpfX0KZnVuY3Rpb24ganMoYSl7dmFyIGI9Qi5yZWZlcnJlcj9MaihSaihCLnJlZmVycmVyKSwiaG9zdCIpOiIiO2lmKHlyLnRlc3QoYil8fHpyLnRlc3QoYil8fGtzKCkpe3ZhciBjO2E6e2Zvcih2YXIgZD1SaihBLmxvY2F0aW9uLmhyZWYpLGU9SmooTGooZCwicXVlcnkiKSksZj1tKE9iamVjdC5rZXlzKGUpKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtpZighcnJbaF0pe3ZhciBsPWVbaF1bMF18fCIiLG47aWYoIWx8fGwubGVuZ3RoPDUwfHxsLmxlbmd0aD4yMDApbj0hMTtlbHNle3ZhciBwPWdyKGwpLHE7aWYocCljOnt2YXIgcj1wO2lmKHImJnIubGVuZ3RoIT09MCl7dmFyIHQ9MDt0cnl7Zm9yKHZhciB1PTEwO3Q8ci5sZW5ndGgmJiEodS0tPD0wKTspe3ZhciB2PWhyKHIsdCk7aWYodj09PXZvaWQgMClicmVhazt2YXIgeD1tKHYpLHk9eC5uZXh0KCkudmFsdWUsej14Lm5leHQoKS52YWx1ZSxDPXksRD16LEk9QyY3O2lmKEM+PjM9PT0xNjM4Mil7aWYoSSE9PQowKWJyZWFrO3ZhciBHPWhyKHIsRCk7aWYoRz09PXZvaWQgMClicmVhaztxPW0oRykubmV4dCgpLnZhbHVlPT09MTticmVhayBjfXZhciBOO2Q6e3ZhciBTPXZvaWQgMCxXPXIsZWE9RDtzd2l0Y2goSSl7Y2FzZSAwOk49KFM9aHIoVyxlYSkpPT1udWxsP3ZvaWQgMDpTWzFdO2JyZWFrIGQ7Y2FzZSAxOk49ZWErODticmVhayBkO2Nhc2UgMjp2YXIgamE9aHIoVyxlYSk7aWYoamE9PT12b2lkIDApYnJlYWs7dmFyIGZhPW0oamEpLHNhPWZhLm5leHQoKS52YWx1ZTtOPWZhLm5leHQoKS52YWx1ZStzYTticmVhayBkO2Nhc2UgNTpOPWVhKzQ7YnJlYWsgZH1OPXZvaWQgMH1pZihOPT09dm9pZCAwfHxOPnIubGVuZ3RofHxOPD10KWJyZWFrO3Q9Tn19Y2F0Y2gobWEpe319cT0hMX1lbHNlIHE9ITE7bj1xfWlmKG4pe2M9bDticmVhayBhfX19Yz12b2lkIDB9dmFyIGRhPWM7ZGEmJmxzKCJnY2xfYXciLGRhLDcsYSl9fQpmdW5jdGlvbiBscyhhLGIsYyxkKXttcyhhLFt7dmVyc2lvbjoiIixnY2xpZDpiLHRpbWVzdGFtcDpOYigpLHFhOlRyKGMpfV0sZCl9CmZ1bmN0aW9uIG1zKGEsYixjKXtjPWN8fHt9O3ZhciBkPUFyKCksZT1mdW5jdGlvbigpe2lmKEJyKGQpJiZiLmxlbmd0aD4wKXt2YXIgZj1VcihhKXx8W107Yi5mb3JFYWNoKGZ1bmN0aW9uKGcpe3ZhciBoPXVxKGMsZy50aW1lc3RhbXAsITApO2guZXhwaXJlcyE9PXZvaWQgMCYmUXIoZix7dmVyc2lvbjoiIixnY2xpZDpnLmdjbGlkLHRpbWVzdGFtcDpnLnRpbWVzdGFtcCxleHBpcmVzOk51bWJlcihoLmV4cGlyZXMpLHFhOmcucWEsbGFiZWxzOmcubGFiZWxzfSwhMCl9KTtmLmxlbmd0aCYma3IoYSxmLm1hcChmdW5jdGlvbihnKXt2YXIgaD17dmFsdWU6Zy5nY2xpZCxjcmVhdGlvblRpbWVNczpnLnRpbWVzdGFtcCxsaW5rRGVjb3JhdGlvblNvdXJjZXM6Zy5xYT9nLnFhLmdldCgpOjB9LGw7aWYoKGw9Zy5sYWJlbHMpPT1udWxsPzA6bC5sZW5ndGgpaC5sYWJlbHM9Zy5sYWJlbHM7cmV0dXJue3ZhbHVlOmgsZXhwaXJlczpOdW1iZXIoZy5leHBpcmVzKX19KSl9fTtIbChmdW5jdGlvbigpe0JyKGQpPwplKCk6SWwoZSxkKX0sZCl9CmZ1bmN0aW9uIGhzKGEsYixjLGQsZSl7Yz1jfHx7fTtlPWV8fFtdO3ZhciBmPUhyKGMucHJlZml4KSxnPWR8fE5iKCksaD1NYXRoLnJvdW5kKGcvMUUzKSxsPUFyKCksbj0hMSxwPSExLHE9WWYoOSkscj1mdW5jdGlvbigpe2lmKEJyKGwpKXt2YXIgdD11cShjLGcsITApO3QuTWM9bDtmb3IodmFyIHU9ZnVuY3Rpb24oVyxlYSl7dmFyIGphPUlyKFcsZik7amEmJihvcShqYSxlYSx0KSxXIT09ImdiIiYmKG49ITApKX0sdj1mdW5jdGlvbihXKXt2YXIgZWE9WyJHQ0wiLGgsV107ZS5sZW5ndGg+MCYmZWEucHVzaChlLmpvaW4oIi4iKSk7cmV0dXJuIGVhLmpvaW4oIi4iKX0seD1tKFsiYXciLCJkYyIsImdmIiwiaGEiLCJncCJdKSx5PXgubmV4dCgpOyF5LmRvbmU7eT14Lm5leHQoKSl7dmFyIHo9eS52YWx1ZTthW3pdJiZ1KHosdihhW3pdWzBdKSl9aWYoKCFufHxxKSYmYS5nYil7dmFyIEM9YS5nYlswXSxEPUlyKCJnYiIsZik7IWImJkVyKEQpLnNvbWUoZnVuY3Rpb24oVyl7cmV0dXJuIFcuZ2NsaWQ9PT1DJiYKVy5sYWJlbHMmJlcubGFiZWxzLmxlbmd0aD4wfSl8fHUoImdiIix2KEMpKX19aWYoIXAmJmEuZ2JyYWlkJiZCcigiYWRfc3RvcmFnZSIpJiYocD0hMCwhbnx8cSkpe3ZhciBJPWEuZ2JyYWlkLEc9SXIoImFnIixmKTtpZihifHwhSnIoRykuc29tZShmdW5jdGlvbihXKXtyZXR1cm4gVy5nY2xpZD09PUkmJlcubGFiZWxzJiZXLmxhYmVscy5sZW5ndGg+MH0pKXt2YXIgTj17fSxTPShOLms9SSxOLmk9IiIraCxOLmI9ZSxOKTtBcShHLFMsNSxjLGcpfX1ucyhhLGYsZyxjKX07SGwoZnVuY3Rpb24oKXtyKCk7QnIobCl8fElsKHIsbCl9LGwpfQpmdW5jdGlvbiBucyhhLGIsYyxkKXtpZihhLmdhZF9zb3VyY2UhPT12b2lkIDAmJkJyKCJhZF9zdG9yYWdlIikpe3ZhciBlPXFkKCk7aWYoZSE9PSJyIiYmZSE9PSJoIil7dmFyIGY9YS5nYWRfc291cmNlLGc9SXIoImdzIixiKTtpZihnKXt2YXIgaD1NYXRoLmZsb29yKChOYigpLShwZCgpfHwwKSkvMUUzKSxsLG49aXIoKSxwPXt9O2w9KHAuaz1mLHAuaT0iIitoLHAudT1uLHApO0FxKGcsbCw1LGQsYyl9fX19ZnVuY3Rpb24gb3MoYSxiLGMpe2Zvcih2YXIgZD13cShiLGMpLGU9MDtlPGQubGVuZ3RoOysrZSlpZihOcihkW2VdKT5hKXJldHVybiEwO3JldHVybiExfQpmdW5jdGlvbiBwcyhhKXt2YXIgYj1xcyxjPXJzKGEucHJlZml4KTtDcihmdW5jdGlvbigpe2Zvcih2YXIgZD1IcihhLnByZWZpeCksZT1tKGIpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlLGg9Y1tnXTtpZihoKXt2YXIgbD1NYXRoLm1pbihzcyhoKSxOYigpKSxuPXVxKGEsbCwhMCk7bi5NYz1BcigpO3ZhciBwPUlyKGcsZCk7cCYmb3EocCxoLG4pfX12YXIgcT1VcSghMCk7aHMoY3MocS5nY2xpZCxxLmdjbHNyYyksITEsYSl9LEFyKCkpfQpmdW5jdGlvbiBycyhhKXt2YXIgYj1VcSghMCksYz1IcihhKSxkPXt9LGU7Zm9yKGUgaW4geHIpaWYoeHIuaGFzT3duUHJvcGVydHkoZSkpe3ZhciBmPWUsZz1JcihmLGMpO2lmKGchPT12b2lkIDApe3ZhciBoPWJbZ107aWYoaCl7dmFyIGw9c3MoaCksbjthOntmb3IodmFyIHA9TWF0aC5taW4obCxOYigpKXx8TmIoKSxxPWNxKGcsQi5jb29raWUsdm9pZCAwLEFyKCkpLHI9MDtyPHEubGVuZ3RoOysrcilpZihzcyhxW3JdKT5wKXtuPSEwO2JyZWFrIGF9bj0hMX1ufHwoZFtmXT1oKX19fXJldHVybiBkfQpmdW5jdGlvbiB0cyhhKXt2YXIgYj1bImFnIl0sYz1VcSghMCksZD1IcihhLnByZWZpeCk7Q3IoZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPGIubGVuZ3RoOysrZSl7dmFyIGY9SXIoYltlXSxkKTtpZihmKXt2YXIgZz1jW2ZdO2lmKGcpe3ZhciBoPSRwKGcsNSk7aWYoaCl7dmFyIGw9TnIoaCk7bHx8KGw9TmIoKSk7aWYob3MobCxmLDUpKWJyZWFrO2guaT0iIitNYXRoLnJvdW5kKGwvMUUzKTtBcShmLGgsNSxhLGwpfX19fX0sWyJhZF9zdG9yYWdlIl0pfWZ1bmN0aW9uIElyKGEsYil7dmFyIGM9eHJbYV07aWYoYyE9PXZvaWQgMClyZXR1cm4gYitjfWZ1bmN0aW9uIHNzKGEpe3JldHVybiBWcihhLnNwbGl0KCIuIikpLmxlbmd0aCE9PTA/KE51bWJlcihhLnNwbGl0KCIuIilbMV0pfHwwKSoxRTM6MH1mdW5jdGlvbiBOcihhKXtyZXR1cm4gYT8oTnVtYmVyKGEuaSl8fDApKjFFMzowfQpmdW5jdGlvbiBWcihhKXtyZXR1cm4gYS5sZW5ndGg8M3x8YVswXSE9PSJHQ0wiJiZhWzBdIT09IjEifHwhL15cZCskLy50ZXN0KGFbMV0pfHwhdHIudGVzdChhWzJdKT9bXTphfWZ1bmN0aW9uIHVzKGEsYixjLGQpe3ZhciBlPXFzO2lmKEFycmF5LmlzQXJyYXkoYSkmJlNwKEEpKXt2YXIgZj1IcihkKSxnPWZ1bmN0aW9uKCl7Zm9yKHZhciBoPXt9LGw9MDtsPGUubGVuZ3RoOysrbCl7dmFyIG49SXIoZVtsXSxmKTtpZihuKXt2YXIgcD1jcShuLEIuY29va2llLHZvaWQgMCxBcigpKTtwLmxlbmd0aCYmKGhbbl09cC5zb3J0KClbcC5sZW5ndGgtMV0pfX1yZXR1cm4gaH07Q3IoZnVuY3Rpb24oKXthcihnLGEsYixjKX0sQXIoKSl9fQpmdW5jdGlvbiB2cyhhLGIsYyl7dmFyIGQ9cXM7aWYoWWYoMTMpJiZBcnJheS5pc0FycmF5KGEpJiZTcChBKSl7dmFyIGU9ZnVuY3Rpb24oKXtmb3IodmFyIGY9e30sZz0wO2c8ZC5sZW5ndGg7KytnKXt2YXIgaD12cltkW2ddXTtpZihoKXt2YXIgbD1jcShoLEIuY29va2llLHZvaWQgMCxBcigpKTtpZihsLmxlbmd0aCl7Zm9yKHZhciBuPXZvaWQgMCxwPTAscT1tKGwpLHI9cS5uZXh0KCk7IXIuZG9uZTtyPXEubmV4dCgpKXt2YXIgdD1yLnZhbHVlLHU9JHAodCw0KTtpZih1JiYodS5tPT09IjEifHxZZigxNikpKXt2YXIgdj1Ocih1KTt2Pj1wJiYocD12LG49dCl9fW4mJihmW2hdPW4pfX19cmV0dXJuIGZ9O0NyKGZ1bmN0aW9uKCl7YXIoZSxhLGIsYyl9LEFyKCkpfX0KZnVuY3Rpb24gd3MoYSxiLGMsZCl7aWYoQXJyYXkuaXNBcnJheShhKSYmU3AoQSkpe3ZhciBlPVsiYWciXSxmPUhyKGQpLGc9ZnVuY3Rpb24oKXtmb3IodmFyIGg9e30sbD0wO2w8ZS5sZW5ndGg7KytsKXt2YXIgbj1JcihlW2xdLGYpO2lmKCFuKXJldHVybnt9O3ZhciBwPXdxKG4sNSk7aWYocC5sZW5ndGgpe3ZhciBxPXAuc29ydChmdW5jdGlvbihyLHQpe3JldHVybiBOcih0KS1OcihyKX0pWzBdO2hbbl09YXEocSw1KX19cmV0dXJuIGh9O0NyKGZ1bmN0aW9uKCl7YXIoZyxhLGIsYyl9LFsiYWRfc3RvcmFnZSJdKX19ZnVuY3Rpb24gUnIoYSl7cmV0dXJuIGEuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiB0ci50ZXN0KGIuZ2NsaWQpfSl9CmZ1bmN0aW9uIHhzKGEsYil7aWYoU3AoQSkpe2Zvcih2YXIgYz1IcihiLnByZWZpeCksZD17fSxlPTA7ZTxhLmxlbmd0aDtlKyspeHJbYVtlXV0mJihkW2FbZV1dPXhyW2FbZV1dKTtDcihmdW5jdGlvbigpe0diKGQsZnVuY3Rpb24oZixnKXt2YXIgaD1jcShjK2csQi5jb29raWUsdm9pZCAwLEFyKCkpO2guc29ydChmdW5jdGlvbih0LHUpe3JldHVybiBzcyh1KS1zcyh0KX0pO2lmKGgubGVuZ3RoKXt2YXIgbD1oWzBdLG49c3MobCkscD1WcihsLnNwbGl0KCIuIikpLmxlbmd0aCE9PTA/bC5zcGxpdCgiLiIpLnNsaWNlKDMpOltdLHE9e30scjtyPVZyKGwuc3BsaXQoIi4iKSkubGVuZ3RoIT09MD9sLnNwbGl0KCIuIilbMl06dm9pZCAwO3FbZl09W3JdO2hzKHEsITAsYixuLHApfX0pfSxBcigpKX19CmZ1bmN0aW9uIHlzKGEpe3ZhciBiPVsiYWciXSxjPVsiZ2JyYWlkIl07Q3IoZnVuY3Rpb24oKXtmb3IodmFyIGQ9SHIoYS5wcmVmaXgpLGU9MDtlPGIubGVuZ3RoOysrZSl7dmFyIGY9SXIoYltlXSxkKTtpZighZilicmVhazt2YXIgZz13cShmLDUpO2lmKGcubGVuZ3RoKXt2YXIgaD1nLnNvcnQoZnVuY3Rpb24ocSxyKXtyZXR1cm4gTnIociktTnIocSl9KVswXSxsPU5yKGgpLG49aC5iLHA9e307cFtjW2VdXT1oLms7aHMocCwhMCxhLGwsbil9fX0sWyJhZF9zdG9yYWdlIl0pfWZ1bmN0aW9uIHpzKGEsYil7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDsrK2MpaWYoYVtiW2NdXSlyZXR1cm4hMDtyZXR1cm4hMX0KZnVuY3Rpb24gQXMoYSl7ZnVuY3Rpb24gYihoLGwsbil7biYmKGhbbF09bil9aWYoRWwoKSl7dmFyIGM9ZXMoKSxkO2EuaW5jbHVkZXMoImdhZF9zb3VyY2UiKSYmKGQ9Yy5nYWRfc291cmNlIT09dm9pZCAwP2MuZ2FkX3NvdXJjZTpVcSghMSkuX2dzKTtpZih6cyhjLGEpfHxkKXt2YXIgZT17fTtiKGUsImdjbGlkIixjLmdjbGlkKTtiKGUsImRjbGlkIixjLmRjbGlkKTtiKGUsImdjbHNyYyIsYy5nY2xzcmMpO2IoZSwid2JyYWlkIixjLndicmFpZCk7YihlLCJnYnJhaWQiLGMuZ2JyYWlkKTticihmdW5jdGlvbigpe3JldHVybiBlfSwzKTt2YXIgZj17fSxnPShmLl91cD0iMSIsZik7YihnLCJfZ3MiLGQpO2JyKGZ1bmN0aW9uKCl7cmV0dXJuIGd9LDEpfX19ZnVuY3Rpb24ga3MoKXt2YXIgYT1SaihBLmxvY2F0aW9uLmhyZWYpO3JldHVybiBMaihhLCJxdWVyeSIsITEsdm9pZCAwLCJnYWRfc291cmNlIil9CmZ1bmN0aW9uIEJzKGEpe2lmKCFZZigxKSlyZXR1cm4gbnVsbDt2YXIgYj1VcSghMCkuZ2FkX3NvdXJjZTtpZihiIT1udWxsKXJldHVybiBBLmxvY2F0aW9uLmhhc2g9IiIsYjtpZihZZigyKSl7Yj1rcygpO2lmKGIhPW51bGwpcmV0dXJuIGI7dmFyIGM9ZXMoKTtpZih6cyhjLGEpKXJldHVybiIwIn1yZXR1cm4gbnVsbH1mdW5jdGlvbiBDcyhhKXt2YXIgYj1CcyhhKTtiIT1udWxsJiZicihmdW5jdGlvbigpe3ZhciBjPXt9O3JldHVybiBjLmdhZF9zb3VyY2U9YixjfSw0KX0KZnVuY3Rpb24gRHMoYSxiLGMpe3ZhciBkPVtdO2lmKGIubGVuZ3RoPT09MClyZXR1cm4gZDtmb3IodmFyIGU9e30sZj0wO2Y8Yi5sZW5ndGg7ZisrKXt2YXIgZz1iW2ZdLGg9Zy56Zz9nLnpnOiJnY2wiO2lmKChnLmxhYmVsc3x8W10pLmluZGV4T2YoYyk9PT0tMSl7YS5wdXNoKDApO3ZhciBsPSExLG49dm9pZCAwO2lmKChuPWcub2EpPT1udWxsPzA6bi5pbmNsdWRlcygyKSlsPSEwO3ZhciBwPXZvaWQgMDsoKHA9Zy5vYSk9PW51bGw/MDpwLmluY2x1ZGVzKDEpKSYmIWVbaF0mJihsPSEwLGVbaF09ITApO2wmJmQucHVzaChnKX1lbHNle2EucHVzaCgxKTt2YXIgcT12b2lkIDA7aWYoKHE9Zy5vYSk9PW51bGw/MDpxLmluY2x1ZGVzKDEpKWVbaF09ITB9fXJldHVybiBkfQpmdW5jdGlvbiBFcyhhLGIsYyxkLGUpe2U9ZT09PXZvaWQgMD8hMTplO3ZhciBmPVtdO2M9Y3x8e307aWYoIUJyKEFyKCkpKXJldHVybiBmO3ZhciBnPUVyKGEsZSksaD1EcyhmLGcsYik7aWYoaC5sZW5ndGgmJiFkKXtmb3IodmFyIGw9W10sbj0hMSxwPW0oaCkscT1wLm5leHQoKTshcS5kb25lO3E9cC5uZXh0KCkpe3ZhciByPXEudmFsdWUsdD1yLHU9dC52ZXJzaW9uLHY9dC5nY2xpZCx4PXQudGltZXN0YW1wLHk9dC5vYSx6PSh0LmxhYmVsc3x8W10pLmNvbmNhdChbYl0pLEM9dm9pZCAwO2lmKCgoQz15KT09bnVsbD8wOkMuaW5jbHVkZXMoMSkpJiYhbil7dmFyIEQ9W3UsTWF0aC5yb3VuZCh4LzFFMyksdl0uY29uY2F0KHopLmpvaW4oIi4iKSxJPXVxKGMseCwhMCk7SS5NYz1BcigpO29xKGEsRCxJKTtuPSEwfXZhciBHPXZvaWQgMDtlJiYoKEc9eSk9PW51bGw/MDpHLmluY2x1ZGVzKDIpKSYmbC5wdXNoKG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scix7bGFiZWxzOnp9KSl9bC5sZW5ndGgmJgptcygiZ2NsX2diIixsLGMpfXJldHVybiBmfQpmdW5jdGlvbiBGcyhhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7dmFyIGQ9W107Yj1ifHx7fTt2YXIgZT1HcihiLGMpLGY9RHMoZCxlLGEpO2lmKGYubGVuZ3RoKXtmb3IodmFyIGc9W10saD17fSxsPW0oZiksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWUscT1IcihiLnByZWZpeCkscj1JcihwLnpnLHEpO2lmKCFyKXJldHVybiBkO3ZhciB0PXAsdT10LnZlcnNpb24sdj10LmdjbGlkLHg9dC50aW1lc3RhbXAseT10Lm9hLHo9TWF0aC5yb3VuZCh4LzFFMyksQz1Mcih0LmxhYmVsc3x8W10sW2FdKSxEPXZvaWQgMDtpZigoRD15KT09bnVsbD8wOkQuaW5jbHVkZXMoMSkpaWYocC56Zz09PSJhZyImJiFoLmFnKXt2YXIgST17fSxHPShJLms9dixJLmk9IiIreixJLmI9QyxJKTtBcShyLEcsNSxiLHgpO2guYWc9ITB9ZWxzZSBpZihwLnpnPT09ImdiIiYmIWguZ2Ipe3ZhciBOPVt1LHosdl0uY29uY2F0KEMpLmpvaW4oIi4iKSxTPXVxKGIseCwhMCk7Uy5NYz0KQXIoKTtvcShyLE4sUyk7aC5nYj0hMH12YXIgVz12b2lkIDA7YyYmKChXPXkpPT1udWxsPzA6Vy5pbmNsdWRlcygyKSkmJmcucHVzaChuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHAse2xhYmVsczpDfSkpfWcubGVuZ3RoJiZtcygiZ2NsX2diIixnLGIpfXJldHVybiBkfWZ1bmN0aW9uIEdzKGEsYil7dmFyIGM9SHIoYiksZD1JcihhLGMpO2lmKCFkKXJldHVybiAwO3ZhciBlO2U9YT09PSJhZyI/SnIoZCk6RXIoZCk7Zm9yKHZhciBmPTAsZz0wO2c8ZS5sZW5ndGg7ZysrKWY9TWF0aC5tYXgoZixlW2ddLnRpbWVzdGFtcCk7cmV0dXJuIGZ9ZnVuY3Rpb24gSHMoYSl7Zm9yKHZhciBiPTAsYz1tKE9iamVjdC5rZXlzKGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSlmb3IodmFyIGU9YVtkLnZhbHVlXSxmPTA7ZjxlLmxlbmd0aDtmKyspYj1NYXRoLm1heChiLE51bWJlcihlW2ZdLnRpbWVzdGFtcCkpO3JldHVybiBifQpmdW5jdGlvbiBJcyhhKXt2YXIgYj1NYXRoLm1heChHcygiYXciLGEpLEhzKEJyKEFyKCkpP1JwKCk6e30pKSxjPU1hdGgubWF4KEdzKCJnYiIsYSksSHMoQnIoQXIoKSk/UnAoIl9nYWNfZ2IiLCEwKTp7fSkpO2M9TWF0aC5tYXgoYyxHcygiYWciLGEpKTtyZXR1cm4gYz5ifTt2YXIgSnM9UmVnRXhwKCJeVUEtXFxkKy1cXGQrJTNBW1xcdy1dKyg/OiUyQ1tcXHctXSspKig/OiUzQlVBLVxcZCstXFxkKyUzQVtcXHctXSsoPzolMkNbXFx3LV0rKSopKiQiKSxLcz0vXn4/W1x3LV0rKD86XC5+P1tcdy1dKykqJC8sTHM9L15cZCtcLmZsc1wuZG91YmxlY2xpY2tcLm5ldCQvLE1zPS87Z2FjPShbXjs/XSspLyxOcz0vO2dhY2diPShbXjs/XSspLzsKZnVuY3Rpb24gT3MoYSxiKXtpZihMcy50ZXN0KEIubG9jYXRpb24uaG9zdCkpe3ZhciBjPUIubG9jYXRpb24uaHJlZi5tYXRjaChiKTtyZXR1cm4gYyYmYy5sZW5ndGg9PT0yJiZjWzFdLm1hdGNoKEpzKT9LaihjWzFdKXx8IiI6IiJ9Zm9yKHZhciBkPVtdLGU9bShPYmplY3Qua2V5cyhhKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe2Zvcih2YXIgZz1mLnZhbHVlLGg9W10sbD1hW2ddLG49MDtuPGwubGVuZ3RoO24rKyloLnB1c2gobFtuXS5nY2xpZCk7ZC5wdXNoKGcrIjoiK2guam9pbigiLCIpKX1yZXR1cm4gZC5sZW5ndGg+MD9kLmpvaW4oIjsiKToiIn0KZnVuY3Rpb24gUHMoYSxiLGMpe2Zvcih2YXIgZD1CcihBcigpKT9ScCgiX2dhY19nYiIsITApOnt9LGU9W10sZj0hMSxnPW0oT2JqZWN0LmtleXMoZCkpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlLG49RXMoIl9nYWNfZ2JfIitsLGEsYixjKTtmPWZ8fG4ubGVuZ3RoIT09MCYmbi5zb21lKGZ1bmN0aW9uKHApe3JldHVybiBwPT09MX0pO2UucHVzaChsKyI6IituLmpvaW4oIiwiKSl9cmV0dXJue1JyOmY/ZS5qb2luKCI7Iik6IiIsUXI6T3MoZCxOcyl9fWZ1bmN0aW9uIFFzKGEpe3ZhciBiPUIubG9jYXRpb24uaHJlZi5tYXRjaChuZXcgUmVnRXhwKCI7IithKyI9KFteOz9dKykiKSk7cmV0dXJuIGImJmIubGVuZ3RoPT09MiYmYlsxXS5tYXRjaChLcyk/YlsxXTp2b2lkIDB9CmZ1bmN0aW9uIFJzKGEpe3ZhciBiPXt9LGMsZCxlO0xzLnRlc3QoQi5sb2NhdGlvbi5ob3N0KSYmKGM9UXMoImdjbGdzIiksZD1RcygiZ2Nsc3QiKSxlPVFzKCJnY2xscCIpKTtpZihjJiZkJiZlKWIuRWc9YyxiLldoPWQsYi5VaD1lO2Vsc2V7dmFyIGY9TmIoKSxnPU1yKChhfHwiX2djbCIpKyJfZ3MiKSxoPWcubWFwKGZ1bmN0aW9uKHApe3JldHVybiBwLmdjbGlkfSksbD1nLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gZi1wLnRpbWVzdGFtcH0pLG49Zy5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIHAub2R9KTtoLmxlbmd0aD4wJiZsLmxlbmd0aD4wJiZuLmxlbmd0aD4wJiYoYi5FZz1oLmpvaW4oIi4iKSxiLldoPWwuam9pbigiLiIpLGIuVWg9bi5qb2luKCIuIikpfXJldHVybiBifQpmdW5jdGlvbiBTcyhhLGIpe3ZhciBjPWEuc3BsaXQoIi4iKSxkPWI/Yi5zcGxpdCgiLiIpOltdLGU9ZC5sZW5ndGg9PT1jLmxlbmd0aD9kOnZvaWQgMDtyZXR1cm4gYy5tYXAoZnVuY3Rpb24oZixnKXt2YXIgaD17Z2NsaWQ6Zn07aWYoZSl7dmFyIGw9ZVtnXS5zcGxpdCgiXyIpO2lmKGwubGVuZ3RoPT09Mil7aC5xYT1uZXcgZXIoTnVtYmVyKGxbMF0pKTt2YXIgbjt2YXIgcD1OdW1iZXIobFsxXSk7aWYocD09PTApbj1bMF07ZWxzZXt2YXIgcT1bXTtwJjEmJnEucHVzaCgxKTtwJjImJnEucHVzaCgyKTtwJjQmJnEucHVzaCgzKTtwJjgmJnEucHVzaCg0KTtwJjE2JiZxLnB1c2goNSk7bj1xfWgub2E9bn19cmV0dXJuIGh9KX0KZnVuY3Rpb24gVHMoYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7aWYoTHMudGVzdChCLmxvY2F0aW9uLmhvc3QpKXt2YXIgZT1RcyhjKTtpZihlKXtpZihZZigxNykpe3ZhciBmPVFzKGMrIl9zcmMiKTtyZXR1cm4gU3MoZSxmKX1pZihkKXt2YXIgZz1uZXcgZXI7ZnIoZywyKTtmcihnLDMpO3JldHVybiBlLnNwbGl0KCIuIikubWFwKGZ1bmN0aW9uKHIpe3JldHVybntnY2xpZDpyLHFhOmcsb2E6WzFdfX0pfXJldHVybiBlLnNwbGl0KCIuIikubWFwKGZ1bmN0aW9uKHIpe3JldHVybntnY2xpZDpyLHFhOm5ldyBlcixvYTpbMV19fSl9fWVsc2V7aWYoYj09PSJnY2xpZCIpe2Zvcih2YXIgaD1FcigoYXx8Il9nY2wiKSsiX2F3IixkKSxsPU51bWJlcihYZls0XT09PXZvaWQgMD8wOlhmWzRdKSxuPW0oVXMoKSkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPXAudmFsdWU7cS50aW1lc3RhbXA+bCYmUXIoaCxxKX1yZXR1cm4gaH1pZihiPT09IndicmFpZCIpcmV0dXJuIEVyKChhfHwKIl9nY2wiKSsiX2diIixkKTtpZihiPT09ImJyYWlkcyIpcmV0dXJuIEdyKHtwcmVmaXg6YX0sZCl9cmV0dXJuW119ZnVuY3Rpb24gVXMoKXtyZXR1cm4od3EodnIuYXcsNCl8fFtdKS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIGEubT09PSIxIn0pLm1hcChmdW5jdGlvbihhKXtyZXR1cm57Z2NsaWQ6YS5rLHRpbWVzdGFtcDpOdW1iZXIoYS5pKSx2ZXJzaW9uOiIiLG9hOls1XX19KX1mdW5jdGlvbiBWcyhhKXtmb3IodmFyIGI9MCxjPW0oYSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7ZT4wJiYoYnw9MTw8ZS0xKX1yZXR1cm4gYi50b1N0cmluZygpfWZ1bmN0aW9uIFdzKGEpe3JldHVybiBMcy50ZXN0KEIubG9jYXRpb24uaG9zdCk/IShRcygiZ2NsYXciKXx8UXMoImdhYyIpKTpJcyhhKX0KZnVuY3Rpb24gWHMoYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7dmFyIGU7ZT1jP0ZzKGEsYixkKTpFcygoYiYmYi5wcmVmaXh8fCJfZ2NsIikrIl9nYiIsYSxiLHZvaWQgMCxkKTtyZXR1cm4gZS5sZW5ndGg9PT0wfHxlLmV2ZXJ5KGZ1bmN0aW9uKGYpe3JldHVybiBmPT09MH0pPyIiOmUuam9pbigiLiIpfTsKdmFyIFlzPWZ1bmN0aW9uKGEpe3ZhciBiO2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPWtqKCJhZHNfcGFnZXZpZXciLGZ1bmN0aW9uKCl7cmV0dXJue319KTtpZihjW2FdKXJldHVybiExO2J8fChjW2FdPSEwKTtyZXR1cm4hMH0sWnM9ZnVuY3Rpb24oYSl7cmV0dXJuIFNqKGEsImdjbGlkIGRjbGlkIGdicmFpZCB3YnJhaWQgZ2NsYXcgZ2NsZGMgZ2NsaGEgZ2NsZ2YgZ2NsZ2IgX2dsIi5zcGxpdCgiICIpLCIwIil9LGF0PWZ1bmN0aW9uKCl7dmFyIGE9UmooQS5sb2NhdGlvbi5ocmVmKSxiPXZvaWQgMCxjPXZvaWQgMCxkPUxqKGEsInF1ZXJ5IiwhMSx2b2lkIDAsImdhZF9zb3VyY2UiKSxlPUxqKGEsInF1ZXJ5IiwhMSx2b2lkIDAsImdhZF9jYW1wYWlnbmlkIiksZixnPWEuaGFzaC5yZXBsYWNlKCIjIiwiIikubWF0Y2goJHMpO2Y9Zz9nWzFdOnZvaWQgMDtkJiZmPyhiPWQsYz0xKTpkPyhiPWQsYz0yKTpmJiYoYj1mLGM9Myk7cmV0dXJue0RnOmIsU3I6YyxUaDplfX0sYnQ9ZnVuY3Rpb24oYSl7dmFyIGI9Ck9wKCExKT09PTE/QS50b3AubG9jYXRpb24uaHJlZjpBLmxvY2F0aW9uLmhyZWY7cmV0dXJuIGEoYil9LGN0PWZ1bmN0aW9uKGEpe3ZhciBiPVtdO0diKGEsZnVuY3Rpb24oYyxkKXtkPVJyKGQpO2Zvcih2YXIgZT1bXSxmPTA7ZjxkLmxlbmd0aDtmKyspZS5wdXNoKGRbZl0uZ2NsaWQpO2UubGVuZ3RoJiZiLnB1c2goYysiOiIrZS5qb2luKCIsIikpfSk7cmV0dXJuIGIuam9pbigiOyIpfSxldD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9ZHQoYSk7aWYoZClyZXR1cm4gZDt2YXIgZT1IcihiKTtpZihlPT09Il9nY2wiKXt2YXIgZj0hWG8oZnApJiZjLGc9W107YT09PSJhdyI/Zz1hcyhBLmxvY2F0aW9uLmhyZWYsITAsITEpOmE9PT0iZGMiJiYoZz1kcyhBLmxvY2F0aW9uLmhyZWYsITAsITEpKTtpZihnLmxlbmd0aD4wKXJldHVybiBmP1t7dmVyc2lvbjoiR0NMIix0aW1lc3RhbXA6MCxnY2xpZDoiMCJ9XTpnLm1hcChmdW5jdGlvbihsKXtyZXR1cm57dmVyc2lvbjoiR0NMIix0aW1lc3RhbXA6MCwKZ2NsaWQ6bC52YWx1ZSxxYTpsLnFhLG9hOlsxXX19KX12YXIgaD1JcihhLGUpO3JldHVybiBoP2E9PT0iYXciP0VyKGgsTSg1NjIpKTpacihoKTpbXX0sZHQ9ZnVuY3Rpb24oYSl7dmFyIGI9VGooImdjbCIrYSksYz1hPT09ImRjInx8YT09PSJhdyI/VGooImdjbCIrYSsiX3NyYyIpOnZvaWQgMDtpZihiKXJldHVybiBTcyhiLGMpfSxmdD1mdW5jdGlvbihhLGIsYyl7aWYoYT09PSJhdyJ8fGE9PT0iZGMifHxhPT09ImdiIil7dmFyIGQ9VGooImdjbCIrYSk7aWYoZClyZXR1cm4gZC5zcGxpdCgiLiIpfXZhciBlPUhyKGIpO2lmKGU9PT0iX2djbCIpe3ZhciBmPSFYbyhmcCkmJmMsZztnPWVzKClbYV18fFtdO2lmKGcubGVuZ3RoPjApcmV0dXJuIGY/WyIwIl06Z312YXIgaD1JcihhLGUpO3JldHVybiBoP0RyKGgpOltdfSxndD1mdW5jdGlvbihhLGIsYyl7aWYoIVIoYSxiKXx8IVIoYSxjKSlyZXR1cm4iIjt2YXIgZD1SKGEsYikuc3BsaXQoIi4iKSxlPVIoYSxjKS5zcGxpdCgiLiIpO3JldHVybiBkLmxlbmd0aCYmCmUubGVuZ3RoJiZkLmxlbmd0aD09PWUubGVuZ3RoJiZkWzBdJiZlWzBdP2QubWFwKGZ1bmN0aW9uKGYsZyl7cmV0dXJuIGYrIl8iK2VbZ119KS5qb2luKCIuIik6IiJ9LCRzPS9eZ2FkX3NvdXJjZVtfPV0oXGQrKSQvO2Z1bmN0aW9uIGh0KGEsYixjKXt2YXIgZD1SKGEsRi5ELlRhKTtpZihkJiZ0eXBlb2YgZD09PSJvYmplY3QiKWZvcih2YXIgZT1tKE9iamVjdC5rZXlzKGQpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZSxoPWRbZ107aWYoaCE9PXZvaWQgMCl7aD09PW51bGwmJihoPSIiKTt2YXIgbD0iZ2FwLiIrZyxuPVN0cmluZyhoKTtjP2MobCxuKTpiW2xdPW59fX07dmFyIGl0PSExLGp0PVtdO2Z1bmN0aW9uIGt0KCl7aWYoIWl0KXtpdD0hMDtmb3IodmFyIGE9anQubGVuZ3RoLTE7YT49MDthLS0panRbYV0oKTtqdD1bXX19O2Z1bmN0aW9uIGx0KGEpe3ZhciBiPVtdLGM9MCxkO2ZvcihkIGluIGEpYltjKytdPWFbZF07cmV0dXJuIGJ9O2Z1bmN0aW9uIG10KGEsYixjKXtyZXR1cm4gdHlwZW9mIGEuYWRkRXZlbnRMaXN0ZW5lcj09PSJmdW5jdGlvbiI/KGEuYWRkRXZlbnRMaXN0ZW5lcihiLGMsITEpLCEwKTohMX1mdW5jdGlvbiBudChhLGIsYyl7dHlwZW9mIGEucmVtb3ZlRXZlbnRMaXN0ZW5lcj09PSJmdW5jdGlvbiImJmEucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMsITEpfTtmdW5jdGlvbiBvdChhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDthLmdvb2dsZV9pbWFnZV9yZXF1ZXN0c3x8KGEuZ29vZ2xlX2ltYWdlX3JlcXVlc3RzPVtdKTt2YXIgZT1QcChhLmRvY3VtZW50KTtpZihjKXt2YXIgZj1mdW5jdGlvbigpe2lmKGMpe3ZhciBnPWEuZ29vZ2xlX2ltYWdlX3JlcXVlc3RzLGg9RGMoZyxlKTtoPj0wJiZBcnJheS5wcm90b3R5cGUuc3BsaWNlLmNhbGwoZyxoLDEpfW50KGUsImxvYWQiLGYpO250KGUsImVycm9yIixmKX07bXQoZSwibG9hZCIsZik7bXQoZSwiZXJyb3IiLGYpfWQmJihlLmF0dHJpYnV0aW9uU3JjPSIiKTtlLnNyYz1iO2EuZ29vZ2xlX2ltYWdlX3JlcXVlc3RzLnB1c2goZSl9CmZ1bmN0aW9uIHB0KGEpe3ZhciBiO2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPSJodHRwczovL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tL3BhZ2VhZC9nZW5fMjA0P2lkPXRjZmUiO0lwKGEsZnVuY3Rpb24oZCxlKXtpZihkfHxkPT09MCljKz0iJiIrZSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhkKSl9KTtxdChjLGIpfQpmdW5jdGlvbiBxdChhLGIpe3ZhciBjPXdpbmRvdyxkO2I9Yj09PXZvaWQgMD8hMTpiO2Q9ZD09PXZvaWQgMD8hMTpkO2lmKGMuZmV0Y2gpe3ZhciBlPXtrZWVwYWxpdmU6ITAsY3JlZGVudGlhbHM6ImluY2x1ZGUiLHJlZGlyZWN0OiJmb2xsb3ciLG1ldGhvZDoiZ2V0Iixtb2RlOiJuby1jb3JzIn07ZCYmKGUubW9kZT0iY29ycyIsInNldEF0dHJpYnV0aW9uUmVwb3J0aW5nImluIFhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZT9lLmF0dHJpYnV0aW9uUmVwb3J0aW5nPXtldmVudFNvdXJjZUVsaWdpYmxlOiJ0cnVlIix0cmlnZ2VyRWxpZ2libGU6ImZhbHNlIn06ZS5oZWFkZXJzPXsiQXR0cmlidXRpb24tUmVwb3J0aW5nLUVsaWdpYmxlIjoiZXZlbnQtc291cmNlIn0pO2MuZmV0Y2goYSxlKX1lbHNlIG90KGMsYSxiPT09dm9pZCAwPyExOmIsZD09PXZvaWQgMD8hMTpkKX07ZnVuY3Rpb24gcnQoKXt0aGlzLmZhPXRoaXMuZmE7dGhpcy5SPXRoaXMuUn1ydC5wcm90b3R5cGUuZmE9ITE7cnQucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmZhfHwodGhpcy5mYT0hMCx0aGlzLk4oKSl9O3J0LnByb3RvdHlwZVtTeW1ib2wuZGlzcG9zZV09ZnVuY3Rpb24oKXt0aGlzLmRpc3Bvc2UoKX07cnQucHJvdG90eXBlLmFkZE9uRGlzcG9zZUNhbGxiYWNrPWZ1bmN0aW9uKGEsYil7dGhpcy5mYT9iIT09dm9pZCAwP2EuY2FsbChiKTphKCk6KHRoaXMuUnx8KHRoaXMuUj1bXSksYiYmKGE9YS5iaW5kKGIpKSx0aGlzLlIucHVzaChhKSl9O3J0LnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7aWYodGhpcy5SKWZvcig7dGhpcy5SLmxlbmd0aDspdGhpcy5SLnNoaWZ0KCkoKX07ZnVuY3Rpb24gc3QoYSl7YS5hZGR0bENvbnNlbnQ9PT12b2lkIDB8fHZmKGEuYWRkdGxDb25zZW50KXx8KGEuYWRkdGxDb25zZW50PXZvaWQgMCk7YS5nZHByQXBwbGllcz09PXZvaWQgMHx8d2YoYS5nZHByQXBwbGllcyl8fChhLmdkcHJBcHBsaWVzPXZvaWQgMCk7cmV0dXJuIGEudGNTdHJpbmchPT12b2lkIDAmJiF2ZihhLnRjU3RyaW5nKXx8YS5saXN0ZW5lcklkIT09dm9pZCAwJiYhdWYoYS5saXN0ZW5lcklkKT8yOmEuY21wU3RhdHVzJiZhLmNtcFN0YXR1cyE9PSJlcnJvciI/MDozfXZhciB0dD1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD97fTpiO3J0LmNhbGwodGhpcyk7dGhpcy5IPW51bGw7dGhpcy5qYT17fTt0aGlzLnlhPTA7dGhpcy5aPW51bGw7dGhpcy5LPWE7dmFyIGM7dGhpcy50aW1lb3V0TXM9KGM9Yi50aW1lb3V0TXMpIT1udWxsP2M6NTAwO3ZhciBkO3RoaXMuRWo9KGQ9Yi5FaikhPW51bGw/ZDohMX07d2EodHQscnQpOwp0dC5wcm90b3R5cGUuTj1mdW5jdGlvbigpe3RoaXMuamE9e307dGhpcy5aJiYobnQodGhpcy5LLCJtZXNzYWdlIix0aGlzLlopLGRlbGV0ZSB0aGlzLlopO2RlbGV0ZSB0aGlzLmphO2RlbGV0ZSB0aGlzLks7ZGVsZXRlIHRoaXMuSDtydC5wcm90b3R5cGUuTi5jYWxsKHRoaXMpfTt2YXIgdnQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhLksuX190Y2ZhcGk9PT0iZnVuY3Rpb24ifHx1dChhKSE9bnVsbH07CnR0LnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz17aW50ZXJuYWxCbG9ja09uRXJyb3JzOnRoaXMuRWp9LGQ9SHAoZnVuY3Rpb24oKXthKGMpfSksZT0wO3RoaXMudGltZW91dE1zIT09LTEmJihlPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtjLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIjtjLmludGVybmFsRXJyb3JTdGF0ZT0xO2QoKX0sdGhpcy50aW1lb3V0TXMpKTt2YXIgZj1mdW5jdGlvbihnLGgpe2NsZWFyVGltZW91dChlKTtnPyhjPWcsYy5pbnRlcm5hbEVycm9yU3RhdGU9c3QoYyksYy5pbnRlcm5hbEJsb2NrT25FcnJvcnM9Yi5FaixoJiZjLmludGVybmFsRXJyb3JTdGF0ZT09PTB8fChjLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIixofHwoYy5pbnRlcm5hbEVycm9yU3RhdGU9MykpKTooYy50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSIsYy5pbnRlcm5hbEVycm9yU3RhdGU9Myk7YShjKX07dHJ5e3d0KHRoaXMsImFkZEV2ZW50TGlzdGVuZXIiLApmKX1jYXRjaChnKXtjLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIixjLmludGVybmFsRXJyb3JTdGF0ZT0zLGUmJihjbGVhclRpbWVvdXQoZSksZT0wKSxkKCl9fTt0dC5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhKXthJiZhLmxpc3RlbmVySWQmJnd0KHRoaXMsInJlbW92ZUV2ZW50TGlzdGVuZXIiLG51bGwsYS5saXN0ZW5lcklkKX07CnZhciB6dD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7ZD1kPT09dm9pZCAwPyI3NTUiOmQ7dmFyIGU7YTp7aWYoYS5wdWJsaXNoZXImJmEucHVibGlzaGVyLnJlc3RyaWN0aW9ucyl7dmFyIGY9YS5wdWJsaXNoZXIucmVzdHJpY3Rpb25zW2JdO2lmKGYhPT12b2lkIDApe2U9ZltkPT09dm9pZCAwPyI3NTUiOmRdO2JyZWFrIGF9fWU9dm9pZCAwfXZhciBnPWU7aWYoZz09PTApcmV0dXJuITE7dmFyIGg9YztjPT09Mj8oaD0wLGc9PT0yJiYoaD0xKSk6Yz09PTMmJihoPTEsZz09PTEmJihoPTApKTt2YXIgbDtpZihoPT09MClpZihhLnB1cnBvc2UmJmEudmVuZG9yKXt2YXIgbj14dChhLnZlbmRvci5jb25zZW50cyxkPT09dm9pZCAwPyI3NTUiOmQpO2w9biYmYj09PSIxIiYmYS5wdXJwb3NlT25lVHJlYXRtZW50JiZhLnB1Ymxpc2hlckNDPT09IkNIIj8hMDpuJiZ4dChhLnB1cnBvc2UuY29uc2VudHMsYil9ZWxzZSBsPSEwO2Vsc2UgbD1oPT09MT9hLnB1cnBvc2UmJmEudmVuZG9yP3h0KGEucHVycG9zZS5sZWdpdGltYXRlSW50ZXJlc3RzLApiKSYmeHQoYS52ZW5kb3IubGVnaXRpbWF0ZUludGVyZXN0cyxkPT09dm9pZCAwPyI3NTUiOmQpOiEwOiEwO3JldHVybiBsfSx4dD1mdW5jdGlvbihhLGIpe3JldHVybiEoIWF8fCFhW2JdKX0sd3Q9ZnVuY3Rpb24oYSxiLGMsZCl7Y3x8KGM9ZnVuY3Rpb24oKXt9KTt2YXIgZT1hLks7aWYodHlwZW9mIGUuX190Y2ZhcGk9PT0iZnVuY3Rpb24iKXt2YXIgZj1lLl9fdGNmYXBpO2YoYiwyLGMsZCl9ZWxzZSBpZih1dChhKSl7QXQoYSk7dmFyIGc9KythLnlhO2EuamFbZ109YztpZihhLkgpe3ZhciBoPXt9O2EuSC5wb3N0TWVzc2FnZSgoaC5fX3RjZmFwaUNhbGw9e2NvbW1hbmQ6Yix2ZXJzaW9uOjIsY2FsbElkOmcscGFyYW1ldGVyOmR9LGgpLCIqIil9fWVsc2UgYyh7fSwhMSl9LHV0PWZ1bmN0aW9uKGEpe2lmKGEuSClyZXR1cm4gYS5IO2EuSD1OcChhLkssIl9fdGNmYXBpTG9jYXRvciIpO3JldHVybiBhLkh9LEF0PWZ1bmN0aW9uKGEpe2lmKCFhLlope3ZhciBiPWZ1bmN0aW9uKGMpe2lmKGMuc291cmNlPT09CmEuSCl0cnl7dmFyIGQ7ZD0odmYoYy5kYXRhKT9KU09OLnBhcnNlKGMuZGF0YSk6Yy5kYXRhKS5fX3RjZmFwaVJldHVybjthLmphW2QuY2FsbElkXShkLnJldHVyblZhbHVlLGQuc3VjY2Vzcyl9Y2F0Y2goZSl7fX07YS5aPWI7bXQoYS5LLCJtZXNzYWdlIixiKX19LEJ0PWZ1bmN0aW9uKGEpe2lmKGEuZ2RwckFwcGxpZXM9PT0hMSlyZXR1cm4hMDthLmludGVybmFsRXJyb3JTdGF0ZT09PXZvaWQgMCYmKGEuaW50ZXJuYWxFcnJvclN0YXRlPXN0KGEpKTtyZXR1cm4gYS5jbXBTdGF0dXM9PT0iZXJyb3IifHxhLmludGVybmFsRXJyb3JTdGF0ZSE9PTA/YS5pbnRlcm5hbEJsb2NrT25FcnJvcnM/KHB0KHtlOlN0cmluZyhhLmludGVybmFsRXJyb3JTdGF0ZSl9KSwhMSk6ITA6YS5jbXBTdGF0dXMhPT0ibG9hZGVkInx8YS5ldmVudFN0YXR1cyE9PSJ0Y2xvYWRlZCImJmEuZXZlbnRTdGF0dXMhPT0idXNlcmFjdGlvbmNvbXBsZXRlIj8hMTohMH07dmFyIEN0PXsxOjAsMzowLDQ6MCw3OjMsOTozLDEwOjN9O2Z1bmN0aW9uIER0KCl7cmV0dXJuIGtqKCJ0Y2YiLGZ1bmN0aW9uKCl7cmV0dXJue319KX12YXIgRXQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHR0KEEse3RpbWVvdXRNczotMX0pfTsKZnVuY3Rpb24gRnQoKXt2YXIgYT1EdCgpLGI9RXQoKTt2dChiKSYmIUd0KCkmJiFIdCgpJiZQKDEyNCk7aWYoIWEuYWN0aXZlJiZ2dChiKSl7R3QoKSYmKGEuYWN0aXZlPSEwLGEucHVycG9zZXM9e30sYS5jbXBJZD0wLGEudGNmUG9saWN5VmVyc2lvbj0wLHRsKCkuYWN0aXZlPSEwLGEudGNTdHJpbmc9InRjdW5hdmFpbGFibGUiKTtjcCgpO3RyeXtiLmFkZEV2ZW50TGlzdGVuZXIoZnVuY3Rpb24oYyl7aWYoYy5pbnRlcm5hbEVycm9yU3RhdGUhPT0wKUl0KGEpLGRwKFtGLkQua2EsRi5ELlhhLEYuRC5tYV0pLHRsKCkuYWN0aXZlPSEwO2Vsc2UgaWYoYS5nZHByQXBwbGllcz1jLmdkcHJBcHBsaWVzLGEuY21wSWQ9Yy5jbXBJZCxhLmVuYWJsZUFkdmVydGlzZXJDb25zZW50TW9kZT1jLmVuYWJsZUFkdmVydGlzZXJDb25zZW50TW9kZSxIdCgpJiYoYS5hY3RpdmU9ITApLCFKdChjKXx8R3QoKXx8SHQoKSl7YS50Y2ZQb2xpY3lWZXJzaW9uPWMudGNmUG9saWN5VmVyc2lvbjt2YXIgZDtpZihjLmdkcHJBcHBsaWVzPT09CiExKXt2YXIgZT17fSxmO2ZvcihmIGluIEN0KUN0Lmhhc093blByb3BlcnR5KGYpJiYoZVtmXT0hMCk7ZD1lO2IucmVtb3ZlRXZlbnRMaXN0ZW5lcihjKX1lbHNlIGlmKEp0KGMpKXt2YXIgZz17fSxoO2ZvcihoIGluIEN0KWlmKEN0Lmhhc093blByb3BlcnR5KGgpKWlmKGg9PT0iMSIpe3ZhciBsLG49YyxwPXtVcjohMH07cD1wPT09dm9pZCAwP3t9OnA7bD1CdChuKT9uLmdkcHJBcHBsaWVzPT09ITE/ITA6bi50Y1N0cmluZz09PSJ0Y3VuYXZhaWxhYmxlIj8hcC5pZHBjQXBwbGllczoocC5pZHBjQXBwbGllc3x8bi5nZHByQXBwbGllcyE9PXZvaWQgMHx8cC5VcikmJihwLmlkcGNBcHBsaWVzfHx2ZihuLnRjU3RyaW5nKSYmbi50Y1N0cmluZy5sZW5ndGgpP3p0KG4sIjEiLDApOiEwOiExO2dbIjEiXT1sfWVsc2UgZ1toXT16dChjLGgsQ3RbaF0pO2Q9Z31pZihkKXthLnRjU3RyaW5nPWMudGNTdHJpbmd8fCJ0Y2VtcHR5IjthLnB1cnBvc2VzPWQ7dmFyIHE9e30scj0ocVtGLkQua2FdPQphLnB1cnBvc2VzWyIxIl0/ImdyYW50ZWQiOiJkZW5pZWQiLHEpO2EuZ2RwckFwcGxpZXMhPT0hMD8oZHAoW0YuRC5rYSxGLkQuWGEsRi5ELm1hXSksdGwoKS5hY3RpdmU9ITApOihyW0YuRC5YYV09YS5wdXJwb3Nlc1siMyJdJiZhLnB1cnBvc2VzWyI0Il0/ImdyYW50ZWQiOiJkZW5pZWQiLHR5cGVvZiBhLnRjZlBvbGljeVZlcnNpb249PT0ibnVtYmVyIiYmYS50Y2ZQb2xpY3lWZXJzaW9uPj00P3JbRi5ELm1hXT1hLnB1cnBvc2VzWyIxIl0mJmEucHVycG9zZXNbIjciXT8iZ3JhbnRlZCI6ImRlbmllZCI6ZHAoW0YuRC5tYV0pLFZvKHIse2V2ZW50SWQ6MH0se2dkcHJBcHBsaWVzOmE/YS5nZHByQXBwbGllczp2b2lkIDAsdGNTdHJpbmc6S3QoKXx8IiJ9KSl9fWVsc2UgZHAoW0YuRC5rYSxGLkQuWGEsRi5ELm1hXSl9KX1jYXRjaChjKXtJdChhKSxkcChbRi5ELmthLEYuRC5YYSxGLkQubWFdKSx0bCgpLmFjdGl2ZT0hMH19fQpmdW5jdGlvbiBJdChhKXthLnR5cGU9ImUiO2EudGNTdHJpbmc9InRjdW5hdmFpbGFibGUifWZ1bmN0aW9uIEp0KGEpe3JldHVybiBhLmV2ZW50U3RhdHVzPT09InRjbG9hZGVkInx8YS5ldmVudFN0YXR1cz09PSJ1c2VyYWN0aW9uY29tcGxldGUifHxhLmV2ZW50U3RhdHVzPT09ImNtcHVpc2hvd24ifWZ1bmN0aW9uIEd0KCl7cmV0dXJuIEEuZ3RhZ19lbmFibGVfdGNmX3N1cHBvcnQ9PT0hMH1mdW5jdGlvbiBIdCgpe3JldHVybiBEdCgpLmVuYWJsZUFkdmVydGlzZXJDb25zZW50TW9kZT09PSEwfWZ1bmN0aW9uIEt0KCl7dmFyIGE9RHQoKTtpZihhLmFjdGl2ZSlyZXR1cm4gYS50Y1N0cmluZ31mdW5jdGlvbiBMdCgpe3ZhciBhPUR0KCk7aWYoYS5hY3RpdmUmJmEuZ2RwckFwcGxpZXMhPT12b2lkIDApcmV0dXJuIGEuZ2RwckFwcGxpZXM/IjEiOiIwIn0KZnVuY3Rpb24gTXQoYSl7aWYoIUN0Lmhhc093blByb3BlcnR5KFN0cmluZyhhKSkpcmV0dXJuITA7dmFyIGI9RHQoKTtyZXR1cm4gYi5hY3RpdmUmJmIucHVycG9zZXM/ISFiLnB1cnBvc2VzW1N0cmluZyhhKV06ITB9O3ZhciBOdD1bRi5ELmthLEYuRC5yYSxGLkQubWEsRi5ELlhhXSxPdD17fSxQdD0oT3RbRi5ELmthXT0xLE90W0YuRC5yYV09MixPdCk7ZnVuY3Rpb24gUXQoYSl7aWYoYT09PXZvaWQgMClyZXR1cm4gMDtzd2l0Y2goTyhhLEYuRC5SYykpe2Nhc2Ugdm9pZCAwOnJldHVybiAxO2Nhc2UgITE6cmV0dXJuIDM7ZGVmYXVsdDpyZXR1cm4gMn19ZnVuY3Rpb24gUnQoKXtyZXR1cm4oTSgxODMpP0xmKDE2KS5zcGxpdCgifiIpOkxmKDE3KS5zcGxpdCgifiIpKS5pbmRleE9mKHptKCkpIT09LTEmJkhjLmdsb2JhbFByaXZhY3lDb250cm9sPT09ITB9ZnVuY3Rpb24gU3QoYSl7aWYoUnQoKSlyZXR1cm4hMTt2YXIgYj1RdChhKTtpZihiPT09MylyZXR1cm4hMTtzd2l0Y2goQ2woRi5ELlhhKSl7Y2FzZSAxOmNhc2UgMzpyZXR1cm4hMDtjYXNlIDI6cmV0dXJuITE7Y2FzZSA0OnJldHVybiBiPT09MjtjYXNlIDA6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19CmZ1bmN0aW9uIFR0KCl7cmV0dXJuIEVsKCl8fCFCbChGLkQua2EpfHwhQmwoRi5ELnJhKX1mdW5jdGlvbiBVdCgpe3ZhciBhPXt9LGI7Zm9yKGIgaW4gUHQpUHQuaGFzT3duUHJvcGVydHkoYikmJihhW1B0W2JdXT1DbChiKSk7cmV0dXJuIkcxIit5ZihhWzFdfHwwKSt5ZihhWzJdfHwwKX12YXIgVnQ9e30sV3Q9KFZ0W0YuRC5rYV09MCxWdFtGLkQucmFdPTEsVnRbRi5ELm1hXT0yLFZ0W0YuRC5YYV09MyxWdCk7ZnVuY3Rpb24gWHQoYSl7c3dpdGNoKGEpe2Nhc2Ugdm9pZCAwOnJldHVybiAxO2Nhc2UgITA6cmV0dXJuIDM7Y2FzZSAhMTpyZXR1cm4gMjtkZWZhdWx0OnJldHVybiAwfX0KZnVuY3Rpb24gWXQoYSl7Zm9yKHZhciBiPSIxIixjPTA7YzxOdC5sZW5ndGg7YysrKXt2YXIgZD1iLGUsZj1OdFtjXSxnPUFsLmRlbGVnYXRlZENvbnNlbnRUeXBlc1tmXTtlPWc9PT12b2lkIDA/MDpXdC5oYXNPd25Qcm9wZXJ0eShnKT8xMnxXdFtnXTo4O3ZhciBoPXRsKCk7aC5hY2Nlc3NlZEFueT0hMDt2YXIgbD1oLmVudHJpZXNbZl18fHt9O2U9ZTw8MnxYdChsLmltcGxpY2l0KTtiPWQrKCIiKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltlXSsiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbWHQobC5kZWNsYXJlKTw8NHxYdChsLmRlZmF1bHQpPDwyfFh0KGwudXBkYXRlKV0pfXZhciBuPWIscD0oUnQoKT8xOjApPDwzLHE9KEVsKCk/MTowKTw8MixyPVF0KGEpO2I9bisiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbcHwKcXxyXTtyZXR1cm4gYis9IiIrIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW0FsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzLmFkX3N0b3JhZ2U8PDR8QWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHMuYW5hbHl0aWNzX3N0b3JhZ2U8PDJ8QWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHMuYWRfdXNlcl9kYXRhXSsiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbKEFsLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cz8xOjApPDwyfEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzLmFkX3BlcnNvbmFsaXphdGlvbl19ZnVuY3Rpb24gWnQoKXtyZXR1cm4gQmwoRi5ELm1hKT8iYSI6Ii0ifWZ1bmN0aW9uICR0KCl7cmV0dXJuIEJtKCl8fChHdCgpfHxIdCgpKSYmTHQoKT09PSIxIj8iMSI6IjAifQpmdW5jdGlvbiBhdSgpe3JldHVybihCbSgpPyEwOiEoIUd0KCkmJiFIdCgpKSYmTHQoKT09PSIxIil8fCFCbChGLkQubWEpfQpmdW5jdGlvbiBidSgpe3ZhciBhPSIwIixiPSIwIixjO3ZhciBkPUR0KCk7Yz1kLmFjdGl2ZT9kLmNtcElkOnZvaWQgMDt0eXBlb2YgYz09PSJudW1iZXIiJiZjPj0wJiZjPD00MDk1JiYoYT0iMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbYz4+NiY2M10sYj0iMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbYyY2M10pO3ZhciBlPSIwIixmO3ZhciBnPUR0KCk7Zj1nLmFjdGl2ZT9nLnRjZlBvbGljeVZlcnNpb246dm9pZCAwO3R5cGVvZiBmPT09Im51bWJlciImJmY+PTAmJmY8PTYzJiYoZT0iMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbZl0pO3ZhciBoPTA7Qm0oKSYmKGh8PTEpO0x0KCk9PT0iMSImJihofD0yKTtHdCgpJiYoaHw9NCk7dmFyIGw7dmFyIG49RHQoKTtsPW4uZW5hYmxlQWR2ZXJ0aXNlckNvbnNlbnRNb2RlIT09CnZvaWQgMD9uLmVuYWJsZUFkdmVydGlzZXJDb25zZW50TW9kZT8iMSI6IjAiOnZvaWQgMDtsPT09IjEiJiYoaHw9OCk7dGwoKS53YWl0UGVyaW9kVGltZWRPdXQmJihofD0xNik7cmV0dXJuIjEiK2ErYitlKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltoXX07dmFyIGN1PXtVQToxLEFXOjIsREM6MyxHOjQsR0Y6NSxHVDoxMixHVE06MTQsSEE6NixNQzo3fTsKZnVuY3Rpb24gZHUoYSl7YT1hPT09dm9pZCAwP3t9OmE7dmFyIGI9RSg1KS5zcGxpdCgiLSIpWzBdLnRvVXBwZXJDYXNlKCksYyxkPXtjdGlkOkUoNSksRG86SmYoMTUpLElvOkUoMTQpLExzOklmKDcpPzI6MSxEdDphLnBmLGNhbm9uaWNhbElkOkUoNiksbnQ6KGM9QWsoKSk9PW51bGw/dm9pZCAwOmMuY2Fub25pY2FsQ29udGFpbmVySWQsRXQ6YS5UZz09PXZvaWQgMD92b2lkIDA6YS5UZz8xMDoxMn07ZC5jYW5vbmljYWxJZCE9PWEubWMmJihkLm1jPWEubWMpO3ZhciBlPXhrKCk7ZC5Vcz1lP2UuY2Fub25pY2FsQ29udGFpbmVySWQ6dm9pZCAwO0lmKDQ1KT8oZC5oaT1jdVtiXSxkLmhpfHwoZC5oaT0wKSk6ZC5oaT1Eaj8xMzoxMDtJZig0Nyk/KGQuYms9MCxkLnFyPTIpOklmKDUwKT9kLmJrPTE6ZC5iaz0zO3ZhciBmPWEsZz17NjohMX07SmYoNTQpPT09Mj9nWzddPSEwOkpmKDU0KT09PTEmJihnWzJdPSEwKTtpZihLYyl7dmFyIGg9TGooUmooS2MpLCJob3N0Iik7aCYmKGdbOF09CmgubWF0Y2goL14od3d3XC4pP2dvb2dsZXRhZ21hbmFnZXJcLmNvbSQvKT09PW51bGwpfXZhciBsO2dbOV09KGw9Zi5lZikhPW51bGw/bDohMTt2YXIgbj1GaygpLHA7Z1sxMF09KHA9bj09bnVsbD92b2lkIDA6bi5mcm9tQ29udGFpbmVyRXhlY3V0aW9uKSE9bnVsbD9wOiExO2QuenI9ZztyZXR1cm4gQ2YoZCxhLlBuKX07CnZhciBmdT1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz1tKGV1KGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZSxmPVIoYSxlKSxnPVEoYSxILkouWWUpO00oNTg5KSYmZyYmKGU9PT1GLkQuemF8fGU9PT1GLkQuVWF8fGU9PT1GLkQuUGUpJiZ0eXBlb2YgZj09PSJzdHJpbmciJiYoZj1acyhmKSk7dmFyIGg9b3AoZSxmKTtoJiYoIWd8fGUhPT1GLkQuRGQmJmUhPT1GLkQuS2QmJmUhPT1GLkQuRWUmJmUhPT1GLkQuQmZ8fChoLnZhbHVlPSIwIiksTSg1MDQpJiYoZT09PUYuRC5NZD9oLmtleT0iZXZuaWQiOmU9PT1GLkQuTmQmJihoLmtleT0iZXhjaWQiKSksYltoLmtleV09aC52YWx1ZSl9Yi5ndG09ZHUoe21jOlEoYSxILkouTmIpLFRnOmEuTS5pc0d0bUV2ZW50LGVmOlEoYSxILkouQ2MpfSk7VHQoKSYmKGIuZ2NzPWIuZ2NzfHxVdCgpKTtiLmdjZD1iLmdjZHx8WXQoYS5NKTthdSgpJiYoYi5kbWFfY3BzPVp0KCkpO2IuZG1hPSR0KCk7dnQoRXQoKSkmJgooYi50Y2ZkPWJ1KCkpO3ZhciBsPUNwKGEpO2wmJihiLnRhZ19leHA9bCk7aWYoUShhLEguSi5Caykpe2IudGZ0PVN0cmluZyhOYigpKTt2YXIgbj1wZCgpO24hPT12b2lkIDAmJihiLnRmZD1TdHJpbmcoTWF0aC5yb3VuZChuKSkpfWIuYXB2ZT0iMSI7Yi5hcHZmPW5kKCk/ImYiOiJuZiI7Zm8uSFtjby5pYS5jYl0hPT1iby5NYS5VZXx8Zm8uS1tjby5pYS5jYl0uaXNDb25zZW50R3JhbnRlZCgpfHwoYi5saW1pdGVkX2Fkcz0iMSIpO3ZhciBwPVEoYSxILkouWGcpO00oNDc0KSYmcCE9bnVsbCYmcCE9PSIiJiYoYi5fZ3NpZD1wKTtodChhLGIsZnVuY3Rpb24ocSxyKXtiW3FdPWVuY29kZVVSSUNvbXBvbmVudChyKX0pO3JldHVybiBifTt2YXIgZ3U9ZnVuY3Rpb24oYSxiLGMsZCxlKXt0aGlzLmVuZHBvaW50PWE7dGhpcy5mYT1jO3RoaXMuamE9ZDt0aGlzLnBhcmFtZXRlckVuY29kaW5nPWU7dGhpcy5aPWIuc2xpY2UoKX07Z3UucHJvdG90eXBlLks9ZnVuY3Rpb24oKXtyZXR1cm4gWG8odGhpcy5aKX07Z3UucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7cmV0dXJuITB9O2d1LnByb3RvdHlwZS5SPWZ1bmN0aW9uKCl7dmFyIGE9TW1bdGhpcy5lbmRwb2ludF0odm9pZCAwKTtyZXR1cm4gU2IoYSwiaHR0cHM6Ly8iKT9hLnN1YnN0cmluZyg4KTpTYihhLCJodHRwOi8vIik/YS5zdWJzdHJpbmcoNyk6YX07dmFyIGh1PWZ1bmN0aW9uKGEsYil7dGhpcy5tZXRob2ROYW1lPWE7dGhpcy5SPWJ9O2h1LnByb3RvdHlwZS5zZW5kUmVxdWVzdD1mdW5jdGlvbihhLGIsYyl7aWYodGhpcy5pc1N1cHBvcnRlZCgpKWlmKChjPT1udWxsP3ZvaWQgMDpjLmJvZHkpPT09dm9pZCAwfHx0aGlzLkgoKSl0cnl7dGhpcy5LKGEsYixjKX1jYXRjaChkKXthLnJkKGQpfWVsc2UgYS5yZCgiUmVxdWVzdCBtZXRob2QgIit0aGlzLm1ldGhvZE5hbWUrIiBkb2VzIG5vdCBzdXBwb3J0IGEgcmVxdWVzdCBib2R5LiIpO2Vsc2UgYS5yZCgiUmVxdWVzdCBtZXRob2QgIit0aGlzLm1ldGhvZE5hbWUrIiBpcyBub3Qgc3VwcG9ydGVkLiIpfTt2YXIgaXU9ZnVuY3Rpb24oKXtodS5jYWxsKHRoaXMsIkltYWdlUGl4ZWwiLDMpfTt3YShpdSxodSk7aXUucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7cmV0dXJuITB9O2l1LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuITF9OwppdS5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyl7WmMoYixmdW5jdGlvbigpe2EuamYoKX0sZnVuY3Rpb24oKXthLm9uRmFpbHVyZSh2b2lkIDApfSxjPT1udWxsP3ZvaWQgMDpjLmFmKX07dmFyIGp1PWZ1bmN0aW9uKCl7aHUuY2FsbCh0aGlzLCJTZW5kQmVhY29uIiwxKX07d2EoanUsaHUpO2p1LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiBrZCgpfTtqdS5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiEwfTtqdS5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyl7amQoYixjPT1udWxsP3ZvaWQgMDpjLmJvZHkpP2EuamYoKTphLnJkKHZvaWQgMCl9O3ZhciBrdT1mdW5jdGlvbigpe2h1LmNhbGwodGhpcywiRmV0Y2giLDEpfTt3YShrdSxodSk7a3UucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHliKEEuZmV0Y2gpfTtrdS5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiEwfTsKa3UucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMpe0EuZmV0Y2goYixjPT1udWxsP3ZvaWQgMDpjLkdiKS50aGVuKGZ1bmN0aW9uKGQpe2lmKGQub2spYS5wZShkKTtlbHNlIGlmKGQuc3RhdHVzPT09MClhLmpmKCk7ZWxzZSBhLm9uRmFpbHVyZSgiRmV0Y2ggZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgIitkLnN0YXR1cysiLiIpfSkuY2F0Y2goZnVuY3Rpb24oZCl7YS5yZChkKX0pfTt2YXIgbHU9bmV3IGl1LG11PW5ldyBqdSxudT1uZXcga3U7dmFyIG91PWZ1bmN0aW9uKCl7fTtvdS5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybltdfTsKdmFyIHB1PWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP1siYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdOmI7Z3UuY2FsbCh0aGlzLGEsYiwxLCEwLDIpfTt3YShwdSxndSk7cHUucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7aWYodGhpcy5aLmxlbmd0aCl7dmFyIGI9UShhLEguSi5Eayk7aWYoYiE9PXZvaWQgMClyZXR1cm4gYn1yZXR1cm4gZ3UucHJvdG90eXBlLksuY2FsbCh0aGlzLGEpfTtwdS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPWZ1KGEpO2EudGFyZ2V0LmRlc3RpbmF0aW9uSWQmJihjLnRpZD1hLnRhcmdldC5kZXN0aW5hdGlvbklkKTtiLm1ldGhvZCBpbnN0YW5jZW9mIGt1P2MuZm10PSI4IjpiLm1ldGhvZCBpbnN0YW5jZW9mIGp1P2MuZm10PSI1IjpiLm1ldGhvZCBpbnN0YW5jZW9mIGl1JiYoYy5mbXQ9IjMiKTtyZXR1cm4gY307cHUucHJvdG90eXBlLnlhPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5OKGEsYik7cmV0dXJuIj8iK09iamVjdC5rZXlzKGMpLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gZCsKIj0iK2NbZF19KS5qb2luKCImIil9O3B1LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLnlhKGEsYiksZT17fTtpZihiLm1ldGhvZCBpbnN0YW5jZW9mIGt1KXtlLkdiPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sbGQpO2lmKHRoaXMuZW5kcG9pbnQ9PT01OHx8dGhpcy5lbmRwb2ludD09PTU3KWUuR2IubWV0aG9kPSJHRVQiO3RoaXMuZW5kcG9pbnQhPT00NXx8cXUuSyhhKXx8KGUuR2IuY3JlZGVudGlhbHM9Im9taXQiLGQrPSImZ2FwLnVjZmI9MSIpfWMoZCxlKX07dmFyIHF1PW5ldyBwdSg0NSkscnU9bmV3IHB1KDQ1LFtdKSxzdT1uZXcgcHUoNDYsW10pLHR1PWZ1bmN0aW9uKCl7cHUuY2FsbCh0aGlzLDY5KX07d2EodHUscHUpO3R1LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbihhKXt2YXIgYj1NKDQ3NCkmJighIVIoYSwiX2dzaWQiKXx8ISFRKGEsSC5KLlhnKSksYz1SKGEsRi5ELkhkKSE9PSIxIiYmKCEhUihhLCJnY2xpZCIpfHwKISFSKGEsImRjbGlkIil8fCEhUihhLCJnY2xzcmMiKXx8ISFSKGEsImF1aWQiKSk7cmV0dXJuIGJ8fGN9O3R1LnByb3RvdHlwZS5OPWZ1bmN0aW9uKGEsYil7dmFyIGM9ZnUoYSksZD1scChhLGMpfHx7fTtPYmplY3Qua2V5cyhkKS5sZW5ndGg+MCYmKGIubWV0aG9kIGluc3RhbmNlb2Yga3U/ZC5mbXQ9IjgiOmIubWV0aG9kIGluc3RhbmNlb2YganU/ZC5mbXQ9IjUiOmIubWV0aG9kIGluc3RhbmNlb2YgaXUmJihkLmZtdD0iMyIpKTtyZXR1cm4gZH07dmFyIHV1PW5ldyB0dSx2dT1mdW5jdGlvbigpe3B1LmNhbGwodGhpcyw0NSl9O3dhKHZ1LHB1KTt2dS5wcm90b3R5cGUuUj1mdW5jdGlvbigpe3JldHVybiBYaigpKyIvZy9kL2NjbS9jb2xsZWN0In07dnUucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1wdS5wcm90b3R5cGUuTi5jYWxsKHRoaXMsYSxiKTtjWyJnYXAuMXBmYiJdPSIxIjtyZXR1cm4gY307dmFyIHd1PWZ1bmN0aW9uKGEpe3B1LmNhbGwodGhpcyxhLFsiYWRfc3RvcmFnZSIsCiJhZF91c2VyX2RhdGEiXSl9O3dhKHd1LHB1KTt3dS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPXB1LnByb3RvdHlwZS5OLmNhbGwodGhpcyxhLGIpO3JldHVybiBocChjKX07dmFyIHh1PW5ldyB3dSg1OCkseXU9bmV3IHd1KDU3KSx6dT1mdW5jdGlvbigpe307d2EoenUsb3UpO3p1LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEpe3ZhciBiPXF1LksoYSksYz1iP3F1OnN1LGQ9W3tlbmRwb2ludDpjLG1ldGhvZDpuZCgpP251Om11fSx7ZW5kcG9pbnQ6YyxtZXRob2Q6bHV9XTtiP00oNTE3KSYmSWYoNDcpJiZkLnB1c2goe2VuZHBvaW50Om5ldyB2dSxtZXRob2Q6bnV9KTpNKDYwMCkmJmQucHVzaCh7ZW5kcG9pbnQ6cnUsbWV0aG9kOm51fSk7cmV0dXJuIGR9O3p1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEpe3ZhciBiPVtdLGM9ISFRKGEsSC5KLnZkKSxkPVIoYSxGLkQuUGQpPT09IjEiLGU9UihhLEYuRC5IZCk9PT0iMSIsZj1xdS5LKGEpLGc9YyYmZCYmIWUmJmY7aWYoZyl7dmFyIGg9ClFjKCl8fE9jKCk/eHU6eXU7Yi5wdXNoKFt7ZW5kcG9pbnQ6aCxtZXRob2Q6bnV9LHtlbmRwb2ludDpoLG1ldGhvZDpsdX1dKX1mJiYoZ3x8UShhLEguSi5oZCkpJiZiLnB1c2goW3tlbmRwb2ludDp1dSxtZXRob2Q6bmQoKT9udTpsdX1dKTtyZXR1cm4gYn07dmFyIEF1PW5ldyB6dTt2YXIgVD17Vzp7Sms6MSxuajoyLEZrOjMsbWw6NCxHazo1LHlkOjYsa2w6NyxNcTo4LHFuOjksSGs6MTAsSWs6MTEsRmg6MTIsRG06MTMsQW06MTQsQ206MTUsem06MTYsQm06MTcseW06MTgsVG86MTkseHE6MjAseXE6MjEsZmo6MjIsdW46MjQsT206MjUsU2s6MjYsVGs6MjcsUms6MjgsVWs6Mjkscmo6MzAsT2s6MzEsWm86MzJ9fTtULldbVC5XLkprXT0iQUxMT1dfSU5URVJFU1RfR1JPVVBTIjtULldbVC5XLm5qXT0iU0VSVkVSX0NPTlRBSU5FUl9VUkwiO1QuV1tULlcuRmtdPSJBRFNfREFUQV9SRURBQ1RJT04iO1QuV1tULlcubWxdPSJDVVNUT01FUl9MSUZFVElNRV9WQUxVRSI7VC5XW1QuVy5Ha109IkFMTE9XX0NVU1RPTV9TQ1JJUFRTIjtULldbVC5XLnlkXT0iQU5ZX0NPT0tJRV9QQVJBTVMiO1QuV1tULlcua2xdPSJDT09LSUVfRVhQSVJFUyI7VC5XW1QuVy5NcV09IkxFR0FDWV9FTkhBTkNFRF9DT05WRVJTSU9OX0pTX1ZBUklBQkxFIjtULldbVC5XLnFuXT0iUkVTVFJJQ1RFRF9EQVRBX1BST0NFU1NJTkciOwpULldbVC5XLkhrXT0iQUxMT1dfRElTUExBWV9GRUFUVVJFUyI7VC5XW1QuVy5Ja109IkFMTE9XX0dPT0dMRV9TSUdOQUxTIjtULldbVC5XLkZoXT0iR0VORVJBVEVEX1RSQU5TQUNUSU9OX0lEIjtULldbVC5XLkRtXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfVU5LTk9XTiI7VC5XW1QuVy5BbV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1NUQU5EQVJEIjtULldbVC5XLkNtXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfVU5JUVVFIjtULldbVC5XLnptXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfUEVSX1NFU1NJT04iO1QuV1tULlcuQm1dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9UUkFOU0FDVElPTlMiO1QuV1tULlcueW1dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9JVEVNU19TT0xEIjtULldbVC5XLlRvXT0iQURTX09HVF9WMV9VU0FHRSI7VC5XW1QuVy54cV09IkZPUk1fSU5URVJBQ1RJT05fUEVSTUlTU0lPTl9ERU5JRUQiOwpULldbVC5XLnlxXT0iRk9STV9TVUJNSVRfUEVSTUlTU0lPTl9ERU5JRUQiO1QuV1tULlcuZmpdPSJNSUNST1RBU0tfTk9UX1NVUFBPUlRFRCI7VC5XW1QuVy51bl09IlNFVF9FTkNSWVBURURfREFUQV9UT19DQUNIRSI7VC5XW1QuVy5PbV09IkdFVF9FTkNSWVBURURfREFUQV9GUk9NX0NBQ0hFIjtULldbVC5XLlNrXT0iQ09ORklHX0RFVEVDVEVEX1dJVEhfTk9fUEFSQU0iO1QuV1tULlcuVGtdPSJDT05GSUdfREVURUNURURfV0lUSF9QQVJBTSI7VC5XW1QuVy5Sa109IkNPTkZJR19DT05TRU5UX1NFVF9CRUZPUkUiO1QuV1tULlcuVWtdPSJDT05GSUdfU0VUX1VTRURfQkVGT1JFIjtULldbVC5XLnJqXT0iU0hBRE9XX0RPTV9BVVRPX1BJSSI7VC5XW1QuVy5Pa109IkNDRF9VU0VSX0RBVEFfV0VCX09OX0NPTkZJRyI7VC5XW1QuVy5ab109IkJMRU5ERURfVVNFUl9EQVRBIjt2YXIgQnU9e30sQ3U9KEJ1W0YuRC51aV09VC5XLkprLEJ1W0YuRC5kZF09VC5XLm5qLEJ1W0YuRC55Y109VC5XLm5qLEJ1W0YuRC5tYl09VC5XLkZrLEJ1W0YuRC5HZV09VC5XLm1sLEJ1W0YuRC5yaV09VC5XLkdrLEJ1W0YuRC5KZF09VC5XLnlkLEJ1W0YuRC5uYl09VC5XLnlkLEJ1W0YuRC5MYl09VC5XLnlkLEJ1W0YuRC5JZF09VC5XLnlkLEJ1W0YuRC52Y109VC5XLnlkLEJ1W0YuRC5UYl09VC5XLnlkLEJ1W0YuRC5DYl09VC5XLmtsLEJ1W0YuRC5XYl09VC5XLnFuLEJ1W0YuRC5oaF09VC5XLkhrLEJ1W0YuRC5TY109VC5XLklrLEJ1KSxEdT17fSxFdT0oRHUudW5rbm93bj1ULlcuRG0sRHUuc3RhbmRhcmQ9VC5XLkFtLER1LnVuaXF1ZT1ULlcuQ20sRHUucGVyX3Nlc3Npb249VC5XLnptLER1LnRyYW5zYWN0aW9ucz1ULlcuQm0sRHUuaXRlbXNfc29sZD1ULlcueW0sRHUpO3ZhciBGdT1mdW5jdGlvbihhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7c2IoIkdUQUdfRVZFTlRfRkVBVFVSRV9DSEFOTkVMIixiKTtjJiYoYS5IW2JdPSEwKX0sdmI9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPVtdfTtmdW5jdGlvbiBHdShhKXtGdSh2YixhLCExKX1mdW5jdGlvbiBIdShhLGIpe3ZhciBjPWI9PT12b2lkIDA/ITE6YixkPXZiO2M9Yz09PXZvaWQgMD8hMTpjO2Zvcih2YXIgZT1PYmplY3Qua2V5cyhhKSxmPW0oT2JqZWN0LmtleXMoQ3UpKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtlLmluY2x1ZGVzKGgpJiZGdShkLEN1W2hdLGMpfX07ZnVuY3Rpb24gSXUoYSxiKXthP2EudGhlbihiKTpiKHZvaWQgMCl9ZnVuY3Rpb24gSnUoYSl7cmV0dXJuIFByb21pc2UuYWxsU2V0dGxlZChhKS50aGVuKGZ1bmN0aW9uKGIpe3JldHVybiBiLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4gYy5zdGF0dXM9PT0iZnVsZmlsbGVkIn0pLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYy52YWx1ZX0pfSl9ZnVuY3Rpb24gS3UoKXt2YXIgYSxiO3JldHVybntwcm9taXNlOm5ldyBQcm9taXNlKGZ1bmN0aW9uKGMsZCl7YT1jO2I9ZH0pLHJlc29sdmU6YSxyZWplY3Q6Yn19O2Z1bmN0aW9uIEx1KGEsYixjLGQsZSxmKXt2YXIgZz1jLnNsaWNlKCksaDtkPT1udWxsfHwoaD1kLnV2KT09bnVsbHx8aC5jYWxsKGQsYSxiLGMsZSk7dmFyIGw9S3UoKSxuPWwucHJvbWlzZSxwPWwucmVzb2x2ZSxxPVtdLHI9ZnVuY3Rpb24oKXtwKHEpO3ZhciB1O2Q9PW51bGx8fCh1PWQuUnMpPT1udWxsfHx1LmNhbGwoZCxhLGIsYyxlLHEpfSx0PWZ1bmN0aW9uKCl7dmFyIHU9Zy5zaGlmdCgpO3U/dS5tZXRob2QuaXNTdXBwb3J0ZWQoKT9NdShhLGIsdS5lbmRwb2ludCxkLHEsdS5tZXRob2QsZSxmLHQscik6dCgpOnIoKX07dCgpO3JldHVybiBufQpmdW5jdGlvbiBNdShhLGIsYyxkLGUsZixnLGgsbCxuKXt2YXIgcD1jLlIoYSkscT17dGs6YixlbmRwb2ludDpjLGlzUHJpbWFyeTpnLHNiOnZvaWQgMCxwazpmLGp0Ont9fSxyPSExLHQ9ZnVuY3Rpb24oeixDKXtpZihyKVAoMTg3KTtlbHNlIGlmKHI9ITAsIXUpe3ZhciBEPUN8fHt9LEk9RC5ib2R5LEc9RC5HYixOPUQuYWY7Qz1PYmplY3QuZnJlZXplKG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sST97Ym9keTpJfTp7fSxHP3tHYjpHfTp7fSxOP3thZjpOfTp7fSkpO2lmKEkmJiFmLkgoKSl4KCksbCgpO2Vsc2V7dmFyIFM9TnUoeiksVz1wWzBdPT09Ii8iPyIiK3ArUzoiaHR0cHM6Ly8iK3ArUztxLnNiPVc7cS5qdD1DO3ZhciBlYTtkPT1udWxsfHwoZWE9ZC5Tcyk9PW51bGx8fGVhLmNhbGwoZCxhLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scSkpO3ZhciBqYT17ZGVzdGluYXRpb25JZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLGVuZHBvaW50OmMuZW5kcG9pbnQsCmV2ZW50SWQ6YS5NLmV2ZW50SWQscHJpb3JpdHlJZDphLk0ucHJpb3JpdHlJZH07Zi5SPT09dm9pZCAwfHxjLmZhIT09MiYmKGMuZmEhPT0xfHxlLmxlbmd0aCl8fGtuLnJlZ2lzdGVyKGphLGYuUixXKTt2YXIgZmE9ZnVuY3Rpb24oZGEsbWEpe3goKTtpZihxLnN0YXR1cyE9PXZvaWQgMClyZXR1cm4gUCgxOTIpLCExO3Euc3RhdHVzPWRhO2UucHVzaChxKTt2YXIgUGE7ZD09bnVsbHx8KFBhPWQudW8pPT1udWxsfHxQYS5jYWxsKGQsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHEpLG1hKTtyZXR1cm4hMH0sc2E9e0ZvOmphLHJkOmZ1bmN0aW9uKCl7ZmEoMikmJmwoKX0sb25GYWlsdXJlOmZ1bmN0aW9uKCl7ZmEoMykmJmwoKX0scGU6ZnVuY3Rpb24oZGEpe2ZhKGRhLnN0YXR1cz09PTA/MTpkYS5vaz8wOjMsZGEpJiZuKCl9LGpmOmZ1bmN0aW9uKCl7ZmEoMSkmJm4oKX19O091KGMsYSxXLFMsSSk7Zi5zZW5kUmVxdWVzdChzYSxXLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsCnt9LEkmJntib2R5Okl9LEcmJntHYjpHfSxOJiZ7YWY6Tn0pKX19fSx1PSExLHYseD1mdW5jdGlvbigpe3YhPT12b2lkIDAmJihBLmNsZWFyVGltZW91dCh2KSx2PXZvaWQgMCl9O00oNTc0KSYmKHY9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dj12b2lkIDA7dT0hMDtpZihxLnN0YXR1cz09PXZvaWQgMCl7cS5zdGF0dXM9NDtxLnNiPT09dm9pZCAwJiYocS5zYj0iW2ZhaWxlZCB0byBidWlsZF0gIitwKTtlLnB1c2gocSk7dmFyIHo7ZD09bnVsbHx8KHo9ZC51byk9PW51bGx8fHouY2FsbChkLGEsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxxKSx2b2lkIDApO2woKX19LDVFMykpO3ZhciB5PXtJYzpwLG1ldGhvZDpmLHl2OmUsaXNQcmltYXJ5OmcsQ3Q6aH07dHJ5e2MuSChhLHksdCl9Y2F0Y2goeil7eCgpLFAoMTg4KSxsKCl9fQpmdW5jdGlvbiBPdShhLGIsYyxkLGUpe2lmKGEuamEpe3ZhciBmPWIudGFyZ2V0LmRlc3RpbmF0aW9uSWQsZz1hLmVuZHBvaW50O2lmKGc9PT00NXx8Zz09PTQ2fHxnPT09Njl8fGc9PT01OHx8Zz09PTU3KXt2YXIgaD0vWz8mXXRpZHM9KFteJl0rKS8uZXhlYyhkKTtmPWg/ZGVjb2RlVVJJQ29tcG9uZW50KGhbMV0pLnNwbGl0KCJ+Iik6W2ZdfU1sKHt0YXJnZXRJZDpmLHJlcXVlc3Q6bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx7dXJsOmMscGFyYW1ldGVyRW5jb2Rpbmc6YS5wYXJhbWV0ZXJFbmNvZGluZyxlbmRwb2ludDphLmVuZHBvaW50fSxlP3twb3N0Qm9keTplfTp7fSkscWI6e2V2ZW50SWQ6Yi5NLmV2ZW50SWQscHJpb3JpdHlJZDpiLk0ucHJpb3JpdHlJZH0sRmo6e2V2ZW50SWQ6UShiLEguSi51ZikscHJpb3JpdHlJZDpRKGIsSC5KLnZmKX19KX19CmZ1bmN0aW9uIE51KGEpe3JldHVybiBhJiZhIT09Ij8iP2FbMF0hPT0iPyI/Ij8iLmNvbmNhdChhKTphOiIifTtmdW5jdGlvbiBQdShhLGIsYyxkLGUpe3ZhciBmO2U9PW51bGx8fChmPWUudnYpPT1udWxsfHxmLmNhbGwoZSxhLGIpO2lmKCFjLmxlbmd0aCl7dmFyIGc7ZT09bnVsbHx8KGc9ZS5Ucyk9PW51bGx8fGcuY2FsbChlLGEsYixbXSk7cmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSl9dmFyIGg9W10sbD17dGs6YixtazpjLGprOmR9O2gucHVzaChMdShhLGIsYyxlLCEwLGwpKTtmb3IodmFyIG49bShkKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSloLnB1c2goTHUoYSxiLHAudmFsdWUsZSwhMSxsKSk7cmV0dXJuIEp1KGgpLnRoZW4oZnVuY3Rpb24ocSl7Zm9yKHZhciByPVtdLHQ9bShxKSx1PXQubmV4dCgpOyF1LmRvbmU7dT10Lm5leHQoKSlyLnB1c2guYXBwbHkocix3KHUudmFsdWUpKTt2YXIgdjtlPT1udWxsfHwodj1lLlRzKT09bnVsbHx8di5jYWxsKGUsYSxiLHIpO3JldHVybiByfSl9O2Z1bmN0aW9uIFF1KGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpLGQ7Yj09bnVsbHx8KGQ9Yi53dik9PW51bGx8fGQuY2FsbChiLGEsYyk7Zm9yKHZhciBlPVtdLGY9bShjKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSllLnB1c2goUnUoYSxnLnZhbHVlKSk7Zm9yKHZhciBoPVtdLGw9bShlKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtoLnB1c2goUHUoYSxwLnRrLHAubWsscC5qayxiKSl9SnUoaCkudGhlbihmdW5jdGlvbihxKXtmb3IodmFyIHI9W10sdD1tKHEpLHU9dC5uZXh0KCk7IXUuZG9uZTt1PXQubmV4dCgpKXIucHVzaC5hcHBseShyLHcodS52YWx1ZSkpO3ZhciB2O2I9PW51bGx8fCh2PWIuUXMpPT1udWxsfHx2LmNhbGwoYixhLGMscil9KX0KZnVuY3Rpb24gUnUoYSxiKXt2YXIgYz1mdW5jdGlvbihmKXtyZXR1cm4gZi5tZXRob2QuaXNTdXBwb3J0ZWQoKSYmZi5lbmRwb2ludC5pc1N1cHBvcnRlZChhKSYmZi5lbmRwb2ludC5LKGEpfSxkPShiLkgoYSl8fFtdKS5maWx0ZXIoYyksZT1bXTtkLmxlbmd0aCYmKGU9KGIuSyhhKXx8W10pLm1hcChmdW5jdGlvbihmKXtyZXR1cm4gZi5maWx0ZXIoYyl9KS5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuIGYubGVuZ3RoPjB9KSk7cmV0dXJue3RrOmIsbWs6ZCxqazplfX07CnZhciBTdT1mdW5jdGlvbihhLGIpe2lmKE0oNTE3KSYmSWYoNDcpJiZhPT09NDUpcmV0dXJuIFhqKCkrIi9nL2QvY2NtL2NvbGxlY3Q/IitiLnNwbGl0KCI/IilbMV0rIiZnYXAuMXBmYj0xIn0sV3U9ZnVuY3Rpb24oKXt2YXIgYT1hbCgzMCxmdW5jdGlvbigpe3JldHVybltdfSk7aWYoYS5sZW5ndGgpe2Zvcih2YXIgYj17fSxjPW0oYSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWUsZj1UdShlLmtlLCJhcHZjIiksZz1UdShlLmtlLCJ0ZnQiKSxoPVR1KGUua2UsInRmZCIpLGw9VHUoZS5rZSwidGlkIiksbj1ObShlLmVuZHBvaW50LGUua2UpLHA9YltuXT1iW25dfHx7eGs6W10sWmg6W119O3AuWmgucHVzaChlKTtsPyhwLnhrLnB1c2gobCkscC51ZHx8KHAudWQ9bCkpOnAueGsucHVzaCgiIik7Zj09PSIxIiYmKHAuUW49ITApO2lmKGd8fGgpcC5Obj0hMH1hLmxlbmd0aD0wO2Zvcih2YXIgcT1tKE9iamVjdC5rZXlzKGIpKSxyPXEubmV4dCgpLHQ9e307IXIuZG9uZTt0PQp7eWs6dm9pZCAwfSxyPXEubmV4dCgpKXt2YXIgdT1yLnZhbHVlLHY9Ylt1XTt0LnlrPXYueGs7dmFyIHg9dC55ay5maWx0ZXIoZnVuY3Rpb24oRCl7cmV0dXJuIGZ1bmN0aW9uKEksRyl7cmV0dXJuIEQueWsuaW5kZXhPZihJKT09PUd9fSh0KSkuZmlsdGVyKGZ1bmN0aW9uKEQpe3JldHVybiEhRH0pO2lmKE0oNDI3KSl7dmFyIHk9VXUodix4KTtRdSh5LHZvaWQgMCxBdSl9ZWxzZXt2YXIgej11KyImYXB2Yz0iKyh2LlFuPyIxIjoiMCIpO3gubGVuZ3RoJiYoeis9IiZ0aWRzPSIreC5qb2luKCJ+IikpO3YudWQmJih6Kz0iJnRpZD0iK3YudWQpO2lmKHYuTm4pe3orPSImdGZ0PSIrU3RyaW5nKE5iKCkpO3ZhciBDPXBkKCk7QyE9PXZvaWQgMCYmKHorPSImdGZkPSIrU3RyaW5nKE1hdGgucm91bmQoQykpKX1WdSh2LlpoWzBdLmV2ZW50LHosdi5aaFswXS5lbmRwb2ludCx4Lmxlbmd0aD94OlsiIl0pfX19fSxUdT1mdW5jdGlvbihhLGIpe3ZhciBjPWFbYl07aWYoYyE9PXZvaWQgMClyZXR1cm4gZGVsZXRlIGFbYl0sCmN9LFZ1PWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXtkZXN0aW5hdGlvbklkOmEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsZW5kcG9pbnQ6YyxldmVudElkOmEuTS5ldmVudElkLHByaW9yaXR5SWQ6YS5NLnByaW9yaXR5SWR9LGY9ZnVuY3Rpb24obCxuKXt2YXIgcD1iK1h1KGwpO1RsKHAsYSxjLGQpO3JldHVybiBuKHApfTtpZihuZCgpKXt2YXIgZz1mdW5jdGlvbigpe30saD1TdShjLGIpO2ghPT12b2lkIDAmJihnPWZ1bmN0aW9uKCl7WW4oZSxoK1h1KDgpLHZvaWQgMCx7UWc6ITB9KX0pO2YoOCxmdW5jdGlvbihsKXtZbihlLGwsdm9pZCAwLHtRZzohMH0sZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKCl7WmMoYitYdSgzKSxmdW5jdGlvbigpe30sZyl9KX0pfWVsc2UgZig1LGZ1bmN0aW9uKGwpe3JldHVybiBXbihlLGwpfSl8fFpjKGIrWHUoMykpfSxVdT1mdW5jdGlvbihhLGIpe3ZhciBjPWEuWmhbMF0sZD17Il8mYXB2YyI6YS5Rbj8iMSI6IjAifTtiLmxlbmd0aD4wJiYoZFsiXyZ0aWRzIl09CmIuam9pbigifiIpKTtpZihhLk5uKXtkWyJfJnRmdCJdPVN0cmluZyhOYigpKTt2YXIgZT1wZCgpO2UhPT12b2lkIDAmJihkWyJfJnRmZCJdPVN0cmluZyhNYXRoLnJvdW5kKGUpKSl9cmV0dXJuIFl1KGMuZXZlbnQsYS51ZHx8IiIsZCl9LFl1PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGEudGFyZ2V0LHtkZXN0aW5hdGlvbklkOmJ9KSxlPVp1KGEse3RhcmdldDpkfSk7Ynx8VShlLEYuRC5RZSk7Zm9yKHZhciBmPW0oT2JqZWN0LmtleXMoYykpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1nLnZhbHVlO1UoZSxoLGNbaF0pfXJldHVybiBlfSxYdT1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSA4OmNhc2UgMzpjYXNlIDU6cmV0dXJuIiZmbXQ9IithO2RlZmF1bHQ6cmV0dXJuIiJ9fSwkdT1mdW5jdGlvbihhLGIpe2E9WnUoYSk7VihhLEguSi5EayxYbyhmcCkpO1R0KCkmJlUoYSwiXyZnY3MiLFV0KCkpOwpVKGEsIl8mZ2NkIixZdChhLk0pKTt2YXIgYz1YbyhmcCk/NDU6NDYsZD1mdW5jdGlvbigpe3ZhciBmPWIudGlkO2lmKE0oNDI3KSl7dmFyIGc9WXUoYSxmLGIpO1F1KGcsdm9pZCAwLEF1KX1lbHNle3ZhciBoPU5tKGMsYik7VnUoYSxoLGMsW2ZdKX19O2lmKHliKEEucXVldWVNaWNyb3Rhc2spKXt2YXIgZT1hbCgzMCxmdW5jdGlvbigpe3JldHVybltdfSk7aWYoZS5sZW5ndGg9PT0wKXRyeXtBLnF1ZXVlTWljcm90YXNrKFd1KX1jYXRjaChmKXtHdShULlcuZmopO2QoKTtyZXR1cm59Yj1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGIpO2UucHVzaCh7ZXZlbnQ6YSxrZTpiLGVuZHBvaW50OmN9KX1lbHNlIEd1KFQuVy5maiksZCgpfTt2YXIgYXY9ZnVuY3Rpb24oYSxiLGMsZCl7Z3UuY2FsbCh0aGlzLGEsYixjPT09dm9pZCAwPzE6YyxkPT09dm9pZCAwPyExOmQsMyx2b2lkIDApfTt3YShhdixndSk7YXYucHJvdG90eXBlLnlhPWZ1bmN0aW9uKGEsYil7dmFyIGM9UihhLEYuRC55aSk7cmV0dXJuIGIrIi8iK2MrIi8ifTthdi5wcm90b3R5cGUuUj1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy55YShhLGd1LnByb3RvdHlwZS5SLmNhbGwodGhpcyxhKSl9O3ZhciBYPXtWOntNazoiY2FsbF9jb252ZXJzaW9uIix6ZDoiY2NtX2NvbnZlcnNpb24iLFFrOiJjb21tb25fYXciLHhhOiJjb252ZXJzaW9uIix3cToiZmxvb2RsaWdodCIsWWQ6ImdhX2NvbnZlcnNpb24iLFpkOiJnY3BfcmVtYXJrZXRpbmciLEthOiJwYWdlX3ZpZXciLHViOiJyZW1hcmtldGluZyIsT2I6InVzZXJfZGF0YV9sZWFkIixGYjoidXNlcl9kYXRhX3dlYiJ9fTtmdW5jdGlvbiBidihhLGIpe2ImJkdiKGIsZnVuY3Rpb24oYyxkKXt0eXBlb2YgZCE9PSJvYmplY3QiJiZkIT09dm9pZCAwJiYoYVsiMXAuIitjXT1TdHJpbmcoZCkpfSl9Owp2YXIgY3Y9ZnVuY3Rpb24oYSxiKXt2YXIgYz1SKGEsRi5ELnNoKTtpZihjKWZvcih2YXIgZD1tKE9iamVjdC5rZXlzKGMpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZSxnPWNbZl07ZyE9bnVsbCYmKGJbImd0bWQuIitmXT1TdHJpbmcoZykpfX0sZ3Y9ZnVuY3Rpb24oYSl7dmFyIGI9ZHYoYSk7aWYoYi5sZW5ndGgpe3ZhciBjPWV2KGEpLlZuLGQ9ZnYoYyl8fCIiO3JldHVybiBiLm1hcChmdW5jdGlvbihlKXt2YXIgZj1mdihlKTtyZXR1cm4iIitkKyhkJiZmPyI7IjoiIikrZn0pfX0sZHY9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWh2KGEpLGM9e30sZD1tKGIpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlLGc9dm9pZCAwO2lmKGYuaGFzT3duUHJvcGVydHkoImdvb2dsZV9idXNpbmVzc192ZXJ0aWNhbCIpKXtnPWYuZ29vZ2xlX2J1c2luZXNzX3ZlcnRpY2FsO3ZhciBoPXt9O2NbZ109Y1tnXXx8KGguZ29vZ2xlX2J1c2luZXNzX3ZlcnRpY2FsPQpnLGgpfWVsc2UgZz0iIixjLmhhc093blByb3BlcnR5KGcpfHwoY1tnXT17fSk7dmFyIGw9Y1tnXSxuO2ZvcihuIGluIGYpbiE9PSJnb29nbGVfYnVzaW5lc3NfdmVydGljYWwiJiYobiBpbiBsfHwobFtuXT1bXSksbFtuXS5wdXNoKGZbbl0pKX1yZXR1cm4gT2JqZWN0LmtleXMoYykubWFwKGZ1bmN0aW9uKHApe3JldHVybiBjW3BdfSl9LGh2PWZ1bmN0aW9uKGEpe3ZhciBiPVIoYSxGLkQuSGEpO3JldHVybiBiJiZiLmxlbmd0aD9iLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4hIWN9KS5tYXAoZnVuY3Rpb24oYyl7dmFyIGQ9e307cmV0dXJuIGQuaWQ9aWkoYyksZC5vcmlnaW49Yy5vcmlnaW4sZC5kZXN0aW5hdGlvbj1jLmRlc3RpbmF0aW9uLGQuc3RhcnRfZGF0ZT1jLnN0YXJ0X2RhdGUsZC5lbmRfZGF0ZT1jLmVuZF9kYXRlLGQubG9jYXRpb25faWQ9Yy5sb2NhdGlvbl9pZCxkLmdvb2dsZV9idXNpbmVzc192ZXJ0aWNhbD1jLmdvb2dsZV9idXNpbmVzc192ZXJ0aWNhbCxkfSk6W119LAppaT1mdW5jdGlvbihhKXthLml0ZW1faWQhPW51bGwmJihhLmlkIT1udWxsPyhQKDEzOCksYS5pZCE9PWEuaXRlbV9pZCYmUCgxNDgpKTpQKDE1MykpO3JldHVybiBqaShhKX0sZnY9ZnVuY3Rpb24oYSl7aWYoYSYmdHlwZW9mIGE9PT0ib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkoYSkpcmV0dXJuIE9iamVjdC5rZXlzKGEpLm1hcChmdW5jdGlvbihiKXt2YXIgYz1pdihiKTtpZihjKXt2YXIgZD1hW2JdLGU9QXJyYXkuaXNBcnJheShkKT9qdihkKTppdihkKTtpZihlIT09dm9pZCAwKXJldHVybiBjKyI9IitlfX0pLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gYiE9PXZvaWQgMH0pLmpvaW4oIjsiKX0sanY9ZnVuY3Rpb24oYSl7dmFyIGI9YS5tYXAoaXYpLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4gYyE9PXZvaWQgMH0pO3JldHVybiBiLmxlbmd0aD9iLmpvaW4oIiwiKTp2b2lkIDB9LGl2PWZ1bmN0aW9uKGEpe2lmKGEhPW51bGwpe3ZhciBiPXR5cGVvZiBhO2lmKGIhPT0ib2JqZWN0IiYmCmIhPT0iZnVuY3Rpb24iKXJldHVybiBTdHJpbmcoYSkucmVwbGFjZSgvLC9nLCJcXCwiKS5yZXBsYWNlKC87L2csIlxcOyIpLnJlcGxhY2UoLz0vZywiXFw9Iil9fSxrdj1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LmtleXMoYSkubWFwKGZ1bmN0aW9uKGIpe3ZhciBjPWFbYl07aWYoYyE9bnVsbCYmKGMhPT0iInx8eWdbYl0pKXJldHVybiBjPT09ITB8fGM9PT0hMT9iKyI9IisoYz8xOjApOmIrIj0iK2VuY29kZVVSSUNvbXBvbmVudChjKX0pLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4hIWJ9KS5qb2luKCImIil9LGx2PWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouZGEpLGM9e30sZD1RKGEsSC5KLkViKTtpZihiPT09WC5WLnhhfHxiPT09WC5WLnVifHxiPT09WC5WLllkfHxiPT09WC5WLnpkfHxiPT09WC5WLlpkKWMucmFuZG9tPSIiK2Q7Yj09PVguVi54YXx8Yj09PVguVi51Ynx8Yj09PVguVi56ZHx8Yj09PVguVi5aZD8oYy5jdj0iMTEiLGMuZnN0PSIiK2QsYy5mbXQ9IjMiLApjLmJnPSJmZmZmZmYiLGMuZ3VpZD0iT04iLGMuYXN5bmM9IjEiLGMuZW49YS5ldmVudE5hbWUpOmI9PT1YLlYuWWQmJihjLmN2PSIxMSIsYy50aWQ9YS50YXJnZXQuZGVzdGluYXRpb25JZCxjLmZzdD0iIitkLGMuZm10PSI4IixjLmVuPWEuZXZlbnROYW1lKTt2YXIgZT1CcyhbImF3IiwiZGMiXSk7ZSE9bnVsbCYmKGMuZ2FkX3NvdXJjZT1lKTtjLmd0bT1kdSh7bWM6UShhLEguSi5OYiksVGc6YS5NLmlzR3RtRXZlbnQsZWY6UShhLEguSi5DYyl9KTtiIT09WC5WLnViJiZUdCgpJiYoYy5nY3M9VXQoKSk7Yy5nY2Q9WXQoYS5NKTthdSgpJiYoYy5kbWFfY3BzPVp0KCkpO2MuZG1hPSR0KCk7dnQoRXQoKSkmJihjLnRjZmQ9YnUoKSk7dmFyIGY9Q3AoYSk7ZiYmKGMudGFnX2V4cD1mKTtmby5IW2NvLmlhLmNiXSE9PWJvLk1hLlVlfHxmby5LW2NvLmlhLmNiXS5pc0NvbnNlbnRHcmFudGVkKCl8fChjLmxpbWl0ZWRfYWRzPSIxIik7UihhLEYuRC5iZCkmJmZpKFIoYSxGLkQuYmQpLGMpO2lmKFIoYSwKRi5ELnRiKSl7dmFyIGc9UihhLEYuRC50Yik7ZyYmKGcubGVuZ3RoPT09Mj9naShjLCJobCIsZyk6Zy5sZW5ndGg9PT01JiYoZ2koYywiaGwiLGcuc3Vic3RyaW5nKDAsMikpLGdpKGMsImdsIixnLnN1YnN0cmluZygzLDUpKSkpfXZhciBoPVEoYSxILkouWWUpLGw9ZnVuY3Rpb24oSSxHKXt2YXIgTj1SKGEsRyk7TiYmKGNbSV09aD9acyhOKTpOKX07bCgidXJsIixGLkQuemEpO2woInJlZiIsRi5ELlVhKTtsKCJ0b3AiLEYuRC5QZSk7dmFyIG49Z3QoYSxGLkQuQmQsRi5ELkNkKTtuJiYoYy5nY2xhd19zcmM9bik7dmFyIHA9Z3QoYSxGLkQuZmgsRi5ELmdoKTtwJiYoYy5nY2xnYl9zcmM9cCk7dmFyIHE9ZnVuY3Rpb24oSSxHKXtmb3IodmFyIE49bShPYmplY3Qua2V5cyhJKSksUz1OLm5leHQoKTshUy5kb25lO1M9Ti5uZXh0KCkpe3ZhciBXPVMudmFsdWU7ZWlbV10mJnR5cGVvZiBJW1ddPT09InN0cmluZyImJihHWyJleHQuIitlaVtXXV09SVtXXSl9fSxyPVIoYSxGLkQuV2MpO3ImJgpxKHIsYyk7dmFyIHQ9ZXYoYSksdT10LlZuO25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsYyx0LmtlKTtidihjLFIoYSxGLkQuZWQpKTt2YXIgdj1SKGEsRi5ELk5lKTt2IT09dm9pZCAwJiZ2IT09IiImJihjLnZkbmM9U3RyaW5nKHYpKTt2YXIgeD1SKGEsRi5ELkxkKTt4IT09dm9pZCAwJiYoYy5zaGY9eCk7dmFyIHk9UihhLEYuRC5UYyk7eSE9PXZvaWQgMCYmKGMuZGVsYz15KTtpZihiIT09WC5WLllkKXt2YXIgej1mdih1KTt6JiYoYy5kYXRhPXopfXZhciBDPVIoYSxGLkQuSGEpO2lmKEMmJihiPT09WC5WLnhhfHxiPT09WC5WLllkfHxiPT09WC5WLlpkfHxiPT09WC5WLnpkKSl7dmFyIEQ9bmkoQyk7RCE9PXZvaWQgMCYmKGMuaWVkZWxkPUQpO2MuaXRlbT1oaShDKX1odChhLGMpO2N2KGEsYyk7UShhLEguSi5JaCkmJihjLmFlY3M9IjEiKTtiIT09WC5WLnhhfHxRKGEsSC5KLkVjKXx8UShhLEguSi5vYil8fChjLmNhdGVnb3J5PSJhY3JjcF92MV81MTIiKTtyZXR1cm4gY30sCmV2PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj17fSxjPXt9LGQ9UShhLEguSi5kYSksZT1tKGV1KGEpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZSxoPVIoYSxnKTtpZihoIT09dm9pZCAwKWlmKFNiKGcsIl8mIikpYltnLnN1YnN0cmluZygyKV09aDtlbHNlIGlmKGVpLmhhc093blByb3BlcnR5KGcpKXtpZihnIT09Ri5ELkVpfHxkPT09WC5WLnhhJiYhUShhLEguSi5FYykpe3ZhciBsPWVpW2ddO2wmJihnIT09Ri5ELk5kJiZnIT09Ri5ELk1kfHxNKDUwNCk/YltsXT1oOmNbZ109aCl9fWVsc2UgY1tnXT1ofXJldHVybntrZTpiLFZuOmN9fTt2YXIgbXY9e05nOiJ2YWx1ZSIscGI6ImNvbnZlcnNpb25Db3VudCIsT2c6MX0sbnY9e05nOiJ0aW1lb3V0cyIscGI6InRpbWVvdXRzIixPZzowfSxvdj17Tmc6ImVvcENvdW50IixwYjoiZW5kT2ZQYWdlQ291bnQiLE9nOjB9LHB2PXtOZzoiZXJyb3JzIixwYjoiZXJyb3JzIixPZzowfSxxdj1bbXYsbnYscHYsb3ZdO2Z1bmN0aW9uIHJ2KGEsYil7Yj1iPT09dm9pZCAwPzE6YjtpZighc3YoYSkpcmV0dXJue307dmFyIGM9dHYocXYpLGQ9Y1thLnBiXTtpZihkPT09dm9pZCAwfHxkPT09LTEpcmV0dXJuIGM7dmFyIGU9e30sZj1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMsKGVbYS5wYl09ZCtiLGUpKTtyZXR1cm4gdXYoZik/ZjpjfQpmdW5jdGlvbiB0dihhKXt2YXIgYjthOnt2YXIgYz1ucigiZ2NsX2N0ciIpO2lmKGMuZXJyb3I9PT0wJiZjLnZhbHVlJiZ0eXBlb2YgYy52YWx1ZT09PSJvYmplY3QiKXt2YXIgZD1jLnZhbHVlO3RyeXtiPSJ2YWx1ZSJpbiBkJiZ0eXBlb2YgZC52YWx1ZT09PSJvYmplY3QiP2QudmFsdWU6dm9pZCAwO2JyZWFrIGF9Y2F0Y2gocCl7fX1iPXZvaWQgMH1mb3IodmFyIGU9YixmPXt9LGc9bShhKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZTtpZihlJiZzdihsKSl7dmFyIG49ZVtsLk5nXTtuPT09dm9pZCAwfHxOdW1iZXIuaXNOYU4obik/ZltsLnBiXT0tMTpmW2wucGJdPU51bWJlcihuKX1lbHNlIGZbbC5wYl09LTF9cmV0dXJuIGZ9CmZ1bmN0aW9uIHV2KGEsYil7Yj1ifHx7fTtmb3IodmFyIGM9TmIoKSxkPXVxKGIsYywhMCksZT17fSxmPW0ocXYpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1nLnZhbHVlLGw9YVtoLnBiXTtsIT09dm9pZCAwJiZsIT09LTEmJihlW2guTmddPWwpfWUuY3JlYXRpb25UaW1lTXM9YztyZXR1cm4ga3IoImdjbF9jdHIiLHt2YWx1ZTplLGV4cGlyZXM6TnVtYmVyKGQuZXhwaXJlcyl9KT09PTA/ITA6ITF9ZnVuY3Rpb24gc3YoYSl7cmV0dXJuIEJsKFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKT8hYS5mdHx8WWYoYS5mdCk6ITF9ZnVuY3Rpb24gdnYoYSl7cmV0dXJuIEJsKFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKT8hYS5Bc3x8WWYoYS5Bcyk6ITF9O2Z1bmN0aW9uIHd2KCl7aWYoeHYoKSl7dmFyIGE9bnIoImxhc3RfY29udnMiKTtpZihhLmVycm9yPT09MCYmYS52YWx1ZSYmdHlwZW9mIGEudmFsdWU9PT0ib2JqZWN0Iil7dmFyIGI9YS52YWx1ZTtpZihiLnZhbHVlJiZBcnJheS5pc0FycmF5KGIudmFsdWUpKXt2YXIgYz1iLnZhbHVlO2lmKCEoYy5sZW5ndGg+MSkpe2Zvcih2YXIgZD1bXSxlPW0oYyksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7aWYodHlwZW9mIGchPT0ib2JqZWN0Inx8Zz09PW51bGx8fHR5cGVvZiBnLnJhbmRvbSE9PSJudW1iZXIifHx0eXBlb2YgZy5sYWJlbCE9PSJzdHJpbmcifHxnLmxhYmVsLmxlbmd0aD4yMDApcmV0dXJuO2QucHVzaCh7cmFuZG9tOmcucmFuZG9tLGxhYmVsOmcubGFiZWx9KX1yZXR1cm4gZH19fX19CmZ1bmN0aW9uIHl2KGEsYil7IXh2KCl8fGEubGVuZ3RoPjF8fGEubGVuZ3RoPT09MSYmYVswXS5sYWJlbC5sZW5ndGg+MjAwfHwoYj1ifHx7fSxrcigibGFzdF9jb252cyIse3ZhbHVlOmEsZXhwaXJlczpOdW1iZXIodXEoYikuZXhwaXJlcyl9KSl9ZnVuY3Rpb24geHYoKXtyZXR1cm4gQmwoWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pJiZZZigxMSl9O2Z1bmN0aW9uIHp2KGEpe3ZhciBiPU1hdGgucm91bmQoTWF0aC5yYW5kb20oKSoyMTQ3NDgzNjQ3KTtyZXR1cm4gYT9TdHJpbmcoYl5uZyhhKSYyMTQ3NDgzNjQ3KTpTdHJpbmcoYil9ZnVuY3Rpb24gQXYoYSl7cmV0dXJuW3p2KGEpLE1hdGgucm91bmQoTmIoKS8xRTMpXS5qb2luKCIuIil9ZnVuY3Rpb24gQnYoYSxiLGMsZCxlKXt2YXIgZj1ycShiKSxnO3JldHVybihnPWdxKGEsZixzcShjKSxkLGUpKT09bnVsbD92b2lkIDA6Zy5Dcn07dmFyIEN2PVsiMSJdLER2PXt9LEV2PXt9O2Z1bmN0aW9uIEZ2KGEpe3JldHVybiBFdltHdihhKV19ZnVuY3Rpb24gSHYoYSxiKXtiPWI9PT12b2lkIDA/ITA6Yjt2YXIgYz1HdihhLnByZWZpeCk7aWYoRHZbY10pSXYoYSksSnYoYSk7ZWxzZSBpZihLdihjLGEucGF0aCxhLmRvbWFpbikpe3ZhciBkPUZ2KGEucHJlZml4KXx8e2lkOnZvaWQgMCxrYzp2b2lkIDB9O2ImJkx2KGEsZCk7SXYoYSk7SnYoYSl9ZWxzZXt2YXIgZT1UaigiYXVpZGRjIik7aWYoZSlzYigiVEFHR0lORyIsMTcpLER2W2NdPWU7ZWxzZSBpZihiKXt2YXIgZj1HdihhLnByZWZpeCksZz1BdigpO012KGYsZyxhKTtLdihjLGEucGF0aCxhLmRvbWFpbik7SXYoYSwhMCk7SnYoYSwhMCl9fX0KZnVuY3Rpb24gSXYoYSxiKXsoYj09PXZvaWQgMD8wOmIpJiZzdihtdikmJm9yKCJnY2xfY3RyIik7aWYodnYobXYpJiZ0dihbbXZdKVttdi5wYl09PT0tMSl7Zm9yKHZhciBjPXt9LGQ9KGNbbXYucGJdPTAsYyksZT1tKHF2KSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtnIT09bXYmJnZ2KGcpJiYoZFtnLnBiXT0wKX11dihkLGEpfX1mdW5jdGlvbiBKdihhLGIpeyhiPT09dm9pZCAwPzA6YikmJnh2KCkmJm9yKCJsYXN0X2NvbnZzIik7IUJsKFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKXx8IVlmKDEyKXx8d3YoKXx8eXYoW10sYSl9CmZ1bmN0aW9uIEx2KGEsYil7dmFyIGM9R3YoYS5wcmVmaXgpLGQ9RHZbY107aWYoZCl7dmFyIGU9ZC5zcGxpdCgiLiIpO2lmKGUubGVuZ3RoPT09Mil7dmFyIGY9TnVtYmVyKGVbMV0pfHwwO2lmKGYpe3ZhciBnPWQ7WWYoMTkpJiZiLmZpP2c9ZCsiLiIrKGIuc2Vzc2lvbklkfHwiLS4tIikrIi4iKyhiLmtjP2Iua2M6TWF0aC5mbG9vcihOYigpLzFFMykpKyIuIitiLmZpKyIuIisoYi5MYz9iLkxjOk1hdGguZmxvb3IoTmIoKS8xRTMpKTpiLnNlc3Npb25JZCYmKGc9ZCsiLiIrYi5zZXNzaW9uSWQrIi4iKyhiLmtjP2Iua2M6TWF0aC5mbG9vcihOYigpLzFFMykpKTtNdihjLGcsYSxmKjFFMyl9fX19ZnVuY3Rpb24gTXYoYSxiLGMsZCl7dmFyIGU7ZT1bIjEiLHRxKGMuZG9tYWluLGMucGF0aCksYl0uam9pbigiLiIpO3ZhciBmPXVxKGMsZCk7Zi5NYz1OdigpO29xKGEsZSxmKX0KZnVuY3Rpb24gS3YoYSxiLGMpe3ZhciBkPUJ2KGEsYixjLEN2LE52KCkpO2lmKCFkKXJldHVybiExO092KGEsZCk7cmV0dXJuITB9ZnVuY3Rpb24gT3YoYSxiKXt2YXIgYz1iLnNwbGl0KCIuIik7aWYoYy5sZW5ndGg9PT0zKUV2W2FdPXtzZXNzaW9uSWQ6Y1swXSsiLiIrY1sxXSxrYzpOdW1iZXIoY1syXSl8fDAsTGM6MH07ZWxzZSBpZihjLmxlbmd0aD49MiYmKER2W2FdPWNbMF0rIi4iK2NbMV0sYy5zaGlmdCgpLGMuc2hpZnQoKSxjLmxlbmd0aD49Mykpe3ZhciBkPXtzZXNzaW9uSWQ6Y1swXT09PSItIj92b2lkIDA6Y1swXSsiLiIrY1sxXSxrYzpOdW1iZXIoY1syXSl8fDAsTGM6MH07aWYoWWYoMTkpJiZjLmxlbmd0aD49Nil7dmFyIGU9Y1szXSsiLiIrY1s0XSxmPU51bWJlcihjWzVdKXx8MDtlJiZmIT09MCYmKGQuZmk9ZSxkLkxjPWYpfUV2W2FdPWR9fWZ1bmN0aW9uIEd2KGEpe3JldHVybihhfHwiX2djbCIpKyJfYXUifQpmdW5jdGlvbiBQdihhKXtmdW5jdGlvbiBiKCl7QmwoYykmJmEoKX12YXIgYz1OdigpO0hsKGZ1bmN0aW9uKCl7YigpO0JsKGMpfHxJbChiLGMpfSxjKX1mdW5jdGlvbiBRdihhKXt2YXIgYj1VcSghMCksYz1HdihhLnByZWZpeCk7UHYoZnVuY3Rpb24oKXt2YXIgZD1iW2NdO2lmKGQpe092KGMsZCk7dmFyIGU9TnVtYmVyKER2W2NdLnNwbGl0KCIuIilbMV0pKjFFMztpZihlKXtzYigiVEFHR0lORyIsMTYpO3ZhciBmPXVxKGEsZSk7Zi5NYz1OdigpO3ZhciBnPVsiMSIsdHEoYS5kb21haW4sYS5wYXRoKSxkXS5qb2luKCIuIik7b3EoYyxnLGYpfX19KX1mdW5jdGlvbiBSdihhLGIsYyxkLGUpe2U9ZXx8e307dmFyIGY9ZnVuY3Rpb24oKXt2YXIgZz17fSxoPUJ2KGEsZS5wYXRoLGUuZG9tYWluLEN2LE52KCkpO2gmJihnW2FdPWgpO3JldHVybiBnfTtQdihmdW5jdGlvbigpe2FyKGYsYixjLGQpfSl9CmZ1bmN0aW9uIE52KCl7cmV0dXJuWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl19Owp2YXIgVHY9ZnVuY3Rpb24oYSl7cmV0dXJuIFN2KGEse09qOiEwfSkuU2h9LFN2PWZ1bmN0aW9uKGEsYil7YT1hfHx7fTtpZighWG8oRi5ELmthKSlyZXR1cm57fTt2YXIgYz1VdihhKSxkPWMuU2gsZT1jLmlrO2IuT2omJiFkJiYoZD1BdigpKTtiLlhoJiYhZSYmKGU9QXYoKSk7dmFyIGY9e307ZCYmKGYuc2Vzc2lvbklkPWQpO2UmJihmLmZpPWUpO3ZhciBnPUZ2KEhyKGEucHJlZml4KSk7ZyYmKGIuT2omJiFiLlhoP2cuTGMmJihmLkxjPWcuTGMpOmIuWGgmJiFiLk9qJiZnLmtjJiYoZi5rYz1nLmtjKSk7aWYoZHx8ZSl7dmFyIGg9YSxsPUd2KGgucHJlZml4KTtMdihoLGYpO2RlbGV0ZSBEdltsXTtkZWxldGUgRXZbbF07S3YobCxoLnBhdGgsaC5kb21haW4pfXJldHVybiBVdihhKX0sVXY9ZnVuY3Rpb24oYSl7aWYoIVhvKEYuRC5rYSkpcmV0dXJue307YT1hfHx7fTtIdihhLCExKTt2YXIgYj1GdihIcihhLnByZWZpeCkpO2lmKCFiKXJldHVybnt9O3ZhciBjPU5iKCksZD17fTtpZihjLQpiLmtjKjFFMzw9KE0oNDUwKXx8TSg0NDMpPzg2NEU1OjE4RTUpKXt2YXIgZT1iLnNlc3Npb25JZDtpZihlKXt2YXIgZj1lLnNwbGl0KCIuIik7Zi5sZW5ndGg9PT0yJiZjLShOdW1iZXIoZlsxXSl8fDApKjFFMzw9ODY0RTUmJihkLlNoPWUpfX1pZihiLkxjJiZjLWIuTGMqMUUzPD04NjRFNSl7dmFyIGc9Yi5maTtpZihnKXt2YXIgaD1nLnNwbGl0KCIuIik7aC5sZW5ndGg9PT0yJiZjLShOdW1iZXIoaFsxXSl8fDApKjFFMzw9ODY0RTUmJihkLmlrPWcpfX1yZXR1cm4gZH07dmFyIFZ2PSJlbWFpbCBlbWFpbF9hZGRyZXNzIHNoYTI1Nl9lbWFpbF9hZGRyZXNzIHBob25lX251bWJlciBzaGEyNTZfcGhvbmVfbnVtYmVyIGZpcnN0X25hbWUgbGFzdF9uYW1lIi5zcGxpdCgiICIpLFd2PSJmaXJzdF9uYW1lIHNoYTI1Nl9maXJzdF9uYW1lIGxhc3RfbmFtZSBzaGEyNTZfbGFzdF9uYW1lIHN0cmVldCBzaGEyNTZfc3RyZWV0IGNpdHkgcmVnaW9uIGNvdW50cnkgcG9zdGFsX2NvZGUiLnNwbGl0KCIgIik7ZnVuY3Rpb24gWHYoYSxiKXtpZighYi5fdGFnX21ldGFkYXRhKXtmb3IodmFyIGM9e30sZD0wLGU9MDtlPGEubGVuZ3RoO2UrKylkKz1ZdihhW2VdLGIsYyk/MTowO2Q+MCYmKGIuX3RhZ19tZXRhZGF0YT1jKX19CmZ1bmN0aW9uIFl2KGEsYixjKXt2YXIgZD1iW2FdO2lmKGQ9PT12b2lkIDB8fGQ9PT1udWxsKXJldHVybiExO2NbYV09QXJyYXkuaXNBcnJheShkKT9kLm1hcChmdW5jdGlvbigpe3JldHVybnttb2RlOiJjIn19KTp7bW9kZToiYyJ9O3JldHVybiEwfWZ1bmN0aW9uIFp2KGEpe2lmKE0oNTIzKSYmYSl7WHYoVnYsYSk7Zm9yKHZhciBiPUJiKGEuYWRkcmVzcyksYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD1iW2NdO2QmJlh2KFd2LGQpfXZhciBlPWEuaG9tZV9hZGRyZXNzO2UmJlh2KFd2LGUpfX0KZnVuY3Rpb24gJHYoYSxiLGMpe2Z1bmN0aW9uIGQoZixnKXtnPVN0cmluZyhnKS5zdWJzdHJpbmcoMCwxMDApO2UucHVzaCgiIitmK2VuY29kZVVSSUNvbXBvbmVudChnKSl9aWYoIWMpcmV0dXJuIiI7dmFyIGU9W107ZCgiaSIsU3RyaW5nKGEpKTtkKCJmIixiKTtjLm1vZGUmJmQoIm0iLGMubW9kZSk7Yy5pc1ByZUhhc2hlZCYmZCgicCIsIjEiKTtjLnJhd0xlbmd0aCYmZCgiciIsU3RyaW5nKGMucmF3TGVuZ3RoKSk7Yy5ub3JtYWxpemVkTGVuZ3RoJiZkKCJuIixTdHJpbmcoYy5ub3JtYWxpemVkTGVuZ3RoKSk7Yy5sb2NhdGlvbiYmZCgibCIsYy5sb2NhdGlvbik7Yy5zZWxlY3RvciYmZCgicyIsYy5zZWxlY3Rvcik7cmV0dXJuIGUuam9pbigiLiIpfTt2YXIgYXc9dm9pZCAwO2Z1bmN0aW9uIGJ3KCl7aWYoIWF3KXt2YXIgYT1vbShqbS5iYS5vcCxuZXcgTWFwKTthdz1uZXcgb2coYSl9cmV0dXJuIGF3fTsKdmFyIGN3PWZ1bmN0aW9uKGEpe2lmKCFhKXJldHVybiBhO2Zvcih2YXIgYj17fSxjPW0oT2JqZWN0LmtleXMoYSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2UhPT0iYWRkcmVzcyImJmUhPT0icGhvbmVfbnVtYmVyIiYmZSE9PSJzaGEyNTZfcGhvbmVfbnVtYmVyIiYmKGJbZV09YVtlXSl9cmV0dXJuIGJ9LGZ3PWZ1bmN0aW9uKGEpe3ZhciBiPU0oNTIzKSxjPVsidHYuMSJdLGQ9WyJ0dmQuMSJdLGU9ZHcoYSk7aWYoZSlyZXR1cm4gYy5wdXNoKGUpLHtoYXNVcGQ6ITEsT286Yy5qb2luKCJ+IiksWW46Yy5qb2luKCJ+IiksZW5jcnlwdGlvbktleVN0cmluZzp2b2lkIDAsaWk6e30sbWV0YWRhdGFQYXJhbTpiP2Quam9pbigifiIpOnZvaWQgMH07dmFyIGY9e30sZz0wO3ZhciBoPTAsbD1ldyhhLGZ1bmN0aW9uKHEscix0KXtoKys7dmFyIHU9cS52YWx1ZSx2OwppZih0KXt2YXIgeD1yKyJfXyIrZysrO3Y9IiR7dXNlckRhdGEuIit4KyJ8c2hhMjU2fSI7Zlt4XT11fWVsc2Ugdj1lbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KHUpKTtxLmluZGV4IT09dm9pZCAwJiYocis9cS5pbmRleCk7Yy5wdXNoKHIrIi4iK3YpO2lmKGIpe3ZhciB5PSR2KGgscixxLm1ldGFkYXRhKTt5JiZkLnB1c2goeSl9fSkuaGFzVXBkLG49ZC5qb2luKCJ+Iik7dmFyIHA9Yy5qb2luKCJ+Iik7cmV0dXJue2hhc1VwZDpsLE9vOnAsaWk6e3VzZXJEYXRhOmZ9LFluOiJ0di4xfiR7IisocCsifCIrKE0oNTU1KT8iZW5jcnlwdF93aXRoX21lbW8iOiJlbmNyeXB0IikrIn0iKSxlbmNyeXB0aW9uS2V5U3RyaW5nOkUoNDMpLG1ldGFkYXRhUGFyYW06Yj9uOnZvaWQgMH19LGh3PWZ1bmN0aW9uKGEpe2lmKCEoYSE9bnVsbCYmT2JqZWN0LmtleXMoYSkubGVuZ3RoPjApKXJldHVybiExOwp2YXIgYj1ndyhhKTtyZXR1cm4gZXcoYixmdW5jdGlvbigpe30pLmhhc1VwZH0sZXc9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/ZnVuY3Rpb24oKXt9OmI7Zm9yKHZhciBjPSExLGQ9ITEsZT1tKGEpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO2lmKGcudmFsdWUpe3ZhciBoPWl3W2cubmFtZV07aWYoaCl7dmFyIGw9ancoZyk7bCYmKGM9ITApO2Q9ITA7YihnLGgsbCl9fX1yZXR1cm57aGFzVXBkOmQsaGFzVXBkVG9IYXNoOmN9fSxqdz1mdW5jdGlvbihhKXt2YXIgYj1rdyhhLm5hbWUpLGM9L15lXGQrJC8udGVzdChhLnZhbHVlKSxkO2lmKGQ9YiYmIWMpe3ZhciBlPWEudmFsdWU7ZD0hKGx3LnRlc3QoZSl8fHlpLnRlc3QoZSkpfXJldHVybiBkfSxrdz1mdW5jdGlvbihhKXtyZXR1cm4gbXcuaW5kZXhPZihhKSE9PS0xfSxzdz1mdW5jdGlvbihhLGIsYyl7aWYoeWIoQS5Qcm9taXNlKSl0cnl7dmFyIGQ9ITE7dmFyIGU9Z3coYSxkKSxmPW53KGUpLnRoZW4oZnVuY3Rpb24oaCl7dmFyIGw9aC55YixuPWwuZmlsdGVyKGZ1bmN0aW9uKHEpe3JldHVybiFTYihxLm5hbWUsInJhdyIpfSkscD1vdyh7eWI6bn0pO3JldHVybntyZXN1bHQ6e3BhcmFtOnAucGFyYW0saGFzVXBkVG9IYXNoOnAuaGFzVXBkVG9IYXNoLGhhc1VwZDpwLmhhc1VwZCxoYWRFcnJvcjpwLmhhZEVycm9yLG1ldGFkYXRhUGFyYW06cC5tZXRhZGF0YVBhcmFtfSx5YjpsfX0pO3JldHVybiBmLnRoZW4oZnVuY3Rpb24oaCl7cmV0dXJuIGgucmVzdWx0fSl9Y2F0Y2goaCl7fX0scXc9ZnVuY3Rpb24oYSl7dmFyIGI9dm9pZCAwO3JldHVybiBifSxvdz1mdW5jdGlvbihhKXt2YXIgYj1NKDUyMyksYz1hLnliLGQ9WyJ0di4xIl0sZT1bInR2ZC4xIl0sZj1kdyhjKTtpZihmKXJldHVybiBkLnB1c2goZikse3BhcmFtOmQuam9pbigifiIpLGhhc1VwZFRvSGFzaDohMSxoYXNVcGQ6ITEsaGFkRXJyb3I6ITAsbWV0YWRhdGFQYXJhbTpiP2Uuam9pbigifiIpOnZvaWQgMH07dmFyIGc9Yy5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIWp3KHEpfSksaD0wLGw9ZXcoZyxmdW5jdGlvbihxLHIpe2grKzt2YXIgdD1xLnZhbHVlLHU9cS5pbmRleDt1IT09dm9pZCAwJiYocis9dSk7ZC5wdXNoKHIrIi4iK3QpO2lmKGIpe3ZhciB2PSR2KGgscixxLm1ldGFkYXRhKTt2JiZlLnB1c2godil9fSksbj1sLmhhc1VwZFRvSGFzaCxwPWwuaGFzVXBkO3JldHVybntwYXJhbTplbmNvZGVVUklDb21wb25lbnQoZC5qb2luKCJ+IikpLApoYXNVcGRUb0hhc2g6bixoYXNVcGQ6cCxoYWRFcnJvcjohMSxtZXRhZGF0YVBhcmFtOmI/ZS5qb2luKCJ+Iik6dm9pZCAwfX0sZHc9ZnVuY3Rpb24oYSl7aWYoYS5sZW5ndGg9PT0xJiZhWzBdLm5hbWU9PT0iZXJyb3JfY29kZSIpcmV0dXJuIGl3LmVycm9yX2NvZGUrIi4iK2FbMF0udmFsdWV9LHB3PWZ1bmN0aW9uKGEpe2lmKGEubGVuZ3RoPT09MSYmYVswXS5uYW1lPT09ImVycm9yX2NvZGUiKXJldHVybiExO2Zvcih2YXIgYj1tKGEpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXt2YXIgZD1jLnZhbHVlO2lmKGl3W2QubmFtZV0mJmQudmFsdWUpcmV0dXJuITB9cmV0dXJuITF9LGd3PWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9W107aWYoQS5sb2NhdGlvbi5wcm90b2NvbCE9PSJodHRwczoiKXJldHVybiBjLnB1c2goe25hbWU6ImVycm9yX2NvZGUiLHZhbHVlOiJlMyIsaW5kZXg6dm9pZCAwfSksYzt2YXIgZD1jLnB1c2gsZT1kLmFwcGx5LGY9W10sCmc9Zi5jb25jYXQsaCxsPWEuX3RhZ19tZXRhZGF0YXx8e307aD1bXS5jb25jYXQodyh0dyh7bmFtZToiZW1haWwiLHJhdzphLmVtYWlsLFNhOmEuc2hhMjU2X2VtYWlsX2FkZHJlc3MsYWI6bC5lbWFpbCxtZDpsLnNoYTI1Nl9lbWFpbF9hZGRyZXNzfSx1dykpLHcodHcoe25hbWU6InBob25lX251bWJlciIscmF3OmEucGhvbmVfbnVtYmVyLFNhOmEuc2hhMjU2X3Bob25lX251bWJlcixhYjpsLnBob25lX251bWJlcixtZDpsLnNoYTI1Nl9waG9uZV9udW1iZXJ9LHZ3KSkpO3ZhciBuPXcoaCkscCxxPWEuX3RhZ19tZXRhZGF0YXx8e30scj1hLmhvbWVfYWRkcmVzc3x8e30sdD1yLl90YWdfbWV0YWRhdGF8fHt9O3A9W10uY29uY2F0KHcodHcoe25hbWU6ImZpcnN0X25hbWUiLHJhdzphLmZpcnN0X25hbWUsU2E6YS5zaGEyNTZfZmlyc3RfbmFtZSxhYjpxLmZpcnN0X25hbWUsbWQ6cS5zaGEyNTZfZmlyc3RfbmFtZX0sd3coeHcpKSksdyh0dyh7bmFtZToibGFzdF9uYW1lIixyYXc6YS5sYXN0X25hbWUsClNhOmEuc2hhMjU2X2xhc3RfbmFtZSxhYjpxLmxhc3RfbmFtZSxtZDpxLnNoYTI1Nl9sYXN0X25hbWV9LHd3KHh3KSkpLHcodHcoe25hbWU6InN0cmVldCIscmF3OnIuc3RyZWV0LFNhOnIuc2hhMjU2X3N0cmVldCxhYjp0LnN0cmVldCxtZDp0LnNoYTI1Nl9zdHJlZXR9LHd3KHl3KSkpLHcodHcoe25hbWU6ImNpdHkiLHJhdzpyLmNpdHksYWI6dC5jaXR5fSx3dyh5dykpKSx3KHR3KHtuYW1lOiJwb3N0YWxfY29kZSIscmF3OnIucG9zdGFsX2NvZGUsYWI6dC5wb3N0YWxfY29kZX0sd3coencpKSksdyh0dyh7bmFtZToicmVnaW9uIixyYXc6ci5yZWdpb24sYWI6dC5yZWdpb259LHd3KHl3KSkpLHcodHcoe25hbWU6ImNvdW50cnkiLHJhdzpyLmNvdW50cnksYWI6dC5jb3VudHJ5fSx3dyh6dykpKSk7Zm9yKHZhciB1PXcocCksdj1bXSx4PUJiKGEuYWRkcmVzc3x8e30pLHk9MDt5PHgubGVuZ3RoO3krKyl7Zm9yKHZhciB6PXhbeV0sQz16Ll90YWdfbWV0YWRhdGF8fHt9LEQ9W10uY29uY2F0KHcodHcoe25hbWU6ImZpcnN0X25hbWUiLApyYXc6ei5maXJzdF9uYW1lLFNhOnouc2hhMjU2X2ZpcnN0X25hbWUsYWI6Qy5maXJzdF9uYW1lLG1kOkMuc2hhMjU2X2ZpcnN0X25hbWV9LHh3KSksdyh0dyh7bmFtZToibGFzdF9uYW1lIixyYXc6ei5sYXN0X25hbWUsU2E6ei5zaGEyNTZfbGFzdF9uYW1lLGFiOkMubGFzdF9uYW1lLG1kOkMuc2hhMjU2X2xhc3RfbmFtZX0seHcpKSx3KHR3KHtuYW1lOiJzdHJlZXQiLHJhdzp6LnN0cmVldCxTYTp6LnNoYTI1Nl9zdHJlZXQsYWI6Qy5zdHJlZXQsbWQ6Qy5zaGEyNTZfc3RyZWV0fSx5dykpLHcodHcoe25hbWU6ImNpdHkiLHJhdzp6LmNpdHksYWI6Qy5jaXR5fSx5dykpLHcodHcoe25hbWU6InBvc3RhbF9jb2RlIixyYXc6ei5wb3N0YWxfY29kZSxhYjpDLnBvc3RhbF9jb2RlfSx6dykpLHcodHcoe25hbWU6InJlZ2lvbiIscmF3OnoucmVnaW9uLGFiOkMucmVnaW9ufSx5dykpLHcodHcoe25hbWU6ImNvdW50cnkiLHJhdzp6LmNvdW50cnksYWI6Qy5jb3VudHJ5fSx6dykpKSxJPTA7STwKRC5sZW5ndGg7SSsrKURbSV0uaW5kZXg9eTt2LnB1c2guYXBwbHkodix3KEQpKX1lLmNhbGwoZCxjLGcuY2FsbChmLG4sdSx3KHYpKSk7aWYoYiYmQnAoKSl7dmFyIEc9Yy5wdXNoLE49Ry5hcHBseSxTPVtdO1MucHVzaC5hcHBseShTLFtdLmNvbmNhdCh3KEF3KHtuYW1lOiJyYXdfZW1haWwiLHJhdzphLmVtYWlsLFNhOmEuc2hhMjU2X2VtYWlsX2FkZHJlc3N9KSksdyhBdyh7bmFtZToicmF3X3Bob25lX251bWJlciIscmF3OmEucGhvbmVfbnVtYmVyLFNhOmEuc2hhMjU2X3Bob25lX251bWJlcn0pKSkpO2Zvcih2YXIgVz1CYihhLmFkZHJlc3N8fHt9KSxlYT0wO2VhPFcubGVuZ3RoO2VhKyspe3ZhciBqYT1XW2VhXTtTLnB1c2guYXBwbHkoUyxbXS5jb25jYXQodyhBdyh7bmFtZToicmF3X2ZpcnN0X25hbWUiLHJhdzpqYS5maXJzdF9uYW1lLFNhOmphLnNoYTI1Nl9maXJzdF9uYW1lfSxlYSkpLHcoQXcoe25hbWU6InJhd19sYXN0X25hbWUiLHJhdzpqYS5sYXN0X25hbWUsU2E6amEuc2hhMjU2X2xhc3RfbmFtZX0sCmVhKSksdyhBdyh7bmFtZToicmF3X3N0cmVldCIscmF3OmphLnN0cmVldCxTYTpqYS5zaGEyNTZfc3RyZWV0fSxlYSkpKSl9aWYoYS5maXJzdF9uYW1lfHxhLmhvbWVfYWRkcmVzcyl7Uy5wdXNoLmFwcGx5KFMsW10uY29uY2F0KHcoQXcoe25hbWU6InJhd19maXJzdF9uYW1lIixyYXc6YS5maXJzdF9uYW1lLFNhOmEuc2hhMjU2X2ZpcnN0X25hbWV9KSksdyhBdyh7bmFtZToicmF3X2xhc3RfbmFtZSIscmF3OmEubGFzdF9uYW1lLFNhOmEuc2hhMjU2X2xhc3RfbmFtZX0pKSkpO3ZhciBmYT1hLmhvbWVfYWRkcmVzc3x8e307Uy5wdXNoLmFwcGx5KFMsdyhBdyh7bmFtZToicmF3X3N0cmVldCIscmF3OmZhLnN0cmVldCxTYTpmYS5zaGEyNTZfc3RyZWV0fSkpKX1OLmNhbGwoRyxjLHcoUykpfXJldHVybiBjfSx3dz1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7UCg2NCk7cmV0dXJuIGEoYil9fSxBdz1mdW5jdGlvbihhLGIpe3ZhciBjPVtdO2lmKGEuU2EpcmV0dXJuIGM7Zm9yKHZhciBkPQpCYihhLnJhdyksZT0wO2U8ZC5sZW5ndGg7KytlKXt2YXIgZj1CdyhkW2VdKTtpZihmJiYheWkudGVzdChmKSlpZigvXmVcZCskLy50ZXN0KGYpKWMucHVzaCh7bmFtZTphLm5hbWUsdmFsdWU6ZixpbmRleDpifSk7ZWxzZXt2YXIgZz1jLGg9Zy5wdXNoLGw9YS5uYW1lLG47dmFyIHA9QTt0cnl7bj1CaShBcnJheS5mcm9tKFpiKGYpKSxwKX1jYXRjaChxKXtuPSJlMCJ9aC5jYWxsKGcse25hbWU6bCx2YWx1ZTpuLGluZGV4OmJ9KX19cmV0dXJuIGN9LHR3PWZ1bmN0aW9uKGEsYil7dmFyIGM9W10sZD1NKDUyMyksZT1hLnJhdyxmPWQ/YS5hYjp2b2lkIDA7Q3coZSwhMSk7YS5TYSYmKGUmJlAoOTApLGU9YS5TYSxmPWQ/YS5tZDp2b2lkIDAsQ3coZSwhMCkpO2Zvcih2YXIgZz1CYihlKSxoPUJiKGYpLGw9MDtsPGcubGVuZ3RoOysrbCl7dmFyIG47dmFyIHA9YS5uYW1lLHE9YixyPWhbbF0sdD1CdyhnW2xdKTtpZih0IT09IiIpaWYoeWkudGVzdCh0KSl7ciYmKHIuaXNQcmVIYXNoZWQ9ITApOwp2YXIgdT17bmFtZTpwLHZhbHVlOnQsaW5kZXg6dm9pZCAwfTtyJiYodS5tZXRhZGF0YT1yKTtuPXV9ZWxzZXt2YXIgdj1xKHQpLHg9e25hbWU6cCx2YWx1ZTp2LGluZGV4OnZvaWQgMH07ciYmKHgubWV0YWRhdGE9cix2JiYoci5yYXdMZW5ndGg9U3RyaW5nKHQpLmxlbmd0aCxyLm5vcm1hbGl6ZWRMZW5ndGg9di5sZW5ndGgpKTtuPXh9ZWxzZSBuPXZvaWQgMDt2YXIgeT1uO3kmJmMucHVzaCh5KX1yZXR1cm4gY30sQ3c9ZnVuY3Rpb24oYSxiKXtpZih6YihhKXx8QXJyYXkuaXNBcnJheShhKSlmb3IodmFyIGM9QmIoYSksZD0wO2Q8Yy5sZW5ndGg7KytkKXt2YXIgZT1CdyhjW2RdKSxmPXlpLnRlc3QoZSk7YiYmIWYmJlAoODkpOyFiJiZmJiZQKDg4KX19LER3PWZ1bmN0aW9uKGEpe3ZhciBiPWE/Z3coYSk6W107cmV0dXJuIG93KHt5YjpifSl9LEV3PWZ1bmN0aW9uKGEpe3JldHVybiBhJiZhIT1udWxsJiZPYmplY3Qua2V5cyhhKS5sZW5ndGg+MCYmeWIoQS5Qcm9taXNlKT9ndyhhKS5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiLnZhbHVlJiYKa3coYi5uYW1lKSYmIXlpLnRlc3QoYi52YWx1ZSl9KTohMX0sQnc9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PW51bGw/IiI6emIoYSk/TGIoU3RyaW5nKGEpKToiZTAifSx6dz1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKEZ3LCIiKX0seHc9ZnVuY3Rpb24oYSl7cmV0dXJuIHl3KGEucmVwbGFjZSgvXHMvZywiIikpfSx5dz1mdW5jdGlvbihhKXtyZXR1cm4gTGIoYS5yZXBsYWNlKEd3LCIiKS50b0xvd2VyQ2FzZSgpKX0sdnc9ZnVuY3Rpb24oYSl7YT1hLnJlcGxhY2UoL1tccy0oKS8uXS9nLCIiKTthLmNoYXJBdCgwKSE9PSIrIiYmKGE9IisiK2EpO3JldHVybihNKDU5Nyk/SHc6SXcpLnRlc3QoYSk/YToiZTAifSx1dz1mdW5jdGlvbihhKXt2YXIgYj1hLnRvTG93ZXJDYXNlKCkuc3BsaXQoIkAiKTtpZihiLmxlbmd0aD09PTIpe3ZhciBjPWJbMF07L14oZ21haWx8Z29vZ2xlbWFpbClcLi8udGVzdChiWzFdKSYmKGM9Yy5yZXBsYWNlKC9cLi9nLCIiKSk7Yz1jKyJAIitiWzFdO2lmKEp3LnRlc3QoYykpcmV0dXJuIGN9cmV0dXJuImUwIn0sCkt3PWZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4gYS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2IudmFsdWUmJmt3KGIubmFtZSkmJihiLnZhbHVlPURpKGIudmFsdWUpKX0pLHt5YjphfX1jYXRjaChiKXtyZXR1cm57eWI6W119fX0sbnc9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc29tZShmdW5jdGlvbihiKXtyZXR1cm4gYi52YWx1ZSYma3coYi5uYW1lKX0pP3liKEEuUHJvbWlzZSk/UHJvbWlzZS5hbGwoYS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGIudmFsdWUmJmt3KGIubmFtZSk/QWkoYi52YWx1ZSkudGhlbihmdW5jdGlvbihjKXtiLnZhbHVlPWN9KTpQcm9taXNlLnJlc29sdmUoKX0pKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJue3liOmF9fSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57eWI6W119fSk6e3RoZW46ZnVuY3Rpb24oYil7Yih7eWI6W119KX19OlByb21pc2UucmVzb2x2ZSh7eWI6YX0pfSxHdz0vWzAtOWB+IUAjJCVeJiooKV9cLSs9Ojs8PiwuP3wvXFxbXF1dL2csSnc9L15cUytAXFMrXC5cUyskLywKSXc9L15cK1xkezEwLDE1fSQvLEh3PS9eXCtcZHs3LDE1fSQvLEZ3PS9bLn5dL2csbHc9L15bMC05QS1aYS16Xy1dezQzfSQvLEx3PVsicmVtIiwicnBuIiwicmZuIiwicmxuIiwicnNhIl0sTXc9e30saXc9KE13LmVtYWlsPSJlbSIsTXcucGhvbmVfbnVtYmVyPSJwbiIsTXcuZmlyc3RfbmFtZT0iZm4iLE13Lmxhc3RfbmFtZT0ibG4iLE13LnN0cmVldD0ic2EiLE13LmNpdHk9ImN0IixNdy5yZWdpb249InJnIixNdy5jb3VudHJ5PSJjbyIsTXcucG9zdGFsX2NvZGU9InBjIixNdy5lcnJvcl9jb2RlPSJlYyIsTXcucmF3X2VtYWlsPSJyZW0iLE13LnJhd19waG9uZV9udW1iZXI9InJwbiIsTXcucmF3X2ZpcnN0X25hbWU9InJmbiIsTXcucmF3X2xhc3RfbmFtZT0icmxuIixNdy5yYXdfc3RyZWV0PSJyc2EiLE13KTt2YXIgbXc9T2JqZWN0LmZyZWV6ZShbImVtYWlsIiwKInBob25lX251bWJlciIsImZpcnN0X25hbWUiLCJsYXN0X25hbWUiLCJzdHJlZXQiXSk7CnZhciBRdz1mdW5jdGlvbihhLGIpe3ZhciBjPWx2KGEpLGQ9ZnVuY3Rpb24ocCl7dmFyIHE9Q3AoYSk7cSYmKGMudGFnX2V4cD1xKTtiKHApfSxlPVEoYSxILkouZGEpLGY9UShhLEguSi5ZYSksZz1YbyhbRi5ELm1hLEYuRC5rYV0pLGg7YTpzd2l0Y2goZSl7Y2FzZSBYLlYueGE6Y2FzZSBYLlYuemQ6Y2FzZSBYLlYuWmQ6Y2FzZSBYLlYuT2I6Y2FzZSBYLlYuRmI6aD0hMDticmVhayBhO2RlZmF1bHQ6aD0hMX1pZihoJiZmJiZnKWlmKFEoYSxILkouZmQpKWlmKE53KGEpKWQoYyk7ZWxzZXt2YXIgbD1zdyhmLCEwKTtPdyhsLGEsYyxkKX1lbHNle3ZhciBuO2E6e3RyeXtuPW93KEt3KGd3KGYpKSk7YnJlYWsgYX1jYXRjaChwKXt9bj12b2lkIDB9aWYobil0cnl7UHcoYyxhKShuKX1jYXRjaChwKXt9ZChjKX1lbHNlIGRlbGV0ZSBjLmVjX21vZGUsZChjKX0sTnc9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5kYSk7cmV0dXJuIGI9PT1YLlYuRmJ8fGI9PT1YLlYuT2J9LFJ3PWZ1bmN0aW9uKGEsCmIpe3JldHVybiBhIT09MXx8UShiLEguSi5kYSk9PT1YLlYuT2ImJiFNKDQ0NSk/ITE6ISFRKGIsSC5KLmZkKX0sUHc9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZnVuY3Rpb24oYyl7UncoYy5lbmNyeXB0aW9uUmVzdWx0PzE6MCxiKXx8KGEuZW09Yy5wYXJhbSk7aWYoYy5oYXNVcGQpe3ZhciBkPVN3KGIpO2QmJihhLmVjc2lkPWQpfU0oNTIzKSYmYy5tZXRhZGF0YVBhcmFtJiYoYS5lbWQ9Yy5tZXRhZGF0YVBhcmFtKTt9fSxTdz1mdW5jdGlvbihhKXtpZihRKGEsSC5KLmRhKT09PVguVi5GYiYmCiFNKDQ0Mykpe3ZhciBiPVEoYSxILkouR2EpO3JldHVybiBRKGEsSC5KLnpqKXx8VHYoYil9fSxPdz1mdW5jdGlvbihhLGIsYyxkKXtpZihhKXRyeXthLnRoZW4oUHcoYyxiKSkudGhlbihmdW5jdGlvbigpe2QoYyl9KTtyZXR1cm59Y2F0Y2goZSl7fWQoYyl9O3ZhciBUdz1PYmplY3QuZnJlZXplKHtnY3A6IjEiLHNzY3RlOiIxIixjdF9jb29raWVfcHJlc2VudDoiMSJ9KTsKdmFyIFV3PWZ1bmN0aW9uKGEsYil7YXYuY2FsbCh0aGlzLGEsYiwxLCExKX07d2EoVXcsYXYpO1V3LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjKXtRdyhhLGZ1bmN0aW9uKGQpe1EoYSxILkouYWopJiZkZWxldGUgZC5pdGVtO1EoYSxILkoub2IpJiZuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGQsVHcpO3ZhciBlPWdrKGIuSWMpO2UmJihkLl91aXA9ZSk7dmFyIGY9Ij8iK2t2KGQpO2MoZil9KX07dmFyIFZ3PW5ldyBVdygyMixbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSksV3c9bmV3IFV3KDIzLFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSxYdz1uZXcgVXcoNjAsW10pLFl3PWZ1bmN0aW9uKCl7fTt3YShZdyxvdSk7WXcucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSl7cmV0dXJuIFEoYSxILkouZGEpPT09WC5WLnpkJiZRKGEsSC5KLmxqKT9be2VuZHBvaW50OlhvKGZwKT9RKGEsSC5KLm9iKT9XdzpWdzpYdyxtZXRob2Q6bHV9XTpbXX07dmFyIFp3PW5ldyBZdzsKCnZhciAkdz1mdW5jdGlvbihhKXtpZihPcCgpPT09MilyZXR1cm4hMTt2YXIgYj1RKGEsSC5KLmRhKSxjPVtYLlYueGEsWC5WLnViXTtNKDU5MykmJmMucHVzaChYLlYuWWQpO3JldHVybiBjLmluY2x1ZGVzKGIpPyEwOiExfSxheD1mdW5jdGlvbihhKXtyZXR1cm4gTSg1MDApJiZPcCgpIT09MiYmUShhLEguSi5kYSk9PT1YLlYueGF9LGJ4PWZ1bmN0aW9uKGEpe3ZhciBiPUhyKGEucHJlZml4KTtiPT09Il9nY2wiJiYoYj0iIik7cmV0dXJuIGJ9LGN4PWZ1bmN0aW9uKGEpe2lmKFIoYSxGLkQuU2IpfHxSKGEsRi5ELkplKSl7dmFyIGI9UihhLEYuRC5HZCksYz1FZChRKGEsSC5KLkdhKSxudWxsKSxkPUhyKGMucHJlZml4KTtjLnByZWZpeD1kPT09Il9nY2wiPyIiOmQ7aWYoUihhLEYuRC5TYikpe3ZhciBlPVhzKGIsYywhUShhLEguSi5ObSksYXgoYSkpO1YoYSxILkouTm0sITApO2UmJlUoYSxGLkQucW0sZSl9aWYoUihhLEYuRC5KZSkpe3ZhciBmPVBzKGIsYykuUnI7ZiYmVShhLEYuRC5NbCwKZil9fX0saXg9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IGR4O3N3aXRjaChRKGEsSC5KLmRhKSl7Y2FzZSBYLlYueGE6VShhLEYuRC5mbSxVcSghMSkuX2dzKTtleChhKTtmeChhLGIpO2d4KGEsYik7aWYoIWIuam8oKXx8TSg0MjEpKXt2YXIgYz1ubShqbS5iYS5WZSksZD1YbyhGLkQua2EpJiZYbyhGLkQubWEpO2lmKGMmJmMuZ2NsaWQmJiFkJiYhUShhLEguSi5YZSkpe3ZhciBlPVN0cmluZyhjLmdjbGlkKSxmPW5ldyBlcjtmcihmLDYpO2IuQ2ooe3ZlcnNpb246IkdDTCIsdGltZXN0YW1wOjAsZ2NsaWQ6ZSxxYTpmLG9hOls0XX0pfX1icmVhaztjYXNlIFguVi5PYjpjYXNlIFguVi5GYjpleChhKTtmeChhLGIpO2JyZWFrO2Nhc2UgWC5WLnViOmlmKE0oNDU4KSYmWG8oRi5ELmthKSYmUShhLEguSi53Zikpe3ZhciBnPVEoYSxILkouR2EpO2h4KGEsYixieChnKSl9YnJlYWs7Y2FzZSBYLlYuWWQ6ZXgoYSksZngoYSxiKSxneChhLGIpfWIuT3QoYSl9LGZ4PWZ1bmN0aW9uKGEsYil7aWYoWG8oRi5ELmthKSYmClEoYSxILkoud2YpKXt2YXIgYz1RKGEsSC5KLkdhKSxkPWJ4KGMpLGU9UnMoZCk7VShhLEYuRC5CZSxlLkVnKTtVKGEsRi5ELkRlLGUuV2gpO1UoYSxGLkQuQ2UsZS5VaCk7TSg0MjEpPyhqeChhLGIsYyxkKSxoeChhLGIsZCkpOldzKGQpP2p4KGEsYixjLGQpOmh4KGEsYixkKX19LGh4PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0kdyhhKTtUcyhjLCJnY2xpZCIsImdjbGF3IixkKS5mb3JFYWNoKGZ1bmN0aW9uKGYpe2IuQ2ooZil9KTtiLkxvKCk7aWYoIWMpe3ZhciBlPU9zKEJyKEFyKCkpP1JwKCk6e30sTXMpO2UmJlUoYSxGLkQucmgsZSl9fSxqeD1mdW5jdGlvbihhLGIsYyxkKXtUcyhkLCJicmFpZHMiLCJnY2xnYiIsYXgoYSkpLmZvckVhY2goZnVuY3Rpb24oZyl7Yi5qcihnKX0pO2lmKCFkKXt2YXIgZT1SKGEsRi5ELkdkKTtjPUVkKGMsbnVsbCk7Yy5wcmVmaXg9ZDt2YXIgZj1QcyhlLGMsITApLlFyO2YmJlUoYSxGLkQuSmUsZil9fSxleD1mdW5jdGlvbihhKXtpZihNKDE2KSl7dmFyIGI9Ck8oYS5NLEYuRC56YSk7Ynx8KGI9T3AoITEpPT09MT9BLnRvcC5sb2NhdGlvbi5ocmVmOkEubG9jYXRpb24uaHJlZik7dmFyIGMsZD1SaihiKSxlPUxqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbGlkIik7aWYoIWUpe3ZhciBmPWQuaGFzaC5yZXBsYWNlKCIjIiwiIik7ZT1lfHxJaihmLCJnY2xpZCIsITEpfShjPWU/ZS5sZW5ndGg6dm9pZCAwKSYmVShhLEYuRC56bCxjKX19LGd4PWZ1bmN0aW9uKGEsYil7dmFyIGM9WG8oRi5ELmthKSYmWG8oRi5ELm1hKTtpZighYi5qbygpfHxNKDQyMSkpe3ZhciBkO3ZhciBlO2I6e3ZhciBmLGc9QSxoPVtdO3RyeXtnLm5hdmlnYXRpb24mJmcubmF2aWdhdGlvbi5lbnRyaWVzJiYoaD1nLm5hdmlnYXRpb24uZW50cmllcygpKX1jYXRjaChDKXt9Zj1oO3ZhciBsPXt9O3RyeXtmb3IodmFyIG49Zi5sZW5ndGgtMTtuPj0wO24tLSl7dmFyIHA9ZltuXSYmZltuXS51cmw7aWYocCl7dmFyIHE9KG5ldyBVUkwocCkpLnNlYXJjaFBhcmFtcyxyPXEuZ2V0KCJnY2xpZCIpfHwKdm9pZCAwLHQ9cS5nZXQoImdjbHNyYyIpfHx2b2lkIDA7aWYocil7bC5nY2xpZD1yO3QmJihsLlZoPXQpO2U9bDticmVhayBifX19fWNhdGNoKEMpe31lPWx9dmFyIHU9ZSx2PXUuZ2NsaWQseD11LlZoLHk7aWYodiYmKHg9PT12b2lkIDB8fHg9PT0iYXcifHx4PT09ImF3LmRzInx8WWYoOCkmJng9PT0iYXcuZHYiKSlpZih2IT09dm9pZCAwKXt2YXIgej1uZXcgZXI7ZnIoeiwyKTtmcih6LDMpO3k9e3ZlcnNpb246IkdDTCIsdGltZXN0YW1wOjAsZ2NsaWQ6dixxYTp6LG9hOlszXX19ZWxzZSB5PXZvaWQgMDtlbHNlIHk9dm9pZCAwO2Q9eTtkJiYoIWMmJlEoYSxILkouWGUpJiYoZC5nY2xpZD0iMCIpLGIuQ2ooZCksYi5MbygpKX19LGR4PWZ1bmN0aW9uKCl7dGhpcy5IPVtdO3RoaXMuSz1bXTt0aGlzLk49dm9pZCAwfTtrPWR4LnByb3RvdHlwZTtrLkNqPWZ1bmN0aW9uKGEpe1FyKHRoaXMuSCxhKX07ay5qcj1mdW5jdGlvbihhKXtRcih0aGlzLkssYSl9O2suam89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LLmxlbmd0aD4KMH07ay5Mbz1mdW5jdGlvbigpe3RoaXMuTiE9PSExJiYodGhpcy5OPSExKX07ay55bz1mdW5jdGlvbihhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDtpZihhLmxlbmd0aCl7dmFyIGU9W10sZj1bXSxnPVtdO2EuZm9yRWFjaChmdW5jdGlvbihoKXtlLnB1c2goaC5nY2xpZCk7dmFyIGwsbjtmLnB1c2goKG49KGw9aC5xYSk9PW51bGw/dm9pZCAwOmwuZ2V0KCkpIT1udWxsP246MCk7Zy5wdXNoKFZzKGgub2F8fFswXSkpfSk7ZS5sZW5ndGgmJlUoYixjLmlkLGUuam9pbigiLiIpKTtkfHwoZi5sZW5ndGgmJlUoYixjLnFhLGYuam9pbigiLiIpKSxnLmxlbmd0aCYmVShiLGMub2EsZy5qb2luKCIuIikpKX19O2suT3Q9ZnVuY3Rpb24oYSl7dGhpcy5ILmxlbmd0aD4wJiZ0aGlzLnlvKHRoaXMuSCxhLHtpZDpGLkQubGIscWE6Ri5ELkJkLG9hOkYuRC5DZH0sdGhpcy5OKTsodGhpcy5ILmxlbmd0aD09PTB8fE0oNDIxKSkmJnRoaXMueW8odGhpcy5LLGEse2lkOkYuRC5TYixxYTpGLkQuZmgsCm9hOkYuRC5naH0pfTt2YXIga3g9ZnVuY3Rpb24oKXtodS5jYWxsKHRoaXMsIkluamVjdEFkc1NjcmlwdCIpfTt3YShreCxodSk7a3gucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7cmV0dXJuITB9O2t4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuITF9O2t4LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXthbyhhLkZvLEEsQixiLGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYS5qZigpfSxmdW5jdGlvbigpe3JldHVybiB2b2lkIGEucmQodm9pZCAwKX0sYz09bnVsbD92b2lkIDA6Yy5hZil8fFhuKGEuRm8sYi5yZXBsYWNlKCImZm10PTQmIiwiJmZtdD0zJiIpLGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYS5qZigpfSxmdW5jdGlvbigpe3JldHVybiB2b2lkIGEucmQodm9pZCAwKX0sYz09bnVsbD92b2lkIDA6Yy5hZil9O3ZhciBseD1uZXcga3g7dmFyIG14PU9iamVjdC5mcmVlemUoe2F0dHJpYnV0aW9uc3JjOiIifSksbng9T2JqZWN0LmZyZWV6ZSh7ZXZlbnRTb3VyY2VFbGlnaWJsZTohMSx0cmlnZ2VyRWxpZ2libGU6ITB9KTtmdW5jdGlvbiBveCgpe3ZhciBhPVhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZTtyZXR1cm4gYSYmeWIoYS5zZXRBdHRyaWJ1dGlvblJlcG9ydGluZyl9O3ZhciBweD1PYmplY3QuZnJlZXplKHtjYWNoZToibm8tc3RvcmUiLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixtZXRob2Q6IkdFVCIsa2VlcGFsaXZlOiEwLHJlZGlyZWN0OiJmb2xsb3cifSk7CmZ1bmN0aW9uIHF4KGEsYixjLGQsZSxmKXtpZigheWIoQS5mZXRjaCkpcmV0dXJuIGY9PW51bGx8fGYodm9pZCAwLHZvaWQgMCksITE7dmFyIGc9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxweCk7YiYmKGcuYm9keT1iLGcubWV0aG9kPSJQT1NUIik7bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxnLGQpO0EuZmV0Y2goYSxnKS50aGVuKGZ1bmN0aW9uKGgpe2lmKGgub2spe2lmKGguYm9keSl7dmFyIGw9aC5ib2R5LmdldFJlYWRlcigpLG49bmV3IFRleHREZWNvZGVyO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihwKXtmdW5jdGlvbiBxKCl7bC5yZWFkKCkudGhlbihmdW5jdGlvbihyKXt2YXIgdDt0PXIuZG9uZTt2YXIgdT1uLmRlY29kZShyLnZhbHVlLHtzdHJlYW06IXR9KTt1PWMuUit1O2Zvcih2YXIgdj11LmluZGV4T2YoIlxuXG4iKTt2IT09LTE7KXt2YXIgeD1aZyx5O2E6e3ZhciB6PW0odS5zdWJzdHJpbmcoMCx2KS5zcGxpdCgiXG4iKSksQz0Kei5uZXh0KCkudmFsdWUsRD16Lm5leHQoKS52YWx1ZTtpZihTYihDLCJldmVudDogbWVzc2FnZSIpJiZTYihELCJkYXRhOiAiKSl7dmFyIEk9RC5zdWJzdHJpbmcoNik7dHJ5e3k9SlNPTi5wYXJzZShJKTticmVhayBhfWNhdGNoKEcpe319eT12b2lkIDB9eChjLHkpO3U9dS5zdWJzdHJpbmcodisyKTt2PXUuaW5kZXhPZigiXG5cbiIpfWMuUj11O3Q/KGU9PW51bGx8fGUoaCkscCgpKTpxKCl9KS5jYXRjaChmdW5jdGlvbigpe2U9PW51bGx8fGUoaCk7cCgpfSl9cSgpfSl9ZT09bnVsbHx8ZShoKX1lbHNlIGY9PW51bGx8fGYoaCx2b2lkIDApfSkuY2F0Y2goZnVuY3Rpb24oaCl7Zj09bnVsbHx8Zih2b2lkIDAsaCl9KTtyZXR1cm4hMH07dmFyIHJ4PWZ1bmN0aW9uKGEpe2h1LmNhbGwodGhpcywiRmV0Y2hSaWNoUmVzcG9uc2UiLDEpO3RoaXMuTj1hfTt3YShyeCxodSk7cngucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHliKEEuZmV0Y2gpfTtyeC5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiEwfTtyeC5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyl7cXgoYixjPT1udWxsP3ZvaWQgMDpjLmJvZHksdGhpcy5OLGM9PW51bGw/dm9pZCAwOmMuR2IsYS5wZSxmdW5jdGlvbihkLGUpe2Eub25GYWlsdXJlKGUpfSl9Owp2YXIgc3g9ZnVuY3Rpb24oYSxiKXt2YXIgYz12b2lkIDA7YSBpbnN0YW5jZW9mIGt1P2M9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxsZCk6YSBpbnN0YW5jZW9mIHJ4JiYoYz17fSxveCgpJiYoYy5hdHRyaWJ1dGlvblJlcG9ydGluZz1ueCkpOyFiJiZjJiYoYy5jcmVkZW50aWFscz0ib21pdCIsYy5tb2RlPSJjb3JzIik7cmV0dXJuIGN9LHR4PWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWIubWV0aG9kO1F3KGEsZnVuY3Rpb24oZil7dmFyIGc9UShhLEguSi5vYiksaD1YbyhmcCksbD1lIGluc3RhbmNlb2YgaXU/MzplIGluc3RhbmNlb2Yga3g/Yz09PTV8fGM9PT04PzM6NDplIGluc3RhbmNlb2Yga3U/IWcmJmg/Mzo4OmUgaW5zdGFuY2VvZiByeD83Oi0xO2UgaW5zdGFuY2VvZiBreCYmbD09PTM/KGYuZm10PTQsZi5yZm10PTMpOmYuZm10PWw7bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxmLGM9PT02Nj97Z2NwOiI0In06Z3x8Yz09PTh8fGM9PT02NT8KVHc6e30pO3ZhciBuPWVpW0YuRC5laF07biYmKGZbbl09Yyk7aWYoTSg1NjkpKXt2YXIgcD1iLkN0LHE9cC5qay5maWx0ZXIoZnVuY3Rpb24odil7cmV0dXJuIHZbMF0hPT12b2lkIDB9KS5tYXAoZnVuY3Rpb24odil7cmV0dXJuIHZbMF0uZW5kcG9pbnQuZW5kcG9pbnR9KTtxLmxlbmd0aD4wJiYocS5wdXNoKHAubWtbMF0uZW5kcG9pbnQuZW5kcG9pbnQpLGYuZXBwPXEuc29ydChmdW5jdGlvbih2LHgpe3JldHVybiB2LXh9KS5qb2luKCJ+IikpfXZhciByPSI/IitrdihmKSx0PXN4KGUsaCksdTt1PShlIGluc3RhbmNlb2YgaXV8fGUgaW5zdGFuY2VvZiBreCkmJlhvKCJhZF91c2VyX2RhdGEiKT9teDp2b2lkIDA7ZChyLHtHYjp0LGFmOnV9KX0pfTt2YXIgdXg9ZnVuY3Rpb24oYSxiKXthdi5jYWxsKHRoaXMsYSxiLDIpfTt3YSh1eCxhdik7dXgucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe3R4KGEsYix0aGlzLmVuZHBvaW50LGMpfTt2YXIgdng9bmV3IHV4KDUsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLHd4PW5ldyB1eCg2LFtdKSx4eD1uZXcgdXgoNjMsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLHl4PW5ldyB1eCg2NSxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSkseng9bmV3IHV4KDgsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLEF4PW5ldyB1eCg2NixbXSksQng9bmV3IHV4KDc0LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKTt2YXIgQ3g9ZnVuY3Rpb24oKXtZZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3dhKEN4LFlnKTtDeC5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIpe1pjKGEsdm9pZCAwLCRnKHRoaXMsYiksYi5hdHRyaWJ1dGlvbl9yZXBvcnRpbmcmJm94KCk/bXg6e30pfTtDeC5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIpe3ZhciBjPWIuYXR0cmlidXRpb25fcmVwb3J0aW5nJiZveCgpP3thdHRyaWJ1dGlvblJlcG9ydGluZzpueH06e30sZD0kZyh0aGlzLGIpO2IucHJvY2Vzc19yZXNwb25zZT9xeChhLHZvaWQgMCx0aGlzLGMsdm9pZCAwLGQpOm1kKGEsdm9pZCAwLGMsdm9pZCAwLGQpfTt2YXIgRHg9ZnVuY3Rpb24oKXtDeC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3dhKER4LEN4KTtEeC5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIpe0N4LnByb3RvdHlwZS5ILmNhbGwodGhpcyxhLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYix7cHJvY2Vzc19yZXNwb25zZTohMX0pKX07dmFyIEV4PWZ1bmN0aW9uKCl7fTt3YShFeCxvdSk7RXgucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSl7aWYoUShhLEguSi5kYSkhPT1YLlYueGEpcmV0dXJuW107dmFyIGI9WG8oZnApLGM9ISFRKGEsSC5KLm9iKSxkPSEhUShhLEguSi5FYyksZT1be2VuZHBvaW50OmI/ZD9jP3l4Onh4OmM/eng6dng6d3gsbWV0aG9kOm5kKCk/Yj9NKDQ5MCk/Yz9udTpuZXcgcngobmV3IER4KTpseDpudTpsdX1dLGY9Yj9jP3ZvaWQgMDp6eDpBeDtmJiZlLnB1c2goe2VuZHBvaW50OmYsbWV0aG9kOm51fSk7cmV0dXJuIGV9O0V4LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEpe3JldHVybiBRKGEsSC5KLmRhKT09PVguVi54YSYmV2ooKSYmIVEoYSxILkouRWMpJiZNKDU2OSkmJlhvKGZwKT9bW3tlbmRwb2ludDpCeCxtZXRob2Q6bnV9XV06W119O3ZhciBGeD1uZXcgRXg7dmFyIEd4PWZ1bmN0aW9uKGEsYil7Z3UuY2FsbCh0aGlzLGEsYiwxLCExLDMpfTt3YShHeCxndSk7R3gucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWx2KGEpLGU9Ij8iK2t2KGQpO2MoZSx7R2I6bGR9KX07dmFyIEh4PW5ldyBHeCg1NCxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSksSXg9bmV3IEd4KDU1LFtdKSxKeD1mdW5jdGlvbigpe307d2EoSngsb3UpO0p4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEpe3JldHVyblt7ZW5kcG9pbnQ6SHguSyhhKT9IeDpJeCxtZXRob2Q6bnV9XX07dmFyIEt4PW5ldyBKeDsKdmFyIEx4PWZ1bmN0aW9uKCl7YXYuY2FsbCh0aGlzLDksWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0sMSl9O3dhKEx4LGF2KTtMeC5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIFEoYSxILkouZGEpPT09WC5WLlpkfTtMeC5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcztRdyhhLGZ1bmN0aW9uKGUpe3ZhciBmPWVpW0YuRC5laF07ZiYmKGVbZl09ZC5lbmRwb2ludCk7ZS5nY3A9MTtlLmN0X2Nvb2tpZV9wcmVzZW50PTE7ZS5mbXQ9Yi5tZXRob2QgaW5zdGFuY2VvZiBrdT84OjM7dmFyIGc9Ij8iK2t2KGUpO2MoZyx7R2I6bGR9KX0pfTt2YXIgTXg9bmV3IEx4LE54PWZ1bmN0aW9uKCl7fTt3YShOeCxvdSk7TngucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm5be2VuZHBvaW50Ok14LG1ldGhvZDpudX0se2VuZHBvaW50Ok14LG1ldGhvZDpsdX1dfTt2YXIgT3g9bmV3IE54O3ZhciBQeD1bNjhdO3ZhciBReD1mdW5jdGlvbihhLGIpe3RoaXMuSD1hO3RoaXMudGltZW91dE1zPWI7dGhpcy5SYj12b2lkIDB9LFJ4PWZ1bmN0aW9uKGEpe2EuUmJ8fChhLlJiPXNldFRpbWVvdXQoZnVuY3Rpb24oKXthLkgoKTthLlJiPXZvaWQgMH0sYS50aW1lb3V0TXMpKX0sVG49ZnVuY3Rpb24oYSl7YS5SYiYmKGNsZWFyVGltZW91dChhLlJiKSxhLlJiPXZvaWQgMCl9O3ZhciBTeD1mdW5jdGlvbigpe3ZhciBhPU5mKDY2LDApO3RoaXMuSz1bXTt0aGlzLlI9YTt0aGlzLkg9WWEoKX0sVXg9ZnVuY3Rpb24oYSl7dmFyIGI9VHg7Yi5LLnB1c2goYSk7Yi5OfHwoYi5OPWZ1bmN0aW9uKCl7Zm9yKHZhciBjPW0oYi5LKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTt0cnl7ZSgpfWNhdGNoKGwpe319Zm9yKHZhciBmPW0oYi5ILnZhbHVlcygpKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9dm9pZCAwOyhoPWcudmFsdWUud2UpPT1udWxsfHxUbihoKX1iLkguY2xlYXIoKX0sJGMoQSwicGFnZWhpZGUiLGIuTikpfSxWeD1mdW5jdGlvbihhKXt2YXIgYj1hLm1hdGNoKE1uKVszXXx8bnVsbCxjPShiP2RlY29kZVVSSShiKTpiKXx8IiIsZD1QbihhLCJsYWJlbCIpfHwiIixlPVBuKGEsInJhbmRvbSIpfHwiIjtyZXR1cm4gYysiOiIrTG4oZCkrIjoiK0xuKGUpfSxXeD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9VHgsCmU9VngoYSk7aWYoIShkLkguaGFzKGUpfHxkLkguc2l6ZT49ZC5SKSl7dmFyIGY9e307YiYmYj4wJiZjJiYoZi53ZT1uZXcgUXgoYyxiKSk7ZC5ILnNldChlLGYpO3ZhciBnOyhnPWYud2UpPT1udWxsfHxSeChnKX19LFVuPWZ1bmN0aW9uKGEsYil7dmFyIGM9VngoYiksZCxlOyhkPWEuSC5nZXQoYykpPT1udWxsfHwoZT1kLndlKT09bnVsbHx8VG4oZSk7YS5ILmRlbGV0ZShjKX07U3gucHJvdG90eXBlLmdldFNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ILnNpemV9Owp2YXIgWHg9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPShjPVEoYSxILkouZ24pKT09bnVsbD92b2lkIDA6Y1tiLnBiXTtyZXR1cm4gZCE9PXZvaWQgMCYmZD49Yi5PZ30sWXg9ZnVuY3Rpb24oYSxiKXtpZihRKGEsSC5KLmRhKT09PVguVi54YSYmIVEoYSxILkouRWMpJiZYeChhLG52KSYmIShiPD0wKSlyZXR1cm4gbmV3IFF4KGZ1bmN0aW9uKCl7cnYobnYpfSxiKX0sWng9ZnVuY3Rpb24oYSxiLGMpe1EoYixILkouZGEpIT09WC5WLnhhfHxRKGIsSC5KLkVjKXx8KFR4fHwoVHg9bmV3IFN4LFh4KGIsb3YpJiZVeChmdW5jdGlvbigpe3ZhciBkO3J2KG92LChkPVR4KT09bnVsbD92b2lkIDA6ZC5nZXRTaXplKCkpfSkpLFh4KGIsbnYpP1d4KGEsYyxmdW5jdGlvbigpe3J2KG52KTt2YXIgZDsoZD1UeCk9PW51bGx8fFVuKGQsYSl9KTpXeChhKSl9LFR4Owp2YXIgJHg9ZnVuY3Rpb24oYSxiLGMsZCxlKXtlPWU9PT12b2lkIDA/MDplO2lmKGQpe3ZhciBmPVEoYSxILkouRWIpO2I9Yi5MYSh7cmFuZG9tOmYrZSxkYXRhOmR9KX1yZXR1cm5be2VuZHBvaW50OmIsbWV0aG9kOmN9LHtlbmRwb2ludDpiLG1ldGhvZDpsdX1dfSxheT1mdW5jdGlvbihhLGIsYyxkKXthdi5jYWxsKHRoaXMsYSxiLDEsYyk7dGhpcy5OPWR9O3dhKGF5LGF2KTtheS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZW5kcG9pbnQ9PT02OCYmUShhLEguSi5vYik/ITE6ITB9O2F5LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1sdihhKTt0aGlzLk4mJm5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZCx0aGlzLk4pO3ZhciBlPWVpW0YuRC5laF07ZSYmKGRbZV09dGhpcy5lbmRwb2ludCk7dGhpcy5lbmRwb2ludCE9PTY4JiYoZGVsZXRlIGQuZ2NsYXcsZGVsZXRlIGQuZ2NsYXdfc3JjKTt2YXIgZj12b2lkIDA7UShhLApILkoub2IpPyhkLmdjcD0xLGQuY3RfY29va2llX3ByZXNlbnQ9MSk6dGhpcy5lbmRwb2ludD09PTY4JiYoZC5nY3A9NSxiLm1ldGhvZCBpbnN0YW5jZW9mIGt1JiYoZC5mbXQ9OCxmPWxkKSk7dmFyIGc9Ij8iK2t2KGQpO2MoZyxmP3tHYjpmfTp7fSl9O2F5LnByb3RvdHlwZS5MYT1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IGF5KHRoaXMuZW5kcG9pbnQsdGhpcy5aLHRoaXMuamEsYSl9O3ZhciBieT1uZXcgYXkoOSxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSwhMCksY3k9bmV3IGF5KDY4LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdLCExKSxkeT1mdW5jdGlvbigpe307d2EoZHksb3UpO2R5LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEpe3ZhciBiPWd2KGEpO3JldHVybiAkeChhLGJ5LFEoYSxILkoub2IpP251Omx4LGI9PW51bGw/dm9pZCAwOmJbMF0pfTtkeS5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXt2YXIgYj1ndihhKSxjPVtdO00oNDU4KSYmIVEoYSxILkoub2IpJiYKYy5wdXNoKCR4KGEsY3ksbnUsYj09bnVsbD92b2lkIDA6YlswXSkpO2lmKGImJmIubGVuZ3RoPjEpZm9yKHZhciBkPVEoYSxILkoub2IpP251Omx4LGU9MTtlPGIubGVuZ3RoOysrZSljLnB1c2goJHgoYSxieSxkLGJbZV0sZSkpO3JldHVybiBjfTt2YXIgZXk9bmV3IGR5Owp2YXIgZ3k9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYih2KXtyZXR1cm4gdi5zcGxpdCgifiIpLmZpbHRlcihmdW5jdGlvbih4KXt2YXIgeT14LnNwbGl0KCIuIilbMF07cmV0dXJuIUx3LnNvbWUoZnVuY3Rpb24oeil7cmV0dXJuIFNiKHkseil9KX0pLmpvaW4oIn4iKX1pZihOdyhhKSYmUShhLEguSi5mZCkpe3ZhciBjPVEoYSxILkouWWEpLGQ9QnAoKSxlPWd3KGMsZCksZj1lLnNvbWUoZnVuY3Rpb24odil7cmV0dXJuIFNiKHYubmFtZSwicmF3Iil9KSxnPWZ3KGUpLGg9Zy5PbyxsPWcuaWksbj1nLmhhc1VwZCxwPWcuWW4scT1nLmVuY3J5cHRpb25LZXlTdHJpbmcscj1nLm1ldGFkYXRhUGFyYW0sdD1bXTtSdygxLGEpfHx0LnB1c2goIiZlbT0iK2IoaCkpO3QucHVzaCgiJmVtZT0iK3ApO3ZhciB1O3JldHVybiB1PXtpaTpsLEl0OnQsc3Y6ZSxYbjpyLGVuY3J5cHRpb25LZXlTdHJpbmc6cSxWcjpmdW5jdGlvbih2KXt2YXIgeD1meShhLHUpLHk9c3coUShhLEguSi5ZYSksITAsITApO0l1KHksCmZ1bmN0aW9uKHope2lmKCFSdygxLGEpKXt2YXIgQz0oej09bnVsbD92b2lkIDA6ei5wYXJhbSl8fG93KHt5YjpbXX0pLnBhcmFtO3guZW09Q312KHgpfSl9LGhhc1VwZDpuLHBmOnZvaWQgMCxyYXdQaWlBZGRlZDpmfX19LGZ5PWZ1bmN0aW9uKGEsYil7dmFyIGMsZD0oYz1iLnBmKSE9bnVsbD9jOjMsZT17Z3RtOmR1KHttYzpRKGEsSC5KLk5iKSxUZzphLk0uaXNHdG1FdmVudCxlZjpRKGEsSC5KLkNjKSxwZjpkfSl9O2IuWG4mJihlLmVtZD1iLlhuKTtpZihiLmhhc1VwZCl7dmFyIGY9ClN3KGEpO2YmJihlLmVjc2lkPWYpfWIucmF3UGlpQWRkZWQmJihlWyJnYXAucnAiXT0iMSIpO3JldHVybiBlfTt2YXIgZGc7ZnVuY3Rpb24gaHkoYSxiKXt2YXIgYzsoYz1kZyk9PW51bGx8fCRmKGMuSCxhLGIpfTt2YXIgaXk9QWEoWyIvIl0pLGp5PWZ1bmN0aW9uKGEpe3RoaXMuSD1hO3RoaXMuZmFpbHVyZVR5cGU9dm9pZCAwfTtqeS5wcm90b3R5cGUuaW89ZnVuY3Rpb24oYSxiLGMpe3RyeXt2YXIgZD10aGlzLkguYWN0aXZlO2Q/KGQucG9zdE1lc3NhZ2Uoe3R5cGU6MSxjb21tYW5kOmF9KSxiKHtkYXRhOiIifSkpOmMoe2ZhaWx1cmVUeXBlOjEzLGRhdGE6IiJ9KX1jYXRjaChlKXtjKHtmYWlsdXJlVHlwZToxMSxkYXRhOmUubWVzc2FnZX0pfX07dmFyIGt5PWZ1bmN0aW9uKGEsYil7dGhpcy5mYWlsdXJlVHlwZT1hO3RoaXMuSD1ifTtreS5wcm90b3R5cGUuaW89ZnVuY3Rpb24oYSxiLGMpe2Moe2ZhaWx1cmVUeXBlOnRoaXMuZmFpbHVyZVR5cGUsZGF0YToiZiIrdGhpcy5mYWlsdXJlVHlwZSsoInQiKygobmV3IERhdGUpLmdldFRpbWUoKS10aGlzLkgpKX0pfTsKdmFyIG55PWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7dGhpcy5pbml0VGltZT0obmV3IERhdGUpLmdldFRpbWUoKTt0aGlzLkg9bmV3IGt5KDE1LHRoaXMuaW5pdFRpbWUpO3ZhciBjPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe0Euc2V0VGltZW91dChmdW5jdGlvbigpe2UoKX0sMjApfSksZD1seShhKS50aGVuKGZ1bmN0aW9uKGUpe2IuSD1uZXcgankoZSk7bXkoYixlKX0pLmNhdGNoKGZ1bmN0aW9uKCl7Yi5IPW5ldyBreSg0LGIuaW5pdFRpbWUpfSk7dGhpcy5LPVByb21pc2UucmFjZShbYyxkXSl9LG15PWZ1bmN0aW9uKGEsYil7dmFyIGM9ZnVuY3Rpb24oZCl7ZCYmZC5hZGRFdmVudExpc3RlbmVyKCJzdGF0ZWNoYW5nZSIsZnVuY3Rpb24oKXtpZihkLnN0YXRlPT09InJlZHVuZGFudCIpe3ZhciBlPWIuYWN0aXZlO2UmJmUuc3RhdGUhPT0icmVkdW5kYW50Inx8KGEuSD1uZXcga3koMTAsYS5pbml0VGltZSkpfX0pfTtjKGIuYWN0aXZlKTtjKGIud2FpdGluZyk7YyhiLmluc3RhbGxpbmcpOwpiLmFkZEV2ZW50TGlzdGVuZXIoInVwZGF0ZWZvdW5kIixmdW5jdGlvbigpe2MoYi5pbnN0YWxsaW5nKX0pfTtueS5wcm90b3R5cGUuZGVsZWdhdGU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXM7dGhpcy5LLnRoZW4oZnVuY3Rpb24oKXtkLkguaW8oYSxiLGMpfSl9O255LnByb3RvdHlwZS5nZXRTdGF0ZT1mdW5jdGlvbigpe3JldHVybiAyfTsKdmFyIGx5PWZ1bmN0aW9uKGEpe3ZhciBiLGM9TGYoMTEpO2M9TGYoMTApO2I9Yzt2YXIgZD17c2NvcGU6KFRiKGEuaHJlZiwiLyIpP2EuaHJlZi5zbGljZSgwLC0xKTphLmhyZWYpKyIvXy9zZXJ2aWNlX3dvcmtlciJ9O2ImJihkLnVwZGF0ZVZpYUNhY2hlPSJhbGwiKTt2YXIgZSxmPW95KGEsYiksZz1uZXcgTWFwKFtbInBhdGgiLGEucGF0aG5hbWVdXSksaD1KcChrYyhmKS50b1N0cmluZygpKTtlPUxwKGguemssaC5wYXJhbXMsaC5mcmFnbWVudCxnKTt2YXIgbD1JYygpLG49a2MoZSk7dHJ5e3JldHVybiBsLnJlZ2lzdGVyKG4sZCl9Y2F0Y2gocCl7dHJ5e3JldHVybiBsLnJlZ2lzdGVyKG4udG9TdHJpbmcoKSxkKX1jYXRjaChxKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QocSl9fX07CmZ1bmN0aW9uIG95KGEsYil7Zm9yKHZhciBjPUtwKGl5KSxkPWEucGF0aG5hbWUuc3BsaXQoIi8iKS5maWx0ZXIoZnVuY3Rpb24oaCl7cmV0dXJuIGgubGVuZ3RoPjB9KSxlPVtdLmNvbmNhdCh3KGQpLFsiXyIsInNlcnZpY2Vfd29ya2VyIixiLCJzdy5qcyJdKSxmPW0oZSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpYz1NcChjLGcudmFsdWUpO3JldHVybiBjfTtmdW5jdGlvbiBweShhKXt2YXIgYj1ubShqbS5iYS5PaCksYz1iPT1udWxsP3ZvaWQgMDpiW2FdO2N8fGEhPT0ibGl0ZSJ8fChjPWI9PW51bGw/dm9pZCAwOmIuZnVsbCk7cmV0dXJuIGN9dmFyIHF5PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1weSgiZnVsbCIpO2Q/ZC5kZWxlZ2F0ZShhLGIsYyk6Yyh7ZmFpbHVyZVR5cGU6MTZ9KX07ZnVuY3Rpb24gcnkoYSxiLGMsZCxlKXtxeSh7Y29tbWFuZFR5cGU6MCxwYXJhbXM6e3VybDphLG1ldGhvZDoxLHRlbXBsYXRlczpiLGJvZHk6IiIscHJvY2Vzc1Jlc3BvbnNlOiExLGVuY3J5cHRpb25LZXlTdHJpbmc6ZSxzb1JlZmVycmVyOkEubG9jYXRpb24uaHJlZn19LGMsZnVuY3Rpb24oZil7ZChmLmZhaWx1cmVUeXBlLGYuZGF0YSl9KX07dmFyIHN5PWZ1bmN0aW9uKGEpe2h1LmNhbGwodGhpcywiU2VydmljZVdvcmtlckZyYW1lbGVzcyIpO3RoaXMuTj1hfTt3YShzeSxodSk7c3kucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7cmV0dXJuITB9O3N5LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuITF9O3N5LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcztyeShiLHRoaXMuTi5paSxmdW5jdGlvbigpe2EuamYoKX0sZnVuY3Rpb24oZCl7Yy5OLnBmPWQ7YS5yZCh2b2lkIDApfSx0aGlzLk4uZW5jcnlwdGlvbktleVN0cmluZyl9Owp2YXIgdHk9ZnVuY3Rpb24oYSl7YXYuY2FsbCh0aGlzLGEsWyJhZF91c2VyX2RhdGEiLCJhZF9zdG9yYWdlIl0sMSwhMSl9O3dhKHR5LGF2KTt0eS5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcztRdyhhLGZ1bmN0aW9uKGUpe3ZhciBmPVEoYSxILkoucGopLGc9ZnVuY3Rpb24oKXt2YXIgbj1rdihlKTtmJiZiLm1ldGhvZCBpbnN0YW5jZW9mIHN5JiYobis9Zi5JdC5qb2luKCIiKSk7YyhuLHtHYjpsZH0pfTtpZihkLmVuZHBvaW50PT09MjF8fGQuZW5kcG9pbnQ9PT03Myl7dmFyIGg9Z2soYi5JYyk7aCYmKGUuX3VpcD1oKX1pZihmJiYobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxlLGZ5KGEsZikpLCEoYi5tZXRob2QgaW5zdGFuY2VvZiBzeSkpKXt2YXIgbDtmLnBmPShsPWYucGYpIT1udWxsP2w6MTc7Zi5WcihmdW5jdGlvbihuKXtuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGUsbik7ZygpfSk7cmV0dXJufWcoKX0pfTt0eS5wcm90b3R5cGUuUj0KZnVuY3Rpb24oYSl7cmV0dXJuIGF2LnByb3RvdHlwZS5SLmNhbGwodGhpcyxhKS5zbGljZSgwLC0xKX07dmFyIHV5PW5ldyB0eSgxMSksdnk9bmV3IHR5KDcyKSx3eT1mdW5jdGlvbihhLGIpe3RoaXMuWj1hO3RoaXMuUj1ifTt3YSh3eSxvdSk7d3kucHJvdG90eXBlLmZhPWZ1bmN0aW9uKCl7cmV0dXJuIE0oNTYzKT9bdGhpcy5aLHRoaXMuUl06TSgxNDEpP1t0aGlzLlpdOlt0aGlzLlJdfTt3eS5wcm90b3R5cGUuamE9ZnVuY3Rpb24oKXtyZXR1cm4gbnUuaXNTdXBwb3J0ZWQoKT9bbnVdOlttdSxsdV19O3d5LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz10aGlzLmZhKCksZD1jLmZsYXRNYXAoZnVuY3Rpb24oZil7cmV0dXJuIGIuamEoKS5tYXAoZnVuY3Rpb24oZyl7cmV0dXJue2VuZHBvaW50OmYsbWV0aG9kOmd9fSl9KTtpZih0aGlzLk4oKSl7dmFyIGU9UShhLEguSi5waik7ZSYmZS5oYXNVcGQmJmQudW5zaGlmdCh7ZW5kcG9pbnQ6Y1swXSxtZXRob2Q6bmV3IHN5KGUpfSl9cmV0dXJuIGR9Owp2YXIgeHk9ZnVuY3Rpb24oKXt3eS5jYWxsKHRoaXMsdXksdnkpfTt3YSh4eSx3eSk7eHkucHJvdG90eXBlLk49ZnVuY3Rpb24oKXtyZXR1cm4hMH07dmFyIHl5PW5ldyB4eSx6eT1uZXcgdHkoMjEpLEF5PW5ldyB0eSg3MyksQnk9ZnVuY3Rpb24oKXt3eS5jYWxsKHRoaXMsenksQXkpfTt3YShCeSx3eSk7QnkucHJvdG90eXBlLk49ZnVuY3Rpb24oKXtyZXR1cm4gTSg1ODcpfTt2YXIgQ3k9bmV3IEJ5O3ZhciBEeT1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5IPTA7dGhpcy5LPSExO00oNDYyKSYmVW0oImZzIixmdW5jdGlvbigpe3JldHVybiBhLkg+MCYmYS5IPDU/U3RyaW5nKGEuSCk6dm9pZCAwfSwhMSl9LEV5O2Z1bmN0aW9uIEZ5KGEsYil7RXl8fChFeT1uZXcgRHkpO3ZhciBjPUV5O00oNDYyKSYmZm4uSyYmKGI9PT0iZ3RtLmZvcm1TdWJtaXQifHxiPT09ImZvcm1fc3VibWl0IiYmSWYoNDUpKSYmKGE9PT0xfHxjLkspJiYoYy5LPSEwLGMuSD1hLGEhPT01P1ZtKCJmcyIpOlFtLkguZnM9ITEpfTt2YXIgR3k9ZnVuY3Rpb24oYSl7aWYoUShhLEguSi5kYSk9PT1YLlYuS2Epe3ZhciBiPWZ1KGEpO2lmKCFNKDQyNykmJihqcChhLGIpfHxRKGEsSC5KLmhkKSkmJlhvKGZwKSl7dmFyIGM9bHAoYSxiKTtpZihjKXt2YXIgZD1ObSg2OSxjKTtUbChkLGEsNjkpO1luKHtkZXN0aW5hdGlvbklkOmEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsZW5kcG9pbnQ6NjksZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfSxkKX19dmFyIGU9eWIoYS5NLm9uU3VjY2Vzcyk/YS5NLm9uU3VjY2Vzczp4YjskdShhLGIpO2UoKX19O3ZhciBIeT17WDp7V3E6MCxFazoxLFpnOjIsWGs6MyxtaTo0LFZrOjUsV2s6NixZazo3LG5pOjgsdG06OSxzbToxMCxUaToxMSx2bToxMixCaDoxMyxFbToxNCxpajoxNSxTcToxNixqZDoxNyx1ajoxOCx2ajoxOSx3ajoyMCxDbjoyMSx4ajoyMn19O0h5LlhbSHkuWC5XcV09IlJFU0VSVkVEX1pFUk8iO0h5LlhbSHkuWC5Fa109IkFEU19DT05WRVJTSU9OX0hJVCI7SHkuWFtIeS5YLlpnXT0iQ09OVEFJTkVSX0VYRUNVVEVfU1RBUlQiO0h5LlhbSHkuWC5Ya109IkNPTlRBSU5FUl9TRVRVUF9FTkQiO0h5LlhbSHkuWC5taV09IkNPTlRBSU5FUl9TRVRVUF9TVEFSVCI7SHkuWFtIeS5YLlZrXT0iQ09OVEFJTkVSX0JMT0NLSU5HX0VORCI7SHkuWFtIeS5YLldrXT0iQ09OVEFJTkVSX0VYRUNVVEVfRU5EIjtIeS5YW0h5LlguWWtdPSJDT05UQUlORVJfWUlFTERfRU5EIjtIeS5YW0h5LlgubmldPSJDT05UQUlORVJfWUlFTERfU1RBUlQiO0h5LlhbSHkuWC50bV09IkVWRU5UX0VYRUNVVEVfRU5EIjsKSHkuWFtIeS5YLnNtXT0iRVZFTlRfRVZBTFVBVElPTl9FTkQiO0h5LlhbSHkuWC5UaV09IkVWRU5UX0VWQUxVQVRJT05fU1RBUlQiO0h5LlhbSHkuWC52bV09IkVWRU5UX1NFVFVQX0VORCI7SHkuWFtIeS5YLkJoXT0iRVZFTlRfU0VUVVBfU1RBUlQiO0h5LlhbSHkuWC5FbV09IkdBNF9DT05WRVJTSU9OX0hJVCI7SHkuWFtIeS5YLmlqXT0iUEFHRV9MT0FEIjtIeS5YW0h5LlguU3FdPSJQQUdFVklFVyI7SHkuWFtIeS5YLmpkXT0iU05JUFBFVF9MT0FEIjtIeS5YW0h5LlgudWpdPSJUQUdfQ0FMTEJBQ0tfRVJST1IiO0h5LlhbSHkuWC52al09IlRBR19DQUxMQkFDS19GQUlMVVJFIjtIeS5YW0h5Llgud2pdPSJUQUdfQ0FMTEJBQ0tfU1VDQ0VTUyI7SHkuWFtIeS5YLkNuXT0iVEFHX0VYRUNVVEVfRU5EIjtIeS5YW0h5LlgueGpdPSJUQUdfRVhFQ1VURV9TVEFSVCI7dmFyIEl5PXt9O0l5Llg9SHkuWDt2YXIgSnk9e1J1OiJMIixYcToiUyIsa3Y6IlkiLFJ0OiJCIixudToiRSIsTnU6IkkiLGZ2OiJUQyIsdnU6IkhUQyIsb3U6IkYiLE11OiJDIn0sS3k9e1hxOiJTIixsdToiViIsYXU6IkUiLGR2OiJ0YWcifSxMeT17fSxNeT0oTHlbSXkuWC52al09IjYiLEx5W0l5Llgud2pdPSI1IixMeVtJeS5YLnVqXT0iNyIsTHkpO2Z1bmN0aW9uIE55KGEpe3ZhciBiPUUoNSksYz1OdW1iZXIoYS5ldmVudElkKSxkPU51bWJlcihhLnRhZ0lkKTtyZXR1cm4oU2IoYiwiR1RNLSIpP2I6IkdUTS0iK2IpKyI6IisoQWIoYyk/YysiOiI6IiIpKyhBYihkKT9kKyI6IjoiIikrYS5zdGFnZX07ZnVuY3Rpb24gT3koKXt2YXIgYT1yZCgpO3JldHVybiEhKGEmJmEubWFyayBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZhLm1lYXN1cmUgaW5zdGFuY2VvZiBGdW5jdGlvbiYmYS5jbGVhck1lYXN1cmVzIGluc3RhbmNlb2YgRnVuY3Rpb24mJmEuY2xlYXJNYXJrcyBpbnN0YW5jZW9mIEZ1bmN0aW9uKX07dmFyIFB5PWZ1bmN0aW9uKCl7dGhpcy5IPXt9fSxReTtmdW5jdGlvbiBSeSgpe1F5fHwoUXk9bmV3IFB5KTtyZXR1cm4gUXl9ZnVuY3Rpb24gU3koYSl7dmFyIGI9UnkoKSxjPU55KGEpO3JldHVybiBiLkhbY119ZnVuY3Rpb24gVHkoYSxiKXt2YXIgYzthOnt2YXIgZD1SeSgpO2lmKE95KCkpe3ZhciBlPU55KGEpLGYsZztpZihmPShnPXJkKCkpPT1udWxsP3ZvaWQgMDpnLm1hcmsoZSxiKSl7Yz1kLkhbZV09ZjticmVhayBhfX1jPXZvaWQgMH1yZXR1cm4gY307ZnVuY3Rpb24gVXkoYSxiKXtpZihPeSgpKXthLmVudHJ5PU55KGEpO3ZhciBjPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYSk7Yy5zdGFnZT1iO2RlbGV0ZSBjLnNlbnQ7dmFyIGQ9U3koYj09PUl5LlguamQ/e3N0YWdlOkl5LlguamR9OmMpLGU9U3koYSk7aWYoZCYmZSYmIShkLnN0YXJ0VGltZT5lLnN0YXJ0VGltZSkpe2Muc3RhZ2U9YisiOiIrYS5zdGFnZTt2YXIgZj1OeShjKSxnPXtzdGFydDpkLm5hbWUsZW5kOmUubmFtZX0saCxsO3JldHVybihsPShoPXJkKCkpPT1udWxsP3ZvaWQgMDpoLm1lYXN1cmUoZixnKSk9PW51bGw/dm9pZCAwOmwuZHVyYXRpb259fX07dmFyIFd5PWZ1bmN0aW9uKCl7dmFyIGE9NTtWeS5Sbz4wJiYoYT1WeS5Sbyk7dGhpcy5LPWE7dGhpcy5IPTA7dGhpcy5OPVtdfSxYeT1mdW5jdGlvbihhKXtyZXR1cm4gYS5IPGEuSz8hMTpOYigpLWEuTlthLkglYS5LXTwxRTN9LFl5PWZ1bmN0aW9uKGEpe3ZhciBiPWEuSCsrJWEuSzthLk5bYl09TmIoKX07dmFyIFZ5PXtSbzpOZigzLDApfSwkeT1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy55YT1bXTt0aGlzLkg9dm9pZCAwO3RoaXMuWj17fTt0aGlzLks9dm9pZCAwO3RoaXMuamE9bmV3IFd5O3RoaXMuTGE9MUUzO3RoaXMuUj10aGlzLk49ITE7dGhpcy5mYT1EYigpO1p5KHRoaXMsZnVuY3Rpb24oKXt2YXIgYj1bWyJ2IiwiMyJdLFsidCIsInQiXSxbInBpZCIsU3RyaW5nKGEuZmEpXV0sYz1kdSgpO2MmJmIucHVzaChbImd0bSIsY10pO3JldHVybiBifSk7Y2QoZnVuY3Rpb24oKXthLmZhPURiKCl9LDg2NEU1KX0sWnk9ZnVuY3Rpb24oYSxiKXthLnlhLnB1c2goYil9LGF6PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLkg7aWYoZD09PXZvaWQgMClpZihjKWQ9cmooKTtlbHNlIHJldHVybiIiO2Zvcih2YXIgZT1bZmsoImh0dHBzOi8vIitFKDIxKSksIi9hIiwiP2lkPSIrRSg1KV0sZj1tKGEueWEpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWZvcih2YXIgaD1nLnZhbHVlLGw9Cmgoe2V2ZW50SWQ6ZCx0ZjohIWJ9KSxuPW0obCkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPW0ocC52YWx1ZSkscj1xLm5leHQoKS52YWx1ZSx0PXEubmV4dCgpLnZhbHVlO2UucHVzaCgiJiIrcisiPSIrdCl9ZS5wdXNoKCImej0wIik7cmV0dXJuIGUuam9pbigiIil9LGJ6PWZ1bmN0aW9uKGEpe2lmKCRrKDI2KSYmKGEuSyYmKEEuY2xlYXJUaW1lb3V0KGEuSyksYS5LPXZvaWQgMCksYS5IIT09dm9pZCAwJiZhLlIpKXt2YXIgYj1sbyhjby5pYS5aYik7aWYoZ28oYikpYS5OfHwoYS5OPSEwLGlvKGIsZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBieihhKX0pKTtlbHNlIGlmKGEuWlthLkhdfHxYeShhLmphKXx8YS5MYS0tPD0wKVAoMSksYS5aW2EuSF09ITA7ZWxzZXtZeShhLmphKTt2YXIgYz1heihhLCEwKTtYbih7ZGVzdGluYXRpb25JZDpFKDUpLGVuZHBvaW50OjU2LGV2ZW50SWQ6YS5IfSxjKTthLlI9ITE7YS5OPSExfX19LGN6PWZ1bmN0aW9uKGEpe2EuS3x8KGEuSz0KQS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYnooYSl9LDUwMCkpfSxlej1mdW5jdGlvbihhKXt2YXIgYj1kejtiLlpbYV18fChhIT09Yi5IJiYoYnooYiksYi5IPWEpLGIuUj0hMCxjeihiKSxheihiKS5sZW5ndGg+PTIwMjImJmJ6KGIpKX0sZHo7ZnVuY3Rpb24gZnooYSl7Z3ooKTtaeShkeixhKX1mdW5jdGlvbiBoeigpe3ZhciBhO2E9YT09PXZvaWQgMD8hMTphO2d6KCk7dmFyIGI9YSxjPWR6O2I9Yj09PXZvaWQgMD8hMTpiO2lmKGZuLk4mJiRrKDI2KSl7dmFyIGQ9YXooYywhMCwhMCk7Yj9Wbih7ZGVzdGluYXRpb25JZDpFKDUpLGVuZHBvaW50OjU2LGV2ZW50SWQ6Yy5IfSxkKTpYbih7ZGVzdGluYXRpb25JZDpFKDUpLGVuZHBvaW50OjU2LGV2ZW50SWQ6Yy5IfSxkKX19ZnVuY3Rpb24gZ3ooKXtkenx8KGR6PW5ldyAkeSl9O2Z1bmN0aW9uIGl6KCl7ZnVuY3Rpb24gYShjLGQpe3ZhciBlPXdiKHJiW2RdfHxbXSk7ZSYmYi5wdXNoKFtjLGVdKX12YXIgYj1bXTthKCJ1IiwiR1RNIik7YSgidXQiLCJUQUdHSU5HIik7YSgiaCIsIkhFQUxUSCIpO3JldHVybiBifTt2YXIgano9Imh0dHBzOi8vIitFKDIxKSxrej1mdW5jdGlvbigpe3RoaXMuTj0hMTt0aGlzLlI9W107dGhpcy5aPVtdO3RoaXMuSD17VEM6MCxIVEM6MH07dGhpcy5LPXt9fSxsej1mdW5jdGlvbihhLGIsYyxkKXthLktbYl18fChhLktbYl09e30pO2EuS1tiXVtjXT1kfSxvej1mdW5jdGlvbihhKXt2YXIgYj0iIixjPSIiLGQ9bXooKTtBYihkKSYmKGEuSC5JPU1hdGguZmxvb3IoZCkpO2M9bnooYS5ILEp5KS50b1N0cmluZygpO2Zvcih2YXIgZT1tKE9iamVjdC5rZXlzKGEuSykpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlLGg9YS5LW2ddLm5hbWUsbD0iIixuPW56KGEuS1tnXSxLeSk7biYmKGw9aCsiLiIrbi50b1N0cmluZygpLGIrPSJ+IitsKX12YXIgcD0ifkFXQ1QiK2EuUi5qb2luKCIuIikscT0ifkdBIithLlouam9pbigiLiIpLHI9IiZjY2lkPSIrdmsoKS50b1N0cmluZygpKyImY2lkPSIrRSg1KS50b1N0cmluZygpKyImbD0iK2MrYisoYS5SLmxlbmd0aD8KcDoiIikrKGEuWi5sZW5ndGg/cToiIik7aWYoTSgyMTQpKXt2YXIgdCx1PSh0PXJkKCkpPT1udWxsP3ZvaWQgMDp0LmdldEVudHJpZXNCeU5hbWUoS2MpLm1hcChmdW5jdGlvbih2KXtyZXR1cm4gU3RyaW5nKHYuZHVyYXRpb24pfSkuam9pbigiLiIpO3UmJihyKz0iflNTIit1KX1yZXR1cm4gcn0scHo9ZnVuY3Rpb24oYSxiKXtpZighYi5zdGFnZXx8YS5OfHwhT3koKXx8U3koYikpcmV0dXJuITE7dmFyIGMsZD0oYz1yZCgpKT09bnVsbD92b2lkIDA6Yy50aW1lT3JpZ2luO2lmKCFBYihkKSlhLk49ITA7ZWxzZSBpZihBYigkaygyNSkpJiYhU3koe3N0YWdlOkl5LlguamR9KSYmIWEuTiYmT3koKSl0cnl7dmFyIGU9TnVtYmVyKCRrKDI1KSk7VHkoe3N0YWdlOkl5LlguamR9LHtzdGFydFRpbWU6TWF0aC5tYXgoZS1kLDApfSk7VHkoe3N0YWdlOkl5LlguaWp9LHtzdGFydFRpbWU6MH0pO3ZhciBmPVV5KHtzdGFnZTpJeS5YLmpkfSxJeS5YLmlqKTtmJiYoYS5ILkw9TWF0aC5mbG9vcihmKSl9Y2F0Y2goZyl7YS5OPQohMH1pZihhLk4pcmV0dXJuITE7dHJ5e2lmKCFUeShiKSlyZXR1cm4hMX1jYXRjaChnKXtyZXR1cm4gYS5OPSEwLCExfXJldHVybiEwfSxxej1mdW5jdGlvbihhLGIsYyl7aWYocHooYSxiKSl0cnl7dmFyIGQ9VXkoYixjKTtpZihkKXJldHVybiBNYXRoLmZsb29yKGQpfWNhdGNoKGUpe2EuTj0hMH19LHN6PWZ1bmN0aW9uKCl7dmFyIGE9cnooKTtweihhLHtzdGFnZTpJeS5YLm1pfSl9LHR6PWZ1bmN0aW9uKCl7dmFyIGE9cnooKSxiPXF6KGEse3N0YWdlOkl5LlguWGt9LEl5LlgubWkpO2IhPT12b2lkIDAmJihhLkguUz1iKX0sdXo9ZnVuY3Rpb24oKXt2YXIgYT1yeigpO3B6KGEse3N0YWdlOkl5Llgubml9KX0sdno9ZnVuY3Rpb24oYSxiKXt2YXIgYz1yeigpO3B6KGMse3N0YWdlOkl5LlguQmgsZXZlbnRJZDphfSk7Yy5LW2FdJiZjLktbYV0ubmFtZXx8bHooYyxhLCJuYW1lIixTYihiLCJndG0uIik/YjoiKiIpfSx3ej1mdW5jdGlvbihhKXt2YXIgYj1yeigpLGM9cXooYix7c3RhZ2U6SXkuWC52bSwKZXZlbnRJZDphfSxJeS5YLkJoKTtjIT09dm9pZCAwJiZseihiLGEsIlMiLGMpfSx5ej1mdW5jdGlvbihhLGIpe3ZhciBjPXJ6KCksZD1xeihjLHtzdGFnZTpJeS5YLnRtLGV2ZW50SWQ6YX0sSXkuWC5CaCk7ZCE9PXZvaWQgMCYmbHooYyxhLCJFIixkKTtpZihiPT09Imd0bS5sb2FkIil7dmFyIGU9cXooYyx7c3RhZ2U6SXkuWC5Xa30sSXkuWC5aZyk7ZSE9PXZvaWQgMCYmKGMuSC5FPWUpO2lvKGxvKGNvLmlhLlpiKSxmdW5jdGlvbigpe2lmKCFjLk4mJk95KCkmJkUoNSkpe3ZhciBmPXh6KCk7ZiE9PXZvaWQgMCYmKGMuSC5GPU1hdGguZmxvb3IoZikpO3RyeXtmb3IodmFyIGc9aXooe2V2ZW50SWQ6MCx0ZjohMX0pLGg9W10sbD1tKGcpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1tKG4udmFsdWUpLHE9cC5uZXh0KCkudmFsdWUscj1wLm5leHQoKS52YWx1ZTtoLnB1c2goIiYiK3ErIj0iK3IpfXZhciB0PUNwKCksdT1bW2ZrKGp6KSwiL2E/dj0zJnQ9bCIsIiZwaWQ9IisKRGIoKS50b1N0cmluZygpLCImcnY9IitFKDE0KSx0PyImdGFnX2V4cD0iK3Q6IiIsaC5qb2luKCIiKV0uam9pbigiIiksIiZndG09IixkdSgpLG96KGMpXS5qb2luKCIiKTtpZih1Lmxlbmd0aD4yMDIyKXt2YXIgdj1NYXRoLm1heCh1Lmxhc3RJbmRleE9mKCIuVFMiLDIwMjIpLHUubGFzdEluZGV4T2YoIn4iLDIwMjIpKTt1PXUuc2xpY2UoMCx2KX1Ybih7ZGVzdGluYXRpb25JZDpFKDUpLGVuZHBvaW50OjU2fSx1KX1jYXRjaCh4KXt9fX0pfX0seno7ZnVuY3Rpb24gcnooKXt6enx8KHp6PW5ldyBreik7cmV0dXJuIHp6fWZ1bmN0aW9uIG16KCl7dHJ5e3ZhciBhO3JldHVybigoYT1yZCgpKT09bnVsbD92b2lkIDA6YS5nZXRFbnRyaWVzQnlUeXBlKCJuYXZpZ2F0aW9uIilbMF0pLmRvbUludGVyYWN0aXZlfWNhdGNoKGIpe319CmZ1bmN0aW9uIG56KGEsYil7cmV0dXJuIE9iamVjdC5rZXlzKGIpLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYltjXX0pLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4gYVtjXSE9PXZvaWQgMH0pLm1hcChmdW5jdGlvbihjKXtyZXR1cm4oIiIrKGM9PT0idGFnIj8iIjpjKSkuY29uY2F0KGFbY10udG9TdHJpbmcoKSl9KS5qb2luKCIuIil9ZnVuY3Rpb24gQXooYSl7dmFyIGI9cnooKSxjPXF6KGIse3N0YWdlOkl5LlguRW0sZXZlbnRJZDphfSxJeS5YLmpkKTtjIT09dm9pZCAwJiZiLloucHVzaChjKX1mdW5jdGlvbiBCeihhKXt2YXIgYj1yeigpLGM9cXooYix7c3RhZ2U6SXkuWC5FayxldmVudElkOmF9LEl5LlguamQpO2MhPT12b2lkIDAmJmIuUi5wdXNoKGMpfWZ1bmN0aW9uIEN6KGEpe3ZhciBiPXJ6KCk7cHooYix7c3RhZ2U6SXkuWC5UaSxldmVudElkOmF9KX0KZnVuY3Rpb24gRHooYSl7dmFyIGI9cnooKSxjPXF6KGIse3N0YWdlOkl5Llguc20sZXZlbnRJZDphfSxJeS5YLlRpKTtjIT09dm9pZCAwJiZseihiLGEsIlYiLGMpfWZ1bmN0aW9uIHh6KCl7dHJ5e3ZhciBhLGI7cmV0dXJuKGI9KGE9cmQoKSk9PW51bGw/dm9pZCAwOmEuZ2V0RW50cmllc0J5VHlwZSgicGFpbnQiKS5maW5kKGZ1bmN0aW9uKGMpe3JldHVybiBjLm5hbWU9PT0iZmlyc3QtY29udGVudGZ1bC1wYWludCJ9KSk9PW51bGw/dm9pZCAwOmIuc3RhcnRUaW1lfWNhdGNoKGMpe319ZnVuY3Rpb24gRXooYSxiKXt2YXIgYz1yeigpO3B6KGMse3N0YWdlOkl5LlgueGosZXZlbnRJZDphLmlkLHRhZ0lkOk51bWJlcihiW0dmLnlqXSl9KX0KZnVuY3Rpb24gRnooYSxiLGMpe3ZhciBkPXJ6KCksZT1kbihiKSxmPU51bWJlcihiW0dmLnlqXSksZz1xeihkLHtzdGFnZTpjLGV2ZW50SWQ6YS5pZCx0YWdJZDpmfSxJeS5YLnhqKTtpZihnIT09dm9pZCAwJiZkLktbYS5pZF0pe3ZhciBoPWQuS1thLmlkXS50YWd8fCIiLGwsbj0obD1NeVtjXSkhPW51bGw/bDoiMSIscD1uZXcgUmVnRXhwKCJUU1xcZCIrZSsiLlRJIitmKSxxPSJUUyIrbitlKyIuVEkiK2YrIi5URSIrZztoLnNlYXJjaChwKT49MD9uIT09IjEiJiZseihkLGEuaWQsInRhZyIsaC5yZXBsYWNlKHAscS5yZXBsYWNlKCIuVEUiK2csIiIpKSk6KGx6KGQsYS5pZCwidGFnIiwoaD9oKyIuIjoiIikrcSksZT09PSJodG1sIiYmKGQuSC5IVEMrPTEpLGQuSC5UQys9MSl9fTsKdmFyIEd6PWZ1bmN0aW9uKGEpe1EoYSxILkouZGEpPT09WC5WLnhhJiYhUShhLEguSi5FYykmJlh4KGEscHYpJiZydihwdil9LEl6PWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouZGEpO2lmKGI9PT1YLlYuS2EpR3koYSk7ZWxzZXt2YXIgYz1IeltiXTtpZihjKWZuLkgmJmI9PT1YLlYueGEmJkJ6KGEuTS5ldmVudElkKSxRdyhhLGZ1bmN0aW9uKGQpe3ZhciBlPWd5KGEpO1YoYSxILkoucGosZSk7ZSYmbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxkLGZ5KGEsZSkpO0Z5KDMsYS5ldmVudE5hbWUpO3ZhciBmPXt9LGc9e307UXUoYSx7UXM6ZnVuY3Rpb24oaCxsLG4pe2lmKG4uZmluZChmdW5jdGlvbihwKXtyZXR1cm4gcC5pc1ByaW1hcnkmJihwLnN0YXR1cz09PTB8fHAuc3RhdHVzPT09MSl9KSloLk0ub25TdWNjZXNzKCk7ZWxzZSBHeihoKSxoLk0ub25GYWlsdXJlKCl9LFNzOmZ1bmN0aW9uKGgsbCl7dmFyIG47dmFyIHA9bC5zYixxPWwuZW5kcG9pbnQuZW5kcG9pbnQsCnI7c3dpdGNoKGwucGsgaW5zdGFuY2VvZiBreD8yOmwucGsgaW5zdGFuY2VvZiByeD80OmwucGsgaW5zdGFuY2VvZiBrdT8zOjEpe2Nhc2UgMjpyPTIxO2JyZWFrO2Nhc2UgMzpRKGgsSC5KLmRhKT09PVguVi54YSYmUShoLEguSi5vYikmJnEhPT05JiYocj0yMCk7YnJlYWs7Y2FzZSA0OnI9MjB9aWYocil7dmFyIHQ7dmFyIHU9TmYociwtMSk7WHgoaCxvdik/KFp4KHAsaCx1KSx0PXtNdDpUeH0pOnQ9e3dlOll4KGgsdSl9O3ZhciB2PXQseD12LndlLHk9di5NdDt4PT1udWxsfHxSeCh4KTtuPXt3ZTp4LGt0Onl9fWVsc2Ugbj17fTt2YXIgej1uLEM9ei53ZSxEPXoua3Q7QyYmKGZbbC5zYl09Qyk7RCYmKGdbbC5zYl09RCl9LHVvOmZ1bmN0aW9uKGgsbCl7ZltsLnNiXSYmKFRuKGZbbC5zYl0pLGRlbGV0ZSBmW2wuc2JdKTtnW2wuc2JdJiYoVW4oZ1tsLnNiXSxsLnNiKSxkZWxldGUgZ1tsLnNiXSl9LFJzOmZ1bmN0aW9uKGgsbCxuLHAscSl7aWYocS5sZW5ndGgmJmIhPT1YLlYudWIpe3ZhciByPQpxW3EubGVuZ3RoLTFdLHQ9ci5zYix1PXIuZW5kcG9pbnQuZW5kcG9pbnQ7aWYoIVB4LmluY2x1ZGVzKHUpKXt2YXIgdj1oLk07TWwoe3RhcmdldElkOmgudGFyZ2V0LmRlc3RpbmF0aW9uSWQscmVxdWVzdDp7dXJsOnQscGFyYW1ldGVyRW5jb2Rpbmc6MyxlbmRwb2ludDp1fSxxYjp7ZXZlbnRJZDp2LmV2ZW50SWQscHJpb3JpdHlJZDp2LnByaW9yaXR5SWR9LEZqOntldmVudElkOlEoaCxILkoudWYpLHByaW9yaXR5SWQ6UShoLEguSi52Zil9fSk7UShoLEguSi5kYSl9fX19LGMpfSk7ZWxzZSBhLk0ub25GYWlsdXJlKCl9fSxKej17fSxIej0oSnpbWC5WLnpkXT1adyxKeltYLlYueGFdPUZ4LEp6W1guVi5ZZF09S3gsSnpbWC5WLlpkXT1PeCxKeltYLlYudWJdPWV5LEp6W1guVi5PYl09eXksSnpbWC5WLkZiXT1DeSxKeik7dmFyIEt6PXtnajp7YnA6IjEiLHVxOiIyIixWcToiMyJ9fTsKdmFyIEx6PXt9LE16PU9iamVjdC5mcmVlemUoKEx6W0YuRC5maF09MSxMeltGLkQuZ2hdPTEsTHpbRi5ELkJkXT0xLEx6W0YuRC5DZF09MSxMeltGLkQuUmNdPTEsTHpbRi5ELnNpXT0xLEx6W0YuRC51aV09MSxMeltGLkQuQ2xdPTEsTHpbRi5ELmloXT0xLEx6W0YuRC5DZl09MSxMeltGLkQuRGZdPTEsTHpbRi5ELkVmXT0xLEx6W0YuRC5IYV09MSxMeltGLkQuRmZdPTEsTHpbRi5ELkZkXT0xLEx6W0YuRC51Y109MSxMeltGLkQuSGRdPTEsTHpbRi5ELkxiXT0xLEx6W0YuRC5DYl09MSxMeltGLkQuVGJdPTEsTHpbRi5ELm5iXT0xLEx6W0YuRC5lYl09MSxMeltGLkQuR2VdPTEsTHpbRi5ELmtoXT0xLEx6W0YuRC5PYV09MSxMeltGLkQuT3BdPTEsTHpbRi5ELlNwXT0xLEx6W0YuRC5JZV09MSxMeltGLkQuR2ldPTEsTHpbRi5ELlFmXT0xLEx6W0YuRC5UYV09MSxMeltGLkQuWWNdPTEsTHpbRi5ELlpjXT0xLEx6W0YuRC50Yl09MSxMeltGLkQuUWRdPTEsTHpbRi5ELlJkXT0xLEx6W0YuRC5TZF09CjEsTHpbRi5ELk5lXT0xLEx6W0YuRC56YV09MSxMeltGLkQuVWFdPTEsTHpbRi5ELldsXT0xLEx6W0YuRC5YbF09MSxMeltGLkQuWWxdPTEsTHpbRi5ELlpsXT0xLEx6W0YuRC5XYl09MSxMeltGLkQuVGRdPTEsTHpbRi5ELlhiXT0xLEx6W0YuRC5kZF09MSxMeltGLkQuVWRdPTEsTHpbRi5ELlFlXT0xLEx6W0YuRC5QYV09MSxMeltGLkQueWNdPTEsTHpbRi5ELlZkXT0xLEx6W0YuRC56Y109MSxMeltGLkQuQWNdPTEsTHpbRi5ELmZiXT0xLEx6W0YuRC5RYV09MSxMeikpLE56PXt9LE96PShOeltGLkQuVWNdPTEsTnpbRi5ELlBwXT0xLE56W0YuRC5IZV09MSxOeltGLkQucmldPTEsTnoub3JlZj0xLE56KTt2YXIgUHosUXo7CmZ1bmN0aW9uIFJ6KGEsYil7dmFyIGM9YVtHZi5ZYl0sZD1iJiZiLmV2ZW50O2lmKCFjKXRocm93IEVycm9yKCJFcnJvcjogTm8gZnVuY3Rpb24gbmFtZSBnaXZlbiBmb3IgZnVuY3Rpb24gY2FsbC4iKTt2YXIgZT1ReltjXSxmPXt9LGc7Zm9yKGcgaW4gYSlhLmhhc093blByb3BlcnR5KGcpJiYoU2IoZywidnRwXyIpP2ZbZSE9PXZvaWQgMD9nOmcuc3Vic3RyaW5nKDQpXT1hW2ddOmc9PT1HZi5GcS50b1N0cmluZygpJiYoZltlIT09dm9pZCAwPyJ2dHBfZ3RtR2VuZXJhdGVkVGFnZ2luZ01ldGFkYXRhIjpnXT1hW2ddKSk7SWYoNjEpJiZlJiYoZi52dHBfZXh0cmFFeHBlcmltZW50SWRzPSEwKTtlJiZkJiZkLmNhY2hlZE1vZGVsVmFsdWVzJiYoZi52dHBfZ3RtQ2FjaGVkVmFsdWVzPWQuY2FjaGVkTW9kZWxWYWx1ZXMpO2ImJmUmJihmLnZ0cF9ndG1FbnRpdHlJbmRleD1iLmluZGV4LGYudnRwX2d0bUVudGl0eU5hbWU9Yi5uYW1lKTtyZXR1cm4gZSE9PXZvaWQgMD9lKGYpOlB6KGMsZiwKYil9dmFyIFR6PWZ1bmN0aW9uKCl7dmFyIGE9U3o7aWYoTSg1ODUpJiZmbi5LKXt2YXIgYj1FKDUpLmluZGV4T2YoIkdUTS0iKT09PTAmJklmKDYyKSxjLGQ9KChjPUZrKCkpPT1udWxsP3ZvaWQgMDpjLnNvdXJjZSk9PT0xO2ImJiFkfHxhLkh8fChhLkg9ITAsVW0oImFibCIsIjEiKSx0bygpKX19LFN6PW5ldyBmdW5jdGlvbigpe3RoaXMuSD0hMX07dmFyIFV6PWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuSD1hO3RoaXMuaW5kZXg9Yjt0aGlzLnRhZ3M9Yzt0aGlzLm1hY3Jvcz1kO3RoaXMubmFtZT1TdHJpbmcodGhpcy5IW0dmLlJtXXx8IiIpfTsKVXoucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGEsYil7aWYoIWJbdGhpcy5pbmRleF0mJiFhLmlzQmxvY2tlZCh0aGlzLkgpKXtiW3RoaXMuaW5kZXhdPSEwO3RoaXMuSFtHZi5wbC50b1N0cmluZygpXSYmVHooKTt2YXIgYz10aGlzLm5hbWUsZDt0cnl7dmFyIGU9e30sZjtmb3IoZiBpbiB0aGlzLkgpdGhpcy5ILmhhc093blByb3BlcnR5KGYpJiYoZVtmXT1lbCh0aGlzLkhbZl0sYSx0aGlzLnRhZ3MsdGhpcy5tYWNyb3MsYikpO2UudnRwX2d0bUV2ZW50SWQ9YS5pZDthLnByaW9yaXR5SWQmJihlLnZ0cF9ndG1Qcmlvcml0eUlkPWEucHJpb3JpdHlJZCk7dmFyIGc9ZD1SeihlLHtldmVudDphLGluZGV4OnRoaXMuaW5kZXgsdHlwZToyLG5hbWU6Y30pO2VbR2YuWmtdJiZ0eXBlb2YgZz09PSJzdHJpbmciJiYoZz1lW0dmLlprXT09PTE/Zy50b0xvd2VyQ2FzZSgpOmcudG9VcHBlckNhc2UoKSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5haCkmJihnPVlmKDE4KT9lW0dmLmFoXT09PTE/ClZmKGcsIlBFUklPRCIpOmVbR2YuYWhdPT09Mj9WZihnLCJDT01NQSIpOlZmKGcsIkFVVE9NQVRJQyIpOmVbR2YuYWhdPT09MT9WZihnLCJQRVJJT0QiKTpWZihnLCJDT01NQSIpKTtlLmhhc093blByb3BlcnR5KEdmLmJsKSYmZz09PW51bGwmJihnPWVbR2YuYmxdKTtlLmhhc093blByb3BlcnR5KEdmLmlsKSYmZz09PXZvaWQgMCYmKGc9ZVtHZi5pbF0pO2UuaGFzT3duUHJvcGVydHkoR2YuZXApJiYoZz1KYihnKSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5mbCkmJmc9PT0hMCYmKGc9ZVtHZi5mbF0pO2UuaGFzT3duUHJvcGVydHkoR2YuYWwpJiZnPT09ITEmJihnPWVbR2YuYWxdKTtkPWd9Y2F0Y2goaCl7YS5sb2dNYWNyb0Vycm9yJiZhLmxvZ01hY3JvRXJyb3IoaCxOdW1iZXIodGhpcy5pbmRleCksYyksZD0hMX1iW3RoaXMuaW5kZXhdPSExO3JldHVybiBkfX07VXoucHJvdG90eXBlLkZnPWZ1bmN0aW9uKCl7cmV0dXJuIG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sdGhpcy5IKX07dmFyIFZ6PWZ1bmN0aW9uKGEsYixjKXt0aGlzLkg9YTt0aGlzLnRhZ3M9Yjt0aGlzLm1hY3Jvcz1jfTtWei5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oYSxiKXt0cnl7Zm9yKHZhciBjPXt9LGQ9bShPYmplY3Qua2V5cyh0aGlzLkgpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtjW2ZdPWY9PT0iZnVuY3Rpb24iP3RoaXMuSFtmXTplbCh0aGlzLkhbZl0sYSx0aGlzLnRhZ3MsdGhpcy5tYWNyb3MsYil9cmV0dXJuIGNsKGMpfWNhdGNoKGcpe0pTT04uc3RyaW5naWZ5KHRoaXMuSCl9cmV0dXJuIDJ9O1Z6LnByb3RvdHlwZS5GZz1mdW5jdGlvbigpe3JldHVybiBuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHRoaXMuSCl9O3ZhciBXej1mdW5jdGlvbihhLGIpe3RoaXMuaW5kZXg9Yjt0aGlzLk49W107dGhpcy5SPVtdO3RoaXMuSz1bXTt0aGlzLkg9W107dGhpcy5uYW1lPSIiO2Zvcih2YXIgYz1tKGEpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1tKGQudmFsdWUpLGY9ZS5uZXh0KCkudmFsdWUsZz15YShlKSxoPWYsbD1nO2g9PT0iaWYiP3RoaXMuTj1sOmg9PT0idW5sZXNzIj90aGlzLlI9bDpoPT09ImFkZCI/dGhpcy5LPWw6aD09PSJibG9jayI/dGhpcy5IPWw6aD09PSJydWxlTmFtZSImJih0aGlzLm5hbWU9bFswXSl9fTsKV3oucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGEsYil7dmFyIGM9WHoodGhpcyxiKSxkPVtdLGU9W107Yz8oZC5wdXNoLmFwcGx5KGQsdyh0aGlzLkspKSxlLnB1c2guYXBwbHkoZSx3KHRoaXMuSCkpKTpjPT09bnVsbCYmZS5wdXNoLmFwcGx5KGUsdyh0aGlzLkgpKTtyZXR1cm57ZmlyaW5nVGFnczpkLGJsb2NraW5nVGFnczplfX07CnZhciBYej1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1tKGEuTiksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWIoZC52YWx1ZSk7aWYoZT09PTApcmV0dXJuITE7aWYoZT09PTIpcmV0dXJuIG51bGx9Zm9yKHZhciBmPW0oYS5SKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9YihnLnZhbHVlKTtpZihoPT09MilyZXR1cm4gbnVsbDtpZihoPT09MSlyZXR1cm4hMX1yZXR1cm4hMH07V3oucHJvdG90eXBlLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uYW1lfTt2YXIgWXo9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5JYT1hO3RoaXMuaW5kZXg9Yjt0aGlzLnRhZ3M9Yzt0aGlzLm1hY3Jvcz1kO3RoaXMuTz1TdHJpbmcodGhpcy5JYVtHZi5ZYl0pO3RoaXMubmFtZT1TdHJpbmcodGhpcy5JYVtHZi5SbV18fCIiKTt0aGlzLnRhZ0lkPU51bWJlcih0aGlzLklhW0dmLnlqXSl9OwpZei5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oYSxiLGMpe2M9Yz09PXZvaWQgMD97fTpjO3ZhciBkLGU9YztlPWU9PT12b2lkIDA/e306ZTt2YXIgZj17fSxnO2ZvcihnIGluIHRoaXMuSWEpdGhpcy5JYS5oYXNPd25Qcm9wZXJ0eShnKSYmKGZbZ109ZWwodGhpcy5JYVtnXSxhLHRoaXMudGFncyx0aGlzLm1hY3JvcyxbXSkpO2Q9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxmLGUpO2QudnRwX2d0bVRhZ0lkPXRoaXMudGFnSWQ7dGhpcy5JYVtHZi5wbC50b1N0cmluZygpXSYmVHooKTtSeihkLHtldmVudDphLGluZGV4OnRoaXMuaW5kZXgsdHlwZToxLG5hbWU6dGhpcy5uYW1lfSl9O1l6LnByb3RvdHlwZS5GZz1mdW5jdGlvbigpe3JldHVybiBuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHRoaXMuSWEpfTsKdmFyIFp6PWZ1bmN0aW9uKGEsYil7aWYoYS5JYVtHZi50bl0pcmV0dXJuIGVsKGEuSWFbR2YudG5dLGIsYS50YWdzLGEubWFjcm9zLFtdKX0sJHo9ZnVuY3Rpb24oYSxiKXtpZihhLklhW0dmLkRuXSlyZXR1cm4gZWwoYS5JYVtHZi5Ebl0sYixhLnRhZ3MsYS5tYWNyb3MsW10pfSxhQT1mdW5jdGlvbihhLGIpe3ZhciBjPWEuSWFbR2YuY3BdO2lmKGMpcmV0dXJuIGVsKGMsYixhLnRhZ3MsYS5tYWNyb3MsW10pfTtZei5wcm90b3R5cGUuZ2V0TWV0YWRhdGE9ZnVuY3Rpb24oYSl7cmV0dXJuIGVsKHRoaXMuSWFbR2YuTUVUQURBVEFdLGEsdGhpcy50YWdzLHRoaXMubWFjcm9zLFtdKX07WXoucHJvdG90eXBlLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uYW1lfTt2YXIgYkE9ZnVuY3Rpb24oKXt0aGlzLm1hY3Jvcz1bXTt0aGlzLnJ1bGVzPVtdO3RoaXMucHJlZGljYXRlcz1bXTt0aGlzLnRhZ3M9W107dGhpcy52az1bXX07YkEucHJvdG90eXBlLmdldFJ1bGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucnVsZXN9O3ZhciBjQT1uZXcgYkE7ZnVuY3Rpb24gZEEoYSxiLGMsZCl7dmFyIGU9V2MoKSxmO2lmKGU9PT0xKWE6e3ZhciBnPUUoMyk7Zz1nLnRvTG93ZXJDYXNlKCk7Zm9yKHZhciBoPSJodHRwczovLyIrZyxsPSJodHRwOi8vIitnLG49MSxwPUIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpLHE9MDtxPHAubGVuZ3RoJiZxPDEwMDtxKyspe3ZhciByPXBbcV0uc3JjO2lmKHIpe3I9ci50b0xvd2VyQ2FzZSgpO2lmKHIuaW5kZXhPZihsKT09PTApe2Y9MzticmVhayBhfW49PT0xJiZyLmluZGV4T2YoaCk9PT0wJiYobj0yKX19Zj1ufWVsc2UgZj1lO3JldHVybihmPT09Mnx8ZHx8Imh0dHA6IiE9PUEubG9jYXRpb24ucHJvdG9jb2w/YTpiKStjfTt2YXIgZUE9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSz17fTt0aGlzLkg9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9W10sZDtmb3IoZCBpbiBhLkspT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEuSyxkKSYmYy5wdXNoKGQrIn4iK2EuS1tkXSk7dmFyIGU9W10sZjtmb3IoZiBpbiBhLkgpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEuSCxmKSYmZS5wdXNoKGYrIn4iK2EuSFtmXSk7Yi50ZiYmKGEuSz17fSxhLkg9e30pO3ZhciBnPVtdO2MubGVuZ3RoPjAmJmcucHVzaChbImJjcyIsYy5qb2luKCIuIildKTtlLmxlbmd0aD4wJiZnLnB1c2goWyJiZXQiLGUuam9pbigiLiIpXSk7cmV0dXJuIGd9KX0sZkE7ZnVuY3Rpb24gZ0EoKXtmQXx8KGZBPW5ldyBlQSl9O2Z1bmN0aW9uIGhBKGEsYixjLGQsZSl7aWYoIUVrKGEpKXtkLmxvYWRFeHBlcmltZW50cz15aigpO0hrKGEsZCxlKTt2YXIgZj1pQShhKSxnPWZ1bmN0aW9uKCl7b2soKS5jb250YWluZXJbYV0mJihvaygpLmNvbnRhaW5lclthXS5zdGF0ZT0zKTtqQSgpfSxoPXtkZXN0aW5hdGlvbklkOmEsZW5kcG9pbnQ6MH07aWYoV2ooKSl7dmFyIGw9WGooKSxuPWwrIi8iK2tBKGYsYSk7Wm4oaCxuLHZvaWQgMCxmdW5jdGlvbigpe2xBKGEsbixsKyIvIitmLGgsZyl9KX1lbHNle3ZhciBwPVNiKGEsIkdUTS0iKSxxPWRrKCkscj1jPyIvZ3RhZy9qcyI6Ii9ndG0uanMiLHQ9bUEoYixyK2YsYSk7aWYoIXQpe3ZhciB1PUUoMykrcjtxJiZLYyYmcCYmKHU9S2MucmVwbGFjZSgvXig/Omh0dHBzPzpcL1wvKT8vaSwiIikuc3BsaXQoL1s/I10vKVswXSk7dD1kQSgiaHR0cHM6Ly8iLCJodHRwOi8vIix1K2YpfVpuKGgsdCx2b2lkIDAsZyl9fX0KZnVuY3Rpb24gakEoKXtLaygpfHxHYihMaygpLGZ1bmN0aW9uKGEsYil7bkEoYSxiLnRyYW5zcG9ydFVybCxiLmNvbnRleHQpO1AoOTIpfSl9ZnVuY3Rpb24gbkEoYSxiLGMsZCl7aWYoIUdrKGEpKWlmKGMubG9hZEV4cGVyaW1lbnRzfHwoYy5sb2FkRXhwZXJpbWVudHM9eWooKSksS2soKSlKayhhLGIsYyxkKTtlbHNle0lrKGEsYyxkKTt2YXIgZT17ZGVzdGluYXRpb25JZDphLGVuZHBvaW50OjB9O2lmKFdqKCkpe3ZhciBmPVhqKCksZz0iZ3RkIitpQShhLCEwKSxoPWYrIi8iK2tBKGcsYSk7Wm4oZSxoLHZvaWQgMCxmdW5jdGlvbigpe2xBKGEsaCxmKyIvIitnLGUpfSl9ZWxzZXt2YXIgbD0iL2d0YWcvZGVzdGluYXRpb24iK2lBKGEsITApLG49bUEoYixsLGEpO258fChuPWRBKCJodHRwczovLyIsImh0dHA6Ly8iLEUoMykrbCkpO1puKGUsbil9fX0KZnVuY3Rpb24gbEEoYSxiLGMsZCxlKXtpZihNKDQxMykpe2dBKCk7dmFyIGY9ZkE7aWYoZm4uTil7dmFyIGc9QS5wZXJmb3JtYW5jZSxoPS0xO2lmKGcmJmcuZ2V0RW50cmllc0J5VHlwZSl7dmFyIGw9UmooYikuaHJlZixuPWcuZ2V0RW50cmllc0J5TmFtZShsKS5wb3AoKTtpZighbilmb3IodmFyIHA9Zy5nZXRFbnRyaWVzQnlUeXBlKCJyZXNvdXJjZSIpLHE9MDtxPHAubGVuZ3RoO3ErKyl7dmFyIHI9cFtxXTtpZihyLm5hbWUmJnIubmFtZS5pbmRleE9mKGIpIT09LTEpe249cjticmVha319biYmbi5yZXNwb25zZVN0YXR1cyE9PXZvaWQgMCYmKGg9bi5yZXNwb25zZVN0YXR1cyl9Zi5LW2FdPWh9UCgxOTApO3ZhciB0PW5tKGptLmJhLmtqKXx8e307dFthXT0hMDttbShqbS5iYS5raix0KTt2YXIgdT1jKyhjLmluZGV4T2YoIj8iKT09PS0xPyI/Zj0xIjoiJmY9MSIpO2U/Wm4oZCx1LHZvaWQgMCxlKTpabihkLHUpfWVsc2UgZSYmZSgpfQpmdW5jdGlvbiBpQShhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPSI/aWQ9IitlbmNvZGVVUklDb21wb25lbnQoYSksZD1FKDE5KTtkIT09ImRhdGFMYXllciImJihjKz0iJmw9IitkKTt2YXIgZT1TYihhLCJHVE0tIik7aWYoIWV8fGIpYys9IiZjeD1jIjtlJiZJZig2MikmJihjKz0iJmdvb2dsZV9vbmx5PXRydWUiKTt2YXIgZj1jLGcsaD17RG86SmYoMTUpLElvOkUoMTQpfTtnPUNmKGgpO2M9ZisoIiZndG09IitnKTtkaygpJiYoYys9IiZzaWduPSIrQWoucWopO3ZhciBsPWMsbj1KZig1NCk7aWYobj09PTEpe2wrPSImZnBzPWZjIjt2YXIgcD1FKDYwKTtwJiYobCs9IiZnZGV2PSIrcCl9ZWxzZSBuPT09MiYmKGwrPSImZnBzPWZlIik7cmV0dXJuIGx9CmZ1bmN0aW9uIGtBKGEsYil7aWYoIU0oNDEzKXx8IVhqKCkpcmV0dXJuIGE7dmFyIGM9RSg1OCk7aWYoIWMpcmV0dXJuIFAoMTgyKSxhO3RyeXt2YXIgZD1OYigpLGU9RWYoYSxjKSxmPU5iKCktZDtnQSgpO3ZhciBnPWZBO2ZuLk4mJihnLkhbYl09Zik7cmV0dXJuIGV9Y2F0Y2goaCl7cmV0dXJuIFAoMTgzKSxhfX1mdW5jdGlvbiBtQShhLGIsYyl7aWYoYWsoKSYmYSl7dmFyIGQ9RSg1OCksZT1YaigpO2lmKGQmJmUpdHJ5e3ZhciBmPU5iKCk7Yj1lKyIvIitFZihiLGQpO3ZhciBnPU5iKCktZjtnQSgpO3ZhciBoPWZBO2ZuLk4mJihoLkhbY109Zyl9Y2F0Y2gobCl7UCgxODMpfXJldHVybiBZaihhLGIpfX07dmFyIHBBPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLks9bmV3IEZiO3RoaXMuSD17fTt0aGlzLk49e307dGhpcy5SPXtuYW1lOkUoMTkpLHNldDpmdW5jdGlvbihiLGMpe0VkKFZiKGIsYyksYS5IKTtvQShhKX0sZ2V0OmZ1bmN0aW9uKGIpe3JldHVybiBhLmdldChiLDIpfSxyZXNldDpmdW5jdGlvbigpe2EuSz1uZXcgRmI7YS5IPXt9O29BKGEpfX19O3BBLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYiE9Mj90aGlzLksuZ2V0KGEpOnFBKHRoaXMsYSl9O3ZhciBxQT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yi5zcGxpdCgiLiIpO2M9Y3x8W107Zm9yKHZhciBlPWEuSCxmPTA7ZjxkLmxlbmd0aDtmKyspe2lmKGU9PT1udWxsKXJldHVybiExO2lmKGU9PT12b2lkIDApYnJlYWs7ZT1lW2RbZl1dO2lmKGMuaW5kZXhPZihlKSE9PS0xKXJldHVybn1yZXR1cm4gZX07CnBBLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLk4uaGFzT3duUHJvcGVydHkoYSl8fCh0aGlzLksuc2V0KGEsYiksRWQoVmIoYSxiKSx0aGlzLkgpLG9BKHRoaXMpKX07dmFyIHNBPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPVsiZ3RtLmFsbG93bGlzdCIsImd0bS5ibG9ja2xpc3QiLCJndG0ud2hpdGVsaXN0IiwiZ3RtLmJsYWNrbGlzdCIsInRhZ1R5cGVCbGFja2xpc3QiXSxiPXJBLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YVtjXSxlPWIuZ2V0KGQsMSk7aWYoQXJyYXkuaXNBcnJheShlKXx8Q2QoZSkpZT1FZChlLG51bGwpO2IuTltkXT1lfX0sb0E9ZnVuY3Rpb24oYSxiKXtHYihhLk4sZnVuY3Rpb24oYyxkKXthLksuc2V0KGMsZCk7RWQoVmIoYyksYS5IKTtFZChWYihjLGQpLGEuSCk7YiYmZGVsZXRlIGEuTltjXX0pfSxyQT1uZXcgcEEsdEE9ckEuUjtmdW5jdGlvbiB1QShhLGIpe3JldHVybiByQS5nZXQoYSxiKX0KZnVuY3Rpb24gdkEoYSxiKXt2YXIgYz1iPT09dm9pZCAwPzI6YixkPXJBLGUsZj0oYz09PXZvaWQgMD8yOmMpIT09MT9xQShkLGEpOmQuSy5nZXQoYSk7QWQoZik9PT0iYXJyYXkifHxBZChmKT09PSJvYmplY3QiP2U9RWQoZixudWxsKTplPWY7cmV0dXJuIGV9O3ZhciB3QT1uZXcgUmVnRXhwKC9eKC4qXC4pPyhnb29nbGV8eW91dHViZXxibG9nZ2VyfHdpdGhnb29nbGUpKFwuY29tPyk/KFwuW2Etel17Mn0pP1wuPyQvKSx4QT17Y2w6WyJlY2wiXSxjdXN0b21QaXhlbHM6WyJub25Hb29nbGVQaXhlbHMiXSxlY2w6WyJjbCJdLGVobDpbImhsIl0sZ2Fhd2M6WyJnb29ndGFnIl0saGw6WyJlaGwiXSxodG1sOlsiY3VzdG9tU2NyaXB0cyIsImN1c3RvbVBpeGVscyIsIm5vbkdvb2dsZVBpeGVscyIsIm5vbkdvb2dsZVNjcmlwdHMiLCJub25Hb29nbGVJZnJhbWVzIl0sY3VzdG9tU2NyaXB0czpbImh0bWwiLCJjdXN0b21QaXhlbHMiLCJub25Hb29nbGVQaXhlbHMiLCJub25Hb29nbGVTY3JpcHRzIiwibm9uR29vZ2xlSWZyYW1lcyJdLG5vbkdvb2dsZVBpeGVsczpbXSxub25Hb29nbGVTY3JpcHRzOlsibm9uR29vZ2xlUGl4ZWxzIl0sbm9uR29vZ2xlSWZyYW1lczpbIm5vbkdvb2dsZVBpeGVscyJdfSx5QT17Y2w6WyJlY2wiXSxjdXN0b21QaXhlbHM6WyJjdXN0b21TY3JpcHRzIiwKImh0bWwiXSxlY2w6WyJjbCJdLGVobDpbImhsIl0sZ2Fhd2M6WyJnb29ndGFnIl0saGw6WyJlaGwiXSxodG1sOlsiY3VzdG9tU2NyaXB0cyJdLGN1c3RvbVNjcmlwdHM6WyJodG1sIl0sbm9uR29vZ2xlUGl4ZWxzOlsiY3VzdG9tUGl4ZWxzIiwiY3VzdG9tU2NyaXB0cyIsImh0bWwiLCJub25Hb29nbGVTY3JpcHRzIiwibm9uR29vZ2xlSWZyYW1lcyJdLG5vbkdvb2dsZVNjcmlwdHM6WyJjdXN0b21TY3JpcHRzIiwiaHRtbCJdLG5vbkdvb2dsZUlmcmFtZXM6WyJjdXN0b21TY3JpcHRzIiwiaHRtbCIsIm5vbkdvb2dsZVNjcmlwdHMiXX0sekE9Imdvb2dsZSBjdXN0b21QaXhlbHMgY3VzdG9tU2NyaXB0cyBodG1sIG5vbkdvb2dsZVBpeGVscyBub25Hb29nbGVTY3JpcHRzIG5vbkdvb2dsZUlmcmFtZXMiLnNwbGl0KCIgIik7CmZ1bmN0aW9uIEFBKCl7dmFyIGE9dUEoImd0bS5hbGxvd2xpc3QiKXx8dUEoImd0bS53aGl0ZWxpc3QiKTthJiZQKDkpO0lmKDYyKSYmKGE9dm9pZCAwKTtCQSgpJiYoSWYoNjIpP1AoMTE2KTooUCgxMTcpLElmKDQ4KSYmKGE9W10sd2luZG93LmNvbnNvbGUmJndpbmRvdy5jb25zb2xlLmxvZyYmd2luZG93LmNvbnNvbGUubG9nKCJHVE0gYmxvY2tlZC4gU2VlIGdvLzEzNjg3NzI4LiIpKSkpO3ZhciBiPWEmJlJiKEtiKGEpLHhBKSxjPXVBKCJndG0uYmxvY2tsaXN0Iil8fHVBKCJndG0uYmxhY2tsaXN0Iik7Y3x8KGM9dUEoInRhZ1R5cGVCbGFja2xpc3QiKSkmJlAoMyk7Yz9QKDgpOmM9W107QkEoKSYmKGM9S2IoYyksYy5wdXNoKCJub25Hb29nbGVQaXhlbHMiLCJub25Hb29nbGVTY3JpcHRzIiwic2FuZGJveGVkU2NyaXB0cyIpKTtLYihjKS5pbmRleE9mKCJnb29nbGUiKT49MCYmUCgyKTt2YXIgZD1jJiZSYihLYihjKSx5QSksZT17fTtyZXR1cm4gZnVuY3Rpb24oZil7dmFyIGc9ZiYmCmZbR2YuWWJdO2lmKCFnfHx0eXBlb2YgZyE9PSJzdHJpbmciKXJldHVybiEwO2c9Zy5yZXBsYWNlKC9eXyovLCIiKTtpZihlW2ddIT09dm9pZCAwKXJldHVybiBlW2ddO3ZhciBoPWFsKDI3LGZ1bmN0aW9uKCl7cmV0dXJue319KVtnXXx8W10sbD0hMDthJiYobD1sJiZDQShnLGgsYikpO3ZhciBuPSExO2MmJihuPURBKGcsaCxkKSk7dmFyIHA9IWx8fG47IXAmJihoLmluZGV4T2YoInNhbmRib3hlZFNjcmlwdHMiKT09PS0xfHxiJiZiLmluZGV4T2YoInNhbmRib3hlZFNjcmlwdHMiKSE9PS0xPzA6RWIoZCx6QSkpJiYocD0hMCk7cmV0dXJuIGVbZ109cH19ZnVuY3Rpb24gQ0EoYSxiLGMpe2lmKGMuaW5kZXhPZihhKTwwKWlmKGImJmIubGVuZ3RoPjApZm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspe2lmKGMuaW5kZXhPZihiW2RdKTwwKXJldHVybiBQKDExKSwhMX1lbHNlIHJldHVybiExO3JldHVybiEwfQpmdW5jdGlvbiBEQShhLGIsYyl7dmFyIGQ9Yy5pbmRleE9mKGEpPj0wO2lmKGQpcmV0dXJuIGQ7dmFyIGU9RWIoYyxifHxbXSk7ZSYmUCgxMCk7cmV0dXJuIGV9ZnVuY3Rpb24gQkEoKXtyZXR1cm4gd0EudGVzdChBLmxvY2F0aW9uJiZBLmxvY2F0aW9uLmhvc3RuYW1lKX07ZnVuY3Rpb24gRUEoYSl7Zm9yKHZhciBiPVtdLGM9W10sZD1GQShhKSxlPW0oY0EuZ2V0UnVsZXMoKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe2Zvcih2YXIgZz1mLnZhbHVlLmV2YWx1YXRlKGEsZCksaD1nLmZpcmluZ1RhZ3MsbD1nLmJsb2NraW5nVGFncyxuPTA7bjxoLmxlbmd0aDtuKyspYltoW25dXT0hMDtmb3IodmFyIHA9MDtwPGwubGVuZ3RoO3ArKyljW2xbcF1dPSEwfWZvcih2YXIgcT1bXSxyPTA7cjxjQS50YWdzLmxlbmd0aDtyKyspYltyXSYmIWNbcl0mJihxW3JdPSEwKTtyZXR1cm4gcX1mdW5jdGlvbiBGQShhKXt2YXIgYj1bXTtyZXR1cm4gZnVuY3Rpb24oYyl7YltjXT09PXZvaWQgMCYmKGJbY109Y0EucHJlZGljYXRlc1tjXS5ldmFsdWF0ZShhLFtdKSk7cmV0dXJuIGJbY119fTt2YXIgR0E9ZnVuY3Rpb24oKXt0aGlzLks9MDt0aGlzLkg9e319O0dBLnByb3RvdHlwZS5hZGRMaXN0ZW5lcj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Kyt0aGlzLks7dGhpcy5IW2FdPXRoaXMuSFthXXx8e307dGhpcy5IW2FdW1N0cmluZyhkKV09e2xpc3RlbmVyOmIscmY6Y307cmV0dXJuIGR9O0dBLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuSFthXSxkPVN0cmluZyhiKTtpZighY3x8IWNbZF0pcmV0dXJuITE7ZGVsZXRlIGNbZF07cmV0dXJuITB9O3ZhciBJQT1mdW5jdGlvbihhLGIpe3ZhciBjPVtdO0diKEhBLkhbYV0sZnVuY3Rpb24oZCxlKXtjLmluZGV4T2YoZS5saXN0ZW5lcik8MCYmKGUucmY9PT12b2lkIDB8fGIuaW5kZXhPZihlLnJmKT49MCkmJmMucHVzaChlLmxpc3RlbmVyKX0pO3JldHVybiBjfTtmdW5jdGlvbiBKQShhLGIsYyl7cmV0dXJue2VudGl0eVR5cGU6YSxpbmRleEluT3JpZ2luQ29udGFpbmVyOmIsbmFtZUluT3JpZ2luQ29udGFpbmVyOmMsb3JpZ2luQ29udGFpbmVySWQ6RSg1KSxvcmlnaW5DSWQ6dmsoKX19O2Z1bmN0aW9uIEtBKGEsYil7aWYoZGF0YS5lbnRpdGllcyl7dmFyIGM9ZGF0YS5lbnRpdGllc1thXTtpZihjKXJldHVybiBjW2JdfX07dmFyIE1BPWZ1bmN0aW9uKGEsYil7dGhpcy5IPSExO3RoaXMuUj1bXTt0aGlzLmV2ZW50RGF0YT17dGFnczpbXX07dGhpcy5aPSExO3RoaXMuSz10aGlzLk49MDtMQSh0aGlzLGEsYil9LE5BPWZ1bmN0aW9uKGEsYixjLGQpe2lmKENqLmhhc093blByb3BlcnR5KGIpfHxiPT09Il9fem9uZSIpcmV0dXJuLTE7dmFyIGU9e307Q2QoZCkmJihlPUVkKGQsZSkpO2UuaWQ9YztlLnN0YXR1cz0idGltZW91dCI7cmV0dXJuIGEuZXZlbnREYXRhLnRhZ3MucHVzaChlKS0xfSxPQT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLmV2ZW50RGF0YS50YWdzW2JdO2UmJihlLnN0YXR1cz1jLGUuZXhlY3V0aW9uVGltZT1kKX0sUEE9ZnVuY3Rpb24oYSl7aWYoIWEuSCl7Zm9yKHZhciBiPWEuUixjPTA7YzxiLmxlbmd0aDtjKyspYltjXSgpO2EuSD0hMDthLlIubGVuZ3RoPTB9fSxMQT1mdW5jdGlvbihhLGIsYyl7YiE9PXZvaWQgMCYmYS53ZyhiKTtjJiZBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtQQShhKX0sCk51bWJlcihjKSl9O01BLnByb3RvdHlwZS53Zz1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9UGIoZnVuY3Rpb24oKXtiZChmdW5jdGlvbigpe2EoRSg1KSxiLmV2ZW50RGF0YSl9KX0pO3RoaXMuSD9jKCk6dGhpcy5SLnB1c2goYyl9O3ZhciBRQT1mdW5jdGlvbihhKXthLk4rKztyZXR1cm4gUGIoZnVuY3Rpb24oKXthLksrKzthLlomJmEuSz49YS5OJiZQQShhKX0pfSxSQT1mdW5jdGlvbihhKXthLlo9ITA7YS5LPj1hLk4mJlBBKGEpfTtmdW5jdGlvbiBTQSgpe3JldHVybiBBW1RBKCldfQpmdW5jdGlvbiBUQSgpe3JldHVybiBBLkdvb2dsZUFuYWx5dGljc09iamVjdHx8ImdhIn12YXIgV0E9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPXt9fTtmdW5jdGlvbiBYQSgpe2E6e3ZhciBhPUUoNSk7fX0KZnVuY3Rpb24gWUEoYSxiKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYz1TQSgpLGQ9YyYmYy5nZXRCeU5hbWUmJmMuZ2V0QnlOYW1lKGEpO2lmKGQpe3ZhciBlPWQuZ2V0KCJzZW5kSGl0VGFzayIpO2Quc2V0KCJzZW5kSGl0VGFzayIsZnVuY3Rpb24oZil7dmFyIGc9Zi5nZXQoImhpdFBheWxvYWQiKSxoPWYuZ2V0KCJoaXRDYWxsYmFjayIpLGw9Zy5pbmRleE9mKCImdGlkPSIrYik8MDtsJiYoZi5zZXQoImhpdFBheWxvYWQiLGcucmVwbGFjZSgvJnRpZD1VQS1bMC05XSstWzAtOV0rLywiJnRpZD0iK2IpLCEwKSxmLnNldCgiaGl0Q2FsbGJhY2siLHZvaWQgMCwhMCkpO2UoZik7bCYmKGYuc2V0KCJoaXRQYXlsb2FkIixnLCEwKSxmLnNldCgiaGl0Q2FsbGJhY2siLGgsITApLGYuc2V0KCJfeF8xOSIsdm9pZCAwLCEwKSxlKGYpKX0pfX19O3ZhciBhQj1bImVzIiwiMSJdLGJCPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLmV2ZW50RGF0YT17fTt0aGlzLkg9e307ZnooZnVuY3Rpb24oYil7dmFyIGM7dmFyIGQ9Yi5ldmVudElkLGU9Yi50ZjtpZihhLmV2ZW50RGF0YVtkXSl7dmFyIGY9W107YS5IW2RdfHxmLnB1c2goYUIpO2YucHVzaC5hcHBseShmLHcoYS5ldmVudERhdGFbZF0pKTtlJiYoYS5IW2RdPSEwKTtjPWZ9ZWxzZSBjPVtdO3JldHVybiBjfSl9LGNCO2Z1bmN0aW9uIGRCKGEsYil7dmFyIGM7aWYoKGM9Y0IpIT1udWxsJiZmbi5OKXt2YXIgZD1jLmV2ZW50RGF0YSxlO2U9Yi5tYXRjaCgvXihndG18Z3RhZylcLi8pP2VuY29kZVVSSUNvbXBvbmVudChiKToiKiI7ZFthXT1bWyJlIixlXSxbImVpZCIsU3RyaW5nKGEpXV07Z3ooKTtleihhKX19O3ZhciBlQj1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5IPXt9O3RoaXMuSz17fTtmeihmdW5jdGlvbihiKXt2YXIgYz1iLmV2ZW50SWQsZD1iLnRmLGU9W10sZj1hLkhbY118fFtdO2YubGVuZ3RoJiZlLnB1c2goWyJ0ciIsZi5qb2luKCIuIildKTt2YXIgZz1hLktbY118fFtdO2cubGVuZ3RoJiZlLnB1c2goWyJ0aSIsZy5qb2luKCIuIildKTtkJiYoZGVsZXRlIGEuSFtjXSxkZWxldGUgYS5LW2NdKTtyZXR1cm4gZX0pfSxmQjsKZnVuY3Rpb24gZ0IoYSxiLGMpe2ZCfHwoZkI9bmV3IGVCKTt2YXIgZD1mQjtpZihmbi5OJiZiKXt2YXIgZT1kbihiKTtkLkhbYV09ZC5IW2FdfHxbXTtkLkhbYV0ucHVzaChjK2UpO3ZhciBmPWJbR2YuWWJdO2lmKCFmKXRocm93IEVycm9yKCJFcnJvcjogTm8gZnVuY3Rpb24gbmFtZSBnaXZlbiBmb3IgZnVuY3Rpb24gY2FsbC4iKTt2YXIgZz0oUXpbZl0/IjEiOiIyIikrZTtkLktbYV09ZC5LW2FdfHxbXTtkLktbYV0ucHVzaChnKTtneigpO2V6KGEpfX07ZnVuY3Rpb24gaEIoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO2lCKCkuYWRkUmVzdHJpY3Rpb24oMCxhLGIsYyl9ZnVuY3Rpb24gakIoKXt2YXIgYT12aygpO3JldHVybiBpQigpLmdldFJlc3RyaWN0aW9ucygwLGEpfWZ1bmN0aW9uIGtCKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6YztpQigpLmFkZFJlc3RyaWN0aW9uKDEsYSxiLGMpfWZ1bmN0aW9uIGxCKCl7dmFyIGE9dmsoKTtyZXR1cm4gaUIoKS5nZXRSZXN0cmljdGlvbnMoMSxhKX12YXIgbUI9ZnVuY3Rpb24oKXt0aGlzLmNvbnRhaW5lcj17fTt0aGlzLkg9e319LG5CPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5jb250YWluZXJbYl07Y3x8KGM9e19lbnRpdHk6e2ludGVybmFsOltdLGV4dGVybmFsOltdfSxfZXZlbnQ6e2ludGVybmFsOltdLGV4dGVybmFsOltdfX0sYS5jb250YWluZXJbYl09Yyk7cmV0dXJuIGN9OwptQi5wcm90b3R5cGUuYWRkUmVzdHJpY3Rpb249ZnVuY3Rpb24oYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7aWYoIWR8fCF0aGlzLkhbYl0pe3ZhciBlPW5CKHRoaXMsYik7YT09PTA/ZD9lLl9lbnRpdHkuZXh0ZXJuYWwucHVzaChjKTplLl9lbnRpdHkuaW50ZXJuYWwucHVzaChjKTphPT09MSYmKGQ/ZS5fZXZlbnQuZXh0ZXJuYWwucHVzaChjKTplLl9ldmVudC5pbnRlcm5hbC5wdXNoKGMpKX19OwptQi5wcm90b3R5cGUuZ2V0UmVzdHJpY3Rpb25zPWZ1bmN0aW9uKGEsYil7dmFyIGM9bkIodGhpcyxiKTtpZihhPT09MCl7dmFyIGQsZTtyZXR1cm5bXS5jb25jYXQodygoYz09bnVsbD92b2lkIDA6KGQ9Yy5fZW50aXR5KT09bnVsbD92b2lkIDA6ZC5pbnRlcm5hbCl8fFtdKSx3KChjPT1udWxsP3ZvaWQgMDooZT1jLl9lbnRpdHkpPT1udWxsP3ZvaWQgMDplLmV4dGVybmFsKXx8W10pKX1pZihhPT09MSl7dmFyIGYsZztyZXR1cm5bXS5jb25jYXQodygoYz09bnVsbD92b2lkIDA6KGY9Yy5fZXZlbnQpPT1udWxsP3ZvaWQgMDpmLmludGVybmFsKXx8W10pLHcoKGM9PW51bGw/dm9pZCAwOihnPWMuX2V2ZW50KT09bnVsbD92b2lkIDA6Zy5leHRlcm5hbCl8fFtdKSl9cmV0dXJuW119OwptQi5wcm90b3R5cGUuZ2V0RXh0ZXJuYWxSZXN0cmljdGlvbnM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1uQih0aGlzLGIpLGQsZTtyZXR1cm4gYT09PTA/KGM9PW51bGw/dm9pZCAwOihkPWMuX2VudGl0eSk9PW51bGw/dm9pZCAwOmQuZXh0ZXJuYWwpfHxbXTooYz09bnVsbD92b2lkIDA6KGU9Yy5fZXZlbnQpPT1udWxsP3ZvaWQgMDplLmV4dGVybmFsKXx8W119O21CLnByb3RvdHlwZS5yZW1vdmVFeHRlcm5hbFJlc3RyaWN0aW9ucz1mdW5jdGlvbihhKXt2YXIgYj1uQih0aGlzLGEpO2IuX2V2ZW50JiYoYi5fZXZlbnQuZXh0ZXJuYWw9W10pO2IuX2VudGl0eSYmKGIuX2VudGl0eS5leHRlcm5hbD1bXSk7dGhpcy5IW2FdPSEwfTtmdW5jdGlvbiBpQigpe3JldHVybiBraigiciIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG1CfSl9O2Z1bmN0aW9uIG9CKGEsYixjLGQpe3ZhciBlPWNBLnRhZ3NbYV0sZj1wQihhLGIsYyxkKTtpZighZilyZXR1cm4gbnVsbDt2YXIgZz1aeihlLGMpO2lmKGcmJmcubGVuZ3RoKXt2YXIgaD1nWzBdO2Y9b0IoaC5pbmRleCx7b25TdWNjZXNzOmYsb25GYWlsdXJlOmguYm89PT0xP2IudGVybWluYXRlOmYsdGVybWluYXRlOmIudGVybWluYXRlfSxjLGQpfXJldHVybiBmfQpmdW5jdGlvbiBwQihhLGIsYyxkKXtmdW5jdGlvbiBlKCl7ZnVuY3Rpb24geSgpe2ltKDMpO3ZhciBTPU5iKCktTjtKQSgxLGEsZi5nZXROYW1lKCkpO2dCKGMuaWQsZywiNyIpO09BKGMubGQsRCwiZXhjZXB0aW9uIixTKTtmbi5IJiZGeihjLGcsSXkuWC51aik7SXx8KEk9ITAsbCgpKX1pZihmLklhW0dmLk9xXSlsKCk7ZWxzZXt2YXIgej1hQShmLGMpO2lmKHohPW51bGwpZm9yKHZhciBDPTA7Qzx6Lmxlbmd0aDtDKyspaWYoIVhvKHpbQ10pKXtsKCk7cmV0dXJufXZhciBEPU5BKGMubGQsZi5PLGYudGFnSWQsZi5nZXRNZXRhZGF0YShjKSksST0hMSxHPXt2dHBfZ3RtT25TdWNjZXNzOmZ1bmN0aW9uKCl7aWYoIUkpe0k9ITA7dmFyIFM9TmIoKS1OO2dCKGMuaWQsZywiNSIpO09BKGMubGQsRCwic3VjY2VzcyIsUyk7Zm4uSCYmRnooYyxnLEl5Llgud2opO2goKX19LHZ0cF9ndG1PbkZhaWx1cmU6ZnVuY3Rpb24oKXtpZighSSl7ST0hMDt2YXIgUz1OYigpLU47Z0IoYy5pZCxnLCI2Iik7Ck9BKGMubGQsRCwiZmFpbHVyZSIsUyk7Zm4uSCYmRnooYyxnLEl5LlgudmopO2woKX19fTtHLnZ0cF9ndG1FdmVudElkPWMuaWQ7Yy5wcmlvcml0eUlkJiYoRy52dHBfZ3RtUHJpb3JpdHlJZD1jLnByaW9yaXR5SWQpO2dCKGMuaWQsZywiMSIpO2ZuLkgmJkV6KGMsZyk7dmFyIE49TmIoKTt0cnl7Zi5ldmFsdWF0ZShjLGQsRyl9Y2F0Y2goUyl7eShTKX1mbi5IJiZGeihjLGcsSXkuWC5Dbil9fXZhciBmPWNBLnRhZ3NbYV0sZz1mLkZnKCksaD1iLm9uU3VjY2VzcyxsPWIub25GYWlsdXJlLG49Yi50ZXJtaW5hdGU7aWYoYy5pc0Jsb2NrZWQoZykpcmV0dXJuIG51bGw7dmFyIHA9JHooZixjKTtpZihwJiZwLmxlbmd0aCl7dmFyIHE9cFswXSxyPW9CKHEuaW5kZXgse29uU3VjY2VzczpoLG9uRmFpbHVyZTpsLHRlcm1pbmF0ZTpufSxjLGQpO2lmKCFyKXJldHVybiBudWxsO2g9cjtsPXEuYm89PT0yP246cn1pZihmLklhW0dmLmtuXXx8Zi5JYVtHZi5RcV0pe3ZhciB0PWYuSWFbR2Yua25dPwpjQS52azpjLnZrLHU9aCx2PWw7aWYoIXRbYV0pe3ZhciB4PXFCKGEsdCxQYihlKSk7aD14Lm9uU3VjY2VzcztsPXgub25GYWlsdXJlfXJldHVybiBmdW5jdGlvbigpe3RbYV0odSx2KX19cmV0dXJuIGV9ZnVuY3Rpb24gcUIoYSxiLGMpe3ZhciBkPVtdLGU9W107YlthXT1yQihkLGUsYyk7cmV0dXJue29uU3VjY2VzczpmdW5jdGlvbigpe2JbYV09c0I7Zm9yKHZhciBmPTA7ZjxkLmxlbmd0aDtmKyspZFtmXSgpfSxvbkZhaWx1cmU6ZnVuY3Rpb24oKXtiW2FdPXRCO2Zvcih2YXIgZj0wO2Y8ZS5sZW5ndGg7ZisrKWVbZl0oKX19fWZ1bmN0aW9uIHJCKGEsYixjKXtyZXR1cm4gZnVuY3Rpb24oZCxlKXthLnB1c2goZCk7Yi5wdXNoKGUpO2MoKX19ZnVuY3Rpb24gc0IoYSl7YSgpfWZ1bmN0aW9uIHRCKGEsYil7YigpfTt2YXIgd0I9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W10sZD0wO2Q8Y0EudGFncy5sZW5ndGg7ZCsrKWlmKGFbZF0pe3ZhciBlPWNBLnRhZ3NbZF07dmFyIGY9UUEoYi5sZCk7dHJ5e3ZhciBnPW9CKGQse29uU3VjY2VzczpmLG9uRmFpbHVyZTpmLHRlcm1pbmF0ZTpmfSxiLGQpO2lmKGcpe3ZhciBoPVF6W2UuT107Yy5wdXNoKHtObzpkLHByaW9yaXR5T3ZlcnJpZGU6KGg/aC5wcmlvcml0eU92ZXJyaWRlfHwwOjApfHxLQShlLk8sMSl8fDAsZXhlY3V0ZTpnfSl9ZWxzZSB1QihkLGIpLGYoKX1jYXRjaChuKXtmKCl9fWMuc29ydCh2Qik7Zm9yKHZhciBsPTA7bDxjLmxlbmd0aDtsKyspY1tsXS5leGVjdXRlKCk7cmV0dXJuIGMubGVuZ3RoPjB9OwpmdW5jdGlvbiB4QihhLGIpe2lmKCFIQSlyZXR1cm4hMTt2YXIgYz1hWyJndG0udHJpZ2dlcnMiXSYmU3RyaW5nKGFbImd0bS50cmlnZ2VycyJdKSxkPUlBKGEuZXZlbnQsYz9TdHJpbmcoYykuc3BsaXQoIiwiKTpbXSk7aWYoIWQubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgZT0wO2U8ZC5sZW5ndGg7KytlKXt2YXIgZj1RQShiKTt0cnl7ZFtlXShhLGYpfWNhdGNoKGcpe2YoKX19cmV0dXJuITB9ZnVuY3Rpb24gdkIoYSxiKXt2YXIgYyxkPWIucHJpb3JpdHlPdmVycmlkZSxlPWEucHJpb3JpdHlPdmVycmlkZTtjPWQ+ZT8xOmQ8ZT8tMTowO3ZhciBmO2lmKGMhPT0wKWY9YztlbHNle3ZhciBnPWEuTm8saD1iLk5vO2Y9Zz5oPzE6ZzxoPy0xOjB9cmV0dXJuIGZ9CmZ1bmN0aW9uIHVCKGEsYil7aWYoZm4uTil7dmFyIGM9ZnVuY3Rpb24oZCl7dmFyIGU9Yi5pc0Jsb2NrZWQoY0EudGFnc1tkXS5GZygpKT8iMyI6IjQiLGY9WnooY0EudGFnc1tkXSxiKTtmJiZmLmxlbmd0aCYmYyhmWzBdLmluZGV4KTtnQihiLmlkLGNBLnRhZ3NbZF0uRmcoKSxlKTt2YXIgZz0keihjQS50YWdzW2RdLGIpO2cmJmcubGVuZ3RoJiZjKGdbMF0uaW5kZXgpfTtjKGEpfX12YXIgSEE7ZnVuY3Rpb24geUIoKXtIQXx8KEhBPW5ldyBHQSk7cmV0dXJuIEhBfQpmdW5jdGlvbiB6QihhKXt2YXIgYj1hWyJndG0udW5pcXVlRXZlbnRJZCJdLGM9YVsiZ3RtLnByaW9yaXR5SWQiXSxkPWFbImd0bS5wcmlvcml0eVF1ZXVlIl0sZT1hLmV2ZW50O2ZuLkgmJnZ6KGIsZSk7aWYoZT09PSJndG0uanMiKXtpZigkaygxMykpcmV0dXJuITE7WmsoMTMsITApfXZhciBmPSExLGc9bEIoKSxoPUVkKGEsbnVsbCk7aWYoIWcuZXZlcnkoZnVuY3Rpb24odSl7cmV0dXJuIHUoe29yaWdpbmFsRXZlbnREYXRhOmh9KX0pKXtpZihlIT09Imd0bS5qcyImJmUhPT0iZ3RtLmluaXQiJiZlIT09Imd0bS5pbml0X2NvbnNlbnQiKXJldHVybiExO2Y9ITB9ZEIoYixlKTt2YXIgbD1hLmV2ZW50Q2FsbGJhY2ssbj1hLmV2ZW50VGltZW91dCxwPXtpZDpiLHByaW9yaXR5SWQ6Yyxwcmlvcml0eVF1ZXVlOmQsbmFtZTplLGlzQmxvY2tlZDpBQihoLGYpLHZrOltdLGxvZ01hY3JvRXJyb3I6ZnVuY3Rpb24odSx2LHgpe1AoNik7aW0oNCk7SkEoMix2LHgpfSxjYWNoZWRNb2RlbFZhbHVlczpCQigpLApsZDpuZXcgTUEoZnVuY3Rpb24oKXtmbi5IJiZ5eihiLGUpO0Z5KDUsZSk7bCYmbC5hcHBseShsLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKSl9LG4pLG9yaWdpbmFsRXZlbnREYXRhOmh9O2ZuLkgmJkN6KHAuaWQpO3ZhciBxPUVBKHApO2ZuLkgmJkR6KHAuaWQpO0Z5KDIsZSk7Y0EuZ2V0UnVsZXMoKTtmJiYocT1DQihxKSk7Zm4uSCYmd3ooYik7dmFyIHI9d0IocSxwKTtyJiZGeSg0LGUpO3ZhciB0PXhCKGEscC5sZCk7UkEocC5sZCk7ZSE9PSJndG0uanMiJiZlIT09Imd0bS5zeW5jInx8WEEoKTtyZXR1cm4gREIocSxyKXx8dH0KZnVuY3Rpb24gQkIoKXt2YXIgYT17fTthLmV2ZW50PXZBKCJldmVudCIsMSk7YS5lY29tbWVyY2U9dkEoImVjb21tZXJjZSIsMSk7YS5ndG09dkEoImd0bSIpO2EuZXZlbnRNb2RlbD12QSgiZXZlbnRNb2RlbCIpO3JldHVybiBhfQpmdW5jdGlvbiBBQihhLGIpe3ZhciBjPUFBKCk7cmV0dXJuIGZ1bmN0aW9uKGQpe3ZhciBlPWMoZCk7aWYoZSlyZXR1cm4hMDt2YXIgZj1kJiZkW0dmLlliXTtpZighZnx8dHlwZW9mIGYhPT0ic3RyaW5nIilyZXR1cm4hMDtmPWYucmVwbGFjZSgvXl8qLywiIik7dmFyIGc9akIoKSxoPWE7YiYmKGg9RWQoYSxudWxsKSxoWyJndG0udW5pcXVlRXZlbnRJZCJdPU51bWJlci5NQVhfU0FGRV9JTlRFR0VSKTtmb3IodmFyIGw9ITEsbj1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSlbZl18fFtdLHA9bShnKSxxPXAubmV4dCgpOyFxLmRvbmU7cT1wLm5leHQoKSl7dmFyIHI9cS52YWx1ZTt0cnl7cih7ZW50aXR5SWQ6ZixzZWN1cml0eUdyb3VwczpuLG9yaWdpbmFsRXZlbnREYXRhOmh9KXx8KGw9ITApfWNhdGNoKHQpe2w9ITB9fXJldHVybiBsfHxlfX0KZnVuY3Rpb24gQ0IoYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKylpZihhW2NdKXt2YXIgZD1jQS50YWdzW2NdLk87aWYoQmpbZF18fGNBLnRhZ3NbY10uSWFbR2YuUnFdIT09dm9pZCAwfHxLQShkLDIpKWJbY109ITB9cmV0dXJuIGJ9ZnVuY3Rpb24gREIoYSxiKXtpZighYilyZXR1cm4gYjtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihhW2NdJiZjQS50YWdzW2NdJiYhQ2pbY0EudGFnc1tjXS5PXSlyZXR1cm4hMDtyZXR1cm4hMX07dmFyIEVCPU5mKDYxLDFFMyksRkI9TmYoNjgsMkUzKSxabz1bImFkX3N0b3JhZ2UiLCJhbmFseXRpY3Nfc3RvcmFnZSJdO2Z1bmN0aW9uIEdCKGEsYil7aWYoYSl7dmFyIGM9a2ooImd0aCIsZnVuY3Rpb24oKXtyZXR1cm57fX0pLGQ7YSE9PTJ8fCgoZD1IQigpKT09bnVsbD92b2lkIDA6ZC5zdGF0dXMpIT09M3x8YiE9PXZvaWQgMCYmYjw9RkJ8fChhPTMsYy5kbD1iP01hdGguZmxvb3IoYi8xRTMpOnZvaWQgMCk7Yy5zPWE7SUIoYyl9fWZ1bmN0aW9uIElCKGEpe2lmKGEucyl7dmFyIGI9ZnVuY3Rpb24oKXt2YXIgYz17c3RhdHVzOmEucyxleHBpcmVzOkRhdGUubm93KCkrODY0RTV9O2EuZGwhPT12b2lkIDAmJihjLmRlbGF5PWEuZGwpO2tyKCJndGdfbG9hZF9zdGF0dXMiLGMpfTticChmdW5jdGlvbigpe2lmKFlvKCkpYigpO2Vsc2UgZm9yKHZhciBjPVBiKGIpLGQ9bShabyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpSWwoYyxlLnZhbHVlKX0sWm8pfX0KZnVuY3Rpb24gSkIoKXt2YXIgYT1LQighMCk7cmV0dXJuIGE/KExCKGEuc3RhdHVzLGEuZGVsYXkpLCExKTohMH1mdW5jdGlvbiBLQihhKXthPWE9PT12b2lkIDA/ITE6YTtpZihhaygpKXt2YXIgYj1ucigiZ3RnX2xvYWRfc3RhdHVzIiksYz1iLnZhbHVlLGQ9YSYmQWIoYz09bnVsbD92b2lkIDA6Yy5leHBpcmVzKSYmKGM9PW51bGw/dm9pZCAwOmMuZXhwaXJlcyk8RGF0ZS5ub3coKSszNkU1O2lmKGIuZXJyb3I9PT0wJiZBYihjPT1udWxsP3ZvaWQgMDpjLnN0YXR1cykmJiFkKXt2YXIgZT17c3RhdHVzOmMuc3RhdHVzfTsoYz09bnVsbD92b2lkIDA6Yy5kZWxheSkhPT12b2lkIDAmJihlLmRlbGF5PWMuZGVsYXkpO3JldHVybiBlfXJldHVybiBIQigpfX1mdW5jdGlvbiBMQihhLGIpe3ZhciBjPWtqKCJndGgiLGZ1bmN0aW9uKCl7cmV0dXJue319KTtjLnM9YTtiIT09dm9pZCAwJiYoYy5kbD1iKX0KZnVuY3Rpb24gSEIoKXt2YXIgYT1taigiZ3RoIik7aWYoYSE9bnVsbCYmYS5zKXt2YXIgYj17c3RhdHVzOmEuc307YS5kbCE9PXZvaWQgMCYmKGIuZGVsYXk9YS5kbCk7cmV0dXJuIGJ9fWZ1bmN0aW9uIE1CKCl7dmFyIGE7KChhPUhCKCkpPT1udWxsP3ZvaWQgMDphLnN0YXR1cyk9PT0xJiZHQigzKX1mdW5jdGlvbiBOQigpe2lmKEpCKCkpe3ZhciBhPURhdGUubm93KCk7bmooImd0aCIse2w6ZnVuY3Rpb24oKXtHQigyLERhdGUubm93KCktYSl9LHM6MX0pO3ZhciBiPUUoNSksYz1TYihiLCJHVE0tIik/Ii9ndG0uanMiOiIvZ3RhZy9qcyIsZD0iaHR0cHM6Ly8iK0UoMykrYysiP2lkPSIrYisiJmd0Z19oZWFsdGg9MSI7VWMoZCxNQixNQik7QS5zZXRUaW1lb3V0KE1CLEVCKX19O2Z1bmN0aW9uIE9CKCl7eUIoKS5hZGRMaXN0ZW5lcigiZ3RtLmluaXQiLGZ1bmN0aW9uKGEsYil7WmsoMjYsITApO00oNTU2KSYmYWsoKSYmIUlmKDQ1KSYmKGZvLkhbY28uaWEuWmJdPWJvLk1hLkxoKTtpZihhaygpKXt2YXIgYztjPWxvKGNvLmlhLlpiKTtnbyhjKT9pbyhjLE5CKTpOQigpfXRvKCExLCEwKTtiKCl9KX07ZnVuY3Rpb24gUEIoKXtpZihtaigicHNjZGwiKSE9PXZvaWQgMClubShqbS5iYS5vaSk9PT12b2lkIDAmJm1tKGptLmJhLm9pLG1qKCJwc2NkbCIpKTtlbHNle3ZhciBhPWZ1bmN0aW9uKGMpe25qKCJwc2NkbCIsYyk7bW0oam0uYmEub2ksYyl9LGI9ZnVuY3Rpb24oKXthKCJlcnJvciIpfTt0cnl7SGMuY29va2llRGVwcmVjYXRpb25MYWJlbD8oYSgicGVuZGluZyIpLEhjLmNvb2tpZURlcHJlY2F0aW9uTGFiZWwuZ2V0VmFsdWUoKS50aGVuKGEpLmNhdGNoKGIpKTphKCJub2FwaSIpfWNhdGNoKGMpe2IoYyl9fX07dmFyIFJCPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLnJlYWR5PSExO3RoaXMuSz0wO3RoaXMuSD1bXTt2YXIgYj1BO2lmKEIucmVhZHlTdGF0ZT09PSJpbnRlcmFjdGl2ZSImJiFCLmNyZWF0ZUV2ZW50T2JqZWN0fHxCLnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKXRoaXMub25SZWFkeSgpO2Vsc2V7JGMoQiwiRE9NQ29udGVudExvYWRlZCIsZnVuY3Rpb24oZCl7cmV0dXJuIHZvaWQgYS5vblJlYWR5KGQpfSk7JGMoQiwicmVhZHlzdGF0ZWNoYW5nZSIsZnVuY3Rpb24oZCl7cmV0dXJuIHZvaWQgYS5vblJlYWR5KGQpfSk7aWYoQi5jcmVhdGVFdmVudE9iamVjdCYmQi5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwpe3ZhciBjPSEwO3RyeXtjPSFiLmZyYW1lRWxlbWVudH1jYXRjaChkKXt9YyYmUUIodGhpcyl9JGMoYiwibG9hZCIsZnVuY3Rpb24oZCl7cmV0dXJuIHZvaWQgYS5vblJlYWR5KGQpfSl9fTtSQi5wcm90b3R5cGUuaXNSZWFkeT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWR5fTsKUkIucHJvdG90eXBlLm9uUmVhZHk9ZnVuY3Rpb24oYSl7aWYoIXRoaXMucmVhZHkpe3ZhciBiPUIuY3JlYXRlRXZlbnRPYmplY3QsYz1CLnJlYWR5U3RhdGU9PT0iY29tcGxldGUiLGQ9Qi5yZWFkeVN0YXRlPT09ImludGVyYWN0aXZlIjtpZighYXx8YS50eXBlIT09InJlYWR5c3RhdGVjaGFuZ2UifHxjfHwhYiYmZCl7dGhpcy5yZWFkeT0hMDtmb3IodmFyIGU9MDtlPHRoaXMuSC5sZW5ndGg7ZSsrKWJkKHRoaXMuSFtlXSl9dGhpcy5ILnB1c2g9ZnVuY3Rpb24oKXtmb3IodmFyIGY9T2EuYXBwbHkoMCxhcmd1bWVudHMpLGc9MDtnPGYubGVuZ3RoO2crKyliZChmW2ddKTtyZXR1cm4gMH19fTsKdmFyIFFCPWZ1bmN0aW9uKGEpe2lmKCFhLnJlYWR5JiZhLks8MTQwKXthLksrKzt0cnl7dmFyIGIsYzsoYz0oYj1CLmRvY3VtZW50RWxlbWVudCkuZG9TY3JvbGwpPT1udWxsfHxjLmNhbGwoYiwibGVmdCIpO2Eub25SZWFkeSgpfWNhdGNoKGQpe0Euc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB2b2lkIFFCKGEpfSw1MCl9fX0sU0I7ZnVuY3Rpb24gVEIoKXtTQnx8KFNCPW5ldyBSQil9ZnVuY3Rpb24gVUIoKXtUQigpO3ZhciBhO3JldHVybihhPVNCKT09bnVsbD92b2lkIDA6YS5pc1JlYWR5KCl9ZnVuY3Rpb24gVkIoYSl7VEIoKTt2YXIgYjsoYj1TQikhPW51bGwmJihiLnJlYWR5P2JkKGEpOmIuSC5wdXNoKGEpKX07dmFyIFhCPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1XQixlO2lmKChlPWQuSCk9PW51bGx8fCFlLk9yKXt2YXIgZj1PYmplY3Qua2V5cyhiKS5sZW5ndGg+MD8yOjEsZyxoLGw9KGM9PW51bGw/dm9pZCAwOihoPWMub3JpZ2luYXRpbmdFbnRpdHkpPT1udWxsP3ZvaWQgMDpoLm9yaWdpbkNvbnRhaW5lcklkKXx8IiI7Zz1sP1NiKGwsIkdUTS0iKT8zOjI6MTtpZighYSlkLkg9e3R5cGU6Zixzb3VyY2U6ZyxwYXJhbXM6Yn07ZWxzZSBpZihkLkgpe1AoMTg0KTt2YXIgbj0hMTtkLkguc291cmNlPT09Z3x8ZC5ILnNvdXJjZSE9PTMmJmchPT0zfHwoVW0oImlkY3MiLCIxIiksbj0hMCk7ZC5ILnR5cGUhPT0yJiZmIT09Mnx8UCgxODYpO3ZhciBwO2lmKHA9ZC5ILnR5cGU9PT0yJiZmPT09MilhOnt2YXIgcT1kLkgucGFyYW1zLHI9T2JqZWN0LmtleXMocSksdD1PYmplY3Qua2V5cyhiKTtpZihyLmxlbmd0aCE9PXQubGVuZ3RoKXA9ITA7ZWxzZXtmb3IodmFyIHU9bShyKSx2PXUubmV4dCgpOyF2LmRvbmU7dj0KdS5uZXh0KCkpe3ZhciB4PXYudmFsdWU7aWYoIWIuaGFzT3duUHJvcGVydHkoeCl8fHFbeF0hPT1iW3hdKXtwPSEwO2JyZWFrIGF9fXA9ITF9fXAmJihVbSgiaWRjYyIsIjEiKSxuPSEwKTtuJiYodG8oKSxkLkguT3I9ITApfX19LFdCPW5ldyBmdW5jdGlvbigpe3RoaXMuSD12b2lkIDB9O3ZhciBaQj1mdW5jdGlvbihhKXt2YXIgYj1ZQjsoIWZuLkt8fFNiKEUoNSksIkdUTS0iKT8wOmE9PT12b2lkIDApJiZiLkg9PT0wJiYoVW0oIm1jYyIsIjEiKSxiLkg9MSl9LFlCPW5ldyBmdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5IPTA7VW0oIm5jYyIsZnVuY3Rpb24oKXtpZihJZig0NSkmJmEuSCE9PTIpcmV0dXJuIjEifSl9O3ZhciAkQj0vXig/OkFXfERDfEd8R0Z8R1R8SEF8TUN8VUEpJC8sYUM9L1xzLzsKZnVuY3Rpb24gYkMoYSxiKXtpZih6YihhKSl7YT1MYihhKTt2YXIgYz1hLmluZGV4T2YoIi0iKTtpZighKGM8MCkpe3ZhciBkPWEuc3Vic3RyaW5nKDAsYyk7aWYoJEIudGVzdChkKSl7dmFyIGU9YS5zdWJzdHJpbmcoYysxKSxmO2lmKGIpe3ZhciBnPWZ1bmN0aW9uKG4pe3ZhciBwPW4uaW5kZXhPZigiLyIpO3JldHVybiBwPDA/W25dOltuLnN1YnN0cmluZygwLHApLG4uc3Vic3RyaW5nKHArMSldfTtmPWcoZSk7aWYoZD09PSJEQyImJmYubGVuZ3RoPT09Mil7dmFyIGg9ZyhmWzFdKTtoLmxlbmd0aD09PTImJihmWzFdPWhbMF0sZi5wdXNoKGhbMV0pKX19ZWxzZXtmPWUuc3BsaXQoIi8iKTtmb3IodmFyIGw9MDtsPGYubGVuZ3RoO2wrKylpZighZltsXXx8YUMudGVzdChmW2xdKSYmKGQhPT0iQVcifHxsIT09MSkpcmV0dXJufXJldHVybntpZDphLHByZWZpeDpkLGRlc3RpbmF0aW9uSWQ6ZCsiLSIrZlswXSxpZHM6ZixKYzpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlkIT09dGhpcy5kZXN0aW5hdGlvbklkfX19fX19CmZ1bmN0aW9uIGNDKGEsYil7Zm9yKHZhciBjPXt9LGQ9MDtkPGEubGVuZ3RoOysrZCl7dmFyIGU9YkMoYVtkXSxiKTtlJiYoY1tlLmlkXT1lKX12YXIgZj1bXSxnO2ZvcihnIGluIGMpaWYoYy5oYXNPd25Qcm9wZXJ0eShnKSl7dmFyIGg9Y1tnXTtoLnByZWZpeD09PSJBVyImJmguaWRzW2RDWzFdXSYmZi5wdXNoKGguZGVzdGluYXRpb25JZCl9Zm9yKHZhciBsPTA7bDxmLmxlbmd0aDsrK2wpZGVsZXRlIGNbZltsXV07Zm9yKHZhciBuPVtdLHA9bShPYmplY3Qua2V5cyhjKSkscT1wLm5leHQoKTshcS5kb25lO3E9cC5uZXh0KCkpbi5wdXNoKGNbcS52YWx1ZV0pO3JldHVybiBufXZhciBlQz17fSxkQz0oZUNbMF09MCxlQ1sxXT0xLGVDWzJdPTIsZUNbM109MCxlQ1s0XT0xLGVDWzVdPTAsZUNbNl09MCxlQ1s3XT0wLGVDKTt2YXIgZkM9e2luaXRpYWxpemVkOjExLGNvbXBsZXRlOjEyLGludGVyYWN0aXZlOjEzfSxnQz17fSxoQz1PYmplY3QuZnJlZXplKChnQ1tGLkQuVGRdPSEwLGdDKSksaUM9ZnVuY3Rpb24oKXt0aGlzLlI9TmYoMzQsNTAwKTt0aGlzLkg9e307dGhpcy5OPXt9O3RoaXMuSz12b2lkIDB9LGpDPWZ1bmN0aW9uKGEsYixjKXtpZihjLmxlbmd0aCYmZm4uSyl7dmFyIGQ7KGQ9YS5IKVtiXSE9bnVsbHx8KGRbYl09W10pO3ZhciBlOyhlPWEuTilbYl0hPW51bGx8fChlW2JdPVtdKTt2YXIgZj1jLmZpbHRlcihmdW5jdGlvbihnKXtyZXR1cm4hYS5OW2JdLmluY2x1ZGVzKGcpfSk7YS5IW2JdLnB1c2guYXBwbHkoYS5IW2JdLHcoZikpO2EuTltiXS5wdXNoLmFwcGx5KGEuTltiXSx3KGYpKTshYS5LJiZmLmxlbmd0aD4wJiYoVm0oInRkYyIsITApLGEuSz1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0bygpO2EuSD17fTthLks9dm9pZCAwfSxhLlIpKX19OwppQy5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7VW0oInRkYyIsZnVuY3Rpb24oKXthLksmJihBLmNsZWFyVGltZW91dChhLkspLGEuSz12b2lkIDApO3ZhciBiPVtdLGM7Zm9yKGMgaW4gYS5IKWEuSC5oYXNPd25Qcm9wZXJ0eShjKSYmYi5wdXNoKGMrIioiK2EuSFtjXS5qb2luKCIuIikpO3JldHVybiBiLmxlbmd0aD9iLmpvaW4oIiEiKTp2b2lkIDB9LCExKX07CnZhciBrQz1mdW5jdGlvbihhLGIpe3ZhciBjPXt9LGQ7Zm9yKGQgaW4gYiliLmhhc093blByb3BlcnR5KGQpJiYoY1tkXT0hMCk7Zm9yKHZhciBlIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShlKSYmKGNbZV09ITApO3JldHVybiBjfSxsQz1mdW5jdGlvbihhLGIsYyxkLGUpe2Q9ZD09PXZvaWQgMD97fTpkO2U9ZT09PXZvaWQgMD8iIjplO2lmKGI9PT1jKXJldHVybltdO3ZhciBmPWZ1bmN0aW9uKHQsdSl7dmFyIHY7QWQodSk9PT0ib2JqZWN0Ij92PXVbdF06QWQodSk9PT0iYXJyYXkiJiYodj11W3RdKTtyZXR1cm4gdj09PXZvaWQgMD9oQ1t0XTp2fSxnPWtDKGIsYyksaDtmb3IoaCBpbiBnKWlmKGcuaGFzT3duUHJvcGVydHkoaCkmJmghPT1GLkQuWGIpe3ZhciBsPShlP2UrIi4iOiIiKStoLG49ZihoLGIpLHA9ZihoLGMpLHE9QWQobik9PT0ib2JqZWN0Inx8QWQobik9PT0iYXJyYXkiLHI9QWQocCk9PT0ib2JqZWN0Inx8QWQocCk9PT0iYXJyYXkiO2lmKHEmJnIpbEMoYSxuLHAsZCxsKTsKZWxzZSBpZihxfHxyfHxuIT09cClkW2xdPSEwfXJldHVybiBPYmplY3Qua2V5cyhkKX0sbUM9bmV3IGlDO3ZhciBuQz1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLks9TmIoKTt0aGlzLkg9Yjt0aGlzLmFyZ3M9Yzt0aGlzLm1lc3NhZ2VDb250ZXh0PWQ7dGhpcy50eXBlPWF9LG9DPWZ1bmN0aW9uKCl7dGhpcy5XYT17fTt0aGlzLmliPXt9O3RoaXMuSz17fTt0aGlzLk49bnVsbDt0aGlzLmhiPXt9O3RoaXMuSD0hMTt0aGlzLnN0YXR1cz0xfTtmdW5jdGlvbiBwQyhhLGIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT9xQygic2V0IixhKTpxQygic2V0IixhLGIpfWZ1bmN0aW9uIHJDKGEsYil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0xP3FDKCJjb25maWciLGEpOnFDKCJjb25maWciLGEsYil9ZnVuY3Rpb24gc0MoYSxiLGMpe2M9Y3x8e307Y1tGLkQuWGJdPWE7cmV0dXJuIHFDKCJldmVudCIsYixjKX1mdW5jdGlvbiBxQygpe3JldHVybiBhcmd1bWVudHN9O3ZhciB0Qz1mdW5jdGlvbihhLGIsYyxkLGUsZixnLGgsbCxuLHAscSxyKXt0aGlzLmV2ZW50SWQ9YTt0aGlzLnByaW9yaXR5SWQ9Yjt0aGlzLnByaW9yaXR5UXVldWU9Yzt0aGlzLkVhPWQ7dGhpcy5XYT1lO3RoaXMuaGI9Zjt0aGlzLkhjPWc7dGhpcy5CZz1oO3RoaXMuaWI9bDt0aGlzLmV2ZW50TWV0YWRhdGE9bjt0aGlzLm9uU3VjY2Vzcz1wO3RoaXMub25GYWlsdXJlPXE7dGhpcy5pc0d0bUV2ZW50PXJ9LHVDPWZ1bmN0aW9uKGEpe3ZhciBiPXtvblN1Y2Nlc3M6eGIsb25GYWlsdXJlOnhifTtiPWI9PT12b2lkIDA/e306Yjt2YXIgYyxkLGUsZixnLGgsbCxuLHAscSxyLHQsdSx2LHgseSx6LEMsRCxJLEcsTixTLFcsZWEsamE7cmV0dXJuIG5ldyB0Qygodj0oYz1iKT09bnVsbD92b2lkIDA6Yy5ldmVudElkKSE9bnVsbD92OmEuZXZlbnRJZCwoeD0oZD1iKT09bnVsbD92b2lkIDA6ZC5wcmlvcml0eUlkKSE9bnVsbD94OmEucHJpb3JpdHlJZCwoeT0oZT1iKT09bnVsbD92b2lkIDA6ZS5wcmlvcml0eVF1ZXVlKSE9Cm51bGw/eTphLnByaW9yaXR5UXVldWUsKHo9KGY9Yik9PW51bGw/dm9pZCAwOmYuRWEpIT1udWxsP3o6YS5FYSwoQz0oZz1iKT09bnVsbD92b2lkIDA6Zy5XYSkhPW51bGw/QzphLldhLChEPShoPWIpPT1udWxsP3ZvaWQgMDpoLmhiKSE9bnVsbD9EOmEuaGIsKEk9KGw9Yik9PW51bGw/dm9pZCAwOmwuSGMpIT1udWxsP0k6YS5IYywoRz0obj1iKT09bnVsbD92b2lkIDA6bi5CZykhPW51bGw/RzphLkJnLChOPShwPWIpPT1udWxsP3ZvaWQgMDpwLmliKSE9bnVsbD9OOmEuaWIsKFM9KHE9Yik9PW51bGw/dm9pZCAwOnEuZXZlbnRNZXRhZGF0YSkhPW51bGw/UzphLmV2ZW50TWV0YWRhdGEsKFc9KHI9Yik9PW51bGw/dm9pZCAwOnIub25TdWNjZXNzKSE9bnVsbD9XOmEub25TdWNjZXNzLChlYT0odD1iKT09bnVsbD92b2lkIDA6dC5vbkZhaWx1cmUpIT1udWxsP2VhOmEub25GYWlsdXJlLChqYT0odT1iKT09bnVsbD92b2lkIDA6dS5pc0d0bUV2ZW50KSE9bnVsbD9qYTphLmlzR3RtRXZlbnQpfSwKdkM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtzd2l0Y2goYil7Y2FzZSAzOmMucHVzaChhLkVhKTtjLnB1c2goYS5XYSk7Yy5wdXNoKGEuaGIpO2MucHVzaChhLkhjKTtjLnB1c2goYS5pYik7YnJlYWs7Y2FzZSAyOmMucHVzaChhLkVhKTticmVhaztjYXNlIDE6Yy5wdXNoKGEuV2EpO2MucHVzaChhLmhiKTtjLnB1c2goYS5IYyk7Yy5wdXNoKGEuaWIpO2JyZWFrO2Nhc2UgNDpjLnB1c2goYS5FYSksYy5wdXNoKGEuV2EpLGMucHVzaChhLmhiKSxjLnB1c2goYS5IYyl9cmV0dXJuIGN9LE89ZnVuY3Rpb24oYSxiLGMsZCl7Zm9yKHZhciBlPW0odkMoYSxkPT09dm9pZCAwPzM6ZCkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO2lmKGdbYl0hPT12b2lkIDApcmV0dXJuIGdbYl19cmV0dXJuIGN9LHdDPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj17fSxjPXZDKGEsNCksZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKWZvcih2YXIgZj1PYmplY3Qua2V5cyhlLnZhbHVlKSwKZz1tKGYpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKWJbaC52YWx1ZV09MTtyZXR1cm4gT2JqZWN0LmtleXMoYil9O3RDLnByb3RvdHlwZS5nZXRNZXJnZWRWYWx1ZXM9ZnVuY3Rpb24oYSxiLGMpe2I9Yj09PXZvaWQgMD8zOmI7dmFyIGQ9e30sZT0hMSxmPWZ1bmN0aW9uKG4pe0NkKG4pJiZHYihuLGZ1bmN0aW9uKHAscSl7ZT0hMDtkW3BdPXF9KX07YyYmZihjKTt2YXIgZz12Qyh0aGlzLGIpO2cucmV2ZXJzZSgpO2Zvcih2YXIgaD1tKGcpLGw9aC5uZXh0KCk7IWwuZG9uZTtsPWgubmV4dCgpKWYobC52YWx1ZVthXSk7cmV0dXJuIGU/ZDp2b2lkIDB9Owp2YXIgeEM9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtGLkQuS2YsRi5ELkdmLEYuRC5IZixGLkQuSWYsRi5ELkpmLEYuRC5MZixGLkQuTWZdLGM9dkMoYSwzKSxkPW0oYyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe2Zvcih2YXIgZj1lLnZhbHVlLGc9e30saD0hMSxsPW0oYiksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWU7ZltwXSE9PXZvaWQgMCYmKGdbcF09ZltwXSxoPSEwKX12YXIgcT1oP2c6dm9pZCAwO2lmKHEpcmV0dXJuIHF9cmV0dXJue319LHlDPWZ1bmN0aW9uKGEsYixjKXt0aGlzLmV2ZW50SWQ9YTt0aGlzLnByaW9yaXR5SWQ9Yjt0aGlzLnByaW9yaXR5UXVldWU9Yzt0aGlzLkVhPXt9O3RoaXMuV2E9e307dGhpcy5oYj17fTt0aGlzLkhjPXt9O3RoaXMuQmc9e307dGhpcy5pYj17fTt0aGlzLmV2ZW50TWV0YWRhdGE9e307dGhpcy5pc0d0bUV2ZW50PSExO3RoaXMub25TdWNjZXNzPWZ1bmN0aW9uKCl7fTt0aGlzLm9uRmFpbHVyZT0KZnVuY3Rpb24oKXt9fSx6Qz1mdW5jdGlvbihhLGIpe2EuRWE9YjtyZXR1cm4gYX0sQUM9ZnVuY3Rpb24oYSxiKXthLldhPWI7cmV0dXJuIGF9LEJDPWZ1bmN0aW9uKGEsYil7YS5oYj1iO3JldHVybiBhfSxDQz1mdW5jdGlvbihhLGIpe2EuSGM9YjtyZXR1cm4gYX0sREM9ZnVuY3Rpb24oYSxiKXthLkJnPWI7cmV0dXJuIGF9LEVDPWZ1bmN0aW9uKGEsYil7YS5pYj1iO3JldHVybiBhfSxGQz1mdW5jdGlvbihhLGIpe2EuZXZlbnRNZXRhZGF0YT1ifHx7fTtyZXR1cm4gYX0sR0M9ZnVuY3Rpb24oYSxiKXthLm9uU3VjY2Vzcz1iO3JldHVybiBhfSxIQz1mdW5jdGlvbihhLGIpe2Eub25GYWlsdXJlPWI7cmV0dXJuIGF9LElDPWZ1bmN0aW9uKGEsYil7YS5pc0d0bUV2ZW50PWI7cmV0dXJuIGF9LEpDPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgdEMoYS5ldmVudElkLGEucHJpb3JpdHlJZCxhLnByaW9yaXR5UXVldWUsYS5FYSxhLldhLGEuaGIsYS5IYyxhLkJnLGEuaWIsYS5ldmVudE1ldGFkYXRhLAphLm9uU3VjY2VzcyxhLm9uRmFpbHVyZSxhLmlzR3RtRXZlbnQpfTtmdW5jdGlvbiBLQyhhLGIpe0diKGEsZnVuY3Rpb24oYyl7dmFyIGQ7aWYoZD1jLmNoYXJBdCgwKT09PSJfIil7dmFyIGU7YTpzd2l0Y2goYyl7Y2FzZSBGLkQuVmI6Y2FzZSBGLkQuUmY6Y2FzZSBGLkQuc2g6ZT0hMDticmVhayBhO2RlZmF1bHQ6ZT0hMX1kPSFlfWQmJihiJiZiKGMpLGRlbGV0ZSBhW2NdKX0pfTt2YXIgTEM9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD17fTtmeihmdW5jdGlvbihiKXt2YXIgYz1iLmV2ZW50SWQsZD1iLnRmLGU9W10sZj1hLkhbY118fFtdO2YubGVuZ3RoJiZlLnB1c2goWyJlcHIiLGYuam9pbigiLiIpXSk7ZCYmZGVsZXRlIGEuSFtjXTtyZXR1cm4gZX0pfSxOQz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9TUM7Zm4uTiYmYSE9PXZvaWQgMCYmKGQuSFthXT1kLkhbYV18fFtdLGQuSFthXS5wdXNoKGMrYiksZ3ooKSxleihhKSl9LE1DO2Z1bmN0aW9uIE9DKCl7TUN8fChNQz1uZXcgTEMpfTt2YXIgUEM9ZnVuY3Rpb24oKXt0aGlzLmRlc3RpbmF0aW9ucz17fTt0aGlzLkg9e307dGhpcy5jb21tYW5kcz1bXX0sUUM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5kZXN0aW5hdGlvbnNbYi5kZXN0aW5hdGlvbklkXT1hLmRlc3RpbmF0aW9uc1tiLmRlc3RpbmF0aW9uSWRdfHxuZXcgb0N9LFJDPWZ1bmN0aW9uKGEsYixjLGQpe2lmKGQuSCl7dmFyIGU9UUMoYSxkLkgpLGY9ZS5OO2lmKGYpe3ZhciBnPUVkKGMsbnVsbCksaD1FZChlLldhW2QuSC5kZXN0aW5hdGlvbklkXSxudWxsKSxsPUVkKGUuaGIsbnVsbCksbj1FZChlLmliLG51bGwpLHA9RWQoYS5ILG51bGwpLHE9e307aWYoZm4uTil0cnl7cT1FZChyQS5ILG51bGwpfWNhdGNoKHgpe1AoNzIpfXZhciByPWQuSC5wcmVmaXgsdD1mdW5jdGlvbih4KXt2YXIgeT1kLm1lc3NhZ2VDb250ZXh0LmV2ZW50SWQ7T0MoKTtOQyh5LHIseCl9LHU9SkMoSUMoSEMoR0MoRkMoREMoQ0MoRUMoQkMoQUMoekMobmV3IHlDKGQubWVzc2FnZUNvbnRleHQuZXZlbnRJZCwKZC5tZXNzYWdlQ29udGV4dC5wcmlvcml0eUlkLGQubWVzc2FnZUNvbnRleHQucHJpb3JpdHlRdWV1ZSksZyksaCksbCksbikscCkscSksZC5tZXNzYWdlQ29udGV4dC5ldmVudE1ldGFkYXRhKSxmdW5jdGlvbigpe2lmKHQpe3ZhciB4PXQ7dD12b2lkIDA7eCgiMiIpO2lmKGQubWVzc2FnZUNvbnRleHQub25TdWNjZXNzKWQubWVzc2FnZUNvbnRleHQub25TdWNjZXNzKCl9fSksZnVuY3Rpb24oKXtpZih0KXt2YXIgeD10O3Q9dm9pZCAwO3goIjMiKTtpZihkLm1lc3NhZ2VDb250ZXh0Lm9uRmFpbHVyZSlkLm1lc3NhZ2VDb250ZXh0Lm9uRmFpbHVyZSgpfX0pLCEhZC5tZXNzYWdlQ29udGV4dC5pc0d0bUV2ZW50KSksdj1mdW5jdGlvbigpe3RyeXt2YXIgeD1kLm1lc3NhZ2VDb250ZXh0LmV2ZW50SWQ7T0MoKTtOQyh4LHIsIjEiKTt2YXIgeT1kLkguaWQsej1tQztpZihmbi5LJiZiPT09Ri5ELndhKXt2YXIgQyxEPShDPWJDKHkpKT09bnVsbD92b2lkIDA6Qy5pZHM7aWYoIShEJiZELmxlbmd0aD4KMSkpe3ZhciBJPXUuRWFbRi5ELlhiXTtpZighSXx8ST09PXkpe3ZhciBHLE49TWMoImdvb2dsZV90YWdfZGF0YSIse30pO04udGR8fChOLnRkPXt9KTtHPU4udGQ7dmFyIFM9RWQodS5IYyxudWxsKTtFZCh1LkVhLFMpO3ZhciBXPVtdLGVhO2ZvcihlYSBpbiBHKUcuaGFzT3duUHJvcGVydHkoZWEpJiZsQyh6LEdbZWFdLFMpLmxlbmd0aCYmVy5wdXNoKGVhKTtXLmxlbmd0aCYmKGpDKHoseSxXKSxzYigiVEFHR0lORyIsZkNbQi5yZWFkeVN0YXRlXXx8MTQpKTtHW3ldPVN9fX1mKGQuSC5pZCxiLGQuSyx1KX1jYXRjaChmYSl7dmFyIGphPWQubWVzc2FnZUNvbnRleHQuZXZlbnRJZDtPQygpO05DKGphLHIsIjQiKX19O2I9PT0iZ3RhZy5nZXQiP3YoKTppbyhlLlIsdil9fX0sU0M9ZnVuY3Rpb24oYSxiKXtpZihiLnR5cGUhPT0icmVxdWlyZSIpe3ZhciBjPXZvaWQgMDtiLnR5cGU9PT0iZXZlbnQiJiYoYz1iLmFyZ3NbMV0pO2lmKGIuSClmb3IodmFyIGQ9UUMoYSxiLkgpLktbYi50eXBlXXx8CltdLGU9MDtlPGQubGVuZ3RoO2UrKylkW2VdKGMpO2Vsc2UgZm9yKHZhciBmIGluIGEuZGVzdGluYXRpb25zKWlmKGEuZGVzdGluYXRpb25zLmhhc093blByb3BlcnR5KGYpKXt2YXIgZz1hLmRlc3RpbmF0aW9uc1tmXTtpZihnJiZnLkspZm9yKHZhciBoPWcuS1tiLnR5cGVdfHxbXSxsPTA7bDxoLmxlbmd0aDtsKyspaFtsXShjKX19fTtQQy5wcm90b3R5cGUucmVnaXN0ZXI9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9UUModGhpcyxhKTtlLnN0YXR1cyE9PTMmJihlLk49YixlLnN0YXR1cz0zLGUuUj1sbyhjKSxUQyh0aGlzLGEsZHx8e30pLHRoaXMuZmx1c2goKSl9OwpQQy5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihhLGIsYyxkKXtjIT09dm9pZCAwJiYoUUModGhpcyxjKS5zdGF0dXM9PT0xJiYoUUModGhpcyxjKS5zdGF0dXM9Mix0aGlzLnB1c2goInJlcXVpcmUiLFt7fV0sYyx7fSkpLFFDKHRoaXMsYykuSCYmKGQuZGVmZXJyYWJsZT0hMSksZC5ldmVudE1ldGFkYXRhfHwoZC5ldmVudE1ldGFkYXRhPXt9KSxkLmV2ZW50TWV0YWRhdGFbSC5KLnNnXXx8KGQuZXZlbnRNZXRhZGF0YVtILkouc2ddPVtjLmRlc3RpbmF0aW9uSWRdKSxkLmV2ZW50TWV0YWRhdGFbSC5KLm1qXXx8KGQuZXZlbnRNZXRhZGF0YVtILkoubWpdPVtjLmlkXSkpO3RoaXMuY29tbWFuZHMucHVzaChuZXcgbkMoYSxjLGIsZCkpO2QuZGVmZXJyYWJsZXx8dGhpcy5mbHVzaCgpfTsKUEMucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj10aGlzLGM9W10sZD0hMSxlPXt9O3RoaXMuY29tbWFuZHMubGVuZ3RoO2U9e1puOnZvaWQgMH0pe3ZhciBmPXRoaXMuY29tbWFuZHNbMF0sZz1mLkg7aWYoZi5tZXNzYWdlQ29udGV4dC5kZWZlcnJhYmxlKSFnfHxRQyh0aGlzLGcpLkg/KGYubWVzc2FnZUNvbnRleHQuZGVmZXJyYWJsZT0hMSx0aGlzLmNvbW1hbmRzLnB1c2goZikpOmMucHVzaChmKSx0aGlzLmNvbW1hbmRzLnNoaWZ0KCk7ZWxzZXtzd2l0Y2goZi50eXBlKXtjYXNlICJyZXF1aXJlIjppZihRQyh0aGlzLGcpLnN0YXR1cyE9PTMmJiFhKXt0aGlzLmNvbW1hbmRzLnB1c2guYXBwbHkodGhpcy5jb21tYW5kcyxjKTtyZXR1cm59YnJlYWs7Y2FzZSAic2V0Ijp2YXIgaD1mLmFyZ3NbMF07S0MoaCk7VUMoaCk7R2IoaCxmdW5jdGlvbih4LHkpe0VkKFZiKHgseSksYi5IKX0pO0h1KGgsITApO2JyZWFrO2Nhc2UgImV2ZW50IjplLlpuPWYuYXJnc1sxXTt2YXIgbD0KVkMoZi5hcmdzWzBdLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7fX0oZSkpLG49bFtGLkQuWGJdO24mJm4hPT1nLmlkfHxIdShsKTtSQyh0aGlzLGUuWm4sbCxmKTticmVhaztjYXNlICJnZXQiOnZhciBwPXt9LHE9KHBbRi5ELlRmXT1mLmFyZ3NbMF0scFtGLkQuU2ZdPWYuYXJnc1sxXSxwKTtSQyh0aGlzLEYuRC5KYixxLGYpO2JyZWFrO2Nhc2UgImNvbnRhaW5lcl9jb25maWciOnZhciByPVFDKHRoaXMsZyksdD1WQyhmLmFyZ3NbMF0sZnVuY3Rpb24oKXt9KTtIdSh0LCEwKTtyLkg9ITA7RWQodCxyLmhiKTtkPSEwO2JyZWFrO2Nhc2UgImRlc3RpbmF0aW9uX2NvbmZpZyI6dmFyIHU9UUModGhpcyxnKSx2PVZDKGYuYXJnc1swXSxmdW5jdGlvbigpe30pO0h1KHYsITApO3UuV2FbZy5pZF18fCh1LldhW2cuaWRdPXt9KTt1Lkg9ITA7RWQodix1LldhW2cuaWRdKTtkPSEwO2JyZWFrO2Nhc2UgInJlc2V0X2NvbnRhaW5lcl9jb25maWciOlFDKHRoaXMsZykuaGI9e307YnJlYWs7CmNhc2UgInJlc2V0X3RhcmdldF9jb25maWciOlFDKHRoaXMsZykuV2FbZy5pZF09e319dGhpcy5jb21tYW5kcy5zaGlmdCgpO1NDKHRoaXMsZil9fXRoaXMuY29tbWFuZHMucHVzaC5hcHBseSh0aGlzLmNvbW1hbmRzLGMpO2QmJnRoaXMuZmx1c2goKX07dmFyIFRDPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1FZChjLG51bGwpO0VkKFFDKGEsYikuaWIsZCk7UUMoYSxiKS5pYj1kfTtmdW5jdGlvbiBWQyhhLGIpe3ZhciBjPXt9O0diKGEsZnVuY3Rpb24oZCxlKXtFZChWYihkLGUpLGMpfSk7S0MoYyxiKTtVQyhjKTtyZXR1cm4gY30KZnVuY3Rpb24gVUMoYSl7aWYoTSg2MDEpJiZCQSgpKXtmb3IodmFyIGI9ITEsYz1tKG5ldyBTZXQoW0YuRC55YyxGLkQuZGRdKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7YVtlXSE9PXZvaWQgMCYmKGI9ITAsZGVsZXRlIGFbZV0pfWImJiFhbCgzNSxmdW5jdGlvbigpe3JldHVybiExfSkmJihaaygzNSwhMCksd2luZG93LmNvbnNvbGUmJndpbmRvdy5jb25zb2xlLmxvZyYmd2luZG93LmNvbnNvbGUubG9nKCJHb29nbGUgVGFnIE1hbmFnZXI6IFNlcnZlci1zaWRlIEdUTSBwYXJhbWV0ZXJzICh0cmFuc3BvcnRfdXJsL3NlcnZlcl9jb250YWluZXJfdXJsKSBhcmUgbm90IHBlcm1pdHRlZCBvbiB0aGlzIGRvbWFpbiBhbmQgaGF2ZSBiZWVuIGlnbm9yZWQuIiksUCgxOTcpKX19O3ZhciBXQz1mdW5jdGlvbigpe3RoaXMuSD1uZXcgUEM7dGhpcy5LPSExfTtXQy5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXt0aGlzLkguZmx1c2goKX07dmFyIFhDO2Z1bmN0aW9uIFlDKCl7WEN8fChYQz1uZXcgV0MpO3JldHVybiBYQ31mdW5jdGlvbiBaQyhhLGIsYyxkKXt2YXIgZT1ZQygpLGY9YkMoYyxkLmlzR3RtRXZlbnQpO2YmJihlLksmJihkLmRlZmVycmFibGU9ITApLGUuSC5wdXNoKCJldmVudCIsW2IsYV0sZixkKSl9ZnVuY3Rpb24gJEMoYSxiLGMsZCl7dmFyIGU9WUMoKSxmPWJDKGMsZC5pc0d0bUV2ZW50KTtmJiZlLkgucHVzaCgiZ2V0IixbYSxiXSxmLGQpfWZ1bmN0aW9uIGFEKGEsYixjKXt2YXIgZD1ZQygpLGU9YkMoYSxjLmlzR3RtRXZlbnQpO2UmJmQuSC5wdXNoKCJjb250YWluZXJfY29uZmlnIixbYl0sZSxjKX0KZnVuY3Rpb24gYkQoYSxiLGMpe3ZhciBkPVlDKCksZT1iQyhhLGMuaXNHdG1FdmVudCk7ZSYmZC5ILnB1c2goImRlc3RpbmF0aW9uX2NvbmZpZyIsW2JdLGUsYyl9ZnVuY3Rpb24gY0QoYSl7dmFyIGI9WUMoKSxjPWJDKGEsITApO2MmJmIuSC5wdXNoKCJyZXNldF9jb250YWluZXJfY29uZmlnIixbXSxjLHt9KX1mdW5jdGlvbiBkRChhKXt2YXIgYj1ZQygpLGM9YkMoYSwhMCk7YyYmYi5ILnB1c2goInJlc2V0X3RhcmdldF9jb25maWciLFtdLGMse30pfWZ1bmN0aW9uIGVEKGEpe3ZhciBiPVlDKCksYz1iQyhhLCEwKTtyZXR1cm4gYz9RQyhiLkgsYykuaWI6e319ZnVuY3Rpb24gZkQoYSl7cmV0dXJuIFlDKCkuSC5IW2FdfWZ1bmN0aW9uIGdEKGEpe3ZhciBiPVlDKCksYz1iQyhhLCEwKTtyZXR1cm4gYz9RQyhiLkgsYykuSDohMX07ZnVuY3Rpb24gaEQoYSxiKXthLmhhc093blByb3BlcnR5KCJndG0udW5pcXVlRXZlbnRJZCIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwiZ3RtLnVuaXF1ZUV2ZW50SWQiLHt2YWx1ZTpyaigpfSk7Yi5ldmVudElkPWFbImd0bS51bmlxdWVFdmVudElkIl07Yi5wcmlvcml0eUlkPWFbImd0bS5wcmlvcml0eUlkIl07cmV0dXJue2V2ZW50SWQ6Yi5ldmVudElkLHByaW9yaXR5SWQ6Yi5wcmlvcml0eUlkfX1mdW5jdGlvbiBpRChhKXtmb3IodmFyIGI9bShbRi5ELmRkLEYuRC55Y10pLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXt2YXIgZD1jLnZhbHVlLGU9YSYmYVtkXXx8ZkQoZCk7aWYoZSlyZXR1cm4gZX19ZnVuY3Rpb24gakQoYSl7cmV0dXJuIWEuaXNHdG1FdmVudHx8YS5ldmVudE1ldGFkYXRhJiZhLmV2ZW50TWV0YWRhdGFbSC5KLkNjXSYmYS5ldmVudE1ldGFkYXRhW0guSi5OYl0hPT12aygpPyExOiEwfTt2YXIga0Q9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPSExfTt2YXIgbEQ9ZnVuY3Rpb24oKXt0aGlzLm1lc3NhZ2VzPVtdO3RoaXMuSD1bXX07bEQucHJvdG90eXBlLmVucXVldWU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubWVzc2FnZXMubGVuZ3RoKzE7YVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1iO2FbImd0bS5wcmlvcml0eUlkIl09ZDt2YXIgZT1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMse2V2ZW50SWQ6Yixwcmlvcml0eUlkOmQsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjohMH0pO2lmKE0oNTk1KSl7dmFyIGY9Yy5wcmlvcml0eVF1ZXVlP1tdLmNvbmNhdCh3KGMucHJpb3JpdHlRdWV1ZSksW2RdKTpbZF07YVsiZ3RtLnByaW9yaXR5UXVldWUiXT1mO2UucHJpb3JpdHlRdWV1ZT1mfXZhciBnPXttZXNzYWdlOmEsbm90QmVmb3JlRXZlbnRJZDpiLHByaW9yaXR5SWQ6ZCxtZXNzYWdlQ29udGV4dDplfTt0aGlzLm1lc3NhZ2VzLnB1c2goZyk7Zm9yKHZhciBoPTA7aDx0aGlzLkgubGVuZ3RoO2grKyl0cnl7dGhpcy5IW2hdKGcpfWNhdGNoKGwpe319OwpsRC5wcm90b3R5cGUubGlzdGVuPWZ1bmN0aW9uKGEpe3RoaXMuSC5wdXNoKGEpfTtsRC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKCl7Zm9yKHZhciBhPXt9LGI9MDtiPHRoaXMubWVzc2FnZXMubGVuZ3RoO2IrKyl7dmFyIGM9dGhpcy5tZXNzYWdlc1tiXSxkPWFbYy5ub3RCZWZvcmVFdmVudElkXTtkfHwoZD1bXSxhW2Mubm90QmVmb3JlRXZlbnRJZF09ZCk7ZC5wdXNoKGMpfXJldHVybiBhfTtsRC5wcm90b3R5cGUucHJ1bmU9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9W10sZD0wO2Q8dGhpcy5tZXNzYWdlcy5sZW5ndGg7ZCsrKXt2YXIgZT10aGlzLm1lc3NhZ2VzW2RdO2Uubm90QmVmb3JlRXZlbnRJZD09PWE/Yi5wdXNoKGUpOmMucHVzaChlKX10aGlzLm1lc3NhZ2VzPWM7cmV0dXJuIGJ9OwpmdW5jdGlvbiBtRChhLGIsYyl7Yy5ldmVudE1ldGFkYXRhPWMuZXZlbnRNZXRhZGF0YXx8e307Yy5ldmVudE1ldGFkYXRhW0guSi5OYl09TSg1NTApP3ZrKCk6RSg2KTtuRCgpLmVucXVldWUoYSxiLGMpfWZ1bmN0aW9uIG5EKCl7cmV0dXJuIGtqKCJtYiIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGxEfSl9O3ZhciBwRD1mdW5jdGlvbihhLGIpe3ZhciBjPW9EO2I9U3RyaW5nKGIpLnNwbGl0KCIsIik7Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWMuTltiW2RdXXx8W107Yy5OW2JbZF1dPWU7ZS5pbmRleE9mKGEpPDAmJmUucHVzaChhKX19LHFEPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPW9ELGQ9W10sZT1bXSxmPXt9LGc9MDtnPGEubGVuZ3RoO2Y9e2xrOnZvaWQgMCxRajp2b2lkIDAsUmo6dm9pZCAwfSxnKyspe3ZhciBoPWFbZ107aWYoaC5pbmRleE9mKCItIik+PTApe2lmKGYubGs9YkMoaCxiKSxmLmxrKXt2YXIgbD10aygpO0NiKGwsZnVuY3Rpb24oeCl7cmV0dXJuIGZ1bmN0aW9uKHkpe3JldHVybiB4LmxrLmRlc3RpbmF0aW9uSWQ9PT15fX0oZikpP2QucHVzaChoKTplLnB1c2goaCl9fWVsc2V7aWYoTSg1NTApKXt2YXIgbj1jLktbaF18fFtdO2YuUmo9e307bi5mb3JFYWNoKGZ1bmN0aW9uKHgpe3JldHVybiBmdW5jdGlvbih5KXt4LlJqW3ldPSEwfX0oZikpO2Zvcih2YXIgcD0KdGsoKSxxPTA7cTxwLmxlbmd0aDtxKyspZi5SaltwW3FdXSYmZC5wdXNoKHBbcV0pfWVsc2V7dmFyIHI9Yy5IW2hdfHxbXTtmLlFqPXt9O3IuZm9yRWFjaChmdW5jdGlvbih4KXtyZXR1cm4gZnVuY3Rpb24oeSl7eC5Ralt5XT0hMH19KGYpKTtmb3IodmFyIHQ9d2soKSx1PTA7dTx0Lmxlbmd0aDt1KyspaWYoZi5Ralt0W3VdXSl7ZD1kLmNvbmNhdCh0aygpKTticmVha319dmFyIHY9Yy5OW2hdfHxbXTt2Lmxlbmd0aCYmKGQ9ZC5jb25jYXQodikpfX1yZXR1cm57ZWs6ZCxQczplfX0sckQ9ZnVuY3Rpb24oYSl7R2Iob0QuSCxmdW5jdGlvbihiLGMpe3ZhciBkPWMuaW5kZXhPZihhKTtkPj0wJiZjLnNwbGljZShkLDEpfSl9LHNEPWZ1bmN0aW9uKGEpe0diKG9ELkssZnVuY3Rpb24oYixjKXt2YXIgZD1jLmluZGV4T2YoYSk7ZD49MCYmYy5zcGxpY2UoZCwxKX0pfSx0RD1mdW5jdGlvbihhKXtHYihvRC5OLGZ1bmN0aW9uKGIsYyl7dmFyIGQ9Yy5pbmRleE9mKGEpO2Q+PTAmJmMuc3BsaWNlKGQsCjEpfSl9LG9EPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fTt0aGlzLk49e307dGhpcy5LPXt9fTtmdW5jdGlvbiB1RChhLGIsYyl7dmFyIGQ9RWQoYSxudWxsKTtkLmV2ZW50SWQ9dm9pZCAwO2QuaW5oZXJpdFBhcmVudENvbmZpZz12b2lkIDA7T2JqZWN0LmtleXMoYikuc29tZShmdW5jdGlvbihmKXtyZXR1cm4gYltmXSE9PXZvaWQgMH0pJiZQKDEzNik7dmFyIGU9RWQoYixudWxsKTtFZChjLGUpO21EKHJDKHdrKClbMF0sZSksYS5ldmVudElkLGQpfQpmdW5jdGlvbiB2RChhLGIsYyxkKXt2YXIgZT17fSxmPShlW0YuRC5VYl09Ri5ELndhLGVbImd0bS5jb25maWdDb250YWluZXJJZCJdPWEuaWQsZVsiZ3RtLmNvbmZpZ1BhcmFtZXRlcnMiXT1iLGVbImd0bS51bmlxdWVFdmVudElkIl09ZC5ldmVudElkLGUpO2MucHJpb3JpdHlRdWV1ZSYmKGZbImd0bS5wcmlvcml0eVF1ZXVlIl09Yy5wcmlvcml0eVF1ZXVlKTtjLmV2ZW50TWV0YWRhdGEmJihmWyJndG0uZXZlbnRNZXRhZGF0YSJdPWMuZXZlbnRNZXRhZGF0YSk7YS5KYygpJiYoZlsiZ3RtLmNvbmZpZ0NvbnRhaW5lcklkIl09d2soKVswXSxmWyJndG0ub3JpZ2luYWxDb25maWdUYXJnZXRJZCJdPWEuaWQpO3JldHVybiBmfWZ1bmN0aW9uIHdEKGEsYixjKXtpZihJZigxMSkmJiFjJiYhYVtGLkQuVmRdKXt2YXIgZD1hbCgxMCxmdW5jdGlvbigpe3JldHVybiExfSk7WmsoMTAsITApO1hCKGQsYSxiKTtpZihkKXJldHVybiEwfXJldHVybiExfTtmdW5jdGlvbiB4RChhLGIpe3ZhciBjPXt9LGQ9KGMuZXZlbnQ9YSxjKTtiJiYoZC5ldmVudE1vZGVsPUVkKGIsbnVsbCksYltGLkQuUGZdJiYoZC5ldmVudENhbGxiYWNrPWJbRi5ELlBmXSksYltGLkQucGhdJiYoZC5ldmVudFRpbWVvdXQ9YltGLkQucGhdKSk7cmV0dXJuIGR9CmZ1bmN0aW9uIHlEKGEsYil7dmFyIGM9YSYmYVtGLkQuWGJdO2M9PT12b2lkIDAmJihjPXVBKEYuRC5YYiwyKSxjPT09dm9pZCAwJiYoYz0iZGVmYXVsdCIpKTtpZih6YihjKXx8QXJyYXkuaXNBcnJheShjKSl7dmFyIGQ7ZD1iLmlzR3RtRXZlbnQ/emIoYyk/W2NdOmM6Yy50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKS5zcGxpdCgiLCIpO3ZhciBlPXFEKGQsYi5pc0d0bUV2ZW50KSxmPWUuZWssZz1lLlBzO2lmKGcubGVuZ3RoKWZvcih2YXIgaD1pRChhKSxsPTA7bDxnLmxlbmd0aDtsKyspe3ZhciBuPWJDKGdbbF0sYi5pc0d0bUV2ZW50KTtpZihuKXt2YXIgcD1uLmRlc3RpbmF0aW9uSWQscT12b2lkIDA7KChxPW5rKG4uZGVzdGluYXRpb25JZCkpPT1udWxsP3ZvaWQgMDpxLnN0YXRlKT09PTB8fG5BKHAsaCx7c291cmNlOjMsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjpiLmZyb21Db250YWluZXJFeGVjdXRpb259KX19dmFyIHI9Zi5jb25jYXQoZyk7cmV0dXJue2VrOmNDKGYsYi5pc0d0bUV2ZW50KSwKbXI6Y0MocixiLmlzR3RtRXZlbnQpfX19O3ZhciB6RD17fSxBRD0oekQuY29uZmlnPWZ1bmN0aW9uKGEsYil7dmFyIGM9aEQoYSxiKSxkO2E6e2lmKCEoYS5sZW5ndGg8MikmJnpiKGFbMV0pKXt2YXIgZT17fTtpZihhLmxlbmd0aD4yKXtpZihhWzJdIT09dm9pZCAwJiYhQ2QoYVsyXSl8fGEubGVuZ3RoPjMpe2Q9dm9pZCAwO2JyZWFrIGF9ZT1hWzJdfXZhciBmPWJDKGFbMV0sYi5pc0d0bUV2ZW50KTtpZihmKXtkPXt0YXJnZXQ6ZixwYXJhbXM6ZX07YnJlYWsgYX19ZD12b2lkIDB9dmFyIGc9ZDtpZihnKXt2YXIgaD1nLnRhcmdldCxsPWcucGFyYW1zLG47YTp7aWYoIUlmKDcpKXt2YXIgcD15ayh6aygpKTtpZihNayhwKSl7dmFyIHE9cC5wYXJlbnQscj1xLmlzRGVzdGluYXRpb247bj17VnM6eWsocSksTXM6cn07YnJlYWsgYX19bj12b2lkIDB9dmFyIHQ9bix1PXQ9PW51bGw/dm9pZCAwOnQuVnMsdj10PT1udWxsP3ZvaWQgMDp0Lk1zO2RCKGMuZXZlbnRJZCwiZ3RhZy5jb25maWciKTt2YXIgeCx5PWguZGVzdGluYXRpb25JZDsKaWYoaC5KYygpP3RrKCkuaW5kZXhPZih5KSE9PS0xOndrKCkuaW5kZXhPZih5KSE9PS0xKWE6e2lmKHUmJihQKDEyOCksdiYmUCgxMzApLGIuaW5oZXJpdFBhcmVudENvbmZpZykpe3ZhciB6O3ZhciBDPSRrKDEyKTtpZihDKXVEKGIsQyxsKSx6PSExO2Vsc2V7dmFyIEQ9JGsoMTEpOyFsW0YuRC5WZF0mJihNKDU1MCl8fElmKDExKSkmJkR8fFprKDExLEVkKGwsbnVsbCkpO3o9ITB9eiYmdS5jb250YWluZXJzJiZ1LmNvbnRhaW5lcnMuam9pbigiLCIpO3g9dm9pZCAwO2JyZWFrIGF9dmFyIEk9IUlmKDQ1KSxHPSFTYihoLmlkLCJHVE0tIik7SSYmRyYmKE9iamVjdC5rZXlzKGwpLmxlbmd0aD09PTA/R3UoVC5XLlNrKTpHdShULlcuVGspLEVsKCkmJkd1KFQuVy5SayksJGsoMzEpJiZHdShULlcuVWspKTt2YXIgTj1ZQjtmbi5LJiYoTi5IPT09MSYmKFFtLkgubWNjPSExKSxOLkg9Mik7aWYoTSg1NTApfHwhd0QobCxiLGguSmMoKSkpe2tELkh8fFAoNDMpO2lmKCFNKDU1MCkpe2lmKCFiLm5vVGFyZ2V0R3JvdXApe3ZhciBTPQpoLmlkO2lmKGguSmMoKSl0RChTKSxwRChTLGxbRi5ELk9kXXx8ImRlZmF1bHQiKTtlbHNle3JEKFMpO3ZhciBXPWxbRi5ELk9kXXx8ImRlZmF1bHQiLGVhPW9EO1c9Vy50b1N0cmluZygpLnNwbGl0KCIsIik7Zm9yKHZhciBqYT0wO2phPFcubGVuZ3RoO2phKyspe3ZhciBmYT1lYS5IW1dbamFdXXx8W107ZWEuSFtXW2phXV09ZmE7ZmEuaW5kZXhPZihTKTwwJiZmYS5wdXNoKFMpfX19ZGVsZXRlIGxbRi5ELk9kXX12YXIgc2E9Yi5ldmVudE1ldGFkYXRhfHx7fTtzYS5oYXNPd25Qcm9wZXJ0eShILkouYWUpfHwoc2FbSC5KLmFlXT0hYi5mcm9tQ29udGFpbmVyRXhlY3V0aW9uKTtiLmV2ZW50TWV0YWRhdGE9c2E7ZGVsZXRlIGxbRi5ELlBmXTtpZihNKDU1MCkpe3g9dkQoaCxsLGIsYyk7YnJlYWsgYX12YXIgZGE9ISFsW0YuRC5WZF07ZGVsZXRlIGxbRi5ELlZkXTt2YXIgbWE9dGsoKSxQYT1jRCxGYT1hRDtoLkpjKCkmJihtYT1baC5pZF0sUGE9ZEQsRmE9YkQpO2Zvcih2YXIgcWE9MDtxYTwKbWEubGVuZ3RoO3FhKyspe2RhfHxQYShtYVtxYV0pO3ZhciBpYj1nRChtYVtxYV0pO0ZhKG1hW3FhXSxFZChsLG51bGwpLEVkKGIsbnVsbCkpO2liJiZkYXx8WkMoRi5ELndhLEVkKGwsbnVsbCksbWFbcWFdLEVkKGIsbnVsbCkpfX14PXZvaWQgMH1lbHNlIGE6e2lmKCFiLmluaGVyaXRQYXJlbnRDb25maWcmJiFsW0YuRC5aY10pe3ZhciBYYj1pRChsKSxMYz1oLmRlc3RpbmF0aW9uSWQ7aWYoaC5KYygpKW5BKExjLFhiLHtzb3VyY2U6Mixmcm9tQ29udGFpbmVyRXhlY3V0aW9uOmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbn0pO2Vsc2UgaWYodSE9PXZvaWQgMCYmdS5jb250YWluZXJzLmluZGV4T2YoTGMpIT09LTEpe3ZhciBRZD0kaygxMSksWWM9JGsoMTIpO1FkP3VEKGIsbCxRZCk6WWN8fFprKDEyLEVkKGwsbnVsbCkpfWVsc2UgaWYoaEEoTGMsWGIsITAse3NvdXJjZToyLGZyb21Db250YWluZXJFeGVjdXRpb246Yi5mcm9tQ29udGFpbmVyRXhlY3V0aW9ufSksTSg1NTApKXt4PXZEKGgsCmwsYixjKTticmVhayBhfX14PXZvaWQgMH1yZXR1cm4geH19LHpELmNvbnNlbnQ9ZnVuY3Rpb24oYSxiKXtpZihhLmxlbmd0aD09PTMpe1AoMzkpO3ZhciBjPWhEKGEsYiksZD1hWzFdLGU9e30sZj1PbyhhWzJdKSxnO2ZvcihnIGluIGYpaWYoZi5oYXNPd25Qcm9wZXJ0eShnKSl7dmFyIGg9ZltnXTtlW2ddPWc9PT1GLkQuWWc/QXJyYXkuaXNBcnJheShoKT9OYU46TnVtYmVyKGgpOmc9PT1GLkQubmM/KEFycmF5LmlzQXJyYXkoaCk/aDpbaF0pLm1hcChQbyk6UW8oaCl9Yi5mcm9tQ29udGFpbmVyRXhlY3V0aW9ufHwoZVtGLkQubWFdJiZQKDEzOSksZVtGLkQuWGFdJiZQKDE0MCkpO2Q9PT0iZGVmYXVsdCI/VG8oZSk6ZD09PSJ1cGRhdGUiP1ZvKGUsYyk6ZD09PSJkZWNsYXJlIiYmYi5mcm9tQ29udGFpbmVyRXhlY3V0aW9uJiZTbyhlKX19LHpELmNvbnRhaW5lcl9jb25maWc9ZnVuY3Rpb24oYSxiKXtpZihqRChiKSYmYS5sZW5ndGg9PT0zJiZ6YihhWzFdKSYmQ2QoYVsyXSkpe3ZhciBjPQphWzJdLGQ9YkMoYVsxXSwhMCk7ZCYmYUQoZC5kZXN0aW5hdGlvbklkLGMsRWQoYixudWxsKSl9fSx6RC5kZXN0aW5hdGlvbl9jb25maWc9ZnVuY3Rpb24oYSxiKXtpZihqRChiKSYmYS5sZW5ndGg9PT0zJiZ6YihhWzFdKSYmQ2QoYVsyXSkpe3ZhciBjPWFbMl0sZD1iQyhhWzFdLCEwKTtpZihkKXtpZihNKDU1MCkpe2lmKCFiLm5vVGFyZ2V0R3JvdXApe3ZhciBlPWQuaWQ7aWYoZC5KYygpKXREKGUpLHBEKGUsY1tGLkQuT2RdfHwiZGVmYXVsdCIpO2Vsc2V7c0QoZSk7dmFyIGY9Y1tGLkQuT2RdfHwiZGVmYXVsdCIsZz1vRDtmPVN0cmluZyhmKS5zcGxpdCgiLCIpO2Zvcih2YXIgaD0wO2g8Zi5sZW5ndGg7aCsrKXt2YXIgbD1nLktbZltoXV18fFtdO2cuS1tmW2hdXT1sO2wuaW5kZXhPZihlKTwwJiZsLnB1c2goZSl9fX1kZWxldGUgY1tGLkQuT2RdfWJEKGQuaWQsYyxFZChiLG51bGwpKX19fSx6RC5ldmVudD1mdW5jdGlvbihhLGIpe3ZhciBjPWFbMV07aWYoIShhLmxlbmd0aDwyKSYmCnpiKGMpKXt2YXIgZD12b2lkIDA7aWYoYS5sZW5ndGg+Mil7aWYoIUNkKGFbMl0pJiZhWzJdIT09dm9pZCAwfHxhLmxlbmd0aD4zKXJldHVybjtkPWFbMl19dmFyIGU9eEQoYyxkKSxmPWhEKGEsYiksZz1mLmV2ZW50SWQsaD1mLnByaW9yaXR5SWQ7ZVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1nO2gmJihlWyJndG0ucHJpb3JpdHlJZCJdPWgpO2IucHJpb3JpdHlRdWV1ZSYmKGVbImd0bS5wcmlvcml0eVF1ZXVlIl09Yi5wcmlvcml0eVF1ZXVlKTtpZihjPT09Im9wdGltaXplLmNhbGxiYWNrIilyZXR1cm4gZS5ldmVudE1vZGVsPWUuZXZlbnRNb2RlbHx8e30sZTt2YXIgbD15RChkLGIpO2lmKGwpe2Zvcih2YXIgbj1sLmVrLHA9bC5tcixxPXAubWFwKGZ1bmN0aW9uKE4pe3JldHVybiBOLmlkfSkscj1wLm1hcChmdW5jdGlvbihOKXtyZXR1cm4gTi5kZXN0aW5hdGlvbklkfSksdD1uLm1hcChmdW5jdGlvbihOKXtyZXR1cm4gTi5pZH0pLHU9bSh0aygpKSx2PXUubmV4dCgpOyF2LmRvbmU7dj0KdS5uZXh0KCkpe3ZhciB4PXYudmFsdWU7ci5pbmRleE9mKHgpPDAmJnQucHVzaCh4KX1kQihnLGMpO2Zvcih2YXIgeT1tKHQpLHo9eS5uZXh0KCk7IXouZG9uZTt6PXkubmV4dCgpKXt2YXIgQz16LnZhbHVlLEQ9RWQoYixudWxsKSxJPUVkKGQsbnVsbCk7ZGVsZXRlIElbRi5ELlBmXTt2YXIgRz1ELmV2ZW50TWV0YWRhdGF8fHt9O0cuaGFzT3duUHJvcGVydHkoSC5KLmFlKXx8KEdbSC5KLmFlXT0hRC5mcm9tQ29udGFpbmVyRXhlY3V0aW9uKTtHW0guSi5tal09cS5zbGljZSgpO0dbSC5KLnNnXT1yLnNsaWNlKCk7RC5ldmVudE1ldGFkYXRhPUc7WkMoYyxJLEMsRCl9ZS5ldmVudE1vZGVsPWUuZXZlbnRNb2RlbHx8e307cS5sZW5ndGg+MD9lLmV2ZW50TW9kZWxbRi5ELlhiXT1xLmpvaW4oIiwiKTpkZWxldGUgZS5ldmVudE1vZGVsW0YuRC5YYl07a0QuSHx8UCg0Myk7Yi5ub0d0bUV2ZW50PT09dm9pZCAwJiZiLmV2ZW50TWV0YWRhdGEmJmIuZXZlbnRNZXRhZGF0YVtILkouQm5dJiYoYi5ub0d0bUV2ZW50PQohMCk7ZS5ldmVudE1vZGVsW0YuRC5ZY10mJihiLm5vR3RtRXZlbnQ9ITApO3JldHVybiBiLm5vR3RtRXZlbnQ/dm9pZCAwOmV9fX0sekQuZ2V0PWZ1bmN0aW9uKGEsYil7UCg1Myk7aWYoYS5sZW5ndGg9PT00JiZ6YihhWzFdKSYmemIoYVsyXSkmJnliKGFbM10pKXt2YXIgYz1iQyhhWzFdLGIuaXNHdG1FdmVudCksZD1TdHJpbmcoYVsyXSksZT1hWzNdO2lmKGMpe2tELkh8fFAoNDMpO3ZhciBmPWlEKCk7aWYoQ2IodGsoKSxmdW5jdGlvbihoKXtyZXR1cm4gYy5kZXN0aW5hdGlvbklkPT09aH0pKXtoRChhLGIpO3ZhciBnPXt9O0VkKChnW0YuRC5UZl09ZCxnW0YuRC5TZl09ZSxnKSxudWxsKTskQyhkLGZ1bmN0aW9uKGgpe2JkKGZ1bmN0aW9uKCl7ZShoKX0pfSxjLmlkLGIpfWVsc2UgbkEoYy5kZXN0aW5hdGlvbklkLGYse3NvdXJjZTo0LGZyb21Db250YWluZXJFeGVjdXRpb246Yi5mcm9tQ29udGFpbmVyRXhlY3V0aW9ufSl9fX0sekQuanM9ZnVuY3Rpb24oYSxiKXt2YXIgYztpZihhLmxlbmd0aD09PQoyJiZhWzFdLmdldFRpbWUpe2tELkg9ITA7dmFyIGQ9aEQoYSxiKSxlPWQuZXZlbnRJZCxmPWQucHJpb3JpdHlJZCxnPXt9O2M9KGcuZXZlbnQ9Imd0bS5qcyIsZ1siZ3RtLnN0YXJ0Il09YVsxXS5nZXRUaW1lKCksZ1siZ3RtLnVuaXF1ZUV2ZW50SWQiXT1lLGdbImd0bS5wcmlvcml0eUlkIl09ZixnKX1lbHNlIGM9dm9pZCAwO3JldHVybiBjfSx6RC5wb2xpY3k9ZnVuY3Rpb24oYSl7aWYoYS5sZW5ndGg9PT0zJiZ6YihhWzFdKSYmeWIoYVsyXSkpe2lmKGh5KGFbMV0sYVsyXSksUCg3NCksYVsxXT09PSJhbGwiKXtQKDc1KTt2YXIgYj0hMTt0cnl7Yj1hWzJdKEUoNSksInVua25vd24iLHt9KX1jYXRjaChjKXt9Ynx8UCg3Nil9fWVsc2UgUCg3Myl9LHpELnJlc2V0X3RhcmdldF9jb25maWc9ZnVuY3Rpb24oYSxiKXtpZihqRChiKSYmYS5sZW5ndGg9PT0yJiZ6YihhWzFdKSl7dmFyIGM9YkMoYVsxXSwhMCk7YyYmZEQoYy5pZCl9fSx6RC5zZXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz12b2lkIDA7CmEubGVuZ3RoPT09MiYmQ2QoYVsxXSk/Yz1FZChhWzFdLG51bGwpOmEubGVuZ3RoPT09MyYmemIoYVsxXSkmJihjPXt9LENkKGFbMl0pfHxBcnJheS5pc0FycmF5KGFbMl0pP2NbYVsxXV09RWQoYVsyXSxudWxsKTpjW2FbMV1dPWFbMl0pO2lmKGMpe1prKDMxLCEwKTt2YXIgZD1oRChhLGIpLGU9ZC5ldmVudElkLGY9ZC5wcmlvcml0eUlkO0VkKGMsbnVsbCk7RSg1KTt2YXIgZz1FZChjLG51bGwpO1lDKCkuSC5wdXNoKCJzZXQiLFtnXSx2b2lkIDAsYik7Y1siZ3RtLnVuaXF1ZUV2ZW50SWQiXT1lO2YmJihjWyJndG0ucHJpb3JpdHlJZCJdPWYpO2RlbGV0ZSBjLmV2ZW50O2Iub3ZlcndyaXRlTW9kZWxGaWVsZHM9ITA7cmV0dXJuIGN9fSx6RCksQkQ9e30sQ0Q9KEJELnBvbGljeT0hMCxCRCk7dmFyIEVEPWZ1bmN0aW9uKGEpe2lmKEREKGEpKXJldHVybiBhO3RoaXMudmFsdWU9YX07RUQucHJvdG90eXBlLmdldFVudHJ1c3RlZE1lc3NhZ2VWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfTt2YXIgREQ9ZnVuY3Rpb24oYSl7cmV0dXJuIWF8fEFkKGEpIT09Im9iamVjdCJ8fENkKGEpPyExOiJnZXRVbnRydXN0ZWRNZXNzYWdlVmFsdWUiaW4gYX07RUQucHJvdG90eXBlLmdldFVudHJ1c3RlZE1lc3NhZ2VWYWx1ZT1FRC5wcm90b3R5cGUuZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlO3ZhciBGRD17QmI6IjEiLGVlOiIyIixYZDoiMyIsY2U6IjQiLHhmOiI1IixxZzoiNiIsS2g6IjciLHRqOiI4IixsaToiOSIsamo6IjEwIn07CnZhciBHRD1mdW5jdGlvbihhLGIpe2lmKGEpe3ZhciBjPWEudHJpbSgpLnJlcGxhY2VBbGwoL1xzKy9nLCIiKS5yZXBsYWNlQWxsKC8oXGR7Mix9KVwuL2csIiQxIikucmVwbGFjZUFsbCgvLS9nLCIiKS5yZXBsYWNlQWxsKC9cKChcZCspXCkvZywiJDEiKTtpZihiJiZjLm1hdGNoKC9eXCs/XGR7Myw0fSQvKSlyZXR1cm4gYztjLmNoYXJBdCgwKSE9PSIrIiYmKGM9IisiK2MpO2lmKGMubWF0Y2gobmV3IFJlZ0V4cCgiXlxcK1xcZHsiKyhNKDU5Nyk/NzoxMCkrIiwxNX0kIikpKXJldHVybiBjfX0sSUQ9ZnVuY3Rpb24oYSl7aWYoYSl7dmFyIGI9YS50cmltKCk7aWYoSEQudGVzdChiKSlyZXR1cm4gYi50b0xvd2VyQ2FzZSgpLnJlcGxhY2VBbGwoL1stIF0rL2csIiIpfX0sTUQ9ZnVuY3Rpb24oYSl7dmFyIGI9SkQoS0QpKGEpO2lmKGImJiFMRChiKSlyZXR1cm4gYn0sTEQ9ZnVuY3Rpb24oYSl7aWYoIUEubG9jYXRpb24pcmV0dXJuITE7dmFyIGI9TmooQS5sb2NhdGlvbiwiaG9zdCIsITApLApjO2lmKE0oNjAyKSlhOntmb3IodmFyIGQ9Yi5zcGxpdCgiLiIpLGU9YS50b0xvd2VyQ2FzZSgpLGY9MDtmPGQubGVuZ3RoLTE7ZisrKXt2YXIgZz1kLnNsaWNlKGYpLmpvaW4oIi4iKTtpZihlLm1hdGNoKCJAIitnKyIkIikpe2M9ITA7YnJlYWsgYX19Yz0hMX1lbHNlIGM9YS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoYik+PTA7cmV0dXJuIGN9LEpEPWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm1hdGNoKGEpO3JldHVybiBjP2NbMF0udHJpbSgpLnRvTG93ZXJDYXNlKCk6dm9pZCAwfX0sS0Q9L1tBLVowLTkuXyUrLV0rQFtBLVowLTkuLV0rXC5bQS1aXXsyLH0vaSxORD1KRCgvXihbXlx4MDAtXHg0MFx4NWItXHg2MFx4N2ItXHhmZl18Wy4tXXxccykrJC8pLEhEPVJlZ0V4cCgiXig/OltBLVpdezEsMn1cXGRbQS1aXFxkXT9bIC1dP1xcZFtBLVpdezJ9fFtBLVpdXFxkW0EtWl1bIC1dP1xcZFtBLVpdXFxkfFxcZHs0fSA/W0EtWl17Mn18W0EtWl1cXGR7NH1bQS1aXXszfXxcXGR7NX0oPzotXFxkezR9KT98XFxkezV9LVxcZHszfXxcXGR7NH0tXFxkezN9fFxcZHszfS1cXGR7NH18XFxkezJ9LVxcZHszfXxcXGR7M30gP1xcZHsyfXxcXGR7NCw3fSkkIiwKImkiKSxPRD1KRCgvXihbXlx4MDAtXHg0MFx4NWItXHg2MFx4N2ItXHhmZl18Wy4tXXxcc3xcZCkrJC8pOwp2YXIgUEQ9ZnVuY3Rpb24oKXt2YXIgYT1TdHJpbmcoYWwoMzMsZnVuY3Rpb24oKXtyZXR1cm4gMH0pKTthLmluZGV4T2YoIi4iKSE9PS0xJiYoYT1hLnN1YnN0cmluZygwLGEuaW5kZXhPZigiLiIpKzMpKTt2YXIgYj1hbCgzNCxmdW5jdGlvbigpe3JldHVybiAwfSk7cmV0dXJue3Z0Ok51bWJlcihhKSxzdDpifX0sUUQ9ZnVuY3Rpb24oKXtyZXR1cm4gYWwoMzIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE1hcH0pfSxTRD1mdW5jdGlvbihhKXt2YXIgYj1wZCgpfHwwLGM9W0ZELkJiXTtNKDU2OCkmJmMucHVzaChGRC5lZSxGRC5YZCxGRC5jZSxGRC54ZixGRC5xZyxGRC50aixGRC5saSxGRC5qaik7Zm9yKHZhciBkPVJEKGEsbmV3IFNldChjKSksZT1hbCgzMixmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwfSksZj1tKGQpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1nLnZhbHVlO2Uuc2V0KGguRGEsaCl9dmFyIGw9KHBkKCl8fDApLWIsbj1hbCgzMyxmdW5jdGlvbigpe3JldHVybiAwfSk7ClprKDMzLG4rbCk7dmFyIHA9YWwoMzQsZnVuY3Rpb24oKXtyZXR1cm4gMH0pO1prKDM0LHArMSl9LFJEPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPU5mKDM2LDIpLGQ9W10sZT1be29vOmEsZGVwdGg6MH1dO2UubGVuZ3RoPjA7KWZvcih2YXIgZj1lLnNoaWZ0KCksZz1mLm9vLGg9Zi5kZXB0aCxsPW0oT2JqZWN0LmtleXMoZykpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO2lmKCFURC5oYXMocCkpe3ZhciBxPWdbcF07aWYocSlpZihDZChxKSloKzE8PWMmJmUucHVzaCh7b286cSxkZXB0aDpoKzF9KTtlbHNle2Zvcih2YXIgcj1tKGIpLHQ9ci5uZXh0KCk7IXQuZG9uZTt0PXIubmV4dCgpKXt2YXIgdT10LnZhbHVlLHY9VURbdV07aWYodiYmdi5LYy50ZXN0KHApKXt2YXIgeD12Lm5hKFN0cmluZyhxKSk7aWYoeCl7ZC5wdXNoKHtDYTp4LERhOnV9KTtiLmRlbGV0ZSh1KTticmVha319fWlmKGIuc2l6ZT09PTApcmV0dXJuIGR9fX1yZXR1cm4gZH0sVEQ9Cm5ldyBTZXQoWyJpdGVtcyIsImVjb21tZXJjZSJdKSxWRD1SZWdFeHAoInBob25lIiwiaSIpLFdEPVJlZ0V4cCgiZmlyc3RfP25hbWUiLCJpIiksWEQ9UmVnRXhwKCJsYXN0Xz9uYW1lIiwiaSIpLFlEPVJlZ0V4cCgiY291bnRyeSIsImkiKSxaRD1SZWdFeHAoInBvc3R8emlwIiwiaSIpLCREPVJlZ0V4cCgiYWRkcmVzc3xzdHJlZXQiLCJpIiksYUU9UmVnRXhwKCJjaXR5IiwiaSIpLGJFPVJlZ0V4cCgicmVnaW9ufHN0YXRlfHByb3ZpbmNlIiwiaSIpLGNFPXt9LFVEPShjRVtGRC5CYl09e0tjOlJlZ0V4cCgiZW1haWwiLCJpIiksbmE6TUR9LGNFW0ZELmVlXT17S2M6VkQsbmE6ZnVuY3Rpb24oYSl7cmV0dXJuIEdEKGEsITEpfX0sY0VbRkQuWGRdPXtLYzpXRCxuYTpORH0sY0VbRkQuY2VdPXtLYzpYRCxuYTpORH0sY0VbRkQudGpdPXtLYzokRCxuYTpPRH0sY0VbRkQubGldPXtLYzphRSxuYTpORH0sY0VbRkQuampdPXtLYzpiRSxuYTpORH0sY0VbRkQucWddPXtLYzpaRCxuYTpJRH0sY0VbRkQueGZdPQp7S2M6WUQsbmE6TkR9LGNFKTt2YXIgZEU9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMubG9hZGVkPSExO3RoaXMuSD1bXTtpZihCLnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKXRoaXMub25Mb2FkKCk7ZWxzZSAkYyhBLCJsb2FkIixmdW5jdGlvbigpe3JldHVybiB2b2lkIGEub25Mb2FkKCl9KX07ZEUucHJvdG90eXBlLm9uTG9hZD1mdW5jdGlvbigpe2lmKCF0aGlzLmxvYWRlZCl7dGhpcy5sb2FkZWQ9ITA7Zm9yKHZhciBhPTA7YTx0aGlzLkgubGVuZ3RoO2ErKyliZCh0aGlzLkhbYV0pfX07dmFyIGZFPWZ1bmN0aW9uKGEpe3ZhciBiPWVFO2IubG9hZGVkP2JkKGEpOmIuSC5wdXNoKGEpfSxlRT1uZXcgZEU7dmFyIGdFPWZ1bmN0aW9uKCl7dGhpcy5aPTA7dGhpcy5LPXt9O3RoaXMuSD1bXTt0aGlzLk49W107dGhpcy5mYT10aGlzLlI9dGhpcy5qYT0hMX0saUU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWhFO2EuZXZlbnRDYWxsYmFjaz1iO2MmJihhLmV2ZW50VGltZW91dD1jKTtyZXR1cm4gZC5wdXNoKGEpfSxqRT1mdW5jdGlvbihhLGIpe2lmKCFBYihiKXx8YjwwKWI9MDt2YXIgYz1xaigpLGQ9MCxlPSExLGY9dm9pZCAwO2Y9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZXx8KGU9ITAsYSgpKTtmPXZvaWQgMH0sYik7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGc9Yz9jLnN1YnNjcmliZXJzOjE7KytkPT09ZyYmKGYmJihBLmNsZWFyVGltZW91dChmKSxmPXZvaWQgMCksZXx8KGEoKSxlPSEwKSl9fSxsRT1mdW5jdGlvbihhKXt2YXIgYjtpZihhLk4ubGVuZ3RoKWI9YS5OLnNoaWZ0KCk7ZWxzZSBpZihhLkgubGVuZ3RoKWI9YS5ILnNoaWZ0KCk7ZWxzZSByZXR1cm47dmFyIGM7dmFyIGQ9YjtpZihhLmphfHwKIWtFKGQubWVzc2FnZSkpYz1kO2Vsc2V7YS5qYT0hMDt2YXIgZT1kLm1lc3NhZ2VbImd0bS51bmlxdWVFdmVudElkIl0sZixnO3R5cGVvZiBlPT09Im51bWJlciI/KGY9ZS0yLGc9ZS0xKTooZj1yaigpLGc9cmooKSxkLm1lc3NhZ2VbImd0bS51bmlxdWVFdmVudElkIl09cmooKSk7dmFyIGg9e30sbD17bWVzc2FnZTooaC5ldmVudD0iZ3RtLmluaXRfY29uc2VudCIsaFsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1mLGgpLG1lc3NhZ2VDb250ZXh0OntldmVudElkOmZ9fSxuPXt9LHA9e21lc3NhZ2U6KG4uZXZlbnQ9Imd0bS5pbml0IixuWyJndG0udW5pcXVlRXZlbnRJZCJdPWcsbiksbWVzc2FnZUNvbnRleHQ6e2V2ZW50SWQ6Z319O2EuSC51bnNoaWZ0KHAsZCk7Yz1sfXJldHVybiBjfSxvRT1mdW5jdGlvbihhKXthLmZhfHxQKDE5Nik7Zm9yKHZhciBiPSExLGM7IWEuUiYmKGM9bEUoYSkpOyl7YS5SPSEwO3ZhciBkPXJBO2RlbGV0ZSBkLkguZXZlbnRNb2RlbDtvQShkKTt2YXIgZT1jLGY9CmUubWVzc2FnZSxnPWUubWVzc2FnZUNvbnRleHQ7aWYoZj09bnVsbClhLlI9ITE7ZWxzZXtnLmZyb21Db250YWluZXJFeGVjdXRpb24mJnNBKCk7dHJ5e2lmKHliKGYpKXRyeXtmLmNhbGwodEEpfWNhdGNoKFMpe31lbHNlIGlmKEFycmF5LmlzQXJyYXkoZikpe2lmKHpiKGZbMF0pKXt2YXIgaD1mWzBdLnNwbGl0KCIuIiksbD1oLnBvcCgpLG49Zi5zbGljZSgxKSxwPXVBKGguam9pbigiLiIpLDIpO2lmKHAhPW51bGwpdHJ5e3BbbF0uYXBwbHkocCxuKX1jYXRjaChTKXt9fX1lbHNle3ZhciBxPXZvaWQgMDtpZihIYihmKSlhOntpZihmLmxlbmd0aCYmemIoZlswXSkpe3ZhciByPUFEW2ZbMF1dO2lmKHImJighZy5mcm9tQ29udGFpbmVyRXhlY3V0aW9ufHwhQ0RbZlswXV0pKXtxPXIoZixnKTticmVhayBhfX1xPXZvaWQgMH1lbHNlIHE9ZjtpZihxKXt2YXIgdDtmb3IodmFyIHU9cSx2PXUuX2NsZWFyfHxnLm92ZXJ3cml0ZU1vZGVsRmllbGRzLHg9bShPYmplY3Qua2V5cyh1KSkseT14Lm5leHQoKTsheS5kb25lO3k9CngubmV4dCgpKXt2YXIgej15LnZhbHVlO3ohPT0iX2NsZWFyIiYmKHYmJnJBLnNldCh6LHZvaWQgMCksckEuc2V0KHosdVt6XSkpfU0oNTkyKSYmU0QodSk7JGsoMjUpfHxaaygyNSx1WyJndG0uc3RhcnQiXSk7dmFyIEM9dVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXTt1LmV2ZW50Pyh0eXBlb2YgQyE9PSJudW1iZXIiJiYoQz1yaigpLHVbImd0bS51bmlxdWVFdmVudElkIl09QyxyQS5zZXQoImd0bS51bmlxdWVFdmVudElkIixDKSksdD16Qih1KSk6dD0hMTtiPXR8fGJ9fX1maW5hbGx5e2cuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbiYmb0EockEsITApO3ZhciBEPWZbImd0bS51bmlxdWVFdmVudElkIl07aWYodHlwZW9mIEQ9PT0ibnVtYmVyIil7Zm9yKHZhciBJPWEsRz1JLktbU3RyaW5nKEQpXXx8W10sTj0wO048Ry5sZW5ndGg7TisrKUkuTi5wdXNoKG1FKEdbTl0pKTtHLmxlbmd0aCYmSS5OLnNvcnQobkUpO2RlbGV0ZSBJLktbU3RyaW5nKEQpXTtEPmEuWiYmKGEuWj1EKX1hLlI9ITF9fX1yZXR1cm4hYn0sCnBFPWZ1bmN0aW9uKCl7dmFyIGE9aEU7YS5mYSYmUCgxOTUpO2EuZmE9ITA7aWYoZm4uSCl7dmFyIGI9IUlmKDUxKSxjPXJ6KCk7cHooYyx7c3RhZ2U6SXkuWC5aZ30pO2lmKGIpe3ZhciBkPXF6KGMse3N0YWdlOkl5LlguWWt9LEl5LlgubmkpO2QhPT12b2lkIDAmJihjLkguWT1kKX12YXIgZT1hLkgubGVuZ3RoO3J6KCkuSC5DPWV9b0UoYSk7aWYoZm4uSCl7dmFyIGY9cnooKSxnPXF6KGYse3N0YWdlOkl5LlguVmt9LEl5LlguWmcpO2chPT12b2lkIDAmJihmLkguQj1nKX10cnl7dmFyIGg9QVtFKDE5KV0sbD1FKDUpLG49aC5oaWRlO2lmKG4mJm5bbF0hPT12b2lkIDAmJm4uZW5kKXtuW2xdPSExO3ZhciBwPSEwLHE7Zm9yKHEgaW4gbilpZihuLmhhc093blByb3BlcnR5KHEpJiZuW3FdPT09ITApe3A9ITE7YnJlYWt9cCYmKG4uZW5kKCksbi5lbmQ9bnVsbCl9fWNhdGNoKHIpe0UoNSl9fSxxRT1mdW5jdGlvbihhLGIpe2lmKGEuWjxiLm5vdEJlZm9yZUV2ZW50SWQpe3ZhciBjPVN0cmluZyhiLm5vdEJlZm9yZUV2ZW50SWQpOwphLktbY109YS5LW2NdfHxbXTthLktbY10ucHVzaChiKX1lbHNle2EuTi5wdXNoKG1FKGIpKTthLk4uc29ydChuRSk7dmFyIGQ9ZnVuY3Rpb24oKXthLlJ8fG9FKGEpfTtNKDU4MCk/ZGQoZCk6YmQoZCl9fTsKZ0UucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGgpe3ZhciBsPXt9O2lmKEREKGgpKXt2YXIgbj1oO2g9REQobik/bi5nZXRVbnRydXN0ZWRNZXNzYWdlVmFsdWUoKTp2b2lkIDA7bC5mcm9tQ29udGFpbmVyRXhlY3V0aW9uPSEwfXJldHVybnttZXNzYWdlOmgsbWVzc2FnZUNvbnRleHQ6bH19dmFyIGI9dGhpcyxjPU1jKEUoMTkpLFtdKSxkPXBqKCk7ZC5wcnVuZWQ9PT0hMCYmUCg4Myk7dGhpcy5LPW5EKCkuZ2V0KCk7bkQoKS5saXN0ZW4oZnVuY3Rpb24oaCl7cUUoYixoKX0pO2Quc3Vic2NyaWJlcnM9KGQuc3Vic2NyaWJlcnN8fDApKzE7dmFyIGU9Yy5wdXNoLGY9dGhpcztjLnB1c2g9ZnVuY3Rpb24oKXt2YXIgaDtsaigpO2lmKGpqLkguU0FOREJPWEVEX0pTX1NFTUFQSE9SRT4wKXtoPVtdO2Zvcih2YXIgbD0wO2w8YXJndW1lbnRzLmxlbmd0aDtsKyspaFtsXT1uZXcgRUQoYXJndW1lbnRzW2xdKX1lbHNlIGg9W10uc2xpY2UuY2FsbChhcmd1bWVudHMsMCk7CnZhciBuPWgubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBhKHQpfSk7Zi5ILnB1c2guYXBwbHkoZi5ILG4pO3ZhciBwPWUuYXBwbHkoYyxoKSxxPU1hdGgubWF4KDEwMCxOZigxLDMwMCkpO2lmKHRoaXMubGVuZ3RoPnEpZm9yKFAoNCksZC5wcnVuZWQ9ITA7dGhpcy5sZW5ndGg+cTspdGhpcy5zaGlmdCgpO3ZhciByPXR5cGVvZiBwIT09ImJvb2xlYW4ifHxwO3JldHVybiBvRShmKSYmcn07dmFyIGc9Yy5zbGljZSgwKS5tYXAoZnVuY3Rpb24oaCl7cmV0dXJuIGEoaCl9KTt0aGlzLkgucHVzaC5hcHBseSh0aGlzLkgsZyk7SWYoNTEpfHwoZm4uSCYmdXooKSxiZChyRSkpO1ZCKGZ1bmN0aW9uKCl7aWYoIWQuZ3RtRG9tKXtkLmd0bURvbT0hMDt2YXIgaD17fTtjLnB1c2goKGguZXZlbnQ9Imd0bS5kb20iLGgpKX19KTtmRShmdW5jdGlvbigpe2lmKCFkLmd0bUxvYWQpe2QuZ3RtTG9hZD0hMDt2YXIgaD17fTtjLnB1c2goKGguZXZlbnQ9Imd0bS5sb2FkIixoKSl9fSl9OwpnRS5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihhKXtyZXR1cm4gQVtFKDE5KV0ucHVzaChhKX07dmFyIGhFPW5ldyBnRTtmdW5jdGlvbiBuRShhLGIpe3ZhciBjPWEubWVzc2FnZUNvbnRleHQsZD1iLm1lc3NhZ2VDb250ZXh0O2lmKGMuZXZlbnRJZCE9PWQuZXZlbnRJZClyZXR1cm4gYy5ldmVudElkLWQuZXZlbnRJZDtpZighTSg1OTUpKXJldHVybiBjLnByaW9yaXR5SWQtZC5wcmlvcml0eUlkO3ZhciBlLGYsZzthOntmb3IodmFyIGg9KGU9Yy5wcmlvcml0eVF1ZXVlKSE9bnVsbD9lOltjLnByaW9yaXR5SWRdLGw9KGY9ZC5wcmlvcml0eVF1ZXVlKSE9bnVsbD9mOltkLnByaW9yaXR5SWRdLG49TWF0aC5taW4oaC5sZW5ndGgsbC5sZW5ndGgpLHA9MDtwPG47cCsrKWlmKGhbcF0hPT1sW3BdKXtnPWhbcF0tbFtwXTticmVhayBhfWc9aC5sZW5ndGgtbC5sZW5ndGh9cmV0dXJuIGd9CmZ1bmN0aW9uIGtFKGEpe2lmKGE9PW51bGx8fHR5cGVvZiBhIT09Im9iamVjdCIpcmV0dXJuITE7aWYoYS5ldmVudClyZXR1cm4hMDtpZihIYihhKSl7dmFyIGI9YVswXTtpZihiPT09ImNvbmZpZyJ8fGI9PT0iZXZlbnQifHxiPT09ImpzInx8Yj09PSJnZXQiKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIG1FKGEpe3JldHVybnttZXNzYWdlOmEubWVzc2FnZSxtZXNzYWdlQ29udGV4dDphLm1lc3NhZ2VDb250ZXh0fX1mdW5jdGlvbiBzRShhLGIsYyl7cmV0dXJuIGlFKGEsYixjKX1mdW5jdGlvbiB0RShhLGIpe3JldHVybiBqRShhLGIpfWZ1bmN0aW9uIHJFKCl7cEUoKX1mdW5jdGlvbiB1RShhKXtyZXR1cm4gaEUucHVzaChhKX07dmFyIHZFPWZ1bmN0aW9uKCl7fTt2RS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3ZhciBhLGI9UmooQS5sb2NhdGlvbi5ocmVmKTsoYT1iLmhvc3RuYW1lK2IucGF0aG5hbWUpJiZVbSgiZGwiLGVuY29kZVVSSUNvbXBvbmVudChhKSk7dmFyIGM7dmFyIGQ9RSg1KTtpZihkKXt2YXIgZT1JZig3KT8xOjAsZj1GaygpLGc9ZiYmZi5mcm9tQ29udGFpbmVyRXhlY3V0aW9uPzE6MCxoPWYmJmYuc291cmNlfHwwLGw9RSg2KTtjPWQrIjsiK2wrIjsiK2crIjsiK2grIjsiK2V9ZWxzZSBjPXZvaWQgMDt2YXIgbj1jO24mJlVtKCJ0ZHAiLG4pO3ZhciBwPU9wKCEwKTtwIT09dm9pZCAwJiZVbSgiZnJtIixTdHJpbmcocCkpfTt2YXIgd0U9bmV3IHZFO3ZhciB4RT1mdW5jdGlvbigpe3RoaXMuSD1YbSgpO3RoaXMuSz12b2lkIDB9LHlFPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFptKGEsZnVuY3Rpb24oYyl7cmV0dXJuIGMuamI+MD9iP2MuamIrIl8iK1dtKGMpOlN0cmluZyhjLmpiKTp2b2lkIDB9KX07CnhFLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcztpZihwbCgpfHxmbi5LKVVtKCJjc3AiLGZ1bmN0aW9uKCl7dmFyIGI9eUUoYS5ILCEwKTskbShhLkgpO3JldHVybiBifSwhMSksVW0oIm1kZSIsZnVuY3Rpb24oKXt2YXIgYj1jbi5ILGM9eUUoYiwhMSk7JG0oYik7cmV0dXJuIGN9LCExKSxBLmFkZEV2ZW50TGlzdGVuZXIoInNlY3VyaXR5cG9saWN5dmlvbGF0aW9uIixmdW5jdGlvbihiKXtpZihiLmRpc3Bvc2l0aW9uPT09ImVuZm9yY2UiKXtQKDE3OSk7dmFyIGM9bm4oYi5lZmZlY3RpdmVEaXJlY3RpdmUpO2lmKGMpe3ZhciBkO2E6e3ZhciBlPWIuYmxvY2tlZFVSSSxmPWtuO2lmKGZuLksmJmUpe3ZhciBnPWpuKGMsZSk7aWYoZyl7dmFyIGg7ZD0oaD1sbihmLGMpKT09bnVsbD92b2lkIDA6aFtnXTticmVhayBhfX1kPXZvaWQgMH12YXIgbD1kO2lmKGwpe3ZhciBuO2E6e3RyeXt2YXIgcD1uZXcgVVJMKGIuYmxvY2tlZFVSSSkscT1wLnBhdGhuYW1lLmluZGV4T2YoIjsiKTsKbj1xPj0wP3Aub3JpZ2luK3AucGF0aG5hbWUuc3Vic3RyaW5nKDAscSk6cC5vcmlnaW4rcC5wYXRobmFtZTticmVhayBhfWNhdGNoKEQpe31uPXZvaWQgMH12YXIgcj1uO2lmKHIpe2Zvcih2YXIgdD1tKGwpLHU9dC5uZXh0KCk7IXUuZG9uZTt1PXQubmV4dCgpKXt2YXIgdj11LnZhbHVlO2lmKCF2LkVvKXt2LkVvPSEwO3ZhciB4PXtldmVudElkOnYuZXZlbnRJZCxwcmlvcml0eUlkOnYucHJpb3JpdHlJZH07aWYocGwoKSl7dmFyIHk9eCx6PXt0eXBlOjEsYmxvY2tlZFVybDpyLGVuZHBvaW50OnYuZW5kcG9pbnQsdmlvbGF0aW9uOmIuZWZmZWN0aXZlRGlyZWN0aXZlfTtpZihwbCgpKXt2YXIgQz1MbCgiVEFHX0RJQUdOT1NUSUNTIix7ZXZlbnRJZDp5PT1udWxsP3ZvaWQgMDp5LmV2ZW50SWQscHJpb3JpdHlJZDp5PT1udWxsP3ZvaWQgMDp5LnByaW9yaXR5SWR9KTtDLnRhZ0RpYWdub3N0aWNzPXo7b2woQyl9fXpFKGEsdi5kZXN0aW5hdGlvbklkLHYuZW5kcG9pbnQsYyl9fW1uKGMsCmIuYmxvY2tlZFVSSSl9fX19fSl9O3ZhciB6RT1mdW5jdGlvbihhLGIsYyxkKXthbihhLkgsYixjLDEsZCk7Vm0oImNzcCIsITApO1ZtKCJtZGUiLCEwKTtjIT09NjEmJmMhPT01NiYmYS5LPT09dm9pZCAwJiYoYS5LPUEuc2V0VGltZW91dChmdW5jdGlvbigpe2EuSC5qYj4wJiZ0byghMSk7YS5LPXZvaWQgMH0sNTAwKSl9LEFFPW5ldyB4RTt2YXIgQkU9ZnVuY3Rpb24oKXt0aGlzLnNlcXVlbmNlTnVtYmVyPTB9O0JFLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcztDRSh0aGlzKTtJZig2NSkmJlVtKCJtdGJsIiwiMSIpO1VtKCJ2IiwiMyIpO1VtKCJ0IiwidCIpO1VtKCJwaWQiLGZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZyhubShqbS5iYS5iaCkpfSk7VW0oImd0bSIsZnVuY3Rpb24oKXtyZXR1cm4gZHUoKX0pO1VtKCJzZXEiLGZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZygrK2Euc2VxdWVuY2VOdW1iZXIpfSk7VW0oImV4cCIsZnVuY3Rpb24oKXtyZXR1cm4gQ3AoKX0pfTt2YXIgQ0U9ZnVuY3Rpb24oYSl7aWYobm0oam0uYmEuYmgpPT09dm9pZCAwKXt2YXIgYj1mdW5jdGlvbigpe21tKGptLmJhLmJoLERiKCkpO2Euc2VxdWVuY2VOdW1iZXI9MH07YigpO2NkKGIsODY0RTUpfWVsc2UgcG0oam0uYmEuYmgsZnVuY3Rpb24oKXthLnNlcXVlbmNlTnVtYmVyPTB9KTthLnNlcXVlbmNlTnVtYmVyPTB9LERFPW5ldyBCRTtmdW5jdGlvbiBFRShhKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQVthXX19CnZhciBGRT17fSxHRT0oRkVbMTRdPWZ1bmN0aW9uKCl7dmFyIGE7cmV0dXJuKGE9QS5jcnlwdG8pPT1udWxsP3ZvaWQgMDphLmdldFJhbmRvbVZhbHVlc30sRkVbMTVdPWZ1bmN0aW9uKCl7dmFyIGEsYjtyZXR1cm4oYT1BLmNyeXB0byk9PW51bGw/dm9pZCAwOihiPWEuc3VidGxlKT09bnVsbD92b2lkIDA6Yi5kaWdlc3R9LEZFWzFdPUVFKCJmZXRjaCIpLEZFWzZdPUVFKCJNYXAiKSxGRVsyXT1mdW5jdGlvbigpe3JldHVybiBNYXRoLnJhbmRvbX0sRkVbOF09ZnVuY3Rpb24oKXtyZXR1cm4gbmEoT2JqZWN0LCJhc3NpZ24iKX0sRkVbOV09ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmVudHJpZXN9LEZFWzEwXT1mdW5jdGlvbigpe3JldHVybiBPYmplY3QuZnJvbUVudHJpZXN9LEZFWzVdPUVFKCJQcm9taXNlIiksRkVbMTNdPUVFKCJSZWdFeHAiKSxGRVszXT1mdW5jdGlvbigpe3JldHVybiBIYy5zZW5kQmVhY29ufSxGRVs3XT1FRSgiU2V0IiksRkVbMTJdPWZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZy5wcm90b3R5cGUuZW5kc1dpdGh9LApGRVsxMV09ZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nLnByb3RvdHlwZS5zdGFydHNXaXRofSxGRVs0XT1FRSgiWE1MSHR0cFJlcXVlc3QiKSxGRSksSEU9e30sSUU9KEhFWzE1XT0hMCxIRSk7dmFyIE5FPS9eKGh0dHBzPzopP1wvXC8vOwoKZnVuY3Rpb24gaEYoKXt9O2Z1bmN0aW9uIGlGKCl7SWYoNjIpJiYoaHkoImRldGVjdF9saW5rX2NsaWNrX2V2ZW50cyIsZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybigoZD1jLm9wdGlvbnMpPT1udWxsP3ZvaWQgMDpkLndhaXRGb3JUYWdzKSE9PSEwfSksaHkoImRldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4oKGQ9Yy5vcHRpb25zKT09bnVsbD92b2lkIDA6ZC53YWl0Rm9yVGFncykhPT0hMH0pLGh5KCJkZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4oKGQ9Yy5vcHRpb25zKT09bnVsbD92b2lkIDA6ZC5maXhNaXNzaW5nQXBpKSE9PSEwfSkpfTt2YXIgakY9ZnVuY3Rpb24oKXt0aGlzLkg9dGhpcy5ncHBTdHJpbmc9dm9pZCAwfTtqRi5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLkg9dGhpcy5ncHBTdHJpbmc9dm9pZCAwfTt2YXIga0Y9bmV3IGpGO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7WzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7bHQoe0d1OjAsRnU6MSxDdToyLHh1OjMsRHU6NCx5dTo1LEV1OjYsQXU6NyxCdTo4LHd1OjksenU6MTAsSHU6MTF9KS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIE51bWJlcihhKX0pO2x0KHtKdTowLEt1OjEsSXU6Mn0pLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gTnVtYmVyKGEpfSk7dmFyIGxGPWZ1bmN0aW9uKGEsYixjLGQpe3J0LmNhbGwodGhpcyk7dGhpcy5mZT1iO3RoaXMua2Q9Yzt0aGlzLmFjPWQ7dGhpcy5MYT1uZXcgTWFwO3RoaXMuaGU9MDt0aGlzLmphPW5ldyBNYXA7dGhpcy55YT1uZXcgTWFwO3RoaXMuWj12b2lkIDA7dGhpcy5LPWF9O3dhKGxGLHJ0KTtsRi5wcm90b3R5cGUuTj1mdW5jdGlvbigpe2RlbGV0ZSB0aGlzLkg7dGhpcy5MYS5jbGVhcigpO3RoaXMuamEuY2xlYXIoKTt0aGlzLnlhLmNsZWFyKCk7dGhpcy5aJiYobnQodGhpcy5LLCJtZXNzYWdlIix0aGlzLlopLGRlbGV0ZSB0aGlzLlopO2RlbGV0ZSB0aGlzLks7ZGVsZXRlIHRoaXMuYWM7cnQucHJvdG90eXBlLk4uY2FsbCh0aGlzKX07CnZhciBtRj1mdW5jdGlvbihhKXtpZihhLkgpcmV0dXJuIGEuSDthLmtkJiZhLmtkKGEuSyk/YS5IPWEuSzphLkg9TnAoYS5LLGEuZmUpO3ZhciBiO3JldHVybihiPWEuSCkhPW51bGw/YjpudWxsfSxvRj1mdW5jdGlvbihhLGIsYyl7aWYobUYoYSkpaWYoYS5IPT09YS5LKXt2YXIgZD1hLkxhLmdldChiKTtkJiZkKGEuSCxjKX1lbHNle3ZhciBlPWEuamEuZ2V0KGIpO2lmKGUmJmUuZGspe25GKGEpO3ZhciBmPSsrYS5oZTthLnlhLnNldChmLHtwZTplLnBlLElyOmUubm8oYykscGVyc2lzdGVudDpiPT09ImFkZEV2ZW50TGlzdGVuZXIifSk7YS5ILnBvc3RNZXNzYWdlKGUuZGsoYyxmKSwiKiIpfX19LG5GPWZ1bmN0aW9uKGEpe2EuWnx8KGEuWj1mdW5jdGlvbihiKXtpZihiLnNvdXJjZT09PWEuSCl0cnl7dmFyIGM7Yz1hLmFjP2EuYWMoYik6dm9pZCAwO2lmKGMpe3ZhciBkPWMuWXMsZT1hLnlhLmdldChkKTtpZihlKXtlLnBlcnNpc3RlbnR8fGEueWEuZGVsZXRlKGQpO3ZhciBmOyhmPQplLnBlKT09bnVsbHx8Zi5jYWxsKGUsZS5JcixjLnBheWxvYWQpfX19Y2F0Y2goZyl7fX0sbXQoYS5LLCJtZXNzYWdlIixhLlopKX07dmFyIHBGPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5saXN0ZW5lcixkPSgwLGEuX19ncHApKCJhZGRFdmVudExpc3RlbmVyIixjKTtkJiZjKGQsITApfSxxRj1mdW5jdGlvbihhLGIpeygwLGEuX19ncHApKCJyZW1vdmVFdmVudExpc3RlbmVyIixiLmxpc3RlbmVyLGIubGlzdGVuZXJJZCl9LHJGPXtubzpmdW5jdGlvbihhKXtyZXR1cm4gYS5saXN0ZW5lcn0sZGs6ZnVuY3Rpb24oYSxiKXt2YXIgYz17fTtyZXR1cm4gYy5fX2dwcENhbGw9e2NhbGxJZDpiLGNvbW1hbmQ6ImFkZEV2ZW50TGlzdGVuZXIiLHZlcnNpb246IjEuMSJ9LGN9LHBlOmZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5fX2dwcFJldHVybjthKGMucmV0dXJuVmFsdWUsYy5zdWNjZXNzKX19LHNGPXtubzpmdW5jdGlvbihhKXtyZXR1cm4gYS5saXN0ZW5lcn0sZGs6ZnVuY3Rpb24oYSxiKXt2YXIgYz17fTtyZXR1cm4gYy5fX2dwcENhbGw9e2NhbGxJZDpiLGNvbW1hbmQ6InJlbW92ZUV2ZW50TGlzdGVuZXIiLHZlcnNpb246IjEuMSIsCnBhcmFtZXRlcjphLmxpc3RlbmVySWR9LGN9LHBlOmZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5fX2dwcFJldHVybixkPWMucmV0dXJuVmFsdWUuZGF0YTthPT1udWxsfHxhKGQsYy5zdWNjZXNzKX19O2Z1bmN0aW9uIHRGKGEpe3ZhciBiPXt9O3ZmKGEuZGF0YSk/Yj1KU09OLnBhcnNlKGEuZGF0YSk6Yj1hLmRhdGE7cmV0dXJue3BheWxvYWQ6YixZczpiLl9fZ3BwUmV0dXJuLmNhbGxJZH19CnZhciB1Rj1mdW5jdGlvbihhLGIpe3ZhciBjO2M9KGI9PT12b2lkIDA/e306YikudGltZW91dE1zO3J0LmNhbGwodGhpcyk7dGhpcy5jYWxsZXI9bmV3IGxGKGEsIl9fZ3BwTG9jYXRvciIsZnVuY3Rpb24oZCl7cmV0dXJuIHR5cGVvZiBkLl9fZ3BwPT09ImZ1bmN0aW9uIn0sdEYpO3RoaXMuY2FsbGVyLkxhLnNldCgiYWRkRXZlbnRMaXN0ZW5lciIscEYpO3RoaXMuY2FsbGVyLmphLnNldCgiYWRkRXZlbnRMaXN0ZW5lciIsckYpO3RoaXMuY2FsbGVyLkxhLnNldCgicmVtb3ZlRXZlbnRMaXN0ZW5lciIscUYpO3RoaXMuY2FsbGVyLmphLnNldCgicmVtb3ZlRXZlbnRMaXN0ZW5lciIsc0YpO3RoaXMudGltZW91dE1zPWMhPW51bGw/Yzo1MDB9O3dhKHVGLHJ0KTt1Ri5wcm90b3R5cGUuTj1mdW5jdGlvbigpe3RoaXMuY2FsbGVyLmRpc3Bvc2UoKTtydC5wcm90b3R5cGUuTi5jYWxsKHRoaXMpfTsKdUYucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPUhwKGZ1bmN0aW9uKCl7YSh2RiwhMCl9KSxkPXRoaXMudGltZW91dE1zPT09LTE/dm9pZCAwOnNldFRpbWVvdXQoZnVuY3Rpb24oKXtjKCl9LHRoaXMudGltZW91dE1zKTtvRih0aGlzLmNhbGxlciwiYWRkRXZlbnRMaXN0ZW5lciIse2xpc3RlbmVyOmZ1bmN0aW9uKGUsZil7Y2xlYXJUaW1lb3V0KGQpO3RyeXt2YXIgZzt2YXIgaDsoKGg9ZS5waW5nRGF0YSk9PW51bGw/dm9pZCAwOmguZ3BwVmVyc2lvbik9PT12b2lkIDB8fGUucGluZ0RhdGEuZ3BwVmVyc2lvbj09PSIxInx8ZS5waW5nRGF0YS5ncHBWZXJzaW9uPT09IjEuMCI/KGIucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLmxpc3RlbmVySWQpLGc9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2ludGVybmFsRXJyb3JTdGF0ZToxLGdwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19JU19ERVBSRUNBVEVEX1NQRUMiLAphcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX19KTpBcnJheS5pc0FycmF5KGUucGluZ0RhdGEuYXBwbGljYWJsZVNlY3Rpb25zKT9nPWU6KGIucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLmxpc3RlbmVySWQpLGc9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2ludGVybmFsRXJyb3JTdGF0ZToyLGdwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19FWFBFQ1RFRF9BUFBMSUNBVElPTl9TRUNUSU9OX0FSUkFZIixhcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX19KTthKGcsZil9Y2F0Y2gobCl7aWYoZT09bnVsbD8wOmUubGlzdGVuZXJJZCl0cnl7Yi5yZW1vdmVFdmVudExpc3RlbmVyKGUubGlzdGVuZXJJZCl9Y2F0Y2gobil7YSh3RiwhMCk7cmV0dXJufWEoeEYsITApfX19KX07CnVGLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEpe29GKHRoaXMuY2FsbGVyLCJyZW1vdmVFdmVudExpc3RlbmVyIix7bGlzdGVuZXI6ZnVuY3Rpb24oKXt9LGxpc3RlbmVySWQ6YX0pfTsKdmFyIHhGPXtldmVudE5hbWU6InNpZ25hbFN0YXR1cyIsZGF0YToicmVhZHkiLHBpbmdEYXRhOntpbnRlcm5hbEVycm9yU3RhdGU6MixncHBTdHJpbmc6IkdQUF9FUlJPUl9TVFJJTkdfVU5BVkFJTEFCTEUiLGFwcGxpY2FibGVTZWN0aW9uczpbLTFdfSxsaXN0ZW5lcklkOi0xfSx2Rj17ZXZlbnROYW1lOiJzaWduYWxTdGF0dXMiLGRhdGE6InJlYWR5IixwaW5nRGF0YTp7Z3BwU3RyaW5nOiJHUFBfRVJST1JfU1RSSU5HX0xJU1RFTkVSX1JFR0lTVFJBVElPTl9USU1FT1VUIixpbnRlcm5hbEVycm9yU3RhdGU6MixhcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX0sbGlzdGVuZXJJZDotMX0sd0Y9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2dwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19SRU1PVkVfRVZFTlRfTElTVEVORVJfRVJST1IiLGludGVybmFsRXJyb3JTdGF0ZToyLGFwcGxpY2FibGVTZWN0aW9uczpbLTFdfSxsaXN0ZW5lcklkOi0xfTtmdW5jdGlvbiB5RihhKXt2YXIgYjtpZighKGI9YS5waW5nRGF0YS5zaWduYWxTdGF0dXM9PT0icmVhZHkiKSl7dmFyIGM9YS5waW5nRGF0YS5hcHBsaWNhYmxlU2VjdGlvbnM7Yj0hY3x8Yy5sZW5ndGg9PT0xJiZjWzBdPT09LTF9aWYoYil7a0YuZ3BwU3RyaW5nPWEucGluZ0RhdGEuZ3BwU3RyaW5nO3ZhciBkPWEucGluZ0RhdGEuYXBwbGljYWJsZVNlY3Rpb25zLmpvaW4oIiwiKTtrRi5IPWR9fWZ1bmN0aW9uIHpGKCl7dHJ5e3ZhciBhPW5ldyB1RihBLHt0aW1lb3V0TXM6LTF9KTttRihhLmNhbGxlcikmJmEuYWRkRXZlbnRMaXN0ZW5lcih5Ril9Y2F0Y2goYil7fX07ZnVuY3Rpb24gQUYoKXt2YXIgYT1bWyJjdiIsRSgxKV0sWyJydiIsRSgxNCldLFsidGMiLGNBLnRhZ3MuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiBkfSkubGVuZ3RoXV0sYj1KZigxNSk7YiYmYS5wdXNoKFsieCIsYl0pO3ZhciBjPUNwKCk7YyYmYS5wdXNoKFsidGFnX2V4cCIsY10pO3JldHVybiBhfTt2YXIgQkY9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD17fTt0aGlzLks9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9Yi5ldmVudElkLGQ9Yi50ZixlPVtdLGY9YS5IW2NdfHxbXTtmLmxlbmd0aCYmZS5wdXNoKFsiaGYiLGYuam9pbigiLiIpXSk7dmFyIGc9YS5LW2NdfHxbXTtnLmxlbmd0aCYmZS5wdXNoKFsiaHQiLGcuam9pbigiLiIpXSk7ZCYmKGRlbGV0ZSBhLkhbY10sZGVsZXRlIGEuS1tjXSk7cmV0dXJuIGV9KX0sQ0Y9ZnVuY3Rpb24oKXt2YXIgYT0wO3JldHVybiBmdW5jdGlvbihiKXtzd2l0Y2goYil7Y2FzZSAxOmF8PTE7YnJlYWs7Y2FzZSAyOmF8PTI7YnJlYWs7Y2FzZSAzOmF8PTR9cmV0dXJuIGF9fSxERjt2YXIgRUY9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0iIjtmbi5OJiZNKDUxNikmJmZ6KGZ1bmN0aW9uKCl7dmFyIGI9W107YS5IJiZiLnB1c2goWyJwc2QiLGEuSF0pO3JldHVybiBifSl9LEZGO2Z1bmN0aW9uIEdGKCl7cmV0dXJuITF9CmZ1bmN0aW9uIEhGKCl7dmFyIGE9e307cmV0dXJuIGZ1bmN0aW9uKGIsYyxkKXt9fTtmdW5jdGlvbiBJRigpe3ZhciBhPUpGO3JldHVybiBmdW5jdGlvbihiLGMsZCl7dmFyIGU9ZCYmZC5ldmVudDtLRihjKTt2YXIgZj1CaChiKT92b2lkIDA6MSxnPW5ldyBrYjtHYihjLGZ1bmN0aW9uKHIsdCl7dmFyIHU9VWQodCx2b2lkIDAsZik7dT09PXZvaWQgMCYmdCE9PXZvaWQgMCYmUCg0NCk7Zy5zZXQocix1KX0pO2EuUWIoUWYoKSk7dmFyIGg9e1JuOmhnKGIpLGV2ZW50SWQ6ZT09bnVsbD92b2lkIDA6ZS5pZCxwcmlvcml0eUlkOmUhPT12b2lkIDA/ZS5wcmlvcml0eUlkOnZvaWQgMCxwcmlvcml0eVF1ZXVlOmUhPT12b2lkIDA/ZS5wcmlvcml0eVF1ZXVlOnZvaWQgMCx3ZzplIT09dm9pZCAwP2Z1bmN0aW9uKHIpe2UubGQud2cocil9OnZvaWQgMCxQYjpmdW5jdGlvbigpe3JldHVybiBifSxsb2c6ZnVuY3Rpb24oKXt9LE5yOntpbmRleDpkPT1udWxsP3ZvaWQgMDpkLmluZGV4LHR5cGU6ZD09bnVsbD92b2lkIDA6ZC50eXBlLG5hbWU6ZD09bnVsbD92b2lkIDA6ZC5uYW1lfSwKaXQ6ISFLQShiLDMpLG9yaWdpbmFsRXZlbnREYXRhOmU9PW51bGw/dm9pZCAwOmUub3JpZ2luYWxFdmVudERhdGF9O2UmJmUuY2FjaGVkTW9kZWxWYWx1ZXMmJihoLmNhY2hlZE1vZGVsVmFsdWVzPXtndG06ZS5jYWNoZWRNb2RlbFZhbHVlcy5ndG0sZWNvbW1lcmNlOmUuY2FjaGVkTW9kZWxWYWx1ZXMuZWNvbW1lcmNlfSk7aWYoR0YoKSl7dmFyIGw9SEYoKSxuLHA7aC5BYj17d2s6W10seWc6e30samM6ZnVuY3Rpb24ocix0LHUpe3Q9PT0xJiYobj1yKTt0PT09NyYmKHA9dSk7bChyLHQsdSl9LGVpOlZoKCl9O2gubG9nPWZ1bmN0aW9uKHIpe3ZhciB0PU9hLmFwcGx5KDEsYXJndW1lbnRzKTtuJiZsKG4sNCx7bGV2ZWw6cixzb3VyY2U6cCxtZXNzYWdlOnR9KX19CnZhciBxPXJmKGEsaCxbYixnXSk7YS5RYigpO3EgaW5zdGFuY2VvZiBUYSYmKHEudHlwZT09PSJyZXR1cm4iP3E9cS5kYXRhOnE9dm9pZCAwKTtyZXR1cm4gVGQocSx2b2lkIDAsZil9fWZ1bmN0aW9uIEtGKGEpe3ZhciBiPWEuZ3RtT25TdWNjZXNzLGM9YS5ndG1PbkZhaWx1cmU7eWIoYikmJihhLmd0bU9uU3VjY2Vzcz1mdW5jdGlvbigpe2JkKGIpfSk7eWIoYykmJihhLmd0bU9uRmFpbHVyZT1mdW5jdGlvbigpe2JkKGMpfSl9O3ZhciBMRj1mdW5jdGlvbihhKXtpeChhKX07dmFyIE1GPWZ1bmN0aW9uKGEpe1YoYSxILkoudGcsY28uaWEuY2IpfTtmdW5jdGlvbiBORigpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjApfTt2YXIgT0Y9W0YuRC56aV0ubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhLnNsaWNlKDIpfSk7dmFyIFBGPWZ1bmN0aW9uKGEpe1UoYSxGLkQuemksYWwoOCxORikpfTtmdW5jdGlvbiBRRihhKXt9UUYuUD0iaW50ZXJuYWwuYWRkQWRzQ2xpY2tJZHMiO2Z1bmN0aW9uIFJGKGEsYil7dmFyIGM9dGhpczt9UkYucHVibGljTmFtZT0iYWRkQ29uc2VudExpc3RlbmVyIjt2YXIgU0Y9ITE7ZnVuY3Rpb24gVEYoYSl7Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2IpaWYoU0YpdHJ5e2FbYl0oKX1jYXRjaChjKXtQKDc3KX1lbHNlIGFbYl0oKX1mdW5jdGlvbiBVRihhLGIsYyl7dmFyIGQ9dGhpcyxlO2lmKCFsaChhKXx8IWhoKGIpfHwhbWgoYykpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsImZ1bmN0aW9uIiwic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7VEYoW2Z1bmN0aW9uKCl7TChkLCJsaXN0ZW5fZGF0YV9sYXllciIsYSl9XSk7ZT15QigpLmFkZExpc3RlbmVyKGEsVGQoYix2b2lkIDAsMSksYz09PW51bGw/dm9pZCAwOmMpO3JldHVybiBlfVVGLlA9ImludGVybmFsLmFkZERhdGFMYXllckV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIFZGKGEsYixjKXt9VkYucHVibGljTmFtZT0iYWRkRG9jdW1lbnRFdmVudExpc3RlbmVyIjtmdW5jdGlvbiBXRihhLGIsYyxkKXt9V0YucHVibGljTmFtZT0iYWRkRWxlbWVudEV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIFhGKGEpe3JldHVybiBhLlQueGIoKX07ZnVuY3Rpb24gWUYoYSl7fVlGLnB1YmxpY05hbWU9ImFkZEV2ZW50Q2FsbGJhY2siOwp2YXIgWkY9ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyI/YTpTdHJpbmcocmooKSl9LGJHPWZ1bmN0aW9uKGEsYil7JEYoYSwiaW5pdCIsITEpfHwoYUcoYSwiaW5pdCIsITApLGIoKSl9LCRGPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1jRyhhKTtyZXR1cm4gT2IoZCxiLGMpfSxkRz1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1jRyhhKSxmPU9iKGUsYixkKSxnPWMoZik7cmV0dXJuIGVbYl09Z30sYUc9ZnVuY3Rpb24oYSxiLGMpe2NHKGEpW2JdPWN9LGNHPWZ1bmN0aW9uKGEpe3ZhciBiPWtqKCJhdXRvRXZlbnRzU2V0dGluZ3MiLGZ1bmN0aW9uKCl7cmV0dXJue319KTtiLmhhc093blByb3BlcnR5KGEpfHwoYlthXT17fSk7cmV0dXJuIGJbYV19LGVHPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD17ZXZlbnQ6YiwiZ3RtLmVsZW1lbnQiOmEsImd0bS5lbGVtZW50Q2xhc3NlcyI6b2QoYSwiY2xhc3NOYW1lIiksImd0bS5lbGVtZW50SWQiOmEuZm9yfHxlZChhLCJpZCIpfHwKIiIsImd0bS5lbGVtZW50VGFyZ2V0IjphLmZvcm1UYXJnZXR8fG9kKGEsInRhcmdldCIpfHwiIn07YyYmKGRbImd0bS50cmlnZ2VycyJdPWMuam9pbigiLCIpKTtkWyJndG0uZWxlbWVudFVybCJdPShhLmF0dHJpYnV0ZXMmJmEuYXR0cmlidXRlcy5mb3JtYWN0aW9uP2EuZm9ybUFjdGlvbjoiIil8fGEuYWN0aW9ufHxvZChhLCJocmVmIil8fGEuc3JjfHxhLmNvZGV8fGEuY29kZWJhc2V8fCIiO3JldHVybiBkfTt2YXIgaEc9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhLmVsZW1lbnRzKXJldHVybiAwO2Zvcih2YXIgZD1iLmRhdGFzZXRbY10sZT0wLGY9MTtlPGEuZWxlbWVudHMubGVuZ3RoO2UrKyl7dmFyIGc9YS5lbGVtZW50c1tlXSxoPWcudGFnTmFtZS50b0xvd2VyQ2FzZSgpO2lmKCEoZkcuaW5kZXhPZihoKTwwfHxoPT09ImlucHV0IiYmZ0cuaW5kZXhPZihnLnR5cGUudG9Mb3dlckNhc2UoKSk+PTApKXtpZihnLmRhdGFzZXRbY109PT1kKXJldHVybiBmO2YrK319cmV0dXJuIDB9LGZHPVsiaW5wdXQiLCJzZWxlY3QiLCJ0ZXh0YXJlYSJdLGdHPVsiYnV0dG9uIiwiaGlkZGVuIiwiaW1hZ2UiLCJyZXNldCIsInN1Ym1pdCJdOwpmdW5jdGlvbiBpRyhhKXtpZihhLmZvcm0pe3ZhciBiO3JldHVybigoYj1hLmZvcm0pPT1udWxsPzA6Yi50YWdOYW1lKT9hLmZvcm06Qi5nZXRFbGVtZW50QnlJZChhLmZvcm0pfXJldHVybiBoZChhLFsiZm9ybSJdLDEwMCl9OwpmdW5jdGlvbiBtRyhhKXt9bUcuUD0iaW50ZXJuYWwuYWRkRm9ybUFiYW5kb25tZW50TGlzdGVuZXIiO2Z1bmN0aW9uIG5HKGEsYixjLGQpe30KbkcuUD0iaW50ZXJuYWwuYWRkRm9ybURhdGEiOwpmdW5jdGlvbiBzRyhhKXt9c0cuUD0iaW50ZXJuYWwuYWRkR2FTZW5kTGlzdGVuZXIiO2Z1bmN0aW9uIHRHKGEpe2lmKCFhKXJldHVybnt9O3ZhciBiPWEuTnI7cmV0dXJuIEpBKGIudHlwZSxiLmluZGV4LGIubmFtZSl9ZnVuY3Rpb24gdUcoYSl7aWYoIWEpcmV0dXJue307dmFyIGI9e29yaWdpbmF0aW5nRW50aXR5OnRHKGEpfTthLnByaW9yaXR5UXVldWUmJihiLnByaW9yaXR5UXVldWU9YS5wcmlvcml0eVF1ZXVlKTtyZXR1cm4gYn07CnZhciB3Rz1mdW5jdGlvbihhLGIsYyl7dkcoKS51cGRhdGVab25lKGEsYixjKX0seUc9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj17fSxnPXZHKCk7Yz1jJiZSYihjLHhHKTtmb3IodmFyIGg9Zy5jcmVhdGVab25lKGEsYyksbD0wO2w8Yi5sZW5ndGg7bCsrKXt2YXIgbj1TdHJpbmcoYltsXSk7aWYoZy5yZWdpc3RlckNoaWxkKG4sRSg1KSxoKSl7dmFyIHA9bixxPWEscj1mLHQ9ZCx1PWU7aWYoU2IocCwiR1RNLSIpKWhBKHAsdm9pZCAwLCExLHtzb3VyY2U6MSxmcm9tQ29udGFpbmVyRXhlY3V0aW9uOiEwfSk7ZWxzZXt2YXIgdj1xQygianMiLE1iKCkpO2hBKHAsdm9pZCAwLCEwLHtzb3VyY2U6MSxmcm9tQ29udGFpbmVyRXhlY3V0aW9uOiEwfSk7dmFyIHg9e29yaWdpbmF0aW5nRW50aXR5OnQsaW5oZXJpdFBhcmVudENvbmZpZzp1fTttRCh2LHEseCk7bUQockMocCxyKSxxLHgpfX19cmV0dXJuIGh9LHZHPWZ1bmN0aW9uKCl7cmV0dXJuIGtqKCJ6b25lcyIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHpHfSl9LApBRz17em9uZToxLGNuOjEsY3NzOjEsZXc6MSxlcToxLGdlOjEsZ3Q6MSxsYzoxLGxlOjEsbHQ6MSxyZToxLHN3OjEsdW06MX0seEc9e2NsOlsiZWNsIl0sZWNsOlsiY2wiXSxlaGw6WyJobCJdLGdhYXdjOlsiZ29vZ3RhZyJdLGhsOlsiZWhsIl19LHpHPWZ1bmN0aW9uKCl7dGhpcy5IPXt9O3RoaXMuSz17fTt0aGlzLk49MH07az16Ry5wcm90b3R5cGU7ay5pc0FjdGl2ZT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYyxkPTA7ZDxhLmxlbmd0aCYmIShjPXRoaXMuSFthW2RdXSk7ZCsrKTtpZighYylyZXR1cm4hMDtpZighdGhpcy5pc0FjdGl2ZShbYy5ra10sYikpcmV0dXJuITE7Zm9yKHZhciBlPTA7ZTxjLldnLmxlbmd0aDtlKyspaWYodGhpcy5LW2MuV2dbZV1dLmNmKGIpKXJldHVybiEwO3JldHVybiExfTtrLmdldElzQWxsb3dlZEZuPWZ1bmN0aW9uKGEsYil7aWYoIXRoaXMuaXNBY3RpdmUoYSxiKSlyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4hMX07Zm9yKHZhciBjLGQ9MDtkPGEubGVuZ3RoJiYKIShjPXRoaXMuSFthW2RdXSk7ZCsrKTtpZighYylyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4hMH07Zm9yKHZhciBlPVtdLGY9MDtmPGMuV2cubGVuZ3RoO2YrKyl7dmFyIGc9dGhpcy5LW2MuV2dbZl1dO2cuY2YoYikmJmUucHVzaChnKX1pZighZS5sZW5ndGgpcmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuITF9O3ZhciBoPXRoaXMuZ2V0SXNBbGxvd2VkRm4oW2Mua2tdLGIpO3JldHVybiBmdW5jdGlvbihsLG4pe249bnx8W107aWYoIWgobCxuKSlyZXR1cm4hMTtmb3IodmFyIHA9MDtwPGUubGVuZ3RoOysrcClpZihlW3BdLk4obCxuKSlyZXR1cm4hMDtyZXR1cm4hMX19O2sudW5yZWdpc3RlckNoaWxkPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKWRlbGV0ZSB0aGlzLkhbYVtiXV19O2suY3JlYXRlWm9uZT1mdW5jdGlvbihhLGIpe3ZhciBjPVN0cmluZygrK3RoaXMuTik7dGhpcy5LW2NdPW5ldyBCRyhhLGIpO3JldHVybiBjfTtrLnVwZGF0ZVpvbmU9ZnVuY3Rpb24oYSwKYixjKXt2YXIgZD10aGlzLktbYV07ZCYmZC5SKGIsYyl9O2sucmVnaXN0ZXJDaGlsZD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5IW2FdLGU7aWYoZT0hZClsaigpLGU9amouSFthXTtpZihlfHwhZCYmRWsoYSl8fGQmJmQua2shPT1iKXJldHVybiExO2lmKGQpcmV0dXJuIGQuV2cucHVzaChjKSwhMTt0aGlzLkhbYV09e2trOmIsV2c6W2NdfTtyZXR1cm4hMH07dmFyIEJHPWZ1bmN0aW9uKGEsYil7dGhpcy5LPW51bGw7dGhpcy5IPVt7ZXZlbnRJZDphLGNmOiEwfV07aWYoYil7dGhpcy5LPXt9O2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKXRoaXMuS1tiW2NdXT0hMH19O0JHLnByb3RvdHlwZS5SPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5IW3RoaXMuSC5sZW5ndGgtMV07YTw9Yy5ldmVudElkfHxjLmNmIT09YiYmdGhpcy5ILnB1c2goe2V2ZW50SWQ6YSxjZjpifSl9O0JHLnByb3RvdHlwZS5jZj1mdW5jdGlvbihhKXtmb3IodmFyIGI9dGhpcy5ILmxlbmd0aC0xO2I+PTA7Yi0tKWlmKHRoaXMuSFtiXS5ldmVudElkPD0KYSlyZXR1cm4gdGhpcy5IW2JdLmNmO3JldHVybiExfTtCRy5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe2I9Ynx8W107aWYoIXRoaXMuS3x8QUdbYV18fHRoaXMuS1thXSlyZXR1cm4hMDtmb3IodmFyIGM9MDtjPGIubGVuZ3RoOysrYylpZih0aGlzLktbYltjXV0pcmV0dXJuITA7cmV0dXJuITF9O2Z1bmN0aW9uIENHKGEpe3ZhciBiPW1qKCJ6b25lcyIpO3JldHVybiBiP2IuZ2V0SXNBbGxvd2VkRm4od2soKSxhKTpmdW5jdGlvbigpe3JldHVybiEwfX1mdW5jdGlvbiBERygpe3ZhciBhPW1qKCJ6b25lcyIpO2EmJmEudW5yZWdpc3RlckNoaWxkKHdrKCkpfQpmdW5jdGlvbiBFRygpe2tCKHZrKCksZnVuY3Rpb24oYSl7dmFyIGI9YS5vcmlnaW5hbEV2ZW50RGF0YVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXSxjPW1qKCJ6b25lcyIpO3JldHVybiBjP2MuaXNBY3RpdmUod2soKSxiKTohMH0pO2hCKHZrKCksZnVuY3Rpb24oYSl7dmFyIGIsYztiPWEuZW50aXR5SWQ7Yz1hLnNlY3VyaXR5R3JvdXBzO3JldHVybiBDRyhOdW1iZXIoYS5vcmlnaW5hbEV2ZW50RGF0YVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXSkpKGIsYyl9KX07dmFyIEZHPWZ1bmN0aW9uKGEsYil7dGhpcy50YWdJZD1hO3RoaXMuY2Fub25pY2FsSWQ9Yn07CmZ1bmN0aW9uIEdHKGEsYil7dmFyIGM9dGhpcztyZXR1cm4gYX1HRy5QPSJpbnRlcm5hbC5sb2FkR29vZ2xlVGFnIjtmdW5jdGlvbiBIRyhhKXtyZXR1cm4gbmV3IEtkKCIiLGZ1bmN0aW9uKGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYik7aWYoYyBpbnN0YW5jZW9mIEtkKXJldHVybiBuZXcgS2QoIiIsZnVuY3Rpb24oKXt2YXIgZD1PYS5hcHBseSgwLGFyZ3VtZW50cyksZT10aGlzLGY9RWQoWEYodGhpcyksbnVsbCk7Zi5ldmVudElkPWEuZXZlbnRJZDtmLnByaW9yaXR5SWQ9YS5wcmlvcml0eUlkO2Yub3JpZ2luYWxFdmVudERhdGE9YS5vcmlnaW5hbEV2ZW50RGF0YTt2YXIgZz1kLm1hcChmdW5jdGlvbihsKXtyZXR1cm4gZS5ldmFsdWF0ZShsKX0pLGg9dGhpcy5ULndiKCk7aC51ZShmKTtyZXR1cm4gYy5OYy5hcHBseShjLFtoXS5jb25jYXQodyhnKSkpfSl9KX07ZnVuY3Rpb24gSUcoYSxiLGMpe3ZhciBkPXRoaXM7fUlHLlA9ImludGVybmFsLmFkZEdvb2dsZVRhZ1Jlc3RyaWN0aW9uIjsKZnVuY3Rpb24gUEcoYSxiKXt9UEcuUD0iaW50ZXJuYWwuYWRkSGlzdG9yeUNoYW5nZUxpc3RlbmVyIjtmdW5jdGlvbiBRRyhhLGIsYyl7fVFHLnB1YmxpY05hbWU9ImFkZFdpbmRvd0V2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIFJHKGEsYil7cmV0dXJuITB9UkcucHVibGljTmFtZT0iYWxpYXNJbldpbmRvdyI7ZnVuY3Rpb24gU0coYSxiLGMpe31TRy5QPSJpbnRlcm5hbC5hcHBlbmRSZW1vdGVDb25maWdQYXJhbWV0ZXIiO2Z1bmN0aW9uIFRHKGEpe3ZhciBiO3JldHVybiBifQpURy5wdWJsaWNOYW1lPSJjYWxsSW5XaW5kb3ciO2Z1bmN0aW9uIFVHKGEpe31VRy5wdWJsaWNOYW1lPSJjYWxsTGF0ZXIiO2Z1bmN0aW9uIFZHKGEpe31WRy5QPSJjYWxsT25Eb21SZWFkeSI7ZnVuY3Rpb24gV0coYSl7fVdHLlA9ImNhbGxPbldpbmRvd0xvYWQiO3ZhciBZRz1mdW5jdGlvbihhLGIpe3ZhciBjPW5tKFhHKXx8e30sZD1jW2FdfHx7fTtpZihkW2JdKXJldHVybiExO3ZhciBlPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sZCk7ZVtiXT0hMDt2YXIgZj1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMpO2ZbYV09ZTttbShYRyxmKTtyZXR1cm4hMH0sWEc9am0uYmEuaHI7ZnVuY3Rpb24gWkcoYSxiKXtpZighbGgoYSl8fCFsaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwic3RyaW5nIl0sYXJndW1lbnRzKTt2YXIgYz1ZRyhhLGIpO3JldHVybiBjfVpHLlA9ImludGVybmFsLmNsYWltRGVzdGluYXRpb24iO2Z1bmN0aW9uICRHKGEsYil7dmFyIGM7cmV0dXJuIGN9JEcuUD0iaW50ZXJuYWwuY29tcHV0ZUd0bVBhcmFtZXRlciI7ZnVuY3Rpb24gYUgoYSxiKXt2YXIgYz10aGlzO2lmKCFoaChhKXx8IWpoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJmdW5jdGlvbiIsImFycmF5Il0sYXJndW1lbnRzKTticChmdW5jdGlvbigpe2EuaW52b2tlKGMuVCl9LFRkKGIpKTt9YUguUD0iaW50ZXJuYWwuY29uc2VudFNjaGVkdWxlRmlyc3RUcnkiO2Z1bmN0aW9uIGJIKGEsYil7dmFyIGM9dGhpcztpZighaGgoYSl8fCFqaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiZnVuY3Rpb24iLCJhcnJheSJdLGFyZ3VtZW50cyk7YXAoZnVuY3Rpb24oZCl7YS5pbnZva2UoYy5ULFVkKGQpKX0sVGQoYikpO31iSC5QPSJpbnRlcm5hbC5jb25zZW50U2NoZWR1bGVSZXRyeSI7ZnVuY3Rpb24gY0goYSl7dmFyIGI7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO3ZhciBjPWE7aWYoIWttKGMpKXRocm93IEVycm9yKCJjb3B5RnJvbUNyb3NzQ29udGFpbmVyRGF0YSByZXF1aXJlcyB2YWxpZCBDcm9zc0NvbnRhaW5lclNjaGVtYSBrZXkuIik7dmFyIGQ9bm0oYyk7Yj1VZChkLHRoaXMuVCwxKTtyZXR1cm4gYn1jSC5QPSJpbnRlcm5hbC5jb3B5RnJvbUNyb3NzQ29udGFpbmVyRGF0YSI7ZnVuY3Rpb24gZEgoYSxiKXt2YXIgYzt2YXIgZT1VZChjLHRoaXMuVCxCaChYRih0aGlzKS5QYigpKT8yOjEpO2U9PT12b2lkIDAmJmMhPT12b2lkIDAmJlAoNDUpO3JldHVybiBlfWRILnB1YmxpY05hbWU9ImNvcHlGcm9tRGF0YUxheWVyIjsKZnVuY3Rpb24gZUgoYSl7dmFyIGI9dm9pZCAwO3JldHVybiBifWVILlA9ImludGVybmFsLmNvcHlGcm9tRGF0YUxheWVyQ2FjaGUiO2Z1bmN0aW9uIGZIKGEpe3ZhciBiO3JldHVybiBifWZILnB1YmxpY05hbWU9ImNvcHlGcm9tV2luZG93IjtmdW5jdGlvbiBnSChhKXt2YXIgYj12b2lkIDA7cmV0dXJuIFVkKGIsdGhpcy5ULDEpfWdILlA9ImludGVybmFsLmNvcHlLZXlGcm9tV2luZG93Ijt2YXIgaEg9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1jby5pYS5jYiYmZm8uSFthXT09PWJvLk1hLlVlJiYhWG8oRi5ELmthKX07dmFyIGlIPWZ1bmN0aW9uKCl7cmV0dXJuIjAifSxqSD1mdW5jdGlvbihhKXtpZih0eXBlb2YgYSE9PSJzdHJpbmciKXJldHVybiIiO3ZhciBiPVsiZ2NsaWQiLCJkY2xpZCIsIndicmFpZCIsIl9nbCJdO00oMTAyKSYmYi5wdXNoKCJnYnJhaWQiKTtyZXR1cm4gU2ooYSxiLCIwIil9O3ZhciBrSD17fSxsSD17fSxtSD17fSxuSD17fSxvSD17fSxwSD17fSxxSD17fSxySD17fSxzSD17fSx0SD17fSx1SD17fSx2SD17fSx3SD17fSx4SD17fSx5SD17fSx6SD17fSxBSD17fSxCSD17fSxDSD17fSxESD17fSxFSD17fSxGSD17fSxHSD17fSxISD17fSxJSD17fSxKSD17fSxLSD0oSkhbRi5ELmZiXT0oa0hbMl09W2hIXSxrSCksSkhbRi5ELlpmXT0obEhbMl09W2hIXSxsSCksSkhbRi5ELkppXT0obUhbMl09W2hIXSxtSCksSkhbRi5ELmdtXT0obkhbMl09W2hIXSxuSCksSkhbRi5ELmhtXT0ob0hbMl09W2hIXSxvSCksSkhbRi5ELmltXT0ocEhbMl09W2hIXSxwSCksSkhbRi5ELmptXT0ocUhbMl09W2hIXSxxSCksSkhbRi5ELmttXT0ockhbMl09W2hIXSxySCksSkhbRi5ELkJjXT0oc0hbMl09W2hIXSxzSCksSkhbRi5ELmNnXT0odEhbMl09W2hIXSx0SCksSkhbRi5ELmRnXT0odUhbMl09W2hIXSx1SCksSkhbRi5ELmVnXT0odkhbMl09W2hIXSx2SCksSkhbRi5ELmZnXT0od0hbMl09CltoSF0sd0gpLEpIW0YuRC5nZ109KHhIWzJdPVtoSF0seEgpLEpIW0YuRC5oZ109KHlIWzJdPVtoSF0seUgpLEpIW0YuRC5pZ109KHpIWzJdPVtoSF0sekgpLEpIW0YuRC5qZ109KEFIWzJdPVtoSF0sQUgpLEpIW0YuRC5sYl09KEJIWzFdPVtoSF0sQkgpLEpIW0YuRC5EZF09KENIWzFdPVtoSF0sQ0gpLEpIW0YuRC5LZF09KERIWzFdPVtoSF0sREgpLEpIW0YuRC5FZV09KEVIWzFdPVtoSF0sRUgpLEpIW0YuRC5CZl09KEZIWzFdPVtmdW5jdGlvbihhKXtyZXR1cm4gTSgxMDIpJiZoSChhKX1dLEZIKSxKSFtGLkQuVWNdPShHSFsxXT1baEhdLEdIKSxKSFtGLkQuemFdPShISFsxXT1baEhdLEhIKSxKSFtGLkQuVWFdPShJSFsxXT1baEhdLElIKSxKSCksTEg9e30sTUg9KExIW0YuRC5sYl09aUgsTEhbRi5ELkRkXT1pSCxMSFtGLkQuS2RdPWlILExIW0YuRC5FZV09aUgsTEhbRi5ELkJmXT1pSCxMSFtGLkQuVWNdPWZ1bmN0aW9uKGEpe2lmKCFDZChhKSlyZXR1cm57fTt2YXIgYj1FZChhLApudWxsKTtkZWxldGUgYi5tYXRjaF9pZDtyZXR1cm4gYn0sTEhbRi5ELnphXT1qSCxMSFtGLkQuVWFdPWpILExIKSxOSD17fSxPSD17fSxQSD0oT0hbSC5KLllhXT0oTkhbMl09W2hIXSxOSCksT0gpLFFIPXt9O3ZhciBSSD1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLkg9YTt0aGlzLk49Yjt0aGlzLlI9Yzt0aGlzLlo9ZH07UkgucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD9jby5pYS5nZDphO2lmKCF0aGlzLk4uc29tZShmdW5jdGlvbihiKXtyZXR1cm4gYihhKX0pKXJldHVybiB0aGlzLlIuc29tZShmdW5jdGlvbihiKXtyZXR1cm4gYihhKX0pP3RoaXMuWih0aGlzLkgpOnRoaXMuSH07UkgucHJvdG90eXBlLks9ZnVuY3Rpb24oKXtyZXR1cm4gQWQodGhpcy5IKT09PSJhcnJheSJ8fENkKHRoaXMuSCk/RWQodGhpcy5ILG51bGwpOnRoaXMuSH07CnZhciBTSD1mdW5jdGlvbigpe30sVEg9ZnVuY3Rpb24oYSxiKXt0aGlzLmNvbmRpdGlvbnM9YTt0aGlzLkg9Yn0sVUg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGU9KChkPWEuY29uZGl0aW9uc1tiXSk9PW51bGw/dm9pZCAwOmRbMl0pfHxbXSxmLGc9KChmPWEuY29uZGl0aW9uc1tiXSk9PW51bGw/dm9pZCAwOmZbMV0pfHxbXTtyZXR1cm4gbmV3IFJIKGMsZSxnLGEuSFtiXXx8U0gpfSxWSCxXSDt2YXIgWUg9ZnVuY3Rpb24oYSl7YS5LPSEwO2EuSD0hMTtpZihJZig1Mikpe2lmKE0oNTE2KSYmWEgoKSl7dmFyIGI7YS5zZXR0aW5ncz0oYj1kYXRhLnByb2R1Y3RTZXR0aW5ncykhPW51bGw/Yjp7fTthLkg9ITB9ZWxzZXt2YXIgYzthLnNldHRpbmdzPShjPXByb2R1Y3RTZXR0aW5ncykhPW51bGw/Yzp7fX1wcm9kdWN0U2V0dGluZ3M9dm9pZCAwO2RhdGEucHJvZHVjdFNldHRpbmdzPXZvaWQgMDt2YXIgZDsoZD1GRikhPW51bGwmJmZuLk4mJk0oNTE2KSYmKGQuSD1hLkg/IjEiOiIwIil9fSwkSD1mdW5jdGlvbihhKXt2YXIgYj1aSDtiLkt8fFlIKGIpO3JldHVybiBiLnNldHRpbmdzW2FdfSxaSD1uZXcgZnVuY3Rpb24oKXt0aGlzLnNldHRpbmdzPXt9O3RoaXMuSz10aGlzLkg9ITF9OwpmdW5jdGlvbiBYSCgpe2lmKCFkYXRhLnByb2R1Y3RTZXR0aW5ncyYmIXByb2R1Y3RTZXR0aW5ncylyZXR1cm4hMDtpZighZGF0YS5wcm9kdWN0U2V0dGluZ3N8fCFwcm9kdWN0U2V0dGluZ3N8fE9iamVjdC5rZXlzKGRhdGEucHJvZHVjdFNldHRpbmdzKS5sZW5ndGghPT1PYmplY3Qua2V5cyhwcm9kdWN0U2V0dGluZ3MpLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIGEgaW4gcHJvZHVjdFNldHRpbmdzKWlmKCFkYXRhLnByb2R1Y3RTZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eShhKXx8ZGF0YS5wcm9kdWN0U2V0dGluZ3NbYV0ucHJlQXV0b1BpaSE9PXByb2R1Y3RTZXR0aW5nc1thXS5wcmVBdXRvUGlpKXJldHVybiExO3JldHVybiEwfTt2YXIgYUk9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuZXZlbnROYW1lPWI7dGhpcy5NPWM7dGhpcy5IPXt9O3RoaXMuaXNBYm9ydGVkPSExO3RoaXMudGFyZ2V0PWE7dGhpcy5tZXRhZGF0YT17fTtmb3IodmFyIGQ9Yy5ldmVudE1ldGFkYXRhfHx7fSxlPW0oT2JqZWN0LmtleXMoZCkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO1YodGhpcyxnLGRbZ10pfX0sUj1mdW5jdGlvbihhLGIpe3ZhciBjLGQ7cmV0dXJuKGM9YS5IW2JdKT09bnVsbD92b2lkIDA6KGQ9Yy5nZXRWYWx1ZSk9PW51bGw/dm9pZCAwOmQuY2FsbChjLFEoYSxILkoudGcpKX0sZXU9ZnVuY3Rpb24oYSl7cmV0dXJuIE9iamVjdC5rZXlzKGEuSCl9LFU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuSCxlO2M9PT12b2lkIDA/ZT12b2lkIDA6KFZIIT1udWxsfHwoVkg9bmV3IFRIKEtILE1IKSksZT1VSChWSCxiLGMpKTtkW2JdPWV9OwphSS5wcm90b3R5cGUubWVyZ2VIaXREYXRhRm9yS2V5PWZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlO2M9KGQ9dGhpcy5IW2FdKT09bnVsbD92b2lkIDA6KGU9ZC5LKT09bnVsbD92b2lkIDA6ZS5jYWxsKGQpO2lmKCFjKXJldHVybiBVKHRoaXMsYSxiKSwhMDtpZighQ2QoYykpcmV0dXJuITE7VSh0aGlzLGEsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxjLGIpKTtyZXR1cm4hMH07dmFyIGJJPWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP3t9OmI7Zm9yKHZhciBjPW0oT2JqZWN0LmtleXMoYS5IKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWUsZj12b2lkIDAsZz12b2lkIDAsaD12b2lkIDA7YltlXT0oZj1hLkhbZV0pPT1udWxsP3ZvaWQgMDooaD0oZz1mKS5LKT09bnVsbD92b2lkIDA6aC5jYWxsKGcpfXJldHVybiBifTsKYUkucHJvdG90eXBlLmNvcHlUb0hpdERhdGE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPU8odGhpcy5NLGEpO2Q9PT12b2lkIDAmJihkPWIpO2lmKHpiKGQpJiZjIT09dm9pZCAwKXRyeXtkPWMoZCl9Y2F0Y2goZSl7fWQhPT12b2lkIDAmJlUodGhpcyxhLGQpfTsKdmFyIFE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLm1ldGFkYXRhW2JdO2lmKGI9PT1ILkoudGcpe3ZhciBkO3JldHVybiBjPT1udWxsP3ZvaWQgMDooZD1jLkspPT1udWxsP3ZvaWQgMDpkLmNhbGwoYyl9dmFyIGU7cmV0dXJuIGM9PW51bGw/dm9pZCAwOihlPWMuZ2V0VmFsdWUpPT1udWxsP3ZvaWQgMDplLmNhbGwoYyxRKGEsSC5KLnRnKSl9LFY9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEubWV0YWRhdGEsZTtjPT09dm9pZCAwP2U9YzooV0ghPW51bGx8fChXSD1uZXcgVEgoUEgsUUgpKSxlPVVIKFdILGIsYykpO2RbYl09ZX0sY0k9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/e306Yjtmb3IodmFyIGM9bShPYmplY3Qua2V5cyhhLm1ldGFkYXRhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWUsZj12b2lkIDAsZz12b2lkIDAsaD12b2lkIDA7YltlXT0oZj1hLm1ldGFkYXRhW2VdKT09bnVsbD92b2lkIDA6KGg9KGc9ZikuSyk9PW51bGw/dm9pZCAwOgpoLmNhbGwoZyl9cmV0dXJuIGJ9LGRJPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0kSChhLnRhcmdldC5kZXN0aW5hdGlvbklkKTtyZXR1cm4gZCYmZFtiXSE9PXZvaWQgMD9kW2JdOmN9LFp1PWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPW5ldyBhSSgoYj09bnVsbD92b2lkIDA6Yi50YXJnZXQpfHxhLnRhcmdldCwoYj09bnVsbD92b2lkIDA6Yi5ldmVudE5hbWUpfHxhLmV2ZW50TmFtZSwoYj09bnVsbD92b2lkIDA6Yi5NKXx8YS5NKSxkPWJJKGEpLGU9bShPYmplY3Qua2V5cyhkKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7VShjLGcsZFtnXSl9Zm9yKHZhciBoPWNJKGEpLGw9bShPYmplY3Qua2V5cyhoKSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWU7VihjLHAsaFtwXSl9Yy5pc0Fib3J0ZWQ9YS5pc0Fib3J0ZWQ7cmV0dXJuIGN9LGVJPWZ1bmN0aW9uKGEpe3ZhciBiPWEuTSxjPWIuZXZlbnRJZCxkPWIucHJpb3JpdHlJZDsKcmV0dXJuIGQ/YysiXyIrZDpTdHJpbmcoYyl9O2FJLnByb3RvdHlwZS5hY2NlcHQ9ZnVuY3Rpb24oKXt2YXIgYT1vbShqbS5iYS5TaSx7fSksYj1lSSh0aGlzKSxjPXRoaXMudGFyZ2V0LmRlc3RpbmF0aW9uSWQ7YVtiXXx8KGFbYl09e30pO2FbYl1bY109dmsoKTt2YXIgZD1qbS5iYS5TaTtpZihrbShkKSl7dmFyIGU7KGU9bG0oZCkpPT1udWxsfHxlLm5vdGlmeSgpfX07YUkucHJvdG90eXBlLmNhbkJlQWNjZXB0ZWQ9ZnVuY3Rpb24oYSl7dmFyIGI9bm0oam0uYmEuU2kpO2lmKCFiKXJldHVybiEwO3ZhciBjPWJbZUkodGhpcyldO2lmKCFjKXJldHVybiEwO3ZhciBkPWNbYSE9bnVsbD9hOnRoaXMudGFyZ2V0LmRlc3RpbmF0aW9uSWRdO3JldHVybiBkPT09dm9pZCAwfHxkPT09dmsoKX07ZnVuY3Rpb24gZkkoYSl7cmV0dXJue2dldERlc3RpbmF0aW9uSWQ6ZnVuY3Rpb24oKXtyZXR1cm4gYS50YXJnZXQuZGVzdGluYXRpb25JZH0sZ2V0RXZlbnROYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIGEuZXZlbnROYW1lfSxzZXRFdmVudE5hbWU6ZnVuY3Rpb24oYil7YS5ldmVudE5hbWU9Yn0sZ2V0SGl0RGF0YTpmdW5jdGlvbihiKXtyZXR1cm4gUihhLGIpfSxzZXRIaXREYXRhOmZ1bmN0aW9uKGIsYyl7VShhLGIsYyl9LHNldEhpdERhdGFJZk5vdERlZmluZWQ6ZnVuY3Rpb24oYixjKXtSKGEsYik9PT12b2lkIDAmJlUoYSxiLGMpfSxjb3B5VG9IaXREYXRhOmZ1bmN0aW9uKGIsYyl7YS5jb3B5VG9IaXREYXRhKGIsYyl9LGdldE1ldGFkYXRhOmZ1bmN0aW9uKGIpe3JldHVybiBRKGEsYil9LHNldE1ldGFkYXRhOmZ1bmN0aW9uKGIsYyl7VihhLGIsYyl9LGlzQWJvcnRlZDpmdW5jdGlvbigpe3JldHVybiBhLmlzQWJvcnRlZH0sYWJvcnQ6ZnVuY3Rpb24oKXthLmlzQWJvcnRlZD0hMH0sCmdldEZyb21FdmVudENvbnRleHQ6ZnVuY3Rpb24oYil7cmV0dXJuIE8oYS5NLGIpfSxyYjpmdW5jdGlvbigpe3JldHVybiBhfSxnZXRIaXRLZXlzOmZ1bmN0aW9uKCl7cmV0dXJuIGV1KGEpfSxnZXRNZXJnZWRWYWx1ZXM6ZnVuY3Rpb24oYil7cmV0dXJuIGEuTS5nZXRNZXJnZWRWYWx1ZXMoYiwzKX0sbWVyZ2VIaXREYXRhRm9yS2V5OmZ1bmN0aW9uKGIsYyl7cmV0dXJuIENkKGMpP2EubWVyZ2VIaXREYXRhRm9yS2V5KGIsYyk6ITF9LGFjY2VwdDpmdW5jdGlvbigpe2EuYWNjZXB0KCl9LGNhbkJlQWNjZXB0ZWQ6ZnVuY3Rpb24oYil7cmV0dXJuIGEuY2FuQmVBY2NlcHRlZChiKX19fTtmdW5jdGlvbiBnSShhLGIpe3ZhciBjO2lmKCFlaChhKXx8IWZoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiLCJPYmplY3R8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt2YXIgZD1UZChiKXx8e30sZT1UZChhLHRoaXMuVCwxKS5yYigpLGY9ZS5NO2Qub21pdEV2ZW50Q29udGV4dCYmKGY9SkMobmV3IHlDKGUuTS5ldmVudElkLGUuTS5wcmlvcml0eUlkKSkpO3ZhciBnPW5ldyBhSShlLnRhcmdldCxlLmV2ZW50TmFtZSxmKTtpZighZC5vbWl0SGl0RGF0YSlmb3IodmFyIGg9YkkoZSksbD1tKE9iamVjdC5rZXlzKGgpKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtVKGcscCxoW3BdKX1pZihkLm9taXRNZXRhZGF0YSlnLm1ldGFkYXRhPXt9O2Vsc2UgZm9yKHZhciBxPWNJKGUpLHI9bShPYmplY3Qua2V5cyhxKSksdD1yLm5leHQoKTshdC5kb25lO3Q9CnIubmV4dCgpKXt2YXIgdT10LnZhbHVlO1YoZyx1LHFbdV0pfWcuaXNBYm9ydGVkPWUuaXNBYm9ydGVkO2M9VWQoZkkoZyksdGhpcy5ULDEpO3JldHVybiBjfWdJLlA9ImludGVybmFsLmNvcHlQcmVIaXQiO2Z1bmN0aW9uIGhJKGEsYil7dmFyIGM9bnVsbDtyZXR1cm4gVWQoYyx0aGlzLlQsMil9aEkucHVibGljTmFtZT0iY3JlYXRlQXJndW1lbnRzUXVldWUiO2Z1bmN0aW9uIGlJKGEpe3JldHVybiBVZChmdW5jdGlvbihjKXt2YXIgZD1TQSgpO2lmKHR5cGVvZiBjPT09ImZ1bmN0aW9uIilkKGZ1bmN0aW9uKCl7YyhmdW5jdGlvbihmLGcsaCl7dmFyIGw9ClNBKCksbj1sJiZsLmdldEJ5TmFtZSYmbC5nZXRCeU5hbWUoZik7cmV0dXJuKG5ldyBBLmdhcGx1Z2lucy5MaW5rZXIobikpLmRlY29yYXRlKGcsaCl9KX0pO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShjKSl7dmFyIGU9U3RyaW5nKGNbMF0pLnNwbGl0KCIuIik7YltlLmxlbmd0aD09PTE/ZVswXTplWzFdXSYmZC5hcHBseShudWxsLGMpfWVsc2UgaWYoYz09PSJpc0xvYWRlZCIpcmV0dXJuISFkLmxvYWRlZH0sdGhpcy5ULDEpfWlJLlA9ImludGVybmFsLmNyZWF0ZUdhQ29tbWFuZFF1ZXVlIjtmdW5jdGlvbiBqSShhKXtyZXR1cm4gVWQoZnVuY3Rpb24oKXtpZigheWIoZS5wdXNoKSl0aHJvdyBFcnJvcigiT2JqZWN0IGF0ICIrYSsiIGluIHdpbmRvdyBpcyBub3QgYW4gYXJyYXkuIik7ZS5wdXNoLmFwcGx5KGUsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApKX0sdGhpcy5ULApCaChYRih0aGlzKS5QYigpKT8yOjEpfWpJLnB1YmxpY05hbWU9ImNyZWF0ZVF1ZXVlIjtmdW5jdGlvbiBrSShhLGIpe3ZhciBjPW51bGw7aWYoIWxoKGEpfHwhbWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInN0cmluZ3x1bmRlZmluZWQiXSxhcmd1bWVudHMpO3RyeXt2YXIgZD0oYnx8IiIpLnNwbGl0KCIiKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuImlnIi5pbmRleE9mKGUpPj0wfSkuam9pbigiIik7Yz1uZXcgUGQobmV3IFJlZ0V4cChhLGQpKX1jYXRjaChlKXt9cmV0dXJuIGN9a0kuUD0iaW50ZXJuYWwuY3JlYXRlUmVnZXgiO2Z1bmN0aW9uIGxJKGEpe31sSS5QPSJpbnRlcm5hbC5kZWNsYXJlQ29uc2VudFN0YXRlIjtmdW5jdGlvbiBtSShhKXt2YXIgYj0iIjtyZXR1cm4gYn1tSS5QPSJpbnRlcm5hbC5kZWNvZGVVcmxIdG1sRW50aXRpZXMiO2Z1bmN0aW9uIG5JKGEsYixjKXt2YXIgZDtyZXR1cm4gZH1uSS5QPSJpbnRlcm5hbC5kZWNvcmF0ZVVybFdpdGhHYUNvb2tpZXMiO2Z1bmN0aW9uIG9JKCl7fW9JLlA9ImludGVybmFsLmRlZmVyQ3VzdG9tRXZlbnRzIjtmdW5jdGlvbiBwSShhLGIpe3RyeXtyZXR1cm4gYS5jbG9zZXN0KGIpfWNhdGNoKGMpe3JldHVybiBudWxsfX07ZnVuY3Rpb24gcUkoKXt2YXIgYT1BLnNjcmVlbjtyZXR1cm57d2lkdGg6YT9hLndpZHRoOjAsaGVpZ2h0OmE/YS5oZWlnaHQ6MH19CmZ1bmN0aW9uIHJJKGEpe2lmKEIuaGlkZGVuKXJldHVybiEwO3ZhciBiPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoYi50b3A9PT1iLmJvdHRvbXx8Yi5sZWZ0PT09Yi5yaWdodHx8IUEuZ2V0Q29tcHV0ZWRTdHlsZSlyZXR1cm4hMDt2YXIgYz1BLmdldENvbXB1dGVkU3R5bGUoYSxudWxsKTtpZihjLnZpc2liaWxpdHk9PT0iaGlkZGVuIilyZXR1cm4hMDtmb3IodmFyIGQ9YSxlPWM7ZDspe2lmKGUuZGlzcGxheT09PSJub25lIilyZXR1cm4hMDt2YXIgZj1lLm9wYWNpdHksZz1lLmZpbHRlcjtpZihnKXt2YXIgaD1nLmluZGV4T2YoIm9wYWNpdHkoIik7aD49MCYmKGc9Zy5zdWJzdHJpbmcoaCs4LGcuaW5kZXhPZigiKSIsaCkpLGcuY2hhckF0KGcubGVuZ3RoLTEpPT09IiUiJiYoZz1nLnN1YnN0cmluZygwLGcubGVuZ3RoLTEpKSxmPVN0cmluZyhNYXRoLm1pbihOdW1iZXIoZyksTnVtYmVyKGYpKSkpfWlmKGYhPT12b2lkIDAmJk51bWJlcihmKTw9MClyZXR1cm4hMDsoZD1kLnBhcmVudEVsZW1lbnQpJiYKKGU9QS5nZXRDb21wdXRlZFN0eWxlKGQsbnVsbCkpfXJldHVybiExfQp2YXIgdEk9ZnVuY3Rpb24oYSl7dmFyIGI9c0koKSxjPWIuaGVpZ2h0LGQ9Yi53aWR0aCxlPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZj1lLmJvdHRvbS1lLnRvcCxnPWUucmlnaHQtZS5sZWZ0O3JldHVybiBmJiZnPygxLU1hdGgubWluKChNYXRoLm1heCgwLWUubGVmdCwwKStNYXRoLm1heChlLnJpZ2h0LWQsMCkpL2csMSkpKigxLU1hdGgubWluKChNYXRoLm1heCgwLWUudG9wLDApK01hdGgubWF4KGUuYm90dG9tLWMsMCkpL2YsMSkpOjB9LHNJPWZ1bmN0aW9uKCl7dmFyIGE9Qi5ib2R5LGI9Qi5kb2N1bWVudEVsZW1lbnR8fGEmJmEucGFyZW50RWxlbWVudCxjLGQ7aWYoQi5jb21wYXRNb2RlJiZCLmNvbXBhdE1vZGUhPT0iQmFja0NvbXBhdCIpYz1iP2IuY2xpZW50SGVpZ2h0OjAsZD1iP2IuY2xpZW50V2lkdGg6MDtlbHNle3ZhciBlPWZ1bmN0aW9uKGYsZyl7cmV0dXJuIGYmJmc/TWF0aC5taW4oZixnKTpNYXRoLm1heChmLGcpfTtjPWUoYj9iLmNsaWVudEhlaWdodDowLGE/CmEuY2xpZW50SGVpZ2h0OjApO2Q9ZShiP2IuY2xpZW50V2lkdGg6MCxhP2EuY2xpZW50V2lkdGg6MCl9cmV0dXJue3dpZHRoOmQsaGVpZ2h0OmN9fTt2YXIgdkk9ZnVuY3Rpb24oYSl7aWYodUkpe3ZhciBiPWFsKDI0LGZ1bmN0aW9uKCl7cmV0dXJuW119KTtpZihhPj0wJiZhPGIubGVuZ3RoJiZiW2FdKXt2YXIgYzsoYz1iW2FdKT09bnVsbHx8Yy5kaXNjb25uZWN0KCk7YlthXT12b2lkIDB9fWVsc2UgQS5jbGVhckludGVydmFsKGEpfSx5ST1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA7ZDxjLmxlbmd0aDtkKyspY1tkXT4xP2NbZF09MTpjW2RdPDAmJihjW2RdPTApO2lmKHVJKXt2YXIgZT0hMTtiZChmdW5jdGlvbigpe2V8fHdJKGEsYixjKSgpfSk7cmV0dXJuIHhJKGZ1bmN0aW9uKGYpe2U9ITA7Zm9yKHZhciBnPXtIZzowfTtnLkhnPGYubGVuZ3RoO2c9e0hnOmcuSGd9LGcuSGcrKyliZChmdW5jdGlvbihoKXtyZXR1cm4gZnVuY3Rpb24oKXthKGZbaC5IZ10pfX0oZykpfSwKYixjKX1yZXR1cm4gY2Qod0koYSxiLGMpLDFFMyl9LHdJPWZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKGgsbCl7dmFyIG49e3RvcDowLGJvdHRvbTowLHJpZ2h0OjAsbGVmdDowLHdpZHRoOjAsaGVpZ2h0OjB9LHA9e2JvdW5kaW5nQ2xpZW50UmVjdDpoLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGludGVyc2VjdGlvblJhdGlvOmwsaW50ZXJzZWN0aW9uUmVjdDpuLGlzSW50ZXJzZWN0aW5nOmw+MCxyb290Qm91bmRzOm4sdGFyZ2V0OmgsdGltZTpOYigpfTtiZChmdW5jdGlvbigpe2EocCl9KX1mb3IodmFyIGU9W10sZj1bXSxnPTA7ZzxiLmxlbmd0aDtnKyspZS5wdXNoKDApLGYucHVzaCgtMSk7Yy5zb3J0KGZ1bmN0aW9uKGgsbCl7cmV0dXJuIGgtbH0pO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgaD0wO2g8Yi5sZW5ndGg7aCsrKXt2YXIgbD10SShiW2hdKTtpZihsPmVbaF0pZm9yKDtmW2hdPGMubGVuZ3RoLTEmJmw+PWNbZltoXSsxXTspZChiW2hdLGwpLGZbaF0rKztlbHNlIGlmKGw8CmVbaF0pZm9yKDtmW2hdPj0wJiZsPD1jW2ZbaF1dOylkKGJbaF0sbCksZltoXS0tO2VbaF09bH19fSx4ST1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPW5ldyBBLkludGVyc2VjdGlvbk9ic2VydmVyKGEse3RocmVzaG9sZDpjfSksZT0wO2U8Yi5sZW5ndGg7ZSsrKWQub2JzZXJ2ZShiW2VdKTtmb3IodmFyIGY9YWwoMjQsZnVuY3Rpb24oKXtyZXR1cm5bXX0pLGc9MDtnPGYubGVuZ3RoO2crKylpZighZltnXSlyZXR1cm4gZltnXT1kLGc7cmV0dXJuIGYucHVzaChkKS0xfSx1ST0hKCFBLkludGVyc2VjdGlvbk9ic2VydmVyfHwhQS5JbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5KTsKdmFyIEpJPWZ1bmN0aW9uKGEpe3ZhciBiLGM9KGI9YT09bnVsbD92b2lkIDA6YS5pbmNsdWRlU2VsZWN0b3IpIT1udWxsP2I6ITAsZCxlPShkPWE9PW51bGw/dm9pZCAwOmEuaW5jbHVkZVZpc2liaWxpdHkpIT1udWxsP2Q6ITAsZixnPShmPWE9PW51bGw/dm9pZCAwOmEuc2VsZWN0TXVsdGlwbGVFbGVtZW50cykhPW51bGw/ZjohMSxoPShhPT1udWxsP3ZvaWQgMDphLmV4Y2x1ZGVFbGVtZW50U2VsZWN0b3JzKXx8W10sbD0oYT09bnVsbD92b2lkIDA6YS5maWVsZEZpbHRlcnMpfHx7ZW1haWw6ITAscGhvbmU6ITEsYWRkcmVzczohMX0sbj1hbCg2LGZ1bmN0aW9uKCl7cmV0dXJue319KSxwPXpJKHtpbmNsdWRlU2VsZWN0b3I6YyxpbmNsdWRlVmlzaWJpbGl0eTplLGV4Y2x1ZGVFbGVtZW50U2VsZWN0b3JzOmgsZmllbGRGaWx0ZXJzOmx9KSxxPW5bcF07aWYocSYmTmIoKS1xLnRpbWVzdGFtcDwyMDApe3ZhciByPXEucmVzdWx0LHQ7KHIuZWxlbWVudHMuc29tZShmdW5jdGlvbihxYSl7cmV0dXJuIHFhLmRpfSl8fAooKHQ9ci5naSk9PW51bGw/MDp0LmRpKSkmJkd1KFQuVy5yaik7cmV0dXJuIHJ9dmFyIHU9QUkoKSx2PXUuc3RhdHVzLHg9W10seSx6LEM9W107aWYoTSg1NjgpKXt2YXIgRD1CSShsKSxJPUNJKHUuZWxlbWVudHMsRCksRz1ESShJKSxOPUVJKEcsaCksUz1GSShOKTt5PVMuZmlsdGVyKGZ1bmN0aW9uKHFhKXtyZXR1cm4gcWEuRGE9PT1GRC5CYn0pWzBdO2Zvcih2YXIgVz1bXSxlYT17SWc6MH07ZWEuSWc8RC5sZW5ndGg7ZWE9e0lnOmVhLklnfSxlYS5JZysrKXt2YXIgamE9Ti5maWx0ZXIoZnVuY3Rpb24ocWEpe3JldHVybiBmdW5jdGlvbihpYil7cmV0dXJuIGliLkRhPT09RFtxYS5JZ119fShlYSkpO2phLmxlbmd0aD4xMCYmKHY9IjMiLGphPWphLnNsaWNlKDAsMTApKTtXPVcuY29uY2F0KGphKX1OPVc7IWcmJlMmJihOPVMpO2Zvcih2YXIgZmE9MDtmYTxOLmxlbmd0aDtmYSsrKXt2YXIgc2E9TltmYV07c2EuRGEhPT1GRC5LaCYmQy5wdXNoKEdJKHNhLGMsZSkpfX1lbHNle2lmKGwuZW1haWwpe3ZhciBkYT0KSEkodS5lbGVtZW50cyk7eD1FSShkYSxoKTt5PUlJKHgpO2RhLmxlbmd0aD4xMCYmKHY9IjMiKX0hZyYmeSYmKHg9W3ldKTtmb3IodmFyIG1hPTA7bWE8eC5sZW5ndGg7bWErKylDLnB1c2goR0koeFttYV0sYyxlKSk7Qz1DLnNsaWNlKDAsMTApfXkmJih6PUdJKHksYyxlKSk7dmFyIFBhPXtlbGVtZW50czpDLGdpOnosc3RhdHVzOnZ9O25bcF09e3RpbWVzdGFtcDpOYigpLHJlc3VsdDpQYX07dmFyIEZhOyhQYS5lbGVtZW50cy5zb21lKGZ1bmN0aW9uKHFhKXtyZXR1cm4gcWEuZGl9KXx8KChGYT1QYS5naSk9PW51bGw/MDpGYS5kaSkpJiZHdShULlcucmopO3JldHVybiBQYX0sREk9ZnVuY3Rpb24oYSl7dmFyIGI9YS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIHUuRGE9PT1GRC5LaH0pLGM9YS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIHUuRGE9PT1GRC5YZH0pO2lmKGEuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiB1LkRhPT09RkQuY2V9KS5sZW5ndGg9PT0wJiZjLmxlbmd0aD09PQowKWZvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdLGY9ZS5DYS5zcGxpdCgiICIpO2YubGVuZ3RoPjEmJmEucHVzaCh7Q2E6ZlswXSxEYTpGRC5YZCxlbGVtZW50OmUuZWxlbWVudCxPYzplLk9jfSx7Q2E6Zi5zbGljZSgxKS5qb2luKCIgIiksRGE6RkQuY2UsZWxlbWVudDplLmVsZW1lbnQsT2M6ZS5PY30pfWZvcih2YXIgZyxoPTAsbCxuPWZ1bmN0aW9uKHUpe3JldHVybiB1LkRhPT09RkQuZWUmJnUuQ2EubGVuZ3RoPj0zJiZ1LkNhLmxlbmd0aDw9NH0scD0wO3A8YS5sZW5ndGg7cCsrKXt2YXIgcT1hW3BdO2lmKG4ocSkmJmcmJnEuZWxlbWVudC5wYXJlbnRFbGVtZW50PT09ZyYmaDwzKXtpZihoKz0xLGwrPXEuQ2EsaD09PTMpe3ZhciByPXAtaCsxO2lmKGw9S0lbRkQuZWVdLm5hKGwpKWFbcl0uQ2E9bH19ZWxzZSBpZihoPTAsbD0iIixnPXZvaWQgMCxuKHEpKXtoKys7bD1xLkNhO3ZhciB0PXZvaWQgMDtnPSh0PXEuZWxlbWVudC5wYXJlbnRFbGVtZW50KSE9bnVsbD8KdDp2b2lkIDB9fXJldHVybiBhLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4hbih1KX0pfSxPST1mdW5jdGlvbihhLGIpe2lmKGEudmFsdWUmJkxJLmluZGV4T2YoKGEudHlwZXx8InRleHQiKS50b0xvd2VyQ2FzZSgpKSE9PS0xKXt2YXIgYz1hLmF1dG9jb21wbGV0ZTtpZihjKWZvcih2YXIgZD1jLnNwbGl0KCIgIiksZT0wO2U8ZC5sZW5ndGg7ZSsrKXt2YXIgZj1NSShhLnZhbHVlLGIsZFtlXSk7aWYoZilyZXR1cm4gZn12YXIgZyxoPVthLm5hbWUsYS5pZCwoZz1hLmFyaWFMYWJlbCkhPW51bGw/Zzp2b2lkIDAsYS5wbGFjZWhvbGRlcl0sbD1hLnBhcmVudEVsZW1lbnQ7bCYmbC50YWdOYW1lPT09IkxBQkVMIiYmaC5wdXNoKGwuaW5uZXJUZXh0KTt2YXIgbj1hLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7biYmbi50YWdOYW1lPT09IkxBQkVMIiYmIW4uaHRtbEZvciYmaC5wdXNoKG4uaW5uZXJUZXh0KTtpZihhLmlkKXt2YXIgcD1bXTt0cnl7cD1kb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xhYmVsW2Zvcj0iJysKYS5pZCsnIl0nKX1jYXRjaChEKXt9Zm9yKHZhciBxPTA7cTxwLmxlbmd0aDtxKyspaC5wdXNoKHBbcV0uaW5uZXJUZXh0KX1oPWguZmlsdGVyKGZ1bmN0aW9uKEQpe3JldHVybiBEJiZELnRyaW0oKX0pO2Zvcih2YXIgcix0PTAsdT0wO3U8aC5sZW5ndGg7dSsrKXt2YXIgdj1OSShhLGIsaFt1XSk7aWYodil7dmFyIHg9dix5PXguQ2Esej14LkRhLEM9eC5YcztDPnQmJih0PUMscj17Q2E6eSxEYTp6fSl9fXJldHVybiByfX0sTkk9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdO2lmKEtJW2VdLm5lKXt2YXIgZj1LSVtlXS5uZS5leGVjKGMudHJpbSgpKTtpZihmKXt2YXIgZz1hLGg9W10sbD1nLnZhbHVlLnRyaW0oKTtsJiZoLnB1c2gobCk7aWYoZy50YWdOYW1lPT09IlNFTEVDVCIpdHJ5e3ZhciBuPWcucXVlcnlTZWxlY3RvcignW3ZhbHVlPSInK2cudmFsdWUrJyJdJykscD1uJiZuLmlubmVyVGV4dC50cmltKCk7cCYmaC5wdXNoKHApfWNhdGNoKHUpe31mb3IodmFyIHE9Cmgscj12b2lkIDAsdD0wO3Q8cS5sZW5ndGgmJiFyO3QrKylyPUtJW2VdLm5hKHFbdF0pO2lmKHIpcmV0dXJue0RhOmUsQ2E6cixYczpmWzBdLmxlbmd0aC9jLnRyaW0oKS5sZW5ndGh9fX19fSxNST1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF07aWYoS0lbZV0uYXV0b2NvbXBsZXRlJiZLSVtlXS5hdXRvY29tcGxldGUuaW5kZXhPZihjKT49MCl7dmFyIGY9S0lbZV0ubmEoYS50cmltKCkpO2lmKGYpcmV0dXJue0RhOmUsQ2E6Zn19fX0sQkk9ZnVuY3Rpb24oYSl7dmFyIGI9W107YS5lbWFpbCYmYi5wdXNoKEZELkJiKTthLnBob25lJiZiLnB1c2goRkQuZWUpO2EuYWRkcmVzcyYmYi5wdXNoKEZELlhkLEZELmNlLEZELnhmLEZELnFnLEZELktoKTtyZXR1cm4gYn0sQ0k9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W10sZD0wO2Q8YS5sZW5ndGg7ZCsrKXt2YXIgZT1hW2RdLGY9ZS5lbGVtZW50LGc9ZS5PYyxoO2E6e3ZhciBsPWYsbj1iLApwPWwuaW5uZXJIVE1MO1BJLmluZGV4T2YobC50YWdOYW1lKT49MCYmKHA9bC52YWx1ZXx8cCk7aWYocCl7dmFyIHE7Yjp7Zm9yKHZhciByPXAsdD1uLHU9MDt1PHQubGVuZ3RoO3UrKyl7dmFyIHY9dFt1XTtpZighS0lbdl0ubWUpe3ZhciB4PUtJW3ZdLm5hKHIudHJpbSgpKTtpZih4KXtxPXtEYTp2LENhOnh9O2JyZWFrIGJ9fX1xPXZvaWQgMH1pZihxKXtoPXE7YnJlYWsgYX1pZihQSS5pbmRleE9mKGwudGFnTmFtZSkhPT0tMSl7aD1PSShsLG4pO2JyZWFrIGF9fWg9dm9pZCAwfXZhciB5PWg7aWYoeSl7dmFyIHo9eTtjLnB1c2goe0NhOnouQ2EsRGE6ei5EYSxlbGVtZW50OmYsT2M6Z30pfX1yZXR1cm4gY30sRkk9ZnVuY3Rpb24oYSl7dmFyIGI9W107aWYoYS5sZW5ndGg9PT0wKXJldHVybiBiO3ZhciBjPXt9LGQ7Zm9yKGQgaW4gRkQpaWYoYz17Vmc6Yy5WZ30sYy5WZz1kLEZELmhhc093blByb3BlcnR5KGMuVmcpKXt2YXIgZT1hLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gZnVuY3Rpb24oZyl7cmV0dXJuIGcuRGE9PT0KRkRbZi5WZ119fShjKSk7ZS5sZW5ndGghPT0wJiYoRkRbYy5WZ109PT1GRC5CYiYmKGU9UUkoZSxmdW5jdGlvbihmKXtyZXR1cm4hUkkudGVzdChmLkNhKX0pLGU9UUkoZSxmdW5jdGlvbihmKXtyZXR1cm4gZi5lbGVtZW50LnRhZ05hbWUudG9VcHBlckNhc2UoKT09PSJJTlBVVCJ9KSxlPVFJKGUsZnVuY3Rpb24oZil7cmV0dXJuIXJJKGYuZWxlbWVudCl9KSksYi5wdXNoKGVbMF0pKX1yZXR1cm4gYn0sR0k9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuZWxlbWVudCxlPWEuT2MsZj17Q2E6YS5DYSx0eXBlOmEuRGEsdGFnTmFtZTpkLnRhZ05hbWV9O2lmKGIpe3ZhciBnLGg9U0koZCk7aWYoZz0oZT9lKyJ8IitoOmgpLnNsaWNlKDAsVEkpKWYucXVlcnlTZWxlY3Rvcj1nfWMmJihmLmlzVmlzaWJsZT0hckkoZCkpO2UmJihmLmRpPSEwKTtyZXR1cm4gZn0sekk9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGU7Yj1hLmluY2x1ZGVTZWxlY3RvcjtjPWEuaW5jbHVkZVZpc2liaWxpdHk7ZD1hLmV4Y2x1ZGVFbGVtZW50U2VsZWN0b3JzOwplPWEuZmllbGRGaWx0ZXJzO3ZhciBmPSEhYisiLiIrISFjO2QubGVuZ3RoJiYoZis9Ii4iK2Quam9pbigiLiIpKTtyZXR1cm4gZis9Ii4iK2UuZW1haWwrIi4iK2UucGhvbmUrIi4iK2UuYWRkcmVzc30sSUk9ZnVuY3Rpb24oYSl7aWYoYS5sZW5ndGghPT0wKXt2YXIgYjtiPVFJKGEsZnVuY3Rpb24oYyl7cmV0dXJuIVJJLnRlc3QoYy5DYSl9KTtiPVFJKGIsZnVuY3Rpb24oYyl7cmV0dXJuIGMuZWxlbWVudC50YWdOYW1lLnRvVXBwZXJDYXNlKCk9PT0iSU5QVVQifSk7Yj1RSShiLGZ1bmN0aW9uKGMpe3JldHVybiFySShjLmVsZW1lbnQpfSk7cmV0dXJuIGJbMF19fSxFST1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDxhLmxlbmd0aDtkKyspe2Zvcih2YXIgZT0hMCxmPTA7ZjxiLmxlbmd0aDtmKyspe3ZhciBnPWJbZl07aWYoZyYmcEkoYVtkXS5lbGVtZW50LGcpKXtlPSExO2JyZWFrfX1hW2RdLkRhPT09RkQuQmImJk0oNjAyKSYmKFJJLnRlc3QoYVtkXS5DYSl8fGFbZF0uZWxlbWVudC50YWdOYW1lLnRvVXBwZXJDYXNlKCk9PT0KIkEiJiZhW2RdLmVsZW1lbnQuaGFzQXR0cmlidXRlKCJocmVmIikmJmFbZF0uZWxlbWVudC5nZXRBdHRyaWJ1dGUoImhyZWYiKS5pbmRleE9mKCJtYWlsdG86IikhPT0tMT9lPSExOmFbZF0uZWxlbWVudC5jbG9zZXN0KCJmb290ZXIiKSE9PW51bGwmJihlPSExKSk7ZSYmYy5wdXNoKGFbZF0pfXJldHVybiBjfSxRST1mdW5jdGlvbihhLGIpe2lmKGEubGVuZ3RoPD0xKXJldHVybiBhO3ZhciBjPWEuZmlsdGVyKGIpO3JldHVybiBjLmxlbmd0aD09PTA/YTpjfSxTST1mdW5jdGlvbihhKXtpZihhPT09Qi5ib2R5KXJldHVybiJib2R5IjtpZihhLmlkKXJldHVybiIjIithLmlkO3ZhciBiPWEucGFyZW50RWxlbWVudDtpZihiKXt2YXIgYz1TSShiKSxkPVVJKGEsYiksZT1WSShhKSsiOm50aC1jaGlsZCgiK2QrIikiO3JldHVybiBjP2MrIj4iK2U6ZX12YXIgZj1hLnBhcmVudE5vZGU7aWYoZiBpbnN0YW5jZW9mIFNoYWRvd1Jvb3Qpe3ZhciBnPVVJKGEsZik7cmV0dXJuIFZJKGEpKyI6bnRoLWNoaWxkKCIrCmcrIikifXJldHVybiBhLnRhZ05hbWU/YS50YWdOYW1lLnRvTG93ZXJDYXNlKCk6IiJ9LFZJPWZ1bmN0aW9uKGEpe2lmKGEuY2xhc3NMaXN0JiZhLmNsYXNzTGlzdC5sZW5ndGg+MCl7dmFyIGI9QXJyYXkuZnJvbShhLmNsYXNzTGlzdCxmdW5jdGlvbihjKXtyZXR1cm4gQ1NTLmVzY2FwZShjKX0pLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4gYy5sZW5ndGg+MH0pO2lmKGIubGVuZ3RoPjApcmV0dXJuIi4iK2Iuam9pbigiLiIpfXJldHVybiIifSxVST1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1iLmNoaWxkcmVuLGQ9MDtkPGMubGVuZ3RoO2QrKylpZihjW2RdPT09YSlyZXR1cm4gZCsxO3JldHVybiAxfSxIST1mdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdLGU9ZC5lbGVtZW50LGY9ZC5PYyxnPWUudGV4dENvbnRlbnQ7ZS50YWdOYW1lLnRvVXBwZXJDYXNlKCk9PT0iSU5QVVQiJiZlLnZhbHVlJiYoZz1lLnZhbHVlKTtpZihnKXt2YXIgaD0KZy5tYXRjaChLRCk7aWYoaCl7dmFyIGw9aFswXTtMRChsKXx8Yi5wdXNoKHtlbGVtZW50OmUsQ2E6bCxEYTpGRC5CYixPYzpmfSl9fX1yZXR1cm4gYn0sQUk9ZnVuY3Rpb24oKXt2YXIgYT1bXSxiPUIuYm9keTtpZighYilyZXR1cm57ZWxlbWVudHM6YSxzdGF0dXM6IjQifTt2YXIgYz1XSShiLDAsIiIsYSk7cmV0dXJue2VsZW1lbnRzOmEsc3RhdHVzOmN9fSxXST1mdW5jdGlvbihhLGIsYyxkKXtmb3IodmFyIGU9YS5xdWVyeVNlbGVjdG9yQWxsKCIqIiksZj1lLmxlbmd0aD4xRTQ/IjIiOiIxIixnPTA7ZzxNYXRoLm1pbihlLmxlbmd0aCwxRTQpO2crKyl7dmFyIGg9ZVtnXTtpZighKFhJLmluZGV4T2YoaC50YWdOYW1lLnRvVXBwZXJDYXNlKCkpPj0wKSYmaC5jaGlsZHJlbiBpbnN0YW5jZW9mIEhUTUxDb2xsZWN0aW9uKXt2YXIgbD0hMTtpZihNKDU4MikmJmguc2hhZG93Um9vdCYmYjwxKXt2YXIgbj1TSShoKTtXSShoLnNoYWRvd1Jvb3QsYisxLGM/YysifCIrbjpuLGQpPT09IjIiJiYKKGY9IjIiKTtsPSEwfXZhciBwPSExO2lmKCFsKWZvcih2YXIgcT0wO3E8TWF0aC5taW4oaC5jaGlsZEVsZW1lbnRDb3VudCwxRTQpO3ErKylpZighKFlJLmluZGV4T2YoaC5jaGlsZHJlbltxXS50YWdOYW1lLnRvVXBwZXJDYXNlKCkpPj0wKSl7cD0hMDticmVha30oIXAmJiFsfHxNKDU2OCkmJlBJLmluZGV4T2YoaC50YWdOYW1lKSE9PS0xKSYmZC5wdXNoKHtlbGVtZW50OmgsT2M6Yj4wP2M6dm9pZCAwfSl9fXJldHVybiBmfSxSST0vc3VwcG9ydHxub3JlcGx5L2ksWEk9IlNDUklQVCBTVFlMRSBJTUcgU1ZHIFBBVEggQlIgTk9TQ1JJUFQgVEVYVEFSRUEiLnNwbGl0KCIgIiksWUk9WyJCUiJdLFRJPU5mKDcwLDUwKSxQST1bIklOUFVUIiwiU0VMRUNUIl0sTEk9InRleHQgdGVsIHNlYXJjaCBudW1iZXIgaGlkZGVuIGVtYWlsIHNlbGVjdC1vbmUiLnNwbGl0KCIgIiksWkk9UmVnRXhwKCJwaG9uZXxtb2JpbGV8Y29udGFjdC4/bnVtYmVyfHRlbGVmb25udW1tZXJ8dGVsZWZvbm98dGVsXHUwMGU5Zm9ub3x0ZWxmaXhlfFx1OTZmYlx1OGE3MXx0ZWxlZm9uZXx0ZWxlbW92ZWx8XHUwNDQyXHUwNDM1XHUwNDNiXHUwNDM1XHUwNDQ0XHUwNDNlXHUwNDNkfFx1MDkyZVx1MDk0Ylx1MDkyY1x1MDkzZVx1MDkwN1x1MDkzMnxcdTc1MzVcdThiZGR8XHU2MjRiXHU2NzNhXHU1M2Y3fFx1MGQyZVx1MGQ0YVx1MGQyY1x1MGQ0OFx1MGQzMlx1MGQ0ZFx1MjAwZHwoXnxbLV9dKXRlbFstX10/KFxcZCspKihcXFsuKlxcXSkqJHwoPzpcdWM4MDRcdWQ2NTR8XHVkNTc4XHViNGRjXHVkM2YwfFx1ZDczNFx1YjMwMFx1ZDNmMHxcdWQ3MzRcdWIzMDBcdWM4MDRcdWQ2NTQpKD86Lj9cdWJjODhcdWQ2MzgpP3woXFxifF98XFwqKXRlbGVmb24oXFxifF98XFwqKXx0ZWxlcG9ufHBvbnNlbHwobm9tb3J8bm9cXC4/KS4/KGhwfGhhbmRwaG9uZSkiLAoiaSIpLCRJPVJlZ0V4cCgiXm5hbWV8ZnVsbC4/bmFtZXx5b3VyLj9uYW1lfGN1c3RvbWVyLj9uYW1lfGJpbGwuP25hbWV8c2hpcC4/bmFtZXxuYW1lLipmaXJzdC4qbGFzdHxmaXJzdGFuZGxhc3RuYW1lfGNvbnRhY3QuPyhuYW1lfHBlcnNvbil8bm9tYnJlLip5LiphcGVsbGlkb3N8Xm5vbSg/IVthLXpBLVpdKXxcdTMwNGFcdTU0MGRcdTUyNGR8XHU2YzBmXHU1NDBkfF5ub21lfFx1MDY0Nlx1MDYyN1x1MDY0NS4qXHUwNjQ2XHUwNjI3XHUwNjQ1LipcdTA2MmVcdTA2MjdcdTA2NDZcdTA2NDhcdTA2MjdcdTA2MmZcdTA2YWZcdTA2Y2N8XHU1OWQzXFxzKlx1NTQwZHxcdTA0M2FcdTA0M2VcdTA0M2RcdTA0NDJcdTA0MzBcdTA0M2FcdTA0NDJcdTA0M2RcdTA0M2VcdTA0MzUuP1x1MDQzYlx1MDQzOFx1MDQ0Nlx1MDQzZXwoXFxifF98XFwqKWFkW1x1MDEzMV0/IHNveWFkW1x1MDEzMV0/KFxcYnxffFxcKil8XHVjMTMxXHViYTg1fG5hbWEuPyhsZW5na2FwfHBlbmVyaW1hfGthbXUpIiwKImkiKSxhSj1SZWdFeHAoImZpcnN0LipuYW1lfGluaXRpYWxzfGZuYW1lfGZpcnN0JHxnaXZlbi4qbmFtZXx2b3JuYW1lfG5vbWJyZXxmb3JlbmFtZXxwclx1MDBlOW5vbXxwcmVub218XHU1NDBkfG5vbWV8XHUwNDE4XHUwNDNjXHUwNDRmfFx1MDY0Nlx1MDYyN1x1MDY0NXxcdWM3NzRcdWI5ODR8XHUwZDJhXHUwZDQ3XHUwZDMwXHUwZDRkfChcXGJ8X3xcXCopKGlzaW18YWR8YWQoaXxcdTAxMzF8aW5penxcdTAxMzFuXHUwMTMxeik/KShcXGJ8X3xcXCopfFx1MDkyOFx1MDkzZVx1MDkyZXxuYW1hIGRlcGFuIiwiaSIpLGJKPVJlZ0V4cCgibGFzdC4qbmFtZXxsbmFtZXxzdXJuYW1lKD8hXFxkKXxsYXN0JHxzZWNvbmRuYW1lfGZhbWlseS4qbmFtZXxuYWNobmFtZXxhcGVsbGlkb3M/fGZhbWlsbGV8Xm5vbSg/IVthLXpBLVpdKXxjb2dub21lfFx1NTlkM3xhcGVsaWRvc3xzdXJlbmFtZXxzb2JyZW5vbWV8XHUwNDI0XHUwNDMwXHUwNDNjXHUwNDM4XHUwNDNiXHUwNDM4XHUwNDRmfFx1MDY0Nlx1MDYyN1x1MDY0NS4qXHUwNjJlXHUwNjI3XHUwNjQ2XHUwNjQ4XHUwNjI3XHUwNjJmXHUwNmFmXHUwNmNjfFx1MDkwOVx1MDkyYVx1MDkyOFx1MDkzZVx1MDkyZXxcdTBkMmVcdTBkMzFcdTBkNDFcdTBkMmFcdTBkNDdcdTBkMzBcdTBkNGR8KFxcYnxffFxcKikoc295aXNpbXxzb3lhZChpfFx1MDEzMXxpbml6fFx1MDEzMW5cdTAxMzF6KT8pKFxcYnxffFxcKil8XFxiXHVjMTMxKD86W15cdWJhODVdfFxcYil8bmFtYSBiZWxha2FuZyIsCiJpIiksY0o9UmVnRXhwKCJjb3VudHJ5fGNvdW50cmllc3xwYVx1MDBlZHN8cGFpc3woXFxifF8pbGFuZChcXGJ8XykoPyEuKihtYXJrLiopKXwoXnxbXihcdTUxNjV8XHU1MWZhKV0pXHU1NmZkfFx1NTZmZFx1NWJiNnxcdWFkNmRcdWFjMDB8XHViMDk4XHViNzdjfChcXGJ8XykoXHUwMGZjbGtlfHVsY2V8dWxrZSkoXFxifF8pfFx1MDZhOVx1MDYzNFx1MDY0OFx1MDYzMXxuZWdhcmEiLCJpIiksZEo9UmVnRXhwKCIoXnxbXi5dKXppcHxwb3N0YWx8cG9zdC4qY29kZXxwY29kZXxwaW4uP2NvZGV8cG9zdGxlaXR6YWhsfFxcYmNwXFxifFxcYmNkcFxcYnxcXGJjYXBcXGJ8XHU5MGY1XHU0ZmJmXHU3NTZhXHU1M2Y3fGNvZGlnb3xjb2Rwb3N8XFxiY2VwXFxifFx1MDQxZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQ0Ylx1MDQzOS4/XHUwNDE4XHUwNDNkXHUwNDM0XHUwNDM1XHUwNDNhXHUwNDQxfFx1MDkyYVx1MDkzZlx1MDkyOC4/XHUwOTE1XHUwOTRiXHUwOTIxfFx1MGQyYVx1MGQzZlx1MGQyOFx1MGQ0ZFx1MjAwZFx1MGQxNVx1MGQ0Ylx1MGQyMVx1MGQ0ZHxcdTkwYWVcdTY1M2ZcdTdmMTZcdTc4MDF8XHU5MGFlXHU3ZjE2fFx1OTBmNVx1OTA1ZVx1NTM0MFx1ODY1ZnwoXFxifF8pcG9zdGEga29kdShcXGJ8Xyl8XHVjNmIwXHVkM2I4Lj9cdWJjODhcdWQ2Mzh8a29kZS4/cG9zIiwKImkiKSxlSj17fSxLST0oZUpbRkQuQmJdPXttZTohMSxuYTpNRH0sZUpbRkQuZWVdPXttZTohMCxhdXRvY29tcGxldGU6WyJ0ZWwiLCJ0ZWwtbmF0aW9uYWwiLCJ0ZWwtbG9jYWwiXSxuZTpaSSxuYTpmdW5jdGlvbihhKXtyZXR1cm4gR0QoYSwhMCl9fSxlSltGRC5LaF09e21lOiEwLGF1dG9jb21wbGV0ZTpbIm5hbWUiLCJjYy1uYW1lIl0sbmU6JEksbmE6TkR9LGVKW0ZELlhkXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsiZ2l2ZW4tbmFtZSIsImNjLWdpdmVuLW5hbWUiXSxuZTphSixuYTpORH0sZUpbRkQuY2VdPXttZTohMCxhdXRvY29tcGxldGU6WyJmYW1pbHktbmFtZSIsImNjLWZhbWlseS1uYW1lIl0sbmU6YkosbmE6TkR9LGVKW0ZELnhmXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsiY291bnRyeSIsImNvdW50cnktbmFtZSJdLG5lOmNKLG5hOk5EfSxlSltGRC5xZ109e21lOiEwLGF1dG9jb21wbGV0ZTpbInBvc3RhbC1jb2RlIl0sbmU6ZEosbmE6SUR9LGVKKTtmdW5jdGlvbiBmSihhKXt2YXIgYjtMKHRoaXMsImRldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEiLCJhdXRvIik7dmFyIGM9VGQoYSl8fHt9LGQ9Skkoe2luY2x1ZGVTZWxlY3RvcjohIWMuaW5jbHVkZVNlbGVjdG9yLGluY2x1ZGVWaXNpYmlsaXR5OiEhYy5pbmNsdWRlVmlzaWJpbGl0eSxleGNsdWRlRWxlbWVudFNlbGVjdG9yczpjLmV4Y2x1ZGVFbGVtZW50U2VsZWN0b3JzLGZpZWxkRmlsdGVyczpjLmZpZWxkRmlsdGVycyxzZWxlY3RNdWx0aXBsZUVsZW1lbnRzOiEhYy5zZWxlY3RNdWx0aXBsZUVsZW1lbnRzfSk7Yj1uZXcga2I7dmFyIGU9bmV3IEdkO2Iuc2V0KCJlbGVtZW50cyIsZSk7Zm9yKHZhciBmPWQuZWxlbWVudHMsZz0wO2c8Zi5sZW5ndGg7ZysrKWUucHVzaChnSihmW2ddKSk7ZC5naSE9PXZvaWQgMCYmYi5zZXQoInByZWZlcnJlZEVtYWlsRWxlbWVudCIsCmdKKGQuZ2kpKTtiLnNldCgic3RhdHVzIixkLnN0YXR1cyk7aWYoYy5yZWFkRnJvbURhdGFMYXllcil7aEooZSxjKTt2YXIgaD1QRCgpLGw9aC5zdDtiLnNldCgiZGF0YUxheWVyU2VhcmNoVGltZSIsaC52dCk7Yi5zZXQoImRhdGFMYXllclNlYXJjaENvdW50IixsKX1yZXR1cm4gYn0KdmFyIGlKPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIEZELkJiOnJldHVybiJlbWFpbCI7Y2FzZSBGRC5lZTpyZXR1cm4icGhvbmVfbnVtYmVyIjtjYXNlIEZELlhkOnJldHVybiJmaXJzdF9uYW1lIjtjYXNlIEZELmNlOnJldHVybiJsYXN0X25hbWUiO2Nhc2UgRkQudGo6cmV0dXJuInN0cmVldCI7Y2FzZSBGRC5saTpyZXR1cm4iY2l0eSI7Y2FzZSBGRC5qajpyZXR1cm4icmVnaW9uIjtjYXNlIEZELnFnOnJldHVybiJwb3N0YWxfY29kZSI7Y2FzZSBGRC54ZjpyZXR1cm4iY291bnRyeSJ9fSxqSj1mdW5jdGlvbihhKXt2YXIgYj1uZXcga2IsYz1pSihhLkRhKTtjIT09dm9pZCAwJiZiLnNldCgidHlwZSIsYyk7Yi5zZXQoInVzZXJEYXRhIixhLkNhKTtiLnNldCgidGFnTmFtZSIsIkRMWVIiKTtyZXR1cm4gYn0saEo9ZnVuY3Rpb24oYSxiKXt2YXIgYz1RRCgpO2lmKE0oNTY4KSlmb3IodmFyIGQ9bmV3IFNldChhLmhjKCkubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByLmdldCgidHlwZSIpfSkpLAplPW0oYyksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPW0oZi52YWx1ZSksaD1nLm5leHQoKS52YWx1ZSxsPWcubmV4dCgpLnZhbHVlLG49aCxwPWw7aWYoYi5zZWxlY3RNdWx0aXBsZUVsZW1lbnRzKWEucHVzaChqSihwKSk7ZWxzZXt2YXIgcT1pSihuKTtxJiYhZC5oYXMocSkmJmEucHVzaChqSihwKSl9fWVsc2UgYy5oYXMoRkQuQmIpJiYoYi5zZWxlY3RNdWx0aXBsZUVsZW1lbnRzfHxhLmxlbmd0aCgpPT09MCkmJmEucHVzaChqSihjLmdldChGRC5CYikpKX0sZ0o9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IGtiO2Iuc2V0KCJ1c2VyRGF0YSIsYS5DYSk7Yi5zZXQoInRhZ05hbWUiLGEudGFnTmFtZSk7YS5xdWVyeVNlbGVjdG9yIT09dm9pZCAwJiZiLnNldCgicXVlcnlTZWxlY3RvciIsYS5xdWVyeVNlbGVjdG9yKTthLmlzVmlzaWJsZSE9PXZvaWQgMCYmYi5zZXQoImlzVmlzaWJsZSIsYS5pc1Zpc2libGUpO2lmKE0oNTY4KSl7dmFyIGM9aUooYS50eXBlKTtjIT09CnZvaWQgMCYmYi5zZXQoInR5cGUiLGMpfWVsc2Ugc3dpdGNoKGEudHlwZSl7Y2FzZSBGRC5CYjpiLnNldCgidHlwZSIsImVtYWlsIil9cmV0dXJuIGJ9O2ZKLlA9ImludGVybmFsLmRldGVjdFVzZXJQcm92aWRlZERhdGEiOwp2YXIga0o9ZnVuY3Rpb24oYSl7dmFyIGI9aGQoYSxbImJ1dHRvbiIsImlucHV0Il0sNTApO2lmKCFiKXJldHVybiBudWxsO3ZhciBjPVN0cmluZyhiLnRhZ05hbWUpLnRvTG93ZXJDYXNlKCk7aWYoYz09PSJidXR0b24iKXJldHVybiBiO2lmKGM9PT0iaW5wdXQiKXt2YXIgZD1lZChiLCJ0eXBlIik7aWYoZD09PSJidXR0b24ifHxkPT09InN1Ym1pdCJ8fGQ9PT0iaW1hZ2UifHxkPT09ImZpbGUifHxkPT09InJlc2V0IilyZXR1cm4gYn1yZXR1cm4gbnVsbH0sbEo9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWMudGFyZ2V0O2lmKGQpe3ZhciBlPSRGKGEsImluZGl2aWR1YWxFbGVtZW50SWRzIixbXSk7aWYoZS5sZW5ndGg+MCl7dmFyIGY9ZUcoZCxiLGUpO3VFKGYpfXZhciBnPSExLGg9JEYoYSwiY29tbW9uQnV0dG9uSWRzIixbXSk7aWYoaC5sZW5ndGg+MCl7dmFyIGw9a0ooZCk7aWYobCl7dmFyIG49ZUcobCxiLGgpO3VFKG4pO2c9ITB9fXZhciBwPSRGKGEsInNlbGVjdG9yVG9UcmlnZ2VySWRzIiwKe30pLHE7Zm9yKHEgaW4gcClpZihwLmhhc093blByb3BlcnR5KHEpKXt2YXIgcj1nP3BbcV0uZmlsdGVyKGZ1bmN0aW9uKHYpe3JldHVybiBoLmluZGV4T2Yodik9PT0tMX0pOnBbcV07aWYoci5sZW5ndGghPT0wKXt2YXIgdD1wSShkLHEpO2lmKHQpe3ZhciB1PWVHKHQsYixyKTt1RSh1KX19fX19OwpmdW5jdGlvbiBtSihhLGIpe2lmKCFmaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0fHVuZGVmaW5lZCIsImFueSJdLGFyZ3VtZW50cyk7dmFyIGM9YT9UZChhKTp7fSxkPUpiKGMubWF0Y2hDb21tb25CdXR0b25zKSxlPSEhYy5jc3NTZWxlY3RvcixmPVpGKGIpO0wodGhpcywiZGV0ZWN0X2NsaWNrX2V2ZW50cyIsYy5tYXRjaENvbW1vbkJ1dHRvbnMsYy5jc3NTZWxlY3Rvcik7dmFyIGc9Yy51c2VWMkV2ZW50TmFtZT8iZ3RtLmNsaWNrLXYyIjoiZ3RtLmNsaWNrIixoPWMudXNlVjJFdmVudE5hbWU/ImVjbCI6ImNsIixsPWZ1bmN0aW9uKHApe3AucHVzaChmKTtyZXR1cm4gcH07aWYoZXx8ZCl7aWYoZCYmZEcoaCwiY29tbW9uQnV0dG9uSWRzIixsLFtdKSxlKXt2YXIgbj1MYihTdHJpbmcoYy5jc3NTZWxlY3RvcikpO2RHKGgsInNlbGVjdG9yVG9UcmlnZ2VySWRzIiwKZnVuY3Rpb24ocCl7cC5oYXNPd25Qcm9wZXJ0eShuKXx8KHBbbl09W10pO2wocFtuXSk7cmV0dXJuIHB9LHt9KX19ZWxzZSBkRyhoLCJpbmRpdmlkdWFsRWxlbWVudElkcyIsbCxbXSk7YkcoaCxmdW5jdGlvbigpeyRjKEIsImNsaWNrIixmdW5jdGlvbihwKXtsSihoLGcscCl9LCEwKX0pO3JldHVybiBmfW1KLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uQ2xpY2siOwp2YXIgbko9ZnVuY3Rpb24oKXt0aGlzLkg9W107dGhpcy5OPSEhQS5NdXRhdGlvbk9ic2VydmVyfTtuSi5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXt2YXIgYj10aGlzO2lmKHRoaXMuSC5sZW5ndGg9PT0wKXt2YXIgYz1mdW5jdGlvbigpe3ZhciBkPUIuYm9keTtpZihkKWlmKGIuTikobmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXtmb3IodmFyIGY9MDtmPGIuSC5sZW5ndGg7ZisrKWJkKGIuSFtmXSl9KSkub2JzZXJ2ZShkLHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pO2Vsc2V7dmFyIGU9ITE7JGMoZCwiRE9NTm9kZUluc2VydGVkIixmdW5jdGlvbigpe2V8fChlPSEwLGJkKGZ1bmN0aW9uKCl7ZT0hMTtmb3IodmFyIGY9MDtmPGIuSC5sZW5ndGg7ZisrKWJkKGIuSFtmXSl9KSl9KX19O0IuYm9keT9jKCk6YmQoYyl9dGhpcy5ILnB1c2goYSl9O25KLnByb3RvdHlwZS5SPWZ1bmN0aW9uKGEpe2lmKHRoaXMuSClmb3IodmFyIGI9MDtiPHRoaXMuSC5sZW5ndGg7YisrKXRoaXMuSFtiXT09PQphJiZ0aGlzLkguc3BsaWNlKGIsMSl9O3ZhciBvSj1uZXcgbko7CmZ1bmN0aW9uIHRKKGEsYil7cmV0dXJuIHB9dEouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25FbGVtZW50VmlzaWJpbGl0eSI7ZnVuY3Rpb24gdUooKXt9dUouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25FcnJvciI7CnZhciB3Sj1mdW5jdGlvbihhLGIpe0diKGEsZnVuY3Rpb24oYyxkKXt2YXIgZT1iW2NdO2UmJkdiKGQsZnVuY3Rpb24oZixnKXt2SihnLGUpfSl9KX0seko9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7dmFyIGg9IiIrYjtpZihjW2hdKWNbaF0ucHVzaChhKTtlbHNle3ZhciBsPVthXTtjW2hdPWw7dmFyIG49ZFtoXTtufHwobj17fSxkW2hdPW4pO2UucHVzaChmdW5jdGlvbihwKXt2YXIgcT1wLnRhcmdldDtpZihxKXt2YXIgcj1pRyhxKTtpZihyKXt2YXIgdD14SihyLCJndG1Gb3JtSW50ZXJhY3RJZCIsZiksdT14SihxLCJndG1Gb3JtSW50ZXJhY3RGaWVsZElkIixnKTtpZih0IT09bnVsbCYmdSE9PW51bGwpe3ZhciB2PW5bdF07dj8odi5SYiYmKEEuY2xlYXJUaW1lb3V0KHYuUmIpLHYuZGYuZ2V0QXR0cmlidXRlKCJkYXRhLWd0bS1mb3JtLWludGVyYWN0LWZpZWxkLWlkIikhPT11JiZ2Sih2LGwpKSx2LmRmPXEseUoodixsLGIpKTooblt0XT17Zm9ybTpyLGRmOnEsc2VxdWVuY2VOdW1iZXI6MCwKUmI6bnVsbH0seUooblt0XSxsLGIpKX19fX0pfX0sdko9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmZvcm0sZD1hLmRmLGU9ZUcoYywiZ3RtLmZvcm1JbnRlcmFjdCIsYiksZj1jLmFjdGlvbjtmJiZmLnRhZ05hbWUmJihmPWMuY2xvbmVOb2RlKCExKS5hY3Rpb24pO2VbImd0bS5lbGVtZW50VXJsIl09ZjtlWyJndG0uaW50ZXJhY3RlZEZvcm1OYW1lIl09Yy5nZXRBdHRyaWJ1dGUoIm5hbWUiKSE9bnVsbD9jLmdldEF0dHJpYnV0ZSgibmFtZSIpOnZvaWQgMDtlWyJndG0uaW50ZXJhY3RlZEZvcm1MZW5ndGgiXT1jLmxlbmd0aDtlWyJndG0uaW50ZXJhY3RlZEZvcm1GaWVsZCJdPWQ7ZVsiZ3RtLmludGVyYWN0ZWRGb3JtRmllbGRJZCJdPWQuaWQ7ZVsiZ3RtLmludGVyYWN0ZWRGb3JtRmllbGROYW1lIl09ZC5nZXRBdHRyaWJ1dGUoIm5hbWUiKSE9bnVsbD9kLmdldEF0dHJpYnV0ZSgibmFtZSIpOnZvaWQgMDtlWyJndG0uaW50ZXJhY3RlZEZvcm1GaWVsZFBvc2l0aW9uIl09aEcoYyxkLCJndG1Gb3JtSW50ZXJhY3RGaWVsZElkIik7CmVbImd0bS5pbnRlcmFjdGVkRm9ybUZpZWxkVHlwZSJdPWQuZ2V0QXR0cmlidXRlKCJ0eXBlIikhPW51bGw/ZC5nZXRBdHRyaWJ1dGUoInR5cGUiKTp2b2lkIDA7ZVsiZ3RtLmludGVyYWN0U2VxdWVuY2VOdW1iZXIiXT1hLnNlcXVlbmNlTnVtYmVyO3VFKGUpO2Euc2VxdWVuY2VOdW1iZXIrKzthLlJiPW51bGx9LHlKPWZ1bmN0aW9uKGEsYixjKXtjP2EuUmI9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dkooYSxiKX0sYyk6dkooYSxiKX0seEo9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3RyeXtpZihkPWEuZGF0YXNldFtiXSlyZXR1cm4gZDtkPVN0cmluZyhjKCkpO2EuZGF0YXNldFtiXT1kfWNhdGNoKGUpe2Q9bnVsbH1yZXR1cm4gZH07CmZ1bmN0aW9uIEFKKGEsYil7dmFyIGM9dGhpcztpZighZmgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdHx1bmRlZmluZWQiLCJhbnkiXSxhcmd1bWVudHMpO1RGKFtmdW5jdGlvbigpe0woYywiZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzIil9XSk7dmFyIGQ9WkYoYiksZT1hJiZOdW1iZXIoYS5nZXQoImludGVydmFsIikpO2U+MCYmaXNGaW5pdGUoZSl8fChlPTApO2lmKCRGKCJmaWwiLCJpbml0IiwhMSkpe3ZhciBmPSRGKCJmaWwiLCJyZWciKTtpZihmKWYoZCxlKTtlbHNlIHRocm93IEVycm9yKCJGYWlsZWQgdG8gcmVnaXN0ZXIgdHJpZ2dlcjogIitkKTt9ZWxzZXt2YXIgZz17fSxoPVtdLGw9e30sbj0wLHA9ZnVuY3Rpb24oKXtyZXR1cm4gbisrfSxxPTAscj1mdW5jdGlvbigpe3JldHVybiBxKyt9OyRjKEIsImNoYW5nZSIsCmZ1bmN0aW9uKHQpe2Zvcih2YXIgdT0wO3U8aC5sZW5ndGg7dSsrKWhbdV0odCl9KTskYyhBLCJwYWdlaGlkZSIsZnVuY3Rpb24oKXt3SihsLGcpfSk7ekooZCxlLGcsbCxoLHAscik7YUcoImZpbCIsInJlZyIsZnVuY3Rpb24odCx1KXt6Sih0LHUsZyxsLGgscCxyKX0pO2FHKCJmaWwiLCJpbml0IiwhMCl9cmV0dXJuIGR9QUouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25Gb3JtSW50ZXJhY3Rpb24iOwp2YXIgQko9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj0kRigiZnNsIixjPyJudi5td3QiOiJtd3QiLDApLGc7Zz1jPyRGKCJmc2wiLCJudi5pZHMiLFtdKTokRigiZnNsIiwiaWRzIixbXSk7aWYoIWcubGVuZ3RoKXJldHVybiEwO3ZhciBoPWVHKGEsImd0bS5mb3JtU3VibWl0IixnKSxsPWEuYWN0aW9uO2wmJmwudGFnTmFtZSYmKGw9YS5jbG9uZU5vZGUoITEpLmFjdGlvbik7UCgxMjEpO2lmKGw9PT0iaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3RyLyIpcmV0dXJuIFAoMTIyKSwhMDtoWyJndG0uZWxlbWVudFVybCJdPWw7aFsiZ3RtLmZvcm1DYW5jZWxlZCJdPWM7YS5nZXRBdHRyaWJ1dGUoIm5hbWUiKSE9bnVsbCYmKGhbImd0bS5pbnRlcmFjdGVkRm9ybU5hbWUiXT1hLmdldEF0dHJpYnV0ZSgibmFtZSIpKTtlJiYoaFsiZ3RtLmZvcm1TdWJtaXRFbGVtZW50Il09ZSxoWyJndG0uZm9ybVN1Ym1pdEVsZW1lbnRUZXh0Il09ZS52YWx1ZSk7aWYoZCYmZil7aWYoIXNFKGgsakUoYiwKZiksZikpcmV0dXJuITF9ZWxzZSBGeSgxLCJndG0uZm9ybVN1Ym1pdCIpLHNFKGgsZnVuY3Rpb24oKXt9LGZ8fDJFMyk7cmV0dXJuITB9LENKPWZ1bmN0aW9uKCl7dmFyIGE9W10sYj1mdW5jdGlvbihjKXtyZXR1cm4gQ2IoYSxmdW5jdGlvbihkKXtyZXR1cm4gZC5mb3JtPT09Y30pfTtyZXR1cm57c3RvcmU6ZnVuY3Rpb24oYyxkKXt2YXIgZT1iKGMpO2U/ZS5idXR0b249ZDphLnB1c2goe2Zvcm06YyxidXR0b246ZH0pfSxnZXQ6ZnVuY3Rpb24oYyl7dmFyIGQ9YihjKTtpZihkKXJldHVybiBkLmJ1dHRvbn19fSxESj1mdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldDtyZXR1cm4gYiYmYiE9PSJfc2VsZiImJmIhPT0iX3BhcmVudCImJmIhPT0iX3RvcCI/ITE6ITB9LEVKPWZ1bmN0aW9uKCl7dmFyIGE9Q0ooKSxiPUhUTUxGb3JtRWxlbWVudC5wcm90b3R5cGUuc3VibWl0OyRjKEIsImNsaWNrIixmdW5jdGlvbihjKXt2YXIgZD1jLnRhcmdldDtpZihkKXt2YXIgZT1oZChkLFsiYnV0dG9uIiwKImlucHV0Il0sMTAwKTtpZihlJiYoZS50eXBlPT09InN1Ym1pdCJ8fGUudHlwZT09PSJpbWFnZSIpJiZlLm5hbWUmJmVkKGUsInZhbHVlIikpe3ZhciBmPWlHKGUpO2YmJmEuc3RvcmUoZixlKX19fSwhMSk7JGMoQiwic3VibWl0IixmdW5jdGlvbihjKXt2YXIgZD1jLnRhcmdldDtpZighZClyZXR1cm4gYy5yZXR1cm5WYWx1ZTt2YXIgZT1jLmRlZmF1bHRQcmV2ZW50ZWR8fGMucmV0dXJuVmFsdWU9PT0hMSxmPURKKGQpJiYhZSxnPWEuZ2V0KGQpLGg9ITA7aWYoQkooZCxmdW5jdGlvbigpe2lmKGgpe3ZhciBsPW51bGwsbj17fTtnJiYobD1CLmNyZWF0ZUVsZW1lbnQoImlucHV0IiksbC50eXBlPSJoaWRkZW4iLGwubmFtZT1nLm5hbWUsbC52YWx1ZT1nLnZhbHVlLGQuYXBwZW5kQ2hpbGQobCksZy5oYXNBdHRyaWJ1dGUoImZvcm1hY3Rpb24iKSYmKG4uYWN0aW9uPWQuZ2V0QXR0cmlidXRlKCJhY3Rpb24iKSx4YyhkLGcuZ2V0QXR0cmlidXRlKCJmb3JtYWN0aW9uIikpKSxnLmhhc0F0dHJpYnV0ZSgiZm9ybWVuY3R5cGUiKSYmCihuLmVuY3R5cGU9ZC5nZXRBdHRyaWJ1dGUoImVuY3R5cGUiKSxkLnNldEF0dHJpYnV0ZSgiZW5jdHlwZSIsZy5nZXRBdHRyaWJ1dGUoImZvcm1lbmN0eXBlIikpKSxnLmhhc0F0dHJpYnV0ZSgiZm9ybW1ldGhvZCIpJiYobi5tZXRob2Q9ZC5nZXRBdHRyaWJ1dGUoIm1ldGhvZCIpLGQuc2V0QXR0cmlidXRlKCJtZXRob2QiLGcuZ2V0QXR0cmlidXRlKCJmb3JtbWV0aG9kIikpKSxnLmhhc0F0dHJpYnV0ZSgiZm9ybXZhbGlkYXRlIikmJihuLnZhbGlkYXRlPWQuZ2V0QXR0cmlidXRlKCJ2YWxpZGF0ZSIpLGQuc2V0QXR0cmlidXRlKCJ2YWxpZGF0ZSIsZy5nZXRBdHRyaWJ1dGUoImZvcm12YWxpZGF0ZSIpKSksZy5oYXNBdHRyaWJ1dGUoImZvcm10YXJnZXQiKSYmKG4udGFyZ2V0PWQuZ2V0QXR0cmlidXRlKCJ0YXJnZXQiKSxkLnNldEF0dHJpYnV0ZSgidGFyZ2V0IixnLmdldEF0dHJpYnV0ZSgiZm9ybXRhcmdldCIpKSkpO2IuY2FsbChkKTtsJiYoZC5yZW1vdmVDaGlsZChsKSxuLmhhc093blByb3BlcnR5KCJhY3Rpb24iKSYmCnhjKGQsbi5hY3Rpb24pLG4uaGFzT3duUHJvcGVydHkoImVuY3R5cGUiKSYmZC5zZXRBdHRyaWJ1dGUoImVuY3R5cGUiLG4uZW5jdHlwZSksbi5oYXNPd25Qcm9wZXJ0eSgibWV0aG9kIikmJmQuc2V0QXR0cmlidXRlKCJtZXRob2QiLG4ubWV0aG9kKSxuLmhhc093blByb3BlcnR5KCJ2YWxpZGF0ZSIpJiZkLnNldEF0dHJpYnV0ZSgidmFsaWRhdGUiLG4udmFsaWRhdGUpLG4uaGFzT3duUHJvcGVydHkoInRhcmdldCIpJiZkLnNldEF0dHJpYnV0ZSgidGFyZ2V0IixuLnRhcmdldCkpfX0sZSxmLGcpKWg9ITE7ZWxzZSByZXR1cm4gZXx8KGMucHJldmVudERlZmF1bHQmJmMucHJldmVudERlZmF1bHQoKSxjLnJldHVyblZhbHVlPSExKSwhMTtyZXR1cm4gYy5yZXR1cm5WYWx1ZX0sITEpO0hUTUxGb3JtRWxlbWVudC5wcm90b3R5cGUuc3VibWl0PWZ1bmN0aW9uKCl7dmFyIGM9dGhpcyxkPSEwO0JKKGMsZnVuY3Rpb24oKXtkJiZiLmNhbGwoYyl9LCExLERKKGMpKSYmKGIuY2FsbChjKSxkPQohMSl9fTsKZnVuY3Rpb24gRkooYSxiKXt2YXIgYz10aGlzO2lmKCFmaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0fHVuZGVmaW5lZCIsImFueSJdLGFyZ3VtZW50cyk7dmFyIGQ9YSYmYS5nZXQoIndhaXRGb3JUYWdzIik7VEYoW2Z1bmN0aW9uKCl7TChjLCJkZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzIix7d2FpdEZvclRhZ3M6ISFkfSl9XSk7dmFyIGU9YSYmYS5nZXQoImNoZWNrVmFsaWRhdGlvbiIpLGY9WkYoYik7aWYoZCl7dmFyIGc9TnVtYmVyKGEuZ2V0KCJ3YWl0Rm9yVGFnc1RpbWVvdXQiKSk7Zz4wJiZpc0Zpbml0ZShnKXx8KGc9MkUzKTt2YXIgaD1mdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5tYXgoZyxuKX07ZEcoImZzbCIsIm13dCIsaCwwKTtlfHxkRygiZnNsIiwibnYubXd0IixoLDApfXZhciBsPWZ1bmN0aW9uKG4pe24ucHVzaChmKTsKcmV0dXJuIG59O2RHKCJmc2wiLCJpZHMiLGwsW10pO2V8fGRHKCJmc2wiLCJudi5pZHMiLGwsW10pOyRGKCJmc2wiLCJpbml0IiwhMSl8fChFSigpLGFHKCJmc2wiLCJpbml0IiwhMCkpO3JldHVybiBmfUZKLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uRm9ybVN1Ym1pdCI7CmZ1bmN0aW9uIEtKKCl7dmFyIGE9dGhpczt9S0ouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25HYVNlbmQiOwp2YXIgTUo9ZnVuY3Rpb24oYSxiLGMsZCl7Yz1jPT09dm9pZCAwP3t9OmM7ZD1kPT09dm9pZCAwP1tdOmQ7dmFyIGU9IiIrYjtpZihjW2VdKWNbZV0ucHVzaChhKTtlbHNle3ZhciBmPVthXTtjW2VdPWY7dmFyIGc9TEooImd0bS5oaXN0b3J5Q2hhbmdlLXYyIiksaD0tMTtkLnB1c2goZnVuY3Rpb24obCl7aD49MCYmQS5jbGVhclRpbWVvdXQoaCk7Yj9oPUEuc2V0VGltZW91dChmdW5jdGlvbigpe2cobCxmKTtoPS0xfSxiKTpnKGwsZil9KX19LExKPWZ1bmN0aW9uKGEpe3ZhciBiPUEubG9jYXRpb24uaHJlZixjPXtzb3VyY2U6bnVsbCxzdGF0ZTpBLmhpc3Rvcnkuc3RhdGV8fG51bGwsdXJsOk9qKFJqKGIpKSxrYjpMaihSaihiKSwiZnJhZ21lbnQiKX07cmV0dXJuIGZ1bmN0aW9uKGQsZSl7dmFyIGY9YyxnPXt9O2dbZi5zb3VyY2VdPSEwO2dbZC5zb3VyY2VdPSEwO2lmKCFnLnBvcHN0YXRlfHwhZy5oYXNoY2hhbmdlfHxmLmtiIT09ZC5rYil7dmFyIGg9e2V2ZW50OmEsImd0bS5oaXN0b3J5Q2hhbmdlU291cmNlIjpkLnNvdXJjZSwKImd0bS5vbGRVcmxGcmFnbWVudCI6Yy5rYiwiZ3RtLm5ld1VybEZyYWdtZW50IjpkLmtiLCJndG0ub2xkSGlzdG9yeVN0YXRlIjpjLnN0YXRlLCJndG0ubmV3SGlzdG9yeVN0YXRlIjpkLnN0YXRlLCJndG0ub2xkVXJsIjpjLnVybCwiZ3RtLm5ld1VybCI6ZC51cmx9O2UmJihoWyJndG0udHJpZ2dlcnMiXT1lLmpvaW4oIiwiKSk7Yz1kO3VFKGgpfX19LE5KPWZ1bmN0aW9uKGEsYil7dmFyIGM9QS5oaXN0b3J5LGQ9Y1thXTtpZih5YihkKSl0cnl7Y1thXT1mdW5jdGlvbihlLGYsZyl7ZC5hcHBseShjLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApKTt2YXIgaD1BLmxvY2F0aW9uLmhyZWY7Yih7c291cmNlOmEsc3RhdGU6ZSx1cmw6T2ooUmooaCkpLGtiOkxqKFJqKGgpLCJmcmFnbWVudCIpfSl9fWNhdGNoKGUpe319LFBKPWZ1bmN0aW9uKGEpe0EuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLGZ1bmN0aW9uKGIpe3ZhciBjPU9KKGIpO2Eoe3NvdXJjZToicG9wc3RhdGUiLHN0YXRlOmIuc3RhdGUsCnVybDpPaihSaihjKSksa2I6TGooUmooYyksImZyYWdtZW50Iil9KX0pfSxRSj1mdW5jdGlvbihhKXtBLmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLGZ1bmN0aW9uKGIpe3ZhciBjPU9KKGIpO2Eoe3NvdXJjZToiaGFzaGNoYW5nZSIsc3RhdGU6bnVsbCx1cmw6T2ooUmooYykpLGtiOkxqKFJqKGMpLCJmcmFnbWVudCIpfSl9KX0sT0o9ZnVuY3Rpb24oYSl7dmFyIGIsYztyZXR1cm4oKGI9YS50YXJnZXQpPT1udWxsP3ZvaWQgMDooYz1iLmxvY2F0aW9uKT09bnVsbD92b2lkIDA6Yy5ocmVmKXx8QS5sb2NhdGlvbi5ocmVmfTsKZnVuY3Rpb24gUkooYSxiKXt2YXIgYz10aGlzO2lmKCFmaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0fHVuZGVmaW5lZCIsImFueSJdLGFyZ3VtZW50cyk7VEYoW2Z1bmN0aW9uKCl7TChjLCJkZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzIil9XSk7dmFyIGQ9YSYmYS5nZXQoInVzZVYyRXZlbnROYW1lIik/ImVobCI6ImhsIixlPU51bWJlcihhJiZhLmdldCgiaW50ZXJ2YWwiKSk7ZT4wJiZpc0Zpbml0ZShlKXx8KGU9MCk7dmFyIGY7aWYoISRGKGQsImluaXQiLCExKSl7dmFyIGc9e30saD1bXSxsO2Q9PT0iZWhsIj8obD1mdW5jdGlvbihwKXtmb3IodmFyIHE9MDtxPGgubGVuZ3RoO3ErKyloW3FdKHApfSxmPVpGKGIpLE1KKGYsZSxnLGgpLGFHKGQsInJlZyIsZnVuY3Rpb24ocCxxKXtNSihwLHEsZyxoKX0pKTpsPUxKKCJndG0uaGlzdG9yeUNoYW5nZSIpOwpRSihsKTtQSihsKTtOSigicHVzaFN0YXRlIixsKTtOSigicmVwbGFjZVN0YXRlIixsKTthRyhkLCJpbml0IiwhMCl9ZWxzZSBpZihkPT09ImVobCIpe3ZhciBuPSRGKGQsInJlZyIpO24mJihmPVpGKGIpLG4oZixlKSl9ZD09PSJobCImJihmPXZvaWQgMCk7cmV0dXJuIGZ9UkouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25IaXN0b3J5Q2hhbmdlIjt2YXIgU0o9WyJodHRwOi8vIiwiaHR0cHM6Ly8iLCJqYXZhc2NyaXB0OiIsImZpbGU6Ly8iXTsKdmFyIFRKPWZ1bmN0aW9uKGEsYil7aWYoYS53aGljaD09PTJ8fGEuY3RybEtleXx8YS5zaGlmdEtleXx8YS5hbHRLZXl8fGEubWV0YUtleSlyZXR1cm4hMTt2YXIgYz1vZChiLCJocmVmIik7aWYoYy5pbmRleE9mKCI6IikhPT0tMSYmIVNKLnNvbWUoZnVuY3Rpb24oaCl7cmV0dXJuIFNiKGMsaCl9KSlyZXR1cm4hMTt2YXIgZD1jLmluZGV4T2YoIiMiKSxlPW9kKGIsInRhcmdldCIpO2lmKGUmJmUhPT0iX3NlbGYiJiZlIT09Il9wYXJlbnQiJiZlIT09Il90b3AifHxkPT09MClyZXR1cm4hMTtpZihkPjApe3ZhciBmPU9qKFJqKGMpKSxnPU9qKFJqKEEubG9jYXRpb24uaHJlZikpO3JldHVybiBmIT09Z31yZXR1cm4hMH0sVUo9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9TGooUmooKGIuYXR0cmlidXRlcyYmYi5hdHRyaWJ1dGVzLmZvcm1hY3Rpb24/Yi5mb3JtQWN0aW9uOiIiKXx8Yi5hY3Rpb258fG9kKGIsImhyZWYiKXx8Yi5zcmN8fGIuY29kZXx8Yi5jb2RlYmFzZXx8IiIpLCJob3N0IiksCmQ9MDtkPGEubGVuZ3RoO2QrKyl0cnl7aWYoKG5ldyBSZWdFeHAoYVtkXSkpLnRlc3QoYykpcmV0dXJuITF9Y2F0Y2goZSl7fXJldHVybiEwfSxWSj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYyl7dmFyIGQ9Yy50YXJnZXQ7aWYoZCYmYy53aGljaCE9PTMmJiEoYy5IfHxjLnRpbWVTdGFtcCYmYy50aW1lU3RhbXA9PT1iKSl7Yj1jLnRpbWVTdGFtcDtkPWhkKGQsWyJhIiwiYXJlYSJdLDEwMCk7aWYoIWQpcmV0dXJuIGMucmV0dXJuVmFsdWU7dmFyIGU9Yy5kZWZhdWx0UHJldmVudGVkfHxjLnJldHVyblZhbHVlPT09ITEsZj0kRigibGNsIixlPyJudi5td3QiOiJtd3QiLDApLGc7Zz1lPyRGKCJsY2wiLCJudi5pZHMiLFtdKTokRigibGNsIiwiaWRzIixbXSk7Zm9yKHZhciBoPVtdLGw9MDtsPGcubGVuZ3RoO2wrKyl7dmFyIG49Z1tsXSxwPSRGKCJsY2wiLCJhZmYubWFwIix7fSlbbl07cCYmIVVKKHAsZCl8fGgucHVzaChuKX1pZihoLmxlbmd0aCl7dmFyIHE9VEooYyxkKSxyPWVHKGQsImd0bS5saW5rQ2xpY2siLApoKTtyWyJndG0uZWxlbWVudFRleHQiXT1mZChkKTtyWyJndG0ud2lsbE9wZW5Jbk5ld1dpbmRvdyJdPSFxO2lmKHEmJiFlJiZmJiZkLmhyZWYpe3ZhciB0PSEhQ2IoU3RyaW5nKG9kKGQsInJlbCIpfHwiIikuc3BsaXQoIiAiKSxmdW5jdGlvbih5KXtyZXR1cm4geS50b0xvd2VyQ2FzZSgpPT09Im5vcmVmZXJyZXIifSksdT1BWyhvZChkLCJ0YXJnZXQiKXx8Il9zZWxmIikuc3Vic3RyaW5nKDEpXSx2PSEwLHg9dEUoZnVuY3Rpb24oKXt2YXIgeTtpZih5PXYmJnUpe3ZhciB6O2E6aWYodCl7dmFyIEM7dHJ5e0M9bmV3IE1vdXNlRXZlbnQoYy50eXBlLHtidWJibGVzOiEwfSl9Y2F0Y2goRCl7aWYoIUIuY3JlYXRlRXZlbnQpe3o9ITE7YnJlYWsgYX1DPUIuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnRzIik7Qy5pbml0RXZlbnQoYy50eXBlLCEwLCEwKX1DLkg9ITA7Yy50YXJnZXQuZGlzcGF0Y2hFdmVudChDKTt6PSEwfWVsc2Ugej0hMTt5PSF6fXkmJih1LmxvY2F0aW9uLmhyZWY9b2QoZCwKImhyZWYiKSl9LGYpO2lmKGlFKHIseCxmKSl2PSExO2Vsc2UgcmV0dXJuIGMucHJldmVudERlZmF1bHQmJmMucHJldmVudERlZmF1bHQoKSxjLnJldHVyblZhbHVlPSExfWVsc2Ugc0UocixmdW5jdGlvbigpe30sZnx8MkUzKTtyZXR1cm4hMH19fXZhciBiPTA7JGMoQiwiY2xpY2siLGEsITEpOyRjKEIsImF1eGNsaWNrIixhLCExKX07CmZ1bmN0aW9uIFdKKGEsYil7dmFyIGM9dGhpcztpZighZmgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdHx1bmRlZmluZWQiLCJhbnkiXSxhcmd1bWVudHMpO3ZhciBkPVRkKGEpO1RGKFtmdW5jdGlvbigpe0woYywiZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzIixkKX1dKTt2YXIgZT1kJiYhIWQud2FpdEZvclRhZ3MsZj1kJiYhIWQuY2hlY2tWYWxpZGF0aW9uLGc9ZD9kLmFmZmlsaWF0ZURvbWFpbnM6dm9pZCAwLGg9WkYoYik7aWYoZSl7dmFyIGw9TnVtYmVyKGQud2FpdEZvclRhZ3NUaW1lb3V0KTtsPjAmJmlzRmluaXRlKGwpfHwobD0yRTMpO3ZhciBuPWZ1bmN0aW9uKHEpe3JldHVybiBNYXRoLm1heChsLHEpfTtkRygibGNsIiwibXd0IixuLDApO2Z8fGRHKCJsY2wiLCJudi5td3QiLG4sMCl9dmFyIHA9ZnVuY3Rpb24ocSl7cS5wdXNoKGgpOwpyZXR1cm4gcX07ZEcoImxjbCIsImlkcyIscCxbXSk7Znx8ZEcoImxjbCIsIm52LmlkcyIscCxbXSk7ZyYmZEcoImxjbCIsImFmZi5tYXAiLGZ1bmN0aW9uKHEpe3FbaF09ZztyZXR1cm4gcX0se30pOyRGKCJsY2wiLCJpbml0IiwhMSl8fChWSigpLGFHKCJsY2wiLCJpbml0IiwhMCkpO3JldHVybiBofVdKLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uTGlua0NsaWNrIjsKdmFyIFhKPWZ1bmN0aW9uKGEpe3JldHVybiAkRigic2RsIixhLHt9KX0sWUo9ZnVuY3Rpb24oYSxiLGMpe2lmKGIpe3ZhciBkPUFycmF5LmlzQXJyYXkoYSk/YTpbYV07ZEcoInNkbCIsYyxmdW5jdGlvbihlKXtmb3IodmFyIGY9MDtmPGQubGVuZ3RoO2YrKyl7dmFyIGc9U3RyaW5nKGRbZl0pO2UuaGFzT3duUHJvcGVydHkoZyl8fChlW2ddPVtdKTtlW2ddLnB1c2goYil9cmV0dXJuIGV9LHt9KX19LGFLPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe1pKKGEsYik7JEooYywhMCl9cmV0dXJuIGN9LGJLPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe2g/Zz1BLnNldFRpbWVvdXQoYyxlKTooZz0wLFpKKGEsYiksJEooZCkpO2g9ITF9ZnVuY3Rpb24gZCgpe2YmJmIoKTtnP2g9ITA6KGc9QS5zZXRUaW1lb3V0KGMsZSksYUcoInNkbCIsInBlbmRpbmciLCEwKSl9dmFyIGU9MjUwLGY9ITE7Qi5zY3JvbGxpbmdFbGVtZW50JiZCLmRvY3VtZW50RWxlbWVudCYmKGU9NTAsZj0hMCk7dmFyIGc9CjAsaD0hMTtyZXR1cm4gZH0sJEo9ZnVuY3Rpb24oYSxiKXskRigic2RsIiwiaW5pdCIsITEpJiYhY0soKSYmKGI/YWQoQSwic2Nyb2xsZW5kIixhKTphZChBLCJzY3JvbGwiLGEpLGFkKEEsInJlc2l6ZSIsYSksYUcoInNkbCIsImluaXQiLCExKSl9LFpKPWZ1bmN0aW9uKGEsYil7dmFyIGM9YigpLGQ9Yy5kZXB0aFgsZT1jLmRlcHRoWSxmPWQvYS5zY3JvbGxXaWR0aCoxMDAsZz1lL2Euc2Nyb2xsSGVpZ2h0KjEwMDtkSyhkLCJob3Jpei5waXgiLCJQSVhFTFMiLCJob3Jpem9udGFsIik7ZEsoZiwiaG9yaXoucGN0IiwiUEVSQ0VOVCIsImhvcml6b250YWwiKTtkSyhlLCJ2ZXJ0LnBpeCIsIlBJWEVMUyIsInZlcnRpY2FsIik7ZEsoZywidmVydC5wY3QiLCJQRVJDRU5UIiwidmVydGljYWwiKTthRygic2RsIiwicGVuZGluZyIsITEpfSxkSz1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1YSihiKSxmPXt9LGc7Zm9yKGcgaW4gZSlpZihmPXtxZjpmLnFmfSxmLnFmPWcsZS5oYXNPd25Qcm9wZXJ0eShmLnFmKSl7dmFyIGg9Ck51bWJlcihmLnFmKTtpZighKGE8aCkpe3ZhciBsPXt9O3VFKChsLmV2ZW50PSJndG0uc2Nyb2xsRGVwdGgiLGxbImd0bS5zY3JvbGxUaHJlc2hvbGQiXT1oLGxbImd0bS5zY3JvbGxVbml0cyJdPWMudG9Mb3dlckNhc2UoKSxsWyJndG0uc2Nyb2xsRGlyZWN0aW9uIl09ZCxsWyJndG0udHJpZ2dlcnMiXT1lW2YucWZdLmpvaW4oIiwiKSxsKSk7ZEcoInNkbCIsYixmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24ocCl7ZGVsZXRlIHBbbi5xZl07cmV0dXJuIHB9fShmKSx7fSl9fX0sZks9ZnVuY3Rpb24oKXt2YXIgYT1kRygic2RsIiwic2NyIixmdW5jdGlvbihjKXtjfHwoYz1CLnNjcm9sbGluZ0VsZW1lbnR8fEIuYm9keSYmQi5ib2R5LnBhcmVudE5vZGUpO3JldHVybiBjfSxudWxsKSxiPWRHKCJzZGwiLCJkZXB0aCIsZnVuY3Rpb24oYyl7Y3x8KGM9ZUsoYSkpO3JldHVybiBjfSk7cmV0dXJue3Njcm9sbGluZ0VsZW1lbnQ6YSx2cjpifX0sZUs9ZnVuY3Rpb24oYSl7dmFyIGI9MCxjPQowO3JldHVybiBmdW5jdGlvbigpe3ZhciBkPXNJKCksZT1kLmhlaWdodDtiPU1hdGgubWF4KGEuc2Nyb2xsTGVmdCtkLndpZHRoLGIpO2M9TWF0aC5tYXgoYS5zY3JvbGxUb3ArZSxjKTtyZXR1cm57ZGVwdGhYOmIsZGVwdGhZOmN9fX0sY0s9ZnVuY3Rpb24oKXtyZXR1cm4hIShPYmplY3Qua2V5cyhYSigiaG9yaXoucGl4IikpLmxlbmd0aHx8T2JqZWN0LmtleXMoWEooImhvcml6LnBjdCIpKS5sZW5ndGh8fE9iamVjdC5rZXlzKFhKKCJ2ZXJ0LnBpeCIpKS5sZW5ndGh8fE9iamVjdC5rZXlzKFhKKCJ2ZXJ0LnBjdCIpKS5sZW5ndGgpfTsKZnVuY3Rpb24gZ0soYSxiKXt2YXIgYz10aGlzO2lmKCFlaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0IiwiYW55Il0sYXJndW1lbnRzKTtURihbZnVuY3Rpb24oKXtMKGMsImRldGVjdF9zY3JvbGxfZXZlbnRzIil9XSk7dmFyIGQ9ZksoKSxlPWQuc2Nyb2xsaW5nRWxlbWVudCxmPWQudnI7aWYoIWUpcmV0dXJuO3ZhciBnPVpGKGIpLGg9VGQoYSk7c3dpdGNoKGguaG9yaXpvbnRhbFRocmVzaG9sZFVuaXRzKXtjYXNlICJQSVhFTFMiOllKKGguaG9yaXpvbnRhbFRocmVzaG9sZHMsZywiaG9yaXoucGl4Iik7YnJlYWs7Y2FzZSAiUEVSQ0VOVCI6WUooaC5ob3Jpem9udGFsVGhyZXNob2xkcyxnLCJob3Jpei5wY3QiKX1zd2l0Y2goaC52ZXJ0aWNhbFRocmVzaG9sZFVuaXRzKXtjYXNlICJQSVhFTFMiOllKKGgudmVydGljYWxUaHJlc2hvbGRzLApnLCJ2ZXJ0LnBpeCIpO2JyZWFrO2Nhc2UgIlBFUkNFTlQiOllKKGgudmVydGljYWxUaHJlc2hvbGRzLGcsInZlcnQucGN0Iil9JEYoInNkbCIsImluaXQiLCExKT8kRigic2RsIiwicGVuZGluZyIsITEpfHxiZChmdW5jdGlvbigpe1pKKGUsZil9KTooYUcoInNkbCIsImluaXQiLCEwKSxhRygic2RsIiwicGVuZGluZyIsITApLGJkKGZ1bmN0aW9uKCl7WkooZSxmKTtpZihjSygpKXt2YXIgbD1iSyhlLGYpOyJvbnNjcm9sbGVuZCJpbiBBPyhsPWFLKGUsZiksJGMoQSwic2Nyb2xsZW5kIixsKSk6JGMoQSwic2Nyb2xsIixsKTskYyhBLCJyZXNpemUiLGwpfWVsc2UgYUcoInNkbCIsImluaXQiLCExKX0pKTtyZXR1cm4gZ31nSy5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPblNjcm9sbCI7ZnVuY3Rpb24gaEsoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoYS5saW1pdCYmYS5naz49YS5saW1pdClhLmFpJiZBLmNsZWFySW50ZXJ2YWwoYS5haSk7ZWxzZXthLmdrKys7dmFyIGI9TmIoKTt1RSh7ZXZlbnQ6YS5ldmVudE5hbWUsImd0bS50aW1lcklkIjphLmFpLCJndG0udGltZXJFdmVudE51bWJlciI6YS5naywiZ3RtLnRpbWVySW50ZXJ2YWwiOmEuaW50ZXJ2YWwsImd0bS50aW1lckxpbWl0IjphLmxpbWl0LCJndG0udGltZXJTdGFydFRpbWUiOmEuTW8sImd0bS50aW1lckN1cnJlbnRUaW1lIjpiLCJndG0udGltZXJFbGFwc2VkVGltZSI6Yi1hLk1vLCJndG0udHJpZ2dlcnMiOmEuTHR9KX19fQpmdW5jdGlvbiBpSyhhLGIpewpyZXR1cm4gZn1pSy5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPblRpbWVyIjsKdmFyIGpLPWZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKCl7dmFyIGc9YSgpO2YrPWU/KE5iKCktZSkqZy5wbGF5YmFja1JhdGUvMUUzOjA7ZT1OYigpfXZhciBlPTAsZj0wO3JldHVybntjcmVhdGVFdmVudDpmdW5jdGlvbihnLGgsbCl7dmFyIG49YSgpLHA9bi5XbixxPWw/TWF0aC5yb3VuZChsKTpoP01hdGgucm91bmQobi5XbipoKTpNYXRoLnJvdW5kKG4uR3IpLHI9aCE9PXZvaWQgMD9NYXRoLnJvdW5kKGgqMTAwKTpwPD0wPzA6TWF0aC5yb3VuZChxL3AqMTAwKSx0PUIuaGlkZGVuPyExOnRJKGMpPj0uNTtkKCk7dmFyIHU9dm9pZCAwO2IhPT12b2lkIDAmJih1PVtiXSk7dmFyIHY9ZUcoYywiZ3RtLnZpZGVvIix1KTt2WyJndG0udmlkZW9Qcm92aWRlciJdPSJ5b3V0dWJlIjt2WyJndG0udmlkZW9TdGF0dXMiXT1nO3ZbImd0bS52aWRlb1VybCJdPW4udXJsO3ZbImd0bS52aWRlb1RpdGxlIl09bi50aXRsZTt2WyJndG0udmlkZW9EdXJhdGlvbiJdPU1hdGgucm91bmQocCk7dlsiZ3RtLnZpZGVvQ3VycmVudFRpbWUiXT0KTWF0aC5yb3VuZChxKTt2WyJndG0udmlkZW9FbGFwc2VkVGltZSJdPU1hdGgucm91bmQoZik7dlsiZ3RtLnZpZGVvUGVyY2VudCJdPXI7dlsiZ3RtLnZpZGVvVmlzaWJsZSJdPXQ7cmV0dXJuIHZ9LG10OmZ1bmN0aW9uKCl7ZT1OYigpfSxCajpmdW5jdGlvbigpe2QoKX19fTt2YXIgQWM9QWEoWyJkYXRhLWd0bS15dC1pbnNwZWN0ZWQtIl0pLGtLPVsid3d3LnlvdXR1YmUuY29tIiwid3d3LnlvdXR1YmUtbm9jb29raWUuY29tIl0sbEs7CnZhciBtSz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5tYXAoZnVuY3Rpb24oZyl7cmV0dXJue3RlOmcsSm86Zyx3bzp2b2lkIDB9fSk7aWYoIWIubGVuZ3RoKXJldHVybiBkO3ZhciBlPWIubWFwKGZ1bmN0aW9uKGcpe3JldHVybnt0ZTpnKmMsSm86dm9pZCAwLHdvOmd9fSk7aWYoIWQubGVuZ3RoKXJldHVybiBlO3ZhciBmPWQuY29uY2F0KGUpO2Yuc29ydChmdW5jdGlvbihnLGgpe3JldHVybiBnLnRlLWgudGV9KTtyZXR1cm4gZn0sbks9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP1tdOmE7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKylhW2NdPDB8fGIucHVzaChhW2NdKTtiLnNvcnQoZnVuY3Rpb24oZCxlKXtyZXR1cm4gZC1lfSk7cmV0dXJuIGJ9LG9LPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD9bXTphO2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspYVtjXT4xMDB8fGFbY108MHx8KGJbY109YVtjXS8xMDApO2Iuc29ydChmdW5jdGlvbihkLGUpe3JldHVybiBkLQplfSk7cmV0dXJuIGJ9LHBLPWZ1bmN0aW9uKGEsYil7dmFyIGMsZDtmdW5jdGlvbiBlKCl7dD1qSyhmdW5jdGlvbigpe3JldHVybnt1cmw6eCx0aXRsZTp5LFduOnYsR3I6YS5nZXRDdXJyZW50VGltZSgpLHBsYXliYWNrUmF0ZTp6fX0sYi5yZixhLmdldElmcmFtZSgpKTt2PTA7eT14PSIiO3o9MTtyZXR1cm4gZn1mdW5jdGlvbiBmKEcpe3N3aXRjaChHKXtjYXNlIDE6dj1NYXRoLnJvdW5kKGEuZ2V0RHVyYXRpb24oKSk7eD1hLmdldFZpZGVvVXJsKCk7aWYoYS5nZXRWaWRlb0RhdGEpe3ZhciBOPWEuZ2V0VmlkZW9EYXRhKCk7eT1OP04udGl0bGU6IiJ9ej1hLmdldFBsYXliYWNrUmF0ZSgpO2IueXI/dUUodC5jcmVhdGVFdmVudCgic3RhcnQiKSk6dC5CaigpO3U9bUsoYi5ldCxiLmN0LGEuZ2V0RHVyYXRpb24oKSk7cmV0dXJuIGcoRyk7ZGVmYXVsdDpyZXR1cm4gZn19ZnVuY3Rpb24gZygpe0M9YS5nZXRDdXJyZW50VGltZSgpO0Q9TWIoKS5nZXRUaW1lKCk7dC5tdCgpO3IoKTtyZXR1cm4gaH0KZnVuY3Rpb24gaChHKXt2YXIgTjtzd2l0Y2goRyl7Y2FzZSAwOnJldHVybiBuKEcpO2Nhc2UgMjpOPSJwYXVzZSI7Y2FzZSAzOnZhciBTPWEuZ2V0Q3VycmVudFRpbWUoKS1DO049TWF0aC5hYnMoKE1iKCkuZ2V0VGltZSgpLUQpLzFFMyp6LVMpPjE/InNlZWsiOk58fCJidWZmZXJpbmciO2EuZ2V0Q3VycmVudFRpbWUoKSYmKGIueHI/dUUodC5jcmVhdGVFdmVudChOKSk6dC5CaigpKTtxKCk7cmV0dXJuIGw7Y2FzZSAtMTpyZXR1cm4gZShHKTtkZWZhdWx0OnJldHVybiBofX1mdW5jdGlvbiBsKEcpe3N3aXRjaChHKXtjYXNlIDA6cmV0dXJuIG4oRyk7Y2FzZSAxOnJldHVybiBnKEcpO2Nhc2UgLTE6cmV0dXJuIGUoRyk7ZGVmYXVsdDpyZXR1cm4gbH19ZnVuY3Rpb24gbigpe2Zvcig7ZDspe3ZhciBHPWM7QS5jbGVhclRpbWVvdXQoZCk7RygpfWIud3ImJnVFKHQuY3JlYXRlRXZlbnQoImNvbXBsZXRlIiwxKSk7cmV0dXJuIGUoLTEpfWZ1bmN0aW9uIHAoKXt9ZnVuY3Rpb24gcSgpe2QmJgooQS5jbGVhclRpbWVvdXQoZCksZD0wLGM9cCl9ZnVuY3Rpb24gcigpe2lmKHUubGVuZ3RoJiZ6IT09MCl7dmFyIEc9LTEsTjtkb3tOPXVbMF07aWYoTi50ZT5hLmdldER1cmF0aW9uKCkpcmV0dXJuO0c9KE4udGUtYS5nZXRDdXJyZW50VGltZSgpKS96O2lmKEc8MCYmKHUuc2hpZnQoKSx1Lmxlbmd0aD09PTApKXJldHVybn13aGlsZShHPDApO2M9ZnVuY3Rpb24oKXtkPTA7Yz1wO3UubGVuZ3RoPjAmJnVbMF0udGU9PT1OLnRlJiYodS5zaGlmdCgpLHVFKHQuY3JlYXRlRXZlbnQoInByb2dyZXNzIixOLndvLE4uSm8pKSk7cigpfTtkPUEuc2V0VGltZW91dChjLEcqMUUzKX19dmFyIHQsdT1bXSx2LHgseSx6LEMsRCxJPWUoLTEpO2Q9MDtjPXA7cmV0dXJue29uU3RhdGVDaGFuZ2U6ZnVuY3Rpb24oRyl7ST1JKEcpfSxvblBsYXliYWNrUmF0ZUNoYW5nZTpmdW5jdGlvbihHKXtDPWEuZ2V0Q3VycmVudFRpbWUoKTtEPU1iKCkuZ2V0VGltZSgpO3QuQmooKTt6PUc7cSgpO3IoKX19fSxySz0KZnVuY3Rpb24oYSl7YmQoZnVuY3Rpb24oKXtmdW5jdGlvbiBiKCl7Zm9yKHZhciBkPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpLGU9ZC5sZW5ndGgsZj0wO2Y8ZTtmKyspcUsoZFtmXSxhKX12YXIgYz1CO2IoKTtvSi5LKGIpfSl9LHFLPWZ1bmN0aW9uKGEsYil7aWYoIWEuZ2V0QXR0cmlidXRlKCJkYXRhLWd0bS15dC1pbnNwZWN0ZWQtIitiLnJmKSYmKENjKGEsImRhdGEtZ3RtLXl0LWluc3BlY3RlZC0iK2IucmYpLHNLKGEsYi5jbykpKXthLmlkfHwoYS5pZD10SygpKTt2YXIgYz1BLllULGQ9Yy5nZXQoYS5pZCk7ZHx8KGQ9bmV3IGMuUGxheWVyKGEuaWQpKTt2YXIgZT1wSyhkLGIpLGY9e30sZztmb3IoZyBpbiBlKWY9e01nOmYuTWd9LGYuTWc9ZyxlLmhhc093blByb3BlcnR5KGYuTWcpJiZkLmFkZEV2ZW50TGlzdGVuZXIoZi5NZyxmdW5jdGlvbihoKXtyZXR1cm4gZnVuY3Rpb24obCl7cmV0dXJuIGVbaC5NZ10obC5kYXRhKX19KGYpKX19LHNLPWZ1bmN0aW9uKGEsCmIpe3ZhciBjPWEuZ2V0QXR0cmlidXRlKCJzcmMiKTtpZih1SyhjLCJlbWJlZC8iKSl7aWYoYy5pbmRleE9mKCJlbmFibGVqc2FwaT0xIik+MClyZXR1cm4hMDtpZihiKXt2YXIgZDt2YXIgZT1jLmluZGV4T2YoIj8iKSE9PS0xPyImIjoiPyI7Yy5pbmRleE9mKCJvcmlnaW49Iik+LTE/ZD1jK2UrImVuYWJsZWpzYXBpPTEiOihsS3x8KGxLPUIubG9jYXRpb24ucHJvdG9jb2wrIi8vIitCLmxvY2F0aW9uLmhvc3RuYW1lLEIubG9jYXRpb24ucG9ydCYmKGxLKz0iOiIrQi5sb2NhdGlvbi5wb3J0KSksZD1jK2UrImVuYWJsZWpzYXBpPTEmb3JpZ2luPSIrZW5jb2RlVVJJQ29tcG9uZW50KGxLKSk7dmFyIGY7Zj1qYyhkKTthLnNyYz1rYyhmKS50b1N0cmluZygpO3JldHVybiEwfX1yZXR1cm4hMX0sdUs9ZnVuY3Rpb24oYSxiKXtpZighYSlyZXR1cm4hMTtmb3IodmFyIGM9MDtjPGtLLmxlbmd0aDtjKyspaWYoYS5pbmRleE9mKCIvLyIra0tbY10rIi8iK2IpPj0wKXJldHVybiEwO3JldHVybiExfSwKdEs9ZnVuY3Rpb24oKXt2YXIgYT0iIitNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMUU5KTtyZXR1cm4gQi5nZXRFbGVtZW50QnlJZChhKT90SygpOmF9OwpmdW5jdGlvbiB2SyhhLGIpe3ZhciBjPXRoaXM7dmFyIGQ9ZnVuY3Rpb24oKXtySyhxKX07aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiLCJhbnkiXSxhcmd1bWVudHMpO1RGKFtmdW5jdGlvbigpe0woYywiZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzIix7Zml4TWlzc2luZ0FwaTohIWEuZ2V0KCJmaXhNaXNzaW5nQXBpIil9KX1dKTt2YXIgZT1aRihiKSxmPSEhYS5nZXQoImNhcHR1cmVTdGFydCIpLGc9ISFhLmdldCgiY2FwdHVyZUNvbXBsZXRlIiksaD0hIWEuZ2V0KCJjYXB0dXJlUGF1c2UiKSxsPW9LKFRkKGEuZ2V0KCJwcm9ncmVzc1RocmVzaG9sZHNQZXJjZW50IikpKSxuPW5LKFRkKGEuZ2V0KCJwcm9ncmVzc1RocmVzaG9sZHNUaW1lSW5TZWNvbmRzIikpKSxwPSEhYS5nZXQoImZpeE1pc3NpbmdBcGkiKTsKaWYoIShmfHxnfHxofHxsLmxlbmd0aHx8bi5sZW5ndGgpKXJldHVybjt2YXIgcT17eXI6Zix3cjpnLHhyOmgsY3Q6bCxldDpuLGNvOnAscmY6ZX0scj1BLllUO2lmKHIpcmV0dXJuIHIucmVhZHkmJnIucmVhZHkoZCksZTt2YXIgdD1BLHU9dC5vbllvdVR1YmVJZnJhbWVBUElSZWFkeTt0Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5PWZ1bmN0aW9uKCl7dSYmdSgpO2QoKX07YmQoZnVuY3Rpb24oKXtmb3IodmFyIHY9Qi5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IikseD12Lmxlbmd0aCx5PTA7eTx4O3krKyl7dmFyIHo9dlt5XS5nZXRBdHRyaWJ1dGUoInNyYyIpO2lmKHVLKHosImlmcmFtZV9hcGkiKXx8dUsoeiwicGxheWVyX2FwaSIpKXJldHVybiBlfWZvcih2YXIgQz1CLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKSxEPUMubGVuZ3RoLEk9YWwoNSxmdW5jdGlvbigpe3JldHVybiExfSksRz0wO0c8RDtHKyspaWYoIUkmJnNLKENbR10scS5jbykpcmV0dXJuIFVjKCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9pZnJhbWVfYXBpIiksClprKDUsITApLGV9KTtyZXR1cm4gZX12Sy5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbllvdVR1YmVBY3Rpdml0eSI7ZnVuY3Rpb24gd0soYSxiKXtpZighbGgoYSl8fCFmaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGM9Yj9UZChiKTp7fTtjLnJlZ2V4Q2FjaGU9YWwoMyxmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwfSk7cmV0dXJuIEdoKGEsYyl9d0suUD0iaW50ZXJuYWwuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiI7ZnVuY3Rpb24geEsoYSl7dmFyIGI9ITE7cmV0dXJuIGJ9eEsuUD0iaW50ZXJuYWwuZXZhbHVhdGVNYXRjaGluZ1J1bGVzIjt2YXIgeUs9bmV3IE1hcChbWyJhdyIsNF1dKTtmdW5jdGlvbiB6SyhhKXt2YXIgYj12clthXSxjPXlLLmdldChhKTtyZXR1cm4gYz8od3EoYixjKXx8W10pLnNvbWUoZnVuY3Rpb24oZCl7cmV0dXJuIGQubT09PSIwInx8ZC5tPT09dm9pZCAwfSk6ITF9CmZ1bmN0aW9uIEFLKGEsYil7aWYoTSg0OTUpKXtmb3IodmFyIGM9bmV3IE1hcCxkPW0oeUspLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1tKGUudmFsdWUpLGc9Zi5uZXh0KCkudmFsdWUsaD1mLm5leHQoKS52YWx1ZSxsPWcsbj1hW2xdLHA9QXJyYXkuaXNBcnJheShuKT9uWzBdOm47aWYocCE9PXZvaWQgMCl7dmFyIHE9e30scj0ocS5rPXAscS5pPVN0cmluZyhNYXRoLmZsb29yKERhdGUubm93KCkvMUUzKSkscS5iPVtdLHEubT0iMSIscSksdD1hcShyLGgpO3QmJih6SyhsKXx8Yy5zZXQobCx0KSl9fWlmKGMuc2l6ZSl7dmFyIHUsdj1bXSx4PWIucGF0aHx8Ii8iO3YucHVzaChlbmNvZGVVUklDb21wb25lbnQoInAiKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHgpKTtiLkFyJiZ2LnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCJjZSIpKyI9IitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGIuQXIpKSk7dmFyIHk9Yi5kb21haW4mJmIuZG9tYWluIT09ImF1dG8iPwpiLmRvbWFpbjoiYXV0bzoiK0EubG9jYXRpb24uaG9zdG5hbWU7di5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCgiZCIpKyI9IitlbmNvZGVVUklDb21wb25lbnQoeSkpO2Zvcih2YXIgej1tKGMpLEM9ei5uZXh0KCk7IUMuZG9uZTtDPXoubmV4dCgpKXt2YXIgRD1tKEMudmFsdWUpLEk9RC5uZXh0KCkudmFsdWUsRz1ELm5leHQoKS52YWx1ZTt2LnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KEkpKyI9IitlbmNvZGVVUklDb21wb25lbnQoRykpfXU9Il8vc2V0X2Nvb2tpZT8iK3Yuam9pbigiJiIpO3ZhciBOLFM9RSg1OCk7Tj1FZih1LFMpO3ZhciBXPVhqKCkrIi8iK047bWQoVyl9fX07ZnVuY3Rpb24gQksoYSl7cmV0dXJuIkNXVldlYlZpZXdNZXNzYWdlImluIGF9ZnVuY3Rpb24gQ0soYSl7dmFyIGI9QSxjPWIud2Via2l0O2RlbGV0ZSBiLndlYmtpdDthKGIud2Via2l0KTtiLndlYmtpdD1jfWZ1bmN0aW9uIERLKGEsYil7dmFyIGM9e2FjdGlvbjoiZ2NsX3NldHVwIn07aWYoQksoYS5tZXNzYWdlSGFuZGxlcnMpKXJldHVybiBhLm1lc3NhZ2VIYW5kbGVycy5DV1ZXZWJWaWV3TWVzc2FnZS5wb3N0TWVzc2FnZSh7Y29tbWFuZDpiLHBheWxvYWQ6Y30pLCEwO3ZhciBkPWEubWVzc2FnZUhhbmRsZXJzW2JdO3JldHVybiBkPyhkLnBvc3RNZXNzYWdlKGMpLCEwKTohMX07dmFyIEVLPXt9LEZLPShFSy5hd2I9e25vdEZvdW5kOjE3OH0sRUsueXRiPXtub3RGb3VuZDoxOTR9LEVLKTtmdW5jdGlvbiBHSyhhKXt2YXIgYixjPShiPUZLW2FdKT09bnVsbD92b2lkIDA6Yi5ub3RGb3VuZDtjJiZQKGMpfQpmdW5jdGlvbiBISyhhKXtpZighbm0oam0uYmEuam4pJiYid2Via2l0ImluIEEmJkEud2Via2l0Lm1lc3NhZ2VIYW5kbGVycyl7dmFyIGI9ZnVuY3Rpb24oKXt0cnl7Q0soZnVuY3Rpb24oYyl7aWYoYyl7dmFyIGQ7ZD1CSyhjLm1lc3NhZ2VIYW5kbGVycyl8fCJhd2IiaW4gYy5tZXNzYWdlSGFuZGxlcnM/e2NvbW1hbmQ6ImF3YiIsc291cmNlOjV9OihCSyhjLm1lc3NhZ2VIYW5kbGVycyl8fCJ5dGIiaW4gYy5tZXNzYWdlSGFuZGxlcnMpJiZNKDQ5OSk/e2NvbW1hbmQ6Inl0YiIsc291cmNlOjh9OnZvaWQgMDtkJiYobW0oam0uYmEuam4sZnVuY3Rpb24oZSl7dmFyIGY9ZC5zb3VyY2U7ZS5nY2xpZCYmbHMoImdjbF9hdyIsZS5nY2xpZCxmLGEpO2Uud2JyYWlkJiZscygiZ2NsX2diIixlLndicmFpZCxmLGEpfSksREsoYyxkLmNvbW1hbmQpfHxHSyhkLmNvbW1hbmQpKX19KX1jYXRjaChjKXtQKDE5Myl9fTtIbChmdW5jdGlvbigpe0JyKGZwKT9iKCk6SWwoYixmcCl9LGZwKX19O3ZhciBJSz1bImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20iLCJodHRwczovL3d3dy55b3V0dWJlLmNvbSIsImh0dHBzOi8vbS55b3V0dWJlLmNvbSJdO2Z1bmN0aW9uIEpLKGEpe3JldHVybiBhLmRhdGEuYWN0aW9uIT09ImdjbF90cmFuc2ZlciI/KFAoMTczKSwhMCk6YS5kYXRhLmdhZFNvdXJjZT9hLmRhdGEuZ2NsaWQ/ITE6KFAoMTgxKSwhMCk6KFAoMTgwKSwhMCl9CmZ1bmN0aW9uIEtLKGEsYil7aWYoIWF8fE0oYSkpe2lmKG5tKGptLmJhLlZlKSlyZXR1cm4gUCgxNzYpLGptLmJhLlZlO2lmKG5tKGptLmJhLm1uKSlyZXR1cm4gUCgxNzApLGptLmJhLlZlO3ZhciBjPUZwKCk7aWYoIWMpUCgxNzEpO2Vsc2UgaWYoYy5vcGVuZXIpe3ZhciBkPWZ1bmN0aW9uKGcpe2lmKCFJSy5pbmNsdWRlcyhnLm9yaWdpbikpUCgxNzIpO2Vsc2UgaWYoIUpLKGcpKXt2YXIgaD17Z2FkU291cmNlOmcuZGF0YS5nYWRTb3VyY2V9O2guZ2NsaWQ9Zy5kYXRhLmdjbGlkO21tKGptLmJhLlZlLGgpO2ImJmcuZGF0YS5nY2xpZCYmbHMoImdjbF9hdyIsU3RyaW5nKGcuZGF0YS5nY2xpZCksNixiKTt2YXIgbDsobD1nLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbik9PW51bGx8fGwuY2FsbChnKTtudChjLCJtZXNzYWdlIixkKX19O2lmKG10KGMsIm1lc3NhZ2UiLGQpKXttbShqbS5iYS5tbiwhMCk7Zm9yKHZhciBlPW0oSUspLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKWMub3BlbmVyLnBvc3RNZXNzYWdlKHthY3Rpb246ImdjbF9zZXR1cCJ9LApmLnZhbHVlKTtQKDE3NCk7cmV0dXJuIGptLmJhLlZlfVAoMTc1KX19fTsKdmFyIExLPWZ1bmN0aW9uKGEpe3ZhciBiPXtwcmVmaXg6TyhhLk0sRi5ELkZkKXx8TyhhLk0sRi5ELm5iKSxkb21haW46TyhhLk0sRi5ELkxiKSxwZDpPKGEuTSxGLkQuQ2IpLGZsYWdzOk8oYS5NLEYuRC5UYil9O2EuTS5pc0d0bUV2ZW50JiYoYi5wYXRoPU8oYS5NLEYuRC52YykpO3JldHVybiBifSxNSz1mdW5jdGlvbihhLGIpe2lmKCFRKGEsSC5KLldlKSl7dmFyIGM9S0soMTE5KTtpZihjKXt2YXIgZD1ubShjKSxlPWZ1bmN0aW9uKGcpe1YoYSxILkouV2UsITApO3ZhciBoPVIoYSxGLkQuemYpLGw9UihhLEYuRC5BZik7VShhLEYuRC56ZixTdHJpbmcoZy5nYWRTb3VyY2UpKTtVKGEsRi5ELkFmLDYpO1YoYSxILkouc2EpO1YoYSxILkoudWcpO1UoYSxGLkQuc2EpO2IoKTtVKGEsRi5ELnpmLGgpO1UoYSxGLkQuQWYsbCk7VihhLEguSi5XZSwhMSl9O2lmKGQpZShkKTtlbHNle3ZhciBmPXZvaWQgMDtmPXBtKGMsZnVuY3Rpb24oZyxoKXtlKGgpO3FtKGMsZil9KX19fX0sUEs9ZnVuY3Rpb24oYSl7dmFyIGIsCmMsZCxlO2I9YS5UbjtjPWEubW87ZD1hLlFvO2U9YS5VbjtpZihiKXtpZihkcihjW0YuRC5YZl0sISFjW0YuRC5BYV0pKXtpZihXaigpJiZCcihBcigpKSl7Zm9yKHZhciBmPVVxKCEwKSxnPXt9LGg9bShPYmplY3Qua2V5cyh2cikpLGw9aC5uZXh0KCk7IWwuZG9uZTtsPWgubmV4dCgpKXt2YXIgbj1sLnZhbHVlLHA9dnJbbl0scT1mW3BdO2lmKHEpe3ZhciByPSRwKHEsNCk7ciYmKG9zKE1hdGgubWluKE5yKHIpLE5iKCkpfHxOYigpLHAsNCl8fChnW25dPXEpKX19Zm9yKHZhciB0PXt9LHU9bShPYmplY3Qua2V5cyhnKSksdj11Lm5leHQoKTshdi5kb25lO3Y9dS5uZXh0KCkpe3ZhciB4PXYudmFsdWUseT1nW3hdO2lmKHkhPT12b2lkIDApe3ZhciB6PSRwKHksNCk7eiYmei5tPT09IjEiJiYodFt4XT16LmspfX1BSyh0LGUpfXBzKGUpO3RzKGUpO1F2KGUpfWlmKE9wKCkhPT0yKXtncyhlKTtpcyhlKTtpZihZZigxNSkpe3ZhciBDPWUsRD1kcyhBLmxvY2F0aW9uLmhyZWYsITAsITEpOwpELmxlbmd0aHx8KEQ9ZHMoQS5kb2N1bWVudC5yZWZlcnJlciwhMSwhMCkpO2lmKEQubGVuZ3RoKXtDPUN8fHt9O3ZhciBJPURbMF07SS52YWx1ZSYmbXMoImdjbF9kYyIsW3t2ZXJzaW9uOiIiLGdjbGlkOkkudmFsdWUsdGltZXN0YW1wOk5iKCkscWE6SS5xYX1dLEMpfX1ISyhlKTtLSyh2b2lkIDAsZSl9ZWxzZSBncyhlKTtpZihXaigpJiZCcihBcigpKSl7dmFyIEc9ZnMoKTtBSyhHLGUpfXhzKHFzLGUpO3lzKGUpfWNbRi5ELkFhXSYmKHZzKGNbRi5ELkFhXSxjW0YuRC5hZF0sISFjW0YuRC53Y10pLHVzKGNbRi5ELkFhXSxjW0YuRC5hZF0sISFjW0YuRC53Y10sZS5wcmVmaXgpLHdzKGNbRi5ELkFhXSxjW0YuRC5hZF0sISFjW0YuRC53Y10sZS5wcmVmaXgpLFJ2KEd2KGUucHJlZml4KSxjW0YuRC5BYV0sY1tGLkQuYWRdLCEhY1tGLkQud2NdLGUpLFJ2KCJGUEFVIixjW0YuRC5BYV0sY1tGLkQuYWRdLCEhY1tGLkQud2NdLGUpKTtkJiZBcyhOSyk7Q3MoT0spfSxxcz1bImF3IiwiZGMiLAoiZ2IiXSxPSz1bImF3IiwiZGMiLCJnYiIsImFnIl0sTks9WyJhdyIsImRjIiwiZ2IiLCJhZyIsImdhZF9zb3VyY2UiXTsKdmFyIFFLPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouR2EpLGM9UShhLEguSi5zbiksZD1NKDQ0MykmJmM/VHYoYik6VXYoYikuU2gsZT12b2lkIDA7TSg1NzApJiZjJiYoZT1TdihiLHtYaDohMH0pLmlrKTt2YXIgZjthOntpZihJZig0NykmJlhvKGZwKSl7dmFyIGc9ZEkoYSwiY2NkX2VuYWJsZV9jbSIsITEpLGg9UShhLEguSi5ZYSk7VihhLEguSi5haiwhMCk7VihhLEguSi5mZCwhMCk7aWYoaHcoaCkpe1YoYSxILkouSWgsITApO3ZhciBsPWR8fEF2KCksbj17fSxwPXtldmVudE1ldGFkYXRhOihuW0guSi5EY109WC5WLkZiLG5bSC5KLllhXT1oLG5bSC5KLnpqXT1sLG5bSC5KLmZkXT0hMCxuW0guSi5hal09ITAsbltILkouSWhdPSEwLG5bSC5KLlhtXT1nJiZJZig0Nyksbiksbm9HdG1FdmVudDohMH0scT1zQyhhLnRhcmdldC5kZXN0aW5hdGlvbklkLGEuZXZlbnROYW1lLGEuTS5FYSk7bUQocSxhLk0uZXZlbnRJZCxwKTtnJiZRKGEsSC5KLndkKXx8VihhLEguSi5ZYSk7Zj1sOwpicmVhayBhfX1mPXZvaWQgMH12YXIgcj1kfHxmO2lmKHJ8fGUpe3ZhciB0LHU7dD1SKGEsRi5ELlBhKTt1PUt6LmdqLmJwO3ZhciB2PVIoYSxGLkQuV2MpOyF0JiZ2JiYodD12W0YuRC5QYV0sdT1Lei5nai51cSk7dHx8KHQ9QXYoUihhLEYuRC5HZCkpLHNiKCJHVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTCIsVC5XLkZoKSx1PUt6LmdqLlZxKTtVKGEsRi5ELlBhLHQpO1UoYSxGLkQuZG0sdSk7ciYmVShhLEYuRC54YyxyKTtlJiZVKGEsIl8mZWNzaWQyIixlKTtWKGEsSC5KLmxqLCEwKX19Owp2YXIgUks9ZnVuY3Rpb24oYSl7UShhLEguSi55bil8fFYoYSxILkouSmEsITEpfSxTSz1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKSxjPVhvKGZwKSxkPVEoYSxILkouc2EpLGU9UihhLEYuRC5HZCksZj1RKGEsSC5KLnBuKTtzd2l0Y2goYil7Y2FzZSBYLlYueGE6IWYmJmUmJlJLKGEpO2EuZXZlbnROYW1lPT09Ri5ELndhJiZWKGEsSC5KLkphLCEwKTticmVhaztjYXNlIFguVi5PYjpjYXNlIFguVi5GYjppZighY3x8ZHx8IWYmJmUpYS5pc0Fib3J0ZWQ9ITA7YnJlYWs7Y2FzZSBYLlYudWI6Y3x8KGEuaXNBYm9ydGVkPSEwKTshZiYmZXx8UksoYSk7UShhLEguSi53ZCl8fChhLmlzQWJvcnRlZD0hMCk7YS5ldmVudE5hbWUhPT1GLkQud2F8fE8oYS5NLEYuRC5DbCkhPT0hMSYmTyhhLk0sRi5ELlRkKSE9PSExfHxWKGEsSC5KLkphLCEwKTticmVhaztjYXNlIFguVi5LYTphLmV2ZW50TmFtZSE9PUYuRC5zYyYmUShhLEguSi5QYykmJihhLmlzQWJvcnRlZD0hMCksYS50YXJnZXQuaWRzW2RDWzFdXSYmCk8oYS5NLEYuRC5paCkhPT0hMCYmKGEuaXNBYm9ydGVkPSEwKX19O3ZhciBUSz1mdW5jdGlvbihhKXt2YXIgYixjPU0oNTc2KTtpZihRKGEsSC5KLnNuKSlzd2l0Y2goUShhLEguSi5kYSkpe2Nhc2UgWC5WLkZiOmlmKCEoYS5ldmVudE5hbWUhPT1GLkQud2F8fGMmJmh3KFEoYSxILkouWWEpKSkpYnJlYWs7Yj05NzthLmV2ZW50TmFtZT09PUYuRC53YSYmR3UoVC5XLk9rKTtNKDQ4OCk/VihhLEguSi5KYSwhMSk6UksoYSk7YnJlYWs7Y2FzZSBYLlYuT2I6aWYoYS5ldmVudE5hbWU9PT1GLkQud2EpYnJlYWs7Yj05ODtNKDQ4OCk/VihhLEguSi5KYSwhMSk6UksoYSk7YnJlYWs7Y2FzZSBYLlYueGE6Yj05OX0hUShhLEguSi5KYSkmJmImJlAoYik7UShhLEguSi5KYSk9PT0hMCYmKGEuaXNBYm9ydGVkPSEwKX07CnZhciBVSz1mdW5jdGlvbihhKXtpZihNKDU2OSkmJldqKCkmJlEoYSxILkouZGEpPT09WC5WLnhhJiYhUShhLEguSi5FYykpe3ZhciBiPU1hdGguZmxvb3IoRGF0ZS5ub3coKS8xRTMpLGM9bmV3IFVpbnQ4QXJyYXkoW2ImMjU1LGI+PjgmMjU1XSksZCxlPXltKCl8fCJYWCIsZj16bSgpfHwiMDAiO2Q9bmV3IFVpbnQ4QXJyYXkoW2UuY2hhckNvZGVBdCgwKSxlLmNoYXJDb2RlQXQoMSksZi5jaGFyQ29kZUF0KDApLGYuY2hhckNvZGVBdCgxKV0pO3ZhciBnPW5ldyBVaW50OEFycmF5KDcpLGg7aWYoKGg9QS5jcnlwdG8pPT1udWxsfHwhaC5nZXRSYW5kb21WYWx1ZXMoZykpZm9yKHZhciBsPTA7bDw3O2wrKylnW2xdPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyNTYpO3ZhciBuPW5ldyBVaW50OEFycmF5KFtdLmNvbmNhdCh3KGMpLHcoZCksdyhnKSkpLHA7dHJ5e3A9YnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyx3KG4pKSkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csCiJfIikucmVwbGFjZSgvPSskLywiIil9Y2F0Y2gocSl7cD0iIn1VKGEsRi5ELkVpLHApfX07ZnVuY3Rpb24gVksoKXtyZXR1cm4gTXQoNykmJk10KDkpJiZNdCgxMCl9O3ZhciBXSz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9e307YS5tZXJnZUhpdERhdGFGb3JLZXkoRi5ELm9qLChkW2JdPWMsZCkpfSxYSz1mdW5jdGlvbihhLGIpe3ZhciBjPWRJKGEsRi5ELkZpLGEuTS5pYltGLkQuRmldKTtpZihjJiZjW2J8fGEuZXZlbnROYW1lXSE9PXZvaWQgMClyZXR1cm4gY1tifHxhLmV2ZW50TmFtZV19LFlLPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouWWEpO2lmKENkKGIpKXJldHVybiBifSxaSz1mdW5jdGlvbihhKXtpZihRKGEsSC5KLmJlKXx8IWVrKGEuTSkpcmV0dXJuIDE7aWYoIU8oYS5NLEYuRC5kZCkpe3ZhciBiPU8oYS5NLEYuRC5RZik7aWYoYiE9PSEwJiZiIT09InRydWUiKXJldHVybiAxfXZhciBjPU8oYS5NLEYuRC5PaSk7cmV0dXJuIGM9PT0hMXx8Yz09PSJmYWxzZSI/MzoyfTsKdmFyIGFMPWZ1bmN0aW9uKGEsYil7YSYmKCRLKCJzaWQiLGEudGFyZ2V0SWQsYiksJEsoImNjIixhLmNsaWVudENvdW50LGIpLCRLKCJ0bCIsYS50b3RhbExpZmVNcyxiKSwkSygiaGMiLGEuaGVhcnRiZWF0Q291bnQsYiksJEsoImNsIixhLmNsaWVudExpZmVNcyxiKSl9LCRLPWZ1bmN0aW9uKGEsYixjKXtiIT1udWxsJiZjLnB1c2goYSsiPSIrYil9LGJMPWZ1bmN0aW9uKCl7dmFyIGE9Qi5yZWZlcnJlcjtpZihhKXt2YXIgYjtyZXR1cm4gTGooUmooYSksImhvc3QiKT09PSgoYj1BLmxvY2F0aW9uKT09bnVsbD92b2lkIDA6Yi5ob3N0KT8xOjJ9cmV0dXJuIDB9LGRMPWZ1bmN0aW9uKCl7dGhpcy5qYT1jTDt0aGlzLk49MDt0aGlzLnlhPU5mKDU3LDUpO3RoaXMuUj1OZig1OCw1MCk7dGhpcy5mYT1EYigpO3RoaXMuTGE9Imh0dHBzOi8vIitFKDIxKSsiL2E/In07ZEwucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMsZCl7CnZhciBlPWJMKCksZixnPVtdO2Y9QT09PUEudG9wJiZlIT09MCYmYj8oYj09bnVsbD92b2lkIDA6Yi5jbGllbnRDb3VudCk+MT9lPT09Mj8xOjI6ZT09PTI/MDozOjQ7YSYmJEsoInNpIixhLkpnLGcpOyRLKCJtIiwwLGcpOyRLKCJpc3MiLGYsZyk7JEsoImlmIixjLGcpO2FMKGIsZyk7ZCYmJEsoImZtIixlbmNvZGVVUklDb21wb25lbnQoZC5zdWJzdHJpbmcoMCx0aGlzLlIpKSxnKTt0aGlzLlooZyk7fTtkTC5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPVtdOyRLKCJtIiwxLGYpOyRLKCJzIixhLGYpOyRLKCJwbyIsYkwoKSxmKTtiJiYoJEsoInN0IixiLnN0YXRlLGYpLCRLKCJzaSIsYi5KZyxmKSwkSygic20iLGIuVWcsZikpO2FMKGMsZik7JEsoImMiLGQsZik7ZSYmJEsoImZtIixlbmNvZGVVUklDb21wb25lbnQoZS5zdWJzdHJpbmcoMCwKdGhpcy5SKSksZik7dGhpcy5aKGYpO307ZEwucHJvdG90eXBlLlo9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP1tdOmE7IWZuLk58fHRoaXMuTj49dGhpcy55YXx8KCRLKCJwaWQiLHRoaXMuZmEsYSksJEsoImJjIiwrK3RoaXMuTixhKSxhLnVuc2hpZnQoImN0aWQ9IitFKDUpKyImdD1zIiksdGhpcy5qYSgiIit0aGlzLkxhK2Euam9pbigiJiIpKSl9O2Z1bmN0aW9uIGVMKGEpe3JldHVybiBhLnBlcmZvcm1hbmNlJiZhLnBlcmZvcm1hbmNlLm5vdygpfHxEYXRlLm5vdygpfQp2YXIgZkw9ZnVuY3Rpb24oYSxiKXt2YXIgYz1BLGQ9TmYoNTMsNTAwKSxlPU5mKDU0LDVFMyksZj1OZig4LDIwKSxnPU5mKDU1LDVFMyksaDt2YXIgbD1mdW5jdGlvbihuLHAscSl7cT1xPT09dm9pZCAwP3txbzpmdW5jdGlvbigpe30sc286ZnVuY3Rpb24oKXt9LHBvOmZ1bmN0aW9uKCl7fSxvbkZhaWx1cmU6ZnVuY3Rpb24oKXt9fTpxO3RoaXMuSWo9bjt0aGlzLkg9cDt0aGlzLk49cTt0aGlzLmZhPXRoaXMuamE9dGhpcy5oZWFydGJlYXRDb3VudD10aGlzLkRqPTA7dGhpcy5mZT0hMTt0aGlzLks9e307dGhpcy5pZD1TdHJpbmcoTWF0aC5mbG9vcihOdW1iZXIuTUFYX1NBRkVfSU5URUdFUipNYXRoLnJhbmRvbSgpKSk7dGhpcy5zdGF0ZT0wO3RoaXMuSmc9ZUwodGhpcy5IKTt0aGlzLlVnPWVMKHRoaXMuSCk7dGhpcy5aPTEwfTtsLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7dGhpcy5SKDEpOwp0aGlzLkxhKCl9O2wucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKCl7cmV0dXJue3N0YXRlOnRoaXMuc3RhdGUsSmc6TWF0aC5yb3VuZChlTCh0aGlzLkgpLXRoaXMuSmcpLFVnOk1hdGgucm91bmQoZUwodGhpcy5IKS10aGlzLlVnKX19O2wucHJvdG90eXBlLlI9ZnVuY3Rpb24obil7dGhpcy5zdGF0ZSE9PW4mJih0aGlzLnN0YXRlPW4sdGhpcy5VZz1lTCh0aGlzLkgpKX07bC5wcm90b3R5cGUudmc9ZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKHRoaXMuRGorKyl9O2wucHJvdG90eXBlLkxhPWZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLmhlYXJ0YmVhdENvdW50Kys7dGhpcy55YSh7dHlwZTowLGNsaWVudElkOnRoaXMuaWQscmVxdWVzdElkOnRoaXMudmcoKSxtYXhEZWxheTp0aGlzLmhlKCl9LGZ1bmN0aW9uKHApe2lmKHAudHlwZT09PTApe3ZhciBxO2lmKCgocT1wLmZhaWx1cmUpPT1udWxsP3ZvaWQgMDpxLmZhaWx1cmVUeXBlKSE9bnVsbClpZihwLnN0YXRzJiYobi5zdGF0cz0KcC5zdGF0cyksbi5mYSsrLHAuaXNEZWFkfHxuLmZhPmYpe3ZhciByPXAuaXNEZWFkJiZwLmZhaWx1cmUuZmFpbHVyZVR5cGU7bi5aPXJ8fDEwO24uUig0KTtuLkFqKCk7dmFyIHQsdTsodT0odD1uLk4pLnBvKT09bnVsbHx8dS5jYWxsKHQse2ZhaWx1cmVUeXBlOnJ8fDEwLGRhdGE6cC5mYWlsdXJlLmRhdGF9KX1lbHNlIG4uUigzKSxuLlBoKCk7ZWxzZXtpZihuLmhlYXJ0YmVhdENvdW50PnAuc3RhdHMuaGVhcnRiZWF0Q291bnQrZil7bi5oZWFydGJlYXRDb3VudD1wLnN0YXRzLmhlYXJ0YmVhdENvdW50O3ZhciB2LHg7KHg9KHY9bi5OKS5vbkZhaWx1cmUpPT1udWxsfHx4LmNhbGwodix7ZmFpbHVyZVR5cGU6MTN9KX1uLnN0YXRzPXAuc3RhdHM7dmFyIHk9bi5zdGF0ZTtuLlIoMik7aWYoeSE9PTIpaWYobi5mZSl7dmFyIHosQzsoQz0oej1uLk4pLnNvKT09bnVsbHx8Qy5jYWxsKHopfWVsc2V7bi5mZT0hMDt2YXIgRCxJOyhJPShEPW4uTikucW8pPT1udWxsfHxJLmNhbGwoRCl9bi5mYT0KMDtuLk5qKCk7bi5QaCgpfX19KX07bC5wcm90b3R5cGUuaGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGF0ZT09PTI/ZTpkfTtsLnByb3RvdHlwZS5QaD1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5ILnNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLkxhKCl9LE1hdGgubWF4KDAsdGhpcy5oZSgpLShlTCh0aGlzLkgpLXRoaXMuamEpKSl9O2wucHJvdG90eXBlLmtyPWZ1bmN0aW9uKG4scCxxKXt2YXIgcj10aGlzO3RoaXMueWEoe3R5cGU6MSxjbGllbnRJZDp0aGlzLmlkLHJlcXVlc3RJZDp0aGlzLnZnKCksY29tbWFuZDpufSxmdW5jdGlvbih0KXtpZih0LnR5cGU9PT0xKWlmKHQucmVzdWx0KXAodC5yZXN1bHQpO2Vsc2V7dmFyIHUsdix4LHk9e2ZhaWx1cmVUeXBlOih4PSh1PXQuZmFpbHVyZSk9PW51bGw/dm9pZCAwOnUuZmFpbHVyZVR5cGUpIT1udWxsP3g6MTIsZGF0YToodj10LmZhaWx1cmUpPT1udWxsP3ZvaWQgMDp2LmRhdGF9LHosQzsoQz0oej1yLk4pLm9uRmFpbHVyZSk9PQpudWxsfHxDLmNhbGwoeix5KTtxKHkpfX0pfTtsLnByb3RvdHlwZS55YT1mdW5jdGlvbihuLHApe3ZhciBxPXRoaXM7aWYodGhpcy5zdGF0ZT09PTQpbi5mYWlsdXJlPXtmYWlsdXJlVHlwZTp0aGlzLlp9LHAobik7ZWxzZXt2YXIgcj10aGlzLnN0YXRlIT09MiYmbi50eXBlIT09MCx0PW4ucmVxdWVzdElkLHUsdj10aGlzLkguc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB5PXEuS1t0XTt5JiYoaW0oNikscS5rZCh5LDcpKX0sKHU9bi5tYXhEZWxheSkhPW51bGw/dTpnKSx4PXtyZXF1ZXN0Om4sSG86cCx6bzpyLE5zOnZ9O3RoaXMuS1t0XT14O3J8fHRoaXMuc2VuZFJlcXVlc3QoeCl9fTtsLnByb3RvdHlwZS5zZW5kUmVxdWVzdD1mdW5jdGlvbihuKXt0aGlzLmphPWVMKHRoaXMuSCk7bi56bz0hMTt0aGlzLklqKG4ucmVxdWVzdCl9O2wucHJvdG90eXBlLk5qPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPW0oT2JqZWN0LmtleXModGhpcy5LKSkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPQp0aGlzLktbcC52YWx1ZV07cS56byYmdGhpcy5zZW5kUmVxdWVzdChxKX19O2wucHJvdG90eXBlLkFqPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPW0oT2JqZWN0LmtleXModGhpcy5LKSkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpdGhpcy5rZCh0aGlzLktbcC52YWx1ZV0sdGhpcy5aKX07bC5wcm90b3R5cGUua2Q9ZnVuY3Rpb24obixwKXt0aGlzLmFjKG4pO3ZhciBxPW4ucmVxdWVzdDtxLmZhaWx1cmU9e2ZhaWx1cmVUeXBlOnB9O24uSG8ocSl9O2wucHJvdG90eXBlLmFjPWZ1bmN0aW9uKG4pe2RlbGV0ZSB0aGlzLktbbi5yZXF1ZXN0LnJlcXVlc3RJZF07dGhpcy5ILmNsZWFyVGltZW91dChuLk5zKX07bC5wcm90b3R5cGUua3M9ZnVuY3Rpb24obil7dGhpcy5qYT1lTCh0aGlzLkgpO3ZhciBwPXRoaXMuS1tuLnJlcXVlc3RJZF07aWYocCl0aGlzLmFjKHApLHAuSG8obik7ZWxzZXt2YXIgcSxyOyhyPShxPXRoaXMuTikub25GYWlsdXJlKT09bnVsbHx8ci5jYWxsKHEse2ZhaWx1cmVUeXBlOjE0fSl9fTsKaD1uZXcgbChhLGMsYik7cmV0dXJuIGh9Owp2YXIgZ0w9ZnVuY3Rpb24oKXtyZXR1cm4gYWwoMTgsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGRMfSl9LGNMPWZ1bmN0aW9uKGEpe2lvKGxvKGNvLmlhLlpiKSxmdW5jdGlvbigpe1pjKGEpfSl9LGhMPWZ1bmN0aW9uKGEpe3ZhciBiPWEuc3Vic3RyaW5nKDAsYS5pbmRleE9mKCIvXy9zZXJ2aWNlX3dvcmtlciIpKTtyZXR1cm4iJjFwPTEiKyhiPyImcGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudChiKToiIil9LGlMPWZ1bmN0aW9uKGEpe3ZhciBiPUEubG9jYXRpb24ub3JpZ2luO2lmKCFiKXJldHVybiBudWxsOyhNKDQzMik/V2ooKTpXaigpJiYhYSkmJihhPSIiK2IrWGooKSsiL18vc2VydmljZV93b3JrZXIiKTt2YXIgYz1hLGQsZT1MZigxMSk7ZT1MZigxMCk7ZD1lO2M/KGMuY2hhckF0KGMubGVuZ3RoLTEpIT09Ii8iJiYKKGMrPSIvIiksYT1jK2QpOmE9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL3N0YXRpYy9zZXJ2aWNlX3dvcmtlci8iK2QrIi8iO3ZhciBmO3RyeXtmPW5ldyBVUkwoYSl9Y2F0Y2goZyl7cmV0dXJuIG51bGx9cmV0dXJuIGYucHJvdG9jb2whPT0iaHR0cHM6Ij9udWxsOmZ9LGpMPWZ1bmN0aW9uKGEpe3ZhciBiPW5tKGptLmJhLk9oKTtyZXR1cm4gYiYmYlthXX0sa0w9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0aGlzLks9Z0woKTt0aGlzLlo9dGhpcy5SPSExO3RoaXMuZmE9bnVsbDt0aGlzLmluaXRUaW1lPU1hdGgucm91bmQoTmIoKSk7dGhpcy5IPTE1O3RoaXMuTj10aGlzLkZyKGEpO0Euc2V0VGltZW91dChmdW5jdGlvbigpe2IuaW5pdGlhbGl6ZSgpfSwxRTMpO2JkKGZ1bmN0aW9uKCl7Yi56cyhhKX0pfTtrPWtMLnByb3RvdHlwZTtrLmRlbGVnYXRlPWZ1bmN0aW9uKGEsYixjKXt0aGlzLmdldFN0YXRlKCkhPT0yPyh0aGlzLksuSCh0aGlzLkgse3N0YXRlOnRoaXMuZ2V0U3RhdGUoKSwKSmc6dGhpcy5pbml0VGltZSxVZzpNYXRoLnJvdW5kKE5iKCkpLXRoaXMuaW5pdFRpbWV9LHZvaWQgMCxhLmNvbW1hbmRUeXBlKSxjKHtmYWlsdXJlVHlwZTp0aGlzLkh9KSk6dGhpcy5OLmtyKGEsYixjKX07ay5nZXRTdGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk4uZ2V0U3RhdGUoKS5zdGF0ZX07ay56cz1mdW5jdGlvbihhKXt2YXIgYj1BLmxvY2F0aW9uLm9yaWdpbixjPXRoaXMsZD1YYygpO3RyeXt2YXIgZT1kLmNvbnRlbnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxmPWEucGF0aG5hbWUsZz1mW2YubGVuZ3RoLTFdPT09Ii8iP2EudG9TdHJpbmcoKTphLnRvU3RyaW5nKCkrIi8iLGg9YS5vcmlnaW4hPT0iaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20iP2hMKGYpOiIiLGw7TSgxMzMpJiYobD17c2FuZGJveDoiYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ctc2NyaXB0cyJ9KTtYYyhnKyJzd19pZnJhbWUuaHRtbD9vcmlnaW49IitlbmNvZGVVUklDb21wb25lbnQoYikrCmgsdm9pZCAwLGwsdm9pZCAwLGUpO3ZhciBuPWZ1bmN0aW9uKCl7ZC5jb250ZW50RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTtlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7Yy5mYT1lLmNvbnRlbnRXaW5kb3c7ZC5jb250ZW50V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uKHApe3Aub3JpZ2luPT09YS5vcmlnaW4mJmMuTi5rcyhwLmRhdGEpfSk7Yy5pbml0aWFsaXplKCl9KX07ZC5jb250ZW50RG9jdW1lbnQucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSI/bigpOmQuY29udGVudFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe24oKX0pfWNhdGNoKHApe2QucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChkKSx0aGlzLkg9MTEsdGhpcy5LLksodm9pZCAwLHZvaWQgMCx0aGlzLkgscC50b1N0cmluZygpKX19O2suRnI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPWZMKGZ1bmN0aW9uKGQpe3ZhciBlOyhlPWIuZmEpPT0KbnVsbHx8ZS5wb3N0TWVzc2FnZShkLGEub3JpZ2luKX0se3FvOmZ1bmN0aW9uKCl7Yi5SPSEwO2IuSy5LKGMuZ2V0U3RhdGUoKSxjLnN0YXRzKX0sc286ZnVuY3Rpb24oKXt9LHBvOmZ1bmN0aW9uKGQpe2IuUj8oYi5IPShkPT1udWxsP3ZvaWQgMDpkLmZhaWx1cmVUeXBlKXx8MTAsYi5LLkgoYi5ILGMuZ2V0U3RhdGUoKSxjLnN0YXRzLHZvaWQgMCxkPT1udWxsP3ZvaWQgMDpkLmRhdGEpKTooYi5IPShkPT1udWxsP3ZvaWQgMDpkLmZhaWx1cmVUeXBlKXx8NCxiLksuSyhjLmdldFN0YXRlKCksYy5zdGF0cyxiLkgsZD09bnVsbD92b2lkIDA6ZC5kYXRhKSl9LG9uRmFpbHVyZTpmdW5jdGlvbihkKXtiLkg9ZC5mYWlsdXJlVHlwZTtiLksuSChiLkgsYy5nZXRTdGF0ZSgpLGMuc3RhdHMsZC5jb21tYW5kLGQuZGF0YSl9fSk7cmV0dXJuIGN9O2suaW5pdGlhbGl6ZT1mdW5jdGlvbigpe3RoaXMuWnx8dGhpcy5OLmluaXQoKTt0aGlzLlo9ITB9Owp2YXIgbEw9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU7aWYoKGU9akwoYSkpPT1udWxsfHwhZS5kZWxlZ2F0ZSl7dmFyIGY9SWMoKT8xNjo2O2dMKCkuSChmLHZvaWQgMCx2b2lkIDAsYi5jb21tYW5kVHlwZSk7ZCh7ZmFpbHVyZVR5cGU6Zn0pO3JldHVybn1qTChhKS5kZWxlZ2F0ZShiLGMsZCk7fTsKZnVuY3Rpb24gbUwoYSxiLGMsZCl7dmFyIGU9aUwoYSk7aWYoZT09PW51bGwpe2QoIl9pc19zdz1mIisoSWMoKT8xNjo2KSsidGUiKTtyZXR1cm59dmFyIGY9Yj8xOjAsZz1NYXRoLnJvdW5kKE5iKCkpLGgsbD0oaD1qTChlLm9yaWdpbikpPT1udWxsP3ZvaWQgMDpoLmluaXRUaW1lLG49bD9nLWw6dm9pZCAwLHA7TSg0MzIpP3A9V2ooKT92b2lkIDA6QS5sb2NhdGlvbi5ocmVmOnA9QS5sb2NhdGlvbi5ocmVmO2xMKGUub3JpZ2luLHtjb21tYW5kVHlwZTowLHBhcmFtczp7dXJsOmEsbWV0aG9kOmYsdGVtcGxhdGVzOmMsYm9keTpifHwiIixwcm9jZXNzUmVzcG9uc2U6ITAsc2luY2VJbml0Om4sYXR0cmlidXRpb25SZXBvcnRpbmc6ITAscmVmZXJlcjpwLHN0cmljdDpNKDU4NCl9fSxmdW5jdGlvbigpe30sZnVuY3Rpb24ocSl7dmFyIHI9Il9pc19zdz1mIitxLmZhaWx1cmVUeXBlLHQsdT0odD1qTChlLm9yaWdpbikpPT0KbnVsbD92b2lkIDA6dC5nZXRTdGF0ZSgpO3UhPT12b2lkIDAmJihyKz0icyIrdSk7ZChuP3IrKCJ0IituKTpyKyJ0ZSIpfSk7fTtmdW5jdGlvbiBuTChhKXtpZihJZig0NykmJmRJKGEsImNjZF9hZGRfMXBfZGF0YSIsITEpJiZXaigpKXt2YXIgYj1hLk07aWYoSWMoKSYmYmcoImludGVybmFsX3N3X2FsbG93ZWQiLCIiKSl7dmFyIGM9ZWsoYiksZD1XaigpP1hqKCk6dm9pZCAwLGU7ZT1kP3twYXRoOmQsZW86ImZ1bGwifTpjP3twYXRoOmMsZW86ImxpdGUifTp2b2lkIDA7aWYoZSl7dmFyIGY9ZS5lbyxnPW5ldyBVUkwoZS5wYXRoLEEubG9jYXRpb24ub3JpZ2luKTtpZihnLm9yaWdpbj09PUEubG9jYXRpb24ub3JpZ2luJiZweShmKT09PXZvaWQgMCl7dmFyIGg9b20oam0uYmEuT2gse30pO2hbZl18fChoW2ZdPW5ldyBueShnKSl9fX19fTt2YXIgb0w9ZnVuY3Rpb24oYSl7bkwoYSl9Owp2YXIgcEw9ZnVuY3Rpb24oYSl7aWYoIVEoYSxILkouSmEpJiYhYS5pc0Fib3J0ZWQpaWYoUShhLEguSi5kYSkhPT1YLlYueGEpUShhLEguSi5YbSkmJlUoYSxGLkQuSmgsIjEiKSxJeihhKTtlbHNle3ZhciBiPVEoYSxILkouWWEpLGM9UihhLEYuRC5CYyksZD1RKGEsSC5KLmZkKSxlPUlmKDQ3KSYmZEkoYSwiY2NkX2VuYWJsZV9jbSIsITEpLGY9WG8oZnApJiZRKGEsSC5KLndkKSYmZTtmJiYoVShhLEYuRC5KaCwiMSIpLFEoYSxILkouSWgpJiYoVihhLEguSi5ZYSksVShhLEYuRC5CYyksVihhLEguSi5mZCwhMSkpKTt2YXIgZz1ydihtdik7VihhLEguSi5nbixnKTtmb3IodmFyIGgsbD1bXSxuPW0ocXYpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1wLnZhbHVlLHI9Z1txLnBiXTtpZihyPT09dm9pZCAwfHxyPHEuT2cpYnJlYWs7bC5wdXNoKHIudG9TdHJpbmcoKSl9KGg9bC5qb2luKCJ+IikpJiZVKGEsIl8mZ2NsX2N0ciIsaCk7dmFyIHQ7dmFyIHU9e3JhbmRvbTpRKGEsCkguSi5FYiksbGFiZWw6UihhLEYuRC5HZCl9LHY9UShhLEguSi5HYSkseD13digpO3g/KHl2KFt1XSx2KSx0PXgubGVuZ3RoPT09MD97cmFuZG9tOjAsbGFiZWw6IjAifTp4WzBdKTp0PXZvaWQgMDt2YXIgeT10O3kmJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSx7bGFzdF9yYW5kb206eS5yYW5kb20sbGFzdF9sYWJlbDp5LmxhYmVsfSk7SXooYSk7aWYoUShhLEguSi5vYikmJlhvKGZwKSl7dmFyIHo9WnUoYSx7TTp1QyhhLk0pfSk7Vih6LEguSi5kYSxYLlYuWmQpO0l6KHopfWlmKFEoYSxILkoubGopKXt2YXIgQz1adShhLHtNOnVDKGEuTSl9KTtWKEMsSC5KLmRhLFguVi56ZCk7SXooQyl9aWYoZil7dmFyIEQ9WnUoYSx7TTp1QyhhLk0pfSk7VShELEYuRC5KaCwiMiIpO1YoRCxILkouRWMsITApO1YoRCxILkouZmQsZCk7VihELEguSi5ZYSxiKTtVKEQsRi5ELkJjLGMpO0l6KEQpfX19O3ZhciBxTD1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKT09PVguVi54YTtpZighYnx8YS5ldmVudE5hbWU9PT1GLkQuSWJ8fGEuTS5pc0d0bUV2ZW50KWEuY29weVRvSGl0RGF0YShGLkQuSGEpLGImJihhLmNvcHlUb0hpdERhdGEoRi5ELkZmKSxhLmNvcHlUb0hpdERhdGEoRi5ELkRmKSxhLmNvcHlUb0hpdERhdGEoRi5ELkVmKSxhLmNvcHlUb0hpdERhdGEoRi5ELkNmKSxVKGEsRi5ELndpLEYuRC5JYiksYS5jb3B5VG9IaXREYXRhKEYuRC5TZCksYS5jb3B5VG9IaXREYXRhKEYuRC5RZCksYS5jb3B5VG9IaXREYXRhKEYuRC5SZCkpfTt2YXIgckw9ZnVuY3Rpb24oKXt2YXIgYT1IYyYmSGMudXNlckFnZW50fHwiIjtpZihhLmluZGV4T2YoIlNhZmFyaSIpPDB8fC9DaHJvbWV8Q29hc3R8T3BlcmF8RWRnfFNpbGt8QW5kcm9pZC8udGVzdChhKSlyZXR1cm4hMTt2YXIgYj0oL1ZlcnNpb25cLyhbXGRcLl0rKS8uZXhlYyhhKXx8W10pWzFdfHwiIjtpZihiPT09IiIpcmV0dXJuITE7Zm9yKHZhciBjPVsiMTQiLCIxIiwiMSJdLGQ9Yi5zcGxpdCgiLiIpLGU9MDtlPGQubGVuZ3RoO2UrKyl7aWYoY1tlXT09PXZvaWQgMClyZXR1cm4hMDtpZihkW2VdIT09Y1tlXSlyZXR1cm4gTnVtYmVyKGRbZV0pPk51bWJlcihjW2VdKX1yZXR1cm4gZC5sZW5ndGg+PWMubGVuZ3RofTtmdW5jdGlvbiBzTCgpe3ZhciBhO2E9YT09PXZvaWQgMD9kb2N1bWVudDphO3ZhciBiO3JldHVybiEoKGI9YS5mZWF0dXJlUG9saWN5KT09bnVsbHx8IWIuYWxsb3dlZEZlYXR1cmVzKCkuaW5jbHVkZXMoImF0dHJpYnV0aW9uLXJlcG9ydGluZyIpKX07dmFyIHRMPWZ1bmN0aW9uKGEpe1hvKEYuRC5tYSkmJihBLl9ndG1wY209PT0hMHx8ckwoKT9VKGEsRi5ELkZlLCIyIik6c0woKSYmVShhLEYuRC5GZSwiMSIpKTsoT2MoKXx8UWMoKSkmJlYoYSxILkoub2IsITApO1YoYSxILkouWWUsUShhLEguSi5YZSkmJiFYbyhmcCkpO1EoYSxILkouc2EpJiZVKGEsRi5ELnNhLCEwKTthLk0uZXZlbnRNZXRhZGF0YVtILkouYWVdJiZVKGEsRi5ELlZtLCEwKX07dmFyIHVMPWZ1bmN0aW9uKGEpe2EuY29weVRvSGl0RGF0YShGLkQuUGEpO2EuY29weVRvSGl0RGF0YShGLkQuUWEpO2EuY29weVRvSGl0RGF0YShGLkQuZWIpO1EoYSxILkoub2IpP1UoYSxGLkQuV2ksInd3dy5nb29nbGUuY29tIik6VShhLEYuRC5XaSwid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIik7dmFyIGI9TyhhLk0sRi5ELldiKTtiIT09ITAmJmIhPT0hMXx8VShhLEYuRC5XYixiKX07dmFyIHZMPWZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0Lmlkc1tkQ1swXV07aWYoYil7VShhLEYuRC55aSxiKTt2YXIgYz1hLnRhcmdldC5pZHNbZENbMV1dO2MmJlUoYSxGLkQuR2QsYyk7TyhhLk0sRi5ELmloKT09PSEwJiZWKGEsSC5KLnBuLCEwKX1lbHNlIGEuaXNBYm9ydGVkPSEwfTtmdW5jdGlvbiB3TChhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDt2YXIgZT1GcCgpLGY9RHAoZSk7aWYoZi51cmwpaWYoZCl7dmFyIGc9YyhmLnVybCk7YiE9PWcmJlUoYSxGLkQuUGUsZyl9ZWxzZXt2YXIgaD1mLnVybDtiIT09aCYmVShhLEYuRC5QZSxjKGgpKX19O3ZhciB6TD1mdW5jdGlvbihhKXtpZighUShhLEguSi5zYSkpe3ZhciBiPVIoYSxGLkQuTWUpLGM9TyhhLk0sRi5ELnphKSxkPWM7ZHx8KGQ9Yj09PTE/QS50b3AubG9jYXRpb24uaHJlZjpBLmxvY2F0aW9uLmhyZWYpO1UoYSxGLkQuemEseEwoZCkpO2EuY29weVRvSGl0RGF0YShGLkQuVWEsQi5yZWZlcnJlcik7VShhLEYuRC5NYix5TCgpKTthLmNvcHlUb0hpdERhdGEoRi5ELnRiKTt2YXIgZT1xSSgpO1UoYSxGLkQuYmQsZS53aWR0aCsieCIrZS5oZWlnaHQpO3ZhciBmPU0oNTgzKSYmISFjO3dMKGEsZCxmdW5jdGlvbihnKXt2YXIgaD14TChnKTtmJiYoaD1oLnNwbGl0KCI/IilbMF0pO3JldHVybiBofSl9fTsKdmFyIHhMPWZ1bmN0aW9uKGEpe2lmKGEhPW51bGwpe3ZhciBiPVN0cmluZyhhKS5zdWJzdHJpbmcoMCw1MTIpLGM9Yi5pbmRleE9mKCIjIik7cmV0dXJuIGM9PT0tMT9iOmIuc3Vic3RyaW5nKDAsYyl9cmV0dXJuIiJ9LHlMPWZ1bmN0aW9uKCl7dmFyIGE9Qi50aXRsZTtpZihhPT09dm9pZCAwfHxhPT09IiIpcmV0dXJuIiI7YT1lbmNvZGVVUklDb21wb25lbnQoYSk7Zm9yKHZhciBiPTI1NjtiPjAmJktqKGEuc3Vic3RyaW5nKDAsYikpPT09dm9pZCAwOyliLS07cmV0dXJuIEtqKGEuc3Vic3RyaW5nKDAsYikpfHwiIn07ZnVuY3Rpb24gQUwoYSl7VihhLEguSi5KYSwhMCk7VihhLEguSi5FYixOYigpKTtWKGEsSC5KLnluLGEuTS5ldmVudE1ldGFkYXRhW0guSi5KYV0pfTt2YXIgQkw9ZnVuY3Rpb24oYSl7TSg0NykmJmEuY29weVRvSGl0RGF0YShGLkQua2gpfTt2YXIgQ0w9ZnVuY3Rpb24oYSl7dmFyIGI9TSg0NDMpLGM9TSg1NzApO2lmKChifHxjKSYmWG8oZnApKXt2YXIgZD1RKGEsSC5KLllhKTtpZihodyhkKSl7dmFyIGU9UShhLEguSi5HYSk7aWYoYil7dmFyIGY9UShhLEguSi56ail8fFR2KGUpO1UoYSxGLkQueGMsZil9aWYoYyl7dmFyIGc9U3YoZSx7WGg6ITB9KS5paztnJiZVKGEsIl8mZWNzaWQyIixnKX19fX07dmFyIERMPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouUW0pO2ImJlUoYSxGLkQuV2MsYil9O3ZhciBFTD1mdW5jdGlvbihhKXt2YXIgYj1BO2lmKGIuX19nc2FFeHAmJmIuX19nc2FFeHAuaWQpe3ZhciBjPWIuX19nc2FFeHAuaWQ7aWYoeWIoYykpdHJ5e3ZhciBkPU51bWJlcihjKCkpO2lzTmFOKGQpfHxVKGEsRi5ELlBsLGQpfWNhdGNoKGUpe319fTt2YXIgRkw9ZnVuY3Rpb24oYSl7YS5jb3B5VG9IaXREYXRhKEYuRC5OZSk7YS5jb3B5VG9IaXREYXRhKEYuRC5HZSk7YS5jb3B5VG9IaXREYXRhKEYuRC5VZCk7YS5jb3B5VG9IaXREYXRhKEYuRC5JZSk7YS5jb3B5VG9IaXREYXRhKEYuRC5UYyk7YS5jb3B5VG9IaXREYXRhKEYuRC5MZCl9O3ZhciBHTD1mdW5jdGlvbihhKXtpZihYbyhGLkQubWEpKXthLmNvcHlUb0hpdERhdGEoRi5ELmZiKTt2YXIgYj1ubShqbS5iYS5acSk7aWYoYj09PXZvaWQgMCltbShqbS5iYS5hciwhMCk7ZWxzZXt2YXIgYz1ubShqbS5iYS5zaik7VShhLEYuRC5aZixjKyIuIitiKX19fTsKdmFyIE1MPWZ1bmN0aW9uKGEsYil7aWYoYSYmKHpiKGEpJiYoYT1iQyhhKSksYSkpe3ZhciBjPXZvaWQgMCxkPSExLGU9TyhiLEYuRC5rcSk7aWYoZSYmQXJyYXkuaXNBcnJheShlKSl7Yz1bXTtmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKyl7dmFyIGc9YkMoZVtmXSk7ZyYmKGMucHVzaChnKSwoYS5pZD09PWcuaWR8fGEuaWQ9PT1hLmRlc3RpbmF0aW9uSWQmJmEuZGVzdGluYXRpb25JZD09PWcuZGVzdGluYXRpb25JZCkmJihkPSEwKSl9fWlmKCFjfHxkKXt2YXIgaD1PKGIsRi5ELllsKSxsO2lmKGgpe2w9QXJyYXkuaXNBcnJheShoKT9oOltoXTt2YXIgbj1PKGIsRi5ELldsKSxwPU8oYixGLkQuWGwpLHE9TyhiLEYuRC5abCkscj1RbyhPKGIsRi5ELmpxKSksdD1ufHxwLHU9MTthLnByZWZpeCE9PSJVQSJ8fGN8fCh1PTUpO2Zvcih2YXIgdj0wO3Y8bC5sZW5ndGg7disrKWlmKHY8dSlpZihjKUhMKGMsbFt2XSxyLGIse29lOnQsb3B0aW9uczpxfSk7ZWxzZSBpZihhLnByZWZpeD09PQoiQVciJiZhLmlkc1tkQ1sxXV0pe3ZhciB4PWEuaWRzW2RDWzBdXSx5PWEuaWRzW2RDWzFdXSx6PWxbdl0sQz1iLEQ9e29lOnQsb3B0aW9uczpxfTtQKDIyKTtpZih6KXtEPUR8fHt9O3ZhciBJPUlMKEpMLEQseCxDKSxHPXthazp4LGNsOnl9O0Qub2U9PT12b2lkIDAmJihHLmF1dG9yZXBsYWNlPXopO0tMKEcsQyk7SSgyLEQub2UsRyx6LDAsTWIoKSxELm9wdGlvbnMpfX1lbHNlIGlmKGEucHJlZml4PT09IlVBIil7dmFyIE49YS5kZXN0aW5hdGlvbklkLFM9bFt2XSxXPXtvZTp0fTtQKDIzKTtpZihTKXtXPVd8fHt9O3ZhciBlYT1JTChMTCxXLE4pLGphPXt9O1cub2UhPT12b2lkIDA/amEucmVjZWl2ZXI9Vy5vZTpqYS5yZXBsYWNlPVM7amEuZ2Ffd3BpZD1OO2phLmRlc3RpbmF0aW9uPVM7ZWEoMixNYigpLGphKX19fX19fSxITD1mdW5jdGlvbihhLGIsYyxkLGUpe1AoMjEpO2lmKGImJmMpe2U9ZXx8e307Zm9yKHZhciBmPXtjb3VudHJ5TmFtZUNvZGU6YyxkZXN0aW5hdGlvbk51bWJlcjpiLApyZXRyaWV2YWxUaW1lOk1iKCl9LGc9YWwoNCxmdW5jdGlvbigpe3JldHVybnt9fSksaD0wO2g8YS5sZW5ndGg7aCsrKXt2YXIgbD1hW2hdO2dbbC5pZF18fChsJiZsLnByZWZpeD09PSJBVyImJiFmLmFkRGF0YSYmbC5pZHMubGVuZ3RoPj0yPyhmLmFkRGF0YT17YWs6bC5pZHNbZENbMF1dLGNsOmwuaWRzW2RDWzFdXX0sS0woZi5hZERhdGEsZCksZ1tsLmlkXT0hMCk6bCYmbC5wcmVmaXg9PT0iVUEiJiYhZi5nYURhdGEmJihmLmdhRGF0YT17Z2FXcGlkOmwuZGVzdGluYXRpb25JZH0sZ1tsLmlkXT0hMCkpfShmLmdhRGF0YXx8Zi5hZERhdGEpJiZJTChOTCxlLHZvaWQgMCxkKShlLm9lLGYsZS5vcHRpb25zKX19LEtMPWZ1bmN0aW9uKGEsYil7YS5kbWE9JHQoKTthdSgpJiYoYS5kbWFDcHM9WnQoKSk7U3QoYik/YS5ucGE9IjAiOmEubnBhPSIxIn0sSUw9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9QTtpZihlW2EuZnVuY3Rpb25OYW1lXSlyZXR1cm4gYi5ybyYmYmQoYi5ybyksZVthLmZ1bmN0aW9uTmFtZV07CnZhciBmPU9MKCk7ZVthLmZ1bmN0aW9uTmFtZV09ZjtpZihhLmFkZGl0aW9uYWxRdWV1ZXMpZm9yKHZhciBnPTA7ZzxhLmFkZGl0aW9uYWxRdWV1ZXMubGVuZ3RoO2crKyllW2EuYWRkaXRpb25hbFF1ZXVlc1tnXV09ZVthLmFkZGl0aW9uYWxRdWV1ZXNbZ11dfHxPTCgpO2EuaWRLZXkmJmVbYS5pZEtleV09PT12b2lkIDAmJihlW2EuaWRLZXldPWMpO1puKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6MCxldmVudElkOmQ9PW51bGw/dm9pZCAwOmQuZXZlbnRJZCxwcmlvcml0eUlkOmQ9PW51bGw/dm9pZCAwOmQucHJpb3JpdHlJZH0sZEEoImh0dHBzOi8vIiwiaHR0cDovLyIsYS5zY3JpcHRVcmwpLGIucm8sYi50dik7cmV0dXJuIGZ9LE9MPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2EucT1hLnF8fFtdO2EucS5wdXNoKGFyZ3VtZW50cyl9cmV0dXJuIGF9LEpMPXtmdW5jdGlvbk5hbWU6Il9nb29nV2NtSW1wbCIsaWRLZXk6Il9nb29nV2NtQWsiLHNjcmlwdFVybDoid3d3LmdzdGF0aWMuY29tL3djbS9sb2FkZXIuanMifSwKTEw9e2Z1bmN0aW9uTmFtZToiX2dhUGhvbmVJbXBsIixpZEtleToiZ2Ffd3BpZCIsc2NyaXB0VXJsOiJ3d3cuZ3N0YXRpYy5jb20vZ2FwaG9uZS9sb2FkZXIuanMifSxQTD17WW86TGYoMiksZ3I6IjUifSxOTD17ZnVuY3Rpb25OYW1lOiJfZ29vZ0NhbGxUcmFja2luZ0ltcGwiLGFkZGl0aW9uYWxRdWV1ZXM6W0xMLmZ1bmN0aW9uTmFtZSxKTC5mdW5jdGlvbk5hbWVdLHNjcmlwdFVybDoid3d3LmdzdGF0aWMuY29tL2NhbGwtdHJhY2tpbmcvY2FsbC10cmFja2luZ18iKyhQTC5Zb3x8UEwuZ3IpKyIuanMifTt2YXIgUUw9ZnVuY3Rpb24oYSl7UShhLEguSi5zYSl8fE1MKGEudGFyZ2V0LGEuTSk7YS5pc0Fib3J0ZWQ9ITB9O3ZhciBSTD1mdW5jdGlvbihhKXtYbyhGLkQua2EpJiZjeChhKX07dmFyIFNMPWZ1bmN0aW9uKGEpe3ZhciBiPVhvKEYuRC5rYSk/bWooInBzY2RsIik6ImRlbmllZCI7YiE9bnVsbCYmVShhLEYuRC5qaCxiKX07dmFyIFRMPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fX07dmFyIFVMPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5NO2lmKGI9PT12b2lkIDA/MDpiKXt2YXIgZD1jLmdldE1lcmdlZFZhbHVlcyhGLkQuT2EpO1liKGQpJiZVKGEsRi5ELkxpLFliKGQpKX12YXIgZT1PbyhmRChGLkQuT2EpKSxmPWMuZ2V0TWVyZ2VkVmFsdWVzKEYuRC5PYSwxLGUpLGc9Yy5nZXRNZXJnZWRWYWx1ZXMoRi5ELk9hLDIpLGg9WWIobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxmLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sVEwuSCkpLCIuIiksbD1ZYihnLCIuIik7aCYmVShhLEYuRC5YYyxoKTtsJiZVKGEsRi5ELlZjLGwpfTt2YXIgVkw9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi50cSk7YiYmVShhLEYuRC5JbCxiKX07ZnVuY3Rpb24gV0woYSl7dmFyIGI9S0IoITEpO2lmKGIhPW51bGwmJmIuc3RhdHVzKXt2YXIgYz17Z3RiOmIuc3RhdHVzfTtiLmRlbGF5JiYoYy5ndGJkPWIuZGVsYXkpO2EubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSxjKX19O3ZhciBYTD1mdW5jdGlvbihhKXt6bSgpPT09IlVTLUNPIiYmVShhLEYuRC5MZSwxKX07dmFyIFlMPXtSYTp7Q2s6MSx6bjoyLEhuOjMsSW46NCxKbjo1LHduOjZ9fTtZTC5SYVtZTC5SYS5Da109IkFET0JFX0NPTU1FUkNFIjtZTC5SYVtZTC5SYS56bl09IlNRVUFSRVNQQUNFIjtZTC5SYVtZTC5SYS5Ibl09IldPT19DT01NRVJDRSI7WUwuUmFbWUwuUmEuSW5dPSJXT09fQ09NTUVSQ0VfTEVHQUNZIjtZTC5SYVtZTC5SYS5Kbl09IldPUkRfUFJFU1MiO1lMLlJhW1lMLlJhLnduXT0iU0hPUElGWSI7ZnVuY3Rpb24gWkwoYSl7dmFyIGI9QTtyZXR1cm4gS2ooYi5lc2NhcGUoYi5hdG9iKGEpKSl9CmZ1bmN0aW9uICRMKCl7dHJ5e2lmKCFNKDQ5OCkmJiFNKDQyNSkpcmV0dXJuW107dmFyIGE9bm0oam0uYmEubG4pO2lmKEFycmF5LmlzQXJyYXkoYSkpcmV0dXJuIGE7dmFyIGI9W10sYzthOnt0cnl7Yz0hIUIucXVlcnlTZWxlY3Rvcignc2NyaXB0W2RhdGEtcmVxdWlyZW1vZHVsZV49Im1hZ2UvIl0nKTticmVhayBhfWNhdGNoKHkpe31jPSExfWMmJmIucHVzaChZTC5SYS5Dayk7dmFyIGQ7YTp7dHJ5e3ZhciBlPVpMKCJZWE56WlhSekxuTnhkV0Z5WlhOd1lXTmxMbU52YlM4PSIpO2Q9ZT8hIUIucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyY149Ii8vJytlKyciXScpOiExO2JyZWFrIGF9Y2F0Y2goeSl7fWQ9ITF9ZCYmYi5wdXNoKFlMLlJhLnpuKTt2YXIgZjthOntpZihNKDQyNSkpdHJ5e3ZhciBnPVpMKCJjMmh2Y0dsbWVTNWpiMjA9IiksaD1aTCgiYzJodmNHbG1lV05rYmk1amIyMD0iKTtmPWcmJmg/ISFCLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMqPSJjZG4uJytnKyciXSxtZXRhW3Byb3BlcnR5PSJvZzppbWFnZSJdW2NvbnRlbnQqPSJjZG4uJysKKGcrJyJdLGxpbmtbcmVsPSJwcmVjb25uZWN0Il1baHJlZio9ImNkbi4nKSsoZysnIl0sbGlua1tyZWw9InByZWNvbm5lY3QiXVtocmVmKj0iZm9udHMuJykrKGgrJyJdLGxpbmtbcmVsPSJwcmVjb25uZWN0Il1baHJlZio9Iml0ZXJhYmxlLXNob3BpZnkiXSxsaW5rW3JlbD0icHJlY29ubmVjdCJdW2hyZWYqPSJ2LicpKyhnKyciXScpKTohMTticmVhayBhfWNhdGNoKHkpe31mPSExfWYmJmIucHVzaChZTC5SYS53bik7dmFyIGw7YTp7dHJ5e2w9ISFCLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMqPSJ3b29jb21tZXJjZSJdLGxpbmtbaHJlZio9Indvb2NvbW1lcmNlIl0sW2NsYXNzfD0id29vY29tbWVyY2UiXScpO2JyZWFrIGF9Y2F0Y2goeSl7fWw9ITF9bCYmYi5wdXNoKFlMLlJhLkluKTt2YXIgbjthOnt0cnl7dmFyIHAscT0oKHA9Qi5sb2NhdGlvbik9PW51bGw/dm9pZCAwOnAuaG9zdG5hbWUpfHwiIixyLHQ9KChyPUIubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpyLm9yaWdpbil8fAoiIix1PVpMKCJMbmR2Y21Sd2NtVnpjeTVqYjIwPSIpLHY9WkwoIkx5OXpMbmN1YjNKbiIpO249dSYmdj9UYihxLHUpfHwhIUIucXVlcnlTZWxlY3RvcignW3NyY149IicrdCsnL3dwLWNvbnRlbnQiXSxtZXRhW25hbWU9ImdlbmVyYXRvciJdW2NvbnRlbnRePSJXb3JkUHJlc3MgIl0sbGlua1tyZWw9ImRucy1wcmVmZXRjaCJdW2hyZWY9IicrKHYrJyJdJykpOiExO2JyZWFrIGF9Y2F0Y2goeSl7fW49ITF9biYmYi5wdXNoKFlMLlJhLkpuKTt2YXIgeDthOnt0cnl7eD0hIUIucXVlcnlTZWxlY3RvcignW2NsYXNzKj0id29vY29tbWVyY2UiXSxtZXRhW25hbWU9ImdlbmVyYXRvciJdW2NvbnRlbnRePSJXb29Db21tZXJjZSAiXScpO2JyZWFrIGF9Y2F0Y2goeSl7fXg9ITF9eCYmYi5wdXNoKFlMLlJhLkhuKTtVQigpJiZtbShqbS5iYS5sbixiKTtyZXR1cm4gYn1jYXRjaCh5KXt9cmV0dXJuW119O2Z1bmN0aW9uIHdNKGEpe2lmKE0oNDI1KSYmUShhLEguSi5GYykpe3ZhciBiPU5mKDY3LDE1MDApLGM9YS5tZXJnZUhpdERhdGFGb3JLZXksZD1GLkQuVGEsZT17fTtjLmNhbGwoYSxkLGUpfX07dmFyIHhNPSJwbGF0Zm9ybSBwbGF0Zm9ybVZlcnNpb24gYXJjaGl0ZWN0dXJlIG1vZGVsIHVhRnVsbFZlcnNpb24gYml0bmVzcyBmdWxsVmVyc2lvbkxpc3Qgd293NjQiLnNwbGl0KCIgIik7ZnVuY3Rpb24geU0oYSl7dmFyIGI7cmV0dXJuKGI9YS5nb29nbGVfdGFnX2RhdGEpIT1udWxsP2I6YS5nb29nbGVfdGFnX2RhdGE9e319ZnVuY3Rpb24gek0oYSl7dmFyIGIsYztyZXR1cm4oYz0oYj1hLmdvb2dsZV90YWdfZGF0YSk9PW51bGw/dm9pZCAwOmIudWFjaF9wcm9taXNlKSE9bnVsbD9jOm51bGx9ZnVuY3Rpb24gQU0oYSl7dmFyIGIsYztyZXR1cm4gdHlwZW9mKChiPWEubmF2aWdhdG9yKT09bnVsbD92b2lkIDA6KGM9Yi51c2VyQWdlbnREYXRhKT09bnVsbD92b2lkIDA6Yy5nZXRIaWdoRW50cm9weVZhbHVlcyk9PT0iZnVuY3Rpb24ifQpmdW5jdGlvbiBCTShhKXtpZighQU0oYSkpcmV0dXJuIG51bGw7dmFyIGI9eU0oYSk7aWYoYi51YWNoX3Byb21pc2UpcmV0dXJuIGIudWFjaF9wcm9taXNlO3ZhciBjPWEubmF2aWdhdG9yLnVzZXJBZ2VudERhdGEuZ2V0SGlnaEVudHJvcHlWYWx1ZXMoeE0pLnRoZW4oZnVuY3Rpb24oZCl7Yi51YWNoIT1udWxsfHwoYi51YWNoPWQpO3JldHVybiBkfSk7cmV0dXJuIGIudWFjaF9wcm9taXNlPWN9Owp2YXIgQ009ZnVuY3Rpb24oKXt0aGlzLndpbmRvdz1BO3RoaXMuTj1OYn07Q00ucHJvdG90eXBlLlI9ZnVuY3Rpb24oKXtpZihBTSh0aGlzLndpbmRvdykmJih0aGlzLlo9dGhpcy5OKCksIXpNKHRoaXMud2luZG93KSkpe3ZhciBhPUJNKHRoaXMud2luZG93KTthJiZhLnRoZW4oZnVuY3Rpb24oKXtQKDk1KX0pLmNhdGNoKGZ1bmN0aW9uKCl7UCg5Nil9KX19O0NNLnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy53aW5kb3cuZ29vZ2xlX3RhZ19kYXRhLGI7aWYoYSE9bnVsbCYmYS51YWNoKXt2YXIgYz1hLnVhY2gsZD1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMpO2MuZnVsbFZlcnNpb25MaXN0JiYoZC5mdWxsVmVyc2lvbkxpc3Q9Yy5mdWxsVmVyc2lvbkxpc3Quc2xpY2UoMCkpO2I9ZH1lbHNlIGI9bnVsbDtyZXR1cm4gYn07Q00ucHJvdG90eXBlLmZhPWZ1bmN0aW9uKGEpe3ZhciBiPTAsYz10aGlzLGQ9ZnVuY3Rpb24oaCxsKXt0cnl7YShoLGwpfWNhdGNoKG4pe319LAplPXRoaXMuSCgpO2lmKGUpZChlKTtlbHNle3ZhciBmPXpNKHRoaXMud2luZG93KTtpZihmKXtiPU1hdGgubWluKE1hdGgubWF4KGlzRmluaXRlKGIpP2I6MCwwKSwxRTMpO3ZhciBnPXRoaXMud2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtkLktnfHwoZC5LZz0hMCxQKDEwNiksZChudWxsLEVycm9yKCJUaW1lb3V0IikpKX0sYik7Zi50aGVuKGZ1bmN0aW9uKGgpe2QuS2d8fChkLktnPSEwLFAoMTA0KSxjLndpbmRvdy5jbGVhclRpbWVvdXQoZyksZChoKSl9KS5jYXRjaChmdW5jdGlvbihoKXtkLktnfHwoZC5LZz0hMCxQKDEwNSksYy53aW5kb3cuY2xlYXJUaW1lb3V0KGcpLGQobnVsbCxoKSl9KX1lbHNlIGQobnVsbCl9fTtDTS5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybiB0aGlzLlohPT12b2lkIDB9O3ZhciBETT1mdW5jdGlvbigpe3ZhciBhO2E9YT09PXZvaWQgMD9BOmE7cmV0dXJuIEFNKGEpfSxFTT1mdW5jdGlvbihhKXt2YXIgYj17fTtiW0YuRC5jZ109YS5hcmNoaXRlY3R1cmU7CmJbRi5ELmRnXT1hLmJpdG5lc3M7YS5mdWxsVmVyc2lvbkxpc3QmJihiW0YuRC5lZ109YS5mdWxsVmVyc2lvbkxpc3QubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoYy5icmFuZHx8IiIpKyI7IitlbmNvZGVVUklDb21wb25lbnQoYy52ZXJzaW9ufHwiIil9KS5qb2luKCJ8IikpO2JbRi5ELmZnXT1hLm1vYmlsZT8iMSI6IjAiO2JbRi5ELmdnXT1hLm1vZGVsO2JbRi5ELmhnXT1hLnBsYXRmb3JtO2JbRi5ELmlnXT1hLnBsYXRmb3JtVmVyc2lvbjtiW0YuRC5qZ109YS53b3c2ND8iMSI6IjAiO3JldHVybiBifSxGTT1uZXcgQ007dmFyIEdNPWZ1bmN0aW9uKGEpe2lmKCFETSgpKVAoODcpO2Vsc2UgaWYoRk0uSygpKXtQKDg1KTt2YXIgYj1GTS5IKCk7aWYoYil7aWYoYilmb3IodmFyIGM9RU0oYiksZD1tKE9iamVjdC5rZXlzKGMpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtVKGEsZixjW2ZdKX19ZWxzZSBQKDg2KX19O2Z1bmN0aW9uIEhNKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9UShhLEguSi5zZyksZD1kSShhLCJjdXN0b21fZXZlbnRfYWNjZXB0X3J1bGVzIiwhMSkmJiFiO2lmKGMpe3ZhciBlPWMuaW5kZXhPZihhLnRhcmdldC5kZXN0aW5hdGlvbklkKT49MCxmPSEwO1EoYSxILkouQ2MpJiYoZj1RKGEsSC5KLk5iKT09PXZrKCkpO2UmJmY/VihhLEguSi5raSwhMCk6KFYoYSxILkoua2ksITEpLGR8fChhLmlzQWJvcnRlZD0hMCkpO2lmKGEuY2FuQmVBY2NlcHRlZCgpKXt2YXIgZz11aygpLmluZGV4T2YoYS50YXJnZXQuZGVzdGluYXRpb25JZCk+PTAsaD0hMTtpZighZyl7dmFyIGwsbj0obD1uayhhLnRhcmdldC5kZXN0aW5hdGlvbklkKSk9PW51bGw/dm9pZCAwOmwuY2Fub25pY2FsQ29udGFpbmVySWQ7biYmKGg9dmsoKT09PW4pfWd8fGg/UShhLEguSi5raSkmJmEuYWNjZXB0KCk6YS5pc0Fib3J0ZWQ9ITB9ZWxzZSBhLmlzQWJvcnRlZD0hMH19O3ZhciBJTT1mdW5jdGlvbihhKXt2YXIgYj1PKGEuTSxGLkQuWmMpLGM9TyhhLk0sRi5ELlljKTtiJiYhYz8oYS5ldmVudE5hbWUhPT1GLkQud2EmJmEuZXZlbnROYW1lIT09Ri5ELnlmJiZQKDEzMSksYS5pc0Fib3J0ZWQ9ITApOiFiJiZjJiYoUCgxMzIpLGEuaXNBYm9ydGVkPSEwKX07dmFyIEpNPWZ1bmN0aW9uKGEpe2lmKGEuZXZlbnROYW1lPT09Ri5ELndhKXt2YXIgYj1JZigxMSksYz1RKGEsSC5KLkhxKTshKCFNKDU1MCkmJmJ8fGMpfHxhLnRhcmdldC5KYygpfHxZRygiaWRjX2NvbmZpZ19wdiIsYS50YXJnZXQuZGVzdGluYXRpb25JZCl8fChhLmlzQWJvcnRlZD0hMCl9fTt2YXIgTE09ZnVuY3Rpb24oYSxiKXtLTS5OKGEsYil9LE1NPWZ1bmN0aW9uKCl7dGhpcy5IPXt9fTtNTS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuSFthXTtjfHwoYz10aGlzLkhbYV09W10pO2MucHVzaChiKX07TU0ucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5IW2EudGFyZ2V0LmRlc3RpbmF0aW9uSWRdO2lmKCFhLmlzQWJvcnRlZCYmYilmb3IodmFyIGM9ZkkoYSksZD0wO2Q8Yi5sZW5ndGg7KytkKXt0cnl7YltkXShjKX1jYXRjaChlKXthLmlzQWJvcnRlZD0hMH1pZihhLmlzQWJvcnRlZClicmVha319O3ZhciBLTT1uZXcgTU07dmFyIE5NPWZ1bmN0aW9uKGEpe0tNLksoYSk7fTt2YXIgT009ZnVuY3Rpb24oYSl7YSYmKEFwKDQ5NSxhKSxBcCg1NjcsYSksQXAoNDUwLGEpLEFwKDQ0MyxhKSxBcCg1ODcsYSksQXAoNTc2LGEpLEFwKDU3MCxhKSxBcCg1ODEsYSksQXAoNjAyLGEpKX0sUE09ZnVuY3Rpb24oYSl7aWYoUShhLEguSi53ZikmJlhvKGZwKSl7dmFyIGI9UShhLEguSi5HYSksYz1RKGEsSC5KLmRhKSE9PVguVi51YiYmUShhLEguSi5kYSkhPT1YLlYuT2ImJlEoYSxILkouZGEpIT09WC5WLkZiJiZhLmV2ZW50TmFtZSE9PUYuRC5KYjtIdihiLGMpO3ZhciBkPUR2W0d2KGIucHJlZml4KV07T00oZCk7VShhLEYuRC5FZCxkKX19O2Z1bmN0aW9uIFFNKCl7cmV0dXJuIGtqKCJkZWR1cGVfZ2NsaWQiLGZ1bmN0aW9uKCl7cmV0dXJuIEF2KCl9KX07dmFyIFJNPS9eKHd3d1wuKT9nb29nbGUoXC5jb20/KT8oXC5bYS16XXsyfXQ/KT8kLyxTTT0vXnd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSQvO2Z1bmN0aW9uIFRNKGEpe2F8fChhPVVNKCkpO3JldHVybiBhLk50PyExOmEubnN8fGEucXN8fGEudnN8fGEucnN8fGEuRGd8fGEuVGh8fGEuVHJ8fGEuVmg9PT0iYXcuZHMifHxNKDIzNSkmJmEuVmg9PT0iYXcuZHYifHxhLllyPyEwOiExfQpmdW5jdGlvbiBVTSgpe3ZhciBhPXt9LGI9VXEoITApO2EuTnQ9ISFiLl91cDt2YXIgYz1lcygpLGQ9YXQoKTthLm5zPWMuYXchPT12b2lkIDA7YS5xcz1jLmRjIT09dm9pZCAwO2EudnM9Yy53YnJhaWQhPT12b2lkIDA7YS5ycz1jLmdicmFpZCE9PXZvaWQgMDthLlZoPXR5cGVvZiBjLmdjbHNyYz09PSJzdHJpbmciP2MuZ2Nsc3JjOnZvaWQgMDthLkRnPWQuRGc7YS5UaD1kLlRoO3ZhciBlPUIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIjthLllyPVJNLnRlc3QoZSk7YS5Ucj1TTS50ZXN0KGUpO3JldHVybiBhfTtmdW5jdGlvbiBWTSgpe3ZhciBhPUEuX191c3BhcGk7aWYoeWIoYSkpe3ZhciBiPSIiO3RyeXthKCJnZXRVU1BEYXRhIiwxLGZ1bmN0aW9uKGMsZCl7aWYoZCYmYyl7dmFyIGU9Yy51c3BTdHJpbmc7ZSYmUmVnRXhwKCJeW1xcZGEtekEtWi1dezEsMjB9JCIpLnRlc3QoZSkmJihiPWUpfX0pfWNhdGNoKGMpe31yZXR1cm4gYn19Owp2YXIgV009ZnVuY3Rpb24oYSl7dmFyIGI9WG8oZnApO1YoYSxILkouWWUsTyhhLk0sRi5ELm1iKSE9bnVsbCYmTyhhLk0sRi5ELm1iKSE9PSExJiYhYik7dmFyIGM9UShhLEguSi5kaiksZD1PKGEuTSxGLkQudWMpIT09ITEsZT1MSyhhKTtkfHxVKGEsRi5ELkhkLCIxIik7dmFyIGY9SHIoZS5wcmVmaXgpLGc9UShhLEguSi5zYSl8fFEoYSxILkoudWcpfHxRKGEsSC5KLldlKTtjfHxnfHxVKGEsIl8mYXB2YyIsIjAiKTthLk0uaXNHdG1FdmVudCYmVShhLEYuRC5JbCwiZyIpO1UoYSxGLkQuRWQpO1UoYSxGLkQuTWIpO2lmKGImJihVKGEsRi5ELk1iLHlMKCkpLGQpKXtIdihlKTt2YXIgaD1EdltHdihlLnByZWZpeCldO1UoYSxGLkQuRWQsaCk7T00oaCl9aWYoYS5ldmVudE5hbWU9PT1GLkQud2EmJiFnKXt2YXIgbD1PKGEuTSxGLkQuemMpLG49TyhhLk0sRi5ELkRiKXx8e307UEsoe1RuOmQsbW86bixRbzpsLFVuOmV9KTshYyYmWXMoZikmJihWKGEsSC5KLnZkLCEwKSxVKGEsIl8mYXB2YyIsCiIxIikpfWlmKGMpYS5pc0Fib3J0ZWQ9ITA7ZWxzZXthLnRhcmdldC5kZXN0aW5hdGlvbklkJiZVKGEsRi5ELlFlLGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpO1UoYSxGLkQuVWIsYS5ldmVudE5hbWUpO2EuZXZlbnROYW1lPT09Ri5ELndhJiZVKGEsRi5ELlViLEYuRC5zYyk7aWYoUShhLEguSi5zYSkpVShhLEYuRC5VYixGLkQud3ApLFUoYSxGLkQuc2EsIjEiKTtlbHNlIGlmKFEoYSxILkoudWcpKVUoYSxGLkQuVWIsRi5ELkhwKTtlbHNlIGlmKFEoYSxILkouV2UpKVUoYSxGLkQuVWIsRi5ELkVwKTtlbHNle3ZhciBwPWVzKCk7VShhLEYuRC5EZCxwLmdjbGlkKTtVKGEsRi5ELktkLHAuZGNsaWQpO1UoYSxGLkQuQWwscC5nY2xzcmMpO2lmKCFSKGEsRi5ELkRkKSYmIVIoYSxGLkQuS2QpfHxNKDQyMSkpVShhLEYuRC5FZSxwLndicmFpZCksVShhLEYuRC5CZixwLmdicmFpZCk7dmFyIHE9TSg1ODkpLHI9ZnVuY3Rpb24oZmEpe3JldHVybiBmYS5yZXBsYWNlKC9bXD8jXS4qJC8sIiIpfSwKdD0hIU8oYS5NLEYuRC56YSksdT1xP3Q/ZnVuY3Rpb24oZmEpe3JldHVybiB4TChyKGZhKSl9OmZ1bmN0aW9uKGZhKXtyZXR1cm4geEwoZmEucmVwbGFjZSgvIy4qJC8sIiIpKX06cix2PWJ0KHUpO1UoYSxGLkQuemEsdik7dmFyIHg9ISFPKGEuTSxGLkQuVWEpLHk9Qi5yZWZlcnJlcjtVKGEsRi5ELlVhLHE/eD9yKHkpOnkucmVwbGFjZSgvIy4qJC8sIiIpOkIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIik7d0woYSx2LHUsITApO2lmKEtjKXt2YXIgej1MaihSaihLYyksImhvc3QiKTt6JiZVKGEsRi5ELmJtLHopfWlmKCFRKGEsSC5KLldlKSl7dmFyIEM9YXQoKTtVKGEsRi5ELnpmLEMuRGcpO1UoYSxGLkQuQWYsQy5Tcil9dmFyIEQ9VU0oKTtUTShEKSYmVShhLEYuRC5QZCwiMSIpO1UoYSxGLkQuRGwsUU0oKSk7VXEoITEpLl91cD09PSIxIiYmVShhLEYuRC5RbCwiMSIpfXdvLkg9ITA7VShhLEYuRC5TYik7VShhLEYuRC5sYik7aWYoTSg0MjEpKXt2YXIgST1GcihlKTsKSS5sZW5ndGg+MCYmVShhLEYuRC5TYixJLmpvaW4oIi4iKSk7dmFyIEc9RHIoZisiX2F3Iik7Ry5sZW5ndGg+MCYmVShhLEYuRC5sYixHLmpvaW4oIi4iKSl9ZWxzZSBpZighUihhLEYuRC5EZCkmJiFSKGEsRi5ELktkKSYmV3MoZikpe3ZhciBOPUZyKGUpO04ubGVuZ3RoPjAmJlUoYSxGLkQuU2IsTi5qb2luKCIuIikpfWVsc2UgaWYoIVIoYSxGLkQuRWUpJiZiKXt2YXIgUz1EcihmKyJfYXciKTtTLmxlbmd0aD4wJiZVKGEsRi5ELmxiLFMuam9pbigiLiIpKX1VKGEsRi5ELlVsLHFkKCkpO2EuTS5pc0d0bUV2ZW50JiYoYS5NLkVhW0YuRC5SY109ZkQoRi5ELlJjKSk7U3QoYS5NKT9VKGEsRi5ELmRlLCExKTpVKGEsRi5ELmRlLCEwKTtWKGEsSC5KLkJrLCEwKTt2YXIgVz1WTSgpO1chPT12b2lkIDAmJlUoYSxGLkQua2csV3x8ImVycm9yIik7dmFyIGVhPUx0KCk7ZWEmJlUoYSxGLkQuS2UsZWEpO3ZhciBqYT1LdCgpO2phJiZVKGEsRi5ELk9lLGphKTtRKGEsSC5KLlBjKXx8VihhLEguSi5KYSwKITEpfX07CnZhciBYTT1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPyEwOmI7Yz1jPT09dm9pZCAwP3t9OmM7aWYoYS5ldmVudE5hbWU9PT1GLkQuSmImJiFhLk0uaXNHdG1FdmVudCl7dmFyIGQ9TyhhLk0sRi5ELlNmKTtpZih0eXBlb2YgZD09PSJmdW5jdGlvbiImJiFRKGEsSC5KLnNhKSl7dmFyIGU9U3RyaW5nKE8oYS5NLEYuRC5UZikpLGY9ZTtjW2VdJiYoZj1jW2VdKTt2YXIgZz1SKGEsZil8fE8oYS5NLGUpO2lmKGIpe2lmKHR5cGVvZiBkPT09ImZ1bmN0aW9uIilpZihlPT09Ri5ELmxiJiZnIT09dm9pZCAwKXt2YXIgaD1nLnNwbGl0KCIuIik7aC5sZW5ndGg9PT0wP2Qodm9pZCAwKTpoLmxlbmd0aD09PTE/ZChoWzBdKTpkKGgpfWVsc2UgaWYoZT09PUYuRC5xcSYmTSgyNTgpKXt2YXIgbCxuPXt9O1hvKGZwKSYmKG4uYXVpZD1SKGEsRi5ELkVkKSk7dmFyIHA9VU0oKTtpZihUTShwKSluLmdhZF9zb3VyY2U9cC5EZyxuLmdhZF9jYW1wYWlnbmlkPXAuVGgsbi5zZXNzaW9uX3N0YXJ0X3RpbWVfdXNlYz0KKERhdGUubm93KCkqMUUzKS50b1N0cmluZygpLG4ubGFuZGluZ19wYWdlX3VybD1BLmxvY2F0aW9uLmhyZWYsbi5sYW5kaW5nX3BhZ2VfcmVmZXJyZXI9Qi5yZWZlcnJlcixuLmxhbmRpbmdfcGFnZV91c2VyX2FnZW50PUhjLnVzZXJBZ2VudDtlbHNle3ZhciBxPVEoYSxILkouR2EpO24uZ2FkX3NvdXJjZT1ScyhxLnByZWZpeCkuRWd9bD1idG9hKEpTT04uc3RyaW5naWZ5KG4pKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC8sIiIpO2QobCl9ZWxzZSBkKGcpfWVsc2UgZChnKX1hLmlzQWJvcnRlZD0hMH19O3ZhciBZTT1mdW5jdGlvbihhKXtpZihNKDQyNSkmJlEoYSxILkouRmMpKXtmb3IodmFyIGI9WyJfJmFwdmMiLCJ0aWRzIixGLkQuVGEsRi5ELlFpLEYuRC5VYixGLkQuUWUsRi5ELlZjLEYuRC5YY10sYz1tKGV1KGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtpZihlPT09Ri5ELnphKXt2YXIgZj1SKGEsZSk7ZiYmKGY9Zi5yZXBsYWNlKC9bXD8jXS4qJC8sIiIpKTtVKGEsZSxmKX1lbHNlIGIuaW5jbHVkZXMoZSl8fFUoYSxlKX1WKGEsSC5KLlhnKTtWKGEsSC5KLmhkKX19O2Z1bmN0aW9uIFpNKGEpe2lmKGZuLkspaWYod28uSD0hMCxhLmV2ZW50TmFtZT09PUYuRC53YSl6byhhLk0sYS50YXJnZXQuaWQpO2Vsc2V7UShhLEguSi5QYyl8fCh3by5LW2EudGFyZ2V0LmlkXT0hMCk7dmFyIGI9UShhLEguSi5OYik7WkIoYil9fTt2YXIgJE09ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZj1iPT09dm9pZCAwP3t9OmI7Yz1mLlNqPT09dm9pZCAwPyExOmYuU2o7ZD1mLk1qPT09dm9pZCAwPyExOmYuTWo7ZT1mLmtvPT09dm9pZCAwPyExOmYua287ZHx8KGEuTS5pc0d0bUV2ZW50P1EoYSxILkouZGEpIT09WC5WLnhhJiZhLmV2ZW50TmFtZSYmVShhLEYuRC5VYixhLmV2ZW50TmFtZSk6VShhLEYuRC5VYixhLmV2ZW50TmFtZSkpO0diKGEuTS5FYSxmdW5jdGlvbihnLGgpe016W2ddfHxjJiZCb1tnXXx8ZSYmT3pbZ118fFUoYSxnLGgpfSl9O3ZhciBhTj1mdW5jdGlvbihhKXtmb3IodmFyIGI9bShbRi5ELlBhLEYuRC5RYSxGLkQuZWIsRi5ELk5lLEYuRC5HZSxGLkQuVWQsRi5ELkllLEYuRC5UYyxGLkQuTGQsRi5ELmtoLEYuRC5GZixGLkQuRGYsRi5ELkVmLEYuRC5DZixGLkQud2ksRi5ELlNkLEYuRC5RZCxGLkQuUmQsRi5ELnRiXSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpYS5jb3B5VG9IaXREYXRhKGMudmFsdWUpfTtmdW5jdGlvbiBiTihhLGIpe3JldHVybiBrcigiZ3NpZF9kYyIse3ZhbHVlOntqb2luSWQ6YSxsYXN0Sm9pbmVkVGltZU1zOmJ9LGV4cGlyZXM6YiszRTV9KT09PTA/ITA6ITF9Owp2YXIgY049ZnVuY3Rpb24oYSl7aWYoWG8oZnApKXt2YXIgYjthOnt2YXIgYz1ucigiZ3NpZF9kYyIpO2lmKGMuZXJyb3I9PT0wJiZjLnZhbHVlJiZ0eXBlb2YgYy52YWx1ZT09PSJvYmplY3QiKXt2YXIgZD1jLnZhbHVlO2lmKGQudmFsdWUmJnR5cGVvZiBkLnZhbHVlPT09Im9iamVjdCIpe3ZhciBlPWQudmFsdWU7aWYoZS5qb2luSWQmJmUubGFzdEpvaW5lZFRpbWVNcyYmdHlwZW9mIGUuam9pbklkPT09InN0cmluZyImJnR5cGVvZiBlLmxhc3RKb2luZWRUaW1lTXM9PT0ibnVtYmVyIil7Yj1lO2JyZWFrIGF9fX1iPXZvaWQgMH12YXIgZj1iLGc9Zj09bnVsbD92b2lkIDA6Zi5qb2luSWQsaD1OYigpO2lmKCFmfHwhZ3x8Zi5sYXN0Sm9pbmVkVGltZU1zPGgtM0U1KXt2YXIgbD1jYygpO2c9bCYmYk4obCxOYigpKT9sOnZvaWQgMDtnJiZWKGEsSC5KLmhkLCEwKX1lbHNlIGcmJmYubGFzdEpvaW5lZFRpbWVNczxoLTZFNCYmYk4oZi5qb2luSWQsaCkmJlYoYSxILkouaGQsITApO2cmJk0oNDc0KSYmClYoYSxILkouWGcsZyl9fTt2YXIgZE49ZnVuY3Rpb24oYSl7VihhLEguSi53ZixPKGEuTSxGLkQudWMpIT09ITEpO1YoYSxILkouR2EsTEsoYSkpO1YoYSxILkouWGUsTyhhLk0sRi5ELm1iKSE9bnVsbCYmTyhhLk0sRi5ELm1iKSE9PSExKTtWKGEsSC5KLndkLFN0KGEuTSkpfTt2YXIgZU49e3pxOntVdDoiY2QiLGZwOiJjZSIsVnQ6ImNmIixXdDoiY3BmIixYdDoiY3UifX07dmFyIGZOPWZ1bmN0aW9uKGEpe3ZhciBiPWVOLnpxLmZwLGM9TyhhLk0sRi5ELkNiKTtSKGEsRi5ELmVkKXx8VShhLEYuRC5lZCx7fSk7UihhLEYuRC5lZClbYl09Y307ZnVuY3Rpb24gZ04oYSxiKXtiPWI9PT12b2lkIDA/ITA6Yjt2YXIgYz13YihyYi5HVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTHx8W10pO2MmJihVKGEsRi5ELlZmLGMpLGImJnViKCkpfTt2YXIgaE49ZnVuY3Rpb24oYSl7dmFyIGI9YS5NLmdldE1lcmdlZFZhbHVlcyhGLkQuVGEpO2ImJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSxiKX07dmFyIGlOPWZ1bmN0aW9uKGEpe3ZhciBiPU9wKCExKTtVKGEsRi5ELk1lLGIpfTt2YXIgak49ZnVuY3Rpb24oYSl7UShhLEguSi53ZCk/VShhLEYuRC5kZSwiMCIpOlUoYSxGLkQuZGUsIjEiKX07dmFyIGtOPWZ1bmN0aW9uKGEsYil7aWYoYj09PXZvaWQgMHx8Yil7dmFyIGM9Vk0oKTtjIT09dm9pZCAwJiZVKGEsRi5ELmtnLGN8fCJlcnJvciIpfXZhciBkPUx0KCk7ZCYmVShhLEYuRC5LZSxkKTt2YXIgZT1LdCgpO2UmJlUoYSxGLkQuT2UsZSl9O3ZhciBsTj1mdW5jdGlvbihhKXt2YXIgYj1ubShqbS5iYS5raiksYz1FKDUpO2ImJmJbY10mJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSx7cmV0cnk6IjEifSl9O3ZhciBtTj1mdW5jdGlvbihhKXtVcSghMSkuX3VwPT09IjEiJiZVKGEsRi5ELktpLCIxIil9Owp2YXIgbk49ZnVuY3Rpb24oYSxiLGMpe2lmKGEhPT12b2lkIDApcmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/YS5tYXAoZnVuY3Rpb24oKXtyZXR1cm57bW9kZToibSIsbG9jYXRpb246YixzZWxlY3RvcjpjfX0pOnttb2RlOiJtIixsb2NhdGlvbjpiLHNlbGVjdG9yOmN9fSxvTj1mdW5jdGlvbihhLGIsYyxkKXtpZighYylyZXR1cm4hMTtmb3IodmFyIGU9U3RyaW5nKGMudmFsdWUpLGYsZz12b2lkIDAsaD1lLnJlcGxhY2UoL1xbIj8nPy9nLCIuIikucmVwbGFjZSgvIj8nP1xdL2csIiIpLnNwbGl0KCIsIikubWFwKGZ1bmN0aW9uKHUpe3JldHVybiB1LnRyaW0oKX0pLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdSYmIVNiKHUsIiMiKSYmIVNiKHUsIi4iKX0pLGw9MDtsPGgubGVuZ3RoO2wrKyl7dmFyIG49aFtsXTtpZihTYihuLCJkYXRhTGF5ZXIuIikpZj11QShuLnN1YnN0cmluZygxMCkpLGc9bk4oZiwiZCIsbik7ZWxzZXt2YXIgcD1uLnNwbGl0KCIuIik7Zj1BW3Auc2hpZnQoKV07CmZvcih2YXIgcT0wO3E8cC5sZW5ndGg7cSsrKWY9ZiYmZltwW3FdXTtnPW5OKGYsImoiLG4pfWlmKGYhPT12b2lkIDApYnJlYWt9aWYoZj09PXZvaWQgMCl0cnl7dmFyIHI9Qi5xdWVyeVNlbGVjdG9yQWxsKGUpO2lmKHImJnIubGVuZ3RoPjApe2Y9W107Zm9yKHZhciB0PTA7dDxyLmxlbmd0aCYmdDwoYj09PSJlbWFpbCJ8fGI9PT0icGhvbmVfbnVtYmVyIj81OjEpO3QrKylmLnB1c2goZmQoclt0XSl8fExiKHJbdF0udmFsdWUpKTtmPWYubGVuZ3RoPT09MT9mWzBdOmY7Zz1uTihmLCJjIixlKX19Y2F0Y2godSl7UCgxNDkpfXJldHVybiBmPyhhW2JdPWYsZCYmZyYmKGRbYl09ZyksITApOiExfTsKdmFyIHBOPWZ1bmN0aW9uKGEpe2lmKGRJKGEsImNjZF9hZGRfMXBfZGF0YSIsITEpJiZYbyhmcCkpe3ZhciBiPWEuTS5pYltGLkQubG1dO2lmKENkKGIpJiZiLmVuYWJsZV9jb2RlKXt2YXIgYz1PKGEuTSxGLkQuQWMpO2lmKGM9PT1udWxsKVYoYSxILkouR24sbnVsbCk7ZWxzZSBpZihiLmVuYWJsZV9jb2RlJiZDZChjKSYmKFp2KGMpLFYoYSxILkouR24sYykpLENkKGIuc2VsZWN0b3JzKSl7dmFyIGQ9SC5KLmlyLGU7dmFyIGY9Yi5zZWxlY3RvcnMsZz1NKDUyMyk7Zz1nPT09dm9pZCAwPyExOmc7aWYoZil7dmFyIGg9e30sbD0hMSxuPXt9O2w9b04oaCwiZW1haWwiLGYuZW1haWwsbil8fGw7bD1vTihoLCJwaG9uZV9udW1iZXIiLGYucGhvbmUsbil8fGw7aC5hZGRyZXNzPVtdO2Zvcih2YXIgcD1mLm5hbWVfYW5kX2FkZHJlc3N8fFtdLHE9MDtxPHAubGVuZ3RoO3ErKyl7dmFyIHI9e30sdD17fTtsPW9OKHIsImZpcnN0X25hbWUiLHBbcV0uZmlyc3RfbmFtZSx0KXx8bDtsPW9OKHIsCiJsYXN0X25hbWUiLHBbcV0ubGFzdF9uYW1lLHQpfHxsO2w9b04ociwic3RyZWV0IixwW3FdLnN0cmVldCx0KXx8bDtsPW9OKHIsImNpdHkiLHBbcV0uY2l0eSx0KXx8bDtsPW9OKHIsInJlZ2lvbiIscFtxXS5yZWdpb24sdCl8fGw7bD1vTihyLCJjb3VudHJ5IixwW3FdLmNvdW50cnksdCl8fGw7bD1vTihyLCJwb3N0YWxfY29kZSIscFtxXS5wb3N0YWxfY29kZSx0KXx8bDtoLmFkZHJlc3MucHVzaChyKTtnJiYoci5fdGFnX21ldGFkYXRhPXQpfWcmJihoLl90YWdfbWV0YWRhdGE9bik7ZT1sP2g6dm9pZCAwfWVsc2UgZT12b2lkIDA7VihhLGQsZSl9fX19Owp2YXIgcU49ZnVuY3Rpb24oYSl7dmFyIGI9ZnVuY3Rpb24oZSl7VUwoZSwhMCl9LGM9ZnVuY3Rpb24oZSl7cE4oZSl9LGQ9ZnVuY3Rpb24oZSl7JE0oZSx7U2o6ITAsTWo6ITB9KX07c3dpdGNoKGEpe2Nhc2UgWC5WLlFrOnJldHVybltQRixBTCxNRixITSxKTSxJTV07Y2FzZSBYLlYuS2E6cmV0dXJuW2ZOLFhMLFpNLGlOLGNOLFdNLGQsU0ssYU4sR0wsYix3TSxsTixoTixWTCxvTCxOTSxmdW5jdGlvbihlKXtnTihlLCExKX0sV0wsWU0scExdO2Nhc2UgWC5WLk1rOnJldHVybltaTSxRTF07Y2FzZSBYLlYueGE6cmV0dXJuW1VLLFhMLFpNLGROLHZMLHRMLCRNLFNLLGlOLFZMLHpMLEdMLGIscUwsRkwsQkwsRUwsdUwsak4sb0wsa04sbU4sTEYsYyxmTixTTCxsTixoTixQTSxYTSxHTSxOTSxUSyxETCxRSyxSTCxnTixXTCxwTF07Y2FzZSBYLlYudWI6cmV0dXJuW1hMLFpNLGROLHZMLCRNLFNLLGlOLHpMLEdMLGIsVkwscUwsRUwsdUwsak4sb0wsa04sTEYsU0wsZk4sbE4saE4sUE0sR00sCk5NLFRLLGdOLFdMLHBMXTtjYXNlIFguVi5PYjpyZXR1cm5bWEwsWk0sZE4sdkwsU0ssR0wsYixqTixvTCxpTixMRixjLFNMLGZOLGxOLGhOLFZMLFBNLEdNLE5NLFRLLGdOLFdMLHBMXTtjYXNlIFguVi5GYjpyZXR1cm5bWEwsWk0sZE4sdkwsU0ssR0wsYixqTixvTCxpTixWTCxMRixjLFNMLGZOLGxOLGhOLFBNLEdNLE5NLFRLLENMLGdOLFdMLHBMXTtkZWZhdWx0OnJldHVybltdfX0sck49ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXFOKFEoYSxILkouZGEpKSxjPTA7YzxiLmxlbmd0aCYmKGJbY10oYSksIWEuaXNBYm9ydGVkKTtjKyspO30sc049ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9bmV3IGFJKGIudGFyZ2V0LGIuZXZlbnROYW1lLGIuTSksZD1tKGV1KGIpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtVKGMsZixSKGIsZikpfWZvcih2YXIgZz1tKE9iamVjdC5rZXlzKGIubWV0YWRhdGEpKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9CmgudmFsdWU7VihjLGwsUShiLGwpKX1WKGMsSC5KLmRhLGEpO3JldHVybiBjfSx0Tj1mdW5jdGlvbihhLGIsYyxkKXtmdW5jdGlvbiBlKHUsdil7Zm9yKHZhciB4PW0obCkseT14Lm5leHQoKTsheS5kb25lO3k9eC5uZXh0KCkpe3ZhciB6PXkudmFsdWU7ei5pc0Fib3J0ZWQ9ITE7Vih6LEguSi5KYSwhMCk7Vih6LEguSi5zYSwhMCk7Vih6LEguSi5FYixOYigpKTtWKHosSC5KLnVmLHUpO1YoeixILkoudmYsdil9fWZ1bmN0aW9uIGYodSl7Zm9yKHZhciB2PXt9LHg9MDt4PGwubGVuZ3RoO3Y9e1ZhOnZvaWQgMH0seCsrKWlmKHYuVmE9bFt4XSwhdXx8dShRKHYuVmEsSC5KLmRhKSkpaWYoIVEodi5WYSxILkouc2EpfHxRKHYuVmEsSC5KLmRhKSE9PVguVi5LYXx8USh2LlZhLEguSi52ZCkpaWYoIVEodi5WYSxILkouc2EpfHxRKHYuVmEsSC5KLmRhKT09PVguVi5LYXx8WG8ocikpck4obFt4XSksUSh2LlZhLEguSi5KYSl8fHYuVmEuaXNBYm9ydGVkfHxRKHYuVmEsSC5KLmRhKSE9PVguVi5LYXx8CiFRKHYuVmEsSC5KLnZkKXx8KE1LKHYuVmEsZnVuY3Rpb24oKXtmKGZ1bmN0aW9uKHkpe3JldHVybiB5PT09WC5WLkthfSl9KSxSKHYuVmEsRi5ELlpmKT09PXZvaWQgMCYmdD09PXZvaWQgMCYmKHQ9cG0oam0uYmEuc2osZnVuY3Rpb24oeSl7cmV0dXJuIGZ1bmN0aW9uKCl7cW0oam0uYmEuc2osdCk7dD12b2lkIDA7WG8oRi5ELm1hKSYmKFYoeS5WYSxILkoudWcsITApLFYoeS5WYSxILkouc2EsITEpLFUoeS5WYSxGLkQuc2EpLGYoZnVuY3Rpb24oeil7cmV0dXJuIHo9PT1YLlYuS2F9KSxWKHkuVmEsSC5KLnVnLCExKSl9fSh2KSkpKX12YXIgZz1kLmlzR3RtRXZlbnQmJmE9PT0iIj97aWQ6IiIscHJlZml4OiIiLGRlc3RpbmF0aW9uSWQ6IiIsaWRzOltdLEpjOmZ1bmN0aW9uKCl7cmV0dXJuITF9fTpiQyhhLGQuaXNHdG1FdmVudCk7aWYoZyl7dmFyIGg9bmV3IGFJKGcsYixkKTtWKGgsSC5KLmRhLFguVi5Rayk7ck4oaCk7aWYoIWguaXNBYm9ydGVkKXt2YXIgbD1bXTtpZihkLmV2ZW50TWV0YWRhdGFbSC5KLkRjXSl7dmFyIG49CmQuZXZlbnRNZXRhZGF0YVtILkouRGNdO0FycmF5LmlzQXJyYXkobil8fChuPVtuXSk7Zm9yKHZhciBwPTA7cDxuLmxlbmd0aDtwKyspe3ZhciBxPXNOKG5bcF0saCk7TSg0ODgpfHxWKHEsSC5KLkphLCExKTtsLnB1c2gocSl9fWVsc2UgYj09PUYuRC53YSYmbC5wdXNoKHNOKFguVi5NayxoKSksYiE9PUYuRC5KYiYmbC5wdXNoKHNOKFguVi5LYSxoKSksbC5wdXNoKHNOKFguVi54YSxoKSksYiE9PUYuRC5KYiYmKGwucHVzaChzTihYLlYuT2IsaCkpLGwucHVzaChzTihYLlYuRmIsaCkpLGwucHVzaChzTihYLlYudWIsaCkpKTt2YXIgcj1bRi5ELmthLEYuRC5tYV0sdD12b2lkIDA7YnAoZnVuY3Rpb24oKXtmKCk7dmFyIHU9IVhvKFtGLkQuWGFdKTtpZighWG8ocil8fHUpe3ZhciB2PXI7dSYmKHY9W10uY29uY2F0KHcodiksW0YuRC5YYV0pKTthcChmdW5jdGlvbih4KXt2YXIgeSx6LEM7eT14LmNvbnNlbnRFdmVudElkO3o9eC5jb25zZW50UHJpb3JpdHlJZDtDPXguY29uc2VudFR5cGVzOwplKHkseik7QyYmQy5sZW5ndGg9PT0xJiZDWzBdPT09Ri5ELlhhP2YoZnVuY3Rpb24oRCl7cmV0dXJuIEQ9PT1YLlYudWJ9KTpmKCl9LHYpfX0scil9fX07ZnVuY3Rpb24gRk8oYSxiLGMsZCl7fUZPLlA9ImludGVybmFsLmV4ZWN1dGVFdmVudFByb2Nlc3NvciI7ZnVuY3Rpb24gR08oYSl7dmFyIGI7cmV0dXJuIFVkKGIsdGhpcy5ULDEpfUdPLlA9ImludGVybmFsLmV4ZWN1dGVKYXZhc2NyaXB0U3RyaW5nIjtmdW5jdGlvbiBITyhhKXt2YXIgYjtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGM9QTt0cnl7Yj1LaihjLmVzY2FwZShjLmF0b2IoYSkpKX1jYXRjaChkKXtyZXR1cm59cmV0dXJuIGJ9O2Z1bmN0aW9uIElPKGEpe3ZhciBiPSIiO2lmKCFtaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7Yj1BdihhPT09bnVsbD92b2lkIDA6YSk7cmV0dXJuIGJ9SU8uUD0iaW50ZXJuYWwuZ2VuZXJhdGVDbGllbnRJZCI7ZnVuY3Rpb24gSk8oYSl7dmFyIGI9e307aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBjPVRkKGEsdGhpcy5ULDEpLnJiKCk7Yj1MSyhjKTtyZXR1cm4gVWQoYil9Sk8uUD0iaW50ZXJuYWwuZ2V0QWRzQ29va2llV3JpdGluZ09wdGlvbnMiO2Z1bmN0aW9uIEtPKGEsYil7dmFyIGM9ITE7aWYoIWVoKGEpJiYhZ2goYSl8fCFvaChiKXx8Z2goYSkmJmdoKGIpfHwhZ2goYSkmJiFnaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0IiwiYm9vbGVhbnx1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBkO2lmKGIpe3ZhciBlPVhGKHRoaXMpO2Q9SkMoSUMobmV3IHlDKE51bWJlcihlLmV2ZW50SWQpLE51bWJlcihlLnByaW9yaXR5SWQpKSwhMCkpfWVsc2UgZD1UZChhLHRoaXMuVCwxKS5yYigpLk07Yz1TdChkKTtyZXR1cm4gY31LTy5QPSJpbnRlcm5hbC5nZXRBbGxvd0FkUGVyc29uYWxpemF0aW9uIjtmdW5jdGlvbiBMTygpe3ZhciBhOyhhPXdiKHJiLkdUQUdfRVZFTlRfRkVBVFVSRV9DSEFOTkVMfHxbXSkpJiZ1YigpO3JldHVybiBhfUxPLlA9ImludGVybmFsLmdldEFuZFJlc2V0RXZlbnRVc2FnZSI7ZnVuY3Rpb24gTU8oYSxiKXtiPWI9PT12b2lkIDA/ITA6Yjt2YXIgYztpZighZWgoYSl8fCFvaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0IiwiYm9vbGVhbnx1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBkPVEoVGQoYSx0aGlzLlQsMSkucmIoKSxILkouR2EpfHx7fTtIdihkLGIpO2M9RHZbR3YoZC5wcmVmaXgpXTtyZXR1cm4gY31NTy5QPSJpbnRlcm5hbC5nZXRBdWlkIjtmdW5jdGlvbiBOTygpe3ZhciBhPVtdO3JldHVybiBVZChhKX1OTy5QPSJpbnRlcm5hbC5nZXRDb250YWluZXJJZHMiO2Z1bmN0aW9uIE9PKCl7dmFyIGE9bmV3IGtiO0wodGhpcywicmVhZF9jb250YWluZXJfZGF0YSIpLGEuc2V0KCJjb250YWluZXJJZCIsaWcpLGEuc2V0KCJ2ZXJzaW9uIixrZyksYS5zZXQoImVudmlyb25tZW50TmFtZSIsamcpLGEuc2V0KCJkZWJ1Z01vZGUiLGxnKSxhLnNldCgicHJldmlld01vZGUiLG1nLlBvKSxhLnNldCgiZW52aXJvbm1lbnRNb2RlIixtZy5LciksYS5zZXQoImZpcnN0UGFydHlTZXJ2aW5nIixhaygpKSxhLnNldCgiY29udGFpbmVyVXJsIixLYyksYS5zZXQoImlzR29vZ2xlT25seU1vZGUiLElmKDYyKSksYS5aYSgpO3JldHVybiBhfU9PLnB1YmxpY05hbWU9ImdldENvbnRhaW5lclZlcnNpb24iO2Z1bmN0aW9uIFBPKGEsYil7Yj1iPT09dm9pZCAwPyEwOmI7dmFyIGM7cmV0dXJuIGN9UE8ucHVibGljTmFtZT0iZ2V0Q29va2llVmFsdWVzIjtmdW5jdGlvbiBRTygpe3ZhciBhPSIiO3JldHVybiBhfVFPLlA9ImludGVybmFsLmdldENvcmVQbGF0Zm9ybVNlcnZpY2VzUGFyYW0iO2Z1bmN0aW9uIFJPKCl7cmV0dXJuIHltKCl9Uk8uUD0iaW50ZXJuYWwuZ2V0Q291bnRyeUNvZGUiO2Z1bmN0aW9uIFNPKCl7dmFyIGE9W107YT10aygpO3JldHVybiBVZChhKX1TTy5QPSJpbnRlcm5hbC5nZXREZXN0aW5hdGlvbklkcyI7ZnVuY3Rpb24gVE8oYSl7dmFyIGI9bmV3IGtiO2lmKCFlaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0Il0sYXJndW1lbnRzKTt2YXIgYz1UZChhLHRoaXMuVCwxKS5yYigpLGQ9ZnVuY3Rpb24oZixnLGgpe3ZhciBsPWMuTS5nZXRNZXJnZWRWYWx1ZXMoRi5ELk9hLGYsaCksbj1ZYihDZChsKT9sOnt9LCIuIik7biYmYi5zZXQoZyxuKX0sZT1PbyhmRChGLkQuT2EpKTtkKDEsRi5ELlhjLGUpO2QoMixGLkQuVmMpO3JldHVybiBifVRPLlA9ImludGVybmFsLmdldERldmVsb3BlcklkcyI7ZnVuY3Rpb24gVU8oYSl7dmFyIGI7aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBjPVEoVGQoYSx0aGlzLlQsMSkucmIoKSxILkouR2EpfHx7fTtiPVV2KGMpLlNoO3JldHVybiBifVVPLlA9ImludGVybmFsLmdldEVjc2lkQ29va2llVmFsdWUiO2Z1bmN0aW9uIFZPKGEsYil7dmFyIGM9bnVsbDtyZXR1cm4gY31WTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50QXR0cmlidXRlIjtmdW5jdGlvbiBXTyhhKXt2YXIgYj1udWxsO3JldHVybiBifVdPLlA9ImludGVybmFsLmdldEVsZW1lbnRCeUlkIjtmdW5jdGlvbiBYTyhhKXt2YXIgYj0iIjtyZXR1cm4gYn1YTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50SW5uZXJUZXh0IjtmdW5jdGlvbiBZTyhhKXt2YXIgYj1udWxsO3JldHVybiBifVlPLlA9ImludGVybmFsLmdldEVsZW1lbnRQYXJlbnQiO2Z1bmN0aW9uIFpPKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9Wk8uUD0iaW50ZXJuYWwuZ2V0RWxlbWVudFByZXZpb3VzU2libGluZyI7ZnVuY3Rpb24gJE8oYSxiKXt2YXIgYz1udWxsO3JldHVybiBVZChjKX0kTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50UHJvcGVydHkiO2Z1bmN0aW9uIGFQKGEpe3ZhciBiO3JldHVybiBifWFQLlA9ImludGVybmFsLmdldEVsZW1lbnRWYWx1ZSI7ZnVuY3Rpb24gYlAoYSl7dmFyIGI9MDtyZXR1cm4gYn1iUC5QPSJpbnRlcm5hbC5nZXRFbGVtZW50VmlzaWJpbGl0eVJhdGlvIjtmdW5jdGlvbiBjUChhKXt2YXIgYj1udWxsO3JldHVybiBifWNQLlA9ImludGVybmFsLmdldEVsZW1lbnRzQnlDc3NTZWxlY3RvciI7CmZ1bmN0aW9uIGRQKGEpe3ZhciBiO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtMKHRoaXMsInJlYWRfZXZlbnRfZGF0YSIsYSk7dmFyIGM7YTp7dmFyIGQ9YSxlPVhGKHRoaXMpLm9yaWdpbmFsRXZlbnREYXRhO2lmKGUpe2Zvcih2YXIgZj1lLGc9e30saD17fSxsPXt9LG49W10scD1kLnNwbGl0KCJcXFxcIikscT0wO3E8cC5sZW5ndGg7cSsrKXtmb3IodmFyIHI9cFtxXS5zcGxpdCgiXFwuIiksdD0wO3Q8ci5sZW5ndGg7dCsrKXtmb3IodmFyIHU9clt0XS5zcGxpdCgiLiIpLHY9MDt2PHUubGVuZ3RoO3YrKyluLnB1c2godVt2XSksdiE9PXUubGVuZ3RoLTEmJm4ucHVzaChsKTt0IT09ci5sZW5ndGgtMSYmbi5wdXNoKGgpfXEhPT1wLmxlbmd0aC0xJiZuLnB1c2goZyl9Zm9yKHZhciB4PVtdLHk9IiIsej1tKG4pLEM9ei5uZXh0KCk7IUMuZG9uZTtDPQp6Lm5leHQoKSl7dmFyIEQ9Qy52YWx1ZTtEPT09bD8oeC5wdXNoKHkpLHk9IiIpOnk9RD09PWc/eSsiXFwiOkQ9PT1oP3krIi4iOnkrRH15JiZ4LnB1c2goeSk7Zm9yKHZhciBJPW0oeCksRz1JLm5leHQoKTshRy5kb25lO0c9SS5uZXh0KCkpe2lmKGY9PW51bGwpe2M9dm9pZCAwO2JyZWFrIGF9Zj1mW0cudmFsdWVdfWM9Zn1lbHNlIGM9dm9pZCAwfWI9VWQoYyx0aGlzLlQsMSk7cmV0dXJuIGJ9ZFAuUD0iaW50ZXJuYWwuZ2V0RXZlbnREYXRhIjtmdW5jdGlvbiBlUChhKXt2YXIgYj1udWxsO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtMKHRoaXMsInJlYWRfZG9tX2VsZW1lbnRzIiwiY3NzIixhKTt0cnl7dmFyIGM9Qi5xdWVyeVNlbGVjdG9yKGEpO2MmJihiPW5ldyBQZChjKSl9Y2F0Y2goZCl7cmV0dXJuIG51bGx9cmV0dXJuIGJ9ZVAuUD0iaW50ZXJuYWwuZ2V0Rmlyc3RFbGVtZW50QnlDc3NTZWxlY3RvciI7ZnVuY3Rpb24gZlAoKXt2YXIgYTtMKHRoaXMsImFjY2Vzc19nbG9iYWxzIiwiZXhlY3V0ZSIsIl9fZ3NhRXhwLmlkIik7dmFyIGI9QTtpZighYi5fX2dzYUV4cHx8IWIuX19nc2FFeHAuaWQpcmV0dXJuIGE7dmFyIGM9Yi5fX2dzYUV4cC5pZDtpZigheWIoYykpcmV0dXJuIGE7dHJ5e3ZhciBkPU51bWJlcihjKCkpO2lmKGlzTmFOKGQpKXJldHVybiBhO2E9ZH1jYXRjaChlKXtyZXR1cm4gYX1yZXR1cm4gYX1mUC5QPSJpbnRlcm5hbC5nZXRHc2FFeHBlcmltZW50SWQiO2Z1bmN0aW9uIGdQKCl7cmV0dXJuIG5ldyBQZChQayl9Z1AuUD0iaW50ZXJuYWwuZ2V0SHRtbElkIjtmdW5jdGlvbiBoUCgpe3ZhciBhO2E9T3AoITEpO3JldHVybiBhfWhQLlA9ImludGVybmFsLmdldElmcmFtaW5nU3RhdGUiO2Z1bmN0aW9uIGlQKGEsYil7dmFyIGM9e307aWYoIW5oKGEpfHwhb2goYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbImJvb2xlYW4iLCJib29sZWFufHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7TCh0aGlzLCJnZXRfdXJsIik7Yz1VcShhLGIpO3JldHVybiBVZChjKX1pUC5QPSJpbnRlcm5hbC5nZXRMaW5rZXJWYWx1ZUZyb21Mb2NhdGlvbiI7ZnVuY3Rpb24galAoKXt2YXIgYT1uZXcga2I7aWYoYXJndW1lbnRzLmxlbmd0aCE9PTApdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbXSxhcmd1bWVudHMpO3ZhciBiPVZNKCk7YiE9PXZvaWQgMCYmYS5zZXQoRi5ELmtnLGJ8fCJlcnJvciIpO3ZhciBjPUx0KCk7YyYmYS5zZXQoRi5ELktlLGMpO3ZhciBkPUt0KCk7ZCYmYS5zZXQoRi5ELk9lLGQpO3ZhciBlPWtGLmdwcFN0cmluZztlJiZhLnNldChGLkQudWgsZSk7dmFyIGY9a0YuSDtmJiZhLnNldChGLkQudGgsZik7cmV0dXJuIGF9alAuUD0iaW50ZXJuYWwuZ2V0UHJpdmFjeVN0cmluZ3MiO2Z1bmN0aW9uIGtQKGEsYil7dmFyIGM7aWYoIWxoKGEpfHwhbGgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGQ9JEgoYSl8fHt9O2M9VWQoZFtiXSx0aGlzLlQpO3JldHVybiBjfWtQLlA9ImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciI7ZnVuY3Rpb24gbFAoYSxiKXt2YXIgYztpZighbGgoYSl8fCFwaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiYm9vbGVhbnx1bmRlZmluZWQiXSxhcmd1bWVudHMpO0wodGhpcywiZ2V0X3VybCIsInF1ZXJ5IixhKTt2YXIgZD1MaihSaihBLmxvY2F0aW9uLmhyZWYpLCJxdWVyeSIpLGU9SWooZCxhLGIpO2M9VWQoZSx0aGlzLlQpO3JldHVybiBjfWxQLnB1YmxpY05hbWU9ImdldFF1ZXJ5UGFyYW1ldGVycyI7ZnVuY3Rpb24gbVAoYSxiKXt2YXIgYztyZXR1cm4gY31tUC5wdWJsaWNOYW1lPSJnZXRSZWZlcnJlclF1ZXJ5UGFyYW1ldGVycyI7ZnVuY3Rpb24gblAoYSl7dmFyIGI9IiI7aWYoIW1oKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtMKHRoaXMsImdldF9yZWZlcnJlciIsYSk7Yj1OaihSaihCLnJlZmVycmVyKSxhKTtyZXR1cm4gYn1uUC5wdWJsaWNOYW1lPSJnZXRSZWZlcnJlclVybCI7ZnVuY3Rpb24gb1AoKXtyZXR1cm4gem0oKX1vUC5QPSJpbnRlcm5hbC5nZXRSZWdpb25Db2RlIjtmdW5jdGlvbiBwUChhLGIpe3ZhciBjO2lmKCFsaChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmciXSxhcmd1bWVudHMpO3ZhciBkPWVEKGEpO2M9VWQoZFtiXSx0aGlzLlQpO3JldHVybiBjfXBQLlA9ImludGVybmFsLmdldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciI7ZnVuY3Rpb24gcVAoYSxiKXt2YXIgYz1udWxsOwpyZXR1cm4gY31xUC5QPSJpbnRlcm5hbC5nZXRTY29wZWRFbGVtZW50c0J5Q3NzU2VsZWN0b3IiO2Z1bmN0aW9uIHJQKCl7dmFyIGE9bmV3IGtiO2Euc2V0KCJ3aWR0aCIsMCk7YS5zZXQoImhlaWdodCIsMCk7TCh0aGlzLCJyZWFkX3NjcmVlbl9kaW1lbnNpb25zIik7dmFyIGI9cUkoKTthLnNldCgid2lkdGgiLGIud2lkdGgpO2Euc2V0KCJoZWlnaHQiLGIuaGVpZ2h0KTtyZXR1cm4gYX1yUC5QPSJpbnRlcm5hbC5nZXRTY3JlZW5EaW1lbnNpb25zIjtmdW5jdGlvbiBzUCgpe3ZhciBhPSIiO0wodGhpcywiZ2V0X3VybCIpO3ZhciBiPUZwKCk7YT1EcChiKS51cmw7cmV0dXJuIGF9c1AuUD0iaW50ZXJuYWwuZ2V0VG9wU2FtZURvbWFpblVybCI7ZnVuY3Rpb24gdFAoKXt2YXIgYT0iIjtMKHRoaXMsImdldF91cmwiKSxhPUEudG9wLmxvY2F0aW9uLmhyZWY7cmV0dXJuIGF9dFAuUD0iaW50ZXJuYWwuZ2V0VG9wV2luZG93VXJsIjtmdW5jdGlvbiB1UChhKXt2YXIgYj0iIjtpZighbWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZ3x1bmRlZmluZWQiXSxhcmd1bWVudHMpO0wodGhpcywiZ2V0X3VybCIsYSk7Yj1MaihSaihBLmxvY2F0aW9uLmhyZWYpLGEpO3JldHVybiBifXVQLnB1YmxpY05hbWU9ImdldFVybCI7ZnVuY3Rpb24gdlAoKXtMKHRoaXMsImdldF91c2VyX2FnZW50Iik7cmV0dXJuIEhjLnVzZXJBZ2VudH12UC5wdWJsaWNOYW1lPSJnZXRVc2VyQWdlbnQiO3ZQLlA9ImludGVybmFsLmdldFVzZXJBZ2VudCI7ZnVuY3Rpb24gd1AoKXt2YXIgYTtMKHRoaXMsImdldF91c2VyX2FnZW50Iik7aWYoIURNKCl8fCFGTS5LKCkpcmV0dXJuO2E9Rk0uSCgpO3JldHVybiBhP1VkKEVNKGEpKTphfXdQLlA9ImludGVybmFsLmdldFVzZXJBZ2VudENsaWVudEhpbnRzIjt2YXIgeVA9ZnVuY3Rpb24oYSl7dmFyIGI9YS5ldmVudE5hbWU9PT1GLkQuc2MmJkVsKCkmJmJrKFpLKGEpKSxjPVEoYSxILkouZG4pLGQ9UShhLEguSi5LayksZT1RKGEsSC5KLm1nKSxmPVEoYSxILkouVGUpLGc9UShhLEguSi5GYyksaD1RKGEsSC5KLmhkKSxsPVEoYSxILkoucmcpLG49UShhLEguSi5NaCkscD1RKGEsSC5KLk5oKSxxPSEhWUsoYSl8fCEhUShhLEguSi5wcCk7cmV0dXJuISghbmQoKSYmIWtkKCl8fGV8fHF8fGZ8fGd8fGh8fGx8fHB8fG58fGJ8fGN8fCFkJiZ4UCgpKX0seFA9ZnVuY3Rpb24oKXtyZXR1cm4gYWwoOSxmdW5jdGlvbigpe3JldHVybiExfSl9O2Z1bmN0aW9uIHpQKCl7dmFyIGE9QTtyZXR1cm4gYS5nYUdsb2JhbD1hLmdhR2xvYmFsfHx7fX1mdW5jdGlvbiBBUChhLGIpe3ZhciBjPXpQKCk7aWYoYy52aWQ9PT12b2lkIDB8fGImJiFjLmZyb21fY29va2llKWMudmlkPWEsYy5mcm9tX2Nvb2tpZT1ifTt2YXIgQlA9WyJHQTEiXTsKdmFyIENQPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1RKGEsSC5KLlBrKTtpZihkPT09dm9pZCAwfHxjPD1kKVUoYSxGLkQuS2IsYiksVihhLEguSi5QayxjKX0sRVA9ZnVuY3Rpb24oYSxiKXt2YXIgYz1SKGEsRi5ELktiKTtpZihPKGEuTSxGLkQuWmMpJiZPKGEuTSxGLkQuWWMpfHxiJiZjPT09YilyZXR1cm4gYztpZihjKXtjPSIiK2M7aWYoIURQKGMsYSkpcmV0dXJuIFAoMzEpLGEuaXNBYm9ydGVkPSEwLCIiO0FQKGMsWG8oRi5ELnJhKSk7cmV0dXJuIGN9UCgzMik7YS5pc0Fib3J0ZWQ9ITA7cmV0dXJuIiJ9LEZQPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouR2EpLGM9Yi5wcmVmaXgrIl9nYSIsZD1CdihiLnByZWZpeCsiX2dhIixiLmRvbWFpbixiLnBhdGgsQlAsRi5ELnJhKTtpZighZCl7dmFyIGU9U3RyaW5nKE8oYS5NLEYuRC5JZCwiIikpO2UmJmUhPT1jJiYoZD1CdihlLGIuZG9tYWluLGIucGF0aCxCUCxGLkQucmEpKX1yZXR1cm4gZH0sRFA9ZnVuY3Rpb24oYSxiKXt2YXIgYzsKdmFyIGQ9UShiLEguSi5HYSksZT1kLnByZWZpeCsiX2dhIixmPXVxKGQsdm9pZCAwLHZvaWQgMCxGLkQucmEpO2lmKE8oYi5NLEYuRC5KZCk9PT0hMSYmRlAoYik9PT1hKWM9ITA7ZWxzZXt2YXIgZztnPVtCUFswXSx0cShkLmRvbWFpbixkLnBhdGgpLGFdLmpvaW4oIi4iKTtjPW9xKGUsZyxmKSE9PTF9cmV0dXJuIGN9Owp2YXIgR1A9ZnVuY3Rpb24oYSl7dmFyIGI9MCxjPTA7cmV0dXJue3N0YXJ0OmZ1bmN0aW9uKCl7Yj1OYigpfSxzdG9wOmZ1bmN0aW9uKCl7Yz10aGlzLmdldCgpfSxnZXQ6ZnVuY3Rpb24oKXt2YXIgZD0wO2EuVmooKSYmKGQ9TmIoKS1iKTtyZXR1cm4gZCtjfX19LEhQPWZ1bmN0aW9uKCl7dGhpcy5IPXZvaWQgMDt0aGlzLks9MDt0aGlzLmlzQWN0aXZlPXRoaXMuaXNWaXNpYmxlPXRoaXMuTj0hMTt0aGlzLlo9dGhpcy5SPXZvaWQgMH07az1IUC5wcm90b3R5cGU7ay5LcT1mdW5jdGlvbihhKXt2YXIgYj10aGlzO2lmKCF0aGlzLkgpe3RoaXMuTj1CLmhhc0ZvY3VzKCk7dGhpcy5pc1Zpc2libGU9IUIuaGlkZGVuO3RoaXMuaXNBY3RpdmU9ITA7dmFyIGM9ZnVuY3Rpb24oZSxmLGcpeyRjKGUsZixmdW5jdGlvbihoKXtiLkguc3RvcCgpO2coaCk7Yi5WaigpJiZiLkguc3RhcnQoKX0pfSxkPUE7YyhkLCJmb2N1cyIsZnVuY3Rpb24oKXtiLk49ITB9KTtjKGQsImJsdXIiLGZ1bmN0aW9uKCl7Yi5OPQohMX0pO2MoZCwicGFnZXNob3ciLGZ1bmN0aW9uKGUpe2IuaXNBY3RpdmU9ITA7ZS5wZXJzaXN0ZWQmJlAoNTYpO2IuWiYmYi5aKCl9KTtjKGQsInBhZ2VoaWRlIixmdW5jdGlvbigpe2IuaXNBY3RpdmU9ITE7Yi5SJiZiLlIoKX0pO2MoQiwidmlzaWJpbGl0eWNoYW5nZSIsZnVuY3Rpb24oKXtiLmlzVmlzaWJsZT0hQi5oaWRkZW59KTtiayhaSyhhKSkmJiFPYygpJiZjKGQsImJlZm9yZXVubG9hZCIsZnVuY3Rpb24oKXtaayg5LCEwKX0pO3RoaXMucWsoITApO3RoaXMuSz0wfX07ay5xaz1mdW5jdGlvbihhKXtpZigoYT09PXZvaWQgMD8wOmEpfHx0aGlzLkgpdGhpcy5LKz10aGlzLlloKCksdGhpcy5IPUdQKHRoaXMpLHRoaXMuVmooKSYmdGhpcy5ILnN0YXJ0KCl9O2suS3Q9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5ZaCgpO2I+MCYmVShhLEYuRC5uaCxiKX07ay5scz1mdW5jdGlvbihhKXtVKGEsRi5ELm5oKTt0aGlzLnFrKCk7dGhpcy5LPTB9O2suVmo9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OJiYKdGhpcy5pc1Zpc2libGUmJnRoaXMuaXNBY3RpdmV9O2suWHI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LK3RoaXMuWWgoKX07ay5ZaD1mdW5jdGlvbigpe3JldHVybiB0aGlzLkgmJnRoaXMuSC5nZXQoKXx8MH07ay5odD1mdW5jdGlvbihhKXt0aGlzLlI9YX07ay5Dbz1mdW5jdGlvbihhKXt0aGlzLlo9YX07dmFyIElQPWZ1bmN0aW9uKGEpe3NiKCJHQTRfRVZFTlQiLGEpfTt2YXIgSlA9ZnVuY3Rpb24oYSl7dmFyIGIsYz1RKGEsSC5KLndtKTtpZihBcnJheS5pc0FycmF5KGMpKWZvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKUlQKGNbZF0pOyhiPXdiKHJiLkdBNF9FVkVOVHx8W10pKSYmVShhLCJfZXUiLGIpfTsKdmFyIE1QPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBSZWdFeHAoIl4iKygoKGE9PW51bGw/dm9pZCAwOmEucHJlZml4KXx8IiIpKyJfZ2FfXFx3KyQiKSksYz15cShmdW5jdGlvbihwKXtyZXR1cm4gYi50ZXN0KHApfSksZD17fSxlO2ZvcihlIGluIGMpaWYoYy5oYXNPd25Qcm9wZXJ0eShlKSl7dmFyIGY9S1AoY1tlXSk7aWYoZil7dmFyIGc9YnEoZiwyKTtpZihnKXt2YXIgaD1MUChnKTtpZihoKXt2YXIgbD12b2lkIDAsbj0oKChsPWEpPT1udWxsP3ZvaWQgMDpsLnByZWZpeCl8fCIiKS5sZW5ndGgrNDtkWyJHLSIrZS5zdWJzdHJpbmcobildPWh9fX19cmV0dXJuIGR9LE5QPWZ1bmN0aW9uKGEpe2lmKGEpe3ZhciBiO2E6e3ZhciBjPShTYihhLCJzIikmJmEuaW5kZXhPZigiLiIpPT09LTE/IkdTMiI6IkdTMSIpKyIuMS4iK2E7dHJ5e2I9JHAoYywyKTticmVhayBhfWNhdGNoKGQpe31iPXZvaWQgMH1yZXR1cm4gYn19LEtQPWZ1bmN0aW9uKGEpe2lmKGEmJmEubGVuZ3RoIT09MCl7Zm9yKHZhciBiLApjPS1JbmZpbml0eSxkPW0oYSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7aWYoZi50IT09dm9pZCAwKXt2YXIgZz1OdW1iZXIoZi50KTshaXNOYU4oZykmJmc+YyYmKGM9ZyxiPWYpfX1yZXR1cm4gYn19LHpxPWZ1bmN0aW9uKGEpe2EmJihhPT09IkdTMSI/SVAoSi5VLkttKTphPT09IkdTMiImJklQKEouVS5MbSkpfSxMUD1mdW5jdGlvbihhKXt2YXIgYj1OUChhKTtpZihiKXt2YXIgYz1OdW1iZXIoYi5vKSxkPU51bWJlcihiLnQpLGU9TnVtYmVyKGIuanx8MCk7Y3x8SVAoSi5VLlVtKTtkfHxJUChKLlUuVG0pO2lzTmFOKGUpJiZJUChKLlUuU20pO2lmKGMmJmQmJiFpc05hTihlKSl7dmFyIGY9Yi5oLGc9ZiYmZiE9PSIwIj9TdHJpbmcoZik6dm9pZCAwLGg9Yi5kP1N0cmluZyhiLmQpOnZvaWQgMCxsPXt9O3JldHVybiBsLnM9U3RyaW5nKGIucyksbC5vPWMsbC5nPSEhTnVtYmVyKGIuZyksbC50PWQsbC5kPWgsbC5qPWUsbC5sPWIubD09PSIxIiwKbC5oPWcsbH19fTsKdmFyIFBQPWZ1bmN0aW9uKGEsYixjKXtpZighYilyZXR1cm4gYTtpZighYSlyZXR1cm4gYjt2YXIgZD1MUChhKTtpZighZClyZXR1cm4gYjt2YXIgZSxmPUliKChlPU8oYy5NLEYuRC55aCkpIT1udWxsP2U6MzApLGc9UShjLEguSi5FYik7aWYoIShNYXRoLmZsb29yKGcvMUUzKT5kLnQrZio2MCkpcmV0dXJuIGE7dmFyIGg9TFAoYik7aWYoIWgpcmV0dXJuIGE7aC5vPWQubysxO3ZhciBsO3JldHVybihsPU9QKGgpKSE9bnVsbD9sOmJ9LFJQPWZ1bmN0aW9uKGEsYil7dmFyIGM9UShiLEguSi5HYSksZD1RUChiLGMpLGU9TlAoYSk7aWYoIWUpcmV0dXJuITE7dmFyIGY9dXEoY3x8e30sdm9pZCAwLHZvaWQgMCx2cS5nZXQoMikpO29xKGQsdm9pZCAwLGYpO3JldHVybiBBcShkLGUsMixjKSE9PTF9LFNQPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouR2EpLGM7dmFyIGQ9UVAoYSxiKSxlO2I6e3ZhciBmPXpxLGc9WnBbMl07aWYoZyl7dmFyIGgsbD1ycShiLmRvbWFpbiksbj1zcShiLnBhdGgpLApwPU9iamVjdC5rZXlzKGcuamkpLHE9dnEuZ2V0KDIpLHI7aWYoaD0ocj1ncShkLGwsbixwLHEpKT09bnVsbD92b2lkIDA6ci5Ccil7dmFyIHQ9JHAoaCwyLGYpO2U9dD94cSh0KTp2b2lkIDA7YnJlYWsgYn19ZT12b2lkIDB9aWYoZSl7dmFyIHU9d3EoZCwyLHpxKTtpZih1JiZ1Lmxlbmd0aD4xKXtJUChKLlUuSm0pO3ZhciB2PUtQKHUpO3YmJnYudCE9PWUudCYmKElQKEouVS5NbSksZT12KX1jPWJxKGUsMil9ZWxzZSBjPXZvaWQgMDtyZXR1cm4gY30sVFA9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5FYiksYz17fTtjLnM9UihhLEYuRC54Yyk7Yy5vPVIoYSxGLkQuQWgpO3ZhciBkO2Q9UihhLEYuRC56aCk7dmFyIGU9KGMuZz1kLGMudD1NYXRoLmZsb29yKGIvMUUzKSxjLmQ9UShhLEguSi5vZyksYy5qPVEoYSxILkoucGcpfHwwLGMubD0hIVEoYSxILkoucm0pLGMuaD1SKGEsRi5ELm9oKSxjKTtyZXR1cm4gT1AoZSl9LE9QPWZ1bmN0aW9uKGEpe2lmKGEucyYmYS5vKXt2YXIgYj0Ke30sYz0oYi5zPWEucyxiLm89U3RyaW5nKGEubyksYi5nPUliKGEuZyk/IjEiOiIwIixiLnQ9U3RyaW5nKGEudCksYi5qPVN0cmluZyhhLmopLGIubD1hLmw/IjEiOiIwIixiLmg9YS5ofHwiMCIsYi5kPWEuZCxiKTtyZXR1cm4gYnEoYywyKX19LFFQPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGIucHJlZml4KyJfZ2FfIithLnRhcmdldC5pZHNbZENbNl1dfTsKdmFyIFVQPWZ1bmN0aW9uKCl7cmV0dXJuIGFsKDIsZnVuY3Rpb24oKXtyZXR1cm4hMX0pfSxWUD1mdW5jdGlvbihhKXt2YXIgYj1PKGEuTSxGLkQuRGIpLGM9YS5NLmliW0YuRC5EYl07aWYoYz09PWIpcmV0dXJuIGM7dmFyIGQ9RWQoYixudWxsKTtjJiZjW0YuRC5BYV0mJihkW0YuRC5BYV09KGRbRi5ELkFhXXx8W10pLmNvbmNhdChjW0YuRC5BYV0pKTtyZXR1cm4gZH0sV1A9ZnVuY3Rpb24oYSxiKXt2YXIgYz1VcSghMCk7cmV0dXJuIGMuX3VwIT09IjEiP3t9OntjbGllbnRJZDpjW2FdLHpiOmNbYl19fSxYUD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9VXEoITApLGU9ZFtiXTtlJiYoQ1AoYSxlLDIpLERQKGUsYSkpO3ZhciBmPWRbY107ZiYmUlAoZixhKTtyZXR1cm57Y2xpZW50SWQ6ZSx6YjpmfX0sWVA9ZnVuY3Rpb24oKXt2YXIgYT1OaihBLmxvY2F0aW9uLCJob3N0IiksYj1OaihSaihCLnJlZmVycmVyKSwiaG9zdCIpO3JldHVybiBhJiZiP2E9PT1ifHxhLmluZGV4T2YoIi4iK2IpPj0KMHx8Yi5pbmRleE9mKCIuIithKT49MD8hMDohMTohMX0sWlA9ZnVuY3Rpb24oYSl7aWYoIU8oYS5NLEYuRC56YykpcmV0dXJue307dmFyIGI9UShhLEguSi5HYSksYz1iLnByZWZpeCsiX2dhIixkPVFQKGEsYik7YnIoZnVuY3Rpb24oKXt2YXIgZTtpZihYbygiYW5hbHl0aWNzX3N0b3JhZ2UiKSllPXt9O2Vsc2V7dmFyIGY9e191cDoiMSJ9LGc7Zz1SKGEsRi5ELktiKTtlPShmW2NdPWcsZltkXT1UUChhKSxmKX1yZXR1cm4gZX0sMSk7cmV0dXJuIVhvKCJhbmFseXRpY3Nfc3RvcmFnZSIpJiZZUCgpP1dQKGMsZCk6e319LCRQPWZ1bmN0aW9uKGEpe3ZhciBiPVZQKGEpfHx7fSxjPVEoYSxILkouR2EpLGQ9Yy5wcmVmaXgrIl9nYSIsZT1RUChhLGMpLGY9e307ZHIoYltGLkQuWGZdLCEhYltGLkQuQWFdKSYmKGY9WFAoYSxkLGUpLGYuY2xpZW50SWQmJmYuemImJlprKDIsITApKTtiW0YuRC5BYV0mJmFyKGZ1bmN0aW9uKCl7dmFyIGc9e30saD1GUChhKTtoJiYoZ1tkXT1oKTt2YXIgbD1TUChhKTsKbCYmKGdbZV09bCk7dmFyIG49Y3EoIkZQTEMiLHZvaWQgMCx2b2lkIDAsRi5ELnJhKTtuLmxlbmd0aCYmKGcuX2ZwbGM9blswXSk7cmV0dXJuIGd9LGJbRi5ELkFhXSxiW0YuRC5hZF0sISFiW0YuRC53Y10pO3JldHVybiBmfTt2YXIgYVE9ZnVuY3Rpb24oYSl7aWYoIVEoYSxILkouYmUpJiZlayhhLk0pKXt2YXIgYj1WUChhKXx8e30sYz0oZHIoYltGLkQuWGZdLCEhYltGLkQuQWFdKT9VcSghMCkuX2ZwbGM6dm9pZCAwKXx8KGNxKCJGUExDIix2b2lkIDAsdm9pZCAwLEYuRC5yYSkubGVuZ3RoPjA/dm9pZCAwOiIwIik7VShhLCJfZnBsYyIsYyl9fTtmdW5jdGlvbiBiUShhKXsoYmsoWksoYSkpfHxXaigpKSYmVShhLEYuRC5vbSx6bSgpfHx5bSgpKTshYmsoWksoYSkpJiZXaigpJiZVKGEsRi5ELllpLCI6OiIpfWZ1bmN0aW9uIGNRKGEpe1dqKCkmJihiayhaSyhhKSl8fERtKCl8fFUoYSxGLkQuU2wsITApKX07dmFyIGVRPWZ1bmN0aW9uKGEsYil7a2ooImdybCIsZnVuY3Rpb24oKXtyZXR1cm4gZFEoKX0pKGIpfHwoUCgzNSksYS5pc0Fib3J0ZWQ9ITApfSxkUT1mdW5jdGlvbigpe3ZhciBhPU5iKCksYj1hKzg2NEU1LGM9MjAsZD01RTM7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBmPU5iKCk7Zj49YiYmKGI9Zis4NjRFNSxkPTVFMyk7Yz1NYXRoLm1pbihjKyhmLWEpLzFFMyo1LDIwKTthPWY7dmFyIGc9ITE7ZDwxfHxjPDF8fChnPSEwLGQtLSxjLS0pO2UmJihlLkhyPWQsZS51cj1jKTtyZXR1cm4gZ319Owp2YXIgZlE9ZnVuY3Rpb24oYSl7dmFyIGI9UihhLEYuRC5VYSk7cmV0dXJuIExqKFJqKGIpLCJob3N0IiwhMCl9LGdRPWZ1bmN0aW9uKGEpe2lmKE8oYS5NLEYuRC5XZikhPT12b2lkIDApYS5jb3B5VG9IaXREYXRhKEYuRC5XZik7ZWxzZXt2YXIgYj1PKGEuTSxGLkQuYW0pLGMsZDthOntpZihVUCgpKXt2YXIgZT1WUChhKXx8e307aWYoZSYmZVtGLkQuQWFdKWZvcih2YXIgZj1mUShhKSxnPWVbRi5ELkFhXSxoPTA7aDxnLmxlbmd0aDtoKyspaWYoZ1toXWluc3RhbmNlb2YgUmVnRXhwKXtpZihnW2hdLnRlc3QoZikpe2Q9ITA7YnJlYWsgYX19ZWxzZSBpZihmLmluZGV4T2YoZ1toXSk+PTApe2Q9ITA7YnJlYWsgYX19ZD0hMX1pZighKGM9ZCkpe3ZhciBsO2lmKGw9YilhOntmb3IodmFyIG49Yi5pbmNsdWRlX2NvbmRpdGlvbnN8fFtdLHA9ZlEoYSkscT0wO3E8bi5sZW5ndGg7cSsrKWlmKG5bcV0udGVzdChwKSl7bD0hMDticmVhayBhfWw9ITF9Yz1sfWMmJihVKGEsRi5ELldmLCIxIiksCklQKEouVS5ubikpfX07ZnVuY3Rpb24gaFEoYSxiLGMsZCl7dmFyIGU7aWYoKG5kKCl8fGtkKCkpJiZYaigpJiZYaigpIT09Ii8iKXt2YXIgZj1SaihhKTtlPUlmKDUwKSYmZCYmVGIoZi5wYXRobmFtZSwiL2cvY29sbGVjdCIpPzI6KGR8fCFXaigpfHxEbSgpPzA6VGIoZi5wYXRobmFtZSwiL2dhL2cvYyIpfHxUYihmLnBhdGhuYW1lLCIvYWcvZy9jIikpPzE6MH1lbHNlIGU9MDtzd2l0Y2goZSl7Y2FzZSAyOnZhciBnO2lmKE0oNTQ2KSl7dmFyIGg9VGIoYSwiL2cvY29sbGVjdCIpP2Euc3Vic3RyaW5nKDAsYS5sZW5ndGgtMTApOmEsbD1pUSgpLG49aCtsLHA9alEoIi9nL2NvbGxlY3QiLGIsYyk7Zz17SWM6bixrZjoiIixib2R5OnB9fWVsc2UgZz17SWM6YSxrZjpiLGJvZHk6Y307cmV0dXJuIGc7Y2FzZSAxOnZhciBxO2lmKE0oNTQ3KSl7dmFyIHI9aVEoKSx0PWEuaW5kZXhPZihyKSx1PWEuc3Vic3RyaW5nKDAsdCkrcix2PWpRKGEuc3Vic3RyaW5nKHQrci5sZW5ndGgtMSksYixjKTtxPXtJYzp1LGtmOiIiLApib2R5OnZ9fWVsc2UgcT17SWM6YSxrZjpiLGJvZHk6Y307cmV0dXJuIHE7ZGVmYXVsdDpyZXR1cm57SWM6YSxrZjpiLGJvZHk6Y319fWZ1bmN0aW9uIGlRKCl7dmFyIGE9WGooKTtpZighYSlyZXR1cm4iIjtTYihhLCIvIil8fChhPSIvIithKTtUYihhLCIvIil8fChhKz0iLyIpO3JldHVybiBhfWZ1bmN0aW9uIGpRKGEsYixjKXt2YXIgZD1bYV07YiYmZC5wdXNoKCI/IixiKTtjJiZkLnB1c2goIlxyXG4iLGMpO3JldHVybiBkLmpvaW4oIiIpfTsKdmFyIGtRPWZ1bmN0aW9uKGEsYil7VHQoKSYmKGEuZ2NzPVV0KCksUShiLEguSi5HaCkmJihhLmdjdT0iMSIpKTthLmdjZD1ZdChiLk0pO2EubnBhPVEoYixILkoud2QpPyIwIjoiMSI7em0oKT09PSJVUy1DTyImJihhLl9uZz0iMSIpfSxsUT1mdW5jdGlvbihhKXtpZihRKGEsSC5KLmJlKSlyZXR1cm57dXJsOmZrKCJodHRwczovL3d3dy5tZXJjaGFudC1jZW50ZXItYW5hbHl0aWNzLmdvb2ciLHZvaWQgMCwiIikrIi9tYy9jb2xsZWN0IixlbmRwb2ludDoyMH07dmFyIGI9WWooZWsoYS5NKSwiL2cvY29sbGVjdCIpO2lmKGIpcmV0dXJue3VybDpiLGVuZHBvaW50OjE2fTt2YXIgYztjPVEoYSxILkoucm4pJiYhUShhLEguSi5GYyk/MTc6MTY7cmV0dXJue3VybDpNbVtjXSh2b2lkIDApLGVuZHBvaW50OmN9fSxtUT17fTttUVtGLkQuS2JdPSJjaWQiO21RW0YuRC54aV09ImdjdXQiO21RW0YuRC5GZV09ImFyZSI7bVFbRi5ELmpoXT0icHNjZGwiO21RW0YuRC5OZF09ImV4Y2lkIjttUVtGLkQuR2ldPQoiX2ZpZCI7bVFbRi5ELk9sXT0iX2dlbyI7bVFbRi5ELlhjXT0iZ2RpZCI7bVFbRi5ELkxlXT0iX25nIjttUVtGLkQuTWVdPSJmcm0iO21RW0YuRC5XZl09ImlyIjttUVtGLkQuU2xdPSJmcCI7bVFbRi5ELnRiXT0idWwiO21RW0YuRC5NaV09Im5pIjttUVtGLkQubXFdPSJwYWUiO21RW0YuRC54aF09Il9yZGkiO21RW0YuRC5iZF09InNyIjttUVtGLkQuUWldPSJ0ZXN0b25seSI7bVFbRi5ELlFlXT0idGlkIjttUVtGLkQuUmldPSJ0dCI7bVFbRi5ELkJjXT0iZWNfbW9kZSI7bVFbRi5ELlptXT0iZ3RtX3VwIjttUVtGLkQuY2ddPSJ1YWEiO21RW0YuRC5kZ109InVhYiI7bVFbRi5ELmVnXT0idWFmdmwiO21RW0YuRC5mZ109InVhbWIiO21RW0YuRC5nZ109InVhbSI7Cm1RW0YuRC5oZ109InVhcCI7bVFbRi5ELmlnXT0idWFwdiI7bVFbRi5ELmpnXT0idWF3IjttUVtGLkQub21dPSJ1ciI7bVFbRi5ELllpXT0iX3VpcCI7bVFbRi5ELmxxXT0iX3BycyI7bVFbRi5ELlBkXT0ibHBzIjttUVtGLkQuQmVdPSJnY2xncyI7bVFbRi5ELkRlXT0iZ2Nsc3QiO21RW0YuRC5DZV09ImdjbGxwIjt2YXIgblE9e307blFbRi5ELkdmXT0iY2MiO25RW0YuRC5IZl09ImNpIjtuUVtGLkQuSWZdPSJjbSI7blFbRi5ELkpmXT0iY24iO25RW0YuRC5MZl09ImNzIjtuUVtGLkQuTWZdPSJjayI7blFbRi5ELmViXT0iY3UiO25RW0YuRC5WZl09Il90dSI7blFbRi5ELnphXT0iZGwiO25RW0YuRC5ZZl09ImRwIjtuUVtGLkQuVWFdPSJkciI7blFbRi5ELk1iXT0iZHQiO25RW0YuRC56aF09InNlZyI7blFbRi5ELnhjXT0KInNpZCI7blFbRi5ELkFoXT0ic2N0IjtuUVtGLkQuZmJdPSJ1aWQiO3ZhciBvUT17fTtvUVtGLkQubmhdPSJfZXQiO29RW0YuRC5WY109ImVkaWQiO29RW0YuRC5NZF09ImV2bmlkIjtNKDk0KSYmKG9RLl9ldT0iX2V1Iik7dmFyIHBRPXt9O3BRW0YuRC5HZl09ImNjIjtwUVtGLkQuSGZdPSJjaSI7cFFbRi5ELklmXT0iY20iO3BRW0YuRC5KZl09ImNuIjtwUVtGLkQuTGZdPSJjcyI7cFFbRi5ELk1mXT0iY2siO3ZhciBxUT17fSxyUT0ocVFbRi5ELkFjXT0xLHFRKSxzUT1mdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZChkYSxtYSl7aWYobWEhPT12b2lkIDAmJiFCby5oYXNPd25Qcm9wZXJ0eShkYSkpe21hPT09bnVsbCYmKG1hPSIiKTt2YXIgUGE7dmFyIEZhPW1hO2RhIT09Ri5ELm9oP1BhPSExOlEoYSxILkoubGcpfHxiayhaSyhhKSk/KGUuZWNpZD1GYSxQYT0hMCk6UGE9dm9pZCAwO2lmKCFQYSl7dmFyIHFhPW1hO21hPT09ITAmJihxYT0iMSIpO21hPT09ITEmJihxYT0iMCIpO3FhPQpTdHJpbmcocWEpO3ZhciBpYjtpZihkYSE9PUYuRC5OZCYmZGEhPT1GLkQuTWR8fE0oNTA0KSlpZihtUVtkYV0paWI9bVFbZGFdLHZbaWJdPXFhO2Vsc2UgaWYoblFbZGFdKWliPW5RW2RhXSxnW2liXT1xYTtlbHNlIGlmKG9RW2RhXSlpYj1vUVtkYV0sZltpYl09cWE7ZWxzZSBpZihTYihkYSwiXyYiKSlpYj1kYS5zdWJzdHJpbmcoMiksdltpYl09cWE7ZWxzZSBpZihkYS5jaGFyQXQoMCk9PT0iXyIpdltkYV09cWE7ZWxzZXt2YXIgWGI7cFFbZGFdP1hiPSEwOmRhIT09Ri5ELktmP1hiPSExOih0eXBlb2YgbWEhPT0ib2JqZWN0IiYmdShkYSxtYSksWGI9ITApO1hifHx1KGRhLG1hKX1lbHNlIHUoZGEsbWEpfX19dmFyIGU9e30sZj17fSxnPXt9O2Uudj0iMiI7ZS50aWQ9YS50YXJnZXQuZGVzdGluYXRpb25JZDtlLmd0bT1kdSh7bWM6UShhLEguSi5OYiksZWY6UShhLEguSi5DYyl9KTtlLl9wPSRrKDI1KTtjJiYoYy5oYXNVcGR8fGMuaGFkRXJyb3IpJiYoZS5lbT1jLnBhcmFtKTtRKGEsCkguSi5yZykmJihlLl9nYXo9MSk7a1EoZSxhKTthdSgpJiYoZS5kbWFfY3BzPVp0KCkpO2UuZG1hPSR0KCk7dnQoRXQoKSkmJihlLnRjZmQ9YnUoKSk7dmFyIGg9Q3AoYSk7aCYmKGcudGFnX2V4cD1oKTt2YXIgbD1SKGEsRi5ELlhjKTtsJiYoZS5nZGlkPWwpO2YuZW49U3RyaW5nKGEuZXZlbnROYW1lKTtpZihRKGEsSC5KLm5nKSl7dmFyIG49UShhLEguSi5ZbSk7Zi5fZnY9bj8yOjF9UShhLEguSi5IaCkmJihmLl9uc2k9MSk7aWYoUShhLEguSi5UZSkpe3ZhciBwPVEoYSxILkouYm4pO2YuX3NzPXA/MjoxfVEoYSxILkoubWcpJiYoZi5fYz0xKTtRKGEsSC5KLmFlKSYmKGYuX2VlPTEpO2lmKFEoYSxILkouV20pKXt2YXIgcT1SKGEsRi5ELkhhKXx8TyhhLk0sRi5ELkhhKTtpZihBcnJheS5pc0FycmF5KHEpKWZvcih2YXIgcj0wO3I8cS5sZW5ndGgmJnI8MjAwO3IrKylmWyJwciIrKHIrMSldPXRnKHFbcl0pfXZhciB0PVIoYSxGLkQuVmMpO3QmJihmLmVkaWQ9dCk7aHQoYSxmKTtmb3IodmFyIHU9CmZ1bmN0aW9uKGRhLG1hKXtpZih0eXBlb2YgbWEhPT0ib2JqZWN0Inx8IXJRW2RhXSl7dmFyIFBhPSJlcC4iK2RhLEZhPSJlcG4uIitkYTtkYT1BYihtYSk/RmE6UGE7dmFyIHFhPUFiKG1hKT9QYTpGYTtmLmhhc093blByb3BlcnR5KHFhKSYmZGVsZXRlIGZbcWFdO2ZbZGFdPVN0cmluZyhtYSl9fSx2PXt9LHg9bShldShhKSkseT14Lm5leHQoKTsheS5kb25lO3k9eC5uZXh0KCkpe3ZhciB6PXkudmFsdWU7ZCh6LFIoYSx6KSl9Zm9yKHZhciBDPW0oT2JqZWN0LmtleXModikuc29ydCgpKSxEPUMubmV4dCgpOyFELmRvbmU7RD1DLm5leHQoKSl7dmFyIEk9RC52YWx1ZTtlW0ldPXZbSV19KGZ1bmN0aW9uKGRhKXtiayhaSyhhKSkmJnR5cGVvZiBkYT09PSJvYmplY3QiJiZHYihkYXx8e30sZnVuY3Rpb24obWEsUGEpe3R5cGVvZiBQYSE9PSJvYmplY3QiJiYoZVsic3N0LiIrbWFdPVN0cmluZyhQYSkpfSl9KShSKGEsRi5ELm9qKSk7YnYoZSxSKGEsRi5ELmVkKSk7dmFyIEc9UihhLEYuRC5XZCl8fAp7fTtHYihHLGZ1bmN0aW9uKGRhLG1hKXttYSE9PXZvaWQgMCYmKChtYT09PW51bGwmJihtYT0iIiksZGEhPT1GLkQuZmJ8fGcudWlkKT9iW2RhXSE9PW1hJiYoZlsoQWIobWEpPyJ1cG4uIjoidXAuIikrU3RyaW5nKGRhKV09U3RyaW5nKG1hKSxiW2RhXT1tYSk6Zy51aWQ9U3RyaW5nKG1hKSl9KTtpZihXaigpJiYhRG0oKSYmIWJrKFpLKGEpKSl7dmFyIE49UShhLEguSi5vZyk7Tj9lLl9nc2lkPU46ZS5uamlkPSIxIn12YXIgUz1RKGEsSC5KLlZpKTsoUz09bnVsbD92b2lkIDA6Uy52YWx1ZSk+MCYmKGUuZ2FmPVMuZ2V0KCkpO3ZhciBXPVIoYSxGLkQuV2MpO2lmKFcpZm9yKHZhciBlYT1tKE9iamVjdC5rZXlzKFcpKSxqYT1lYS5uZXh0KCk7IWphLmRvbmU7amE9ZWEubmV4dCgpKXt2YXIgZmE9amEudmFsdWU7ZlsiZXh0LiIrZmFdPVdbZmFdfHwiIn12YXIgc2E9bFEoYSk7dmcuY2FsbCh0aGlzLHtCYTplLHZlOmcsTGo6Zn0sc2EudXJsLHNhLmVuZHBvaW50LFpLKGEpLHZvaWQgMCwKYS50YXJnZXQuZGVzdGluYXRpb25JZCxhLk0uZXZlbnRJZCxhLk0ucHJpb3JpdHlJZCl9O3dhKHNRLHZnKTsKdmFyIHRRPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEucmVwbGFjZSgvXCRceyhbXlx9XSspXH0vZyxmdW5jdGlvbihjLGQpe3JldHVybiBiW2RdfHxjfSl9LHVRPWZ1bmN0aW9uKGEpe3ZhciBiPXt9LGM9IiIsZD1hLnBhdGhuYW1lLmluZGV4T2YoIi9nL2NvbGxlY3QiKTtkPj0wJiYoYz1hLnBhdGhuYW1lLnN1YnN0cmluZygwLGQpKTtiLnRyYW5zcG9ydF91cmw9YS5wcm90b2NvbCsiLy8iK2EuaG9zdG5hbWUrYzt2YXIgZTt0cnl7ZT1lbmNvZGVVUklDb21wb25lbnQoY3x8Ii8iKX1jYXRjaChmKXtlPWVuY29kZVVSSUNvbXBvbmVudCgiLyIpfWIuZW5jb2RlZF9wYXRoPWU7cmV0dXJuIGJ9LHZRPWZ1bmN0aW9uKGEsYil7aWYoIU0oNTQ2KSlyZXR1cm57dXJsOmEsYm9keTpifTt2YXIgYz1tKGEuc3BsaXQoIj8iKSksZD1jLm5leHQoKS52YWx1ZSxlPWMubmV4dCgpLnZhbHVlLGY9aFEoZCxlfHwiIixifHwiIiwhMCksZz1mLkljLGg9Zi5rZjthPWghPT0iIj9nKyI/IitoOmc7Yj1mLmJvZHk7CnJldHVybnt1cmw6YSxib2R5OmJ9fSx4UT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9UmooYiksZT11UShkKSxmPXZRKFhnKGQpLGMpLGc9ZnVuY3Rpb24oaCl7cXgoZi51cmwsZi5ib2R5LG5ldyB3UShlLGgpKSYmYSYma24ucmVnaXN0ZXIoYSwxLGYudXJsKX07IU0oMTMyKXx8TmMoIjsgd3YiKXx8TmMoIkZCQU4iKXx8TmMoIkZCQVYiKXx8UGMoKT9nKCk6bUwoZi51cmwsZi5ib2R5LGUsZyl9LHdRPWZ1bmN0aW9uKGEsYil7Q3guY2FsbCh0aGlzKTt0aGlzLnRlbXBsYXRlcz1hO3RoaXMuTj1ifTt3YSh3USxDeCk7d1EucHJvdG90eXBlLlo9ZnVuY3Rpb24oYSl7dmFyIGI9dFEoYSx0aGlzLnRlbXBsYXRlcyk7cmV0dXJuIHRoaXMuTj9iLnJlcGxhY2UoIl9pc19zdz0wIix0aGlzLk4pOmJ9O3dRLnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5aKGEpO0N4LnByb3RvdHlwZS5LLmNhbGwodGhpcyxjLGIpfTt3US5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIpe3ZhciBjPQp0aGlzLlooYSk7Q3gucHJvdG90eXBlLkguY2FsbCh0aGlzLGMsYil9Owp2YXIgeVE9ZnVuY3Rpb24oYSl7cmV0dXJuIVNiKGEsRm0oKSkmJiFTYihhLEdtKCkpfSxBUT1mdW5jdGlvbihhLGIsYyxkLGUsZil7aWYoIW5kKCkpcmV0dXJuIHpRKGEsYixjLGQpLCEwO1luKGMsYiE9PSIiP2ErIj8iK2I6YSxkLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sZXx8e30se1FnOiEwfSksdm9pZCAwLGYpfHx6UShhLGIsYyxkKTtyZXR1cm4hMH0selE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YiE9PSIiP2ErIj8iK2I6YTtkP1duKGMsZSxkKTpWbihjLGUpfSxDUT1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPWIsZz1wZCgpO2chPT12b2lkIDAmJihmKz0iJnRmZD0iK01hdGgucm91bmQoZykpO2I9Zjt2YXIgaD1hKyI/IitiO2lmKCFiayhkKXx8Y2soZCl8fHhQKCkpe3ZhciBsPWhRKGEsYixjLGJrKGQpKTthPWwuSWM7Yj1sLmtmO2M9bC5ib2R5O0FRKGEsYixlLGMsdm9pZCAwLEJRKGEsYixlLGMpKXx8elEoYSxiLGUsYyl9ZWxzZSB4UShlLGgsYyk7CmJrKGQpJiZNKDU2NCkmJm5kKCkmJlRiKGEsIi9nL2NvbGxlY3QiKSYmQS5mZXRjaChhLnN1YnN0cmluZygwLGEubGVuZ3RoLTEwKSx7bWV0aG9kOiJQT1NUIixib2R5OiJDakFPQVR3Y0NCZ08iLGNyZWRlbnRpYWxzOiJvbWl0In0pfSxCUT1mdW5jdGlvbihhLGIsYyxkKXtpZigheVEoYSkpe3ZhciBlPU1tWzY3XSh2b2lkIDApO2lmKGUpcmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGY7dmFyIGc9Yi5yZXBsYWNlKC9eXD8vLCIiKSxoPU51bWJlcihJaihnLCJnYWYiLCExKSksbD0wO051bWJlci5pc0ludGVnZXIoaCkmJihsPWgpO3ZhciBuPW5ldyBlcihsKTtmcihuLDEpO2lmKG4udmFsdWUhPT0wKXt2YXIgcCxxPW4uZ2V0KCkscj1SZWdFeHAoIihefFs/Jl0pZ2FmPVteJl0qKCZ8JCkiKTtwPXIudGVzdChnKT9nLnJlcGxhY2UociwiJDFnYWY9IitxKyIkMiIpOmcuaW5kZXhPZigiPyIpPj0wP2crIiZnYWY9IitxOmdbMF09PT0iLyJ8fGcuaW5kZXhPZigiOi8vIik+PTA/ZysiP2dhZj0iKwpxOmcubGVuZ3RoPjA/ZysiJmdhZj0iK3E6ImdhZj0iK3E7Zj1iLmluZGV4T2YoIj8iKT09PTA/Ij8iK3A6cH1lbHNlIGY9dm9pZCAwO0FRKGUsZnx8YixuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMse2VuZHBvaW50OjY3fSksZCxjLmVuZHBvaW50PT09MTc/dm9pZCAwOntjcmVkZW50aWFsczoib21pdCJ9KX19fSxEUT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9W10sZT1mdW5jdGlvbihoKXtkLnB1c2goaCsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KCIiK2EuQmFbaF0pKX07ZC5wdXNoKCJ2PTIiKTtlKCJfZ3NpZCIpO2UoImd0bSIpO2EuQmEuX2dlbyYmZSgiX2dlbyIpO3ZhciBmPSJodHRwczovL3tnYTRDb2xsZWN0aW9uU3ViZG9tYWluLn1nb29nbGUtYW5hbHl0aWNzLmNvbS9nL3MvY29sbGVjdCIucmVwbGFjZSgie2dhNENvbGxlY3Rpb25TdWJkb21haW4ufSIsKGJ8fCJ3d3ciKSsiLiIpLGc9ZC5qb2luKCImIik7elEoZixnLHtkZXN0aW5hdGlvbklkOmEuZGVzdGluYXRpb25JZHx8CiIiLGVuZHBvaW50OjYyLGV2ZW50SWQ6YS5ldmVudElkLHByaW9yaXR5SWQ6YS5wcmlvcml0eUlkfSk7TWwoe3RhcmdldElkOlN0cmluZyhhLkJhLnRpZCkscmVxdWVzdDp7dXJsOmYrIj8iK2cscGFyYW1ldGVyRW5jb2Rpbmc6MixlbmRwb2ludDo2Mn0scWI6Y30pfSxFUT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Imh0dHBzOi8ve2dhNENvbGxlY3Rpb25TdWJkb21haW4ufWFuYWx5dGljcy5nb29nbGUuY29tL2cvcy9jb2xsZWN0Ii5yZXBsYWNlKCJ7Z2E0Q29sbGVjdGlvblN1YmRvbWFpbi59IixiP2IrIi4iOiIiKSxlPVtdLGY9ZnVuY3Rpb24oaCl7ZS5wdXNoKGgrIj0iK2VuY29kZVVSSUNvbXBvbmVudCgiIithLkJhW2hdKSl9O2YoIl9nc2lkIik7ZigiZ3RtIik7YS5CYS5fZ2VvJiZmKCJfZ2VvIik7dmFyIGc9ZS5qb2luKCImIik7elEoZCxnLHtkZXN0aW5hdGlvbklkOmEuZGVzdGluYXRpb25JZHx8IiIsZW5kcG9pbnQ6MTgsZXZlbnRJZDphLmV2ZW50SWQscHJpb3JpdHlJZDphLnByaW9yaXR5SWR9KTsKTWwoe3RhcmdldElkOlN0cmluZyhhLkJhLnRpZCkscmVxdWVzdDp7dXJsOmQrIj8iK2cscGFyYW1ldGVyRW5jb2Rpbmc6MixlbmRwb2ludDoxOH0scWI6Y30pfSxGUT1mdW5jdGlvbihhLGIsYyxkLGUsZil7YyYmYi5wdXNoKCJ0YWdfZXhwPSIrYyk7Yi5wdXNoKCJ6PSIrRGIoKSk7aWYoIWUpe3ZhciBnPWQmJlNiKGQsImdvb2dsZS4iKSYmZCE9PSJnb29nbGUuY29tIj8iaHR0cHM6Ly93d3cuJS9hZHMvZ2EtYXVkaWVuY2VzP3Y9MSZ0PXNyJnNsZl9yZD0xJl9yPTQmIi5yZXBsYWNlKCIlIixkKTp2b2lkIDA7aWYoZyl7dmFyIGg9ZytiLmpvaW4oIiYiKTtYbih7ZGVzdGluYXRpb25JZDphLmRlc3RpbmF0aW9uSWR8fCIiLGVuZHBvaW50OjQ3LGV2ZW50SWQ6YS5ldmVudElkLHByaW9yaXR5SWQ6YS5wcmlvcml0eUlkfSxoKTtNbCh7dGFyZ2V0SWQ6U3RyaW5nKGEuQmEudGlkKSxyZXF1ZXN0Ont1cmw6aCxwYXJhbWV0ZXJFbmNvZGluZzoyLGVuZHBvaW50OjQ3fSxxYjpmfSl9fX0sR1E9CmZ1bmN0aW9uKGEsYixjLGQpe2MmJmIucHVzaCgidGFnX2V4cD0iK2MpO3pRKCJodHRwczovL3N0YXRzLmcuZG91YmxlY2xpY2submV0L2cvY29sbGVjdCIsInY9MiYiK2Iuam9pbigiJiIpLHtkZXN0aW5hdGlvbklkOmEuZGVzdGluYXRpb25JZHx8IiIsZW5kcG9pbnQ6MTksZXZlbnRJZDphLmV2ZW50SWQscHJpb3JpdHlJZDphLnByaW9yaXR5SWR9KTtNbCh7dGFyZ2V0SWQ6U3RyaW5nKGEuQmEudGlkKSxyZXF1ZXN0Ont1cmw6Imh0dHBzOi8vc3RhdHMuZy5kb3VibGVjbGljay5uZXQvZy9jb2xsZWN0P3Y9MiYiK2Iuam9pbigiJiIpLHBhcmFtZXRlckVuY29kaW5nOjIsZW5kcG9pbnQ6MTl9LHFiOmR9KX0sSFE9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKHYpe3EucHVzaCh2KyI9IitlbmNvZGVVUklDb21wb25lbnQoIiIrYS5CYVt2XSkpfXZhciBkPWIueHQsZT1iLkJ0LGY9Yi5BdCxnPWIuenQsaD1iLlpyLGw9Yi5DcyxuPWIuUHIscD1iLkd0O2lmKGR8fGV8fGZ8fGcpe3ZhciBxPQpbXTthLkJhLl9uZyYmYygiX25nIik7YS5CYS5uZ3MmJmMoIm5ncyIpO2EuQmEuaWJ0JiZjKCJpYnQiKTtjKCJ0aWQiKTtjKCJjaWQiKTtjKCJndG0iKTtmb3IodmFyIHI9bShPRiksdD1yLm5leHQoKTshdC5kb25lO3Q9ci5uZXh0KCkpe3ZhciB1PXQudmFsdWU7YS5CYVt1XSE9bnVsbCYmYyh1KX1xLnB1c2goImFpcD0xIik7YS52ZS51aWQmJnEucHVzaCgidWlkPSIrZW5jb2RlVVJJQ29tcG9uZW50KCIiK2EudmUudWlkKSk7YygiZG1hIik7YS5CYS5kbWFfY3BzIT1udWxsJiZjKCJkbWFfY3BzIik7YS5CYS5nY3MhPW51bGwmJmMoImdjcyIpO2MoImdjZCIpO2EuQmEubnBhIT1udWxsJiZjKCJucGEiKTthLkJhLmZybSE9bnVsbCYmYygiZnJtIik7ZCYmR1EoYSxxLnNsaWNlKCkscCxiLnFiKTtlJiZGUShhLHEuc2xpY2UoKSxwLGgsbCxiLnFiKTtmJiZFUShhLG4sYi5xYik7ZyYmRFEoYSxuLGIucWIpfX0sSVE9ZnVuY3Rpb24oKXt0aGlzLlI9MTt0aGlzLlo9e307dGhpcy5LPS0xO3RoaXMuSD0KbmV3IHdnfTtJUS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMsZD1uZXcgc1EoYSx0aGlzLlosYiksZT17ZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfSxmPXlQKGEpLGcsaDtmJiZ0aGlzLkguUihkKXx8dGhpcy5mbHVzaCgpO3ZhciBsPWYmJnRoaXMuSC5hZGQoZCk7aWYobCl7aWYodGhpcy5LPDApe3ZhciBuPUEscD1uLnNldFRpbWVvdXQscTtiayhaSyhhKSk/SlE/KEpRPSExLHE9S1EpOnE9TFE6cT01RTM7dGhpcy5LPXAuY2FsbChuLGZ1bmN0aW9uKCl7Yy5mbHVzaCgpfSxxKX19ZWxzZXt2YXIgcj16ZyhkLHRoaXMuUisrKSx0PXIucGFyYW1zLHU9ci5ib2R5O2c9dDtoPXU7RnkoMyxhLmV2ZW50TmFtZSk7Q1EoZC5iYXNlVXJsLHQsdSxkLk4se2Rlc3RpbmF0aW9uSWQ6YS50YXJnZXQuZGVzdGluYXRpb25JZCxlbmRwb2ludDpkLmVuZHBvaW50LGV2ZW50SWQ6ZC5ldmVudElkLHByaW9yaXR5SWQ6ZC5wcmlvcml0eUlkfSk7CnZhciB2PVEoYSxILkouaGQpLHg9UShhLEguSi5yZykseT1RKGEsSC5KLk5oKSx6PVEoYSxILkouTWgpLEM9TyhhLk0sRi5ELnVpKSE9PSExLEQ9U3QoYS5NKSxJPXt4dDp2LEJ0OngsQXQ6eSx6dDp6LFpyOkVtKCksbXY6QyxsdjpELENzOkFtKCkscWI6ZSxNOmEuTSxQcjpEbSgpLEd0OkNwKGEpfTtIUShkLEkpfWZuLkgmJkF6KGEuTS5ldmVudElkKTtObChmdW5jdGlvbigpe2lmKGwpe3ZhciBHPXpnKGQpLE49Ry5ib2R5O2c9Ry5wYXJhbXM7aD1OfXJldHVybnt0YXJnZXRJZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLHJlcXVlc3Q6e3VybDpkLmJhc2VVcmwrIj8iK2cscGFyYW1ldGVyRW5jb2Rpbmc6Mixwb3N0Qm9keTpoLGVuZHBvaW50OmQuZW5kcG9pbnR9LHFiOmUsaXNCYXRjaGVkOiExfX0pfTtJUS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEpe1lLKGEpJiYheFAoKT90aGlzLmZhKGEpOnRoaXMuTihhKX07SVEucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7aWYodGhpcy5ILmV2ZW50cy5sZW5ndGgpe3ZhciBhPQpCZyh0aGlzLkgsdGhpcy5SKyspO0NRKHRoaXMuSC5iYXNlVXJsLGEucGFyYW1zLGEuYm9keSx0aGlzLkguSyx7ZGVzdGluYXRpb25JZDp0aGlzLkguZGVzdGluYXRpb25JZHx8IiIsZW5kcG9pbnQ6dGhpcy5ILmVuZHBvaW50LGV2ZW50SWQ6dGhpcy5ILloscHJpb3JpdHlJZDp0aGlzLkguZmF9KTt0aGlzLkg9bmV3IHdnO3RoaXMuSz49MCYmKEEuY2xlYXJUaW1lb3V0KHRoaXMuSyksdGhpcy5LPS0xKX19O0lRLnByb3RvdHlwZS5mYT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9WUsoYSk7TSg1NjgpJiYhTSg1ODYpJiZSKGEsRi5ELkJjKT09PSJhIiYmKGM9Y3coYykpO2lmKEV3KGMpKXt2YXIgZD1zdyhjKTtkP2QudGhlbihmdW5jdGlvbihmKXtiLk4oYSxmKX0sZnVuY3Rpb24oKXtiLk4oYSl9KTp0aGlzLk4oYSl9ZWxzZXt2YXIgZT1EdyhjKTt0aGlzLk4oYSxlKX19O3ZhciBLUT1OZigyNCw1MDApLExRPU5mKDU2LDVFMyksSlE9ITA7dmFyIE1RPWZ1bmN0aW9uKGEpe3ZhciBiPVN0KGEuTSk7TyhhLk0sRi5ELldiKT09PSEwJiYoYj0hMSk7VihhLEguSi53ZCxiKX07CnZhciBOUT1mdW5jdGlvbihhLGIsYyl7Yz09PXZvaWQgMCYmKGM9e30pO2lmKGI9PW51bGwpcmV0dXJuIGM7aWYodHlwZW9mIGI9PT0ib2JqZWN0Iilmb3IodmFyIGQ9bShPYmplY3Qua2V5cyhiKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7TlEoYSsiLiIrZixiW2ZdLGMpfWVsc2UgY1thXT1iO3JldHVybiBjfSxPUT1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz1tKGEpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2JbZV09ISFYbyhlKX1yZXR1cm4gYn0sUVE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1QUS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIVhvKGUpfSk7aWYoYy5sZW5ndGgpe3ZhciBkPU9RKGMpOyRvKGMsZnVuY3Rpb24oKXtmb3IodmFyIGU9T1EoYyksZj1bXSxnPW0oYyksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWU7IWRbbF0mJmVbbF0mJmYucHVzaChsKTtlW2xdJiYKKGRbbF09ITApfWlmKGYubGVuZ3RoKXtWKGIsSC5KLkdoLCEwKTt2YXIgbj1mLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gTG9bcF19KS5qb2luKCIuIik7biYmV0soYiwiZ2N1dCIsbik7TVEoYik7YShiKX19KX19LFJRPWZ1bmN0aW9uKGEpe1IoYSxGLkQuV2MpJiYhYmsoWksoYSkpJiZVKGEsRi5ELldjKX0sU1E9ZnVuY3Rpb24oYSl7YmsoWksoYSkpJiZXSyhhLCJuYXZ0IixxZCgpKX0sVFE9ZnVuY3Rpb24oYSl7YmsoWksoYSkpJiZXSyhhLCJscGMiLGlyKCkpfSxVUT1mdW5jdGlvbihhKXtpZihiayhaSyhhKSkpe3ZhciBiPU8oYS5NLEYuRC5XYiksYztiPT09ITAmJihjPSIxIik7Yj09PSExJiYoYz0iMCIpO2MmJldLKGEsInJkcCIsYyl9fSxWUT1mdW5jdGlvbihhLGIpe2lmKGJrKFpLKGIpKSl7dmFyIGM9UShiLEguSi5tZyk7KGIuZXZlbnROYW1lPT09InBhZ2VfdmlldyJ8fGMpJiZRUShhLGIpfX0sV1E9ZnVuY3Rpb24oYSl7aWYoYmsoWksoYSkpJiZhLmV2ZW50TmFtZT09PUYuRC55ZiYmClEoYSxILkouR2gpKXt2YXIgYj1SKGEsRi5ELnhpKTtiJiYoV0soYSwiZ2N1dCIsYiksV0soYSwic3luIiwxKSl9fSxYUT1mdW5jdGlvbihhLGIsYyl7aWYoYT09PWIpcmV0dXJuIFdqKCkmJlNiKGMrIi8iLFhqKCkrIi8iKT8iNyI6IjEiO2lmKFRiKGEsIi4iK2IpKXJldHVybiIyIjtpZihUYihiLCIuIithKSlyZXR1cm4iMyI7dmFyIGQ9YS5zcGxpdCgiLiIpLGU9Yi5zcGxpdCgiLiIpLGY9ZnVuY3Rpb24oZyl7aWYoZC5sZW5ndGg8Z3x8ZS5sZW5ndGg8ZylyZXR1cm4hMTtmb3IodmFyIGg9MTtoPD1nO2grKylpZihkW2QubGVuZ3RoLWhdIT09ZVtlLmxlbmd0aC1oXSlyZXR1cm4hMTtyZXR1cm4hMH07cmV0dXJuIGYoMyk/IjYiOmYoMik/IjUiOiI0In0sWVE9ZnVuY3Rpb24oYSl7aWYoYmsoWksoYSkpKXt2YXIgYj1layhhLk0pO2lmKGIpe3ZhciBjPVlqKGIsIi8iKSxkPVJqKGMpLGU9TmooZCwiaG9zdCIpLGY9TmooQS5sb2NhdGlvbiwiaG9zdCIpO2lmKGUmJmYpe3ZhciBnPU5qKGQsCiJwYXRoIik7YS5tZXJnZUhpdERhdGFGb3JLZXkoRi5ELlRhLHtzc3RkOlhRKGUsZixnKX0pfX19fSxaUT1mdW5jdGlvbihhKXtiayhaSyhhKSkmJlYoYSxILkouSmEsITEpfSwkUT1mdW5jdGlvbihhKXtiayhaSyhhKSkmJihRKGEsSC5KLkphKSYmV0soYSwic3AiLDEpLFEoYSxILkouSXEpJiZXSyhhLCJzeW4iLDEpLFEoYSxILkouUGMpJiYoV0soYSwiZW1fZXZlbnQiLDEpLFdLKGEsInNwIiwxKSkpfSxhUj1mdW5jdGlvbihhKXtpZihiayhaSyhhKSkpe3ZhciBiPSRrKDI1KTtiJiZXSyhhLCJ0ZnQiLE51bWJlcihiKSl9fSxiUj1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGUpe3ZhciBmPU5RKEYuRC5BYyxlKTtHYihmLGZ1bmN0aW9uKGcsaCl7VShhLGcsaCl9KX1pZihiayhaSyhhKSkpe3ZhciBjPWRJKGEsImNjZF9hZGRfMXBfZGF0YSIsITEpPzE6MDtXSyhhLCJ1ZGUiLGMpO3ZhciBkPU8oYS5NLEYuRC5BYyk7ZCE9PXZvaWQgMD8oWnYoZCksYihkKSxVKGEsRi5ELkJjLCJjIikpOgpiKFEoYSxILkouWWEpKTtWKGEsSC5KLllhKX19LGNSPWZ1bmN0aW9uKGEpe2lmKGJrKFpLKGEpKSl7dmFyIGI9Vk0oKTtiJiZXSyhhLCJ1c19wcml2YWN5IixiKTt2YXIgYz1MdCgpO2MmJldLKGEsImdkcHIiLGMpO3ZhciBkPUt0KCk7ZCYmV0soYSwiZ2Rwcl9jb25zZW50IixkKTt2YXIgZT1rRi5ncHBTdHJpbmc7ZSYmV0soYSwiZ3BwIixlKTt2YXIgZj1rRi5IO2YmJldLKGEsImdwcF9zaWQiLGYpfX0sZFI9ZnVuY3Rpb24oYSl7YmsoWksoYSkpJiZFbCgpJiZPKGEuTSxGLkQubWIpJiZXSyhhLCJhZHIiLDEpfSxlUj1mdW5jdGlvbihhKXtpZihiayhaSyhhKSkpe3ZhciBiPURtKCk7YiYmV0soYSwiZ2NzdWIiLGIpfX0sZlI9ZnVuY3Rpb24oYSl7aWYoYmsoWksoYSkpKXtPKGEuTSxGLkQuU2Msdm9pZCAwLDQpPT09ITEmJldLKGEsIm5ncyIsMSk7QW0oKSYmV0soYSwiZ2FfcmQiLDEpO1ZLKCl8fFdLKGEsIm5nc3QiLDEpO3ZhciBiPUVtKCk7YiYmV0soYSwiZXRsZCIsYil9fSxnUj0KZnVuY3Rpb24oYSl7fSxoUj1mdW5jdGlvbihhKXtiayhaSyhhKSkmJkVsKCkmJldLKGEsInJuZCIsUU0oKSl9LFBRPVtGLkQua2EsRi5ELm1hLEYuRC5YYV07CnZhciBpUj1mdW5jdGlvbihhLGIpe3ZhciBjO2E6e2lmKCFRKGEsSC5KLkZjKSl7dmFyIGQ9VFAoYSk7aWYoZCl7aWYoUlAoZCxhKSl7Yz1kO2JyZWFrIGF9UCgyNSk7YS5pc0Fib3J0ZWQ9ITB9fWM9dm9pZCAwfXZhciBlPWM7cmV0dXJue2NsaWVudElkOkVQKGEsYiksemI6ZX19LGpSPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9UW8oTyhhLk0sRi5ELktiKSk7aWYoTyhhLk0sRi5ELlpjKSYmTyhhLk0sRi5ELlljKSlmP0NQKGEsZiwxKTooUCgxMjcpLGEuaXNBYm9ydGVkPSEwKTtlbHNle3ZhciBnPWY/MTo4O1YoYSxILkouSGgsITEpO2Z8fChmPUZQKGEpLGc9Myk7Znx8KGY9YixnPTUpO2lmKCFmKXt2YXIgaD1YbyhGLkQucmEpLGw9elAoKTtmPSFsLmZyb21fY29va2llfHxoP2wudmlkOnZvaWQgMDtnPTZ9Zj9mPSIiK2Y6KGY9QXYoKSxnPTcsVihhLEguSi5uZywhMCksVihhLEguSi5IaCwhMCkpO0NQKGEsZixnKX1SKGEsRi5ELktiKTtpZighUShhLEguSi5GYykpe3ZhciBuPQpRKGEsSC5KLkViKSxwPU1hdGguZmxvb3Iobi8xRTMpLHE9dm9pZCAwO1EoYSxILkouSGgpfHwocT1TUChhKXx8Yyk7dmFyIHI9SWIoTyhhLk0sRi5ELnloLDMwKSk7cj1NYXRoLm1pbig0NzUscik7cj1NYXRoLm1heCg1LHIpO3ZhciB0PUliKE8oYS5NLEYuRC5QaSwxRTQpKSx1PUxQKHEpO1YoYSxILkoubmcsITEpO1YoYSxILkouVGUsITEpO1YoYSxILkoucGcsMCk7dSYmdS5qJiZWKGEsSC5KLnBnLE1hdGgubWF4KDAsdS5qLU1hdGgubWF4KDAscC11LnQpKSk7dmFyIHY9ITE7aWYoIXUpe1YoYSxILkoubmcsITApO3Y9ITA7dmFyIHg9e307dT0oeC5zPVN0cmluZyhwKSx4Lm89MSx4Lmc9ITEseC50PXAseC5sPSExLHguaD12b2lkIDAseCl9cD51LnQrcio2MCYmKHY9ITAsdS5zPVN0cmluZyhwKSx1Lm8rKyx1Lmc9ITEsdS5oPXZvaWQgMCk7aWYodilWKGEsSC5KLlRlLCEwKSxkLmxzKGEpO2Vsc2UgaWYoZC5YcigpPnR8fGEuZXZlbnROYW1lPT09Ri5ELnNjKXUuZz0hMDtRKGEsSC5KLmxnKT8KTyhhLk0sRi5ELmZiKT91Lmw9ITA6dS5sPSExOnUubD0hMTt2YXIgeT11Lmg7aWYoUShhLEguSi5sZyl8fGJrKFpLKGEpKSl7dmFyIHo9TyhhLk0sRi5ELm9oKSxDPXo/MTo4O3p8fCh6PXksQz00KTt6fHwoej16digpLEM9Nyk7dmFyIEQ9ei50b1N0cmluZygpLEk9QyxHPVEoYSxILkoudGwpO2lmKEc9PT12b2lkIDB8fEk8PUcpVShhLEYuRC5vaCxEKSxWKGEsSC5KLnRsLEkpfWU/KGEuY29weVRvSGl0RGF0YShGLkQueGMsdS5zKSxhLmNvcHlUb0hpdERhdGEoRi5ELkFoLHUubyksYS5jb3B5VG9IaXREYXRhKEYuRC56aCx1Lmc/MTowKSk6KFUoYSxGLkQueGMsdS5zKSxVKGEsRi5ELkFoLHUubyksVShhLEYuRC56aCx1Lmc/MTowKSk7VihhLEguSi5ybSx1Lmw/MTowKTtXaigpJiZWKGEsSC5KLm9nLHUuZHx8Y2MoKSl9fTsKdmFyIGtSPWZ1bmN0aW9uKGEpe3ZhciBiPWEuaW5kZXhPZigiPyIpLGM9Yj09PS0xP2E6YS5zdWJzdHJpbmcoMCxiKSxkPUtqKGMpO2QmJihjPWQpO3JldHVybiBiPT09LTE/YzoiIitjK2Euc3Vic3RyaW5nKGIpfSxsUj1mdW5jdGlvbihhKXtpZighTyhhLk0sRi5ELlljKXx8IU8oYS5NLEYuRC5aYykpe3ZhciBiPWEuY29weVRvSGl0RGF0YSxjPUYuRC56YSxkPSIiLGU9Qi5sb2NhdGlvbjtpZihlKXt2YXIgZj1lLnBhdGhuYW1lfHwiIjtmLmNoYXJBdCgwKSE9PSIvIiYmKGY9Ii8iK2YpO3ZhciBnPWUuc2VhcmNofHwiIjtpZihnWzBdPT09Ij8iKWZvcih2YXIgaD1nLnN1YnN0cmluZygxKS5zcGxpdCgiJiIpLGw9MDtsPGgubGVuZ3RoOysrbCl7dmFyIG49aFtsXS5zcGxpdCgiPSIpO24mJm4ubGVuZ3RoPT09MiYmblswXT09PSJ3YnJhaWQiJiYoZz1nLnJlcGxhY2UoLyhbPyZdKXdicmFpZD1bXiZdKy8sIiQxd2JyYWlkPSIrJGIoblsxXSkpKX1kPWUucHJvdG9jb2wrIi8vIitlLmhvc3RuYW1lKwpmK2d9Yi5jYWxsKGEsYyxkLGtSKTt2YXIgcD1hLmNvcHlUb0hpdERhdGEscT1GLkQuVWEscj11QSgiZ3RtLmd0YWdSZWZlcnJlci4iK2EudGFyZ2V0LmRlc3RpbmF0aW9uSWQpLHQ9Qi5yZWZlcnJlcjtwLmNhbGwoYSxxLChyPyIiK3I6dCl8fHZvaWQgMCxrUik7YS5jb3B5VG9IaXREYXRhKEYuRC5NYixCLnRpdGxlKTthLmNvcHlUb0hpdERhdGEoRi5ELnRiLChIYy5sYW5ndWFnZXx8IiIpLnRvTG93ZXJDYXNlKCkpO3ZhciB1PXFJKCk7YS5jb3B5VG9IaXREYXRhKEYuRC5iZCx1LndpZHRoKyJ4Iit1LmhlaWdodCk7YS5jb3B5VG9IaXREYXRhKEYuRC5ZZix2b2lkIDAsa1IpO1RNKCkmJmEuY29weVRvSGl0RGF0YShGLkQuUGQsIjEiKX19O3ZhciBuUj1mdW5jdGlvbihhKXt2YXIgYj14QyhhLk0pLGM9ZnVuY3Rpb24oZCxlKXttUltkXSYmVShhLGQsZSl9O0NkKGJbRi5ELktmXSk/R2IoYltGLkQuS2ZdLGZ1bmN0aW9uKGQsZSl7YygoRi5ELktmKyJfIitkKS50b0xvd2VyQ2FzZSgpLGUpfSk6R2IoYixjKX0sb1I9e30sbVI9KG9SW0YuRC5HZl09MSxvUltGLkQuSGZdPTEsb1JbRi5ELklmXT0xLG9SW0YuRC5KZl09MSxvUltGLkQuTGZdPTEsb1JbRi5ELk1mXT0xLG9SKTt2YXIgcFI9ZnVuY3Rpb24oYSl7aWYoIWJrKFpLKGEpKSYmUShhLEguSi5tZykmJlhvKEYuRC5rYSkmJmRJKGEsImdhNF9hZHNfbGlua2VkIiwhMSkpe3ZhciBiPUxLKGEpLGM9SHIoYi5wcmVmaXgpLGQ9UnMoYyk7VShhLEYuRC5CZSxkLkVnKTtVKGEsRi5ELkRlLGQuV2gpO1UoYSxGLkQuQ2UsZC5VaCl9fTt2YXIgcVI9ZnVuY3Rpb24oYSl7dmFyIGI9TyhhLk0sRi5ELlpjKTtiJiZJUChKLlUueG4pO1EoYSxILkouUGMpJiZJUChKLlUuTmspO3ZhciBjPXlrKHprKCkpOyhifHxNayhjKXx8YyYmYy5wYXJlbnQmJmMuY29udGV4dCYmYy5jb250ZXh0LnNvdXJjZT09PTUpJiZJUChKLlUuZm4pO1EoYSxILkouY2opJiZJUChKLlUuSW0pO1EoYSxILkouYmopJiZJUChKLlUuSG0pfTt2YXIgclI9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5WaSl8fG5ldyBlcjtRKGEsSC5KLmJqKSYmUShhLEguSi5jaikmJmZyKGIsMik7VihhLEguSi5WaSxiKX07ZnVuY3Rpb24gc1IoYSl7YS5jb3B5VG9IaXREYXRhKEYuRC5mYik7dmFyIGI9TyhhLk0sRi5ELldkKTtiJiYoS0MoYixmdW5jdGlvbigpe30pLFUoYSxGLkQuV2QsYikpfTt2YXIgdVI9ZnVuY3Rpb24oYSl7aWYodFIuTXIucmVwbGFjZSgvXHMrL2csIiIpLnNwbGl0KCIsIikuaW5kZXhPZihhLmV2ZW50TmFtZSk+PTApYS5pc0Fib3J0ZWQ9ITA7ZWxzZXt2YXIgYj1YSyhhKTtiJiZiLmJsYWNrbGlzdGVkJiYoYS5pc0Fib3J0ZWQ9ITApfX0sdFI9e01yOkxmKDMxKX07ZnVuY3Rpb24gdlIoYSl7dmFyIGI9ZnVuY3Rpb24oYyl7cmV0dXJuISFjJiZjLmNvbnZlcnNpb259O1YoYSxILkoubWcsYihYSyhhKSkpO1EoYSxILkoubmcpJiZWKGEsSC5KLlltLGIoWEsoYSwiZmlyc3RfdmlzaXQiKSkpO1EoYSxILkouVGUpJiZWKGEsSC5KLmJuLGIoWEsoYSwic2Vzc2lvbl9zdGFydCIpKSl9O3ZhciB3Uj1mdW5jdGlvbihhKXtGby5oYXNPd25Qcm9wZXJ0eShhLmV2ZW50TmFtZSkmJihWKGEsSC5KLldtLCEwKSxhLmNvcHlUb0hpdERhdGEoRi5ELkhhKSxhLmNvcHlUb0hpdERhdGEoRi5ELmViKSl9O3ZhciB4Uj1mdW5jdGlvbihhKXtRKGEsSC5KLmJlKT9WKGEsSC5KLmxnLCExKTpkSShhLCJjY2RfYWRkX2VjX3N0aXRjaGluZyIsITEpJiZWKGEsSC5KLmxnLCEwKX07dmFyIHlSPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkoucGcpO2I9Ynx8MDt2YXIgYz0hIVEoYSxILkouc2EpLGQ9Yj09PTB8fGM7VihhLEguSi5laixkKTtkJiZWKGEsSC5KLnBnLDYwKX07dmFyIEFSPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj17fSxjPVN0cmluZyh6Ui5jb29raWUpLnNwbGl0KCI7IiksZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1jW2RdLnNwbGl0KCI9IiksZj1lWzBdLnRyaW0oKTtpZihmJiZhKGYpKXt2YXIgZz1lLnNsaWNlKDEpLmpvaW4oIj0iKS50cmltKCk7ZyYmKGc9ZGVjb2RlVVJJQ29tcG9uZW50KGcpKTt2YXIgaD12b2lkIDAsbD12b2lkIDA7KChoPWIpW2w9Zl18fChoW2xdPVtdKSkucHVzaChnKX19cmV0dXJuIGJ9O3ZhciBCUj13aW5kb3cselI9ZG9jdW1lbnQsQ1I9ZnVuY3Rpb24oYSl7dmFyIGI9QlIuX2dhVXNlclByZWZzO2lmKGImJmIuaW9vJiZiLmlvbygpfHx6Ui5kb2N1bWVudEVsZW1lbnQuaGFzQXR0cmlidXRlKCJkYXRhLWdvb2dsZS1hbmFseXRpY3Mtb3B0LW91dCIpfHxhJiZCUlsiZ2EtZGlzYWJsZS0iK2FdPT09ITApcmV0dXJuITA7dHJ5e3ZhciBjPUJSLmV4dGVybmFsO2lmKGMmJmMuX2dhVXNlclByZWZzJiZjLl9nYVVzZXJQcmVmcz09Im9vIilyZXR1cm4hMH1jYXRjaChmKXt9Zm9yKHZhciBkPUFSKGZ1bmN0aW9uKGYpe3JldHVybiBmPT09IkFNUF9UT0tFTiJ9KS5BTVBfVE9LRU58fFtdLGU9MDtlPGQubGVuZ3RoO2UrKylpZihkW2VdPT0iJE9QVF9PVVQiKXJldHVybiEwO3JldHVybiB6Ui5nZXRFbGVtZW50QnlJZCgiX19nYU9wdE91dEV4dGVuc2lvbiIpPyEwOiExfTt2YXIgRFI9ZnVuY3Rpb24oYSl7aWYoQ1IoYS50YXJnZXQuZGVzdGluYXRpb25JZCkpUCgyOCksYS5pc0Fib3J0ZWQ9ITA7ZWxzZXt2YXIgYj14aygpO2lmKGImJkFycmF5LmlzQXJyYXkoYi5kZXN0aW5hdGlvbnMpKWZvcih2YXIgYz0wO2M8Yi5kZXN0aW5hdGlvbnMubGVuZ3RoO2MrKylpZihDUihiLmRlc3RpbmF0aW9uc1tjXSkpe1AoMTI1KTthLmlzQWJvcnRlZD0hMDticmVha319fTt2YXIgRVI9ZnVuY3Rpb24oYSl7dmFyIGI9Qi5sb2NhdGlvbi5wcm90b2NvbDtiIT09Imh0dHA6IiYmYiE9PSJodHRwczoiJiYoUCgyOSksYS5pc0Fib3J0ZWQ9ITApfTt2YXIgRlI9ZnVuY3Rpb24oYSl7SGMmJkhjLmxvYWRQdXJwb3NlPT09InByZXZpZXciJiYoUCgzMCksYS5pc0Fib3J0ZWQ9ITApfTt2YXIgR1I9ZnVuY3Rpb24oYSxiKXtiLlRqJiYoVihhLEguSi5zYSwhMCksYi5Uaj0hMSxXaigpJiZWKGEsSC5KLm9nLGNjKCkpKX07dmFyIEhSPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYyxkKXtCb1tjXXx8ZD09PXZvaWQgMHx8VShhLGMsZCl9TSg1NTApJiZHYihhLk0uV2EsYik7R2IoYS5NLmhiLGIpO0diKGEuTS5FYSxiKX07dmFyIElSPWZ1bmN0aW9uKGEpe2EuZXZlbnROYW1lPT09Ri5ELndhJiYoTyhhLk0sRi5ELlRkLCEwKT8oYS5NLkVhW0YuRC5PYV0mJihNKDU1MCkmJihhLk0uV2FbRi5ELk9hXT1hLk0uRWFbRi5ELk9hXSksYS5NLmhiW0YuRC5PYV09YS5NLkVhW0YuRC5PYV0sYS5NLkVhW0YuRC5PYV09dm9pZCAwLFUoYSxGLkQuT2EpKSxhLmV2ZW50TmFtZT1GLkQuc2MpOmEuaXNBYm9ydGVkPSEwKX07CnZhciBKUj1mdW5jdGlvbihhKXtpZihNKDEzMikpe3ZhciBiPVpLKGEpO2lmKGJrKGIpKWlmKGNrKGIpKWNrKFpLKGEpKSYmYS5tZXJnZUhpdERhdGFGb3JLZXkoRi5ELlRhLHsiM3BkIjoiMSJ9KTtlbHNlIGlmKCEoTmMoIjsgd3YiKXx8TmMoIkZCQU4iKXx8TmMoIkZCQVYiKXx8UGMoKSkmJlhvKEYuRC5yYSkpe1YoYSxILkouZG4sITApO2JrKFpLKGEpKSYmV0soYSwic3dfZXhwIiwxKTthOntpZighTSgxMzIpfHwhYmsoWksoYSkpfHxjayhaSyhhKSkpYnJlYWsgYTtiOnt2YXIgYz17b3Q6WWooZWsoYS5NKSwiL18vc2VydmljZV93b3JrZXIiKX0sZDtkPShjPT09dm9pZCAwP3t9OmMpLm90O3ZhciBlPWlMKGQpO2lmKGU9PT1udWxsfHwhYmcoImludGVybmFsX3N3X2FsbG93ZWQiLCIiKXx8akwoZS5vcmlnaW4pKWJyZWFrIGI7CmlmKCFJYygpKXtnTCgpLksodm9pZCAwLHZvaWQgMCw2KTticmVhayBifXZhciBmPW5ldyBrTChlKTtvbShqbS5iYS5PaCx7fSlbZS5vcmlnaW5dPWY7fX19fX07dmFyIExSPWZ1bmN0aW9uKGEpe2EuY29weVRvSGl0RGF0YShGLkQuT2wpO08oYS5NLEYuRC54aCkmJihVKGEsRi5ELnhoLCEwKSxiayhaSyhhKSl8fEtSKGEpKX0sS1I9ZnVuY3Rpb24oYSl7dmFyIGI9Ri5ELmJkLGM7Y3x8KGM9ZnVuY3Rpb24oKXt9KTtSKGEsYikhPT12b2lkIDAmJlUoYSxiLGMoUihhLGIpKSl9O3ZhciBNUj0iZ2NsaWQgZGNsaWQgZ2Nsc3JjIHdicmFpZCBnYnJhaWQgZ2FkX3NvdXJjZSBnYWRfY2FtcGFpZ25pZCB1dG1fc291cmNlIHV0bV9tZWRpdW0gdXRtX2NhbXBhaWduIHV0bV90ZXJtIHV0bV9jb250ZW50IHV0bV9pZCIuc3BsaXQoIiAiKTtmdW5jdGlvbiBOUigpe3ZhciBhPUIubG9jYXRpb24sYixjPWE9PW51bGw/dm9pZCAwOihiPWEuc2VhcmNoKT09bnVsbD92b2lkIDA6Yi5yZXBsYWNlKCI/IiwiIiksZDtpZihjKXtmb3IodmFyIGU9W10sZj1KaihjLCEwKSxnPW0oTVIpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlLG49ZltsXTtpZihuKWZvcih2YXIgcD0wO3A8bi5sZW5ndGg7cCsrKXt2YXIgcT1uW3BdO3EhPT12b2lkIDAmJmUucHVzaCh7bmFtZTpsLHZhbHVlOnF9KX19ZD1lfWVsc2UgZD1bXTtyZXR1cm4gZH07dmFyIE9SPWZ1bmN0aW9uKGEpe3ZhciBiPU0oMjY2KSxjPU0oMjY3KTtpZihifHxjKXt2YXIgZD1SKGEsRi5ELnphKTtpZihkJiZkLmluZGV4T2YoIj8iKT09PS0xKXt2YXIgZT1OUigpO2lmKGUubGVuZ3RoIT09MCYmKGImJklQKEouVS5HbSksYykpe0lQKEouVS5GbSk7dmFyIGY9ZS5tYXAoZnVuY3Rpb24oZyl7cmV0dXJuIGcubmFtZSsiPSIrZy52YWx1ZX0pLmpvaW4oIiYiKTtVKGEsRi5ELnphLGQrIj8iK2YpfX19fTt2YXIgUFI9W0YuRC5yYSxGLkQua2FdLFFSPVtGLkQucmEsRi5ELmthLEYuRC5tYV07CmZ1bmN0aW9uIFJSKGEpe3ZhciBiLGM9TSg1MDYpJiYhZEkoYSwiY2NkX2dhX2Fkc19pZHNfb3B0X291dCIsITEpLGQ9ISFkSShhLCJnb29nbGVfbmciLCExKSxlPVhvKGM/ZD9RUjpmcDpQUiksZjtmPWRJKGEsRi5ELlVmLE8oYS5NLEYuRC5VZikpfHwhIWRJKGEsImdvb2dsZV9uZyIsITEpO2I9e2hmOmMsRXM6ZCxHbzplLGZmOmYsTGc6ISFkSShhLCJnYTRfYWRzX2xpbmtlZCIsITEpLGJpOkFtKCksR2o6IVZLKCksRnM6YmsoWksoYSkpLERzOiEhUShhLEguSi5iZSksR3M6ISFRKGEsSC5KLlRlKSx1czohIU8oYS5NLEYuRC5ObCksS3M6ISFRKGEsSC5KLmVqKSx4ZzpPKGEuTSxGLkQuU2MpLG5yOk8oYS5NLEYuRC5TYyx2b2lkIDAsNCksSHM6ISFRKGEsSC5KLkZjKX07VihhLEguSi5jaixiLmZmKTtWKGEsSC5KLmJqLFNSKGIpKTtiLmhmJiYhYi5mZiYmYi5MZyYmU1IoYikmJlUoYSwiXyZpYnQiLCIxIik7U1IoYikmJmIuR28mJihiLmhmP2IueGchPT0hMXx8Yi5MZzoxKSYmVihhLApILkoucm4sITApO2IuRXMmJiFiLmJpJiZVKGEsRi5ELkxlLDEpOyhiLmhmP2IueGc6Yi5ucik9PT0hMSYmVShhLCJfJm5ncyIsIjEiKTtWKGEsSC5KLmhkLFRSKGIpJiYoYi5Hc3x8Yi51cykpO1YoYSxILkoucmcsVFIoYikmJmIuS3MmJiFiLmJpKX1mdW5jdGlvbiBTUihhKXtyZXR1cm4gYS5oZj8oYS5MZ3x8YS5mZikmJiFhLmJpJiYhYS5HajphLmZmJiZhLnhnIT09ITEmJiFhLkdqJiYhYS5iaX1mdW5jdGlvbiBUUihhKXtpZihhLkhzKXJldHVybiExO2lmKGEuaGYpe2lmKCFhLmZmJiYhYS5MZylyZXR1cm4hMX1lbHNlIGlmKCFhLmZmKXJldHVybiExO3JldHVybiBhLkZzfHxhLkRzfHxhLkdqfHwoYS5oZj9hLnhnPT09ITEmJiFhLkxnOmEueGc9PT0hMSl8fCFhLkdvPyExOiEwfTt2YXIgVVI9ZnVuY3Rpb24oYSl7c0woKSYmVShhLEYuRC5GZSwiMSIpfTt2YXIgVlI9ZnVuY3Rpb24oYSl7dmFyIGI9e3ByZWZpeDpTdHJpbmcoTyhhLk0sRi5ELm5iLCIiKSkscGF0aDpTdHJpbmcoTyhhLk0sRi5ELnZjLCIvIikpLGZsYWdzOlN0cmluZyhPKGEuTSxGLkQuVGIsIiIpKSxkb21haW46U3RyaW5nKE8oYS5NLEYuRC5MYiwiYXV0byIpKSxwZDpOdW1iZXIoTyhhLk0sRi5ELkNiLDYzMDcyRTMpKX07VihhLEguSi5HYSxiKX07dmFyIFdSPWZ1bmN0aW9uKGEpe2lmKE0oNDM1KXx8TSg1NTMpKXt2YXIgYj1EbSgpO2ImJlYoYSxILkouQXEsYil9fTt2YXIgWVI9ZnVuY3Rpb24oYSl7YS5jb3B5VG9IaXREYXRhKEYuRC5SaSk7Zm9yKHZhciBiPU8oYS5NLEYuRC5SbCl8fFtdLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXTtpZihkLnJ1bGVfcmVzdWx0KXthLmNvcHlUb0hpdERhdGEoRi5ELlJpLGQudHJhZmZpY190eXBlKTtJUChKLlUuRW4pO2JyZWFrfX19O3ZhciBaUj1mdW5jdGlvbihhKXtpZihkSShhLCJnYTRfYWRzX2xpbmtlZCIsITEpJiZhLmV2ZW50TmFtZT09PUYuRC53YSl7dmFyIGI9TyhhLk0sRi5ELnVjKSE9PSExO2lmKGIpe3ZhciBjPUxLKGEpO2MucGQmJihjLnBkPU1hdGgubWluKGMucGQsNzc3NkUzKSk7UEsoe1RuOmIsbW86T28oTyhhLk0sRi5ELkRiKSksUW86ISFPKGEuTSxGLkQuemMpLFVuOmN9KX19fTt2YXIgJFI9ZnVuY3Rpb24oYSl7VihhLEguSi5NaCwhMSk7VihhLEguSi5OaCwhMSk7aWYoIURtKCkmJldqKCkmJiFiayhaSyhhKSkmJiFRKGEsSC5KLmJlKSYmUShhLEguSi5laikpe3ZhciBiPVEoYSxILkoucmcpO1EoYSxILkoub2cpJiYoYj9WKGEsSC5KLk5oLCEwKTpWKGEsSC5KLk1oLCEwKSl9fTt2YXIgYVM9ZnVuY3Rpb24oYSl7TyhhLk0sRi5ELnpjKSYmKFhvKEYuRC5yYSl8fE8oYS5NLEYuRC5LYil8fFUoYSxGLkQuWm0sITApKTt2YXIgYjt2YXIgYztjPWM9PT12b2lkIDA/MzpjO3ZhciBkPUEubG9jYXRpb24uaHJlZjtpZihkKXt2YXIgZT1SaihkKS5zZWFyY2gucmVwbGFjZSgiPyIsIiIpLGY9SWooZSwiX2dsIiwhMSwhMCl8fCIiO2I9Zj9WcShmLGMpIT09dm9pZCAwOiExfWVsc2UgYj0hMTtiJiZiayhaSyhhKSkmJldLKGEsImdsdiIsMSk7aWYoYS5ldmVudE5hbWUhPT1GLkQud2EpcmV0dXJue307TyhhLk0sRi5ELnpjKSYmQXMoWyJhdyIsImRjIl0pO0NzKFsiYXciLCJkYyJdKTt2YXIgZz0kUChhKSxoPVpQKGEpO3JldHVybiBPYmplY3Qua2V5cyhnKS5sZW5ndGg/ZzpofTt2YXIgYlM9ZnVuY3Rpb24oYSl7dmFyIGI9ITA7Yj1iPT09dm9pZCAwPyExOmI7aWYoTSg0MjUpJiYhKHBsKCl8fGImJlEoYSxILkouZGopfHxhLmV2ZW50TmFtZSE9PUYuRC53YXx8UShhLEguSi5GYykpKXt2YXIgYz17fSxkPXt9LGU9e2V2ZW50TWV0YWRhdGE6bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxhLk0uZXZlbnRNZXRhZGF0YSwoY1tILkouRmNdPSEwLGMpLGI/e306KGRbSC5KLkRjXT1YLlYuS2EsZCkpLG5vR3RtRXZlbnQ6ITB9LGY9c0MoYS50YXJnZXQuZGVzdGluYXRpb25JZCwic3RydWN0dXJlZF9kYXRhIixhLk0uRWEpO21EKGYsYS5NLmV2ZW50SWQsZSl9fTsKdmFyIGRTPWZ1bmN0aW9uKGEpe3JldHVybiFhfHxjUy50ZXN0KGEpfHxEby5oYXNPd25Qcm9wZXJ0eShhKX0sY1M9L14oX3xnYV98Z29vZ2xlX3xndGFnXC58ZmlyZWJhc2VfKS4qJC8sZVM9ZnVuY3Rpb24oYSl7dGhpcy55YT1hO3RoaXMuSD10aGlzLnpiPXRoaXMuY2xpZW50SWQ9dm9pZCAwO3RoaXMuamE9dGhpcy5SPSExO3RoaXMuTGE9MDt0aGlzLk49ITE7dGhpcy5aPXtUajohMX07dGhpcy5mYT1uZXcgSVE7dGhpcy5LPW5ldyBIUH07az1lUy5wcm90b3R5cGU7ay5acz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcyxlPWJDKHRoaXMueWEpO2lmKGUpaWYoYy5ldmVudE1ldGFkYXRhW0guSi5hZV0mJmEuY2hhckF0KDApPT09Il8iKWMub25GYWlsdXJlKCk7ZWxzZXthIT09Ri5ELndhJiZhIT09Ri5ELkpiJiZkUyhhKSYmUCg1OCk7dmFyIGY9bmV3IGFJKGUsYSxjKTtWKGYsSC5KLkViLGIpO3ZhciBnPVtGLkQucmFdLGg9YmsoWksoZikpO1YoZixILkouZGosaCk7aWYoZEkoZixGLkQuVWYsCk8oZi5NLEYuRC5VZikpfHxoKWcucHVzaChGLkQua2EpLGcucHVzaChGLkQubWEpO0ZNLmZhKGZ1bmN0aW9uKCl7YnAoZnVuY3Rpb24oKXtkLmJ0KGYpfSxnKX0pfWVsc2UgYy5vbkZhaWx1cmUoKX07ay5idD1mdW5jdGlvbihhKXt2YXIgYj10aGlzO3RyeXtITShhKTtpZihhLmlzQWJvcnRlZCl7dGIoKTtyZXR1cm59Sk0oYSk7RFIoYSk7dVIoYSk7RVIoYSk7RlIoYSk7SU0oYSk7dmFyIGM9e307ZVEoYSxjKTtpZihhLmlzQWJvcnRlZCl7YS5NLm9uRmFpbHVyZSgpO3RiKCk7cmV0dXJufXRoaXMuSD1hO3ZhciBkPWMudXI7Yy5Icj09PTAmJklQKEouVS5ubCk7ZD09PTAmJklQKEouVS5Mayk7Wk0oYSk7VihhLEguSi50Zyxjby5pYS54ZCk7VlIoYSk7SFIoYSk7dGhpcy5McShhKTt0aGlzLksuS3QoYSk7VShhLEYuRC56aSxhbCg4LE5GKSk7eFIoYSk7cE4oYSk7WlIoYSk7TVEoYSk7dGhpcy5BbyhhUyhhKSk7YlMoYSk7dmFyIGU9YS5ldmVudE5hbWU9PT1GLkQud2E7ZSYmKHRoaXMuTj0KITApO0lSKGEpO2UmJiFhLmlzQWJvcnRlZCYmdGhpcy5MYSsrPjAmJklQKEouVS5obik7VUwoYSk7alIoYSx0aGlzLmNsaWVudElkLHRoaXMuemIsdGhpcy5LLCF0aGlzLmphKTtuUihhKTtsUihhKTtPUihhKTtYTChhKTtHUihhLHRoaXMuWik7eVIoYSk7dlIoYSk7d1IoYSk7WVIoYSk7YVEoYSk7Z1EoYSk7d00oYSk7aFIoYSk7WVEoYSk7Z1IoYSk7ZlIoYSk7ZVIoYSk7ZFIoYSk7Y1IoYSk7YVIoYSk7JFEoYSk7V1EoYSk7VVEoYSk7VFEoYSk7U1EoYSk7YlEoYSk7Y1EoYSk7TyhhLk0sRi5ELnhoKSYmIWJrKFpLKGEpKXx8R00oYSk7VVIoYSk7V1IoYSk7aU4oYSk7VkwoYSk7U0woYSk7bE4oYSk7aE4oYSk7WE0oYSwhMSk7c1IoYSk7UlIoYSk7JFIoYSk7Tk0oYSk7clIoYSk7cFIoYSk7YlIoYSk7WlEoYSk7UlEoYSk7cVIoYSk7IXRoaXMuTiYmUShhLEguSi5QYykmJklQKEouVS5zbCk7SlAoYSk7aWYoTSg1NzUpKXtpZihhLmlzQWJvcnRlZCl7aWYoIVEoYSxILkouU28pKWEuTS5vbkZhaWx1cmUoKTsKdGIoKTtyZXR1cm59aWYoUShhLEguSi5KYSkpe2EuTS5vbkZhaWx1cmUoKTt0YigpO3JldHVybn19ZWxzZSBpZihRKGEsSC5KLkphKXx8YS5pc0Fib3J0ZWQpe2EuTS5vbkZhaWx1cmUoKTt0YigpO3JldHVybn10aGlzLkFvKGlSKGEsdGhpcy5jbGllbnRJZCkpO3RoaXMuamE9ITA7dGhpcy5IdChhKTtKUihhKTtWUShmdW5jdGlvbihmKXtiLk1uKGYpfSxhKTt0aGlzLksucWsoKTtMUihhKTtnTihhKTtXTChhKTtZTShhKTtpZihhLmlzQWJvcnRlZCl7YS5NLm9uRmFpbHVyZSgpO3RiKCk7cmV0dXJufXRoaXMuTW4oYSk7YS5NLm9uU3VjY2VzcygpfWNhdGNoKGYpe2EuTS5vbkZhaWx1cmUoKX10YigpfTtrLk1uPWZ1bmN0aW9uKGEpe3RoaXMuZmEuYWRkKGEpfTtrLkFvPWZ1bmN0aW9uKGEpe3ZhciBiPWEuY2xpZW50SWQsYz1hLnpiO2ImJmMmJih0aGlzLmNsaWVudElkPWIsdGhpcy56Yj1jKX07ay5mbHVzaD1mdW5jdGlvbigpe3RoaXMuZmEuZmx1c2goKX07ay5IdD1mdW5jdGlvbihhKXt2YXIgYj0KdGhpcztpZighdGhpcy5SKXt2YXIgYz1YbyhGLkQubWEpLGQ9WG8oRi5ELnJhKTskbyhbRi5ELm1hLEYuRC5yYSxGLkQua2FdLGZ1bmN0aW9uKGUpe3ZhciBmO2Y9KGU9PT12b2lkIDA/e306ZSkuY29uc2VudEV2ZW50SWQ7dmFyIGc9WG8oRi5ELm1hKSxoPVhvKEYuRC5yYSksbD0hMSxuPXt9LHA9e307aWYoZCE9PWgmJmIuSCYmYi56YiYmYi5jbGllbnRJZCl7dmFyIHE9Yi5jbGllbnRJZCxyO3ZhciB0PUxQKGIuemIpO3I9dD90Lmg6dm9pZCAwO2lmKGgpe3ZhciB1PUZQKGIuSCk7aWYodSl7Yi5jbGllbnRJZD11O3ZhciB2PVNQKGIuSCk7diYmKGIuemI9UFAodixiLnpiLGIuSCkpfWVsc2UgRFAoYi5jbGllbnRJZCxiLkgpLEFQKGIuY2xpZW50SWQsITApO1JQKGIuemIsYi5IKTtsPSEwO25bRi5ELk5sXT1xO3ImJihuW0YuRC5icV09cil9ZWxzZSBiLnpiPXZvaWQgMCxiLmNsaWVudElkPXZvaWQgMCxBLmdhR2xvYmFsPXt9fWcmJiFjJiYobD0hMCxwW0guSi5HaF09ITAsbltGLkQueGldPQpMb1tGLkQubWFdKTtpZihsKXt2YXIgeD1zQyhiLnlhLEYuRC55ZixuKTttRCh4LGYhPW51bGw/ZjphLk0uZXZlbnRJZCx7ZXZlbnRNZXRhZGF0YTpwfSl9ZD1oO2M9ZztiLlouVGo9ITB9KTt0aGlzLlI9ITB9fTtrLkxxPWZ1bmN0aW9uKGEpe2EuZXZlbnROYW1lIT09Ri5ELkpiJiZ0aGlzLksuS3EoYSl9O3ZhciBnUz1mdW5jdGlvbihhKXtpZighZlMoYSkpe3ZhciBiPSExLGM9ZnVuY3Rpb24oKXshYiYmZlMoYSkmJihiPSEwLGFkKEIsInZpc2liaWxpdHljaGFuZ2UiLGMpLGFkKEIsInByZXJlbmRlcmluZ2NoYW5nZSIsYyksUCg1NSkpfTskYyhCLCJ2aXNpYmlsaXR5Y2hhbmdlIixjKTskYyhCLCJwcmVyZW5kZXJpbmdjaGFuZ2UiLGMpO1AoNTQpfX0sZlM9ZnVuY3Rpb24oYSl7aWYoInByZXJlbmRlcmluZyJpbiBCP0IucHJlcmVuZGVyaW5nOkIudmlzaWJpbGl0eVN0YXRlPT09InByZXJlbmRlciIpcmV0dXJuITE7YSgpO3JldHVybiEwfTtmdW5jdGlvbiBoUyhhKXtnUyhmdW5jdGlvbigpe3ZhciBiPWJDKGEpO2lmKGIpe3ZhciBjPWlTKGIpLGQ9Y28uaWEueGQsZT1ZQygpLGY9YkMoYSwhMCk7ZiYmZS5ILnJlZ2lzdGVyKGYsYyxkLHZvaWQgMCl9fSk7fWZ1bmN0aW9uIGlTKGEpe3ZhciBiPWZ1bmN0aW9uKCl7fTt2YXIgYz1uZXcgZVMoYS5pZCksZD1hLnByZWZpeD09PSJNQyI7Yj1mdW5jdGlvbihlLGYsZyxoKXtkJiYoaC5ldmVudE1ldGFkYXRhW0guSi5iZV09ITApO2MuWnMoZixnLGgpfTtqUyhhLGMpO3JldHVybiBifQpmdW5jdGlvbiBqUyhhLGIpe3ZhciBjPWIuSztjLmh0KGZ1bmN0aW9uKCl7WmsoOSwhMCk7WUMoKS5mbHVzaCgpO2lmKGMuWWgoKT49MUUzJiZrZCgpKXt2YXIgZD17fSxlPXtldmVudElkOnJqKCksZXZlbnRNZXRhZGF0YTooZFtILkouS2tdPSEwLGQpLGRlZmVycmFibGU6ITB9O1pDKEYuRC55Zix7fSxhLmlkLGUpfWIuZmx1c2goKTtjLkNvKGZ1bmN0aW9uKCl7WmsoOSwhMSk7Yy5DbygpfSl9KTt9dmFyIGtTPUouVS5xbCxsUz1KLlUucmw7ZnVuY3Rpb24gbVMoYSxiKXt2YXIgYz10aygpO2MmJmMuaW5kZXhPZihiKT4tMSYmKGFbSC5KLkNjXT0hMCl9dmFyIG5TPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKylhLmhhc093blByb3BlcnR5KGJbZF0pJiYoYVtTdHJpbmcoYltkXSldPWMoYVtTdHJpbmcoYltkXSldKSl9O2Z1bmN0aW9uIG9TKGEsYixjKXt2YXIgZD10aGlzO31vUy5QPSJpbnRlcm5hbC5ndGFnQ29uZmlnIjtmdW5jdGlvbiBwUyhhLGIsYyxkKXt2YXIgZT10aGlzO31wUy5QPSJpbnRlcm5hbC5ndGFnRGVzdGluYXRpb25Db25maWciOwpmdW5jdGlvbiByUyhhLGIpe30KclMucHVibGljTmFtZT0iZ3RhZ1NldCI7ZnVuY3Rpb24gc1MoKXt2YXIgYT17fTthPXtOT19JRlJBTUlORzowLFNBTUVfRE9NQUlOX0lGUkFNSU5HOjEsQ1JPU1NfRE9NQUlOX0lGUkFNSU5HOjJ9O3JldHVybiBhfTtmdW5jdGlvbiB0UyhhKXtpZighZWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCJdLGFyZ3VtZW50cyk7dmFyIGI9VGQoYSx0aGlzLlQsMSkucmIoKTtuTChiKTt9dFMuUD0iaW50ZXJuYWwuaW5pdGlhbGl6ZVNlcnZpY2VXb3JrZXIiO2Z1bmN0aW9uIHVTKGEsYil7fXVTLnB1YmxpY05hbWU9ImluamVjdEhpZGRlbklmcmFtZSI7ZnVuY3Rpb24gdlMoYSxiLGMsZCxlKXt9dlMuUD0iaW50ZXJuYWwuaW5qZWN0SHRtbCI7dmFyIEFTPXtkbDoxLGlkOjF9OwpmdW5jdGlvbiBCUyhhLGIsYyxkKXt9QlMucHVibGljTmFtZT0iaW5qZWN0U2NyaXB0IjtmdW5jdGlvbiBDUygpe3ZhciBhPXZtLGI9ITE7Yj0hIWEuSFsiNSJdO3JldHVybiBifUNTLlA9ImludGVybmFsLmlzQXV0b1BpaUVsaWdpYmxlIjtmdW5jdGlvbiBEUyhhKXt2YXIgYj0hMDtpZighbGgoYSkmJiFqaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiQXJyYXkiXSxhcmd1bWVudHMpO3ZhciBjPVRkKGEpO2lmKHpiKGMpKUwodGhpcywiYWNjZXNzX2NvbnNlbnQiLGMsInJlYWQiKTtlbHNlIGZvcih2YXIgZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKUwodGhpcywiYWNjZXNzX2NvbnNlbnQiLGUudmFsdWUsInJlYWQiKTtiPVhvKGMpO3JldHVybiBifURTLnB1YmxpY05hbWU9ImlzQ29uc2VudEdyYW50ZWQiO2Z1bmN0aW9uIEVTKGEpe3ZhciBiPSExO2lmKCFlaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0Il0sYXJndW1lbnRzKTt2YXIgYz1UZChhLHRoaXMuVCwxKS5yYigpO2I9ISFPKGMuTSxGLkQuRWwpO3JldHVybiBifUVTLlA9ImludGVybmFsLmlzRGVidWdNb2RlIjtmdW5jdGlvbiBGUyhhKXt2YXIgYj0hMTtyZXR1cm4gYn1GUy5QPSJpbnRlcm5hbC5pc0Rlc3RpbmF0aW9uSW5pdGlhbGl6ZWQiO2Z1bmN0aW9uIEdTKCl7cmV0dXJuIEJtKCl9R1MuUD0iaW50ZXJuYWwuaXNEbWFSZWdpb24iO2Z1bmN0aW9uIEhTKCl7cmV0dXJuIFVCKCl9SFMuUD0iaW50ZXJuYWwuaXNEb21SZWFkeSI7ZnVuY3Rpb24gSVMoYSl7dmFyIGI9ITE7cmV0dXJuIGJ9SVMuUD0iaW50ZXJuYWwuaXNFbnRpdHlJbmZyYXN0cnVjdHVyZSI7ZnVuY3Rpb24gSlMoYSl7dmFyIGI9ITE7aWYoIXFoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJudW1iZXIiXSxbYV0pO2I9TShhKTtyZXR1cm4gYn1KUy5QPSJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIjtmdW5jdGlvbiBLUygpe3ZhciBhPSExO2E9SWYoNDcpO3JldHVybiBhfUtTLlA9ImludGVybmFsLmlzRnBmZSI7ZnVuY3Rpb24gTFMoKXt2YXIgYT0hMTthPU9jKCl8fFFjKCk7cmV0dXJuIGF9TFMuUD0iaW50ZXJuYWwuaXNHY3BCcm93c2VyIjtmdW5jdGlvbiBNUygpe3ZhciBhPSExO3JldHVybiBhfU1TLlA9ImludGVybmFsLmlzTGFuZGluZ1BhZ2UiO2Z1bmN0aW9uIE5TKCl7dmFyIGE9ITE7cmV0dXJuIGF9TlMuUD0iaW50ZXJuYWwuaXNPZ3QiO2Z1bmN0aW9uIE9TKCl7dmFyIGE7YT1BLl9ndG1wY209PT0hMD8hMDpyTCgpO3JldHVybiBhfU9TLlA9ImludGVybmFsLmlzU2FmYXJpUGNtRWxpZ2libGVCcm93c2VyIjtmdW5jdGlvbiBQUygpe3ZhciBhPVFoKGZ1bmN0aW9uKGIpe1hGKHRoaXMpLmxvZygiZXJyb3IiLGIpfSk7YS5wdWJsaWNOYW1lPSJKU09OIjtyZXR1cm4gYX07ZnVuY3Rpb24gUVMoYSl7dmFyIGI9dm9pZCAwO3JldHVybiBVZChiKX1RUy5QPSJpbnRlcm5hbC5sZWdhY3lQYXJzZVVybCI7ZnVuY3Rpb24gUlMoKXtyZXR1cm4hMX0KdmFyIFNTPXtnZXRJdGVtOmZ1bmN0aW9uKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9LHNldEl0ZW06ZnVuY3Rpb24oYSxiKXtyZXR1cm4hMX0scmVtb3ZlSXRlbTpmdW5jdGlvbihhKXt9fTtmdW5jdGlvbiBUUygpe31UUy5wdWJsaWNOYW1lPSJsb2dUb0NvbnNvbGUiO2Z1bmN0aW9uIFVTKGEsYil7aWYoIWxoKGEpfHwhZWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIk9iamVjdCJdLGFyZ3VtZW50cyk7dmFyIGM9YSxkPVRkKGIsdGhpcy5UKSxlPVlDKCksZj1iQyhjLCEwKTtmJiZUQyhlLkgsZixkKTt9VVMuUD0iaW50ZXJuYWwubWVyZ2VSZW1vdGVDb25maWciO2Z1bmN0aW9uIFZTKGEsYixjKXtjPWM9PT12b2lkIDA/ITA6Yzt2YXIgZD1bXTtyZXR1cm4gVWQoZCl9VlMuUD0iaW50ZXJuYWwucGFyc2VDb29raWVWYWx1ZXNGcm9tU3RyaW5nIjtmdW5jdGlvbiBXUyhhKXt2YXIgYj12b2lkIDA7aWYodHlwZW9mIGEhPT0ic3RyaW5nIilyZXR1cm47YSYmU2IoYSwiLy8iKSYmKGE9Qi5sb2NhdGlvbi5wcm90b2NvbCthKTtpZih0eXBlb2YgVVJMPT09ImZ1bmN0aW9uIil7dmFyIGM7YTp7dmFyIGQ7dHJ5e2Q9bmV3IFVSTChhKX1jYXRjaCh4KXtjPXZvaWQgMDticmVhayBhfWZvcih2YXIgZT17fSxmPUFycmF5LmZyb20oZC5zZWFyY2hQYXJhbXMpLGc9MDtnPGYubGVuZ3RoO2crKyl7dmFyIGg9ZltnXVswXSxsPWZbZ11bMV07ZS5oYXNPd25Qcm9wZXJ0eShoKT90eXBlb2YgZVtoXT09PSJzdHJpbmciP2VbaF09W2VbaF0sbF06ZVtoXS5wdXNoKGwpOmVbaF09bH1jPXtocmVmOmQuaHJlZixvcmlnaW46ZC5vcmlnaW4scHJvdG9jb2w6ZC5wcm90b2NvbCx1c2VybmFtZTpkLnVzZXJuYW1lLHBhc3N3b3JkOmQucGFzc3dvcmQsaG9zdDpkLmhvc3QsaG9zdG5hbWU6ZC5ob3N0bmFtZSwKcG9ydDpkLnBvcnQscGF0aG5hbWU6ZC5wYXRobmFtZSxzZWFyY2g6ZC5zZWFyY2gsc2VhcmNoUGFyYW1zOmUsaGFzaDpkLmhhc2h9fXJldHVybiBVZChjKX12YXIgbjt0cnl7bj1SaihhKX1jYXRjaCh4KXtyZXR1cm59aWYoIW4ucHJvdG9jb2x8fCFuLmhvc3QpcmV0dXJuO3ZhciBwPXt9O2lmKG4uc2VhcmNoKWZvcih2YXIgcT1uLnNlYXJjaC5yZXBsYWNlKCI/IiwiIikuc3BsaXQoIiYiKSxyPTA7cjxxLmxlbmd0aDtyKyspe3ZhciB0PXFbcl0uc3BsaXQoIj0iKSx1PXRbMF0sdj1Laih0LnNwbGljZSgxKS5qb2luKCI9IikpfHwiIjt2PXYucmVwbGFjZSgvXCsvZywiICIpO3AuaGFzT3duUHJvcGVydHkodSk/dHlwZW9mIHBbdV09PT0ic3RyaW5nIj9wW3VdPVtwW3VdLHZdOnBbdV0ucHVzaCh2KTpwW3VdPXZ9bi5zZWFyY2hQYXJhbXM9cDtuLm9yaWdpbj1uLnByb3RvY29sKyIvLyIrbi5ob3N0O24udXNlcm5hbWU9IiI7bi5wYXNzd29yZD0iIjtiPVVkKG4pOwpyZXR1cm4gYn1XUy5wdWJsaWNOYW1lPSJwYXJzZVVybCI7ZnVuY3Rpb24gWFMoYSl7aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBiPVRkKGEsdGhpcy5ULDEpLnJiKCksYz17fTtFZChiLk0uRWEsYyk7YkkoYixjKTt2YXIgZD17fTtjSShiLGQpO2RbSC5KLkJuXT0hMDt2YXIgZT17ZXZlbnRNZXRhZGF0YTpkfSxmPWIuTS5ldmVudElkLGc9c0MoYi50YXJnZXQuZGVzdGluYXRpb25JZCxiLmV2ZW50TmFtZSxjKTttRChnLGYsZSk7fVhTLlA9ImludGVybmFsLnByb2Nlc3NBc05ld0V2ZW50IjtmdW5jdGlvbiBZUyhhLGIsYyl7dmFyIGQ7cmV0dXJuIGR9WVMuUD0iaW50ZXJuYWwucHVzaFRvRGF0YUxheWVyIjtmdW5jdGlvbiBaUyhhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyksYz0hMTtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7Zm9yKHZhciBkPVt0aGlzLGFdLGU9bShiKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSlkLnB1c2goVGQoZi52YWx1ZSx0aGlzLlQsMSkpO3RyeXtMLmFwcGx5KG51bGwsZCksYz0hMH1jYXRjaChnKXtyZXR1cm4hMX1yZXR1cm4gY31aUy5wdWJsaWNOYW1lPSJxdWVyeVBlcm1pc3Npb24iO2Z1bmN0aW9uICRTKGEpe3ZhciBiPXRoaXM7aWYoIWhoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJmdW5jdGlvbiJdLGFyZ3VtZW50cyk7aW8obG8oY28uaWEuY2IpLGZ1bmN0aW9uKCl7YS5pbnZva2UoYi5UKX0pO30kUy5QPSJpbnRlcm5hbC5xdWV1ZUFkc1RyYW5zbWlzc2lvbiI7ZnVuY3Rpb24gYVQoYSl7dmFyIGI9dm9pZCAwO3JldHVybiBifWFULnB1YmxpY05hbWU9InJlYWRBbmFseXRpY3NTdG9yYWdlIjtmdW5jdGlvbiBiVCgpe3ZhciBhPSIiO3JldHVybiBhfWJULnB1YmxpY05hbWU9InJlYWRDaGFyYWN0ZXJTZXQiO2Z1bmN0aW9uIGNUKCl7cmV0dXJuIEUoMTkpfWNULlA9ImludGVybmFsLnJlYWREYXRhTGF5ZXJOYW1lIjtmdW5jdGlvbiBkVCgpe3ZhciBhPSIiO0wodGhpcywicmVhZF90aXRsZSIpLGE9Qi50aXRsZXx8IiI7cmV0dXJuIGF9ZFQucHVibGljTmFtZT0icmVhZFRpdGxlIjtmdW5jdGlvbiBlVChhLGIpe3ZhciBjPXRoaXM7aWYoIWxoKGEpfHwhaGgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsImZ1bmN0aW9uIl0sYXJndW1lbnRzKTtMTShhLGZ1bmN0aW9uKGQpe2IuaW52b2tlKGMuVCxVZChkLGMuVCwxKSl9KTt9ZVQuUD0iaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayI7ZnVuY3Rpb24gZlQoYSxiKXtpZighbGgoYSl8fCFlaChiKSYmIWdoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJPYmplY3R8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtpZihCaChYRih0aGlzKS5QYigpKSlyZXR1cm4hMTt2YXIgYyxkLGU9YkMoYSwhMCk7aWYoIWUpcmV0dXJuITE7c3dpdGNoKGUucHJlZml4KXtjYXNlICJBVyI6Yz10TjtkPWNvLmlhLmNiO2JyZWFrO2Nhc2UgIkRDIjpjPUlOO2Q9Y28uaWEuY2I7YnJlYWs7Y2FzZSAiR0YiOmM9Tk47ZD1jby5pYS5nZDticmVhaztjYXNlICJIQSI6Yz1QTjtkPWNvLmlhLmdkO2JyZWFrO2Nhc2UgIlVBIjpjPWZPO2Q9Y28uaWEuZ2Q7YnJlYWs7Y2FzZSAiTUMiOmM9aVMoZSk7ZD1jby5pYS54ZDticmVhaztjYXNlICJHIjpyZXR1cm4gaFMoYSksITA7ZGVmYXVsdDpyZXR1cm4hMX12YXIgZj1hLApnPWMsaD1kLGw9VGQoYix0aGlzLlQsMSksbj1ZQygpLHA9YkMoZiwhMCk7cCYmbi5ILnJlZ2lzdGVyKHAsZyxoLGwpO3JldHVybiEwfWZULlA9ImludGVybmFsLnJlZ2lzdGVyRGVzdGluYXRpb24iO3ZhciBnVD1bImV2ZW50Il07ZnVuY3Rpb24gaFQoYSxiLGMpe31oVC5QPSJpbnRlcm5hbC5yZWdpc3Rlckd0YWdDb21tYW5kTGlzdGVuZXIiO2Z1bmN0aW9uIGlUKGEsYil7dmFyIGM9ITE7cmV0dXJuIGN9aVQuUD0iaW50ZXJuYWwucmVtb3ZlRGF0YUxheWVyRXZlbnRMaXN0ZW5lciI7ZnVuY3Rpb24galQoYSxiKXt9CmpULlA9ImludGVybmFsLnJlbW92ZUZvcm1EYXRhIjtmdW5jdGlvbiBrVCgpe31rVC5wdWJsaWNOYW1lPSJyZXNldERhdGFMYXllciI7ZnVuY3Rpb24gbFQoYSxiLGMpe3ZhciBkPXZvaWQgMDtpZighbGgoYSl8fCFqaChiKXx8IWxoKGMpJiYhZ2goYykpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIkFycmF5Iiwic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGU9VGQoYik7ZD1TaihhLGUsYyk7cmV0dXJuIGR9bFQuUD0iaW50ZXJuYWwuc2NydWJVcmxQYXJhbXMiO2Z1bmN0aW9uIG1UKGEpe2lmKCFlaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0Il0sYXJndW1lbnRzKTt2YXIgYj1UZChhLHRoaXMuVCwxKS5yYigpO0l6KGIpO31tVC5QPSJpbnRlcm5hbC5zZW5kQWRzSGl0IjtmdW5jdGlvbiBuVChhLGIsYyxkKXtpZihhcmd1bWVudHMubGVuZ3RoPDJ8fCFmaChkKXx8IWZoKGMpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJhbnkiLCJhbnkiLCJPYmplY3R8dW5kZWZpbmVkIiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGU9Yz9UZChjLHRoaXMuVCwxKTp7fSxmPVRkKGEpLGc9QXJyYXkuaXNBcnJheShmKT9mOltmXTtiPVN0cmluZyhiKTt2YXIgaD1kP1RkKGQpOnt9LGw9WEYodGhpcyk7aC5vcmlnaW5hdGluZ0VudGl0eT10RyhsKTtsLnByaW9yaXR5UXVldWUmJihoLnByaW9yaXR5UXVldWU9bC5wcmlvcml0eVF1ZXVlKTtmb3IodmFyIG49MDtuPGcubGVuZ3RoO24rKyl7dmFyIHA9Z1tuXTtpZih0eXBlb2YgcD09PSJzdHJpbmciKXt2YXIgcT17fTtFZChlLHEpO3ZhciByPXt9O0VkKGgscik7dmFyIHQ9c0MocCxiLHEpO21EKHQsCmguZXZlbnRJZHx8bC5ldmVudElkLHIpfX19blQuUD0iaW50ZXJuYWwuc2VuZEd0YWdFdmVudCI7ZnVuY3Rpb24gb1QoYSxiLGMpe31vVC5wdWJsaWNOYW1lPSJzZW5kUGl4ZWwiO2Z1bmN0aW9uIHBUKGEsYil7fXBULlA9ImludGVybmFsLnNldEFuY2hvckhyZWYiO2Z1bmN0aW9uIHFUKGEpe31xVC5QPSJpbnRlcm5hbC5zZXRDb250YWluZXJDb25zZW50RGVmYXVsdHMiO2Z1bmN0aW9uIHJUKGEsYixjLGQpe3ZhciBlPXRoaXM7ZD1kPT09dm9pZCAwPyEwOmQ7dmFyIGY9ITE7CnJldHVybiBmfXJULnB1YmxpY05hbWU9InNldENvb2tpZSI7ZnVuY3Rpb24gc1QoYSl7fXNULlA9ImludGVybmFsLnNldENvcmVQbGF0Zm9ybVNlcnZpY2VzIjtmdW5jdGlvbiB0VChhLGIpe310VC5QPSJpbnRlcm5hbC5zZXREYXRhTGF5ZXJWYWx1ZSI7ZnVuY3Rpb24gdVQoYSl7fXVULnB1YmxpY05hbWU9InNldERlZmF1bHRDb25zZW50U3RhdGUiO2Z1bmN0aW9uIHZUKGEsYil7fXZULlA9ImludGVybmFsLnNldERlbGVnYXRlZENvbnNlbnRUeXBlIjtmdW5jdGlvbiB3VChhLGIpe313VC5QPSJpbnRlcm5hbC5zZXRGb3JtQWN0aW9uIjtmdW5jdGlvbiB4VChhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7aWYoIWxoKGEpfHwhb2goYykpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsImFueSIsImJvb2xlYW58dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtpZigha20oYSkpdGhyb3cgRXJyb3IoInNldEluQ3Jvc3NDb250YWluZXJEYXRhIHJlcXVpcmVzIHZhbGlkIENyb3NzQ29udGFpbmVyU2NoZW1hIGtleS4iKTsoY3x8bm0oYSk9PT12b2lkIDApJiZtbShhLFRkKGIsdGhpcy5ULDEpKTt9eFQuUD0iaW50ZXJuYWwuc2V0SW5Dcm9zc0NvbnRhaW5lckRhdGEiO2Z1bmN0aW9uIHlUKGEsYixjKXtyZXR1cm4hMX15VC5wdWJsaWNOYW1lPSJzZXRJbldpbmRvdyI7ZnVuY3Rpb24gelQoYSxiLGMpe2lmKCFsaChhKXx8IWxoKGIpfHxhcmd1bWVudHMubGVuZ3RoIT09Myl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwic3RyaW5nIiwiYW55Il0sYXJndW1lbnRzKTt2YXIgZD0kSChhKXx8e307ZFtiXT1UZChjLHRoaXMuVCk7dmFyIGU9YSxmPVpIO2YuS3x8WUgoZik7Zi5zZXR0aW5nc1tlXT1kO316VC5QPSJpbnRlcm5hbC5zZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiO2Z1bmN0aW9uIEFUKGEsYixjKXtpZighbGgoYSl8fCFsaChiKXx8YXJndW1lbnRzLmxlbmd0aCE9PTMpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInN0cmluZyIsImFueSJdLGFyZ3VtZW50cyk7Zm9yKHZhciBkPWIuc3BsaXQoIi4iKSxlPWVEKGEpLGY9MDtmPGQubGVuZ3RoLTE7ZisrKXtpZihlW2RbZl1dPT09dm9pZCAwKWVbZFtmXV09e307ZWxzZSBpZighQ2QoZVtkW2ZdXSkpdGhyb3cgRXJyb3IoInNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciBmYWlsZWQsIHBhdGggY29udGFpbnMgYSBub24tb2JqZWN0IHR5cGU6ICIrZFtmXSk7ZT1lW2RbZl1dfWVbZFtmXV09VGQoYyx0aGlzLlQsMSk7fUFULlA9ImludGVybmFsLnNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciI7ZnVuY3Rpb24gQlQoYSxiKXt9CkJULlA9ImludGVybmFsLnNldFRyYW5zbWlzc2lvbk1vZGUiO2Z1bmN0aW9uIENUKGEsYixjLGQpe3ZhciBlPXRoaXM7fUNULnB1YmxpY05hbWU9InNoYTI1NiI7ZnVuY3Rpb24gRFQoYSxiLGMpe30KRFQuUD0iaW50ZXJuYWwuc29ydFJlbW90ZUNvbmZpZ1BhcmFtZXRlcnMiO2Z1bmN0aW9uIEVUKGEpe2lmKCFlaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0Il0sYXJndW1lbnRzKTt2YXIgYj1UZChhLHRoaXMuVCwxKS5yYigpO2N4KGIpO31FVC5QPSJpbnRlcm5hbC5zdG9yZUFkc0JyYWlkTGFiZWxzIjtmdW5jdGlvbiBGVChhLGIpe3ZhciBjPXZvaWQgMDtyZXR1cm4gY31GVC5QPSJpbnRlcm5hbC5zdWJzY3JpYmVUb0Nyb3NzQ29udGFpbmVyRGF0YSI7ZnVuY3Rpb24gR1QoYSl7aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBiPVRkKGEsdGhpcy5ULDEpLnJiKCk7cEwoYik7fUdULlA9ImludGVybmFsLnRhc2tTZW5kQWRzSGl0cyI7dmFyIEhUPXtnZXRJdGVtOmZ1bmN0aW9uKGEpe3ZhciBiPW51bGw7TCh0aGlzLCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIpO3ZhciBjPVhGKHRoaXMpLlBiKCksZD1hbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtkW2NdJiYoYj1kW2NdLmhhc093blByb3BlcnR5KCJndG0uIithKT9kW2NdWyJndG0uIithXTpudWxsKTtyZXR1cm4gYn0sc2V0SXRlbTpmdW5jdGlvbihhLGIpe0wodGhpcywiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiKTt2YXIgYz1YRih0aGlzKS5QYigpLGQ9YWwoNyxmdW5jdGlvbigpe3JldHVybnt9fSk7ZFtjXT1kW2NdfHx7fTtkW2NdWyJndG0uIithXT1iO30sCnJlbW92ZUl0ZW06ZnVuY3Rpb24oYSl7TCh0aGlzLCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIpO3ZhciBiPVhGKHRoaXMpLlBiKCksYz1hbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtpZighY1tiXXx8IWNbYl0uaGFzT3duUHJvcGVydHkoImd0bS4iK2EpKXJldHVybjtkZWxldGUgY1tiXVsiZ3RtLiIrYV07fSxjbGVhcjpmdW5jdGlvbigpe0wodGhpcywiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiKTt2YXIgYT1YRih0aGlzKS5QYigpO2RlbGV0ZSBhbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KVthXTt9LApwdWJsaWNOYW1lOiJ0ZW1wbGF0ZVN0b3JhZ2UifTtmdW5jdGlvbiBJVChhLGIpe3ZhciBjPSExO2lmKCFraChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPcGFxdWVWYWx1ZSIsInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGQ9YS5nZXRWYWx1ZSgpO2lmKCEoZCBpbnN0YW5jZW9mIFJlZ0V4cCkpcmV0dXJuITE7Yz1kLnRlc3QoYik7cmV0dXJuIGN9SVQuUD0iaW50ZXJuYWwudGVzdFJlZ2V4IjtmdW5jdGlvbiBKVChhKXt2YXIgYjtyZXR1cm4gYn07ZnVuY3Rpb24gS1QoYSxiKXt9S1QuUD0iaW50ZXJuYWwudHJhY2tVc2FnZSI7ZnVuY3Rpb24gTFQoYSxiKXt2YXIgYztyZXR1cm4gY31MVC5QPSJpbnRlcm5hbC51bnN1YnNjcmliZUZyb21Dcm9zc0NvbnRhaW5lckRhdGEiO2Z1bmN0aW9uIE1UKGEpe31NVC5wdWJsaWNOYW1lPSJ1cGRhdGVDb25zZW50U3RhdGUiO2Z1bmN0aW9uIE5UKGEpe3ZhciBiPSExO2lmKGEmJiFlaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0Il0sYXJndW1lbnRzKTt2YXIgYz1UZChhLHRoaXMuVCwxKTtjJiYoYj1odyhjKSk7cmV0dXJuIGJ9TlQuUD0iaW50ZXJuYWwudXNlckRhdGFOZWVkc0VuY3J5cHRpb24iO3ZhciBPVD1mdW5jdGlvbigpe3RoaXMuSD1uZXcgYWl9LFFUPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGEpe3ZhciBiO3ZhciBjPVBULkg7aWYoYy5jb250YWlucyhhKSliPWMuZ2V0KGEsdGhpcyk7ZWxzZXt2YXIgZDtpZihkPWMuSC5oYXNPd25Qcm9wZXJ0eShhKSl7dmFyIGU9dGhpcy5ULnhiKCk7aWYoZSl7dmFyIGY9ITEsZz1lLlBiKCk7aWYoZyl7QmgoZyl8fChmPSEwKTt9ZD1mfWVsc2UgZD0hMH1pZihkKXt2YXIgaD1jLkguaGFzT3duUHJvcGVydHkoYSk/Yy5IW2FdOnZvaWQgMDtiPWh9ZWxzZSB0aHJvdyBFcnJvcihhKyIgaXMgbm90IGEgdmFsaWQgQVBJIG5hbWUuIik7fXJldHVybiBifX0sUFQ7ZnVuY3Rpb24gUlQoYSxiLGMpe1BUfHwoUFQ9bmV3IE9UKTtQVC5ILmFkZChhLGIsYyl9ZnVuY3Rpb24gU1QoYSxiKXtQVHx8KFBUPW5ldyBPVCk7dmFyIGM9UFQuSDtpZihjLkguaGFzT3duUHJvcGVydHkoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYWRkIGEgcHJpdmF0ZSBmdW5jdGlvbiB3aGljaCBhbHJlYWR5IGV4aXN0czogIithKyIuIik7aWYoYy5jb250YWlucyhhKSl0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhZGQgYSBwcml2YXRlIGZ1bmN0aW9uIHdpdGggYW4gZXhpc3RpbmcgQVBJIG5hbWU6ICIrYSsiLiIpO2MuSFthXT15YihiKT90aChhLGIpOnVoKGEsYil9O2Z1bmN0aW9uIFRUKGEsYil7ZnVuY3Rpb24gYyhkKXtpZighZWgoZCkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCJdLGFyZ3VtZW50cyk7dmFyIGU9VGQoZCx0aGlzLlQsMSkucmIoKTthKGUpfWMuUD0iaW50ZXJuYWwuIitiO3JldHVybiBjfTtmdW5jdGlvbiBVVCgpe3ZhciBhPWZ1bmN0aW9uKGMpe3JldHVybiB2b2lkIFNUKGMuUCxjKX0sYj1mdW5jdGlvbihjKXtyZXR1cm4gdm9pZCBSVChjLnB1YmxpY05hbWUsYyl9O2IoUkYpO2IoWUYpO2IoUkcpO2IoVEcpO2IoVUcpO2IoZEgpO2IoZkgpO2IoaEkpO2IoUFMoKSk7YihqSSk7YihPTyk7YihQTyk7YihsUCk7YihtUCk7YihuUCk7Yih1UCk7Yih2UCk7YihyUyk7Yih1Uyk7YihCUyk7YihEUyk7YihUUyk7YihXUyk7YihaUyk7YihhVCk7YihiVCk7YihkVCk7YihvVCk7YihyVCk7Yih1VCk7Yih5VCk7YihDVCk7YihIVCk7YihNVCk7UlQoIk1hdGgiLHpoKCkpO1JUKCJPYmplY3QiLFpoKTtSVCgiVGVzdEhlbHBlciIsY2koKSk7UlQoImFzc2VydEFwaSIsd2gpO1JUKCJhc3NlcnRUaGF0Iix4aCk7UlQoImRlY29kZVVyaSIsQ2gpO1JUKCJkZWNvZGVVcmlDb21wb25lbnQiLERoKTtSVCgiZW5jb2RlVXJpIixFaCk7UlQoImVuY29kZVVyaUNvbXBvbmVudCIsRmgpO1JUKCJmYWlsIiwKTGgpO1JUKCJnZW5lcmF0ZVJhbmRvbSIsTmgpO1JUKCJnZXRUaW1lc3RhbXAiLE9oKTtSVCgiZ2V0VGltZXN0YW1wTWlsbGlzIixPaCk7UlQoImdldFR5cGUiLFBoKTtSVCgibWFrZUludGVnZXIiLFJoKTtSVCgibWFrZU51bWJlciIsU2gpO1JUKCJtYWtlU3RyaW5nIixUaCk7UlQoIm1ha2VUYWJsZU1hcCIsVWgpO1JUKCJtb2NrIixYaCk7UlQoIm1vY2tPYmplY3QiLFloKTtSVCgiZnJvbUJhc2U2NCIsSE8sISgiYXRvYiJpbiBBKSk7UlQoImxvY2FsU3RvcmFnZSIsU1MsIVJTKCkpO1JUKCJ0b0Jhc2U2NCIsSlQsISgiYnRvYSJpbiBBKSk7YShRRik7YShVRik7YShuRyk7YShzRyk7YShJRyk7YShQRyk7YShTRyk7YShWRyk7YShXRyk7YShaRyk7YSgkRyk7YShhSCk7YShiSCk7YShjSCk7YShlSCk7YShnSCk7YShnSSk7YShpSSk7YShrSSk7YShsSSk7YShtSSk7YShuSSk7YShvSSk7YShmSik7YShtSik7YSh0Sik7YSh1Sik7YShBSik7YShGSik7YShLSik7YShSSik7YShXSik7YShnSyk7CmEoaUspO2EodkspO2Eod0spO2EoeEspO2EoRk8pO2EoR08pO2EoSU8pO2EoSk8pO2EoS08pO2EoTE8pO2EoTU8pO2EoTk8pO2EoUU8pO2EoUk8pO2EoU08pO2EoVE8pO2EoVU8pO2EoVk8pO2EoV08pO2EoWE8pO2EoWU8pO2EoWk8pO2EoJE8pO2EoYVApO2EoYlApO2EoY1ApO2EoZFApO2EoZVApO2EoZlApO2EoZ1ApO2EoaFApO2EoaVApO2EoalApO2Eoa1ApO2Eob1ApO2EocFApO2EocVApO2EoclApO2Eoc1ApO2EodFApO2Eod1ApO2Eob1MpO2EocFMpO2EodFMpO2EodlMpO2EoQ1MpO2EoRVMpO2EoRlMpO2EoR1MpO2EoSFMpO2EoSVMpO2EoSlMpO2EoS1MpO2EoTFMpO2EoTVMpO2EoTlMpO2EoT1MpO2EoUVMpO2EoR0cpO2EoVVMpO2EoVlMpO2EoWFMpO2EoWVMpO2EoJFMpO2EoY1QpO2EoZVQpO2EoZlQpO2EoaFQpO2EoaVQpO2EoalQpO2EobFQpO2EobVQpO2EoblQpO2EocFQpO2EocVQpO2Eoc1QpO2EodFQpO2EodlQpO2Eod1QpO2EoeFQpO2EoelQpO2EoQVQpO2EoQlQpO2EoRFQpOwphKEVUKTthKEZUKTthKEdUKTthKElUKTthKEtUKTthKExUKTthKE5UKTtTVCgiaW50ZXJuYWwuSWZyYW1pbmdTdGF0ZVNjaGVtYSIsc1MoKSk7U1QoImludGVybmFsLnF1aWNrSGFzaCIsTWgpO2EoVFQoTUYsInRhc2tTZXRBZHNUcmFuc21pc3Npb25UeXBlIikpLGEoVFQoUEYsInRhc2tTZXRVbml2ZXJzYWxQYXJhbXMiKSk7YShUVChMRiwidGFza0FkZEFkc0NsaWNrSWRzIikpO1BUfHwoUFQ9bmV3IE9UKTtyZXR1cm4gUVQoKX07dmFyIEpGO2Z1bmN0aW9uIFZUKCl7SkYuc2QoZnVuY3Rpb24oYSxiLGMpe2xqKCk7dmFyIGQ9amo7ZC5ILlNBTkRCT1hFRF9KU19TRU1BUEhPUkU9ZC5ILlNBTkRCT1hFRF9KU19TRU1BUEhPUkV8fDA7ZC5ILlNBTkRCT1hFRF9KU19TRU1BUEhPUkUrKzt0cnl7cmV0dXJuIGEuYXBwbHkoYixjKX1maW5hbGx5e2xqKCksamouSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFLS19fSl9ZnVuY3Rpb24gV1QoYSl7aWYoYSYmYS5sZW5ndGgpZm9yKHZhciBiPWFsKDI3LGZ1bmN0aW9uKCl7cmV0dXJue319KSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10ucmVwbGFjZSgvXl8qLywiIik7YltkXT1bInNhbmRib3hlZFNjcmlwdHMiXX19CmZ1bmN0aW9uIFhUKGEpe2lmKGEpe3ZhciBiPWFsKDI3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtHYihhLGZ1bmN0aW9uKGMsZCl7Zm9yKHZhciBlPTA7ZTxkLmxlbmd0aDtlKyspe3ZhciBmPWRbZV0ucmVwbGFjZSgvXl8qLywiIik7YltmXT1iW2ZdfHxbXTtiW2ZdLnB1c2goYyl9fSl9fTtmdW5jdGlvbiBaVChhKXttRChwQygiZGV2ZWxvcGVyX2lkLiIrYSwhMCksMCx7fSl9O2Z1bmN0aW9uICRUKGEsYil7cmV0dXJuIEVkKGEsYnx8bnVsbCl9ZnVuY3Rpb24gWShhKXtyZXR1cm4gd2luZG93LmVuY29kZVVSSUNvbXBvbmVudChhKX1mdW5jdGlvbiBhVShhKXtaYyhhLHZvaWQgMCx2b2lkIDApfWZ1bmN0aW9uIGJVKGEpe3ZhciBiPVsidmVpbnRlcmFjdGl2ZS5jb20iLCJ2ZS1pbnRlcmFjdGl2ZS5jbiJdO2lmKCFhKXJldHVybiExO3ZhciBjPUxqKFJqKGEpLCJob3N0Iik7aWYoIWMpcmV0dXJuITE7Zm9yKHZhciBkPTA7YiYmZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF0mJmJbZF0udG9Mb3dlckNhc2UoKTtpZihlKXt2YXIgZj1jLmxlbmd0aC1lLmxlbmd0aDtmPjAmJmUuY2hhckF0KDApIT09Ii4iJiYoZi0tLGU9Ii4iK2UpO2lmKGY+PTAmJmMuaW5kZXhPZihlLGYpPT09ZilyZXR1cm4hMH19cmV0dXJuITF9CmZ1bmN0aW9uIGNVKGEsYixjKXtmb3IodmFyIGQ9e30sZT0hMSxmPTA7YSYmZjxhLmxlbmd0aDtmKyspYVtmXSYmYVtmXS5oYXNPd25Qcm9wZXJ0eShiKSYmYVtmXS5oYXNPd25Qcm9wZXJ0eShjKSYmKGRbYVtmXVtiXV09YVtmXVtjXSxlPSEwKTtyZXR1cm4gZT9kOm51bGx9ZnVuY3Rpb24gZFUoYSxiKXt2YXIgYz17fTtpZihhKWZvcih2YXIgZCBpbiBhKWEuaGFzT3duUHJvcGVydHkoZCkmJihjW2RdPWFbZF0pO2lmKGIpe3ZhciBlPWNVKGIsInBhcmFtZXRlciIsInBhcmFtZXRlclZhbHVlIik7ZSYmKGM9JFQoZSxjKSl9cmV0dXJuIGN9ZnVuY3Rpb24gZVUoYSxiLGMpe3JldHVybiBhPT09dm9pZCAwfHxhPT09Yz9iOmF9ZnVuY3Rpb24gZlUoYSxiLGMpe3JldHVybiBVYyhhLGIsYyx2b2lkIDApfWZ1bmN0aW9uIGdVKGEsYil7QVthXT1ifWZ1bmN0aW9uIGhVKGEsYixjKXt2YXIgZD1BO2ImJihkW2FdPT09dm9pZCAwfHxjJiYhZFthXSkmJihkW2FdPWIpO3JldHVybiBkW2FdfXZhciBpVT17fSxqVT1YLlY7dmFyIFo9e3NlY3VyaXR5R3JvdXBzOnt9fTsKClouc2VjdXJpdHlHcm91cHMuYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2U9WyJnb29nbGUiXSxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2U9ZnVuY3Rpb24oKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKCl7fSxhYTpmdW5jdGlvbigpe3JldHVybnt9fX19LFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZS5PPSJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlLmlzVmVuZG9yVGVtcGxhdGU9ITAsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlLnByaW9yaXR5T3ZlcnJpZGU9MCxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UuaXNJbmZyYXN0cnVjdHVyZT0hMSxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2VbIjUiXT0hMSxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2VbIjYiXT0hMTsKClouc2VjdXJpdHlHcm91cHMuYWNjZXNzX2dsb2JhbHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3ZhciBlPXtrZXk6ZCxyZWFkOiExLHdyaXRlOiExLGV4ZWN1dGU6ITF9O3N3aXRjaChjKXtjYXNlICJyZWFkIjplLnJlYWQ9ITA7YnJlYWs7Y2FzZSAid3JpdGUiOmUud3JpdGU9ITA7YnJlYWs7Y2FzZSAicmVhZHdyaXRlIjplLnJlYWQ9ZS53cml0ZT0hMDticmVhaztjYXNlICJleGVjdXRlIjplLmV4ZWN1dGU9ITA7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigiSW52YWxpZCAiK2IrIiByZXF1ZXN0ICIrYyk7fXJldHVybiBlfShmdW5jdGlvbihiKXtaLl9fYWNjZXNzX2dsb2JhbHM9YjtaLl9fYWNjZXNzX2dsb2JhbHMuTz0iYWNjZXNzX2dsb2JhbHMiO1ouX19hY2Nlc3NfZ2xvYmFscy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19hY2Nlc3NfZ2xvYmFscy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2FjY2Vzc19nbG9iYWxzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7ClouX19hY2Nlc3NfZ2xvYmFsc1siNSJdPSExO1ouX19hY2Nlc3NfZ2xvYmFsc1siNiJdPSExfSkoZnVuY3Rpb24oYil7Zm9yKHZhciBjPWIudnRwX2tleXN8fFtdLGQ9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yLGU9W10sZj1bXSxnPVtdLGg9MDtoPGMubGVuZ3RoO2grKyl7dmFyIGw9Y1toXSxuPWwua2V5O2wucmVhZCYmZS5wdXNoKG4pO2wud3JpdGUmJmYucHVzaChuKTtsLmV4ZWN1dGUmJmcucHVzaChuKX1yZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKHAscSxyKXtpZighemIocikpdGhyb3cgZChwLHt9LCJLZXkgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihxPT09InJlYWQiKXtpZihlLmluZGV4T2Yocik+LTEpcmV0dXJufWVsc2UgaWYocT09PSJ3cml0ZSIpe2lmKGYuaW5kZXhPZihyKT4tMSlyZXR1cm59ZWxzZSBpZihxPT09InJlYWR3cml0ZSIpe2lmKGYuaW5kZXhPZihyKT4tMSYmZS5pbmRleE9mKHIpPi0xKXJldHVybn1lbHNlIGlmKHE9PT0iZXhlY3V0ZSIpe2lmKGcuaW5kZXhPZihyKT4KLTEpcmV0dXJufWVsc2UgdGhyb3cgZChwLHt9LCJPcGVyYXRpb24gbXVzdCBiZSBlaXRoZXIgJ3JlYWQnLCAnd3JpdGUnLCBvciAnZXhlY3V0ZScsIHdhcyAiK3EpO3Rocm93IGQocCx7fSwiUHJvaGliaXRlZCAiK3ErIiBvbiBnbG9iYWwgdmFyaWFibGU6ICIrcisiLiIpO30sYWE6YX19KX0oKTsKCgpaLnNlY3VyaXR5R3JvdXBzLmdldF9yZWZlcnJlcj1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMsZCl7cmV0dXJue2NvbXBvbmVudDpjLHF1ZXJ5S2V5OmR9fShmdW5jdGlvbihiKXtaLl9fZ2V0X3JlZmVycmVyPWI7Wi5fX2dldF9yZWZlcnJlci5PPSJnZXRfcmVmZXJyZXIiO1ouX19nZXRfcmVmZXJyZXIuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZ2V0X3JlZmVycmVyLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZ2V0X3JlZmVycmVyLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2dldF9yZWZlcnJlclsiNSJdPSExO1ouX19nZXRfcmVmZXJyZXJbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX3VybFBhcnRzPT09ImFueSI/bnVsbDpbXTtjJiYoYi52dHBfcHJvdG9jb2wmJmMucHVzaCgicHJvdG9jb2wiKSxiLnZ0cF9ob3N0JiZjLnB1c2goImhvc3QiKSxiLnZ0cF9wb3J0JiZjLnB1c2goInBvcnQiKSxiLnZ0cF9wYXRoJiZjLnB1c2goInBhdGgiKSxiLnZ0cF9leHRlbnNpb24mJgpjLnB1c2goImV4dGVuc2lvbiIpLGIudnRwX3F1ZXJ5JiZjLnB1c2goInF1ZXJ5IikpO3ZhciBkPWMmJmIudnRwX3F1ZXJpZXNBbGxvd2VkIT09ImFueSI/Yi52dHBfcXVlcnlLZXlzfHxbXTpudWxsLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZixnLGgpe2lmKGcpe2lmKCF6YihnKSl0aHJvdyBlKGYse30sIlVSTCBjb21wb25lbnQgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihjJiZjLmluZGV4T2YoZyk8MCl0aHJvdyBlKGYse30sIlByb2hpYml0ZWQgVVJMIGNvbXBvbmVudDogIitnKTtpZihnPT09InF1ZXJ5IiYmZCl7aWYoIWgpdGhyb3cgZShmLHt9LCJQcm9oaWJpdGVkIGZyb20gZ2V0dGluZyBlbnRpcmUgVVJMIHF1ZXJ5IHdoZW4gcXVlcnkga2V5cyBhcmUgc3BlY2lmaWVkLiIpO2lmKCF6YihoKSl0aHJvdyBlKGYse30sIlF1ZXJ5IGtleSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKGQuaW5kZXhPZihoKTwwKXRocm93IGUoZix7fSwKIlByb2hpYml0ZWQgcXVlcnkga2V5OiAiK2gpO319ZWxzZSBpZihjKXRocm93IGUoZix7fSwiUHJvaGliaXRlZCBmcm9tIGdldHRpbmcgZW50aXJlIFVSTCB3aGVuIGNvbXBvbmVudHMgYXJlIHNwZWNpZmllZC4iKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMucmVhZF9ldmVudF9kYXRhPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue2tleTpjfX0oZnVuY3Rpb24oYil7Wi5fX3JlYWRfZXZlbnRfZGF0YT1iO1ouX19yZWFkX2V2ZW50X2RhdGEuTz0icmVhZF9ldmVudF9kYXRhIjtaLl9fcmVhZF9ldmVudF9kYXRhLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX3JlYWRfZXZlbnRfZGF0YS5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX3JlYWRfZXZlbnRfZGF0YS5pc0luZnJhc3RydWN0dXJlPSExO1ouX19yZWFkX2V2ZW50X2RhdGFbIjUiXT0hMTtaLl9fcmVhZF9ldmVudF9kYXRhWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9ldmVudERhdGFBY2Nlc3MsZD1iLnZ0cF9rZXlQYXR0ZXJuc3x8W10sZT1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihmLGcpe2lmKGchPW51bGwmJiF6YihnKSl0aHJvdyBlKGYse2tleTpnfSwiS2V5IG11c3QgYmUgYSBzdHJpbmcuIik7CmlmKGMhPT0iYW55Iil7dHJ5e2lmKGM9PT0ic3BlY2lmaWMiJiZnIT1udWxsJiZFZyhnLGQpKXJldHVybn1jYXRjaChoKXt0aHJvdyBlKGYse2tleTpnfSwiSW52YWxpZCBrZXkgZmlsdGVyLiIpO310aHJvdyBlKGYse2tleTpnfSwiUHJvaGliaXRlZCByZWFkIGZyb20gZXZlbnQgZGF0YS4iKTt9fSxhYTphfX0pfSgpOwoKWi5zZWN1cml0eUdyb3Vwcy5yZWFkX3RpdGxlPVsiZ29vZ2xlIl0sWi5fX3JlYWRfdGl0bGU9ZnVuY3Rpb24oKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKCl7fSxhYTpmdW5jdGlvbigpe3JldHVybnt9fX19LFouX19yZWFkX3RpdGxlLk89InJlYWRfdGl0bGUiLFouX19yZWFkX3RpdGxlLmlzVmVuZG9yVGVtcGxhdGU9ITAsWi5fX3JlYWRfdGl0bGUucHJpb3JpdHlPdmVycmlkZT0wLFouX19yZWFkX3RpdGxlLmlzSW5mcmFzdHJ1Y3R1cmU9ITEsWi5fX3JlYWRfdGl0bGVbIjUiXT0hMSxaLl9fcmVhZF90aXRsZVsiNiJdPSExOwpaLnNlY3VyaXR5R3JvdXBzLmRldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50cz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMpe3JldHVybntvcHRpb25zOntmaXhNaXNzaW5nQXBpOiEhYy5maXhNaXNzaW5nQXBpfX19KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHM9YjtaLl9fZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzLk89ImRldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50cyI7Wi5fX2RldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19kZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19kZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzWyI1Il09ITE7Wi5fX2RldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50c1siNiJdPQohMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPSEhYi52dHBfYWxsb3dGaXhNaXNzaW5nSmF2YVNjcmlwdEFwaSxkPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGUsZil7aWYoIWMmJmYmJmYuZml4TWlzc2luZ0FwaSl0aHJvdyBkKGUse30sIlByb2hpYml0ZWQgb3B0aW9uOiBmaXhNaXNzaW5nQXBpLiIpO30sYWE6YX19KX0oKTsKCgoKClouc2VjdXJpdHlHcm91cHMucmVhZF9zY3JlZW5fZGltZW5zaW9ucz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe3JldHVybnt9fShmdW5jdGlvbihiKXtaLl9fcmVhZF9zY3JlZW5fZGltZW5zaW9ucz1iO1ouX19yZWFkX3NjcmVlbl9kaW1lbnNpb25zLk89InJlYWRfc2NyZWVuX2RpbWVuc2lvbnMiO1ouX19yZWFkX3NjcmVlbl9kaW1lbnNpb25zLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX3JlYWRfc2NyZWVuX2RpbWVuc2lvbnMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19yZWFkX3NjcmVlbl9kaW1lbnNpb25zLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX3JlYWRfc2NyZWVuX2RpbWVuc2lvbnNbIjUiXT0hMTtaLl9fcmVhZF9zY3JlZW5fZGltZW5zaW9uc1siNiJdPSExfSkoZnVuY3Rpb24oKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKCl7fSxhYTphfX0pfSgpOwoKClouc2VjdXJpdHlHcm91cHMuZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe3JldHVybnt9fShmdW5jdGlvbihiKXtaLl9fZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cz1iO1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzLk89ImRldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMiO1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHNbIjUiXT0hMTtaLl9fZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50c1siNiJdPSExfSkoZnVuY3Rpb24oKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKCl7fSxhYTphfX0pfSgpOwoKClouc2VjdXJpdHlHcm91cHMuZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue29wdGlvbnM6Y319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfbGlua19jbGlja19ldmVudHM9YjtaLl9fZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzLk89ImRldGVjdF9saW5rX2NsaWNrX2V2ZW50cyI7Wi5fX2RldGVjdF9saW5rX2NsaWNrX2V2ZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19kZXRlY3RfbGlua19jbGlja19ldmVudHMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19kZXRlY3RfbGlua19jbGlja19ldmVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzWyI1Il09ITE7Wi5fX2RldGVjdF9saW5rX2NsaWNrX2V2ZW50c1siNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfYWxsb3dXYWl0Rm9yVGFncyxkPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGUsCmYpe2lmKCFjJiZmJiZmLndhaXRGb3JUYWdzKXRocm93IGQoZSx7fSwiUHJvaGliaXRlZCBvcHRpb24gd2FpdEZvclRhZ3MuIik7fSxhYTphfX0pfSgpOwpaLnNlY3VyaXR5R3JvdXBzLmRldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjKXtyZXR1cm57b3B0aW9uczpjfX0oZnVuY3Rpb24oYil7Wi5fX2RldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHM9YjtaLl9fZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50cy5PPSJkZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzIjtaLl9fZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19kZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50cy5pc0luZnJhc3RydWN0dXJlPSExO1ouX19kZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzWyI1Il09ITE7Wi5fX2RldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHNbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2FsbG93V2FpdEZvclRhZ3MsZD1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7CnJldHVybnthc3NlcnQ6ZnVuY3Rpb24oZSxmKXtpZighYyYmZiYmZi53YWl0Rm9yVGFncyl0aHJvdyBkKGUse30sIlByb2hpYml0ZWQgb3B0aW9uIHdhaXRGb3JUYWdzLiIpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5yZWFkX2NvbnRhaW5lcl9kYXRhPVsiZ29vZ2xlIl0sWi5fX3JlYWRfY29udGFpbmVyX2RhdGE9ZnVuY3Rpb24oKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKCl7fSxhYTpmdW5jdGlvbigpe3JldHVybnt9fX19LFouX19yZWFkX2NvbnRhaW5lcl9kYXRhLk89InJlYWRfY29udGFpbmVyX2RhdGEiLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhLmlzVmVuZG9yVGVtcGxhdGU9ITAsWi5fX3JlYWRfY29udGFpbmVyX2RhdGEucHJpb3JpdHlPdmVycmlkZT0wLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhLmlzSW5mcmFzdHJ1Y3R1cmU9ITEsWi5fX3JlYWRfY29udGFpbmVyX2RhdGFbIjUiXT0hMSxaLl9fcmVhZF9jb250YWluZXJfZGF0YVsiNiJdPSExOwpaLnNlY3VyaXR5R3JvdXBzLmxpc3Rlbl9kYXRhX2xheWVyPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue2V2ZW50TmFtZTpjfX0oZnVuY3Rpb24oYil7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyPWI7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyLk89Imxpc3Rlbl9kYXRhX2xheWVyIjtaLl9fbGlzdGVuX2RhdGFfbGF5ZXIuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fbGlzdGVuX2RhdGFfbGF5ZXIucHJpb3JpdHlPdmVycmlkZT0wO1ouX19saXN0ZW5fZGF0YV9sYXllci5pc0luZnJhc3RydWN0dXJlPSExO1ouX19saXN0ZW5fZGF0YV9sYXllclsiNSJdPSExO1ouX19saXN0ZW5fZGF0YV9sYXllclsiNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfYWNjZXNzVHlwZSxkPWIudnRwX2FsbG93ZWRFdmVudHN8fFtdLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZixnKXtpZighemIoZykpdGhyb3cgZShmLHtldmVudE5hbWU6Z30sCiJFdmVudCBuYW1lIG11c3QgYmUgYSBzdHJpbmcuIik7aWYoIShjPT09ImFueSJ8fGM9PT0ic3BlY2lmaWMiJiZkLmluZGV4T2YoZyk+PTApKXRocm93IGUoZix7ZXZlbnROYW1lOmd9LCJQcm9oaWJpdGVkIGxpc3RlbiBvbiBkYXRhIGxheWVyIGV2ZW50LiIpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue2RhdGFTb3VyY2U6Y319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhPWI7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEuTz0iZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YSI7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YS5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YVsiNSJdPSExO1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihkLAplKXtpZihlIT09ImF1dG8iJiZlIT09Im1hbnVhbCImJmUhPT0iY29kZSIpdGhyb3cgYyhkLHt9LCJVbmtub3duIHVzZXIgcHJvdmlkZWQgZGF0YSBzb3VyY2UuIik7aWYoYi52dHBfbGltaXREYXRhU291cmNlcylpZihlIT09ImF1dG8ifHxiLnZ0cF9hbGxvd0F1dG9EYXRhU291cmNlcyl7aWYoZT09PSJtYW51YWwiJiYhYi52dHBfYWxsb3dNYW51YWxEYXRhU291cmNlcyl0aHJvdyBjKGQse30sIkRldGVjdGlvbiBvZiB1c2VyIHByb3ZpZGVkIGRhdGEgdmlhIG1hbnVhbGx5IHNwZWNpZmllZCBDU1Mgc2VsZWN0b3JzIGlzIG5vdCBhbGxvd2VkLiIpO2lmKGU9PT0iY29kZSImJiFiLnZ0cF9hbGxvd0NvZGVEYXRhU291cmNlcyl0aHJvdyBjKGQse30sIkRldGVjdGlvbiBvZiB1c2VyIHByb3ZpZGVkIGRhdGEgZnJvbSBhbiBpbi1wYWdlIHZhcmlhYmxlIGlzIG5vdCBhbGxvd2VkLiIpO31lbHNlIHRocm93IGMoZCx7fSwiQXV0b21hdGljIGRldGVjdGlvbiBvZiB1c2VyIHByb3ZpZGVkIGRhdGEgaXMgbm90IGFsbG93ZWQuIik7Cn0sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5nZXRfdXJsPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXtyZXR1cm57Y29tcG9uZW50OmMscXVlcnlLZXk6ZH19KGZ1bmN0aW9uKGIpe1ouX19nZXRfdXJsPWI7Wi5fX2dldF91cmwuTz0iZ2V0X3VybCI7Wi5fX2dldF91cmwuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZ2V0X3VybC5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2dldF91cmwuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZ2V0X3VybFsiNSJdPSExO1ouX19nZXRfdXJsWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF91cmxQYXJ0cz09PSJhbnkiP251bGw6W107YyYmKGIudnRwX3Byb3RvY29sJiZjLnB1c2goInByb3RvY29sIiksYi52dHBfaG9zdCYmYy5wdXNoKCJob3N0IiksYi52dHBfcG9ydCYmYy5wdXNoKCJwb3J0IiksYi52dHBfcGF0aCYmYy5wdXNoKCJwYXRoIiksYi52dHBfZXh0ZW5zaW9uJiZjLnB1c2goImV4dGVuc2lvbiIpLGIudnRwX3F1ZXJ5JiYKYy5wdXNoKCJxdWVyeSIpLGIudnRwX2ZyYWdtZW50JiZjLnB1c2goImZyYWdtZW50IikpO3ZhciBkPWMmJmIudnRwX3F1ZXJpZXNBbGxvd2VkIT09ImFueSI/Yi52dHBfcXVlcnlLZXlzfHxbXTpudWxsLGU9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZixnLGgpe2lmKGcpe2lmKCF6YihnKSl0aHJvdyBlKGYse30sIlVSTCBjb21wb25lbnQgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihjJiZjLmluZGV4T2YoZyk8MCl0aHJvdyBlKGYse30sIlByb2hpYml0ZWQgVVJMIGNvbXBvbmVudDogIitnKTtpZihnPT09InF1ZXJ5IiYmZCl7aWYoIWgpdGhyb3cgZShmLHt9LCJQcm9oaWJpdGVkIGZyb20gZ2V0dGluZyBlbnRpcmUgVVJMIHF1ZXJ5IHdoZW4gcXVlcnkga2V5cyBhcmUgc3BlY2lmaWVkLiIpO2lmKCF6YihoKSl0aHJvdyBlKGYse30sIlF1ZXJ5IGtleSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKGQuaW5kZXhPZihoKTwwKXRocm93IGUoZix7fSwKIlByb2hpYml0ZWQgcXVlcnkga2V5OiAiK2gpO319ZWxzZSBpZihjKXRocm93IGUoZix7fSwiUHJvaGliaXRlZCBmcm9tIGdldHRpbmcgZW50aXJlIFVSTCB3aGVuIGNvbXBvbmVudHMgYXJlIHNwZWNpZmllZC4iKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMuYWNjZXNzX2NvbnNlbnQ9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3ZhciBlPXtjb25zZW50VHlwZTpjLHJlYWQ6ITEsd3JpdGU6ITF9O3N3aXRjaChkKXtjYXNlICJyZWFkIjplLnJlYWQ9ITA7YnJlYWs7Y2FzZSAid3JpdGUiOmUud3JpdGU9ITA7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigiSW52YWxpZCAiK2IrIiByZXF1ZXN0ICIrZCk7fXJldHVybiBlfShmdW5jdGlvbihiKXtaLl9fYWNjZXNzX2NvbnNlbnQ9YjtaLl9fYWNjZXNzX2NvbnNlbnQuTz0iYWNjZXNzX2NvbnNlbnQiO1ouX19hY2Nlc3NfY29uc2VudC5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19hY2Nlc3NfY29uc2VudC5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2FjY2Vzc19jb25zZW50LmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2FjY2Vzc19jb25zZW50WyI1Il09ITE7Wi5fX2FjY2Vzc19jb25zZW50WyI2Il09ITF9KShmdW5jdGlvbihiKXtmb3IodmFyIGM9CmIudnRwX2NvbnNlbnRUeXBlc3x8W10sZD1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3IsZT1bXSxmPVtdLGc9MDtnPGMubGVuZ3RoO2crKyl7dmFyIGg9Y1tnXSxsPWguY29uc2VudFR5cGU7aC5yZWFkJiZlLnB1c2gobCk7aC53cml0ZSYmZi5wdXNoKGwpfXJldHVybnthc3NlcnQ6ZnVuY3Rpb24obixwLHEpe2lmKCF6YihwKSl0aHJvdyBkKG4se30sIkNvbnNlbnQgdHlwZSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKHE9PT0icmVhZCIpe2lmKGUuaW5kZXhPZihwKT4tMSlyZXR1cm59ZWxzZSBpZihxPT09IndyaXRlIil7aWYoZi5pbmRleE9mKHApPi0xKXJldHVybn1lbHNlIHRocm93IGQobix7fSwiQWNjZXNzIHR5cGUgbXVzdCBiZSBlaXRoZXIgJ3JlYWQnLCBvciAnd3JpdGUnLCB3YXMgIitxKTt0aHJvdyBkKG4se30sIlByb2hpYml0ZWQgIitxKyIgb24gY29uc2VudCB0eXBlOiAiK3ArIi4iKTt9LGFhOmF9fSl9KCk7CgoKClouc2VjdXJpdHlHcm91cHMucmVhZF9kb21fZWxlbWVudHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3JldHVybnt0eXBlOmMsdmFsdWU6ZH19KGZ1bmN0aW9uKGIpe1ouX19yZWFkX2RvbV9lbGVtZW50cz1iO1ouX19yZWFkX2RvbV9lbGVtZW50cy5PPSJyZWFkX2RvbV9lbGVtZW50cyI7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fcmVhZF9kb21fZWxlbWVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fcmVhZF9kb21fZWxlbWVudHNbIjUiXT0hMTtaLl9fcmVhZF9kb21fZWxlbWVudHNbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2FsbG93ZWRFbGVtZW50SWRzfHwibm9uZSIsZD1iLnZ0cF9hbGxvd2VkQ3NzU2VsZWN0b3JzfHwibm9uZSIsZT1iLnZ0cF9lbGVtZW50SWRzfHxbXSxmPWIudnRwX2Nzc1NlbGVjdG9yc3x8W10sZz0KYi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oaCxsLG4pe3N3aXRjaChsKXtjYXNlICJpZCI6aWYoYz09PSJub25lIilicmVhaztpZihjPT09ImFueSJ8fGUuaW5kZXhPZihuKT4tMSlyZXR1cm47YnJlYWs7Y2FzZSAiY3NzIjppZihkPT09Im5vbmUiKWJyZWFrO2lmKGQ9PT0iYW55Inx8Zi5pbmRleE9mKG4pPi0xKXJldHVybjticmVhaztkZWZhdWx0OnRocm93IGcoaCx7fSwiVW5rbm93biBzZWxlY3RvciB0eXBlICIrbCsiLiIpO310aHJvdyBnKGgse30sIlByb2hpYml0ZWQgc2VsZWN0b3IgdmFsdWUgIituKyIgZm9yIHNlbGVjdG9yIHR5cGUgIitsKyIuIik7fSxhYTphfX0pfSgpOwpaLnNlY3VyaXR5R3JvdXBzLmRldGVjdF9jbGlja19ldmVudHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjLGQpe3JldHVybnttYXRjaENvbW1vbkJ1dHRvbnM6Yyxjc3NTZWxlY3RvcjpkfX0oZnVuY3Rpb24oYil7Wi5fX2RldGVjdF9jbGlja19ldmVudHM9YjtaLl9fZGV0ZWN0X2NsaWNrX2V2ZW50cy5PPSJkZXRlY3RfY2xpY2tfZXZlbnRzIjtaLl9fZGV0ZWN0X2NsaWNrX2V2ZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19kZXRlY3RfY2xpY2tfZXZlbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZGV0ZWN0X2NsaWNrX2V2ZW50cy5pc0luZnJhc3RydWN0dXJlPSExO1ouX19kZXRlY3RfY2xpY2tfZXZlbnRzWyI1Il09ITE7Wi5fX2RldGVjdF9jbGlja19ldmVudHNbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGQsZSxmKXtpZihlIT09dm9pZCAwJiZ0eXBlb2YgZSE9PQoiYm9vbGVhbiIpdGhyb3cgYyhkLHt9LCJtYXRjaENvbW1vbkJ1dHRvbnMgbXVzdCBiZSBhIGJvb2xlYW4uIik7aWYoZiE9PXZvaWQgMCYmdHlwZW9mIGYhPT0ic3RyaW5nIil0aHJvdyBjKGQse30sImNzc1NlbGVjdG9yIG11c3QgYmUgYSBzdHJpbmcuIik7fSxhYTphfX0pfSgpOwpaLnNlY3VyaXR5R3JvdXBzLmRldGVjdF9zY3JvbGxfZXZlbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7cmV0dXJue319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3Rfc2Nyb2xsX2V2ZW50cz1iO1ouX19kZXRlY3Rfc2Nyb2xsX2V2ZW50cy5PPSJkZXRlY3Rfc2Nyb2xsX2V2ZW50cyI7Wi5fX2RldGVjdF9zY3JvbGxfZXZlbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF9zY3JvbGxfZXZlbnRzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fZGV0ZWN0X3Njcm9sbF9ldmVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X3Njcm9sbF9ldmVudHNbIjUiXT0hMTtaLl9fZGV0ZWN0X3Njcm9sbF9ldmVudHNbIjYiXT0hMX0pKGZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6YX19KX0oKTtaLnNlY3VyaXR5R3JvdXBzLmdldF91c2VyX2FnZW50PVsiZ29vZ2xlIl0sWi5fX2dldF91c2VyX2FnZW50PWZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6ZnVuY3Rpb24oKXtyZXR1cm57fX19fSxaLl9fZ2V0X3VzZXJfYWdlbnQuTz0iZ2V0X3VzZXJfYWdlbnQiLFouX19nZXRfdXNlcl9hZ2VudC5pc1ZlbmRvclRlbXBsYXRlPSEwLFouX19nZXRfdXNlcl9hZ2VudC5wcmlvcml0eU92ZXJyaWRlPTAsWi5fX2dldF91c2VyX2FnZW50LmlzSW5mcmFzdHJ1Y3R1cmU9ITEsWi5fX2dldF91c2VyX2FnZW50WyI1Il09ITEsWi5fX2dldF91c2VyX2FnZW50WyI2Il09ITE7CgoKWi5zZWN1cml0eUdyb3Vwcy56b25lPVtdLGZ1bmN0aW9uKCl7dmFyIGE9e30sYj1mdW5jdGlvbihkKXtmb3IodmFyIGU9MDtlPGQubGVuZ3RoO2UrKylpZighZFtlXSlyZXR1cm4hMTtyZXR1cm4hMH0sYz1mdW5jdGlvbihkKXt2YXIgZT1iKGQudnRwX2JvdW5kYXJpZXN8fFtdKTtpZihkLnZ0cF9ndG1UYWdJZCBpbiBhKXdHKGFbZC52dHBfZ3RtVGFnSWRdLGQudnRwX2d0bUV2ZW50SWQsZSk7ZWxzZSBpZihlKXt2YXIgZj1kLnZ0cF9jaGlsZENvbnRhaW5lcnMubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBsLnB1YmxpY0lkfSksZz1kLnZ0cF9lbmFibGVUeXBlUmVzdHJpY3Rpb25zP2QudnRwX3doaXRlbGlzdGVkVHlwZXMubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBsLnR5cGVJZH0pOm51bGwsaD15RyhkLnZ0cF9ndG1FdmVudElkLGYsZyxKQSgxLGQudnRwX2d0bUVudGl0eUluZGV4LGQudnRwX2d0bUVudGl0eU5hbWUpLCEhZC52dHBfaW5oZXJpdFBhcmVudENvbmZpZyk7YVtkLnZ0cF9ndG1UYWdJZF09Cmh9YmQoZC52dHBfZ3RtT25TdWNjZXNzKX07Wi5fX3pvbmU9YztaLl9fem9uZS5PPSJ6b25lIjtaLl9fem9uZS5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX196b25lLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fem9uZS5pc0luZnJhc3RydWN0dXJlPSExO1ouX196b25lWyI1Il09ITA7Wi5fX3pvbmVbIjYiXT0hMH0oKTsKClouc2VjdXJpdHlHcm91cHMuZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7cmV0dXJue319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHM9YjtaLl9fZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzLk89ImRldGVjdF9mb3JtX2ludGVyYWN0aW9uX2V2ZW50cyI7Wi5fX2RldGVjdF9mb3JtX2ludGVyYWN0aW9uX2V2ZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19kZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHMucHJpb3JpdHlPdmVycmlkZT0wO1ouX19kZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzWyI1Il09ITE7Wi5fX2RldGVjdF9mb3JtX2ludGVyYWN0aW9uX2V2ZW50c1siNiJdPSExfSkoZnVuY3Rpb24oKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKCl7fSwKYWE6YX19KX0oKTsKZnVuY3Rpb24ga1UoKXt2YXIgYT17fSxiPXtkYXRhTGF5ZXI6dEEsY2FsbGJhY2s6ZnVuY3Rpb24oYyl7YS5oYXNPd25Qcm9wZXJ0eShjKSYmeWIoYVtjXSkmJmFbY10oKTtkZWxldGUgYVtjXX0sYm9vdHN0cmFwOjB9O3JldHVybiBifQpmdW5jdGlvbiBsVSgpe3ZhciBhPWtVKCk7b2ooYSk7Q2soKTtqQSgpO3ZhciBiPWFsKDI3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtRYihiLFouc2VjdXJpdHlHcm91cHMpO3ZhciBjPXlrKHprKCkpLGQsZT1jPT1udWxsP3ZvaWQgMDooZD1jLmNvbnRleHQpPT1udWxsP3ZvaWQgMDpkLnNvdXJjZTtLbChlLGM9PW51bGw/dm9pZCAwOmMucGFyZW50KTtlIT09MiYmZSE9PTQmJmUhPT0zfHxQKDE0Mik7cmV0dXJuIGF9ZnVuY3Rpb24gbVUoKXt2YXIgYT1FKDYwKTtpZihhKWZvcih2YXIgYj1hLnNwbGl0KCIuIiksYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD1iW2NdLGU9VEw7ZCYmKGUuSFtkXT0hMCl9fQpmdW5jdGlvbiBuVSgpe3pwKCk7bGooKTtmb3IodmFyIGE9ZGF0YS5yZXNvdXJjZXx8e30sYj1jQSxjPWEubWFjcm9zfHxbXSxkPTA7ZDxjLmxlbmd0aDtkKyspYi5tYWNyb3MucHVzaChuZXcgVXooY1tkXSxkLGIudGFncyxiLm1hY3JvcykpO2Zvcih2YXIgZT1hLnRhZ3N8fFtdLGY9MDtmPGUubGVuZ3RoO2YrKyliLnRhZ3MucHVzaChuZXcgWXooZVtmXSxmLGIudGFncyxiLm1hY3JvcykpO2Zvcih2YXIgZz1hLnByZWRpY2F0ZXN8fFtdLGg9MDtoPGcubGVuZ3RoO2grKyliLnByZWRpY2F0ZXMucHVzaChuZXcgVnooZ1toXSxiLnRhZ3MsYi5tYWNyb3MpKTtmb3IodmFyIGw9YS5ydWxlc3x8W10sbj0wO248bC5sZW5ndGg7bisrKWIucnVsZXMucHVzaChuZXcgV3oobFtuXSxuKSk7UXo9Wjt2YXIgcD1kYXRhLnBlcm1pc3Npb25zfHx7fSxxPVo7ZGc9bmV3IGdnKEUoNSkscCxxKTt2YXIgcj1kYXRhLnNhbmRib3hlZF9zY3JpcHRzLHQ9ZGF0YS5zZWN1cml0eV9ncm91cHMsdT1kYXRhLnJ1bnRpbWV8fApbXSx2PWRhdGEucnVudGltZV9saW5lcztKRj1uZXcgcGY7VlQoKTtQej1JRigpO3ZhciB4PUpGLHk9VVQoKSx6PW5ldyBMZCgicmVxdWlyZSIseSk7ei5aYSgpO3guSC5ILnNldCgicmVxdWlyZSIseik7ZGIuc2V0KCJyZXF1aXJlIix6KTtmb3IodmFyIEM9MDtDPHUubGVuZ3RoO0MrKyl7dmFyIEQ9dVtDXTtpZighQXJyYXkuaXNBcnJheShEKXx8RC5sZW5ndGg8Myl7aWYoRC5sZW5ndGg9PT0wKWNvbnRpbnVlO2JyZWFrfXYmJnZbQ10mJnZbQ10ubGVuZ3RoJiZQZihELHZbQ10pO3RyeXtKRi5leGVjdXRlKEQpfWNhdGNoKG9VKXt9fVdUKHIpO1hUKHQpO3ZhciBJPWxVKCk7aUYoKTt2bS5iaW5kKCk7aWYoIURqKWZvcih2YXIgRz1CbSgpP2VwKExmKDUpKTplcChMZig0KSksTj1tKFJvKSxTPU4ubmV4dCgpOyFTLmRvbmU7Uz1OLm5leHQoKSl7dmFyIFc9Uy52YWx1ZSxlYT1XLGphPUdbV10/ImdyYW50ZWQiOiJkZW5pZWQiO3RsKCkuaW1wbGljaXQoZWEsamEpfWhFLmJpbmQoKTtUQigpOwpPQigpO2ZuLk4mJihneigpLGZ6KEFGKSxnQSgpLGNCPW5ldyBiQixmeihpeiksT0MoKSxERnx8KERGPW5ldyBCRiksZkJ8fChmQj1uZXcgZUIpLEZGPW5ldyBFRik7aWYoZm4uSyl7REUuYmluZCgpO21DLmJpbmQoKTt3RS5iaW5kKCk7dmFyIGZhPUFrKCk7aWYoZmEpe3ZhciBzYTthOnt2YXIgZGEsbWE9KGRhPWZhLnNjcmlwdEVsZW1lbnQpPT1udWxsP3ZvaWQgMDpkYS5zcmM7aWYobWEpe3ZhciBQYTt0cnl7dmFyIEZhO1BhPShGYT1yZCgpKT09bnVsbD92b2lkIDA6RmEuZ2V0RW50cmllc0J5VHlwZSgicmVzb3VyY2UiKX1jYXRjaChvVSl7fWlmKFBhKXtmb3IodmFyIHFhPS0xLGliPW0oUGEpLFhiPWliLm5leHQoKTshWGIuZG9uZTtYYj1pYi5uZXh0KCkpe3ZhciBMYz1YYi52YWx1ZTtpZihMYy5pbml0aWF0b3JUeXBlPT09CiJzY3JpcHQiJiYocWErPTEsTGMubmFtZS5yZXBsYWNlKE5FLCIiKT09PW1hLnJlcGxhY2UoTkUsIiIpKSl7c2E9cWE7YnJlYWsgYX19UCgxNDYpfWVsc2UgUCgxNDUpfXNhPXZvaWQgMH12YXIgUWQ9c2E7UWQhPT12b2lkIDAmJihmYS5jYW5vbmljYWxDb250YWluZXJJZCYmVW0oInJ0ZyIsU3RyaW5nKGZhLmNhbm9uaWNhbENvbnRhaW5lcklkKSksVW0oInNsbyIsU3RyaW5nKFFkKSksVW0oImhsbyIsZmEuaHRtbExvYWRPcmRlcnx8Ii0xIiksVW0oImxzdCIsU3RyaW5nKGZhLmxvYWRTY3JpcHRUeXBlfHwiMCIpKSl9ZWxzZSBQKDE0NCk7dmFyIFljO3ZhciBEZD14aygpO2lmKERkKWlmKERkLmNhbm9uaWNhbENvbnRhaW5lcklkKVljPURkLmNhbm9uaWNhbENvbnRhaW5lcklkO2Vsc2V7dmFyIGpmLHZoPURkLnNjcmlwdENvbnRhaW5lcklkfHwoKGpmPURkLmRlc3RpbmF0aW9ucyk9PW51bGw/dm9pZCAwOmpmWzBdKTtZYz12aD8iXyIrdmg6dm9pZCAwfWVsc2UgWWM9dm9pZCAwO3ZhciBKRT0KWWM7SkUmJlVtKCJwY2lkIixKRSk7VW0oImJ0IixTdHJpbmcoSWYoNDcpPzI6SWYoNTApPzE6MCkpO1VtKCJjdCIsU3RyaW5nKElmKDQ3KT8wOklmKDUwKT8xOjMpKTtBRS5iaW5kKCk7Zm9yKHZhciBXcj1bXSxYcj1bXSxLRT1tKE9iamVjdC5rZXlzKEdFKSksWXI9S0UubmV4dCgpOyFZci5kb25lO1lyPUtFLm5leHQoKSl7dmFyIHJtPVlyLnZhbHVlO2lmKHdpbmRvdy5pc1NlY3VyZUNvbnRleHR8fCFJRVtybV0pe3ZhciBMRT1HRVtybV0oKTtpZih5YihMRSkpe3ZhciBNRT1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChMRSk7VGIoTUUsInsgW25hdGl2ZSBjb2RlXSB9Iil8fFRiKE1FLCJ7XG4gICAgW25hdGl2ZSBjb2RlXVxufSIpfHxYci5wdXNoKHJtKX1lbHNlIFdyLnB1c2gocm0pfX1Xci5sZW5ndGg+MCYmVW0oImpzbSIsV3Iuam9pbigifiIpKTtYci5sZW5ndGg+MCYmVW0oImpzcCIsWHIuam9pbigifiIpKTtFeXx8KEV5PW5ldyBEeSl9aEYoKTtpbSgxKTtFRygpO3JldHVybiBJfQpmdW5jdGlvbiB1bSgpe3RyeXtpZighaGsoKSYmKElmKDQ3KXx8IU5rKCkpKXtJZig2NCkmJndqLkguSy5hZGQoMTE4NTE3OTE3KTt6aigpO2ZuLkgmJnN6KCk7V2ZbNV09ITA7dmFyIGE9a2ooImRlYnVnR3JvdXBJZCIsZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKE1hdGguZmxvb3IoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIqTWF0aC5yYW5kb20oKSkpfSk7U2woYSk7a3QoKTt6RigpO0Z0KCk7UEIoKTtpZihEaygpKXtFKDUpO0RHKCk7aUIoKS5yZW1vdmVFeHRlcm5hbFJlc3RyaWN0aW9ucyh2aygpKTt9ZWxzZXtGTS5SKCk7blUoKS5ib290c3RyYXA9TmIoKTtJZig1MSkmJnBFKCk7CmZuLkgmJnR6KCk7dHlwZW9mIEEubmFtZT09PSJzdHJpbmciJiZTYihBLm5hbWUsIndlYi1waXhlbC1zYW5kYm94LUNVU1RPTSIpJiZzZCgpP1pUKCJkTURnMFl6Iik6QS5TaG9waWZ5JiYoWlQoImROMlprTWoiKSxzZCgpJiZaVCgiZE5UVTBZeiIpKTttVSgpfX19Y2F0Y2goYil7aW0oNSksaHooKX19CihmdW5jdGlvbihhKXtmdW5jdGlvbiBiKCl7bj1CLmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtdGFnLWFzc2lzdGFudC1wcmVzZW50Iik7Z2wobikmJihsPWgueG0pfWZ1bmN0aW9uIGMoKXtsJiZLYz9nKGwpOmEoKX1pZighQVtFKDM3KV0pe3ZhciBkPSExO2lmKEIucmVmZXJyZXIpe3ZhciBlPVJqKEIucmVmZXJyZXIpO2Q9TmooZSwiaG9zdCIpPT09RSgzOCl9aWYoIWQpe3ZhciBmPWNxKEUoMzkpKTtkPSEoIWYubGVuZ3RofHwhZlswXS5sZW5ndGgpfWQmJihBW0UoMzcpXT0hMCxVYyhFKDQwKSkpfXZhciBnPWZ1bmN0aW9uKHUpe3ZhciB2PSJHVE0iLHg9IkdUTSI7SWYoNDUpJiYodj0iT0dUIix4PSJHVEFHIik7dmFyIHk9RSgyMyksej1BW3ldO3p8fCh6PVtdLEFbeV09eixVYygiaHR0cHM6Ly8iK0UoMykrIi9kZWJ1Zy9ib290c3RyYXA/aWQ9IitFKDUpKyImc3JjPSIreCsiJmNvbmQ9IitTdHJpbmcodSkrIiZndG09IitkdSgpKSk7dmFyIEM9e21lc3NhZ2VUeXBlOiJDT05UQUlORVJfU1RBUlRJTkciLApkYXRhOntzY3JpcHRTb3VyY2U6S2MsY29udGFpbmVyUHJvZHVjdDp2LGRlYnVnOiExLGlkOkUoNSksdGFyZ2V0UmVmOntjdGlkOkUoNSksaXNEZXN0aW5hdGlvbjpzaygpLGNhbm9uaWNhbElkOkUoNil9LGFsaWFzZXM6d2soKSxkZXN0aW5hdGlvbnM6dGsoKX19LEQ9Qy5kYXRhO0QucmVzdW1lPWZ1bmN0aW9uKCl7YSgpfTtELnJlc3VtZVdpdGhNZW1vcz1mdW5jdGlvbigpe3NsKDEpO2EoKX07SWYoMikmJihDLmRhdGEuaW5pdGlhbFB1Ymxpc2g9ITApO3oucHVzaChDKX0saD17R3E6MSxQbToyLG9uOjMsamw6NCx4bTo1fTtoW2guR3FdPSJHVE1fREVCVUdfTEVHQUNZX1BBUkFNIjtoW2guUG1dPSJHVE1fREVCVUdfUEFSQU0iO2hbaC5vbl09IlJFRkVSUkVSIjtoW2guamxdPSJDT09LSUUiO2hbaC54bV09IkVYVEVOU0lPTl9QQVJBTSI7dmFyIGw9dm9pZCAwLG49dm9pZCAwLHA9TGooQS5sb2NhdGlvbiwicXVlcnkiLCExLHZvaWQgMCwiZ3RtX2RlYnVnIik7Z2wocCkmJihsPWguUG0pOwppZighbCYmQi5yZWZlcnJlcil7dmFyIHE9UmooQi5yZWZlcnJlcik7TmoocSwiaG9zdCIpPT09RSgyNCkmJihsPWgub24pfWlmKCFsKXt2YXIgcj1jcSgiX19UQUdfQVNTSVNUQU5UIik7ci5sZW5ndGgmJnJbMF0ubGVuZ3RoJiYobD1oLmpsKX1sfHxiKCk7aWYoIWwmJmZsKG4pKXt2YXIgdD0hMTskYyhCLCJUQURlYnVnU2lnbmFsIixmdW5jdGlvbigpe3R8fCh0PSEwLGIoKSxjKCkpfSwhMSk7QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dHx8KHQ9ITAsYigpLGMoKSl9LDIwMCl9ZWxzZSBjKCl9KShmdW5jdGlvbigpeyFJZig0Nyl8fHRtKClbIjAiXT91bSgpOnhtKCl9KTsKCn0pKCkKCg=="}},"time_used":127,"timings":{"blocked":0,"dns":0,"connect":14,"send":0,"wait":33,"receive":47,"ssl":32},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/media/logo.7f2c73f0.svg","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"lazy-imageset","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:49.321Z","timestamp":1785127669321,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/static/media/logo.7f2c73f0.svg HTTP/1.1\r\nHost: buvei.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:49 GMT\r\ncontent-type: image/svg+xml\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\ncache-control: public, max-age=31536000, immutable\r\naccept-ranges: bytes\r\nlast-modified: Mon, 29 Jun 2026 05:34:13 GMT\r\netag: W/\"3e46-19f11def808\"\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nage: 188872\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=Gfv4kvSPRa0LUKMOivqeLyT2g9nJvoyQfYnGDCwKq%2BtyOHYb26KjsSk8LESpxQfW9ZoVF0BwR6TGwfIK1rnVfhmccm6ZVVP3w%2F1GtZuBLeuL36hjuXh1i3wJPA%3D%3D\"}]}\r\ncf-ray: a219021d4dcf8be6-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"]}],"data":{"size":15942,"size_decoded":12759,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"7bf59ceabb38215bc1724beeb96551da","sha1":"03914098e4a2804bce1cbd477addabeb2f3855c2","sha256":"35602600a10e959360b0b0b8eee7e8d8665276ce74f823401a0473a6804def30","sha512":"bfd6599249f83d186b7422f9806eb0ac024d492e34beadad3f22e689155ea5999f6a6e00913e54e201a70399734a92c95ec4690b5182b11120df5b0ccff4c860","ssdeep":"384:LsSJf/+c/O7sT/cc/Kf9qx2Wjg92lgfVPJqTjNYo:LsSJX/4s7cc+UAD92lgfVg3","tlshash":"3562d0ed887f49d3da511d1c34f166108eb9ebe9c48144ace850f9f270541dde9f8ae8","first_seen":"2026-07-27T03:56:11.643911Z","last_seen":"2026-07-27T10:05:53.954941Z","times_seen":4,"resource_available":false,"data":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSJub25lIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxMjgiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAxMjggMzAiPjxkZWZzPjxwYXR0ZXJuIHg9IjAiIHk9IjAiIHdpZHRoPSIxMjgiIGhlaWdodD0iMzAiIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiIGlkPSJtYXN0ZXJfc3ZnMF80OF81NzczIj48aW1hZ2UgeD0iMCIgeT0iMCIgd2lkdGg9IjM1NCIgaGVpZ2h0PSI4MiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEuNzU2MDk1ODg2MjMwNDY4OCwwKSBzY2FsZSgwLjM2NTg1MzY0OTA3NDc0ODQzLDAuMzY1ODUzNjU4NTM2NTg1MzYpIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVdJQUFBQlNDQVlBQUFCdVVkNWpBQUFBQVhOU1IwSUFyczRjNlFBQUFBUnpRa2xVQ0FnSUNId0laSWdBQUNBQVNVUkJWSGljN1oxM2ZCemx0ZmQvejJ4WDE2NmtWZSs5V2JLYTVZSUx0ckdKSVRZbFlNekZOeGZDSlMrOHRDUW1DZkFoaEFRQ3VSQkNiSUp6TWVCZ0J4eE1jTUFKamsxd0JYZkpWclVrcTllMXRDdXRldG1aNS82eFdqV3J6S3hXMnBVOFh6NGpDKzNNUEdkM1o4NmM1enluRURnZ1RVM1VXUzZIZERybjZPK0h5ZGVYZE5sS0poRVJFWkdaZ3RoYmdMSGtGK25YN0R0WThHRjdSNzkyT3VjaEJGRElKVjB5cWF4VEptZjdYRnhWOVo2dXp0VUJ2czY1M2hwVmtaZWJjNFZDNFZJdEttc1JFUkY3TXkycmN5WXdkSFFINStRMWFRMkdIbHVjem5sd2cxUktnbVZ5YWJaS0libFg1U1NIVnVPRUlIL1B2TThQbDMwYUUrSDVaVXlFMTNsYkRDZ2lJbUttckt3cXRiKy96NFhQdmxxdHBzTEx5NnQrcG1WeVZCeE9FYzhVSmhPRnlUU0FudTRCb0xVWERRMGR5Q3RxVGo1eWdra084SE45OGEzM0xoeGRraFg4V2xxQ3p5Rjd5eW9pTXRjNWZQanJweDk3Yk52ckhlMmRVKzdyNUtURTV2czNmZ3hnODh4TDVwamNNSXA0TEpSU21Fd3NUQ1lXWmVVR1ZGUzFyang5b1c3bFIzOHYybkhMc3JobjFXcGl0TGVNSWlKemtZYUdodURmL0diNzYxOGRQalAxemdSSVhoQ0JoTVRFVDJkZU1zZUZzYmNBamdMTFVsUld0ZUhEZlhtUDd2ekwyUk1sNVMwWjlwWkpSR1F1VWwxZHR5d25KNS9Ydmg0ZVRsaTdkcVZ4VWNiQy9UTXNsa01qS3VJeEdOcDY4YSt2cnlidi9xVGd5K0l5ZmJhOTVSRVJtVXRRU3BXbnZqbi9SRVY1MVpUN01oSUc0ZUdCV0xkdTViTXpMNWxqYzhPNkppYWp0OWVFYjgvVmFTUU0rYVNob1dleHY3K3F4dDR5aVlqTUJYSnk4bFo4KyszWmpKYVdqaW4zVlNsbHlGNmNpZmo0NkJ2YUdnWWNWQkZ6SEdkdkVkRFRPNERqMzlZRWVHbWNQOURwT2pkcnRTNDZlOHNrSXVMb1ZGWldyU201Y2hVbUV6ZGxiR3hZaEQ5dXZYWFZNMXF0OW9hL3QwVFh4QVFRRVBUMW0vRFY4Y3FWK2FYNmUrd3RqNGlJbzZQVDZiVGZmSFBoOGZxNmxpbjNWU2hsU0U5UFJVSkN5dDVaRU0zaEVSWHhKQkFRNkpvNzhPV3hzbGVycS9YeDlwWkhSTVNScWFtcFgzYnUzRVZwWjBjdkNBQ09qcjlSQUVGQlh0aTA2ZFlYZ29KdTNOamhrVGlrYThLUllBaUQvS0ptWlVsbDJ6b0FSZmFRUWFmVGFTL25GMjdwN096V01OTjhka3FsMGo0T0hEZ1RweGo3bXBPTFVoOFVFSFE2SUVCYjZ1Ym1wcC9XUUFJNWMrYk12VTFOMTVMTVRpbCs3NUVCQjRaaFRPSGhrY2NTRTJPUDJrcVdsdHFXZ0hQNU9WdjcrMDNPUW85MWNwTHJGOFFrSGRDR2FDdkdlejAvdjJoTlpYWE5VczdFV1hYdktaMlV4dWpJMEVQaDRlRjUxaHpQbDVLUzhveVNzckwxNDEwbjE4T2hyOC9rL3Q1N0h6OWFWSGgxNks5dWJ1TWY2dWFteExyMXE1R1JzV0RuNWN1RjY2cHJhelA1alRNOUdBWW1nQUhIRFgvMkhJYmRvTXpnVDRhQnlkdmJxelE3TzVPWHRVNHBWUjQ3ZHVKQm83SERYNmh0cTFUS2pZbUpzUWRFUmN5RHJzNSs1QlViN2pVWTZDNTd4QmVmT0hINjU3OTY2ZlhIVy9SdElPTTQzaXgvb25UcWMwa1lCaFFBUjYvM3cwc2xERnhjWGFIUnFISFBQUThpTkRUWUdCY1hlekF5SnZMTDhKQ3drLzcrNmhsWnRLeXVybzcvMlU5Zi9lalV5ZFBnS0N2Z1NBS0dFRHo4OEgzM0E0aXdsVHdYOHZPMlB2ZnpsMzdkM05JR3dHekI4VVhyNDRVWGZ2RVRkd0F2akgyTlVpcDk2NjJkejIvZi90NnkzcDdSbWFPVTUwQXltUXozLzhmM0h0ZnBkR2t6NVZ2VjZYVGFQMngvOTR1OUgrN1hEZ3lZZUIxREFSaGJlOURUMHc5M1R4VTJiVnFIdSsvNTdqUGo3YXVRU2JwQ1FvSk9TaVFTNlNlZmZQN2x2bzgvUS85QVB6aFd5SGR2RzBaKzdwWjdpNEFnZTBrR0tpb3E4dms4OEhKeUxxOSsvcm1YdDFkWE4wSm8xUWgzZDJmODZNY1BKNHVLbUFjc1MxRmVyYzlvYnRWSEE3QkxLclN4dlIzMTlhMGdZelF4QVJueDFmTlRHUlJrM0QwSkFKQldTSmhhQUJSeU9lT3VWcnR1MFdnOHQ4UW54T09QZi96ZzRPTEZpM1lzV0JCcjAreERsbVdsN2UxRzFOY2JJRVR0VVVJaFZ6RG82dWwzdDZVOC9WeS93dGpSaGNZRzh6UFhNcDNtZzBLaHdBQkxsZU85UmdneEhUNTg3SUN6czlPeWlxdE40K3pCYjVUejUzTUQ2cHB1U3dVd0kxbWcxNjdwa3kvbEZtanI2dzFnVFVJV3pzMVhvbGFyd1czZnZlWGxkV3RYdlRiWjNnME5EY0VkSFIxb2JHcEZUMjhmeUN5dTBkUFJQd0NRWVVYTUVMUWFXdEhIc3J4bVJBTURuRXRiV3ljYUc5cXNrSVNEeVVRVW9pTG1BUVdnTjNTanVhM0hib3FZZ0FFRFpvcm5MYituTVpsd1R3SlFnQjI4SWJwN1dQUTBHTkhZMUk0cnhYVTRkZUtiRFdFUllSdTJiMy8zeUcyM3JYa3lKQ1RFTHE2YTJXYml6MnMwZk5Sb1hGeml2cFNVcE5jckt1clExZEUvemtoVFUxWldnWXJTOHZXWUlVVmNXbHE1dXFhNkRxeUo4cGJKZ2tJcFEweDBKTklYSnU4V1BqTC9zU2lmNmQ4NHB4ODlnaFhubUNIRXhUcWVkUGNNb00xb3N0bjBWeGdNWnFkUUhnVkFRU2dGb1FBREFrSUJ5bEtZQmlnYUdycHc2c1JsL1BTWlY5WnMyL1pTNGZIalp4K2NCYUhtRlVGQlh2V3JsbWZzOVhRWDdINGVRdGZVaXR6Yy9DMDZuVzVhRlFvbm9yRHd5c2FXRm9OVng2clZUbGk2TE90MFlHQmdxWkRqS0VkQktmOXQ4Q2hoMjBpOU81VWlKd1FNeC9Eenk5Z0FVUkh6cEsrZlJhdXhMOWplY3RnTENoYVVZd0VROUhTeitPTHpyL0hjY3krOSsrR0huNzVMS1JWblZnSklUVS9mSFJNZEFhbFVZdFh4ZlgwczhpNFhhYTVkMHlmYldEUVVGNWRsRnhZV1I3ZTE5UWsrbGhDQ29LQUFwS1VsV2hHU1pvMmhRUVJ1R0tQSXh6a2pZNS9Ld0tJaTVzbkFnQW1kSFQxYVNzZjMvOTBRRUFxQUEwRFIxOHZpM0psQ3ZQYnE3eDU4KyszM3ZtaHFhckxleEx2QlNFcUtQNUtSbWFKWHE2MjdsRGlXUlhWMUxVcEt5dGJaV0RSVVZsYXVMTDlhaWI3ZXNXNlRxWkZLQ1dKaUl4RWVIaW80Z3NVYVQ4TjhRbFRFUEtFY3hZQnBZSU85NVhBTXpGTTlrNGxGY1ZFdDN2emRPK3YrL3ZmRGUrd3QxVnhpK2NyRkwvdHF0YkRXNWRUYTFvb3JWNjdhL0hxOFVsUzZvVWwzemFwajFWN09XTFFvL2VDTnNuWmdTMFJGekJNS2dGSU9PaDJzbTA5T0Y0ZnJwV0tHVXFDaVhJYzllL1p2UEhYcTRoWjd5ek5YaUkrUFBSaWZHQXNuSjdsVnh6ZnJPbEZRVUJKZFdGaXl6Rll5TlRRMEJPZm5sV1EzMWx1eitnOEVCd2NpSmNXYVJicTVENW5tRFNvcVlwNFFRaUNWU0E1cHRSRHVQSnNtSE1kWnNjQkxodjZsbEFCZ0FFck1Hd2dJR1c4QjBKcUx5Ynl5WGxSWWhzOC8vK2ZPbVZwQUduL282VjcrRThCaHhnTmFBd0lDS2xJWEpwMVhhOHdOTElST3pVMG1GbFZWRmFpdXJyU1pJaTRwS2IvdGNrR0IrWHF4ckhIeHhNbEpnZFRVWkdSbHBSN2tld3pMeWxrQUlLQ3pZMmNRODMwOC9qYnNIMllHOTdNMjNlMjZaVUk2NWw4TWY3UjA4RGRSRWZPRU1BUktsYktORURKcks2bWpCU0N3S0QzZXV3T2doQVZIZWtCSkh6alNCNDcwZ0VnSHdFaFpVTklQRGlaUVVQT0ZTUGdHYW8yRm9yT2pCNmRPblhHdXJLbWZwbUtZVEFZeWFoL3pUd1l6c1Zob1VmRkM5T093VkR6MkpjU1VsclpnVjNCSUlDUlNBZ3JoUWJSVmxiWEl2WlMzeFJidnY2bXB5VGszdDNCTFUyTVRDRGplSVhzVy9QelZ1UG5tcFc4UVFucjVIcU5TQVlSUU1NeEVrZTJUUXlrSEN0T1lqUVdGQ1FCNzNVYkJnb05wd28zbEJzd2JaVUVJd0hBU3Z2ZTZDWVNNdjlCSExUY2lodjhkM0Foak5vWW9wVkp4dFpzblNvVVUzcDZNb0pBY0cySzFPeVF3UUkzWXVDZzRPemtOclJZVFFzQnhIRG83TzZHN2RnMTFEVHAwdFBlQ2NoS3JwMWdtRTRlYTZocmtYc2pmQ3NEcXNvYUU4SW9zR3ZIN1RObFNZMjRnYTQ2ZGdxaW8wS054Y1ZHNGVDRVBKcFB3OTZIWGR5TXZMeSsrdExRaUZkT01iKy9vNkkwdXlDL01ibTdxRUh3TktGVXl4TVhGWU5HaXRKM0NSN2IrKy9QU3VDSWtMQkJ5eGNqczZPRXZiSFIwQklGWlQwNzloUkpDRUJVVkFaVktPcTNHd21iVGFhUThvNjlkeWczYnhxSWk1b2xVS29GU0xwMVQ3Wk9VS2ltV0xNM0NMMy81WEdKVVZFamgyTmVibTV2OWFtcXVMU2pNTC9ydTBXUEhIamw5K2dJcUs2N0JaREpIUmdpbHJiVUhKMCtlbnVVRlRRZDFudk1nTURDdzlQMzMvN0wzeU9GL2I2bXBGaDYzeTdFVVpXWGxLQ3N2V1k5cEttS2Q3bHA4K2RWS2NKU2FzelVKNFowMDRlWGxnc1hMTW5LRnhnNFBJL3c3WkNRRVdZc1c0b1VYbjluazdhMjlMZzE1dkhnVTNxWTZBRTlQbFhFMjZxMVlQbU5SRWZPQWdNRGRYUVZQVDdkNVZTRGUyOXU3RVVBamdFTkdvL0haZ3dlUHZMajlEKzgrbG5PeHhDcGwzTnM3Z0xyYUJ0VFZOVWNIQm5yYmEvWXdwMGhPVHZvNElqSjhTMjJOd1lvUUxvS2FLaDB1NWVadk1SZ012MWVyMVZZWkNwUlM1WTRkLzd1MXFxcmFQTU9nRmpmWTFEQVNBcTNXQjVtWnFWWll3OU5ESWlIdzluWXZEWm1nd05KY1F2UVI4NEtEbjQ4TGZIeGM1bTFZanJ1N3UySGR1cFhQM25Qdm5ZZTBXbGVyemtFcFJYdDdPM1M2bG1nYml6ZHZDUXNMT0ptUnNWRHY0bXBOVERHQjBXaENRVUZlZEdOanM5WEpIVFUxMS95TENvdlhHUFNkUXo1TnZnOEZKeWM1RWhMakVSNGJkY1RhOGEyRlVncVdaZWVGTVNrcVloNG9sVEpFaGJvZENQWjFtZk5QM3NuUWFEVHRLMVprdnhZZEV6Nll2Q0djdnI0Qk5EZnJ4TnJOUEZHcjFjWmx5N0xmQ0FyeXRlSm9Bc29CNVZlclVOOVlhM1d6MjdhMmx1ank4b3JCV1pBd1BEeWNrWjJkZGlCRU8vZXRVbnNpQllEMjluWk5ZMk5YT01leFVvN2pwQXhqenJFZVdiZHpKSmJYaDA0aWxmYzZPMHYxRE9PcDkvVWwwM0p3T3hvVWdKZW5NeExpL2ZZTFdSRjJCS1pLNXh3UGQzZE5aVWhvSUlBY2pKNmU4dlBqc1N3NzRYVWpNajRwS2ZGN2twT1RmbDFaMFlpZUhpRVpiUlFjQmVycWRNak56YnZmWUREc3NzWTlrWmVYZjFkdG5RNzlBK2JWcEpHWHpKVHRqc0pDa0p3Y3QwL29tS094TnEyT1FDTGhIZG5nMEVncHBkTC8zZlgxdTd0MmZiMnh3OWc5RkJKa2hvNzRpVkhWaXlndzVOQjNjbExBMzk4YnZsb24vT0xGVDJ0Q2dqMVB4c1lHZlJrVjVYbk15MnR1VitBbm9FaGI0SmNYRmVqMmxiMWxtUTNrY281VnFWU2dIRHNZYXl3RUFvWmhJSmNyT21kRXVIbUt2Nzkvelk3dEh4dzVlL2I4bXNvS2dTV0dLWVd4ellTaWd1SlV2VjRmRGlCWHlPRUdnOEg5bFZmZXVMZEYxenIwTjc2QktDcVZISWxKc1lpTUREc3BaRXpiTVgveW9xVUEwTmZIYm15cTY0Q2hwV2ZpTDRGUUVFTEFNQVFjUjBlRlFqRk1KOHBMemF1K01pa1Q3T0t1Mk9McDZiUWxKY1VmSDM1NFl2ZE5OeVgvTWlURVk4NU5YVGpLSVRMVUE2dVhocjkwb3pRUDdlOW5KQ3hyamkwRzVYOVRXcERMNVZBcUZYTXF1c1FSV0pDU3VOZlAzM2ROVGMyMXdmS1RmQ0hvNjJOUlZsYUo2dHJhWlJDb2lDc3FLbFlXRmw1eGJ1OFFQdG56RDlBZ0t5dDk5L1NOTGVzaVg0aVY3ak5IWkpUSkkyRUFoaUZERzJFd3ZJMjRJeG1HZ0NITTBOK0dGRE9sNkI5Z29iL1doZEtTWnZ6dGszTjQ5bWQvM2ZyRWs3dktqeDh2L08vWmZXdlRnNk1Vcmk0S2JGZ2Z0ek5qb2M4TjArNjd2Ny9kcDZIZXVtY09JeUZ3Y2xJaUtDaklUaGJTM0NVMk52U3IrUGhvT0ttRXBUd1RZbzVIYld5OGhyekxSZmNLSGJleXZHWmxmVjBUQmdZRUpoTVNJQ0l5Rk9ucEtiTWVMVEVmdVc3dVNURkIvYy9CL0R5T3BlQll5OTh3dEhFc0JjZFpsTEo1clljektkR203OFBYaDY3Z3FTZi8rczZ1WGNjK212MjNhQjNPVG5Lc1doWmV0SFp4eUV2MmxnV1krWlJiQzhYRjVldEtTcTZDUUNMWUdsYklaWWlNQ3NkOENDZWFiYnk4dk9vWEw4N2M3ZVBqQ1d1bTNMcW1kdVRuRldaWDYzVGhmSStobENvTEM2L2NXVituQTBlcG9GRTFHaGVrcGlicDQrS2lUZ3NXVnVRNkdBQmpGTzc0TzQ3Njh3VDVqOWQ5bFNPbURsZXZOT0IvZnZ2RnZUdi85Ty9QSExtVUpFYzVLSlZTckx3cHRQUjd0OGZlNytYbDVBQSs3cWs2YzlpR2drc0ZLL2Z2UC9CaVZhVjFGckdIcHhKWldSbXpIc1kwWDBoSlNmdzRNam9jd3FmcUJQMTlMRXBMeTFGV1dNdzdvYWF3c0NRN043Y2dvTlhRUGVXWW94YndDQkFZNUl0VmE1WmYxNWRQeERvbVhZMGhZLzZia25FS2hZeDBielRXdGVOUE80OXQvT0lmbDdkTmZTTGJZbTZZU1VlSU9QcHBZbjZkaGF1TERMZmNISk8zOVh2Sm02SkNQUVg1MjJZT3pseUxnR2VLSm1DNWNjenZUeXJsSnJXb0thWFNNMmZPMy9ucWIvL3c5YitQbkVEL0FCMVJkNEpmMVFGQ0dJU0VoQ0E3Tyt0dFhnS0tYRWRRa04vcHBLUUVvMHFnZXdJZzRDaFFYOWVFd3Z5aXUvalduaWdwS1Y5WFZGUTJXTUZrNmp2Y29veFZLZ1dTa3hPUkdMZjBBNEdDMmhSS1o4TThtUjFtTmN5SVV1QnFTUlArL01HeEZ5bWxyMDBjRG1ZTFJUemNESkJTQ29Zd0FERmIvY1JjNGNaYzFReG1OY01RZ3JBd2I5eTNLZUdGRGFzamZ2bXpSMjBnZ28yUVNNeUZob1JkZHVaQ1BxMnQ3VGgzOXRKRHg0NmRIRXB4WmxuempkclMwaEpSVmRXNCtPNDd2Ny9zWWs0K2FxcGJ6TWRaSWFPTGl3SkxsaXpxQ2cvM0ZWd1VYTVNNV3EwMkhqeDQrSTEvSER6MFluRlJMZS9qek05TWdwb2FQWEp5OHBiVjFGd0xCakNwZTZpOXZWM3oybXM3dHVwMGJTQms2bEltbGhvZ2hBQStXbmNzV2JKb3YyMUNWUVdXZVJ0QmMzTUxEaHc0K001Zjl1eXpLdEdLVWlvZFdjU0xTQmhUVmxiYW4vaDBiclkxMWluaWFlaEpTaWx5TGxiaWIzKzc5Q0tBY2R0dEU1dmttZEFSNWVjb0NGaVF3UnBQSE1lWnF5c1JBcFZLQ2k4dlZ5ekw4anV5YW5Ia1N3a3hhb2RkYUJvWnFjS0gzaDRUamg4OWg4TENvaDlKSlZKWVBoT1c0MEE1UUsvdlJGLy93TkQreEVvWENDTmhrTGtvR2QrNzUvYjdyVTJ6RlRHVGxCU3pQeUV4N3NXclpmVVlHT0NYWURGOFBUQW9LU2xIUlVYcGVnQTdKanVtcHFZaHVhenNxcmFyZStxcXJpT0wxVWdrQkVGQmdVaEpTWmhtN0xBRjZ5citjU3pGMmJORk9IdTJjQmtBd1JYL0tERDB4aXdKM1JJSndadS9meTRDd0hyQkFrMlRXUSs4SnlEUTY3cnc1VDh2Yk1NRWloaWdZRG5iOXRZbWhJQ2FXOFJETHBQQlMrT0UwQ0IzWTJLc2RuOUtuTysrcEhqTnZQUnREZ3h3YUt4dkgvcC9zLzFCaDZhaXpEUWZlb3lFUVVKaUNCNzVmMXRmVGs5UFBqQTlhVVZDUWtLSzNuNzcvVVBuemw1Y1YxUE5wK2JNc0JJamhLQ3VyZ201dVhsYkRBYkRuc2tlaWhWVlZjdEtTeXNFR1ZXRUFFN09DaXhNUytrTkN3dHdnRVU2YTh1MndxS0poNCtuQUxXdHloR0UzVEtnY2k2V29ycGFIeDhTb3JsdVd1SHFvaGhxNlQ0dHFOazNyZkZVd01QREJTRitxdHdnZjhVNVB6OU5ycSszWjE2QVZsWTZHeFdXSEFraE5YT25ncEV3U0UrUHhjK2VlL3lGMjc2ei9tV2JuRlFFV1ZtcE80S0NndFkxTkxUQ3hOTXFwcFNDZ2tMWDFJYmMzTHpzOWJldGpRY3dycktrbENwZmYrT1BHM1M2WnA0UzBVR1ZSYUgxOVVScWF1Syt1WjZvWllhTUtmRnRQNSt6blJReFFVTk5POHJLbTFjREdLV0lsMmNGN2RMcE9ubFgrZWVEU3NXWlhGMWR1K1phaXJJajQrU2t3UHJ2M0lSdDJ4N2JsSjZlS2xyQ05pUXRMZVhnazA4K2J5b3NMSkcydGZid1BNcnN4R1ZORk1YRkpialcwSnlNQ1JSeFRVMU5lRUZlVVlheGpjKzVoeXVhTXhLQ21KaG9wS2FtM0pEdGtHYVNHVlhFRTg1NkNORGJENVJlcVYwUDRLMnhMOThvV1d4ekdZMlhDekt6VXVIdTdsSnRiMW5tSTluWnFUc1BILzc2MGJhMjJpbmRCOFAxUk13V25iN0ZnTUxDNG8yVTB0M2pHUjlWdGZYWlpWZXIwTmM3TVBhbHlVYUJwNmN6VWxLU2E0S0RmV1o5TVd1K1k3ZnFheWJXaEthbXRpUjdqUzh5UFJvYjJ2REhIUjlnMjA5K2xmUGhoL3ZmcmExdENiQzNUUE9KeE1TRWZWRlI0WkRMcG9wb0dOYlNsblpYcmEwOXVIeTVZRjE5Zlgzd2VFY1VGWlJ1MURYcGVKZTZ0SlFjMFdxOWtKV1Z0dFAyN3J6NWs2cHNMWGJ6RVZPV1EwOVB2OGZZditmbmw2NzVaTjluSDNaMGRtcG1hbXdDQWhjM0o1MnJxMHVEVXFsb2s4bGtmZjZCL3VmREk4TlArdnVvYzhTVi82a3htVmhVVlY1RFhhMGVPVG41RDI2NDdjS0RCUVZYVnlVbVJvcmhhemJBejg4N0x5VWxzZWIwcWZQQmVrTTNqeVBNMWpBaEZEMDlBeWd1TGtOVlZYMDJnRkVGK3R2YjJ6WFBQdnZLQm4wTDMwdmNmRjZaVElyWXVCZ2tKeWZkTU9uK3M0bGR5eFdPTGFjSkFDVWx4ZXZlKytCOWJWMDkzNFVFYXlBQVZRWXdZQUlZaGdHbEhLUlN5UVp2SHhkRVJvYmpoei9jaHN6TWxMMlptV2s3NCtPalQ5dXRZZWdjd0dSaVVWZmJndDN2ZjRxR2V0M1grZm1sYTVPU291ZGxCTXBzb2xhcmpmLzg1K0dkWDN4eDZOZDZRL21rKzQ0T1p5UmdUUnpxNnh0dzZYTGhGZ0NqL0xsRlJTVnI4aTRYb2IyZDczS0oyVnJWYWoyUWxaVjVlbVk2cjh5ZnhBeHJzWnNpbGtnbGNIWjF1bTZLSTVYS2VpVU1BNW5FZGNiQ1NRZ3pIS3BpOXE4UkRBeXdhS2czb3FFK0Z5ZU81MkxQaDU5dGlZNEoyWkt5SUFGN2RuKzBPMnR4OXUram9rSWRKTlBPOGVqcDZjZFhSMDZCNDM1OU9EKy9hRzFTVXZ5c0tHUHo5emNUbVpqMm55NUh4RVFjaVltSituVmhRU1h2NkFuQS9Ka1k5QjBvdVZLNnhtQXd1SStjNFpXVlZheHJiR2dVSklkTUprRmtaQVNXTHMyK2JqMW56alBxR1dDLzcxeTRqNWgvMXV1a1NHVVNCUGk1NTB5MkQ2WGNqR3djTy9ndnh3M1YyTENVK0NURW5KSFgzZFdIU3ptbGVQKzl6L0RUbjcreTlkRkhmNUt6WThldUx5c3FLcXh1U1dNUEtBQU9BK0RRUDJMakJwT214OStzdXh3cHVydjdjZnpZR2Z6cVY3OC9YRlpXbFdyYmR6SXhIRGY5ZHZLMnhUWTNkRXhFeFBuTVJRdFBlbmxQMXJwcS9CdXhzN01YK2ZsRnFLelJEU1U3R0F3Rzk5emNvbnZxNmxzRXllSHFva0I4UWp5eXNod3RUdHg4ZFZ1MUVRN21XbHJELzA4WUd5cGlPcnJNd0ZSWWRRRmI0bERIdldWSFZvNmZBQW9LdVVTQzhFai9jWXF0YzdQMlhDSmpub1ljTjZiZDlhQWdqUTFHNkhUbmtIc3hiOTNaTTducmpoOC8vc2p5NWNzZHZ2eWZRaWxGOG9Jb2JOaXcrbDlxamVlSW5OblJ6OS8yamk2TnJyRTU1a3BSY1h4UmNRbHE2d3pncURXWmRoUWRIYjA0Y3VRRWtoYWtmVXdwVFJEcTFwbThvd2k5YmgvS1VaaE1yR1JzdXVwME1IRW14VUQvd0FUWDRTU2Z5T0JpR1NIVVpxNnNqTXlGTzBPQ2c1WTFOVXprMDZWRE5SZEdYcnNjQzlUVzF1SFN4ZHl0QUE0Q1FHVmx6YktMRnk0cCszb0ZpRWNJdkgwMHlNcElHVGNDdzM1UXVMbXBFQjRaQ0tYUzJocGlvNEtJd1RBRWZsb2ZHL1dsSEIzSk1qR0Q5V0NzRzJKOEJUd3FVWUNZSzVtTjlGOVJqZ05oR0JBUStBWjVJaXJDODdxRkhVc2RCTTdHbVhWVFlibTNSNlp6RG90T3diR0F3ZENEdlhzK3grWExCZS9zMnJWM3hhWk42eDl4dklVOWM4S201WE1QQ1FuQ2ZmZmQrVVI0ZUhqSlZFZFNTaVVYTHhiZTlMZS8vZjJWdlh2K210WFFZQVJyNGlDUlNzQ3hmQ3R4VXJTMWRlSFFvU1BSNjIvTlhvZEJKY0JIYkVzOUF5R3dISWVlN202YlZ2TnJiMjBQWVRuV0tzT1dZUWlrNDZ4OVdFdDhUT1RCekt5RnBwTGljbW1iY2J5NDMySExoNDdvdmt4QlVWZmJnblBuTHR4VlhhMExEdzcycWRtOSt5LzNGaFlJYy9GS3BRVEJJZjVJejV6SnVzUENQMmhHd21EeGtqUzgrdG9McXhJU1lteVc1V2ZsdzBZNjJrdVBFUzJuUmtlMWpET2UrUVQ4SmNSd2ZZNEpsUHhVazFvS1FNSVFzQ3lMcGN2aUVSRGdkVjFoa2lHcmhrNHkwQXdncFBadVlVRUZYbnYxRC9jYWplMGhUVTFOYTN4OWZlZEZuejVDQ0F2Z0tLVjBTWFIwNUcvZWZQT2RIK2RmcmdEbGhOMG9sQUoxMVZkeDZlS2xJV3RzS2lRU0NZWXZNaUZqRVhSMWRhTzF0ZFVaZ0UwZWl1MGRuZjREdlJNWkFwTk85Y3pYa1EyRFF0VnF0ZkdUVHo1Lys4amhvNCszR2NjckJFVEgrZDM4T1ZKS2NlVktHZXJyRzhvWkNYRGxTaWxhVzRWZHFxNHVTaXhlbWxYcTZlbnFjTEhERE1QQXljbFo3d2lXK2tRenVaR0czWGl2V1JCc0VWdGE2QUNERnJERmVodzg4VWhsVE1ha0VCSkN3TEljZlAxY2NQdkdwQi9OMVdnRVNvR3JaUTE0NSszM3M1Vks1ZjZtcHFhNzVvc3lCc3dLdWJtNStaYzFOZFVwdXNZL3IyNXU3cHowZ2hvTEE2Q3B5WWh6NXk3ZFJTbFZUbldqeU9YeVhwVktBY0lRVUlFbDhDbEhZVFIyb0tOalFBTWJLV0s5M2hEUjIyZmRwYWxRS0NCbG1La3I2UWdnTTNQQnp1aVlxTWZMcnpidzdxUkJZTGJJcWlxclVWUlVEQkFPUmNYRmdzY09DdkhEd3BTa3ZUTjdmZCtvVVJQRExlY0VQYnZKOEN4b1NCbGIyaW9OeHpHU0VkdjFONjlVd3VDbTVXbFljM1BTbks5YlcxN2VoTGQrdjNQZHVYTVhmbVJ2V1d5TnQ3ZDNSK2FpdEgyKy90NGd6R0E5WkFHWUJsalUxdGFqc2JIUlo2cDlHWWJwVlNvVVlJUzJCSUhaRW1sdGJVTjNkN3RXOE1IajBON2VydEhyMjRMNVZqNGJpMVFtaFZ3dXQybnoxSkNRa0tLMHRBV2xXcTBici8wcHFMbjJOZ2MwTmJYaXdvVkx1SGd4RjVVVndwTWd3MEpERUJFUklZWWp6akFDSjFFRUVna0RpWlFCWVliNzFYR2N1ZURJYUJmeDRPc2p1bjRRQWdTSHEzSEgzUXVlZFlUcGhDMG9LNjNIUng4ZGVMRzR1Q3piM3JMWUdpKzFwand3MEg5RWtYaCtQbHhLQWNJUXRCcmFvTmZyWTZiYTM4WEZwY3ZOM2NYcVpwQjZmU3YwZWtPMFZRZVBvYlcxVlZ0ZjN3aVRsVlduWEp4VjhQUlUyN3hWMUtKRnFUdjhBL3pCU1BnL3JNd2xYNEhMbC9OdzVQQy9ZVEMwQ1JwVHBaSWhMVE91S0RZMjhyeEFjVVVFSWtnUlV3d3FYVzZFVzJMUU9oNXF0VFJpYjhJTVc4Y1VGTDcrYm5oZzYrclQ2MjlKZnNPbTc4S3VFSncvZHhuZmZudm1hWHRMWW12YzNUMTFLcFVDbEJJcnJGV0s5dlpPOVBXWm5LZmEwOVhWMWVqcDZWRWpsMXNYaFdiUXQrRnFXZmthcXc0ZVEyT2pQcjZ4b1FuVXlzVmlOM2QzS0JSS20wL2pvNkxDdm9xTmk0UkN3ZTh6SWlDZ25MbS9aRkZoR2M2ZHpVRnJLei9ieDNJYkp5VkhZZm1LVlMvUFZSZmlYSUsvSWg3aGpxQ0QvdzBwNHhFdUM4cVpBK2dzU2xnaVlVQVlpdkFJTDJ6NzZlMzcvM1ByemV2bml6VnNvYUZCajYrK09ubFhTVWw1aHIxbHNUVWpvMGxHZGoyWkNvNEYrdnI2ME5YYk5XV3FPaUhFNU8rdnpYRnpWMWdsbzhIUWlZc1g4N1pZZGZBWUxsL08yOUxVMUR4RkdOMzR5T1FTK0hoN1E2MTJtendWemdxQ2c0TkxGNllsSC9IeWNwOXlYMkw1TVRpVDZlNDJRYS92UWQrRUM1QWpqeVFBV0NoVkJBdlRVaEFmRTJuVFNvZ2k0eU44ZlpjT2I1YUZPWUpoeTVkaExHMkl6QmF5MGdsWXVUWUQ3K3g4WVBPRC83WGlicldhT0ZpNDEvVHA2eldocUxBRUpXVmx2QnMzemdYMCttdWgxM1I2Y0J3cjJFZE1DTUJ4TEFiNis2ZTBpQUVnSU1BdjE4bEpaWldjSmhPSE02ZlBZN3BKSkpSUzVkZGZuOXJZMk5ESzh3anpncGhGWjZ2VnpvaU1pc3J6OC9PN05oMDV4aDJKRUZOcVd2TGVvR0IvWG5JTjk1a2tnNTNYQWZEcDhVWUFpWlFnSk5RYml4WXQzRFh6NFpremt4azUxN0FvNHFObVM0Y1p1ckRHYmh3ZDRRY21GamNGQnhQTGdoM3NUV20yZmdtVUNnYmVXaFdXcm9qQzA5dnVPdjAvUVZERXh3QUFESzFKUkVGVXI5MjFZTkdpK0kvdDlCNW5oZWJtRmhUa1hibkxrVHRVQzZXa3BPS211dnFHd2NRT0JueHZHSE04TUlWSzVRUVhKMWRlU3NuWFY1dm43alpaQnRuazVPVlY0TTkvL3VnTHEwOEE0TFBQL3ZIOHhRdVhCZmlIaDF0WFVWQW9sSEw0K3FyeloyckdGeElZOFZWR1JscXZURDUxanpscklUQ0hFb2FGaFNKOVVlYXVHUnRvMUlqeklHcGljS3BvV1RzVGlwUVFZdHJ4OXIvNlhOemtrTWdrWnQvWWVQY2JJZURvMk1hUzV0ZzB3bEFvNUJKNHVEbkRMOEFMc2ZFKytxek15SjBKQ1dIN282Sjhjbi84bEZXeXpTbGFXcnBRVkZnYVAxaDZjQVlLbzh3dXBhV2xLYi80eGV0UE5UWVlNT3lTNEcrNUVFTGc0ZWtCVjFjM1hwMGN0S0ZCNXhPUzRwR2JlMVZ3VWdkZ0xqNjBaODhuQVgvYStjRm5QM2g0NjJhaHl2RDQ4VzhmL05sUGYvWHo2dXBydkZZa3J3dm5vNERXeHd0UlVXRmZDcFdkTDBGQlh2VWZmWFJnVjJqb3Z4NHRLMjJZZ1JITTcxdmo1WUlGS1NuNjJNZ1FzYmJLTENFRmdCWExrMTdXK25nVVRkMkdtd0VIRHVBNENSaUdaY0NBRUdLU3kybW5qNDk3c2JPelV1L3A2VlFkRU9CVmNhTTUrRmtUQjUxT2g5Ylc5aERNY1VWY1VWRVI4K2FiNzM1ODdPZzM4cjVla3lBbGJGRlFFaWtEUDE4ZmFMVWFYaEVFUVY1ZTlkdTMvKytSdlh1K1dFTlo2NmFxTlZVdCtPMXZkMncwdG5lZU1CZ01hL2hPcXovOTlCK3ZQdi9jYjdaZHZGQUVUdURZRnV1Zk1BUXhzZEVJRFEyYTBRaURoUXVUZHNmRnhUNWFYYVZEZjcvQW9Hc2VFSWJBeTF1TlJkbVpPK2JiV283andwZ1ZjVUtDLzBrQUR0dTllSzdRM0dKQWk4RVFibTg1UnNOWGdWTDUxYXMxa2Q5OGMrYjdEejc0OUk5UEhyOEVTOEE1STVHQThrNXhOdVBpb2tCa1pJUlJvOUh3TGlLK1lzV2FWd0tDM2w1VFcyVjkzZkdLY2gxZS90VmJHUmZPWDJvN2RlcnNmeTVaa3JsdklvVlNWbGFWdW52M1IxOCsvZFRQdFhXMVpzdWZMeFpyMkpMR3FsTEtrSjJkZVRBZ0lNRG1vV3NqaVltSk9QL1c5ajhkdlhEaDRzcUdldHU2YnhtSmVYRTlJaUljVVRIUmgyeDY4aG1BNVZnTURQUXJwallncldNMmpNbkJJRi83MWlPZVQxQUFIUjN0TUJpTU5sZkVnd1Z0SU1TZlJxblpTaS9JTDhieno3MmM5OGpEajQ4b3VUVzRpQU9BY2tUUzE5dnZldXY2ZTV6cTZ4dFJWZG1FcnE3K1lVdVBBSnlBbUZveXVGcnZIK1NEOUl5VVhVS3Nxb1NFa0pQZnZYMDlkcjd6Rnd6MFcxOXJwTDI5Ri9zL09ZeFRwODUra0pBWSs4RXp6L3pTNk9YbFVTcVh5M3M1amtOWFY0KzJwS1E4K3JZTm0xRlowUWlUaWNPMC9KU0VJalV0SHN1WDN6UXJvVjRMVTVKMkJ3VUhyV3hvTU5wMG5ZdHlGR29mWjJTa0w4enpkRlhPYWtyemNFMGFudGMzUjFGWVVJekhIdjNKT1pWS2FSczM4MUNHT0FISG1mREdHOXRQUC8zMFk0c0ZuMGJBZDJLcERDSXFZaHRnanV5aTZPbnRnYWwvZ0ZlVWdCRE1WZUdZTVFYQUo1VUdBSVhKUkhHbHVBNVhpdXZrQUNaWmJoOTU1VmdTTjhiV01PQi9wU3NVVXFRa0ppQWpJMUhRWWc4aHhGUlFVTERxeEluVFgrZGRtbjRFV0ZPakVVMk5aL0h2STJmZDVYSnBobElsaGNuRW9hZTdINER3QWtQalFRaUYxdGNOOTIzNTdzSFkySkJaU1h3SUR3ODVtcEFRaFlLOE1uUjEyUzZibWdJSURQUkhSbGJLcnRsTjJhZFdmUmQxdFFiVTFkcXVhNU9sVjdWRXdvQkRQN3g5Tk5sTlRVM09mRDRMUzNnbjVZYmZ5M2laeGVPTlNpVEVaTGVlZGZNUmx1UFEzMithQTFFVFpKd05HSzFzeDN1ZEg4SEJYbGovbmRVN1EwSkNCSmNVVEV4TVBIclhYUnVLWEYydGl5bWVpUDUrRTlxTnZlanU2aDhWY2padENMQjRTUlp1V1h2enM3TzFMdUx2NzEremRPbWkzVnJmNnpxTlRRdUdJVWhLakVkc2RPU3N1aVVvTjJiVms5Y0dtSzlMeG5ZYmxRejlUam5MNzdPRHFJaHRqcU1WS1IrUGlTN3E2YU55a21QTjJsWFl2UG1PSjYwOXgrYk5tell2WDdFSVV1bk1oV2xOSDdQYkppVTFDZzg4Y1BjTDRlSGhzenFWejh4TTN4a1ZIUW1wekhhM3NOYlhEWXVYWkh3Y0dCZzR5NHZORGhTK1pxZVFabEVSMnhDR01KRExaVFl0K0RJekVITncvM2piU0NiNit3UjR1RHRoMHgxcjhkUlRQMWd3blJYMzhQRHd2Q2VmZXVpeHRQUllhMDh4OHhDQ3NIQWZQUERBM1Njek14ZStQdHZEcTlWdUZVbEpzVVlubFh5d3ZNRDB6c2RJQ09Malk1R1ptZnFlYlNRVUVZS29pRzJJVXFtQVZDcWJBK1V3QjF2RkVIcjlOcEtKL2o2OHc5QnZhclV6dm5QYkttemI5dGhhVzFpSEsxY3UzL0hjODA4OTY1REttQUNCZ1I1NDZBZjM1OTV4eDkyYjdWRUNWYXZWNmpJeTBuZjVCWGdMSzZZOUFWNGFaMlJrcHVwbXE5ZmdqY2hrRDB0UkVkc1FWeGMzdUt0ZGF1d3RoL1ZNNVpPeklBR2xCQnpsUUNtZ1VNcHc3MzBiOGJPZlA3WFlsamZ5cmJldWZmbU4zNzM0bjh0WHB0bDBDajR0Q0JBYkc0U25mL1RmSjMvd2d3ZFdCZ1Y1OFVwWW1Rbmk0dUlPeEVSSDhWd1VtaGhDQUIrdE43SXlGenA4KzYvNWlvTmMzWE1iQW9CUUFtOHZOYlJlTTlGdTNOWk10QUEzM2lMZWVQdHlJTVRjdmVHbTVRdXg0KzJYOXI3MTFzdXF1TGdvbTdXc3NiQjBhZmJ1dDk1NlpkV2RkOTBDamRyWkZzYmZwRXk4a0VlaFZNbVFtUm1INTU1L2FzY1RUeng2azczYlpDVWtoSi9NekY2WTUrcXFIRlRHbzJ1QzgxMXdWYXJrU0VpTXc0SUZjZnRtUTI2UjY1a0RDMHR6QTBaQ0VCd1VERGNmamMwcmJ6a1NNcGtVYWk4VlFrTUNzWExWU3QybXUyNTlKRDAxK2NEM3YzL2ZqSTJabUJoN3RLNnVMdWJBNGtQYjkrMzcrNXJpd2pLMHRuWlArN3dqdzR5dXcxTGlsWmlUVXdLRE5MajU1aFc0Nzc0N055OWFsT0V3ZFZOVzNMVGt0Yy8yZjdFbjU2SzVKZUhvaHdnL3g3Rkc0NHpVMU1UejFrUzVpSXlGZ0JEaFBudFJFZHNBQ3NERFU0V3dpTkRTWUIrZm1TZ0NZSGMwYWhkNGE5VklTazdBOGhXWkJ6UFNNM2FGaHdjZW5TMnJjSEFsZjIxK2Z0R2FMejQvOU9iQmYzd1ZYMUZlaGVacjAxd2JIWlVoTjZ5VUNRQ3BqQ0FpTWhBclZ5M0Z4anR1ZVNJcElXR2ZWcXZWVFc5QTJ4SVZGWGNzSlNVWmxSVzFNQmdzRHljaE5VRUFQejlmcEtlbnpFS0Jud2xrc0dVYisra3lsTTV2WFZVNHdnQVlDc2ZqYzd5NW5KYW9pRzBCb2ZEeDBTQWhJZnJBWE03UEo0UkFLcE5BcVpEQ3hVMEpyWThQQWdNREVCb1dqTGk0cUlNTEZpUjhuSkFRZGNqTnpjMTJVZlFDR2ZSQko1U1VsR2VjT25YbTZWT256dDVia0ZlQUsxZHEwRDJZcU1FWGkyK1ZNSU9CK0RESDBnWUdxcEdXRVkrTXpJemM1Y3VXdkJZZEhmR2x2ZDBRRStIbDVWVC80WWQvM1hYeTFEY1A2ZzJXTlVQQ095Sk1KbU9RbEp5QXFLalFvek1tNUpTd2dNQXlxek1Dc1NRdU1TQU1oK25JWk01TUhmc2xYSytZTFE5K0IxVEVjOHR0VFFISXBSSkVSMGNoSmlaaVJnTGhGeTFLM2ZuODgwOXJ1cnY3cGl5eVBoMWtNbG1uaTR1THp0M2RwY0haMlVtdlZudFZlSGlvaSt5NUlEVVJNVEVSNXdGc0JyQzVzTEJrV1U1Ty90YWNuTHl0MVZVMVVyM2VBS094SFIyZG5Sam82NGVKWmRIZng0TGxPRWdsREtSU0FpSWhrTXRrY0hkM2gwS2hnSnU3SzZLam94QWJHM1EwSXlOdFYxaFkySUc1MGhCMjdkcmx6em81T2V2cjYrc3pDQ00xVGFhRENSbmRubFVpa1pqUzB4ZnNtdjNZWVVDajBlZzJiZnJ1UTNGeHNSdE1KdFlCRXFFNEFBd1loakZSYXBMR3hVVWU1SE1OeE1kSEhubm1wMC9zYW04M0JreTJINlZFTXZielZ5cmxuVmxaR1c4N29DSjJxUEJ1SGxENCtYdGk1YzJManlZa3hNeEk0YVJCMzkzOU0zSHUrY0RnNTM0U3dFTk5UVTNPSnBNcFFLZHJqVzQxNnNPN08zczE3ZTFkMnI2K1BrMS9mNzlTTHBmMHl1VXd5dVhLTG8xR1U2NVV5bzFhclRaUG85RlVPS3JWT3hXRDdwSm43QzJIVUFZekVYY05ibk9Xd1JuaVE5TTVoOE1wWWtxcGxBNnRBQk9yV3RiWVhpYnp2MlN3QjgxUUMyekczSWtrS1NrSlM1WXRlZTFHSy8zcGlBeGFNS1dZNDZWSVJXNHNITlFQWU9rUzdSaTI4Y2c0VFVzM0JrTE1iWEtDZ2p5eDZZNTFlOU1XSkRoODJVQVJFUkhIeEVFVnNlTmhzZEE1emx3eWtWSUtUMDluM0xmbE51UHExV3ZuM0xSUVJFVEVjWEE0MTRRalkzRkpTQmdHM3Q0dXVIM2pPdnp3aHc4dmRzVEZMQkVSa2JtRHFJaDVNdXduSnZEd2NNTEdUYmZpc2YvL3lFMWlFTHlJaU1oMEVSV3hBQWdoQ0FoMHgzODlkRS9Od3ovNDRUSi9mL1VjcmlzaElpTGlLTnpBaXRpY3cycHBkamsyTW1MVW5vU0JWdXVKak14azNQOGZtOTY0ODg3Ym54RWpKRVJFUkd5Rnd5cGl5bzBzV0c3N0VEWkxQemFHSVNOYW81c3pheWlsWUJnQ3BWS0d3Q0F2UkVWSFlmWHE1U2RYcjE3MWJFSkN1TmhrVlVSRXhLWTRxQ0ttWURrS1pnYWoxNmpGR2g0MGhjMFZxd0IzTnhVOE5hNElDd3RHV25xeWNmSGlqRGNXTGt5MlE5Y0NFUkdSR3dXSFU4U3VyZ3BkYUhBb1hKemJabXdNQWtBbWs4UFR3d05LSnlVVWNnVThQRnpnNjZzMVJrVUhIVm13SUhGdllHRGdrYm1TNGlvaUlqSzNjWXlNaVJFWURBYjNob1pyQy90TXR1K0dEQUFnakVrS1FDNW5qRktwdEZjdWx4czlQVDJOcnE2dVJ0SHZLeUlpWWcvK0R5cktMRThXRlA2RUFBQUFBRWxGVGtTdVFtQ0MiLz48L3BhdHRlcm4+PC9kZWZzPjxnPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMjgiIGhlaWdodD0iMzAiIHJ4PSIwIiBmaWxsPSJ1cmwoI21hc3Rlcl9zdmcwXzQ4XzU3NzMpIiBmaWxsLW9wYWNpdHk9IjEiLz48L2c+PC9zdmc+"}},"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":"client.crisp.chat/static/stylesheets/common_default_23e4212.css","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:50.198Z","timestamp":1785127670198,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /static/stylesheets/common_default_23e4212.css HTTP/1.1\r\nHost: client.crisp.chat\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://buvei.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-type: text/css\r\naccess-control-allow-credentials: false\r\naccess-control-allow-headers: Content-Type, Origin\r\naccess-control-allow-methods: HEAD, GET, OPTIONS\r\naccess-control-allow-origin: *\r\naccess-control-max-age: 300\r\ncache-control: public, max-age=315360000\r\ncross-origin-resource-policy: cross-origin\r\nx-content-type-options: nosniff\r\nexpires: Thu, 24 Jul 2036 04:47:50 GMT\r\nlast-modified: Tue, 21 Jul 2026 15:59:21 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\npriority: u=2,i=?0\r\nage: 30811\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: W/\"6a5f9759-2842\"\r\ncontent-encoding: br\r\ncf-ray: a2190222ca99c759-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":10306,"size_decoded":3369,"mime_type":"text/css","magic":"ASCII text, with very long lines (10211)","md5":"513e4007bb6839e8ab93b81f69a82e2a","sha1":"7aa3e41a614e9f120e50d1be926f665f190d57c4","sha256":"e23d69a629555e5458ff385a924cccdd1dd61720a265dd27a924a7ff44e67ade","sha512":"e3c46d675ef32e6f1305828f061688dc814b88f9f7edbd3e56d81fadb0378cc2c4b3445c274259ff20d763adf9746ad34d27839caa6d96e196c8fb2388811207","ssdeep":"192:NTKc0ICY/bmSOXSyKW/M2tgJDn71WXfzIN155s:BWYiVgY0ds","tlshash":"b5220e9bf1c025266c9641aa8b49b73d083e9ef75f00bea8d684337847853ef3665730","first_seen":"2026-07-21T21:10:40.8966Z","last_seen":"2026-07-29T15:29:45.624378Z","times_seen":13,"resource_available":false,"data":"LyoqCiAqIGNyaXNwLWNsaWVudAogKiBAdmVyc2lvbiB2NC44LjcgMjNlNDIxMgogKiBAYXV0aG9yIENyaXNwIElNIFNBUwogKiBAZGF0ZSA3LzIxLzIwMjYKICovCi5jcmlzcC1jbGllbnQgLmNjLW9iYnhhe2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbGlnaHQpKSFpbXBvcnRhbnQ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O3dpZHRoOjI3NnB4IWltcG9ydGFudDt6LWluZGV4OmNhbGModmFyKC0tY3Jpc3AtY3VzdG9taXphdGlvbi1jb250YWluZXItaW5kZXgpICsgNSkhaW1wb3J0YW50O2JveC1zaGFkb3c6MCA4cHggMjRweCAwIHJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLWxpZ2h0KSwgLjEyKSwgMCA2cHggNnB4IDAgcmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbGlnaHQpLCAuMDIpIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjI0cHghaW1wb3J0YW50O3BhZGRpbmc6MCAxMnB4IWltcG9ydGFudDtwb3NpdGlvbjpmaXhlZCFpbXBvcnRhbnQ7dG9wOjUwJSFpbXBvcnRhbnQ7bGVmdDo1MCUhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnQ7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1vYmJ4YSAuY2Mta2M4Y2V7aGVpZ2h0OjgwcHg7d2lkdGg6ODBweCFpbXBvcnRhbnQ7Ym94LXNoYWRvdzowIDNweCA0cHggMCByZ2IodmFyKC0tY3Jpc3AtY29sb3Itc2hhZG93LW5vcm1hbCksIC4wNCkhaW1wb3J0YW50O21hcmdpbi10b3A6NjRweCFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9iYnhhIC5jYy1rYzhjZSwuY3Jpc3AtY2xpZW50IC5jYy1vYmJ4YSAuY2Mta2M4Y2U6YmVmb3JlLC5jcmlzcC1jbGllbnQgLmNjLW9iYnhhIC5jYy1rYzhjZTphZnRlciwuY3Jpc3AtY2xpZW50IC5jYy1vYmJ4YSAuY2Mta2M4Y2UgLmNjLTF3bGZne2JvcmRlci1yYWRpdXM6MTAwJSFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9iYnhhIC5jYy1rYzhjZTpiZWZvcmUsLmNyaXNwLWNsaWVudCAuY2Mtb2JieGEgLmNjLWtjOGNlOmFmdGVyLC5jcmlzcC1jbGllbnQgLmNjLW9iYnhhIC5jYy1rYzhjZSAuY2MtMXdsZmd7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O2luc2V0OjAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9iYnhhIC5jYy1rYzhjZTpiZWZvcmUsLmNyaXNwLWNsaWVudCAuY2Mtb2JieGEgLmNjLWtjOGNlOmFmdGVye2FuaW1hdGlvbjoxLjVzIGxpbmVhciBpbmZpbml0ZSBjYy03a25tZjtjb250ZW50OiIiIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNsaXA6cGFkZGluZy1ib3ghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9iYnhhIC5jYy1rYzhjZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWwpLCAuMDgpIWltcG9ydGFudDt6LWluZGV4OjEhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9iYnhhIC5jYy1rYzhjZTphZnRlcnthbmltYXRpb24tZGVsYXk6MXM7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWwpLCAuMTgpIWltcG9ydGFudDt6LWluZGV4OjIhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9iYnhhIC5jYy1rYzhjZSAuY2MtMXdsZmd7ei1pbmRleDozIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1vYmJ4YSAuY2MtYXI5ZWF7bWFyZ2luLXRvcDo0OHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1vYmJ4YSAuY2MtYXI5ZWEgLmNjLTZ6cGJoLC5jcmlzcC1jbGllbnQgLmNjLW9iYnhhIC5jYy1hcjllYSAuY2MtMThrcTl7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtd2hpdGUtbm9ybWFsKSkhaW1wb3J0YW50O2xldHRlci1zcGFjaW5nOi4xcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9iYnhhIC5jYy1hcjllYSAuY2MtNnpwYmh7bGluZS1oZWlnaHQ6MThweDtmb250LXNpemU6MTUuNnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1vYmJ4YSAuY2MtYXI5ZWEgLmNjLTE4a3E5e2xpbmUtaGVpZ2h0OjE3cHg7b3BhY2l0eTouNyFpbXBvcnRhbnQ7bWFyZ2luLXRvcDo3cHghaW1wb3J0YW50O2ZvbnQtc2l6ZToxMi44cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9iYnhhIC5jYy1vZTBmOXtsaW5lLWhlaWdodDoxOHB4O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LXdoaXRlLW5vcm1hbCksIC43KSFpbXBvcnRhbnQ7bWFyZ2luLXRvcDoxOHB4IWltcG9ydGFudDttYXJnaW4taW5saW5lOjEwcHghaW1wb3J0YW50O2ZvbnQtc2l6ZToxMi44cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9iYnhhIC5jYy1lanY3N3ttYXJnaW4tdG9wOjMwcHghaW1wb3J0YW50O21hcmdpbi1ib3R0b206MzJweCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7aW5zZXQtaW5saW5lOjAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9iYnhhIC5jYy1lanY3NyAuY2MtMWpwdzh7d2lkdGg6OThweCFpbXBvcnRhbnQ7cGFkZGluZzowIWltcG9ydGFudDtsaXN0LXN0eWxlLXR5cGU6bm9uZSFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9iYnhhIC5jYy1lanY3NyAuY2MtMWpwdzggLmNjLTF3dmgze2hlaWdodDo1NnB4O2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1kYXJrKSkgMCUsIHJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktdWx0cmEtZGFyaykpIDEwMCUpIWltcG9ydGFudDtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnQ7d2lkdGg6NTZweCFpbXBvcnRhbnQ7Ym94LXNoYWRvdzowIDFweCAycHggMCByZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwpLCAuMDgpLCBpbnNldCAwIDFweCAycHggMCByZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWwpLCAuMyksIGluc2V0IDAgLTFweCAycHggMCByZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwpLCAuMTIpIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjE4cHghaW1wb3J0YW50O3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LHRyYW5zZm9ybSAuMTVzIGVhc2UtaW4tb3V0IWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtb2JieGEgLmNjLWVqdjc3IC5jYy0xanB3OCAuY2MtMXd2aDM6aG92ZXJ7ZmlsdGVyOmJyaWdodG5lc3MoMS4wNikhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9iYnhhIC5jYy1lanY3NyAuY2MtMWpwdzggLmNjLTF3dmgzOmFjdGl2ZXtmaWx0ZXI6YnJpZ2h0bmVzcygxLjAzKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtb2JieGEgLmNjLWVqdjc3IC5jYy0xanB3OCAuY2MtMXd2aDM6YmVmb3Jle2hlaWdodDoyNnB4O2NvbnRlbnQ6IiIhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSkhaW1wb3J0YW50O2N1cnNvcjpwb2ludGVyIWltcG9ydGFudDt3aWR0aDoyNnB4IWltcG9ydGFudDttYXJnaW4tdG9wOjE1cHghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDstd2Via2l0LW1hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDttYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7bWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50Oy13ZWJraXQtbWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDttYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9iYnhhIC5jYy1lanY3NyAuY2MtMWpwdzggLmNjLTF3dmgzOmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxcHgpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1vYmJ4YSAuY2MtZWp2NzcgLmNjLTFqcHc4IC5jYy04OXZ5cXtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC13aGl0ZS1ub3JtYWwpKSFpbXBvcnRhbnQ7bGV0dGVyLXNwYWNpbmc6LjNweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDoxMXB4IWltcG9ydGFudDtmb250LXNpemU6MTIuOHB4IWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1vYmJ4YSAuY2MtZWp2NzcgLmNjLTFqcHc4LS1jb2xvci1yZWQgLmNjLTF3dmgze2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KCNmZjNkNTUgMCUsI2RkMjMzYiAxMDAlKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtb2JieGEgLmNjLWVqdjc3IC5jYy0xanB3OC0tY29sb3ItcmVkIC5jYy0xd3ZoMzpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1yZWQtdWx0cmEtZGFyaykpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1vYmJ4YSAuY2MtZWp2NzcgLmNjLTFqcHc4LS1jb2xvci1ncmVlbiAuY2MtMXd2aDN7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoIzViZGQ0YSAwJSwjM2FiODI5IDEwMCUpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1vYmJ4YSAuY2MtZWp2NzcgLmNjLTFqcHc4LS1jb2xvci1ncmVlbiAuY2MtMXd2aDM6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JlZW4tdWx0cmEtZGFyaykpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1vYmJ4YSAuY2MtZWp2NzcgLmNjLTFqcHc4LS1pY29uLXZpZGVvIC5jYy0xd3ZoMzpiZWZvcmV7LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjI2JTIyJTIwaGVpZ2h0JTNEJTIyMjYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNiUyMDI2JTIyJTNFJTNDY2xpcFBhdGglMjBpZCUzRCUyMmElMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0xMy45NSUyMDBxMS42NzQlMjAwJTIwMi44NjIlMjAxLjE4OEMxOCUyMDIuMzc2JTIwMTglMjAyLjkzNCUyMDE4JTIwNC4wNXYyLjMyTDIzLjY2Ny43MTdBLjg0Ljg0JTIwMCUyMDAlMjAxJTIwMjQuMy40NXEuMTY4JTIwMCUyMC4zNTIuMDcuNTQ4LjI0LjU0OC44M3YxNS4zcTAlMjAuNTktLjU0OC44M2ExJTIwMSUyMDAlMjAwJTIwMS0uMzUyLjA3Ljg0Ljg0JTIwMCUyMDAlMjAxLS42MzMtLjI2N0wxOCUyMDExLjYxNnYyLjMzNHEwJTIwMS42NzQtMS4xODglMjAyLjg2MlQxMy45NSUyMDE4aC05LjlxLTEuNjc0JTIwMC0yLjg2Mi0xLjE4OFQwJTIwMTMuOTV2LTkuOXEwLTEuNjc0JTIwMS4xODgtMi44NjJDMi4zNzYlMjAwJTIwMi45MzQlMjAwJTIwNC4wNSUyMDB6JTIyJTJGJTNFJTNDJTJGY2xpcFBhdGglM0UlM0NnJTIwY2xpcC1wYXRoJTNEJTIydXJsJTI4JTIzYSUyOSUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyOC40JTIwNCUyOSUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTAlMjAwaDI1LjJ2MThIMHolMjIlMkYlM0UlM0MlMkZnJTNFJTNDJTJGc3ZnJTNFKTstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtb2JieGEgLmNjLWVqdjc3IC5jYy0xanB3OC0taWNvbi1hdWRpbyAuY2MtMXd2aDM6YmVmb3Jley0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIyNiUyMiUyMGhlaWdodCUzRCUyMjI2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjYlMjAyNiUyMiUzRSUzQ2NsaXBQYXRoJTIwaWQlM0QlMjJhJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNNC42MjUlMjAwcS4yMTklMjAwJTIwLjMyOC4wNDcuMjgyLjA5My44MjglMjAxLjE4Ny4xNzIuMjk3LjQ2OS44NDRjLjI5Ny41NDcuMzguNjk1LjU0Ny45OTJzLjMyOC41NzYuNDg0LjgzNnEuMDQ4LjA2My4yNzQuMzljLjIyNi4zMjguMjYzLjQwNS4zMzYuNTU2UzglMjA1LjE1JTIwOCUyMDUuMjk3cTAlMjAuMzEzLS40NDUuNzgxYy0uNDQ1LjQ2OC0uNjIuNi0uOTcuODZzLS42Ny41MzYtLjk2OC44MjgtLjQ0NS41My0uNDQ1LjcxOHEwJTIwLjE0LjA3OC4zNTJjLjA3OC4yMTIuMDk2LjI0Ny4xMzMuMzJzLjExLjE5OC4yMTkuMzc1LjE2OS4yNzYuMTguMjk3UTYuOTY3JTIwMTEuOTY4JTIwOC41JTIwMTMuNWMxLjUzMiUyMDEuNTMyJTIwMi4yNDUlMjAxLjkyNyUyMDMuNjcyJTIwMi43MTlxLjAzLjAxNS4yOTcuMThjLjI2Ny4xNjQuMzAyLjE4Mi4zNzUuMjE4cy4xOC4wOC4zMi4xMzMuMjU4LjA3OC4zNTIuMDc4cS4yODElMjAwJTIwLjcxOC0uNDQ1Yy40MzctLjQ0NS41NjgtLjYyLjgyOS0uOTY5cy41NDYtLjY3Mi44NTktLjk2OS41NzMtLjQ0NS43ODEtLjQ0NXEuMjE5JTIwMCUyMC40NDUuMTFjLjIyNi4xMS4zMzYuMTg0LjU1NS4zMzVzLjM1LjI0Mi4zOS4yNzRxLjM5Mi4yMzQuODM3LjQ4NGMuNDQ1LjI1LjYyNy4zNS45OTIuNTQ3cy42NDYuMzU0Ljg0NC40NjlxMS4wOTQuNTQ2JTIwMS4xODcuODI4YS45LjklMjAwJTIwMCUyMDElMjAuMDQ3LjMyOHEwJTIwLjQyMS0uMTU2JTIwMS4xMDJjLS4xNTYuNjgtLjIxNC44MS0uMzI4JTIwMS4wN3EtLjMzLjc4LTEuOTA3JTIwMS42NTZRMTguMTQlMjAyMiUyMDE2LjcwMyUyMDIycS0uNDIyJTIwMC0uODItLjA1NWMtLjM5OC0uMDU1LS41NjUtLjEwMS0uODk5LS4xOTVzLS41OC0uMTctLjc0Mi0uMjI3LS40NS0uMTY0LS44NjctLjMyLS42NzItLjI1LS43NjYtLjI4MWExNCUyMDE0JTIwMCUyMDAlMjAxLTIuNzM0LTEuMjk3cS0xLjk5OS0xLjIzNC00LjEzMy0zLjM2N2MtMi4xMzQtMi4xMzMtMi41NDQtMi44LTMuMzY3LTQuMTMzcS0uNzUtMS4yMDMtMS4yOTctMi43MzQtLjA0Ny0uMTQxLS4yODEtLjc2NkMuNTYzJTIwOCUyMC41MzQlMjA3LjkxOS40NzclMjA3Ljc1OFMuMzQ0JTIwNy4zNDkuMjUlMjA3LjAxNnMtLjE1OS0uNjMzLS4xOTUtLjg5OVMwJTIwNS41NzglMjAwJTIwNS4yOTdRMCUyMDMuODYuNzk3JTIwMi4zOSUyMDEuNjcyLjgxMyUyMDIuNDUzLjQ4NHEuMzktLjE3MSUyMDEuMDctLjMyOEM0LjIwMyUyMDAlMjA0LjM0MyUyMDAlMjA0LjYyNSUyMDAlMjIlMkYlM0UlM0MlMkZjbGlwUGF0aCUzRSUzQ2clMjBjbGlwLXBhdGglM0QlMjJ1cmwlMjglMjNhJTI5JTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MiUyMDIlMjklMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0wJTIwMGgyMnYyMkgweiUyMiUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UpOy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1vYmJ4YSAuY2MtZWp2NzcgLmNjLTFqcHc4LS1pY29uLXZpZXcgLmNjLTF3dmgzOmJlZm9yZXstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwc3Ryb2tlJTNEJTIyY3VycmVudENvbG9yJTIyJTIwc3Ryb2tlLWxpbmVjYXAlM0QlMjJyb3VuZCUyMiUyMHN0cm9rZS1saW5lam9pbiUzRCUyMnJvdW5kJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMi4yJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAyNCUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTIlMjAxMnMzLjUtNyUyMDEwLTclMjAxMCUyMDclMjAxMCUyMDctMy41JTIwNy0xMCUyMDctMTAtNy0xMC03JTIyJTJGJTNFJTNDY2lyY2xlJTIwY3glM0QlMjIxMiUyMiUyMGN5JTNEJTIyMTIlMjIlMjByJTNEJTIyMyUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9iYnhhIC5jYy1lanY3NyAuY2MtMWpwdzgtLWljb24tZGVjbGluZSAuY2MtMXd2aDM6YmVmb3Jley0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIyNiUyMiUyMGhlaWdodCUzRCUyMjI2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjYlMjAyNiUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIybm9uZSUyMiUyMHN0cm9rZSUzRCUyMiUyMzAwMCUyMiUyMHN0cm9rZS1saW5lY2FwJTNEJTIycm91bmQlMjIlMjBzdHJva2UtbWl0ZXJsaW1pdCUzRCUyMjEwJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMyUyMiUyMGQlM0QlMjJNNi41NzIlMjAxOS4yODglMjAxOS45ODYlMjA2LjU4Mm0wJTIwMTIuNzA2TDYuNTcyJTIwNi41ODIlMjIlMkYlM0UlM0MlMkZzdmclM0UpOy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudH0uY2MtMXhrYTJ7Ym94LXNoYWRvdzowIDJweCA0cHggMCByZ2IodmFyKC0tY3Jpc3AtY29sb3Itc2hhZG93LW5vcm1hbCksIC4wNSkhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgcmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbm9ybWFsKSwgLjEpIWltcG9ydGFudDtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC1ibGFjay1ub3JtYWwpKSFpbXBvcnRhbnQ7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6OHB4IWltcG9ydGFudDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMXMgZWFzZS1pbi1vdXQsYm94LXNoYWRvdyAuMXMgZWFzZS1pbi1vdXQsdHJhbnNmb3JtIC4xcyBlYXNlLWluLW91dCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5jYy0xeGthMjpob3Zlcntib3JkZXItY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbm9ybWFsKSwgLjE3NSkhaW1wb3J0YW50fS5jYy0xeGthMjphY3RpdmV7Ym94LXNoYWRvdzowIDFweCAycHggMCByZ2IodmFyKC0tY3Jpc3AtY29sb3Itc2hhZG93LW5vcm1hbCksIC4wNCkhaW1wb3J0YW50O3RyYW5zZm9ybTp0cmFuc2xhdGVZKDFweCkhaW1wb3J0YW50fS5jYy0xeGthMi0tdGlueXtsaW5lLWhlaWdodDoxNnB4O2xldHRlci1zcGFjaW5nOi4wNzVweCFpbXBvcnRhbnQ7cGFkZGluZzo1cHggMTVweCA2cHghaW1wb3J0YW50O2ZvbnQtc2l6ZToxMC44cHghaW1wb3J0YW50fS5jYy0xeGthMi0tc21hbGx7bGluZS1oZWlnaHQ6MThweDtsZXR0ZXItc3BhY2luZzouMDk1cHghaW1wb3J0YW50O3BhZGRpbmc6N3B4IDIwcHggOHB4IWltcG9ydGFudDtmb250LXNpemU6MTEuNnB4IWltcG9ydGFudH0uY2MtMXhrYTItLWRlZmF1bHR7bGluZS1oZWlnaHQ6MjBweDtsZXR0ZXItc3BhY2luZzouMTVweCFpbXBvcnRhbnQ7cGFkZGluZzo4cHggMjVweCA5cHghaW1wb3J0YW50O2ZvbnQtc2l6ZToxMi44cHghaW1wb3J0YW50fS5jYy0xeGthMi0tbGFyZ2V7bGluZS1oZWlnaHQ6MjFweDtsZXR0ZXItc3BhY2luZzouMTVweCFpbXBvcnRhbnQ7cGFkZGluZzoxMHB4IDI1cHggMTFweCFpbXBvcnRhbnQ7Zm9udC1zaXplOjEzLjJweCFpbXBvcnRhbnR9LmNjLTF4a2EyLS10aGVtZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS01MDApKSFpbXBvcnRhbnR9LmNjLTF4a2EyLS10aGVtZSwuY2MtMXhrYTItLXRoZW1lOmlzKGEpe2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS1yZXZlcnNlKSkhaW1wb3J0YW50fS5jYy0xeGthMi0tZGlzYWJsZWR7cG9pbnRlci1ldmVudHM6bm9uZSFpbXBvcnRhbnQ7b3BhY2l0eTouNiFpbXBvcnRhbnR9LmNjLTF4a2EyLS1yb3VuZGVke2JvcmRlci1yYWRpdXM6MTlweCFpbXBvcnRhbnR9Cg=="}},"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":"buvei.com/_next/static/chunks/antd-0707a2b8bda5b1ac.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.445Z","timestamp":1785127668445,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/static/chunks/antd-0707a2b8bda5b1ac.js HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: application/javascript; charset=UTF-8\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\ncache-control: public, max-age=31536000, immutable\r\naccept-ranges: bytes\r\nlast-modified: Mon, 29 Jun 2026 05:34:13 GMT\r\netag: W/\"1548d5-19f11def808\"\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nage: 334919\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=PuRJoj1au5e84u%2BBrAUSqIYPrNVxaUhuzVIbY50w7nb6Y0%2Bu2AS%2BVgAOp6ALUeMV6BwdpNJgN0UtJrCLiDJKUGcfivh9PfnZFNjQUYmkt4JwXq7XU5AkDeADRQ%3D%3D\"}]}\r\ncf-ray: a2190217cb5a8be6-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"]}],"data":{"size":1394901,"size_decoded":330375,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (65536), with no line terminators","md5":"54cb5ae19192c65f2a6f1afff00e4df7","sha1":"d9f8b7d23de281b5f5276cf7e9d0b46082c5e3bb","sha256":"5d159bb6888f4c76c46edd46406c72f85f30d53954d17bfef89288bf1c363b57","sha512":"5e9b1abd0da0f2fd9f5cf29ec69056829241e3d08611735b6978bd9c233a7c8356ed18a90c1a9001ebf98ed34ce7ec301433336e9d9742718edc991e0b3ed3f7","ssdeep":"6144:zLKuW2JjEaLowYEG+piAxKuqcBROCPGOaonptmH1nMojdKKQ4yOVZ+fkLDveYZ5k:p1DLrAzCPGOaGtmryIT/NH/RrRFxMzRV","tlshash":"b9255d30b345386344e720eac0bf891ae22b5211f51d9dd0e67bd8d829d4b4c967bfb9","first_seen":"2026-07-27T03:56:11.673976Z","last_seen":"2026-07-27T10:05:53.922889Z","times_seen":4,"resource_available":false,"data":"dHJ5eyFmdW5jdGlvbigpe3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sbj0obmV3IGUuRXJyb3IpLnN0YWNrO24mJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbbl09Ijg0OWJhYmQ4LWQxZDktNGIzNi04MGMwLWJjZjNhMjUxYTI1NCIsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9InNlbnRyeS1kYmlkLTg0OWJhYmQ4LWQxZDktNGIzNi04MGMwLWJjZjNhMjUxYTI1NCIpfSgpfWNhdGNoKGUpe30oc2VsZi53ZWJwYWNrQ2h1bmtfTl9FPXNlbGYud2VicGFja0NodW5rX05fRXx8W10pLnB1c2goW1s4MDI0XSx7ODQ4OTg6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1JfOmZ1bmN0aW9uKCl7cmV0dXJuIGdlbmVyYXRlfSxFVjpmdW5jdGlvbigpe3JldHVybiBnb2xkfSxUaTpmdW5jdGlvbigpe3JldHVybiBwcmVzZXRQYWxldHRlc30sZXo6ZnVuY3Rpb24oKXtyZXR1cm4gcHJlc2V0UHJpbWFyeUNvbG9yc319KTt2YXIgZXM9X193ZWJwYWNrX3JlcXVpcmVfXygyNDMyNyksZGFya0NvbG9yTWFwPVt7aW5kZXg6NyxhbW91bnQ6MTV9LHtpbmRleDo2LGFtb3VudDoyNX0se2luZGV4OjUsYW1vdW50OjMwfSx7aW5kZXg6NSxhbW91bnQ6NDV9LHtpbmRleDo1LGFtb3VudDo2NX0se2luZGV4OjUsYW1vdW50Ojg1fSx7aW5kZXg6NCxhbW91bnQ6OTB9LHtpbmRleDozLGFtb3VudDo5NX0se2luZGV4OjIsYW1vdW50Ojk3fSx7aW5kZXg6MSxhbW91bnQ6OTh9XTtmdW5jdGlvbiBnZXRIdWUoaHN2LGksbGlnaHQpe3ZhciBodWU7cmV0dXJuKGh1ZT1NYXRoLnJvdW5kKGhzdi5oKT49NjAmJjI0MD49TWF0aC5yb3VuZChoc3YuaCk/bGlnaHQ/TWF0aC5yb3VuZChoc3YuaCktMippOk1hdGgucm91bmQoaHN2LmgpKzIqaTpsaWdodD9NYXRoLnJvdW5kKGhzdi5oKSsyKmk6TWF0aC5yb3VuZChoc3YuaCktMippKTwwP2h1ZSs9MzYwOmh1ZT49MzYwJiYoaHVlLT0zNjApLGh1ZX1mdW5jdGlvbiBnZXRTYXR1cmF0aW9uKGhzdixpLGxpZ2h0KXt2YXIgc2F0dXJhdGlvbjtyZXR1cm4gMD09PWhzdi5oJiYwPT09aHN2LnM/aHN2LnM6KChzYXR1cmF0aW9uPWxpZ2h0P2hzdi5zLS4xNippOjQ9PT1pP2hzdi5zKy4xNjpoc3YucysuMDUqaSk+MSYmKHNhdHVyYXRpb249MSksbGlnaHQmJjU9PT1pJiZzYXR1cmF0aW9uPi4xJiYoc2F0dXJhdGlvbj0uMSksc2F0dXJhdGlvbjwuMDYmJihzYXR1cmF0aW9uPS4wNiksTWF0aC5yb3VuZCgxMDAqc2F0dXJhdGlvbikvMTAwKX1mdW5jdGlvbiBnZXRWYWx1ZShoc3YsaSxsaWdodCl7cmV0dXJuIE1hdGgucm91bmQoMTAwKk1hdGgubWF4KDAsTWF0aC5taW4oMSxsaWdodD9oc3YudisuMDUqaTpoc3Yudi0uMTUqaSkpKS8xMDB9ZnVuY3Rpb24gZ2VuZXJhdGUoY29sb3Ipe2Zvcih2YXIgb3B0cz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30scGF0dGVybnM9W10scENvbG9yPW5ldyBlcy50KGNvbG9yKSxoc3Y9cENvbG9yLnRvSHN2KCksaT01O2k+MDtpLT0xKXt2YXIgYz1uZXcgZXMudCh7aDpnZXRIdWUoaHN2LGksITApLHM6Z2V0U2F0dXJhdGlvbihoc3YsaSwhMCksdjpnZXRWYWx1ZShoc3YsaSwhMCl9KTtwYXR0ZXJucy5wdXNoKGMpfXBhdHRlcm5zLnB1c2gocENvbG9yKTtmb3IodmFyIF9pPTE7X2k8PTQ7X2krPTEpe3ZhciBfYz1uZXcgZXMudCh7aDpnZXRIdWUoaHN2LF9pKSxzOmdldFNhdHVyYXRpb24oaHN2LF9pKSx2OmdldFZhbHVlKGhzdixfaSl9KTtwYXR0ZXJucy5wdXNoKF9jKX1yZXR1cm4iZGFyayI9PT1vcHRzLnRoZW1lP2RhcmtDb2xvck1hcC5tYXAoZnVuY3Rpb24oX3JlZil7dmFyIGluZGV4PV9yZWYuaW5kZXgsYW1vdW50PV9yZWYuYW1vdW50O3JldHVybiBuZXcgZXMudChvcHRzLmJhY2tncm91bmRDb2xvcnx8IiMxNDE0MTQiKS5taXgocGF0dGVybnNbaW5kZXhdLGFtb3VudCkudG9IZXhTdHJpbmcoKX0pOnBhdHRlcm5zLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYy50b0hleFN0cmluZygpfSl9dmFyIHByZXNldFByaW1hcnlDb2xvcnM9e3JlZDoiI0Y1MjIyRCIsdm9sY2FubzoiI0ZBNTQxQyIsb3JhbmdlOiIjRkE4QzE2Iixnb2xkOiIjRkFBRDE0Iix5ZWxsb3c6IiNGQURCMTQiLGxpbWU6IiNBMEQ5MTEiLGdyZWVuOiIjNTJDNDFBIixjeWFuOiIjMTNDMkMyIixibHVlOiIjMTY3N0ZGIixnZWVrYmx1ZToiIzJGNTRFQiIscHVycGxlOiIjNzIyRUQxIixtYWdlbnRhOiIjRUIyRjk2IixncmV5OiIjNjY2NjY2In0scmVkPVsiI2ZmZjFmMCIsIiNmZmNjYzciLCIjZmZhMzllIiwiI2ZmNzg3NSIsIiNmZjRkNGYiLCIjZjUyMjJkIiwiI2NmMTMyMiIsIiNhODA3MWEiLCIjODIwMDE0IiwiIzVjMDAxMSJdO3JlZC5wcmltYXJ5PXJlZFs1XTt2YXIgdm9sY2Fubz1bIiNmZmYyZTgiLCIjZmZkOGJmIiwiI2ZmYmI5NiIsIiNmZjljNmUiLCIjZmY3YTQ1IiwiI2ZhNTQxYyIsIiNkNDM4MGQiLCIjYWQyMTAyIiwiIzg3MTQwMCIsIiM2MTBiMDAiXTt2b2xjYW5vLnByaW1hcnk9dm9sY2Fub1s1XTt2YXIgb3JhbmdlPVsiI2ZmZjdlNiIsIiNmZmU3YmEiLCIjZmZkNTkxIiwiI2ZmYzA2OSIsIiNmZmE5NDAiLCIjZmE4YzE2IiwiI2Q0NmIwOCIsIiNhZDRlMDAiLCIjODczODAwIiwiIzYxMjUwMCJdO29yYW5nZS5wcmltYXJ5PW9yYW5nZVs1XTt2YXIgZ29sZD1bIiNmZmZiZTYiLCIjZmZmMWI4IiwiI2ZmZTU4ZiIsIiNmZmQ2NjYiLCIjZmZjNTNkIiwiI2ZhYWQxNCIsIiNkNDg4MDYiLCIjYWQ2ODAwIiwiIzg3NGQwMCIsIiM2MTM0MDAiXTtnb2xkLnByaW1hcnk9Z29sZFs1XTt2YXIgeWVsbG93PVsiI2ZlZmZlNiIsIiNmZmZmYjgiLCIjZmZmYjhmIiwiI2ZmZjU2NiIsIiNmZmVjM2QiLCIjZmFkYjE0IiwiI2Q0YjEwNiIsIiNhZDhiMDAiLCIjODc2ODAwIiwiIzYxNDcwMCJdO3llbGxvdy5wcmltYXJ5PXllbGxvd1s1XTt2YXIgbGltZT1bIiNmY2ZmZTYiLCIjZjRmZmI4IiwiI2VhZmY4ZiIsIiNkM2YyNjEiLCIjYmFlNjM3IiwiI2EwZDkxMSIsIiM3Y2IzMDUiLCIjNWI4YzAwIiwiIzNmNjYwMCIsIiMyNTQwMDAiXTtsaW1lLnByaW1hcnk9bGltZVs1XTt2YXIgZ3JlZW49WyIjZjZmZmVkIiwiI2Q5ZjdiZSIsIiNiN2ViOGYiLCIjOTVkZTY0IiwiIzczZDEzZCIsIiM1MmM0MWEiLCIjMzg5ZTBkIiwiIzIzNzgwNCIsIiMxMzUyMDAiLCIjMDkyYjAwIl07Z3JlZW4ucHJpbWFyeT1ncmVlbls1XTt2YXIgY3lhbj1bIiNlNmZmZmIiLCIjYjVmNWVjIiwiIzg3ZThkZSIsIiM1Y2RiZDMiLCIjMzZjZmM5IiwiIzEzYzJjMiIsIiMwODk3OWMiLCIjMDA2ZDc1IiwiIzAwNDc0ZiIsIiMwMDIzMjkiXTtjeWFuLnByaW1hcnk9Y3lhbls1XTt2YXIgYmx1ZT1bIiNlNmY0ZmYiLCIjYmFlMGZmIiwiIzkxY2FmZiIsIiM2OWIxZmYiLCIjNDA5NmZmIiwiIzE2NzdmZiIsIiMwOTU4ZDkiLCIjMDAzZWIzIiwiIzAwMmM4YyIsIiMwMDFkNjYiXTtibHVlLnByaW1hcnk9Ymx1ZVs1XTt2YXIgZ2Vla2JsdWU9WyIjZjBmNWZmIiwiI2Q2ZTRmZiIsIiNhZGM2ZmYiLCIjODVhNWZmIiwiIzU5N2VmNyIsIiMyZjU0ZWIiLCIjMWQzOWM0IiwiIzEwMjM5ZSIsIiMwNjExNzgiLCIjMDMwODUyIl07Z2Vla2JsdWUucHJpbWFyeT1nZWVrYmx1ZVs1XTt2YXIgcHVycGxlPVsiI2Y5ZjBmZiIsIiNlZmRiZmYiLCIjZDNhZGY3IiwiI2IzN2ZlYiIsIiM5MjU0ZGUiLCIjNzIyZWQxIiwiIzUzMWRhYiIsIiMzOTEwODUiLCIjMjIwNzVlIiwiIzEyMDMzOCJdO3B1cnBsZS5wcmltYXJ5PXB1cnBsZVs1XTt2YXIgbWFnZW50YT1bIiNmZmYwZjYiLCIjZmZkNmU3IiwiI2ZmYWRkMiIsIiNmZjg1YzAiLCIjZjc1OWFiIiwiI2ViMmY5NiIsIiNjNDFkN2YiLCIjOWUxMDY4IiwiIzc4MDY1MCIsIiM1MjAzMzkiXTttYWdlbnRhLnByaW1hcnk9bWFnZW50YVs1XTt2YXIgZ3JleT1bIiNhNmE2YTYiLCIjOTk5OTk5IiwiIzhjOGM4YyIsIiM4MDgwODAiLCIjNzM3MzczIiwiIzY2NjY2NiIsIiM0MDQwNDAiLCIjMWExYTFhIiwiIzAwMDAwMCIsIiMwMDAwMDAiXTtncmV5LnByaW1hcnk9Z3JleVs1XTt2YXIgcHJlc2V0UGFsZXR0ZXM9e3JlZDpyZWQsdm9sY2Fubzp2b2xjYW5vLG9yYW5nZTpvcmFuZ2UsZ29sZDpnb2xkLHllbGxvdzp5ZWxsb3csbGltZTpsaW1lLGdyZWVuOmdyZWVuLGN5YW46Y3lhbixibHVlOmJsdWUsZ2Vla2JsdWU6Z2Vla2JsdWUscHVycGxlOnB1cnBsZSxtYWdlbnRhOm1hZ2VudGEsZ3JleTpncmV5fSxyZWREYXJrPVsiIzJhMTIxNSIsIiM0MzE0MTgiLCIjNTgxODFjIiwiIzc5MWExZiIsIiNhNjFkMjQiLCIjZDMyMDI5IiwiI2U4NDc0OSIsIiNmMzczNzAiLCIjZjg5ZjlhIiwiI2ZhYzhjMyJdO3JlZERhcmsucHJpbWFyeT1yZWREYXJrWzVdO3ZhciB2b2xjYW5vRGFyaz1bIiMyYjE2MTEiLCIjNDQxZDEyIiwiIzU5MjcxNiIsIiM3YzMxMTgiLCIjYWEzZTE5IiwiI2Q4NGExYiIsIiNlODcwNDAiLCIjZjM5NTZhIiwiI2Y4YjY5MiIsIiNmYWQ0YmMiXTt2b2xjYW5vRGFyay5wcmltYXJ5PXZvbGNhbm9EYXJrWzVdO3ZhciBvcmFuZ2VEYXJrPVsiIzJiMWQxMSIsIiM0NDJhMTEiLCIjNTkzODE1IiwiIzdjNGExNSIsIiNhYTYyMTUiLCIjZDg3YTE2IiwiI2U4OWEzYyIsIiNmM2I3NjUiLCIjZjhjZjhkIiwiI2ZhZTNiNyJdO29yYW5nZURhcmsucHJpbWFyeT1vcmFuZ2VEYXJrWzVdO3ZhciBnb2xkRGFyaz1bIiMyYjIxMTEiLCIjNDQzMTExIiwiIzU5NDIxNCIsIiM3YzU5MTQiLCIjYWE3NzE0IiwiI2Q4OTYxNCIsIiNlOGIzMzkiLCIjZjNjYzYyIiwiI2Y4ZGY4YiIsIiNmYWVkYjUiXTtnb2xkRGFyay5wcmltYXJ5PWdvbGREYXJrWzVdO3ZhciB5ZWxsb3dEYXJrPVsiIzJiMjYxMSIsIiM0NDNiMTEiLCIjNTk1MDE0IiwiIzdjNmUxNCIsIiNhYTk1MTQiLCIjZDhiZDE0IiwiI2U4ZDYzOSIsIiNmM2VhNjIiLCIjZjhmNDhiIiwiI2ZhZmFiNSJdO3llbGxvd0RhcmsucHJpbWFyeT15ZWxsb3dEYXJrWzVdO3ZhciBsaW1lRGFyaz1bIiMxZjI2MTEiLCIjMmUzYzEwIiwiIzNlNGYxMyIsIiM1MzZkMTMiLCIjNmY5NDEyIiwiIzhiYmIxMSIsIiNhOWQxMzQiLCIjYzllNzVkIiwiI2U0Zjg4YiIsIiNmMGZhYjUiXTtsaW1lRGFyay5wcmltYXJ5PWxpbWVEYXJrWzVdO3ZhciBncmVlbkRhcms9WyIjMTYyMzEyIiwiIzFkMzcxMiIsIiMyNzQ5MTYiLCIjMzA2MzE3IiwiIzNjODYxOCIsIiM0OWFhMTkiLCIjNmFiZTM5IiwiIzhmZDQ2MCIsIiNiMmU1OGIiLCIjZDVmMmJiIl07Z3JlZW5EYXJrLnByaW1hcnk9Z3JlZW5EYXJrWzVdO3ZhciBjeWFuRGFyaz1bIiMxMTIxMjMiLCIjMTEzNTM2IiwiIzE0NDg0OCIsIiMxNDYyNjIiLCIjMTM4NTg1IiwiIzEzYThhOCIsIiMzM2JjYjciLCIjNThkMWM5IiwiIzg0ZTJkOCIsIiNiMmYxZTgiXTtjeWFuRGFyay5wcmltYXJ5PWN5YW5EYXJrWzVdO3ZhciBibHVlRGFyaz1bIiMxMTFhMmMiLCIjMTEyNTQ1IiwiIzE1MzI1YiIsIiMxNTQxN2UiLCIjMTU1NGFkIiwiIzE2NjhkYyIsIiMzYzg5ZTgiLCIjNjVhOWYzIiwiIzhkYzVmOCIsIiNiN2RjZmEiXTtibHVlRGFyay5wcmltYXJ5PWJsdWVEYXJrWzVdO3ZhciBnZWVrYmx1ZURhcms9WyIjMTMxNjI5IiwiIzE2MWQ0MCIsIiMxYzI3NTUiLCIjMjAzMTc1IiwiIzI2M2VhMCIsIiMyYjRhY2IiLCIjNTI3M2UwIiwiIzdmOWVmMyIsIiNhOGMxZjgiLCIjZDJlMGZhIl07Z2Vla2JsdWVEYXJrLnByaW1hcnk9Z2Vla2JsdWVEYXJrWzVdO3ZhciBwdXJwbGVEYXJrPVsiIzFhMTMyNSIsIiMyNDE2M2EiLCIjMzAxYzRkIiwiIzNlMjA2OSIsIiM1MTI1OGYiLCIjNjQyYWI1IiwiIzg1NGVjYSIsIiNhYjdhZTAiLCIjY2RhOGYwIiwiI2ViZDdmYSJdO3B1cnBsZURhcmsucHJpbWFyeT1wdXJwbGVEYXJrWzVdO3ZhciBtYWdlbnRhRGFyaz1bIiMyOTEzMjEiLCIjNDAxNjJmIiwiIzU1MWMzYiIsIiM3NTIwNGYiLCIjYTAyNjY5IiwiI2NiMmI4MyIsIiNlMDUyOWMiLCIjZjM3ZmI3IiwiI2Y4YThjYyIsIiNmYWQyZTMiXTttYWdlbnRhRGFyay5wcmltYXJ5PW1hZ2VudGFEYXJrWzVdO3ZhciBncmV5RGFyaz1bIiMxNTE1MTUiLCIjMWYxZjFmIiwiIzJkMmQyZCIsIiMzOTM5MzkiLCIjNDk0OTQ5IiwiIzVhNWE1YSIsIiM2YTZhNmEiLCIjN2I3YjdiIiwiIzg4ODg4OCIsIiM5Njk2OTYiXTtncmV5RGFyay5wcmltYXJ5PWdyZXlEYXJrWzVdfSw0MjU1OTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7cmI6ZnVuY3Rpb24oKXtyZXR1cm4gdXRpbF9nZW5TdHlsZVV0aWxzfSxJWDpmdW5jdGlvbigpe3JldHVybiBtZXJnZX19KTt2YXIgY2FjaGVQYXRoTWFwLF9FeHRyYWN0U3R5bGVGbnMsZXNtX3R5cGVvZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDcxMDAyKSxzbGljZWRUb0FycmF5PV9fd2VicGFja19yZXF1aXJlX18oOTc2ODUpLGRlZmluZVByb3BlcnR5PV9fd2VicGFja19yZXF1aXJlX18oNDk0Miksb2JqZWN0U3ByZWFkMj1fX3dlYnBhY2tfcmVxdWlyZV9fKDE0MTMpLHJlYWN0PV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLHJlYWN0X25hbWVzcGFjZU9iamVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fLnQocmVhY3QsMiksZHluYW1pY0NTUz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ0OTU4KTtfX3dlYnBhY2tfcmVxdWlyZV9fKDU2OTgyKSxfX3dlYnBhY2tfcmVxdWlyZV9fKDkxODgxKTt2YXIgY2xhc3NDYWxsQ2hlY2s9X193ZWJwYWNrX3JlcXVpcmVfXygxNTY3MSksY3JlYXRlQ2xhc3M9X193ZWJwYWNrX3JlcXVpcmVfXyg0MzE0NCk7ZnVuY3Rpb24gcGF0aEtleShrZXlzKXtyZXR1cm4ga2V5cy5qb2luKCIlIil9dmFyIEVudGl0eT1mdW5jdGlvbigpe2Z1bmN0aW9uIEVudGl0eShpbnN0YW5jZUlkKXsoMCxjbGFzc0NhbGxDaGVjay5aKSh0aGlzLEVudGl0eSksKDAsZGVmaW5lUHJvcGVydHkuWikodGhpcywiaW5zdGFuY2VJZCIsdm9pZCAwKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKSh0aGlzLCJjYWNoZSIsbmV3IE1hcCksdGhpcy5pbnN0YW5jZUlkPWluc3RhbmNlSWR9cmV0dXJuKDAsY3JlYXRlQ2xhc3MuWikoRW50aXR5LFt7a2V5OiJnZXQiLHZhbHVlOmZ1bmN0aW9uKGtleXMpe3JldHVybiB0aGlzLm9wR2V0KHBhdGhLZXkoa2V5cykpfX0se2tleToib3BHZXQiLHZhbHVlOmZ1bmN0aW9uKGtleVBhdGhTdHIpe3JldHVybiB0aGlzLmNhY2hlLmdldChrZXlQYXRoU3RyKXx8bnVsbH19LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oa2V5cyx2YWx1ZUZuKXtyZXR1cm4gdGhpcy5vcFVwZGF0ZShwYXRoS2V5KGtleXMpLHZhbHVlRm4pfX0se2tleToib3BVcGRhdGUiLHZhbHVlOmZ1bmN0aW9uKGtleVBhdGhTdHIsdmFsdWVGbil7dmFyIG5leHRWYWx1ZT12YWx1ZUZuKHRoaXMuY2FjaGUuZ2V0KGtleVBhdGhTdHIpKTtudWxsPT09bmV4dFZhbHVlP3RoaXMuY2FjaGUuZGVsZXRlKGtleVBhdGhTdHIpOnRoaXMuY2FjaGUuc2V0KGtleVBhdGhTdHIsbmV4dFZhbHVlKX19XSksRW50aXR5fSgpLFN0eWxlQ29udGV4dF9BVFRSX1RPS0VOPSJkYXRhLXRva2VuLWhhc2giLFN0eWxlQ29udGV4dF9BVFRSX01BUks9ImRhdGEtY3NzLWhhc2giLFN0eWxlQ29udGV4dF9DU1NfSU5fSlNfSU5TVEFOQ0U9Il9fY3NzaW5qc19pbnN0YW5jZV9fIixTdHlsZUNvbnRleHRfU3R5bGVDb250ZXh0PXJlYWN0LmNyZWF0ZUNvbnRleHQoe2hhc2hQcmlvcml0eToibG93IixjYWNoZTpmdW5jdGlvbigpe3ZhciBjc3NpbmpzSW5zdGFuY2VJZD1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDEyKS5zbGljZSgyKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiZkb2N1bWVudC5oZWFkJiZkb2N1bWVudC5ib2R5KXt2YXIgc3R5bGVzPWRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvckFsbCgic3R5bGVbIi5jb25jYXQoU3R5bGVDb250ZXh0X0FUVFJfTUFSSywiXSIpKXx8W10sZmlyc3RDaGlsZD1kb2N1bWVudC5oZWFkLmZpcnN0Q2hpbGQ7QXJyYXkuZnJvbShzdHlsZXMpLmZvckVhY2goZnVuY3Rpb24oc3R5bGUpe3N0eWxlW1N0eWxlQ29udGV4dF9DU1NfSU5fSlNfSU5TVEFOQ0VdPXN0eWxlW1N0eWxlQ29udGV4dF9DU1NfSU5fSlNfSU5TVEFOQ0VdfHxjc3NpbmpzSW5zdGFuY2VJZCxzdHlsZVtTdHlsZUNvbnRleHRfQ1NTX0lOX0pTX0lOU1RBTkNFXT09PWNzc2luanNJbnN0YW5jZUlkJiZkb2N1bWVudC5oZWFkLmluc2VydEJlZm9yZShzdHlsZSxmaXJzdENoaWxkKX0pO3ZhciBzdHlsZUhhc2g9e307QXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJzdHlsZVsiLmNvbmNhdChTdHlsZUNvbnRleHRfQVRUUl9NQVJLLCJdIikpKS5mb3JFYWNoKGZ1bmN0aW9uKHN0eWxlKXt2YXIgX3N0eWxlJHBhcmVudE5vZGUsaGFzaD1zdHlsZS5nZXRBdHRyaWJ1dGUoU3R5bGVDb250ZXh0X0FUVFJfTUFSSyk7c3R5bGVIYXNoW2hhc2hdP3N0eWxlW1N0eWxlQ29udGV4dF9DU1NfSU5fSlNfSU5TVEFOQ0VdPT09Y3NzaW5qc0luc3RhbmNlSWQmJihudWxsPT09KF9zdHlsZSRwYXJlbnROb2RlPXN0eWxlLnBhcmVudE5vZGUpfHx2b2lkIDA9PT1fc3R5bGUkcGFyZW50Tm9kZXx8X3N0eWxlJHBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGUpKTpzdHlsZUhhc2hbaGFzaF09ITB9KX1yZXR1cm4gbmV3IEVudGl0eShjc3NpbmpzSW5zdGFuY2VJZCl9KCksZGVmYXVsdENhY2hlOiEwfSksY2FuVXNlRG9tPV9fd2VicGFja19yZXF1aXJlX18oOTg5MjQpLGFzc2VydFRoaXNJbml0aWFsaXplZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDk3MzI2KSxpbmhlcml0cz1fX3dlYnBhY2tfcmVxdWlyZV9fKDMyNTMxKSxjcmVhdGVTdXBlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDczNTY4KTtSZWdFeHAoIkNBTENfVU5JVCIsImciKTt2YXIgVGhlbWVDYWNoZT1mdW5jdGlvbigpe2Z1bmN0aW9uIFRoZW1lQ2FjaGUoKXsoMCxjbGFzc0NhbGxDaGVjay5aKSh0aGlzLFRoZW1lQ2FjaGUpLCgwLGRlZmluZVByb3BlcnR5LlopKHRoaXMsImNhY2hlIix2b2lkIDApLCgwLGRlZmluZVByb3BlcnR5LlopKHRoaXMsImtleXMiLHZvaWQgMCksKDAsZGVmaW5lUHJvcGVydHkuWikodGhpcywiY2FjaGVDYWxsVGltZXMiLHZvaWQgMCksdGhpcy5jYWNoZT1uZXcgTWFwLHRoaXMua2V5cz1bXSx0aGlzLmNhY2hlQ2FsbFRpbWVzPTB9cmV0dXJuKDAsY3JlYXRlQ2xhc3MuWikoVGhlbWVDYWNoZSxbe2tleToic2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5rZXlzLmxlbmd0aH19LHtrZXk6ImludGVybmFsR2V0Iix2YWx1ZTpmdW5jdGlvbihkZXJpdmF0aXZlT3B0aW9uKXt2YXIgX2NhY2hlMixfY2FjaGUzLHVwZGF0ZUNhbGxUaW1lcz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLGNhY2hlPXttYXA6dGhpcy5jYWNoZX07cmV0dXJuIGRlcml2YXRpdmVPcHRpb24uZm9yRWFjaChmdW5jdGlvbihkZXJpdmF0aXZlKXtpZihjYWNoZSl7dmFyIF9jYWNoZTtjYWNoZT1udWxsPT09KF9jYWNoZT1jYWNoZSl8fHZvaWQgMD09PV9jYWNoZXx8bnVsbD09PShfY2FjaGU9X2NhY2hlLm1hcCl8fHZvaWQgMD09PV9jYWNoZT92b2lkIDA6X2NhY2hlLmdldChkZXJpdmF0aXZlKX1lbHNlIGNhY2hlPXZvaWQgMH0pLG51bGwhPT0oX2NhY2hlMj1jYWNoZSkmJnZvaWQgMCE9PV9jYWNoZTImJl9jYWNoZTIudmFsdWUmJnVwZGF0ZUNhbGxUaW1lcyYmKGNhY2hlLnZhbHVlWzFdPXRoaXMuY2FjaGVDYWxsVGltZXMrKyksbnVsbD09PShfY2FjaGUzPWNhY2hlKXx8dm9pZCAwPT09X2NhY2hlMz92b2lkIDA6X2NhY2hlMy52YWx1ZX19LHtrZXk6ImdldCIsdmFsdWU6ZnVuY3Rpb24oZGVyaXZhdGl2ZU9wdGlvbil7dmFyIF90aGlzJGludGVybmFsR2V0O3JldHVybiBudWxsPT09KF90aGlzJGludGVybmFsR2V0PXRoaXMuaW50ZXJuYWxHZXQoZGVyaXZhdGl2ZU9wdGlvbiwhMCkpfHx2b2lkIDA9PT1fdGhpcyRpbnRlcm5hbEdldD92b2lkIDA6X3RoaXMkaW50ZXJuYWxHZXRbMF19fSx7a2V5OiJoYXMiLHZhbHVlOmZ1bmN0aW9uKGRlcml2YXRpdmVPcHRpb24pe3JldHVybiEhdGhpcy5pbnRlcm5hbEdldChkZXJpdmF0aXZlT3B0aW9uKX19LHtrZXk6InNldCIsdmFsdWU6ZnVuY3Rpb24oZGVyaXZhdGl2ZU9wdGlvbix2YWx1ZSl7dmFyIF90aGlzPXRoaXM7aWYoIXRoaXMuaGFzKGRlcml2YXRpdmVPcHRpb24pKXtpZih0aGlzLnNpemUoKSsxPlRoZW1lQ2FjaGUuTUFYX0NBQ0hFX1NJWkUrVGhlbWVDYWNoZS5NQVhfQ0FDSEVfT0ZGU0VUKXt2YXIgX3RoaXMka2V5cyRyZWR1Y2U9dGhpcy5rZXlzLnJlZHVjZShmdW5jdGlvbihyZXN1bHQsa2V5KXt2YXIgY2FsbFRpbWVzPSgwLHNsaWNlZFRvQXJyYXkuWikocmVzdWx0LDIpWzFdO3JldHVybiBfdGhpcy5pbnRlcm5hbEdldChrZXkpWzFdPGNhbGxUaW1lcz9ba2V5LF90aGlzLmludGVybmFsR2V0KGtleSlbMV1dOnJlc3VsdH0sW3RoaXMua2V5c1swXSx0aGlzLmNhY2hlQ2FsbFRpbWVzXSksdGFyZ2V0S2V5PSgwLHNsaWNlZFRvQXJyYXkuWikoX3RoaXMka2V5cyRyZWR1Y2UsMSlbMF07dGhpcy5kZWxldGUodGFyZ2V0S2V5KX10aGlzLmtleXMucHVzaChkZXJpdmF0aXZlT3B0aW9uKX12YXIgY2FjaGU9dGhpcy5jYWNoZTtkZXJpdmF0aXZlT3B0aW9uLmZvckVhY2goZnVuY3Rpb24oZGVyaXZhdGl2ZSxpbmRleCl7aWYoaW5kZXg9PT1kZXJpdmF0aXZlT3B0aW9uLmxlbmd0aC0xKWNhY2hlLnNldChkZXJpdmF0aXZlLHt2YWx1ZTpbdmFsdWUsX3RoaXMuY2FjaGVDYWxsVGltZXMrK119KTtlbHNle3ZhciBjYWNoZVZhbHVlPWNhY2hlLmdldChkZXJpdmF0aXZlKTtjYWNoZVZhbHVlP2NhY2hlVmFsdWUubWFwfHwoY2FjaGVWYWx1ZS5tYXA9bmV3IE1hcCk6Y2FjaGUuc2V0KGRlcml2YXRpdmUse21hcDpuZXcgTWFwfSksY2FjaGU9Y2FjaGUuZ2V0KGRlcml2YXRpdmUpLm1hcH19KX19LHtrZXk6ImRlbGV0ZUJ5UGF0aCIsdmFsdWU6ZnVuY3Rpb24oY3VycmVudENhY2hlLGRlcml2YXRpdmVzKXt2YXIgX2NhY2hlJHZhbHVlLGNhY2hlPWN1cnJlbnRDYWNoZS5nZXQoZGVyaXZhdGl2ZXNbMF0pO2lmKDE9PT1kZXJpdmF0aXZlcy5sZW5ndGgpcmV0dXJuIGNhY2hlLm1hcD9jdXJyZW50Q2FjaGUuc2V0KGRlcml2YXRpdmVzWzBdLHttYXA6Y2FjaGUubWFwfSk6Y3VycmVudENhY2hlLmRlbGV0ZShkZXJpdmF0aXZlc1swXSksbnVsbD09PShfY2FjaGUkdmFsdWU9Y2FjaGUudmFsdWUpfHx2b2lkIDA9PT1fY2FjaGUkdmFsdWU/dm9pZCAwOl9jYWNoZSR2YWx1ZVswXTt2YXIgcmVzdWx0PXRoaXMuZGVsZXRlQnlQYXRoKGNhY2hlLm1hcCxkZXJpdmF0aXZlcy5zbGljZSgxKSk7cmV0dXJuIGNhY2hlLm1hcCYmMCE9PWNhY2hlLm1hcC5zaXplfHxjYWNoZS52YWx1ZXx8Y3VycmVudENhY2hlLmRlbGV0ZShkZXJpdmF0aXZlc1swXSkscmVzdWx0fX0se2tleToiZGVsZXRlIix2YWx1ZTpmdW5jdGlvbihkZXJpdmF0aXZlT3B0aW9uKXtpZih0aGlzLmhhcyhkZXJpdmF0aXZlT3B0aW9uKSlyZXR1cm4gdGhpcy5rZXlzPXRoaXMua2V5cy5maWx0ZXIoZnVuY3Rpb24oaXRlbSl7cmV0dXJuIWZ1bmN0aW9uKGxlZnQscmlnaHQpe2lmKGxlZnQubGVuZ3RoIT09cmlnaHQubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgaT0wO2k8bGVmdC5sZW5ndGg7aSsrKWlmKGxlZnRbaV0hPT1yaWdodFtpXSlyZXR1cm4hMTtyZXR1cm4hMH0oaXRlbSxkZXJpdmF0aXZlT3B0aW9uKX0pLHRoaXMuZGVsZXRlQnlQYXRoKHRoaXMuY2FjaGUsZGVyaXZhdGl2ZU9wdGlvbil9fV0pLFRoZW1lQ2FjaGV9KCk7KDAsZGVmaW5lUHJvcGVydHkuWikoVGhlbWVDYWNoZSwiTUFYX0NBQ0hFX1NJWkUiLDIwKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKShUaGVtZUNhY2hlLCJNQVhfQ0FDSEVfT0ZGU0VUIiw1KSxfX3dlYnBhY2tfcmVxdWlyZV9fKDgwMzM0KSxuZXcgVGhlbWVDYWNoZSxuZXcgV2Vha01hcCxuZXcgV2Vha01hcCwicmFuZG9tLSIuY29uY2F0KERhdGUubm93KCksIi0iKS5jb25jYXQoTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXC4vZywiIik7dmFyIGlzQ2xpZW50U2lkZT0oMCxjYW5Vc2VEb20uWikoKTtmdW5jdGlvbiB1dGlsX3VuaXQobnVtKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIG51bT8iIi5jb25jYXQobnVtLCJweCIpOm51bX1mdW5jdGlvbiB1dGlsX3RvU3R5bGVTdHIoc3R5bGUsdG9rZW5LZXksc3R5bGVJZCl7dmFyIF9vYmplY3RTcHJlYWQyLGN1c3RvbWl6ZUF0dHJzPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTp7fSxwbGFpbj1hcmd1bWVudHMubGVuZ3RoPjQmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XSYmYXJndW1lbnRzWzRdO2lmKHBsYWluKXJldHVybiBzdHlsZTt2YXIgYXR0cnM9KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LGN1c3RvbWl6ZUF0dHJzKSx7fSwoX29iamVjdFNwcmVhZDI9e30sKDAsZGVmaW5lUHJvcGVydHkuWikoX29iamVjdFNwcmVhZDIsU3R5bGVDb250ZXh0X0FUVFJfVE9LRU4sdG9rZW5LZXkpLCgwLGRlZmluZVByb3BlcnR5LlopKF9vYmplY3RTcHJlYWQyLFN0eWxlQ29udGV4dF9BVFRSX01BUkssc3R5bGVJZCksX29iamVjdFNwcmVhZDIpKSxhdHRyU3RyPU9iamVjdC5rZXlzKGF0dHJzKS5tYXAoZnVuY3Rpb24oYXR0cil7dmFyIHZhbD1hdHRyc1thdHRyXTtyZXR1cm4gdmFsPyIiLmNvbmNhdChhdHRyLCc9IicpLmNvbmNhdCh2YWwsJyInKTpudWxsfSkuZmlsdGVyKGZ1bmN0aW9uKHYpe3JldHVybiB2fSkuam9pbigiICIpO3JldHVybiI8c3R5bGUgIi5jb25jYXQoYXR0clN0ciwiPiIpLmNvbmNhdChzdHlsZSwiPC9zdHlsZT4iKX12YXIgdG9Db25zdW1hYmxlQXJyYXk9X193ZWJwYWNrX3JlcXVpcmVfXyg3NDkwMiksdXNlTGF5b3V0RWZmZWN0PV9fd2VicGFja19yZXF1aXJlX18oODQxMCksdXNlSW5zZXJ0aW9uRWZmZWN0PSgwLG9iamVjdFNwcmVhZDIuWikoe30scmVhY3RfbmFtZXNwYWNlT2JqZWN0KS51c2VJbnNlcnRpb25FZmZlY3QsaG9va3NfdXNlQ29tcGF0aWJsZUluc2VydGlvbkVmZmVjdD11c2VJbnNlcnRpb25FZmZlY3Q/ZnVuY3Rpb24ocmVuZGVyRWZmZWN0LGVmZmVjdCxkZXBzKXtyZXR1cm4gdXNlSW5zZXJ0aW9uRWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIHJlbmRlckVmZmVjdCgpLGVmZmVjdCgpfSxkZXBzKX06ZnVuY3Rpb24ocmVuZGVyRWZmZWN0LGVmZmVjdCxkZXBzKXtyZWFjdC51c2VNZW1vKHJlbmRlckVmZmVjdCxkZXBzKSwoMCx1c2VMYXlvdXRFZmZlY3QuWikoZnVuY3Rpb24oKXtyZXR1cm4gZWZmZWN0KCEwKX0sZGVwcyl9LHVzZUVmZmVjdENsZWFudXBSZWdpc3Rlcj12b2lkIDAhPT0oMCxvYmplY3RTcHJlYWQyLlopKHt9LHJlYWN0X25hbWVzcGFjZU9iamVjdCkudXNlSW5zZXJ0aW9uRWZmZWN0P2Z1bmN0aW9uKGRlcHMpe3ZhciBlZmZlY3RDbGVhbnVwcz1bXSxjbGVhbnVwRmxhZz0hMTtyZXR1cm4gcmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIGNsZWFudXBGbGFnPSExLGZ1bmN0aW9uKCl7Y2xlYW51cEZsYWc9ITAsZWZmZWN0Q2xlYW51cHMubGVuZ3RoJiZlZmZlY3RDbGVhbnVwcy5mb3JFYWNoKGZ1bmN0aW9uKGZuKXtyZXR1cm4gZm4oKX0pfX0sZGVwcyksZnVuY3Rpb24oZm4pe2NsZWFudXBGbGFnfHxlZmZlY3RDbGVhbnVwcy5wdXNoKGZuKX19OmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGZuKXtmbigpfX07ZnVuY3Rpb24gdXNlR2xvYmFsQ2FjaGVfdXNlR2xvYmFsQ2FjaGUocHJlZml4LGtleVBhdGgsY2FjaGVGbixvbkNhY2hlUmVtb3ZlLG9uQ2FjaGVFZmZlY3Qpe3ZhciBnbG9iYWxDYWNoZT1yZWFjdC51c2VDb250ZXh0KFN0eWxlQ29udGV4dF9TdHlsZUNvbnRleHQpLmNhY2hlLGZ1bGxQYXRoU3RyPXBhdGhLZXkoW3ByZWZpeF0uY29uY2F0KCgwLHRvQ29uc3VtYWJsZUFycmF5LlopKGtleVBhdGgpKSkscmVnaXN0ZXI9dXNlRWZmZWN0Q2xlYW51cFJlZ2lzdGVyKFtmdWxsUGF0aFN0cl0pLGJ1aWxkQ2FjaGU9ZnVuY3Rpb24odXBkYXRlcil7Z2xvYmFsQ2FjaGUub3BVcGRhdGUoZnVsbFBhdGhTdHIsZnVuY3Rpb24ocHJldkNhY2hlKXt2YXIgX3JlZjI9KDAsc2xpY2VkVG9BcnJheS5aKShwcmV2Q2FjaGV8fFt2b2lkIDAsdm9pZCAwXSwyKSxfcmVmMiQ9X3JlZjJbMF0sZGF0YT1bdm9pZCAwPT09X3JlZjIkPzA6X3JlZjIkLF9yZWYyWzFdfHxjYWNoZUZuKCldO3JldHVybiB1cGRhdGVyP3VwZGF0ZXIoZGF0YSk6ZGF0YX0pfTtyZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7YnVpbGRDYWNoZSgpfSxbZnVsbFBhdGhTdHJdKTt2YXIgY2FjaGVDb250ZW50PWdsb2JhbENhY2hlLm9wR2V0KGZ1bGxQYXRoU3RyKVsxXTtyZXR1cm4gaG9va3NfdXNlQ29tcGF0aWJsZUluc2VydGlvbkVmZmVjdChmdW5jdGlvbigpe251bGw9PW9uQ2FjaGVFZmZlY3R8fG9uQ2FjaGVFZmZlY3QoY2FjaGVDb250ZW50KX0sZnVuY3Rpb24ocG9seWZpbGwpe3JldHVybiBidWlsZENhY2hlKGZ1bmN0aW9uKF9yZWYzKXt2YXIgX3JlZjQ9KDAsc2xpY2VkVG9BcnJheS5aKShfcmVmMywyKSx0aW1lcz1fcmVmNFswXSxjYWNoZT1fcmVmNFsxXTtyZXR1cm4gcG9seWZpbGwmJjA9PT10aW1lcyYmKG51bGw9PW9uQ2FjaGVFZmZlY3R8fG9uQ2FjaGVFZmZlY3QoY2FjaGVDb250ZW50KSksW3RpbWVzKzEsY2FjaGVdfSksZnVuY3Rpb24oKXtnbG9iYWxDYWNoZS5vcFVwZGF0ZShmdWxsUGF0aFN0cixmdW5jdGlvbihwcmV2Q2FjaGUpe3ZhciBfcmVmNj0oMCxzbGljZWRUb0FycmF5LlopKHByZXZDYWNoZXx8W10sMiksX3JlZjYkPV9yZWY2WzBdLHRpbWVzPXZvaWQgMD09PV9yZWY2JD8wOl9yZWY2JCxjYWNoZT1fcmVmNlsxXTtyZXR1cm4gMD09dGltZXMtMT8ocmVnaXN0ZXIoZnVuY3Rpb24oKXsocG9seWZpbGx8fCFnbG9iYWxDYWNoZS5vcEdldChmdWxsUGF0aFN0cikpJiYobnVsbD09b25DYWNoZVJlbW92ZXx8b25DYWNoZVJlbW92ZShjYWNoZSwhMSkpfSksbnVsbCk6W3RpbWVzLTEsY2FjaGVdfSl9fSxbZnVsbFBhdGhTdHJdKSxjYWNoZUNvbnRlbnR9dmFyIHRva2VuMkNTU1Zhcj1mdW5jdGlvbih0b2tlbil7dmFyIHByZWZpeD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06IiI7cmV0dXJuIi0tIi5jb25jYXQocHJlZml4PyIiLmNvbmNhdChwcmVmaXgsIi0iKToiIikuY29uY2F0KHRva2VuKS5yZXBsYWNlKC8oW2EtejAtOV0pKFtBLVpdKS9nLCIkMS0kMiIpLnJlcGxhY2UoLyhbQS1aXSspKFtBLVpdW2EtejAtOV0rKS9nLCIkMS0kMiIpLnJlcGxhY2UoLyhbYS16XSkoW0EtWjAtOV0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKX0sY3NzX3ZhcmlhYmxlc190cmFuc2Zvcm1Ub2tlbj1mdW5jdGlvbih0b2tlbix0aGVtZUtleSxjb25maWcpe3ZhciBvcHRpb25zLGNzc1ZhcnM9e30scmVzdWx0PXt9O3JldHVybiBPYmplY3QuZW50cmllcyh0b2tlbikuZm9yRWFjaChmdW5jdGlvbihfcmVmMyl7dmFyIF9yZWY0PSgwLHNsaWNlZFRvQXJyYXkuWikoX3JlZjMsMiksa2V5PV9yZWY0WzBdLHZhbHVlPV9yZWY0WzFdO2lmKG51bGwhPWNvbmZpZyYmbnVsbCE9PShfY29uZmlnJHByZXNlcnZlPWNvbmZpZy5wcmVzZXJ2ZSkmJnZvaWQgMCE9PV9jb25maWckcHJlc2VydmUmJl9jb25maWckcHJlc2VydmVba2V5XSlyZXN1bHRba2V5XT12YWx1ZTtlbHNlIGlmKCgic3RyaW5nIj09dHlwZW9mIHZhbHVlfHwibnVtYmVyIj09dHlwZW9mIHZhbHVlKSYmIShudWxsIT1jb25maWcmJm51bGwhPT0oX2NvbmZpZyRpZ25vcmU9Y29uZmlnLmlnbm9yZSkmJnZvaWQgMCE9PV9jb25maWckaWdub3JlJiZfY29uZmlnJGlnbm9yZVtrZXldKSl7dmFyIF9jb25maWckcHJlc2VydmUsX2NvbmZpZyRpZ25vcmUsX2NvbmZpZyR1bml0bGVzcyxjc3NWYXI9dG9rZW4yQ1NTVmFyKGtleSxudWxsPT1jb25maWc/dm9pZCAwOmNvbmZpZy5wcmVmaXgpO2Nzc1ZhcnNbY3NzVmFyXT0ibnVtYmVyIiE9dHlwZW9mIHZhbHVlfHxudWxsIT1jb25maWcmJm51bGwhPT0oX2NvbmZpZyR1bml0bGVzcz1jb25maWcudW5pdGxlc3MpJiZ2b2lkIDAhPT1fY29uZmlnJHVuaXRsZXNzJiZfY29uZmlnJHVuaXRsZXNzW2tleV0/U3RyaW5nKHZhbHVlKToiIi5jb25jYXQodmFsdWUsInB4IikscmVzdWx0W2tleV09InZhcigiLmNvbmNhdChjc3NWYXIsIikiKX19KSxbcmVzdWx0LChvcHRpb25zPXtzY29wZTpudWxsPT1jb25maWc/dm9pZCAwOmNvbmZpZy5zY29wZX0sT2JqZWN0LmtleXMoY3NzVmFycykubGVuZ3RoPyIuIi5jb25jYXQodGhlbWVLZXkpLmNvbmNhdChudWxsIT1vcHRpb25zJiZvcHRpb25zLnNjb3BlPyIuIi5jb25jYXQob3B0aW9ucy5zY29wZSk6IiIsInsiKS5jb25jYXQoT2JqZWN0LmVudHJpZXMoY3NzVmFycykubWFwKGZ1bmN0aW9uKF9yZWYpe3ZhciBfcmVmMj0oMCxzbGljZWRUb0FycmF5LlopKF9yZWYsMiksa2V5PV9yZWYyWzBdLHZhbHVlPV9yZWYyWzFdO3JldHVybiIiLmNvbmNhdChrZXksIjoiKS5jb25jYXQodmFsdWUsIjsiKX0pLmpvaW4oIiIpLCJ9Iik6IiIpXX0sZXNtX2V4dGVuZHM9X193ZWJwYWNrX3JlcXVpcmVfXyg4NzQ2MiksaGFzaF9icm93c2VyX2VzbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDYyNTA2KSx1bml0bGVzc19icm93c2VyX2VzbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDQwMzUxKSxDT01NRU5UPSJjb21tIixSVUxFU0VUPSJydWxlIixERUNMQVJBVElPTj0iZGVjbCIsYWJzPU1hdGguYWJzLFV0aWxpdHlfZnJvbT1TdHJpbmcuZnJvbUNoYXJDb2RlO2Z1bmN0aW9uIHJlcGxhY2UodmFsdWUscGF0dGVybixyZXBsYWNlbWVudCl7cmV0dXJuIHZhbHVlLnJlcGxhY2UocGF0dGVybixyZXBsYWNlbWVudCl9ZnVuY3Rpb24gY2hhcmF0KHZhbHVlLGluZGV4KXtyZXR1cm4gMHx2YWx1ZS5jaGFyQ29kZUF0KGluZGV4KX1mdW5jdGlvbiBzdWJzdHIodmFsdWUsYmVnaW4sZW5kKXtyZXR1cm4gdmFsdWUuc2xpY2UoYmVnaW4sZW5kKX1mdW5jdGlvbiBzdHJsZW4odmFsdWUpe3JldHVybiB2YWx1ZS5sZW5ndGh9ZnVuY3Rpb24gVXRpbGl0eV9hcHBlbmQodmFsdWUsYXJyYXkpe3JldHVybiBhcnJheS5wdXNoKHZhbHVlKSx2YWx1ZX1mdW5jdGlvbiBzZXJpYWxpemUoY2hpbGRyZW4sY2FsbGJhY2spe2Zvcih2YXIgb3V0cHV0PSIiLGk9MDtpPGNoaWxkcmVuLmxlbmd0aDtpKyspb3V0cHV0Kz1jYWxsYmFjayhjaGlsZHJlbltpXSxpLGNoaWxkcmVuLGNhbGxiYWNrKXx8IiI7cmV0dXJuIG91dHB1dH1mdW5jdGlvbiBzdHJpbmdpZnkoZWxlbWVudCxpbmRleCxjaGlsZHJlbixjYWxsYmFjayl7c3dpdGNoKGVsZW1lbnQudHlwZSl7Y2FzZSJAbGF5ZXIiOmlmKGVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoKWJyZWFrO2Nhc2UiQGltcG9ydCI6Y2FzZSJAbmFtZXNwYWNlIjpjYXNlIERFQ0xBUkFUSU9OOnJldHVybiBlbGVtZW50LnJldHVybj1lbGVtZW50LnJldHVybnx8ZWxlbWVudC52YWx1ZTtjYXNlIENPTU1FTlQ6cmV0dXJuIiI7Y2FzZSJAa2V5ZnJhbWVzIjpyZXR1cm4gZWxlbWVudC5yZXR1cm49ZWxlbWVudC52YWx1ZSsieyIrc2VyaWFsaXplKGVsZW1lbnQuY2hpbGRyZW4sY2FsbGJhY2spKyJ9IjtjYXNlIFJVTEVTRVQ6aWYoIXN0cmxlbihlbGVtZW50LnZhbHVlPWVsZW1lbnQucHJvcHMuam9pbigiLCIpKSlyZXR1cm4iIn1yZXR1cm4gc3RybGVuKGNoaWxkcmVuPXNlcmlhbGl6ZShlbGVtZW50LmNoaWxkcmVuLGNhbGxiYWNrKSk/ZWxlbWVudC5yZXR1cm49ZWxlbWVudC52YWx1ZSsieyIrY2hpbGRyZW4rIn0iOiIifXZhciBsaW5lPTEsY29sdW1uPTEsVG9rZW5pemVyX2xlbmd0aD0wLHBvc2l0aW9uPTAsY2hhcmFjdGVyPTAsY2hhcmFjdGVycz0iIjtmdW5jdGlvbiBub2RlKHZhbHVlLHJvb3QscGFyZW50LHR5cGUscHJvcHMsY2hpbGRyZW4sbGVuZ3RoLHNpYmxpbmdzKXtyZXR1cm57dmFsdWU6dmFsdWUscm9vdDpyb290LHBhcmVudDpwYXJlbnQsdHlwZTp0eXBlLHByb3BzOnByb3BzLGNoaWxkcmVuOmNoaWxkcmVuLGxpbmU6bGluZSxjb2x1bW46Y29sdW1uLGxlbmd0aDpsZW5ndGgscmV0dXJuOiIiLHNpYmxpbmdzOnNpYmxpbmdzfX1mdW5jdGlvbiBuZXh0KCl7cmV0dXJuIGNoYXJhY3Rlcj1wb3NpdGlvbjxUb2tlbml6ZXJfbGVuZ3RoP2NoYXJhdChjaGFyYWN0ZXJzLHBvc2l0aW9uKyspOjAsY29sdW1uKyssMTA9PT1jaGFyYWN0ZXImJihjb2x1bW49MSxsaW5lKyspLGNoYXJhY3Rlcn1mdW5jdGlvbiBwZWVrKCl7cmV0dXJuIGNoYXJhdChjaGFyYWN0ZXJzLHBvc2l0aW9uKX1mdW5jdGlvbiB0b2tlbih0eXBlKXtzd2l0Y2godHlwZSl7Y2FzZSAwOmNhc2UgOTpjYXNlIDEwOmNhc2UgMTM6Y2FzZSAzMjpyZXR1cm4gNTtjYXNlIDMzOmNhc2UgNDM6Y2FzZSA0NDpjYXNlIDQ3OmNhc2UgNjI6Y2FzZSA2NDpjYXNlIDEyNjpjYXNlIDU5OmNhc2UgMTIzOmNhc2UgMTI1OnJldHVybiA0O2Nhc2UgNTg6cmV0dXJuIDM7Y2FzZSAzNDpjYXNlIDM5OmNhc2UgNDA6Y2FzZSA5MTpyZXR1cm4gMjtjYXNlIDQxOmNhc2UgOTM6cmV0dXJuIDF9cmV0dXJuIDB9ZnVuY3Rpb24gZGVsaW1pdCh0eXBlKXt2YXIgYmVnaW4sZW5kO3JldHVybihiZWdpbj1wb3NpdGlvbi0xLGVuZD1mdW5jdGlvbiBkZWxpbWl0ZXIodHlwZSl7Zm9yKDtuZXh0KCk7KXN3aXRjaChjaGFyYWN0ZXIpe2Nhc2UgdHlwZTpyZXR1cm4gcG9zaXRpb247Y2FzZSAzNDpjYXNlIDM5OjM0IT09dHlwZSYmMzkhPT10eXBlJiZkZWxpbWl0ZXIoY2hhcmFjdGVyKTticmVhaztjYXNlIDQwOjQxPT09dHlwZSYmZGVsaW1pdGVyKHR5cGUpO2JyZWFrO2Nhc2UgOTI6bmV4dCgpfXJldHVybiBwb3NpdGlvbn0oOTE9PT10eXBlP3R5cGUrMjo0MD09PXR5cGU/dHlwZSsxOnR5cGUpLHN1YnN0cihjaGFyYWN0ZXJzLGJlZ2luLGVuZCkpLnRyaW0oKX1mdW5jdGlvbiBydWxlc2V0KHZhbHVlLHJvb3QscGFyZW50LGluZGV4LG9mZnNldCxydWxlcyxwb2ludHMsdHlwZSxwcm9wcyxjaGlsZHJlbixsZW5ndGgsc2libGluZ3Mpe2Zvcih2YXIgcG9zdD1vZmZzZXQtMSxydWxlPTA9PT1vZmZzZXQ/cnVsZXM6WyIiXSxzaXplPXJ1bGUubGVuZ3RoLGk9MCxqPTAsaz0wO2k8aW5kZXg7KytpKWZvcih2YXIgeD0wLHk9c3Vic3RyKHZhbHVlLHBvc3QrMSxwb3N0PWFicyhqPXBvaW50c1tpXSkpLHo9dmFsdWU7eDxzaXplOysreCkoej0oaj4wP3J1bGVbeF0rIiAiK3k6cmVwbGFjZSh5LC8mXGYvZyxydWxlW3hdKSkudHJpbSgpKSYmKHByb3BzW2srK109eik7cmV0dXJuIG5vZGUodmFsdWUscm9vdCxwYXJlbnQsMD09PW9mZnNldD9SVUxFU0VUOnR5cGUscHJvcHMsY2hpbGRyZW4sbGVuZ3RoLHNpYmxpbmdzKX1mdW5jdGlvbiBkZWNsYXJhdGlvbih2YWx1ZSxyb290LHBhcmVudCxsZW5ndGgsc2libGluZ3Mpe3JldHVybiBub2RlKHZhbHVlLHJvb3QscGFyZW50LERFQ0xBUkFUSU9OLHN1YnN0cih2YWx1ZSwwLGxlbmd0aCksc3Vic3RyKHZhbHVlLGxlbmd0aCsxLC0xKSxsZW5ndGgsc2libGluZ3MpfXZhciBjYWNoZU1hcFV0aWxfQVRUUl9DQUNIRV9NQVA9ImRhdGEtYW50LWNzc2luanMtY2FjaGUtcGF0aCIsQ1NTX0ZJTEVfU1RZTEU9Il9GSUxFX1NUWUxFX18iLGZyb21DU1NGaWxlPSEwLE1VTFRJX1ZBTFVFPSJfbXVsdGlfdmFsdWVfIjtmdW5jdGlvbiBub3JtYWxpemVTdHlsZShzdHlsZVN0cil7dmFyIHZhbHVlLHZhbHVlMSx2YWx1ZTI7cmV0dXJuIHNlcmlhbGl6ZSgodmFsdWUyPWZ1bmN0aW9uIHBhcnNlKHZhbHVlLHJvb3QscGFyZW50LHJ1bGUscnVsZXMscnVsZXNldHMscHNldWRvLHBvaW50cyxkZWNsYXJhdGlvbnMpe2Zvcih2YXIgdmFsdWUxLHZhbHVlMixwb3NpdGlvbjEsaW5kZXg9MCxvZmZzZXQ9MCxsZW5ndGg9cHNldWRvLGF0cnVsZT0wLHByb3BlcnR5PTAscHJldmlvdXM9MCx2YXJpYWJsZT0xLHNjYW5uaW5nPTEsYW1wZXJzYW5kPTEsY2hhcmFjdGVyMT0wLHR5cGU9IiIscHJvcHM9cnVsZXMsY2hpbGRyZW49cnVsZXNldHMscmVmZXJlbmNlPXJ1bGUsY2hhcmFjdGVyczE9dHlwZTtzY2FubmluZzspc3dpdGNoKHByZXZpb3VzPWNoYXJhY3RlcjEsY2hhcmFjdGVyMT1uZXh0KCkpe2Nhc2UgNDA6aWYoMTA4IT1wcmV2aW91cyYmNTg9PWNoYXJhdChjaGFyYWN0ZXJzMSxsZW5ndGgtMSkpey0xIT0odmFsdWUyPWNoYXJhY3RlcnMxKz1yZXBsYWNlKGRlbGltaXQoY2hhcmFjdGVyMSksIiYiLCImXGYiKSxwb3NpdGlvbjE9YWJzKGluZGV4P3BvaW50c1tpbmRleC0xXTowKSx2YWx1ZTIuaW5kZXhPZigiJlxmIixwb3NpdGlvbjEpKSYmKGFtcGVyc2FuZD0tMSk7YnJlYWt9Y2FzZSAzNDpjYXNlIDM5OmNhc2UgOTE6Y2hhcmFjdGVyczErPWRlbGltaXQoY2hhcmFjdGVyMSk7YnJlYWs7Y2FzZSA5OmNhc2UgMTA6Y2FzZSAxMzpjYXNlIDMyOmNoYXJhY3RlcnMxKz1mdW5jdGlvbih0eXBlKXtmb3IoO2NoYXJhY3Rlcj1wZWVrKCk7KWlmKGNoYXJhY3RlcjwzMyluZXh0KCk7ZWxzZSBicmVhaztyZXR1cm4gdG9rZW4odHlwZSk+Mnx8dG9rZW4oY2hhcmFjdGVyKT4zPyIiOiIgIn0ocHJldmlvdXMpO2JyZWFrO2Nhc2UgOTI6Y2hhcmFjdGVyczErPWZ1bmN0aW9uKGluZGV4LGNvdW50KXtmb3IodmFyIGVuZDstLWNvdW50JiZuZXh0KCkmJiEoY2hhcmFjdGVyPDQ4KSYmIShjaGFyYWN0ZXI+MTAyKSYmKCEoY2hhcmFjdGVyPjU3KXx8IShjaGFyYWN0ZXI8NjUpKSYmKCEoY2hhcmFjdGVyPjcwKXx8IShjaGFyYWN0ZXI8OTcpKTspO3JldHVybiBlbmQ9cG9zaXRpb24rKGNvdW50PDYmJjMyPT1wZWVrKCkmJjMyPT1uZXh0KCkpLHN1YnN0cihjaGFyYWN0ZXJzLGluZGV4LGVuZCl9KHBvc2l0aW9uLTEsNyk7Y29udGludWU7Y2FzZSA0Nzpzd2l0Y2gocGVlaygpKXtjYXNlIDQyOmNhc2UgNDc6VXRpbGl0eV9hcHBlbmQobm9kZSh2YWx1ZTE9ZnVuY3Rpb24odHlwZSxpbmRleCl7Zm9yKDtuZXh0KCk7KWlmKHR5cGUrY2hhcmFjdGVyPT09NTcpYnJlYWs7ZWxzZSBpZih0eXBlK2NoYXJhY3Rlcj09PTg0JiY0Nz09PXBlZWsoKSlicmVhaztyZXR1cm4iLyoiK3N1YnN0cihjaGFyYWN0ZXJzLGluZGV4LHBvc2l0aW9uLTEpKyIqIitVdGlsaXR5X2Zyb20oNDc9PT10eXBlP3R5cGU6bmV4dCgpKX0obmV4dCgpLHBvc2l0aW9uKSxyb290LHBhcmVudCxDT01NRU5ULFV0aWxpdHlfZnJvbShjaGFyYWN0ZXIpLHN1YnN0cih2YWx1ZTEsMiwtMiksMCxkZWNsYXJhdGlvbnMpLGRlY2xhcmF0aW9ucyksKDU9PXRva2VuKHByZXZpb3VzfHwxKXx8NT09dG9rZW4ocGVlaygpfHwxKSkmJnN0cmxlbihjaGFyYWN0ZXJzMSkmJiIgIiE9PXN1YnN0cihjaGFyYWN0ZXJzMSwtMSx2b2lkIDApJiYoY2hhcmFjdGVyczErPSIgIik7YnJlYWs7ZGVmYXVsdDpjaGFyYWN0ZXJzMSs9Ii8ifWJyZWFrO2Nhc2UgMTIzKnZhcmlhYmxlOnBvaW50c1tpbmRleCsrXT1zdHJsZW4oY2hhcmFjdGVyczEpKmFtcGVyc2FuZDtjYXNlIDEyNSp2YXJpYWJsZTpjYXNlIDU5OmNhc2UgMDpzd2l0Y2goY2hhcmFjdGVyMSl7Y2FzZSAwOmNhc2UgMTI1OnNjYW5uaW5nPTA7Y2FzZSA1OStvZmZzZXQ6LTE9PWFtcGVyc2FuZCYmKGNoYXJhY3RlcnMxPXJlcGxhY2UoY2hhcmFjdGVyczEsL1xmL2csIiIpKSxwcm9wZXJ0eT4wJiYoc3RybGVuKGNoYXJhY3RlcnMxKS1sZW5ndGh8fDA9PT12YXJpYWJsZSYmNDc9PT1wcmV2aW91cykmJlV0aWxpdHlfYXBwZW5kKHByb3BlcnR5PjMyP2RlY2xhcmF0aW9uKGNoYXJhY3RlcnMxKyI7IixydWxlLHBhcmVudCxsZW5ndGgtMSxkZWNsYXJhdGlvbnMpOmRlY2xhcmF0aW9uKHJlcGxhY2UoY2hhcmFjdGVyczEsIiAiLCIiKSsiOyIscnVsZSxwYXJlbnQsbGVuZ3RoLTIsZGVjbGFyYXRpb25zKSxkZWNsYXJhdGlvbnMpO2JyZWFrO2Nhc2UgNTk6Y2hhcmFjdGVyczErPSI7IjtkZWZhdWx0OmlmKFV0aWxpdHlfYXBwZW5kKHJlZmVyZW5jZT1ydWxlc2V0KGNoYXJhY3RlcnMxLHJvb3QscGFyZW50LGluZGV4LG9mZnNldCxydWxlcyxwb2ludHMsdHlwZSxwcm9wcz1bXSxjaGlsZHJlbj1bXSxsZW5ndGgscnVsZXNldHMpLHJ1bGVzZXRzKSwxMjM9PT1jaGFyYWN0ZXIxKXtpZigwPT09b2Zmc2V0KXBhcnNlKGNoYXJhY3RlcnMxLHJvb3QscmVmZXJlbmNlLHJlZmVyZW5jZSxwcm9wcyxydWxlc2V0cyxsZW5ndGgscG9pbnRzLGNoaWxkcmVuKTtlbHNle3N3aXRjaChhdHJ1bGUpe2Nhc2UgOTk6aWYoMTEwPT09Y2hhcmF0KGNoYXJhY3RlcnMxLDMpKWJyZWFrO2Nhc2UgMTA4OmlmKDk3PT09Y2hhcmF0KGNoYXJhY3RlcnMxLDIpKWJyZWFrO2RlZmF1bHQ6b2Zmc2V0PTA7Y2FzZSAxMDA6Y2FzZSAxMDk6Y2FzZSAxMTU6fW9mZnNldD9wYXJzZSh2YWx1ZSxyZWZlcmVuY2UscmVmZXJlbmNlLHJ1bGUmJlV0aWxpdHlfYXBwZW5kKHJ1bGVzZXQodmFsdWUscmVmZXJlbmNlLHJlZmVyZW5jZSwwLDAscnVsZXMscG9pbnRzLHR5cGUscnVsZXMscHJvcHM9W10sbGVuZ3RoLGNoaWxkcmVuKSxjaGlsZHJlbikscnVsZXMsY2hpbGRyZW4sbGVuZ3RoLHBvaW50cyxydWxlP3Byb3BzOmNoaWxkcmVuKTpwYXJzZShjaGFyYWN0ZXJzMSxyZWZlcmVuY2UscmVmZXJlbmNlLHJlZmVyZW5jZSxbIiJdLGNoaWxkcmVuLDAscG9pbnRzLGNoaWxkcmVuKX19fWluZGV4PW9mZnNldD1wcm9wZXJ0eT0wLHZhcmlhYmxlPWFtcGVyc2FuZD0xLHR5cGU9Y2hhcmFjdGVyczE9IiIsbGVuZ3RoPXBzZXVkbzticmVhaztjYXNlIDU4Omxlbmd0aD0xK3N0cmxlbihjaGFyYWN0ZXJzMSkscHJvcGVydHk9cHJldmlvdXM7ZGVmYXVsdDppZih2YXJpYWJsZTwxKXtpZigxMjM9PWNoYXJhY3RlcjEpLS12YXJpYWJsZTtlbHNlIGlmKDEyNT09Y2hhcmFjdGVyMSYmMD09dmFyaWFibGUrKyYmMTI1PT0oY2hhcmFjdGVyPXBvc2l0aW9uPjA/Y2hhcmF0KGNoYXJhY3RlcnMsLS1wb3NpdGlvbik6MCxjb2x1bW4tLSwxMD09PWNoYXJhY3RlciYmKGNvbHVtbj0xLGxpbmUtLSksY2hhcmFjdGVyKSljb250aW51ZX1zd2l0Y2goY2hhcmFjdGVyczErPVV0aWxpdHlfZnJvbShjaGFyYWN0ZXIxKSxjaGFyYWN0ZXIxKnZhcmlhYmxlKXtjYXNlIDM4OmFtcGVyc2FuZD1vZmZzZXQ+MD8xOihjaGFyYWN0ZXJzMSs9IlxmIiwtMSk7YnJlYWs7Y2FzZSA0NDpwb2ludHNbaW5kZXgrK109KHN0cmxlbihjaGFyYWN0ZXJzMSktMSkqYW1wZXJzYW5kLGFtcGVyc2FuZD0xO2JyZWFrO2Nhc2UgNjQ6NDU9PT1wZWVrKCkmJihjaGFyYWN0ZXJzMSs9ZGVsaW1pdChuZXh0KCkpKSxhdHJ1bGU9cGVlaygpLG9mZnNldD1sZW5ndGg9c3RybGVuKHR5cGU9Y2hhcmFjdGVyczErPWZ1bmN0aW9uKGluZGV4KXtmb3IoOyF0b2tlbihwZWVrKCkpOyluZXh0KCk7cmV0dXJuIHN1YnN0cihjaGFyYWN0ZXJzLGluZGV4LHBvc2l0aW9uKX0ocG9zaXRpb24pKSxjaGFyYWN0ZXIxKys7YnJlYWs7Y2FzZSA0NTo0NT09PXByZXZpb3VzJiYyPT1zdHJsZW4oY2hhcmFjdGVyczEpJiYodmFyaWFibGU9MCl9fXJldHVybiBydWxlc2V0c30oIiIsbnVsbCxudWxsLG51bGwsWyIiXSwodmFsdWUxPXZhbHVlPXN0eWxlU3RyLGxpbmU9Y29sdW1uPTEsVG9rZW5pemVyX2xlbmd0aD1zdHJsZW4oY2hhcmFjdGVycz12YWx1ZTEpLHBvc2l0aW9uPTAsdmFsdWU9W10pLDAsWzBdLHZhbHVlKSxjaGFyYWN0ZXJzPSIiLHZhbHVlMiksc3RyaW5naWZ5KS5yZXBsYWNlKC9ceyUlJVw6W147XTt9L2csIjsiKX1mdW5jdGlvbiBpbmplY3RTZWxlY3Rvckhhc2goa2V5LGhhc2hJZCxoYXNoUHJpb3JpdHkpe2lmKCFoYXNoSWQpcmV0dXJuIGtleTt2YXIgaGFzaENsYXNzTmFtZT0iLiIuY29uY2F0KGhhc2hJZCksaGFzaFNlbGVjdG9yPSJsb3ciPT09aGFzaFByaW9yaXR5PyI6d2hlcmUoIi5jb25jYXQoaGFzaENsYXNzTmFtZSwiKSIpOmhhc2hDbGFzc05hbWU7cmV0dXJuIGtleS5zcGxpdCgiLCIpLm1hcChmdW5jdGlvbihrKXt2YXIgX2ZpcnN0UGF0aCRtYXRjaCxmdWxsUGF0aD1rLnRyaW0oKS5zcGxpdCgvXHMrLyksZmlyc3RQYXRoPWZ1bGxQYXRoWzBdfHwiIixodG1sRWxlbWVudD0obnVsbD09PShfZmlyc3RQYXRoJG1hdGNoPWZpcnN0UGF0aC5tYXRjaCgvXlx3Ky8pKXx8dm9pZCAwPT09X2ZpcnN0UGF0aCRtYXRjaD92b2lkIDA6X2ZpcnN0UGF0aCRtYXRjaFswXSl8fCIiO3JldHVybltmaXJzdFBhdGg9IiIuY29uY2F0KGh0bWxFbGVtZW50KS5jb25jYXQoaGFzaFNlbGVjdG9yKS5jb25jYXQoZmlyc3RQYXRoLnNsaWNlKGh0bWxFbGVtZW50Lmxlbmd0aCkpXS5jb25jYXQoKDAsdG9Db25zdW1hYmxlQXJyYXkuWikoZnVsbFBhdGguc2xpY2UoMSkpKS5qb2luKCIgIil9KS5qb2luKCIsIil9dmFyIHBhcnNlU3R5bGU9ZnVuY3Rpb24gcGFyc2VTdHlsZShpbnRlcnBvbGF0aW9uKXt2YXIgY29uZmlnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxfcmVmPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7cm9vdDohMCxwYXJlbnRTZWxlY3RvcnM6W119LHJvb3Q9X3JlZi5yb290LGluamVjdEhhc2g9X3JlZi5pbmplY3RIYXNoLHBhcmVudFNlbGVjdG9ycz1fcmVmLnBhcmVudFNlbGVjdG9ycyxoYXNoSWQ9Y29uZmlnLmhhc2hJZCxsYXllcj1jb25maWcubGF5ZXIsaGFzaFByaW9yaXR5PShjb25maWcucGF0aCxjb25maWcuaGFzaFByaW9yaXR5KSxfY29uZmlnJHRyYW5zZm9ybWVycz1jb25maWcudHJhbnNmb3JtZXJzLHRyYW5zZm9ybWVycz12b2lkIDA9PT1fY29uZmlnJHRyYW5zZm9ybWVycz9bXTpfY29uZmlnJHRyYW5zZm9ybWVycztjb25maWcubGludGVyczt2YXIgc3R5bGVTdHI9IiIsZWZmZWN0U3R5bGU9e307ZnVuY3Rpb24gcGFyc2VLZXlmcmFtZXMoa2V5ZnJhbWVzKXt2YXIgYW5pbWF0aW9uTmFtZT1rZXlmcmFtZXMuZ2V0TmFtZShoYXNoSWQpO2lmKCFlZmZlY3RTdHlsZVthbmltYXRpb25OYW1lXSl7dmFyIF9wYXJzZVN0eWxlPXBhcnNlU3R5bGUoa2V5ZnJhbWVzLnN0eWxlLGNvbmZpZyx7cm9vdDohMSxwYXJlbnRTZWxlY3RvcnM6cGFyZW50U2VsZWN0b3JzfSksX3BhcnNlZFN0cj0oMCxzbGljZWRUb0FycmF5LlopKF9wYXJzZVN0eWxlLDEpWzBdO2VmZmVjdFN0eWxlW2FuaW1hdGlvbk5hbWVdPSJAa2V5ZnJhbWVzICIuY29uY2F0KGtleWZyYW1lcy5nZXROYW1lKGhhc2hJZCkpLmNvbmNhdChfcGFyc2VkU3RyKX19cmV0dXJuKGZ1bmN0aW9uIGZsYXR0ZW5MaXN0KGxpc3Qpe3ZhciBmdWxsTGlzdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W107cmV0dXJuIGxpc3QuZm9yRWFjaChmdW5jdGlvbihpdGVtKXtBcnJheS5pc0FycmF5KGl0ZW0pP2ZsYXR0ZW5MaXN0KGl0ZW0sZnVsbExpc3QpOml0ZW0mJmZ1bGxMaXN0LnB1c2goaXRlbSl9KSxmdWxsTGlzdH0pKEFycmF5LmlzQXJyYXkoaW50ZXJwb2xhdGlvbik/aW50ZXJwb2xhdGlvbjpbaW50ZXJwb2xhdGlvbl0pLmZvckVhY2goZnVuY3Rpb24ob3JpZ2luU3R5bGUpe3ZhciBzdHlsZT0ic3RyaW5nIiE9dHlwZW9mIG9yaWdpblN0eWxlfHxyb290P29yaWdpblN0eWxlOnt9O2lmKCJzdHJpbmciPT10eXBlb2Ygc3R5bGUpc3R5bGVTdHIrPSIiLmNvbmNhdChzdHlsZSwiXG4iKTtlbHNlIGlmKHN0eWxlLl9rZXlmcmFtZSlwYXJzZUtleWZyYW1lcyhzdHlsZSk7ZWxzZXt2YXIgbWVyZ2VkU3R5bGU9dHJhbnNmb3JtZXJzLnJlZHVjZShmdW5jdGlvbihwcmV2LHRyYW5zKXt2YXIgX3RyYW5zJHZpc2l0O3JldHVybihudWxsPT10cmFuc3x8bnVsbD09PShfdHJhbnMkdmlzaXQ9dHJhbnMudmlzaXQpfHx2b2lkIDA9PT1fdHJhbnMkdmlzaXQ/dm9pZCAwOl90cmFucyR2aXNpdC5jYWxsKHRyYW5zLHByZXYpKXx8cHJldn0sc3R5bGUpO09iamVjdC5rZXlzKG1lcmdlZFN0eWxlKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSl7dmFyIHZhbHVlPW1lcmdlZFN0eWxlW2tleV07aWYoIm9iamVjdCIhPT0oMCxlc21fdHlwZW9mLlopKHZhbHVlKXx8IXZhbHVlfHwiYW5pbWF0aW9uTmFtZSI9PT1rZXkmJnZhbHVlLl9rZXlmcmFtZXx8KHZhbHVlMT12YWx1ZSwib2JqZWN0Ij09PSgwLGVzbV90eXBlb2YuWikodmFsdWUxKSYmdmFsdWUxJiYoIl9za2lwX2NoZWNrXyJpbiB2YWx1ZTF8fE1VTFRJX1ZBTFVFIGluIHZhbHVlMSkpKXtmdW5jdGlvbiBhcHBlbmRTdHlsZShjc3NLZXksY3NzVmFsdWUpe3ZhciBzdHlsZU5hbWU9Y3NzS2V5LnJlcGxhY2UoL1tBLVpdL2csZnVuY3Rpb24obWF0Y2gpe3JldHVybiItIi5jb25jYXQobWF0Y2gudG9Mb3dlckNhc2UoKSl9KSxmb3JtYXRWYWx1ZT1jc3NWYWx1ZTt1bml0bGVzc19icm93c2VyX2VzbS5aW2Nzc0tleV18fCJudW1iZXIiIT10eXBlb2YgZm9ybWF0VmFsdWV8fDA9PT1mb3JtYXRWYWx1ZXx8KGZvcm1hdFZhbHVlPSIiLmNvbmNhdChmb3JtYXRWYWx1ZSwicHgiKSksImFuaW1hdGlvbk5hbWUiPT09Y3NzS2V5JiZudWxsIT1jc3NWYWx1ZSYmY3NzVmFsdWUuX2tleWZyYW1lJiYocGFyc2VLZXlmcmFtZXMoY3NzVmFsdWUpLGZvcm1hdFZhbHVlPWNzc1ZhbHVlLmdldE5hbWUoaGFzaElkKSksc3R5bGVTdHIrPSIiLmNvbmNhdChzdHlsZU5hbWUsIjoiKS5jb25jYXQoZm9ybWF0VmFsdWUsIjsiKX12YXIgdmFsdWUxLF92YWx1ZSxhY3R1YWxWYWx1ZT1udWxsIT09KF92YWx1ZT1udWxsPT12YWx1ZT92b2lkIDA6dmFsdWUudmFsdWUpJiZ2b2lkIDAhPT1fdmFsdWU/X3ZhbHVlOnZhbHVlOyJvYmplY3QiPT09KDAsZXNtX3R5cGVvZi5aKSh2YWx1ZSkmJm51bGwhPXZhbHVlJiZ2YWx1ZVtNVUxUSV9WQUxVRV0mJkFycmF5LmlzQXJyYXkoYWN0dWFsVmFsdWUpP2FjdHVhbFZhbHVlLmZvckVhY2goZnVuY3Rpb24oaXRlbSl7YXBwZW5kU3R5bGUoa2V5LGl0ZW0pfSk6YXBwZW5kU3R5bGUoa2V5LGFjdHVhbFZhbHVlKX1lbHNle3ZhciBzdWJJbmplY3RIYXNoPSExLG1lcmdlZEtleT1rZXkudHJpbSgpLG5leHRSb290PSExOyhyb290fHxpbmplY3RIYXNoKSYmaGFzaElkP21lcmdlZEtleS5zdGFydHNXaXRoKCJAIik/c3ViSW5qZWN0SGFzaD0hMDptZXJnZWRLZXk9IiYiPT09bWVyZ2VkS2V5P2luamVjdFNlbGVjdG9ySGFzaCgiIixoYXNoSWQsaGFzaFByaW9yaXR5KTppbmplY3RTZWxlY3Rvckhhc2goa2V5LGhhc2hJZCxoYXNoUHJpb3JpdHkpOnJvb3QmJiFoYXNoSWQmJigiJiI9PT1tZXJnZWRLZXl8fCIiPT09bWVyZ2VkS2V5KSYmKG1lcmdlZEtleT0iIixuZXh0Um9vdD0hMCk7dmFyIF9wYXJzZVN0eWxlMz1wYXJzZVN0eWxlKHZhbHVlLGNvbmZpZyx7cm9vdDpuZXh0Um9vdCxpbmplY3RIYXNoOnN1YkluamVjdEhhc2gscGFyZW50U2VsZWN0b3JzOltdLmNvbmNhdCgoMCx0b0NvbnN1bWFibGVBcnJheS5aKShwYXJlbnRTZWxlY3RvcnMpLFttZXJnZWRLZXldKX0pLF9wYXJzZVN0eWxlND0oMCxzbGljZWRUb0FycmF5LlopKF9wYXJzZVN0eWxlMywyKSxfcGFyc2VkU3RyMj1fcGFyc2VTdHlsZTRbMF0sY2hpbGRFZmZlY3RTdHlsZT1fcGFyc2VTdHlsZTRbMV07ZWZmZWN0U3R5bGU9KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LGVmZmVjdFN0eWxlKSxjaGlsZEVmZmVjdFN0eWxlKSxzdHlsZVN0cis9IiIuY29uY2F0KG1lcmdlZEtleSkuY29uY2F0KF9wYXJzZWRTdHIyKX19KX19KSxyb290P2xheWVyJiYoc3R5bGVTdHImJihzdHlsZVN0cj0iQGxheWVyICIuY29uY2F0KGxheWVyLm5hbWUsIiB7IikuY29uY2F0KHN0eWxlU3RyLCJ9IikpLGxheWVyLmRlcGVuZGVuY2llcyYmKGVmZmVjdFN0eWxlWyJAbGF5ZXIgIi5jb25jYXQobGF5ZXIubmFtZSldPWxheWVyLmRlcGVuZGVuY2llcy5tYXAoZnVuY3Rpb24oZGVwcyl7cmV0dXJuIkBsYXllciAiLmNvbmNhdChkZXBzLCIsICIpLmNvbmNhdChsYXllci5uYW1lLCI7Iil9KS5qb2luKCJcbiIpKSk6c3R5bGVTdHI9InsiLmNvbmNhdChzdHlsZVN0ciwifSIpLFtzdHlsZVN0cixlZmZlY3RTdHlsZV19O2Z1bmN0aW9uIHVuaXF1ZUhhc2gocGF0aCxzdHlsZVN0cil7cmV0dXJuKDAsaGFzaF9icm93c2VyX2VzbS5aKSgiIi5jb25jYXQocGF0aC5qb2luKCIlIikpLmNvbmNhdChzdHlsZVN0cikpfWZ1bmN0aW9uIEVtcHR5KCl7cmV0dXJuIG51bGx9dmFyIFNUWUxFX1BSRUZJWD0ic3R5bGUiO2Z1bmN0aW9uIHVzZVN0eWxlUmVnaXN0ZXIoaW5mbyxzdHlsZUZuKXt2YXIgdG9rZW49aW5mby50b2tlbixwYXRoPWluZm8ucGF0aCxoYXNoSWQ9aW5mby5oYXNoSWQsbGF5ZXI9aW5mby5sYXllcixub25jZT1pbmZvLm5vbmNlLGNsaWVudE9ubHk9aW5mby5jbGllbnRPbmx5LF9pbmZvJG9yZGVyPWluZm8ub3JkZXIsb3JkZXI9dm9pZCAwPT09X2luZm8kb3JkZXI/MDpfaW5mbyRvcmRlcixfUmVhY3QkdXNlQ29udGV4dD1yZWFjdC51c2VDb250ZXh0KFN0eWxlQ29udGV4dF9TdHlsZUNvbnRleHQpLGF1dG9DbGVhcj1fUmVhY3QkdXNlQ29udGV4dC5hdXRvQ2xlYXIsZGVmYXVsdENhY2hlPShfUmVhY3QkdXNlQ29udGV4dC5tb2NrLF9SZWFjdCR1c2VDb250ZXh0LmRlZmF1bHRDYWNoZSksaGFzaFByaW9yaXR5PV9SZWFjdCR1c2VDb250ZXh0Lmhhc2hQcmlvcml0eSxjb250YWluZXI9X1JlYWN0JHVzZUNvbnRleHQuY29udGFpbmVyLHNzcklubGluZT1fUmVhY3QkdXNlQ29udGV4dC5zc3JJbmxpbmUsdHJhbnNmb3JtZXJzPV9SZWFjdCR1c2VDb250ZXh0LnRyYW5zZm9ybWVycyxsaW50ZXJzPV9SZWFjdCR1c2VDb250ZXh0LmxpbnRlcnMsY2FjaGU9X1JlYWN0JHVzZUNvbnRleHQuY2FjaGUsZW5hYmxlTGF5ZXI9X1JlYWN0JHVzZUNvbnRleHQubGF5ZXIsdG9rZW5LZXk9dG9rZW4uX3Rva2VuS2V5LGZ1bGxQYXRoPVt0b2tlbktleV07ZW5hYmxlTGF5ZXImJmZ1bGxQYXRoLnB1c2goImxheWVyIiksZnVsbFBhdGgucHVzaC5hcHBseShmdWxsUGF0aCwoMCx0b0NvbnN1bWFibGVBcnJheS5aKShwYXRoKSk7dmFyIF91c2VHbG9iYWxDYWNoZT11c2VHbG9iYWxDYWNoZV91c2VHbG9iYWxDYWNoZShTVFlMRV9QUkVGSVgsZnVsbFBhdGgsZnVuY3Rpb24oKXt2YXIgY2FjaGVQYXRoPWZ1bGxQYXRoLmpvaW4oInwiKTtpZighZnVuY3Rpb24oKXtpZighY2FjaGVQYXRoTWFwJiYoY2FjaGVQYXRoTWFwPXt9LCgwLGNhblVzZURvbS5aKSgpKSl7dmFyIF9pbmxpbmVNYXBTdHlsZSRwYXJlbixkaXY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZGl2LmNsYXNzTmFtZT1jYWNoZU1hcFV0aWxfQVRUUl9DQUNIRV9NQVAsZGl2LnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsZGl2LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsZGl2LnN0eWxlLnRvcD0iLTk5OTlweCIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpO3ZhciBjb250ZW50PWdldENvbXB1dGVkU3R5bGUoZGl2KS5jb250ZW50fHwiIjsoY29udGVudD1jb250ZW50LnJlcGxhY2UoL14iLywiIikucmVwbGFjZSgvIiQvLCIiKSkuc3BsaXQoIjsiKS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pe3ZhciBfaXRlbSRzcGxpdD1pdGVtLnNwbGl0KCI6IiksX2l0ZW0kc3BsaXQyPSgwLHNsaWNlZFRvQXJyYXkuWikoX2l0ZW0kc3BsaXQsMikscGF0aD1faXRlbSRzcGxpdDJbMF0saGFzaD1faXRlbSRzcGxpdDJbMV07Y2FjaGVQYXRoTWFwW3BhdGhdPWhhc2h9KTt2YXIgaW5saW5lTWFwU3R5bGU9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic3R5bGVbIi5jb25jYXQoY2FjaGVNYXBVdGlsX0FUVFJfQ0FDSEVfTUFQLCJdIikpO2lubGluZU1hcFN0eWxlJiYoZnJvbUNTU0ZpbGU9ITEsbnVsbD09PShfaW5saW5lTWFwU3R5bGUkcGFyZW49aW5saW5lTWFwU3R5bGUucGFyZW50Tm9kZSl8fHZvaWQgMD09PV9pbmxpbmVNYXBTdHlsZSRwYXJlbnx8X2lubGluZU1hcFN0eWxlJHBhcmVuLnJlbW92ZUNoaWxkKGlubGluZU1hcFN0eWxlKSksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpfX0oKSxjYWNoZVBhdGhNYXBbY2FjaGVQYXRoXSl7dmFyIF9nZXRTdHlsZUFuZEhhc2g9ZnVuY3Rpb24ocGF0aCl7dmFyIGhhc2g9Y2FjaGVQYXRoTWFwW3BhdGhdLHN0eWxlU3RyPW51bGw7aWYoaGFzaCYmKDAsY2FuVXNlRG9tLlopKCkpe2lmKGZyb21DU1NGaWxlKXN0eWxlU3RyPUNTU19GSUxFX1NUWUxFO2Vsc2V7dmFyIF9zdHlsZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJzdHlsZVsiLmNvbmNhdChTdHlsZUNvbnRleHRfQVRUUl9NQVJLLCc9IicpLmNvbmNhdChjYWNoZVBhdGhNYXBbcGF0aF0sJyJdJykpO19zdHlsZT9zdHlsZVN0cj1fc3R5bGUuaW5uZXJIVE1MOmRlbGV0ZSBjYWNoZVBhdGhNYXBbcGF0aF19fXJldHVybltzdHlsZVN0cixoYXNoXX0oY2FjaGVQYXRoKSxfZ2V0U3R5bGVBbmRIYXNoMj0oMCxzbGljZWRUb0FycmF5LlopKF9nZXRTdHlsZUFuZEhhc2gsMiksaW5saW5lQ2FjaGVTdHlsZVN0cj1fZ2V0U3R5bGVBbmRIYXNoMlswXSxzdHlsZUhhc2g9X2dldFN0eWxlQW5kSGFzaDJbMV07aWYoaW5saW5lQ2FjaGVTdHlsZVN0cilyZXR1cm5baW5saW5lQ2FjaGVTdHlsZVN0cix0b2tlbktleSxzdHlsZUhhc2gse30sY2xpZW50T25seSxvcmRlcl19dmFyIF9wYXJzZVN0eWxlNT1wYXJzZVN0eWxlKHN0eWxlRm4oKSx7aGFzaElkOmhhc2hJZCxoYXNoUHJpb3JpdHk6aGFzaFByaW9yaXR5LGxheWVyOmVuYWJsZUxheWVyP2xheWVyOnZvaWQgMCxwYXRoOnBhdGguam9pbigiLSIpLHRyYW5zZm9ybWVyczp0cmFuc2Zvcm1lcnMsbGludGVyczpsaW50ZXJzfSksX3BhcnNlU3R5bGU2PSgwLHNsaWNlZFRvQXJyYXkuWikoX3BhcnNlU3R5bGU1LDIpLHBhcnNlZFN0eWxlPV9wYXJzZVN0eWxlNlswXSxlZmZlY3RTdHlsZT1fcGFyc2VTdHlsZTZbMV0sc3R5bGVTdHI9bm9ybWFsaXplU3R5bGUocGFyc2VkU3R5bGUpLHN0eWxlSWQ9dW5pcXVlSGFzaChmdWxsUGF0aCxzdHlsZVN0cik7cmV0dXJuW3N0eWxlU3RyLHRva2VuS2V5LHN0eWxlSWQsZWZmZWN0U3R5bGUsY2xpZW50T25seSxvcmRlcl19LGZ1bmN0aW9uKF9yZWYyLGZyb21ITVIpe3ZhciBzdHlsZUlkPSgwLHNsaWNlZFRvQXJyYXkuWikoX3JlZjIsMylbMl07KGZyb21ITVJ8fGF1dG9DbGVhcikmJmlzQ2xpZW50U2lkZSYmKDAsZHluYW1pY0NTUy5qTCkoc3R5bGVJZCx7bWFyazpTdHlsZUNvbnRleHRfQVRUUl9NQVJLfSl9LGZ1bmN0aW9uKF9yZWY0KXt2YXIgX3JlZjU9KDAsc2xpY2VkVG9BcnJheS5aKShfcmVmNCw0KSxzdHlsZVN0cj1fcmVmNVswXSxzdHlsZUlkPShfcmVmNVsxXSxfcmVmNVsyXSksZWZmZWN0U3R5bGU9X3JlZjVbM107aWYoaXNDbGllbnRTaWRlJiZzdHlsZVN0ciE9PUNTU19GSUxFX1NUWUxFKXt2YXIgbWVyZ2VkQ1NTQ29uZmlnPXttYXJrOlN0eWxlQ29udGV4dF9BVFRSX01BUksscHJlcGVuZDohZW5hYmxlTGF5ZXImJiJxdWV1ZSIsYXR0YWNoVG86Y29udGFpbmVyLHByaW9yaXR5Om9yZGVyfSxub25jZVN0cj0iZnVuY3Rpb24iPT10eXBlb2Ygbm9uY2U/bm9uY2UoKTpub25jZTtub25jZVN0ciYmKG1lcmdlZENTU0NvbmZpZy5jc3A9e25vbmNlOm5vbmNlU3RyfSk7dmFyIGVmZmVjdExheWVyS2V5cz1bXSxlZmZlY3RSZXN0S2V5cz1bXTtPYmplY3Qua2V5cyhlZmZlY3RTdHlsZSkuZm9yRWFjaChmdW5jdGlvbihrZXkpe2tleS5zdGFydHNXaXRoKCJAbGF5ZXIiKT9lZmZlY3RMYXllcktleXMucHVzaChrZXkpOmVmZmVjdFJlc3RLZXlzLnB1c2goa2V5KX0pLGVmZmVjdExheWVyS2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGVmZmVjdEtleSl7KDAsZHluYW1pY0NTUy5ocSkobm9ybWFsaXplU3R5bGUoZWZmZWN0U3R5bGVbZWZmZWN0S2V5XSksIl9sYXllci0iLmNvbmNhdChlZmZlY3RLZXkpLCgwLG9iamVjdFNwcmVhZDIuWikoKDAsb2JqZWN0U3ByZWFkMi5aKSh7fSxtZXJnZWRDU1NDb25maWcpLHt9LHtwcmVwZW5kOiEwfSkpfSk7dmFyIHN0eWxlPSgwLGR5bmFtaWNDU1MuaHEpKHN0eWxlU3RyLHN0eWxlSWQsbWVyZ2VkQ1NTQ29uZmlnKTtzdHlsZVtTdHlsZUNvbnRleHRfQ1NTX0lOX0pTX0lOU1RBTkNFXT1jYWNoZS5pbnN0YW5jZUlkLHN0eWxlLnNldEF0dHJpYnV0ZShTdHlsZUNvbnRleHRfQVRUUl9UT0tFTix0b2tlbktleSksZWZmZWN0UmVzdEtleXMuZm9yRWFjaChmdW5jdGlvbihlZmZlY3RLZXkpeygwLGR5bmFtaWNDU1MuaHEpKG5vcm1hbGl6ZVN0eWxlKGVmZmVjdFN0eWxlW2VmZmVjdEtleV0pLCJfZWZmZWN0LSIuY29uY2F0KGVmZmVjdEtleSksbWVyZ2VkQ1NTQ29uZmlnKX0pfX0pLF91c2VHbG9iYWxDYWNoZTI9KDAsc2xpY2VkVG9BcnJheS5aKShfdXNlR2xvYmFsQ2FjaGUsMyksY2FjaGVkU3R5bGVTdHI9X3VzZUdsb2JhbENhY2hlMlswXSxjYWNoZWRUb2tlbktleT1fdXNlR2xvYmFsQ2FjaGUyWzFdLGNhY2hlZFN0eWxlSWQ9X3VzZUdsb2JhbENhY2hlMlsyXTtyZXR1cm4gZnVuY3Rpb24obm9kZSl7dmFyIHN0eWxlTm9kZSxfcmVmNjtyZXR1cm4gc3R5bGVOb2RlPXNzcklubGluZSYmIWlzQ2xpZW50U2lkZSYmZGVmYXVsdENhY2hlP3JlYWN0LmNyZWF0ZUVsZW1lbnQoInN0eWxlIiwoMCxlc21fZXh0ZW5kcy5aKSh7fSwoX3JlZjY9e30sKDAsZGVmaW5lUHJvcGVydHkuWikoX3JlZjYsU3R5bGVDb250ZXh0X0FUVFJfVE9LRU4sY2FjaGVkVG9rZW5LZXkpLCgwLGRlZmluZVByb3BlcnR5LlopKF9yZWY2LFN0eWxlQ29udGV4dF9BVFRSX01BUkssY2FjaGVkU3R5bGVJZCksX3JlZjYpLHtkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOmNhY2hlZFN0eWxlU3RyfX0pKTpyZWFjdC5jcmVhdGVFbGVtZW50KEVtcHR5LG51bGwpLHJlYWN0LmNyZWF0ZUVsZW1lbnQocmVhY3QuRnJhZ21lbnQsbnVsbCxzdHlsZU5vZGUsbm9kZSl9fXZhciBDU1NfVkFSX1BSRUZJWD0iY3NzVmFyIixob29rc191c2VDU1NWYXJSZWdpc3Rlcj1mdW5jdGlvbihjb25maWcsZm4pe3ZhciBrZXk9Y29uZmlnLmtleSxwcmVmaXg9Y29uZmlnLnByZWZpeCx1bml0bGVzcz1jb25maWcudW5pdGxlc3MsaWdub3JlPWNvbmZpZy5pZ25vcmUsdG9rZW49Y29uZmlnLnRva2VuLF9jb25maWckc2NvcGU9Y29uZmlnLnNjb3BlLHNjb3BlPXZvaWQgMD09PV9jb25maWckc2NvcGU/IiI6X2NvbmZpZyRzY29wZSxfdXNlQ29udGV4dD0oMCxyZWFjdC51c2VDb250ZXh0KShTdHlsZUNvbnRleHRfU3R5bGVDb250ZXh0KSxpbnN0YW5jZUlkPV91c2VDb250ZXh0LmNhY2hlLmluc3RhbmNlSWQsY29udGFpbmVyPV91c2VDb250ZXh0LmNvbnRhaW5lcix0b2tlbktleT10b2tlbi5fdG9rZW5LZXksc3R5bGVQYXRoPVtdLmNvbmNhdCgoMCx0b0NvbnN1bWFibGVBcnJheS5aKShjb25maWcucGF0aCksW2tleSxzY29wZSx0b2tlbktleV0pO3JldHVybiB1c2VHbG9iYWxDYWNoZV91c2VHbG9iYWxDYWNoZShDU1NfVkFSX1BSRUZJWCxzdHlsZVBhdGgsZnVuY3Rpb24oKXt2YXIgX3RyYW5zZm9ybVRva2VuPWNzc192YXJpYWJsZXNfdHJhbnNmb3JtVG9rZW4oZm4oKSxrZXkse3ByZWZpeDpwcmVmaXgsdW5pdGxlc3M6dW5pdGxlc3MsaWdub3JlOmlnbm9yZSxzY29wZTpzY29wZX0pLF90cmFuc2Zvcm1Ub2tlbjI9KDAsc2xpY2VkVG9BcnJheS5aKShfdHJhbnNmb3JtVG9rZW4sMiksbWVyZ2VkVG9rZW49X3RyYW5zZm9ybVRva2VuMlswXSxjc3NWYXJzU3RyPV90cmFuc2Zvcm1Ub2tlbjJbMV0sc3R5bGVJZD11bmlxdWVIYXNoKHN0eWxlUGF0aCxjc3NWYXJzU3RyKTtyZXR1cm5bbWVyZ2VkVG9rZW4sY3NzVmFyc1N0cixzdHlsZUlkLGtleV19LGZ1bmN0aW9uKF9yZWYpe3ZhciBzdHlsZUlkPSgwLHNsaWNlZFRvQXJyYXkuWikoX3JlZiwzKVsyXTtpc0NsaWVudFNpZGUmJigwLGR5bmFtaWNDU1MuakwpKHN0eWxlSWQse21hcms6U3R5bGVDb250ZXh0X0FUVFJfTUFSS30pfSxmdW5jdGlvbihfcmVmMyl7dmFyIF9yZWY0PSgwLHNsaWNlZFRvQXJyYXkuWikoX3JlZjMsMyksY3NzVmFyc1N0cj1fcmVmNFsxXSxzdHlsZUlkPV9yZWY0WzJdO2lmKGNzc1ZhcnNTdHIpe3ZhciBzdHlsZT0oMCxkeW5hbWljQ1NTLmhxKShjc3NWYXJzU3RyLHN0eWxlSWQse21hcms6U3R5bGVDb250ZXh0X0FUVFJfTUFSSyxwcmVwZW5kOiJxdWV1ZSIsYXR0YWNoVG86Y29udGFpbmVyLHByaW9yaXR5Oi05OTl9KTtzdHlsZVtTdHlsZUNvbnRleHRfQ1NTX0lOX0pTX0lOU1RBTkNFXT1pbnN0YW5jZUlkLHN0eWxlLnNldEF0dHJpYnV0ZShTdHlsZUNvbnRleHRfQVRUUl9UT0tFTixrZXkpfX0pfTtmdW5jdGlvbiBub1NwbGl0KGxpc3Qpe3JldHVybiBsaXN0Lm5vdFNwbGl0PSEwLGxpc3R9X0V4dHJhY3RTdHlsZUZucz17fSwoMCxkZWZpbmVQcm9wZXJ0eS5aKShfRXh0cmFjdFN0eWxlRm5zLFNUWUxFX1BSRUZJWCxmdW5jdGlvbihjYWNoZSxlZmZlY3RTdHlsZXMsb3B0aW9ucyl7dmFyIF9jYWNoZT0oMCxzbGljZWRUb0FycmF5LlopKGNhY2hlLDYpLHN0eWxlU3RyPV9jYWNoZVswXSx0b2tlbktleT1fY2FjaGVbMV0sc3R5bGVJZD1fY2FjaGVbMl0sZWZmZWN0U3R5bGU9X2NhY2hlWzNdLGNsaWVudE9ubHk9X2NhY2hlWzRdLG9yZGVyPV9jYWNoZVs1XSxwbGFpbj0ob3B0aW9uc3x8e30pLnBsYWluO2lmKGNsaWVudE9ubHkpcmV0dXJuIG51bGw7dmFyIGtleVN0eWxlVGV4dD1zdHlsZVN0cixzaGFyZWRBdHRycz17ImRhdGEtcmMtb3JkZXIiOiJwcmVwZW5kUXVldWUiLCJkYXRhLXJjLXByaW9yaXR5IjoiIi5jb25jYXQob3JkZXIpfTtyZXR1cm4ga2V5U3R5bGVUZXh0PXV0aWxfdG9TdHlsZVN0cihzdHlsZVN0cix0b2tlbktleSxzdHlsZUlkLHNoYXJlZEF0dHJzLHBsYWluKSxlZmZlY3RTdHlsZSYmT2JqZWN0LmtleXMoZWZmZWN0U3R5bGUpLmZvckVhY2goZnVuY3Rpb24oZWZmZWN0S2V5KXtpZighZWZmZWN0U3R5bGVzW2VmZmVjdEtleV0pe2VmZmVjdFN0eWxlc1tlZmZlY3RLZXldPSEwO3ZhciBlZmZlY3RTdHlsZUhUTUw9dXRpbF90b1N0eWxlU3RyKG5vcm1hbGl6ZVN0eWxlKGVmZmVjdFN0eWxlW2VmZmVjdEtleV0pLHRva2VuS2V5LCJfZWZmZWN0LSIuY29uY2F0KGVmZmVjdEtleSksc2hhcmVkQXR0cnMscGxhaW4pO2VmZmVjdEtleS5zdGFydHNXaXRoKCJAbGF5ZXIiKT9rZXlTdHlsZVRleHQ9ZWZmZWN0U3R5bGVIVE1MK2tleVN0eWxlVGV4dDprZXlTdHlsZVRleHQrPWVmZmVjdFN0eWxlSFRNTH19KSxbb3JkZXIsc3R5bGVJZCxrZXlTdHlsZVRleHRdfSksKDAsZGVmaW5lUHJvcGVydHkuWikoX0V4dHJhY3RTdHlsZUZucywidG9rZW4iLGZ1bmN0aW9uKGNhY2hlLGVmZmVjdFN0eWxlcyxvcHRpb25zKXt2YXIgX2NhY2hlPSgwLHNsaWNlZFRvQXJyYXkuWikoY2FjaGUsNSkscmVhbFRva2VuPV9jYWNoZVsyXSxzdHlsZVN0cj1fY2FjaGVbM10sY3NzVmFyS2V5PV9jYWNoZVs0XSxwbGFpbj0ob3B0aW9uc3x8e30pLnBsYWluO2lmKCFzdHlsZVN0cilyZXR1cm4gbnVsbDt2YXIgc3R5bGVJZD1yZWFsVG9rZW4uX3Rva2VuS2V5LHN0eWxlVGV4dD11dGlsX3RvU3R5bGVTdHIoc3R5bGVTdHIsY3NzVmFyS2V5LHN0eWxlSWQseyJkYXRhLXJjLW9yZGVyIjoicHJlcGVuZFF1ZXVlIiwiZGF0YS1yYy1wcmlvcml0eSI6IiIuY29uY2F0KC05OTkpfSxwbGFpbik7cmV0dXJuWy05OTksc3R5bGVJZCxzdHlsZVRleHRdfSksKDAsZGVmaW5lUHJvcGVydHkuWikoX0V4dHJhY3RTdHlsZUZucyxDU1NfVkFSX1BSRUZJWCxmdW5jdGlvbihjYWNoZSxlZmZlY3RTdHlsZXMsb3B0aW9ucyl7dmFyIF9jYWNoZT0oMCxzbGljZWRUb0FycmF5LlopKGNhY2hlLDQpLHN0eWxlU3RyPV9jYWNoZVsxXSxzdHlsZUlkPV9jYWNoZVsyXSxjc3NWYXJLZXk9X2NhY2hlWzNdLHBsYWluPShvcHRpb25zfHx7fSkucGxhaW47aWYoIXN0eWxlU3RyKXJldHVybiBudWxsO3ZhciBzdHlsZVRleHQ9dXRpbF90b1N0eWxlU3RyKHN0eWxlU3RyLGNzc1ZhcktleSxzdHlsZUlkLHsiZGF0YS1yYy1vcmRlciI6InByZXBlbmRRdWV1ZSIsImRhdGEtcmMtcHJpb3JpdHkiOiIiLmNvbmNhdCgtOTk5KX0scGxhaW4pO3JldHVyblstOTk5LHN0eWxlSWQsc3R5bGVUZXh0XX0pLG5vU3BsaXQoWyJib3JkZXJUb3AiLCJib3JkZXJCb3R0b20iXSksbm9TcGxpdChbImJvcmRlclRvcCJdKSxub1NwbGl0KFsiYm9yZGVyQm90dG9tIl0pLG5vU3BsaXQoWyJib3JkZXJMZWZ0IiwiYm9yZGVyUmlnaHQiXSksbm9TcGxpdChbImJvcmRlckxlZnQiXSksbm9TcGxpdChbImJvcmRlclJpZ2h0Il0pO3ZhciBjYWxjdWxhdG9yX0Fic3RyYWN0Q2FsY3VsYXRvcj0oMCxjcmVhdGVDbGFzcy5aKShmdW5jdGlvbiBBYnN0cmFjdENhbGN1bGF0b3IoKXsoMCxjbGFzc0NhbGxDaGVjay5aKSh0aGlzLEFic3RyYWN0Q2FsY3VsYXRvcil9KSxDU1NDYWxjdWxhdG9yX0NBTENfVU5JVD0iQ0FMQ19VTklUIixDU1NDYWxjdWxhdG9yX3JlZ2V4cD1SZWdFeHAoQ1NTQ2FsY3VsYXRvcl9DQUxDX1VOSVQsImciKTtmdW5jdGlvbiBDU1NDYWxjdWxhdG9yX3VuaXQodmFsdWUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdmFsdWU/IiIuY29uY2F0KHZhbHVlKS5jb25jYXQoQ1NTQ2FsY3VsYXRvcl9DQUxDX1VOSVQpOnZhbHVlfXZhciBjYWxjX0NTU0NhbGN1bGF0b3JfQ1NTQ2FsY3VsYXRvcj1mdW5jdGlvbihfQWJzdHJhY3RDYWxjdWxhdG9yKXsoMCxpbmhlcml0cy5aKShDU1NDYWxjdWxhdG9yLF9BYnN0cmFjdENhbGN1bGF0b3IpO3ZhciBfc3VwZXI9KDAsY3JlYXRlU3VwZXIuWikoQ1NTQ2FsY3VsYXRvcik7ZnVuY3Rpb24gQ1NTQ2FsY3VsYXRvcihudW0sdW5pdGxlc3NDc3NWYXIpeygwLGNsYXNzQ2FsbENoZWNrLlopKHRoaXMsQ1NTQ2FsY3VsYXRvciksX3RoaXM9X3N1cGVyLmNhbGwodGhpcyksKDAsZGVmaW5lUHJvcGVydHkuWikoKDAsYXNzZXJ0VGhpc0luaXRpYWxpemVkLlopKF90aGlzKSwicmVzdWx0IiwiIiksKDAsZGVmaW5lUHJvcGVydHkuWikoKDAsYXNzZXJ0VGhpc0luaXRpYWxpemVkLlopKF90aGlzKSwidW5pdGxlc3NDc3NWYXIiLHZvaWQgMCksKDAsZGVmaW5lUHJvcGVydHkuWikoKDAsYXNzZXJ0VGhpc0luaXRpYWxpemVkLlopKF90aGlzKSwibG93UHJpb3JpdHkiLHZvaWQgMCk7dmFyIF90aGlzLG51bVR5cGU9KDAsZXNtX3R5cGVvZi5aKShudW0pO3JldHVybiBfdGhpcy51bml0bGVzc0Nzc1Zhcj11bml0bGVzc0Nzc1ZhcixudW0gaW5zdGFuY2VvZiBDU1NDYWxjdWxhdG9yP190aGlzLnJlc3VsdD0iKCIuY29uY2F0KG51bS5yZXN1bHQsIikiKToibnVtYmVyIj09PW51bVR5cGU/X3RoaXMucmVzdWx0PUNTU0NhbGN1bGF0b3JfdW5pdChudW0pOiJzdHJpbmciPT09bnVtVHlwZSYmKF90aGlzLnJlc3VsdD1udW0pLF90aGlzfXJldHVybigwLGNyZWF0ZUNsYXNzLlopKENTU0NhbGN1bGF0b3IsW3trZXk6ImFkZCIsdmFsdWU6ZnVuY3Rpb24obnVtKXtyZXR1cm4gbnVtIGluc3RhbmNlb2YgQ1NTQ2FsY3VsYXRvcj90aGlzLnJlc3VsdD0iIi5jb25jYXQodGhpcy5yZXN1bHQsIiArICIpLmNvbmNhdChudW0uZ2V0UmVzdWx0KCkpOigibnVtYmVyIj09dHlwZW9mIG51bXx8InN0cmluZyI9PXR5cGVvZiBudW0pJiYodGhpcy5yZXN1bHQ9IiIuY29uY2F0KHRoaXMucmVzdWx0LCIgKyAiKS5jb25jYXQoQ1NTQ2FsY3VsYXRvcl91bml0KG51bSkpKSx0aGlzLmxvd1ByaW9yaXR5PSEwLHRoaXN9fSx7a2V5OiJzdWIiLHZhbHVlOmZ1bmN0aW9uKG51bSl7cmV0dXJuIG51bSBpbnN0YW5jZW9mIENTU0NhbGN1bGF0b3I/dGhpcy5yZXN1bHQ9IiIuY29uY2F0KHRoaXMucmVzdWx0LCIgLSAiKS5jb25jYXQobnVtLmdldFJlc3VsdCgpKTooIm51bWJlciI9PXR5cGVvZiBudW18fCJzdHJpbmciPT10eXBlb2YgbnVtKSYmKHRoaXMucmVzdWx0PSIiLmNvbmNhdCh0aGlzLnJlc3VsdCwiIC0gIikuY29uY2F0KENTU0NhbGN1bGF0b3JfdW5pdChudW0pKSksdGhpcy5sb3dQcmlvcml0eT0hMCx0aGlzfX0se2tleToibXVsIix2YWx1ZTpmdW5jdGlvbihudW0pe3JldHVybiB0aGlzLmxvd1ByaW9yaXR5JiYodGhpcy5yZXN1bHQ9IigiLmNvbmNhdCh0aGlzLnJlc3VsdCwiKSIpKSxudW0gaW5zdGFuY2VvZiBDU1NDYWxjdWxhdG9yP3RoaXMucmVzdWx0PSIiLmNvbmNhdCh0aGlzLnJlc3VsdCwiICogIikuY29uY2F0KG51bS5nZXRSZXN1bHQoITApKTooIm51bWJlciI9PXR5cGVvZiBudW18fCJzdHJpbmciPT10eXBlb2YgbnVtKSYmKHRoaXMucmVzdWx0PSIiLmNvbmNhdCh0aGlzLnJlc3VsdCwiICogIikuY29uY2F0KG51bSkpLHRoaXMubG93UHJpb3JpdHk9ITEsdGhpc319LHtrZXk6ImRpdiIsdmFsdWU6ZnVuY3Rpb24obnVtKXtyZXR1cm4gdGhpcy5sb3dQcmlvcml0eSYmKHRoaXMucmVzdWx0PSIoIi5jb25jYXQodGhpcy5yZXN1bHQsIikiKSksbnVtIGluc3RhbmNlb2YgQ1NTQ2FsY3VsYXRvcj90aGlzLnJlc3VsdD0iIi5jb25jYXQodGhpcy5yZXN1bHQsIiAvICIpLmNvbmNhdChudW0uZ2V0UmVzdWx0KCEwKSk6KCJudW1iZXIiPT10eXBlb2YgbnVtfHwic3RyaW5nIj09dHlwZW9mIG51bSkmJih0aGlzLnJlc3VsdD0iIi5jb25jYXQodGhpcy5yZXN1bHQsIiAvICIpLmNvbmNhdChudW0pKSx0aGlzLmxvd1ByaW9yaXR5PSExLHRoaXN9fSx7a2V5OiJnZXRSZXN1bHQiLHZhbHVlOmZ1bmN0aW9uKGZvcmNlKXtyZXR1cm4gdGhpcy5sb3dQcmlvcml0eXx8Zm9yY2U/IigiLmNvbmNhdCh0aGlzLnJlc3VsdCwiKSIpOnRoaXMucmVzdWx0fX0se2tleToiZXF1YWwiLHZhbHVlOmZ1bmN0aW9uKG9wdGlvbnMpe3ZhciBfdGhpczI9dGhpcyxjc3NVbml0PShvcHRpb25zfHx7fSkudW5pdCxtZXJnZWRVbml0PSEwO3JldHVybigiYm9vbGVhbiI9PXR5cGVvZiBjc3NVbml0P21lcmdlZFVuaXQ9Y3NzVW5pdDpBcnJheS5mcm9tKHRoaXMudW5pdGxlc3NDc3NWYXIpLnNvbWUoZnVuY3Rpb24oY3NzVmFyKXtyZXR1cm4gX3RoaXMyLnJlc3VsdC5pbmNsdWRlcyhjc3NWYXIpfSkmJihtZXJnZWRVbml0PSExKSx0aGlzLnJlc3VsdD10aGlzLnJlc3VsdC5yZXBsYWNlKENTU0NhbGN1bGF0b3JfcmVnZXhwLG1lcmdlZFVuaXQ/InB4IjoiIiksdm9pZCAwIT09dGhpcy5sb3dQcmlvcml0eSk/ImNhbGMoIi5jb25jYXQodGhpcy5yZXN1bHQsIikiKTp0aGlzLnJlc3VsdH19XSksQ1NTQ2FsY3VsYXRvcn0oY2FsY3VsYXRvcl9BYnN0cmFjdENhbGN1bGF0b3IpLE51bUNhbGN1bGF0b3JfTnVtQ2FsY3VsYXRvcj1mdW5jdGlvbihfQWJzdHJhY3RDYWxjdWxhdG9yKXsoMCxpbmhlcml0cy5aKShOdW1DYWxjdWxhdG9yLF9BYnN0cmFjdENhbGN1bGF0b3IpO3ZhciBfc3VwZXI9KDAsY3JlYXRlU3VwZXIuWikoTnVtQ2FsY3VsYXRvcik7ZnVuY3Rpb24gTnVtQ2FsY3VsYXRvcihudW0pe3ZhciBfdGhpcztyZXR1cm4oMCxjbGFzc0NhbGxDaGVjay5aKSh0aGlzLE51bUNhbGN1bGF0b3IpLF90aGlzPV9zdXBlci5jYWxsKHRoaXMpLCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGFzc2VydFRoaXNJbml0aWFsaXplZC5aKShfdGhpcyksInJlc3VsdCIsMCksbnVtIGluc3RhbmNlb2YgTnVtQ2FsY3VsYXRvcj9fdGhpcy5yZXN1bHQ9bnVtLnJlc3VsdDoibnVtYmVyIj09dHlwZW9mIG51bSYmKF90aGlzLnJlc3VsdD1udW0pLF90aGlzfXJldHVybigwLGNyZWF0ZUNsYXNzLlopKE51bUNhbGN1bGF0b3IsW3trZXk6ImFkZCIsdmFsdWU6ZnVuY3Rpb24obnVtKXtyZXR1cm4gbnVtIGluc3RhbmNlb2YgTnVtQ2FsY3VsYXRvcj90aGlzLnJlc3VsdCs9bnVtLnJlc3VsdDoibnVtYmVyIj09dHlwZW9mIG51bSYmKHRoaXMucmVzdWx0Kz1udW0pLHRoaXN9fSx7a2V5OiJzdWIiLHZhbHVlOmZ1bmN0aW9uKG51bSl7cmV0dXJuIG51bSBpbnN0YW5jZW9mIE51bUNhbGN1bGF0b3I/dGhpcy5yZXN1bHQtPW51bS5yZXN1bHQ6Im51bWJlciI9PXR5cGVvZiBudW0mJih0aGlzLnJlc3VsdC09bnVtKSx0aGlzfX0se2tleToibXVsIix2YWx1ZTpmdW5jdGlvbihudW0pe3JldHVybiBudW0gaW5zdGFuY2VvZiBOdW1DYWxjdWxhdG9yP3RoaXMucmVzdWx0Kj1udW0ucmVzdWx0OiJudW1iZXIiPT10eXBlb2YgbnVtJiYodGhpcy5yZXN1bHQqPW51bSksdGhpc319LHtrZXk6ImRpdiIsdmFsdWU6ZnVuY3Rpb24obnVtKXtyZXR1cm4gbnVtIGluc3RhbmNlb2YgTnVtQ2FsY3VsYXRvcj90aGlzLnJlc3VsdC89bnVtLnJlc3VsdDoibnVtYmVyIj09dHlwZW9mIG51bSYmKHRoaXMucmVzdWx0Lz1udW0pLHRoaXN9fSx7a2V5OiJlcXVhbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXN1bHR9fV0pLE51bUNhbGN1bGF0b3J9KGNhbGN1bGF0b3JfQWJzdHJhY3RDYWxjdWxhdG9yKSx1dGlsX2NhbGM9ZnVuY3Rpb24odHlwZSx1bml0bGVzc0Nzc1Zhcil7dmFyIENhbGN1bGF0b3I9ImNzcyI9PT10eXBlP2NhbGNfQ1NTQ2FsY3VsYXRvcl9DU1NDYWxjdWxhdG9yOk51bUNhbGN1bGF0b3JfTnVtQ2FsY3VsYXRvcjtyZXR1cm4gZnVuY3Rpb24obnVtKXtyZXR1cm4gbmV3IENhbGN1bGF0b3IobnVtLHVuaXRsZXNzQ3NzVmFyKX19LHV0aWxfZ2V0Q29tcFZhclByZWZpeD1mdW5jdGlvbihjb21wb25lbnQscHJlZml4KXtyZXR1cm4iIi5jb25jYXQoW3ByZWZpeCxjb21wb25lbnQucmVwbGFjZSgvKFtBLVpdKykoW0EtWl1bYS16XSspL2csIiQxLSQyIikucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywiJDEtJDIiKV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIi0iKSl9O19fd2VicGFja19yZXF1aXJlX18oNTY3OTApO3ZhciB1dGlsX2dldENvbXBvbmVudFRva2VuPWZ1bmN0aW9uKGNvbXBvbmVudCx0b2tlbixkZWZhdWx0VG9rZW4sb3B0aW9ucyl7dmFyIGN1c3RvbVRva2VuPSgwLG9iamVjdFNwcmVhZDIuWikoe30sdG9rZW5bY29tcG9uZW50XSk7bnVsbCE9b3B0aW9ucyYmb3B0aW9ucy5kZXByZWNhdGVkVG9rZW5zJiZvcHRpb25zLmRlcHJlY2F0ZWRUb2tlbnMuZm9yRWFjaChmdW5jdGlvbihfcmVmKXt2YXIgX2N1c3RvbVRva2VuJG5ld1Rva2VuLF9yZWYyPSgwLHNsaWNlZFRvQXJyYXkuWikoX3JlZiwyKSxvbGRUb2tlbktleT1fcmVmMlswXSxuZXdUb2tlbktleT1fcmVmMlsxXTsobnVsbCE9Y3VzdG9tVG9rZW4mJmN1c3RvbVRva2VuW29sZFRva2VuS2V5XXx8bnVsbCE9Y3VzdG9tVG9rZW4mJmN1c3RvbVRva2VuW25ld1Rva2VuS2V5XSkmJihudWxsIT09KF9jdXN0b21Ub2tlbiRuZXdUb2tlbj1jdXN0b21Ub2tlbltuZXdUb2tlbktleV0pJiZ2b2lkIDAhPT1fY3VzdG9tVG9rZW4kbmV3VG9rZW58fChjdXN0b21Ub2tlbltuZXdUb2tlbktleV09bnVsbD09Y3VzdG9tVG9rZW4/dm9pZCAwOmN1c3RvbVRva2VuW29sZFRva2VuS2V5XSkpfSk7dmFyIG1lcmdlZFRva2VuPSgwLG9iamVjdFNwcmVhZDIuWikoKDAsb2JqZWN0U3ByZWFkMi5aKSh7fSxkZWZhdWx0VG9rZW4pLGN1c3RvbVRva2VuKTtyZXR1cm4gT2JqZWN0LmtleXMobWVyZ2VkVG9rZW4pLmZvckVhY2goZnVuY3Rpb24oa2V5KXttZXJnZWRUb2tlbltrZXldPT09dG9rZW5ba2V5XSYmZGVsZXRlIG1lcmdlZFRva2VuW2tleV19KSxtZXJnZWRUb2tlbn0sZW5hYmxlU3RhdGlzdGljPSJ1bmRlZmluZWQiIT10eXBlb2YgQ1NTSU5KU19TVEFUSVNUSUMscmVjb3JkaW5nPSEwO2Z1bmN0aW9uIG1lcmdlKCl7Zm9yKHZhciBfbGVuPWFyZ3VtZW50cy5sZW5ndGgsb2Jqcz1BcnJheShfbGVuKSxfa2V5PTA7X2tleTxfbGVuO19rZXkrKylvYmpzW19rZXldPWFyZ3VtZW50c1tfa2V5XTtpZighZW5hYmxlU3RhdGlzdGljKXJldHVybiBPYmplY3QuYXNzaWduLmFwcGx5KE9iamVjdCxbe31dLmNvbmNhdChvYmpzKSk7cmVjb3JkaW5nPSExO3ZhciByZXQ9e307cmV0dXJuIG9ianMuZm9yRWFjaChmdW5jdGlvbihvYmopeyJvYmplY3QiPT09KDAsZXNtX3R5cGVvZi5aKShvYmopJiZPYmplY3Qua2V5cyhvYmopLmZvckVhY2goZnVuY3Rpb24oa2V5KXtPYmplY3QuZGVmaW5lUHJvcGVydHkocmV0LGtleSx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG9ialtrZXldfX0pfSl9KSxyZWNvcmRpbmc9ITAscmV0fXZhciBzdGF0aXN0aWM9e307ZnVuY3Rpb24gbm9vcCgpe312YXIgdXRpbF9zdGF0aXN0aWM9ZnVuY3Rpb24odG9rZW4pe3ZhciB0b2tlbktleXMscHJveHk9dG9rZW4sZmx1c2g9bm9vcDtyZXR1cm4gZW5hYmxlU3RhdGlzdGljJiYidW5kZWZpbmVkIiE9dHlwZW9mIFByb3h5JiYodG9rZW5LZXlzPW5ldyBTZXQscHJveHk9bmV3IFByb3h5KHRva2VuLHtnZXQ6ZnVuY3Rpb24ob2JqLHByb3Ape2lmKHJlY29yZGluZyl7dmFyIF90b2tlbktleXM7bnVsbD09PShfdG9rZW5LZXlzPXRva2VuS2V5cyl8fHZvaWQgMD09PV90b2tlbktleXN8fF90b2tlbktleXMuYWRkKHByb3ApfXJldHVybiBvYmpbcHJvcF19fSksZmx1c2g9ZnVuY3Rpb24oY29tcG9uZW50TmFtZSxjb21wb25lbnRUb2tlbil7dmFyIF9zdGF0aXN0aWMkY29tcG9uZW50TjtzdGF0aXN0aWNbY29tcG9uZW50TmFtZV09e2dsb2JhbDpBcnJheS5mcm9tKHRva2VuS2V5cyksY29tcG9uZW50OigwLG9iamVjdFNwcmVhZDIuWikoKDAsb2JqZWN0U3ByZWFkMi5aKSh7fSxudWxsPT09KF9zdGF0aXN0aWMkY29tcG9uZW50Tj1zdGF0aXN0aWNbY29tcG9uZW50TmFtZV0pfHx2b2lkIDA9PT1fc3RhdGlzdGljJGNvbXBvbmVudE4/dm9pZCAwOl9zdGF0aXN0aWMkY29tcG9uZW50Ti5jb21wb25lbnQpLGNvbXBvbmVudFRva2VuKX19KSx7dG9rZW46cHJveHksa2V5czp0b2tlbktleXMsZmx1c2g6Zmx1c2h9fSx1dGlsX2dldERlZmF1bHRDb21wb25lbnRUb2tlbj1mdW5jdGlvbihjb21wb25lbnQsdG9rZW4sZ2V0RGVmYXVsdFRva2VuKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgZ2V0RGVmYXVsdFRva2VuKXt2YXIgX3Rva2VuJGNvbXBvbmVudDtyZXR1cm4gZ2V0RGVmYXVsdFRva2VuKG1lcmdlKHRva2VuLG51bGwhPT0oX3Rva2VuJGNvbXBvbmVudD10b2tlbltjb21wb25lbnRdKSYmdm9pZCAwIT09X3Rva2VuJGNvbXBvbmVudD9fdG9rZW4kY29tcG9uZW50Ont9KSl9cmV0dXJuIG51bGwhPWdldERlZmF1bHRUb2tlbj9nZXREZWZhdWx0VG9rZW46e319LHVuaXF1ZU1hcD1uZXcoZnVuY3Rpb24oKXtmdW5jdGlvbiBBcnJheUtleU1hcCgpeygwLGNsYXNzQ2FsbENoZWNrLlopKHRoaXMsQXJyYXlLZXlNYXApLCgwLGRlZmluZVByb3BlcnR5LlopKHRoaXMsIm1hcCIsbmV3IE1hcCksKDAsZGVmaW5lUHJvcGVydHkuWikodGhpcywib2JqZWN0SURNYXAiLG5ldyBXZWFrTWFwKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKSh0aGlzLCJuZXh0SUQiLDApLCgwLGRlZmluZVByb3BlcnR5LlopKHRoaXMsImxhc3RBY2Nlc3NCZWF0IixuZXcgTWFwKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKSh0aGlzLCJhY2Nlc3NCZWF0IiwwKX1yZXR1cm4oMCxjcmVhdGVDbGFzcy5aKShBcnJheUtleU1hcCxbe2tleToic2V0Iix2YWx1ZTpmdW5jdGlvbihrZXlzLHZhbHVlKXt0aGlzLmNsZWFyKCk7dmFyIGNvbXBvc2l0ZUtleT10aGlzLmdldENvbXBvc2l0ZUtleShrZXlzKTt0aGlzLm1hcC5zZXQoY29tcG9zaXRlS2V5LHZhbHVlKSx0aGlzLmxhc3RBY2Nlc3NCZWF0LnNldChjb21wb3NpdGVLZXksRGF0ZS5ub3coKSl9fSx7a2V5OiJnZXQiLHZhbHVlOmZ1bmN0aW9uKGtleXMpe3ZhciBjb21wb3NpdGVLZXk9dGhpcy5nZXRDb21wb3NpdGVLZXkoa2V5cyksY2FjaGU9dGhpcy5tYXAuZ2V0KGNvbXBvc2l0ZUtleSk7cmV0dXJuIHRoaXMubGFzdEFjY2Vzc0JlYXQuc2V0KGNvbXBvc2l0ZUtleSxEYXRlLm5vdygpKSx0aGlzLmFjY2Vzc0JlYXQrPTEsY2FjaGV9fSx7a2V5OiJnZXRDb21wb3NpdGVLZXkiLHZhbHVlOmZ1bmN0aW9uKGtleXMpe3ZhciBfdGhpcz10aGlzO3JldHVybiBrZXlzLm1hcChmdW5jdGlvbihrZXkpe3JldHVybiBrZXkmJiJvYmplY3QiPT09KDAsZXNtX3R5cGVvZi5aKShrZXkpPyJvYmpfIi5jb25jYXQoX3RoaXMuZ2V0T2JqZWN0SUQoa2V5KSk6IiIuY29uY2F0KCgwLGVzbV90eXBlb2YuWikoa2V5KSwiXyIpLmNvbmNhdChrZXkpfSkuam9pbigifCIpfX0se2tleToiZ2V0T2JqZWN0SUQiLHZhbHVlOmZ1bmN0aW9uKG9iail7aWYodGhpcy5vYmplY3RJRE1hcC5oYXMob2JqKSlyZXR1cm4gdGhpcy5vYmplY3RJRE1hcC5nZXQob2JqKTt2YXIgaWQ9dGhpcy5uZXh0SUQ7cmV0dXJuIHRoaXMub2JqZWN0SURNYXAuc2V0KG9iaixpZCksdGhpcy5uZXh0SUQrPTEsaWR9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgX3RoaXMyPXRoaXM7aWYodGhpcy5hY2Nlc3NCZWF0PjFlNCl7dmFyIG5vdz1EYXRlLm5vdygpO3RoaXMubGFzdEFjY2Vzc0JlYXQuZm9yRWFjaChmdW5jdGlvbihiZWF0LGtleSl7bm93LWJlYXQ+NmU1JiYoX3RoaXMyLm1hcC5kZWxldGUoa2V5KSxfdGhpczIubGFzdEFjY2Vzc0JlYXQuZGVsZXRlKGtleSkpfSksdGhpcy5hY2Nlc3NCZWF0PTB9fX1dKSxBcnJheUtleU1hcH0oKSksaG9va3NfdXNlQ1NQPWZ1bmN0aW9uKCl7cmV0dXJue319LHV0aWxfZ2VuU3R5bGVVdGlscz1mdW5jdGlvbihjb25maWcpe3ZhciBfY29uZmlnJHVzZUNTUD1jb25maWcudXNlQ1NQLHVzZUNTUD12b2lkIDA9PT1fY29uZmlnJHVzZUNTUD9ob29rc191c2VDU1A6X2NvbmZpZyR1c2VDU1AsdXNlVG9rZW49Y29uZmlnLnVzZVRva2VuLHVzZVByZWZpeD1jb25maWcudXNlUHJlZml4LGdldFJlc2V0U3R5bGVzPWNvbmZpZy5nZXRSZXNldFN0eWxlcyxnZXRDb21tb25TdHlsZT1jb25maWcuZ2V0Q29tbW9uU3R5bGUsZ2V0Q29tcFVuaXRsZXNzPWNvbmZpZy5nZXRDb21wVW5pdGxlc3M7ZnVuY3Rpb24gZ2VuQ29tcG9uZW50U3R5bGVIb29rKGNvbXBvbmVudE5hbWUsc3R5bGVGbixnZXREZWZhdWx0VG9rZW4pe3ZhciBvcHRpb25zPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTp7fSxjZWxscz1BcnJheS5pc0FycmF5KGNvbXBvbmVudE5hbWUpP2NvbXBvbmVudE5hbWU6W2NvbXBvbmVudE5hbWUsY29tcG9uZW50TmFtZV0sY29tcG9uZW50PSgwLHNsaWNlZFRvQXJyYXkuWikoY2VsbHMsMSlbMF0sY29uY2F0Q29tcG9uZW50PWNlbGxzLmpvaW4oIi0iKSxtZXJnZWRMYXllcj1jb25maWcubGF5ZXJ8fHtuYW1lOiJhbnRkIn07cmV0dXJuIGZ1bmN0aW9uKHByZWZpeENscyl7dmFyIG1lbW9GbixkZXBzLHJvb3RDbHM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnByZWZpeENscyxfdXNlVG9rZW4zPXVzZVRva2VuKCksdGhlbWU9X3VzZVRva2VuMy50aGVtZSxyZWFsVG9rZW49X3VzZVRva2VuMy5yZWFsVG9rZW4saGFzaElkPV91c2VUb2tlbjMuaGFzaElkLHRva2VuPV91c2VUb2tlbjMudG9rZW4sY3NzVmFyPV91c2VUb2tlbjMuY3NzVmFyLF91c2VQcmVmaXg9dXNlUHJlZml4KCkscm9vdFByZWZpeENscz1fdXNlUHJlZml4LnJvb3RQcmVmaXhDbHMsaWNvblByZWZpeENscz1fdXNlUHJlZml4Lmljb25QcmVmaXhDbHMsY3NwPXVzZUNTUCgpLHR5cGU9Y3NzVmFyPyJjc3MiOiJqcyIsY2FsYz0obWVtb0ZuPWZ1bmN0aW9uKCl7dmFyIHVuaXRsZXNzQ3NzVmFyPW5ldyBTZXQ7cmV0dXJuIGNzc1ZhciYmT2JqZWN0LmtleXMob3B0aW9ucy51bml0bGVzc3x8e30pLmZvckVhY2goZnVuY3Rpb24oa2V5KXt1bml0bGVzc0Nzc1Zhci5hZGQodG9rZW4yQ1NTVmFyKGtleSxjc3NWYXIucHJlZml4KSksdW5pdGxlc3NDc3NWYXIuYWRkKHRva2VuMkNTU1ZhcihrZXksdXRpbF9nZXRDb21wVmFyUHJlZml4KGNvbXBvbmVudCxjc3NWYXIucHJlZml4KSkpfSksdXRpbF9jYWxjKHR5cGUsdW5pdGxlc3NDc3NWYXIpfSxkZXBzPVt0eXBlLGNvbXBvbmVudCxudWxsPT1jc3NWYXI/dm9pZCAwOmNzc1Zhci5wcmVmaXhdLHJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgY2FjaGVkVmFsdWU9dW5pcXVlTWFwLmdldChkZXBzKTtpZihjYWNoZWRWYWx1ZSlyZXR1cm4gY2FjaGVkVmFsdWU7dmFyIG5ld1ZhbHVlPW1lbW9GbigpO3JldHVybiB1bmlxdWVNYXAuc2V0KGRlcHMsbmV3VmFsdWUpLG5ld1ZhbHVlfSxkZXBzKSksX2dlbk1heE1pbj0ianMiPT09dHlwZT97bWF4Ok1hdGgubWF4LG1pbjpNYXRoLm1pbn06e21heDpmdW5jdGlvbigpe2Zvcih2YXIgX2xlbj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbiksX2tleT0wO19rZXk8X2xlbjtfa2V5KyspYXJnc1tfa2V5XT1hcmd1bWVudHNbX2tleV07cmV0dXJuIm1heCgiLmNvbmNhdChhcmdzLm1hcChmdW5jdGlvbih2YWx1ZSl7cmV0dXJuIHV0aWxfdW5pdCh2YWx1ZSl9KS5qb2luKCIsIiksIikiKX0sbWluOmZ1bmN0aW9uKCl7Zm9yKHZhciBfbGVuMj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbjIpLF9rZXkyPTA7X2tleTI8X2xlbjI7X2tleTIrKylhcmdzW19rZXkyXT1hcmd1bWVudHNbX2tleTJdO3JldHVybiJtaW4oIi5jb25jYXQoYXJncy5tYXAoZnVuY3Rpb24odmFsdWUpe3JldHVybiB1dGlsX3VuaXQodmFsdWUpfSkuam9pbigiLCIpLCIpIil9fSxtYXg9X2dlbk1heE1pbi5tYXgsbWluPV9nZW5NYXhNaW4ubWluLHNoYXJlZENvbmZpZz17dGhlbWU6dGhlbWUsdG9rZW46dG9rZW4saGFzaElkOmhhc2hJZCxub25jZTpmdW5jdGlvbigpe3JldHVybiBjc3Aubm9uY2V9LGNsaWVudE9ubHk6b3B0aW9ucy5jbGllbnRPbmx5LGxheWVyOm1lcmdlZExheWVyLG9yZGVyOm9wdGlvbnMub3JkZXJ8fC05OTl9O3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBnZXRSZXNldFN0eWxlcyYmdXNlU3R5bGVSZWdpc3RlcigoMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe30sc2hhcmVkQ29uZmlnKSx7fSx7Y2xpZW50T25seTohMSxwYXRoOlsiU2hhcmVkIixyb290UHJlZml4Q2xzXX0pLGZ1bmN0aW9uKCl7cmV0dXJuIGdldFJlc2V0U3R5bGVzKHRva2VuLHtwcmVmaXg6e3Jvb3RQcmVmaXhDbHM6cm9vdFByZWZpeENscyxpY29uUHJlZml4Q2xzOmljb25QcmVmaXhDbHN9LGNzcDpjc3B9KX0pLFt1c2VTdHlsZVJlZ2lzdGVyKCgwLG9iamVjdFNwcmVhZDIuWikoKDAsb2JqZWN0U3ByZWFkMi5aKSh7fSxzaGFyZWRDb25maWcpLHt9LHtwYXRoOltjb25jYXRDb21wb25lbnQscHJlZml4Q2xzLGljb25QcmVmaXhDbHNdfSksZnVuY3Rpb24oKXtpZighMT09PW9wdGlvbnMuaW5qZWN0U3R5bGUpcmV0dXJuW107dmFyIF9zdGF0aXN0aWNUb2tlbj11dGlsX3N0YXRpc3RpYyh0b2tlbikscHJveHlUb2tlbj1fc3RhdGlzdGljVG9rZW4udG9rZW4sZmx1c2g9X3N0YXRpc3RpY1Rva2VuLmZsdXNoLGRlZmF1bHRDb21wb25lbnRUb2tlbj11dGlsX2dldERlZmF1bHRDb21wb25lbnRUb2tlbihjb21wb25lbnQscmVhbFRva2VuLGdldERlZmF1bHRUb2tlbiksY29tcG9uZW50VG9rZW49dXRpbF9nZXRDb21wb25lbnRUb2tlbihjb21wb25lbnQscmVhbFRva2VuLGRlZmF1bHRDb21wb25lbnRUb2tlbix7ZGVwcmVjYXRlZFRva2VuczpvcHRpb25zLmRlcHJlY2F0ZWRUb2tlbnN9KTtjc3NWYXImJmRlZmF1bHRDb21wb25lbnRUb2tlbiYmIm9iamVjdCI9PT0oMCxlc21fdHlwZW9mLlopKGRlZmF1bHRDb21wb25lbnRUb2tlbikmJk9iamVjdC5rZXlzKGRlZmF1bHRDb21wb25lbnRUb2tlbikuZm9yRWFjaChmdW5jdGlvbihrZXkpe2RlZmF1bHRDb21wb25lbnRUb2tlbltrZXldPSJ2YXIoIi5jb25jYXQodG9rZW4yQ1NTVmFyKGtleSx1dGlsX2dldENvbXBWYXJQcmVmaXgoY29tcG9uZW50LGNzc1Zhci5wcmVmaXgpKSwiKSIpfSk7dmFyIG1lcmdlZFRva2VuPW1lcmdlKHByb3h5VG9rZW4se2NvbXBvbmVudENsczoiLiIuY29uY2F0KHByZWZpeENscykscHJlZml4Q2xzOnByZWZpeENscyxpY29uQ2xzOiIuIi5jb25jYXQoaWNvblByZWZpeENscyksYW50Q2xzOiIuIi5jb25jYXQocm9vdFByZWZpeENscyksY2FsYzpjYWxjLG1heDptYXgsbWluOm1pbn0sY3NzVmFyP2RlZmF1bHRDb21wb25lbnRUb2tlbjpjb21wb25lbnRUb2tlbiksc3R5bGVJbnRlcnBvbGF0aW9uPXN0eWxlRm4obWVyZ2VkVG9rZW4se2hhc2hJZDpoYXNoSWQscHJlZml4Q2xzOnByZWZpeENscyxyb290UHJlZml4Q2xzOnJvb3RQcmVmaXhDbHMsaWNvblByZWZpeENsczppY29uUHJlZml4Q2xzfSk7Zmx1c2goY29tcG9uZW50LGNvbXBvbmVudFRva2VuKTt2YXIgY29tbW9uU3R5bGU9ImZ1bmN0aW9uIj09dHlwZW9mIGdldENvbW1vblN0eWxlP2dldENvbW1vblN0eWxlKG1lcmdlZFRva2VuLHByZWZpeENscyxyb290Q2xzLG9wdGlvbnMucmVzZXRGb250KTpudWxsO3JldHVyblshMT09PW9wdGlvbnMucmVzZXRTdHlsZT9udWxsOmNvbW1vblN0eWxlLHN0eWxlSW50ZXJwb2xhdGlvbl19KSxoYXNoSWRdfX1yZXR1cm57Z2VuU3R5bGVIb29rczpmdW5jdGlvbihjb21wb25lbnQsc3R5bGVGbixnZXREZWZhdWx0VG9rZW4sb3B0aW9ucyl7dmFyIGNvbXBVbml0bGVzcyxfb3B0aW9ucyRpbmplY3RTdHlsZSxpbmplY3RTdHlsZSxwcmVmaXhUb2tlbixpZ25vcmUsQ1NTVmFyUmVnaXN0ZXIsY29tcG9uZW50TmFtZT1BcnJheS5pc0FycmF5KGNvbXBvbmVudCk/Y29tcG9uZW50WzBdOmNvbXBvbmVudDtmdW5jdGlvbiBwcmVmaXhUb2tlbjEoa2V5KXtyZXR1cm4iIi5jb25jYXQoU3RyaW5nKGNvbXBvbmVudE5hbWUpKS5jb25jYXQoa2V5LnNsaWNlKDAsMSkudG9VcHBlckNhc2UoKSkuY29uY2F0KGtleS5zbGljZSgxKSl9dmFyIG9yaWdpblVuaXRsZXNzPShudWxsPT1vcHRpb25zP3ZvaWQgMDpvcHRpb25zLnVuaXRsZXNzKXx8e30sb3JpZ2luQ29tcFVuaXRsZXNzPSJmdW5jdGlvbiI9PXR5cGVvZiBnZXRDb21wVW5pdGxlc3M/Z2V0Q29tcFVuaXRsZXNzKGNvbXBvbmVudCk6e30sY29tcFVuaXRsZXNzMT0oMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe30sb3JpZ2luQ29tcFVuaXRsZXNzKSx7fSwoMCxkZWZpbmVQcm9wZXJ0eS5aKSh7fSxwcmVmaXhUb2tlbjEoInpJbmRleFBvcHVwIiksITApKTtPYmplY3Qua2V5cyhvcmlnaW5Vbml0bGVzcykuZm9yRWFjaChmdW5jdGlvbihrZXkpe2NvbXBVbml0bGVzczFbcHJlZml4VG9rZW4xKGtleSldPW9yaWdpblVuaXRsZXNzW2tleV19KTt2YXIgbWVyZ2VkT3B0aW9ucz0oMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe30sb3B0aW9ucykse30se3VuaXRsZXNzOmNvbXBVbml0bGVzczEscHJlZml4VG9rZW46cHJlZml4VG9rZW4xfSksdXNlU3R5bGU9Z2VuQ29tcG9uZW50U3R5bGVIb29rKGNvbXBvbmVudCxzdHlsZUZuLGdldERlZmF1bHRUb2tlbixtZXJnZWRPcHRpb25zKSx1c2VDU1NWYXI9KGNvbXBVbml0bGVzcz1tZXJnZWRPcHRpb25zLnVuaXRsZXNzLGluamVjdFN0eWxlPXZvaWQgMD09PShfb3B0aW9ucyRpbmplY3RTdHlsZT1tZXJnZWRPcHRpb25zLmluamVjdFN0eWxlKXx8X29wdGlvbnMkaW5qZWN0U3R5bGUscHJlZml4VG9rZW49bWVyZ2VkT3B0aW9ucy5wcmVmaXhUb2tlbixpZ25vcmU9bWVyZ2VkT3B0aW9ucy5pZ25vcmUsQ1NTVmFyUmVnaXN0ZXI9ZnVuY3Rpb24oX3JlZil7dmFyIHJvb3RDbHM9X3JlZi5yb290Q2xzLF9yZWYkY3NzVmFyPV9yZWYuY3NzVmFyLGNzc1Zhcj12b2lkIDA9PT1fcmVmJGNzc1Zhcj97fTpfcmVmJGNzc1ZhcixyZWFsVG9rZW49dXNlVG9rZW4oKS5yZWFsVG9rZW47cmV0dXJuIGhvb2tzX3VzZUNTU1ZhclJlZ2lzdGVyKHtwYXRoOltjb21wb25lbnROYW1lXSxwcmVmaXg6Y3NzVmFyLnByZWZpeCxrZXk6Y3NzVmFyLmtleSx1bml0bGVzczpjb21wVW5pdGxlc3MsaWdub3JlOmlnbm9yZSx0b2tlbjpyZWFsVG9rZW4sc2NvcGU6cm9vdENsc30sZnVuY3Rpb24oKXt2YXIgZGVmYXVsdFRva2VuPXV0aWxfZ2V0RGVmYXVsdENvbXBvbmVudFRva2VuKGNvbXBvbmVudE5hbWUscmVhbFRva2VuLGdldERlZmF1bHRUb2tlbiksY29tcG9uZW50VG9rZW49dXRpbF9nZXRDb21wb25lbnRUb2tlbihjb21wb25lbnROYW1lLHJlYWxUb2tlbixkZWZhdWx0VG9rZW4se2RlcHJlY2F0ZWRUb2tlbnM6bnVsbD09bWVyZ2VkT3B0aW9ucz92b2lkIDA6bWVyZ2VkT3B0aW9ucy5kZXByZWNhdGVkVG9rZW5zfSk7cmV0dXJuIE9iamVjdC5rZXlzKGRlZmF1bHRUb2tlbikuZm9yRWFjaChmdW5jdGlvbihrZXkpe2NvbXBvbmVudFRva2VuW3ByZWZpeFRva2VuKGtleSldPWNvbXBvbmVudFRva2VuW2tleV0sZGVsZXRlIGNvbXBvbmVudFRva2VuW2tleV19KSxjb21wb25lbnRUb2tlbn0pLG51bGx9LGZ1bmN0aW9uKHJvb3RDbHMpe3ZhciBjc3NWYXI9dXNlVG9rZW4oKS5jc3NWYXI7cmV0dXJuW2Z1bmN0aW9uKG5vZGUpe3JldHVybiBpbmplY3RTdHlsZSYmY3NzVmFyP3JlYWN0LmNyZWF0ZUVsZW1lbnQocmVhY3QuRnJhZ21lbnQsbnVsbCxyZWFjdC5jcmVhdGVFbGVtZW50KENTU1ZhclJlZ2lzdGVyLHtyb290Q2xzOnJvb3RDbHMsY3NzVmFyOmNzc1Zhcixjb21wb25lbnQ6Y29tcG9uZW50TmFtZX0pLG5vZGUpOm5vZGV9LG51bGw9PWNzc1Zhcj92b2lkIDA6Y3NzVmFyLmtleV19KTtyZXR1cm4gZnVuY3Rpb24ocHJlZml4Q2xzKXt2YXIgcm9vdENscz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06cHJlZml4Q2xzLF91c2VTdHlsZT11c2VTdHlsZShwcmVmaXhDbHMscm9vdENscyksaGFzaElkPSgwLHNsaWNlZFRvQXJyYXkuWikoX3VzZVN0eWxlLDIpWzFdLF91c2VDU1NWYXI9dXNlQ1NTVmFyKHJvb3RDbHMpLF91c2VDU1NWYXIyPSgwLHNsaWNlZFRvQXJyYXkuWikoX3VzZUNTU1ZhciwyKTtyZXR1cm5bX3VzZUNTU1ZhcjJbMF0saGFzaElkLF91c2VDU1NWYXIyWzFdXX19LGdlblN1YlN0eWxlQ29tcG9uZW50OmZ1bmN0aW9uKGNvbXBvbmVudE5hbWUsc3R5bGVGbixnZXREZWZhdWx0VG9rZW4pe3ZhciBvcHRpb25zPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTp7fSx1c2VTdHlsZT1nZW5Db21wb25lbnRTdHlsZUhvb2soY29tcG9uZW50TmFtZSxzdHlsZUZuLGdldERlZmF1bHRUb2tlbiwoMCxvYmplY3RTcHJlYWQyLlopKHtyZXNldFN0eWxlOiExLG9yZGVyOi05OTh9LG9wdGlvbnMpKTtyZXR1cm4gZnVuY3Rpb24oX3JlZjIpe3ZhciBwcmVmaXhDbHM9X3JlZjIucHJlZml4Q2xzLF9yZWYyJHJvb3RDbHM9X3JlZjIucm9vdENscztyZXR1cm4gdXNlU3R5bGUocHJlZml4Q2xzLHZvaWQgMD09PV9yZWYyJHJvb3RDbHM/cHJlZml4Q2xzOl9yZWYyJHJvb3RDbHMpLG51bGx9fSxnZW5Db21wb25lbnRTdHlsZUhvb2s6Z2VuQ29tcG9uZW50U3R5bGVIb29rfX19LDI0MzI3OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIF90eXBlb2Yobyl7cmV0dXJuKF90eXBlb2Y9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24obyl7cmV0dXJuIHR5cGVvZiBvfTpmdW5jdGlvbihvKXtyZXR1cm4gbyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmby5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmbyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIG99KShvKX1mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkoZSxyLHQpe3ZhciBpO3JldHVybihpPWZ1bmN0aW9uKHQscil7aWYoIm9iamVjdCIhPV90eXBlb2YodCl8fCF0KXJldHVybiB0O3ZhciBlPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1lKXt2YXIgaT1lLmNhbGwodCxyfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT1fdHlwZW9mKGkpKXJldHVybiBpO3Rocm93IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1yP1N0cmluZzpOdW1iZXIpKHQpfShyLCJzdHJpbmciKSwocj0ic3ltYm9sIj09X3R5cGVvZihpKT9pOmkrIiIpaW4gZSk/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUscix7dmFsdWU6dCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbcl09dCxlfV9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHt0OmZ1bmN0aW9uKCl7cmV0dXJuIEZhc3RDb2xvcn19KTtsZXQgcm91bmQ9TWF0aC5yb3VuZDtmdW5jdGlvbiBzcGxpdENvbG9yU3RyKHN0cixwYXJzZU51bSl7bGV0IG1hdGNoPXN0ci5yZXBsYWNlKC9eW14oXSpcKCguKikvLCIkMSIpLnJlcGxhY2UoL1wpLiovLCIiKS5tYXRjaCgvXGQqXC4/XGQrJT8vZyl8fFtdLG51bUxpc3Q9bWF0Y2gubWFwKGl0ZW09PnBhcnNlRmxvYXQoaXRlbSkpO2ZvcihsZXQgaT0wO2k8MztpKz0xKW51bUxpc3RbaV09cGFyc2VOdW0obnVtTGlzdFtpXXx8MCxtYXRjaFtpXXx8IiIsaSk7cmV0dXJuIG1hdGNoWzNdP251bUxpc3RbM109bWF0Y2hbM10uaW5jbHVkZXMoIiUiKT9udW1MaXN0WzNdLzEwMDpudW1MaXN0WzNdOm51bUxpc3RbM109MSxudW1MaXN0fWxldCBwYXJzZUhTVm9ySFNMPShudW0sXyxpbmRleCk9PjA9PT1pbmRleD9udW06bnVtLzEwMDtmdW5jdGlvbiBsaW1pdFJhbmdlKHZhbHVlLG1heCl7bGV0IG1lcmdlZE1heD1tYXh8fDI1NTtyZXR1cm4gdmFsdWU+bWVyZ2VkTWF4P21lcmdlZE1heDp2YWx1ZTwwPzA6dmFsdWV9Y2xhc3MgRmFzdENvbG9ye2NvbnN0cnVjdG9yKGlucHV0KXtmdW5jdGlvbiBtYXRjaEZvcm1hdChzdHIpe3JldHVybiBzdHJbMF1pbiBpbnB1dCYmc3RyWzFdaW4gaW5wdXQmJnN0clsyXWluIGlucHV0fWlmKF9kZWZpbmVQcm9wZXJ0eSh0aGlzLCJpc1ZhbGlkIiwhMCksX2RlZmluZVByb3BlcnR5KHRoaXMsInIiLDApLF9kZWZpbmVQcm9wZXJ0eSh0aGlzLCJnIiwwKSxfZGVmaW5lUHJvcGVydHkodGhpcywiYiIsMCksX2RlZmluZVByb3BlcnR5KHRoaXMsImEiLDEpLF9kZWZpbmVQcm9wZXJ0eSh0aGlzLCJfaCIsdm9pZCAwKSxfZGVmaW5lUHJvcGVydHkodGhpcywiX3MiLHZvaWQgMCksX2RlZmluZVByb3BlcnR5KHRoaXMsIl9sIix2b2lkIDApLF9kZWZpbmVQcm9wZXJ0eSh0aGlzLCJfdiIsdm9pZCAwKSxfZGVmaW5lUHJvcGVydHkodGhpcywiX21heCIsdm9pZCAwKSxfZGVmaW5lUHJvcGVydHkodGhpcywiX21pbiIsdm9pZCAwKSxfZGVmaW5lUHJvcGVydHkodGhpcywiX2JyaWdodG5lc3MiLHZvaWQgMCksaW5wdXQpe2lmKCJzdHJpbmciPT10eXBlb2YgaW5wdXQpe2xldCB0cmltU3RyPWlucHV0LnRyaW0oKTtmdW5jdGlvbiBtYXRjaFByZWZpeChwcmVmaXgpe3JldHVybiB0cmltU3RyLnN0YXJ0c1dpdGgocHJlZml4KX0vXiM/W0EtRlxkXXszLDh9JC9pLnRlc3QodHJpbVN0cik/dGhpcy5mcm9tSGV4U3RyaW5nKHRyaW1TdHIpOm1hdGNoUHJlZml4KCJyZ2IiKT90aGlzLmZyb21SZ2JTdHJpbmcodHJpbVN0cik6bWF0Y2hQcmVmaXgoImhzbCIpP3RoaXMuZnJvbUhzbFN0cmluZyh0cmltU3RyKToobWF0Y2hQcmVmaXgoImhzdiIpfHxtYXRjaFByZWZpeCgiaHNiIikpJiZ0aGlzLmZyb21Ic3ZTdHJpbmcodHJpbVN0cil9ZWxzZSBpZihpbnB1dCBpbnN0YW5jZW9mIEZhc3RDb2xvcil0aGlzLnI9aW5wdXQucix0aGlzLmc9aW5wdXQuZyx0aGlzLmI9aW5wdXQuYix0aGlzLmE9aW5wdXQuYSx0aGlzLl9oPWlucHV0Ll9oLHRoaXMuX3M9aW5wdXQuX3MsdGhpcy5fbD1pbnB1dC5fbCx0aGlzLl92PWlucHV0Ll92O2Vsc2UgaWYobWF0Y2hGb3JtYXQoInJnYiIpKXRoaXMucj1saW1pdFJhbmdlKGlucHV0LnIpLHRoaXMuZz1saW1pdFJhbmdlKGlucHV0LmcpLHRoaXMuYj1saW1pdFJhbmdlKGlucHV0LmIpLHRoaXMuYT0ibnVtYmVyIj09dHlwZW9mIGlucHV0LmE/bGltaXRSYW5nZShpbnB1dC5hLDEpOjE7ZWxzZSBpZihtYXRjaEZvcm1hdCgiaHNsIikpdGhpcy5mcm9tSHNsKGlucHV0KTtlbHNlIGlmKG1hdGNoRm9ybWF0KCJoc3YiKSl0aGlzLmZyb21Ic3YoaW5wdXQpO2Vsc2UgdGhyb3cgRXJyb3IoIkBhbnQtZGVzaWduL2Zhc3QtY29sb3I6IHVuc3VwcG9ydGVkIGlucHV0ICIrSlNPTi5zdHJpbmdpZnkoaW5wdXQpKX19c2V0Uih2YWx1ZSl7cmV0dXJuIHRoaXMuX3NjKCJyIix2YWx1ZSl9c2V0Ryh2YWx1ZSl7cmV0dXJuIHRoaXMuX3NjKCJnIix2YWx1ZSl9c2V0Qih2YWx1ZSl7cmV0dXJuIHRoaXMuX3NjKCJiIix2YWx1ZSl9c2V0QSh2YWx1ZSl7cmV0dXJuIHRoaXMuX3NjKCJhIix2YWx1ZSwxKX1zZXRIdWUodmFsdWUpe2xldCBoc3Y9dGhpcy50b0hzdigpO3JldHVybiBoc3YuaD12YWx1ZSx0aGlzLl9jKGhzdil9Z2V0THVtaW5hbmNlKCl7ZnVuY3Rpb24gYWRqdXN0R2FtbWEocmF3KXtsZXQgdmFsPXJhdy8yNTU7cmV0dXJuIHZhbDw9LjAzOTI4P3ZhbC8xMi45MjpNYXRoLnBvdygodmFsKy4wNTUpLzEuMDU1LDIuNCl9bGV0IFI9YWRqdXN0R2FtbWEodGhpcy5yKSxHPWFkanVzdEdhbW1hKHRoaXMuZyksQj1hZGp1c3RHYW1tYSh0aGlzLmIpO3JldHVybiAuMjEyNipSKy43MTUyKkcrLjA3MjIqQn1nZXRIdWUoKXtpZih2b2lkIDA9PT10aGlzLl9oKXtsZXQgZGVsdGE9dGhpcy5nZXRNYXgoKS10aGlzLmdldE1pbigpOzA9PT1kZWx0YT90aGlzLl9oPTA6dGhpcy5faD1yb3VuZCg2MCoodGhpcy5yPT09dGhpcy5nZXRNYXgoKT8odGhpcy5nLXRoaXMuYikvZGVsdGErKHRoaXMuZzx0aGlzLmI/NjowKTp0aGlzLmc9PT10aGlzLmdldE1heCgpPyh0aGlzLmItdGhpcy5yKS9kZWx0YSsyOih0aGlzLnItdGhpcy5nKS9kZWx0YSs0KSl9cmV0dXJuIHRoaXMuX2h9Z2V0U2F0dXJhdGlvbigpe2lmKHZvaWQgMD09PXRoaXMuX3Mpe2xldCBkZWx0YT10aGlzLmdldE1heCgpLXRoaXMuZ2V0TWluKCk7MD09PWRlbHRhP3RoaXMuX3M9MDp0aGlzLl9zPWRlbHRhL3RoaXMuZ2V0TWF4KCl9cmV0dXJuIHRoaXMuX3N9Z2V0TGlnaHRuZXNzKCl7cmV0dXJuIHZvaWQgMD09PXRoaXMuX2wmJih0aGlzLl9sPSh0aGlzLmdldE1heCgpK3RoaXMuZ2V0TWluKCkpLzUxMCksdGhpcy5fbH1nZXRWYWx1ZSgpe3JldHVybiB2b2lkIDA9PT10aGlzLl92JiYodGhpcy5fdj10aGlzLmdldE1heCgpLzI1NSksdGhpcy5fdn1nZXRCcmlnaHRuZXNzKCl7cmV0dXJuIHZvaWQgMD09PXRoaXMuX2JyaWdodG5lc3MmJih0aGlzLl9icmlnaHRuZXNzPSgyOTkqdGhpcy5yKzU4Nyp0aGlzLmcrMTE0KnRoaXMuYikvMWUzKSx0aGlzLl9icmlnaHRuZXNzfWRhcmtlbihhbW91bnQ9MTApe2xldCBoPXRoaXMuZ2V0SHVlKCkscz10aGlzLmdldFNhdHVyYXRpb24oKSxsPXRoaXMuZ2V0TGlnaHRuZXNzKCktYW1vdW50LzEwMDtyZXR1cm4gbDwwJiYobD0wKSx0aGlzLl9jKHtoLHMsbCxhOnRoaXMuYX0pfWxpZ2h0ZW4oYW1vdW50PTEwKXtsZXQgaD10aGlzLmdldEh1ZSgpLHM9dGhpcy5nZXRTYXR1cmF0aW9uKCksbD10aGlzLmdldExpZ2h0bmVzcygpK2Ftb3VudC8xMDA7cmV0dXJuIGw+MSYmKGw9MSksdGhpcy5fYyh7aCxzLGwsYTp0aGlzLmF9KX1taXgoaW5wdXQsYW1vdW50PTUwKXtsZXQgY29sb3I9dGhpcy5fYyhpbnB1dCkscD1hbW91bnQvMTAwLGNhbGM9a2V5PT4oY29sb3Jba2V5XS10aGlzW2tleV0pKnArdGhpc1trZXldLHJnYmE9e3I6cm91bmQoY2FsYygiciIpKSxnOnJvdW5kKGNhbGMoImciKSksYjpyb3VuZChjYWxjKCJiIikpLGE6cm91bmQoMTAwKmNhbGMoImEiKSkvMTAwfTtyZXR1cm4gdGhpcy5fYyhyZ2JhKX10aW50KGFtb3VudD0xMCl7cmV0dXJuIHRoaXMubWl4KHtyOjI1NSxnOjI1NSxiOjI1NSxhOjF9LGFtb3VudCl9c2hhZGUoYW1vdW50PTEwKXtyZXR1cm4gdGhpcy5taXgoe3I6MCxnOjAsYjowLGE6MX0sYW1vdW50KX1vbkJhY2tncm91bmQoYmFja2dyb3VuZCl7bGV0IGJnPXRoaXMuX2MoYmFja2dyb3VuZCksYWxwaGE9dGhpcy5hK2JnLmEqKDEtdGhpcy5hKSxjYWxjPWtleT0+cm91bmQoKHRoaXNba2V5XSp0aGlzLmErYmdba2V5XSpiZy5hKigxLXRoaXMuYSkpL2FscGhhKTtyZXR1cm4gdGhpcy5fYyh7cjpjYWxjKCJyIiksZzpjYWxjKCJnIiksYjpjYWxjKCJiIiksYTphbHBoYX0pfWlzRGFyaygpe3JldHVybiAxMjg+dGhpcy5nZXRCcmlnaHRuZXNzKCl9aXNMaWdodCgpe3JldHVybiB0aGlzLmdldEJyaWdodG5lc3MoKT49MTI4fWVxdWFscyhvdGhlcil7cmV0dXJuIHRoaXMucj09PW90aGVyLnImJnRoaXMuZz09PW90aGVyLmcmJnRoaXMuYj09PW90aGVyLmImJnRoaXMuYT09PW90aGVyLmF9Y2xvbmUoKXtyZXR1cm4gdGhpcy5fYyh0aGlzKX10b0hleFN0cmluZygpe2xldCBoZXg9IiMiLHJIZXg9KHRoaXMucnx8MCkudG9TdHJpbmcoMTYpO2hleCs9Mj09PXJIZXgubGVuZ3RoP3JIZXg6IjAiK3JIZXg7bGV0IGdIZXg9KHRoaXMuZ3x8MCkudG9TdHJpbmcoMTYpO2hleCs9Mj09PWdIZXgubGVuZ3RoP2dIZXg6IjAiK2dIZXg7bGV0IGJIZXg9KHRoaXMuYnx8MCkudG9TdHJpbmcoMTYpO2lmKGhleCs9Mj09PWJIZXgubGVuZ3RoP2JIZXg6IjAiK2JIZXgsIm51bWJlciI9PXR5cGVvZiB0aGlzLmEmJnRoaXMuYT49MCYmdGhpcy5hPDEpe2xldCBhSGV4PXJvdW5kKDI1NSp0aGlzLmEpLnRvU3RyaW5nKDE2KTtoZXgrPTI9PT1hSGV4Lmxlbmd0aD9hSGV4OiIwIithSGV4fXJldHVybiBoZXh9dG9Ic2woKXtyZXR1cm57aDp0aGlzLmdldEh1ZSgpLHM6dGhpcy5nZXRTYXR1cmF0aW9uKCksbDp0aGlzLmdldExpZ2h0bmVzcygpLGE6dGhpcy5hfX10b0hzbFN0cmluZygpe2xldCBoPXRoaXMuZ2V0SHVlKCkscz1yb3VuZCgxMDAqdGhpcy5nZXRTYXR1cmF0aW9uKCkpLGw9cm91bmQoMTAwKnRoaXMuZ2V0TGlnaHRuZXNzKCkpO3JldHVybiAxIT09dGhpcy5hP2Boc2xhKCR7aH0sJHtzfSUsJHtsfSUsJHt0aGlzLmF9KWA6YGhzbCgke2h9LCR7c30lLCR7bH0lKWB9dG9Ic3YoKXtyZXR1cm57aDp0aGlzLmdldEh1ZSgpLHM6dGhpcy5nZXRTYXR1cmF0aW9uKCksdjp0aGlzLmdldFZhbHVlKCksYTp0aGlzLmF9fXRvUmdiKCl7cmV0dXJue3I6dGhpcy5yLGc6dGhpcy5nLGI6dGhpcy5iLGE6dGhpcy5hfX10b1JnYlN0cmluZygpe3JldHVybiAxIT09dGhpcy5hP2ByZ2JhKCR7dGhpcy5yfSwke3RoaXMuZ30sJHt0aGlzLmJ9LCR7dGhpcy5hfSlgOmByZ2IoJHt0aGlzLnJ9LCR7dGhpcy5nfSwke3RoaXMuYn0pYH10b1N0cmluZygpe3JldHVybiB0aGlzLnRvUmdiU3RyaW5nKCl9X3NjKHJnYix2YWx1ZSxtYXgpe2xldCBjbG9uZT10aGlzLmNsb25lKCk7cmV0dXJuIGNsb25lW3JnYl09bGltaXRSYW5nZSh2YWx1ZSxtYXgpLGNsb25lfV9jKGlucHV0KXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IoaW5wdXQpfWdldE1heCgpe3JldHVybiB2b2lkIDA9PT10aGlzLl9tYXgmJih0aGlzLl9tYXg9TWF0aC5tYXgodGhpcy5yLHRoaXMuZyx0aGlzLmIpKSx0aGlzLl9tYXh9Z2V0TWluKCl7cmV0dXJuIHZvaWQgMD09PXRoaXMuX21pbiYmKHRoaXMuX21pbj1NYXRoLm1pbih0aGlzLnIsdGhpcy5nLHRoaXMuYikpLHRoaXMuX21pbn1mcm9tSGV4U3RyaW5nKHRyaW1TdHIpe2xldCB3aXRob3V0UHJlZml4PXRyaW1TdHIucmVwbGFjZSgiIyIsIiIpO2Z1bmN0aW9uIGNvbm5lY3ROdW0oaW5kZXgxLGluZGV4Mil7cmV0dXJuIHBhcnNlSW50KHdpdGhvdXRQcmVmaXhbaW5kZXgxXSt3aXRob3V0UHJlZml4W2luZGV4Mnx8aW5kZXgxXSwxNil9d2l0aG91dFByZWZpeC5sZW5ndGg8Nj8odGhpcy5yPWNvbm5lY3ROdW0oMCksdGhpcy5nPWNvbm5lY3ROdW0oMSksdGhpcy5iPWNvbm5lY3ROdW0oMiksdGhpcy5hPXdpdGhvdXRQcmVmaXhbM10/Y29ubmVjdE51bSgzKS8yNTU6MSk6KHRoaXMucj1jb25uZWN0TnVtKDAsMSksdGhpcy5nPWNvbm5lY3ROdW0oMiwzKSx0aGlzLmI9Y29ubmVjdE51bSg0LDUpLHRoaXMuYT13aXRob3V0UHJlZml4WzZdP2Nvbm5lY3ROdW0oNiw3KS8yNTU6MSl9ZnJvbUhzbCh7aCxzLGwsYX0pe2lmKHRoaXMuX2g9aCUzNjAsdGhpcy5fcz1zLHRoaXMuX2w9bCx0aGlzLmE9Im51bWJlciI9PXR5cGVvZiBhP2E6MSxzPD0wKXtsZXQgcmdiPXJvdW5kKDI1NSpsKTt0aGlzLnI9cmdiLHRoaXMuZz1yZ2IsdGhpcy5iPXJnYn1sZXQgcj0wLGc9MCxiPTAsaHVlUHJpbWU9aC82MCxjaHJvbWE9KDEtTWF0aC5hYnMoMipsLTEpKSpzLHNlY29uZENvbXBvbmVudD1jaHJvbWEqKDEtTWF0aC5hYnMoaHVlUHJpbWUlMi0xKSk7aHVlUHJpbWU+PTAmJmh1ZVByaW1lPDE/KHI9Y2hyb21hLGc9c2Vjb25kQ29tcG9uZW50KTpodWVQcmltZT49MSYmaHVlUHJpbWU8Mj8ocj1zZWNvbmRDb21wb25lbnQsZz1jaHJvbWEpOmh1ZVByaW1lPj0yJiZodWVQcmltZTwzPyhnPWNocm9tYSxiPXNlY29uZENvbXBvbmVudCk6aHVlUHJpbWU+PTMmJmh1ZVByaW1lPDQ/KGc9c2Vjb25kQ29tcG9uZW50LGI9Y2hyb21hKTpodWVQcmltZT49NCYmaHVlUHJpbWU8NT8ocj1zZWNvbmRDb21wb25lbnQsYj1jaHJvbWEpOmh1ZVByaW1lPj01JiZodWVQcmltZTw2JiYocj1jaHJvbWEsYj1zZWNvbmRDb21wb25lbnQpO2xldCBsaWdodG5lc3NNb2RpZmljYXRpb249bC1jaHJvbWEvMjt0aGlzLnI9cm91bmQoKHIrbGlnaHRuZXNzTW9kaWZpY2F0aW9uKSoyNTUpLHRoaXMuZz1yb3VuZCgoZytsaWdodG5lc3NNb2RpZmljYXRpb24pKjI1NSksdGhpcy5iPXJvdW5kKChiK2xpZ2h0bmVzc01vZGlmaWNhdGlvbikqMjU1KX1mcm9tSHN2KHtoLHMsdixhfSl7dGhpcy5faD1oJTM2MCx0aGlzLl9zPXMsdGhpcy5fdj12LHRoaXMuYT0ibnVtYmVyIj09dHlwZW9mIGE/YToxO2xldCB2dj1yb3VuZCgyNTUqdik7aWYodGhpcy5yPXZ2LHRoaXMuZz12dix0aGlzLmI9dnYsczw9MClyZXR1cm47bGV0IGhoPWgvNjAsaT1NYXRoLmZsb29yKGhoKSxmZj1oaC1pLHA9cm91bmQodiooMS1zKSoyNTUpLHE9cm91bmQodiooMS1zKmZmKSoyNTUpLHQ9cm91bmQodiooMS1zKigxLWZmKSkqMjU1KTtzd2l0Y2goaSl7Y2FzZSAwOnRoaXMuZz10LHRoaXMuYj1wO2JyZWFrO2Nhc2UgMTp0aGlzLnI9cSx0aGlzLmI9cDticmVhaztjYXNlIDI6dGhpcy5yPXAsdGhpcy5iPXQ7YnJlYWs7Y2FzZSAzOnRoaXMucj1wLHRoaXMuZz1xO2JyZWFrO2Nhc2UgNDp0aGlzLnI9dCx0aGlzLmc9cDticmVhaztkZWZhdWx0OnRoaXMuZz1wLHRoaXMuYj1xfX1mcm9tSHN2U3RyaW5nKHRyaW1TdHIpe2xldCBjZWxscz1zcGxpdENvbG9yU3RyKHRyaW1TdHIscGFyc2VIU1ZvckhTTCk7dGhpcy5mcm9tSHN2KHtoOmNlbGxzWzBdLHM6Y2VsbHNbMV0sdjpjZWxsc1syXSxhOmNlbGxzWzNdfSl9ZnJvbUhzbFN0cmluZyh0cmltU3RyKXtsZXQgY2VsbHM9c3BsaXRDb2xvclN0cih0cmltU3RyLHBhcnNlSFNWb3JIU0wpO3RoaXMuZnJvbUhzbCh7aDpjZWxsc1swXSxzOmNlbGxzWzFdLGw6Y2VsbHNbMl0sYTpjZWxsc1szXX0pfWZyb21SZ2JTdHJpbmcodHJpbVN0cil7bGV0IGNlbGxzPXNwbGl0Q29sb3JTdHIodHJpbVN0ciwobnVtLHR4dCk9PnR4dC5pbmNsdWRlcygiJSIpP3JvdW5kKG51bS8xMDAqMjU1KTpudW0pO3RoaXMucj1jZWxsc1swXSx0aGlzLmc9Y2VsbHNbMV0sdGhpcy5iPWNlbGxzWzJdLHRoaXMuYT1jZWxsc1szXX19fSw4NzU5MjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBBbnRkSWNvbn19KTt2YXIgZXNtX2V4dGVuZHM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzQ2MCk7ZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkocixhKXsobnVsbD09YXx8YT5yLmxlbmd0aCkmJihhPXIubGVuZ3RoKTtmb3IodmFyIGU9MCxuPUFycmF5KGEpO2U8YTtlKyspbltlXT1yW2VdO3JldHVybiBufWZ1bmN0aW9uIF9zbGljZWRUb0FycmF5KHIsZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe2lmKEFycmF5LmlzQXJyYXkocikpcmV0dXJuIHJ9KHIpfHxmdW5jdGlvbihyLGwpe3ZhciB0PW51bGw9PXI/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmcltTeW1ib2wuaXRlcmF0b3JdfHxyWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9dCl7dmFyIGUsbixpLHUsYT1bXSxmPSEwLG89ITE7dHJ5e2lmKGk9KHQ9dC5jYWxsKHIpKS5uZXh0LDA9PT1sKXtpZihPYmplY3QodCkhPT10KXJldHVybjtmPSExfWVsc2UgZm9yKDshKGY9KGU9aS5jYWxsKHQpKS5kb25lKSYmKGEucHVzaChlLnZhbHVlKSxhLmxlbmd0aCE9PWwpO2Y9ITApO31jYXRjaChyMSl7bz0hMCxuPXIxfWZpbmFsbHl7dHJ5e2lmKCFmJiZudWxsIT10LnJldHVybiYmKHU9dC5yZXR1cm4oKSxPYmplY3QodSkhPT11KSlyZXR1cm59ZmluYWxseXtpZihvKXRocm93IG59fXJldHVybiBhfX0ocixlKXx8ZnVuY3Rpb24ocixhKXtpZihyKXtpZigic3RyaW5nIj09dHlwZW9mIHIpcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KHIsYSk7dmFyIHQ9KHt9KS50b1N0cmluZy5jYWxsKHIpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09dCYmci5jb25zdHJ1Y3RvciYmKHQ9ci5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PXR8fCJTZXQiPT09dD9BcnJheS5mcm9tKHIpOiJBcmd1bWVudHMiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCk/X2FycmF5TGlrZVRvQXJyYXkocixhKTp2b2lkIDB9fShyLGUpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBfdHlwZW9mKG8pe3JldHVybihfdHlwZW9mPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKG8pe3JldHVybiB0eXBlb2Ygb306ZnVuY3Rpb24obyl7cmV0dXJuIG8mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJm8uY29uc3RydWN0b3I9PT1TeW1ib2wmJm8hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBvfSkobyl9ZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KGUscix0KXt2YXIgaTtyZXR1cm4oaT1mdW5jdGlvbih0LHIpe2lmKCJvYmplY3QiIT1fdHlwZW9mKHQpfHwhdClyZXR1cm4gdDt2YXIgZT10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09ZSl7dmFyIGk9ZS5jYWxsKHQscnx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9X3R5cGVvZihpKSlyZXR1cm4gaTt0aHJvdyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09cj9TdHJpbmc6TnVtYmVyKSh0KX0ociwic3RyaW5nIiksKHI9InN5bWJvbCI9PV90eXBlb2YoaSk/aTppKyIiKWluIGUpP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIse3ZhbHVlOnQsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3JdPXQsZX1mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBvLHIsaT1mdW5jdGlvbihyLGUpe2lmKG51bGw9PXIpcmV0dXJue307dmFyIHQ9e307Zm9yKHZhciBuIGluIHIpaWYoKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsbikpe2lmKC0xIT09ZS5pbmRleE9mKG4pKWNvbnRpbnVlO3Rbbl09cltuXX1yZXR1cm4gdH0oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxuLmxlbmd0aDtyKyspbz1uW3JdLC0xPT09dC5pbmRleE9mKG8pJiYoe30pLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxvKSYmKGlbb109ZVtvXSl9cmV0dXJuIGl9dmFyIHJlYWN0PV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLGNsYXNzbmFtZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NDE4NCksY2xhc3NuYW1lc19kZWZhdWx0PV9fd2VicGFja19yZXF1aXJlX18ubihjbGFzc25hbWVzKSxjb252ZXJzaW9uPV9fd2VicGFja19yZXF1aXJlX18oODY1MDApLGZvcm1hdF9pbnB1dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3NDMwKSxkYXJrQ29sb3JNYXA9W3tpbmRleDo3LG9wYWNpdHk6LjE1fSx7aW5kZXg6NixvcGFjaXR5Oi4yNX0se2luZGV4OjUsb3BhY2l0eTouM30se2luZGV4OjUsb3BhY2l0eTouNDV9LHtpbmRleDo1LG9wYWNpdHk6LjY1fSx7aW5kZXg6NSxvcGFjaXR5Oi44NX0se2luZGV4OjQsb3BhY2l0eTouOX0se2luZGV4OjMsb3BhY2l0eTouOTV9LHtpbmRleDoyLG9wYWNpdHk6Ljk3fSx7aW5kZXg6MSxvcGFjaXR5Oi45OH1dO2Z1bmN0aW9uIHRvSHN2KF9yZWYpe3ZhciByPV9yZWYucixnPV9yZWYuZyxiPV9yZWYuYixoc3Y9KDAsY29udmVyc2lvbi5weSkocixnLGIpO3JldHVybntoOjM2MCpoc3YuaCxzOmhzdi5zLHY6aHN2LnZ9fWZ1bmN0aW9uIHRvSGV4KF9yZWYyKXt2YXIgcj1fcmVmMi5yLGc9X3JlZjIuZyxiPV9yZWYyLmI7cmV0dXJuIiMiLmNvbmNhdCgoMCxjb252ZXJzaW9uLnZxKShyLGcsYiwhMSkpfWZ1bmN0aW9uIGdldEh1ZShoc3YsaSxsaWdodCl7dmFyIGh1ZTtyZXR1cm4oaHVlPU1hdGgucm91bmQoaHN2LmgpPj02MCYmMjQwPj1NYXRoLnJvdW5kKGhzdi5oKT9saWdodD9NYXRoLnJvdW5kKGhzdi5oKS0yKmk6TWF0aC5yb3VuZChoc3YuaCkrMippOmxpZ2h0P01hdGgucm91bmQoaHN2LmgpKzIqaTpNYXRoLnJvdW5kKGhzdi5oKS0yKmkpPDA/aHVlKz0zNjA6aHVlPj0zNjAmJihodWUtPTM2MCksaHVlfWZ1bmN0aW9uIGdldFNhdHVyYXRpb24oaHN2LGksbGlnaHQpe3ZhciBzYXR1cmF0aW9uO3JldHVybiAwPT09aHN2LmgmJjA9PT1oc3Yucz9oc3YuczooKHNhdHVyYXRpb249bGlnaHQ/aHN2LnMtLjE2Kmk6ND09PWk/aHN2LnMrLjE2Omhzdi5zKy4wNSppKT4xJiYoc2F0dXJhdGlvbj0xKSxsaWdodCYmNT09PWkmJnNhdHVyYXRpb24+LjEmJihzYXR1cmF0aW9uPS4xKSxzYXR1cmF0aW9uPC4wNiYmKHNhdHVyYXRpb249LjA2KSxOdW1iZXIoc2F0dXJhdGlvbi50b0ZpeGVkKDIpKSl9ZnVuY3Rpb24gZ2V0VmFsdWUoaHN2LGksbGlnaHQpe3ZhciB2YWx1ZTtyZXR1cm4odmFsdWU9bGlnaHQ/aHN2LnYrLjA1Kmk6aHN2LnYtLjE1KmkpPjEmJih2YWx1ZT0xKSxOdW1iZXIodmFsdWUudG9GaXhlZCgyKSl9ZnVuY3Rpb24gZ2VuZXJhdGUoY29sb3Ipe2Zvcih2YXIgb3B0cz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30scGF0dGVybnM9W10scENvbG9yPSgwLGZvcm1hdF9pbnB1dC51QSkoY29sb3IpLGk9NTtpPjA7aS09MSl7dmFyIGhzdj10b0hzdihwQ29sb3IpLGNvbG9yU3RyaW5nPXRvSGV4KCgwLGZvcm1hdF9pbnB1dC51QSkoe2g6Z2V0SHVlKGhzdixpLCEwKSxzOmdldFNhdHVyYXRpb24oaHN2LGksITApLHY6Z2V0VmFsdWUoaHN2LGksITApfSkpO3BhdHRlcm5zLnB1c2goY29sb3JTdHJpbmcpfXBhdHRlcm5zLnB1c2godG9IZXgocENvbG9yKSk7Zm9yKHZhciBfaT0xO19pPD00O19pKz0xKXt2YXIgX2hzdj10b0hzdihwQ29sb3IpLF9jb2xvclN0cmluZz10b0hleCgoMCxmb3JtYXRfaW5wdXQudUEpKHtoOmdldEh1ZShfaHN2LF9pKSxzOmdldFNhdHVyYXRpb24oX2hzdixfaSksdjpnZXRWYWx1ZShfaHN2LF9pKX0pKTtwYXR0ZXJucy5wdXNoKF9jb2xvclN0cmluZyl9cmV0dXJuImRhcmsiPT09b3B0cy50aGVtZT9kYXJrQ29sb3JNYXAubWFwKGZ1bmN0aW9uKF9yZWYzKXt2YXIgcmdiMSxyZ2IyLHAsaW5kZXg9X3JlZjMuaW5kZXgsb3BhY2l0eT1fcmVmMy5vcGFjaXR5O3JldHVybiB0b0hleCgocmdiMT0oMCxmb3JtYXRfaW5wdXQudUEpKG9wdHMuYmFja2dyb3VuZENvbG9yfHwiIzE0MTQxNCIpLHJnYjI9KDAsZm9ybWF0X2lucHV0LnVBKShwYXR0ZXJuc1tpbmRleF0pLHA9MTAwKm9wYWNpdHkvMTAwLHtyOihyZ2IyLnItcmdiMS5yKSpwK3JnYjEucixnOihyZ2IyLmctcmdiMS5nKSpwK3JnYjEuZyxiOihyZ2IyLmItcmdiMS5iKSpwK3JnYjEuYn0pKX0pOnBhdHRlcm5zfXZhciBwcmVzZXRQcmltYXJ5Q29sb3JzPXtyZWQ6IiNGNTIyMkQiLHZvbGNhbm86IiNGQTU0MUMiLG9yYW5nZToiI0ZBOEMxNiIsZ29sZDoiI0ZBQUQxNCIseWVsbG93OiIjRkFEQjE0IixsaW1lOiIjQTBEOTExIixncmVlbjoiIzUyQzQxQSIsY3lhbjoiIzEzQzJDMiIsYmx1ZToiIzE2NzdGRiIsZ2Vla2JsdWU6IiMyRjU0RUIiLHB1cnBsZToiIzcyMkVEMSIsbWFnZW50YToiI0VCMkY5NiIsZ3JleToiIzY2NjY2NiJ9LHByZXNldFBhbGV0dGVzPXt9LHByZXNldERhcmtQYWxldHRlcz17fTtPYmplY3Qua2V5cyhwcmVzZXRQcmltYXJ5Q29sb3JzKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSl7cHJlc2V0UGFsZXR0ZXNba2V5XT1nZW5lcmF0ZShwcmVzZXRQcmltYXJ5Q29sb3JzW2tleV0pLHByZXNldFBhbGV0dGVzW2tleV0ucHJpbWFyeT1wcmVzZXRQYWxldHRlc1trZXldWzVdLHByZXNldERhcmtQYWxldHRlc1trZXldPWdlbmVyYXRlKHByZXNldFByaW1hcnlDb2xvcnNba2V5XSx7dGhlbWU6ImRhcmsiLGJhY2tncm91bmRDb2xvcjoiIzE0MTQxNCJ9KSxwcmVzZXREYXJrUGFsZXR0ZXNba2V5XS5wcmltYXJ5PXByZXNldERhcmtQYWxldHRlc1trZXldWzVdfSkscHJlc2V0UGFsZXR0ZXMucmVkLHByZXNldFBhbGV0dGVzLnZvbGNhbm8scHJlc2V0UGFsZXR0ZXMuZ29sZCxwcmVzZXRQYWxldHRlcy5vcmFuZ2UscHJlc2V0UGFsZXR0ZXMueWVsbG93LHByZXNldFBhbGV0dGVzLmxpbWUscHJlc2V0UGFsZXR0ZXMuZ3JlZW4scHJlc2V0UGFsZXR0ZXMuY3lhbjt2YXIgYmx1ZT1wcmVzZXRQYWxldHRlcy5ibHVlO3ByZXNldFBhbGV0dGVzLmdlZWtibHVlLHByZXNldFBhbGV0dGVzLnB1cnBsZSxwcmVzZXRQYWxldHRlcy5tYWdlbnRhLHByZXNldFBhbGV0dGVzLmdyZXkscHJlc2V0UGFsZXR0ZXMuZ3JleTt2YXIgQ29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDYzMDE3KTtmdW5jdGlvbiBvd25LZXlzKGUscil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIG89T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtyJiYobz1vLmZpbHRlcihmdW5jdGlvbihyKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHIpLmVudW1lcmFibGV9KSksdC5wdXNoLmFwcGx5KHQsbyl9cmV0dXJuIHR9ZnVuY3Rpb24gX29iamVjdFNwcmVhZDIoZSl7Zm9yKHZhciByPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW3JdP2FyZ3VtZW50c1tyXTp7fTtyJTI/b3duS2V5cyhPYmplY3QodCksITApLmZvckVhY2goZnVuY3Rpb24ocil7X2RlZmluZVByb3BlcnR5KGUscix0W3JdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOm93bktleXMoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpKX0pfXJldHVybiBlfXZhciBkeW5hbWljQ1NTPV9fd2VicGFja19yZXF1aXJlX18oNDQ5NTgpO2Z1bmN0aW9uIGdldFJvb3QoZWxlKXt2YXIgX2VsZSRnZXRSb290Tm9kZTtyZXR1cm4gbnVsbD09ZWxlfHxudWxsPT09KF9lbGUkZ2V0Um9vdE5vZGU9ZWxlLmdldFJvb3ROb2RlKXx8dm9pZCAwPT09X2VsZSRnZXRSb290Tm9kZT92b2lkIDA6X2VsZSRnZXRSb290Tm9kZS5jYWxsKGVsZSl9dmFyIHdhcm5pbmc9X193ZWJwYWNrX3JlcXVpcmVfXyg4MDMzNCk7ZnVuY3Rpb24gaXNJY29uRGVmaW5pdGlvbih0YXJnZXQpe3JldHVybiJvYmplY3QiPT09X3R5cGVvZih0YXJnZXQpJiYic3RyaW5nIj09dHlwZW9mIHRhcmdldC5uYW1lJiYic3RyaW5nIj09dHlwZW9mIHRhcmdldC50aGVtZSYmKCJvYmplY3QiPT09X3R5cGVvZih0YXJnZXQuaWNvbil8fCJmdW5jdGlvbiI9PXR5cGVvZiB0YXJnZXQuaWNvbil9ZnVuY3Rpb24gbm9ybWFsaXplQXR0cnMoKXt2YXIgYXR0cnM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9O3JldHVybiBPYmplY3Qua2V5cyhhdHRycykucmVkdWNlKGZ1bmN0aW9uKGFjYyxrZXkpe3ZhciB2YWw9YXR0cnNba2V5XTtyZXR1cm4iY2xhc3MiPT09a2V5PyhhY2MuY2xhc3NOYW1lPXZhbCxkZWxldGUgYWNjLmNsYXNzKTooZGVsZXRlIGFjY1trZXldLGFjY1trZXkucmVwbGFjZSgvLSguKS9nLGZ1bmN0aW9uKG1hdGNoLGcpe3JldHVybiBnLnRvVXBwZXJDYXNlKCl9KV09dmFsKSxhY2N9LHt9KX1mdW5jdGlvbiBub3JtYWxpemVUd29Ub25lQ29sb3JzKHR3b1RvbmVDb2xvcil7cmV0dXJuIHR3b1RvbmVDb2xvcj9BcnJheS5pc0FycmF5KHR3b1RvbmVDb2xvcik/dHdvVG9uZUNvbG9yOlt0d29Ub25lQ29sb3JdOltdfXZhciB1c2VJbnNlcnRTdHlsZXM9ZnVuY3Rpb24oZWxlUmVmKXt2YXIgX3VzZUNvbnRleHQ9KDAscmVhY3QudXNlQ29udGV4dCkoQ29udGV4dC5aKSxjc3A9X3VzZUNvbnRleHQuY3NwLHByZWZpeENscz1fdXNlQ29udGV4dC5wcmVmaXhDbHMsbGF5ZXI9X3VzZUNvbnRleHQubGF5ZXIsbWVyZ2VkU3R5bGVTdHI9IlxuLmFudGljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiAtMC4xMjVlbTtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi5hbnRpY29uID4gKiB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uYW50aWNvbiBzdmcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5hbnRpY29uOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uYW50aWNvbiAuYW50aWNvbi1pY29uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5hbnRpY29uW3RhYmluZGV4XSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmFudGljb24tc3Bpbjo6YmVmb3JlLFxuLmFudGljb24tc3BpbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLXdlYmtpdC1hbmltYXRpb246IGxvYWRpbmdDaXJjbGUgMXMgaW5maW5pdGUgbGluZWFyO1xuICBhbmltYXRpb246IGxvYWRpbmdDaXJjbGUgMXMgaW5maW5pdGUgbGluZWFyO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgbG9hZGluZ0NpcmNsZSB7XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgbG9hZGluZ0NpcmNsZSB7XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG4iO3ByZWZpeENscyYmKG1lcmdlZFN0eWxlU3RyPW1lcmdlZFN0eWxlU3RyLnJlcGxhY2UoL2FudGljb24vZyxwcmVmaXhDbHMpKSxsYXllciYmKG1lcmdlZFN0eWxlU3RyPSJAbGF5ZXIgIi5jb25jYXQobGF5ZXIsIiB7XG4iKS5jb25jYXQobWVyZ2VkU3R5bGVTdHIsIlxufSIpKSwoMCxyZWFjdC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIGVsZSxzaGFkb3dSb290PWdldFJvb3QoZWxlPWVsZVJlZi5jdXJyZW50KSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3Q/Z2V0Um9vdChlbGUpOm51bGw7KDAsZHluYW1pY0NTUy5ocSkobWVyZ2VkU3R5bGVTdHIsIkBhbnQtZGVzaWduLWljb25zIix7cHJlcGVuZDohbGF5ZXIsY3NwOmNzcCxhdHRhY2hUbzpzaGFkb3dSb290fSl9LFtdKX0sX2V4Y2x1ZGVkPVsiaWNvbiIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJzdHlsZSIsInByaW1hcnlDb2xvciIsInNlY29uZGFyeUNvbG9yIl0sdHdvVG9uZUNvbG9yUGFsZXR0ZT17cHJpbWFyeUNvbG9yOiIjMzMzIixzZWNvbmRhcnlDb2xvcjoiI0U2RTZFNiIsY2FsY3VsYXRlZDohMX0sSWNvbkJhc2U9ZnVuY3Rpb24ocHJvcHMpe3ZhciB2YWxpZCxpY29uPXByb3BzLmljb24sY2xhc3NOYW1lPXByb3BzLmNsYXNzTmFtZSxvbkNsaWNrPXByb3BzLm9uQ2xpY2ssc3R5bGU9cHJvcHMuc3R5bGUscHJpbWFyeUNvbG9yPXByb3BzLnByaW1hcnlDb2xvcixzZWNvbmRhcnlDb2xvcj1wcm9wcy5zZWNvbmRhcnlDb2xvcixyZXN0UHJvcHM9X29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHByb3BzLF9leGNsdWRlZCksc3ZnUmVmPXJlYWN0LnVzZVJlZigpLGNvbG9ycz10d29Ub25lQ29sb3JQYWxldHRlO2lmKHByaW1hcnlDb2xvciYmKGNvbG9ycz17cHJpbWFyeUNvbG9yOnByaW1hcnlDb2xvcixzZWNvbmRhcnlDb2xvcjpzZWNvbmRhcnlDb2xvcnx8Z2VuZXJhdGUocHJpbWFyeUNvbG9yKVswXX0pLHVzZUluc2VydFN0eWxlcyhzdmdSZWYpLHZhbGlkPWlzSWNvbkRlZmluaXRpb24oaWNvbiksKDAsd2FybmluZy5aUCkodmFsaWQsIltAYW50LWRlc2lnbi9pY29uc10gIi5jb25jYXQoImljb24gc2hvdWxkIGJlIGljb24gZGVmaW5pdG9uLCBidXQgZ290ICIuY29uY2F0KGljb24pKSksIWlzSWNvbkRlZmluaXRpb24oaWNvbikpcmV0dXJuIG51bGw7dmFyIHRhcmdldD1pY29uO3JldHVybiB0YXJnZXQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0YXJnZXQuaWNvbiYmKHRhcmdldD1fb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7fSx0YXJnZXQpLHt9LHtpY29uOnRhcmdldC5pY29uKGNvbG9ycy5wcmltYXJ5Q29sb3IsY29sb3JzLnNlY29uZGFyeUNvbG9yKX0pKSxmdW5jdGlvbiB1dGlsc19nZW5lcmF0ZShub2RlLGtleSxyb290UHJvcHMpe3JldHVybiByb290UHJvcHM/cmVhY3QuY3JlYXRlRWxlbWVudChub2RlLnRhZyxfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7a2V5OmtleX0sbm9ybWFsaXplQXR0cnMobm9kZS5hdHRycykpLHJvb3RQcm9wcyksKG5vZGUuY2hpbGRyZW58fFtdKS5tYXAoZnVuY3Rpb24oY2hpbGQsaW5kZXgpe3JldHVybiB1dGlsc19nZW5lcmF0ZShjaGlsZCwiIi5jb25jYXQoa2V5LCItIikuY29uY2F0KG5vZGUudGFnLCItIikuY29uY2F0KGluZGV4KSl9KSk6cmVhY3QuY3JlYXRlRWxlbWVudChub2RlLnRhZyxfb2JqZWN0U3ByZWFkMih7a2V5OmtleX0sbm9ybWFsaXplQXR0cnMobm9kZS5hdHRycykpLChub2RlLmNoaWxkcmVufHxbXSkubWFwKGZ1bmN0aW9uKGNoaWxkLGluZGV4KXtyZXR1cm4gdXRpbHNfZ2VuZXJhdGUoY2hpbGQsIiIuY29uY2F0KGtleSwiLSIpLmNvbmNhdChub2RlLnRhZywiLSIpLmNvbmNhdChpbmRleCkpfSkpfSh0YXJnZXQuaWNvbiwic3ZnLSIuY29uY2F0KHRhcmdldC5uYW1lKSxfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7Y2xhc3NOYW1lOmNsYXNzTmFtZSxvbkNsaWNrOm9uQ2xpY2ssc3R5bGU6c3R5bGUsImRhdGEtaWNvbiI6dGFyZ2V0Lm5hbWUsd2lkdGg6IjFlbSIsaGVpZ2h0OiIxZW0iLGZpbGw6ImN1cnJlbnRDb2xvciIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHJlc3RQcm9wcykse30se3JlZjpzdmdSZWZ9KSl9O2Z1bmN0aW9uIHNldFR3b1RvbmVDb2xvcih0d29Ub25lQ29sb3Ipe3ZhciBfbm9ybWFsaXplVHdvVG9uZUNvbG8yPV9zbGljZWRUb0FycmF5KG5vcm1hbGl6ZVR3b1RvbmVDb2xvcnModHdvVG9uZUNvbG9yKSwyKSxwcmltYXJ5Q29sb3I9X25vcm1hbGl6ZVR3b1RvbmVDb2xvMlswXSxzZWNvbmRhcnlDb2xvcj1fbm9ybWFsaXplVHdvVG9uZUNvbG8yWzFdO3JldHVybiBJY29uQmFzZS5zZXRUd29Ub25lQ29sb3JzKHtwcmltYXJ5Q29sb3I6cHJpbWFyeUNvbG9yLHNlY29uZGFyeUNvbG9yOnNlY29uZGFyeUNvbG9yfSl9SWNvbkJhc2UuZGlzcGxheU5hbWU9Ikljb25SZWFjdCIsSWNvbkJhc2UuZ2V0VHdvVG9uZUNvbG9ycz1mdW5jdGlvbigpe3JldHVybiBfb2JqZWN0U3ByZWFkMih7fSx0d29Ub25lQ29sb3JQYWxldHRlKX0sSWNvbkJhc2Uuc2V0VHdvVG9uZUNvbG9ycz1mdW5jdGlvbihfcmVmKXt2YXIgcHJpbWFyeUNvbG9yPV9yZWYucHJpbWFyeUNvbG9yLHNlY29uZGFyeUNvbG9yPV9yZWYuc2Vjb25kYXJ5Q29sb3I7dHdvVG9uZUNvbG9yUGFsZXR0ZS5wcmltYXJ5Q29sb3I9cHJpbWFyeUNvbG9yLHR3b1RvbmVDb2xvclBhbGV0dGUuc2Vjb25kYXJ5Q29sb3I9c2Vjb25kYXJ5Q29sb3J8fGdlbmVyYXRlKHByaW1hcnlDb2xvcilbMF0sdHdvVG9uZUNvbG9yUGFsZXR0ZS5jYWxjdWxhdGVkPSEhc2Vjb25kYXJ5Q29sb3J9O3ZhciBBbnRkSWNvbl9leGNsdWRlZD1bImNsYXNzTmFtZSIsImljb24iLCJzcGluIiwicm90YXRlIiwidGFiSW5kZXgiLCJvbkNsaWNrIiwidHdvVG9uZUNvbG9yIl07c2V0VHdvVG9uZUNvbG9yKGJsdWUucHJpbWFyeSk7dmFyIEljb249cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3ZhciBjbGFzc05hbWU9cHJvcHMuY2xhc3NOYW1lLGljb249cHJvcHMuaWNvbixzcGluPXByb3BzLnNwaW4scm90YXRlPXByb3BzLnJvdGF0ZSx0YWJJbmRleD1wcm9wcy50YWJJbmRleCxvbkNsaWNrPXByb3BzLm9uQ2xpY2ssdHdvVG9uZUNvbG9yPXByb3BzLnR3b1RvbmVDb2xvcixyZXN0UHJvcHM9X29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHByb3BzLEFudGRJY29uX2V4Y2x1ZGVkKSxfUmVhY3QkdXNlQ29udGV4dD1yZWFjdC51c2VDb250ZXh0KENvbnRleHQuWiksX1JlYWN0JHVzZUNvbnRleHQkcHJlPV9SZWFjdCR1c2VDb250ZXh0LnByZWZpeENscyxwcmVmaXhDbHM9dm9pZCAwPT09X1JlYWN0JHVzZUNvbnRleHQkcHJlPyJhbnRpY29uIjpfUmVhY3QkdXNlQ29udGV4dCRwcmUscm9vdENsYXNzTmFtZT1fUmVhY3QkdXNlQ29udGV4dC5yb290Q2xhc3NOYW1lLGNsYXNzU3RyaW5nPWNsYXNzbmFtZXNfZGVmYXVsdCgpKHJvb3RDbGFzc05hbWUscHJlZml4Q2xzLF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoe30sIiIuY29uY2F0KHByZWZpeENscywiLSIpLmNvbmNhdChpY29uLm5hbWUpLCEhaWNvbi5uYW1lKSwiIi5jb25jYXQocHJlZml4Q2xzLCItc3BpbiIpLCEhc3Bpbnx8ImxvYWRpbmciPT09aWNvbi5uYW1lKSxjbGFzc05hbWUpLGljb25UYWJJbmRleD10YWJJbmRleDt2b2lkIDA9PT1pY29uVGFiSW5kZXgmJm9uQ2xpY2smJihpY29uVGFiSW5kZXg9LTEpO3ZhciBfbm9ybWFsaXplVHdvVG9uZUNvbG8yPV9zbGljZWRUb0FycmF5KG5vcm1hbGl6ZVR3b1RvbmVDb2xvcnModHdvVG9uZUNvbG9yKSwyKSxwcmltYXJ5Q29sb3I9X25vcm1hbGl6ZVR3b1RvbmVDb2xvMlswXSxzZWNvbmRhcnlDb2xvcj1fbm9ybWFsaXplVHdvVG9uZUNvbG8yWzFdO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIiwoMCxlc21fZXh0ZW5kcy5aKSh7cm9sZToiaW1nIiwiYXJpYS1sYWJlbCI6aWNvbi5uYW1lfSxyZXN0UHJvcHMse3JlZjpyZWYsdGFiSW5kZXg6aWNvblRhYkluZGV4LG9uQ2xpY2s6b25DbGljayxjbGFzc05hbWU6Y2xhc3NTdHJpbmd9KSxyZWFjdC5jcmVhdGVFbGVtZW50KEljb25CYXNlLHtpY29uOmljb24scHJpbWFyeUNvbG9yOnByaW1hcnlDb2xvcixzZWNvbmRhcnlDb2xvcjpzZWNvbmRhcnlDb2xvcixzdHlsZTpyb3RhdGU/e21zVHJhbnNmb3JtOiJyb3RhdGUoIi5jb25jYXQocm90YXRlLCJkZWcpIiksdHJhbnNmb3JtOiJyb3RhdGUoIi5jb25jYXQocm90YXRlLCJkZWcpIil9OnZvaWQgMH0pKX0pO0ljb24uZGlzcGxheU5hbWU9IkFudGRJY29uIixJY29uLmdldFR3b1RvbmVDb2xvcj1mdW5jdGlvbigpe3ZhciBjb2xvcnM9SWNvbkJhc2UuZ2V0VHdvVG9uZUNvbG9ycygpO3JldHVybiBjb2xvcnMuY2FsY3VsYXRlZD9bY29sb3JzLnByaW1hcnlDb2xvcixjb2xvcnMuc2Vjb25kYXJ5Q29sb3JdOmNvbG9ycy5wcmltYXJ5Q29sb3J9LEljb24uc2V0VHdvVG9uZUNvbG9yPXNldFR3b1RvbmVDb2xvcjt2YXIgQW50ZEljb249SWNvbn0sNjMwMTc6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7dmFyIEljb25Db250ZXh0PSgwLF9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLmNyZWF0ZUNvbnRleHQpKHt9KTtfX3dlYnBhY2tfZXhwb3J0c19fLlo9SWNvbkNvbnRleHR9LDg5NzM5OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGljb25zX0NoZWNrQ2lyY2xlRmlsbGVkfX0pO3ZhciBlc21fZXh0ZW5kcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk3NDYwKSxyZWFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxhc25fQ2hlY2tDaXJjbGVGaWxsZWQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0xOTMuNSAzMDEuN2wtMjEwLjYgMjkyYTMxLjggMzEuOCAwIDAxLTUxLjcgMEwzMTguNSA0ODQuOWMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNDYuOWMxMC4yIDAgMTkuOSA0LjkgMjUuOSAxMy4zbDcxLjIgOTguOCAxNTcuMi0yMThjNi04LjMgMTUuNi0xMy4zIDI1LjktMTMuM0g2OTljNi41IDAgMTAuMyA3LjQgNi41IDEyLjd6In19XX0sbmFtZToiY2hlY2stY2lyY2xlIix0aGVtZToiZmlsbGVkIn0sQW50ZEljb249X193ZWJwYWNrX3JlcXVpcmVfXyg4NzU5MiksaWNvbnNfQ2hlY2tDaXJjbGVGaWxsZWQ9cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KEFudGRJY29uLlosKDAsZXNtX2V4dGVuZHMuWikoe30scHJvcHMse3JlZjpyZWYsaWNvbjphc25fQ2hlY2tDaXJjbGVGaWxsZWR9KSl9KX0sNjM2MDY6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gaWNvbnNfQ2hlY2tPdXRsaW5lZH19KTt2YXIgZXNtX2V4dGVuZHM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzQ2MCkscmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksYXNuX0NoZWNrT3V0bGluZWQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTkxMiAxOTBoLTY5LjljLTkuOCAwLTE5LjEgNC41LTI1LjEgMTIuMkw0MDQuNyA3MjQuNSAyMDcgNDc0YTMyIDMyIDAgMDAtMjUuMS0xMi4ySDExMmMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlsMjczLjkgMzQ3YzEyLjggMTYuMiAzNy40IDE2LjIgNTAuMyAwbDQ4OC40LTYxOC45YzQuMS01LjEuNC0xMi44LTYuMy0xMi44eiJ9fV19LG5hbWU6ImNoZWNrIix0aGVtZToib3V0bGluZWQifSxBbnRkSWNvbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDg3NTkyKSxpY29uc19DaGVja091dGxpbmVkPXJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24ocHJvcHMscmVmKXtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChBbnRkSWNvbi5aLCgwLGVzbV9leHRlbmRzLlopKHt9LHByb3BzLHtyZWY6cmVmLGljb246YXNuX0NoZWNrT3V0bGluZWR9KSl9KX0sNDM0MDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBpY29uc19DbG9zZUNpcmNsZUZpbGxlZH19KTt2YXIgZXNtX2V4dGVuZHM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzQ2MCkscmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksYXNuX0Nsb3NlQ2lyY2xlRmlsbGVkPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6eyJmaWxsLXJ1bGUiOiJldmVub2RkIix2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0YzI0Ny40IDAgNDQ4IDIwMC42IDQ0OCA0NDhTNzU5LjQgOTYwIDUxMiA5NjAgNjQgNzU5LjQgNjQgNTEyIDI2NC42IDY0IDUxMiA2NHptMTI3Ljk4IDI3NC44MmgtLjA0bC0uMDguMDZMNTEyIDQ2Ni43NSAzODQuMTQgMzM4Ljg4Yy0uMDQtLjA1LS4wNi0uMDYtLjA4LS4wNmEuMTIuMTIgMCAwMC0uMDcgMGMtLjAzIDAtLjA1LjAxLS4wOS4wNWwtNDUuMDIgNDUuMDJhLjIuMiAwIDAwLS4wNS4wOS4xMi4xMiAwIDAwMCAuMDd2LjAyYS4yNy4yNyAwIDAwLjA2LjA2TDQ2Ni43NSA1MTIgMzM4Ljg4IDYzOS44NmMtLjA1LjA0LS4wNi4wNi0uMDYuMDhhLjEyLjEyIDAgMDAwIC4wN2MwIC4wMy4wMS4wNS4wNS4wOWw0NS4wMiA0NS4wMmEuMi4yIDAgMDAuMDkuMDUuMTIuMTIgMCAwMC4wNyAwYy4wMiAwIC4wNC0uMDEuMDgtLjA1TDUxMiA1NTcuMjVsMTI3Ljg2IDEyNy44N2MuMDQuMDQuMDYuMDUuMDguMDVhLjEyLjEyIDAgMDAuMDcgMGMuMDMgMCAuMDUtLjAxLjA5LS4wNWw0NS4wMi00NS4wMmEuMi4yIDAgMDAuMDUtLjA5LjEyLjEyIDAgMDAwLS4wN3YtLjAyYS4yNy4yNyAwIDAwLS4wNS0uMDZMNTU3LjI1IDUxMmwxMjcuODctMTI3Ljg2Yy4wNC0uMDQuMDUtLjA2LjA1LS4wOGEuMTIuMTIgMCAwMDAtLjA3YzAtLjAzLS4wMS0uMDUtLjA1LS4wOWwtNDUuMDItNDUuMDJhLjIuMiAwIDAwLS4wOS0uMDUuMTIuMTIgMCAwMC0uMDcgMHoifX1dfSxuYW1lOiJjbG9zZS1jaXJjbGUiLHRoZW1lOiJmaWxsZWQifSxBbnRkSWNvbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDg3NTkyKSxpY29uc19DbG9zZUNpcmNsZUZpbGxlZD1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoQW50ZEljb24uWiwoMCxlc21fZXh0ZW5kcy5aKSh7fSxwcm9wcyx7cmVmOnJlZixpY29uOmFzbl9DbG9zZUNpcmNsZUZpbGxlZH0pKX0pfSw5NzkzNzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBpY29uc19DbG9zZU91dGxpbmVkfX0pO3ZhciBlc21fZXh0ZW5kcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk3NDYwKSxyZWFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxhc25fQ2xvc2VPdXRsaW5lZD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnsiZmlsbC1ydWxlIjoiZXZlbm9kZCIsdmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTc5OS44NiAxNjYuMzFjLjAyIDAgLjA0LjAyLjA4LjA2bDU3LjY5IDU3LjdjLjA0LjAzLjA1LjA1LjA2LjA4YS4xMi4xMiAwIDAxMCAuMDZjMCAuMDMtLjAyLjA1LS4wNi4wOUw1NjkuOTMgNTEybDI4Ny43IDI4Ny43Yy4wNC4wNC4wNS4wNi4wNi4wOWEuMTIuMTIgMCAwMTAgLjA3YzAgLjAyLS4wMi4wNC0uMDYuMDhsLTU3LjcgNTcuNjljLS4wMy4wNC0uMDUuMDUtLjA3LjA2YS4xMi4xMiAwIDAxLS4wNyAwYy0uMDMgMC0uMDUtLjAyLS4wOS0uMDZMNTEyIDU2OS45M2wtMjg3LjcgMjg3LjdjLS4wNC4wNC0uMDYuMDUtLjA5LjA2YS4xMi4xMiAwIDAxLS4wNyAwYy0uMDIgMC0uMDQtLjAyLS4wOC0uMDZsLTU3LjY5LTU3LjdjLS4wNC0uMDMtLjA1LS4wNS0uMDYtLjA3YS4xMi4xMiAwIDAxMC0uMDdjMC0uMDMuMDItLjA1LjA2LS4wOUw0NTQuMDcgNTEybC0yODcuNy0yODcuN2MtLjA0LS4wNC0uMDUtLjA2LS4wNi0uMDlhLjEyLjEyIDAgMDEwLS4wN2MwLS4wMi4wMi0uMDQuMDYtLjA4bDU3LjctNTcuNjljLjAzLS4wNC4wNS0uMDUuMDctLjA2YS4xMi4xMiAwIDAxLjA3IDBjLjAzIDAgLjA1LjAyLjA5LjA2TDUxMiA0NTQuMDdsMjg3LjctMjg3LjdjLjA0LS4wNC4wNi0uMDUuMDktLjA2YS4xMi4xMiAwIDAxLjA3IDB6In19XX0sbmFtZToiY2xvc2UiLHRoZW1lOiJvdXRsaW5lZCJ9LEFudGRJY29uPV9fd2VicGFja19yZXF1aXJlX18oODc1OTIpLGljb25zX0Nsb3NlT3V0bGluZWQ9cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KEFudGRJY29uLlosKDAsZXNtX2V4dGVuZHMuWikoe30scHJvcHMse3JlZjpyZWYsaWNvbjphc25fQ2xvc2VPdXRsaW5lZH0pKX0pfSw4MDg4MjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBpY29uc19Eb3duT3V0bGluZWR9fSk7dmFyIGVzbV9leHRlbmRzPV9fd2VicGFja19yZXF1aXJlX18oOTc0NjApLHJlYWN0PV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLGFzbl9Eb3duT3V0bGluZWQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4NCAyNTZoLTc1Yy01LjEgMC05LjkgMi41LTEyLjkgNi42TDUxMiA2NTQuMiAyMjcuOSAyNjIuNmMtMy00LjEtNy44LTYuNi0xMi45LTYuNmgtNzVjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDM1Mi42IDQ4Ni4xYzEyLjggMTcuNiAzOSAxNy42IDUxLjcgMGwzNTIuNi00ODYuMWMzLjktNS4zLjEtMTIuNy02LjQtMTIuN3oifX1dfSxuYW1lOiJkb3duIix0aGVtZToib3V0bGluZWQifSxBbnRkSWNvbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDg3NTkyKSxpY29uc19Eb3duT3V0bGluZWQ9cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KEFudGRJY29uLlosKDAsZXNtX2V4dGVuZHMuWikoe30scHJvcHMse3JlZjpyZWYsaWNvbjphc25fRG93bk91dGxpbmVkfSkpfSl9LDg5NzA1OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGljb25zX0VsbGlwc2lzT3V0bGluZWR9fSk7dmFyIGVzbV9leHRlbmRzPV9fd2VicGFja19yZXF1aXJlX18oOTc0NjApLHJlYWN0PV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLGFzbl9FbGxpcHNpc091dGxpbmVkPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik0xNzYgNTExYTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDEwLTExMiAwem0yODAgMGE1NiA1NiAwIDEwMTEyIDAgNTYgNTYgMCAxMC0xMTIgMHptMjgwIDBhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6In19XX0sbmFtZToiZWxsaXBzaXMiLHRoZW1lOiJvdXRsaW5lZCJ9LEFudGRJY29uPV9fd2VicGFja19yZXF1aXJlX18oODc1OTIpLGljb25zX0VsbGlwc2lzT3V0bGluZWQ9cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KEFudGRJY29uLlosKDAsZXNtX2V4dGVuZHMuWikoe30scHJvcHMse3JlZjpyZWYsaWNvbjphc25fRWxsaXBzaXNPdXRsaW5lZH0pKX0pfSwyMTY0MDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBpY29uc19FeGNsYW1hdGlvbkNpcmNsZUZpbGxlZH19KTt2YXIgZXNtX2V4dGVuZHM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzQ2MCkscmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksYXNuX0V4Y2xhbWF0aW9uQ2lyY2xlRmlsbGVkPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptLTMyIDIzMmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djI3MmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWMjk2em0zMiA0NDBhNDguMDEgNDguMDEgMCAwMTAtOTYgNDguMDEgNDguMDEgMCAwMTAgOTZ6In19XX0sbmFtZToiZXhjbGFtYXRpb24tY2lyY2xlIix0aGVtZToiZmlsbGVkIn0sQW50ZEljb249X193ZWJwYWNrX3JlcXVpcmVfXyg4NzU5MiksaWNvbnNfRXhjbGFtYXRpb25DaXJjbGVGaWxsZWQ9cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KEFudGRJY29uLlosKDAsZXNtX2V4dGVuZHMuWikoe30scHJvcHMse3JlZjpyZWYsaWNvbjphc25fRXhjbGFtYXRpb25DaXJjbGVGaWxsZWR9KSl9KX0sMTA1MjQ6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gaWNvbnNfR2xvYmFsT3V0bGluZWR9fSk7dmFyIGVzbV9leHRlbmRzPV9fd2VicGFja19yZXF1aXJlX18oOTc0NjApLHJlYWN0PV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLGFzbl9HbG9iYWxPdXRsaW5lZD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODU0LjQgODAwLjljLjItLjMuNS0uNi43LS45QzkyMC42IDcyMi4xIDk2MCA2MjEuNyA5NjAgNTEycy0zOS40LTIxMC4xLTEwNC44LTI4OGMtLjItLjMtLjUtLjUtLjctLjgtMS4xLTEuMy0yLjEtMi41LTMuMi0zLjctLjQtLjUtLjgtLjktMS4yLTEuNGwtNC4xLTQuNy0uMS0uMWMtMS41LTEuNy0zLjEtMy40LTQuNi01LjFsLS4xLS4xYy0zLjItMy40LTYuNC02LjgtOS43LTEwLjFsLS4xLS4xLTQuOC00LjgtLjMtLjNjLTEuNS0xLjUtMy0yLjktNC41LTQuMy0uNS0uNS0xLTEtMS42LTEuNS0xLTEtMi0xLjktMy0yLjgtLjMtLjMtLjctLjYtMS0xQzczNi40IDEwOS4yIDYyOS41IDY0IDUxMiA2NHMtMjI0LjQgNDUuMi0zMDQuMyAxMTkuMmMtLjMuMy0uNy42LTEgMS0xIC45LTIgMS45LTMgMi45LS41LjUtMSAxLTEuNiAxLjUtMS41IDEuNC0zIDIuOS00LjUgNC4zbC0uMy4zLTQuOCA0LjgtLjEuMWMtMy4zIDMuMy02LjUgNi43LTkuNyAxMC4xbC0uMS4xYy0xLjYgMS43LTMuMSAzLjQtNC42IDUuMWwtLjEuMWMtMS40IDEuNS0yLjggMy4xLTQuMSA0LjctLjQuNS0uOC45LTEuMiAxLjQtMS4xIDEuMi0yLjEgMi41LTMuMiAzLjctLjIuMy0uNS41LS43LjhDMTAzLjQgMzAxLjkgNjQgNDAyLjMgNjQgNTEyczM5LjQgMjEwLjEgMTA0LjggMjg4Yy4yLjMuNS42LjcuOWwzLjEgMy43Yy40LjUuOC45IDEuMiAxLjRsNC4xIDQuN2MwIC4xLjEuMS4xLjIgMS41IDEuNyAzIDMuNCA0LjYgNWwuMS4xYzMuMiAzLjQgNi40IDYuOCA5LjYgMTAuMWwuMS4xYzEuNiAxLjYgMy4xIDMuMiA0LjcgNC43bC4zLjNjMy4zIDMuMyA2LjcgNi41IDEwLjEgOS42IDgwLjEgNzQgMTg3IDExOS4yIDMwNC41IDExOS4yczIyNC40LTQ1LjIgMzA0LjMtMTE5LjJhMzAwIDMwMCAwIDAwMTAtOS42bC4zLS4zYzEuNi0xLjYgMy4yLTMuMSA0LjctNC43bC4xLS4xYzMuMy0zLjMgNi41LTYuNyA5LjYtMTAuMWwuMS0uMWMxLjUtMS43IDMuMS0zLjMgNC42LTUgMC0uMS4xLS4xLjEtLjIgMS40LTEuNSAyLjgtMy4xIDQuMS00LjcuNC0uNS44LS45IDEuMi0xLjRhOTkgOTkgMCAwMDMuMy0zLjd6bTQuMS0xNDIuNmMtMTMuOCAzMi42LTMyIDYyLjgtNTQuMiA5MC4yYTQ0NC4wNyA0NDQuMDcgMCAwMC04MS41LTU1LjljMTEuNi00Ni45IDE4LjgtOTguNCAyMC43LTE1Mi42SDg4N2MtMyA0MC45LTEyLjYgODAuNi0yOC41IDExOC4zek04ODcgNDg0SDc0My41Yy0xLjktNTQuMi05LjEtMTA1LjctMjAuNy0xNTIuNiAyOS4zLTE1LjYgNTYuNi0zNC40IDgxLjUtNTUuOUEzNzMuODYgMzczLjg2IDAgMDE4ODcgNDg0ek02NTguMyAxNjUuNWMzOS43IDE2LjggNzUuOCA0MCAxMDcuNiA2OS4yYTM5NC43MiAzOTQuNzIgMCAwMS01OS40IDQxLjhjLTE1LjctNDUtMzUuOC04NC4xLTU5LjItMTE1LjQgMy43IDEuNCA3LjQgMi45IDExIDQuNHptLTkwLjYgNzAwLjZjLTkuMiA3LjItMTguNCAxMi43LTI3LjcgMTYuNFY2OTdhMzg5LjEgMzg5LjEgMCAwMTExNS43IDI2LjJjLTguMyAyNC42LTE3LjkgNDcuMy0yOSA2Ny44LTE3LjQgMzIuNC0zNy44IDU4LjMtNTkgNzUuMXptNTktNjMzLjFjMTEgMjAuNiAyMC43IDQzLjMgMjkgNjcuOEEzODkuMSAzODkuMSAwIDAxNTQwIDMyN1YxNDEuNmM5LjIgMy43IDE4LjUgOS4xIDI3LjcgMTYuNCAyMS4yIDE2LjcgNDEuNiA0Mi42IDU5IDc1ek01NDAgNjQwLjlWNTQwaDE0Ny41Yy0xLjYgNDQuMi03LjEgODcuMS0xNi4zIDEyNy44bC0uMyAxLjJBNDQ1LjAyIDQ0NS4wMiAwIDAwNTQwIDY0MC45em0wLTE1Ni45VjM4My4xYzQ1LjgtMi44IDg5LjgtMTIuNSAxMzAuOS0yOC4xbC4zIDEuMmM5LjIgNDAuNyAxNC43IDgzLjUgMTYuMyAxMjcuOEg1NDB6bS01NiA1NnYxMDAuOWMtNDUuOCAyLjgtODkuOCAxMi41LTEzMC45IDI4LjFsLS4zLTEuMmMtOS4yLTQwLjctMTQuNy04My41LTE2LjMtMTI3LjhINDg0em0tMTQ3LjUtNTZjMS42LTQ0LjIgNy4xLTg3LjEgMTYuMy0xMjcuOGwuMy0xLjJjNDEuMSAxNS42IDg1IDI1LjMgMTMwLjkgMjguMVY0ODRIMzM2LjV6TTQ4NCA2OTd2MTg1LjRjLTkuMi0zLjctMTguNS05LjEtMjcuNy0xNi40LTIxLjItMTYuNy00MS43LTQyLjctNTkuMS03NS4xLTExLTIwLjYtMjAuNy00My4zLTI5LTY3LjggMzcuMi0xNC42IDc1LjktMjMuMyAxMTUuOC0yNi4xem0wLTM3MGEzODkuMSAzODkuMSAwIDAxLTExNS43LTI2LjJjOC4zLTI0LjYgMTcuOS00Ny4zIDI5LTY3LjggMTcuNC0zMi40IDM3LjgtNTguNCA1OS4xLTc1LjEgOS4yLTcuMiAxOC40LTEyLjcgMjcuNy0xNi40VjMyN3pNMzY1LjcgMTY1LjVjMy43LTEuNSA3LjMtMyAxMS00LjQtMjMuNCAzMS4zLTQzLjUgNzAuNC01OS4yIDExNS40LTIxLTEyLTQwLjktMjYtNTkuNC00MS44IDMxLjgtMjkuMiA2Ny45LTUyLjQgMTA3LjYtNjkuMnpNMTY1LjUgMzY1LjdjMTMuOC0zMi42IDMyLTYyLjggNTQuMi05MC4yIDI0LjkgMjEuNSA1Mi4yIDQwLjMgODEuNSA1NS45LTExLjYgNDYuOS0xOC44IDk4LjQtMjAuNyAxNTIuNkgxMzdjMy00MC45IDEyLjYtODAuNiAyOC41LTExOC4zek0xMzcgNTQwaDE0My41YzEuOSA1NC4yIDkuMSAxMDUuNyAyMC43IDE1Mi42YTQ0NC4wNyA0NDQuMDcgMCAwMC04MS41IDU1LjlBMzczLjg2IDM3My44NiAwIDAxMTM3IDU0MHptMjI4LjcgMzE4LjVjLTM5LjctMTYuOC03NS44LTQwLTEwNy42LTY5LjIgMTguNS0xNS44IDM4LjQtMjkuNyA1OS40LTQxLjggMTUuNyA0NSAzNS44IDg0LjEgNTkuMiAxMTUuNC0zLjctMS40LTcuNC0yLjktMTEtNC40em0yOTIuNiAwYy0zLjcgMS41LTcuMyAzLTExIDQuNCAyMy40LTMxLjMgNDMuNS03MC40IDU5LjItMTE1LjQgMjEgMTIgNDAuOSAyNiA1OS40IDQxLjhhMzczLjgxIDM3My44MSAwIDAxLTEwNy42IDY5LjJ6In19XX0sbmFtZToiZ2xvYmFsIix0aGVtZToib3V0bGluZWQifSxBbnRkSWNvbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDg3NTkyKSxpY29uc19HbG9iYWxPdXRsaW5lZD1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoQW50ZEljb24uWiwoMCxlc21fZXh0ZW5kcy5aKSh7fSxwcm9wcyx7cmVmOnJlZixpY29uOmFzbl9HbG9iYWxPdXRsaW5lZH0pKX0pfSw3ODg2MDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBpY29uc19JbmZvQ2lyY2xlRmlsbGVkfX0pO3ZhciBlc21fZXh0ZW5kcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk3NDYwKSxyZWFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxhc25fSW5mb0NpcmNsZUZpbGxlZD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTMyIDY2NGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNDU2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2Mjcyem0tMzItMzQ0YTQ4LjAxIDQ4LjAxIDAgMDEwLTk2IDQ4LjAxIDQ4LjAxIDAgMDEwIDk2eiJ9fV19LG5hbWU6ImluZm8tY2lyY2xlIix0aGVtZToiZmlsbGVkIn0sQW50ZEljb249X193ZWJwYWNrX3JlcXVpcmVfXyg4NzU5MiksaWNvbnNfSW5mb0NpcmNsZUZpbGxlZD1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoQW50ZEljb24uWiwoMCxlc21fZXh0ZW5kcy5aKSh7fSxwcm9wcyx7cmVmOnJlZixpY29uOmFzbl9JbmZvQ2lyY2xlRmlsbGVkfSkpfSl9LDYxNzE6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gaWNvbnNfTGVmdE91dGxpbmVkfX0pO3ZhciBlc21fZXh0ZW5kcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk3NDYwKSxyZWFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxhc25fTGVmdE91dGxpbmVkPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03MjQgMjE4LjNWMTQxYzAtNi43LTcuNy0xMC40LTEyLjktNi4zTDI2MC4zIDQ4Ni44YTMxLjg2IDMxLjg2IDAgMDAwIDUwLjNsNDUwLjggMzUyLjFjNS4zIDQuMSAxMi45LjQgMTIuOS02LjN2LTc3LjNjMC00LjktMi4zLTkuNi02LjEtMTIuNmwtMzYwLTI4MSAzNjAtMjgxLjFjMy44LTMgNi4xLTcuNyA2LjEtMTIuNnoifX1dfSxuYW1lOiJsZWZ0Iix0aGVtZToib3V0bGluZWQifSxBbnRkSWNvbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDg3NTkyKSxpY29uc19MZWZ0T3V0bGluZWQ9cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KEFudGRJY29uLlosKDAsZXNtX2V4dGVuZHMuWikoe30scHJvcHMse3JlZjpyZWYsaWNvbjphc25fTGVmdE91dGxpbmVkfSkpfSl9LDUwODg4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGljb25zX0xvYWRpbmdPdXRsaW5lZH19KTt2YXIgZXNtX2V4dGVuZHM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzQ2MCkscmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksYXNuX0xvYWRpbmdPdXRsaW5lZD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiIwIDAgMTAyNCAxMDI0Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTg4IDU0OGMtMTkuOSAwLTM2LTE2LjEtMzYtMzYgMC01OS40LTExLjYtMTE3LTM0LjYtMTcxLjNhNDQwLjQ1IDQ0MC40NSAwIDAwLTk0LjMtMTM5LjkgNDM3LjcxIDQzNy43MSAwIDAwLTEzOS45LTk0LjNDNjI5IDgzLjYgNTcxLjQgNzIgNTEyIDcyYy0xOS45IDAtMzYtMTYuMS0zNi0zNnMxNi4xLTM2IDM2LTM2YzY5LjEgMCAxMzYuMiAxMy41IDE5OS4zIDQwLjNDNzcyLjMgNjYgODI3IDEwMyA4NzQgMTUwYzQ3IDQ3IDgzLjkgMTAxLjggMTA5LjcgMTYyLjcgMjYuNyA2My4xIDQwLjIgMTMwLjIgNDAuMiAxOTkuMy4xIDE5LjktMTYgMzYtMzUuOSAzNnoifX1dfSxuYW1lOiJsb2FkaW5nIix0aGVtZToib3V0bGluZWQifSxBbnRkSWNvbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDg3NTkyKSxpY29uc19Mb2FkaW5nT3V0bGluZWQ9cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KEFudGRJY29uLlosKDAsZXNtX2V4dGVuZHMuWikoe30scHJvcHMse3JlZjpyZWYsaWNvbjphc25fTG9hZGluZ091dGxpbmVkfSkpfSl9LDE4MDczOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGljb25zX1JpZ2h0T3V0bGluZWR9fSk7dmFyIGVzbV9leHRlbmRzPV9fd2VicGFja19yZXF1aXJlX18oOTc0NjApLHJlYWN0PV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLGFzbl9SaWdodE91dGxpbmVkPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik03NjUuNyA0ODYuOEwzMTQuOSAxMzQuN0E3Ljk3IDcuOTcgMCAwMDMwMiAxNDF2NzcuM2MwIDQuOSAyLjMgOS42IDYuMSAxMi42bDM2MCAyODEuMS0zNjAgMjgxLjFjLTMuOSAzLTYuMSA3LjctNi4xIDEyLjZWODgzYzAgNi43IDcuNyAxMC40IDEyLjkgNi4zbDQ1MC44LTM1Mi4xYTMxLjk2IDMxLjk2IDAgMDAwLTUwLjR6In19XX0sbmFtZToicmlnaHQiLHRoZW1lOiJvdXRsaW5lZCJ9LEFudGRJY29uPV9fd2VicGFja19yZXF1aXJlX18oODc1OTIpLGljb25zX1JpZ2h0T3V0bGluZWQ9cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KEFudGRJY29uLlosKDAsZXNtX2V4dGVuZHMuWikoe30scHJvcHMse3JlZjpyZWYsaWNvbjphc25fUmlnaHRPdXRsaW5lZH0pKX0pfSw2ODc5NTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBpY29uc19TZWFyY2hPdXRsaW5lZH19KTt2YXIgZXNtX2V4dGVuZHM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzQ2MCkscmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksYXNuX1NlYXJjaE91dGxpbmVkPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05MDkuNiA4NTQuNUw2NDkuOSA1OTQuOEM2OTAuMiA1NDIuNyA3MTIgNDc5IDcxMiA0MTJjMC04MC4yLTMxLjMtMTU1LjQtODcuOS0yMTIuMS01Ni42LTU2LjctMTMyLTg3LjktMjEyLjEtODcuOXMtMTU1LjUgMzEuMy0yMTIuMSA4Ny45QzE0My4yIDI1Ni41IDExMiAzMzEuOCAxMTIgNDEyYzAgODAuMSAzMS4zIDE1NS41IDg3LjkgMjEyLjFDMjU2LjUgNjgwLjggMzMxLjggNzEyIDQxMiA3MTJjNjcgMCAxMzAuNi0yMS44IDE4Mi43LTYybDI1OS43IDI1OS42YTguMiA4LjIgMCAwMDExLjYgMGw0My42LTQzLjVhOC4yIDguMiAwIDAwMC0xMS42ek01NzAuNCA1NzAuNEM1MjggNjEyLjcgNDcxLjggNjM2IDQxMiA2MzZzLTExNi0yMy4zLTE1OC40LTY1LjZDMjExLjMgNTI4IDE4OCA0NzEuOCAxODggNDEyczIzLjMtMTE2LjEgNjUuNi0xNTguNEMyOTYgMjExLjMgMzUyLjIgMTg4IDQxMiAxODhzMTE2LjEgMjMuMiAxNTguNCA2NS42UzYzNiAzNTIuMiA2MzYgNDEycy0yMy4zIDExNi4xLTY1LjYgMTU4LjR6In19XX0sbmFtZToic2VhcmNoIix0aGVtZToib3V0bGluZWQifSxBbnRkSWNvbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDg3NTkyKSxpY29uc19TZWFyY2hPdXRsaW5lZD1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoQW50ZEljb24uWiwoMCxlc21fZXh0ZW5kcy5aKSh7fSxwcm9wcyx7cmVmOnJlZixpY29uOmFzbl9TZWFyY2hPdXRsaW5lZH0pKX0pfSwxNzU1MTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpc0RPTShub2RlKXtyZXR1cm4gbm9kZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50fHxub2RlIGluc3RhbmNlb2YgU1ZHRWxlbWVudH1fX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7U2g6ZnVuY3Rpb24oKXtyZXR1cm4gaXNET019fSksX193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksX193ZWJwYWNrX3JlcXVpcmVfXyg3MzkzNSl9LDM0ODk6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19leHBvcnRzX18uWj1mdW5jdGlvbihlbGVtZW50KXtpZighZWxlbWVudClyZXR1cm4hMTtpZihlbGVtZW50IGluc3RhbmNlb2YgRWxlbWVudCl7aWYoZWxlbWVudC5vZmZzZXRQYXJlbnQpcmV0dXJuITA7aWYoZWxlbWVudC5nZXRCQm94KXt2YXIgX2dldEJCb3g9ZWxlbWVudC5nZXRCQm94KCksd2lkdGg9X2dldEJCb3gud2lkdGgsaGVpZ2h0PV9nZXRCQm94LmhlaWdodDtpZih3aWR0aHx8aGVpZ2h0KXJldHVybiEwfWlmKGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KXt2YXIgX2VsZW1lbnQkZ2V0Qm91bmRpbmdDPWVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksX3dpZHRoPV9lbGVtZW50JGdldEJvdW5kaW5nQy53aWR0aCxfaGVpZ2h0PV9lbGVtZW50JGdldEJvdW5kaW5nQy5oZWlnaHQ7aWYoX3dpZHRofHxfaGVpZ2h0KXJldHVybiEwfX1yZXR1cm4hMX19LDkxNzM2OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGdldFJvb3QoZWxlKXt2YXIgX2VsZSRnZXRSb290Tm9kZTtyZXR1cm4gbnVsbD09ZWxlfHxudWxsPT09KF9lbGUkZ2V0Um9vdE5vZGU9ZWxlLmdldFJvb3ROb2RlKXx8dm9pZCAwPT09X2VsZSRnZXRSb290Tm9kZT92b2lkIDA6X2VsZSRnZXRSb290Tm9kZS5jYWxsKGVsZSl9ZnVuY3Rpb24gZ2V0U2hhZG93Um9vdChlbGUpe3JldHVybiBnZXRSb290KGVsZSkgaW5zdGFuY2VvZiBTaGFkb3dSb290P2dldFJvb3QoZWxlKTpudWxsfV9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtBOmZ1bmN0aW9uKCl7cmV0dXJuIGdldFNoYWRvd1Jvb3R9fSl9LDc0NDMwOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHVzZUV2ZW50fX0pO3ZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpO2Z1bmN0aW9uIHVzZUV2ZW50KGNhbGxiYWNrKXt2YXIgZm5SZWY9cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VSZWYoKTtyZXR1cm4gZm5SZWYuY3VycmVudD1jYWxsYmFjayxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnVzZUNhbGxiYWNrKGZ1bmN0aW9uKCl7Zm9yKHZhciBfZm5SZWYkY3VycmVudCxfbGVuPWFyZ3VtZW50cy5sZW5ndGgsYXJncz1BcnJheShfbGVuKSxfa2V5PTA7X2tleTxfbGVuO19rZXkrKylhcmdzW19rZXldPWFyZ3VtZW50c1tfa2V5XTtyZXR1cm4gbnVsbD09PShfZm5SZWYkY3VycmVudD1mblJlZi5jdXJyZW50KXx8dm9pZCAwPT09X2ZuUmVmJGN1cnJlbnQ/dm9pZCAwOl9mblJlZiRjdXJyZW50LmNhbGwuYXBwbHkoX2ZuUmVmJGN1cnJlbnQsW2ZuUmVmXS5jb25jYXQoYXJncykpfSxbXSl9fSwzMDYxNDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsbGVuKXsobnVsbD09bGVufHxsZW4+YXJyLmxlbmd0aCkmJihsZW49YXJyLmxlbmd0aCk7Zm9yKHZhciBpPTAsYXJyMj1BcnJheShsZW4pO2k8bGVuO2krKylhcnIyW2ldPWFycltpXTtyZXR1cm4gYXJyMn1fX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiB1c2VJZH19KTt2YXIgZXNtX3R5cGVvZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDk4NzI1KTtmdW5jdGlvbiBvd25LZXlzKG9iamVjdCxlbnVtZXJhYmxlT25seSl7dmFyIGtleXM9T2JqZWN0LmtleXMob2JqZWN0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgc3ltYm9scz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7ZW51bWVyYWJsZU9ubHkmJihzeW1ib2xzPXN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uKHN5bSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LHN5bSkuZW51bWVyYWJsZX0pKSxrZXlzLnB1c2guYXBwbHkoa2V5cyxzeW1ib2xzKX1yZXR1cm4ga2V5c312YXIgcmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCkscmVhY3RfbmFtZXNwYWNlT2JqZWN0PV9fd2VicGFja19yZXF1aXJlX18udChyZWFjdCwyKSx1dWlkPTAsdXNlT3JpZ2luSWQ9ZnVuY3Rpb24odGFyZ2V0KXtmb3IodmFyIGk9MTtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXt2YXIgc291cmNlPW51bGwhPWFyZ3VtZW50c1tpXT9hcmd1bWVudHNbaV06e307aSUyP293bktleXMoT2JqZWN0KHNvdXJjZSksITApLmZvckVhY2goZnVuY3Rpb24oa2V5KXshZnVuY3Rpb24ob2JqLGtleSx2YWx1ZSl7dmFyIGtleTE7a2V5MT1mdW5jdGlvbihpbnB1dCxoaW50KXtpZigib2JqZWN0IiE9PSgwLGVzbV90eXBlb2YuWikoaW5wdXQpfHxudWxsPT09aW5wdXQpcmV0dXJuIGlucHV0O3ZhciBwcmltPWlucHV0W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cHJpbSl7dmFyIHJlcz1wcmltLmNhbGwoaW5wdXQsaGludHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9PSgwLGVzbV90eXBlb2YuWikocmVzKSlyZXR1cm4gcmVzO3Rocm93IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1oaW50P1N0cmluZzpOdW1iZXIpKGlucHV0KX0oa2V5LCJzdHJpbmciKSwoa2V5PSJzeW1ib2wiPT09KDAsZXNtX3R5cGVvZi5aKShrZXkxKT9rZXkxOlN0cmluZyhrZXkxKSlpbiBvYmo/T2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaixrZXkse3ZhbHVlOnZhbHVlLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6b2JqW2tleV09dmFsdWV9KHRhcmdldCxrZXksc291cmNlW2tleV0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpOm93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24oa2V5KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LGtleSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSxrZXkpKX0pfXJldHVybiB0YXJnZXR9KHt9LHJlYWN0X25hbWVzcGFjZU9iamVjdCkudXNlSWQsdXNlSWQ9dXNlT3JpZ2luSWQ/ZnVuY3Rpb24oaWQpe3ZhciByZWFjdElkPXVzZU9yaWdpbklkKCk7cmV0dXJuIGlkfHxyZWFjdElkfTpmdW5jdGlvbihpZCl7dmFyIGFycixfUmVhY3QkdXNlU3RhdGUyPWZ1bmN0aW9uKGFycil7aWYoQXJyYXkuaXNBcnJheShhcnIpKXJldHVybiBhcnJ9KGFycj1yZWFjdC51c2VTdGF0ZSgic3NyLWlkIikpfHxmdW5jdGlvbihhcnIsaSl7dmFyIF9pPW51bGw9PWFycj9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZhcnJbU3ltYm9sLml0ZXJhdG9yXXx8YXJyWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9X2kpe3ZhciBfcyxfZSxfeCxfcixfYXJyPVtdLF9uPSEwLF9kPSExO3RyeXtpZihfeD0oX2k9X2kuY2FsbChhcnIpKS5uZXh0LDA9PT1pKXtpZihPYmplY3QoX2kpIT09X2kpcmV0dXJuO19uPSExfWVsc2UgZm9yKDshKF9uPShfcz1feC5jYWxsKF9pKSkuZG9uZSkmJihfYXJyLnB1c2goX3MudmFsdWUpLF9hcnIubGVuZ3RoIT09aSk7X249ITApO31jYXRjaChlcnIpe19kPSEwLF9lPWVycn1maW5hbGx5e3RyeXtpZighX24mJm51bGwhPV9pLnJldHVybiYmKF9yPV9pLnJldHVybigpLE9iamVjdChfcikhPT1fcikpcmV0dXJufWZpbmFsbHl7aWYoX2QpdGhyb3cgX2V9fXJldHVybiBfYXJyfX0oYXJyLDIpfHxmdW5jdGlvbihvLG1pbkxlbil7aWYobyl7aWYoInN0cmluZyI9PXR5cGVvZiBvKXJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLG1pbkxlbik7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09biYmby5jb25zdHJ1Y3RvciYmKG49by5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bilyZXR1cm4gQXJyYXkuZnJvbShvKTtpZigiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLG1pbkxlbil9fShhcnIsMil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpLGlubmVySWQ9X1JlYWN0JHVzZVN0YXRlMlswXSxzZXRJbm5lcklkPV9SZWFjdCR1c2VTdGF0ZTJbMV07cmV0dXJuKHJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbigpe3ZhciBuZXh0SWQ9dXVpZDt1dWlkKz0xLHNldElubmVySWQoInJjX3VuaXF1ZV8iLmNvbmNhdChuZXh0SWQpKX0sW10pLGlkKT9pZDppbm5lcklkfX0sNzU0ODc6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gaG9va3NfdXNlTGF5b3V0RWZmZWN0fX0pO3ZhciByZWFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSx1c2VJbnRlcm5hbExheW91dEVmZmVjdD0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93LmRvY3VtZW50JiZ3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudD9yZWFjdC51c2VMYXlvdXRFZmZlY3Q6cmVhY3QudXNlRWZmZWN0LGhvb2tzX3VzZUxheW91dEVmZmVjdD1mdW5jdGlvbihjYWxsYmFjayxkZXBzKXt2YXIgZmlyc3RNb3VudFJlZj1yZWFjdC51c2VSZWYoITApO3VzZUludGVybmFsTGF5b3V0RWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIGNhbGxiYWNrKGZpcnN0TW91bnRSZWYuY3VycmVudCl9LGRlcHMpLHVzZUludGVybmFsTGF5b3V0RWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIGZpcnN0TW91bnRSZWYuY3VycmVudD0hMSxmdW5jdGlvbigpe2ZpcnN0TW91bnRSZWYuY3VycmVudD0hMH19LFtdKX19LDMzMDM5OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfZXhwb3J0c19fLlo9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIG5hdmlnYXRvcnx8InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cpcmV0dXJuITE7dmFyIGFnZW50PW5hdmlnYXRvci51c2VyQWdlbnR8fG5hdmlnYXRvci52ZW5kb3J8fHdpbmRvdy5vcGVyYTtyZXR1cm4vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlyaXN8a2luZGxlfGxnZSB8bWFlbW98bWlkcHxtbXB8bW9iaWxlLitmaXJlZm94fG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyBjZXx4ZGF8eGlpbm98YW5kcm9pZHxpcGFkfHBsYXlib29rfHNpbGsvaS50ZXN0KGFnZW50KXx8LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHMtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfC1tfHIgfHMgKXxhdmFufGJlKGNrfGxsfG5xKXxiaShsYnxyZCl8YmwoYWN8YXopfGJyKGV8dil3fGJ1bWJ8YnctKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbS18Y2VsbHxjaHRtfGNsZGN8Y21kLXxjbyhtcHxuZCl8Y3Jhd3xkYShpdHxsbHxuZyl8ZGJ0ZXxkYy1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoLXxfKXxnMSB1fGc1NjB8Z2VuZXxnZi01fGctbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkLShtfHB8dCl8aGVpLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzLWN8aHQoYygtfCB8X3xhfGd8cHxzfHQpfHRwKXxodShhd3x0Yyl8aS0oMjB8Z298bWEpfGkyMzB8aWFjKCB8LXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Yy18a3lvKGN8ayl8bGUobm98eGkpfGxnKCBnfFwvKGt8bHx1KXw1MHw1NHwtW2Etd10pfGxpYnd8bHlueHxtMS13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtLWNyfG1lKHJjfHJpKXxtaShvOHxvYXx0cyl8bW1lZnxtbygwMXwwMnxiaXxkZXxkb3x0KC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKS18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfC0oWzEtOF18YykpfHBoaWx8cGlyZXxwbChheXx1Yyl8cG4tMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0LWd8cWEtYXxxYygwN3wxMnwyMXwzMnw2MHwtWzItN118aS0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGgtfG9vfHAtKXxzZGtcL3xzZShjKC18MHwxKXw0N3xtY3xuZHxyaSl8c2doLXxzaGFyfHNpZSgtfG0pfHNrLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aC18di18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2wtfHRkZy18dGVsKGl8bSl8dGltLXx0LW1vfHRvKHBsfHNoKXx0cyg3MHxtLXxtM3xtNSl8dHgtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYygtfCApfHdlYmN8d2hpdHx3aShnIHxuY3xudyl8d21sYnx3b251fHg3MDB8eWFzLXx5b3VyfHpldG98enRlLS9pLnRlc3QobnVsbD09YWdlbnQ/dm9pZCAwOmFnZW50LnN1YnN0cigwLDQpKX19LDM2OTc0OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtzUTpmdW5jdGlvbigpe3JldHVybiBjb21wb3NlUmVmfSxtSDpmdW5jdGlvbigpe3JldHVybiBmaWxsUmVmfSxDNDpmdW5jdGlvbigpe3JldHVybiBnZXROb2RlUmVmfSxZcjpmdW5jdGlvbigpe3JldHVybiBzdXBwb3J0UmVmfSx4MTpmdW5jdGlvbigpe3JldHVybiB1c2VDb21wb3NlUmVmfX0pO3ZhciBlc21fdHlwZW9mPV9fd2VicGFja19yZXF1aXJlX18oOTg3MjUpLHJlYWN0PV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLHJlYWN0X2lzPV9fd2VicGFja19yZXF1aXJlX18oNTI0ODEpLFJFQUNUX0VMRU1FTlRfVFlQRV8xOD1TeW1ib2wuZm9yKCJyZWFjdC5lbGVtZW50IiksUkVBQ1RfRUxFTUVOVF9UWVBFXzE5PVN5bWJvbC5mb3IoInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50IiksUkVBQ1RfRlJBR01FTlRfVFlQRT1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLFJlYWN0TWFqb3JWZXJzaW9uPU51bWJlcihyZWFjdC52ZXJzaW9uLnNwbGl0KCIuIilbMF0pLGZpbGxSZWY9ZnVuY3Rpb24ocmVmLG5vZGUpeyJmdW5jdGlvbiI9PXR5cGVvZiByZWY/cmVmKG5vZGUpOiJvYmplY3QiPT09KDAsZXNtX3R5cGVvZi5aKShyZWYpJiZyZWYmJiJjdXJyZW50ImluIHJlZiYmKHJlZi5jdXJyZW50PW5vZGUpfSxjb21wb3NlUmVmPWZ1bmN0aW9uKCl7Zm9yKHZhciBfbGVuPWFyZ3VtZW50cy5sZW5ndGgscmVmcz1BcnJheShfbGVuKSxfa2V5PTA7X2tleTxfbGVuO19rZXkrKylyZWZzW19rZXldPWFyZ3VtZW50c1tfa2V5XTt2YXIgcmVmTGlzdD1yZWZzLmZpbHRlcihCb29sZWFuKTtyZXR1cm4gcmVmTGlzdC5sZW5ndGg8PTE/cmVmTGlzdFswXTpmdW5jdGlvbihub2RlKXtyZWZzLmZvckVhY2goZnVuY3Rpb24ocmVmKXtmaWxsUmVmKHJlZixub2RlKX0pfX0sdXNlQ29tcG9zZVJlZj1mdW5jdGlvbigpe2Zvcih2YXIgcHJldixjYWNoZVJlZixfbGVuMj1hcmd1bWVudHMubGVuZ3RoLHJlZnM9QXJyYXkoX2xlbjIpLF9rZXkyPTA7X2tleTI8X2xlbjI7X2tleTIrKylyZWZzW19rZXkyXT1hcmd1bWVudHNbX2tleTJdO3JldHVybighKCJ2YWx1ZSJpbihjYWNoZVJlZj1yZWFjdC51c2VSZWYoe30pKS5jdXJyZW50KXx8KHByZXY9Y2FjaGVSZWYuY3VycmVudC5jb25kaXRpb24pLmxlbmd0aCE9PXJlZnMubGVuZ3RofHxwcmV2LmV2ZXJ5KGZ1bmN0aW9uKHJlZixpKXtyZXR1cm4gcmVmIT09cmVmc1tpXX0pKSYmKGNhY2hlUmVmLmN1cnJlbnQudmFsdWU9Y29tcG9zZVJlZi5hcHBseSh2b2lkIDAscmVmcyksY2FjaGVSZWYuY3VycmVudC5jb25kaXRpb249cmVmcyksY2FjaGVSZWYuY3VycmVudC52YWx1ZX0sc3VwcG9ydFJlZj1mdW5jdGlvbihub2RlT3JDb21wb25lbnQpe2lmKCFub2RlT3JDb21wb25lbnQpcmV0dXJuITE7aWYoaXNSZWFjdEVsZW1lbnQobm9kZU9yQ29tcG9uZW50KSYmUmVhY3RNYWpvclZlcnNpb24+PTE5KXJldHVybiEwO3ZhciBfdHlwZSRwcm90b3R5cGUsX25vZGVPckNvbXBvbmVudCRwcm90LHR5cGU9KDAscmVhY3RfaXMuaXNNZW1vKShub2RlT3JDb21wb25lbnQpP25vZGVPckNvbXBvbmVudC50eXBlLnR5cGU6bm9kZU9yQ29tcG9uZW50LnR5cGU7cmV0dXJuKCJmdW5jdGlvbiIhPXR5cGVvZiB0eXBlfHxudWxsIT09KF90eXBlJHByb3RvdHlwZT10eXBlLnByb3RvdHlwZSkmJnZvaWQgMCE9PV90eXBlJHByb3RvdHlwZSYmISFfdHlwZSRwcm90b3R5cGUucmVuZGVyfHx0eXBlLiQkdHlwZW9mPT09cmVhY3RfaXMuRm9yd2FyZFJlZikmJigiZnVuY3Rpb24iIT10eXBlb2Ygbm9kZU9yQ29tcG9uZW50fHxudWxsIT09KF9ub2RlT3JDb21wb25lbnQkcHJvdD1ub2RlT3JDb21wb25lbnQucHJvdG90eXBlKSYmdm9pZCAwIT09X25vZGVPckNvbXBvbmVudCRwcm90JiYhIV9ub2RlT3JDb21wb25lbnQkcHJvdC5yZW5kZXJ8fG5vZGVPckNvbXBvbmVudC4kJHR5cGVvZj09PXJlYWN0X2lzLkZvcndhcmRSZWYpfTtmdW5jdGlvbiBpc1JlYWN0RWxlbWVudChub2RlKXtyZXR1cm4oMCxyZWFjdC5pc1ZhbGlkRWxlbWVudCkobm9kZSkmJiEobm9kZSYmIm9iamVjdCI9PT0oMCxlc21fdHlwZW9mLlopKG5vZGUpJiYobm9kZS4kJHR5cGVvZj09PVJFQUNUX0VMRU1FTlRfVFlQRV8xOHx8bm9kZS4kJHR5cGVvZj09PVJFQUNUX0VMRU1FTlRfVFlQRV8xOSkmJm5vZGUudHlwZT09PVJFQUNUX0ZSQUdNRU5UX1RZUEUpfXZhciBnZXROb2RlUmVmPWZ1bmN0aW9uKG5vZGUpe3JldHVybiBub2RlJiZpc1JlYWN0RWxlbWVudChub2RlKT9ub2RlLnByb3BzLnByb3BlcnR5SXNFbnVtZXJhYmxlKCJyZWYiKT9ub2RlLnByb3BzLnJlZjpub2RlLnJlZjpudWxsfX0sNzYyOTQ6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7dmFyIHdhcm5lZD17fSxwcmVXYXJuaW5nRm5zPVtdO2Z1bmN0aW9uIHdhcm5pbmcodmFsaWQsbWVzc2FnZSl7fWZ1bmN0aW9uIG5vdGUodmFsaWQsbWVzc2FnZSl7fWZ1bmN0aW9uIGNhbGwobWV0aG9kLHZhbGlkLG1lc3NhZ2Upe3ZhbGlkfHx3YXJuZWRbbWVzc2FnZV18fChtZXRob2QoITEsbWVzc2FnZSksd2FybmVkW21lc3NhZ2VdPSEwKX1mdW5jdGlvbiB3YXJuaW5nT25jZSh2YWxpZCxtZXNzYWdlKXtjYWxsKHdhcm5pbmcsdmFsaWQsbWVzc2FnZSl9d2FybmluZ09uY2UucHJlTWVzc2FnZT1mdW5jdGlvbihmbil7cHJlV2FybmluZ0Zucy5wdXNoKGZuKX0sd2FybmluZ09uY2UucmVzZXRXYXJuZWQ9ZnVuY3Rpb24oKXt3YXJuZWQ9e319LHdhcm5pbmdPbmNlLm5vdGVPbmNlPWZ1bmN0aW9uKHZhbGlkLG1lc3NhZ2Upe2NhbGwobm90ZSx2YWxpZCxtZXNzYWdlKX19LDk1MTE1OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtWOTpmdW5jdGlvbigpe3JldHVybiBTdHlsZVByb3ZpZGVyfX0pO3ZhciByZWFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxyZWFjdF9uYW1lc3BhY2VPYmplY3Q9X193ZWJwYWNrX3JlcXVpcmVfXy50KHJlYWN0LDIpLG9iamVjdFNwcmVhZDI9X193ZWJwYWNrX3JlcXVpcmVfXygxNDEzKSxvYmplY3RXaXRob3V0UHJvcGVydGllcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDkxKSx1c2VNZW1vPV9fd2VicGFja19yZXF1aXJlX18oNTY5ODIpLGlzRXF1YWw9X193ZWJwYWNrX3JlcXVpcmVfXyg5MTg4MSksY2xhc3NDYWxsQ2hlY2s9X193ZWJwYWNrX3JlcXVpcmVfXygxNTY3MSksY3JlYXRlQ2xhc3M9X193ZWJwYWNrX3JlcXVpcmVfXyg0MzE0NCksZGVmaW5lUHJvcGVydHk9X193ZWJwYWNrX3JlcXVpcmVfXyg0OTQyKSxFbnRpdHk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBFbnRpdHkoaW5zdGFuY2VJZCl7KDAsY2xhc3NDYWxsQ2hlY2suWikodGhpcyxFbnRpdHkpLCgwLGRlZmluZVByb3BlcnR5LlopKHRoaXMsImluc3RhbmNlSWQiLHZvaWQgMCksKDAsZGVmaW5lUHJvcGVydHkuWikodGhpcywiY2FjaGUiLG5ldyBNYXApLHRoaXMuaW5zdGFuY2VJZD1pbnN0YW5jZUlkfXJldHVybigwLGNyZWF0ZUNsYXNzLlopKEVudGl0eSxbe2tleToiZ2V0Iix2YWx1ZTpmdW5jdGlvbihrZXlzKXtyZXR1cm4gdGhpcy5jYWNoZS5nZXQoa2V5cy5qb2luKCIlIikpfHxudWxsfX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbihrZXlzLHZhbHVlRm4pe3ZhciBwYXRoPWtleXMuam9pbigiJSIpLG5leHRWYWx1ZT12YWx1ZUZuKHRoaXMuY2FjaGUuZ2V0KHBhdGgpKTtudWxsPT09bmV4dFZhbHVlP3RoaXMuY2FjaGUuZGVsZXRlKHBhdGgpOnRoaXMuY2FjaGUuc2V0KHBhdGgsbmV4dFZhbHVlKX19XSksRW50aXR5fSgpLF9leGNsdWRlZD1bImNoaWxkcmVuIl0sU3R5bGVDb250ZXh0X0FUVFJfTUFSSz0iZGF0YS1jc3MtaGFzaCIsU3R5bGVDb250ZXh0X0NTU19JTl9KU19JTlNUQU5DRT0iX19jc3NpbmpzX2luc3RhbmNlX18iO2Z1bmN0aW9uIGNyZWF0ZUNhY2hlKCl7dmFyIGNzc2luanNJbnN0YW5jZUlkPU1hdGgucmFuZG9tKCkudG9TdHJpbmcoMTIpLnNsaWNlKDIpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50LmhlYWQmJmRvY3VtZW50LmJvZHkpe3ZhciBzdHlsZXM9ZG9jdW1lbnQuYm9keS5xdWVyeVNlbGVjdG9yQWxsKCJzdHlsZVsiLmNvbmNhdChTdHlsZUNvbnRleHRfQVRUUl9NQVJLLCJdIikpfHxbXSxmaXJzdENoaWxkPWRvY3VtZW50LmhlYWQuZmlyc3RDaGlsZDtBcnJheS5mcm9tKHN0eWxlcykuZm9yRWFjaChmdW5jdGlvbihzdHlsZSl7c3R5bGVbU3R5bGVDb250ZXh0X0NTU19JTl9KU19JTlNUQU5DRV09c3R5bGVbU3R5bGVDb250ZXh0X0NTU19JTl9KU19JTlNUQU5DRV18fGNzc2luanNJbnN0YW5jZUlkLHN0eWxlW1N0eWxlQ29udGV4dF9DU1NfSU5fSlNfSU5TVEFOQ0VdPT09Y3NzaW5qc0luc3RhbmNlSWQmJmRvY3VtZW50LmhlYWQuaW5zZXJ0QmVmb3JlKHN0eWxlLGZpcnN0Q2hpbGQpfSk7dmFyIHN0eWxlSGFzaD17fTtBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlWyIuY29uY2F0KFN0eWxlQ29udGV4dF9BVFRSX01BUkssIl0iKSkpLmZvckVhY2goZnVuY3Rpb24oc3R5bGUpe3ZhciBfc3R5bGUkcGFyZW50Tm9kZSxoYXNoPXN0eWxlLmdldEF0dHJpYnV0ZShTdHlsZUNvbnRleHRfQVRUUl9NQVJLKTtzdHlsZUhhc2hbaGFzaF0/c3R5bGVbU3R5bGVDb250ZXh0X0NTU19JTl9KU19JTlNUQU5DRV09PT1jc3NpbmpzSW5zdGFuY2VJZCYmKG51bGw9PT0oX3N0eWxlJHBhcmVudE5vZGU9c3R5bGUucGFyZW50Tm9kZSl8fHZvaWQgMD09PV9zdHlsZSRwYXJlbnROb2RlfHxfc3R5bGUkcGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzdHlsZSkpOnN0eWxlSGFzaFtoYXNoXT0hMH0pfXJldHVybiBuZXcgRW50aXR5KGNzc2luanNJbnN0YW5jZUlkKX12YXIgU3R5bGVDb250ZXh0X1N0eWxlQ29udGV4dD1yZWFjdC5jcmVhdGVDb250ZXh0KHtoYXNoUHJpb3JpdHk6ImxvdyIsY2FjaGU6Y3JlYXRlQ2FjaGUoKSxkZWZhdWx0Q2FjaGU6ITB9KSxTdHlsZVByb3ZpZGVyPWZ1bmN0aW9uKHByb3BzKXt2YXIgY2hpbGRyZW49cHJvcHMuY2hpbGRyZW4scmVzdFByb3BzPSgwLG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLlopKHByb3BzLF9leGNsdWRlZCkscGFyZW50Q29udGV4dD1yZWFjdC51c2VDb250ZXh0KFN0eWxlQ29udGV4dF9TdHlsZUNvbnRleHQpLGNvbnRleHQ9KDAsdXNlTWVtby5aKShmdW5jdGlvbigpe3ZhciBtZXJnZWRDb250ZXh0PSgwLG9iamVjdFNwcmVhZDIuWikoe30scGFyZW50Q29udGV4dCk7T2JqZWN0LmtleXMocmVzdFByb3BzKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSl7dmFyIHZhbHVlPXJlc3RQcm9wc1trZXldO3ZvaWQgMCE9PXJlc3RQcm9wc1trZXldJiYobWVyZ2VkQ29udGV4dFtrZXldPXZhbHVlKX0pO3ZhciBjYWNoZT1yZXN0UHJvcHMuY2FjaGU7cmV0dXJuIG1lcmdlZENvbnRleHQuY2FjaGU9bWVyZ2VkQ29udGV4dC5jYWNoZXx8Y3JlYXRlQ2FjaGUoKSxtZXJnZWRDb250ZXh0LmRlZmF1bHRDYWNoZT0hY2FjaGUmJnBhcmVudENvbnRleHQuZGVmYXVsdENhY2hlLG1lcmdlZENvbnRleHR9LFtwYXJlbnRDb250ZXh0LHJlc3RQcm9wc10sZnVuY3Rpb24ocHJldixuZXh0KXtyZXR1cm4hKDAsaXNFcXVhbC5aKShwcmV2WzBdLG5leHRbMF0sITApfHwhKDAsaXNFcXVhbC5aKShwcmV2WzFdLG5leHRbMV0sITApfSk7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoU3R5bGVDb250ZXh0X1N0eWxlQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6Y29udGV4dH0sY2hpbGRyZW4pfSxEb21fY2FuVXNlRG9tPV9fd2VicGFja19yZXF1aXJlX18oOTg5MjQpO19fd2VicGFja19yZXF1aXJlX18oNDQ5NTgpO3ZhciBzbGljZWRUb0FycmF5PV9fd2VicGFja19yZXF1aXJlX18oOTc2ODUpLFRoZW1lQ2FjaGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBUaGVtZUNhY2hlKCl7KDAsY2xhc3NDYWxsQ2hlY2suWikodGhpcyxUaGVtZUNhY2hlKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKSh0aGlzLCJjYWNoZSIsdm9pZCAwKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKSh0aGlzLCJrZXlzIix2b2lkIDApLCgwLGRlZmluZVByb3BlcnR5LlopKHRoaXMsImNhY2hlQ2FsbFRpbWVzIix2b2lkIDApLHRoaXMuY2FjaGU9bmV3IE1hcCx0aGlzLmtleXM9W10sdGhpcy5jYWNoZUNhbGxUaW1lcz0wfXJldHVybigwLGNyZWF0ZUNsYXNzLlopKFRoZW1lQ2FjaGUsW3trZXk6InNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMua2V5cy5sZW5ndGh9fSx7a2V5OiJpbnRlcm5hbEdldCIsdmFsdWU6ZnVuY3Rpb24oZGVyaXZhdGl2ZU9wdGlvbil7dmFyIF9jYWNoZTIsX2NhY2hlMyx1cGRhdGVDYWxsVGltZXM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxjYWNoZT17bWFwOnRoaXMuY2FjaGV9O3JldHVybiBkZXJpdmF0aXZlT3B0aW9uLmZvckVhY2goZnVuY3Rpb24oZGVyaXZhdGl2ZSl7aWYoY2FjaGUpe3ZhciBfY2FjaGU7Y2FjaGU9bnVsbD09PShfY2FjaGU9Y2FjaGUpfHx2b2lkIDA9PT1fY2FjaGV8fG51bGw9PT0oX2NhY2hlPV9jYWNoZS5tYXApfHx2b2lkIDA9PT1fY2FjaGU/dm9pZCAwOl9jYWNoZS5nZXQoZGVyaXZhdGl2ZSl9ZWxzZSBjYWNoZT12b2lkIDB9KSxudWxsIT09KF9jYWNoZTI9Y2FjaGUpJiZ2b2lkIDAhPT1fY2FjaGUyJiZfY2FjaGUyLnZhbHVlJiZ1cGRhdGVDYWxsVGltZXMmJihjYWNoZS52YWx1ZVsxXT10aGlzLmNhY2hlQ2FsbFRpbWVzKyspLG51bGw9PT0oX2NhY2hlMz1jYWNoZSl8fHZvaWQgMD09PV9jYWNoZTM/dm9pZCAwOl9jYWNoZTMudmFsdWV9fSx7a2V5OiJnZXQiLHZhbHVlOmZ1bmN0aW9uKGRlcml2YXRpdmVPcHRpb24pe3ZhciBfdGhpcyRpbnRlcm5hbEdldDtyZXR1cm4gbnVsbD09PShfdGhpcyRpbnRlcm5hbEdldD10aGlzLmludGVybmFsR2V0KGRlcml2YXRpdmVPcHRpb24sITApKXx8dm9pZCAwPT09X3RoaXMkaW50ZXJuYWxHZXQ/dm9pZCAwOl90aGlzJGludGVybmFsR2V0WzBdfX0se2tleToiaGFzIix2YWx1ZTpmdW5jdGlvbihkZXJpdmF0aXZlT3B0aW9uKXtyZXR1cm4hIXRoaXMuaW50ZXJuYWxHZXQoZGVyaXZhdGl2ZU9wdGlvbil9fSx7a2V5OiJzZXQiLHZhbHVlOmZ1bmN0aW9uKGRlcml2YXRpdmVPcHRpb24sdmFsdWUpe3ZhciBfdGhpcz10aGlzO2lmKCF0aGlzLmhhcyhkZXJpdmF0aXZlT3B0aW9uKSl7aWYodGhpcy5zaXplKCkrMT5UaGVtZUNhY2hlLk1BWF9DQUNIRV9TSVpFK1RoZW1lQ2FjaGUuTUFYX0NBQ0hFX09GRlNFVCl7dmFyIF90aGlzJGtleXMkcmVkdWNlPXRoaXMua2V5cy5yZWR1Y2UoZnVuY3Rpb24ocmVzdWx0LGtleSl7dmFyIGNhbGxUaW1lcz0oMCxzbGljZWRUb0FycmF5LlopKHJlc3VsdCwyKVsxXTtyZXR1cm4gX3RoaXMuaW50ZXJuYWxHZXQoa2V5KVsxXTxjYWxsVGltZXM/W2tleSxfdGhpcy5pbnRlcm5hbEdldChrZXkpWzFdXTpyZXN1bHR9LFt0aGlzLmtleXNbMF0sdGhpcy5jYWNoZUNhbGxUaW1lc10pLHRhcmdldEtleT0oMCxzbGljZWRUb0FycmF5LlopKF90aGlzJGtleXMkcmVkdWNlLDEpWzBdO3RoaXMuZGVsZXRlKHRhcmdldEtleSl9dGhpcy5rZXlzLnB1c2goZGVyaXZhdGl2ZU9wdGlvbil9dmFyIGNhY2hlPXRoaXMuY2FjaGU7ZGVyaXZhdGl2ZU9wdGlvbi5mb3JFYWNoKGZ1bmN0aW9uKGRlcml2YXRpdmUsaW5kZXgpe2lmKGluZGV4PT09ZGVyaXZhdGl2ZU9wdGlvbi5sZW5ndGgtMSljYWNoZS5zZXQoZGVyaXZhdGl2ZSx7dmFsdWU6W3ZhbHVlLF90aGlzLmNhY2hlQ2FsbFRpbWVzKytdfSk7ZWxzZXt2YXIgY2FjaGVWYWx1ZT1jYWNoZS5nZXQoZGVyaXZhdGl2ZSk7Y2FjaGVWYWx1ZT9jYWNoZVZhbHVlLm1hcHx8KGNhY2hlVmFsdWUubWFwPW5ldyBNYXApOmNhY2hlLnNldChkZXJpdmF0aXZlLHttYXA6bmV3IE1hcH0pLGNhY2hlPWNhY2hlLmdldChkZXJpdmF0aXZlKS5tYXB9fSl9fSx7a2V5OiJkZWxldGVCeVBhdGgiLHZhbHVlOmZ1bmN0aW9uKGN1cnJlbnRDYWNoZSxkZXJpdmF0aXZlcyl7dmFyIF9jYWNoZSR2YWx1ZSxjYWNoZT1jdXJyZW50Q2FjaGUuZ2V0KGRlcml2YXRpdmVzWzBdKTtpZigxPT09ZGVyaXZhdGl2ZXMubGVuZ3RoKXJldHVybiBjYWNoZS5tYXA/Y3VycmVudENhY2hlLnNldChkZXJpdmF0aXZlc1swXSx7bWFwOmNhY2hlLm1hcH0pOmN1cnJlbnRDYWNoZS5kZWxldGUoZGVyaXZhdGl2ZXNbMF0pLG51bGw9PT0oX2NhY2hlJHZhbHVlPWNhY2hlLnZhbHVlKXx8dm9pZCAwPT09X2NhY2hlJHZhbHVlP3ZvaWQgMDpfY2FjaGUkdmFsdWVbMF07dmFyIHJlc3VsdD10aGlzLmRlbGV0ZUJ5UGF0aChjYWNoZS5tYXAsZGVyaXZhdGl2ZXMuc2xpY2UoMSkpO3JldHVybiBjYWNoZS5tYXAmJjAhPT1jYWNoZS5tYXAuc2l6ZXx8Y2FjaGUudmFsdWV8fGN1cnJlbnRDYWNoZS5kZWxldGUoZGVyaXZhdGl2ZXNbMF0pLHJlc3VsdH19LHtrZXk6ImRlbGV0ZSIsdmFsdWU6ZnVuY3Rpb24oZGVyaXZhdGl2ZU9wdGlvbil7aWYodGhpcy5oYXMoZGVyaXZhdGl2ZU9wdGlvbikpcmV0dXJuIHRoaXMua2V5cz10aGlzLmtleXMuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0pe3JldHVybiFmdW5jdGlvbihsZWZ0LHJpZ2h0KXtpZihsZWZ0Lmxlbmd0aCE9PXJpZ2h0Lmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIGk9MDtpPGxlZnQubGVuZ3RoO2krKylpZihsZWZ0W2ldIT09cmlnaHRbaV0pcmV0dXJuITE7cmV0dXJuITB9KGl0ZW0sZGVyaXZhdGl2ZU9wdGlvbil9KSx0aGlzLmRlbGV0ZUJ5UGF0aCh0aGlzLmNhY2hlLGRlcml2YXRpdmVPcHRpb24pfX1dKSxUaGVtZUNhY2hlfSgpO2Z1bmN0aW9uIG5vU3BsaXQobGlzdCl7cmV0dXJuIGxpc3Qubm90U3BsaXQ9ITAsbGlzdH0oMCxkZWZpbmVQcm9wZXJ0eS5aKShUaGVtZUNhY2hlLCJNQVhfQ0FDSEVfU0laRSIsMjApLCgwLGRlZmluZVByb3BlcnR5LlopKFRoZW1lQ2FjaGUsIk1BWF9DQUNIRV9PRkZTRVQiLDUpLF9fd2VicGFja19yZXF1aXJlX18oODAzMzQpLG5ldyBUaGVtZUNhY2hlLG5ldyBXZWFrTWFwLG5ldyBXZWFrTWFwLCJyYW5kb20tIi5jb25jYXQoRGF0ZS5ub3coKSwiLSIpLmNvbmNhdChNYXRoLnJhbmRvbSgpKS5yZXBsYWNlKC9cLi9nLCIiKSxfX3dlYnBhY2tfcmVxdWlyZV9fKDg0MTApLCgwLG9iamVjdFNwcmVhZDIuWikoe30scmVhY3RfbmFtZXNwYWNlT2JqZWN0KS51c2VJbnNlcnRpb25FZmZlY3QsKDAsb2JqZWN0U3ByZWFkMi5aKSh7fSxyZWFjdF9uYW1lc3BhY2VPYmplY3QpLnVzZUluc2VydGlvbkVmZmVjdCxfX3dlYnBhY2tfcmVxdWlyZV9fKDQwMzUxKSwoMCxEb21fY2FuVXNlRG9tLlopKCksbm9TcGxpdChbImJvcmRlclRvcCIsImJvcmRlckJvdHRvbSJdKSxub1NwbGl0KFsiYm9yZGVyVG9wIl0pLG5vU3BsaXQoWyJib3JkZXJCb3R0b20iXSksbm9TcGxpdChbImJvcmRlckxlZnQiLCJib3JkZXJSaWdodCJdKSxub1NwbGl0KFsiYm9yZGVyTGVmdCJdKSxub1NwbGl0KFsiYm9yZGVyUmlnaHQiXSl9LDg5OTQyOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO3ZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLF9mb3JtX2NvbnRleHRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY1MjIzKSxfc3BhY2VfQ29tcGFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fPV9fd2VicGFja19yZXF1aXJlX18oNDE3Myk7bGV0IENvbnRleHRJc29sYXRvcj1wcm9wcz0+e2xldHtzcGFjZSxmb3JtLGNoaWxkcmVufT1wcm9wcztpZihudWxsPT1jaGlsZHJlbilyZXR1cm4gbnVsbDtsZXQgcmVzdWx0PWNoaWxkcmVuO3JldHVybiBmb3JtJiYocmVzdWx0PXJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uY3JlYXRlRWxlbWVudChfZm9ybV9jb250ZXh0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uVXgse292ZXJyaWRlOiEwLHN0YXR1czohMH0scmVzdWx0KSksc3BhY2UmJihyZXN1bHQ9cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jcmVhdGVFbGVtZW50KF9zcGFjZV9Db21wYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQlIsbnVsbCxyZXN1bHQpKSxyZXN1bHR9O19fd2VicGFja19leHBvcnRzX18uWj1Db250ZXh0SXNvbGF0b3J9LDg3NDU6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se2k6ZnVuY3Rpb24oKXtyZXR1cm4gd2l0aFB1cmVSZW5kZXJUaGVtZX19KTt2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxyY191dGlsX2VzX2hvb2tzX3VzZU1lcmdlZFN0YXRlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg1NjYzKSxfY29uZmlnX3Byb3ZpZGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXygzNzgxMiksX2NvbmZpZ19wcm92aWRlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fPV9fd2VicGFja19yZXF1aXJlX18oNTMxMjQpO2Z1bmN0aW9uIHdpdGhQdXJlUmVuZGVyVGhlbWUoQ29tcG9uZW50KXtyZXR1cm4gcHJvcHM9PnJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uY3JlYXRlRWxlbWVudChfY29uZmlnX3Byb3ZpZGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uWlAse3RoZW1lOnt0b2tlbjp7bW90aW9uOiExLHpJbmRleFBvcHVwQmFzZTowfX19LHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uY3JlYXRlRWxlbWVudChDb21wb25lbnQsT2JqZWN0LmFzc2lnbih7fSxwcm9wcykpKX1sZXQgZ2VuUHVyZVBhbmVsPShDb21wb25lbnQsYWxpZ25Qcm9wTmFtZSxwb3N0UHJvcHMsZGVmYXVsdFByZWZpeENscyxnZXREcm9wZG93bkNscyk9PntsZXQgUHVyZVBhbmVsPXByb3BzPT57bGV0e3ByZWZpeENsczpjdXN0b21pemVQcmVmaXhDbHMsc3R5bGV9PXByb3BzLGhvbGRlclJlZj1yZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnVzZVJlZihudWxsKSxbcG9wdXBIZWlnaHQsc2V0UG9wdXBIZWlnaHRdPXJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlU3RhdGUoMCksW3BvcHVwV2lkdGgsc2V0UG9wdXBXaWR0aF09cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VTdGF0ZSgwKSxbb3BlbixzZXRPcGVuXT0oMCxyY191dGlsX2VzX2hvb2tzX3VzZU1lcmdlZFN0YXRlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uWikoITEse3ZhbHVlOnByb3BzLm9wZW59KSx7Z2V0UHJlZml4Q2xzfT1yZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnVzZUNvbnRleHQoX2NvbmZpZ19wcm92aWRlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLkVfKSxwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKGRlZmF1bHRQcmVmaXhDbHN8fCJzZWxlY3QiLGN1c3RvbWl6ZVByZWZpeENscyk7cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VFZmZlY3QoKCk9PntpZihzZXRPcGVuKCEwKSwidW5kZWZpbmVkIiE9dHlwZW9mIFJlc2l6ZU9ic2VydmVyKXtsZXQgcmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKGVudHJpZXM9PntsZXQgZWxlbWVudD1lbnRyaWVzWzBdLnRhcmdldDtzZXRQb3B1cEhlaWdodChlbGVtZW50Lm9mZnNldEhlaWdodCs4KSxzZXRQb3B1cFdpZHRoKGVsZW1lbnQub2Zmc2V0V2lkdGgpfSksaW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9Pnt2YXIgX2E7bGV0IGRyb3Bkb3duQ2xzPWdldERyb3Bkb3duQ2xzP2AuJHtnZXREcm9wZG93bkNscyhwcmVmaXhDbHMpfWA6YC4ke3ByZWZpeENsc30tZHJvcGRvd25gLHBvcHVwPW51bGw9PT0oX2E9aG9sZGVyUmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1fYT92b2lkIDA6X2EucXVlcnlTZWxlY3Rvcihkcm9wZG93bkNscyk7cG9wdXAmJihjbGVhckludGVydmFsKGludGVydmFsKSxyZXNpemVPYnNlcnZlci5vYnNlcnZlKHBvcHVwKSl9LDEwKTtyZXR1cm4oKT0+e2NsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpLHJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKX19fSxbXSk7bGV0IG1lcmdlZFByb3BzPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxwcm9wcykse3N0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxzdHlsZSkse21hcmdpbjowfSksb3Blbix2aXNpYmxlOm9wZW4sZ2V0UG9wdXBDb250YWluZXI6KCk9PmhvbGRlclJlZi5jdXJyZW50fSk7cmV0dXJuIHBvc3RQcm9wcyYmKG1lcmdlZFByb3BzPXBvc3RQcm9wcyhtZXJnZWRQcm9wcykpLGFsaWduUHJvcE5hbWUmJk9iamVjdC5hc3NpZ24obWVyZ2VkUHJvcHMse1thbGlnblByb3BOYW1lXTp7b3ZlcmZsb3c6e2FkanVzdFg6ITEsYWRqdXN0WTohMX19fSkscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6aG9sZGVyUmVmLHN0eWxlOntwYWRkaW5nQm90dG9tOnBvcHVwSGVpZ2h0LHBvc2l0aW9uOiJyZWxhdGl2ZSIsbWluV2lkdGg6cG9wdXBXaWR0aH19LHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uY3JlYXRlRWxlbWVudChDb21wb25lbnQsT2JqZWN0LmFzc2lnbih7fSxtZXJnZWRQcm9wcykpKX07cmV0dXJuIHdpdGhQdXJlUmVuZGVyVGhlbWUoUHVyZVBhbmVsKX07X193ZWJwYWNrX2V4cG9ydHNfXy5aPWdlblB1cmVQYW5lbH0sNzgyOTA6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7dmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksX2FudF9kZXNpZ25faWNvbnNfZXNfaWNvbnNfQ2xvc2VDaXJjbGVGaWxsZWRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQzNDApO2xldCBnZXRBbGxvd0NsZWFyPWFsbG93Q2xlYXI9PntsZXQgbWVyZ2VkQWxsb3dDbGVhcjtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGFsbG93Q2xlYXImJihudWxsPT1hbGxvd0NsZWFyP3ZvaWQgMDphbGxvd0NsZWFyLmNsZWFySWNvbik/bWVyZ2VkQWxsb3dDbGVhcj1hbGxvd0NsZWFyOmFsbG93Q2xlYXImJihtZXJnZWRBbGxvd0NsZWFyPXtjbGVhckljb246cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jcmVhdGVFbGVtZW50KF9hbnRfZGVzaWduX2ljb25zX2VzX2ljb25zX0Nsb3NlQ2lyY2xlRmlsbGVkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uWixudWxsKX0pLG1lcmdlZEFsbG93Q2xlYXJ9O19fd2VicGFja19leHBvcnRzX18uWj1nZXRBbGxvd0NsZWFyfSwyMDcyOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHVzZUNsb3NhYmxlfSx3OmZ1bmN0aW9uKCl7cmV0dXJuIHBpY2tDbG9zYWJsZX19KTt2YXIgcmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksQ2xvc2VPdXRsaW5lZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDk3OTM3KSxwaWNrQXR0cnM9X193ZWJwYWNrX3JlcXVpcmVfXygxMzM3KSx1c2VMb2NhbGU9X193ZWJwYWNrX3JlcXVpcmVfXygxMDExMCksZW5fVVM9X193ZWJwYWNrX3JlcXVpcmVfXygyNDQ1NyksZXh0ZW5kc09iamVjdD1mdW5jdGlvbigpe2xldCByZXQ9e307Zm9yKHZhciBfbGVuPWFyZ3VtZW50cy5sZW5ndGgsaXRlbXM9QXJyYXkoX2xlbiksX2tleT0wO19rZXk8X2xlbjtfa2V5KyspaXRlbXNbX2tleV09YXJndW1lbnRzW19rZXldO3JldHVybiBpdGVtcy5mb3JFYWNoKGl0ZW09PntpdGVtJiZPYmplY3Qua2V5cyhpdGVtKS5mb3JFYWNoKGtleT0+e3ZvaWQgMCE9PWl0ZW1ba2V5XSYmKHJldFtrZXldPWl0ZW1ba2V5XSl9KX0pLHJldH07ZnVuY3Rpb24gcGlja0Nsb3NhYmxlKGNvbnRleHQpe2lmKGNvbnRleHQpcmV0dXJue2Nsb3NhYmxlOmNvbnRleHQuY2xvc2FibGUsY2xvc2VJY29uOmNvbnRleHQuY2xvc2VJY29ufX1mdW5jdGlvbiB1c2VDbG9zYWJsZUNvbmZpZyhjbG9zYWJsZUNvbGxlY3Rpb24pe2xldHtjbG9zYWJsZSxjbG9zZUljb259PWNsb3NhYmxlQ29sbGVjdGlvbnx8e307cmV0dXJuIHJlYWN0LnVzZU1lbW8oKCk9PntpZighY2xvc2FibGUmJighMT09PWNsb3NhYmxlfHwhMT09PWNsb3NlSWNvbnx8bnVsbD09PWNsb3NlSWNvbikpcmV0dXJuITE7aWYodm9pZCAwPT09Y2xvc2FibGUmJnZvaWQgMD09PWNsb3NlSWNvbilyZXR1cm4gbnVsbDtsZXQgY2xvc2FibGVDb25maWc9e2Nsb3NlSWNvbjoiYm9vbGVhbiIhPXR5cGVvZiBjbG9zZUljb24mJm51bGwhPT1jbG9zZUljb24/Y2xvc2VJY29uOnZvaWQgMH07cmV0dXJuIGNsb3NhYmxlJiYib2JqZWN0Ij09dHlwZW9mIGNsb3NhYmxlJiYoY2xvc2FibGVDb25maWc9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGNsb3NhYmxlQ29uZmlnKSxjbG9zYWJsZSkpLGNsb3NhYmxlQ29uZmlnfSxbY2xvc2FibGUsY2xvc2VJY29uXSl9bGV0IEVtcHR5RmFsbGJhY2tDbG9zZUNvbGxlY3Rpb249e307ZnVuY3Rpb24gdXNlQ2xvc2FibGUocHJvcENsb3NlQ29sbGVjdGlvbixjb250ZXh0Q2xvc2VDb2xsZWN0aW9uKXtsZXQgZmFsbGJhY2tDbG9zZUNvbGxlY3Rpb249YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOkVtcHR5RmFsbGJhY2tDbG9zZUNvbGxlY3Rpb24scHJvcENsb3NlQ29uZmlnPXVzZUNsb3NhYmxlQ29uZmlnKHByb3BDbG9zZUNvbGxlY3Rpb24pLGNvbnRleHRDbG9zZUNvbmZpZz11c2VDbG9zYWJsZUNvbmZpZyhjb250ZXh0Q2xvc2VDb2xsZWN0aW9uKSxbY29udGV4dExvY2FsZV09KDAsdXNlTG9jYWxlLlopKCJnbG9iYWwiLGVuX1VTLlouZ2xvYmFsKSxjbG9zZUJ0bklzRGlzYWJsZWQ9ImJvb2xlYW4iIT10eXBlb2YgcHJvcENsb3NlQ29uZmlnJiYhIShudWxsPT1wcm9wQ2xvc2VDb25maWc/dm9pZCAwOnByb3BDbG9zZUNvbmZpZy5kaXNhYmxlZCksbWVyZ2VkRmFsbGJhY2tDbG9zZUNvbGxlY3Rpb249cmVhY3QudXNlTWVtbygoKT0+T2JqZWN0LmFzc2lnbih7Y2xvc2VJY29uOnJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xvc2VPdXRsaW5lZC5aLG51bGwpfSxmYWxsYmFja0Nsb3NlQ29sbGVjdGlvbiksW2ZhbGxiYWNrQ2xvc2VDb2xsZWN0aW9uXSksbWVyZ2VkQ2xvc2FibGVDb25maWc9cmVhY3QudXNlTWVtbygoKT0+ITEhPT1wcm9wQ2xvc2VDb25maWcmJihwcm9wQ2xvc2VDb25maWc/ZXh0ZW5kc09iamVjdChtZXJnZWRGYWxsYmFja0Nsb3NlQ29sbGVjdGlvbixjb250ZXh0Q2xvc2VDb25maWcscHJvcENsb3NlQ29uZmlnKTohMSE9PWNvbnRleHRDbG9zZUNvbmZpZyYmKGNvbnRleHRDbG9zZUNvbmZpZz9leHRlbmRzT2JqZWN0KG1lcmdlZEZhbGxiYWNrQ2xvc2VDb2xsZWN0aW9uLGNvbnRleHRDbG9zZUNvbmZpZyk6ISFtZXJnZWRGYWxsYmFja0Nsb3NlQ29sbGVjdGlvbi5jbG9zYWJsZSYmbWVyZ2VkRmFsbGJhY2tDbG9zZUNvbGxlY3Rpb24pKSxbcHJvcENsb3NlQ29uZmlnLGNvbnRleHRDbG9zZUNvbmZpZyxtZXJnZWRGYWxsYmFja0Nsb3NlQ29sbGVjdGlvbl0pO3JldHVybiByZWFjdC51c2VNZW1vKCgpPT57aWYoITE9PT1tZXJnZWRDbG9zYWJsZUNvbmZpZylyZXR1cm5bITEsbnVsbCxjbG9zZUJ0bklzRGlzYWJsZWQse31dO2xldHtjbG9zZUljb25SZW5kZXJ9PW1lcmdlZEZhbGxiYWNrQ2xvc2VDb2xsZWN0aW9uLHtjbG9zZUljb259PW1lcmdlZENsb3NhYmxlQ29uZmlnLG1lcmdlZENsb3NlSWNvbj1jbG9zZUljb24sYXJpYU9yRGF0YVByb3BzPSgwLHBpY2tBdHRycy5aKShtZXJnZWRDbG9zYWJsZUNvbmZpZywhMCk7cmV0dXJuIG51bGwhPW1lcmdlZENsb3NlSWNvbiYmKGNsb3NlSWNvblJlbmRlciYmKG1lcmdlZENsb3NlSWNvbj1jbG9zZUljb25SZW5kZXIoY2xvc2VJY29uKSksbWVyZ2VkQ2xvc2VJY29uPXJlYWN0LmlzVmFsaWRFbGVtZW50KG1lcmdlZENsb3NlSWNvbik/cmVhY3QuY2xvbmVFbGVtZW50KG1lcmdlZENsb3NlSWNvbixPYmplY3QuYXNzaWduKHsiYXJpYS1sYWJlbCI6Y29udGV4dExvY2FsZS5jbG9zZX0sYXJpYU9yRGF0YVByb3BzKSk6cmVhY3QuY3JlYXRlRWxlbWVudCgic3BhbiIsT2JqZWN0LmFzc2lnbih7ImFyaWEtbGFiZWwiOmNvbnRleHRMb2NhbGUuY2xvc2V9LGFyaWFPckRhdGFQcm9wcyksbWVyZ2VkQ2xvc2VJY29uKSksWyEwLG1lcmdlZENsb3NlSWNvbixjbG9zZUJ0bklzRGlzYWJsZWQsYXJpYU9yRGF0YVByb3BzXX0sW21lcmdlZENsb3NhYmxlQ29uZmlnLG1lcmdlZEZhbGxiYWNrQ2xvc2VDb2xsZWN0aW9uXSl9fSw4NzI2MzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7Q246ZnVuY3Rpb24oKXtyZXR1cm4gdXNlWkluZGV4fSx1NjpmdW5jdGlvbigpe3JldHVybiBDT05UQUlORVJfTUFYX09GRlNFVH19KTt2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxfdGhlbWVfdXNlVG9rZW5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI1OTc2KSxfemluZGV4Q29udGV4dF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fPV9fd2VicGFja19yZXF1aXJlX18oNDM5NDUpO2xldCBDT05UQUlORVJfTUFYX09GRlNFVD0xZTMsY29udGFpbmVyQmFzZVpJbmRleE9mZnNldD17TW9kYWw6MTAwLERyYXdlcjoxMDAsUG9wb3ZlcjoxMDAsUG9wY29uZmlybToxMDAsVG9vbHRpcDoxMDAsVG91cjoxMDAsRmxvYXRCdXR0b246MTAwfSxjb25zdW1lckJhc2VaSW5kZXhPZmZzZXQ9e1NlbGVjdExpa2U6NTAsRHJvcGRvd246NTAsRGF0ZVBpY2tlcjo1MCxNZW51OjUwLEltYWdlUHJldmlldzoxfSx1c2VaSW5kZXg9KGNvbXBvbmVudFR5cGUsY3VzdG9tWkluZGV4KT0+e2xldCByZXN1bHQ7bGV0Wyx0b2tlbl09KDAsX3RoZW1lX3VzZVRva2VuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uWlApKCkscGFyZW50WkluZGV4PXJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlQ29udGV4dChfemluZGV4Q29udGV4dF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLlopO2lmKHZvaWQgMCE9PWN1c3RvbVpJbmRleClyZXN1bHQ9W2N1c3RvbVpJbmRleCxjdXN0b21aSW5kZXhdO2Vsc2V7bGV0IHpJbmRleD1udWxsIT1wYXJlbnRaSW5kZXg/cGFyZW50WkluZGV4OjA7Y29tcG9uZW50VHlwZSBpbiBjb250YWluZXJCYXNlWkluZGV4T2Zmc2V0P3pJbmRleCs9KHBhcmVudFpJbmRleD8wOnRva2VuLnpJbmRleFBvcHVwQmFzZSkrY29udGFpbmVyQmFzZVpJbmRleE9mZnNldFtjb21wb25lbnRUeXBlXTp6SW5kZXgrPWNvbnN1bWVyQmFzZVpJbmRleE9mZnNldFtjb21wb25lbnRUeXBlXSxyZXN1bHQ9W3ZvaWQgMD09PXBhcmVudFpJbmRleD9jdXN0b21aSW5kZXg6ekluZGV4LHpJbmRleF19cmV0dXJuIHJlc3VsdH19LDMzNjAzOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHttOmZ1bmN0aW9uKCl7cmV0dXJuIGdldFRyYW5zaXRpb25OYW1lfX0pO3ZhciBfY29uZmlnX3Byb3ZpZGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg1MzEyNCk7bGV0IGdldENvbGxhcHNlZEhlaWdodD0oKT0+KHtoZWlnaHQ6MCxvcGFjaXR5OjB9KSxnZXRSZWFsSGVpZ2h0PW5vZGU9PntsZXR7c2Nyb2xsSGVpZ2h0fT1ub2RlO3JldHVybntoZWlnaHQ6c2Nyb2xsSGVpZ2h0LG9wYWNpdHk6MX19LGdldEN1cnJlbnRIZWlnaHQ9bm9kZT0+KHtoZWlnaHQ6bm9kZT9ub2RlLm9mZnNldEhlaWdodDowfSksc2tpcE9wYWNpdHlUcmFuc2l0aW9uPShfLGV2ZW50KT0+KG51bGw9PWV2ZW50P3ZvaWQgMDpldmVudC5kZWFkbGluZSk9PT0hMHx8ImhlaWdodCI9PT1ldmVudC5wcm9wZXJ0eU5hbWUsZ2V0VHJhbnNpdGlvbk5hbWU9KHJvb3RQcmVmaXhDbHMsbW90aW9uLHRyYW5zaXRpb25OYW1lKT0+dm9pZCAwIT09dHJhbnNpdGlvbk5hbWU/dHJhbnNpdGlvbk5hbWU6YCR7cm9vdFByZWZpeENsc30tJHttb3Rpb259YDtfX3dlYnBhY2tfZXhwb3J0c19fLlo9ZnVuY3Rpb24oKXtsZXQgcm9vdENscz1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06X2NvbmZpZ19wcm92aWRlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlJmO3JldHVybnttb3Rpb25OYW1lOmAke3Jvb3RDbHN9LW1vdGlvbi1jb2xsYXBzZWAsb25BcHBlYXJTdGFydDpnZXRDb2xsYXBzZWRIZWlnaHQsb25FbnRlclN0YXJ0OmdldENvbGxhcHNlZEhlaWdodCxvbkFwcGVhckFjdGl2ZTpnZXRSZWFsSGVpZ2h0LG9uRW50ZXJBY3RpdmU6Z2V0UmVhbEhlaWdodCxvbkxlYXZlU3RhcnQ6Z2V0Q3VycmVudEhlaWdodCxvbkxlYXZlQWN0aXZlOmdldENvbGxhcHNlZEhlaWdodCxvbkFwcGVhckVuZDpza2lwT3BhY2l0eVRyYW5zaXRpb24sb25FbnRlckVuZDpza2lwT3BhY2l0eVRyYW5zaXRpb24sb25MZWF2ZUVuZDpza2lwT3BhY2l0eVRyYW5zaXRpb24sbW90aW9uRGVhZGxpbmU6NTAwfX19LDgwNjM2OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGdldFBsYWNlbWVudHN9fSk7dmFyIF9zdHlsZV9wbGFjZW1lbnRBcnJvd19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oOTc0MTQpO2xldCBQbGFjZW1lbnRBbGlnbk1hcD17bGVmdDp7cG9pbnRzOlsiY3IiLCJjbCJdfSxyaWdodDp7cG9pbnRzOlsiY2wiLCJjciJdfSx0b3A6e3BvaW50czpbImJjIiwidGMiXX0sYm90dG9tOntwb2ludHM6WyJ0YyIsImJjIl19LHRvcExlZnQ6e3BvaW50czpbImJsIiwidGwiXX0sbGVmdFRvcDp7cG9pbnRzOlsidHIiLCJ0bCJdfSx0b3BSaWdodDp7cG9pbnRzOlsiYnIiLCJ0ciJdfSxyaWdodFRvcDp7cG9pbnRzOlsidGwiLCJ0ciJdfSxib3R0b21SaWdodDp7cG9pbnRzOlsidHIiLCJiciJdfSxyaWdodEJvdHRvbTp7cG9pbnRzOlsiYmwiLCJiciJdfSxib3R0b21MZWZ0Ontwb2ludHM6WyJ0bCIsImJsIl19LGxlZnRCb3R0b206e3BvaW50czpbImJyIiwiYmwiXX19LEFycm93Q2VudGVyUGxhY2VtZW50QWxpZ25NYXA9e3RvcExlZnQ6e3BvaW50czpbImJsIiwidGMiXX0sbGVmdFRvcDp7cG9pbnRzOlsidHIiLCJjbCJdfSx0b3BSaWdodDp7cG9pbnRzOlsiYnIiLCJ0YyJdfSxyaWdodFRvcDp7cG9pbnRzOlsidGwiLCJjciJdfSxib3R0b21SaWdodDp7cG9pbnRzOlsidHIiLCJiYyJdfSxyaWdodEJvdHRvbTp7cG9pbnRzOlsiYmwiLCJjciJdfSxib3R0b21MZWZ0Ontwb2ludHM6WyJ0bCIsImJjIl19LGxlZnRCb3R0b206e3BvaW50czpbImJyIiwiY2wiXX19LERpc2FibGVBdXRvQXJyb3dMaXN0PW5ldyBTZXQoWyJ0b3BMZWZ0IiwidG9wUmlnaHQiLCJib3R0b21MZWZ0IiwiYm90dG9tUmlnaHQiLCJsZWZ0VG9wIiwibGVmdEJvdHRvbSIsInJpZ2h0VG9wIiwicmlnaHRCb3R0b20iXSk7ZnVuY3Rpb24gZ2V0UGxhY2VtZW50cyhjb25maWcpe2xldHthcnJvd1dpZHRoLGF1dG9BZGp1c3RPdmVyZmxvdyxhcnJvd1BvaW50QXRDZW50ZXIsb2Zmc2V0LGJvcmRlclJhZGl1cyx2aXNpYmxlRmlyc3R9PWNvbmZpZyxoYWxmQXJyb3dXaWR0aD1hcnJvd1dpZHRoLzIscGxhY2VtZW50TWFwPXt9O3JldHVybiBPYmplY3Qua2V5cyhQbGFjZW1lbnRBbGlnbk1hcCkuZm9yRWFjaChrZXk9PntsZXQgdGVtcGxhdGU9YXJyb3dQb2ludEF0Q2VudGVyJiZBcnJvd0NlbnRlclBsYWNlbWVudEFsaWduTWFwW2tleV18fFBsYWNlbWVudEFsaWduTWFwW2tleV0scGxhY2VtZW50SW5mbz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGVtcGxhdGUpLHtvZmZzZXQ6WzAsMF0sZHluYW1pY0luc2V0OiEwfSk7c3dpdGNoKHBsYWNlbWVudE1hcFtrZXldPXBsYWNlbWVudEluZm8sRGlzYWJsZUF1dG9BcnJvd0xpc3QuaGFzKGtleSkmJihwbGFjZW1lbnRJbmZvLmF1dG9BcnJvdz0hMSksa2V5KXtjYXNlInRvcCI6Y2FzZSJ0b3BMZWZ0IjpjYXNlInRvcFJpZ2h0IjpwbGFjZW1lbnRJbmZvLm9mZnNldFsxXT0taGFsZkFycm93V2lkdGgtb2Zmc2V0O2JyZWFrO2Nhc2UiYm90dG9tIjpjYXNlImJvdHRvbUxlZnQiOmNhc2UiYm90dG9tUmlnaHQiOnBsYWNlbWVudEluZm8ub2Zmc2V0WzFdPWhhbGZBcnJvd1dpZHRoK29mZnNldDticmVhaztjYXNlImxlZnQiOmNhc2UibGVmdFRvcCI6Y2FzZSJsZWZ0Qm90dG9tIjpwbGFjZW1lbnRJbmZvLm9mZnNldFswXT0taGFsZkFycm93V2lkdGgtb2Zmc2V0O2JyZWFrO2Nhc2UicmlnaHQiOmNhc2UicmlnaHRUb3AiOmNhc2UicmlnaHRCb3R0b20iOnBsYWNlbWVudEluZm8ub2Zmc2V0WzBdPWhhbGZBcnJvd1dpZHRoK29mZnNldH1sZXQgYXJyb3dPZmZzZXQ9KDAsX3N0eWxlX3BsYWNlbWVudEFycm93X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ud1opKHtjb250ZW50UmFkaXVzOmJvcmRlclJhZGl1cyxsaW1pdFZlcnRpY2FsUmFkaXVzOiEwfSk7aWYoYXJyb3dQb2ludEF0Q2VudGVyKXN3aXRjaChrZXkpe2Nhc2UidG9wTGVmdCI6Y2FzZSJib3R0b21MZWZ0IjpwbGFjZW1lbnRJbmZvLm9mZnNldFswXT0tYXJyb3dPZmZzZXQuYXJyb3dPZmZzZXRIb3Jpem9udGFsLWhhbGZBcnJvd1dpZHRoO2JyZWFrO2Nhc2UidG9wUmlnaHQiOmNhc2UiYm90dG9tUmlnaHQiOnBsYWNlbWVudEluZm8ub2Zmc2V0WzBdPWFycm93T2Zmc2V0LmFycm93T2Zmc2V0SG9yaXpvbnRhbCtoYWxmQXJyb3dXaWR0aDticmVhaztjYXNlImxlZnRUb3AiOmNhc2UicmlnaHRUb3AiOnBsYWNlbWVudEluZm8ub2Zmc2V0WzFdPS0oMiphcnJvd09mZnNldC5hcnJvd09mZnNldEhvcml6b250YWwpK2hhbGZBcnJvd1dpZHRoO2JyZWFrO2Nhc2UibGVmdEJvdHRvbSI6Y2FzZSJyaWdodEJvdHRvbSI6cGxhY2VtZW50SW5mby5vZmZzZXRbMV09MiphcnJvd09mZnNldC5hcnJvd09mZnNldEhvcml6b250YWwtaGFsZkFycm93V2lkdGh9cGxhY2VtZW50SW5mby5vdmVyZmxvdz1mdW5jdGlvbihwbGFjZW1lbnQsYXJyb3dPZmZzZXQsYXJyb3dXaWR0aCxhdXRvQWRqdXN0T3ZlcmZsb3cpe2lmKCExPT09YXV0b0FkanVzdE92ZXJmbG93KXJldHVybnthZGp1c3RYOiExLGFkanVzdFk6ITF9O2xldCBiYXNlT3ZlcmZsb3c9e307c3dpdGNoKHBsYWNlbWVudCl7Y2FzZSJ0b3AiOmNhc2UiYm90dG9tIjpiYXNlT3ZlcmZsb3cuc2hpZnRYPTIqYXJyb3dPZmZzZXQuYXJyb3dPZmZzZXRIb3Jpem9udGFsK2Fycm93V2lkdGgsYmFzZU92ZXJmbG93LnNoaWZ0WT0hMCxiYXNlT3ZlcmZsb3cuYWRqdXN0WT0hMDticmVhaztjYXNlImxlZnQiOmNhc2UicmlnaHQiOmJhc2VPdmVyZmxvdy5zaGlmdFk9MiphcnJvd09mZnNldC5hcnJvd09mZnNldFZlcnRpY2FsK2Fycm93V2lkdGgsYmFzZU92ZXJmbG93LnNoaWZ0WD0hMCxiYXNlT3ZlcmZsb3cuYWRqdXN0WD0hMH1sZXQgbWVyZ2VkT3ZlcmZsb3c9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGJhc2VPdmVyZmxvdyksYXV0b0FkanVzdE92ZXJmbG93JiYib2JqZWN0Ij09dHlwZW9mIGF1dG9BZGp1c3RPdmVyZmxvdz9hdXRvQWRqdXN0T3ZlcmZsb3c6e30pO3JldHVybiBtZXJnZWRPdmVyZmxvdy5zaGlmdFh8fChtZXJnZWRPdmVyZmxvdy5hZGp1c3RYPSEwKSxtZXJnZWRPdmVyZmxvdy5zaGlmdFl8fChtZXJnZWRPdmVyZmxvdy5hZGp1c3RZPSEwKSxtZXJnZWRPdmVyZmxvd30oa2V5LGFycm93T2Zmc2V0LGFycm93V2lkdGgsYXV0b0FkanVzdE92ZXJmbG93KSx2aXNpYmxlRmlyc3QmJihwbGFjZW1lbnRJbmZvLmh0bWxSZWdpb249InZpc2libGVGaXJzdCIpfSkscGxhY2VtZW50TWFwfX0sOTYxNTk6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se00yOmZ1bmN0aW9uKCl7cmV0dXJuIGlzRnJhZ21lbnR9LFRtOmZ1bmN0aW9uKCl7cmV0dXJuIGNsb25lRWxlbWVudH19KTt2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KTtmdW5jdGlvbiBpc0ZyYWdtZW50KGNoaWxkKXtyZXR1cm4gY2hpbGQmJnJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uaXNWYWxpZEVsZW1lbnQoY2hpbGQpJiZjaGlsZC50eXBlPT09cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5GcmFnbWVudH1sZXQgcmVwbGFjZUVsZW1lbnQ9KGVsZW1lbnQscmVwbGFjZW1lbnQscHJvcHMpPT5yZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmlzVmFsaWRFbGVtZW50KGVsZW1lbnQpP3JlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uY2xvbmVFbGVtZW50KGVsZW1lbnQsImZ1bmN0aW9uIj09dHlwZW9mIHByb3BzP3Byb3BzKGVsZW1lbnQucHJvcHN8fHt9KTpwcm9wcyk6cmVwbGFjZW1lbnQ7ZnVuY3Rpb24gY2xvbmVFbGVtZW50KGVsZW1lbnQscHJvcHMpe3JldHVybiByZXBsYWNlRWxlbWVudChlbGVtZW50LGVsZW1lbnQscHJvcHMpfX0sMTM5MTM6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1pQOmZ1bmN0aW9uKCl7cmV0dXJuIHJlc3BvbnNpdmVPYnNlcnZlcn0sYzQ6ZnVuY3Rpb24oKXtyZXR1cm4gcmVzcG9uc2l2ZUFycmF5fX0pO3ZhciByZWFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSx1c2VUb2tlbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDI1OTc2KTtsZXQgYWRkTWVkaWFRdWVyeUxpc3RlbmVyPShtcWwsaGFuZGxlcik9Pnt2b2lkIDAhPT0obnVsbD09bXFsP3ZvaWQgMDptcWwuYWRkRXZlbnRMaXN0ZW5lcik/bXFsLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsaGFuZGxlcik6dm9pZCAwIT09KG51bGw9PW1xbD92b2lkIDA6bXFsLmFkZExpc3RlbmVyKSYmbXFsLmFkZExpc3RlbmVyKGhhbmRsZXIpfSxyZW1vdmVNZWRpYVF1ZXJ5TGlzdGVuZXI9KG1xbCxoYW5kbGVyKT0+e3ZvaWQgMCE9PShudWxsPT1tcWw/dm9pZCAwOm1xbC5yZW1vdmVFdmVudExpc3RlbmVyKT9tcWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixoYW5kbGVyKTp2b2lkIDAhPT0obnVsbD09bXFsP3ZvaWQgMDptcWwucmVtb3ZlTGlzdGVuZXIpJiZtcWwucmVtb3ZlTGlzdGVuZXIoaGFuZGxlcil9LHJlc3BvbnNpdmVBcnJheT1bInh4bCIsInhsIiwibGciLCJtZCIsInNtIiwieHMiXSxnZXRSZXNwb25zaXZlTWFwPXRva2VuPT4oe3hzOmAobWF4LXdpZHRoOiAke3Rva2VuLnNjcmVlblhTTWF4fXB4KWAsc206YChtaW4td2lkdGg6ICR7dG9rZW4uc2NyZWVuU019cHgpYCxtZDpgKG1pbi13aWR0aDogJHt0b2tlbi5zY3JlZW5NRH1weClgLGxnOmAobWluLXdpZHRoOiAke3Rva2VuLnNjcmVlbkxHfXB4KWAseGw6YChtaW4td2lkdGg6ICR7dG9rZW4uc2NyZWVuWEx9cHgpYCx4eGw6YChtaW4td2lkdGg6ICR7dG9rZW4uc2NyZWVuWFhMfXB4KWB9KSx2YWxpZGF0ZUJyZWFrcG9pbnRzPXRva2VuPT57bGV0IHJldkJyZWFrcG9pbnRzPVtdLmNvbmNhdChyZXNwb25zaXZlQXJyYXkpLnJldmVyc2UoKTtyZXR1cm4gcmV2QnJlYWtwb2ludHMuZm9yRWFjaCgoYnJlYWtwb2ludCxpKT0+e2xldCBicmVha3BvaW50VXBwZXI9YnJlYWtwb2ludC50b1VwcGVyQ2FzZSgpLHNjcmVlbk1pbj1gc2NyZWVuJHticmVha3BvaW50VXBwZXJ9TWluYCxzY3JlZW49YHNjcmVlbiR7YnJlYWtwb2ludFVwcGVyfWA7aWYoISh0b2tlbltzY3JlZW5NaW5dPD10b2tlbltzY3JlZW5dKSl0aHJvdyBFcnJvcihgJHtzY3JlZW5NaW59PD0ke3NjcmVlbn0gZmFpbHMgOiAhKCR7dG9rZW5bc2NyZWVuTWluXX08PSR7dG9rZW5bc2NyZWVuXX0pYCk7aWYoaTxyZXZCcmVha3BvaW50cy5sZW5ndGgtMSl7bGV0IHNjcmVlbk1heD1gc2NyZWVuJHticmVha3BvaW50VXBwZXJ9TWF4YDtpZighKHRva2VuW3NjcmVlbl08PXRva2VuW3NjcmVlbk1heF0pKXRocm93IEVycm9yKGAke3NjcmVlbn08PSR7c2NyZWVuTWF4fSBmYWlscyA6ICEoJHt0b2tlbltzY3JlZW5dfTw9JHt0b2tlbltzY3JlZW5NYXhdfSlgKTtsZXQgbmV4dEJyZWFrcG9pbnRVcHBlck1pbj1yZXZCcmVha3BvaW50c1tpKzFdLnRvVXBwZXJDYXNlKCksbmV4dFNjcmVlbk1pbj1gc2NyZWVuJHtuZXh0QnJlYWtwb2ludFVwcGVyTWlufU1pbmA7aWYoISh0b2tlbltzY3JlZW5NYXhdPD10b2tlbltuZXh0U2NyZWVuTWluXSkpdGhyb3cgRXJyb3IoYCR7c2NyZWVuTWF4fTw9JHtuZXh0U2NyZWVuTWlufSBmYWlscyA6ICEoJHt0b2tlbltzY3JlZW5NYXhdfTw9JHt0b2tlbltuZXh0U2NyZWVuTWluXX0pYCl9fSksdG9rZW59LHVzZVJlc3BvbnNpdmVPYnNlcnZlcj0oKT0+e2xldFssdG9rZW5dPSgwLHVzZVRva2VuLlpQKSgpLHJlc3BvbnNpdmVNYXA9Z2V0UmVzcG9uc2l2ZU1hcCh2YWxpZGF0ZUJyZWFrcG9pbnRzKHRva2VuKSk7cmV0dXJuIHJlYWN0LnVzZU1lbW8oKCk9PntsZXQgc3Vic2NyaWJlcnM9bmV3IE1hcCxzdWJVaWQ9LTEsc2NyZWVucz17fTtyZXR1cm57cmVzcG9uc2l2ZU1hcCxtYXRjaEhhbmRsZXJzOnt9LGRpc3BhdGNoOnBvaW50TWFwPT4oc2NyZWVucz1wb2ludE1hcCxzdWJzY3JpYmVycy5mb3JFYWNoKGZ1bmM9PmZ1bmMoc2NyZWVucykpLHN1YnNjcmliZXJzLnNpemU+PTEpLHN1YnNjcmliZShmdW5jKXtyZXR1cm4gc3Vic2NyaWJlcnMuc2l6ZXx8dGhpcy5yZWdpc3RlcigpLHN1YlVpZCs9MSxzdWJzY3JpYmVycy5zZXQoc3ViVWlkLGZ1bmMpLGZ1bmMoc2NyZWVucyksc3ViVWlkfSx1bnN1YnNjcmliZShwYXJhbVRva2VuKXtzdWJzY3JpYmVycy5kZWxldGUocGFyYW1Ub2tlbiksc3Vic2NyaWJlcnMuc2l6ZXx8dGhpcy51bnJlZ2lzdGVyKCl9LHJlZ2lzdGVyKCl7T2JqZWN0LmVudHJpZXMocmVzcG9uc2l2ZU1hcCkuZm9yRWFjaChfcmVmPT57bGV0W3NjcmVlbixtZWRpYVF1ZXJ5XT1fcmVmLGxpc3RlbmVyPV9yZWYyPT57bGV0e21hdGNoZXN9PV9yZWYyO3RoaXMuZGlzcGF0Y2goT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHNjcmVlbnMpLHtbc2NyZWVuXTptYXRjaGVzfSkpfSxtcWw9d2luZG93Lm1hdGNoTWVkaWEobWVkaWFRdWVyeSk7YWRkTWVkaWFRdWVyeUxpc3RlbmVyKG1xbCxsaXN0ZW5lciksdGhpcy5tYXRjaEhhbmRsZXJzW21lZGlhUXVlcnldPXttcWwsbGlzdGVuZXJ9LGxpc3RlbmVyKG1xbCl9KX0sdW5yZWdpc3Rlcigpe09iamVjdC52YWx1ZXMocmVzcG9uc2l2ZU1hcCkuZm9yRWFjaChtZWRpYVF1ZXJ5PT57bGV0IGhhbmRsZXI9dGhpcy5tYXRjaEhhbmRsZXJzW21lZGlhUXVlcnldO3JlbW92ZU1lZGlhUXVlcnlMaXN0ZW5lcihudWxsPT1oYW5kbGVyP3ZvaWQgMDpoYW5kbGVyLm1xbCxudWxsPT1oYW5kbGVyP3ZvaWQgMDpoYW5kbGVyLmxpc3RlbmVyKX0pLHN1YnNjcmliZXJzLmNsZWFyKCl9fX0sW3Rva2VuXSl9O3ZhciByZXNwb25zaXZlT2JzZXJ2ZXI9dXNlUmVzcG9uc2l2ZU9ic2VydmVyfSw5NzA4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtGOmZ1bmN0aW9uKCl7cmV0dXJuIGdldE1lcmdlZFN0YXR1c30sWjpmdW5jdGlvbigpe3JldHVybiBnZXRTdGF0dXNDbGFzc05hbWVzfX0pO3ZhciBjbGFzc25hbWVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXygxMzE0NCksY2xhc3NuYW1lc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGNsYXNzbmFtZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyk7ZnVuY3Rpb24gZ2V0U3RhdHVzQ2xhc3NOYW1lcyhwcmVmaXhDbHMsc3RhdHVzLGhhc0ZlZWRiYWNrKXtyZXR1cm4gY2xhc3NuYW1lc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fX2RlZmF1bHQoKSh7W2Ake3ByZWZpeENsc30tc3RhdHVzLXN1Y2Nlc3NgXToic3VjY2VzcyI9PT1zdGF0dXMsW2Ake3ByZWZpeENsc30tc3RhdHVzLXdhcm5pbmdgXToid2FybmluZyI9PT1zdGF0dXMsW2Ake3ByZWZpeENsc30tc3RhdHVzLWVycm9yYF06ImVycm9yIj09PXN0YXR1cyxbYCR7cHJlZml4Q2xzfS1zdGF0dXMtdmFsaWRhdGluZ2BdOiJ2YWxpZGF0aW5nIj09PXN0YXR1cyxbYCR7cHJlZml4Q2xzfS1oYXMtZmVlZGJhY2tgXTpoYXNGZWVkYmFja30pfWxldCBnZXRNZXJnZWRTdGF0dXM9KGNvbnRleHRTdGF0dXMsY3VzdG9tU3RhdHVzKT0+Y3VzdG9tU3RhdHVzfHxjb250ZXh0U3RhdHVzfSwyNzI4ODpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7Rzg6ZnVuY3Rpb24oKXtyZXR1cm4gV2FybmluZ0NvbnRleHR9LGxuOmZ1bmN0aW9uKCl7cmV0dXJuIGRldlVzZVdhcm5pbmd9fSk7dmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCk7ZnVuY3Rpb24gbm9vcCgpe31fX3dlYnBhY2tfcmVxdWlyZV9fKDY4MjkxKTtsZXQgV2FybmluZ0NvbnRleHQ9cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jcmVhdGVDb250ZXh0KHt9KSxkZXZVc2VXYXJuaW5nPSgpPT57bGV0IG5vb3BXYXJuaW5nPSgpPT57fTtyZXR1cm4gbm9vcFdhcm5pbmcuZGVwcmVjYXRlZD1ub29wLG5vb3BXYXJuaW5nfX0sNDM5NDU6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7dmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCk7bGV0IHpJbmRleENvbnRleHQ9cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jcmVhdGVDb250ZXh0KHZvaWQgMCk7X193ZWJwYWNrX2V4cG9ydHNfXy5aPXpJbmRleENvbnRleHR9LDY2OTY4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtKOmZ1bmN0aW9uKCl7cmV0dXJuIEFwcENvbmZpZ0NvbnRleHR9fSk7dmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCk7bGV0IEFwcENvbmZpZ0NvbnRleHQ9cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jcmVhdGVDb250ZXh0KHt9KX0sMzM2NzE6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se0RuOmZ1bmN0aW9uKCl7cmV0dXJuIGlzVW5Cb3JkZXJlZEJ1dHRvblZhcmlhbnR9LGFHOmZ1bmN0aW9uKCl7cmV0dXJuIGlzVHdvQ05DaGFyfSxoVTpmdW5jdGlvbigpe3JldHVybiBzcGFjZUNoaWxkcmVufSxueDpmdW5jdGlvbigpe3JldHVybiBjb252ZXJ0TGVnYWN5UHJvcHN9fSk7dmFyIF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX3RvQ29uc3VtYWJsZUFycmF5X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXyg3NTE3NykscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxfdXRpbF9yZWFjdE5vZGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk2MTU5KSxfdGhlbWVfaW50ZXJmYWNlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX189X193ZWJwYWNrX3JlcXVpcmVfXyg4Nzk2KTtsZXQgcnhUd29DTkNoYXI9L15bXHU0RTAwLVx1OUZBNV17Mn0kLyxpc1R3b0NOQ2hhcj1yeFR3b0NOQ2hhci50ZXN0LmJpbmQocnhUd29DTkNoYXIpO2Z1bmN0aW9uIGNvbnZlcnRMZWdhY3lQcm9wcyh0eXBlKXtyZXR1cm4iZGFuZ2VyIj09PXR5cGU/e2RhbmdlcjohMH06e3R5cGV9fWZ1bmN0aW9uIGlzU3RyaW5nKHN0cil7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBzdHJ9ZnVuY3Rpb24gaXNVbkJvcmRlcmVkQnV0dG9uVmFyaWFudCh0eXBlKXtyZXR1cm4idGV4dCI9PT10eXBlfHwibGluayI9PT10eXBlfWZ1bmN0aW9uIHNwYWNlQ2hpbGRyZW4oY2hpbGRyZW4sbmVlZEluc2VydGVkKXtsZXQgaXNQcmV2Q2hpbGRQdXJlPSExLGNoaWxkTGlzdD1bXTtyZXR1cm4gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLGNoaWxkPT57bGV0IHR5cGU9dHlwZW9mIGNoaWxkLGlzQ3VycmVudENoaWxkUHVyZT0ic3RyaW5nIj09PXR5cGV8fCJudW1iZXIiPT09dHlwZTtpZihpc1ByZXZDaGlsZFB1cmUmJmlzQ3VycmVudENoaWxkUHVyZSl7bGV0IGxhc3RJbmRleD1jaGlsZExpc3QubGVuZ3RoLTEsbGFzdENoaWxkPWNoaWxkTGlzdFtsYXN0SW5kZXhdO2NoaWxkTGlzdFtsYXN0SW5kZXhdPWAke2xhc3RDaGlsZH0ke2NoaWxkfWB9ZWxzZSBjaGlsZExpc3QucHVzaChjaGlsZCk7aXNQcmV2Q2hpbGRQdXJlPWlzQ3VycmVudENoaWxkUHVyZX0pLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQ2hpbGRyZW4ubWFwKGNoaWxkTGlzdCxjaGlsZD0+KGZ1bmN0aW9uKGNoaWxkLG5lZWRJbnNlcnRlZCl7aWYobnVsbD09Y2hpbGQpcmV0dXJuO2xldCBTUEFDRT1uZWVkSW5zZXJ0ZWQ/IiAiOiIiO3JldHVybiJzdHJpbmciIT10eXBlb2YgY2hpbGQmJiJudW1iZXIiIT10eXBlb2YgY2hpbGQmJmlzU3RyaW5nKGNoaWxkLnR5cGUpJiZpc1R3b0NOQ2hhcihjaGlsZC5wcm9wcy5jaGlsZHJlbik/KDAsX3V0aWxfcmVhY3ROb2RlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uVG0pKGNoaWxkLHtjaGlsZHJlbjpjaGlsZC5wcm9wcy5jaGlsZHJlbi5zcGxpdCgiIikuam9pbihTUEFDRSl9KTppc1N0cmluZyhjaGlsZCk/aXNUd29DTkNoYXIoY2hpbGQpP3JlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxjaGlsZC5zcGxpdCgiIikuam9pbihTUEFDRSkpOnJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxjaGlsZCk6KDAsX3V0aWxfcmVhY3ROb2RlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uTTIpKGNoaWxkKT9yZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsY2hpbGQpOmNoaWxkfSkoY2hpbGQsbmVlZEluc2VydGVkKSl9WyJkZWZhdWx0IiwicHJpbWFyeSIsImRhbmdlciJdLmNvbmNhdCgoMCxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV90b0NvbnN1bWFibGVBcnJheV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLlopKF90aGVtZV9pbnRlcmZhY2VfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5pKSl9LDgwNDQ3OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaUDpmdW5jdGlvbigpe3JldHVybiBlc19idXR0b259fSk7dmFyIGUsdCxyZWFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxjbGFzc25hbWVzPV9fd2VicGFja19yZXF1aXJlX18oMTMxNDQpLGNsYXNzbmFtZXNfZGVmYXVsdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oY2xhc3NuYW1lcyksb21pdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDEwMzY2KSxlc19yZWY9X193ZWJwYWNrX3JlcXVpcmVfXygxNzc5OSksaXNWaXNpYmxlPV9fd2VicGFja19yZXF1aXJlX18oNDgxMzApLGNvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzEyNCkscmVhY3ROb2RlPV9fd2VicGFja19yZXF1aXJlX18oOTYxNTkpLGdlblN0eWxlVXRpbHM9X193ZWJwYWNrX3JlcXVpcmVfXyg4MzU1OSk7bGV0IGdlbldhdmVTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHMsY29sb3JQcmltYXJ5fT10b2tlbjtyZXR1cm57W2NvbXBvbmVudENsc106e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLHBvaW50ZXJFdmVudHM6Im5vbmUiLGJveFNpemluZzoiYm9yZGVyLWJveCIsY29sb3I6YHZhcigtLXdhdmUtY29sb3IsICR7Y29sb3JQcmltYXJ5fSlgLGJveFNoYWRvdzoiMCAwIDAgMCBjdXJyZW50Y29sb3IiLG9wYWNpdHk6LjIsIiYud2F2ZS1tb3Rpb24tYXBwZWFyIjp7dHJhbnNpdGlvbjpgYm94LXNoYWRvdyAwLjRzICR7dG9rZW4ubW90aW9uRWFzZU91dENpcmN9LG9wYWNpdHkgMnMgJHt0b2tlbi5tb3Rpb25FYXNlT3V0Q2lyY31gLCImLWFjdGl2ZSI6e2JveFNoYWRvdzoiMCAwIDAgNnB4IGN1cnJlbnRjb2xvciIsb3BhY2l0eTowfSwiJi53YXZlLXF1aWNrIjp7dHJhbnNpdGlvbjpgYm94LXNoYWRvdyAke3Rva2VuLm1vdGlvbkR1cmF0aW9uU2xvd30gJHt0b2tlbi5tb3Rpb25FYXNlSW5PdXR9LG9wYWNpdHkgJHt0b2tlbi5tb3Rpb25EdXJhdGlvblNsb3d9ICR7dG9rZW4ubW90aW9uRWFzZUluT3V0fWB9fX19fTt2YXIgc3R5bGU9KDAsZ2VuU3R5bGVVdGlscy5BMSkoIldhdmUiLHRva2VuPT5bZ2VuV2F2ZVN0eWxlKHRva2VuKV0pLHVzZUV2ZW50PV9fd2VicGFja19yZXF1aXJlX18oNzc1MjcpLHJhZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDk2NTIzKSx0aGVtZV91c2VUb2tlbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDI1OTc2KTtsZXQgVEFSR0VUX0NMUz1gJHtjb250ZXh0LlJmfS13YXZlLXRhcmdldGA7dmFyIGVzPV9fd2VicGFja19yZXF1aXJlX18oMTU2MDIpLFVuc3RhYmxlQ29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ2MTQ3KTtmdW5jdGlvbiBpc1ZhbGlkV2F2ZUNvbG9yKGNvbG9yKXtyZXR1cm4gY29sb3ImJiIjZmZmIiE9PWNvbG9yJiYiI2ZmZmZmZiIhPT1jb2xvciYmInJnYigyNTUsIDI1NSwgMjU1KSIhPT1jb2xvciYmInJnYmEoMjU1LCAyNTUsIDI1NSwgMSkiIT09Y29sb3ImJiEvcmdiYVwoKD86XGQqLCApezN9MFwpLy50ZXN0KGNvbG9yKSYmInRyYW5zcGFyZW50IiE9PWNvbG9yfWZ1bmN0aW9uIHZhbGlkYXRlTnVtKHZhbHVlKXtyZXR1cm4gTnVtYmVyLmlzTmFOKHZhbHVlKT8wOnZhbHVlfWxldCBXYXZlRWZmZWN0PXByb3BzPT57bGV0e2NsYXNzTmFtZSx0YXJnZXQsY29tcG9uZW50LHJlZ2lzdGVyVW5tb3VudH09cHJvcHMsZGl2UmVmPXJlYWN0LnVzZVJlZihudWxsKSx1bm1vdW50UmVmPXJlYWN0LnVzZVJlZihudWxsKTtyZWFjdC51c2VFZmZlY3QoKCk9Pnt1bm1vdW50UmVmLmN1cnJlbnQ9cmVnaXN0ZXJVbm1vdW50KCl9LFtdKTtsZXRbY29sb3Isc2V0V2F2ZUNvbG9yXT1yZWFjdC51c2VTdGF0ZShudWxsKSxbYm9yZGVyUmFkaXVzLHNldEJvcmRlclJhZGl1c109cmVhY3QudXNlU3RhdGUoW10pLFtsZWZ0LHNldExlZnRdPXJlYWN0LnVzZVN0YXRlKDApLFt0b3Asc2V0VG9wXT1yZWFjdC51c2VTdGF0ZSgwKSxbd2lkdGgsc2V0V2lkdGhdPXJlYWN0LnVzZVN0YXRlKDApLFtoZWlnaHQsc2V0SGVpZ2h0XT1yZWFjdC51c2VTdGF0ZSgwKSxbZW5hYmxlZCxzZXRFbmFibGVkXT1yZWFjdC51c2VTdGF0ZSghMSksd2F2ZVN0eWxlPXtsZWZ0LHRvcCx3aWR0aCxoZWlnaHQsYm9yZGVyUmFkaXVzOmJvcmRlclJhZGl1cy5tYXAocmFkaXVzPT5gJHtyYWRpdXN9cHhgKS5qb2luKCIgIil9O2Z1bmN0aW9uIHN5bmNQb3MoKXtsZXQgbm9kZVN0eWxlPWdldENvbXB1dGVkU3R5bGUodGFyZ2V0KTtzZXRXYXZlQ29sb3IoZnVuY3Rpb24obm9kZSl7bGV0e2JvcmRlclRvcENvbG9yLGJvcmRlckNvbG9yLGJhY2tncm91bmRDb2xvcn09Z2V0Q29tcHV0ZWRTdHlsZShub2RlKTtyZXR1cm4gaXNWYWxpZFdhdmVDb2xvcihib3JkZXJUb3BDb2xvcik/Ym9yZGVyVG9wQ29sb3I6aXNWYWxpZFdhdmVDb2xvcihib3JkZXJDb2xvcik/Ym9yZGVyQ29sb3I6aXNWYWxpZFdhdmVDb2xvcihiYWNrZ3JvdW5kQ29sb3IpP2JhY2tncm91bmRDb2xvcjpudWxsfSh0YXJnZXQpKTtsZXQgaXNTdGF0aWM9InN0YXRpYyI9PT1ub2RlU3R5bGUucG9zaXRpb24se2JvcmRlckxlZnRXaWR0aCxib3JkZXJUb3BXaWR0aH09bm9kZVN0eWxlO3NldExlZnQoaXNTdGF0aWM/dGFyZ2V0Lm9mZnNldExlZnQ6dmFsaWRhdGVOdW0oLXBhcnNlRmxvYXQoYm9yZGVyTGVmdFdpZHRoKSkpLHNldFRvcChpc1N0YXRpYz90YXJnZXQub2Zmc2V0VG9wOnZhbGlkYXRlTnVtKC1wYXJzZUZsb2F0KGJvcmRlclRvcFdpZHRoKSkpLHNldFdpZHRoKHRhcmdldC5vZmZzZXRXaWR0aCksc2V0SGVpZ2h0KHRhcmdldC5vZmZzZXRIZWlnaHQpO2xldHtib3JkZXJUb3BMZWZ0UmFkaXVzLGJvcmRlclRvcFJpZ2h0UmFkaXVzLGJvcmRlckJvdHRvbUxlZnRSYWRpdXMsYm9yZGVyQm90dG9tUmlnaHRSYWRpdXN9PW5vZGVTdHlsZTtzZXRCb3JkZXJSYWRpdXMoW2JvcmRlclRvcExlZnRSYWRpdXMsYm9yZGVyVG9wUmlnaHRSYWRpdXMsYm9yZGVyQm90dG9tUmlnaHRSYWRpdXMsYm9yZGVyQm90dG9tTGVmdFJhZGl1c10ubWFwKHJhZGl1cz0+dmFsaWRhdGVOdW0ocGFyc2VGbG9hdChyYWRpdXMpKSkpfWlmKGNvbG9yJiYod2F2ZVN0eWxlWyItLXdhdmUtY29sb3IiXT1jb2xvcikscmVhY3QudXNlRWZmZWN0KCgpPT57aWYodGFyZ2V0KXtsZXQgcmVzaXplT2JzZXJ2ZXI7bGV0IGlkPSgwLHJhZi5aKSgoKT0+e3N5bmNQb3MoKSxzZXRFbmFibGVkKCEwKX0pO3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgUmVzaXplT2JzZXJ2ZXImJihyZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoc3luY1BvcykpLm9ic2VydmUodGFyZ2V0KSwoKT0+e3JhZi5aLmNhbmNlbChpZCksbnVsbD09cmVzaXplT2JzZXJ2ZXJ8fHJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKX19fSxbXSksIWVuYWJsZWQpcmV0dXJuIG51bGw7bGV0IGlzU21hbGxDb21wb25lbnQ9KCJDaGVja2JveCI9PT1jb21wb25lbnR8fCJSYWRpbyI9PT1jb21wb25lbnQpJiYobnVsbD09dGFyZ2V0P3ZvaWQgMDp0YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKFRBUkdFVF9DTFMpKTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChlcy5aUCx7dmlzaWJsZTohMCxtb3Rpb25BcHBlYXI6ITAsbW90aW9uTmFtZToid2F2ZS1tb3Rpb24iLG1vdGlvbkRlYWRsaW5lOjVlMyxvbkFwcGVhckVuZChfLGV2ZW50KXt2YXIgX2EsX2I7aWYoZXZlbnQuZGVhZGxpbmV8fCJvcGFjaXR5Ij09PWV2ZW50LnByb3BlcnR5TmFtZSl7bGV0IGhvbGRlcj1udWxsPT09KF9hPWRpdlJlZi5jdXJyZW50KXx8dm9pZCAwPT09X2E/dm9pZCAwOl9hLnBhcmVudEVsZW1lbnQ7bnVsbD09PShfYj11bm1vdW50UmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1fYnx8X2IuY2FsbCh1bm1vdW50UmVmKS50aGVuKCgpPT57bnVsbD09aG9sZGVyfHxob2xkZXIucmVtb3ZlKCl9KX1yZXR1cm4hMX19LChfcmVmLHJlZik9PntsZXR7Y2xhc3NOYW1lOm1vdGlvbkNsYXNzTmFtZX09X3JlZjtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOigwLGVzX3JlZi5zUSkoZGl2UmVmLHJlZiksY2xhc3NOYW1lOmNsYXNzbmFtZXNfZGVmYXVsdCgpKGNsYXNzTmFtZSxtb3Rpb25DbGFzc05hbWUseyJ3YXZlLXF1aWNrIjppc1NtYWxsQ29tcG9uZW50fSksc3R5bGU6d2F2ZVN0eWxlfSl9KX0sc2hvd1dhdmVFZmZlY3Q9KHRhcmdldCxpbmZvKT0+e3ZhciBfYTtsZXR7Y29tcG9uZW50fT1pbmZvO2lmKCJDaGVja2JveCI9PT1jb21wb25lbnQmJiEobnVsbD09PShfYT10YXJnZXQucXVlcnlTZWxlY3RvcigiaW5wdXQiKSl8fHZvaWQgMD09PV9hP3ZvaWQgMDpfYS5jaGVja2VkKSlyZXR1cm47bGV0IGhvbGRlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtob2xkZXIuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixob2xkZXIuc3R5bGUubGVmdD0iMHB4Iixob2xkZXIuc3R5bGUudG9wPSIwcHgiLG51bGw9PXRhcmdldHx8dGFyZ2V0Lmluc2VydEJlZm9yZShob2xkZXIsbnVsbD09dGFyZ2V0P3ZvaWQgMDp0YXJnZXQuZmlyc3RDaGlsZCk7bGV0IHJlYWN0UmVuZGVyPSgwLFVuc3RhYmxlQ29udGV4dC5xKSgpLHVubW91bnRDYWxsYmFjaz1udWxsO3VubW91bnRDYWxsYmFjaz1yZWFjdFJlbmRlcihyZWFjdC5jcmVhdGVFbGVtZW50KFdhdmVFZmZlY3QsT2JqZWN0LmFzc2lnbih7fSxpbmZvLHt0YXJnZXQ6dGFyZ2V0LHJlZ2lzdGVyVW5tb3VudDpmdW5jdGlvbigpe3JldHVybiB1bm1vdW50Q2FsbGJhY2t9fSkpLGhvbGRlcil9LHVzZVdhdmU9KG5vZGVSZWYsY2xhc3NOYW1lLGNvbXBvbmVudCk9PntsZXR7d2F2ZX09cmVhY3QudXNlQ29udGV4dChjb250ZXh0LkVfKSxbLHRva2VuLGhhc2hJZF09KDAsdGhlbWVfdXNlVG9rZW4uWlApKCksc2hvd1dhdmU9KDAsdXNlRXZlbnQuWikoZXZlbnQ9PntsZXQgbm9kZT1ub2RlUmVmLmN1cnJlbnQ7aWYoKG51bGw9PXdhdmU/dm9pZCAwOndhdmUuZGlzYWJsZWQpfHwhbm9kZSlyZXR1cm47bGV0IHRhcmdldE5vZGU9bm9kZS5xdWVyeVNlbGVjdG9yKGAuJHtUQVJHRVRfQ0xTfWApfHxub2RlLHtzaG93RWZmZWN0fT13YXZlfHx7fTsoc2hvd0VmZmVjdHx8c2hvd1dhdmVFZmZlY3QpKHRhcmdldE5vZGUse2NsYXNzTmFtZSx0b2tlbixjb21wb25lbnQsZXZlbnQsaGFzaElkfSl9KSxyYWZJZD1yZWFjdC51c2VSZWYobnVsbCksc2hvd0RlYm91bmNlV2F2ZT1ldmVudD0+e3JhZi5aLmNhbmNlbChyYWZJZC5jdXJyZW50KSxyYWZJZC5jdXJyZW50PSgwLHJhZi5aKSgoKT0+e3Nob3dXYXZlKGV2ZW50KX0pfTtyZXR1cm4gc2hvd0RlYm91bmNlV2F2ZX0sV2F2ZT1wcm9wcz0+e2xldHtjaGlsZHJlbixkaXNhYmxlZCxjb21wb25lbnR9PXByb3BzLHtnZXRQcmVmaXhDbHN9PSgwLHJlYWN0LnVzZUNvbnRleHQpKGNvbnRleHQuRV8pLGNvbnRhaW5lclJlZj0oMCxyZWFjdC51c2VSZWYpKG51bGwpLHByZWZpeENscz1nZXRQcmVmaXhDbHMoIndhdmUiKSxbLGhhc2hJZF09c3R5bGUocHJlZml4Q2xzKSxzaG93V2F2ZT11c2VXYXZlKGNvbnRhaW5lclJlZixjbGFzc25hbWVzX2RlZmF1bHQoKShwcmVmaXhDbHMsaGFzaElkKSxjb21wb25lbnQpO2lmKHJlYWN0LnVzZUVmZmVjdCgoKT0+e2xldCBub2RlPWNvbnRhaW5lclJlZi5jdXJyZW50O2lmKCFub2RlfHwxIT09bm9kZS5ub2RlVHlwZXx8ZGlzYWJsZWQpcmV0dXJuO2xldCBvbkNsaWNrPWU9PnshKDAsaXNWaXNpYmxlLlopKGUudGFyZ2V0KXx8IW5vZGUuZ2V0QXR0cmlidXRlfHxub2RlLmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKXx8bm9kZS5kaXNhYmxlZHx8bm9kZS5jbGFzc05hbWUuaW5jbHVkZXMoImRpc2FibGVkIil8fG5vZGUuY2xhc3NOYW1lLmluY2x1ZGVzKCItbGVhdmUiKXx8c2hvd1dhdmUoZSl9O3JldHVybiBub2RlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixvbkNsaWNrLCEwKSwoKT0+e25vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLG9uQ2xpY2ssITApfX0sW2Rpc2FibGVkXSksIXJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSlyZXR1cm4gbnVsbCE9Y2hpbGRyZW4/Y2hpbGRyZW46bnVsbDtsZXQgcmVmPSgwLGVzX3JlZi5ZcikoY2hpbGRyZW4pPygwLGVzX3JlZi5zUSkoKDAsZXNfcmVmLkM0KShjaGlsZHJlbiksY29udGFpbmVyUmVmKTpjb250YWluZXJSZWY7cmV0dXJuKDAscmVhY3ROb2RlLlRtKShjaGlsZHJlbix7cmVmfSl9O3ZhciBEaXNhYmxlZENvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg5ODg2NiksdXNlU2l6ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk4Njc1KSxDb21wYWN0PV9fd2VicGFja19yZXF1aXJlX18oNDE3MyksX19yZXN0PWZ1bmN0aW9uKHMsZSl7dmFyIHQ9e307Zm9yKHZhciBwIGluIHMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMscCkmJjA+ZS5pbmRleE9mKHApJiYodFtwXT1zW3BdKTtpZihudWxsIT1zJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scylmb3IodmFyIGk9MCxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7aTxwLmxlbmd0aDtpKyspMD5lLmluZGV4T2YocFtpXSkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLHBbaV0pJiYodFtwW2ldXT1zW3BbaV1dKTtyZXR1cm4gdH07bGV0IEdyb3VwU2l6ZUNvbnRleHQ9cmVhY3QuY3JlYXRlQ29udGV4dCh2b2lkIDApLEJ1dHRvbkdyb3VwPXByb3BzPT57bGV0e2dldFByZWZpeENscyxkaXJlY3Rpb259PXJlYWN0LnVzZUNvbnRleHQoY29udGV4dC5FXykse3ByZWZpeENsczpjdXN0b21pemVQcmVmaXhDbHMsc2l6ZSxjbGFzc05hbWV9PXByb3BzLG90aGVycz1fX3Jlc3QocHJvcHMsWyJwcmVmaXhDbHMiLCJzaXplIiwiY2xhc3NOYW1lIl0pLHByZWZpeENscz1nZXRQcmVmaXhDbHMoImJ0bi1ncm91cCIsY3VzdG9taXplUHJlZml4Q2xzKSxbLCxoYXNoSWRdPSgwLHRoZW1lX3VzZVRva2VuLlpQKSgpLHNpemVDbHM9cmVhY3QudXNlTWVtbygoKT0+e3N3aXRjaChzaXplKXtjYXNlImxhcmdlIjpyZXR1cm4ibGciO2Nhc2Uic21hbGwiOnJldHVybiJzbSI7ZGVmYXVsdDpyZXR1cm4iIn19LFtzaXplXSksY2xhc3Nlcz1jbGFzc25hbWVzX2RlZmF1bHQoKShwcmVmaXhDbHMse1tgJHtwcmVmaXhDbHN9LSR7c2l6ZUNsc31gXTpzaXplQ2xzLFtgJHtwcmVmaXhDbHN9LXJ0bGBdOiJydGwiPT09ZGlyZWN0aW9ufSxjbGFzc05hbWUsaGFzaElkKTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChHcm91cFNpemVDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpzaXplfSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLE9iamVjdC5hc3NpZ24oe30sb3RoZXJzLHtjbGFzc05hbWU6Y2xhc3Nlc30pKSl9O3ZhciBidXR0b25IZWxwZXJzPV9fd2VicGFja19yZXF1aXJlX18oMzM2NzEpLExvYWRpbmdPdXRsaW5lZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDUwODg4KTtsZXQgSWNvbldyYXBwZXI9KDAscmVhY3QuZm9yd2FyZFJlZikoKHByb3BzLHJlZik9PntsZXR7Y2xhc3NOYW1lLHN0eWxlLGNoaWxkcmVuLHByZWZpeENsc309cHJvcHMsaWNvbldyYXBwZXJDbHM9Y2xhc3NuYW1lc19kZWZhdWx0KCkoYCR7cHJlZml4Q2xzfS1pY29uYCxjbGFzc05hbWUpO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7cmVmOnJlZixjbGFzc05hbWU6aWNvbldyYXBwZXJDbHMsc3R5bGU6c3R5bGV9LGNoaWxkcmVuKX0pLElubmVyTG9hZGluZ0ljb249KDAscmVhY3QuZm9yd2FyZFJlZikoKHByb3BzLHJlZik9PntsZXR7cHJlZml4Q2xzLGNsYXNzTmFtZSxzdHlsZSxpY29uQ2xhc3NOYW1lfT1wcm9wcyxtZXJnZWRJY29uQ2xzPWNsYXNzbmFtZXNfZGVmYXVsdCgpKGAke3ByZWZpeENsc30tbG9hZGluZy1pY29uYCxjbGFzc05hbWUpO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KEljb25XcmFwcGVyLHtwcmVmaXhDbHM6cHJlZml4Q2xzLGNsYXNzTmFtZTptZXJnZWRJY29uQ2xzLHN0eWxlOnN0eWxlLHJlZjpyZWZ9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoTG9hZGluZ091dGxpbmVkLlose2NsYXNzTmFtZTppY29uQ2xhc3NOYW1lfSkpfSksZ2V0Q29sbGFwc2VkV2lkdGg9KCk9Pih7d2lkdGg6MCxvcGFjaXR5OjAsdHJhbnNmb3JtOiJzY2FsZSgwKSJ9KSxnZXRSZWFsV2lkdGg9bm9kZT0+KHt3aWR0aDpub2RlLnNjcm9sbFdpZHRoLG9wYWNpdHk6MSx0cmFuc2Zvcm06InNjYWxlKDEpIn0pLERlZmF1bHRMb2FkaW5nSWNvbj1wcm9wcz0+e2xldHtwcmVmaXhDbHMsbG9hZGluZyxleGlzdEljb24sY2xhc3NOYW1lLHN0eWxlLG1vdW50fT1wcm9wcztyZXR1cm4gZXhpc3RJY29uP3JlYWN0LmNyZWF0ZUVsZW1lbnQoSW5uZXJMb2FkaW5nSWNvbix7cHJlZml4Q2xzOnByZWZpeENscyxjbGFzc05hbWU6Y2xhc3NOYW1lLHN0eWxlOnN0eWxlfSk6cmVhY3QuY3JlYXRlRWxlbWVudChlcy5aUCx7dmlzaWJsZTohIWxvYWRpbmcsbW90aW9uTmFtZTpgJHtwcmVmaXhDbHN9LWxvYWRpbmctaWNvbi1tb3Rpb25gLG1vdGlvbkFwcGVhcjohbW91bnQsbW90aW9uRW50ZXI6IW1vdW50LG1vdGlvbkxlYXZlOiFtb3VudCxyZW1vdmVPbkxlYXZlOiEwLG9uQXBwZWFyU3RhcnQ6Z2V0Q29sbGFwc2VkV2lkdGgsb25BcHBlYXJBY3RpdmU6Z2V0UmVhbFdpZHRoLG9uRW50ZXJTdGFydDpnZXRDb2xsYXBzZWRXaWR0aCxvbkVudGVyQWN0aXZlOmdldFJlYWxXaWR0aCxvbkxlYXZlU3RhcnQ6Z2V0UmVhbFdpZHRoLG9uTGVhdmVBY3RpdmU6Z2V0Q29sbGFwc2VkV2lkdGh9LChfcmVmLHJlZik9PntsZXR7Y2xhc3NOYW1lOm1vdGlvbkNscyxzdHlsZTptb3Rpb25TdHlsZX09X3JlZixtZXJnZWRTdHlsZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sc3R5bGUpLG1vdGlvblN0eWxlKTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChJbm5lckxvYWRpbmdJY29uLHtwcmVmaXhDbHM6cHJlZml4Q2xzLGNsYXNzTmFtZTpjbGFzc25hbWVzX2RlZmF1bHQoKShjbGFzc05hbWUsbW90aW9uQ2xzKSxzdHlsZTptZXJnZWRTdHlsZSxyZWY6cmVmfSl9KX07dmFyIGNzc2luanNfZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0NDg5OSksZXNfc3R5bGU9X193ZWJwYWNrX3JlcXVpcmVfXygxNDc0NykscHJlc2V0Q29sb3JzPV9fd2VicGFja19yZXF1aXJlX18oODc5NiksY3NzaW5qc191dGlsc19lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQyNTU5KTtsZXQgZ2VuQnV0dG9uQm9yZGVyU3R5bGU9KGJ1dHRvblR5cGVDbHMsYm9yZGVyQ29sb3IpPT4oe1tgPiBzcGFuLCA+ICR7YnV0dG9uVHlwZUNsc31gXTp7IiY6bm90KDpsYXN0LWNoaWxkKSI6e1tgJiwgJiA+ICR7YnV0dG9uVHlwZUNsc31gXTp7IiY6bm90KDpkaXNhYmxlZCkiOntib3JkZXJJbmxpbmVFbmRDb2xvcjpib3JkZXJDb2xvcn19fSwiJjpub3QoOmZpcnN0LWNoaWxkKSI6e1tgJiwgJiA+ICR7YnV0dG9uVHlwZUNsc31gXTp7IiY6bm90KDpkaXNhYmxlZCkiOntib3JkZXJJbmxpbmVTdGFydENvbG9yOmJvcmRlckNvbG9yfX19fX0pLGdlbkdyb3VwU3R5bGU9dG9rZW49PntsZXR7Y29tcG9uZW50Q2xzLGZvbnRTaXplLGxpbmVXaWR0aCxncm91cEJvcmRlckNvbG9yLGNvbG9yRXJyb3JIb3Zlcn09dG9rZW47cmV0dXJue1tgJHtjb21wb25lbnRDbHN9LWdyb3VwYF06W3twb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImlubGluZS1mbGV4IixbYD4gc3BhbiwgPiAke2NvbXBvbmVudENsc31gXTp7IiY6bm90KDpsYXN0LWNoaWxkKSI6e1tgJiwgJiA+ICR7Y29tcG9uZW50Q2xzfWBdOntib3JkZXJTdGFydEVuZFJhZGl1czowLGJvcmRlckVuZEVuZFJhZGl1czowfX0sIiY6bm90KDpmaXJzdC1jaGlsZCkiOnttYXJnaW5JbmxpbmVTdGFydDp0b2tlbi5jYWxjKGxpbmVXaWR0aCkubXVsKC0xKS5lcXVhbCgpLFtgJiwgJiA+ICR7Y29tcG9uZW50Q2xzfWBdOntib3JkZXJTdGFydFN0YXJ0UmFkaXVzOjAsYm9yZGVyRW5kU3RhcnRSYWRpdXM6MH19fSxbY29tcG9uZW50Q2xzXTp7cG9zaXRpb246InJlbGF0aXZlIix6SW5kZXg6MSwiJjpob3ZlciwgJjpmb2N1cywgJjphY3RpdmUiOnt6SW5kZXg6Mn0sIiZbZGlzYWJsZWRdIjp7ekluZGV4OjB9fSxbYCR7Y29tcG9uZW50Q2xzfS1pY29uLW9ubHlgXTp7Zm9udFNpemV9fSxnZW5CdXR0b25Cb3JkZXJTdHlsZShgJHtjb21wb25lbnRDbHN9LXByaW1hcnlgLGdyb3VwQm9yZGVyQ29sb3IpLGdlbkJ1dHRvbkJvcmRlclN0eWxlKGAke2NvbXBvbmVudENsc30tZGFuZ2VyYCxjb2xvckVycm9ySG92ZXIpXX19O2Z1bmN0aW9uIF90eXBlb2Yobyl7cmV0dXJuKF90eXBlb2Y9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24obyl7cmV0dXJuIHR5cGVvZiBvfTpmdW5jdGlvbihvKXtyZXR1cm4gbyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmby5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmbyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIG99KShvKX1mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyhlLHIpe2Zvcih2YXIgdD0wO3Q8ci5sZW5ndGg7dCsrKXt2YXIgbz1yW3RdO28uZW51bWVyYWJsZT1vLmVudW1lcmFibGV8fCExLG8uY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBvJiYoby53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsZnVuY3Rpb24odCl7dmFyIGk9ZnVuY3Rpb24odCxyKXtpZigib2JqZWN0IiE9X3R5cGVvZih0KXx8IXQpcmV0dXJuIHQ7dmFyIGU9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWUpe3ZhciBpPWUuY2FsbCh0LHJ8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPV90eXBlb2YoaSkpcmV0dXJuIGk7dGhyb3cgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PXI/U3RyaW5nOk51bWJlcikodCl9KHQsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT1fdHlwZW9mKGkpP2k6aSsiIn0oby5rZXkpLG8pfX12YXIgY29sb3JfcGlja2VyX2VzPV9fd2VicGFja19yZXF1aXJlX18oMTIxNjApO2xldCB0b0hleEZvcm1hdD0odmFsdWUsYWxwaGEpPT4obnVsbD09dmFsdWU/dm9pZCAwOnZhbHVlLnJlcGxhY2UoL1teXHcvXS9nLCIiKS5zbGljZSgwLGFscGhhPzg6NikpfHwiIixnZXRIZXg9KHZhbHVlLGFscGhhKT0+dmFsdWU/dG9IZXhGb3JtYXQodmFsdWUsYWxwaGEpOiIiLEFnZ3JlZ2F0aW9uQ29sb3I9KF9kZWZpbmVQcm9wZXJ0aWVzKChlPWZ1bmN0aW9uIEFnZ3JlZ2F0aW9uQ29sb3IoY29sb3Ipe3ZhciBfYTtpZihmdW5jdGlvbihhLG4pe2lmKCEoYSBpbnN0YW5jZW9mIG4pKXRocm93IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsQWdncmVnYXRpb25Db2xvciksdGhpcy5jbGVhcmVkPSExLGNvbG9yIGluc3RhbmNlb2YgQWdncmVnYXRpb25Db2xvcil7dGhpcy5tZXRhQ29sb3I9Y29sb3IubWV0YUNvbG9yLmNsb25lKCksdGhpcy5jb2xvcnM9bnVsbD09PShfYT1jb2xvci5jb2xvcnMpfHx2b2lkIDA9PT1fYT92b2lkIDA6X2EubWFwKGluZm89Pih7Y29sb3I6bmV3IEFnZ3JlZ2F0aW9uQ29sb3IoaW5mby5jb2xvcikscGVyY2VudDppbmZvLnBlcmNlbnR9KSksdGhpcy5jbGVhcmVkPWNvbG9yLmNsZWFyZWQ7cmV0dXJufWxldCBpc0FycmF5PUFycmF5LmlzQXJyYXkoY29sb3IpO2lzQXJyYXkmJmNvbG9yLmxlbmd0aD8odGhpcy5jb2xvcnM9Y29sb3IubWFwKF9yZWY9PntsZXR7Y29sb3I6YyxwZXJjZW50fT1fcmVmO3JldHVybntjb2xvcjpuZXcgQWdncmVnYXRpb25Db2xvcihjKSxwZXJjZW50fX0pLHRoaXMubWV0YUNvbG9yPW5ldyBjb2xvcl9waWNrZXJfZXMuSWwodGhpcy5jb2xvcnNbMF0uY29sb3IubWV0YUNvbG9yKSk6dGhpcy5tZXRhQ29sb3I9bmV3IGNvbG9yX3BpY2tlcl9lcy5JbChpc0FycmF5PyIiOmNvbG9yKSxjb2xvciYmKCFpc0FycmF5fHx0aGlzLmNvbG9ycyl8fCh0aGlzLm1ldGFDb2xvcj10aGlzLm1ldGFDb2xvci5zZXRBKDApLHRoaXMuY2xlYXJlZD0hMCl9KS5wcm90b3R5cGUsW3trZXk6InRvSHNiIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1ldGFDb2xvci50b0hzYigpfX0se2tleToidG9Ic2JTdHJpbmciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWV0YUNvbG9yLnRvSHNiU3RyaW5nKCl9fSx7a2V5OiJ0b0hleCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZ2V0SGV4KHRoaXMudG9IZXhTdHJpbmcoKSx0aGlzLm1ldGFDb2xvci5hPDEpfX0se2tleToidG9IZXhTdHJpbmciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWV0YUNvbG9yLnRvSGV4U3RyaW5nKCl9fSx7a2V5OiJ0b1JnYiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZXRhQ29sb3IudG9SZ2IoKX19LHtrZXk6InRvUmdiU3RyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1ldGFDb2xvci50b1JnYlN0cmluZygpfX0se2tleToiaXNHcmFkaWVudCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuY29sb3JzJiYhdGhpcy5jbGVhcmVkfX0se2tleToiZ2V0Q29sb3JzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbG9yc3x8W3tjb2xvcjp0aGlzLHBlcmNlbnQ6MH1dfX0se2tleToidG9Dc3NTdHJpbmciLHZhbHVlOmZ1bmN0aW9uKCl7bGV0e2NvbG9yc309dGhpcztpZihjb2xvcnMpe2xldCBjb2xvcnNTdHI9Y29sb3JzLm1hcChjPT5gJHtjLmNvbG9yLnRvUmdiU3RyaW5nKCl9ICR7Yy5wZXJjZW50fSVgKS5qb2luKCIsICIpO3JldHVybmBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICR7Y29sb3JzU3RyfSlgfXJldHVybiB0aGlzLm1ldGFDb2xvci50b1JnYlN0cmluZygpfX0se2tleToiZXF1YWxzIix2YWx1ZTpmdW5jdGlvbihjb2xvcil7cmV0dXJuISFjb2xvciYmdGhpcy5pc0dyYWRpZW50KCk9PT1jb2xvci5pc0dyYWRpZW50KCkmJih0aGlzLmlzR3JhZGllbnQoKT90aGlzLmNvbG9ycy5sZW5ndGg9PT1jb2xvci5jb2xvcnMubGVuZ3RoJiZ0aGlzLmNvbG9ycy5ldmVyeSgoYyxpKT0+e2xldCB0YXJnZXQ9Y29sb3IuY29sb3JzW2ldO3JldHVybiBjLnBlcmNlbnQ9PT10YXJnZXQucGVyY2VudCYmYy5jb2xvci5lcXVhbHModGFyZ2V0LmNvbG9yKX0pOnRoaXMudG9IZXhTdHJpbmcoKT09PWNvbG9yLnRvSGV4U3RyaW5nKCkpfX1dKSx0JiZfZGVmaW5lUHJvcGVydGllcyhlLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGUpO19fd2VicGFja19yZXF1aXJlX18oNTY2Myk7bGV0IGlzQnJpZ2h0PSh2YWx1ZSxiZ0NvbG9yVG9rZW4pPT57bGV0e3IsZyxiLGF9PXZhbHVlLnRvUmdiKCksaHN2PW5ldyBjb2xvcl9waWNrZXJfZXMuSWwodmFsdWUudG9SZ2JTdHJpbmcoKSkub25CYWNrZ3JvdW5kKGJnQ29sb3JUb2tlbikudG9Ic3YoKTtyZXR1cm4gYTw9LjU/aHN2LnY+LjU6LjI5OSpyKy41ODcqZysuMTE0KmI+MTkyfTt2YXIgZ2VuRm9udFNpemVzPV9fd2VicGFja19yZXF1aXJlX18oNTE3MzQpLGdldEFscGhhQ29sb3I9X193ZWJwYWNrX3JlcXVpcmVfXyg0MjY0Mik7bGV0IHByZXBhcmVUb2tlbj10b2tlbj0+e2xldHtwYWRkaW5nSW5saW5lLG9ubHlJY29uU2l6ZX09dG9rZW4sYnV0dG9uVG9rZW49KDAsY3NzaW5qc191dGlsc19lcy5JWCkodG9rZW4se2J1dHRvblBhZGRpbmdIb3Jpem9udGFsOnBhZGRpbmdJbmxpbmUsYnV0dG9uUGFkZGluZ1ZlcnRpY2FsOjAsYnV0dG9uSWNvbk9ubHlGb250U2l6ZTpvbmx5SWNvblNpemV9KTtyZXR1cm4gYnV0dG9uVG9rZW59LHByZXBhcmVDb21wb25lbnRUb2tlbj10b2tlbj0+e3ZhciBfYSxfYixfYyxfZCxfZSxfZjtsZXQgY29udGVudEZvbnRTaXplPW51bGwhPT0oX2E9dG9rZW4uY29udGVudEZvbnRTaXplKSYmdm9pZCAwIT09X2E/X2E6dG9rZW4uZm9udFNpemUsY29udGVudEZvbnRTaXplU009bnVsbCE9PShfYj10b2tlbi5jb250ZW50Rm9udFNpemVTTSkmJnZvaWQgMCE9PV9iP19iOnRva2VuLmZvbnRTaXplLGNvbnRlbnRGb250U2l6ZUxHPW51bGwhPT0oX2M9dG9rZW4uY29udGVudEZvbnRTaXplTEcpJiZ2b2lkIDAhPT1fYz9fYzp0b2tlbi5mb250U2l6ZUxHLGNvbnRlbnRMaW5lSGVpZ2h0PW51bGwhPT0oX2Q9dG9rZW4uY29udGVudExpbmVIZWlnaHQpJiZ2b2lkIDAhPT1fZD9fZDooMCxnZW5Gb250U2l6ZXMuRCkoY29udGVudEZvbnRTaXplKSxjb250ZW50TGluZUhlaWdodFNNPW51bGwhPT0oX2U9dG9rZW4uY29udGVudExpbmVIZWlnaHRTTSkmJnZvaWQgMCE9PV9lP19lOigwLGdlbkZvbnRTaXplcy5EKShjb250ZW50Rm9udFNpemVTTSksY29udGVudExpbmVIZWlnaHRMRz1udWxsIT09KF9mPXRva2VuLmNvbnRlbnRMaW5lSGVpZ2h0TEcpJiZ2b2lkIDAhPT1fZj9fZjooMCxnZW5Gb250U2l6ZXMuRCkoY29udGVudEZvbnRTaXplTEcpLHNvbGlkVGV4dENvbG9yPWlzQnJpZ2h0KG5ldyBBZ2dyZWdhdGlvbkNvbG9yKHRva2VuLmNvbG9yQmdTb2xpZCksIiNmZmYiKT8iIzAwMCI6IiNmZmYiLHNoYWRvd0NvbG9yVG9rZW5zPXByZXNldENvbG9ycy5pLnJlZHVjZSgocHJldixjb2xvcktleSk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxwcmV2KSx7W2Ake2NvbG9yS2V5fVNoYWRvd0NvbG9yYF06YDAgJHsoMCxjc3NpbmpzX2VzLmJmKSh0b2tlbi5jb250cm9sT3V0bGluZVdpZHRoKX0gMCAkeygwLGdldEFscGhhQ29sb3IuWikodG9rZW5bYCR7Y29sb3JLZXl9MWBdLHRva2VuLmNvbG9yQmdDb250YWluZXIpfWB9KSx7fSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxzaGFkb3dDb2xvclRva2Vucykse2ZvbnRXZWlnaHQ6NDAwLGRlZmF1bHRTaGFkb3c6YDAgJHt0b2tlbi5jb250cm9sT3V0bGluZVdpZHRofXB4IDAgJHt0b2tlbi5jb250cm9sVG1wT3V0bGluZX1gLHByaW1hcnlTaGFkb3c6YDAgJHt0b2tlbi5jb250cm9sT3V0bGluZVdpZHRofXB4IDAgJHt0b2tlbi5jb250cm9sT3V0bGluZX1gLGRhbmdlclNoYWRvdzpgMCAke3Rva2VuLmNvbnRyb2xPdXRsaW5lV2lkdGh9cHggMCAke3Rva2VuLmNvbG9yRXJyb3JPdXRsaW5lfWAscHJpbWFyeUNvbG9yOnRva2VuLmNvbG9yVGV4dExpZ2h0U29saWQsZGFuZ2VyQ29sb3I6dG9rZW4uY29sb3JUZXh0TGlnaHRTb2xpZCxib3JkZXJDb2xvckRpc2FibGVkOnRva2VuLmNvbG9yQm9yZGVyLGRlZmF1bHRHaG9zdENvbG9yOnRva2VuLmNvbG9yQmdDb250YWluZXIsZ2hvc3RCZzoidHJhbnNwYXJlbnQiLGRlZmF1bHRHaG9zdEJvcmRlckNvbG9yOnRva2VuLmNvbG9yQmdDb250YWluZXIscGFkZGluZ0lubGluZTp0b2tlbi5wYWRkaW5nQ29udGVudEhvcml6b250YWwtdG9rZW4ubGluZVdpZHRoLHBhZGRpbmdJbmxpbmVMRzp0b2tlbi5wYWRkaW5nQ29udGVudEhvcml6b250YWwtdG9rZW4ubGluZVdpZHRoLHBhZGRpbmdJbmxpbmVTTTo4LXRva2VuLmxpbmVXaWR0aCxvbmx5SWNvblNpemU6ImluaGVyaXQiLG9ubHlJY29uU2l6ZVNNOiJpbmhlcml0Iixvbmx5SWNvblNpemVMRzoiaW5oZXJpdCIsZ3JvdXBCb3JkZXJDb2xvcjp0b2tlbi5jb2xvclByaW1hcnlIb3ZlcixsaW5rSG92ZXJCZzoidHJhbnNwYXJlbnQiLHRleHRUZXh0Q29sb3I6dG9rZW4uY29sb3JUZXh0LHRleHRUZXh0SG92ZXJDb2xvcjp0b2tlbi5jb2xvclRleHQsdGV4dFRleHRBY3RpdmVDb2xvcjp0b2tlbi5jb2xvclRleHQsdGV4dEhvdmVyQmc6dG9rZW4uY29sb3JGaWxsVGVydGlhcnksZGVmYXVsdENvbG9yOnRva2VuLmNvbG9yVGV4dCxkZWZhdWx0Qmc6dG9rZW4uY29sb3JCZ0NvbnRhaW5lcixkZWZhdWx0Qm9yZGVyQ29sb3I6dG9rZW4uY29sb3JCb3JkZXIsZGVmYXVsdEJvcmRlckNvbG9yRGlzYWJsZWQ6dG9rZW4uY29sb3JCb3JkZXIsZGVmYXVsdEhvdmVyQmc6dG9rZW4uY29sb3JCZ0NvbnRhaW5lcixkZWZhdWx0SG92ZXJDb2xvcjp0b2tlbi5jb2xvclByaW1hcnlIb3ZlcixkZWZhdWx0SG92ZXJCb3JkZXJDb2xvcjp0b2tlbi5jb2xvclByaW1hcnlIb3ZlcixkZWZhdWx0QWN0aXZlQmc6dG9rZW4uY29sb3JCZ0NvbnRhaW5lcixkZWZhdWx0QWN0aXZlQ29sb3I6dG9rZW4uY29sb3JQcmltYXJ5QWN0aXZlLGRlZmF1bHRBY3RpdmVCb3JkZXJDb2xvcjp0b2tlbi5jb2xvclByaW1hcnlBY3RpdmUsc29saWRUZXh0Q29sb3IsY29udGVudEZvbnRTaXplLGNvbnRlbnRGb250U2l6ZVNNLGNvbnRlbnRGb250U2l6ZUxHLGNvbnRlbnRMaW5lSGVpZ2h0LGNvbnRlbnRMaW5lSGVpZ2h0U00sY29udGVudExpbmVIZWlnaHRMRyxwYWRkaW5nQmxvY2s6TWF0aC5tYXgoKHRva2VuLmNvbnRyb2xIZWlnaHQtY29udGVudEZvbnRTaXplKmNvbnRlbnRMaW5lSGVpZ2h0KS8yLXRva2VuLmxpbmVXaWR0aCwwKSxwYWRkaW5nQmxvY2tTTTpNYXRoLm1heCgodG9rZW4uY29udHJvbEhlaWdodFNNLWNvbnRlbnRGb250U2l6ZVNNKmNvbnRlbnRMaW5lSGVpZ2h0U00pLzItdG9rZW4ubGluZVdpZHRoLDApLHBhZGRpbmdCbG9ja0xHOk1hdGgubWF4KCh0b2tlbi5jb250cm9sSGVpZ2h0TEctY29udGVudEZvbnRTaXplTEcqY29udGVudExpbmVIZWlnaHRMRykvMi10b2tlbi5saW5lV2lkdGgsMCl9KX0sZ2VuU2hhcmVkQnV0dG9uU3R5bGU9dG9rZW49PntsZXR7Y29tcG9uZW50Q2xzLGljb25DbHMsZm9udFdlaWdodCxvcGFjaXR5TG9hZGluZyxtb3Rpb25EdXJhdGlvblNsb3csbW90aW9uRWFzZUluT3V0LG1hcmdpblhTLGNhbGN9PXRva2VuO3JldHVybntbY29tcG9uZW50Q2xzXTp7b3V0bGluZToibm9uZSIscG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJpbmxpbmUtZmxleCIsZ2FwOnRva2VuLm1hcmdpblhTLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciIsZm9udFdlaWdodCx3aGl0ZVNwYWNlOiJub3dyYXAiLHRleHRBbGlnbjoiY2VudGVyIixiYWNrZ3JvdW5kSW1hZ2U6Im5vbmUiLGJhY2tncm91bmQ6InRyYW5zcGFyZW50Iixib3JkZXI6YCR7KDAsY3NzaW5qc19lcy5iZikodG9rZW4ubGluZVdpZHRoKX0gJHt0b2tlbi5saW5lVHlwZX0gdHJhbnNwYXJlbnRgLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7dG9rZW4ubW90aW9uRHVyYXRpb25NaWR9ICR7dG9rZW4ubW90aW9uRWFzZUluT3V0fWAsdXNlclNlbGVjdDoibm9uZSIsdG91Y2hBY3Rpb246Im1hbmlwdWxhdGlvbiIsY29sb3I6dG9rZW4uY29sb3JUZXh0LCImOmRpc2FibGVkID4gKiI6e3BvaW50ZXJFdmVudHM6Im5vbmUifSxbYCR7Y29tcG9uZW50Q2xzfS1pY29uID4gc3ZnYF06KDAsZXNfc3R5bGUuUm8pKCksIj4gYSI6e2NvbG9yOiJjdXJyZW50Q29sb3IifSwiJjpub3QoOmRpc2FibGVkKSI6KDAsZXNfc3R5bGUuUXkpKHRva2VuKSxbYCYke2NvbXBvbmVudENsc30tdHdvLWNoaW5lc2UtY2hhcnM6OmZpcnN0LWxldHRlcmBdOntsZXR0ZXJTcGFjaW5nOiIwLjM0ZW0ifSxbYCYke2NvbXBvbmVudENsc30tdHdvLWNoaW5lc2UtY2hhcnMgPiAqOm5vdCgke2ljb25DbHN9KWBdOnttYXJnaW5JbmxpbmVFbmQ6Ii0wLjM0ZW0iLGxldHRlclNwYWNpbmc6IjAuMzRlbSJ9LFtgJiR7Y29tcG9uZW50Q2xzfS1pY29uLW9ubHlgXTp7cGFkZGluZ0lubGluZTowLFtgJiR7Y29tcG9uZW50Q2xzfS1jb21wYWN0LWl0ZW1gXTp7ZmxleDoibm9uZSJ9LFtgJiR7Y29tcG9uZW50Q2xzfS1yb3VuZGBdOnt3aWR0aDoiYXV0byJ9fSxbYCYke2NvbXBvbmVudENsc30tbG9hZGluZ2BdOntvcGFjaXR5Om9wYWNpdHlMb2FkaW5nLGN1cnNvcjoiZGVmYXVsdCJ9LFtgJHtjb21wb25lbnRDbHN9LWxvYWRpbmctaWNvbmBdOnt0cmFuc2l0aW9uOlsid2lkdGgiLCJvcGFjaXR5IiwibWFyZ2luIl0ubWFwKHRyYW5zaXRpb249PmAke3RyYW5zaXRpb259ICR7bW90aW9uRHVyYXRpb25TbG93fSAke21vdGlvbkVhc2VJbk91dH1gKS5qb2luKCIsIil9LFtgJjpub3QoJHtjb21wb25lbnRDbHN9LWljb24tZW5kKWBdOntbYCR7Y29tcG9uZW50Q2xzfS1sb2FkaW5nLWljb24tbW90aW9uYF06eyImLWFwcGVhci1zdGFydCwgJi1lbnRlci1zdGFydCI6e21hcmdpbklubGluZUVuZDpjYWxjKG1hcmdpblhTKS5tdWwoLTEpLmVxdWFsKCl9LCImLWFwcGVhci1hY3RpdmUsICYtZW50ZXItYWN0aXZlIjp7bWFyZ2luSW5saW5lRW5kOjB9LCImLWxlYXZlLXN0YXJ0Ijp7bWFyZ2luSW5saW5lRW5kOjB9LCImLWxlYXZlLWFjdGl2ZSI6e21hcmdpbklubGluZUVuZDpjYWxjKG1hcmdpblhTKS5tdWwoLTEpLmVxdWFsKCl9fX0sIiYtaWNvbi1lbmQiOntmbGV4RGlyZWN0aW9uOiJyb3ctcmV2ZXJzZSIsW2Ake2NvbXBvbmVudENsc30tbG9hZGluZy1pY29uLW1vdGlvbmBdOnsiJi1hcHBlYXItc3RhcnQsICYtZW50ZXItc3RhcnQiOnttYXJnaW5JbmxpbmVTdGFydDpjYWxjKG1hcmdpblhTKS5tdWwoLTEpLmVxdWFsKCl9LCImLWFwcGVhci1hY3RpdmUsICYtZW50ZXItYWN0aXZlIjp7bWFyZ2luSW5saW5lU3RhcnQ6MH0sIiYtbGVhdmUtc3RhcnQiOnttYXJnaW5JbmxpbmVTdGFydDowfSwiJi1sZWF2ZS1hY3RpdmUiOnttYXJnaW5JbmxpbmVTdGFydDpjYWxjKG1hcmdpblhTKS5tdWwoLTEpLmVxdWFsKCl9fX19fX0sZ2VuSG92ZXJBY3RpdmVCdXR0b25TdHlsZT0oYnRuQ2xzLGhvdmVyU3R5bGUsYWN0aXZlU3R5bGUpPT4oe1tgJjpub3QoOmRpc2FibGVkKTpub3QoJHtidG5DbHN9LWRpc2FibGVkKWBdOnsiJjpob3ZlciI6aG92ZXJTdHlsZSwiJjphY3RpdmUiOmFjdGl2ZVN0eWxlfX0pLGdlbkNpcmNsZUJ1dHRvblN0eWxlPXRva2VuPT4oe21pbldpZHRoOnRva2VuLmNvbnRyb2xIZWlnaHQscGFkZGluZ0lubGluZVN0YXJ0OjAscGFkZGluZ0lubGluZUVuZDowLGJvcmRlclJhZGl1czoiNTAlIn0pLGdlblJvdW5kQnV0dG9uU3R5bGU9dG9rZW49Pih7Ym9yZGVyUmFkaXVzOnRva2VuLmNvbnRyb2xIZWlnaHQscGFkZGluZ0lubGluZVN0YXJ0OnRva2VuLmNhbGModG9rZW4uY29udHJvbEhlaWdodCkuZGl2KDIpLmVxdWFsKCkscGFkZGluZ0lubGluZUVuZDp0b2tlbi5jYWxjKHRva2VuLmNvbnRyb2xIZWlnaHQpLmRpdigyKS5lcXVhbCgpfSksZ2VuRGlzYWJsZWRTdHlsZT10b2tlbj0+KHtjdXJzb3I6Im5vdC1hbGxvd2VkIixib3JkZXJDb2xvcjp0b2tlbi5ib3JkZXJDb2xvckRpc2FibGVkLGNvbG9yOnRva2VuLmNvbG9yVGV4dERpc2FibGVkLGJhY2tncm91bmQ6dG9rZW4uY29sb3JCZ0NvbnRhaW5lckRpc2FibGVkLGJveFNoYWRvdzoibm9uZSJ9KSxnZW5HaG9zdEJ1dHRvblN0eWxlPShidG5DbHMsYmFja2dyb3VuZCx0ZXh0Q29sb3IsYm9yZGVyQ29sb3IsdGV4dENvbG9yRGlzYWJsZWQsYm9yZGVyQ29sb3JEaXNhYmxlZCxob3ZlclN0eWxlLGFjdGl2ZVN0eWxlKT0+KHtbYCYke2J0bkNsc30tYmFja2dyb3VuZC1naG9zdGBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7Y29sb3I6dGV4dENvbG9yfHx2b2lkIDAsYmFja2dyb3VuZCxib3JkZXJDb2xvcjpib3JkZXJDb2xvcnx8dm9pZCAwLGJveFNoYWRvdzoibm9uZSJ9LGdlbkhvdmVyQWN0aXZlQnV0dG9uU3R5bGUoYnRuQ2xzLE9iamVjdC5hc3NpZ24oe2JhY2tncm91bmR9LGhvdmVyU3R5bGUpLE9iamVjdC5hc3NpZ24oe2JhY2tncm91bmR9LGFjdGl2ZVN0eWxlKSkpLHsiJjpkaXNhYmxlZCI6e2N1cnNvcjoibm90LWFsbG93ZWQiLGNvbG9yOnRleHRDb2xvckRpc2FibGVkfHx2b2lkIDAsYm9yZGVyQ29sb3I6Ym9yZGVyQ29sb3JEaXNhYmxlZHx8dm9pZCAwfX0pfSksZ2VuU29saWREaXNhYmxlZEJ1dHRvblN0eWxlPXRva2VuPT4oe1tgJjpkaXNhYmxlZCwgJiR7dG9rZW4uY29tcG9uZW50Q2xzfS1kaXNhYmxlZGBdOk9iamVjdC5hc3NpZ24oe30sZ2VuRGlzYWJsZWRTdHlsZSh0b2tlbikpfSksZ2VuUHVyZURpc2FibGVkQnV0dG9uU3R5bGU9dG9rZW49Pih7W2AmOmRpc2FibGVkLCAmJHt0b2tlbi5jb21wb25lbnRDbHN9LWRpc2FibGVkYF06e2N1cnNvcjoibm90LWFsbG93ZWQiLGNvbG9yOnRva2VuLmNvbG9yVGV4dERpc2FibGVkfX0pLGdlblZhcmlhbnRCdXR0b25TdHlsZT0odG9rZW4saG92ZXJTdHlsZSxhY3RpdmVTdHlsZSx2YXJpYW50KT0+e2xldCBpc1B1cmVEaXNhYmxlZD12YXJpYW50JiZbImxpbmsiLCJ0ZXh0Il0uaW5jbHVkZXModmFyaWFudCk7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoaXNQdXJlRGlzYWJsZWQ/Z2VuUHVyZURpc2FibGVkQnV0dG9uU3R5bGU6Z2VuU29saWREaXNhYmxlZEJ1dHRvblN0eWxlKSh0b2tlbikpLGdlbkhvdmVyQWN0aXZlQnV0dG9uU3R5bGUodG9rZW4uY29tcG9uZW50Q2xzLGhvdmVyU3R5bGUsYWN0aXZlU3R5bGUpKX0sZ2VuU29saWRCdXR0b25TdHlsZT0odG9rZW4sdGV4dENvbG9yLGJhY2tncm91bmQsaG92ZXJTdHlsZSxhY3RpdmVTdHlsZSk9Pih7W2AmJHt0b2tlbi5jb21wb25lbnRDbHN9LXZhcmlhbnQtc29saWRgXTpPYmplY3QuYXNzaWduKHtjb2xvcjp0ZXh0Q29sb3IsYmFja2dyb3VuZH0sZ2VuVmFyaWFudEJ1dHRvblN0eWxlKHRva2VuLGhvdmVyU3R5bGUsYWN0aXZlU3R5bGUpKX0pLGdlbk91dGxpbmVkRGFzaGVkQnV0dG9uU3R5bGU9KHRva2VuLGJvcmRlckNvbG9yLGJhY2tncm91bmQsaG92ZXJTdHlsZSxhY3RpdmVTdHlsZSk9Pih7W2AmJHt0b2tlbi5jb21wb25lbnRDbHN9LXZhcmlhbnQtb3V0bGluZWQsICYke3Rva2VuLmNvbXBvbmVudENsc30tdmFyaWFudC1kYXNoZWRgXTpPYmplY3QuYXNzaWduKHtib3JkZXJDb2xvcixiYWNrZ3JvdW5kfSxnZW5WYXJpYW50QnV0dG9uU3R5bGUodG9rZW4saG92ZXJTdHlsZSxhY3RpdmVTdHlsZSkpfSksZ2VuRGFzaGVkQnV0dG9uU3R5bGU9dG9rZW49Pih7W2AmJHt0b2tlbi5jb21wb25lbnRDbHN9LXZhcmlhbnQtZGFzaGVkYF06e2JvcmRlclN0eWxlOiJkYXNoZWQifX0pLGdlbkZpbGxlZEJ1dHRvblN0eWxlPSh0b2tlbixiYWNrZ3JvdW5kLGhvdmVyU3R5bGUsYWN0aXZlU3R5bGUpPT4oe1tgJiR7dG9rZW4uY29tcG9uZW50Q2xzfS12YXJpYW50LWZpbGxlZGBdOk9iamVjdC5hc3NpZ24oe2JveFNoYWRvdzoibm9uZSIsYmFja2dyb3VuZH0sZ2VuVmFyaWFudEJ1dHRvblN0eWxlKHRva2VuLGhvdmVyU3R5bGUsYWN0aXZlU3R5bGUpKX0pLGdlblRleHRMaW5rQnV0dG9uU3R5bGU9KHRva2VuLHRleHRDb2xvcix2YXJpYW50LGhvdmVyU3R5bGUsYWN0aXZlU3R5bGUpPT4oe1tgJiR7dG9rZW4uY29tcG9uZW50Q2xzfS12YXJpYW50LSR7dmFyaWFudH1gXTpPYmplY3QuYXNzaWduKHtjb2xvcjp0ZXh0Q29sb3IsYm94U2hhZG93OiJub25lIn0sZ2VuVmFyaWFudEJ1dHRvblN0eWxlKHRva2VuLGhvdmVyU3R5bGUsYWN0aXZlU3R5bGUsdmFyaWFudCkpfSksZ2VuUHJlc2V0Q29sb3JTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHN9PXRva2VuO3JldHVybiBwcmVzZXRDb2xvcnMuaS5yZWR1Y2UoKHByZXYsY29sb3JLZXkpPT57bGV0IGRhcmtDb2xvcj10b2tlbltgJHtjb2xvcktleX02YF0sbGlnaHRDb2xvcj10b2tlbltgJHtjb2xvcktleX0xYF0saG92ZXJDb2xvcj10b2tlbltgJHtjb2xvcktleX01YF0sbGlnaHRIb3ZlckNvbG9yPXRva2VuW2Ake2NvbG9yS2V5fTJgXSxsaWdodEJvcmRlckNvbG9yPXRva2VuW2Ake2NvbG9yS2V5fTNgXSxhY3RpdmVDb2xvcj10b2tlbltgJHtjb2xvcktleX03YF07cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxwcmV2KSx7W2AmJHtjb21wb25lbnRDbHN9LWNvbG9yLSR7Y29sb3JLZXl9YF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2NvbG9yOmRhcmtDb2xvcixib3hTaGFkb3c6dG9rZW5bYCR7Y29sb3JLZXl9U2hhZG93Q29sb3JgXX0sZ2VuU29saWRCdXR0b25TdHlsZSh0b2tlbix0b2tlbi5jb2xvclRleHRMaWdodFNvbGlkLGRhcmtDb2xvcix7YmFja2dyb3VuZDpob3ZlckNvbG9yfSx7YmFja2dyb3VuZDphY3RpdmVDb2xvcn0pKSxnZW5PdXRsaW5lZERhc2hlZEJ1dHRvblN0eWxlKHRva2VuLGRhcmtDb2xvcix0b2tlbi5jb2xvckJnQ29udGFpbmVyLHtjb2xvcjpob3ZlckNvbG9yLGJvcmRlckNvbG9yOmhvdmVyQ29sb3IsYmFja2dyb3VuZDp0b2tlbi5jb2xvckJnQ29udGFpbmVyfSx7Y29sb3I6YWN0aXZlQ29sb3IsYm9yZGVyQ29sb3I6YWN0aXZlQ29sb3IsYmFja2dyb3VuZDp0b2tlbi5jb2xvckJnQ29udGFpbmVyfSkpLGdlbkRhc2hlZEJ1dHRvblN0eWxlKHRva2VuKSksZ2VuRmlsbGVkQnV0dG9uU3R5bGUodG9rZW4sbGlnaHRDb2xvcix7YmFja2dyb3VuZDpsaWdodEhvdmVyQ29sb3J9LHtiYWNrZ3JvdW5kOmxpZ2h0Qm9yZGVyQ29sb3J9KSksZ2VuVGV4dExpbmtCdXR0b25TdHlsZSh0b2tlbixkYXJrQ29sb3IsImxpbmsiLHtjb2xvcjpob3ZlckNvbG9yfSx7Y29sb3I6YWN0aXZlQ29sb3J9KSksZ2VuVGV4dExpbmtCdXR0b25TdHlsZSh0b2tlbixkYXJrQ29sb3IsInRleHQiLHtjb2xvcjpob3ZlckNvbG9yLGJhY2tncm91bmQ6bGlnaHRDb2xvcn0se2NvbG9yOmFjdGl2ZUNvbG9yLGJhY2tncm91bmQ6bGlnaHRCb3JkZXJDb2xvcn0pKX0pfSx7fSl9LGdlbkRlZmF1bHRCdXR0b25TdHlsZT10b2tlbj0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtjb2xvcjp0b2tlbi5kZWZhdWx0Q29sb3IsYm94U2hhZG93OnRva2VuLmRlZmF1bHRTaGFkb3d9LGdlblNvbGlkQnV0dG9uU3R5bGUodG9rZW4sdG9rZW4uc29saWRUZXh0Q29sb3IsdG9rZW4uY29sb3JCZ1NvbGlkLHtjb2xvcjp0b2tlbi5zb2xpZFRleHRDb2xvcixiYWNrZ3JvdW5kOnRva2VuLmNvbG9yQmdTb2xpZEhvdmVyfSx7Y29sb3I6dG9rZW4uc29saWRUZXh0Q29sb3IsYmFja2dyb3VuZDp0b2tlbi5jb2xvckJnU29saWRBY3RpdmV9KSksZ2VuRGFzaGVkQnV0dG9uU3R5bGUodG9rZW4pKSxnZW5GaWxsZWRCdXR0b25TdHlsZSh0b2tlbix0b2tlbi5jb2xvckZpbGxUZXJ0aWFyeSx7YmFja2dyb3VuZDp0b2tlbi5jb2xvckZpbGxTZWNvbmRhcnl9LHtiYWNrZ3JvdW5kOnRva2VuLmNvbG9yRmlsbH0pKSxnZW5HaG9zdEJ1dHRvblN0eWxlKHRva2VuLmNvbXBvbmVudENscyx0b2tlbi5naG9zdEJnLHRva2VuLmRlZmF1bHRHaG9zdENvbG9yLHRva2VuLmRlZmF1bHRHaG9zdEJvcmRlckNvbG9yLHRva2VuLmNvbG9yVGV4dERpc2FibGVkLHRva2VuLmNvbG9yQm9yZGVyKSksZ2VuVGV4dExpbmtCdXR0b25TdHlsZSh0b2tlbix0b2tlbi50ZXh0VGV4dENvbG9yLCJsaW5rIix7Y29sb3I6dG9rZW4uY29sb3JMaW5rSG92ZXIsYmFja2dyb3VuZDp0b2tlbi5saW5rSG92ZXJCZ30se2NvbG9yOnRva2VuLmNvbG9yTGlua0FjdGl2ZX0pKSxnZW5QcmltYXJ5QnV0dG9uU3R5bGU9dG9rZW49Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtjb2xvcjp0b2tlbi5jb2xvclByaW1hcnksYm94U2hhZG93OnRva2VuLnByaW1hcnlTaGFkb3d9LGdlbk91dGxpbmVkRGFzaGVkQnV0dG9uU3R5bGUodG9rZW4sdG9rZW4uY29sb3JQcmltYXJ5LHRva2VuLmNvbG9yQmdDb250YWluZXIse2NvbG9yOnRva2VuLmNvbG9yUHJpbWFyeVRleHRIb3Zlcixib3JkZXJDb2xvcjp0b2tlbi5jb2xvclByaW1hcnlIb3ZlcixiYWNrZ3JvdW5kOnRva2VuLmNvbG9yQmdDb250YWluZXJ9LHtjb2xvcjp0b2tlbi5jb2xvclByaW1hcnlUZXh0QWN0aXZlLGJvcmRlckNvbG9yOnRva2VuLmNvbG9yUHJpbWFyeUFjdGl2ZSxiYWNrZ3JvdW5kOnRva2VuLmNvbG9yQmdDb250YWluZXJ9KSksZ2VuRGFzaGVkQnV0dG9uU3R5bGUodG9rZW4pKSxnZW5GaWxsZWRCdXR0b25TdHlsZSh0b2tlbix0b2tlbi5jb2xvclByaW1hcnlCZyx7YmFja2dyb3VuZDp0b2tlbi5jb2xvclByaW1hcnlCZ0hvdmVyfSx7YmFja2dyb3VuZDp0b2tlbi5jb2xvclByaW1hcnlCb3JkZXJ9KSksZ2VuVGV4dExpbmtCdXR0b25TdHlsZSh0b2tlbix0b2tlbi5jb2xvclByaW1hcnlUZXh0LCJ0ZXh0Iix7Y29sb3I6dG9rZW4uY29sb3JQcmltYXJ5VGV4dEhvdmVyLGJhY2tncm91bmQ6dG9rZW4uY29sb3JQcmltYXJ5Qmd9LHtjb2xvcjp0b2tlbi5jb2xvclByaW1hcnlUZXh0QWN0aXZlLGJhY2tncm91bmQ6dG9rZW4uY29sb3JQcmltYXJ5Qm9yZGVyfSkpLGdlblRleHRMaW5rQnV0dG9uU3R5bGUodG9rZW4sdG9rZW4uY29sb3JQcmltYXJ5VGV4dCwibGluayIse2NvbG9yOnRva2VuLmNvbG9yUHJpbWFyeVRleHRIb3ZlcixiYWNrZ3JvdW5kOnRva2VuLmxpbmtIb3ZlckJnfSx7Y29sb3I6dG9rZW4uY29sb3JQcmltYXJ5VGV4dEFjdGl2ZX0pKSxnZW5HaG9zdEJ1dHRvblN0eWxlKHRva2VuLmNvbXBvbmVudENscyx0b2tlbi5naG9zdEJnLHRva2VuLmNvbG9yUHJpbWFyeSx0b2tlbi5jb2xvclByaW1hcnksdG9rZW4uY29sb3JUZXh0RGlzYWJsZWQsdG9rZW4uY29sb3JCb3JkZXIse2NvbG9yOnRva2VuLmNvbG9yUHJpbWFyeUhvdmVyLGJvcmRlckNvbG9yOnRva2VuLmNvbG9yUHJpbWFyeUhvdmVyfSx7Y29sb3I6dG9rZW4uY29sb3JQcmltYXJ5QWN0aXZlLGJvcmRlckNvbG9yOnRva2VuLmNvbG9yUHJpbWFyeUFjdGl2ZX0pKSxnZW5EYW5nZXJvdXNTdHlsZT10b2tlbj0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7Y29sb3I6dG9rZW4uY29sb3JFcnJvcixib3hTaGFkb3c6dG9rZW4uZGFuZ2VyU2hhZG93fSxnZW5Tb2xpZEJ1dHRvblN0eWxlKHRva2VuLHRva2VuLmRhbmdlckNvbG9yLHRva2VuLmNvbG9yRXJyb3Ise2JhY2tncm91bmQ6dG9rZW4uY29sb3JFcnJvckhvdmVyfSx7YmFja2dyb3VuZDp0b2tlbi5jb2xvckVycm9yQWN0aXZlfSkpLGdlbk91dGxpbmVkRGFzaGVkQnV0dG9uU3R5bGUodG9rZW4sdG9rZW4uY29sb3JFcnJvcix0b2tlbi5jb2xvckJnQ29udGFpbmVyLHtjb2xvcjp0b2tlbi5jb2xvckVycm9ySG92ZXIsYm9yZGVyQ29sb3I6dG9rZW4uY29sb3JFcnJvckJvcmRlckhvdmVyfSx7Y29sb3I6dG9rZW4uY29sb3JFcnJvckFjdGl2ZSxib3JkZXJDb2xvcjp0b2tlbi5jb2xvckVycm9yQWN0aXZlfSkpLGdlbkRhc2hlZEJ1dHRvblN0eWxlKHRva2VuKSksZ2VuRmlsbGVkQnV0dG9uU3R5bGUodG9rZW4sdG9rZW4uY29sb3JFcnJvckJnLHtiYWNrZ3JvdW5kOnRva2VuLmNvbG9yRXJyb3JCZ0ZpbGxlZEhvdmVyfSx7YmFja2dyb3VuZDp0b2tlbi5jb2xvckVycm9yQmdBY3RpdmV9KSksZ2VuVGV4dExpbmtCdXR0b25TdHlsZSh0b2tlbix0b2tlbi5jb2xvckVycm9yLCJ0ZXh0Iix7Y29sb3I6dG9rZW4uY29sb3JFcnJvckhvdmVyLGJhY2tncm91bmQ6dG9rZW4uY29sb3JFcnJvckJnfSx7Y29sb3I6dG9rZW4uY29sb3JFcnJvckhvdmVyLGJhY2tncm91bmQ6dG9rZW4uY29sb3JFcnJvckJnQWN0aXZlfSkpLGdlblRleHRMaW5rQnV0dG9uU3R5bGUodG9rZW4sdG9rZW4uY29sb3JFcnJvciwibGluayIse2NvbG9yOnRva2VuLmNvbG9yRXJyb3JIb3Zlcn0se2NvbG9yOnRva2VuLmNvbG9yRXJyb3JBY3RpdmV9KSksZ2VuR2hvc3RCdXR0b25TdHlsZSh0b2tlbi5jb21wb25lbnRDbHMsdG9rZW4uZ2hvc3RCZyx0b2tlbi5jb2xvckVycm9yLHRva2VuLmNvbG9yRXJyb3IsdG9rZW4uY29sb3JUZXh0RGlzYWJsZWQsdG9rZW4uY29sb3JCb3JkZXIse2NvbG9yOnRva2VuLmNvbG9yRXJyb3JIb3Zlcixib3JkZXJDb2xvcjp0b2tlbi5jb2xvckVycm9ySG92ZXJ9LHtjb2xvcjp0b2tlbi5jb2xvckVycm9yQWN0aXZlLGJvcmRlckNvbG9yOnRva2VuLmNvbG9yRXJyb3JBY3RpdmV9KSksZ2VuTGlua1N0eWxlPXRva2VuPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZ2VuVGV4dExpbmtCdXR0b25TdHlsZSh0b2tlbix0b2tlbi5jb2xvckxpbmssImxpbmsiLHtjb2xvcjp0b2tlbi5jb2xvckxpbmtIb3Zlcn0se2NvbG9yOnRva2VuLmNvbG9yTGlua0FjdGl2ZX0pKSxnZW5HaG9zdEJ1dHRvblN0eWxlKHRva2VuLmNvbXBvbmVudENscyx0b2tlbi5naG9zdEJnLHRva2VuLmNvbG9ySW5mbyx0b2tlbi5jb2xvckluZm8sdG9rZW4uY29sb3JUZXh0RGlzYWJsZWQsdG9rZW4uY29sb3JCb3JkZXIse2NvbG9yOnRva2VuLmNvbG9ySW5mb0hvdmVyLGJvcmRlckNvbG9yOnRva2VuLmNvbG9ySW5mb0hvdmVyfSx7Y29sb3I6dG9rZW4uY29sb3JJbmZvQWN0aXZlLGJvcmRlckNvbG9yOnRva2VuLmNvbG9ySW5mb0FjdGl2ZX0pKSxnZW5Db2xvckJ1dHRvblN0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENsc309dG9rZW47cmV0dXJuIE9iamVjdC5hc3NpZ24oe1tgJHtjb21wb25lbnRDbHN9LWNvbG9yLWRlZmF1bHRgXTpnZW5EZWZhdWx0QnV0dG9uU3R5bGUodG9rZW4pLFtgJHtjb21wb25lbnRDbHN9LWNvbG9yLXByaW1hcnlgXTpnZW5QcmltYXJ5QnV0dG9uU3R5bGUodG9rZW4pLFtgJHtjb21wb25lbnRDbHN9LWNvbG9yLWRhbmdlcm91c2BdOmdlbkRhbmdlcm91c1N0eWxlKHRva2VuKSxbYCR7Y29tcG9uZW50Q2xzfS1jb2xvci1saW5rYF06Z2VuTGlua1N0eWxlKHRva2VuKX0sZ2VuUHJlc2V0Q29sb3JTdHlsZSh0b2tlbikpfSxnZW5Db21wYXRpYmxlQnV0dG9uU3R5bGU9dG9rZW49Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZ2VuT3V0bGluZWREYXNoZWRCdXR0b25TdHlsZSh0b2tlbix0b2tlbi5kZWZhdWx0Qm9yZGVyQ29sb3IsdG9rZW4uZGVmYXVsdEJnLHtjb2xvcjp0b2tlbi5kZWZhdWx0SG92ZXJDb2xvcixib3JkZXJDb2xvcjp0b2tlbi5kZWZhdWx0SG92ZXJCb3JkZXJDb2xvcixiYWNrZ3JvdW5kOnRva2VuLmRlZmF1bHRIb3ZlckJnfSx7Y29sb3I6dG9rZW4uZGVmYXVsdEFjdGl2ZUNvbG9yLGJvcmRlckNvbG9yOnRva2VuLmRlZmF1bHRBY3RpdmVCb3JkZXJDb2xvcixiYWNrZ3JvdW5kOnRva2VuLmRlZmF1bHRBY3RpdmVCZ30pKSxnZW5UZXh0TGlua0J1dHRvblN0eWxlKHRva2VuLHRva2VuLnRleHRUZXh0Q29sb3IsInRleHQiLHtjb2xvcjp0b2tlbi50ZXh0VGV4dEhvdmVyQ29sb3IsYmFja2dyb3VuZDp0b2tlbi50ZXh0SG92ZXJCZ30se2NvbG9yOnRva2VuLnRleHRUZXh0QWN0aXZlQ29sb3IsYmFja2dyb3VuZDp0b2tlbi5jb2xvckJnVGV4dEFjdGl2ZX0pKSxnZW5Tb2xpZEJ1dHRvblN0eWxlKHRva2VuLHRva2VuLnByaW1hcnlDb2xvcix0b2tlbi5jb2xvclByaW1hcnkse2JhY2tncm91bmQ6dG9rZW4uY29sb3JQcmltYXJ5SG92ZXIsY29sb3I6dG9rZW4ucHJpbWFyeUNvbG9yfSx7YmFja2dyb3VuZDp0b2tlbi5jb2xvclByaW1hcnlBY3RpdmUsY29sb3I6dG9rZW4ucHJpbWFyeUNvbG9yfSkpLGdlblRleHRMaW5rQnV0dG9uU3R5bGUodG9rZW4sdG9rZW4uY29sb3JMaW5rLCJsaW5rIix7Y29sb3I6dG9rZW4uY29sb3JMaW5rSG92ZXIsYmFja2dyb3VuZDp0b2tlbi5saW5rSG92ZXJCZ30se2NvbG9yOnRva2VuLmNvbG9yTGlua0FjdGl2ZX0pKSxnZW5CdXR0b25TdHlsZT1mdW5jdGlvbih0b2tlbil7bGV0IHByZWZpeENscz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06IiIse2NvbXBvbmVudENscyxjb250cm9sSGVpZ2h0LGZvbnRTaXplLGJvcmRlclJhZGl1cyxidXR0b25QYWRkaW5nSG9yaXpvbnRhbCxpY29uQ2xzLGJ1dHRvblBhZGRpbmdWZXJ0aWNhbCxidXR0b25JY29uT25seUZvbnRTaXplfT10b2tlbjtyZXR1cm5be1twcmVmaXhDbHNdOntmb250U2l6ZSxoZWlnaHQ6Y29udHJvbEhlaWdodCxwYWRkaW5nOmAkeygwLGNzc2luanNfZXMuYmYpKGJ1dHRvblBhZGRpbmdWZXJ0aWNhbCl9ICR7KDAsY3NzaW5qc19lcy5iZikoYnV0dG9uUGFkZGluZ0hvcml6b250YWwpfWAsYm9yZGVyUmFkaXVzLFtgJiR7Y29tcG9uZW50Q2xzfS1pY29uLW9ubHlgXTp7d2lkdGg6Y29udHJvbEhlaWdodCxbaWNvbkNsc106e2ZvbnRTaXplOmJ1dHRvbkljb25Pbmx5Rm9udFNpemV9fX19LHtbYCR7Y29tcG9uZW50Q2xzfSR7Y29tcG9uZW50Q2xzfS1jaXJjbGUke3ByZWZpeENsc31gXTpnZW5DaXJjbGVCdXR0b25TdHlsZSh0b2tlbil9LHtbYCR7Y29tcG9uZW50Q2xzfSR7Y29tcG9uZW50Q2xzfS1yb3VuZCR7cHJlZml4Q2xzfWBdOmdlblJvdW5kQnV0dG9uU3R5bGUodG9rZW4pfV19LGdlblNpemVCYXNlQnV0dG9uU3R5bGU9dG9rZW49PntsZXQgYmFzZVRva2VuPSgwLGNzc2luanNfdXRpbHNfZXMuSVgpKHRva2VuLHtmb250U2l6ZTp0b2tlbi5jb250ZW50Rm9udFNpemV9KTtyZXR1cm4gZ2VuQnV0dG9uU3R5bGUoYmFzZVRva2VuLHRva2VuLmNvbXBvbmVudENscyl9LGdlblNpemVTbWFsbEJ1dHRvblN0eWxlPXRva2VuPT57bGV0IHNtYWxsVG9rZW49KDAsY3NzaW5qc191dGlsc19lcy5JWCkodG9rZW4se2NvbnRyb2xIZWlnaHQ6dG9rZW4uY29udHJvbEhlaWdodFNNLGZvbnRTaXplOnRva2VuLmNvbnRlbnRGb250U2l6ZVNNLHBhZGRpbmc6dG9rZW4ucGFkZGluZ1hTLGJ1dHRvblBhZGRpbmdIb3Jpem9udGFsOnRva2VuLnBhZGRpbmdJbmxpbmVTTSxidXR0b25QYWRkaW5nVmVydGljYWw6MCxib3JkZXJSYWRpdXM6dG9rZW4uYm9yZGVyUmFkaXVzU00sYnV0dG9uSWNvbk9ubHlGb250U2l6ZTp0b2tlbi5vbmx5SWNvblNpemVTTX0pO3JldHVybiBnZW5CdXR0b25TdHlsZShzbWFsbFRva2VuLGAke3Rva2VuLmNvbXBvbmVudENsc30tc21gKX0sZ2VuU2l6ZUxhcmdlQnV0dG9uU3R5bGU9dG9rZW49PntsZXQgbGFyZ2VUb2tlbj0oMCxjc3NpbmpzX3V0aWxzX2VzLklYKSh0b2tlbix7Y29udHJvbEhlaWdodDp0b2tlbi5jb250cm9sSGVpZ2h0TEcsZm9udFNpemU6dG9rZW4uY29udGVudEZvbnRTaXplTEcsYnV0dG9uUGFkZGluZ0hvcml6b250YWw6dG9rZW4ucGFkZGluZ0lubGluZUxHLGJ1dHRvblBhZGRpbmdWZXJ0aWNhbDowLGJvcmRlclJhZGl1czp0b2tlbi5ib3JkZXJSYWRpdXNMRyxidXR0b25JY29uT25seUZvbnRTaXplOnRva2VuLm9ubHlJY29uU2l6ZUxHfSk7cmV0dXJuIGdlbkJ1dHRvblN0eWxlKGxhcmdlVG9rZW4sYCR7dG9rZW4uY29tcG9uZW50Q2xzfS1sZ2ApfSxnZW5CbG9ja0J1dHRvblN0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENsc309dG9rZW47cmV0dXJue1tjb21wb25lbnRDbHNdOntbYCYke2NvbXBvbmVudENsc30tYmxvY2tgXTp7d2lkdGg6IjEwMCUifX19fTt2YXIgYnV0dG9uX3N0eWxlPSgwLGdlblN0eWxlVXRpbHMuSSQpKCJCdXR0b24iLHRva2VuPT57bGV0IGJ1dHRvblRva2VuPXByZXBhcmVUb2tlbih0b2tlbik7cmV0dXJuW2dlblNoYXJlZEJ1dHRvblN0eWxlKGJ1dHRvblRva2VuKSxnZW5TaXplQmFzZUJ1dHRvblN0eWxlKGJ1dHRvblRva2VuKSxnZW5TaXplU21hbGxCdXR0b25TdHlsZShidXR0b25Ub2tlbiksZ2VuU2l6ZUxhcmdlQnV0dG9uU3R5bGUoYnV0dG9uVG9rZW4pLGdlbkJsb2NrQnV0dG9uU3R5bGUoYnV0dG9uVG9rZW4pLGdlbkNvbG9yQnV0dG9uU3R5bGUoYnV0dG9uVG9rZW4pLGdlbkNvbXBhdGlibGVCdXR0b25TdHlsZShidXR0b25Ub2tlbiksZ2VuR3JvdXBTdHlsZShidXR0b25Ub2tlbildfSxwcmVwYXJlQ29tcG9uZW50VG9rZW4se3VuaXRsZXNzOntmb250V2VpZ2h0OiEwLGNvbnRlbnRMaW5lSGVpZ2h0OiEwLGNvbnRlbnRMaW5lSGVpZ2h0U006ITAsY29udGVudExpbmVIZWlnaHRMRzohMH19KSxjb21wYWN0X2l0ZW09X193ZWJwYWNrX3JlcXVpcmVfXyg4MDExMCk7bGV0IGdlbkJ1dHRvbkNvbXBhY3RTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHMsY29sb3JQcmltYXJ5SG92ZXIsbGluZVdpZHRoLGNhbGN9PXRva2VuLGluc2V0T2Zmc2V0PWNhbGMobGluZVdpZHRoKS5tdWwoLTEpLmVxdWFsKCksZ2V0Q29tcGFjdEJvcmRlclN0eWxlPXZlcnRpY2FsPT57bGV0IHNlbGVjdG9yPWAke2NvbXBvbmVudENsc30tY29tcGFjdCR7dmVydGljYWw/Ii12ZXJ0aWNhbCI6IiJ9LWl0ZW0ke2NvbXBvbmVudENsc30tcHJpbWFyeTpub3QoW2Rpc2FibGVkXSlgO3JldHVybntbYCR7c2VsZWN0b3J9ICsgJHtzZWxlY3Rvcn06OmJlZm9yZWBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDp2ZXJ0aWNhbD9pbnNldE9mZnNldDowLGluc2V0SW5saW5lU3RhcnQ6dmVydGljYWw/MDppbnNldE9mZnNldCxiYWNrZ3JvdW5kQ29sb3I6Y29sb3JQcmltYXJ5SG92ZXIsY29udGVudDonIiInLHdpZHRoOnZlcnRpY2FsPyIxMDAlIjpsaW5lV2lkdGgsaGVpZ2h0OnZlcnRpY2FsP2xpbmVXaWR0aDoiMTAwJSJ9fX07cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnZXRDb21wYWN0Qm9yZGVyU3R5bGUoKSksZ2V0Q29tcGFjdEJvcmRlclN0eWxlKCEwKSl9O3ZhciBjb21wYWN0PSgwLGdlblN0eWxlVXRpbHMuYmspKFsiQnV0dG9uIiwiY29tcGFjdCJdLHRva2VuPT57bGV0IGJ1dHRvblRva2VuPXByZXBhcmVUb2tlbih0b2tlbik7cmV0dXJuWygwLGNvbXBhY3RfaXRlbS5jKShidXR0b25Ub2tlbiksZnVuY3Rpb24odG9rZW4pe3ZhciBwcmVmaXhDbHM7bGV0IGNvbXBhY3RDbHM9YCR7dG9rZW4uY29tcG9uZW50Q2xzfS1jb21wYWN0LXZlcnRpY2FsYDtyZXR1cm57W2NvbXBhY3RDbHNdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx7W2AmLWl0ZW06bm90KCR7Y29tcGFjdENsc30tbGFzdC1pdGVtKWBdOnttYXJnaW5Cb3R0b206dG9rZW4uY2FsYyh0b2tlbi5saW5lV2lkdGgpLm11bCgtMSkuZXF1YWwoKX0sIiYtaXRlbSI6eyImOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUiOnt6SW5kZXg6Mn0sIiZbZGlzYWJsZWRdIjp7ekluZGV4OjB9fX0pLChwcmVmaXhDbHM9dG9rZW4uY29tcG9uZW50Q2xzLHtbYCYtaXRlbTpub3QoJHtjb21wYWN0Q2xzfS1maXJzdC1pdGVtKTpub3QoJHtjb21wYWN0Q2xzfS1sYXN0LWl0ZW0pYF06e2JvcmRlclJhZGl1czowfSxbYCYtaXRlbSR7Y29tcGFjdENsc30tZmlyc3QtaXRlbTpub3QoJHtjb21wYWN0Q2xzfS1sYXN0LWl0ZW0pYF06e1tgJiwgJiR7cHJlZml4Q2xzfS1zbSwgJiR7cHJlZml4Q2xzfS1sZ2BdOntib3JkZXJFbmRFbmRSYWRpdXM6MCxib3JkZXJFbmRTdGFydFJhZGl1czowfX0sW2AmLWl0ZW0ke2NvbXBhY3RDbHN9LWxhc3QtaXRlbTpub3QoJHtjb21wYWN0Q2xzfS1maXJzdC1pdGVtKWBdOntbYCYsICYke3ByZWZpeENsc30tc20sICYke3ByZWZpeENsc30tbGdgXTp7Ym9yZGVyU3RhcnRTdGFydFJhZGl1czowLGJvcmRlclN0YXJ0RW5kUmFkaXVzOjB9fX0pKX19KGJ1dHRvblRva2VuKSxnZW5CdXR0b25Db21wYWN0U3R5bGUoYnV0dG9uVG9rZW4pXX0scHJlcGFyZUNvbXBvbmVudFRva2VuKSxidXR0b25fcmVzdD1mdW5jdGlvbihzLGUpe3ZhciB0PXt9O2Zvcih2YXIgcCBpbiBzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLHApJiYwPmUuaW5kZXhPZihwKSYmKHRbcF09c1twXSk7aWYobnVsbCE9cyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpZm9yKHZhciBpPTAscD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpO2k8cC5sZW5ndGg7aSsrKTA+ZS5pbmRleE9mKHBbaV0pJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocyxwW2ldKSYmKHRbcFtpXV09c1twW2ldXSk7cmV0dXJuIHR9O2xldCBCdXR0b25UeXBlTWFwPXtkZWZhdWx0OlsiZGVmYXVsdCIsIm91dGxpbmVkIl0scHJpbWFyeTpbInByaW1hcnkiLCJzb2xpZCJdLGRhc2hlZDpbImRlZmF1bHQiLCJkYXNoZWQiXSxsaW5rOlsibGluayIsImxpbmsiXSx0ZXh0OlsiZGVmYXVsdCIsInRleHQiXX0sSW50ZXJuYWxDb21wb3VuZGVkQnV0dG9uPXJlYWN0LmZvcndhcmRSZWYoKHByb3BzLHJlZik9Pnt2YXIgX2EsX2I7bGV0e2xvYWRpbmc9ITEscHJlZml4Q2xzOmN1c3RvbWl6ZVByZWZpeENscyxjb2xvcix2YXJpYW50LHR5cGUsZGFuZ2VyPSExLHNoYXBlPSJkZWZhdWx0IixzaXplOmN1c3RvbWl6ZVNpemUsc3R5bGVzLGRpc2FibGVkOmN1c3RvbURpc2FibGVkLGNsYXNzTmFtZSxyb290Q2xhc3NOYW1lLGNoaWxkcmVuLGljb24saWNvblBvc2l0aW9uPSJzdGFydCIsZ2hvc3Q9ITEsYmxvY2s9ITEsaHRtbFR5cGU9ImJ1dHRvbiIsY2xhc3NOYW1lczpjdXN0b21DbGFzc05hbWVzLHN0eWxlOmN1c3RvbVN0eWxlPXt9LGF1dG9JbnNlcnRTcGFjZSxhdXRvRm9jdXN9PXByb3BzLHJlc3Q9YnV0dG9uX3Jlc3QocHJvcHMsWyJsb2FkaW5nIiwicHJlZml4Q2xzIiwiY29sb3IiLCJ2YXJpYW50IiwidHlwZSIsImRhbmdlciIsInNoYXBlIiwic2l6ZSIsInN0eWxlcyIsImRpc2FibGVkIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsImNoaWxkcmVuIiwiaWNvbiIsImljb25Qb3NpdGlvbiIsImdob3N0IiwiYmxvY2siLCJodG1sVHlwZSIsImNsYXNzTmFtZXMiLCJzdHlsZSIsImF1dG9JbnNlcnRTcGFjZSIsImF1dG9Gb2N1cyJdKSxtZXJnZWRUeXBlPXR5cGV8fCJkZWZhdWx0Iix7YnV0dG9ufT1yZWFjdC51c2VDb250ZXh0KGNvbnRleHQuRV8pLFttZXJnZWRDb2xvcixtZXJnZWRWYXJpYW50XT0oMCxyZWFjdC51c2VNZW1vKSgoKT0+e2lmKGNvbG9yJiZ2YXJpYW50KXJldHVybltjb2xvcix2YXJpYW50XTtpZih0eXBlfHxkYW5nZXIpe2xldCBjb2xvclZhcmlhbnRQYWlyPUJ1dHRvblR5cGVNYXBbbWVyZ2VkVHlwZV18fFtdO3JldHVybiBkYW5nZXI/WyJkYW5nZXIiLGNvbG9yVmFyaWFudFBhaXJbMV1dOmNvbG9yVmFyaWFudFBhaXJ9cmV0dXJuKG51bGw9PWJ1dHRvbj92b2lkIDA6YnV0dG9uLmNvbG9yKSYmKG51bGw9PWJ1dHRvbj92b2lkIDA6YnV0dG9uLnZhcmlhbnQpP1tidXR0b24uY29sb3IsYnV0dG9uLnZhcmlhbnRdOlsiZGVmYXVsdCIsIm91dGxpbmVkIl19LFt0eXBlLGNvbG9yLHZhcmlhbnQsZGFuZ2VyLG51bGw9PWJ1dHRvbj92b2lkIDA6YnV0dG9uLnZhcmlhbnQsbnVsbD09YnV0dG9uP3ZvaWQgMDpidXR0b24uY29sb3JdKSxtZXJnZWRDb2xvclRleHQ9ImRhbmdlciI9PT1tZXJnZWRDb2xvcj8iZGFuZ2Vyb3VzIjptZXJnZWRDb2xvcix7Z2V0UHJlZml4Q2xzLGRpcmVjdGlvbixhdXRvSW5zZXJ0U3BhY2U6Y29udGV4dEF1dG9JbnNlcnRTcGFjZSxjbGFzc05hbWU6Y29udGV4dENsYXNzTmFtZSxzdHlsZTpjb250ZXh0U3R5bGUsY2xhc3NOYW1lczpjb250ZXh0Q2xhc3NOYW1lcyxzdHlsZXM6Y29udGV4dFN0eWxlc309KDAsY29udGV4dC5kaikoImJ1dHRvbiIpLG1lcmdlZEluc2VydFNwYWNlPW51bGw9PT0oX2E9bnVsbCE9YXV0b0luc2VydFNwYWNlP2F1dG9JbnNlcnRTcGFjZTpjb250ZXh0QXV0b0luc2VydFNwYWNlKXx8dm9pZCAwPT09X2F8fF9hLHByZWZpeENscz1nZXRQcmVmaXhDbHMoImJ0biIsY3VzdG9taXplUHJlZml4Q2xzKSxbd3JhcENTU1ZhcixoYXNoSWQsY3NzVmFyQ2xzXT1idXR0b25fc3R5bGUocHJlZml4Q2xzKSxkaXNhYmxlZD0oMCxyZWFjdC51c2VDb250ZXh0KShEaXNhYmxlZENvbnRleHQuWiksbWVyZ2VkRGlzYWJsZWQ9bnVsbCE9Y3VzdG9tRGlzYWJsZWQ/Y3VzdG9tRGlzYWJsZWQ6ZGlzYWJsZWQsZ3JvdXBTaXplPSgwLHJlYWN0LnVzZUNvbnRleHQpKEdyb3VwU2l6ZUNvbnRleHQpLGxvYWRpbmdPckRlbGF5PSgwLHJlYWN0LnVzZU1lbW8pKCgpPT4oZnVuY3Rpb24obG9hZGluZyl7aWYoIm9iamVjdCI9PXR5cGVvZiBsb2FkaW5nJiZsb2FkaW5nKXtsZXQgZGVsYXk9bnVsbD09bG9hZGluZz92b2lkIDA6bG9hZGluZy5kZWxheTtyZXR1cm57bG9hZGluZzooZGVsYXk9TnVtYmVyLmlzTmFOKGRlbGF5KXx8Im51bWJlciIhPXR5cGVvZiBkZWxheT8wOmRlbGF5KTw9MCxkZWxheX19cmV0dXJue2xvYWRpbmc6ISFsb2FkaW5nLGRlbGF5OjB9fSkobG9hZGluZyksW2xvYWRpbmddKSxbaW5uZXJMb2FkaW5nLHNldExvYWRpbmddPSgwLHJlYWN0LnVzZVN0YXRlKShsb2FkaW5nT3JEZWxheS5sb2FkaW5nKSxbaGFzVHdvQ05DaGFyLHNldEhhc1R3b0NOQ2hhcl09KDAscmVhY3QudXNlU3RhdGUpKCExKSxidXR0b25SZWY9KDAscmVhY3QudXNlUmVmKShudWxsKSxtZXJnZWRSZWY9KDAsZXNfcmVmLngxKShyZWYsYnV0dG9uUmVmKSxuZWVkSW5zZXJ0ZWQ9MT09PXJlYWN0LkNoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSYmIWljb24mJiEoMCxidXR0b25IZWxwZXJzLkRuKShtZXJnZWRWYXJpYW50KSxpc01vdW50UmVmPSgwLHJlYWN0LnVzZVJlZikoITApO3JlYWN0LnVzZUVmZmVjdCgoKT0+KGlzTW91bnRSZWYuY3VycmVudD0hMSwoKT0+e2lzTW91bnRSZWYuY3VycmVudD0hMH0pLFtdKSwoMCxyZWFjdC51c2VFZmZlY3QpKCgpPT57bGV0IGRlbGF5VGltZXI9bnVsbDtyZXR1cm4gbG9hZGluZ09yRGVsYXkuZGVsYXk+MD9kZWxheVRpbWVyPXNldFRpbWVvdXQoKCk9PntkZWxheVRpbWVyPW51bGwsc2V0TG9hZGluZyghMCl9LGxvYWRpbmdPckRlbGF5LmRlbGF5KTpzZXRMb2FkaW5nKGxvYWRpbmdPckRlbGF5LmxvYWRpbmcpLGZ1bmN0aW9uKCl7ZGVsYXlUaW1lciYmKGNsZWFyVGltZW91dChkZWxheVRpbWVyKSxkZWxheVRpbWVyPW51bGwpfX0sW2xvYWRpbmdPckRlbGF5XSksKDAscmVhY3QudXNlRWZmZWN0KSgoKT0+e2lmKCFidXR0b25SZWYuY3VycmVudHx8IW1lcmdlZEluc2VydFNwYWNlKXJldHVybjtsZXQgYnV0dG9uVGV4dD1idXR0b25SZWYuY3VycmVudC50ZXh0Q29udGVudHx8IiI7bmVlZEluc2VydGVkJiYoMCxidXR0b25IZWxwZXJzLmFHKShidXR0b25UZXh0KT9oYXNUd29DTkNoYXJ8fHNldEhhc1R3b0NOQ2hhcighMCk6aGFzVHdvQ05DaGFyJiZzZXRIYXNUd29DTkNoYXIoITEpfSksKDAscmVhY3QudXNlRWZmZWN0KSgoKT0+e2F1dG9Gb2N1cyYmYnV0dG9uUmVmLmN1cnJlbnQmJmJ1dHRvblJlZi5jdXJyZW50LmZvY3VzKCl9LFtdKTtsZXQgaGFuZGxlQ2xpY2s9cmVhY3QudXNlQ2FsbGJhY2soZT0+e3ZhciBfYTtpZihpbm5lckxvYWRpbmd8fG1lcmdlZERpc2FibGVkKXtlLnByZXZlbnREZWZhdWx0KCk7cmV0dXJufW51bGw9PT0oX2E9cHJvcHMub25DbGljayl8fHZvaWQgMD09PV9hfHxfYS5jYWxsKHByb3BzLGUpfSxbcHJvcHMub25DbGljayxpbm5lckxvYWRpbmcsbWVyZ2VkRGlzYWJsZWRdKSx7Y29tcGFjdFNpemUsY29tcGFjdEl0ZW1DbGFzc25hbWVzfT0oMCxDb21wYWN0LnJpKShwcmVmaXhDbHMsZGlyZWN0aW9uKSxzaXplRnVsbE5hbWU9KDAsdXNlU2l6ZS5aKShjdHhTaXplPT57dmFyIF9hLF9iO3JldHVybiBudWxsIT09KF9iPW51bGwhPT0oX2E9bnVsbCE9Y3VzdG9taXplU2l6ZT9jdXN0b21pemVTaXplOmNvbXBhY3RTaXplKSYmdm9pZCAwIT09X2E/X2E6Z3JvdXBTaXplKSYmdm9pZCAwIT09X2I/X2I6Y3R4U2l6ZX0pLHNpemVDbHM9c2l6ZUZ1bGxOYW1lJiZudWxsIT09KF9iPSh7bGFyZ2U6ImxnIixzbWFsbDoic20iLG1pZGRsZTp2b2lkIDB9KVtzaXplRnVsbE5hbWVdKSYmdm9pZCAwIT09X2I/X2I6IiIsbGlua0J1dHRvblJlc3RQcm9wcz0oMCxvbWl0LlopKHJlc3QsWyJuYXZpZ2F0ZSJdKSxjbGFzc2VzPWNsYXNzbmFtZXNfZGVmYXVsdCgpKHByZWZpeENscyxoYXNoSWQsY3NzVmFyQ2xzLHtbYCR7cHJlZml4Q2xzfS0ke3NoYXBlfWBdOiJkZWZhdWx0IiE9PXNoYXBlJiZzaGFwZSxbYCR7cHJlZml4Q2xzfS0ke21lcmdlZFR5cGV9YF06bWVyZ2VkVHlwZSxbYCR7cHJlZml4Q2xzfS1kYW5nZXJvdXNgXTpkYW5nZXIsW2Ake3ByZWZpeENsc30tY29sb3ItJHttZXJnZWRDb2xvclRleHR9YF06bWVyZ2VkQ29sb3JUZXh0LFtgJHtwcmVmaXhDbHN9LXZhcmlhbnQtJHttZXJnZWRWYXJpYW50fWBdOm1lcmdlZFZhcmlhbnQsW2Ake3ByZWZpeENsc30tJHtzaXplQ2xzfWBdOnNpemVDbHMsW2Ake3ByZWZpeENsc30taWNvbi1vbmx5YF06IWNoaWxkcmVuJiYwIT09Y2hpbGRyZW4mJiEhKGlubmVyTG9hZGluZz8ibG9hZGluZyI6aWNvbiksW2Ake3ByZWZpeENsc30tYmFja2dyb3VuZC1naG9zdGBdOmdob3N0JiYhKDAsYnV0dG9uSGVscGVycy5EbikobWVyZ2VkVmFyaWFudCksW2Ake3ByZWZpeENsc30tbG9hZGluZ2BdOmlubmVyTG9hZGluZyxbYCR7cHJlZml4Q2xzfS10d28tY2hpbmVzZS1jaGFyc2BdOmhhc1R3b0NOQ2hhciYmbWVyZ2VkSW5zZXJ0U3BhY2UmJiFpbm5lckxvYWRpbmcsW2Ake3ByZWZpeENsc30tYmxvY2tgXTpibG9jayxbYCR7cHJlZml4Q2xzfS1ydGxgXToicnRsIj09PWRpcmVjdGlvbixbYCR7cHJlZml4Q2xzfS1pY29uLWVuZGBdOiJlbmQiPT09aWNvblBvc2l0aW9ufSxjb21wYWN0SXRlbUNsYXNzbmFtZXMsY2xhc3NOYW1lLHJvb3RDbGFzc05hbWUsY29udGV4dENsYXNzTmFtZSksZnVsbFN0eWxlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjb250ZXh0U3R5bGUpLGN1c3RvbVN0eWxlKSxpY29uQ2xhc3Nlcz1jbGFzc25hbWVzX2RlZmF1bHQoKShudWxsPT1jdXN0b21DbGFzc05hbWVzP3ZvaWQgMDpjdXN0b21DbGFzc05hbWVzLmljb24sY29udGV4dENsYXNzTmFtZXMuaWNvbiksaWNvblN0eWxlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwobnVsbD09c3R5bGVzP3ZvaWQgMDpzdHlsZXMuaWNvbil8fHt9KSxjb250ZXh0U3R5bGVzLmljb258fHt9KSxpY29uTm9kZT1pY29uJiYhaW5uZXJMb2FkaW5nP3JlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbldyYXBwZXIse3ByZWZpeENsczpwcmVmaXhDbHMsY2xhc3NOYW1lOmljb25DbGFzc2VzLHN0eWxlOmljb25TdHlsZX0saWNvbik6bG9hZGluZyYmIm9iamVjdCI9PXR5cGVvZiBsb2FkaW5nJiZsb2FkaW5nLmljb24/cmVhY3QuY3JlYXRlRWxlbWVudChJY29uV3JhcHBlcix7cHJlZml4Q2xzOnByZWZpeENscyxjbGFzc05hbWU6aWNvbkNsYXNzZXMsc3R5bGU6aWNvblN0eWxlfSxsb2FkaW5nLmljb24pOnJlYWN0LmNyZWF0ZUVsZW1lbnQoRGVmYXVsdExvYWRpbmdJY29uLHtleGlzdEljb246ISFpY29uLHByZWZpeENsczpwcmVmaXhDbHMsbG9hZGluZzppbm5lckxvYWRpbmcsbW91bnQ6aXNNb3VudFJlZi5jdXJyZW50fSksa2lkcz1jaGlsZHJlbnx8MD09PWNoaWxkcmVuPygwLGJ1dHRvbkhlbHBlcnMuaFUpKGNoaWxkcmVuLG5lZWRJbnNlcnRlZCYmbWVyZ2VkSW5zZXJ0U3BhY2UpOm51bGw7aWYodm9pZCAwIT09bGlua0J1dHRvblJlc3RQcm9wcy5ocmVmKXJldHVybiB3cmFwQ1NTVmFyKHJlYWN0LmNyZWF0ZUVsZW1lbnQoImEiLE9iamVjdC5hc3NpZ24oe30sbGlua0J1dHRvblJlc3RQcm9wcyx7Y2xhc3NOYW1lOmNsYXNzbmFtZXNfZGVmYXVsdCgpKGNsYXNzZXMse1tgJHtwcmVmaXhDbHN9LWRpc2FibGVkYF06bWVyZ2VkRGlzYWJsZWR9KSxocmVmOm1lcmdlZERpc2FibGVkP3ZvaWQgMDpsaW5rQnV0dG9uUmVzdFByb3BzLmhyZWYsc3R5bGU6ZnVsbFN0eWxlLG9uQ2xpY2s6aGFuZGxlQ2xpY2sscmVmOm1lcmdlZFJlZix0YWJJbmRleDptZXJnZWREaXNhYmxlZD8tMTowfSksaWNvbk5vZGUsa2lkcykpO2xldCBidXR0b25Ob2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIsT2JqZWN0LmFzc2lnbih7fSxyZXN0LHt0eXBlOmh0bWxUeXBlLGNsYXNzTmFtZTpjbGFzc2VzLHN0eWxlOmZ1bGxTdHlsZSxvbkNsaWNrOmhhbmRsZUNsaWNrLGRpc2FibGVkOm1lcmdlZERpc2FibGVkLHJlZjptZXJnZWRSZWZ9KSxpY29uTm9kZSxraWRzLGNvbXBhY3RJdGVtQ2xhc3NuYW1lcyYmcmVhY3QuY3JlYXRlRWxlbWVudChjb21wYWN0LHtwcmVmaXhDbHM6cHJlZml4Q2xzfSkpO3JldHVybigwLGJ1dHRvbkhlbHBlcnMuRG4pKG1lcmdlZFZhcmlhbnQpfHwoYnV0dG9uTm9kZT1yZWFjdC5jcmVhdGVFbGVtZW50KFdhdmUse2NvbXBvbmVudDoiQnV0dG9uIixkaXNhYmxlZDppbm5lckxvYWRpbmd9LGJ1dHRvbk5vZGUpKSx3cmFwQ1NTVmFyKGJ1dHRvbk5vZGUpfSksQnV0dG9uPUludGVybmFsQ29tcG91bmRlZEJ1dHRvbjtCdXR0b24uR3JvdXA9QnV0dG9uR3JvdXAsQnV0dG9uLl9fQU5UX0JVVFRPTj0hMDt2YXIgZXNfYnV0dG9uPUJ1dHRvbn0sMTU3NDY6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7dmFyIF9ncmlkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXygyMTU4NCk7X193ZWJwYWNrX2V4cG9ydHNfXy5aPV9ncmlkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWn0sNDcyMjE6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gZXNfY29sbGFwc2V9fSk7dmFyIHJlYWN0PV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLFJpZ2h0T3V0bGluZWQ9X193ZWJwYWNrX3JlcXVpcmVfXygxODA3MyksY2xhc3NuYW1lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDEzMTQ0KSxjbGFzc25hbWVzX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGNsYXNzbmFtZXMpLGVzbV9leHRlbmRzPV9fd2VicGFja19yZXF1aXJlX18oODc0NjIpLHRvQ29uc3VtYWJsZUFycmF5PV9fd2VicGFja19yZXF1aXJlX18oNzQ5MDIpLHNsaWNlZFRvQXJyYXk9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzY4NSksZXNtX3R5cGVvZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDcxMDAyKSxub2RlX21vZHVsZXNfY2xhc3NuYW1lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk0MTg0KSxub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0PV9fd2VicGFja19yZXF1aXJlX18ubihub2RlX21vZHVsZXNfY2xhc3NuYW1lcyksdXNlTWVyZ2VkU3RhdGU9X193ZWJwYWNrX3JlcXVpcmVfXygyMTc3MCksd2FybmluZz1fX3dlYnBhY2tfcmVxdWlyZV9fKDgwMzM0KSxvYmplY3RXaXRob3V0UHJvcGVydGllcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDkxKSx0b0FycmF5PV9fd2VicGFja19yZXF1aXJlX18oNTAzNDQpLG9iamVjdFNwcmVhZDI9X193ZWJwYWNrX3JlcXVpcmVfXygxNDEzKSxkZWZpbmVQcm9wZXJ0eT1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ5NDIpLGVzPV9fd2VicGFja19yZXF1aXJlX18oODIyMjUpLEtleUNvZGU9X193ZWJwYWNrX3JlcXVpcmVfXygxNTEwNSksUGFuZWxDb250ZW50PXJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24ocHJvcHMscmVmKXt2YXIgcHJlZml4Q2xzPXByb3BzLnByZWZpeENscyxmb3JjZVJlbmRlcj1wcm9wcy5mb3JjZVJlbmRlcixjbGFzc05hbWU9cHJvcHMuY2xhc3NOYW1lLHN0eWxlPXByb3BzLnN0eWxlLGNoaWxkcmVuPXByb3BzLmNoaWxkcmVuLGlzQWN0aXZlPXByb3BzLmlzQWN0aXZlLHJvbGU9cHJvcHMucm9sZSxjdXN0b21pemVDbGFzc05hbWVzPXByb3BzLmNsYXNzTmFtZXMsc3R5bGVzPXByb3BzLnN0eWxlcyxfUmVhY3QkdXNlU3RhdGU9cmVhY3QudXNlU3RhdGUoaXNBY3RpdmV8fGZvcmNlUmVuZGVyKSxfUmVhY3QkdXNlU3RhdGUyPSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlLDIpLHJlbmRlcmVkPV9SZWFjdCR1c2VTdGF0ZTJbMF0sc2V0UmVuZGVyZWQ9X1JlYWN0JHVzZVN0YXRlMlsxXTtyZXR1cm4ocmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uKCl7KGZvcmNlUmVuZGVyfHxpc0FjdGl2ZSkmJnNldFJlbmRlcmVkKCEwKX0sW2ZvcmNlUmVuZGVyLGlzQWN0aXZlXSkscmVuZGVyZWQpP3JlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpyZWYsY2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKSgiIi5jb25jYXQocHJlZml4Q2xzLCItY29udGVudCIpLCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKHt9LCIiLmNvbmNhdChwcmVmaXhDbHMsIi1jb250ZW50LWFjdGl2ZSIpLGlzQWN0aXZlKSwiIi5jb25jYXQocHJlZml4Q2xzLCItY29udGVudC1pbmFjdGl2ZSIpLCFpc0FjdGl2ZSksY2xhc3NOYW1lKSxzdHlsZTpzdHlsZSxyb2xlOnJvbGV9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0KCkoIiIuY29uY2F0KHByZWZpeENscywiLWNvbnRlbnQtYm94IiksbnVsbD09Y3VzdG9taXplQ2xhc3NOYW1lcz92b2lkIDA6Y3VzdG9taXplQ2xhc3NOYW1lcy5ib2R5KSxzdHlsZTpudWxsPT1zdHlsZXM/dm9pZCAwOnN0eWxlcy5ib2R5fSxjaGlsZHJlbikpOm51bGx9KTtQYW5lbENvbnRlbnQuZGlzcGxheU5hbWU9IlBhbmVsQ29udGVudCI7dmFyIF9leGNsdWRlZD1bInNob3dBcnJvdyIsImhlYWRlckNsYXNzIiwiaXNBY3RpdmUiLCJvbkl0ZW1DbGljayIsImZvcmNlUmVuZGVyIiwiY2xhc3NOYW1lIiwiY2xhc3NOYW1lcyIsInN0eWxlcyIsInByZWZpeENscyIsImNvbGxhcHNpYmxlIiwiYWNjb3JkaW9uIiwicGFuZWxLZXkiLCJleHRyYSIsImhlYWRlciIsImV4cGFuZEljb24iLCJvcGVuTW90aW9uIiwiZGVzdHJveUluYWN0aXZlUGFuZWwiLCJjaGlsZHJlbiJdLENvbGxhcHNlUGFuZWw9cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3ZhciBfcHJvcHMkc2hvd0Fycm93PXByb3BzLnNob3dBcnJvdyxoZWFkZXJDbGFzcz1wcm9wcy5oZWFkZXJDbGFzcyxpc0FjdGl2ZT1wcm9wcy5pc0FjdGl2ZSxvbkl0ZW1DbGljaz1wcm9wcy5vbkl0ZW1DbGljayxmb3JjZVJlbmRlcj1wcm9wcy5mb3JjZVJlbmRlcixjbGFzc05hbWU9cHJvcHMuY2xhc3NOYW1lLF9wcm9wcyRjbGFzc05hbWVzPXByb3BzLmNsYXNzTmFtZXMsY3VzdG9taXplQ2xhc3NOYW1lcz12b2lkIDA9PT1fcHJvcHMkY2xhc3NOYW1lcz97fTpfcHJvcHMkY2xhc3NOYW1lcyxfcHJvcHMkc3R5bGVzPXByb3BzLnN0eWxlcyxzdHlsZXM9dm9pZCAwPT09X3Byb3BzJHN0eWxlcz97fTpfcHJvcHMkc3R5bGVzLHByZWZpeENscz1wcm9wcy5wcmVmaXhDbHMsY29sbGFwc2libGU9cHJvcHMuY29sbGFwc2libGUsYWNjb3JkaW9uPXByb3BzLmFjY29yZGlvbixwYW5lbEtleT1wcm9wcy5wYW5lbEtleSxleHRyYT1wcm9wcy5leHRyYSxoZWFkZXI9cHJvcHMuaGVhZGVyLGV4cGFuZEljb249cHJvcHMuZXhwYW5kSWNvbixvcGVuTW90aW9uPXByb3BzLm9wZW5Nb3Rpb24sZGVzdHJveUluYWN0aXZlUGFuZWw9cHJvcHMuZGVzdHJveUluYWN0aXZlUGFuZWwsY2hpbGRyZW49cHJvcHMuY2hpbGRyZW4scmVzZXRQcm9wcz0oMCxvYmplY3RXaXRob3V0UHJvcGVydGllcy5aKShwcm9wcyxfZXhjbHVkZWQpLGRpc2FibGVkPSJkaXNhYmxlZCI9PT1jb2xsYXBzaWJsZSxjb2xsYXBzaWJsZVByb3BzPSgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKHtvbkNsaWNrOmZ1bmN0aW9uKCl7bnVsbD09b25JdGVtQ2xpY2t8fG9uSXRlbUNsaWNrKHBhbmVsS2V5KX0sb25LZXlEb3duOmZ1bmN0aW9uKGUpeygiRW50ZXIiPT09ZS5rZXl8fGUua2V5Q29kZT09PUtleUNvZGUuWi5FTlRFUnx8ZS53aGljaD09PUtleUNvZGUuWi5FTlRFUikmJihudWxsPT1vbkl0ZW1DbGlja3x8b25JdGVtQ2xpY2socGFuZWxLZXkpKX0scm9sZTphY2NvcmRpb24/InRhYiI6ImJ1dHRvbiJ9LCJhcmlhLWV4cGFuZGVkIixpc0FjdGl2ZSksImFyaWEtZGlzYWJsZWQiLGRpc2FibGVkKSwidGFiSW5kZXgiLGRpc2FibGVkPy0xOjApLGljb25Ob2RlSW5uZXI9ImZ1bmN0aW9uIj09dHlwZW9mIGV4cGFuZEljb24/ZXhwYW5kSWNvbihwcm9wcyk6cmVhY3QuY3JlYXRlRWxlbWVudCgiaSIse2NsYXNzTmFtZToiYXJyb3cifSksaWNvbk5vZGU9aWNvbk5vZGVJbm5lciYmcmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2IiwoMCxlc21fZXh0ZW5kcy5aKSh7Y2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi1leHBhbmQtaWNvbiIpfSxbImhlYWRlciIsImljb24iXS5pbmNsdWRlcyhjb2xsYXBzaWJsZSk/Y29sbGFwc2libGVQcm9wczp7fSksaWNvbk5vZGVJbm5lciksY29sbGFwc2VQYW5lbENsYXNzTmFtZXM9bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKCIiLmNvbmNhdChwcmVmaXhDbHMsIi1pdGVtIiksKDAsZGVmaW5lUHJvcGVydHkuWikoKDAsZGVmaW5lUHJvcGVydHkuWikoe30sIiIuY29uY2F0KHByZWZpeENscywiLWl0ZW0tYWN0aXZlIiksaXNBY3RpdmUpLCIiLmNvbmNhdChwcmVmaXhDbHMsIi1pdGVtLWRpc2FibGVkIiksZGlzYWJsZWQpLGNsYXNzTmFtZSksaGVhZGVyQ2xhc3NOYW1lPW5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKShoZWFkZXJDbGFzcywiIi5jb25jYXQocHJlZml4Q2xzLCItaGVhZGVyIiksKDAsZGVmaW5lUHJvcGVydHkuWikoe30sIiIuY29uY2F0KHByZWZpeENscywiLWNvbGxhcHNpYmxlLSIpLmNvbmNhdChjb2xsYXBzaWJsZSksISFjb2xsYXBzaWJsZSksY3VzdG9taXplQ2xhc3NOYW1lcy5oZWFkZXIpLGhlYWRlclByb3BzPSgwLG9iamVjdFNwcmVhZDIuWikoe2NsYXNzTmFtZTpoZWFkZXJDbGFzc05hbWUsc3R5bGU6c3R5bGVzLmhlYWRlcn0sWyJoZWFkZXIiLCJpY29uIl0uaW5jbHVkZXMoY29sbGFwc2libGUpP3t9OmNvbGxhcHNpYmxlUHJvcHMpO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLCgwLGVzbV9leHRlbmRzLlopKHt9LHJlc2V0UHJvcHMse3JlZjpyZWYsY2xhc3NOYW1lOmNvbGxhcHNlUGFuZWxDbGFzc05hbWVzfSkscmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2IixoZWFkZXJQcm9wcywodm9pZCAwPT09X3Byb3BzJHNob3dBcnJvd3x8X3Byb3BzJHNob3dBcnJvdykmJmljb25Ob2RlLHJlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLCgwLGVzbV9leHRlbmRzLlopKHtjbGFzc05hbWU6IiIuY29uY2F0KHByZWZpeENscywiLWhlYWRlci10ZXh0Iil9LCJoZWFkZXIiPT09Y29sbGFwc2libGU/Y29sbGFwc2libGVQcm9wczp7fSksaGVhZGVyKSxudWxsIT1leHRyYSYmImJvb2xlYW4iIT10eXBlb2YgZXh0cmEmJnJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItZXh0cmEiKX0sZXh0cmEpKSxyZWFjdC5jcmVhdGVFbGVtZW50KGVzLlpQLCgwLGVzbV9leHRlbmRzLlopKHt2aXNpYmxlOmlzQWN0aXZlLGxlYXZlZENsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItY29udGVudC1oaWRkZW4iKX0sb3Blbk1vdGlvbix7Zm9yY2VSZW5kZXI6Zm9yY2VSZW5kZXIscmVtb3ZlT25MZWF2ZTpkZXN0cm95SW5hY3RpdmVQYW5lbH0pLGZ1bmN0aW9uKF9yZWYsbW90aW9uUmVmKXt2YXIgbW90aW9uQ2xhc3NOYW1lPV9yZWYuY2xhc3NOYW1lLG1vdGlvblN0eWxlPV9yZWYuc3R5bGU7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFuZWxDb250ZW50LHtyZWY6bW90aW9uUmVmLHByZWZpeENsczpwcmVmaXhDbHMsY2xhc3NOYW1lOm1vdGlvbkNsYXNzTmFtZSxjbGFzc05hbWVzOmN1c3RvbWl6ZUNsYXNzTmFtZXMsc3R5bGU6bW90aW9uU3R5bGUsc3R5bGVzOnN0eWxlcyxpc0FjdGl2ZTppc0FjdGl2ZSxmb3JjZVJlbmRlcjpmb3JjZVJlbmRlcixyb2xlOmFjY29yZGlvbj8idGFicGFuZWwiOnZvaWQgMH0sY2hpbGRyZW4pfSkpfSksdXNlSXRlbXNfZXhjbHVkZWQ9WyJjaGlsZHJlbiIsImxhYmVsIiwia2V5IiwiY29sbGFwc2libGUiLCJvbkl0ZW1DbGljayIsImRlc3Ryb3lJbmFjdGl2ZVBhbmVsIl0sY29udmVydEl0ZW1zVG9Ob2Rlcz1mdW5jdGlvbihpdGVtcyxwcm9wcyl7dmFyIHByZWZpeENscz1wcm9wcy5wcmVmaXhDbHMsYWNjb3JkaW9uPXByb3BzLmFjY29yZGlvbixjb2xsYXBzaWJsZT1wcm9wcy5jb2xsYXBzaWJsZSxkZXN0cm95SW5hY3RpdmVQYW5lbD1wcm9wcy5kZXN0cm95SW5hY3RpdmVQYW5lbCxvbkl0ZW1DbGljaz1wcm9wcy5vbkl0ZW1DbGljayxhY3RpdmVLZXk9cHJvcHMuYWN0aXZlS2V5LG9wZW5Nb3Rpb249cHJvcHMub3Blbk1vdGlvbixleHBhbmRJY29uPXByb3BzLmV4cGFuZEljb247cmV0dXJuIGl0ZW1zLm1hcChmdW5jdGlvbihpdGVtLGluZGV4KXt2YXIgY2hpbGRyZW49aXRlbS5jaGlsZHJlbixsYWJlbD1pdGVtLmxhYmVsLHJhd0tleT1pdGVtLmtleSxyYXdDb2xsYXBzaWJsZT1pdGVtLmNvbGxhcHNpYmxlLHJhd09uSXRlbUNsaWNrPWl0ZW0ub25JdGVtQ2xpY2sscmF3RGVzdHJveUluYWN0aXZlUGFuZWw9aXRlbS5kZXN0cm95SW5hY3RpdmVQYW5lbCxyZXN0UHJvcHM9KDAsb2JqZWN0V2l0aG91dFByb3BlcnRpZXMuWikoaXRlbSx1c2VJdGVtc19leGNsdWRlZCksa2V5PVN0cmluZyhudWxsIT1yYXdLZXk/cmF3S2V5OmluZGV4KSxtZXJnZUNvbGxhcHNpYmxlPW51bGwhPXJhd0NvbGxhcHNpYmxlP3Jhd0NvbGxhcHNpYmxlOmNvbGxhcHNpYmxlLGlzQWN0aXZlPSExO3JldHVybiBpc0FjdGl2ZT1hY2NvcmRpb24/YWN0aXZlS2V5WzBdPT09a2V5OmFjdGl2ZUtleS5pbmRleE9mKGtleSk+LTEscmVhY3QuY3JlYXRlRWxlbWVudChDb2xsYXBzZVBhbmVsLCgwLGVzbV9leHRlbmRzLlopKHt9LHJlc3RQcm9wcyx7cHJlZml4Q2xzOnByZWZpeENscyxrZXk6a2V5LHBhbmVsS2V5OmtleSxpc0FjdGl2ZTppc0FjdGl2ZSxhY2NvcmRpb246YWNjb3JkaW9uLG9wZW5Nb3Rpb246b3Blbk1vdGlvbixleHBhbmRJY29uOmV4cGFuZEljb24saGVhZGVyOmxhYmVsLGNvbGxhcHNpYmxlOm1lcmdlQ29sbGFwc2libGUsb25JdGVtQ2xpY2s6ZnVuY3Rpb24odmFsdWUpeyJkaXNhYmxlZCIhPT1tZXJnZUNvbGxhcHNpYmxlJiYob25JdGVtQ2xpY2sodmFsdWUpLG51bGw9PXJhd09uSXRlbUNsaWNrfHxyYXdPbkl0ZW1DbGljayh2YWx1ZSkpfSxkZXN0cm95SW5hY3RpdmVQYW5lbDpudWxsIT1yYXdEZXN0cm95SW5hY3RpdmVQYW5lbD9yYXdEZXN0cm95SW5hY3RpdmVQYW5lbDpkZXN0cm95SW5hY3RpdmVQYW5lbH0pLGNoaWxkcmVuKX0pfSxnZXROZXdDaGlsZD1mdW5jdGlvbihjaGlsZCxpbmRleCxwcm9wcyl7aWYoIWNoaWxkKXJldHVybiBudWxsO3ZhciBwcmVmaXhDbHM9cHJvcHMucHJlZml4Q2xzLGFjY29yZGlvbj1wcm9wcy5hY2NvcmRpb24sY29sbGFwc2libGU9cHJvcHMuY29sbGFwc2libGUsZGVzdHJveUluYWN0aXZlUGFuZWw9cHJvcHMuZGVzdHJveUluYWN0aXZlUGFuZWwsb25JdGVtQ2xpY2s9cHJvcHMub25JdGVtQ2xpY2ssYWN0aXZlS2V5PXByb3BzLmFjdGl2ZUtleSxvcGVuTW90aW9uPXByb3BzLm9wZW5Nb3Rpb24sZXhwYW5kSWNvbj1wcm9wcy5leHBhbmRJY29uLGtleT1jaGlsZC5rZXl8fFN0cmluZyhpbmRleCksX2NoaWxkJHByb3BzPWNoaWxkLnByb3BzLGhlYWRlcj1fY2hpbGQkcHJvcHMuaGVhZGVyLGhlYWRlckNsYXNzPV9jaGlsZCRwcm9wcy5oZWFkZXJDbGFzcyxjaGlsZERlc3Ryb3lJbmFjdGl2ZVBhbmVsPV9jaGlsZCRwcm9wcy5kZXN0cm95SW5hY3RpdmVQYW5lbCxjaGlsZENvbGxhcHNpYmxlPV9jaGlsZCRwcm9wcy5jb2xsYXBzaWJsZSxjaGlsZE9uSXRlbUNsaWNrPV9jaGlsZCRwcm9wcy5vbkl0ZW1DbGljayxpc0FjdGl2ZT0hMTtpc0FjdGl2ZT1hY2NvcmRpb24/YWN0aXZlS2V5WzBdPT09a2V5OmFjdGl2ZUtleS5pbmRleE9mKGtleSk+LTE7dmFyIG1lcmdlQ29sbGFwc2libGU9bnVsbCE9Y2hpbGRDb2xsYXBzaWJsZT9jaGlsZENvbGxhcHNpYmxlOmNvbGxhcHNpYmxlLGNoaWxkUHJvcHM9e2tleTprZXkscGFuZWxLZXk6a2V5LGhlYWRlcjpoZWFkZXIsaGVhZGVyQ2xhc3M6aGVhZGVyQ2xhc3MsaXNBY3RpdmU6aXNBY3RpdmUscHJlZml4Q2xzOnByZWZpeENscyxkZXN0cm95SW5hY3RpdmVQYW5lbDpudWxsIT1jaGlsZERlc3Ryb3lJbmFjdGl2ZVBhbmVsP2NoaWxkRGVzdHJveUluYWN0aXZlUGFuZWw6ZGVzdHJveUluYWN0aXZlUGFuZWwsb3Blbk1vdGlvbjpvcGVuTW90aW9uLGFjY29yZGlvbjphY2NvcmRpb24sY2hpbGRyZW46Y2hpbGQucHJvcHMuY2hpbGRyZW4sb25JdGVtQ2xpY2s6ZnVuY3Rpb24odmFsdWUpeyJkaXNhYmxlZCIhPT1tZXJnZUNvbGxhcHNpYmxlJiYob25JdGVtQ2xpY2sodmFsdWUpLG51bGw9PWNoaWxkT25JdGVtQ2xpY2t8fGNoaWxkT25JdGVtQ2xpY2sodmFsdWUpKX0sZXhwYW5kSWNvbjpleHBhbmRJY29uLGNvbGxhcHNpYmxlOm1lcmdlQ29sbGFwc2libGV9O3JldHVybiJzdHJpbmciPT10eXBlb2YgY2hpbGQudHlwZT9jaGlsZDooT2JqZWN0LmtleXMoY2hpbGRQcm9wcykuZm9yRWFjaChmdW5jdGlvbihwcm9wTmFtZSl7dm9pZCAwPT09Y2hpbGRQcm9wc1twcm9wTmFtZV0mJmRlbGV0ZSBjaGlsZFByb3BzW3Byb3BOYW1lXX0pLHJlYWN0LmNsb25lRWxlbWVudChjaGlsZCxjaGlsZFByb3BzKSl9LHBpY2tBdHRycz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY0MjE3KTtmdW5jdGlvbiBnZXRBY3RpdmVLZXlzQXJyYXkoYWN0aXZlS2V5KXt2YXIgY3VycmVudEFjdGl2ZUtleT1hY3RpdmVLZXk7aWYoIUFycmF5LmlzQXJyYXkoY3VycmVudEFjdGl2ZUtleSkpe3ZhciBhY3RpdmVLZXlUeXBlPSgwLGVzbV90eXBlb2YuWikoY3VycmVudEFjdGl2ZUtleSk7Y3VycmVudEFjdGl2ZUtleT0ibnVtYmVyIj09PWFjdGl2ZUtleVR5cGV8fCJzdHJpbmciPT09YWN0aXZlS2V5VHlwZT9bY3VycmVudEFjdGl2ZUtleV06W119cmV0dXJuIGN1cnJlbnRBY3RpdmVLZXkubWFwKGZ1bmN0aW9uKGtleSl7cmV0dXJuIFN0cmluZyhrZXkpfSl9dmFyIGVzX0NvbGxhcHNlPU9iamVjdC5hc3NpZ24ocmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3ZhciBwcm9wczEsX3Byb3BzJHByZWZpeENscz1wcm9wcy5wcmVmaXhDbHMscHJlZml4Q2xzPXZvaWQgMD09PV9wcm9wcyRwcmVmaXhDbHM/InJjLWNvbGxhcHNlIjpfcHJvcHMkcHJlZml4Q2xzLF9wcm9wcyRkZXN0cm95SW5hY3Rpdj1wcm9wcy5kZXN0cm95SW5hY3RpdmVQYW5lbCxzdHlsZT1wcm9wcy5zdHlsZSxhY2NvcmRpb249cHJvcHMuYWNjb3JkaW9uLGNsYXNzTmFtZT1wcm9wcy5jbGFzc05hbWUsY2hpbGRyZW49cHJvcHMuY2hpbGRyZW4sY29sbGFwc2libGU9cHJvcHMuY29sbGFwc2libGUsb3Blbk1vdGlvbj1wcm9wcy5vcGVuTW90aW9uLGV4cGFuZEljb249cHJvcHMuZXhwYW5kSWNvbixyYXdBY3RpdmVLZXk9cHJvcHMuYWN0aXZlS2V5LGRlZmF1bHRBY3RpdmVLZXk9cHJvcHMuZGVmYXVsdEFjdGl2ZUtleSxfb25DaGFuZ2U9cHJvcHMub25DaGFuZ2UsaXRlbXM9cHJvcHMuaXRlbXMsY29sbGFwc2VDbGFzc05hbWU9bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKHByZWZpeENscyxjbGFzc05hbWUpLF91c2VNZXJnZWRTdGF0ZT0oMCx1c2VNZXJnZWRTdGF0ZS5aKShbXSx7dmFsdWU6cmF3QWN0aXZlS2V5LG9uQ2hhbmdlOmZ1bmN0aW9uKHYpe3JldHVybiBudWxsPT1fb25DaGFuZ2U/dm9pZCAwOl9vbkNoYW5nZSh2KX0sZGVmYXVsdFZhbHVlOmRlZmF1bHRBY3RpdmVLZXkscG9zdFN0YXRlOmdldEFjdGl2ZUtleXNBcnJheX0pLF91c2VNZXJnZWRTdGF0ZTI9KDAsc2xpY2VkVG9BcnJheS5aKShfdXNlTWVyZ2VkU3RhdGUsMiksYWN0aXZlS2V5PV91c2VNZXJnZWRTdGF0ZTJbMF0sc2V0QWN0aXZlS2V5PV91c2VNZXJnZWRTdGF0ZTJbMV07KDAsd2FybmluZy5aUCkoIWNoaWxkcmVuLCJbcmMtY29sbGFwc2VdIGBjaGlsZHJlbmAgd2lsbCBiZSByZW1vdmVkIGluIG5leHQgbWFqb3IgdmVyc2lvbi4gUGxlYXNlIHVzZSBgaXRlbXNgIGluc3RlYWQuIik7dmFyIG1lcmdlZENoaWxkcmVuPShwcm9wczE9e3ByZWZpeENsczpwcmVmaXhDbHMsYWNjb3JkaW9uOmFjY29yZGlvbixvcGVuTW90aW9uOm9wZW5Nb3Rpb24sZXhwYW5kSWNvbjpleHBhbmRJY29uLGNvbGxhcHNpYmxlOmNvbGxhcHNpYmxlLGRlc3Ryb3lJbmFjdGl2ZVBhbmVsOnZvaWQgMCE9PV9wcm9wcyRkZXN0cm95SW5hY3RpdiYmX3Byb3BzJGRlc3Ryb3lJbmFjdGl2LG9uSXRlbUNsaWNrOmZ1bmN0aW9uKGtleSl7cmV0dXJuIHNldEFjdGl2ZUtleShmdW5jdGlvbigpe3JldHVybiBhY2NvcmRpb24/YWN0aXZlS2V5WzBdPT09a2V5P1tdOltrZXldOmFjdGl2ZUtleS5pbmRleE9mKGtleSk+LTE/YWN0aXZlS2V5LmZpbHRlcihmdW5jdGlvbihpdGVtKXtyZXR1cm4gaXRlbSE9PWtleX0pOltdLmNvbmNhdCgoMCx0b0NvbnN1bWFibGVBcnJheS5aKShhY3RpdmVLZXkpLFtrZXldKX0pfSxhY3RpdmVLZXk6YWN0aXZlS2V5fSxBcnJheS5pc0FycmF5KGl0ZW1zKT9jb252ZXJ0SXRlbXNUb05vZGVzKGl0ZW1zLHByb3BzMSk6KDAsdG9BcnJheS5aKShjaGlsZHJlbikubWFwKGZ1bmN0aW9uKGNoaWxkLGluZGV4KXtyZXR1cm4gZ2V0TmV3Q2hpbGQoY2hpbGQsaW5kZXgscHJvcHMxKX0pKTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2IiwoMCxlc21fZXh0ZW5kcy5aKSh7cmVmOnJlZixjbGFzc05hbWU6Y29sbGFwc2VDbGFzc05hbWUsc3R5bGU6c3R5bGUscm9sZTphY2NvcmRpb24/InRhYmxpc3QiOnZvaWQgMH0sKDAscGlja0F0dHJzLlopKHByb3BzLHthcmlhOiEwLGRhdGE6ITB9KSksbWVyZ2VkQ2hpbGRyZW4pfSkse1BhbmVsOkNvbGxhcHNlUGFuZWx9KTtlc19Db2xsYXBzZS5QYW5lbDt2YXIgQ2hpbGRyZW5fdG9BcnJheT1fX3dlYnBhY2tfcmVxdWlyZV9fKDM3NDE5KSxvbWl0PV9fd2VicGFja19yZXF1aXJlX18oMTAzNjYpLG1vdGlvbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDMzNjAzKSxyZWFjdE5vZGU9X193ZWJwYWNrX3JlcXVpcmVfXyg5NjE1OSksY29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDUzMTI0KSx1c2VTaXplPV9fd2VicGFja19yZXF1aXJlX18oOTg2NzUpO2xldCBDb2xsYXBzZVBhbmVsX0NvbGxhcHNlUGFuZWw9cmVhY3QuZm9yd2FyZFJlZigocHJvcHMscmVmKT0+e2xldHtnZXRQcmVmaXhDbHN9PXJlYWN0LnVzZUNvbnRleHQoY29udGV4dC5FXykse3ByZWZpeENsczpjdXN0b21pemVQcmVmaXhDbHMsY2xhc3NOYW1lLHNob3dBcnJvdz0hMH09cHJvcHMscHJlZml4Q2xzPWdldFByZWZpeENscygiY29sbGFwc2UiLGN1c3RvbWl6ZVByZWZpeENscyksY29sbGFwc2VQYW5lbENsYXNzTmFtZT1jbGFzc25hbWVzX2RlZmF1bHQoKSh7W2Ake3ByZWZpeENsc30tbm8tYXJyb3dgXTohc2hvd0Fycm93fSxjbGFzc05hbWUpO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KGVzX0NvbGxhcHNlLlBhbmVsLE9iamVjdC5hc3NpZ24oe3JlZjpyZWZ9LHByb3BzLHtwcmVmaXhDbHM6cHJlZml4Q2xzLGNsYXNzTmFtZTpjb2xsYXBzZVBhbmVsQ2xhc3NOYW1lfSkpfSk7dmFyIGNzc2luanNfZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0NDg5OSksc3R5bGU9X193ZWJwYWNrX3JlcXVpcmVfXygxNDc0NyksY29sbGFwc2U9X193ZWJwYWNrX3JlcXVpcmVfXygzMzUwNyksZ2VuU3R5bGVVdGlscz1fX3dlYnBhY2tfcmVxdWlyZV9fKDgzNTU5KSxjc3NpbmpzX3V0aWxzX2VzPV9fd2VicGFja19yZXF1aXJlX18oNDI1NTkpO2xldCBnZW5CYXNlU3R5bGU9dG9rZW49PntsZXR7Y29tcG9uZW50Q2xzLGNvbnRlbnRCZyxwYWRkaW5nLGhlYWRlckJnLGhlYWRlclBhZGRpbmcsY29sbGFwc2VIZWFkZXJQYWRkaW5nU00sY29sbGFwc2VIZWFkZXJQYWRkaW5nTEcsY29sbGFwc2VQYW5lbEJvcmRlclJhZGl1cyxsaW5lV2lkdGgsbGluZVR5cGUsY29sb3JCb3JkZXIsY29sb3JUZXh0LGNvbG9yVGV4dEhlYWRpbmcsY29sb3JUZXh0RGlzYWJsZWQsZm9udFNpemVMRyxsaW5lSGVpZ2h0LGxpbmVIZWlnaHRMRyxtYXJnaW5TTSxwYWRkaW5nU00scGFkZGluZ0xHLHBhZGRpbmdYUyxtb3Rpb25EdXJhdGlvblNsb3csZm9udFNpemVJY29uLGNvbnRlbnRQYWRkaW5nLGZvbnRIZWlnaHQsZm9udEhlaWdodExHfT10b2tlbixib3JkZXJCYXNlPWAkeygwLGNzc2luanNfZXMuYmYpKGxpbmVXaWR0aCl9ICR7bGluZVR5cGV9ICR7Y29sb3JCb3JkZXJ9YDtyZXR1cm57W2NvbXBvbmVudENsc106T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLHN0eWxlLldmKSh0b2tlbikpLHtiYWNrZ3JvdW5kQ29sb3I6aGVhZGVyQmcsYm9yZGVyOmJvcmRlckJhc2UsYm9yZGVyUmFkaXVzOmNvbGxhcHNlUGFuZWxCb3JkZXJSYWRpdXMsIiYtcnRsIjp7ZGlyZWN0aW9uOiJydGwifSxbYCYgPiAke2NvbXBvbmVudENsc30taXRlbWBdOntib3JkZXJCb3R0b206Ym9yZGVyQmFzZSwiJjpmaXJzdC1jaGlsZCI6e1tgCiAgICAgICAgICAgICYsCiAgICAgICAgICAgICYgPiAke2NvbXBvbmVudENsc30taGVhZGVyYF06e2JvcmRlclJhZGl1czpgJHsoMCxjc3NpbmpzX2VzLmJmKShjb2xsYXBzZVBhbmVsQm9yZGVyUmFkaXVzKX0gJHsoMCxjc3NpbmpzX2VzLmJmKShjb2xsYXBzZVBhbmVsQm9yZGVyUmFkaXVzKX0gMCAwYH19LCImOmxhc3QtY2hpbGQiOntbYAogICAgICAgICAgICAmLAogICAgICAgICAgICAmID4gJHtjb21wb25lbnRDbHN9LWhlYWRlcmBdOntib3JkZXJSYWRpdXM6YDAgMCAkeygwLGNzc2luanNfZXMuYmYpKGNvbGxhcHNlUGFuZWxCb3JkZXJSYWRpdXMpfSAkeygwLGNzc2luanNfZXMuYmYpKGNvbGxhcHNlUGFuZWxCb3JkZXJSYWRpdXMpfWB9fSxbYD4gJHtjb21wb25lbnRDbHN9LWhlYWRlcmBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJmbGV4IixmbGV4V3JhcDoibm93cmFwIixhbGlnbkl0ZW1zOiJmbGV4LXN0YXJ0IixwYWRkaW5nOmhlYWRlclBhZGRpbmcsY29sb3I6Y29sb3JUZXh0SGVhZGluZyxsaW5lSGVpZ2h0LGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7bW90aW9uRHVyYXRpb25TbG93fSwgdmlzaWJpbGl0eSAwc2B9LCgwLHN0eWxlLlF5KSh0b2tlbikpLHtbYD4gJHtjb21wb25lbnRDbHN9LWhlYWRlci10ZXh0YF06e2ZsZXg6ImF1dG8ifSxbYCR7Y29tcG9uZW50Q2xzfS1leHBhbmQtaWNvbmBdOntoZWlnaHQ6Zm9udEhlaWdodCxkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLHBhZGRpbmdJbmxpbmVFbmQ6bWFyZ2luU019LFtgJHtjb21wb25lbnRDbHN9LWFycm93YF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLHN0eWxlLlJvKSgpKSx7Zm9udFNpemU6Zm9udFNpemVJY29uLHRyYW5zaXRpb246YHRyYW5zZm9ybSAke21vdGlvbkR1cmF0aW9uU2xvd31gLHN2Zzp7dHJhbnNpdGlvbjpgdHJhbnNmb3JtICR7bW90aW9uRHVyYXRpb25TbG93fWB9fSksW2Ake2NvbXBvbmVudENsc30taGVhZGVyLXRleHRgXTp7bWFyZ2luSW5saW5lRW5kOiJhdXRvIn19KSxbYCR7Y29tcG9uZW50Q2xzfS1jb2xsYXBzaWJsZS1oZWFkZXJgXTp7Y3Vyc29yOiJkZWZhdWx0IixbYCR7Y29tcG9uZW50Q2xzfS1oZWFkZXItdGV4dGBdOntmbGV4OiJub25lIixjdXJzb3I6InBvaW50ZXIifX0sW2Ake2NvbXBvbmVudENsc30tY29sbGFwc2libGUtaWNvbmBdOntjdXJzb3I6InVuc2V0IixbYCR7Y29tcG9uZW50Q2xzfS1leHBhbmQtaWNvbmBdOntjdXJzb3I6InBvaW50ZXIifX19LFtgJHtjb21wb25lbnRDbHN9LWNvbnRlbnRgXTp7Y29sb3I6Y29sb3JUZXh0LGJhY2tncm91bmRDb2xvcjpjb250ZW50QmcsYm9yZGVyVG9wOmJvcmRlckJhc2UsW2AmID4gJHtjb21wb25lbnRDbHN9LWNvbnRlbnQtYm94YF06e3BhZGRpbmc6Y29udGVudFBhZGRpbmd9LCImLWhpZGRlbiI6e2Rpc3BsYXk6Im5vbmUifX0sIiYtc21hbGwiOntbYD4gJHtjb21wb25lbnRDbHN9LWl0ZW1gXTp7W2A+ICR7Y29tcG9uZW50Q2xzfS1oZWFkZXJgXTp7cGFkZGluZzpjb2xsYXBzZUhlYWRlclBhZGRpbmdTTSxwYWRkaW5nSW5saW5lU3RhcnQ6cGFkZGluZ1hTLFtgPiAke2NvbXBvbmVudENsc30tZXhwYW5kLWljb25gXTp7bWFyZ2luSW5saW5lU3RhcnQ6dG9rZW4uY2FsYyhwYWRkaW5nU00pLnN1YihwYWRkaW5nWFMpLmVxdWFsKCl9fSxbYD4gJHtjb21wb25lbnRDbHN9LWNvbnRlbnQgPiAke2NvbXBvbmVudENsc30tY29udGVudC1ib3hgXTp7cGFkZGluZzpwYWRkaW5nU019fX0sIiYtbGFyZ2UiOntbYD4gJHtjb21wb25lbnRDbHN9LWl0ZW1gXTp7Zm9udFNpemU6Zm9udFNpemVMRyxsaW5lSGVpZ2h0OmxpbmVIZWlnaHRMRyxbYD4gJHtjb21wb25lbnRDbHN9LWhlYWRlcmBdOntwYWRkaW5nOmNvbGxhcHNlSGVhZGVyUGFkZGluZ0xHLHBhZGRpbmdJbmxpbmVTdGFydDpwYWRkaW5nLFtgPiAke2NvbXBvbmVudENsc30tZXhwYW5kLWljb25gXTp7aGVpZ2h0OmZvbnRIZWlnaHRMRyxtYXJnaW5JbmxpbmVTdGFydDp0b2tlbi5jYWxjKHBhZGRpbmdMRykuc3ViKHBhZGRpbmcpLmVxdWFsKCl9fSxbYD4gJHtjb21wb25lbnRDbHN9LWNvbnRlbnQgPiAke2NvbXBvbmVudENsc30tY29udGVudC1ib3hgXTp7cGFkZGluZzpwYWRkaW5nTEd9fX0sW2Ake2NvbXBvbmVudENsc30taXRlbTpsYXN0LWNoaWxkYF06e2JvcmRlckJvdHRvbTowLFtgPiAke2NvbXBvbmVudENsc30tY29udGVudGBdOntib3JkZXJSYWRpdXM6YDAgMCAkeygwLGNzc2luanNfZXMuYmYpKGNvbGxhcHNlUGFuZWxCb3JkZXJSYWRpdXMpfSAkeygwLGNzc2luanNfZXMuYmYpKGNvbGxhcHNlUGFuZWxCb3JkZXJSYWRpdXMpfWB9fSxbYCYgJHtjb21wb25lbnRDbHN9LWl0ZW0tZGlzYWJsZWQgPiAke2NvbXBvbmVudENsc30taGVhZGVyYF06e1tgCiAgICAgICAgICAmLAogICAgICAgICAgJiA+IC5hcnJvdwogICAgICAgIGBdOntjb2xvcjpjb2xvclRleHREaXNhYmxlZCxjdXJzb3I6Im5vdC1hbGxvd2VkIn19LFtgJiR7Y29tcG9uZW50Q2xzfS1pY29uLXBvc2l0aW9uLWVuZGBdOntbYCYgPiAke2NvbXBvbmVudENsc30taXRlbWBdOntbYD4gJHtjb21wb25lbnRDbHN9LWhlYWRlcmBdOntbYCR7Y29tcG9uZW50Q2xzfS1leHBhbmQtaWNvbmBdOntvcmRlcjoxLHBhZGRpbmdJbmxpbmVFbmQ6MCxwYWRkaW5nSW5saW5lU3RhcnQ6bWFyZ2luU019fX19fSl9fSxnZW5BcnJvd1N0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENsc309dG9rZW4sZml4ZWRTZWxlY3Rvcj1gPiAke2NvbXBvbmVudENsc30taXRlbSA+ICR7Y29tcG9uZW50Q2xzfS1oZWFkZXIgJHtjb21wb25lbnRDbHN9LWFycm93YDtyZXR1cm57W2Ake2NvbXBvbmVudENsc30tcnRsYF06e1tmaXhlZFNlbGVjdG9yXTp7dHJhbnNmb3JtOiJyb3RhdGUoMTgwZGVnKSJ9fX19LGdlbkJvcmRlcmxlc3NTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHMsaGVhZGVyQmcsYm9yZGVybGVzc0NvbnRlbnRQYWRkaW5nLGJvcmRlcmxlc3NDb250ZW50QmcsY29sb3JCb3JkZXJ9PXRva2VuO3JldHVybntbYCR7Y29tcG9uZW50Q2xzfS1ib3JkZXJsZXNzYF06e2JhY2tncm91bmRDb2xvcjpoZWFkZXJCZyxib3JkZXI6MCxbYD4gJHtjb21wb25lbnRDbHN9LWl0ZW1gXTp7Ym9yZGVyQm90dG9tOmAxcHggc29saWQgJHtjb2xvckJvcmRlcn1gfSxbYAogICAgICAgID4gJHtjb21wb25lbnRDbHN9LWl0ZW06bGFzdC1jaGlsZCwKICAgICAgICA+ICR7Y29tcG9uZW50Q2xzfS1pdGVtOmxhc3QtY2hpbGQgJHtjb21wb25lbnRDbHN9LWhlYWRlcgogICAgICBgXTp7Ym9yZGVyUmFkaXVzOjB9LFtgPiAke2NvbXBvbmVudENsc30taXRlbTpsYXN0LWNoaWxkYF06e2JvcmRlckJvdHRvbTowfSxbYD4gJHtjb21wb25lbnRDbHN9LWl0ZW0gPiAke2NvbXBvbmVudENsc30tY29udGVudGBdOntiYWNrZ3JvdW5kQ29sb3I6Ym9yZGVybGVzc0NvbnRlbnRCZyxib3JkZXJUb3A6MH0sW2A+ICR7Y29tcG9uZW50Q2xzfS1pdGVtID4gJHtjb21wb25lbnRDbHN9LWNvbnRlbnQgPiAke2NvbXBvbmVudENsc30tY29udGVudC1ib3hgXTp7cGFkZGluZzpib3JkZXJsZXNzQ29udGVudFBhZGRpbmd9fX19LGdlbkdob3N0U3R5bGU9dG9rZW49PntsZXR7Y29tcG9uZW50Q2xzLHBhZGRpbmdTTX09dG9rZW47cmV0dXJue1tgJHtjb21wb25lbnRDbHN9LWdob3N0YF06e2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQiLGJvcmRlcjowLFtgPiAke2NvbXBvbmVudENsc30taXRlbWBdOntib3JkZXJCb3R0b206MCxbYD4gJHtjb21wb25lbnRDbHN9LWNvbnRlbnRgXTp7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyOjAsW2A+ICR7Y29tcG9uZW50Q2xzfS1jb250ZW50LWJveGBdOntwYWRkaW5nQmxvY2s6cGFkZGluZ1NNfX19fX19LHByZXBhcmVDb21wb25lbnRUb2tlbj10b2tlbj0+KHtoZWFkZXJQYWRkaW5nOmAke3Rva2VuLnBhZGRpbmdTTX1weCAke3Rva2VuLnBhZGRpbmd9cHhgLGhlYWRlckJnOnRva2VuLmNvbG9yRmlsbEFsdGVyLGNvbnRlbnRQYWRkaW5nOmAke3Rva2VuLnBhZGRpbmd9cHggMTZweGAsY29udGVudEJnOnRva2VuLmNvbG9yQmdDb250YWluZXIsYm9yZGVybGVzc0NvbnRlbnRQYWRkaW5nOmAke3Rva2VuLnBhZGRpbmdYWFN9cHggMTZweCAke3Rva2VuLnBhZGRpbmd9cHhgLGJvcmRlcmxlc3NDb250ZW50Qmc6InRyYW5zcGFyZW50In0pO3ZhciBjb2xsYXBzZV9zdHlsZT0oMCxnZW5TdHlsZVV0aWxzLkkkKSgiQ29sbGFwc2UiLHRva2VuPT57bGV0IGNvbGxhcHNlVG9rZW49KDAsY3NzaW5qc191dGlsc19lcy5JWCkodG9rZW4se2NvbGxhcHNlSGVhZGVyUGFkZGluZ1NNOmAkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLnBhZGRpbmdYUyl9ICR7KDAsY3NzaW5qc19lcy5iZikodG9rZW4ucGFkZGluZ1NNKX1gLGNvbGxhcHNlSGVhZGVyUGFkZGluZ0xHOmAkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLnBhZGRpbmcpfSAkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLnBhZGRpbmdMRyl9YCxjb2xsYXBzZVBhbmVsQm9yZGVyUmFkaXVzOnRva2VuLmJvcmRlclJhZGl1c0xHfSk7cmV0dXJuW2dlbkJhc2VTdHlsZShjb2xsYXBzZVRva2VuKSxnZW5Cb3JkZXJsZXNzU3R5bGUoY29sbGFwc2VUb2tlbiksZ2VuR2hvc3RTdHlsZShjb2xsYXBzZVRva2VuKSxnZW5BcnJvd1N0eWxlKGNvbGxhcHNlVG9rZW4pLCgwLGNvbGxhcHNlLlopKGNvbGxhcHNlVG9rZW4pXX0scHJlcGFyZUNvbXBvbmVudFRva2VuKTtsZXQgQ29sbGFwc2VfQ29sbGFwc2U9cmVhY3QuZm9yd2FyZFJlZigocHJvcHMscmVmKT0+e2xldHtnZXRQcmVmaXhDbHMsZGlyZWN0aW9uLGV4cGFuZEljb246Y29udGV4dEV4cGFuZEljb24sY2xhc3NOYW1lOmNvbnRleHRDbGFzc05hbWUsc3R5bGU6Y29udGV4dFN0eWxlfT0oMCxjb250ZXh0LmRqKSgiY29sbGFwc2UiKSx7cHJlZml4Q2xzOmN1c3RvbWl6ZVByZWZpeENscyxjbGFzc05hbWUscm9vdENsYXNzTmFtZSxzdHlsZSxib3JkZXJlZD0hMCxnaG9zdCxzaXplOmN1c3RvbWl6ZVNpemUsZXhwYW5kSWNvblBvc2l0aW9uPSJzdGFydCIsY2hpbGRyZW4sZGVzdHJveUluYWN0aXZlUGFuZWwsZGVzdHJveU9uSGlkZGVuLGV4cGFuZEljb259PXByb3BzLG1lcmdlZFNpemU9KDAsdXNlU2l6ZS5aKShjdHg9Pnt2YXIgX2E7cmV0dXJuIG51bGwhPT0oX2E9bnVsbCE9Y3VzdG9taXplU2l6ZT9jdXN0b21pemVTaXplOmN0eCkmJnZvaWQgMCE9PV9hP19hOiJtaWRkbGUifSkscHJlZml4Q2xzPWdldFByZWZpeENscygiY29sbGFwc2UiLGN1c3RvbWl6ZVByZWZpeENscykscm9vdFByZWZpeENscz1nZXRQcmVmaXhDbHMoKSxbd3JhcENTU1ZhcixoYXNoSWQsY3NzVmFyQ2xzXT1jb2xsYXBzZV9zdHlsZShwcmVmaXhDbHMpLG1lcmdlZEV4cGFuZEljb25Qb3NpdGlvbj1yZWFjdC51c2VNZW1vKCgpPT4ibGVmdCI9PT1leHBhbmRJY29uUG9zaXRpb24/InN0YXJ0IjoicmlnaHQiPT09ZXhwYW5kSWNvblBvc2l0aW9uPyJlbmQiOmV4cGFuZEljb25Qb3NpdGlvbixbZXhwYW5kSWNvblBvc2l0aW9uXSksbWVyZ2VkRXhwYW5kSWNvbj1udWxsIT1leHBhbmRJY29uP2V4cGFuZEljb246Y29udGV4dEV4cGFuZEljb24scmVuZGVyRXhwYW5kSWNvbj1yZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbigpe2xldCBwYW5lbFByb3BzPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxpY29uPSJmdW5jdGlvbiI9PXR5cGVvZiBtZXJnZWRFeHBhbmRJY29uP21lcmdlZEV4cGFuZEljb24ocGFuZWxQcm9wcyk6cmVhY3QuY3JlYXRlRWxlbWVudChSaWdodE91dGxpbmVkLlose3JvdGF0ZTpwYW5lbFByb3BzLmlzQWN0aXZlPyJydGwiPT09ZGlyZWN0aW9uPy05MDo5MDp2b2lkIDAsImFyaWEtbGFiZWwiOnBhbmVsUHJvcHMuaXNBY3RpdmU/ImV4cGFuZGVkIjoiY29sbGFwc2VkIn0pO3JldHVybigwLHJlYWN0Tm9kZS5UbSkoaWNvbiwoKT0+e3ZhciBfYTtyZXR1cm57Y2xhc3NOYW1lOmNsYXNzbmFtZXNfZGVmYXVsdCgpKG51bGw9PT0oX2E9bnVsbD09aWNvbj92b2lkIDA6aWNvbi5wcm9wcyl8fHZvaWQgMD09PV9hP3ZvaWQgMDpfYS5jbGFzc05hbWUsYCR7cHJlZml4Q2xzfS1hcnJvd2ApfX0pfSxbbWVyZ2VkRXhwYW5kSWNvbixwcmVmaXhDbHNdKSxjb2xsYXBzZUNsYXNzTmFtZT1jbGFzc25hbWVzX2RlZmF1bHQoKShgJHtwcmVmaXhDbHN9LWljb24tcG9zaXRpb24tJHttZXJnZWRFeHBhbmRJY29uUG9zaXRpb259YCx7W2Ake3ByZWZpeENsc30tYm9yZGVybGVzc2BdOiFib3JkZXJlZCxbYCR7cHJlZml4Q2xzfS1ydGxgXToicnRsIj09PWRpcmVjdGlvbixbYCR7cHJlZml4Q2xzfS1naG9zdGBdOiEhZ2hvc3QsW2Ake3ByZWZpeENsc30tJHttZXJnZWRTaXplfWBdOiJtaWRkbGUiIT09bWVyZ2VkU2l6ZX0sY29udGV4dENsYXNzTmFtZSxjbGFzc05hbWUscm9vdENsYXNzTmFtZSxoYXNoSWQsY3NzVmFyQ2xzKSxvcGVuTW90aW9uPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxtb3Rpb24uWikocm9vdFByZWZpeENscykpLHttb3Rpb25BcHBlYXI6ITEsbGVhdmVkQ2xhc3NOYW1lOmAke3ByZWZpeENsc30tY29udGVudC1oaWRkZW5gfSksaXRlbXM9cmVhY3QudXNlTWVtbygoKT0+Y2hpbGRyZW4/KDAsQ2hpbGRyZW5fdG9BcnJheS5aKShjaGlsZHJlbikubWFwKChjaGlsZCxpbmRleCk9Pnt2YXIgX2EsX2I7bGV0IGNoaWxkUHJvcHM9Y2hpbGQucHJvcHM7aWYobnVsbD09Y2hpbGRQcm9wcz92b2lkIDA6Y2hpbGRQcm9wcy5kaXNhYmxlZCl7bGV0IGtleT1udWxsIT09KF9hPWNoaWxkLmtleSkmJnZvaWQgMCE9PV9hP19hOlN0cmluZyhpbmRleCksbWVyZ2VkQ2hpbGRQcm9wcz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsb21pdC5aKShjaGlsZC5wcm9wcyxbImRpc2FibGVkIl0pKSx7a2V5LGNvbGxhcHNpYmxlOm51bGwhPT0oX2I9Y2hpbGRQcm9wcy5jb2xsYXBzaWJsZSkmJnZvaWQgMCE9PV9iP19iOiJkaXNhYmxlZCJ9KTtyZXR1cm4oMCxyZWFjdE5vZGUuVG0pKGNoaWxkLG1lcmdlZENoaWxkUHJvcHMpfXJldHVybiBjaGlsZH0pOm51bGwsW2NoaWxkcmVuXSk7cmV0dXJuIHdyYXBDU1NWYXIocmVhY3QuY3JlYXRlRWxlbWVudChlc19Db2xsYXBzZSxPYmplY3QuYXNzaWduKHtyZWY6cmVmLG9wZW5Nb3Rpb246b3Blbk1vdGlvbn0sKDAsb21pdC5aKShwcm9wcyxbInJvb3RDbGFzc05hbWUiXSkse2V4cGFuZEljb246cmVuZGVyRXhwYW5kSWNvbixwcmVmaXhDbHM6cHJlZml4Q2xzLGNsYXNzTmFtZTpjb2xsYXBzZUNsYXNzTmFtZSxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sY29udGV4dFN0eWxlKSxzdHlsZSksZGVzdHJveUluYWN0aXZlUGFuZWw6bnVsbCE9ZGVzdHJveU9uSGlkZGVuP2Rlc3Ryb3lPbkhpZGRlbjpkZXN0cm95SW5hY3RpdmVQYW5lbH0pLGl0ZW1zKSl9KTt2YXIgZXNfY29sbGFwc2U9T2JqZWN0LmFzc2lnbihDb2xsYXBzZV9Db2xsYXBzZSx7UGFuZWw6Q29sbGFwc2VQYW5lbF9Db2xsYXBzZVBhbmVsfSl9LDk4ODY2OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtuOmZ1bmN0aW9uKCl7cmV0dXJuIERpc2FibGVkQ29udGV4dFByb3ZpZGVyfX0pO3ZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpO2xldCBEaXNhYmxlZENvbnRleHQ9cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jcmVhdGVDb250ZXh0KCExKSxEaXNhYmxlZENvbnRleHRQcm92aWRlcj1fcmVmPT57bGV0e2NoaWxkcmVuLGRpc2FibGVkfT1fcmVmLG9yaWdpbkRpc2FibGVkPXJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlQ29udGV4dChEaXNhYmxlZENvbnRleHQpO3JldHVybiByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmNyZWF0ZUVsZW1lbnQoRGlzYWJsZWRDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpudWxsIT1kaXNhYmxlZD9kaXNhYmxlZDpvcmlnaW5EaXNhYmxlZH0sY2hpbGRyZW4pfTtfX3dlYnBhY2tfZXhwb3J0c19fLlo9RGlzYWJsZWRDb250ZXh0fSw5NzY0NzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7cTpmdW5jdGlvbigpe3JldHVybiBTaXplQ29udGV4dFByb3ZpZGVyfX0pO3ZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpO2xldCBTaXplQ29udGV4dD1yZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmNyZWF0ZUNvbnRleHQodm9pZCAwKSxTaXplQ29udGV4dFByb3ZpZGVyPV9yZWY9PntsZXR7Y2hpbGRyZW4sc2l6ZX09X3JlZixvcmlnaW5TaXplPXJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlQ29udGV4dChTaXplQ29udGV4dCk7cmV0dXJuIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uY3JlYXRlRWxlbWVudChTaXplQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6c2l6ZXx8b3JpZ2luU2l6ZX0sY2hpbGRyZW4pfTtfX3dlYnBhY2tfZXhwb3J0c19fLlo9U2l6ZUNvbnRleHR9LDQ2MTQ3OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtxOmZ1bmN0aW9uKCl7cmV0dXJuIHVuc3RhYmxlU2V0UmVuZGVyfX0pLF9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpO3ZhciBjcmVhdGVSb290LHJlYWN0X2RvbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDczOTM1KSxyZWFjdF9kb21fbmFtZXNwYWNlT2JqZWN0PV9fd2VicGFja19yZXF1aXJlX18udChyZWFjdF9kb20sMiksZXNtX3R5cGVvZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDgzMTY5KTtmdW5jdGlvbiBfcmVnZW5lcmF0b3JSdW50aW1lKCl7X3JlZ2VuZXJhdG9yUnVudGltZT1mdW5jdGlvbigpe3JldHVybiBleHBvcnRzfTt2YXIgZXhwb3J0cz17fSxPcD1PYmplY3QucHJvdG90eXBlLGhhc093bj1PcC5oYXNPd25Qcm9wZXJ0eSxkZWZpbmVQcm9wZXJ0eT1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKG9iaixrZXksZGVzYyl7b2JqW2tleV09ZGVzYy52YWx1ZX0sJFN5bWJvbD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSxpdGVyYXRvclN5bWJvbD0kU3ltYm9sLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsYXN5bmNJdGVyYXRvclN5bWJvbD0kU3ltYm9sLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLHRvU3RyaW5nVGFnU3ltYm9sPSRTeW1ib2wudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBkZWZpbmUob2JqLGtleSx2YWx1ZSl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosa2V5LHt2YWx1ZTp2YWx1ZSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLG9ialtrZXldfXRyeXtkZWZpbmUoe30sIiIpfWNhdGNoKGVycil7ZGVmaW5lPWZ1bmN0aW9uKG9iaixrZXksdmFsdWUpe3JldHVybiBvYmpba2V5XT12YWx1ZX19ZnVuY3Rpb24gd3JhcChpbm5lckZuLG91dGVyRm4sc2VsZjEsdHJ5TG9jc0xpc3Qpe3ZhciBjb250ZXh0LHN0YXRlLGdlbmVyYXRvcj1PYmplY3QuY3JlYXRlKChvdXRlckZuJiZvdXRlckZuLnByb3RvdHlwZSBpbnN0YW5jZW9mIEdlbmVyYXRvcj9vdXRlckZuOkdlbmVyYXRvcikucHJvdG90eXBlKTtyZXR1cm4gZGVmaW5lUHJvcGVydHkoZ2VuZXJhdG9yLCJfaW52b2tlIix7dmFsdWU6KGNvbnRleHQ9bmV3IENvbnRleHQodHJ5TG9jc0xpc3R8fFtdKSxzdGF0ZT0ic3VzcGVuZGVkU3RhcnQiLGZ1bmN0aW9uKG1ldGhvZCxhcmcpe2lmKCJleGVjdXRpbmciPT09c3RhdGUpdGhyb3cgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZigiY29tcGxldGVkIj09PXN0YXRlKXtpZigidGhyb3ciPT09bWV0aG9kKXRocm93IGFyZztyZXR1cm4gZG9uZVJlc3VsdCgpfWZvcihjb250ZXh0Lm1ldGhvZD1tZXRob2QsY29udGV4dC5hcmc9YXJnOzspe3ZhciBkZWxlZ2F0ZT1jb250ZXh0LmRlbGVnYXRlO2lmKGRlbGVnYXRlKXt2YXIgZGVsZWdhdGVSZXN1bHQ9ZnVuY3Rpb24gbWF5YmVJbnZva2VEZWxlZ2F0ZShkZWxlZ2F0ZSxjb250ZXh0KXt2YXIgbWV0aG9kTmFtZT1jb250ZXh0Lm1ldGhvZCxtZXRob2Q9ZGVsZWdhdGUuaXRlcmF0b3JbbWV0aG9kTmFtZV07aWYodm9pZCAwPT09bWV0aG9kKXJldHVybiBjb250ZXh0LmRlbGVnYXRlPW51bGwsInRocm93Ij09PW1ldGhvZE5hbWUmJmRlbGVnYXRlLml0ZXJhdG9yLnJldHVybiYmKGNvbnRleHQubWV0aG9kPSJyZXR1cm4iLGNvbnRleHQuYXJnPXZvaWQgMCxtYXliZUludm9rZURlbGVnYXRlKGRlbGVnYXRlLGNvbnRleHQpLCJ0aHJvdyI9PT1jb250ZXh0Lm1ldGhvZCl8fCJyZXR1cm4iIT09bWV0aG9kTmFtZSYmKGNvbnRleHQubWV0aG9kPSJ0aHJvdyIsY29udGV4dC5hcmc9VHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK21ldGhvZE5hbWUrIicgbWV0aG9kIikpLENvbnRpbnVlU2VudGluZWw7dmFyIHJlY29yZD10cnlDYXRjaChtZXRob2QsZGVsZWdhdGUuaXRlcmF0b3IsY29udGV4dC5hcmcpO2lmKCJ0aHJvdyI9PT1yZWNvcmQudHlwZSlyZXR1cm4gY29udGV4dC5tZXRob2Q9InRocm93Iixjb250ZXh0LmFyZz1yZWNvcmQuYXJnLGNvbnRleHQuZGVsZWdhdGU9bnVsbCxDb250aW51ZVNlbnRpbmVsO3ZhciBpbmZvPXJlY29yZC5hcmc7cmV0dXJuIGluZm8/aW5mby5kb25lPyhjb250ZXh0W2RlbGVnYXRlLnJlc3VsdE5hbWVdPWluZm8udmFsdWUsY29udGV4dC5uZXh0PWRlbGVnYXRlLm5leHRMb2MsInJldHVybiIhPT1jb250ZXh0Lm1ldGhvZCYmKGNvbnRleHQubWV0aG9kPSJuZXh0Iixjb250ZXh0LmFyZz12b2lkIDApLGNvbnRleHQuZGVsZWdhdGU9bnVsbCxDb250aW51ZVNlbnRpbmVsKTppbmZvOihjb250ZXh0Lm1ldGhvZD0idGhyb3ciLGNvbnRleHQuYXJnPVR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxjb250ZXh0LmRlbGVnYXRlPW51bGwsQ29udGludWVTZW50aW5lbCl9KGRlbGVnYXRlLGNvbnRleHQpO2lmKGRlbGVnYXRlUmVzdWx0KXtpZihkZWxlZ2F0ZVJlc3VsdD09PUNvbnRpbnVlU2VudGluZWwpY29udGludWU7cmV0dXJuIGRlbGVnYXRlUmVzdWx0fX1pZigibmV4dCI9PT1jb250ZXh0Lm1ldGhvZCljb250ZXh0LnNlbnQ9Y29udGV4dC5fc2VudD1jb250ZXh0LmFyZztlbHNlIGlmKCJ0aHJvdyI9PT1jb250ZXh0Lm1ldGhvZCl7aWYoInN1c3BlbmRlZFN0YXJ0Ij09PXN0YXRlKXRocm93IHN0YXRlPSJjb21wbGV0ZWQiLGNvbnRleHQuYXJnO2NvbnRleHQuZGlzcGF0Y2hFeGNlcHRpb24oY29udGV4dC5hcmcpfWVsc2UicmV0dXJuIj09PWNvbnRleHQubWV0aG9kJiZjb250ZXh0LmFicnVwdCgicmV0dXJuIixjb250ZXh0LmFyZyk7c3RhdGU9ImV4ZWN1dGluZyI7dmFyIHJlY29yZD10cnlDYXRjaChpbm5lckZuLHNlbGYxLGNvbnRleHQpO2lmKCJub3JtYWwiPT09cmVjb3JkLnR5cGUpe2lmKHN0YXRlPWNvbnRleHQuZG9uZT8iY29tcGxldGVkIjoic3VzcGVuZGVkWWllbGQiLHJlY29yZC5hcmc9PT1Db250aW51ZVNlbnRpbmVsKWNvbnRpbnVlO3JldHVybnt2YWx1ZTpyZWNvcmQuYXJnLGRvbmU6Y29udGV4dC5kb25lfX0idGhyb3ciPT09cmVjb3JkLnR5cGUmJihzdGF0ZT0iY29tcGxldGVkIixjb250ZXh0Lm1ldGhvZD0idGhyb3ciLGNvbnRleHQuYXJnPXJlY29yZC5hcmcpfX0pfSksZ2VuZXJhdG9yfWZ1bmN0aW9uIHRyeUNhdGNoKGZuLG9iaixhcmcpe3RyeXtyZXR1cm57dHlwZToibm9ybWFsIixhcmc6Zm4uY2FsbChvYmosYXJnKX19Y2F0Y2goZXJyKXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzplcnJ9fX1leHBvcnRzLndyYXA9d3JhcDt2YXIgQ29udGludWVTZW50aW5lbD17fTtmdW5jdGlvbiBHZW5lcmF0b3IoKXt9ZnVuY3Rpb24gR2VuZXJhdG9yRnVuY3Rpb24oKXt9ZnVuY3Rpb24gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUoKXt9dmFyIEl0ZXJhdG9yUHJvdG90eXBlPXt9O2RlZmluZShJdGVyYXRvclByb3RvdHlwZSxpdGVyYXRvclN5bWJvbCxmdW5jdGlvbigpe3JldHVybiB0aGlzfSk7dmFyIGdldFByb3RvPU9iamVjdC5nZXRQcm90b3R5cGVPZixOYXRpdmVJdGVyYXRvclByb3RvdHlwZT1nZXRQcm90byYmZ2V0UHJvdG8oZ2V0UHJvdG8odmFsdWVzKFtdKSkpO05hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlJiZOYXRpdmVJdGVyYXRvclByb3RvdHlwZSE9PU9wJiZoYXNPd24uY2FsbChOYXRpdmVJdGVyYXRvclByb3RvdHlwZSxpdGVyYXRvclN5bWJvbCkmJihJdGVyYXRvclByb3RvdHlwZT1OYXRpdmVJdGVyYXRvclByb3RvdHlwZSk7dmFyIEdwPUdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLnByb3RvdHlwZT1HZW5lcmF0b3IucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoSXRlcmF0b3JQcm90b3R5cGUpO2Z1bmN0aW9uIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhwcm90b3R5cGUpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaChmdW5jdGlvbihtZXRob2Qpe2RlZmluZShwcm90b3R5cGUsbWV0aG9kLGZ1bmN0aW9uKGFyZyl7cmV0dXJuIHRoaXMuX2ludm9rZShtZXRob2QsYXJnKX0pfSl9ZnVuY3Rpb24gQXN5bmNJdGVyYXRvcihnZW5lcmF0b3IsUHJvbWlzZUltcGwpe3ZhciBwcmV2aW91c1Byb21pc2U7ZGVmaW5lUHJvcGVydHkodGhpcywiX2ludm9rZSIse3ZhbHVlOmZ1bmN0aW9uKG1ldGhvZCxhcmcpe2Z1bmN0aW9uIGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnKCl7cmV0dXJuIG5ldyBQcm9taXNlSW1wbChmdW5jdGlvbihyZXNvbHZlLHJlamVjdCl7IWZ1bmN0aW9uIGludm9rZShtZXRob2QsYXJnLHJlc29sdmUscmVqZWN0KXt2YXIgcmVjb3JkPXRyeUNhdGNoKGdlbmVyYXRvclttZXRob2RdLGdlbmVyYXRvcixhcmcpO2lmKCJ0aHJvdyIhPT1yZWNvcmQudHlwZSl7dmFyIHJlc3VsdD1yZWNvcmQuYXJnLHZhbHVlPXJlc3VsdC52YWx1ZTtyZXR1cm4gdmFsdWUmJiJvYmplY3QiPT0oMCxlc21fdHlwZW9mLlopKHZhbHVlKSYmaGFzT3duLmNhbGwodmFsdWUsIl9fYXdhaXQiKT9Qcm9taXNlSW1wbC5yZXNvbHZlKHZhbHVlLl9fYXdhaXQpLnRoZW4oZnVuY3Rpb24odmFsdWUpe2ludm9rZSgibmV4dCIsdmFsdWUscmVzb2x2ZSxyZWplY3QpfSxmdW5jdGlvbihlcnIpe2ludm9rZSgidGhyb3ciLGVycixyZXNvbHZlLHJlamVjdCl9KTpQcm9taXNlSW1wbC5yZXNvbHZlKHZhbHVlKS50aGVuKGZ1bmN0aW9uKHVud3JhcHBlZCl7cmVzdWx0LnZhbHVlPXVud3JhcHBlZCxyZXNvbHZlKHJlc3VsdCl9LGZ1bmN0aW9uKGVycm9yKXtyZXR1cm4gaW52b2tlKCJ0aHJvdyIsZXJyb3IscmVzb2x2ZSxyZWplY3QpfSl9cmVqZWN0KHJlY29yZC5hcmcpfShtZXRob2QsYXJnLHJlc29sdmUscmVqZWN0KX0pfXJldHVybiBwcmV2aW91c1Byb21pc2U9cHJldmlvdXNQcm9taXNlP3ByZXZpb3VzUHJvbWlzZS50aGVuKGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnLGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnKTpjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpfX0pfWZ1bmN0aW9uIHB1c2hUcnlFbnRyeShsb2NzKXt2YXIgZW50cnk9e3RyeUxvYzpsb2NzWzBdfTsxIGluIGxvY3MmJihlbnRyeS5jYXRjaExvYz1sb2NzWzFdKSwyIGluIGxvY3MmJihlbnRyeS5maW5hbGx5TG9jPWxvY3NbMl0sZW50cnkuYWZ0ZXJMb2M9bG9jc1szXSksdGhpcy50cnlFbnRyaWVzLnB1c2goZW50cnkpfWZ1bmN0aW9uIHJlc2V0VHJ5RW50cnkoZW50cnkpe3ZhciByZWNvcmQ9ZW50cnkuY29tcGxldGlvbnx8e307cmVjb3JkLnR5cGU9Im5vcm1hbCIsZGVsZXRlIHJlY29yZC5hcmcsZW50cnkuY29tcGxldGlvbj1yZWNvcmR9ZnVuY3Rpb24gQ29udGV4dCh0cnlMb2NzTGlzdCl7dGhpcy50cnlFbnRyaWVzPVt7dHJ5TG9jOiJyb290In1dLHRyeUxvY3NMaXN0LmZvckVhY2gocHVzaFRyeUVudHJ5LHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIHZhbHVlcyhpdGVyYWJsZSl7aWYoaXRlcmFibGUpe3ZhciBpdGVyYXRvck1ldGhvZD1pdGVyYWJsZVtpdGVyYXRvclN5bWJvbF07aWYoaXRlcmF0b3JNZXRob2QpcmV0dXJuIGl0ZXJhdG9yTWV0aG9kLmNhbGwoaXRlcmFibGUpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBpdGVyYWJsZS5uZXh0KXJldHVybiBpdGVyYWJsZTtpZighaXNOYU4oaXRlcmFibGUubGVuZ3RoKSl7dmFyIGk9LTEsbmV4dD1mdW5jdGlvbiBuZXh0KCl7Zm9yKDsrK2k8aXRlcmFibGUubGVuZ3RoOylpZihoYXNPd24uY2FsbChpdGVyYWJsZSxpKSlyZXR1cm4gbmV4dC52YWx1ZT1pdGVyYWJsZVtpXSxuZXh0LmRvbmU9ITEsbmV4dDtyZXR1cm4gbmV4dC52YWx1ZT12b2lkIDAsbmV4dC5kb25lPSEwLG5leHR9O3JldHVybiBuZXh0Lm5leHQ9bmV4dH19cmV0dXJue25leHQ6ZG9uZVJlc3VsdH19ZnVuY3Rpb24gZG9uZVJlc3VsdCgpe3JldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19cmV0dXJuIEdlbmVyYXRvckZ1bmN0aW9uLnByb3RvdHlwZT1HZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSxkZWZpbmVQcm9wZXJ0eShHcCwiY29uc3RydWN0b3IiLHt2YWx1ZTpHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSxjb25maWd1cmFibGU6ITB9KSxkZWZpbmVQcm9wZXJ0eShHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSwiY29uc3RydWN0b3IiLHt2YWx1ZTpHZW5lcmF0b3JGdW5jdGlvbixjb25maWd1cmFibGU6ITB9KSxHZW5lcmF0b3JGdW5jdGlvbi5kaXNwbGF5TmFtZT1kZWZpbmUoR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsdG9TdHJpbmdUYWdTeW1ib2wsIkdlbmVyYXRvckZ1bmN0aW9uIiksZXhwb3J0cy5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGdlbkZ1bil7dmFyIGN0b3I9ImZ1bmN0aW9uIj09dHlwZW9mIGdlbkZ1biYmZ2VuRnVuLmNvbnN0cnVjdG9yO3JldHVybiEhY3RvciYmKGN0b3I9PT1HZW5lcmF0b3JGdW5jdGlvbnx8IkdlbmVyYXRvckZ1bmN0aW9uIj09PShjdG9yLmRpc3BsYXlOYW1lfHxjdG9yLm5hbWUpKX0sZXhwb3J0cy5tYXJrPWZ1bmN0aW9uKGdlbkZ1bil7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YoZ2VuRnVuLEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlKTooZ2VuRnVuLl9fcHJvdG9fXz1HZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSxkZWZpbmUoZ2VuRnVuLHRvU3RyaW5nVGFnU3ltYm9sLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSxnZW5GdW4ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoR3ApLGdlbkZ1bn0sZXhwb3J0cy5hd3JhcD1mdW5jdGlvbihhcmcpe3JldHVybntfX2F3YWl0OmFyZ319LGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSksZGVmaW5lKEFzeW5jSXRlcmF0b3IucHJvdG90eXBlLGFzeW5jSXRlcmF0b3JTeW1ib2wsZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGV4cG9ydHMuQXN5bmNJdGVyYXRvcj1Bc3luY0l0ZXJhdG9yLGV4cG9ydHMuYXN5bmM9ZnVuY3Rpb24oaW5uZXJGbixvdXRlckZuLHNlbGYxLHRyeUxvY3NMaXN0LFByb21pc2VJbXBsKXt2b2lkIDA9PT1Qcm9taXNlSW1wbCYmKFByb21pc2VJbXBsPVByb21pc2UpO3ZhciBpdGVyPW5ldyBBc3luY0l0ZXJhdG9yKHdyYXAoaW5uZXJGbixvdXRlckZuLHNlbGYxLHRyeUxvY3NMaXN0KSxQcm9taXNlSW1wbCk7cmV0dXJuIGV4cG9ydHMuaXNHZW5lcmF0b3JGdW5jdGlvbihvdXRlckZuKT9pdGVyOml0ZXIubmV4dCgpLnRoZW4oZnVuY3Rpb24ocmVzdWx0KXtyZXR1cm4gcmVzdWx0LmRvbmU/cmVzdWx0LnZhbHVlOml0ZXIubmV4dCgpfSl9LGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhHcCksZGVmaW5lKEdwLHRvU3RyaW5nVGFnU3ltYm9sLCJHZW5lcmF0b3IiKSxkZWZpbmUoR3AsaXRlcmF0b3JTeW1ib2wsZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGRlZmluZShHcCwidG9TdHJpbmciLGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSxleHBvcnRzLmtleXM9ZnVuY3Rpb24odmFsKXt2YXIgb2JqZWN0PU9iamVjdCh2YWwpLGtleXM9W107Zm9yKHZhciBrZXkgaW4gb2JqZWN0KWtleXMucHVzaChrZXkpO3JldHVybiBrZXlzLnJldmVyc2UoKSxmdW5jdGlvbiBuZXh0KCl7Zm9yKDtrZXlzLmxlbmd0aDspe3ZhciBrZXk9a2V5cy5wb3AoKTtpZihrZXkgaW4gb2JqZWN0KXJldHVybiBuZXh0LnZhbHVlPWtleSxuZXh0LmRvbmU9ITEsbmV4dH1yZXR1cm4gbmV4dC5kb25lPSEwLG5leHR9fSxleHBvcnRzLnZhbHVlcz12YWx1ZXMsQ29udGV4dC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkNvbnRleHQscmVzZXQ6ZnVuY3Rpb24oc2tpcFRlbXBSZXNldCl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9dm9pZCAwLHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXZvaWQgMCx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChyZXNldFRyeUVudHJ5KSwhc2tpcFRlbXBSZXNldClmb3IodmFyIG5hbWUgaW4gdGhpcykidCI9PT1uYW1lLmNoYXJBdCgwKSYmaGFzT3duLmNhbGwodGhpcyxuYW1lKSYmIWlzTmFOKCtuYW1lLnNsaWNlKDEpKSYmKHRoaXNbbmFtZV09dm9pZCAwKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgcm9vdFJlY29yZD10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZigidGhyb3ciPT09cm9vdFJlY29yZC50eXBlKXRocm93IHJvb3RSZWNvcmQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGV4Y2VwdGlvbil7aWYodGhpcy5kb25lKXRocm93IGV4Y2VwdGlvbjt2YXIgY29udGV4dD10aGlzO2Z1bmN0aW9uIGhhbmRsZShsb2MsY2F1Z2h0KXtyZXR1cm4gcmVjb3JkLnR5cGU9InRocm93IixyZWNvcmQuYXJnPWV4Y2VwdGlvbixjb250ZXh0Lm5leHQ9bG9jLGNhdWdodCYmKGNvbnRleHQubWV0aG9kPSJuZXh0Iixjb250ZXh0LmFyZz12b2lkIDApLCEhY2F1Z2h0fWZvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBlbnRyeT10aGlzLnRyeUVudHJpZXNbaV0scmVjb3JkPWVudHJ5LmNvbXBsZXRpb247aWYoInJvb3QiPT09ZW50cnkudHJ5TG9jKXJldHVybiBoYW5kbGUoImVuZCIpO2lmKGVudHJ5LnRyeUxvYzw9dGhpcy5wcmV2KXt2YXIgaGFzQ2F0Y2g9aGFzT3duLmNhbGwoZW50cnksImNhdGNoTG9jIiksaGFzRmluYWxseT1oYXNPd24uY2FsbChlbnRyeSwiZmluYWxseUxvYyIpO2lmKGhhc0NhdGNoJiZoYXNGaW5hbGx5KXtpZih0aGlzLnByZXY8ZW50cnkuY2F0Y2hMb2MpcmV0dXJuIGhhbmRsZShlbnRyeS5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PGVudHJ5LmZpbmFsbHlMb2MpcmV0dXJuIGhhbmRsZShlbnRyeS5maW5hbGx5TG9jKX1lbHNlIGlmKGhhc0NhdGNoKXtpZih0aGlzLnByZXY8ZW50cnkuY2F0Y2hMb2MpcmV0dXJuIGhhbmRsZShlbnRyeS5jYXRjaExvYywhMCl9ZWxzZXtpZighaGFzRmluYWxseSl0aHJvdyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8ZW50cnkuZmluYWxseUxvYylyZXR1cm4gaGFuZGxlKGVudHJ5LmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odHlwZSxhcmcpe2Zvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBlbnRyeT10aGlzLnRyeUVudHJpZXNbaV07aWYoZW50cnkudHJ5TG9jPD10aGlzLnByZXYmJmhhc093bi5jYWxsKGVudHJ5LCJmaW5hbGx5TG9jIikmJnRoaXMucHJldjxlbnRyeS5maW5hbGx5TG9jKXt2YXIgZmluYWxseUVudHJ5PWVudHJ5O2JyZWFrfX1maW5hbGx5RW50cnkmJigiYnJlYWsiPT09dHlwZXx8ImNvbnRpbnVlIj09PXR5cGUpJiZmaW5hbGx5RW50cnkudHJ5TG9jPD1hcmcmJmFyZzw9ZmluYWxseUVudHJ5LmZpbmFsbHlMb2MmJihmaW5hbGx5RW50cnk9bnVsbCk7dmFyIHJlY29yZD1maW5hbGx5RW50cnk/ZmluYWxseUVudHJ5LmNvbXBsZXRpb246e307cmV0dXJuIHJlY29yZC50eXBlPXR5cGUscmVjb3JkLmFyZz1hcmcsZmluYWxseUVudHJ5Pyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PWZpbmFsbHlFbnRyeS5maW5hbGx5TG9jLENvbnRpbnVlU2VudGluZWwpOnRoaXMuY29tcGxldGUocmVjb3JkKX0sY29tcGxldGU6ZnVuY3Rpb24ocmVjb3JkLGFmdGVyTG9jKXtpZigidGhyb3ciPT09cmVjb3JkLnR5cGUpdGhyb3cgcmVjb3JkLmFyZztyZXR1cm4iYnJlYWsiPT09cmVjb3JkLnR5cGV8fCJjb250aW51ZSI9PT1yZWNvcmQudHlwZT90aGlzLm5leHQ9cmVjb3JkLmFyZzoicmV0dXJuIj09PXJlY29yZC50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9cmVjb3JkLmFyZyx0aGlzLm1ldGhvZD0icmV0dXJuIix0aGlzLm5leHQ9ImVuZCIpOiJub3JtYWwiPT09cmVjb3JkLnR5cGUmJmFmdGVyTG9jJiYodGhpcy5uZXh0PWFmdGVyTG9jKSxDb250aW51ZVNlbnRpbmVsfSxmaW5pc2g6ZnVuY3Rpb24oZmluYWxseUxvYyl7Zm9yKHZhciBpPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIGVudHJ5PXRoaXMudHJ5RW50cmllc1tpXTtpZihlbnRyeS5maW5hbGx5TG9jPT09ZmluYWxseUxvYylyZXR1cm4gdGhpcy5jb21wbGV0ZShlbnRyeS5jb21wbGV0aW9uLGVudHJ5LmFmdGVyTG9jKSxyZXNldFRyeUVudHJ5KGVudHJ5KSxDb250aW51ZVNlbnRpbmVsfX0sY2F0Y2g6ZnVuY3Rpb24odHJ5TG9jKXtmb3IodmFyIGk9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2k+PTA7LS1pKXt2YXIgZW50cnk9dGhpcy50cnlFbnRyaWVzW2ldO2lmKGVudHJ5LnRyeUxvYz09PXRyeUxvYyl7dmFyIHJlY29yZD1lbnRyeS5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1yZWNvcmQudHlwZSl7dmFyIHRocm93bj1yZWNvcmQuYXJnO3Jlc2V0VHJ5RW50cnkoZW50cnkpfXJldHVybiB0aHJvd259fXRocm93IEVycm9yKCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHQiKX0sZGVsZWdhdGVZaWVsZDpmdW5jdGlvbihpdGVyYWJsZSxyZXN1bHROYW1lLG5leHRMb2Mpe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjp2YWx1ZXMoaXRlcmFibGUpLHJlc3VsdE5hbWU6cmVzdWx0TmFtZSxuZXh0TG9jOm5leHRMb2N9LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9dm9pZCAwKSxDb250aW51ZVNlbnRpbmVsfX0sZXhwb3J0c31mdW5jdGlvbiBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLHJlc29sdmUscmVqZWN0LF9uZXh0LF90aHJvdyxrZXksYXJnKXt0cnl7dmFyIGluZm89Z2VuW2tleV0oYXJnKSx2YWx1ZT1pbmZvLnZhbHVlfWNhdGNoKGVycm9yKXtyZWplY3QoZXJyb3IpO3JldHVybn1pbmZvLmRvbmU/cmVzb2x2ZSh2YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKHZhbHVlKS50aGVuKF9uZXh0LF90aHJvdyl9ZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pe3JldHVybiBmdW5jdGlvbigpe3ZhciBzZWxmMT10aGlzLGFyZ3M9YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLHJlamVjdCl7dmFyIGdlbj1mbi5hcHBseShzZWxmMSxhcmdzKTtmdW5jdGlvbiBfbmV4dCh2YWx1ZSl7YXN5bmNHZW5lcmF0b3JTdGVwKGdlbixyZXNvbHZlLHJlamVjdCxfbmV4dCxfdGhyb3csIm5leHQiLHZhbHVlKX1mdW5jdGlvbiBfdGhyb3coZXJyKXthc3luY0dlbmVyYXRvclN0ZXAoZ2VuLHJlc29sdmUscmVqZWN0LF9uZXh0LF90aHJvdywidGhyb3ciLGVycil9X25leHQodm9pZCAwKX0pfX12YXIgZnVsbENsb25lPSgwLF9fd2VicGFja19yZXF1aXJlX18oODYzMTgpLlopKHt9LHJlYWN0X2RvbV9uYW1lc3BhY2VPYmplY3QpLHZlcnNpb249ZnVsbENsb25lLnZlcnNpb24scmVhY3RSZW5kZXI9ZnVsbENsb25lLnJlbmRlcix1bm1vdW50Q29tcG9uZW50QXROb2RlPWZ1bGxDbG9uZS51bm1vdW50Q29tcG9uZW50QXROb2RlO3RyeXtOdW1iZXIoKHZlcnNpb258fCIiKS5zcGxpdCgiLiIpWzBdKT49MTgmJihjcmVhdGVSb290PWZ1bGxDbG9uZS5jcmVhdGVSb290KX1jYXRjaChlKXt9ZnVuY3Rpb24gdG9nZ2xlV2FybmluZyhza2lwKXt2YXIgX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ9ZnVsbENsb25lLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEO19fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEJiYib2JqZWN0Ij09PSgwLGVzbV90eXBlb2YuWikoX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQpJiYoX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQudXNpbmdDbGllbnRFbnRyeVBvaW50PXNraXApfXZhciBNQVJLPSJfX3JjX3JlYWN0X3Jvb3RfXyI7ZnVuY3Rpb24gX21vZGVyblVubW91bnQoKXtyZXR1cm4oX21vZGVyblVubW91bnQ9X2FzeW5jVG9HZW5lcmF0b3IoX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZShjb250YWluZXIpe3JldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbihfY29udGV4dCl7Zm9yKDs7KXN3aXRjaChfY29udGV4dC5wcmV2PV9jb250ZXh0Lm5leHQpe2Nhc2UgMDpyZXR1cm4gX2NvbnRleHQuYWJydXB0KCJyZXR1cm4iLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKXt2YXIgX2NvbnRhaW5lciRNQVJLO251bGw9PT0oX2NvbnRhaW5lciRNQVJLPWNvbnRhaW5lcltNQVJLXSl8fHZvaWQgMD09PV9jb250YWluZXIkTUFSS3x8X2NvbnRhaW5lciRNQVJLLnVubW91bnQoKSxkZWxldGUgY29udGFpbmVyW01BUktdfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIF9jb250ZXh0LnN0b3AoKX19LF9jYWxsZWUpfSkpKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gX3VubW91bnQoKXtyZXR1cm4oX3VubW91bnQ9X2FzeW5jVG9HZW5lcmF0b3IoX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIoY29udGFpbmVyKXtyZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24oX2NvbnRleHQyKXtmb3IoOzspc3dpdGNoKF9jb250ZXh0Mi5wcmV2PV9jb250ZXh0Mi5uZXh0KXtjYXNlIDA6aWYoISh2b2lkIDAhPT1jcmVhdGVSb290KSl7X2NvbnRleHQyLm5leHQ9MjticmVha31yZXR1cm4gX2NvbnRleHQyLmFicnVwdCgicmV0dXJuIixmdW5jdGlvbihfeCl7cmV0dXJuIF9tb2Rlcm5Vbm1vdW50LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0oY29udGFpbmVyKSk7Y2FzZSAyOnVubW91bnRDb21wb25lbnRBdE5vZGUoY29udGFpbmVyKTtjYXNlIDM6Y2FzZSJlbmQiOnJldHVybiBfY29udGV4dDIuc3RvcCgpfX0sX2NhbGxlZTIpfSkpKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9bGV0IGRlZmF1bHRSZWFjdFJlbmRlcj0obm9kZSxjb250YWluZXIpPT4oIWZ1bmN0aW9uKG5vZGUsY29udGFpbmVyKXt2YXIgY29udGFpbmVyMSxyb290O2lmKGNyZWF0ZVJvb3Qpe2NvbnRhaW5lcjE9Y29udGFpbmVyLHRvZ2dsZVdhcm5pbmcoITApLHJvb3Q9Y29udGFpbmVyMVtNQVJLXXx8Y3JlYXRlUm9vdChjb250YWluZXIxKSx0b2dnbGVXYXJuaW5nKCExKSxyb290LnJlbmRlcihub2RlKSxjb250YWluZXIxW01BUktdPXJvb3Q7cmV0dXJufW51bGw9PXJlYWN0UmVuZGVyfHxyZWFjdFJlbmRlcihub2RlLGNvbnRhaW5lcil9KG5vZGUsY29udGFpbmVyKSwoKT0+KGZ1bmN0aW9uKF94Mil7cmV0dXJuIF91bm1vdW50LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pKGNvbnRhaW5lcikpLHVuc3RhYmxlUmVuZGVyPWRlZmF1bHRSZWFjdFJlbmRlcjtmdW5jdGlvbiB1bnN0YWJsZVNldFJlbmRlcihyZW5kZXIpe3JldHVybiByZW5kZXImJih1bnN0YWJsZVJlbmRlcj1yZW5kZXIpLHVuc3RhYmxlUmVuZGVyfX0sNTMxMjQ6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se0VfOmZ1bmN0aW9uKCl7cmV0dXJuIENvbmZpZ0NvbnRleHR9LFJmOmZ1bmN0aW9uKCl7cmV0dXJuIGRlZmF1bHRQcmVmaXhDbHN9LGRqOmZ1bmN0aW9uKCl7cmV0dXJuIHVzZUNvbXBvbmVudENvbmZpZ30sb1I6ZnVuY3Rpb24oKXtyZXR1cm4gZGVmYXVsdEljb25QcmVmaXhDbHN9LHRyOmZ1bmN0aW9uKCl7cmV0dXJuIFZhcmlhbnRzfX0pO3ZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpO2xldCBkZWZhdWx0UHJlZml4Q2xzPSJhbnQiLGRlZmF1bHRJY29uUHJlZml4Q2xzPSJhbnRpY29uIixWYXJpYW50cz1bIm91dGxpbmVkIiwiYm9yZGVybGVzcyIsImZpbGxlZCIsInVuZGVybGluZWQiXSxkZWZhdWx0R2V0UHJlZml4Q2xzPShzdWZmaXhDbHMsY3VzdG9taXplUHJlZml4Q2xzKT0+Y3VzdG9taXplUHJlZml4Q2xzfHwoc3VmZml4Q2xzP2Ake2RlZmF1bHRQcmVmaXhDbHN9LSR7c3VmZml4Q2xzfWA6ZGVmYXVsdFByZWZpeENscyksQ29uZmlnQ29udGV4dD1yZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmNyZWF0ZUNvbnRleHQoe2dldFByZWZpeENsczpkZWZhdWx0R2V0UHJlZml4Q2xzLGljb25QcmVmaXhDbHM6ZGVmYXVsdEljb25QcmVmaXhDbHN9KSx7Q29uc3VtZXI6Q29uZmlnQ29uc3VtZXJ9PUNvbmZpZ0NvbnRleHQsRU1QVFlfT0JKRUNUPXt9O2Z1bmN0aW9uIHVzZUNvbXBvbmVudENvbmZpZyhwcm9wTmFtZSl7bGV0IGNvbnRleHQ9cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VDb250ZXh0KENvbmZpZ0NvbnRleHQpLHtnZXRQcmVmaXhDbHMsZGlyZWN0aW9uLGdldFBvcHVwQ29udGFpbmVyfT1jb250ZXh0LHByb3BWYWx1ZT1jb250ZXh0W3Byb3BOYW1lXTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtjbGFzc05hbWVzOkVNUFRZX09CSkVDVCxzdHlsZXM6RU1QVFlfT0JKRUNUfSxwcm9wVmFsdWUpLHtnZXRQcmVmaXhDbHMsZGlyZWN0aW9uLGdldFBvcHVwQ29udGFpbmVyfSl9fSwzNTc5MjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0Ijt2YXIgX3RoZW1lX2ludGVybmFsX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXygyNTk3Nik7bGV0IHVzZUNTU1ZhckNscz1wcmVmaXhDbHM9PntsZXRbLCwsLGNzc1Zhcl09KDAsX3RoZW1lX2ludGVybmFsX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWlApKCk7cmV0dXJuIGNzc1Zhcj9gJHtwcmVmaXhDbHN9LWNzcy12YXJgOiIifTtfX3dlYnBhY2tfZXhwb3J0c19fLlo9dXNlQ1NTVmFyQ2xzfSw5ODY3NTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0Ijt2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxfU2l6ZUNvbnRleHRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk3NjQ3KTtsZXQgdXNlU2l6ZT1jdXN0b21TaXplPT57bGV0IHNpemU9cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VDb250ZXh0KF9TaXplQ29udGV4dF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlopLG1lcmdlZFNpemU9cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VNZW1vKCgpPT5jdXN0b21TaXplPyJzdHJpbmciPT10eXBlb2YgY3VzdG9tU2l6ZT9udWxsIT1jdXN0b21TaXplP2N1c3RvbVNpemU6c2l6ZToiZnVuY3Rpb24iPT10eXBlb2YgY3VzdG9tU2l6ZT9jdXN0b21TaXplKHNpemUpOnNpemU6c2l6ZSxbY3VzdG9tU2l6ZSxzaXplXSk7cmV0dXJuIG1lcmdlZFNpemV9O19fd2VicGFja19leHBvcnRzX18uWj11c2VTaXplfSwzNzgxMjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtsZXQgZ2xvYmFsUHJlZml4Q2xzLGdsb2JhbEljb25QcmVmaXhDbHMsZ2xvYmFsVGhlbWUsZ2xvYmFsSG9sZGVyUmVuZGVyO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaUDpmdW5jdGlvbigpe3JldHVybiBjb25maWdfcHJvdmlkZXJ9LHc2OmZ1bmN0aW9uKCl7cmV0dXJuIGdsb2JhbENvbmZpZ319KTt2YXIgcmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCkscmVhY3RfbmFtZXNwYWNlT2JqZWN0PV9fd2VicGFja19yZXF1aXJlX18udChyZWFjdCwyKSxlcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ0ODk5KSxDb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oNjMwMTcpLHVzZU1lbW89X193ZWJwYWNrX3JlcXVpcmVfXyg5MjczOSksc2V0PV9fd2VicGFja19yZXF1aXJlX18oNzYzODgpLF91dGlsX3dhcm5pbmc9X193ZWJwYWNrX3JlcXVpcmVfXygyNzI4OCksdmFsaWRhdGVNZXNzYWdlc0NvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXygzNzkyMCksbW9kYWxfbG9jYWxlPV9fd2VicGFja19yZXF1aXJlX18oODMwMDgpLGxvY2FsZV9jb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oNzY3NDUpO2xldCBMb2NhbGVQcm92aWRlcj1wcm9wcz0+e2xldHtsb2NhbGU9e30sY2hpbGRyZW4sX0FOVF9NQVJLX199PXByb3BzO3JlYWN0LnVzZUVmZmVjdCgoKT0+e2xldCBjbGVhckxvY2FsZT0oMCxtb2RhbF9sb2NhbGUuZikobnVsbD09bG9jYWxlP3ZvaWQgMDpsb2NhbGUuTW9kYWwpO3JldHVybiBjbGVhckxvY2FsZX0sW2xvY2FsZV0pO2xldCBnZXRNZW1vaXplZENvbnRleHRWYWx1ZT1yZWFjdC51c2VNZW1vKCgpPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbG9jYWxlKSx7ZXhpc3Q6ITB9KSxbbG9jYWxlXSk7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQobG9jYWxlX2NvbnRleHQuWi5Qcm92aWRlcix7dmFsdWU6Z2V0TWVtb2l6ZWRDb250ZXh0VmFsdWV9LGNoaWxkcmVuKX07dmFyIGVuX1VTPV9fd2VicGFja19yZXF1aXJlX18oMjQ0NTcpLGRlZmF1bHRfdGhlbWU9X193ZWJwYWNrX3JlcXVpcmVfXygzMTU2NyksY29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDMzMDgzKSxzZWVkPV9fd2VicGFja19yZXF1aXJlX18oMjc5MCksY29uZmlnX3Byb3ZpZGVyX2NvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzEyNCksY29sb3JzX2VzPV9fd2VicGFja19yZXF1aXJlX18oODQ4OTgpLGZhc3RfY29sb3JfZXM9X193ZWJwYWNrX3JlcXVpcmVfXygyNDMyNyksY2FuVXNlRG9tPV9fd2VicGFja19yZXF1aXJlX18oNzA1MjYpLG9iamVjdFNwcmVhZDI9X193ZWJwYWNrX3JlcXVpcmVfXyg4NjMxOCksQVBQRU5EX09SREVSPSJkYXRhLXJjLW9yZGVyIixBUFBFTkRfUFJJT1JJVFk9ImRhdGEtcmMtcHJpb3JpdHkiLGNvbnRhaW5lckNhY2hlPW5ldyBNYXA7ZnVuY3Rpb24gZ2V0TWFyaygpe3ZhciBfcmVmPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxtYXJrPV9yZWYubWFyaztyZXR1cm4gbWFyaz9tYXJrLnN0YXJ0c1dpdGgoImRhdGEtIik/bWFyazoiZGF0YS0iLmNvbmNhdChtYXJrKToicmMtdXRpbC1rZXkifWZ1bmN0aW9uIGdldENvbnRhaW5lcihvcHRpb24pe3JldHVybiBvcHRpb24uYXR0YWNoVG8/b3B0aW9uLmF0dGFjaFRvOmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImhlYWQiKXx8ZG9jdW1lbnQuYm9keX1mdW5jdGlvbiBmaW5kU3R5bGVzKGNvbnRhaW5lcil7cmV0dXJuIEFycmF5LmZyb20oKGNvbnRhaW5lckNhY2hlLmdldChjb250YWluZXIpfHxjb250YWluZXIpLmNoaWxkcmVuKS5maWx0ZXIoZnVuY3Rpb24obm9kZSl7cmV0dXJuIlNUWUxFIj09PW5vZGUudGFnTmFtZX0pfWZ1bmN0aW9uIGluamVjdENTUyhjc3Mpe3ZhciBvcHRpb249YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O2lmKCEoMCxjYW5Vc2VEb20uWikoKSlyZXR1cm4gbnVsbDt2YXIgY3NwPW9wdGlvbi5jc3AscHJlcGVuZD1vcHRpb24ucHJlcGVuZCxfb3B0aW9uJHByaW9yaXR5PW9wdGlvbi5wcmlvcml0eSxwcmlvcml0eT12b2lkIDA9PT1fb3B0aW9uJHByaW9yaXR5PzA6X29wdGlvbiRwcmlvcml0eSxtZXJnZWRPcmRlcj0icXVldWUiPT09cHJlcGVuZD8icHJlcGVuZFF1ZXVlIjpwcmVwZW5kPyJwcmVwZW5kIjoiYXBwZW5kIixpc1ByZXBlbmRRdWV1ZT0icHJlcGVuZFF1ZXVlIj09PW1lcmdlZE9yZGVyLHN0eWxlTm9kZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3N0eWxlTm9kZS5zZXRBdHRyaWJ1dGUoQVBQRU5EX09SREVSLG1lcmdlZE9yZGVyKSxpc1ByZXBlbmRRdWV1ZSYmcHJpb3JpdHkmJnN0eWxlTm9kZS5zZXRBdHRyaWJ1dGUoQVBQRU5EX1BSSU9SSVRZLCIiLmNvbmNhdChwcmlvcml0eSkpLG51bGwhPWNzcCYmY3NwLm5vbmNlJiYoc3R5bGVOb2RlLm5vbmNlPW51bGw9PWNzcD92b2lkIDA6Y3NwLm5vbmNlKSxzdHlsZU5vZGUuaW5uZXJIVE1MPWNzczt2YXIgY29udGFpbmVyPWdldENvbnRhaW5lcihvcHRpb24pLGZpcnN0Q2hpbGQ9Y29udGFpbmVyLmZpcnN0Q2hpbGQ7aWYocHJlcGVuZCl7aWYoaXNQcmVwZW5kUXVldWUpe3ZhciBleGlzdFN0eWxlPShvcHRpb24uc3R5bGVzfHxmaW5kU3R5bGVzKGNvbnRhaW5lcikpLmZpbHRlcihmdW5jdGlvbihub2RlKXtyZXR1cm4hIVsicHJlcGVuZCIsInByZXBlbmRRdWV1ZSJdLmluY2x1ZGVzKG5vZGUuZ2V0QXR0cmlidXRlKEFQUEVORF9PUkRFUikpJiZwcmlvcml0eT49TnVtYmVyKG5vZGUuZ2V0QXR0cmlidXRlKEFQUEVORF9QUklPUklUWSl8fDApfSk7aWYoZXhpc3RTdHlsZS5sZW5ndGgpcmV0dXJuIGNvbnRhaW5lci5pbnNlcnRCZWZvcmUoc3R5bGVOb2RlLGV4aXN0U3R5bGVbZXhpc3RTdHlsZS5sZW5ndGgtMV0ubmV4dFNpYmxpbmcpLHN0eWxlTm9kZX1jb250YWluZXIuaW5zZXJ0QmVmb3JlKHN0eWxlTm9kZSxmaXJzdENoaWxkKX1lbHNlIGNvbnRhaW5lci5hcHBlbmRDaGlsZChzdHlsZU5vZGUpO3JldHVybiBzdHlsZU5vZGV9bGV0IGR5bmFtaWNTdHlsZU1hcms9YC1hbnQtJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCl9YDt2YXIgRGlzYWJsZWRDb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oOTg4NjYpLFNpemVDb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oOTc2NDcpLGVzbV90eXBlb2Y9X193ZWJwYWNrX3JlcXVpcmVfXyg4MzE2OSksd2FybmluZz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY4MjkxKSxlc19pc0VxdWFsPWZ1bmN0aW9uKG9iajEsb2JqMil7dmFyIHNoYWxsb3c9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXSxyZWZTZXQ9bmV3IFNldDtyZXR1cm4gZnVuY3Rpb24gZGVlcEVxdWFsKGEsYil7dmFyIGxldmVsPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToxLGNpcmN1bGFyPXJlZlNldC5oYXMoYSk7aWYoKDAsd2FybmluZy5aUCkoIWNpcmN1bGFyLCJXYXJuaW5nOiBUaGVyZSBtYXkgYmUgY2lyY3VsYXIgcmVmZXJlbmNlcyIpLGNpcmN1bGFyKXJldHVybiExO2lmKGE9PT1iKXJldHVybiEwO2lmKHNoYWxsb3cmJmxldmVsPjEpcmV0dXJuITE7cmVmU2V0LmFkZChhKTt2YXIgbmV3TGV2ZWw9bGV2ZWwrMTtpZihBcnJheS5pc0FycmF5KGEpKXtpZighQXJyYXkuaXNBcnJheShiKXx8YS5sZW5ndGghPT1iLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIGk9MDtpPGEubGVuZ3RoO2krKylpZighZGVlcEVxdWFsKGFbaV0sYltpXSxuZXdMZXZlbCkpcmV0dXJuITE7cmV0dXJuITB9aWYoYSYmYiYmIm9iamVjdCI9PT0oMCxlc21fdHlwZW9mLlopKGEpJiYib2JqZWN0Ij09PSgwLGVzbV90eXBlb2YuWikoYikpe3ZhciBrZXlzPU9iamVjdC5rZXlzKGEpO3JldHVybiBrZXlzLmxlbmd0aD09PU9iamVjdC5rZXlzKGIpLmxlbmd0aCYma2V5cy5ldmVyeShmdW5jdGlvbihrZXkpe3JldHVybiBkZWVwRXF1YWwoYVtrZXldLGJba2V5XSxuZXdMZXZlbCl9KX1yZXR1cm4hMX0ob2JqMSxvYmoyKX07bGV0IGZ1bGxDbG9uZT1PYmplY3QuYXNzaWduKHt9LHJlYWN0X25hbWVzcGFjZU9iamVjdCkse3VzZUlkfT1mdWxsQ2xvbmU7dmFyIGhvb2tzX3VzZVRoZW1lS2V5PXZvaWQgMD09PXVzZUlkPygpPT4iIjp1c2VJZCxyY19tb3Rpb25fZXM9X193ZWJwYWNrX3JlcXVpcmVfXygxNTYwMiksdXNlVG9rZW49X193ZWJwYWNrX3JlcXVpcmVfXygyNTk3Nik7ZnVuY3Rpb24gTW90aW9uV3JhcHBlcihwcm9wcyl7bGV0e2NoaWxkcmVufT1wcm9wcyxbLHRva2VuXT0oMCx1c2VUb2tlbi5aUCkoKSx7bW90aW9ufT10b2tlbixuZWVkV3JhcE1vdGlvblByb3ZpZGVyUmVmPXJlYWN0LnVzZVJlZighMSk7cmV0dXJuKG5lZWRXcmFwTW90aW9uUHJvdmlkZXJSZWYuY3VycmVudD1uZWVkV3JhcE1vdGlvblByb3ZpZGVyUmVmLmN1cnJlbnR8fCExPT09bW90aW9uLG5lZWRXcmFwTW90aW9uUHJvdmlkZXJSZWYuY3VycmVudCk/cmVhY3QuY3JlYXRlRWxlbWVudChyY19tb3Rpb25fZXMuenQse21vdGlvbjptb3Rpb259LGNoaWxkcmVuKTpjaGlsZHJlbn12YXIgY29uZmlnX3Byb3ZpZGVyX1Byb3BXYXJuaW5nPSgpPT5udWxsLHN0eWxlPV9fd2VicGFja19yZXF1aXJlX18oMTQ3NDcpO2xldCB1c2VSZXNldEljb25TdHlsZT0oaWNvblByZWZpeENscyxjc3ApPT57bGV0W3RoZW1lLHRva2VuXT0oMCx1c2VUb2tlbi5aUCkoKTtyZXR1cm4oMCxlcy54eSkoe3RoZW1lLHRva2VuLGhhc2hJZDoiIixwYXRoOlsiYW50LWRlc2lnbi1pY29ucyIsaWNvblByZWZpeENsc10sbm9uY2U6KCk9Pm51bGw9PWNzcD92b2lkIDA6Y3NwLm5vbmNlLGxheWVyOntuYW1lOiJhbnRkIn19LCgpPT5bKDAsc3R5bGUuSlQpKGljb25QcmVmaXhDbHMpXSl9O3ZhciBfX3Jlc3Q9ZnVuY3Rpb24ocyxlKXt2YXIgdD17fTtmb3IodmFyIHAgaW4gcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxwKSYmMD5lLmluZGV4T2YocCkmJih0W3BdPXNbcF0pO2lmKG51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKWZvcih2YXIgaT0wLHA9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtpPHAubGVuZ3RoO2krKykwPmUuaW5kZXhPZihwW2ldKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMscFtpXSkmJih0W3BbaV1dPXNbcFtpXV0pO3JldHVybiB0fTtsZXQgUEFTU0VEX1BST1BTPVsiZ2V0VGFyZ2V0Q29udGFpbmVyIiwiZ2V0UG9wdXBDb250YWluZXIiLCJyZW5kZXJFbXB0eSIsImlucHV0IiwicGFnaW5hdGlvbiIsImZvcm0iLCJzZWxlY3QiLCJidXR0b24iXTtmdW5jdGlvbiBnZXRHbG9iYWxQcmVmaXhDbHMoKXtyZXR1cm4gZ2xvYmFsUHJlZml4Q2xzfHxjb25maWdfcHJvdmlkZXJfY29udGV4dC5SZn1mdW5jdGlvbiBnZXRHbG9iYWxJY29uUHJlZml4Q2xzKCl7cmV0dXJuIGdsb2JhbEljb25QcmVmaXhDbHN8fGNvbmZpZ19wcm92aWRlcl9jb250ZXh0Lm9SfWxldCBzZXRHbG9iYWxDb25maWc9cHJvcHM9PntsZXR7cHJlZml4Q2xzLGljb25QcmVmaXhDbHMsdGhlbWUsaG9sZGVyUmVuZGVyfT1wcm9wczt2b2lkIDAhPT1wcmVmaXhDbHMmJihnbG9iYWxQcmVmaXhDbHM9cHJlZml4Q2xzKSx2b2lkIDAhPT1pY29uUHJlZml4Q2xzJiYoZ2xvYmFsSWNvblByZWZpeENscz1pY29uUHJlZml4Q2xzKSwiaG9sZGVyUmVuZGVyImluIHByb3BzJiYoZ2xvYmFsSG9sZGVyUmVuZGVyPWhvbGRlclJlbmRlciksdGhlbWUmJihPYmplY3Qua2V5cyh0aGVtZSkuc29tZShrZXk9PmtleS5lbmRzV2l0aCgiQ29sb3IiKSk/ZnVuY3Rpb24oZ2xvYmFsUHJlZml4Q2xzLHRoZW1lKXtsZXQgc3R5bGU9ZnVuY3Rpb24oZ2xvYmFsUHJlZml4Q2xzLHRoZW1lKXtsZXQgdmFyaWFibGVzPXt9LGZvcm1hdENvbG9yPShjb2xvcix1cGRhdGVyKT0+e2xldCBjbG9uZT1jb2xvci5jbG9uZSgpO3JldHVybihjbG9uZT0obnVsbD09dXBkYXRlcj92b2lkIDA6dXBkYXRlcihjbG9uZSkpfHxjbG9uZSkudG9SZ2JTdHJpbmcoKX0sZmlsbENvbG9yPShjb2xvclZhbCx0eXBlKT0+e2xldCBiYXNlQ29sb3I9bmV3IGZhc3RfY29sb3JfZXMudChjb2xvclZhbCksY29sb3JQYWxldHRlcz0oMCxjb2xvcnNfZXMuUl8pKGJhc2VDb2xvci50b1JnYlN0cmluZygpKTt2YXJpYWJsZXNbYCR7dHlwZX0tY29sb3JgXT1mb3JtYXRDb2xvcihiYXNlQ29sb3IpLHZhcmlhYmxlc1tgJHt0eXBlfS1jb2xvci1kaXNhYmxlZGBdPWNvbG9yUGFsZXR0ZXNbMV0sdmFyaWFibGVzW2Ake3R5cGV9LWNvbG9yLWhvdmVyYF09Y29sb3JQYWxldHRlc1s0XSx2YXJpYWJsZXNbYCR7dHlwZX0tY29sb3ItYWN0aXZlYF09Y29sb3JQYWxldHRlc1s2XSx2YXJpYWJsZXNbYCR7dHlwZX0tY29sb3Itb3V0bGluZWBdPWJhc2VDb2xvci5jbG9uZSgpLnNldEEoLjIpLnRvUmdiU3RyaW5nKCksdmFyaWFibGVzW2Ake3R5cGV9LWNvbG9yLWRlcHJlY2F0ZWQtYmdgXT1jb2xvclBhbGV0dGVzWzBdLHZhcmlhYmxlc1tgJHt0eXBlfS1jb2xvci1kZXByZWNhdGVkLWJvcmRlcmBdPWNvbG9yUGFsZXR0ZXNbMl19O2lmKHRoZW1lLnByaW1hcnlDb2xvcil7ZmlsbENvbG9yKHRoZW1lLnByaW1hcnlDb2xvciwicHJpbWFyeSIpO2xldCBwcmltYXJ5Q29sb3I9bmV3IGZhc3RfY29sb3JfZXMudCh0aGVtZS5wcmltYXJ5Q29sb3IpLHByaW1hcnlDb2xvcnM9KDAsY29sb3JzX2VzLlJfKShwcmltYXJ5Q29sb3IudG9SZ2JTdHJpbmcoKSk7cHJpbWFyeUNvbG9ycy5mb3JFYWNoKChjb2xvcixpbmRleCk9Pnt2YXJpYWJsZXNbYHByaW1hcnktJHtpbmRleCsxfWBdPWNvbG9yfSksdmFyaWFibGVzWyJwcmltYXJ5LWNvbG9yLWRlcHJlY2F0ZWQtbC0zNSJdPWZvcm1hdENvbG9yKHByaW1hcnlDb2xvcixjPT5jLmxpZ2h0ZW4oMzUpKSx2YXJpYWJsZXNbInByaW1hcnktY29sb3ItZGVwcmVjYXRlZC1sLTIwIl09Zm9ybWF0Q29sb3IocHJpbWFyeUNvbG9yLGM9PmMubGlnaHRlbigyMCkpLHZhcmlhYmxlc1sicHJpbWFyeS1jb2xvci1kZXByZWNhdGVkLXQtMjAiXT1mb3JtYXRDb2xvcihwcmltYXJ5Q29sb3IsYz0+Yy50aW50KDIwKSksdmFyaWFibGVzWyJwcmltYXJ5LWNvbG9yLWRlcHJlY2F0ZWQtdC01MCJdPWZvcm1hdENvbG9yKHByaW1hcnlDb2xvcixjPT5jLnRpbnQoNTApKSx2YXJpYWJsZXNbInByaW1hcnktY29sb3ItZGVwcmVjYXRlZC1mLTEyIl09Zm9ybWF0Q29sb3IocHJpbWFyeUNvbG9yLGM9PmMuc2V0QSguMTIqYy5hKSk7bGV0IHByaW1hcnlBY3RpdmVDb2xvcj1uZXcgZmFzdF9jb2xvcl9lcy50KHByaW1hcnlDb2xvcnNbMF0pO3ZhcmlhYmxlc1sicHJpbWFyeS1jb2xvci1hY3RpdmUtZGVwcmVjYXRlZC1mLTMwIl09Zm9ybWF0Q29sb3IocHJpbWFyeUFjdGl2ZUNvbG9yLGM9PmMuc2V0QSguMypjLmEpKSx2YXJpYWJsZXNbInByaW1hcnktY29sb3ItYWN0aXZlLWRlcHJlY2F0ZWQtZC0wMiJdPWZvcm1hdENvbG9yKHByaW1hcnlBY3RpdmVDb2xvcixjPT5jLmRhcmtlbigyKSl9dGhlbWUuc3VjY2Vzc0NvbG9yJiZmaWxsQ29sb3IodGhlbWUuc3VjY2Vzc0NvbG9yLCJzdWNjZXNzIiksdGhlbWUud2FybmluZ0NvbG9yJiZmaWxsQ29sb3IodGhlbWUud2FybmluZ0NvbG9yLCJ3YXJuaW5nIiksdGhlbWUuZXJyb3JDb2xvciYmZmlsbENvbG9yKHRoZW1lLmVycm9yQ29sb3IsImVycm9yIiksdGhlbWUuaW5mb0NvbG9yJiZmaWxsQ29sb3IodGhlbWUuaW5mb0NvbG9yLCJpbmZvIik7bGV0IGNzc0xpc3Q9T2JqZWN0LmtleXModmFyaWFibGVzKS5tYXAoa2V5PT5gLS0ke2dsb2JhbFByZWZpeENsc30tJHtrZXl9OiAke3ZhcmlhYmxlc1trZXldfTtgKTtyZXR1cm5gCiAgOnJvb3QgewogICAgJHtjc3NMaXN0LmpvaW4oIlxuIil9CiAgfQogIGAudHJpbSgpfShnbG9iYWxQcmVmaXhDbHMsdGhlbWUpOygwLGNhblVzZURvbS5aKSgpJiZmdW5jdGlvbihjc3Msa2V5KXt2YXIgX29wdGlvbiRjc3AsX29wdGlvbiRjc3AyLF9vcHRpb24kY3NwMyxvcmlnaW5PcHRpb249YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9LGNvbnRhaW5lcj1nZXRDb250YWluZXIob3JpZ2luT3B0aW9uKSxzdHlsZXM9ZmluZFN0eWxlcyhjb250YWluZXIpLG9wdGlvbj0oMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe30sb3JpZ2luT3B0aW9uKSx7fSx7c3R5bGVzOnN0eWxlc30pOyFmdW5jdGlvbihjb250YWluZXIsb3B0aW9uKXt2YXIgY2FjaGVkUmVhbENvbnRhaW5lcj1jb250YWluZXJDYWNoZS5nZXQoY29udGFpbmVyKTtpZighY2FjaGVkUmVhbENvbnRhaW5lcnx8IWZ1bmN0aW9uKHJvb3Qsbil7aWYoIXJvb3QpcmV0dXJuITE7aWYocm9vdC5jb250YWlucylyZXR1cm4gcm9vdC5jb250YWlucyhuKTtmb3IodmFyIG5vZGU9bjtub2RlOyl7aWYobm9kZT09PXJvb3QpcmV0dXJuITA7bm9kZT1ub2RlLnBhcmVudE5vZGV9cmV0dXJuITF9KGRvY3VtZW50LGNhY2hlZFJlYWxDb250YWluZXIpKXt2YXIgcGxhY2Vob2xkZXJTdHlsZT1pbmplY3RDU1MoIiIsb3B0aW9uKSxwYXJlbnROb2RlPXBsYWNlaG9sZGVyU3R5bGUucGFyZW50Tm9kZTtjb250YWluZXJDYWNoZS5zZXQoY29udGFpbmVyLHBhcmVudE5vZGUpLGNvbnRhaW5lci5yZW1vdmVDaGlsZChwbGFjZWhvbGRlclN0eWxlKX19KGNvbnRhaW5lcixvcHRpb24pO3ZhciBleGlzdE5vZGU9ZnVuY3Rpb24oa2V5KXt2YXIgb3B0aW9uPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxjb250YWluZXI9Z2V0Q29udGFpbmVyKG9wdGlvbik7cmV0dXJuKG9wdGlvbi5zdHlsZXN8fGZpbmRTdHlsZXMoY29udGFpbmVyKSkuZmluZChmdW5jdGlvbihub2RlKXtyZXR1cm4gbm9kZS5nZXRBdHRyaWJ1dGUoZ2V0TWFyayhvcHRpb24pKT09PWtleX0pfShrZXksb3B0aW9uKTtpZihleGlzdE5vZGUpcmV0dXJuIG51bGwhPT0oX29wdGlvbiRjc3A9b3B0aW9uLmNzcCkmJnZvaWQgMCE9PV9vcHRpb24kY3NwJiZfb3B0aW9uJGNzcC5ub25jZSYmZXhpc3ROb2RlLm5vbmNlIT09KG51bGw9PT0oX29wdGlvbiRjc3AyPW9wdGlvbi5jc3ApfHx2b2lkIDA9PT1fb3B0aW9uJGNzcDI/dm9pZCAwOl9vcHRpb24kY3NwMi5ub25jZSkmJihleGlzdE5vZGUubm9uY2U9bnVsbD09PShfb3B0aW9uJGNzcDM9b3B0aW9uLmNzcCl8fHZvaWQgMD09PV9vcHRpb24kY3NwMz92b2lkIDA6X29wdGlvbiRjc3AzLm5vbmNlKSxleGlzdE5vZGUuaW5uZXJIVE1MIT09Y3NzJiYoZXhpc3ROb2RlLmlubmVySFRNTD1jc3MpO2luamVjdENTUyhjc3Msb3B0aW9uKS5zZXRBdHRyaWJ1dGUoZ2V0TWFyayhvcHRpb24pLGtleSl9KHN0eWxlLGAke2R5bmFtaWNTdHlsZU1hcmt9LWR5bmFtaWMtdGhlbWVgKX0oZ2V0R2xvYmFsUHJlZml4Q2xzKCksdGhlbWUpOmdsb2JhbFRoZW1lPXRoZW1lKX0sZ2xvYmFsQ29uZmlnPSgpPT4oe2dldFByZWZpeENsczooc3VmZml4Q2xzLGN1c3RvbWl6ZVByZWZpeENscyk9PmN1c3RvbWl6ZVByZWZpeENsc3x8KHN1ZmZpeENscz9gJHtnZXRHbG9iYWxQcmVmaXhDbHMoKX0tJHtzdWZmaXhDbHN9YDpnZXRHbG9iYWxQcmVmaXhDbHMoKSksZ2V0SWNvblByZWZpeENsczpnZXRHbG9iYWxJY29uUHJlZml4Q2xzLGdldFJvb3RQcmVmaXhDbHM6KCk9Pmdsb2JhbFByZWZpeENsc3x8Z2V0R2xvYmFsUHJlZml4Q2xzKCksZ2V0VGhlbWU6KCk9Pmdsb2JhbFRoZW1lLGhvbGRlclJlbmRlcjpnbG9iYWxIb2xkZXJSZW5kZXJ9KSxQcm92aWRlckNoaWxkcmVuPXByb3BzPT57bGV0e2NoaWxkcmVuLGNzcDpjdXN0b21Dc3AsYXV0b0luc2VydFNwYWNlSW5CdXR0b24sYWxlcnQsYW5jaG9yLGZvcm0sbG9jYWxlLGNvbXBvbmVudFNpemUsZGlyZWN0aW9uLHNwYWNlLHNwbGl0dGVyLHZpcnR1YWwsZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoLHBvcHVwTWF0Y2hTZWxlY3RXaWR0aCxwb3B1cE92ZXJmbG93LGxlZ2FjeUxvY2FsZSxwYXJlbnRDb250ZXh0LGljb25QcmVmaXhDbHM6Y3VzdG9tSWNvblByZWZpeENscyx0aGVtZSxjb21wb25lbnREaXNhYmxlZCxzZWdtZW50ZWQsc3RhdGlzdGljLHNwaW4sY2FsZW5kYXIsY2Fyb3VzZWwsY2FzY2FkZXIsY29sbGFwc2UsdHlwb2dyYXBoeSxjaGVja2JveCxkZXNjcmlwdGlvbnMsZGl2aWRlcixkcmF3ZXIsc2tlbGV0b24sc3RlcHMsaW1hZ2UsbGF5b3V0LGxpc3QsbWVudGlvbnMsbW9kYWwscHJvZ3Jlc3MscmVzdWx0LHNsaWRlcixicmVhZGNydW1iLG1lbnUscGFnaW5hdGlvbixpbnB1dCx0ZXh0QXJlYSxlbXB0eSxiYWRnZSxyYWRpbyxyYXRlLHN3aXRjaDpTV0lUQ0gsdHJhbnNmZXIsYXZhdGFyLG1lc3NhZ2UsdGFnLHRhYmxlLGNhcmQsdGFicyx0aW1lbGluZSx0aW1lUGlja2VyLHVwbG9hZCxub3RpZmljYXRpb24sdHJlZSxjb2xvclBpY2tlcixkYXRlUGlja2VyLHJhbmdlUGlja2VyLGZsZXgsd2F2ZSxkcm9wZG93bix3YXJuaW5nOndhcm5pbmdDb25maWcsdG91cix0b29sdGlwLHBvcG92ZXIscG9wY29uZmlybSxmbG9hdEJ1dHRvbkdyb3VwLHZhcmlhbnQsaW5wdXROdW1iZXIsdHJlZVNlbGVjdH09cHJvcHMsZ2V0UHJlZml4Q2xzPXJlYWN0LnVzZUNhbGxiYWNrKChzdWZmaXhDbHMsY3VzdG9taXplUHJlZml4Q2xzKT0+e2xldHtwcmVmaXhDbHN9PXByb3BzO2lmKGN1c3RvbWl6ZVByZWZpeENscylyZXR1cm4gY3VzdG9taXplUHJlZml4Q2xzO2xldCBtZXJnZWRQcmVmaXhDbHM9cHJlZml4Q2xzfHxwYXJlbnRDb250ZXh0LmdldFByZWZpeENscygiIik7cmV0dXJuIHN1ZmZpeENscz9gJHttZXJnZWRQcmVmaXhDbHN9LSR7c3VmZml4Q2xzfWA6bWVyZ2VkUHJlZml4Q2xzfSxbcGFyZW50Q29udGV4dC5nZXRQcmVmaXhDbHMscHJvcHMucHJlZml4Q2xzXSksaWNvblByZWZpeENscz1jdXN0b21JY29uUHJlZml4Q2xzfHxwYXJlbnRDb250ZXh0Lmljb25QcmVmaXhDbHN8fGNvbmZpZ19wcm92aWRlcl9jb250ZXh0Lm9SLGNzcD1jdXN0b21Dc3B8fHBhcmVudENvbnRleHQuY3NwO3VzZVJlc2V0SWNvblN0eWxlKGljb25QcmVmaXhDbHMsY3NwKTtsZXQgbWVyZ2VkVGhlbWU9ZnVuY3Rpb24odGhlbWUscGFyZW50VGhlbWUsY29uZmlnKXt2YXIgX2E7KDAsX3V0aWxfd2FybmluZy5sbikoIkNvbmZpZ1Byb3ZpZGVyIik7bGV0IHRoZW1lQ29uZmlnPXRoZW1lfHx7fSxwYXJlbnRUaGVtZUNvbmZpZz0hMSE9PXRoZW1lQ29uZmlnLmluaGVyaXQmJnBhcmVudFRoZW1lP3BhcmVudFRoZW1lOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjb250ZXh0LnVfKSx7aGFzaGVkOm51bGwhPT0oX2E9bnVsbD09cGFyZW50VGhlbWU/dm9pZCAwOnBhcmVudFRoZW1lLmhhc2hlZCkmJnZvaWQgMCE9PV9hP19hOmNvbnRleHQudV8uaGFzaGVkLGNzc1ZhcjpudWxsPT1wYXJlbnRUaGVtZT92b2lkIDA6cGFyZW50VGhlbWUuY3NzVmFyfSksdGhlbWVLZXk9aG9va3NfdXNlVGhlbWVLZXkoKTtyZXR1cm4oMCx1c2VNZW1vLlopKCgpPT57dmFyIF9hLF9iO2lmKCF0aGVtZSlyZXR1cm4gcGFyZW50VGhlbWU7bGV0IG1lcmdlZENvbXBvbmVudHM9T2JqZWN0LmFzc2lnbih7fSxwYXJlbnRUaGVtZUNvbmZpZy5jb21wb25lbnRzKTtPYmplY3Qua2V5cyh0aGVtZS5jb21wb25lbnRzfHx7fSkuZm9yRWFjaChjb21wb25lbnROYW1lPT57bWVyZ2VkQ29tcG9uZW50c1tjb21wb25lbnROYW1lXT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbWVyZ2VkQ29tcG9uZW50c1tjb21wb25lbnROYW1lXSksdGhlbWUuY29tcG9uZW50c1tjb21wb25lbnROYW1lXSl9KTtsZXQgY3NzVmFyS2V5PWBjc3MtdmFyLSR7dGhlbWVLZXkucmVwbGFjZSgvOi9nLCIiKX1gLG1lcmdlZENzc1Zhcj0obnVsbCE9PShfYT10aGVtZUNvbmZpZy5jc3NWYXIpJiZ2b2lkIDAhPT1fYT9fYTpwYXJlbnRUaGVtZUNvbmZpZy5jc3NWYXIpJiZPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7cHJlZml4Om51bGw9PWNvbmZpZz92b2lkIDA6Y29uZmlnLnByZWZpeENsc30sIm9iamVjdCI9PXR5cGVvZiBwYXJlbnRUaGVtZUNvbmZpZy5jc3NWYXI/cGFyZW50VGhlbWVDb25maWcuY3NzVmFyOnt9KSwib2JqZWN0Ij09dHlwZW9mIHRoZW1lQ29uZmlnLmNzc1Zhcj90aGVtZUNvbmZpZy5jc3NWYXI6e30pLHtrZXk6Im9iamVjdCI9PXR5cGVvZiB0aGVtZUNvbmZpZy5jc3NWYXImJihudWxsPT09KF9iPXRoZW1lQ29uZmlnLmNzc1Zhcil8fHZvaWQgMD09PV9iP3ZvaWQgMDpfYi5rZXkpfHxjc3NWYXJLZXl9KTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scGFyZW50VGhlbWVDb25maWcpLHRoZW1lQ29uZmlnKSx7dG9rZW46T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHBhcmVudFRoZW1lQ29uZmlnLnRva2VuKSx0aGVtZUNvbmZpZy50b2tlbiksY29tcG9uZW50czptZXJnZWRDb21wb25lbnRzLGNzc1ZhcjptZXJnZWRDc3NWYXJ9KX0sW3RoZW1lQ29uZmlnLHBhcmVudFRoZW1lQ29uZmlnXSwocHJldixuZXh0KT0+cHJldi5zb21lKChwcmV2VGhlbWUsaW5kZXgpPT57bGV0IG5leHRUaGVtZT1uZXh0W2luZGV4XTtyZXR1cm4hZXNfaXNFcXVhbChwcmV2VGhlbWUsbmV4dFRoZW1lLCEwKX0pKX0odGhlbWUscGFyZW50Q29udGV4dC50aGVtZSx7cHJlZml4Q2xzOmdldFByZWZpeENscygiIil9KSxiYXNlQ29uZmlnPXtjc3AsYXV0b0luc2VydFNwYWNlSW5CdXR0b24sYWxlcnQsYW5jaG9yLGxvY2FsZTpsb2NhbGV8fGxlZ2FjeUxvY2FsZSxkaXJlY3Rpb24sc3BhY2Usc3BsaXR0ZXIsdmlydHVhbCxwb3B1cE1hdGNoU2VsZWN0V2lkdGg6bnVsbCE9cG9wdXBNYXRjaFNlbGVjdFdpZHRoP3BvcHVwTWF0Y2hTZWxlY3RXaWR0aDpkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGgscG9wdXBPdmVyZmxvdyxnZXRQcmVmaXhDbHMsaWNvblByZWZpeENscyx0aGVtZTptZXJnZWRUaGVtZSxzZWdtZW50ZWQsc3RhdGlzdGljLHNwaW4sY2FsZW5kYXIsY2Fyb3VzZWwsY2FzY2FkZXIsY29sbGFwc2UsdHlwb2dyYXBoeSxjaGVja2JveCxkZXNjcmlwdGlvbnMsZGl2aWRlcixkcmF3ZXIsc2tlbGV0b24sc3RlcHMsaW1hZ2UsaW5wdXQsdGV4dEFyZWEsbGF5b3V0LGxpc3QsbWVudGlvbnMsbW9kYWwscHJvZ3Jlc3MscmVzdWx0LHNsaWRlcixicmVhZGNydW1iLG1lbnUscGFnaW5hdGlvbixlbXB0eSxiYWRnZSxyYWRpbyxyYXRlLHN3aXRjaDpTV0lUQ0gsdHJhbnNmZXIsYXZhdGFyLG1lc3NhZ2UsdGFnLHRhYmxlLGNhcmQsdGFicyx0aW1lbGluZSx0aW1lUGlja2VyLHVwbG9hZCxub3RpZmljYXRpb24sdHJlZSxjb2xvclBpY2tlcixkYXRlUGlja2VyLHJhbmdlUGlja2VyLGZsZXgsd2F2ZSxkcm9wZG93bix3YXJuaW5nOndhcm5pbmdDb25maWcsdG91cix0b29sdGlwLHBvcG92ZXIscG9wY29uZmlybSxmbG9hdEJ1dHRvbkdyb3VwLHZhcmlhbnQsaW5wdXROdW1iZXIsdHJlZVNlbGVjdH0sY29uZmlnPU9iamVjdC5hc3NpZ24oe30scGFyZW50Q29udGV4dCk7T2JqZWN0LmtleXMoYmFzZUNvbmZpZykuZm9yRWFjaChrZXk9Pnt2b2lkIDAhPT1iYXNlQ29uZmlnW2tleV0mJihjb25maWdba2V5XT1iYXNlQ29uZmlnW2tleV0pfSksUEFTU0VEX1BST1BTLmZvckVhY2gocHJvcE5hbWU9PntsZXQgcHJvcFZhbHVlPXByb3BzW3Byb3BOYW1lXTtwcm9wVmFsdWUmJihjb25maWdbcHJvcE5hbWVdPXByb3BWYWx1ZSl9KSx2b2lkIDAhPT1hdXRvSW5zZXJ0U3BhY2VJbkJ1dHRvbiYmKGNvbmZpZy5idXR0b249T2JqZWN0LmFzc2lnbih7YXV0b0luc2VydFNwYWNlOmF1dG9JbnNlcnRTcGFjZUluQnV0dG9ufSxjb25maWcuYnV0dG9uKSk7bGV0IG1lbW9lZENvbmZpZz0oMCx1c2VNZW1vLlopKCgpPT5jb25maWcsY29uZmlnLChwcmV2Q29uZmlnLGN1cnJlbnRDb25maWcpPT57bGV0IHByZXZLZXlzPU9iamVjdC5rZXlzKHByZXZDb25maWcpLGN1cnJlbnRLZXlzPU9iamVjdC5rZXlzKGN1cnJlbnRDb25maWcpO3JldHVybiBwcmV2S2V5cy5sZW5ndGghPT1jdXJyZW50S2V5cy5sZW5ndGh8fHByZXZLZXlzLnNvbWUoa2V5PT5wcmV2Q29uZmlnW2tleV0hPT1jdXJyZW50Q29uZmlnW2tleV0pfSkse2xheWVyfT1yZWFjdC51c2VDb250ZXh0KGVzLnVQKSxtZW1vSWNvbkNvbnRleHRWYWx1ZT1yZWFjdC51c2VNZW1vKCgpPT4oe3ByZWZpeENsczppY29uUHJlZml4Q2xzLGNzcCxsYXllcjpsYXllcj8iYW50ZCI6dm9pZCAwfSksW2ljb25QcmVmaXhDbHMsY3NwLGxheWVyXSksY2hpbGROb2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQocmVhY3QuRnJhZ21lbnQsbnVsbCxyZWFjdC5jcmVhdGVFbGVtZW50KGNvbmZpZ19wcm92aWRlcl9Qcm9wV2FybmluZyx7ZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoOmRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aH0pLGNoaWxkcmVuKSx2YWxpZGF0ZU1lc3NhZ2VzPXJlYWN0LnVzZU1lbW8oKCk9Pnt2YXIgX2EsX2IsX2MsX2Q7cmV0dXJuKDAsc2V0LlQpKChudWxsPT09KF9hPWVuX1VTLlouRm9ybSl8fHZvaWQgMD09PV9hP3ZvaWQgMDpfYS5kZWZhdWx0VmFsaWRhdGVNZXNzYWdlcyl8fHt9LChudWxsPT09KF9jPW51bGw9PT0oX2I9bWVtb2VkQ29uZmlnLmxvY2FsZSl8fHZvaWQgMD09PV9iP3ZvaWQgMDpfYi5Gb3JtKXx8dm9pZCAwPT09X2M/dm9pZCAwOl9jLmRlZmF1bHRWYWxpZGF0ZU1lc3NhZ2VzKXx8e30sKG51bGw9PT0oX2Q9bWVtb2VkQ29uZmlnLmZvcm0pfHx2b2lkIDA9PT1fZD92b2lkIDA6X2QudmFsaWRhdGVNZXNzYWdlcyl8fHt9LChudWxsPT1mb3JtP3ZvaWQgMDpmb3JtLnZhbGlkYXRlTWVzc2FnZXMpfHx7fSl9LFttZW1vZWRDb25maWcsbnVsbD09Zm9ybT92b2lkIDA6Zm9ybS52YWxpZGF0ZU1lc3NhZ2VzXSk7T2JqZWN0LmtleXModmFsaWRhdGVNZXNzYWdlcykubGVuZ3RoPjAmJihjaGlsZE5vZGU9cmVhY3QuY3JlYXRlRWxlbWVudCh2YWxpZGF0ZU1lc3NhZ2VzQ29udGV4dC5aLlByb3ZpZGVyLHt2YWx1ZTp2YWxpZGF0ZU1lc3NhZ2VzfSxjaGlsZE5vZGUpKSxsb2NhbGUmJihjaGlsZE5vZGU9cmVhY3QuY3JlYXRlRWxlbWVudChMb2NhbGVQcm92aWRlcix7bG9jYWxlOmxvY2FsZSxfQU5UX01BUktfXzoiaW50ZXJuYWxNYXJrIn0sY2hpbGROb2RlKSksKGljb25QcmVmaXhDbHN8fGNzcCkmJihjaGlsZE5vZGU9cmVhY3QuY3JlYXRlRWxlbWVudChDb250ZXh0LlouUHJvdmlkZXIse3ZhbHVlOm1lbW9JY29uQ29udGV4dFZhbHVlfSxjaGlsZE5vZGUpKSxjb21wb25lbnRTaXplJiYoY2hpbGROb2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQoU2l6ZUNvbnRleHQucSx7c2l6ZTpjb21wb25lbnRTaXplfSxjaGlsZE5vZGUpKSxjaGlsZE5vZGU9cmVhY3QuY3JlYXRlRWxlbWVudChNb3Rpb25XcmFwcGVyLG51bGwsY2hpbGROb2RlKTtsZXQgbWVtb1RoZW1lPXJlYWN0LnVzZU1lbW8oKCk9PntsZXQgX2E9bWVyZ2VkVGhlbWV8fHt9LHthbGdvcml0aG0sdG9rZW4sY29tcG9uZW50cyxjc3NWYXJ9PV9hLHJlc3Q9X19yZXN0KF9hLFsiYWxnb3JpdGhtIiwidG9rZW4iLCJjb21wb25lbnRzIiwiY3NzVmFyIl0pLHRoZW1lT2JqPWFsZ29yaXRobSYmKCFBcnJheS5pc0FycmF5KGFsZ29yaXRobSl8fGFsZ29yaXRobS5sZW5ndGg+MCk/KDAsZXMuakcpKGFsZ29yaXRobSk6ZGVmYXVsdF90aGVtZS5aLHBhcnNlZENvbXBvbmVudHM9e307T2JqZWN0LmVudHJpZXMoY29tcG9uZW50c3x8e30pLmZvckVhY2goX3JlZj0+e2xldFtjb21wb25lbnROYW1lLGNvbXBvbmVudFRva2VuXT1fcmVmLHBhcnNlZFRva2VuPU9iamVjdC5hc3NpZ24oe30sY29tcG9uZW50VG9rZW4pOyJhbGdvcml0aG0iaW4gcGFyc2VkVG9rZW4mJighMD09PXBhcnNlZFRva2VuLmFsZ29yaXRobT9wYXJzZWRUb2tlbi50aGVtZT10aGVtZU9iajooQXJyYXkuaXNBcnJheShwYXJzZWRUb2tlbi5hbGdvcml0aG0pfHwiZnVuY3Rpb24iPT10eXBlb2YgcGFyc2VkVG9rZW4uYWxnb3JpdGhtKSYmKHBhcnNlZFRva2VuLnRoZW1lPSgwLGVzLmpHKShwYXJzZWRUb2tlbi5hbGdvcml0aG0pKSxkZWxldGUgcGFyc2VkVG9rZW4uYWxnb3JpdGhtKSxwYXJzZWRDb21wb25lbnRzW2NvbXBvbmVudE5hbWVdPXBhcnNlZFRva2VufSk7bGV0IG1lcmdlZFRva2VuPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxzZWVkLlopLHRva2VuKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHJlc3QpLHt0aGVtZTp0aGVtZU9iaix0b2tlbjptZXJnZWRUb2tlbixjb21wb25lbnRzOnBhcnNlZENvbXBvbmVudHMsb3ZlcnJpZGU6T2JqZWN0LmFzc2lnbih7b3ZlcnJpZGU6bWVyZ2VkVG9rZW59LHBhcnNlZENvbXBvbmVudHMpLGNzc1Zhcjpjc3NWYXJ9KX0sW21lcmdlZFRoZW1lXSk7cmV0dXJuIHRoZW1lJiYoY2hpbGROb2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQoY29udGV4dC5Nai5Qcm92aWRlcix7dmFsdWU6bWVtb1RoZW1lfSxjaGlsZE5vZGUpKSxtZW1vZWRDb25maWcud2FybmluZyYmKGNoaWxkTm9kZT1yZWFjdC5jcmVhdGVFbGVtZW50KF91dGlsX3dhcm5pbmcuRzguUHJvdmlkZXIse3ZhbHVlOm1lbW9lZENvbmZpZy53YXJuaW5nfSxjaGlsZE5vZGUpKSx2b2lkIDAhPT1jb21wb25lbnREaXNhYmxlZCYmKGNoaWxkTm9kZT1yZWFjdC5jcmVhdGVFbGVtZW50KERpc2FibGVkQ29udGV4dC5uLHtkaXNhYmxlZDpjb21wb25lbnREaXNhYmxlZH0sY2hpbGROb2RlKSkscmVhY3QuY3JlYXRlRWxlbWVudChjb25maWdfcHJvdmlkZXJfY29udGV4dC5FXy5Qcm92aWRlcix7dmFsdWU6bWVtb2VkQ29uZmlnfSxjaGlsZE5vZGUpfSxDb25maWdQcm92aWRlcj1wcm9wcz0+e2xldCBjb250ZXh0PXJlYWN0LnVzZUNvbnRleHQoY29uZmlnX3Byb3ZpZGVyX2NvbnRleHQuRV8pLGFudExvY2FsZT1yZWFjdC51c2VDb250ZXh0KGxvY2FsZV9jb250ZXh0LlopO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KFByb3ZpZGVyQ2hpbGRyZW4sT2JqZWN0LmFzc2lnbih7cGFyZW50Q29udGV4dDpjb250ZXh0LGxlZ2FjeUxvY2FsZTphbnRMb2NhbGV9LHByb3BzKSl9O0NvbmZpZ1Byb3ZpZGVyLkNvbmZpZ0NvbnRleHQ9Y29uZmlnX3Byb3ZpZGVyX2NvbnRleHQuRV8sQ29uZmlnUHJvdmlkZXIuU2l6ZUNvbnRleHQ9U2l6ZUNvbnRleHQuWixDb25maWdQcm92aWRlci5jb25maWc9c2V0R2xvYmFsQ29uZmlnLENvbmZpZ1Byb3ZpZGVyLnVzZUNvbmZpZz1mdW5jdGlvbigpe2xldCBjb21wb25lbnREaXNhYmxlZD0oMCxyZWFjdC51c2VDb250ZXh0KShEaXNhYmxlZENvbnRleHQuWiksY29tcG9uZW50U2l6ZT0oMCxyZWFjdC51c2VDb250ZXh0KShTaXplQ29udGV4dC5aKTtyZXR1cm57Y29tcG9uZW50RGlzYWJsZWQsY29tcG9uZW50U2l6ZX19LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDb25maWdQcm92aWRlciwiU2l6ZUNvbnRleHQiLHtnZXQ6KCk9PlNpemVDb250ZXh0Llp9KTt2YXIgY29uZmlnX3Byb3ZpZGVyPUNvbmZpZ1Byb3ZpZGVyfSw0MDIxNjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBkYXRlX3BpY2tlcn19KTt2YXIgZGF5anNfbWluPV9fd2VicGFja19yZXF1aXJlX18oMjc0ODQpLGRheWpzX21pbl9kZWZhdWx0PV9fd2VicGFja19yZXF1aXJlX18ubihkYXlqc19taW4pLHdlZWtkYXk9X193ZWJwYWNrX3JlcXVpcmVfXyg2ODMzKSx3ZWVrZGF5X2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKHdlZWtkYXkpLGxvY2FsZURhdGE9X193ZWJwYWNrX3JlcXVpcmVfXyg5NjAzNiksbG9jYWxlRGF0YV9kZWZhdWx0PV9fd2VicGFja19yZXF1aXJlX18ubihsb2NhbGVEYXRhKSx3ZWVrT2ZZZWFyPV9fd2VicGFja19yZXF1aXJlX18oNTUxODMpLHdlZWtPZlllYXJfZGVmYXVsdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4od2Vla09mWWVhciksd2Vla1llYXI9X193ZWJwYWNrX3JlcXVpcmVfXygxNzIpLHdlZWtZZWFyX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKHdlZWtZZWFyKSxhZHZhbmNlZEZvcm1hdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDI4NzM0KSxhZHZhbmNlZEZvcm1hdF9kZWZhdWx0PV9fd2VicGFja19yZXF1aXJlX18ubihhZHZhbmNlZEZvcm1hdCksY3VzdG9tUGFyc2VGb3JtYXQ9X193ZWJwYWNrX3JlcXVpcmVfXygxMDI4NSksY3VzdG9tUGFyc2VGb3JtYXRfZGVmYXVsdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oY3VzdG9tUGFyc2VGb3JtYXQpO2RheWpzX21pbl9kZWZhdWx0KCkuZXh0ZW5kKGN1c3RvbVBhcnNlRm9ybWF0X2RlZmF1bHQoKSksZGF5anNfbWluX2RlZmF1bHQoKS5leHRlbmQoYWR2YW5jZWRGb3JtYXRfZGVmYXVsdCgpKSxkYXlqc19taW5fZGVmYXVsdCgpLmV4dGVuZCh3ZWVrZGF5X2RlZmF1bHQoKSksZGF5anNfbWluX2RlZmF1bHQoKS5leHRlbmQobG9jYWxlRGF0YV9kZWZhdWx0KCkpLGRheWpzX21pbl9kZWZhdWx0KCkuZXh0ZW5kKHdlZWtPZlllYXJfZGVmYXVsdCgpKSxkYXlqc19taW5fZGVmYXVsdCgpLmV4dGVuZCh3ZWVrWWVhcl9kZWZhdWx0KCkpLGRheWpzX21pbl9kZWZhdWx0KCkuZXh0ZW5kKGZ1bmN0aW9uKG8sYyl7dmFyIHByb3RvPWMucHJvdG90eXBlLG9sZEZvcm1hdD1wcm90by5mb3JtYXQ7cHJvdG8uZm9ybWF0PWZ1bmN0aW9uKGZvcm1hdFN0cil7dmFyIHN0cj0oZm9ybWF0U3RyfHwiIikucmVwbGFjZSgiV28iLCJ3byIpO3JldHVybiBvbGRGb3JtYXQuYmluZCh0aGlzKShzdHIpfX0pO3ZhciBsb2NhbGVNYXA9e2JuX0JEOiJibi1iZCIsYnlfQlk6ImJlIixlbl9HQjoiZW4tZ2IiLGVuX1VTOiJlbiIsZnJfQkU6ImZyIixmcl9DQToiZnItY2EiLGh5X0FNOiJoeS1hbSIsa21yX0lROiJrdSIsbmxfQkU6Im5sLWJlIixwdF9CUjoicHQtYnIiLHpoX0NOOiJ6aC1jbiIsemhfSEs6InpoLWhrIix6aF9UVzoiemgtdHcifSxwYXJzZUxvY2FsZT1mdW5jdGlvbihsb2NhbGUpe3JldHVybiBsb2NhbGVNYXBbbG9jYWxlXXx8bG9jYWxlLnNwbGl0KCJfIilbMF19LHBhcnNlTm9NYXRjaE5vdGljZT1mdW5jdGlvbigpe30sUHVyZVBhbmVsPV9fd2VicGFja19yZXF1aXJlX18oODc0NSkscmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksZXNtX2V4dGVuZHM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzQ2MCksYXNuX0NhbGVuZGFyT3V0bGluZWQ9e2ljb246e3RhZzoic3ZnIixhdHRyczp7dmlld0JveDoiNjQgNjQgODk2IDg5NiIsZm9jdXNhYmxlOiJmYWxzZSJ9LGNoaWxkcmVuOlt7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTg4MCAxODRINzEydi02NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NjRIMzg0di02NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NjRIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIxNmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDY1NkgxODRWNDYwaDY1NnYzODB6TTE4NCAzOTJWMjU2aDEyOHY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgyNTZ2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMTI4djEzNkgxODR6In19XX0sbmFtZToiY2FsZW5kYXIiLHRoZW1lOiJvdXRsaW5lZCJ9LEFudGRJY29uPV9fd2VicGFja19yZXF1aXJlX18oODc1OTIpLFJlZkljb249cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KEFudGRJY29uLlosKDAsZXNtX2V4dGVuZHMuWikoe30scHJvcHMse3JlZjpyZWYsaWNvbjphc25fQ2FsZW5kYXJPdXRsaW5lZH0pKX0pLGFzbl9DbG9ja0NpcmNsZU91dGxpbmVkPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6In19LHt0YWc6InBhdGgiLGF0dHJzOntkOiJNNjg2LjcgNjM4LjZMNTQ0LjEgNTM1LjVWMjg4YzAtNC40LTMuNi04LTgtOEg0ODhjLTQuNCAwLTggMy42LTggOHYyNzUuNGMwIDIuNiAxLjIgNSAzLjMgNi41bDE2NS40IDEyMC42YzMuNiAyLjYgOC42IDEuOCAxMS4yLTEuN2wyOC42LTM5YzIuNi0zLjcgMS44LTguNy0xLjgtMTEuMnoifX1dfSxuYW1lOiJjbG9jay1jaXJjbGUiLHRoZW1lOiJvdXRsaW5lZCJ9LENsb2NrQ2lyY2xlT3V0bGluZWRfUmVmSWNvbj1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoQW50ZEljb24uWiwoMCxlc21fZXh0ZW5kcy5aKSh7fSxwcm9wcyx7cmVmOnJlZixpY29uOmFzbl9DbG9ja0NpcmNsZU91dGxpbmVkfSkpfSksYXNuX1N3YXBSaWdodE91dGxpbmVkPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjAgMCAxMDI0IDEwMjQiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik04NzMuMSA1OTYuMmwtMTY0LTIwOEEzMiAzMiAwIDAwNjg0IDM3NmgtNjQuOGMtNi43IDAtMTAuNCA3LjctNi4zIDEzbDE0NC4zIDE4M0gxNTJjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNjk1LjljMjYuOCAwIDQxLjctMzAuOCAyNS4yLTUxLjh6In19XX0sbmFtZToic3dhcC1yaWdodCIsdGhlbWU6Im91dGxpbmVkIn0sU3dhcFJpZ2h0T3V0bGluZWRfUmVmSWNvbj1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoQW50ZEljb24uWiwoMCxlc21fZXh0ZW5kcy5aKSh7fSxwcm9wcyx7cmVmOnJlZixpY29uOmFzbl9Td2FwUmlnaHRPdXRsaW5lZH0pKX0pLGNsYXNzbmFtZXM9X193ZWJwYWNrX3JlcXVpcmVfXygxMzE0NCksY2xhc3NuYW1lc19kZWZhdWx0PV9fd2VicGFja19yZXF1aXJlX18ubihjbGFzc25hbWVzKTtmdW5jdGlvbiBfZXh0ZW5kcygpe3JldHVybihfZXh0ZW5kcz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKG4pe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciB0PWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gdCkoe30pLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmKG5bcl09dFtyXSl9cmV0dXJuIG59KS5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkocixhKXsobnVsbD09YXx8YT5yLmxlbmd0aCkmJihhPXIubGVuZ3RoKTtmb3IodmFyIGU9MCxuPUFycmF5KGEpO2U8YTtlKyspbltlXT1yW2VdO3JldHVybiBufWZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShyLGEpe2lmKHIpe2lmKCJzdHJpbmciPT10eXBlb2YgcilyZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkocixhKTt2YXIgdD0oe30pLnRvU3RyaW5nLmNhbGwocikuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT10JiZyLmNvbnN0cnVjdG9yJiYodD1yLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09dHx8IlNldCI9PT10P0FycmF5LmZyb20ocik6IkFyZ3VtZW50cyI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KT9fYXJyYXlMaWtlVG9BcnJheShyLGEpOnZvaWQgMH19ZnVuY3Rpb24gdG9Db25zdW1hYmxlQXJyYXlfdG9Db25zdW1hYmxlQXJyYXkocil7cmV0dXJuIGZ1bmN0aW9uKHIpe2lmKEFycmF5LmlzQXJyYXkocikpcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KHIpfShyKXx8ZnVuY3Rpb24ocil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPXJbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9clsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKHIpfShyKXx8X3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KHIpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9dmFyIG9iamVjdFNwcmVhZDI9X193ZWJwYWNrX3JlcXVpcmVfXyg0NjM5NCk7ZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkocixlKXtyZXR1cm4gZnVuY3Rpb24ocil7aWYoQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gcn0ocil8fGZ1bmN0aW9uKHIsbCl7dmFyIHQ9bnVsbD09cj9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZyW1N5bWJvbC5pdGVyYXRvcl18fHJbIkBAaXRlcmF0b3IiXTtpZihudWxsIT10KXt2YXIgZSxuLGksdSxhPVtdLGY9ITAsbz0hMTt0cnl7aWYoaT0odD10LmNhbGwocikpLm5leHQsMD09PWwpe2lmKE9iamVjdCh0KSE9PXQpcmV0dXJuO2Y9ITF9ZWxzZSBmb3IoOyEoZj0oZT1pLmNhbGwodCkpLmRvbmUpJiYoYS5wdXNoKGUudmFsdWUpLGEubGVuZ3RoIT09bCk7Zj0hMCk7fWNhdGNoKHIxKXtvPSEwLG49cjF9ZmluYWxseXt0cnl7aWYoIWYmJm51bGwhPXQucmV0dXJuJiYodT10LnJldHVybigpLE9iamVjdCh1KSE9PXUpKXJldHVybn1maW5hbGx5e2lmKG8pdGhyb3cgbn19cmV0dXJuIGF9fShyLGUpfHxfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkocixlKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gdXNlRXZlbnQoY2FsbGJhY2spe3ZhciBmblJlZj1yZWFjdC51c2VSZWYoKTtyZXR1cm4gZm5SZWYuY3VycmVudD1jYWxsYmFjayxyZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbigpe2Zvcih2YXIgX2ZuUmVmJGN1cnJlbnQsX2xlbj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbiksX2tleT0wO19rZXk8X2xlbjtfa2V5KyspYXJnc1tfa2V5XT1hcmd1bWVudHNbX2tleV07cmV0dXJuIG51bGw9PT0oX2ZuUmVmJGN1cnJlbnQ9Zm5SZWYuY3VycmVudCl8fHZvaWQgMD09PV9mblJlZiRjdXJyZW50P3ZvaWQgMDpfZm5SZWYkY3VycmVudC5jYWxsLmFwcGx5KF9mblJlZiRjdXJyZW50LFtmblJlZl0uY29uY2F0KGFyZ3MpKX0sW10pfWZ1bmN0aW9uIGFycmF5TGlrZVRvQXJyYXlfYXJyYXlMaWtlVG9BcnJheShhcnIsbGVuKXsobnVsbD09bGVufHxsZW4+YXJyLmxlbmd0aCkmJihsZW49YXJyLmxlbmd0aCk7Zm9yKHZhciBpPTAsYXJyMj1BcnJheShsZW4pO2k8bGVuO2krKylhcnIyW2ldPWFycltpXTtyZXR1cm4gYXJyMn1mdW5jdGlvbiBzbGljZWRUb0FycmF5X3NsaWNlZFRvQXJyYXkoYXJyLGkpe3JldHVybiBmdW5jdGlvbihhcnIpe2lmKEFycmF5LmlzQXJyYXkoYXJyKSlyZXR1cm4gYXJyfShhcnIpfHxmdW5jdGlvbihhcnIsaSl7dmFyIF9pPW51bGw9PWFycj9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZhcnJbU3ltYm9sLml0ZXJhdG9yXXx8YXJyWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9X2kpe3ZhciBfcyxfZSxfeCxfcixfYXJyPVtdLF9uPSEwLF9kPSExO3RyeXtpZihfeD0oX2k9X2kuY2FsbChhcnIpKS5uZXh0LDA9PT1pKXtpZihPYmplY3QoX2kpIT09X2kpcmV0dXJuO19uPSExfWVsc2UgZm9yKDshKF9uPShfcz1feC5jYWxsKF9pKSkuZG9uZSkmJihfYXJyLnB1c2goX3MudmFsdWUpLF9hcnIubGVuZ3RoIT09aSk7X249ITApO31jYXRjaChlcnIpe19kPSEwLF9lPWVycn1maW5hbGx5e3RyeXtpZighX24mJm51bGwhPV9pLnJldHVybiYmKF9yPV9pLnJldHVybigpLE9iamVjdChfcikhPT1fcikpcmV0dXJufWZpbmFsbHl7aWYoX2QpdGhyb3cgX2V9fXJldHVybiBfYXJyfX0oYXJyLGkpfHxmdW5jdGlvbihvLG1pbkxlbil7aWYobyl7aWYoInN0cmluZyI9PXR5cGVvZiBvKXJldHVybiBhcnJheUxpa2VUb0FycmF5X2FycmF5TGlrZVRvQXJyYXkobyxtaW5MZW4pO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PW4mJm8uY29uc3RydWN0b3ImJihuPW8uY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ufHwiU2V0Ij09PW4pcmV0dXJuIEFycmF5LmZyb20obyk7aWYoIkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gYXJyYXlMaWtlVG9BcnJheV9hcnJheUxpa2VUb0FycmF5KG8sbWluTGVuKX19KGFycixpKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9dmFyIHVzZUludGVybmFsTGF5b3V0RWZmZWN0PSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuZG9jdW1lbnQmJndpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50P3JlYWN0LnVzZUxheW91dEVmZmVjdDpyZWFjdC51c2VFZmZlY3QsdXNlTGF5b3V0RWZmZWN0PWZ1bmN0aW9uKGNhbGxiYWNrLGRlcHMpe3ZhciBmaXJzdE1vdW50UmVmPXJlYWN0LnVzZVJlZighMCk7dXNlSW50ZXJuYWxMYXlvdXRFZmZlY3QoZnVuY3Rpb24oKXtyZXR1cm4gY2FsbGJhY2soZmlyc3RNb3VudFJlZi5jdXJyZW50KX0sZGVwcyksdXNlSW50ZXJuYWxMYXlvdXRFZmZlY3QoZnVuY3Rpb24oKXtyZXR1cm4gZmlyc3RNb3VudFJlZi5jdXJyZW50PSExLGZ1bmN0aW9uKCl7Zmlyc3RNb3VudFJlZi5jdXJyZW50PSEwfX0sW10pfSx1c2VMYXlvdXRVcGRhdGVFZmZlY3Q9ZnVuY3Rpb24oY2FsbGJhY2ssZGVwcyl7dXNlTGF5b3V0RWZmZWN0KGZ1bmN0aW9uKGZpcnN0TW91bnQpe2lmKCFmaXJzdE1vdW50KXJldHVybiBjYWxsYmFjaygpfSxkZXBzKX07ZnVuY3Rpb24gdXNlU2FmZVN0YXRlKGRlZmF1bHRWYWx1ZSl7dmFyIGRlc3Ryb3lSZWY9cmVhY3QudXNlUmVmKCExKSxfUmVhY3QkdXNlU3RhdGUyPXNsaWNlZFRvQXJyYXlfc2xpY2VkVG9BcnJheShyZWFjdC51c2VTdGF0ZShkZWZhdWx0VmFsdWUpLDIpLHZhbHVlPV9SZWFjdCR1c2VTdGF0ZTJbMF0sc2V0VmFsdWU9X1JlYWN0JHVzZVN0YXRlMlsxXTtyZXR1cm4gcmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIGRlc3Ryb3lSZWYuY3VycmVudD0hMSxmdW5jdGlvbigpe2Rlc3Ryb3lSZWYuY3VycmVudD0hMH19LFtdKSxbdmFsdWUsZnVuY3Rpb24odXBkYXRlcixpZ25vcmVEZXN0cm95KXtpZ25vcmVEZXN0cm95JiZkZXN0cm95UmVmLmN1cnJlbnR8fHNldFZhbHVlKHVwZGF0ZXIpfV19ZnVuY3Rpb24gaGFzVmFsdWUodmFsdWUpe3JldHVybiB2b2lkIDAhPT12YWx1ZX1mdW5jdGlvbiB1c2VNZXJnZWRTdGF0ZShkZWZhdWx0U3RhdGVWYWx1ZSxvcHRpb24pe3ZhciBfcmVmPW9wdGlvbnx8e30sZGVmYXVsdFZhbHVlPV9yZWYuZGVmYXVsdFZhbHVlLHZhbHVlPV9yZWYudmFsdWUsb25DaGFuZ2U9X3JlZi5vbkNoYW5nZSxwb3N0U3RhdGU9X3JlZi5wb3N0U3RhdGUsX3VzZVN0YXRlMj1zbGljZWRUb0FycmF5X3NsaWNlZFRvQXJyYXkodXNlU2FmZVN0YXRlKGZ1bmN0aW9uKCl7cmV0dXJuIGhhc1ZhbHVlKHZhbHVlKT92YWx1ZTpoYXNWYWx1ZShkZWZhdWx0VmFsdWUpPyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZhdWx0VmFsdWU/ZGVmYXVsdFZhbHVlKCk6ZGVmYXVsdFZhbHVlOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZhdWx0U3RhdGVWYWx1ZT9kZWZhdWx0U3RhdGVWYWx1ZSgpOmRlZmF1bHRTdGF0ZVZhbHVlfSksMiksaW5uZXJWYWx1ZT1fdXNlU3RhdGUyWzBdLHNldElubmVyVmFsdWU9X3VzZVN0YXRlMlsxXSxtZXJnZWRWYWx1ZT12b2lkIDAhPT12YWx1ZT92YWx1ZTppbm5lclZhbHVlLHBvc3RNZXJnZWRWYWx1ZT1wb3N0U3RhdGU/cG9zdFN0YXRlKG1lcmdlZFZhbHVlKTptZXJnZWRWYWx1ZSxvbkNoYW5nZUZuPXVzZUV2ZW50KG9uQ2hhbmdlKSxfdXNlU3RhdGU0PXNsaWNlZFRvQXJyYXlfc2xpY2VkVG9BcnJheSh1c2VTYWZlU3RhdGUoW21lcmdlZFZhbHVlXSksMikscHJldlZhbHVlPV91c2VTdGF0ZTRbMF0sc2V0UHJldlZhbHVlPV91c2VTdGF0ZTRbMV07cmV0dXJuIHVzZUxheW91dFVwZGF0ZUVmZmVjdChmdW5jdGlvbigpe3ZhciBwcmV2PXByZXZWYWx1ZVswXTtpbm5lclZhbHVlIT09cHJldiYmb25DaGFuZ2VGbihpbm5lclZhbHVlLHByZXYpfSxbcHJldlZhbHVlXSksdXNlTGF5b3V0VXBkYXRlRWZmZWN0KGZ1bmN0aW9uKCl7aGFzVmFsdWUodmFsdWUpfHxzZXRJbm5lclZhbHVlKHZhbHVlKX0sW3ZhbHVlXSksW3Bvc3RNZXJnZWRWYWx1ZSx1c2VFdmVudChmdW5jdGlvbih1cGRhdGVyLGlnbm9yZURlc3Ryb3kpe3NldElubmVyVmFsdWUodXBkYXRlcixpZ25vcmVEZXN0cm95KSxzZXRQcmV2VmFsdWUoW21lcmdlZFZhbHVlXSxpZ25vcmVEZXN0cm95KX0pXX1fX3dlYnBhY2tfcmVxdWlyZV9fKDE3NzU2KSxTeW1ib2wuZm9yKCJyZWFjdC5lbGVtZW50IiksU3ltYm9sLmZvcigicmVhY3QudHJhbnNpdGlvbmFsLmVsZW1lbnQiKSxTeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLHJlYWN0LnZlcnNpb24uc3BsaXQoIi4iKVswXSwidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fFJlZmxlY3Qub3duS2V5czt2YXIgd2FybmVkPXt9LHByZVdhcm5pbmdGbnM9W107ZnVuY3Rpb24gd2FybmluZyh2YWxpZCxtZXNzYWdlKXt9ZnVuY3Rpb24gbm90ZSh2YWxpZCxtZXNzYWdlKXt9ZnVuY3Rpb24gY2FsbChtZXRob2QsdmFsaWQsbWVzc2FnZSl7dmFsaWR8fHdhcm5lZFttZXNzYWdlXXx8KG1ldGhvZCghMSxtZXNzYWdlKSx3YXJuZWRbbWVzc2FnZV09ITApfWZ1bmN0aW9uIHdhcm5pbmdPbmNlKHZhbGlkLG1lc3NhZ2Upe2NhbGwod2FybmluZyx2YWxpZCxtZXNzYWdlKX1mdW5jdGlvbiBvbWl0KG9iaixmaWVsZHMpe3ZhciBjbG9uZT1PYmplY3QuYXNzaWduKHt9LG9iaik7cmV0dXJuIEFycmF5LmlzQXJyYXkoZmllbGRzKSYmZmllbGRzLmZvckVhY2goZnVuY3Rpb24oa2V5KXtkZWxldGUgY2xvbmVba2V5XX0pLGNsb25lfWZ1bmN0aW9uIHR5cGVvZl90eXBlb2Yob2JqKXtyZXR1cm4odHlwZW9mX3R5cGVvZj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihvYmope3JldHVybiB0eXBlb2Ygb2JqfTpmdW5jdGlvbihvYmope3JldHVybiBvYmomJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJm9iai5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmb2JqIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2Ygb2JqfSkob2JqKX1mdW5jdGlvbiBvd25LZXlzKG9iamVjdCxlbnVtZXJhYmxlT25seSl7dmFyIGtleXM9T2JqZWN0LmtleXMob2JqZWN0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgc3ltYm9scz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7ZW51bWVyYWJsZU9ubHkmJihzeW1ib2xzPXN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uKHN5bSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LHN5bSkuZW51bWVyYWJsZX0pKSxrZXlzLnB1c2guYXBwbHkoa2V5cyxzeW1ib2xzKX1yZXR1cm4ga2V5c313YXJuaW5nT25jZS5wcmVNZXNzYWdlPWZ1bmN0aW9uKGZuKXtwcmVXYXJuaW5nRm5zLnB1c2goZm4pfSx3YXJuaW5nT25jZS5yZXNldFdhcm5lZD1mdW5jdGlvbigpe3dhcm5lZD17fX0sd2FybmluZ09uY2Uubm90ZU9uY2U9ZnVuY3Rpb24odmFsaWQsbWVzc2FnZSl7Y2FsbChub3RlLHZhbGlkLG1lc3NhZ2UpfTt2YXIgcHJvcExpc3Q9IiIuY29uY2F0KCJhY2NlcHQgYWNjZXB0Q2hhcnNldCBhY2Nlc3NLZXkgYWN0aW9uIGFsbG93RnVsbFNjcmVlbiBhbGxvd1RyYW5zcGFyZW5jeVxuICAgIGFsdCBhc3luYyBhdXRvQ29tcGxldGUgYXV0b0ZvY3VzIGF1dG9QbGF5IGNhcHR1cmUgY2VsbFBhZGRpbmcgY2VsbFNwYWNpbmcgY2hhbGxlbmdlXG4gICAgY2hhclNldCBjaGVja2VkIGNsYXNzSUQgY2xhc3NOYW1lIGNvbFNwYW4gY29scyBjb250ZW50IGNvbnRlbnRFZGl0YWJsZSBjb250ZXh0TWVudVxuICAgIGNvbnRyb2xzIGNvb3JkcyBjcm9zc09yaWdpbiBkYXRhIGRhdGVUaW1lIGRlZmF1bHQgZGVmZXIgZGlyIGRpc2FibGVkIGRvd25sb2FkIGRyYWdnYWJsZVxuICAgIGVuY1R5cGUgZm9ybSBmb3JtQWN0aW9uIGZvcm1FbmNUeXBlIGZvcm1NZXRob2QgZm9ybU5vVmFsaWRhdGUgZm9ybVRhcmdldCBmcmFtZUJvcmRlclxuICAgIGhlYWRlcnMgaGVpZ2h0IGhpZGRlbiBoaWdoIGhyZWYgaHJlZkxhbmcgaHRtbEZvciBodHRwRXF1aXYgaWNvbiBpZCBpbnB1dE1vZGUgaW50ZWdyaXR5XG4gICAgaXMga2V5UGFyYW1zIGtleVR5cGUga2luZCBsYWJlbCBsYW5nIGxpc3QgbG9vcCBsb3cgbWFuaWZlc3QgbWFyZ2luSGVpZ2h0IG1hcmdpbldpZHRoIG1heCBtYXhMZW5ndGggbWVkaWFcbiAgICBtZWRpYUdyb3VwIG1ldGhvZCBtaW4gbWluTGVuZ3RoIG11bHRpcGxlIG11dGVkIG5hbWUgbm9WYWxpZGF0ZSBub25jZSBvcGVuXG4gICAgb3B0aW11bSBwYXR0ZXJuIHBsYWNlaG9sZGVyIHBvc3RlciBwcmVsb2FkIHJhZGlvR3JvdXAgcmVhZE9ubHkgcmVsIHJlcXVpcmVkXG4gICAgcmV2ZXJzZWQgcm9sZSByb3dTcGFuIHJvd3Mgc2FuZGJveCBzY29wZSBzY29wZWQgc2Nyb2xsaW5nIHNlYW1sZXNzIHNlbGVjdGVkXG4gICAgc2hhcGUgc2l6ZSBzaXplcyBzcGFuIHNwZWxsQ2hlY2sgc3JjIHNyY0RvYyBzcmNMYW5nIHNyY1NldCBzdGFydCBzdGVwIHN0eWxlXG4gICAgc3VtbWFyeSB0YWJJbmRleCB0YXJnZXQgdGl0bGUgdHlwZSB1c2VNYXAgdmFsdWUgd2lkdGggd21vZGUgd3JhcCIsIiAiKS5jb25jYXQoIm9uQ29weSBvbkN1dCBvblBhc3RlIG9uQ29tcG9zaXRpb25FbmQgb25Db21wb3NpdGlvblN0YXJ0IG9uQ29tcG9zaXRpb25VcGRhdGUgb25LZXlEb3duXG4gICAgb25LZXlQcmVzcyBvbktleVVwIG9uRm9jdXMgb25CbHVyIG9uQ2hhbmdlIG9uSW5wdXQgb25TdWJtaXQgb25DbGljayBvbkNvbnRleHRNZW51IG9uRG91YmxlQ2xpY2tcbiAgICBvbkRyYWcgb25EcmFnRW5kIG9uRHJhZ0VudGVyIG9uRHJhZ0V4aXQgb25EcmFnTGVhdmUgb25EcmFnT3ZlciBvbkRyYWdTdGFydCBvbkRyb3Agb25Nb3VzZURvd25cbiAgICBvbk1vdXNlRW50ZXIgb25Nb3VzZUxlYXZlIG9uTW91c2VNb3ZlIG9uTW91c2VPdXQgb25Nb3VzZU92ZXIgb25Nb3VzZVVwIG9uU2VsZWN0IG9uVG91Y2hDYW5jZWxcbiAgICBvblRvdWNoRW5kIG9uVG91Y2hNb3ZlIG9uVG91Y2hTdGFydCBvblNjcm9sbCBvbldoZWVsIG9uQWJvcnQgb25DYW5QbGF5IG9uQ2FuUGxheVRocm91Z2hcbiAgICBvbkR1cmF0aW9uQ2hhbmdlIG9uRW1wdGllZCBvbkVuY3J5cHRlZCBvbkVuZGVkIG9uRXJyb3Igb25Mb2FkZWREYXRhIG9uTG9hZGVkTWV0YWRhdGFcbiAgICBvbkxvYWRTdGFydCBvblBhdXNlIG9uUGxheSBvblBsYXlpbmcgb25Qcm9ncmVzcyBvblJhdGVDaGFuZ2Ugb25TZWVrZWQgb25TZWVraW5nIG9uU3RhbGxlZCBvblN1c3BlbmQgb25UaW1lVXBkYXRlIG9uVm9sdW1lQ2hhbmdlIG9uV2FpdGluZyBvbkxvYWQgb25FcnJvciIpLnNwbGl0KC9bXHNcbl0rLyk7ZnVuY3Rpb24gbWF0Y2goa2V5LHByZWZpeCl7cmV0dXJuIDA9PT1rZXkuaW5kZXhPZihwcmVmaXgpfWZ1bmN0aW9uIHBpY2tBdHRycyhwcm9wcyl7dmFyIG1lcmdlZENvbmZpZyxhcmlhT25seT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO21lcmdlZENvbmZpZz0hMT09PWFyaWFPbmx5P3thcmlhOiEwLGRhdGE6ITAsYXR0cjohMH06ITA9PT1hcmlhT25seT97YXJpYTohMH06ZnVuY3Rpb24odGFyZ2V0KXtmb3IodmFyIGk9MTtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXt2YXIgc291cmNlPW51bGwhPWFyZ3VtZW50c1tpXT9hcmd1bWVudHNbaV06e307aSUyP293bktleXMoT2JqZWN0KHNvdXJjZSksITApLmZvckVhY2goZnVuY3Rpb24oa2V5KXshZnVuY3Rpb24ob2JqLGtleSx2YWx1ZSl7dmFyIGtleTE7a2V5MT1mdW5jdGlvbihpbnB1dCxoaW50KXtpZigib2JqZWN0IiE9PXR5cGVvZl90eXBlb2YoaW5wdXQpfHxudWxsPT09aW5wdXQpcmV0dXJuIGlucHV0O3ZhciBwcmltPWlucHV0W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09cHJpbSl7dmFyIHJlcz1wcmltLmNhbGwoaW5wdXQsaGludHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9PXR5cGVvZl90eXBlb2YocmVzKSlyZXR1cm4gcmVzO3Rocm93IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1oaW50P1N0cmluZzpOdW1iZXIpKGlucHV0KX0oa2V5LCJzdHJpbmciKSwoa2V5PSJzeW1ib2wiPT09dHlwZW9mX3R5cGVvZihrZXkxKT9rZXkxOlN0cmluZyhrZXkxKSlpbiBvYmo/T2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaixrZXkse3ZhbHVlOnZhbHVlLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6b2JqW2tleV09dmFsdWV9KHRhcmdldCxrZXksc291cmNlW2tleV0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpOm93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24oa2V5KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LGtleSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSxrZXkpKX0pfXJldHVybiB0YXJnZXR9KHt9LGFyaWFPbmx5KTt2YXIgYXR0cnM9e307cmV0dXJuIE9iamVjdC5rZXlzKHByb3BzKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSl7KG1lcmdlZENvbmZpZy5hcmlhJiYoInJvbGUiPT09a2V5fHxtYXRjaChrZXksImFyaWEtIikpfHxtZXJnZWRDb25maWcuZGF0YSYmbWF0Y2goa2V5LCJkYXRhLSIpfHxtZXJnZWRDb25maWcuYXR0ciYmcHJvcExpc3QuaW5jbHVkZXMoa2V5KSkmJihhdHRyc1trZXldPXByb3BzW2tleV0pfSksYXR0cnN9dmFyIGRlZmluZVByb3BlcnR5PV9fd2VicGFja19yZXF1aXJlX18oNTM1NTApLGVzPV9fd2VicGFja19yZXF1aXJlX18oNDAyMjgpLG5vZGVfbW9kdWxlc19jbGFzc25hbWVzPV9fd2VicGFja19yZXF1aXJlX18oOTQxODQpLG5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKG5vZGVfbW9kdWxlc19jbGFzc25hbWVzKSxQaWNrZXJDb250ZXh0PXJlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCksQlVJTFRfSU5fUExBQ0VNRU5UUz17Ym90dG9tTGVmdDp7cG9pbnRzOlsidGwiLCJibCJdLG9mZnNldDpbMCw0XSxvdmVyZmxvdzp7YWRqdXN0WDoxLGFkanVzdFk6MX19LGJvdHRvbVJpZ2h0Ontwb2ludHM6WyJ0ciIsImJyIl0sb2Zmc2V0OlswLDRdLG92ZXJmbG93OnthZGp1c3RYOjEsYWRqdXN0WToxfX0sdG9wTGVmdDp7cG9pbnRzOlsiYmwiLCJ0bCJdLG9mZnNldDpbMCwtNF0sb3ZlcmZsb3c6e2FkanVzdFg6MCxhZGp1c3RZOjF9fSx0b3BSaWdodDp7cG9pbnRzOlsiYnIiLCJ0ciJdLG9mZnNldDpbMCwtNF0sb3ZlcmZsb3c6e2FkanVzdFg6MCxhZGp1c3RZOjF9fX0sZXNfUGlja2VyVHJpZ2dlcj1mdW5jdGlvbihfcmVmKXt2YXIgcG9wdXBFbGVtZW50PV9yZWYucG9wdXBFbGVtZW50LHBvcHVwU3R5bGU9X3JlZi5wb3B1cFN0eWxlLHBvcHVwQ2xhc3NOYW1lPV9yZWYucG9wdXBDbGFzc05hbWUscG9wdXBBbGlnbj1fcmVmLnBvcHVwQWxpZ24sdHJhbnNpdGlvbk5hbWU9X3JlZi50cmFuc2l0aW9uTmFtZSxnZXRQb3B1cENvbnRhaW5lcj1fcmVmLmdldFBvcHVwQ29udGFpbmVyLGNoaWxkcmVuPV9yZWYuY2hpbGRyZW4scmFuZ2U9X3JlZi5yYW5nZSxwbGFjZW1lbnQ9X3JlZi5wbGFjZW1lbnQsX3JlZiRidWlsdGluUGxhY2VtZW50PV9yZWYuYnVpbHRpblBsYWNlbWVudHMsZGlyZWN0aW9uPV9yZWYuZGlyZWN0aW9uLHZpc2libGU9X3JlZi52aXNpYmxlLG9uQ2xvc2U9X3JlZi5vbkNsb3NlLHByZWZpeENscz1yZWFjdC51c2VDb250ZXh0KFBpY2tlckNvbnRleHQpLnByZWZpeENscyxkcm9wZG93blByZWZpeENscz0iIi5jb25jYXQocHJlZml4Q2xzLCItZHJvcGRvd24iKTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChlcy5aLHtzaG93QWN0aW9uOltdLGhpZGVBY3Rpb246WyJjbGljayJdLHBvcHVwUGxhY2VtZW50OnZvaWQgMCE9PXBsYWNlbWVudD9wbGFjZW1lbnQ6InJ0bCI9PT1kaXJlY3Rpb24/ImJvdHRvbVJpZ2h0IjoiYm90dG9tTGVmdCIsYnVpbHRpblBsYWNlbWVudHM6dm9pZCAwPT09X3JlZiRidWlsdGluUGxhY2VtZW50P0JVSUxUX0lOX1BMQUNFTUVOVFM6X3JlZiRidWlsdGluUGxhY2VtZW50LHByZWZpeENsczpkcm9wZG93blByZWZpeENscyxwb3B1cFRyYW5zaXRpb25OYW1lOnRyYW5zaXRpb25OYW1lLHBvcHVwOnBvcHVwRWxlbWVudCxwb3B1cEFsaWduOnBvcHVwQWxpZ24scG9wdXBWaXNpYmxlOnZpc2libGUscG9wdXBDbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKHBvcHVwQ2xhc3NOYW1lLCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKHt9LCIiLmNvbmNhdChkcm9wZG93blByZWZpeENscywiLXJhbmdlIikscmFuZ2UpLCIiLmNvbmNhdChkcm9wZG93blByZWZpeENscywiLXJ0bCIpLCJydGwiPT09ZGlyZWN0aW9uKSkscG9wdXBTdHlsZTpwb3B1cFN0eWxlLHN0cmV0Y2g6Im1pbldpZHRoIixnZXRQb3B1cENvbnRhaW5lcjpnZXRQb3B1cENvbnRhaW5lcixvblBvcHVwVmlzaWJsZUNoYW5nZTpmdW5jdGlvbihuZXh0VmlzaWJsZSl7bmV4dFZpc2libGV8fG9uQ2xvc2UoKX19LGNoaWxkcmVuKX07ZnVuY3Rpb24gbGVmdFBhZChzdHIsbGVuZ3RoKXtmb3IodmFyIGZpbGw9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOiIwIixjdXJyZW50PVN0cmluZyhzdHIpO2N1cnJlbnQubGVuZ3RoPGxlbmd0aDspY3VycmVudD0iIi5jb25jYXQoZmlsbCkuY29uY2F0KGN1cnJlbnQpO3JldHVybiBjdXJyZW50fWZ1bmN0aW9uIHRvQXJyYXkodmFsKXtyZXR1cm4gbnVsbD09dmFsP1tdOkFycmF5LmlzQXJyYXkodmFsKT92YWw6W3ZhbF19ZnVuY3Rpb24gZmlsbEluZGV4KG9yaSxpbmRleCx2YWx1ZSl7dmFyIGNsb25lPXRvQ29uc3VtYWJsZUFycmF5X3RvQ29uc3VtYWJsZUFycmF5KG9yaSk7cmV0dXJuIGNsb25lW2luZGV4XT12YWx1ZSxjbG9uZX1mdW5jdGlvbiBwaWNrUHJvcHMocHJvcHMsa2V5cyl7dmFyIGNsb25lPXt9O3JldHVybihrZXlzfHxPYmplY3Qua2V5cyhwcm9wcykpLmZvckVhY2goZnVuY3Rpb24oa2V5KXt2b2lkIDAhPT1wcm9wc1trZXldJiYoY2xvbmVba2V5XT1wcm9wc1trZXldKX0pLGNsb25lfWZ1bmN0aW9uIGdldFJvd0Zvcm1hdChwaWNrZXIsbG9jYWxlLGZvcm1hdCl7aWYoZm9ybWF0KXJldHVybiBmb3JtYXQ7c3dpdGNoKHBpY2tlcil7Y2FzZSJ0aW1lIjpyZXR1cm4gbG9jYWxlLmZpZWxkVGltZUZvcm1hdDtjYXNlImRhdGV0aW1lIjpyZXR1cm4gbG9jYWxlLmZpZWxkRGF0ZVRpbWVGb3JtYXQ7Y2FzZSJtb250aCI6cmV0dXJuIGxvY2FsZS5maWVsZE1vbnRoRm9ybWF0O2Nhc2UieWVhciI6cmV0dXJuIGxvY2FsZS5maWVsZFllYXJGb3JtYXQ7Y2FzZSJxdWFydGVyIjpyZXR1cm4gbG9jYWxlLmZpZWxkUXVhcnRlckZvcm1hdDtjYXNlIndlZWsiOnJldHVybiBsb2NhbGUuZmllbGRXZWVrRm9ybWF0O2RlZmF1bHQ6cmV0dXJuIGxvY2FsZS5maWVsZERhdGVGb3JtYXR9fWZ1bmN0aW9uIGdldEZyb21EYXRlKGNhbGVuZGFyVmFsdWVzLGFjdGl2ZUluZGV4TGlzdCxhY3RpdmVJbmRleCl7dmFyIG1lcmdlZEFjdGl2ZUluZGV4PXZvaWQgMCE9PWFjdGl2ZUluZGV4P2FjdGl2ZUluZGV4OmFjdGl2ZUluZGV4TGlzdFthY3RpdmVJbmRleExpc3QubGVuZ3RoLTFdLGZpcnN0VmFsdWVkSW5kZXg9YWN0aXZlSW5kZXhMaXN0LmZpbmQoZnVuY3Rpb24oaW5kZXgpe3JldHVybiBjYWxlbmRhclZhbHVlc1tpbmRleF19KTtyZXR1cm4gbWVyZ2VkQWN0aXZlSW5kZXghPT1maXJzdFZhbHVlZEluZGV4P2NhbGVuZGFyVmFsdWVzW2ZpcnN0VmFsdWVkSW5kZXhdOnZvaWQgMH1mdW5jdGlvbiBwaWNrVHJpZ2dlclByb3BzKHByb3BzKXtyZXR1cm4gcGlja1Byb3BzKHByb3BzLFsicGxhY2VtZW50IiwiYnVpbHRpblBsYWNlbWVudHMiLCJwb3B1cEFsaWduIiwiZ2V0UG9wdXBDb250YWluZXIiLCJ0cmFuc2l0aW9uTmFtZSIsImRpcmVjdGlvbiJdKX1mdW5jdGlvbiB1c2VDZWxsUmVuZGVyKGNlbGxSZW5kZXIsZGF0ZVJlbmRlcixtb250aENlbGxSZW5kZXIscmFuZ2Upe3ZhciBtZXJnZWRDZWxsUmVuZGVyPXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gY2VsbFJlbmRlcnx8ZnVuY3Rpb24oY3VycmVudCxpbmZvKXtyZXR1cm4gZGF0ZVJlbmRlciYmImRhdGUiPT09aW5mby50eXBlP2RhdGVSZW5kZXIoY3VycmVudCxpbmZvLnRvZGF5KTptb250aENlbGxSZW5kZXImJiJtb250aCI9PT1pbmZvLnR5cGU/bW9udGhDZWxsUmVuZGVyKGN1cnJlbnQsaW5mby5sb2NhbGUpOmluZm8ub3JpZ2luTm9kZX19LFtjZWxsUmVuZGVyLG1vbnRoQ2VsbFJlbmRlcixkYXRlUmVuZGVyXSk7cmV0dXJuIHJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uKGRhdGUsaW5mbyl7cmV0dXJuIG1lcmdlZENlbGxSZW5kZXIoZGF0ZSwoMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe30saW5mbykse30se3JhbmdlOnJhbmdlfSkpfSxbbWVyZ2VkQ2VsbFJlbmRlcixyYW5nZV0pfWZ1bmN0aW9uIHVzZUZpZWxkc0ludmFsaWRhdGUoY2FsZW5kYXJWYWx1ZSxpc0ludmFsaWRhdGVEYXRlKXt2YXIgYWxsb3dFbXB0eT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06W10sX1JlYWN0JHVzZVN0YXRlMj1fc2xpY2VkVG9BcnJheShyZWFjdC51c2VTdGF0ZShbITEsITFdKSwyKSxmaWVsZHNJbnZhbGlkYXRlcz1fUmVhY3QkdXNlU3RhdGUyWzBdLHNldEZpZWxkc0ludmFsaWRhdGVzPV9SZWFjdCR1c2VTdGF0ZTJbMV07cmV0dXJuW3JlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gZmllbGRzSW52YWxpZGF0ZXMubWFwKGZ1bmN0aW9uKGludmFsaWQsaW5kZXgpe2lmKGludmFsaWQpcmV0dXJuITA7dmFyIGN1cnJlbnQ9Y2FsZW5kYXJWYWx1ZVtpbmRleF07cmV0dXJuISFjdXJyZW50JiYhISghYWxsb3dFbXB0eVtpbmRleF0mJiFjdXJyZW50fHxjdXJyZW50JiZpc0ludmFsaWRhdGVEYXRlKGN1cnJlbnQse2FjdGl2ZUluZGV4OmluZGV4fSkpfSl9LFtjYWxlbmRhclZhbHVlLGZpZWxkc0ludmFsaWRhdGVzLGlzSW52YWxpZGF0ZURhdGUsYWxsb3dFbXB0eV0pLGZ1bmN0aW9uKGludmFsaWQsaW5kZXgpe3NldEZpZWxkc0ludmFsaWRhdGVzKGZ1bmN0aW9uKG9yaSl7cmV0dXJuIGZpbGxJbmRleChvcmksaW5kZXgsaW52YWxpZCl9KX1dfWZ1bmN0aW9uIGZpbGxUaW1lRm9ybWF0KHNob3dIb3VyLHNob3dNaW51dGUsc2hvd1NlY29uZCxzaG93TWlsbGlzZWNvbmQsc2hvd01lcmlkaWVtKXt2YXIgdGltZUZvcm1hdD0iIixjZWxscz1bXTtyZXR1cm4gc2hvd0hvdXImJmNlbGxzLnB1c2goc2hvd01lcmlkaWVtPyJoaCI6IkhIIiksc2hvd01pbnV0ZSYmY2VsbHMucHVzaCgibW0iKSxzaG93U2Vjb25kJiZjZWxscy5wdXNoKCJzcyIpLHRpbWVGb3JtYXQ9Y2VsbHMuam9pbigiOiIpLHNob3dNaWxsaXNlY29uZCYmKHRpbWVGb3JtYXQrPSIuU1NTIiksc2hvd01lcmlkaWVtJiYodGltZUZvcm1hdCs9IiBBIiksdGltZUZvcm1hdH1mdW5jdGlvbiB1c2VMb2NhbGUobG9jYWxlLHNob3dQcm9wcyl7dmFyIHNob3dIb3VyPXNob3dQcm9wcy5zaG93SG91cixzaG93TWludXRlPXNob3dQcm9wcy5zaG93TWludXRlLHNob3dTZWNvbmQ9c2hvd1Byb3BzLnNob3dTZWNvbmQsc2hvd01pbGxpc2Vjb25kPXNob3dQcm9wcy5zaG93TWlsbGlzZWNvbmQsdXNlMTJIb3Vycz1zaG93UHJvcHMudXNlMTJIb3VycztyZXR1cm4gcmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3ZhciBmaWVsZERhdGVUaW1lRm9ybWF0LGZpZWxkRGF0ZUZvcm1hdCxmaWVsZFRpbWVGb3JtYXQsZmllbGRNb250aEZvcm1hdCxmaWVsZFllYXJGb3JtYXQsZmllbGRXZWVrRm9ybWF0LGZpZWxkUXVhcnRlckZvcm1hdCx5ZWFyRm9ybWF0LGNlbGxZZWFyRm9ybWF0LGNlbGxRdWFydGVyRm9ybWF0LGRheUZvcm1hdCxjZWxsRGF0ZUZvcm1hdCx0aW1lRm9ybWF0O3JldHVybiBmaWVsZERhdGVUaW1lRm9ybWF0PWxvY2FsZS5maWVsZERhdGVUaW1lRm9ybWF0LGZpZWxkRGF0ZUZvcm1hdD1sb2NhbGUuZmllbGREYXRlRm9ybWF0LGZpZWxkVGltZUZvcm1hdD1sb2NhbGUuZmllbGRUaW1lRm9ybWF0LGZpZWxkTW9udGhGb3JtYXQ9bG9jYWxlLmZpZWxkTW9udGhGb3JtYXQsZmllbGRZZWFyRm9ybWF0PWxvY2FsZS5maWVsZFllYXJGb3JtYXQsZmllbGRXZWVrRm9ybWF0PWxvY2FsZS5maWVsZFdlZWtGb3JtYXQsZmllbGRRdWFydGVyRm9ybWF0PWxvY2FsZS5maWVsZFF1YXJ0ZXJGb3JtYXQseWVhckZvcm1hdD1sb2NhbGUueWVhckZvcm1hdCxjZWxsWWVhckZvcm1hdD1sb2NhbGUuY2VsbFllYXJGb3JtYXQsY2VsbFF1YXJ0ZXJGb3JtYXQ9bG9jYWxlLmNlbGxRdWFydGVyRm9ybWF0LGRheUZvcm1hdD1sb2NhbGUuZGF5Rm9ybWF0LGNlbGxEYXRlRm9ybWF0PWxvY2FsZS5jZWxsRGF0ZUZvcm1hdCx0aW1lRm9ybWF0PWZpbGxUaW1lRm9ybWF0KHNob3dIb3VyLHNob3dNaW51dGUsc2hvd1NlY29uZCxzaG93TWlsbGlzZWNvbmQsdXNlMTJIb3VycyksKDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LGxvY2FsZSkse30se2ZpZWxkRGF0ZVRpbWVGb3JtYXQ6ZmllbGREYXRlVGltZUZvcm1hdHx8IllZWVktTU0tREQgIi5jb25jYXQodGltZUZvcm1hdCksZmllbGREYXRlRm9ybWF0OmZpZWxkRGF0ZUZvcm1hdHx8IllZWVktTU0tREQiLGZpZWxkVGltZUZvcm1hdDpmaWVsZFRpbWVGb3JtYXR8fHRpbWVGb3JtYXQsZmllbGRNb250aEZvcm1hdDpmaWVsZE1vbnRoRm9ybWF0fHwiWVlZWS1NTSIsZmllbGRZZWFyRm9ybWF0OmZpZWxkWWVhckZvcm1hdHx8IllZWVkiLGZpZWxkV2Vla0Zvcm1hdDpmaWVsZFdlZWtGb3JtYXR8fCJnZ2dnLXdvIixmaWVsZFF1YXJ0ZXJGb3JtYXQ6ZmllbGRRdWFydGVyRm9ybWF0fHwiWVlZWS1bUV1RIix5ZWFyRm9ybWF0OnllYXJGb3JtYXR8fCJZWVlZIixjZWxsWWVhckZvcm1hdDpjZWxsWWVhckZvcm1hdHx8IllZWVkiLGNlbGxRdWFydGVyRm9ybWF0OmNlbGxRdWFydGVyRm9ybWF0fHwiW1FdUSIsY2VsbERhdGVGb3JtYXQ6Y2VsbERhdGVGb3JtYXR8fGRheUZvcm1hdHx8IkQifSl9LFtsb2NhbGUsc2hvd0hvdXIsc2hvd01pbnV0ZSxzaG93U2Vjb25kLHNob3dNaWxsaXNlY29uZCx1c2UxMkhvdXJzXSl9dmFyIGVzbV90eXBlb2Y9X193ZWJwYWNrX3JlcXVpcmVfXygxOTcwNik7ZnVuY3Rpb24gY2hlY2tTaG93KGZvcm1hdCxrZXl3b3JkcyxzaG93KXtyZXR1cm4gbnVsbCE9c2hvdz9zaG93OmtleXdvcmRzLnNvbWUoZnVuY3Rpb24oa2V5d29yZCl7cmV0dXJuIGZvcm1hdC5pbmNsdWRlcyhrZXl3b3JkKX0pfXZhciBzaG93VGltZUtleXM9WyJzaG93Tm93Iiwic2hvd0hvdXIiLCJzaG93TWludXRlIiwic2hvd1NlY29uZCIsInNob3dNaWxsaXNlY29uZCIsInVzZTEySG91cnMiLCJob3VyU3RlcCIsIm1pbnV0ZVN0ZXAiLCJzZWNvbmRTdGVwIiwibWlsbGlzZWNvbmRTdGVwIiwiaGlkZURpc2FibGVkT3B0aW9ucyIsImRlZmF1bHRWYWx1ZSIsImRpc2FibGVkSG91cnMiLCJkaXNhYmxlZE1pbnV0ZXMiLCJkaXNhYmxlZFNlY29uZHMiLCJkaXNhYmxlZE1pbGxpc2Vjb25kcyIsImRpc2FibGVkVGltZSIsImNoYW5nZU9uU2Nyb2xsIiwiZGVmYXVsdE9wZW5WYWx1ZSJdO2Z1bmN0aW9uIGV4aXN0U2hvd0NvbmZpZyhzaG93SG91cixzaG93TWludXRlLHNob3dTZWNvbmQsc2hvd01pbGxpc2Vjb25kKXtyZXR1cm5bc2hvd0hvdXIsc2hvd01pbnV0ZSxzaG93U2Vjb25kLHNob3dNaWxsaXNlY29uZF0uc29tZShmdW5jdGlvbihzaG93KXtyZXR1cm4gdm9pZCAwIT09c2hvd30pfWZ1bmN0aW9uIGZpbGxTaG93Q29uZmlnKGhhc1Nob3dDb25maWcsc2hvd0hvdXIsc2hvd01pbnV0ZSxzaG93U2Vjb25kLHNob3dNaWxsaXNlY29uZCl7dmFyIHBhcnNlZFNob3dIb3VyPXNob3dIb3VyLHBhcnNlZFNob3dNaW51dGU9c2hvd01pbnV0ZSxwYXJzZWRTaG93U2Vjb25kPXNob3dTZWNvbmQ7aWYoaGFzU2hvd0NvbmZpZ3x8cGFyc2VkU2hvd0hvdXJ8fHBhcnNlZFNob3dNaW51dGV8fHBhcnNlZFNob3dTZWNvbmR8fHNob3dNaWxsaXNlY29uZCl7aWYoaGFzU2hvd0NvbmZpZyl7dmFyIF9wYXJzZWRTaG93SG91cixfcGFyc2VkU2hvd01pbnV0ZSxfcGFyc2VkU2hvd1NlY29uZCxleGlzdEZhbHNlPVtwYXJzZWRTaG93SG91cixwYXJzZWRTaG93TWludXRlLHBhcnNlZFNob3dTZWNvbmRdLnNvbWUoZnVuY3Rpb24oc2hvdyl7cmV0dXJuITE9PT1zaG93fSksZXhpc3RUcnVlPVtwYXJzZWRTaG93SG91cixwYXJzZWRTaG93TWludXRlLHBhcnNlZFNob3dTZWNvbmRdLnNvbWUoZnVuY3Rpb24oc2hvdyl7cmV0dXJuITA9PT1zaG93fSksZGVmYXVsdFNob3c9ISFleGlzdEZhbHNlfHwhZXhpc3RUcnVlO3BhcnNlZFNob3dIb3VyPW51bGwhPT0oX3BhcnNlZFNob3dIb3VyPXBhcnNlZFNob3dIb3VyKSYmdm9pZCAwIT09X3BhcnNlZFNob3dIb3VyP19wYXJzZWRTaG93SG91cjpkZWZhdWx0U2hvdyxwYXJzZWRTaG93TWludXRlPW51bGwhPT0oX3BhcnNlZFNob3dNaW51dGU9cGFyc2VkU2hvd01pbnV0ZSkmJnZvaWQgMCE9PV9wYXJzZWRTaG93TWludXRlP19wYXJzZWRTaG93TWludXRlOmRlZmF1bHRTaG93LHBhcnNlZFNob3dTZWNvbmQ9bnVsbCE9PShfcGFyc2VkU2hvd1NlY29uZD1wYXJzZWRTaG93U2Vjb25kKSYmdm9pZCAwIT09X3BhcnNlZFNob3dTZWNvbmQ/X3BhcnNlZFNob3dTZWNvbmQ6ZGVmYXVsdFNob3d9fWVsc2UgcGFyc2VkU2hvd0hvdXI9ITAscGFyc2VkU2hvd01pbnV0ZT0hMCxwYXJzZWRTaG93U2Vjb25kPSEwO3JldHVybltwYXJzZWRTaG93SG91cixwYXJzZWRTaG93TWludXRlLHBhcnNlZFNob3dTZWNvbmQsc2hvd01pbGxpc2Vjb25kXX1mdW5jdGlvbiBnZXRUaW1lUHJvcHMoY29tcG9uZW50UHJvcHMpe3ZhciB0aW1lUHJvcHMsZm9ybWF0LHBpY2tlcixwcm9wRm9ybWF0LHNob3dUaW1lPWNvbXBvbmVudFByb3BzLnNob3dUaW1lLF9waWNrVGltZVByb3BzMj1fc2xpY2VkVG9BcnJheSgodGltZVByb3BzPXBpY2tQcm9wcyhjb21wb25lbnRQcm9wcyxzaG93VGltZUtleXMpLGZvcm1hdD1jb21wb25lbnRQcm9wcy5mb3JtYXQscGlja2VyPWNvbXBvbmVudFByb3BzLnBpY2tlcixwcm9wRm9ybWF0PW51bGwsZm9ybWF0JiYoQXJyYXkuaXNBcnJheShwcm9wRm9ybWF0PWZvcm1hdCkmJihwcm9wRm9ybWF0PXByb3BGb3JtYXRbMF0pLHByb3BGb3JtYXQ9Im9iamVjdCI9PT0oMCxlc21fdHlwZW9mLlopKHByb3BGb3JtYXQpP3Byb3BGb3JtYXQuZm9ybWF0OnByb3BGb3JtYXQpLCJ0aW1lIj09PXBpY2tlciYmKHRpbWVQcm9wcy5mb3JtYXQ9cHJvcEZvcm1hdCksW3RpbWVQcm9wcyxwcm9wRm9ybWF0XSksMikscGlja2VkUHJvcHM9X3BpY2tUaW1lUHJvcHMyWzBdLHByb3BGb3JtYXQxPV9waWNrVGltZVByb3BzMlsxXSxzaG93VGltZUNvbmZpZz1zaG93VGltZSYmIm9iamVjdCI9PT0oMCxlc21fdHlwZW9mLlopKHNob3dUaW1lKT9zaG93VGltZTp7fSx0aW1lQ29uZmlnPSgwLG9iamVjdFNwcmVhZDIuWikoKDAsb2JqZWN0U3ByZWFkMi5aKSh7ZGVmYXVsdE9wZW5WYWx1ZTpzaG93VGltZUNvbmZpZy5kZWZhdWx0T3BlblZhbHVlfHxzaG93VGltZUNvbmZpZy5kZWZhdWx0VmFsdWV9LHBpY2tlZFByb3BzKSxzaG93VGltZUNvbmZpZyksc2hvd01pbGxpc2Vjb25kPXRpbWVDb25maWcuc2hvd01pbGxpc2Vjb25kLHNob3dIb3VyPXRpbWVDb25maWcuc2hvd0hvdXIsc2hvd01pbnV0ZT10aW1lQ29uZmlnLnNob3dNaW51dGUsc2hvd1NlY29uZD10aW1lQ29uZmlnLnNob3dTZWNvbmQsX2ZpbGxTaG93Q29uZmlnMj1fc2xpY2VkVG9BcnJheShmaWxsU2hvd0NvbmZpZyhleGlzdFNob3dDb25maWcoc2hvd0hvdXIsc2hvd01pbnV0ZSxzaG93U2Vjb25kLHNob3dNaWxsaXNlY29uZCksc2hvd0hvdXIsc2hvd01pbnV0ZSxzaG93U2Vjb25kLHNob3dNaWxsaXNlY29uZCksMyk7cmV0dXJuIHNob3dIb3VyPV9maWxsU2hvd0NvbmZpZzJbMF0sc2hvd01pbnV0ZT1fZmlsbFNob3dDb25maWcyWzFdLHNob3dTZWNvbmQ9X2ZpbGxTaG93Q29uZmlnMlsyXSxbdGltZUNvbmZpZywoMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe30sdGltZUNvbmZpZykse30se3Nob3dIb3VyOnNob3dIb3VyLHNob3dNaW51dGU6c2hvd01pbnV0ZSxzaG93U2Vjb25kOnNob3dTZWNvbmQsc2hvd01pbGxpc2Vjb25kOnNob3dNaWxsaXNlY29uZH0pLHRpbWVDb25maWcuZm9ybWF0LHByb3BGb3JtYXQxXX1mdW5jdGlvbiBmaWxsU2hvd1RpbWVDb25maWcocGlja2VyLHNob3dUaW1lRm9ybWF0LHByb3BGb3JtYXQsdGltZUNvbmZpZyxsb2NhbGUpe2lmKCJkYXRldGltZSI9PT1waWNrZXJ8fCJ0aW1lIj09PXBpY2tlcil7Zm9yKHZhciBiYXNlbGluZUZvcm1hdD1nZXRSb3dGb3JtYXQocGlja2VyLGxvY2FsZSxudWxsKSxmb3JtYXRMaXN0PVtzaG93VGltZUZvcm1hdCxwcm9wRm9ybWF0XSxpPTA7aTxmb3JtYXRMaXN0Lmxlbmd0aDtpKz0xKXt2YXIgZm9ybWF0PXRvQXJyYXkoZm9ybWF0TGlzdFtpXSlbMF07aWYoZm9ybWF0JiYic3RyaW5nIj09dHlwZW9mIGZvcm1hdCl7YmFzZWxpbmVGb3JtYXQ9Zm9ybWF0O2JyZWFrfX12YXIgc2hvd0hvdXI9dGltZUNvbmZpZy5zaG93SG91cixzaG93TWludXRlPXRpbWVDb25maWcuc2hvd01pbnV0ZSxzaG93U2Vjb25kPXRpbWVDb25maWcuc2hvd1NlY29uZCxzaG93TWlsbGlzZWNvbmQ9dGltZUNvbmZpZy5zaG93TWlsbGlzZWNvbmQsc2hvd01lcmlkaWVtPWNoZWNrU2hvdyhiYXNlbGluZUZvcm1hdCxbImEiLCJBIiwiTFQiLCJMTEwiLCJMVFMiXSx0aW1lQ29uZmlnLnVzZTEySG91cnMpLGhhc1Nob3dDb25maWc9ZXhpc3RTaG93Q29uZmlnKHNob3dIb3VyLHNob3dNaW51dGUsc2hvd1NlY29uZCxzaG93TWlsbGlzZWNvbmQpO2hhc1Nob3dDb25maWd8fChzaG93SG91cj1jaGVja1Nob3coYmFzZWxpbmVGb3JtYXQsWyJIIiwiaCIsImsiLCJMVCIsIkxMTCJdKSxzaG93TWludXRlPWNoZWNrU2hvdyhiYXNlbGluZUZvcm1hdCxbIm0iLCJMVCIsIkxMTCJdKSxzaG93U2Vjb25kPWNoZWNrU2hvdyhiYXNlbGluZUZvcm1hdCxbInMiLCJMVFMiXSksc2hvd01pbGxpc2Vjb25kPWNoZWNrU2hvdyhiYXNlbGluZUZvcm1hdCxbIlNTUyJdKSk7dmFyIF9maWxsU2hvd0NvbmZpZzQ9X3NsaWNlZFRvQXJyYXkoZmlsbFNob3dDb25maWcoaGFzU2hvd0NvbmZpZyxzaG93SG91cixzaG93TWludXRlLHNob3dTZWNvbmQsc2hvd01pbGxpc2Vjb25kKSwzKTtzaG93SG91cj1fZmlsbFNob3dDb25maWc0WzBdLHNob3dNaW51dGU9X2ZpbGxTaG93Q29uZmlnNFsxXSxzaG93U2Vjb25kPV9maWxsU2hvd0NvbmZpZzRbMl07dmFyIHRpbWVGb3JtYXQ9c2hvd1RpbWVGb3JtYXR8fGZpbGxUaW1lRm9ybWF0KHNob3dIb3VyLHNob3dNaW51dGUsc2hvd1NlY29uZCxzaG93TWlsbGlzZWNvbmQsc2hvd01lcmlkaWVtKTtyZXR1cm4oMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe30sdGltZUNvbmZpZykse30se2Zvcm1hdDp0aW1lRm9ybWF0LHNob3dIb3VyOnNob3dIb3VyLHNob3dNaW51dGU6c2hvd01pbnV0ZSxzaG93U2Vjb25kOnNob3dTZWNvbmQsc2hvd01pbGxpc2Vjb25kOnNob3dNaWxsaXNlY29uZCx1c2UxMkhvdXJzOnNob3dNZXJpZGllbX0pfXJldHVybiBudWxsfWZ1bmN0aW9uIG51bGxhYmxlQ29tcGFyZSh2YWx1ZTEsdmFsdWUyLG9yaUNvbXBhcmVGbil7cmV0dXJuIXZhbHVlMSYmIXZhbHVlMnx8dmFsdWUxPT09dmFsdWUyfHwhIXZhbHVlMSYmISF2YWx1ZTImJm9yaUNvbXBhcmVGbigpfWZ1bmN0aW9uIGlzU2FtZURlY2FkZShnZW5lcmF0ZUNvbmZpZyxkZWNhZGUxLGRlY2FkZTIpe3JldHVybiBudWxsYWJsZUNvbXBhcmUoZGVjYWRlMSxkZWNhZGUyLGZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguZmxvb3IoZ2VuZXJhdGVDb25maWcuZ2V0WWVhcihkZWNhZGUxKS8xMCk9PT1NYXRoLmZsb29yKGdlbmVyYXRlQ29uZmlnLmdldFllYXIoZGVjYWRlMikvMTApfSl9ZnVuY3Rpb24gaXNTYW1lWWVhcihnZW5lcmF0ZUNvbmZpZyx5ZWFyMSx5ZWFyMil7cmV0dXJuIG51bGxhYmxlQ29tcGFyZSh5ZWFyMSx5ZWFyMixmdW5jdGlvbigpe3JldHVybiBnZW5lcmF0ZUNvbmZpZy5nZXRZZWFyKHllYXIxKT09PWdlbmVyYXRlQ29uZmlnLmdldFllYXIoeWVhcjIpfSl9ZnVuY3Rpb24gZ2V0UXVhcnRlcihnZW5lcmF0ZUNvbmZpZyxkYXRlKXtyZXR1cm4gTWF0aC5mbG9vcihnZW5lcmF0ZUNvbmZpZy5nZXRNb250aChkYXRlKS8zKSsxfWZ1bmN0aW9uIGlzU2FtZU1vbnRoKGdlbmVyYXRlQ29uZmlnLG1vbnRoMSxtb250aDIpe3JldHVybiBudWxsYWJsZUNvbXBhcmUobW9udGgxLG1vbnRoMixmdW5jdGlvbigpe3JldHVybiBpc1NhbWVZZWFyKGdlbmVyYXRlQ29uZmlnLG1vbnRoMSxtb250aDIpJiZnZW5lcmF0ZUNvbmZpZy5nZXRNb250aChtb250aDEpPT09Z2VuZXJhdGVDb25maWcuZ2V0TW9udGgobW9udGgyKX0pfWZ1bmN0aW9uIGlzU2FtZURhdGUoZ2VuZXJhdGVDb25maWcsZGF0ZTEsZGF0ZTIpe3JldHVybiBudWxsYWJsZUNvbXBhcmUoZGF0ZTEsZGF0ZTIsZnVuY3Rpb24oKXtyZXR1cm4gaXNTYW1lWWVhcihnZW5lcmF0ZUNvbmZpZyxkYXRlMSxkYXRlMikmJmlzU2FtZU1vbnRoKGdlbmVyYXRlQ29uZmlnLGRhdGUxLGRhdGUyKSYmZ2VuZXJhdGVDb25maWcuZ2V0RGF0ZShkYXRlMSk9PT1nZW5lcmF0ZUNvbmZpZy5nZXREYXRlKGRhdGUyKX0pfWZ1bmN0aW9uIGlzU2FtZVRpbWUoZ2VuZXJhdGVDb25maWcsdGltZTEsdGltZTIpe3JldHVybiBudWxsYWJsZUNvbXBhcmUodGltZTEsdGltZTIsZnVuY3Rpb24oKXtyZXR1cm4gZ2VuZXJhdGVDb25maWcuZ2V0SG91cih0aW1lMSk9PT1nZW5lcmF0ZUNvbmZpZy5nZXRIb3VyKHRpbWUyKSYmZ2VuZXJhdGVDb25maWcuZ2V0TWludXRlKHRpbWUxKT09PWdlbmVyYXRlQ29uZmlnLmdldE1pbnV0ZSh0aW1lMikmJmdlbmVyYXRlQ29uZmlnLmdldFNlY29uZCh0aW1lMSk9PT1nZW5lcmF0ZUNvbmZpZy5nZXRTZWNvbmQodGltZTIpfSl9ZnVuY3Rpb24gaXNTYW1lVGltZXN0YW1wKGdlbmVyYXRlQ29uZmlnLHRpbWUxLHRpbWUyKXtyZXR1cm4gbnVsbGFibGVDb21wYXJlKHRpbWUxLHRpbWUyLGZ1bmN0aW9uKCl7cmV0dXJuIGlzU2FtZURhdGUoZ2VuZXJhdGVDb25maWcsdGltZTEsdGltZTIpJiZpc1NhbWVUaW1lKGdlbmVyYXRlQ29uZmlnLHRpbWUxLHRpbWUyKSYmZ2VuZXJhdGVDb25maWcuZ2V0TWlsbGlzZWNvbmQodGltZTEpPT09Z2VuZXJhdGVDb25maWcuZ2V0TWlsbGlzZWNvbmQodGltZTIpfSl9ZnVuY3Rpb24gaXNTYW1lV2VlayhnZW5lcmF0ZUNvbmZpZyxsb2NhbGUsZGF0ZTEsZGF0ZTIpe3JldHVybiBudWxsYWJsZUNvbXBhcmUoZGF0ZTEsZGF0ZTIsZnVuY3Rpb24oKXt2YXIgd2Vla1N0YXJ0RGF0ZTE9Z2VuZXJhdGVDb25maWcubG9jYWxlLmdldFdlZWtGaXJzdERhdGUobG9jYWxlLGRhdGUxKSx3ZWVrU3RhcnREYXRlMj1nZW5lcmF0ZUNvbmZpZy5sb2NhbGUuZ2V0V2Vla0ZpcnN0RGF0ZShsb2NhbGUsZGF0ZTIpO3JldHVybiBpc1NhbWVZZWFyKGdlbmVyYXRlQ29uZmlnLHdlZWtTdGFydERhdGUxLHdlZWtTdGFydERhdGUyKSYmZ2VuZXJhdGVDb25maWcubG9jYWxlLmdldFdlZWsobG9jYWxlLGRhdGUxKT09PWdlbmVyYXRlQ29uZmlnLmxvY2FsZS5nZXRXZWVrKGxvY2FsZSxkYXRlMil9KX1mdW5jdGlvbiBpc1NhbWUoZ2VuZXJhdGVDb25maWcsbG9jYWxlLHNvdXJjZSx0YXJnZXQsdHlwZSl7c3dpdGNoKHR5cGUpe2Nhc2UiZGF0ZSI6cmV0dXJuIGlzU2FtZURhdGUoZ2VuZXJhdGVDb25maWcsc291cmNlLHRhcmdldCk7Y2FzZSJ3ZWVrIjpyZXR1cm4gaXNTYW1lV2VlayhnZW5lcmF0ZUNvbmZpZyxsb2NhbGUubG9jYWxlLHNvdXJjZSx0YXJnZXQpO2Nhc2UibW9udGgiOnJldHVybiBpc1NhbWVNb250aChnZW5lcmF0ZUNvbmZpZyxzb3VyY2UsdGFyZ2V0KTtjYXNlInF1YXJ0ZXIiOnJldHVybiBudWxsYWJsZUNvbXBhcmUoc291cmNlLHRhcmdldCxmdW5jdGlvbigpe3JldHVybiBpc1NhbWVZZWFyKGdlbmVyYXRlQ29uZmlnLHNvdXJjZSx0YXJnZXQpJiZnZXRRdWFydGVyKGdlbmVyYXRlQ29uZmlnLHNvdXJjZSk9PT1nZXRRdWFydGVyKGdlbmVyYXRlQ29uZmlnLHRhcmdldCl9KTtjYXNlInllYXIiOnJldHVybiBpc1NhbWVZZWFyKGdlbmVyYXRlQ29uZmlnLHNvdXJjZSx0YXJnZXQpO2Nhc2UiZGVjYWRlIjpyZXR1cm4gaXNTYW1lRGVjYWRlKGdlbmVyYXRlQ29uZmlnLHNvdXJjZSx0YXJnZXQpO2Nhc2UidGltZSI6cmV0dXJuIGlzU2FtZVRpbWUoZ2VuZXJhdGVDb25maWcsc291cmNlLHRhcmdldCk7ZGVmYXVsdDpyZXR1cm4gaXNTYW1lVGltZXN0YW1wKGdlbmVyYXRlQ29uZmlnLHNvdXJjZSx0YXJnZXQpfX1mdW5jdGlvbiBpc0luUmFuZ2UoZ2VuZXJhdGVDb25maWcsc3RhcnREYXRlLGVuZERhdGUsY3VycmVudCl7cmV0dXJuISFzdGFydERhdGUmJiEhZW5kRGF0ZSYmISFjdXJyZW50JiZnZW5lcmF0ZUNvbmZpZy5pc0FmdGVyKGN1cnJlbnQsc3RhcnREYXRlKSYmZ2VuZXJhdGVDb25maWcuaXNBZnRlcihlbmREYXRlLGN1cnJlbnQpfWZ1bmN0aW9uIGlzU2FtZU9yQWZ0ZXIoZ2VuZXJhdGVDb25maWcsbG9jYWxlLGRhdGUxLGRhdGUyLHR5cGUpe3JldHVybiEhaXNTYW1lKGdlbmVyYXRlQ29uZmlnLGxvY2FsZSxkYXRlMSxkYXRlMix0eXBlKXx8Z2VuZXJhdGVDb25maWcuaXNBZnRlcihkYXRlMSxkYXRlMil9ZnVuY3Rpb24gZm9ybWF0VmFsdWUodmFsdWUsX3JlZil7dmFyIGdlbmVyYXRlQ29uZmlnPV9yZWYuZ2VuZXJhdGVDb25maWcsbG9jYWxlPV9yZWYubG9jYWxlLGZvcm1hdD1fcmVmLmZvcm1hdDtyZXR1cm4gdmFsdWU/ImZ1bmN0aW9uIj09dHlwZW9mIGZvcm1hdD9mb3JtYXQodmFsdWUpOmdlbmVyYXRlQ29uZmlnLmxvY2FsZS5mb3JtYXQobG9jYWxlLmxvY2FsZSx2YWx1ZSxmb3JtYXQpOiIifWZ1bmN0aW9uIGZpbGxUaW1lKGdlbmVyYXRlQ29uZmlnLGRhdGUsdGltZSl7dmFyIHRtcERhdGU9ZGF0ZSxnZXRGbj1bImdldEhvdXIiLCJnZXRNaW51dGUiLCJnZXRTZWNvbmQiLCJnZXRNaWxsaXNlY29uZCJdO3JldHVyblsic2V0SG91ciIsInNldE1pbnV0ZSIsInNldFNlY29uZCIsInNldE1pbGxpc2Vjb25kIl0uZm9yRWFjaChmdW5jdGlvbihmbixpbmRleCl7dG1wRGF0ZT10aW1lP2dlbmVyYXRlQ29uZmlnW2ZuXSh0bXBEYXRlLGdlbmVyYXRlQ29uZmlnW2dldEZuW2luZGV4XV0odGltZSkpOmdlbmVyYXRlQ29uZmlnW2ZuXSh0bXBEYXRlLDApfSksdG1wRGF0ZX1mdW5jdGlvbiB1c2VMaXN0KHZhbHVlKXt2YXIgZmlsbE1vZGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtyZXR1cm4gcmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3ZhciBsaXN0PXZhbHVlP3RvQXJyYXkodmFsdWUpOnZhbHVlO3JldHVybiBmaWxsTW9kZSYmbGlzdCYmKGxpc3RbMV09bGlzdFsxXXx8bGlzdFswXSksbGlzdH0sW3ZhbHVlLGZpbGxNb2RlXSl9ZnVuY3Rpb24gdXNlRmlsbGVkUHJvcHMocHJvcHMsdXBkYXRlcil7dmFyIGdlbmVyYXRlQ29uZmlnPXByb3BzLmdlbmVyYXRlQ29uZmlnLGxvY2FsZT1wcm9wcy5sb2NhbGUsX3Byb3BzJHBpY2tlcj1wcm9wcy5waWNrZXIscGlja2VyPXZvaWQgMD09PV9wcm9wcyRwaWNrZXI/ImRhdGUiOl9wcm9wcyRwaWNrZXIsX3Byb3BzJHByZWZpeENscz1wcm9wcy5wcmVmaXhDbHMscHJlZml4Q2xzPXZvaWQgMD09PV9wcm9wcyRwcmVmaXhDbHM/InJjLXBpY2tlciI6X3Byb3BzJHByZWZpeENscyxfcHJvcHMkc3R5bGVzPXByb3BzLnN0eWxlcyxzdHlsZXM9dm9pZCAwPT09X3Byb3BzJHN0eWxlcz97fTpfcHJvcHMkc3R5bGVzLF9wcm9wcyRjbGFzc05hbWVzPXByb3BzLmNsYXNzTmFtZXMsY2xhc3NOYW1lcz12b2lkIDA9PT1fcHJvcHMkY2xhc3NOYW1lcz97fTpfcHJvcHMkY2xhc3NOYW1lcyxfcHJvcHMkb3JkZXI9cHJvcHMub3JkZXIsb3JkZXI9dm9pZCAwPT09X3Byb3BzJG9yZGVyfHxfcHJvcHMkb3JkZXIsX3Byb3BzJGNvbXBvbmVudHM9cHJvcHMuY29tcG9uZW50cyxjb21wb25lbnRzPXZvaWQgMD09PV9wcm9wcyRjb21wb25lbnRzP3t9Ol9wcm9wcyRjb21wb25lbnRzLGlucHV0UmVuZGVyPXByb3BzLmlucHV0UmVuZGVyLGFsbG93Q2xlYXI9cHJvcHMuYWxsb3dDbGVhcixjbGVhckljb249cHJvcHMuY2xlYXJJY29uLG5lZWRDb25maXJtPXByb3BzLm5lZWRDb25maXJtLG11bHRpcGxlPXByb3BzLm11bHRpcGxlLGZvcm1hdD1wcm9wcy5mb3JtYXQsaW5wdXRSZWFkT25seT1wcm9wcy5pbnB1dFJlYWRPbmx5LGRpc2FibGVkRGF0ZT1wcm9wcy5kaXNhYmxlZERhdGUsbWluRGF0ZT1wcm9wcy5taW5EYXRlLG1heERhdGU9cHJvcHMubWF4RGF0ZSxzaG93VGltZT1wcm9wcy5zaG93VGltZSx2YWx1ZT1wcm9wcy52YWx1ZSxkZWZhdWx0VmFsdWU9cHJvcHMuZGVmYXVsdFZhbHVlLHBpY2tlclZhbHVlPXByb3BzLnBpY2tlclZhbHVlLGRlZmF1bHRQaWNrZXJWYWx1ZT1wcm9wcy5kZWZhdWx0UGlja2VyVmFsdWUsdmFsdWVzPXVzZUxpc3QodmFsdWUpLGRlZmF1bHRWYWx1ZXM9dXNlTGlzdChkZWZhdWx0VmFsdWUpLHBpY2tlclZhbHVlcz11c2VMaXN0KHBpY2tlclZhbHVlKSxkZWZhdWx0UGlja2VyVmFsdWVzPXVzZUxpc3QoZGVmYXVsdFBpY2tlclZhbHVlKSxpbnRlcm5hbFBpY2tlcj0iZGF0ZSI9PT1waWNrZXImJnNob3dUaW1lPyJkYXRldGltZSI6cGlja2VyLG11bHRpcGxlSW50ZXJhY3RpdmVQaWNrZXI9InRpbWUiPT09aW50ZXJuYWxQaWNrZXJ8fCJkYXRldGltZSI9PT1pbnRlcm5hbFBpY2tlcixtZXJnZWROZWVkQ29uZmlybT1udWxsIT1uZWVkQ29uZmlybT9uZWVkQ29uZmlybTptdWx0aXBsZUludGVyYWN0aXZlUGlja2VyLF9nZXRUaW1lUHJvcHMyPV9zbGljZWRUb0FycmF5KGdldFRpbWVQcm9wcyhwcm9wcyksNCksdGltZVByb3BzPV9nZXRUaW1lUHJvcHMyWzBdLGxvY2FsZVRpbWVQcm9wcz1fZ2V0VGltZVByb3BzMlsxXSxzaG93VGltZUZvcm1hdD1fZ2V0VGltZVByb3BzMlsyXSxwcm9wRm9ybWF0PV9nZXRUaW1lUHJvcHMyWzNdLG1lcmdlZExvY2FsZT11c2VMb2NhbGUobG9jYWxlLGxvY2FsZVRpbWVQcm9wcyksbWVyZ2VkU2hvd1RpbWU9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBmaWxsU2hvd1RpbWVDb25maWcoaW50ZXJuYWxQaWNrZXIsc2hvd1RpbWVGb3JtYXQscHJvcEZvcm1hdCx0aW1lUHJvcHMsbWVyZ2VkTG9jYWxlKX0sW2ludGVybmFsUGlja2VyLHNob3dUaW1lRm9ybWF0LHByb3BGb3JtYXQsdGltZVByb3BzLG1lcmdlZExvY2FsZV0pLGZpbGxlZFByb3BzPXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4oMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe30scHJvcHMpLHt9LHtwcmVmaXhDbHM6cHJlZml4Q2xzLGxvY2FsZTptZXJnZWRMb2NhbGUscGlja2VyOnBpY2tlcixzdHlsZXM6c3R5bGVzLGNsYXNzTmFtZXM6Y2xhc3NOYW1lcyxvcmRlcjpvcmRlcixjb21wb25lbnRzOigwLG9iamVjdFNwcmVhZDIuWikoe2lucHV0OmlucHV0UmVuZGVyfSxjb21wb25lbnRzKSxjbGVhckljb246ITE9PT1hbGxvd0NsZWFyP251bGw6KGFsbG93Q2xlYXImJiJvYmplY3QiPT09KDAsZXNtX3R5cGVvZi5aKShhbGxvd0NsZWFyKT9hbGxvd0NsZWFyOnt9KS5jbGVhckljb258fGNsZWFySWNvbnx8cmVhY3QuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItY2xlYXItYnRuIil9KSxzaG93VGltZTptZXJnZWRTaG93VGltZSx2YWx1ZTp2YWx1ZXMsZGVmYXVsdFZhbHVlOmRlZmF1bHRWYWx1ZXMscGlja2VyVmFsdWU6cGlja2VyVmFsdWVzLGRlZmF1bHRQaWNrZXJWYWx1ZTpkZWZhdWx0UGlja2VyVmFsdWVzfSxudWxsPT11cGRhdGVyP3ZvaWQgMDp1cGRhdGVyKCkpfSxbcHJvcHNdKSxfdXNlRmllbGRGb3JtYXQyPV9zbGljZWRUb0FycmF5KHJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgZm9ybWF0TGlzdD10b0FycmF5KGdldFJvd0Zvcm1hdChpbnRlcm5hbFBpY2tlcixtZXJnZWRMb2NhbGUsZm9ybWF0KSksZmlyc3RGb3JtYXQ9Zm9ybWF0TGlzdFswXSxtYXNrRm9ybWF0PSJvYmplY3QiPT09KDAsZXNtX3R5cGVvZi5aKShmaXJzdEZvcm1hdCkmJiJtYXNrIj09PWZpcnN0Rm9ybWF0LnR5cGU/Zmlyc3RGb3JtYXQuZm9ybWF0Om51bGw7cmV0dXJuW2Zvcm1hdExpc3QubWFwKGZ1bmN0aW9uKGNvbmZpZyl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBjb25maWd8fCJmdW5jdGlvbiI9PXR5cGVvZiBjb25maWc/Y29uZmlnOmNvbmZpZy5mb3JtYXR9KSxtYXNrRm9ybWF0XX0sW2ludGVybmFsUGlja2VyLG1lcmdlZExvY2FsZSxmb3JtYXRdKSwyKSxmb3JtYXRMaXN0PV91c2VGaWVsZEZvcm1hdDJbMF0sbWFza0Zvcm1hdD1fdXNlRmllbGRGb3JtYXQyWzFdLG1lcmdlZElucHV0UmVhZE9ubHk9ImZ1bmN0aW9uIj09dHlwZW9mIGZvcm1hdExpc3RbMF18fCEhbXVsdGlwbGV8fGlucHV0UmVhZE9ubHksZGlzYWJsZWRCb3VuZGFyeURhdGU9dXNlRXZlbnQoZnVuY3Rpb24oZGF0ZSxpbmZvKXtyZXR1cm4hIShkaXNhYmxlZERhdGUmJmRpc2FibGVkRGF0ZShkYXRlLGluZm8pfHxtaW5EYXRlJiZnZW5lcmF0ZUNvbmZpZy5pc0FmdGVyKG1pbkRhdGUsZGF0ZSkmJiFpc1NhbWUoZ2VuZXJhdGVDb25maWcsbG9jYWxlLG1pbkRhdGUsZGF0ZSxpbmZvLnR5cGUpfHxtYXhEYXRlJiZnZW5lcmF0ZUNvbmZpZy5pc0FmdGVyKGRhdGUsbWF4RGF0ZSkmJiFpc1NhbWUoZ2VuZXJhdGVDb25maWcsbG9jYWxlLG1heERhdGUsZGF0ZSxpbmZvLnR5cGUpKX0pLGlzSW52YWxpZGF0ZURhdGU9dXNlRXZlbnQoZnVuY3Rpb24oZGF0ZSxpbmZvKXt2YXIgb3V0c2lkZUluZm89KDAsb2JqZWN0U3ByZWFkMi5aKSh7dHlwZTpwaWNrZXJ9LGluZm8pO2lmKGRlbGV0ZSBvdXRzaWRlSW5mby5hY3RpdmVJbmRleCwhZ2VuZXJhdGVDb25maWcuaXNWYWxpZGF0ZShkYXRlKXx8ZGlzYWJsZWRCb3VuZGFyeURhdGUmJmRpc2FibGVkQm91bmRhcnlEYXRlKGRhdGUsb3V0c2lkZUluZm8pKXJldHVybiEwO2lmKCgiZGF0ZSI9PT1waWNrZXJ8fCJ0aW1lIj09PXBpY2tlcikmJm1lcmdlZFNob3dUaW1lKXt2YXIgX3Nob3dUaW1lJGRpc2FibGVkVGltLHJhbmdlPWluZm8mJjE9PT1pbmZvLmFjdGl2ZUluZGV4PyJlbmQiOiJzdGFydCIsX3JlZj0obnVsbD09PShfc2hvd1RpbWUkZGlzYWJsZWRUaW09bWVyZ2VkU2hvd1RpbWUuZGlzYWJsZWRUaW1lKXx8dm9pZCAwPT09X3Nob3dUaW1lJGRpc2FibGVkVGltP3ZvaWQgMDpfc2hvd1RpbWUkZGlzYWJsZWRUaW0uY2FsbChtZXJnZWRTaG93VGltZSxkYXRlLHJhbmdlLHtmcm9tOm91dHNpZGVJbmZvLmZyb219KSl8fHt9LGRpc2FibGVkSG91cnM9X3JlZi5kaXNhYmxlZEhvdXJzLGRpc2FibGVkTWludXRlcz1fcmVmLmRpc2FibGVkTWludXRlcyxkaXNhYmxlZFNlY29uZHM9X3JlZi5kaXNhYmxlZFNlY29uZHMsZGlzYWJsZWRNaWxsaXNlY29uZHM9X3JlZi5kaXNhYmxlZE1pbGxpc2Vjb25kcyxsZWdhY3lEaXNhYmxlZEhvdXJzPW1lcmdlZFNob3dUaW1lLmRpc2FibGVkSG91cnMsbGVnYWN5RGlzYWJsZWRNaW51dGVzPW1lcmdlZFNob3dUaW1lLmRpc2FibGVkTWludXRlcyxsZWdhY3lEaXNhYmxlZFNlY29uZHM9bWVyZ2VkU2hvd1RpbWUuZGlzYWJsZWRTZWNvbmRzLG1lcmdlZERpc2FibGVkSG91cnM9ZGlzYWJsZWRIb3Vyc3x8bGVnYWN5RGlzYWJsZWRIb3VycyxtZXJnZWREaXNhYmxlZE1pbnV0ZXM9ZGlzYWJsZWRNaW51dGVzfHxsZWdhY3lEaXNhYmxlZE1pbnV0ZXMsbWVyZ2VkRGlzYWJsZWRTZWNvbmRzPWRpc2FibGVkU2Vjb25kc3x8bGVnYWN5RGlzYWJsZWRTZWNvbmRzLGhvdXI9Z2VuZXJhdGVDb25maWcuZ2V0SG91cihkYXRlKSxtaW51dGU9Z2VuZXJhdGVDb25maWcuZ2V0TWludXRlKGRhdGUpLHNlY29uZD1nZW5lcmF0ZUNvbmZpZy5nZXRTZWNvbmQoZGF0ZSksbWlsbGlzZWNvbmQ9Z2VuZXJhdGVDb25maWcuZ2V0TWlsbGlzZWNvbmQoZGF0ZSk7aWYobWVyZ2VkRGlzYWJsZWRIb3VycyYmbWVyZ2VkRGlzYWJsZWRIb3VycygpLmluY2x1ZGVzKGhvdXIpfHxtZXJnZWREaXNhYmxlZE1pbnV0ZXMmJm1lcmdlZERpc2FibGVkTWludXRlcyhob3VyKS5pbmNsdWRlcyhtaW51dGUpfHxtZXJnZWREaXNhYmxlZFNlY29uZHMmJm1lcmdlZERpc2FibGVkU2Vjb25kcyhob3VyLG1pbnV0ZSkuaW5jbHVkZXMoc2Vjb25kKXx8ZGlzYWJsZWRNaWxsaXNlY29uZHMmJmRpc2FibGVkTWlsbGlzZWNvbmRzKGhvdXIsbWludXRlLHNlY29uZCkuaW5jbHVkZXMobWlsbGlzZWNvbmQpKXJldHVybiEwfXJldHVybiExfSk7cmV0dXJuW3JlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4oMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe30sZmlsbGVkUHJvcHMpLHt9LHtuZWVkQ29uZmlybTptZXJnZWROZWVkQ29uZmlybSxpbnB1dFJlYWRPbmx5Om1lcmdlZElucHV0UmVhZE9ubHksZGlzYWJsZWREYXRlOmRpc2FibGVkQm91bmRhcnlEYXRlfSl9LFtmaWxsZWRQcm9wcyxtZXJnZWROZWVkQ29uZmlybSxtZXJnZWRJbnB1dFJlYWRPbmx5LGRpc2FibGVkQm91bmRhcnlEYXRlXSksaW50ZXJuYWxQaWNrZXIsbXVsdGlwbGVJbnRlcmFjdGl2ZVBpY2tlcnx8bXVsdGlwbGUsZm9ybWF0TGlzdCxtYXNrRm9ybWF0LGlzSW52YWxpZGF0ZURhdGVdfXZhciByYWY9ZnVuY3Rpb24oY2FsbGJhY2spe3JldHVybitzZXRUaW1lb3V0KGNhbGxiYWNrLDE2KX0sY2FmPWZ1bmN0aW9uKG51bSl7cmV0dXJuIGNsZWFyVGltZW91dChudW0pfTsidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmInJlcXVlc3RBbmltYXRpb25GcmFtZSJpbiB3aW5kb3cmJihyYWY9ZnVuY3Rpb24oY2FsbGJhY2spe3JldHVybiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrKX0sY2FmPWZ1bmN0aW9uKGhhbmRsZSl7cmV0dXJuIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShoYW5kbGUpfSk7dmFyIHJhZlVVSUQ9MCxyYWZJZHM9bmV3IE1hcCx3cmFwcGVyUmFmPWZ1bmN0aW9uKGNhbGxiYWNrKXt2YXIgdGltZXM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjEsaWQ9cmFmVVVJRCs9MTtyZXR1cm4hZnVuY3Rpb24gY2FsbFJlZihsZWZ0VGltZXMpe2lmKDA9PT1sZWZ0VGltZXMpcmFmSWRzLmRlbGV0ZShpZCksY2FsbGJhY2soKTtlbHNle3ZhciByZWFsSWQ9cmFmKGZ1bmN0aW9uKCl7Y2FsbFJlZihsZWZ0VGltZXMtMSl9KTtyYWZJZHMuc2V0KGlkLHJlYWxJZCl9fSh0aW1lcyksaWR9O2Z1bmN0aW9uIHVzZU9wZW4ob3BlbixkZWZhdWx0T3Blbil7dmFyIHZhbHVlLF91c2VNZXJnZWRTdGF0ZTIsc3RhdGUsc2V0U3RhdGUsbmV4dFZhbHVlUmVmLHJhZlJlZixjYW5jZWxSYWYsZG9VcGRhdGUsdXBkYXRlVmFsdWUsZGlzYWJsZWRMaXN0PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpbXSxvbk9wZW5DaGFuZ2U9YXJndW1lbnRzLmxlbmd0aD4zP2FyZ3VtZW50c1szXTp2b2lkIDAsX3VzZURlbGF5U3RhdGU9KHN0YXRlPShfdXNlTWVyZ2VkU3RhdGUyPV9zbGljZWRUb0FycmF5KHVzZU1lcmdlZFN0YXRlKGRlZmF1bHRPcGVufHwhMSx7dmFsdWU6dmFsdWU9IWRpc2FibGVkTGlzdC5ldmVyeShmdW5jdGlvbihkaXNhYmxlZCl7cmV0dXJuIGRpc2FibGVkfSkmJm9wZW59KSwyKSlbMF0sc2V0U3RhdGU9X3VzZU1lcmdlZFN0YXRlMlsxXSxuZXh0VmFsdWVSZWY9cmVhY3QudXNlUmVmKHZhbHVlKSxyYWZSZWY9cmVhY3QudXNlUmVmKCksY2FuY2VsUmFmPWZ1bmN0aW9uKCl7d3JhcHBlclJhZi5jYW5jZWwocmFmUmVmLmN1cnJlbnQpfSxkb1VwZGF0ZT11c2VFdmVudChmdW5jdGlvbigpe3NldFN0YXRlKG5leHRWYWx1ZVJlZi5jdXJyZW50KSxvbk9wZW5DaGFuZ2UmJnN0YXRlIT09bmV4dFZhbHVlUmVmLmN1cnJlbnQmJm9uT3BlbkNoYW5nZShuZXh0VmFsdWVSZWYuY3VycmVudCl9KSx1cGRhdGVWYWx1ZT11c2VFdmVudChmdW5jdGlvbihuZXh0LGltbWVkaWF0ZWx5KXtjYW5jZWxSYWYoKSxuZXh0VmFsdWVSZWYuY3VycmVudD1uZXh0LG5leHR8fGltbWVkaWF0ZWx5P2RvVXBkYXRlKCk6cmFmUmVmLmN1cnJlbnQ9d3JhcHBlclJhZihkb1VwZGF0ZSl9KSxyZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24oKXtyZXR1cm4gY2FuY2VsUmFmfSxbXSksW3N0YXRlLHVwZGF0ZVZhbHVlXSksX3VzZURlbGF5U3RhdGUyPV9zbGljZWRUb0FycmF5KF91c2VEZWxheVN0YXRlLDIpLHJhZk9wZW49X3VzZURlbGF5U3RhdGUyWzBdLHNldFJhZk9wZW49X3VzZURlbGF5U3RhdGUyWzFdO3JldHVybltyYWZPcGVuLGZ1bmN0aW9uKG5leHQpe3ZhciBjb25maWc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9OyghY29uZmlnLmluaGVyaXR8fHJhZk9wZW4pJiZzZXRSYWZPcGVuKG5leHQsY29uZmlnLmZvcmNlKX1dfWZ1bmN0aW9uIHVzZVBpY2tlclJlZihyZWYpe3ZhciBzZWxlY3RvclJlZj1yZWFjdC51c2VSZWYoKTtyZXR1cm4gcmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsZnVuY3Rpb24oKXt2YXIgX3NlbGVjdG9yUmVmJGN1cnJlbnQ7cmV0dXJue25hdGl2ZUVsZW1lbnQ6bnVsbD09PShfc2VsZWN0b3JSZWYkY3VycmVudD1zZWxlY3RvclJlZi5jdXJyZW50KXx8dm9pZCAwPT09X3NlbGVjdG9yUmVmJGN1cnJlbnQ/dm9pZCAwOl9zZWxlY3RvclJlZiRjdXJyZW50Lm5hdGl2ZUVsZW1lbnQsZm9jdXM6ZnVuY3Rpb24ob3B0aW9ucyl7dmFyIF9zZWxlY3RvclJlZiRjdXJyZW50MjtudWxsPT09KF9zZWxlY3RvclJlZiRjdXJyZW50Mj1zZWxlY3RvclJlZi5jdXJyZW50KXx8dm9pZCAwPT09X3NlbGVjdG9yUmVmJGN1cnJlbnQyfHxfc2VsZWN0b3JSZWYkY3VycmVudDIuZm9jdXMob3B0aW9ucyl9LGJsdXI6ZnVuY3Rpb24oKXt2YXIgX3NlbGVjdG9yUmVmJGN1cnJlbnQzO251bGw9PT0oX3NlbGVjdG9yUmVmJGN1cnJlbnQzPXNlbGVjdG9yUmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1fc2VsZWN0b3JSZWYkY3VycmVudDN8fF9zZWxlY3RvclJlZiRjdXJyZW50My5ibHVyKCl9fX0pLHNlbGVjdG9yUmVmfWZ1bmN0aW9uIHVzZVByZXNldHMocHJlc2V0cyxsZWdhY3lSYW5nZXMpe3JldHVybiByZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIHByZXNldHN8fChsZWdhY3lSYW5nZXM/KHdhcm5pbmdPbmNlKCExLCJgcmFuZ2VzYCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIGBwcmVzZXRzYCBpbnN0ZWFkLiIpLE9iamVjdC5lbnRyaWVzKGxlZ2FjeVJhbmdlcykubWFwKGZ1bmN0aW9uKF9yZWYpe3ZhciBfcmVmMj1fc2xpY2VkVG9BcnJheShfcmVmLDIpO3JldHVybntsYWJlbDpfcmVmMlswXSx2YWx1ZTpfcmVmMlsxXX19KSk6W10pfSxbcHJlc2V0cyxsZWdhY3lSYW5nZXNdKX1mdW5jdGlvbiB1c2VMb2NrRWZmZWN0KGNvbmRpdGlvbixjYWxsYmFjayl7dmFyIGRlbGF5RnJhbWVzPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToxLGNhbGxiYWNrUmVmPXJlYWN0LnVzZVJlZihjYWxsYmFjayk7Y2FsbGJhY2tSZWYuY3VycmVudD1jYWxsYmFjayx1c2VMYXlvdXRVcGRhdGVFZmZlY3QoZnVuY3Rpb24oKXtpZihjb25kaXRpb24pY2FsbGJhY2tSZWYuY3VycmVudChjb25kaXRpb24pO2Vsc2V7dmFyIGlkPXdyYXBwZXJSYWYoZnVuY3Rpb24oKXtjYWxsYmFja1JlZi5jdXJyZW50KGNvbmRpdGlvbil9LGRlbGF5RnJhbWVzKTtyZXR1cm4gZnVuY3Rpb24oKXt3cmFwcGVyUmFmLmNhbmNlbChpZCl9fX0sW2NvbmRpdGlvbl0pfWZ1bmN0aW9uIHVzZVJhbmdlQWN0aXZlKGRpc2FibGVkKXt2YXIgZW1wdHk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOltdLG1lcmdlZE9wZW49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXSxfUmVhY3QkdXNlU3RhdGUyPV9zbGljZWRUb0FycmF5KHJlYWN0LnVzZVN0YXRlKDApLDIpLGFjdGl2ZUluZGV4PV9SZWFjdCR1c2VTdGF0ZTJbMF0sc2V0QWN0aXZlSW5kZXg9X1JlYWN0JHVzZVN0YXRlMlsxXSxfUmVhY3QkdXNlU3RhdGU0PV9zbGljZWRUb0FycmF5KHJlYWN0LnVzZVN0YXRlKCExKSwyKSxmb2N1c2VkPV9SZWFjdCR1c2VTdGF0ZTRbMF0sc2V0Rm9jdXNlZD1fUmVhY3QkdXNlU3RhdGU0WzFdLGFjdGl2ZUxpc3RSZWY9cmVhY3QudXNlUmVmKFtdKSxzdWJtaXRJbmRleFJlZj1yZWFjdC51c2VSZWYobnVsbCksbGFzdE9wZXJhdGlvblJlZj1yZWFjdC51c2VSZWYobnVsbCksdXBkYXRlU3VibWl0SW5kZXg9ZnVuY3Rpb24oaW5kZXgpe3N1Ym1pdEluZGV4UmVmLmN1cnJlbnQ9aW5kZXh9O3JldHVybiB1c2VMb2NrRWZmZWN0KGZvY3VzZWR8fG1lcmdlZE9wZW4sZnVuY3Rpb24oKXtmb2N1c2VkfHwoYWN0aXZlTGlzdFJlZi5jdXJyZW50PVtdLHVwZGF0ZVN1Ym1pdEluZGV4KG51bGwpKX0pLHJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbigpe2ZvY3VzZWQmJmFjdGl2ZUxpc3RSZWYuY3VycmVudC5wdXNoKGFjdGl2ZUluZGV4KX0sW2ZvY3VzZWQsYWN0aXZlSW5kZXhdKSxbZm9jdXNlZCxmdW5jdGlvbihuZXh0Rm9jdXMpe3NldEZvY3VzZWQobmV4dEZvY3VzKX0sZnVuY3Rpb24odHlwZSl7cmV0dXJuIHR5cGUmJihsYXN0T3BlcmF0aW9uUmVmLmN1cnJlbnQ9dHlwZSksbGFzdE9wZXJhdGlvblJlZi5jdXJyZW50fSxhY3RpdmVJbmRleCxzZXRBY3RpdmVJbmRleCxmdW5jdGlvbihuZXh0VmFsdWUpe3ZhciBsaXN0PWFjdGl2ZUxpc3RSZWYuY3VycmVudCxmaWxsZWRBY3RpdmVTZXQ9bmV3IFNldChsaXN0LmZpbHRlcihmdW5jdGlvbihpbmRleCl7cmV0dXJuIG5leHRWYWx1ZVtpbmRleF18fGVtcHR5W2luZGV4XX0pKSxuZXh0SW5kZXg9MD09PWxpc3RbbGlzdC5sZW5ndGgtMV0/MTowO3JldHVybiBmaWxsZWRBY3RpdmVTZXQuc2l6ZT49Mnx8ZGlzYWJsZWRbbmV4dEluZGV4XT9udWxsOm5leHRJbmRleH0sYWN0aXZlTGlzdFJlZi5jdXJyZW50LHVwZGF0ZVN1Ym1pdEluZGV4LGZ1bmN0aW9uKGluZGV4KXtyZXR1cm4gc3VibWl0SW5kZXhSZWYuY3VycmVudD09PWluZGV4fV19ZnVuY3Rpb24gb2Zmc2V0UGFuZWxEYXRlKGdlbmVyYXRlQ29uZmlnLHBpY2tlcixkYXRlLG9mZnNldCl7c3dpdGNoKHBpY2tlcil7Y2FzZSJkYXRlIjpjYXNlIndlZWsiOnJldHVybiBnZW5lcmF0ZUNvbmZpZy5hZGRNb250aChkYXRlLG9mZnNldCk7Y2FzZSJtb250aCI6Y2FzZSJxdWFydGVyIjpyZXR1cm4gZ2VuZXJhdGVDb25maWcuYWRkWWVhcihkYXRlLG9mZnNldCk7Y2FzZSJ5ZWFyIjpyZXR1cm4gZ2VuZXJhdGVDb25maWcuYWRkWWVhcihkYXRlLDEwKm9mZnNldCk7Y2FzZSJkZWNhZGUiOnJldHVybiBnZW5lcmF0ZUNvbmZpZy5hZGRZZWFyKGRhdGUsMTAwKm9mZnNldCk7ZGVmYXVsdDpyZXR1cm4gZGF0ZX19d3JhcHBlclJhZi5jYW5jZWw9ZnVuY3Rpb24oaWQpe3ZhciByZWFsSWQ9cmFmSWRzLmdldChpZCk7cmV0dXJuIHJhZklkcy5kZWxldGUoaWQpLGNhZihyZWFsSWQpfTt2YXIgRU1QVFlfTElTVD1bXTtmdW5jdGlvbiB1c2VSYW5nZVBpY2tlclZhbHVlKGdlbmVyYXRlQ29uZmlnLGxvY2FsZSxjYWxlbmRhclZhbHVlLG1vZGVzLG9wZW4sYWN0aXZlSW5kZXgscGlja2VyTW9kZSxtdWx0aXBsZVBhbmVsKXt2YXIgZGVmYXVsdFBpY2tlclZhbHVlPWFyZ3VtZW50cy5sZW5ndGg+OCYmdm9pZCAwIT09YXJndW1lbnRzWzhdP2FyZ3VtZW50c1s4XTpFTVBUWV9MSVNULHBpY2tlclZhbHVlPWFyZ3VtZW50cy5sZW5ndGg+OSYmdm9pZCAwIT09YXJndW1lbnRzWzldP2FyZ3VtZW50c1s5XTpFTVBUWV9MSVNULHRpbWVEZWZhdWx0VmFsdWU9YXJndW1lbnRzLmxlbmd0aD4xMCYmdm9pZCAwIT09YXJndW1lbnRzWzEwXT9hcmd1bWVudHNbMTBdOkVNUFRZX0xJU1Qsb25QaWNrZXJWYWx1ZUNoYW5nZT1hcmd1bWVudHMubGVuZ3RoPjExP2FyZ3VtZW50c1sxMV06dm9pZCAwLG1pbkRhdGU9YXJndW1lbnRzLmxlbmd0aD4xMj9hcmd1bWVudHNbMTJdOnZvaWQgMCxtYXhEYXRlPWFyZ3VtZW50cy5sZW5ndGg+MTM/YXJndW1lbnRzWzEzXTp2b2lkIDAsaXNUaW1lUGlja2VyPSJ0aW1lIj09PXBpY2tlck1vZGUsbWVyZ2VkQWN0aXZlSW5kZXg9YWN0aXZlSW5kZXh8fDAsZ2V0RGVmYXVsdFBpY2tlclZhbHVlPWZ1bmN0aW9uKGluZGV4KXt2YXIgbm93PWdlbmVyYXRlQ29uZmlnLmdldE5vdygpO3JldHVybiBpc1RpbWVQaWNrZXImJihub3c9ZmlsbFRpbWUoZ2VuZXJhdGVDb25maWcsbm93KSksZGVmYXVsdFBpY2tlclZhbHVlW2luZGV4XXx8Y2FsZW5kYXJWYWx1ZVtpbmRleF18fG5vd30sX3BpY2tlclZhbHVlPV9zbGljZWRUb0FycmF5KHBpY2tlclZhbHVlLDIpLHN0YXJ0UGlja2VyVmFsdWU9X3BpY2tlclZhbHVlWzBdLGVuZFBpY2tlclZhbHVlPV9waWNrZXJWYWx1ZVsxXSxfdXNlTWVyZ2VkU3RhdGUyPV9zbGljZWRUb0FycmF5KHVzZU1lcmdlZFN0YXRlKGZ1bmN0aW9uKCl7cmV0dXJuIGdldERlZmF1bHRQaWNrZXJWYWx1ZSgwKX0se3ZhbHVlOnN0YXJ0UGlja2VyVmFsdWV9KSwyKSxtZXJnZWRTdGFydFBpY2tlclZhbHVlPV91c2VNZXJnZWRTdGF0ZTJbMF0sc2V0U3RhcnRQaWNrZXJWYWx1ZT1fdXNlTWVyZ2VkU3RhdGUyWzFdLF91c2VNZXJnZWRTdGF0ZTQ9X3NsaWNlZFRvQXJyYXkodXNlTWVyZ2VkU3RhdGUoZnVuY3Rpb24oKXtyZXR1cm4gZ2V0RGVmYXVsdFBpY2tlclZhbHVlKDEpfSx7dmFsdWU6ZW5kUGlja2VyVmFsdWV9KSwyKSxtZXJnZWRFbmRQaWNrZXJWYWx1ZT1fdXNlTWVyZ2VkU3RhdGU0WzBdLHNldEVuZFBpY2tlclZhbHVlPV91c2VNZXJnZWRTdGF0ZTRbMV0sY3VycmVudFBpY2tlclZhbHVlPXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgY3VycmVudD1bbWVyZ2VkU3RhcnRQaWNrZXJWYWx1ZSxtZXJnZWRFbmRQaWNrZXJWYWx1ZV1bbWVyZ2VkQWN0aXZlSW5kZXhdO3JldHVybiBpc1RpbWVQaWNrZXI/Y3VycmVudDpmaWxsVGltZShnZW5lcmF0ZUNvbmZpZyxjdXJyZW50LHRpbWVEZWZhdWx0VmFsdWVbbWVyZ2VkQWN0aXZlSW5kZXhdKX0sW2lzVGltZVBpY2tlcixtZXJnZWRTdGFydFBpY2tlclZhbHVlLG1lcmdlZEVuZFBpY2tlclZhbHVlLG1lcmdlZEFjdGl2ZUluZGV4LGdlbmVyYXRlQ29uZmlnLHRpbWVEZWZhdWx0VmFsdWVdKSxzZXRDdXJyZW50UGlja2VyVmFsdWU9ZnVuY3Rpb24obmV4dFBpY2tlclZhbHVlKXt2YXIgc291cmNlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToicGFuZWwiOygwLFtzZXRTdGFydFBpY2tlclZhbHVlLHNldEVuZFBpY2tlclZhbHVlXVttZXJnZWRBY3RpdmVJbmRleF0pKG5leHRQaWNrZXJWYWx1ZSk7dmFyIGNsb25lPVttZXJnZWRTdGFydFBpY2tlclZhbHVlLG1lcmdlZEVuZFBpY2tlclZhbHVlXTtjbG9uZVttZXJnZWRBY3RpdmVJbmRleF09bmV4dFBpY2tlclZhbHVlLCFvblBpY2tlclZhbHVlQ2hhbmdlfHxpc1NhbWUoZ2VuZXJhdGVDb25maWcsbG9jYWxlLG1lcmdlZFN0YXJ0UGlja2VyVmFsdWUsY2xvbmVbMF0scGlja2VyTW9kZSkmJmlzU2FtZShnZW5lcmF0ZUNvbmZpZyxsb2NhbGUsbWVyZ2VkRW5kUGlja2VyVmFsdWUsY2xvbmVbMV0scGlja2VyTW9kZSl8fG9uUGlja2VyVmFsdWVDaGFuZ2UoY2xvbmUse3NvdXJjZTpzb3VyY2UscmFuZ2U6MT09PW1lcmdlZEFjdGl2ZUluZGV4PyJlbmQiOiJzdGFydCIsbW9kZTptb2Rlc30pfSxnZXRFbmREYXRlUGlja2VyVmFsdWU9ZnVuY3Rpb24oc3RhcnREYXRlLGVuZERhdGUpe2lmKG11bHRpcGxlUGFuZWwpe3ZhciBtb2RlPXtkYXRlOiJtb250aCIsd2VlazoibW9udGgiLG1vbnRoOiJ5ZWFyIixxdWFydGVyOiJ5ZWFyIn1bcGlja2VyTW9kZV07aWYobW9kZSYmIWlzU2FtZShnZW5lcmF0ZUNvbmZpZyxsb2NhbGUsc3RhcnREYXRlLGVuZERhdGUsbW9kZSl8fCJ5ZWFyIj09PXBpY2tlck1vZGUmJnN0YXJ0RGF0ZSYmTWF0aC5mbG9vcihnZW5lcmF0ZUNvbmZpZy5nZXRZZWFyKHN0YXJ0RGF0ZSkvMTApIT09TWF0aC5mbG9vcihnZW5lcmF0ZUNvbmZpZy5nZXRZZWFyKGVuZERhdGUpLzEwKSlyZXR1cm4gb2Zmc2V0UGFuZWxEYXRlKGdlbmVyYXRlQ29uZmlnLHBpY2tlck1vZGUsZW5kRGF0ZSwtMSl9cmV0dXJuIGVuZERhdGV9LHByZXZBY3RpdmVJbmRleFJlZj1yZWFjdC51c2VSZWYobnVsbCk7cmV0dXJuIHVzZUxheW91dEVmZmVjdChmdW5jdGlvbigpe2lmKG9wZW4mJiFkZWZhdWx0UGlja2VyVmFsdWVbbWVyZ2VkQWN0aXZlSW5kZXhdKXt2YXIgbmV4dFBpY2tlclZhbHVlPWlzVGltZVBpY2tlcj9udWxsOmdlbmVyYXRlQ29uZmlnLmdldE5vdygpO2lmKG51bGwhPT1wcmV2QWN0aXZlSW5kZXhSZWYuY3VycmVudCYmcHJldkFjdGl2ZUluZGV4UmVmLmN1cnJlbnQhPT1tZXJnZWRBY3RpdmVJbmRleD9uZXh0UGlja2VyVmFsdWU9W21lcmdlZFN0YXJ0UGlja2VyVmFsdWUsbWVyZ2VkRW5kUGlja2VyVmFsdWVdWzFebWVyZ2VkQWN0aXZlSW5kZXhdOmNhbGVuZGFyVmFsdWVbbWVyZ2VkQWN0aXZlSW5kZXhdP25leHRQaWNrZXJWYWx1ZT0wPT09bWVyZ2VkQWN0aXZlSW5kZXg/Y2FsZW5kYXJWYWx1ZVswXTpnZXRFbmREYXRlUGlja2VyVmFsdWUoY2FsZW5kYXJWYWx1ZVswXSxjYWxlbmRhclZhbHVlWzFdKTpjYWxlbmRhclZhbHVlWzFebWVyZ2VkQWN0aXZlSW5kZXhdJiYobmV4dFBpY2tlclZhbHVlPWNhbGVuZGFyVmFsdWVbMV5tZXJnZWRBY3RpdmVJbmRleF0pLG5leHRQaWNrZXJWYWx1ZSl7bWluRGF0ZSYmZ2VuZXJhdGVDb25maWcuaXNBZnRlcihtaW5EYXRlLG5leHRQaWNrZXJWYWx1ZSkmJihuZXh0UGlja2VyVmFsdWU9bWluRGF0ZSk7dmFyIG9mZnNldFBpY2tlclZhbHVlPW11bHRpcGxlUGFuZWw/b2Zmc2V0UGFuZWxEYXRlKGdlbmVyYXRlQ29uZmlnLHBpY2tlck1vZGUsbmV4dFBpY2tlclZhbHVlLDEpOm5leHRQaWNrZXJWYWx1ZTttYXhEYXRlJiZnZW5lcmF0ZUNvbmZpZy5pc0FmdGVyKG9mZnNldFBpY2tlclZhbHVlLG1heERhdGUpJiYobmV4dFBpY2tlclZhbHVlPW11bHRpcGxlUGFuZWw/b2Zmc2V0UGFuZWxEYXRlKGdlbmVyYXRlQ29uZmlnLHBpY2tlck1vZGUsbWF4RGF0ZSwtMSk6bWF4RGF0ZSksc2V0Q3VycmVudFBpY2tlclZhbHVlKG5leHRQaWNrZXJWYWx1ZSwicmVzZXQiKX19fSxbb3BlbixtZXJnZWRBY3RpdmVJbmRleCxjYWxlbmRhclZhbHVlW21lcmdlZEFjdGl2ZUluZGV4XV0pLHJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbigpe29wZW4/cHJldkFjdGl2ZUluZGV4UmVmLmN1cnJlbnQ9bWVyZ2VkQWN0aXZlSW5kZXg6cHJldkFjdGl2ZUluZGV4UmVmLmN1cnJlbnQ9bnVsbH0sW29wZW4sbWVyZ2VkQWN0aXZlSW5kZXhdKSx1c2VMYXlvdXRFZmZlY3QoZnVuY3Rpb24oKXtvcGVuJiZkZWZhdWx0UGlja2VyVmFsdWUmJmRlZmF1bHRQaWNrZXJWYWx1ZVttZXJnZWRBY3RpdmVJbmRleF0mJnNldEN1cnJlbnRQaWNrZXJWYWx1ZShkZWZhdWx0UGlja2VyVmFsdWVbbWVyZ2VkQWN0aXZlSW5kZXhdLCJyZXNldCIpfSxbb3BlbixtZXJnZWRBY3RpdmVJbmRleF0pLFtjdXJyZW50UGlja2VyVmFsdWUsc2V0Q3VycmVudFBpY2tlclZhbHVlXX1mdW5jdGlvbiB1c2VTeW5jU3RhdGUoZGVmYXVsdFZhbHVlLGNvbnRyb2xsZWRWYWx1ZSl7dmFyIHZhbHVlUmVmPXJlYWN0LnVzZVJlZihkZWZhdWx0VmFsdWUpLGZvcmNlVXBkYXRlPV9zbGljZWRUb0FycmF5KHJlYWN0LnVzZVN0YXRlKHt9KSwyKVsxXSxnZXR0ZXI9ZnVuY3Rpb24odXNlQ29udHJvbGxlZFZhbHVlRmlyc3Qpe3JldHVybiB1c2VDb250cm9sbGVkVmFsdWVGaXJzdCYmdm9pZCAwIT09Y29udHJvbGxlZFZhbHVlP2NvbnRyb2xsZWRWYWx1ZTp2YWx1ZVJlZi5jdXJyZW50fTtyZXR1cm5bZ2V0dGVyLGZ1bmN0aW9uKG5leHRWYWx1ZSl7dmFsdWVSZWYuY3VycmVudD1uZXh0VmFsdWUsZm9yY2VVcGRhdGUoe30pfSxnZXR0ZXIoITApXX12YXIgRU1QVFlfVkFMVUU9W107ZnVuY3Rpb24gdXNlVXRpbChnZW5lcmF0ZUNvbmZpZyxsb2NhbGUsZm9ybWF0TGlzdCl7cmV0dXJuW2Z1bmN0aW9uKGRhdGVzKXtyZXR1cm4gZGF0ZXMubWFwKGZ1bmN0aW9uKGRhdGUpe3JldHVybiBmb3JtYXRWYWx1ZShkYXRlLHtnZW5lcmF0ZUNvbmZpZzpnZW5lcmF0ZUNvbmZpZyxsb2NhbGU6bG9jYWxlLGZvcm1hdDpmb3JtYXRMaXN0WzBdfSl9KX0sZnVuY3Rpb24oc291cmNlLHRhcmdldCl7Zm9yKHZhciBtYXhMZW49TWF0aC5tYXgoc291cmNlLmxlbmd0aCx0YXJnZXQubGVuZ3RoKSxkaWZmSW5kZXg9LTEsaT0wO2k8bWF4TGVuO2krPTEpe3ZhciBwcmV2PXNvdXJjZVtpXXx8bnVsbCxuZXh0PXRhcmdldFtpXXx8bnVsbDtpZihwcmV2IT09bmV4dCYmIWlzU2FtZVRpbWVzdGFtcChnZW5lcmF0ZUNvbmZpZyxwcmV2LG5leHQpKXtkaWZmSW5kZXg9aTticmVha319cmV0dXJuW2RpZmZJbmRleDwwLDAhPT1kaWZmSW5kZXhdfV19ZnVuY3Rpb24gb3JkZXJEYXRlcyhkYXRlcyxnZW5lcmF0ZUNvbmZpZyl7cmV0dXJuIHRvQ29uc3VtYWJsZUFycmF5X3RvQ29uc3VtYWJsZUFycmF5KGRhdGVzKS5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGdlbmVyYXRlQ29uZmlnLmlzQWZ0ZXIoYSxiKT8xOi0xfSl9ZnVuY3Rpb24gdXNlSW5uZXJWYWx1ZShnZW5lcmF0ZUNvbmZpZyxsb2NhbGUsZm9ybWF0TGlzdCxyYW5nZVZhbHVlLG9yZGVyLGRlZmF1bHRWYWx1ZSx2YWx1ZSxvbkNhbGVuZGFyQ2hhbmdlLG9uT2spe3ZhciBfdXNlU3luY1N0YXRlMixjYWxlbmRhclZhbHVlLHNldENhbGVuZGFyVmFsdWUsc3luY1dpdGhWYWx1ZSxfdXNlTWVyZ2VkU3RhdGUyPV9zbGljZWRUb0FycmF5KHVzZU1lcmdlZFN0YXRlKGRlZmF1bHRWYWx1ZSx7dmFsdWU6dmFsdWV9KSwyKSxpbm5lclZhbHVlPV91c2VNZXJnZWRTdGF0ZTJbMF0sc2V0SW5uZXJWYWx1ZT1fdXNlTWVyZ2VkU3RhdGUyWzFdLG1lcmdlZFZhbHVlPWlubmVyVmFsdWV8fEVNUFRZX1ZBTFVFLF91c2VDYWxlbmRhclZhbHVlPShjYWxlbmRhclZhbHVlPShfdXNlU3luY1N0YXRlMj1fc2xpY2VkVG9BcnJheSh1c2VTeW5jU3RhdGUobWVyZ2VkVmFsdWUpLDIpKVswXSxzZXRDYWxlbmRhclZhbHVlPV91c2VTeW5jU3RhdGUyWzFdLHN5bmNXaXRoVmFsdWU9dXNlRXZlbnQoZnVuY3Rpb24oKXtzZXRDYWxlbmRhclZhbHVlKG1lcmdlZFZhbHVlKX0pLHJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbigpe3N5bmNXaXRoVmFsdWUoKX0sW21lcmdlZFZhbHVlXSksW2NhbGVuZGFyVmFsdWUsc2V0Q2FsZW5kYXJWYWx1ZV0pLF91c2VDYWxlbmRhclZhbHVlMj1fc2xpY2VkVG9BcnJheShfdXNlQ2FsZW5kYXJWYWx1ZSwyKSxjYWxlbmRhclZhbHVlMT1fdXNlQ2FsZW5kYXJWYWx1ZTJbMF0sc2V0Q2FsZW5kYXJWYWx1ZTE9X3VzZUNhbGVuZGFyVmFsdWUyWzFdLF91c2VVdGlsMj1fc2xpY2VkVG9BcnJheSh1c2VVdGlsKGdlbmVyYXRlQ29uZmlnLGxvY2FsZSxmb3JtYXRMaXN0KSwyKSxnZXREYXRlVGV4dHM9X3VzZVV0aWwyWzBdLGlzU2FtZURhdGVzPV91c2VVdGlsMlsxXSx0cmlnZ2VyQ2FsZW5kYXJDaGFuZ2U9dXNlRXZlbnQoZnVuY3Rpb24obmV4dENhbGVuZGFyVmFsdWVzKXt2YXIgY2xvbmU9dG9Db25zdW1hYmxlQXJyYXlfdG9Db25zdW1hYmxlQXJyYXkobmV4dENhbGVuZGFyVmFsdWVzKTtpZihyYW5nZVZhbHVlKWZvcih2YXIgaT0wO2k8MjtpKz0xKWNsb25lW2ldPWNsb25lW2ldfHxudWxsO2Vsc2Ugb3JkZXImJihjbG9uZT1vcmRlckRhdGVzKGNsb25lLmZpbHRlcihmdW5jdGlvbihkYXRlKXtyZXR1cm4gZGF0ZX0pLGdlbmVyYXRlQ29uZmlnKSk7dmFyIF9pc1NhbWVEYXRlczI9X3NsaWNlZFRvQXJyYXkoaXNTYW1lRGF0ZXMoY2FsZW5kYXJWYWx1ZTEoKSxjbG9uZSksMiksaXNTYW1lTWVyZ2VkRGF0ZXM9X2lzU2FtZURhdGVzMlswXSxpc1NhbWVTdGFydD1faXNTYW1lRGF0ZXMyWzFdO2lmKCFpc1NhbWVNZXJnZWREYXRlcyYmKHNldENhbGVuZGFyVmFsdWUxKGNsb25lKSxvbkNhbGVuZGFyQ2hhbmdlKSl7dmFyIGNlbGxUZXh0cz1nZXREYXRlVGV4dHMoY2xvbmUpO29uQ2FsZW5kYXJDaGFuZ2UoY2xvbmUsY2VsbFRleHRzLHtyYW5nZTppc1NhbWVTdGFydD8iZW5kIjoic3RhcnQifSl9fSk7cmV0dXJuW21lcmdlZFZhbHVlLHNldElubmVyVmFsdWUsY2FsZW5kYXJWYWx1ZTEsdHJpZ2dlckNhbGVuZGFyQ2hhbmdlLGZ1bmN0aW9uKCl7b25PayYmb25PayhjYWxlbmRhclZhbHVlMSgpKX1dfWZ1bmN0aW9uIHVzZVJhbmdlVmFsdWUoaW5mbyxtZXJnZWRWYWx1ZSxzZXRJbm5lclZhbHVlLGdldENhbGVuZGFyVmFsdWUsdHJpZ2dlckNhbGVuZGFyQ2hhbmdlLGRpc2FibGVkLGZvcm1hdExpc3QsZm9jdXNlZCxvcGVuLGlzSW52YWxpZGF0ZURhdGUpe3ZhciBnZW5lcmF0ZUNvbmZpZz1pbmZvLmdlbmVyYXRlQ29uZmlnLGxvY2FsZT1pbmZvLmxvY2FsZSxwaWNrZXI9aW5mby5waWNrZXIsb25DaGFuZ2U9aW5mby5vbkNoYW5nZSxhbGxvd0VtcHR5PWluZm8uYWxsb3dFbXB0eSxvcmRlcj1pbmZvLm9yZGVyLG9yZGVyT25DaGFuZ2U9IWRpc2FibGVkLnNvbWUoZnVuY3Rpb24oZCl7cmV0dXJuIGR9KSYmb3JkZXIsX3VzZVV0aWw0PV9zbGljZWRUb0FycmF5KHVzZVV0aWwoZ2VuZXJhdGVDb25maWcsbG9jYWxlLGZvcm1hdExpc3QpLDIpLGdldERhdGVUZXh0cz1fdXNlVXRpbDRbMF0saXNTYW1lRGF0ZXM9X3VzZVV0aWw0WzFdLF91c2VTeW5jU3RhdGU0PV9zbGljZWRUb0FycmF5KHVzZVN5bmNTdGF0ZShtZXJnZWRWYWx1ZSksMiksc3VibWl0VmFsdWU9X3VzZVN5bmNTdGF0ZTRbMF0sc2V0U3VibWl0VmFsdWU9X3VzZVN5bmNTdGF0ZTRbMV0sc3luY1dpdGhWYWx1ZT11c2VFdmVudChmdW5jdGlvbigpe3NldFN1Ym1pdFZhbHVlKG1lcmdlZFZhbHVlKX0pO3JlYWN0LnVzZUVmZmVjdChmdW5jdGlvbigpe3N5bmNXaXRoVmFsdWUoKX0sW21lcmdlZFZhbHVlXSk7dmFyIHRyaWdnZXJTdWJtaXQ9dXNlRXZlbnQoZnVuY3Rpb24obmV4dFZhbHVlKXt2YXIgaXNOdWxsVmFsdWU9bnVsbD09PW5leHRWYWx1ZSxjbG9uZT10b0NvbnN1bWFibGVBcnJheV90b0NvbnN1bWFibGVBcnJheShuZXh0VmFsdWV8fHN1Ym1pdFZhbHVlKCkpO2lmKGlzTnVsbFZhbHVlKWZvcih2YXIgbWF4TGVuPU1hdGgubWF4KGRpc2FibGVkLmxlbmd0aCxjbG9uZS5sZW5ndGgpLGk9MDtpPG1heExlbjtpKz0xKWRpc2FibGVkW2ldfHwoY2xvbmVbaV09bnVsbCk7b3JkZXJPbkNoYW5nZSYmY2xvbmVbMF0mJmNsb25lWzFdJiYoY2xvbmU9b3JkZXJEYXRlcyhjbG9uZSxnZW5lcmF0ZUNvbmZpZykpLHRyaWdnZXJDYWxlbmRhckNoYW5nZShjbG9uZSk7dmFyIF9jbG9uZTI9X3NsaWNlZFRvQXJyYXkoY2xvbmUsMiksc3RhcnQ9X2Nsb25lMlswXSxlbmQ9X2Nsb25lMlsxXSxzdGFydEVtcHR5PSFzdGFydCxlbmRFbXB0eT0hZW5kLHZhbGlkYXRlRW1wdHlEYXRlUmFuZ2U9IWFsbG93RW1wdHl8fCghc3RhcnRFbXB0eXx8YWxsb3dFbXB0eVswXSkmJighZW5kRW1wdHl8fGFsbG93RW1wdHlbMV0pLHZhbGlkYXRlT3JkZXI9IW9yZGVyfHxzdGFydEVtcHR5fHxlbmRFbXB0eXx8aXNTYW1lKGdlbmVyYXRlQ29uZmlnLGxvY2FsZSxzdGFydCxlbmQscGlja2VyKXx8Z2VuZXJhdGVDb25maWcuaXNBZnRlcihlbmQsc3RhcnQpLHZhbGlkYXRlRGF0ZXM9KGRpc2FibGVkWzBdfHwhc3RhcnR8fCFpc0ludmFsaWRhdGVEYXRlKHN0YXJ0LHthY3RpdmVJbmRleDowfSkpJiYoZGlzYWJsZWRbMV18fCFlbmR8fCFpc0ludmFsaWRhdGVEYXRlKGVuZCx7ZnJvbTpzdGFydCxhY3RpdmVJbmRleDoxfSkpLGFsbFBhc3NlZD1pc051bGxWYWx1ZXx8dmFsaWRhdGVFbXB0eURhdGVSYW5nZSYmdmFsaWRhdGVPcmRlciYmdmFsaWRhdGVEYXRlcztpZihhbGxQYXNzZWQpe3NldElubmVyVmFsdWUoY2xvbmUpO3ZhciBpc1NhbWVNZXJnZWREYXRlcz1fc2xpY2VkVG9BcnJheShpc1NhbWVEYXRlcyhjbG9uZSxtZXJnZWRWYWx1ZSksMSlbMF07b25DaGFuZ2UmJiFpc1NhbWVNZXJnZWREYXRlcyYmb25DaGFuZ2UoaXNOdWxsVmFsdWUmJmNsb25lLmV2ZXJ5KGZ1bmN0aW9uKHZhbCl7cmV0dXJuIXZhbH0pP251bGw6Y2xvbmUsZ2V0RGF0ZVRleHRzKGNsb25lKSl9cmV0dXJuIGFsbFBhc3NlZH0pLGZsdXNoU3VibWl0PXVzZUV2ZW50KGZ1bmN0aW9uKGluZGV4LG5lZWRUcmlnZ2VyQ2hhbmdlKXtzZXRTdWJtaXRWYWx1ZShmaWxsSW5kZXgoc3VibWl0VmFsdWUoKSxpbmRleCxnZXRDYWxlbmRhclZhbHVlKClbaW5kZXhdKSksbmVlZFRyaWdnZXJDaGFuZ2UmJnRyaWdnZXJTdWJtaXQoKX0pLGludGVyYWN0aXZlRmluaXNoZWQ9IWZvY3VzZWQmJiFvcGVuO3JldHVybiB1c2VMb2NrRWZmZWN0KCFpbnRlcmFjdGl2ZUZpbmlzaGVkLGZ1bmN0aW9uKCl7aW50ZXJhY3RpdmVGaW5pc2hlZCYmKHRyaWdnZXJTdWJtaXQoKSx0cmlnZ2VyQ2FsZW5kYXJDaGFuZ2UobWVyZ2VkVmFsdWUpLHN5bmNXaXRoVmFsdWUoKSl9LDIpLFtmbHVzaFN1Ym1pdCx0cmlnZ2VyU3VibWl0XX1mdW5jdGlvbiB1c2VTaG93Tm93KHBpY2tlcixtb2RlLHNob3dOb3csc2hvd1RvZGF5LHJhbmdlUGlja2VyKXtyZXR1cm4oImRhdGUiPT09bW9kZXx8InRpbWUiPT09bW9kZSkmJih2b2lkIDAhPT1zaG93Tm93P3Nob3dOb3c6dm9pZCAwIT09c2hvd1RvZGF5P3Nob3dUb2RheTohcmFuZ2VQaWNrZXImJigiZGF0ZSI9PT1waWNrZXJ8fCJ0aW1lIj09PXBpY2tlcikpfXZhciByY19yZXNpemVfb2JzZXJ2ZXJfZXM9X193ZWJwYWNrX3JlcXVpcmVfXygyNzI1NCk7ZnVuY3Rpb24gZW1wdHlEaXNhYmxlZCgpe3JldHVybltdfWZ1bmN0aW9uIGdlbmVyYXRlVW5pdHMoc3RhcnQsZW5kKXtmb3IodmFyIHN0ZXA9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOjEsaGlkZURpc2FibGVkT3B0aW9ucz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdLGRpc2FibGVkVW5pdHM9YXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0/YXJndW1lbnRzWzRdOltdLHBhZD1hcmd1bWVudHMubGVuZ3RoPjUmJnZvaWQgMCE9PWFyZ3VtZW50c1s1XT9hcmd1bWVudHNbNV06Mix1bml0cz1bXSxpbnRlZ2VyU3RlcD1zdGVwPj0xPzB8c3RlcDoxLGk9c3RhcnQ7aTw9ZW5kO2krPWludGVnZXJTdGVwKXt2YXIgZGlzYWJsZWQ9ZGlzYWJsZWRVbml0cy5pbmNsdWRlcyhpKTtkaXNhYmxlZCYmaGlkZURpc2FibGVkT3B0aW9uc3x8dW5pdHMucHVzaCh7bGFiZWw6bGVmdFBhZChpLHBhZCksdmFsdWU6aSxkaXNhYmxlZDpkaXNhYmxlZH0pfXJldHVybiB1bml0c31mdW5jdGlvbiB1c2VUaW1lSW5mbyhnZW5lcmF0ZUNvbmZpZyl7dmFyIHByb3BzPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxkYXRlPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLF9yZWY9cHJvcHN8fHt9LHVzZTEySG91cnM9X3JlZi51c2UxMkhvdXJzLF9yZWYkaG91clN0ZXA9X3JlZi5ob3VyU3RlcCxob3VyU3RlcD12b2lkIDA9PT1fcmVmJGhvdXJTdGVwPzE6X3JlZiRob3VyU3RlcCxfcmVmJG1pbnV0ZVN0ZXA9X3JlZi5taW51dGVTdGVwLG1pbnV0ZVN0ZXA9dm9pZCAwPT09X3JlZiRtaW51dGVTdGVwPzE6X3JlZiRtaW51dGVTdGVwLF9yZWYkc2Vjb25kU3RlcD1fcmVmLnNlY29uZFN0ZXAsc2Vjb25kU3RlcD12b2lkIDA9PT1fcmVmJHNlY29uZFN0ZXA/MTpfcmVmJHNlY29uZFN0ZXAsX3JlZiRtaWxsaXNlY29uZFN0ZXA9X3JlZi5taWxsaXNlY29uZFN0ZXAsbWlsbGlzZWNvbmRTdGVwPXZvaWQgMD09PV9yZWYkbWlsbGlzZWNvbmRTdGVwPzEwMDpfcmVmJG1pbGxpc2Vjb25kU3RlcCxoaWRlRGlzYWJsZWRPcHRpb25zPV9yZWYuaGlkZURpc2FibGVkT3B0aW9ucyxkaXNhYmxlZFRpbWU9X3JlZi5kaXNhYmxlZFRpbWUsZGlzYWJsZWRIb3Vycz1fcmVmLmRpc2FibGVkSG91cnMsZGlzYWJsZWRNaW51dGVzPV9yZWYuZGlzYWJsZWRNaW51dGVzLGRpc2FibGVkU2Vjb25kcz1fcmVmLmRpc2FibGVkU2Vjb25kcyxtZXJnZWREYXRlPXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gZGF0ZXx8Z2VuZXJhdGVDb25maWcuZ2V0Tm93KCl9LFtkYXRlLGdlbmVyYXRlQ29uZmlnXSksZ2V0RGlzYWJsZWRUaW1lcz1yZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbih0YXJnZXREYXRlKXt2YXIgZGlzYWJsZWRDb25maWc9KG51bGw9PWRpc2FibGVkVGltZT92b2lkIDA6ZGlzYWJsZWRUaW1lKHRhcmdldERhdGUpKXx8e307cmV0dXJuW2Rpc2FibGVkQ29uZmlnLmRpc2FibGVkSG91cnN8fGRpc2FibGVkSG91cnN8fGVtcHR5RGlzYWJsZWQsZGlzYWJsZWRDb25maWcuZGlzYWJsZWRNaW51dGVzfHxkaXNhYmxlZE1pbnV0ZXN8fGVtcHR5RGlzYWJsZWQsZGlzYWJsZWRDb25maWcuZGlzYWJsZWRTZWNvbmRzfHxkaXNhYmxlZFNlY29uZHN8fGVtcHR5RGlzYWJsZWQsZGlzYWJsZWRDb25maWcuZGlzYWJsZWRNaWxsaXNlY29uZHN8fGVtcHR5RGlzYWJsZWRdfSxbZGlzYWJsZWRUaW1lLGRpc2FibGVkSG91cnMsZGlzYWJsZWRNaW51dGVzLGRpc2FibGVkU2Vjb25kc10pLF9SZWFjdCR1c2VNZW1vMj1fc2xpY2VkVG9BcnJheShyZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIGdldERpc2FibGVkVGltZXMobWVyZ2VkRGF0ZSl9LFttZXJnZWREYXRlLGdldERpc2FibGVkVGltZXNdKSw0KSxtZXJnZWREaXNhYmxlZEhvdXJzPV9SZWFjdCR1c2VNZW1vMlswXSxtZXJnZWREaXNhYmxlZE1pbnV0ZXM9X1JlYWN0JHVzZU1lbW8yWzFdLG1lcmdlZERpc2FibGVkU2Vjb25kcz1fUmVhY3QkdXNlTWVtbzJbMl0sbWVyZ2VkRGlzYWJsZWRNaWxsaXNlY29uZHM9X1JlYWN0JHVzZU1lbW8yWzNdLGdldEFsbFVuaXRzPXJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uKGdldERpc2FibGVkSG91cnMsZ2V0RGlzYWJsZWRNaW51dGVzLGdldERpc2FibGVkU2Vjb25kcyxnZXREaXNhYmxlZE1pbGxpc2Vjb25kcyl7dmFyIGhvdXJzPWdlbmVyYXRlVW5pdHMoMCwyMyxob3VyU3RlcCxoaWRlRGlzYWJsZWRPcHRpb25zLGdldERpc2FibGVkSG91cnMoKSk7cmV0dXJuW3VzZTEySG91cnM/aG91cnMubWFwKGZ1bmN0aW9uKHVuaXQpe3JldHVybigwLG9iamVjdFNwcmVhZDIuWikoKDAsb2JqZWN0U3ByZWFkMi5aKSh7fSx1bml0KSx7fSx7bGFiZWw6bGVmdFBhZCh1bml0LnZhbHVlJTEyfHwxMiwyKX0pfSk6aG91cnMsZnVuY3Rpb24obmV4dEhvdXIpe3JldHVybiBnZW5lcmF0ZVVuaXRzKDAsNTksbWludXRlU3RlcCxoaWRlRGlzYWJsZWRPcHRpb25zLGdldERpc2FibGVkTWludXRlcyhuZXh0SG91cikpfSxmdW5jdGlvbihuZXh0SG91cixuZXh0TWludXRlKXtyZXR1cm4gZ2VuZXJhdGVVbml0cygwLDU5LHNlY29uZFN0ZXAsaGlkZURpc2FibGVkT3B0aW9ucyxnZXREaXNhYmxlZFNlY29uZHMobmV4dEhvdXIsbmV4dE1pbnV0ZSkpfSxmdW5jdGlvbihuZXh0SG91cixuZXh0TWludXRlLG5leHRTZWNvbmQpe3JldHVybiBnZW5lcmF0ZVVuaXRzKDAsOTk5LG1pbGxpc2Vjb25kU3RlcCxoaWRlRGlzYWJsZWRPcHRpb25zLGdldERpc2FibGVkTWlsbGlzZWNvbmRzKG5leHRIb3VyLG5leHRNaW51dGUsbmV4dFNlY29uZCksMyl9XX0sW2hpZGVEaXNhYmxlZE9wdGlvbnMsaG91clN0ZXAsdXNlMTJIb3VycyxtaWxsaXNlY29uZFN0ZXAsbWludXRlU3RlcCxzZWNvbmRTdGVwXSksX1JlYWN0JHVzZU1lbW80PV9zbGljZWRUb0FycmF5KHJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gZ2V0QWxsVW5pdHMobWVyZ2VkRGlzYWJsZWRIb3VycyxtZXJnZWREaXNhYmxlZE1pbnV0ZXMsbWVyZ2VkRGlzYWJsZWRTZWNvbmRzLG1lcmdlZERpc2FibGVkTWlsbGlzZWNvbmRzKX0sW2dldEFsbFVuaXRzLG1lcmdlZERpc2FibGVkSG91cnMsbWVyZ2VkRGlzYWJsZWRNaW51dGVzLG1lcmdlZERpc2FibGVkU2Vjb25kcyxtZXJnZWREaXNhYmxlZE1pbGxpc2Vjb25kc10pLDQpLHJvd0hvdXJVbml0cz1fUmVhY3QkdXNlTWVtbzRbMF0sZ2V0TWludXRlVW5pdHM9X1JlYWN0JHVzZU1lbW80WzFdLGdldFNlY29uZFVuaXRzPV9SZWFjdCR1c2VNZW1vNFsyXSxnZXRNaWxsaXNlY29uZFVuaXRzPV9SZWFjdCR1c2VNZW1vNFszXTtyZXR1cm5bZnVuY3Rpb24obmV4dFRpbWUsY2VydGFpbkRhdGUpe3ZhciBnZXRDaGVja0hvdXJVbml0cz1mdW5jdGlvbigpe3JldHVybiByb3dIb3VyVW5pdHN9LGdldENoZWNrTWludXRlVW5pdHM9Z2V0TWludXRlVW5pdHMsZ2V0Q2hlY2tTZWNvbmRVbml0cz1nZXRTZWNvbmRVbml0cyxnZXRDaGVja01pbGxpc2Vjb25kVW5pdHM9Z2V0TWlsbGlzZWNvbmRVbml0cztpZihjZXJ0YWluRGF0ZSl7dmFyIF9nZXREaXNhYmxlZFRpbWVzMj1fc2xpY2VkVG9BcnJheShnZXREaXNhYmxlZFRpbWVzKGNlcnRhaW5EYXRlKSw0KSxfZ2V0QWxsVW5pdHMyPV9zbGljZWRUb0FycmF5KGdldEFsbFVuaXRzKF9nZXREaXNhYmxlZFRpbWVzMlswXSxfZ2V0RGlzYWJsZWRUaW1lczJbMV0sX2dldERpc2FibGVkVGltZXMyWzJdLF9nZXREaXNhYmxlZFRpbWVzMlszXSksNCksdGFyZ2V0Um93SG91clVuaXRzPV9nZXRBbGxVbml0czJbMF0sdGFyZ2V0R2V0TWludXRlVW5pdHM9X2dldEFsbFVuaXRzMlsxXSx0YXJnZXRHZXRTZWNvbmRVbml0cz1fZ2V0QWxsVW5pdHMyWzJdLHRhcmdldEdldE1pbGxpc2Vjb25kVW5pdHM9X2dldEFsbFVuaXRzMlszXTtnZXRDaGVja0hvdXJVbml0cz1mdW5jdGlvbigpe3JldHVybiB0YXJnZXRSb3dIb3VyVW5pdHN9LGdldENoZWNrTWludXRlVW5pdHM9dGFyZ2V0R2V0TWludXRlVW5pdHMsZ2V0Q2hlY2tTZWNvbmRVbml0cz10YXJnZXRHZXRTZWNvbmRVbml0cyxnZXRDaGVja01pbGxpc2Vjb25kVW5pdHM9dGFyZ2V0R2V0TWlsbGlzZWNvbmRVbml0c31yZXR1cm4gZnVuY3Rpb24oZGF0ZSxnZXRIb3VyVW5pdHMsZ2V0TWludXRlVW5pdHMsZ2V0U2Vjb25kVW5pdHMsZ2V0TWlsbGlzZWNvbmRVbml0cyxnZW5lcmF0ZUNvbmZpZyl7dmFyIG5leHREYXRlPWRhdGU7ZnVuY3Rpb24gYWxpZ25WYWxpZGF0ZShnZXRVbml0VmFsdWUsc2V0VW5pdFZhbHVlLHVuaXRzKXt2YXIgbmV4dFZhbHVlPWdlbmVyYXRlQ29uZmlnW2dldFVuaXRWYWx1ZV0obmV4dERhdGUpLG5leHRVbml0PXVuaXRzLmZpbmQoZnVuY3Rpb24odW5pdCl7cmV0dXJuIHVuaXQudmFsdWU9PT1uZXh0VmFsdWV9KTtpZighbmV4dFVuaXR8fG5leHRVbml0LmRpc2FibGVkKXt2YXIgdmFsaWRhdGVVbml0cz11bml0cy5maWx0ZXIoZnVuY3Rpb24odW5pdCl7cmV0dXJuIXVuaXQuZGlzYWJsZWR9KSx2YWxpZGF0ZVVuaXQ9dG9Db25zdW1hYmxlQXJyYXlfdG9Db25zdW1hYmxlQXJyYXkodmFsaWRhdGVVbml0cykucmV2ZXJzZSgpLmZpbmQoZnVuY3Rpb24odW5pdCl7cmV0dXJuIHVuaXQudmFsdWU8PW5leHRWYWx1ZX0pfHx2YWxpZGF0ZVVuaXRzWzBdO3ZhbGlkYXRlVW5pdCYmKG5leHRWYWx1ZT12YWxpZGF0ZVVuaXQudmFsdWUsbmV4dERhdGU9Z2VuZXJhdGVDb25maWdbc2V0VW5pdFZhbHVlXShuZXh0RGF0ZSxuZXh0VmFsdWUpKX1yZXR1cm4gbmV4dFZhbHVlfXZhciBuZXh0SG91cj1hbGlnblZhbGlkYXRlKCJnZXRIb3VyIiwic2V0SG91ciIsZ2V0SG91clVuaXRzKCkpLG5leHRNaW51dGU9YWxpZ25WYWxpZGF0ZSgiZ2V0TWludXRlIiwic2V0TWludXRlIixnZXRNaW51dGVVbml0cyhuZXh0SG91cikpLG5leHRTZWNvbmQ9YWxpZ25WYWxpZGF0ZSgiZ2V0U2Vjb25kIiwic2V0U2Vjb25kIixnZXRTZWNvbmRVbml0cyhuZXh0SG91cixuZXh0TWludXRlKSk7cmV0dXJuIGFsaWduVmFsaWRhdGUoImdldE1pbGxpc2Vjb25kIiwic2V0TWlsbGlzZWNvbmQiLGdldE1pbGxpc2Vjb25kVW5pdHMobmV4dEhvdXIsbmV4dE1pbnV0ZSxuZXh0U2Vjb25kKSksbmV4dERhdGV9KG5leHRUaW1lLGdldENoZWNrSG91clVuaXRzLGdldENoZWNrTWludXRlVW5pdHMsZ2V0Q2hlY2tTZWNvbmRVbml0cyxnZXRDaGVja01pbGxpc2Vjb25kVW5pdHMsZ2VuZXJhdGVDb25maWcpfSxyb3dIb3VyVW5pdHMsZ2V0TWludXRlVW5pdHMsZ2V0U2Vjb25kVW5pdHMsZ2V0TWlsbGlzZWNvbmRVbml0c119ZnVuY3Rpb24gRm9vdGVyKHByb3BzKXt2YXIgbW9kZT1wcm9wcy5tb2RlLGludGVybmFsTW9kZT1wcm9wcy5pbnRlcm5hbE1vZGUscmVuZGVyRXh0cmFGb290ZXI9cHJvcHMucmVuZGVyRXh0cmFGb290ZXIsc2hvd05vdz1wcm9wcy5zaG93Tm93LHNob3dUaW1lPXByb3BzLnNob3dUaW1lLG9uU3VibWl0PXByb3BzLm9uU3VibWl0LG9uTm93PXByb3BzLm9uTm93LGludmFsaWQ9cHJvcHMuaW52YWxpZCxuZWVkQ29uZmlybT1wcm9wcy5uZWVkQ29uZmlybSxnZW5lcmF0ZUNvbmZpZz1wcm9wcy5nZW5lcmF0ZUNvbmZpZyxkaXNhYmxlZERhdGU9cHJvcHMuZGlzYWJsZWREYXRlLF9SZWFjdCR1c2VDb250ZXh0PXJlYWN0LnVzZUNvbnRleHQoUGlja2VyQ29udGV4dCkscHJlZml4Q2xzPV9SZWFjdCR1c2VDb250ZXh0LnByZWZpeENscyxsb2NhbGU9X1JlYWN0JHVzZUNvbnRleHQubG9jYWxlLF9SZWFjdCR1c2VDb250ZXh0JGJ1dD1fUmVhY3QkdXNlQ29udGV4dC5idXR0b24sbm93PWdlbmVyYXRlQ29uZmlnLmdldE5vdygpLGdldFZhbGlkVGltZT1fc2xpY2VkVG9BcnJheSh1c2VUaW1lSW5mbyhnZW5lcmF0ZUNvbmZpZyxzaG93VGltZSxub3cpLDEpWzBdLGV4dHJhTm9kZT1udWxsPT1yZW5kZXJFeHRyYUZvb3Rlcj92b2lkIDA6cmVuZGVyRXh0cmFGb290ZXIobW9kZSksbm93RGlzYWJsZWQ9ZGlzYWJsZWREYXRlKG5vdyx7dHlwZTptb2RlfSksbm93UHJlZml4Q2xzPSIiLmNvbmNhdChwcmVmaXhDbHMsIi1ub3ciKSxub3dCdG5QcmVmaXhDbHM9IiIuY29uY2F0KG5vd1ByZWZpeENscywiLWJ0biIpLHByZXNldE5vZGU9c2hvd05vdyYmcmVhY3QuY3JlYXRlRWxlbWVudCgibGkiLHtjbGFzc05hbWU6bm93UHJlZml4Q2xzfSxyZWFjdC5jcmVhdGVFbGVtZW50KCJhIix7Y2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKShub3dCdG5QcmVmaXhDbHMsbm93RGlzYWJsZWQmJiIiLmNvbmNhdChub3dCdG5QcmVmaXhDbHMsIi1kaXNhYmxlZCIpKSwiYXJpYS1kaXNhYmxlZCI6bm93RGlzYWJsZWQsb25DbGljazpmdW5jdGlvbigpe25vd0Rpc2FibGVkfHxvbk5vdyhnZXRWYWxpZFRpbWUobm93KSl9fSwiZGF0ZSI9PT1pbnRlcm5hbE1vZGU/bG9jYWxlLnRvZGF5OmxvY2FsZS5ub3cpKSxva05vZGU9bmVlZENvbmZpcm0mJnJlYWN0LmNyZWF0ZUVsZW1lbnQoImxpIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi1vayIpfSxyZWFjdC5jcmVhdGVFbGVtZW50KHZvaWQgMD09PV9SZWFjdCR1c2VDb250ZXh0JGJ1dD8iYnV0dG9uIjpfUmVhY3QkdXNlQ29udGV4dCRidXQse2Rpc2FibGVkOmludmFsaWQsb25DbGljazpvblN1Ym1pdH0sbG9jYWxlLm9rKSkscmFuZ2VOb2RlPShwcmVzZXROb2RlfHxva05vZGUpJiZyZWFjdC5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItcmFuZ2VzIil9LHByZXNldE5vZGUsb2tOb2RlKTtyZXR1cm4gZXh0cmFOb2RlfHxyYW5nZU5vZGU/cmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi1mb290ZXIiKX0sZXh0cmFOb2RlJiZyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHByZWZpeENscywiLWZvb3Rlci1leHRyYSIpfSxleHRyYU5vZGUpLHJhbmdlTm9kZSk6bnVsbH1mdW5jdGlvbiB1c2VUb2dnbGVEYXRlcyhnZW5lcmF0ZUNvbmZpZyxsb2NhbGUscGFuZWxNb2RlKXtyZXR1cm4gZnVuY3Rpb24obGlzdCx0YXJnZXQpe3ZhciBpbmRleD1saXN0LmZpbmRJbmRleChmdW5jdGlvbihkYXRlKXtyZXR1cm4gaXNTYW1lKGdlbmVyYXRlQ29uZmlnLGxvY2FsZSxkYXRlLHRhcmdldCxwYW5lbE1vZGUpfSk7aWYoLTE9PT1pbmRleClyZXR1cm5bXS5jb25jYXQodG9Db25zdW1hYmxlQXJyYXlfdG9Db25zdW1hYmxlQXJyYXkobGlzdCksW3RhcmdldF0pO3ZhciBzbGljZUxpc3Q9dG9Db25zdW1hYmxlQXJyYXlfdG9Db25zdW1hYmxlQXJyYXkobGlzdCk7cmV0dXJuIHNsaWNlTGlzdC5zcGxpY2UoaW5kZXgsMSksc2xpY2VMaXN0fX12YXIgUGFuZWxDb250ZXh0PXJlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCk7ZnVuY3Rpb24gdXNlUGFuZWxDb250ZXh0KCl7cmV0dXJuIHJlYWN0LnVzZUNvbnRleHQoUGFuZWxDb250ZXh0KX1mdW5jdGlvbiB1c2VJbmZvKHByb3BzLHBhbmVsVHlwZSl7dmFyIHByZWZpeENscz1wcm9wcy5wcmVmaXhDbHMsZ2VuZXJhdGVDb25maWc9cHJvcHMuZ2VuZXJhdGVDb25maWcsbG9jYWxlPXByb3BzLmxvY2FsZSxkaXNhYmxlZERhdGU9cHJvcHMuZGlzYWJsZWREYXRlLG1pbkRhdGU9cHJvcHMubWluRGF0ZSxtYXhEYXRlPXByb3BzLm1heERhdGUsY2VsbFJlbmRlcj1wcm9wcy5jZWxsUmVuZGVyLGhvdmVyVmFsdWU9cHJvcHMuaG92ZXJWYWx1ZSxob3ZlclJhbmdlVmFsdWU9cHJvcHMuaG92ZXJSYW5nZVZhbHVlLG9uSG92ZXI9cHJvcHMub25Ib3Zlcix2YWx1ZXM9cHJvcHMudmFsdWVzLHBpY2tlclZhbHVlPXByb3BzLnBpY2tlclZhbHVlLG9uU2VsZWN0PXByb3BzLm9uU2VsZWN0LHByZXZJY29uPXByb3BzLnByZXZJY29uLG5leHRJY29uPXByb3BzLm5leHRJY29uLHN1cGVyUHJldkljb249cHJvcHMuc3VwZXJQcmV2SWNvbixzdXBlck5leHRJY29uPXByb3BzLnN1cGVyTmV4dEljb24sbm93PWdlbmVyYXRlQ29uZmlnLmdldE5vdygpO3JldHVyblt7bm93Om5vdyx2YWx1ZXM6dmFsdWVzLHBpY2tlclZhbHVlOnBpY2tlclZhbHVlLHByZWZpeENsczpwcmVmaXhDbHMsZGlzYWJsZWREYXRlOmRpc2FibGVkRGF0ZSxtaW5EYXRlOm1pbkRhdGUsbWF4RGF0ZTptYXhEYXRlLGNlbGxSZW5kZXI6Y2VsbFJlbmRlcixob3ZlclZhbHVlOmhvdmVyVmFsdWUsaG92ZXJSYW5nZVZhbHVlOmhvdmVyUmFuZ2VWYWx1ZSxvbkhvdmVyOm9uSG92ZXIsbG9jYWxlOmxvY2FsZSxnZW5lcmF0ZUNvbmZpZzpnZW5lcmF0ZUNvbmZpZyxvblNlbGVjdDpvblNlbGVjdCxwYW5lbFR5cGU6cGFuZWxUeXBlLHByZXZJY29uOnByZXZJY29uLG5leHRJY29uOm5leHRJY29uLHN1cGVyUHJldkljb246c3VwZXJQcmV2SWNvbixzdXBlck5leHRJY29uOnN1cGVyTmV4dEljb259LG5vd119dmFyIFBpY2tlckhhY2tDb250ZXh0PXJlYWN0LmNyZWF0ZUNvbnRleHQoe30pO2Z1bmN0aW9uIFBhbmVsQm9keShwcm9wcyl7Zm9yKHZhciByb3dOdW09cHJvcHMucm93TnVtLGNvbE51bT1wcm9wcy5jb2xOdW0sYmFzZURhdGU9cHJvcHMuYmFzZURhdGUsZ2V0Q2VsbERhdGU9cHJvcHMuZ2V0Q2VsbERhdGUscHJlZml4Q29sdW1uPXByb3BzLnByZWZpeENvbHVtbixyb3dDbGFzc05hbWU9cHJvcHMucm93Q2xhc3NOYW1lLHRpdGxlRm9ybWF0PXByb3BzLnRpdGxlRm9ybWF0LGdldENlbGxUZXh0PXByb3BzLmdldENlbGxUZXh0LGdldENlbGxDbGFzc05hbWU9cHJvcHMuZ2V0Q2VsbENsYXNzTmFtZSxoZWFkZXJDZWxscz1wcm9wcy5oZWFkZXJDZWxscyxfcHJvcHMkY2VsbFNlbGVjdGlvbj1wcm9wcy5jZWxsU2VsZWN0aW9uLGNlbGxTZWxlY3Rpb249dm9pZCAwPT09X3Byb3BzJGNlbGxTZWxlY3Rpb258fF9wcm9wcyRjZWxsU2VsZWN0aW9uLGRpc2FibGVkRGF0ZT1wcm9wcy5kaXNhYmxlZERhdGUsX3VzZVBhbmVsQ29udGV4dD11c2VQYW5lbENvbnRleHQoKSxwcmVmaXhDbHM9X3VzZVBhbmVsQ29udGV4dC5wcmVmaXhDbHMsdHlwZT1fdXNlUGFuZWxDb250ZXh0LnBhbmVsVHlwZSxub3c9X3VzZVBhbmVsQ29udGV4dC5ub3csY29udGV4dERpc2FibGVkRGF0ZT1fdXNlUGFuZWxDb250ZXh0LmRpc2FibGVkRGF0ZSxjZWxsUmVuZGVyPV91c2VQYW5lbENvbnRleHQuY2VsbFJlbmRlcixvbkhvdmVyPV91c2VQYW5lbENvbnRleHQub25Ib3Zlcixob3ZlclZhbHVlPV91c2VQYW5lbENvbnRleHQuaG92ZXJWYWx1ZSxob3ZlclJhbmdlVmFsdWU9X3VzZVBhbmVsQ29udGV4dC5ob3ZlclJhbmdlVmFsdWUsZ2VuZXJhdGVDb25maWc9X3VzZVBhbmVsQ29udGV4dC5nZW5lcmF0ZUNvbmZpZyx2YWx1ZXM9X3VzZVBhbmVsQ29udGV4dC52YWx1ZXMsbG9jYWxlPV91c2VQYW5lbENvbnRleHQubG9jYWxlLG9uU2VsZWN0PV91c2VQYW5lbENvbnRleHQub25TZWxlY3QsbWVyZ2VkRGlzYWJsZWREYXRlPWRpc2FibGVkRGF0ZXx8Y29udGV4dERpc2FibGVkRGF0ZSxjZWxsUHJlZml4Q2xzPSIiLmNvbmNhdChwcmVmaXhDbHMsIi1jZWxsIiksb25DZWxsRGJsQ2xpY2s9cmVhY3QudXNlQ29udGV4dChQaWNrZXJIYWNrQ29udGV4dCkub25DZWxsRGJsQ2xpY2ssbWF0Y2hWYWx1ZXM9ZnVuY3Rpb24oZGF0ZSl7cmV0dXJuIHZhbHVlcy5zb21lKGZ1bmN0aW9uKHNpbmdsZVZhbHVlKXtyZXR1cm4gc2luZ2xlVmFsdWUmJmlzU2FtZShnZW5lcmF0ZUNvbmZpZyxsb2NhbGUsZGF0ZSxzaW5nbGVWYWx1ZSx0eXBlKX0pfSxyb3dzPVtdLHJvdz0wO3Jvdzxyb3dOdW07cm93Kz0xKXtmb3IodmFyIHJvd05vZGU9W10scm93U3RhcnREYXRlPXZvaWQgMCxjb2w9MDtjb2w8Y29sTnVtO2NvbCs9MSkhZnVuY3Rpb24oKXt2YXIgY3VycmVudERhdGU9Z2V0Q2VsbERhdGUoYmFzZURhdGUscm93KmNvbE51bStjb2wpLGRpc2FibGVkPW51bGw9PW1lcmdlZERpc2FibGVkRGF0ZT92b2lkIDA6bWVyZ2VkRGlzYWJsZWREYXRlKGN1cnJlbnREYXRlLHt0eXBlOnR5cGV9KTswPT09Y29sJiYocm93U3RhcnREYXRlPWN1cnJlbnREYXRlLHByZWZpeENvbHVtbiYmcm93Tm9kZS5wdXNoKHByZWZpeENvbHVtbihyb3dTdGFydERhdGUpKSk7dmFyIGluUmFuZ2U9ITEscmFuZ2VTdGFydD0hMSxyYW5nZUVuZD0hMTtpZihjZWxsU2VsZWN0aW9uJiZob3ZlclJhbmdlVmFsdWUpe3ZhciBfaG92ZXJSYW5nZVZhbHVlPV9zbGljZWRUb0FycmF5KGhvdmVyUmFuZ2VWYWx1ZSwyKSxob3ZlclN0YXJ0PV9ob3ZlclJhbmdlVmFsdWVbMF0saG92ZXJFbmQ9X2hvdmVyUmFuZ2VWYWx1ZVsxXTtpblJhbmdlPWlzSW5SYW5nZShnZW5lcmF0ZUNvbmZpZyxob3ZlclN0YXJ0LGhvdmVyRW5kLGN1cnJlbnREYXRlKSxyYW5nZVN0YXJ0PWlzU2FtZShnZW5lcmF0ZUNvbmZpZyxsb2NhbGUsY3VycmVudERhdGUsaG92ZXJTdGFydCx0eXBlKSxyYW5nZUVuZD1pc1NhbWUoZ2VuZXJhdGVDb25maWcsbG9jYWxlLGN1cnJlbnREYXRlLGhvdmVyRW5kLHR5cGUpfXZhciB0aXRsZT10aXRsZUZvcm1hdD9mb3JtYXRWYWx1ZShjdXJyZW50RGF0ZSx7bG9jYWxlOmxvY2FsZSxmb3JtYXQ6dGl0bGVGb3JtYXQsZ2VuZXJhdGVDb25maWc6Z2VuZXJhdGVDb25maWd9KTp2b2lkIDAsaW5uZXI9cmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChjZWxsUHJlZml4Q2xzLCItaW5uZXIiKX0sZ2V0Q2VsbFRleHQoY3VycmVudERhdGUpKTtyb3dOb2RlLnB1c2gocmVhY3QuY3JlYXRlRWxlbWVudCgidGQiLHtrZXk6Y29sLHRpdGxlOnRpdGxlLGNsYXNzTmFtZTpub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0KCkoY2VsbFByZWZpeENscywoMCxvYmplY3RTcHJlYWQyLlopKCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKHt9LCIiLmNvbmNhdChjZWxsUHJlZml4Q2xzLCItZGlzYWJsZWQiKSxkaXNhYmxlZCksIiIuY29uY2F0KGNlbGxQcmVmaXhDbHMsIi1ob3ZlciIpLChob3ZlclZhbHVlfHxbXSkuc29tZShmdW5jdGlvbihkYXRlKXtyZXR1cm4gaXNTYW1lKGdlbmVyYXRlQ29uZmlnLGxvY2FsZSxjdXJyZW50RGF0ZSxkYXRlLHR5cGUpfSkpLCIiLmNvbmNhdChjZWxsUHJlZml4Q2xzLCItaW4tcmFuZ2UiKSxpblJhbmdlJiYhcmFuZ2VTdGFydCYmIXJhbmdlRW5kKSwiIi5jb25jYXQoY2VsbFByZWZpeENscywiLXJhbmdlLXN0YXJ0IikscmFuZ2VTdGFydCksIiIuY29uY2F0KGNlbGxQcmVmaXhDbHMsIi1yYW5nZS1lbmQiKSxyYW5nZUVuZCksIiIuY29uY2F0KHByZWZpeENscywiLWNlbGwtc2VsZWN0ZWQiKSwhaG92ZXJSYW5nZVZhbHVlJiYid2VlayIhPT10eXBlJiZtYXRjaFZhbHVlcyhjdXJyZW50RGF0ZSkpLGdldENlbGxDbGFzc05hbWUoY3VycmVudERhdGUpKSksb25DbGljazpmdW5jdGlvbigpe2Rpc2FibGVkfHxvblNlbGVjdChjdXJyZW50RGF0ZSl9LG9uRG91YmxlQ2xpY2s6ZnVuY3Rpb24oKXshZGlzYWJsZWQmJm9uQ2VsbERibENsaWNrJiZvbkNlbGxEYmxDbGljaygpfSxvbk1vdXNlRW50ZXI6ZnVuY3Rpb24oKXtkaXNhYmxlZHx8bnVsbD09b25Ib3Zlcnx8b25Ib3ZlcihjdXJyZW50RGF0ZSl9LG9uTW91c2VMZWF2ZTpmdW5jdGlvbigpe2Rpc2FibGVkfHxudWxsPT1vbkhvdmVyfHxvbkhvdmVyKG51bGwpfX0sY2VsbFJlbmRlcj9jZWxsUmVuZGVyKGN1cnJlbnREYXRlLHtwcmVmaXhDbHM6cHJlZml4Q2xzLG9yaWdpbk5vZGU6aW5uZXIsdG9kYXk6bm93LHR5cGU6dHlwZSxsb2NhbGU6bG9jYWxlfSk6aW5uZXIpKX0oKTtyb3dzLnB1c2gocmVhY3QuY3JlYXRlRWxlbWVudCgidHIiLHtrZXk6cm93LGNsYXNzTmFtZTpudWxsPT1yb3dDbGFzc05hbWU/dm9pZCAwOnJvd0NsYXNzTmFtZShyb3dTdGFydERhdGUpfSxyb3dOb2RlKSl9cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItYm9keSIpfSxyZWFjdC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIse2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItY29udGVudCIpfSxoZWFkZXJDZWxscyYmcmVhY3QuY3JlYXRlRWxlbWVudCgidGhlYWQiLG51bGwscmVhY3QuY3JlYXRlRWxlbWVudCgidHIiLG51bGwsaGVhZGVyQ2VsbHMpKSxyZWFjdC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIsbnVsbCxyb3dzKSkpfXZhciBISURERU5fU1RZTEU9e3Zpc2liaWxpdHk6ImhpZGRlbiJ9LFBpY2tlclBhbmVsX1BhbmVsSGVhZGVyPWZ1bmN0aW9uKHByb3BzKXt2YXIgb2Zmc2V0PXByb3BzLm9mZnNldCxzdXBlck9mZnNldD1wcm9wcy5zdXBlck9mZnNldCxvbkNoYW5nZT1wcm9wcy5vbkNoYW5nZSxnZXRTdGFydD1wcm9wcy5nZXRTdGFydCxnZXRFbmQ9cHJvcHMuZ2V0RW5kLGNoaWxkcmVuPXByb3BzLmNoaWxkcmVuLF91c2VQYW5lbENvbnRleHQ9dXNlUGFuZWxDb250ZXh0KCkscHJlZml4Q2xzPV91c2VQYW5lbENvbnRleHQucHJlZml4Q2xzLF91c2VQYW5lbENvbnRleHQkcHJldj1fdXNlUGFuZWxDb250ZXh0LnByZXZJY29uLF91c2VQYW5lbENvbnRleHQkbmV4dD1fdXNlUGFuZWxDb250ZXh0Lm5leHRJY29uLF91c2VQYW5lbENvbnRleHQkc3VwZT1fdXNlUGFuZWxDb250ZXh0LnN1cGVyUHJldkljb24sX3VzZVBhbmVsQ29udGV4dCRzdXBlMj1fdXNlUGFuZWxDb250ZXh0LnN1cGVyTmV4dEljb24sbWluRGF0ZT1fdXNlUGFuZWxDb250ZXh0Lm1pbkRhdGUsbWF4RGF0ZT1fdXNlUGFuZWxDb250ZXh0Lm1heERhdGUsZ2VuZXJhdGVDb25maWc9X3VzZVBhbmVsQ29udGV4dC5nZW5lcmF0ZUNvbmZpZyxsb2NhbGU9X3VzZVBhbmVsQ29udGV4dC5sb2NhbGUscGlja2VyVmFsdWU9X3VzZVBhbmVsQ29udGV4dC5waWNrZXJWYWx1ZSx0eXBlPV91c2VQYW5lbENvbnRleHQucGFuZWxUeXBlLGhlYWRlclByZWZpeENscz0iIi5jb25jYXQocHJlZml4Q2xzLCItaGVhZGVyIiksX1JlYWN0JHVzZUNvbnRleHQ9cmVhY3QudXNlQ29udGV4dChQaWNrZXJIYWNrQ29udGV4dCksaGlkZVByZXY9X1JlYWN0JHVzZUNvbnRleHQuaGlkZVByZXYsaGlkZU5leHQ9X1JlYWN0JHVzZUNvbnRleHQuaGlkZU5leHQsaGlkZUhlYWRlcj1fUmVhY3QkdXNlQ29udGV4dC5oaWRlSGVhZGVyLGRpc2FibGVkT2Zmc2V0UHJldj1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuISFtaW5EYXRlJiYhIW9mZnNldCYmISFnZXRFbmQmJiFpc1NhbWVPckFmdGVyKGdlbmVyYXRlQ29uZmlnLGxvY2FsZSxnZXRFbmQob2Zmc2V0KC0xLHBpY2tlclZhbHVlKSksbWluRGF0ZSx0eXBlKX0sW21pbkRhdGUsb2Zmc2V0LHBpY2tlclZhbHVlLGdldEVuZCxnZW5lcmF0ZUNvbmZpZyxsb2NhbGUsdHlwZV0pLGRpc2FibGVkU3VwZXJPZmZzZXRQcmV2PXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4hIW1pbkRhdGUmJiEhc3VwZXJPZmZzZXQmJiEhZ2V0RW5kJiYhaXNTYW1lT3JBZnRlcihnZW5lcmF0ZUNvbmZpZyxsb2NhbGUsZ2V0RW5kKHN1cGVyT2Zmc2V0KC0xLHBpY2tlclZhbHVlKSksbWluRGF0ZSx0eXBlKX0sW21pbkRhdGUsc3VwZXJPZmZzZXQscGlja2VyVmFsdWUsZ2V0RW5kLGdlbmVyYXRlQ29uZmlnLGxvY2FsZSx0eXBlXSksZGlzYWJsZWRPZmZzZXROZXh0PXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4hIW1heERhdGUmJiEhb2Zmc2V0JiYhIWdldFN0YXJ0JiYhaXNTYW1lT3JBZnRlcihnZW5lcmF0ZUNvbmZpZyxsb2NhbGUsbWF4RGF0ZSxnZXRTdGFydChvZmZzZXQoMSxwaWNrZXJWYWx1ZSkpLHR5cGUpfSxbbWF4RGF0ZSxvZmZzZXQscGlja2VyVmFsdWUsZ2V0U3RhcnQsZ2VuZXJhdGVDb25maWcsbG9jYWxlLHR5cGVdKSxkaXNhYmxlZFN1cGVyT2Zmc2V0TmV4dD1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuISFtYXhEYXRlJiYhIXN1cGVyT2Zmc2V0JiYhIWdldFN0YXJ0JiYhaXNTYW1lT3JBZnRlcihnZW5lcmF0ZUNvbmZpZyxsb2NhbGUsbWF4RGF0ZSxnZXRTdGFydChzdXBlck9mZnNldCgxLHBpY2tlclZhbHVlKSksdHlwZSl9LFttYXhEYXRlLHN1cGVyT2Zmc2V0LHBpY2tlclZhbHVlLGdldFN0YXJ0LGdlbmVyYXRlQ29uZmlnLGxvY2FsZSx0eXBlXSksb25PZmZzZXQ9ZnVuY3Rpb24oZGlzdGFuY2Upe29mZnNldCYmb25DaGFuZ2Uob2Zmc2V0KGRpc3RhbmNlLHBpY2tlclZhbHVlKSl9LG9uU3VwZXJPZmZzZXQ9ZnVuY3Rpb24oZGlzdGFuY2Upe3N1cGVyT2Zmc2V0JiZvbkNoYW5nZShzdXBlck9mZnNldChkaXN0YW5jZSxwaWNrZXJWYWx1ZSkpfTtpZihoaWRlSGVhZGVyKXJldHVybiBudWxsO3ZhciBwcmV2QnRuQ2xzPSIiLmNvbmNhdChoZWFkZXJQcmVmaXhDbHMsIi1wcmV2LWJ0biIpLG5leHRCdG5DbHM9IiIuY29uY2F0KGhlYWRlclByZWZpeENscywiLW5leHQtYnRuIiksc3VwZXJQcmV2QnRuQ2xzPSIiLmNvbmNhdChoZWFkZXJQcmVmaXhDbHMsIi1zdXBlci1wcmV2LWJ0biIpLHN1cGVyTmV4dEJ0bkNscz0iIi5jb25jYXQoaGVhZGVyUHJlZml4Q2xzLCItc3VwZXItbmV4dC1idG4iKTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmhlYWRlclByZWZpeENsc30sc3VwZXJPZmZzZXQmJnJlYWN0LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsImFyaWEtbGFiZWwiOmxvY2FsZS5wcmV2aW91c1llYXIsb25DbGljazpmdW5jdGlvbigpe3JldHVybiBvblN1cGVyT2Zmc2V0KC0xKX0sdGFiSW5kZXg6LTEsY2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKShzdXBlclByZXZCdG5DbHMsZGlzYWJsZWRTdXBlck9mZnNldFByZXYmJiIiLmNvbmNhdChzdXBlclByZXZCdG5DbHMsIi1kaXNhYmxlZCIpKSxkaXNhYmxlZDpkaXNhYmxlZFN1cGVyT2Zmc2V0UHJldixzdHlsZTpoaWRlUHJldj9ISURERU5fU1RZTEU6e319LHZvaWQgMD09PV91c2VQYW5lbENvbnRleHQkc3VwZT8iXHhhYiI6X3VzZVBhbmVsQ29udGV4dCRzdXBlKSxvZmZzZXQmJnJlYWN0LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsImFyaWEtbGFiZWwiOmxvY2FsZS5wcmV2aW91c01vbnRoLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gb25PZmZzZXQoLTEpfSx0YWJJbmRleDotMSxjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKHByZXZCdG5DbHMsZGlzYWJsZWRPZmZzZXRQcmV2JiYiIi5jb25jYXQocHJldkJ0bkNscywiLWRpc2FibGVkIikpLGRpc2FibGVkOmRpc2FibGVkT2Zmc2V0UHJldixzdHlsZTpoaWRlUHJldj9ISURERU5fU1RZTEU6e319LHZvaWQgMD09PV91c2VQYW5lbENvbnRleHQkcHJldj8i4oC5IjpfdXNlUGFuZWxDb250ZXh0JHByZXYpLHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQoaGVhZGVyUHJlZml4Q2xzLCItdmlldyIpfSxjaGlsZHJlbiksb2Zmc2V0JiZyZWFjdC5jcmVhdGVFbGVtZW50KCJidXR0b24iLHt0eXBlOiJidXR0b24iLCJhcmlhLWxhYmVsIjpsb2NhbGUubmV4dE1vbnRoLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gb25PZmZzZXQoMSl9LHRhYkluZGV4Oi0xLGNsYXNzTmFtZTpub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0KCkobmV4dEJ0bkNscyxkaXNhYmxlZE9mZnNldE5leHQmJiIiLmNvbmNhdChuZXh0QnRuQ2xzLCItZGlzYWJsZWQiKSksZGlzYWJsZWQ6ZGlzYWJsZWRPZmZzZXROZXh0LHN0eWxlOmhpZGVOZXh0P0hJRERFTl9TVFlMRTp7fX0sdm9pZCAwPT09X3VzZVBhbmVsQ29udGV4dCRuZXh0PyLigLoiOl91c2VQYW5lbENvbnRleHQkbmV4dCksc3VwZXJPZmZzZXQmJnJlYWN0LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsImFyaWEtbGFiZWwiOmxvY2FsZS5uZXh0WWVhcixvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIG9uU3VwZXJPZmZzZXQoMSl9LHRhYkluZGV4Oi0xLGNsYXNzTmFtZTpub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0KCkoc3VwZXJOZXh0QnRuQ2xzLGRpc2FibGVkU3VwZXJPZmZzZXROZXh0JiYiIi5jb25jYXQoc3VwZXJOZXh0QnRuQ2xzLCItZGlzYWJsZWQiKSksZGlzYWJsZWQ6ZGlzYWJsZWRTdXBlck9mZnNldE5leHQsc3R5bGU6aGlkZU5leHQ/SElEREVOX1NUWUxFOnt9fSx2b2lkIDA9PT1fdXNlUGFuZWxDb250ZXh0JHN1cGUyPyJceGJiIjpfdXNlUGFuZWxDb250ZXh0JHN1cGUyKSl9O2Z1bmN0aW9uIERhdGVQYW5lbChwcm9wcyl7dmFyIGxvY2FsZSx3ZWVrRmlyc3REYXksbW9udGhTdGFydERhdGUsc3RhcnREYXRlV2Vla0RheSxhbGlnblN0YXJ0RGF0ZSxwcmVmaXhDbHM9cHJvcHMucHJlZml4Q2xzLF9wcm9wcyRwYW5lbE5hbWU9cHJvcHMucGFuZWxOYW1lLGxvY2FsZTE9cHJvcHMubG9jYWxlLGdlbmVyYXRlQ29uZmlnPXByb3BzLmdlbmVyYXRlQ29uZmlnLHBpY2tlclZhbHVlPXByb3BzLnBpY2tlclZhbHVlLG9uUGlja2VyVmFsdWVDaGFuZ2U9cHJvcHMub25QaWNrZXJWYWx1ZUNoYW5nZSxvbk1vZGVDaGFuZ2U9cHJvcHMub25Nb2RlQ2hhbmdlLF9wcm9wcyRtb2RlPXByb3BzLm1vZGUsbW9kZT12b2lkIDA9PT1fcHJvcHMkbW9kZT8iZGF0ZSI6X3Byb3BzJG1vZGUsZGlzYWJsZWREYXRlPXByb3BzLmRpc2FibGVkRGF0ZSxvblNlbGVjdD1wcm9wcy5vblNlbGVjdCxvbkhvdmVyPXByb3BzLm9uSG92ZXIsc2hvd1dlZWs9cHJvcHMuc2hvd1dlZWsscGFuZWxQcmVmaXhDbHM9IiIuY29uY2F0KHByZWZpeENscywiLSIpLmNvbmNhdCh2b2lkIDA9PT1fcHJvcHMkcGFuZWxOYW1lPyJkYXRlIjpfcHJvcHMkcGFuZWxOYW1lLCItcGFuZWwiKSxjZWxsUHJlZml4Q2xzPSIiLmNvbmNhdChwcmVmaXhDbHMsIi1jZWxsIiksaXNXZWVrPSJ3ZWVrIj09PW1vZGUsX3VzZUluZm8yPV9zbGljZWRUb0FycmF5KHVzZUluZm8ocHJvcHMsbW9kZSksMiksaW5mbz1fdXNlSW5mbzJbMF0sbm93PV91c2VJbmZvMlsxXSx3ZWVrRmlyc3REYXkxPWdlbmVyYXRlQ29uZmlnLmxvY2FsZS5nZXRXZWVrRmlyc3REYXkobG9jYWxlMS5sb2NhbGUpLG1vbnRoU3RhcnREYXRlMT1nZW5lcmF0ZUNvbmZpZy5zZXREYXRlKHBpY2tlclZhbHVlLDEpLGJhc2VEYXRlPShsb2NhbGU9bG9jYWxlMS5sb2NhbGUsd2Vla0ZpcnN0RGF5PWdlbmVyYXRlQ29uZmlnLmxvY2FsZS5nZXRXZWVrRmlyc3REYXkobG9jYWxlKSxtb250aFN0YXJ0RGF0ZT1nZW5lcmF0ZUNvbmZpZy5zZXREYXRlKG1vbnRoU3RhcnREYXRlMSwxKSxzdGFydERhdGVXZWVrRGF5PWdlbmVyYXRlQ29uZmlnLmdldFdlZWtEYXkobW9udGhTdGFydERhdGUpLGFsaWduU3RhcnREYXRlPWdlbmVyYXRlQ29uZmlnLmFkZERhdGUobW9udGhTdGFydERhdGUsd2Vla0ZpcnN0RGF5LXN0YXJ0RGF0ZVdlZWtEYXkpLGdlbmVyYXRlQ29uZmlnLmdldE1vbnRoKGFsaWduU3RhcnREYXRlKT09PWdlbmVyYXRlQ29uZmlnLmdldE1vbnRoKG1vbnRoU3RhcnREYXRlMSkmJmdlbmVyYXRlQ29uZmlnLmdldERhdGUoYWxpZ25TdGFydERhdGUpPjEmJihhbGlnblN0YXJ0RGF0ZT1nZW5lcmF0ZUNvbmZpZy5hZGREYXRlKGFsaWduU3RhcnREYXRlLC03KSksYWxpZ25TdGFydERhdGUpLG1vbnRoPWdlbmVyYXRlQ29uZmlnLmdldE1vbnRoKHBpY2tlclZhbHVlKSxwcmVmaXhDb2x1bW49KHZvaWQgMD09PXNob3dXZWVrP2lzV2VlazpzaG93V2Vlayk/ZnVuY3Rpb24oZGF0ZSl7dmFyIGRpc2FibGVkPW51bGw9PWRpc2FibGVkRGF0ZT92b2lkIDA6ZGlzYWJsZWREYXRlKGRhdGUse3R5cGU6IndlZWsifSk7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoInRkIix7a2V5OiJ3ZWVrIixjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKGNlbGxQcmVmaXhDbHMsIiIuY29uY2F0KGNlbGxQcmVmaXhDbHMsIi13ZWVrIiksKDAsZGVmaW5lUHJvcGVydHkuWikoe30sIiIuY29uY2F0KGNlbGxQcmVmaXhDbHMsIi1kaXNhYmxlZCIpLGRpc2FibGVkKSksb25DbGljazpmdW5jdGlvbigpe2Rpc2FibGVkfHxvblNlbGVjdChkYXRlKX0sb25Nb3VzZUVudGVyOmZ1bmN0aW9uKCl7ZGlzYWJsZWR8fG51bGw9PW9uSG92ZXJ8fG9uSG92ZXIoZGF0ZSl9LG9uTW91c2VMZWF2ZTpmdW5jdGlvbigpe2Rpc2FibGVkfHxudWxsPT1vbkhvdmVyfHxvbkhvdmVyKG51bGwpfX0scmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChjZWxsUHJlZml4Q2xzLCItaW5uZXIiKX0sZ2VuZXJhdGVDb25maWcubG9jYWxlLmdldFdlZWsobG9jYWxlMS5sb2NhbGUsZGF0ZSkpKX06bnVsbCxoZWFkZXJDZWxscz1bXSx3ZWVrRGF5c0xvY2FsZT1sb2NhbGUxLnNob3J0V2Vla0RheXN8fChnZW5lcmF0ZUNvbmZpZy5sb2NhbGUuZ2V0U2hvcnRXZWVrRGF5cz9nZW5lcmF0ZUNvbmZpZy5sb2NhbGUuZ2V0U2hvcnRXZWVrRGF5cyhsb2NhbGUxLmxvY2FsZSk6W10pO3ByZWZpeENvbHVtbiYmaGVhZGVyQ2VsbHMucHVzaChyZWFjdC5jcmVhdGVFbGVtZW50KCJ0aCIse2tleToiZW1wdHkifSxyZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7c3R5bGU6e3dpZHRoOjAsaGVpZ2h0OjAscG9zaXRpb246ImFic29sdXRlIixvdmVyZmxvdzoiaGlkZGVuIixvcGFjaXR5OjB9fSxsb2NhbGUxLndlZWspKSk7Zm9yKHZhciBpPTA7aTw3O2krPTEpaGVhZGVyQ2VsbHMucHVzaChyZWFjdC5jcmVhdGVFbGVtZW50KCJ0aCIse2tleTppfSx3ZWVrRGF5c0xvY2FsZVsoaSt3ZWVrRmlyc3REYXkxKSU3XSkpO3ZhciBtb250aHNMb2NhbGU9bG9jYWxlMS5zaG9ydE1vbnRoc3x8KGdlbmVyYXRlQ29uZmlnLmxvY2FsZS5nZXRTaG9ydE1vbnRocz9nZW5lcmF0ZUNvbmZpZy5sb2NhbGUuZ2V0U2hvcnRNb250aHMobG9jYWxlMS5sb2NhbGUpOltdKSx5ZWFyTm9kZT1yZWFjdC5jcmVhdGVFbGVtZW50KCJidXR0b24iLHt0eXBlOiJidXR0b24iLCJhcmlhLWxhYmVsIjpsb2NhbGUxLnllYXJTZWxlY3Qsa2V5OiJ5ZWFyIixvbkNsaWNrOmZ1bmN0aW9uKCl7b25Nb2RlQ2hhbmdlKCJ5ZWFyIixwaWNrZXJWYWx1ZSl9LHRhYkluZGV4Oi0xLGNsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCIteWVhci1idG4iKX0sZm9ybWF0VmFsdWUocGlja2VyVmFsdWUse2xvY2FsZTpsb2NhbGUxLGZvcm1hdDpsb2NhbGUxLnllYXJGb3JtYXQsZ2VuZXJhdGVDb25maWc6Z2VuZXJhdGVDb25maWd9KSksbW9udGhOb2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsImFyaWEtbGFiZWwiOmxvY2FsZTEubW9udGhTZWxlY3Qsa2V5OiJtb250aCIsb25DbGljazpmdW5jdGlvbigpe29uTW9kZUNoYW5nZSgibW9udGgiLHBpY2tlclZhbHVlKX0sdGFiSW5kZXg6LTEsY2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi1tb250aC1idG4iKX0sbG9jYWxlMS5tb250aEZvcm1hdD9mb3JtYXRWYWx1ZShwaWNrZXJWYWx1ZSx7bG9jYWxlOmxvY2FsZTEsZm9ybWF0OmxvY2FsZTEubW9udGhGb3JtYXQsZ2VuZXJhdGVDb25maWc6Z2VuZXJhdGVDb25maWd9KTptb250aHNMb2NhbGVbbW9udGhdKSxtb250aFllYXJOb2Rlcz1sb2NhbGUxLm1vbnRoQmVmb3JlWWVhcj9bbW9udGhOb2RlLHllYXJOb2RlXTpbeWVhck5vZGUsbW9udGhOb2RlXTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChQYW5lbENvbnRleHQuUHJvdmlkZXIse3ZhbHVlOmluZm99LHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0KCkocGFuZWxQcmVmaXhDbHMsc2hvd1dlZWsmJiIiLmNvbmNhdChwYW5lbFByZWZpeENscywiLXNob3ctd2VlayIpKX0scmVhY3QuY3JlYXRlRWxlbWVudChQaWNrZXJQYW5lbF9QYW5lbEhlYWRlcix7b2Zmc2V0OmZ1bmN0aW9uKGRpc3RhbmNlKXtyZXR1cm4gZ2VuZXJhdGVDb25maWcuYWRkTW9udGgocGlja2VyVmFsdWUsZGlzdGFuY2UpfSxzdXBlck9mZnNldDpmdW5jdGlvbihkaXN0YW5jZSl7cmV0dXJuIGdlbmVyYXRlQ29uZmlnLmFkZFllYXIocGlja2VyVmFsdWUsZGlzdGFuY2UpfSxvbkNoYW5nZTpvblBpY2tlclZhbHVlQ2hhbmdlLGdldFN0YXJ0OmZ1bmN0aW9uKGRhdGUpe3JldHVybiBnZW5lcmF0ZUNvbmZpZy5zZXREYXRlKGRhdGUsMSl9LGdldEVuZDpmdW5jdGlvbihkYXRlKXt2YXIgY2xvbmU9Z2VuZXJhdGVDb25maWcuc2V0RGF0ZShkYXRlLDEpO3JldHVybiBjbG9uZT1nZW5lcmF0ZUNvbmZpZy5hZGRNb250aChjbG9uZSwxKSxnZW5lcmF0ZUNvbmZpZy5hZGREYXRlKGNsb25lLC0xKX19LG1vbnRoWWVhck5vZGVzKSxyZWFjdC5jcmVhdGVFbGVtZW50KFBhbmVsQm9keSxfZXh0ZW5kcyh7dGl0bGVGb3JtYXQ6bG9jYWxlMS5maWVsZERhdGVGb3JtYXR9LHByb3BzLHtjb2xOdW06Nyxyb3dOdW06NixiYXNlRGF0ZTpiYXNlRGF0ZSxoZWFkZXJDZWxsczpoZWFkZXJDZWxscyxnZXRDZWxsRGF0ZTpmdW5jdGlvbihkYXRlLG9mZnNldCl7cmV0dXJuIGdlbmVyYXRlQ29uZmlnLmFkZERhdGUoZGF0ZSxvZmZzZXQpfSxnZXRDZWxsVGV4dDpmdW5jdGlvbihkYXRlKXtyZXR1cm4gZm9ybWF0VmFsdWUoZGF0ZSx7bG9jYWxlOmxvY2FsZTEsZm9ybWF0OmxvY2FsZTEuY2VsbERhdGVGb3JtYXQsZ2VuZXJhdGVDb25maWc6Z2VuZXJhdGVDb25maWd9KX0sZ2V0Q2VsbENsYXNzTmFtZTpmdW5jdGlvbihkYXRlKXtyZXR1cm4oMCxkZWZpbmVQcm9wZXJ0eS5aKSgoMCxkZWZpbmVQcm9wZXJ0eS5aKSh7fSwiIi5jb25jYXQocHJlZml4Q2xzLCItY2VsbC1pbi12aWV3IiksaXNTYW1lTW9udGgoZ2VuZXJhdGVDb25maWcsZGF0ZSxwaWNrZXJWYWx1ZSkpLCIiLmNvbmNhdChwcmVmaXhDbHMsIi1jZWxsLXRvZGF5IiksaXNTYW1lRGF0ZShnZW5lcmF0ZUNvbmZpZyxkYXRlLG5vdykpfSxwcmVmaXhDb2x1bW46cHJlZml4Q29sdW1uLGNlbGxTZWxlY3Rpb246IWlzV2Vla30pKSkpfXZhciBpc1Zpc2libGU9ZnVuY3Rpb24oZWxlbWVudCl7aWYoIWVsZW1lbnQpcmV0dXJuITE7aWYoZWxlbWVudCBpbnN0YW5jZW9mIEVsZW1lbnQpe2lmKGVsZW1lbnQub2Zmc2V0UGFyZW50KXJldHVybiEwO2lmKGVsZW1lbnQuZ2V0QkJveCl7dmFyIF9nZXRCQm94PWVsZW1lbnQuZ2V0QkJveCgpLHdpZHRoPV9nZXRCQm94LndpZHRoLGhlaWdodD1fZ2V0QkJveC5oZWlnaHQ7aWYod2lkdGh8fGhlaWdodClyZXR1cm4hMH1pZihlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCl7dmFyIF9lbGVtZW50JGdldEJvdW5kaW5nQz1lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLF93aWR0aD1fZWxlbWVudCRnZXRCb3VuZGluZ0Mud2lkdGgsX2hlaWdodD1fZWxlbWVudCRnZXRCb3VuZGluZ0MuaGVpZ2h0O2lmKF93aWR0aHx8X2hlaWdodClyZXR1cm4hMH19cmV0dXJuITF9LFNQRUVEX1BURz0xLzM7ZnVuY3Rpb24gVGltZUNvbHVtbihwcm9wcyl7dmFyIHZhbHVlLHNjcm9sbGluZ1JlZixzY3JvbGxSYWZSZWYsc2Nyb2xsRGlzdFJlZixzdG9wU2Nyb2xsLHNjcm9sbFJhZlRpbWVzUmVmLHVuaXRzPXByb3BzLnVuaXRzLHZhbHVlMT1wcm9wcy52YWx1ZSxvcHRpb25hbFZhbHVlPXByb3BzLm9wdGlvbmFsVmFsdWUsdHlwZT1wcm9wcy50eXBlLG9uQ2hhbmdlPXByb3BzLm9uQ2hhbmdlLG9uSG92ZXI9cHJvcHMub25Ib3ZlcixvbkRibENsaWNrPXByb3BzLm9uRGJsQ2xpY2ssY2hhbmdlT25TY3JvbGw9cHJvcHMuY2hhbmdlT25TY3JvbGwsX3VzZVBhbmVsQ29udGV4dD11c2VQYW5lbENvbnRleHQoKSxwcmVmaXhDbHM9X3VzZVBhbmVsQ29udGV4dC5wcmVmaXhDbHMsY2VsbFJlbmRlcj1fdXNlUGFuZWxDb250ZXh0LmNlbGxSZW5kZXIsbm93PV91c2VQYW5lbENvbnRleHQubm93LGxvY2FsZT1fdXNlUGFuZWxDb250ZXh0LmxvY2FsZSxjZWxsUHJlZml4Q2xzPSIiLmNvbmNhdChwcmVmaXhDbHMsIi10aW1lLXBhbmVsLWNlbGwiKSx1bFJlZj1yZWFjdC51c2VSZWYobnVsbCksY2hlY2tEZWxheVJlZj1yZWFjdC51c2VSZWYoKSxjbGVhckRlbGF5Q2hlY2s9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoY2hlY2tEZWxheVJlZi5jdXJyZW50KX0sX3VzZVNjcm9sbFRvMj1fc2xpY2VkVG9BcnJheSgodmFsdWU9bnVsbCE9dmFsdWUxP3ZhbHVlMTpvcHRpb25hbFZhbHVlLHNjcm9sbGluZ1JlZj1yZWFjdC51c2VSZWYoITEpLHNjcm9sbFJhZlJlZj1yZWFjdC51c2VSZWYobnVsbCksc2Nyb2xsRGlzdFJlZj1yZWFjdC51c2VSZWYobnVsbCksc3RvcFNjcm9sbD1mdW5jdGlvbigpe3dyYXBwZXJSYWYuY2FuY2VsKHNjcm9sbFJhZlJlZi5jdXJyZW50KSxzY3JvbGxpbmdSZWYuY3VycmVudD0hMX0sc2Nyb2xsUmFmVGltZXNSZWY9cmVhY3QudXNlUmVmKCksW3VzZUV2ZW50KGZ1bmN0aW9uKCl7dmFyIHVsPXVsUmVmLmN1cnJlbnQ7aWYoc2Nyb2xsRGlzdFJlZi5jdXJyZW50PW51bGwsc2Nyb2xsUmFmVGltZXNSZWYuY3VycmVudD0wLHVsKXt2YXIgdGFyZ2V0TGk9dWwucXVlcnlTZWxlY3RvcignW2RhdGEtdmFsdWU9IicuY29uY2F0KHZhbHVlLCciXScpKSxmaXJzdExpPXVsLnF1ZXJ5U2VsZWN0b3IoImxpIik7dGFyZ2V0TGkmJmZpcnN0TGkmJmZ1bmN0aW9uIGRvU2Nyb2xsKCl7c3RvcFNjcm9sbCgpLHNjcm9sbGluZ1JlZi5jdXJyZW50PSEwLHNjcm9sbFJhZlRpbWVzUmVmLmN1cnJlbnQrPTE7dmFyIGN1cnJlbnRUb3A9dWwuc2Nyb2xsVG9wLGZpcnN0TGlUb3A9Zmlyc3RMaS5vZmZzZXRUb3AsdGFyZ2V0TGlUb3A9dGFyZ2V0TGkub2Zmc2V0VG9wLHRhcmdldFRvcD10YXJnZXRMaVRvcC1maXJzdExpVG9wO2lmKDA9PT10YXJnZXRMaVRvcCYmdGFyZ2V0TGkhPT1maXJzdExpfHwhaXNWaXNpYmxlKHVsKSl7c2Nyb2xsUmFmVGltZXNSZWYuY3VycmVudDw9NSYmKHNjcm9sbFJhZlJlZi5jdXJyZW50PXdyYXBwZXJSYWYoZG9TY3JvbGwpKTtyZXR1cm59dmFyIG5leHRUb3A9Y3VycmVudFRvcCsodGFyZ2V0VG9wLWN1cnJlbnRUb3ApKlNQRUVEX1BURyxkaXN0PU1hdGguYWJzKHRhcmdldFRvcC1uZXh0VG9wKTtpZihudWxsIT09c2Nyb2xsRGlzdFJlZi5jdXJyZW50JiZzY3JvbGxEaXN0UmVmLmN1cnJlbnQ8ZGlzdCl7c3RvcFNjcm9sbCgpO3JldHVybn1pZihzY3JvbGxEaXN0UmVmLmN1cnJlbnQ9ZGlzdCxkaXN0PD0xKXt1bC5zY3JvbGxUb3A9dGFyZ2V0VG9wLHN0b3BTY3JvbGwoKTtyZXR1cm59dWwuc2Nyb2xsVG9wPW5leHRUb3Asc2Nyb2xsUmFmUmVmLmN1cnJlbnQ9d3JhcHBlclJhZihkb1Njcm9sbCl9KCl9fSksc3RvcFNjcm9sbCxmdW5jdGlvbigpe3JldHVybiBzY3JvbGxpbmdSZWYuY3VycmVudH1dKSwzKSxzeW5jU2Nyb2xsPV91c2VTY3JvbGxUbzJbMF0sc3RvcFNjcm9sbDE9X3VzZVNjcm9sbFRvMlsxXSxpc1Njcm9sbGluZz1fdXNlU2Nyb2xsVG8yWzJdO3JldHVybiB1c2VMYXlvdXRFZmZlY3QoZnVuY3Rpb24oKXtyZXR1cm4gc3luY1Njcm9sbCgpLGNsZWFyRGVsYXlDaGVjaygpLGZ1bmN0aW9uKCl7c3RvcFNjcm9sbDEoKSxjbGVhckRlbGF5Q2hlY2soKX19LFt2YWx1ZTEsb3B0aW9uYWxWYWx1ZSx1bml0cy5tYXAoZnVuY3Rpb24oX3JlZil7cmV0dXJuW19yZWYudmFsdWUsX3JlZi5sYWJlbCxfcmVmLmRpc2FibGVkXS5qb2luKCIsIil9KS5qb2luKCI7IildKSxyZWFjdC5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZToiIi5jb25jYXQoIiIuY29uY2F0KHByZWZpeENscywiLXRpbWUtcGFuZWwiKSwiLWNvbHVtbiIpLHJlZjp1bFJlZiwiZGF0YS10eXBlIjp0eXBlLG9uU2Nyb2xsOmZ1bmN0aW9uKGV2ZW50KXtjbGVhckRlbGF5Q2hlY2soKTt2YXIgdGFyZ2V0PWV2ZW50LnRhcmdldDshaXNTY3JvbGxpbmcoKSYmY2hhbmdlT25TY3JvbGwmJihjaGVja0RlbGF5UmVmLmN1cnJlbnQ9c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB1bD11bFJlZi5jdXJyZW50LGZpcnN0TGlUb3A9dWwucXVlcnlTZWxlY3RvcigibGkiKS5vZmZzZXRUb3AsbGlEaXN0TGlzdD1BcnJheS5mcm9tKHVsLnF1ZXJ5U2VsZWN0b3JBbGwoImxpIikpLm1hcChmdW5jdGlvbihsaSl7cmV0dXJuIGxpLm9mZnNldFRvcC1maXJzdExpVG9wfSkubWFwKGZ1bmN0aW9uKHRvcCxpbmRleCl7cmV0dXJuIHVuaXRzW2luZGV4XS5kaXNhYmxlZD9OdW1iZXIuTUFYX1NBRkVfSU5URUdFUjpNYXRoLmFicyh0b3AtdGFyZ2V0LnNjcm9sbFRvcCl9KSxtaW5EaXN0PU1hdGgubWluLmFwcGx5KE1hdGgsdG9Db25zdW1hYmxlQXJyYXlfdG9Db25zdW1hYmxlQXJyYXkobGlEaXN0TGlzdCkpLHRhcmdldFVuaXQ9dW5pdHNbbGlEaXN0TGlzdC5maW5kSW5kZXgoZnVuY3Rpb24oZGlzdCl7cmV0dXJuIGRpc3Q9PT1taW5EaXN0fSldO3RhcmdldFVuaXQmJiF0YXJnZXRVbml0LmRpc2FibGVkJiZvbkNoYW5nZSh0YXJnZXRVbml0LnZhbHVlKX0sMzAwKSl9fSx1bml0cy5tYXAoZnVuY3Rpb24oX3JlZjIpe3ZhciBsYWJlbD1fcmVmMi5sYWJlbCx1bml0VmFsdWU9X3JlZjIudmFsdWUsZGlzYWJsZWQ9X3JlZjIuZGlzYWJsZWQsaW5uZXI9cmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChjZWxsUHJlZml4Q2xzLCItaW5uZXIiKX0sbGFiZWwpO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KCJsaSIse2tleTp1bml0VmFsdWUsY2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKShjZWxsUHJlZml4Q2xzLCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKHt9LCIiLmNvbmNhdChjZWxsUHJlZml4Q2xzLCItc2VsZWN0ZWQiKSx2YWx1ZTE9PT11bml0VmFsdWUpLCIiLmNvbmNhdChjZWxsUHJlZml4Q2xzLCItZGlzYWJsZWQiKSxkaXNhYmxlZCkpLG9uQ2xpY2s6ZnVuY3Rpb24oKXtkaXNhYmxlZHx8b25DaGFuZ2UodW5pdFZhbHVlKX0sb25Eb3VibGVDbGljazpmdW5jdGlvbigpeyFkaXNhYmxlZCYmb25EYmxDbGljayYmb25EYmxDbGljaygpfSxvbk1vdXNlRW50ZXI6ZnVuY3Rpb24oKXtvbkhvdmVyKHVuaXRWYWx1ZSl9LG9uTW91c2VMZWF2ZTpmdW5jdGlvbigpe29uSG92ZXIobnVsbCl9LCJkYXRhLXZhbHVlIjp1bml0VmFsdWV9LGNlbGxSZW5kZXI/Y2VsbFJlbmRlcih1bml0VmFsdWUse3ByZWZpeENsczpwcmVmaXhDbHMsb3JpZ2luTm9kZTppbm5lcix0b2RheTpub3csdHlwZToidGltZSIsc3ViVHlwZTp0eXBlLGxvY2FsZTpsb2NhbGV9KTppbm5lcil9KSl9ZnVuY3Rpb24gVGltZVBhbmVsQm9keShwcm9wcyl7dmFyIHNob3dIb3VyPXByb3BzLnNob3dIb3VyLHNob3dNaW51dGU9cHJvcHMuc2hvd01pbnV0ZSxzaG93U2Vjb25kPXByb3BzLnNob3dTZWNvbmQsc2hvd01pbGxpc2Vjb25kPXByb3BzLnNob3dNaWxsaXNlY29uZCxzaG93TWVyaWRpZW09cHJvcHMudXNlMTJIb3VycyxjaGFuZ2VPblNjcm9sbD1wcm9wcy5jaGFuZ2VPblNjcm9sbCxfdXNlUGFuZWxDb250ZXh0PXVzZVBhbmVsQ29udGV4dCgpLHByZWZpeENscz1fdXNlUGFuZWxDb250ZXh0LnByZWZpeENscyx2YWx1ZXM9X3VzZVBhbmVsQ29udGV4dC52YWx1ZXMsZ2VuZXJhdGVDb25maWc9X3VzZVBhbmVsQ29udGV4dC5nZW5lcmF0ZUNvbmZpZyxsb2NhbGU9X3VzZVBhbmVsQ29udGV4dC5sb2NhbGUsb25TZWxlY3Q9X3VzZVBhbmVsQ29udGV4dC5vblNlbGVjdCxfdXNlUGFuZWxDb250ZXh0JG9uSG89X3VzZVBhbmVsQ29udGV4dC5vbkhvdmVyLG9uSG92ZXI9dm9pZCAwPT09X3VzZVBhbmVsQ29udGV4dCRvbkhvP2Z1bmN0aW9uKCl7fTpfdXNlUGFuZWxDb250ZXh0JG9uSG8scGlja2VyVmFsdWU9X3VzZVBhbmVsQ29udGV4dC5waWNrZXJWYWx1ZSx2YWx1ZT0obnVsbD09dmFsdWVzP3ZvaWQgMDp2YWx1ZXNbMF0pfHxudWxsLG9uQ2VsbERibENsaWNrPXJlYWN0LnVzZUNvbnRleHQoUGlja2VySGFja0NvbnRleHQpLm9uQ2VsbERibENsaWNrLF91c2VUaW1lSW5mbzI9X3NsaWNlZFRvQXJyYXkodXNlVGltZUluZm8oZ2VuZXJhdGVDb25maWcscHJvcHMsdmFsdWUpLDUpLGdldFZhbGlkVGltZT1fdXNlVGltZUluZm8yWzBdLHJvd0hvdXJVbml0cz1fdXNlVGltZUluZm8yWzFdLGdldE1pbnV0ZVVuaXRzPV91c2VUaW1lSW5mbzJbMl0sZ2V0U2Vjb25kVW5pdHM9X3VzZVRpbWVJbmZvMlszXSxnZXRNaWxsaXNlY29uZFVuaXRzPV91c2VUaW1lSW5mbzJbNF0sZ2V0VW5pdFZhbHVlPWZ1bmN0aW9uKGZ1bmMpe3JldHVyblt2YWx1ZSYmZ2VuZXJhdGVDb25maWdbZnVuY10odmFsdWUpLHBpY2tlclZhbHVlJiZnZW5lcmF0ZUNvbmZpZ1tmdW5jXShwaWNrZXJWYWx1ZSldfSxfZ2V0VW5pdFZhbHVlMj1fc2xpY2VkVG9BcnJheShnZXRVbml0VmFsdWUoImdldEhvdXIiKSwyKSxob3VyPV9nZXRVbml0VmFsdWUyWzBdLHBpY2tlckhvdXI9X2dldFVuaXRWYWx1ZTJbMV0sX2dldFVuaXRWYWx1ZTQ9X3NsaWNlZFRvQXJyYXkoZ2V0VW5pdFZhbHVlKCJnZXRNaW51dGUiKSwyKSxtaW51dGU9X2dldFVuaXRWYWx1ZTRbMF0scGlja2VyTWludXRlPV9nZXRVbml0VmFsdWU0WzFdLF9nZXRVbml0VmFsdWU2PV9zbGljZWRUb0FycmF5KGdldFVuaXRWYWx1ZSgiZ2V0U2Vjb25kIiksMiksc2Vjb25kPV9nZXRVbml0VmFsdWU2WzBdLHBpY2tlclNlY29uZD1fZ2V0VW5pdFZhbHVlNlsxXSxfZ2V0VW5pdFZhbHVlOD1fc2xpY2VkVG9BcnJheShnZXRVbml0VmFsdWUoImdldE1pbGxpc2Vjb25kIiksMiksbWlsbGlzZWNvbmQ9X2dldFVuaXRWYWx1ZThbMF0scGlja2VyTWlsbGlzZWNvbmQ9X2dldFVuaXRWYWx1ZThbMV0saG91clVuaXRzPXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gc2hvd01lcmlkaWVtP2hvdXI8MTI/cm93SG91clVuaXRzLmZpbHRlcihmdW5jdGlvbihoKXtyZXR1cm4gaC52YWx1ZTwxMn0pOnJvd0hvdXJVbml0cy5maWx0ZXIoZnVuY3Rpb24oaCl7cmV0dXJuIShoLnZhbHVlPDEyKX0pOnJvd0hvdXJVbml0c30sW2hvdXIscm93SG91clVuaXRzLHNob3dNZXJpZGllbV0pLGdldEVuYWJsZWQ9ZnVuY3Rpb24odW5pdHMsdmFsKXt2YXIgX2VuYWJsZWRVbml0cyQsZW5hYmxlZFVuaXRzPXVuaXRzLmZpbHRlcihmdW5jdGlvbih1bml0KXtyZXR1cm4hdW5pdC5kaXNhYmxlZH0pO3JldHVybiBudWxsIT12YWw/dmFsOm51bGw9PWVuYWJsZWRVbml0c3x8bnVsbD09PShfZW5hYmxlZFVuaXRzJD1lbmFibGVkVW5pdHNbMF0pfHx2b2lkIDA9PT1fZW5hYmxlZFVuaXRzJD92b2lkIDA6X2VuYWJsZWRVbml0cyQudmFsdWV9LHZhbGlkSG91cj1nZXRFbmFibGVkKHJvd0hvdXJVbml0cyxob3VyKSxtaW51dGVVbml0cz1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIGdldE1pbnV0ZVVuaXRzKHZhbGlkSG91cil9LFtnZXRNaW51dGVVbml0cyx2YWxpZEhvdXJdKSx2YWxpZE1pbnV0ZT1nZXRFbmFibGVkKG1pbnV0ZVVuaXRzLG1pbnV0ZSksc2Vjb25kVW5pdHM9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBnZXRTZWNvbmRVbml0cyh2YWxpZEhvdXIsdmFsaWRNaW51dGUpfSxbZ2V0U2Vjb25kVW5pdHMsdmFsaWRIb3VyLHZhbGlkTWludXRlXSksdmFsaWRTZWNvbmQ9Z2V0RW5hYmxlZChzZWNvbmRVbml0cyxzZWNvbmQpLG1pbGxpc2Vjb25kVW5pdHM9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBnZXRNaWxsaXNlY29uZFVuaXRzKHZhbGlkSG91cix2YWxpZE1pbnV0ZSx2YWxpZFNlY29uZCl9LFtnZXRNaWxsaXNlY29uZFVuaXRzLHZhbGlkSG91cix2YWxpZE1pbnV0ZSx2YWxpZFNlY29uZF0pLHZhbGlkTWlsbGlzZWNvbmQ9Z2V0RW5hYmxlZChtaWxsaXNlY29uZFVuaXRzLG1pbGxpc2Vjb25kKSxtZXJpZGllbVVuaXRzPXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtpZighc2hvd01lcmlkaWVtKXJldHVybltdO3ZhciBiYXNlPWdlbmVyYXRlQ29uZmlnLmdldE5vdygpLGFtRGF0ZT1nZW5lcmF0ZUNvbmZpZy5zZXRIb3VyKGJhc2UsNikscG1EYXRlPWdlbmVyYXRlQ29uZmlnLnNldEhvdXIoYmFzZSwxOCksZm9ybWF0TWVyaWRpZW09ZnVuY3Rpb24oZGF0ZSxkZWZhdWx0TGFiZWwpe3ZhciBjZWxsTWVyaWRpZW1Gb3JtYXQ9bG9jYWxlLmNlbGxNZXJpZGllbUZvcm1hdDtyZXR1cm4gY2VsbE1lcmlkaWVtRm9ybWF0P2Zvcm1hdFZhbHVlKGRhdGUse2dlbmVyYXRlQ29uZmlnOmdlbmVyYXRlQ29uZmlnLGxvY2FsZTpsb2NhbGUsZm9ybWF0OmNlbGxNZXJpZGllbUZvcm1hdH0pOmRlZmF1bHRMYWJlbH07cmV0dXJuW3tsYWJlbDpmb3JtYXRNZXJpZGllbShhbURhdGUsIkFNIiksdmFsdWU6ImFtIixkaXNhYmxlZDpyb3dIb3VyVW5pdHMuZXZlcnkoZnVuY3Rpb24oaCl7cmV0dXJuIGguZGlzYWJsZWR8fCEoaC52YWx1ZTwxMil9KX0se2xhYmVsOmZvcm1hdE1lcmlkaWVtKHBtRGF0ZSwiUE0iKSx2YWx1ZToicG0iLGRpc2FibGVkOnJvd0hvdXJVbml0cy5ldmVyeShmdW5jdGlvbihoKXtyZXR1cm4gaC5kaXNhYmxlZHx8aC52YWx1ZTwxMn0pfV19LFtyb3dIb3VyVW5pdHMsc2hvd01lcmlkaWVtLGdlbmVyYXRlQ29uZmlnLGxvY2FsZV0pLHRyaWdnZXJDaGFuZ2U9ZnVuY3Rpb24obmV4dERhdGUpe29uU2VsZWN0KGdldFZhbGlkVGltZShuZXh0RGF0ZSkpfSx0cmlnZ2VyRGF0ZVRtcGw9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3ZhciB0bXBsPXZhbHVlfHxwaWNrZXJWYWx1ZXx8Z2VuZXJhdGVDb25maWcuZ2V0Tm93KCksaXNOb3ROdWxsPWZ1bmN0aW9uKG51bSl7cmV0dXJuIG51bGwhPW51bX07cmV0dXJuIGlzTm90TnVsbChob3VyKT8odG1wbD1nZW5lcmF0ZUNvbmZpZy5zZXRIb3VyKHRtcGwsaG91ciksdG1wbD1nZW5lcmF0ZUNvbmZpZy5zZXRNaW51dGUodG1wbCxtaW51dGUpLHRtcGw9Z2VuZXJhdGVDb25maWcuc2V0U2Vjb25kKHRtcGwsc2Vjb25kKSx0bXBsPWdlbmVyYXRlQ29uZmlnLnNldE1pbGxpc2Vjb25kKHRtcGwsbWlsbGlzZWNvbmQpKTppc05vdE51bGwocGlja2VySG91cik/KHRtcGw9Z2VuZXJhdGVDb25maWcuc2V0SG91cih0bXBsLHBpY2tlckhvdXIpLHRtcGw9Z2VuZXJhdGVDb25maWcuc2V0TWludXRlKHRtcGwscGlja2VyTWludXRlKSx0bXBsPWdlbmVyYXRlQ29uZmlnLnNldFNlY29uZCh0bXBsLHBpY2tlclNlY29uZCksdG1wbD1nZW5lcmF0ZUNvbmZpZy5zZXRNaWxsaXNlY29uZCh0bXBsLHBpY2tlck1pbGxpc2Vjb25kKSk6aXNOb3ROdWxsKHZhbGlkSG91cikmJih0bXBsPWdlbmVyYXRlQ29uZmlnLnNldEhvdXIodG1wbCx2YWxpZEhvdXIpLHRtcGw9Z2VuZXJhdGVDb25maWcuc2V0TWludXRlKHRtcGwsdmFsaWRNaW51dGUpLHRtcGw9Z2VuZXJhdGVDb25maWcuc2V0U2Vjb25kKHRtcGwsdmFsaWRTZWNvbmQpLHRtcGw9Z2VuZXJhdGVDb25maWcuc2V0TWlsbGlzZWNvbmQodG1wbCx2YWxpZE1pbGxpc2Vjb25kKSksdG1wbH0sW3ZhbHVlLHBpY2tlclZhbHVlLGhvdXIsbWludXRlLHNlY29uZCxtaWxsaXNlY29uZCx2YWxpZEhvdXIsdmFsaWRNaW51dGUsdmFsaWRTZWNvbmQsdmFsaWRNaWxsaXNlY29uZCxwaWNrZXJIb3VyLHBpY2tlck1pbnV0ZSxwaWNrZXJTZWNvbmQscGlja2VyTWlsbGlzZWNvbmQsZ2VuZXJhdGVDb25maWddKSxmaWxsQ29sdW1uVmFsdWU9ZnVuY3Rpb24odmFsLGZ1bmMpe3JldHVybiBudWxsPT09dmFsP251bGw6Z2VuZXJhdGVDb25maWdbZnVuY10odHJpZ2dlckRhdGVUbXBsLHZhbCl9LGdldE5leHRIb3VyVGltZT1mdW5jdGlvbih2YWwpe3JldHVybiBmaWxsQ29sdW1uVmFsdWUodmFsLCJzZXRIb3VyIil9LGdldE5leHRNaW51dGVUaW1lPWZ1bmN0aW9uKHZhbCl7cmV0dXJuIGZpbGxDb2x1bW5WYWx1ZSh2YWwsInNldE1pbnV0ZSIpfSxnZXROZXh0U2Vjb25kVGltZT1mdW5jdGlvbih2YWwpe3JldHVybiBmaWxsQ29sdW1uVmFsdWUodmFsLCJzZXRTZWNvbmQiKX0sZ2V0TmV4dE1pbGxpc2Vjb25kVGltZT1mdW5jdGlvbih2YWwpe3JldHVybiBmaWxsQ29sdW1uVmFsdWUodmFsLCJzZXRNaWxsaXNlY29uZCIpfSxnZXRNZXJpZGllbVRpbWU9ZnVuY3Rpb24odmFsKXtyZXR1cm4gbnVsbD09PXZhbD9udWxsOiJhbSIhPT12YWx8fGhvdXI8MTI/InBtIj09PXZhbCYmaG91cjwxMj9nZW5lcmF0ZUNvbmZpZy5zZXRIb3VyKHRyaWdnZXJEYXRlVG1wbCxob3VyKzEyKTp0cmlnZ2VyRGF0ZVRtcGw6Z2VuZXJhdGVDb25maWcuc2V0SG91cih0cmlnZ2VyRGF0ZVRtcGwsaG91ci0xMil9LHNoYXJlZENvbHVtblByb3BzPXtvbkRibENsaWNrOm9uQ2VsbERibENsaWNrLGNoYW5nZU9uU2Nyb2xsOmNoYW5nZU9uU2Nyb2xsfTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi1jb250ZW50Iil9LHNob3dIb3VyJiZyZWFjdC5jcmVhdGVFbGVtZW50KFRpbWVDb2x1bW4sX2V4dGVuZHMoe3VuaXRzOmhvdXJVbml0cyx2YWx1ZTpob3VyLG9wdGlvbmFsVmFsdWU6cGlja2VySG91cix0eXBlOiJob3VyIixvbkNoYW5nZTpmdW5jdGlvbih2YWwpe3RyaWdnZXJDaGFuZ2UoZ2V0TmV4dEhvdXJUaW1lKHZhbCkpfSxvbkhvdmVyOmZ1bmN0aW9uKHZhbCl7b25Ib3ZlcihnZXROZXh0SG91clRpbWUodmFsKSl9fSxzaGFyZWRDb2x1bW5Qcm9wcykpLHNob3dNaW51dGUmJnJlYWN0LmNyZWF0ZUVsZW1lbnQoVGltZUNvbHVtbixfZXh0ZW5kcyh7dW5pdHM6bWludXRlVW5pdHMsdmFsdWU6bWludXRlLG9wdGlvbmFsVmFsdWU6cGlja2VyTWludXRlLHR5cGU6Im1pbnV0ZSIsb25DaGFuZ2U6ZnVuY3Rpb24odmFsKXt0cmlnZ2VyQ2hhbmdlKGdldE5leHRNaW51dGVUaW1lKHZhbCkpfSxvbkhvdmVyOmZ1bmN0aW9uKHZhbCl7b25Ib3ZlcihnZXROZXh0TWludXRlVGltZSh2YWwpKX19LHNoYXJlZENvbHVtblByb3BzKSksc2hvd1NlY29uZCYmcmVhY3QuY3JlYXRlRWxlbWVudChUaW1lQ29sdW1uLF9leHRlbmRzKHt1bml0czpzZWNvbmRVbml0cyx2YWx1ZTpzZWNvbmQsb3B0aW9uYWxWYWx1ZTpwaWNrZXJTZWNvbmQsdHlwZToic2Vjb25kIixvbkNoYW5nZTpmdW5jdGlvbih2YWwpe3RyaWdnZXJDaGFuZ2UoZ2V0TmV4dFNlY29uZFRpbWUodmFsKSl9LG9uSG92ZXI6ZnVuY3Rpb24odmFsKXtvbkhvdmVyKGdldE5leHRTZWNvbmRUaW1lKHZhbCkpfX0sc2hhcmVkQ29sdW1uUHJvcHMpKSxzaG93TWlsbGlzZWNvbmQmJnJlYWN0LmNyZWF0ZUVsZW1lbnQoVGltZUNvbHVtbixfZXh0ZW5kcyh7dW5pdHM6bWlsbGlzZWNvbmRVbml0cyx2YWx1ZTptaWxsaXNlY29uZCxvcHRpb25hbFZhbHVlOnBpY2tlck1pbGxpc2Vjb25kLHR5cGU6Im1pbGxpc2Vjb25kIixvbkNoYW5nZTpmdW5jdGlvbih2YWwpe3RyaWdnZXJDaGFuZ2UoZ2V0TmV4dE1pbGxpc2Vjb25kVGltZSh2YWwpKX0sb25Ib3ZlcjpmdW5jdGlvbih2YWwpe29uSG92ZXIoZ2V0TmV4dE1pbGxpc2Vjb25kVGltZSh2YWwpKX19LHNoYXJlZENvbHVtblByb3BzKSksc2hvd01lcmlkaWVtJiZyZWFjdC5jcmVhdGVFbGVtZW50KFRpbWVDb2x1bW4sX2V4dGVuZHMoe3VuaXRzOm1lcmlkaWVtVW5pdHMsdmFsdWU6bnVsbD09PWhvdXI/bnVsbDpob3VyPDEyPyJhbSI6InBtIix0eXBlOiJtZXJpZGllbSIsb25DaGFuZ2U6ZnVuY3Rpb24odmFsKXt0cmlnZ2VyQ2hhbmdlKGdldE1lcmlkaWVtVGltZSh2YWwpKX0sb25Ib3ZlcjpmdW5jdGlvbih2YWwpe29uSG92ZXIoZ2V0TWVyaWRpZW1UaW1lKHZhbCkpfX0sc2hhcmVkQ29sdW1uUHJvcHMpKSl9ZnVuY3Rpb24gVGltZVBhbmVsKHByb3BzKXt2YXIgcHJlZml4Q2xzPXByb3BzLnByZWZpeENscyx2YWx1ZT1wcm9wcy52YWx1ZSxsb2NhbGU9cHJvcHMubG9jYWxlLGdlbmVyYXRlQ29uZmlnPXByb3BzLmdlbmVyYXRlQ29uZmlnLHNob3dUaW1lPXByb3BzLnNob3dUaW1lLGZvcm1hdD0oc2hvd1RpbWV8fHt9KS5mb3JtYXQsaW5mbz1fc2xpY2VkVG9BcnJheSh1c2VJbmZvKHByb3BzLCJ0aW1lIiksMSlbMF07cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFuZWxDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTppbmZvfSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKCIiLmNvbmNhdChwcmVmaXhDbHMsIi10aW1lLXBhbmVsIikpfSxyZWFjdC5jcmVhdGVFbGVtZW50KFBpY2tlclBhbmVsX1BhbmVsSGVhZGVyLG51bGwsdmFsdWU/Zm9ybWF0VmFsdWUodmFsdWUse2xvY2FsZTpsb2NhbGUsZm9ybWF0OmZvcm1hdCxnZW5lcmF0ZUNvbmZpZzpnZW5lcmF0ZUNvbmZpZ30pOiJceGEwIikscmVhY3QuY3JlYXRlRWxlbWVudChUaW1lUGFuZWxCb2R5LHNob3dUaW1lKSkpfXZhciBEZWZhdWx0Q29tcG9uZW50cz17ZGF0ZTpEYXRlUGFuZWwsZGF0ZXRpbWU6ZnVuY3Rpb24ocHJvcHMpe3ZhciBwcmVmaXhDbHM9cHJvcHMucHJlZml4Q2xzLGdlbmVyYXRlQ29uZmlnPXByb3BzLmdlbmVyYXRlQ29uZmlnLHNob3dUaW1lPXByb3BzLnNob3dUaW1lLG9uU2VsZWN0PXByb3BzLm9uU2VsZWN0LHZhbHVlPXByb3BzLnZhbHVlLHBpY2tlclZhbHVlPXByb3BzLnBpY2tlclZhbHVlLG9uSG92ZXI9cHJvcHMub25Ib3ZlcixnZXRWYWxpZFRpbWU9X3NsaWNlZFRvQXJyYXkodXNlVGltZUluZm8oZ2VuZXJhdGVDb25maWcsc2hvd1RpbWUpLDEpWzBdLG1lcmdlVGltZT1mdW5jdGlvbihkYXRlKXtyZXR1cm4gdmFsdWU/ZmlsbFRpbWUoZ2VuZXJhdGVDb25maWcsZGF0ZSx2YWx1ZSk6ZmlsbFRpbWUoZ2VuZXJhdGVDb25maWcsZGF0ZSxwaWNrZXJWYWx1ZSl9O3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHByZWZpeENscywiLWRhdGV0aW1lLXBhbmVsIil9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoRGF0ZVBhbmVsLF9leHRlbmRzKHt9LHByb3BzLHtvblNlbGVjdDpmdW5jdGlvbihkYXRlKXt2YXIgY2xvbmVEYXRlPW1lcmdlVGltZShkYXRlKTtvblNlbGVjdChnZXRWYWxpZFRpbWUoY2xvbmVEYXRlLGNsb25lRGF0ZSkpfSxvbkhvdmVyOmZ1bmN0aW9uKGRhdGUpe251bGw9PW9uSG92ZXJ8fG9uSG92ZXIoZGF0ZT9tZXJnZVRpbWUoZGF0ZSk6ZGF0ZSl9fSkpLHJlYWN0LmNyZWF0ZUVsZW1lbnQoVGltZVBhbmVsLHByb3BzKSl9LHdlZWs6ZnVuY3Rpb24ocHJvcHMpe3ZhciBwcmVmaXhDbHM9cHJvcHMucHJlZml4Q2xzLGdlbmVyYXRlQ29uZmlnPXByb3BzLmdlbmVyYXRlQ29uZmlnLGxvY2FsZT1wcm9wcy5sb2NhbGUsdmFsdWU9cHJvcHMudmFsdWUsaG92ZXJWYWx1ZT1wcm9wcy5ob3ZlclZhbHVlLGhvdmVyUmFuZ2VWYWx1ZT1wcm9wcy5ob3ZlclJhbmdlVmFsdWUsbG9jYWxlTmFtZT1sb2NhbGUubG9jYWxlLHJvd1ByZWZpeENscz0iIi5jb25jYXQocHJlZml4Q2xzLCItd2Vlay1wYW5lbC1yb3ciKTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChEYXRlUGFuZWwsX2V4dGVuZHMoe30scHJvcHMse21vZGU6IndlZWsiLHBhbmVsTmFtZToid2VlayIscm93Q2xhc3NOYW1lOmZ1bmN0aW9uKGN1cnJlbnREYXRlKXt2YXIgcmFuZ2VDbHM9e307aWYoaG92ZXJSYW5nZVZhbHVlKXt2YXIgX2hvdmVyUmFuZ2VWYWx1ZT1fc2xpY2VkVG9BcnJheShob3ZlclJhbmdlVmFsdWUsMikscmFuZ2VTdGFydD1faG92ZXJSYW5nZVZhbHVlWzBdLHJhbmdlRW5kPV9ob3ZlclJhbmdlVmFsdWVbMV0saXNSYW5nZVN0YXJ0PWlzU2FtZVdlZWsoZ2VuZXJhdGVDb25maWcsbG9jYWxlTmFtZSxyYW5nZVN0YXJ0LGN1cnJlbnREYXRlKSxpc1JhbmdlRW5kPWlzU2FtZVdlZWsoZ2VuZXJhdGVDb25maWcsbG9jYWxlTmFtZSxyYW5nZUVuZCxjdXJyZW50RGF0ZSk7cmFuZ2VDbHNbIiIuY29uY2F0KHJvd1ByZWZpeENscywiLXJhbmdlLXN0YXJ0IildPWlzUmFuZ2VTdGFydCxyYW5nZUNsc1siIi5jb25jYXQocm93UHJlZml4Q2xzLCItcmFuZ2UtZW5kIildPWlzUmFuZ2VFbmQscmFuZ2VDbHNbIiIuY29uY2F0KHJvd1ByZWZpeENscywiLXJhbmdlLWhvdmVyIildPSFpc1JhbmdlU3RhcnQmJiFpc1JhbmdlRW5kJiZpc0luUmFuZ2UoZ2VuZXJhdGVDb25maWcscmFuZ2VTdGFydCxyYW5nZUVuZCxjdXJyZW50RGF0ZSl9cmV0dXJuIGhvdmVyVmFsdWUmJihyYW5nZUNsc1siIi5jb25jYXQocm93UHJlZml4Q2xzLCItaG92ZXIiKV09aG92ZXJWYWx1ZS5zb21lKGZ1bmN0aW9uKGRhdGUpe3JldHVybiBpc1NhbWVXZWVrKGdlbmVyYXRlQ29uZmlnLGxvY2FsZU5hbWUsY3VycmVudERhdGUsZGF0ZSl9KSksbm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKHJvd1ByZWZpeENscywoMCxkZWZpbmVQcm9wZXJ0eS5aKSh7fSwiIi5jb25jYXQocm93UHJlZml4Q2xzLCItc2VsZWN0ZWQiKSwhaG92ZXJSYW5nZVZhbHVlJiZpc1NhbWVXZWVrKGdlbmVyYXRlQ29uZmlnLGxvY2FsZU5hbWUsdmFsdWUsY3VycmVudERhdGUpKSxyYW5nZUNscyl9fSkpfSxtb250aDpmdW5jdGlvbihwcm9wcyl7dmFyIHByZWZpeENscz1wcm9wcy5wcmVmaXhDbHMsbG9jYWxlPXByb3BzLmxvY2FsZSxnZW5lcmF0ZUNvbmZpZz1wcm9wcy5nZW5lcmF0ZUNvbmZpZyxwaWNrZXJWYWx1ZT1wcm9wcy5waWNrZXJWYWx1ZSxkaXNhYmxlZERhdGU9cHJvcHMuZGlzYWJsZWREYXRlLG9uUGlja2VyVmFsdWVDaGFuZ2U9cHJvcHMub25QaWNrZXJWYWx1ZUNoYW5nZSxvbk1vZGVDaGFuZ2U9cHJvcHMub25Nb2RlQ2hhbmdlLGluZm89X3NsaWNlZFRvQXJyYXkodXNlSW5mbyhwcm9wcywibW9udGgiKSwxKVswXSxiYXNlRGF0ZT1nZW5lcmF0ZUNvbmZpZy5zZXRNb250aChwaWNrZXJWYWx1ZSwwKSxtb250aHNMb2NhbGU9bG9jYWxlLnNob3J0TW9udGhzfHwoZ2VuZXJhdGVDb25maWcubG9jYWxlLmdldFNob3J0TW9udGhzP2dlbmVyYXRlQ29uZmlnLmxvY2FsZS5nZXRTaG9ydE1vbnRocyhsb2NhbGUubG9jYWxlKTpbXSkseWVhck5vZGU9cmVhY3QuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixrZXk6InllYXIiLCJhcmlhLWxhYmVsIjpsb2NhbGUueWVhclNlbGVjdCxvbkNsaWNrOmZ1bmN0aW9uKCl7b25Nb2RlQ2hhbmdlKCJ5ZWFyIil9LHRhYkluZGV4Oi0xLGNsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCIteWVhci1idG4iKX0sZm9ybWF0VmFsdWUocGlja2VyVmFsdWUse2xvY2FsZTpsb2NhbGUsZm9ybWF0OmxvY2FsZS55ZWFyRm9ybWF0LGdlbmVyYXRlQ29uZmlnOmdlbmVyYXRlQ29uZmlnfSkpO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KFBhbmVsQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6aW5mb30scmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi1tb250aC1wYW5lbCIpfSxyZWFjdC5jcmVhdGVFbGVtZW50KFBpY2tlclBhbmVsX1BhbmVsSGVhZGVyLHtzdXBlck9mZnNldDpmdW5jdGlvbihkaXN0YW5jZSl7cmV0dXJuIGdlbmVyYXRlQ29uZmlnLmFkZFllYXIocGlja2VyVmFsdWUsZGlzdGFuY2UpfSxvbkNoYW5nZTpvblBpY2tlclZhbHVlQ2hhbmdlLGdldFN0YXJ0OmZ1bmN0aW9uKGRhdGUpe3JldHVybiBnZW5lcmF0ZUNvbmZpZy5zZXRNb250aChkYXRlLDApfSxnZXRFbmQ6ZnVuY3Rpb24oZGF0ZSl7cmV0dXJuIGdlbmVyYXRlQ29uZmlnLnNldE1vbnRoKGRhdGUsMTEpfX0seWVhck5vZGUpLHJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFuZWxCb2R5LF9leHRlbmRzKHt9LHByb3BzLHtkaXNhYmxlZERhdGU6ZGlzYWJsZWREYXRlP2Z1bmN0aW9uKGN1cnJlbnREYXRlLGRpc2FibGVkSW5mbyl7dmFyIHN0YXJ0RGF0ZT1nZW5lcmF0ZUNvbmZpZy5zZXREYXRlKGN1cnJlbnREYXRlLDEpLG5leHRNb250aFN0YXJ0RGF0ZT1nZW5lcmF0ZUNvbmZpZy5zZXRNb250aChzdGFydERhdGUsZ2VuZXJhdGVDb25maWcuZ2V0TW9udGgoc3RhcnREYXRlKSsxKSxlbmREYXRlPWdlbmVyYXRlQ29uZmlnLmFkZERhdGUobmV4dE1vbnRoU3RhcnREYXRlLC0xKTtyZXR1cm4gZGlzYWJsZWREYXRlKHN0YXJ0RGF0ZSxkaXNhYmxlZEluZm8pJiZkaXNhYmxlZERhdGUoZW5kRGF0ZSxkaXNhYmxlZEluZm8pfTpudWxsLHRpdGxlRm9ybWF0OmxvY2FsZS5maWVsZE1vbnRoRm9ybWF0LGNvbE51bTozLHJvd051bTo0LGJhc2VEYXRlOmJhc2VEYXRlLGdldENlbGxEYXRlOmZ1bmN0aW9uKGRhdGUsb2Zmc2V0KXtyZXR1cm4gZ2VuZXJhdGVDb25maWcuYWRkTW9udGgoZGF0ZSxvZmZzZXQpfSxnZXRDZWxsVGV4dDpmdW5jdGlvbihkYXRlKXt2YXIgbW9udGg9Z2VuZXJhdGVDb25maWcuZ2V0TW9udGgoZGF0ZSk7cmV0dXJuIGxvY2FsZS5tb250aEZvcm1hdD9mb3JtYXRWYWx1ZShkYXRlLHtsb2NhbGU6bG9jYWxlLGZvcm1hdDpsb2NhbGUubW9udGhGb3JtYXQsZ2VuZXJhdGVDb25maWc6Z2VuZXJhdGVDb25maWd9KTptb250aHNMb2NhbGVbbW9udGhdfSxnZXRDZWxsQ2xhc3NOYW1lOmZ1bmN0aW9uKCl7cmV0dXJuKDAsZGVmaW5lUHJvcGVydHkuWikoe30sIiIuY29uY2F0KHByZWZpeENscywiLWNlbGwtaW4tdmlldyIpLCEwKX19KSkpKX0scXVhcnRlcjpmdW5jdGlvbihwcm9wcyl7dmFyIHByZWZpeENscz1wcm9wcy5wcmVmaXhDbHMsbG9jYWxlPXByb3BzLmxvY2FsZSxnZW5lcmF0ZUNvbmZpZz1wcm9wcy5nZW5lcmF0ZUNvbmZpZyxwaWNrZXJWYWx1ZT1wcm9wcy5waWNrZXJWYWx1ZSxvblBpY2tlclZhbHVlQ2hhbmdlPXByb3BzLm9uUGlja2VyVmFsdWVDaGFuZ2Usb25Nb2RlQ2hhbmdlPXByb3BzLm9uTW9kZUNoYW5nZSxpbmZvPV9zbGljZWRUb0FycmF5KHVzZUluZm8ocHJvcHMsInF1YXJ0ZXIiKSwxKVswXSxiYXNlRGF0ZT1nZW5lcmF0ZUNvbmZpZy5zZXRNb250aChwaWNrZXJWYWx1ZSwwKSx5ZWFyTm9kZT1yZWFjdC5jcmVhdGVFbGVtZW50KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGtleToieWVhciIsImFyaWEtbGFiZWwiOmxvY2FsZS55ZWFyU2VsZWN0LG9uQ2xpY2s6ZnVuY3Rpb24oKXtvbk1vZGVDaGFuZ2UoInllYXIiKX0sdGFiSW5kZXg6LTEsY2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi15ZWFyLWJ0biIpfSxmb3JtYXRWYWx1ZShwaWNrZXJWYWx1ZSx7bG9jYWxlOmxvY2FsZSxmb3JtYXQ6bG9jYWxlLnllYXJGb3JtYXQsZ2VuZXJhdGVDb25maWc6Z2VuZXJhdGVDb25maWd9KSk7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFuZWxDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTppbmZvfSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHByZWZpeENscywiLXF1YXJ0ZXItcGFuZWwiKX0scmVhY3QuY3JlYXRlRWxlbWVudChQaWNrZXJQYW5lbF9QYW5lbEhlYWRlcix7c3VwZXJPZmZzZXQ6ZnVuY3Rpb24oZGlzdGFuY2Upe3JldHVybiBnZW5lcmF0ZUNvbmZpZy5hZGRZZWFyKHBpY2tlclZhbHVlLGRpc3RhbmNlKX0sb25DaGFuZ2U6b25QaWNrZXJWYWx1ZUNoYW5nZSxnZXRTdGFydDpmdW5jdGlvbihkYXRlKXtyZXR1cm4gZ2VuZXJhdGVDb25maWcuc2V0TW9udGgoZGF0ZSwwKX0sZ2V0RW5kOmZ1bmN0aW9uKGRhdGUpe3JldHVybiBnZW5lcmF0ZUNvbmZpZy5zZXRNb250aChkYXRlLDExKX19LHllYXJOb2RlKSxyZWFjdC5jcmVhdGVFbGVtZW50KFBhbmVsQm9keSxfZXh0ZW5kcyh7fSxwcm9wcyx7dGl0bGVGb3JtYXQ6bG9jYWxlLmZpZWxkUXVhcnRlckZvcm1hdCxjb2xOdW06NCxyb3dOdW06MSxiYXNlRGF0ZTpiYXNlRGF0ZSxnZXRDZWxsRGF0ZTpmdW5jdGlvbihkYXRlLG9mZnNldCl7cmV0dXJuIGdlbmVyYXRlQ29uZmlnLmFkZE1vbnRoKGRhdGUsMypvZmZzZXQpfSxnZXRDZWxsVGV4dDpmdW5jdGlvbihkYXRlKXtyZXR1cm4gZm9ybWF0VmFsdWUoZGF0ZSx7bG9jYWxlOmxvY2FsZSxmb3JtYXQ6bG9jYWxlLmNlbGxRdWFydGVyRm9ybWF0LGdlbmVyYXRlQ29uZmlnOmdlbmVyYXRlQ29uZmlnfSl9LGdldENlbGxDbGFzc05hbWU6ZnVuY3Rpb24oKXtyZXR1cm4oMCxkZWZpbmVQcm9wZXJ0eS5aKSh7fSwiIi5jb25jYXQocHJlZml4Q2xzLCItY2VsbC1pbi12aWV3IiksITApfX0pKSkpfSx5ZWFyOmZ1bmN0aW9uKHByb3BzKXt2YXIgcHJlZml4Q2xzPXByb3BzLnByZWZpeENscyxsb2NhbGU9cHJvcHMubG9jYWxlLGdlbmVyYXRlQ29uZmlnPXByb3BzLmdlbmVyYXRlQ29uZmlnLHBpY2tlclZhbHVlPXByb3BzLnBpY2tlclZhbHVlLGRpc2FibGVkRGF0ZT1wcm9wcy5kaXNhYmxlZERhdGUsb25QaWNrZXJWYWx1ZUNoYW5nZT1wcm9wcy5vblBpY2tlclZhbHVlQ2hhbmdlLG9uTW9kZUNoYW5nZT1wcm9wcy5vbk1vZGVDaGFuZ2UsaW5mbz1fc2xpY2VkVG9BcnJheSh1c2VJbmZvKHByb3BzLCJ5ZWFyIiksMSlbMF0sZ2V0U3RhcnRZZWFyPWZ1bmN0aW9uKGRhdGUpe3ZhciBzdGFydFllYXI9MTAqTWF0aC5mbG9vcihnZW5lcmF0ZUNvbmZpZy5nZXRZZWFyKGRhdGUpLzEwKTtyZXR1cm4gZ2VuZXJhdGVDb25maWcuc2V0WWVhcihkYXRlLHN0YXJ0WWVhcil9LGdldEVuZFllYXI9ZnVuY3Rpb24oZGF0ZSl7dmFyIHN0YXJ0WWVhcj1nZXRTdGFydFllYXIoZGF0ZSk7cmV0dXJuIGdlbmVyYXRlQ29uZmlnLmFkZFllYXIoc3RhcnRZZWFyLDkpfSxzdGFydFllYXJEYXRlPWdldFN0YXJ0WWVhcihwaWNrZXJWYWx1ZSksZW5kWWVhckRhdGU9Z2V0RW5kWWVhcihwaWNrZXJWYWx1ZSksYmFzZURhdGU9Z2VuZXJhdGVDb25maWcuYWRkWWVhcihzdGFydFllYXJEYXRlLC0xKSx5ZWFyTm9kZT1yZWFjdC5jcmVhdGVFbGVtZW50KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGtleToiZGVjYWRlIiwiYXJpYS1sYWJlbCI6bG9jYWxlLmRlY2FkZVNlbGVjdCxvbkNsaWNrOmZ1bmN0aW9uKCl7b25Nb2RlQ2hhbmdlKCJkZWNhZGUiKX0sdGFiSW5kZXg6LTEsY2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi1kZWNhZGUtYnRuIil9LGZvcm1hdFZhbHVlKHN0YXJ0WWVhckRhdGUse2xvY2FsZTpsb2NhbGUsZm9ybWF0OmxvY2FsZS55ZWFyRm9ybWF0LGdlbmVyYXRlQ29uZmlnOmdlbmVyYXRlQ29uZmlnfSksIi0iLGZvcm1hdFZhbHVlKGVuZFllYXJEYXRlLHtsb2NhbGU6bG9jYWxlLGZvcm1hdDpsb2NhbGUueWVhckZvcm1hdCxnZW5lcmF0ZUNvbmZpZzpnZW5lcmF0ZUNvbmZpZ30pKTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChQYW5lbENvbnRleHQuUHJvdmlkZXIse3ZhbHVlOmluZm99LHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCIteWVhci1wYW5lbCIpfSxyZWFjdC5jcmVhdGVFbGVtZW50KFBpY2tlclBhbmVsX1BhbmVsSGVhZGVyLHtzdXBlck9mZnNldDpmdW5jdGlvbihkaXN0YW5jZSl7cmV0dXJuIGdlbmVyYXRlQ29uZmlnLmFkZFllYXIocGlja2VyVmFsdWUsMTAqZGlzdGFuY2UpfSxvbkNoYW5nZTpvblBpY2tlclZhbHVlQ2hhbmdlLGdldFN0YXJ0OmdldFN0YXJ0WWVhcixnZXRFbmQ6Z2V0RW5kWWVhcn0seWVhck5vZGUpLHJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFuZWxCb2R5LF9leHRlbmRzKHt9LHByb3BzLHtkaXNhYmxlZERhdGU6ZGlzYWJsZWREYXRlP2Z1bmN0aW9uKGN1cnJlbnREYXRlLGRpc2FibGVkSW5mbyl7dmFyIHN0YXJ0TW9udGg9Z2VuZXJhdGVDb25maWcuc2V0TW9udGgoY3VycmVudERhdGUsMCksc3RhcnREYXRlPWdlbmVyYXRlQ29uZmlnLnNldERhdGUoc3RhcnRNb250aCwxKSxlbmRNb250aD1nZW5lcmF0ZUNvbmZpZy5hZGRZZWFyKHN0YXJ0RGF0ZSwxKSxlbmREYXRlPWdlbmVyYXRlQ29uZmlnLmFkZERhdGUoZW5kTW9udGgsLTEpO3JldHVybiBkaXNhYmxlZERhdGUoc3RhcnREYXRlLGRpc2FibGVkSW5mbykmJmRpc2FibGVkRGF0ZShlbmREYXRlLGRpc2FibGVkSW5mbyl9Om51bGwsdGl0bGVGb3JtYXQ6bG9jYWxlLmZpZWxkWWVhckZvcm1hdCxjb2xOdW06Myxyb3dOdW06NCxiYXNlRGF0ZTpiYXNlRGF0ZSxnZXRDZWxsRGF0ZTpmdW5jdGlvbihkYXRlLG9mZnNldCl7cmV0dXJuIGdlbmVyYXRlQ29uZmlnLmFkZFllYXIoZGF0ZSxvZmZzZXQpfSxnZXRDZWxsVGV4dDpmdW5jdGlvbihkYXRlKXtyZXR1cm4gZm9ybWF0VmFsdWUoZGF0ZSx7bG9jYWxlOmxvY2FsZSxmb3JtYXQ6bG9jYWxlLmNlbGxZZWFyRm9ybWF0LGdlbmVyYXRlQ29uZmlnOmdlbmVyYXRlQ29uZmlnfSl9LGdldENlbGxDbGFzc05hbWU6ZnVuY3Rpb24oZGF0ZSl7cmV0dXJuKDAsZGVmaW5lUHJvcGVydHkuWikoe30sIiIuY29uY2F0KHByZWZpeENscywiLWNlbGwtaW4tdmlldyIpLGlzU2FtZVllYXIoZ2VuZXJhdGVDb25maWcsZGF0ZSxzdGFydFllYXJEYXRlKXx8aXNTYW1lWWVhcihnZW5lcmF0ZUNvbmZpZyxkYXRlLGVuZFllYXJEYXRlKXx8aXNJblJhbmdlKGdlbmVyYXRlQ29uZmlnLHN0YXJ0WWVhckRhdGUsZW5kWWVhckRhdGUsZGF0ZSkpfX0pKSkpfSxkZWNhZGU6ZnVuY3Rpb24ocHJvcHMpe3ZhciBwcmVmaXhDbHM9cHJvcHMucHJlZml4Q2xzLGxvY2FsZT1wcm9wcy5sb2NhbGUsZ2VuZXJhdGVDb25maWc9cHJvcHMuZ2VuZXJhdGVDb25maWcscGlja2VyVmFsdWU9cHJvcHMucGlja2VyVmFsdWUsZGlzYWJsZWREYXRlPXByb3BzLmRpc2FibGVkRGF0ZSxvblBpY2tlclZhbHVlQ2hhbmdlPXByb3BzLm9uUGlja2VyVmFsdWVDaGFuZ2UsaW5mbz1fc2xpY2VkVG9BcnJheSh1c2VJbmZvKHByb3BzLCJkZWNhZGUiKSwxKVswXSxnZXRTdGFydFllYXI9ZnVuY3Rpb24oZGF0ZSl7dmFyIHN0YXJ0WWVhcj0xMDAqTWF0aC5mbG9vcihnZW5lcmF0ZUNvbmZpZy5nZXRZZWFyKGRhdGUpLzEwMCk7cmV0dXJuIGdlbmVyYXRlQ29uZmlnLnNldFllYXIoZGF0ZSxzdGFydFllYXIpfSxnZXRFbmRZZWFyPWZ1bmN0aW9uKGRhdGUpe3ZhciBzdGFydFllYXI9Z2V0U3RhcnRZZWFyKGRhdGUpO3JldHVybiBnZW5lcmF0ZUNvbmZpZy5hZGRZZWFyKHN0YXJ0WWVhciw5OSl9LHN0YXJ0WWVhckRhdGU9Z2V0U3RhcnRZZWFyKHBpY2tlclZhbHVlKSxlbmRZZWFyRGF0ZT1nZXRFbmRZZWFyKHBpY2tlclZhbHVlKSxiYXNlRGF0ZT1nZW5lcmF0ZUNvbmZpZy5hZGRZZWFyKHN0YXJ0WWVhckRhdGUsLTEwKSx5ZWFyTm9kZT0iIi5jb25jYXQoZm9ybWF0VmFsdWUoc3RhcnRZZWFyRGF0ZSx7bG9jYWxlOmxvY2FsZSxmb3JtYXQ6bG9jYWxlLnllYXJGb3JtYXQsZ2VuZXJhdGVDb25maWc6Z2VuZXJhdGVDb25maWd9KSwiLSIpLmNvbmNhdChmb3JtYXRWYWx1ZShlbmRZZWFyRGF0ZSx7bG9jYWxlOmxvY2FsZSxmb3JtYXQ6bG9jYWxlLnllYXJGb3JtYXQsZ2VuZXJhdGVDb25maWc6Z2VuZXJhdGVDb25maWd9KSk7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFuZWxDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTppbmZvfSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHByZWZpeENscywiLWRlY2FkZS1wYW5lbCIpfSxyZWFjdC5jcmVhdGVFbGVtZW50KFBpY2tlclBhbmVsX1BhbmVsSGVhZGVyLHtzdXBlck9mZnNldDpmdW5jdGlvbihkaXN0YW5jZSl7cmV0dXJuIGdlbmVyYXRlQ29uZmlnLmFkZFllYXIocGlja2VyVmFsdWUsMTAwKmRpc3RhbmNlKX0sb25DaGFuZ2U6b25QaWNrZXJWYWx1ZUNoYW5nZSxnZXRTdGFydDpnZXRTdGFydFllYXIsZ2V0RW5kOmdldEVuZFllYXJ9LHllYXJOb2RlKSxyZWFjdC5jcmVhdGVFbGVtZW50KFBhbmVsQm9keSxfZXh0ZW5kcyh7fSxwcm9wcyx7ZGlzYWJsZWREYXRlOmRpc2FibGVkRGF0ZT9mdW5jdGlvbihjdXJyZW50RGF0ZSxkaXNhYmxlZEluZm8pe3ZhciBiYXNlU3RhcnREYXRlPWdlbmVyYXRlQ29uZmlnLnNldERhdGUoY3VycmVudERhdGUsMSksYmFzZVN0YXJ0TW9udGg9Z2VuZXJhdGVDb25maWcuc2V0TW9udGgoYmFzZVN0YXJ0RGF0ZSwwKSxiYXNlU3RhcnRZZWFyPWdlbmVyYXRlQ29uZmlnLnNldFllYXIoYmFzZVN0YXJ0TW9udGgsMTAqTWF0aC5mbG9vcihnZW5lcmF0ZUNvbmZpZy5nZXRZZWFyKGJhc2VTdGFydE1vbnRoKS8xMCkpLGJhc2VFbmRZZWFyPWdlbmVyYXRlQ29uZmlnLmFkZFllYXIoYmFzZVN0YXJ0WWVhciwxMCksYmFzZUVuZERhdGU9Z2VuZXJhdGVDb25maWcuYWRkRGF0ZShiYXNlRW5kWWVhciwtMSk7cmV0dXJuIGRpc2FibGVkRGF0ZShiYXNlU3RhcnRZZWFyLGRpc2FibGVkSW5mbykmJmRpc2FibGVkRGF0ZShiYXNlRW5kRGF0ZSxkaXNhYmxlZEluZm8pfTpudWxsLGNvbE51bTozLHJvd051bTo0LGJhc2VEYXRlOmJhc2VEYXRlLGdldENlbGxEYXRlOmZ1bmN0aW9uKGRhdGUsb2Zmc2V0KXtyZXR1cm4gZ2VuZXJhdGVDb25maWcuYWRkWWVhcihkYXRlLDEwKm9mZnNldCl9LGdldENlbGxUZXh0OmZ1bmN0aW9uKGRhdGUpe3ZhciBjZWxsWWVhckZvcm1hdD1sb2NhbGUuY2VsbFllYXJGb3JtYXQsc3RhcnRZZWFyU3RyPWZvcm1hdFZhbHVlKGRhdGUse2xvY2FsZTpsb2NhbGUsZm9ybWF0OmNlbGxZZWFyRm9ybWF0LGdlbmVyYXRlQ29uZmlnOmdlbmVyYXRlQ29uZmlnfSksZW5kWWVhclN0cj1mb3JtYXRWYWx1ZShnZW5lcmF0ZUNvbmZpZy5hZGRZZWFyKGRhdGUsOSkse2xvY2FsZTpsb2NhbGUsZm9ybWF0OmNlbGxZZWFyRm9ybWF0LGdlbmVyYXRlQ29uZmlnOmdlbmVyYXRlQ29uZmlnfSk7cmV0dXJuIiIuY29uY2F0KHN0YXJ0WWVhclN0ciwiLSIpLmNvbmNhdChlbmRZZWFyU3RyKX0sZ2V0Q2VsbENsYXNzTmFtZTpmdW5jdGlvbihkYXRlKXtyZXR1cm4oMCxkZWZpbmVQcm9wZXJ0eS5aKSh7fSwiIi5jb25jYXQocHJlZml4Q2xzLCItY2VsbC1pbi12aWV3IiksaXNTYW1lRGVjYWRlKGdlbmVyYXRlQ29uZmlnLGRhdGUsc3RhcnRZZWFyRGF0ZSl8fGlzU2FtZURlY2FkZShnZW5lcmF0ZUNvbmZpZyxkYXRlLGVuZFllYXJEYXRlKXx8aXNJblJhbmdlKGdlbmVyYXRlQ29uZmlnLHN0YXJ0WWVhckRhdGUsZW5kWWVhckRhdGUsZGF0ZSkpfX0pKSkpfSx0aW1lOlRpbWVQYW5lbH0sUmVmUGFuZWxQaWNrZXI9cmVhY3QubWVtbyhyZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7dmFyIF9SZWFjdCR1c2VDb250ZXh0LGxvY2FsZT1wcm9wcy5sb2NhbGUsZ2VuZXJhdGVDb25maWc9cHJvcHMuZ2VuZXJhdGVDb25maWcsZGlyZWN0aW9uPXByb3BzLmRpcmVjdGlvbixwcmVmaXhDbHM9cHJvcHMucHJlZml4Q2xzLF9wcm9wcyR0YWJJbmRleD1wcm9wcy50YWJJbmRleCxtdWx0aXBsZT1wcm9wcy5tdWx0aXBsZSxkZWZhdWx0VmFsdWU9cHJvcHMuZGVmYXVsdFZhbHVlLHZhbHVlPXByb3BzLnZhbHVlLG9uQ2hhbmdlPXByb3BzLm9uQ2hhbmdlLG9uU2VsZWN0PXByb3BzLm9uU2VsZWN0LGRlZmF1bHRQaWNrZXJWYWx1ZT1wcm9wcy5kZWZhdWx0UGlja2VyVmFsdWUscGlja2VyVmFsdWU9cHJvcHMucGlja2VyVmFsdWUsb25QaWNrZXJWYWx1ZUNoYW5nZT1wcm9wcy5vblBpY2tlclZhbHVlQ2hhbmdlLG1vZGU9cHJvcHMubW9kZSxvblBhbmVsQ2hhbmdlPXByb3BzLm9uUGFuZWxDaGFuZ2UsX3Byb3BzJHBpY2tlcj1wcm9wcy5waWNrZXIscGlja2VyPXZvaWQgMD09PV9wcm9wcyRwaWNrZXI/ImRhdGUiOl9wcm9wcyRwaWNrZXIsc2hvd1RpbWU9cHJvcHMuc2hvd1RpbWUsaG92ZXJWYWx1ZT1wcm9wcy5ob3ZlclZhbHVlLGhvdmVyUmFuZ2VWYWx1ZT1wcm9wcy5ob3ZlclJhbmdlVmFsdWUsY2VsbFJlbmRlcj1wcm9wcy5jZWxsUmVuZGVyLGRhdGVSZW5kZXI9cHJvcHMuZGF0ZVJlbmRlcixtb250aENlbGxSZW5kZXI9cHJvcHMubW9udGhDZWxsUmVuZGVyLF9wcm9wcyRjb21wb25lbnRzPXByb3BzLmNvbXBvbmVudHMsaGlkZUhlYWRlcj1wcm9wcy5oaWRlSGVhZGVyLG1lcmdlZFByZWZpeENscz0obnVsbD09PShfUmVhY3QkdXNlQ29udGV4dD1yZWFjdC51c2VDb250ZXh0KFBpY2tlckNvbnRleHQpKXx8dm9pZCAwPT09X1JlYWN0JHVzZUNvbnRleHQ/dm9pZCAwOl9SZWFjdCR1c2VDb250ZXh0LnByZWZpeENscyl8fHByZWZpeENsc3x8InJjLXBpY2tlciIscm9vdFJlZj1yZWFjdC51c2VSZWYoKTtyZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKHJlZixmdW5jdGlvbigpe3JldHVybntuYXRpdmVFbGVtZW50OnJvb3RSZWYuY3VycmVudH19KTt2YXIgX2dldFRpbWVQcm9wczI9X3NsaWNlZFRvQXJyYXkoZ2V0VGltZVByb3BzKHByb3BzKSw0KSx0aW1lUHJvcHM9X2dldFRpbWVQcm9wczJbMF0sbG9jYWxlVGltZVByb3BzPV9nZXRUaW1lUHJvcHMyWzFdLHNob3dUaW1lRm9ybWF0PV9nZXRUaW1lUHJvcHMyWzJdLHByb3BGb3JtYXQ9X2dldFRpbWVQcm9wczJbM10sZmlsbGVkTG9jYWxlPXVzZUxvY2FsZShsb2NhbGUsbG9jYWxlVGltZVByb3BzKSxpbnRlcm5hbFBpY2tlcj0iZGF0ZSI9PT1waWNrZXImJnNob3dUaW1lPyJkYXRldGltZSI6cGlja2VyLG1lcmdlZFNob3dUaW1lPXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gZmlsbFNob3dUaW1lQ29uZmlnKGludGVybmFsUGlja2VyLHNob3dUaW1lRm9ybWF0LHByb3BGb3JtYXQsdGltZVByb3BzLGZpbGxlZExvY2FsZSl9LFtpbnRlcm5hbFBpY2tlcixzaG93VGltZUZvcm1hdCxwcm9wRm9ybWF0LHRpbWVQcm9wcyxmaWxsZWRMb2NhbGVdKSxub3c9Z2VuZXJhdGVDb25maWcuZ2V0Tm93KCksX3VzZU1lcmdlZFN0YXRlMj1fc2xpY2VkVG9BcnJheSh1c2VNZXJnZWRTdGF0ZShwaWNrZXIse3ZhbHVlOm1vZGUscG9zdFN0YXRlOmZ1bmN0aW9uKHZhbCl7cmV0dXJuIHZhbHx8ImRhdGUifX0pLDIpLG1lcmdlZE1vZGU9X3VzZU1lcmdlZFN0YXRlMlswXSxzZXRNZXJnZWRNb2RlPV91c2VNZXJnZWRTdGF0ZTJbMV0saW50ZXJuYWxNb2RlPSJkYXRlIj09PW1lcmdlZE1vZGUmJm1lcmdlZFNob3dUaW1lPyJkYXRldGltZSI6bWVyZ2VkTW9kZSx0b2dnbGVEYXRlcz11c2VUb2dnbGVEYXRlcyhnZW5lcmF0ZUNvbmZpZyxsb2NhbGUsaW50ZXJuYWxQaWNrZXIpLF91c2VNZXJnZWRTdGF0ZTQ9X3NsaWNlZFRvQXJyYXkodXNlTWVyZ2VkU3RhdGUoZGVmYXVsdFZhbHVlLHt2YWx1ZTp2YWx1ZX0pLDIpLGlubmVyVmFsdWU9X3VzZU1lcmdlZFN0YXRlNFswXSxzZXRNZXJnZWRWYWx1ZT1fdXNlTWVyZ2VkU3RhdGU0WzFdLG1lcmdlZFZhbHVlPXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgdmFsdWVzPXRvQXJyYXkoaW5uZXJWYWx1ZSkuZmlsdGVyKGZ1bmN0aW9uKHZhbCl7cmV0dXJuIHZhbH0pO3JldHVybiBtdWx0aXBsZT92YWx1ZXM6dmFsdWVzLnNsaWNlKDAsMSl9LFtpbm5lclZhbHVlLG11bHRpcGxlXSksdHJpZ2dlckNoYW5nZT11c2VFdmVudChmdW5jdGlvbihuZXh0VmFsdWUpe3NldE1lcmdlZFZhbHVlKG5leHRWYWx1ZSksb25DaGFuZ2UmJihudWxsPT09bmV4dFZhbHVlfHxtZXJnZWRWYWx1ZS5sZW5ndGghPT1uZXh0VmFsdWUubGVuZ3RofHxtZXJnZWRWYWx1ZS5zb21lKGZ1bmN0aW9uKG9yaSxpbmRleCl7cmV0dXJuIWlzU2FtZShnZW5lcmF0ZUNvbmZpZyxsb2NhbGUsb3JpLG5leHRWYWx1ZVtpbmRleF0saW50ZXJuYWxQaWNrZXIpfSkpJiYobnVsbD09b25DaGFuZ2V8fG9uQ2hhbmdlKG11bHRpcGxlP25leHRWYWx1ZTpuZXh0VmFsdWVbMF0pKX0pLG9uSW50ZXJuYWxTZWxlY3Q9dXNlRXZlbnQoZnVuY3Rpb24obmV3RGF0ZSl7bnVsbD09b25TZWxlY3R8fG9uU2VsZWN0KG5ld0RhdGUpLG1lcmdlZE1vZGU9PT1waWNrZXImJnRyaWdnZXJDaGFuZ2UobXVsdGlwbGU/dG9nZ2xlRGF0ZXMobWVyZ2VkVmFsdWUsbmV3RGF0ZSk6W25ld0RhdGVdKX0pLF91c2VNZXJnZWRTdGF0ZTY9X3NsaWNlZFRvQXJyYXkodXNlTWVyZ2VkU3RhdGUoZGVmYXVsdFBpY2tlclZhbHVlfHxtZXJnZWRWYWx1ZVswXXx8bm93LHt2YWx1ZTpwaWNrZXJWYWx1ZX0pLDIpLG1lcmdlZFBpY2tlclZhbHVlPV91c2VNZXJnZWRTdGF0ZTZbMF0sc2V0SW50ZXJuYWxQaWNrZXJWYWx1ZT1fdXNlTWVyZ2VkU3RhdGU2WzFdO3JlYWN0LnVzZUVmZmVjdChmdW5jdGlvbigpe21lcmdlZFZhbHVlWzBdJiYhcGlja2VyVmFsdWUmJnNldEludGVybmFsUGlja2VyVmFsdWUobWVyZ2VkVmFsdWVbMF0pfSxbbWVyZ2VkVmFsdWVbMF1dKTt2YXIgdHJpZ2dlclBhbmVsQ2hhbmdlPWZ1bmN0aW9uKHZpZXdEYXRlLG5leHRNb2RlKXtudWxsPT1vblBhbmVsQ2hhbmdlfHxvblBhbmVsQ2hhbmdlKHZpZXdEYXRlfHxwaWNrZXJWYWx1ZSxuZXh0TW9kZXx8bWVyZ2VkTW9kZSl9LHNldFBpY2tlclZhbHVlPWZ1bmN0aW9uKG5leHRQaWNrZXJWYWx1ZSl7dmFyIHRyaWdnZXJQYW5lbEV2ZW50PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07c2V0SW50ZXJuYWxQaWNrZXJWYWx1ZShuZXh0UGlja2VyVmFsdWUpLG51bGw9PW9uUGlja2VyVmFsdWVDaGFuZ2V8fG9uUGlja2VyVmFsdWVDaGFuZ2UobmV4dFBpY2tlclZhbHVlKSx0cmlnZ2VyUGFuZWxFdmVudCYmdHJpZ2dlclBhbmVsQ2hhbmdlKG5leHRQaWNrZXJWYWx1ZSl9LHRyaWdnZXJNb2RlQ2hhbmdlPWZ1bmN0aW9uKG5leHRNb2RlLHZpZXdEYXRlKXtzZXRNZXJnZWRNb2RlKG5leHRNb2RlKSx2aWV3RGF0ZSYmc2V0UGlja2VyVmFsdWUodmlld0RhdGUpLHRyaWdnZXJQYW5lbENoYW5nZSh2aWV3RGF0ZSxuZXh0TW9kZSl9LGhvdmVyUmFuZ2VEYXRlPXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtpZihBcnJheS5pc0FycmF5KGhvdmVyUmFuZ2VWYWx1ZSkpe3ZhciBzdGFydCxlbmQsX2hvdmVyUmFuZ2VWYWx1ZT1fc2xpY2VkVG9BcnJheShob3ZlclJhbmdlVmFsdWUsMik7c3RhcnQ9X2hvdmVyUmFuZ2VWYWx1ZVswXSxlbmQ9X2hvdmVyUmFuZ2VWYWx1ZVsxXX1lbHNlIHN0YXJ0PWhvdmVyUmFuZ2VWYWx1ZTtyZXR1cm4gc3RhcnR8fGVuZD8oc3RhcnQ9c3RhcnR8fGVuZCxlbmQ9ZW5kfHxzdGFydCxnZW5lcmF0ZUNvbmZpZy5pc0FmdGVyKHN0YXJ0LGVuZCk/W2VuZCxzdGFydF06W3N0YXJ0LGVuZF0pOm51bGx9LFtob3ZlclJhbmdlVmFsdWUsZ2VuZXJhdGVDb25maWddKSxvbkludGVybmFsQ2VsbFJlbmRlcj11c2VDZWxsUmVuZGVyKGNlbGxSZW5kZXIsZGF0ZVJlbmRlcixtb250aENlbGxSZW5kZXIpLFBhbmVsQ29tcG9uZW50PSh2b2lkIDA9PT1fcHJvcHMkY29tcG9uZW50cz97fTpfcHJvcHMkY29tcG9uZW50cylbaW50ZXJuYWxNb2RlXXx8RGVmYXVsdENvbXBvbmVudHNbaW50ZXJuYWxNb2RlXXx8RGF0ZVBhbmVsLHBhcmVudEhhY2tDb250ZXh0PXJlYWN0LnVzZUNvbnRleHQoUGlja2VySGFja0NvbnRleHQpLHBpY2tlclBhbmVsQ29udGV4dD1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuKDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LHBhcmVudEhhY2tDb250ZXh0KSx7fSx7aGlkZUhlYWRlcjpoaWRlSGVhZGVyfSl9LFtwYXJlbnRIYWNrQ29udGV4dCxoaWRlSGVhZGVyXSkscGFuZWxDbHM9IiIuY29uY2F0KG1lcmdlZFByZWZpeENscywiLXBhbmVsIikscGFuZWxQcm9wcz1waWNrUHJvcHMocHJvcHMsWyJzaG93V2VlayIsInByZXZJY29uIiwibmV4dEljb24iLCJzdXBlclByZXZJY29uIiwic3VwZXJOZXh0SWNvbiIsImRpc2FibGVkRGF0ZSIsIm1pbkRhdGUiLCJtYXhEYXRlIiwib25Ib3ZlciJdKTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChQaWNrZXJIYWNrQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6cGlja2VyUGFuZWxDb250ZXh0fSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6cm9vdFJlZix0YWJJbmRleDp2b2lkIDA9PT1fcHJvcHMkdGFiSW5kZXg/MDpfcHJvcHMkdGFiSW5kZXgsY2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKShwYW5lbENscywoMCxkZWZpbmVQcm9wZXJ0eS5aKSh7fSwiIi5jb25jYXQocGFuZWxDbHMsIi1ydGwiKSwicnRsIj09PWRpcmVjdGlvbikpfSxyZWFjdC5jcmVhdGVFbGVtZW50KFBhbmVsQ29tcG9uZW50LF9leHRlbmRzKHt9LHBhbmVsUHJvcHMse3Nob3dUaW1lOm1lcmdlZFNob3dUaW1lLHByZWZpeENsczptZXJnZWRQcmVmaXhDbHMsbG9jYWxlOmZpbGxlZExvY2FsZSxnZW5lcmF0ZUNvbmZpZzpnZW5lcmF0ZUNvbmZpZyxvbk1vZGVDaGFuZ2U6dHJpZ2dlck1vZGVDaGFuZ2UscGlja2VyVmFsdWU6bWVyZ2VkUGlja2VyVmFsdWUsb25QaWNrZXJWYWx1ZUNoYW5nZTpmdW5jdGlvbihuZXh0UGlja2VyVmFsdWUpe3NldFBpY2tlclZhbHVlKG5leHRQaWNrZXJWYWx1ZSwhMCl9LHZhbHVlOm1lcmdlZFZhbHVlWzBdLG9uU2VsZWN0OmZ1bmN0aW9uKG5leHRWYWx1ZSl7aWYob25JbnRlcm5hbFNlbGVjdChuZXh0VmFsdWUpLHNldFBpY2tlclZhbHVlKG5leHRWYWx1ZSksbWVyZ2VkTW9kZSE9PXBpY2tlcil7dmFyIGRlY2FkZVllYXJRdWV1ZT1bImRlY2FkZSIsInllYXIiXSxkZWNhZGVZZWFyTW9udGhRdWV1ZT1bXS5jb25jYXQoZGVjYWRlWWVhclF1ZXVlLFsibW9udGgiXSkscXVldWU9e3F1YXJ0ZXI6W10uY29uY2F0KGRlY2FkZVllYXJRdWV1ZSxbInF1YXJ0ZXIiXSksd2VlazpbXS5jb25jYXQodG9Db25zdW1hYmxlQXJyYXlfdG9Db25zdW1hYmxlQXJyYXkoZGVjYWRlWWVhck1vbnRoUXVldWUpLFsid2VlayJdKSxkYXRlOltdLmNvbmNhdCh0b0NvbnN1bWFibGVBcnJheV90b0NvbnN1bWFibGVBcnJheShkZWNhZGVZZWFyTW9udGhRdWV1ZSksWyJkYXRlIl0pfVtwaWNrZXJdfHxkZWNhZGVZZWFyTW9udGhRdWV1ZSxuZXh0TW9kZT1xdWV1ZVtxdWV1ZS5pbmRleE9mKG1lcmdlZE1vZGUpKzFdO25leHRNb2RlJiZ0cmlnZ2VyTW9kZUNoYW5nZShuZXh0TW9kZSxuZXh0VmFsdWUpfX0sdmFsdWVzOm1lcmdlZFZhbHVlLGNlbGxSZW5kZXI6b25JbnRlcm5hbENlbGxSZW5kZXIsaG92ZXJSYW5nZVZhbHVlOmhvdmVyUmFuZ2VEYXRlLGhvdmVyVmFsdWU6aG92ZXJWYWx1ZX0pKSkpfSkpO2Z1bmN0aW9uIFBvcHVwUGFuZWwocHJvcHMpe3ZhciBwaWNrZXI9cHJvcHMucGlja2VyLG11bHRpcGxlUGFuZWw9cHJvcHMubXVsdGlwbGVQYW5lbCxwaWNrZXJWYWx1ZT1wcm9wcy5waWNrZXJWYWx1ZSxvblBpY2tlclZhbHVlQ2hhbmdlPXByb3BzLm9uUGlja2VyVmFsdWVDaGFuZ2UsbmVlZENvbmZpcm09cHJvcHMubmVlZENvbmZpcm0sb25TdWJtaXQ9cHJvcHMub25TdWJtaXQscmFuZ2U9cHJvcHMucmFuZ2UsaG92ZXJWYWx1ZT1wcm9wcy5ob3ZlclZhbHVlLF9SZWFjdCR1c2VDb250ZXh0PXJlYWN0LnVzZUNvbnRleHQoUGlja2VyQ29udGV4dCkscHJlZml4Q2xzPV9SZWFjdCR1c2VDb250ZXh0LnByZWZpeENscyxnZW5lcmF0ZUNvbmZpZz1fUmVhY3QkdXNlQ29udGV4dC5nZW5lcmF0ZUNvbmZpZyxpbnRlcm5hbE9mZnNldERhdGU9cmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24oZGF0ZSxvZmZzZXQpe3JldHVybiBvZmZzZXRQYW5lbERhdGUoZ2VuZXJhdGVDb25maWcscGlja2VyLGRhdGUsb2Zmc2V0KX0sW2dlbmVyYXRlQ29uZmlnLHBpY2tlcl0pLG5leHRQaWNrZXJWYWx1ZT1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIGludGVybmFsT2Zmc2V0RGF0ZShwaWNrZXJWYWx1ZSwxKX0sW3BpY2tlclZhbHVlLGludGVybmFsT2Zmc2V0RGF0ZV0pLHNoYXJlZENvbnRleHQ9e29uQ2VsbERibENsaWNrOmZ1bmN0aW9uKCl7bmVlZENvbmZpcm0mJm9uU3VibWl0KCl9fSxwaWNrZXJQcm9wcz0oMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe30scHJvcHMpLHt9LHtob3ZlclZhbHVlOm51bGwsaG92ZXJSYW5nZVZhbHVlOm51bGwsaGlkZUhlYWRlcjoidGltZSI9PT1waWNrZXJ9KTtyZXR1cm4ocmFuZ2U/cGlja2VyUHJvcHMuaG92ZXJSYW5nZVZhbHVlPWhvdmVyVmFsdWU6cGlja2VyUHJvcHMuaG92ZXJWYWx1ZT1ob3ZlclZhbHVlLG11bHRpcGxlUGFuZWwpP3JlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItcGFuZWxzIil9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoUGlja2VySGFja0NvbnRleHQuUHJvdmlkZXIse3ZhbHVlOigwLG9iamVjdFNwcmVhZDIuWikoKDAsb2JqZWN0U3ByZWFkMi5aKSh7fSxzaGFyZWRDb250ZXh0KSx7fSx7aGlkZU5leHQ6ITB9KX0scmVhY3QuY3JlYXRlRWxlbWVudChSZWZQYW5lbFBpY2tlcixwaWNrZXJQcm9wcykpLHJlYWN0LmNyZWF0ZUVsZW1lbnQoUGlja2VySGFja0NvbnRleHQuUHJvdmlkZXIse3ZhbHVlOigwLG9iamVjdFNwcmVhZDIuWikoKDAsb2JqZWN0U3ByZWFkMi5aKSh7fSxzaGFyZWRDb250ZXh0KSx7fSx7aGlkZVByZXY6ITB9KX0scmVhY3QuY3JlYXRlRWxlbWVudChSZWZQYW5lbFBpY2tlcixfZXh0ZW5kcyh7fSxwaWNrZXJQcm9wcyx7cGlja2VyVmFsdWU6bmV4dFBpY2tlclZhbHVlLG9uUGlja2VyVmFsdWVDaGFuZ2U6ZnVuY3Rpb24obmV4dERhdGUpe29uUGlja2VyVmFsdWVDaGFuZ2UoaW50ZXJuYWxPZmZzZXREYXRlKG5leHREYXRlLC0xKSl9fSkpKSk6cmVhY3QuY3JlYXRlRWxlbWVudChQaWNrZXJIYWNrQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6KDAsb2JqZWN0U3ByZWFkMi5aKSh7fSxzaGFyZWRDb250ZXh0KX0scmVhY3QuY3JlYXRlRWxlbWVudChSZWZQYW5lbFBpY2tlcixwaWNrZXJQcm9wcykpfWZ1bmN0aW9uIGV4ZWN1dGVWYWx1ZSh2YWx1ZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHZhbHVlP3ZhbHVlKCk6dmFsdWV9ZnVuY3Rpb24gUHJlc2V0UGFuZWwocHJvcHMpe3ZhciBwcmVmaXhDbHM9cHJvcHMucHJlZml4Q2xzLHByZXNldHM9cHJvcHMucHJlc2V0cyxfb25DbGljaz1wcm9wcy5vbkNsaWNrLG9uSG92ZXI9cHJvcHMub25Ib3ZlcjtyZXR1cm4gcHJlc2V0cy5sZW5ndGg/cmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi1wcmVzZXRzIil9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoInVsIixudWxsLHByZXNldHMubWFwKGZ1bmN0aW9uKF9yZWYsaW5kZXgpe3ZhciBsYWJlbD1fcmVmLmxhYmVsLHZhbHVlPV9yZWYudmFsdWU7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OmluZGV4LG9uQ2xpY2s6ZnVuY3Rpb24oKXtfb25DbGljayhleGVjdXRlVmFsdWUodmFsdWUpKX0sb25Nb3VzZUVudGVyOmZ1bmN0aW9uKCl7b25Ib3ZlcihleGVjdXRlVmFsdWUodmFsdWUpKX0sb25Nb3VzZUxlYXZlOmZ1bmN0aW9uKCl7b25Ib3ZlcihudWxsKX19LGxhYmVsKX0pKSk6bnVsbH1mdW5jdGlvbiBQb3B1cChwcm9wcyl7dmFyIHBhbmVsUmVuZGVyPXByb3BzLnBhbmVsUmVuZGVyLGludGVybmFsTW9kZT1wcm9wcy5pbnRlcm5hbE1vZGUscGlja2VyPXByb3BzLnBpY2tlcixzaG93Tm93PXByb3BzLnNob3dOb3cscmFuZ2U9cHJvcHMucmFuZ2UsbXVsdGlwbGU9cHJvcHMubXVsdGlwbGUsX3Byb3BzJGFjdGl2ZUluZm89cHJvcHMuYWN0aXZlSW5mbyxwcmVzZXRzPXByb3BzLnByZXNldHMsb25QcmVzZXRIb3Zlcj1wcm9wcy5vblByZXNldEhvdmVyLG9uUHJlc2V0U3VibWl0PXByb3BzLm9uUHJlc2V0U3VibWl0LG9uRm9jdXM9cHJvcHMub25Gb2N1cyxvbkJsdXI9cHJvcHMub25CbHVyLG9uUGFuZWxNb3VzZURvd249cHJvcHMub25QYW5lbE1vdXNlRG93bixkaXJlY3Rpb249cHJvcHMuZGlyZWN0aW9uLHZhbHVlPXByb3BzLnZhbHVlLG9uU2VsZWN0PXByb3BzLm9uU2VsZWN0LGlzSW52YWxpZD1wcm9wcy5pc0ludmFsaWQsZGVmYXVsdE9wZW5WYWx1ZT1wcm9wcy5kZWZhdWx0T3BlblZhbHVlLG9uT2s9cHJvcHMub25PayxvblN1Ym1pdD1wcm9wcy5vblN1Ym1pdCxwcmVmaXhDbHM9cmVhY3QudXNlQ29udGV4dChQaWNrZXJDb250ZXh0KS5wcmVmaXhDbHMscnRsPSJydGwiPT09ZGlyZWN0aW9uLGFycm93UmVmPXJlYWN0LnVzZVJlZihudWxsKSx3cmFwcGVyUmVmPXJlYWN0LnVzZVJlZihudWxsKSxfUmVhY3QkdXNlU3RhdGUyPV9zbGljZWRUb0FycmF5KHJlYWN0LnVzZVN0YXRlKDApLDIpLGNvbnRhaW5lcldpZHRoPV9SZWFjdCR1c2VTdGF0ZTJbMF0sc2V0Q29udGFpbmVyV2lkdGg9X1JlYWN0JHVzZVN0YXRlMlsxXSxfUmVhY3QkdXNlU3RhdGU0PV9zbGljZWRUb0FycmF5KHJlYWN0LnVzZVN0YXRlKDApLDIpLGNvbnRhaW5lck9mZnNldD1fUmVhY3QkdXNlU3RhdGU0WzBdLHNldENvbnRhaW5lck9mZnNldD1fUmVhY3QkdXNlU3RhdGU0WzFdLF9SZWFjdCR1c2VTdGF0ZTY9X3NsaWNlZFRvQXJyYXkocmVhY3QudXNlU3RhdGUoMCksMiksYXJyb3dPZmZzZXQ9X1JlYWN0JHVzZVN0YXRlNlswXSxzZXRBcnJvd09mZnNldD1fUmVhY3QkdXNlU3RhdGU2WzFdLF9hY3RpdmVJbmZvPV9zbGljZWRUb0FycmF5KHZvaWQgMD09PV9wcm9wcyRhY3RpdmVJbmZvP1swLDAsMF06X3Byb3BzJGFjdGl2ZUluZm8sMyksYWN0aXZlSW5wdXRMZWZ0PV9hY3RpdmVJbmZvWzBdLGFjdGl2ZUlucHV0UmlnaHQ9X2FjdGl2ZUluZm9bMV0sc2VsZWN0b3JXaWR0aD1fYWN0aXZlSW5mb1syXSxfUmVhY3QkdXNlU3RhdGU4PV9zbGljZWRUb0FycmF5KHJlYWN0LnVzZVN0YXRlKDApLDIpLHJldHJ5VGltZXM9X1JlYWN0JHVzZVN0YXRlOFswXSxzZXRSZXRyeVRpbWVzPV9SZWFjdCR1c2VTdGF0ZThbMV07ZnVuY3Rpb24gZmlsdGVyRW1wdHkobGlzdCl7cmV0dXJuIGxpc3QuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBpdGVtfSl9cmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uKCl7c2V0UmV0cnlUaW1lcygxMCl9LFthY3RpdmVJbnB1dExlZnRdKSxyZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24oKXtpZihyYW5nZSYmd3JhcHBlclJlZi5jdXJyZW50KXt2YXIgX2Fycm93UmVmJGN1cnJlbnQsYXJyb3dXaWR0aD0obnVsbD09PShfYXJyb3dSZWYkY3VycmVudD1hcnJvd1JlZi5jdXJyZW50KXx8dm9pZCAwPT09X2Fycm93UmVmJGN1cnJlbnQ/dm9pZCAwOl9hcnJvd1JlZiRjdXJyZW50Lm9mZnNldFdpZHRoKXx8MCx3cmFwcGVyUmVjdD13cmFwcGVyUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoIXdyYXBwZXJSZWN0LmhlaWdodHx8d3JhcHBlclJlY3QucmlnaHQ8MCl7c2V0UmV0cnlUaW1lcyhmdW5jdGlvbih0aW1lcyl7cmV0dXJuIE1hdGgubWF4KDAsdGltZXMtMSl9KTtyZXR1cm59KHNldEFycm93T2Zmc2V0KChydGw/YWN0aXZlSW5wdXRSaWdodC1hcnJvd1dpZHRoOmFjdGl2ZUlucHV0TGVmdCktd3JhcHBlclJlY3QubGVmdCksY29udGFpbmVyV2lkdGgmJmNvbnRhaW5lcldpZHRoPHNlbGVjdG9yV2lkdGgpP3NldENvbnRhaW5lck9mZnNldChNYXRoLm1heCgwLHJ0bD93cmFwcGVyUmVjdC5yaWdodC0oYWN0aXZlSW5wdXRSaWdodC1hcnJvd1dpZHRoK2NvbnRhaW5lcldpZHRoKTphY3RpdmVJbnB1dExlZnQrYXJyb3dXaWR0aC13cmFwcGVyUmVjdC5sZWZ0LWNvbnRhaW5lcldpZHRoKSk6c2V0Q29udGFpbmVyT2Zmc2V0KDApfX0sW3JldHJ5VGltZXMscnRsLGNvbnRhaW5lcldpZHRoLGFjdGl2ZUlucHV0TGVmdCxhY3RpdmVJbnB1dFJpZ2h0LHNlbGVjdG9yV2lkdGgscmFuZ2VdKTt2YXIgdmFsdWVMaXN0PXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gZmlsdGVyRW1wdHkodG9BcnJheSh2YWx1ZSkpfSxbdmFsdWVdKSxpc1RpbWVQaWNrZXJFbXB0eVZhbHVlPSJ0aW1lIj09PXBpY2tlciYmIXZhbHVlTGlzdC5sZW5ndGgsZm9vdGVyU3VibWl0VmFsdWU9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBpc1RpbWVQaWNrZXJFbXB0eVZhbHVlP2ZpbHRlckVtcHR5KFtkZWZhdWx0T3BlblZhbHVlXSk6dmFsdWVMaXN0fSxbaXNUaW1lUGlja2VyRW1wdHlWYWx1ZSx2YWx1ZUxpc3QsZGVmYXVsdE9wZW5WYWx1ZV0pLGRpc2FibGVTdWJtaXQ9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiFmb290ZXJTdWJtaXRWYWx1ZS5sZW5ndGh8fGZvb3RlclN1Ym1pdFZhbHVlLnNvbWUoZnVuY3Rpb24odmFsKXtyZXR1cm4gaXNJbnZhbGlkKHZhbCl9KX0sW2Zvb3RlclN1Ym1pdFZhbHVlLGlzSW52YWxpZF0pLG1lcmdlZE5vZGVzPXJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItcGFuZWwtbGF5b3V0Iil9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoUHJlc2V0UGFuZWwse3ByZWZpeENsczpwcmVmaXhDbHMscHJlc2V0czpwcmVzZXRzLG9uQ2xpY2s6b25QcmVzZXRTdWJtaXQsb25Ib3ZlcjpvblByZXNldEhvdmVyfSkscmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2IixudWxsLHJlYWN0LmNyZWF0ZUVsZW1lbnQoUG9wdXBQYW5lbCxfZXh0ZW5kcyh7fSxwcm9wcyx7dmFsdWU6aXNUaW1lUGlja2VyRW1wdHlWYWx1ZT9kZWZhdWx0T3BlblZhbHVlOnZhbHVlTGlzdH0pKSxyZWFjdC5jcmVhdGVFbGVtZW50KEZvb3RlcixfZXh0ZW5kcyh7fSxwcm9wcyx7c2hvd05vdzohbXVsdGlwbGUmJnNob3dOb3csaW52YWxpZDpkaXNhYmxlU3VibWl0LG9uU3VibWl0OmZ1bmN0aW9uKCl7aXNUaW1lUGlja2VyRW1wdHlWYWx1ZSYmb25TZWxlY3QoZGVmYXVsdE9wZW5WYWx1ZSksb25PaygpLG9uU3VibWl0KCl9fSkpKSk7cGFuZWxSZW5kZXImJihtZXJnZWROb2Rlcz1wYW5lbFJlbmRlcihtZXJnZWROb2RlcykpO3ZhciBtYXJnaW5MZWZ0PSJtYXJnaW5MZWZ0IixtYXJnaW5SaWdodD0ibWFyZ2luUmlnaHQiLHJlbmRlck5vZGU9cmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7b25Nb3VzZURvd246b25QYW5lbE1vdXNlRG93bix0YWJJbmRleDotMSxjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKCIiLmNvbmNhdCgiIi5jb25jYXQocHJlZml4Q2xzLCItcGFuZWwiKSwiLWNvbnRhaW5lciIpLCIiLmNvbmNhdChwcmVmaXhDbHMsIi0iKS5jb25jYXQoaW50ZXJuYWxNb2RlLCItcGFuZWwtY29udGFpbmVyIikpLHN0eWxlOigwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKHt9LHJ0bD9tYXJnaW5SaWdodDptYXJnaW5MZWZ0LGNvbnRhaW5lck9mZnNldCkscnRsP21hcmdpbkxlZnQ6bWFyZ2luUmlnaHQsImF1dG8iKSxvbkZvY3VzOm9uRm9jdXMsb25CbHVyOm9uQmx1cn0sbWVyZ2VkTm9kZXMpO3JldHVybiByYW5nZSYmKHJlbmRlck5vZGU9cmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7b25Nb3VzZURvd246b25QYW5lbE1vdXNlRG93bixyZWY6d3JhcHBlclJlZixjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKCIiLmNvbmNhdChwcmVmaXhDbHMsIi1yYW5nZS13cmFwcGVyIiksIiIuY29uY2F0KHByZWZpeENscywiLSIpLmNvbmNhdChwaWNrZXIsIi1yYW5nZS13cmFwcGVyIikpfSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6YXJyb3dSZWYsY2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi1yYW5nZS1hcnJvdyIpLHN0eWxlOntsZWZ0OmFycm93T2Zmc2V0fX0pLHJlYWN0LmNyZWF0ZUVsZW1lbnQocmNfcmVzaXplX29ic2VydmVyX2VzLlose29uUmVzaXplOmZ1bmN0aW9uKGluZm8pe2luZm8ud2lkdGgmJnNldENvbnRhaW5lcldpZHRoKGluZm8ud2lkdGgpfX0scmVuZGVyTm9kZSkpKSxyZW5kZXJOb2RlfWZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG8scixpPWZ1bmN0aW9uKHIsZSl7aWYobnVsbD09cilyZXR1cm57fTt2YXIgdD17fTtmb3IodmFyIG4gaW4gcilpZigoe30pLmhhc093blByb3BlcnR5LmNhbGwocixuKSl7aWYoLTEhPT1lLmluZGV4T2YobikpY29udGludWU7dFtuXT1yW25dfXJldHVybiB0fShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPG4ubGVuZ3RoO3IrKylvPW5bcl0sLTE9PT10LmluZGV4T2YobykmJih7fSkucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG8pJiYoaVtvXT1lW29dKX1yZXR1cm4gaX1mdW5jdGlvbiB1c2VJbnB1dFByb3BzKHByb3BzLHBvc3RQcm9wcyl7dmFyIGZvcm1hdD1wcm9wcy5mb3JtYXQsbWFza0Zvcm1hdD1wcm9wcy5tYXNrRm9ybWF0LGdlbmVyYXRlQ29uZmlnPXByb3BzLmdlbmVyYXRlQ29uZmlnLGxvY2FsZT1wcm9wcy5sb2NhbGUscHJlc2VydmVJbnZhbGlkT25CbHVyPXByb3BzLnByZXNlcnZlSW52YWxpZE9uQmx1cixpbnB1dFJlYWRPbmx5PXByb3BzLmlucHV0UmVhZE9ubHkscmVxdWlyZWQ9cHJvcHMucmVxdWlyZWQsYXJpYVJlcXVpcmVkPXByb3BzWyJhcmlhLXJlcXVpcmVkIl0sb25TdWJtaXQ9cHJvcHMub25TdWJtaXQsX29uRm9jdXM9cHJvcHMub25Gb2N1cyxfb25CbHVyPXByb3BzLm9uQmx1cixvbklucHV0Q2hhbmdlPXByb3BzLm9uSW5wdXRDaGFuZ2Usb25JbnZhbGlkPXByb3BzLm9uSW52YWxpZCxvcGVuPXByb3BzLm9wZW4sb25PcGVuQ2hhbmdlPXByb3BzLm9uT3BlbkNoYW5nZSxfb25LZXlEb3duPXByb3BzLm9uS2V5RG93bixfb25DaGFuZ2U9cHJvcHMub25DaGFuZ2UsYWN0aXZlSGVscD1wcm9wcy5hY3RpdmVIZWxwLG5hbWU9cHJvcHMubmFtZSxhdXRvQ29tcGxldGU9cHJvcHMuYXV0b0NvbXBsZXRlLGlkPXByb3BzLmlkLHZhbHVlPXByb3BzLnZhbHVlLGludmFsaWQ9cHJvcHMuaW52YWxpZCxwbGFjZWhvbGRlcj1wcm9wcy5wbGFjZWhvbGRlcixkaXNhYmxlZD1wcm9wcy5kaXNhYmxlZCxhY3RpdmVJbmRleD1wcm9wcy5hY3RpdmVJbmRleCxhbGxIZWxwPXByb3BzLmFsbEhlbHAscGlja2VyPXByb3BzLnBpY2tlcixwYXJzZURhdGU9ZnVuY3Rpb24oc3RyLGZvcm1hdFN0cil7dmFyIHBhcnNlZD1nZW5lcmF0ZUNvbmZpZy5sb2NhbGUucGFyc2UobG9jYWxlLmxvY2FsZSxzdHIsW2Zvcm1hdFN0cl0pO3JldHVybiBwYXJzZWQmJmdlbmVyYXRlQ29uZmlnLmlzVmFsaWRhdGUocGFyc2VkKT9wYXJzZWQ6bnVsbH0sZmlyc3RGb3JtYXQ9Zm9ybWF0WzBdLGdldFRleHQ9cmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24oZGF0ZSl7cmV0dXJuIGZvcm1hdFZhbHVlKGRhdGUse2xvY2FsZTpsb2NhbGUsZm9ybWF0OmZpcnN0Rm9ybWF0LGdlbmVyYXRlQ29uZmlnOmdlbmVyYXRlQ29uZmlnfSl9LFtsb2NhbGUsZ2VuZXJhdGVDb25maWcsZmlyc3RGb3JtYXRdKSx2YWx1ZVRleHRzPXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gdmFsdWUubWFwKGdldFRleHQpfSxbdmFsdWUsZ2V0VGV4dF0pLHNpemU9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBNYXRoLm1heCgidGltZSI9PT1waWNrZXI/ODoxMCwiZnVuY3Rpb24iPT10eXBlb2YgZmlyc3RGb3JtYXQ/Zmlyc3RGb3JtYXQoZ2VuZXJhdGVDb25maWcuZ2V0Tm93KCkpLmxlbmd0aDpmaXJzdEZvcm1hdC5sZW5ndGgpKzJ9LFtmaXJzdEZvcm1hdCxwaWNrZXIsZ2VuZXJhdGVDb25maWddKSxfdmFsaWRhdGVGb3JtYXQ9ZnVuY3Rpb24odGV4dCl7Zm9yKHZhciBpPTA7aTxmb3JtYXQubGVuZ3RoO2krPTEpe3ZhciBzaW5nbGVGb3JtYXQ9Zm9ybWF0W2ldO2lmKCJzdHJpbmciPT10eXBlb2Ygc2luZ2xlRm9ybWF0KXt2YXIgcGFyc2VkPXBhcnNlRGF0ZSh0ZXh0LHNpbmdsZUZvcm1hdCk7aWYocGFyc2VkKXJldHVybiBwYXJzZWR9fXJldHVybiExfTtyZXR1cm5bZnVuY3Rpb24oaW5kZXgpe2Z1bmN0aW9uIGdldFByb3AocHJvcFZhbHVlKXtyZXR1cm4gdm9pZCAwIT09aW5kZXg/cHJvcFZhbHVlW2luZGV4XTpwcm9wVmFsdWV9dmFyIHBpY2tlZEF0dHJzPXBpY2tBdHRycyhwcm9wcyx7YXJpYTohMCxkYXRhOiEwfSksaW5wdXRQcm9wcz0oMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe30scGlja2VkQXR0cnMpLHt9LHtmb3JtYXQ6bWFza0Zvcm1hdCx2YWxpZGF0ZUZvcm1hdDpmdW5jdGlvbih0ZXh0KXtyZXR1cm4hIV92YWxpZGF0ZUZvcm1hdCh0ZXh0KX0scHJlc2VydmVJbnZhbGlkT25CbHVyOnByZXNlcnZlSW52YWxpZE9uQmx1cixyZWFkT25seTppbnB1dFJlYWRPbmx5LHJlcXVpcmVkOnJlcXVpcmVkLCJhcmlhLXJlcXVpcmVkIjphcmlhUmVxdWlyZWQsbmFtZTpuYW1lLGF1dG9Db21wbGV0ZTphdXRvQ29tcGxldGUsc2l6ZTpzaXplLGlkOmdldFByb3AoaWQpLHZhbHVlOmdldFByb3AodmFsdWVUZXh0cyl8fCIiLGludmFsaWQ6Z2V0UHJvcChpbnZhbGlkKSxwbGFjZWhvbGRlcjpnZXRQcm9wKHBsYWNlaG9sZGVyKSxhY3RpdmU6YWN0aXZlSW5kZXg9PT1pbmRleCxoZWxwZWQ6YWxsSGVscHx8YWN0aXZlSGVscCYmYWN0aXZlSW5kZXg9PT1pbmRleCxkaXNhYmxlZDpnZXRQcm9wKGRpc2FibGVkKSxvbkZvY3VzOmZ1bmN0aW9uKGV2ZW50KXtfb25Gb2N1cyhldmVudCxpbmRleCl9LG9uQmx1cjpmdW5jdGlvbihldmVudCl7X29uQmx1cihldmVudCxpbmRleCl9LG9uU3VibWl0Om9uU3VibWl0LG9uQ2hhbmdlOmZ1bmN0aW9uKHRleHQpe29uSW5wdXRDaGFuZ2UoKTt2YXIgcGFyc2VkPV92YWxpZGF0ZUZvcm1hdCh0ZXh0KTtpZihwYXJzZWQpe29uSW52YWxpZCghMSxpbmRleCksX29uQ2hhbmdlKHBhcnNlZCxpbmRleCk7cmV0dXJufW9uSW52YWxpZCghIXRleHQsaW5kZXgpfSxvbkhlbHA6ZnVuY3Rpb24oKXtvbk9wZW5DaGFuZ2UoITAse2luZGV4OmluZGV4fSl9LG9uS2V5RG93bjpmdW5jdGlvbihldmVudCl7dmFyIHByZXZlbnRlZD0hMTtpZihudWxsPT1fb25LZXlEb3dufHxfb25LZXlEb3duKGV2ZW50LGZ1bmN0aW9uKCl7cHJldmVudGVkPSEwfSksIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQmJiFwcmV2ZW50ZWQpc3dpdGNoKGV2ZW50LmtleSl7Y2FzZSJFc2NhcGUiOm9uT3BlbkNoYW5nZSghMSx7aW5kZXg6aW5kZXh9KTticmVhaztjYXNlIkVudGVyIjpvcGVufHxvbk9wZW5DaGFuZ2UoITApfX19LG51bGw9PXBvc3RQcm9wcz92b2lkIDA6cG9zdFByb3BzKHt2YWx1ZVRleHRzOnZhbHVlVGV4dHN9KSk7cmV0dXJuIE9iamVjdC5rZXlzKGlucHV0UHJvcHMpLmZvckVhY2goZnVuY3Rpb24oa2V5KXt2b2lkIDA9PT1pbnB1dFByb3BzW2tleV0mJmRlbGV0ZSBpbnB1dFByb3BzW2tleV19KSxpbnB1dFByb3BzfSxnZXRUZXh0XX12YXIgcHJvcE5hbWVzPVsib25Nb3VzZUVudGVyIiwib25Nb3VzZUxlYXZlIl07ZnVuY3Rpb24gdXNlUm9vdFByb3BzKHByb3BzKXtyZXR1cm4gcmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBwaWNrUHJvcHMocHJvcHMscHJvcE5hbWVzKX0sW3Byb3BzXSl9dmFyIF9leGNsdWRlZD1bImljb24iLCJ0eXBlIl0sX2V4Y2x1ZGVkMj1bIm9uQ2xlYXIiXTtmdW5jdGlvbiBJY29uKHByb3BzKXt2YXIgaWNvbj1wcm9wcy5pY29uLHR5cGU9cHJvcHMudHlwZSxyZXN0UHJvcHM9X29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHByb3BzLF9leGNsdWRlZCkscHJlZml4Q2xzPXJlYWN0LnVzZUNvbnRleHQoUGlja2VyQ29udGV4dCkucHJlZml4Q2xzO3JldHVybiBpY29uP3JlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLF9leHRlbmRzKHtjbGFzc05hbWU6IiIuY29uY2F0KHByZWZpeENscywiLSIpLmNvbmNhdCh0eXBlKX0scmVzdFByb3BzKSxpY29uKTpudWxsfWZ1bmN0aW9uIENsZWFySWNvbihfcmVmKXt2YXIgb25DbGVhcj1fcmVmLm9uQ2xlYXIscmVzdFByb3BzPV9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcmVmLF9leGNsdWRlZDIpO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KEljb24sX2V4dGVuZHMoe30scmVzdFByb3BzLHt0eXBlOiJjbGVhciIscm9sZToiYnV0dG9uIixvbk1vdXNlRG93bjpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCl9LG9uQ2xpY2s6ZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKSxvbkNsZWFyKCl9fSkpfXZhciB0b1Byb3BlcnR5S2V5PV9fd2VicGFja19yZXF1aXJlX18oNjk4NDcpO2Z1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKGUscil7Zm9yKHZhciB0PTA7dDxyLmxlbmd0aDt0Kyspe3ZhciBvPXJbdF07by5lbnVtZXJhYmxlPW8uZW51bWVyYWJsZXx8ITEsby5jb25maWd1cmFibGU9ITAsInZhbHVlImluIG8mJihvLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwoMCx0b1Byb3BlcnR5S2V5LlopKG8ua2V5KSxvKX19dmFyIEZPUk1BVF9LRVlTPVsiWVlZWSIsIk1NIiwiREQiLCJISCIsIm1tIiwic3MiLCJTU1MiXSxNYXNrRm9ybWF0PWZ1bmN0aW9uKCl7dmFyIHIsdDtmdW5jdGlvbiBNYXNrRm9ybWF0KGZvcm1hdCl7IWZ1bmN0aW9uKGEsbil7aWYoIShhIGluc3RhbmNlb2YgbikpdGhyb3cgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxNYXNrRm9ybWF0KSwoMCxkZWZpbmVQcm9wZXJ0eS5aKSh0aGlzLCJmb3JtYXQiLHZvaWQgMCksKDAsZGVmaW5lUHJvcGVydHkuWikodGhpcywibWFza0Zvcm1hdCIsdm9pZCAwKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKSh0aGlzLCJjZWxscyIsdm9pZCAwKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKSh0aGlzLCJtYXNrQ2VsbHMiLHZvaWQgMCksdGhpcy5mb3JtYXQ9Zm9ybWF0O3ZhciByZXBsYWNlUmVnPVJlZ0V4cChGT1JNQVRfS0VZUy5tYXAoZnVuY3Rpb24oa2V5KXtyZXR1cm4iKCIuY29uY2F0KGtleSwiKSIpfSkuam9pbigifCIpLCJnIik7dGhpcy5tYXNrRm9ybWF0PWZvcm1hdC5yZXBsYWNlKHJlcGxhY2VSZWcsZnVuY3Rpb24oa2V5KXtyZXR1cm4i6aGnIi5yZXBlYXQoa2V5Lmxlbmd0aCl9KTt2YXIgY2VsbFJlZz1SZWdFeHAoIigiLmNvbmNhdChGT1JNQVRfS0VZUy5qb2luKCJ8IiksIikiKSksc3RyQ2VsbHM9KGZvcm1hdC5zcGxpdChjZWxsUmVnKXx8W10pLmZpbHRlcihmdW5jdGlvbihzdHIpe3JldHVybiBzdHJ9KSxvZmZzZXQ9MDt0aGlzLmNlbGxzPXN0ckNlbGxzLm1hcChmdW5jdGlvbih0ZXh0KXt2YXIgbWFzaz1GT1JNQVRfS0VZUy5pbmNsdWRlcyh0ZXh0KSxzdGFydD1vZmZzZXQsZW5kPW9mZnNldCt0ZXh0Lmxlbmd0aDtyZXR1cm4gb2Zmc2V0PWVuZCx7dGV4dDp0ZXh0LG1hc2s6bWFzayxzdGFydDpzdGFydCxlbmQ6ZW5kfX0pLHRoaXMubWFza0NlbGxzPXRoaXMuY2VsbHMuZmlsdGVyKGZ1bmN0aW9uKGNlbGwpe3JldHVybiBjZWxsLm1hc2t9KX1yZXR1cm4gcj1be2tleToiZ2V0U2VsZWN0aW9uIix2YWx1ZTpmdW5jdGlvbihtYXNrQ2VsbEluZGV4KXt2YXIgX3JlZj10aGlzLm1hc2tDZWxsc1ttYXNrQ2VsbEluZGV4XXx8e307cmV0dXJuW19yZWYuc3RhcnR8fDAsX3JlZi5lbmR8fDBdfX0se2tleToibWF0Y2giLHZhbHVlOmZ1bmN0aW9uKHRleHQpe2Zvcih2YXIgaT0wO2k8dGhpcy5tYXNrRm9ybWF0Lmxlbmd0aDtpKz0xKXt2YXIgbWFza0NoYXI9dGhpcy5tYXNrRm9ybWF0W2ldLHRleHRDaGFyPXRleHRbaV07aWYoIXRleHRDaGFyfHwi6aGnIiE9PW1hc2tDaGFyJiZtYXNrQ2hhciE9PXRleHRDaGFyKXJldHVybiExfXJldHVybiEwfX0se2tleToic2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXNrQ2VsbHMubGVuZ3RofX0se2tleToiZ2V0TWFza0NlbGxJbmRleCIsdmFsdWU6ZnVuY3Rpb24oYW5jaG9ySW5kZXgpe2Zvcih2YXIgY2xvc2V0RGlzdD1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUixjbG9zZXRJbmRleD0wLGk9MDtpPHRoaXMubWFza0NlbGxzLmxlbmd0aDtpKz0xKXt2YXIgX3RoaXMkbWFza0NlbGxzJGk9dGhpcy5tYXNrQ2VsbHNbaV0sc3RhcnQ9X3RoaXMkbWFza0NlbGxzJGkuc3RhcnQsZW5kPV90aGlzJG1hc2tDZWxscyRpLmVuZDtpZihhbmNob3JJbmRleD49c3RhcnQmJmFuY2hvckluZGV4PD1lbmQpcmV0dXJuIGk7dmFyIGRpc3Q9TWF0aC5taW4oTWF0aC5hYnMoYW5jaG9ySW5kZXgtc3RhcnQpLE1hdGguYWJzKGFuY2hvckluZGV4LWVuZCkpO2Rpc3Q8Y2xvc2V0RGlzdCYmKGNsb3NldERpc3Q9ZGlzdCxjbG9zZXRJbmRleD1pKX1yZXR1cm4gY2xvc2V0SW5kZXh9fV0sX2RlZmluZVByb3BlcnRpZXMoTWFza0Zvcm1hdC5wcm90b3R5cGUsciksdCYmX2RlZmluZVByb3BlcnRpZXMoTWFza0Zvcm1hdCx0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTWFza0Zvcm1hdCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxNYXNrRm9ybWF0fSgpLElucHV0X2V4Y2x1ZGVkPVsiYWN0aXZlIiwic2hvd0FjdGl2ZUNscyIsInN1ZmZpeEljb24iLCJmb3JtYXQiLCJ2YWxpZGF0ZUZvcm1hdCIsIm9uQ2hhbmdlIiwib25JbnB1dCIsImhlbHBlZCIsIm9uSGVscCIsIm9uU3VibWl0Iiwib25LZXlEb3duIiwicHJlc2VydmVJbnZhbGlkT25CbHVyIiwiaW52YWxpZCIsImNsZWFySWNvbiJdLElucHV0PXJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24ocHJvcHMscmVmKXt2YXIgYWN0aXZlPXByb3BzLmFjdGl2ZSxfcHJvcHMkc2hvd0FjdGl2ZUNscz1wcm9wcy5zaG93QWN0aXZlQ2xzLHN1ZmZpeEljb249cHJvcHMuc3VmZml4SWNvbixmb3JtYXQ9cHJvcHMuZm9ybWF0LHZhbGlkYXRlRm9ybWF0PXByb3BzLnZhbGlkYXRlRm9ybWF0LG9uQ2hhbmdlPXByb3BzLm9uQ2hhbmdlLGhlbHBlZD0ocHJvcHMub25JbnB1dCxwcm9wcy5oZWxwZWQpLG9uSGVscD1wcm9wcy5vbkhlbHAsb25TdWJtaXQ9cHJvcHMub25TdWJtaXQsb25LZXlEb3duPXByb3BzLm9uS2V5RG93bixfcHJvcHMkcHJlc2VydmVJbnZhbGk9cHJvcHMucHJlc2VydmVJbnZhbGlkT25CbHVyLHByZXNlcnZlSW52YWxpZE9uQmx1cj12b2lkIDAhPT1fcHJvcHMkcHJlc2VydmVJbnZhbGkmJl9wcm9wcyRwcmVzZXJ2ZUludmFsaSxpbnZhbGlkPXByb3BzLmludmFsaWQsY2xlYXJJY29uPXByb3BzLmNsZWFySWNvbixyZXN0UHJvcHM9X29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHByb3BzLElucHV0X2V4Y2x1ZGVkKSx2YWx1ZT1wcm9wcy52YWx1ZSxvbkZvY3VzPXByb3BzLm9uRm9jdXMsb25CbHVyPXByb3BzLm9uQmx1cixvbk1vdXNlVXA9cHJvcHMub25Nb3VzZVVwLF9SZWFjdCR1c2VDb250ZXh0PXJlYWN0LnVzZUNvbnRleHQoUGlja2VyQ29udGV4dCkscHJlZml4Q2xzPV9SZWFjdCR1c2VDb250ZXh0LnByZWZpeENscyxfUmVhY3QkdXNlQ29udGV4dCRpbnA9X1JlYWN0JHVzZUNvbnRleHQuaW5wdXQsaW5wdXRQcmVmaXhDbHM9IiIuY29uY2F0KHByZWZpeENscywiLWlucHV0IiksX1JlYWN0JHVzZVN0YXRlMj1fc2xpY2VkVG9BcnJheShyZWFjdC51c2VTdGF0ZSghMSksMiksZm9jdXNlZD1fUmVhY3QkdXNlU3RhdGUyWzBdLHNldEZvY3VzZWQ9X1JlYWN0JHVzZVN0YXRlMlsxXSxfUmVhY3QkdXNlU3RhdGU0PV9zbGljZWRUb0FycmF5KHJlYWN0LnVzZVN0YXRlKHZhbHVlKSwyKSxpbnRlcm5hbElucHV0VmFsdWU9X1JlYWN0JHVzZVN0YXRlNFswXSxzZXRJbnB1dFZhbHVlPV9SZWFjdCR1c2VTdGF0ZTRbMV0sX1JlYWN0JHVzZVN0YXRlNj1fc2xpY2VkVG9BcnJheShyZWFjdC51c2VTdGF0ZSgiIiksMiksZm9jdXNDZWxsVGV4dD1fUmVhY3QkdXNlU3RhdGU2WzBdLHNldEZvY3VzQ2VsbFRleHQ9X1JlYWN0JHVzZVN0YXRlNlsxXSxfUmVhY3QkdXNlU3RhdGU4PV9zbGljZWRUb0FycmF5KHJlYWN0LnVzZVN0YXRlKG51bGwpLDIpLGZvY3VzQ2VsbEluZGV4PV9SZWFjdCR1c2VTdGF0ZThbMF0sc2V0Rm9jdXNDZWxsSW5kZXg9X1JlYWN0JHVzZVN0YXRlOFsxXSxfUmVhY3QkdXNlU3RhdGUxMD1fc2xpY2VkVG9BcnJheShyZWFjdC51c2VTdGF0ZShudWxsKSwyKSxmb3JjZVNlbGVjdGlvblN5bmNNYXJrPV9SZWFjdCR1c2VTdGF0ZTEwWzBdLGZvcmNlU2VsZWN0aW9uU3luYz1fUmVhY3QkdXNlU3RhdGUxMFsxXSxpbnB1dFZhbHVlPWludGVybmFsSW5wdXRWYWx1ZXx8IiI7cmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uKCl7c2V0SW5wdXRWYWx1ZSh2YWx1ZSl9LFt2YWx1ZV0pO3ZhciBob2xkZXJSZWY9cmVhY3QudXNlUmVmKCksaW5wdXRSZWY9cmVhY3QudXNlUmVmKCk7cmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsZnVuY3Rpb24oKXtyZXR1cm57bmF0aXZlRWxlbWVudDpob2xkZXJSZWYuY3VycmVudCxpbnB1dEVsZW1lbnQ6aW5wdXRSZWYuY3VycmVudCxmb2N1czpmdW5jdGlvbihvcHRpb25zKXtpbnB1dFJlZi5jdXJyZW50LmZvY3VzKG9wdGlvbnMpfSxibHVyOmZ1bmN0aW9uKCl7aW5wdXRSZWYuY3VycmVudC5ibHVyKCl9fX0pO3ZhciBtYXNrRm9ybWF0PXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE1hc2tGb3JtYXQoZm9ybWF0fHwiIil9LFtmb3JtYXRdKSxfUmVhY3QkdXNlTWVtbzI9X3NsaWNlZFRvQXJyYXkocmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBoZWxwZWQ/WzAsMF06bWFza0Zvcm1hdC5nZXRTZWxlY3Rpb24oZm9jdXNDZWxsSW5kZXgpfSxbbWFza0Zvcm1hdCxmb2N1c0NlbGxJbmRleCxoZWxwZWRdKSwyKSxzZWxlY3Rpb25TdGFydD1fUmVhY3QkdXNlTWVtbzJbMF0sc2VsZWN0aW9uRW5kPV9SZWFjdCR1c2VNZW1vMlsxXSxvbk1vZGlmeT1mdW5jdGlvbih0ZXh0KXt0ZXh0JiZ0ZXh0IT09Zm9ybWF0JiZ0ZXh0IT09dmFsdWUmJm9uSGVscCgpfSx0cmlnZ2VySW5wdXRDaGFuZ2U9dXNlRXZlbnQoZnVuY3Rpb24odGV4dCl7dmFsaWRhdGVGb3JtYXQodGV4dCkmJm9uQ2hhbmdlKHRleHQpLHNldElucHV0VmFsdWUodGV4dCksb25Nb2RpZnkodGV4dCl9KSxtb3VzZURvd25SZWY9cmVhY3QudXNlUmVmKCExKSxvblNoYXJlZEJsdXI9ZnVuY3Rpb24oZXZlbnQpe29uQmx1cihldmVudCl9O3VzZUxvY2tFZmZlY3QoYWN0aXZlLGZ1bmN0aW9uKCl7YWN0aXZlfHxwcmVzZXJ2ZUludmFsaWRPbkJsdXJ8fHNldElucHV0VmFsdWUodmFsdWUpfSk7dmFyIG9uU2hhcmVkS2V5RG93bj1mdW5jdGlvbihldmVudCl7IkVudGVyIj09PWV2ZW50LmtleSYmdmFsaWRhdGVGb3JtYXQoaW5wdXRWYWx1ZSkmJm9uU3VibWl0KCksbnVsbD09b25LZXlEb3dufHxvbktleURvd24oZXZlbnQpfSxyYWZSZWY9cmVhY3QudXNlUmVmKCk7dXNlTGF5b3V0RWZmZWN0KGZ1bmN0aW9uKCl7aWYoZm9jdXNlZCYmZm9ybWF0JiYhbW91c2VEb3duUmVmLmN1cnJlbnQpe2lmKCFtYXNrRm9ybWF0Lm1hdGNoKGlucHV0VmFsdWUpKXt0cmlnZ2VySW5wdXRDaGFuZ2UoZm9ybWF0KTtyZXR1cm59cmV0dXJuIGlucHV0UmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uU3RhcnQsc2VsZWN0aW9uRW5kKSxyYWZSZWYuY3VycmVudD13cmFwcGVyUmFmKGZ1bmN0aW9uKCl7aW5wdXRSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb25TdGFydCxzZWxlY3Rpb25FbmQpfSksZnVuY3Rpb24oKXt3cmFwcGVyUmFmLmNhbmNlbChyYWZSZWYuY3VycmVudCl9fX0sW21hc2tGb3JtYXQsZm9ybWF0LGZvY3VzZWQsaW5wdXRWYWx1ZSxmb2N1c0NlbGxJbmRleCxzZWxlY3Rpb25TdGFydCxzZWxlY3Rpb25FbmQsZm9yY2VTZWxlY3Rpb25TeW5jTWFyayx0cmlnZ2VySW5wdXRDaGFuZ2VdKTt2YXIgaW5wdXRQcm9wcz1mb3JtYXQ/e29uRm9jdXM6ZnVuY3Rpb24oZXZlbnQpe3NldEZvY3VzZWQoITApLHNldEZvY3VzQ2VsbEluZGV4KDApLHNldEZvY3VzQ2VsbFRleHQoIiIpLG9uRm9jdXMoZXZlbnQpfSxvbkJsdXI6ZnVuY3Rpb24oZXZlbnQpe3NldEZvY3VzZWQoITEpLG9uU2hhcmVkQmx1cihldmVudCl9LG9uS2V5RG93bjpmdW5jdGlvbihldmVudCl7b25TaGFyZWRLZXlEb3duKGV2ZW50KTt2YXIga2V5PWV2ZW50LmtleSxuZXh0Q2VsbFRleHQ9bnVsbCxuZXh0RmlsbFRleHQ9bnVsbCxtYXNrQ2VsbExlbj1zZWxlY3Rpb25FbmQtc2VsZWN0aW9uU3RhcnQsY2VsbEZvcm1hdD1mb3JtYXQuc2xpY2Uoc2VsZWN0aW9uU3RhcnQsc2VsZWN0aW9uRW5kKSxvZmZzZXRDZWxsSW5kZXg9ZnVuY3Rpb24ob2Zmc2V0KXtzZXRGb2N1c0NlbGxJbmRleChmdW5jdGlvbihpZHgpe3ZhciBuZXh0SW5kZXg9aWR4K29mZnNldDtyZXR1cm4gTWF0aC5taW4obmV4dEluZGV4PU1hdGgubWF4KG5leHRJbmRleCwwKSxtYXNrRm9ybWF0LnNpemUoKS0xKX0pfSxvZmZzZXRDZWxsVmFsdWU9ZnVuY3Rpb24ob2Zmc2V0KXt2YXIgX2dldE1hc2tSYW5nZTI9X3NsaWNlZFRvQXJyYXkoe1lZWVk6WzAsOTk5OSxuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCldLE1NOlsxLDEyXSxERDpbMSwzMV0sSEg6WzAsMjNdLG1tOlswLDU5XSxzczpbMCw1OV0sU1NTOlswLDk5OV19W2NlbGxGb3JtYXRdLDMpLHJhbmdlU3RhcnQ9X2dldE1hc2tSYW5nZTJbMF0scmFuZ2VFbmQ9X2dldE1hc2tSYW5nZTJbMV0scmFuZ2VEZWZhdWx0PV9nZXRNYXNrUmFuZ2UyWzJdLGN1cnJlbnRUZXh0TnVtPU51bWJlcihpbnB1dFZhbHVlLnNsaWNlKHNlbGVjdGlvblN0YXJ0LHNlbGVjdGlvbkVuZCkpO2lmKGlzTmFOKGN1cnJlbnRUZXh0TnVtKSlyZXR1cm4gU3RyaW5nKHJhbmdlRGVmYXVsdHx8KG9mZnNldD4wP3JhbmdlU3RhcnQ6cmFuZ2VFbmQpKTt2YXIgcmFuZ2U9cmFuZ2VFbmQtcmFuZ2VTdGFydCsxO3JldHVybiBTdHJpbmcocmFuZ2VTdGFydCsocmFuZ2UrKGN1cnJlbnRUZXh0TnVtK29mZnNldCktcmFuZ2VTdGFydCklcmFuZ2UpfTtzd2l0Y2goa2V5KXtjYXNlIkJhY2tzcGFjZSI6Y2FzZSJEZWxldGUiOm5leHRDZWxsVGV4dD0iIixuZXh0RmlsbFRleHQ9Y2VsbEZvcm1hdDticmVhaztjYXNlIkFycm93TGVmdCI6bmV4dENlbGxUZXh0PSIiLG9mZnNldENlbGxJbmRleCgtMSk7YnJlYWs7Y2FzZSJBcnJvd1JpZ2h0IjpuZXh0Q2VsbFRleHQ9IiIsb2Zmc2V0Q2VsbEluZGV4KDEpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6bmV4dENlbGxUZXh0PSIiLG5leHRGaWxsVGV4dD1vZmZzZXRDZWxsVmFsdWUoMSk7YnJlYWs7Y2FzZSJBcnJvd0Rvd24iOm5leHRDZWxsVGV4dD0iIixuZXh0RmlsbFRleHQ9b2Zmc2V0Q2VsbFZhbHVlKC0xKTticmVhaztkZWZhdWx0OmlzTmFOKE51bWJlcihrZXkpKXx8KG5leHRGaWxsVGV4dD1uZXh0Q2VsbFRleHQ9Zm9jdXNDZWxsVGV4dCtrZXkpfW51bGwhPT1uZXh0Q2VsbFRleHQmJihzZXRGb2N1c0NlbGxUZXh0KG5leHRDZWxsVGV4dCksbmV4dENlbGxUZXh0Lmxlbmd0aD49bWFza0NlbGxMZW4mJihvZmZzZXRDZWxsSW5kZXgoMSksc2V0Rm9jdXNDZWxsVGV4dCgiIikpKSxudWxsIT09bmV4dEZpbGxUZXh0JiZ0cmlnZ2VySW5wdXRDaGFuZ2UoKGlucHV0VmFsdWUuc2xpY2UoMCxzZWxlY3Rpb25TdGFydCkrbGVmdFBhZChuZXh0RmlsbFRleHQsbWFza0NlbGxMZW4pK2lucHV0VmFsdWUuc2xpY2Uoc2VsZWN0aW9uRW5kKSkuc2xpY2UoMCxmb3JtYXQubGVuZ3RoKSksZm9yY2VTZWxlY3Rpb25TeW5jKHt9KX0sb25Nb3VzZURvd246ZnVuY3Rpb24oKXttb3VzZURvd25SZWYuY3VycmVudD0hMH0sb25Nb3VzZVVwOmZ1bmN0aW9uKGV2ZW50KXt2YXIgc3RhcnQ9ZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0O3NldEZvY3VzQ2VsbEluZGV4KG1hc2tGb3JtYXQuZ2V0TWFza0NlbGxJbmRleChzdGFydCkpLGZvcmNlU2VsZWN0aW9uU3luYyh7fSksbnVsbD09b25Nb3VzZVVwfHxvbk1vdXNlVXAoZXZlbnQpLG1vdXNlRG93blJlZi5jdXJyZW50PSExfSxvblBhc3RlOmZ1bmN0aW9uKGV2ZW50KXt2YXIgcGFzdGVUZXh0PWV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgidGV4dCIpO3ZhbGlkYXRlRm9ybWF0KHBhc3RlVGV4dCkmJnRyaWdnZXJJbnB1dENoYW5nZShwYXN0ZVRleHQpfX06e307cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpob2xkZXJSZWYsY2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKShpbnB1dFByZWZpeENscywoMCxkZWZpbmVQcm9wZXJ0eS5aKSgoMCxkZWZpbmVQcm9wZXJ0eS5aKSh7fSwiIi5jb25jYXQoaW5wdXRQcmVmaXhDbHMsIi1hY3RpdmUiKSxhY3RpdmUmJih2b2lkIDA9PT1fcHJvcHMkc2hvd0FjdGl2ZUNsc3x8X3Byb3BzJHNob3dBY3RpdmVDbHMpKSwiIi5jb25jYXQoaW5wdXRQcmVmaXhDbHMsIi1wbGFjZWhvbGRlciIpLGhlbHBlZCkpfSxyZWFjdC5jcmVhdGVFbGVtZW50KHZvaWQgMD09PV9SZWFjdCR1c2VDb250ZXh0JGlucD8iaW5wdXQiOl9SZWFjdCR1c2VDb250ZXh0JGlucCxfZXh0ZW5kcyh7cmVmOmlucHV0UmVmLCJhcmlhLWludmFsaWQiOmludmFsaWQsYXV0b0NvbXBsZXRlOiJvZmYifSxyZXN0UHJvcHMse29uS2V5RG93bjpvblNoYXJlZEtleURvd24sb25CbHVyOm9uU2hhcmVkQmx1cn0saW5wdXRQcm9wcyx7dmFsdWU6aW5wdXRWYWx1ZSxvbkNoYW5nZTpmdW5jdGlvbihldmVudCl7aWYoIWZvcm1hdCl7dmFyIHRleHQ9ZXZlbnQudGFyZ2V0LnZhbHVlO29uTW9kaWZ5KHRleHQpLHNldElucHV0VmFsdWUodGV4dCksb25DaGFuZ2UodGV4dCl9fX0pKSxyZWFjdC5jcmVhdGVFbGVtZW50KEljb24se3R5cGU6InN1ZmZpeCIsaWNvbjpzdWZmaXhJY29ufSksY2xlYXJJY29uKX0pLFJhbmdlU2VsZWN0b3JfZXhjbHVkZWQ9WyJpZCIsInByZWZpeCIsImNsZWFySWNvbiIsInN1ZmZpeEljb24iLCJzZXBhcmF0b3IiLCJhY3RpdmVJbmRleCIsImFjdGl2ZUhlbHAiLCJhbGxIZWxwIiwiZm9jdXNlZCIsIm9uRm9jdXMiLCJvbkJsdXIiLCJvbktleURvd24iLCJsb2NhbGUiLCJnZW5lcmF0ZUNvbmZpZyIsInBsYWNlaG9sZGVyIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJvbkNsaWNrIiwib25DbGVhciIsInZhbHVlIiwib25DaGFuZ2UiLCJvblN1Ym1pdCIsIm9uSW5wdXRDaGFuZ2UiLCJmb3JtYXQiLCJtYXNrRm9ybWF0IiwicHJlc2VydmVJbnZhbGlkT25CbHVyIiwib25JbnZhbGlkIiwiZGlzYWJsZWQiLCJpbnZhbGlkIiwiaW5wdXRSZWFkT25seSIsImRpcmVjdGlvbiIsIm9uT3BlbkNoYW5nZSIsIm9uQWN0aXZlSW5mbyIsInBsYWNlbWVudCIsIm9uTW91c2VEb3duIiwicmVxdWlyZWQiLCJhcmlhLXJlcXVpcmVkIiwiYXV0b0ZvY3VzIiwidGFiSW5kZXgiXSxSYW5nZVNlbGVjdG9yX2V4Y2x1ZGVkMj1bImluZGV4Il0sUmVmUmFuZ2VTZWxlY3Rvcj1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7dmFyIGlkPXByb3BzLmlkLHByZWZpeD1wcm9wcy5wcmVmaXgsY2xlYXJJY29uPXByb3BzLmNsZWFySWNvbixzdWZmaXhJY29uPXByb3BzLnN1ZmZpeEljb24sX3Byb3BzJHNlcGFyYXRvcj1wcm9wcy5zZXBhcmF0b3IsYWN0aXZlSW5kZXg9cHJvcHMuYWN0aXZlSW5kZXgsZm9jdXNlZD0ocHJvcHMuYWN0aXZlSGVscCxwcm9wcy5hbGxIZWxwLHByb3BzLmZvY3VzZWQpLHBsYWNlaG9sZGVyPShwcm9wcy5vbkZvY3VzLHByb3BzLm9uQmx1cixwcm9wcy5vbktleURvd24scHJvcHMubG9jYWxlLHByb3BzLmdlbmVyYXRlQ29uZmlnLHByb3BzLnBsYWNlaG9sZGVyKSxjbGFzc05hbWU9cHJvcHMuY2xhc3NOYW1lLHN0eWxlPXByb3BzLnN0eWxlLG9uQ2xpY2s9cHJvcHMub25DbGljayxvbkNsZWFyPXByb3BzLm9uQ2xlYXIsdmFsdWU9cHJvcHMudmFsdWUsZGlzYWJsZWQ9KHByb3BzLm9uQ2hhbmdlLHByb3BzLm9uU3VibWl0LHByb3BzLm9uSW5wdXRDaGFuZ2UscHJvcHMuZm9ybWF0LHByb3BzLm1hc2tGb3JtYXQscHJvcHMucHJlc2VydmVJbnZhbGlkT25CbHVyLHByb3BzLm9uSW52YWxpZCxwcm9wcy5kaXNhYmxlZCksaW52YWxpZD1wcm9wcy5pbnZhbGlkLGRpcmVjdGlvbj0ocHJvcHMuaW5wdXRSZWFkT25seSxwcm9wcy5kaXJlY3Rpb24pLG9uQWN0aXZlSW5mbz0ocHJvcHMub25PcGVuQ2hhbmdlLHByb3BzLm9uQWN0aXZlSW5mbyksX29uTW91c2VEb3duPShwcm9wcy5wbGFjZW1lbnQscHJvcHMub25Nb3VzZURvd24pLGF1dG9Gb2N1cz0ocHJvcHMucmVxdWlyZWQscHJvcHNbImFyaWEtcmVxdWlyZWQiXSxwcm9wcy5hdXRvRm9jdXMpLHRhYkluZGV4PXByb3BzLnRhYkluZGV4LHJlc3RQcm9wcz1fb2JqZWN0V2l0aG91dFByb3BlcnRpZXMocHJvcHMsUmFuZ2VTZWxlY3Rvcl9leGNsdWRlZCkscHJlZml4Q2xzPXJlYWN0LnVzZUNvbnRleHQoUGlja2VyQ29udGV4dCkucHJlZml4Q2xzLGlkcz1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7aWYoInN0cmluZyI9PXR5cGVvZiBpZClyZXR1cm5baWRdO3ZhciBtZXJnZWRJZD1pZHx8e307cmV0dXJuW21lcmdlZElkLnN0YXJ0LG1lcmdlZElkLmVuZF19LFtpZF0pLHJvb3RSZWY9cmVhY3QudXNlUmVmKCksaW5wdXRTdGFydFJlZj1yZWFjdC51c2VSZWYoKSxpbnB1dEVuZFJlZj1yZWFjdC51c2VSZWYoKSxnZXRJbnB1dD1mdW5jdGlvbihpbmRleCl7dmFyIF9pbmRleDtyZXR1cm4gbnVsbD09PShfaW5kZXg9W2lucHV0U3RhcnRSZWYsaW5wdXRFbmRSZWZdW2luZGV4XSl8fHZvaWQgMD09PV9pbmRleD92b2lkIDA6X2luZGV4LmN1cnJlbnR9O3JlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLGZ1bmN0aW9uKCl7cmV0dXJue25hdGl2ZUVsZW1lbnQ6cm9vdFJlZi5jdXJyZW50LGZvY3VzOmZ1bmN0aW9uKG9wdGlvbnMpe2lmKCJvYmplY3QiPT09KDAsZXNtX3R5cGVvZi5aKShvcHRpb25zKSl7dmFyIF9nZXRJbnB1dDIsX2dldElucHV0LF9yZWY9b3B0aW9uc3x8e30sX3JlZiRpbmRleD1fcmVmLmluZGV4LHJlc3Q9X29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9yZWYsUmFuZ2VTZWxlY3Rvcl9leGNsdWRlZDIpO251bGw9PT0oX2dldElucHV0PWdldElucHV0KHZvaWQgMD09PV9yZWYkaW5kZXg/MDpfcmVmJGluZGV4KSl8fHZvaWQgMD09PV9nZXRJbnB1dHx8X2dldElucHV0LmZvY3VzKHJlc3QpfWVsc2UgbnVsbD09PShfZ2V0SW5wdXQyPWdldElucHV0KG51bGwhPW9wdGlvbnM/b3B0aW9uczowKSl8fHZvaWQgMD09PV9nZXRJbnB1dDJ8fF9nZXRJbnB1dDIuZm9jdXMoKX0sYmx1cjpmdW5jdGlvbigpe3ZhciBfZ2V0SW5wdXQzLF9nZXRJbnB1dDQ7bnVsbD09PShfZ2V0SW5wdXQzPWdldElucHV0KDApKXx8dm9pZCAwPT09X2dldElucHV0M3x8X2dldElucHV0My5ibHVyKCksbnVsbD09PShfZ2V0SW5wdXQ0PWdldElucHV0KDEpKXx8dm9pZCAwPT09X2dldElucHV0NHx8X2dldElucHV0NC5ibHVyKCl9fX0pO3ZhciByb290UHJvcHM9dXNlUm9vdFByb3BzKHJlc3RQcm9wcyksbWVyZ2VkUGxhY2Vob2xkZXI9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBBcnJheS5pc0FycmF5KHBsYWNlaG9sZGVyKT9wbGFjZWhvbGRlcjpbcGxhY2Vob2xkZXIscGxhY2Vob2xkZXJdfSxbcGxhY2Vob2xkZXJdKSxnZXRJbnB1dFByb3BzPV9zbGljZWRUb0FycmF5KHVzZUlucHV0UHJvcHMoKDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LHByb3BzKSx7fSx7aWQ6aWRzLHBsYWNlaG9sZGVyOm1lcmdlZFBsYWNlaG9sZGVyfSkpLDEpWzBdLF9SZWFjdCR1c2VTdGF0ZTI9X3NsaWNlZFRvQXJyYXkocmVhY3QudXNlU3RhdGUoe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsd2lkdGg6MH0pLDIpLGFjdGl2ZUJhclN0eWxlPV9SZWFjdCR1c2VTdGF0ZTJbMF0sc2V0QWN0aXZlQmFyU3R5bGU9X1JlYWN0JHVzZVN0YXRlMlsxXSxzeW5jQWN0aXZlT2Zmc2V0PXVzZUV2ZW50KGZ1bmN0aW9uKCl7dmFyIGlucHV0PWdldElucHV0KGFjdGl2ZUluZGV4KTtpZihpbnB1dCl7dmFyIGlucHV0UmVjdD1pbnB1dC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHBhcmVudFJlY3Q9cm9vdFJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHJlY3RPZmZzZXQ9aW5wdXRSZWN0LmxlZnQtcGFyZW50UmVjdC5sZWZ0O3NldEFjdGl2ZUJhclN0eWxlKGZ1bmN0aW9uKG9yaSl7cmV0dXJuKDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LG9yaSkse30se3dpZHRoOmlucHV0UmVjdC53aWR0aCxsZWZ0OnJlY3RPZmZzZXR9KX0pLG9uQWN0aXZlSW5mbyhbaW5wdXRSZWN0LmxlZnQsaW5wdXRSZWN0LnJpZ2h0LHBhcmVudFJlY3Qud2lkdGhdKX19KTtyZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24oKXtzeW5jQWN0aXZlT2Zmc2V0KCl9LFthY3RpdmVJbmRleF0pO3ZhciBzaG93Q2xlYXI9Y2xlYXJJY29uJiYodmFsdWVbMF0mJiFkaXNhYmxlZFswXXx8dmFsdWVbMV0mJiFkaXNhYmxlZFsxXSksc3RhcnRBdXRvRm9jdXM9YXV0b0ZvY3VzJiYhZGlzYWJsZWRbMF0sZW5kQXV0b0ZvY3VzPWF1dG9Gb2N1cyYmIXN0YXJ0QXV0b0ZvY3VzJiYhZGlzYWJsZWRbMV07cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQocmNfcmVzaXplX29ic2VydmVyX2VzLlose29uUmVzaXplOnN5bmNBY3RpdmVPZmZzZXR9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIsX2V4dGVuZHMoe30scm9vdFByb3BzLHtjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKHByZWZpeENscywiIi5jb25jYXQocHJlZml4Q2xzLCItcmFuZ2UiKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKSgoMCxkZWZpbmVQcm9wZXJ0eS5aKSgoMCxkZWZpbmVQcm9wZXJ0eS5aKSgoMCxkZWZpbmVQcm9wZXJ0eS5aKSh7fSwiIi5jb25jYXQocHJlZml4Q2xzLCItZm9jdXNlZCIpLGZvY3VzZWQpLCIiLmNvbmNhdChwcmVmaXhDbHMsIi1kaXNhYmxlZCIpLGRpc2FibGVkLmV2ZXJ5KGZ1bmN0aW9uKGkpe3JldHVybiBpfSkpLCIiLmNvbmNhdChwcmVmaXhDbHMsIi1pbnZhbGlkIiksaW52YWxpZC5zb21lKGZ1bmN0aW9uKGkpe3JldHVybiBpfSkpLCIiLmNvbmNhdChwcmVmaXhDbHMsIi1ydGwiKSwicnRsIj09PWRpcmVjdGlvbiksY2xhc3NOYW1lKSxzdHlsZTpzdHlsZSxyZWY6cm9vdFJlZixvbkNsaWNrOm9uQ2xpY2ssb25Nb3VzZURvd246ZnVuY3Rpb24oZSl7dmFyIHRhcmdldD1lLnRhcmdldDt0YXJnZXQhPT1pbnB1dFN0YXJ0UmVmLmN1cnJlbnQuaW5wdXRFbGVtZW50JiZ0YXJnZXQhPT1pbnB1dEVuZFJlZi5jdXJyZW50LmlucHV0RWxlbWVudCYmZS5wcmV2ZW50RGVmYXVsdCgpLG51bGw9PV9vbk1vdXNlRG93bnx8X29uTW91c2VEb3duKGUpfX0pLHByZWZpeCYmcmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi1wcmVmaXgiKX0scHJlZml4KSxyZWFjdC5jcmVhdGVFbGVtZW50KElucHV0LF9leHRlbmRzKHtyZWY6aW5wdXRTdGFydFJlZn0sZ2V0SW5wdXRQcm9wcygwKSx7YXV0b0ZvY3VzOnN0YXJ0QXV0b0ZvY3VzLHRhYkluZGV4OnRhYkluZGV4LCJkYXRlLXJhbmdlIjoic3RhcnQifSkpLHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItcmFuZ2Utc2VwYXJhdG9yIil9LHZvaWQgMD09PV9wcm9wcyRzZXBhcmF0b3I/In4iOl9wcm9wcyRzZXBhcmF0b3IpLHJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXQsX2V4dGVuZHMoe3JlZjppbnB1dEVuZFJlZn0sZ2V0SW5wdXRQcm9wcygxKSx7YXV0b0ZvY3VzOmVuZEF1dG9Gb2N1cyx0YWJJbmRleDp0YWJJbmRleCwiZGF0ZS1yYW5nZSI6ImVuZCJ9KSkscmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi1hY3RpdmUtYmFyIiksc3R5bGU6YWN0aXZlQmFyU3R5bGV9KSxyZWFjdC5jcmVhdGVFbGVtZW50KEljb24se3R5cGU6InN1ZmZpeCIsaWNvbjpzdWZmaXhJY29ufSksc2hvd0NsZWFyJiZyZWFjdC5jcmVhdGVFbGVtZW50KENsZWFySWNvbix7aWNvbjpjbGVhckljb24sb25DbGVhcjpvbkNsZWFyfSkpKX0pO2Z1bmN0aW9uIHNlcGFyYXRlQ29uZmlnKGNvbmZpZyxkZWZhdWx0Q29uZmlnKXt2YXIgc2luZ2xlQ29uZmlnPW51bGwhPWNvbmZpZz9jb25maWc6ZGVmYXVsdENvbmZpZztyZXR1cm4gQXJyYXkuaXNBcnJheShzaW5nbGVDb25maWcpP3NpbmdsZUNvbmZpZzpbc2luZ2xlQ29uZmlnLHNpbmdsZUNvbmZpZ119ZnVuY3Rpb24gZ2V0QWN0aXZlUmFuZ2UoYWN0aXZlSW5kZXgpe3JldHVybiAxPT09YWN0aXZlSW5kZXg/ImVuZCI6InN0YXJ0In12YXIgUmVmUmFuZ2VQaWNrZXI9cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3ZhciBhY3RpdmVJbmRleCxfdXNlRmlsbGVkUHJvcHMyPV9zbGljZWRUb0FycmF5KHVzZUZpbGxlZFByb3BzKHByb3BzLGZ1bmN0aW9uKCl7dmFyIGRpc2FibGVkPXByb3BzLmRpc2FibGVkLGFsbG93RW1wdHk9cHJvcHMuYWxsb3dFbXB0eTtyZXR1cm57ZGlzYWJsZWQ6c2VwYXJhdGVDb25maWcoZGlzYWJsZWQsITEpLGFsbG93RW1wdHk6c2VwYXJhdGVDb25maWcoYWxsb3dFbXB0eSwhMSl9fSksNiksZmlsbGVkUHJvcHM9X3VzZUZpbGxlZFByb3BzMlswXSxpbnRlcm5hbFBpY2tlcj1fdXNlRmlsbGVkUHJvcHMyWzFdLGNvbXBsZXhQaWNrZXI9X3VzZUZpbGxlZFByb3BzMlsyXSxmb3JtYXRMaXN0PV91c2VGaWxsZWRQcm9wczJbM10sbWFza0Zvcm1hdD1fdXNlRmlsbGVkUHJvcHMyWzRdLGlzSW52YWxpZGF0ZURhdGU9X3VzZUZpbGxlZFByb3BzMls1XSxwcmVmaXhDbHM9ZmlsbGVkUHJvcHMucHJlZml4Q2xzLHN0eWxlcz1maWxsZWRQcm9wcy5zdHlsZXMsY2xhc3NOYW1lcz1maWxsZWRQcm9wcy5jbGFzc05hbWVzLGRlZmF1bHRWYWx1ZT1maWxsZWRQcm9wcy5kZWZhdWx0VmFsdWUsdmFsdWU9ZmlsbGVkUHJvcHMudmFsdWUsbmVlZENvbmZpcm09ZmlsbGVkUHJvcHMubmVlZENvbmZpcm0sb25LZXlEb3duPWZpbGxlZFByb3BzLm9uS2V5RG93bixkaXNhYmxlZD1maWxsZWRQcm9wcy5kaXNhYmxlZCxhbGxvd0VtcHR5PWZpbGxlZFByb3BzLmFsbG93RW1wdHksZGlzYWJsZWREYXRlPWZpbGxlZFByb3BzLmRpc2FibGVkRGF0ZSxtaW5EYXRlPWZpbGxlZFByb3BzLm1pbkRhdGUsbWF4RGF0ZT1maWxsZWRQcm9wcy5tYXhEYXRlLGRlZmF1bHRPcGVuPWZpbGxlZFByb3BzLmRlZmF1bHRPcGVuLG9wZW49ZmlsbGVkUHJvcHMub3Blbixvbk9wZW5DaGFuZ2U9ZmlsbGVkUHJvcHMub25PcGVuQ2hhbmdlLGxvY2FsZT1maWxsZWRQcm9wcy5sb2NhbGUsZ2VuZXJhdGVDb25maWc9ZmlsbGVkUHJvcHMuZ2VuZXJhdGVDb25maWcscGlja2VyPWZpbGxlZFByb3BzLnBpY2tlcixzaG93Tm93PWZpbGxlZFByb3BzLnNob3dOb3csc2hvd1RvZGF5PWZpbGxlZFByb3BzLnNob3dUb2RheSxzaG93VGltZT1maWxsZWRQcm9wcy5zaG93VGltZSxtb2RlPWZpbGxlZFByb3BzLm1vZGUsb25QYW5lbENoYW5nZT1maWxsZWRQcm9wcy5vblBhbmVsQ2hhbmdlLG9uQ2FsZW5kYXJDaGFuZ2U9ZmlsbGVkUHJvcHMub25DYWxlbmRhckNoYW5nZSxvbk9rPWZpbGxlZFByb3BzLm9uT2ssZGVmYXVsdFBpY2tlclZhbHVlPWZpbGxlZFByb3BzLmRlZmF1bHRQaWNrZXJWYWx1ZSxwaWNrZXJWYWx1ZT1maWxsZWRQcm9wcy5waWNrZXJWYWx1ZSxvblBpY2tlclZhbHVlQ2hhbmdlPWZpbGxlZFByb3BzLm9uUGlja2VyVmFsdWVDaGFuZ2UsaW5wdXRSZWFkT25seT1maWxsZWRQcm9wcy5pbnB1dFJlYWRPbmx5LHN1ZmZpeEljb249ZmlsbGVkUHJvcHMuc3VmZml4SWNvbixvbkZvY3VzPWZpbGxlZFByb3BzLm9uRm9jdXMsb25CbHVyPWZpbGxlZFByb3BzLm9uQmx1cixwcmVzZXRzPWZpbGxlZFByb3BzLnByZXNldHMscmFuZ2VzPWZpbGxlZFByb3BzLnJhbmdlcyxjb21wb25lbnRzPWZpbGxlZFByb3BzLmNvbXBvbmVudHMsY2VsbFJlbmRlcj1maWxsZWRQcm9wcy5jZWxsUmVuZGVyLGRhdGVSZW5kZXI9ZmlsbGVkUHJvcHMuZGF0ZVJlbmRlcixtb250aENlbGxSZW5kZXI9ZmlsbGVkUHJvcHMubW9udGhDZWxsUmVuZGVyLG9uQ2xpY2s9ZmlsbGVkUHJvcHMub25DbGljayxzZWxlY3RvclJlZj11c2VQaWNrZXJSZWYocmVmKSxfdXNlT3BlbjI9X3NsaWNlZFRvQXJyYXkodXNlT3BlbihvcGVuLGRlZmF1bHRPcGVuLGRpc2FibGVkLG9uT3BlbkNoYW5nZSksMiksbWVyZ2VkT3Blbj1fdXNlT3BlbjJbMF0sc2V0TWVyZ2VPcGVuPV91c2VPcGVuMlsxXSx0cmlnZ2VyT3Blbj1mdW5jdGlvbihuZXh0T3Blbixjb25maWcpeyhkaXNhYmxlZC5zb21lKGZ1bmN0aW9uKGZpZWxkRGlzYWJsZWQpe3JldHVybiFmaWVsZERpc2FibGVkfSl8fCFuZXh0T3BlbikmJnNldE1lcmdlT3BlbihuZXh0T3Blbixjb25maWcpfSxfdXNlSW5uZXJWYWx1ZTI9X3NsaWNlZFRvQXJyYXkodXNlSW5uZXJWYWx1ZShnZW5lcmF0ZUNvbmZpZyxsb2NhbGUsZm9ybWF0TGlzdCwhMCwhMSxkZWZhdWx0VmFsdWUsdmFsdWUsb25DYWxlbmRhckNoYW5nZSxvbk9rKSw1KSxtZXJnZWRWYWx1ZT1fdXNlSW5uZXJWYWx1ZTJbMF0sc2V0SW5uZXJWYWx1ZT1fdXNlSW5uZXJWYWx1ZTJbMV0sZ2V0Q2FsZW5kYXJWYWx1ZT1fdXNlSW5uZXJWYWx1ZTJbMl0sdHJpZ2dlckNhbGVuZGFyQ2hhbmdlPV91c2VJbm5lclZhbHVlMlszXSx0cmlnZ2VyT2s9X3VzZUlubmVyVmFsdWUyWzRdLGNhbGVuZGFyVmFsdWU9Z2V0Q2FsZW5kYXJWYWx1ZSgpLF91c2VSYW5nZUFjdGl2ZTI9X3NsaWNlZFRvQXJyYXkodXNlUmFuZ2VBY3RpdmUoZGlzYWJsZWQsYWxsb3dFbXB0eSxtZXJnZWRPcGVuKSw5KSxmb2N1c2VkPV91c2VSYW5nZUFjdGl2ZTJbMF0sdHJpZ2dlckZvY3VzPV91c2VSYW5nZUFjdGl2ZTJbMV0sbGFzdE9wZXJhdGlvbj1fdXNlUmFuZ2VBY3RpdmUyWzJdLGFjdGl2ZUluZGV4MT1fdXNlUmFuZ2VBY3RpdmUyWzNdLHNldEFjdGl2ZUluZGV4PV91c2VSYW5nZUFjdGl2ZTJbNF0sbmV4dEFjdGl2ZUluZGV4PV91c2VSYW5nZUFjdGl2ZTJbNV0sYWN0aXZlSW5kZXhMaXN0PV91c2VSYW5nZUFjdGl2ZTJbNl0sdXBkYXRlU3VibWl0SW5kZXg9X3VzZVJhbmdlQWN0aXZlMls3XSxoYXNBY3RpdmVTdWJtaXRWYWx1ZT1fdXNlUmFuZ2VBY3RpdmUyWzhdLG9uU2hhcmVkRm9jdXM9ZnVuY3Rpb24oZXZlbnQsaW5kZXgpe3RyaWdnZXJGb2N1cyghMCksbnVsbD09b25Gb2N1c3x8b25Gb2N1cyhldmVudCx7cmFuZ2U6Z2V0QWN0aXZlUmFuZ2UobnVsbCE9aW5kZXg/aW5kZXg6YWN0aXZlSW5kZXgxKX0pfSxvblNoYXJlZEJsdXI9ZnVuY3Rpb24oZXZlbnQsaW5kZXgpe3RyaWdnZXJGb2N1cyghMSksbnVsbD09b25CbHVyfHxvbkJsdXIoZXZlbnQse3JhbmdlOmdldEFjdGl2ZVJhbmdlKG51bGwhPWluZGV4P2luZGV4OmFjdGl2ZUluZGV4MSl9KX0sbWVyZ2VkU2hvd1RpbWU9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe2lmKCFzaG93VGltZSlyZXR1cm4gbnVsbDt2YXIgZGlzYWJsZWRUaW1lPXNob3dUaW1lLmRpc2FibGVkVGltZTtyZXR1cm4oMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe30sc2hvd1RpbWUpLHt9LHtkaXNhYmxlZFRpbWU6ZGlzYWJsZWRUaW1lP2Z1bmN0aW9uKGRhdGUpe3JldHVybiBkaXNhYmxlZFRpbWUoZGF0ZSxnZXRBY3RpdmVSYW5nZShhY3RpdmVJbmRleDEpLHtmcm9tOmdldEZyb21EYXRlKGNhbGVuZGFyVmFsdWUsYWN0aXZlSW5kZXhMaXN0LGFjdGl2ZUluZGV4MSl9KX06dm9pZCAwfSl9LFtzaG93VGltZSxhY3RpdmVJbmRleDEsY2FsZW5kYXJWYWx1ZSxhY3RpdmVJbmRleExpc3RdKSxfdXNlTWVyZ2VkU3RhdGUyPV9zbGljZWRUb0FycmF5KHVzZU1lcmdlZFN0YXRlKFtwaWNrZXIscGlja2VyXSx7dmFsdWU6bW9kZX0pLDIpLG1vZGVzPV91c2VNZXJnZWRTdGF0ZTJbMF0sc2V0TW9kZXM9X3VzZU1lcmdlZFN0YXRlMlsxXSxtZXJnZWRNb2RlPW1vZGVzW2FjdGl2ZUluZGV4MV18fHBpY2tlcixpbnRlcm5hbE1vZGU9ImRhdGUiPT09bWVyZ2VkTW9kZSYmbWVyZ2VkU2hvd1RpbWU/ImRhdGV0aW1lIjptZXJnZWRNb2RlLG11bHRpcGxlUGFuZWw9aW50ZXJuYWxNb2RlPT09cGlja2VyJiYidGltZSIhPT1pbnRlcm5hbE1vZGUsbWVyZ2VkU2hvd05vdz11c2VTaG93Tm93KHBpY2tlcixtZXJnZWRNb2RlLHNob3dOb3csc2hvd1RvZGF5LCEwKSxfdXNlUmFuZ2VWYWx1ZTI9X3NsaWNlZFRvQXJyYXkodXNlUmFuZ2VWYWx1ZShmaWxsZWRQcm9wcyxtZXJnZWRWYWx1ZSxzZXRJbm5lclZhbHVlLGdldENhbGVuZGFyVmFsdWUsdHJpZ2dlckNhbGVuZGFyQ2hhbmdlLGRpc2FibGVkLGZvcm1hdExpc3QsZm9jdXNlZCxtZXJnZWRPcGVuLGlzSW52YWxpZGF0ZURhdGUpLDIpLGZsdXNoU3VibWl0PV91c2VSYW5nZVZhbHVlMlswXSx0cmlnZ2VyU3VibWl0Q2hhbmdlPV91c2VSYW5nZVZhbHVlMlsxXSxtZXJnZWREaXNhYmxlZERhdGU9KGFjdGl2ZUluZGV4PWFjdGl2ZUluZGV4TGlzdFthY3RpdmVJbmRleExpc3QubGVuZ3RoLTFdLGZ1bmN0aW9uKGRhdGUsaW5mbyl7dmFyIF92YWx1ZXM9X3NsaWNlZFRvQXJyYXkoY2FsZW5kYXJWYWx1ZSwyKSxzdGFydD1fdmFsdWVzWzBdLGVuZD1fdmFsdWVzWzFdLG1lcmdlZEluZm89KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LGluZm8pLHt9LHtmcm9tOmdldEZyb21EYXRlKGNhbGVuZGFyVmFsdWUsYWN0aXZlSW5kZXhMaXN0KX0pO3JldHVybiEhKDE9PT1hY3RpdmVJbmRleCYmZGlzYWJsZWRbMF0mJnN0YXJ0JiYhaXNTYW1lKGdlbmVyYXRlQ29uZmlnLGxvY2FsZSxzdGFydCxkYXRlLG1lcmdlZEluZm8udHlwZSkmJmdlbmVyYXRlQ29uZmlnLmlzQWZ0ZXIoc3RhcnQsZGF0ZSl8fDA9PT1hY3RpdmVJbmRleCYmZGlzYWJsZWRbMV0mJmVuZCYmIWlzU2FtZShnZW5lcmF0ZUNvbmZpZyxsb2NhbGUsZW5kLGRhdGUsbWVyZ2VkSW5mby50eXBlKSYmZ2VuZXJhdGVDb25maWcuaXNBZnRlcihkYXRlLGVuZCkpfHwobnVsbD09ZGlzYWJsZWREYXRlP3ZvaWQgMDpkaXNhYmxlZERhdGUoZGF0ZSxtZXJnZWRJbmZvKSl9KSxfdXNlRmllbGRzSW52YWxpZGF0ZTI9X3NsaWNlZFRvQXJyYXkodXNlRmllbGRzSW52YWxpZGF0ZShjYWxlbmRhclZhbHVlLGlzSW52YWxpZGF0ZURhdGUsYWxsb3dFbXB0eSksMiksc3VibWl0SW52YWxpZGF0ZXM9X3VzZUZpZWxkc0ludmFsaWRhdGUyWzBdLG9uU2VsZWN0b3JJbnZhbGlkPV91c2VGaWVsZHNJbnZhbGlkYXRlMlsxXSxfdXNlUmFuZ2VQaWNrZXJWYWx1ZTI9X3NsaWNlZFRvQXJyYXkodXNlUmFuZ2VQaWNrZXJWYWx1ZShnZW5lcmF0ZUNvbmZpZyxsb2NhbGUsY2FsZW5kYXJWYWx1ZSxtb2RlcyxtZXJnZWRPcGVuLGFjdGl2ZUluZGV4MSxpbnRlcm5hbFBpY2tlcixtdWx0aXBsZVBhbmVsLGRlZmF1bHRQaWNrZXJWYWx1ZSxwaWNrZXJWYWx1ZSxudWxsPT1tZXJnZWRTaG93VGltZT92b2lkIDA6bWVyZ2VkU2hvd1RpbWUuZGVmYXVsdE9wZW5WYWx1ZSxvblBpY2tlclZhbHVlQ2hhbmdlLG1pbkRhdGUsbWF4RGF0ZSksMiksY3VycmVudFBpY2tlclZhbHVlPV91c2VSYW5nZVBpY2tlclZhbHVlMlswXSxzZXRDdXJyZW50UGlja2VyVmFsdWU9X3VzZVJhbmdlUGlja2VyVmFsdWUyWzFdLHRyaWdnZXJNb2RlQ2hhbmdlPXVzZUV2ZW50KGZ1bmN0aW9uKG5leHRQaWNrZXJWYWx1ZSxuZXh0TW9kZSx0cmlnZ2VyRXZlbnQpe3ZhciBjbG9uZT1maWxsSW5kZXgobW9kZXMsYWN0aXZlSW5kZXgxLG5leHRNb2RlKTtpZigoY2xvbmVbMF0hPT1tb2Rlc1swXXx8Y2xvbmVbMV0hPT1tb2Rlc1sxXSkmJnNldE1vZGVzKGNsb25lKSxvblBhbmVsQ2hhbmdlJiYhMSE9PXRyaWdnZXJFdmVudCl7dmFyIGNsb25lUGlja2VyVmFsdWU9dG9Db25zdW1hYmxlQXJyYXlfdG9Db25zdW1hYmxlQXJyYXkoY2FsZW5kYXJWYWx1ZSk7bmV4dFBpY2tlclZhbHVlJiYoY2xvbmVQaWNrZXJWYWx1ZVthY3RpdmVJbmRleDFdPW5leHRQaWNrZXJWYWx1ZSksb25QYW5lbENoYW5nZShjbG9uZVBpY2tlclZhbHVlLGNsb25lKX19KSxmaWxsQ2FsZW5kYXJWYWx1ZT1mdW5jdGlvbihkYXRlLGluZGV4KXtyZXR1cm4gZmlsbEluZGV4KGNhbGVuZGFyVmFsdWUsaW5kZXgsZGF0ZSl9LHRyaWdnZXJQYXJ0Q29uZmlybT1mdW5jdGlvbihkYXRlLHNraXBGb2N1cyl7dmFyIG5leHRWYWx1ZT1jYWxlbmRhclZhbHVlO2RhdGUmJihuZXh0VmFsdWU9ZmlsbENhbGVuZGFyVmFsdWUoZGF0ZSxhY3RpdmVJbmRleDEpKSx1cGRhdGVTdWJtaXRJbmRleChhY3RpdmVJbmRleDEpO3ZhciBuZXh0SW5kZXg9bmV4dEFjdGl2ZUluZGV4KG5leHRWYWx1ZSk7dHJpZ2dlckNhbGVuZGFyQ2hhbmdlKG5leHRWYWx1ZSksZmx1c2hTdWJtaXQoYWN0aXZlSW5kZXgxLG51bGw9PT1uZXh0SW5kZXgpLG51bGw9PT1uZXh0SW5kZXg/dHJpZ2dlck9wZW4oITEse2ZvcmNlOiEwfSk6c2tpcEZvY3VzfHxzZWxlY3RvclJlZi5jdXJyZW50LmZvY3VzKHtpbmRleDpuZXh0SW5kZXh9KX0sX1JlYWN0JHVzZVN0YXRlMj1fc2xpY2VkVG9BcnJheShyZWFjdC51c2VTdGF0ZShudWxsKSwyKSxob3ZlclNvdXJjZT1fUmVhY3QkdXNlU3RhdGUyWzBdLHNldEhvdmVyU291cmNlPV9SZWFjdCR1c2VTdGF0ZTJbMV0sX1JlYWN0JHVzZVN0YXRlND1fc2xpY2VkVG9BcnJheShyZWFjdC51c2VTdGF0ZShudWxsKSwyKSxpbnRlcm5hbEhvdmVyVmFsdWVzPV9SZWFjdCR1c2VTdGF0ZTRbMF0sc2V0SW50ZXJuYWxIb3ZlclZhbHVlcz1fUmVhY3QkdXNlU3RhdGU0WzFdLGhvdmVyVmFsdWVzPXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gaW50ZXJuYWxIb3ZlclZhbHVlc3x8Y2FsZW5kYXJWYWx1ZX0sW2NhbGVuZGFyVmFsdWUsaW50ZXJuYWxIb3ZlclZhbHVlc10pO3JlYWN0LnVzZUVmZmVjdChmdW5jdGlvbigpe21lcmdlZE9wZW58fHNldEludGVybmFsSG92ZXJWYWx1ZXMobnVsbCl9LFttZXJnZWRPcGVuXSk7dmFyIF9SZWFjdCR1c2VTdGF0ZTY9X3NsaWNlZFRvQXJyYXkocmVhY3QudXNlU3RhdGUoWzAsMCwwXSksMiksYWN0aXZlSW5mbz1fUmVhY3QkdXNlU3RhdGU2WzBdLHNldEFjdGl2ZUluZm89X1JlYWN0JHVzZVN0YXRlNlsxXSxwcmVzZXRMaXN0PXVzZVByZXNldHMocHJlc2V0cyxyYW5nZXMpLG9uSW50ZXJuYWxDZWxsUmVuZGVyPXVzZUNlbGxSZW5kZXIoY2VsbFJlbmRlcixkYXRlUmVuZGVyLG1vbnRoQ2VsbFJlbmRlcixnZXRBY3RpdmVSYW5nZShhY3RpdmVJbmRleDEpKSxwYW5lbFZhbHVlPWNhbGVuZGFyVmFsdWVbYWN0aXZlSW5kZXgxXXx8bnVsbCxpc1BvcHVwSW52YWxpZGF0ZURhdGU9dXNlRXZlbnQoZnVuY3Rpb24oZGF0ZSl7cmV0dXJuIGlzSW52YWxpZGF0ZURhdGUoZGF0ZSx7YWN0aXZlSW5kZXg6YWN0aXZlSW5kZXgxfSl9KSxwYW5lbFByb3BzPXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgZG9tUHJvcHM9cGlja0F0dHJzKGZpbGxlZFByb3BzLCExKTtyZXR1cm4gb21pdChmaWxsZWRQcm9wcyxbXS5jb25jYXQodG9Db25zdW1hYmxlQXJyYXlfdG9Db25zdW1hYmxlQXJyYXkoT2JqZWN0LmtleXMoZG9tUHJvcHMpKSxbIm9uQ2hhbmdlIiwib25DYWxlbmRhckNoYW5nZSIsInN0eWxlIiwiY2xhc3NOYW1lIiwib25QYW5lbENoYW5nZSIsImRpc2FibGVkVGltZSJdKSl9LFtmaWxsZWRQcm9wc10pLHBhbmVsPXJlYWN0LmNyZWF0ZUVsZW1lbnQoUG9wdXAsX2V4dGVuZHMoe30scGFuZWxQcm9wcyx7c2hvd05vdzptZXJnZWRTaG93Tm93LHNob3dUaW1lOm1lcmdlZFNob3dUaW1lLHJhbmdlOiEwLG11bHRpcGxlUGFuZWw6bXVsdGlwbGVQYW5lbCxhY3RpdmVJbmZvOmFjdGl2ZUluZm8sZGlzYWJsZWREYXRlOm1lcmdlZERpc2FibGVkRGF0ZSxvbkZvY3VzOmZ1bmN0aW9uKGV2ZW50KXt0cmlnZ2VyT3BlbighMCksb25TaGFyZWRGb2N1cyhldmVudCl9LG9uQmx1cjpvblNoYXJlZEJsdXIsb25QYW5lbE1vdXNlRG93bjpmdW5jdGlvbigpe2xhc3RPcGVyYXRpb24oInBhbmVsIil9LHBpY2tlcjpwaWNrZXIsbW9kZTptZXJnZWRNb2RlLGludGVybmFsTW9kZTppbnRlcm5hbE1vZGUsb25QYW5lbENoYW5nZTp0cmlnZ2VyTW9kZUNoYW5nZSxmb3JtYXQ6bWFza0Zvcm1hdCx2YWx1ZTpwYW5lbFZhbHVlLGlzSW52YWxpZDppc1BvcHVwSW52YWxpZGF0ZURhdGUsb25DaGFuZ2U6bnVsbCxvblNlbGVjdDpmdW5jdGlvbihkYXRlKXt0cmlnZ2VyQ2FsZW5kYXJDaGFuZ2UoZmlsbEluZGV4KGNhbGVuZGFyVmFsdWUsYWN0aXZlSW5kZXgxLGRhdGUpKSxuZWVkQ29uZmlybXx8Y29tcGxleFBpY2tlcnx8aW50ZXJuYWxQaWNrZXIhPT1pbnRlcm5hbE1vZGV8fHRyaWdnZXJQYXJ0Q29uZmlybShkYXRlKX0scGlja2VyVmFsdWU6Y3VycmVudFBpY2tlclZhbHVlLGRlZmF1bHRPcGVuVmFsdWU6dG9BcnJheShudWxsPT1zaG93VGltZT92b2lkIDA6c2hvd1RpbWUuZGVmYXVsdE9wZW5WYWx1ZSlbYWN0aXZlSW5kZXgxXSxvblBpY2tlclZhbHVlQ2hhbmdlOnNldEN1cnJlbnRQaWNrZXJWYWx1ZSxob3ZlclZhbHVlOmhvdmVyVmFsdWVzLG9uSG92ZXI6ZnVuY3Rpb24oZGF0ZSl7c2V0SW50ZXJuYWxIb3ZlclZhbHVlcyhkYXRlP2ZpbGxDYWxlbmRhclZhbHVlKGRhdGUsYWN0aXZlSW5kZXgxKTpudWxsKSxzZXRIb3ZlclNvdXJjZSgiY2VsbCIpfSxuZWVkQ29uZmlybTpuZWVkQ29uZmlybSxvblN1Ym1pdDp0cmlnZ2VyUGFydENvbmZpcm0sb25Pazp0cmlnZ2VyT2sscHJlc2V0czpwcmVzZXRMaXN0LG9uUHJlc2V0SG92ZXI6ZnVuY3Rpb24obmV4dFZhbHVlcyl7c2V0SW50ZXJuYWxIb3ZlclZhbHVlcyhuZXh0VmFsdWVzKSxzZXRIb3ZlclNvdXJjZSgicHJlc2V0Iil9LG9uUHJlc2V0U3VibWl0OmZ1bmN0aW9uKG5leHRWYWx1ZXMpe3RyaWdnZXJTdWJtaXRDaGFuZ2UobmV4dFZhbHVlcykmJnRyaWdnZXJPcGVuKCExLHtmb3JjZTohMH0pfSxvbk5vdzpmdW5jdGlvbihub3cpe3RyaWdnZXJQYXJ0Q29uZmlybShub3cpfSxjZWxsUmVuZGVyOm9uSW50ZXJuYWxDZWxsUmVuZGVyfSkpLGNvbnRleHQ9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybntwcmVmaXhDbHM6cHJlZml4Q2xzLGxvY2FsZTpsb2NhbGUsZ2VuZXJhdGVDb25maWc6Z2VuZXJhdGVDb25maWcsYnV0dG9uOmNvbXBvbmVudHMuYnV0dG9uLGlucHV0OmNvbXBvbmVudHMuaW5wdXR9fSxbcHJlZml4Q2xzLGxvY2FsZSxnZW5lcmF0ZUNvbmZpZyxjb21wb25lbnRzLmJ1dHRvbixjb21wb25lbnRzLmlucHV0XSk7cmV0dXJuIHVzZUxheW91dEVmZmVjdChmdW5jdGlvbigpe21lcmdlZE9wZW4mJnZvaWQgMCE9PWFjdGl2ZUluZGV4MSYmdHJpZ2dlck1vZGVDaGFuZ2UobnVsbCxwaWNrZXIsITEpfSxbbWVyZ2VkT3BlbixhY3RpdmVJbmRleDEscGlja2VyXSksdXNlTGF5b3V0RWZmZWN0KGZ1bmN0aW9uKCl7dmFyIGxhc3RPcD1sYXN0T3BlcmF0aW9uKCk7bWVyZ2VkT3Blbnx8ImlucHV0IiE9PWxhc3RPcHx8KHRyaWdnZXJPcGVuKCExKSx0cmlnZ2VyUGFydENvbmZpcm0obnVsbCwhMCkpLG1lcmdlZE9wZW58fCFjb21wbGV4UGlja2VyfHxuZWVkQ29uZmlybXx8InBhbmVsIiE9PWxhc3RPcHx8KHRyaWdnZXJPcGVuKCEwKSx0cmlnZ2VyUGFydENvbmZpcm0oKSl9LFttZXJnZWRPcGVuXSkscmVhY3QuY3JlYXRlRWxlbWVudChQaWNrZXJDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpjb250ZXh0fSxyZWFjdC5jcmVhdGVFbGVtZW50KGVzX1BpY2tlclRyaWdnZXIsX2V4dGVuZHMoe30scGlja1RyaWdnZXJQcm9wcyhmaWxsZWRQcm9wcykse3BvcHVwRWxlbWVudDpwYW5lbCxwb3B1cFN0eWxlOnN0eWxlcy5wb3B1cCxwb3B1cENsYXNzTmFtZTpjbGFzc05hbWVzLnBvcHVwLHZpc2libGU6bWVyZ2VkT3BlbixvbkNsb3NlOmZ1bmN0aW9uKCl7dHJpZ2dlck9wZW4oITEpfSxyYW5nZTohMH0pLHJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVmUmFuZ2VTZWxlY3RvcixfZXh0ZW5kcyh7fSxmaWxsZWRQcm9wcyx7cmVmOnNlbGVjdG9yUmVmLHN1ZmZpeEljb246c3VmZml4SWNvbixhY3RpdmVJbmRleDpmb2N1c2VkfHxtZXJnZWRPcGVuP2FjdGl2ZUluZGV4MTpudWxsLGFjdGl2ZUhlbHA6ISFpbnRlcm5hbEhvdmVyVmFsdWVzLGFsbEhlbHA6ISFpbnRlcm5hbEhvdmVyVmFsdWVzJiYicHJlc2V0Ij09PWhvdmVyU291cmNlLGZvY3VzZWQ6Zm9jdXNlZCxvbkZvY3VzOmZ1bmN0aW9uKGV2ZW50LGluZGV4KXt2YXIgYWN0aXZlTGlzdExlbj1hY3RpdmVJbmRleExpc3QubGVuZ3RoLGxhc3RBY3RpdmVJbmRleD1hY3RpdmVJbmRleExpc3RbYWN0aXZlTGlzdExlbi0xXTtpZihhY3RpdmVMaXN0TGVuJiZsYXN0QWN0aXZlSW5kZXghPT1pbmRleCYmbmVlZENvbmZpcm0mJiFhbGxvd0VtcHR5W2xhc3RBY3RpdmVJbmRleF0mJiFoYXNBY3RpdmVTdWJtaXRWYWx1ZShsYXN0QWN0aXZlSW5kZXgpJiZjYWxlbmRhclZhbHVlW2xhc3RBY3RpdmVJbmRleF0pe3NlbGVjdG9yUmVmLmN1cnJlbnQuZm9jdXMoe2luZGV4Omxhc3RBY3RpdmVJbmRleH0pO3JldHVybn1sYXN0T3BlcmF0aW9uKCJpbnB1dCIpLHRyaWdnZXJPcGVuKCEwLHtpbmhlcml0OiEwfSksYWN0aXZlSW5kZXgxIT09aW5kZXgmJm1lcmdlZE9wZW4mJiFuZWVkQ29uZmlybSYmY29tcGxleFBpY2tlciYmdHJpZ2dlclBhcnRDb25maXJtKG51bGwsITApLHNldEFjdGl2ZUluZGV4KGluZGV4KSxvblNoYXJlZEZvY3VzKGV2ZW50LGluZGV4KX0sb25CbHVyOmZ1bmN0aW9uKGV2ZW50LGluZGV4KXt0cmlnZ2VyT3BlbighMSksbmVlZENvbmZpcm18fCJpbnB1dCIhPT1sYXN0T3BlcmF0aW9uKCl8fGZsdXNoU3VibWl0KGFjdGl2ZUluZGV4MSxudWxsPT09bmV4dEFjdGl2ZUluZGV4KGNhbGVuZGFyVmFsdWUpKSxvblNoYXJlZEJsdXIoZXZlbnQsaW5kZXgpfSxvbktleURvd246ZnVuY3Rpb24oZXZlbnQscHJldmVudERlZmF1bHQpeyJUYWIiPT09ZXZlbnQua2V5JiZ0cmlnZ2VyUGFydENvbmZpcm0obnVsbCwhMCksbnVsbD09b25LZXlEb3dufHxvbktleURvd24oZXZlbnQscHJldmVudERlZmF1bHQpfSxvblN1Ym1pdDp0cmlnZ2VyUGFydENvbmZpcm0sdmFsdWU6aG92ZXJWYWx1ZXMsbWFza0Zvcm1hdDptYXNrRm9ybWF0LG9uQ2hhbmdlOmZ1bmN0aW9uKGRhdGUsaW5kZXgpe3RyaWdnZXJDYWxlbmRhckNoYW5nZShmaWxsQ2FsZW5kYXJWYWx1ZShkYXRlLGluZGV4KSl9LG9uSW5wdXRDaGFuZ2U6ZnVuY3Rpb24oKXtsYXN0T3BlcmF0aW9uKCJpbnB1dCIpfSxmb3JtYXQ6Zm9ybWF0TGlzdCxpbnB1dFJlYWRPbmx5OmlucHV0UmVhZE9ubHksZGlzYWJsZWQ6ZGlzYWJsZWQsb3BlbjptZXJnZWRPcGVuLG9uT3BlbkNoYW5nZTp0cmlnZ2VyT3BlbixvbkNsaWNrOmZ1bmN0aW9uKGV2ZW50KXt2YXIgX2FjdGl2ZUVsZW1lbnQscm9vdE5vZGU9ZXZlbnQudGFyZ2V0LmdldFJvb3ROb2RlKCk7aWYoIXNlbGVjdG9yUmVmLmN1cnJlbnQubmF0aXZlRWxlbWVudC5jb250YWlucyhudWxsIT09KF9hY3RpdmVFbGVtZW50PXJvb3ROb2RlLmFjdGl2ZUVsZW1lbnQpJiZ2b2lkIDAhPT1fYWN0aXZlRWxlbWVudD9fYWN0aXZlRWxlbWVudDpkb2N1bWVudC5hY3RpdmVFbGVtZW50KSl7dmFyIGVuYWJsZWRJbmRleD1kaXNhYmxlZC5maW5kSW5kZXgoZnVuY3Rpb24oZCl7cmV0dXJuIWR9KTtlbmFibGVkSW5kZXg+PTAmJnNlbGVjdG9yUmVmLmN1cnJlbnQuZm9jdXMoe2luZGV4OmVuYWJsZWRJbmRleH0pfXRyaWdnZXJPcGVuKCEwKSxudWxsPT1vbkNsaWNrfHxvbkNsaWNrKGV2ZW50KX0sb25DbGVhcjpmdW5jdGlvbigpe3RyaWdnZXJTdWJtaXRDaGFuZ2UobnVsbCksdHJpZ2dlck9wZW4oITEse2ZvcmNlOiEwfSl9LGludmFsaWQ6c3VibWl0SW52YWxpZGF0ZXMsb25JbnZhbGlkOm9uU2VsZWN0b3JJbnZhbGlkLG9uQWN0aXZlSW5mbzpzZXRBY3RpdmVJbmZvfSkpKSl9KTtmdW5jdGlvbiBleHRlbmRzX2V4dGVuZHMoKXtyZXR1cm4oZXh0ZW5kc19leHRlbmRzPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odGFyZ2V0KXtmb3IodmFyIGk9MTtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXt2YXIgc291cmNlPWFyZ3VtZW50c1tpXTtmb3IodmFyIGtleSBpbiBzb3VyY2UpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSxrZXkpJiYodGFyZ2V0W2tleV09c291cmNlW2tleV0pfXJldHVybiB0YXJnZXR9KS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZXNtX3R5cGVvZl90eXBlb2Yobyl7cmV0dXJuKGVzbV90eXBlb2ZfdHlwZW9mPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKG8pe3JldHVybiB0eXBlb2Ygb306ZnVuY3Rpb24obyl7cmV0dXJuIG8mJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJm8uY29uc3RydWN0b3I9PT1TeW1ib2wmJm8hPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBvfSkobyl9ZnVuY3Rpb24gb2JqZWN0U3ByZWFkMl9vd25LZXlzKGUscil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIG89T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtyJiYobz1vLmZpbHRlcihmdW5jdGlvbihyKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHIpLmVudW1lcmFibGV9KSksdC5wdXNoLmFwcGx5KHQsbyl9cmV0dXJuIHR9ZnVuY3Rpb24gb2JqZWN0U3ByZWFkMl9vYmplY3RTcHJlYWQyKGUpe2Zvcih2YXIgcj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tyXT9hcmd1bWVudHNbcl06e307ciUyP29iamVjdFNwcmVhZDJfb3duS2V5cyhPYmplY3QodCksITApLmZvckVhY2goZnVuY3Rpb24ocil7IWZ1bmN0aW9uKG9iaixrZXksdmFsdWUpe3ZhciBrZXkxO2tleTE9ZnVuY3Rpb24oaW5wdXQsaGludCl7aWYoIm9iamVjdCIhPT1lc21fdHlwZW9mX3R5cGVvZihpbnB1dCl8fG51bGw9PT1pbnB1dClyZXR1cm4gaW5wdXQ7dmFyIHByaW09aW5wdXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1wcmltKXt2YXIgcmVzPXByaW0uY2FsbChpbnB1dCxoaW50fHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT09ZXNtX3R5cGVvZl90eXBlb2YocmVzKSlyZXR1cm4gcmVzO3Rocm93IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1oaW50P1N0cmluZzpOdW1iZXIpKGlucHV0KX0oa2V5LCJzdHJpbmciKSwoa2V5PSJzeW1ib2wiPT09ZXNtX3R5cGVvZl90eXBlb2Yoa2V5MSk/a2V5MTpTdHJpbmcoa2V5MSkpaW4gb2JqP09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosa2V5LHt2YWx1ZTp2YWx1ZSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOm9ialtrZXldPXZhbHVlfShlLHIsdFtyXSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTpvYmplY3RTcHJlYWQyX293bktleXMoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpKX0pfXJldHVybiBlfWZ1bmN0aW9uIGVzbV9hcnJheUxpa2VUb0FycmF5X2FycmF5TGlrZVRvQXJyYXkoYXJyLGxlbil7KG51bGw9PWxlbnx8bGVuPmFyci5sZW5ndGgpJiYobGVuPWFyci5sZW5ndGgpO2Zvcih2YXIgaT0wLGFycjI9QXJyYXkobGVuKTtpPGxlbjtpKyspYXJyMltpXT1hcnJbaV07cmV0dXJuIGFycjJ9ZnVuY3Rpb24gZXNtX3NsaWNlZFRvQXJyYXlfc2xpY2VkVG9BcnJheShhcnIsaSl7cmV0dXJuIGZ1bmN0aW9uKGFycil7aWYoQXJyYXkuaXNBcnJheShhcnIpKXJldHVybiBhcnJ9KGFycil8fGZ1bmN0aW9uKHIsbCl7dmFyIHQ9bnVsbD09cj9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZyW1N5bWJvbC5pdGVyYXRvcl18fHJbIkBAaXRlcmF0b3IiXTtpZihudWxsIT10KXt2YXIgZSxuLGksdSxhPVtdLGY9ITAsbz0hMTt0cnl7aWYoaT0odD10LmNhbGwocikpLm5leHQsMD09PWwpe2lmKE9iamVjdCh0KSE9PXQpcmV0dXJuO2Y9ITF9ZWxzZSBmb3IoOyEoZj0oZT1pLmNhbGwodCkpLmRvbmUpJiYoYS5wdXNoKGUudmFsdWUpLGEubGVuZ3RoIT09bCk7Zj0hMCk7fWNhdGNoKHIxKXtvPSEwLG49cjF9ZmluYWxseXt0cnl7aWYoIWYmJm51bGwhPXQucmV0dXJuJiYodT10LnJldHVybigpLE9iamVjdCh1KSE9PXUpKXJldHVybn1maW5hbGx5e2lmKG8pdGhyb3cgbn19cmV0dXJuIGF9fShhcnIsaSl8fGZ1bmN0aW9uKG8sbWluTGVuKXtpZihvKXtpZigic3RyaW5nIj09dHlwZW9mIG8pcmV0dXJuIGVzbV9hcnJheUxpa2VUb0FycmF5X2FycmF5TGlrZVRvQXJyYXkobyxtaW5MZW4pO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PW4mJm8uY29uc3RydWN0b3ImJihuPW8uY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ufHwiU2V0Ij09PW4pcmV0dXJuIEFycmF5LmZyb20obyk7aWYoIkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gZXNtX2FycmF5TGlrZVRvQXJyYXlfYXJyYXlMaWtlVG9BcnJheShvLG1pbkxlbil9fShhcnIsaSl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHNvdXJjZSxleGNsdWRlZCl7aWYobnVsbD09c291cmNlKXJldHVybnt9O3ZhciBrZXksaSx0YXJnZXQ9ZnVuY3Rpb24oc291cmNlLGV4Y2x1ZGVkKXtpZihudWxsPT1zb3VyY2UpcmV0dXJue307dmFyIGtleSxpLHRhcmdldD17fSxzb3VyY2VLZXlzPU9iamVjdC5rZXlzKHNvdXJjZSk7Zm9yKGk9MDtpPHNvdXJjZUtleXMubGVuZ3RoO2krKylrZXk9c291cmNlS2V5c1tpXSxleGNsdWRlZC5pbmRleE9mKGtleSk+PTB8fCh0YXJnZXRba2V5XT1zb3VyY2Vba2V5XSk7cmV0dXJuIHRhcmdldH0oc291cmNlLGV4Y2x1ZGVkKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgc291cmNlU3ltYm9sS2V5cz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHNvdXJjZSk7Zm9yKGk9MDtpPHNvdXJjZVN5bWJvbEtleXMubGVuZ3RoO2krKylrZXk9c291cmNlU3ltYm9sS2V5c1tpXSwhKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzb3VyY2Usa2V5KSYmKHRhcmdldFtrZXldPXNvdXJjZVtrZXldKX1yZXR1cm4gdGFyZ2V0fXZhciB1c2VMYXlvdXRFZmZlY3RfdXNlSW50ZXJuYWxMYXlvdXRFZmZlY3Q9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5kb2N1bWVudCYmd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQ/cmVhY3QudXNlTGF5b3V0RWZmZWN0OnJlYWN0LnVzZUVmZmVjdCxlc19ob29rc191c2VMYXlvdXRFZmZlY3Q9ZnVuY3Rpb24oY2FsbGJhY2ssZGVwcyl7dmFyIGZpcnN0TW91bnRSZWY9cmVhY3QudXNlUmVmKCEwKTt1c2VMYXlvdXRFZmZlY3RfdXNlSW50ZXJuYWxMYXlvdXRFZmZlY3QoZnVuY3Rpb24oKXtyZXR1cm4gY2FsbGJhY2soZmlyc3RNb3VudFJlZi5jdXJyZW50KX0sZGVwcyksdXNlTGF5b3V0RWZmZWN0X3VzZUludGVybmFsTGF5b3V0RWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIGZpcnN0TW91bnRSZWYuY3VycmVudD0hMSxmdW5jdGlvbigpe2ZpcnN0TW91bnRSZWYuY3VycmVudD0hMH19LFtdKX0sSXRlbV9leGNsdWRlZD1bInByZWZpeENscyIsImludmFsaWRhdGUiLCJpdGVtIiwicmVuZGVySXRlbSIsInJlc3BvbnNpdmUiLCJyZXNwb25zaXZlRGlzYWJsZWQiLCJyZWdpc3RlclNpemUiLCJpdGVtS2V5IiwiY2xhc3NOYW1lIiwic3R5bGUiLCJjaGlsZHJlbiIsImRpc3BsYXkiLCJvcmRlciIsImNvbXBvbmVudCJdLFVOREVGSU5FRD12b2lkIDAsSXRlbT1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7dmFyIG92ZXJmbG93U3R5bGUscHJlZml4Q2xzPXByb3BzLnByZWZpeENscyxpbnZhbGlkYXRlPXByb3BzLmludmFsaWRhdGUsaXRlbT1wcm9wcy5pdGVtLHJlbmRlckl0ZW09cHJvcHMucmVuZGVySXRlbSxyZXNwb25zaXZlPXByb3BzLnJlc3BvbnNpdmUscmVzcG9uc2l2ZURpc2FibGVkPXByb3BzLnJlc3BvbnNpdmVEaXNhYmxlZCxyZWdpc3RlclNpemU9cHJvcHMucmVnaXN0ZXJTaXplLGl0ZW1LZXk9cHJvcHMuaXRlbUtleSxjbGFzc05hbWU9cHJvcHMuY2xhc3NOYW1lLHN0eWxlPXByb3BzLnN0eWxlLGNoaWxkcmVuPXByb3BzLmNoaWxkcmVuLGRpc3BsYXk9cHJvcHMuZGlzcGxheSxvcmRlcj1wcm9wcy5vcmRlcixfcHJvcHMkY29tcG9uZW50PXByb3BzLmNvbXBvbmVudCxyZXN0UHJvcHM9b2JqZWN0V2l0aG91dFByb3BlcnRpZXNfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMocHJvcHMsSXRlbV9leGNsdWRlZCksbWVyZ2VkSGlkZGVuPXJlc3BvbnNpdmUmJiFkaXNwbGF5O3JlYWN0LnVzZUVmZmVjdChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3JlZ2lzdGVyU2l6ZShpdGVtS2V5LG51bGwpfX0sW10pO3ZhciBjaGlsZE5vZGU9cmVuZGVySXRlbSYmaXRlbSE9PVVOREVGSU5FRD9yZW5kZXJJdGVtKGl0ZW0se2luZGV4Om9yZGVyfSk6Y2hpbGRyZW47aW52YWxpZGF0ZXx8KG92ZXJmbG93U3R5bGU9e29wYWNpdHk6bWVyZ2VkSGlkZGVuPzA6MSxoZWlnaHQ6bWVyZ2VkSGlkZGVuPzA6VU5ERUZJTkVELG92ZXJmbG93WTptZXJnZWRIaWRkZW4/ImhpZGRlbiI6VU5ERUZJTkVELG9yZGVyOnJlc3BvbnNpdmU/b3JkZXI6VU5ERUZJTkVELHBvaW50ZXJFdmVudHM6bWVyZ2VkSGlkZGVuPyJub25lIjpVTkRFRklORUQscG9zaXRpb246bWVyZ2VkSGlkZGVuPyJhYnNvbHV0ZSI6VU5ERUZJTkVEfSk7dmFyIG92ZXJmbG93UHJvcHM9e307bWVyZ2VkSGlkZGVuJiYob3ZlcmZsb3dQcm9wc1siYXJpYS1oaWRkZW4iXT0hMCk7dmFyIGl0ZW1Ob2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQodm9pZCAwPT09X3Byb3BzJGNvbXBvbmVudD8iZGl2IjpfcHJvcHMkY29tcG9uZW50LGV4dGVuZHNfZXh0ZW5kcyh7Y2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKSghaW52YWxpZGF0ZSYmcHJlZml4Q2xzLGNsYXNzTmFtZSksc3R5bGU6b2JqZWN0U3ByZWFkMl9vYmplY3RTcHJlYWQyKG9iamVjdFNwcmVhZDJfb2JqZWN0U3ByZWFkMih7fSxvdmVyZmxvd1N0eWxlKSxzdHlsZSl9LG92ZXJmbG93UHJvcHMscmVzdFByb3BzLHtyZWY6cmVmfSksY2hpbGROb2RlKTtyZXR1cm4gcmVzcG9uc2l2ZSYmKGl0ZW1Ob2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQocmNfcmVzaXplX29ic2VydmVyX2VzLlose29uUmVzaXplOmZ1bmN0aW9uKF9yZWYpe3JlZ2lzdGVyU2l6ZShpdGVtS2V5LF9yZWYub2Zmc2V0V2lkdGgpfSxkaXNhYmxlZDpyZXNwb25zaXZlRGlzYWJsZWR9LGl0ZW1Ob2RlKSksaXRlbU5vZGV9KTtJdGVtLmRpc3BsYXlOYW1lPSJJdGVtIjt2YXIgcmVhY3RfZG9tPV9fd2VicGFja19yZXF1aXJlX18oNzM5MzUpLHJhZl9yYWY9ZnVuY3Rpb24oY2FsbGJhY2spe3JldHVybitzZXRUaW1lb3V0KGNhbGxiYWNrLDE2KX0scmFmX2NhZj1mdW5jdGlvbihudW0pe3JldHVybiBjbGVhclRpbWVvdXQobnVtKX07InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJiJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiaW4gd2luZG93JiYocmFmX3JhZj1mdW5jdGlvbihjYWxsYmFjayl7cmV0dXJuIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2spfSxyYWZfY2FmPWZ1bmN0aW9uKGhhbmRsZSl7cmV0dXJuIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShoYW5kbGUpfSk7dmFyIHJhZl9yYWZVVUlEPTAscmFmX3JhZklkcz1uZXcgTWFwLHJhZl93cmFwcGVyUmFmPWZ1bmN0aW9uKGNhbGxiYWNrKXt2YXIgdGltZXM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjEsaWQ9cmFmX3JhZlVVSUQrPTE7cmV0dXJuIWZ1bmN0aW9uIGNhbGxSZWYobGVmdFRpbWVzKXtpZigwPT09bGVmdFRpbWVzKXJhZl9yYWZJZHMuZGVsZXRlKGlkKSxjYWxsYmFjaygpO2Vsc2V7dmFyIHJlYWxJZD1yYWZfcmFmKGZ1bmN0aW9uKCl7Y2FsbFJlZihsZWZ0VGltZXMtMSl9KTtyYWZfcmFmSWRzLnNldChpZCxyZWFsSWQpfX0odGltZXMpLGlkfTtmdW5jdGlvbiB1c2VFZmZlY3RTdGF0ZShub3RpZnlFZmZlY3RVcGRhdGUsZGVmYXVsdFZhbHVlKXt2YXIgZm5SZWYsX1JlYWN0JHVzZVN0YXRlMj1lc21fc2xpY2VkVG9BcnJheV9zbGljZWRUb0FycmF5KHJlYWN0LnVzZVN0YXRlKGRlZmF1bHRWYWx1ZSksMiksc3RhdGVWYWx1ZT1fUmVhY3QkdXNlU3RhdGUyWzBdLHNldFN0YXRlVmFsdWU9X1JlYWN0JHVzZVN0YXRlMlsxXTtyZXR1cm5bc3RhdGVWYWx1ZSwoKGZuUmVmPXJlYWN0LnVzZVJlZigpKS5jdXJyZW50PWZ1bmN0aW9uKG5leHRWYWx1ZSl7bm90aWZ5RWZmZWN0VXBkYXRlKGZ1bmN0aW9uKCl7c2V0U3RhdGVWYWx1ZShuZXh0VmFsdWUpfSl9LHJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uKCl7Zm9yKHZhciBfZm5SZWYkY3VycmVudCxfbGVuPWFyZ3VtZW50cy5sZW5ndGgsYXJncz1BcnJheShfbGVuKSxfa2V5PTA7X2tleTxfbGVuO19rZXkrKylhcmdzW19rZXldPWFyZ3VtZW50c1tfa2V5XTtyZXR1cm4gbnVsbD09PShfZm5SZWYkY3VycmVudD1mblJlZi5jdXJyZW50KXx8dm9pZCAwPT09X2ZuUmVmJGN1cnJlbnQ/dm9pZCAwOl9mblJlZiRjdXJyZW50LmNhbGwuYXBwbHkoX2ZuUmVmJGN1cnJlbnQsW2ZuUmVmXS5jb25jYXQoYXJncykpfSxbXSkpXX1yYWZfd3JhcHBlclJhZi5jYW5jZWw9ZnVuY3Rpb24oaWQpe3ZhciByZWFsSWQ9cmFmX3JhZklkcy5nZXQoaWQpO3JldHVybiByYWZfcmFmSWRzLmRlbGV0ZShpZCkscmFmX2NhZihyZWFsSWQpfTt2YXIgT3ZlcmZsb3dDb250ZXh0PXJlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCksUmF3SXRlbV9leGNsdWRlZD1bImNvbXBvbmVudCJdLFJhd0l0ZW1fZXhjbHVkZWQyPVsiY2xhc3NOYW1lIl0sX2V4Y2x1ZGVkMz1bImNsYXNzTmFtZSJdLFJhd0l0ZW09cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3ZhciBjb250ZXh0PXJlYWN0LnVzZUNvbnRleHQoT3ZlcmZsb3dDb250ZXh0KTtpZighY29udGV4dCl7dmFyIF9wcm9wcyRjb21wb25lbnQ9cHJvcHMuY29tcG9uZW50LF9yZXN0UHJvcHM9b2JqZWN0V2l0aG91dFByb3BlcnRpZXNfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMocHJvcHMsUmF3SXRlbV9leGNsdWRlZCk7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQodm9pZCAwPT09X3Byb3BzJGNvbXBvbmVudD8iZGl2IjpfcHJvcHMkY29tcG9uZW50LGV4dGVuZHNfZXh0ZW5kcyh7fSxfcmVzdFByb3BzLHtyZWY6cmVmfSkpfXZhciBjb250ZXh0Q2xhc3NOYW1lPWNvbnRleHQuY2xhc3NOYW1lLHJlc3RDb250ZXh0PW9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKGNvbnRleHQsUmF3SXRlbV9leGNsdWRlZDIpLGNsYXNzTmFtZT1wcm9wcy5jbGFzc05hbWUscmVzdFByb3BzPW9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHByb3BzLF9leGNsdWRlZDMpO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KE92ZXJmbG93Q29udGV4dC5Qcm92aWRlcix7dmFsdWU6bnVsbH0scmVhY3QuY3JlYXRlRWxlbWVudChJdGVtLGV4dGVuZHNfZXh0ZW5kcyh7cmVmOnJlZixjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKGNvbnRleHRDbGFzc05hbWUsY2xhc3NOYW1lKX0scmVzdENvbnRleHQscmVzdFByb3BzKSkpfSk7UmF3SXRlbS5kaXNwbGF5TmFtZT0iUmF3SXRlbSI7dmFyIE92ZXJmbG93X2V4Y2x1ZGVkPVsicHJlZml4Q2xzIiwiZGF0YSIsInJlbmRlckl0ZW0iLCJyZW5kZXJSYXdJdGVtIiwiaXRlbUtleSIsIml0ZW1XaWR0aCIsInNzciIsInN0eWxlIiwiY2xhc3NOYW1lIiwibWF4Q291bnQiLCJyZW5kZXJSZXN0IiwicmVuZGVyUmF3UmVzdCIsInN1ZmZpeCIsImNvbXBvbmVudCIsIml0ZW1Db21wb25lbnQiLCJvblZpc2libGVDaGFuZ2UiXSxSRVNQT05TSVZFPSJyZXNwb25zaXZlIixJTlZBTElEQVRFPSJpbnZhbGlkYXRlIjtmdW5jdGlvbiBkZWZhdWx0UmVuZGVyUmVzdChvbWl0dGVkSXRlbXMpe3JldHVybiIrICIuY29uY2F0KG9taXR0ZWRJdGVtcy5sZW5ndGgsIiAuLi4iKX12YXIgRm9yd2FyZE92ZXJmbG93PXJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24ocHJvcHMscmVmKXt2YXIgdXBkYXRlRnVuY1JlZixfcHJvcHMkcHJlZml4Q2xzPXByb3BzLnByZWZpeENscyxwcmVmaXhDbHM9dm9pZCAwPT09X3Byb3BzJHByZWZpeENscz8icmMtb3ZlcmZsb3ciOl9wcm9wcyRwcmVmaXhDbHMsX3Byb3BzJGRhdGE9cHJvcHMuZGF0YSxkYXRhPXZvaWQgMD09PV9wcm9wcyRkYXRhP1tdOl9wcm9wcyRkYXRhLHJlbmRlckl0ZW09cHJvcHMucmVuZGVySXRlbSxyZW5kZXJSYXdJdGVtPXByb3BzLnJlbmRlclJhd0l0ZW0saXRlbUtleT1wcm9wcy5pdGVtS2V5LF9wcm9wcyRpdGVtV2lkdGg9cHJvcHMuaXRlbVdpZHRoLGl0ZW1XaWR0aD12b2lkIDA9PT1fcHJvcHMkaXRlbVdpZHRoPzEwOl9wcm9wcyRpdGVtV2lkdGgsc3NyPXByb3BzLnNzcixzdHlsZT1wcm9wcy5zdHlsZSxjbGFzc05hbWU9cHJvcHMuY2xhc3NOYW1lLG1heENvdW50PXByb3BzLm1heENvdW50LHJlbmRlclJlc3Q9cHJvcHMucmVuZGVyUmVzdCxyZW5kZXJSYXdSZXN0PXByb3BzLnJlbmRlclJhd1Jlc3Qsc3VmZml4PXByb3BzLnN1ZmZpeCxfcHJvcHMkY29tcG9uZW50PXByb3BzLmNvbXBvbmVudCxpdGVtQ29tcG9uZW50PXByb3BzLml0ZW1Db21wb25lbnQsb25WaXNpYmxlQ2hhbmdlPXByb3BzLm9uVmlzaWJsZUNoYW5nZSxyZXN0UHJvcHM9b2JqZWN0V2l0aG91dFByb3BlcnRpZXNfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMocHJvcHMsT3ZlcmZsb3dfZXhjbHVkZWQpLGZ1bGx5U1NSPSJmdWxsIj09PXNzcixub3RpZnlFZmZlY3RVcGRhdGU9KHVwZGF0ZUZ1bmNSZWY9cmVhY3QudXNlUmVmKG51bGwpLGZ1bmN0aW9uKGNhbGxiYWNrKXt1cGRhdGVGdW5jUmVmLmN1cnJlbnR8fCh1cGRhdGVGdW5jUmVmLmN1cnJlbnQ9W10sZnVuY3Rpb24oY2FsbGJhY2spe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgTWVzc2FnZUNoYW5uZWwpcmFmX3dyYXBwZXJSYWYoY2FsbGJhY2spO2Vsc2V7dmFyIGNoYW5uZWw9bmV3IE1lc3NhZ2VDaGFubmVsO2NoYW5uZWwucG9ydDEub25tZXNzYWdlPWZ1bmN0aW9uKCl7cmV0dXJuIGNhbGxiYWNrKCl9LGNoYW5uZWwucG9ydDIucG9zdE1lc3NhZ2Uodm9pZCAwKX19KGZ1bmN0aW9uKCl7KDAscmVhY3RfZG9tLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzKShmdW5jdGlvbigpe3VwZGF0ZUZ1bmNSZWYuY3VycmVudC5mb3JFYWNoKGZ1bmN0aW9uKGZuKXtmbigpfSksdXBkYXRlRnVuY1JlZi5jdXJyZW50PW51bGx9KX0pKSx1cGRhdGVGdW5jUmVmLmN1cnJlbnQucHVzaChjYWxsYmFjayl9KSxfdXNlRWZmZWN0U3RhdGUyPWVzbV9zbGljZWRUb0FycmF5X3NsaWNlZFRvQXJyYXkodXNlRWZmZWN0U3RhdGUobm90aWZ5RWZmZWN0VXBkYXRlLG51bGwpLDIpLGNvbnRhaW5lcldpZHRoPV91c2VFZmZlY3RTdGF0ZTJbMF0sc2V0Q29udGFpbmVyV2lkdGg9X3VzZUVmZmVjdFN0YXRlMlsxXSxtZXJnZWRDb250YWluZXJXaWR0aD1jb250YWluZXJXaWR0aHx8MCxfdXNlRWZmZWN0U3RhdGU0PWVzbV9zbGljZWRUb0FycmF5X3NsaWNlZFRvQXJyYXkodXNlRWZmZWN0U3RhdGUobm90aWZ5RWZmZWN0VXBkYXRlLG5ldyBNYXApLDIpLGl0ZW1XaWR0aHM9X3VzZUVmZmVjdFN0YXRlNFswXSxzZXRJdGVtV2lkdGhzPV91c2VFZmZlY3RTdGF0ZTRbMV0sX3VzZUVmZmVjdFN0YXRlNj1lc21fc2xpY2VkVG9BcnJheV9zbGljZWRUb0FycmF5KHVzZUVmZmVjdFN0YXRlKG5vdGlmeUVmZmVjdFVwZGF0ZSwwKSwyKSxwcmV2UmVzdFdpZHRoPV91c2VFZmZlY3RTdGF0ZTZbMF0sc2V0UHJldlJlc3RXaWR0aD1fdXNlRWZmZWN0U3RhdGU2WzFdLF91c2VFZmZlY3RTdGF0ZTg9ZXNtX3NsaWNlZFRvQXJyYXlfc2xpY2VkVG9BcnJheSh1c2VFZmZlY3RTdGF0ZShub3RpZnlFZmZlY3RVcGRhdGUsMCksMikscmVzdFdpZHRoPV91c2VFZmZlY3RTdGF0ZThbMF0sc2V0UmVzdFdpZHRoPV91c2VFZmZlY3RTdGF0ZThbMV0sX3VzZUVmZmVjdFN0YXRlMTA9ZXNtX3NsaWNlZFRvQXJyYXlfc2xpY2VkVG9BcnJheSh1c2VFZmZlY3RTdGF0ZShub3RpZnlFZmZlY3RVcGRhdGUsMCksMiksc3VmZml4V2lkdGg9X3VzZUVmZmVjdFN0YXRlMTBbMF0sc2V0U3VmZml4V2lkdGg9X3VzZUVmZmVjdFN0YXRlMTBbMV0sX3VzZVN0YXRlMj1lc21fc2xpY2VkVG9BcnJheV9zbGljZWRUb0FycmF5KCgwLHJlYWN0LnVzZVN0YXRlKShudWxsKSwyKSxzdWZmaXhGaXhlZFN0YXJ0PV91c2VTdGF0ZTJbMF0sc2V0U3VmZml4Rml4ZWRTdGFydD1fdXNlU3RhdGUyWzFdLF91c2VTdGF0ZTQ9ZXNtX3NsaWNlZFRvQXJyYXlfc2xpY2VkVG9BcnJheSgoMCxyZWFjdC51c2VTdGF0ZSkobnVsbCksMiksZGlzcGxheUNvdW50PV91c2VTdGF0ZTRbMF0sc2V0RGlzcGxheUNvdW50PV91c2VTdGF0ZTRbMV0sbWVyZ2VkRGlzcGxheUNvdW50PXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09PWRpc3BsYXlDb3VudCYmZnVsbHlTU1I/TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI6ZGlzcGxheUNvdW50fHwwfSxbZGlzcGxheUNvdW50LGNvbnRhaW5lcldpZHRoXSksX3VzZVN0YXRlNj1lc21fc2xpY2VkVG9BcnJheV9zbGljZWRUb0FycmF5KCgwLHJlYWN0LnVzZVN0YXRlKSghMSksMikscmVzdFJlYWR5PV91c2VTdGF0ZTZbMF0sc2V0UmVzdFJlYWR5PV91c2VTdGF0ZTZbMV0saXRlbVByZWZpeENscz0iIi5jb25jYXQocHJlZml4Q2xzLCItaXRlbSIpLG1lcmdlZFJlc3RXaWR0aD1NYXRoLm1heChwcmV2UmVzdFdpZHRoLHJlc3RXaWR0aCksaXNSZXNwb25zaXZlPW1heENvdW50PT09UkVTUE9OU0lWRSxzaG91bGRSZXNwb25zaXZlPWRhdGEubGVuZ3RoJiZpc1Jlc3BvbnNpdmUsaW52YWxpZGF0ZT1tYXhDb3VudD09PUlOVkFMSURBVEUsc2hvd1Jlc3Q9c2hvdWxkUmVzcG9uc2l2ZXx8Im51bWJlciI9PXR5cGVvZiBtYXhDb3VudCYmZGF0YS5sZW5ndGg+bWF4Q291bnQsbWVyZ2VkRGF0YT0oMCxyZWFjdC51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBpdGVtcz1kYXRhO3JldHVybiBzaG91bGRSZXNwb25zaXZlP2l0ZW1zPW51bGw9PT1jb250YWluZXJXaWR0aCYmZnVsbHlTU1I/ZGF0YTpkYXRhLnNsaWNlKDAsTWF0aC5taW4oZGF0YS5sZW5ndGgsbWVyZ2VkQ29udGFpbmVyV2lkdGgvaXRlbVdpZHRoKSk6Im51bWJlciI9PXR5cGVvZiBtYXhDb3VudCYmKGl0ZW1zPWRhdGEuc2xpY2UoMCxtYXhDb3VudCkpLGl0ZW1zfSxbZGF0YSxpdGVtV2lkdGgsY29udGFpbmVyV2lkdGgsbWF4Q291bnQsc2hvdWxkUmVzcG9uc2l2ZV0pLG9taXR0ZWRJdGVtcz0oMCxyZWFjdC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiBzaG91bGRSZXNwb25zaXZlP2RhdGEuc2xpY2UobWVyZ2VkRGlzcGxheUNvdW50KzEpOmRhdGEuc2xpY2UobWVyZ2VkRGF0YS5sZW5ndGgpfSxbZGF0YSxtZXJnZWREYXRhLHNob3VsZFJlc3BvbnNpdmUsbWVyZ2VkRGlzcGxheUNvdW50XSksZ2V0S2V5PSgwLHJlYWN0LnVzZUNhbGxiYWNrKShmdW5jdGlvbihpdGVtLGluZGV4KXt2YXIgX3JlZjtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgaXRlbUtleT9pdGVtS2V5KGl0ZW0pOm51bGwhPT0oX3JlZj1pdGVtS2V5JiYobnVsbD09aXRlbT92b2lkIDA6aXRlbVtpdGVtS2V5XSkpJiZ2b2lkIDAhPT1fcmVmP19yZWY6aW5kZXh9LFtpdGVtS2V5XSksbWVyZ2VkUmVuZGVySXRlbT0oMCxyZWFjdC51c2VDYWxsYmFjaykocmVuZGVySXRlbXx8ZnVuY3Rpb24oaXRlbSl7cmV0dXJuIGl0ZW19LFtyZW5kZXJJdGVtXSk7ZnVuY3Rpb24gdXBkYXRlRGlzcGxheUNvdW50KGNvdW50LHN1ZmZpeEZpeGVkU3RhcnRWYWwsbm90UmVhZHkpeyhkaXNwbGF5Q291bnQhPT1jb3VudHx8dm9pZCAwIT09c3VmZml4Rml4ZWRTdGFydFZhbCYmc3VmZml4Rml4ZWRTdGFydFZhbCE9PXN1ZmZpeEZpeGVkU3RhcnQpJiYoc2V0RGlzcGxheUNvdW50KGNvdW50KSxub3RSZWFkeXx8KHNldFJlc3RSZWFkeShjb3VudDxkYXRhLmxlbmd0aC0xKSxudWxsPT1vblZpc2libGVDaGFuZ2V8fG9uVmlzaWJsZUNoYW5nZShjb3VudCkpLHZvaWQgMCE9PXN1ZmZpeEZpeGVkU3RhcnRWYWwmJnNldFN1ZmZpeEZpeGVkU3RhcnQoc3VmZml4Rml4ZWRTdGFydFZhbCkpfWZ1bmN0aW9uIHJlZ2lzdGVyU2l6ZShrZXksd2lkdGgpe3NldEl0ZW1XaWR0aHMoZnVuY3Rpb24ob3JpZ2luKXt2YXIgY2xvbmU9bmV3IE1hcChvcmlnaW4pO3JldHVybiBudWxsPT09d2lkdGg/Y2xvbmUuZGVsZXRlKGtleSk6Y2xvbmUuc2V0KGtleSx3aWR0aCksY2xvbmV9KX1mdW5jdGlvbiBnZXRJdGVtV2lkdGgoaW5kZXgpe3JldHVybiBpdGVtV2lkdGhzLmdldChnZXRLZXkobWVyZ2VkRGF0YVtpbmRleF0saW5kZXgpKX1lc19ob29rc191c2VMYXlvdXRFZmZlY3QoZnVuY3Rpb24oKXtpZihtZXJnZWRDb250YWluZXJXaWR0aCYmIm51bWJlciI9PXR5cGVvZiBtZXJnZWRSZXN0V2lkdGgmJm1lcmdlZERhdGEpe3ZhciB0b3RhbFdpZHRoPXN1ZmZpeFdpZHRoLGxlbj1tZXJnZWREYXRhLmxlbmd0aCxsYXN0SW5kZXg9bGVuLTE7aWYoIWxlbil7dXBkYXRlRGlzcGxheUNvdW50KDAsbnVsbCk7cmV0dXJufWZvcih2YXIgaT0wO2k8bGVuO2krPTEpe3ZhciBjdXJyZW50SXRlbVdpZHRoPWdldEl0ZW1XaWR0aChpKTtpZihmdWxseVNTUiYmKGN1cnJlbnRJdGVtV2lkdGg9Y3VycmVudEl0ZW1XaWR0aHx8MCksdm9pZCAwPT09Y3VycmVudEl0ZW1XaWR0aCl7dXBkYXRlRGlzcGxheUNvdW50KGktMSx2b2lkIDAsITApO2JyZWFrfWlmKHRvdGFsV2lkdGgrPWN1cnJlbnRJdGVtV2lkdGgsMD09PWxhc3RJbmRleCYmdG90YWxXaWR0aDw9bWVyZ2VkQ29udGFpbmVyV2lkdGh8fGk9PT1sYXN0SW5kZXgtMSYmdG90YWxXaWR0aCtnZXRJdGVtV2lkdGgobGFzdEluZGV4KTw9bWVyZ2VkQ29udGFpbmVyV2lkdGgpe3VwZGF0ZURpc3BsYXlDb3VudChsYXN0SW5kZXgsbnVsbCk7YnJlYWt9aWYodG90YWxXaWR0aCttZXJnZWRSZXN0V2lkdGg+bWVyZ2VkQ29udGFpbmVyV2lkdGgpe3VwZGF0ZURpc3BsYXlDb3VudChpLTEsdG90YWxXaWR0aC1jdXJyZW50SXRlbVdpZHRoLXN1ZmZpeFdpZHRoK3Jlc3RXaWR0aCk7YnJlYWt9fXN1ZmZpeCYmZ2V0SXRlbVdpZHRoKDApK3N1ZmZpeFdpZHRoPm1lcmdlZENvbnRhaW5lcldpZHRoJiZzZXRTdWZmaXhGaXhlZFN0YXJ0KG51bGwpfX0sW21lcmdlZENvbnRhaW5lcldpZHRoLGl0ZW1XaWR0aHMscmVzdFdpZHRoLHN1ZmZpeFdpZHRoLGdldEtleSxtZXJnZWREYXRhXSk7dmFyIGRpc3BsYXlSZXN0PXJlc3RSZWFkeSYmISFvbWl0dGVkSXRlbXMubGVuZ3RoLHN1ZmZpeFN0eWxlPXt9O251bGwhPT1zdWZmaXhGaXhlZFN0YXJ0JiZzaG91bGRSZXNwb25zaXZlJiYoc3VmZml4U3R5bGU9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDpzdWZmaXhGaXhlZFN0YXJ0LHRvcDowfSk7dmFyIGl0ZW1TaGFyZWRQcm9wcz17cHJlZml4Q2xzOml0ZW1QcmVmaXhDbHMscmVzcG9uc2l2ZTpzaG91bGRSZXNwb25zaXZlLGNvbXBvbmVudDppdGVtQ29tcG9uZW50LGludmFsaWRhdGU6aW52YWxpZGF0ZX0saW50ZXJuYWxSZW5kZXJJdGVtTm9kZT1yZW5kZXJSYXdJdGVtP2Z1bmN0aW9uKGl0ZW0saW5kZXgpe3ZhciBrZXk9Z2V0S2V5KGl0ZW0saW5kZXgpO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KE92ZXJmbG93Q29udGV4dC5Qcm92aWRlcix7a2V5OmtleSx2YWx1ZTpvYmplY3RTcHJlYWQyX29iamVjdFNwcmVhZDIob2JqZWN0U3ByZWFkMl9vYmplY3RTcHJlYWQyKHt9LGl0ZW1TaGFyZWRQcm9wcykse30se29yZGVyOmluZGV4LGl0ZW06aXRlbSxpdGVtS2V5OmtleSxyZWdpc3RlclNpemU6cmVnaXN0ZXJTaXplLGRpc3BsYXk6aW5kZXg8PW1lcmdlZERpc3BsYXlDb3VudH0pfSxyZW5kZXJSYXdJdGVtKGl0ZW0saW5kZXgpKX06ZnVuY3Rpb24oaXRlbSxpbmRleCl7dmFyIGtleT1nZXRLZXkoaXRlbSxpbmRleCk7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoSXRlbSxleHRlbmRzX2V4dGVuZHMoe30saXRlbVNoYXJlZFByb3BzLHtvcmRlcjppbmRleCxrZXk6a2V5LGl0ZW06aXRlbSxyZW5kZXJJdGVtOm1lcmdlZFJlbmRlckl0ZW0saXRlbUtleTprZXkscmVnaXN0ZXJTaXplOnJlZ2lzdGVyU2l6ZSxkaXNwbGF5OmluZGV4PD1tZXJnZWREaXNwbGF5Q291bnR9KSl9LHJlc3RDb250ZXh0UHJvcHM9e29yZGVyOmRpc3BsYXlSZXN0P21lcmdlZERpc3BsYXlDb3VudDpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixjbGFzc05hbWU6IiIuY29uY2F0KGl0ZW1QcmVmaXhDbHMsIi1yZXN0IikscmVnaXN0ZXJTaXplOmZ1bmN0aW9uKF8sd2lkdGgpe3NldFJlc3RXaWR0aCh3aWR0aCksc2V0UHJldlJlc3RXaWR0aChyZXN0V2lkdGgpfSxkaXNwbGF5OmRpc3BsYXlSZXN0fSxtZXJnZWRSZW5kZXJSZXN0PXJlbmRlclJlc3R8fGRlZmF1bHRSZW5kZXJSZXN0LHJlc3ROb2RlPXJlbmRlclJhd1Jlc3Q/cmVhY3QuY3JlYXRlRWxlbWVudChPdmVyZmxvd0NvbnRleHQuUHJvdmlkZXIse3ZhbHVlOm9iamVjdFNwcmVhZDJfb2JqZWN0U3ByZWFkMihvYmplY3RTcHJlYWQyX29iamVjdFNwcmVhZDIoe30saXRlbVNoYXJlZFByb3BzKSxyZXN0Q29udGV4dFByb3BzKX0scmVuZGVyUmF3UmVzdChvbWl0dGVkSXRlbXMpKTpyZWFjdC5jcmVhdGVFbGVtZW50KEl0ZW0sZXh0ZW5kc19leHRlbmRzKHt9LGl0ZW1TaGFyZWRQcm9wcyxyZXN0Q29udGV4dFByb3BzKSwiZnVuY3Rpb24iPT10eXBlb2YgbWVyZ2VkUmVuZGVyUmVzdD9tZXJnZWRSZW5kZXJSZXN0KG9taXR0ZWRJdGVtcyk6bWVyZ2VkUmVuZGVyUmVzdCksb3ZlcmZsb3dOb2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQodm9pZCAwPT09X3Byb3BzJGNvbXBvbmVudD8iZGl2IjpfcHJvcHMkY29tcG9uZW50LGV4dGVuZHNfZXh0ZW5kcyh7Y2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKSghaW52YWxpZGF0ZSYmcHJlZml4Q2xzLGNsYXNzTmFtZSksc3R5bGU6c3R5bGUscmVmOnJlZn0scmVzdFByb3BzKSxtZXJnZWREYXRhLm1hcChpbnRlcm5hbFJlbmRlckl0ZW1Ob2RlKSxzaG93UmVzdD9yZXN0Tm9kZTpudWxsLHN1ZmZpeCYmcmVhY3QuY3JlYXRlRWxlbWVudChJdGVtLGV4dGVuZHNfZXh0ZW5kcyh7fSxpdGVtU2hhcmVkUHJvcHMse3Jlc3BvbnNpdmU6aXNSZXNwb25zaXZlLHJlc3BvbnNpdmVEaXNhYmxlZDohc2hvdWxkUmVzcG9uc2l2ZSxvcmRlcjptZXJnZWREaXNwbGF5Q291bnQsY2xhc3NOYW1lOiIiLmNvbmNhdChpdGVtUHJlZml4Q2xzLCItc3VmZml4IikscmVnaXN0ZXJTaXplOmZ1bmN0aW9uKF8sd2lkdGgpe3NldFN1ZmZpeFdpZHRoKHdpZHRoKX0sZGlzcGxheTohMCxzdHlsZTpzdWZmaXhTdHlsZX0pLHN1ZmZpeCkpO3JldHVybiBpc1Jlc3BvbnNpdmU/cmVhY3QuY3JlYXRlRWxlbWVudChyY19yZXNpemVfb2JzZXJ2ZXJfZXMuWix7b25SZXNpemU6ZnVuY3Rpb24oXyxlbGVtZW50KXtzZXRDb250YWluZXJXaWR0aChlbGVtZW50LmNsaWVudFdpZHRoKX0sZGlzYWJsZWQ6IXNob3VsZFJlc3BvbnNpdmV9LG92ZXJmbG93Tm9kZSk6b3ZlcmZsb3dOb2RlfSk7ZnVuY3Rpb24gTXVsdGlwbGVEYXRlcyhwcm9wcyl7dmFyIHByZWZpeENscz1wcm9wcy5wcmVmaXhDbHMsdmFsdWU9cHJvcHMudmFsdWUsb25SZW1vdmU9cHJvcHMub25SZW1vdmUsX3Byb3BzJHJlbW92ZUljb249cHJvcHMucmVtb3ZlSWNvbixyZW1vdmVJY29uPXZvaWQgMD09PV9wcm9wcyRyZW1vdmVJY29uPyJceGQ3IjpfcHJvcHMkcmVtb3ZlSWNvbixmb3JtYXREYXRlPXByb3BzLmZvcm1hdERhdGUsZGlzYWJsZWQ9cHJvcHMuZGlzYWJsZWQsbWF4VGFnQ291bnQ9cHJvcHMubWF4VGFnQ291bnQscGxhY2Vob2xkZXI9cHJvcHMucGxhY2Vob2xkZXIsc2VsZWN0aW9uQ2xzPSIiLmNvbmNhdChwcmVmaXhDbHMsIi1zZWxlY3Rpb24iKTtmdW5jdGlvbiByZW5kZXJTZWxlY3Rvcihjb250ZW50LG9uQ2xvc2Upe3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKSgiIi5jb25jYXQoc2VsZWN0aW9uQ2xzLCItaXRlbSIpKSx0aXRsZToic3RyaW5nIj09dHlwZW9mIGNvbnRlbnQ/Y29udGVudDpudWxsfSxyZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChzZWxlY3Rpb25DbHMsIi1pdGVtLWNvbnRlbnQiKX0sY29udGVudCksIWRpc2FibGVkJiZvbkNsb3NlJiZyZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7b25Nb3VzZURvd246ZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpfSxvbkNsaWNrOm9uQ2xvc2UsY2xhc3NOYW1lOiIiLmNvbmNhdChzZWxlY3Rpb25DbHMsIi1pdGVtLXJlbW92ZSIpfSxyZW1vdmVJY29uKSl9cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItc2VsZWN0b3IiKX0scmVhY3QuY3JlYXRlRWxlbWVudChGb3J3YXJkT3ZlcmZsb3cse3ByZWZpeENsczoiIi5jb25jYXQoc2VsZWN0aW9uQ2xzLCItb3ZlcmZsb3ciKSxkYXRhOnZhbHVlLHJlbmRlckl0ZW06ZnVuY3Rpb24oZGF0ZSl7cmV0dXJuIHJlbmRlclNlbGVjdG9yKGZvcm1hdERhdGUoZGF0ZSksZnVuY3Rpb24oZXZlbnQpe2V2ZW50JiZldmVudC5zdG9wUHJvcGFnYXRpb24oKSxvblJlbW92ZShkYXRlKX0pfSxyZW5kZXJSZXN0OmZ1bmN0aW9uKG9taXR0ZWRWYWx1ZXMpe3JldHVybiByZW5kZXJTZWxlY3RvcigiKyAiLmNvbmNhdChvbWl0dGVkVmFsdWVzLmxlbmd0aCwiIC4uLiIpKX0saXRlbUtleTpmdW5jdGlvbihkYXRlKXtyZXR1cm4gZm9ybWF0RGF0ZShkYXRlKX0sbWF4Q291bnQ6bWF4VGFnQ291bnR9KSwhdmFsdWUubGVuZ3RoJiZyZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi1zZWxlY3Rpb24tcGxhY2Vob2xkZXIiKX0scGxhY2Vob2xkZXIpKX1Gb3J3YXJkT3ZlcmZsb3cuZGlzcGxheU5hbWU9Ik92ZXJmbG93IixGb3J3YXJkT3ZlcmZsb3cuSXRlbT1SYXdJdGVtLEZvcndhcmRPdmVyZmxvdy5SRVNQT05TSVZFPVJFU1BPTlNJVkUsRm9yd2FyZE92ZXJmbG93LklOVkFMSURBVEU9SU5WQUxJREFURTt2YXIgU2luZ2xlU2VsZWN0b3JfZXhjbHVkZWQ9WyJpZCIsIm9wZW4iLCJwcmVmaXgiLCJjbGVhckljb24iLCJzdWZmaXhJY29uIiwiYWN0aXZlSGVscCIsImFsbEhlbHAiLCJmb2N1c2VkIiwib25Gb2N1cyIsIm9uQmx1ciIsIm9uS2V5RG93biIsImxvY2FsZSIsImdlbmVyYXRlQ29uZmlnIiwicGxhY2Vob2xkZXIiLCJjbGFzc05hbWUiLCJzdHlsZSIsIm9uQ2xpY2siLCJvbkNsZWFyIiwiaW50ZXJuYWxQaWNrZXIiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwib25TdWJtaXQiLCJvbklucHV0Q2hhbmdlIiwibXVsdGlwbGUiLCJtYXhUYWdDb3VudCIsImZvcm1hdCIsIm1hc2tGb3JtYXQiLCJwcmVzZXJ2ZUludmFsaWRPbkJsdXIiLCJvbkludmFsaWQiLCJkaXNhYmxlZCIsImludmFsaWQiLCJpbnB1dFJlYWRPbmx5IiwiZGlyZWN0aW9uIiwib25PcGVuQ2hhbmdlIiwib25Nb3VzZURvd24iLCJyZXF1aXJlZCIsImFyaWEtcmVxdWlyZWQiLCJhdXRvRm9jdXMiLCJ0YWJJbmRleCIsInJlbW92ZUljb24iXSxSZWZTaW5nbGVTZWxlY3Rvcj1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7cHJvcHMuaWQ7dmFyIG9wZW49cHJvcHMub3BlbixwcmVmaXg9cHJvcHMucHJlZml4LGNsZWFySWNvbj1wcm9wcy5jbGVhckljb24sc3VmZml4SWNvbj1wcm9wcy5zdWZmaXhJY29uLGZvY3VzZWQ9KHByb3BzLmFjdGl2ZUhlbHAscHJvcHMuYWxsSGVscCxwcm9wcy5mb2N1c2VkKSxsb2NhbGU9KHByb3BzLm9uRm9jdXMscHJvcHMub25CbHVyLHByb3BzLm9uS2V5RG93bixwcm9wcy5sb2NhbGUpLGdlbmVyYXRlQ29uZmlnPXByb3BzLmdlbmVyYXRlQ29uZmlnLHBsYWNlaG9sZGVyPXByb3BzLnBsYWNlaG9sZGVyLGNsYXNzTmFtZT1wcm9wcy5jbGFzc05hbWUsc3R5bGU9cHJvcHMuc3R5bGUsb25DbGljaz1wcm9wcy5vbkNsaWNrLG9uQ2xlYXI9cHJvcHMub25DbGVhcixpbnRlcm5hbFBpY2tlcj1wcm9wcy5pbnRlcm5hbFBpY2tlcix2YWx1ZT1wcm9wcy52YWx1ZSxvbkNoYW5nZT1wcm9wcy5vbkNoYW5nZSxvblN1Ym1pdD1wcm9wcy5vblN1Ym1pdCxtdWx0aXBsZT0ocHJvcHMub25JbnB1dENoYW5nZSxwcm9wcy5tdWx0aXBsZSksbWF4VGFnQ291bnQ9cHJvcHMubWF4VGFnQ291bnQsZGlzYWJsZWQ9KHByb3BzLmZvcm1hdCxwcm9wcy5tYXNrRm9ybWF0LHByb3BzLnByZXNlcnZlSW52YWxpZE9uQmx1cixwcm9wcy5vbkludmFsaWQscHJvcHMuZGlzYWJsZWQpLGludmFsaWQ9cHJvcHMuaW52YWxpZCxkaXJlY3Rpb249KHByb3BzLmlucHV0UmVhZE9ubHkscHJvcHMuZGlyZWN0aW9uKSxfb25Nb3VzZURvd249KHByb3BzLm9uT3BlbkNoYW5nZSxwcm9wcy5vbk1vdXNlRG93biksYXV0b0ZvY3VzPShwcm9wcy5yZXF1aXJlZCxwcm9wc1siYXJpYS1yZXF1aXJlZCJdLHByb3BzLmF1dG9Gb2N1cyksdGFiSW5kZXg9cHJvcHMudGFiSW5kZXgscmVtb3ZlSWNvbj1wcm9wcy5yZW1vdmVJY29uLHJlc3RQcm9wcz1fb2JqZWN0V2l0aG91dFByb3BlcnRpZXMocHJvcHMsU2luZ2xlU2VsZWN0b3JfZXhjbHVkZWQpLHByZWZpeENscz1yZWFjdC51c2VDb250ZXh0KFBpY2tlckNvbnRleHQpLnByZWZpeENscyxyb290UmVmPXJlYWN0LnVzZVJlZigpLGlucHV0UmVmPXJlYWN0LnVzZVJlZigpO3JlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLGZ1bmN0aW9uKCl7cmV0dXJue25hdGl2ZUVsZW1lbnQ6cm9vdFJlZi5jdXJyZW50LGZvY3VzOmZ1bmN0aW9uKG9wdGlvbnMpe3ZhciBfaW5wdXRSZWYkY3VycmVudDtudWxsPT09KF9pbnB1dFJlZiRjdXJyZW50PWlucHV0UmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1faW5wdXRSZWYkY3VycmVudHx8X2lucHV0UmVmJGN1cnJlbnQuZm9jdXMob3B0aW9ucyl9LGJsdXI6ZnVuY3Rpb24oKXt2YXIgX2lucHV0UmVmJGN1cnJlbnQyO251bGw9PT0oX2lucHV0UmVmJGN1cnJlbnQyPWlucHV0UmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1faW5wdXRSZWYkY3VycmVudDJ8fF9pbnB1dFJlZiRjdXJyZW50Mi5ibHVyKCl9fX0pO3ZhciByb290UHJvcHM9dXNlUm9vdFByb3BzKHJlc3RQcm9wcyksX3VzZUlucHV0UHJvcHMyPV9zbGljZWRUb0FycmF5KHVzZUlucHV0UHJvcHMoKDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LHByb3BzKSx7fSx7b25DaGFuZ2U6ZnVuY3Rpb24oZGF0ZSl7b25DaGFuZ2UoW2RhdGVdKX19KSxmdW5jdGlvbihfcmVmKXtyZXR1cm57dmFsdWU6X3JlZi52YWx1ZVRleHRzWzBdfHwiIixhY3RpdmU6Zm9jdXNlZH19KSwyKSxnZXRJbnB1dFByb3BzPV91c2VJbnB1dFByb3BzMlswXSxnZXRUZXh0PV91c2VJbnB1dFByb3BzMlsxXSxzaG93Q2xlYXI9ISEoY2xlYXJJY29uJiZ2YWx1ZS5sZW5ndGgmJiFkaXNhYmxlZCksc2VsZWN0b3JOb2RlPW11bHRpcGxlP3JlYWN0LmNyZWF0ZUVsZW1lbnQocmVhY3QuRnJhZ21lbnQsbnVsbCxyZWFjdC5jcmVhdGVFbGVtZW50KE11bHRpcGxlRGF0ZXMse3ByZWZpeENsczpwcmVmaXhDbHMsdmFsdWU6dmFsdWUsb25SZW1vdmU6ZnVuY3Rpb24oZGF0ZSl7b25DaGFuZ2UodmFsdWUuZmlsdGVyKGZ1bmN0aW9uKG9yaURhdGUpe3JldHVybiBvcmlEYXRlJiYhaXNTYW1lKGdlbmVyYXRlQ29uZmlnLGxvY2FsZSxvcmlEYXRlLGRhdGUsaW50ZXJuYWxQaWNrZXIpfSkpLG9wZW58fG9uU3VibWl0KCl9LGZvcm1hdERhdGU6Z2V0VGV4dCxtYXhUYWdDb3VudDptYXhUYWdDb3VudCxkaXNhYmxlZDpkaXNhYmxlZCxyZW1vdmVJY29uOnJlbW92ZUljb24scGxhY2Vob2xkZXI6cGxhY2Vob2xkZXJ9KSxyZWFjdC5jcmVhdGVFbGVtZW50KCJpbnB1dCIse2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItbXVsdGlwbGUtaW5wdXQiKSx2YWx1ZTp2YWx1ZS5tYXAoZ2V0VGV4dCkuam9pbigiLCIpLHJlZjppbnB1dFJlZixyZWFkT25seTohMCxhdXRvRm9jdXM6YXV0b0ZvY3VzLHRhYkluZGV4OnRhYkluZGV4fSkscmVhY3QuY3JlYXRlRWxlbWVudChJY29uLHt0eXBlOiJzdWZmaXgiLGljb246c3VmZml4SWNvbn0pLHNob3dDbGVhciYmcmVhY3QuY3JlYXRlRWxlbWVudChDbGVhckljb24se2ljb246Y2xlYXJJY29uLG9uQ2xlYXI6b25DbGVhcn0pKTpyZWFjdC5jcmVhdGVFbGVtZW50KElucHV0LF9leHRlbmRzKHtyZWY6aW5wdXRSZWZ9LGdldElucHV0UHJvcHMoKSx7YXV0b0ZvY3VzOmF1dG9Gb2N1cyx0YWJJbmRleDp0YWJJbmRleCxzdWZmaXhJY29uOnN1ZmZpeEljb24sY2xlYXJJY29uOnNob3dDbGVhciYmcmVhY3QuY3JlYXRlRWxlbWVudChDbGVhckljb24se2ljb246Y2xlYXJJY29uLG9uQ2xlYXI6b25DbGVhcn0pLHNob3dBY3RpdmVDbHM6ITF9KSk7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIsX2V4dGVuZHMoe30scm9vdFByb3BzLHtjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKHByZWZpeENscywoMCxkZWZpbmVQcm9wZXJ0eS5aKSgoMCxkZWZpbmVQcm9wZXJ0eS5aKSgoMCxkZWZpbmVQcm9wZXJ0eS5aKSgoMCxkZWZpbmVQcm9wZXJ0eS5aKSgoMCxkZWZpbmVQcm9wZXJ0eS5aKSh7fSwiIi5jb25jYXQocHJlZml4Q2xzLCItbXVsdGlwbGUiKSxtdWx0aXBsZSksIiIuY29uY2F0KHByZWZpeENscywiLWZvY3VzZWQiKSxmb2N1c2VkKSwiIi5jb25jYXQocHJlZml4Q2xzLCItZGlzYWJsZWQiKSxkaXNhYmxlZCksIiIuY29uY2F0KHByZWZpeENscywiLWludmFsaWQiKSxpbnZhbGlkKSwiIi5jb25jYXQocHJlZml4Q2xzLCItcnRsIiksInJ0bCI9PT1kaXJlY3Rpb24pLGNsYXNzTmFtZSksc3R5bGU6c3R5bGUscmVmOnJvb3RSZWYsb25DbGljazpvbkNsaWNrLG9uTW91c2VEb3duOmZ1bmN0aW9uKGUpe3ZhciBfaW5wdXRSZWYkY3VycmVudDM7ZS50YXJnZXQhPT0obnVsbD09PShfaW5wdXRSZWYkY3VycmVudDM9aW5wdXRSZWYuY3VycmVudCl8fHZvaWQgMD09PV9pbnB1dFJlZiRjdXJyZW50Mz92b2lkIDA6X2lucHV0UmVmJGN1cnJlbnQzLmlucHV0RWxlbWVudCkmJmUucHJldmVudERlZmF1bHQoKSxudWxsPT1fb25Nb3VzZURvd258fF9vbk1vdXNlRG93bihlKX19KSxwcmVmaXgmJnJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItcHJlZml4Iil9LHByZWZpeCksc2VsZWN0b3JOb2RlKX0pLFJlZlBpY2tlcj1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7dmFyIF91c2VGaWxsZWRQcm9wczI9X3NsaWNlZFRvQXJyYXkodXNlRmlsbGVkUHJvcHMocHJvcHMpLDYpLGZpbGxlZFByb3BzPV91c2VGaWxsZWRQcm9wczJbMF0saW50ZXJuYWxQaWNrZXI9X3VzZUZpbGxlZFByb3BzMlsxXSxjb21wbGV4UGlja2VyPV91c2VGaWxsZWRQcm9wczJbMl0sZm9ybWF0TGlzdD1fdXNlRmlsbGVkUHJvcHMyWzNdLG1hc2tGb3JtYXQ9X3VzZUZpbGxlZFByb3BzMls0XSxpc0ludmFsaWRhdGVEYXRlPV91c2VGaWxsZWRQcm9wczJbNV0scHJlZml4Q2xzPWZpbGxlZFByb3BzLnByZWZpeENscyxzdHlsZXM9ZmlsbGVkUHJvcHMuc3R5bGVzLGNsYXNzTmFtZXM9ZmlsbGVkUHJvcHMuY2xhc3NOYW1lcyxvcmRlcj1maWxsZWRQcm9wcy5vcmRlcixkZWZhdWx0VmFsdWU9ZmlsbGVkUHJvcHMuZGVmYXVsdFZhbHVlLHZhbHVlPWZpbGxlZFByb3BzLnZhbHVlLG5lZWRDb25maXJtPWZpbGxlZFByb3BzLm5lZWRDb25maXJtLG9uQ2hhbmdlPWZpbGxlZFByb3BzLm9uQ2hhbmdlLG9uS2V5RG93bj1maWxsZWRQcm9wcy5vbktleURvd24sZGlzYWJsZWQ9ZmlsbGVkUHJvcHMuZGlzYWJsZWQsZGlzYWJsZWREYXRlPWZpbGxlZFByb3BzLmRpc2FibGVkRGF0ZSxtaW5EYXRlPWZpbGxlZFByb3BzLm1pbkRhdGUsbWF4RGF0ZT1maWxsZWRQcm9wcy5tYXhEYXRlLGRlZmF1bHRPcGVuPWZpbGxlZFByb3BzLmRlZmF1bHRPcGVuLG9wZW49ZmlsbGVkUHJvcHMub3Blbixvbk9wZW5DaGFuZ2U9ZmlsbGVkUHJvcHMub25PcGVuQ2hhbmdlLGxvY2FsZT1maWxsZWRQcm9wcy5sb2NhbGUsZ2VuZXJhdGVDb25maWc9ZmlsbGVkUHJvcHMuZ2VuZXJhdGVDb25maWcscGlja2VyPWZpbGxlZFByb3BzLnBpY2tlcixzaG93Tm93PWZpbGxlZFByb3BzLnNob3dOb3csc2hvd1RvZGF5PWZpbGxlZFByb3BzLnNob3dUb2RheSxzaG93VGltZT1maWxsZWRQcm9wcy5zaG93VGltZSxtb2RlPWZpbGxlZFByb3BzLm1vZGUsb25QYW5lbENoYW5nZT1maWxsZWRQcm9wcy5vblBhbmVsQ2hhbmdlLG9uQ2FsZW5kYXJDaGFuZ2U9ZmlsbGVkUHJvcHMub25DYWxlbmRhckNoYW5nZSxvbk9rPWZpbGxlZFByb3BzLm9uT2ssbXVsdGlwbGU9ZmlsbGVkUHJvcHMubXVsdGlwbGUsZGVmYXVsdFBpY2tlclZhbHVlPWZpbGxlZFByb3BzLmRlZmF1bHRQaWNrZXJWYWx1ZSxwaWNrZXJWYWx1ZT1maWxsZWRQcm9wcy5waWNrZXJWYWx1ZSxvblBpY2tlclZhbHVlQ2hhbmdlPWZpbGxlZFByb3BzLm9uUGlja2VyVmFsdWVDaGFuZ2UsaW5wdXRSZWFkT25seT1maWxsZWRQcm9wcy5pbnB1dFJlYWRPbmx5LHN1ZmZpeEljb249ZmlsbGVkUHJvcHMuc3VmZml4SWNvbixyZW1vdmVJY29uPWZpbGxlZFByb3BzLnJlbW92ZUljb24sb25Gb2N1cz1maWxsZWRQcm9wcy5vbkZvY3VzLG9uQmx1cj1maWxsZWRQcm9wcy5vbkJsdXIscHJlc2V0cz1maWxsZWRQcm9wcy5wcmVzZXRzLGNvbXBvbmVudHM9ZmlsbGVkUHJvcHMuY29tcG9uZW50cyxjZWxsUmVuZGVyPWZpbGxlZFByb3BzLmNlbGxSZW5kZXIsZGF0ZVJlbmRlcj1maWxsZWRQcm9wcy5kYXRlUmVuZGVyLG1vbnRoQ2VsbFJlbmRlcj1maWxsZWRQcm9wcy5tb250aENlbGxSZW5kZXIsb25DbGljaz1maWxsZWRQcm9wcy5vbkNsaWNrLHNlbGVjdG9yUmVmPXVzZVBpY2tlclJlZihyZWYpO2Z1bmN0aW9uIHBpY2tlclBhcmFtKHZhbHVlcyl7cmV0dXJuIG51bGw9PT12YWx1ZXM/bnVsbDptdWx0aXBsZT92YWx1ZXM6dmFsdWVzWzBdfXZhciB0b2dnbGVEYXRlcz11c2VUb2dnbGVEYXRlcyhnZW5lcmF0ZUNvbmZpZyxsb2NhbGUsaW50ZXJuYWxQaWNrZXIpLF91c2VPcGVuMj1fc2xpY2VkVG9BcnJheSh1c2VPcGVuKG9wZW4sZGVmYXVsdE9wZW4sW2Rpc2FibGVkXSxvbk9wZW5DaGFuZ2UpLDIpLG1lcmdlZE9wZW49X3VzZU9wZW4yWzBdLHRyaWdnZXJPcGVuPV91c2VPcGVuMlsxXSxfdXNlSW5uZXJWYWx1ZTI9X3NsaWNlZFRvQXJyYXkodXNlSW5uZXJWYWx1ZShnZW5lcmF0ZUNvbmZpZyxsb2NhbGUsZm9ybWF0TGlzdCwhMSxvcmRlcixkZWZhdWx0VmFsdWUsdmFsdWUsZnVuY3Rpb24oZGF0ZXMsZGF0ZVN0cmluZ3MsaW5mbyl7aWYob25DYWxlbmRhckNoYW5nZSl7dmFyIGZpbHRlcmVkSW5mbz0oMCxvYmplY3RTcHJlYWQyLlopKHt9LGluZm8pO2RlbGV0ZSBmaWx0ZXJlZEluZm8ucmFuZ2Usb25DYWxlbmRhckNoYW5nZShwaWNrZXJQYXJhbShkYXRlcykscGlja2VyUGFyYW0oZGF0ZVN0cmluZ3MpLGZpbHRlcmVkSW5mbyl9fSxmdW5jdGlvbihkYXRlcyl7bnVsbD09b25Pa3x8b25PayhwaWNrZXJQYXJhbShkYXRlcykpfSksNSksbWVyZ2VkVmFsdWU9X3VzZUlubmVyVmFsdWUyWzBdLHNldElubmVyVmFsdWU9X3VzZUlubmVyVmFsdWUyWzFdLGdldENhbGVuZGFyVmFsdWU9X3VzZUlubmVyVmFsdWUyWzJdLHRyaWdnZXJDYWxlbmRhckNoYW5nZT1fdXNlSW5uZXJWYWx1ZTJbM10sdHJpZ2dlck9rPV91c2VJbm5lclZhbHVlMls0XSxjYWxlbmRhclZhbHVlPWdldENhbGVuZGFyVmFsdWUoKSxfdXNlUmFuZ2VBY3RpdmUyPV9zbGljZWRUb0FycmF5KHVzZVJhbmdlQWN0aXZlKFtkaXNhYmxlZF0pLDQpLGZvY3VzZWQ9X3VzZVJhbmdlQWN0aXZlMlswXSx0cmlnZ2VyRm9jdXM9X3VzZVJhbmdlQWN0aXZlMlsxXSxsYXN0T3BlcmF0aW9uPV91c2VSYW5nZUFjdGl2ZTJbMl0sYWN0aXZlSW5kZXg9X3VzZVJhbmdlQWN0aXZlMlszXSxvblNoYXJlZEZvY3VzPWZ1bmN0aW9uKGV2ZW50KXt0cmlnZ2VyRm9jdXMoITApLG51bGw9PW9uRm9jdXN8fG9uRm9jdXMoZXZlbnQse30pfSxvblNoYXJlZEJsdXI9ZnVuY3Rpb24oZXZlbnQpe3RyaWdnZXJGb2N1cyghMSksbnVsbD09b25CbHVyfHxvbkJsdXIoZXZlbnQse30pfSxfdXNlTWVyZ2VkU3RhdGUyPV9zbGljZWRUb0FycmF5KHVzZU1lcmdlZFN0YXRlKHBpY2tlcix7dmFsdWU6bW9kZX0pLDIpLG1lcmdlZE1vZGU9X3VzZU1lcmdlZFN0YXRlMlswXSxzZXRNb2RlPV91c2VNZXJnZWRTdGF0ZTJbMV0saW50ZXJuYWxNb2RlPSJkYXRlIj09PW1lcmdlZE1vZGUmJnNob3dUaW1lPyJkYXRldGltZSI6bWVyZ2VkTW9kZSxtZXJnZWRTaG93Tm93PXVzZVNob3dOb3cocGlja2VyLG1lcmdlZE1vZGUsc2hvd05vdyxzaG93VG9kYXkpLHRyaWdnZXJTdWJtaXRDaGFuZ2U9X3NsaWNlZFRvQXJyYXkodXNlUmFuZ2VWYWx1ZSgoMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe30sZmlsbGVkUHJvcHMpLHt9LHtvbkNoYW5nZTpvbkNoYW5nZSYmZnVuY3Rpb24oZGF0ZXMsZGF0ZVN0cmluZ3Mpe29uQ2hhbmdlKHBpY2tlclBhcmFtKGRhdGVzKSxwaWNrZXJQYXJhbShkYXRlU3RyaW5ncykpfX0pLG1lcmdlZFZhbHVlLHNldElubmVyVmFsdWUsZ2V0Q2FsZW5kYXJWYWx1ZSx0cmlnZ2VyQ2FsZW5kYXJDaGFuZ2UsW10sZm9ybWF0TGlzdCxmb2N1c2VkLG1lcmdlZE9wZW4saXNJbnZhbGlkYXRlRGF0ZSksMilbMV0sX3VzZUZpZWxkc0ludmFsaWRhdGUyPV9zbGljZWRUb0FycmF5KHVzZUZpZWxkc0ludmFsaWRhdGUoY2FsZW5kYXJWYWx1ZSxpc0ludmFsaWRhdGVEYXRlKSwyKSxzdWJtaXRJbnZhbGlkYXRlcz1fdXNlRmllbGRzSW52YWxpZGF0ZTJbMF0sb25TZWxlY3RvckludmFsaWQ9X3VzZUZpZWxkc0ludmFsaWRhdGUyWzFdLHN1Ym1pdEludmFsaWRhdGU9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBzdWJtaXRJbnZhbGlkYXRlcy5zb21lKGZ1bmN0aW9uKGludmFsaWRhdGVkKXtyZXR1cm4gaW52YWxpZGF0ZWR9KX0sW3N1Ym1pdEludmFsaWRhdGVzXSksX3VzZVJhbmdlUGlja2VyVmFsdWUyPV9zbGljZWRUb0FycmF5KHVzZVJhbmdlUGlja2VyVmFsdWUoZ2VuZXJhdGVDb25maWcsbG9jYWxlLGNhbGVuZGFyVmFsdWUsW21lcmdlZE1vZGVdLG1lcmdlZE9wZW4sYWN0aXZlSW5kZXgsaW50ZXJuYWxQaWNrZXIsITEsZGVmYXVsdFBpY2tlclZhbHVlLHBpY2tlclZhbHVlLHRvQXJyYXkobnVsbD09c2hvd1RpbWU/dm9pZCAwOnNob3dUaW1lLmRlZmF1bHRPcGVuVmFsdWUpLGZ1bmN0aW9uKGRhdGVzLGluZm8pe2lmKG9uUGlja2VyVmFsdWVDaGFuZ2Upe3ZhciBjbGVhbkluZm89KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LGluZm8pLHt9LHttb2RlOmluZm8ubW9kZVswXX0pO2RlbGV0ZSBjbGVhbkluZm8ucmFuZ2Usb25QaWNrZXJWYWx1ZUNoYW5nZShkYXRlc1swXSxjbGVhbkluZm8pfX0sbWluRGF0ZSxtYXhEYXRlKSwyKSxjdXJyZW50UGlja2VyVmFsdWU9X3VzZVJhbmdlUGlja2VyVmFsdWUyWzBdLHNldEN1cnJlbnRQaWNrZXJWYWx1ZT1fdXNlUmFuZ2VQaWNrZXJWYWx1ZTJbMV0sdHJpZ2dlck1vZGVDaGFuZ2U9dXNlRXZlbnQoZnVuY3Rpb24obmV4dFBpY2tlclZhbHVlLG5leHRNb2RlLHRyaWdnZXJFdmVudCl7c2V0TW9kZShuZXh0TW9kZSksb25QYW5lbENoYW5nZSYmITEhPT10cmlnZ2VyRXZlbnQmJm9uUGFuZWxDaGFuZ2UobmV4dFBpY2tlclZhbHVlfHxjYWxlbmRhclZhbHVlW2NhbGVuZGFyVmFsdWUubGVuZ3RoLTFdLG5leHRNb2RlKX0pLHRyaWdnZXJDb25maXJtPWZ1bmN0aW9uKCl7dHJpZ2dlclN1Ym1pdENoYW5nZShnZXRDYWxlbmRhclZhbHVlKCkpLHRyaWdnZXJPcGVuKCExLHtmb3JjZTohMH0pfSxfUmVhY3QkdXNlU3RhdGUyPV9zbGljZWRUb0FycmF5KHJlYWN0LnVzZVN0YXRlKG51bGwpLDIpLGhvdmVyU291cmNlPV9SZWFjdCR1c2VTdGF0ZTJbMF0sc2V0SG92ZXJTb3VyY2U9X1JlYWN0JHVzZVN0YXRlMlsxXSxfUmVhY3QkdXNlU3RhdGU0PV9zbGljZWRUb0FycmF5KHJlYWN0LnVzZVN0YXRlKG51bGwpLDIpLGludGVybmFsSG92ZXJWYWx1ZT1fUmVhY3QkdXNlU3RhdGU0WzBdLHNldEludGVybmFsSG92ZXJWYWx1ZT1fUmVhY3QkdXNlU3RhdGU0WzFdLGhvdmVyVmFsdWVzPXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgdmFsdWVzPVtpbnRlcm5hbEhvdmVyVmFsdWVdLmNvbmNhdCh0b0NvbnN1bWFibGVBcnJheV90b0NvbnN1bWFibGVBcnJheShjYWxlbmRhclZhbHVlKSkuZmlsdGVyKGZ1bmN0aW9uKGRhdGUpe3JldHVybiBkYXRlfSk7cmV0dXJuIG11bHRpcGxlP3ZhbHVlczp2YWx1ZXMuc2xpY2UoMCwxKX0sW2NhbGVuZGFyVmFsdWUsaW50ZXJuYWxIb3ZlclZhbHVlLG11bHRpcGxlXSksc2VsZWN0b3JWYWx1ZXM9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiFtdWx0aXBsZSYmaW50ZXJuYWxIb3ZlclZhbHVlP1tpbnRlcm5hbEhvdmVyVmFsdWVdOmNhbGVuZGFyVmFsdWUuZmlsdGVyKGZ1bmN0aW9uKGRhdGUpe3JldHVybiBkYXRlfSl9LFtjYWxlbmRhclZhbHVlLGludGVybmFsSG92ZXJWYWx1ZSxtdWx0aXBsZV0pO3JlYWN0LnVzZUVmZmVjdChmdW5jdGlvbigpe21lcmdlZE9wZW58fHNldEludGVybmFsSG92ZXJWYWx1ZShudWxsKX0sW21lcmdlZE9wZW5dKTt2YXIgcHJlc2V0TGlzdD11c2VQcmVzZXRzKHByZXNldHMpLG9uUHJlc2V0U3VibWl0PWZ1bmN0aW9uKG5leHRWYWx1ZSl7dHJpZ2dlclN1Ym1pdENoYW5nZShtdWx0aXBsZT90b2dnbGVEYXRlcyhnZXRDYWxlbmRhclZhbHVlKCksbmV4dFZhbHVlKTpbbmV4dFZhbHVlXSkmJiFtdWx0aXBsZSYmdHJpZ2dlck9wZW4oITEse2ZvcmNlOiEwfSl9LG9uSW50ZXJuYWxDZWxsUmVuZGVyPXVzZUNlbGxSZW5kZXIoY2VsbFJlbmRlcixkYXRlUmVuZGVyLG1vbnRoQ2VsbFJlbmRlcikscGFuZWxQcm9wcz1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7dmFyIGRvbVByb3BzPXBpY2tBdHRycyhmaWxsZWRQcm9wcywhMSkscmVzdFByb3BzPW9taXQoZmlsbGVkUHJvcHMsW10uY29uY2F0KHRvQ29uc3VtYWJsZUFycmF5X3RvQ29uc3VtYWJsZUFycmF5KE9iamVjdC5rZXlzKGRvbVByb3BzKSksWyJvbkNoYW5nZSIsIm9uQ2FsZW5kYXJDaGFuZ2UiLCJzdHlsZSIsImNsYXNzTmFtZSIsIm9uUGFuZWxDaGFuZ2UiXSkpO3JldHVybigwLG9iamVjdFNwcmVhZDIuWikoKDAsb2JqZWN0U3ByZWFkMi5aKSh7fSxyZXN0UHJvcHMpLHt9LHttdWx0aXBsZTpmaWxsZWRQcm9wcy5tdWx0aXBsZX0pfSxbZmlsbGVkUHJvcHNdKSxwYW5lbD1yZWFjdC5jcmVhdGVFbGVtZW50KFBvcHVwLF9leHRlbmRzKHt9LHBhbmVsUHJvcHMse3Nob3dOb3c6bWVyZ2VkU2hvd05vdyxzaG93VGltZTpzaG93VGltZSxkaXNhYmxlZERhdGU6ZGlzYWJsZWREYXRlLG9uRm9jdXM6ZnVuY3Rpb24oZXZlbnQpe3RyaWdnZXJPcGVuKCEwKSxvblNoYXJlZEZvY3VzKGV2ZW50KX0sb25CbHVyOm9uU2hhcmVkQmx1cixwaWNrZXI6cGlja2VyLG1vZGU6bWVyZ2VkTW9kZSxpbnRlcm5hbE1vZGU6aW50ZXJuYWxNb2RlLG9uUGFuZWxDaGFuZ2U6dHJpZ2dlck1vZGVDaGFuZ2UsZm9ybWF0Om1hc2tGb3JtYXQsdmFsdWU6Y2FsZW5kYXJWYWx1ZSxpc0ludmFsaWQ6aXNJbnZhbGlkYXRlRGF0ZSxvbkNoYW5nZTpudWxsLG9uU2VsZWN0OmZ1bmN0aW9uKGRhdGUpe2xhc3RPcGVyYXRpb24oInBhbmVsIiksKCFtdWx0aXBsZXx8aW50ZXJuYWxNb2RlPT09cGlja2VyKSYmKHRyaWdnZXJDYWxlbmRhckNoYW5nZShtdWx0aXBsZT90b2dnbGVEYXRlcyhnZXRDYWxlbmRhclZhbHVlKCksZGF0ZSk6W2RhdGVdKSxuZWVkQ29uZmlybXx8Y29tcGxleFBpY2tlcnx8aW50ZXJuYWxQaWNrZXIhPT1pbnRlcm5hbE1vZGV8fHRyaWdnZXJDb25maXJtKCkpfSxwaWNrZXJWYWx1ZTpjdXJyZW50UGlja2VyVmFsdWUsZGVmYXVsdE9wZW5WYWx1ZTpudWxsPT1zaG93VGltZT92b2lkIDA6c2hvd1RpbWUuZGVmYXVsdE9wZW5WYWx1ZSxvblBpY2tlclZhbHVlQ2hhbmdlOnNldEN1cnJlbnRQaWNrZXJWYWx1ZSxob3ZlclZhbHVlOmhvdmVyVmFsdWVzLG9uSG92ZXI6ZnVuY3Rpb24oZGF0ZSl7c2V0SW50ZXJuYWxIb3ZlclZhbHVlKGRhdGUpLHNldEhvdmVyU291cmNlKCJjZWxsIil9LG5lZWRDb25maXJtOm5lZWRDb25maXJtLG9uU3VibWl0OnRyaWdnZXJDb25maXJtLG9uT2s6dHJpZ2dlck9rLHByZXNldHM6cHJlc2V0TGlzdCxvblByZXNldEhvdmVyOmZ1bmN0aW9uKG5leHRWYWx1ZSl7c2V0SW50ZXJuYWxIb3ZlclZhbHVlKG5leHRWYWx1ZSksc2V0SG92ZXJTb3VyY2UoInByZXNldCIpfSxvblByZXNldFN1Ym1pdDpvblByZXNldFN1Ym1pdCxvbk5vdzpmdW5jdGlvbihub3cpe29uUHJlc2V0U3VibWl0KG5vdyl9LGNlbGxSZW5kZXI6b25JbnRlcm5hbENlbGxSZW5kZXJ9KSksY29udGV4dD1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJue3ByZWZpeENsczpwcmVmaXhDbHMsbG9jYWxlOmxvY2FsZSxnZW5lcmF0ZUNvbmZpZzpnZW5lcmF0ZUNvbmZpZyxidXR0b246Y29tcG9uZW50cy5idXR0b24saW5wdXQ6Y29tcG9uZW50cy5pbnB1dH19LFtwcmVmaXhDbHMsbG9jYWxlLGdlbmVyYXRlQ29uZmlnLGNvbXBvbmVudHMuYnV0dG9uLGNvbXBvbmVudHMuaW5wdXRdKTtyZXR1cm4gdXNlTGF5b3V0RWZmZWN0KGZ1bmN0aW9uKCl7bWVyZ2VkT3BlbiYmdm9pZCAwIT09YWN0aXZlSW5kZXgmJnRyaWdnZXJNb2RlQ2hhbmdlKG51bGwscGlja2VyLCExKX0sW21lcmdlZE9wZW4sYWN0aXZlSW5kZXgscGlja2VyXSksdXNlTGF5b3V0RWZmZWN0KGZ1bmN0aW9uKCl7dmFyIGxhc3RPcD1sYXN0T3BlcmF0aW9uKCk7bWVyZ2VkT3Blbnx8ImlucHV0IiE9PWxhc3RPcHx8KHRyaWdnZXJPcGVuKCExKSx0cmlnZ2VyQ29uZmlybSgpKSxtZXJnZWRPcGVufHwhY29tcGxleFBpY2tlcnx8bmVlZENvbmZpcm18fCJwYW5lbCIhPT1sYXN0T3B8fHRyaWdnZXJDb25maXJtKCl9LFttZXJnZWRPcGVuXSkscmVhY3QuY3JlYXRlRWxlbWVudChQaWNrZXJDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpjb250ZXh0fSxyZWFjdC5jcmVhdGVFbGVtZW50KGVzX1BpY2tlclRyaWdnZXIsX2V4dGVuZHMoe30scGlja1RyaWdnZXJQcm9wcyhmaWxsZWRQcm9wcykse3BvcHVwRWxlbWVudDpwYW5lbCxwb3B1cFN0eWxlOnN0eWxlcy5wb3B1cCxwb3B1cENsYXNzTmFtZTpjbGFzc05hbWVzLnBvcHVwLHZpc2libGU6bWVyZ2VkT3BlbixvbkNsb3NlOmZ1bmN0aW9uKCl7dHJpZ2dlck9wZW4oITEpfX0pLHJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVmU2luZ2xlU2VsZWN0b3IsX2V4dGVuZHMoe30sZmlsbGVkUHJvcHMse3JlZjpzZWxlY3RvclJlZixzdWZmaXhJY29uOnN1ZmZpeEljb24scmVtb3ZlSWNvbjpyZW1vdmVJY29uLGFjdGl2ZUhlbHA6ISFpbnRlcm5hbEhvdmVyVmFsdWUsYWxsSGVscDohIWludGVybmFsSG92ZXJWYWx1ZSYmInByZXNldCI9PT1ob3ZlclNvdXJjZSxmb2N1c2VkOmZvY3VzZWQsb25Gb2N1czpmdW5jdGlvbihldmVudCl7bGFzdE9wZXJhdGlvbigiaW5wdXQiKSx0cmlnZ2VyT3BlbighMCx7aW5oZXJpdDohMH0pLG9uU2hhcmVkRm9jdXMoZXZlbnQpfSxvbkJsdXI6ZnVuY3Rpb24oZXZlbnQpe3RyaWdnZXJPcGVuKCExKSxvblNoYXJlZEJsdXIoZXZlbnQpfSxvbktleURvd246ZnVuY3Rpb24oZXZlbnQscHJldmVudERlZmF1bHQpeyJUYWIiPT09ZXZlbnQua2V5JiZ0cmlnZ2VyQ29uZmlybSgpLG51bGw9PW9uS2V5RG93bnx8b25LZXlEb3duKGV2ZW50LHByZXZlbnREZWZhdWx0KX0sb25TdWJtaXQ6dHJpZ2dlckNvbmZpcm0sdmFsdWU6c2VsZWN0b3JWYWx1ZXMsbWFza0Zvcm1hdDptYXNrRm9ybWF0LG9uQ2hhbmdlOmZ1bmN0aW9uKGRhdGUpe3RyaWdnZXJDYWxlbmRhckNoYW5nZShkYXRlKX0sb25JbnB1dENoYW5nZTpmdW5jdGlvbigpe2xhc3RPcGVyYXRpb24oImlucHV0Iil9LGludGVybmFsUGlja2VyOmludGVybmFsUGlja2VyLGZvcm1hdDpmb3JtYXRMaXN0LGlucHV0UmVhZE9ubHk6aW5wdXRSZWFkT25seSxkaXNhYmxlZDpkaXNhYmxlZCxvcGVuOm1lcmdlZE9wZW4sb25PcGVuQ2hhbmdlOnRyaWdnZXJPcGVuLG9uQ2xpY2s6ZnVuY3Rpb24oZXZlbnQpe2Rpc2FibGVkfHxzZWxlY3RvclJlZi5jdXJyZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl8fHNlbGVjdG9yUmVmLmN1cnJlbnQuZm9jdXMoKSx0cmlnZ2VyT3BlbighMCksbnVsbD09b25DbGlja3x8b25DbGljayhldmVudCl9LG9uQ2xlYXI6ZnVuY3Rpb24oKXt0cmlnZ2VyU3VibWl0Q2hhbmdlKG51bGwpLHRyaWdnZXJPcGVuKCExLHtmb3JjZTohMH0pfSxpbnZhbGlkOnN1Ym1pdEludmFsaWRhdGUsb25JbnZhbGlkOmZ1bmN0aW9uKGludmFsaWQpe29uU2VsZWN0b3JJbnZhbGlkKGludmFsaWQsMCl9fSkpKSl9KSxDb250ZXh0SXNvbGF0b3I9X193ZWJwYWNrX3JlcXVpcmVfXyg4OTk0MiksdXNlWkluZGV4PV9fd2VicGFja19yZXF1aXJlX18oODcyNjMpLHN0YXR1c1V0aWxzPV9fd2VicGFja19yZXF1aXJlX18oOTcwOCksY29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDUzMTI0KSxEaXNhYmxlZENvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg5ODg2NiksdXNlQ1NTVmFyQ2xzPV9fd2VicGFja19yZXF1aXJlX18oMzU3OTIpLHVzZVNpemU9X193ZWJwYWNrX3JlcXVpcmVfXyg5ODY3NSksZm9ybV9jb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oNjUyMjMpLHVzZVZhcmlhbnRzPV9fd2VicGFja19yZXF1aXJlX18oMjc4MzMpLGxvY2FsZV91c2VMb2NhbGU9X193ZWJwYWNrX3JlcXVpcmVfXygxMDExMCksQ29tcGFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQxNzMpLGVuX1VTPV9fd2VicGFja19yZXF1aXJlX18oMjk0OTQpLGNzc2luanNfZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0NDg5OSksc3R5bGU9X193ZWJwYWNrX3JlcXVpcmVfXyg0NzY3Myksc3R5bGVfdG9rZW49X193ZWJwYWNrX3JlcXVpcmVfXygyMDM1MyksZXNfc3R5bGU9X193ZWJwYWNrX3JlcXVpcmVfXygxNDc0NyksY29tcGFjdF9pdGVtPV9fd2VicGFja19yZXF1aXJlX18oODAxMTApLHNsaWRlPV9fd2VicGFja19yZXF1aXJlX18oNjc3NzEpLG1vdmU9X193ZWJwYWNrX3JlcXVpcmVfXygzMzI5Nykscm91bmRlZEFycm93PV9fd2VicGFja19yZXF1aXJlX18oNzk1MTEpLGdlblN0eWxlVXRpbHM9X193ZWJwYWNrX3JlcXVpcmVfXyg4MzU1OSksY3NzaW5qc191dGlsc19lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQyNTU5KSxtdWx0aXBsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDE2OTI4KTtsZXQgZ2VuU2l6ZT0odG9rZW4sc3VmZml4KT0+e2xldHtjb21wb25lbnRDbHMsY29udHJvbEhlaWdodH09dG9rZW4sc3VmZml4Q2xzPXN1ZmZpeD9gJHtjb21wb25lbnRDbHN9LSR7c3VmZml4fWA6IiIsbXVsdGlwbGVTZWxlY3RvclVuaXQ9KDAsbXVsdGlwbGUuZ3ApKHRva2VuKTtyZXR1cm5be1tgJHtjb21wb25lbnRDbHN9LW11bHRpcGxlJHtzdWZmaXhDbHN9YF06e3BhZGRpbmdCbG9jazptdWx0aXBsZVNlbGVjdG9yVW5pdC5jb250YWluZXJQYWRkaW5nLHBhZGRpbmdJbmxpbmVTdGFydDptdWx0aXBsZVNlbGVjdG9yVW5pdC5iYXNlUGFkZGluZyxtaW5IZWlnaHQ6Y29udHJvbEhlaWdodCxbYCR7Y29tcG9uZW50Q2xzfS1zZWxlY3Rpb24taXRlbWBdOntoZWlnaHQ6bXVsdGlwbGVTZWxlY3RvclVuaXQuaXRlbUhlaWdodCxsaW5lSGVpZ2h0OigwLGNzc2luanNfZXMuYmYpKG11bHRpcGxlU2VsZWN0b3JVbml0Lml0ZW1MaW5lSGVpZ2h0KX19fV19LGdlblBpY2tlck11bHRpcGxlU3R5bGU9dG9rZW49PntsZXR7Y29tcG9uZW50Q2xzLGNhbGMsbGluZVdpZHRofT10b2tlbixzbWFsbFRva2VuPSgwLGNzc2luanNfdXRpbHNfZXMuSVgpKHRva2VuLHtmb250SGVpZ2h0OnRva2VuLmZvbnRTaXplLHNlbGVjdEhlaWdodDp0b2tlbi5jb250cm9sSGVpZ2h0U00sbXVsdGlwbGVTZWxlY3RJdGVtSGVpZ2h0OnRva2VuLm11bHRpcGxlSXRlbUhlaWdodFNNLGJvcmRlclJhZGl1czp0b2tlbi5ib3JkZXJSYWRpdXNTTSxib3JkZXJSYWRpdXNTTTp0b2tlbi5ib3JkZXJSYWRpdXNYUyxjb250cm9sSGVpZ2h0OnRva2VuLmNvbnRyb2xIZWlnaHRTTX0pLGxhcmdlVG9rZW49KDAsY3NzaW5qc191dGlsc19lcy5JWCkodG9rZW4se2ZvbnRIZWlnaHQ6Y2FsYyh0b2tlbi5tdWx0aXBsZUl0ZW1IZWlnaHRMRykuc3ViKGNhbGMobGluZVdpZHRoKS5tdWwoMikuZXF1YWwoKSkuZXF1YWwoKSxmb250U2l6ZTp0b2tlbi5mb250U2l6ZUxHLHNlbGVjdEhlaWdodDp0b2tlbi5jb250cm9sSGVpZ2h0TEcsbXVsdGlwbGVTZWxlY3RJdGVtSGVpZ2h0OnRva2VuLm11bHRpcGxlSXRlbUhlaWdodExHLGJvcmRlclJhZGl1czp0b2tlbi5ib3JkZXJSYWRpdXNMRyxib3JkZXJSYWRpdXNTTTp0b2tlbi5ib3JkZXJSYWRpdXMsY29udHJvbEhlaWdodDp0b2tlbi5jb250cm9sSGVpZ2h0TEd9KTtyZXR1cm5bZ2VuU2l6ZShzbWFsbFRva2VuLCJzbWFsbCIpLGdlblNpemUodG9rZW4pLGdlblNpemUobGFyZ2VUb2tlbiwibGFyZ2UiKSx7W2Ake2NvbXBvbmVudENsc30ke2NvbXBvbmVudENsc30tbXVsdGlwbGVgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe3dpZHRoOiIxMDAlIixjdXJzb3I6InRleHQiLFtgJHtjb21wb25lbnRDbHN9LXNlbGVjdG9yYF06e2ZsZXg6ImF1dG8iLHBhZGRpbmc6MCxwb3NpdGlvbjoicmVsYXRpdmUiLCImOmFmdGVyIjp7bWFyZ2luOjB9LFtgJHtjb21wb25lbnRDbHN9LXNlbGVjdGlvbi1wbGFjZWhvbGRlcmBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDoiNTAlIixpbnNldElubGluZVN0YXJ0OnRva2VuLmlucHV0UGFkZGluZ0hvcml6b250YWxCYXNlLGluc2V0SW5saW5lRW5kOjAsdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC01MCUpIix0cmFuc2l0aW9uOmBhbGwgJHt0b2tlbi5tb3Rpb25EdXJhdGlvblNsb3d9YCxvdmVyZmxvdzoiaGlkZGVuIix3aGl0ZVNwYWNlOiJub3dyYXAiLHRleHRPdmVyZmxvdzoiZWxsaXBzaXMiLGZsZXg6MSxjb2xvcjp0b2tlbi5jb2xvclRleHRQbGFjZWhvbGRlcixwb2ludGVyRXZlbnRzOiJub25lIn19fSwoMCxtdWx0aXBsZS5feikodG9rZW4pKSx7W2Ake2NvbXBvbmVudENsc30tbXVsdGlwbGUtaW5wdXRgXTp7d2lkdGg6MCxoZWlnaHQ6MCxib3JkZXI6MCx2aXNpYmlsaXR5OiJoaWRkZW4iLHBvc2l0aW9uOiJhYnNvbHV0ZSIsekluZGV4Oi0xfX0pfV19O3ZhciBmYXN0X2NvbG9yX2VzPV9fd2VicGFja19yZXF1aXJlX18oMjQzMjcpO2xldCBnZW5QaWNrZXJDZWxsSW5uZXJTdHlsZT10b2tlbj0+e2xldHtwaWNrZXJDZWxsQ2xzLHBpY2tlckNlbGxJbm5lckNscyxjZWxsSGVpZ2h0LGJvcmRlclJhZGl1c1NNLG1vdGlvbkR1cmF0aW9uTWlkLGNlbGxIb3ZlckJnLGxpbmVXaWR0aCxsaW5lVHlwZSxjb2xvclByaW1hcnksY2VsbEFjdGl2ZVdpdGhSYW5nZUJnLGNvbG9yVGV4dExpZ2h0U29saWQsY29sb3JUZXh0RGlzYWJsZWQsY2VsbEJnRGlzYWJsZWQsY29sb3JGaWxsU2Vjb25kYXJ5fT10b2tlbjtyZXR1cm57IiY6OmJlZm9yZSI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOiI1MCUiLGluc2V0SW5saW5lU3RhcnQ6MCxpbnNldElubGluZUVuZDowLHpJbmRleDoxLGhlaWdodDpjZWxsSGVpZ2h0LHRyYW5zZm9ybToidHJhbnNsYXRlWSgtNTAlKSIsY29udGVudDonIiInLHBvaW50ZXJFdmVudHM6Im5vbmUifSxbcGlja2VyQ2VsbElubmVyQ2xzXTp7cG9zaXRpb246InJlbGF0aXZlIix6SW5kZXg6MixkaXNwbGF5OiJpbmxpbmUtYmxvY2siLG1pbldpZHRoOmNlbGxIZWlnaHQsaGVpZ2h0OmNlbGxIZWlnaHQsbGluZUhlaWdodDooMCxjc3NpbmpzX2VzLmJmKShjZWxsSGVpZ2h0KSxib3JkZXJSYWRpdXM6Ym9yZGVyUmFkaXVzU00sdHJhbnNpdGlvbjpgYmFja2dyb3VuZCAke21vdGlvbkR1cmF0aW9uTWlkfWB9LFtgJjpob3Zlcjpub3QoJHtwaWNrZXJDZWxsQ2xzfS1pbi12aWV3KTpub3QoJHtwaWNrZXJDZWxsQ2xzfS1kaXNhYmxlZCksCiAgICAmOmhvdmVyOm5vdCgke3BpY2tlckNlbGxDbHN9LXNlbGVjdGVkKTpub3QoJHtwaWNrZXJDZWxsQ2xzfS1yYW5nZS1zdGFydCk6bm90KCR7cGlja2VyQ2VsbENsc30tcmFuZ2UtZW5kKTpub3QoJHtwaWNrZXJDZWxsQ2xzfS1kaXNhYmxlZClgXTp7W3BpY2tlckNlbGxJbm5lckNsc106e2JhY2tncm91bmQ6Y2VsbEhvdmVyQmd9fSxbYCYtaW4tdmlldyR7cGlja2VyQ2VsbENsc30tdG9kYXkgJHtwaWNrZXJDZWxsSW5uZXJDbHN9YF06eyImOjpiZWZvcmUiOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLGluc2V0SW5saW5lRW5kOjAsYm90dG9tOjAsaW5zZXRJbmxpbmVTdGFydDowLHpJbmRleDoxLGJvcmRlcjpgJHsoMCxjc3NpbmpzX2VzLmJmKShsaW5lV2lkdGgpfSAke2xpbmVUeXBlfSAke2NvbG9yUHJpbWFyeX1gLGJvcmRlclJhZGl1czpib3JkZXJSYWRpdXNTTSxjb250ZW50OiciIid9fSxbYCYtaW4tdmlldyR7cGlja2VyQ2VsbENsc30taW4tcmFuZ2UsCiAgICAgICYtaW4tdmlldyR7cGlja2VyQ2VsbENsc30tcmFuZ2Utc3RhcnQsCiAgICAgICYtaW4tdmlldyR7cGlja2VyQ2VsbENsc30tcmFuZ2UtZW5kYF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsW2AmOm5vdCgke3BpY2tlckNlbGxDbHN9LWRpc2FibGVkKTpiZWZvcmVgXTp7YmFja2dyb3VuZDpjZWxsQWN0aXZlV2l0aFJhbmdlQmd9fSxbYCYtaW4tdmlldyR7cGlja2VyQ2VsbENsc30tc2VsZWN0ZWQsCiAgICAgICYtaW4tdmlldyR7cGlja2VyQ2VsbENsc30tcmFuZ2Utc3RhcnQsCiAgICAgICYtaW4tdmlldyR7cGlja2VyQ2VsbENsc30tcmFuZ2UtZW5kYF06e1tgJjpub3QoJHtwaWNrZXJDZWxsQ2xzfS1kaXNhYmxlZCkgJHtwaWNrZXJDZWxsSW5uZXJDbHN9YF06e2NvbG9yOmNvbG9yVGV4dExpZ2h0U29saWQsYmFja2dyb3VuZDpjb2xvclByaW1hcnl9LFtgJiR7cGlja2VyQ2VsbENsc30tZGlzYWJsZWQgJHtwaWNrZXJDZWxsSW5uZXJDbHN9YF06e2JhY2tncm91bmQ6Y29sb3JGaWxsU2Vjb25kYXJ5fX0sW2AmLWluLXZpZXcke3BpY2tlckNlbGxDbHN9LXJhbmdlLXN0YXJ0Om5vdCgke3BpY2tlckNlbGxDbHN9LWRpc2FibGVkKTpiZWZvcmVgXTp7aW5zZXRJbmxpbmVTdGFydDoiNTAlIn0sW2AmLWluLXZpZXcke3BpY2tlckNlbGxDbHN9LXJhbmdlLWVuZDpub3QoJHtwaWNrZXJDZWxsQ2xzfS1kaXNhYmxlZCk6YmVmb3JlYF06e2luc2V0SW5saW5lRW5kOiI1MCUifSxbYCYtaW4tdmlldyR7cGlja2VyQ2VsbENsc30tcmFuZ2Utc3RhcnQ6bm90KCR7cGlja2VyQ2VsbENsc30tcmFuZ2UtZW5kKSAke3BpY2tlckNlbGxJbm5lckNsc31gXTp7Ym9yZGVyU3RhcnRTdGFydFJhZGl1czpib3JkZXJSYWRpdXNTTSxib3JkZXJFbmRTdGFydFJhZGl1czpib3JkZXJSYWRpdXNTTSxib3JkZXJTdGFydEVuZFJhZGl1czowLGJvcmRlckVuZEVuZFJhZGl1czowfSxbYCYtaW4tdmlldyR7cGlja2VyQ2VsbENsc30tcmFuZ2UtZW5kOm5vdCgke3BpY2tlckNlbGxDbHN9LXJhbmdlLXN0YXJ0KSAke3BpY2tlckNlbGxJbm5lckNsc31gXTp7Ym9yZGVyU3RhcnRTdGFydFJhZGl1czowLGJvcmRlckVuZFN0YXJ0UmFkaXVzOjAsYm9yZGVyU3RhcnRFbmRSYWRpdXM6Ym9yZGVyUmFkaXVzU00sYm9yZGVyRW5kRW5kUmFkaXVzOmJvcmRlclJhZGl1c1NNfSwiJi1kaXNhYmxlZCI6e2NvbG9yOmNvbG9yVGV4dERpc2FibGVkLGN1cnNvcjoibm90LWFsbG93ZWQiLFtwaWNrZXJDZWxsSW5uZXJDbHNdOntiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCJ9LCImOjpiZWZvcmUiOntiYWNrZ3JvdW5kOmNlbGxCZ0Rpc2FibGVkfX0sW2AmLWRpc2FibGVkJHtwaWNrZXJDZWxsQ2xzfS10b2RheSAke3BpY2tlckNlbGxJbm5lckNsc306OmJlZm9yZWBdOntib3JkZXJDb2xvcjpjb2xvclRleHREaXNhYmxlZH19fSxnZW5QYW5lbFN0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENscyxwaWNrZXJDZWxsQ2xzLHBpY2tlckNlbGxJbm5lckNscyxwaWNrZXJZZWFyTW9udGhDZWxsV2lkdGgscGlja2VyQ29udHJvbEljb25TaXplLGNlbGxXaWR0aCxwYWRkaW5nU00scGFkZGluZ1hTLHBhZGRpbmdYWFMsY29sb3JCZ0NvbnRhaW5lcixsaW5lV2lkdGgsbGluZVR5cGUsYm9yZGVyUmFkaXVzTEcsY29sb3JQcmltYXJ5LGNvbG9yVGV4dEhlYWRpbmcsY29sb3JTcGxpdCxwaWNrZXJDb250cm9sSWNvbkJvcmRlcldpZHRoLGNvbG9ySWNvbix0ZXh0SGVpZ2h0LG1vdGlvbkR1cmF0aW9uTWlkLGNvbG9ySWNvbkhvdmVyLGZvbnRXZWlnaHRTdHJvbmcsY2VsbEhlaWdodCxwaWNrZXJDZWxsUGFkZGluZ1ZlcnRpY2FsLGNvbG9yVGV4dERpc2FibGVkLGNvbG9yVGV4dCxmb250U2l6ZSxtb3Rpb25EdXJhdGlvblNsb3csd2l0aG91dFRpbWVDZWxsSGVpZ2h0LHBpY2tlclF1YXJ0ZXJQYW5lbENvbnRlbnRIZWlnaHQsYm9yZGVyUmFkaXVzU00sY29sb3JUZXh0TGlnaHRTb2xpZCxjZWxsSG92ZXJCZyx0aW1lQ29sdW1uSGVpZ2h0LHRpbWVDb2x1bW5XaWR0aCx0aW1lQ2VsbEhlaWdodCxjb250cm9sSXRlbUJnQWN0aXZlLG1hcmdpblhYUyxwaWNrZXJEYXRlUGFuZWxQYWRkaW5nSG9yaXpvbnRhbCxwaWNrZXJDb250cm9sSWNvbk1hcmdpbn09dG9rZW4scGlja2VyUGFuZWxXaWR0aD10b2tlbi5jYWxjKGNlbGxXaWR0aCkubXVsKDcpLmFkZCh0b2tlbi5jYWxjKHBpY2tlckRhdGVQYW5lbFBhZGRpbmdIb3Jpem9udGFsKS5tdWwoMikpLmVxdWFsKCk7cmV0dXJue1tjb21wb25lbnRDbHNdOnsiJi1wYW5lbCI6e2Rpc3BsYXk6ImlubGluZS1mbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLHRleHRBbGlnbjoiY2VudGVyIixiYWNrZ3JvdW5kOmNvbG9yQmdDb250YWluZXIsYm9yZGVyUmFkaXVzOmJvcmRlclJhZGl1c0xHLG91dGxpbmU6Im5vbmUiLCImLWZvY3VzZWQiOntib3JkZXJDb2xvcjpjb2xvclByaW1hcnl9LCImLXJ0bCI6e1tgJHtjb21wb25lbnRDbHN9LXByZXYtaWNvbiwKICAgICAgICAgICAgICAke2NvbXBvbmVudENsc30tc3VwZXItcHJldi1pY29uYF06e3RyYW5zZm9ybToicm90YXRlKDQ1ZGVnKSJ9LFtgJHtjb21wb25lbnRDbHN9LW5leHQtaWNvbiwKICAgICAgICAgICAgICAke2NvbXBvbmVudENsc30tc3VwZXItbmV4dC1pY29uYF06e3RyYW5zZm9ybToicm90YXRlKC0xMzVkZWcpIn0sW2Ake2NvbXBvbmVudENsc30tdGltZS1wYW5lbGBdOntbYCR7Y29tcG9uZW50Q2xzfS1jb250ZW50YF06e2RpcmVjdGlvbjoibHRyIiwiPiAqIjp7ZGlyZWN0aW9uOiJydGwifX19fX0sW2AmLWRlY2FkZS1wYW5lbCwKICAgICAgICAmLXllYXItcGFuZWwsCiAgICAgICAgJi1xdWFydGVyLXBhbmVsLAogICAgICAgICYtbW9udGgtcGFuZWwsCiAgICAgICAgJi13ZWVrLXBhbmVsLAogICAgICAgICYtZGF0ZS1wYW5lbCwKICAgICAgICAmLXRpbWUtcGFuZWxgXTp7ZGlzcGxheToiZmxleCIsZmxleERpcmVjdGlvbjoiY29sdW1uIix3aWR0aDpwaWNrZXJQYW5lbFdpZHRofSwiJi1oZWFkZXIiOntkaXNwbGF5OiJmbGV4IixwYWRkaW5nOmAwICR7KDAsY3NzaW5qc19lcy5iZikocGFkZGluZ1hTKX1gLGNvbG9yOmNvbG9yVGV4dEhlYWRpbmcsYm9yZGVyQm90dG9tOmAkeygwLGNzc2luanNfZXMuYmYpKGxpbmVXaWR0aCl9ICR7bGluZVR5cGV9ICR7Y29sb3JTcGxpdH1gLCI+ICoiOntmbGV4OiJub25lIn0sYnV0dG9uOntwYWRkaW5nOjAsY29sb3I6Y29sb3JJY29uLGxpbmVIZWlnaHQ6KDAsY3NzaW5qc19lcy5iZikodGV4dEhlaWdodCksYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGJvcmRlcjowLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgY29sb3IgJHttb3Rpb25EdXJhdGlvbk1pZH1gLGZvbnRTaXplOiJpbmhlcml0IixkaXNwbGF5OiJpbmxpbmUtZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoiY2VudGVyIiwiJjplbXB0eSI6e2Rpc3BsYXk6Im5vbmUifX0sIj4gYnV0dG9uIjp7bWluV2lkdGg6IjEuNmVtIixmb250U2l6ZSwiJjpob3ZlciI6e2NvbG9yOmNvbG9ySWNvbkhvdmVyfSwiJjpkaXNhYmxlZCI6e29wYWNpdHk6LjI1LHBvaW50ZXJFdmVudHM6Im5vbmUifX0sIiYtdmlldyI6e2ZsZXg6ImF1dG8iLGZvbnRXZWlnaHQ6Zm9udFdlaWdodFN0cm9uZyxsaW5lSGVpZ2h0OigwLGNzc2luanNfZXMuYmYpKHRleHRIZWlnaHQpLCI+IGJ1dHRvbiI6e2NvbG9yOiJpbmhlcml0Iixmb250V2VpZ2h0OiJpbmhlcml0Iix2ZXJ0aWNhbEFsaWduOiJ0b3AiLCImOm5vdCg6Zmlyc3QtY2hpbGQpIjp7bWFyZ2luSW5saW5lU3RhcnQ6cGFkZGluZ1hTfSwiJjpob3ZlciI6e2NvbG9yOmNvbG9yUHJpbWFyeX19fX0sW2AmLXByZXYtaWNvbiwKICAgICAgICAmLW5leHQtaWNvbiwKICAgICAgICAmLXN1cGVyLXByZXYtaWNvbiwKICAgICAgICAmLXN1cGVyLW5leHQtaWNvbmBdOntwb3NpdGlvbjoicmVsYXRpdmUiLHdpZHRoOnBpY2tlckNvbnRyb2xJY29uU2l6ZSxoZWlnaHQ6cGlja2VyQ29udHJvbEljb25TaXplLCImOjpiZWZvcmUiOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLGluc2V0SW5saW5lU3RhcnQ6MCx3aWR0aDpwaWNrZXJDb250cm9sSWNvblNpemUsaGVpZ2h0OnBpY2tlckNvbnRyb2xJY29uU2l6ZSxib3JkZXI6IjAgc29saWQgY3VycmVudGNvbG9yIixib3JkZXJCbG9ja1N0YXJ0V2lkdGg6cGlja2VyQ29udHJvbEljb25Cb3JkZXJXaWR0aCxib3JkZXJJbmxpbmVTdGFydFdpZHRoOnBpY2tlckNvbnRyb2xJY29uQm9yZGVyV2lkdGgsY29udGVudDonIiInfX0sW2AmLXN1cGVyLXByZXYtaWNvbiwKICAgICAgICAmLXN1cGVyLW5leHQtaWNvbmBdOnsiJjo6YWZ0ZXIiOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDpwaWNrZXJDb250cm9sSWNvbk1hcmdpbixpbnNldElubGluZVN0YXJ0OnBpY2tlckNvbnRyb2xJY29uTWFyZ2luLGRpc3BsYXk6ImlubGluZS1ibG9jayIsd2lkdGg6cGlja2VyQ29udHJvbEljb25TaXplLGhlaWdodDpwaWNrZXJDb250cm9sSWNvblNpemUsYm9yZGVyOiIwIHNvbGlkIGN1cnJlbnRjb2xvciIsYm9yZGVyQmxvY2tTdGFydFdpZHRoOnBpY2tlckNvbnRyb2xJY29uQm9yZGVyV2lkdGgsYm9yZGVySW5saW5lU3RhcnRXaWR0aDpwaWNrZXJDb250cm9sSWNvbkJvcmRlcldpZHRoLGNvbnRlbnQ6JyIiJ319LCImLXByZXYtaWNvbiwgJi1zdXBlci1wcmV2LWljb24iOnt0cmFuc2Zvcm06InJvdGF0ZSgtNDVkZWcpIn0sIiYtbmV4dC1pY29uLCAmLXN1cGVyLW5leHQtaWNvbiI6e3RyYW5zZm9ybToicm90YXRlKDEzNWRlZykifSwiJi1jb250ZW50Ijp7d2lkdGg6IjEwMCUiLHRhYmxlTGF5b3V0OiJmaXhlZCIsYm9yZGVyQ29sbGFwc2U6ImNvbGxhcHNlIiwidGgsIHRkIjp7cG9zaXRpb246InJlbGF0aXZlIixtaW5XaWR0aDpjZWxsSGVpZ2h0LGZvbnRXZWlnaHQ6Im5vcm1hbCJ9LHRoOntoZWlnaHQ6dG9rZW4uY2FsYyhjZWxsSGVpZ2h0KS5hZGQodG9rZW4uY2FsYyhwaWNrZXJDZWxsUGFkZGluZ1ZlcnRpY2FsKS5tdWwoMikpLmVxdWFsKCksY29sb3I6Y29sb3JUZXh0LHZlcnRpY2FsQWxpZ246Im1pZGRsZSJ9fSwiJi1jZWxsIjpPYmplY3QuYXNzaWduKHtwYWRkaW5nOmAkeygwLGNzc2luanNfZXMuYmYpKHBpY2tlckNlbGxQYWRkaW5nVmVydGljYWwpfSAwYCxjb2xvcjpjb2xvclRleHREaXNhYmxlZCxjdXJzb3I6InBvaW50ZXIiLCImLWluLXZpZXciOntjb2xvcjpjb2xvclRleHR9fSxnZW5QaWNrZXJDZWxsSW5uZXJTdHlsZSh0b2tlbikpLFtgJi1kZWNhZGUtcGFuZWwsCiAgICAgICAgJi15ZWFyLXBhbmVsLAogICAgICAgICYtcXVhcnRlci1wYW5lbCwKICAgICAgICAmLW1vbnRoLXBhbmVsYF06e1tgJHtjb21wb25lbnRDbHN9LWNvbnRlbnRgXTp7aGVpZ2h0OnRva2VuLmNhbGMod2l0aG91dFRpbWVDZWxsSGVpZ2h0KS5tdWwoNCkuZXF1YWwoKX0sW3BpY2tlckNlbGxJbm5lckNsc106e3BhZGRpbmc6YDAgJHsoMCxjc3NpbmpzX2VzLmJmKShwYWRkaW5nWFMpfWB9fSwiJi1xdWFydGVyLXBhbmVsIjp7W2Ake2NvbXBvbmVudENsc30tY29udGVudGBdOntoZWlnaHQ6cGlja2VyUXVhcnRlclBhbmVsQ29udGVudEhlaWdodH19LCImLWRlY2FkZS1wYW5lbCI6e1twaWNrZXJDZWxsSW5uZXJDbHNdOntwYWRkaW5nOmAwICR7KDAsY3NzaW5qc19lcy5iZikodG9rZW4uY2FsYyhwYWRkaW5nWFMpLmRpdigyKS5lcXVhbCgpKX1gfSxbYCR7Y29tcG9uZW50Q2xzfS1jZWxsOjpiZWZvcmVgXTp7ZGlzcGxheToibm9uZSJ9fSxbYCYteWVhci1wYW5lbCwKICAgICAgICAmLXF1YXJ0ZXItcGFuZWwsCiAgICAgICAgJi1tb250aC1wYW5lbGBdOntbYCR7Y29tcG9uZW50Q2xzfS1ib2R5YF06e3BhZGRpbmc6YDAgJHsoMCxjc3NpbmpzX2VzLmJmKShwYWRkaW5nWFMpfWB9LFtwaWNrZXJDZWxsSW5uZXJDbHNdOnt3aWR0aDpwaWNrZXJZZWFyTW9udGhDZWxsV2lkdGh9fSwiJi1kYXRlLXBhbmVsIjp7W2Ake2NvbXBvbmVudENsc30tYm9keWBdOntwYWRkaW5nOmAkeygwLGNzc2luanNfZXMuYmYpKHBhZGRpbmdYUyl9ICR7KDAsY3NzaW5qc19lcy5iZikocGlja2VyRGF0ZVBhbmVsUGFkZGluZ0hvcml6b250YWwpfWB9LFtgJHtjb21wb25lbnRDbHN9LWNvbnRlbnQgdGhgXTp7Ym94U2l6aW5nOiJib3JkZXItYm94IixwYWRkaW5nOjB9fSwiJi13ZWVrLXBhbmVsIjp7W2Ake2NvbXBvbmVudENsc30tY2VsbGBdOntbYCY6aG92ZXIgJHtwaWNrZXJDZWxsSW5uZXJDbHN9LAogICAgICAgICAgICAmLXNlbGVjdGVkICR7cGlja2VyQ2VsbElubmVyQ2xzfSwKICAgICAgICAgICAgJHtwaWNrZXJDZWxsSW5uZXJDbHN9YF06e2JhY2tncm91bmQ6InRyYW5zcGFyZW50ICFpbXBvcnRhbnQifX0sIiYtcm93Ijp7dGQ6eyImOmJlZm9yZSI6e3RyYW5zaXRpb246YGJhY2tncm91bmQgJHttb3Rpb25EdXJhdGlvbk1pZH1gfSwiJjpmaXJzdC1jaGlsZDpiZWZvcmUiOntib3JkZXJTdGFydFN0YXJ0UmFkaXVzOmJvcmRlclJhZGl1c1NNLGJvcmRlckVuZFN0YXJ0UmFkaXVzOmJvcmRlclJhZGl1c1NNfSwiJjpsYXN0LWNoaWxkOmJlZm9yZSI6e2JvcmRlclN0YXJ0RW5kUmFkaXVzOmJvcmRlclJhZGl1c1NNLGJvcmRlckVuZEVuZFJhZGl1czpib3JkZXJSYWRpdXNTTX19LCImOmhvdmVyIHRkOmJlZm9yZSI6e2JhY2tncm91bmQ6Y2VsbEhvdmVyQmd9LCImLXJhbmdlLXN0YXJ0IHRkLCAmLXJhbmdlLWVuZCB0ZCwgJi1zZWxlY3RlZCB0ZCwgJi1ob3ZlciB0ZCI6e1tgJiR7cGlja2VyQ2VsbENsc31gXTp7IiY6YmVmb3JlIjp7YmFja2dyb3VuZDpjb2xvclByaW1hcnl9LFtgJiR7Y29tcG9uZW50Q2xzfS1jZWxsLXdlZWtgXTp7Y29sb3I6bmV3IGZhc3RfY29sb3JfZXMudChjb2xvclRleHRMaWdodFNvbGlkKS5zZXRBKC41KS50b0hleFN0cmluZygpfSxbcGlja2VyQ2VsbElubmVyQ2xzXTp7Y29sb3I6Y29sb3JUZXh0TGlnaHRTb2xpZH19fSwiJi1yYW5nZS1ob3ZlciB0ZDpiZWZvcmUiOntiYWNrZ3JvdW5kOmNvbnRyb2xJdGVtQmdBY3RpdmV9fX0sIiYtd2Vlay1wYW5lbCwgJi1kYXRlLXBhbmVsLXNob3ctd2VlayI6e1tgJHtjb21wb25lbnRDbHN9LWJvZHlgXTp7cGFkZGluZzpgJHsoMCxjc3NpbmpzX2VzLmJmKShwYWRkaW5nWFMpfSAkeygwLGNzc2luanNfZXMuYmYpKHBhZGRpbmdTTSl9YH0sW2Ake2NvbXBvbmVudENsc30tY29udGVudCB0aGBdOnt3aWR0aDoiYXV0byJ9fSwiJi1kYXRldGltZS1wYW5lbCI6e2Rpc3BsYXk6ImZsZXgiLFtgJHtjb21wb25lbnRDbHN9LXRpbWUtcGFuZWxgXTp7Ym9yZGVySW5saW5lU3RhcnQ6YCR7KDAsY3NzaW5qc19lcy5iZikobGluZVdpZHRoKX0gJHtsaW5lVHlwZX0gJHtjb2xvclNwbGl0fWB9LFtgJHtjb21wb25lbnRDbHN9LWRhdGUtcGFuZWwsCiAgICAgICAgICAke2NvbXBvbmVudENsc30tdGltZS1wYW5lbGBdOnt0cmFuc2l0aW9uOmBvcGFjaXR5ICR7bW90aW9uRHVyYXRpb25TbG93fWB9LCImLWFjdGl2ZSI6e1tgJHtjb21wb25lbnRDbHN9LWRhdGUtcGFuZWwsCiAgICAgICAgICAgICR7Y29tcG9uZW50Q2xzfS10aW1lLXBhbmVsYF06e29wYWNpdHk6LjMsIiYtYWN0aXZlIjp7b3BhY2l0eToxfX19fSwiJi10aW1lLXBhbmVsIjp7d2lkdGg6ImF1dG8iLG1pbldpZHRoOiJhdXRvIixbYCR7Y29tcG9uZW50Q2xzfS1jb250ZW50YF06e2Rpc3BsYXk6ImZsZXgiLGZsZXg6ImF1dG8iLGhlaWdodDp0aW1lQ29sdW1uSGVpZ2h0fSwiJi1jb2x1bW4iOntmbGV4OiIxIDAgYXV0byIsd2lkdGg6dGltZUNvbHVtbldpZHRoLG1hcmdpbjpgJHsoMCxjc3NpbmpzX2VzLmJmKShwYWRkaW5nWFhTKX0gMGAscGFkZGluZzowLG92ZXJmbG93WToiaGlkZGVuIix0ZXh0QWxpZ246InN0YXJ0IixsaXN0U3R5bGU6Im5vbmUiLHRyYW5zaXRpb246YGJhY2tncm91bmQgJHttb3Rpb25EdXJhdGlvbk1pZH1gLG92ZXJmbG93WDoiaGlkZGVuIiwiJjo6LXdlYmtpdC1zY3JvbGxiYXIiOnt3aWR0aDo4LGJhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQifSwiJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIiOntiYWNrZ3JvdW5kQ29sb3I6dG9rZW4uY29sb3JUZXh0VGVydGlhcnksYm9yZGVyUmFkaXVzOnRva2VuLmJvcmRlclJhZGl1c1NNfSwiJiI6e3Njcm9sbGJhcldpZHRoOiJ0aGluIixzY3JvbGxiYXJDb2xvcjpgJHt0b2tlbi5jb2xvclRleHRUZXJ0aWFyeX0gdHJhbnNwYXJlbnRgfSwiJjo6YWZ0ZXIiOntkaXNwbGF5OiJibG9jayIsaGVpZ2h0OmBjYWxjKDEwMCUgLSAkeygwLGNzc2luanNfZXMuYmYpKHRpbWVDZWxsSGVpZ2h0KX0pYCxjb250ZW50OiciIid9LCImOm5vdCg6Zmlyc3QtY2hpbGQpIjp7Ym9yZGVySW5saW5lU3RhcnQ6YCR7KDAsY3NzaW5qc19lcy5iZikobGluZVdpZHRoKX0gJHtsaW5lVHlwZX0gJHtjb2xvclNwbGl0fWB9LCImLWFjdGl2ZSI6e2JhY2tncm91bmQ6bmV3IGZhc3RfY29sb3JfZXMudChjb250cm9sSXRlbUJnQWN0aXZlKS5zZXRBKC4yKS50b0hleFN0cmluZygpfSwiJjpob3ZlciI6e292ZXJmbG93WToiYXV0byJ9LCI+IGxpIjp7bWFyZ2luOjAscGFkZGluZzowLFtgJiR7Y29tcG9uZW50Q2xzfS10aW1lLXBhbmVsLWNlbGxgXTp7bWFyZ2luSW5saW5lOm1hcmdpblhYUyxbYCR7Y29tcG9uZW50Q2xzfS10aW1lLXBhbmVsLWNlbGwtaW5uZXJgXTp7ZGlzcGxheToiYmxvY2siLHdpZHRoOnRva2VuLmNhbGModGltZUNvbHVtbldpZHRoKS5zdWIodG9rZW4uY2FsYyhtYXJnaW5YWFMpLm11bCgyKSkuZXF1YWwoKSxoZWlnaHQ6dGltZUNlbGxIZWlnaHQsbWFyZ2luOjAscGFkZGluZ0Jsb2NrOjAscGFkZGluZ0lubGluZUVuZDowLHBhZGRpbmdJbmxpbmVTdGFydDp0b2tlbi5jYWxjKHRpbWVDb2x1bW5XaWR0aCkuc3ViKHRpbWVDZWxsSGVpZ2h0KS5kaXYoMikuZXF1YWwoKSxjb2xvcjpjb2xvclRleHQsbGluZUhlaWdodDooMCxjc3NpbmpzX2VzLmJmKSh0aW1lQ2VsbEhlaWdodCksYm9yZGVyUmFkaXVzOmJvcmRlclJhZGl1c1NNLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYmFja2dyb3VuZCAke21vdGlvbkR1cmF0aW9uTWlkfWAsIiY6aG92ZXIiOntiYWNrZ3JvdW5kOmNlbGxIb3ZlckJnfX0sIiYtc2VsZWN0ZWQiOntbYCR7Y29tcG9uZW50Q2xzfS10aW1lLXBhbmVsLWNlbGwtaW5uZXJgXTp7YmFja2dyb3VuZDpjb250cm9sSXRlbUJnQWN0aXZlfX0sIiYtZGlzYWJsZWQiOntbYCR7Y29tcG9uZW50Q2xzfS10aW1lLXBhbmVsLWNlbGwtaW5uZXJgXTp7Y29sb3I6Y29sb3JUZXh0RGlzYWJsZWQsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGN1cnNvcjoibm90LWFsbG93ZWQifX19fX19fX19LGdlblBpY2tlclBhbmVsU3R5bGU9dG9rZW49PntsZXR7Y29tcG9uZW50Q2xzLHRleHRIZWlnaHQsbGluZVdpZHRoLHBhZGRpbmdTTSxhbnRDbHMsY29sb3JQcmltYXJ5LGNlbGxBY3RpdmVXaXRoUmFuZ2VCZyxjb2xvclByaW1hcnlCb3JkZXIsbGluZVR5cGUsY29sb3JTcGxpdH09dG9rZW47cmV0dXJue1tgJHtjb21wb25lbnRDbHN9LWRyb3Bkb3duYF06e1tgJHtjb21wb25lbnRDbHN9LWZvb3RlcmBdOntib3JkZXJUb3A6YCR7KDAsY3NzaW5qc19lcy5iZikobGluZVdpZHRoKX0gJHtsaW5lVHlwZX0gJHtjb2xvclNwbGl0fWAsIiYtZXh0cmEiOntwYWRkaW5nOmAwICR7KDAsY3NzaW5qc19lcy5iZikocGFkZGluZ1NNKX1gLGxpbmVIZWlnaHQ6KDAsY3NzaW5qc19lcy5iZikodG9rZW4uY2FsYyh0ZXh0SGVpZ2h0KS5zdWIodG9rZW4uY2FsYyhsaW5lV2lkdGgpLm11bCgyKSkuZXF1YWwoKSksdGV4dEFsaWduOiJzdGFydCIsIiY6bm90KDpsYXN0LWNoaWxkKSI6e2JvcmRlckJvdHRvbTpgJHsoMCxjc3NpbmpzX2VzLmJmKShsaW5lV2lkdGgpfSAke2xpbmVUeXBlfSAke2NvbG9yU3BsaXR9YH19fSxbYCR7Y29tcG9uZW50Q2xzfS1wYW5lbHMgKyAke2NvbXBvbmVudENsc30tZm9vdGVyICR7Y29tcG9uZW50Q2xzfS1yYW5nZXNgXTp7anVzdGlmeUNvbnRlbnQ6InNwYWNlLWJldHdlZW4ifSxbYCR7Y29tcG9uZW50Q2xzfS1yYW5nZXNgXTp7bWFyZ2luQmxvY2s6MCxwYWRkaW5nSW5saW5lOigwLGNzc2luanNfZXMuYmYpKHBhZGRpbmdTTSksb3ZlcmZsb3c6ImhpZGRlbiIsdGV4dEFsaWduOiJzdGFydCIsbGlzdFN0eWxlOiJub25lIixkaXNwbGF5OiJmbGV4IixqdXN0aWZ5Q29udGVudDoiY2VudGVyIixhbGlnbkl0ZW1zOiJjZW50ZXIiLCI+IGxpIjp7bGluZUhlaWdodDooMCxjc3NpbmpzX2VzLmJmKSh0b2tlbi5jYWxjKHRleHRIZWlnaHQpLnN1Yih0b2tlbi5jYWxjKGxpbmVXaWR0aCkubXVsKDIpKS5lcXVhbCgpKSxkaXNwbGF5OiJpbmxpbmUtYmxvY2sifSxbYCR7Y29tcG9uZW50Q2xzfS1ub3ctYnRuLWRpc2FibGVkYF06e3BvaW50ZXJFdmVudHM6Im5vbmUiLGNvbG9yOnRva2VuLmNvbG9yVGV4dERpc2FibGVkfSxbYCR7Y29tcG9uZW50Q2xzfS1wcmVzZXQgPiAke2FudENsc30tdGFnLWJsdWVgXTp7Y29sb3I6Y29sb3JQcmltYXJ5LGJhY2tncm91bmQ6Y2VsbEFjdGl2ZVdpdGhSYW5nZUJnLGJvcmRlckNvbG9yOmNvbG9yUHJpbWFyeUJvcmRlcixjdXJzb3I6InBvaW50ZXIifSxbYCR7Y29tcG9uZW50Q2xzfS1va2BdOntwYWRkaW5nQmxvY2s6dG9rZW4uY2FsYyhsaW5lV2lkdGgpLm11bCgyKS5lcXVhbCgpLG1hcmdpbklubGluZVN0YXJ0OiJhdXRvIn19fX19LGluaXRQaWNrZXJQYW5lbFRva2VuPXRva2VuPT57bGV0e2NvbXBvbmVudENscyxjb250cm9sSGVpZ2h0TEcscGFkZGluZ1hYUyxwYWRkaW5nfT10b2tlbjtyZXR1cm57cGlja2VyQ2VsbENsczpgJHtjb21wb25lbnRDbHN9LWNlbGxgLHBpY2tlckNlbGxJbm5lckNsczpgJHtjb21wb25lbnRDbHN9LWNlbGwtaW5uZXJgLHBpY2tlclllYXJNb250aENlbGxXaWR0aDp0b2tlbi5jYWxjKGNvbnRyb2xIZWlnaHRMRykubXVsKDEuNSkuZXF1YWwoKSxwaWNrZXJRdWFydGVyUGFuZWxDb250ZW50SGVpZ2h0OnRva2VuLmNhbGMoY29udHJvbEhlaWdodExHKS5tdWwoMS40KS5lcXVhbCgpLHBpY2tlckNlbGxQYWRkaW5nVmVydGljYWw6dG9rZW4uY2FsYyhwYWRkaW5nWFhTKS5hZGQodG9rZW4uY2FsYyhwYWRkaW5nWFhTKS5kaXYoMikpLmVxdWFsKCkscGlja2VyQ2VsbEJvcmRlckdhcDoyLHBpY2tlckNvbnRyb2xJY29uU2l6ZTo3LHBpY2tlckNvbnRyb2xJY29uTWFyZ2luOjQscGlja2VyQ29udHJvbEljb25Cb3JkZXJXaWR0aDoxLjUscGlja2VyRGF0ZVBhbmVsUGFkZGluZ0hvcml6b250YWw6dG9rZW4uY2FsYyhwYWRkaW5nKS5hZGQodG9rZW4uY2FsYyhwYWRkaW5nWFhTKS5kaXYoMikpLmVxdWFsKCl9fSxpbml0UGFuZWxDb21wb25lbnRUb2tlbj10b2tlbj0+e2xldHtjb2xvckJnQ29udGFpbmVyRGlzYWJsZWQsY29udHJvbEhlaWdodCxjb250cm9sSGVpZ2h0U00sY29udHJvbEhlaWdodExHLHBhZGRpbmdYWFMsbGluZVdpZHRofT10b2tlbixkYmxQYWRkaW5nWFhTPTIqcGFkZGluZ1hYUyxkYmxMaW5lV2lkdGg9MipsaW5lV2lkdGgsZmlsbGVkVG9rZW49e0lOVEVSTkFMX0ZJWEVEX0lURU1fTUFSR0lOOk1hdGguZmxvb3IocGFkZGluZ1hYUy8yKSxjZWxsSG92ZXJCZzp0b2tlbi5jb250cm9sSXRlbUJnSG92ZXIsY2VsbEFjdGl2ZVdpdGhSYW5nZUJnOnRva2VuLmNvbnRyb2xJdGVtQmdBY3RpdmUsY2VsbEhvdmVyV2l0aFJhbmdlQmc6bmV3IGZhc3RfY29sb3JfZXMudCh0b2tlbi5jb2xvclByaW1hcnkpLmxpZ2h0ZW4oMzUpLnRvSGV4U3RyaW5nKCksY2VsbFJhbmdlQm9yZGVyQ29sb3I6bmV3IGZhc3RfY29sb3JfZXMudCh0b2tlbi5jb2xvclByaW1hcnkpLmxpZ2h0ZW4oMjApLnRvSGV4U3RyaW5nKCksY2VsbEJnRGlzYWJsZWQ6Y29sb3JCZ0NvbnRhaW5lckRpc2FibGVkLHRpbWVDb2x1bW5XaWR0aDoxLjQqY29udHJvbEhlaWdodExHLHRpbWVDb2x1bW5IZWlnaHQ6MjI0LHRpbWVDZWxsSGVpZ2h0OjI4LGNlbGxXaWR0aDoxLjUqY29udHJvbEhlaWdodFNNLGNlbGxIZWlnaHQ6Y29udHJvbEhlaWdodFNNLHRleHRIZWlnaHQ6Y29udHJvbEhlaWdodExHLHdpdGhvdXRUaW1lQ2VsbEhlaWdodDoxLjY1KmNvbnRyb2xIZWlnaHRMRyxtdWx0aXBsZUl0ZW1CZzp0b2tlbi5jb2xvckZpbGxTZWNvbmRhcnksbXVsdGlwbGVJdGVtQm9yZGVyQ29sb3I6InRyYW5zcGFyZW50IixtdWx0aXBsZUl0ZW1IZWlnaHQ6TWF0aC5taW4oY29udHJvbEhlaWdodC1kYmxQYWRkaW5nWFhTLGNvbnRyb2xIZWlnaHQtZGJsTGluZVdpZHRoKSxtdWx0aXBsZUl0ZW1IZWlnaHRTTTpNYXRoLm1pbihjb250cm9sSGVpZ2h0U00tZGJsUGFkZGluZ1hYUyxjb250cm9sSGVpZ2h0U00tZGJsTGluZVdpZHRoKSxtdWx0aXBsZUl0ZW1IZWlnaHRMRzpNYXRoLm1pbihjb250cm9sSGVpZ2h0TEctZGJsUGFkZGluZ1hYUyxjb250cm9sSGVpZ2h0TEctZGJsTGluZVdpZHRoKSxtdWx0aXBsZVNlbGVjdG9yQmdEaXNhYmxlZDpjb2xvckJnQ29udGFpbmVyRGlzYWJsZWQsbXVsdGlwbGVJdGVtQ29sb3JEaXNhYmxlZDp0b2tlbi5jb2xvclRleHREaXNhYmxlZCxtdWx0aXBsZUl0ZW1Cb3JkZXJDb2xvckRpc2FibGVkOiJ0cmFuc3BhcmVudCJ9O3JldHVybiBmaWxsZWRUb2tlbn0scHJlcGFyZUNvbXBvbmVudFRva2VuPXRva2VuPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLHN0eWxlX3Rva2VuLlQpKHRva2VuKSksaW5pdFBhbmVsQ29tcG9uZW50VG9rZW4odG9rZW4pKSwoMCxyb3VuZGVkQXJyb3cudykodG9rZW4pKSx7cHJlc2V0c1dpZHRoOjEyMCxwcmVzZXRzTWF4V2lkdGg6MjAwLHpJbmRleFBvcHVwOnRva2VuLnpJbmRleFBvcHVwQmFzZSs1MH0pO3ZhciB2YXJpYW50cz1fX3dlYnBhY2tfcmVxdWlyZV9fKDkzOTAwKTtsZXQgZ2VuVmFyaWFudHNTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHN9PXRva2VuO3JldHVybntbY29tcG9uZW50Q2xzXTpbT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCx2YXJpYW50cy5xRykodG9rZW4pKSwoMCx2YXJpYW50cy52YykodG9rZW4pKSwoMCx2YXJpYW50cy5IOCkodG9rZW4pKSwoMCx2YXJpYW50cy5NdSkodG9rZW4pKSx7IiYtb3V0bGluZWQiOntbYCYke2NvbXBvbmVudENsc30tbXVsdGlwbGUgJHtjb21wb25lbnRDbHN9LXNlbGVjdGlvbi1pdGVtYF06e2JhY2tncm91bmQ6dG9rZW4ubXVsdGlwbGVJdGVtQmcsYm9yZGVyOmAkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLmxpbmVXaWR0aCl9ICR7dG9rZW4ubGluZVR5cGV9ICR7dG9rZW4ubXVsdGlwbGVJdGVtQm9yZGVyQ29sb3J9YH19LCImLWZpbGxlZCI6e1tgJiR7Y29tcG9uZW50Q2xzfS1tdWx0aXBsZSAke2NvbXBvbmVudENsc30tc2VsZWN0aW9uLWl0ZW1gXTp7YmFja2dyb3VuZDp0b2tlbi5jb2xvckJnQ29udGFpbmVyLGJvcmRlcjpgJHsoMCxjc3NpbmpzX2VzLmJmKSh0b2tlbi5saW5lV2lkdGgpfSAke3Rva2VuLmxpbmVUeXBlfSAke3Rva2VuLmNvbG9yU3BsaXR9YH19LCImLWJvcmRlcmxlc3MiOntbYCYke2NvbXBvbmVudENsc30tbXVsdGlwbGUgJHtjb21wb25lbnRDbHN9LXNlbGVjdGlvbi1pdGVtYF06e2JhY2tncm91bmQ6dG9rZW4ubXVsdGlwbGVJdGVtQmcsYm9yZGVyOmAkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLmxpbmVXaWR0aCl9ICR7dG9rZW4ubGluZVR5cGV9ICR7dG9rZW4ubXVsdGlwbGVJdGVtQm9yZGVyQ29sb3J9YH19LCImLXVuZGVybGluZWQiOntbYCYke2NvbXBvbmVudENsc30tbXVsdGlwbGUgJHtjb21wb25lbnRDbHN9LXNlbGVjdGlvbi1pdGVtYF06e2JhY2tncm91bmQ6dG9rZW4ubXVsdGlwbGVJdGVtQmcsYm9yZGVyOmAkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLmxpbmVXaWR0aCl9ICR7dG9rZW4ubGluZVR5cGV9ICR7dG9rZW4ubXVsdGlwbGVJdGVtQm9yZGVyQ29sb3J9YH19fV19fSxnZW5QaWNrZXJQYWRkaW5nPSh0b2tlbixpbnB1dEhlaWdodCxmb250SGVpZ2h0LHBhZGRpbmdIb3Jpem9udGFsKT0+e2xldCBoZWlnaHQ9dG9rZW4uY2FsYyhmb250SGVpZ2h0KS5hZGQoMikuZXF1YWwoKSxwYWRkaW5nVG9wPXRva2VuLm1heCh0b2tlbi5jYWxjKGlucHV0SGVpZ2h0KS5zdWIoaGVpZ2h0KS5kaXYoMikuZXF1YWwoKSwwKSxwYWRkaW5nQm90dG9tPXRva2VuLm1heCh0b2tlbi5jYWxjKGlucHV0SGVpZ2h0KS5zdWIoaGVpZ2h0KS5zdWIocGFkZGluZ1RvcCkuZXF1YWwoKSwwKTtyZXR1cm57cGFkZGluZzpgJHsoMCxjc3NpbmpzX2VzLmJmKShwYWRkaW5nVG9wKX0gJHsoMCxjc3NpbmpzX2VzLmJmKShwYWRkaW5nSG9yaXpvbnRhbCl9ICR7KDAsY3NzaW5qc19lcy5iZikocGFkZGluZ0JvdHRvbSl9YH19LGdlblBpY2tlclN0YXR1c1N0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENscyxjb2xvckVycm9yLGNvbG9yV2FybmluZ309dG9rZW47cmV0dXJue1tgJHtjb21wb25lbnRDbHN9Om5vdCgke2NvbXBvbmVudENsc30tZGlzYWJsZWQpOm5vdChbZGlzYWJsZWRdKWBdOntbYCYke2NvbXBvbmVudENsc30tc3RhdHVzLWVycm9yYF06e1tgJHtjb21wb25lbnRDbHN9LWFjdGl2ZS1iYXJgXTp7YmFja2dyb3VuZDpjb2xvckVycm9yfX0sW2AmJHtjb21wb25lbnRDbHN9LXN0YXR1cy13YXJuaW5nYF06e1tgJHtjb21wb25lbnRDbHN9LWFjdGl2ZS1iYXJgXTp7YmFja2dyb3VuZDpjb2xvcldhcm5pbmd9fX19fSxnZW5QaWNrZXJTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHMsYW50Q2xzLGNvbnRyb2xIZWlnaHQscGFkZGluZ0lubGluZSxsaW5lV2lkdGgsbGluZVR5cGUsY29sb3JCb3JkZXIsYm9yZGVyUmFkaXVzLG1vdGlvbkR1cmF0aW9uTWlkLGNvbG9yVGV4dERpc2FibGVkLGNvbG9yVGV4dFBsYWNlaG9sZGVyLGNvbnRyb2xIZWlnaHRMRyxmb250U2l6ZUxHLGNvbnRyb2xIZWlnaHRTTSxwYWRkaW5nSW5saW5lU00scGFkZGluZ1hTLG1hcmdpblhTLGNvbG9ySWNvbixsaW5lV2lkdGhCb2xkLGNvbG9yUHJpbWFyeSxtb3Rpb25EdXJhdGlvblNsb3csekluZGV4UG9wdXAscGFkZGluZ1hYUyxzaXplUG9wdXBBcnJvdyxjb2xvckJnRWxldmF0ZWQsYm9yZGVyUmFkaXVzTEcsYm94U2hhZG93U2Vjb25kYXJ5LGJvcmRlclJhZGl1c1NNLGNvbG9yU3BsaXQsY2VsbEhvdmVyQmcscHJlc2V0c1dpZHRoLHByZXNldHNNYXhXaWR0aCxib3hTaGFkb3dQb3BvdmVyQXJyb3csZm9udEhlaWdodCxmb250SGVpZ2h0TEcsbGluZUhlaWdodExHfT10b2tlbjtyZXR1cm5be1tjb21wb25lbnRDbHNdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLGVzX3N0eWxlLldmKSh0b2tlbikpLGdlblBpY2tlclBhZGRpbmcodG9rZW4sY29udHJvbEhlaWdodCxmb250SGVpZ2h0LHBhZGRpbmdJbmxpbmUpKSx7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJpbmxpbmUtZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixsaW5lSGVpZ2h0OjEsYm9yZGVyUmFkaXVzLHRyYW5zaXRpb246YGJvcmRlciAke21vdGlvbkR1cmF0aW9uTWlkfSwgYm94LXNoYWRvdyAke21vdGlvbkR1cmF0aW9uTWlkfSwgYmFja2dyb3VuZCAke21vdGlvbkR1cmF0aW9uTWlkfWAsW2Ake2NvbXBvbmVudENsc30tcHJlZml4YF06e2ZsZXg6IjAgMCBhdXRvIixtYXJnaW5JbmxpbmVFbmQ6dG9rZW4uaW5wdXRBZmZpeFBhZGRpbmd9LFtgJHtjb21wb25lbnRDbHN9LWlucHV0YF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiaW5saW5lLWZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsd2lkdGg6IjEwMCUiLCI+IGlucHV0IjpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiaW5saW5lLWJsb2NrIix3aWR0aDoiMTAwJSIsY29sb3I6ImluaGVyaXQiLGZvbnRTaXplOnRva2VuLmZvbnRTaXplLGxpbmVIZWlnaHQ6dG9rZW4ubGluZUhlaWdodCx0cmFuc2l0aW9uOmBhbGwgJHttb3Rpb25EdXJhdGlvbk1pZH1gfSwoMCxzdHlsZS5ueikoY29sb3JUZXh0UGxhY2Vob2xkZXIpKSx7ZmxleDoiYXV0byIsbWluV2lkdGg6MSxoZWlnaHQ6ImF1dG8iLHBhZGRpbmc6MCxiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsYm9yZGVyOjAsZm9udEZhbWlseToiaW5oZXJpdCIsIiY6Zm9jdXMiOntib3hTaGFkb3c6Im5vbmUiLG91dGxpbmU6MH0sIiZbZGlzYWJsZWRdIjp7YmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGNvbG9yOmNvbG9yVGV4dERpc2FibGVkLGN1cnNvcjoibm90LWFsbG93ZWQifX0pLCImLXBsYWNlaG9sZGVyIjp7Ij4gaW5wdXQiOntjb2xvcjpjb2xvclRleHRQbGFjZWhvbGRlcn19fSwiJi1sYXJnZSI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGdlblBpY2tlclBhZGRpbmcodG9rZW4sY29udHJvbEhlaWdodExHLGZvbnRIZWlnaHRMRyxwYWRkaW5nSW5saW5lKSkse1tgJHtjb21wb25lbnRDbHN9LWlucHV0ID4gaW5wdXRgXTp7Zm9udFNpemU6Zm9udFNpemVMRyxsaW5lSGVpZ2h0OmxpbmVIZWlnaHRMR319KSwiJi1zbWFsbCI6T2JqZWN0LmFzc2lnbih7fSxnZW5QaWNrZXJQYWRkaW5nKHRva2VuLGNvbnRyb2xIZWlnaHRTTSxmb250SGVpZ2h0LHBhZGRpbmdJbmxpbmVTTSkpLFtgJHtjb21wb25lbnRDbHN9LXN1ZmZpeGBdOntkaXNwbGF5OiJmbGV4IixmbGV4OiJub25lIixhbGlnblNlbGY6ImNlbnRlciIsbWFyZ2luSW5saW5lU3RhcnQ6dG9rZW4uY2FsYyhwYWRkaW5nWFMpLmRpdigyKS5lcXVhbCgpLGNvbG9yOmNvbG9yVGV4dERpc2FibGVkLGxpbmVIZWlnaHQ6MSxwb2ludGVyRXZlbnRzOiJub25lIix0cmFuc2l0aW9uOmBvcGFjaXR5ICR7bW90aW9uRHVyYXRpb25NaWR9LCBjb2xvciAke21vdGlvbkR1cmF0aW9uTWlkfWAsIj4gKiI6e3ZlcnRpY2FsQWxpZ246InRvcCIsIiY6bm90KDpsYXN0LWNoaWxkKSI6e21hcmdpbklubGluZUVuZDptYXJnaW5YU319fSxbYCR7Y29tcG9uZW50Q2xzfS1jbGVhcmBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDoiNTAlIixpbnNldElubGluZUVuZDowLGNvbG9yOmNvbG9yVGV4dERpc2FibGVkLGxpbmVIZWlnaHQ6MSx0cmFuc2Zvcm06InRyYW5zbGF0ZVkoLTUwJSkiLGN1cnNvcjoicG9pbnRlciIsb3BhY2l0eTowLHRyYW5zaXRpb246YG9wYWNpdHkgJHttb3Rpb25EdXJhdGlvbk1pZH0sIGNvbG9yICR7bW90aW9uRHVyYXRpb25NaWR9YCwiPiAqIjp7dmVydGljYWxBbGlnbjoidG9wIn0sIiY6aG92ZXIiOntjb2xvcjpjb2xvckljb259fSwiJjpob3ZlciI6e1tgJHtjb21wb25lbnRDbHN9LWNsZWFyYF06e29wYWNpdHk6MX0sW2Ake2NvbXBvbmVudENsc30tc3VmZml4Om5vdCg6bGFzdC1jaGlsZClgXTp7b3BhY2l0eTowfX0sW2Ake2NvbXBvbmVudENsc30tc2VwYXJhdG9yYF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiaW5saW5lLWJsb2NrIix3aWR0aDoiMWVtIixoZWlnaHQ6Zm9udFNpemVMRyxjb2xvcjpjb2xvclRleHREaXNhYmxlZCxmb250U2l6ZTpmb250U2l6ZUxHLHZlcnRpY2FsQWxpZ246InRvcCIsY3Vyc29yOiJkZWZhdWx0IixbYCR7Y29tcG9uZW50Q2xzfS1mb2N1c2VkICZgXTp7Y29sb3I6Y29sb3JJY29ufSxbYCR7Y29tcG9uZW50Q2xzfS1yYW5nZS1zZXBhcmF0b3IgJmBdOntbYCR7Y29tcG9uZW50Q2xzfS1kaXNhYmxlZCAmYF06e2N1cnNvcjoibm90LWFsbG93ZWQifX19LCImLXJhbmdlIjp7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJpbmxpbmUtZmxleCIsW2Ake2NvbXBvbmVudENsc30tYWN0aXZlLWJhcmBdOntib3R0b206dG9rZW4uY2FsYyhsaW5lV2lkdGgpLm11bCgtMSkuZXF1YWwoKSxoZWlnaHQ6bGluZVdpZHRoQm9sZCxiYWNrZ3JvdW5kOmNvbG9yUHJpbWFyeSxvcGFjaXR5OjAsdHJhbnNpdGlvbjpgYWxsICR7bW90aW9uRHVyYXRpb25TbG93fSBlYXNlLW91dGAscG9pbnRlckV2ZW50czoibm9uZSJ9LFtgJiR7Y29tcG9uZW50Q2xzfS1mb2N1c2VkYF06e1tgJHtjb21wb25lbnRDbHN9LWFjdGl2ZS1iYXJgXTp7b3BhY2l0eToxfX0sW2Ake2NvbXBvbmVudENsc30tcmFuZ2Utc2VwYXJhdG9yYF06e2FsaWduSXRlbXM6ImNlbnRlciIscGFkZGluZzpgMCAkeygwLGNzc2luanNfZXMuYmYpKHBhZGRpbmdYUyl9YCxsaW5lSGVpZ2h0OjF9fSwiJi1yYW5nZSwgJi1tdWx0aXBsZSI6e1tgJHtjb21wb25lbnRDbHN9LWNsZWFyYF06e2luc2V0SW5saW5lRW5kOnBhZGRpbmdJbmxpbmV9LFtgJiR7Y29tcG9uZW50Q2xzfS1zbWFsbGBdOntbYCR7Y29tcG9uZW50Q2xzfS1jbGVhcmBdOntpbnNldElubGluZUVuZDpwYWRkaW5nSW5saW5lU019fX0sIiYtZHJvcGRvd24iOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLGVzX3N0eWxlLldmKSh0b2tlbikpLGdlblBhbmVsU3R5bGUodG9rZW4pKSx7cG9pbnRlckV2ZW50czoibm9uZSIscG9zaXRpb246ImFic29sdXRlIix0b3A6LTk5OTksbGVmdDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOi05OTk5fSx6SW5kZXg6ekluZGV4UG9wdXAsW2AmJHtjb21wb25lbnRDbHN9LWRyb3Bkb3duLWhpZGRlbmBdOntkaXNwbGF5OiJub25lIn0sIiYtcnRsIjp7ZGlyZWN0aW9uOiJydGwifSxbYCYke2NvbXBvbmVudENsc30tZHJvcGRvd24tcGxhY2VtZW50LWJvdHRvbUxlZnQsCiAgICAgICAgICAgICYke2NvbXBvbmVudENsc30tZHJvcGRvd24tcGxhY2VtZW50LWJvdHRvbVJpZ2h0YF06e1tgJHtjb21wb25lbnRDbHN9LXJhbmdlLWFycm93YF06e3RvcDowLGRpc3BsYXk6ImJsb2NrIix0cmFuc2Zvcm06InRyYW5zbGF0ZVkoLTEwMCUpIn19LFtgJiR7Y29tcG9uZW50Q2xzfS1kcm9wZG93bi1wbGFjZW1lbnQtdG9wTGVmdCwKICAgICAgICAgICAgJiR7Y29tcG9uZW50Q2xzfS1kcm9wZG93bi1wbGFjZW1lbnQtdG9wUmlnaHRgXTp7W2Ake2NvbXBvbmVudENsc30tcmFuZ2UtYXJyb3dgXTp7Ym90dG9tOjAsZGlzcGxheToiYmxvY2siLHRyYW5zZm9ybToidHJhbnNsYXRlWSgxMDAlKSByb3RhdGUoMTgwZGVnKSJ9fSxbYCYke2FudENsc30tc2xpZGUtdXAtYXBwZWFyLCAmJHthbnRDbHN9LXNsaWRlLXVwLWVudGVyYF06e1tgJHtjb21wb25lbnRDbHN9LXJhbmdlLWFycm93JHtjb21wb25lbnRDbHN9LXJhbmdlLWFycm93YF06e3RyYW5zaXRpb246Im5vbmUifX0sW2AmJHthbnRDbHN9LXNsaWRlLXVwLWVudGVyJHthbnRDbHN9LXNsaWRlLXVwLWVudGVyLWFjdGl2ZSR7Y29tcG9uZW50Q2xzfS1kcm9wZG93bi1wbGFjZW1lbnQtdG9wTGVmdCwKICAgICAgICAgICYke2FudENsc30tc2xpZGUtdXAtZW50ZXIke2FudENsc30tc2xpZGUtdXAtZW50ZXItYWN0aXZlJHtjb21wb25lbnRDbHN9LWRyb3Bkb3duLXBsYWNlbWVudC10b3BSaWdodCwKICAgICAgICAgICYke2FudENsc30tc2xpZGUtdXAtYXBwZWFyJHthbnRDbHN9LXNsaWRlLXVwLWFwcGVhci1hY3RpdmUke2NvbXBvbmVudENsc30tZHJvcGRvd24tcGxhY2VtZW50LXRvcExlZnQsCiAgICAgICAgICAmJHthbnRDbHN9LXNsaWRlLXVwLWFwcGVhciR7YW50Q2xzfS1zbGlkZS11cC1hcHBlYXItYWN0aXZlJHtjb21wb25lbnRDbHN9LWRyb3Bkb3duLXBsYWNlbWVudC10b3BSaWdodGBdOnthbmltYXRpb25OYW1lOnNsaWRlLlF0fSxbYCYke2FudENsc30tc2xpZGUtdXAtZW50ZXIke2FudENsc30tc2xpZGUtdXAtZW50ZXItYWN0aXZlJHtjb21wb25lbnRDbHN9LWRyb3Bkb3duLXBsYWNlbWVudC1ib3R0b21MZWZ0LAogICAgICAgICAgJiR7YW50Q2xzfS1zbGlkZS11cC1lbnRlciR7YW50Q2xzfS1zbGlkZS11cC1lbnRlci1hY3RpdmUke2NvbXBvbmVudENsc30tZHJvcGRvd24tcGxhY2VtZW50LWJvdHRvbVJpZ2h0LAogICAgICAgICAgJiR7YW50Q2xzfS1zbGlkZS11cC1hcHBlYXIke2FudENsc30tc2xpZGUtdXAtYXBwZWFyLWFjdGl2ZSR7Y29tcG9uZW50Q2xzfS1kcm9wZG93bi1wbGFjZW1lbnQtYm90dG9tTGVmdCwKICAgICAgICAgICYke2FudENsc30tc2xpZGUtdXAtYXBwZWFyJHthbnRDbHN9LXNsaWRlLXVwLWFwcGVhci1hY3RpdmUke2NvbXBvbmVudENsc30tZHJvcGRvd24tcGxhY2VtZW50LWJvdHRvbVJpZ2h0YF06e2FuaW1hdGlvbk5hbWU6c2xpZGUuZkp9LFtgJiR7YW50Q2xzfS1zbGlkZS11cC1sZWF2ZSAke2NvbXBvbmVudENsc30tcGFuZWwtY29udGFpbmVyYF06e3BvaW50ZXJFdmVudHM6Im5vbmUifSxbYCYke2FudENsc30tc2xpZGUtdXAtbGVhdmUke2FudENsc30tc2xpZGUtdXAtbGVhdmUtYWN0aXZlJHtjb21wb25lbnRDbHN9LWRyb3Bkb3duLXBsYWNlbWVudC10b3BMZWZ0LAogICAgICAgICAgJiR7YW50Q2xzfS1zbGlkZS11cC1sZWF2ZSR7YW50Q2xzfS1zbGlkZS11cC1sZWF2ZS1hY3RpdmUke2NvbXBvbmVudENsc30tZHJvcGRvd24tcGxhY2VtZW50LXRvcFJpZ2h0YF06e2FuaW1hdGlvbk5hbWU6c2xpZGUubHl9LFtgJiR7YW50Q2xzfS1zbGlkZS11cC1sZWF2ZSR7YW50Q2xzfS1zbGlkZS11cC1sZWF2ZS1hY3RpdmUke2NvbXBvbmVudENsc30tZHJvcGRvd24tcGxhY2VtZW50LWJvdHRvbUxlZnQsCiAgICAgICAgICAmJHthbnRDbHN9LXNsaWRlLXVwLWxlYXZlJHthbnRDbHN9LXNsaWRlLXVwLWxlYXZlLWFjdGl2ZSR7Y29tcG9uZW50Q2xzfS1kcm9wZG93bi1wbGFjZW1lbnQtYm90dG9tUmlnaHRgXTp7YW5pbWF0aW9uTmFtZTpzbGlkZS5Vd30sW2Ake2NvbXBvbmVudENsc30tcGFuZWwgPiAke2NvbXBvbmVudENsc30tdGltZS1wYW5lbGBdOntwYWRkaW5nVG9wOnBhZGRpbmdYWFN9LFtgJHtjb21wb25lbnRDbHN9LXJhbmdlLXdyYXBwZXJgXTp7ZGlzcGxheToiZmxleCIscG9zaXRpb246InJlbGF0aXZlIn0sW2Ake2NvbXBvbmVudENsc30tcmFuZ2UtYXJyb3dgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsekluZGV4OjEsZGlzcGxheToibm9uZSIscGFkZGluZ0lubGluZTp0b2tlbi5jYWxjKHBhZGRpbmdJbmxpbmUpLm11bCgxLjUpLmVxdWFsKCksYm94U2l6aW5nOiJjb250ZW50LWJveCIsdHJhbnNpdGlvbjpgYWxsICR7bW90aW9uRHVyYXRpb25TbG93fSBlYXNlLW91dGB9LCgwLHJvdW5kZWRBcnJvdy5XKSh0b2tlbixjb2xvckJnRWxldmF0ZWQsYm94U2hhZG93UG9wb3ZlckFycm93KSkseyImOmJlZm9yZSI6e2luc2V0SW5saW5lU3RhcnQ6dG9rZW4uY2FsYyhwYWRkaW5nSW5saW5lKS5tdWwoMS41KS5lcXVhbCgpfX0pLFtgJHtjb21wb25lbnRDbHN9LXBhbmVsLWNvbnRhaW5lcmBdOntvdmVyZmxvdzoiaGlkZGVuIix2ZXJ0aWNhbEFsaWduOiJ0b3AiLGJhY2tncm91bmQ6Y29sb3JCZ0VsZXZhdGVkLGJvcmRlclJhZGl1czpib3JkZXJSYWRpdXNMRyxib3hTaGFkb3c6Ym94U2hhZG93U2Vjb25kYXJ5LHRyYW5zaXRpb246YG1hcmdpbiAke21vdGlvbkR1cmF0aW9uU2xvd31gLGRpc3BsYXk6ImlubGluZS1ibG9jayIscG9pbnRlckV2ZW50czoiYXV0byIsW2Ake2NvbXBvbmVudENsc30tcGFuZWwtbGF5b3V0YF06e2Rpc3BsYXk6ImZsZXgiLGZsZXhXcmFwOiJub3dyYXAiLGFsaWduSXRlbXM6InN0cmV0Y2gifSxbYCR7Y29tcG9uZW50Q2xzfS1wcmVzZXRzYF06e2Rpc3BsYXk6ImZsZXgiLGZsZXhEaXJlY3Rpb246ImNvbHVtbiIsbWluV2lkdGg6cHJlc2V0c1dpZHRoLG1heFdpZHRoOnByZXNldHNNYXhXaWR0aCx1bDp7aGVpZ2h0OjAsZmxleDoiYXV0byIsbGlzdFN0eWxlOiJub25lIixvdmVyZmxvdzoiYXV0byIsbWFyZ2luOjAscGFkZGluZzpwYWRkaW5nWFMsYm9yZGVySW5saW5lRW5kOmAkeygwLGNzc2luanNfZXMuYmYpKGxpbmVXaWR0aCl9ICR7bGluZVR5cGV9ICR7Y29sb3JTcGxpdH1gLGxpOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlc19zdHlsZS52Uykse2JvcmRlclJhZGl1czpib3JkZXJSYWRpdXNTTSxwYWRkaW5nSW5saW5lOnBhZGRpbmdYUyxwYWRkaW5nQmxvY2s6dG9rZW4uY2FsYyhjb250cm9sSGVpZ2h0U00pLnN1Yihmb250SGVpZ2h0KS5kaXYoMikuZXF1YWwoKSxjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGFsbCAke21vdGlvbkR1cmF0aW9uU2xvd31gLCIrIGxpIjp7bWFyZ2luVG9wOm1hcmdpblhTfSwiJjpob3ZlciI6e2JhY2tncm91bmQ6Y2VsbEhvdmVyQmd9fSl9fSxbYCR7Y29tcG9uZW50Q2xzfS1wYW5lbHNgXTp7ZGlzcGxheToiaW5saW5lLWZsZXgiLGZsZXhXcmFwOiJub3dyYXAiLCImOmxhc3QtY2hpbGQiOntbYCR7Y29tcG9uZW50Q2xzfS1wYW5lbGBdOntib3JkZXJXaWR0aDowfX19LFtgJHtjb21wb25lbnRDbHN9LXBhbmVsYF06e3ZlcnRpY2FsQWxpZ246InRvcCIsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGJvcmRlclJhZGl1czowLGJvcmRlcldpZHRoOjAsW2Ake2NvbXBvbmVudENsc30tY29udGVudCwgdGFibGVgXTp7dGV4dEFsaWduOiJjZW50ZXIifSwiJi1mb2N1c2VkIjp7Ym9yZGVyQ29sb3I6Y29sb3JCb3JkZXJ9fX19KSwiJi1kcm9wZG93bi1yYW5nZSI6e3BhZGRpbmc6YCR7KDAsY3NzaW5qc19lcy5iZikodG9rZW4uY2FsYyhzaXplUG9wdXBBcnJvdykubXVsKDIpLmRpdigzKS5lcXVhbCgpKX0gMGAsIiYtaGlkZGVuIjp7ZGlzcGxheToibm9uZSJ9fSwiJi1ydGwiOntkaXJlY3Rpb246InJ0bCIsW2Ake2NvbXBvbmVudENsc30tc2VwYXJhdG9yYF06e3RyYW5zZm9ybToic2NhbGUoLTEsIDEpIn0sW2Ake2NvbXBvbmVudENsc30tZm9vdGVyYF06eyImLWV4dHJhIjp7ZGlyZWN0aW9uOiJydGwifX19fSl9LCgwLHNsaWRlLm9OKSh0b2tlbiwic2xpZGUtdXAiKSwoMCxzbGlkZS5vTikodG9rZW4sInNsaWRlLWRvd24iKSwoMCxtb3ZlLkZtKSh0b2tlbiwibW92ZS11cCIpLCgwLG1vdmUuRm0pKHRva2VuLCJtb3ZlLWRvd24iKV19O3ZhciBkYXRlX3BpY2tlcl9zdHlsZT0oMCxnZW5TdHlsZVV0aWxzLkkkKSgiRGF0ZVBpY2tlciIsdG9rZW49PntsZXQgcGlja2VyVG9rZW49KDAsY3NzaW5qc191dGlsc19lcy5JWCkoKDAsc3R5bGVfdG9rZW4uZSkodG9rZW4pLGluaXRQaWNrZXJQYW5lbFRva2VuKHRva2VuKSx7aW5wdXRQYWRkaW5nSG9yaXpvbnRhbEJhc2U6dG9rZW4uY2FsYyh0b2tlbi5wYWRkaW5nU00pLnN1YigxKS5lcXVhbCgpLG11bHRpcGxlU2VsZWN0SXRlbUhlaWdodDp0b2tlbi5tdWx0aXBsZUl0ZW1IZWlnaHQsc2VsZWN0SGVpZ2h0OnRva2VuLmNvbnRyb2xIZWlnaHR9KTtyZXR1cm5bZ2VuUGlja2VyUGFuZWxTdHlsZShwaWNrZXJUb2tlbiksZ2VuUGlja2VyU3R5bGUocGlja2VyVG9rZW4pLGdlblZhcmlhbnRzU3R5bGUocGlja2VyVG9rZW4pLGdlblBpY2tlclN0YXR1c1N0eWxlKHBpY2tlclRva2VuKSxnZW5QaWNrZXJNdWx0aXBsZVN0eWxlKHBpY2tlclRva2VuKSwoMCxjb21wYWN0X2l0ZW0uYykodG9rZW4se2ZvY3VzRWxDbHM6YCR7dG9rZW4uY29tcG9uZW50Q2xzfS1mb2N1c2VkYH0pXX0scHJlcGFyZUNvbXBvbmVudFRva2VuKSx1c2VJY29ucz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQzMjc3KTtmdW5jdGlvbiB1dGlsX3VzZUljb25zKHByb3BzLHByZWZpeENscyl7bGV0e2FsbG93Q2xlYXI9ITB9PXByb3BzLHtjbGVhckljb24scmVtb3ZlSWNvbn09KDAsdXNlSWNvbnMuWikoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHByb3BzKSx7cHJlZml4Q2xzLGNvbXBvbmVudE5hbWU6IkRhdGVQaWNrZXIifSkpLG1lcmdlZEFsbG93Q2xlYXI9cmVhY3QudXNlTWVtbygoKT0+ITEhPT1hbGxvd0NsZWFyJiZPYmplY3QuYXNzaWduKHtjbGVhckljb246Y2xlYXJJY29ufSwhMD09PWFsbG93Q2xlYXI/e306YWxsb3dDbGVhciksW2FsbG93Q2xlYXIsY2xlYXJJY29uXSk7cmV0dXJuW21lcmdlZEFsbG93Q2xlYXIscmVtb3ZlSWNvbl19bGV0W1dFRUssV0VFS1BJQ0tFUl09WyJ3ZWVrIiwiV2Vla1BpY2tlciJdLFtNT05USCxNT05USFBJQ0tFUl09WyJtb250aCIsIk1vbnRoUGlja2VyIl0sW1lFQVIsWUVBUlBJQ0tFUl09WyJ5ZWFyIiwiWWVhclBpY2tlciJdLFtRVUFSVEVSLFFVQVJURVJQSUNLRVJdPVsicXVhcnRlciIsIlF1YXJ0ZXJQaWNrZXIiXSxbVElNRSxUSU1FUElDS0VSXT1bInRpbWUiLCJUaW1lUGlja2VyIl07dmFyIGVzX2J1dHRvbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDgwNDQ3KTtsZXQgUGlja2VyQnV0dG9uPXByb3BzPT5yZWFjdC5jcmVhdGVFbGVtZW50KGVzX2J1dHRvbi5aUCxPYmplY3QuYXNzaWduKHtzaXplOiJzbWFsbCIsdHlwZToicHJpbWFyeSJ9LHByb3BzKSk7ZnVuY3Rpb24gdXNlQ29tcG9uZW50cyhjb21wb25lbnRzKXtyZXR1cm4oMCxyZWFjdC51c2VNZW1vKSgoKT0+T2JqZWN0LmFzc2lnbih7YnV0dG9uOlBpY2tlckJ1dHRvbn0sY29tcG9uZW50cyksW2NvbXBvbmVudHNdKX12YXIgdG9Db25zdW1hYmxlQXJyYXk9X193ZWJwYWNrX3JlcXVpcmVfXyg3NTE3Nyk7ZnVuY3Rpb24gdXNlU2VtYW50aWNDbGFzc05hbWVzKHNjaGVtYSl7Zm9yKHZhciBfbGVuMj1hcmd1bWVudHMubGVuZ3RoLGNsYXNzTmFtZXM9QXJyYXkoX2xlbjI+MT9fbGVuMi0xOjApLF9rZXkyPTE7X2tleTI8X2xlbjI7X2tleTIrKyljbGFzc05hbWVzW19rZXkyLTFdPWFyZ3VtZW50c1tfa2V5Ml07cmV0dXJuIHJlYWN0LnVzZU1lbW8oKCk9PihmdW5jdGlvbiBtZXJnZUNsYXNzTmFtZXMoc2NoZW1hKXtsZXQgbWVyZ2VkU2NoZW1hPXNjaGVtYXx8e307Zm9yKHZhciBfbGVuPWFyZ3VtZW50cy5sZW5ndGgsY2xhc3NOYW1lcz1BcnJheShfbGVuPjE/X2xlbi0xOjApLF9rZXk9MTtfa2V5PF9sZW47X2tleSsrKWNsYXNzTmFtZXNbX2tleS0xXT1hcmd1bWVudHNbX2tleV07cmV0dXJuIGNsYXNzTmFtZXMucmVkdWNlKChhY2MsY3VyKT0+KE9iamVjdC5rZXlzKGN1cnx8e30pLmZvckVhY2goa2V5PT57bGV0IGtleVNjaGVtYT1tZXJnZWRTY2hlbWFba2V5XSxjdXJWYWw9Y3VyW2tleV07aWYoa2V5U2NoZW1hJiYib2JqZWN0Ij09dHlwZW9mIGtleVNjaGVtYSl7aWYoY3VyVmFsJiYib2JqZWN0Ij09dHlwZW9mIGN1clZhbClhY2Nba2V5XT1tZXJnZUNsYXNzTmFtZXMoa2V5U2NoZW1hLGFjY1trZXldLGN1clZhbCk7ZWxzZXtsZXR7X2RlZmF1bHQ6ZGVmYXVsdEZpZWxkfT1rZXlTY2hlbWE7YWNjW2tleV09YWNjW2tleV18fHt9LGFjY1trZXldW2RlZmF1bHRGaWVsZF09Y2xhc3NuYW1lc19kZWZhdWx0KCkoYWNjW2tleV1bZGVmYXVsdEZpZWxkXSxjdXJWYWwpfX1lbHNlIGFjY1trZXldPWNsYXNzbmFtZXNfZGVmYXVsdCgpKGFjY1trZXldLGN1clZhbCl9KSxhY2MpLHt9KX0pLmFwcGx5KHZvaWQgMCxbc2NoZW1hXS5jb25jYXQoY2xhc3NOYW1lcykpLFtjbGFzc05hbWVzXSl9ZnVuY3Rpb24gdXNlU2VtYW50aWNTdHlsZXMoKXtmb3IodmFyIF9sZW4zPWFyZ3VtZW50cy5sZW5ndGgsc3R5bGVzPUFycmF5KF9sZW4zKSxfa2V5Mz0wO19rZXkzPF9sZW4zO19rZXkzKyspc3R5bGVzW19rZXkzXT1hcmd1bWVudHNbX2tleTNdO3JldHVybiByZWFjdC51c2VNZW1vKCgpPT5zdHlsZXMucmVkdWNlKGZ1bmN0aW9uKGFjYyl7bGV0IGN1cj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIE9iamVjdC5rZXlzKGN1cikuZm9yRWFjaChrZXk9PnthY2Nba2V5XT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYWNjW2tleV0pLGN1cltrZXldKX0pLGFjY30se30pLFtzdHlsZXNdKX1mdW5jdGlvbiBmaWxsT2JqZWN0QnlTY2hlbWEob2JqLHNjaGVtYSl7bGV0IG5ld09iaj1PYmplY3QuYXNzaWduKHt9LG9iaik7cmV0dXJuIE9iamVjdC5rZXlzKHNjaGVtYSkuZm9yRWFjaChrZXk9PntpZigiX2RlZmF1bHQiIT09a2V5KXtsZXQgbmVzdFNjaGVtYT1zY2hlbWFba2V5XSxuZXh0VmFsdWU9bmV3T2JqW2tleV18fHt9O25ld09ialtrZXldPW5lc3RTY2hlbWE/ZmlsbE9iamVjdEJ5U2NoZW1hKG5leHRWYWx1ZSxuZXN0U2NoZW1hKTpuZXh0VmFsdWV9fSksbmV3T2JqfWxldCB1c2VNZXJnZWRQaWNrZXJTZW1hbnRpYz0ocGlja2VyVHlwZSxjbGFzc05hbWVzLHN0eWxlcyxwb3B1cENsYXNzTmFtZSxwb3B1cFN0eWxlKT0+e2xldHtjbGFzc05hbWVzOmNvbnRleHRDbGFzc05hbWVzLHN0eWxlczpjb250ZXh0U3R5bGVzfT0oMCxjb250ZXh0LmRqKShwaWNrZXJUeXBlKSxbbWVyZ2VkQ2xhc3NOYW1lcyxtZXJnZWRTdHlsZXNdPWZ1bmN0aW9uKGNsYXNzTmFtZXNMaXN0LHN0eWxlc0xpc3Qsc2NoZW1hKXtsZXQgbWVyZ2VkQ2xhc3NOYW1lcz11c2VTZW1hbnRpY0NsYXNzTmFtZXMuYXBwbHkodm9pZCAwLFtzY2hlbWFdLmNvbmNhdCgoMCx0b0NvbnN1bWFibGVBcnJheS5aKShjbGFzc05hbWVzTGlzdCkpKSxtZXJnZWRTdHlsZXM9dXNlU2VtYW50aWNTdHlsZXMuYXBwbHkodm9pZCAwLCgwLHRvQ29uc3VtYWJsZUFycmF5LlopKHN0eWxlc0xpc3QpKTtyZXR1cm4gcmVhY3QudXNlTWVtbygoKT0+W2ZpbGxPYmplY3RCeVNjaGVtYShtZXJnZWRDbGFzc05hbWVzLHNjaGVtYSksZmlsbE9iamVjdEJ5U2NoZW1hKG1lcmdlZFN0eWxlcyxzY2hlbWEpXSxbbWVyZ2VkQ2xhc3NOYW1lcyxtZXJnZWRTdHlsZXNdKX0oW2NvbnRleHRDbGFzc05hbWVzLGNsYXNzTmFtZXNdLFtjb250ZXh0U3R5bGVzLHN0eWxlc10se3BvcHVwOntfZGVmYXVsdDoicm9vdCJ9fSk7cmV0dXJuIHJlYWN0LnVzZU1lbW8oKCk9Pnt2YXIgX2EsX2I7bGV0IGZpbGxlZENsYXNzTmFtZXM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG1lcmdlZENsYXNzTmFtZXMpLHtwb3B1cDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbWVyZ2VkQ2xhc3NOYW1lcy5wb3B1cCkse3Jvb3Q6Y2xhc3NuYW1lc19kZWZhdWx0KCkobnVsbD09PShfYT1tZXJnZWRDbGFzc05hbWVzLnBvcHVwKXx8dm9pZCAwPT09X2E/dm9pZCAwOl9hLnJvb3QscG9wdXBDbGFzc05hbWUpfSl9KSxmaWxsZWRTdHlsZXM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG1lcmdlZFN0eWxlcykse3BvcHVwOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxtZXJnZWRTdHlsZXMucG9wdXApLHtyb290Ok9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxudWxsPT09KF9iPW1lcmdlZFN0eWxlcy5wb3B1cCl8fHZvaWQgMD09PV9iP3ZvaWQgMDpfYi5yb290KSxwb3B1cFN0eWxlKX0pfSk7cmV0dXJuW2ZpbGxlZENsYXNzTmFtZXMsZmlsbGVkU3R5bGVzXX0sW21lcmdlZENsYXNzTmFtZXMsbWVyZ2VkU3R5bGVzLHBvcHVwQ2xhc3NOYW1lLHBvcHVwU3R5bGVdKX07dmFyIF9fcmVzdD1mdW5jdGlvbihzLGUpe3ZhciB0PXt9O2Zvcih2YXIgcCBpbiBzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLHApJiYwPmUuaW5kZXhPZihwKSYmKHRbcF09c1twXSk7aWYobnVsbCE9cyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpZm9yKHZhciBpPTAscD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpO2k8cC5sZW5ndGg7aSsrKTA+ZS5pbmRleE9mKHBbaV0pJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocyxwW2ldKSYmKHRbcFtpXV09c1twW2ldXSk7cmV0dXJuIHR9O2xldCBnZW5lcmF0ZVJhbmdlUGlja2VyPWdlbmVyYXRlQ29uZmlnPT57bGV0IFJhbmdlUGlja2VyPSgwLHJlYWN0LmZvcndhcmRSZWYpKChwcm9wcyxyZWYpPT57dmFyIF9hO2xldHtwcmVmaXhDbHM6Y3VzdG9taXplUHJlZml4Q2xzLGdldFBvcHVwQ29udGFpbmVyOmN1c3RvbUdldFBvcHVwQ29udGFpbmVyLGNvbXBvbmVudHMsY2xhc3NOYW1lLHN0eWxlLHBsYWNlbWVudCxzaXplOmN1c3RvbWl6ZVNpemUsZGlzYWJsZWQ6Y3VzdG9tRGlzYWJsZWQsYm9yZGVyZWQ9ITAscGxhY2Vob2xkZXIscG9wdXBTdHlsZSxwb3B1cENsYXNzTmFtZSxkcm9wZG93bkNsYXNzTmFtZSxzdGF0dXM6Y3VzdG9tU3RhdHVzLHJvb3RDbGFzc05hbWUsdmFyaWFudDpjdXN0b21WYXJpYW50LHBpY2tlcixzdHlsZXMsY2xhc3NOYW1lc309cHJvcHMscmVzdFByb3BzPV9fcmVzdChwcm9wcyxbInByZWZpeENscyIsImdldFBvcHVwQ29udGFpbmVyIiwiY29tcG9uZW50cyIsImNsYXNzTmFtZSIsInN0eWxlIiwicGxhY2VtZW50Iiwic2l6ZSIsImRpc2FibGVkIiwiYm9yZGVyZWQiLCJwbGFjZWhvbGRlciIsInBvcHVwU3R5bGUiLCJwb3B1cENsYXNzTmFtZSIsImRyb3Bkb3duQ2xhc3NOYW1lIiwic3RhdHVzIiwicm9vdENsYXNzTmFtZSIsInZhcmlhbnQiLCJwaWNrZXIiLCJzdHlsZXMiLCJjbGFzc05hbWVzIl0pLGlubmVyUmVmPXJlYWN0LnVzZVJlZihudWxsKSx7Z2V0UHJlZml4Q2xzLGRpcmVjdGlvbixnZXRQb3B1cENvbnRhaW5lcixyYW5nZVBpY2tlcn09KDAscmVhY3QudXNlQ29udGV4dCkoY29udGV4dC5FXykscHJlZml4Q2xzPWdldFByZWZpeENscygicGlja2VyIixjdXN0b21pemVQcmVmaXhDbHMpLHtjb21wYWN0U2l6ZSxjb21wYWN0SXRlbUNsYXNzbmFtZXN9PSgwLENvbXBhY3QucmkpKHByZWZpeENscyxkaXJlY3Rpb24pLHJvb3RQcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCksW3ZhcmlhbnQsZW5hYmxlVmFyaWFudENsc109KDAsdXNlVmFyaWFudHMuWikoInJhbmdlUGlja2VyIixjdXN0b21WYXJpYW50LGJvcmRlcmVkKSxyb290Q2xzPSgwLHVzZUNTU1ZhckNscy5aKShwcmVmaXhDbHMpLFt3cmFwQ1NTVmFyLGhhc2hJZCxjc3NWYXJDbHNdPWRhdGVfcGlja2VyX3N0eWxlKHByZWZpeENscyxyb290Q2xzKSxbbWVyZ2VkQ2xhc3NOYW1lcyxtZXJnZWRTdHlsZXNdPXVzZU1lcmdlZFBpY2tlclNlbWFudGljKHBpY2tlcj09PVRJTUU/InRpbWVQaWNrZXIiOiJkYXRlUGlja2VyIixjbGFzc05hbWVzLHN0eWxlcyxwb3B1cENsYXNzTmFtZXx8ZHJvcGRvd25DbGFzc05hbWUscG9wdXBTdHlsZSksW21lcmdlZEFsbG93Q2xlYXJdPXV0aWxfdXNlSWNvbnMocHJvcHMscHJlZml4Q2xzKSxtZXJnZWRDb21wb25lbnRzPXVzZUNvbXBvbmVudHMoY29tcG9uZW50cyksbWVyZ2VkU2l6ZT0oMCx1c2VTaXplLlopKGN0eD0+e3ZhciBfYTtyZXR1cm4gbnVsbCE9PShfYT1udWxsIT1jdXN0b21pemVTaXplP2N1c3RvbWl6ZVNpemU6Y29tcGFjdFNpemUpJiZ2b2lkIDAhPT1fYT9fYTpjdHh9KSxkaXNhYmxlZD1yZWFjdC51c2VDb250ZXh0KERpc2FibGVkQ29udGV4dC5aKSxmb3JtSXRlbUNvbnRleHQ9KDAscmVhY3QudXNlQ29udGV4dCkoZm9ybV9jb250ZXh0LmFNKSx7aGFzRmVlZGJhY2ssc3RhdHVzOmNvbnRleHRTdGF0dXMsZmVlZGJhY2tJY29ufT1mb3JtSXRlbUNvbnRleHQsc3VmZml4Tm9kZT1yZWFjdC5jcmVhdGVFbGVtZW50KHJlYWN0LkZyYWdtZW50LG51bGwscGlja2VyPT09VElNRT9yZWFjdC5jcmVhdGVFbGVtZW50KENsb2NrQ2lyY2xlT3V0bGluZWRfUmVmSWNvbixudWxsKTpyZWFjdC5jcmVhdGVFbGVtZW50KFJlZkljb24sbnVsbCksaGFzRmVlZGJhY2smJmZlZWRiYWNrSWNvbik7KDAscmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZSkocmVmLCgpPT5pbm5lclJlZi5jdXJyZW50KTtsZXRbY29udGV4dExvY2FsZV09KDAsbG9jYWxlX3VzZUxvY2FsZS5aKSgiQ2FsZW5kYXIiLGVuX1VTLlopLGxvY2FsZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sY29udGV4dExvY2FsZSkscHJvcHMubG9jYWxlKSxbekluZGV4XT0oMCx1c2VaSW5kZXguQ24pKCJEYXRlUGlja2VyIixudWxsPT09KF9hPW1lcmdlZFN0eWxlcy5wb3B1cC5yb290KXx8dm9pZCAwPT09X2E/dm9pZCAwOl9hLnpJbmRleCk7cmV0dXJuIHdyYXBDU1NWYXIocmVhY3QuY3JlYXRlRWxlbWVudChDb250ZXh0SXNvbGF0b3IuWix7c3BhY2U6ITB9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVmUmFuZ2VQaWNrZXIsT2JqZWN0LmFzc2lnbih7c2VwYXJhdG9yOnJlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHsiYXJpYS1sYWJlbCI6InRvIixjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS1zZXBhcmF0b3JgfSxyZWFjdC5jcmVhdGVFbGVtZW50KFN3YXBSaWdodE91dGxpbmVkX1JlZkljb24sbnVsbCkpLGRpc2FibGVkOm51bGwhPWN1c3RvbURpc2FibGVkP2N1c3RvbURpc2FibGVkOmRpc2FibGVkLHJlZjppbm5lclJlZixwbGFjZW1lbnQ6cGxhY2VtZW50LHBsYWNlaG9sZGVyOnZvaWQgMCE9PXBsYWNlaG9sZGVyP3BsYWNlaG9sZGVyOiJ5ZWFyIj09PXBpY2tlciYmbG9jYWxlLmxhbmcueWVhclBsYWNlaG9sZGVyP2xvY2FsZS5sYW5nLnJhbmdlWWVhclBsYWNlaG9sZGVyOiJxdWFydGVyIj09PXBpY2tlciYmbG9jYWxlLmxhbmcucXVhcnRlclBsYWNlaG9sZGVyP2xvY2FsZS5sYW5nLnJhbmdlUXVhcnRlclBsYWNlaG9sZGVyOiJtb250aCI9PT1waWNrZXImJmxvY2FsZS5sYW5nLm1vbnRoUGxhY2Vob2xkZXI/bG9jYWxlLmxhbmcucmFuZ2VNb250aFBsYWNlaG9sZGVyOiJ3ZWVrIj09PXBpY2tlciYmbG9jYWxlLmxhbmcud2Vla1BsYWNlaG9sZGVyP2xvY2FsZS5sYW5nLnJhbmdlV2Vla1BsYWNlaG9sZGVyOiJ0aW1lIj09PXBpY2tlciYmbG9jYWxlLnRpbWVQaWNrZXJMb2NhbGUucGxhY2Vob2xkZXI/bG9jYWxlLnRpbWVQaWNrZXJMb2NhbGUucmFuZ2VQbGFjZWhvbGRlcjpsb2NhbGUubGFuZy5yYW5nZVBsYWNlaG9sZGVyLHN1ZmZpeEljb246c3VmZml4Tm9kZSxwcmV2SWNvbjpyZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30tcHJldi1pY29uYH0pLG5leHRJY29uOnJlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS1uZXh0LWljb25gfSksc3VwZXJQcmV2SWNvbjpyZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30tc3VwZXItcHJldi1pY29uYH0pLHN1cGVyTmV4dEljb246cmVhY3QuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtwcmVmaXhDbHN9LXN1cGVyLW5leHQtaWNvbmB9KSx0cmFuc2l0aW9uTmFtZTpgJHtyb290UHJlZml4Q2xzfS1zbGlkZS11cGAscGlja2VyOnBpY2tlcn0scmVzdFByb3BzLHtjbGFzc05hbWU6Y2xhc3NuYW1lc19kZWZhdWx0KCkoe1tgJHtwcmVmaXhDbHN9LSR7bWVyZ2VkU2l6ZX1gXTptZXJnZWRTaXplLFtgJHtwcmVmaXhDbHN9LSR7dmFyaWFudH1gXTplbmFibGVWYXJpYW50Q2xzfSwoMCxzdGF0dXNVdGlscy5aKShwcmVmaXhDbHMsKDAsc3RhdHVzVXRpbHMuRikoY29udGV4dFN0YXR1cyxjdXN0b21TdGF0dXMpLGhhc0ZlZWRiYWNrKSxoYXNoSWQsY29tcGFjdEl0ZW1DbGFzc25hbWVzLGNsYXNzTmFtZSxudWxsPT1yYW5nZVBpY2tlcj92b2lkIDA6cmFuZ2VQaWNrZXIuY2xhc3NOYW1lLGNzc1ZhckNscyxyb290Q2xzLHJvb3RDbGFzc05hbWUsbWVyZ2VkQ2xhc3NOYW1lcy5yb290KSxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxudWxsPT1yYW5nZVBpY2tlcj92b2lkIDA6cmFuZ2VQaWNrZXIuc3R5bGUpLHN0eWxlKSxtZXJnZWRTdHlsZXMucm9vdCksbG9jYWxlOmxvY2FsZS5sYW5nLHByZWZpeENsczpwcmVmaXhDbHMsZ2V0UG9wdXBDb250YWluZXI6Y3VzdG9tR2V0UG9wdXBDb250YWluZXJ8fGdldFBvcHVwQ29udGFpbmVyLGdlbmVyYXRlQ29uZmlnOmdlbmVyYXRlQ29uZmlnLGNvbXBvbmVudHM6bWVyZ2VkQ29tcG9uZW50cyxkaXJlY3Rpb246ZGlyZWN0aW9uLGNsYXNzTmFtZXM6e3BvcHVwOmNsYXNzbmFtZXNfZGVmYXVsdCgpKGhhc2hJZCxjc3NWYXJDbHMscm9vdENscyxyb290Q2xhc3NOYW1lLG1lcmdlZENsYXNzTmFtZXMucG9wdXAucm9vdCl9LHN0eWxlczp7cG9wdXA6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG1lcmdlZFN0eWxlcy5wb3B1cC5yb290KSx7ekluZGV4fSl9LGFsbG93Q2xlYXI6bWVyZ2VkQWxsb3dDbGVhcn0pKSkpfSk7cmV0dXJuIFJhbmdlUGlja2VyfTt2YXIgZ2VuZXJhdGVTaW5nbGVQaWNrZXJfcmVzdD1mdW5jdGlvbihzLGUpe3ZhciB0PXt9O2Zvcih2YXIgcCBpbiBzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLHApJiYwPmUuaW5kZXhPZihwKSYmKHRbcF09c1twXSk7aWYobnVsbCE9cyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpZm9yKHZhciBpPTAscD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpO2k8cC5sZW5ndGg7aSsrKTA+ZS5pbmRleE9mKHBbaV0pJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocyxwW2ldKSYmKHRbcFtpXV09c1twW2ldXSk7cmV0dXJuIHR9O2xldCBnZW5lcmF0ZVBpY2tlcj1nZW5lcmF0ZUNvbmZpZz0+e2xldCBnZXRQaWNrZXI9KHBpY2tlcixkaXNwbGF5TmFtZSk9PntsZXQgY29uc3VtZXJOYW1lPWRpc3BsYXlOYW1lPT09VElNRVBJQ0tFUj8idGltZVBpY2tlciI6ImRhdGVQaWNrZXIiLFBpY2tlcj0oMCxyZWFjdC5mb3J3YXJkUmVmKSgocHJvcHMscmVmKT0+e3ZhciBfYTtsZXR7cHJlZml4Q2xzOmN1c3RvbWl6ZVByZWZpeENscyxnZXRQb3B1cENvbnRhaW5lcjpjdXN0b21pemVHZXRQb3B1cENvbnRhaW5lcixjb21wb25lbnRzLHN0eWxlLGNsYXNzTmFtZSxyb290Q2xhc3NOYW1lLHNpemU6Y3VzdG9taXplU2l6ZSxib3JkZXJlZCxwbGFjZW1lbnQscGxhY2Vob2xkZXIscG9wdXBTdHlsZSxwb3B1cENsYXNzTmFtZSxkcm9wZG93bkNsYXNzTmFtZSxkaXNhYmxlZDpjdXN0b21EaXNhYmxlZCxzdGF0dXM6Y3VzdG9tU3RhdHVzLHZhcmlhbnQ6Y3VzdG9tVmFyaWFudCxvbkNhbGVuZGFyQ2hhbmdlLHN0eWxlcyxjbGFzc05hbWVzfT1wcm9wcyxyZXN0UHJvcHM9Z2VuZXJhdGVTaW5nbGVQaWNrZXJfcmVzdChwcm9wcyxbInByZWZpeENscyIsImdldFBvcHVwQ29udGFpbmVyIiwiY29tcG9uZW50cyIsInN0eWxlIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsInNpemUiLCJib3JkZXJlZCIsInBsYWNlbWVudCIsInBsYWNlaG9sZGVyIiwicG9wdXBTdHlsZSIsInBvcHVwQ2xhc3NOYW1lIiwiZHJvcGRvd25DbGFzc05hbWUiLCJkaXNhYmxlZCIsInN0YXR1cyIsInZhcmlhbnQiLCJvbkNhbGVuZGFyQ2hhbmdlIiwic3R5bGVzIiwiY2xhc3NOYW1lcyJdKSx7Z2V0UHJlZml4Q2xzLGRpcmVjdGlvbixnZXRQb3B1cENvbnRhaW5lcixbY29uc3VtZXJOYW1lXTpjb25zdW1lclN0eWxlfT0oMCxyZWFjdC51c2VDb250ZXh0KShjb250ZXh0LkVfKSxwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJwaWNrZXIiLGN1c3RvbWl6ZVByZWZpeENscykse2NvbXBhY3RTaXplLGNvbXBhY3RJdGVtQ2xhc3NuYW1lc309KDAsQ29tcGFjdC5yaSkocHJlZml4Q2xzLGRpcmVjdGlvbiksaW5uZXJSZWY9cmVhY3QudXNlUmVmKG51bGwpLFt2YXJpYW50LGVuYWJsZVZhcmlhbnRDbHNdPSgwLHVzZVZhcmlhbnRzLlopKCJkYXRlUGlja2VyIixjdXN0b21WYXJpYW50LGJvcmRlcmVkKSxyb290Q2xzPSgwLHVzZUNTU1ZhckNscy5aKShwcmVmaXhDbHMpLFt3cmFwQ1NTVmFyLGhhc2hJZCxjc3NWYXJDbHNdPWRhdGVfcGlja2VyX3N0eWxlKHByZWZpeENscyxyb290Q2xzKTsoMCxyZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKShyZWYsKCk9PmlubmVyUmVmLmN1cnJlbnQpO2xldCBtZXJnZWRQaWNrZXI9cGlja2VyfHxwcm9wcy5waWNrZXIscm9vdFByZWZpeENscz1nZXRQcmVmaXhDbHMoKSx7b25TZWxlY3QsbXVsdGlwbGV9PXJlc3RQcm9wcyxoYXNMZWdhY3lPblNlbGVjdD1vblNlbGVjdCYmInRpbWUiPT09cGlja2VyJiYhbXVsdGlwbGUsb25JbnRlcm5hbENhbGVuZGFyQ2hhbmdlPShkYXRlLGRhdGVTdHIsaW5mbyk9PntudWxsPT1vbkNhbGVuZGFyQ2hhbmdlfHxvbkNhbGVuZGFyQ2hhbmdlKGRhdGUsZGF0ZVN0cixpbmZvKSxoYXNMZWdhY3lPblNlbGVjdCYmb25TZWxlY3QoZGF0ZSl9LFttZXJnZWRDbGFzc05hbWVzLG1lcmdlZFN0eWxlc109dXNlTWVyZ2VkUGlja2VyU2VtYW50aWMoY29uc3VtZXJOYW1lLGNsYXNzTmFtZXMsc3R5bGVzLHBvcHVwQ2xhc3NOYW1lfHxkcm9wZG93bkNsYXNzTmFtZSxwb3B1cFN0eWxlKSxbbWVyZ2VkQWxsb3dDbGVhcixyZW1vdmVJY29uXT11dGlsX3VzZUljb25zKHByb3BzLHByZWZpeENscyksbWVyZ2VkQ29tcG9uZW50cz11c2VDb21wb25lbnRzKGNvbXBvbmVudHMpLG1lcmdlZFNpemU9KDAsdXNlU2l6ZS5aKShjdHg9Pnt2YXIgX2E7cmV0dXJuIG51bGwhPT0oX2E9bnVsbCE9Y3VzdG9taXplU2l6ZT9jdXN0b21pemVTaXplOmNvbXBhY3RTaXplKSYmdm9pZCAwIT09X2E/X2E6Y3R4fSksZGlzYWJsZWQ9cmVhY3QudXNlQ29udGV4dChEaXNhYmxlZENvbnRleHQuWiksZm9ybUl0ZW1Db250ZXh0PSgwLHJlYWN0LnVzZUNvbnRleHQpKGZvcm1fY29udGV4dC5hTSkse2hhc0ZlZWRiYWNrLHN0YXR1czpjb250ZXh0U3RhdHVzLGZlZWRiYWNrSWNvbn09Zm9ybUl0ZW1Db250ZXh0LHN1ZmZpeE5vZGU9cmVhY3QuY3JlYXRlRWxlbWVudChyZWFjdC5GcmFnbWVudCxudWxsLCJ0aW1lIj09PW1lcmdlZFBpY2tlcj9yZWFjdC5jcmVhdGVFbGVtZW50KENsb2NrQ2lyY2xlT3V0bGluZWRfUmVmSWNvbixudWxsKTpyZWFjdC5jcmVhdGVFbGVtZW50KFJlZkljb24sbnVsbCksaGFzRmVlZGJhY2smJmZlZWRiYWNrSWNvbiksW2NvbnRleHRMb2NhbGVdPSgwLGxvY2FsZV91c2VMb2NhbGUuWikoIkRhdGVQaWNrZXIiLGVuX1VTLlopLGxvY2FsZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sY29udGV4dExvY2FsZSkscHJvcHMubG9jYWxlKSxbekluZGV4XT0oMCx1c2VaSW5kZXguQ24pKCJEYXRlUGlja2VyIixudWxsPT09KF9hPW1lcmdlZFN0eWxlcy5wb3B1cC5yb290KXx8dm9pZCAwPT09X2E/dm9pZCAwOl9hLnpJbmRleCk7cmV0dXJuIHdyYXBDU1NWYXIocmVhY3QuY3JlYXRlRWxlbWVudChDb250ZXh0SXNvbGF0b3IuWix7c3BhY2U6ITB9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVmUGlja2VyLE9iamVjdC5hc3NpZ24oe3JlZjppbm5lclJlZixwbGFjZWhvbGRlcjp2b2lkIDAhPT1wbGFjZWhvbGRlcj9wbGFjZWhvbGRlcjoieWVhciI9PT1tZXJnZWRQaWNrZXImJmxvY2FsZS5sYW5nLnllYXJQbGFjZWhvbGRlcj9sb2NhbGUubGFuZy55ZWFyUGxhY2Vob2xkZXI6InF1YXJ0ZXIiPT09bWVyZ2VkUGlja2VyJiZsb2NhbGUubGFuZy5xdWFydGVyUGxhY2Vob2xkZXI/bG9jYWxlLmxhbmcucXVhcnRlclBsYWNlaG9sZGVyOiJtb250aCI9PT1tZXJnZWRQaWNrZXImJmxvY2FsZS5sYW5nLm1vbnRoUGxhY2Vob2xkZXI/bG9jYWxlLmxhbmcubW9udGhQbGFjZWhvbGRlcjoid2VlayI9PT1tZXJnZWRQaWNrZXImJmxvY2FsZS5sYW5nLndlZWtQbGFjZWhvbGRlcj9sb2NhbGUubGFuZy53ZWVrUGxhY2Vob2xkZXI6InRpbWUiPT09bWVyZ2VkUGlja2VyJiZsb2NhbGUudGltZVBpY2tlckxvY2FsZS5wbGFjZWhvbGRlcj9sb2NhbGUudGltZVBpY2tlckxvY2FsZS5wbGFjZWhvbGRlcjpsb2NhbGUubGFuZy5wbGFjZWhvbGRlcixzdWZmaXhJY29uOnN1ZmZpeE5vZGUscGxhY2VtZW50OnBsYWNlbWVudCxwcmV2SWNvbjpyZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30tcHJldi1pY29uYH0pLG5leHRJY29uOnJlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS1uZXh0LWljb25gfSksc3VwZXJQcmV2SWNvbjpyZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30tc3VwZXItcHJldi1pY29uYH0pLHN1cGVyTmV4dEljb246cmVhY3QuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtwcmVmaXhDbHN9LXN1cGVyLW5leHQtaWNvbmB9KSx0cmFuc2l0aW9uTmFtZTpgJHtyb290UHJlZml4Q2xzfS1zbGlkZS11cGAscGlja2VyOnBpY2tlcixvbkNhbGVuZGFyQ2hhbmdlOm9uSW50ZXJuYWxDYWxlbmRhckNoYW5nZX0se3Nob3dUb2RheTohMH0scmVzdFByb3BzLHtsb2NhbGU6bG9jYWxlLmxhbmcsY2xhc3NOYW1lOmNsYXNzbmFtZXNfZGVmYXVsdCgpKHtbYCR7cHJlZml4Q2xzfS0ke21lcmdlZFNpemV9YF06bWVyZ2VkU2l6ZSxbYCR7cHJlZml4Q2xzfS0ke3ZhcmlhbnR9YF06ZW5hYmxlVmFyaWFudENsc30sKDAsc3RhdHVzVXRpbHMuWikocHJlZml4Q2xzLCgwLHN0YXR1c1V0aWxzLkYpKGNvbnRleHRTdGF0dXMsY3VzdG9tU3RhdHVzKSxoYXNGZWVkYmFjayksaGFzaElkLGNvbXBhY3RJdGVtQ2xhc3NuYW1lcyxudWxsPT1jb25zdW1lclN0eWxlP3ZvaWQgMDpjb25zdW1lclN0eWxlLmNsYXNzTmFtZSxjbGFzc05hbWUsY3NzVmFyQ2xzLHJvb3RDbHMscm9vdENsYXNzTmFtZSxtZXJnZWRDbGFzc05hbWVzLnJvb3QpLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG51bGw9PWNvbnN1bWVyU3R5bGU/dm9pZCAwOmNvbnN1bWVyU3R5bGUuc3R5bGUpLHN0eWxlKSxtZXJnZWRTdHlsZXMucm9vdCkscHJlZml4Q2xzOnByZWZpeENscyxnZXRQb3B1cENvbnRhaW5lcjpjdXN0b21pemVHZXRQb3B1cENvbnRhaW5lcnx8Z2V0UG9wdXBDb250YWluZXIsZ2VuZXJhdGVDb25maWc6Z2VuZXJhdGVDb25maWcsY29tcG9uZW50czptZXJnZWRDb21wb25lbnRzLGRpcmVjdGlvbjpkaXJlY3Rpb24sZGlzYWJsZWQ6bnVsbCE9Y3VzdG9tRGlzYWJsZWQ/Y3VzdG9tRGlzYWJsZWQ6ZGlzYWJsZWQsY2xhc3NOYW1lczp7cG9wdXA6Y2xhc3NuYW1lc19kZWZhdWx0KCkoaGFzaElkLGNzc1ZhckNscyxyb290Q2xzLHJvb3RDbGFzc05hbWUsbWVyZ2VkQ2xhc3NOYW1lcy5wb3B1cC5yb290KX0sc3R5bGVzOntwb3B1cDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbWVyZ2VkU3R5bGVzLnBvcHVwLnJvb3QpLHt6SW5kZXh9KX0sYWxsb3dDbGVhcjptZXJnZWRBbGxvd0NsZWFyLHJlbW92ZUljb246cmVtb3ZlSWNvbn0pKSkpfSk7cmV0dXJuIFBpY2tlcn0sRGF0ZVBpY2tlcj1nZXRQaWNrZXIoKSxXZWVrUGlja2VyPWdldFBpY2tlcihXRUVLLFdFRUtQSUNLRVIpLE1vbnRoUGlja2VyPWdldFBpY2tlcihNT05USCxNT05USFBJQ0tFUiksWWVhclBpY2tlcj1nZXRQaWNrZXIoWUVBUixZRUFSUElDS0VSKSxRdWFydGVyUGlja2VyPWdldFBpY2tlcihRVUFSVEVSLFFVQVJURVJQSUNLRVIpLFRpbWVQaWNrZXI9Z2V0UGlja2VyKFRJTUUsVElNRVBJQ0tFUik7cmV0dXJue0RhdGVQaWNrZXIsV2Vla1BpY2tlcixNb250aFBpY2tlcixZZWFyUGlja2VyLFRpbWVQaWNrZXIsUXVhcnRlclBpY2tlcn19LGdlbmVyYXRlUGlja2VyX2dlbmVyYXRlUGlja2VyPWdlbmVyYXRlQ29uZmlnPT57bGV0e0RhdGVQaWNrZXIsV2Vla1BpY2tlcixNb250aFBpY2tlcixZZWFyUGlja2VyLFRpbWVQaWNrZXIsUXVhcnRlclBpY2tlcn09Z2VuZXJhdGVQaWNrZXIoZ2VuZXJhdGVDb25maWcpLFJhbmdlUGlja2VyPWdlbmVyYXRlUmFuZ2VQaWNrZXIoZ2VuZXJhdGVDb25maWcpLE1lcmdlZERhdGVQaWNrZXI9RGF0ZVBpY2tlcjtyZXR1cm4gTWVyZ2VkRGF0ZVBpY2tlci5XZWVrUGlja2VyPVdlZWtQaWNrZXIsTWVyZ2VkRGF0ZVBpY2tlci5Nb250aFBpY2tlcj1Nb250aFBpY2tlcixNZXJnZWREYXRlUGlja2VyLlllYXJQaWNrZXI9WWVhclBpY2tlcixNZXJnZWREYXRlUGlja2VyLlJhbmdlUGlja2VyPVJhbmdlUGlja2VyLE1lcmdlZERhdGVQaWNrZXIuVGltZVBpY2tlcj1UaW1lUGlja2VyLE1lcmdlZERhdGVQaWNrZXIuUXVhcnRlclBpY2tlcj1RdWFydGVyUGlja2VyLE1lcmdlZERhdGVQaWNrZXJ9LERhdGVQaWNrZXI9Z2VuZXJhdGVQaWNrZXJfZ2VuZXJhdGVQaWNrZXIoe2dldE5vdzpmdW5jdGlvbigpe3ZhciBub3c9ZGF5anNfbWluX2RlZmF1bHQoKSgpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBub3cudHo/bm93LnR6KCk6bm93fSxnZXRGaXhlZERhdGU6ZnVuY3Rpb24oc3RyaW5nKXtyZXR1cm4gZGF5anNfbWluX2RlZmF1bHQoKShzdHJpbmcsWyJZWVlZLU0tREQiLCJZWVlZLU1NLUREIl0pfSxnZXRFbmREYXRlOmZ1bmN0aW9uKGRhdGUpe3JldHVybiBkYXRlLmVuZE9mKCJtb250aCIpfSxnZXRXZWVrRGF5OmZ1bmN0aW9uKGRhdGUpe3ZhciBjbG9uZT1kYXRlLmxvY2FsZSgiZW4iKTtyZXR1cm4gY2xvbmUud2Vla2RheSgpK2Nsb25lLmxvY2FsZURhdGEoKS5maXJzdERheU9mV2VlaygpfSxnZXRZZWFyOmZ1bmN0aW9uKGRhdGUpe3JldHVybiBkYXRlLnllYXIoKX0sZ2V0TW9udGg6ZnVuY3Rpb24oZGF0ZSl7cmV0dXJuIGRhdGUubW9udGgoKX0sZ2V0RGF0ZTpmdW5jdGlvbihkYXRlKXtyZXR1cm4gZGF0ZS5kYXRlKCl9LGdldEhvdXI6ZnVuY3Rpb24oZGF0ZSl7cmV0dXJuIGRhdGUuaG91cigpfSxnZXRNaW51dGU6ZnVuY3Rpb24oZGF0ZSl7cmV0dXJuIGRhdGUubWludXRlKCl9LGdldFNlY29uZDpmdW5jdGlvbihkYXRlKXtyZXR1cm4gZGF0ZS5zZWNvbmQoKX0sZ2V0TWlsbGlzZWNvbmQ6ZnVuY3Rpb24oZGF0ZSl7cmV0dXJuIGRhdGUubWlsbGlzZWNvbmQoKX0sYWRkWWVhcjpmdW5jdGlvbihkYXRlLGRpZmYpe3JldHVybiBkYXRlLmFkZChkaWZmLCJ5ZWFyIil9LGFkZE1vbnRoOmZ1bmN0aW9uKGRhdGUsZGlmZil7cmV0dXJuIGRhdGUuYWRkKGRpZmYsIm1vbnRoIil9LGFkZERhdGU6ZnVuY3Rpb24oZGF0ZSxkaWZmKXtyZXR1cm4gZGF0ZS5hZGQoZGlmZiwiZGF5Iil9LHNldFllYXI6ZnVuY3Rpb24oZGF0ZSx5ZWFyKXtyZXR1cm4gZGF0ZS55ZWFyKHllYXIpfSxzZXRNb250aDpmdW5jdGlvbihkYXRlLG1vbnRoKXtyZXR1cm4gZGF0ZS5tb250aChtb250aCl9LHNldERhdGU6ZnVuY3Rpb24oZGF0ZSxudW0pe3JldHVybiBkYXRlLmRhdGUobnVtKX0sc2V0SG91cjpmdW5jdGlvbihkYXRlLGhvdXIpe3JldHVybiBkYXRlLmhvdXIoaG91cil9LHNldE1pbnV0ZTpmdW5jdGlvbihkYXRlLG1pbnV0ZSl7cmV0dXJuIGRhdGUubWludXRlKG1pbnV0ZSl9LHNldFNlY29uZDpmdW5jdGlvbihkYXRlLHNlY29uZCl7cmV0dXJuIGRhdGUuc2Vjb25kKHNlY29uZCl9LHNldE1pbGxpc2Vjb25kOmZ1bmN0aW9uKGRhdGUsbWlsbGlzZWNvbmRzKXtyZXR1cm4gZGF0ZS5taWxsaXNlY29uZChtaWxsaXNlY29uZHMpfSxpc0FmdGVyOmZ1bmN0aW9uKGRhdGUxLGRhdGUyKXtyZXR1cm4gZGF0ZTEuaXNBZnRlcihkYXRlMil9LGlzVmFsaWRhdGU6ZnVuY3Rpb24oZGF0ZSl7cmV0dXJuIGRhdGUuaXNWYWxpZCgpfSxsb2NhbGU6e2dldFdlZWtGaXJzdERheTpmdW5jdGlvbihsb2NhbGUpe3JldHVybiBkYXlqc19taW5fZGVmYXVsdCgpKCkubG9jYWxlKHBhcnNlTG9jYWxlKGxvY2FsZSkpLmxvY2FsZURhdGEoKS5maXJzdERheU9mV2VlaygpfSxnZXRXZWVrRmlyc3REYXRlOmZ1bmN0aW9uKGxvY2FsZSxkYXRlKXtyZXR1cm4gZGF0ZS5sb2NhbGUocGFyc2VMb2NhbGUobG9jYWxlKSkud2Vla2RheSgwKX0sZ2V0V2VlazpmdW5jdGlvbihsb2NhbGUsZGF0ZSl7cmV0dXJuIGRhdGUubG9jYWxlKHBhcnNlTG9jYWxlKGxvY2FsZSkpLndlZWsoKX0sZ2V0U2hvcnRXZWVrRGF5czpmdW5jdGlvbihsb2NhbGUpe3JldHVybiBkYXlqc19taW5fZGVmYXVsdCgpKCkubG9jYWxlKHBhcnNlTG9jYWxlKGxvY2FsZSkpLmxvY2FsZURhdGEoKS53ZWVrZGF5c01pbigpfSxnZXRTaG9ydE1vbnRoczpmdW5jdGlvbihsb2NhbGUpe3JldHVybiBkYXlqc19taW5fZGVmYXVsdCgpKCkubG9jYWxlKHBhcnNlTG9jYWxlKGxvY2FsZSkpLmxvY2FsZURhdGEoKS5tb250aHNTaG9ydCgpfSxmb3JtYXQ6ZnVuY3Rpb24obG9jYWxlLGRhdGUsX2Zvcm1hdCl7cmV0dXJuIGRhdGUubG9jYWxlKHBhcnNlTG9jYWxlKGxvY2FsZSkpLmZvcm1hdChfZm9ybWF0KX0scGFyc2U6ZnVuY3Rpb24obG9jYWxlLHRleHQsZm9ybWF0cyl7Zm9yKHZhciBsb2NhbGVTdHI9cGFyc2VMb2NhbGUobG9jYWxlKSxpPTA7aTxmb3JtYXRzLmxlbmd0aDtpKz0xKXt2YXIgZm9ybWF0PWZvcm1hdHNbaV07aWYoZm9ybWF0LmluY2x1ZGVzKCJ3byIpfHxmb3JtYXQuaW5jbHVkZXMoIldvIikpe2Zvcih2YXIgeWVhcj10ZXh0LnNwbGl0KCItIilbMF0sd2Vla1N0cj10ZXh0LnNwbGl0KCItIilbMV0sZmlyc3RXZWVrPWRheWpzX21pbl9kZWZhdWx0KCkoeWVhciwiWVlZWSIpLnN0YXJ0T2YoInllYXIiKS5sb2NhbGUobG9jYWxlU3RyKSxqPTA7ajw9NTI7ais9MSl7dmFyIG5leHRXZWVrPWZpcnN0V2Vlay5hZGQoaiwid2VlayIpO2lmKG5leHRXZWVrLmZvcm1hdCgiV28iKT09PXdlZWtTdHIpcmV0dXJuIG5leHRXZWVrfXJldHVybiBwYXJzZU5vTWF0Y2hOb3RpY2UoKSxudWxsfXZhciBkYXRlPWRheWpzX21pbl9kZWZhdWx0KCkodGV4dCxmb3JtYXQsITApLmxvY2FsZShsb2NhbGVTdHIpO2lmKGRhdGUuaXNWYWxpZCgpKXJldHVybiBkYXRlfXJldHVybiB0ZXh0JiZwYXJzZU5vTWF0Y2hOb3RpY2UoKSxudWxsfX19KSxkYXRlX3BpY2tlcl9QdXJlUGFuZWw9KDAsUHVyZVBhbmVsLlopKERhdGVQaWNrZXIsInBvcHVwQWxpZ24iLHZvaWQgMCwicGlja2VyIik7RGF0ZVBpY2tlci5fSW50ZXJuYWxQYW5lbERvTm90VXNlT3JZb3VXaWxsQmVGaXJlZD1kYXRlX3BpY2tlcl9QdXJlUGFuZWw7bGV0IFB1cmVSYW5nZVBhbmVsPSgwLFB1cmVQYW5lbC5aKShEYXRlUGlja2VyLlJhbmdlUGlja2VyLCJwb3B1cEFsaWduIix2b2lkIDAsInBpY2tlciIpO0RhdGVQaWNrZXIuX0ludGVybmFsUmFuZ2VQYW5lbERvTm90VXNlT3JZb3VXaWxsQmVGaXJlZD1QdXJlUmFuZ2VQYW5lbCxEYXRlUGlja2VyLmdlbmVyYXRlUGlja2VyPWdlbmVyYXRlUGlja2VyX2dlbmVyYXRlUGlja2VyO3ZhciBkYXRlX3BpY2tlcj1EYXRlUGlja2VyfSwyOTQ5NDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBkYXRlX3BpY2tlcl9sb2NhbGVfZW5fVVN9fSk7dmFyIG9iamVjdFNwcmVhZDI9X193ZWJwYWNrX3JlcXVpcmVfXyg0NjM5NCksbG9jYWxlPSgwLG9iamVjdFNwcmVhZDIuWikoKDAsb2JqZWN0U3ByZWFkMi5aKSh7fSx7eWVhckZvcm1hdDoiWVlZWSIsZGF5Rm9ybWF0OiJEIixjZWxsTWVyaWRpZW1Gb3JtYXQ6IkEiLG1vbnRoQmVmb3JlWWVhcjohMH0pLHt9LHtsb2NhbGU6ImVuX1VTIix0b2RheToiVG9kYXkiLG5vdzoiTm93IixiYWNrVG9Ub2RheToiQmFjayB0byB0b2RheSIsb2s6Ik9LIixjbGVhcjoiQ2xlYXIiLHdlZWs6IldlZWsiLG1vbnRoOiJNb250aCIseWVhcjoiWWVhciIsdGltZVNlbGVjdDoic2VsZWN0IHRpbWUiLGRhdGVTZWxlY3Q6InNlbGVjdCBkYXRlIix3ZWVrU2VsZWN0OiJDaG9vc2UgYSB3ZWVrIixtb250aFNlbGVjdDoiQ2hvb3NlIGEgbW9udGgiLHllYXJTZWxlY3Q6IkNob29zZSBhIHllYXIiLGRlY2FkZVNlbGVjdDoiQ2hvb3NlIGEgZGVjYWRlIixkYXRlRm9ybWF0OiJNL0QvWVlZWSIsZGF0ZVRpbWVGb3JtYXQ6Ik0vRC9ZWVlZIEhIOm1tOnNzIixwcmV2aW91c01vbnRoOiJQcmV2aW91cyBtb250aCAoUGFnZVVwKSIsbmV4dE1vbnRoOiJOZXh0IG1vbnRoIChQYWdlRG93bikiLHByZXZpb3VzWWVhcjoiTGFzdCB5ZWFyIChDb250cm9sICsgbGVmdCkiLG5leHRZZWFyOiJOZXh0IHllYXIgKENvbnRyb2wgKyByaWdodCkiLHByZXZpb3VzRGVjYWRlOiJMYXN0IGRlY2FkZSIsbmV4dERlY2FkZToiTmV4dCBkZWNhZGUiLHByZXZpb3VzQ2VudHVyeToiTGFzdCBjZW50dXJ5IixuZXh0Q2VudHVyeToiTmV4dCBjZW50dXJ5In0pLGxvY2FsZV9lbl9VUz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQyMTE1KTtsZXQgZW5fVVNfbG9jYWxlPXtsYW5nOk9iamVjdC5hc3NpZ24oe3BsYWNlaG9sZGVyOiJTZWxlY3QgZGF0ZSIseWVhclBsYWNlaG9sZGVyOiJTZWxlY3QgeWVhciIscXVhcnRlclBsYWNlaG9sZGVyOiJTZWxlY3QgcXVhcnRlciIsbW9udGhQbGFjZWhvbGRlcjoiU2VsZWN0IG1vbnRoIix3ZWVrUGxhY2Vob2xkZXI6IlNlbGVjdCB3ZWVrIixyYW5nZVBsYWNlaG9sZGVyOlsiU3RhcnQgZGF0ZSIsIkVuZCBkYXRlIl0scmFuZ2VZZWFyUGxhY2Vob2xkZXI6WyJTdGFydCB5ZWFyIiwiRW5kIHllYXIiXSxyYW5nZVF1YXJ0ZXJQbGFjZWhvbGRlcjpbIlN0YXJ0IHF1YXJ0ZXIiLCJFbmQgcXVhcnRlciJdLHJhbmdlTW9udGhQbGFjZWhvbGRlcjpbIlN0YXJ0IG1vbnRoIiwiRW5kIG1vbnRoIl0scmFuZ2VXZWVrUGxhY2Vob2xkZXI6WyJTdGFydCB3ZWVrIiwiRW5kIHdlZWsiXX0sbG9jYWxlKSx0aW1lUGlja2VyTG9jYWxlOk9iamVjdC5hc3NpZ24oe30sbG9jYWxlX2VuX1VTLlopfTt2YXIgZGF0ZV9waWNrZXJfbG9jYWxlX2VuX1VTPWVuX1VTX2xvY2FsZX0sNDI0Nzc6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gZHJhd2VyfX0pO3ZhciByZWFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxjbGFzc25hbWVzPV9fd2VicGFja19yZXF1aXJlX18oMTMxNDQpLGNsYXNzbmFtZXNfZGVmYXVsdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oY2xhc3NuYW1lcyk7ZnVuY3Rpb24gX3R5cGVvZihvKXtyZXR1cm4oX3R5cGVvZj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihvKXtyZXR1cm4gdHlwZW9mIG99OmZ1bmN0aW9uKG8pe3JldHVybiBvJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZvLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZvIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2Ygb30pKG8pfWZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShlLHIsdCl7dmFyIGk7cmV0dXJuKGk9ZnVuY3Rpb24odCxyKXtpZigib2JqZWN0IiE9X3R5cGVvZih0KXx8IXQpcmV0dXJuIHQ7dmFyIGU9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWUpe3ZhciBpPWUuY2FsbCh0LHJ8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPV90eXBlb2YoaSkpcmV0dXJuIGk7dGhyb3cgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PXI/U3RyaW5nOk51bWJlcikodCl9KHIsInN0cmluZyIpLChyPSJzeW1ib2wiPT1fdHlwZW9mKGkpP2k6aSsiIilpbiBlKT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHt2YWx1ZTp0LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVtyXT10LGV9ZnVuY3Rpb24gb3duS2V5cyhlLHIpe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7ciYmKG89by5maWx0ZXIoZnVuY3Rpb24ocil7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxyKS5lbnVtZXJhYmxlfSkpLHQucHVzaC5hcHBseSh0LG8pfXJldHVybiB0fWZ1bmN0aW9uIF9vYmplY3RTcHJlYWQyKGUpe2Zvcih2YXIgcj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tyXT9hcmd1bWVudHNbcl06e307ciUyP293bktleXMoT2JqZWN0KHQpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe19kZWZpbmVQcm9wZXJ0eShlLHIsdFtyXSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTpvd25LZXlzKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxyKSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShyLGEpeyhudWxsPT1hfHxhPnIubGVuZ3RoKSYmKGE9ci5sZW5ndGgpO2Zvcih2YXIgZT0wLG49QXJyYXkoYSk7ZTxhO2UrKyluW2VdPXJbZV07cmV0dXJuIG59ZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkocixlKXtyZXR1cm4gZnVuY3Rpb24ocil7aWYoQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gcn0ocil8fGZ1bmN0aW9uKHIsbCl7dmFyIHQ9bnVsbD09cj9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZyW1N5bWJvbC5pdGVyYXRvcl18fHJbIkBAaXRlcmF0b3IiXTtpZihudWxsIT10KXt2YXIgZSxuLGksdSxhPVtdLGY9ITAsbz0hMTt0cnl7aWYoaT0odD10LmNhbGwocikpLm5leHQsMD09PWwpe2lmKE9iamVjdCh0KSE9PXQpcmV0dXJuO2Y9ITF9ZWxzZSBmb3IoOyEoZj0oZT1pLmNhbGwodCkpLmRvbmUpJiYoYS5wdXNoKGUudmFsdWUpLGEubGVuZ3RoIT09bCk7Zj0hMCk7fWNhdGNoKHIxKXtvPSEwLG49cjF9ZmluYWxseXt0cnl7aWYoIWYmJm51bGwhPXQucmV0dXJuJiYodT10LnJldHVybigpLE9iamVjdCh1KSE9PXUpKXJldHVybn1maW5hbGx5e2lmKG8pdGhyb3cgbn19cmV0dXJuIGF9fShyLGUpfHxmdW5jdGlvbihyLGEpe2lmKHIpe2lmKCJzdHJpbmciPT10eXBlb2YgcilyZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkocixhKTt2YXIgdD0oe30pLnRvU3RyaW5nLmNhbGwocikuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT10JiZyLmNvbnN0cnVjdG9yJiYodD1yLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09dHx8IlNldCI9PT10P0FycmF5LmZyb20ocik6IkFyZ3VtZW50cyI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KT9fYXJyYXlMaWtlVG9BcnJheShyLGEpOnZvaWQgMH19KHIsZSl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfXZhciBlcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI3ODgpLHVzZUxheW91dEVmZmVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDg0MTApLERyYXdlckNvbnRleHQ9cmVhY3QuY3JlYXRlQ29udGV4dChudWxsKSxSZWZDb250ZXh0PXJlYWN0LmNyZWF0ZUNvbnRleHQoe30pO2Z1bmN0aW9uIF9leHRlbmRzKCl7cmV0dXJuKF9leHRlbmRzPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24obil7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIHQ9YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiB0KSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiYobltyXT10W3JdKX1yZXR1cm4gbn0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgbm9kZV9tb2R1bGVzX2NsYXNzbmFtZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NDE4NCksbm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4obm9kZV9tb2R1bGVzX2NsYXNzbmFtZXMpLHJjX21vdGlvbl9lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDgyMjI1KSxLZXlDb2RlPV9fd2VicGFja19yZXF1aXJlX18oMTUxMDUpLHBpY2tBdHRycz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY0MjE3KSxyZWY9X193ZWJwYWNrX3JlcXVpcmVfXyg0MjU1MCksX2V4Y2x1ZGVkPVsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwiY29udGFpbmVyUmVmIl0sZXNfRHJhd2VyUGFuZWw9ZnVuY3Rpb24ocHJvcHMpe3ZhciBwcmVmaXhDbHM9cHJvcHMucHJlZml4Q2xzLGNsYXNzTmFtZT1wcm9wcy5jbGFzc05hbWUsY29udGFpbmVyUmVmPXByb3BzLmNvbnRhaW5lclJlZixyZXN0UHJvcHM9ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBvLHIsaT1mdW5jdGlvbihyLGUpe2lmKG51bGw9PXIpcmV0dXJue307dmFyIHQ9e307Zm9yKHZhciBuIGluIHIpaWYoKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsbikpe2lmKC0xIT09ZS5pbmRleE9mKG4pKWNvbnRpbnVlO3Rbbl09cltuXX1yZXR1cm4gdH0oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxuLmxlbmd0aDtyKyspbz1uW3JdLC0xPT09dC5pbmRleE9mKG8pJiYoe30pLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxvKSYmKGlbb109ZVtvXSl9cmV0dXJuIGl9KHByb3BzLF9leGNsdWRlZCkscGFuZWxSZWY9cmVhY3QudXNlQ29udGV4dChSZWZDb250ZXh0KS5wYW5lbCxtZXJnZWRSZWY9KDAscmVmLngxKShwYW5lbFJlZixjb250YWluZXJSZWYpO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLF9leHRlbmRzKHtjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKCIiLmNvbmNhdChwcmVmaXhDbHMsIi1jb250ZW50IiksY2xhc3NOYW1lKSxyb2xlOiJkaWFsb2ciLHJlZjptZXJnZWRSZWZ9LCgwLHBpY2tBdHRycy5aKShwcm9wcyx7YXJpYTohMH0pLHsiYXJpYS1tb2RhbCI6InRydWUifSxyZXN0UHJvcHMpKX0sZXNfd2FybmluZz1fX3dlYnBhY2tfcmVxdWlyZV9fKDgwMzM0KTtmdW5jdGlvbiBwYXJzZVdpZHRoSGVpZ2h0KHZhbHVlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHZhbHVlJiZTdHJpbmcoTnVtYmVyKHZhbHVlKSk9PT12YWx1ZT8oKDAsZXNfd2FybmluZy5aUCkoITEsIkludmFsaWQgdmFsdWUgdHlwZSBvZiBgd2lkdGhgIG9yIGBoZWlnaHRgIHdoaWNoIHNob3VsZCBiZSBudW1iZXIgdHlwZSBpbnN0ZWFkLiIpLE51bWJlcih2YWx1ZSkpOnZhbHVlfXZhciBzZW50aW5lbFN0eWxlPXt3aWR0aDowLGhlaWdodDowLG92ZXJmbG93OiJoaWRkZW4iLG91dGxpbmU6Im5vbmUiLHBvc2l0aW9uOiJhYnNvbHV0ZSJ9LFJlZkRyYXdlclBvcHVwPXJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24ocHJvcHMscmVmKXt2YXIgX3JlZixfcHVzaENvbmZpZyRkaXN0YW5jZSxfcHVzaENvbmZpZyxwcmVmaXhDbHM9cHJvcHMucHJlZml4Q2xzLG9wZW49cHJvcHMub3BlbixwbGFjZW1lbnQ9cHJvcHMucGxhY2VtZW50LGlubGluZT1wcm9wcy5pbmxpbmUscHVzaD1wcm9wcy5wdXNoLGZvcmNlUmVuZGVyPXByb3BzLmZvcmNlUmVuZGVyLGF1dG9Gb2N1cz1wcm9wcy5hdXRvRm9jdXMsa2V5Ym9hcmQ9cHJvcHMua2V5Ym9hcmQsZHJhd2VyQ2xhc3NOYW1lcz1wcm9wcy5jbGFzc05hbWVzLHJvb3RDbGFzc05hbWU9cHJvcHMucm9vdENsYXNzTmFtZSxyb290U3R5bGU9cHJvcHMucm9vdFN0eWxlLHpJbmRleD1wcm9wcy56SW5kZXgsY2xhc3NOYW1lPXByb3BzLmNsYXNzTmFtZSxpZD1wcm9wcy5pZCxzdHlsZT1wcm9wcy5zdHlsZSxtb3Rpb249cHJvcHMubW90aW9uLHdpZHRoPXByb3BzLndpZHRoLGhlaWdodD1wcm9wcy5oZWlnaHQsY2hpbGRyZW49cHJvcHMuY2hpbGRyZW4sbWFzaz1wcm9wcy5tYXNrLG1hc2tDbG9zYWJsZT1wcm9wcy5tYXNrQ2xvc2FibGUsbWFza01vdGlvbj1wcm9wcy5tYXNrTW90aW9uLG1hc2tDbGFzc05hbWU9cHJvcHMubWFza0NsYXNzTmFtZSxtYXNrU3R5bGU9cHJvcHMubWFza1N0eWxlLGFmdGVyT3BlbkNoYW5nZT1wcm9wcy5hZnRlck9wZW5DaGFuZ2Usb25DbG9zZT1wcm9wcy5vbkNsb3NlLG9uTW91c2VFbnRlcj1wcm9wcy5vbk1vdXNlRW50ZXIsb25Nb3VzZU92ZXI9cHJvcHMub25Nb3VzZU92ZXIsb25Nb3VzZUxlYXZlPXByb3BzLm9uTW91c2VMZWF2ZSxvbkNsaWNrPXByb3BzLm9uQ2xpY2ssb25LZXlEb3duPXByb3BzLm9uS2V5RG93bixvbktleVVwPXByb3BzLm9uS2V5VXAsc3R5bGVzPXByb3BzLnN0eWxlcyxkcmF3ZXJSZW5kZXI9cHJvcHMuZHJhd2VyUmVuZGVyLHBhbmVsUmVmPXJlYWN0LnVzZVJlZigpLHNlbnRpbmVsU3RhcnRSZWY9cmVhY3QudXNlUmVmKCksc2VudGluZWxFbmRSZWY9cmVhY3QudXNlUmVmKCk7cmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsZnVuY3Rpb24oKXtyZXR1cm4gcGFuZWxSZWYuY3VycmVudH0pLHJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbigpe2lmKG9wZW4mJmF1dG9Gb2N1cyl7dmFyIF9wYW5lbFJlZiRjdXJyZW50O251bGw9PT0oX3BhbmVsUmVmJGN1cnJlbnQ9cGFuZWxSZWYuY3VycmVudCl8fHZvaWQgMD09PV9wYW5lbFJlZiRjdXJyZW50fHxfcGFuZWxSZWYkY3VycmVudC5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pfX0sW29wZW5dKTt2YXIgX1JlYWN0JHVzZVN0YXRlMj1fc2xpY2VkVG9BcnJheShyZWFjdC51c2VTdGF0ZSghMSksMikscHVzaGVkPV9SZWFjdCR1c2VTdGF0ZTJbMF0sc2V0UHVzaGVkPV9SZWFjdCR1c2VTdGF0ZTJbMV0scGFyZW50Q29udGV4dD1yZWFjdC51c2VDb250ZXh0KERyYXdlckNvbnRleHQpLHB1c2hEaXN0YW5jZT1udWxsIT09KF9yZWY9bnVsbCE9PShfcHVzaENvbmZpZyRkaXN0YW5jZT1udWxsPT09KF9wdXNoQ29uZmlnPSJib29sZWFuIj09dHlwZW9mIHB1c2g/cHVzaD97fTp7ZGlzdGFuY2U6MH06cHVzaHx8e30pfHx2b2lkIDA9PT1fcHVzaENvbmZpZz92b2lkIDA6X3B1c2hDb25maWcuZGlzdGFuY2UpJiZ2b2lkIDAhPT1fcHVzaENvbmZpZyRkaXN0YW5jZT9fcHVzaENvbmZpZyRkaXN0YW5jZTpudWxsPT1wYXJlbnRDb250ZXh0P3ZvaWQgMDpwYXJlbnRDb250ZXh0LnB1c2hEaXN0YW5jZSkmJnZvaWQgMCE9PV9yZWY/X3JlZjoxODAsbWVyZ2VkQ29udGV4dD1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJue3B1c2hEaXN0YW5jZTpwdXNoRGlzdGFuY2UscHVzaDpmdW5jdGlvbigpe3NldFB1c2hlZCghMCl9LHB1bGw6ZnVuY3Rpb24oKXtzZXRQdXNoZWQoITEpfX19LFtwdXNoRGlzdGFuY2VdKTtyZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24oKXt2YXIgX3BhcmVudENvbnRleHQkcHVzaCxfcGFyZW50Q29udGV4dCRwdWxsO29wZW4/bnVsbD09cGFyZW50Q29udGV4dHx8bnVsbD09PShfcGFyZW50Q29udGV4dCRwdXNoPXBhcmVudENvbnRleHQucHVzaCl8fHZvaWQgMD09PV9wYXJlbnRDb250ZXh0JHB1c2h8fF9wYXJlbnRDb250ZXh0JHB1c2guY2FsbChwYXJlbnRDb250ZXh0KTpudWxsPT1wYXJlbnRDb250ZXh0fHxudWxsPT09KF9wYXJlbnRDb250ZXh0JHB1bGw9cGFyZW50Q29udGV4dC5wdWxsKXx8dm9pZCAwPT09X3BhcmVudENvbnRleHQkcHVsbHx8X3BhcmVudENvbnRleHQkcHVsbC5jYWxsKHBhcmVudENvbnRleHQpfSxbb3Blbl0pLHJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3ZhciBfcGFyZW50Q29udGV4dCRwdWxsMjtudWxsPT1wYXJlbnRDb250ZXh0fHxudWxsPT09KF9wYXJlbnRDb250ZXh0JHB1bGwyPXBhcmVudENvbnRleHQucHVsbCl8fHZvaWQgMD09PV9wYXJlbnRDb250ZXh0JHB1bGwyfHxfcGFyZW50Q29udGV4dCRwdWxsMi5jYWxsKHBhcmVudENvbnRleHQpfX0sW10pO3ZhciBtYXNrTm9kZT1tYXNrJiZyZWFjdC5jcmVhdGVFbGVtZW50KHJjX21vdGlvbl9lcy5aUCxfZXh0ZW5kcyh7a2V5OiJtYXNrIn0sbWFza01vdGlvbix7dmlzaWJsZTpvcGVufSksZnVuY3Rpb24oX3JlZjIsbWFza1JlZil7dmFyIG1vdGlvbk1hc2tDbGFzc05hbWU9X3JlZjIuY2xhc3NOYW1lLG1vdGlvbk1hc2tTdHlsZT1fcmVmMi5zdHlsZTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKSgiIi5jb25jYXQocHJlZml4Q2xzLCItbWFzayIpLG1vdGlvbk1hc2tDbGFzc05hbWUsbnVsbD09ZHJhd2VyQ2xhc3NOYW1lcz92b2lkIDA6ZHJhd2VyQ2xhc3NOYW1lcy5tYXNrLG1hc2tDbGFzc05hbWUpLHN0eWxlOl9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LG1vdGlvbk1hc2tTdHlsZSksbWFza1N0eWxlKSxudWxsPT1zdHlsZXM/dm9pZCAwOnN0eWxlcy5tYXNrKSxvbkNsaWNrOm1hc2tDbG9zYWJsZSYmb3Blbj9vbkNsb3NlOnZvaWQgMCxyZWY6bWFza1JlZn0pfSksbW90aW9uUHJvcHM9ImZ1bmN0aW9uIj09dHlwZW9mIG1vdGlvbj9tb3Rpb24ocGxhY2VtZW50KTptb3Rpb24sd3JhcHBlclN0eWxlPXt9O2lmKHB1c2hlZCYmcHVzaERpc3RhbmNlKXN3aXRjaChwbGFjZW1lbnQpe2Nhc2UidG9wIjp3cmFwcGVyU3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKCIuY29uY2F0KHB1c2hEaXN0YW5jZSwicHgpIik7YnJlYWs7Y2FzZSJib3R0b20iOndyYXBwZXJTdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoIi5jb25jYXQoLXB1c2hEaXN0YW5jZSwicHgpIik7YnJlYWs7Y2FzZSJsZWZ0Ijp3cmFwcGVyU3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVYKCIuY29uY2F0KHB1c2hEaXN0YW5jZSwicHgpIik7YnJlYWs7ZGVmYXVsdDp3cmFwcGVyU3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVYKCIuY29uY2F0KC1wdXNoRGlzdGFuY2UsInB4KSIpfSJsZWZ0Ij09PXBsYWNlbWVudHx8InJpZ2h0Ij09PXBsYWNlbWVudD93cmFwcGVyU3R5bGUud2lkdGg9cGFyc2VXaWR0aEhlaWdodCh3aWR0aCk6d3JhcHBlclN0eWxlLmhlaWdodD1wYXJzZVdpZHRoSGVpZ2h0KGhlaWdodCk7dmFyIGV2ZW50SGFuZGxlcnM9e29uTW91c2VFbnRlcjpvbk1vdXNlRW50ZXIsb25Nb3VzZU92ZXI6b25Nb3VzZU92ZXIsb25Nb3VzZUxlYXZlOm9uTW91c2VMZWF2ZSxvbkNsaWNrOm9uQ2xpY2ssb25LZXlEb3duOm9uS2V5RG93bixvbktleVVwOm9uS2V5VXB9LHBhbmVsTm9kZT1yZWFjdC5jcmVhdGVFbGVtZW50KHJjX21vdGlvbl9lcy5aUCxfZXh0ZW5kcyh7a2V5OiJwYW5lbCJ9LG1vdGlvblByb3BzLHt2aXNpYmxlOm9wZW4sZm9yY2VSZW5kZXI6Zm9yY2VSZW5kZXIsb25WaXNpYmxlQ2hhbmdlZDpmdW5jdGlvbihuZXh0VmlzaWJsZSl7bnVsbD09YWZ0ZXJPcGVuQ2hhbmdlfHxhZnRlck9wZW5DaGFuZ2UobmV4dFZpc2libGUpfSxyZW1vdmVPbkxlYXZlOiExLGxlYXZlZENsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItY29udGVudC13cmFwcGVyLWhpZGRlbiIpfSksZnVuY3Rpb24oX3JlZjMsbW90aW9uUmVmKXt2YXIgbW90aW9uQ2xhc3NOYW1lPV9yZWYzLmNsYXNzTmFtZSxtb3Rpb25TdHlsZT1fcmVmMy5zdHlsZSxjb250ZW50PXJlYWN0LmNyZWF0ZUVsZW1lbnQoZXNfRHJhd2VyUGFuZWwsX2V4dGVuZHMoe2lkOmlkLGNvbnRhaW5lclJlZjptb3Rpb25SZWYscHJlZml4Q2xzOnByZWZpeENscyxjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKGNsYXNzTmFtZSxudWxsPT1kcmF3ZXJDbGFzc05hbWVzP3ZvaWQgMDpkcmF3ZXJDbGFzc05hbWVzLmNvbnRlbnQpLHN0eWxlOl9vYmplY3RTcHJlYWQyKF9vYmplY3RTcHJlYWQyKHt9LHN0eWxlKSxudWxsPT1zdHlsZXM/dm9pZCAwOnN0eWxlcy5jb250ZW50KX0sKDAscGlja0F0dHJzLlopKHByb3BzLHthcmlhOiEwfSksZXZlbnRIYW5kbGVycyksY2hpbGRyZW4pO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLF9leHRlbmRzKHtjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKCIiLmNvbmNhdChwcmVmaXhDbHMsIi1jb250ZW50LXdyYXBwZXIiKSxudWxsPT1kcmF3ZXJDbGFzc05hbWVzP3ZvaWQgMDpkcmF3ZXJDbGFzc05hbWVzLndyYXBwZXIsbW90aW9uQ2xhc3NOYW1lKSxzdHlsZTpfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7fSx3cmFwcGVyU3R5bGUpLG1vdGlvblN0eWxlKSxudWxsPT1zdHlsZXM/dm9pZCAwOnN0eWxlcy53cmFwcGVyKX0sKDAscGlja0F0dHJzLlopKHByb3BzLHtkYXRhOiEwfSkpLGRyYXdlclJlbmRlcj9kcmF3ZXJSZW5kZXIoY29udGVudCk6Y29udGVudCl9KSxjb250YWluZXJTdHlsZT1fb2JqZWN0U3ByZWFkMih7fSxyb290U3R5bGUpO3JldHVybiB6SW5kZXgmJihjb250YWluZXJTdHlsZS56SW5kZXg9ekluZGV4KSxyZWFjdC5jcmVhdGVFbGVtZW50KERyYXdlckNvbnRleHQuUHJvdmlkZXIse3ZhbHVlOm1lcmdlZENvbnRleHR9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0KCkocHJlZml4Q2xzLCIiLmNvbmNhdChwcmVmaXhDbHMsIi0iKS5jb25jYXQocGxhY2VtZW50KSxyb290Q2xhc3NOYW1lLF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoe30sIiIuY29uY2F0KHByZWZpeENscywiLW9wZW4iKSxvcGVuKSwiIi5jb25jYXQocHJlZml4Q2xzLCItaW5saW5lIiksaW5saW5lKSksc3R5bGU6Y29udGFpbmVyU3R5bGUsdGFiSW5kZXg6LTEscmVmOnBhbmVsUmVmLG9uS2V5RG93bjpmdW5jdGlvbihldmVudCl7dmFyIF9zZW50aW5lbFN0YXJ0UmVmJGN1cixfc2VudGluZWxFbmRSZWYkY3VycmUsa2V5Q29kZT1ldmVudC5rZXlDb2RlLHNoaWZ0S2V5PWV2ZW50LnNoaWZ0S2V5O3N3aXRjaChrZXlDb2RlKXtjYXNlIEtleUNvZGUuWi5UQUI6a2V5Q29kZT09PUtleUNvZGUuWi5UQUImJihzaGlmdEtleXx8ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXNlbnRpbmVsRW5kUmVmLmN1cnJlbnQ/c2hpZnRLZXkmJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1zZW50aW5lbFN0YXJ0UmVmLmN1cnJlbnQmJihudWxsPT09KF9zZW50aW5lbEVuZFJlZiRjdXJyZT1zZW50aW5lbEVuZFJlZi5jdXJyZW50KXx8dm9pZCAwPT09X3NlbnRpbmVsRW5kUmVmJGN1cnJlfHxfc2VudGluZWxFbmRSZWYkY3VycmUuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSk6bnVsbD09PShfc2VudGluZWxTdGFydFJlZiRjdXI9c2VudGluZWxTdGFydFJlZi5jdXJyZW50KXx8dm9pZCAwPT09X3NlbnRpbmVsU3RhcnRSZWYkY3VyfHxfc2VudGluZWxTdGFydFJlZiRjdXIuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSk7YnJlYWs7Y2FzZSBLZXlDb2RlLlouRVNDOm9uQ2xvc2UmJmtleWJvYXJkJiYoZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCksb25DbG9zZShldmVudCkpfX19LG1hc2tOb2RlLHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse3RhYkluZGV4OjAscmVmOnNlbnRpbmVsU3RhcnRSZWYsc3R5bGU6c2VudGluZWxTdHlsZSwiYXJpYS1oaWRkZW4iOiJ0cnVlIiwiZGF0YS1zZW50aW5lbCI6InN0YXJ0In0pLHBhbmVsTm9kZSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHt0YWJJbmRleDowLHJlZjpzZW50aW5lbEVuZFJlZixzdHlsZTpzZW50aW5lbFN0eWxlLCJhcmlhLWhpZGRlbiI6InRydWUiLCJkYXRhLXNlbnRpbmVsIjoiZW5kIn0pKSl9KSxyY19kcmF3ZXJfZXM9ZnVuY3Rpb24ocHJvcHMpe3ZhciBfcHJvcHMkb3Blbj1wcm9wcy5vcGVuLF9wcm9wcyRwcmVmaXhDbHM9cHJvcHMucHJlZml4Q2xzLF9wcm9wcyRwbGFjZW1lbnQ9cHJvcHMucGxhY2VtZW50LF9wcm9wcyRhdXRvRm9jdXM9cHJvcHMuYXV0b0ZvY3VzLF9wcm9wcyRrZXlib2FyZD1wcm9wcy5rZXlib2FyZCxfcHJvcHMkd2lkdGg9cHJvcHMud2lkdGgsX3Byb3BzJG1hc2s9cHJvcHMubWFzayxtYXNrPXZvaWQgMD09PV9wcm9wcyRtYXNrfHxfcHJvcHMkbWFzayxfcHJvcHMkbWFza0Nsb3NhYmxlPXByb3BzLm1hc2tDbG9zYWJsZSxnZXRDb250YWluZXI9cHJvcHMuZ2V0Q29udGFpbmVyLGZvcmNlUmVuZGVyPXByb3BzLmZvcmNlUmVuZGVyLGFmdGVyT3BlbkNoYW5nZT1wcm9wcy5hZnRlck9wZW5DaGFuZ2UsZGVzdHJveU9uQ2xvc2U9cHJvcHMuZGVzdHJveU9uQ2xvc2Usb25Nb3VzZUVudGVyPXByb3BzLm9uTW91c2VFbnRlcixvbk1vdXNlT3Zlcj1wcm9wcy5vbk1vdXNlT3Zlcixvbk1vdXNlTGVhdmU9cHJvcHMub25Nb3VzZUxlYXZlLG9uQ2xpY2s9cHJvcHMub25DbGljayxvbktleURvd249cHJvcHMub25LZXlEb3duLG9uS2V5VXA9cHJvcHMub25LZXlVcCxwYW5lbFJlZj1wcm9wcy5wYW5lbFJlZixfUmVhY3QkdXNlU3RhdGUyPV9zbGljZWRUb0FycmF5KHJlYWN0LnVzZVN0YXRlKCExKSwyKSxhbmltYXRlZFZpc2libGU9X1JlYWN0JHVzZVN0YXRlMlswXSxzZXRBbmltYXRlZFZpc2libGU9X1JlYWN0JHVzZVN0YXRlMlsxXSxfUmVhY3QkdXNlU3RhdGU0PV9zbGljZWRUb0FycmF5KHJlYWN0LnVzZVN0YXRlKCExKSwyKSxtb3VudGVkPV9SZWFjdCR1c2VTdGF0ZTRbMF0sc2V0TW91bnRlZD1fUmVhY3QkdXNlU3RhdGU0WzFdOygwLHVzZUxheW91dEVmZmVjdC5aKShmdW5jdGlvbigpe3NldE1vdW50ZWQoITApfSxbXSk7dmFyIG1lcmdlZE9wZW49ISFtb3VudGVkJiZ2b2lkIDAhPT1fcHJvcHMkb3BlbiYmX3Byb3BzJG9wZW4scG9wdXBSZWY9cmVhY3QudXNlUmVmKCksbGFzdEFjdGl2ZVJlZj1yZWFjdC51c2VSZWYoKTsoMCx1c2VMYXlvdXRFZmZlY3QuWikoZnVuY3Rpb24oKXttZXJnZWRPcGVuJiYobGFzdEFjdGl2ZVJlZi5jdXJyZW50PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpfSxbbWVyZ2VkT3Blbl0pO3ZhciByZWZDb250ZXh0PXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm57cGFuZWw6cGFuZWxSZWZ9fSxbcGFuZWxSZWZdKTtpZighZm9yY2VSZW5kZXImJiFhbmltYXRlZFZpc2libGUmJiFtZXJnZWRPcGVuJiZkZXN0cm95T25DbG9zZSlyZXR1cm4gbnVsbDt2YXIgZHJhd2VyUG9wdXBQcm9wcz1fb2JqZWN0U3ByZWFkMihfb2JqZWN0U3ByZWFkMih7fSxwcm9wcykse30se29wZW46bWVyZ2VkT3BlbixwcmVmaXhDbHM6dm9pZCAwPT09X3Byb3BzJHByZWZpeENscz8icmMtZHJhd2VyIjpfcHJvcHMkcHJlZml4Q2xzLHBsYWNlbWVudDp2b2lkIDA9PT1fcHJvcHMkcGxhY2VtZW50PyJyaWdodCI6X3Byb3BzJHBsYWNlbWVudCxhdXRvRm9jdXM6dm9pZCAwPT09X3Byb3BzJGF1dG9Gb2N1c3x8X3Byb3BzJGF1dG9Gb2N1cyxrZXlib2FyZDp2b2lkIDA9PT1fcHJvcHMka2V5Ym9hcmR8fF9wcm9wcyRrZXlib2FyZCx3aWR0aDp2b2lkIDA9PT1fcHJvcHMkd2lkdGg/Mzc4Ol9wcm9wcyR3aWR0aCxtYXNrOm1hc2ssbWFza0Nsb3NhYmxlOnZvaWQgMD09PV9wcm9wcyRtYXNrQ2xvc2FibGV8fF9wcm9wcyRtYXNrQ2xvc2FibGUsaW5saW5lOiExPT09Z2V0Q29udGFpbmVyLGFmdGVyT3BlbkNoYW5nZTpmdW5jdGlvbihuZXh0VmlzaWJsZSl7dmFyIF9wb3B1cFJlZiRjdXJyZW50LF9sYXN0QWN0aXZlUmVmJGN1cnJlbjtzZXRBbmltYXRlZFZpc2libGUobmV4dFZpc2libGUpLG51bGw9PWFmdGVyT3BlbkNoYW5nZXx8YWZ0ZXJPcGVuQ2hhbmdlKG5leHRWaXNpYmxlKSxuZXh0VmlzaWJsZXx8IWxhc3RBY3RpdmVSZWYuY3VycmVudHx8bnVsbCE9PShfcG9wdXBSZWYkY3VycmVudD1wb3B1cFJlZi5jdXJyZW50KSYmdm9pZCAwIT09X3BvcHVwUmVmJGN1cnJlbnQmJl9wb3B1cFJlZiRjdXJyZW50LmNvbnRhaW5zKGxhc3RBY3RpdmVSZWYuY3VycmVudCl8fG51bGw9PT0oX2xhc3RBY3RpdmVSZWYkY3VycmVuPWxhc3RBY3RpdmVSZWYuY3VycmVudCl8fHZvaWQgMD09PV9sYXN0QWN0aXZlUmVmJGN1cnJlbnx8X2xhc3RBY3RpdmVSZWYkY3VycmVuLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSl9LHJlZjpwb3B1cFJlZn0se29uTW91c2VFbnRlcjpvbk1vdXNlRW50ZXIsb25Nb3VzZU92ZXI6b25Nb3VzZU92ZXIsb25Nb3VzZUxlYXZlOm9uTW91c2VMZWF2ZSxvbkNsaWNrOm9uQ2xpY2ssb25LZXlEb3duOm9uS2V5RG93bixvbktleVVwOm9uS2V5VXB9KTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChSZWZDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpyZWZDb250ZXh0fSxyZWFjdC5jcmVhdGVFbGVtZW50KGVzLlose29wZW46bWVyZ2VkT3Blbnx8Zm9yY2VSZW5kZXJ8fGFuaW1hdGVkVmlzaWJsZSxhdXRvRGVzdHJveTohMSxnZXRDb250YWluZXI6Z2V0Q29udGFpbmVyLGF1dG9Mb2NrOm1hc2smJihtZXJnZWRPcGVufHxhbmltYXRlZFZpc2libGUpfSxyZWFjdC5jcmVhdGVFbGVtZW50KFJlZkRyYXdlclBvcHVwLGRyYXdlclBvcHVwUHJvcHMpKSl9LENvbnRleHRJc29sYXRvcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDg5OTQyKSx1c2VaSW5kZXg9X193ZWJwYWNrX3JlcXVpcmVfXyg4NzI2MyksbW90aW9uPV9fd2VicGFja19yZXF1aXJlX18oMzM2MDMpLHppbmRleENvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg0Mzk0NSksY29uZmlnX3Byb3ZpZGVyX2NvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzEyNCksd2F0ZXJtYXJrX2NvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXygxNjU2OSksdXNlQ2xvc2FibGU9X193ZWJwYWNrX3JlcXVpcmVfXygyMDcyKSxza2VsZXRvbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ4MDU0KTtsZXQgRHJhd2VyUGFuZWxfRHJhd2VyUGFuZWw9cHJvcHM9Pnt2YXIgX2EsX2I7bGV0e3ByZWZpeENscyx0aXRsZSxmb290ZXIsZXh0cmEsbG9hZGluZyxvbkNsb3NlLGhlYWRlclN0eWxlLGJvZHlTdHlsZSxmb290ZXJTdHlsZSxjaGlsZHJlbixjbGFzc05hbWVzOmRyYXdlckNsYXNzTmFtZXMsc3R5bGVzOmRyYXdlclN0eWxlc309cHJvcHMsZHJhd2VyQ29udGV4dD0oMCxjb25maWdfcHJvdmlkZXJfY29udGV4dC5kaikoImRyYXdlciIpLGN1c3RvbUNsb3NlSWNvblJlbmRlcj1yZWFjdC51c2VDYWxsYmFjayhpY29uPT5yZWFjdC5jcmVhdGVFbGVtZW50KCJidXR0b24iLHt0eXBlOiJidXR0b24iLG9uQ2xpY2s6b25DbG9zZSxjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS1jbG9zZWB9LGljb24pLFtvbkNsb3NlXSksW21lcmdlZENsb3NhYmxlLG1lcmdlZENsb3NlSWNvbl09KDAsdXNlQ2xvc2FibGUuWikoKDAsdXNlQ2xvc2FibGUudykocHJvcHMpLCgwLHVzZUNsb3NhYmxlLncpKGRyYXdlckNvbnRleHQpLHtjbG9zYWJsZTohMCxjbG9zZUljb25SZW5kZXI6Y3VzdG9tQ2xvc2VJY29uUmVuZGVyfSksaGVhZGVyTm9kZT1yZWFjdC51c2VNZW1vKCgpPT57dmFyIF9hLF9iO3JldHVybiB0aXRsZXx8bWVyZ2VkQ2xvc2FibGU/cmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbnVsbD09PShfYT1kcmF3ZXJDb250ZXh0LnN0eWxlcyl8fHZvaWQgMD09PV9hP3ZvaWQgMDpfYS5oZWFkZXIpLGhlYWRlclN0eWxlKSxudWxsPT1kcmF3ZXJTdHlsZXM/dm9pZCAwOmRyYXdlclN0eWxlcy5oZWFkZXIpLGNsYXNzTmFtZTpjbGFzc25hbWVzX2RlZmF1bHQoKShgJHtwcmVmaXhDbHN9LWhlYWRlcmAse1tgJHtwcmVmaXhDbHN9LWhlYWRlci1jbG9zZS1vbmx5YF06bWVyZ2VkQ2xvc2FibGUmJiF0aXRsZSYmIWV4dHJhfSxudWxsPT09KF9iPWRyYXdlckNvbnRleHQuY2xhc3NOYW1lcyl8fHZvaWQgMD09PV9iP3ZvaWQgMDpfYi5oZWFkZXIsbnVsbD09ZHJhd2VyQ2xhc3NOYW1lcz92b2lkIDA6ZHJhd2VyQ2xhc3NOYW1lcy5oZWFkZXIpfSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS1oZWFkZXItdGl0bGVgfSxtZXJnZWRDbG9zZUljb24sdGl0bGUmJnJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtwcmVmaXhDbHN9LXRpdGxlYH0sdGl0bGUpKSxleHRyYSYmcmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30tZXh0cmFgfSxleHRyYSkpOm51bGx9LFttZXJnZWRDbG9zYWJsZSxtZXJnZWRDbG9zZUljb24sZXh0cmEsaGVhZGVyU3R5bGUscHJlZml4Q2xzLHRpdGxlXSksZm9vdGVyTm9kZT1yZWFjdC51c2VNZW1vKCgpPT57dmFyIF9hLF9iO2lmKCFmb290ZXIpcmV0dXJuIG51bGw7bGV0IGZvb3RlckNsYXNzTmFtZT1gJHtwcmVmaXhDbHN9LWZvb3RlcmA7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpjbGFzc25hbWVzX2RlZmF1bHQoKShmb290ZXJDbGFzc05hbWUsbnVsbD09PShfYT1kcmF3ZXJDb250ZXh0LmNsYXNzTmFtZXMpfHx2b2lkIDA9PT1fYT92b2lkIDA6X2EuZm9vdGVyLG51bGw9PWRyYXdlckNsYXNzTmFtZXM/dm9pZCAwOmRyYXdlckNsYXNzTmFtZXMuZm9vdGVyKSxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxudWxsPT09KF9iPWRyYXdlckNvbnRleHQuc3R5bGVzKXx8dm9pZCAwPT09X2I/dm9pZCAwOl9iLmZvb3RlciksZm9vdGVyU3R5bGUpLG51bGw9PWRyYXdlclN0eWxlcz92b2lkIDA6ZHJhd2VyU3R5bGVzLmZvb3Rlcil9LGZvb3Rlcil9LFtmb290ZXIsZm9vdGVyU3R5bGUscHJlZml4Q2xzXSk7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQocmVhY3QuRnJhZ21lbnQsbnVsbCxoZWFkZXJOb2RlLHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpjbGFzc25hbWVzX2RlZmF1bHQoKShgJHtwcmVmaXhDbHN9LWJvZHlgLG51bGw9PWRyYXdlckNsYXNzTmFtZXM/dm9pZCAwOmRyYXdlckNsYXNzTmFtZXMuYm9keSxudWxsPT09KF9hPWRyYXdlckNvbnRleHQuY2xhc3NOYW1lcyl8fHZvaWQgMD09PV9hP3ZvaWQgMDpfYS5ib2R5KSxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxudWxsPT09KF9iPWRyYXdlckNvbnRleHQuc3R5bGVzKXx8dm9pZCAwPT09X2I/dm9pZCAwOl9iLmJvZHkpLGJvZHlTdHlsZSksbnVsbD09ZHJhd2VyU3R5bGVzP3ZvaWQgMDpkcmF3ZXJTdHlsZXMuYm9keSl9LGxvYWRpbmc/cmVhY3QuY3JlYXRlRWxlbWVudChza2VsZXRvbi5aLHthY3RpdmU6ITAsdGl0bGU6ITEscGFyYWdyYXBoOntyb3dzOjV9LGNsYXNzTmFtZTpgJHtwcmVmaXhDbHN9LWJvZHktc2tlbGV0b25gfSk6Y2hpbGRyZW4pLGZvb3Rlck5vZGUpfTt2YXIgY3NzaW5qc19lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ0ODk5KSxzdHlsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDE0NzQ3KSxnZW5TdHlsZVV0aWxzPV9fd2VicGFja19yZXF1aXJlX18oODM1NTkpLGNzc2luanNfdXRpbHNfZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0MjU1OSk7bGV0IGdldE1vdmVUcmFuc2xhdGU9ZGlyZWN0aW9uPT57bGV0IHZhbHVlPSIxMDAlIjtyZXR1cm4oe2xlZnQ6YHRyYW5zbGF0ZVgoLSR7dmFsdWV9KWAscmlnaHQ6YHRyYW5zbGF0ZVgoJHt2YWx1ZX0pYCx0b3A6YHRyYW5zbGF0ZVkoLSR7dmFsdWV9KWAsYm90dG9tOmB0cmFuc2xhdGVZKCR7dmFsdWV9KWB9KVtkaXJlY3Rpb25dfSxnZXRFbnRlckxlYXZlU3R5bGU9KHN0YXJ0U3R5bGUsZW5kU3R5bGUpPT4oeyImLWVudGVyLCAmLWFwcGVhciI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHN0YXJ0U3R5bGUpLHsiJi1hY3RpdmUiOmVuZFN0eWxlfSksIiYtbGVhdmUiOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlbmRTdHlsZSkseyImLWFjdGl2ZSI6c3RhcnRTdHlsZX0pfSksZ2V0RmFkZVN0eWxlPShmcm9tLGR1cmF0aW9uKT0+T2JqZWN0LmFzc2lnbih7IiYtZW50ZXIsICYtYXBwZWFyLCAmLWxlYXZlIjp7IiYtc3RhcnQiOnt0cmFuc2l0aW9uOiJub25lIn0sIiYtYWN0aXZlIjp7dHJhbnNpdGlvbjpgYWxsICR7ZHVyYXRpb259YH19fSxnZXRFbnRlckxlYXZlU3R5bGUoe29wYWNpdHk6ZnJvbX0se29wYWNpdHk6MX0pKSxnZXRQYW5lbE1vdGlvblN0eWxlcz0oZGlyZWN0aW9uLGR1cmF0aW9uKT0+W2dldEZhZGVTdHlsZSguNyxkdXJhdGlvbiksZ2V0RW50ZXJMZWF2ZVN0eWxlKHt0cmFuc2Zvcm06Z2V0TW92ZVRyYW5zbGF0ZShkaXJlY3Rpb24pfSx7dHJhbnNmb3JtOiJub25lIn0pXSxnZW5Nb3Rpb25TdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHMsbW90aW9uRHVyYXRpb25TbG93fT10b2tlbjtyZXR1cm57W2NvbXBvbmVudENsc106e1tgJHtjb21wb25lbnRDbHN9LW1hc2stbW90aW9uYF06Z2V0RmFkZVN0eWxlKDAsbW90aW9uRHVyYXRpb25TbG93KSxbYCR7Y29tcG9uZW50Q2xzfS1wYW5lbC1tb3Rpb25gXTpbImxlZnQiLCJyaWdodCIsInRvcCIsImJvdHRvbSJdLnJlZHVjZSgob2JqLGRpcmVjdGlvbik9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxvYmopLHtbYCYtJHtkaXJlY3Rpb259YF06Z2V0UGFuZWxNb3Rpb25TdHlsZXMoZGlyZWN0aW9uLG1vdGlvbkR1cmF0aW9uU2xvdyl9KSx7fSl9fX0sZ2VuRHJhd2VyU3R5bGU9dG9rZW49PntsZXR7Ym9yZGVyUmFkaXVzU00sY29tcG9uZW50Q2xzLHpJbmRleFBvcHVwLGNvbG9yQmdNYXNrLGNvbG9yQmdFbGV2YXRlZCxtb3Rpb25EdXJhdGlvblNsb3csbW90aW9uRHVyYXRpb25NaWQscGFkZGluZ1hTLHBhZGRpbmcscGFkZGluZ0xHLGZvbnRTaXplTEcsbGluZUhlaWdodExHLGxpbmVXaWR0aCxsaW5lVHlwZSxjb2xvclNwbGl0LG1hcmdpblhTLGNvbG9ySWNvbixjb2xvckljb25Ib3Zlcixjb2xvckJnVGV4dEhvdmVyLGNvbG9yQmdUZXh0QWN0aXZlLGNvbG9yVGV4dCxmb250V2VpZ2h0U3Ryb25nLGZvb3RlclBhZGRpbmdCbG9jayxmb290ZXJQYWRkaW5nSW5saW5lLGNhbGN9PXRva2VuLHdyYXBwZXJDbHM9YCR7Y29tcG9uZW50Q2xzfS1jb250ZW50LXdyYXBwZXJgO3JldHVybntbY29tcG9uZW50Q2xzXTp7cG9zaXRpb246ImZpeGVkIixpbnNldDowLHpJbmRleDp6SW5kZXhQb3B1cCxwb2ludGVyRXZlbnRzOiJub25lIixjb2xvcjpjb2xvclRleHQsIiYtcHVyZSI6e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsYmFja2dyb3VuZDpjb2xvckJnRWxldmF0ZWQsZGlzcGxheToiZmxleCIsZmxleERpcmVjdGlvbjoiY29sdW1uIixbYCYke2NvbXBvbmVudENsc30tbGVmdGBdOntib3hTaGFkb3c6dG9rZW4uYm94U2hhZG93RHJhd2VyTGVmdH0sW2AmJHtjb21wb25lbnRDbHN9LXJpZ2h0YF06e2JveFNoYWRvdzp0b2tlbi5ib3hTaGFkb3dEcmF3ZXJSaWdodH0sW2AmJHtjb21wb25lbnRDbHN9LXRvcGBdOntib3hTaGFkb3c6dG9rZW4uYm94U2hhZG93RHJhd2VyVXB9LFtgJiR7Y29tcG9uZW50Q2xzfS1ib3R0b21gXTp7Ym94U2hhZG93OnRva2VuLmJveFNoYWRvd0RyYXdlckRvd259fSwiJi1pbmxpbmUiOntwb3NpdGlvbjoiYWJzb2x1dGUifSxbYCR7Y29tcG9uZW50Q2xzfS1tYXNrYF06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaW5zZXQ6MCx6SW5kZXg6ekluZGV4UG9wdXAsYmFja2dyb3VuZDpjb2xvckJnTWFzayxwb2ludGVyRXZlbnRzOiJhdXRvIn0sW3dyYXBwZXJDbHNdOntwb3NpdGlvbjoiYWJzb2x1dGUiLHpJbmRleDp6SW5kZXhQb3B1cCxtYXhXaWR0aDoiMTAwdnciLHRyYW5zaXRpb246YGFsbCAke21vdGlvbkR1cmF0aW9uU2xvd31gLCImLWhpZGRlbiI6e2Rpc3BsYXk6Im5vbmUifX0sW2AmLWxlZnQgPiAke3dyYXBwZXJDbHN9YF06e3RvcDowLGJvdHRvbTowLGxlZnQ6e19za2lwX2NoZWNrXzohMCx2YWx1ZTowfSxib3hTaGFkb3c6dG9rZW4uYm94U2hhZG93RHJhd2VyTGVmdH0sW2AmLXJpZ2h0ID4gJHt3cmFwcGVyQ2xzfWBdOnt0b3A6MCxyaWdodDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOjB9LGJvdHRvbTowLGJveFNoYWRvdzp0b2tlbi5ib3hTaGFkb3dEcmF3ZXJSaWdodH0sW2AmLXRvcCA+ICR7d3JhcHBlckNsc31gXTp7dG9wOjAsaW5zZXRJbmxpbmU6MCxib3hTaGFkb3c6dG9rZW4uYm94U2hhZG93RHJhd2VyVXB9LFtgJi1ib3R0b20gPiAke3dyYXBwZXJDbHN9YF06e2JvdHRvbTowLGluc2V0SW5saW5lOjAsYm94U2hhZG93OnRva2VuLmJveFNoYWRvd0RyYXdlckRvd259LFtgJHtjb21wb25lbnRDbHN9LWNvbnRlbnRgXTp7ZGlzcGxheToiZmxleCIsZmxleERpcmVjdGlvbjoiY29sdW1uIix3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixvdmVyZmxvdzoiYXV0byIsYmFja2dyb3VuZDpjb2xvckJnRWxldmF0ZWQscG9pbnRlckV2ZW50czoiYXV0byJ9LFtgJHtjb21wb25lbnRDbHN9LWhlYWRlcmBdOntkaXNwbGF5OiJmbGV4IixmbGV4OjAsYWxpZ25JdGVtczoiY2VudGVyIixwYWRkaW5nOmAkeygwLGNzc2luanNfZXMuYmYpKHBhZGRpbmcpfSAkeygwLGNzc2luanNfZXMuYmYpKHBhZGRpbmdMRyl9YCxmb250U2l6ZTpmb250U2l6ZUxHLGxpbmVIZWlnaHQ6bGluZUhlaWdodExHLGJvcmRlckJvdHRvbTpgJHsoMCxjc3NpbmpzX2VzLmJmKShsaW5lV2lkdGgpfSAke2xpbmVUeXBlfSAke2NvbG9yU3BsaXR9YCwiJi10aXRsZSI6e2Rpc3BsYXk6ImZsZXgiLGZsZXg6MSxhbGlnbkl0ZW1zOiJjZW50ZXIiLG1pbldpZHRoOjAsbWluSGVpZ2h0OjB9fSxbYCR7Y29tcG9uZW50Q2xzfS1leHRyYWBdOntmbGV4OiJub25lIn0sW2Ake2NvbXBvbmVudENsc30tY2xvc2VgXTpPYmplY3QuYXNzaWduKHtkaXNwbGF5OiJpbmxpbmUtZmxleCIsd2lkdGg6Y2FsYyhmb250U2l6ZUxHKS5hZGQocGFkZGluZ1hTKS5lcXVhbCgpLGhlaWdodDpjYWxjKGZvbnRTaXplTEcpLmFkZChwYWRkaW5nWFMpLmVxdWFsKCksYm9yZGVyUmFkaXVzOmJvcmRlclJhZGl1c1NNLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLGFsaWduSXRlbXM6ImNlbnRlciIsbWFyZ2luSW5saW5lRW5kOm1hcmdpblhTLGNvbG9yOmNvbG9ySWNvbixmb250V2VpZ2h0OmZvbnRXZWlnaHRTdHJvbmcsZm9udFNpemU6Zm9udFNpemVMRyxmb250U3R5bGU6Im5vcm1hbCIsbGluZUhlaWdodDoxLHRleHRBbGlnbjoiY2VudGVyIix0ZXh0VHJhbnNmb3JtOiJub25lIix0ZXh0RGVjb3JhdGlvbjoibm9uZSIsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGJvcmRlcjowLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7bW90aW9uRHVyYXRpb25NaWR9YCx0ZXh0UmVuZGVyaW5nOiJhdXRvIiwiJjpob3ZlciI6e2NvbG9yOmNvbG9ySWNvbkhvdmVyLGJhY2tncm91bmRDb2xvcjpjb2xvckJnVGV4dEhvdmVyLHRleHREZWNvcmF0aW9uOiJub25lIn0sIiY6YWN0aXZlIjp7YmFja2dyb3VuZENvbG9yOmNvbG9yQmdUZXh0QWN0aXZlfX0sKDAsc3R5bGUuUXkpKHRva2VuKSksW2Ake2NvbXBvbmVudENsc30tdGl0bGVgXTp7ZmxleDoxLG1hcmdpbjowLGZvbnRXZWlnaHQ6dG9rZW4uZm9udFdlaWdodFN0cm9uZyxmb250U2l6ZTpmb250U2l6ZUxHLGxpbmVIZWlnaHQ6bGluZUhlaWdodExHfSxbYCR7Y29tcG9uZW50Q2xzfS1ib2R5YF06e2ZsZXg6MSxtaW5XaWR0aDowLG1pbkhlaWdodDowLHBhZGRpbmc6cGFkZGluZ0xHLG92ZXJmbG93OiJhdXRvIixbYCR7Y29tcG9uZW50Q2xzfS1ib2R5LXNrZWxldG9uYF06e3dpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLGRpc3BsYXk6ImZsZXgiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIifX0sW2Ake2NvbXBvbmVudENsc30tZm9vdGVyYF06e2ZsZXhTaHJpbms6MCxwYWRkaW5nOmAkeygwLGNzc2luanNfZXMuYmYpKGZvb3RlclBhZGRpbmdCbG9jayl9ICR7KDAsY3NzaW5qc19lcy5iZikoZm9vdGVyUGFkZGluZ0lubGluZSl9YCxib3JkZXJUb3A6YCR7KDAsY3NzaW5qc19lcy5iZikobGluZVdpZHRoKX0gJHtsaW5lVHlwZX0gJHtjb2xvclNwbGl0fWB9LCImLXJ0bCI6e2RpcmVjdGlvbjoicnRsIn19fX0scHJlcGFyZUNvbXBvbmVudFRva2VuPXRva2VuPT4oe3pJbmRleFBvcHVwOnRva2VuLnpJbmRleFBvcHVwQmFzZSxmb290ZXJQYWRkaW5nQmxvY2s6dG9rZW4ucGFkZGluZ1hTLGZvb3RlclBhZGRpbmdJbmxpbmU6dG9rZW4ucGFkZGluZ30pO3ZhciBkcmF3ZXJfc3R5bGU9KDAsZ2VuU3R5bGVVdGlscy5JJCkoIkRyYXdlciIsdG9rZW49PntsZXQgZHJhd2VyVG9rZW49KDAsY3NzaW5qc191dGlsc19lcy5JWCkodG9rZW4se30pO3JldHVybltnZW5EcmF3ZXJTdHlsZShkcmF3ZXJUb2tlbiksZ2VuTW90aW9uU3R5bGUoZHJhd2VyVG9rZW4pXX0scHJlcGFyZUNvbXBvbmVudFRva2VuKSxfX3Jlc3Q9ZnVuY3Rpb24ocyxlKXt2YXIgdD17fTtmb3IodmFyIHAgaW4gcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxwKSYmMD5lLmluZGV4T2YocCkmJih0W3BdPXNbcF0pO2lmKG51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKWZvcih2YXIgaT0wLHA9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtpPHAubGVuZ3RoO2krKykwPmUuaW5kZXhPZihwW2ldKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMscFtpXSkmJih0W3BbaV1dPXNbcFtpXV0pO3JldHVybiB0fTtsZXQgZGVmYXVsdFB1c2hTdGF0ZT17ZGlzdGFuY2U6MTgwfSxkcmF3ZXJfRHJhd2VyPXByb3BzPT57bGV0e3Jvb3RDbGFzc05hbWUsd2lkdGgsaGVpZ2h0LHNpemU9ImRlZmF1bHQiLG1hc2s9ITAscHVzaD1kZWZhdWx0UHVzaFN0YXRlLG9wZW4sYWZ0ZXJPcGVuQ2hhbmdlLG9uQ2xvc2UscHJlZml4Q2xzOmN1c3RvbWl6ZVByZWZpeENscyxnZXRDb250YWluZXI6Y3VzdG9taXplR2V0Q29udGFpbmVyLHN0eWxlLGNsYXNzTmFtZSx2aXNpYmxlLGFmdGVyVmlzaWJsZUNoYW5nZSxtYXNrU3R5bGUsZHJhd2VyU3R5bGUsY29udGVudFdyYXBwZXJTdHlsZSxkZXN0cm95T25DbG9zZSxkZXN0cm95T25IaWRkZW59PXByb3BzLHJlc3Q9X19yZXN0KHByb3BzLFsicm9vdENsYXNzTmFtZSIsIndpZHRoIiwiaGVpZ2h0Iiwic2l6ZSIsIm1hc2siLCJwdXNoIiwib3BlbiIsImFmdGVyT3BlbkNoYW5nZSIsIm9uQ2xvc2UiLCJwcmVmaXhDbHMiLCJnZXRDb250YWluZXIiLCJzdHlsZSIsImNsYXNzTmFtZSIsInZpc2libGUiLCJhZnRlclZpc2libGVDaGFuZ2UiLCJtYXNrU3R5bGUiLCJkcmF3ZXJTdHlsZSIsImNvbnRlbnRXcmFwcGVyU3R5bGUiLCJkZXN0cm95T25DbG9zZSIsImRlc3Ryb3lPbkhpZGRlbiJdKSx7Z2V0UG9wdXBDb250YWluZXIsZ2V0UHJlZml4Q2xzLGRpcmVjdGlvbixjbGFzc05hbWU6Y29udGV4dENsYXNzTmFtZSxzdHlsZTpjb250ZXh0U3R5bGUsY2xhc3NOYW1lczpjb250ZXh0Q2xhc3NOYW1lcyxzdHlsZXM6Y29udGV4dFN0eWxlc309KDAsY29uZmlnX3Byb3ZpZGVyX2NvbnRleHQuZGopKCJkcmF3ZXIiKSxwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJkcmF3ZXIiLGN1c3RvbWl6ZVByZWZpeENscyksW3dyYXBDU1NWYXIsaGFzaElkLGNzc1ZhckNsc109ZHJhd2VyX3N0eWxlKHByZWZpeENscyksZHJhd2VyQ2xhc3NOYW1lPWNsYXNzbmFtZXNfZGVmYXVsdCgpKHsibm8tbWFzayI6IW1hc2ssW2Ake3ByZWZpeENsc30tcnRsYF06InJ0bCI9PT1kaXJlY3Rpb259LHJvb3RDbGFzc05hbWUsaGFzaElkLGNzc1ZhckNscyksbWVyZ2VkV2lkdGg9cmVhY3QudXNlTWVtbygoKT0+bnVsbCE9d2lkdGg/d2lkdGg6ImxhcmdlIj09PXNpemU/NzM2OjM3OCxbd2lkdGgsc2l6ZV0pLG1lcmdlZEhlaWdodD1yZWFjdC51c2VNZW1vKCgpPT5udWxsIT1oZWlnaHQ/aGVpZ2h0OiJsYXJnZSI9PT1zaXplPzczNjozNzgsW2hlaWdodCxzaXplXSksbWFza01vdGlvbj17bW90aW9uTmFtZTooMCxtb3Rpb24ubSkocHJlZml4Q2xzLCJtYXNrLW1vdGlvbiIpLG1vdGlvbkFwcGVhcjohMCxtb3Rpb25FbnRlcjohMCxtb3Rpb25MZWF2ZTohMCxtb3Rpb25EZWFkbGluZTo1MDB9LHBhbmVsTW90aW9uPW1vdGlvblBsYWNlbWVudD0+KHttb3Rpb25OYW1lOigwLG1vdGlvbi5tKShwcmVmaXhDbHMsYHBhbmVsLW1vdGlvbi0ke21vdGlvblBsYWNlbWVudH1gKSxtb3Rpb25BcHBlYXI6ITAsbW90aW9uRW50ZXI6ITAsbW90aW9uTGVhdmU6ITAsbW90aW9uRGVhZGxpbmU6NTAwfSkscGFuZWxSZWY9KDAsd2F0ZXJtYXJrX2NvbnRleHQuSCkoKSxbekluZGV4LGNvbnRleHRaSW5kZXhdPSgwLHVzZVpJbmRleC5DbikoIkRyYXdlciIscmVzdC56SW5kZXgpLHtjbGFzc05hbWVzOnByb3BDbGFzc05hbWVzPXt9LHN0eWxlczpwcm9wU3R5bGVzPXt9fT1yZXN0O3JldHVybiB3cmFwQ1NTVmFyKHJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29udGV4dElzb2xhdG9yLlose2Zvcm06ITAsc3BhY2U6ITB9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoemluZGV4Q29udGV4dC5aLlByb3ZpZGVyLHt2YWx1ZTpjb250ZXh0WkluZGV4fSxyZWFjdC5jcmVhdGVFbGVtZW50KHJjX2RyYXdlcl9lcyxPYmplY3QuYXNzaWduKHtwcmVmaXhDbHM6cHJlZml4Q2xzLG9uQ2xvc2U6b25DbG9zZSxtYXNrTW90aW9uOm1hc2tNb3Rpb24sbW90aW9uOnBhbmVsTW90aW9ufSxyZXN0LHtjbGFzc05hbWVzOnttYXNrOmNsYXNzbmFtZXNfZGVmYXVsdCgpKHByb3BDbGFzc05hbWVzLm1hc2ssY29udGV4dENsYXNzTmFtZXMubWFzayksY29udGVudDpjbGFzc25hbWVzX2RlZmF1bHQoKShwcm9wQ2xhc3NOYW1lcy5jb250ZW50LGNvbnRleHRDbGFzc05hbWVzLmNvbnRlbnQpLHdyYXBwZXI6Y2xhc3NuYW1lc19kZWZhdWx0KCkocHJvcENsYXNzTmFtZXMud3JhcHBlcixjb250ZXh0Q2xhc3NOYW1lcy53cmFwcGVyKX0sc3R5bGVzOnttYXNrOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHByb3BTdHlsZXMubWFzayksbWFza1N0eWxlKSxjb250ZXh0U3R5bGVzLm1hc2spLGNvbnRlbnQ6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scHJvcFN0eWxlcy5jb250ZW50KSxkcmF3ZXJTdHlsZSksY29udGV4dFN0eWxlcy5jb250ZW50KSx3cmFwcGVyOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHByb3BTdHlsZXMud3JhcHBlciksY29udGVudFdyYXBwZXJTdHlsZSksY29udGV4dFN0eWxlcy53cmFwcGVyKX0sb3BlbjpudWxsIT1vcGVuP29wZW46dmlzaWJsZSxtYXNrOm1hc2sscHVzaDpwdXNoLHdpZHRoOm1lcmdlZFdpZHRoLGhlaWdodDptZXJnZWRIZWlnaHQsc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGNvbnRleHRTdHlsZSksc3R5bGUpLGNsYXNzTmFtZTpjbGFzc25hbWVzX2RlZmF1bHQoKShjb250ZXh0Q2xhc3NOYW1lLGNsYXNzTmFtZSkscm9vdENsYXNzTmFtZTpkcmF3ZXJDbGFzc05hbWUsZ2V0Q29udGFpbmVyOnZvaWQgMD09PWN1c3RvbWl6ZUdldENvbnRhaW5lciYmZ2V0UG9wdXBDb250YWluZXI/KCk9PmdldFBvcHVwQ29udGFpbmVyKGRvY3VtZW50LmJvZHkpOmN1c3RvbWl6ZUdldENvbnRhaW5lcixhZnRlck9wZW5DaGFuZ2U6bnVsbCE9YWZ0ZXJPcGVuQ2hhbmdlP2FmdGVyT3BlbkNoYW5nZTphZnRlclZpc2libGVDaGFuZ2UscGFuZWxSZWY6cGFuZWxSZWYsekluZGV4OnpJbmRleCxkZXN0cm95T25DbG9zZTpudWxsIT1kZXN0cm95T25IaWRkZW4/ZGVzdHJveU9uSGlkZGVuOmRlc3Ryb3lPbkNsb3NlfSkscmVhY3QuY3JlYXRlRWxlbWVudChEcmF3ZXJQYW5lbF9EcmF3ZXJQYW5lbCxPYmplY3QuYXNzaWduKHtwcmVmaXhDbHM6cHJlZml4Q2xzfSxyZXN0LHtvbkNsb3NlOm9uQ2xvc2V9KSkpKSkpfSxQdXJlUGFuZWw9cHJvcHM9PntsZXR7cHJlZml4Q2xzOmN1c3RvbWl6ZVByZWZpeENscyxzdHlsZSxjbGFzc05hbWUscGxhY2VtZW50PSJyaWdodCJ9PXByb3BzLHJlc3RQcm9wcz1fX3Jlc3QocHJvcHMsWyJwcmVmaXhDbHMiLCJzdHlsZSIsImNsYXNzTmFtZSIsInBsYWNlbWVudCJdKSx7Z2V0UHJlZml4Q2xzfT1yZWFjdC51c2VDb250ZXh0KGNvbmZpZ19wcm92aWRlcl9jb250ZXh0LkVfKSxwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJkcmF3ZXIiLGN1c3RvbWl6ZVByZWZpeENscyksW3dyYXBDU1NWYXIsaGFzaElkLGNzc1ZhckNsc109ZHJhd2VyX3N0eWxlKHByZWZpeENscyksY2xzPWNsYXNzbmFtZXNfZGVmYXVsdCgpKHByZWZpeENscyxgJHtwcmVmaXhDbHN9LXB1cmVgLGAke3ByZWZpeENsc30tJHtwbGFjZW1lbnR9YCxoYXNoSWQsY3NzVmFyQ2xzLGNsYXNzTmFtZSk7cmV0dXJuIHdyYXBDU1NWYXIocmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmNscyxzdHlsZTpzdHlsZX0scmVhY3QuY3JlYXRlRWxlbWVudChEcmF3ZXJQYW5lbF9EcmF3ZXJQYW5lbCxPYmplY3QuYXNzaWduKHtwcmVmaXhDbHM6cHJlZml4Q2xzfSxyZXN0UHJvcHMpKSkpfTtkcmF3ZXJfRHJhd2VyLl9JbnRlcm5hbFBhbmVsRG9Ob3RVc2VPcllvdVdpbGxCZUZpcmVkPVB1cmVQYW5lbDt2YXIgZHJhd2VyPWRyYXdlcl9EcmF3ZXJ9LDcxMDMxOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGVzX2Ryb3Bkb3dufX0pO3ZhciByZWFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxMZWZ0T3V0bGluZWQ9X193ZWJwYWNrX3JlcXVpcmVfXyg2MTcxKSxSaWdodE91dGxpbmVkPV9fd2VicGFja19yZXF1aXJlX18oMTgwNzMpLGNsYXNzbmFtZXM9X193ZWJwYWNrX3JlcXVpcmVfXygxMzE0NCksY2xhc3NuYW1lc19kZWZhdWx0PV9fd2VicGFja19yZXF1aXJlX18ubihjbGFzc25hbWVzKTtmdW5jdGlvbiBfZXh0ZW5kcygpe3JldHVybihfZXh0ZW5kcz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHRhcmdldCl7Zm9yKHZhciBpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKyl7dmFyIHNvdXJjZT1hcmd1bWVudHNbaV07Zm9yKHZhciBrZXkgaW4gc291cmNlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2Usa2V5KSYmKHRhcmdldFtrZXldPXNvdXJjZVtrZXldKX1yZXR1cm4gdGFyZ2V0fSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIF90eXBlb2Yob2JqKXtyZXR1cm4oX3R5cGVvZj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihvYmope3JldHVybiB0eXBlb2Ygb2JqfTpmdW5jdGlvbihvYmope3JldHVybiBvYmomJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJm9iai5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmb2JqIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2Ygb2JqfSkob2JqKX1mdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsbGVuKXsobnVsbD09bGVufHxsZW4+YXJyLmxlbmd0aCkmJihsZW49YXJyLmxlbmd0aCk7Zm9yKHZhciBpPTAsYXJyMj1BcnJheShsZW4pO2k8bGVuO2krKylhcnIyW2ldPWFycltpXTtyZXR1cm4gYXJyMn12YXIgZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0MDIyOCksbm9kZV9tb2R1bGVzX2NsYXNzbmFtZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NDE4NCksbm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4obm9kZV9tb2R1bGVzX2NsYXNzbmFtZXMpLHJlYWN0X2lzPV9fd2VicGFja19yZXF1aXJlX18oMzM4NDgpLFJFQUNUX0VMRU1FTlRfVFlQRV8xOD1TeW1ib2wuZm9yKCJyZWFjdC5lbGVtZW50IiksUkVBQ1RfRUxFTUVOVF9UWVBFXzE5PVN5bWJvbC5mb3IoInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50IiksUkVBQ1RfRlJBR01FTlRfVFlQRT1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLFJlYWN0TWFqb3JWZXJzaW9uPU51bWJlcihyZWFjdC52ZXJzaW9uLnNwbGl0KCIuIilbMF0pLGZpbGxSZWY9ZnVuY3Rpb24ocmVmLG5vZGUpeyJmdW5jdGlvbiI9PXR5cGVvZiByZWY/cmVmKG5vZGUpOiJvYmplY3QiPT09X3R5cGVvZihyZWYpJiZyZWYmJiJjdXJyZW50ImluIHJlZiYmKHJlZi5jdXJyZW50PW5vZGUpfSxjb21wb3NlUmVmPWZ1bmN0aW9uKCl7Zm9yKHZhciBfbGVuPWFyZ3VtZW50cy5sZW5ndGgscmVmcz1BcnJheShfbGVuKSxfa2V5PTA7X2tleTxfbGVuO19rZXkrKylyZWZzW19rZXldPWFyZ3VtZW50c1tfa2V5XTt2YXIgcmVmTGlzdD1yZWZzLmZpbHRlcihCb29sZWFuKTtyZXR1cm4gcmVmTGlzdC5sZW5ndGg8PTE/cmVmTGlzdFswXTpmdW5jdGlvbihub2RlKXtyZWZzLmZvckVhY2goZnVuY3Rpb24ocmVmKXtmaWxsUmVmKHJlZixub2RlKX0pfX0sc3VwcG9ydFJlZj1mdW5jdGlvbihub2RlT3JDb21wb25lbnQpe2lmKCFub2RlT3JDb21wb25lbnQpcmV0dXJuITE7aWYoaXNSZWFjdEVsZW1lbnQobm9kZU9yQ29tcG9uZW50KSYmUmVhY3RNYWpvclZlcnNpb24+PTE5KXJldHVybiEwO3ZhciBfdHlwZSRwcm90b3R5cGUsX25vZGVPckNvbXBvbmVudCRwcm90LHR5cGU9KDAscmVhY3RfaXMuaXNNZW1vKShub2RlT3JDb21wb25lbnQpP25vZGVPckNvbXBvbmVudC50eXBlLnR5cGU6bm9kZU9yQ29tcG9uZW50LnR5cGU7cmV0dXJuKCJmdW5jdGlvbiIhPXR5cGVvZiB0eXBlfHxudWxsIT09KF90eXBlJHByb3RvdHlwZT10eXBlLnByb3RvdHlwZSkmJnZvaWQgMCE9PV90eXBlJHByb3RvdHlwZSYmISFfdHlwZSRwcm90b3R5cGUucmVuZGVyfHx0eXBlLiQkdHlwZW9mPT09cmVhY3RfaXMuRm9yd2FyZFJlZikmJigiZnVuY3Rpb24iIT10eXBlb2Ygbm9kZU9yQ29tcG9uZW50fHxudWxsIT09KF9ub2RlT3JDb21wb25lbnQkcHJvdD1ub2RlT3JDb21wb25lbnQucHJvdG90eXBlKSYmdm9pZCAwIT09X25vZGVPckNvbXBvbmVudCRwcm90JiYhIV9ub2RlT3JDb21wb25lbnQkcHJvdC5yZW5kZXJ8fG5vZGVPckNvbXBvbmVudC4kJHR5cGVvZj09PXJlYWN0X2lzLkZvcndhcmRSZWYpfTtmdW5jdGlvbiBpc1JlYWN0RWxlbWVudChub2RlKXtyZXR1cm4oMCxyZWFjdC5pc1ZhbGlkRWxlbWVudCkobm9kZSkmJiEobm9kZSYmIm9iamVjdCI9PT1fdHlwZW9mKG5vZGUpJiYobm9kZS4kJHR5cGVvZj09PVJFQUNUX0VMRU1FTlRfVFlQRV8xOHx8bm9kZS4kJHR5cGVvZj09PVJFQUNUX0VMRU1FTlRfVFlQRV8xOSkmJm5vZGUudHlwZT09PVJFQUNUX0ZSQUdNRU5UX1RZUEUpfXZhciBnZXROb2RlUmVmPWZ1bmN0aW9uKG5vZGUpe3JldHVybiBub2RlJiZpc1JlYWN0RWxlbWVudChub2RlKT9ub2RlLnByb3BzLnByb3BlcnR5SXNFbnVtZXJhYmxlKCJyZWYiKT9ub2RlLnByb3BzLnJlZjpub2RlLnJlZjpudWxsfSxLZXlDb2RlPXtNQUNfRU5URVI6MyxCQUNLU1BBQ0U6OCxUQUI6OSxOVU1fQ0VOVEVSOjEyLEVOVEVSOjEzLFNISUZUOjE2LENUUkw6MTcsQUxUOjE4LFBBVVNFOjE5LENBUFNfTE9DSzoyMCxFU0M6MjcsU1BBQ0U6MzIsUEFHRV9VUDozMyxQQUdFX0RPV046MzQsRU5EOjM1LEhPTUU6MzYsTEVGVDozNyxVUDozOCxSSUdIVDozOSxET1dOOjQwLFBSSU5UX1NDUkVFTjo0NCxJTlNFUlQ6NDUsREVMRVRFOjQ2LFpFUk86NDgsT05FOjQ5LFRXTzo1MCxUSFJFRTo1MSxGT1VSOjUyLEZJVkU6NTMsU0lYOjU0LFNFVkVOOjU1LEVJR0hUOjU2LE5JTkU6NTcsUVVFU1RJT05fTUFSSzo2MyxBOjY1LEI6NjYsQzo2NyxEOjY4LEU6NjksRjo3MCxHOjcxLEg6NzIsSTo3MyxKOjc0LEs6NzUsTDo3NixNOjc3LE46NzgsTzo3OSxQOjgwLFE6ODEsUjo4MixTOjgzLFQ6ODQsVTo4NSxWOjg2LFc6ODcsWDo4OCxZOjg5LFo6OTAsTUVUQTo5MSxXSU5fS0VZX1JJR0hUOjkyLENPTlRFWFRfTUVOVTo5MyxOVU1fWkVSTzo5NixOVU1fT05FOjk3LE5VTV9UV086OTgsTlVNX1RIUkVFOjk5LE5VTV9GT1VSOjEwMCxOVU1fRklWRToxMDEsTlVNX1NJWDoxMDIsTlVNX1NFVkVOOjEwMyxOVU1fRUlHSFQ6MTA0LE5VTV9OSU5FOjEwNSxOVU1fTVVMVElQTFk6MTA2LE5VTV9QTFVTOjEwNyxOVU1fTUlOVVM6MTA5LE5VTV9QRVJJT0Q6MTEwLE5VTV9ESVZJU0lPTjoxMTEsRjE6MTEyLEYyOjExMyxGMzoxMTQsRjQ6MTE1LEY1OjExNixGNjoxMTcsRjc6MTE4LEY4OjExOSxGOToxMjAsRjEwOjEyMSxGMTE6MTIyLEYxMjoxMjMsTlVNTE9DSzoxNDQsU0VNSUNPTE9OOjE4NixEQVNIOjE4OSxFUVVBTFM6MTg3LENPTU1BOjE4OCxQRVJJT0Q6MTkwLFNMQVNIOjE5MSxBUE9TVFJPUEhFOjE5MixTSU5HTEVfUVVPVEU6MjIyLE9QRU5fU1FVQVJFX0JSQUNLRVQ6MjE5LEJBQ0tTTEFTSDoyMjAsQ0xPU0VfU1FVQVJFX0JSQUNLRVQ6MjIxLFdJTl9LRVk6MjI0LE1BQ19GRl9NRVRBOjIyNCxXSU5fSU1FOjIyOSxpc1RleHRNb2RpZnlpbmdLZXlFdmVudDpmdW5jdGlvbihlKXt2YXIga2V5Q29kZT1lLmtleUNvZGU7aWYoZS5hbHRLZXkmJiFlLmN0cmxLZXl8fGUubWV0YUtleXx8a2V5Q29kZT49S2V5Q29kZS5GMSYma2V5Q29kZTw9S2V5Q29kZS5GMTIpcmV0dXJuITE7c3dpdGNoKGtleUNvZGUpe2Nhc2UgS2V5Q29kZS5BTFQ6Y2FzZSBLZXlDb2RlLkNBUFNfTE9DSzpjYXNlIEtleUNvZGUuQ09OVEVYVF9NRU5VOmNhc2UgS2V5Q29kZS5DVFJMOmNhc2UgS2V5Q29kZS5ET1dOOmNhc2UgS2V5Q29kZS5FTkQ6Y2FzZSBLZXlDb2RlLkVTQzpjYXNlIEtleUNvZGUuSE9NRTpjYXNlIEtleUNvZGUuSU5TRVJUOmNhc2UgS2V5Q29kZS5MRUZUOmNhc2UgS2V5Q29kZS5NQUNfRkZfTUVUQTpjYXNlIEtleUNvZGUuTUVUQTpjYXNlIEtleUNvZGUuTlVNTE9DSzpjYXNlIEtleUNvZGUuTlVNX0NFTlRFUjpjYXNlIEtleUNvZGUuUEFHRV9ET1dOOmNhc2UgS2V5Q29kZS5QQUdFX1VQOmNhc2UgS2V5Q29kZS5QQVVTRTpjYXNlIEtleUNvZGUuUFJJTlRfU0NSRUVOOmNhc2UgS2V5Q29kZS5SSUdIVDpjYXNlIEtleUNvZGUuU0hJRlQ6Y2FzZSBLZXlDb2RlLlVQOmNhc2UgS2V5Q29kZS5XSU5fS0VZOmNhc2UgS2V5Q29kZS5XSU5fS0VZX1JJR0hUOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fSxpc0NoYXJhY3RlcktleTpmdW5jdGlvbihrZXlDb2RlKXtpZihrZXlDb2RlPj1LZXlDb2RlLlpFUk8mJmtleUNvZGU8PUtleUNvZGUuTklORXx8a2V5Q29kZT49S2V5Q29kZS5OVU1fWkVSTyYma2V5Q29kZTw9S2V5Q29kZS5OVU1fTVVMVElQTFl8fGtleUNvZGU+PUtleUNvZGUuQSYma2V5Q29kZTw9S2V5Q29kZS5afHwtMSE9PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIldlYktpdCIpJiYwPT09a2V5Q29kZSlyZXR1cm4hMDtzd2l0Y2goa2V5Q29kZSl7Y2FzZSBLZXlDb2RlLlNQQUNFOmNhc2UgS2V5Q29kZS5RVUVTVElPTl9NQVJLOmNhc2UgS2V5Q29kZS5OVU1fUExVUzpjYXNlIEtleUNvZGUuTlVNX01JTlVTOmNhc2UgS2V5Q29kZS5OVU1fUEVSSU9EOmNhc2UgS2V5Q29kZS5OVU1fRElWSVNJT046Y2FzZSBLZXlDb2RlLlNFTUlDT0xPTjpjYXNlIEtleUNvZGUuREFTSDpjYXNlIEtleUNvZGUuRVFVQUxTOmNhc2UgS2V5Q29kZS5DT01NQTpjYXNlIEtleUNvZGUuUEVSSU9EOmNhc2UgS2V5Q29kZS5TTEFTSDpjYXNlIEtleUNvZGUuQVBPU1RST1BIRTpjYXNlIEtleUNvZGUuU0lOR0xFX1FVT1RFOmNhc2UgS2V5Q29kZS5PUEVOX1NRVUFSRV9CUkFDS0VUOmNhc2UgS2V5Q29kZS5CQUNLU0xBU0g6Y2FzZSBLZXlDb2RlLkNMT1NFX1NRVUFSRV9CUkFDS0VUOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fX0scmFmPWZ1bmN0aW9uKGNhbGxiYWNrKXtyZXR1cm4rc2V0VGltZW91dChjYWxsYmFjaywxNil9LGNhZj1mdW5jdGlvbihudW0pe3JldHVybiBjbGVhclRpbWVvdXQobnVtKX07InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJiJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiaW4gd2luZG93JiYocmFmPWZ1bmN0aW9uKGNhbGxiYWNrKXtyZXR1cm4gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShjYWxsYmFjayl9LGNhZj1mdW5jdGlvbihoYW5kbGUpe3JldHVybiB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaGFuZGxlKX0pO3ZhciByYWZVVUlEPTAscmFmSWRzPW5ldyBNYXAsd3JhcHBlclJhZj1mdW5jdGlvbihjYWxsYmFjayl7dmFyIHRpbWVzPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToxLGlkPXJhZlVVSUQrPTE7cmV0dXJuIWZ1bmN0aW9uIGNhbGxSZWYobGVmdFRpbWVzKXtpZigwPT09bGVmdFRpbWVzKXJhZklkcy5kZWxldGUoaWQpLGNhbGxiYWNrKCk7ZWxzZXt2YXIgcmVhbElkPXJhZihmdW5jdGlvbigpe2NhbGxSZWYobGVmdFRpbWVzLTEpfSk7cmFmSWRzLnNldChpZCxyZWFsSWQpfX0odGltZXMpLGlkfTt3cmFwcGVyUmFmLmNhbmNlbD1mdW5jdGlvbihpZCl7dmFyIHJlYWxJZD1yYWZJZHMuZ2V0KGlkKTtyZXR1cm4gcmFmSWRzLmRlbGV0ZShpZCksY2FmKHJlYWxJZCl9O3ZhciBFU0M9S2V5Q29kZS5FU0MsVEFCPUtleUNvZGUuVEFCLE92ZXJsYXk9KDAscmVhY3QuZm9yd2FyZFJlZikoZnVuY3Rpb24ocHJvcHMscmVmKXt2YXIgb3ZlcmxheT1wcm9wcy5vdmVybGF5LGFycm93PXByb3BzLmFycm93LHByZWZpeENscz1wcm9wcy5wcmVmaXhDbHMsb3ZlcmxheU5vZGU9KDAscmVhY3QudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygb3ZlcmxheT9vdmVybGF5KCk6b3ZlcmxheX0sW292ZXJsYXldKSxjb21wb3NlZFJlZj1jb21wb3NlUmVmKHJlZixnZXROb2RlUmVmKG92ZXJsYXlOb2RlKSk7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQocmVhY3QuRnJhZ21lbnQsbnVsbCxhcnJvdyYmcmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi1hcnJvdyIpfSkscmVhY3QuY2xvbmVFbGVtZW50KG92ZXJsYXlOb2RlLHtyZWY6c3VwcG9ydFJlZihvdmVybGF5Tm9kZSk/Y29tcG9zZWRSZWY6dm9pZCAwfSkpfSksYXV0b0FkanVzdE92ZXJmbG93PXthZGp1c3RYOjEsYWRqdXN0WToxfSx0YXJnZXRPZmZzZXQ9WzAsMF0sZXNfcGxhY2VtZW50cz17dG9wTGVmdDp7cG9pbnRzOlsiYmwiLCJ0bCJdLG92ZXJmbG93OmF1dG9BZGp1c3RPdmVyZmxvdyxvZmZzZXQ6WzAsLTRdLHRhcmdldE9mZnNldDp0YXJnZXRPZmZzZXR9LHRvcDp7cG9pbnRzOlsiYmMiLCJ0YyJdLG92ZXJmbG93OmF1dG9BZGp1c3RPdmVyZmxvdyxvZmZzZXQ6WzAsLTRdLHRhcmdldE9mZnNldDp0YXJnZXRPZmZzZXR9LHRvcFJpZ2h0Ontwb2ludHM6WyJiciIsInRyIl0sb3ZlcmZsb3c6YXV0b0FkanVzdE92ZXJmbG93LG9mZnNldDpbMCwtNF0sdGFyZ2V0T2Zmc2V0OnRhcmdldE9mZnNldH0sYm90dG9tTGVmdDp7cG9pbnRzOlsidGwiLCJibCJdLG92ZXJmbG93OmF1dG9BZGp1c3RPdmVyZmxvdyxvZmZzZXQ6WzAsNF0sdGFyZ2V0T2Zmc2V0OnRhcmdldE9mZnNldH0sYm90dG9tOntwb2ludHM6WyJ0YyIsImJjIl0sb3ZlcmZsb3c6YXV0b0FkanVzdE92ZXJmbG93LG9mZnNldDpbMCw0XSx0YXJnZXRPZmZzZXQ6dGFyZ2V0T2Zmc2V0fSxib3R0b21SaWdodDp7cG9pbnRzOlsidHIiLCJiciJdLG92ZXJmbG93OmF1dG9BZGp1c3RPdmVyZmxvdyxvZmZzZXQ6WzAsNF0sdGFyZ2V0T2Zmc2V0OnRhcmdldE9mZnNldH19LF9leGNsdWRlZD1bImFycm93IiwicHJlZml4Q2xzIiwidHJhbnNpdGlvbk5hbWUiLCJhbmltYXRpb24iLCJhbGlnbiIsInBsYWNlbWVudCIsInBsYWNlbWVudHMiLCJnZXRQb3B1cENvbnRhaW5lciIsInNob3dBY3Rpb24iLCJoaWRlQWN0aW9uIiwib3ZlcmxheUNsYXNzTmFtZSIsIm92ZXJsYXlTdHlsZSIsInZpc2libGUiLCJ0cmlnZ2VyIiwiYXV0b0ZvY3VzIiwib3ZlcmxheSIsImNoaWxkcmVuIiwib25WaXNpYmxlQ2hhbmdlIl0sZXNfRHJvcGRvd249cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3ZhciBvYmosa2V5LGtleTEsYXJyLF9yZWYsdmlzaWJsZSx0cmlnZ2VyUmVmLG9uVmlzaWJsZUNoYW5nZSxhdXRvRm9jdXMsb3ZlcmxheVJlZixmb2N1c01lbnVSZWYsaGFuZGxlQ2xvc2VNZW51QW5kUmV0dXJuRm9jdXMsZm9jdXNNZW51LGhhbmRsZUtleURvd24sb3BlbkNsYXNzTmFtZSxtaW5PdmVybGF5V2lkdGhNYXRjaFRyaWdnZXIsYWxpZ25Qb2ludCxfY2hpbGRyZW4kcHJvcHMsX3Byb3BzJGFycm93PXByb3BzLmFycm93LGFycm93PXZvaWQgMCE9PV9wcm9wcyRhcnJvdyYmX3Byb3BzJGFycm93LF9wcm9wcyRwcmVmaXhDbHM9cHJvcHMucHJlZml4Q2xzLHByZWZpeENscz12b2lkIDA9PT1fcHJvcHMkcHJlZml4Q2xzPyJyYy1kcm9wZG93biI6X3Byb3BzJHByZWZpeENscyx0cmFuc2l0aW9uTmFtZT1wcm9wcy50cmFuc2l0aW9uTmFtZSxhbmltYXRpb249cHJvcHMuYW5pbWF0aW9uLGFsaWduPXByb3BzLmFsaWduLF9wcm9wcyRwbGFjZW1lbnQ9cHJvcHMucGxhY2VtZW50LF9wcm9wcyRwbGFjZW1lbnRzPXByb3BzLnBsYWNlbWVudHMsZ2V0UG9wdXBDb250YWluZXI9cHJvcHMuZ2V0UG9wdXBDb250YWluZXIsc2hvd0FjdGlvbj1wcm9wcy5zaG93QWN0aW9uLGhpZGVBY3Rpb249cHJvcHMuaGlkZUFjdGlvbixvdmVybGF5Q2xhc3NOYW1lPXByb3BzLm92ZXJsYXlDbGFzc05hbWUsb3ZlcmxheVN0eWxlPXByb3BzLm92ZXJsYXlTdHlsZSx2aXNpYmxlMT1wcm9wcy52aXNpYmxlLF9wcm9wcyR0cmlnZ2VyPXByb3BzLnRyaWdnZXIsdHJpZ2dlcj12b2lkIDA9PT1fcHJvcHMkdHJpZ2dlcj9bImhvdmVyIl06X3Byb3BzJHRyaWdnZXIsYXV0b0ZvY3VzMT1wcm9wcy5hdXRvRm9jdXMsb3ZlcmxheT1wcm9wcy5vdmVybGF5LGNoaWxkcmVuPXByb3BzLmNoaWxkcmVuLG9uVmlzaWJsZUNoYW5nZTE9cHJvcHMub25WaXNpYmxlQ2hhbmdlLG90aGVyUHJvcHM9ZnVuY3Rpb24oc291cmNlLGV4Y2x1ZGVkKXtpZihudWxsPT1zb3VyY2UpcmV0dXJue307dmFyIGtleSxpLHRhcmdldD1mdW5jdGlvbihzb3VyY2UsZXhjbHVkZWQpe2lmKG51bGw9PXNvdXJjZSlyZXR1cm57fTt2YXIga2V5LGksdGFyZ2V0PXt9LHNvdXJjZUtleXM9T2JqZWN0LmtleXMoc291cmNlKTtmb3IoaT0wO2k8c291cmNlS2V5cy5sZW5ndGg7aSsrKWtleT1zb3VyY2VLZXlzW2ldLGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KT49MHx8KHRhcmdldFtrZXldPXNvdXJjZVtrZXldKTtyZXR1cm4gdGFyZ2V0fShzb3VyY2UsZXhjbHVkZWQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBzb3VyY2VTeW1ib2xLZXlzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoc291cmNlKTtmb3IoaT0wO2k8c291cmNlU3ltYm9sS2V5cy5sZW5ndGg7aSsrKWtleT1zb3VyY2VTeW1ib2xLZXlzW2ldLCEoZXhjbHVkZWQuaW5kZXhPZihrZXkpPj0wKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHNvdXJjZSxrZXkpJiYodGFyZ2V0W2tleV09c291cmNlW2tleV0pfXJldHVybiB0YXJnZXR9KHByb3BzLF9leGNsdWRlZCksX1JlYWN0JHVzZVN0YXRlMj1mdW5jdGlvbihhcnIpe2lmKEFycmF5LmlzQXJyYXkoYXJyKSlyZXR1cm4gYXJyfShhcnI9cmVhY3QudXNlU3RhdGUoKSl8fGZ1bmN0aW9uKGFycixpKXt2YXIgX2k9bnVsbD09YXJyP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmFycltTeW1ib2wuaXRlcmF0b3JdfHxhcnJbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1faSl7dmFyIF9zLF9lLF94LF9yLF9hcnI9W10sX249ITAsX2Q9ITE7dHJ5e2lmKF94PShfaT1faS5jYWxsKGFycikpLm5leHQsMD09PWkpe2lmKE9iamVjdChfaSkhPT1faSlyZXR1cm47X249ITF9ZWxzZSBmb3IoOyEoX249KF9zPV94LmNhbGwoX2kpKS5kb25lKSYmKF9hcnIucHVzaChfcy52YWx1ZSksX2Fyci5sZW5ndGghPT1pKTtfbj0hMCk7fWNhdGNoKGVycil7X2Q9ITAsX2U9ZXJyfWZpbmFsbHl7dHJ5e2lmKCFfbiYmbnVsbCE9X2kucmV0dXJuJiYoX3I9X2kucmV0dXJuKCksT2JqZWN0KF9yKSE9PV9yKSlyZXR1cm59ZmluYWxseXtpZihfZCl0aHJvdyBfZX19cmV0dXJuIF9hcnJ9fShhcnIsMil8fGZ1bmN0aW9uKG8sbWluTGVuKXtpZihvKXtpZigic3RyaW5nIj09dHlwZW9mIG8pcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sbWluTGVuKTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1uJiZvLmNvbnN0cnVjdG9yJiYobj1vLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uKXJldHVybiBBcnJheS5mcm9tKG8pO2lmKCJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sbWluTGVuKX19KGFyciwyKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCksdHJpZ2dlclZpc2libGU9X1JlYWN0JHVzZVN0YXRlMlswXSxzZXRUcmlnZ2VyVmlzaWJsZT1fUmVhY3QkdXNlU3RhdGUyWzFdLG1lcmdlZFZpc2libGU9InZpc2libGUiaW4gcHJvcHM/dmlzaWJsZTE6dHJpZ2dlclZpc2libGUsdHJpZ2dlclJlZjE9cmVhY3QudXNlUmVmKG51bGwpLG92ZXJsYXlSZWYxPXJlYWN0LnVzZVJlZihudWxsKSxjaGlsZFJlZj1yZWFjdC51c2VSZWYobnVsbCk7cmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsZnVuY3Rpb24oKXtyZXR1cm4gdHJpZ2dlclJlZjEuY3VycmVudH0pO3ZhciBoYW5kbGVWaXNpYmxlQ2hhbmdlPWZ1bmN0aW9uKG5ld1Zpc2libGUpe3NldFRyaWdnZXJWaXNpYmxlKG5ld1Zpc2libGUpLG51bGw9PW9uVmlzaWJsZUNoYW5nZTF8fG9uVmlzaWJsZUNoYW5nZTEobmV3VmlzaWJsZSl9O3Zpc2libGU9KF9yZWY9e3Zpc2libGU6bWVyZ2VkVmlzaWJsZSx0cmlnZ2VyUmVmOmNoaWxkUmVmLG9uVmlzaWJsZUNoYW5nZTpoYW5kbGVWaXNpYmxlQ2hhbmdlLGF1dG9Gb2N1czphdXRvRm9jdXMxLG92ZXJsYXlSZWY6b3ZlcmxheVJlZjF9KS52aXNpYmxlLHRyaWdnZXJSZWY9X3JlZi50cmlnZ2VyUmVmLG9uVmlzaWJsZUNoYW5nZT1fcmVmLm9uVmlzaWJsZUNoYW5nZSxhdXRvRm9jdXM9X3JlZi5hdXRvRm9jdXMsb3ZlcmxheVJlZj1fcmVmLm92ZXJsYXlSZWYsZm9jdXNNZW51UmVmPXJlYWN0LnVzZVJlZighMSksaGFuZGxlQ2xvc2VNZW51QW5kUmV0dXJuRm9jdXM9ZnVuY3Rpb24oKXtpZih2aXNpYmxlKXt2YXIgX3RyaWdnZXJSZWYkY3VycmVudCxfdHJpZ2dlclJlZiRjdXJyZW50JGY7bnVsbD09PShfdHJpZ2dlclJlZiRjdXJyZW50PXRyaWdnZXJSZWYuY3VycmVudCl8fHZvaWQgMD09PV90cmlnZ2VyUmVmJGN1cnJlbnR8fG51bGw9PT0oX3RyaWdnZXJSZWYkY3VycmVudCRmPV90cmlnZ2VyUmVmJGN1cnJlbnQuZm9jdXMpfHx2b2lkIDA9PT1fdHJpZ2dlclJlZiRjdXJyZW50JGZ8fF90cmlnZ2VyUmVmJGN1cnJlbnQkZi5jYWxsKF90cmlnZ2VyUmVmJGN1cnJlbnQpLG51bGw9PW9uVmlzaWJsZUNoYW5nZXx8b25WaXNpYmxlQ2hhbmdlKCExKX19LGZvY3VzTWVudT1mdW5jdGlvbigpe3ZhciBfb3ZlcmxheVJlZiRjdXJyZW50O3JldHVybiBudWxsIT09KF9vdmVybGF5UmVmJGN1cnJlbnQ9b3ZlcmxheVJlZi5jdXJyZW50KSYmdm9pZCAwIT09X292ZXJsYXlSZWYkY3VycmVudCYmISFfb3ZlcmxheVJlZiRjdXJyZW50LmZvY3VzJiYob3ZlcmxheVJlZi5jdXJyZW50LmZvY3VzKCksZm9jdXNNZW51UmVmLmN1cnJlbnQ9ITAsITApfSxoYW5kbGVLZXlEb3duPWZ1bmN0aW9uKGV2ZW50KXtzd2l0Y2goZXZlbnQua2V5Q29kZSl7Y2FzZSBFU0M6aGFuZGxlQ2xvc2VNZW51QW5kUmV0dXJuRm9jdXMoKTticmVhaztjYXNlIFRBQjp2YXIgZm9jdXNSZXN1bHQ9ITE7Zm9jdXNNZW51UmVmLmN1cnJlbnR8fChmb2N1c1Jlc3VsdD1mb2N1c01lbnUoKSksZm9jdXNSZXN1bHQ/ZXZlbnQucHJldmVudERlZmF1bHQoKTpoYW5kbGVDbG9zZU1lbnVBbmRSZXR1cm5Gb2N1cygpfX0scmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIHZpc2libGU/KHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixoYW5kbGVLZXlEb3duKSxhdXRvRm9jdXMmJndyYXBwZXJSYWYoZm9jdXNNZW51LDMpLGZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGhhbmRsZUtleURvd24pLGZvY3VzTWVudVJlZi5jdXJyZW50PSExfSk6ZnVuY3Rpb24oKXtmb2N1c01lbnVSZWYuY3VycmVudD0hMX19LFt2aXNpYmxlXSk7dmFyIGdldE1lbnVFbGVtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoT3ZlcmxheSx7cmVmOm92ZXJsYXlSZWYxLG92ZXJsYXk6b3ZlcmxheSxwcmVmaXhDbHM6cHJlZml4Q2xzLGFycm93OmFycm93fSl9LGNoaWxkcmVuTm9kZT1yZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4se2NsYXNzTmFtZTpub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0KCkobnVsbD09PShfY2hpbGRyZW4kcHJvcHM9Y2hpbGRyZW4ucHJvcHMpfHx2b2lkIDA9PT1fY2hpbGRyZW4kcHJvcHM/dm9pZCAwOl9jaGlsZHJlbiRwcm9wcy5jbGFzc05hbWUsbWVyZ2VkVmlzaWJsZSYmKHZvaWQgMCE9PShvcGVuQ2xhc3NOYW1lPXByb3BzLm9wZW5DbGFzc05hbWUpP29wZW5DbGFzc05hbWU6IiIuY29uY2F0KHByZWZpeENscywiLW9wZW4iKSkpLHJlZjpzdXBwb3J0UmVmKGNoaWxkcmVuKT9jb21wb3NlUmVmKGNoaWxkUmVmLGdldE5vZGVSZWYoY2hpbGRyZW4pKTp2b2lkIDB9KSx0cmlnZ2VySGlkZUFjdGlvbj1oaWRlQWN0aW9uO3JldHVybiB0cmlnZ2VySGlkZUFjdGlvbnx8LTE9PT10cmlnZ2VyLmluZGV4T2YoImNvbnRleHRNZW51Iil8fCh0cmlnZ2VySGlkZUFjdGlvbj1bImNsaWNrIl0pLHJlYWN0LmNyZWF0ZUVsZW1lbnQoZXMuWixfZXh0ZW5kcyh7YnVpbHRpblBsYWNlbWVudHM6dm9pZCAwPT09X3Byb3BzJHBsYWNlbWVudHM/ZXNfcGxhY2VtZW50czpfcHJvcHMkcGxhY2VtZW50c30sb3RoZXJQcm9wcyx7cHJlZml4Q2xzOnByZWZpeENscyxyZWY6dHJpZ2dlclJlZjEscG9wdXBDbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKG92ZXJsYXlDbGFzc05hbWUsKG9iaj17fSxrZXkxPWZ1bmN0aW9uKGlucHV0LGhpbnQpe2lmKCJvYmplY3QiIT09X3R5cGVvZihpbnB1dCl8fG51bGw9PT1pbnB1dClyZXR1cm4gaW5wdXQ7dmFyIHByaW09aW5wdXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1wcmltKXt2YXIgcmVzPXByaW0uY2FsbChpbnB1dCxoaW50fHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT09X3R5cGVvZihyZXMpKXJldHVybiByZXM7dGhyb3cgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWhpbnQ/U3RyaW5nOk51bWJlcikoaW5wdXQpfShrZXk9IiIuY29uY2F0KHByZWZpeENscywiLXNob3ctYXJyb3ciKSwic3RyaW5nIiksKGtleT0ic3ltYm9sIj09PV90eXBlb2Yoa2V5MSk/a2V5MTpTdHJpbmcoa2V5MSkpaW4gb2JqP09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosa2V5LHt2YWx1ZTphcnJvdyxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOm9ialtrZXldPWFycm93LG9iaikpLHBvcHVwU3R5bGU6b3ZlcmxheVN0eWxlLGFjdGlvbjp0cmlnZ2VyLHNob3dBY3Rpb246c2hvd0FjdGlvbixoaWRlQWN0aW9uOnRyaWdnZXJIaWRlQWN0aW9uLHBvcHVwUGxhY2VtZW50OnZvaWQgMD09PV9wcm9wcyRwbGFjZW1lbnQ/ImJvdHRvbUxlZnQiOl9wcm9wcyRwbGFjZW1lbnQscG9wdXBBbGlnbjphbGlnbixwb3B1cFRyYW5zaXRpb25OYW1lOnRyYW5zaXRpb25OYW1lLHBvcHVwQW5pbWF0aW9uOmFuaW1hdGlvbixwb3B1cFZpc2libGU6bWVyZ2VkVmlzaWJsZSxzdHJldGNoOihtaW5PdmVybGF5V2lkdGhNYXRjaFRyaWdnZXI9cHJvcHMubWluT3ZlcmxheVdpZHRoTWF0Y2hUcmlnZ2VyLGFsaWduUG9pbnQ9cHJvcHMuYWxpZ25Qb2ludCwibWluT3ZlcmxheVdpZHRoTWF0Y2hUcmlnZ2VyImluIHByb3BzP21pbk92ZXJsYXlXaWR0aE1hdGNoVHJpZ2dlcjohYWxpZ25Qb2ludCk/Im1pbldpZHRoIjoiIixwb3B1cDoiZnVuY3Rpb24iPT10eXBlb2Ygb3ZlcmxheT9nZXRNZW51RWxlbWVudDpnZXRNZW51RWxlbWVudCgpLG9uUG9wdXBWaXNpYmxlQ2hhbmdlOmhhbmRsZVZpc2libGVDaGFuZ2Usb25Qb3B1cENsaWNrOmZ1bmN0aW9uKGUpe3ZhciBvbk92ZXJsYXlDbGljaz1wcm9wcy5vbk92ZXJsYXlDbGljaztzZXRUcmlnZ2VyVmlzaWJsZSghMSksb25PdmVybGF5Q2xpY2smJm9uT3ZlcmxheUNsaWNrKGUpfSxnZXRQb3B1cENvbnRhaW5lcjpnZXRQb3B1cENvbnRhaW5lcn0pLGNoaWxkcmVuTm9kZSl9KSx1c2VFdmVudD1fX3dlYnBhY2tfcmVxdWlyZV9fKDc3NTI3KSx1c2VNZXJnZWRTdGF0ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDU2NjMpLG9taXQ9X193ZWJwYWNrX3JlcXVpcmVfXygxMDM2NiksdXNlWkluZGV4PV9fd2VicGFja19yZXF1aXJlX18oODcyNjMpLF91dGlsX2lzUHJpbWl0aXZlPXZhbHVlPT4ib2JqZWN0IiE9dHlwZW9mIHZhbHVlJiYiZnVuY3Rpb24iIT10eXBlb2YgdmFsdWV8fG51bGw9PT12YWx1ZSxfdXRpbF9wbGFjZW1lbnRzPV9fd2VicGFja19yZXF1aXJlX18oODA2MzYpLFB1cmVQYW5lbD1fX3dlYnBhY2tfcmVxdWlyZV9fKDg3NDUpLHJlYWN0Tm9kZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk2MTU5KSxfdXRpbF93YXJuaW5nPV9fd2VicGFja19yZXF1aXJlX18oMjcyODgpLHppbmRleENvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg0Mzk0NSksY29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDUzMTI0KSx1c2VDU1NWYXJDbHM9X193ZWJwYWNrX3JlcXVpcmVfXygzNTc5MiksZXNfbWVudT1fX3dlYnBhY2tfcmVxdWlyZV9fKDE0NzY1KSxPdmVycmlkZUNvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg3NjUyOSksdXNlVG9rZW49X193ZWJwYWNrX3JlcXVpcmVfXygyNTk3NiksY3NzaW5qc19lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ0ODk5KSxzdHlsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDE0NzQ3KSxzbGlkZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3NzcxKSxtb3ZlPV9fd2VicGFja19yZXF1aXJlX18oMzMyOTcpLHpvb209X193ZWJwYWNrX3JlcXVpcmVfXyg1MDQzOCkscGxhY2VtZW50QXJyb3c9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzQxNCkscm91bmRlZEFycm93PV9fd2VicGFja19yZXF1aXJlX18oNzk1MTEpLGdlblN0eWxlVXRpbHM9X193ZWJwYWNrX3JlcXVpcmVfXyg4MzU1OSksY3NzaW5qc191dGlsc19lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQyNTU5KTtsZXQgZ2VuU3RhdHVzU3R5bGU9dG9rZW49PntsZXR7Y29tcG9uZW50Q2xzLG1lbnVDbHMsY29sb3JFcnJvcixjb2xvclRleHRMaWdodFNvbGlkfT10b2tlbixpdGVtQ2xzPWAke21lbnVDbHN9LWl0ZW1gO3JldHVybntbYCR7Y29tcG9uZW50Q2xzfSwgJHtjb21wb25lbnRDbHN9LW1lbnUtc3VibWVudWBdOntbYCR7bWVudUNsc30gJHtpdGVtQ2xzfWBdOntbYCYke2l0ZW1DbHN9LWRhbmdlcjpub3QoJHtpdGVtQ2xzfS1kaXNhYmxlZClgXTp7Y29sb3I6Y29sb3JFcnJvciwiJjpob3ZlciI6e2NvbG9yOmNvbG9yVGV4dExpZ2h0U29saWQsYmFja2dyb3VuZENvbG9yOmNvbG9yRXJyb3J9fX19fX0sZ2VuQmFzZVN0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENscyxtZW51Q2xzLHpJbmRleFBvcHVwLGRyb3Bkb3duQXJyb3dEaXN0YW5jZSxzaXplUG9wdXBBcnJvdyxhbnRDbHMsaWNvbkNscyxtb3Rpb25EdXJhdGlvbk1pZCxwYWRkaW5nQmxvY2ssZm9udFNpemUsZHJvcGRvd25FZGdlQ2hpbGRQYWRkaW5nLGNvbG9yVGV4dERpc2FibGVkLGZvbnRTaXplSWNvbixjb250cm9sUGFkZGluZ0hvcml6b250YWwsY29sb3JCZ0VsZXZhdGVkfT10b2tlbjtyZXR1cm5be1tjb21wb25lbnRDbHNdOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDotOTk5OSxsZWZ0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6LTk5OTl9LHpJbmRleDp6SW5kZXhQb3B1cCxkaXNwbGF5OiJibG9jayIsIiY6OmJlZm9yZSI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaW5zZXRCbG9jazp0b2tlbi5jYWxjKHNpemVQb3B1cEFycm93KS5kaXYoMikuc3ViKGRyb3Bkb3duQXJyb3dEaXN0YW5jZSkuZXF1YWwoKSx6SW5kZXg6LTk5OTksb3BhY2l0eToxZS00LGNvbnRlbnQ6JyIiJ30sIiYtbWVudS12ZXJ0aWNhbCI6e21heEhlaWdodDoiMTAwdmgiLG92ZXJmbG93WToiYXV0byJ9LFtgJi10cmlnZ2VyJHthbnRDbHN9LWJ0bmBdOntbYCYgPiAke2ljb25DbHN9LWRvd24sICYgPiAke2FudENsc30tYnRuLWljb24gPiAke2ljb25DbHN9LWRvd25gXTp7Zm9udFNpemU6Zm9udFNpemVJY29ufX0sW2Ake2NvbXBvbmVudENsc30td3JhcGBdOntwb3NpdGlvbjoicmVsYXRpdmUiLFtgJHthbnRDbHN9LWJ0biA+ICR7aWNvbkNsc30tZG93bmBdOntmb250U2l6ZTpmb250U2l6ZUljb259LFtgJHtpY29uQ2xzfS1kb3duOjpiZWZvcmVgXTp7dHJhbnNpdGlvbjpgdHJhbnNmb3JtICR7bW90aW9uRHVyYXRpb25NaWR9YH19LFtgJHtjb21wb25lbnRDbHN9LXdyYXAtb3BlbmBdOntbYCR7aWNvbkNsc30tZG93bjo6YmVmb3JlYF06e3RyYW5zZm9ybToicm90YXRlKDE4MGRlZykifX0sW2AKICAgICAgICAmLWhpZGRlbiwKICAgICAgICAmLW1lbnUtaGlkZGVuLAogICAgICAgICYtbWVudS1zdWJtZW51LWhpZGRlbgogICAgICBgXTp7ZGlzcGxheToibm9uZSJ9LFtgJiR7YW50Q2xzfS1zbGlkZS1kb3duLWVudGVyJHthbnRDbHN9LXNsaWRlLWRvd24tZW50ZXItYWN0aXZlJHtjb21wb25lbnRDbHN9LXBsYWNlbWVudC1ib3R0b21MZWZ0LAogICAgICAgICAgJiR7YW50Q2xzfS1zbGlkZS1kb3duLWFwcGVhciR7YW50Q2xzfS1zbGlkZS1kb3duLWFwcGVhci1hY3RpdmUke2NvbXBvbmVudENsc30tcGxhY2VtZW50LWJvdHRvbUxlZnQsCiAgICAgICAgICAmJHthbnRDbHN9LXNsaWRlLWRvd24tZW50ZXIke2FudENsc30tc2xpZGUtZG93bi1lbnRlci1hY3RpdmUke2NvbXBvbmVudENsc30tcGxhY2VtZW50LWJvdHRvbSwKICAgICAgICAgICYke2FudENsc30tc2xpZGUtZG93bi1hcHBlYXIke2FudENsc30tc2xpZGUtZG93bi1hcHBlYXItYWN0aXZlJHtjb21wb25lbnRDbHN9LXBsYWNlbWVudC1ib3R0b20sCiAgICAgICAgICAmJHthbnRDbHN9LXNsaWRlLWRvd24tZW50ZXIke2FudENsc30tc2xpZGUtZG93bi1lbnRlci1hY3RpdmUke2NvbXBvbmVudENsc30tcGxhY2VtZW50LWJvdHRvbVJpZ2h0LAogICAgICAgICAgJiR7YW50Q2xzfS1zbGlkZS1kb3duLWFwcGVhciR7YW50Q2xzfS1zbGlkZS1kb3duLWFwcGVhci1hY3RpdmUke2NvbXBvbmVudENsc30tcGxhY2VtZW50LWJvdHRvbVJpZ2h0YF06e2FuaW1hdGlvbk5hbWU6c2xpZGUuZkp9LFtgJiR7YW50Q2xzfS1zbGlkZS11cC1lbnRlciR7YW50Q2xzfS1zbGlkZS11cC1lbnRlci1hY3RpdmUke2NvbXBvbmVudENsc30tcGxhY2VtZW50LXRvcExlZnQsCiAgICAgICAgICAmJHthbnRDbHN9LXNsaWRlLXVwLWFwcGVhciR7YW50Q2xzfS1zbGlkZS11cC1hcHBlYXItYWN0aXZlJHtjb21wb25lbnRDbHN9LXBsYWNlbWVudC10b3BMZWZ0LAogICAgICAgICAgJiR7YW50Q2xzfS1zbGlkZS11cC1lbnRlciR7YW50Q2xzfS1zbGlkZS11cC1lbnRlci1hY3RpdmUke2NvbXBvbmVudENsc30tcGxhY2VtZW50LXRvcCwKICAgICAgICAgICYke2FudENsc30tc2xpZGUtdXAtYXBwZWFyJHthbnRDbHN9LXNsaWRlLXVwLWFwcGVhci1hY3RpdmUke2NvbXBvbmVudENsc30tcGxhY2VtZW50LXRvcCwKICAgICAgICAgICYke2FudENsc30tc2xpZGUtdXAtZW50ZXIke2FudENsc30tc2xpZGUtdXAtZW50ZXItYWN0aXZlJHtjb21wb25lbnRDbHN9LXBsYWNlbWVudC10b3BSaWdodCwKICAgICAgICAgICYke2FudENsc30tc2xpZGUtdXAtYXBwZWFyJHthbnRDbHN9LXNsaWRlLXVwLWFwcGVhci1hY3RpdmUke2NvbXBvbmVudENsc30tcGxhY2VtZW50LXRvcFJpZ2h0YF06e2FuaW1hdGlvbk5hbWU6c2xpZGUuUXR9LFtgJiR7YW50Q2xzfS1zbGlkZS1kb3duLWxlYXZlJHthbnRDbHN9LXNsaWRlLWRvd24tbGVhdmUtYWN0aXZlJHtjb21wb25lbnRDbHN9LXBsYWNlbWVudC1ib3R0b21MZWZ0LAogICAgICAgICAgJiR7YW50Q2xzfS1zbGlkZS1kb3duLWxlYXZlJHthbnRDbHN9LXNsaWRlLWRvd24tbGVhdmUtYWN0aXZlJHtjb21wb25lbnRDbHN9LXBsYWNlbWVudC1ib3R0b20sCiAgICAgICAgICAmJHthbnRDbHN9LXNsaWRlLWRvd24tbGVhdmUke2FudENsc30tc2xpZGUtZG93bi1sZWF2ZS1hY3RpdmUke2NvbXBvbmVudENsc30tcGxhY2VtZW50LWJvdHRvbVJpZ2h0YF06e2FuaW1hdGlvbk5hbWU6c2xpZGUuVXd9LFtgJiR7YW50Q2xzfS1zbGlkZS11cC1sZWF2ZSR7YW50Q2xzfS1zbGlkZS11cC1sZWF2ZS1hY3RpdmUke2NvbXBvbmVudENsc30tcGxhY2VtZW50LXRvcExlZnQsCiAgICAgICAgICAmJHthbnRDbHN9LXNsaWRlLXVwLWxlYXZlJHthbnRDbHN9LXNsaWRlLXVwLWxlYXZlLWFjdGl2ZSR7Y29tcG9uZW50Q2xzfS1wbGFjZW1lbnQtdG9wLAogICAgICAgICAgJiR7YW50Q2xzfS1zbGlkZS11cC1sZWF2ZSR7YW50Q2xzfS1zbGlkZS11cC1sZWF2ZS1hY3RpdmUke2NvbXBvbmVudENsc30tcGxhY2VtZW50LXRvcFJpZ2h0YF06e2FuaW1hdGlvbk5hbWU6c2xpZGUubHl9fX0sKDAscGxhY2VtZW50QXJyb3cuWlApKHRva2VuLGNvbG9yQmdFbGV2YXRlZCx7YXJyb3dQbGFjZW1lbnQ6e3RvcDohMCxib3R0b206ITB9fSkse1tgJHtjb21wb25lbnRDbHN9ICR7bWVudUNsc31gXTp7cG9zaXRpb246InJlbGF0aXZlIixtYXJnaW46MH0sW2Ake21lbnVDbHN9LXN1Ym1lbnUtcG9wdXBgXTp7cG9zaXRpb246ImFic29sdXRlIix6SW5kZXg6ekluZGV4UG9wdXAsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGJveFNoYWRvdzoibm9uZSIsdHJhbnNmb3JtT3JpZ2luOiIwIDAiLCJ1bCwgbGkiOntsaXN0U3R5bGU6Im5vbmUiLG1hcmdpbjowfX0sW2Ake2NvbXBvbmVudENsc30sICR7Y29tcG9uZW50Q2xzfS1tZW51LXN1Ym1lbnVgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsc3R5bGUuV2YpKHRva2VuKSkse1ttZW51Q2xzXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe3BhZGRpbmc6ZHJvcGRvd25FZGdlQ2hpbGRQYWRkaW5nLGxpc3RTdHlsZVR5cGU6Im5vbmUiLGJhY2tncm91bmRDb2xvcjpjb2xvckJnRWxldmF0ZWQsYmFja2dyb3VuZENsaXA6InBhZGRpbmctYm94Iixib3JkZXJSYWRpdXM6dG9rZW4uYm9yZGVyUmFkaXVzTEcsb3V0bGluZToibm9uZSIsYm94U2hhZG93OnRva2VuLmJveFNoYWRvd1NlY29uZGFyeX0sKDAsc3R5bGUuUXkpKHRva2VuKSkseyImOmVtcHR5Ijp7cGFkZGluZzowLGJveFNoYWRvdzoibm9uZSJ9LFtgJHttZW51Q2xzfS1pdGVtLWdyb3VwLXRpdGxlYF06e3BhZGRpbmc6YCR7KDAsY3NzaW5qc19lcy5iZikocGFkZGluZ0Jsb2NrKX0gJHsoMCxjc3NpbmpzX2VzLmJmKShjb250cm9sUGFkZGluZ0hvcml6b250YWwpfWAsY29sb3I6dG9rZW4uY29sb3JUZXh0RGVzY3JpcHRpb24sdHJhbnNpdGlvbjpgYWxsICR7bW90aW9uRHVyYXRpb25NaWR9YH0sW2Ake21lbnVDbHN9LWl0ZW1gXTp7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIifSxbYCR7bWVudUNsc30taXRlbS1pY29uYF06e21pbldpZHRoOmZvbnRTaXplLG1hcmdpbklubGluZUVuZDp0b2tlbi5tYXJnaW5YUyxmb250U2l6ZTp0b2tlbi5mb250U2l6ZVNNfSxbYCR7bWVudUNsc30tdGl0bGUtY29udGVudGBdOntmbGV4OiJhdXRvIiwiJi13aXRoLWV4dHJhIjp7ZGlzcGxheToiaW5saW5lLWZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsd2lkdGg6IjEwMCUifSwiPiBhIjp7Y29sb3I6ImluaGVyaXQiLHRyYW5zaXRpb246YGFsbCAke21vdGlvbkR1cmF0aW9uTWlkfWAsIiY6aG92ZXIiOntjb2xvcjoiaW5oZXJpdCJ9LCImOjphZnRlciI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaW5zZXQ6MCxjb250ZW50OiciIid9fSxbYCR7bWVudUNsc30taXRlbS1leHRyYWBdOntwYWRkaW5nSW5saW5lU3RhcnQ6dG9rZW4ucGFkZGluZyxtYXJnaW5JbmxpbmVTdGFydDoiYXV0byIsZm9udFNpemU6dG9rZW4uZm9udFNpemVTTSxjb2xvcjp0b2tlbi5jb2xvclRleHREZXNjcmlwdGlvbn19LFtgJHttZW51Q2xzfS1pdGVtLCAke21lbnVDbHN9LXN1Ym1lbnUtdGl0bGVgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2Rpc3BsYXk6ImZsZXgiLG1hcmdpbjowLHBhZGRpbmc6YCR7KDAsY3NzaW5qc19lcy5iZikocGFkZGluZ0Jsb2NrKX0gJHsoMCxjc3NpbmpzX2VzLmJmKShjb250cm9sUGFkZGluZ0hvcml6b250YWwpfWAsY29sb3I6dG9rZW4uY29sb3JUZXh0LGZvbnRXZWlnaHQ6Im5vcm1hbCIsZm9udFNpemUsbGluZUhlaWdodDp0b2tlbi5saW5lSGVpZ2h0LGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7bW90aW9uRHVyYXRpb25NaWR9YCxib3JkZXJSYWRpdXM6dG9rZW4uYm9yZGVyUmFkaXVzU00sIiY6aG92ZXIsICYtYWN0aXZlIjp7YmFja2dyb3VuZENvbG9yOnRva2VuLmNvbnRyb2xJdGVtQmdIb3Zlcn19LCgwLHN0eWxlLlF5KSh0b2tlbikpLHsiJi1zZWxlY3RlZCI6e2NvbG9yOnRva2VuLmNvbG9yUHJpbWFyeSxiYWNrZ3JvdW5kQ29sb3I6dG9rZW4uY29udHJvbEl0ZW1CZ0FjdGl2ZSwiJjpob3ZlciwgJi1hY3RpdmUiOntiYWNrZ3JvdW5kQ29sb3I6dG9rZW4uY29udHJvbEl0ZW1CZ0FjdGl2ZUhvdmVyfX0sIiYtZGlzYWJsZWQiOntjb2xvcjpjb2xvclRleHREaXNhYmxlZCxjdXJzb3I6Im5vdC1hbGxvd2VkIiwiJjpob3ZlciI6e2NvbG9yOmNvbG9yVGV4dERpc2FibGVkLGJhY2tncm91bmRDb2xvcjpjb2xvckJnRWxldmF0ZWQsY3Vyc29yOiJub3QtYWxsb3dlZCJ9LGE6e3BvaW50ZXJFdmVudHM6Im5vbmUifX0sIiYtZGl2aWRlciI6e2hlaWdodDoxLG1hcmdpbjpgJHsoMCxjc3NpbmpzX2VzLmJmKSh0b2tlbi5tYXJnaW5YWFMpfSAwYCxvdmVyZmxvdzoiaGlkZGVuIixsaW5lSGVpZ2h0OjAsYmFja2dyb3VuZENvbG9yOnRva2VuLmNvbG9yU3BsaXR9LFtgJHtjb21wb25lbnRDbHN9LW1lbnUtc3VibWVudS1leHBhbmQtaWNvbmBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0SW5saW5lRW5kOnRva2VuLnBhZGRpbmdYUyxbYCR7Y29tcG9uZW50Q2xzfS1tZW51LXN1Ym1lbnUtYXJyb3ctaWNvbmBdOnttYXJnaW5JbmxpbmVFbmQ6IjAgIWltcG9ydGFudCIsY29sb3I6dG9rZW4uY29sb3JJY29uLGZvbnRTaXplOmZvbnRTaXplSWNvbixmb250U3R5bGU6Im5vcm1hbCJ9fX0pLFtgJHttZW51Q2xzfS1pdGVtLWdyb3VwLWxpc3RgXTp7bWFyZ2luOmAwICR7KDAsY3NzaW5qc19lcy5iZikodG9rZW4ubWFyZ2luWFMpfWAscGFkZGluZzowLGxpc3RTdHlsZToibm9uZSJ9LFtgJHttZW51Q2xzfS1zdWJtZW51LXRpdGxlYF06e3BhZGRpbmdJbmxpbmVFbmQ6dG9rZW4uY2FsYyhjb250cm9sUGFkZGluZ0hvcml6b250YWwpLmFkZCh0b2tlbi5mb250U2l6ZVNNKS5lcXVhbCgpfSxbYCR7bWVudUNsc30tc3VibWVudS12ZXJ0aWNhbGBdOntwb3NpdGlvbjoicmVsYXRpdmUifSxbYCR7bWVudUNsc30tc3VibWVudSR7bWVudUNsc30tc3VibWVudS1kaXNhYmxlZCAke2NvbXBvbmVudENsc30tbWVudS1zdWJtZW51LXRpdGxlYF06e1tgJiwgJHtjb21wb25lbnRDbHN9LW1lbnUtc3VibWVudS1hcnJvdy1pY29uYF06e2NvbG9yOmNvbG9yVGV4dERpc2FibGVkLGJhY2tncm91bmRDb2xvcjpjb2xvckJnRWxldmF0ZWQsY3Vyc29yOiJub3QtYWxsb3dlZCJ9fSxbYCR7bWVudUNsc30tc3VibWVudS1zZWxlY3RlZCAke2NvbXBvbmVudENsc30tbWVudS1zdWJtZW51LXRpdGxlYF06e2NvbG9yOnRva2VuLmNvbG9yUHJpbWFyeX19KX0pfSxbKDAsc2xpZGUub04pKHRva2VuLCJzbGlkZS11cCIpLCgwLHNsaWRlLm9OKSh0b2tlbiwic2xpZGUtZG93biIpLCgwLG1vdmUuRm0pKHRva2VuLCJtb3ZlLXVwIiksKDAsbW92ZS5GbSkodG9rZW4sIm1vdmUtZG93biIpLCgwLHpvb20uX3kpKHRva2VuLCJ6b29tLWJpZyIpXV19LHByZXBhcmVDb21wb25lbnRUb2tlbj10b2tlbj0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt6SW5kZXhQb3B1cDp0b2tlbi56SW5kZXhQb3B1cEJhc2UrNTAscGFkZGluZ0Jsb2NrOih0b2tlbi5jb250cm9sSGVpZ2h0LXRva2VuLmZvbnRTaXplKnRva2VuLmxpbmVIZWlnaHQpLzJ9LCgwLHBsYWNlbWVudEFycm93LndaKSh7Y29udGVudFJhZGl1czp0b2tlbi5ib3JkZXJSYWRpdXNMRyxsaW1pdFZlcnRpY2FsUmFkaXVzOiEwfSkpLCgwLHJvdW5kZWRBcnJvdy53KSh0b2tlbikpO3ZhciBkcm9wZG93bl9zdHlsZT0oMCxnZW5TdHlsZVV0aWxzLkkkKSgiRHJvcGRvd24iLHRva2VuPT57bGV0e21hcmdpblhYUyxzaXplUG9wdXBBcnJvdyxwYWRkaW5nWFhTLGNvbXBvbmVudENsc309dG9rZW4sZHJvcGRvd25Ub2tlbj0oMCxjc3NpbmpzX3V0aWxzX2VzLklYKSh0b2tlbix7bWVudUNsczpgJHtjb21wb25lbnRDbHN9LW1lbnVgLGRyb3Bkb3duQXJyb3dEaXN0YW5jZTp0b2tlbi5jYWxjKHNpemVQb3B1cEFycm93KS5kaXYoMikuYWRkKG1hcmdpblhYUykuZXF1YWwoKSxkcm9wZG93bkVkZ2VDaGlsZFBhZGRpbmc6cGFkZGluZ1hYU30pO3JldHVybltnZW5CYXNlU3R5bGUoZHJvcGRvd25Ub2tlbiksZ2VuU3RhdHVzU3R5bGUoZHJvcGRvd25Ub2tlbildfSxwcmVwYXJlQ29tcG9uZW50VG9rZW4se3Jlc2V0U3R5bGU6ITF9KTtsZXQgZHJvcGRvd25fRHJvcGRvd249cHJvcHM9Pnt2YXIgX2E7bGV0e21lbnUsYXJyb3cscHJlZml4Q2xzOmN1c3RvbWl6ZVByZWZpeENscyxjaGlsZHJlbix0cmlnZ2VyLGRpc2FibGVkLGRyb3Bkb3duUmVuZGVyLHBvcHVwUmVuZGVyLGdldFBvcHVwQ29udGFpbmVyLG92ZXJsYXlDbGFzc05hbWUscm9vdENsYXNzTmFtZSxvdmVybGF5U3R5bGUsb3Blbixvbk9wZW5DaGFuZ2UsdmlzaWJsZSxvblZpc2libGVDaGFuZ2UsbW91c2VFbnRlckRlbGF5PS4xNSxtb3VzZUxlYXZlRGVsYXk9LjEsYXV0b0FkanVzdE92ZXJmbG93PSEwLHBsYWNlbWVudD0iIixvdmVybGF5LHRyYW5zaXRpb25OYW1lLGRlc3Ryb3lPbkhpZGRlbixkZXN0cm95UG9wdXBPbkhpZGV9PXByb3BzLHtnZXRQb3B1cENvbnRhaW5lcjpnZXRDb250ZXh0UG9wdXBDb250YWluZXIsZ2V0UHJlZml4Q2xzLGRpcmVjdGlvbixkcm9wZG93bn09cmVhY3QudXNlQ29udGV4dChjb250ZXh0LkVfKSxtZXJnZWRQb3B1cFJlbmRlcj1wb3B1cFJlbmRlcnx8ZHJvcGRvd25SZW5kZXI7KDAsX3V0aWxfd2FybmluZy5sbikoIkRyb3Bkb3duIik7bGV0IG1lbW9UcmFuc2l0aW9uTmFtZT1yZWFjdC51c2VNZW1vKCgpPT57bGV0IHJvb3RQcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCk7cmV0dXJuIHZvaWQgMCE9PXRyYW5zaXRpb25OYW1lP3RyYW5zaXRpb25OYW1lOnBsYWNlbWVudC5pbmNsdWRlcygidG9wIik/YCR7cm9vdFByZWZpeENsc30tc2xpZGUtZG93bmA6YCR7cm9vdFByZWZpeENsc30tc2xpZGUtdXBgfSxbZ2V0UHJlZml4Q2xzLHBsYWNlbWVudCx0cmFuc2l0aW9uTmFtZV0pLG1lbW9QbGFjZW1lbnQ9cmVhY3QudXNlTWVtbygoKT0+cGxhY2VtZW50P3BsYWNlbWVudC5pbmNsdWRlcygiQ2VudGVyIik/cGxhY2VtZW50LnNsaWNlKDAscGxhY2VtZW50LmluZGV4T2YoIkNlbnRlciIpKTpwbGFjZW1lbnQ6InJ0bCI9PT1kaXJlY3Rpb24/ImJvdHRvbVJpZ2h0IjoiYm90dG9tTGVmdCIsW3BsYWNlbWVudCxkaXJlY3Rpb25dKSxwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJkcm9wZG93biIsY3VzdG9taXplUHJlZml4Q2xzKSxyb290Q2xzPSgwLHVzZUNTU1ZhckNscy5aKShwcmVmaXhDbHMpLFt3cmFwQ1NTVmFyLGhhc2hJZCxjc3NWYXJDbHNdPWRyb3Bkb3duX3N0eWxlKHByZWZpeENscyxyb290Q2xzKSxbLHRva2VuXT0oMCx1c2VUb2tlbi5aUCkoKSxjaGlsZD1yZWFjdC5DaGlsZHJlbi5vbmx5KF91dGlsX2lzUHJpbWl0aXZlKGNoaWxkcmVuKT9yZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsLGNoaWxkcmVuKTpjaGlsZHJlbikscG9wdXBUcmlnZ2VyPSgwLHJlYWN0Tm9kZS5UbSkoY2hpbGQse2NsYXNzTmFtZTpjbGFzc25hbWVzX2RlZmF1bHQoKShgJHtwcmVmaXhDbHN9LXRyaWdnZXJgLHtbYCR7cHJlZml4Q2xzfS1ydGxgXToicnRsIj09PWRpcmVjdGlvbn0sY2hpbGQucHJvcHMuY2xhc3NOYW1lKSxkaXNhYmxlZDpudWxsIT09KF9hPWNoaWxkLnByb3BzLmRpc2FibGVkKSYmdm9pZCAwIT09X2E/X2E6ZGlzYWJsZWR9KSx0cmlnZ2VyQWN0aW9ucz1kaXNhYmxlZD9bXTp0cmlnZ2VyLGFsaWduUG9pbnQ9ISEobnVsbD09dHJpZ2dlckFjdGlvbnM/dm9pZCAwOnRyaWdnZXJBY3Rpb25zLmluY2x1ZGVzKCJjb250ZXh0TWVudSIpKSxbbWVyZ2VkT3BlbixzZXRPcGVuXT0oMCx1c2VNZXJnZWRTdGF0ZS5aKSghMSx7dmFsdWU6bnVsbCE9b3Blbj9vcGVuOnZpc2libGV9KSxvbklubmVyT3BlbkNoYW5nZT0oMCx1c2VFdmVudC5aKShuZXh0T3Blbj0+e251bGw9PW9uT3BlbkNoYW5nZXx8b25PcGVuQ2hhbmdlKG5leHRPcGVuLHtzb3VyY2U6InRyaWdnZXIifSksbnVsbD09b25WaXNpYmxlQ2hhbmdlfHxvblZpc2libGVDaGFuZ2UobmV4dE9wZW4pLHNldE9wZW4obmV4dE9wZW4pfSksb3ZlcmxheUNsYXNzTmFtZUN1c3RvbWl6ZWQ9Y2xhc3NuYW1lc19kZWZhdWx0KCkob3ZlcmxheUNsYXNzTmFtZSxyb290Q2xhc3NOYW1lLGhhc2hJZCxjc3NWYXJDbHMscm9vdENscyxudWxsPT1kcm9wZG93bj92b2lkIDA6ZHJvcGRvd24uY2xhc3NOYW1lLHtbYCR7cHJlZml4Q2xzfS1ydGxgXToicnRsIj09PWRpcmVjdGlvbn0pLGJ1aWx0aW5QbGFjZW1lbnRzPSgwLF91dGlsX3BsYWNlbWVudHMuWikoe2Fycm93UG9pbnRBdENlbnRlcjoib2JqZWN0Ij09dHlwZW9mIGFycm93JiZhcnJvdy5wb2ludEF0Q2VudGVyLGF1dG9BZGp1c3RPdmVyZmxvdyxvZmZzZXQ6dG9rZW4ubWFyZ2luWFhTLGFycm93V2lkdGg6YXJyb3c/dG9rZW4uc2l6ZVBvcHVwQXJyb3c6MCxib3JkZXJSYWRpdXM6dG9rZW4uYm9yZGVyUmFkaXVzfSksb25NZW51Q2xpY2s9cmVhY3QudXNlQ2FsbGJhY2soKCk9PntudWxsIT1tZW51JiZtZW51LnNlbGVjdGFibGUmJm51bGwhPW1lbnUmJm1lbnUubXVsdGlwbGV8fChudWxsPT1vbk9wZW5DaGFuZ2V8fG9uT3BlbkNoYW5nZSghMSx7c291cmNlOiJtZW51In0pLHNldE9wZW4oITEpKX0sW251bGw9PW1lbnU/dm9pZCAwOm1lbnUuc2VsZWN0YWJsZSxudWxsPT1tZW51P3ZvaWQgMDptZW51Lm11bHRpcGxlXSkscmVuZGVyT3ZlcmxheT0oKT0+e2xldCBvdmVybGF5Tm9kZTtyZXR1cm4gb3ZlcmxheU5vZGU9KG51bGw9PW1lbnU/dm9pZCAwOm1lbnUuaXRlbXMpP3JlYWN0LmNyZWF0ZUVsZW1lbnQoZXNfbWVudS5aLE9iamVjdC5hc3NpZ24oe30sbWVudSkpOiJmdW5jdGlvbiI9PXR5cGVvZiBvdmVybGF5P292ZXJsYXkoKTpvdmVybGF5LG1lcmdlZFBvcHVwUmVuZGVyJiYob3ZlcmxheU5vZGU9bWVyZ2VkUG9wdXBSZW5kZXIob3ZlcmxheU5vZGUpKSxvdmVybGF5Tm9kZT1yZWFjdC5DaGlsZHJlbi5vbmx5KCJzdHJpbmciPT10eXBlb2Ygb3ZlcmxheU5vZGU/cmVhY3QuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxvdmVybGF5Tm9kZSk6b3ZlcmxheU5vZGUpLHJlYWN0LmNyZWF0ZUVsZW1lbnQoT3ZlcnJpZGVDb250ZXh0Lkose3ByZWZpeENsczpgJHtwcmVmaXhDbHN9LW1lbnVgLHJvb3RDbGFzc05hbWU6Y2xhc3NuYW1lc19kZWZhdWx0KCkoY3NzVmFyQ2xzLHJvb3RDbHMpLGV4cGFuZEljb246cmVhY3QuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtwcmVmaXhDbHN9LW1lbnUtc3VibWVudS1hcnJvd2B9LCJydGwiPT09ZGlyZWN0aW9uP3JlYWN0LmNyZWF0ZUVsZW1lbnQoTGVmdE91dGxpbmVkLlose2NsYXNzTmFtZTpgJHtwcmVmaXhDbHN9LW1lbnUtc3VibWVudS1hcnJvdy1pY29uYH0pOnJlYWN0LmNyZWF0ZUVsZW1lbnQoUmlnaHRPdXRsaW5lZC5aLHtjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS1tZW51LXN1Ym1lbnUtYXJyb3ctaWNvbmB9KSksbW9kZToidmVydGljYWwiLHNlbGVjdGFibGU6ITEsb25DbGljazpvbk1lbnVDbGljayx2YWxpZGF0b3IoX3JlZjIpe2xldHttb2RlfT1fcmVmMn19LG92ZXJsYXlOb2RlKX0sW3pJbmRleCxjb250ZXh0WkluZGV4XT0oMCx1c2VaSW5kZXguQ24pKCJEcm9wZG93biIsbnVsbD09b3ZlcmxheVN0eWxlP3ZvaWQgMDpvdmVybGF5U3R5bGUuekluZGV4KSxyZW5kZXJOb2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQoZXNfRHJvcGRvd24sT2JqZWN0LmFzc2lnbih7YWxpZ25Qb2ludDphbGlnblBvaW50fSwoMCxvbWl0LlopKHByb3BzLFsicm9vdENsYXNzTmFtZSJdKSx7bW91c2VFbnRlckRlbGF5Om1vdXNlRW50ZXJEZWxheSxtb3VzZUxlYXZlRGVsYXk6bW91c2VMZWF2ZURlbGF5LHZpc2libGU6bWVyZ2VkT3BlbixidWlsdGluUGxhY2VtZW50czpidWlsdGluUGxhY2VtZW50cyxhcnJvdzohIWFycm93LG92ZXJsYXlDbGFzc05hbWU6b3ZlcmxheUNsYXNzTmFtZUN1c3RvbWl6ZWQscHJlZml4Q2xzOnByZWZpeENscyxnZXRQb3B1cENvbnRhaW5lcjpnZXRQb3B1cENvbnRhaW5lcnx8Z2V0Q29udGV4dFBvcHVwQ29udGFpbmVyLHRyYW5zaXRpb25OYW1lOm1lbW9UcmFuc2l0aW9uTmFtZSx0cmlnZ2VyOnRyaWdnZXJBY3Rpb25zLG92ZXJsYXk6cmVuZGVyT3ZlcmxheSxwbGFjZW1lbnQ6bWVtb1BsYWNlbWVudCxvblZpc2libGVDaGFuZ2U6b25Jbm5lck9wZW5DaGFuZ2Usb3ZlcmxheVN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG51bGw9PWRyb3Bkb3duP3ZvaWQgMDpkcm9wZG93bi5zdHlsZSksb3ZlcmxheVN0eWxlKSx7ekluZGV4fSksYXV0b0Rlc3Ryb3k6bnVsbCE9ZGVzdHJveU9uSGlkZGVuP2Rlc3Ryb3lPbkhpZGRlbjpkZXN0cm95UG9wdXBPbkhpZGV9KSxwb3B1cFRyaWdnZXIpO3JldHVybiB6SW5kZXgmJihyZW5kZXJOb2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQoemluZGV4Q29udGV4dC5aLlByb3ZpZGVyLHt2YWx1ZTpjb250ZXh0WkluZGV4fSxyZW5kZXJOb2RlKSksd3JhcENTU1ZhcihyZW5kZXJOb2RlKX0sZHJvcGRvd25fUHVyZVBhbmVsPSgwLFB1cmVQYW5lbC5aKShkcm9wZG93bl9Ecm9wZG93biwiYWxpZ24iLHZvaWQgMCwiZHJvcGRvd24iLHByZWZpeENscz0+cHJlZml4Q2xzKSxXcmFwUHVyZVBhbmVsPXByb3BzPT5yZWFjdC5jcmVhdGVFbGVtZW50KGRyb3Bkb3duX1B1cmVQYW5lbCxPYmplY3QuYXNzaWduKHt9LHByb3BzKSxyZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIixudWxsKSk7ZHJvcGRvd25fRHJvcGRvd24uX0ludGVybmFsUGFuZWxEb05vdFVzZU9yWW91V2lsbEJlRmlyZWQ9V3JhcFB1cmVQYW5lbDt2YXIgRWxsaXBzaXNPdXRsaW5lZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDg5NzA1KSxlc19idXR0b249X193ZWJwYWNrX3JlcXVpcmVfXyg4MDQ0Nyksc3BhY2U9X193ZWJwYWNrX3JlcXVpcmVfXyg3ODk1NyksQ29tcGFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQxNzMpLF9fcmVzdD1mdW5jdGlvbihzLGUpe3ZhciB0PXt9O2Zvcih2YXIgcCBpbiBzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLHApJiYwPmUuaW5kZXhPZihwKSYmKHRbcF09c1twXSk7aWYobnVsbCE9cyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpZm9yKHZhciBpPTAscD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpO2k8cC5sZW5ndGg7aSsrKTA+ZS5pbmRleE9mKHBbaV0pJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocyxwW2ldKSYmKHRbcFtpXV09c1twW2ldXSk7cmV0dXJuIHR9O2xldCBEcm9wZG93bkJ1dHRvbj1wcm9wcz0+e2xldHtnZXRQb3B1cENvbnRhaW5lcjpnZXRDb250ZXh0UG9wdXBDb250YWluZXIsZ2V0UHJlZml4Q2xzLGRpcmVjdGlvbn09cmVhY3QudXNlQ29udGV4dChjb250ZXh0LkVfKSx7cHJlZml4Q2xzOmN1c3RvbWl6ZVByZWZpeENscyx0eXBlPSJkZWZhdWx0IixkYW5nZXIsZGlzYWJsZWQsbG9hZGluZyxvbkNsaWNrLGh0bWxUeXBlLGNoaWxkcmVuLGNsYXNzTmFtZSxtZW51LGFycm93LGF1dG9Gb2N1cyxvdmVybGF5LHRyaWdnZXIsYWxpZ24sb3Blbixvbk9wZW5DaGFuZ2UscGxhY2VtZW50LGdldFBvcHVwQ29udGFpbmVyLGhyZWYsaWNvbj1yZWFjdC5jcmVhdGVFbGVtZW50KEVsbGlwc2lzT3V0bGluZWQuWixudWxsKSx0aXRsZSxidXR0b25zUmVuZGVyPWJ1dHRvbnM9PmJ1dHRvbnMsbW91c2VFbnRlckRlbGF5LG1vdXNlTGVhdmVEZWxheSxvdmVybGF5Q2xhc3NOYW1lLG92ZXJsYXlTdHlsZSxkZXN0cm95T25IaWRkZW4sZGVzdHJveVBvcHVwT25IaWRlLGRyb3Bkb3duUmVuZGVyLHBvcHVwUmVuZGVyfT1wcm9wcyxyZXN0UHJvcHM9X19yZXN0KHByb3BzLFsicHJlZml4Q2xzIiwidHlwZSIsImRhbmdlciIsImRpc2FibGVkIiwibG9hZGluZyIsIm9uQ2xpY2siLCJodG1sVHlwZSIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwibWVudSIsImFycm93IiwiYXV0b0ZvY3VzIiwib3ZlcmxheSIsInRyaWdnZXIiLCJhbGlnbiIsIm9wZW4iLCJvbk9wZW5DaGFuZ2UiLCJwbGFjZW1lbnQiLCJnZXRQb3B1cENvbnRhaW5lciIsImhyZWYiLCJpY29uIiwidGl0bGUiLCJidXR0b25zUmVuZGVyIiwibW91c2VFbnRlckRlbGF5IiwibW91c2VMZWF2ZURlbGF5Iiwib3ZlcmxheUNsYXNzTmFtZSIsIm92ZXJsYXlTdHlsZSIsImRlc3Ryb3lPbkhpZGRlbiIsImRlc3Ryb3lQb3B1cE9uSGlkZSIsImRyb3Bkb3duUmVuZGVyIiwicG9wdXBSZW5kZXIiXSkscHJlZml4Q2xzPWdldFByZWZpeENscygiZHJvcGRvd24iLGN1c3RvbWl6ZVByZWZpeENscyksYnV0dG9uUHJlZml4Q2xzPWAke3ByZWZpeENsc30tYnV0dG9uYCxkcm9wZG93blByb3BzPXttZW51LGFycm93LGF1dG9Gb2N1cyxhbGlnbixkaXNhYmxlZCx0cmlnZ2VyOmRpc2FibGVkP1tdOnRyaWdnZXIsb25PcGVuQ2hhbmdlLGdldFBvcHVwQ29udGFpbmVyOmdldFBvcHVwQ29udGFpbmVyfHxnZXRDb250ZXh0UG9wdXBDb250YWluZXIsbW91c2VFbnRlckRlbGF5LG1vdXNlTGVhdmVEZWxheSxvdmVybGF5Q2xhc3NOYW1lLG92ZXJsYXlTdHlsZSxkZXN0cm95T25IaWRkZW4scG9wdXBSZW5kZXI6cG9wdXBSZW5kZXJ8fGRyb3Bkb3duUmVuZGVyfSx7Y29tcGFjdFNpemUsY29tcGFjdEl0ZW1DbGFzc25hbWVzfT0oMCxDb21wYWN0LnJpKShwcmVmaXhDbHMsZGlyZWN0aW9uKSxjbGFzc2VzPWNsYXNzbmFtZXNfZGVmYXVsdCgpKGJ1dHRvblByZWZpeENscyxjb21wYWN0SXRlbUNsYXNzbmFtZXMsY2xhc3NOYW1lKTsiZGVzdHJveVBvcHVwT25IaWRlImluIHByb3BzJiYoZHJvcGRvd25Qcm9wcy5kZXN0cm95UG9wdXBPbkhpZGU9ZGVzdHJveVBvcHVwT25IaWRlKSwib3ZlcmxheSJpbiBwcm9wcyYmKGRyb3Bkb3duUHJvcHMub3ZlcmxheT1vdmVybGF5KSwib3BlbiJpbiBwcm9wcyYmKGRyb3Bkb3duUHJvcHMub3Blbj1vcGVuKSwicGxhY2VtZW50ImluIHByb3BzP2Ryb3Bkb3duUHJvcHMucGxhY2VtZW50PXBsYWNlbWVudDpkcm9wZG93blByb3BzLnBsYWNlbWVudD0icnRsIj09PWRpcmVjdGlvbj8iYm90dG9tTGVmdCI6ImJvdHRvbVJpZ2h0IjtsZXQgbGVmdEJ1dHRvbj1yZWFjdC5jcmVhdGVFbGVtZW50KGVzX2J1dHRvbi5aUCx7dHlwZTp0eXBlLGRhbmdlcjpkYW5nZXIsZGlzYWJsZWQ6ZGlzYWJsZWQsbG9hZGluZzpsb2FkaW5nLG9uQ2xpY2s6b25DbGljayxodG1sVHlwZTpodG1sVHlwZSxocmVmOmhyZWYsdGl0bGU6dGl0bGV9LGNoaWxkcmVuKSxyaWdodEJ1dHRvbj1yZWFjdC5jcmVhdGVFbGVtZW50KGVzX2J1dHRvbi5aUCx7dHlwZTp0eXBlLGRhbmdlcjpkYW5nZXIsaWNvbjppY29ufSksW2xlZnRCdXR0b25Ub1JlbmRlcixyaWdodEJ1dHRvblRvUmVuZGVyXT1idXR0b25zUmVuZGVyKFtsZWZ0QnV0dG9uLHJpZ2h0QnV0dG9uXSk7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoc3BhY2UuWi5Db21wYWN0LE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZTpjbGFzc2VzLHNpemU6Y29tcGFjdFNpemUsYmxvY2s6ITB9LHJlc3RQcm9wcyksbGVmdEJ1dHRvblRvUmVuZGVyLHJlYWN0LmNyZWF0ZUVsZW1lbnQoZHJvcGRvd25fRHJvcGRvd24sT2JqZWN0LmFzc2lnbih7fSxkcm9wZG93blByb3BzKSxyaWdodEJ1dHRvblRvUmVuZGVyKSl9O0Ryb3Bkb3duQnV0dG9uLl9fQU5UX0JVVFRPTj0hMDtsZXQgZXNfZHJvcGRvd25fRHJvcGRvd249ZHJvcGRvd25fRHJvcGRvd247ZXNfZHJvcGRvd25fRHJvcGRvd24uQnV0dG9uPURyb3Bkb3duQnV0dG9uO3ZhciBlc19kcm9wZG93bj1lc19kcm9wZG93bl9Ecm9wZG93bn0sNjUyMjM6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1JWOmZ1bmN0aW9uKCl7cmV0dXJuIEZvcm1Qcm92aWRlcn0sUms6ZnVuY3Rpb24oKXtyZXR1cm4gRm9ybUl0ZW1QcmVmaXhDb250ZXh0fSxVeDpmdW5jdGlvbigpe3JldHVybiBOb0Zvcm1TdHlsZX0sYU06ZnVuY3Rpb24oKXtyZXR1cm4gRm9ybUl0ZW1JbnB1dENvbnRleHR9LHBnOmZ1bmN0aW9uKCl7cmV0dXJuIFZhcmlhbnRDb250ZXh0fSxxMzpmdW5jdGlvbigpe3JldHVybiBGb3JtQ29udGV4dH0scUk6ZnVuY3Rpb24oKXtyZXR1cm4gTm9TdHlsZUl0ZW1Db250ZXh0fX0pO3ZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLHJjX2ZpZWxkX2Zvcm1fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDcwMTI5KSxyY191dGlsX2VzX29taXRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDEwMzY2KTtsZXQgRm9ybUNvbnRleHQ9cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jcmVhdGVDb250ZXh0KHtsYWJlbEFsaWduOiJyaWdodCIsdmVydGljYWw6ITEsaXRlbVJlZigpe319KSxOb1N0eWxlSXRlbUNvbnRleHQ9cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jcmVhdGVDb250ZXh0KG51bGwpLEZvcm1Qcm92aWRlcj1wcm9wcz0+e2xldCBwcm92aWRlclByb3BzPSgwLHJjX3V0aWxfZXNfb21pdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLlopKHByb3BzLFsicHJlZml4Q2xzIl0pO3JldHVybiByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmNyZWF0ZUVsZW1lbnQocmNfZmllbGRfZm9ybV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlJWLE9iamVjdC5hc3NpZ24oe30scHJvdmlkZXJQcm9wcykpfSxGb3JtSXRlbVByZWZpeENvbnRleHQ9cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jcmVhdGVDb250ZXh0KHtwcmVmaXhDbHM6IiJ9KSxGb3JtSXRlbUlucHV0Q29udGV4dD1yZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmNyZWF0ZUNvbnRleHQoe30pLE5vRm9ybVN0eWxlPV9yZWY9PntsZXR7Y2hpbGRyZW4sc3RhdHVzLG92ZXJyaWRlfT1fcmVmLGZvcm1JdGVtSW5wdXRDb250ZXh0PXJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlQ29udGV4dChGb3JtSXRlbUlucHV0Q29udGV4dCksbmV3Rm9ybUl0ZW1JbnB1dENvbnRleHQ9cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VNZW1vKCgpPT57bGV0IG5ld0NvbnRleHQ9T2JqZWN0LmFzc2lnbih7fSxmb3JtSXRlbUlucHV0Q29udGV4dCk7cmV0dXJuIG92ZXJyaWRlJiZkZWxldGUgbmV3Q29udGV4dC5pc0Zvcm1JdGVtSW5wdXQsc3RhdHVzJiYoZGVsZXRlIG5ld0NvbnRleHQuc3RhdHVzLGRlbGV0ZSBuZXdDb250ZXh0Lmhhc0ZlZWRiYWNrLGRlbGV0ZSBuZXdDb250ZXh0LmZlZWRiYWNrSWNvbiksbmV3Q29udGV4dH0sW3N0YXR1cyxvdmVycmlkZSxmb3JtSXRlbUlucHV0Q29udGV4dF0pO3JldHVybiByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmNyZWF0ZUVsZW1lbnQoRm9ybUl0ZW1JbnB1dENvbnRleHQuUHJvdmlkZXIse3ZhbHVlOm5ld0Zvcm1JdGVtSW5wdXRDb250ZXh0fSxjaGlsZHJlbil9LFZhcmlhbnRDb250ZXh0PXJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uY3JlYXRlQ29udGV4dCh2b2lkIDApfSwyNzgzMzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0Ijt2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxfY29udGV4dF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fPV9fd2VicGFja19yZXF1aXJlX18oNjUyMjMpLF9jb25maWdfcHJvdmlkZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDUzMTI0KTtfX3dlYnBhY2tfZXhwb3J0c19fLlo9ZnVuY3Rpb24oY29tcG9uZW50LHZhcmlhbnQpe3ZhciBfYSxfYjtsZXQgbWVyZ2VkVmFyaWFudCxsZWdhY3lCb3JkZXJlZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06dm9pZCAwLHt2YXJpYW50OmNvbmZpZ1ZhcmlhbnQsW2NvbXBvbmVudF06Y29tcG9uZW50Q29uZmlnfT1yZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnVzZUNvbnRleHQoX2NvbmZpZ19wcm92aWRlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkVfKSxjdHhWYXJpYW50PXJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlQ29udGV4dChfY29udGV4dF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnBnKSxjb25maWdDb21wb25lbnRWYXJpYW50PW51bGw9PWNvbXBvbmVudENvbmZpZz92b2lkIDA6Y29tcG9uZW50Q29uZmlnLnZhcmlhbnQ7bWVyZ2VkVmFyaWFudD12b2lkIDAhPT12YXJpYW50P3ZhcmlhbnQ6ITE9PT1sZWdhY3lCb3JkZXJlZD8iYm9yZGVybGVzcyI6bnVsbCE9PShfYj1udWxsIT09KF9hPW51bGwhPWN0eFZhcmlhbnQ/Y3R4VmFyaWFudDpjb25maWdDb21wb25lbnRWYXJpYW50KSYmdm9pZCAwIT09X2E/X2E6Y29uZmlnVmFyaWFudCkmJnZvaWQgMCE9PV9iP19iOiJvdXRsaW5lZCI7bGV0IGVuYWJsZVZhcmlhbnRDbHM9X2NvbmZpZ19wcm92aWRlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnRyLmluY2x1ZGVzKG1lcmdlZFZhcmlhbnQpO3JldHVyblttZXJnZWRWYXJpYW50LGVuYWJsZVZhcmlhbnRDbHNdfX0sNjMxMDI6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gZXNfZm9ybX19KTt2YXIgY29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY1MjIzKSx0b0NvbnN1bWFibGVBcnJheT1fX3dlYnBhY2tfcmVxdWlyZV9fKDc1MTc3KSxyZWFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxjbGFzc25hbWVzPV9fd2VicGFja19yZXF1aXJlX18oMTMxNDQpLGNsYXNzbmFtZXNfZGVmYXVsdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oY2xhc3NuYW1lcyksZXM9X193ZWJwYWNrX3JlcXVpcmVfXygxNTYwMiksbW90aW9uPV9fd2VicGFja19yZXF1aXJlX18oMzM2MDMpLHVzZUNTU1ZhckNscz1fX3dlYnBhY2tfcmVxdWlyZV9fKDM1NzkyKTtmdW5jdGlvbiB1c2VEZWJvdW5jZSh2YWx1ZSl7bGV0W2NhY2hlVmFsdWUsc2V0Q2FjaGVWYWx1ZV09cmVhY3QudXNlU3RhdGUodmFsdWUpO3JldHVybiByZWFjdC51c2VFZmZlY3QoKCk9PntsZXQgdGltZW91dD1zZXRUaW1lb3V0KCgpPT57c2V0Q2FjaGVWYWx1ZSh2YWx1ZSl9LHZhbHVlLmxlbmd0aD8wOjEwKTtyZXR1cm4oKT0+e2NsZWFyVGltZW91dCh0aW1lb3V0KX19LFt2YWx1ZV0pLGNhY2hlVmFsdWV9dmFyIGNzc2luanNfZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0NDg5OSksc3R5bGU9X193ZWJwYWNrX3JlcXVpcmVfXygxNDc0Nyksem9vbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDUwNDM4KSxjb2xsYXBzZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDMzNTA3KSxjc3NpbmpzX3V0aWxzX2VzPV9fd2VicGFja19yZXF1aXJlX18oNDI1NTkpLGdlblN0eWxlVXRpbHM9X193ZWJwYWNrX3JlcXVpcmVfXyg4MzU1OSk7bGV0IGdlbkZvcm1WYWxpZGF0ZU1vdGlvblN0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENsc309dG9rZW4saGVscENscz1gJHtjb21wb25lbnRDbHN9LXNob3ctaGVscGAsaGVscEl0ZW1DbHM9YCR7Y29tcG9uZW50Q2xzfS1zaG93LWhlbHAtaXRlbWA7cmV0dXJue1toZWxwQ2xzXTp7dHJhbnNpdGlvbjpgb3BhY2l0eSAke3Rva2VuLm1vdGlvbkR1cmF0aW9uRmFzdH0gJHt0b2tlbi5tb3Rpb25FYXNlSW5PdXR9YCwiJi1hcHBlYXIsICYtZW50ZXIiOntvcGFjaXR5OjAsIiYtYWN0aXZlIjp7b3BhY2l0eToxfX0sIiYtbGVhdmUiOntvcGFjaXR5OjEsIiYtYWN0aXZlIjp7b3BhY2l0eTowfX0sW2hlbHBJdGVtQ2xzXTp7b3ZlcmZsb3c6ImhpZGRlbiIsdHJhbnNpdGlvbjpgaGVpZ2h0ICR7dG9rZW4ubW90aW9uRHVyYXRpb25GYXN0fSAke3Rva2VuLm1vdGlvbkVhc2VJbk91dH0sCiAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHkgJHt0b2tlbi5tb3Rpb25EdXJhdGlvbkZhc3R9ICR7dG9rZW4ubW90aW9uRWFzZUluT3V0fSwKICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtICR7dG9rZW4ubW90aW9uRHVyYXRpb25GYXN0fSAke3Rva2VuLm1vdGlvbkVhc2VJbk91dH0gIWltcG9ydGFudGAsW2AmJHtoZWxwSXRlbUNsc30tYXBwZWFyLCAmJHtoZWxwSXRlbUNsc30tZW50ZXJgXTp7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC01cHgpIixvcGFjaXR5OjAsIiYtYWN0aXZlIjp7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDApIixvcGFjaXR5OjF9fSxbYCYke2hlbHBJdGVtQ2xzfS1sZWF2ZS1hY3RpdmVgXTp7dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC01cHgpIn19fX19LHJlc2V0Rm9ybT10b2tlbj0+KHtsZWdlbmQ6e2Rpc3BsYXk6ImJsb2NrIix3aWR0aDoiMTAwJSIsbWFyZ2luQm90dG9tOnRva2VuLm1hcmdpbkxHLHBhZGRpbmc6MCxjb2xvcjp0b2tlbi5jb2xvclRleHREZXNjcmlwdGlvbixmb250U2l6ZTp0b2tlbi5mb250U2l6ZUxHLGxpbmVIZWlnaHQ6ImluaGVyaXQiLGJvcmRlcjowLGJvcmRlckJvdHRvbTpgJHsoMCxjc3NpbmpzX2VzLmJmKSh0b2tlbi5saW5lV2lkdGgpfSAke3Rva2VuLmxpbmVUeXBlfSAke3Rva2VuLmNvbG9yQm9yZGVyfWB9LCdpbnB1dFt0eXBlPSJzZWFyY2giXSc6e2JveFNpemluZzoiYm9yZGVyLWJveCJ9LCdpbnB1dFt0eXBlPSJyYWRpbyJdLCBpbnB1dFt0eXBlPSJjaGVja2JveCJdJzp7bGluZUhlaWdodDoibm9ybWFsIn0sJ2lucHV0W3R5cGU9ImZpbGUiXSc6e2Rpc3BsYXk6ImJsb2NrIn0sJ2lucHV0W3R5cGU9InJhbmdlIl0nOntkaXNwbGF5OiJibG9jayIsd2lkdGg6IjEwMCUifSwic2VsZWN0W211bHRpcGxlXSwgc2VsZWN0W3NpemVdIjp7aGVpZ2h0OiJhdXRvIn0sW2BpbnB1dFt0eXBlPSdmaWxlJ106Zm9jdXMsCiAgaW5wdXRbdHlwZT0ncmFkaW8nXTpmb2N1cywKICBpbnB1dFt0eXBlPSdjaGVja2JveCddOmZvY3VzYF06e291dGxpbmU6MCxib3hTaGFkb3c6YDAgMCAwICR7KDAsY3NzaW5qc19lcy5iZikodG9rZW4uY29udHJvbE91dGxpbmVXaWR0aCl9ICR7dG9rZW4uY29udHJvbE91dGxpbmV9YH0sb3V0cHV0OntkaXNwbGF5OiJibG9jayIscGFkZGluZ1RvcDoxNSxjb2xvcjp0b2tlbi5jb2xvclRleHQsZm9udFNpemU6dG9rZW4uZm9udFNpemUsbGluZUhlaWdodDp0b2tlbi5saW5lSGVpZ2h0fX0pLGdlbkZvcm1TaXplPSh0b2tlbixoZWlnaHQpPT57bGV0e2Zvcm1JdGVtQ2xzfT10b2tlbjtyZXR1cm57W2Zvcm1JdGVtQ2xzXTp7W2Ake2Zvcm1JdGVtQ2xzfS1sYWJlbCA+IGxhYmVsYF06e2hlaWdodH0sW2Ake2Zvcm1JdGVtQ2xzfS1jb250cm9sLWlucHV0YF06e21pbkhlaWdodDpoZWlnaHR9fX19LGdlbkZvcm1TdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHN9PXRva2VuO3JldHVybntbdG9rZW4uY29tcG9uZW50Q2xzXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxzdHlsZS5XZikodG9rZW4pKSxyZXNldEZvcm0odG9rZW4pKSx7W2Ake2NvbXBvbmVudENsc30tdGV4dGBdOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHBhZGRpbmdJbmxpbmVFbmQ6dG9rZW4ucGFkZGluZ1NNfSwiJi1zbWFsbCI6T2JqZWN0LmFzc2lnbih7fSxnZW5Gb3JtU2l6ZSh0b2tlbix0b2tlbi5jb250cm9sSGVpZ2h0U00pKSwiJi1sYXJnZSI6T2JqZWN0LmFzc2lnbih7fSxnZW5Gb3JtU2l6ZSh0b2tlbix0b2tlbi5jb250cm9sSGVpZ2h0TEcpKX0pfX0sZ2VuRm9ybUl0ZW1TdHlsZT10b2tlbj0+e2xldHtmb3JtSXRlbUNscyxpY29uQ2xzLHJvb3RQcmVmaXhDbHMsYW50Q2xzLGxhYmVsUmVxdWlyZWRNYXJrQ29sb3IsbGFiZWxDb2xvcixsYWJlbEZvbnRTaXplLGxhYmVsSGVpZ2h0LGxhYmVsQ29sb25NYXJnaW5JbmxpbmVTdGFydCxsYWJlbENvbG9uTWFyZ2luSW5saW5lRW5kLGl0ZW1NYXJnaW5Cb3R0b219PXRva2VuO3JldHVybntbZm9ybUl0ZW1DbHNdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxzdHlsZS5XZikodG9rZW4pKSx7bWFyZ2luQm90dG9tOml0ZW1NYXJnaW5Cb3R0b20sdmVydGljYWxBbGlnbjoidG9wIiwiJi13aXRoLWhlbHAiOnt0cmFuc2l0aW9uOiJub25lIn0sW2AmLWhpZGRlbiwKICAgICAgICAmLWhpZGRlbiR7YW50Q2xzfS1yb3dgXTp7ZGlzcGxheToibm9uZSJ9LCImLWhhcy13YXJuaW5nIjp7W2Ake2Zvcm1JdGVtQ2xzfS1zcGxpdGBdOntjb2xvcjp0b2tlbi5jb2xvckVycm9yfX0sIiYtaGFzLWVycm9yIjp7W2Ake2Zvcm1JdGVtQ2xzfS1zcGxpdGBdOntjb2xvcjp0b2tlbi5jb2xvcldhcm5pbmd9fSxbYCR7Zm9ybUl0ZW1DbHN9LWxhYmVsYF06e2ZsZXhHcm93OjAsb3ZlcmZsb3c6ImhpZGRlbiIsd2hpdGVTcGFjZToibm93cmFwIix0ZXh0QWxpZ246ImVuZCIsdmVydGljYWxBbGlnbjoibWlkZGxlIiwiJi1sZWZ0Ijp7dGV4dEFsaWduOiJzdGFydCJ9LCImLXdyYXAiOntvdmVyZmxvdzoidW5zZXQiLGxpbmVIZWlnaHQ6dG9rZW4ubGluZUhlaWdodCx3aGl0ZVNwYWNlOiJ1bnNldCIsIj4gbGFiZWwiOnt2ZXJ0aWNhbEFsaWduOiJtaWRkbGUiLHRleHRXcmFwOiJiYWxhbmNlIn19LCI+IGxhYmVsIjp7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJpbmxpbmUtZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixtYXhXaWR0aDoiMTAwJSIsaGVpZ2h0OmxhYmVsSGVpZ2h0LGNvbG9yOmxhYmVsQ29sb3IsZm9udFNpemU6bGFiZWxGb250U2l6ZSxbYD4gJHtpY29uQ2xzfWBdOntmb250U2l6ZTp0b2tlbi5mb250U2l6ZSx2ZXJ0aWNhbEFsaWduOiJ0b3AifSxbYCYke2Zvcm1JdGVtQ2xzfS1yZXF1aXJlZGBdOnsiJjo6YmVmb3JlIjp7ZGlzcGxheToiaW5saW5lLWJsb2NrIixtYXJnaW5JbmxpbmVFbmQ6dG9rZW4ubWFyZ2luWFhTLGNvbG9yOmxhYmVsUmVxdWlyZWRNYXJrQ29sb3IsZm9udFNpemU6dG9rZW4uZm9udFNpemUsZm9udEZhbWlseToiU2ltU3VuLCBzYW5zLXNlcmlmIixsaW5lSGVpZ2h0OjEsY29udGVudDonIioiJ30sW2AmJHtmb3JtSXRlbUNsc30tcmVxdWlyZWQtbWFyay1oaWRkZW4sICYke2Zvcm1JdGVtQ2xzfS1yZXF1aXJlZC1tYXJrLW9wdGlvbmFsYF06eyImOjpiZWZvcmUiOntkaXNwbGF5OiJub25lIn19fSxbYCR7Zm9ybUl0ZW1DbHN9LW9wdGlvbmFsYF06e2Rpc3BsYXk6ImlubGluZS1ibG9jayIsbWFyZ2luSW5saW5lU3RhcnQ6dG9rZW4ubWFyZ2luWFhTLGNvbG9yOnRva2VuLmNvbG9yVGV4dERlc2NyaXB0aW9uLFtgJiR7Zm9ybUl0ZW1DbHN9LXJlcXVpcmVkLW1hcmstaGlkZGVuYF06e2Rpc3BsYXk6Im5vbmUifX0sW2Ake2Zvcm1JdGVtQ2xzfS10b29sdGlwYF06e2NvbG9yOnRva2VuLmNvbG9yVGV4dERlc2NyaXB0aW9uLGN1cnNvcjoiaGVscCIsd3JpdGluZ01vZGU6Imhvcml6b250YWwtdGIiLG1hcmdpbklubGluZVN0YXJ0OnRva2VuLm1hcmdpblhYU30sIiY6OmFmdGVyIjp7Y29udGVudDonIjoiJyxwb3NpdGlvbjoicmVsYXRpdmUiLG1hcmdpbkJsb2NrOjAsbWFyZ2luSW5saW5lU3RhcnQ6bGFiZWxDb2xvbk1hcmdpbklubGluZVN0YXJ0LG1hcmdpbklubGluZUVuZDpsYWJlbENvbG9uTWFyZ2luSW5saW5lRW5kfSxbYCYke2Zvcm1JdGVtQ2xzfS1uby1jb2xvbjo6YWZ0ZXJgXTp7Y29udGVudDonIlxcYTAiJ319fSxbYCR7Zm9ybUl0ZW1DbHN9LWNvbnRyb2xgXTp7Ii0tYW50LWRpc3BsYXkiOiJmbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLGZsZXhHcm93OjEsW2AmOmZpcnN0LWNoaWxkOm5vdChbY2xhc3NePSInJHtyb290UHJlZml4Q2xzfS1jb2wtJyJdKTpub3QoW2NsYXNzKj0iJyAke3Jvb3RQcmVmaXhDbHN9LWNvbC0nIl0pYF06e3dpZHRoOiIxMDAlIn0sIiYtaW5wdXQiOntwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsbWluSGVpZ2h0OnRva2VuLmNvbnRyb2xIZWlnaHQsIiYtY29udGVudCI6e2ZsZXg6ImF1dG8iLG1heFdpZHRoOiIxMDAlIn19fSxbZm9ybUl0ZW1DbHNdOnsiJi1hZGRpdGlvbmFsIjp7ZGlzcGxheToiZmxleCIsZmxleERpcmVjdGlvbjoiY29sdW1uIn0sIiYtZXhwbGFpbiwgJi1leHRyYSI6e2NsZWFyOiJib3RoIixjb2xvcjp0b2tlbi5jb2xvclRleHREZXNjcmlwdGlvbixmb250U2l6ZTp0b2tlbi5mb250U2l6ZSxsaW5lSGVpZ2h0OnRva2VuLmxpbmVIZWlnaHR9LCImLWV4cGxhaW4tY29ubmVjdGVkIjp7d2lkdGg6IjEwMCUifSwiJi1leHRyYSI6e21pbkhlaWdodDp0b2tlbi5jb250cm9sSGVpZ2h0U00sdHJhbnNpdGlvbjpgY29sb3IgJHt0b2tlbi5tb3Rpb25EdXJhdGlvbk1pZH0gJHt0b2tlbi5tb3Rpb25FYXNlT3V0fWB9LCImLWV4cGxhaW4iOnsiJi1lcnJvciI6e2NvbG9yOnRva2VuLmNvbG9yRXJyb3J9LCImLXdhcm5pbmciOntjb2xvcjp0b2tlbi5jb2xvcldhcm5pbmd9fX0sW2AmLXdpdGgtaGVscCAke2Zvcm1JdGVtQ2xzfS1leHBsYWluYF06e2hlaWdodDoiYXV0byIsb3BhY2l0eToxfSxbYCR7Zm9ybUl0ZW1DbHN9LWZlZWRiYWNrLWljb25gXTp7Zm9udFNpemU6dG9rZW4uZm9udFNpemUsdGV4dEFsaWduOiJjZW50ZXIiLHZpc2liaWxpdHk6InZpc2libGUiLGFuaW1hdGlvbk5hbWU6em9vbS5rcixhbmltYXRpb25EdXJhdGlvbjp0b2tlbi5tb3Rpb25EdXJhdGlvbk1pZCxhbmltYXRpb25UaW1pbmdGdW5jdGlvbjp0b2tlbi5tb3Rpb25FYXNlT3V0QmFjayxwb2ludGVyRXZlbnRzOiJub25lIiwiJi1zdWNjZXNzIjp7Y29sb3I6dG9rZW4uY29sb3JTdWNjZXNzfSwiJi1lcnJvciI6e2NvbG9yOnRva2VuLmNvbG9yRXJyb3J9LCImLXdhcm5pbmciOntjb2xvcjp0b2tlbi5jb2xvcldhcm5pbmd9LCImLXZhbGlkYXRpbmciOntjb2xvcjp0b2tlbi5jb2xvclByaW1hcnl9fX0pfX0sZ2VuSG9yaXpvbnRhbFN0eWxlPSh0b2tlbixjbGFzc05hbWUpPT57bGV0e2Zvcm1JdGVtQ2xzfT10b2tlbjtyZXR1cm57W2Ake2NsYXNzTmFtZX0taG9yaXpvbnRhbGBdOntbYCR7Zm9ybUl0ZW1DbHN9LWxhYmVsYF06e2ZsZXhHcm93OjB9LFtgJHtmb3JtSXRlbUNsc30tY29udHJvbGBdOntmbGV4OiIxIDEgMCIsbWluV2lkdGg6MH0sW2Ake2Zvcm1JdGVtQ2xzfS1sYWJlbFtjbGFzcyQ9Jy0yNCddLCAke2Zvcm1JdGVtQ2xzfS1sYWJlbFtjbGFzcyo9Jy0yNCAnXWBdOntbYCYgKyAke2Zvcm1JdGVtQ2xzfS1jb250cm9sYF06e21pbldpZHRoOiJ1bnNldCJ9fX19fSxnZW5JbmxpbmVTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHMsZm9ybUl0ZW1DbHMsaW5saW5lSXRlbU1hcmdpbkJvdHRvbX09dG9rZW47cmV0dXJue1tgJHtjb21wb25lbnRDbHN9LWlubGluZWBdOntkaXNwbGF5OiJmbGV4IixmbGV4V3JhcDoid3JhcCIsW2Zvcm1JdGVtQ2xzXTp7ZmxleDoibm9uZSIsbWFyZ2luSW5saW5lRW5kOnRva2VuLm1hcmdpbixtYXJnaW5Cb3R0b206aW5saW5lSXRlbU1hcmdpbkJvdHRvbSwiJi1yb3ciOntmbGV4V3JhcDoibm93cmFwIn0sW2A+ICR7Zm9ybUl0ZW1DbHN9LWxhYmVsLAogICAgICAgID4gJHtmb3JtSXRlbUNsc30tY29udHJvbGBdOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHZlcnRpY2FsQWxpZ246InRvcCJ9LFtgPiAke2Zvcm1JdGVtQ2xzfS1sYWJlbGBdOntmbGV4OiJub25lIn0sW2Ake2NvbXBvbmVudENsc30tdGV4dGBdOntkaXNwbGF5OiJpbmxpbmUtYmxvY2sifSxbYCR7Zm9ybUl0ZW1DbHN9LWhhcy1mZWVkYmFja2BdOntkaXNwbGF5OiJpbmxpbmUtYmxvY2sifX19fX0sbWFrZVZlcnRpY2FsTGF5b3V0TGFiZWw9dG9rZW49Pih7cGFkZGluZzp0b2tlbi52ZXJ0aWNhbExhYmVsUGFkZGluZyxtYXJnaW46dG9rZW4udmVydGljYWxMYWJlbE1hcmdpbix3aGl0ZVNwYWNlOiJpbml0aWFsIix0ZXh0QWxpZ246InN0YXJ0IiwiPiBsYWJlbCI6e21hcmdpbjowLCImOjphZnRlciI6e3Zpc2liaWxpdHk6ImhpZGRlbiJ9fX0pLG1ha2VWZXJ0aWNhbExheW91dD10b2tlbj0+e2xldHtjb21wb25lbnRDbHMsZm9ybUl0ZW1DbHMscm9vdFByZWZpeENsc309dG9rZW47cmV0dXJue1tgJHtmb3JtSXRlbUNsc30gJHtmb3JtSXRlbUNsc30tbGFiZWxgXTptYWtlVmVydGljYWxMYXlvdXRMYWJlbCh0b2tlbiksW2Ake2NvbXBvbmVudENsc306bm90KCR7Y29tcG9uZW50Q2xzfS1pbmxpbmUpYF06e1tmb3JtSXRlbUNsc106e2ZsZXhXcmFwOiJ3cmFwIixbYCR7Zm9ybUl0ZW1DbHN9LWxhYmVsLCAke2Zvcm1JdGVtQ2xzfS1jb250cm9sYF06e1tgJjpub3QoW2NsYXNzKj0iICR7cm9vdFByZWZpeENsc30tY29sLXhzIl0pYF06e2ZsZXg6IjAgMCAxMDAlIixtYXhXaWR0aDoiMTAwJSJ9fX19fX0sZ2VuVmVydGljYWxTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHMsZm9ybUl0ZW1DbHMsYW50Q2xzfT10b2tlbjtyZXR1cm57W2Ake2NvbXBvbmVudENsc30tdmVydGljYWxgXTp7W2Ake2Zvcm1JdGVtQ2xzfTpub3QoJHtmb3JtSXRlbUNsc30taG9yaXpvbnRhbClgXTp7W2Ake2Zvcm1JdGVtQ2xzfS1yb3dgXTp7ZmxleERpcmVjdGlvbjoiY29sdW1uIn0sW2Ake2Zvcm1JdGVtQ2xzfS1sYWJlbCA+IGxhYmVsYF06e2hlaWdodDoiYXV0byJ9LFtgJHtmb3JtSXRlbUNsc30tY29udHJvbGBdOnt3aWR0aDoiMTAwJSJ9LFtgJHtmb3JtSXRlbUNsc30tbGFiZWwsCiAgICAgICAgJHthbnRDbHN9LWNvbC0yNCR7Zm9ybUl0ZW1DbHN9LWxhYmVsLAogICAgICAgICR7YW50Q2xzfS1jb2wteGwtMjQke2Zvcm1JdGVtQ2xzfS1sYWJlbGBdOm1ha2VWZXJ0aWNhbExheW91dExhYmVsKHRva2VuKX19LFtgQG1lZGlhIChtYXgtd2lkdGg6ICR7KDAsY3NzaW5qc19lcy5iZikodG9rZW4uc2NyZWVuWFNNYXgpfSlgXTpbbWFrZVZlcnRpY2FsTGF5b3V0KHRva2VuKSx7W2NvbXBvbmVudENsc106e1tgJHtmb3JtSXRlbUNsc306bm90KCR7Zm9ybUl0ZW1DbHN9LWhvcml6b250YWwpYF06e1tgJHthbnRDbHN9LWNvbC14cy0yNCR7Zm9ybUl0ZW1DbHN9LWxhYmVsYF06bWFrZVZlcnRpY2FsTGF5b3V0TGFiZWwodG9rZW4pfX19XSxbYEBtZWRpYSAobWF4LXdpZHRoOiAkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLnNjcmVlblNNTWF4KX0pYF06e1tjb21wb25lbnRDbHNdOntbYCR7Zm9ybUl0ZW1DbHN9Om5vdCgke2Zvcm1JdGVtQ2xzfS1ob3Jpem9udGFsKWBdOntbYCR7YW50Q2xzfS1jb2wtc20tMjQke2Zvcm1JdGVtQ2xzfS1sYWJlbGBdOm1ha2VWZXJ0aWNhbExheW91dExhYmVsKHRva2VuKX19fSxbYEBtZWRpYSAobWF4LXdpZHRoOiAkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLnNjcmVlbk1ETWF4KX0pYF06e1tjb21wb25lbnRDbHNdOntbYCR7Zm9ybUl0ZW1DbHN9Om5vdCgke2Zvcm1JdGVtQ2xzfS1ob3Jpem9udGFsKWBdOntbYCR7YW50Q2xzfS1jb2wtbWQtMjQke2Zvcm1JdGVtQ2xzfS1sYWJlbGBdOm1ha2VWZXJ0aWNhbExheW91dExhYmVsKHRva2VuKX19fSxbYEBtZWRpYSAobWF4LXdpZHRoOiAkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLnNjcmVlbkxHTWF4KX0pYF06e1tjb21wb25lbnRDbHNdOntbYCR7Zm9ybUl0ZW1DbHN9Om5vdCgke2Zvcm1JdGVtQ2xzfS1ob3Jpem9udGFsKWBdOntbYCR7YW50Q2xzfS1jb2wtbGctMjQke2Zvcm1JdGVtQ2xzfS1sYWJlbGBdOm1ha2VWZXJ0aWNhbExheW91dExhYmVsKHRva2VuKX19fX19LGdlbkl0ZW1WZXJ0aWNhbFN0eWxlPXRva2VuPT57bGV0e2Zvcm1JdGVtQ2xzLGFudENsc309dG9rZW47cmV0dXJue1tgJHtmb3JtSXRlbUNsc30tdmVydGljYWxgXTp7W2Ake2Zvcm1JdGVtQ2xzfS1yb3dgXTp7ZmxleERpcmVjdGlvbjoiY29sdW1uIn0sW2Ake2Zvcm1JdGVtQ2xzfS1sYWJlbCA+IGxhYmVsYF06e2hlaWdodDoiYXV0byJ9LFtgJHtmb3JtSXRlbUNsc30tY29udHJvbGBdOnt3aWR0aDoiMTAwJSJ9fSxbYCR7Zm9ybUl0ZW1DbHN9LXZlcnRpY2FsICR7Zm9ybUl0ZW1DbHN9LWxhYmVsLAogICAgICAke2FudENsc30tY29sLTI0JHtmb3JtSXRlbUNsc30tbGFiZWwsCiAgICAgICR7YW50Q2xzfS1jb2wteGwtMjQke2Zvcm1JdGVtQ2xzfS1sYWJlbGBdOm1ha2VWZXJ0aWNhbExheW91dExhYmVsKHRva2VuKSxbYEBtZWRpYSAobWF4LXdpZHRoOiAkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLnNjcmVlblhTTWF4KX0pYF06W21ha2VWZXJ0aWNhbExheW91dCh0b2tlbikse1tmb3JtSXRlbUNsc106e1tgJHthbnRDbHN9LWNvbC14cy0yNCR7Zm9ybUl0ZW1DbHN9LWxhYmVsYF06bWFrZVZlcnRpY2FsTGF5b3V0TGFiZWwodG9rZW4pfX1dLFtgQG1lZGlhIChtYXgtd2lkdGg6ICR7KDAsY3NzaW5qc19lcy5iZikodG9rZW4uc2NyZWVuU01NYXgpfSlgXTp7W2Zvcm1JdGVtQ2xzXTp7W2Ake2FudENsc30tY29sLXNtLTI0JHtmb3JtSXRlbUNsc30tbGFiZWxgXTptYWtlVmVydGljYWxMYXlvdXRMYWJlbCh0b2tlbil9fSxbYEBtZWRpYSAobWF4LXdpZHRoOiAkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLnNjcmVlbk1ETWF4KX0pYF06e1tmb3JtSXRlbUNsc106e1tgJHthbnRDbHN9LWNvbC1tZC0yNCR7Zm9ybUl0ZW1DbHN9LWxhYmVsYF06bWFrZVZlcnRpY2FsTGF5b3V0TGFiZWwodG9rZW4pfX0sW2BAbWVkaWEgKG1heC13aWR0aDogJHsoMCxjc3NpbmpzX2VzLmJmKSh0b2tlbi5zY3JlZW5MR01heCl9KWBdOntbZm9ybUl0ZW1DbHNdOntbYCR7YW50Q2xzfS1jb2wtbGctMjQke2Zvcm1JdGVtQ2xzfS1sYWJlbGBdOm1ha2VWZXJ0aWNhbExheW91dExhYmVsKHRva2VuKX19fX0scHJlcGFyZUNvbXBvbmVudFRva2VuPXRva2VuPT4oe2xhYmVsUmVxdWlyZWRNYXJrQ29sb3I6dG9rZW4uY29sb3JFcnJvcixsYWJlbENvbG9yOnRva2VuLmNvbG9yVGV4dEhlYWRpbmcsbGFiZWxGb250U2l6ZTp0b2tlbi5mb250U2l6ZSxsYWJlbEhlaWdodDp0b2tlbi5jb250cm9sSGVpZ2h0LGxhYmVsQ29sb25NYXJnaW5JbmxpbmVTdGFydDp0b2tlbi5tYXJnaW5YWFMvMixsYWJlbENvbG9uTWFyZ2luSW5saW5lRW5kOnRva2VuLm1hcmdpblhTLGl0ZW1NYXJnaW5Cb3R0b206dG9rZW4ubWFyZ2luTEcsdmVydGljYWxMYWJlbFBhZGRpbmc6YDAgMCAke3Rva2VuLnBhZGRpbmdYU31weGAsdmVydGljYWxMYWJlbE1hcmdpbjowLGlubGluZUl0ZW1NYXJnaW5Cb3R0b206MH0pLHByZXBhcmVUb2tlbj0odG9rZW4scm9vdFByZWZpeENscyk9PntsZXQgZm9ybVRva2VuPSgwLGNzc2luanNfdXRpbHNfZXMuSVgpKHRva2VuLHtmb3JtSXRlbUNsczpgJHt0b2tlbi5jb21wb25lbnRDbHN9LWl0ZW1gLHJvb3RQcmVmaXhDbHN9KTtyZXR1cm4gZm9ybVRva2VufTt2YXIgZm9ybV9zdHlsZT0oMCxnZW5TdHlsZVV0aWxzLkkkKSgiRm9ybSIsKHRva2VuLF9yZWYpPT57bGV0e3Jvb3RQcmVmaXhDbHN9PV9yZWYsZm9ybVRva2VuPXByZXBhcmVUb2tlbih0b2tlbixyb290UHJlZml4Q2xzKTtyZXR1cm5bZ2VuRm9ybVN0eWxlKGZvcm1Ub2tlbiksZ2VuRm9ybUl0ZW1TdHlsZShmb3JtVG9rZW4pLGdlbkZvcm1WYWxpZGF0ZU1vdGlvblN0eWxlKGZvcm1Ub2tlbiksZ2VuSG9yaXpvbnRhbFN0eWxlKGZvcm1Ub2tlbixmb3JtVG9rZW4uY29tcG9uZW50Q2xzKSxnZW5Ib3Jpem9udGFsU3R5bGUoZm9ybVRva2VuLGZvcm1Ub2tlbi5mb3JtSXRlbUNscyksZ2VuSW5saW5lU3R5bGUoZm9ybVRva2VuKSxnZW5WZXJ0aWNhbFN0eWxlKGZvcm1Ub2tlbiksZ2VuSXRlbVZlcnRpY2FsU3R5bGUoZm9ybVRva2VuKSwoMCxjb2xsYXBzZS5aKShmb3JtVG9rZW4pLHpvb20ua3JdfSxwcmVwYXJlQ29tcG9uZW50VG9rZW4se29yZGVyOi0xZTN9KTtsZXQgRU1QVFlfTElTVD1bXTtmdW5jdGlvbiB0b0Vycm9yRW50aXR5KGVycm9yLHByZWZpeCxlcnJvclN0YXR1cyl7bGV0IGluZGV4PWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTowO3JldHVybntrZXk6InN0cmluZyI9PXR5cGVvZiBlcnJvcj9lcnJvcjpgJHtwcmVmaXh9LSR7aW5kZXh9YCxlcnJvcixlcnJvclN0YXR1c319bGV0IEVycm9yTGlzdD1fcmVmPT57bGV0e2hlbHAsaGVscFN0YXR1cyxlcnJvcnM9RU1QVFlfTElTVCx3YXJuaW5ncz1FTVBUWV9MSVNULGNsYXNzTmFtZTpyb290Q2xhc3NOYW1lLGZpZWxkSWQsb25WaXNpYmxlQ2hhbmdlZH09X3JlZix7cHJlZml4Q2xzfT1yZWFjdC51c2VDb250ZXh0KGNvbnRleHQuUmspLGJhc2VDbGFzc05hbWU9YCR7cHJlZml4Q2xzfS1pdGVtLWV4cGxhaW5gLHJvb3RDbHM9KDAsdXNlQ1NTVmFyQ2xzLlopKHByZWZpeENscyksW3dyYXBDU1NWYXIsaGFzaElkLGNzc1ZhckNsc109Zm9ybV9zdHlsZShwcmVmaXhDbHMscm9vdENscyksY29sbGFwc2VNb3Rpb249cmVhY3QudXNlTWVtbygoKT0+KDAsbW90aW9uLlopKHByZWZpeENscyksW3ByZWZpeENsc10pLGRlYm91bmNlRXJyb3JzPXVzZURlYm91bmNlKGVycm9ycyksZGVib3VuY2VXYXJuaW5ncz11c2VEZWJvdW5jZSh3YXJuaW5ncyksZnVsbEtleUxpc3Q9cmVhY3QudXNlTWVtbygoKT0+bnVsbCE9aGVscD9bdG9FcnJvckVudGl0eShoZWxwLCJoZWxwIixoZWxwU3RhdHVzKV06W10uY29uY2F0KCgwLHRvQ29uc3VtYWJsZUFycmF5LlopKGRlYm91bmNlRXJyb3JzLm1hcCgoZXJyb3IsaW5kZXgpPT50b0Vycm9yRW50aXR5KGVycm9yLCJlcnJvciIsImVycm9yIixpbmRleCkpKSwoMCx0b0NvbnN1bWFibGVBcnJheS5aKShkZWJvdW5jZVdhcm5pbmdzLm1hcCgod2FybmluZyxpbmRleCk9PnRvRXJyb3JFbnRpdHkod2FybmluZywid2FybmluZyIsIndhcm5pbmciLGluZGV4KSkpKSxbaGVscCxoZWxwU3RhdHVzLGRlYm91bmNlRXJyb3JzLGRlYm91bmNlV2FybmluZ3NdKSxmaWxsZWRLZXlGdWxsS2V5TGlzdD1yZWFjdC51c2VNZW1vKCgpPT57bGV0IGtleXNDb3VudD17fTtyZXR1cm4gZnVsbEtleUxpc3QuZm9yRWFjaChfcmVmMj0+e2xldHtrZXl9PV9yZWYyO2tleXNDb3VudFtrZXldPShrZXlzQ291bnRba2V5XXx8MCkrMX0pLGZ1bGxLZXlMaXN0Lm1hcCgoZW50aXR5LGluZGV4KT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGVudGl0eSkse2tleTprZXlzQ291bnRbZW50aXR5LmtleV0+MT9gJHtlbnRpdHkua2V5fS1mYWxsYmFjay0ke2luZGV4fWA6ZW50aXR5LmtleX0pKX0sW2Z1bGxLZXlMaXN0XSksaGVscFByb3BzPXt9O3JldHVybiBmaWVsZElkJiYoaGVscFByb3BzLmlkPWAke2ZpZWxkSWR9X2hlbHBgKSx3cmFwQ1NTVmFyKHJlYWN0LmNyZWF0ZUVsZW1lbnQoZXMuWlAse21vdGlvbkRlYWRsaW5lOmNvbGxhcHNlTW90aW9uLm1vdGlvbkRlYWRsaW5lLG1vdGlvbk5hbWU6YCR7cHJlZml4Q2xzfS1zaG93LWhlbHBgLHZpc2libGU6ISFmaWxsZWRLZXlGdWxsS2V5TGlzdC5sZW5ndGgsb25WaXNpYmxlQ2hhbmdlZDpvblZpc2libGVDaGFuZ2VkfSxob2xkZXJQcm9wcz0+e2xldHtjbGFzc05hbWU6aG9sZGVyQ2xhc3NOYW1lLHN0eWxlOmhvbGRlclN0eWxlfT1ob2xkZXJQcm9wcztyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2IixPYmplY3QuYXNzaWduKHt9LGhlbHBQcm9wcyx7Y2xhc3NOYW1lOmNsYXNzbmFtZXNfZGVmYXVsdCgpKGJhc2VDbGFzc05hbWUsaG9sZGVyQ2xhc3NOYW1lLGNzc1ZhckNscyxyb290Q2xzLHJvb3RDbGFzc05hbWUsaGFzaElkKSxzdHlsZTpob2xkZXJTdHlsZX0pLHJlYWN0LmNyZWF0ZUVsZW1lbnQoZXMuVjQsT2JqZWN0LmFzc2lnbih7a2V5czpmaWxsZWRLZXlGdWxsS2V5TGlzdH0sKDAsbW90aW9uLlopKHByZWZpeENscykse21vdGlvbk5hbWU6YCR7cHJlZml4Q2xzfS1zaG93LWhlbHAtaXRlbWAsY29tcG9uZW50OiExfSksaXRlbVByb3BzPT57bGV0e2tleSxlcnJvcixlcnJvclN0YXR1cyxjbGFzc05hbWU6aXRlbUNsYXNzTmFtZSxzdHlsZTppdGVtU3R5bGV9PWl0ZW1Qcm9wcztyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5OmtleSxjbGFzc05hbWU6Y2xhc3NuYW1lc19kZWZhdWx0KCkoaXRlbUNsYXNzTmFtZSx7W2Ake2Jhc2VDbGFzc05hbWV9LSR7ZXJyb3JTdGF0dXN9YF06ZXJyb3JTdGF0dXN9KSxzdHlsZTppdGVtU3R5bGV9LGVycm9yKX0pKX0pKX07dmFyIHJjX2ZpZWxkX2Zvcm1fZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg3MDEyOSksY29uZmlnX3Byb3ZpZGVyX2NvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzEyNCksRGlzYWJsZWRDb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oOTg4NjYpLHVzZVNpemU9X193ZWJwYWNrX3JlcXVpcmVfXyg5ODY3NSksU2l6ZUNvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzY0NyksZmluZERPTU5vZGU9X193ZWJwYWNrX3JlcXVpcmVfXyg3OTI5MiksZGlzdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDE3NDIzKTtsZXQgZm9ybUl0ZW1OYW1lQmxhY2tMaXN0PVsicGFyZW50Tm9kZSJdO2Z1bmN0aW9uIHRvQXJyYXkoY2FuZGlkYXRlKXtyZXR1cm4gdm9pZCAwPT09Y2FuZGlkYXRlfHwhMT09PWNhbmRpZGF0ZT9bXTpBcnJheS5pc0FycmF5KGNhbmRpZGF0ZSk/Y2FuZGlkYXRlOltjYW5kaWRhdGVdfWZ1bmN0aW9uIGdldEZpZWxkSWQobmFtZVBhdGgsZm9ybU5hbWUpe2lmKCFuYW1lUGF0aC5sZW5ndGgpcmV0dXJuO2xldCBtZXJnZWRJZD1uYW1lUGF0aC5qb2luKCJfIik7aWYoZm9ybU5hbWUpcmV0dXJuYCR7Zm9ybU5hbWV9XyR7bWVyZ2VkSWR9YDtsZXQgaXNJbGxlZ2FsTmFtZT1mb3JtSXRlbU5hbWVCbGFja0xpc3QuaW5jbHVkZXMobWVyZ2VkSWQpO3JldHVybiBpc0lsbGVnYWxOYW1lP2Bmb3JtX2l0ZW1fJHttZXJnZWRJZH1gOm1lcmdlZElkfWZ1bmN0aW9uIGdldFN0YXR1cyhlcnJvcnMsd2FybmluZ3MsbWV0YSxkZWZhdWx0VmFsaWRhdGVTdGF0dXMsaGFzRmVlZGJhY2ssdmFsaWRhdGVTdGF0dXMpe2xldCBzdGF0dXM9ZGVmYXVsdFZhbGlkYXRlU3RhdHVzO3JldHVybiB2b2lkIDAhPT12YWxpZGF0ZVN0YXR1cz9zdGF0dXM9dmFsaWRhdGVTdGF0dXM6bWV0YS52YWxpZGF0aW5nP3N0YXR1cz0idmFsaWRhdGluZyI6ZXJyb3JzLmxlbmd0aD9zdGF0dXM9ImVycm9yIjp3YXJuaW5ncy5sZW5ndGg/c3RhdHVzPSJ3YXJuaW5nIjoobWV0YS50b3VjaGVkfHxoYXNGZWVkYmFjayYmbWV0YS52YWxpZGF0ZWQpJiYoc3RhdHVzPSJzdWNjZXNzIiksc3RhdHVzfXZhciBfX3Jlc3Q9ZnVuY3Rpb24ocyxlKXt2YXIgdD17fTtmb3IodmFyIHAgaW4gcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxwKSYmMD5lLmluZGV4T2YocCkmJih0W3BdPXNbcF0pO2lmKG51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKWZvcih2YXIgaT0wLHA9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtpPHAubGVuZ3RoO2krKykwPmUuaW5kZXhPZihwW2ldKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMscFtpXSkmJih0W3BbaV1dPXNbcFtpXV0pO3JldHVybiB0fTtmdW5jdGlvbiB0b05hbWVQYXRoU3RyKG5hbWUpe2xldCBuYW1lUGF0aD10b0FycmF5KG5hbWUpO3JldHVybiBuYW1lUGF0aC5qb2luKCJfIil9ZnVuY3Rpb24gZ2V0RmllbGRET01Ob2RlKG5hbWUsd3JhcEZvcm0pe2xldCBmaWVsZD13cmFwRm9ybS5nZXRGaWVsZEluc3RhbmNlKG5hbWUpLGZpZWxkRG9tPSgwLGZpbmRET01Ob2RlLmJuKShmaWVsZCk7aWYoZmllbGREb20pcmV0dXJuIGZpZWxkRG9tO2xldCBmaWVsZElkPWdldEZpZWxkSWQodG9BcnJheShuYW1lKSx3cmFwRm9ybS5fX0lOVEVSTkFMX18ubmFtZSk7aWYoZmllbGRJZClyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZmllbGRJZCl9ZnVuY3Rpb24gdXNlRm9ybShmb3JtKXtsZXRbcmNGb3JtXT0oMCxyY19maWVsZF9mb3JtX2VzLmNJKSgpLGl0ZW1zUmVmPXJlYWN0LnVzZVJlZih7fSksd3JhcEZvcm09cmVhY3QudXNlTWVtbygoKT0+bnVsbCE9Zm9ybT9mb3JtOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxyY0Zvcm0pLHtfX0lOVEVSTkFMX186e2l0ZW1SZWY6bmFtZT0+bm9kZT0+e2xldCBuYW1lUGF0aFN0cj10b05hbWVQYXRoU3RyKG5hbWUpO25vZGU/aXRlbXNSZWYuY3VycmVudFtuYW1lUGF0aFN0cl09bm9kZTpkZWxldGUgaXRlbXNSZWYuY3VycmVudFtuYW1lUGF0aFN0cl19fSxzY3JvbGxUb0ZpZWxkOmZ1bmN0aW9uKG5hbWUpe2xldCBvcHRpb25zPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSx7Zm9jdXN9PW9wdGlvbnMscmVzdE9wdD1fX3Jlc3Qob3B0aW9ucyxbImZvY3VzIl0pLG5vZGU9Z2V0RmllbGRET01Ob2RlKG5hbWUsd3JhcEZvcm0pO25vZGUmJigoMCxkaXN0LlopKG5vZGUsT2JqZWN0LmFzc2lnbih7c2Nyb2xsTW9kZToiaWYtbmVlZGVkIixibG9jazoibmVhcmVzdCJ9LHJlc3RPcHQpKSxmb2N1cyYmd3JhcEZvcm0uZm9jdXNGaWVsZChuYW1lKSl9LGZvY3VzRmllbGQobmFtZSl7dmFyIF9hLF9iO2xldCBpdGVtUmVmPXdyYXBGb3JtLmdldEZpZWxkSW5zdGFuY2UobmFtZSk7ImZ1bmN0aW9uIj09dHlwZW9mKG51bGw9PWl0ZW1SZWY/dm9pZCAwOml0ZW1SZWYuZm9jdXMpP2l0ZW1SZWYuZm9jdXMoKTpudWxsPT09KF9iPW51bGw9PT0oX2E9Z2V0RmllbGRET01Ob2RlKG5hbWUsd3JhcEZvcm0pKXx8dm9pZCAwPT09X2E/dm9pZCAwOl9hLmZvY3VzKXx8dm9pZCAwPT09X2J8fF9iLmNhbGwoX2EpfSxnZXRGaWVsZEluc3RhbmNlKG5hbWUpe2xldCBuYW1lUGF0aFN0cj10b05hbWVQYXRoU3RyKG5hbWUpO3JldHVybiBpdGVtc1JlZi5jdXJyZW50W25hbWVQYXRoU3RyXX19KSxbZm9ybSxyY0Zvcm1dKTtyZXR1cm5bd3JhcEZvcm1dfXZhciB2YWxpZGF0ZU1lc3NhZ2VzQ29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDM3OTIwKSxGb3JtX3Jlc3Q9ZnVuY3Rpb24ocyxlKXt2YXIgdD17fTtmb3IodmFyIHAgaW4gcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxwKSYmMD5lLmluZGV4T2YocCkmJih0W3BdPXNbcF0pO2lmKG51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKWZvcih2YXIgaT0wLHA9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtpPHAubGVuZ3RoO2krKykwPmUuaW5kZXhPZihwW2ldKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMscFtpXSkmJih0W3BbaV1dPXNbcFtpXV0pO3JldHVybiB0fTtsZXQgSW50ZXJuYWxGb3JtPShwcm9wcyxyZWYpPT57bGV0IGNvbnRleHREaXNhYmxlZD1yZWFjdC51c2VDb250ZXh0KERpc2FibGVkQ29udGV4dC5aKSx7Z2V0UHJlZml4Q2xzLGRpcmVjdGlvbixyZXF1aXJlZE1hcms6Y29udGV4dFJlcXVpcmVkTWFyayxjb2xvbjpjb250ZXh0Q29sb24sc2Nyb2xsVG9GaXJzdEVycm9yOmNvbnRleHRTY3JvbGxUb0ZpcnN0RXJyb3IsY2xhc3NOYW1lOmNvbnRleHRDbGFzc05hbWUsc3R5bGU6Y29udGV4dFN0eWxlfT0oMCxjb25maWdfcHJvdmlkZXJfY29udGV4dC5kaikoImZvcm0iKSx7cHJlZml4Q2xzOmN1c3RvbWl6ZVByZWZpeENscyxjbGFzc05hbWUscm9vdENsYXNzTmFtZSxzaXplLGRpc2FibGVkPWNvbnRleHREaXNhYmxlZCxmb3JtLGNvbG9uLGxhYmVsQWxpZ24sbGFiZWxXcmFwLGxhYmVsQ29sLHdyYXBwZXJDb2wsaGlkZVJlcXVpcmVkTWFyayxsYXlvdXQ9Imhvcml6b250YWwiLHNjcm9sbFRvRmlyc3RFcnJvcixyZXF1aXJlZE1hcmssb25GaW5pc2hGYWlsZWQsbmFtZSxzdHlsZSxmZWVkYmFja0ljb25zLHZhcmlhbnR9PXByb3BzLHJlc3RGb3JtUHJvcHM9Rm9ybV9yZXN0KHByb3BzLFsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsInNpemUiLCJkaXNhYmxlZCIsImZvcm0iLCJjb2xvbiIsImxhYmVsQWxpZ24iLCJsYWJlbFdyYXAiLCJsYWJlbENvbCIsIndyYXBwZXJDb2wiLCJoaWRlUmVxdWlyZWRNYXJrIiwibGF5b3V0Iiwic2Nyb2xsVG9GaXJzdEVycm9yIiwicmVxdWlyZWRNYXJrIiwib25GaW5pc2hGYWlsZWQiLCJuYW1lIiwic3R5bGUiLCJmZWVkYmFja0ljb25zIiwidmFyaWFudCJdKSxtZXJnZWRTaXplPSgwLHVzZVNpemUuWikoc2l6ZSksY29udGV4dFZhbGlkYXRlTWVzc2FnZXM9cmVhY3QudXNlQ29udGV4dCh2YWxpZGF0ZU1lc3NhZ2VzQ29udGV4dC5aKSxtZXJnZWRSZXF1aXJlZE1hcms9cmVhY3QudXNlTWVtbygoKT0+dm9pZCAwIT09cmVxdWlyZWRNYXJrP3JlcXVpcmVkTWFyazohaGlkZVJlcXVpcmVkTWFyayYmKHZvaWQgMD09PWNvbnRleHRSZXF1aXJlZE1hcmt8fGNvbnRleHRSZXF1aXJlZE1hcmspLFtoaWRlUmVxdWlyZWRNYXJrLHJlcXVpcmVkTWFyayxjb250ZXh0UmVxdWlyZWRNYXJrXSksbWVyZ2VkQ29sb249bnVsbCE9Y29sb24/Y29sb246Y29udGV4dENvbG9uLHByZWZpeENscz1nZXRQcmVmaXhDbHMoImZvcm0iLGN1c3RvbWl6ZVByZWZpeENscykscm9vdENscz0oMCx1c2VDU1NWYXJDbHMuWikocHJlZml4Q2xzKSxbd3JhcENTU1ZhcixoYXNoSWQsY3NzVmFyQ2xzXT1mb3JtX3N0eWxlKHByZWZpeENscyxyb290Q2xzKSxmb3JtQ2xhc3NOYW1lPWNsYXNzbmFtZXNfZGVmYXVsdCgpKHByZWZpeENscyxgJHtwcmVmaXhDbHN9LSR7bGF5b3V0fWAse1tgJHtwcmVmaXhDbHN9LWhpZGUtcmVxdWlyZWQtbWFya2BdOiExPT09bWVyZ2VkUmVxdWlyZWRNYXJrLFtgJHtwcmVmaXhDbHN9LXJ0bGBdOiJydGwiPT09ZGlyZWN0aW9uLFtgJHtwcmVmaXhDbHN9LSR7bWVyZ2VkU2l6ZX1gXTptZXJnZWRTaXplfSxjc3NWYXJDbHMscm9vdENscyxoYXNoSWQsY29udGV4dENsYXNzTmFtZSxjbGFzc05hbWUscm9vdENsYXNzTmFtZSksW3dyYXBGb3JtXT11c2VGb3JtKGZvcm0pLHtfX0lOVEVSTkFMX199PXdyYXBGb3JtO19fSU5URVJOQUxfXy5uYW1lPW5hbWU7bGV0IGZvcm1Db250ZXh0VmFsdWU9cmVhY3QudXNlTWVtbygoKT0+KHtuYW1lLGxhYmVsQWxpZ24sbGFiZWxDb2wsbGFiZWxXcmFwLHdyYXBwZXJDb2wsdmVydGljYWw6InZlcnRpY2FsIj09PWxheW91dCxjb2xvbjptZXJnZWRDb2xvbixyZXF1aXJlZE1hcms6bWVyZ2VkUmVxdWlyZWRNYXJrLGl0ZW1SZWY6X19JTlRFUk5BTF9fLml0ZW1SZWYsZm9ybTp3cmFwRm9ybSxmZWVkYmFja0ljb25zfSksW25hbWUsbGFiZWxBbGlnbixsYWJlbENvbCx3cmFwcGVyQ29sLGxheW91dCxtZXJnZWRDb2xvbixtZXJnZWRSZXF1aXJlZE1hcmssd3JhcEZvcm0sZmVlZGJhY2tJY29uc10pLG5hdGl2ZUVsZW1lbnRSZWY9cmVhY3QudXNlUmVmKG51bGwpO3JlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCgpPT57dmFyIF9hO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sd3JhcEZvcm0pLHtuYXRpdmVFbGVtZW50Om51bGw9PT0oX2E9bmF0aXZlRWxlbWVudFJlZi5jdXJyZW50KXx8dm9pZCAwPT09X2E/dm9pZCAwOl9hLm5hdGl2ZUVsZW1lbnR9KX0pO2xldCBzY3JvbGxUb0ZpZWxkPShvcHRpb25zLGZpZWxkTmFtZSk9PntpZihvcHRpb25zKXtsZXQgZGVmYXVsdFNjcm9sbFRvRmlyc3RFcnJvcj17YmxvY2s6Im5lYXJlc3QifTsib2JqZWN0Ij09dHlwZW9mIG9wdGlvbnMmJihkZWZhdWx0U2Nyb2xsVG9GaXJzdEVycm9yPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxkZWZhdWx0U2Nyb2xsVG9GaXJzdEVycm9yKSxvcHRpb25zKSksd3JhcEZvcm0uc2Nyb2xsVG9GaWVsZChmaWVsZE5hbWUsZGVmYXVsdFNjcm9sbFRvRmlyc3RFcnJvcil9fSxvbkludGVybmFsRmluaXNoRmFpbGVkPWVycm9ySW5mbz0+e2lmKG51bGw9PW9uRmluaXNoRmFpbGVkfHxvbkZpbmlzaEZhaWxlZChlcnJvckluZm8pLGVycm9ySW5mby5lcnJvckZpZWxkcy5sZW5ndGgpe2xldCBmaWVsZE5hbWU9ZXJyb3JJbmZvLmVycm9yRmllbGRzWzBdLm5hbWU7aWYodm9pZCAwIT09c2Nyb2xsVG9GaXJzdEVycm9yKXtzY3JvbGxUb0ZpZWxkKHNjcm9sbFRvRmlyc3RFcnJvcixmaWVsZE5hbWUpO3JldHVybn12b2lkIDAhPT1jb250ZXh0U2Nyb2xsVG9GaXJzdEVycm9yJiZzY3JvbGxUb0ZpZWxkKGNvbnRleHRTY3JvbGxUb0ZpcnN0RXJyb3IsZmllbGROYW1lKX19O3JldHVybiB3cmFwQ1NTVmFyKHJlYWN0LmNyZWF0ZUVsZW1lbnQoY29udGV4dC5wZy5Qcm92aWRlcix7dmFsdWU6dmFyaWFudH0scmVhY3QuY3JlYXRlRWxlbWVudChEaXNhYmxlZENvbnRleHQubix7ZGlzYWJsZWQ6ZGlzYWJsZWR9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoU2l6ZUNvbnRleHQuWi5Qcm92aWRlcix7dmFsdWU6bWVyZ2VkU2l6ZX0scmVhY3QuY3JlYXRlRWxlbWVudChjb250ZXh0LlJWLHt2YWxpZGF0ZU1lc3NhZ2VzOmNvbnRleHRWYWxpZGF0ZU1lc3NhZ2VzfSxyZWFjdC5jcmVhdGVFbGVtZW50KGNvbnRleHQucTMuUHJvdmlkZXIse3ZhbHVlOmZvcm1Db250ZXh0VmFsdWV9LHJlYWN0LmNyZWF0ZUVsZW1lbnQocmNfZmllbGRfZm9ybV9lcy5aUCxPYmplY3QuYXNzaWduKHtpZDpuYW1lfSxyZXN0Rm9ybVByb3BzLHtuYW1lOm5hbWUsb25GaW5pc2hGYWlsZWQ6b25JbnRlcm5hbEZpbmlzaEZhaWxlZCxmb3JtOndyYXBGb3JtLHJlZjpuYXRpdmVFbGVtZW50UmVmLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjb250ZXh0U3R5bGUpLHN0eWxlKSxjbGFzc05hbWU6Zm9ybUNsYXNzTmFtZX0pKSkpKSkpKX0sRm9ybT1yZWFjdC5mb3J3YXJkUmVmKEludGVybmFsRm9ybSk7dmFyIHVzZVN0YXRlPV9fd2VicGFja19yZXF1aXJlX18oOTQ3NSkscmVmPV9fd2VicGFja19yZXF1aXJlX18oMTc3OTkpLHJlYWN0Tm9kZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk2MTU5KSxfdXRpbF93YXJuaW5nPV9fd2VicGFja19yZXF1aXJlX18oMjcyODgpLENoaWxkcmVuX3RvQXJyYXk9X193ZWJwYWNrX3JlcXVpcmVfXygzNzQxOSk7bGV0IHVzZUZvcm1JdGVtU3RhdHVzPSgpPT57bGV0e3N0YXR1cyxlcnJvcnM9W10sd2FybmluZ3M9W119PXJlYWN0LnVzZUNvbnRleHQoY29udGV4dC5hTSk7cmV0dXJue3N0YXR1cyxlcnJvcnMsd2FybmluZ3N9fTt1c2VGb3JtSXRlbVN0YXR1cy5Db250ZXh0PWNvbnRleHQuYU07dmFyIHJhZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDk2NTIzKSxpc1Zpc2libGU9X193ZWJwYWNrX3JlcXVpcmVfXyg0ODEzMCksdXNlTGF5b3V0RWZmZWN0PV9fd2VicGFja19yZXF1aXJlX18oMTQwNzUpLG9taXQ9X193ZWJwYWNrX3JlcXVpcmVfXygxMDM2Nikscm93PV9fd2VicGFja19yZXF1aXJlX18oMTc2MjEpLHJjX3V0aWxfZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg2MDI3NiksY29sPV9fd2VicGFja19yZXF1aXJlX18oMjE1ODQpO2xldCBnZW5GYWxsYmFja1N0eWxlPXRva2VuPT57bGV0e2Zvcm1JdGVtQ2xzfT10b2tlbjtyZXR1cm57IkBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSI6e1tgJHtmb3JtSXRlbUNsc30tY29udHJvbGBdOntkaXNwbGF5OiJmbGV4In19fX07dmFyIGZhbGxiYWNrQ21wPSgwLGdlblN0eWxlVXRpbHMuYmspKFsiRm9ybSIsIml0ZW0taXRlbSJdLCh0b2tlbixfcmVmKT0+e2xldHtyb290UHJlZml4Q2xzfT1fcmVmLGZvcm1Ub2tlbj1wcmVwYXJlVG9rZW4odG9rZW4scm9vdFByZWZpeENscyk7cmV0dXJuW2dlbkZhbGxiYWNrU3R5bGUoZm9ybVRva2VuKV19KSxGb3JtSXRlbUlucHV0X3Jlc3Q9ZnVuY3Rpb24ocyxlKXt2YXIgdD17fTtmb3IodmFyIHAgaW4gcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxwKSYmMD5lLmluZGV4T2YocCkmJih0W3BdPXNbcF0pO2lmKG51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKWZvcih2YXIgaT0wLHA9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtpPHAubGVuZ3RoO2krKykwPmUuaW5kZXhPZihwW2ldKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMscFtpXSkmJih0W3BbaV1dPXNbcFtpXV0pO3JldHVybiB0fTtsZXQgRm9ybUl0ZW1JbnB1dD1wcm9wcz0+e2xldHtwcmVmaXhDbHMsc3RhdHVzLGxhYmVsQ29sLHdyYXBwZXJDb2wsY2hpbGRyZW4sZXJyb3JzLHdhcm5pbmdzLF9pbnRlcm5hbEl0ZW1SZW5kZXI6Zm9ybUl0ZW1SZW5kZXIsZXh0cmEsaGVscCxmaWVsZElkLG1hcmdpbkJvdHRvbSxvbkVycm9yVmlzaWJsZUNoYW5nZWQsbGFiZWx9PXByb3BzLGJhc2VDbGFzc05hbWU9YCR7cHJlZml4Q2xzfS1pdGVtYCxmb3JtQ29udGV4dD1yZWFjdC51c2VDb250ZXh0KGNvbnRleHQucTMpLG1lcmdlZFdyYXBwZXJDb2w9cmVhY3QudXNlTWVtbygoKT0+e2xldCBtZXJnZWRXcmFwcGVyPU9iamVjdC5hc3NpZ24oe30sd3JhcHBlckNvbHx8Zm9ybUNvbnRleHQud3JhcHBlckNvbHx8e30pO3JldHVybiBudWxsIT09bGFiZWx8fGxhYmVsQ29sfHx3cmFwcGVyQ29sfHwhZm9ybUNvbnRleHQubGFiZWxDb2x8fFt2b2lkIDAsInhzIiwic20iLCJtZCIsImxnIiwieGwiLCJ4eGwiXS5mb3JFYWNoKHNpemU9PntsZXQgX3NpemU9c2l6ZT9bc2l6ZV06W10sZm9ybUxhYmVsPSgwLHJjX3V0aWxfZXMuVTIpKGZvcm1Db250ZXh0LmxhYmVsQ29sLF9zaXplKSxmb3JtTGFiZWxPYmo9Im9iamVjdCI9PXR5cGVvZiBmb3JtTGFiZWw/Zm9ybUxhYmVsOnt9LHdyYXBwZXI9KDAscmNfdXRpbF9lcy5VMikobWVyZ2VkV3JhcHBlcixfc2l6ZSk7InNwYW4iaW4gZm9ybUxhYmVsT2JqJiYhKCJvZmZzZXQiaW4oIm9iamVjdCI9PXR5cGVvZiB3cmFwcGVyP3dyYXBwZXI6e30pKSYmZm9ybUxhYmVsT2JqLnNwYW48MjQmJihtZXJnZWRXcmFwcGVyPSgwLHJjX3V0aWxfZXMudDgpKG1lcmdlZFdyYXBwZXIsW10uY29uY2F0KF9zaXplLFsib2Zmc2V0Il0pLGZvcm1MYWJlbE9iai5zcGFuKSl9KSxtZXJnZWRXcmFwcGVyfSxbd3JhcHBlckNvbCxmb3JtQ29udGV4dF0pLGNsYXNzTmFtZT1jbGFzc25hbWVzX2RlZmF1bHQoKShgJHtiYXNlQ2xhc3NOYW1lfS1jb250cm9sYCxtZXJnZWRXcmFwcGVyQ29sLmNsYXNzTmFtZSksc3ViRm9ybUNvbnRleHQ9cmVhY3QudXNlTWVtbygoKT0+e2xldHtsYWJlbENvbCx3cmFwcGVyQ29sfT1mb3JtQ29udGV4dCxyZXN0PUZvcm1JdGVtSW5wdXRfcmVzdChmb3JtQ29udGV4dCxbImxhYmVsQ29sIiwid3JhcHBlckNvbCJdKTtyZXR1cm4gcmVzdH0sW2Zvcm1Db250ZXh0XSksZXh0cmFSZWY9cmVhY3QudXNlUmVmKG51bGwpLFtleHRyYUhlaWdodCxzZXRFeHRyYUhlaWdodF09cmVhY3QudXNlU3RhdGUoMCk7KDAsdXNlTGF5b3V0RWZmZWN0LlopKCgpPT57ZXh0cmEmJmV4dHJhUmVmLmN1cnJlbnQ/c2V0RXh0cmFIZWlnaHQoZXh0cmFSZWYuY3VycmVudC5jbGllbnRIZWlnaHQpOnNldEV4dHJhSGVpZ2h0KDApfSxbZXh0cmFdKTtsZXQgaW5wdXREb209cmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke2Jhc2VDbGFzc05hbWV9LWNvbnRyb2wtaW5wdXRgfSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7YmFzZUNsYXNzTmFtZX0tY29udHJvbC1pbnB1dC1jb250ZW50YH0sY2hpbGRyZW4pKSxmb3JtSXRlbUNvbnRleHQ9cmVhY3QudXNlTWVtbygoKT0+KHtwcmVmaXhDbHMsc3RhdHVzfSksW3ByZWZpeENscyxzdGF0dXNdKSxlcnJvckxpc3REb209bnVsbCE9PW1hcmdpbkJvdHRvbXx8ZXJyb3JzLmxlbmd0aHx8d2FybmluZ3MubGVuZ3RoP3JlYWN0LmNyZWF0ZUVsZW1lbnQoY29udGV4dC5Say5Qcm92aWRlcix7dmFsdWU6Zm9ybUl0ZW1Db250ZXh0fSxyZWFjdC5jcmVhdGVFbGVtZW50KEVycm9yTGlzdCx7ZmllbGRJZDpmaWVsZElkLGVycm9yczplcnJvcnMsd2FybmluZ3M6d2FybmluZ3MsaGVscDpoZWxwLGhlbHBTdGF0dXM6c3RhdHVzLGNsYXNzTmFtZTpgJHtiYXNlQ2xhc3NOYW1lfS1leHBsYWluLWNvbm5lY3RlZGAsb25WaXNpYmxlQ2hhbmdlZDpvbkVycm9yVmlzaWJsZUNoYW5nZWR9KSk6bnVsbCxleHRyYVByb3BzPXt9O2ZpZWxkSWQmJihleHRyYVByb3BzLmlkPWAke2ZpZWxkSWR9X2V4dHJhYCk7bGV0IGV4dHJhRG9tPWV4dHJhP3JlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIsT2JqZWN0LmFzc2lnbih7fSxleHRyYVByb3BzLHtjbGFzc05hbWU6YCR7YmFzZUNsYXNzTmFtZX0tZXh0cmFgLHJlZjpleHRyYVJlZn0pLGV4dHJhKTpudWxsLGFkZGl0aW9uYWxEb209ZXJyb3JMaXN0RG9tfHxleHRyYURvbT9yZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7YmFzZUNsYXNzTmFtZX0tYWRkaXRpb25hbGAsc3R5bGU6bWFyZ2luQm90dG9tP3ttaW5IZWlnaHQ6bWFyZ2luQm90dG9tK2V4dHJhSGVpZ2h0fTp7fX0sZXJyb3JMaXN0RG9tLGV4dHJhRG9tKTpudWxsLGRvbT1mb3JtSXRlbVJlbmRlciYmInByb190YWJsZV9yZW5kZXIiPT09Zm9ybUl0ZW1SZW5kZXIubWFyayYmZm9ybUl0ZW1SZW5kZXIucmVuZGVyP2Zvcm1JdGVtUmVuZGVyLnJlbmRlcihwcm9wcyx7aW5wdXQ6aW5wdXREb20sZXJyb3JMaXN0OmVycm9yTGlzdERvbSxleHRyYTpleHRyYURvbX0pOnJlYWN0LmNyZWF0ZUVsZW1lbnQocmVhY3QuRnJhZ21lbnQsbnVsbCxpbnB1dERvbSxhZGRpdGlvbmFsRG9tKTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChjb250ZXh0LnEzLlByb3ZpZGVyLHt2YWx1ZTpzdWJGb3JtQ29udGV4dH0scmVhY3QuY3JlYXRlRWxlbWVudChjb2wuWixPYmplY3QuYXNzaWduKHt9LG1lcmdlZFdyYXBwZXJDb2wse2NsYXNzTmFtZTpjbGFzc05hbWV9KSxkb20pLHJlYWN0LmNyZWF0ZUVsZW1lbnQoZmFsbGJhY2tDbXAse3ByZWZpeENsczpwcmVmaXhDbHN9KSl9O3ZhciBlc21fZXh0ZW5kcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk3NDYwKSxhc25fUXVlc3Rpb25DaXJjbGVPdXRsaW5lZD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTYyMy42IDMxNi43QzU5My42IDI5MC40IDU1NCAyNzYgNTEyIDI3NnMtODEuNiAxNC41LTExMS42IDQwLjdDMzY5LjIgMzQ0IDM1MiAzODAuNyAzNTIgNDIwdjcuNmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjQyMGMwLTQ0LjEgNDMuMS04MCA5Ni04MHM5NiAzNS45IDk2IDgwYzAgMzEuMS0yMiA1OS42LTU2LjEgNzIuNy0yMS4yIDguMS0zOS4yIDIyLjMtNTIuMSA0MC45LTEzLjEgMTktMTkuOSA0MS44LTE5LjkgNjQuOVY2MjBjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtMjIuN2E0OC4zIDQ4LjMgMCAwMTMwLjktNDQuOGM1OS0yMi43IDk3LjEtNzQuNyA5Ny4xLTEzMi41LjEtMzkuMy0xNy4xLTc2LTQ4LjMtMTAzLjN6TTQ3MiA3MzJhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAweiJ9fV19LG5hbWU6InF1ZXN0aW9uLWNpcmNsZSIsdGhlbWU6Im91dGxpbmVkIn0sQW50ZEljb249X193ZWJwYWNrX3JlcXVpcmVfXyg4NzU5MiksUmVmSWNvbj1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoQW50ZEljb24uWiwoMCxlc21fZXh0ZW5kcy5aKSh7fSxwcm9wcyx7cmVmOnJlZixpY29uOmFzbl9RdWVzdGlvbkNpcmNsZU91dGxpbmVkfSkpfSksdXNlTG9jYWxlPV9fd2VicGFja19yZXF1aXJlX18oMTAxMTApLGVuX1VTPV9fd2VicGFja19yZXF1aXJlX18oMjQ0NTcpLGVzX3Rvb2x0aXA9X193ZWJwYWNrX3JlcXVpcmVfXyg2MTc4MSksRm9ybUl0ZW1MYWJlbF9yZXN0PWZ1bmN0aW9uKHMsZSl7dmFyIHQ9e307Zm9yKHZhciBwIGluIHMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMscCkmJjA+ZS5pbmRleE9mKHApJiYodFtwXT1zW3BdKTtpZihudWxsIT1zJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scylmb3IodmFyIGk9MCxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7aTxwLmxlbmd0aDtpKyspMD5lLmluZGV4T2YocFtpXSkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLHBbaV0pJiYodFtwW2ldXT1zW3BbaV1dKTtyZXR1cm4gdH07bGV0IEZvcm1JdGVtTGFiZWw9X3JlZj0+e3ZhciBfYTtsZXQgbWFya1R5cGUse3ByZWZpeENscyxsYWJlbCxodG1sRm9yLGxhYmVsQ29sLGxhYmVsQWxpZ24sY29sb24scmVxdWlyZWQscmVxdWlyZWRNYXJrLHRvb2x0aXAsdmVydGljYWx9PV9yZWYsW2Zvcm1Mb2NhbGVdPSgwLHVzZUxvY2FsZS5aKSgiRm9ybSIpLHtsYWJlbEFsaWduOmNvbnRleHRMYWJlbEFsaWduLGxhYmVsQ29sOmNvbnRleHRMYWJlbENvbCxsYWJlbFdyYXAsY29sb246Y29udGV4dENvbG9ufT1yZWFjdC51c2VDb250ZXh0KGNvbnRleHQucTMpO2lmKCFsYWJlbClyZXR1cm4gbnVsbDtsZXQgbWVyZ2VkTGFiZWxDb2w9bGFiZWxDb2x8fGNvbnRleHRMYWJlbENvbHx8e30sbGFiZWxDbHNCYXNpYz1gJHtwcmVmaXhDbHN9LWl0ZW0tbGFiZWxgLGxhYmVsQ29sQ2xhc3NOYW1lPWNsYXNzbmFtZXNfZGVmYXVsdCgpKGxhYmVsQ2xzQmFzaWMsImxlZnQiPT09KGxhYmVsQWxpZ258fGNvbnRleHRMYWJlbEFsaWduKSYmYCR7bGFiZWxDbHNCYXNpY30tbGVmdGAsbWVyZ2VkTGFiZWxDb2wuY2xhc3NOYW1lLHtbYCR7bGFiZWxDbHNCYXNpY30td3JhcGBdOiEhbGFiZWxXcmFwfSksbGFiZWxDaGlsZHJlbj1sYWJlbCxjb21wdXRlZENvbG9uPSEwPT09Y29sb258fCExIT09Y29udGV4dENvbG9uJiYhMSE9PWNvbG9uO2NvbXB1dGVkQ29sb24mJiF2ZXJ0aWNhbCYmInN0cmluZyI9PXR5cGVvZiBsYWJlbCYmbGFiZWwudHJpbSgpJiYobGFiZWxDaGlsZHJlbj1sYWJlbC5yZXBsYWNlKC9bOnzvvJpdXHMqJC8sIiIpKTtsZXQgdG9vbHRpcFByb3BzPW51bGw9PXRvb2x0aXA/bnVsbDoib2JqZWN0IiE9dHlwZW9mIHRvb2x0aXB8fCgwLHJlYWN0LmlzVmFsaWRFbGVtZW50KSh0b29sdGlwKT97dGl0bGU6dG9vbHRpcH06dG9vbHRpcDtpZih0b29sdGlwUHJvcHMpe2xldHtpY29uPXJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVmSWNvbixudWxsKX09dG9vbHRpcFByb3BzLHJlc3RUb29sdGlwUHJvcHM9Rm9ybUl0ZW1MYWJlbF9yZXN0KHRvb2x0aXBQcm9wcyxbImljb24iXSksdG9vbHRpcE5vZGU9cmVhY3QuY3JlYXRlRWxlbWVudChlc190b29sdGlwLlosT2JqZWN0LmFzc2lnbih7fSxyZXN0VG9vbHRpcFByb3BzKSxyZWFjdC5jbG9uZUVsZW1lbnQoaWNvbix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30taXRlbS10b29sdGlwYCx0aXRsZToiIixvbkNsaWNrKGUpe2UucHJldmVudERlZmF1bHQoKX0sdGFiSW5kZXg6bnVsbH0pKTtsYWJlbENoaWxkcmVuPXJlYWN0LmNyZWF0ZUVsZW1lbnQocmVhY3QuRnJhZ21lbnQsbnVsbCxsYWJlbENoaWxkcmVuLHRvb2x0aXBOb2RlKX1sZXQgaXNPcHRpb25hbE1hcms9Im9wdGlvbmFsIj09PXJlcXVpcmVkTWFyayxpc1JlbmRlck1hcms9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmVkTWFyaztpc1JlbmRlck1hcms/bGFiZWxDaGlsZHJlbj1yZXF1aXJlZE1hcmsobGFiZWxDaGlsZHJlbix7cmVxdWlyZWQ6ISFyZXF1aXJlZH0pOmlzT3B0aW9uYWxNYXJrJiYhcmVxdWlyZWQmJihsYWJlbENoaWxkcmVuPXJlYWN0LmNyZWF0ZUVsZW1lbnQocmVhY3QuRnJhZ21lbnQsbnVsbCxsYWJlbENoaWxkcmVuLHJlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS1pdGVtLW9wdGlvbmFsYCx0aXRsZToiIn0sKG51bGw9PWZvcm1Mb2NhbGU/dm9pZCAwOmZvcm1Mb2NhbGUub3B0aW9uYWwpfHwobnVsbD09PShfYT1lbl9VUy5aLkZvcm0pfHx2b2lkIDA9PT1fYT92b2lkIDA6X2Eub3B0aW9uYWwpKSkpLCExPT09cmVxdWlyZWRNYXJrP21hcmtUeXBlPSJoaWRkZW4iOihpc09wdGlvbmFsTWFya3x8aXNSZW5kZXJNYXJrKSYmKG1hcmtUeXBlPSJvcHRpb25hbCIpO2xldCBsYWJlbENsYXNzTmFtZT1jbGFzc25hbWVzX2RlZmF1bHQoKSh7W2Ake3ByZWZpeENsc30taXRlbS1yZXF1aXJlZGBdOnJlcXVpcmVkLFtgJHtwcmVmaXhDbHN9LWl0ZW0tcmVxdWlyZWQtbWFyay0ke21hcmtUeXBlfWBdOm1hcmtUeXBlLFtgJHtwcmVmaXhDbHN9LWl0ZW0tbm8tY29sb25gXTohY29tcHV0ZWRDb2xvbn0pO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KGNvbC5aLE9iamVjdC5hc3NpZ24oe30sbWVyZ2VkTGFiZWxDb2wse2NsYXNzTmFtZTpsYWJlbENvbENsYXNzTmFtZX0pLHJlYWN0LmNyZWF0ZUVsZW1lbnQoImxhYmVsIix7aHRtbEZvcjpodG1sRm9yLGNsYXNzTmFtZTpsYWJlbENsYXNzTmFtZSx0aXRsZToic3RyaW5nIj09dHlwZW9mIGxhYmVsP2xhYmVsOiIifSxsYWJlbENoaWxkcmVuKSl9O3ZhciBDaGVja0NpcmNsZUZpbGxlZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDg5NzM5KSxDbG9zZUNpcmNsZUZpbGxlZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQzNDApLEV4Y2xhbWF0aW9uQ2lyY2xlRmlsbGVkPV9fd2VicGFja19yZXF1aXJlX18oMjE2NDApLExvYWRpbmdPdXRsaW5lZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDUwODg4KTtsZXQgaWNvbk1hcD17c3VjY2VzczpDaGVja0NpcmNsZUZpbGxlZC5aLHdhcm5pbmc6RXhjbGFtYXRpb25DaXJjbGVGaWxsZWQuWixlcnJvcjpDbG9zZUNpcmNsZUZpbGxlZC5aLHZhbGlkYXRpbmc6TG9hZGluZ091dGxpbmVkLlp9O2Z1bmN0aW9uIFN0YXR1c1Byb3ZpZGVyKF9yZWYpe2xldHtjaGlsZHJlbixlcnJvcnMsd2FybmluZ3MsaGFzRmVlZGJhY2ssdmFsaWRhdGVTdGF0dXMscHJlZml4Q2xzLG1ldGEsbm9TdHlsZX09X3JlZixpdGVtUHJlZml4Q2xzPWAke3ByZWZpeENsc30taXRlbWAse2ZlZWRiYWNrSWNvbnN9PXJlYWN0LnVzZUNvbnRleHQoY29udGV4dC5xMyksbWVyZ2VkVmFsaWRhdGVTdGF0dXM9Z2V0U3RhdHVzKGVycm9ycyx3YXJuaW5ncyxtZXRhLG51bGwsISFoYXNGZWVkYmFjayx2YWxpZGF0ZVN0YXR1cykse2lzRm9ybUl0ZW1JbnB1dDpwYXJlbnRJc0Zvcm1JdGVtSW5wdXQsc3RhdHVzOnBhcmVudFN0YXR1cyxoYXNGZWVkYmFjazpwYXJlbnRIYXNGZWVkYmFjayxmZWVkYmFja0ljb246cGFyZW50RmVlZGJhY2tJY29ufT1yZWFjdC51c2VDb250ZXh0KGNvbnRleHQuYU0pLGZvcm1JdGVtU3RhdHVzQ29udGV4dD1yZWFjdC51c2VNZW1vKCgpPT57dmFyIF9hO2xldCBmZWVkYmFja0ljb247aWYoaGFzRmVlZGJhY2spe2xldCBjdXN0b21JY29ucz0hMCE9PWhhc0ZlZWRiYWNrJiZoYXNGZWVkYmFjay5pY29uc3x8ZmVlZGJhY2tJY29ucyxjdXN0b21JY29uTm9kZT1tZXJnZWRWYWxpZGF0ZVN0YXR1cyYmKG51bGw9PT0oX2E9bnVsbD09Y3VzdG9tSWNvbnM/dm9pZCAwOmN1c3RvbUljb25zKHtzdGF0dXM6bWVyZ2VkVmFsaWRhdGVTdGF0dXMsZXJyb3JzLHdhcm5pbmdzfSkpfHx2b2lkIDA9PT1fYT92b2lkIDA6X2FbbWVyZ2VkVmFsaWRhdGVTdGF0dXNdKSxJY29uTm9kZT1tZXJnZWRWYWxpZGF0ZVN0YXR1cyYmaWNvbk1hcFttZXJnZWRWYWxpZGF0ZVN0YXR1c107ZmVlZGJhY2tJY29uPSExIT09Y3VzdG9tSWNvbk5vZGUmJkljb25Ob2RlP3JlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6Y2xhc3NuYW1lc19kZWZhdWx0KCkoYCR7aXRlbVByZWZpeENsc30tZmVlZGJhY2staWNvbmAsYCR7aXRlbVByZWZpeENsc30tZmVlZGJhY2staWNvbi0ke21lcmdlZFZhbGlkYXRlU3RhdHVzfWApfSxjdXN0b21JY29uTm9kZXx8cmVhY3QuY3JlYXRlRWxlbWVudChJY29uTm9kZSxudWxsKSk6bnVsbH1sZXQgY29udGV4dD17c3RhdHVzOm1lcmdlZFZhbGlkYXRlU3RhdHVzfHwiIixlcnJvcnMsd2FybmluZ3MsaGFzRmVlZGJhY2s6ISFoYXNGZWVkYmFjayxmZWVkYmFja0ljb24saXNGb3JtSXRlbUlucHV0OiEwfTtyZXR1cm4gbm9TdHlsZSYmKGNvbnRleHQuc3RhdHVzPShudWxsIT1tZXJnZWRWYWxpZGF0ZVN0YXR1cz9tZXJnZWRWYWxpZGF0ZVN0YXR1czpwYXJlbnRTdGF0dXMpfHwiIixjb250ZXh0LmlzRm9ybUl0ZW1JbnB1dD1wYXJlbnRJc0Zvcm1JdGVtSW5wdXQsY29udGV4dC5oYXNGZWVkYmFjaz0hIShudWxsIT1oYXNGZWVkYmFjaz9oYXNGZWVkYmFjazpwYXJlbnRIYXNGZWVkYmFjayksY29udGV4dC5mZWVkYmFja0ljb249dm9pZCAwIT09aGFzRmVlZGJhY2s/Y29udGV4dC5mZWVkYmFja0ljb246cGFyZW50RmVlZGJhY2tJY29uKSxjb250ZXh0fSxbbWVyZ2VkVmFsaWRhdGVTdGF0dXMsaGFzRmVlZGJhY2ssbm9TdHlsZSxwYXJlbnRJc0Zvcm1JdGVtSW5wdXQscGFyZW50U3RhdHVzXSk7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoY29udGV4dC5hTS5Qcm92aWRlcix7dmFsdWU6Zm9ybUl0ZW1TdGF0dXNDb250ZXh0fSxjaGlsZHJlbil9dmFyIEl0ZW1Ib2xkZXJfcmVzdD1mdW5jdGlvbihzLGUpe3ZhciB0PXt9O2Zvcih2YXIgcCBpbiBzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLHApJiYwPmUuaW5kZXhPZihwKSYmKHRbcF09c1twXSk7aWYobnVsbCE9cyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpZm9yKHZhciBpPTAscD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpO2k8cC5sZW5ndGg7aSsrKTA+ZS5pbmRleE9mKHBbaV0pJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocyxwW2ldKSYmKHRbcFtpXV09c1twW2ldXSk7cmV0dXJuIHR9O2Z1bmN0aW9uIEl0ZW1Ib2xkZXIocHJvcHMpe2xldHtwcmVmaXhDbHMsY2xhc3NOYW1lLHJvb3RDbGFzc05hbWUsc3R5bGUsaGVscCxlcnJvcnMsd2FybmluZ3MsdmFsaWRhdGVTdGF0dXMsbWV0YSxoYXNGZWVkYmFjayxoaWRkZW4sY2hpbGRyZW4sZmllbGRJZCxyZXF1aXJlZCxpc1JlcXVpcmVkLG9uU3ViSXRlbU1ldGFDaGFuZ2UsbGF5b3V0fT1wcm9wcyxyZXN0UHJvcHM9SXRlbUhvbGRlcl9yZXN0KHByb3BzLFsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsInN0eWxlIiwiaGVscCIsImVycm9ycyIsIndhcm5pbmdzIiwidmFsaWRhdGVTdGF0dXMiLCJtZXRhIiwiaGFzRmVlZGJhY2siLCJoaWRkZW4iLCJjaGlsZHJlbiIsImZpZWxkSWQiLCJyZXF1aXJlZCIsImlzUmVxdWlyZWQiLCJvblN1Ykl0ZW1NZXRhQ2hhbmdlIiwibGF5b3V0Il0pLGl0ZW1QcmVmaXhDbHM9YCR7cHJlZml4Q2xzfS1pdGVtYCx7cmVxdWlyZWRNYXJrLHZlcnRpY2FsOmZvcm1WZXJ0aWNhbH09cmVhY3QudXNlQ29udGV4dChjb250ZXh0LnEzKSxpdGVtUmVmPXJlYWN0LnVzZVJlZihudWxsKSxkZWJvdW5jZUVycm9ycz11c2VEZWJvdW5jZShlcnJvcnMpLGRlYm91bmNlV2FybmluZ3M9dXNlRGVib3VuY2Uod2FybmluZ3MpLGhhc0hlbHA9bnVsbCE9aGVscCxoYXNFcnJvcj0hIShoYXNIZWxwfHxlcnJvcnMubGVuZ3RofHx3YXJuaW5ncy5sZW5ndGgpLGlzT25TY3JlZW49ISFpdGVtUmVmLmN1cnJlbnQmJigwLGlzVmlzaWJsZS5aKShpdGVtUmVmLmN1cnJlbnQpLFttYXJnaW5Cb3R0b20sc2V0TWFyZ2luQm90dG9tXT1yZWFjdC51c2VTdGF0ZShudWxsKTsoMCx1c2VMYXlvdXRFZmZlY3QuWikoKCk9PntpZihoYXNFcnJvciYmaXRlbVJlZi5jdXJyZW50KXtsZXQgaXRlbVN0eWxlPWdldENvbXB1dGVkU3R5bGUoaXRlbVJlZi5jdXJyZW50KTtzZXRNYXJnaW5Cb3R0b20ocGFyc2VJbnQoaXRlbVN0eWxlLm1hcmdpbkJvdHRvbSwxMCkpfX0sW2hhc0Vycm9yLGlzT25TY3JlZW5dKTtsZXQgb25FcnJvclZpc2libGVDaGFuZ2VkPW5leHRWaXNpYmxlPT57bmV4dFZpc2libGV8fHNldE1hcmdpbkJvdHRvbShudWxsKX0sbWVyZ2VkVmFsaWRhdGVTdGF0dXM9ZnVuY3Rpb24oKXtsZXQgaXNEZWJvdW5jZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLF9lcnJvcnM9aXNEZWJvdW5jZT9kZWJvdW5jZUVycm9yczptZXRhLmVycm9ycyxfd2FybmluZ3M9aXNEZWJvdW5jZT9kZWJvdW5jZVdhcm5pbmdzOm1ldGEud2FybmluZ3M7cmV0dXJuIGdldFN0YXR1cyhfZXJyb3JzLF93YXJuaW5ncyxtZXRhLCIiLCEhaGFzRmVlZGJhY2ssdmFsaWRhdGVTdGF0dXMpfSgpLGl0ZW1DbGFzc05hbWU9Y2xhc3NuYW1lc19kZWZhdWx0KCkoaXRlbVByZWZpeENscyxjbGFzc05hbWUscm9vdENsYXNzTmFtZSx7W2Ake2l0ZW1QcmVmaXhDbHN9LXdpdGgtaGVscGBdOmhhc0hlbHB8fGRlYm91bmNlRXJyb3JzLmxlbmd0aHx8ZGVib3VuY2VXYXJuaW5ncy5sZW5ndGgsW2Ake2l0ZW1QcmVmaXhDbHN9LWhhcy1mZWVkYmFja2BdOm1lcmdlZFZhbGlkYXRlU3RhdHVzJiZoYXNGZWVkYmFjayxbYCR7aXRlbVByZWZpeENsc30taGFzLXN1Y2Nlc3NgXToic3VjY2VzcyI9PT1tZXJnZWRWYWxpZGF0ZVN0YXR1cyxbYCR7aXRlbVByZWZpeENsc30taGFzLXdhcm5pbmdgXToid2FybmluZyI9PT1tZXJnZWRWYWxpZGF0ZVN0YXR1cyxbYCR7aXRlbVByZWZpeENsc30taGFzLWVycm9yYF06ImVycm9yIj09PW1lcmdlZFZhbGlkYXRlU3RhdHVzLFtgJHtpdGVtUHJlZml4Q2xzfS1pcy12YWxpZGF0aW5nYF06InZhbGlkYXRpbmciPT09bWVyZ2VkVmFsaWRhdGVTdGF0dXMsW2Ake2l0ZW1QcmVmaXhDbHN9LWhpZGRlbmBdOmhpZGRlbixbYCR7aXRlbVByZWZpeENsc30tJHtsYXlvdXR9YF06bGF5b3V0fSk7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTppdGVtQ2xhc3NOYW1lLHN0eWxlOnN0eWxlLHJlZjppdGVtUmVmfSxyZWFjdC5jcmVhdGVFbGVtZW50KHJvdy5aLE9iamVjdC5hc3NpZ24oe2NsYXNzTmFtZTpgJHtpdGVtUHJlZml4Q2xzfS1yb3dgfSwoMCxvbWl0LlopKHJlc3RQcm9wcyxbIl9pbnRlcm5hbEl0ZW1SZW5kZXIiLCJjb2xvbiIsImRlcGVuZGVuY2llcyIsImV4dHJhIiwiZmllbGRLZXkiLCJnZXRWYWx1ZUZyb21FdmVudCIsImdldFZhbHVlUHJvcHMiLCJodG1sRm9yIiwiaWQiLCJpbml0aWFsVmFsdWUiLCJpc0xpc3RGaWVsZCIsImxhYmVsIiwibGFiZWxBbGlnbiIsImxhYmVsQ29sIiwibGFiZWxXcmFwIiwibWVzc2FnZVZhcmlhYmxlcyIsIm5hbWUiLCJub3JtYWxpemUiLCJub1N0eWxlIiwicHJlc2VydmUiLCJyZXF1aXJlZE1hcmsiLCJydWxlcyIsInNob3VsZFVwZGF0ZSIsInRyaWdnZXIiLCJ0b29sdGlwIiwidmFsaWRhdGVGaXJzdCIsInZhbGlkYXRlVHJpZ2dlciIsInZhbHVlUHJvcE5hbWUiLCJ3cmFwcGVyQ29sIiwidmFsaWRhdGVEZWJvdW5jZSJdKSkscmVhY3QuY3JlYXRlRWxlbWVudChGb3JtSXRlbUxhYmVsLE9iamVjdC5hc3NpZ24oe2h0bWxGb3I6ZmllbGRJZH0scHJvcHMse3JlcXVpcmVkTWFyazpyZXF1aXJlZE1hcmsscmVxdWlyZWQ6bnVsbCE9cmVxdWlyZWQ/cmVxdWlyZWQ6aXNSZXF1aXJlZCxwcmVmaXhDbHM6cHJlZml4Q2xzLHZlcnRpY2FsOmZvcm1WZXJ0aWNhbHx8InZlcnRpY2FsIj09PWxheW91dH0pKSxyZWFjdC5jcmVhdGVFbGVtZW50KEZvcm1JdGVtSW5wdXQsT2JqZWN0LmFzc2lnbih7fSxwcm9wcyxtZXRhLHtlcnJvcnM6ZGVib3VuY2VFcnJvcnMsd2FybmluZ3M6ZGVib3VuY2VXYXJuaW5ncyxwcmVmaXhDbHM6cHJlZml4Q2xzLHN0YXR1czptZXJnZWRWYWxpZGF0ZVN0YXR1cyxoZWxwOmhlbHAsbWFyZ2luQm90dG9tOm1hcmdpbkJvdHRvbSxvbkVycm9yVmlzaWJsZUNoYW5nZWQ6b25FcnJvclZpc2libGVDaGFuZ2VkfSkscmVhY3QuY3JlYXRlRWxlbWVudChjb250ZXh0LnFJLlByb3ZpZGVyLHt2YWx1ZTpvblN1Ykl0ZW1NZXRhQ2hhbmdlfSxyZWFjdC5jcmVhdGVFbGVtZW50KFN0YXR1c1Byb3ZpZGVyLHtwcmVmaXhDbHM6cHJlZml4Q2xzLG1ldGE6bWV0YSxlcnJvcnM6bWV0YS5lcnJvcnMsd2FybmluZ3M6bWV0YS53YXJuaW5ncyxoYXNGZWVkYmFjazpoYXNGZWVkYmFjayx2YWxpZGF0ZVN0YXR1czptZXJnZWRWYWxpZGF0ZVN0YXR1c30sY2hpbGRyZW4pKSkpLCEhbWFyZ2luQm90dG9tJiZyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7aXRlbVByZWZpeENsc30tbWFyZ2luLW9mZnNldGAsc3R5bGU6e21hcmdpbkJvdHRvbTotbWFyZ2luQm90dG9tfX0pKX1sZXQgTWVtb0lucHV0PXJlYWN0Lm1lbW8oX3JlZj0+e2xldHtjaGlsZHJlbn09X3JlZjtyZXR1cm4gY2hpbGRyZW59LChwcmV2LG5leHQpPT4oZnVuY3Rpb24oYSxiKXtsZXQga2V5c0E9T2JqZWN0LmtleXMoYSksa2V5c0I9T2JqZWN0LmtleXMoYik7cmV0dXJuIGtleXNBLmxlbmd0aD09PWtleXNCLmxlbmd0aCYma2V5c0EuZXZlcnkoa2V5PT57bGV0IHByb3BWYWx1ZUE9YVtrZXldLHByb3BWYWx1ZUI9YltrZXldO3JldHVybiBwcm9wVmFsdWVBPT09cHJvcFZhbHVlQnx8ImZ1bmN0aW9uIj09dHlwZW9mIHByb3BWYWx1ZUF8fCJmdW5jdGlvbiI9PXR5cGVvZiBwcm9wVmFsdWVCfSl9KShwcmV2LmNvbnRyb2wsbmV4dC5jb250cm9sKSYmcHJldi51cGRhdGU9PT1uZXh0LnVwZGF0ZSYmcHJldi5jaGlsZFByb3BzLmxlbmd0aD09PW5leHQuY2hpbGRQcm9wcy5sZW5ndGgmJnByZXYuY2hpbGRQcm9wcy5ldmVyeSgodmFsdWUsaW5kZXgpPT52YWx1ZT09PW5leHQuY2hpbGRQcm9wc1tpbmRleF0pKTtmdW5jdGlvbiBnZW5FbXB0eU1ldGEoKXtyZXR1cm57ZXJyb3JzOltdLHdhcm5pbmdzOltdLHRvdWNoZWQ6ITEsdmFsaWRhdGluZzohMSxuYW1lOltdLHZhbGlkYXRlZDohMX19bGV0IEZvcm1JdGVtPWZ1bmN0aW9uKHByb3BzKXtsZXR7bmFtZSxub1N0eWxlLGNsYXNzTmFtZSxkZXBlbmRlbmNpZXMscHJlZml4Q2xzOmN1c3RvbWl6ZVByZWZpeENscyxzaG91bGRVcGRhdGUscnVsZXMsY2hpbGRyZW4scmVxdWlyZWQsbGFiZWwsbWVzc2FnZVZhcmlhYmxlcyx0cmlnZ2VyPSJvbkNoYW5nZSIsdmFsaWRhdGVUcmlnZ2VyLGhpZGRlbixoZWxwLGxheW91dH09cHJvcHMse2dldFByZWZpeENsc309cmVhY3QudXNlQ29udGV4dChjb25maWdfcHJvdmlkZXJfY29udGV4dC5FXykse25hbWU6Zm9ybU5hbWV9PXJlYWN0LnVzZUNvbnRleHQoY29udGV4dC5xMyksbWVyZ2VkQ2hpbGRyZW49ZnVuY3Rpb24oY2hpbGRyZW4pe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjaGlsZHJlbilyZXR1cm4gY2hpbGRyZW47bGV0IGNoaWxkTGlzdD0oMCxDaGlsZHJlbl90b0FycmF5LlopKGNoaWxkcmVuKTtyZXR1cm4gY2hpbGRMaXN0Lmxlbmd0aDw9MT9jaGlsZExpc3RbMF06Y2hpbGRMaXN0fShjaGlsZHJlbiksaXNSZW5kZXJQcm9wcz0iZnVuY3Rpb24iPT10eXBlb2YgbWVyZ2VkQ2hpbGRyZW4sbm90aWZ5UGFyZW50TWV0YUNoYW5nZT1yZWFjdC51c2VDb250ZXh0KGNvbnRleHQucUkpLHt2YWxpZGF0ZVRyaWdnZXI6Y29udGV4dFZhbGlkYXRlVHJpZ2dlcn09cmVhY3QudXNlQ29udGV4dChyY19maWVsZF9mb3JtX2VzLnpiKSxtZXJnZWRWYWxpZGF0ZVRyaWdnZXI9dm9pZCAwIT09dmFsaWRhdGVUcmlnZ2VyP3ZhbGlkYXRlVHJpZ2dlcjpjb250ZXh0VmFsaWRhdGVUcmlnZ2VyLGhhc05hbWU9bnVsbCE9bmFtZSxwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJmb3JtIixjdXN0b21pemVQcmVmaXhDbHMpLHJvb3RDbHM9KDAsdXNlQ1NTVmFyQ2xzLlopKHByZWZpeENscyksW3dyYXBDU1NWYXIsaGFzaElkLGNzc1ZhckNsc109Zm9ybV9zdHlsZShwcmVmaXhDbHMscm9vdENscyk7KDAsX3V0aWxfd2FybmluZy5sbikoIkZvcm0uSXRlbSIpO2xldCBsaXN0Q29udGV4dD1yZWFjdC51c2VDb250ZXh0KHJjX2ZpZWxkX2Zvcm1fZXMuWk0pLGZpZWxkS2V5UGF0aFJlZj1yZWFjdC51c2VSZWYobnVsbCksW3N1YkZpZWxkRXJyb3JzLHNldFN1YkZpZWxkRXJyb3JzXT1mdW5jdGlvbihkZWZhdWx0VmFsdWUpe2xldFt2YWx1ZSxzZXRWYWx1ZV09cmVhY3QudXNlU3RhdGUoZGVmYXVsdFZhbHVlKSxmcmFtZVJlZj1yZWFjdC51c2VSZWYobnVsbCksYmF0Y2hSZWY9cmVhY3QudXNlUmVmKFtdKSxkZXN0cm95UmVmPXJlYWN0LnVzZVJlZighMSk7cmV0dXJuIHJlYWN0LnVzZUVmZmVjdCgoKT0+KGRlc3Ryb3lSZWYuY3VycmVudD0hMSwoKT0+e2Rlc3Ryb3lSZWYuY3VycmVudD0hMCxyYWYuWi5jYW5jZWwoZnJhbWVSZWYuY3VycmVudCksZnJhbWVSZWYuY3VycmVudD1udWxsfSksW10pLFt2YWx1ZSxmdW5jdGlvbih1cGRhdGVyKXtkZXN0cm95UmVmLmN1cnJlbnR8fChudWxsPT09ZnJhbWVSZWYuY3VycmVudCYmKGJhdGNoUmVmLmN1cnJlbnQ9W10sZnJhbWVSZWYuY3VycmVudD0oMCxyYWYuWikoKCk9PntmcmFtZVJlZi5jdXJyZW50PW51bGwsc2V0VmFsdWUocHJldlZhbHVlPT57bGV0IGN1cnJlbnQ9cHJldlZhbHVlO3JldHVybiBiYXRjaFJlZi5jdXJyZW50LmZvckVhY2goZnVuYz0+e2N1cnJlbnQ9ZnVuYyhjdXJyZW50KX0pLGN1cnJlbnR9KX0pKSxiYXRjaFJlZi5jdXJyZW50LnB1c2godXBkYXRlcikpfV19KHt9KSxbbWV0YSxzZXRNZXRhXT0oMCx1c2VTdGF0ZS5aKSgoKT0+Z2VuRW1wdHlNZXRhKCkpLG9uTWV0YUNoYW5nZT1uZXh0TWV0YT0+e2xldCBrZXlJbmZvPW51bGw9PWxpc3RDb250ZXh0P3ZvaWQgMDpsaXN0Q29udGV4dC5nZXRLZXkobmV4dE1ldGEubmFtZSk7aWYoc2V0TWV0YShuZXh0TWV0YS5kZXN0cm95P2dlbkVtcHR5TWV0YSgpOm5leHRNZXRhLCEwKSxub1N0eWxlJiYhMSE9PWhlbHAmJm5vdGlmeVBhcmVudE1ldGFDaGFuZ2Upe2xldCBuYW1lUGF0aD1uZXh0TWV0YS5uYW1lO2lmKG5leHRNZXRhLmRlc3Ryb3kpbmFtZVBhdGg9ZmllbGRLZXlQYXRoUmVmLmN1cnJlbnR8fG5hbWVQYXRoO2Vsc2UgaWYodm9pZCAwIT09a2V5SW5mbyl7bGV0W2ZpZWxkS2V5LHJlc3RQYXRoXT1rZXlJbmZvO25hbWVQYXRoPVtmaWVsZEtleV0uY29uY2F0KCgwLHRvQ29uc3VtYWJsZUFycmF5LlopKHJlc3RQYXRoKSksZmllbGRLZXlQYXRoUmVmLmN1cnJlbnQ9bmFtZVBhdGh9bm90aWZ5UGFyZW50TWV0YUNoYW5nZShuZXh0TWV0YSxuYW1lUGF0aCl9fSxvblN1Ykl0ZW1NZXRhQ2hhbmdlPShzdWJNZXRhLHVuaXF1ZUtleXMpPT57c2V0U3ViRmllbGRFcnJvcnMocHJldlN1YkZpZWxkRXJyb3JzPT57bGV0IGNsb25lPU9iamVjdC5hc3NpZ24oe30scHJldlN1YkZpZWxkRXJyb3JzKSxtZXJnZWROYW1lUGF0aD1bXS5jb25jYXQoKDAsdG9Db25zdW1hYmxlQXJyYXkuWikoc3ViTWV0YS5uYW1lLnNsaWNlKDAsLTEpKSwoMCx0b0NvbnN1bWFibGVBcnJheS5aKSh1bmlxdWVLZXlzKSksbWVyZ2VkTmFtZUtleT1tZXJnZWROYW1lUGF0aC5qb2luKCJfX1NQTElUX18iKTtyZXR1cm4gc3ViTWV0YS5kZXN0cm95P2RlbGV0ZSBjbG9uZVttZXJnZWROYW1lS2V5XTpjbG9uZVttZXJnZWROYW1lS2V5XT1zdWJNZXRhLGNsb25lfSl9LFttZXJnZWRFcnJvcnMsbWVyZ2VkV2FybmluZ3NdPXJlYWN0LnVzZU1lbW8oKCk9PntsZXQgZXJyb3JMaXN0PSgwLHRvQ29uc3VtYWJsZUFycmF5LlopKG1ldGEuZXJyb3JzKSx3YXJuaW5nTGlzdD0oMCx0b0NvbnN1bWFibGVBcnJheS5aKShtZXRhLndhcm5pbmdzKTtyZXR1cm4gT2JqZWN0LnZhbHVlcyhzdWJGaWVsZEVycm9ycykuZm9yRWFjaChzdWJGaWVsZEVycm9yPT57ZXJyb3JMaXN0LnB1c2guYXBwbHkoZXJyb3JMaXN0LCgwLHRvQ29uc3VtYWJsZUFycmF5LlopKHN1YkZpZWxkRXJyb3IuZXJyb3JzfHxbXSkpLHdhcm5pbmdMaXN0LnB1c2guYXBwbHkod2FybmluZ0xpc3QsKDAsdG9Db25zdW1hYmxlQXJyYXkuWikoc3ViRmllbGRFcnJvci53YXJuaW5nc3x8W10pKX0pLFtlcnJvckxpc3Qsd2FybmluZ0xpc3RdfSxbc3ViRmllbGRFcnJvcnMsbWV0YS5lcnJvcnMsbWV0YS53YXJuaW5nc10pLGdldEl0ZW1SZWY9ZnVuY3Rpb24oKXtsZXR7aXRlbVJlZn09cmVhY3QudXNlQ29udGV4dChjb250ZXh0LnEzKSxjYWNoZVJlZj1yZWFjdC51c2VSZWYoe30pO3JldHVybiBmdW5jdGlvbihuYW1lLGNoaWxkcmVuKXtsZXQgY2hpbGRyZW5SZWY9Y2hpbGRyZW4mJiJvYmplY3QiPT10eXBlb2YgY2hpbGRyZW4mJigwLHJlZi5DNCkoY2hpbGRyZW4pLG5hbWVTdHI9bmFtZS5qb2luKCJfIik7cmV0dXJuKGNhY2hlUmVmLmN1cnJlbnQubmFtZSE9PW5hbWVTdHJ8fGNhY2hlUmVmLmN1cnJlbnQub3JpZ2luUmVmIT09Y2hpbGRyZW5SZWYpJiYoY2FjaGVSZWYuY3VycmVudC5uYW1lPW5hbWVTdHIsY2FjaGVSZWYuY3VycmVudC5vcmlnaW5SZWY9Y2hpbGRyZW5SZWYsY2FjaGVSZWYuY3VycmVudC5yZWY9KDAscmVmLnNRKShpdGVtUmVmKG5hbWUpLGNoaWxkcmVuUmVmKSksY2FjaGVSZWYuY3VycmVudC5yZWZ9fSgpO2Z1bmN0aW9uIHJlbmRlckxheW91dChiYXNlQ2hpbGRyZW4sZmllbGRJZCxpc1JlcXVpcmVkKXtyZXR1cm4gbm9TdHlsZSYmIWhpZGRlbj9yZWFjdC5jcmVhdGVFbGVtZW50KFN0YXR1c1Byb3ZpZGVyLHtwcmVmaXhDbHM6cHJlZml4Q2xzLGhhc0ZlZWRiYWNrOnByb3BzLmhhc0ZlZWRiYWNrLHZhbGlkYXRlU3RhdHVzOnByb3BzLnZhbGlkYXRlU3RhdHVzLG1ldGE6bWV0YSxlcnJvcnM6bWVyZ2VkRXJyb3JzLHdhcm5pbmdzOm1lcmdlZFdhcm5pbmdzLG5vU3R5bGU6ITB9LGJhc2VDaGlsZHJlbik6cmVhY3QuY3JlYXRlRWxlbWVudChJdGVtSG9sZGVyLE9iamVjdC5hc3NpZ24oe2tleToicm93In0scHJvcHMse2NsYXNzTmFtZTpjbGFzc25hbWVzX2RlZmF1bHQoKShjbGFzc05hbWUsY3NzVmFyQ2xzLHJvb3RDbHMsaGFzaElkKSxwcmVmaXhDbHM6cHJlZml4Q2xzLGZpZWxkSWQ6ZmllbGRJZCxpc1JlcXVpcmVkOmlzUmVxdWlyZWQsZXJyb3JzOm1lcmdlZEVycm9ycyx3YXJuaW5nczptZXJnZWRXYXJuaW5ncyxtZXRhOm1ldGEsb25TdWJJdGVtTWV0YUNoYW5nZTpvblN1Ykl0ZW1NZXRhQ2hhbmdlLGxheW91dDpsYXlvdXR9KSxiYXNlQ2hpbGRyZW4pfWlmKCFoYXNOYW1lJiYhaXNSZW5kZXJQcm9wcyYmIWRlcGVuZGVuY2llcylyZXR1cm4gd3JhcENTU1ZhcihyZW5kZXJMYXlvdXQobWVyZ2VkQ2hpbGRyZW4pKTtsZXQgdmFyaWFibGVzPXt9O3JldHVybiJzdHJpbmciPT10eXBlb2YgbGFiZWw/dmFyaWFibGVzLmxhYmVsPWxhYmVsOm5hbWUmJih2YXJpYWJsZXMubGFiZWw9U3RyaW5nKG5hbWUpKSxtZXNzYWdlVmFyaWFibGVzJiYodmFyaWFibGVzPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx2YXJpYWJsZXMpLG1lc3NhZ2VWYXJpYWJsZXMpKSx3cmFwQ1NTVmFyKHJlYWN0LmNyZWF0ZUVsZW1lbnQocmNfZmllbGRfZm9ybV9lcy5nTixPYmplY3QuYXNzaWduKHt9LHByb3BzLHttZXNzYWdlVmFyaWFibGVzOnZhcmlhYmxlcyx0cmlnZ2VyOnRyaWdnZXIsdmFsaWRhdGVUcmlnZ2VyOm1lcmdlZFZhbGlkYXRlVHJpZ2dlcixvbk1ldGFDaGFuZ2U6b25NZXRhQ2hhbmdlfSksKGNvbnRyb2wscmVuZGVyTWV0YSxjb250ZXh0KT0+e2xldCBtZXJnZWROYW1lPXRvQXJyYXkobmFtZSkubGVuZ3RoJiZyZW5kZXJNZXRhP3JlbmRlck1ldGEubmFtZTpbXSxmaWVsZElkPWdldEZpZWxkSWQobWVyZ2VkTmFtZSxmb3JtTmFtZSksaXNSZXF1aXJlZD12b2lkIDAhPT1yZXF1aXJlZD9yZXF1aXJlZDohIShudWxsPT1ydWxlcz92b2lkIDA6cnVsZXMuc29tZShydWxlPT57aWYocnVsZSYmIm9iamVjdCI9PXR5cGVvZiBydWxlJiZydWxlLnJlcXVpcmVkJiYhcnVsZS53YXJuaW5nT25seSlyZXR1cm4hMDtpZigiZnVuY3Rpb24iPT10eXBlb2YgcnVsZSl7bGV0IHJ1bGVFbnRpdHk9cnVsZShjb250ZXh0KTtyZXR1cm4obnVsbD09cnVsZUVudGl0eT92b2lkIDA6cnVsZUVudGl0eS5yZXF1aXJlZCkmJiEobnVsbD09cnVsZUVudGl0eT92b2lkIDA6cnVsZUVudGl0eS53YXJuaW5nT25seSl9cmV0dXJuITF9KSksbWVyZ2VkQ29udHJvbD1PYmplY3QuYXNzaWduKHt9LGNvbnRyb2wpLGNoaWxkTm9kZT1udWxsO2lmKEFycmF5LmlzQXJyYXkobWVyZ2VkQ2hpbGRyZW4pJiZoYXNOYW1lKWNoaWxkTm9kZT1tZXJnZWRDaGlsZHJlbjtlbHNlIGlmKGlzUmVuZGVyUHJvcHMmJighKHNob3VsZFVwZGF0ZXx8ZGVwZW5kZW5jaWVzKXx8aGFzTmFtZSkpO2Vsc2UgaWYoIWRlcGVuZGVuY2llc3x8aXNSZW5kZXJQcm9wc3x8aGFzTmFtZSl7aWYocmVhY3QuaXNWYWxpZEVsZW1lbnQobWVyZ2VkQ2hpbGRyZW4pKXtsZXQgY2hpbGRQcm9wcz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbWVyZ2VkQ2hpbGRyZW4ucHJvcHMpLG1lcmdlZENvbnRyb2wpO2lmKGNoaWxkUHJvcHMuaWR8fChjaGlsZFByb3BzLmlkPWZpZWxkSWQpLGhlbHB8fG1lcmdlZEVycm9ycy5sZW5ndGg+MHx8bWVyZ2VkV2FybmluZ3MubGVuZ3RoPjB8fHByb3BzLmV4dHJhKXtsZXQgZGVzY3JpYmVkYnlBcnI9W107KGhlbHB8fG1lcmdlZEVycm9ycy5sZW5ndGg+MCkmJmRlc2NyaWJlZGJ5QXJyLnB1c2goYCR7ZmllbGRJZH1faGVscGApLHByb3BzLmV4dHJhJiZkZXNjcmliZWRieUFyci5wdXNoKGAke2ZpZWxkSWR9X2V4dHJhYCksY2hpbGRQcm9wc1siYXJpYS1kZXNjcmliZWRieSJdPWRlc2NyaWJlZGJ5QXJyLmpvaW4oIiAiKX1tZXJnZWRFcnJvcnMubGVuZ3RoPjAmJihjaGlsZFByb3BzWyJhcmlhLWludmFsaWQiXT0idHJ1ZSIpLGlzUmVxdWlyZWQmJihjaGlsZFByb3BzWyJhcmlhLXJlcXVpcmVkIl09InRydWUiKSwoMCxyZWYuWXIpKG1lcmdlZENoaWxkcmVuKSYmKGNoaWxkUHJvcHMucmVmPWdldEl0ZW1SZWYobWVyZ2VkTmFtZSxtZXJnZWRDaGlsZHJlbikpO2xldCB0cmlnZ2Vycz1uZXcgU2V0KFtdLmNvbmNhdCgoMCx0b0NvbnN1bWFibGVBcnJheS5aKSh0b0FycmF5KHRyaWdnZXIpKSwoMCx0b0NvbnN1bWFibGVBcnJheS5aKSh0b0FycmF5KG1lcmdlZFZhbGlkYXRlVHJpZ2dlcikpKSk7dHJpZ2dlcnMuZm9yRWFjaChldmVudE5hbWU9PntjaGlsZFByb3BzW2V2ZW50TmFtZV09ZnVuY3Rpb24oKXtmb3IodmFyIF9hLF9iLF9jLF9sZW49YXJndW1lbnRzLmxlbmd0aCxhcmdzPUFycmF5KF9sZW4pLF9rZXk9MDtfa2V5PF9sZW47X2tleSsrKWFyZ3NbX2tleV09YXJndW1lbnRzW19rZXldO251bGw9PT0oX2E9bWVyZ2VkQ29udHJvbFtldmVudE5hbWVdKXx8dm9pZCAwPT09X2F8fF9hLmNhbGwuYXBwbHkoX2EsW21lcmdlZENvbnRyb2xdLmNvbmNhdChhcmdzKSksbnVsbD09PShfYz0oX2I9bWVyZ2VkQ2hpbGRyZW4ucHJvcHMpW2V2ZW50TmFtZV0pfHx2b2lkIDA9PT1fY3x8X2MuY2FsbC5hcHBseShfYyxbX2JdLmNvbmNhdChhcmdzKSl9fSk7bGV0IHdhdGNoaW5nQ2hpbGRQcm9wcz1bY2hpbGRQcm9wc1siYXJpYS1yZXF1aXJlZCJdLGNoaWxkUHJvcHNbImFyaWEtaW52YWxpZCJdLGNoaWxkUHJvcHNbImFyaWEtZGVzY3JpYmVkYnkiXV07Y2hpbGROb2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQoTWVtb0lucHV0LHtjb250cm9sOm1lcmdlZENvbnRyb2wsdXBkYXRlOm1lcmdlZENoaWxkcmVuLGNoaWxkUHJvcHM6d2F0Y2hpbmdDaGlsZFByb3BzfSwoMCxyZWFjdE5vZGUuVG0pKG1lcmdlZENoaWxkcmVuLGNoaWxkUHJvcHMpKX1lbHNlIGNoaWxkTm9kZT1pc1JlbmRlclByb3BzJiYoc2hvdWxkVXBkYXRlfHxkZXBlbmRlbmNpZXMpJiYhaGFzTmFtZT9tZXJnZWRDaGlsZHJlbihjb250ZXh0KTptZXJnZWRDaGlsZHJlbn1yZXR1cm4gcmVuZGVyTGF5b3V0KGNoaWxkTm9kZSxmaWVsZElkLGlzUmVxdWlyZWQpfSkpfTtGb3JtSXRlbS51c2VTdGF0dXM9dXNlRm9ybUl0ZW1TdGF0dXM7dmFyIEZvcm1MaXN0X3Jlc3Q9ZnVuY3Rpb24ocyxlKXt2YXIgdD17fTtmb3IodmFyIHAgaW4gcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxwKSYmMD5lLmluZGV4T2YocCkmJih0W3BdPXNbcF0pO2lmKG51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKWZvcih2YXIgaT0wLHA9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtpPHAubGVuZ3RoO2krKykwPmUuaW5kZXhPZihwW2ldKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMscFtpXSkmJih0W3BbaV1dPXNbcFtpXV0pO3JldHVybiB0fTtsZXQgRm9ybUxpc3Q9X2E9Pnt2YXJ7cHJlZml4Q2xzOmN1c3RvbWl6ZVByZWZpeENscyxjaGlsZHJlbn09X2EscHJvcHM9Rm9ybUxpc3RfcmVzdChfYSxbInByZWZpeENscyIsImNoaWxkcmVuIl0pO2xldHtnZXRQcmVmaXhDbHN9PXJlYWN0LnVzZUNvbnRleHQoY29uZmlnX3Byb3ZpZGVyX2NvbnRleHQuRV8pLHByZWZpeENscz1nZXRQcmVmaXhDbHMoImZvcm0iLGN1c3RvbWl6ZVByZWZpeENscyksY29udGV4dFZhbHVlPXJlYWN0LnVzZU1lbW8oKCk9Pih7cHJlZml4Q2xzLHN0YXR1czoiZXJyb3IifSksW3ByZWZpeENsc10pO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KHJjX2ZpZWxkX2Zvcm1fZXMuYVYsT2JqZWN0LmFzc2lnbih7fSxwcm9wcyksKGZpZWxkcyxvcGVyYXRpb24sbWV0YSk9PnJlYWN0LmNyZWF0ZUVsZW1lbnQoY29udGV4dC5Say5Qcm92aWRlcix7dmFsdWU6Y29udGV4dFZhbHVlfSxjaGlsZHJlbihmaWVsZHMubWFwKGZpZWxkPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZmllbGQpLHtmaWVsZEtleTpmaWVsZC5rZXl9KSksb3BlcmF0aW9uLHtlcnJvcnM6bWV0YS5lcnJvcnMsd2FybmluZ3M6bWV0YS53YXJuaW5nc30pKSl9LGVzX2Zvcm1fRm9ybT1Gb3JtO2VzX2Zvcm1fRm9ybS5JdGVtPUZvcm1JdGVtLGVzX2Zvcm1fRm9ybS5MaXN0PUZvcm1MaXN0LGVzX2Zvcm1fRm9ybS5FcnJvckxpc3Q9RXJyb3JMaXN0LGVzX2Zvcm1fRm9ybS51c2VGb3JtPXVzZUZvcm0sZXNfZm9ybV9Gb3JtLnVzZUZvcm1JbnN0YW5jZT1mdW5jdGlvbigpe2xldHtmb3JtfT1yZWFjdC51c2VDb250ZXh0KGNvbnRleHQucTMpO3JldHVybiBmb3JtfSxlc19mb3JtX0Zvcm0udXNlV2F0Y2g9cmNfZmllbGRfZm9ybV9lcy5xbyxlc19mb3JtX0Zvcm0uUHJvdmlkZXI9Y29udGV4dC5SVixlc19mb3JtX0Zvcm0uY3JlYXRlPSgpPT57fTt2YXIgZXNfZm9ybT1lc19mb3JtX0Zvcm19LDM3OTIwOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO3ZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpO19fd2VicGFja19leHBvcnRzX18uWj0oMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmNyZWF0ZUNvbnRleHQpKHZvaWQgMCl9LDk5MTM0OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO3ZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpO2xldCBSb3dDb250ZXh0PSgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uY3JlYXRlQ29udGV4dCkoe30pO19fd2VicGFja19leHBvcnRzX18uWj1Sb3dDb250ZXh0fSwyMTU4NDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0Ijt2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxjbGFzc25hbWVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXygxMzE0NCksY2xhc3NuYW1lc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGNsYXNzbmFtZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyksX2NvbmZpZ19wcm92aWRlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fPV9fd2VicGFja19yZXF1aXJlX18oNTMxMjQpLF9Sb3dDb250ZXh0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX189X193ZWJwYWNrX3JlcXVpcmVfXyg5OTEzNCksX3N0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X189X193ZWJwYWNrX3JlcXVpcmVfXyg2OTk5KSxfX3Jlc3Q9ZnVuY3Rpb24ocyxlKXt2YXIgdD17fTtmb3IodmFyIHAgaW4gcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxwKSYmMD5lLmluZGV4T2YocCkmJih0W3BdPXNbcF0pO2lmKG51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKWZvcih2YXIgaT0wLHA9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtpPHAubGVuZ3RoO2krKykwPmUuaW5kZXhPZihwW2ldKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMscFtpXSkmJih0W3BbaV1dPXNbcFtpXV0pO3JldHVybiB0fTtmdW5jdGlvbiBwYXJzZUZsZXgoZmxleCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBmbGV4P2Ake2ZsZXh9ICR7ZmxleH0gYXV0b2A6L15cZCsoXC5cZCspPyhweHxlbXxyZW18JSkkLy50ZXN0KGZsZXgpP2AwIDAgJHtmbGV4fWA6ZmxleH1sZXQgc2l6ZXM9WyJ4cyIsInNtIiwibWQiLCJsZyIsInhsIiwieHhsIl0sQ29sPXJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uZm9yd2FyZFJlZigocHJvcHMscmVmKT0+e2xldHtnZXRQcmVmaXhDbHMsZGlyZWN0aW9ufT1yZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnVzZUNvbnRleHQoX2NvbmZpZ19wcm92aWRlcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkVfKSx7Z3V0dGVyLHdyYXB9PXJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlQ29udGV4dChfUm93Q29udGV4dF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLlopLHtwcmVmaXhDbHM6Y3VzdG9taXplUHJlZml4Q2xzLHNwYW4sb3JkZXIsb2Zmc2V0LHB1c2gscHVsbCxjbGFzc05hbWUsY2hpbGRyZW4sZmxleCxzdHlsZX09cHJvcHMsb3RoZXJzPV9fcmVzdChwcm9wcyxbInByZWZpeENscyIsInNwYW4iLCJvcmRlciIsIm9mZnNldCIsInB1c2giLCJwdWxsIiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJmbGV4Iiwic3R5bGUiXSkscHJlZml4Q2xzPWdldFByZWZpeENscygiY29sIixjdXN0b21pemVQcmVmaXhDbHMpLFt3cmFwQ1NTVmFyLGhhc2hJZCxjc3NWYXJDbHNdPSgwLF9zdHlsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmNHKShwcmVmaXhDbHMpLHNpemVTdHlsZT17fSxzaXplQ2xhc3NPYmo9e307c2l6ZXMuZm9yRWFjaChzaXplPT57bGV0IHNpemVQcm9wcz17fSxwcm9wU2l6ZT1wcm9wc1tzaXplXTsibnVtYmVyIj09dHlwZW9mIHByb3BTaXplP3NpemVQcm9wcy5zcGFuPXByb3BTaXplOiJvYmplY3QiPT10eXBlb2YgcHJvcFNpemUmJihzaXplUHJvcHM9cHJvcFNpemV8fHt9KSxkZWxldGUgb3RoZXJzW3NpemVdLHNpemVDbGFzc09iaj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sc2l6ZUNsYXNzT2JqKSx7W2Ake3ByZWZpeENsc30tJHtzaXplfS0ke3NpemVQcm9wcy5zcGFufWBdOnZvaWQgMCE9PXNpemVQcm9wcy5zcGFuLFtgJHtwcmVmaXhDbHN9LSR7c2l6ZX0tb3JkZXItJHtzaXplUHJvcHMub3JkZXJ9YF06c2l6ZVByb3BzLm9yZGVyfHwwPT09c2l6ZVByb3BzLm9yZGVyLFtgJHtwcmVmaXhDbHN9LSR7c2l6ZX0tb2Zmc2V0LSR7c2l6ZVByb3BzLm9mZnNldH1gXTpzaXplUHJvcHMub2Zmc2V0fHwwPT09c2l6ZVByb3BzLm9mZnNldCxbYCR7cHJlZml4Q2xzfS0ke3NpemV9LXB1c2gtJHtzaXplUHJvcHMucHVzaH1gXTpzaXplUHJvcHMucHVzaHx8MD09PXNpemVQcm9wcy5wdXNoLFtgJHtwcmVmaXhDbHN9LSR7c2l6ZX0tcHVsbC0ke3NpemVQcm9wcy5wdWxsfWBdOnNpemVQcm9wcy5wdWxsfHwwPT09c2l6ZVByb3BzLnB1bGwsW2Ake3ByZWZpeENsc30tcnRsYF06InJ0bCI9PT1kaXJlY3Rpb259KSxzaXplUHJvcHMuZmxleCYmKHNpemVDbGFzc09ialtgJHtwcmVmaXhDbHN9LSR7c2l6ZX0tZmxleGBdPSEwLHNpemVTdHlsZVtgLS0ke3ByZWZpeENsc30tJHtzaXplfS1mbGV4YF09cGFyc2VGbGV4KHNpemVQcm9wcy5mbGV4KSl9KTtsZXQgY2xhc3Nlcz1jbGFzc25hbWVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdCgpKHByZWZpeENscyx7W2Ake3ByZWZpeENsc30tJHtzcGFufWBdOnZvaWQgMCE9PXNwYW4sW2Ake3ByZWZpeENsc30tb3JkZXItJHtvcmRlcn1gXTpvcmRlcixbYCR7cHJlZml4Q2xzfS1vZmZzZXQtJHtvZmZzZXR9YF06b2Zmc2V0LFtgJHtwcmVmaXhDbHN9LXB1c2gtJHtwdXNofWBdOnB1c2gsW2Ake3ByZWZpeENsc30tcHVsbC0ke3B1bGx9YF06cHVsbH0sY2xhc3NOYW1lLHNpemVDbGFzc09iaixoYXNoSWQsY3NzVmFyQ2xzKSxtZXJnZWRTdHlsZT17fTtpZihndXR0ZXImJmd1dHRlclswXT4wKXtsZXQgaG9yaXpvbnRhbEd1dHRlcj1ndXR0ZXJbMF0vMjttZXJnZWRTdHlsZS5wYWRkaW5nTGVmdD1ob3Jpem9udGFsR3V0dGVyLG1lcmdlZFN0eWxlLnBhZGRpbmdSaWdodD1ob3Jpem9udGFsR3V0dGVyfXJldHVybiBmbGV4JiYobWVyZ2VkU3R5bGUuZmxleD1wYXJzZUZsZXgoZmxleCksITEhPT13cmFwfHxtZXJnZWRTdHlsZS5taW5XaWR0aHx8KG1lcmdlZFN0eWxlLm1pbldpZHRoPTApKSx3cmFwQ1NTVmFyKHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uY3JlYXRlRWxlbWVudCgiZGl2IixPYmplY3QuYXNzaWduKHt9LG90aGVycyx7c3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbWVyZ2VkU3R5bGUpLHN0eWxlKSxzaXplU3R5bGUpLGNsYXNzTmFtZTpjbGFzc2VzLHJlZjpyZWZ9KSxjaGlsZHJlbikpfSk7X193ZWJwYWNrX2V4cG9ydHNfXy5aPUNvbH0sNjg4MjE6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gaG9va3NfdXNlQnJlYWtwb2ludH19KTt2YXIgcmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksdXNlTGF5b3V0RWZmZWN0PV9fd2VicGFja19yZXF1aXJlX18oMTQwNzUpLF91dGlsX3Jlc3BvbnNpdmVPYnNlcnZlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDEzOTEzKSxob29rc191c2VCcmVha3BvaW50PWZ1bmN0aW9uKCl7bGV0IHJlZnJlc2hPbkNoYW5nZT0hKGFyZ3VtZW50cy5sZW5ndGg+MCl8fHZvaWQgMD09PWFyZ3VtZW50c1swXXx8YXJndW1lbnRzWzBdLGRlZmF1bHRTY3JlZW5zPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxzY3JlZW5zUmVmPSgwLHJlYWN0LnVzZVJlZikoZGVmYXVsdFNjcmVlbnMpLGZvcmNlVXBkYXRlPWZ1bmN0aW9uKCl7bGV0Wyxmb3JjZVVwZGF0ZV09cmVhY3QudXNlUmVkdWNlcih4PT54KzEsMCk7cmV0dXJuIGZvcmNlVXBkYXRlfSgpLHJlc3BvbnNpdmVPYnNlcnZlcj0oMCxfdXRpbF9yZXNwb25zaXZlT2JzZXJ2ZXIuWlApKCk7cmV0dXJuKDAsdXNlTGF5b3V0RWZmZWN0LlopKCgpPT57bGV0IHRva2VuPXJlc3BvbnNpdmVPYnNlcnZlci5zdWJzY3JpYmUoc3VwcG9ydFNjcmVlbnM9PntzY3JlZW5zUmVmLmN1cnJlbnQ9c3VwcG9ydFNjcmVlbnMscmVmcmVzaE9uQ2hhbmdlJiZmb3JjZVVwZGF0ZSgpfSk7cmV0dXJuKCk9PnJlc3BvbnNpdmVPYnNlcnZlci51bnN1YnNjcmliZSh0b2tlbil9LFtdKSxzY3JlZW5zUmVmLmN1cnJlbnR9fSw3NTMwMjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0Ijt2YXIgX2hvb2tzX3VzZUJyZWFrcG9pbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY4ODIxKTtfX3dlYnBhY2tfZXhwb3J0c19fLlpQPXt1c2VCcmVha3BvaW50OmZ1bmN0aW9uKCl7cmV0dXJuKDAsX2hvb2tzX3VzZUJyZWFrcG9pbnRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKSgpfX19LDE3NjIxOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHJvd319KTt2YXIgcmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksY2xhc3NuYW1lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDEzMTQ0KSxjbGFzc25hbWVzX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGNsYXNzbmFtZXMpLHJlc3BvbnNpdmVPYnNlcnZlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDEzOTEzKSxjb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oNTMxMjQpLHVzZUJyZWFrcG9pbnQ9X193ZWJwYWNrX3JlcXVpcmVfXyg2ODgyMSksUm93Q29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDk5MTM0KSxncmlkX3N0eWxlPV9fd2VicGFja19yZXF1aXJlX18oNjk5OSksX19yZXN0PWZ1bmN0aW9uKHMsZSl7dmFyIHQ9e307Zm9yKHZhciBwIGluIHMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMscCkmJjA+ZS5pbmRleE9mKHApJiYodFtwXT1zW3BdKTtpZihudWxsIT1zJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scylmb3IodmFyIGk9MCxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7aTxwLmxlbmd0aDtpKyspMD5lLmluZGV4T2YocFtpXSkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLHBbaV0pJiYodFtwW2ldXT1zW3BbaV1dKTtyZXR1cm4gdH07ZnVuY3Rpb24gdXNlTWVyZ2VkUHJvcEJ5U2NyZWVuKG9yaVByb3Asc2NyZWVuKXtsZXRbcHJvcCxzZXRQcm9wXT1yZWFjdC51c2VTdGF0ZSgic3RyaW5nIj09dHlwZW9mIG9yaVByb3A/b3JpUHJvcDoiIiksY2FsY01lcmdlZEFsaWduT3JKdXN0aWZ5PSgpPT57aWYoInN0cmluZyI9PXR5cGVvZiBvcmlQcm9wJiZzZXRQcm9wKG9yaVByb3ApLCJvYmplY3QiPT10eXBlb2Ygb3JpUHJvcClmb3IobGV0IGk9MDtpPHJlc3BvbnNpdmVPYnNlcnZlci5jNC5sZW5ndGg7aSsrKXtsZXQgYnJlYWtwb2ludD1yZXNwb25zaXZlT2JzZXJ2ZXIuYzRbaV07aWYoIXNjcmVlbnx8IXNjcmVlblticmVha3BvaW50XSljb250aW51ZTtsZXQgY3VyVmFsPW9yaVByb3BbYnJlYWtwb2ludF07aWYodm9pZCAwIT09Y3VyVmFsKXtzZXRQcm9wKGN1clZhbCk7cmV0dXJufX19O3JldHVybiByZWFjdC51c2VFZmZlY3QoKCk9PntjYWxjTWVyZ2VkQWxpZ25Pckp1c3RpZnkoKX0sW0pTT04uc3RyaW5naWZ5KG9yaVByb3ApLHNjcmVlbl0pLHByb3B9bGV0IFJvdz1yZWFjdC5mb3J3YXJkUmVmKChwcm9wcyxyZWYpPT57bGV0e3ByZWZpeENsczpjdXN0b21pemVQcmVmaXhDbHMsanVzdGlmeSxhbGlnbixjbGFzc05hbWUsc3R5bGUsY2hpbGRyZW4sZ3V0dGVyPTAsd3JhcH09cHJvcHMsb3RoZXJzPV9fcmVzdChwcm9wcyxbInByZWZpeENscyIsImp1c3RpZnkiLCJhbGlnbiIsImNsYXNzTmFtZSIsInN0eWxlIiwiY2hpbGRyZW4iLCJndXR0ZXIiLCJ3cmFwIl0pLHtnZXRQcmVmaXhDbHMsZGlyZWN0aW9ufT1yZWFjdC51c2VDb250ZXh0KGNvbnRleHQuRV8pLHNjcmVlbnM9KDAsdXNlQnJlYWtwb2ludC5aKSghMCxudWxsKSxtZXJnZWRBbGlnbj11c2VNZXJnZWRQcm9wQnlTY3JlZW4oYWxpZ24sc2NyZWVucyksbWVyZ2VkSnVzdGlmeT11c2VNZXJnZWRQcm9wQnlTY3JlZW4oanVzdGlmeSxzY3JlZW5zKSxwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJyb3ciLGN1c3RvbWl6ZVByZWZpeENscyksW3dyYXBDU1NWYXIsaGFzaElkLGNzc1ZhckNsc109KDAsZ3JpZF9zdHlsZS5WTSkocHJlZml4Q2xzKSxndXR0ZXJzPWZ1bmN0aW9uKGd1dHRlcixzY3JlZW5zKXtsZXQgcmVzdWx0cz1bdm9pZCAwLHZvaWQgMF0sbm9ybWFsaXplZEd1dHRlcj1BcnJheS5pc0FycmF5KGd1dHRlcik/Z3V0dGVyOltndXR0ZXIsdm9pZCAwXSxtZXJnZWRTY3JlZW5zPXNjcmVlbnN8fHt4czohMCxzbTohMCxtZDohMCxsZzohMCx4bDohMCx4eGw6ITB9O3JldHVybiBub3JtYWxpemVkR3V0dGVyLmZvckVhY2goKGcsaW5kZXgpPT57aWYoIm9iamVjdCI9PXR5cGVvZiBnJiZudWxsIT09Zylmb3IobGV0IGk9MDtpPHJlc3BvbnNpdmVPYnNlcnZlci5jNC5sZW5ndGg7aSsrKXtsZXQgYnJlYWtwb2ludD1yZXNwb25zaXZlT2JzZXJ2ZXIuYzRbaV07aWYobWVyZ2VkU2NyZWVuc1ticmVha3BvaW50XSYmdm9pZCAwIT09Z1ticmVha3BvaW50XSl7cmVzdWx0c1tpbmRleF09Z1ticmVha3BvaW50XTticmVha319ZWxzZSByZXN1bHRzW2luZGV4XT1nfSkscmVzdWx0c30oZ3V0dGVyLHNjcmVlbnMpLGNsYXNzZXM9Y2xhc3NuYW1lc19kZWZhdWx0KCkocHJlZml4Q2xzLHtbYCR7cHJlZml4Q2xzfS1uby13cmFwYF06ITE9PT13cmFwLFtgJHtwcmVmaXhDbHN9LSR7bWVyZ2VkSnVzdGlmeX1gXTptZXJnZWRKdXN0aWZ5LFtgJHtwcmVmaXhDbHN9LSR7bWVyZ2VkQWxpZ259YF06bWVyZ2VkQWxpZ24sW2Ake3ByZWZpeENsc30tcnRsYF06InJ0bCI9PT1kaXJlY3Rpb259LGNsYXNzTmFtZSxoYXNoSWQsY3NzVmFyQ2xzKSxyb3dTdHlsZT17fSxob3Jpem9udGFsR3V0dGVyPW51bGwhPWd1dHRlcnNbMF0mJmd1dHRlcnNbMF0+MD8tKGd1dHRlcnNbMF0vMik6dm9pZCAwO2hvcml6b250YWxHdXR0ZXImJihyb3dTdHlsZS5tYXJnaW5MZWZ0PWhvcml6b250YWxHdXR0ZXIscm93U3R5bGUubWFyZ2luUmlnaHQ9aG9yaXpvbnRhbEd1dHRlcik7bGV0W2d1dHRlckgsZ3V0dGVyVl09Z3V0dGVycztyb3dTdHlsZS5yb3dHYXA9Z3V0dGVyVjtsZXQgcm93Q29udGV4dD1yZWFjdC51c2VNZW1vKCgpPT4oe2d1dHRlcjpbZ3V0dGVySCxndXR0ZXJWXSx3cmFwfSksW2d1dHRlckgsZ3V0dGVyVix3cmFwXSk7cmV0dXJuIHdyYXBDU1NWYXIocmVhY3QuY3JlYXRlRWxlbWVudChSb3dDb250ZXh0LlouUHJvdmlkZXIse3ZhbHVlOnJvd0NvbnRleHR9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIsT2JqZWN0LmFzc2lnbih7fSxvdGhlcnMse2NsYXNzTmFtZTpjbGFzc2VzLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxyb3dTdHlsZSksc3R5bGUpLHJlZjpyZWZ9KSxjaGlsZHJlbikpKX0pO3ZhciByb3c9Um93fSw2OTk5OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtWTTpmdW5jdGlvbigpe3JldHVybiB1c2VSb3dTdHlsZX0sY0c6ZnVuY3Rpb24oKXtyZXR1cm4gdXNlQ29sU3R5bGV9LGhkOmZ1bmN0aW9uKCl7cmV0dXJuIGdldE1lZGlhU2l6ZX19KTt2YXIgX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNDQ4OTkpLF90aGVtZV9pbnRlcm5hbF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oODM1NTkpLF90aGVtZV9pbnRlcm5hbF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fPV9fd2VicGFja19yZXF1aXJlX18oNDI1NTkpO2xldCBnZW5HcmlkUm93U3R5bGU9dG9rZW49PntsZXR7Y29tcG9uZW50Q2xzfT10b2tlbjtyZXR1cm57W2NvbXBvbmVudENsc106e2Rpc3BsYXk6ImZsZXgiLGZsZXhGbG93OiJyb3cgd3JhcCIsbWluV2lkdGg6MCwiJjo6YmVmb3JlLCAmOjphZnRlciI6e2Rpc3BsYXk6ImZsZXgifSwiJi1uby13cmFwIjp7ZmxleFdyYXA6Im5vd3JhcCJ9LCImLXN0YXJ0Ijp7anVzdGlmeUNvbnRlbnQ6ImZsZXgtc3RhcnQifSwiJi1jZW50ZXIiOntqdXN0aWZ5Q29udGVudDoiY2VudGVyIn0sIiYtZW5kIjp7anVzdGlmeUNvbnRlbnQ6ImZsZXgtZW5kIn0sIiYtc3BhY2UtYmV0d2VlbiI6e2p1c3RpZnlDb250ZW50OiJzcGFjZS1iZXR3ZWVuIn0sIiYtc3BhY2UtYXJvdW5kIjp7anVzdGlmeUNvbnRlbnQ6InNwYWNlLWFyb3VuZCJ9LCImLXNwYWNlLWV2ZW5seSI6e2p1c3RpZnlDb250ZW50OiJzcGFjZS1ldmVubHkifSwiJi10b3AiOnthbGlnbkl0ZW1zOiJmbGV4LXN0YXJ0In0sIiYtbWlkZGxlIjp7YWxpZ25JdGVtczoiY2VudGVyIn0sIiYtYm90dG9tIjp7YWxpZ25JdGVtczoiZmxleC1lbmQifX19fSxnZW5HcmlkQ29sU3R5bGU9dG9rZW49PntsZXR7Y29tcG9uZW50Q2xzfT10b2tlbjtyZXR1cm57W2NvbXBvbmVudENsc106e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsbWF4V2lkdGg6IjEwMCUiLG1pbkhlaWdodDoxfX19LGdlbkxvb3BHcmlkQ29sdW1uc1N0eWxlPSh0b2tlbixzaXplQ2xzKT0+e2xldHtwcmVmaXhDbHMsY29tcG9uZW50Q2xzLGdyaWRDb2x1bW5zfT10b2tlbixncmlkQ29sdW1uc1N0eWxlPXt9O2ZvcihsZXQgaT1ncmlkQ29sdW1ucztpPj0wO2ktLSkwPT09aT8oZ3JpZENvbHVtbnNTdHlsZVtgJHtjb21wb25lbnRDbHN9JHtzaXplQ2xzfS0ke2l9YF09e2Rpc3BsYXk6Im5vbmUifSxncmlkQ29sdW1uc1N0eWxlW2Ake2NvbXBvbmVudENsc30tcHVzaC0ke2l9YF09e2luc2V0SW5saW5lU3RhcnQ6ImF1dG8ifSxncmlkQ29sdW1uc1N0eWxlW2Ake2NvbXBvbmVudENsc30tcHVsbC0ke2l9YF09e2luc2V0SW5saW5lRW5kOiJhdXRvIn0sZ3JpZENvbHVtbnNTdHlsZVtgJHtjb21wb25lbnRDbHN9JHtzaXplQ2xzfS1wdXNoLSR7aX1gXT17aW5zZXRJbmxpbmVTdGFydDoiYXV0byJ9LGdyaWRDb2x1bW5zU3R5bGVbYCR7Y29tcG9uZW50Q2xzfSR7c2l6ZUNsc30tcHVsbC0ke2l9YF09e2luc2V0SW5saW5lRW5kOiJhdXRvIn0sZ3JpZENvbHVtbnNTdHlsZVtgJHtjb21wb25lbnRDbHN9JHtzaXplQ2xzfS1vZmZzZXQtJHtpfWBdPXttYXJnaW5JbmxpbmVTdGFydDowfSxncmlkQ29sdW1uc1N0eWxlW2Ake2NvbXBvbmVudENsc30ke3NpemVDbHN9LW9yZGVyLSR7aX1gXT17b3JkZXI6MH0pOihncmlkQ29sdW1uc1N0eWxlW2Ake2NvbXBvbmVudENsc30ke3NpemVDbHN9LSR7aX1gXT1beyItLWFudC1kaXNwbGF5IjoiYmxvY2siLGRpc3BsYXk6ImJsb2NrIn0se2Rpc3BsYXk6InZhcigtLWFudC1kaXNwbGF5KSIsZmxleDpgMCAwICR7aS9ncmlkQ29sdW1ucyoxMDB9JWAsbWF4V2lkdGg6YCR7aS9ncmlkQ29sdW1ucyoxMDB9JWB9XSxncmlkQ29sdW1uc1N0eWxlW2Ake2NvbXBvbmVudENsc30ke3NpemVDbHN9LXB1c2gtJHtpfWBdPXtpbnNldElubGluZVN0YXJ0OmAke2kvZ3JpZENvbHVtbnMqMTAwfSVgfSxncmlkQ29sdW1uc1N0eWxlW2Ake2NvbXBvbmVudENsc30ke3NpemVDbHN9LXB1bGwtJHtpfWBdPXtpbnNldElubGluZUVuZDpgJHtpL2dyaWRDb2x1bW5zKjEwMH0lYH0sZ3JpZENvbHVtbnNTdHlsZVtgJHtjb21wb25lbnRDbHN9JHtzaXplQ2xzfS1vZmZzZXQtJHtpfWBdPXttYXJnaW5JbmxpbmVTdGFydDpgJHtpL2dyaWRDb2x1bW5zKjEwMH0lYH0sZ3JpZENvbHVtbnNTdHlsZVtgJHtjb21wb25lbnRDbHN9JHtzaXplQ2xzfS1vcmRlci0ke2l9YF09e29yZGVyOml9KTtyZXR1cm4gZ3JpZENvbHVtbnNTdHlsZVtgJHtjb21wb25lbnRDbHN9JHtzaXplQ2xzfS1mbGV4YF09e2ZsZXg6YHZhcigtLSR7cHJlZml4Q2xzfSR7c2l6ZUNsc30tZmxleClgfSxncmlkQ29sdW1uc1N0eWxlfSxnZW5HcmlkU3R5bGU9KHRva2VuLHNpemVDbHMpPT5nZW5Mb29wR3JpZENvbHVtbnNTdHlsZSh0b2tlbixzaXplQ2xzKSxnZW5HcmlkTWVkaWFTdHlsZT0odG9rZW4sc2NyZWVuU2l6ZSxzaXplQ2xzKT0+KHtbYEBtZWRpYSAobWluLXdpZHRoOiAkeygwLF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5iZikoc2NyZWVuU2l6ZSl9KWBdOk9iamVjdC5hc3NpZ24oe30sZ2VuR3JpZFN0eWxlKHRva2VuLHNpemVDbHMpKX0pLHByZXBhcmVSb3dDb21wb25lbnRUb2tlbj0oKT0+KHt9KSxwcmVwYXJlQ29sQ29tcG9uZW50VG9rZW49KCk9Pih7fSksdXNlUm93U3R5bGU9KDAsX3RoZW1lX2ludGVybmFsX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uSSQpKCJHcmlkIixnZW5HcmlkUm93U3R5bGUscHJlcGFyZVJvd0NvbXBvbmVudFRva2VuKSxnZXRNZWRpYVNpemU9dG9rZW49PntsZXQgbWVkaWFTaXplc01hcD17eHM6dG9rZW4uc2NyZWVuWFNNaW4sc206dG9rZW4uc2NyZWVuU01NaW4sbWQ6dG9rZW4uc2NyZWVuTURNaW4sbGc6dG9rZW4uc2NyZWVuTEdNaW4seGw6dG9rZW4uc2NyZWVuWExNaW4seHhsOnRva2VuLnNjcmVlblhYTE1pbn07cmV0dXJuIG1lZGlhU2l6ZXNNYXB9LHVzZUNvbFN0eWxlPSgwLF90aGVtZV9pbnRlcm5hbF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkkkKSgiR3JpZCIsdG9rZW49PntsZXQgZ3JpZFRva2VuPSgwLF90aGVtZV9pbnRlcm5hbF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLklYKSh0b2tlbix7Z3JpZENvbHVtbnM6MjR9KSxncmlkTWVkaWFTaXplc01hcD1nZXRNZWRpYVNpemUoZ3JpZFRva2VuKTtyZXR1cm4gZGVsZXRlIGdyaWRNZWRpYVNpemVzTWFwLnhzLFtnZW5HcmlkQ29sU3R5bGUoZ3JpZFRva2VuKSxnZW5HcmlkU3R5bGUoZ3JpZFRva2VuLCIiKSxnZW5HcmlkU3R5bGUoZ3JpZFRva2VuLCIteHMiKSxPYmplY3Qua2V5cyhncmlkTWVkaWFTaXplc01hcCkubWFwKGtleT0+Z2VuR3JpZE1lZGlhU3R5bGUoZ3JpZFRva2VuLGdyaWRNZWRpYVNpemVzTWFwW2tleV0sYC0ke2tleX1gKSkucmVkdWNlKChwcmUsY3VyKT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHByZSksY3VyKSx7fSldfSxwcmVwYXJlQ29sQ29tcG9uZW50VG9rZW4pfSwxMzg4MDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBpbnB1dF9udW1iZXJ9fSk7dmFyIHJlYWN0PV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLERvd25PdXRsaW5lZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDgwODgyKSxlc21fZXh0ZW5kcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk3NDYwKSxhc25fVXBPdXRsaW5lZD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNODkwLjUgNzU1LjNMNTM3LjkgMjY5LjJjLTEyLjgtMTcuNi0zOS0xNy42LTUxLjcgMEwxMzMuNSA3NTUuM0E4IDggMCAwMDE0MCA3NjhoNzVjNS4xIDAgOS45LTIuNSAxMi45LTYuNkw1MTIgMzY5LjhsMjg0LjEgMzkxLjZjMyA0LjEgNy44IDYuNiAxMi45IDYuNmg3NWM2LjUgMCAxMC4zLTcuNCA2LjUtMTIuN3oifX1dfSxuYW1lOiJ1cCIsdGhlbWU6Im91dGxpbmVkIn0sQW50ZEljb249X193ZWJwYWNrX3JlcXVpcmVfXyg4NzU5MiksUmVmSWNvbj1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoQW50ZEljb24uWiwoMCxlc21fZXh0ZW5kcy5aKSh7fSxwcm9wcyx7cmVmOnJlZixpY29uOmFzbl9VcE91dGxpbmVkfSkpfSksY2xhc3NuYW1lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDEzMTQ0KSxjbGFzc25hbWVzX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGNsYXNzbmFtZXMpLGhlbHBlcnNfZXNtX2V4dGVuZHM9X193ZWJwYWNrX3JlcXVpcmVfXyg4NzQ2MiksZGVmaW5lUHJvcGVydHk9X193ZWJwYWNrX3JlcXVpcmVfXyg0OTQyKSxlc21fdHlwZW9mPV9fd2VicGFja19yZXF1aXJlX18oNzEwMDIpLHNsaWNlZFRvQXJyYXk9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzY4NSksb2JqZWN0V2l0aG91dFByb3BlcnRpZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg5MSksZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg5ODg0NyksbnVtYmVyVXRpbD1fX3dlYnBhY2tfcmVxdWlyZV9fKDU1MjUyKSxNaW5pRGVjaW1hbD1fX3dlYnBhY2tfcmVxdWlyZV9fKDgxNTApLG5vZGVfbW9kdWxlc19jbGFzc25hbWVzPV9fd2VicGFja19yZXF1aXJlX18oOTQxODQpLG5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKG5vZGVfbW9kdWxlc19jbGFzc25hbWVzKSxyY19pbnB1dF9lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3NjU2KSx1c2VJbnRlcm5hbExheW91dEVmZmVjdD0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93LmRvY3VtZW50JiZ3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudD9yZWFjdC51c2VMYXlvdXRFZmZlY3Q6cmVhY3QudXNlRWZmZWN0LHVzZUxheW91dEVmZmVjdD1mdW5jdGlvbihjYWxsYmFjayxkZXBzKXt2YXIgZmlyc3RNb3VudFJlZj1yZWFjdC51c2VSZWYoITApO3VzZUludGVybmFsTGF5b3V0RWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIGNhbGxiYWNrKGZpcnN0TW91bnRSZWYuY3VycmVudCl9LGRlcHMpLHVzZUludGVybmFsTGF5b3V0RWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIGZpcnN0TW91bnRSZWYuY3VycmVudD0hMSxmdW5jdGlvbigpe2ZpcnN0TW91bnRSZWYuY3VycmVudD0hMH19LFtdKX0sdXNlTGF5b3V0VXBkYXRlRWZmZWN0PWZ1bmN0aW9uKGNhbGxiYWNrLGRlcHMpe3VzZUxheW91dEVmZmVjdChmdW5jdGlvbihmaXJzdE1vdW50KXtpZighZmlyc3RNb3VudClyZXR1cm4gY2FsbGJhY2soKX0sZGVwcyl9O2Z1bmN0aW9uIHR5cGVvZl90eXBlb2Yob2JqKXtyZXR1cm4odHlwZW9mX3R5cGVvZj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihvYmope3JldHVybiB0eXBlb2Ygb2JqfTpmdW5jdGlvbihvYmope3JldHVybiBvYmomJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJm9iai5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmb2JqIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2Ygb2JqfSkob2JqKX1fX3dlYnBhY2tfcmVxdWlyZV9fKDI3MTgzKSxTeW1ib2wuZm9yKCJyZWFjdC5lbGVtZW50IiksU3ltYm9sLmZvcigicmVhY3QudHJhbnNpdGlvbmFsLmVsZW1lbnQiKSxTeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLHJlYWN0LnZlcnNpb24uc3BsaXQoIi4iKVswXTt2YXIgZmlsbFJlZj1mdW5jdGlvbihyZWYsbm9kZSl7ImZ1bmN0aW9uIj09dHlwZW9mIHJlZj9yZWYobm9kZSk6Im9iamVjdCI9PT10eXBlb2ZfdHlwZW9mKHJlZikmJnJlZiYmImN1cnJlbnQiaW4gcmVmJiYocmVmLmN1cnJlbnQ9bm9kZSl9LGNvbXBvc2VSZWY9ZnVuY3Rpb24oKXtmb3IodmFyIF9sZW49YXJndW1lbnRzLmxlbmd0aCxyZWZzPUFycmF5KF9sZW4pLF9rZXk9MDtfa2V5PF9sZW47X2tleSsrKXJlZnNbX2tleV09YXJndW1lbnRzW19rZXldO3ZhciByZWZMaXN0PXJlZnMuZmlsdGVyKEJvb2xlYW4pO3JldHVybiByZWZMaXN0Lmxlbmd0aDw9MT9yZWZMaXN0WzBdOmZ1bmN0aW9uKG5vZGUpe3JlZnMuZm9yRWFjaChmdW5jdGlvbihyZWYpe2ZpbGxSZWYocmVmLG5vZGUpfSl9fSx3YXJuZWQ9e30scHJlV2FybmluZ0Zucz1bXTtmdW5jdGlvbiB3YXJuaW5nKHZhbGlkLG1lc3NhZ2Upe31mdW5jdGlvbiBub3RlKHZhbGlkLG1lc3NhZ2Upe31mdW5jdGlvbiBjYWxsKG1ldGhvZCx2YWxpZCxtZXNzYWdlKXt2YWxpZHx8d2FybmVkW21lc3NhZ2VdfHwobWV0aG9kKCExLG1lc3NhZ2UpLHdhcm5lZFttZXNzYWdlXT0hMCl9ZnVuY3Rpb24gd2FybmluZ09uY2UodmFsaWQsbWVzc2FnZSl7Y2FsbCh3YXJuaW5nLHZhbGlkLG1lc3NhZ2UpfWZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KGFycixsZW4peyhudWxsPT1sZW58fGxlbj5hcnIubGVuZ3RoKSYmKGxlbj1hcnIubGVuZ3RoKTtmb3IodmFyIGk9MCxhcnIyPUFycmF5KGxlbik7aTxsZW47aSsrKWFycjJbaV09YXJyW2ldO3JldHVybiBhcnIyfXdhcm5pbmdPbmNlLnByZU1lc3NhZ2U9ZnVuY3Rpb24oZm4pe3ByZVdhcm5pbmdGbnMucHVzaChmbil9LHdhcm5pbmdPbmNlLnJlc2V0V2FybmVkPWZ1bmN0aW9uKCl7d2FybmVkPXt9fSx3YXJuaW5nT25jZS5ub3RlT25jZT1mdW5jdGlvbih2YWxpZCxtZXNzYWdlKXtjYWxsKG5vdGUsdmFsaWQsbWVzc2FnZSl9O3ZhciBpc01vYmlsZT1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgbmF2aWdhdG9yfHwidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdylyZXR1cm4hMTt2YXIgYWdlbnQ9bmF2aWdhdG9yLnVzZXJBZ2VudHx8bmF2aWdhdG9yLnZlbmRvcnx8d2luZG93Lm9wZXJhO3JldHVybi8oYW5kcm9pZHxiYlxkK3xtZWVnbykuK21vYmlsZXxhdmFudGdvfGJhZGFcL3xibGFja2JlcnJ5fGJsYXplcnxjb21wYWx8ZWxhaW5lfGZlbm5lY3xoaXB0b3B8aWVtb2JpbGV8aXAoaG9uZXxvZCl8aXJpc3xraW5kbGV8bGdlIHxtYWVtb3xtaWRwfG1tcHxtb2JpbGUuK2ZpcmVmb3h8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIGNlfHhkYXx4aWlub3xhbmRyb2lkfGlwYWR8cGxheWJvb2t8c2lsay9pLnRlc3QoYWdlbnQpfHwvMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298cy0pfGFpKGtvfHJuKXxhbChhdnxjYXxjbyl8YW1vaXxhbihleHxueXx5dyl8YXB0dXxhcihjaHxnbyl8YXModGV8dXMpfGF0dHd8YXUoZGl8LW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxidy0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtLXxjZWxsfGNodG18Y2xkY3xjbWQtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8LWQpfGVsKDQ5fGFpKXxlbShsMnx1bCl8ZXIoaWN8azApfGVzbDh8ZXooWzQtN10wfG9zfHdhfHplKXxmZXRjfGZseSgtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmLTV8Zy1tb3xnbyhcLnd8b2QpfGdyKGFkfHVuKXxoYWllfGhjaXR8aGQtKG18cHx0KXxoZWktfGhpKHB0fHRhKXxocCggaXxpcCl8aHMtY3xodChjKC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHwtfFwvKXxpYnJvfGlkZWF8aWcwMXxpa29tfGltMWt8aW5ub3xpcGFxfGlyaXN8amEodHx2KWF8amJyb3xqZW11fGppZ3N8a2RkaXxrZWppfGtndCggfFwvKXxrbG9ufGtwdCB8a3djLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fC1bYS13XSl8bGlid3xseW54fG0xLXd8bTNnYXxtNTBcL3xtYSh0ZXx1aXx4byl8bWMoMDF8MjF8Y2EpfG0tY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pLXxvbnx0Znx3Znx3Z3x3dCl8bm9rKDZ8aSl8bnpwaHxvMmltfG9wKHRpfHd2KXxvcmFufG93ZzF8cDgwMHxwYW4oYXxkfHQpfHBkeGd8cGcoMTN8LShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwbi0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHQtZ3xxYS1hfHFjKDA3fDEyfDIxfDMyfDYwfC1bMi03XXxpLSl8cXRla3xyMzgwfHI2MDB8cmFrc3xyaW05fHJvKHZlfHpvKXxzNTVcL3xzYShnZXxtYXxtbXxtc3xueXx2YSl8c2MoMDF8aC18b298cC0pfHNka1wvfHNlKGMoLXwwfDEpfDQ3fG1jfG5kfHJpKXxzZ2gtfHNoYXJ8c2llKC18bSl8c2stMHxzbCg0NXxpZCl8c20oYWx8YXJ8YjN8aXR8dDUpfHNvKGZ0fG55KXxzcCgwMXxoLXx2LXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbC18dGRnLXx0ZWwoaXxtKXx0aW0tfHQtbW98dG8ocGx8c2gpfHRzKDcwfG0tfG0zfG01KXx0eC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfC12KXx2bTQwfHZvZGF8dnVsY3x2eCg1Mnw1M3w2MHw2MXw3MHw4MHw4MXw4M3w4NXw5OCl8dzNjKC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXMtfHlvdXJ8emV0b3x6dGUtL2kudGVzdChudWxsPT1hZ2VudD92b2lkIDA6YWdlbnQuc3Vic3RyKDAsNCkpfSxob29rc191c2VNb2JpbGU9ZnVuY3Rpb24oKXt2YXIgYXJyLF91c2VTdGF0ZTI9ZnVuY3Rpb24oYXJyKXtpZihBcnJheS5pc0FycmF5KGFycikpcmV0dXJuIGFycn0oYXJyPSgwLHJlYWN0LnVzZVN0YXRlKSghMSkpfHxmdW5jdGlvbihhcnIsaSl7dmFyIF9pPW51bGw9PWFycj9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZhcnJbU3ltYm9sLml0ZXJhdG9yXXx8YXJyWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9X2kpe3ZhciBfcyxfZSxfeCxfcixfYXJyPVtdLF9uPSEwLF9kPSExO3RyeXtpZihfeD0oX2k9X2kuY2FsbChhcnIpKS5uZXh0LDA9PT1pKXtpZihPYmplY3QoX2kpIT09X2kpcmV0dXJuO19uPSExfWVsc2UgZm9yKDshKF9uPShfcz1feC5jYWxsKF9pKSkuZG9uZSkmJihfYXJyLnB1c2goX3MudmFsdWUpLF9hcnIubGVuZ3RoIT09aSk7X249ITApO31jYXRjaChlcnIpe19kPSEwLF9lPWVycn1maW5hbGx5e3RyeXtpZighX24mJm51bGwhPV9pLnJldHVybiYmKF9yPV9pLnJldHVybigpLE9iamVjdChfcikhPT1fcikpcmV0dXJufWZpbmFsbHl7aWYoX2QpdGhyb3cgX2V9fXJldHVybiBfYXJyfX0oYXJyLDIpfHxmdW5jdGlvbihvLG1pbkxlbil7aWYobyl7aWYoInN0cmluZyI9PXR5cGVvZiBvKXJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLG1pbkxlbik7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09biYmby5jb25zdHJ1Y3RvciYmKG49by5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bilyZXR1cm4gQXJyYXkuZnJvbShvKTtpZigiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLG1pbkxlbil9fShhcnIsMil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpLG1vYmlsZT1fdXNlU3RhdGUyWzBdLHNldE1vYmlsZT1fdXNlU3RhdGUyWzFdO3JldHVybiB1c2VMYXlvdXRFZmZlY3QoZnVuY3Rpb24oKXtzZXRNb2JpbGUoaXNNb2JpbGUoKSl9LFtdKSxtb2JpbGV9LHJhZj1mdW5jdGlvbihjYWxsYmFjayl7cmV0dXJuK3NldFRpbWVvdXQoY2FsbGJhY2ssMTYpfSxjYWY9ZnVuY3Rpb24obnVtKXtyZXR1cm4gY2xlYXJUaW1lb3V0KG51bSl9OyJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYicmVxdWVzdEFuaW1hdGlvbkZyYW1lImluIHdpbmRvdyYmKHJhZj1mdW5jdGlvbihjYWxsYmFjayl7cmV0dXJuIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2spfSxjYWY9ZnVuY3Rpb24oaGFuZGxlKXtyZXR1cm4gd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGhhbmRsZSl9KTt2YXIgcmFmVVVJRD0wLHJhZklkcz1uZXcgTWFwLHdyYXBwZXJSYWY9ZnVuY3Rpb24oY2FsbGJhY2spe3ZhciB0aW1lcz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MSxpZD1yYWZVVUlEKz0xO3JldHVybiFmdW5jdGlvbiBjYWxsUmVmKGxlZnRUaW1lcyl7aWYoMD09PWxlZnRUaW1lcylyYWZJZHMuZGVsZXRlKGlkKSxjYWxsYmFjaygpO2Vsc2V7dmFyIHJlYWxJZD1yYWYoZnVuY3Rpb24oKXtjYWxsUmVmKGxlZnRUaW1lcy0xKX0pO3JhZklkcy5zZXQoaWQscmVhbElkKX19KHRpbWVzKSxpZH07ZnVuY3Rpb24gU3RlcEhhbmRsZXIoX3JlZil7dmFyIHByZWZpeENscz1fcmVmLnByZWZpeENscyx1cE5vZGU9X3JlZi51cE5vZGUsZG93bk5vZGU9X3JlZi5kb3duTm9kZSx1cERpc2FibGVkPV9yZWYudXBEaXNhYmxlZCxkb3duRGlzYWJsZWQ9X3JlZi5kb3duRGlzYWJsZWQsb25TdGVwPV9yZWYub25TdGVwLHN0ZXBUaW1lb3V0UmVmPXJlYWN0LnVzZVJlZigpLGZyYW1lSWRzPXJlYWN0LnVzZVJlZihbXSksb25TdGVwUmVmPXJlYWN0LnVzZVJlZigpO29uU3RlcFJlZi5jdXJyZW50PW9uU3RlcDt2YXIgb25TdG9wU3RlcD1mdW5jdGlvbigpe2NsZWFyVGltZW91dChzdGVwVGltZW91dFJlZi5jdXJyZW50KX0sb25TdGVwTW91c2VEb3duPWZ1bmN0aW9uKGUsdXApe2UucHJldmVudERlZmF1bHQoKSxvblN0b3BTdGVwKCksb25TdGVwUmVmLmN1cnJlbnQodXApLHN0ZXBUaW1lb3V0UmVmLmN1cnJlbnQ9c2V0VGltZW91dChmdW5jdGlvbiBsb29wU3RlcCgpe29uU3RlcFJlZi5jdXJyZW50KHVwKSxzdGVwVGltZW91dFJlZi5jdXJyZW50PXNldFRpbWVvdXQobG9vcFN0ZXAsMjAwKX0sNjAwKX07aWYocmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7b25TdG9wU3RlcCgpLGZyYW1lSWRzLmN1cnJlbnQuZm9yRWFjaChmdW5jdGlvbihpZCl7cmV0dXJuIHdyYXBwZXJSYWYuY2FuY2VsKGlkKX0pfX0sW10pLGhvb2tzX3VzZU1vYmlsZSgpKXJldHVybiBudWxsO3ZhciBoYW5kbGVyQ2xhc3NOYW1lPSIiLmNvbmNhdChwcmVmaXhDbHMsIi1oYW5kbGVyIiksdXBDbGFzc05hbWU9bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKGhhbmRsZXJDbGFzc05hbWUsIiIuY29uY2F0KGhhbmRsZXJDbGFzc05hbWUsIi11cCIpLCgwLGRlZmluZVByb3BlcnR5LlopKHt9LCIiLmNvbmNhdChoYW5kbGVyQ2xhc3NOYW1lLCItdXAtZGlzYWJsZWQiKSx1cERpc2FibGVkKSksZG93bkNsYXNzTmFtZT1ub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0KCkoaGFuZGxlckNsYXNzTmFtZSwiIi5jb25jYXQoaGFuZGxlckNsYXNzTmFtZSwiLWRvd24iKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKSh7fSwiIi5jb25jYXQoaGFuZGxlckNsYXNzTmFtZSwiLWRvd24tZGlzYWJsZWQiKSxkb3duRGlzYWJsZWQpKSxzYWZlT25TdG9wU3RlcD1mdW5jdGlvbigpe3JldHVybiBmcmFtZUlkcy5jdXJyZW50LnB1c2god3JhcHBlclJhZihvblN0b3BTdGVwKSl9LHNoYXJlZEhhbmRsZXJQcm9wcz17dW5zZWxlY3RhYmxlOiJvbiIscm9sZToiYnV0dG9uIixvbk1vdXNlVXA6c2FmZU9uU3RvcFN0ZXAsb25Nb3VzZUxlYXZlOnNhZmVPblN0b3BTdGVwfTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOiIiLmNvbmNhdChoYW5kbGVyQ2xhc3NOYW1lLCItd3JhcCIpfSxyZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIiwoMCxoZWxwZXJzX2VzbV9leHRlbmRzLlopKHt9LHNoYXJlZEhhbmRsZXJQcm9wcyx7b25Nb3VzZURvd246ZnVuY3Rpb24oZSl7b25TdGVwTW91c2VEb3duKGUsITApfSwiYXJpYS1sYWJlbCI6IkluY3JlYXNlIFZhbHVlIiwiYXJpYS1kaXNhYmxlZCI6dXBEaXNhYmxlZCxjbGFzc05hbWU6dXBDbGFzc05hbWV9KSx1cE5vZGV8fHJlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHt1bnNlbGVjdGFibGU6Im9uIixjbGFzc05hbWU6IiIuY29uY2F0KHByZWZpeENscywiLWhhbmRsZXItdXAtaW5uZXIiKX0pKSxyZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIiwoMCxoZWxwZXJzX2VzbV9leHRlbmRzLlopKHt9LHNoYXJlZEhhbmRsZXJQcm9wcyx7b25Nb3VzZURvd246ZnVuY3Rpb24oZSl7b25TdGVwTW91c2VEb3duKGUsITEpfSwiYXJpYS1sYWJlbCI6IkRlY3JlYXNlIFZhbHVlIiwiYXJpYS1kaXNhYmxlZCI6ZG93bkRpc2FibGVkLGNsYXNzTmFtZTpkb3duQ2xhc3NOYW1lfSksZG93bk5vZGV8fHJlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHt1bnNlbGVjdGFibGU6Im9uIixjbGFzc05hbWU6IiIuY29uY2F0KHByZWZpeENscywiLWhhbmRsZXItZG93bi1pbm5lciIpfSkpKX1mdW5jdGlvbiBnZXREZWN1cGxlU3RlcHMoc3RlcCl7dmFyIHN0ZXBTdHI9Im51bWJlciI9PXR5cGVvZiBzdGVwPygwLG51bWJlclV0aWwudlApKHN0ZXApOigwLG51bWJlclV0aWwuX1YpKHN0ZXApLmZ1bGxTdHI7cmV0dXJuIHN0ZXBTdHIuaW5jbHVkZXMoIi4iKT8oMCxudW1iZXJVdGlsLl9WKShzdGVwU3RyLnJlcGxhY2UoLyhcZClcLihcZCkvZywiJDEkMi4iKSkuZnVsbFN0cjpzdGVwKyIwIn13cmFwcGVyUmFmLmNhbmNlbD1mdW5jdGlvbihpZCl7dmFyIHJlYWxJZD1yYWZJZHMuZ2V0KGlkKTtyZXR1cm4gcmFmSWRzLmRlbGV0ZShpZCksY2FmKHJlYWxJZCl9O3ZhciBjb21tb25VdGlscz1fX3dlYnBhY2tfcmVxdWlyZV9fKDg3ODg3KSx1c2VGcmFtZT1mdW5jdGlvbigpe3ZhciBpZFJlZj0oMCxyZWFjdC51c2VSZWYpKDApLGNsZWFuVXA9ZnVuY3Rpb24oKXt3cmFwcGVyUmFmLmNhbmNlbChpZFJlZi5jdXJyZW50KX07cmV0dXJuKDAscmVhY3QudXNlRWZmZWN0KShmdW5jdGlvbigpe3JldHVybiBjbGVhblVwfSxbXSksZnVuY3Rpb24oY2FsbGJhY2spe2NsZWFuVXAoKSxpZFJlZi5jdXJyZW50PXdyYXBwZXJSYWYoZnVuY3Rpb24oKXtjYWxsYmFjaygpfSl9fSxfZXhjbHVkZWQ9WyJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJzdHlsZSIsIm1pbiIsIm1heCIsInN0ZXAiLCJkZWZhdWx0VmFsdWUiLCJ2YWx1ZSIsImRpc2FibGVkIiwicmVhZE9ubHkiLCJ1cEhhbmRsZXIiLCJkb3duSGFuZGxlciIsImtleWJvYXJkIiwiY2hhbmdlT25XaGVlbCIsImNvbnRyb2xzIiwiY2xhc3NOYW1lcyIsInN0cmluZ01vZGUiLCJwYXJzZXIiLCJmb3JtYXR0ZXIiLCJwcmVjaXNpb24iLCJkZWNpbWFsU2VwYXJhdG9yIiwib25DaGFuZ2UiLCJvbklucHV0Iiwib25QcmVzc0VudGVyIiwib25TdGVwIiwiY2hhbmdlT25CbHVyIiwiZG9tUmVmIl0sX2V4Y2x1ZGVkMj1bImRpc2FibGVkIiwic3R5bGUiLCJwcmVmaXhDbHMiLCJ2YWx1ZSIsInByZWZpeCIsInN1ZmZpeCIsImFkZG9uQmVmb3JlIiwiYWRkb25BZnRlciIsImNsYXNzTmFtZSIsImNsYXNzTmFtZXMiXSxnZXREZWNpbWFsVmFsdWU9ZnVuY3Rpb24oc3RyaW5nTW9kZSxkZWNpbWFsVmFsdWUpe3JldHVybiBzdHJpbmdNb2RlfHxkZWNpbWFsVmFsdWUuaXNFbXB0eSgpP2RlY2ltYWxWYWx1ZS50b1N0cmluZygpOmRlY2ltYWxWYWx1ZS50b051bWJlcigpfSxnZXREZWNpbWFsSWZWYWxpZGF0ZT1mdW5jdGlvbih2YWx1ZSl7dmFyIGRlY2ltYWw9KDAsZXMuWlApKHZhbHVlKTtyZXR1cm4gZGVjaW1hbC5pc0ludmFsaWRhdGUoKT9udWxsOmRlY2ltYWx9LEludGVybmFsSW5wdXROdW1iZXI9cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3ZhciBpbnB1dCxzZWxlY3Rpb25SZWYscHJlZml4Q2xzPXByb3BzLnByZWZpeENscyxjbGFzc05hbWU9cHJvcHMuY2xhc3NOYW1lLHN0eWxlPXByb3BzLnN0eWxlLG1pbj1wcm9wcy5taW4sbWF4PXByb3BzLm1heCxfcHJvcHMkc3RlcD1wcm9wcy5zdGVwLHN0ZXA9dm9pZCAwPT09X3Byb3BzJHN0ZXA/MTpfcHJvcHMkc3RlcCxkZWZhdWx0VmFsdWU9cHJvcHMuZGVmYXVsdFZhbHVlLHZhbHVlPXByb3BzLnZhbHVlLGRpc2FibGVkPXByb3BzLmRpc2FibGVkLHJlYWRPbmx5PXByb3BzLnJlYWRPbmx5LHVwSGFuZGxlcj1wcm9wcy51cEhhbmRsZXIsZG93bkhhbmRsZXI9cHJvcHMuZG93bkhhbmRsZXIsa2V5Ym9hcmQ9cHJvcHMua2V5Ym9hcmQsX3Byb3BzJGNoYW5nZU9uV2hlZWw9cHJvcHMuY2hhbmdlT25XaGVlbCxjaGFuZ2VPbldoZWVsPXZvaWQgMCE9PV9wcm9wcyRjaGFuZ2VPbldoZWVsJiZfcHJvcHMkY2hhbmdlT25XaGVlbCxfcHJvcHMkY29udHJvbHM9cHJvcHMuY29udHJvbHMsc3RyaW5nTW9kZT0ocHJvcHMuY2xhc3NOYW1lcyxwcm9wcy5zdHJpbmdNb2RlKSxwYXJzZXI9cHJvcHMucGFyc2VyLGZvcm1hdHRlcj1wcm9wcy5mb3JtYXR0ZXIscHJlY2lzaW9uPXByb3BzLnByZWNpc2lvbixkZWNpbWFsU2VwYXJhdG9yPXByb3BzLmRlY2ltYWxTZXBhcmF0b3Isb25DaGFuZ2U9cHJvcHMub25DaGFuZ2Usb25JbnB1dD1wcm9wcy5vbklucHV0LG9uUHJlc3NFbnRlcj1wcm9wcy5vblByZXNzRW50ZXIsb25TdGVwPXByb3BzLm9uU3RlcCxfcHJvcHMkY2hhbmdlT25CbHVyPXByb3BzLmNoYW5nZU9uQmx1cixjaGFuZ2VPbkJsdXI9dm9pZCAwPT09X3Byb3BzJGNoYW5nZU9uQmx1cnx8X3Byb3BzJGNoYW5nZU9uQmx1cixkb21SZWY9cHJvcHMuZG9tUmVmLGlucHV0UHJvcHM9KDAsb2JqZWN0V2l0aG91dFByb3BlcnRpZXMuWikocHJvcHMsX2V4Y2x1ZGVkKSxpbnB1dENsYXNzTmFtZT0iIi5jb25jYXQocHJlZml4Q2xzLCItaW5wdXQiKSxpbnB1dFJlZj1yZWFjdC51c2VSZWYobnVsbCksX1JlYWN0JHVzZVN0YXRlPXJlYWN0LnVzZVN0YXRlKCExKSxfUmVhY3QkdXNlU3RhdGUyPSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlLDIpLGZvY3VzPV9SZWFjdCR1c2VTdGF0ZTJbMF0sc2V0Rm9jdXM9X1JlYWN0JHVzZVN0YXRlMlsxXSx1c2VyVHlwaW5nUmVmPXJlYWN0LnVzZVJlZighMSksY29tcG9zaXRpb25SZWY9cmVhY3QudXNlUmVmKCExKSxzaGlmdEtleVJlZj1yZWFjdC51c2VSZWYoITEpLF9SZWFjdCR1c2VTdGF0ZTM9cmVhY3QudXNlU3RhdGUoZnVuY3Rpb24oKXtyZXR1cm4oMCxlcy5aUCkobnVsbCE9dmFsdWU/dmFsdWU6ZGVmYXVsdFZhbHVlKX0pLF9SZWFjdCR1c2VTdGF0ZTQ9KDAsc2xpY2VkVG9BcnJheS5aKShfUmVhY3QkdXNlU3RhdGUzLDIpLGRlY2ltYWxWYWx1ZT1fUmVhY3QkdXNlU3RhdGU0WzBdLHNldERlY2ltYWxWYWx1ZT1fUmVhY3QkdXNlU3RhdGU0WzFdLGdldFByZWNpc2lvbj1yZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbihudW1TdHIsdXNlclR5cGluZyl7cmV0dXJuIHVzZXJUeXBpbmc/dm9pZCAwOnByZWNpc2lvbj49MD9wcmVjaXNpb246TWF0aC5tYXgoKDAsbnVtYmVyVXRpbC5OWCkobnVtU3RyKSwoMCxudW1iZXJVdGlsLk5YKShzdGVwKSl9LFtwcmVjaXNpb24sc3RlcF0pLG1lcmdlZFBhcnNlcj1yZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbihudW0pe3ZhciBudW1TdHI9U3RyaW5nKG51bSk7aWYocGFyc2VyKXJldHVybiBwYXJzZXIobnVtU3RyKTt2YXIgcGFyc2VkU3RyPW51bVN0cjtyZXR1cm4gZGVjaW1hbFNlcGFyYXRvciYmKHBhcnNlZFN0cj1wYXJzZWRTdHIucmVwbGFjZShkZWNpbWFsU2VwYXJhdG9yLCIuIikpLHBhcnNlZFN0ci5yZXBsYWNlKC9bXlx3Li1dKy9nLCIiKX0sW3BhcnNlcixkZWNpbWFsU2VwYXJhdG9yXSksaW5wdXRWYWx1ZVJlZj1yZWFjdC51c2VSZWYoIiIpLG1lcmdlZEZvcm1hdHRlcj1yZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbihudW1iZXIsdXNlclR5cGluZyl7aWYoZm9ybWF0dGVyKXJldHVybiBmb3JtYXR0ZXIobnVtYmVyLHt1c2VyVHlwaW5nOnVzZXJUeXBpbmcsaW5wdXQ6U3RyaW5nKGlucHV0VmFsdWVSZWYuY3VycmVudCl9KTt2YXIgc3RyPSJudW1iZXIiPT10eXBlb2YgbnVtYmVyPygwLG51bWJlclV0aWwudlApKG51bWJlcik6bnVtYmVyO2lmKCF1c2VyVHlwaW5nKXt2YXIgbWVyZ2VkUHJlY2lzaW9uPWdldFByZWNpc2lvbihzdHIsdXNlclR5cGluZyk7KDAsbnVtYmVyVXRpbC5tRSkoc3RyKSYmKGRlY2ltYWxTZXBhcmF0b3J8fG1lcmdlZFByZWNpc2lvbj49MCkmJihzdHI9KDAsTWluaURlY2ltYWwuRkgpKHN0cixkZWNpbWFsU2VwYXJhdG9yfHwiLiIsbWVyZ2VkUHJlY2lzaW9uKSl9cmV0dXJuIHN0cn0sW2Zvcm1hdHRlcixnZXRQcmVjaXNpb24sZGVjaW1hbFNlcGFyYXRvcl0pLF9SZWFjdCR1c2VTdGF0ZTU9cmVhY3QudXNlU3RhdGUoZnVuY3Rpb24oKXt2YXIgaW5pdFZhbHVlPW51bGwhPWRlZmF1bHRWYWx1ZT9kZWZhdWx0VmFsdWU6dmFsdWU7cmV0dXJuIGRlY2ltYWxWYWx1ZS5pc0ludmFsaWRhdGUoKSYmWyJzdHJpbmciLCJudW1iZXIiXS5pbmNsdWRlcygoMCxlc21fdHlwZW9mLlopKGluaXRWYWx1ZSkpP051bWJlci5pc05hTihpbml0VmFsdWUpPyIiOmluaXRWYWx1ZTptZXJnZWRGb3JtYXR0ZXIoZGVjaW1hbFZhbHVlLnRvU3RyaW5nKCksITEpfSksX1JlYWN0JHVzZVN0YXRlNj0oMCxzbGljZWRUb0FycmF5LlopKF9SZWFjdCR1c2VTdGF0ZTUsMiksaW5wdXRWYWx1ZT1fUmVhY3QkdXNlU3RhdGU2WzBdLHNldEludGVybmFsSW5wdXRWYWx1ZT1fUmVhY3QkdXNlU3RhdGU2WzFdO2Z1bmN0aW9uIHNldElucHV0VmFsdWUobmV3VmFsdWUsdXNlclR5cGluZyl7c2V0SW50ZXJuYWxJbnB1dFZhbHVlKG1lcmdlZEZvcm1hdHRlcihuZXdWYWx1ZS5pc0ludmFsaWRhdGUoKT9uZXdWYWx1ZS50b1N0cmluZyghMSk6bmV3VmFsdWUudG9TdHJpbmcoIXVzZXJUeXBpbmcpLHVzZXJUeXBpbmcpKX1pbnB1dFZhbHVlUmVmLmN1cnJlbnQ9aW5wdXRWYWx1ZTt2YXIgbWF4RGVjaW1hbD1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIGdldERlY2ltYWxJZlZhbGlkYXRlKG1heCl9LFttYXgscHJlY2lzaW9uXSksbWluRGVjaW1hbD1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIGdldERlY2ltYWxJZlZhbGlkYXRlKG1pbil9LFttaW4scHJlY2lzaW9uXSksdXBEaXNhYmxlZD1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuISghbWF4RGVjaW1hbHx8IWRlY2ltYWxWYWx1ZXx8ZGVjaW1hbFZhbHVlLmlzSW52YWxpZGF0ZSgpKSYmbWF4RGVjaW1hbC5sZXNzRXF1YWxzKGRlY2ltYWxWYWx1ZSl9LFttYXhEZWNpbWFsLGRlY2ltYWxWYWx1ZV0pLGRvd25EaXNhYmxlZD1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuISghbWluRGVjaW1hbHx8IWRlY2ltYWxWYWx1ZXx8ZGVjaW1hbFZhbHVlLmlzSW52YWxpZGF0ZSgpKSYmZGVjaW1hbFZhbHVlLmxlc3NFcXVhbHMobWluRGVjaW1hbCl9LFttaW5EZWNpbWFsLGRlY2ltYWxWYWx1ZV0pLF91c2VDdXJzb3I9KGlucHV0PWlucHV0UmVmLmN1cnJlbnQsc2VsZWN0aW9uUmVmPSgwLHJlYWN0LnVzZVJlZikobnVsbCksW2Z1bmN0aW9uKCl7dHJ5e3ZhciBzdGFydD1pbnB1dC5zZWxlY3Rpb25TdGFydCxlbmQ9aW5wdXQuc2VsZWN0aW9uRW5kLHZhbHVlPWlucHV0LnZhbHVlLGJlZm9yZVR4dD12YWx1ZS5zdWJzdHJpbmcoMCxzdGFydCksYWZ0ZXJUeHQ9dmFsdWUuc3Vic3RyaW5nKGVuZCk7c2VsZWN0aW9uUmVmLmN1cnJlbnQ9e3N0YXJ0OnN0YXJ0LGVuZDplbmQsdmFsdWU6dmFsdWUsYmVmb3JlVHh0OmJlZm9yZVR4dCxhZnRlclR4dDphZnRlclR4dH19Y2F0Y2goZSl7fX0sZnVuY3Rpb24oKXtpZihpbnB1dCYmc2VsZWN0aW9uUmVmLmN1cnJlbnQmJmZvY3VzKXRyeXt2YXIgdmFsdWU9aW5wdXQudmFsdWUsX3NlbGVjdGlvblJlZiRjdXJyZW50PXNlbGVjdGlvblJlZi5jdXJyZW50LGJlZm9yZVR4dD1fc2VsZWN0aW9uUmVmJGN1cnJlbnQuYmVmb3JlVHh0LGFmdGVyVHh0PV9zZWxlY3Rpb25SZWYkY3VycmVudC5hZnRlclR4dCxzdGFydD1fc2VsZWN0aW9uUmVmJGN1cnJlbnQuc3RhcnQsc3RhcnRQb3M9dmFsdWUubGVuZ3RoO2lmKHZhbHVlLnN0YXJ0c1dpdGgoYmVmb3JlVHh0KSlzdGFydFBvcz1iZWZvcmVUeHQubGVuZ3RoO2Vsc2UgaWYodmFsdWUuZW5kc1dpdGgoYWZ0ZXJUeHQpKXN0YXJ0UG9zPXZhbHVlLmxlbmd0aC1zZWxlY3Rpb25SZWYuY3VycmVudC5hZnRlclR4dC5sZW5ndGg7ZWxzZXt2YXIgYmVmb3JlTGFzdENoYXI9YmVmb3JlVHh0W3N0YXJ0LTFdLG5ld0luZGV4PXZhbHVlLmluZGV4T2YoYmVmb3JlTGFzdENoYXIsc3RhcnQtMSk7LTEhPT1uZXdJbmRleCYmKHN0YXJ0UG9zPW5ld0luZGV4KzEpfWlucHV0LnNldFNlbGVjdGlvblJhbmdlKHN0YXJ0UG9zLHN0YXJ0UG9zKX1jYXRjaChlKXt3YXJuaW5nT25jZSghMSwiU29tZXRoaW5nIHdhcm5pbmcgb2YgY3Vyc29yIHJlc3RvcmUuIFBsZWFzZSBmaXJlIGlzc3VlIGFib3V0IHRoaXM6ICIuY29uY2F0KGUubWVzc2FnZSkpfX1dKSxfdXNlQ3Vyc29yMj0oMCxzbGljZWRUb0FycmF5LlopKF91c2VDdXJzb3IsMikscmVjb3JkQ3Vyc29yPV91c2VDdXJzb3IyWzBdLHJlc3RvcmVDdXJzb3I9X3VzZUN1cnNvcjJbMV0sZ2V0UmFuZ2VWYWx1ZT1mdW5jdGlvbih0YXJnZXQpe3JldHVybiBtYXhEZWNpbWFsJiYhdGFyZ2V0Lmxlc3NFcXVhbHMobWF4RGVjaW1hbCk/bWF4RGVjaW1hbDptaW5EZWNpbWFsJiYhbWluRGVjaW1hbC5sZXNzRXF1YWxzKHRhcmdldCk/bWluRGVjaW1hbDpudWxsfSxpc0luUmFuZ2U9ZnVuY3Rpb24odGFyZ2V0KXtyZXR1cm4hZ2V0UmFuZ2VWYWx1ZSh0YXJnZXQpfSx0cmlnZ2VyVmFsdWVVcGRhdGU9ZnVuY3Rpb24obmV3VmFsdWUsdXNlclR5cGluZyl7dmFyIHVwZGF0ZVZhbHVlPW5ld1ZhbHVlLGlzUmFuZ2VWYWxpZGF0ZT1pc0luUmFuZ2UodXBkYXRlVmFsdWUpfHx1cGRhdGVWYWx1ZS5pc0VtcHR5KCk7aWYodXBkYXRlVmFsdWUuaXNFbXB0eSgpfHx1c2VyVHlwaW5nfHwodXBkYXRlVmFsdWU9Z2V0UmFuZ2VWYWx1ZSh1cGRhdGVWYWx1ZSl8fHVwZGF0ZVZhbHVlLGlzUmFuZ2VWYWxpZGF0ZT0hMCksIXJlYWRPbmx5JiYhZGlzYWJsZWQmJmlzUmFuZ2VWYWxpZGF0ZSl7dmFyIG5ld0RlY2ltYWwsbnVtU3RyPXVwZGF0ZVZhbHVlLnRvU3RyaW5nKCksbWVyZ2VkUHJlY2lzaW9uPWdldFByZWNpc2lvbihudW1TdHIsdXNlclR5cGluZyk7cmV0dXJuIG1lcmdlZFByZWNpc2lvbj49MCYmIWlzSW5SYW5nZSh1cGRhdGVWYWx1ZT0oMCxlcy5aUCkoKDAsTWluaURlY2ltYWwuRkgpKG51bVN0ciwiLiIsbWVyZ2VkUHJlY2lzaW9uKSkpJiYodXBkYXRlVmFsdWU9KDAsZXMuWlApKCgwLE1pbmlEZWNpbWFsLkZIKShudW1TdHIsIi4iLG1lcmdlZFByZWNpc2lvbiwhMCkpKSx1cGRhdGVWYWx1ZS5lcXVhbHMoZGVjaW1hbFZhbHVlKXx8KG5ld0RlY2ltYWw9dXBkYXRlVmFsdWUsdm9pZCAwPT09dmFsdWUmJnNldERlY2ltYWxWYWx1ZShuZXdEZWNpbWFsKSxudWxsPT1vbkNoYW5nZXx8b25DaGFuZ2UodXBkYXRlVmFsdWUuaXNFbXB0eSgpP251bGw6Z2V0RGVjaW1hbFZhbHVlKHN0cmluZ01vZGUsdXBkYXRlVmFsdWUpKSx2b2lkIDA9PT12YWx1ZSYmc2V0SW5wdXRWYWx1ZSh1cGRhdGVWYWx1ZSx1c2VyVHlwaW5nKSksdXBkYXRlVmFsdWV9cmV0dXJuIGRlY2ltYWxWYWx1ZX0sb25OZXh0UHJvbWlzZT11c2VGcmFtZSgpLGNvbGxlY3RJbnB1dFZhbHVlPWZ1bmN0aW9uIGNvbGxlY3RJbnB1dFZhbHVlKGlucHV0U3RyKXtpZihyZWNvcmRDdXJzb3IoKSxpbnB1dFZhbHVlUmVmLmN1cnJlbnQ9aW5wdXRTdHIsc2V0SW50ZXJuYWxJbnB1dFZhbHVlKGlucHV0U3RyKSwhY29tcG9zaXRpb25SZWYuY3VycmVudCl7dmFyIGZpbmFsVmFsdWU9bWVyZ2VkUGFyc2VyKGlucHV0U3RyKSxmaW5hbERlY2ltYWw9KDAsZXMuWlApKGZpbmFsVmFsdWUpO2ZpbmFsRGVjaW1hbC5pc05hTigpfHx0cmlnZ2VyVmFsdWVVcGRhdGUoZmluYWxEZWNpbWFsLCEwKX1udWxsPT1vbklucHV0fHxvbklucHV0KGlucHV0U3RyKSxvbk5leHRQcm9taXNlKGZ1bmN0aW9uKCl7dmFyIG5leHRJbnB1dFN0cj1pbnB1dFN0cjtwYXJzZXJ8fChuZXh0SW5wdXRTdHI9aW5wdXRTdHIucmVwbGFjZSgv44CCL2csIi4iKSksbmV4dElucHV0U3RyIT09aW5wdXRTdHImJmNvbGxlY3RJbnB1dFZhbHVlKG5leHRJbnB1dFN0cil9KX0sb25JbnRlcm5hbFN0ZXA9ZnVuY3Rpb24odXApe2lmKCghdXB8fCF1cERpc2FibGVkKSYmKHVwfHwhZG93bkRpc2FibGVkKSl7dXNlclR5cGluZ1JlZi5jdXJyZW50PSExO3ZhciBfaW5wdXRSZWYkY3VycmVudCxzdGVwRGVjaW1hbD0oMCxlcy5aUCkoc2hpZnRLZXlSZWYuY3VycmVudD9nZXREZWN1cGxlU3RlcHMoc3RlcCk6c3RlcCk7dXB8fChzdGVwRGVjaW1hbD1zdGVwRGVjaW1hbC5uZWdhdGUoKSk7dmFyIHVwZGF0ZWRWYWx1ZT10cmlnZ2VyVmFsdWVVcGRhdGUoKGRlY2ltYWxWYWx1ZXx8KDAsZXMuWlApKDApKS5hZGQoc3RlcERlY2ltYWwudG9TdHJpbmcoKSksITEpO251bGw9PW9uU3RlcHx8b25TdGVwKGdldERlY2ltYWxWYWx1ZShzdHJpbmdNb2RlLHVwZGF0ZWRWYWx1ZSkse29mZnNldDpzaGlmdEtleVJlZi5jdXJyZW50P2dldERlY3VwbGVTdGVwcyhzdGVwKTpzdGVwLHR5cGU6dXA/InVwIjoiZG93biJ9KSxudWxsPT09KF9pbnB1dFJlZiRjdXJyZW50PWlucHV0UmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1faW5wdXRSZWYkY3VycmVudHx8X2lucHV0UmVmJGN1cnJlbnQuZm9jdXMoKX19LGZsdXNoSW5wdXRWYWx1ZT1mdW5jdGlvbih1c2VyVHlwaW5nKXt2YXIgZm9ybWF0VmFsdWUscGFyc2VkVmFsdWU9KDAsZXMuWlApKG1lcmdlZFBhcnNlcihpbnB1dFZhbHVlKSk7Zm9ybWF0VmFsdWU9cGFyc2VkVmFsdWUuaXNOYU4oKT90cmlnZ2VyVmFsdWVVcGRhdGUoZGVjaW1hbFZhbHVlLHVzZXJUeXBpbmcpOnRyaWdnZXJWYWx1ZVVwZGF0ZShwYXJzZWRWYWx1ZSx1c2VyVHlwaW5nKSx2b2lkIDAhPT12YWx1ZT9zZXRJbnB1dFZhbHVlKGRlY2ltYWxWYWx1ZSwhMSk6Zm9ybWF0VmFsdWUuaXNOYU4oKXx8c2V0SW5wdXRWYWx1ZShmb3JtYXRWYWx1ZSwhMSl9O3JldHVybiByZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24oKXtpZihjaGFuZ2VPbldoZWVsJiZmb2N1cyl7dmFyIG9uV2hlZWw9ZnVuY3Rpb24oZXZlbnQpe29uSW50ZXJuYWxTdGVwKGV2ZW50LmRlbHRhWTwwKSxldmVudC5wcmV2ZW50RGVmYXVsdCgpfSxpbnB1dD1pbnB1dFJlZi5jdXJyZW50O2lmKGlucHV0KXJldHVybiBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsb25XaGVlbCx7cGFzc2l2ZTohMX0pLGZ1bmN0aW9uKCl7cmV0dXJuIGlucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixvbldoZWVsKX19fSksdXNlTGF5b3V0VXBkYXRlRWZmZWN0KGZ1bmN0aW9uKCl7ZGVjaW1hbFZhbHVlLmlzSW52YWxpZGF0ZSgpfHxzZXRJbnB1dFZhbHVlKGRlY2ltYWxWYWx1ZSwhMSl9LFtwcmVjaXNpb24sZm9ybWF0dGVyXSksdXNlTGF5b3V0VXBkYXRlRWZmZWN0KGZ1bmN0aW9uKCl7dmFyIG5ld1ZhbHVlPSgwLGVzLlpQKSh2YWx1ZSk7c2V0RGVjaW1hbFZhbHVlKG5ld1ZhbHVlKTt2YXIgY3VycmVudFBhcnNlZFZhbHVlPSgwLGVzLlpQKShtZXJnZWRQYXJzZXIoaW5wdXRWYWx1ZSkpO25ld1ZhbHVlLmVxdWFscyhjdXJyZW50UGFyc2VkVmFsdWUpJiZ1c2VyVHlwaW5nUmVmLmN1cnJlbnQmJiFmb3JtYXR0ZXJ8fHNldElucHV0VmFsdWUobmV3VmFsdWUsdXNlclR5cGluZ1JlZi5jdXJyZW50KX0sW3ZhbHVlXSksdXNlTGF5b3V0VXBkYXRlRWZmZWN0KGZ1bmN0aW9uKCl7Zm9ybWF0dGVyJiZyZXN0b3JlQ3Vyc29yKCl9LFtpbnB1dFZhbHVlXSkscmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOmRvbVJlZixjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKHByZWZpeENscyxjbGFzc05hbWUsKDAsZGVmaW5lUHJvcGVydHkuWikoKDAsZGVmaW5lUHJvcGVydHkuWikoKDAsZGVmaW5lUHJvcGVydHkuWikoKDAsZGVmaW5lUHJvcGVydHkuWikoKDAsZGVmaW5lUHJvcGVydHkuWikoe30sIiIuY29uY2F0KHByZWZpeENscywiLWZvY3VzZWQiKSxmb2N1cyksIiIuY29uY2F0KHByZWZpeENscywiLWRpc2FibGVkIiksZGlzYWJsZWQpLCIiLmNvbmNhdChwcmVmaXhDbHMsIi1yZWFkb25seSIpLHJlYWRPbmx5KSwiIi5jb25jYXQocHJlZml4Q2xzLCItbm90LWEtbnVtYmVyIiksZGVjaW1hbFZhbHVlLmlzTmFOKCkpLCIiLmNvbmNhdChwcmVmaXhDbHMsIi1vdXQtb2YtcmFuZ2UiKSwhZGVjaW1hbFZhbHVlLmlzSW52YWxpZGF0ZSgpJiYhaXNJblJhbmdlKGRlY2ltYWxWYWx1ZSkpKSxzdHlsZTpzdHlsZSxvbkZvY3VzOmZ1bmN0aW9uKCl7c2V0Rm9jdXMoITApfSxvbkJsdXI6ZnVuY3Rpb24oKXtjaGFuZ2VPbkJsdXImJmZsdXNoSW5wdXRWYWx1ZSghMSksc2V0Rm9jdXMoITEpLHVzZXJUeXBpbmdSZWYuY3VycmVudD0hMX0sb25LZXlEb3duOmZ1bmN0aW9uKGV2ZW50KXt2YXIga2V5PWV2ZW50LmtleSxzaGlmdEtleT1ldmVudC5zaGlmdEtleTt1c2VyVHlwaW5nUmVmLmN1cnJlbnQ9ITAsc2hpZnRLZXlSZWYuY3VycmVudD1zaGlmdEtleSwiRW50ZXIiPT09a2V5JiYoY29tcG9zaXRpb25SZWYuY3VycmVudHx8KHVzZXJUeXBpbmdSZWYuY3VycmVudD0hMSksZmx1c2hJbnB1dFZhbHVlKCExKSxudWxsPT1vblByZXNzRW50ZXJ8fG9uUHJlc3NFbnRlcihldmVudCkpLCExIT09a2V5Ym9hcmQmJiFjb21wb3NpdGlvblJlZi5jdXJyZW50JiZbIlVwIiwiQXJyb3dVcCIsIkRvd24iLCJBcnJvd0Rvd24iXS5pbmNsdWRlcyhrZXkpJiYob25JbnRlcm5hbFN0ZXAoIlVwIj09PWtleXx8IkFycm93VXAiPT09a2V5KSxldmVudC5wcmV2ZW50RGVmYXVsdCgpKX0sb25LZXlVcDpmdW5jdGlvbigpe3VzZXJUeXBpbmdSZWYuY3VycmVudD0hMSxzaGlmdEtleVJlZi5jdXJyZW50PSExfSxvbkNvbXBvc2l0aW9uU3RhcnQ6ZnVuY3Rpb24oKXtjb21wb3NpdGlvblJlZi5jdXJyZW50PSEwfSxvbkNvbXBvc2l0aW9uRW5kOmZ1bmN0aW9uKCl7Y29tcG9zaXRpb25SZWYuY3VycmVudD0hMSxjb2xsZWN0SW5wdXRWYWx1ZShpbnB1dFJlZi5jdXJyZW50LnZhbHVlKX0sb25CZWZvcmVJbnB1dDpmdW5jdGlvbigpe3VzZXJUeXBpbmdSZWYuY3VycmVudD0hMH19LCh2b2lkIDA9PT1fcHJvcHMkY29udHJvbHN8fF9wcm9wcyRjb250cm9scykmJnJlYWN0LmNyZWF0ZUVsZW1lbnQoU3RlcEhhbmRsZXIse3ByZWZpeENsczpwcmVmaXhDbHMsdXBOb2RlOnVwSGFuZGxlcixkb3duTm9kZTpkb3duSGFuZGxlcix1cERpc2FibGVkOnVwRGlzYWJsZWQsZG93bkRpc2FibGVkOmRvd25EaXNhYmxlZCxvblN0ZXA6b25JbnRlcm5hbFN0ZXB9KSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KGlucHV0Q2xhc3NOYW1lLCItd3JhcCIpfSxyZWFjdC5jcmVhdGVFbGVtZW50KCJpbnB1dCIsKDAsaGVscGVyc19lc21fZXh0ZW5kcy5aKSh7YXV0b0NvbXBsZXRlOiJvZmYiLHJvbGU6InNwaW5idXR0b24iLCJhcmlhLXZhbHVlbWluIjptaW4sImFyaWEtdmFsdWVtYXgiOm1heCwiYXJpYS12YWx1ZW5vdyI6ZGVjaW1hbFZhbHVlLmlzSW52YWxpZGF0ZSgpP251bGw6ZGVjaW1hbFZhbHVlLnRvU3RyaW5nKCksc3RlcDpzdGVwfSxpbnB1dFByb3BzLHtyZWY6Y29tcG9zZVJlZihpbnB1dFJlZixyZWYpLGNsYXNzTmFtZTppbnB1dENsYXNzTmFtZSx2YWx1ZTppbnB1dFZhbHVlLG9uQ2hhbmdlOmZ1bmN0aW9uKGUpe2NvbGxlY3RJbnB1dFZhbHVlKGUudGFyZ2V0LnZhbHVlKX0sZGlzYWJsZWQ6ZGlzYWJsZWQscmVhZE9ubHk6cmVhZE9ubHl9KSkpKX0pLElucHV0TnVtYmVyPXJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24ocHJvcHMscmVmKXt2YXIgZGlzYWJsZWQ9cHJvcHMuZGlzYWJsZWQsc3R5bGU9cHJvcHMuc3R5bGUsX3Byb3BzJHByZWZpeENscz1wcm9wcy5wcmVmaXhDbHMscHJlZml4Q2xzPXZvaWQgMD09PV9wcm9wcyRwcmVmaXhDbHM/InJjLWlucHV0LW51bWJlciI6X3Byb3BzJHByZWZpeENscyx2YWx1ZT1wcm9wcy52YWx1ZSxwcmVmaXg9cHJvcHMucHJlZml4LHN1ZmZpeD1wcm9wcy5zdWZmaXgsYWRkb25CZWZvcmU9cHJvcHMuYWRkb25CZWZvcmUsYWRkb25BZnRlcj1wcm9wcy5hZGRvbkFmdGVyLGNsYXNzTmFtZT1wcm9wcy5jbGFzc05hbWUsY2xhc3NOYW1lcz1wcm9wcy5jbGFzc05hbWVzLHJlc3Q9KDAsb2JqZWN0V2l0aG91dFByb3BlcnRpZXMuWikocHJvcHMsX2V4Y2x1ZGVkMiksaG9sZGVyUmVmPXJlYWN0LnVzZVJlZihudWxsKSxpbnB1dE51bWJlckRvbVJlZj1yZWFjdC51c2VSZWYobnVsbCksaW5wdXRGb2N1c1JlZj1yZWFjdC51c2VSZWYobnVsbCksZm9jdXM9ZnVuY3Rpb24ob3B0aW9uKXtpbnB1dEZvY3VzUmVmLmN1cnJlbnQmJigwLGNvbW1vblV0aWxzLm5IKShpbnB1dEZvY3VzUmVmLmN1cnJlbnQsb3B0aW9uKX07cmV0dXJuIHJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLGZ1bmN0aW9uKCl7dmFyIG9iaixleHRlbmRQcm9wcztyZXR1cm4gb2JqPWlucHV0Rm9jdXNSZWYuY3VycmVudCxleHRlbmRQcm9wcz17Zm9jdXM6Zm9jdXMsbmF0aXZlRWxlbWVudDpob2xkZXJSZWYuY3VycmVudC5uYXRpdmVFbGVtZW50fHxpbnB1dE51bWJlckRvbVJlZi5jdXJyZW50fSwidW5kZWZpbmVkIiE9dHlwZW9mIFByb3h5JiZvYmo/bmV3IFByb3h5KG9iaix7Z2V0OmZ1bmN0aW9uKHRhcmdldCxwcm9wKXtpZihleHRlbmRQcm9wc1twcm9wXSlyZXR1cm4gZXh0ZW5kUHJvcHNbcHJvcF07dmFyIG9yaWdpblByb3A9dGFyZ2V0W3Byb3BdO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBvcmlnaW5Qcm9wP29yaWdpblByb3AuYmluZCh0YXJnZXQpOm9yaWdpblByb3B9fSk6b2JqfSkscmVhY3QuY3JlYXRlRWxlbWVudChyY19pbnB1dF9lcy5RLHtjbGFzc05hbWU6Y2xhc3NOYW1lLHRyaWdnZXJGb2N1czpmb2N1cyxwcmVmaXhDbHM6cHJlZml4Q2xzLHZhbHVlOnZhbHVlLGRpc2FibGVkOmRpc2FibGVkLHN0eWxlOnN0eWxlLHByZWZpeDpwcmVmaXgsc3VmZml4OnN1ZmZpeCxhZGRvbkFmdGVyOmFkZG9uQWZ0ZXIsYWRkb25CZWZvcmU6YWRkb25CZWZvcmUsY2xhc3NOYW1lczpjbGFzc05hbWVzLGNvbXBvbmVudHM6e2FmZml4V3JhcHBlcjoiZGl2Iixncm91cFdyYXBwZXI6ImRpdiIsd3JhcHBlcjoiZGl2Iixncm91cEFkZG9uOiJkaXYifSxyZWY6aG9sZGVyUmVmfSxyZWFjdC5jcmVhdGVFbGVtZW50KEludGVybmFsSW5wdXROdW1iZXIsKDAsaGVscGVyc19lc21fZXh0ZW5kcy5aKSh7cHJlZml4Q2xzOnByZWZpeENscyxkaXNhYmxlZDpkaXNhYmxlZCxyZWY6aW5wdXRGb2N1c1JlZixkb21SZWY6aW5wdXROdW1iZXJEb21SZWYsY2xhc3NOYW1lOm51bGw9PWNsYXNzTmFtZXM/dm9pZCAwOmNsYXNzTmFtZXMuaW5wdXR9LHJlc3QpKSl9KSxDb250ZXh0SXNvbGF0b3I9X193ZWJwYWNrX3JlcXVpcmVfXyg4OTk0Miksc3RhdHVzVXRpbHM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzA4KSxjb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oNTMxMjQpLGNvbmZpZ19wcm92aWRlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDM3ODEyKSxEaXNhYmxlZENvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg5ODg2NiksdXNlQ1NTVmFyQ2xzPV9fd2VicGFja19yZXF1aXJlX18oMzU3OTIpLHVzZVNpemU9X193ZWJwYWNrX3JlcXVpcmVfXyg5ODY3NSksZm9ybV9jb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oNjUyMjMpLHVzZVZhcmlhbnRzPV9fd2VicGFja19yZXF1aXJlX18oMjc4MzMpLENvbXBhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg0MTczKSxjc3NpbmpzX2VzPV9fd2VicGFja19yZXF1aXJlX18oNDQ4OTkpLHN0eWxlPV9fd2VicGFja19yZXF1aXJlX18oNDc2NzMpLHN0eWxlX3Rva2VuPV9fd2VicGFja19yZXF1aXJlX18oMjAzNTMpLHZhcmlhbnRzPV9fd2VicGFja19yZXF1aXJlX18oOTM5MDApLGVzX3N0eWxlPV9fd2VicGFja19yZXF1aXJlX18oMTQ3NDcpLGNvbXBhY3RfaXRlbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDgwMTEwKSxnZW5TdHlsZVV0aWxzPV9fd2VicGFja19yZXF1aXJlX18oODM1NTkpLGNzc2luanNfdXRpbHNfZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0MjU1OSksZmFzdF9jb2xvcl9lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI0MzI3KTtsZXQgcHJlcGFyZUNvbXBvbmVudFRva2VuPXRva2VuPT57dmFyIF9hO2xldCBoYW5kbGVWaXNpYmxlPW51bGwhPT0oX2E9dG9rZW4uaGFuZGxlVmlzaWJsZSkmJnZvaWQgMCE9PV9hP19hOiJhdXRvIixoYW5kbGVXaWR0aD10b2tlbi5jb250cm9sSGVpZ2h0U00tMip0b2tlbi5saW5lV2lkdGg7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxzdHlsZV90b2tlbi5UKSh0b2tlbikpLHtjb250cm9sV2lkdGg6OTAsaGFuZGxlV2lkdGgsaGFuZGxlRm9udFNpemU6dG9rZW4uZm9udFNpemUvMixoYW5kbGVWaXNpYmxlLGhhbmRsZUFjdGl2ZUJnOnRva2VuLmNvbG9yRmlsbEFsdGVyLGhhbmRsZUJnOnRva2VuLmNvbG9yQmdDb250YWluZXIsZmlsbGVkSGFuZGxlQmc6bmV3IGZhc3RfY29sb3JfZXMudCh0b2tlbi5jb2xvckZpbGxTZWNvbmRhcnkpLm9uQmFja2dyb3VuZCh0b2tlbi5jb2xvckJnQ29udGFpbmVyKS50b0hleFN0cmluZygpLGhhbmRsZUhvdmVyQ29sb3I6dG9rZW4uY29sb3JQcmltYXJ5LGhhbmRsZUJvcmRlckNvbG9yOnRva2VuLmNvbG9yQm9yZGVyLGhhbmRsZU9wYWNpdHk6ITA9PT1oYW5kbGVWaXNpYmxlPzE6MCxoYW5kbGVWaXNpYmxlV2lkdGg6ITA9PT1oYW5kbGVWaXNpYmxlP2hhbmRsZVdpZHRoOjB9KX0sZ2VuUmFkaXVzU3R5bGU9KF9yZWYsc2l6ZSk9PntsZXR7Y29tcG9uZW50Q2xzLGJvcmRlclJhZGl1c1NNLGJvcmRlclJhZGl1c0xHfT1fcmVmLGJvcmRlclJhZGl1cz0ibGciPT09c2l6ZT9ib3JkZXJSYWRpdXNMRzpib3JkZXJSYWRpdXNTTTtyZXR1cm57W2AmLSR7c2l6ZX1gXTp7W2Ake2NvbXBvbmVudENsc30taGFuZGxlci13cmFwYF06e2JvcmRlclN0YXJ0RW5kUmFkaXVzOmJvcmRlclJhZGl1cyxib3JkZXJFbmRFbmRSYWRpdXM6Ym9yZGVyUmFkaXVzfSxbYCR7Y29tcG9uZW50Q2xzfS1oYW5kbGVyLXVwYF06e2JvcmRlclN0YXJ0RW5kUmFkaXVzOmJvcmRlclJhZGl1c30sW2Ake2NvbXBvbmVudENsc30taGFuZGxlci1kb3duYF06e2JvcmRlckVuZEVuZFJhZGl1czpib3JkZXJSYWRpdXN9fX19LGdlbklucHV0TnVtYmVyU3R5bGVzPXRva2VuPT57bGV0e2NvbXBvbmVudENscyxsaW5lV2lkdGgsbGluZVR5cGUsYm9yZGVyUmFkaXVzLGlucHV0Rm9udFNpemVTTSxpbnB1dEZvbnRTaXplTEcsY29udHJvbEhlaWdodExHLGNvbnRyb2xIZWlnaHRTTSxjb2xvckVycm9yLHBhZGRpbmdJbmxpbmVTTSxwYWRkaW5nQmxvY2tTTSxwYWRkaW5nQmxvY2tMRyxwYWRkaW5nSW5saW5lTEcsY29sb3JJY29uLG1vdGlvbkR1cmF0aW9uTWlkLGhhbmRsZUhvdmVyQ29sb3IsaGFuZGxlT3BhY2l0eSxwYWRkaW5nSW5saW5lLHBhZGRpbmdCbG9jayxoYW5kbGVCZyxoYW5kbGVBY3RpdmVCZyxjb2xvclRleHREaXNhYmxlZCxib3JkZXJSYWRpdXNTTSxib3JkZXJSYWRpdXNMRyxjb250cm9sV2lkdGgsaGFuZGxlQm9yZGVyQ29sb3IsZmlsbGVkSGFuZGxlQmcsbGluZUhlaWdodExHLGNhbGN9PXRva2VuO3JldHVyblt7W2NvbXBvbmVudENsc106T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLGVzX3N0eWxlLldmKSh0b2tlbikpLCgwLHN0eWxlLmlrKSh0b2tlbikpLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHdpZHRoOmNvbnRyb2xXaWR0aCxtYXJnaW46MCxwYWRkaW5nOjAsYm9yZGVyUmFkaXVzfSksKDAsdmFyaWFudHMucUcpKHRva2VuLHtbYCR7Y29tcG9uZW50Q2xzfS1oYW5kbGVyLXdyYXBgXTp7YmFja2dyb3VuZDpoYW5kbGVCZyxbYCR7Y29tcG9uZW50Q2xzfS1oYW5kbGVyLWRvd25gXTp7Ym9yZGVyQmxvY2tTdGFydDpgJHsoMCxjc3NpbmpzX2VzLmJmKShsaW5lV2lkdGgpfSAke2xpbmVUeXBlfSAke2hhbmRsZUJvcmRlckNvbG9yfWB9fX0pKSwoMCx2YXJpYW50cy5IOCkodG9rZW4se1tgJHtjb21wb25lbnRDbHN9LWhhbmRsZXItd3JhcGBdOntiYWNrZ3JvdW5kOmZpbGxlZEhhbmRsZUJnLFtgJHtjb21wb25lbnRDbHN9LWhhbmRsZXItZG93bmBdOntib3JkZXJCbG9ja1N0YXJ0OmAkeygwLGNzc2luanNfZXMuYmYpKGxpbmVXaWR0aCl9ICR7bGluZVR5cGV9ICR7aGFuZGxlQm9yZGVyQ29sb3J9YH19LCImOmZvY3VzLXdpdGhpbiI6e1tgJHtjb21wb25lbnRDbHN9LWhhbmRsZXItd3JhcGBdOntiYWNrZ3JvdW5kOmhhbmRsZUJnfX19KSksKDAsdmFyaWFudHMudmMpKHRva2VuLHtbYCR7Y29tcG9uZW50Q2xzfS1oYW5kbGVyLXdyYXBgXTp7YmFja2dyb3VuZDpoYW5kbGVCZyxbYCR7Y29tcG9uZW50Q2xzfS1oYW5kbGVyLWRvd25gXTp7Ym9yZGVyQmxvY2tTdGFydDpgJHsoMCxjc3NpbmpzX2VzLmJmKShsaW5lV2lkdGgpfSAke2xpbmVUeXBlfSAke2hhbmRsZUJvcmRlckNvbG9yfWB9fX0pKSwoMCx2YXJpYW50cy5NdSkodG9rZW4pKSx7IiYtcnRsIjp7ZGlyZWN0aW9uOiJydGwiLFtgJHtjb21wb25lbnRDbHN9LWlucHV0YF06e2RpcmVjdGlvbjoicnRsIn19LCImLWxnIjp7cGFkZGluZzowLGZvbnRTaXplOmlucHV0Rm9udFNpemVMRyxsaW5lSGVpZ2h0OmxpbmVIZWlnaHRMRyxib3JkZXJSYWRpdXM6Ym9yZGVyUmFkaXVzTEcsW2BpbnB1dCR7Y29tcG9uZW50Q2xzfS1pbnB1dGBdOntoZWlnaHQ6Y2FsYyhjb250cm9sSGVpZ2h0TEcpLnN1YihjYWxjKGxpbmVXaWR0aCkubXVsKDIpKS5lcXVhbCgpLHBhZGRpbmc6YCR7KDAsY3NzaW5qc19lcy5iZikocGFkZGluZ0Jsb2NrTEcpfSAkeygwLGNzc2luanNfZXMuYmYpKHBhZGRpbmdJbmxpbmVMRyl9YH19LCImLXNtIjp7cGFkZGluZzowLGZvbnRTaXplOmlucHV0Rm9udFNpemVTTSxib3JkZXJSYWRpdXM6Ym9yZGVyUmFkaXVzU00sW2BpbnB1dCR7Y29tcG9uZW50Q2xzfS1pbnB1dGBdOntoZWlnaHQ6Y2FsYyhjb250cm9sSGVpZ2h0U00pLnN1YihjYWxjKGxpbmVXaWR0aCkubXVsKDIpKS5lcXVhbCgpLHBhZGRpbmc6YCR7KDAsY3NzaW5qc19lcy5iZikocGFkZGluZ0Jsb2NrU00pfSAkeygwLGNzc2luanNfZXMuYmYpKHBhZGRpbmdJbmxpbmVTTSl9YH19LCImLW91dC1vZi1yYW5nZSI6e1tgJHtjb21wb25lbnRDbHN9LWlucHV0LXdyYXBgXTp7aW5wdXQ6e2NvbG9yOmNvbG9yRXJyb3J9fX0sIiYtZ3JvdXAiOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLGVzX3N0eWxlLldmKSh0b2tlbikpLCgwLHN0eWxlLnM3KSh0b2tlbikpLHsiJi13cmFwcGVyIjpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7ZGlzcGxheToiaW5saW5lLWJsb2NrIix0ZXh0QWxpZ246InN0YXJ0Iix2ZXJ0aWNhbEFsaWduOiJ0b3AiLFtgJHtjb21wb25lbnRDbHN9LWFmZml4LXdyYXBwZXJgXTp7d2lkdGg6IjEwMCUifSwiJi1sZyI6e1tgJHtjb21wb25lbnRDbHN9LWdyb3VwLWFkZG9uYF06e2JvcmRlclJhZGl1czpib3JkZXJSYWRpdXNMRyxmb250U2l6ZTp0b2tlbi5mb250U2l6ZUxHfX0sIiYtc20iOntbYCR7Y29tcG9uZW50Q2xzfS1ncm91cC1hZGRvbmBdOntib3JkZXJSYWRpdXM6Ym9yZGVyUmFkaXVzU019fX0sKDAsdmFyaWFudHMuaXIpKHRva2VuKSksKDAsdmFyaWFudHMuUzUpKHRva2VuKSkse1tgJjpub3QoJHtjb21wb25lbnRDbHN9LWNvbXBhY3QtZmlyc3QtaXRlbSk6bm90KCR7Y29tcG9uZW50Q2xzfS1jb21wYWN0LWxhc3QtaXRlbSkke2NvbXBvbmVudENsc30tY29tcGFjdC1pdGVtYF06e1tgJHtjb21wb25lbnRDbHN9LCAke2NvbXBvbmVudENsc30tZ3JvdXAtYWRkb25gXTp7Ym9yZGVyUmFkaXVzOjB9fSxbYCY6bm90KCR7Y29tcG9uZW50Q2xzfS1jb21wYWN0LWxhc3QtaXRlbSkke2NvbXBvbmVudENsc30tY29tcGFjdC1maXJzdC1pdGVtYF06e1tgJHtjb21wb25lbnRDbHN9LCAke2NvbXBvbmVudENsc30tZ3JvdXAtYWRkb25gXTp7Ym9yZGVyU3RhcnRFbmRSYWRpdXM6MCxib3JkZXJFbmRFbmRSYWRpdXM6MH19LFtgJjpub3QoJHtjb21wb25lbnRDbHN9LWNvbXBhY3QtZmlyc3QtaXRlbSkke2NvbXBvbmVudENsc30tY29tcGFjdC1sYXN0LWl0ZW1gXTp7W2Ake2NvbXBvbmVudENsc30sICR7Y29tcG9uZW50Q2xzfS1ncm91cC1hZGRvbmBdOntib3JkZXJTdGFydFN0YXJ0UmFkaXVzOjAsYm9yZGVyRW5kU3RhcnRSYWRpdXM6MH19fSl9KSxbYCYtZGlzYWJsZWQgJHtjb21wb25lbnRDbHN9LWlucHV0YF06e2N1cnNvcjoibm90LWFsbG93ZWQifSxbY29tcG9uZW50Q2xzXTp7IiYtaW5wdXQiOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsZXNfc3R5bGUuV2YpKHRva2VuKSkse3dpZHRoOiIxMDAlIixwYWRkaW5nOmAkeygwLGNzc2luanNfZXMuYmYpKHBhZGRpbmdCbG9jayl9ICR7KDAsY3NzaW5qc19lcy5iZikocGFkZGluZ0lubGluZSl9YCx0ZXh0QWxpZ246InN0YXJ0IixiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50Iixib3JkZXI6MCxib3JkZXJSYWRpdXMsb3V0bGluZTowLHRyYW5zaXRpb246YGFsbCAke21vdGlvbkR1cmF0aW9uTWlkfSBsaW5lYXJgLGFwcGVhcmFuY2U6InRleHRmaWVsZCIsZm9udFNpemU6ImluaGVyaXQifSksKDAsc3R5bGUubnopKHRva2VuLmNvbG9yVGV4dFBsYWNlaG9sZGVyKSkseycmW3R5cGU9Im51bWJlciJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLCAmW3R5cGU9Im51bWJlciJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uJzp7bWFyZ2luOjAsYXBwZWFyYW5jZToibm9uZSJ9fSl9LFtgJjpob3ZlciAke2NvbXBvbmVudENsc30taGFuZGxlci13cmFwLCAmLWZvY3VzZWQgJHtjb21wb25lbnRDbHN9LWhhbmRsZXItd3JhcGBdOnt3aWR0aDp0b2tlbi5oYW5kbGVXaWR0aCxvcGFjaXR5OjF9fSl9LHtbY29tcG9uZW50Q2xzXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7W2Ake2NvbXBvbmVudENsc30taGFuZGxlci13cmFwYF06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaW5zZXRCbG9ja1N0YXJ0OjAsaW5zZXRJbmxpbmVFbmQ6MCx3aWR0aDp0b2tlbi5oYW5kbGVWaXNpYmxlV2lkdGgsb3BhY2l0eTpoYW5kbGVPcGFjaXR5LGhlaWdodDoiMTAwJSIsYm9yZGVyU3RhcnRTdGFydFJhZGl1czowLGJvcmRlclN0YXJ0RW5kUmFkaXVzOmJvcmRlclJhZGl1cyxib3JkZXJFbmRFbmRSYWRpdXM6Ym9yZGVyUmFkaXVzLGJvcmRlckVuZFN0YXJ0UmFkaXVzOjAsZGlzcGxheToiZmxleCIsZmxleERpcmVjdGlvbjoiY29sdW1uIixhbGlnbkl0ZW1zOiJzdHJldGNoIix0cmFuc2l0aW9uOmBhbGwgJHttb3Rpb25EdXJhdGlvbk1pZH1gLG92ZXJmbG93OiJoaWRkZW4iLFtgJHtjb21wb25lbnRDbHN9LWhhbmRsZXJgXTp7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoiY2VudGVyIixmbGV4OiJhdXRvIixoZWlnaHQ6IjQwJSIsW2AKICAgICAgICAgICAgICAke2NvbXBvbmVudENsc30taGFuZGxlci11cC1pbm5lciwKICAgICAgICAgICAgICAke2NvbXBvbmVudENsc30taGFuZGxlci1kb3duLWlubmVyCiAgICAgICAgICAgIGBdOnttYXJnaW5JbmxpbmVFbmQ6MCxmb250U2l6ZTp0b2tlbi5oYW5kbGVGb250U2l6ZX19fSxbYCR7Y29tcG9uZW50Q2xzfS1oYW5kbGVyYF06e2hlaWdodDoiNTAlIixvdmVyZmxvdzoiaGlkZGVuIixjb2xvcjpjb2xvckljb24sZm9udFdlaWdodDoiYm9sZCIsbGluZUhlaWdodDowLHRleHRBbGlnbjoiY2VudGVyIixjdXJzb3I6InBvaW50ZXIiLGJvcmRlcklubGluZVN0YXJ0OmAkeygwLGNzc2luanNfZXMuYmYpKGxpbmVXaWR0aCl9ICR7bGluZVR5cGV9ICR7aGFuZGxlQm9yZGVyQ29sb3J9YCx0cmFuc2l0aW9uOmBhbGwgJHttb3Rpb25EdXJhdGlvbk1pZH0gbGluZWFyYCwiJjphY3RpdmUiOntiYWNrZ3JvdW5kOmhhbmRsZUFjdGl2ZUJnfSwiJjpob3ZlciI6e2hlaWdodDoiNjAlIixbYAogICAgICAgICAgICAgICR7Y29tcG9uZW50Q2xzfS1oYW5kbGVyLXVwLWlubmVyLAogICAgICAgICAgICAgICR7Y29tcG9uZW50Q2xzfS1oYW5kbGVyLWRvd24taW5uZXIKICAgICAgICAgICAgYF06e2NvbG9yOmhhbmRsZUhvdmVyQ29sb3J9fSwiJi11cC1pbm5lciwgJi1kb3duLWlubmVyIjpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsZXNfc3R5bGUuUm8pKCkpLHtjb2xvcjpjb2xvckljb24sdHJhbnNpdGlvbjpgYWxsICR7bW90aW9uRHVyYXRpb25NaWR9IGxpbmVhcmAsdXNlclNlbGVjdDoibm9uZSJ9KX0sW2Ake2NvbXBvbmVudENsc30taGFuZGxlci11cGBdOntib3JkZXJTdGFydEVuZFJhZGl1czpib3JkZXJSYWRpdXN9LFtgJHtjb21wb25lbnRDbHN9LWhhbmRsZXItZG93bmBdOntib3JkZXJFbmRFbmRSYWRpdXM6Ym9yZGVyUmFkaXVzfX0sZ2VuUmFkaXVzU3R5bGUodG9rZW4sImxnIikpLGdlblJhZGl1c1N0eWxlKHRva2VuLCJzbSIpKSx7IiYtZGlzYWJsZWQsICYtcmVhZG9ubHkiOntbYCR7Y29tcG9uZW50Q2xzfS1oYW5kbGVyLXdyYXBgXTp7ZGlzcGxheToibm9uZSJ9LFtgJHtjb21wb25lbnRDbHN9LWlucHV0YF06e2NvbG9yOiJpbmhlcml0In19LFtgCiAgICAgICAgICAke2NvbXBvbmVudENsc30taGFuZGxlci11cC1kaXNhYmxlZCwKICAgICAgICAgICR7Y29tcG9uZW50Q2xzfS1oYW5kbGVyLWRvd24tZGlzYWJsZWQKICAgICAgICBgXTp7Y3Vyc29yOiJub3QtYWxsb3dlZCJ9LFtgCiAgICAgICAgICAke2NvbXBvbmVudENsc30taGFuZGxlci11cC1kaXNhYmxlZDpob3ZlciAmLWhhbmRsZXItdXAtaW5uZXIsCiAgICAgICAgICAke2NvbXBvbmVudENsc30taGFuZGxlci1kb3duLWRpc2FibGVkOmhvdmVyICYtaGFuZGxlci1kb3duLWlubmVyCiAgICAgICAgYF06e2NvbG9yOmNvbG9yVGV4dERpc2FibGVkfX0pfV19LGdlbkFmZml4V3JhcHBlclN0eWxlcz10b2tlbj0+e2xldHtjb21wb25lbnRDbHMscGFkZGluZ0Jsb2NrLHBhZGRpbmdJbmxpbmUsaW5wdXRBZmZpeFBhZGRpbmcsY29udHJvbFdpZHRoLGJvcmRlclJhZGl1c0xHLGJvcmRlclJhZGl1c1NNLHBhZGRpbmdJbmxpbmVMRyxwYWRkaW5nSW5saW5lU00scGFkZGluZ0Jsb2NrTEcscGFkZGluZ0Jsb2NrU00sbW90aW9uRHVyYXRpb25NaWR9PXRva2VuO3JldHVybntbYCR7Y29tcG9uZW50Q2xzfS1hZmZpeC13cmFwcGVyYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtbYGlucHV0JHtjb21wb25lbnRDbHN9LWlucHV0YF06e3BhZGRpbmc6YCR7KDAsY3NzaW5qc19lcy5iZikocGFkZGluZ0Jsb2NrKX0gMGB9fSwoMCxzdHlsZS5paykodG9rZW4pKSx7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJpbmxpbmUtZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIix3aWR0aDpjb250cm9sV2lkdGgscGFkZGluZzowLHBhZGRpbmdJbmxpbmVTdGFydDpwYWRkaW5nSW5saW5lLCImLWxnIjp7Ym9yZGVyUmFkaXVzOmJvcmRlclJhZGl1c0xHLHBhZGRpbmdJbmxpbmVTdGFydDpwYWRkaW5nSW5saW5lTEcsW2BpbnB1dCR7Y29tcG9uZW50Q2xzfS1pbnB1dGBdOntwYWRkaW5nOmAkeygwLGNzc2luanNfZXMuYmYpKHBhZGRpbmdCbG9ja0xHKX0gMGB9fSwiJi1zbSI6e2JvcmRlclJhZGl1czpib3JkZXJSYWRpdXNTTSxwYWRkaW5nSW5saW5lU3RhcnQ6cGFkZGluZ0lubGluZVNNLFtgaW5wdXQke2NvbXBvbmVudENsc30taW5wdXRgXTp7cGFkZGluZzpgJHsoMCxjc3NpbmpzX2VzLmJmKShwYWRkaW5nQmxvY2tTTSl9IDBgfX0sW2AmOm5vdCgke2NvbXBvbmVudENsc30tZGlzYWJsZWQpOmhvdmVyYF06e3pJbmRleDoxfSwiJi1mb2N1c2VkLCAmOmZvY3VzIjp7ekluZGV4OjF9LFtgJi1kaXNhYmxlZCA+ICR7Y29tcG9uZW50Q2xzfS1kaXNhYmxlZGBdOntiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCJ9LFtgPiBkaXYke2NvbXBvbmVudENsc31gXTp7d2lkdGg6IjEwMCUiLGJvcmRlcjoibm9uZSIsb3V0bGluZToibm9uZSIsW2AmJHtjb21wb25lbnRDbHN9LWZvY3VzZWRgXTp7Ym94U2hhZG93OiJub25lICFpbXBvcnRhbnQifX0sIiY6OmJlZm9yZSI6e2Rpc3BsYXk6ImlubGluZS1ibG9jayIsd2lkdGg6MCx2aXNpYmlsaXR5OiJoaWRkZW4iLGNvbnRlbnQ6JyJcXGEwIid9LFtgJHtjb21wb25lbnRDbHN9LWhhbmRsZXItd3JhcGBdOnt6SW5kZXg6Mn0sW2NvbXBvbmVudENsc106e3Bvc2l0aW9uOiJzdGF0aWMiLGNvbG9yOiJpbmhlcml0IiwiJi1wcmVmaXgsICYtc3VmZml4Ijp7ZGlzcGxheToiZmxleCIsZmxleDoibm9uZSIsYWxpZ25JdGVtczoiY2VudGVyIixwb2ludGVyRXZlbnRzOiJub25lIn0sIiYtcHJlZml4Ijp7bWFyZ2luSW5saW5lRW5kOmlucHV0QWZmaXhQYWRkaW5nfSwiJi1zdWZmaXgiOntpbnNldEJsb2NrU3RhcnQ6MCxpbnNldElubGluZUVuZDowLGhlaWdodDoiMTAwJSIsbWFyZ2luSW5saW5lRW5kOnBhZGRpbmdJbmxpbmUsbWFyZ2luSW5saW5lU3RhcnQ6aW5wdXRBZmZpeFBhZGRpbmcsdHJhbnNpdGlvbjpgbWFyZ2luICR7bW90aW9uRHVyYXRpb25NaWR9YH19LFtgJjpob3ZlciAke2NvbXBvbmVudENsc30taGFuZGxlci13cmFwLCAmLWZvY3VzZWQgJHtjb21wb25lbnRDbHN9LWhhbmRsZXItd3JhcGBdOnt3aWR0aDp0b2tlbi5oYW5kbGVXaWR0aCxvcGFjaXR5OjF9LFtgJjpub3QoJHtjb21wb25lbnRDbHN9LWFmZml4LXdyYXBwZXItd2l0aG91dC1jb250cm9scyk6aG92ZXIgJHtjb21wb25lbnRDbHN9LXN1ZmZpeGBdOnttYXJnaW5JbmxpbmVFbmQ6dG9rZW4uY2FsYyh0b2tlbi5oYW5kbGVXaWR0aCkuYWRkKHBhZGRpbmdJbmxpbmUpLmVxdWFsKCl9fSl9fTt2YXIgaW5wdXRfbnVtYmVyX3N0eWxlPSgwLGdlblN0eWxlVXRpbHMuSSQpKCJJbnB1dE51bWJlciIsdG9rZW49PntsZXQgaW5wdXROdW1iZXJUb2tlbj0oMCxjc3NpbmpzX3V0aWxzX2VzLklYKSh0b2tlbiwoMCxzdHlsZV90b2tlbi5lKSh0b2tlbikpO3JldHVybltnZW5JbnB1dE51bWJlclN0eWxlcyhpbnB1dE51bWJlclRva2VuKSxnZW5BZmZpeFdyYXBwZXJTdHlsZXMoaW5wdXROdW1iZXJUb2tlbiksKDAsY29tcGFjdF9pdGVtLmMpKGlucHV0TnVtYmVyVG9rZW4pXX0scHJlcGFyZUNvbXBvbmVudFRva2VuLHt1bml0bGVzczp7aGFuZGxlT3BhY2l0eTohMH19KSxfX3Jlc3Q9ZnVuY3Rpb24ocyxlKXt2YXIgdD17fTtmb3IodmFyIHAgaW4gcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxwKSYmMD5lLmluZGV4T2YocCkmJih0W3BdPXNbcF0pO2lmKG51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKWZvcih2YXIgaT0wLHA9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtpPHAubGVuZ3RoO2krKykwPmUuaW5kZXhPZihwW2ldKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMscFtpXSkmJih0W3BbaV1dPXNbcFtpXV0pO3JldHVybiB0fTtsZXQgaW5wdXRfbnVtYmVyX0lucHV0TnVtYmVyPXJlYWN0LmZvcndhcmRSZWYoKHByb3BzLHJlZik9PntsZXR7Z2V0UHJlZml4Q2xzLGRpcmVjdGlvbn09cmVhY3QudXNlQ29udGV4dChjb250ZXh0LkVfKSxpbnB1dFJlZj1yZWFjdC51c2VSZWYobnVsbCk7cmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsKCk9PmlucHV0UmVmLmN1cnJlbnQpO2xldHtjbGFzc05hbWUscm9vdENsYXNzTmFtZSxzaXplOmN1c3RvbWl6ZVNpemUsZGlzYWJsZWQ6Y3VzdG9tRGlzYWJsZWQscHJlZml4Q2xzOmN1c3RvbWl6ZVByZWZpeENscyxhZGRvbkJlZm9yZSxhZGRvbkFmdGVyLHByZWZpeCxzdWZmaXgsYm9yZGVyZWQscmVhZE9ubHksc3RhdHVzOmN1c3RvbVN0YXR1cyxjb250cm9scyx2YXJpYW50OmN1c3RvbVZhcmlhbnR9PXByb3BzLG90aGVycz1fX3Jlc3QocHJvcHMsWyJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwic2l6ZSIsImRpc2FibGVkIiwicHJlZml4Q2xzIiwiYWRkb25CZWZvcmUiLCJhZGRvbkFmdGVyIiwicHJlZml4Iiwic3VmZml4IiwiYm9yZGVyZWQiLCJyZWFkT25seSIsInN0YXR1cyIsImNvbnRyb2xzIiwidmFyaWFudCJdKSxwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJpbnB1dC1udW1iZXIiLGN1c3RvbWl6ZVByZWZpeENscykscm9vdENscz0oMCx1c2VDU1NWYXJDbHMuWikocHJlZml4Q2xzKSxbd3JhcENTU1ZhcixoYXNoSWQsY3NzVmFyQ2xzXT1pbnB1dF9udW1iZXJfc3R5bGUocHJlZml4Q2xzLHJvb3RDbHMpLHtjb21wYWN0U2l6ZSxjb21wYWN0SXRlbUNsYXNzbmFtZXN9PSgwLENvbXBhY3QucmkpKHByZWZpeENscyxkaXJlY3Rpb24pLHVwSWNvbj1yZWFjdC5jcmVhdGVFbGVtZW50KFJlZkljb24se2NsYXNzTmFtZTpgJHtwcmVmaXhDbHN9LWhhbmRsZXItdXAtaW5uZXJgfSksZG93bkljb249cmVhY3QuY3JlYXRlRWxlbWVudChEb3duT3V0bGluZWQuWix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30taGFuZGxlci1kb3duLWlubmVyYH0pOyJvYmplY3QiPT10eXBlb2YgY29udHJvbHMmJih1cEljb249dm9pZCAwPT09Y29udHJvbHMudXBJY29uP3VwSWNvbjpyZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30taGFuZGxlci11cC1pbm5lcmB9LGNvbnRyb2xzLnVwSWNvbiksZG93bkljb249dm9pZCAwPT09Y29udHJvbHMuZG93bkljb24/ZG93bkljb246cmVhY3QuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtwcmVmaXhDbHN9LWhhbmRsZXItZG93bi1pbm5lcmB9LGNvbnRyb2xzLmRvd25JY29uKSk7bGV0e2hhc0ZlZWRiYWNrLHN0YXR1czpjb250ZXh0U3RhdHVzLGlzRm9ybUl0ZW1JbnB1dCxmZWVkYmFja0ljb259PXJlYWN0LnVzZUNvbnRleHQoZm9ybV9jb250ZXh0LmFNKSxtZXJnZWRTdGF0dXM9KDAsc3RhdHVzVXRpbHMuRikoY29udGV4dFN0YXR1cyxjdXN0b21TdGF0dXMpLG1lcmdlZFNpemU9KDAsdXNlU2l6ZS5aKShjdHg9Pnt2YXIgX2E7cmV0dXJuIG51bGwhPT0oX2E9bnVsbCE9Y3VzdG9taXplU2l6ZT9jdXN0b21pemVTaXplOmNvbXBhY3RTaXplKSYmdm9pZCAwIT09X2E/X2E6Y3R4fSksZGlzYWJsZWQ9cmVhY3QudXNlQ29udGV4dChEaXNhYmxlZENvbnRleHQuWiksbWVyZ2VkRGlzYWJsZWQ9bnVsbCE9Y3VzdG9tRGlzYWJsZWQ/Y3VzdG9tRGlzYWJsZWQ6ZGlzYWJsZWQsW3ZhcmlhbnQsZW5hYmxlVmFyaWFudENsc109KDAsdXNlVmFyaWFudHMuWikoImlucHV0TnVtYmVyIixjdXN0b21WYXJpYW50LGJvcmRlcmVkKSxzdWZmaXhOb2RlPWhhc0ZlZWRiYWNrJiZyZWFjdC5jcmVhdGVFbGVtZW50KHJlYWN0LkZyYWdtZW50LG51bGwsZmVlZGJhY2tJY29uKSxpbnB1dE51bWJlckNsYXNzPWNsYXNzbmFtZXNfZGVmYXVsdCgpKHtbYCR7cHJlZml4Q2xzfS1sZ2BdOiJsYXJnZSI9PT1tZXJnZWRTaXplLFtgJHtwcmVmaXhDbHN9LXNtYF06InNtYWxsIj09PW1lcmdlZFNpemUsW2Ake3ByZWZpeENsc30tcnRsYF06InJ0bCI9PT1kaXJlY3Rpb24sW2Ake3ByZWZpeENsc30taW4tZm9ybS1pdGVtYF06aXNGb3JtSXRlbUlucHV0fSxoYXNoSWQpLHdyYXBwZXJDbGFzc05hbWU9YCR7cHJlZml4Q2xzfS1ncm91cGAsZWxlbWVudD1yZWFjdC5jcmVhdGVFbGVtZW50KElucHV0TnVtYmVyLE9iamVjdC5hc3NpZ24oe3JlZjppbnB1dFJlZixkaXNhYmxlZDptZXJnZWREaXNhYmxlZCxjbGFzc05hbWU6Y2xhc3NuYW1lc19kZWZhdWx0KCkoY3NzVmFyQ2xzLHJvb3RDbHMsY2xhc3NOYW1lLHJvb3RDbGFzc05hbWUsY29tcGFjdEl0ZW1DbGFzc25hbWVzKSx1cEhhbmRsZXI6dXBJY29uLGRvd25IYW5kbGVyOmRvd25JY29uLHByZWZpeENsczpwcmVmaXhDbHMscmVhZE9ubHk6cmVhZE9ubHksY29udHJvbHM6ImJvb2xlYW4iPT10eXBlb2YgY29udHJvbHM/Y29udHJvbHM6dm9pZCAwLHByZWZpeDpwcmVmaXgsc3VmZml4OnN1ZmZpeE5vZGV8fHN1ZmZpeCxhZGRvbkJlZm9yZTphZGRvbkJlZm9yZSYmcmVhY3QuY3JlYXRlRWxlbWVudChDb250ZXh0SXNvbGF0b3IuWix7Zm9ybTohMCxzcGFjZTohMH0sYWRkb25CZWZvcmUpLGFkZG9uQWZ0ZXI6YWRkb25BZnRlciYmcmVhY3QuY3JlYXRlRWxlbWVudChDb250ZXh0SXNvbGF0b3IuWix7Zm9ybTohMCxzcGFjZTohMH0sYWRkb25BZnRlciksY2xhc3NOYW1lczp7aW5wdXQ6aW5wdXROdW1iZXJDbGFzcyx2YXJpYW50OmNsYXNzbmFtZXNfZGVmYXVsdCgpKHtbYCR7cHJlZml4Q2xzfS0ke3ZhcmlhbnR9YF06ZW5hYmxlVmFyaWFudENsc30sKDAsc3RhdHVzVXRpbHMuWikocHJlZml4Q2xzLG1lcmdlZFN0YXR1cyxoYXNGZWVkYmFjaykpLGFmZml4V3JhcHBlcjpjbGFzc25hbWVzX2RlZmF1bHQoKSh7W2Ake3ByZWZpeENsc30tYWZmaXgtd3JhcHBlci1zbWBdOiJzbWFsbCI9PT1tZXJnZWRTaXplLFtgJHtwcmVmaXhDbHN9LWFmZml4LXdyYXBwZXItbGdgXToibGFyZ2UiPT09bWVyZ2VkU2l6ZSxbYCR7cHJlZml4Q2xzfS1hZmZpeC13cmFwcGVyLXJ0bGBdOiJydGwiPT09ZGlyZWN0aW9uLFtgJHtwcmVmaXhDbHN9LWFmZml4LXdyYXBwZXItd2l0aG91dC1jb250cm9sc2BdOiExPT09Y29udHJvbHN8fG1lcmdlZERpc2FibGVkfSxoYXNoSWQpLHdyYXBwZXI6Y2xhc3NuYW1lc19kZWZhdWx0KCkoe1tgJHt3cmFwcGVyQ2xhc3NOYW1lfS1ydGxgXToicnRsIj09PWRpcmVjdGlvbn0saGFzaElkKSxncm91cFdyYXBwZXI6Y2xhc3NuYW1lc19kZWZhdWx0KCkoe1tgJHtwcmVmaXhDbHN9LWdyb3VwLXdyYXBwZXItc21gXToic21hbGwiPT09bWVyZ2VkU2l6ZSxbYCR7cHJlZml4Q2xzfS1ncm91cC13cmFwcGVyLWxnYF06ImxhcmdlIj09PW1lcmdlZFNpemUsW2Ake3ByZWZpeENsc30tZ3JvdXAtd3JhcHBlci1ydGxgXToicnRsIj09PWRpcmVjdGlvbixbYCR7cHJlZml4Q2xzfS1ncm91cC13cmFwcGVyLSR7dmFyaWFudH1gXTplbmFibGVWYXJpYW50Q2xzfSwoMCxzdGF0dXNVdGlscy5aKShgJHtwcmVmaXhDbHN9LWdyb3VwLXdyYXBwZXJgLG1lcmdlZFN0YXR1cyxoYXNGZWVkYmFjayksaGFzaElkKX19LG90aGVycykpO3JldHVybiB3cmFwQ1NTVmFyKGVsZW1lbnQpfSksVHlwZWRJbnB1dE51bWJlcj1pbnB1dF9udW1iZXJfSW5wdXROdW1iZXIsUHVyZUlucHV0TnVtYmVyPXByb3BzPT5yZWFjdC5jcmVhdGVFbGVtZW50KGNvbmZpZ19wcm92aWRlci5aUCx7dGhlbWU6e2NvbXBvbmVudHM6e0lucHV0TnVtYmVyOntoYW5kbGVWaXNpYmxlOiEwfX19fSxyZWFjdC5jcmVhdGVFbGVtZW50KGlucHV0X251bWJlcl9JbnB1dE51bWJlcixPYmplY3QuYXNzaWduKHt9LHByb3BzKSkpO1R5cGVkSW5wdXROdW1iZXIuX0ludGVybmFsUGFuZWxEb05vdFVzZU9yWW91V2lsbEJlRmlyZWQ9UHVyZUlucHV0TnVtYmVyO3ZhciBpbnB1dF9udW1iZXI9VHlwZWRJbnB1dE51bWJlcn0sMjk2MTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBpbnB1dF9UZXh0QXJlYX19KTt2YXIgaGlkZGVuVGV4dGFyZWEscmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksY2xhc3NuYW1lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDEzMTQ0KSxjbGFzc25hbWVzX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGNsYXNzbmFtZXMpLGVzbV9leHRlbmRzPV9fd2VicGFja19yZXF1aXJlX18oODc0NjIpLGRlZmluZVByb3BlcnR5PV9fd2VicGFja19yZXF1aXJlX18oNDk0Miksb2JqZWN0U3ByZWFkMj1fX3dlYnBhY2tfcmVxdWlyZV9fKDE0MTMpLHRvQ29uc3VtYWJsZUFycmF5PV9fd2VicGFja19yZXF1aXJlX18oNzQ5MDIpLHNsaWNlZFRvQXJyYXk9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzY4NSksb2JqZWN0V2l0aG91dFByb3BlcnRpZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg5MSksbm9kZV9tb2R1bGVzX2NsYXNzbmFtZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NDE4NCksbm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4obm9kZV9tb2R1bGVzX2NsYXNzbmFtZXMpLGVzPV9fd2VicGFja19yZXF1aXJlX18oNjc2NTYpLHVzZUNvdW50PV9fd2VicGFja19yZXF1aXJlX18oODIyMzQpLGNvbW1vblV0aWxzPV9fd2VicGFja19yZXF1aXJlX18oODc4ODcpLHVzZU1lcmdlZFN0YXRlPV9fd2VicGFja19yZXF1aXJlX18oMjE3NzApLGVzbV90eXBlb2Y9X193ZWJwYWNrX3JlcXVpcmVfXyg3MTAwMikscmNfcmVzaXplX29ic2VydmVyX2VzPV9fd2VicGFja19yZXF1aXJlX18oMjcyNTQpLHVzZUxheW91dEVmZmVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDg0MTApLHJhZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDc1MTY0KSxTSVpJTkdfU1RZTEU9WyJsZXR0ZXItc3BhY2luZyIsImxpbmUtaGVpZ2h0IiwicGFkZGluZy10b3AiLCJwYWRkaW5nLWJvdHRvbSIsImZvbnQtZmFtaWx5IiwiZm9udC13ZWlnaHQiLCJmb250LXNpemUiLCJmb250LXZhcmlhbnQiLCJ0ZXh0LXJlbmRlcmluZyIsInRleHQtdHJhbnNmb3JtIiwid2lkdGgiLCJ0ZXh0LWluZGVudCIsInBhZGRpbmctbGVmdCIsInBhZGRpbmctcmlnaHQiLCJib3JkZXItd2lkdGgiLCJib3gtc2l6aW5nIiwid29yZC1icmVhayIsIndoaXRlLXNwYWNlIl0sY29tcHV0ZWRTdHlsZUNhY2hlPXt9LF9leGNsdWRlZD1bInByZWZpeENscyIsImRlZmF1bHRWYWx1ZSIsInZhbHVlIiwiYXV0b1NpemUiLCJvblJlc2l6ZSIsImNsYXNzTmFtZSIsInN0eWxlIiwiZGlzYWJsZWQiLCJvbkNoYW5nZSIsIm9uSW50ZXJuYWxBdXRvU2l6ZSJdLFJlc2l6YWJsZVRleHRBcmVhPXJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24ocHJvcHMscmVmKXt2YXIgcHJlZml4Q2xzPXByb3BzLnByZWZpeENscyxkZWZhdWx0VmFsdWU9cHJvcHMuZGVmYXVsdFZhbHVlLHZhbHVlPXByb3BzLnZhbHVlLGF1dG9TaXplPXByb3BzLmF1dG9TaXplLG9uUmVzaXplPXByb3BzLm9uUmVzaXplLGNsYXNzTmFtZT1wcm9wcy5jbGFzc05hbWUsc3R5bGU9cHJvcHMuc3R5bGUsZGlzYWJsZWQ9cHJvcHMuZGlzYWJsZWQsb25DaGFuZ2U9cHJvcHMub25DaGFuZ2UscmVzdFByb3BzPShwcm9wcy5vbkludGVybmFsQXV0b1NpemUsKDAsb2JqZWN0V2l0aG91dFByb3BlcnRpZXMuWikocHJvcHMsX2V4Y2x1ZGVkKSksX3VzZU1lcmdlZFN0YXRlPSgwLHVzZU1lcmdlZFN0YXRlLlopKGRlZmF1bHRWYWx1ZSx7dmFsdWU6dmFsdWUscG9zdFN0YXRlOmZ1bmN0aW9uKHZhbCl7cmV0dXJuIG51bGwhPXZhbD92YWw6IiJ9fSksX3VzZU1lcmdlZFN0YXRlMj0oMCxzbGljZWRUb0FycmF5LlopKF91c2VNZXJnZWRTdGF0ZSwyKSxtZXJnZWRWYWx1ZT1fdXNlTWVyZ2VkU3RhdGUyWzBdLHNldE1lcmdlZFZhbHVlPV91c2VNZXJnZWRTdGF0ZTJbMV0sdGV4dGFyZWFSZWY9cmVhY3QudXNlUmVmKCk7cmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsZnVuY3Rpb24oKXtyZXR1cm57dGV4dEFyZWE6dGV4dGFyZWFSZWYuY3VycmVudH19KTt2YXIgX1JlYWN0JHVzZU1lbW89cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBhdXRvU2l6ZSYmIm9iamVjdCI9PT0oMCxlc21fdHlwZW9mLlopKGF1dG9TaXplKT9bYXV0b1NpemUubWluUm93cyxhdXRvU2l6ZS5tYXhSb3dzXTpbXX0sW2F1dG9TaXplXSksX1JlYWN0JHVzZU1lbW8yPSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZU1lbW8sMiksbWluUm93cz1fUmVhY3QkdXNlTWVtbzJbMF0sbWF4Um93cz1fUmVhY3QkdXNlTWVtbzJbMV0sbmVlZEF1dG9TaXplPSEhYXV0b1NpemUsZml4RmlyZWZveEF1dG9TY3JvbGw9ZnVuY3Rpb24oKXt0cnl7aWYoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXRleHRhcmVhUmVmLmN1cnJlbnQpe3ZhciBfdGV4dGFyZWFSZWYkY3VycmVudD10ZXh0YXJlYVJlZi5jdXJyZW50LHNlbGVjdGlvblN0YXJ0PV90ZXh0YXJlYVJlZiRjdXJyZW50LnNlbGVjdGlvblN0YXJ0LHNlbGVjdGlvbkVuZD1fdGV4dGFyZWFSZWYkY3VycmVudC5zZWxlY3Rpb25FbmQsc2Nyb2xsVG9wPV90ZXh0YXJlYVJlZiRjdXJyZW50LnNjcm9sbFRvcDt0ZXh0YXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvblN0YXJ0LHNlbGVjdGlvbkVuZCksdGV4dGFyZWFSZWYuY3VycmVudC5zY3JvbGxUb3A9c2Nyb2xsVG9wfX1jYXRjaChlKXt9fSxfUmVhY3QkdXNlU3RhdGU9cmVhY3QudXNlU3RhdGUoMiksX1JlYWN0JHVzZVN0YXRlMj0oMCxzbGljZWRUb0FycmF5LlopKF9SZWFjdCR1c2VTdGF0ZSwyKSxyZXNpemVTdGF0ZT1fUmVhY3QkdXNlU3RhdGUyWzBdLHNldFJlc2l6ZVN0YXRlPV9SZWFjdCR1c2VTdGF0ZTJbMV0sX1JlYWN0JHVzZVN0YXRlMz1yZWFjdC51c2VTdGF0ZSgpLF9SZWFjdCR1c2VTdGF0ZTQ9KDAsc2xpY2VkVG9BcnJheS5aKShfUmVhY3QkdXNlU3RhdGUzLDIpLGF1dG9TaXplU3R5bGU9X1JlYWN0JHVzZVN0YXRlNFswXSxzZXRBdXRvU2l6ZVN0eWxlPV9SZWFjdCR1c2VTdGF0ZTRbMV0sc3RhcnRSZXNpemU9ZnVuY3Rpb24oKXtzZXRSZXNpemVTdGF0ZSgwKX07KDAsdXNlTGF5b3V0RWZmZWN0LlopKGZ1bmN0aW9uKCl7bmVlZEF1dG9TaXplJiZzdGFydFJlc2l6ZSgpfSxbdmFsdWUsbWluUm93cyxtYXhSb3dzLG5lZWRBdXRvU2l6ZV0pLCgwLHVzZUxheW91dEVmZmVjdC5aKShmdW5jdGlvbigpe2lmKDA9PT1yZXNpemVTdGF0ZSlzZXRSZXNpemVTdGF0ZSgxKTtlbHNlIGlmKDE9PT1yZXNpemVTdGF0ZSl7dmFyIHRleHRhcmVhU3R5bGVzPWZ1bmN0aW9uKHVpVGV4dE5vZGUpe3ZhciBvdmVyZmxvd1ksdXNlQ2FjaGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxtaW5Sb3dzPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpudWxsLG1heFJvd3M9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOm51bGw7aGlkZGVuVGV4dGFyZWF8fCgoaGlkZGVuVGV4dGFyZWE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKSkuc2V0QXR0cmlidXRlKCJ0YWItaW5kZXgiLCItMSIpLGhpZGRlblRleHRhcmVhLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIiksaGlkZGVuVGV4dGFyZWEuc2V0QXR0cmlidXRlKCJuYW1lIiwiaGlkZGVuVGV4dGFyZWEiKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGhpZGRlblRleHRhcmVhKSksdWlUZXh0Tm9kZS5nZXRBdHRyaWJ1dGUoIndyYXAiKT9oaWRkZW5UZXh0YXJlYS5zZXRBdHRyaWJ1dGUoIndyYXAiLHVpVGV4dE5vZGUuZ2V0QXR0cmlidXRlKCJ3cmFwIikpOmhpZGRlblRleHRhcmVhLnJlbW92ZUF0dHJpYnV0ZSgid3JhcCIpO3ZhciBfY2FsY3VsYXRlTm9kZVN0eWxpbmc9ZnVuY3Rpb24obm9kZSl7dmFyIHVzZUNhY2hlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sbm9kZVJlZj1ub2RlLmdldEF0dHJpYnV0ZSgiaWQiKXx8bm9kZS5nZXRBdHRyaWJ1dGUoImRhdGEtcmVhY3RpZCIpfHxub2RlLmdldEF0dHJpYnV0ZSgibmFtZSIpO2lmKHVzZUNhY2hlJiZjb21wdXRlZFN0eWxlQ2FjaGVbbm9kZVJlZl0pcmV0dXJuIGNvbXB1dGVkU3R5bGVDYWNoZVtub2RlUmVmXTt2YXIgc3R5bGU9d2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSksYm94U2l6aW5nPXN0eWxlLmdldFByb3BlcnR5VmFsdWUoImJveC1zaXppbmciKXx8c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgiLW1vei1ib3gtc2l6aW5nIil8fHN0eWxlLmdldFByb3BlcnR5VmFsdWUoIi13ZWJraXQtYm94LXNpemluZyIpLHBhZGRpbmdTaXplPXBhcnNlRmxvYXQoc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgicGFkZGluZy1ib3R0b20iKSkrcGFyc2VGbG9hdChzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJwYWRkaW5nLXRvcCIpKSxib3JkZXJTaXplPXBhcnNlRmxvYXQoc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgiYm9yZGVyLWJvdHRvbS13aWR0aCIpKStwYXJzZUZsb2F0KHN0eWxlLmdldFByb3BlcnR5VmFsdWUoImJvcmRlci10b3Atd2lkdGgiKSksbm9kZUluZm89e3NpemluZ1N0eWxlOlNJWklOR19TVFlMRS5tYXAoZnVuY3Rpb24obmFtZSl7cmV0dXJuIiIuY29uY2F0KG5hbWUsIjoiKS5jb25jYXQoc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShuYW1lKSl9KS5qb2luKCI7IikscGFkZGluZ1NpemU6cGFkZGluZ1NpemUsYm9yZGVyU2l6ZTpib3JkZXJTaXplLGJveFNpemluZzpib3hTaXppbmd9O3JldHVybiB1c2VDYWNoZSYmbm9kZVJlZiYmKGNvbXB1dGVkU3R5bGVDYWNoZVtub2RlUmVmXT1ub2RlSW5mbyksbm9kZUluZm99KHVpVGV4dE5vZGUsdXNlQ2FjaGUpLHBhZGRpbmdTaXplPV9jYWxjdWxhdGVOb2RlU3R5bGluZy5wYWRkaW5nU2l6ZSxib3JkZXJTaXplPV9jYWxjdWxhdGVOb2RlU3R5bGluZy5ib3JkZXJTaXplLGJveFNpemluZz1fY2FsY3VsYXRlTm9kZVN0eWxpbmcuYm94U2l6aW5nLHNpemluZ1N0eWxlPV9jYWxjdWxhdGVOb2RlU3R5bGluZy5zaXppbmdTdHlsZTtoaWRkZW5UZXh0YXJlYS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiIi5jb25jYXQoc2l6aW5nU3R5bGUsIjsiKS5jb25jYXQoIlxuICBtaW4taGVpZ2h0OjAgIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDpub25lICFpbXBvcnRhbnQ7XG4gIGhlaWdodDowICFpbXBvcnRhbnQ7XG4gIHZpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB6LWluZGV4Oi0xMDAwICFpbXBvcnRhbnQ7XG4gIHRvcDowICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OjAgIWltcG9ydGFudDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcbiIpKSxoaWRkZW5UZXh0YXJlYS52YWx1ZT11aVRleHROb2RlLnZhbHVlfHx1aVRleHROb2RlLnBsYWNlaG9sZGVyfHwiIjt2YXIgbWluSGVpZ2h0PXZvaWQgMCxtYXhIZWlnaHQ9dm9pZCAwLGhlaWdodD1oaWRkZW5UZXh0YXJlYS5zY3JvbGxIZWlnaHQ7aWYoImJvcmRlci1ib3giPT09Ym94U2l6aW5nP2hlaWdodCs9Ym9yZGVyU2l6ZToiY29udGVudC1ib3giPT09Ym94U2l6aW5nJiYoaGVpZ2h0LT1wYWRkaW5nU2l6ZSksbnVsbCE9PW1pblJvd3N8fG51bGwhPT1tYXhSb3dzKXtoaWRkZW5UZXh0YXJlYS52YWx1ZT0iICI7dmFyIHNpbmdsZVJvd0hlaWdodD1oaWRkZW5UZXh0YXJlYS5zY3JvbGxIZWlnaHQtcGFkZGluZ1NpemU7bnVsbCE9PW1pblJvd3MmJihtaW5IZWlnaHQ9c2luZ2xlUm93SGVpZ2h0Km1pblJvd3MsImJvcmRlci1ib3giPT09Ym94U2l6aW5nJiYobWluSGVpZ2h0PW1pbkhlaWdodCtwYWRkaW5nU2l6ZStib3JkZXJTaXplKSxoZWlnaHQ9TWF0aC5tYXgobWluSGVpZ2h0LGhlaWdodCkpLG51bGwhPT1tYXhSb3dzJiYobWF4SGVpZ2h0PXNpbmdsZVJvd0hlaWdodCptYXhSb3dzLCJib3JkZXItYm94Ij09PWJveFNpemluZyYmKG1heEhlaWdodD1tYXhIZWlnaHQrcGFkZGluZ1NpemUrYm9yZGVyU2l6ZSksb3ZlcmZsb3dZPWhlaWdodD5tYXhIZWlnaHQ/IiI6ImhpZGRlbiIsaGVpZ2h0PU1hdGgubWluKG1heEhlaWdodCxoZWlnaHQpKX12YXIgc3R5bGU9e2hlaWdodDpoZWlnaHQsb3ZlcmZsb3dZOm92ZXJmbG93WSxyZXNpemU6Im5vbmUifTtyZXR1cm4gbWluSGVpZ2h0JiYoc3R5bGUubWluSGVpZ2h0PW1pbkhlaWdodCksbWF4SGVpZ2h0JiYoc3R5bGUubWF4SGVpZ2h0PW1heEhlaWdodCksc3R5bGV9KHRleHRhcmVhUmVmLmN1cnJlbnQsITEsbWluUm93cyxtYXhSb3dzKTtzZXRSZXNpemVTdGF0ZSgyKSxzZXRBdXRvU2l6ZVN0eWxlKHRleHRhcmVhU3R5bGVzKX1lbHNlIGZpeEZpcmVmb3hBdXRvU2Nyb2xsKCl9LFtyZXNpemVTdGF0ZV0pO3ZhciByZXNpemVSYWZSZWY9cmVhY3QudXNlUmVmKCksY2xlYW5SYWY9ZnVuY3Rpb24oKXtyYWYuWi5jYW5jZWwocmVzaXplUmFmUmVmLmN1cnJlbnQpfTtyZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24oKXtyZXR1cm4gY2xlYW5SYWZ9LFtdKTt2YXIgbWVyZ2VkU3R5bGU9KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LHN0eWxlKSxuZWVkQXV0b1NpemU/YXV0b1NpemVTdHlsZTpudWxsKTtyZXR1cm4oMD09PXJlc2l6ZVN0YXRlfHwxPT09cmVzaXplU3RhdGUpJiYobWVyZ2VkU3R5bGUub3ZlcmZsb3dZPSJoaWRkZW4iLG1lcmdlZFN0eWxlLm92ZXJmbG93WD0iaGlkZGVuIikscmVhY3QuY3JlYXRlRWxlbWVudChyY19yZXNpemVfb2JzZXJ2ZXJfZXMuWix7b25SZXNpemU6ZnVuY3Rpb24oc2l6ZSl7Mj09PXJlc2l6ZVN0YXRlJiYobnVsbD09b25SZXNpemV8fG9uUmVzaXplKHNpemUpLGF1dG9TaXplJiYoY2xlYW5SYWYoKSxyZXNpemVSYWZSZWYuY3VycmVudD0oMCxyYWYuWikoZnVuY3Rpb24oKXtzdGFydFJlc2l6ZSgpfSkpKX0sZGlzYWJsZWQ6IShhdXRvU2l6ZXx8b25SZXNpemUpfSxyZWFjdC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIsKDAsZXNtX2V4dGVuZHMuWikoe30scmVzdFByb3BzLHtyZWY6dGV4dGFyZWFSZWYsc3R5bGU6bWVyZ2VkU3R5bGUsY2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKShwcmVmaXhDbHMsY2xhc3NOYW1lLCgwLGRlZmluZVByb3BlcnR5LlopKHt9LCIiLmNvbmNhdChwcmVmaXhDbHMsIi1kaXNhYmxlZCIpLGRpc2FibGVkKSksZGlzYWJsZWQ6ZGlzYWJsZWQsdmFsdWU6bWVyZ2VkVmFsdWUsb25DaGFuZ2U6ZnVuY3Rpb24oZXZlbnQpe3NldE1lcmdlZFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSksbnVsbD09b25DaGFuZ2V8fG9uQ2hhbmdlKGV2ZW50KX19KSkpfSksVGV4dEFyZWFfZXhjbHVkZWQ9WyJkZWZhdWx0VmFsdWUiLCJ2YWx1ZSIsIm9uRm9jdXMiLCJvbkJsdXIiLCJvbkNoYW5nZSIsImFsbG93Q2xlYXIiLCJtYXhMZW5ndGgiLCJvbkNvbXBvc2l0aW9uU3RhcnQiLCJvbkNvbXBvc2l0aW9uRW5kIiwic3VmZml4IiwicHJlZml4Q2xzIiwic2hvd0NvdW50IiwiY291bnQiLCJjbGFzc05hbWUiLCJzdHlsZSIsImRpc2FibGVkIiwiaGlkZGVuIiwiY2xhc3NOYW1lcyIsInN0eWxlcyIsIm9uUmVzaXplIiwib25DbGVhciIsIm9uUHJlc3NFbnRlciIsInJlYWRPbmx5IiwiYXV0b1NpemUiLCJvbktleURvd24iXSxUZXh0QXJlYT1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKF9yZWYscmVmKXt2YXIgX2NvdW50Q29uZmlnJG1heCxkYXRhQ291bnQsZGVmYXVsdFZhbHVlPV9yZWYuZGVmYXVsdFZhbHVlLGN1c3RvbVZhbHVlPV9yZWYudmFsdWUsb25Gb2N1cz1fcmVmLm9uRm9jdXMsb25CbHVyPV9yZWYub25CbHVyLG9uQ2hhbmdlPV9yZWYub25DaGFuZ2UsYWxsb3dDbGVhcj1fcmVmLmFsbG93Q2xlYXIsbWF4TGVuZ3RoPV9yZWYubWF4TGVuZ3RoLG9uQ29tcG9zaXRpb25TdGFydD1fcmVmLm9uQ29tcG9zaXRpb25TdGFydCxvbkNvbXBvc2l0aW9uRW5kPV9yZWYub25Db21wb3NpdGlvbkVuZCxzdWZmaXg9X3JlZi5zdWZmaXgsX3JlZiRwcmVmaXhDbHM9X3JlZi5wcmVmaXhDbHMscHJlZml4Q2xzPXZvaWQgMD09PV9yZWYkcHJlZml4Q2xzPyJyYy10ZXh0YXJlYSI6X3JlZiRwcmVmaXhDbHMsc2hvd0NvdW50PV9yZWYuc2hvd0NvdW50LGNvdW50PV9yZWYuY291bnQsY2xhc3NOYW1lPV9yZWYuY2xhc3NOYW1lLHN0eWxlPV9yZWYuc3R5bGUsZGlzYWJsZWQ9X3JlZi5kaXNhYmxlZCxoaWRkZW49X3JlZi5oaWRkZW4sY2xhc3NOYW1lcz1fcmVmLmNsYXNzTmFtZXMsc3R5bGVzPV9yZWYuc3R5bGVzLG9uUmVzaXplPV9yZWYub25SZXNpemUsb25DbGVhcj1fcmVmLm9uQ2xlYXIsb25QcmVzc0VudGVyPV9yZWYub25QcmVzc0VudGVyLHJlYWRPbmx5PV9yZWYucmVhZE9ubHksYXV0b1NpemU9X3JlZi5hdXRvU2l6ZSxvbktleURvd249X3JlZi5vbktleURvd24scmVzdD0oMCxvYmplY3RXaXRob3V0UHJvcGVydGllcy5aKShfcmVmLFRleHRBcmVhX2V4Y2x1ZGVkKSxfdXNlTWVyZ2VkU3RhdGU9KDAsdXNlTWVyZ2VkU3RhdGUuWikoZGVmYXVsdFZhbHVlLHt2YWx1ZTpjdXN0b21WYWx1ZSxkZWZhdWx0VmFsdWU6ZGVmYXVsdFZhbHVlfSksX3VzZU1lcmdlZFN0YXRlMj0oMCxzbGljZWRUb0FycmF5LlopKF91c2VNZXJnZWRTdGF0ZSwyKSx2YWx1ZT1fdXNlTWVyZ2VkU3RhdGUyWzBdLHNldFZhbHVlPV91c2VNZXJnZWRTdGF0ZTJbMV0sZm9ybWF0VmFsdWU9bnVsbD09dmFsdWU/IiI6U3RyaW5nKHZhbHVlKSxfUmVhY3QkdXNlU3RhdGU9cmVhY3QudXNlU3RhdGUoITEpLF9SZWFjdCR1c2VTdGF0ZTI9KDAsc2xpY2VkVG9BcnJheS5aKShfUmVhY3QkdXNlU3RhdGUsMiksZm9jdXNlZD1fUmVhY3QkdXNlU3RhdGUyWzBdLHNldEZvY3VzZWQ9X1JlYWN0JHVzZVN0YXRlMlsxXSxjb21wb3NpdGlvblJlZj1yZWFjdC51c2VSZWYoITEpLF9SZWFjdCR1c2VTdGF0ZTM9cmVhY3QudXNlU3RhdGUobnVsbCksX1JlYWN0JHVzZVN0YXRlND0oMCxzbGljZWRUb0FycmF5LlopKF9SZWFjdCR1c2VTdGF0ZTMsMiksdGV4dGFyZWFSZXNpemVkPV9SZWFjdCR1c2VTdGF0ZTRbMF0sc2V0VGV4dGFyZWFSZXNpemVkPV9SZWFjdCR1c2VTdGF0ZTRbMV0saG9sZGVyUmVmPSgwLHJlYWN0LnVzZVJlZikobnVsbCkscmVzaXphYmxlVGV4dEFyZWFSZWY9KDAscmVhY3QudXNlUmVmKShudWxsKSxnZXRUZXh0QXJlYT1mdW5jdGlvbigpe3ZhciBfcmVzaXphYmxlVGV4dEFyZWFSZWY7cmV0dXJuIG51bGw9PT0oX3Jlc2l6YWJsZVRleHRBcmVhUmVmPXJlc2l6YWJsZVRleHRBcmVhUmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1fcmVzaXphYmxlVGV4dEFyZWFSZWY/dm9pZCAwOl9yZXNpemFibGVUZXh0QXJlYVJlZi50ZXh0QXJlYX0sZm9jdXM9ZnVuY3Rpb24oKXtnZXRUZXh0QXJlYSgpLmZvY3VzKCl9OygwLHJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUpKHJlZixmdW5jdGlvbigpe3ZhciBfaG9sZGVyUmVmJGN1cnJlbnQ7cmV0dXJue3Jlc2l6YWJsZVRleHRBcmVhOnJlc2l6YWJsZVRleHRBcmVhUmVmLmN1cnJlbnQsZm9jdXM6Zm9jdXMsYmx1cjpmdW5jdGlvbigpe2dldFRleHRBcmVhKCkuYmx1cigpfSxuYXRpdmVFbGVtZW50OihudWxsPT09KF9ob2xkZXJSZWYkY3VycmVudD1ob2xkZXJSZWYuY3VycmVudCl8fHZvaWQgMD09PV9ob2xkZXJSZWYkY3VycmVudD92b2lkIDA6X2hvbGRlclJlZiRjdXJyZW50Lm5hdGl2ZUVsZW1lbnQpfHxnZXRUZXh0QXJlYSgpfX0pLCgwLHJlYWN0LnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtzZXRGb2N1c2VkKGZ1bmN0aW9uKHByZXYpe3JldHVybiFkaXNhYmxlZCYmcHJldn0pfSxbZGlzYWJsZWRdKTt2YXIgX1JlYWN0JHVzZVN0YXRlNT1yZWFjdC51c2VTdGF0ZShudWxsKSxfUmVhY3QkdXNlU3RhdGU2PSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlNSwyKSxzZWxlY3Rpb249X1JlYWN0JHVzZVN0YXRlNlswXSxzZXRTZWxlY3Rpb249X1JlYWN0JHVzZVN0YXRlNlsxXTtyZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24oKXtpZihzZWxlY3Rpb24pe3ZhciBfZ2V0VGV4dEFyZWE7KF9nZXRUZXh0QXJlYT1nZXRUZXh0QXJlYSgpKS5zZXRTZWxlY3Rpb25SYW5nZS5hcHBseShfZ2V0VGV4dEFyZWEsKDAsdG9Db25zdW1hYmxlQXJyYXkuWikoc2VsZWN0aW9uKSl9fSxbc2VsZWN0aW9uXSk7dmFyIGNvdW50Q29uZmlnPSgwLHVzZUNvdW50LlopKGNvdW50LHNob3dDb3VudCksbWVyZ2VkTWF4PW51bGwhPT0oX2NvdW50Q29uZmlnJG1heD1jb3VudENvbmZpZy5tYXgpJiZ2b2lkIDAhPT1fY291bnRDb25maWckbWF4P19jb3VudENvbmZpZyRtYXg6bWF4TGVuZ3RoLGhhc01heExlbmd0aD1OdW1iZXIobWVyZ2VkTWF4KT4wLHZhbHVlTGVuZ3RoPWNvdW50Q29uZmlnLnN0cmF0ZWd5KGZvcm1hdFZhbHVlKSx0cmlnZ2VyQ2hhbmdlPWZ1bmN0aW9uKGUsY3VycmVudFZhbHVlKXt2YXIgY3V0VmFsdWU9Y3VycmVudFZhbHVlOyFjb21wb3NpdGlvblJlZi5jdXJyZW50JiZjb3VudENvbmZpZy5leGNlZWRGb3JtYXR0ZXImJmNvdW50Q29uZmlnLm1heCYmY291bnRDb25maWcuc3RyYXRlZ3koY3VycmVudFZhbHVlKT5jb3VudENvbmZpZy5tYXgmJihjdXRWYWx1ZT1jb3VudENvbmZpZy5leGNlZWRGb3JtYXR0ZXIoY3VycmVudFZhbHVlLHttYXg6Y291bnRDb25maWcubWF4fSksY3VycmVudFZhbHVlIT09Y3V0VmFsdWUmJnNldFNlbGVjdGlvbihbZ2V0VGV4dEFyZWEoKS5zZWxlY3Rpb25TdGFydHx8MCxnZXRUZXh0QXJlYSgpLnNlbGVjdGlvbkVuZHx8MF0pKSxzZXRWYWx1ZShjdXRWYWx1ZSksKDAsY29tbW9uVXRpbHMuckopKGUuY3VycmVudFRhcmdldCxlLG9uQ2hhbmdlLGN1dFZhbHVlKX0sc3VmZml4Tm9kZT1zdWZmaXg7cmV0dXJuIGNvdW50Q29uZmlnLnNob3cmJihkYXRhQ291bnQ9Y291bnRDb25maWcuc2hvd0Zvcm1hdHRlcj9jb3VudENvbmZpZy5zaG93Rm9ybWF0dGVyKHt2YWx1ZTpmb3JtYXRWYWx1ZSxjb3VudDp2YWx1ZUxlbmd0aCxtYXhMZW5ndGg6bWVyZ2VkTWF4fSk6IiIuY29uY2F0KHZhbHVlTGVuZ3RoKS5jb25jYXQoaGFzTWF4TGVuZ3RoPyIgLyAiLmNvbmNhdChtZXJnZWRNYXgpOiIiKSxzdWZmaXhOb2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQocmVhY3QuRnJhZ21lbnQsbnVsbCxzdWZmaXhOb2RlLHJlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKCIiLmNvbmNhdChwcmVmaXhDbHMsIi1kYXRhLWNvdW50IiksbnVsbD09Y2xhc3NOYW1lcz92b2lkIDA6Y2xhc3NOYW1lcy5jb3VudCksc3R5bGU6bnVsbD09c3R5bGVzP3ZvaWQgMDpzdHlsZXMuY291bnR9LGRhdGFDb3VudCkpKSxyZWFjdC5jcmVhdGVFbGVtZW50KGVzLlEse3JlZjpob2xkZXJSZWYsdmFsdWU6Zm9ybWF0VmFsdWUsYWxsb3dDbGVhcjphbGxvd0NsZWFyLGhhbmRsZVJlc2V0OmZ1bmN0aW9uKGUpe3NldFZhbHVlKCIiKSxmb2N1cygpLCgwLGNvbW1vblV0aWxzLnJKKShnZXRUZXh0QXJlYSgpLGUsb25DaGFuZ2UpfSxzdWZmaXg6c3VmZml4Tm9kZSxwcmVmaXhDbHM6cHJlZml4Q2xzLGNsYXNzTmFtZXM6KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LGNsYXNzTmFtZXMpLHt9LHthZmZpeFdyYXBwZXI6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKG51bGw9PWNsYXNzTmFtZXM/dm9pZCAwOmNsYXNzTmFtZXMuYWZmaXhXcmFwcGVyLCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKHt9LCIiLmNvbmNhdChwcmVmaXhDbHMsIi1zaG93LWNvdW50Iiksc2hvd0NvdW50KSwiIi5jb25jYXQocHJlZml4Q2xzLCItdGV4dGFyZWEtYWxsb3ctY2xlYXIiKSxhbGxvd0NsZWFyKSl9KSxkaXNhYmxlZDpkaXNhYmxlZCxmb2N1c2VkOmZvY3VzZWQsY2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKShjbGFzc05hbWUsISFtZXJnZWRNYXgmJnZhbHVlTGVuZ3RoPm1lcmdlZE1heCYmIiIuY29uY2F0KHByZWZpeENscywiLW91dC1vZi1yYW5nZSIpKSxzdHlsZTooMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe30sc3R5bGUpLHRleHRhcmVhUmVzaXplZCYmISghYXV0b1NpemUmJiFzaG93Q291bnQmJiFhbGxvd0NsZWFyKT97aGVpZ2h0OiJhdXRvIn06e30pLGRhdGFBdHRyczp7YWZmaXhXcmFwcGVyOnsiZGF0YS1jb3VudCI6InN0cmluZyI9PXR5cGVvZiBkYXRhQ291bnQ/ZGF0YUNvdW50OnZvaWQgMH19LGhpZGRlbjpoaWRkZW4scmVhZE9ubHk6cmVhZE9ubHksb25DbGVhcjpvbkNsZWFyfSxyZWFjdC5jcmVhdGVFbGVtZW50KFJlc2l6YWJsZVRleHRBcmVhLCgwLGVzbV9leHRlbmRzLlopKHt9LHJlc3Qse2F1dG9TaXplOmF1dG9TaXplLG1heExlbmd0aDptYXhMZW5ndGgsb25LZXlEb3duOmZ1bmN0aW9uKGUpeyJFbnRlciI9PT1lLmtleSYmb25QcmVzc0VudGVyJiZvblByZXNzRW50ZXIoZSksbnVsbD09b25LZXlEb3dufHxvbktleURvd24oZSl9LG9uQ2hhbmdlOmZ1bmN0aW9uKGUpe3RyaWdnZXJDaGFuZ2UoZSxlLnRhcmdldC52YWx1ZSl9LG9uRm9jdXM6ZnVuY3Rpb24oZSl7c2V0Rm9jdXNlZCghMCksbnVsbD09b25Gb2N1c3x8b25Gb2N1cyhlKX0sb25CbHVyOmZ1bmN0aW9uKGUpe3NldEZvY3VzZWQoITEpLG51bGw9PW9uQmx1cnx8b25CbHVyKGUpfSxvbkNvbXBvc2l0aW9uU3RhcnQ6ZnVuY3Rpb24oZSl7Y29tcG9zaXRpb25SZWYuY3VycmVudD0hMCxudWxsPT1vbkNvbXBvc2l0aW9uU3RhcnR8fG9uQ29tcG9zaXRpb25TdGFydChlKX0sb25Db21wb3NpdGlvbkVuZDpmdW5jdGlvbihlKXtjb21wb3NpdGlvblJlZi5jdXJyZW50PSExLHRyaWdnZXJDaGFuZ2UoZSxlLmN1cnJlbnRUYXJnZXQudmFsdWUpLG51bGw9PW9uQ29tcG9zaXRpb25FbmR8fG9uQ29tcG9zaXRpb25FbmQoZSl9LGNsYXNzTmFtZTpub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0KCkobnVsbD09Y2xhc3NOYW1lcz92b2lkIDA6Y2xhc3NOYW1lcy50ZXh0YXJlYSksc3R5bGU6KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LG51bGw9PXN0eWxlcz92b2lkIDA6c3R5bGVzLnRleHRhcmVhKSx7fSx7cmVzaXplOm51bGw9PXN0eWxlP3ZvaWQgMDpzdHlsZS5yZXNpemV9KSxkaXNhYmxlZDpkaXNhYmxlZCxwcmVmaXhDbHM6cHJlZml4Q2xzLG9uUmVzaXplOmZ1bmN0aW9uKHNpemUpe3ZhciBfZ2V0VGV4dEFyZWEyO251bGw9PW9uUmVzaXplfHxvblJlc2l6ZShzaXplKSxudWxsIT09KF9nZXRUZXh0QXJlYTI9Z2V0VGV4dEFyZWEoKSkmJnZvaWQgMCE9PV9nZXRUZXh0QXJlYTImJl9nZXRUZXh0QXJlYTIuc3R5bGUuaGVpZ2h0JiZzZXRUZXh0YXJlYVJlc2l6ZWQoITApfSxyZWY6cmVzaXphYmxlVGV4dEFyZWFSZWYscmVhZE9ubHk6cmVhZE9ubHl9KSkpfSksZ2V0QWxsb3dDbGVhcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDc4MjkwKSxzdGF0dXNVdGlscz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk3MDgpLGNvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzEyNCksRGlzYWJsZWRDb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oOTg4NjYpLHVzZUNTU1ZhckNscz1fX3dlYnBhY2tfcmVxdWlyZV9fKDM1NzkyKSx1c2VTaXplPV9fd2VicGFja19yZXF1aXJlX18oOTg2NzUpLGZvcm1fY29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY1MjIzKSx1c2VWYXJpYW50cz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI3ODMzKSxDb21wYWN0PV9fd2VicGFja19yZXF1aXJlX18oNDE3MyksaW5wdXRfc3R5bGU9X193ZWJwYWNrX3JlcXVpcmVfXyg0NzY3MyksZ2VuU3R5bGVVdGlscz1fX3dlYnBhY2tfcmVxdWlyZV9fKDgzNTU5KSxjc3NpbmpzX3V0aWxzX2VzPV9fd2VicGFja19yZXF1aXJlX18oNDI1NTkpLHN0eWxlX3Rva2VuPV9fd2VicGFja19yZXF1aXJlX18oMjAzNTMpO2xldCBnZW5UZXh0QXJlYVN0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENscyxwYWRkaW5nTEd9PXRva2VuLHRleHRhcmVhUHJlZml4Q2xzPWAke2NvbXBvbmVudENsc30tdGV4dGFyZWFgO3JldHVybntbYHRleHRhcmVhJHtjb21wb25lbnRDbHN9YF06e21heFdpZHRoOiIxMDAlIixoZWlnaHQ6ImF1dG8iLG1pbkhlaWdodDp0b2tlbi5jb250cm9sSGVpZ2h0LGxpbmVIZWlnaHQ6dG9rZW4ubGluZUhlaWdodCx2ZXJ0aWNhbEFsaWduOiJib3R0b20iLHRyYW5zaXRpb246YGFsbCAke3Rva2VuLm1vdGlvbkR1cmF0aW9uU2xvd31gLHJlc2l6ZToidmVydGljYWwiLFtgJiR7Y29tcG9uZW50Q2xzfS1tb3VzZS1hY3RpdmVgXTp7dHJhbnNpdGlvbjpgYWxsICR7dG9rZW4ubW90aW9uRHVyYXRpb25TbG93fSwgaGVpZ2h0IDBzLCB3aWR0aCAwc2B9fSxbYCR7Y29tcG9uZW50Q2xzfS10ZXh0YXJlYS1hZmZpeC13cmFwcGVyLXJlc2l6ZS1kaXJ0eWBdOnt3aWR0aDoiYXV0byJ9LFt0ZXh0YXJlYVByZWZpeENsc106e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsIiYtc2hvdy1jb3VudCI6e1tgJHtjb21wb25lbnRDbHN9LWRhdGEtY291bnRgXTp7cG9zaXRpb246ImFic29sdXRlIixib3R0b206dG9rZW4uY2FsYyh0b2tlbi5mb250U2l6ZSkubXVsKHRva2VuLmxpbmVIZWlnaHQpLm11bCgtMSkuZXF1YWwoKSxpbnNldElubGluZUVuZDowLGNvbG9yOnRva2VuLmNvbG9yVGV4dERlc2NyaXB0aW9uLHdoaXRlU3BhY2U6Im5vd3JhcCIscG9pbnRlckV2ZW50czoibm9uZSJ9fSxbYAogICAgICAgICYtYWxsb3ctY2xlYXIgPiAke2NvbXBvbmVudENsc30sCiAgICAgICAgJi1hZmZpeC13cmFwcGVyJHt0ZXh0YXJlYVByZWZpeENsc30taGFzLWZlZWRiYWNrICR7Y29tcG9uZW50Q2xzfQogICAgICBgXTp7cGFkZGluZ0lubGluZUVuZDpwYWRkaW5nTEd9LFtgJi1hZmZpeC13cmFwcGVyJHtjb21wb25lbnRDbHN9LWFmZml4LXdyYXBwZXJgXTp7cGFkZGluZzowLFtgPiB0ZXh0YXJlYSR7Y29tcG9uZW50Q2xzfWBdOntmb250U2l6ZToiaW5oZXJpdCIsYm9yZGVyOiJub25lIixvdXRsaW5lOiJub25lIixiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsbWluSGVpZ2h0OnRva2VuLmNhbGModG9rZW4uY29udHJvbEhlaWdodCkuc3ViKHRva2VuLmNhbGModG9rZW4ubGluZVdpZHRoKS5tdWwoMikpLmVxdWFsKCksIiY6Zm9jdXMiOntib3hTaGFkb3c6Im5vbmUgIWltcG9ydGFudCJ9fSxbYCR7Y29tcG9uZW50Q2xzfS1zdWZmaXhgXTp7bWFyZ2luOjAsIj4gKjpub3QoOmxhc3QtY2hpbGQpIjp7bWFyZ2luSW5saW5lOjB9LFtgJHtjb21wb25lbnRDbHN9LWNsZWFyLWljb25gXTp7cG9zaXRpb246ImFic29sdXRlIixpbnNldElubGluZUVuZDp0b2tlbi5wYWRkaW5nSW5saW5lLGluc2V0QmxvY2tTdGFydDp0b2tlbi5wYWRkaW5nWFN9LFtgJHt0ZXh0YXJlYVByZWZpeENsc30tc3VmZml4YF06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjAsaW5zZXRJbmxpbmVFbmQ6dG9rZW4ucGFkZGluZ0lubGluZSxib3R0b206MCx6SW5kZXg6MSxkaXNwbGF5OiJpbmxpbmUtZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixtYXJnaW46ImF1dG8iLHBvaW50ZXJFdmVudHM6Im5vbmUifX19LFtgJi1hZmZpeC13cmFwcGVyJHtjb21wb25lbnRDbHN9LWFmZml4LXdyYXBwZXItcnRsYF06e1tgJHtjb21wb25lbnRDbHN9LXN1ZmZpeGBdOntbYCR7Y29tcG9uZW50Q2xzfS1kYXRhLWNvdW50YF06e2RpcmVjdGlvbjoibHRyIixpbnNldElubGluZVN0YXJ0OjB9fX0sW2AmLWFmZml4LXdyYXBwZXIke2NvbXBvbmVudENsc30tYWZmaXgtd3JhcHBlci1zbWBdOntbYCR7Y29tcG9uZW50Q2xzfS1zdWZmaXhgXTp7W2Ake2NvbXBvbmVudENsc30tY2xlYXItaWNvbmBdOntpbnNldElubGluZUVuZDp0b2tlbi5wYWRkaW5nSW5saW5lU019fX19fX07dmFyIHN0eWxlX3RleHRhcmVhPSgwLGdlblN0eWxlVXRpbHMuSSQpKFsiSW5wdXQiLCJUZXh0QXJlYSJdLHRva2VuPT57bGV0IGlucHV0VG9rZW49KDAsY3NzaW5qc191dGlsc19lcy5JWCkodG9rZW4sKDAsc3R5bGVfdG9rZW4uZSkodG9rZW4pKTtyZXR1cm5bZ2VuVGV4dEFyZWFTdHlsZShpbnB1dFRva2VuKV19LHN0eWxlX3Rva2VuLlQse3Jlc2V0Rm9udDohMX0pLF9fcmVzdD1mdW5jdGlvbihzLGUpe3ZhciB0PXt9O2Zvcih2YXIgcCBpbiBzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLHApJiYwPmUuaW5kZXhPZihwKSYmKHRbcF09c1twXSk7aWYobnVsbCE9cyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpZm9yKHZhciBpPTAscD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpO2k8cC5sZW5ndGg7aSsrKTA+ZS5pbmRleE9mKHBbaV0pJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocyxwW2ldKSYmKHRbcFtpXV09c1twW2ldXSk7cmV0dXJuIHR9O2xldCBUZXh0QXJlYV9UZXh0QXJlYT0oMCxyZWFjdC5mb3J3YXJkUmVmKSgocHJvcHMscmVmKT0+e3ZhciBfYTtsZXR7cHJlZml4Q2xzOmN1c3RvbWl6ZVByZWZpeENscyxib3JkZXJlZD0hMCxzaXplOmN1c3RvbWl6ZVNpemUsZGlzYWJsZWQ6Y3VzdG9tRGlzYWJsZWQsc3RhdHVzOmN1c3RvbVN0YXR1cyxhbGxvd0NsZWFyLGNsYXNzTmFtZXM6Y2xhc3Nlcyxyb290Q2xhc3NOYW1lLGNsYXNzTmFtZSxzdHlsZSxzdHlsZXMsdmFyaWFudDpjdXN0b21WYXJpYW50LHNob3dDb3VudCxvbk1vdXNlRG93bixvblJlc2l6ZX09cHJvcHMscmVzdD1fX3Jlc3QocHJvcHMsWyJwcmVmaXhDbHMiLCJib3JkZXJlZCIsInNpemUiLCJkaXNhYmxlZCIsInN0YXR1cyIsImFsbG93Q2xlYXIiLCJjbGFzc05hbWVzIiwicm9vdENsYXNzTmFtZSIsImNsYXNzTmFtZSIsInN0eWxlIiwic3R5bGVzIiwidmFyaWFudCIsInNob3dDb3VudCIsIm9uTW91c2VEb3duIiwib25SZXNpemUiXSkse2dldFByZWZpeENscyxkaXJlY3Rpb24sYWxsb3dDbGVhcjpjb250ZXh0QWxsb3dDbGVhcixhdXRvQ29tcGxldGU6Y29udGV4dEF1dG9Db21wbGV0ZSxjbGFzc05hbWU6Y29udGV4dENsYXNzTmFtZSxzdHlsZTpjb250ZXh0U3R5bGUsY2xhc3NOYW1lczpjb250ZXh0Q2xhc3NOYW1lcyxzdHlsZXM6Y29udGV4dFN0eWxlc309KDAsY29udGV4dC5kaikoInRleHRBcmVhIiksZGlzYWJsZWQ9cmVhY3QudXNlQ29udGV4dChEaXNhYmxlZENvbnRleHQuWikse3N0YXR1czpjb250ZXh0U3RhdHVzLGhhc0ZlZWRiYWNrLGZlZWRiYWNrSWNvbn09cmVhY3QudXNlQ29udGV4dChmb3JtX2NvbnRleHQuYU0pLG1lcmdlZFN0YXR1cz0oMCxzdGF0dXNVdGlscy5GKShjb250ZXh0U3RhdHVzLGN1c3RvbVN0YXR1cyksaW5uZXJSZWY9cmVhY3QudXNlUmVmKG51bGwpO3JlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCgpPT57dmFyIF9hO3JldHVybntyZXNpemFibGVUZXh0QXJlYTpudWxsPT09KF9hPWlubmVyUmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1fYT92b2lkIDA6X2EucmVzaXphYmxlVGV4dEFyZWEsZm9jdXMob3B0aW9uKXt2YXIgX2EsX2I7KDAsY29tbW9uVXRpbHMubkgpKG51bGw9PT0oX2I9bnVsbD09PShfYT1pbm5lclJlZi5jdXJyZW50KXx8dm9pZCAwPT09X2E/dm9pZCAwOl9hLnJlc2l6YWJsZVRleHRBcmVhKXx8dm9pZCAwPT09X2I/dm9pZCAwOl9iLnRleHRBcmVhLG9wdGlvbil9LGJsdXIoKXt2YXIgX2E7cmV0dXJuIG51bGw9PT0oX2E9aW5uZXJSZWYuY3VycmVudCl8fHZvaWQgMD09PV9hP3ZvaWQgMDpfYS5ibHVyKCl9fX0pO2xldCBwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJpbnB1dCIsY3VzdG9taXplUHJlZml4Q2xzKSxyb290Q2xzPSgwLHVzZUNTU1ZhckNscy5aKShwcmVmaXhDbHMpLFt3cmFwU2hhcmVkQ1NTVmFyLGhhc2hJZCxjc3NWYXJDbHNdPSgwLGlucHV0X3N0eWxlLlRJKShwcmVmaXhDbHMscm9vdENsYXNzTmFtZSksW3dyYXBDU1NWYXJdPXN0eWxlX3RleHRhcmVhKHByZWZpeENscyxyb290Q2xzKSx7Y29tcGFjdFNpemUsY29tcGFjdEl0ZW1DbGFzc25hbWVzfT0oMCxDb21wYWN0LnJpKShwcmVmaXhDbHMsZGlyZWN0aW9uKSxtZXJnZWRTaXplPSgwLHVzZVNpemUuWikoY3R4PT57dmFyIF9hO3JldHVybiBudWxsIT09KF9hPW51bGwhPWN1c3RvbWl6ZVNpemU/Y3VzdG9taXplU2l6ZTpjb21wYWN0U2l6ZSkmJnZvaWQgMCE9PV9hP19hOmN0eH0pLFt2YXJpYW50LGVuYWJsZVZhcmlhbnRDbHNdPSgwLHVzZVZhcmlhbnRzLlopKCJ0ZXh0QXJlYSIsY3VzdG9tVmFyaWFudCxib3JkZXJlZCksbWVyZ2VkQWxsb3dDbGVhcj0oMCxnZXRBbGxvd0NsZWFyLlopKG51bGwhPWFsbG93Q2xlYXI/YWxsb3dDbGVhcjpjb250ZXh0QWxsb3dDbGVhciksW2lzTW91c2VEb3duLHNldElzTW91c2VEb3duXT1yZWFjdC51c2VTdGF0ZSghMSksW3Jlc2l6ZURpcnR5LHNldFJlc2l6ZURpcnR5XT1yZWFjdC51c2VTdGF0ZSghMSksb25JbnRlcm5hbE1vdXNlRG93bj1lPT57c2V0SXNNb3VzZURvd24oITApLG51bGw9PW9uTW91c2VEb3dufHxvbk1vdXNlRG93bihlKTtsZXQgb25Nb3VzZVVwPSgpPT57c2V0SXNNb3VzZURvd24oITEpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG9uTW91c2VVcCl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG9uTW91c2VVcCl9LG9uSW50ZXJuYWxSZXNpemU9c2l6ZT0+e3ZhciBfYSxfYjtpZihudWxsPT1vblJlc2l6ZXx8b25SZXNpemUoc2l6ZSksaXNNb3VzZURvd24mJiJmdW5jdGlvbiI9PXR5cGVvZiBnZXRDb21wdXRlZFN0eWxlKXtsZXQgZWxlPW51bGw9PT0oX2I9bnVsbD09PShfYT1pbm5lclJlZi5jdXJyZW50KXx8dm9pZCAwPT09X2E/dm9pZCAwOl9hLm5hdGl2ZUVsZW1lbnQpfHx2b2lkIDA9PT1fYj92b2lkIDA6X2IucXVlcnlTZWxlY3RvcigidGV4dGFyZWEiKTtlbGUmJiJib3RoIj09PWdldENvbXB1dGVkU3R5bGUoZWxlKS5yZXNpemUmJnNldFJlc2l6ZURpcnR5KCEwKX19O3JldHVybiB3cmFwU2hhcmVkQ1NTVmFyKHdyYXBDU1NWYXIocmVhY3QuY3JlYXRlRWxlbWVudChUZXh0QXJlYSxPYmplY3QuYXNzaWduKHthdXRvQ29tcGxldGU6Y29udGV4dEF1dG9Db21wbGV0ZX0scmVzdCx7c3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGNvbnRleHRTdHlsZSksc3R5bGUpLHN0eWxlczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sY29udGV4dFN0eWxlcyksc3R5bGVzKSxkaXNhYmxlZDpudWxsIT1jdXN0b21EaXNhYmxlZD9jdXN0b21EaXNhYmxlZDpkaXNhYmxlZCxhbGxvd0NsZWFyOm1lcmdlZEFsbG93Q2xlYXIsY2xhc3NOYW1lOmNsYXNzbmFtZXNfZGVmYXVsdCgpKGNzc1ZhckNscyxyb290Q2xzLGNsYXNzTmFtZSxyb290Q2xhc3NOYW1lLGNvbXBhY3RJdGVtQ2xhc3NuYW1lcyxjb250ZXh0Q2xhc3NOYW1lLHJlc2l6ZURpcnR5JiZgJHtwcmVmaXhDbHN9LXRleHRhcmVhLWFmZml4LXdyYXBwZXItcmVzaXplLWRpcnR5YCksY2xhc3NOYW1lczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjbGFzc2VzKSxjb250ZXh0Q2xhc3NOYW1lcykse3RleHRhcmVhOmNsYXNzbmFtZXNfZGVmYXVsdCgpKHtbYCR7cHJlZml4Q2xzfS1zbWBdOiJzbWFsbCI9PT1tZXJnZWRTaXplLFtgJHtwcmVmaXhDbHN9LWxnYF06ImxhcmdlIj09PW1lcmdlZFNpemV9LGhhc2hJZCxudWxsPT1jbGFzc2VzP3ZvaWQgMDpjbGFzc2VzLnRleHRhcmVhLGNvbnRleHRDbGFzc05hbWVzLnRleHRhcmVhLGlzTW91c2VEb3duJiZgJHtwcmVmaXhDbHN9LW1vdXNlLWFjdGl2ZWApLHZhcmlhbnQ6Y2xhc3NuYW1lc19kZWZhdWx0KCkoe1tgJHtwcmVmaXhDbHN9LSR7dmFyaWFudH1gXTplbmFibGVWYXJpYW50Q2xzfSwoMCxzdGF0dXNVdGlscy5aKShwcmVmaXhDbHMsbWVyZ2VkU3RhdHVzKSksYWZmaXhXcmFwcGVyOmNsYXNzbmFtZXNfZGVmYXVsdCgpKGAke3ByZWZpeENsc30tdGV4dGFyZWEtYWZmaXgtd3JhcHBlcmAse1tgJHtwcmVmaXhDbHN9LWFmZml4LXdyYXBwZXItcnRsYF06InJ0bCI9PT1kaXJlY3Rpb24sW2Ake3ByZWZpeENsc30tYWZmaXgtd3JhcHBlci1zbWBdOiJzbWFsbCI9PT1tZXJnZWRTaXplLFtgJHtwcmVmaXhDbHN9LWFmZml4LXdyYXBwZXItbGdgXToibGFyZ2UiPT09bWVyZ2VkU2l6ZSxbYCR7cHJlZml4Q2xzfS10ZXh0YXJlYS1zaG93LWNvdW50YF06c2hvd0NvdW50fHwobnVsbD09PShfYT1wcm9wcy5jb3VudCl8fHZvaWQgMD09PV9hP3ZvaWQgMDpfYS5zaG93KX0saGFzaElkKX0pLHByZWZpeENsczpwcmVmaXhDbHMsc3VmZml4Omhhc0ZlZWRiYWNrJiZyZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30tdGV4dGFyZWEtc3VmZml4YH0sZmVlZGJhY2tJY29uKSxzaG93Q291bnQ6c2hvd0NvdW50LHJlZjppbm5lclJlZixvblJlc2l6ZTpvbkludGVybmFsUmVzaXplLG9uTW91c2VEb3duOm9uSW50ZXJuYWxNb3VzZURvd259KSkpKX0pO3ZhciBpbnB1dF9UZXh0QXJlYT1UZXh0QXJlYV9UZXh0QXJlYX0sNzYyOTI6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gaW5wdXR9fSk7dmFyIHJlYWN0PV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLGNsYXNzbmFtZXM9X193ZWJwYWNrX3JlcXVpcmVfXygxMzE0NCksY2xhc3NuYW1lc19kZWZhdWx0PV9fd2VicGFja19yZXF1aXJlX18ubihjbGFzc25hbWVzKSxjb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oNTMxMjQpLGZvcm1fY29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY1MjIzKSxpbnB1dF9zdHlsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ3NjczKTtsZXQgR3JvdXA9cHJvcHM9PntsZXR7Z2V0UHJlZml4Q2xzLGRpcmVjdGlvbn09KDAscmVhY3QudXNlQ29udGV4dCkoY29udGV4dC5FXykse3ByZWZpeENsczpjdXN0b21pemVQcmVmaXhDbHMsY2xhc3NOYW1lfT1wcm9wcyxwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJpbnB1dC1ncm91cCIsY3VzdG9taXplUHJlZml4Q2xzKSxpbnB1dFByZWZpeENscz1nZXRQcmVmaXhDbHMoImlucHV0IiksW3dyYXBDU1NWYXIsaGFzaElkLGNzc1ZhckNsc109KDAsaW5wdXRfc3R5bGUuWlApKGlucHV0UHJlZml4Q2xzKSxjbHM9Y2xhc3NuYW1lc19kZWZhdWx0KCkocHJlZml4Q2xzLGNzc1ZhckNscyx7W2Ake3ByZWZpeENsc30tbGdgXToibGFyZ2UiPT09cHJvcHMuc2l6ZSxbYCR7cHJlZml4Q2xzfS1zbWBdOiJzbWFsbCI9PT1wcm9wcy5zaXplLFtgJHtwcmVmaXhDbHN9LWNvbXBhY3RgXTpwcm9wcy5jb21wYWN0LFtgJHtwcmVmaXhDbHN9LXJ0bGBdOiJydGwiPT09ZGlyZWN0aW9ufSxoYXNoSWQsY2xhc3NOYW1lKSxmb3JtSXRlbUNvbnRleHQ9KDAscmVhY3QudXNlQ29udGV4dCkoZm9ybV9jb250ZXh0LmFNKSxncm91cEZvcm1JdGVtQ29udGV4dD0oMCxyZWFjdC51c2VNZW1vKSgoKT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGZvcm1JdGVtQ29udGV4dCkse2lzRm9ybUl0ZW1JbnB1dDohMX0pLFtmb3JtSXRlbUNvbnRleHRdKTtyZXR1cm4gd3JhcENTU1ZhcihyZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmNscyxzdHlsZTpwcm9wcy5zdHlsZSxvbk1vdXNlRW50ZXI6cHJvcHMub25Nb3VzZUVudGVyLG9uTW91c2VMZWF2ZTpwcm9wcy5vbk1vdXNlTGVhdmUsb25Gb2N1czpwcm9wcy5vbkZvY3VzLG9uQmx1cjpwcm9wcy5vbkJsdXJ9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoZm9ybV9jb250ZXh0LmFNLlByb3ZpZGVyLHt2YWx1ZTpncm91cEZvcm1JdGVtQ29udGV4dH0scHJvcHMuY2hpbGRyZW4pKSl9O3ZhciBlcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3NjU2KSxlc19yZWY9X193ZWJwYWNrX3JlcXVpcmVfXygxNzc5OSksQ29udGV4dElzb2xhdG9yPV9fd2VicGFja19yZXF1aXJlX18oODk5NDIpLGdldEFsbG93Q2xlYXI9X193ZWJwYWNrX3JlcXVpcmVfXyg3ODI5MCksc3RhdHVzVXRpbHM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzA4KSxEaXNhYmxlZENvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg5ODg2NiksdXNlQ1NTVmFyQ2xzPV9fd2VicGFja19yZXF1aXJlX18oMzU3OTIpLHVzZVNpemU9X193ZWJwYWNrX3JlcXVpcmVfXyg5ODY3NSksdXNlVmFyaWFudHM9X193ZWJwYWNrX3JlcXVpcmVfXygyNzgzMyksQ29tcGFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQxNzMpO2Z1bmN0aW9uIHVzZVJlbW92ZVBhc3N3b3JkVGltZW91dChpbnB1dFJlZix0cmlnZ2VyT25Nb3VudCl7bGV0IHJlbW92ZVBhc3N3b3JkVGltZW91dFJlZj0oMCxyZWFjdC51c2VSZWYpKFtdKSxyZW1vdmVQYXNzd29yZFRpbWVvdXQ9KCk9PntyZW1vdmVQYXNzd29yZFRpbWVvdXRSZWYuY3VycmVudC5wdXNoKHNldFRpbWVvdXQoKCk9Pnt2YXIgX2EsX2IsX2MsX2Q7KG51bGw9PT0oX2E9aW5wdXRSZWYuY3VycmVudCl8fHZvaWQgMD09PV9hP3ZvaWQgMDpfYS5pbnB1dCkmJihudWxsPT09KF9iPWlucHV0UmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1fYj92b2lkIDA6X2IuaW5wdXQuZ2V0QXR0cmlidXRlKCJ0eXBlIikpPT09InBhc3N3b3JkIiYmKG51bGw9PT0oX2M9aW5wdXRSZWYuY3VycmVudCl8fHZvaWQgMD09PV9jP3ZvaWQgMDpfYy5pbnB1dC5oYXNBdHRyaWJ1dGUoInZhbHVlIikpJiYobnVsbD09PShfZD1pbnB1dFJlZi5jdXJyZW50KXx8dm9pZCAwPT09X2R8fF9kLmlucHV0LnJlbW92ZUF0dHJpYnV0ZSgidmFsdWUiKSl9KSl9O3JldHVybigwLHJlYWN0LnVzZUVmZmVjdCkoKCk9Pih0cmlnZ2VyT25Nb3VudCYmcmVtb3ZlUGFzc3dvcmRUaW1lb3V0KCksKCk9PnJlbW92ZVBhc3N3b3JkVGltZW91dFJlZi5jdXJyZW50LmZvckVhY2godGltZXI9Pnt0aW1lciYmY2xlYXJUaW1lb3V0KHRpbWVyKX0pKSxbXSkscmVtb3ZlUGFzc3dvcmRUaW1lb3V0fXZhciBfX3Jlc3Q9ZnVuY3Rpb24ocyxlKXt2YXIgdD17fTtmb3IodmFyIHAgaW4gcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxwKSYmMD5lLmluZGV4T2YocCkmJih0W3BdPXNbcF0pO2lmKG51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKWZvcih2YXIgaT0wLHA9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtpPHAubGVuZ3RoO2krKykwPmUuaW5kZXhPZihwW2ldKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMscFtpXSkmJih0W3BbaV1dPXNbcFtpXV0pO3JldHVybiB0fTtsZXQgSW5wdXQ9KDAscmVhY3QuZm9yd2FyZFJlZikoKHByb3BzLHJlZik9PntsZXR7cHJlZml4Q2xzOmN1c3RvbWl6ZVByZWZpeENscyxib3JkZXJlZD0hMCxzdGF0dXM6Y3VzdG9tU3RhdHVzLHNpemU6Y3VzdG9tU2l6ZSxkaXNhYmxlZDpjdXN0b21EaXNhYmxlZCxvbkJsdXIsb25Gb2N1cyxzdWZmaXgsYWxsb3dDbGVhcixhZGRvbkFmdGVyLGFkZG9uQmVmb3JlLGNsYXNzTmFtZSxzdHlsZSxzdHlsZXMscm9vdENsYXNzTmFtZSxvbkNoYW5nZSxjbGFzc05hbWVzOmNsYXNzZXMsdmFyaWFudDpjdXN0b21WYXJpYW50fT1wcm9wcyxyZXN0PV9fcmVzdChwcm9wcyxbInByZWZpeENscyIsImJvcmRlcmVkIiwic3RhdHVzIiwic2l6ZSIsImRpc2FibGVkIiwib25CbHVyIiwib25Gb2N1cyIsInN1ZmZpeCIsImFsbG93Q2xlYXIiLCJhZGRvbkFmdGVyIiwiYWRkb25CZWZvcmUiLCJjbGFzc05hbWUiLCJzdHlsZSIsInN0eWxlcyIsInJvb3RDbGFzc05hbWUiLCJvbkNoYW5nZSIsImNsYXNzTmFtZXMiLCJ2YXJpYW50Il0pLHtnZXRQcmVmaXhDbHMsZGlyZWN0aW9uLGFsbG93Q2xlYXI6Y29udGV4dEFsbG93Q2xlYXIsYXV0b0NvbXBsZXRlOmNvbnRleHRBdXRvQ29tcGxldGUsY2xhc3NOYW1lOmNvbnRleHRDbGFzc05hbWUsc3R5bGU6Y29udGV4dFN0eWxlLGNsYXNzTmFtZXM6Y29udGV4dENsYXNzTmFtZXMsc3R5bGVzOmNvbnRleHRTdHlsZXN9PSgwLGNvbnRleHQuZGopKCJpbnB1dCIpLHByZWZpeENscz1nZXRQcmVmaXhDbHMoImlucHV0IixjdXN0b21pemVQcmVmaXhDbHMpLGlucHV0UmVmPSgwLHJlYWN0LnVzZVJlZikobnVsbCkscm9vdENscz0oMCx1c2VDU1NWYXJDbHMuWikocHJlZml4Q2xzKSxbd3JhcFNoYXJlZENTU1ZhcixoYXNoSWQsY3NzVmFyQ2xzXT0oMCxpbnB1dF9zdHlsZS5USSkocHJlZml4Q2xzLHJvb3RDbGFzc05hbWUpLFt3cmFwQ1NTVmFyXT0oMCxpbnB1dF9zdHlsZS5aUCkocHJlZml4Q2xzLHJvb3RDbHMpLHtjb21wYWN0U2l6ZSxjb21wYWN0SXRlbUNsYXNzbmFtZXN9PSgwLENvbXBhY3QucmkpKHByZWZpeENscyxkaXJlY3Rpb24pLG1lcmdlZFNpemU9KDAsdXNlU2l6ZS5aKShjdHg9Pnt2YXIgX2E7cmV0dXJuIG51bGwhPT0oX2E9bnVsbCE9Y3VzdG9tU2l6ZT9jdXN0b21TaXplOmNvbXBhY3RTaXplKSYmdm9pZCAwIT09X2E/X2E6Y3R4fSksZGlzYWJsZWQ9cmVhY3QudXNlQ29udGV4dChEaXNhYmxlZENvbnRleHQuWikse3N0YXR1czpjb250ZXh0U3RhdHVzLGhhc0ZlZWRiYWNrLGZlZWRiYWNrSWNvbn09KDAscmVhY3QudXNlQ29udGV4dCkoZm9ybV9jb250ZXh0LmFNKSxtZXJnZWRTdGF0dXM9KDAsc3RhdHVzVXRpbHMuRikoY29udGV4dFN0YXR1cyxjdXN0b21TdGF0dXMpLGlucHV0SGFzUHJlZml4U3VmZml4PSEhKHByb3BzLnByZWZpeHx8cHJvcHMuc3VmZml4fHxwcm9wcy5hbGxvd0NsZWFyfHxwcm9wcy5zaG93Q291bnQpfHwhIWhhc0ZlZWRiYWNrOygwLHJlYWN0LnVzZVJlZikoaW5wdXRIYXNQcmVmaXhTdWZmaXgpO2xldCByZW1vdmVQYXNzd29yZFRpbWVvdXQ9dXNlUmVtb3ZlUGFzc3dvcmRUaW1lb3V0KGlucHV0UmVmLCEwKSxoYW5kbGVCbHVyPWU9PntyZW1vdmVQYXNzd29yZFRpbWVvdXQoKSxudWxsPT1vbkJsdXJ8fG9uQmx1cihlKX0saGFuZGxlRm9jdXM9ZT0+e3JlbW92ZVBhc3N3b3JkVGltZW91dCgpLG51bGw9PW9uRm9jdXN8fG9uRm9jdXMoZSl9LGhhbmRsZUNoYW5nZT1lPT57cmVtb3ZlUGFzc3dvcmRUaW1lb3V0KCksbnVsbD09b25DaGFuZ2V8fG9uQ2hhbmdlKGUpfSxzdWZmaXhOb2RlPShoYXNGZWVkYmFja3x8c3VmZml4KSYmcmVhY3QuY3JlYXRlRWxlbWVudChyZWFjdC5GcmFnbWVudCxudWxsLHN1ZmZpeCxoYXNGZWVkYmFjayYmZmVlZGJhY2tJY29uKSxtZXJnZWRBbGxvd0NsZWFyPSgwLGdldEFsbG93Q2xlYXIuWikobnVsbCE9YWxsb3dDbGVhcj9hbGxvd0NsZWFyOmNvbnRleHRBbGxvd0NsZWFyKSxbdmFyaWFudCxlbmFibGVWYXJpYW50Q2xzXT0oMCx1c2VWYXJpYW50cy5aKSgiaW5wdXQiLGN1c3RvbVZhcmlhbnQsYm9yZGVyZWQpO3JldHVybiB3cmFwU2hhcmVkQ1NTVmFyKHdyYXBDU1NWYXIocmVhY3QuY3JlYXRlRWxlbWVudChlcy5aLE9iamVjdC5hc3NpZ24oe3JlZjooMCxlc19yZWYuc1EpKHJlZixpbnB1dFJlZikscHJlZml4Q2xzOnByZWZpeENscyxhdXRvQ29tcGxldGU6Y29udGV4dEF1dG9Db21wbGV0ZX0scmVzdCx7ZGlzYWJsZWQ6bnVsbCE9Y3VzdG9tRGlzYWJsZWQ/Y3VzdG9tRGlzYWJsZWQ6ZGlzYWJsZWQsb25CbHVyOmhhbmRsZUJsdXIsb25Gb2N1czpoYW5kbGVGb2N1cyxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sY29udGV4dFN0eWxlKSxzdHlsZSksc3R5bGVzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjb250ZXh0U3R5bGVzKSxzdHlsZXMpLHN1ZmZpeDpzdWZmaXhOb2RlLGFsbG93Q2xlYXI6bWVyZ2VkQWxsb3dDbGVhcixjbGFzc05hbWU6Y2xhc3NuYW1lc19kZWZhdWx0KCkoY2xhc3NOYW1lLHJvb3RDbGFzc05hbWUsY3NzVmFyQ2xzLHJvb3RDbHMsY29tcGFjdEl0ZW1DbGFzc25hbWVzLGNvbnRleHRDbGFzc05hbWUpLG9uQ2hhbmdlOmhhbmRsZUNoYW5nZSxhZGRvbkJlZm9yZTphZGRvbkJlZm9yZSYmcmVhY3QuY3JlYXRlRWxlbWVudChDb250ZXh0SXNvbGF0b3IuWix7Zm9ybTohMCxzcGFjZTohMH0sYWRkb25CZWZvcmUpLGFkZG9uQWZ0ZXI6YWRkb25BZnRlciYmcmVhY3QuY3JlYXRlRWxlbWVudChDb250ZXh0SXNvbGF0b3IuWix7Zm9ybTohMCxzcGFjZTohMH0sYWRkb25BZnRlciksY2xhc3NOYW1lczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjbGFzc2VzKSxjb250ZXh0Q2xhc3NOYW1lcykse2lucHV0OmNsYXNzbmFtZXNfZGVmYXVsdCgpKHtbYCR7cHJlZml4Q2xzfS1zbWBdOiJzbWFsbCI9PT1tZXJnZWRTaXplLFtgJHtwcmVmaXhDbHN9LWxnYF06ImxhcmdlIj09PW1lcmdlZFNpemUsW2Ake3ByZWZpeENsc30tcnRsYF06InJ0bCI9PT1kaXJlY3Rpb259LG51bGw9PWNsYXNzZXM/dm9pZCAwOmNsYXNzZXMuaW5wdXQsY29udGV4dENsYXNzTmFtZXMuaW5wdXQsaGFzaElkKSx2YXJpYW50OmNsYXNzbmFtZXNfZGVmYXVsdCgpKHtbYCR7cHJlZml4Q2xzfS0ke3ZhcmlhbnR9YF06ZW5hYmxlVmFyaWFudENsc30sKDAsc3RhdHVzVXRpbHMuWikocHJlZml4Q2xzLG1lcmdlZFN0YXR1cykpLGFmZml4V3JhcHBlcjpjbGFzc25hbWVzX2RlZmF1bHQoKSh7W2Ake3ByZWZpeENsc30tYWZmaXgtd3JhcHBlci1zbWBdOiJzbWFsbCI9PT1tZXJnZWRTaXplLFtgJHtwcmVmaXhDbHN9LWFmZml4LXdyYXBwZXItbGdgXToibGFyZ2UiPT09bWVyZ2VkU2l6ZSxbYCR7cHJlZml4Q2xzfS1hZmZpeC13cmFwcGVyLXJ0bGBdOiJydGwiPT09ZGlyZWN0aW9ufSxoYXNoSWQpLHdyYXBwZXI6Y2xhc3NuYW1lc19kZWZhdWx0KCkoe1tgJHtwcmVmaXhDbHN9LWdyb3VwLXJ0bGBdOiJydGwiPT09ZGlyZWN0aW9ufSxoYXNoSWQpLGdyb3VwV3JhcHBlcjpjbGFzc25hbWVzX2RlZmF1bHQoKSh7W2Ake3ByZWZpeENsc30tZ3JvdXAtd3JhcHBlci1zbWBdOiJzbWFsbCI9PT1tZXJnZWRTaXplLFtgJHtwcmVmaXhDbHN9LWdyb3VwLXdyYXBwZXItbGdgXToibGFyZ2UiPT09bWVyZ2VkU2l6ZSxbYCR7cHJlZml4Q2xzfS1ncm91cC13cmFwcGVyLXJ0bGBdOiJydGwiPT09ZGlyZWN0aW9uLFtgJHtwcmVmaXhDbHN9LWdyb3VwLXdyYXBwZXItJHt2YXJpYW50fWBdOmVuYWJsZVZhcmlhbnRDbHN9LCgwLHN0YXR1c1V0aWxzLlopKGAke3ByZWZpeENsc30tZ3JvdXAtd3JhcHBlcmAsbWVyZ2VkU3RhdHVzLGhhc0ZlZWRiYWNrKSxoYXNoSWQpfSl9KSkpKX0pO3ZhciB0b0NvbnN1bWFibGVBcnJheT1fX3dlYnBhY2tfcmVxdWlyZV9fKDc1MTc3KSx1c2VFdmVudD1fX3dlYnBhY2tfcmVxdWlyZV9fKDc3NTI3KSxwaWNrQXR0cnM9X193ZWJwYWNrX3JlcXVpcmVfXygxMzM3KSxnZW5TdHlsZVV0aWxzPV9fd2VicGFja19yZXF1aXJlX18oODM1NTkpLGNzc2luanNfdXRpbHNfZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0MjU1OSksc3R5bGVfdG9rZW49X193ZWJwYWNrX3JlcXVpcmVfXygyMDM1Myk7bGV0IGdlbk9UUFN0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENscyxwYWRkaW5nWFN9PXRva2VuO3JldHVybntbY29tcG9uZW50Q2xzXTp7ZGlzcGxheToiaW5saW5lLWZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsZmxleFdyYXA6Im5vd3JhcCIsY29sdW1uR2FwOnBhZGRpbmdYUyxbYCR7Y29tcG9uZW50Q2xzfS1pbnB1dC13cmFwcGVyYF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsW2Ake2NvbXBvbmVudENsc30tbWFzay1pY29uYF06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsekluZGV4OiIxIix0b3A6IjUwJSIscmlnaHQ6IjUwJSIsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoNTAlLCAtNTAlKSIscG9pbnRlckV2ZW50czoibm9uZSJ9LFtgJHtjb21wb25lbnRDbHN9LW1hc2staW5wdXRgXTp7Y29sb3I6InRyYW5zcGFyZW50IixjYXJldENvbG9yOiJ2YXIoLS1hbnQtY29sb3ItdGV4dCkifSxbYCR7Y29tcG9uZW50Q2xzfS1tYXNrLWlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbmBdOnsiLXdlYmtpdC1hcHBlYXJhbmNlIjoibm9uZSIsbWFyZ2luOjB9LFtgJHtjb21wb25lbnRDbHN9LW1hc2staW5wdXRbdHlwZT1udW1iZXJdYF06eyItbW96LWFwcGVhcmFuY2UiOiJ0ZXh0ZmllbGQifX0sIiYtcnRsIjp7ZGlyZWN0aW9uOiJydGwifSxbYCR7Y29tcG9uZW50Q2xzfS1pbnB1dGBdOnt0ZXh0QWxpZ246ImNlbnRlciIscGFkZGluZ0lubGluZTp0b2tlbi5wYWRkaW5nWFhTfSxbYCYke2NvbXBvbmVudENsc30tc20gJHtjb21wb25lbnRDbHN9LWlucHV0YF06e3BhZGRpbmdJbmxpbmU6dG9rZW4uY2FsYyh0b2tlbi5wYWRkaW5nWFhTKS5kaXYoMikuZXF1YWwoKX0sW2AmJHtjb21wb25lbnRDbHN9LWxnICR7Y29tcG9uZW50Q2xzfS1pbnB1dGBdOntwYWRkaW5nSW5saW5lOnRva2VuLnBhZGRpbmdYU319fX07dmFyIG90cD0oMCxnZW5TdHlsZVV0aWxzLkkkKShbIklucHV0IiwiT1RQIl0sdG9rZW49PntsZXQgaW5wdXRUb2tlbj0oMCxjc3NpbmpzX3V0aWxzX2VzLklYKSh0b2tlbiwoMCxzdHlsZV90b2tlbi5lKSh0b2tlbikpO3JldHVybltnZW5PVFBTdHlsZShpbnB1dFRva2VuKV19LHN0eWxlX3Rva2VuLlQpLHJhZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDk2NTIzKSxPVFBJbnB1dF9yZXN0PWZ1bmN0aW9uKHMsZSl7dmFyIHQ9e307Zm9yKHZhciBwIGluIHMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMscCkmJjA+ZS5pbmRleE9mKHApJiYodFtwXT1zW3BdKTtpZihudWxsIT1zJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scylmb3IodmFyIGk9MCxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7aTxwLmxlbmd0aDtpKyspMD5lLmluZGV4T2YocFtpXSkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLHBbaV0pJiYodFtwW2ldXT1zW3BbaV1dKTtyZXR1cm4gdH07bGV0IE9UUElucHV0PXJlYWN0LmZvcndhcmRSZWYoKHByb3BzLHJlZik9PntsZXR7Y2xhc3NOYW1lLHZhbHVlLG9uQ2hhbmdlLG9uQWN0aXZlQ2hhbmdlLGluZGV4LG1hc2t9PXByb3BzLHJlc3RQcm9wcz1PVFBJbnB1dF9yZXN0KHByb3BzLFsiY2xhc3NOYW1lIiwidmFsdWUiLCJvbkNoYW5nZSIsIm9uQWN0aXZlQ2hhbmdlIiwiaW5kZXgiLCJtYXNrIl0pLHtnZXRQcmVmaXhDbHN9PXJlYWN0LnVzZUNvbnRleHQoY29udGV4dC5FXykscHJlZml4Q2xzPWdldFByZWZpeENscygib3RwIiksaW5wdXRSZWY9cmVhY3QudXNlUmVmKG51bGwpO3JlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCgpPT5pbnB1dFJlZi5jdXJyZW50KTtsZXQgb25JbnRlcm5hbENoYW5nZT1lPT57b25DaGFuZ2UoaW5kZXgsZS50YXJnZXQudmFsdWUpfSxzeW5jU2VsZWN0aW9uPSgpPT57KDAscmFmLlopKCgpPT57dmFyIF9hO2xldCBpbnB1dEVsZT1udWxsPT09KF9hPWlucHV0UmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1fYT92b2lkIDA6X2EuaW5wdXQ7ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWlucHV0RWxlJiZpbnB1dEVsZSYmaW5wdXRFbGUuc2VsZWN0KCl9KX0sb25JbnRlcm5hbEtleURvd249ZXZlbnQ9PntsZXR7a2V5LGN0cmxLZXksbWV0YUtleX09ZXZlbnQ7IkFycm93TGVmdCI9PT1rZXk/b25BY3RpdmVDaGFuZ2UoaW5kZXgtMSk6IkFycm93UmlnaHQiPT09a2V5P29uQWN0aXZlQ2hhbmdlKGluZGV4KzEpOiJ6Ij09PWtleSYmKGN0cmxLZXl8fG1ldGFLZXkpJiZldmVudC5wcmV2ZW50RGVmYXVsdCgpLHN5bmNTZWxlY3Rpb24oKX0sb25JbnRlcm5hbEtleVVwPWU9PnsiQmFja3NwYWNlIiE9PWUua2V5fHx2YWx1ZXx8b25BY3RpdmVDaGFuZ2UoaW5kZXgtMSksc3luY1NlbGVjdGlvbigpfTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtwcmVmaXhDbHN9LWlucHV0LXdyYXBwZXJgLHJvbGU6InByZXNlbnRhdGlvbiJ9LG1hc2smJiIiIT09dmFsdWUmJnZvaWQgMCE9PXZhbHVlJiZyZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30tbWFzay1pY29uYCwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sInN0cmluZyI9PXR5cGVvZiBtYXNrP21hc2s6dmFsdWUpLHJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXQsT2JqZWN0LmFzc2lnbih7ImFyaWEtbGFiZWwiOmBPVFAgSW5wdXQgJHtpbmRleCsxfWAsdHlwZTohMD09PW1hc2s/InBhc3N3b3JkIjoidGV4dCJ9LHJlc3RQcm9wcyx7cmVmOmlucHV0UmVmLHZhbHVlOnZhbHVlLG9uSW5wdXQ6b25JbnRlcm5hbENoYW5nZSxvbkZvY3VzOnN5bmNTZWxlY3Rpb24sb25LZXlEb3duOm9uSW50ZXJuYWxLZXlEb3duLG9uS2V5VXA6b25JbnRlcm5hbEtleVVwLG9uTW91c2VEb3duOnN5bmNTZWxlY3Rpb24sb25Nb3VzZVVwOnN5bmNTZWxlY3Rpb24sY2xhc3NOYW1lOmNsYXNzbmFtZXNfZGVmYXVsdCgpKGNsYXNzTmFtZSx7W2Ake3ByZWZpeENsc30tbWFzay1pbnB1dGBdOm1hc2t9KX0pKSl9KTt2YXIgT1RQX3Jlc3Q9ZnVuY3Rpb24ocyxlKXt2YXIgdD17fTtmb3IodmFyIHAgaW4gcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxwKSYmMD5lLmluZGV4T2YocCkmJih0W3BdPXNbcF0pO2lmKG51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKWZvcih2YXIgaT0wLHA9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtpPHAubGVuZ3RoO2krKykwPmUuaW5kZXhPZihwW2ldKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMscFtpXSkmJih0W3BbaV1dPXNbcFtpXV0pO3JldHVybiB0fTtmdW5jdGlvbiBzdHJUb0FycihzdHIpe3JldHVybihzdHJ8fCIiKS5zcGxpdCgiIil9bGV0IFNlcGFyYXRvcj1wcm9wcz0+e2xldHtpbmRleCxwcmVmaXhDbHMsc2VwYXJhdG9yfT1wcm9wcyxzZXBhcmF0b3JOb2RlPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXBhcmF0b3I/c2VwYXJhdG9yKGluZGV4KTpzZXBhcmF0b3I7cmV0dXJuIHNlcGFyYXRvck5vZGU/cmVhY3QuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZTpgJHtwcmVmaXhDbHN9LXNlcGFyYXRvcmB9LHNlcGFyYXRvck5vZGUpOm51bGx9LE9UUD1yZWFjdC5mb3J3YXJkUmVmKChwcm9wcyxyZWYpPT57bGV0e3ByZWZpeENsczpjdXN0b21pemVQcmVmaXhDbHMsbGVuZ3RoPTYsc2l6ZTpjdXN0b21TaXplLGRlZmF1bHRWYWx1ZSx2YWx1ZSxvbkNoYW5nZSxmb3JtYXR0ZXIsc2VwYXJhdG9yLHZhcmlhbnQsZGlzYWJsZWQsc3RhdHVzOmN1c3RvbVN0YXR1cyxhdXRvRm9jdXMsbWFzayx0eXBlLG9uSW5wdXQsaW5wdXRNb2RlfT1wcm9wcyxyZXN0UHJvcHM9T1RQX3Jlc3QocHJvcHMsWyJwcmVmaXhDbHMiLCJsZW5ndGgiLCJzaXplIiwiZGVmYXVsdFZhbHVlIiwidmFsdWUiLCJvbkNoYW5nZSIsImZvcm1hdHRlciIsInNlcGFyYXRvciIsInZhcmlhbnQiLCJkaXNhYmxlZCIsInN0YXR1cyIsImF1dG9Gb2N1cyIsIm1hc2siLCJ0eXBlIiwib25JbnB1dCIsImlucHV0TW9kZSJdKSx7Z2V0UHJlZml4Q2xzLGRpcmVjdGlvbn09cmVhY3QudXNlQ29udGV4dChjb250ZXh0LkVfKSxwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJvdHAiLGN1c3RvbWl6ZVByZWZpeENscyksZG9tQXR0cnM9KDAscGlja0F0dHJzLlopKHJlc3RQcm9wcyx7YXJpYTohMCxkYXRhOiEwLGF0dHI6ITB9KSxbd3JhcENTU1ZhcixoYXNoSWQsY3NzVmFyQ2xzXT1vdHAocHJlZml4Q2xzKSxtZXJnZWRTaXplPSgwLHVzZVNpemUuWikoY3R4PT5udWxsIT1jdXN0b21TaXplP2N1c3RvbVNpemU6Y3R4KSxmb3JtQ29udGV4dD1yZWFjdC51c2VDb250ZXh0KGZvcm1fY29udGV4dC5hTSksbWVyZ2VkU3RhdHVzPSgwLHN0YXR1c1V0aWxzLkYpKGZvcm1Db250ZXh0LnN0YXR1cyxjdXN0b21TdGF0dXMpLHByb3h5Rm9ybUNvbnRleHQ9cmVhY3QudXNlTWVtbygoKT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGZvcm1Db250ZXh0KSx7c3RhdHVzOm1lcmdlZFN0YXR1cyxoYXNGZWVkYmFjazohMSxmZWVkYmFja0ljb246bnVsbH0pLFtmb3JtQ29udGV4dCxtZXJnZWRTdGF0dXNdKSxjb250YWluZXJSZWY9cmVhY3QudXNlUmVmKG51bGwpLHJlZnM9cmVhY3QudXNlUmVmKHt9KTtyZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwoKT0+KHtmb2N1cygpe3ZhciBfYTtudWxsPT09KF9hPXJlZnMuY3VycmVudFswXSl8fHZvaWQgMD09PV9hfHxfYS5mb2N1cygpfSxibHVyKCl7dmFyIF9hO2ZvcihsZXQgaT0wO2k8bGVuZ3RoO2krPTEpbnVsbD09PShfYT1yZWZzLmN1cnJlbnRbaV0pfHx2b2lkIDA9PT1fYXx8X2EuYmx1cigpfSxuYXRpdmVFbGVtZW50OmNvbnRhaW5lclJlZi5jdXJyZW50fSkpO2xldCBpbnRlcm5hbEZvcm1hdHRlcj10eHQ9PmZvcm1hdHRlcj9mb3JtYXR0ZXIodHh0KTp0eHQsW3ZhbHVlQ2VsbHMsc2V0VmFsdWVDZWxsc109cmVhY3QudXNlU3RhdGUoKCk9PnN0clRvQXJyKGludGVybmFsRm9ybWF0dGVyKGRlZmF1bHRWYWx1ZXx8IiIpKSk7cmVhY3QudXNlRWZmZWN0KCgpPT57dm9pZCAwIT09dmFsdWUmJnNldFZhbHVlQ2VsbHMoc3RyVG9BcnIodmFsdWUpKX0sW3ZhbHVlXSk7bGV0IHRyaWdnZXJWYWx1ZUNlbGxzQ2hhbmdlPSgwLHVzZUV2ZW50LlopKG5leHRWYWx1ZUNlbGxzPT57c2V0VmFsdWVDZWxscyhuZXh0VmFsdWVDZWxscyksb25JbnB1dCYmb25JbnB1dChuZXh0VmFsdWVDZWxscyksb25DaGFuZ2UmJm5leHRWYWx1ZUNlbGxzLmxlbmd0aD09PWxlbmd0aCYmbmV4dFZhbHVlQ2VsbHMuZXZlcnkoYz0+YykmJm5leHRWYWx1ZUNlbGxzLnNvbWUoKGMsaW5kZXgpPT52YWx1ZUNlbGxzW2luZGV4XSE9PWMpJiZvbkNoYW5nZShuZXh0VmFsdWVDZWxscy5qb2luKCIiKSl9KSxwYXRjaFZhbHVlPSgwLHVzZUV2ZW50LlopKChpbmRleCx0eHQpPT57bGV0IG5leHRDZWxscz0oMCx0b0NvbnN1bWFibGVBcnJheS5aKSh2YWx1ZUNlbGxzKTtmb3IobGV0IGk9MDtpPGluZGV4O2krPTEpbmV4dENlbGxzW2ldfHwobmV4dENlbGxzW2ldPSIiKTt0eHQubGVuZ3RoPD0xP25leHRDZWxsc1tpbmRleF09dHh0Om5leHRDZWxscz1uZXh0Q2VsbHMuc2xpY2UoMCxpbmRleCkuY29uY2F0KHN0clRvQXJyKHR4dCkpLG5leHRDZWxscz1uZXh0Q2VsbHMuc2xpY2UoMCxsZW5ndGgpO2ZvcihsZXQgaTE9bmV4dENlbGxzLmxlbmd0aC0xO2kxPj0wJiYhbmV4dENlbGxzW2kxXTtpMS09MSluZXh0Q2VsbHMucG9wKCk7bGV0IGZvcm1hdHRlZFZhbHVlPWludGVybmFsRm9ybWF0dGVyKG5leHRDZWxscy5tYXAoYz0+Y3x8IiAiKS5qb2luKCIiKSk7cmV0dXJuIG5leHRDZWxscz1zdHJUb0Fycihmb3JtYXR0ZWRWYWx1ZSkubWFwKChjLGkpPT4iICIhPT1jfHxuZXh0Q2VsbHNbaV0/YzpuZXh0Q2VsbHNbaV0pfSksb25JbnB1dENoYW5nZT0oaW5kZXgsdHh0KT0+e3ZhciBfYTtsZXQgbmV4dENlbGxzPXBhdGNoVmFsdWUoaW5kZXgsdHh0KSxuZXh0SW5kZXg9TWF0aC5taW4oaW5kZXgrdHh0Lmxlbmd0aCxsZW5ndGgtMSk7bmV4dEluZGV4IT09aW5kZXgmJnZvaWQgMCE9PW5leHRDZWxsc1tpbmRleF0mJihudWxsPT09KF9hPXJlZnMuY3VycmVudFtuZXh0SW5kZXhdKXx8dm9pZCAwPT09X2F8fF9hLmZvY3VzKCkpLHRyaWdnZXJWYWx1ZUNlbGxzQ2hhbmdlKG5leHRDZWxscyl9LG9uSW5wdXRBY3RpdmVDaGFuZ2U9bmV4dEluZGV4PT57dmFyIF9hO251bGw9PT0oX2E9cmVmcy5jdXJyZW50W25leHRJbmRleF0pfHx2b2lkIDA9PT1fYXx8X2EuZm9jdXMoKX0saW5wdXRTaGFyZWRQcm9wcz17dmFyaWFudCxkaXNhYmxlZCxzdGF0dXM6bWVyZ2VkU3RhdHVzLG1hc2ssdHlwZSxpbnB1dE1vZGV9O3JldHVybiB3cmFwQ1NTVmFyKHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIsT2JqZWN0LmFzc2lnbih7fSxkb21BdHRycyx7cmVmOmNvbnRhaW5lclJlZixjbGFzc05hbWU6Y2xhc3NuYW1lc19kZWZhdWx0KCkocHJlZml4Q2xzLHtbYCR7cHJlZml4Q2xzfS1zbWBdOiJzbWFsbCI9PT1tZXJnZWRTaXplLFtgJHtwcmVmaXhDbHN9LWxnYF06ImxhcmdlIj09PW1lcmdlZFNpemUsW2Ake3ByZWZpeENsc30tcnRsYF06InJ0bCI9PT1kaXJlY3Rpb259LGNzc1ZhckNscyxoYXNoSWQpLHJvbGU6Imdyb3VwIn0pLHJlYWN0LmNyZWF0ZUVsZW1lbnQoZm9ybV9jb250ZXh0LmFNLlByb3ZpZGVyLHt2YWx1ZTpwcm94eUZvcm1Db250ZXh0fSxBcnJheS5mcm9tKHtsZW5ndGh9KS5tYXAoKF8saW5kZXgpPT57bGV0IGtleT1gb3RwLSR7aW5kZXh9YCxzaW5nbGVWYWx1ZT12YWx1ZUNlbGxzW2luZGV4XXx8IiI7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQocmVhY3QuRnJhZ21lbnQse2tleTprZXl9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoT1RQSW5wdXQsT2JqZWN0LmFzc2lnbih7cmVmKGlucHV0RWxlKXtyZWZzLmN1cnJlbnRbaW5kZXhdPWlucHV0RWxlfSxpbmRleDppbmRleCxzaXplOm1lcmdlZFNpemUsaHRtbFNpemU6MSxjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS1pbnB1dGAsb25DaGFuZ2U6b25JbnB1dENoYW5nZSx2YWx1ZTpzaW5nbGVWYWx1ZSxvbkFjdGl2ZUNoYW5nZTpvbklucHV0QWN0aXZlQ2hhbmdlLGF1dG9Gb2N1czowPT09aW5kZXgmJmF1dG9Gb2N1c30saW5wdXRTaGFyZWRQcm9wcykpLGluZGV4PGxlbmd0aC0xJiZyZWFjdC5jcmVhdGVFbGVtZW50KFNlcGFyYXRvcix7c2VwYXJhdG9yOnNlcGFyYXRvcixpbmRleDppbmRleCxwcmVmaXhDbHM6cHJlZml4Q2xzfSkpfSkpKSl9KTt2YXIgZXNtX2V4dGVuZHM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzQ2MCksYXNuX0V5ZUludmlzaWJsZU91dGxpbmVkPXtpY29uOnt0YWc6InN2ZyIsYXR0cnM6e3ZpZXdCb3g6IjY0IDY0IDg5NiA4OTYiLGZvY3VzYWJsZToiZmFsc2UifSxjaGlsZHJlbjpbe3RhZzoicGF0aCIsYXR0cnM6e2Q6Ik05NDIuMiA0ODYuMlE4ODkuNDcgMzc1LjExIDgxNi43IDMwNWwtNTAuODggNTAuODhDODA3LjMxIDM5NS41MyA4NDMuNDUgNDQ3LjQgODc0LjcgNTEyIDc5MS41IDY4NC4yIDY3My40IDc2NiA1MTIgNzY2cS03Mi42NyAwLTEzMy44Ny0yMi4zOEwzMjMgNzk4Ljc1UTQwOCA4MzggNTEyIDgzOHEyODguMyAwIDQzMC4yLTMwMC4zYTYwLjI5IDYwLjI5IDAgMDAwLTUxLjV6bS02My41Ny0zMjAuNjRMODM2IDEyMi44OGE4IDggMCAwMC0xMS4zMiAwTDcxNS4zMSAyMzIuMlE2MjQuODYgMTg2IDUxMiAxODZxLTI4OC4zIDAtNDMwLjIgMzAwLjNhNjAuMyA2MC4zIDAgMDAwIDUxLjVxNTYuNjkgMTE5LjQgMTM2LjUgMTkxLjQxTDExMi40OCA4MzVhOCA4IDAgMDAwIDExLjMxTDE1NS4xNyA4ODlhOCA4IDAgMDAxMS4zMSAwbDcxMi4xNS03MTIuMTJhOCA4IDAgMDAwLTExLjMyek0xNDkuMyA1MTJDMjMyLjYgMzM5LjggMzUwLjcgMjU4IDUxMiAyNThjNTQuNTQgMCAxMDQuMTMgOS4zNiAxNDkuMTIgMjguMzlsLTcwLjMgNzAuM2ExNzYgMTc2IDAgMDAtMjM4LjEzIDIzOC4xM2wtODMuNDIgODMuNDJDMjIzLjEgNjM3LjQ5IDE4My4zIDU4Mi4yOCAxNDkuMyA1MTJ6bTI0Ni43IDBhMTEyLjExIDExMi4xMSAwIDAxMTQ2LjItMTA2LjY5TDQwMS4zMSA1NDYuMkExMTIgMTEyIDAgMDEzOTYgNTEyeiJ9fSx7dGFnOiJwYXRoIixhdHRyczp7ZDoiTTUwOCA2MjRjLTMuNDYgMC02Ljg3LS4xNi0xMC4yNS0uNDdsLTUyLjgyIDUyLjgyYTE3Ni4wOSAxNzYuMDkgMCAwMDIyNy40Mi0yMjcuNDJsLTUyLjgyIDUyLjgyYy4zMSAzLjM4LjQ3IDYuNzkuNDcgMTAuMjVhMTExLjk0IDExMS45NCAwIDAxLTExMiAxMTJ6In19XX0sbmFtZToiZXllLWludmlzaWJsZSIsdGhlbWU6Im91dGxpbmVkIn0sQW50ZEljb249X193ZWJwYWNrX3JlcXVpcmVfXyg4NzU5MiksUmVmSWNvbj1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoQW50ZEljb24uWiwoMCxlc21fZXh0ZW5kcy5aKSh7fSxwcm9wcyx7cmVmOnJlZixpY29uOmFzbl9FeWVJbnZpc2libGVPdXRsaW5lZH0pKX0pLGFzbl9FeWVPdXRsaW5lZD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNOTQyLjIgNDg2LjJDODQ3LjQgMjg2LjUgNzA0LjEgMTg2IDUxMiAxODZjLTE5Mi4yIDAtMzM1LjQgMTAwLjUtNDMwLjIgMzAwLjNhNjAuMyA2MC4zIDAgMDAwIDUxLjVDMTc2LjYgNzM3LjUgMzE5LjkgODM4IDUxMiA4MzhjMTkyLjIgMCAzMzUuNC0xMDAuNSA0MzAuMi0zMDAuMyA3LjctMTYuMiA3LjctMzUgMC01MS41ek01MTIgNzY2Yy0xNjEuMyAwLTI3OS40LTgxLjgtMzYyLjctMjU0QzIzMi42IDMzOS44IDM1MC43IDI1OCA1MTIgMjU4YzE2MS4zIDAgMjc5LjQgODEuOCAzNjIuNyAyNTRDNzkxLjUgNjg0LjIgNjczLjQgNzY2IDUxMiA3NjZ6bS00LTQzMGMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZzNzguOCAxNzYgMTc2IDE3NiAxNzYtNzguOCAxNzYtMTc2LTc4LjgtMTc2LTE3Ni0xNzZ6bTAgMjg4Yy02MS45IDAtMTEyLTUwLjEtMTEyLTExMnM1MC4xLTExMiAxMTItMTEyIDExMiA1MC4xIDExMiAxMTItNTAuMSAxMTItMTEyIDExMnoifX1dfSxuYW1lOiJleWUiLHRoZW1lOiJvdXRsaW5lZCJ9LEV5ZU91dGxpbmVkX1JlZkljb249cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KEFudGRJY29uLlosKDAsZXNtX2V4dGVuZHMuWikoe30scHJvcHMse3JlZjpyZWYsaWNvbjphc25fRXllT3V0bGluZWR9KSl9KSxvbWl0PV9fd2VicGFja19yZXF1aXJlX18oMTAzNjYpLFBhc3N3b3JkX3Jlc3Q9ZnVuY3Rpb24ocyxlKXt2YXIgdD17fTtmb3IodmFyIHAgaW4gcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxwKSYmMD5lLmluZGV4T2YocCkmJih0W3BdPXNbcF0pO2lmKG51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKWZvcih2YXIgaT0wLHA9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtpPHAubGVuZ3RoO2krKykwPmUuaW5kZXhPZihwW2ldKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMscFtpXSkmJih0W3BbaV1dPXNbcFtpXV0pO3JldHVybiB0fTtsZXQgZGVmYXVsdEljb25SZW5kZXI9dmlzaWJsZT0+dmlzaWJsZT9yZWFjdC5jcmVhdGVFbGVtZW50KEV5ZU91dGxpbmVkX1JlZkljb24sbnVsbCk6cmVhY3QuY3JlYXRlRWxlbWVudChSZWZJY29uLG51bGwpLGFjdGlvbk1hcD17Y2xpY2s6Im9uQ2xpY2siLGhvdmVyOiJvbk1vdXNlT3ZlciJ9LFBhc3N3b3JkPXJlYWN0LmZvcndhcmRSZWYoKHByb3BzLHJlZik9PntsZXR7ZGlzYWJsZWQ6Y3VzdG9tRGlzYWJsZWQsYWN0aW9uPSJjbGljayIsdmlzaWJpbGl0eVRvZ2dsZT0hMCxpY29uUmVuZGVyPWRlZmF1bHRJY29uUmVuZGVyfT1wcm9wcyxkaXNhYmxlZD1yZWFjdC51c2VDb250ZXh0KERpc2FibGVkQ29udGV4dC5aKSxtZXJnZWREaXNhYmxlZD1udWxsIT1jdXN0b21EaXNhYmxlZD9jdXN0b21EaXNhYmxlZDpkaXNhYmxlZCx2aXNpYmlsaXR5Q29udHJvbGxlZD0ib2JqZWN0Ij09dHlwZW9mIHZpc2liaWxpdHlUb2dnbGUmJnZvaWQgMCE9PXZpc2liaWxpdHlUb2dnbGUudmlzaWJsZSxbdmlzaWJsZSxzZXRWaXNpYmxlXT0oMCxyZWFjdC51c2VTdGF0ZSkoKCk9PiEhdmlzaWJpbGl0eUNvbnRyb2xsZWQmJnZpc2liaWxpdHlUb2dnbGUudmlzaWJsZSksaW5wdXRSZWY9KDAscmVhY3QudXNlUmVmKShudWxsKTtyZWFjdC51c2VFZmZlY3QoKCk9Pnt2aXNpYmlsaXR5Q29udHJvbGxlZCYmc2V0VmlzaWJsZSh2aXNpYmlsaXR5VG9nZ2xlLnZpc2libGUpfSxbdmlzaWJpbGl0eUNvbnRyb2xsZWQsdmlzaWJpbGl0eVRvZ2dsZV0pO2xldCByZW1vdmVQYXNzd29yZFRpbWVvdXQ9dXNlUmVtb3ZlUGFzc3dvcmRUaW1lb3V0KGlucHV0UmVmKSxvblZpc2libGVDaGFuZ2U9KCk9Pnt2YXIgX2E7aWYobWVyZ2VkRGlzYWJsZWQpcmV0dXJuO3Zpc2libGUmJnJlbW92ZVBhc3N3b3JkVGltZW91dCgpO2xldCBuZXh0VmlzaWJsZT0hdmlzaWJsZTtzZXRWaXNpYmxlKG5leHRWaXNpYmxlKSwib2JqZWN0Ij09dHlwZW9mIHZpc2liaWxpdHlUb2dnbGUmJihudWxsPT09KF9hPXZpc2liaWxpdHlUb2dnbGUub25WaXNpYmxlQ2hhbmdlKXx8dm9pZCAwPT09X2F8fF9hLmNhbGwodmlzaWJpbGl0eVRvZ2dsZSxuZXh0VmlzaWJsZSkpfSx7Y2xhc3NOYW1lLHByZWZpeENsczpjdXN0b21pemVQcmVmaXhDbHMsaW5wdXRQcmVmaXhDbHM6Y3VzdG9taXplSW5wdXRQcmVmaXhDbHMsc2l6ZX09cHJvcHMscmVzdFByb3BzPVBhc3N3b3JkX3Jlc3QocHJvcHMsWyJjbGFzc05hbWUiLCJwcmVmaXhDbHMiLCJpbnB1dFByZWZpeENscyIsInNpemUiXSkse2dldFByZWZpeENsc309cmVhY3QudXNlQ29udGV4dChjb250ZXh0LkVfKSxpbnB1dFByZWZpeENscz1nZXRQcmVmaXhDbHMoImlucHV0IixjdXN0b21pemVJbnB1dFByZWZpeENscykscHJlZml4Q2xzPWdldFByZWZpeENscygiaW5wdXQtcGFzc3dvcmQiLGN1c3RvbWl6ZVByZWZpeENscyksc3VmZml4SWNvbj12aXNpYmlsaXR5VG9nZ2xlJiYocHJlZml4Q2xzPT57bGV0IGljb25UcmlnZ2VyPWFjdGlvbk1hcFthY3Rpb25dfHwiIixpY29uPWljb25SZW5kZXIodmlzaWJsZSksaWNvblByb3BzPXtbaWNvblRyaWdnZXJdOm9uVmlzaWJsZUNoYW5nZSxjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS1pY29uYCxrZXk6InBhc3N3b3JkSWNvbiIsb25Nb3VzZURvd24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpfSxvbk1vdXNlVXAoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpfX07cmV0dXJuIHJlYWN0LmNsb25lRWxlbWVudChyZWFjdC5pc1ZhbGlkRWxlbWVudChpY29uKT9pY29uOnJlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLG51bGwsaWNvbiksaWNvblByb3BzKX0pKHByZWZpeENscyksaW5wdXRDbGFzc05hbWU9Y2xhc3NuYW1lc19kZWZhdWx0KCkocHJlZml4Q2xzLGNsYXNzTmFtZSx7W2Ake3ByZWZpeENsc30tJHtzaXplfWBdOiEhc2l6ZX0pLG9taXR0ZWRQcm9wcz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsb21pdC5aKShyZXN0UHJvcHMsWyJzdWZmaXgiLCJpY29uUmVuZGVyIiwidmlzaWJpbGl0eVRvZ2dsZSJdKSkse3R5cGU6dmlzaWJsZT8idGV4dCI6InBhc3N3b3JkIixjbGFzc05hbWU6aW5wdXRDbGFzc05hbWUscHJlZml4Q2xzOmlucHV0UHJlZml4Q2xzLHN1ZmZpeDpzdWZmaXhJY29ufSk7cmV0dXJuIHNpemUmJihvbWl0dGVkUHJvcHMuc2l6ZT1zaXplKSxyZWFjdC5jcmVhdGVFbGVtZW50KElucHV0LE9iamVjdC5hc3NpZ24oe3JlZjooMCxlc19yZWYuc1EpKHJlZixpbnB1dFJlZil9LG9taXR0ZWRQcm9wcykpfSk7dmFyIFNlYXJjaE91dGxpbmVkPV9fd2VicGFja19yZXF1aXJlX18oNjg3OTUpLHJlYWN0Tm9kZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk2MTU5KSxlc19idXR0b249X193ZWJwYWNrX3JlcXVpcmVfXyg4MDQ0NyksU2VhcmNoX3Jlc3Q9ZnVuY3Rpb24ocyxlKXt2YXIgdD17fTtmb3IodmFyIHAgaW4gcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxwKSYmMD5lLmluZGV4T2YocCkmJih0W3BdPXNbcF0pO2lmKG51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKWZvcih2YXIgaT0wLHA9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtpPHAubGVuZ3RoO2krKykwPmUuaW5kZXhPZihwW2ldKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMscFtpXSkmJih0W3BbaV1dPXNbcFtpXV0pO3JldHVybiB0fTtsZXQgU2VhcmNoPXJlYWN0LmZvcndhcmRSZWYoKHByb3BzLHJlZik9PntsZXQgYnV0dG9uO2xldHtwcmVmaXhDbHM6Y3VzdG9taXplUHJlZml4Q2xzLGlucHV0UHJlZml4Q2xzOmN1c3RvbWl6ZUlucHV0UHJlZml4Q2xzLGNsYXNzTmFtZSxzaXplOmN1c3RvbWl6ZVNpemUsc3VmZml4LGVudGVyQnV0dG9uPSExLGFkZG9uQWZ0ZXIsbG9hZGluZyxkaXNhYmxlZCxvblNlYXJjaDpjdXN0b21PblNlYXJjaCxvbkNoYW5nZTpjdXN0b21PbkNoYW5nZSxvbkNvbXBvc2l0aW9uU3RhcnQsb25Db21wb3NpdGlvbkVuZH09cHJvcHMscmVzdFByb3BzPVNlYXJjaF9yZXN0KHByb3BzLFsicHJlZml4Q2xzIiwiaW5wdXRQcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJzaXplIiwic3VmZml4IiwiZW50ZXJCdXR0b24iLCJhZGRvbkFmdGVyIiwibG9hZGluZyIsImRpc2FibGVkIiwib25TZWFyY2giLCJvbkNoYW5nZSIsIm9uQ29tcG9zaXRpb25TdGFydCIsIm9uQ29tcG9zaXRpb25FbmQiXSkse2dldFByZWZpeENscyxkaXJlY3Rpb259PXJlYWN0LnVzZUNvbnRleHQoY29udGV4dC5FXyksY29tcG9zZWRSZWY9cmVhY3QudXNlUmVmKCExKSxwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJpbnB1dC1zZWFyY2giLGN1c3RvbWl6ZVByZWZpeENscyksaW5wdXRQcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJpbnB1dCIsY3VzdG9taXplSW5wdXRQcmVmaXhDbHMpLHtjb21wYWN0U2l6ZX09KDAsQ29tcGFjdC5yaSkocHJlZml4Q2xzLGRpcmVjdGlvbiksc2l6ZT0oMCx1c2VTaXplLlopKGN0eD0+e3ZhciBfYTtyZXR1cm4gbnVsbCE9PShfYT1udWxsIT1jdXN0b21pemVTaXplP2N1c3RvbWl6ZVNpemU6Y29tcGFjdFNpemUpJiZ2b2lkIDAhPT1fYT9fYTpjdHh9KSxpbnB1dFJlZj1yZWFjdC51c2VSZWYobnVsbCksb25DaGFuZ2U9ZT0+eyhudWxsPT1lP3ZvaWQgMDplLnRhcmdldCkmJiJjbGljayI9PT1lLnR5cGUmJmN1c3RvbU9uU2VhcmNoJiZjdXN0b21PblNlYXJjaChlLnRhcmdldC52YWx1ZSxlLHtzb3VyY2U6ImNsZWFyIn0pLG51bGw9PWN1c3RvbU9uQ2hhbmdlfHxjdXN0b21PbkNoYW5nZShlKX0sb25Nb3VzZURvd249ZT0+e3ZhciBfYTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09KG51bGw9PT0oX2E9aW5wdXRSZWYuY3VycmVudCl8fHZvaWQgMD09PV9hP3ZvaWQgMDpfYS5pbnB1dCkmJmUucHJldmVudERlZmF1bHQoKX0sb25TZWFyY2g9ZT0+e3ZhciBfYSxfYjtjdXN0b21PblNlYXJjaCYmY3VzdG9tT25TZWFyY2gobnVsbD09PShfYj1udWxsPT09KF9hPWlucHV0UmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1fYT92b2lkIDA6X2EuaW5wdXQpfHx2b2lkIDA9PT1fYj92b2lkIDA6X2IudmFsdWUsZSx7c291cmNlOiJpbnB1dCJ9KX0sb25QcmVzc0VudGVyPWU9Pntjb21wb3NlZFJlZi5jdXJyZW50fHxsb2FkaW5nfHxvblNlYXJjaChlKX0sc2VhcmNoSWNvbj0iYm9vbGVhbiI9PXR5cGVvZiBlbnRlckJ1dHRvbj9yZWFjdC5jcmVhdGVFbGVtZW50KFNlYXJjaE91dGxpbmVkLlosbnVsbCk6bnVsbCxidG5DbGFzc05hbWU9YCR7cHJlZml4Q2xzfS1idXR0b25gLGVudGVyQnV0dG9uQXNFbGVtZW50PWVudGVyQnV0dG9ufHx7fSxpc0FudGRCdXR0b249ZW50ZXJCdXR0b25Bc0VsZW1lbnQudHlwZSYmITA9PT1lbnRlckJ1dHRvbkFzRWxlbWVudC50eXBlLl9fQU5UX0JVVFRPTjtidXR0b249aXNBbnRkQnV0dG9ufHwiYnV0dG9uIj09PWVudGVyQnV0dG9uQXNFbGVtZW50LnR5cGU/KDAscmVhY3ROb2RlLlRtKShlbnRlckJ1dHRvbkFzRWxlbWVudCxPYmplY3QuYXNzaWduKHtvbk1vdXNlRG93bixvbkNsaWNrKGUpe3ZhciBfYSxfYjtudWxsPT09KF9iPW51bGw9PT0oX2E9bnVsbD09ZW50ZXJCdXR0b25Bc0VsZW1lbnQ/dm9pZCAwOmVudGVyQnV0dG9uQXNFbGVtZW50LnByb3BzKXx8dm9pZCAwPT09X2E/dm9pZCAwOl9hLm9uQ2xpY2spfHx2b2lkIDA9PT1fYnx8X2IuY2FsbChfYSxlKSxvblNlYXJjaChlKX0sa2V5OiJlbnRlckJ1dHRvbiJ9LGlzQW50ZEJ1dHRvbj97Y2xhc3NOYW1lOmJ0bkNsYXNzTmFtZSxzaXplfTp7fSkpOnJlYWN0LmNyZWF0ZUVsZW1lbnQoZXNfYnV0dG9uLlpQLHtjbGFzc05hbWU6YnRuQ2xhc3NOYW1lLHR5cGU6ZW50ZXJCdXR0b24/InByaW1hcnkiOnZvaWQgMCxzaXplOnNpemUsZGlzYWJsZWQ6ZGlzYWJsZWQsa2V5OiJlbnRlckJ1dHRvbiIsb25Nb3VzZURvd246b25Nb3VzZURvd24sb25DbGljazpvblNlYXJjaCxsb2FkaW5nOmxvYWRpbmcsaWNvbjpzZWFyY2hJY29ufSxlbnRlckJ1dHRvbiksYWRkb25BZnRlciYmKGJ1dHRvbj1bYnV0dG9uLCgwLHJlYWN0Tm9kZS5UbSkoYWRkb25BZnRlcix7a2V5OiJhZGRvbkFmdGVyIn0pXSk7bGV0IGNscz1jbGFzc25hbWVzX2RlZmF1bHQoKShwcmVmaXhDbHMse1tgJHtwcmVmaXhDbHN9LXJ0bGBdOiJydGwiPT09ZGlyZWN0aW9uLFtgJHtwcmVmaXhDbHN9LSR7c2l6ZX1gXTohIXNpemUsW2Ake3ByZWZpeENsc30td2l0aC1idXR0b25gXTohIWVudGVyQnV0dG9ufSxjbGFzc05hbWUpLG5ld1Byb3BzPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxyZXN0UHJvcHMpLHtjbGFzc05hbWU6Y2xzLHByZWZpeENsczppbnB1dFByZWZpeENscyx0eXBlOiJzZWFyY2gifSksaGFuZGxlT25Db21wb3NpdGlvblN0YXJ0PWU9Pntjb21wb3NlZFJlZi5jdXJyZW50PSEwLG51bGw9PW9uQ29tcG9zaXRpb25TdGFydHx8b25Db21wb3NpdGlvblN0YXJ0KGUpfSxoYW5kbGVPbkNvbXBvc2l0aW9uRW5kPWU9Pntjb21wb3NlZFJlZi5jdXJyZW50PSExLG51bGw9PW9uQ29tcG9zaXRpb25FbmR8fG9uQ29tcG9zaXRpb25FbmQoZSl9O3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KElucHV0LE9iamVjdC5hc3NpZ24oe3JlZjooMCxlc19yZWYuc1EpKGlucHV0UmVmLHJlZiksb25QcmVzc0VudGVyOm9uUHJlc3NFbnRlcn0sbmV3UHJvcHMse3NpemU6c2l6ZSxvbkNvbXBvc2l0aW9uU3RhcnQ6aGFuZGxlT25Db21wb3NpdGlvblN0YXJ0LG9uQ29tcG9zaXRpb25FbmQ6aGFuZGxlT25Db21wb3NpdGlvbkVuZCxhZGRvbkFmdGVyOmJ1dHRvbixzdWZmaXg6c3VmZml4LG9uQ2hhbmdlOm9uQ2hhbmdlLGRpc2FibGVkOmRpc2FibGVkfSkpfSk7dmFyIFRleHRBcmVhPV9fd2VicGFja19yZXF1aXJlX18oMjk2MSk7bGV0IGVzX2lucHV0X0lucHV0PUlucHV0O2VzX2lucHV0X0lucHV0Lkdyb3VwPUdyb3VwLGVzX2lucHV0X0lucHV0LlNlYXJjaD1TZWFyY2gsZXNfaW5wdXRfSW5wdXQuVGV4dEFyZWE9VGV4dEFyZWEuWixlc19pbnB1dF9JbnB1dC5QYXNzd29yZD1QYXNzd29yZCxlc19pbnB1dF9JbnB1dC5PVFA9T1RQO3ZhciBpbnB1dD1lc19pbnB1dF9JbnB1dH0sNDc2NzM6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1RJOmZ1bmN0aW9uKCl7cmV0dXJuIHVzZVNoYXJlZFN0eWxlfSxpazpmdW5jdGlvbigpe3JldHVybiBnZW5CYXNpY0lucHV0U3R5bGV9LG56OmZ1bmN0aW9uKCl7cmV0dXJuIGdlblBsYWNlaG9sZGVyU3R5bGV9LHM3OmZ1bmN0aW9uKCl7cmV0dXJuIGdlbklucHV0R3JvdXBTdHlsZX0seDA6ZnVuY3Rpb24oKXtyZXR1cm4gZ2VuSW5wdXRTbWFsbFN0eWxlfX0pO3ZhciBfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg0NDg5OSksX3N0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXygxNDc0NyksX3N0eWxlX2NvbXBhY3RfaXRlbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fPV9fd2VicGFja19yZXF1aXJlX18oODAxMTApLF90aGVtZV9pbnRlcm5hbF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fPV9fd2VicGFja19yZXF1aXJlX18oODM1NTkpLF90aGVtZV9pbnRlcm5hbF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fPV9fd2VicGFja19yZXF1aXJlX18oNDI1NTkpLF90b2tlbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fPV9fd2VicGFja19yZXF1aXJlX18oMjAzNTMpLF92YXJpYW50c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fPV9fd2VicGFja19yZXF1aXJlX18oOTM5MDApO2xldCBnZW5QbGFjZWhvbGRlclN0eWxlPWNvbG9yPT4oeyImOjotbW96LXBsYWNlaG9sZGVyIjp7b3BhY2l0eToxfSwiJjo6cGxhY2Vob2xkZXIiOntjb2xvcix1c2VyU2VsZWN0OiJub25lIn0sIiY6cGxhY2Vob2xkZXItc2hvd24iOnt0ZXh0T3ZlcmZsb3c6ImVsbGlwc2lzIn19KSxnZW5JbnB1dExhcmdlU3R5bGU9dG9rZW49PntsZXR7cGFkZGluZ0Jsb2NrTEcsbGluZUhlaWdodExHLGJvcmRlclJhZGl1c0xHLHBhZGRpbmdJbmxpbmVMR309dG9rZW47cmV0dXJue3BhZGRpbmc6YCR7KDAsX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmJmKShwYWRkaW5nQmxvY2tMRyl9ICR7KDAsX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmJmKShwYWRkaW5nSW5saW5lTEcpfWAsZm9udFNpemU6dG9rZW4uaW5wdXRGb250U2l6ZUxHLGxpbmVIZWlnaHQ6bGluZUhlaWdodExHLGJvcmRlclJhZGl1czpib3JkZXJSYWRpdXNMR319LGdlbklucHV0U21hbGxTdHlsZT10b2tlbj0+KHtwYWRkaW5nOmAkeygwLF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5iZikodG9rZW4ucGFkZGluZ0Jsb2NrU00pfSAkeygwLF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5iZikodG9rZW4ucGFkZGluZ0lubGluZVNNKX1gLGZvbnRTaXplOnRva2VuLmlucHV0Rm9udFNpemVTTSxib3JkZXJSYWRpdXM6dG9rZW4uYm9yZGVyUmFkaXVzU019KSxnZW5CYXNpY0lucHV0U3R5bGU9dG9rZW49Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHdpZHRoOiIxMDAlIixtaW5XaWR0aDowLHBhZGRpbmc6YCR7KDAsX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmJmKSh0b2tlbi5wYWRkaW5nQmxvY2spfSAkeygwLF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5iZikodG9rZW4ucGFkZGluZ0lubGluZSl9YCxjb2xvcjp0b2tlbi5jb2xvclRleHQsZm9udFNpemU6dG9rZW4uaW5wdXRGb250U2l6ZSxsaW5lSGVpZ2h0OnRva2VuLmxpbmVIZWlnaHQsYm9yZGVyUmFkaXVzOnRva2VuLmJvcmRlclJhZGl1cyx0cmFuc2l0aW9uOmBhbGwgJHt0b2tlbi5tb3Rpb25EdXJhdGlvbk1pZH1gfSxnZW5QbGFjZWhvbGRlclN0eWxlKHRva2VuLmNvbG9yVGV4dFBsYWNlaG9sZGVyKSkseyImLWxnIjpPYmplY3QuYXNzaWduKHt9LGdlbklucHV0TGFyZ2VTdHlsZSh0b2tlbikpLCImLXNtIjpPYmplY3QuYXNzaWduKHt9LGdlbklucHV0U21hbGxTdHlsZSh0b2tlbikpLCImLXJ0bCwgJi10ZXh0YXJlYS1ydGwiOntkaXJlY3Rpb246InJ0bCJ9fSksZ2VuSW5wdXRHcm91cFN0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENscyxhbnRDbHN9PXRva2VuO3JldHVybntwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6InRhYmxlIix3aWR0aDoiMTAwJSIsYm9yZGVyQ29sbGFwc2U6InNlcGFyYXRlIixib3JkZXJTcGFjaW5nOjAsIiZbY2xhc3MqPSdjb2wtJ10iOntwYWRkaW5nSW5saW5lRW5kOnRva2VuLnBhZGRpbmdYUywiJjpsYXN0LWNoaWxkIjp7cGFkZGluZ0lubGluZUVuZDowfX0sW2AmLWxnICR7Y29tcG9uZW50Q2xzfSwgJi1sZyA+ICR7Y29tcG9uZW50Q2xzfS1ncm91cC1hZGRvbmBdOk9iamVjdC5hc3NpZ24oe30sZ2VuSW5wdXRMYXJnZVN0eWxlKHRva2VuKSksW2AmLXNtICR7Y29tcG9uZW50Q2xzfSwgJi1zbSA+ICR7Y29tcG9uZW50Q2xzfS1ncm91cC1hZGRvbmBdOk9iamVjdC5hc3NpZ24oe30sZ2VuSW5wdXRTbWFsbFN0eWxlKHRva2VuKSksW2AmLWxnICR7YW50Q2xzfS1zZWxlY3Qtc2luZ2xlICR7YW50Q2xzfS1zZWxlY3Qtc2VsZWN0b3JgXTp7aGVpZ2h0OnRva2VuLmNvbnRyb2xIZWlnaHRMR30sW2AmLXNtICR7YW50Q2xzfS1zZWxlY3Qtc2luZ2xlICR7YW50Q2xzfS1zZWxlY3Qtc2VsZWN0b3JgXTp7aGVpZ2h0OnRva2VuLmNvbnRyb2xIZWlnaHRTTX0sW2A+ICR7Y29tcG9uZW50Q2xzfWBdOntkaXNwbGF5OiJ0YWJsZS1jZWxsIiwiJjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIjp7Ym9yZGVyUmFkaXVzOjB9fSxbYCR7Y29tcG9uZW50Q2xzfS1ncm91cGBdOnsiJi1hZGRvbiwgJi13cmFwIjp7ZGlzcGxheToidGFibGUtY2VsbCIsd2lkdGg6MSx3aGl0ZVNwYWNlOiJub3dyYXAiLHZlcnRpY2FsQWxpZ246Im1pZGRsZSIsIiY6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSI6e2JvcmRlclJhZGl1czowfX0sIiYtd3JhcCA+ICoiOntkaXNwbGF5OiJibG9jayAhaW1wb3J0YW50In0sIiYtYWRkb24iOntwb3NpdGlvbjoicmVsYXRpdmUiLHBhZGRpbmc6YDAgJHsoMCxfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uYmYpKHRva2VuLnBhZGRpbmdJbmxpbmUpfWAsY29sb3I6dG9rZW4uY29sb3JUZXh0LGZvbnRXZWlnaHQ6Im5vcm1hbCIsZm9udFNpemU6dG9rZW4uaW5wdXRGb250U2l6ZSx0ZXh0QWxpZ246ImNlbnRlciIsYm9yZGVyUmFkaXVzOnRva2VuLmJvcmRlclJhZGl1cyx0cmFuc2l0aW9uOmBhbGwgJHt0b2tlbi5tb3Rpb25EdXJhdGlvblNsb3d9YCxsaW5lSGVpZ2h0OjEsW2Ake2FudENsc30tc2VsZWN0YF06e21hcmdpbjpgJHsoMCxfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uYmYpKHRva2VuLmNhbGModG9rZW4ucGFkZGluZ0Jsb2NrKS5hZGQoMSkubXVsKC0xKS5lcXVhbCgpKX0gJHsoMCxfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uYmYpKHRva2VuLmNhbGModG9rZW4ucGFkZGluZ0lubGluZSkubXVsKC0xKS5lcXVhbCgpKX1gLFtgJiR7YW50Q2xzfS1zZWxlY3Qtc2luZ2xlOm5vdCgke2FudENsc30tc2VsZWN0LWN1c3RvbWl6ZS1pbnB1dCk6bm90KCR7YW50Q2xzfS1wYWdpbmF0aW9uLXNpemUtY2hhbmdlcilgXTp7W2Ake2FudENsc30tc2VsZWN0LXNlbGVjdG9yYF06e2JhY2tncm91bmRDb2xvcjoiaW5oZXJpdCIsYm9yZGVyOmAkeygwLF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5iZikodG9rZW4ubGluZVdpZHRoKX0gJHt0b2tlbi5saW5lVHlwZX0gdHJhbnNwYXJlbnRgLGJveFNoYWRvdzoibm9uZSJ9fX0sW2Ake2FudENsc30tY2FzY2FkZXItcGlja2VyYF06e21hcmdpbjpgLTlweCAkeygwLF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5iZikodG9rZW4uY2FsYyh0b2tlbi5wYWRkaW5nSW5saW5lKS5tdWwoLTEpLmVxdWFsKCkpfWAsYmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsW2Ake2FudENsc30tY2FzY2FkZXItaW5wdXRgXTp7dGV4dEFsaWduOiJzdGFydCIsYm9yZGVyOjAsYm94U2hhZG93OiJub25lIn19fX0sW2NvbXBvbmVudENsc106e3dpZHRoOiIxMDAlIixtYXJnaW5Cb3R0b206MCx0ZXh0QWxpZ246ImluaGVyaXQiLCImOmZvY3VzIjp7ekluZGV4OjEsYm9yZGVySW5saW5lRW5kV2lkdGg6MX0sIiY6aG92ZXIiOnt6SW5kZXg6MSxib3JkZXJJbmxpbmVFbmRXaWR0aDoxLFtgJHtjb21wb25lbnRDbHN9LXNlYXJjaC13aXRoLWJ1dHRvbiAmYF06e3pJbmRleDowfX19LFtgPiAke2NvbXBvbmVudENsc306Zmlyc3QtY2hpbGQsICR7Y29tcG9uZW50Q2xzfS1ncm91cC1hZGRvbjpmaXJzdC1jaGlsZGBdOntib3JkZXJTdGFydEVuZFJhZGl1czowLGJvcmRlckVuZEVuZFJhZGl1czowLFtgJHthbnRDbHN9LXNlbGVjdCAke2FudENsc30tc2VsZWN0LXNlbGVjdG9yYF06e2JvcmRlclN0YXJ0RW5kUmFkaXVzOjAsYm9yZGVyRW5kRW5kUmFkaXVzOjB9fSxbYD4gJHtjb21wb25lbnRDbHN9LWFmZml4LXdyYXBwZXJgXTp7W2AmOm5vdCg6Zmlyc3QtY2hpbGQpICR7Y29tcG9uZW50Q2xzfWBdOntib3JkZXJTdGFydFN0YXJ0UmFkaXVzOjAsYm9yZGVyRW5kU3RhcnRSYWRpdXM6MH0sW2AmOm5vdCg6bGFzdC1jaGlsZCkgJHtjb21wb25lbnRDbHN9YF06e2JvcmRlclN0YXJ0RW5kUmFkaXVzOjAsYm9yZGVyRW5kRW5kUmFkaXVzOjB9fSxbYD4gJHtjb21wb25lbnRDbHN9Omxhc3QtY2hpbGQsICR7Y29tcG9uZW50Q2xzfS1ncm91cC1hZGRvbjpsYXN0LWNoaWxkYF06e2JvcmRlclN0YXJ0U3RhcnRSYWRpdXM6MCxib3JkZXJFbmRTdGFydFJhZGl1czowLFtgJHthbnRDbHN9LXNlbGVjdCAke2FudENsc30tc2VsZWN0LXNlbGVjdG9yYF06e2JvcmRlclN0YXJ0U3RhcnRSYWRpdXM6MCxib3JkZXJFbmRTdGFydFJhZGl1czowfX0sW2Ake2NvbXBvbmVudENsc30tYWZmaXgtd3JhcHBlcmBdOnsiJjpub3QoOmxhc3QtY2hpbGQpIjp7Ym9yZGVyU3RhcnRFbmRSYWRpdXM6MCxib3JkZXJFbmRFbmRSYWRpdXM6MCxbYCR7Y29tcG9uZW50Q2xzfS1zZWFyY2ggJmBdOntib3JkZXJTdGFydFN0YXJ0UmFkaXVzOnRva2VuLmJvcmRlclJhZGl1cyxib3JkZXJFbmRTdGFydFJhZGl1czp0b2tlbi5ib3JkZXJSYWRpdXN9fSxbYCY6bm90KDpmaXJzdC1jaGlsZCksICR7Y29tcG9uZW50Q2xzfS1zZWFyY2ggJjpub3QoOmZpcnN0LWNoaWxkKWBdOntib3JkZXJTdGFydFN0YXJ0UmFkaXVzOjAsYm9yZGVyRW5kU3RhcnRSYWRpdXM6MH19LFtgJiR7Y29tcG9uZW50Q2xzfS1ncm91cC1jb21wYWN0YF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtkaXNwbGF5OiJibG9jayJ9LCgwLF9zdHlsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmRGKSgpKSx7W2Ake2NvbXBvbmVudENsc30tZ3JvdXAtYWRkb24sICR7Y29tcG9uZW50Q2xzfS1ncm91cC13cmFwLCA+ICR7Y29tcG9uZW50Q2xzfWBdOnsiJjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIjp7Ym9yZGVySW5saW5lRW5kV2lkdGg6dG9rZW4ubGluZVdpZHRoLCImOmhvdmVyLCAmOmZvY3VzIjp7ekluZGV4OjF9fX0sIiYgPiAqIjp7ZGlzcGxheToiaW5saW5lLWZsZXgiLGZsb2F0OiJub25lIix2ZXJ0aWNhbEFsaWduOiJ0b3AiLGJvcmRlclJhZGl1czowfSxbYAogICAgICAgICYgPiAke2NvbXBvbmVudENsc30tYWZmaXgtd3JhcHBlciwKICAgICAgICAmID4gJHtjb21wb25lbnRDbHN9LW51bWJlci1hZmZpeC13cmFwcGVyLAogICAgICAgICYgPiAke2FudENsc30tcGlja2VyLXJhbmdlCiAgICAgIGBdOntkaXNwbGF5OiJpbmxpbmUtZmxleCJ9LCImID4gKjpub3QoOmxhc3QtY2hpbGQpIjp7bWFyZ2luSW5saW5lRW5kOnRva2VuLmNhbGModG9rZW4ubGluZVdpZHRoKS5tdWwoLTEpLmVxdWFsKCksYm9yZGVySW5saW5lRW5kV2lkdGg6dG9rZW4ubGluZVdpZHRofSxbY29tcG9uZW50Q2xzXTp7ZmxvYXQ6Im5vbmUifSxbYCYgPiAke2FudENsc30tc2VsZWN0ID4gJHthbnRDbHN9LXNlbGVjdC1zZWxlY3RvciwKICAgICAgJiA+ICR7YW50Q2xzfS1zZWxlY3QtYXV0by1jb21wbGV0ZSAke2NvbXBvbmVudENsc30sCiAgICAgICYgPiAke2FudENsc30tY2FzY2FkZXItcGlja2VyICR7Y29tcG9uZW50Q2xzfSwKICAgICAgJiA+ICR7Y29tcG9uZW50Q2xzfS1ncm91cC13cmFwcGVyICR7Y29tcG9uZW50Q2xzfWBdOntib3JkZXJJbmxpbmVFbmRXaWR0aDp0b2tlbi5saW5lV2lkdGgsYm9yZGVyUmFkaXVzOjAsIiY6aG92ZXIsICY6Zm9jdXMiOnt6SW5kZXg6MX19LFtgJiA+ICR7YW50Q2xzfS1zZWxlY3QtZm9jdXNlZGBdOnt6SW5kZXg6MX0sW2AmID4gJHthbnRDbHN9LXNlbGVjdCA+ICR7YW50Q2xzfS1zZWxlY3QtYXJyb3dgXTp7ekluZGV4OjF9LFtgJiA+ICo6Zmlyc3QtY2hpbGQsCiAgICAgICYgPiAke2FudENsc30tc2VsZWN0OmZpcnN0LWNoaWxkID4gJHthbnRDbHN9LXNlbGVjdC1zZWxlY3RvciwKICAgICAgJiA+ICR7YW50Q2xzfS1zZWxlY3QtYXV0by1jb21wbGV0ZTpmaXJzdC1jaGlsZCAke2NvbXBvbmVudENsc30sCiAgICAgICYgPiAke2FudENsc30tY2FzY2FkZXItcGlja2VyOmZpcnN0LWNoaWxkICR7Y29tcG9uZW50Q2xzfWBdOntib3JkZXJTdGFydFN0YXJ0UmFkaXVzOnRva2VuLmJvcmRlclJhZGl1cyxib3JkZXJFbmRTdGFydFJhZGl1czp0b2tlbi5ib3JkZXJSYWRpdXN9LFtgJiA+ICo6bGFzdC1jaGlsZCwKICAgICAgJiA+ICR7YW50Q2xzfS1zZWxlY3Q6bGFzdC1jaGlsZCA+ICR7YW50Q2xzfS1zZWxlY3Qtc2VsZWN0b3IsCiAgICAgICYgPiAke2FudENsc30tY2FzY2FkZXItcGlja2VyOmxhc3QtY2hpbGQgJHtjb21wb25lbnRDbHN9LAogICAgICAmID4gJHthbnRDbHN9LWNhc2NhZGVyLXBpY2tlci1mb2N1c2VkOmxhc3QtY2hpbGQgJHtjb21wb25lbnRDbHN9YF06e2JvcmRlcklubGluZUVuZFdpZHRoOnRva2VuLmxpbmVXaWR0aCxib3JkZXJTdGFydEVuZFJhZGl1czp0b2tlbi5ib3JkZXJSYWRpdXMsYm9yZGVyRW5kRW5kUmFkaXVzOnRva2VuLmJvcmRlclJhZGl1c30sW2AmID4gJHthbnRDbHN9LXNlbGVjdC1hdXRvLWNvbXBsZXRlICR7Y29tcG9uZW50Q2xzfWBdOnt2ZXJ0aWNhbEFsaWduOiJ0b3AifSxbYCR7Y29tcG9uZW50Q2xzfS1ncm91cC13cmFwcGVyICsgJHtjb21wb25lbnRDbHN9LWdyb3VwLXdyYXBwZXJgXTp7bWFyZ2luSW5saW5lU3RhcnQ6dG9rZW4uY2FsYyh0b2tlbi5saW5lV2lkdGgpLm11bCgtMSkuZXF1YWwoKSxbYCR7Y29tcG9uZW50Q2xzfS1hZmZpeC13cmFwcGVyYF06e2JvcmRlclJhZGl1czowfX0sW2Ake2NvbXBvbmVudENsc30tZ3JvdXAtd3JhcHBlcjpub3QoOmxhc3QtY2hpbGQpYF06e1tgJiR7Y29tcG9uZW50Q2xzfS1zZWFyY2ggPiAke2NvbXBvbmVudENsc30tZ3JvdXBgXTp7W2AmID4gJHtjb21wb25lbnRDbHN9LWdyb3VwLWFkZG9uID4gJHtjb21wb25lbnRDbHN9LXNlYXJjaC1idXR0b25gXTp7Ym9yZGVyUmFkaXVzOjB9LFtgJiA+ICR7Y29tcG9uZW50Q2xzfWBdOntib3JkZXJTdGFydFN0YXJ0UmFkaXVzOnRva2VuLmJvcmRlclJhZGl1cyxib3JkZXJTdGFydEVuZFJhZGl1czowLGJvcmRlckVuZEVuZFJhZGl1czowLGJvcmRlckVuZFN0YXJ0UmFkaXVzOnRva2VuLmJvcmRlclJhZGl1c319fX0pfX0sZ2VuSW5wdXRTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHMsY29udHJvbEhlaWdodFNNLGxpbmVXaWR0aCxjYWxjfT10b2tlbixjb2xvclNtYWxsUGFkZGluZz1jYWxjKGNvbnRyb2xIZWlnaHRTTSkuc3ViKGNhbGMobGluZVdpZHRoKS5tdWwoMikpLnN1YigxNikuZGl2KDIpLmVxdWFsKCk7cmV0dXJue1tjb21wb25lbnRDbHNdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsX3N0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uV2YpKHRva2VuKSksZ2VuQmFzaWNJbnB1dFN0eWxlKHRva2VuKSksKDAsX3ZhcmlhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ucUcpKHRva2VuKSksKDAsX3ZhcmlhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uSDgpKHRva2VuKSksKDAsX3ZhcmlhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uTXUpKHRva2VuKSksKDAsX3ZhcmlhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udmMpKHRva2VuKSkseycmW3R5cGU9ImNvbG9yIl0nOntoZWlnaHQ6dG9rZW4uY29udHJvbEhlaWdodCxbYCYke2NvbXBvbmVudENsc30tbGdgXTp7aGVpZ2h0OnRva2VuLmNvbnRyb2xIZWlnaHRMR30sW2AmJHtjb21wb25lbnRDbHN9LXNtYF06e2hlaWdodDpjb250cm9sSGVpZ2h0U00scGFkZGluZ1RvcDpjb2xvclNtYWxsUGFkZGluZyxwYWRkaW5nQm90dG9tOmNvbG9yU21hbGxQYWRkaW5nfX0sJyZbdHlwZT0ic2VhcmNoIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sICZbdHlwZT0ic2VhcmNoIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24nOnthcHBlYXJhbmNlOiJub25lIn19KX19LGdlbkFsbG93Q2xlYXJTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHN9PXRva2VuO3JldHVybntbYCR7Y29tcG9uZW50Q2xzfS1jbGVhci1pY29uYF06e21hcmdpbjowLHBhZGRpbmc6MCxsaW5lSGVpZ2h0OjAsY29sb3I6dG9rZW4uY29sb3JUZXh0UXVhdGVybmFyeSxmb250U2l6ZTp0b2tlbi5mb250U2l6ZUljb24sdmVydGljYWxBbGlnbjotMSxjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGNvbG9yICR7dG9rZW4ubW90aW9uRHVyYXRpb25TbG93fWAsYm9yZGVyOiJub25lIixvdXRsaW5lOiJub25lIixiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50IiwiJjpob3ZlciI6e2NvbG9yOnRva2VuLmNvbG9ySWNvbn0sIiY6YWN0aXZlIjp7Y29sb3I6dG9rZW4uY29sb3JUZXh0fSwiJi1oaWRkZW4iOnt2aXNpYmlsaXR5OiJoaWRkZW4ifSwiJi1oYXMtc3VmZml4Ijp7bWFyZ2luOmAwICR7KDAsX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmJmKSh0b2tlbi5pbnB1dEFmZml4UGFkZGluZyl9YH19fX0sZ2VuQWZmaXhTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHMsaW5wdXRBZmZpeFBhZGRpbmcsY29sb3JUZXh0RGVzY3JpcHRpb24sbW90aW9uRHVyYXRpb25TbG93LGNvbG9ySWNvbixjb2xvckljb25Ib3ZlcixpY29uQ2xzfT10b2tlbixhZmZpeENscz1gJHtjb21wb25lbnRDbHN9LWFmZml4LXdyYXBwZXJgLGFmZml4Q2xzRGlzYWJsZWQ9YCR7Y29tcG9uZW50Q2xzfS1hZmZpeC13cmFwcGVyLWRpc2FibGVkYDtyZXR1cm57W2FmZml4Q2xzXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGdlbkJhc2ljSW5wdXRTdHlsZSh0b2tlbikpLHtkaXNwbGF5OiJpbmxpbmUtZmxleCIsW2AmOm5vdCgke2NvbXBvbmVudENsc30tZGlzYWJsZWQpOmhvdmVyYF06e3pJbmRleDoxLFtgJHtjb21wb25lbnRDbHN9LXNlYXJjaC13aXRoLWJ1dHRvbiAmYF06e3pJbmRleDowfX0sIiYtZm9jdXNlZCwgJjpmb2N1cyI6e3pJbmRleDoxfSxbYD4gaW5wdXQke2NvbXBvbmVudENsc31gXTp7cGFkZGluZzowfSxbYD4gaW5wdXQke2NvbXBvbmVudENsc30sID4gdGV4dGFyZWEke2NvbXBvbmVudENsc31gXTp7Zm9udFNpemU6ImluaGVyaXQiLGJvcmRlcjoibm9uZSIsYm9yZGVyUmFkaXVzOjAsb3V0bGluZToibm9uZSIsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGNvbG9yOiJpbmhlcml0IiwiJjo6LW1zLXJldmVhbCI6e2Rpc3BsYXk6Im5vbmUifSwiJjpmb2N1cyI6e2JveFNoYWRvdzoibm9uZSAhaW1wb3J0YW50In19LCImOjpiZWZvcmUiOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHdpZHRoOjAsdmlzaWJpbGl0eToiaGlkZGVuIixjb250ZW50OiciXFxhMCInfSxbY29tcG9uZW50Q2xzXTp7IiYtcHJlZml4LCAmLXN1ZmZpeCI6e2Rpc3BsYXk6ImZsZXgiLGZsZXg6Im5vbmUiLGFsaWduSXRlbXM6ImNlbnRlciIsIj4gKjpub3QoOmxhc3QtY2hpbGQpIjp7bWFyZ2luSW5saW5lRW5kOnRva2VuLnBhZGRpbmdYU319LCImLXNob3ctY291bnQtc3VmZml4Ijp7Y29sb3I6Y29sb3JUZXh0RGVzY3JpcHRpb24sZGlyZWN0aW9uOiJsdHIifSwiJi1zaG93LWNvdW50LWhhcy1zdWZmaXgiOnttYXJnaW5JbmxpbmVFbmQ6dG9rZW4ucGFkZGluZ1hYU30sIiYtcHJlZml4Ijp7bWFyZ2luSW5saW5lRW5kOmlucHV0QWZmaXhQYWRkaW5nfSwiJi1zdWZmaXgiOnttYXJnaW5JbmxpbmVTdGFydDppbnB1dEFmZml4UGFkZGluZ319fSksZ2VuQWxsb3dDbGVhclN0eWxlKHRva2VuKSkse1tgJHtpY29uQ2xzfSR7Y29tcG9uZW50Q2xzfS1wYXNzd29yZC1pY29uYF06e2NvbG9yOmNvbG9ySWNvbixjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGFsbCAke21vdGlvbkR1cmF0aW9uU2xvd31gLCImOmhvdmVyIjp7Y29sb3I6Y29sb3JJY29uSG92ZXJ9fX0pLFtgJHtjb21wb25lbnRDbHN9LXVuZGVybGluZWRgXTp7Ym9yZGVyUmFkaXVzOjB9LFthZmZpeENsc0Rpc2FibGVkXTp7W2Ake2ljb25DbHN9JHtjb21wb25lbnRDbHN9LXBhc3N3b3JkLWljb25gXTp7Y29sb3I6Y29sb3JJY29uLGN1cnNvcjoibm90LWFsbG93ZWQiLCImOmhvdmVyIjp7Y29sb3I6Y29sb3JJY29ufX19fX0sZ2VuR3JvdXBTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHMsYm9yZGVyUmFkaXVzTEcsYm9yZGVyUmFkaXVzU019PXRva2VuO3JldHVybntbYCR7Y29tcG9uZW50Q2xzfS1ncm91cGBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLF9zdHlsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLldmKSh0b2tlbikpLGdlbklucHV0R3JvdXBTdHlsZSh0b2tlbikpLHsiJi1ydGwiOntkaXJlY3Rpb246InJ0bCJ9LCImLXdyYXBwZXIiOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHdpZHRoOiIxMDAlIix0ZXh0QWxpZ246InN0YXJ0Iix2ZXJ0aWNhbEFsaWduOiJ0b3AiLCImLXJ0bCI6e2RpcmVjdGlvbjoicnRsIn0sIiYtbGciOntbYCR7Y29tcG9uZW50Q2xzfS1ncm91cC1hZGRvbmBdOntib3JkZXJSYWRpdXM6Ym9yZGVyUmFkaXVzTEcsZm9udFNpemU6dG9rZW4uaW5wdXRGb250U2l6ZUxHfX0sIiYtc20iOntbYCR7Y29tcG9uZW50Q2xzfS1ncm91cC1hZGRvbmBdOntib3JkZXJSYWRpdXM6Ym9yZGVyUmFkaXVzU019fX0sKDAsX3ZhcmlhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uaXIpKHRva2VuKSksKDAsX3ZhcmlhbnRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uUzUpKHRva2VuKSkse1tgJjpub3QoJHtjb21wb25lbnRDbHN9LWNvbXBhY3QtZmlyc3QtaXRlbSk6bm90KCR7Y29tcG9uZW50Q2xzfS1jb21wYWN0LWxhc3QtaXRlbSkke2NvbXBvbmVudENsc30tY29tcGFjdC1pdGVtYF06e1tgJHtjb21wb25lbnRDbHN9LCAke2NvbXBvbmVudENsc30tZ3JvdXAtYWRkb25gXTp7Ym9yZGVyUmFkaXVzOjB9fSxbYCY6bm90KCR7Y29tcG9uZW50Q2xzfS1jb21wYWN0LWxhc3QtaXRlbSkke2NvbXBvbmVudENsc30tY29tcGFjdC1maXJzdC1pdGVtYF06e1tgJHtjb21wb25lbnRDbHN9LCAke2NvbXBvbmVudENsc30tZ3JvdXAtYWRkb25gXTp7Ym9yZGVyU3RhcnRFbmRSYWRpdXM6MCxib3JkZXJFbmRFbmRSYWRpdXM6MH19LFtgJjpub3QoJHtjb21wb25lbnRDbHN9LWNvbXBhY3QtZmlyc3QtaXRlbSkke2NvbXBvbmVudENsc30tY29tcGFjdC1sYXN0LWl0ZW1gXTp7W2Ake2NvbXBvbmVudENsc30sICR7Y29tcG9uZW50Q2xzfS1ncm91cC1hZGRvbmBdOntib3JkZXJTdGFydFN0YXJ0UmFkaXVzOjAsYm9yZGVyRW5kU3RhcnRSYWRpdXM6MH19LFtgJjpub3QoJHtjb21wb25lbnRDbHN9LWNvbXBhY3QtbGFzdC1pdGVtKSR7Y29tcG9uZW50Q2xzfS1jb21wYWN0LWl0ZW1gXTp7W2Ake2NvbXBvbmVudENsc30tYWZmaXgtd3JhcHBlcmBdOntib3JkZXJTdGFydEVuZFJhZGl1czowLGJvcmRlckVuZEVuZFJhZGl1czowfX0sW2AmOm5vdCgke2NvbXBvbmVudENsc30tY29tcGFjdC1maXJzdC1pdGVtKSR7Y29tcG9uZW50Q2xzfS1jb21wYWN0LWl0ZW1gXTp7W2Ake2NvbXBvbmVudENsc30tYWZmaXgtd3JhcHBlcmBdOntib3JkZXJTdGFydFN0YXJ0UmFkaXVzOjAsYm9yZGVyRW5kU3RhcnRSYWRpdXM6MH19fSl9KX19LGdlblNlYXJjaElucHV0U3R5bGU9dG9rZW49PntsZXR7Y29tcG9uZW50Q2xzLGFudENsc309dG9rZW4sc2VhcmNoUHJlZml4Q2xzPWAke2NvbXBvbmVudENsc30tc2VhcmNoYDtyZXR1cm57W3NlYXJjaFByZWZpeENsc106e1tjb21wb25lbnRDbHNdOnsiJjpob3ZlciwgJjpmb2N1cyI6e1tgKyAke2NvbXBvbmVudENsc30tZ3JvdXAtYWRkb24gJHtzZWFyY2hQcmVmaXhDbHN9LWJ1dHRvbjpub3QoJHthbnRDbHN9LWJ0bi1wcmltYXJ5KWBdOntib3JkZXJJbmxpbmVTdGFydENvbG9yOnRva2VuLmNvbG9yUHJpbWFyeUhvdmVyfX19LFtgJHtjb21wb25lbnRDbHN9LWFmZml4LXdyYXBwZXJgXTp7aGVpZ2h0OnRva2VuLmNvbnRyb2xIZWlnaHQsYm9yZGVyUmFkaXVzOjB9LFtgJHtjb21wb25lbnRDbHN9LWxnYF06e2xpbmVIZWlnaHQ6dG9rZW4uY2FsYyh0b2tlbi5saW5lSGVpZ2h0TEcpLnN1YigyZS00KS5lcXVhbCgpfSxbYD4gJHtjb21wb25lbnRDbHN9LWdyb3VwYF06e1tgPiAke2NvbXBvbmVudENsc30tZ3JvdXAtYWRkb246bGFzdC1jaGlsZGBdOntpbnNldElubGluZVN0YXJ0Oi0xLHBhZGRpbmc6MCxib3JkZXI6MCxbYCR7c2VhcmNoUHJlZml4Q2xzfS1idXR0b25gXTp7bWFyZ2luSW5saW5lRW5kOi0xLGJvcmRlclN0YXJ0U3RhcnRSYWRpdXM6MCxib3JkZXJFbmRTdGFydFJhZGl1czowLGJveFNoYWRvdzoibm9uZSJ9LFtgJHtzZWFyY2hQcmVmaXhDbHN9LWJ1dHRvbjpub3QoJHthbnRDbHN9LWJ0bi1wcmltYXJ5KWBdOntjb2xvcjp0b2tlbi5jb2xvclRleHREZXNjcmlwdGlvbiwiJjpob3ZlciI6e2NvbG9yOnRva2VuLmNvbG9yUHJpbWFyeUhvdmVyfSwiJjphY3RpdmUiOntjb2xvcjp0b2tlbi5jb2xvclByaW1hcnlBY3RpdmV9LFtgJiR7YW50Q2xzfS1idG4tbG9hZGluZzo6YmVmb3JlYF06e2luc2V0SW5saW5lU3RhcnQ6MCxpbnNldElubGluZUVuZDowLGluc2V0QmxvY2tTdGFydDowLGluc2V0QmxvY2tFbmQ6MH19fX0sW2Ake3NlYXJjaFByZWZpeENsc30tYnV0dG9uYF06e2hlaWdodDp0b2tlbi5jb250cm9sSGVpZ2h0LCImOmhvdmVyLCAmOmZvY3VzIjp7ekluZGV4OjF9fSwiJi1sYXJnZSI6e1tgJHtjb21wb25lbnRDbHN9LWFmZml4LXdyYXBwZXIsICR7c2VhcmNoUHJlZml4Q2xzfS1idXR0b25gXTp7aGVpZ2h0OnRva2VuLmNvbnRyb2xIZWlnaHRMR319LCImLXNtYWxsIjp7W2Ake2NvbXBvbmVudENsc30tYWZmaXgtd3JhcHBlciwgJHtzZWFyY2hQcmVmaXhDbHN9LWJ1dHRvbmBdOntoZWlnaHQ6dG9rZW4uY29udHJvbEhlaWdodFNNfX0sIiYtcnRsIjp7ZGlyZWN0aW9uOiJydGwifSxbYCYke2NvbXBvbmVudENsc30tY29tcGFjdC1pdGVtYF06e1tgJjpub3QoJHtjb21wb25lbnRDbHN9LWNvbXBhY3QtbGFzdC1pdGVtKWBdOntbYCR7Y29tcG9uZW50Q2xzfS1ncm91cC1hZGRvbmBdOntbYCR7Y29tcG9uZW50Q2xzfS1zZWFyY2gtYnV0dG9uYF06e21hcmdpbklubGluZUVuZDp0b2tlbi5jYWxjKHRva2VuLmxpbmVXaWR0aCkubXVsKC0xKS5lcXVhbCgpLGJvcmRlclJhZGl1czowfX19LFtgJjpub3QoJHtjb21wb25lbnRDbHN9LWNvbXBhY3QtZmlyc3QtaXRlbSlgXTp7W2Ake2NvbXBvbmVudENsc30sJHtjb21wb25lbnRDbHN9LWFmZml4LXdyYXBwZXJgXTp7Ym9yZGVyUmFkaXVzOjB9fSxbYD4gJHtjb21wb25lbnRDbHN9LWdyb3VwLWFkZG9uICR7Y29tcG9uZW50Q2xzfS1zZWFyY2gtYnV0dG9uLAogICAgICAgID4gJHtjb21wb25lbnRDbHN9LAogICAgICAgICR7Y29tcG9uZW50Q2xzfS1hZmZpeC13cmFwcGVyYF06eyImOmhvdmVyLCAmOmZvY3VzLCAmOmFjdGl2ZSI6e3pJbmRleDoyfX0sW2A+ICR7Y29tcG9uZW50Q2xzfS1hZmZpeC13cmFwcGVyLWZvY3VzZWRgXTp7ekluZGV4OjJ9fX19fSxnZW5SYW5nZVN0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENsc309dG9rZW47cmV0dXJue1tgJHtjb21wb25lbnRDbHN9LW91dC1vZi1yYW5nZWBdOntbYCYsICYgaW5wdXQsICYgdGV4dGFyZWEsICR7Y29tcG9uZW50Q2xzfS1zaG93LWNvdW50LXN1ZmZpeCwgJHtjb21wb25lbnRDbHN9LWRhdGEtY291bnRgXTp7Y29sb3I6dG9rZW4uY29sb3JFcnJvcn19fX0sdXNlU2hhcmVkU3R5bGU9KDAsX3RoZW1lX2ludGVybmFsX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uSSQpKFsiSW5wdXQiLCJTaGFyZWQiXSx0b2tlbj0+e2xldCBpbnB1dFRva2VuPSgwLF90aGVtZV9pbnRlcm5hbF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLklYKSh0b2tlbiwoMCxfdG9rZW5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5lKSh0b2tlbikpO3JldHVybltnZW5JbnB1dFN0eWxlKGlucHV0VG9rZW4pLGdlbkFmZml4U3R5bGUoaW5wdXRUb2tlbildfSxfdG9rZW5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5ULHtyZXNldEZvbnQ6ITF9KTtfX3dlYnBhY2tfZXhwb3J0c19fLlpQPSgwLF90aGVtZV9pbnRlcm5hbF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLkkkKShbIklucHV0IiwiQ29tcG9uZW50Il0sdG9rZW49PntsZXQgaW5wdXRUb2tlbj0oMCxfdGhlbWVfaW50ZXJuYWxfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5JWCkodG9rZW4sKDAsX3Rva2VuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZSkodG9rZW4pKTtyZXR1cm5bZ2VuR3JvdXBTdHlsZShpbnB1dFRva2VuKSxnZW5TZWFyY2hJbnB1dFN0eWxlKGlucHV0VG9rZW4pLGdlblJhbmdlU3R5bGUoaW5wdXRUb2tlbiksKDAsX3N0eWxlX2NvbXBhY3RfaXRlbV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLmMpKGlucHV0VG9rZW4pXX0sX3Rva2VuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uVCx7cmVzZXRGb250OiExfSl9LDIwMzUzOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtUOmZ1bmN0aW9uKCl7cmV0dXJuIGluaXRDb21wb25lbnRUb2tlbn0sZTpmdW5jdGlvbigpe3JldHVybiBpbml0SW5wdXRUb2tlbn19KTt2YXIgX3RoZW1lX2ludGVybmFsX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg0MjU1OSk7ZnVuY3Rpb24gaW5pdElucHV0VG9rZW4odG9rZW4pe3JldHVybigwLF90aGVtZV9pbnRlcm5hbF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLklYKSh0b2tlbix7aW5wdXRBZmZpeFBhZGRpbmc6dG9rZW4ucGFkZGluZ1hYU30pfWxldCBpbml0Q29tcG9uZW50VG9rZW49dG9rZW49PntsZXR7Y29udHJvbEhlaWdodCxmb250U2l6ZSxsaW5lSGVpZ2h0LGxpbmVXaWR0aCxjb250cm9sSGVpZ2h0U00sY29udHJvbEhlaWdodExHLGZvbnRTaXplTEcsbGluZUhlaWdodExHLHBhZGRpbmdTTSxjb250cm9sUGFkZGluZ0hvcml6b250YWxTTSxjb250cm9sUGFkZGluZ0hvcml6b250YWwsY29sb3JGaWxsQWx0ZXIsY29sb3JQcmltYXJ5SG92ZXIsY29sb3JQcmltYXJ5LGNvbnRyb2xPdXRsaW5lV2lkdGgsY29udHJvbE91dGxpbmUsY29sb3JFcnJvck91dGxpbmUsY29sb3JXYXJuaW5nT3V0bGluZSxjb2xvckJnQ29udGFpbmVyLGlucHV0Rm9udFNpemUsaW5wdXRGb250U2l6ZUxHLGlucHV0Rm9udFNpemVTTX09dG9rZW4sbWVyZ2VkRm9udFNpemU9aW5wdXRGb250U2l6ZXx8Zm9udFNpemUsbWVyZ2VkRm9udFNpemVTTT1pbnB1dEZvbnRTaXplU018fG1lcmdlZEZvbnRTaXplLG1lcmdlZEZvbnRTaXplTEc9aW5wdXRGb250U2l6ZUxHfHxmb250U2l6ZUxHO3JldHVybntwYWRkaW5nQmxvY2s6TWF0aC5tYXgoTWF0aC5yb3VuZCgoY29udHJvbEhlaWdodC1tZXJnZWRGb250U2l6ZSpsaW5lSGVpZ2h0KS8yKjEwKS8xMC1saW5lV2lkdGgsMCkscGFkZGluZ0Jsb2NrU006TWF0aC5tYXgoTWF0aC5yb3VuZCgoY29udHJvbEhlaWdodFNNLW1lcmdlZEZvbnRTaXplU00qbGluZUhlaWdodCkvMioxMCkvMTAtbGluZVdpZHRoLDApLHBhZGRpbmdCbG9ja0xHOk1hdGgubWF4KE1hdGguY2VpbCgoY29udHJvbEhlaWdodExHLW1lcmdlZEZvbnRTaXplTEcqbGluZUhlaWdodExHKS8yKjEwKS8xMC1saW5lV2lkdGgsMCkscGFkZGluZ0lubGluZTpwYWRkaW5nU00tbGluZVdpZHRoLHBhZGRpbmdJbmxpbmVTTTpjb250cm9sUGFkZGluZ0hvcml6b250YWxTTS1saW5lV2lkdGgscGFkZGluZ0lubGluZUxHOmNvbnRyb2xQYWRkaW5nSG9yaXpvbnRhbC1saW5lV2lkdGgsYWRkb25CZzpjb2xvckZpbGxBbHRlcixhY3RpdmVCb3JkZXJDb2xvcjpjb2xvclByaW1hcnksaG92ZXJCb3JkZXJDb2xvcjpjb2xvclByaW1hcnlIb3ZlcixhY3RpdmVTaGFkb3c6YDAgMCAwICR7Y29udHJvbE91dGxpbmVXaWR0aH1weCAke2NvbnRyb2xPdXRsaW5lfWAsZXJyb3JBY3RpdmVTaGFkb3c6YDAgMCAwICR7Y29udHJvbE91dGxpbmVXaWR0aH1weCAke2NvbG9yRXJyb3JPdXRsaW5lfWAsd2FybmluZ0FjdGl2ZVNoYWRvdzpgMCAwIDAgJHtjb250cm9sT3V0bGluZVdpZHRofXB4ICR7Y29sb3JXYXJuaW5nT3V0bGluZX1gLGhvdmVyQmc6Y29sb3JCZ0NvbnRhaW5lcixhY3RpdmVCZzpjb2xvckJnQ29udGFpbmVyLGlucHV0Rm9udFNpemU6bWVyZ2VkRm9udFNpemUsaW5wdXRGb250U2l6ZUxHOm1lcmdlZEZvbnRTaXplTEcsaW5wdXRGb250U2l6ZVNNOm1lcmdlZEZvbnRTaXplU019fX0sOTM5MDA6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18seyRVOmZ1bmN0aW9uKCl7cmV0dXJuIGdlbkJhc2VPdXRsaW5lZFN0eWxlfSxIODpmdW5jdGlvbigpe3JldHVybiBnZW5GaWxsZWRTdHlsZX0sTXU6ZnVuY3Rpb24oKXtyZXR1cm4gZ2VuQm9yZGVybGVzc1N0eWxlfSxTNTpmdW5jdGlvbigpe3JldHVybiBnZW5GaWxsZWRHcm91cFN0eWxlfSxYeTpmdW5jdGlvbigpe3JldHVybiBnZW5EaXNhYmxlZFN0eWxlfSxpcjpmdW5jdGlvbigpe3JldHVybiBnZW5PdXRsaW5lZEdyb3VwU3R5bGV9LHFHOmZ1bmN0aW9uKCl7cmV0dXJuIGdlbk91dGxpbmVkU3R5bGV9LHZjOmZ1bmN0aW9uKCl7cmV0dXJuIGdlblVuZGVybGluZWRTdHlsZX19KTt2YXIgX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNDQ4OTkpLF90aGVtZV9pbnRlcm5hbF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oNDI1NTkpO2xldCBnZW5Ib3ZlclN0eWxlPXRva2VuPT4oe2JvcmRlckNvbG9yOnRva2VuLmhvdmVyQm9yZGVyQ29sb3IsYmFja2dyb3VuZENvbG9yOnRva2VuLmhvdmVyQmd9KSxnZW5EaXNhYmxlZFN0eWxlPXRva2VuPT4oe2NvbG9yOnRva2VuLmNvbG9yVGV4dERpc2FibGVkLGJhY2tncm91bmRDb2xvcjp0b2tlbi5jb2xvckJnQ29udGFpbmVyRGlzYWJsZWQsYm9yZGVyQ29sb3I6dG9rZW4uY29sb3JCb3JkZXIsYm94U2hhZG93OiJub25lIixjdXJzb3I6Im5vdC1hbGxvd2VkIixvcGFjaXR5OjEsImlucHV0W2Rpc2FibGVkXSwgdGV4dGFyZWFbZGlzYWJsZWRdIjp7Y3Vyc29yOiJub3QtYWxsb3dlZCJ9LCImOmhvdmVyOm5vdChbZGlzYWJsZWRdKSI6T2JqZWN0LmFzc2lnbih7fSxnZW5Ib3ZlclN0eWxlKCgwLF90aGVtZV9pbnRlcm5hbF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLklYKSh0b2tlbix7aG92ZXJCb3JkZXJDb2xvcjp0b2tlbi5jb2xvckJvcmRlcixob3ZlckJnOnRva2VuLmNvbG9yQmdDb250YWluZXJEaXNhYmxlZH0pKSl9KSxnZW5CYXNlT3V0bGluZWRTdHlsZT0odG9rZW4sb3B0aW9ucyk9Pih7YmFja2dyb3VuZDp0b2tlbi5jb2xvckJnQ29udGFpbmVyLGJvcmRlcldpZHRoOnRva2VuLmxpbmVXaWR0aCxib3JkZXJTdHlsZTp0b2tlbi5saW5lVHlwZSxib3JkZXJDb2xvcjpvcHRpb25zLmJvcmRlckNvbG9yLCImOmhvdmVyIjp7Ym9yZGVyQ29sb3I6b3B0aW9ucy5ob3ZlckJvcmRlckNvbG9yLGJhY2tncm91bmRDb2xvcjp0b2tlbi5ob3ZlckJnfSwiJjpmb2N1cywgJjpmb2N1cy13aXRoaW4iOntib3JkZXJDb2xvcjpvcHRpb25zLmFjdGl2ZUJvcmRlckNvbG9yLGJveFNoYWRvdzpvcHRpb25zLmFjdGl2ZVNoYWRvdyxvdXRsaW5lOjAsYmFja2dyb3VuZENvbG9yOnRva2VuLmFjdGl2ZUJnfX0pLGdlbk91dGxpbmVkU3RhdHVzU3R5bGU9KHRva2VuLG9wdGlvbnMpPT4oe1tgJiR7dG9rZW4uY29tcG9uZW50Q2xzfS1zdGF0dXMtJHtvcHRpb25zLnN0YXR1c306bm90KCR7dG9rZW4uY29tcG9uZW50Q2xzfS1kaXNhYmxlZClgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZ2VuQmFzZU91dGxpbmVkU3R5bGUodG9rZW4sb3B0aW9ucykpLHtbYCR7dG9rZW4uY29tcG9uZW50Q2xzfS1wcmVmaXgsICR7dG9rZW4uY29tcG9uZW50Q2xzfS1zdWZmaXhgXTp7Y29sb3I6b3B0aW9ucy5hZmZpeENvbG9yfX0pLFtgJiR7dG9rZW4uY29tcG9uZW50Q2xzfS1zdGF0dXMtJHtvcHRpb25zLnN0YXR1c30ke3Rva2VuLmNvbXBvbmVudENsc30tZGlzYWJsZWRgXTp7Ym9yZGVyQ29sb3I6b3B0aW9ucy5ib3JkZXJDb2xvcn19KSxnZW5PdXRsaW5lZFN0eWxlPSh0b2tlbixleHRyYVN0eWxlcyk9Pih7IiYtb3V0bGluZWQiOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnZW5CYXNlT3V0bGluZWRTdHlsZSh0b2tlbix7Ym9yZGVyQ29sb3I6dG9rZW4uY29sb3JCb3JkZXIsaG92ZXJCb3JkZXJDb2xvcjp0b2tlbi5ob3ZlckJvcmRlckNvbG9yLGFjdGl2ZUJvcmRlckNvbG9yOnRva2VuLmFjdGl2ZUJvcmRlckNvbG9yLGFjdGl2ZVNoYWRvdzp0b2tlbi5hY3RpdmVTaGFkb3d9KSkse1tgJiR7dG9rZW4uY29tcG9uZW50Q2xzfS1kaXNhYmxlZCwgJltkaXNhYmxlZF1gXTpPYmplY3QuYXNzaWduKHt9LGdlbkRpc2FibGVkU3R5bGUodG9rZW4pKX0pLGdlbk91dGxpbmVkU3RhdHVzU3R5bGUodG9rZW4se3N0YXR1czoiZXJyb3IiLGJvcmRlckNvbG9yOnRva2VuLmNvbG9yRXJyb3IsaG92ZXJCb3JkZXJDb2xvcjp0b2tlbi5jb2xvckVycm9yQm9yZGVySG92ZXIsYWN0aXZlQm9yZGVyQ29sb3I6dG9rZW4uY29sb3JFcnJvcixhY3RpdmVTaGFkb3c6dG9rZW4uZXJyb3JBY3RpdmVTaGFkb3csYWZmaXhDb2xvcjp0b2tlbi5jb2xvckVycm9yfSkpLGdlbk91dGxpbmVkU3RhdHVzU3R5bGUodG9rZW4se3N0YXR1czoid2FybmluZyIsYm9yZGVyQ29sb3I6dG9rZW4uY29sb3JXYXJuaW5nLGhvdmVyQm9yZGVyQ29sb3I6dG9rZW4uY29sb3JXYXJuaW5nQm9yZGVySG92ZXIsYWN0aXZlQm9yZGVyQ29sb3I6dG9rZW4uY29sb3JXYXJuaW5nLGFjdGl2ZVNoYWRvdzp0b2tlbi53YXJuaW5nQWN0aXZlU2hhZG93LGFmZml4Q29sb3I6dG9rZW4uY29sb3JXYXJuaW5nfSkpLGV4dHJhU3R5bGVzKX0pLGdlbk91dGxpbmVkR3JvdXBTdGF0dXNTdHlsZT0odG9rZW4sb3B0aW9ucyk9Pih7W2AmJHt0b2tlbi5jb21wb25lbnRDbHN9LWdyb3VwLXdyYXBwZXItc3RhdHVzLSR7b3B0aW9ucy5zdGF0dXN9YF06e1tgJHt0b2tlbi5jb21wb25lbnRDbHN9LWdyb3VwLWFkZG9uYF06e2JvcmRlckNvbG9yOm9wdGlvbnMuYWRkb25Cb3JkZXJDb2xvcixjb2xvcjpvcHRpb25zLmFkZG9uQ29sb3J9fX0pLGdlbk91dGxpbmVkR3JvdXBTdHlsZT10b2tlbj0+KHsiJi1vdXRsaW5lZCI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe1tgJHt0b2tlbi5jb21wb25lbnRDbHN9LWdyb3VwYF06eyImLWFkZG9uIjp7YmFja2dyb3VuZDp0b2tlbi5hZGRvbkJnLGJvcmRlcjpgJHsoMCxfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uYmYpKHRva2VuLmxpbmVXaWR0aCl9ICR7dG9rZW4ubGluZVR5cGV9ICR7dG9rZW4uY29sb3JCb3JkZXJ9YH0sIiYtYWRkb246Zmlyc3QtY2hpbGQiOntib3JkZXJJbmxpbmVFbmQ6MH0sIiYtYWRkb246bGFzdC1jaGlsZCI6e2JvcmRlcklubGluZVN0YXJ0OjB9fX0sZ2VuT3V0bGluZWRHcm91cFN0YXR1c1N0eWxlKHRva2VuLHtzdGF0dXM6ImVycm9yIixhZGRvbkJvcmRlckNvbG9yOnRva2VuLmNvbG9yRXJyb3IsYWRkb25Db2xvcjp0b2tlbi5jb2xvckVycm9yVGV4dH0pKSxnZW5PdXRsaW5lZEdyb3VwU3RhdHVzU3R5bGUodG9rZW4se3N0YXR1czoid2FybmluZyIsYWRkb25Cb3JkZXJDb2xvcjp0b2tlbi5jb2xvcldhcm5pbmcsYWRkb25Db2xvcjp0b2tlbi5jb2xvcldhcm5pbmdUZXh0fSkpLHtbYCYke3Rva2VuLmNvbXBvbmVudENsc30tZ3JvdXAtd3JhcHBlci1kaXNhYmxlZGBdOntbYCR7dG9rZW4uY29tcG9uZW50Q2xzfS1ncm91cC1hZGRvbmBdOk9iamVjdC5hc3NpZ24oe30sZ2VuRGlzYWJsZWRTdHlsZSh0b2tlbikpfX0pfSksZ2VuQm9yZGVybGVzc1N0eWxlPSh0b2tlbixleHRyYVN0eWxlcyk9PntsZXR7Y29tcG9uZW50Q2xzfT10b2tlbjtyZXR1cm57IiYtYm9yZGVybGVzcyI6T2JqZWN0LmFzc2lnbih7YmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGJvcmRlcjoibm9uZSIsIiY6Zm9jdXMsICY6Zm9jdXMtd2l0aGluIjp7b3V0bGluZToibm9uZSJ9LFtgJiR7Y29tcG9uZW50Q2xzfS1kaXNhYmxlZCwgJltkaXNhYmxlZF1gXTp7Y29sb3I6dG9rZW4uY29sb3JUZXh0RGlzYWJsZWQsY3Vyc29yOiJub3QtYWxsb3dlZCJ9LFtgJiR7Y29tcG9uZW50Q2xzfS1zdGF0dXMtZXJyb3JgXTp7IiYsICYgaW5wdXQsICYgdGV4dGFyZWEiOntjb2xvcjp0b2tlbi5jb2xvckVycm9yfX0sW2AmJHtjb21wb25lbnRDbHN9LXN0YXR1cy13YXJuaW5nYF06eyImLCAmIGlucHV0LCAmIHRleHRhcmVhIjp7Y29sb3I6dG9rZW4uY29sb3JXYXJuaW5nfX19LGV4dHJhU3R5bGVzKX19LGdlbkJhc2VGaWxsZWRTdHlsZT0odG9rZW4sb3B0aW9ucyk9Pnt2YXIgX2E7cmV0dXJue2JhY2tncm91bmQ6b3B0aW9ucy5iZyxib3JkZXJXaWR0aDp0b2tlbi5saW5lV2lkdGgsYm9yZGVyU3R5bGU6dG9rZW4ubGluZVR5cGUsYm9yZGVyQ29sb3I6InRyYW5zcGFyZW50IiwiaW5wdXQmLCAmIGlucHV0LCB0ZXh0YXJlYSYsICYgdGV4dGFyZWEiOntjb2xvcjpudWxsIT09KF9hPW51bGw9PW9wdGlvbnM/dm9pZCAwOm9wdGlvbnMuaW5wdXRDb2xvcikmJnZvaWQgMCE9PV9hP19hOiJ1bnNldCJ9LCImOmhvdmVyIjp7YmFja2dyb3VuZDpvcHRpb25zLmhvdmVyQmd9LCImOmZvY3VzLCAmOmZvY3VzLXdpdGhpbiI6e291dGxpbmU6MCxib3JkZXJDb2xvcjpvcHRpb25zLmFjdGl2ZUJvcmRlckNvbG9yLGJhY2tncm91bmRDb2xvcjp0b2tlbi5hY3RpdmVCZ319fSxnZW5GaWxsZWRTdGF0dXNTdHlsZT0odG9rZW4sb3B0aW9ucyk9Pih7W2AmJHt0b2tlbi5jb21wb25lbnRDbHN9LXN0YXR1cy0ke29wdGlvbnMuc3RhdHVzfTpub3QoJHt0b2tlbi5jb21wb25lbnRDbHN9LWRpc2FibGVkKWBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnZW5CYXNlRmlsbGVkU3R5bGUodG9rZW4sb3B0aW9ucykpLHtbYCR7dG9rZW4uY29tcG9uZW50Q2xzfS1wcmVmaXgsICR7dG9rZW4uY29tcG9uZW50Q2xzfS1zdWZmaXhgXTp7Y29sb3I6b3B0aW9ucy5hZmZpeENvbG9yfX0pfSksZ2VuRmlsbGVkU3R5bGU9KHRva2VuLGV4dHJhU3R5bGVzKT0+KHsiJi1maWxsZWQiOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnZW5CYXNlRmlsbGVkU3R5bGUodG9rZW4se2JnOnRva2VuLmNvbG9yRmlsbFRlcnRpYXJ5LGhvdmVyQmc6dG9rZW4uY29sb3JGaWxsU2Vjb25kYXJ5LGFjdGl2ZUJvcmRlckNvbG9yOnRva2VuLmFjdGl2ZUJvcmRlckNvbG9yfSkpLHtbYCYke3Rva2VuLmNvbXBvbmVudENsc30tZGlzYWJsZWQsICZbZGlzYWJsZWRdYF06T2JqZWN0LmFzc2lnbih7fSxnZW5EaXNhYmxlZFN0eWxlKHRva2VuKSl9KSxnZW5GaWxsZWRTdGF0dXNTdHlsZSh0b2tlbix7c3RhdHVzOiJlcnJvciIsYmc6dG9rZW4uY29sb3JFcnJvckJnLGhvdmVyQmc6dG9rZW4uY29sb3JFcnJvckJnSG92ZXIsYWN0aXZlQm9yZGVyQ29sb3I6dG9rZW4uY29sb3JFcnJvcixpbnB1dENvbG9yOnRva2VuLmNvbG9yRXJyb3JUZXh0LGFmZml4Q29sb3I6dG9rZW4uY29sb3JFcnJvcn0pKSxnZW5GaWxsZWRTdGF0dXNTdHlsZSh0b2tlbix7c3RhdHVzOiJ3YXJuaW5nIixiZzp0b2tlbi5jb2xvcldhcm5pbmdCZyxob3ZlckJnOnRva2VuLmNvbG9yV2FybmluZ0JnSG92ZXIsYWN0aXZlQm9yZGVyQ29sb3I6dG9rZW4uY29sb3JXYXJuaW5nLGlucHV0Q29sb3I6dG9rZW4uY29sb3JXYXJuaW5nVGV4dCxhZmZpeENvbG9yOnRva2VuLmNvbG9yV2FybmluZ30pKSxleHRyYVN0eWxlcyl9KSxnZW5GaWxsZWRHcm91cFN0YXR1c1N0eWxlPSh0b2tlbixvcHRpb25zKT0+KHtbYCYke3Rva2VuLmNvbXBvbmVudENsc30tZ3JvdXAtd3JhcHBlci1zdGF0dXMtJHtvcHRpb25zLnN0YXR1c31gXTp7W2Ake3Rva2VuLmNvbXBvbmVudENsc30tZ3JvdXAtYWRkb25gXTp7YmFja2dyb3VuZDpvcHRpb25zLmFkZG9uQmcsY29sb3I6b3B0aW9ucy5hZGRvbkNvbG9yfX19KSxnZW5GaWxsZWRHcm91cFN0eWxlPXRva2VuPT4oeyImLWZpbGxlZCI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe1tgJHt0b2tlbi5jb21wb25lbnRDbHN9LWdyb3VwYF06eyImLWFkZG9uIjp7YmFja2dyb3VuZDp0b2tlbi5jb2xvckZpbGxUZXJ0aWFyeX0sW2Ake3Rva2VuLmNvbXBvbmVudENsc30tZmlsbGVkOm5vdCg6Zm9jdXMpOm5vdCg6Zm9jdXMtd2l0aGluKWBdOnsiJjpub3QoOmZpcnN0LWNoaWxkKSI6e2JvcmRlcklubGluZVN0YXJ0OmAkeygwLF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5iZikodG9rZW4ubGluZVdpZHRoKX0gJHt0b2tlbi5saW5lVHlwZX0gJHt0b2tlbi5jb2xvclNwbGl0fWB9LCImOm5vdCg6bGFzdC1jaGlsZCkiOntib3JkZXJJbmxpbmVFbmQ6YCR7KDAsX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmJmKSh0b2tlbi5saW5lV2lkdGgpfSAke3Rva2VuLmxpbmVUeXBlfSAke3Rva2VuLmNvbG9yU3BsaXR9YH19fX0sZ2VuRmlsbGVkR3JvdXBTdGF0dXNTdHlsZSh0b2tlbix7c3RhdHVzOiJlcnJvciIsYWRkb25CZzp0b2tlbi5jb2xvckVycm9yQmcsYWRkb25Db2xvcjp0b2tlbi5jb2xvckVycm9yVGV4dH0pKSxnZW5GaWxsZWRHcm91cFN0YXR1c1N0eWxlKHRva2VuLHtzdGF0dXM6Indhcm5pbmciLGFkZG9uQmc6dG9rZW4uY29sb3JXYXJuaW5nQmcsYWRkb25Db2xvcjp0b2tlbi5jb2xvcldhcm5pbmdUZXh0fSkpLHtbYCYke3Rva2VuLmNvbXBvbmVudENsc30tZ3JvdXAtd3JhcHBlci1kaXNhYmxlZGBdOntbYCR7dG9rZW4uY29tcG9uZW50Q2xzfS1ncm91cGBdOnsiJi1hZGRvbiI6e2JhY2tncm91bmQ6dG9rZW4uY29sb3JGaWxsVGVydGlhcnksY29sb3I6dG9rZW4uY29sb3JUZXh0RGlzYWJsZWR9LCImLWFkZG9uOmZpcnN0LWNoaWxkIjp7Ym9yZGVySW5saW5lU3RhcnQ6YCR7KDAsX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmJmKSh0b2tlbi5saW5lV2lkdGgpfSAke3Rva2VuLmxpbmVUeXBlfSAke3Rva2VuLmNvbG9yQm9yZGVyfWAsYm9yZGVyVG9wOmAkeygwLF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5iZikodG9rZW4ubGluZVdpZHRoKX0gJHt0b2tlbi5saW5lVHlwZX0gJHt0b2tlbi5jb2xvckJvcmRlcn1gLGJvcmRlckJvdHRvbTpgJHsoMCxfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uYmYpKHRva2VuLmxpbmVXaWR0aCl9ICR7dG9rZW4ubGluZVR5cGV9ICR7dG9rZW4uY29sb3JCb3JkZXJ9YH0sIiYtYWRkb246bGFzdC1jaGlsZCI6e2JvcmRlcklubGluZUVuZDpgJHsoMCxfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uYmYpKHRva2VuLmxpbmVXaWR0aCl9ICR7dG9rZW4ubGluZVR5cGV9ICR7dG9rZW4uY29sb3JCb3JkZXJ9YCxib3JkZXJUb3A6YCR7KDAsX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmJmKSh0b2tlbi5saW5lV2lkdGgpfSAke3Rva2VuLmxpbmVUeXBlfSAke3Rva2VuLmNvbG9yQm9yZGVyfWAsYm9yZGVyQm90dG9tOmAkeygwLF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5iZikodG9rZW4ubGluZVdpZHRoKX0gJHt0b2tlbi5saW5lVHlwZX0gJHt0b2tlbi5jb2xvckJvcmRlcn1gfX19fSl9KSxnZW5CYXNlVW5kZXJsaW5lZFN0eWxlPSh0b2tlbixvcHRpb25zKT0+KHtiYWNrZ3JvdW5kOnRva2VuLmNvbG9yQmdDb250YWluZXIsYm9yZGVyV2lkdGg6YCR7KDAsX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmJmKSh0b2tlbi5saW5lV2lkdGgpfSAwYCxib3JkZXJTdHlsZTpgJHt0b2tlbi5saW5lVHlwZX0gbm9uZWAsYm9yZGVyQ29sb3I6YHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR7b3B0aW9ucy5ib3JkZXJDb2xvcn0gdHJhbnNwYXJlbnRgLGJvcmRlclJhZGl1czowLCImOmhvdmVyIjp7Ym9yZGVyQ29sb3I6YHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR7b3B0aW9ucy5ib3JkZXJDb2xvcn0gdHJhbnNwYXJlbnRgLGJhY2tncm91bmRDb2xvcjp0b2tlbi5ob3ZlckJnfSwiJjpmb2N1cywgJjpmb2N1cy13aXRoaW4iOntib3JkZXJDb2xvcjpgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHtvcHRpb25zLmJvcmRlckNvbG9yfSB0cmFuc3BhcmVudGAsb3V0bGluZTowLGJhY2tncm91bmRDb2xvcjp0b2tlbi5hY3RpdmVCZ319KSxnZW5VbmRlcmxpbmVkU3RhdHVzU3R5bGU9KHRva2VuLG9wdGlvbnMpPT4oe1tgJiR7dG9rZW4uY29tcG9uZW50Q2xzfS1zdGF0dXMtJHtvcHRpb25zLnN0YXR1c306bm90KCR7dG9rZW4uY29tcG9uZW50Q2xzfS1kaXNhYmxlZClgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZ2VuQmFzZVVuZGVybGluZWRTdHlsZSh0b2tlbixvcHRpb25zKSkse1tgJHt0b2tlbi5jb21wb25lbnRDbHN9LXByZWZpeCwgJHt0b2tlbi5jb21wb25lbnRDbHN9LXN1ZmZpeGBdOntjb2xvcjpvcHRpb25zLmFmZml4Q29sb3J9fSksW2AmJHt0b2tlbi5jb21wb25lbnRDbHN9LXN0YXR1cy0ke29wdGlvbnMuc3RhdHVzfSR7dG9rZW4uY29tcG9uZW50Q2xzfS1kaXNhYmxlZGBdOntib3JkZXJDb2xvcjpgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHtvcHRpb25zLmJvcmRlckNvbG9yfSB0cmFuc3BhcmVudGB9fSksZ2VuVW5kZXJsaW5lZFN0eWxlPSh0b2tlbixleHRyYVN0eWxlcyk9Pih7IiYtdW5kZXJsaW5lZCI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGdlbkJhc2VVbmRlcmxpbmVkU3R5bGUodG9rZW4se2JvcmRlckNvbG9yOnRva2VuLmNvbG9yQm9yZGVyLGhvdmVyQm9yZGVyQ29sb3I6dG9rZW4uaG92ZXJCb3JkZXJDb2xvcixhY3RpdmVCb3JkZXJDb2xvcjp0b2tlbi5hY3RpdmVCb3JkZXJDb2xvcixhY3RpdmVTaGFkb3c6dG9rZW4uYWN0aXZlU2hhZG93fSkpLHtbYCYke3Rva2VuLmNvbXBvbmVudENsc30tZGlzYWJsZWQsICZbZGlzYWJsZWRdYF06e2NvbG9yOnRva2VuLmNvbG9yVGV4dERpc2FibGVkLGJveFNoYWRvdzoibm9uZSIsY3Vyc29yOiJub3QtYWxsb3dlZCIsIiY6aG92ZXIiOntib3JkZXJDb2xvcjpgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHt0b2tlbi5jb2xvckJvcmRlcn0gdHJhbnNwYXJlbnRgfX0sImlucHV0W2Rpc2FibGVkXSwgdGV4dGFyZWFbZGlzYWJsZWRdIjp7Y3Vyc29yOiJub3QtYWxsb3dlZCJ9fSksZ2VuVW5kZXJsaW5lZFN0YXR1c1N0eWxlKHRva2VuLHtzdGF0dXM6ImVycm9yIixib3JkZXJDb2xvcjp0b2tlbi5jb2xvckVycm9yLGhvdmVyQm9yZGVyQ29sb3I6dG9rZW4uY29sb3JFcnJvckJvcmRlckhvdmVyLGFjdGl2ZUJvcmRlckNvbG9yOnRva2VuLmNvbG9yRXJyb3IsYWN0aXZlU2hhZG93OnRva2VuLmVycm9yQWN0aXZlU2hhZG93LGFmZml4Q29sb3I6dG9rZW4uY29sb3JFcnJvcn0pKSxnZW5VbmRlcmxpbmVkU3RhdHVzU3R5bGUodG9rZW4se3N0YXR1czoid2FybmluZyIsYm9yZGVyQ29sb3I6dG9rZW4uY29sb3JXYXJuaW5nLGhvdmVyQm9yZGVyQ29sb3I6dG9rZW4uY29sb3JXYXJuaW5nQm9yZGVySG92ZXIsYWN0aXZlQm9yZGVyQ29sb3I6dG9rZW4uY29sb3JXYXJuaW5nLGFjdGl2ZVNoYWRvdzp0b2tlbi53YXJuaW5nQWN0aXZlU2hhZG93LGFmZml4Q29sb3I6dG9rZW4uY29sb3JXYXJuaW5nfSkpLGV4dHJhU3R5bGVzKX0pfSw3Njc0NTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0Ijt2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KTtsZXQgTG9jYWxlQ29udGV4dD0oMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmNyZWF0ZUNvbnRleHQpKHZvaWQgMCk7X193ZWJwYWNrX2V4cG9ydHNfXy5aPUxvY2FsZUNvbnRleHR9LDI0NDU3OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIGVzX2xvY2FsZV9lbl9VU319KTt2YXIgZW5fVVM9X193ZWJwYWNrX3JlcXVpcmVfXyg2MjkwNiksbG9jYWxlX2VuX1VTPV9fd2VicGFja19yZXF1aXJlX18oMjk0OTQpLGNhbGVuZGFyX2xvY2FsZV9lbl9VUz1sb2NhbGVfZW5fVVMuWix0aW1lX3BpY2tlcl9sb2NhbGVfZW5fVVM9X193ZWJwYWNrX3JlcXVpcmVfXyg0MjExNSk7bGV0IHR5cGVUZW1wbGF0ZT0iJHtsYWJlbH0gaXMgbm90IGEgdmFsaWQgJHt0eXBlfSIsbG9jYWxlVmFsdWVzPXtsb2NhbGU6ImVuIixQYWdpbmF0aW9uOmVuX1VTLlosRGF0ZVBpY2tlcjpsb2NhbGVfZW5fVVMuWixUaW1lUGlja2VyOnRpbWVfcGlja2VyX2xvY2FsZV9lbl9VUy5aLENhbGVuZGFyOmNhbGVuZGFyX2xvY2FsZV9lbl9VUyxnbG9iYWw6e3BsYWNlaG9sZGVyOiJQbGVhc2Ugc2VsZWN0IixjbG9zZToiQ2xvc2UifSxUYWJsZTp7ZmlsdGVyVGl0bGU6IkZpbHRlciBtZW51IixmaWx0ZXJDb25maXJtOiJPSyIsZmlsdGVyUmVzZXQ6IlJlc2V0IixmaWx0ZXJFbXB0eVRleHQ6Ik5vIGZpbHRlcnMiLGZpbHRlckNoZWNrQWxsOiJTZWxlY3QgYWxsIGl0ZW1zIixmaWx0ZXJTZWFyY2hQbGFjZWhvbGRlcjoiU2VhcmNoIGluIGZpbHRlcnMiLGVtcHR5VGV4dDoiTm8gZGF0YSIsc2VsZWN0QWxsOiJTZWxlY3QgY3VycmVudCBwYWdlIixzZWxlY3RJbnZlcnQ6IkludmVydCBjdXJyZW50IHBhZ2UiLHNlbGVjdE5vbmU6IkNsZWFyIGFsbCBkYXRhIixzZWxlY3Rpb25BbGw6IlNlbGVjdCBhbGwgZGF0YSIsc29ydFRpdGxlOiJTb3J0IixleHBhbmQ6IkV4cGFuZCByb3ciLGNvbGxhcHNlOiJDb2xsYXBzZSByb3ciLHRyaWdnZXJEZXNjOiJDbGljayB0byBzb3J0IGRlc2NlbmRpbmciLHRyaWdnZXJBc2M6IkNsaWNrIHRvIHNvcnQgYXNjZW5kaW5nIixjYW5jZWxTb3J0OiJDbGljayB0byBjYW5jZWwgc29ydGluZyJ9LFRvdXI6e05leHQ6Ik5leHQiLFByZXZpb3VzOiJQcmV2aW91cyIsRmluaXNoOiJGaW5pc2gifSxNb2RhbDp7b2tUZXh0OiJPSyIsY2FuY2VsVGV4dDoiQ2FuY2VsIixqdXN0T2tUZXh0OiJPSyJ9LFBvcGNvbmZpcm06e29rVGV4dDoiT0siLGNhbmNlbFRleHQ6IkNhbmNlbCJ9LFRyYW5zZmVyOnt0aXRsZXM6WyIiLCIiXSxzZWFyY2hQbGFjZWhvbGRlcjoiU2VhcmNoIGhlcmUiLGl0ZW1Vbml0OiJpdGVtIixpdGVtc1VuaXQ6Iml0ZW1zIixyZW1vdmU6IlJlbW92ZSIsc2VsZWN0Q3VycmVudDoiU2VsZWN0IGN1cnJlbnQgcGFnZSIscmVtb3ZlQ3VycmVudDoiUmVtb3ZlIGN1cnJlbnQgcGFnZSIsc2VsZWN0QWxsOiJTZWxlY3QgYWxsIGRhdGEiLGRlc2VsZWN0QWxsOiJEZXNlbGVjdCBhbGwgZGF0YSIscmVtb3ZlQWxsOiJSZW1vdmUgYWxsIGRhdGEiLHNlbGVjdEludmVydDoiSW52ZXJ0IGN1cnJlbnQgcGFnZSJ9LFVwbG9hZDp7dXBsb2FkaW5nOiJVcGxvYWRpbmcuLi4iLHJlbW92ZUZpbGU6IlJlbW92ZSBmaWxlIix1cGxvYWRFcnJvcjoiVXBsb2FkIGVycm9yIixwcmV2aWV3RmlsZToiUHJldmlldyBmaWxlIixkb3dubG9hZEZpbGU6IkRvd25sb2FkIGZpbGUifSxFbXB0eTp7ZGVzY3JpcHRpb246Ik5vIGRhdGEifSxJY29uOntpY29uOiJpY29uIn0sVGV4dDp7ZWRpdDoiRWRpdCIsY29weToiQ29weSIsY29waWVkOiJDb3BpZWQiLGV4cGFuZDoiRXhwYW5kIixjb2xsYXBzZToiQ29sbGFwc2UifSxGb3JtOntvcHRpb25hbDoiKG9wdGlvbmFsKSIsZGVmYXVsdFZhbGlkYXRlTWVzc2FnZXM6e2RlZmF1bHQ6IkZpZWxkIHZhbGlkYXRpb24gZXJyb3IgZm9yICR7bGFiZWx9IixyZXF1aXJlZDoiUGxlYXNlIGVudGVyICR7bGFiZWx9IixlbnVtOiIke2xhYmVsfSBtdXN0IGJlIG9uZSBvZiBbJHtlbnVtfV0iLHdoaXRlc3BhY2U6IiR7bGFiZWx9IGNhbm5vdCBiZSBhIGJsYW5rIGNoYXJhY3RlciIsZGF0ZTp7Zm9ybWF0OiIke2xhYmVsfSBkYXRlIGZvcm1hdCBpcyBpbnZhbGlkIixwYXJzZToiJHtsYWJlbH0gY2Fubm90IGJlIGNvbnZlcnRlZCB0byBhIGRhdGUiLGludmFsaWQ6IiR7bGFiZWx9IGlzIGFuIGludmFsaWQgZGF0ZSJ9LHR5cGVzOntzdHJpbmc6dHlwZVRlbXBsYXRlLG1ldGhvZDp0eXBlVGVtcGxhdGUsYXJyYXk6dHlwZVRlbXBsYXRlLG9iamVjdDp0eXBlVGVtcGxhdGUsbnVtYmVyOnR5cGVUZW1wbGF0ZSxkYXRlOnR5cGVUZW1wbGF0ZSxib29sZWFuOnR5cGVUZW1wbGF0ZSxpbnRlZ2VyOnR5cGVUZW1wbGF0ZSxmbG9hdDp0eXBlVGVtcGxhdGUscmVnZXhwOnR5cGVUZW1wbGF0ZSxlbWFpbDp0eXBlVGVtcGxhdGUsdXJsOnR5cGVUZW1wbGF0ZSxoZXg6dHlwZVRlbXBsYXRlfSxzdHJpbmc6e2xlbjoiJHtsYWJlbH0gbXVzdCBiZSAke2xlbn0gY2hhcmFjdGVycyIsbWluOiIke2xhYmVsfSBtdXN0IGJlIGF0IGxlYXN0ICR7bWlufSBjaGFyYWN0ZXJzIixtYXg6IiR7bGFiZWx9IG11c3QgYmUgdXAgdG8gJHttYXh9IGNoYXJhY3RlcnMiLHJhbmdlOiIke2xhYmVsfSBtdXN0IGJlIGJldHdlZW4gJHttaW59LSR7bWF4fSBjaGFyYWN0ZXJzIn0sbnVtYmVyOntsZW46IiR7bGFiZWx9IG11c3QgYmUgZXF1YWwgdG8gJHtsZW59IixtaW46IiR7bGFiZWx9IG11c3QgYmUgbWluaW11bSAke21pbn0iLG1heDoiJHtsYWJlbH0gbXVzdCBiZSBtYXhpbXVtICR7bWF4fSIscmFuZ2U6IiR7bGFiZWx9IG11c3QgYmUgYmV0d2VlbiAke21pbn0tJHttYXh9In0sYXJyYXk6e2xlbjoiTXVzdCBiZSAke2xlbn0gJHtsYWJlbH0iLG1pbjoiQXQgbGVhc3QgJHttaW59ICR7bGFiZWx9IixtYXg6IkF0IG1vc3QgJHttYXh9ICR7bGFiZWx9IixyYW5nZToiVGhlIGFtb3VudCBvZiAke2xhYmVsfSBtdXN0IGJlIGJldHdlZW4gJHttaW59LSR7bWF4fSJ9LHBhdHRlcm46e21pc21hdGNoOiIke2xhYmVsfSBkb2VzIG5vdCBtYXRjaCB0aGUgcGF0dGVybiAke3BhdHRlcm59In19fSxJbWFnZTp7cHJldmlldzoiUHJldmlldyJ9LFFSQ29kZTp7ZXhwaXJlZDoiUVIgY29kZSBleHBpcmVkIixyZWZyZXNoOiJSZWZyZXNoIixzY2FubmVkOiJTY2FubmVkIn0sQ29sb3JQaWNrZXI6e3ByZXNldEVtcHR5OiJFbXB0eSIsdHJhbnNwYXJlbnQ6IlRyYW5zcGFyZW50IixzaW5nbGVDb2xvcjoiU2luZ2xlIixncmFkaWVudENvbG9yOiJHcmFkaWVudCJ9fTt2YXIgZXNfbG9jYWxlX2VuX1VTPWxvY2FsZVZhbHVlc30sMTAxMTA6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7dmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksX2NvbnRleHRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDc2NzQ1KSxfZW5fVVNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI0NDU3KTtsZXQgdXNlTG9jYWxlPShjb21wb25lbnROYW1lLGRlZmF1bHRMb2NhbGUpPT57bGV0IGZ1bGxMb2NhbGU9cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VDb250ZXh0KF9jb250ZXh0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uWiksZ2V0TG9jYWxlPXJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlTWVtbygoKT0+e3ZhciBfYTtsZXQgbG9jYWxlPWRlZmF1bHRMb2NhbGV8fF9lbl9VU19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLlpbY29tcG9uZW50TmFtZV0sbG9jYWxlRnJvbUNvbnRleHQ9bnVsbCE9PShfYT1udWxsPT1mdWxsTG9jYWxlP3ZvaWQgMDpmdWxsTG9jYWxlW2NvbXBvbmVudE5hbWVdKSYmdm9pZCAwIT09X2E/X2E6e307cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwiZnVuY3Rpb24iPT10eXBlb2YgbG9jYWxlP2xvY2FsZSgpOmxvY2FsZSksbG9jYWxlRnJvbUNvbnRleHR8fHt9KX0sW2NvbXBvbmVudE5hbWUsZGVmYXVsdExvY2FsZSxmdWxsTG9jYWxlXSksZ2V0TG9jYWxlQ29kZT1yZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnVzZU1lbW8oKCk9PntsZXQgbG9jYWxlQ29kZT1udWxsPT1mdWxsTG9jYWxlP3ZvaWQgMDpmdWxsTG9jYWxlLmxvY2FsZTtyZXR1cm4obnVsbD09ZnVsbExvY2FsZT92b2lkIDA6ZnVsbExvY2FsZS5leGlzdCkmJiFsb2NhbGVDb2RlP19lbl9VU19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLloubG9jYWxlOmxvY2FsZUNvZGV9LFtmdWxsTG9jYWxlXSk7cmV0dXJuW2dldExvY2FsZSxnZXRMb2NhbGVDb2RlXX07X193ZWJwYWNrX2V4cG9ydHNfXy5aPXVzZUxvY2FsZX0sNzY1Mjk6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se0o6ZnVuY3Rpb24oKXtyZXR1cm4gT3ZlcnJpZGVQcm92aWRlcn19KTt2YXIgcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxyY191dGlsX2VzX3JlZl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oMTc3OTkpLF91dGlsX0NvbnRleHRJc29sYXRvcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fPV9fd2VicGFja19yZXF1aXJlX18oODk5NDIpLF9fcmVzdD1mdW5jdGlvbihzLGUpe3ZhciB0PXt9O2Zvcih2YXIgcCBpbiBzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLHApJiYwPmUuaW5kZXhPZihwKSYmKHRbcF09c1twXSk7aWYobnVsbCE9cyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpZm9yKHZhciBpPTAscD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpO2k8cC5sZW5ndGg7aSsrKTA+ZS5pbmRleE9mKHBbaV0pJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocyxwW2ldKSYmKHRbcFtpXV09c1twW2ldXSk7cmV0dXJuIHR9O2xldCBPdmVycmlkZUNvbnRleHQ9cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jcmVhdGVDb250ZXh0KG51bGwpLE92ZXJyaWRlUHJvdmlkZXI9cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5mb3J3YXJkUmVmKChwcm9wcyxyZWYpPT57bGV0e2NoaWxkcmVufT1wcm9wcyxyZXN0UHJvcHM9X19yZXN0KHByb3BzLFsiY2hpbGRyZW4iXSksb3ZlcnJpZGU9cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VDb250ZXh0KE92ZXJyaWRlQ29udGV4dCksY29udGV4dD1yZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnVzZU1lbW8oKCk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxvdmVycmlkZSkscmVzdFByb3BzKSxbb3ZlcnJpZGUscmVzdFByb3BzLnByZWZpeENscyxyZXN0UHJvcHMubW9kZSxyZXN0UHJvcHMuc2VsZWN0YWJsZSxyZXN0UHJvcHMucm9vdENsYXNzTmFtZV0pLGNhblJlZj0oMCxyY191dGlsX2VzX3JlZl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnQ0KShjaGlsZHJlbiksbWVyZ2VkUmVmPSgwLHJjX3V0aWxfZXNfcmVmX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ueDEpKHJlZixjYW5SZWY/KDAscmNfdXRpbF9lc19yZWZfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5DNCkoY2hpbGRyZW4pOm51bGwpO3JldHVybiByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmNyZWF0ZUVsZW1lbnQoT3ZlcnJpZGVDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpjb250ZXh0fSxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmNyZWF0ZUVsZW1lbnQoX3V0aWxfQ29udGV4dElzb2xhdG9yX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uWix7c3BhY2U6ITB9LGNhblJlZj9yZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmNsb25lRWxlbWVudChjaGlsZHJlbix7cmVmOm1lcmdlZFJlZn0pOmNoaWxkcmVuKSl9KTtfX3dlYnBhY2tfZXhwb3J0c19fLlo9T3ZlcnJpZGVDb250ZXh0fSwxNDc2NTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBlc19tZW51fX0pO3ZhciByZWFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxlc21fZXh0ZW5kcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDg3NDYyKSxkZWZpbmVQcm9wZXJ0eT1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ5NDIpLG9iamVjdFNwcmVhZDI9X193ZWJwYWNrX3JlcXVpcmVfXygxNDEzKSx0b0NvbnN1bWFibGVBcnJheT1fX3dlYnBhY2tfcmVxdWlyZV9fKDc0OTAyKSxzbGljZWRUb0FycmF5PV9fd2VicGFja19yZXF1aXJlX18oOTc2ODUpLG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzPV9fd2VicGFja19yZXF1aXJlX18oOTEpLGNsYXNzbmFtZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NDE4NCksY2xhc3NuYW1lc19kZWZhdWx0PV9fd2VicGFja19yZXF1aXJlX18ubihjbGFzc25hbWVzKSxlcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDM5OTgzKSx1c2VNZXJnZWRTdGF0ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDIxNzcwKSxpc0VxdWFsPV9fd2VicGFja19yZXF1aXJlX18oOTE4ODEpLHdhcm5pbmc9X193ZWJwYWNrX3JlcXVpcmVfXyg4MDMzNCkscmVhY3RfZG9tPV9fd2VicGFja19yZXF1aXJlX18oNzM5MzUpLElkQ29udGV4dD1yZWFjdC5jcmVhdGVDb250ZXh0KG51bGwpO2Z1bmN0aW9uIGdldE1lbnVJZCh1dWlkLGV2ZW50S2V5KXtyZXR1cm4gdm9pZCAwPT09dXVpZD9udWxsOiIiLmNvbmNhdCh1dWlkLCItIikuY29uY2F0KGV2ZW50S2V5KX1mdW5jdGlvbiB1c2VNZW51SWQoZXZlbnRLZXkpe3JldHVybiBnZXRNZW51SWQocmVhY3QudXNlQ29udGV4dChJZENvbnRleHQpLGV2ZW50S2V5KX12YXIgdXNlTWVtbz1fX3dlYnBhY2tfcmVxdWlyZV9fKDU2OTgyKSxfZXhjbHVkZWQ9WyJjaGlsZHJlbiIsImxvY2tlZCJdLE1lbnVDb250ZXh0PXJlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCk7ZnVuY3Rpb24gSW5oZXJpdGFibGVDb250ZXh0UHJvdmlkZXIoX3JlZil7dmFyIGNoaWxkcmVuPV9yZWYuY2hpbGRyZW4sbG9ja2VkPV9yZWYubG9ja2VkLHJlc3RQcm9wcz0oMCxvYmplY3RXaXRob3V0UHJvcGVydGllcy5aKShfcmVmLF9leGNsdWRlZCksY29udGV4dD1yZWFjdC51c2VDb250ZXh0KE1lbnVDb250ZXh0KSxpbmhlcml0YWJsZUNvbnRleHQ9KDAsdXNlTWVtby5aKShmdW5jdGlvbigpe3ZhciBjbG9uZTtyZXR1cm4gY2xvbmU9KDAsb2JqZWN0U3ByZWFkMi5aKSh7fSxjb250ZXh0KSxPYmplY3Qua2V5cyhyZXN0UHJvcHMpLmZvckVhY2goZnVuY3Rpb24oa2V5KXt2YXIgdmFsdWU9cmVzdFByb3BzW2tleV07dm9pZCAwIT09dmFsdWUmJihjbG9uZVtrZXldPXZhbHVlKX0pLGNsb25lfSxbY29udGV4dCxyZXN0UHJvcHNdLGZ1bmN0aW9uKHByZXYsbmV4dCl7cmV0dXJuIWxvY2tlZCYmKHByZXZbMF0hPT1uZXh0WzBdfHwhKDAsaXNFcXVhbC5aKShwcmV2WzFdLG5leHRbMV0sITApKX0pO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KE1lbnVDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTppbmhlcml0YWJsZUNvbnRleHR9LGNoaWxkcmVuKX12YXIgUGF0aFJlZ2lzdGVyQ29udGV4dD1yZWFjdC5jcmVhdGVDb250ZXh0KG51bGwpO2Z1bmN0aW9uIHVzZU1lYXN1cmUoKXtyZXR1cm4gcmVhY3QudXNlQ29udGV4dChQYXRoUmVnaXN0ZXJDb250ZXh0KX12YXIgUGF0aFRyYWNrZXJDb250ZXh0PXJlYWN0LmNyZWF0ZUNvbnRleHQoW10pO2Z1bmN0aW9uIHVzZUZ1bGxQYXRoKGV2ZW50S2V5KXt2YXIgcGFyZW50S2V5UGF0aD1yZWFjdC51c2VDb250ZXh0KFBhdGhUcmFja2VyQ29udGV4dCk7cmV0dXJuIHJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09ZXZlbnRLZXk/W10uY29uY2F0KCgwLHRvQ29uc3VtYWJsZUFycmF5LlopKHBhcmVudEtleVBhdGgpLFtldmVudEtleV0pOnBhcmVudEtleVBhdGh9LFtwYXJlbnRLZXlQYXRoLGV2ZW50S2V5XSl9dmFyIFBhdGhVc2VyQ29udGV4dD1yZWFjdC5jcmVhdGVDb250ZXh0KG51bGwpLFByaXZhdGVDb250ZXh0PXJlYWN0LmNyZWF0ZUNvbnRleHQoe30pLGVzbV90b0NvbnN1bWFibGVBcnJheT1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3MjY2KSxpc1Zpc2libGU9ZnVuY3Rpb24oZWxlbWVudCl7aWYoIWVsZW1lbnQpcmV0dXJuITE7aWYoZWxlbWVudCBpbnN0YW5jZW9mIEVsZW1lbnQpe2lmKGVsZW1lbnQub2Zmc2V0UGFyZW50KXJldHVybiEwO2lmKGVsZW1lbnQuZ2V0QkJveCl7dmFyIF9nZXRCQm94PWVsZW1lbnQuZ2V0QkJveCgpLHdpZHRoPV9nZXRCQm94LndpZHRoLGhlaWdodD1fZ2V0QkJveC5oZWlnaHQ7aWYod2lkdGh8fGhlaWdodClyZXR1cm4hMH1pZihlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCl7dmFyIF9lbGVtZW50JGdldEJvdW5kaW5nQz1lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLF93aWR0aD1fZWxlbWVudCRnZXRCb3VuZGluZ0Mud2lkdGgsX2hlaWdodD1fZWxlbWVudCRnZXRCb3VuZGluZ0MuaGVpZ2h0O2lmKF93aWR0aHx8X2hlaWdodClyZXR1cm4hMH19cmV0dXJuITF9O2Z1bmN0aW9uIGZvY3VzYWJsZShub2RlKXt2YXIgaW5jbHVkZVBvc2l0aXZlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07aWYoaXNWaXNpYmxlKG5vZGUpKXt2YXIgbm9kZU5hbWU9bm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLGlzRm9jdXNhYmxlRWxlbWVudD1bImlucHV0Iiwic2VsZWN0IiwidGV4dGFyZWEiLCJidXR0b24iXS5pbmNsdWRlcyhub2RlTmFtZSl8fG5vZGUuaXNDb250ZW50RWRpdGFibGV8fCJhIj09PW5vZGVOYW1lJiYhIW5vZGUuZ2V0QXR0cmlidXRlKCJocmVmIiksdGFiSW5kZXhBdHRyPW5vZGUuZ2V0QXR0cmlidXRlKCJ0YWJpbmRleCIpLHRhYkluZGV4TnVtPU51bWJlcih0YWJJbmRleEF0dHIpLHRhYkluZGV4PW51bGw7cmV0dXJuIHRhYkluZGV4QXR0ciYmIU51bWJlci5pc05hTih0YWJJbmRleE51bSk/dGFiSW5kZXg9dGFiSW5kZXhOdW06aXNGb2N1c2FibGVFbGVtZW50JiZudWxsPT09dGFiSW5kZXgmJih0YWJJbmRleD0wKSxpc0ZvY3VzYWJsZUVsZW1lbnQmJm5vZGUuZGlzYWJsZWQmJih0YWJJbmRleD1udWxsKSxudWxsIT09dGFiSW5kZXgmJih0YWJJbmRleD49MHx8aW5jbHVkZVBvc2l0aXZlJiZ0YWJJbmRleDwwKX1yZXR1cm4hMX12YXIgS2V5Q29kZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDE1MTA1KSxyYWY9X193ZWJwYWNrX3JlcXVpcmVfXyg3NTE2NCksTEVGVD1LZXlDb2RlLlouTEVGVCxSSUdIVD1LZXlDb2RlLlouUklHSFQsVVA9S2V5Q29kZS5aLlVQLERPV049S2V5Q29kZS5aLkRPV04sRU5URVI9S2V5Q29kZS5aLkVOVEVSLEVTQz1LZXlDb2RlLlouRVNDLEhPTUU9S2V5Q29kZS5aLkhPTUUsRU5EPUtleUNvZGUuWi5FTkQsQXJyb3dLZXlzPVtVUCxET1dOLExFRlQsUklHSFRdO2Z1bmN0aW9uIGdldEZvY3VzYWJsZUVsZW1lbnRzKGNvbnRhaW5lcixlbGVtZW50cyl7cmV0dXJuKGZ1bmN0aW9uKG5vZGUpe3ZhciBpbmNsdWRlUG9zaXRpdmU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxyZXM9KDAsZXNtX3RvQ29uc3VtYWJsZUFycmF5LlopKG5vZGUucXVlcnlTZWxlY3RvckFsbCgiKiIpKS5maWx0ZXIoZnVuY3Rpb24oY2hpbGQpe3JldHVybiBmb2N1c2FibGUoY2hpbGQsaW5jbHVkZVBvc2l0aXZlKX0pO3JldHVybiBmb2N1c2FibGUobm9kZSxpbmNsdWRlUG9zaXRpdmUpJiZyZXMudW5zaGlmdChub2RlKSxyZXN9KShjb250YWluZXIsITApLmZpbHRlcihmdW5jdGlvbihlbGUpe3JldHVybiBlbGVtZW50cy5oYXMoZWxlKX0pfWZ1bmN0aW9uIGdldE5leHRGb2N1c0VsZW1lbnQocGFyZW50UXVlcnlDb250YWluZXIsZWxlbWVudHMsZm9jdXNNZW51RWxlbWVudCl7dmFyIG9mZnNldD1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106MTtpZighcGFyZW50UXVlcnlDb250YWluZXIpcmV0dXJuIG51bGw7dmFyIHNhbWVMZXZlbEZvY3VzYWJsZU1lbnVFbGVtZW50TGlzdD1nZXRGb2N1c2FibGVFbGVtZW50cyhwYXJlbnRRdWVyeUNvbnRhaW5lcixlbGVtZW50cyksY291bnQ9c2FtZUxldmVsRm9jdXNhYmxlTWVudUVsZW1lbnRMaXN0Lmxlbmd0aCxmb2N1c0luZGV4PXNhbWVMZXZlbEZvY3VzYWJsZU1lbnVFbGVtZW50TGlzdC5maW5kSW5kZXgoZnVuY3Rpb24oZWxlKXtyZXR1cm4gZm9jdXNNZW51RWxlbWVudD09PWVsZX0pO3JldHVybiBvZmZzZXQ8MD8tMT09PWZvY3VzSW5kZXg/Zm9jdXNJbmRleD1jb3VudC0xOmZvY3VzSW5kZXgtPTE6b2Zmc2V0PjAmJihmb2N1c0luZGV4Kz0xKSxzYW1lTGV2ZWxGb2N1c2FibGVNZW51RWxlbWVudExpc3RbZm9jdXNJbmRleD0oZm9jdXNJbmRleCtjb3VudCklY291bnRdfXZhciByZWZyZXNoRWxlbWVudHM9ZnVuY3Rpb24oa2V5cyxpZCl7dmFyIGVsZW1lbnRzPW5ldyBTZXQsa2V5MmVsZW1lbnQ9bmV3IE1hcCxlbGVtZW50MmtleT1uZXcgTWFwO3JldHVybiBrZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KXt2YXIgZWxlbWVudD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJbZGF0YS1tZW51LWlkPSciLmNvbmNhdChnZXRNZW51SWQoaWQsa2V5KSwiJ10iKSk7ZWxlbWVudCYmKGVsZW1lbnRzLmFkZChlbGVtZW50KSxlbGVtZW50MmtleS5zZXQoZWxlbWVudCxrZXkpLGtleTJlbGVtZW50LnNldChrZXksZWxlbWVudCkpfSkse2VsZW1lbnRzOmVsZW1lbnRzLGtleTJlbGVtZW50OmtleTJlbGVtZW50LGVsZW1lbnQya2V5OmVsZW1lbnQya2V5fX0sUEFUSF9TUExJVD0iX19SQ19VVElMX1BBVEhfU1BMSVRfXyIsZ2V0UGF0aFN0cj1mdW5jdGlvbihrZXlQYXRoKXtyZXR1cm4ga2V5UGF0aC5qb2luKFBBVEhfU1BMSVQpfSxPVkVSRkxPV19LRVk9InJjLW1lbnUtbW9yZSI7ZnVuY3Rpb24gdXNlTWVtb0NhbGxiYWNrKGZ1bmMpe3ZhciBmdW5SZWY9cmVhY3QudXNlUmVmKGZ1bmMpO2Z1blJlZi5jdXJyZW50PWZ1bmM7dmFyIGNhbGxiYWNrPXJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uKCl7Zm9yKHZhciBfZnVuUmVmJGN1cnJlbnQsX2xlbj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbiksX2tleT0wO19rZXk8X2xlbjtfa2V5KyspYXJnc1tfa2V5XT1hcmd1bWVudHNbX2tleV07cmV0dXJuIG51bGw9PT0oX2Z1blJlZiRjdXJyZW50PWZ1blJlZi5jdXJyZW50KXx8dm9pZCAwPT09X2Z1blJlZiRjdXJyZW50P3ZvaWQgMDpfZnVuUmVmJGN1cnJlbnQuY2FsbC5hcHBseShfZnVuUmVmJGN1cnJlbnQsW2Z1blJlZl0uY29uY2F0KGFyZ3MpKX0sW10pO3JldHVybiBmdW5jP2NhbGxiYWNrOnZvaWQgMH12YXIgdW5pcXVlUHJlZml4PU1hdGgucmFuZG9tKCkudG9GaXhlZCg1KS50b1N0cmluZygpLnNsaWNlKDIpLGludGVybmFsSWQ9MCxjbGFzc0NhbGxDaGVjaz1fX3dlYnBhY2tfcmVxdWlyZV9fKDE1NjcxKSxjcmVhdGVDbGFzcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQzMTQ0KSxpbmhlcml0cz1fX3dlYnBhY2tfcmVxdWlyZV9fKDMyNTMxKSxjcmVhdGVTdXBlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDczNTY4KSxlc19vbWl0PV9fd2VicGFja19yZXF1aXJlX18oOTg0MjMpLGVzX3JlZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDQyNTUwKTtmdW5jdGlvbiB1c2VBY3RpdmUoZXZlbnRLZXksZGlzYWJsZWQsb25Nb3VzZUVudGVyLG9uTW91c2VMZWF2ZSl7dmFyIF9SZWFjdCR1c2VDb250ZXh0PXJlYWN0LnVzZUNvbnRleHQoTWVudUNvbnRleHQpLGFjdGl2ZUtleT1fUmVhY3QkdXNlQ29udGV4dC5hY3RpdmVLZXksb25BY3RpdmU9X1JlYWN0JHVzZUNvbnRleHQub25BY3RpdmUsb25JbmFjdGl2ZT1fUmVhY3QkdXNlQ29udGV4dC5vbkluYWN0aXZlLHJldD17YWN0aXZlOmFjdGl2ZUtleT09PWV2ZW50S2V5fTtyZXR1cm4gZGlzYWJsZWR8fChyZXQub25Nb3VzZUVudGVyPWZ1bmN0aW9uKGRvbUV2ZW50KXtudWxsPT1vbk1vdXNlRW50ZXJ8fG9uTW91c2VFbnRlcih7a2V5OmV2ZW50S2V5LGRvbUV2ZW50OmRvbUV2ZW50fSksb25BY3RpdmUoZXZlbnRLZXkpfSxyZXQub25Nb3VzZUxlYXZlPWZ1bmN0aW9uKGRvbUV2ZW50KXtudWxsPT1vbk1vdXNlTGVhdmV8fG9uTW91c2VMZWF2ZSh7a2V5OmV2ZW50S2V5LGRvbUV2ZW50OmRvbUV2ZW50fSksb25JbmFjdGl2ZShldmVudEtleSl9KSxyZXR9ZnVuY3Rpb24gdXNlRGlyZWN0aW9uU3R5bGUobGV2ZWwpe3ZhciBfUmVhY3QkdXNlQ29udGV4dD1yZWFjdC51c2VDb250ZXh0KE1lbnVDb250ZXh0KSxtb2RlPV9SZWFjdCR1c2VDb250ZXh0Lm1vZGUscnRsPV9SZWFjdCR1c2VDb250ZXh0LnJ0bCxpbmxpbmVJbmRlbnQ9X1JlYWN0JHVzZUNvbnRleHQuaW5saW5lSW5kZW50O3JldHVybiJpbmxpbmUiIT09bW9kZT9udWxsOnJ0bD97cGFkZGluZ1JpZ2h0OmxldmVsKmlubGluZUluZGVudH06e3BhZGRpbmdMZWZ0OmxldmVsKmlubGluZUluZGVudH19ZnVuY3Rpb24gSWNvbihfcmVmKXt2YXIgaWNvbk5vZGUsaWNvbj1fcmVmLmljb24scHJvcHM9X3JlZi5wcm9wcyxjaGlsZHJlbj1fcmVmLmNoaWxkcmVuO3JldHVybiBudWxsPT09aWNvbnx8ITE9PT1pY29uP251bGw6KCJmdW5jdGlvbiI9PXR5cGVvZiBpY29uP2ljb25Ob2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQoaWNvbiwoMCxvYmplY3RTcHJlYWQyLlopKHt9LHByb3BzKSk6ImJvb2xlYW4iIT10eXBlb2YgaWNvbiYmKGljb25Ob2RlPWljb24pLGljb25Ob2RlfHxjaGlsZHJlbnx8bnVsbCl9dmFyIHdhcm5VdGlsX2V4Y2x1ZGVkPVsiaXRlbSJdO2Z1bmN0aW9uIHdhcm5JdGVtUHJvcChfcmVmKXt2YXIgaXRlbT1fcmVmLml0ZW0scmVzdEluZm89KDAsb2JqZWN0V2l0aG91dFByb3BlcnRpZXMuWikoX3JlZix3YXJuVXRpbF9leGNsdWRlZCk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZXN0SW5mbywiaXRlbSIse2dldDpmdW5jdGlvbigpe3JldHVybigwLHdhcm5pbmcuWlApKCExLCJgaW5mby5pdGVtYCBpcyBkZXByZWNhdGVkIHNpbmNlIHdlIHdpbGwgbW92ZSB0byBmdW5jdGlvbiBjb21wb25lbnQgdGhhdCBub3QgcHJvdmlkZXMgUmVhY3QgTm9kZSBpbnN0YW5jZSBpbiBmdXR1cmUuIiksaXRlbX19KSxyZXN0SW5mb312YXIgTWVudUl0ZW1fZXhjbHVkZWQ9WyJ0aXRsZSIsImF0dHJpYnV0ZSIsImVsZW1lbnRSZWYiXSxfZXhjbHVkZWQyPVsic3R5bGUiLCJjbGFzc05hbWUiLCJldmVudEtleSIsIndhcm5LZXkiLCJkaXNhYmxlZCIsIml0ZW1JY29uIiwiY2hpbGRyZW4iLCJyb2xlIiwib25Nb3VzZUVudGVyIiwib25Nb3VzZUxlYXZlIiwib25DbGljayIsIm9uS2V5RG93biIsIm9uRm9jdXMiXSxfZXhjbHVkZWQzPVsiYWN0aXZlIl0sTGVnYWN5TWVudUl0ZW09ZnVuY3Rpb24oX1JlYWN0JENvbXBvbmVudCl7KDAsaW5oZXJpdHMuWikoTGVnYWN5TWVudUl0ZW0sX1JlYWN0JENvbXBvbmVudCk7dmFyIF9zdXBlcj0oMCxjcmVhdGVTdXBlci5aKShMZWdhY3lNZW51SXRlbSk7ZnVuY3Rpb24gTGVnYWN5TWVudUl0ZW0oKXtyZXR1cm4oMCxjbGFzc0NhbGxDaGVjay5aKSh0aGlzLExlZ2FjeU1lbnVJdGVtKSxfc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybigwLGNyZWF0ZUNsYXNzLlopKExlZ2FjeU1lbnVJdGVtLFt7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIF90aGlzJHByb3BzPXRoaXMucHJvcHMsdGl0bGU9X3RoaXMkcHJvcHMudGl0bGUsYXR0cmlidXRlPV90aGlzJHByb3BzLmF0dHJpYnV0ZSxlbGVtZW50UmVmPV90aGlzJHByb3BzLmVsZW1lbnRSZWYscmVzdFByb3BzPSgwLG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLlopKF90aGlzJHByb3BzLE1lbnVJdGVtX2V4Y2x1ZGVkKSxwYXNzZWRQcm9wcz0oMCxlc19vbWl0LlopKHJlc3RQcm9wcyxbImV2ZW50S2V5IiwicG9wdXBDbGFzc05hbWUiLCJwb3B1cE9mZnNldCIsIm9uVGl0bGVDbGljayJdKTtyZXR1cm4oMCx3YXJuaW5nLlpQKSghYXR0cmlidXRlLCJgYXR0cmlidXRlYCBvZiBNZW51Lkl0ZW0gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHBhc3MgYXR0cmlidXRlIGRpcmVjdGx5LiIpLHJlYWN0LmNyZWF0ZUVsZW1lbnQoZXMuWi5JdGVtLCgwLGVzbV9leHRlbmRzLlopKHt9LGF0dHJpYnV0ZSx7dGl0bGU6InN0cmluZyI9PXR5cGVvZiB0aXRsZT90aXRsZTp2b2lkIDB9LHBhc3NlZFByb3BzLHtyZWY6ZWxlbWVudFJlZn0pKX19XSksTGVnYWN5TWVudUl0ZW19KHJlYWN0LkNvbXBvbmVudCksSW50ZXJuYWxNZW51SXRlbT1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7dmFyIHN0eWxlPXByb3BzLnN0eWxlLGNsYXNzTmFtZT1wcm9wcy5jbGFzc05hbWUsZXZlbnRLZXk9cHJvcHMuZXZlbnRLZXksZGlzYWJsZWQ9KHByb3BzLndhcm5LZXkscHJvcHMuZGlzYWJsZWQpLGl0ZW1JY29uPXByb3BzLml0ZW1JY29uLGNoaWxkcmVuPXByb3BzLmNoaWxkcmVuLHJvbGU9cHJvcHMucm9sZSxvbk1vdXNlRW50ZXI9cHJvcHMub25Nb3VzZUVudGVyLG9uTW91c2VMZWF2ZT1wcm9wcy5vbk1vdXNlTGVhdmUsb25DbGljaz1wcm9wcy5vbkNsaWNrLG9uS2V5RG93bj1wcm9wcy5vbktleURvd24sb25Gb2N1cz1wcm9wcy5vbkZvY3VzLHJlc3RQcm9wcz0oMCxvYmplY3RXaXRob3V0UHJvcGVydGllcy5aKShwcm9wcyxfZXhjbHVkZWQyKSxkb21EYXRhSWQ9dXNlTWVudUlkKGV2ZW50S2V5KSxfUmVhY3QkdXNlQ29udGV4dD1yZWFjdC51c2VDb250ZXh0KE1lbnVDb250ZXh0KSxwcmVmaXhDbHM9X1JlYWN0JHVzZUNvbnRleHQucHJlZml4Q2xzLG9uSXRlbUNsaWNrPV9SZWFjdCR1c2VDb250ZXh0Lm9uSXRlbUNsaWNrLGNvbnRleHREaXNhYmxlZD1fUmVhY3QkdXNlQ29udGV4dC5kaXNhYmxlZCxvdmVyZmxvd0Rpc2FibGVkPV9SZWFjdCR1c2VDb250ZXh0Lm92ZXJmbG93RGlzYWJsZWQsY29udGV4dEl0ZW1JY29uPV9SZWFjdCR1c2VDb250ZXh0Lml0ZW1JY29uLHNlbGVjdGVkS2V5cz1fUmVhY3QkdXNlQ29udGV4dC5zZWxlY3RlZEtleXMsb25BY3RpdmU9X1JlYWN0JHVzZUNvbnRleHQub25BY3RpdmUsX2ludGVybmFsUmVuZGVyTWVudUl0ZW09cmVhY3QudXNlQ29udGV4dChQcml2YXRlQ29udGV4dCkuX2ludGVybmFsUmVuZGVyTWVudUl0ZW0saXRlbUNscz0iIi5jb25jYXQocHJlZml4Q2xzLCItaXRlbSIpLGxlZ2FjeU1lbnVJdGVtUmVmPXJlYWN0LnVzZVJlZigpLGVsZW1lbnRSZWY9cmVhY3QudXNlUmVmKCksbWVyZ2VkRGlzYWJsZWQ9Y29udGV4dERpc2FibGVkfHxkaXNhYmxlZCxtZXJnZWRFbGVSZWY9KDAsZXNfcmVmLngxKShyZWYsZWxlbWVudFJlZiksY29ubmVjdGVkS2V5cz11c2VGdWxsUGF0aChldmVudEtleSksZ2V0RXZlbnRJbmZvPWZ1bmN0aW9uKGUpe3JldHVybntrZXk6ZXZlbnRLZXksa2V5UGF0aDooMCx0b0NvbnN1bWFibGVBcnJheS5aKShjb25uZWN0ZWRLZXlzKS5yZXZlcnNlKCksaXRlbTpsZWdhY3lNZW51SXRlbVJlZi5jdXJyZW50LGRvbUV2ZW50OmV9fSxfdXNlQWN0aXZlPXVzZUFjdGl2ZShldmVudEtleSxtZXJnZWREaXNhYmxlZCxvbk1vdXNlRW50ZXIsb25Nb3VzZUxlYXZlKSxhY3RpdmU9X3VzZUFjdGl2ZS5hY3RpdmUsYWN0aXZlUHJvcHM9KDAsb2JqZWN0V2l0aG91dFByb3BlcnRpZXMuWikoX3VzZUFjdGl2ZSxfZXhjbHVkZWQzKSxzZWxlY3RlZD1zZWxlY3RlZEtleXMuaW5jbHVkZXMoZXZlbnRLZXkpLGRpcmVjdGlvblN0eWxlPXVzZURpcmVjdGlvblN0eWxlKGNvbm5lY3RlZEtleXMubGVuZ3RoKSxvcHRpb25Sb2xlUHJvcHM9e307Im9wdGlvbiI9PT1wcm9wcy5yb2xlJiYob3B0aW9uUm9sZVByb3BzWyJhcmlhLXNlbGVjdGVkIl09c2VsZWN0ZWQpO3ZhciByZW5kZXJOb2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQoTGVnYWN5TWVudUl0ZW0sKDAsZXNtX2V4dGVuZHMuWikoe3JlZjpsZWdhY3lNZW51SXRlbVJlZixlbGVtZW50UmVmOm1lcmdlZEVsZVJlZixyb2xlOm51bGw9PT1yb2xlPyJub25lIjpyb2xlfHwibWVudWl0ZW0iLHRhYkluZGV4OmRpc2FibGVkP251bGw6LTEsImRhdGEtbWVudS1pZCI6b3ZlcmZsb3dEaXNhYmxlZCYmZG9tRGF0YUlkP251bGw6ZG9tRGF0YUlkfSwoMCxlc19vbWl0LlopKHJlc3RQcm9wcyxbImV4dHJhIl0pLGFjdGl2ZVByb3BzLG9wdGlvblJvbGVQcm9wcyx7Y29tcG9uZW50OiJsaSIsImFyaWEtZGlzYWJsZWQiOmRpc2FibGVkLHN0eWxlOigwLG9iamVjdFNwcmVhZDIuWikoKDAsb2JqZWN0U3ByZWFkMi5aKSh7fSxkaXJlY3Rpb25TdHlsZSksc3R5bGUpLGNsYXNzTmFtZTpjbGFzc25hbWVzX2RlZmF1bHQoKShpdGVtQ2xzLCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKHt9LCIiLmNvbmNhdChpdGVtQ2xzLCItYWN0aXZlIiksYWN0aXZlKSwiIi5jb25jYXQoaXRlbUNscywiLXNlbGVjdGVkIiksc2VsZWN0ZWQpLCIiLmNvbmNhdChpdGVtQ2xzLCItZGlzYWJsZWQiKSxtZXJnZWREaXNhYmxlZCksY2xhc3NOYW1lKSxvbkNsaWNrOmZ1bmN0aW9uKGUpe2lmKCFtZXJnZWREaXNhYmxlZCl7dmFyIGluZm89Z2V0RXZlbnRJbmZvKGUpO251bGw9PW9uQ2xpY2t8fG9uQ2xpY2sod2Fybkl0ZW1Qcm9wKGluZm8pKSxvbkl0ZW1DbGljayhpbmZvKX19LG9uS2V5RG93bjpmdW5jdGlvbihlKXtpZihudWxsPT1vbktleURvd258fG9uS2V5RG93bihlKSxlLndoaWNoPT09S2V5Q29kZS5aLkVOVEVSKXt2YXIgaW5mbz1nZXRFdmVudEluZm8oZSk7bnVsbD09b25DbGlja3x8b25DbGljayh3YXJuSXRlbVByb3AoaW5mbykpLG9uSXRlbUNsaWNrKGluZm8pfX0sb25Gb2N1czpmdW5jdGlvbihlKXtvbkFjdGl2ZShldmVudEtleSksbnVsbD09b25Gb2N1c3x8b25Gb2N1cyhlKX19KSxjaGlsZHJlbixyZWFjdC5jcmVhdGVFbGVtZW50KEljb24se3Byb3BzOigwLG9iamVjdFNwcmVhZDIuWikoKDAsb2JqZWN0U3ByZWFkMi5aKSh7fSxwcm9wcykse30se2lzU2VsZWN0ZWQ6c2VsZWN0ZWR9KSxpY29uOml0ZW1JY29ufHxjb250ZXh0SXRlbUljb259KSk7cmV0dXJuIF9pbnRlcm5hbFJlbmRlck1lbnVJdGVtJiYocmVuZGVyTm9kZT1faW50ZXJuYWxSZW5kZXJNZW51SXRlbShyZW5kZXJOb2RlLHByb3BzLHtzZWxlY3RlZDpzZWxlY3RlZH0pKSxyZW5kZXJOb2RlfSksZXNfTWVudUl0ZW09cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3ZhciBldmVudEtleT1wcm9wcy5ldmVudEtleSxtZWFzdXJlPXVzZU1lYXN1cmUoKSxjb25uZWN0ZWRLZXlQYXRoPXVzZUZ1bGxQYXRoKGV2ZW50S2V5KTtyZXR1cm4ocmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uKCl7aWYobWVhc3VyZSlyZXR1cm4gbWVhc3VyZS5yZWdpc3RlclBhdGgoZXZlbnRLZXksY29ubmVjdGVkS2V5UGF0aCksZnVuY3Rpb24oKXttZWFzdXJlLnVucmVnaXN0ZXJQYXRoKGV2ZW50S2V5LGNvbm5lY3RlZEtleVBhdGgpfX0sW2Nvbm5lY3RlZEtleVBhdGhdKSxtZWFzdXJlKT9udWxsOnJlYWN0LmNyZWF0ZUVsZW1lbnQoSW50ZXJuYWxNZW51SXRlbSwoMCxlc21fZXh0ZW5kcy5aKSh7fSxwcm9wcyx7cmVmOnJlZn0pKX0pLFN1Yk1lbnVMaXN0X2V4Y2x1ZGVkPVsiY2xhc3NOYW1lIiwiY2hpbGRyZW4iXSxTdWJNZW51TGlzdD1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKF9yZWYscmVmKXt2YXIgY2xhc3NOYW1lPV9yZWYuY2xhc3NOYW1lLGNoaWxkcmVuPV9yZWYuY2hpbGRyZW4scmVzdFByb3BzPSgwLG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLlopKF9yZWYsU3ViTWVudUxpc3RfZXhjbHVkZWQpLF9SZWFjdCR1c2VDb250ZXh0PXJlYWN0LnVzZUNvbnRleHQoTWVudUNvbnRleHQpLHByZWZpeENscz1fUmVhY3QkdXNlQ29udGV4dC5wcmVmaXhDbHMsbW9kZT1fUmVhY3QkdXNlQ29udGV4dC5tb2RlLHJ0bD1fUmVhY3QkdXNlQ29udGV4dC5ydGw7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoInVsIiwoMCxlc21fZXh0ZW5kcy5aKSh7Y2xhc3NOYW1lOmNsYXNzbmFtZXNfZGVmYXVsdCgpKHByZWZpeENscyxydGwmJiIiLmNvbmNhdChwcmVmaXhDbHMsIi1ydGwiKSwiIi5jb25jYXQocHJlZml4Q2xzLCItc3ViIiksIiIuY29uY2F0KHByZWZpeENscywiLSIpLmNvbmNhdCgiaW5saW5lIj09PW1vZGU/ImlubGluZSI6InZlcnRpY2FsIiksY2xhc3NOYW1lKSxyb2xlOiJtZW51In0scmVzdFByb3BzLHsiZGF0YS1tZW51LWxpc3QiOiEwLHJlZjpyZWZ9KSxjaGlsZHJlbil9KTtTdWJNZW51TGlzdC5kaXNwbGF5TmFtZT0iU3ViTWVudUxpc3QiO3ZhciB0b0FycmF5PV9fd2VicGFja19yZXF1aXJlX18oNTAzNDQpO2Z1bmN0aW9uIHBhcnNlQ2hpbGRyZW4oY2hpbGRyZW4sa2V5UGF0aCl7cmV0dXJuKDAsdG9BcnJheS5aKShjaGlsZHJlbikubWFwKGZ1bmN0aW9uKGNoaWxkLGluZGV4KXtpZihyZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZCkpe3ZhciBfZXZlbnRLZXksX2NoaWxkJHByb3BzLGtleT1jaGlsZC5rZXksZXZlbnRLZXk9bnVsbCE9PShfZXZlbnRLZXk9bnVsbD09PShfY2hpbGQkcHJvcHM9Y2hpbGQucHJvcHMpfHx2b2lkIDA9PT1fY2hpbGQkcHJvcHM/dm9pZCAwOl9jaGlsZCRwcm9wcy5ldmVudEtleSkmJnZvaWQgMCE9PV9ldmVudEtleT9fZXZlbnRLZXk6a2V5O251bGw9PWV2ZW50S2V5JiYoZXZlbnRLZXk9InRtcF9rZXktIi5jb25jYXQoW10uY29uY2F0KCgwLHRvQ29uc3VtYWJsZUFycmF5LlopKGtleVBhdGgpLFtpbmRleF0pLmpvaW4oIi0iKSkpO3ZhciBjbG9uZVByb3BzPXtrZXk6ZXZlbnRLZXksZXZlbnRLZXk6ZXZlbnRLZXl9O3JldHVybiByZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsY2xvbmVQcm9wcyl9cmV0dXJuIGNoaWxkfSl9dmFyIHRyaWdnZXJfZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0MDIyOCksYXV0b0FkanVzdE92ZXJmbG93PXthZGp1c3RYOjEsYWRqdXN0WToxfSxwbGFjZW1lbnRzPXt0b3BMZWZ0Ontwb2ludHM6WyJibCIsInRsIl0sb3ZlcmZsb3c6YXV0b0FkanVzdE92ZXJmbG93fSx0b3BSaWdodDp7cG9pbnRzOlsiYnIiLCJ0ciJdLG92ZXJmbG93OmF1dG9BZGp1c3RPdmVyZmxvd30sYm90dG9tTGVmdDp7cG9pbnRzOlsidGwiLCJibCJdLG92ZXJmbG93OmF1dG9BZGp1c3RPdmVyZmxvd30sYm90dG9tUmlnaHQ6e3BvaW50czpbInRyIiwiYnIiXSxvdmVyZmxvdzphdXRvQWRqdXN0T3ZlcmZsb3d9LGxlZnRUb3A6e3BvaW50czpbInRyIiwidGwiXSxvdmVyZmxvdzphdXRvQWRqdXN0T3ZlcmZsb3d9LGxlZnRCb3R0b206e3BvaW50czpbImJyIiwiYmwiXSxvdmVyZmxvdzphdXRvQWRqdXN0T3ZlcmZsb3d9LHJpZ2h0VG9wOntwb2ludHM6WyJ0bCIsInRyIl0sb3ZlcmZsb3c6YXV0b0FkanVzdE92ZXJmbG93fSxyaWdodEJvdHRvbTp7cG9pbnRzOlsiYmwiLCJiciJdLG92ZXJmbG93OmF1dG9BZGp1c3RPdmVyZmxvd319LHBsYWNlbWVudHNSdGw9e3RvcExlZnQ6e3BvaW50czpbImJsIiwidGwiXSxvdmVyZmxvdzphdXRvQWRqdXN0T3ZlcmZsb3d9LHRvcFJpZ2h0Ontwb2ludHM6WyJiciIsInRyIl0sb3ZlcmZsb3c6YXV0b0FkanVzdE92ZXJmbG93fSxib3R0b21MZWZ0Ontwb2ludHM6WyJ0bCIsImJsIl0sb3ZlcmZsb3c6YXV0b0FkanVzdE92ZXJmbG93fSxib3R0b21SaWdodDp7cG9pbnRzOlsidHIiLCJiciJdLG92ZXJmbG93OmF1dG9BZGp1c3RPdmVyZmxvd30scmlnaHRUb3A6e3BvaW50czpbInRyIiwidGwiXSxvdmVyZmxvdzphdXRvQWRqdXN0T3ZlcmZsb3d9LHJpZ2h0Qm90dG9tOntwb2ludHM6WyJiciIsImJsIl0sb3ZlcmZsb3c6YXV0b0FkanVzdE92ZXJmbG93fSxsZWZ0VG9wOntwb2ludHM6WyJ0bCIsInRyIl0sb3ZlcmZsb3c6YXV0b0FkanVzdE92ZXJmbG93fSxsZWZ0Qm90dG9tOntwb2ludHM6WyJibCIsImJyIl0sb3ZlcmZsb3c6YXV0b0FkanVzdE92ZXJmbG93fX07ZnVuY3Rpb24gZ2V0TW90aW9uKG1vZGUsbW90aW9uLGRlZmF1bHRNb3Rpb25zKXtyZXR1cm4gbW90aW9ufHwoZGVmYXVsdE1vdGlvbnM/ZGVmYXVsdE1vdGlvbnNbbW9kZV18fGRlZmF1bHRNb3Rpb25zLm90aGVyOnZvaWQgMCl9dmFyIHBvcHVwUGxhY2VtZW50TWFwPXtob3Jpem9udGFsOiJib3R0b21MZWZ0Iix2ZXJ0aWNhbDoicmlnaHRUb3AiLCJ2ZXJ0aWNhbC1sZWZ0IjoicmlnaHRUb3AiLCJ2ZXJ0aWNhbC1yaWdodCI6ImxlZnRUb3AifTtmdW5jdGlvbiBQb3B1cFRyaWdnZXIoX3JlZil7dmFyIHByZWZpeENscz1fcmVmLnByZWZpeENscyx2aXNpYmxlPV9yZWYudmlzaWJsZSxjaGlsZHJlbj1fcmVmLmNoaWxkcmVuLHBvcHVwPV9yZWYucG9wdXAscG9wdXBTdHlsZT1fcmVmLnBvcHVwU3R5bGUscG9wdXBDbGFzc05hbWU9X3JlZi5wb3B1cENsYXNzTmFtZSxwb3B1cE9mZnNldD1fcmVmLnBvcHVwT2Zmc2V0LGRpc2FibGVkPV9yZWYuZGlzYWJsZWQsbW9kZT1fcmVmLm1vZGUsb25WaXNpYmxlQ2hhbmdlPV9yZWYub25WaXNpYmxlQ2hhbmdlLF9SZWFjdCR1c2VDb250ZXh0PXJlYWN0LnVzZUNvbnRleHQoTWVudUNvbnRleHQpLGdldFBvcHVwQ29udGFpbmVyPV9SZWFjdCR1c2VDb250ZXh0LmdldFBvcHVwQ29udGFpbmVyLHJ0bD1fUmVhY3QkdXNlQ29udGV4dC5ydGwsc3ViTWVudU9wZW5EZWxheT1fUmVhY3QkdXNlQ29udGV4dC5zdWJNZW51T3BlbkRlbGF5LHN1Yk1lbnVDbG9zZURlbGF5PV9SZWFjdCR1c2VDb250ZXh0LnN1Yk1lbnVDbG9zZURlbGF5LGJ1aWx0aW5QbGFjZW1lbnRzPV9SZWFjdCR1c2VDb250ZXh0LmJ1aWx0aW5QbGFjZW1lbnRzLHRyaWdnZXJTdWJNZW51QWN0aW9uPV9SZWFjdCR1c2VDb250ZXh0LnRyaWdnZXJTdWJNZW51QWN0aW9uLGZvcmNlU3ViTWVudVJlbmRlcj1fUmVhY3QkdXNlQ29udGV4dC5mb3JjZVN1Yk1lbnVSZW5kZXIscm9vdENsYXNzTmFtZT1fUmVhY3QkdXNlQ29udGV4dC5yb290Q2xhc3NOYW1lLG1vdGlvbj1fUmVhY3QkdXNlQ29udGV4dC5tb3Rpb24sZGVmYXVsdE1vdGlvbnM9X1JlYWN0JHVzZUNvbnRleHQuZGVmYXVsdE1vdGlvbnMsX1JlYWN0JHVzZVN0YXRlPXJlYWN0LnVzZVN0YXRlKCExKSxfUmVhY3QkdXNlU3RhdGUyPSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlLDIpLGlubmVyVmlzaWJsZT1fUmVhY3QkdXNlU3RhdGUyWzBdLHNldElubmVyVmlzaWJsZT1fUmVhY3QkdXNlU3RhdGUyWzFdLHBsYWNlbWVudD1ydGw/KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LHBsYWNlbWVudHNSdGwpLGJ1aWx0aW5QbGFjZW1lbnRzKTooMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe30scGxhY2VtZW50cyksYnVpbHRpblBsYWNlbWVudHMpLHBvcHVwUGxhY2VtZW50PXBvcHVwUGxhY2VtZW50TWFwW21vZGVdLHRhcmdldE1vdGlvbj1nZXRNb3Rpb24obW9kZSxtb3Rpb24sZGVmYXVsdE1vdGlvbnMpLHRhcmdldE1vdGlvblJlZj1yZWFjdC51c2VSZWYodGFyZ2V0TW90aW9uKTsiaW5saW5lIiE9PW1vZGUmJih0YXJnZXRNb3Rpb25SZWYuY3VycmVudD10YXJnZXRNb3Rpb24pO3ZhciBtZXJnZWRNb3Rpb249KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LHRhcmdldE1vdGlvblJlZi5jdXJyZW50KSx7fSx7bGVhdmVkQ2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi1oaWRkZW4iKSxyZW1vdmVPbkxlYXZlOiExLG1vdGlvbkFwcGVhcjohMH0pLHZpc2libGVSZWY9cmVhY3QudXNlUmVmKCk7cmV0dXJuIHJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbigpe3JldHVybiB2aXNpYmxlUmVmLmN1cnJlbnQ9KDAscmFmLlopKGZ1bmN0aW9uKCl7c2V0SW5uZXJWaXNpYmxlKHZpc2libGUpfSksZnVuY3Rpb24oKXtyYWYuWi5jYW5jZWwodmlzaWJsZVJlZi5jdXJyZW50KX19LFt2aXNpYmxlXSkscmVhY3QuY3JlYXRlRWxlbWVudCh0cmlnZ2VyX2VzLlose3ByZWZpeENsczpwcmVmaXhDbHMscG9wdXBDbGFzc05hbWU6Y2xhc3NuYW1lc19kZWZhdWx0KCkoIiIuY29uY2F0KHByZWZpeENscywiLXBvcHVwIiksKDAsZGVmaW5lUHJvcGVydHkuWikoe30sIiIuY29uY2F0KHByZWZpeENscywiLXJ0bCIpLHJ0bCkscG9wdXBDbGFzc05hbWUscm9vdENsYXNzTmFtZSksc3RyZXRjaDoiaG9yaXpvbnRhbCI9PT1tb2RlPyJtaW5XaWR0aCI6bnVsbCxnZXRQb3B1cENvbnRhaW5lcjpnZXRQb3B1cENvbnRhaW5lcixidWlsdGluUGxhY2VtZW50czpwbGFjZW1lbnQscG9wdXBQbGFjZW1lbnQ6cG9wdXBQbGFjZW1lbnQscG9wdXBWaXNpYmxlOmlubmVyVmlzaWJsZSxwb3B1cDpwb3B1cCxwb3B1cFN0eWxlOnBvcHVwU3R5bGUscG9wdXBBbGlnbjpwb3B1cE9mZnNldCYme29mZnNldDpwb3B1cE9mZnNldH0sYWN0aW9uOmRpc2FibGVkP1tdOlt0cmlnZ2VyU3ViTWVudUFjdGlvbl0sbW91c2VFbnRlckRlbGF5OnN1Yk1lbnVPcGVuRGVsYXksbW91c2VMZWF2ZURlbGF5OnN1Yk1lbnVDbG9zZURlbGF5LG9uUG9wdXBWaXNpYmxlQ2hhbmdlOm9uVmlzaWJsZUNoYW5nZSxmb3JjZVJlbmRlcjpmb3JjZVN1Yk1lbnVSZW5kZXIscG9wdXBNb3Rpb246bWVyZ2VkTW90aW9uLGZyZXNoOiEwfSxjaGlsZHJlbil9dmFyIHJjX21vdGlvbl9lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDgyMjI1KTtmdW5jdGlvbiBJbmxpbmVTdWJNZW51TGlzdChfcmVmKXt2YXIgaWQ9X3JlZi5pZCxvcGVuPV9yZWYub3BlbixrZXlQYXRoPV9yZWYua2V5UGF0aCxjaGlsZHJlbj1fcmVmLmNoaWxkcmVuLGZpeGVkTW9kZT0iaW5saW5lIixfUmVhY3QkdXNlQ29udGV4dD1yZWFjdC51c2VDb250ZXh0KE1lbnVDb250ZXh0KSxwcmVmaXhDbHM9X1JlYWN0JHVzZUNvbnRleHQucHJlZml4Q2xzLGZvcmNlU3ViTWVudVJlbmRlcj1fUmVhY3QkdXNlQ29udGV4dC5mb3JjZVN1Yk1lbnVSZW5kZXIsbW90aW9uPV9SZWFjdCR1c2VDb250ZXh0Lm1vdGlvbixkZWZhdWx0TW90aW9ucz1fUmVhY3QkdXNlQ29udGV4dC5kZWZhdWx0TW90aW9ucyxtb2RlPV9SZWFjdCR1c2VDb250ZXh0Lm1vZGUsc2FtZU1vZGVSZWY9cmVhY3QudXNlUmVmKCExKTtzYW1lTW9kZVJlZi5jdXJyZW50PW1vZGU9PT1maXhlZE1vZGU7dmFyIF9SZWFjdCR1c2VTdGF0ZT1yZWFjdC51c2VTdGF0ZSghc2FtZU1vZGVSZWYuY3VycmVudCksX1JlYWN0JHVzZVN0YXRlMj0oMCxzbGljZWRUb0FycmF5LlopKF9SZWFjdCR1c2VTdGF0ZSwyKSxkZXN0cm95PV9SZWFjdCR1c2VTdGF0ZTJbMF0sc2V0RGVzdHJveT1fUmVhY3QkdXNlU3RhdGUyWzFdLG1lcmdlZE9wZW49ISFzYW1lTW9kZVJlZi5jdXJyZW50JiZvcGVuO3JlYWN0LnVzZUVmZmVjdChmdW5jdGlvbigpe3NhbWVNb2RlUmVmLmN1cnJlbnQmJnNldERlc3Ryb3koITEpfSxbbW9kZV0pO3ZhciBtZXJnZWRNb3Rpb249KDAsb2JqZWN0U3ByZWFkMi5aKSh7fSxnZXRNb3Rpb24oZml4ZWRNb2RlLG1vdGlvbixkZWZhdWx0TW90aW9ucykpO2tleVBhdGgubGVuZ3RoPjEmJihtZXJnZWRNb3Rpb24ubW90aW9uQXBwZWFyPSExKTt2YXIgb3JpZ2luT25WaXNpYmxlQ2hhbmdlZD1tZXJnZWRNb3Rpb24ub25WaXNpYmxlQ2hhbmdlZDtyZXR1cm4obWVyZ2VkTW90aW9uLm9uVmlzaWJsZUNoYW5nZWQ9ZnVuY3Rpb24obmV3VmlzaWJsZSl7cmV0dXJuIHNhbWVNb2RlUmVmLmN1cnJlbnR8fG5ld1Zpc2libGV8fHNldERlc3Ryb3koITApLG51bGw9PW9yaWdpbk9uVmlzaWJsZUNoYW5nZWQ/dm9pZCAwOm9yaWdpbk9uVmlzaWJsZUNoYW5nZWQobmV3VmlzaWJsZSl9LGRlc3Ryb3kpP251bGw6cmVhY3QuY3JlYXRlRWxlbWVudChJbmhlcml0YWJsZUNvbnRleHRQcm92aWRlcix7bW9kZTpmaXhlZE1vZGUsbG9ja2VkOiFzYW1lTW9kZVJlZi5jdXJyZW50fSxyZWFjdC5jcmVhdGVFbGVtZW50KHJjX21vdGlvbl9lcy5aUCwoMCxlc21fZXh0ZW5kcy5aKSh7dmlzaWJsZTptZXJnZWRPcGVufSxtZXJnZWRNb3Rpb24se2ZvcmNlUmVuZGVyOmZvcmNlU3ViTWVudVJlbmRlcixyZW1vdmVPbkxlYXZlOiExLGxlYXZlZENsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItaGlkZGVuIil9KSxmdW5jdGlvbihfcmVmMil7dmFyIG1vdGlvbkNsYXNzTmFtZT1fcmVmMi5jbGFzc05hbWUsbW90aW9uU3R5bGU9X3JlZjIuc3R5bGU7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoU3ViTWVudUxpc3Qse2lkOmlkLGNsYXNzTmFtZTptb3Rpb25DbGFzc05hbWUsc3R5bGU6bW90aW9uU3R5bGV9LGNoaWxkcmVuKX0pKX12YXIgU3ViTWVudV9leGNsdWRlZD1bInN0eWxlIiwiY2xhc3NOYW1lIiwidGl0bGUiLCJldmVudEtleSIsIndhcm5LZXkiLCJkaXNhYmxlZCIsImludGVybmFsUG9wdXBDbG9zZSIsImNoaWxkcmVuIiwiaXRlbUljb24iLCJleHBhbmRJY29uIiwicG9wdXBDbGFzc05hbWUiLCJwb3B1cE9mZnNldCIsInBvcHVwU3R5bGUiLCJvbkNsaWNrIiwib25Nb3VzZUVudGVyIiwib25Nb3VzZUxlYXZlIiwib25UaXRsZUNsaWNrIiwib25UaXRsZU1vdXNlRW50ZXIiLCJvblRpdGxlTW91c2VMZWF2ZSJdLFN1Yk1lbnVfZXhjbHVkZWQyPVsiYWN0aXZlIl0sSW50ZXJuYWxTdWJNZW51PXJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24ocHJvcHMscmVmKXt2YXIgc3R5bGU9cHJvcHMuc3R5bGUsY2xhc3NOYW1lPXByb3BzLmNsYXNzTmFtZSx0aXRsZT1wcm9wcy50aXRsZSxldmVudEtleT1wcm9wcy5ldmVudEtleSxkaXNhYmxlZD0ocHJvcHMud2FybktleSxwcm9wcy5kaXNhYmxlZCksaW50ZXJuYWxQb3B1cENsb3NlPXByb3BzLmludGVybmFsUG9wdXBDbG9zZSxjaGlsZHJlbj1wcm9wcy5jaGlsZHJlbixpdGVtSWNvbj1wcm9wcy5pdGVtSWNvbixleHBhbmRJY29uPXByb3BzLmV4cGFuZEljb24scG9wdXBDbGFzc05hbWU9cHJvcHMucG9wdXBDbGFzc05hbWUscG9wdXBPZmZzZXQ9cHJvcHMucG9wdXBPZmZzZXQscG9wdXBTdHlsZT1wcm9wcy5wb3B1cFN0eWxlLG9uQ2xpY2s9cHJvcHMub25DbGljayxvbk1vdXNlRW50ZXI9cHJvcHMub25Nb3VzZUVudGVyLG9uTW91c2VMZWF2ZT1wcm9wcy5vbk1vdXNlTGVhdmUsb25UaXRsZUNsaWNrPXByb3BzLm9uVGl0bGVDbGljayxvblRpdGxlTW91c2VFbnRlcj1wcm9wcy5vblRpdGxlTW91c2VFbnRlcixvblRpdGxlTW91c2VMZWF2ZT1wcm9wcy5vblRpdGxlTW91c2VMZWF2ZSxyZXN0UHJvcHM9KDAsb2JqZWN0V2l0aG91dFByb3BlcnRpZXMuWikocHJvcHMsU3ViTWVudV9leGNsdWRlZCksZG9tRGF0YUlkPXVzZU1lbnVJZChldmVudEtleSksX1JlYWN0JHVzZUNvbnRleHQ9cmVhY3QudXNlQ29udGV4dChNZW51Q29udGV4dCkscHJlZml4Q2xzPV9SZWFjdCR1c2VDb250ZXh0LnByZWZpeENscyxtb2RlPV9SZWFjdCR1c2VDb250ZXh0Lm1vZGUsb3BlbktleXM9X1JlYWN0JHVzZUNvbnRleHQub3BlbktleXMsY29udGV4dERpc2FibGVkPV9SZWFjdCR1c2VDb250ZXh0LmRpc2FibGVkLG92ZXJmbG93RGlzYWJsZWQ9X1JlYWN0JHVzZUNvbnRleHQub3ZlcmZsb3dEaXNhYmxlZCxhY3RpdmVLZXk9X1JlYWN0JHVzZUNvbnRleHQuYWN0aXZlS2V5LHNlbGVjdGVkS2V5cz1fUmVhY3QkdXNlQ29udGV4dC5zZWxlY3RlZEtleXMsY29udGV4dEl0ZW1JY29uPV9SZWFjdCR1c2VDb250ZXh0Lml0ZW1JY29uLGNvbnRleHRFeHBhbmRJY29uPV9SZWFjdCR1c2VDb250ZXh0LmV4cGFuZEljb24sb25JdGVtQ2xpY2s9X1JlYWN0JHVzZUNvbnRleHQub25JdGVtQ2xpY2ssb25PcGVuQ2hhbmdlPV9SZWFjdCR1c2VDb250ZXh0Lm9uT3BlbkNoYW5nZSxvbkFjdGl2ZT1fUmVhY3QkdXNlQ29udGV4dC5vbkFjdGl2ZSxfaW50ZXJuYWxSZW5kZXJTdWJNZW51SXRlbT1yZWFjdC51c2VDb250ZXh0KFByaXZhdGVDb250ZXh0KS5faW50ZXJuYWxSZW5kZXJTdWJNZW51SXRlbSxpc1N1YlBhdGhLZXk9cmVhY3QudXNlQ29udGV4dChQYXRoVXNlckNvbnRleHQpLmlzU3ViUGF0aEtleSxjb25uZWN0ZWRQYXRoPXVzZUZ1bGxQYXRoKCksc3ViTWVudVByZWZpeENscz0iIi5jb25jYXQocHJlZml4Q2xzLCItc3VibWVudSIpLG1lcmdlZERpc2FibGVkPWNvbnRleHREaXNhYmxlZHx8ZGlzYWJsZWQsZWxlbWVudFJlZj1yZWFjdC51c2VSZWYoKSxwb3B1cFJlZj1yZWFjdC51c2VSZWYoKSxtZXJnZWRFeHBhbmRJY29uPW51bGwhPWV4cGFuZEljb24/ZXhwYW5kSWNvbjpjb250ZXh0RXhwYW5kSWNvbixvcmlnaW5PcGVuPW9wZW5LZXlzLmluY2x1ZGVzKGV2ZW50S2V5KSxvcGVuPSFvdmVyZmxvd0Rpc2FibGVkJiZvcmlnaW5PcGVuLGNoaWxkcmVuU2VsZWN0ZWQ9aXNTdWJQYXRoS2V5KHNlbGVjdGVkS2V5cyxldmVudEtleSksX3VzZUFjdGl2ZT11c2VBY3RpdmUoZXZlbnRLZXksbWVyZ2VkRGlzYWJsZWQsb25UaXRsZU1vdXNlRW50ZXIsb25UaXRsZU1vdXNlTGVhdmUpLGFjdGl2ZT1fdXNlQWN0aXZlLmFjdGl2ZSxhY3RpdmVQcm9wcz0oMCxvYmplY3RXaXRob3V0UHJvcGVydGllcy5aKShfdXNlQWN0aXZlLFN1Yk1lbnVfZXhjbHVkZWQyKSxfUmVhY3QkdXNlU3RhdGU9cmVhY3QudXNlU3RhdGUoITEpLF9SZWFjdCR1c2VTdGF0ZTI9KDAsc2xpY2VkVG9BcnJheS5aKShfUmVhY3QkdXNlU3RhdGUsMiksY2hpbGRyZW5BY3RpdmU9X1JlYWN0JHVzZVN0YXRlMlswXSxzZXRDaGlsZHJlbkFjdGl2ZT1fUmVhY3QkdXNlU3RhdGUyWzFdLHRyaWdnZXJDaGlsZHJlbkFjdGl2ZT1mdW5jdGlvbihuZXdBY3RpdmUpe21lcmdlZERpc2FibGVkfHxzZXRDaGlsZHJlbkFjdGl2ZShuZXdBY3RpdmUpfSxtZXJnZWRBY3RpdmU9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBhY3RpdmV8fCJpbmxpbmUiIT09bW9kZSYmKGNoaWxkcmVuQWN0aXZlfHxpc1N1YlBhdGhLZXkoW2FjdGl2ZUtleV0sZXZlbnRLZXkpKX0sW21vZGUsYWN0aXZlLGFjdGl2ZUtleSxjaGlsZHJlbkFjdGl2ZSxldmVudEtleSxpc1N1YlBhdGhLZXldKSxkaXJlY3Rpb25TdHlsZT11c2VEaXJlY3Rpb25TdHlsZShjb25uZWN0ZWRQYXRoLmxlbmd0aCksb25NZXJnZWRJdGVtQ2xpY2s9dXNlTWVtb0NhbGxiYWNrKGZ1bmN0aW9uKGluZm8pe251bGw9PW9uQ2xpY2t8fG9uQ2xpY2sod2Fybkl0ZW1Qcm9wKGluZm8pKSxvbkl0ZW1DbGljayhpbmZvKX0pLHBvcHVwSWQ9ZG9tRGF0YUlkJiYiIi5jb25jYXQoZG9tRGF0YUlkLCItcG9wdXAiKSxleHBhbmRJY29uTm9kZT1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbix7aWNvbjoiaG9yaXpvbnRhbCIhPT1tb2RlP21lcmdlZEV4cGFuZEljb246dm9pZCAwLHByb3BzOigwLG9iamVjdFNwcmVhZDIuWikoKDAsb2JqZWN0U3ByZWFkMi5aKSh7fSxwcm9wcykse30se2lzT3BlbjpvcGVuLGlzU3ViTWVudTohMH0pfSxyZWFjdC5jcmVhdGVFbGVtZW50KCJpIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChzdWJNZW51UHJlZml4Q2xzLCItYXJyb3ciKX0pKX0sW21vZGUsbWVyZ2VkRXhwYW5kSWNvbixwcm9wcyxvcGVuLHN1Yk1lbnVQcmVmaXhDbHNdKSx0aXRsZU5vZGU9cmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2IiwoMCxlc21fZXh0ZW5kcy5aKSh7cm9sZToibWVudWl0ZW0iLHN0eWxlOmRpcmVjdGlvblN0eWxlLGNsYXNzTmFtZToiIi5jb25jYXQoc3ViTWVudVByZWZpeENscywiLXRpdGxlIiksdGFiSW5kZXg6bWVyZ2VkRGlzYWJsZWQ/bnVsbDotMSxyZWY6ZWxlbWVudFJlZix0aXRsZToic3RyaW5nIj09dHlwZW9mIHRpdGxlP3RpdGxlOm51bGwsImRhdGEtbWVudS1pZCI6b3ZlcmZsb3dEaXNhYmxlZCYmZG9tRGF0YUlkP251bGw6ZG9tRGF0YUlkLCJhcmlhLWV4cGFuZGVkIjpvcGVuLCJhcmlhLWhhc3BvcHVwIjohMCwiYXJpYS1jb250cm9scyI6cG9wdXBJZCwiYXJpYS1kaXNhYmxlZCI6bWVyZ2VkRGlzYWJsZWQsb25DbGljazpmdW5jdGlvbihlKXttZXJnZWREaXNhYmxlZHx8KG51bGw9PW9uVGl0bGVDbGlja3x8b25UaXRsZUNsaWNrKHtrZXk6ZXZlbnRLZXksZG9tRXZlbnQ6ZX0pLCJpbmxpbmUiPT09bW9kZSYmb25PcGVuQ2hhbmdlKGV2ZW50S2V5LCFvcmlnaW5PcGVuKSl9LG9uRm9jdXM6ZnVuY3Rpb24oKXtvbkFjdGl2ZShldmVudEtleSl9fSxhY3RpdmVQcm9wcyksdGl0bGUsZXhwYW5kSWNvbk5vZGUpLHRyaWdnZXJNb2RlUmVmPXJlYWN0LnVzZVJlZihtb2RlKTtpZigiaW5saW5lIiE9PW1vZGUmJmNvbm5lY3RlZFBhdGgubGVuZ3RoPjE/dHJpZ2dlck1vZGVSZWYuY3VycmVudD0idmVydGljYWwiOnRyaWdnZXJNb2RlUmVmLmN1cnJlbnQ9bW9kZSwhb3ZlcmZsb3dEaXNhYmxlZCl7dmFyIHRyaWdnZXJNb2RlPXRyaWdnZXJNb2RlUmVmLmN1cnJlbnQ7dGl0bGVOb2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQoUG9wdXBUcmlnZ2VyLHttb2RlOnRyaWdnZXJNb2RlLHByZWZpeENsczpzdWJNZW51UHJlZml4Q2xzLHZpc2libGU6IWludGVybmFsUG9wdXBDbG9zZSYmb3BlbiYmImlubGluZSIhPT1tb2RlLHBvcHVwQ2xhc3NOYW1lOnBvcHVwQ2xhc3NOYW1lLHBvcHVwT2Zmc2V0OnBvcHVwT2Zmc2V0LHBvcHVwU3R5bGU6cG9wdXBTdHlsZSxwb3B1cDpyZWFjdC5jcmVhdGVFbGVtZW50KEluaGVyaXRhYmxlQ29udGV4dFByb3ZpZGVyLHttb2RlOiJob3Jpem9udGFsIj09PXRyaWdnZXJNb2RlPyJ2ZXJ0aWNhbCI6dHJpZ2dlck1vZGV9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoU3ViTWVudUxpc3Qse2lkOnBvcHVwSWQscmVmOnBvcHVwUmVmfSxjaGlsZHJlbikpLGRpc2FibGVkOm1lcmdlZERpc2FibGVkLG9uVmlzaWJsZUNoYW5nZTpmdW5jdGlvbihuZXdWaXNpYmxlKXsiaW5saW5lIiE9PW1vZGUmJm9uT3BlbkNoYW5nZShldmVudEtleSxuZXdWaXNpYmxlKX19LHRpdGxlTm9kZSl9dmFyIGxpc3ROb2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQoZXMuWi5JdGVtLCgwLGVzbV9leHRlbmRzLlopKHtyZWY6cmVmLHJvbGU6Im5vbmUifSxyZXN0UHJvcHMse2NvbXBvbmVudDoibGkiLHN0eWxlOnN0eWxlLGNsYXNzTmFtZTpjbGFzc25hbWVzX2RlZmF1bHQoKShzdWJNZW51UHJlZml4Q2xzLCIiLmNvbmNhdChzdWJNZW51UHJlZml4Q2xzLCItIikuY29uY2F0KG1vZGUpLGNsYXNzTmFtZSwoMCxkZWZpbmVQcm9wZXJ0eS5aKSgoMCxkZWZpbmVQcm9wZXJ0eS5aKSgoMCxkZWZpbmVQcm9wZXJ0eS5aKSgoMCxkZWZpbmVQcm9wZXJ0eS5aKSh7fSwiIi5jb25jYXQoc3ViTWVudVByZWZpeENscywiLW9wZW4iKSxvcGVuKSwiIi5jb25jYXQoc3ViTWVudVByZWZpeENscywiLWFjdGl2ZSIpLG1lcmdlZEFjdGl2ZSksIiIuY29uY2F0KHN1Yk1lbnVQcmVmaXhDbHMsIi1zZWxlY3RlZCIpLGNoaWxkcmVuU2VsZWN0ZWQpLCIiLmNvbmNhdChzdWJNZW51UHJlZml4Q2xzLCItZGlzYWJsZWQiKSxtZXJnZWREaXNhYmxlZCkpLG9uTW91c2VFbnRlcjpmdW5jdGlvbihkb21FdmVudCl7dHJpZ2dlckNoaWxkcmVuQWN0aXZlKCEwKSxudWxsPT1vbk1vdXNlRW50ZXJ8fG9uTW91c2VFbnRlcih7a2V5OmV2ZW50S2V5LGRvbUV2ZW50OmRvbUV2ZW50fSl9LG9uTW91c2VMZWF2ZTpmdW5jdGlvbihkb21FdmVudCl7dHJpZ2dlckNoaWxkcmVuQWN0aXZlKCExKSxudWxsPT1vbk1vdXNlTGVhdmV8fG9uTW91c2VMZWF2ZSh7a2V5OmV2ZW50S2V5LGRvbUV2ZW50OmRvbUV2ZW50fSl9fSksdGl0bGVOb2RlLCFvdmVyZmxvd0Rpc2FibGVkJiZyZWFjdC5jcmVhdGVFbGVtZW50KElubGluZVN1Yk1lbnVMaXN0LHtpZDpwb3B1cElkLG9wZW46b3BlbixrZXlQYXRoOmNvbm5lY3RlZFBhdGh9LGNoaWxkcmVuKSk7cmV0dXJuIF9pbnRlcm5hbFJlbmRlclN1Yk1lbnVJdGVtJiYobGlzdE5vZGU9X2ludGVybmFsUmVuZGVyU3ViTWVudUl0ZW0obGlzdE5vZGUscHJvcHMse3NlbGVjdGVkOmNoaWxkcmVuU2VsZWN0ZWQsYWN0aXZlOm1lcmdlZEFjdGl2ZSxvcGVuOm9wZW4sZGlzYWJsZWQ6bWVyZ2VkRGlzYWJsZWR9KSkscmVhY3QuY3JlYXRlRWxlbWVudChJbmhlcml0YWJsZUNvbnRleHRQcm92aWRlcix7b25JdGVtQ2xpY2s6b25NZXJnZWRJdGVtQ2xpY2ssbW9kZToiaG9yaXpvbnRhbCI9PT1tb2RlPyJ2ZXJ0aWNhbCI6bW9kZSxpdGVtSWNvbjpudWxsIT1pdGVtSWNvbj9pdGVtSWNvbjpjb250ZXh0SXRlbUljb24sZXhwYW5kSWNvbjptZXJnZWRFeHBhbmRJY29ufSxsaXN0Tm9kZSl9KSxTdWJNZW51PXJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24ocHJvcHMscmVmKXt2YXIgcmVuZGVyTm9kZSxldmVudEtleT1wcm9wcy5ldmVudEtleSxjaGlsZHJlbj1wcm9wcy5jaGlsZHJlbixjb25uZWN0ZWRLZXlQYXRoPXVzZUZ1bGxQYXRoKGV2ZW50S2V5KSxjaGlsZExpc3Q9cGFyc2VDaGlsZHJlbihjaGlsZHJlbixjb25uZWN0ZWRLZXlQYXRoKSxtZWFzdXJlPXVzZU1lYXN1cmUoKTtyZXR1cm4gcmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uKCl7aWYobWVhc3VyZSlyZXR1cm4gbWVhc3VyZS5yZWdpc3RlclBhdGgoZXZlbnRLZXksY29ubmVjdGVkS2V5UGF0aCksZnVuY3Rpb24oKXttZWFzdXJlLnVucmVnaXN0ZXJQYXRoKGV2ZW50S2V5LGNvbm5lY3RlZEtleVBhdGgpfX0sW2Nvbm5lY3RlZEtleVBhdGhdKSxyZW5kZXJOb2RlPW1lYXN1cmU/Y2hpbGRMaXN0OnJlYWN0LmNyZWF0ZUVsZW1lbnQoSW50ZXJuYWxTdWJNZW51LCgwLGVzbV9leHRlbmRzLlopKHtyZWY6cmVmfSxwcm9wcyksY2hpbGRMaXN0KSxyZWFjdC5jcmVhdGVFbGVtZW50KFBhdGhUcmFja2VyQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6Y29ubmVjdGVkS2V5UGF0aH0scmVuZGVyTm9kZSl9KSxlc21fdHlwZW9mPV9fd2VicGFja19yZXF1aXJlX18oNzEwMDIpO2Z1bmN0aW9uIERpdmlkZXIoX3JlZil7dmFyIGNsYXNzTmFtZT1fcmVmLmNsYXNzTmFtZSxzdHlsZT1fcmVmLnN0eWxlLHByZWZpeENscz1yZWFjdC51c2VDb250ZXh0KE1lbnVDb250ZXh0KS5wcmVmaXhDbHM7cmV0dXJuIHVzZU1lYXN1cmUoKT9udWxsOnJlYWN0LmNyZWF0ZUVsZW1lbnQoImxpIix7cm9sZToic2VwYXJhdG9yIixjbGFzc05hbWU6Y2xhc3NuYW1lc19kZWZhdWx0KCkoIiIuY29uY2F0KHByZWZpeENscywiLWl0ZW0tZGl2aWRlciIpLGNsYXNzTmFtZSksc3R5bGU6c3R5bGV9KX12YXIgTWVudUl0ZW1Hcm91cF9leGNsdWRlZD1bImNsYXNzTmFtZSIsInRpdGxlIiwiZXZlbnRLZXkiLCJjaGlsZHJlbiJdLEludGVybmFsTWVudUl0ZW1Hcm91cD1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7dmFyIGNsYXNzTmFtZT1wcm9wcy5jbGFzc05hbWUsdGl0bGU9cHJvcHMudGl0bGUsY2hpbGRyZW49KHByb3BzLmV2ZW50S2V5LHByb3BzLmNoaWxkcmVuKSxyZXN0UHJvcHM9KDAsb2JqZWN0V2l0aG91dFByb3BlcnRpZXMuWikocHJvcHMsTWVudUl0ZW1Hcm91cF9leGNsdWRlZCkscHJlZml4Q2xzPXJlYWN0LnVzZUNvbnRleHQoTWVudUNvbnRleHQpLnByZWZpeENscyxncm91cFByZWZpeENscz0iIi5jb25jYXQocHJlZml4Q2xzLCItaXRlbS1ncm91cCIpO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KCJsaSIsKDAsZXNtX2V4dGVuZHMuWikoe3JlZjpyZWYscm9sZToicHJlc2VudGF0aW9uIn0scmVzdFByb3BzLHtvbkNsaWNrOmZ1bmN0aW9uKGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpfSxjbGFzc05hbWU6Y2xhc3NuYW1lc19kZWZhdWx0KCkoZ3JvdXBQcmVmaXhDbHMsY2xhc3NOYW1lKX0pLHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse3JvbGU6InByZXNlbnRhdGlvbiIsY2xhc3NOYW1lOiIiLmNvbmNhdChncm91cFByZWZpeENscywiLXRpdGxlIiksdGl0bGU6InN0cmluZyI9PXR5cGVvZiB0aXRsZT90aXRsZTp2b2lkIDB9LHRpdGxlKSxyZWFjdC5jcmVhdGVFbGVtZW50KCJ1bCIse3JvbGU6Imdyb3VwIixjbGFzc05hbWU6IiIuY29uY2F0KGdyb3VwUHJlZml4Q2xzLCItbGlzdCIpfSxjaGlsZHJlbikpfSksTWVudUl0ZW1Hcm91cD1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7dmFyIGV2ZW50S2V5PXByb3BzLmV2ZW50S2V5LGNoaWxkTGlzdD1wYXJzZUNoaWxkcmVuKHByb3BzLmNoaWxkcmVuLHVzZUZ1bGxQYXRoKGV2ZW50S2V5KSk7cmV0dXJuIHVzZU1lYXN1cmUoKT9jaGlsZExpc3Q6cmVhY3QuY3JlYXRlRWxlbWVudChJbnRlcm5hbE1lbnVJdGVtR3JvdXAsKDAsZXNtX2V4dGVuZHMuWikoe3JlZjpyZWZ9LCgwLGVzX29taXQuWikocHJvcHMsWyJ3YXJuS2V5Il0pKSxjaGlsZExpc3QpfSksbm9kZVV0aWxfZXhjbHVkZWQ9WyJsYWJlbCIsImNoaWxkcmVuIiwia2V5IiwidHlwZSIsImV4dHJhIl07ZnVuY3Rpb24gcGFyc2VJdGVtcyhjaGlsZHJlbixpdGVtcyxrZXlQYXRoLGNvbXBvbmVudHMscHJlZml4Q2xzKXt2YXIgY2hpbGROb2Rlcz1jaGlsZHJlbixtZXJnZWRDb21wb25lbnRzPSgwLG9iamVjdFNwcmVhZDIuWikoe2RpdmlkZXI6RGl2aWRlcixpdGVtOmVzX01lbnVJdGVtLGdyb3VwOk1lbnVJdGVtR3JvdXAsc3VibWVudTpTdWJNZW51fSxjb21wb25lbnRzKTtyZXR1cm4gaXRlbXMmJihjaGlsZE5vZGVzPWZ1bmN0aW9uIGNvbnZlcnRJdGVtc1RvTm9kZXMobGlzdCxjb21wb25lbnRzLHByZWZpeENscyl7dmFyIE1lcmdlZE1lbnVJdGVtPWNvbXBvbmVudHMuaXRlbSxNZXJnZWRNZW51SXRlbUdyb3VwPWNvbXBvbmVudHMuZ3JvdXAsTWVyZ2VkU3ViTWVudT1jb21wb25lbnRzLnN1Ym1lbnUsTWVyZ2VkRGl2aWRlcj1jb21wb25lbnRzLmRpdmlkZXI7cmV0dXJuKGxpc3R8fFtdKS5tYXAoZnVuY3Rpb24ob3B0LGluZGV4KXtpZihvcHQmJiJvYmplY3QiPT09KDAsZXNtX3R5cGVvZi5aKShvcHQpKXt2YXIgbGFiZWw9b3B0LmxhYmVsLGNoaWxkcmVuPW9wdC5jaGlsZHJlbixrZXk9b3B0LmtleSx0eXBlPW9wdC50eXBlLGV4dHJhPW9wdC5leHRyYSxyZXN0UHJvcHM9KDAsb2JqZWN0V2l0aG91dFByb3BlcnRpZXMuWikob3B0LG5vZGVVdGlsX2V4Y2x1ZGVkKSxtZXJnZWRLZXk9bnVsbCE9a2V5P2tleToidG1wLSIuY29uY2F0KGluZGV4KTtyZXR1cm4gY2hpbGRyZW58fCJncm91cCI9PT10eXBlPyJncm91cCI9PT10eXBlP3JlYWN0LmNyZWF0ZUVsZW1lbnQoTWVyZ2VkTWVudUl0ZW1Hcm91cCwoMCxlc21fZXh0ZW5kcy5aKSh7a2V5Om1lcmdlZEtleX0scmVzdFByb3BzLHt0aXRsZTpsYWJlbH0pLGNvbnZlcnRJdGVtc1RvTm9kZXMoY2hpbGRyZW4sY29tcG9uZW50cyxwcmVmaXhDbHMpKTpyZWFjdC5jcmVhdGVFbGVtZW50KE1lcmdlZFN1Yk1lbnUsKDAsZXNtX2V4dGVuZHMuWikoe2tleTptZXJnZWRLZXl9LHJlc3RQcm9wcyx7dGl0bGU6bGFiZWx9KSxjb252ZXJ0SXRlbXNUb05vZGVzKGNoaWxkcmVuLGNvbXBvbmVudHMscHJlZml4Q2xzKSk6ImRpdmlkZXIiPT09dHlwZT9yZWFjdC5jcmVhdGVFbGVtZW50KE1lcmdlZERpdmlkZXIsKDAsZXNtX2V4dGVuZHMuWikoe2tleTptZXJnZWRLZXl9LHJlc3RQcm9wcykpOnJlYWN0LmNyZWF0ZUVsZW1lbnQoTWVyZ2VkTWVudUl0ZW0sKDAsZXNtX2V4dGVuZHMuWikoe2tleTptZXJnZWRLZXl9LHJlc3RQcm9wcyx7ZXh0cmE6ZXh0cmF9KSxsYWJlbCwoISFleHRyYXx8MD09PWV4dHJhKSYmcmVhY3QuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItaXRlbS1leHRyYSIpfSxleHRyYSkpfXJldHVybiBudWxsfSkuZmlsdGVyKGZ1bmN0aW9uKG9wdCl7cmV0dXJuIG9wdH0pfShpdGVtcyxtZXJnZWRDb21wb25lbnRzLHByZWZpeENscykpLHBhcnNlQ2hpbGRyZW4oY2hpbGROb2RlcyxrZXlQYXRoKX12YXIgTWVudV9leGNsdWRlZD1bInByZWZpeENscyIsInJvb3RDbGFzc05hbWUiLCJzdHlsZSIsImNsYXNzTmFtZSIsInRhYkluZGV4IiwiaXRlbXMiLCJjaGlsZHJlbiIsImRpcmVjdGlvbiIsImlkIiwibW9kZSIsImlubGluZUNvbGxhcHNlZCIsImRpc2FibGVkIiwiZGlzYWJsZWRPdmVyZmxvdyIsInN1Yk1lbnVPcGVuRGVsYXkiLCJzdWJNZW51Q2xvc2VEZWxheSIsImZvcmNlU3ViTWVudVJlbmRlciIsImRlZmF1bHRPcGVuS2V5cyIsIm9wZW5LZXlzIiwiYWN0aXZlS2V5IiwiZGVmYXVsdEFjdGl2ZUZpcnN0Iiwic2VsZWN0YWJsZSIsIm11bHRpcGxlIiwiZGVmYXVsdFNlbGVjdGVkS2V5cyIsInNlbGVjdGVkS2V5cyIsIm9uU2VsZWN0Iiwib25EZXNlbGVjdCIsImlubGluZUluZGVudCIsIm1vdGlvbiIsImRlZmF1bHRNb3Rpb25zIiwidHJpZ2dlclN1Yk1lbnVBY3Rpb24iLCJidWlsdGluUGxhY2VtZW50cyIsIml0ZW1JY29uIiwiZXhwYW5kSWNvbiIsIm92ZXJmbG93ZWRJbmRpY2F0b3IiLCJvdmVyZmxvd2VkSW5kaWNhdG9yUG9wdXBDbGFzc05hbWUiLCJnZXRQb3B1cENvbnRhaW5lciIsIm9uQ2xpY2siLCJvbk9wZW5DaGFuZ2UiLCJvbktleURvd24iLCJvcGVuQW5pbWF0aW9uIiwib3BlblRyYW5zaXRpb25OYW1lIiwiX2ludGVybmFsUmVuZGVyTWVudUl0ZW0iLCJfaW50ZXJuYWxSZW5kZXJTdWJNZW51SXRlbSIsIl9pbnRlcm5hbENvbXBvbmVudHMiXSxFTVBUWV9MSVNUPVtdLEV4cG9ydE1lbnU9cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3ZhciBfdXNlTWVyZ2VkU3RhdGUsX3VzZU1lcmdlZFN0YXRlMix1dWlkLHNldFVVSUQsX1JlYWN0JHVzZVN0YXRlLGludGVybmFsRm9yY2VVcGRhdGUsa2V5MnBhdGhSZWYscGF0aDJrZXlSZWYsX1JlYWN0JHVzZVN0YXRlMyxfUmVhY3QkdXNlU3RhdGU0LG92ZXJmbG93S2V5cyxzZXRPdmVyZmxvd0tleXMsdXBkYXRlUmVmLGRlc3Ryb3lSZWYsZm9yY2VVcGRhdGUscmVnaXN0ZXJQYXRoLHVucmVnaXN0ZXJQYXRoLHJlZnJlc2hPdmVyZmxvd0tleXMsZ2V0S2V5UGF0aCxpc1N1YlBhdGhLZXksZ2V0U3ViUGF0aEtleXMsdHJpZ2dlckFjY2Vzc2liaWxpdHlPcGVuLHJhZlJlZixhY3RpdmVSZWYsY2xlYW5SYWYsX2NoaWxkTGlzdCQsX3JlZiRwcmVmaXhDbHM9cHJvcHMucHJlZml4Q2xzLHByZWZpeENscz12b2lkIDA9PT1fcmVmJHByZWZpeENscz8icmMtbWVudSI6X3JlZiRwcmVmaXhDbHMscm9vdENsYXNzTmFtZT1wcm9wcy5yb290Q2xhc3NOYW1lLHN0eWxlPXByb3BzLnN0eWxlLGNsYXNzTmFtZT1wcm9wcy5jbGFzc05hbWUsX3JlZiR0YWJJbmRleD1wcm9wcy50YWJJbmRleCxpdGVtcz1wcm9wcy5pdGVtcyxjaGlsZHJlbj1wcm9wcy5jaGlsZHJlbixkaXJlY3Rpb249cHJvcHMuZGlyZWN0aW9uLGlkPXByb3BzLmlkLF9yZWYkbW9kZT1wcm9wcy5tb2RlLG1vZGU9dm9pZCAwPT09X3JlZiRtb2RlPyJ2ZXJ0aWNhbCI6X3JlZiRtb2RlLGlubGluZUNvbGxhcHNlZD1wcm9wcy5pbmxpbmVDb2xsYXBzZWQsZGlzYWJsZWQ9cHJvcHMuZGlzYWJsZWQsZGlzYWJsZWRPdmVyZmxvdz1wcm9wcy5kaXNhYmxlZE92ZXJmbG93LF9yZWYkc3ViTWVudU9wZW5EZWxheT1wcm9wcy5zdWJNZW51T3BlbkRlbGF5LF9yZWYkc3ViTWVudUNsb3NlRGVsYT1wcm9wcy5zdWJNZW51Q2xvc2VEZWxheSxmb3JjZVN1Yk1lbnVSZW5kZXI9cHJvcHMuZm9yY2VTdWJNZW51UmVuZGVyLGRlZmF1bHRPcGVuS2V5cz1wcm9wcy5kZWZhdWx0T3BlbktleXMsb3BlbktleXM9cHJvcHMub3BlbktleXMsYWN0aXZlS2V5PXByb3BzLmFjdGl2ZUtleSxkZWZhdWx0QWN0aXZlRmlyc3Q9cHJvcHMuZGVmYXVsdEFjdGl2ZUZpcnN0LF9yZWYkc2VsZWN0YWJsZT1wcm9wcy5zZWxlY3RhYmxlLHNlbGVjdGFibGU9dm9pZCAwPT09X3JlZiRzZWxlY3RhYmxlfHxfcmVmJHNlbGVjdGFibGUsX3JlZiRtdWx0aXBsZT1wcm9wcy5tdWx0aXBsZSxtdWx0aXBsZT12b2lkIDAhPT1fcmVmJG11bHRpcGxlJiZfcmVmJG11bHRpcGxlLGRlZmF1bHRTZWxlY3RlZEtleXM9cHJvcHMuZGVmYXVsdFNlbGVjdGVkS2V5cyxzZWxlY3RlZEtleXM9cHJvcHMuc2VsZWN0ZWRLZXlzLG9uU2VsZWN0PXByb3BzLm9uU2VsZWN0LG9uRGVzZWxlY3Q9cHJvcHMub25EZXNlbGVjdCxfcmVmJGlubGluZUluZGVudD1wcm9wcy5pbmxpbmVJbmRlbnQsbW90aW9uPXByb3BzLm1vdGlvbixkZWZhdWx0TW90aW9ucz1wcm9wcy5kZWZhdWx0TW90aW9ucyxfcmVmJHRyaWdnZXJTdWJNZW51QWM9cHJvcHMudHJpZ2dlclN1Yk1lbnVBY3Rpb24sYnVpbHRpblBsYWNlbWVudHM9cHJvcHMuYnVpbHRpblBsYWNlbWVudHMsaXRlbUljb249cHJvcHMuaXRlbUljb24sZXhwYW5kSWNvbj1wcm9wcy5leHBhbmRJY29uLF9yZWYkb3ZlcmZsb3dlZEluZGljYT1wcm9wcy5vdmVyZmxvd2VkSW5kaWNhdG9yLG92ZXJmbG93ZWRJbmRpY2F0b3I9dm9pZCAwPT09X3JlZiRvdmVyZmxvd2VkSW5kaWNhPyIuLi4iOl9yZWYkb3ZlcmZsb3dlZEluZGljYSxvdmVyZmxvd2VkSW5kaWNhdG9yUG9wdXBDbGFzc05hbWU9cHJvcHMub3ZlcmZsb3dlZEluZGljYXRvclBvcHVwQ2xhc3NOYW1lLGdldFBvcHVwQ29udGFpbmVyPXByb3BzLmdldFBvcHVwQ29udGFpbmVyLG9uQ2xpY2s9cHJvcHMub25DbGljayxvbk9wZW5DaGFuZ2U9cHJvcHMub25PcGVuQ2hhbmdlLG9uS2V5RG93bj1wcm9wcy5vbktleURvd24sX2ludGVybmFsUmVuZGVyTWVudUl0ZW09KHByb3BzLm9wZW5BbmltYXRpb24scHJvcHMub3BlblRyYW5zaXRpb25OYW1lLHByb3BzLl9pbnRlcm5hbFJlbmRlck1lbnVJdGVtKSxfaW50ZXJuYWxSZW5kZXJTdWJNZW51SXRlbT1wcm9wcy5faW50ZXJuYWxSZW5kZXJTdWJNZW51SXRlbSxfaW50ZXJuYWxDb21wb25lbnRzPXByb3BzLl9pbnRlcm5hbENvbXBvbmVudHMscmVzdFByb3BzPSgwLG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLlopKHByb3BzLE1lbnVfZXhjbHVkZWQpLF9SZWFjdCR1c2VNZW1vPXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm5bcGFyc2VJdGVtcyhjaGlsZHJlbixpdGVtcyxFTVBUWV9MSVNULF9pbnRlcm5hbENvbXBvbmVudHMscHJlZml4Q2xzKSxwYXJzZUl0ZW1zKGNoaWxkcmVuLGl0ZW1zLEVNUFRZX0xJU1Qse30scHJlZml4Q2xzKV19LFtjaGlsZHJlbixpdGVtcyxfaW50ZXJuYWxDb21wb25lbnRzXSksX1JlYWN0JHVzZU1lbW8yPSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZU1lbW8sMiksY2hpbGRMaXN0PV9SZWFjdCR1c2VNZW1vMlswXSxtZWFzdXJlQ2hpbGRMaXN0PV9SZWFjdCR1c2VNZW1vMlsxXSxfUmVhY3QkdXNlU3RhdGUxPXJlYWN0LnVzZVN0YXRlKCExKSxfUmVhY3QkdXNlU3RhdGUyPSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlMSwyKSxtb3VudGVkPV9SZWFjdCR1c2VTdGF0ZTJbMF0sc2V0TW91bnRlZD1fUmVhY3QkdXNlU3RhdGUyWzFdLGNvbnRhaW5lclJlZj1yZWFjdC51c2VSZWYoKSx1dWlkMT0oX3VzZU1lcmdlZFN0YXRlPSgwLHVzZU1lcmdlZFN0YXRlLlopKGlkLHt2YWx1ZTppZH0pLHV1aWQ9KF91c2VNZXJnZWRTdGF0ZTI9KDAsc2xpY2VkVG9BcnJheS5aKShfdXNlTWVyZ2VkU3RhdGUsMikpWzBdLHNldFVVSUQ9X3VzZU1lcmdlZFN0YXRlMlsxXSxyZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24oKXtpbnRlcm5hbElkKz0xO3ZhciBuZXdJZD0iIi5jb25jYXQodW5pcXVlUHJlZml4LCItIikuY29uY2F0KGludGVybmFsSWQpO3NldFVVSUQoInJjLW1lbnUtdXVpZC0iLmNvbmNhdChuZXdJZCkpfSxbXSksdXVpZCksaXNSdGw9InJ0bCI9PT1kaXJlY3Rpb24sX3VzZU1lcmdlZFN0YXRlMT0oMCx1c2VNZXJnZWRTdGF0ZS5aKShkZWZhdWx0T3BlbktleXMse3ZhbHVlOm9wZW5LZXlzLHBvc3RTdGF0ZTpmdW5jdGlvbihrZXlzKXtyZXR1cm4ga2V5c3x8RU1QVFlfTElTVH19KSxfdXNlTWVyZ2VkU3RhdGUyMT0oMCxzbGljZWRUb0FycmF5LlopKF91c2VNZXJnZWRTdGF0ZTEsMiksbWVyZ2VkT3BlbktleXM9X3VzZU1lcmdlZFN0YXRlMjFbMF0sc2V0TWVyZ2VkT3BlbktleXM9X3VzZU1lcmdlZFN0YXRlMjFbMV0sdHJpZ2dlck9wZW5LZXlzPWZ1bmN0aW9uKGtleXMpe3ZhciBmb3JjZUZsdXNoPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07ZnVuY3Rpb24gZG9VcGRhdGUoKXtzZXRNZXJnZWRPcGVuS2V5cyhrZXlzKSxudWxsPT1vbk9wZW5DaGFuZ2V8fG9uT3BlbkNoYW5nZShrZXlzKX1mb3JjZUZsdXNoPygwLHJlYWN0X2RvbS5mbHVzaFN5bmMpKGRvVXBkYXRlKTpkb1VwZGF0ZSgpfSxfUmVhY3QkdXNlU3RhdGUzMT1yZWFjdC51c2VTdGF0ZShtZXJnZWRPcGVuS2V5cyksX1JlYWN0JHVzZVN0YXRlNDE9KDAsc2xpY2VkVG9BcnJheS5aKShfUmVhY3QkdXNlU3RhdGUzMSwyKSxpbmxpbmVDYWNoZU9wZW5LZXlzPV9SZWFjdCR1c2VTdGF0ZTQxWzBdLHNldElubGluZUNhY2hlT3BlbktleXM9X1JlYWN0JHVzZVN0YXRlNDFbMV0sbW91bnRSZWY9cmVhY3QudXNlUmVmKCExKSxfUmVhY3QkdXNlTWVtbzM9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybigiaW5saW5lIj09PW1vZGV8fCJ2ZXJ0aWNhbCI9PT1tb2RlKSYmaW5saW5lQ29sbGFwc2VkP1sidmVydGljYWwiLGlubGluZUNvbGxhcHNlZF06W21vZGUsITFdfSxbbW9kZSxpbmxpbmVDb2xsYXBzZWRdKSxfUmVhY3QkdXNlTWVtbzQ9KDAsc2xpY2VkVG9BcnJheS5aKShfUmVhY3QkdXNlTWVtbzMsMiksbWVyZ2VkTW9kZT1fUmVhY3QkdXNlTWVtbzRbMF0sbWVyZ2VkSW5saW5lQ29sbGFwc2VkPV9SZWFjdCR1c2VNZW1vNFsxXSxpc0lubGluZU1vZGU9ImlubGluZSI9PT1tZXJnZWRNb2RlLF9SZWFjdCR1c2VTdGF0ZTU9cmVhY3QudXNlU3RhdGUobWVyZ2VkTW9kZSksX1JlYWN0JHVzZVN0YXRlNj0oMCxzbGljZWRUb0FycmF5LlopKF9SZWFjdCR1c2VTdGF0ZTUsMiksaW50ZXJuYWxNb2RlPV9SZWFjdCR1c2VTdGF0ZTZbMF0sc2V0SW50ZXJuYWxNb2RlPV9SZWFjdCR1c2VTdGF0ZTZbMV0sX1JlYWN0JHVzZVN0YXRlNz1yZWFjdC51c2VTdGF0ZShtZXJnZWRJbmxpbmVDb2xsYXBzZWQpLF9SZWFjdCR1c2VTdGF0ZTg9KDAsc2xpY2VkVG9BcnJheS5aKShfUmVhY3QkdXNlU3RhdGU3LDIpLGludGVybmFsSW5saW5lQ29sbGFwc2VkPV9SZWFjdCR1c2VTdGF0ZThbMF0sc2V0SW50ZXJuYWxJbmxpbmVDb2xsYXBzZWQ9X1JlYWN0JHVzZVN0YXRlOFsxXTtyZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24oKXtzZXRJbnRlcm5hbE1vZGUobWVyZ2VkTW9kZSksc2V0SW50ZXJuYWxJbmxpbmVDb2xsYXBzZWQobWVyZ2VkSW5saW5lQ29sbGFwc2VkKSxtb3VudFJlZi5jdXJyZW50JiYoaXNJbmxpbmVNb2RlP3NldE1lcmdlZE9wZW5LZXlzKGlubGluZUNhY2hlT3BlbktleXMpOnRyaWdnZXJPcGVuS2V5cyhFTVBUWV9MSVNUKSl9LFttZXJnZWRNb2RlLG1lcmdlZElubGluZUNvbGxhcHNlZF0pO3ZhciBfUmVhY3QkdXNlU3RhdGU5PXJlYWN0LnVzZVN0YXRlKDApLF9SZWFjdCR1c2VTdGF0ZTEwPSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlOSwyKSxsYXN0VmlzaWJsZUluZGV4PV9SZWFjdCR1c2VTdGF0ZTEwWzBdLHNldExhc3RWaXNpYmxlSW5kZXg9X1JlYWN0JHVzZVN0YXRlMTBbMV0sYWxsVmlzaWJsZT1sYXN0VmlzaWJsZUluZGV4Pj1jaGlsZExpc3QubGVuZ3RoLTF8fCJob3Jpem9udGFsIiE9PWludGVybmFsTW9kZXx8ZGlzYWJsZWRPdmVyZmxvdztyZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24oKXtpc0lubGluZU1vZGUmJnNldElubGluZUNhY2hlT3BlbktleXMobWVyZ2VkT3BlbktleXMpfSxbbWVyZ2VkT3BlbktleXNdKSxyZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24oKXtyZXR1cm4gbW91bnRSZWYuY3VycmVudD0hMCxmdW5jdGlvbigpe21vdW50UmVmLmN1cnJlbnQ9ITF9fSxbXSk7dmFyIF91c2VLZXlSZWNvcmRzPShfUmVhY3QkdXNlU3RhdGU9cmVhY3QudXNlU3RhdGUoe30pLGludGVybmFsRm9yY2VVcGRhdGU9KDAsc2xpY2VkVG9BcnJheS5aKShfUmVhY3QkdXNlU3RhdGUsMilbMV0sa2V5MnBhdGhSZWY9KDAscmVhY3QudXNlUmVmKShuZXcgTWFwKSxwYXRoMmtleVJlZj0oMCxyZWFjdC51c2VSZWYpKG5ldyBNYXApLF9SZWFjdCR1c2VTdGF0ZTM9cmVhY3QudXNlU3RhdGUoW10pLG92ZXJmbG93S2V5cz0oX1JlYWN0JHVzZVN0YXRlND0oMCxzbGljZWRUb0FycmF5LlopKF9SZWFjdCR1c2VTdGF0ZTMsMikpWzBdLHNldE92ZXJmbG93S2V5cz1fUmVhY3QkdXNlU3RhdGU0WzFdLHVwZGF0ZVJlZj0oMCxyZWFjdC51c2VSZWYpKDApLGRlc3Ryb3lSZWY9KDAscmVhY3QudXNlUmVmKSghMSksZm9yY2VVcGRhdGU9ZnVuY3Rpb24oKXtkZXN0cm95UmVmLmN1cnJlbnR8fGludGVybmFsRm9yY2VVcGRhdGUoe30pfSxyZWdpc3RlclBhdGg9KDAscmVhY3QudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKGtleSxrZXlQYXRoKXt2YXIgY29ubmVjdGVkUGF0aD1nZXRQYXRoU3RyKGtleVBhdGgpO3BhdGgya2V5UmVmLmN1cnJlbnQuc2V0KGNvbm5lY3RlZFBhdGgsa2V5KSxrZXkycGF0aFJlZi5jdXJyZW50LnNldChrZXksY29ubmVjdGVkUGF0aCksdXBkYXRlUmVmLmN1cnJlbnQrPTE7dmFyIGlkPXVwZGF0ZVJlZi5jdXJyZW50O1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKXtpZD09PXVwZGF0ZVJlZi5jdXJyZW50JiZmb3JjZVVwZGF0ZSgpfSl9LFtdKSx1bnJlZ2lzdGVyUGF0aD0oMCxyZWFjdC51c2VDYWxsYmFjaykoZnVuY3Rpb24oa2V5LGtleVBhdGgpe3ZhciBjb25uZWN0ZWRQYXRoPWdldFBhdGhTdHIoa2V5UGF0aCk7cGF0aDJrZXlSZWYuY3VycmVudC5kZWxldGUoY29ubmVjdGVkUGF0aCksa2V5MnBhdGhSZWYuY3VycmVudC5kZWxldGUoa2V5KX0sW10pLHJlZnJlc2hPdmVyZmxvd0tleXM9KDAscmVhY3QudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKGtleXMpe3NldE92ZXJmbG93S2V5cyhrZXlzKX0sW10pLGdldEtleVBhdGg9KDAscmVhY3QudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKGV2ZW50S2V5LGluY2x1ZGVPdmVyZmxvdyl7dmFyIGtleXM9KGtleTJwYXRoUmVmLmN1cnJlbnQuZ2V0KGV2ZW50S2V5KXx8IiIpLnNwbGl0KFBBVEhfU1BMSVQpO3JldHVybiBpbmNsdWRlT3ZlcmZsb3cmJm92ZXJmbG93S2V5cy5pbmNsdWRlcyhrZXlzWzBdKSYma2V5cy51bnNoaWZ0KE9WRVJGTE9XX0tFWSksa2V5c30sW292ZXJmbG93S2V5c10pLGlzU3ViUGF0aEtleT0oMCxyZWFjdC51c2VDYWxsYmFjaykoZnVuY3Rpb24ocGF0aEtleXMsZXZlbnRLZXkpe3JldHVybiBwYXRoS2V5cy5maWx0ZXIoZnVuY3Rpb24oaXRlbSl7cmV0dXJuIHZvaWQgMCE9PWl0ZW19KS5zb21lKGZ1bmN0aW9uKHBhdGhLZXkpe3JldHVybiBnZXRLZXlQYXRoKHBhdGhLZXksITApLmluY2x1ZGVzKGV2ZW50S2V5KX0pfSxbZ2V0S2V5UGF0aF0pLGdldFN1YlBhdGhLZXlzPSgwLHJlYWN0LnVzZUNhbGxiYWNrKShmdW5jdGlvbihrZXkpe3ZhciBjb25uZWN0ZWRQYXRoPSIiLmNvbmNhdChrZXkycGF0aFJlZi5jdXJyZW50LmdldChrZXkpKS5jb25jYXQoUEFUSF9TUExJVCkscGF0aEtleXM9bmV3IFNldDtyZXR1cm4oMCx0b0NvbnN1bWFibGVBcnJheS5aKShwYXRoMmtleVJlZi5jdXJyZW50LmtleXMoKSkuZm9yRWFjaChmdW5jdGlvbihwYXRoS2V5KXtwYXRoS2V5LnN0YXJ0c1dpdGgoY29ubmVjdGVkUGF0aCkmJnBhdGhLZXlzLmFkZChwYXRoMmtleVJlZi5jdXJyZW50LmdldChwYXRoS2V5KSl9KSxwYXRoS2V5c30sW10pLHJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe2Rlc3Ryb3lSZWYuY3VycmVudD0hMH19LFtdKSx7cmVnaXN0ZXJQYXRoOnJlZ2lzdGVyUGF0aCx1bnJlZ2lzdGVyUGF0aDp1bnJlZ2lzdGVyUGF0aCxyZWZyZXNoT3ZlcmZsb3dLZXlzOnJlZnJlc2hPdmVyZmxvd0tleXMsaXNTdWJQYXRoS2V5OmlzU3ViUGF0aEtleSxnZXRLZXlQYXRoOmdldEtleVBhdGgsZ2V0S2V5czpmdW5jdGlvbigpe3ZhciBrZXlzPSgwLHRvQ29uc3VtYWJsZUFycmF5LlopKGtleTJwYXRoUmVmLmN1cnJlbnQua2V5cygpKTtyZXR1cm4gb3ZlcmZsb3dLZXlzLmxlbmd0aCYma2V5cy5wdXNoKE9WRVJGTE9XX0tFWSksa2V5c30sZ2V0U3ViUGF0aEtleXM6Z2V0U3ViUGF0aEtleXN9KSxyZWdpc3RlclBhdGgxPV91c2VLZXlSZWNvcmRzLnJlZ2lzdGVyUGF0aCx1bnJlZ2lzdGVyUGF0aDE9X3VzZUtleVJlY29yZHMudW5yZWdpc3RlclBhdGgscmVmcmVzaE92ZXJmbG93S2V5czE9X3VzZUtleVJlY29yZHMucmVmcmVzaE92ZXJmbG93S2V5cyxpc1N1YlBhdGhLZXkxPV91c2VLZXlSZWNvcmRzLmlzU3ViUGF0aEtleSxnZXRLZXlQYXRoMT1fdXNlS2V5UmVjb3Jkcy5nZXRLZXlQYXRoLGdldEtleXM9X3VzZUtleVJlY29yZHMuZ2V0S2V5cyxnZXRTdWJQYXRoS2V5czE9X3VzZUtleVJlY29yZHMuZ2V0U3ViUGF0aEtleXMscmVnaXN0ZXJQYXRoQ29udGV4dD1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJue3JlZ2lzdGVyUGF0aDpyZWdpc3RlclBhdGgxLHVucmVnaXN0ZXJQYXRoOnVucmVnaXN0ZXJQYXRoMX19LFtyZWdpc3RlclBhdGgxLHVucmVnaXN0ZXJQYXRoMV0pLHBhdGhVc2VyQ29udGV4dD1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJue2lzU3ViUGF0aEtleTppc1N1YlBhdGhLZXkxfX0sW2lzU3ViUGF0aEtleTFdKTtyZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24oKXtyZWZyZXNoT3ZlcmZsb3dLZXlzMShhbGxWaXNpYmxlP0VNUFRZX0xJU1Q6Y2hpbGRMaXN0LnNsaWNlKGxhc3RWaXNpYmxlSW5kZXgrMSkubWFwKGZ1bmN0aW9uKGNoaWxkKXtyZXR1cm4gY2hpbGQua2V5fSkpfSxbbGFzdFZpc2libGVJbmRleCxhbGxWaXNpYmxlXSk7dmFyIF91c2VNZXJnZWRTdGF0ZTM9KDAsdXNlTWVyZ2VkU3RhdGUuWikoYWN0aXZlS2V5fHxkZWZhdWx0QWN0aXZlRmlyc3QmJihudWxsPT09KF9jaGlsZExpc3QkPWNoaWxkTGlzdFswXSl8fHZvaWQgMD09PV9jaGlsZExpc3QkP3ZvaWQgMDpfY2hpbGRMaXN0JC5rZXkpLHt2YWx1ZTphY3RpdmVLZXl9KSxfdXNlTWVyZ2VkU3RhdGU0PSgwLHNsaWNlZFRvQXJyYXkuWikoX3VzZU1lcmdlZFN0YXRlMywyKSxtZXJnZWRBY3RpdmVLZXk9X3VzZU1lcmdlZFN0YXRlNFswXSxzZXRNZXJnZWRBY3RpdmVLZXk9X3VzZU1lcmdlZFN0YXRlNFsxXSxvbkFjdGl2ZT11c2VNZW1vQ2FsbGJhY2soZnVuY3Rpb24oa2V5KXtzZXRNZXJnZWRBY3RpdmVLZXkoa2V5KX0pLG9uSW5hY3RpdmU9dXNlTWVtb0NhbGxiYWNrKGZ1bmN0aW9uKCl7c2V0TWVyZ2VkQWN0aXZlS2V5KHZvaWQgMCl9KTsoMCxyZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKShyZWYsZnVuY3Rpb24oKXtyZXR1cm57bGlzdDpjb250YWluZXJSZWYuY3VycmVudCxmb2N1czpmdW5jdGlvbihvcHRpb25zKXt2YXIgX2NoaWxkTGlzdCRmaW5kLF9lbGVtZW50VG9Gb2N1cyRmb2N1cyxfcmVmcmVzaEVsZW1lbnRzPXJlZnJlc2hFbGVtZW50cyhnZXRLZXlzKCksdXVpZDEpLGVsZW1lbnRzPV9yZWZyZXNoRWxlbWVudHMuZWxlbWVudHMsa2V5MmVsZW1lbnQ9X3JlZnJlc2hFbGVtZW50cy5rZXkyZWxlbWVudCxlbGVtZW50MmtleT1fcmVmcmVzaEVsZW1lbnRzLmVsZW1lbnQya2V5LGZvY3VzYWJsZUVsZW1lbnRzPWdldEZvY3VzYWJsZUVsZW1lbnRzKGNvbnRhaW5lclJlZi5jdXJyZW50LGVsZW1lbnRzKSxzaG91bGRGb2N1c0tleT1udWxsIT1tZXJnZWRBY3RpdmVLZXk/bWVyZ2VkQWN0aXZlS2V5OmZvY3VzYWJsZUVsZW1lbnRzWzBdP2VsZW1lbnQya2V5LmdldChmb2N1c2FibGVFbGVtZW50c1swXSk6bnVsbD09PShfY2hpbGRMaXN0JGZpbmQ9Y2hpbGRMaXN0LmZpbmQoZnVuY3Rpb24obm9kZSl7cmV0dXJuIW5vZGUucHJvcHMuZGlzYWJsZWR9KSl8fHZvaWQgMD09PV9jaGlsZExpc3QkZmluZD92b2lkIDA6X2NoaWxkTGlzdCRmaW5kLmtleSxlbGVtZW50VG9Gb2N1cz1rZXkyZWxlbWVudC5nZXQoc2hvdWxkRm9jdXNLZXkpO3Nob3VsZEZvY3VzS2V5JiZlbGVtZW50VG9Gb2N1cyYmKG51bGw9PWVsZW1lbnRUb0ZvY3VzfHxudWxsPT09KF9lbGVtZW50VG9Gb2N1cyRmb2N1cz1lbGVtZW50VG9Gb2N1cy5mb2N1cyl8fHZvaWQgMD09PV9lbGVtZW50VG9Gb2N1cyRmb2N1c3x8X2VsZW1lbnRUb0ZvY3VzJGZvY3VzLmNhbGwoZWxlbWVudFRvRm9jdXMsb3B0aW9ucykpfX19KTt2YXIgX3VzZU1lcmdlZFN0YXRlNT0oMCx1c2VNZXJnZWRTdGF0ZS5aKShkZWZhdWx0U2VsZWN0ZWRLZXlzfHxbXSx7dmFsdWU6c2VsZWN0ZWRLZXlzLHBvc3RTdGF0ZTpmdW5jdGlvbihrZXlzKXtyZXR1cm4gQXJyYXkuaXNBcnJheShrZXlzKT9rZXlzOm51bGw9PWtleXM/RU1QVFlfTElTVDpba2V5c119fSksX3VzZU1lcmdlZFN0YXRlNj0oMCxzbGljZWRUb0FycmF5LlopKF91c2VNZXJnZWRTdGF0ZTUsMiksbWVyZ2VkU2VsZWN0S2V5cz1fdXNlTWVyZ2VkU3RhdGU2WzBdLHNldE1lcmdlZFNlbGVjdEtleXM9X3VzZU1lcmdlZFN0YXRlNlsxXSx0cmlnZ2VyU2VsZWN0aW9uPWZ1bmN0aW9uKGluZm8pe2lmKHNlbGVjdGFibGUpe3ZhciBuZXdTZWxlY3RLZXlzLHRhcmdldEtleT1pbmZvLmtleSxleGlzdD1tZXJnZWRTZWxlY3RLZXlzLmluY2x1ZGVzKHRhcmdldEtleSk7c2V0TWVyZ2VkU2VsZWN0S2V5cyhuZXdTZWxlY3RLZXlzPW11bHRpcGxlP2V4aXN0P21lcmdlZFNlbGVjdEtleXMuZmlsdGVyKGZ1bmN0aW9uKGtleSl7cmV0dXJuIGtleSE9PXRhcmdldEtleX0pOltdLmNvbmNhdCgoMCx0b0NvbnN1bWFibGVBcnJheS5aKShtZXJnZWRTZWxlY3RLZXlzKSxbdGFyZ2V0S2V5XSk6W3RhcmdldEtleV0pO3ZhciBzZWxlY3RJbmZvPSgwLG9iamVjdFNwcmVhZDIuWikoKDAsb2JqZWN0U3ByZWFkMi5aKSh7fSxpbmZvKSx7fSx7c2VsZWN0ZWRLZXlzOm5ld1NlbGVjdEtleXN9KTtleGlzdD9udWxsPT1vbkRlc2VsZWN0fHxvbkRlc2VsZWN0KHNlbGVjdEluZm8pOm51bGw9PW9uU2VsZWN0fHxvblNlbGVjdChzZWxlY3RJbmZvKX0hbXVsdGlwbGUmJm1lcmdlZE9wZW5LZXlzLmxlbmd0aCYmImlubGluZSIhPT1pbnRlcm5hbE1vZGUmJnRyaWdnZXJPcGVuS2V5cyhFTVBUWV9MSVNUKX0sb25JbnRlcm5hbENsaWNrPXVzZU1lbW9DYWxsYmFjayhmdW5jdGlvbihpbmZvKXtudWxsPT1vbkNsaWNrfHxvbkNsaWNrKHdhcm5JdGVtUHJvcChpbmZvKSksdHJpZ2dlclNlbGVjdGlvbihpbmZvKX0pLG9uSW50ZXJuYWxPcGVuQ2hhbmdlPXVzZU1lbW9DYWxsYmFjayhmdW5jdGlvbihrZXksb3Blbil7dmFyIG5ld09wZW5LZXlzPW1lcmdlZE9wZW5LZXlzLmZpbHRlcihmdW5jdGlvbihrKXtyZXR1cm4gayE9PWtleX0pO2lmKG9wZW4pbmV3T3BlbktleXMucHVzaChrZXkpO2Vsc2UgaWYoImlubGluZSIhPT1pbnRlcm5hbE1vZGUpe3ZhciBzdWJQYXRoS2V5cz1nZXRTdWJQYXRoS2V5czEoa2V5KTtuZXdPcGVuS2V5cz1uZXdPcGVuS2V5cy5maWx0ZXIoZnVuY3Rpb24oayl7cmV0dXJuIXN1YlBhdGhLZXlzLmhhcyhrKX0pfSgwLGlzRXF1YWwuWikobWVyZ2VkT3BlbktleXMsbmV3T3BlbktleXMsITApfHx0cmlnZ2VyT3BlbktleXMobmV3T3BlbktleXMsITApfSksb25JbnRlcm5hbEtleURvd249KHRyaWdnZXJBY2Nlc3NpYmlsaXR5T3Blbj1mdW5jdGlvbihrZXksb3Blbil7dmFyIG5leHRPcGVuPW51bGwhPW9wZW4/b3BlbjohbWVyZ2VkT3BlbktleXMuaW5jbHVkZXMoa2V5KTtvbkludGVybmFsT3BlbkNoYW5nZShrZXksbmV4dE9wZW4pfSxyYWZSZWY9cmVhY3QudXNlUmVmKCksKGFjdGl2ZVJlZj1yZWFjdC51c2VSZWYoKSkuY3VycmVudD1tZXJnZWRBY3RpdmVLZXksY2xlYW5SYWY9ZnVuY3Rpb24oKXtyYWYuWi5jYW5jZWwocmFmUmVmLmN1cnJlbnQpfSxyZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXtjbGVhblJhZigpfX0sW10pLGZ1bmN0aW9uKGUpe3ZhciB3aGljaD1lLndoaWNoO2lmKFtdLmNvbmNhdChBcnJvd0tleXMsW0VOVEVSLEVTQyxIT01FLEVORF0pLmluY2x1ZGVzKHdoaWNoKSl7dmFyIGtleXM9Z2V0S2V5cygpLHJlZnJlc2hlZEVsZW1lbnRzPXJlZnJlc2hFbGVtZW50cyhrZXlzLHV1aWQxKSxfcmVmcmVzaGVkRWxlbWVudHM9cmVmcmVzaGVkRWxlbWVudHMsZWxlbWVudHM9X3JlZnJlc2hlZEVsZW1lbnRzLmVsZW1lbnRzLGtleTJlbGVtZW50PV9yZWZyZXNoZWRFbGVtZW50cy5rZXkyZWxlbWVudCxlbGVtZW50MmtleT1fcmVmcmVzaGVkRWxlbWVudHMuZWxlbWVudDJrZXksZm9jdXNNZW51RWxlbWVudD1mdW5jdGlvbihhY3RpdmVFbGVtZW50LGVsZW1lbnRzKXtmb3IodmFyIGN1cnJlbnQ9YWN0aXZlRWxlbWVudHx8ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtjdXJyZW50Oyl7aWYoZWxlbWVudHMuaGFzKGN1cnJlbnQpKXJldHVybiBjdXJyZW50O2N1cnJlbnQ9Y3VycmVudC5wYXJlbnRFbGVtZW50fXJldHVybiBudWxsfShrZXkyZWxlbWVudC5nZXQobWVyZ2VkQWN0aXZlS2V5KSxlbGVtZW50cyksZm9jdXNNZW51S2V5PWVsZW1lbnQya2V5LmdldChmb2N1c01lbnVFbGVtZW50KSxvZmZzZXRPYmo9ZnVuY3Rpb24obW9kZSxpc1Jvb3RMZXZlbCxpc1J0bCx3aGljaCl7dmFyIF9vZmZzZXRzLHByZXY9InByZXYiLG5leHQ9Im5leHQiLGNoaWxkcmVuPSJjaGlsZHJlbiIscGFyZW50PSJwYXJlbnQiO2lmKCJpbmxpbmUiPT09bW9kZSYmd2hpY2g9PT1FTlRFUilyZXR1cm57aW5saW5lVHJpZ2dlcjohMH07dmFyIGlubGluZT0oMCxkZWZpbmVQcm9wZXJ0eS5aKSgoMCxkZWZpbmVQcm9wZXJ0eS5aKSh7fSxVUCxwcmV2KSxET1dOLG5leHQpLGhvcml6b250YWw9KDAsZGVmaW5lUHJvcGVydHkuWikoKDAsZGVmaW5lUHJvcGVydHkuWikoKDAsZGVmaW5lUHJvcGVydHkuWikoKDAsZGVmaW5lUHJvcGVydHkuWikoe30sTEVGVCxpc1J0bD9uZXh0OnByZXYpLFJJR0hULGlzUnRsP3ByZXY6bmV4dCksRE9XTixjaGlsZHJlbiksRU5URVIsY2hpbGRyZW4pLHZlcnRpY2FsPSgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKHt9LFVQLHByZXYpLERPV04sbmV4dCksRU5URVIsY2hpbGRyZW4pLEVTQyxwYXJlbnQpLExFRlQsaXNSdGw/Y2hpbGRyZW46cGFyZW50KSxSSUdIVCxpc1J0bD9wYXJlbnQ6Y2hpbGRyZW4pO3N3aXRjaChudWxsPT09KF9vZmZzZXRzPSh7aW5saW5lOmlubGluZSxob3Jpem9udGFsOmhvcml6b250YWwsdmVydGljYWw6dmVydGljYWwsaW5saW5lU3ViOmlubGluZSxob3Jpem9udGFsU3ViOnZlcnRpY2FsLHZlcnRpY2FsU3ViOnZlcnRpY2FsfSlbIiIuY29uY2F0KG1vZGUpLmNvbmNhdChpc1Jvb3RMZXZlbD8iIjoiU3ViIildKXx8dm9pZCAwPT09X29mZnNldHM/dm9pZCAwOl9vZmZzZXRzW3doaWNoXSl7Y2FzZSBwcmV2OnJldHVybntvZmZzZXQ6LTEsc2libGluZzohMH07Y2FzZSBuZXh0OnJldHVybntvZmZzZXQ6MSxzaWJsaW5nOiEwfTtjYXNlIHBhcmVudDpyZXR1cm57b2Zmc2V0Oi0xLHNpYmxpbmc6ITF9O2Nhc2UgY2hpbGRyZW46cmV0dXJue29mZnNldDoxLHNpYmxpbmc6ITF9O2RlZmF1bHQ6cmV0dXJuIG51bGx9fShpbnRlcm5hbE1vZGUsMT09PWdldEtleVBhdGgxKGZvY3VzTWVudUtleSwhMCkubGVuZ3RoLGlzUnRsLHdoaWNoKTtpZighb2Zmc2V0T2JqJiZ3aGljaCE9PUhPTUUmJndoaWNoIT09RU5EKXJldHVybjsoQXJyb3dLZXlzLmluY2x1ZGVzKHdoaWNoKXx8W0hPTUUsRU5EXS5pbmNsdWRlcyh3aGljaCkpJiZlLnByZXZlbnREZWZhdWx0KCk7dmFyIHRyeUZvY3VzPWZ1bmN0aW9uKG1lbnVFbGVtZW50KXtpZihtZW51RWxlbWVudCl7dmFyIGZvY3VzVGFyZ2V0RWxlbWVudD1tZW51RWxlbWVudCxsaW5rPW1lbnVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoImEiKTtudWxsIT1saW5rJiZsaW5rLmdldEF0dHJpYnV0ZSgiaHJlZiIpJiYoZm9jdXNUYXJnZXRFbGVtZW50PWxpbmspO3ZhciB0YXJnZXRLZXk9ZWxlbWVudDJrZXkuZ2V0KG1lbnVFbGVtZW50KTtzZXRNZXJnZWRBY3RpdmVLZXkodGFyZ2V0S2V5KSxjbGVhblJhZigpLHJhZlJlZi5jdXJyZW50PSgwLHJhZi5aKShmdW5jdGlvbigpe2FjdGl2ZVJlZi5jdXJyZW50PT09dGFyZ2V0S2V5JiZmb2N1c1RhcmdldEVsZW1lbnQuZm9jdXMoKX0pfX07aWYoW0hPTUUsRU5EXS5pbmNsdWRlcyh3aGljaCl8fG9mZnNldE9iai5zaWJsaW5nfHwhZm9jdXNNZW51RWxlbWVudCl7dmFyIHBhcmVudFF1ZXJ5Q29udGFpbmVyLGZvY3VzYWJsZUVsZW1lbnRzPWdldEZvY3VzYWJsZUVsZW1lbnRzKHBhcmVudFF1ZXJ5Q29udGFpbmVyPWZvY3VzTWVudUVsZW1lbnQmJiJpbmxpbmUiIT09aW50ZXJuYWxNb2RlP2Z1bmN0aW9uKGVsZW1lbnQpe2Zvcih2YXIgY3VycmVudD1lbGVtZW50O2N1cnJlbnQ7KXtpZihjdXJyZW50LmdldEF0dHJpYnV0ZSgiZGF0YS1tZW51LWxpc3QiKSlyZXR1cm4gY3VycmVudDtjdXJyZW50PWN1cnJlbnQucGFyZW50RWxlbWVudH1yZXR1cm4gbnVsbH0oZm9jdXNNZW51RWxlbWVudCk6Y29udGFpbmVyUmVmLmN1cnJlbnQsZWxlbWVudHMpO3RyeUZvY3VzKHdoaWNoPT09SE9NRT9mb2N1c2FibGVFbGVtZW50c1swXTp3aGljaD09PUVORD9mb2N1c2FibGVFbGVtZW50c1tmb2N1c2FibGVFbGVtZW50cy5sZW5ndGgtMV06Z2V0TmV4dEZvY3VzRWxlbWVudChwYXJlbnRRdWVyeUNvbnRhaW5lcixlbGVtZW50cyxmb2N1c01lbnVFbGVtZW50LG9mZnNldE9iai5vZmZzZXQpKX1lbHNlIGlmKG9mZnNldE9iai5pbmxpbmVUcmlnZ2VyKXRyaWdnZXJBY2Nlc3NpYmlsaXR5T3Blbihmb2N1c01lbnVLZXkpO2Vsc2UgaWYob2Zmc2V0T2JqLm9mZnNldD4wKXRyaWdnZXJBY2Nlc3NpYmlsaXR5T3Blbihmb2N1c01lbnVLZXksITApLGNsZWFuUmFmKCkscmFmUmVmLmN1cnJlbnQ9KDAscmFmLlopKGZ1bmN0aW9uKCl7cmVmcmVzaGVkRWxlbWVudHM9cmVmcmVzaEVsZW1lbnRzKGtleXMsdXVpZDEpO3ZhciBjb250cm9sSWQ9Zm9jdXNNZW51RWxlbWVudC5nZXRBdHRyaWJ1dGUoImFyaWEtY29udHJvbHMiKTt0cnlGb2N1cyhnZXROZXh0Rm9jdXNFbGVtZW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNvbnRyb2xJZCkscmVmcmVzaGVkRWxlbWVudHMuZWxlbWVudHMpKX0sNSk7ZWxzZSBpZihvZmZzZXRPYmoub2Zmc2V0PDApe3ZhciBrZXlQYXRoPWdldEtleVBhdGgxKGZvY3VzTWVudUtleSwhMCkscGFyZW50S2V5PWtleVBhdGhba2V5UGF0aC5sZW5ndGgtMl0scGFyZW50TWVudUVsZW1lbnQ9a2V5MmVsZW1lbnQuZ2V0KHBhcmVudEtleSk7dHJpZ2dlckFjY2Vzc2liaWxpdHlPcGVuKHBhcmVudEtleSwhMSksdHJ5Rm9jdXMocGFyZW50TWVudUVsZW1lbnQpfX1udWxsPT1vbktleURvd258fG9uS2V5RG93bihlKX0pO3JlYWN0LnVzZUVmZmVjdChmdW5jdGlvbigpe3NldE1vdW50ZWQoITApfSxbXSk7dmFyIHByaXZhdGVDb250ZXh0PXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm57X2ludGVybmFsUmVuZGVyTWVudUl0ZW06X2ludGVybmFsUmVuZGVyTWVudUl0ZW0sX2ludGVybmFsUmVuZGVyU3ViTWVudUl0ZW06X2ludGVybmFsUmVuZGVyU3ViTWVudUl0ZW19fSxbX2ludGVybmFsUmVuZGVyTWVudUl0ZW0sX2ludGVybmFsUmVuZGVyU3ViTWVudUl0ZW1dKSx3cmFwcGVkQ2hpbGRMaXN0PSJob3Jpem9udGFsIiE9PWludGVybmFsTW9kZXx8ZGlzYWJsZWRPdmVyZmxvdz9jaGlsZExpc3Q6Y2hpbGRMaXN0Lm1hcChmdW5jdGlvbihjaGlsZCxpbmRleCl7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5oZXJpdGFibGVDb250ZXh0UHJvdmlkZXIse2tleTpjaGlsZC5rZXksb3ZlcmZsb3dEaXNhYmxlZDppbmRleD5sYXN0VmlzaWJsZUluZGV4fSxjaGlsZCl9KSxjb250YWluZXI9cmVhY3QuY3JlYXRlRWxlbWVudChlcy5aLCgwLGVzbV9leHRlbmRzLlopKHtpZDppZCxyZWY6Y29udGFpbmVyUmVmLHByZWZpeENsczoiIi5jb25jYXQocHJlZml4Q2xzLCItb3ZlcmZsb3ciKSxjb21wb25lbnQ6InVsIixpdGVtQ29tcG9uZW50OmVzX01lbnVJdGVtLGNsYXNzTmFtZTpjbGFzc25hbWVzX2RlZmF1bHQoKShwcmVmaXhDbHMsIiIuY29uY2F0KHByZWZpeENscywiLXJvb3QiKSwiIi5jb25jYXQocHJlZml4Q2xzLCItIikuY29uY2F0KGludGVybmFsTW9kZSksY2xhc3NOYW1lLCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKHt9LCIiLmNvbmNhdChwcmVmaXhDbHMsIi1pbmxpbmUtY29sbGFwc2VkIiksaW50ZXJuYWxJbmxpbmVDb2xsYXBzZWQpLCIiLmNvbmNhdChwcmVmaXhDbHMsIi1ydGwiKSxpc1J0bCkscm9vdENsYXNzTmFtZSksZGlyOmRpcmVjdGlvbixzdHlsZTpzdHlsZSxyb2xlOiJtZW51Iix0YWJJbmRleDp2b2lkIDA9PT1fcmVmJHRhYkluZGV4PzA6X3JlZiR0YWJJbmRleCxkYXRhOndyYXBwZWRDaGlsZExpc3QscmVuZGVyUmF3SXRlbTpmdW5jdGlvbihub2RlKXtyZXR1cm4gbm9kZX0scmVuZGVyUmF3UmVzdDpmdW5jdGlvbihvbWl0SXRlbXMpe3ZhciBsZW49b21pdEl0ZW1zLmxlbmd0aCxvcmlnaW5PbWl0SXRlbXM9bGVuP2NoaWxkTGlzdC5zbGljZSgtbGVuKTpudWxsO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KFN1Yk1lbnUse2V2ZW50S2V5Ok9WRVJGTE9XX0tFWSx0aXRsZTpvdmVyZmxvd2VkSW5kaWNhdG9yLGRpc2FibGVkOmFsbFZpc2libGUsaW50ZXJuYWxQb3B1cENsb3NlOjA9PT1sZW4scG9wdXBDbGFzc05hbWU6b3ZlcmZsb3dlZEluZGljYXRvclBvcHVwQ2xhc3NOYW1lfSxvcmlnaW5PbWl0SXRlbXMpfSxtYXhDb3VudDoiaG9yaXpvbnRhbCIhPT1pbnRlcm5hbE1vZGV8fGRpc2FibGVkT3ZlcmZsb3c/ZXMuWi5JTlZBTElEQVRFOmVzLlouUkVTUE9OU0lWRSxzc3I6ImZ1bGwiLCJkYXRhLW1lbnUtbGlzdCI6ITAsb25WaXNpYmxlQ2hhbmdlOmZ1bmN0aW9uKG5ld0xhc3RJbmRleCl7c2V0TGFzdFZpc2libGVJbmRleChuZXdMYXN0SW5kZXgpfSxvbktleURvd246b25JbnRlcm5hbEtleURvd259LHJlc3RQcm9wcykpO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KFByaXZhdGVDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpwcml2YXRlQ29udGV4dH0scmVhY3QuY3JlYXRlRWxlbWVudChJZENvbnRleHQuUHJvdmlkZXIse3ZhbHVlOnV1aWQxfSxyZWFjdC5jcmVhdGVFbGVtZW50KEluaGVyaXRhYmxlQ29udGV4dFByb3ZpZGVyLHtwcmVmaXhDbHM6cHJlZml4Q2xzLHJvb3RDbGFzc05hbWU6cm9vdENsYXNzTmFtZSxtb2RlOmludGVybmFsTW9kZSxvcGVuS2V5czptZXJnZWRPcGVuS2V5cyxydGw6aXNSdGwsZGlzYWJsZWQ6ZGlzYWJsZWQsbW90aW9uOm1vdW50ZWQ/bW90aW9uOm51bGwsZGVmYXVsdE1vdGlvbnM6bW91bnRlZD9kZWZhdWx0TW90aW9uczpudWxsLGFjdGl2ZUtleTptZXJnZWRBY3RpdmVLZXksb25BY3RpdmU6b25BY3RpdmUsb25JbmFjdGl2ZTpvbkluYWN0aXZlLHNlbGVjdGVkS2V5czptZXJnZWRTZWxlY3RLZXlzLGlubGluZUluZGVudDp2b2lkIDA9PT1fcmVmJGlubGluZUluZGVudD8yNDpfcmVmJGlubGluZUluZGVudCxzdWJNZW51T3BlbkRlbGF5OnZvaWQgMD09PV9yZWYkc3ViTWVudU9wZW5EZWxheT8uMTpfcmVmJHN1Yk1lbnVPcGVuRGVsYXksc3ViTWVudUNsb3NlRGVsYXk6dm9pZCAwPT09X3JlZiRzdWJNZW51Q2xvc2VEZWxhPy4xOl9yZWYkc3ViTWVudUNsb3NlRGVsYSxmb3JjZVN1Yk1lbnVSZW5kZXI6Zm9yY2VTdWJNZW51UmVuZGVyLGJ1aWx0aW5QbGFjZW1lbnRzOmJ1aWx0aW5QbGFjZW1lbnRzLHRyaWdnZXJTdWJNZW51QWN0aW9uOnZvaWQgMD09PV9yZWYkdHJpZ2dlclN1Yk1lbnVBYz8iaG92ZXIiOl9yZWYkdHJpZ2dlclN1Yk1lbnVBYyxnZXRQb3B1cENvbnRhaW5lcjpnZXRQb3B1cENvbnRhaW5lcixpdGVtSWNvbjppdGVtSWNvbixleHBhbmRJY29uOmV4cGFuZEljb24sb25JdGVtQ2xpY2s6b25JbnRlcm5hbENsaWNrLG9uT3BlbkNoYW5nZTpvbkludGVybmFsT3BlbkNoYW5nZX0scmVhY3QuY3JlYXRlRWxlbWVudChQYXRoVXNlckNvbnRleHQuUHJvdmlkZXIse3ZhbHVlOnBhdGhVc2VyQ29udGV4dH0sY29udGFpbmVyKSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTp7ZGlzcGxheToibm9uZSJ9LCJhcmlhLWhpZGRlbiI6ITB9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoUGF0aFJlZ2lzdGVyQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6cmVnaXN0ZXJQYXRoQ29udGV4dH0sbWVhc3VyZUNoaWxkTGlzdCkpKSkpfSk7RXhwb3J0TWVudS5JdGVtPWVzX01lbnVJdGVtLEV4cG9ydE1lbnUuU3ViTWVudT1TdWJNZW51LEV4cG9ydE1lbnUuSXRlbUdyb3VwPU1lbnVJdGVtR3JvdXAsRXhwb3J0TWVudS5EaXZpZGVyPURpdmlkZXI7dmFyIG5vZGVfbW9kdWxlc19jbGFzc25hbWVzPV9fd2VicGFja19yZXF1aXJlX18oMTMxNDQpLG5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKG5vZGVfbW9kdWxlc19jbGFzc25hbWVzKTtsZXQgU2lkZXJDb250ZXh0PXJlYWN0LmNyZWF0ZUNvbnRleHQoe30pO3ZhciBFbGxpcHNpc091dGxpbmVkPV9fd2VicGFja19yZXF1aXJlX18oODk3MDUpLHVzZUV2ZW50PV9fd2VicGFja19yZXF1aXJlX18oNzc1MjcpLHJjX3V0aWxfZXNfb21pdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDEwMzY2KSxtb3Rpb249X193ZWJwYWNrX3JlcXVpcmVfXygzMzYwMykscmVhY3ROb2RlPV9fd2VicGFja19yZXF1aXJlX18oOTYxNTkpLGNvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzEyNCksdXNlQ1NTVmFyQ2xzPV9fd2VicGFja19yZXF1aXJlX18oMzU3OTIpO2xldCBNZW51Q29udGV4dF9NZW51Q29udGV4dD0oMCxyZWFjdC5jcmVhdGVDb250ZXh0KSh7cHJlZml4Q2xzOiIiLGZpcnN0TGV2ZWw6ITAsaW5saW5lQ29sbGFwc2VkOiExfSk7dmFyIE1lbnVEaXZpZGVyX3Jlc3Q9ZnVuY3Rpb24ocyxlKXt2YXIgdD17fTtmb3IodmFyIHAgaW4gcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxwKSYmMD5lLmluZGV4T2YocCkmJih0W3BdPXNbcF0pO2lmKG51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKWZvcih2YXIgaT0wLHA9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtpPHAubGVuZ3RoO2krKykwPmUuaW5kZXhPZihwW2ldKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMscFtpXSkmJih0W3BbaV1dPXNbcFtpXV0pO3JldHVybiB0fTtsZXQgTWVudURpdmlkZXI9cHJvcHM9PntsZXR7cHJlZml4Q2xzOmN1c3RvbWl6ZVByZWZpeENscyxjbGFzc05hbWUsZGFzaGVkfT1wcm9wcyxyZXN0UHJvcHM9TWVudURpdmlkZXJfcmVzdChwcm9wcyxbInByZWZpeENscyIsImNsYXNzTmFtZSIsImRhc2hlZCJdKSx7Z2V0UHJlZml4Q2xzfT1yZWFjdC51c2VDb250ZXh0KGNvbnRleHQuRV8pLHByZWZpeENscz1nZXRQcmVmaXhDbHMoIm1lbnUiLGN1c3RvbWl6ZVByZWZpeENscyksY2xhc3NTdHJpbmc9bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKHtbYCR7cHJlZml4Q2xzfS1pdGVtLWRpdmlkZXItZGFzaGVkYF06ISFkYXNoZWR9LGNsYXNzTmFtZSk7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoRGl2aWRlcixPYmplY3QuYXNzaWduKHtjbGFzc05hbWU6Y2xhc3NTdHJpbmd9LHJlc3RQcm9wcykpfTt2YXIgQ2hpbGRyZW5fdG9BcnJheT1fX3dlYnBhY2tfcmVxdWlyZV9fKDM3NDE5KSx0b29sdGlwPV9fd2VicGFja19yZXF1aXJlX18oNjE3ODEpO2xldCBNZW51SXRlbV9NZW51SXRlbT1wcm9wcz0+e3ZhciBfYTtsZXR7Y2xhc3NOYW1lLGNoaWxkcmVuLGljb24sdGl0bGUsZGFuZ2VyLGV4dHJhfT1wcm9wcyx7cHJlZml4Q2xzLGZpcnN0TGV2ZWwsZGlyZWN0aW9uLGRpc2FibGVNZW51SXRlbVRpdGxlVG9vbHRpcCxpbmxpbmVDb2xsYXBzZWQ6aXNJbmxpbmVDb2xsYXBzZWR9PXJlYWN0LnVzZUNvbnRleHQoTWVudUNvbnRleHRfTWVudUNvbnRleHQpLHtzaWRlckNvbGxhcHNlZH09cmVhY3QudXNlQ29udGV4dChTaWRlckNvbnRleHQpLHRvb2x0aXBUaXRsZT10aXRsZTt2b2lkIDA9PT10aXRsZT90b29sdGlwVGl0bGU9Zmlyc3RMZXZlbD9jaGlsZHJlbjoiIjohMT09PXRpdGxlJiYodG9vbHRpcFRpdGxlPSIiKTtsZXQgdG9vbHRpcFByb3BzPXt0aXRsZTp0b29sdGlwVGl0bGV9O3NpZGVyQ29sbGFwc2VkfHxpc0lubGluZUNvbGxhcHNlZHx8KHRvb2x0aXBQcm9wcy50aXRsZT1udWxsLHRvb2x0aXBQcm9wcy5vcGVuPSExKTtsZXQgY2hpbGRyZW5MZW5ndGg9KDAsQ2hpbGRyZW5fdG9BcnJheS5aKShjaGlsZHJlbikubGVuZ3RoLHJldHVybk5vZGU9cmVhY3QuY3JlYXRlRWxlbWVudChlc19NZW51SXRlbSxPYmplY3QuYXNzaWduKHt9LCgwLHJjX3V0aWxfZXNfb21pdC5aKShwcm9wcyxbInRpdGxlIiwiaWNvbiIsImRhbmdlciJdKSx7Y2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKSh7W2Ake3ByZWZpeENsc30taXRlbS1kYW5nZXJgXTpkYW5nZXIsW2Ake3ByZWZpeENsc30taXRlbS1vbmx5LWNoaWxkYF06KGljb24/Y2hpbGRyZW5MZW5ndGgrMTpjaGlsZHJlbkxlbmd0aCk9PT0xfSxjbGFzc05hbWUpLHRpdGxlOiJzdHJpbmciPT10eXBlb2YgdGl0bGU/dGl0bGU6dm9pZCAwfSksKDAscmVhY3ROb2RlLlRtKShpY29uLHtjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKHJlYWN0LmlzVmFsaWRFbGVtZW50KGljb24pP251bGw9PT0oX2E9aWNvbi5wcm9wcyl8fHZvaWQgMD09PV9hP3ZvaWQgMDpfYS5jbGFzc05hbWU6IiIsYCR7cHJlZml4Q2xzfS1pdGVtLWljb25gKX0pLChpbmxpbmVDb2xsYXBzZWQ9PntsZXQgbGFiZWw9bnVsbD09Y2hpbGRyZW4/dm9pZCAwOmNoaWxkcmVuWzBdLHdyYXBOb2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKGAke3ByZWZpeENsc30tdGl0bGUtY29udGVudGAse1tgJHtwcmVmaXhDbHN9LXRpdGxlLWNvbnRlbnQtd2l0aC1leHRyYWBdOiEhZXh0cmF8fDA9PT1leHRyYX0pfSxjaGlsZHJlbik7cmV0dXJuKCFpY29ufHxyZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZHJlbikmJiJzcGFuIj09PWNoaWxkcmVuLnR5cGUpJiZjaGlsZHJlbiYmaW5saW5lQ29sbGFwc2VkJiZmaXJzdExldmVsJiYic3RyaW5nIj09dHlwZW9mIGxhYmVsP3JlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtwcmVmaXhDbHN9LWlubGluZS1jb2xsYXBzZWQtbm9pY29uYH0sbGFiZWwuY2hhckF0KDApKTp3cmFwTm9kZX0pKGlzSW5saW5lQ29sbGFwc2VkKSk7cmV0dXJuIGRpc2FibGVNZW51SXRlbVRpdGxlVG9vbHRpcHx8KHJldHVybk5vZGU9cmVhY3QuY3JlYXRlRWxlbWVudCh0b29sdGlwLlosT2JqZWN0LmFzc2lnbih7fSx0b29sdGlwUHJvcHMse3BsYWNlbWVudDoicnRsIj09PWRpcmVjdGlvbj8ibGVmdCI6InJpZ2h0IixjbGFzc05hbWVzOntyb290OmAke3ByZWZpeENsc30taW5saW5lLWNvbGxhcHNlZC10b29sdGlwYH19KSxyZXR1cm5Ob2RlKSkscmV0dXJuTm9kZX07dmFyIE92ZXJyaWRlQ29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDc2NTI5KSxjc3NpbmpzX2VzPV9fd2VicGFja19yZXF1aXJlX18oNDQ4OTkpLGZhc3RfY29sb3JfZXM9X193ZWJwYWNrX3JlcXVpcmVfXygyNDMyNyksc3R5bGU9X193ZWJwYWNrX3JlcXVpcmVfXygxNDc0NyksY29sbGFwc2U9X193ZWJwYWNrX3JlcXVpcmVfXygzMzUwNyksc2xpZGU9X193ZWJwYWNrX3JlcXVpcmVfXyg2Nzc3MSksem9vbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDUwNDM4KSxnZW5TdHlsZVV0aWxzPV9fd2VicGFja19yZXF1aXJlX18oODM1NTkpLGNzc2luanNfdXRpbHNfZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0MjU1OSk7bGV0IGdldEhvcml6b250YWxTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHMsbW90aW9uRHVyYXRpb25TbG93LGhvcml6b250YWxMaW5lSGVpZ2h0LGNvbG9yU3BsaXQsbGluZVdpZHRoLGxpbmVUeXBlLGl0ZW1QYWRkaW5nSW5saW5lfT10b2tlbjtyZXR1cm57W2Ake2NvbXBvbmVudENsc30taG9yaXpvbnRhbGBdOntsaW5lSGVpZ2h0Omhvcml6b250YWxMaW5lSGVpZ2h0LGJvcmRlcjowLGJvcmRlckJvdHRvbTpgJHsoMCxjc3NpbmpzX2VzLmJmKShsaW5lV2lkdGgpfSAke2xpbmVUeXBlfSAke2NvbG9yU3BsaXR9YCxib3hTaGFkb3c6Im5vbmUiLCImOjphZnRlciI6e2Rpc3BsYXk6ImJsb2NrIixjbGVhcjoiYm90aCIsaGVpZ2h0OjAsY29udGVudDonIlxcMjAiJ30sW2Ake2NvbXBvbmVudENsc30taXRlbSwgJHtjb21wb25lbnRDbHN9LXN1Ym1lbnVgXTp7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHZlcnRpY2FsQWxpZ246ImJvdHRvbSIscGFkZGluZ0lubGluZTppdGVtUGFkZGluZ0lubGluZX0sW2A+ICR7Y29tcG9uZW50Q2xzfS1pdGVtOmhvdmVyLAogICAgICAgID4gJHtjb21wb25lbnRDbHN9LWl0ZW0tYWN0aXZlLAogICAgICAgID4gJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUgJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUtdGl0bGU6aG92ZXJgXTp7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCJ9LFtgJHtjb21wb25lbnRDbHN9LWl0ZW0sICR7Y29tcG9uZW50Q2xzfS1zdWJtZW51LXRpdGxlYF06e3RyYW5zaXRpb246YGJvcmRlci1jb2xvciAke21vdGlvbkR1cmF0aW9uU2xvd30sYmFja2dyb3VuZCAke21vdGlvbkR1cmF0aW9uU2xvd31gfSxbYCR7Y29tcG9uZW50Q2xzfS1zdWJtZW51LWFycm93YF06e2Rpc3BsYXk6Im5vbmUifX19fSxnZXRSVExTdHlsZT1fcmVmPT57bGV0e2NvbXBvbmVudENscyxtZW51QXJyb3dPZmZzZXQsY2FsY309X3JlZjtyZXR1cm57W2Ake2NvbXBvbmVudENsc30tcnRsYF06e2RpcmVjdGlvbjoicnRsIn0sW2Ake2NvbXBvbmVudENsc30tc3VibWVudS1ydGxgXTp7dHJhbnNmb3JtT3JpZ2luOiIxMDAlIDAifSxbYCR7Y29tcG9uZW50Q2xzfS1ydGwke2NvbXBvbmVudENsc30tdmVydGljYWwsCiAgICAke2NvbXBvbmVudENsc30tc3VibWVudS1ydGwgJHtjb21wb25lbnRDbHN9LXZlcnRpY2FsYF06e1tgJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUtYXJyb3dgXTp7IiY6OmJlZm9yZSI6e3RyYW5zZm9ybTpgcm90YXRlKC00NWRlZykgdHJhbnNsYXRlWSgkeygwLGNzc2luanNfZXMuYmYpKGNhbGMobWVudUFycm93T2Zmc2V0KS5tdWwoLTEpLmVxdWFsKCkpfSlgfSwiJjo6YWZ0ZXIiOnt0cmFuc2Zvcm06YHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlWSgkeygwLGNzc2luanNfZXMuYmYpKG1lbnVBcnJvd09mZnNldCl9KWB9fX19fSxhY2Nlc3NpYmlsaXR5Rm9jdXM9dG9rZW49Pk9iamVjdC5hc3NpZ24oe30sKDAsc3R5bGUub04pKHRva2VuKSksZ2V0VGhlbWVTdHlsZT0odG9rZW4sdGhlbWVTdWZmaXgpPT57bGV0e2NvbXBvbmVudENscyxpdGVtQ29sb3IsaXRlbVNlbGVjdGVkQ29sb3Isc3ViTWVudUl0ZW1TZWxlY3RlZENvbG9yLGdyb3VwVGl0bGVDb2xvcixpdGVtQmcsc3ViTWVudUl0ZW1CZyxpdGVtU2VsZWN0ZWRCZyxhY3RpdmVCYXJIZWlnaHQsYWN0aXZlQmFyV2lkdGgsYWN0aXZlQmFyQm9yZGVyV2lkdGgsbW90aW9uRHVyYXRpb25TbG93LG1vdGlvbkVhc2VJbk91dCxtb3Rpb25FYXNlT3V0LGl0ZW1QYWRkaW5nSW5saW5lLG1vdGlvbkR1cmF0aW9uTWlkLGl0ZW1Ib3ZlckNvbG9yLGxpbmVUeXBlLGNvbG9yU3BsaXQsaXRlbURpc2FibGVkQ29sb3IsZGFuZ2VySXRlbUNvbG9yLGRhbmdlckl0ZW1Ib3ZlckNvbG9yLGRhbmdlckl0ZW1TZWxlY3RlZENvbG9yLGRhbmdlckl0ZW1BY3RpdmVCZyxkYW5nZXJJdGVtU2VsZWN0ZWRCZyxwb3B1cEJnLGl0ZW1Ib3ZlckJnLGl0ZW1BY3RpdmVCZyxtZW51U3ViTWVudUJnLGhvcml6b250YWxJdGVtU2VsZWN0ZWRDb2xvcixob3Jpem9udGFsSXRlbVNlbGVjdGVkQmcsaG9yaXpvbnRhbEl0ZW1Cb3JkZXJSYWRpdXMsaG9yaXpvbnRhbEl0ZW1Ib3ZlckJnfT10b2tlbjtyZXR1cm57W2Ake2NvbXBvbmVudENsc30tJHt0aGVtZVN1ZmZpeH0sICR7Y29tcG9uZW50Q2xzfS0ke3RoZW1lU3VmZml4fSA+ICR7Y29tcG9uZW50Q2xzfWBdOntjb2xvcjppdGVtQ29sb3IsYmFja2dyb3VuZDppdGVtQmcsW2AmJHtjb21wb25lbnRDbHN9LXJvb3Q6Zm9jdXMtdmlzaWJsZWBdOk9iamVjdC5hc3NpZ24oe30sYWNjZXNzaWJpbGl0eUZvY3VzKHRva2VuKSksW2Ake2NvbXBvbmVudENsc30taXRlbWBdOnsiJi1ncm91cC10aXRsZSwgJi1leHRyYSI6e2NvbG9yOmdyb3VwVGl0bGVDb2xvcn19LFtgJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUtc2VsZWN0ZWQgPiAke2NvbXBvbmVudENsc30tc3VibWVudS10aXRsZWBdOntjb2xvcjpzdWJNZW51SXRlbVNlbGVjdGVkQ29sb3J9LFtgJHtjb21wb25lbnRDbHN9LWl0ZW0sICR7Y29tcG9uZW50Q2xzfS1zdWJtZW51LXRpdGxlYF06e2NvbG9yOml0ZW1Db2xvcixbYCY6bm90KCR7Y29tcG9uZW50Q2xzfS1pdGVtLWRpc2FibGVkKTpmb2N1cy12aXNpYmxlYF06T2JqZWN0LmFzc2lnbih7fSxhY2Nlc3NpYmlsaXR5Rm9jdXModG9rZW4pKX0sW2Ake2NvbXBvbmVudENsc30taXRlbS1kaXNhYmxlZCwgJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUtZGlzYWJsZWRgXTp7Y29sb3I6YCR7aXRlbURpc2FibGVkQ29sb3J9ICFpbXBvcnRhbnRgfSxbYCR7Y29tcG9uZW50Q2xzfS1pdGVtOm5vdCgke2NvbXBvbmVudENsc30taXRlbS1zZWxlY3RlZCk6bm90KCR7Y29tcG9uZW50Q2xzfS1zdWJtZW51LXNlbGVjdGVkKWBdOntbYCY6aG92ZXIsID4gJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUtdGl0bGU6aG92ZXJgXTp7Y29sb3I6aXRlbUhvdmVyQ29sb3J9fSxbYCY6bm90KCR7Y29tcG9uZW50Q2xzfS1ob3Jpem9udGFsKWBdOntbYCR7Y29tcG9uZW50Q2xzfS1pdGVtOm5vdCgke2NvbXBvbmVudENsc30taXRlbS1zZWxlY3RlZClgXTp7IiY6aG92ZXIiOntiYWNrZ3JvdW5kQ29sb3I6aXRlbUhvdmVyQmd9LCImOmFjdGl2ZSI6e2JhY2tncm91bmRDb2xvcjppdGVtQWN0aXZlQmd9fSxbYCR7Y29tcG9uZW50Q2xzfS1zdWJtZW51LXRpdGxlYF06eyImOmhvdmVyIjp7YmFja2dyb3VuZENvbG9yOml0ZW1Ib3ZlckJnfSwiJjphY3RpdmUiOntiYWNrZ3JvdW5kQ29sb3I6aXRlbUFjdGl2ZUJnfX19LFtgJHtjb21wb25lbnRDbHN9LWl0ZW0tZGFuZ2VyYF06e2NvbG9yOmRhbmdlckl0ZW1Db2xvcixbYCYke2NvbXBvbmVudENsc30taXRlbTpob3ZlcmBdOntbYCY6bm90KCR7Y29tcG9uZW50Q2xzfS1pdGVtLXNlbGVjdGVkKTpub3QoJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUtc2VsZWN0ZWQpYF06e2NvbG9yOmRhbmdlckl0ZW1Ib3ZlckNvbG9yfX0sW2AmJHtjb21wb25lbnRDbHN9LWl0ZW06YWN0aXZlYF06e2JhY2tncm91bmQ6ZGFuZ2VySXRlbUFjdGl2ZUJnfX0sW2Ake2NvbXBvbmVudENsc30taXRlbSBhYF06eyImLCAmOmhvdmVyIjp7Y29sb3I6ImluaGVyaXQifX0sW2Ake2NvbXBvbmVudENsc30taXRlbS1zZWxlY3RlZGBdOntjb2xvcjppdGVtU2VsZWN0ZWRDb2xvcixbYCYke2NvbXBvbmVudENsc30taXRlbS1kYW5nZXJgXTp7Y29sb3I6ZGFuZ2VySXRlbVNlbGVjdGVkQ29sb3J9LCJhLCBhOmhvdmVyIjp7Y29sb3I6ImluaGVyaXQifX0sW2AmICR7Y29tcG9uZW50Q2xzfS1pdGVtLXNlbGVjdGVkYF06e2JhY2tncm91bmRDb2xvcjppdGVtU2VsZWN0ZWRCZyxbYCYke2NvbXBvbmVudENsc30taXRlbS1kYW5nZXJgXTp7YmFja2dyb3VuZENvbG9yOmRhbmdlckl0ZW1TZWxlY3RlZEJnfX0sW2AmJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUgPiAke2NvbXBvbmVudENsc31gXTp7YmFja2dyb3VuZENvbG9yOm1lbnVTdWJNZW51Qmd9LFtgJiR7Y29tcG9uZW50Q2xzfS1wb3B1cCA+ICR7Y29tcG9uZW50Q2xzfWBdOntiYWNrZ3JvdW5kQ29sb3I6cG9wdXBCZ30sW2AmJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUtcG9wdXAgPiAke2NvbXBvbmVudENsc31gXTp7YmFja2dyb3VuZENvbG9yOnBvcHVwQmd9LFtgJiR7Y29tcG9uZW50Q2xzfS1ob3Jpem9udGFsYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCJkYXJrIj09PXRoZW1lU3VmZml4P3tib3JkZXJCb3R0b206MH06e30pLHtbYD4gJHtjb21wb25lbnRDbHN9LWl0ZW0sID4gJHtjb21wb25lbnRDbHN9LXN1Ym1lbnVgXTp7dG9wOmFjdGl2ZUJhckJvcmRlcldpZHRoLG1hcmdpblRvcDp0b2tlbi5jYWxjKGFjdGl2ZUJhckJvcmRlcldpZHRoKS5tdWwoLTEpLmVxdWFsKCksbWFyZ2luQm90dG9tOjAsYm9yZGVyUmFkaXVzOmhvcml6b250YWxJdGVtQm9yZGVyUmFkaXVzLCImOjphZnRlciI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaW5zZXRJbmxpbmU6aXRlbVBhZGRpbmdJbmxpbmUsYm90dG9tOjAsYm9yZGVyQm90dG9tOmAkeygwLGNzc2luanNfZXMuYmYpKGFjdGl2ZUJhckhlaWdodCl9IHNvbGlkIHRyYW5zcGFyZW50YCx0cmFuc2l0aW9uOmBib3JkZXItY29sb3IgJHttb3Rpb25EdXJhdGlvblNsb3d9ICR7bW90aW9uRWFzZUluT3V0fWAsY29udGVudDonIiInfSwiJjpob3ZlciwgJi1hY3RpdmUsICYtb3BlbiI6e2JhY2tncm91bmQ6aG9yaXpvbnRhbEl0ZW1Ib3ZlckJnLCImOjphZnRlciI6e2JvcmRlckJvdHRvbVdpZHRoOmFjdGl2ZUJhckhlaWdodCxib3JkZXJCb3R0b21Db2xvcjpob3Jpem9udGFsSXRlbVNlbGVjdGVkQ29sb3J9fSwiJi1zZWxlY3RlZCI6e2NvbG9yOmhvcml6b250YWxJdGVtU2VsZWN0ZWRDb2xvcixiYWNrZ3JvdW5kQ29sb3I6aG9yaXpvbnRhbEl0ZW1TZWxlY3RlZEJnLCImOmhvdmVyIjp7YmFja2dyb3VuZENvbG9yOmhvcml6b250YWxJdGVtU2VsZWN0ZWRCZ30sIiY6OmFmdGVyIjp7Ym9yZGVyQm90dG9tV2lkdGg6YWN0aXZlQmFySGVpZ2h0LGJvcmRlckJvdHRvbUNvbG9yOmhvcml6b250YWxJdGVtU2VsZWN0ZWRDb2xvcn19fX0pLFtgJiR7Y29tcG9uZW50Q2xzfS1yb290YF06e1tgJiR7Y29tcG9uZW50Q2xzfS1pbmxpbmUsICYke2NvbXBvbmVudENsc30tdmVydGljYWxgXTp7Ym9yZGVySW5saW5lRW5kOmAkeygwLGNzc2luanNfZXMuYmYpKGFjdGl2ZUJhckJvcmRlcldpZHRoKX0gJHtsaW5lVHlwZX0gJHtjb2xvclNwbGl0fWB9fSxbYCYke2NvbXBvbmVudENsc30taW5saW5lYF06e1tgJHtjb21wb25lbnRDbHN9LXN1YiR7Y29tcG9uZW50Q2xzfS1pbmxpbmVgXTp7YmFja2dyb3VuZDpzdWJNZW51SXRlbUJnfSxbYCR7Y29tcG9uZW50Q2xzfS1pdGVtYF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsIiY6OmFmdGVyIjp7cG9zaXRpb246ImFic29sdXRlIixpbnNldEJsb2NrOjAsaW5zZXRJbmxpbmVFbmQ6MCxib3JkZXJJbmxpbmVFbmQ6YCR7KDAsY3NzaW5qc19lcy5iZikoYWN0aXZlQmFyV2lkdGgpfSBzb2xpZCAke2l0ZW1TZWxlY3RlZENvbG9yfWAsdHJhbnNmb3JtOiJzY2FsZVkoMC4wMDAxKSIsb3BhY2l0eTowLHRyYW5zaXRpb246YHRyYW5zZm9ybSAke21vdGlvbkR1cmF0aW9uTWlkfSAke21vdGlvbkVhc2VPdXR9LG9wYWNpdHkgJHttb3Rpb25EdXJhdGlvbk1pZH0gJHttb3Rpb25FYXNlT3V0fWAsY29udGVudDonIiInfSxbYCYke2NvbXBvbmVudENsc30taXRlbS1kYW5nZXJgXTp7IiY6OmFmdGVyIjp7Ym9yZGVySW5saW5lRW5kQ29sb3I6ZGFuZ2VySXRlbVNlbGVjdGVkQ29sb3J9fX0sW2Ake2NvbXBvbmVudENsc30tc2VsZWN0ZWQsICR7Y29tcG9uZW50Q2xzfS1pdGVtLXNlbGVjdGVkYF06eyImOjphZnRlciI6e3RyYW5zZm9ybToic2NhbGVZKDEpIixvcGFjaXR5OjEsdHJhbnNpdGlvbjpgdHJhbnNmb3JtICR7bW90aW9uRHVyYXRpb25NaWR9ICR7bW90aW9uRWFzZUluT3V0fSxvcGFjaXR5ICR7bW90aW9uRHVyYXRpb25NaWR9ICR7bW90aW9uRWFzZUluT3V0fWB9fX19fX0sZ2V0VmVydGljYWxJbmxpbmVTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHMsaXRlbUhlaWdodCxpdGVtTWFyZ2luSW5saW5lLHBhZGRpbmcsbWVudUFycm93U2l6ZSxtYXJnaW5YUyxpdGVtTWFyZ2luQmxvY2ssaXRlbVdpZHRoLGl0ZW1QYWRkaW5nSW5saW5lfT10b2tlbixwYWRkaW5nV2l0aEFycm93PXRva2VuLmNhbGMobWVudUFycm93U2l6ZSkuYWRkKHBhZGRpbmcpLmFkZChtYXJnaW5YUykuZXF1YWwoKTtyZXR1cm57W2Ake2NvbXBvbmVudENsc30taXRlbWBdOntwb3NpdGlvbjoicmVsYXRpdmUiLG92ZXJmbG93OiJoaWRkZW4ifSxbYCR7Y29tcG9uZW50Q2xzfS1pdGVtLCAke2NvbXBvbmVudENsc30tc3VibWVudS10aXRsZWBdOntoZWlnaHQ6aXRlbUhlaWdodCxsaW5lSGVpZ2h0OigwLGNzc2luanNfZXMuYmYpKGl0ZW1IZWlnaHQpLHBhZGRpbmdJbmxpbmU6aXRlbVBhZGRpbmdJbmxpbmUsb3ZlcmZsb3c6ImhpZGRlbiIsdGV4dE92ZXJmbG93OiJlbGxpcHNpcyIsbWFyZ2luSW5saW5lOml0ZW1NYXJnaW5JbmxpbmUsbWFyZ2luQmxvY2s6aXRlbU1hcmdpbkJsb2NrLHdpZHRoOml0ZW1XaWR0aH0sW2A+ICR7Y29tcG9uZW50Q2xzfS1pdGVtLAogICAgICAgICAgICA+ICR7Y29tcG9uZW50Q2xzfS1zdWJtZW51ID4gJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUtdGl0bGVgXTp7aGVpZ2h0Oml0ZW1IZWlnaHQsbGluZUhlaWdodDooMCxjc3NpbmpzX2VzLmJmKShpdGVtSGVpZ2h0KX0sW2Ake2NvbXBvbmVudENsc30taXRlbS1ncm91cC1saXN0ICR7Y29tcG9uZW50Q2xzfS1zdWJtZW51LXRpdGxlLAogICAgICAgICAgICAke2NvbXBvbmVudENsc30tc3VibWVudS10aXRsZWBdOntwYWRkaW5nSW5saW5lRW5kOnBhZGRpbmdXaXRoQXJyb3d9fX0sZ2V0VmVydGljYWxTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHMsaWNvbkNscyxpdGVtSGVpZ2h0LGNvbG9yVGV4dExpZ2h0U29saWQsZHJvcGRvd25XaWR0aCxjb250cm9sSGVpZ2h0TEcsbW90aW9uRWFzZU91dCxwYWRkaW5nWEwsaXRlbU1hcmdpbklubGluZSxmb250U2l6ZUxHLG1vdGlvbkR1cmF0aW9uRmFzdCxtb3Rpb25EdXJhdGlvblNsb3cscGFkZGluZ1hTLGJveFNoYWRvd1NlY29uZGFyeSxjb2xsYXBzZWRXaWR0aCxjb2xsYXBzZWRJY29uU2l6ZX09dG9rZW4saW5saW5lSXRlbVN0eWxlPXtoZWlnaHQ6aXRlbUhlaWdodCxsaW5lSGVpZ2h0OigwLGNzc2luanNfZXMuYmYpKGl0ZW1IZWlnaHQpLGxpc3RTdHlsZVBvc2l0aW9uOiJpbnNpZGUiLGxpc3RTdHlsZVR5cGU6ImRpc2MifTtyZXR1cm5be1tjb21wb25lbnRDbHNdOnsiJi1pbmxpbmUsICYtdmVydGljYWwiOk9iamVjdC5hc3NpZ24oe1tgJiR7Y29tcG9uZW50Q2xzfS1yb290YF06e2JveFNoYWRvdzoibm9uZSJ9fSxnZXRWZXJ0aWNhbElubGluZVN0eWxlKHRva2VuKSl9LFtgJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUtcG9wdXBgXTp7W2Ake2NvbXBvbmVudENsc30tdmVydGljYWxgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZ2V0VmVydGljYWxJbmxpbmVTdHlsZSh0b2tlbikpLHtib3hTaGFkb3c6Ym94U2hhZG93U2Vjb25kYXJ5fSl9fSx7W2Ake2NvbXBvbmVudENsc30tc3VibWVudS1wb3B1cCAke2NvbXBvbmVudENsc30tdmVydGljYWwke2NvbXBvbmVudENsc30tc3ViYF06e21pbldpZHRoOmRyb3Bkb3duV2lkdGgsbWF4SGVpZ2h0OmBjYWxjKDEwMHZoIC0gJHsoMCxjc3NpbmpzX2VzLmJmKSh0b2tlbi5jYWxjKGNvbnRyb2xIZWlnaHRMRykubXVsKDIuNSkuZXF1YWwoKSl9KWAscGFkZGluZzoiMCIsb3ZlcmZsb3c6ImhpZGRlbiIsYm9yZGVySW5saW5lRW5kOjAsIiY6bm90KFtjbGFzcyo9Jy1hY3RpdmUnXSkiOntvdmVyZmxvd1g6ImhpZGRlbiIsb3ZlcmZsb3dZOiJhdXRvIn19fSx7W2Ake2NvbXBvbmVudENsc30taW5saW5lYF06e3dpZHRoOiIxMDAlIixbYCYke2NvbXBvbmVudENsc30tcm9vdGBdOntbYCR7Y29tcG9uZW50Q2xzfS1pdGVtLCAke2NvbXBvbmVudENsc30tc3VibWVudS10aXRsZWBdOntkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLHRyYW5zaXRpb246YGJvcmRlci1jb2xvciAke21vdGlvbkR1cmF0aW9uU2xvd30sYmFja2dyb3VuZCAke21vdGlvbkR1cmF0aW9uU2xvd30scGFkZGluZyAke21vdGlvbkR1cmF0aW9uRmFzdH0gJHttb3Rpb25FYXNlT3V0fWAsW2A+ICR7Y29tcG9uZW50Q2xzfS10aXRsZS1jb250ZW50YF06e2ZsZXg6ImF1dG8iLG1pbldpZHRoOjAsb3ZlcmZsb3c6ImhpZGRlbiIsdGV4dE92ZXJmbG93OiJlbGxpcHNpcyJ9LCI+ICoiOntmbGV4OiJub25lIn19fSxbYCR7Y29tcG9uZW50Q2xzfS1zdWIke2NvbXBvbmVudENsc30taW5saW5lYF06e3BhZGRpbmc6MCxib3JkZXI6MCxib3JkZXJSYWRpdXM6MCxib3hTaGFkb3c6Im5vbmUiLFtgJiA+ICR7Y29tcG9uZW50Q2xzfS1zdWJtZW51ID4gJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUtdGl0bGVgXTppbmxpbmVJdGVtU3R5bGUsW2AmICR7Y29tcG9uZW50Q2xzfS1pdGVtLWdyb3VwLXRpdGxlYF06e3BhZGRpbmdJbmxpbmVTdGFydDpwYWRkaW5nWEx9fSxbYCR7Y29tcG9uZW50Q2xzfS1pdGVtYF06aW5saW5lSXRlbVN0eWxlfX0se1tgJHtjb21wb25lbnRDbHN9LWlubGluZS1jb2xsYXBzZWRgXTp7d2lkdGg6Y29sbGFwc2VkV2lkdGgsW2AmJHtjb21wb25lbnRDbHN9LXJvb3RgXTp7W2Ake2NvbXBvbmVudENsc30taXRlbSwgJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUgJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUtdGl0bGVgXTp7W2A+ICR7Y29tcG9uZW50Q2xzfS1pbmxpbmUtY29sbGFwc2VkLW5vaWNvbmBdOntmb250U2l6ZTpmb250U2l6ZUxHLHRleHRBbGlnbjoiY2VudGVyIn19fSxbYD4gJHtjb21wb25lbnRDbHN9LWl0ZW0sCiAgICAgICAgICA+ICR7Y29tcG9uZW50Q2xzfS1pdGVtLWdyb3VwID4gJHtjb21wb25lbnRDbHN9LWl0ZW0tZ3JvdXAtbGlzdCA+ICR7Y29tcG9uZW50Q2xzfS1pdGVtLAogICAgICAgICAgPiAke2NvbXBvbmVudENsc30taXRlbS1ncm91cCA+ICR7Y29tcG9uZW50Q2xzfS1pdGVtLWdyb3VwLWxpc3QgPiAke2NvbXBvbmVudENsc30tc3VibWVudSA+ICR7Y29tcG9uZW50Q2xzfS1zdWJtZW51LXRpdGxlLAogICAgICAgICAgPiAke2NvbXBvbmVudENsc30tc3VibWVudSA+ICR7Y29tcG9uZW50Q2xzfS1zdWJtZW51LXRpdGxlYF06e2luc2V0SW5saW5lU3RhcnQ6MCxwYWRkaW5nSW5saW5lOmBjYWxjKDUwJSAtICR7KDAsY3NzaW5qc19lcy5iZikodG9rZW4uY2FsYyhjb2xsYXBzZWRJY29uU2l6ZSkuZGl2KDIpLmVxdWFsKCkpfSAtICR7KDAsY3NzaW5qc19lcy5iZikoaXRlbU1hcmdpbklubGluZSl9KWAsdGV4dE92ZXJmbG93OiJjbGlwIixbYAogICAgICAgICAgICAke2NvbXBvbmVudENsc30tc3VibWVudS1hcnJvdywKICAgICAgICAgICAgJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUtZXhwYW5kLWljb24KICAgICAgICAgIGBdOntvcGFjaXR5OjB9LFtgJHtjb21wb25lbnRDbHN9LWl0ZW0taWNvbiwgJHtpY29uQ2xzfWBdOnttYXJnaW46MCxmb250U2l6ZTpjb2xsYXBzZWRJY29uU2l6ZSxsaW5lSGVpZ2h0OigwLGNzc2luanNfZXMuYmYpKGl0ZW1IZWlnaHQpLCIrIHNwYW4iOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLG9wYWNpdHk6MH19fSxbYCR7Y29tcG9uZW50Q2xzfS1pdGVtLWljb24sICR7aWNvbkNsc31gXTp7ZGlzcGxheToiaW5saW5lLWJsb2NrIn0sIiYtdG9vbHRpcCI6e3BvaW50ZXJFdmVudHM6Im5vbmUiLFtgJHtjb21wb25lbnRDbHN9LWl0ZW0taWNvbiwgJHtpY29uQ2xzfWBdOntkaXNwbGF5OiJub25lIn0sImEsIGE6aG92ZXIiOntjb2xvcjpjb2xvclRleHRMaWdodFNvbGlkfX0sW2Ake2NvbXBvbmVudENsc30taXRlbS1ncm91cC10aXRsZWBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxzdHlsZS52Uykse3BhZGRpbmdJbmxpbmU6cGFkZGluZ1hTfSl9fV19LGdlbk1lbnVJdGVtU3R5bGU9dG9rZW49PntsZXR7Y29tcG9uZW50Q2xzLG1vdGlvbkR1cmF0aW9uU2xvdyxtb3Rpb25EdXJhdGlvbk1pZCxtb3Rpb25FYXNlSW5PdXQsbW90aW9uRWFzZU91dCxpY29uQ2xzLGljb25TaXplLGljb25NYXJnaW5JbmxpbmVFbmR9PXRva2VuO3JldHVybntbYCR7Y29tcG9uZW50Q2xzfS1pdGVtLCAke2NvbXBvbmVudENsc30tc3VibWVudS10aXRsZWBdOntwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImJsb2NrIixtYXJnaW46MCx3aGl0ZVNwYWNlOiJub3dyYXAiLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYm9yZGVyLWNvbG9yICR7bW90aW9uRHVyYXRpb25TbG93fSxiYWNrZ3JvdW5kICR7bW90aW9uRHVyYXRpb25TbG93fSxwYWRkaW5nIGNhbGMoJHttb3Rpb25EdXJhdGlvblNsb3d9ICsgMC4xcykgJHttb3Rpb25FYXNlSW5PdXR9YCxbYCR7Y29tcG9uZW50Q2xzfS1pdGVtLWljb24sICR7aWNvbkNsc31gXTp7bWluV2lkdGg6aWNvblNpemUsZm9udFNpemU6aWNvblNpemUsdHJhbnNpdGlvbjpgZm9udC1zaXplICR7bW90aW9uRHVyYXRpb25NaWR9ICR7bW90aW9uRWFzZU91dH0sbWFyZ2luICR7bW90aW9uRHVyYXRpb25TbG93fSAke21vdGlvbkVhc2VJbk91dH0sY29sb3IgJHttb3Rpb25EdXJhdGlvblNsb3d9YCwiKyBzcGFuIjp7bWFyZ2luSW5saW5lU3RhcnQ6aWNvbk1hcmdpbklubGluZUVuZCxvcGFjaXR5OjEsdHJhbnNpdGlvbjpgb3BhY2l0eSAke21vdGlvbkR1cmF0aW9uU2xvd30gJHttb3Rpb25FYXNlSW5PdXR9LG1hcmdpbiAke21vdGlvbkR1cmF0aW9uU2xvd30sY29sb3IgJHttb3Rpb25EdXJhdGlvblNsb3d9YH19LFtgJHtjb21wb25lbnRDbHN9LWl0ZW0taWNvbmBdOk9iamVjdC5hc3NpZ24oe30sKDAsc3R5bGUuUm8pKCkpLFtgJiR7Y29tcG9uZW50Q2xzfS1pdGVtLW9ubHktY2hpbGRgXTp7W2A+ICR7aWNvbkNsc30sID4gJHtjb21wb25lbnRDbHN9LWl0ZW0taWNvbmBdOnttYXJnaW5JbmxpbmVFbmQ6MH19fSxbYCR7Y29tcG9uZW50Q2xzfS1pdGVtLWRpc2FibGVkLCAke2NvbXBvbmVudENsc30tc3VibWVudS1kaXNhYmxlZGBdOntiYWNrZ3JvdW5kOiJub25lICFpbXBvcnRhbnQiLGN1cnNvcjoibm90LWFsbG93ZWQiLCImOjphZnRlciI6e2JvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCAhaW1wb3J0YW50In0sYTp7Y29sb3I6ImluaGVyaXQgIWltcG9ydGFudCIsY3Vyc29yOiJub3QtYWxsb3dlZCIscG9pbnRlckV2ZW50czoibm9uZSJ9LFtgPiAke2NvbXBvbmVudENsc30tc3VibWVudS10aXRsZWBdOntjb2xvcjoiaW5oZXJpdCAhaW1wb3J0YW50IixjdXJzb3I6Im5vdC1hbGxvd2VkIn19fX0sZ2VuU3ViTWVudUFycm93U3R5bGU9dG9rZW49PntsZXR7Y29tcG9uZW50Q2xzLG1vdGlvbkR1cmF0aW9uU2xvdyxtb3Rpb25FYXNlSW5PdXQsYm9yZGVyUmFkaXVzLG1lbnVBcnJvd1NpemUsbWVudUFycm93T2Zmc2V0fT10b2tlbjtyZXR1cm57W2Ake2NvbXBvbmVudENsc30tc3VibWVudWBdOnsiJi1leHBhbmQtaWNvbiwgJi1hcnJvdyI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOiI1MCUiLGluc2V0SW5saW5lRW5kOnRva2VuLm1hcmdpbix3aWR0aDptZW51QXJyb3dTaXplLGNvbG9yOiJjdXJyZW50Y29sb3IiLHRyYW5zZm9ybToidHJhbnNsYXRlWSgtNTAlKSIsdHJhbnNpdGlvbjpgdHJhbnNmb3JtICR7bW90aW9uRHVyYXRpb25TbG93fSAke21vdGlvbkVhc2VJbk91dH0sIG9wYWNpdHkgJHttb3Rpb25EdXJhdGlvblNsb3d9YH0sIiYtYXJyb3ciOnsiJjo6YmVmb3JlLCAmOjphZnRlciI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsd2lkdGg6dG9rZW4uY2FsYyhtZW51QXJyb3dTaXplKS5tdWwoLjYpLmVxdWFsKCksaGVpZ2h0OnRva2VuLmNhbGMobWVudUFycm93U2l6ZSkubXVsKC4xNSkuZXF1YWwoKSxiYWNrZ3JvdW5kQ29sb3I6ImN1cnJlbnRjb2xvciIsYm9yZGVyUmFkaXVzLHRyYW5zaXRpb246YGJhY2tncm91bmQgJHttb3Rpb25EdXJhdGlvblNsb3d9ICR7bW90aW9uRWFzZUluT3V0fSx0cmFuc2Zvcm0gJHttb3Rpb25EdXJhdGlvblNsb3d9ICR7bW90aW9uRWFzZUluT3V0fSx0b3AgJHttb3Rpb25EdXJhdGlvblNsb3d9ICR7bW90aW9uRWFzZUluT3V0fSxjb2xvciAke21vdGlvbkR1cmF0aW9uU2xvd30gJHttb3Rpb25FYXNlSW5PdXR9YCxjb250ZW50OiciIid9LCImOjpiZWZvcmUiOnt0cmFuc2Zvcm06YHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlWSgkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLmNhbGMobWVudUFycm93T2Zmc2V0KS5tdWwoLTEpLmVxdWFsKCkpfSlgfSwiJjo6YWZ0ZXIiOnt0cmFuc2Zvcm06YHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZVkoJHsoMCxjc3NpbmpzX2VzLmJmKShtZW51QXJyb3dPZmZzZXQpfSlgfX19fX0sZ2V0QmFzZVN0eWxlPXRva2VuPT57bGV0e2FudENscyxjb21wb25lbnRDbHMsZm9udFNpemUsbW90aW9uRHVyYXRpb25TbG93LG1vdGlvbkR1cmF0aW9uTWlkLG1vdGlvbkVhc2VJbk91dCxwYWRkaW5nWFMscGFkZGluZyxjb2xvclNwbGl0LGxpbmVXaWR0aCx6SW5kZXhQb3B1cCxib3JkZXJSYWRpdXNMRyxzdWJNZW51SXRlbUJvcmRlclJhZGl1cyxtZW51QXJyb3dTaXplLG1lbnVBcnJvd09mZnNldCxsaW5lVHlwZSxncm91cFRpdGxlTGluZUhlaWdodCxncm91cFRpdGxlRm9udFNpemV9PXRva2VuO3JldHVyblt7IiI6e1tjb21wb25lbnRDbHNdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxzdHlsZS5kRikoKSkseyImLWhpZGRlbiI6e2Rpc3BsYXk6Im5vbmUifX0pfSxbYCR7Y29tcG9uZW50Q2xzfS1zdWJtZW51LWhpZGRlbmBdOntkaXNwbGF5OiJub25lIn19LHtbY29tcG9uZW50Q2xzXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLHN0eWxlLldmKSh0b2tlbikpLCgwLHN0eWxlLmRGKSgpKSx7bWFyZ2luQm90dG9tOjAscGFkZGluZ0lubGluZVN0YXJ0OjAsZm9udFNpemUsbGluZUhlaWdodDowLGxpc3RTdHlsZToibm9uZSIsb3V0bGluZToibm9uZSIsdHJhbnNpdGlvbjpgd2lkdGggJHttb3Rpb25EdXJhdGlvblNsb3d9IGN1YmljLWJlemllcigwLjIsIDAsIDAsIDEpIDBzYCwidWwsIG9sIjp7bWFyZ2luOjAscGFkZGluZzowLGxpc3RTdHlsZToibm9uZSJ9LCImLW92ZXJmbG93Ijp7ZGlzcGxheToiZmxleCIsW2Ake2NvbXBvbmVudENsc30taXRlbWBdOntmbGV4OiJub25lIn19LFtgJHtjb21wb25lbnRDbHN9LWl0ZW0sICR7Y29tcG9uZW50Q2xzfS1zdWJtZW51LCAke2NvbXBvbmVudENsc30tc3VibWVudS10aXRsZWBdOntib3JkZXJSYWRpdXM6dG9rZW4uaXRlbUJvcmRlclJhZGl1c30sW2Ake2NvbXBvbmVudENsc30taXRlbS1ncm91cC10aXRsZWBdOntwYWRkaW5nOmAkeygwLGNzc2luanNfZXMuYmYpKHBhZGRpbmdYUyl9ICR7KDAsY3NzaW5qc19lcy5iZikocGFkZGluZyl9YCxmb250U2l6ZTpncm91cFRpdGxlRm9udFNpemUsbGluZUhlaWdodDpncm91cFRpdGxlTGluZUhlaWdodCx0cmFuc2l0aW9uOmBhbGwgJHttb3Rpb25EdXJhdGlvblNsb3d9YH0sW2AmLWhvcml6b250YWwgJHtjb21wb25lbnRDbHN9LXN1Ym1lbnVgXTp7dHJhbnNpdGlvbjpgYm9yZGVyLWNvbG9yICR7bW90aW9uRHVyYXRpb25TbG93fSAke21vdGlvbkVhc2VJbk91dH0sYmFja2dyb3VuZCAke21vdGlvbkR1cmF0aW9uU2xvd30gJHttb3Rpb25FYXNlSW5PdXR9YH0sW2Ake2NvbXBvbmVudENsc30tc3VibWVudSwgJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUtaW5saW5lYF06e3RyYW5zaXRpb246YGJvcmRlci1jb2xvciAke21vdGlvbkR1cmF0aW9uU2xvd30gJHttb3Rpb25FYXNlSW5PdXR9LGJhY2tncm91bmQgJHttb3Rpb25EdXJhdGlvblNsb3d9ICR7bW90aW9uRWFzZUluT3V0fSxwYWRkaW5nICR7bW90aW9uRHVyYXRpb25NaWR9ICR7bW90aW9uRWFzZUluT3V0fWB9LFtgJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUgJHtjb21wb25lbnRDbHN9LXN1YmBdOntjdXJzb3I6ImluaXRpYWwiLHRyYW5zaXRpb246YGJhY2tncm91bmQgJHttb3Rpb25EdXJhdGlvblNsb3d9ICR7bW90aW9uRWFzZUluT3V0fSxwYWRkaW5nICR7bW90aW9uRHVyYXRpb25TbG93fSAke21vdGlvbkVhc2VJbk91dH1gfSxbYCR7Y29tcG9uZW50Q2xzfS10aXRsZS1jb250ZW50YF06e3RyYW5zaXRpb246YGNvbG9yICR7bW90aW9uRHVyYXRpb25TbG93fWAsIiYtd2l0aC1leHRyYSI6e2Rpc3BsYXk6ImlubGluZS1mbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLHdpZHRoOiIxMDAlIn0sW2A+ICR7YW50Q2xzfS10eXBvZ3JhcGh5LWVsbGlwc2lzLXNpbmdsZS1saW5lYF06e2Rpc3BsYXk6ImlubGluZSIsdmVydGljYWxBbGlnbjoidW5zZXQifSxbYCR7Y29tcG9uZW50Q2xzfS1pdGVtLWV4dHJhYF06e21hcmdpbklubGluZVN0YXJ0OiJhdXRvIixwYWRkaW5nSW5saW5lU3RhcnQ6dG9rZW4ucGFkZGluZ319LFtgJHtjb21wb25lbnRDbHN9LWl0ZW0gYWBdOnsiJjo6YmVmb3JlIjp7cG9zaXRpb246ImFic29sdXRlIixpbnNldDowLGJhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQiLGNvbnRlbnQ6JyIiJ319LFtgJHtjb21wb25lbnRDbHN9LWl0ZW0tZGl2aWRlcmBdOntvdmVyZmxvdzoiaGlkZGVuIixsaW5lSGVpZ2h0OjAsYm9yZGVyQ29sb3I6Y29sb3JTcGxpdCxib3JkZXJTdHlsZTpsaW5lVHlwZSxib3JkZXJXaWR0aDowLGJvcmRlclRvcFdpZHRoOmxpbmVXaWR0aCxtYXJnaW5CbG9jazpsaW5lV2lkdGgscGFkZGluZzowLCImLWRhc2hlZCI6e2JvcmRlclN0eWxlOiJkYXNoZWQifX19KSxnZW5NZW51SXRlbVN0eWxlKHRva2VuKSkse1tgJHtjb21wb25lbnRDbHN9LWl0ZW0tZ3JvdXBgXTp7W2Ake2NvbXBvbmVudENsc30taXRlbS1ncm91cC1saXN0YF06e21hcmdpbjowLHBhZGRpbmc6MCxbYCR7Y29tcG9uZW50Q2xzfS1pdGVtLCAke2NvbXBvbmVudENsc30tc3VibWVudS10aXRsZWBdOntwYWRkaW5nSW5saW5lOmAkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLmNhbGMoZm9udFNpemUpLm11bCgyKS5lcXVhbCgpKX0gJHsoMCxjc3NpbmpzX2VzLmJmKShwYWRkaW5nKX1gfX19LCImLXN1Ym1lbnUiOnsiJi1wb3B1cCI6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsekluZGV4OnpJbmRleFBvcHVwLGJvcmRlclJhZGl1czpib3JkZXJSYWRpdXNMRyxib3hTaGFkb3c6Im5vbmUiLHRyYW5zZm9ybU9yaWdpbjoiMCAwIixbYCYke2NvbXBvbmVudENsc30tc3VibWVudWBdOntiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCJ9LCImOjpiZWZvcmUiOntwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0OjAsekluZGV4Oi0xLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLG9wYWNpdHk6MCxjb250ZW50OiciIid9LFtgPiAke2NvbXBvbmVudENsc31gXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7Ym9yZGVyUmFkaXVzOmJvcmRlclJhZGl1c0xHfSxnZW5NZW51SXRlbVN0eWxlKHRva2VuKSksZ2VuU3ViTWVudUFycm93U3R5bGUodG9rZW4pKSx7W2Ake2NvbXBvbmVudENsc30taXRlbSwgJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUgPiAke2NvbXBvbmVudENsc30tc3VibWVudS10aXRsZWBdOntib3JkZXJSYWRpdXM6c3ViTWVudUl0ZW1Cb3JkZXJSYWRpdXN9LFtgJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUtdGl0bGU6OmFmdGVyYF06e3RyYW5zaXRpb246YHRyYW5zZm9ybSAke21vdGlvbkR1cmF0aW9uU2xvd30gJHttb3Rpb25FYXNlSW5PdXR9YH19KX0sW2AKICAgICAgICAgICYtcGxhY2VtZW50LWxlZnRUb3AsCiAgICAgICAgICAmLXBsYWNlbWVudC1ib3R0b21SaWdodCwKICAgICAgICAgIGBdOnt0cmFuc2Zvcm1PcmlnaW46IjEwMCUgMCJ9LFtgCiAgICAgICAgICAmLXBsYWNlbWVudC1sZWZ0Qm90dG9tLAogICAgICAgICAgJi1wbGFjZW1lbnQtdG9wUmlnaHQsCiAgICAgICAgICBgXTp7dHJhbnNmb3JtT3JpZ2luOiIxMDAlIDEwMCUifSxbYAogICAgICAgICAgJi1wbGFjZW1lbnQtcmlnaHRCb3R0b20sCiAgICAgICAgICAmLXBsYWNlbWVudC10b3BMZWZ0LAogICAgICAgICAgYF06e3RyYW5zZm9ybU9yaWdpbjoiMCAxMDAlIn0sW2AKICAgICAgICAgICYtcGxhY2VtZW50LWJvdHRvbUxlZnQsCiAgICAgICAgICAmLXBsYWNlbWVudC1yaWdodFRvcCwKICAgICAgICAgIGBdOnt0cmFuc2Zvcm1PcmlnaW46IjAgMCJ9LFtgCiAgICAgICAgICAmLXBsYWNlbWVudC1sZWZ0VG9wLAogICAgICAgICAgJi1wbGFjZW1lbnQtbGVmdEJvdHRvbQogICAgICAgICAgYF06e3BhZGRpbmdJbmxpbmVFbmQ6dG9rZW4ucGFkZGluZ1hTfSxbYAogICAgICAgICAgJi1wbGFjZW1lbnQtcmlnaHRUb3AsCiAgICAgICAgICAmLXBsYWNlbWVudC1yaWdodEJvdHRvbQogICAgICAgICAgYF06e3BhZGRpbmdJbmxpbmVTdGFydDp0b2tlbi5wYWRkaW5nWFN9LFtgCiAgICAgICAgICAmLXBsYWNlbWVudC10b3BSaWdodCwKICAgICAgICAgICYtcGxhY2VtZW50LXRvcExlZnQKICAgICAgICAgIGBdOntwYWRkaW5nQm90dG9tOnRva2VuLnBhZGRpbmdYU30sW2AKICAgICAgICAgICYtcGxhY2VtZW50LWJvdHRvbVJpZ2h0LAogICAgICAgICAgJi1wbGFjZW1lbnQtYm90dG9tTGVmdAogICAgICAgICAgYF06e3BhZGRpbmdUb3A6dG9rZW4ucGFkZGluZ1hTfX19KSxnZW5TdWJNZW51QXJyb3dTdHlsZSh0b2tlbikpLHtbYCYtaW5saW5lLWNvbGxhcHNlZCAke2NvbXBvbmVudENsc30tc3VibWVudS1hcnJvdywKICAgICAgICAmLWlubGluZSAke2NvbXBvbmVudENsc30tc3VibWVudS1hcnJvd2BdOnsiJjo6YmVmb3JlIjp7dHJhbnNmb3JtOmByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGVYKCR7KDAsY3NzaW5qc19lcy5iZikobWVudUFycm93T2Zmc2V0KX0pYH0sIiY6OmFmdGVyIjp7dHJhbnNmb3JtOmByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZVgoJHsoMCxjc3NpbmpzX2VzLmJmKSh0b2tlbi5jYWxjKG1lbnVBcnJvd09mZnNldCkubXVsKC0xKS5lcXVhbCgpKX0pYH19LFtgJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUtb3BlbiR7Y29tcG9uZW50Q2xzfS1zdWJtZW51LWlubGluZSA+ICR7Y29tcG9uZW50Q2xzfS1zdWJtZW51LXRpdGxlID4gJHtjb21wb25lbnRDbHN9LXN1Ym1lbnUtYXJyb3dgXTp7dHJhbnNmb3JtOmB0cmFuc2xhdGVZKCR7KDAsY3NzaW5qc19lcy5iZikodG9rZW4uY2FsYyhtZW51QXJyb3dTaXplKS5tdWwoLjIpLm11bCgtMSkuZXF1YWwoKSl9KWAsIiY6OmFmdGVyIjp7dHJhbnNmb3JtOmByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGVYKCR7KDAsY3NzaW5qc19lcy5iZikodG9rZW4uY2FsYyhtZW51QXJyb3dPZmZzZXQpLm11bCgtMSkuZXF1YWwoKSl9KWB9LCImOjpiZWZvcmUiOnt0cmFuc2Zvcm06YHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlWCgkeygwLGNzc2luanNfZXMuYmYpKG1lbnVBcnJvd09mZnNldCl9KWB9fX0pfSx7W2Ake2FudENsc30tbGF5b3V0LWhlYWRlcmBdOntbY29tcG9uZW50Q2xzXTp7bGluZUhlaWdodDoiaW5oZXJpdCJ9fX1dfSxwcmVwYXJlQ29tcG9uZW50VG9rZW49dG9rZW49Pnt2YXIgX2EsX2IsX2M7bGV0e2NvbG9yUHJpbWFyeSxjb2xvckVycm9yLGNvbG9yVGV4dERpc2FibGVkLGNvbG9yRXJyb3JCZyxjb2xvclRleHQsY29sb3JUZXh0RGVzY3JpcHRpb24sY29sb3JCZ0NvbnRhaW5lcixjb2xvckZpbGxBbHRlcixjb2xvckZpbGxDb250ZW50LGxpbmVXaWR0aCxsaW5lV2lkdGhCb2xkLGNvbnRyb2xJdGVtQmdBY3RpdmUsY29sb3JCZ1RleHRIb3Zlcixjb250cm9sSGVpZ2h0TEcsbGluZUhlaWdodCxjb2xvckJnRWxldmF0ZWQsbWFyZ2luWFhTLHBhZGRpbmcsZm9udFNpemUsY29udHJvbEhlaWdodFNNLGZvbnRTaXplTEcsY29sb3JUZXh0TGlnaHRTb2xpZCxjb2xvckVycm9ySG92ZXJ9PXRva2VuLGFjdGl2ZUJhcldpZHRoPW51bGwhPT0oX2E9dG9rZW4uYWN0aXZlQmFyV2lkdGgpJiZ2b2lkIDAhPT1fYT9fYTowLGFjdGl2ZUJhckJvcmRlcldpZHRoPW51bGwhPT0oX2I9dG9rZW4uYWN0aXZlQmFyQm9yZGVyV2lkdGgpJiZ2b2lkIDAhPT1fYj9fYjpsaW5lV2lkdGgsaXRlbU1hcmdpbklubGluZT1udWxsIT09KF9jPXRva2VuLml0ZW1NYXJnaW5JbmxpbmUpJiZ2b2lkIDAhPT1fYz9fYzp0b2tlbi5tYXJnaW5YWFMsY29sb3JUZXh0RGFyaz1uZXcgZmFzdF9jb2xvcl9lcy50KGNvbG9yVGV4dExpZ2h0U29saWQpLnNldEEoLjY1KS50b1JnYlN0cmluZygpO3JldHVybntkcm9wZG93bldpZHRoOjE2MCx6SW5kZXhQb3B1cDp0b2tlbi56SW5kZXhQb3B1cEJhc2UrNTAscmFkaXVzSXRlbTp0b2tlbi5ib3JkZXJSYWRpdXNMRyxpdGVtQm9yZGVyUmFkaXVzOnRva2VuLmJvcmRlclJhZGl1c0xHLHJhZGl1c1N1Yk1lbnVJdGVtOnRva2VuLmJvcmRlclJhZGl1c1NNLHN1Yk1lbnVJdGVtQm9yZGVyUmFkaXVzOnRva2VuLmJvcmRlclJhZGl1c1NNLGNvbG9ySXRlbVRleHQ6Y29sb3JUZXh0LGl0ZW1Db2xvcjpjb2xvclRleHQsY29sb3JJdGVtVGV4dEhvdmVyOmNvbG9yVGV4dCxpdGVtSG92ZXJDb2xvcjpjb2xvclRleHQsY29sb3JJdGVtVGV4dEhvdmVySG9yaXpvbnRhbDpjb2xvclByaW1hcnksaG9yaXpvbnRhbEl0ZW1Ib3ZlckNvbG9yOmNvbG9yUHJpbWFyeSxjb2xvckdyb3VwVGl0bGU6Y29sb3JUZXh0RGVzY3JpcHRpb24sZ3JvdXBUaXRsZUNvbG9yOmNvbG9yVGV4dERlc2NyaXB0aW9uLGNvbG9ySXRlbVRleHRTZWxlY3RlZDpjb2xvclByaW1hcnksaXRlbVNlbGVjdGVkQ29sb3I6Y29sb3JQcmltYXJ5LHN1Yk1lbnVJdGVtU2VsZWN0ZWRDb2xvcjpjb2xvclByaW1hcnksY29sb3JJdGVtVGV4dFNlbGVjdGVkSG9yaXpvbnRhbDpjb2xvclByaW1hcnksaG9yaXpvbnRhbEl0ZW1TZWxlY3RlZENvbG9yOmNvbG9yUHJpbWFyeSxjb2xvckl0ZW1CZzpjb2xvckJnQ29udGFpbmVyLGl0ZW1CZzpjb2xvckJnQ29udGFpbmVyLGNvbG9ySXRlbUJnSG92ZXI6Y29sb3JCZ1RleHRIb3ZlcixpdGVtSG92ZXJCZzpjb2xvckJnVGV4dEhvdmVyLGNvbG9ySXRlbUJnQWN0aXZlOmNvbG9yRmlsbENvbnRlbnQsaXRlbUFjdGl2ZUJnOmNvbnRyb2xJdGVtQmdBY3RpdmUsY29sb3JTdWJJdGVtQmc6Y29sb3JGaWxsQWx0ZXIsc3ViTWVudUl0ZW1CZzpjb2xvckZpbGxBbHRlcixjb2xvckl0ZW1CZ1NlbGVjdGVkOmNvbnRyb2xJdGVtQmdBY3RpdmUsaXRlbVNlbGVjdGVkQmc6Y29udHJvbEl0ZW1CZ0FjdGl2ZSxjb2xvckl0ZW1CZ1NlbGVjdGVkSG9yaXpvbnRhbDoidHJhbnNwYXJlbnQiLGhvcml6b250YWxJdGVtU2VsZWN0ZWRCZzoidHJhbnNwYXJlbnQiLGNvbG9yQWN0aXZlQmFyV2lkdGg6MCxhY3RpdmVCYXJXaWR0aCxjb2xvckFjdGl2ZUJhckhlaWdodDpsaW5lV2lkdGhCb2xkLGFjdGl2ZUJhckhlaWdodDpsaW5lV2lkdGhCb2xkLGNvbG9yQWN0aXZlQmFyQm9yZGVyU2l6ZTpsaW5lV2lkdGgsYWN0aXZlQmFyQm9yZGVyV2lkdGgsY29sb3JJdGVtVGV4dERpc2FibGVkOmNvbG9yVGV4dERpc2FibGVkLGl0ZW1EaXNhYmxlZENvbG9yOmNvbG9yVGV4dERpc2FibGVkLGNvbG9yRGFuZ2VySXRlbVRleHQ6Y29sb3JFcnJvcixkYW5nZXJJdGVtQ29sb3I6Y29sb3JFcnJvcixjb2xvckRhbmdlckl0ZW1UZXh0SG92ZXI6Y29sb3JFcnJvcixkYW5nZXJJdGVtSG92ZXJDb2xvcjpjb2xvckVycm9yLGNvbG9yRGFuZ2VySXRlbVRleHRTZWxlY3RlZDpjb2xvckVycm9yLGRhbmdlckl0ZW1TZWxlY3RlZENvbG9yOmNvbG9yRXJyb3IsY29sb3JEYW5nZXJJdGVtQmdBY3RpdmU6Y29sb3JFcnJvckJnLGRhbmdlckl0ZW1BY3RpdmVCZzpjb2xvckVycm9yQmcsY29sb3JEYW5nZXJJdGVtQmdTZWxlY3RlZDpjb2xvckVycm9yQmcsZGFuZ2VySXRlbVNlbGVjdGVkQmc6Y29sb3JFcnJvckJnLGl0ZW1NYXJnaW5JbmxpbmUsaG9yaXpvbnRhbEl0ZW1Cb3JkZXJSYWRpdXM6MCxob3Jpem9udGFsSXRlbUhvdmVyQmc6InRyYW5zcGFyZW50IixpdGVtSGVpZ2h0OmNvbnRyb2xIZWlnaHRMRyxncm91cFRpdGxlTGluZUhlaWdodDpsaW5lSGVpZ2h0LGNvbGxhcHNlZFdpZHRoOjIqY29udHJvbEhlaWdodExHLHBvcHVwQmc6Y29sb3JCZ0VsZXZhdGVkLGl0ZW1NYXJnaW5CbG9jazptYXJnaW5YWFMsaXRlbVBhZGRpbmdJbmxpbmU6cGFkZGluZyxob3Jpem9udGFsTGluZUhlaWdodDpgJHsxLjE1KmNvbnRyb2xIZWlnaHRMR31weGAsaWNvblNpemU6Zm9udFNpemUsaWNvbk1hcmdpbklubGluZUVuZDpjb250cm9sSGVpZ2h0U00tZm9udFNpemUsY29sbGFwc2VkSWNvblNpemU6Zm9udFNpemVMRyxncm91cFRpdGxlRm9udFNpemU6Zm9udFNpemUsZGFya0l0ZW1EaXNhYmxlZENvbG9yOm5ldyBmYXN0X2NvbG9yX2VzLnQoY29sb3JUZXh0TGlnaHRTb2xpZCkuc2V0QSguMjUpLnRvUmdiU3RyaW5nKCksZGFya0l0ZW1Db2xvcjpjb2xvclRleHREYXJrLGRhcmtEYW5nZXJJdGVtQ29sb3I6Y29sb3JFcnJvcixkYXJrSXRlbUJnOiIjMDAxNTI5IixkYXJrUG9wdXBCZzoiIzAwMTUyOSIsZGFya1N1Yk1lbnVJdGVtQmc6IiMwMDBjMTciLGRhcmtJdGVtU2VsZWN0ZWRDb2xvcjpjb2xvclRleHRMaWdodFNvbGlkLGRhcmtJdGVtU2VsZWN0ZWRCZzpjb2xvclByaW1hcnksZGFya0Rhbmdlckl0ZW1TZWxlY3RlZEJnOmNvbG9yRXJyb3IsZGFya0l0ZW1Ib3ZlckJnOiJ0cmFuc3BhcmVudCIsZGFya0dyb3VwVGl0bGVDb2xvcjpjb2xvclRleHREYXJrLGRhcmtJdGVtSG92ZXJDb2xvcjpjb2xvclRleHRMaWdodFNvbGlkLGRhcmtEYW5nZXJJdGVtSG92ZXJDb2xvcjpjb2xvckVycm9ySG92ZXIsZGFya0Rhbmdlckl0ZW1TZWxlY3RlZENvbG9yOmNvbG9yVGV4dExpZ2h0U29saWQsZGFya0Rhbmdlckl0ZW1BY3RpdmVCZzpjb2xvckVycm9yLGl0ZW1XaWR0aDphY3RpdmVCYXJXaWR0aD9gY2FsYygxMDAlICsgJHthY3RpdmVCYXJCb3JkZXJXaWR0aH1weClgOmBjYWxjKDEwMCUgLSAkezIqaXRlbU1hcmdpbklubGluZX1weClgfX07dmFyIG1lbnVfc3R5bGU9ZnVuY3Rpb24ocHJlZml4Q2xzKXtsZXQgcm9vdENscz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06cHJlZml4Q2xzLGluamVjdFN0eWxlPSEoYXJndW1lbnRzLmxlbmd0aD4yKXx8dm9pZCAwPT09YXJndW1lbnRzWzJdfHxhcmd1bWVudHNbMl0sdXNlU3R5bGU9KDAsZ2VuU3R5bGVVdGlscy5JJCkoIk1lbnUiLHRva2VuPT57bGV0e2NvbG9yQmdFbGV2YXRlZCxjb250cm9sSGVpZ2h0TEcsZm9udFNpemUsZGFya0l0ZW1Db2xvcixkYXJrRGFuZ2VySXRlbUNvbG9yLGRhcmtJdGVtQmcsZGFya1N1Yk1lbnVJdGVtQmcsZGFya0l0ZW1TZWxlY3RlZENvbG9yLGRhcmtJdGVtU2VsZWN0ZWRCZyxkYXJrRGFuZ2VySXRlbVNlbGVjdGVkQmcsZGFya0l0ZW1Ib3ZlckJnLGRhcmtHcm91cFRpdGxlQ29sb3IsZGFya0l0ZW1Ib3ZlckNvbG9yLGRhcmtJdGVtRGlzYWJsZWRDb2xvcixkYXJrRGFuZ2VySXRlbUhvdmVyQ29sb3IsZGFya0Rhbmdlckl0ZW1TZWxlY3RlZENvbG9yLGRhcmtEYW5nZXJJdGVtQWN0aXZlQmcscG9wdXBCZyxkYXJrUG9wdXBCZ309dG9rZW4sbWVudUFycm93U2l6ZT10b2tlbi5jYWxjKGZvbnRTaXplKS5kaXYoNykubXVsKDUpLmVxdWFsKCksbWVudVRva2VuPSgwLGNzc2luanNfdXRpbHNfZXMuSVgpKHRva2VuLHttZW51QXJyb3dTaXplLG1lbnVIb3Jpem9udGFsSGVpZ2h0OnRva2VuLmNhbGMoY29udHJvbEhlaWdodExHKS5tdWwoMS4xNSkuZXF1YWwoKSxtZW51QXJyb3dPZmZzZXQ6dG9rZW4uY2FsYyhtZW51QXJyb3dTaXplKS5tdWwoLjI1KS5lcXVhbCgpLG1lbnVTdWJNZW51Qmc6Y29sb3JCZ0VsZXZhdGVkLGNhbGM6dG9rZW4uY2FsYyxwb3B1cEJnfSksbWVudURhcmtUb2tlbj0oMCxjc3NpbmpzX3V0aWxzX2VzLklYKShtZW51VG9rZW4se2l0ZW1Db2xvcjpkYXJrSXRlbUNvbG9yLGl0ZW1Ib3ZlckNvbG9yOmRhcmtJdGVtSG92ZXJDb2xvcixncm91cFRpdGxlQ29sb3I6ZGFya0dyb3VwVGl0bGVDb2xvcixpdGVtU2VsZWN0ZWRDb2xvcjpkYXJrSXRlbVNlbGVjdGVkQ29sb3Isc3ViTWVudUl0ZW1TZWxlY3RlZENvbG9yOmRhcmtJdGVtU2VsZWN0ZWRDb2xvcixpdGVtQmc6ZGFya0l0ZW1CZyxwb3B1cEJnOmRhcmtQb3B1cEJnLHN1Yk1lbnVJdGVtQmc6ZGFya1N1Yk1lbnVJdGVtQmcsaXRlbUFjdGl2ZUJnOiJ0cmFuc3BhcmVudCIsaXRlbVNlbGVjdGVkQmc6ZGFya0l0ZW1TZWxlY3RlZEJnLGFjdGl2ZUJhckhlaWdodDowLGFjdGl2ZUJhckJvcmRlcldpZHRoOjAsaXRlbUhvdmVyQmc6ZGFya0l0ZW1Ib3ZlckJnLGl0ZW1EaXNhYmxlZENvbG9yOmRhcmtJdGVtRGlzYWJsZWRDb2xvcixkYW5nZXJJdGVtQ29sb3I6ZGFya0Rhbmdlckl0ZW1Db2xvcixkYW5nZXJJdGVtSG92ZXJDb2xvcjpkYXJrRGFuZ2VySXRlbUhvdmVyQ29sb3IsZGFuZ2VySXRlbVNlbGVjdGVkQ29sb3I6ZGFya0Rhbmdlckl0ZW1TZWxlY3RlZENvbG9yLGRhbmdlckl0ZW1BY3RpdmVCZzpkYXJrRGFuZ2VySXRlbUFjdGl2ZUJnLGRhbmdlckl0ZW1TZWxlY3RlZEJnOmRhcmtEYW5nZXJJdGVtU2VsZWN0ZWRCZyxtZW51U3ViTWVudUJnOmRhcmtTdWJNZW51SXRlbUJnLGhvcml6b250YWxJdGVtU2VsZWN0ZWRDb2xvcjpkYXJrSXRlbVNlbGVjdGVkQ29sb3IsaG9yaXpvbnRhbEl0ZW1TZWxlY3RlZEJnOmRhcmtJdGVtU2VsZWN0ZWRCZ30pO3JldHVybltnZXRCYXNlU3R5bGUobWVudVRva2VuKSxnZXRIb3Jpem9udGFsU3R5bGUobWVudVRva2VuKSxnZXRWZXJ0aWNhbFN0eWxlKG1lbnVUb2tlbiksZ2V0VGhlbWVTdHlsZShtZW51VG9rZW4sImxpZ2h0IiksZ2V0VGhlbWVTdHlsZShtZW51RGFya1Rva2VuLCJkYXJrIiksZ2V0UlRMU3R5bGUobWVudVRva2VuKSwoMCxjb2xsYXBzZS5aKShtZW51VG9rZW4pLCgwLHNsaWRlLm9OKShtZW51VG9rZW4sInNsaWRlLXVwIiksKDAsc2xpZGUub04pKG1lbnVUb2tlbiwic2xpZGUtZG93biIpLCgwLHpvb20uX3kpKG1lbnVUb2tlbiwiem9vbS1iaWciKV19LHByZXBhcmVDb21wb25lbnRUb2tlbix7ZGVwcmVjYXRlZFRva2VuczpbWyJjb2xvckdyb3VwVGl0bGUiLCJncm91cFRpdGxlQ29sb3IiXSxbInJhZGl1c0l0ZW0iLCJpdGVtQm9yZGVyUmFkaXVzIl0sWyJyYWRpdXNTdWJNZW51SXRlbSIsInN1Yk1lbnVJdGVtQm9yZGVyUmFkaXVzIl0sWyJjb2xvckl0ZW1UZXh0IiwiaXRlbUNvbG9yIl0sWyJjb2xvckl0ZW1UZXh0SG92ZXIiLCJpdGVtSG92ZXJDb2xvciJdLFsiY29sb3JJdGVtVGV4dEhvdmVySG9yaXpvbnRhbCIsImhvcml6b250YWxJdGVtSG92ZXJDb2xvciJdLFsiY29sb3JJdGVtVGV4dFNlbGVjdGVkIiwiaXRlbVNlbGVjdGVkQ29sb3IiXSxbImNvbG9ySXRlbVRleHRTZWxlY3RlZEhvcml6b250YWwiLCJob3Jpem9udGFsSXRlbVNlbGVjdGVkQ29sb3IiXSxbImNvbG9ySXRlbVRleHREaXNhYmxlZCIsIml0ZW1EaXNhYmxlZENvbG9yIl0sWyJjb2xvckRhbmdlckl0ZW1UZXh0IiwiZGFuZ2VySXRlbUNvbG9yIl0sWyJjb2xvckRhbmdlckl0ZW1UZXh0SG92ZXIiLCJkYW5nZXJJdGVtSG92ZXJDb2xvciJdLFsiY29sb3JEYW5nZXJJdGVtVGV4dFNlbGVjdGVkIiwiZGFuZ2VySXRlbVNlbGVjdGVkQ29sb3IiXSxbImNvbG9yRGFuZ2VySXRlbUJnQWN0aXZlIiwiZGFuZ2VySXRlbUFjdGl2ZUJnIl0sWyJjb2xvckRhbmdlckl0ZW1CZ1NlbGVjdGVkIiwiZGFuZ2VySXRlbVNlbGVjdGVkQmciXSxbImNvbG9ySXRlbUJnIiwiaXRlbUJnIl0sWyJjb2xvckl0ZW1CZ0hvdmVyIiwiaXRlbUhvdmVyQmciXSxbImNvbG9yU3ViSXRlbUJnIiwic3ViTWVudUl0ZW1CZyJdLFsiY29sb3JJdGVtQmdBY3RpdmUiLCJpdGVtQWN0aXZlQmciXSxbImNvbG9ySXRlbUJnU2VsZWN0ZWRIb3Jpem9udGFsIiwiaG9yaXpvbnRhbEl0ZW1TZWxlY3RlZEJnIl0sWyJjb2xvckFjdGl2ZUJhcldpZHRoIiwiYWN0aXZlQmFyV2lkdGgiXSxbImNvbG9yQWN0aXZlQmFySGVpZ2h0IiwiYWN0aXZlQmFySGVpZ2h0Il0sWyJjb2xvckFjdGl2ZUJhckJvcmRlclNpemUiLCJhY3RpdmVCYXJCb3JkZXJXaWR0aCJdLFsiY29sb3JJdGVtQmdTZWxlY3RlZCIsIml0ZW1TZWxlY3RlZEJnIl1dLGluamVjdFN0eWxlLHVuaXRsZXNzOntncm91cFRpdGxlTGluZUhlaWdodDohMH19KTtyZXR1cm4gdXNlU3R5bGUocHJlZml4Q2xzLHJvb3RDbHMpfSx1c2VaSW5kZXg9X193ZWJwYWNrX3JlcXVpcmVfXyg4NzI2Myk7bGV0IFN1Yk1lbnVfU3ViTWVudT1wcm9wcz0+e3ZhciBfYTtsZXQgdGl0bGVOb2RlO2xldHtwb3B1cENsYXNzTmFtZSxpY29uLHRpdGxlLHRoZW1lOmN1c3RvbVRoZW1lfT1wcm9wcyxjb250ZXh0PXJlYWN0LnVzZUNvbnRleHQoTWVudUNvbnRleHRfTWVudUNvbnRleHQpLHtwcmVmaXhDbHMsaW5saW5lQ29sbGFwc2VkLHRoZW1lOmNvbnRleHRUaGVtZX09Y29udGV4dCxwYXJlbnRQYXRoPXVzZUZ1bGxQYXRoKCk7aWYoaWNvbil7bGV0IHRpdGxlSXNTcGFuPXJlYWN0LmlzVmFsaWRFbGVtZW50KHRpdGxlKSYmInNwYW4iPT09dGl0bGUudHlwZTt0aXRsZU5vZGU9cmVhY3QuY3JlYXRlRWxlbWVudChyZWFjdC5GcmFnbWVudCxudWxsLCgwLHJlYWN0Tm9kZS5UbSkoaWNvbix7Y2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKShyZWFjdC5pc1ZhbGlkRWxlbWVudChpY29uKT9udWxsPT09KF9hPWljb24ucHJvcHMpfHx2b2lkIDA9PT1fYT92b2lkIDA6X2EuY2xhc3NOYW1lOiIiLGAke3ByZWZpeENsc30taXRlbS1pY29uYCl9KSx0aXRsZUlzU3Bhbj90aXRsZTpyZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30tdGl0bGUtY29udGVudGB9LHRpdGxlKSl9ZWxzZSB0aXRsZU5vZGU9aW5saW5lQ29sbGFwc2VkJiYhcGFyZW50UGF0aC5sZW5ndGgmJnRpdGxlJiYic3RyaW5nIj09dHlwZW9mIHRpdGxlP3JlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtwcmVmaXhDbHN9LWlubGluZS1jb2xsYXBzZWQtbm9pY29uYH0sdGl0bGUuY2hhckF0KDApKTpyZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30tdGl0bGUtY29udGVudGB9LHRpdGxlKTtsZXQgY29udGV4dFZhbHVlPXJlYWN0LnVzZU1lbW8oKCk9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjb250ZXh0KSx7Zmlyc3RMZXZlbDohMX0pLFtjb250ZXh0XSksW3pJbmRleF09KDAsdXNlWkluZGV4LkNuKSgiTWVudSIpO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KE1lbnVDb250ZXh0X01lbnVDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpjb250ZXh0VmFsdWV9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoU3ViTWVudSxPYmplY3QuYXNzaWduKHt9LCgwLHJjX3V0aWxfZXNfb21pdC5aKShwcm9wcyxbImljb24iXSkse3RpdGxlOnRpdGxlTm9kZSxwb3B1cENsYXNzTmFtZTpub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0KCkocHJlZml4Q2xzLHBvcHVwQ2xhc3NOYW1lLGAke3ByZWZpeENsc30tJHtjdXN0b21UaGVtZXx8Y29udGV4dFRoZW1lfWApLHBvcHVwU3R5bGU6T2JqZWN0LmFzc2lnbih7ekluZGV4fSxwcm9wcy5wb3B1cFN0eWxlKX0pKSl9O3ZhciBtZW51X3Jlc3Q9ZnVuY3Rpb24ocyxlKXt2YXIgdD17fTtmb3IodmFyIHAgaW4gcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxwKSYmMD5lLmluZGV4T2YocCkmJih0W3BdPXNbcF0pO2lmKG51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKWZvcih2YXIgaT0wLHA9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtpPHAubGVuZ3RoO2krKykwPmUuaW5kZXhPZihwW2ldKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMscFtpXSkmJih0W3BbaV1dPXNbcFtpXV0pO3JldHVybiB0fTtmdW5jdGlvbiBpc0VtcHR5SWNvbihpY29uKXtyZXR1cm4gbnVsbD09PWljb258fCExPT09aWNvbn1sZXQgTUVOVV9DT01QT05FTlRTPXtpdGVtOk1lbnVJdGVtX01lbnVJdGVtLHN1Ym1lbnU6U3ViTWVudV9TdWJNZW51LGRpdmlkZXI6TWVudURpdmlkZXJ9LEludGVybmFsTWVudT0oMCxyZWFjdC5mb3J3YXJkUmVmKSgocHJvcHMscmVmKT0+e3ZhciBfYTtsZXQgb3ZlcnJpZGU9cmVhY3QudXNlQ29udGV4dChPdmVycmlkZUNvbnRleHQuWiksb3ZlcnJpZGVPYmo9b3ZlcnJpZGV8fHt9LHtnZXRQcmVmaXhDbHMsZ2V0UG9wdXBDb250YWluZXIsZGlyZWN0aW9uLG1lbnV9PXJlYWN0LnVzZUNvbnRleHQoY29udGV4dC5FXykscm9vdFByZWZpeENscz1nZXRQcmVmaXhDbHMoKSx7cHJlZml4Q2xzOmN1c3RvbWl6ZVByZWZpeENscyxjbGFzc05hbWUsc3R5bGUsdGhlbWU9ImxpZ2h0IixleHBhbmRJY29uLF9pbnRlcm5hbERpc2FibGVNZW51SXRlbVRpdGxlVG9vbHRpcCxpbmxpbmVDb2xsYXBzZWQsc2lkZXJDb2xsYXBzZWQscm9vdENsYXNzTmFtZSxtb2RlLHNlbGVjdGFibGUsb25DbGljayxvdmVyZmxvd2VkSW5kaWNhdG9yUG9wdXBDbGFzc05hbWV9PXByb3BzLHJlc3RQcm9wcz1tZW51X3Jlc3QocHJvcHMsWyJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJzdHlsZSIsInRoZW1lIiwiZXhwYW5kSWNvbiIsIl9pbnRlcm5hbERpc2FibGVNZW51SXRlbVRpdGxlVG9vbHRpcCIsImlubGluZUNvbGxhcHNlZCIsInNpZGVyQ29sbGFwc2VkIiwicm9vdENsYXNzTmFtZSIsIm1vZGUiLCJzZWxlY3RhYmxlIiwib25DbGljayIsIm92ZXJmbG93ZWRJbmRpY2F0b3JQb3B1cENsYXNzTmFtZSJdKSxwYXNzZWRQcm9wcz0oMCxyY191dGlsX2VzX29taXQuWikocmVzdFByb3BzLFsiY29sbGFwc2VkV2lkdGgiXSk7bnVsbD09PShfYT1vdmVycmlkZU9iai52YWxpZGF0b3IpfHx2b2lkIDA9PT1fYXx8X2EuY2FsbChvdmVycmlkZU9iaix7bW9kZX0pO2xldCBvbkl0ZW1DbGljaz0oMCx1c2VFdmVudC5aKShmdW5jdGlvbigpe3ZhciBfYTtudWxsPT1vbkNsaWNrfHxvbkNsaWNrLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpLG51bGw9PT0oX2E9b3ZlcnJpZGVPYmoub25DbGljayl8fHZvaWQgMD09PV9hfHxfYS5jYWxsKG92ZXJyaWRlT2JqKX0pLG1lcmdlZE1vZGU9b3ZlcnJpZGVPYmoubW9kZXx8bW9kZSxtZXJnZWRTZWxlY3RhYmxlPW51bGwhPXNlbGVjdGFibGU/c2VsZWN0YWJsZTpvdmVycmlkZU9iai5zZWxlY3RhYmxlLG1lcmdlZElubGluZUNvbGxhcHNlZD1udWxsIT1pbmxpbmVDb2xsYXBzZWQ/aW5saW5lQ29sbGFwc2VkOnNpZGVyQ29sbGFwc2VkLGRlZmF1bHRNb3Rpb25zPXtob3Jpem9udGFsOnttb3Rpb25OYW1lOmAke3Jvb3RQcmVmaXhDbHN9LXNsaWRlLXVwYH0saW5saW5lOigwLG1vdGlvbi5aKShyb290UHJlZml4Q2xzKSxvdGhlcjp7bW90aW9uTmFtZTpgJHtyb290UHJlZml4Q2xzfS16b29tLWJpZ2B9fSxwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJtZW51IixjdXN0b21pemVQcmVmaXhDbHN8fG92ZXJyaWRlT2JqLnByZWZpeENscykscm9vdENscz0oMCx1c2VDU1NWYXJDbHMuWikocHJlZml4Q2xzKSxbd3JhcENTU1ZhcixoYXNoSWQsY3NzVmFyQ2xzXT1tZW51X3N0eWxlKHByZWZpeENscyxyb290Q2xzLCFvdmVycmlkZSksbWVudUNsYXNzTmFtZT1ub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0KCkoYCR7cHJlZml4Q2xzfS0ke3RoZW1lfWAsbnVsbD09bWVudT92b2lkIDA6bWVudS5jbGFzc05hbWUsY2xhc3NOYW1lKSxtZXJnZWRFeHBhbmRJY29uPXJlYWN0LnVzZU1lbW8oKCk9Pnt2YXIgX2EsX2I7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGV4cGFuZEljb258fGlzRW1wdHlJY29uKGV4cGFuZEljb24pKXJldHVybiBleHBhbmRJY29ufHxudWxsO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBvdmVycmlkZU9iai5leHBhbmRJY29ufHxpc0VtcHR5SWNvbihvdmVycmlkZU9iai5leHBhbmRJY29uKSlyZXR1cm4gb3ZlcnJpZGVPYmouZXhwYW5kSWNvbnx8bnVsbDtpZigiZnVuY3Rpb24iPT10eXBlb2YobnVsbD09bWVudT92b2lkIDA6bWVudS5leHBhbmRJY29uKXx8aXNFbXB0eUljb24obnVsbD09bWVudT92b2lkIDA6bWVudS5leHBhbmRJY29uKSlyZXR1cm4obnVsbD09bWVudT92b2lkIDA6bWVudS5leHBhbmRJY29uKXx8bnVsbDtsZXQgbWVyZ2VkSWNvbj1udWxsIT09KF9hPW51bGwhPWV4cGFuZEljb24/ZXhwYW5kSWNvbjpudWxsPT1vdmVycmlkZU9iaj92b2lkIDA6b3ZlcnJpZGVPYmouZXhwYW5kSWNvbikmJnZvaWQgMCE9PV9hP19hOm51bGw9PW1lbnU/dm9pZCAwOm1lbnUuZXhwYW5kSWNvbjtyZXR1cm4oMCxyZWFjdE5vZGUuVG0pKG1lcmdlZEljb24se2NsYXNzTmFtZTpub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0KCkoYCR7cHJlZml4Q2xzfS1zdWJtZW51LWV4cGFuZC1pY29uYCxyZWFjdC5pc1ZhbGlkRWxlbWVudChtZXJnZWRJY29uKT9udWxsPT09KF9iPW1lcmdlZEljb24ucHJvcHMpfHx2b2lkIDA9PT1fYj92b2lkIDA6X2IuY2xhc3NOYW1lOnZvaWQgMCl9KX0sW2V4cGFuZEljb24sbnVsbD09b3ZlcnJpZGVPYmo/dm9pZCAwOm92ZXJyaWRlT2JqLmV4cGFuZEljb24sbnVsbD09bWVudT92b2lkIDA6bWVudS5leHBhbmRJY29uLHByZWZpeENsc10pLGNvbnRleHRWYWx1ZT1yZWFjdC51c2VNZW1vKCgpPT4oe3ByZWZpeENscyxpbmxpbmVDb2xsYXBzZWQ6bWVyZ2VkSW5saW5lQ29sbGFwc2VkfHwhMSxkaXJlY3Rpb24sZmlyc3RMZXZlbDohMCx0aGVtZSxtb2RlOm1lcmdlZE1vZGUsZGlzYWJsZU1lbnVJdGVtVGl0bGVUb29sdGlwOl9pbnRlcm5hbERpc2FibGVNZW51SXRlbVRpdGxlVG9vbHRpcH0pLFtwcmVmaXhDbHMsbWVyZ2VkSW5saW5lQ29sbGFwc2VkLGRpcmVjdGlvbixfaW50ZXJuYWxEaXNhYmxlTWVudUl0ZW1UaXRsZVRvb2x0aXAsdGhlbWVdKTtyZXR1cm4gd3JhcENTU1ZhcihyZWFjdC5jcmVhdGVFbGVtZW50KE92ZXJyaWRlQ29udGV4dC5aLlByb3ZpZGVyLHt2YWx1ZTpudWxsfSxyZWFjdC5jcmVhdGVFbGVtZW50KE1lbnVDb250ZXh0X01lbnVDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpjb250ZXh0VmFsdWV9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoRXhwb3J0TWVudSxPYmplY3QuYXNzaWduKHtnZXRQb3B1cENvbnRhaW5lcjpnZXRQb3B1cENvbnRhaW5lcixvdmVyZmxvd2VkSW5kaWNhdG9yOnJlYWN0LmNyZWF0ZUVsZW1lbnQoRWxsaXBzaXNPdXRsaW5lZC5aLG51bGwpLG92ZXJmbG93ZWRJbmRpY2F0b3JQb3B1cENsYXNzTmFtZTpub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0KCkocHJlZml4Q2xzLGAke3ByZWZpeENsc30tJHt0aGVtZX1gLG92ZXJmbG93ZWRJbmRpY2F0b3JQb3B1cENsYXNzTmFtZSksbW9kZTptZXJnZWRNb2RlLHNlbGVjdGFibGU6bWVyZ2VkU2VsZWN0YWJsZSxvbkNsaWNrOm9uSXRlbUNsaWNrfSxwYXNzZWRQcm9wcyx7aW5saW5lQ29sbGFwc2VkOm1lcmdlZElubGluZUNvbGxhcHNlZCxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbnVsbD09bWVudT92b2lkIDA6bWVudS5zdHlsZSksc3R5bGUpLGNsYXNzTmFtZTptZW51Q2xhc3NOYW1lLHByZWZpeENsczpwcmVmaXhDbHMsZGlyZWN0aW9uOmRpcmVjdGlvbixkZWZhdWx0TW90aW9uczpkZWZhdWx0TW90aW9ucyxleHBhbmRJY29uOm1lcmdlZEV4cGFuZEljb24scmVmOnJlZixyb290Q2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKShyb290Q2xhc3NOYW1lLGhhc2hJZCxvdmVycmlkZU9iai5yb290Q2xhc3NOYW1lLGNzc1ZhckNscyxyb290Q2xzKSxfaW50ZXJuYWxDb21wb25lbnRzOk1FTlVfQ09NUE9ORU5UU30pKSkpKX0pLG1lbnVfTWVudT0oMCxyZWFjdC5mb3J3YXJkUmVmKSgocHJvcHMscmVmKT0+e2xldCBtZW51UmVmPSgwLHJlYWN0LnVzZVJlZikobnVsbCksY29udGV4dD1yZWFjdC51c2VDb250ZXh0KFNpZGVyQ29udGV4dCk7cmV0dXJuKDAscmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZSkocmVmLCgpPT4oe21lbnU6bWVudVJlZi5jdXJyZW50LGZvY3VzKG9wdGlvbnMpe3ZhciBfYTtudWxsPT09KF9hPW1lbnVSZWYuY3VycmVudCl8fHZvaWQgMD09PV9hfHxfYS5mb2N1cyhvcHRpb25zKX19KSkscmVhY3QuY3JlYXRlRWxlbWVudChJbnRlcm5hbE1lbnUsT2JqZWN0LmFzc2lnbih7cmVmOm1lbnVSZWZ9LHByb3BzLGNvbnRleHQpKX0pO21lbnVfTWVudS5JdGVtPU1lbnVJdGVtX01lbnVJdGVtLG1lbnVfTWVudS5TdWJNZW51PVN1Yk1lbnVfU3ViTWVudSxtZW51X01lbnUuRGl2aWRlcj1NZW51RGl2aWRlcixtZW51X01lbnUuSXRlbUdyb3VwPU1lbnVJdGVtR3JvdXA7dmFyIGVzX21lbnU9bWVudV9NZW51fSwyNDUzOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaUDpmdW5jdGlvbigpe3JldHVybiBlc19tZXNzYWdlfX0pO3ZhciB0b0NvbnN1bWFibGVBcnJheT1fX3dlYnBhY2tfcmVxdWlyZV9fKDc1MTc3KSxyZWFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxjb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oNjY5NjgpLGNvbmZpZ19wcm92aWRlcl9jb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oNTMxMjQpLGNvbmZpZ19wcm92aWRlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDM3ODEyKSxVbnN0YWJsZUNvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg0NjE0NyksQ2hlY2tDaXJjbGVGaWxsZWQ9X193ZWJwYWNrX3JlcXVpcmVfXyg4OTczOSksQ2xvc2VDaXJjbGVGaWxsZWQ9X193ZWJwYWNrX3JlcXVpcmVfXyg0MzQwKSxFeGNsYW1hdGlvbkNpcmNsZUZpbGxlZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDIxNjQwKSxJbmZvQ2lyY2xlRmlsbGVkPV9fd2VicGFja19yZXF1aXJlX18oNzg4NjApLExvYWRpbmdPdXRsaW5lZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDUwODg4KSxjbGFzc25hbWVzPV9fd2VicGFja19yZXF1aXJlX18oMTMxNDQpLGNsYXNzbmFtZXNfZGVmYXVsdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oY2xhc3NuYW1lcyksZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0Mjk5OSksdXNlQ1NTVmFyQ2xzPV9fd2VicGFja19yZXF1aXJlX18oMzU3OTIpLGNzc2luanNfZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0NDg5OSksdXNlWkluZGV4PV9fd2VicGFja19yZXF1aXJlX18oODcyNjMpLHN0eWxlPV9fd2VicGFja19yZXF1aXJlX18oMTQ3NDcpLGdlblN0eWxlVXRpbHM9X193ZWJwYWNrX3JlcXVpcmVfXyg4MzU1OSksY3NzaW5qc191dGlsc19lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQyNTU5KTtsZXQgZ2VuTWVzc2FnZVN0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENscyxpY29uQ2xzLGJveFNoYWRvdyxjb2xvclRleHQsY29sb3JTdWNjZXNzLGNvbG9yRXJyb3IsY29sb3JXYXJuaW5nLGNvbG9ySW5mbyxmb250U2l6ZUxHLG1vdGlvbkVhc2VJbk91dENpcmMsbW90aW9uRHVyYXRpb25TbG93LG1hcmdpblhTLHBhZGRpbmdYUyxib3JkZXJSYWRpdXNMRyx6SW5kZXhQb3B1cCxjb250ZW50UGFkZGluZyxjb250ZW50Qmd9PXRva2VuLG5vdGljZUNscz1gJHtjb21wb25lbnRDbHN9LW5vdGljZWAsbWVzc2FnZU1vdmVJbj1uZXcgY3NzaW5qc19lcy5FNCgiTWVzc2FnZU1vdmVJbiIseyIwJSI6e3BhZGRpbmc6MCx0cmFuc2Zvcm06InRyYW5zbGF0ZVkoLTEwMCUpIixvcGFjaXR5OjB9LCIxMDAlIjp7cGFkZGluZzpwYWRkaW5nWFMsdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDApIixvcGFjaXR5OjF9fSksbWVzc2FnZU1vdmVPdXQ9bmV3IGNzc2luanNfZXMuRTQoIk1lc3NhZ2VNb3ZlT3V0Iix7IjAlIjp7bWF4SGVpZ2h0OnRva2VuLmhlaWdodCxwYWRkaW5nOnBhZGRpbmdYUyxvcGFjaXR5OjF9LCIxMDAlIjp7bWF4SGVpZ2h0OjAscGFkZGluZzowLG9wYWNpdHk6MH19KSxub3RpY2VTdHlsZT17cGFkZGluZzpwYWRkaW5nWFMsdGV4dEFsaWduOiJjZW50ZXIiLFtgJHtjb21wb25lbnRDbHN9LWN1c3RvbS1jb250ZW50YF06e2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciJ9LFtgJHtjb21wb25lbnRDbHN9LWN1c3RvbS1jb250ZW50ID4gJHtpY29uQ2xzfWBdOnttYXJnaW5JbmxpbmVFbmQ6bWFyZ2luWFMsZm9udFNpemU6Zm9udFNpemVMR30sW2Ake25vdGljZUNsc30tY29udGVudGBdOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHBhZGRpbmc6Y29udGVudFBhZGRpbmcsYmFja2dyb3VuZDpjb250ZW50QmcsYm9yZGVyUmFkaXVzOmJvcmRlclJhZGl1c0xHLGJveFNoYWRvdyxwb2ludGVyRXZlbnRzOiJhbGwifSxbYCR7Y29tcG9uZW50Q2xzfS1zdWNjZXNzID4gJHtpY29uQ2xzfWBdOntjb2xvcjpjb2xvclN1Y2Nlc3N9LFtgJHtjb21wb25lbnRDbHN9LWVycm9yID4gJHtpY29uQ2xzfWBdOntjb2xvcjpjb2xvckVycm9yfSxbYCR7Y29tcG9uZW50Q2xzfS13YXJuaW5nID4gJHtpY29uQ2xzfWBdOntjb2xvcjpjb2xvcldhcm5pbmd9LFtgJHtjb21wb25lbnRDbHN9LWluZm8gPiAke2ljb25DbHN9LAogICAgICAke2NvbXBvbmVudENsc30tbG9hZGluZyA+ICR7aWNvbkNsc31gXTp7Y29sb3I6Y29sb3JJbmZvfX07cmV0dXJuW3tbY29tcG9uZW50Q2xzXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsc3R5bGUuV2YpKHRva2VuKSkse2NvbG9yOmNvbG9yVGV4dCxwb3NpdGlvbjoiZml4ZWQiLHRvcDptYXJnaW5YUyx3aWR0aDoiMTAwJSIscG9pbnRlckV2ZW50czoibm9uZSIsekluZGV4OnpJbmRleFBvcHVwLFtgJHtjb21wb25lbnRDbHN9LW1vdmUtdXBgXTp7YW5pbWF0aW9uRmlsbE1vZGU6ImZvcndhcmRzIn0sW2AKICAgICAgICAke2NvbXBvbmVudENsc30tbW92ZS11cC1hcHBlYXIsCiAgICAgICAgJHtjb21wb25lbnRDbHN9LW1vdmUtdXAtZW50ZXIKICAgICAgYF06e2FuaW1hdGlvbk5hbWU6bWVzc2FnZU1vdmVJbixhbmltYXRpb25EdXJhdGlvbjptb3Rpb25EdXJhdGlvblNsb3csYW5pbWF0aW9uUGxheVN0YXRlOiJwYXVzZWQiLGFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOm1vdGlvbkVhc2VJbk91dENpcmN9LFtgCiAgICAgICAgJHtjb21wb25lbnRDbHN9LW1vdmUtdXAtYXBwZWFyJHtjb21wb25lbnRDbHN9LW1vdmUtdXAtYXBwZWFyLWFjdGl2ZSwKICAgICAgICAke2NvbXBvbmVudENsc30tbW92ZS11cC1lbnRlciR7Y29tcG9uZW50Q2xzfS1tb3ZlLXVwLWVudGVyLWFjdGl2ZQogICAgICBgXTp7YW5pbWF0aW9uUGxheVN0YXRlOiJydW5uaW5nIn0sW2Ake2NvbXBvbmVudENsc30tbW92ZS11cC1sZWF2ZWBdOnthbmltYXRpb25OYW1lOm1lc3NhZ2VNb3ZlT3V0LGFuaW1hdGlvbkR1cmF0aW9uOm1vdGlvbkR1cmF0aW9uU2xvdyxhbmltYXRpb25QbGF5U3RhdGU6InBhdXNlZCIsYW5pbWF0aW9uVGltaW5nRnVuY3Rpb246bW90aW9uRWFzZUluT3V0Q2lyY30sW2Ake2NvbXBvbmVudENsc30tbW92ZS11cC1sZWF2ZSR7Y29tcG9uZW50Q2xzfS1tb3ZlLXVwLWxlYXZlLWFjdGl2ZWBdOnthbmltYXRpb25QbGF5U3RhdGU6InJ1bm5pbmcifSwiJi1ydGwiOntkaXJlY3Rpb246InJ0bCIsc3Bhbjp7ZGlyZWN0aW9uOiJydGwifX19KX0se1tjb21wb25lbnRDbHNdOntbYCR7bm90aWNlQ2xzfS13cmFwcGVyYF06T2JqZWN0LmFzc2lnbih7fSxub3RpY2VTdHlsZSl9fSx7W2Ake2NvbXBvbmVudENsc30tbm90aWNlLXB1cmUtcGFuZWxgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbm90aWNlU3R5bGUpLHtwYWRkaW5nOjAsdGV4dEFsaWduOiJzdGFydCJ9KX1dfSxwcmVwYXJlQ29tcG9uZW50VG9rZW49dG9rZW49Pih7ekluZGV4UG9wdXA6dG9rZW4uekluZGV4UG9wdXBCYXNlK3VzZVpJbmRleC51NisxMCxjb250ZW50Qmc6dG9rZW4uY29sb3JCZ0VsZXZhdGVkLGNvbnRlbnRQYWRkaW5nOmAkeyh0b2tlbi5jb250cm9sSGVpZ2h0TEctdG9rZW4uZm9udFNpemUqdG9rZW4ubGluZUhlaWdodCkvMn1weCAke3Rva2VuLnBhZGRpbmdTTX1weGB9KTt2YXIgbWVzc2FnZV9zdHlsZT0oMCxnZW5TdHlsZVV0aWxzLkkkKSgiTWVzc2FnZSIsdG9rZW49PntsZXQgY29tYmluZWRUb2tlbj0oMCxjc3NpbmpzX3V0aWxzX2VzLklYKSh0b2tlbix7aGVpZ2h0OjE1MH0pO3JldHVybltnZW5NZXNzYWdlU3R5bGUoY29tYmluZWRUb2tlbildfSxwcmVwYXJlQ29tcG9uZW50VG9rZW4pLF9fcmVzdD1mdW5jdGlvbihzLGUpe3ZhciB0PXt9O2Zvcih2YXIgcCBpbiBzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLHApJiYwPmUuaW5kZXhPZihwKSYmKHRbcF09c1twXSk7aWYobnVsbCE9cyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpZm9yKHZhciBpPTAscD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpO2k8cC5sZW5ndGg7aSsrKTA+ZS5pbmRleE9mKHBbaV0pJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocyxwW2ldKSYmKHRbcFtpXV09c1twW2ldXSk7cmV0dXJuIHR9O2xldCBUeXBlSWNvbj17aW5mbzpyZWFjdC5jcmVhdGVFbGVtZW50KEluZm9DaXJjbGVGaWxsZWQuWixudWxsKSxzdWNjZXNzOnJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2hlY2tDaXJjbGVGaWxsZWQuWixudWxsKSxlcnJvcjpyZWFjdC5jcmVhdGVFbGVtZW50KENsb3NlQ2lyY2xlRmlsbGVkLlosbnVsbCksd2FybmluZzpyZWFjdC5jcmVhdGVFbGVtZW50KEV4Y2xhbWF0aW9uQ2lyY2xlRmlsbGVkLlosbnVsbCksbG9hZGluZzpyZWFjdC5jcmVhdGVFbGVtZW50KExvYWRpbmdPdXRsaW5lZC5aLG51bGwpfSxQdXJlQ29udGVudD1fcmVmPT57bGV0e3ByZWZpeENscyx0eXBlLGljb24sY2hpbGRyZW59PV9yZWY7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpjbGFzc25hbWVzX2RlZmF1bHQoKShgJHtwcmVmaXhDbHN9LWN1c3RvbS1jb250ZW50YCxgJHtwcmVmaXhDbHN9LSR7dHlwZX1gKX0saWNvbnx8VHlwZUljb25bdHlwZV0scmVhY3QuY3JlYXRlRWxlbWVudCgic3BhbiIsbnVsbCxjaGlsZHJlbikpfSxQdXJlUGFuZWw9cHJvcHM9PntsZXR7cHJlZml4Q2xzOnN0YXRpY1ByZWZpeENscyxjbGFzc05hbWUsdHlwZSxpY29uLGNvbnRlbnR9PXByb3BzLHJlc3RQcm9wcz1fX3Jlc3QocHJvcHMsWyJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJ0eXBlIiwiaWNvbiIsImNvbnRlbnQiXSkse2dldFByZWZpeENsc309cmVhY3QudXNlQ29udGV4dChjb25maWdfcHJvdmlkZXJfY29udGV4dC5FXykscHJlZml4Q2xzPXN0YXRpY1ByZWZpeENsc3x8Z2V0UHJlZml4Q2xzKCJtZXNzYWdlIikscm9vdENscz0oMCx1c2VDU1NWYXJDbHMuWikocHJlZml4Q2xzKSxbd3JhcENTU1ZhcixoYXNoSWQsY3NzVmFyQ2xzXT1tZXNzYWdlX3N0eWxlKHByZWZpeENscyxyb290Q2xzKTtyZXR1cm4gd3JhcENTU1ZhcihyZWFjdC5jcmVhdGVFbGVtZW50KGVzLnFYLE9iamVjdC5hc3NpZ24oe30scmVzdFByb3BzLHtwcmVmaXhDbHM6cHJlZml4Q2xzLGNsYXNzTmFtZTpjbGFzc25hbWVzX2RlZmF1bHQoKShjbGFzc05hbWUsaGFzaElkLGAke3ByZWZpeENsc30tbm90aWNlLXB1cmUtcGFuZWxgLGNzc1ZhckNscyxyb290Q2xzKSxldmVudEtleToicHVyZSIsZHVyYXRpb246bnVsbCxjb250ZW50OnJlYWN0LmNyZWF0ZUVsZW1lbnQoUHVyZUNvbnRlbnQse3ByZWZpeENsczpwcmVmaXhDbHMsdHlwZTp0eXBlLGljb246aWNvbn0sY29udGVudCl9KSkpfTt2YXIgQ2xvc2VPdXRsaW5lZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDk3OTM3KSxfdXRpbF93YXJuaW5nPV9fd2VicGFja19yZXF1aXJlX18oMjcyODgpO2Z1bmN0aW9uIHdyYXBQcm9taXNlRm4ob3BlbkZuKXtsZXQgY2xvc2VGbjtsZXQgY2xvc2VQcm9taXNlPW5ldyBQcm9taXNlKHJlc29sdmU9PntjbG9zZUZuPW9wZW5GbigoKT0+e3Jlc29sdmUoITApfSl9KSxyZXN1bHQ9KCk9PntudWxsPT1jbG9zZUZufHxjbG9zZUZuKCl9O3JldHVybiByZXN1bHQudGhlbj0oZmlsbGVkLHJlamVjdGVkKT0+Y2xvc2VQcm9taXNlLnRoZW4oZmlsbGVkLHJlamVjdGVkKSxyZXN1bHQucHJvbWlzZT1jbG9zZVByb21pc2UscmVzdWx0fXZhciB1c2VNZXNzYWdlX3Jlc3Q9ZnVuY3Rpb24ocyxlKXt2YXIgdD17fTtmb3IodmFyIHAgaW4gcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxwKSYmMD5lLmluZGV4T2YocCkmJih0W3BdPXNbcF0pO2lmKG51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKWZvcih2YXIgaT0wLHA9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtpPHAubGVuZ3RoO2krKykwPmUuaW5kZXhPZihwW2ldKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMscFtpXSkmJih0W3BbaV1dPXNbcFtpXV0pO3JldHVybiB0fTtsZXQgV3JhcHBlcj1fcmVmPT57bGV0e2NoaWxkcmVuLHByZWZpeENsc309X3JlZixyb290Q2xzPSgwLHVzZUNTU1ZhckNscy5aKShwcmVmaXhDbHMpLFt3cmFwQ1NTVmFyLGhhc2hJZCxjc3NWYXJDbHNdPW1lc3NhZ2Vfc3R5bGUocHJlZml4Q2xzLHJvb3RDbHMpO3JldHVybiB3cmFwQ1NTVmFyKHJlYWN0LmNyZWF0ZUVsZW1lbnQoZXMuSkIse2NsYXNzTmFtZXM6e2xpc3Q6Y2xhc3NuYW1lc19kZWZhdWx0KCkoaGFzaElkLGNzc1ZhckNscyxyb290Q2xzKX19LGNoaWxkcmVuKSl9LHJlbmRlck5vdGlmaWNhdGlvbnM9KG5vZGUsX3JlZjIpPT57bGV0e3ByZWZpeENscyxrZXl9PV9yZWYyO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KFdyYXBwZXIse3ByZWZpeENsczpwcmVmaXhDbHMsa2V5OmtleX0sbm9kZSl9LEhvbGRlcj1yZWFjdC5mb3J3YXJkUmVmKChwcm9wcyxyZWYpPT57bGV0e3RvcCxwcmVmaXhDbHM6c3RhdGljUHJlZml4Q2xzLGdldENvbnRhaW5lcjpzdGF0aWNHZXRDb250YWluZXIsbWF4Q291bnQsZHVyYXRpb249MyxydGwsdHJhbnNpdGlvbk5hbWUsb25BbGxSZW1vdmVkfT1wcm9wcyx7Z2V0UHJlZml4Q2xzLGdldFBvcHVwQ29udGFpbmVyLG1lc3NhZ2UsZGlyZWN0aW9ufT1yZWFjdC51c2VDb250ZXh0KGNvbmZpZ19wcm92aWRlcl9jb250ZXh0LkVfKSxwcmVmaXhDbHM9c3RhdGljUHJlZml4Q2xzfHxnZXRQcmVmaXhDbHMoIm1lc3NhZ2UiKSxnZXRTdHlsZT0oKT0+KHtsZWZ0OiI1MCUiLHRyYW5zZm9ybToidHJhbnNsYXRlWCgtNTAlKSIsdG9wOm51bGwhPXRvcD90b3A6OH0pLGdldENsYXNzTmFtZT0oKT0+Y2xhc3NuYW1lc19kZWZhdWx0KCkoe1tgJHtwcmVmaXhDbHN9LXJ0bGBdOm51bGwhPXJ0bD9ydGw6InJ0bCI9PT1kaXJlY3Rpb259KSxnZXROb3RpZmljYXRpb25Nb3Rpb249KCk9Pih7bW90aW9uTmFtZTpudWxsIT10cmFuc2l0aW9uTmFtZT90cmFuc2l0aW9uTmFtZTpgJHtwcmVmaXhDbHN9LW1vdmUtdXBgfSksbWVyZ2VkQ2xvc2VJY29uPXJlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS1jbG9zZS14YH0scmVhY3QuY3JlYXRlRWxlbWVudChDbG9zZU91dGxpbmVkLlose2NsYXNzTmFtZTpgJHtwcmVmaXhDbHN9LWNsb3NlLWljb25gfSkpLFthcGksaG9sZGVyXT0oMCxlcy5sbSkoe3ByZWZpeENscyxzdHlsZTpnZXRTdHlsZSxjbGFzc05hbWU6Z2V0Q2xhc3NOYW1lLG1vdGlvbjpnZXROb3RpZmljYXRpb25Nb3Rpb24sY2xvc2FibGU6ITEsY2xvc2VJY29uOm1lcmdlZENsb3NlSWNvbixkdXJhdGlvbixnZXRDb250YWluZXI6KCk9PihudWxsPT1zdGF0aWNHZXRDb250YWluZXI/dm9pZCAwOnN0YXRpY0dldENvbnRhaW5lcigpKXx8KG51bGw9PWdldFBvcHVwQ29udGFpbmVyP3ZvaWQgMDpnZXRQb3B1cENvbnRhaW5lcigpKXx8ZG9jdW1lbnQuYm9keSxtYXhDb3VudCxvbkFsbFJlbW92ZWQscmVuZGVyTm90aWZpY2F0aW9uc30pO3JldHVybiByZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwoKT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGFwaSkse3ByZWZpeENscyxtZXNzYWdlfSkpLGhvbGRlcn0pLGtleUluZGV4PTA7ZnVuY3Rpb24gdXNlSW50ZXJuYWxNZXNzYWdlKG1lc3NhZ2VDb25maWcpe2xldCBob2xkZXJSZWY9cmVhY3QudXNlUmVmKG51bGwpOygwLF91dGlsX3dhcm5pbmcubG4pKCJNZXNzYWdlIik7bGV0IHdyYXBBUEk9cmVhY3QudXNlTWVtbygoKT0+e2xldCBjbG9zZT1rZXk9Pnt2YXIgX2E7bnVsbD09PShfYT1ob2xkZXJSZWYuY3VycmVudCl8fHZvaWQgMD09PV9hfHxfYS5jbG9zZShrZXkpfSxvcGVuPWNvbmZpZz0+e2lmKCFob2xkZXJSZWYuY3VycmVudCl7bGV0IGZha2VSZXN1bHQ9KCk9Pnt9O3JldHVybiBmYWtlUmVzdWx0LnRoZW49KCk9Pnt9LGZha2VSZXN1bHR9bGV0e29wZW46b3JpZ2luT3BlbixwcmVmaXhDbHMsbWVzc2FnZX09aG9sZGVyUmVmLmN1cnJlbnQsbm90aWNlUHJlZml4Q2xzPWAke3ByZWZpeENsc30tbm90aWNlYCx7Y29udGVudCxpY29uLHR5cGUsa2V5LGNsYXNzTmFtZSxzdHlsZSxvbkNsb3NlfT1jb25maWcscmVzdENvbmZpZz11c2VNZXNzYWdlX3Jlc3QoY29uZmlnLFsiY29udGVudCIsImljb24iLCJ0eXBlIiwia2V5IiwiY2xhc3NOYW1lIiwic3R5bGUiLCJvbkNsb3NlIl0pLG1lcmdlZEtleT1rZXk7cmV0dXJuIG51bGw9PW1lcmdlZEtleSYmKGtleUluZGV4Kz0xLG1lcmdlZEtleT1gYW50ZC1tZXNzYWdlLSR7a2V5SW5kZXh9YCksd3JhcFByb21pc2VGbihyZXNvbHZlPT4ob3JpZ2luT3BlbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scmVzdENvbmZpZykse2tleTptZXJnZWRLZXksY29udGVudDpyZWFjdC5jcmVhdGVFbGVtZW50KFB1cmVDb250ZW50LHtwcmVmaXhDbHM6cHJlZml4Q2xzLHR5cGU6dHlwZSxpY29uOmljb259LGNvbnRlbnQpLHBsYWNlbWVudDoidG9wIixjbGFzc05hbWU6Y2xhc3NuYW1lc19kZWZhdWx0KCkodHlwZSYmYCR7bm90aWNlUHJlZml4Q2xzfS0ke3R5cGV9YCxjbGFzc05hbWUsbnVsbD09bWVzc2FnZT92b2lkIDA6bWVzc2FnZS5jbGFzc05hbWUpLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxudWxsPT1tZXNzYWdlP3ZvaWQgMDptZXNzYWdlLnN0eWxlKSxzdHlsZSksb25DbG9zZSgpe251bGw9PW9uQ2xvc2V8fG9uQ2xvc2UoKSxyZXNvbHZlKCl9fSkpLCgpPT57Y2xvc2UobWVyZ2VkS2V5KX0pKX0sZGVzdHJveT1rZXk9Pnt2YXIgX2E7dm9pZCAwIT09a2V5P2Nsb3NlKGtleSk6bnVsbD09PShfYT1ob2xkZXJSZWYuY3VycmVudCl8fHZvaWQgMD09PV9hfHxfYS5kZXN0cm95KCl9LGNsb25lPXtvcGVuLGRlc3Ryb3l9O3JldHVyblsiaW5mbyIsInN1Y2Nlc3MiLCJ3YXJuaW5nIiwiZXJyb3IiLCJsb2FkaW5nIl0uZm9yRWFjaCh0eXBlPT57bGV0IHR5cGVPcGVuPShqb2ludENvbnRlbnQsZHVyYXRpb24sb25DbG9zZSk9PntsZXQgbWVyZ2VkRHVyYXRpb24sbWVyZ2VkT25DbG9zZTsiZnVuY3Rpb24iPT10eXBlb2YgZHVyYXRpb24/bWVyZ2VkT25DbG9zZT1kdXJhdGlvbjoobWVyZ2VkRHVyYXRpb249ZHVyYXRpb24sbWVyZ2VkT25DbG9zZT1vbkNsb3NlKTtsZXQgbWVyZ2VkQ29uZmlnPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7b25DbG9zZTptZXJnZWRPbkNsb3NlLGR1cmF0aW9uOm1lcmdlZER1cmF0aW9ufSxqb2ludENvbnRlbnQmJiJvYmplY3QiPT10eXBlb2Ygam9pbnRDb250ZW50JiYiY29udGVudCJpbiBqb2ludENvbnRlbnQ/am9pbnRDb250ZW50Ontjb250ZW50OmpvaW50Q29udGVudH0pLHt0eXBlfSk7cmV0dXJuIG9wZW4obWVyZ2VkQ29uZmlnKX07Y2xvbmVbdHlwZV09dHlwZU9wZW59KSxjbG9uZX0sW10pO3JldHVyblt3cmFwQVBJLHJlYWN0LmNyZWF0ZUVsZW1lbnQoSG9sZGVyLE9iamVjdC5hc3NpZ24oe2tleToibWVzc2FnZS1ob2xkZXIifSxtZXNzYWdlQ29uZmlnLHtyZWY6aG9sZGVyUmVmfSkpXX1sZXQgbWVzc2FnZT1udWxsLGFjdD1jYWxsYmFjaz0+Y2FsbGJhY2soKSx0YXNrUXVldWU9W10sZGVmYXVsdEdsb2JhbENvbmZpZz17fTtmdW5jdGlvbiBnZXRHbG9iYWxDb250ZXh0KCl7bGV0e2dldENvbnRhaW5lcixkdXJhdGlvbixydGwsbWF4Q291bnQsdG9wfT1kZWZhdWx0R2xvYmFsQ29uZmlnLG1lcmdlZENvbnRhaW5lcj0obnVsbD09Z2V0Q29udGFpbmVyP3ZvaWQgMDpnZXRDb250YWluZXIoKSl8fGRvY3VtZW50LmJvZHk7cmV0dXJue2dldENvbnRhaW5lcjooKT0+bWVyZ2VkQ29udGFpbmVyLGR1cmF0aW9uLHJ0bCxtYXhDb3VudCx0b3B9fWxldCBHbG9iYWxIb2xkZXI9cmVhY3QuZm9yd2FyZFJlZigocHJvcHMscmVmKT0+e2xldHttZXNzYWdlQ29uZmlnLHN5bmN9PXByb3BzLHtnZXRQcmVmaXhDbHN9PSgwLHJlYWN0LnVzZUNvbnRleHQpKGNvbmZpZ19wcm92aWRlcl9jb250ZXh0LkVfKSxwcmVmaXhDbHM9ZGVmYXVsdEdsb2JhbENvbmZpZy5wcmVmaXhDbHN8fGdldFByZWZpeENscygibWVzc2FnZSIpLGFwcENvbmZpZz0oMCxyZWFjdC51c2VDb250ZXh0KShjb250ZXh0LkopLFthcGksaG9sZGVyXT11c2VJbnRlcm5hbE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbWVzc2FnZUNvbmZpZykse3ByZWZpeENsc30pLGFwcENvbmZpZy5tZXNzYWdlKSk7cmV0dXJuIHJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCgpPT57bGV0IGluc3RhbmNlPU9iamVjdC5hc3NpZ24oe30sYXBpKTtyZXR1cm4gT2JqZWN0LmtleXMoaW5zdGFuY2UpLmZvckVhY2gobWV0aG9kPT57aW5zdGFuY2VbbWV0aG9kXT1mdW5jdGlvbigpe3JldHVybiBzeW5jKCksYXBpW21ldGhvZF0uYXBwbHkoYXBpLGFyZ3VtZW50cyl9fSkse2luc3RhbmNlLHN5bmN9fSksaG9sZGVyfSksR2xvYmFsSG9sZGVyV3JhcHBlcj1yZWFjdC5mb3J3YXJkUmVmKChfLHJlZik9PntsZXRbbWVzc2FnZUNvbmZpZyxzZXRNZXNzYWdlQ29uZmlnXT1yZWFjdC51c2VTdGF0ZShnZXRHbG9iYWxDb250ZXh0KSxzeW5jPSgpPT57c2V0TWVzc2FnZUNvbmZpZyhnZXRHbG9iYWxDb250ZXh0KX07cmVhY3QudXNlRWZmZWN0KHN5bmMsW10pO2xldCBnbG9iYWwxPSgwLGNvbmZpZ19wcm92aWRlci53NikoKSxyb290UHJlZml4Q2xzPWdsb2JhbDEuZ2V0Um9vdFByZWZpeENscygpLHJvb3RJY29uUHJlZml4Q2xzPWdsb2JhbDEuZ2V0SWNvblByZWZpeENscygpLHRoZW1lPWdsb2JhbDEuZ2V0VGhlbWUoKSxkb209cmVhY3QuY3JlYXRlRWxlbWVudChHbG9iYWxIb2xkZXIse3JlZjpyZWYsc3luYzpzeW5jLG1lc3NhZ2VDb25maWc6bWVzc2FnZUNvbmZpZ30pO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KGNvbmZpZ19wcm92aWRlci5aUCx7cHJlZml4Q2xzOnJvb3RQcmVmaXhDbHMsaWNvblByZWZpeENsczpyb290SWNvblByZWZpeENscyx0aGVtZTp0aGVtZX0sZ2xvYmFsMS5ob2xkZXJSZW5kZXI/Z2xvYmFsMS5ob2xkZXJSZW5kZXIoZG9tKTpkb20pfSk7ZnVuY3Rpb24gZmx1c2hOb3RpY2UoKXtpZighbWVzc2FnZSl7bGV0IGhvbGRlckZyYWdtZW50PWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxuZXdNZXNzYWdlPXtmcmFnbWVudDpob2xkZXJGcmFnbWVudH07bWVzc2FnZT1uZXdNZXNzYWdlLGFjdCgoKT0+e2xldCByZWFjdFJlbmRlcj0oMCxVbnN0YWJsZUNvbnRleHQucSkoKTtyZWFjdFJlbmRlcihyZWFjdC5jcmVhdGVFbGVtZW50KEdsb2JhbEhvbGRlcldyYXBwZXIse3JlZihub2RlKXtsZXR7aW5zdGFuY2Usc3luY309bm9kZXx8e307UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+eyFuZXdNZXNzYWdlLmluc3RhbmNlJiZpbnN0YW5jZSYmKG5ld01lc3NhZ2UuaW5zdGFuY2U9aW5zdGFuY2UsbmV3TWVzc2FnZS5zeW5jPXN5bmMsZmx1c2hOb3RpY2UoKSl9KX19KSxob2xkZXJGcmFnbWVudCl9KTtyZXR1cm59bWVzc2FnZS5pbnN0YW5jZSYmKHRhc2tRdWV1ZS5mb3JFYWNoKHRhc2s9PntsZXR7dHlwZSxza2lwcGVkfT10YXNrO2lmKCFza2lwcGVkKXN3aXRjaCh0eXBlKXtjYXNlIm9wZW4iOmFjdCgoKT0+e2xldCBjbG9zZUZuPW1lc3NhZ2UuaW5zdGFuY2Uub3BlbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZGVmYXVsdEdsb2JhbENvbmZpZyksdGFzay5jb25maWcpKTtudWxsPT1jbG9zZUZufHxjbG9zZUZuLnRoZW4odGFzay5yZXNvbHZlKSx0YXNrLnNldENsb3NlRm4oY2xvc2VGbil9KTticmVhaztjYXNlImRlc3Ryb3kiOmFjdCgoKT0+e251bGw9PW1lc3NhZ2V8fG1lc3NhZ2UuaW5zdGFuY2UuZGVzdHJveSh0YXNrLmtleSl9KTticmVhaztkZWZhdWx0OmFjdCgoKT0+e3ZhciBfbWVzc2FnZSRpbnN0YW5jZTtsZXQgY2xvc2VGbj0oX21lc3NhZ2UkaW5zdGFuY2U9bWVzc2FnZS5pbnN0YW5jZSlbdHlwZV0uYXBwbHkoX21lc3NhZ2UkaW5zdGFuY2UsKDAsdG9Db25zdW1hYmxlQXJyYXkuWikodGFzay5hcmdzKSk7bnVsbD09Y2xvc2VGbnx8Y2xvc2VGbi50aGVuKHRhc2sucmVzb2x2ZSksdGFzay5zZXRDbG9zZUZuKGNsb3NlRm4pfSl9fSksdGFza1F1ZXVlPVtdKX1sZXQgZGVzdHJveT1rZXk9Pnt0YXNrUXVldWUucHVzaCh7dHlwZToiZGVzdHJveSIsa2V5fSksZmx1c2hOb3RpY2UoKX0sc3RhdGljTWV0aG9kcz17b3BlbjpmdW5jdGlvbihjb25maWcpe2xldCByZXN1bHQ9d3JhcFByb21pc2VGbihyZXNvbHZlPT57bGV0IGNsb3NlRm47bGV0IHRhc2s9e3R5cGU6Im9wZW4iLGNvbmZpZyxyZXNvbHZlLHNldENsb3NlRm4oZm4pe2Nsb3NlRm49Zm59fTtyZXR1cm4gdGFza1F1ZXVlLnB1c2godGFzayksKCk9PntjbG9zZUZuP2FjdCgoKT0+e2Nsb3NlRm4oKX0pOnRhc2suc2tpcHBlZD0hMH19KTtyZXR1cm4gZmx1c2hOb3RpY2UoKSxyZXN1bHR9LGRlc3Ryb3ksY29uZmlnOmZ1bmN0aW9uKGNvbmZpZyl7ZGVmYXVsdEdsb2JhbENvbmZpZz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZGVmYXVsdEdsb2JhbENvbmZpZyksY29uZmlnKSxhY3QoKCk9Pnt2YXIgX2E7bnVsbD09PShfYT1udWxsPT1tZXNzYWdlP3ZvaWQgMDptZXNzYWdlLnN5bmMpfHx2b2lkIDA9PT1fYXx8X2EuY2FsbChtZXNzYWdlKX0pfSx1c2VNZXNzYWdlOmZ1bmN0aW9uKG1lc3NhZ2VDb25maWcpe3JldHVybiB1c2VJbnRlcm5hbE1lc3NhZ2UobWVzc2FnZUNvbmZpZyl9LF9JbnRlcm5hbFBhbmVsRG9Ob3RVc2VPcllvdVdpbGxCZUZpcmVkOlB1cmVQYW5lbH07WyJzdWNjZXNzIiwiaW5mbyIsIndhcm5pbmciLCJlcnJvciIsImxvYWRpbmciXS5mb3JFYWNoKHR5cGU9PntzdGF0aWNNZXRob2RzW3R5cGVdPWZ1bmN0aW9uKCl7Zm9yKHZhciBfbGVuPWFyZ3VtZW50cy5sZW5ndGgsYXJncz1BcnJheShfbGVuKSxfa2V5PTA7X2tleTxfbGVuO19rZXkrKylhcmdzW19rZXldPWFyZ3VtZW50c1tfa2V5XTtyZXR1cm4gZnVuY3Rpb24odHlwZSxhcmdzKXsoMCxjb25maWdfcHJvdmlkZXIudzYpKCk7bGV0IHJlc3VsdD13cmFwUHJvbWlzZUZuKHJlc29sdmU9PntsZXQgY2xvc2VGbjtsZXQgdGFzaz17dHlwZSxhcmdzLHJlc29sdmUsc2V0Q2xvc2VGbihmbil7Y2xvc2VGbj1mbn19O3JldHVybiB0YXNrUXVldWUucHVzaCh0YXNrKSwoKT0+e2Nsb3NlRm4/YWN0KCgpPT57Y2xvc2VGbigpfSk6dGFzay5za2lwcGVkPSEwfX0pO3JldHVybiBmbHVzaE5vdGljZSgpLHJlc3VsdH0odHlwZSxhcmdzKX19KTt2YXIgZXNfbWVzc2FnZT1zdGF0aWNNZXRob2RzfSw5NDgyODpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtsZXQgbW91c2VQb3NpdGlvbjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBtb2RhbH19KTt2YXIgdG9Db25zdW1hYmxlQXJyYXk9X193ZWJwYWNrX3JlcXVpcmVfXyg3NTE3NykscmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCkscmVhY3RfbmFtZXNwYWNlT2JqZWN0PV9fd2VicGFja19yZXF1aXJlX18udChyZWFjdCwyKSxjb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oNTMxMjQpLGNvbmZpZ19wcm92aWRlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDM3ODEyKSxVbnN0YWJsZUNvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg0NjE0NyksQ2hlY2tDaXJjbGVGaWxsZWQ9X193ZWJwYWNrX3JlcXVpcmVfXyg4OTczOSksQ2xvc2VDaXJjbGVGaWxsZWQ9X193ZWJwYWNrX3JlcXVpcmVfXyg0MzQwKSxFeGNsYW1hdGlvbkNpcmNsZUZpbGxlZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDIxNjQwKSxJbmZvQ2lyY2xlRmlsbGVkPV9fd2VicGFja19yZXF1aXJlX18oNzg4NjApLGNsYXNzbmFtZXM9X193ZWJwYWNrX3JlcXVpcmVfXygxMzE0NCksY2xhc3NuYW1lc19kZWZhdWx0PV9fd2VicGFja19yZXF1aXJlX18ubihjbGFzc25hbWVzKSx1c2VaSW5kZXg9X193ZWJwYWNrX3JlcXVpcmVfXyg4NzI2MyksbW90aW9uPV9fd2VicGFja19yZXF1aXJlX18oMzM2MDMpLHVzZUxvY2FsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDEwMTEwKSx1c2VUb2tlbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDI1OTc2KSx1c2VTdGF0ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk0NzUpLGVzX2J1dHRvbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDgwNDQ3KSxidXR0b25IZWxwZXJzPV9fd2VicGFja19yZXF1aXJlX18oMzM2NzEpO2Z1bmN0aW9uIGlzVGhlbmFibGUodGhpbmcpe3JldHVybiEhKG51bGw9PXRoaW5nP3ZvaWQgMDp0aGluZy50aGVuKX1sZXQgQWN0aW9uQnV0dG9uPXByb3BzPT57bGV0e3R5cGUsY2hpbGRyZW4scHJlZml4Q2xzLGJ1dHRvblByb3BzLGNsb3NlLGF1dG9Gb2N1cyxlbWl0RXZlbnQsaXNTaWxlbnQscXVpdE9uTnVsbGlzaFJldHVyblZhbHVlLGFjdGlvbkZufT1wcm9wcyxjbGlja2VkUmVmPXJlYWN0LnVzZVJlZighMSksYnV0dG9uUmVmPXJlYWN0LnVzZVJlZihudWxsKSxbbG9hZGluZyxzZXRMb2FkaW5nXT0oMCx1c2VTdGF0ZS5aKSghMSksb25JbnRlcm5hbENsb3NlPWZ1bmN0aW9uKCl7bnVsbD09Y2xvc2V8fGNsb3NlLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfTtyZWFjdC51c2VFZmZlY3QoKCk9PntsZXQgdGltZW91dElkPW51bGw7cmV0dXJuIGF1dG9Gb2N1cyYmKHRpbWVvdXRJZD1zZXRUaW1lb3V0KCgpPT57dmFyIF9hO251bGw9PT0oX2E9YnV0dG9uUmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1fYXx8X2EuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KX0pKSwoKT0+e3RpbWVvdXRJZCYmY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCl9fSxbXSk7bGV0IGhhbmRsZVByb21pc2VPbk9rPXJldHVyblZhbHVlT2ZPbk9rPT57aXNUaGVuYWJsZShyZXR1cm5WYWx1ZU9mT25PaykmJihzZXRMb2FkaW5nKCEwKSxyZXR1cm5WYWx1ZU9mT25Pay50aGVuKGZ1bmN0aW9uKCl7c2V0TG9hZGluZyghMSwhMCksb25JbnRlcm5hbENsb3NlLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpLGNsaWNrZWRSZWYuY3VycmVudD0hMX0sZT0+e2lmKHNldExvYWRpbmcoITEsITApLGNsaWNrZWRSZWYuY3VycmVudD0hMSxudWxsPT1pc1NpbGVudHx8IWlzU2lsZW50KCkpcmV0dXJuIFByb21pc2UucmVqZWN0KGUpfSkpfSxvbkNsaWNrPWU9PntsZXQgcmV0dXJuVmFsdWVPZk9uT2s7aWYoIWNsaWNrZWRSZWYuY3VycmVudCl7aWYoY2xpY2tlZFJlZi5jdXJyZW50PSEwLCFhY3Rpb25Gbil7b25JbnRlcm5hbENsb3NlKCk7cmV0dXJufWlmKGVtaXRFdmVudCl7aWYocmV0dXJuVmFsdWVPZk9uT2s9YWN0aW9uRm4oZSkscXVpdE9uTnVsbGlzaFJldHVyblZhbHVlJiYhaXNUaGVuYWJsZShyZXR1cm5WYWx1ZU9mT25Paykpe2NsaWNrZWRSZWYuY3VycmVudD0hMSxvbkludGVybmFsQ2xvc2UoZSk7cmV0dXJufX1lbHNlIGlmKGFjdGlvbkZuLmxlbmd0aClyZXR1cm5WYWx1ZU9mT25Paz1hY3Rpb25GbihjbG9zZSksY2xpY2tlZFJlZi5jdXJyZW50PSExO2Vsc2UgaWYoIWlzVGhlbmFibGUocmV0dXJuVmFsdWVPZk9uT2s9YWN0aW9uRm4oKSkpe29uSW50ZXJuYWxDbG9zZSgpO3JldHVybn1oYW5kbGVQcm9taXNlT25PayhyZXR1cm5WYWx1ZU9mT25Payl9fTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChlc19idXR0b24uWlAsT2JqZWN0LmFzc2lnbih7fSwoMCxidXR0b25IZWxwZXJzLm54KSh0eXBlKSx7b25DbGljazpvbkNsaWNrLGxvYWRpbmc6bG9hZGluZyxwcmVmaXhDbHM6cHJlZml4Q2xzfSxidXR0b25Qcm9wcyx7cmVmOmJ1dHRvblJlZn0pLGNoaWxkcmVuKX0sTW9kYWxDb250ZXh0PXJlYWN0LmNyZWF0ZUNvbnRleHQoe30pLHtQcm92aWRlcjpNb2RhbENvbnRleHRQcm92aWRlcn09TW9kYWxDb250ZXh0LENvbmZpcm1DYW5jZWxCdG49KCk9PntsZXR7YXV0b0ZvY3VzQnV0dG9uLGNhbmNlbEJ1dHRvblByb3BzLGNhbmNlbFRleHRMb2NhbGUsaXNTaWxlbnQsbWVyZ2VkT2tDYW5jZWwscm9vdFByZWZpeENscyxjbG9zZSxvbkNhbmNlbCxvbkNvbmZpcm19PSgwLHJlYWN0LnVzZUNvbnRleHQpKE1vZGFsQ29udGV4dCk7cmV0dXJuIG1lcmdlZE9rQ2FuY2VsP3JlYWN0LmNyZWF0ZUVsZW1lbnQoQWN0aW9uQnV0dG9uLHtpc1NpbGVudDppc1NpbGVudCxhY3Rpb25GbjpvbkNhbmNlbCxjbG9zZTpmdW5jdGlvbigpe251bGw9PWNsb3NlfHxjbG9zZS5hcHBseSh2b2lkIDAsYXJndW1lbnRzKSxudWxsPT1vbkNvbmZpcm18fG9uQ29uZmlybSghMSl9LGF1dG9Gb2N1czoiY2FuY2VsIj09PWF1dG9Gb2N1c0J1dHRvbixidXR0b25Qcm9wczpjYW5jZWxCdXR0b25Qcm9wcyxwcmVmaXhDbHM6YCR7cm9vdFByZWZpeENsc30tYnRuYH0sY2FuY2VsVGV4dExvY2FsZSk6bnVsbH0sQ29uZmlybU9rQnRuPSgpPT57bGV0e2F1dG9Gb2N1c0J1dHRvbixjbG9zZSxpc1NpbGVudCxva0J1dHRvblByb3BzLHJvb3RQcmVmaXhDbHMsb2tUZXh0TG9jYWxlLG9rVHlwZSxvbkNvbmZpcm0sb25Pa309KDAscmVhY3QudXNlQ29udGV4dCkoTW9kYWxDb250ZXh0KTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChBY3Rpb25CdXR0b24se2lzU2lsZW50OmlzU2lsZW50LHR5cGU6b2tUeXBlfHwicHJpbWFyeSIsYWN0aW9uRm46b25PayxjbG9zZTpmdW5jdGlvbigpe251bGw9PWNsb3NlfHxjbG9zZS5hcHBseSh2b2lkIDAsYXJndW1lbnRzKSxudWxsPT1vbkNvbmZpcm18fG9uQ29uZmlybSghMCl9LGF1dG9Gb2N1czoib2siPT09YXV0b0ZvY3VzQnV0dG9uLGJ1dHRvblByb3BzOm9rQnV0dG9uUHJvcHMscHJlZml4Q2xzOmAke3Jvb3RQcmVmaXhDbHN9LWJ0bmB9LG9rVGV4dExvY2FsZSl9O3ZhciBDbG9zZU91dGxpbmVkPV9fd2VicGFja19yZXF1aXJlX18oOTc5MzcpLGVzbV9leHRlbmRzPV9fd2VicGFja19yZXF1aXJlX18oODc0NjIpLHNsaWNlZFRvQXJyYXk9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzY4NSksZXM9X193ZWJwYWNrX3JlcXVpcmVfXygyNzg4KSxSZWZDb250ZXh0PXJlYWN0LmNyZWF0ZUNvbnRleHQoe30pLG9iamVjdFNwcmVhZDI9X193ZWJwYWNrX3JlcXVpcmVfXygxNDEzKSxub2RlX21vZHVsZXNfY2xhc3NuYW1lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk0MTg0KSxub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0PV9fd2VicGFja19yZXF1aXJlX18ubihub2RlX21vZHVsZXNfY2xhc3NuYW1lcyksY29udGFpbnM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NDk5OSksZXNtX3NsaWNlZFRvQXJyYXk9X193ZWJwYWNrX3JlcXVpcmVfXygzNTQ0OCksZXNtX29iamVjdFNwcmVhZDI9X193ZWJwYWNrX3JlcXVpcmVfXyg1MTI3MSksdXVpZD0wLHVzZU9yaWdpbklkPSgwLGVzbV9vYmplY3RTcHJlYWQyLlopKHt9LHJlYWN0X25hbWVzcGFjZU9iamVjdCkudXNlSWQsdXNlSWQ9dXNlT3JpZ2luSWQ/ZnVuY3Rpb24oaWQpe3ZhciByZWFjdElkPXVzZU9yaWdpbklkKCk7cmV0dXJuIGlkfHxyZWFjdElkfTpmdW5jdGlvbihpZCl7dmFyIF9SZWFjdCR1c2VTdGF0ZT1yZWFjdC51c2VTdGF0ZSgic3NyLWlkIiksX1JlYWN0JHVzZVN0YXRlMj0oMCxlc21fc2xpY2VkVG9BcnJheS5aKShfUmVhY3QkdXNlU3RhdGUsMiksaW5uZXJJZD1fUmVhY3QkdXNlU3RhdGUyWzBdLHNldElubmVySWQ9X1JlYWN0JHVzZVN0YXRlMlsxXTtyZXR1cm4ocmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uKCl7dmFyIG5leHRJZD11dWlkO3V1aWQrPTEsc2V0SW5uZXJJZCgicmNfdW5pcXVlXyIuY29uY2F0KG5leHRJZCkpfSxbXSksaWQpP2lkOmlubmVySWR9LEtleUNvZGU9X193ZWJwYWNrX3JlcXVpcmVfXygxNTEwNSkscGlja0F0dHJzPV9fd2VicGFja19yZXF1aXJlX18oNjQyMTcpO2Z1bmN0aW9uIGdldE1vdGlvbk5hbWUocHJlZml4Q2xzLHRyYW5zaXRpb25OYW1lLGFuaW1hdGlvbk5hbWUpe3ZhciBtb3Rpb25OYW1lPXRyYW5zaXRpb25OYW1lO3JldHVybiFtb3Rpb25OYW1lJiZhbmltYXRpb25OYW1lJiYobW90aW9uTmFtZT0iIi5jb25jYXQocHJlZml4Q2xzLCItIikuY29uY2F0KGFuaW1hdGlvbk5hbWUpKSxtb3Rpb25OYW1lfWZ1bmN0aW9uIGdldFNjcm9sbCh3LHRvcCl7dmFyIHJldD13WyJwYWdlIi5jb25jYXQodG9wPyJZIjoiWCIsIk9mZnNldCIpXSxtZXRob2Q9InNjcm9sbCIuY29uY2F0KHRvcD8iVG9wIjoiTGVmdCIpO2lmKCJudW1iZXIiIT10eXBlb2YgcmV0KXt2YXIgZD13LmRvY3VtZW50OyJudW1iZXIiIT10eXBlb2YocmV0PWQuZG9jdW1lbnRFbGVtZW50W21ldGhvZF0pJiYocmV0PWQuYm9keVttZXRob2RdKX1yZXR1cm4gcmV0fXZhciByY19tb3Rpb25fZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg4MjIyNSksZXNtX3R5cGVvZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDcxMDAyKSxlc19yZWY9X193ZWJwYWNrX3JlcXVpcmVfXyg0MjU1MCksTWVtb0NoaWxkcmVuPXJlYWN0Lm1lbW8oZnVuY3Rpb24oX3JlZil7cmV0dXJuIF9yZWYuY2hpbGRyZW59LGZ1bmN0aW9uKF8sX3JlZjIpe3JldHVybiFfcmVmMi5zaG91bGRVcGRhdGV9KSxzZW50aW5lbFN0eWxlPXt3aWR0aDowLGhlaWdodDowLG92ZXJmbG93OiJoaWRkZW4iLG91dGxpbmU6Im5vbmUifSxlbnRpdHlTdHlsZT17b3V0bGluZToibm9uZSJ9LFBhbmVsPXJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24ocHJvcHMscmVmKXt2YXIgcHJlZml4Q2xzPXByb3BzLnByZWZpeENscyxjbGFzc05hbWU9cHJvcHMuY2xhc3NOYW1lLHN0eWxlPXByb3BzLnN0eWxlLHRpdGxlPXByb3BzLnRpdGxlLGFyaWFJZD1wcm9wcy5hcmlhSWQsZm9vdGVyPXByb3BzLmZvb3RlcixjbG9zYWJsZT1wcm9wcy5jbG9zYWJsZSxjbG9zZUljb249cHJvcHMuY2xvc2VJY29uLG9uQ2xvc2U9cHJvcHMub25DbG9zZSxjaGlsZHJlbj1wcm9wcy5jaGlsZHJlbixib2R5U3R5bGU9cHJvcHMuYm9keVN0eWxlLGJvZHlQcm9wcz1wcm9wcy5ib2R5UHJvcHMsbW9kYWxSZW5kZXI9cHJvcHMubW9kYWxSZW5kZXIsb25Nb3VzZURvd249cHJvcHMub25Nb3VzZURvd24sb25Nb3VzZVVwPXByb3BzLm9uTW91c2VVcCxob2xkZXJSZWY9cHJvcHMuaG9sZGVyUmVmLHZpc2libGU9cHJvcHMudmlzaWJsZSxmb3JjZVJlbmRlcj1wcm9wcy5mb3JjZVJlbmRlcix3aWR0aD1wcm9wcy53aWR0aCxoZWlnaHQ9cHJvcHMuaGVpZ2h0LG1vZGFsQ2xhc3NOYW1lcz1wcm9wcy5jbGFzc05hbWVzLG1vZGFsU3R5bGVzPXByb3BzLnN0eWxlcyxwYW5lbFJlZj1yZWFjdC51c2VDb250ZXh0KFJlZkNvbnRleHQpLnBhbmVsLG1lcmdlZFJlZj0oMCxlc19yZWYueDEpKGhvbGRlclJlZixwYW5lbFJlZiksc2VudGluZWxTdGFydFJlZj0oMCxyZWFjdC51c2VSZWYpKCksc2VudGluZWxFbmRSZWY9KDAscmVhY3QudXNlUmVmKSgpO3JlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLGZ1bmN0aW9uKCl7cmV0dXJue2ZvY3VzOmZ1bmN0aW9uKCl7dmFyIF9zZW50aW5lbFN0YXJ0UmVmJGN1cjtudWxsPT09KF9zZW50aW5lbFN0YXJ0UmVmJGN1cj1zZW50aW5lbFN0YXJ0UmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1fc2VudGluZWxTdGFydFJlZiRjdXJ8fF9zZW50aW5lbFN0YXJ0UmVmJGN1ci5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pfSxjaGFuZ2VBY3RpdmU6ZnVuY3Rpb24obmV4dCl7dmFyIGFjdGl2ZUVsZW1lbnQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtuZXh0JiZhY3RpdmVFbGVtZW50PT09c2VudGluZWxFbmRSZWYuY3VycmVudD9zZW50aW5lbFN0YXJ0UmVmLmN1cnJlbnQuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KTpuZXh0fHxhY3RpdmVFbGVtZW50IT09c2VudGluZWxTdGFydFJlZi5jdXJyZW50fHxzZW50aW5lbEVuZFJlZi5jdXJyZW50LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSl9fX0pO3ZhciBjb250ZW50U3R5bGU9e307dm9pZCAwIT09d2lkdGgmJihjb250ZW50U3R5bGUud2lkdGg9d2lkdGgpLHZvaWQgMCE9PWhlaWdodCYmKGNvbnRlbnRTdHlsZS5oZWlnaHQ9aGVpZ2h0KTt2YXIgZm9vdGVyTm9kZT1mb290ZXI/cmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKSgiIi5jb25jYXQocHJlZml4Q2xzLCItZm9vdGVyIiksbnVsbD09bW9kYWxDbGFzc05hbWVzP3ZvaWQgMDptb2RhbENsYXNzTmFtZXMuZm9vdGVyKSxzdHlsZTooMCxvYmplY3RTcHJlYWQyLlopKHt9LG51bGw9PW1vZGFsU3R5bGVzP3ZvaWQgMDptb2RhbFN0eWxlcy5mb290ZXIpfSxmb290ZXIpOm51bGwsaGVhZGVyTm9kZT10aXRsZT9yZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKCIiLmNvbmNhdChwcmVmaXhDbHMsIi1oZWFkZXIiKSxudWxsPT1tb2RhbENsYXNzTmFtZXM/dm9pZCAwOm1vZGFsQ2xhc3NOYW1lcy5oZWFkZXIpLHN0eWxlOigwLG9iamVjdFNwcmVhZDIuWikoe30sbnVsbD09bW9kYWxTdHlsZXM/dm9pZCAwOm1vZGFsU3R5bGVzLmhlYWRlcil9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItdGl0bGUiKSxpZDphcmlhSWR9LHRpdGxlKSk6bnVsbCxjbG9zYWJsZU9iaj0oMCxyZWFjdC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiJvYmplY3QiPT09KDAsZXNtX3R5cGVvZi5aKShjbG9zYWJsZSkmJm51bGwhPT1jbG9zYWJsZT9jbG9zYWJsZTpjbG9zYWJsZT97Y2xvc2VJY29uOm51bGwhPWNsb3NlSWNvbj9jbG9zZUljb246cmVhY3QuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItY2xvc2UteCIpfSl9Ont9fSxbY2xvc2FibGUsY2xvc2VJY29uLHByZWZpeENsc10pLGFyaWFQcm9wcz0oMCxwaWNrQXR0cnMuWikoY2xvc2FibGVPYmosITApLGNsb3NlQnRuSXNEaXNhYmxlZD0ib2JqZWN0Ij09PSgwLGVzbV90eXBlb2YuWikoY2xvc2FibGUpJiZjbG9zYWJsZS5kaXNhYmxlZCxjbG9zZXJOb2RlPWNsb3NhYmxlP3JlYWN0LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIsKDAsZXNtX2V4dGVuZHMuWikoe3R5cGU6ImJ1dHRvbiIsb25DbGljazpvbkNsb3NlLCJhcmlhLWxhYmVsIjoiQ2xvc2UifSxhcmlhUHJvcHMse2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItY2xvc2UiKSxkaXNhYmxlZDpjbG9zZUJ0bklzRGlzYWJsZWR9KSxjbG9zYWJsZU9iai5jbG9zZUljb24pOm51bGwsY29udGVudD1yZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKCIiLmNvbmNhdChwcmVmaXhDbHMsIi1jb250ZW50IiksbnVsbD09bW9kYWxDbGFzc05hbWVzP3ZvaWQgMDptb2RhbENsYXNzTmFtZXMuY29udGVudCksc3R5bGU6bnVsbD09bW9kYWxTdHlsZXM/dm9pZCAwOm1vZGFsU3R5bGVzLmNvbnRlbnR9LGNsb3Nlck5vZGUsaGVhZGVyTm9kZSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLCgwLGVzbV9leHRlbmRzLlopKHtjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKCIiLmNvbmNhdChwcmVmaXhDbHMsIi1ib2R5IiksbnVsbD09bW9kYWxDbGFzc05hbWVzP3ZvaWQgMDptb2RhbENsYXNzTmFtZXMuYm9keSksc3R5bGU6KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LGJvZHlTdHlsZSksbnVsbD09bW9kYWxTdHlsZXM/dm9pZCAwOm1vZGFsU3R5bGVzLmJvZHkpfSxib2R5UHJvcHMpLGNoaWxkcmVuKSxmb290ZXJOb2RlKTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7a2V5OiJkaWFsb2ctZWxlbWVudCIscm9sZToiZGlhbG9nIiwiYXJpYS1sYWJlbGxlZGJ5Ijp0aXRsZT9hcmlhSWQ6bnVsbCwiYXJpYS1tb2RhbCI6InRydWUiLHJlZjptZXJnZWRSZWYsc3R5bGU6KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LHN0eWxlKSxjb250ZW50U3R5bGUpLGNsYXNzTmFtZTpub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0KCkocHJlZml4Q2xzLGNsYXNzTmFtZSksb25Nb3VzZURvd246b25Nb3VzZURvd24sb25Nb3VzZVVwOm9uTW91c2VVcH0scmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7cmVmOnNlbnRpbmVsU3RhcnRSZWYsdGFiSW5kZXg6MCxzdHlsZTplbnRpdHlTdHlsZX0scmVhY3QuY3JlYXRlRWxlbWVudChNZW1vQ2hpbGRyZW4se3Nob3VsZFVwZGF0ZTp2aXNpYmxlfHxmb3JjZVJlbmRlcn0sbW9kYWxSZW5kZXI/bW9kYWxSZW5kZXIoY29udGVudCk6Y29udGVudCkpLHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse3RhYkluZGV4OjAscmVmOnNlbnRpbmVsRW5kUmVmLHN0eWxlOnNlbnRpbmVsU3R5bGV9KSl9KSxDb250ZW50PXJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24ocHJvcHMscmVmKXt2YXIgcHJlZml4Q2xzPXByb3BzLnByZWZpeENscyx0aXRsZT1wcm9wcy50aXRsZSxzdHlsZT1wcm9wcy5zdHlsZSxjbGFzc05hbWU9cHJvcHMuY2xhc3NOYW1lLHZpc2libGU9cHJvcHMudmlzaWJsZSxmb3JjZVJlbmRlcj1wcm9wcy5mb3JjZVJlbmRlcixkZXN0cm95T25DbG9zZT1wcm9wcy5kZXN0cm95T25DbG9zZSxtb3Rpb25OYW1lPXByb3BzLm1vdGlvbk5hbWUsYXJpYUlkPXByb3BzLmFyaWFJZCxvblZpc2libGVDaGFuZ2VkPXByb3BzLm9uVmlzaWJsZUNoYW5nZWQsbW91c2VQb3NpdGlvbj1wcm9wcy5tb3VzZVBvc2l0aW9uLGRpYWxvZ1JlZj0oMCxyZWFjdC51c2VSZWYpKCksX1JlYWN0JHVzZVN0YXRlPXJlYWN0LnVzZVN0YXRlKCksX1JlYWN0JHVzZVN0YXRlMj0oMCxzbGljZWRUb0FycmF5LlopKF9SZWFjdCR1c2VTdGF0ZSwyKSx0cmFuc2Zvcm1PcmlnaW49X1JlYWN0JHVzZVN0YXRlMlswXSxzZXRUcmFuc2Zvcm1PcmlnaW49X1JlYWN0JHVzZVN0YXRlMlsxXSxjb250ZW50U3R5bGU9e307ZnVuY3Rpb24gb25QcmVwYXJlKCl7dmFyIGVsLHJlY3QscG9zLGRvYyx3LGVsZW1lbnRPZmZzZXQ9KHBvcz17bGVmdDoocmVjdD0oZWw9ZGlhbG9nUmVmLmN1cnJlbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKS5sZWZ0LHRvcDpyZWN0LnRvcH0sdz0oZG9jPWVsLm93bmVyRG9jdW1lbnQpLmRlZmF1bHRWaWV3fHxkb2MucGFyZW50V2luZG93LHBvcy5sZWZ0Kz1nZXRTY3JvbGwodykscG9zLnRvcCs9Z2V0U2Nyb2xsKHcsITApLHBvcyk7c2V0VHJhbnNmb3JtT3JpZ2luKG1vdXNlUG9zaXRpb24mJihtb3VzZVBvc2l0aW9uLnh8fG1vdXNlUG9zaXRpb24ueSk/IiIuY29uY2F0KG1vdXNlUG9zaXRpb24ueC1lbGVtZW50T2Zmc2V0LmxlZnQsInB4ICIpLmNvbmNhdChtb3VzZVBvc2l0aW9uLnktZWxlbWVudE9mZnNldC50b3AsInB4Iik6IiIpfXJldHVybiB0cmFuc2Zvcm1PcmlnaW4mJihjb250ZW50U3R5bGUudHJhbnNmb3JtT3JpZ2luPXRyYW5zZm9ybU9yaWdpbikscmVhY3QuY3JlYXRlRWxlbWVudChyY19tb3Rpb25fZXMuWlAse3Zpc2libGU6dmlzaWJsZSxvblZpc2libGVDaGFuZ2VkOm9uVmlzaWJsZUNoYW5nZWQsb25BcHBlYXJQcmVwYXJlOm9uUHJlcGFyZSxvbkVudGVyUHJlcGFyZTpvblByZXBhcmUsZm9yY2VSZW5kZXI6Zm9yY2VSZW5kZXIsbW90aW9uTmFtZTptb3Rpb25OYW1lLHJlbW92ZU9uTGVhdmU6ZGVzdHJveU9uQ2xvc2UscmVmOmRpYWxvZ1JlZn0sZnVuY3Rpb24oX3JlZixtb3Rpb25SZWYpe3ZhciBtb3Rpb25DbGFzc05hbWU9X3JlZi5jbGFzc05hbWUsbW90aW9uU3R5bGU9X3JlZi5zdHlsZTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChQYW5lbCwoMCxlc21fZXh0ZW5kcy5aKSh7fSxwcm9wcyx7cmVmOnJlZix0aXRsZTp0aXRsZSxhcmlhSWQ6YXJpYUlkLHByZWZpeENsczpwcmVmaXhDbHMsaG9sZGVyUmVmOm1vdGlvblJlZixzdHlsZTooMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoKDAsb2JqZWN0U3ByZWFkMi5aKSh7fSxtb3Rpb25TdHlsZSksc3R5bGUpLGNvbnRlbnRTdHlsZSksY2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKShjbGFzc05hbWUsbW90aW9uQ2xhc3NOYW1lKX0pKX0pfSk7Q29udGVudC5kaXNwbGF5TmFtZT0iQ29udGVudCI7dmFyIERpYWxvZ19NYXNrPWZ1bmN0aW9uKHByb3BzKXt2YXIgcHJlZml4Q2xzPXByb3BzLnByZWZpeENscyxzdHlsZT1wcm9wcy5zdHlsZSx2aXNpYmxlPXByb3BzLnZpc2libGUsbWFza1Byb3BzPXByb3BzLm1hc2tQcm9wcyxtb3Rpb25OYW1lPXByb3BzLm1vdGlvbk5hbWUsY2xhc3NOYW1lPXByb3BzLmNsYXNzTmFtZTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChyY19tb3Rpb25fZXMuWlAse2tleToibWFzayIsdmlzaWJsZTp2aXNpYmxlLG1vdGlvbk5hbWU6bW90aW9uTmFtZSxsZWF2ZWRDbGFzc05hbWU6IiIuY29uY2F0KHByZWZpeENscywiLW1hc2staGlkZGVuIil9LGZ1bmN0aW9uKF9yZWYscmVmKXt2YXIgbW90aW9uQ2xhc3NOYW1lPV9yZWYuY2xhc3NOYW1lLG1vdGlvblN0eWxlPV9yZWYuc3R5bGU7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIsKDAsZXNtX2V4dGVuZHMuWikoe3JlZjpyZWYsc3R5bGU6KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LG1vdGlvblN0eWxlKSxzdHlsZSksY2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKSgiIi5jb25jYXQocHJlZml4Q2xzLCItbWFzayIpLG1vdGlvbkNsYXNzTmFtZSxjbGFzc05hbWUpfSxtYXNrUHJvcHMpKX0pfTtfX3dlYnBhY2tfcmVxdWlyZV9fKDgwMzM0KTt2YXIgZXNfRGlhbG9nPWZ1bmN0aW9uKHByb3BzKXt2YXIgX3Byb3BzJHByZWZpeENscz1wcm9wcy5wcmVmaXhDbHMscHJlZml4Q2xzPXZvaWQgMD09PV9wcm9wcyRwcmVmaXhDbHM/InJjLWRpYWxvZyI6X3Byb3BzJHByZWZpeENscyx6SW5kZXg9cHJvcHMuekluZGV4LF9wcm9wcyR2aXNpYmxlPXByb3BzLnZpc2libGUsdmlzaWJsZT12b2lkIDAhPT1fcHJvcHMkdmlzaWJsZSYmX3Byb3BzJHZpc2libGUsX3Byb3BzJGtleWJvYXJkPXByb3BzLmtleWJvYXJkLGtleWJvYXJkPXZvaWQgMD09PV9wcm9wcyRrZXlib2FyZHx8X3Byb3BzJGtleWJvYXJkLF9wcm9wcyRmb2N1c1RyaWdnZXJBZj1wcm9wcy5mb2N1c1RyaWdnZXJBZnRlckNsb3NlLGZvY3VzVHJpZ2dlckFmdGVyQ2xvc2U9dm9pZCAwPT09X3Byb3BzJGZvY3VzVHJpZ2dlckFmfHxfcHJvcHMkZm9jdXNUcmlnZ2VyQWYsd3JhcFN0eWxlPXByb3BzLndyYXBTdHlsZSx3cmFwQ2xhc3NOYW1lPXByb3BzLndyYXBDbGFzc05hbWUsd3JhcFByb3BzPXByb3BzLndyYXBQcm9wcyxvbkNsb3NlPXByb3BzLm9uQ2xvc2UsYWZ0ZXJPcGVuQ2hhbmdlPXByb3BzLmFmdGVyT3BlbkNoYW5nZSxhZnRlckNsb3NlPXByb3BzLmFmdGVyQ2xvc2UsdHJhbnNpdGlvbk5hbWU9cHJvcHMudHJhbnNpdGlvbk5hbWUsYW5pbWF0aW9uPXByb3BzLmFuaW1hdGlvbixfcHJvcHMkY2xvc2FibGU9cHJvcHMuY2xvc2FibGUsX3Byb3BzJG1hc2s9cHJvcHMubWFzayxtYXNrPXZvaWQgMD09PV9wcm9wcyRtYXNrfHxfcHJvcHMkbWFzayxtYXNrVHJhbnNpdGlvbk5hbWU9cHJvcHMubWFza1RyYW5zaXRpb25OYW1lLG1hc2tBbmltYXRpb249cHJvcHMubWFza0FuaW1hdGlvbixfcHJvcHMkbWFza0Nsb3NhYmxlPXByb3BzLm1hc2tDbG9zYWJsZSxtYXNrU3R5bGU9cHJvcHMubWFza1N0eWxlLG1hc2tQcm9wcz1wcm9wcy5tYXNrUHJvcHMscm9vdENsYXNzTmFtZT1wcm9wcy5yb290Q2xhc3NOYW1lLG1vZGFsQ2xhc3NOYW1lcz1wcm9wcy5jbGFzc05hbWVzLG1vZGFsU3R5bGVzPXByb3BzLnN0eWxlcyxsYXN0T3V0U2lkZUFjdGl2ZUVsZW1lbnRSZWY9KDAscmVhY3QudXNlUmVmKSgpLHdyYXBwZXJSZWY9KDAscmVhY3QudXNlUmVmKSgpLGNvbnRlbnRSZWY9KDAscmVhY3QudXNlUmVmKSgpLF9SZWFjdCR1c2VTdGF0ZT1yZWFjdC51c2VTdGF0ZSh2aXNpYmxlKSxfUmVhY3QkdXNlU3RhdGUyPSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlLDIpLGFuaW1hdGVkVmlzaWJsZT1fUmVhY3QkdXNlU3RhdGUyWzBdLHNldEFuaW1hdGVkVmlzaWJsZT1fUmVhY3QkdXNlU3RhdGUyWzFdLGFyaWFJZD11c2VJZCgpO2Z1bmN0aW9uIG9uSW50ZXJuYWxDbG9zZShlKXtudWxsPT1vbkNsb3NlfHxvbkNsb3NlKGUpfXZhciBjb250ZW50Q2xpY2tSZWY9KDAscmVhY3QudXNlUmVmKSghMSksY29udGVudFRpbWVvdXRSZWY9KDAscmVhY3QudXNlUmVmKSgpLG9uV3JhcHBlckNsaWNrPW51bGw7KHZvaWQgMD09PV9wcm9wcyRtYXNrQ2xvc2FibGV8fF9wcm9wcyRtYXNrQ2xvc2FibGUpJiYob25XcmFwcGVyQ2xpY2s9ZnVuY3Rpb24oZSl7Y29udGVudENsaWNrUmVmLmN1cnJlbnQ/Y29udGVudENsaWNrUmVmLmN1cnJlbnQ9ITE6d3JhcHBlclJlZi5jdXJyZW50PT09ZS50YXJnZXQmJm9uSW50ZXJuYWxDbG9zZShlKX0pLCgwLHJlYWN0LnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2aXNpYmxlJiYoc2V0QW5pbWF0ZWRWaXNpYmxlKCEwKSwoMCxjb250YWlucy5aKSh3cmFwcGVyUmVmLmN1cnJlbnQsZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl8fChsYXN0T3V0U2lkZUFjdGl2ZUVsZW1lbnRSZWYuY3VycmVudD1kb2N1bWVudC5hY3RpdmVFbGVtZW50KSl9LFt2aXNpYmxlXSksKDAscmVhY3QudXNlRWZmZWN0KShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe2NsZWFyVGltZW91dChjb250ZW50VGltZW91dFJlZi5jdXJyZW50KX19LFtdKTt2YXIgbWVyZ2VkU3R5bGU9KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe3pJbmRleDp6SW5kZXh9LHdyYXBTdHlsZSksbnVsbD09bW9kYWxTdHlsZXM/dm9pZCAwOm1vZGFsU3R5bGVzLndyYXBwZXIpLHt9LHtkaXNwbGF5OmFuaW1hdGVkVmlzaWJsZT9udWxsOiJub25lIn0pO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLCgwLGVzbV9leHRlbmRzLlopKHtjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKCIiLmNvbmNhdChwcmVmaXhDbHMsIi1yb290Iikscm9vdENsYXNzTmFtZSl9LCgwLHBpY2tBdHRycy5aKShwcm9wcyx7ZGF0YTohMH0pKSxyZWFjdC5jcmVhdGVFbGVtZW50KERpYWxvZ19NYXNrLHtwcmVmaXhDbHM6cHJlZml4Q2xzLHZpc2libGU6bWFzayYmdmlzaWJsZSxtb3Rpb25OYW1lOmdldE1vdGlvbk5hbWUocHJlZml4Q2xzLG1hc2tUcmFuc2l0aW9uTmFtZSxtYXNrQW5pbWF0aW9uKSxzdHlsZTooMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe3pJbmRleDp6SW5kZXh9LG1hc2tTdHlsZSksbnVsbD09bW9kYWxTdHlsZXM/dm9pZCAwOm1vZGFsU3R5bGVzLm1hc2spLG1hc2tQcm9wczptYXNrUHJvcHMsY2xhc3NOYW1lOm51bGw9PW1vZGFsQ2xhc3NOYW1lcz92b2lkIDA6bW9kYWxDbGFzc05hbWVzLm1hc2t9KSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLCgwLGVzbV9leHRlbmRzLlopKHt0YWJJbmRleDotMSxvbktleURvd246ZnVuY3Rpb24oZSl7aWYoa2V5Ym9hcmQmJmUua2V5Q29kZT09PUtleUNvZGUuWi5FU0Mpe2Uuc3RvcFByb3BhZ2F0aW9uKCksb25JbnRlcm5hbENsb3NlKGUpO3JldHVybn12aXNpYmxlJiZlLmtleUNvZGU9PT1LZXlDb2RlLlouVEFCJiZjb250ZW50UmVmLmN1cnJlbnQuY2hhbmdlQWN0aXZlKCFlLnNoaWZ0S2V5KX0sY2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKSgiIi5jb25jYXQocHJlZml4Q2xzLCItd3JhcCIpLHdyYXBDbGFzc05hbWUsbnVsbD09bW9kYWxDbGFzc05hbWVzP3ZvaWQgMDptb2RhbENsYXNzTmFtZXMud3JhcHBlcikscmVmOndyYXBwZXJSZWYsb25DbGljazpvbldyYXBwZXJDbGljayxzdHlsZTptZXJnZWRTdHlsZX0sd3JhcFByb3BzKSxyZWFjdC5jcmVhdGVFbGVtZW50KENvbnRlbnQsKDAsZXNtX2V4dGVuZHMuWikoe30scHJvcHMse29uTW91c2VEb3duOmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGNvbnRlbnRUaW1lb3V0UmVmLmN1cnJlbnQpLGNvbnRlbnRDbGlja1JlZi5jdXJyZW50PSEwfSxvbk1vdXNlVXA6ZnVuY3Rpb24oKXtjb250ZW50VGltZW91dFJlZi5jdXJyZW50PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtjb250ZW50Q2xpY2tSZWYuY3VycmVudD0hMX0pfSxyZWY6Y29udGVudFJlZixjbG9zYWJsZTp2b2lkIDA9PT1fcHJvcHMkY2xvc2FibGV8fF9wcm9wcyRjbG9zYWJsZSxhcmlhSWQ6YXJpYUlkLHByZWZpeENsczpwcmVmaXhDbHMsdmlzaWJsZTp2aXNpYmxlJiZhbmltYXRlZFZpc2libGUsb25DbG9zZTpvbkludGVybmFsQ2xvc2Usb25WaXNpYmxlQ2hhbmdlZDpmdW5jdGlvbihuZXdWaXNpYmxlKXtpZihuZXdWaXNpYmxlKSFmdW5jdGlvbigpe2lmKCEoMCxjb250YWlucy5aKSh3cmFwcGVyUmVmLmN1cnJlbnQsZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpe3ZhciBfY29udGVudFJlZiRjdXJyZW50O251bGw9PT0oX2NvbnRlbnRSZWYkY3VycmVudD1jb250ZW50UmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1fY29udGVudFJlZiRjdXJyZW50fHxfY29udGVudFJlZiRjdXJyZW50LmZvY3VzKCl9fSgpO2Vsc2V7aWYoc2V0QW5pbWF0ZWRWaXNpYmxlKCExKSxtYXNrJiZsYXN0T3V0U2lkZUFjdGl2ZUVsZW1lbnRSZWYuY3VycmVudCYmZm9jdXNUcmlnZ2VyQWZ0ZXJDbG9zZSl7dHJ5e2xhc3RPdXRTaWRlQWN0aXZlRWxlbWVudFJlZi5jdXJyZW50LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSl9Y2F0Y2goZSl7fWxhc3RPdXRTaWRlQWN0aXZlRWxlbWVudFJlZi5jdXJyZW50PW51bGx9YW5pbWF0ZWRWaXNpYmxlJiYobnVsbD09YWZ0ZXJDbG9zZXx8YWZ0ZXJDbG9zZSgpKX1udWxsPT1hZnRlck9wZW5DaGFuZ2V8fGFmdGVyT3BlbkNoYW5nZShuZXdWaXNpYmxlKX0sbW90aW9uTmFtZTpnZXRNb3Rpb25OYW1lKHByZWZpeENscyx0cmFuc2l0aW9uTmFtZSxhbmltYXRpb24pfSkpKSl9LERpYWxvZ1dyYXA9ZnVuY3Rpb24ocHJvcHMpe3ZhciB2aXNpYmxlPXByb3BzLnZpc2libGUsZ2V0Q29udGFpbmVyPXByb3BzLmdldENvbnRhaW5lcixmb3JjZVJlbmRlcj1wcm9wcy5mb3JjZVJlbmRlcixfcHJvcHMkZGVzdHJveU9uQ2xvc2U9cHJvcHMuZGVzdHJveU9uQ2xvc2UsZGVzdHJveU9uQ2xvc2U9dm9pZCAwIT09X3Byb3BzJGRlc3Ryb3lPbkNsb3NlJiZfcHJvcHMkZGVzdHJveU9uQ2xvc2UsX2FmdGVyQ2xvc2U9cHJvcHMuYWZ0ZXJDbG9zZSxwYW5lbFJlZj1wcm9wcy5wYW5lbFJlZixfUmVhY3QkdXNlU3RhdGU9cmVhY3QudXNlU3RhdGUodmlzaWJsZSksX1JlYWN0JHVzZVN0YXRlMj0oMCxzbGljZWRUb0FycmF5LlopKF9SZWFjdCR1c2VTdGF0ZSwyKSxhbmltYXRlZFZpc2libGU9X1JlYWN0JHVzZVN0YXRlMlswXSxzZXRBbmltYXRlZFZpc2libGU9X1JlYWN0JHVzZVN0YXRlMlsxXSxyZWZDb250ZXh0PXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm57cGFuZWw6cGFuZWxSZWZ9fSxbcGFuZWxSZWZdKTtyZXR1cm4ocmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uKCl7dmlzaWJsZSYmc2V0QW5pbWF0ZWRWaXNpYmxlKCEwKX0sW3Zpc2libGVdKSxmb3JjZVJlbmRlcnx8IWRlc3Ryb3lPbkNsb3NlfHxhbmltYXRlZFZpc2libGUpP3JlYWN0LmNyZWF0ZUVsZW1lbnQoUmVmQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6cmVmQ29udGV4dH0scmVhY3QuY3JlYXRlRWxlbWVudChlcy5aLHtvcGVuOnZpc2libGV8fGZvcmNlUmVuZGVyfHxhbmltYXRlZFZpc2libGUsYXV0b0Rlc3Ryb3k6ITEsZ2V0Q29udGFpbmVyOmdldENvbnRhaW5lcixhdXRvTG9jazp2aXNpYmxlfHxhbmltYXRlZFZpc2libGV9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoZXNfRGlhbG9nLCgwLGVzbV9leHRlbmRzLlopKHt9LHByb3BzLHtkZXN0cm95T25DbG9zZTpkZXN0cm95T25DbG9zZSxhZnRlckNsb3NlOmZ1bmN0aW9uKCl7bnVsbD09X2FmdGVyQ2xvc2V8fF9hZnRlckNsb3NlKCksc2V0QW5pbWF0ZWRWaXNpYmxlKCExKX19KSkpKTpudWxsfTtEaWFsb2dXcmFwLmRpc3BsYXlOYW1lPSJEaWFsb2ciO3ZhciBDb250ZXh0SXNvbGF0b3I9X193ZWJwYWNrX3JlcXVpcmVfXyg4OTk0MiksdXNlQ2xvc2FibGU9X193ZWJwYWNrX3JlcXVpcmVfXygyMDcyKSxjYW5Vc2VEb209X193ZWJwYWNrX3JlcXVpcmVfXyg3MDUyNiksemluZGV4Q29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQzOTQ1KSx1c2VDU1NWYXJDbHM9X193ZWJwYWNrX3JlcXVpcmVfXygzNTc5Miksc2tlbGV0b249X193ZWJwYWNrX3JlcXVpcmVfXyg0ODA1NCksd2F0ZXJtYXJrX2NvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXygxNjU2OSksRGlzYWJsZWRDb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oOTg4NjYpO2xldCBOb3JtYWxDYW5jZWxCdG49KCk9PntsZXR7Y2FuY2VsQnV0dG9uUHJvcHMsY2FuY2VsVGV4dExvY2FsZSxvbkNhbmNlbH09KDAscmVhY3QudXNlQ29udGV4dCkoTW9kYWxDb250ZXh0KTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChlc19idXR0b24uWlAsT2JqZWN0LmFzc2lnbih7b25DbGljazpvbkNhbmNlbH0sY2FuY2VsQnV0dG9uUHJvcHMpLGNhbmNlbFRleHRMb2NhbGUpfSxOb3JtYWxPa0J0bj0oKT0+e2xldHtjb25maXJtTG9hZGluZyxva0J1dHRvblByb3BzLG9rVHlwZSxva1RleHRMb2NhbGUsb25Pa309KDAscmVhY3QudXNlQ29udGV4dCkoTW9kYWxDb250ZXh0KTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChlc19idXR0b24uWlAsT2JqZWN0LmFzc2lnbih7fSwoMCxidXR0b25IZWxwZXJzLm54KShva1R5cGUpLHtsb2FkaW5nOmNvbmZpcm1Mb2FkaW5nLG9uQ2xpY2s6b25Pa30sb2tCdXR0b25Qcm9wcyksb2tUZXh0TG9jYWxlKX07dmFyIG1vZGFsX2xvY2FsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDgzMDA4KTtmdW5jdGlvbiByZW5kZXJDbG9zZUljb24ocHJlZml4Q2xzLGNsb3NlSWNvbil7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS1jbG9zZS14YH0sY2xvc2VJY29ufHxyZWFjdC5jcmVhdGVFbGVtZW50KENsb3NlT3V0bGluZWQuWix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30tY2xvc2UtaWNvbmB9KSl9bGV0IEZvb3Rlcj1wcm9wcz0+e2xldCBmb290ZXJOb2RlO2xldHtva1RleHQsb2tUeXBlPSJwcmltYXJ5IixjYW5jZWxUZXh0LGNvbmZpcm1Mb2FkaW5nLG9uT2ssb25DYW5jZWwsb2tCdXR0b25Qcm9wcyxjYW5jZWxCdXR0b25Qcm9wcyxmb290ZXJ9PXByb3BzLFtsb2NhbGVdPSgwLHVzZUxvY2FsZS5aKSgiTW9kYWwiLCgwLG1vZGFsX2xvY2FsZS5BKSgpKSxva1RleHRMb2NhbGU9b2tUZXh0fHwobnVsbD09bG9jYWxlP3ZvaWQgMDpsb2NhbGUub2tUZXh0KSxjYW5jZWxUZXh0TG9jYWxlPWNhbmNlbFRleHR8fChudWxsPT1sb2NhbGU/dm9pZCAwOmxvY2FsZS5jYW5jZWxUZXh0KSxidG5DdHhWYWx1ZT17Y29uZmlybUxvYWRpbmcsb2tCdXR0b25Qcm9wcyxjYW5jZWxCdXR0b25Qcm9wcyxva1RleHRMb2NhbGUsY2FuY2VsVGV4dExvY2FsZSxva1R5cGUsb25PayxvbkNhbmNlbH0sYnRuQ3R4VmFsdWVNZW1vPXJlYWN0LnVzZU1lbW8oKCk9PmJ0bkN0eFZhbHVlLCgwLHRvQ29uc3VtYWJsZUFycmF5LlopKE9iamVjdC52YWx1ZXMoYnRuQ3R4VmFsdWUpKSk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGZvb3Rlcnx8dm9pZCAwPT09Zm9vdGVyPyhmb290ZXJOb2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQocmVhY3QuRnJhZ21lbnQsbnVsbCxyZWFjdC5jcmVhdGVFbGVtZW50KE5vcm1hbENhbmNlbEJ0bixudWxsKSxyZWFjdC5jcmVhdGVFbGVtZW50KE5vcm1hbE9rQnRuLG51bGwpKSwiZnVuY3Rpb24iPT10eXBlb2YgZm9vdGVyJiYoZm9vdGVyTm9kZT1mb290ZXIoZm9vdGVyTm9kZSx7T2tCdG46Tm9ybWFsT2tCdG4sQ2FuY2VsQnRuOk5vcm1hbENhbmNlbEJ0bn0pKSxmb290ZXJOb2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQoTW9kYWxDb250ZXh0UHJvdmlkZXIse3ZhbHVlOmJ0bkN0eFZhbHVlTWVtb30sZm9vdGVyTm9kZSkpOmZvb3Rlck5vZGU9Zm9vdGVyLHJlYWN0LmNyZWF0ZUVsZW1lbnQoRGlzYWJsZWRDb250ZXh0Lm4se2Rpc2FibGVkOiExfSxmb290ZXJOb2RlKX07dmFyIGNzc2luanNfZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0NDg5OSksc3R5bGU9X193ZWJwYWNrX3JlcXVpcmVfXyg2OTk5KSxlc19zdHlsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDE0NzQ3KSxtb3Rpb25fbW90aW9uPV9fd2VicGFja19yZXF1aXJlX18oOTM1OTApO2xldCBmYWRlSW49bmV3IGNzc2luanNfZXMuRTQoImFudEZhZGVJbiIseyIwJSI6e29wYWNpdHk6MH0sIjEwMCUiOntvcGFjaXR5OjF9fSksZmFkZU91dD1uZXcgY3NzaW5qc19lcy5FNCgiYW50RmFkZU91dCIseyIwJSI6e29wYWNpdHk6MX0sIjEwMCUiOntvcGFjaXR5OjB9fSksaW5pdEZhZGVNb3Rpb249ZnVuY3Rpb24odG9rZW4pe2xldCBzYW1lTGV2ZWw9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSx7YW50Q2xzfT10b2tlbixtb3Rpb25DbHM9YCR7YW50Q2xzfS1mYWRlYCxzYW1lTGV2ZWxQcmVmaXg9c2FtZUxldmVsPyImIjoiIjtyZXR1cm5bKDAsbW90aW9uX21vdGlvbi5SKShtb3Rpb25DbHMsZmFkZUluLGZhZGVPdXQsdG9rZW4ubW90aW9uRHVyYXRpb25NaWQsc2FtZUxldmVsKSx7W2AKICAgICAgICAke3NhbWVMZXZlbFByZWZpeH0ke21vdGlvbkNsc30tZW50ZXIsCiAgICAgICAgJHtzYW1lTGV2ZWxQcmVmaXh9JHttb3Rpb25DbHN9LWFwcGVhcgogICAgICBgXTp7b3BhY2l0eTowLGFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOiJsaW5lYXIifSxbYCR7c2FtZUxldmVsUHJlZml4fSR7bW90aW9uQ2xzfS1sZWF2ZWBdOnthbmltYXRpb25UaW1pbmdGdW5jdGlvbjoibGluZWFyIn19XX07dmFyIHpvb209X193ZWJwYWNrX3JlcXVpcmVfXyg1MDQzOCksY3NzaW5qc191dGlsc19lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQyNTU5KSxnZW5TdHlsZVV0aWxzPV9fd2VicGFja19yZXF1aXJlX18oODM1NTkpO2Z1bmN0aW9uIGJveChwb3NpdGlvbil7cmV0dXJue3Bvc2l0aW9uLGluc2V0OjB9fWxldCBnZW5Nb2RhbE1hc2tTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHMsYW50Q2xzfT10b2tlbjtyZXR1cm5be1tgJHtjb21wb25lbnRDbHN9LXJvb3RgXTp7W2Ake2NvbXBvbmVudENsc30ke2FudENsc30tem9vbS1lbnRlciwgJHtjb21wb25lbnRDbHN9JHthbnRDbHN9LXpvb20tYXBwZWFyYF06e3RyYW5zZm9ybToibm9uZSIsb3BhY2l0eTowLGFuaW1hdGlvbkR1cmF0aW9uOnRva2VuLm1vdGlvbkR1cmF0aW9uU2xvdyx1c2VyU2VsZWN0OiJub25lIn0sW2Ake2NvbXBvbmVudENsc30ke2FudENsc30tem9vbS1sZWF2ZSAke2NvbXBvbmVudENsc30tY29udGVudGBdOntwb2ludGVyRXZlbnRzOiJub25lIn0sW2Ake2NvbXBvbmVudENsc30tbWFza2BdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxib3goImZpeGVkIikpLHt6SW5kZXg6dG9rZW4uekluZGV4UG9wdXBCYXNlLGhlaWdodDoiMTAwJSIsYmFja2dyb3VuZENvbG9yOnRva2VuLmNvbG9yQmdNYXNrLHBvaW50ZXJFdmVudHM6Im5vbmUiLFtgJHtjb21wb25lbnRDbHN9LWhpZGRlbmBdOntkaXNwbGF5OiJub25lIn19KSxbYCR7Y29tcG9uZW50Q2xzfS13cmFwYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGJveCgiZml4ZWQiKSkse3pJbmRleDp0b2tlbi56SW5kZXhQb3B1cEJhc2Usb3ZlcmZsb3c6ImF1dG8iLG91dGxpbmU6MCxXZWJraXRPdmVyZmxvd1Njcm9sbGluZzoidG91Y2gifSl9fSx7W2Ake2NvbXBvbmVudENsc30tcm9vdGBdOmluaXRGYWRlTW90aW9uKHRva2VuKX1dfSxnZW5Nb2RhbFN0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENsc309dG9rZW47cmV0dXJuW3tbYCR7Y29tcG9uZW50Q2xzfS1yb290YF06e1tgJHtjb21wb25lbnRDbHN9LXdyYXAtcnRsYF06e2RpcmVjdGlvbjoicnRsIn0sW2Ake2NvbXBvbmVudENsc30tY2VudGVyZWRgXTp7dGV4dEFsaWduOiJjZW50ZXIiLCImOjpiZWZvcmUiOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHdpZHRoOjAsaGVpZ2h0OiIxMDAlIix2ZXJ0aWNhbEFsaWduOiJtaWRkbGUiLGNvbnRlbnQ6JyIiJ30sW2NvbXBvbmVudENsc106e3RvcDowLGRpc3BsYXk6ImlubGluZS1ibG9jayIscGFkZGluZ0JvdHRvbTowLHRleHRBbGlnbjoic3RhcnQiLHZlcnRpY2FsQWxpZ246Im1pZGRsZSJ9fSxbYEBtZWRpYSAobWF4LXdpZHRoOiAke3Rva2VuLnNjcmVlblNNTWF4fXB4KWBdOntbY29tcG9uZW50Q2xzXTp7bWF4V2lkdGg6ImNhbGMoMTAwdncgLSAxNnB4KSIsbWFyZ2luOmAkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLm1hcmdpblhTKX0gYXV0b2B9LFtgJHtjb21wb25lbnRDbHN9LWNlbnRlcmVkYF06e1tjb21wb25lbnRDbHNdOntmbGV4OjF9fX19fSx7W2NvbXBvbmVudENsc106T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLGVzX3N0eWxlLldmKSh0b2tlbikpLHtwb2ludGVyRXZlbnRzOiJub25lIixwb3NpdGlvbjoicmVsYXRpdmUiLHRvcDoxMDAsd2lkdGg6ImF1dG8iLG1heFdpZHRoOmBjYWxjKDEwMHZ3IC0gJHsoMCxjc3NpbmpzX2VzLmJmKSh0b2tlbi5jYWxjKHRva2VuLm1hcmdpbikubXVsKDIpLmVxdWFsKCkpfSlgLG1hcmdpbjoiMCBhdXRvIixwYWRkaW5nQm90dG9tOnRva2VuLnBhZGRpbmdMRyxbYCR7Y29tcG9uZW50Q2xzfS10aXRsZWBdOnttYXJnaW46MCxjb2xvcjp0b2tlbi50aXRsZUNvbG9yLGZvbnRXZWlnaHQ6dG9rZW4uZm9udFdlaWdodFN0cm9uZyxmb250U2l6ZTp0b2tlbi50aXRsZUZvbnRTaXplLGxpbmVIZWlnaHQ6dG9rZW4udGl0bGVMaW5lSGVpZ2h0LHdvcmRXcmFwOiJicmVhay13b3JkIn0sW2Ake2NvbXBvbmVudENsc30tY29udGVudGBdOntwb3NpdGlvbjoicmVsYXRpdmUiLGJhY2tncm91bmRDb2xvcjp0b2tlbi5jb250ZW50QmcsYmFja2dyb3VuZENsaXA6InBhZGRpbmctYm94Iixib3JkZXI6MCxib3JkZXJSYWRpdXM6dG9rZW4uYm9yZGVyUmFkaXVzTEcsYm94U2hhZG93OnRva2VuLmJveFNoYWRvdyxwb2ludGVyRXZlbnRzOiJhdXRvIixwYWRkaW5nOnRva2VuLmNvbnRlbnRQYWRkaW5nfSxbYCR7Y29tcG9uZW50Q2xzfS1jbG9zZWBdOk9iamVjdC5hc3NpZ24oe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOnRva2VuLmNhbGModG9rZW4ubW9kYWxIZWFkZXJIZWlnaHQpLnN1Yih0b2tlbi5tb2RhbENsb3NlQnRuU2l6ZSkuZGl2KDIpLmVxdWFsKCksaW5zZXRJbmxpbmVFbmQ6dG9rZW4uY2FsYyh0b2tlbi5tb2RhbEhlYWRlckhlaWdodCkuc3ViKHRva2VuLm1vZGFsQ2xvc2VCdG5TaXplKS5kaXYoMikuZXF1YWwoKSx6SW5kZXg6dG9rZW4uY2FsYyh0b2tlbi56SW5kZXhQb3B1cEJhc2UpLmFkZCgxMCkuZXF1YWwoKSxwYWRkaW5nOjAsY29sb3I6dG9rZW4ubW9kYWxDbG9zZUljb25Db2xvcixmb250V2VpZ2h0OnRva2VuLmZvbnRXZWlnaHRTdHJvbmcsbGluZUhlaWdodDoxLHRleHREZWNvcmF0aW9uOiJub25lIixiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsYm9yZGVyUmFkaXVzOnRva2VuLmJvcmRlclJhZGl1c1NNLHdpZHRoOnRva2VuLm1vZGFsQ2xvc2VCdG5TaXplLGhlaWdodDp0b2tlbi5tb2RhbENsb3NlQnRuU2l6ZSxib3JkZXI6MCxvdXRsaW5lOjAsY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmBjb2xvciAke3Rva2VuLm1vdGlvbkR1cmF0aW9uTWlkfSwgYmFja2dyb3VuZC1jb2xvciAke3Rva2VuLm1vdGlvbkR1cmF0aW9uTWlkfWAsIiYteCI6e2Rpc3BsYXk6ImZsZXgiLGZvbnRTaXplOnRva2VuLmZvbnRTaXplTEcsZm9udFN0eWxlOiJub3JtYWwiLGxpbmVIZWlnaHQ6KDAsY3NzaW5qc19lcy5iZikodG9rZW4ubW9kYWxDbG9zZUJ0blNpemUpLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLHRleHRUcmFuc2Zvcm06Im5vbmUiLHRleHRSZW5kZXJpbmc6ImF1dG8ifSwiJjpkaXNhYmxlZCI6e3BvaW50ZXJFdmVudHM6Im5vbmUifSwiJjpob3ZlciI6e2NvbG9yOnRva2VuLm1vZGFsQ2xvc2VJY29uSG92ZXJDb2xvcixiYWNrZ3JvdW5kQ29sb3I6dG9rZW4uY29sb3JCZ1RleHRIb3Zlcix0ZXh0RGVjb3JhdGlvbjoibm9uZSJ9LCImOmFjdGl2ZSI6e2JhY2tncm91bmRDb2xvcjp0b2tlbi5jb2xvckJnVGV4dEFjdGl2ZX19LCgwLGVzX3N0eWxlLlF5KSh0b2tlbikpLFtgJHtjb21wb25lbnRDbHN9LWhlYWRlcmBdOntjb2xvcjp0b2tlbi5jb2xvclRleHQsYmFja2dyb3VuZDp0b2tlbi5oZWFkZXJCZyxib3JkZXJSYWRpdXM6YCR7KDAsY3NzaW5qc19lcy5iZikodG9rZW4uYm9yZGVyUmFkaXVzTEcpfSAkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLmJvcmRlclJhZGl1c0xHKX0gMCAwYCxtYXJnaW5Cb3R0b206dG9rZW4uaGVhZGVyTWFyZ2luQm90dG9tLHBhZGRpbmc6dG9rZW4uaGVhZGVyUGFkZGluZyxib3JkZXJCb3R0b206dG9rZW4uaGVhZGVyQm9yZGVyQm90dG9tfSxbYCR7Y29tcG9uZW50Q2xzfS1ib2R5YF06e2ZvbnRTaXplOnRva2VuLmZvbnRTaXplLGxpbmVIZWlnaHQ6dG9rZW4ubGluZUhlaWdodCx3b3JkV3JhcDoiYnJlYWstd29yZCIscGFkZGluZzp0b2tlbi5ib2R5UGFkZGluZyxbYCR7Y29tcG9uZW50Q2xzfS1ib2R5LXNrZWxldG9uYF06e3dpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLGRpc3BsYXk6ImZsZXgiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLGFsaWduSXRlbXM6ImNlbnRlciIsbWFyZ2luOmAkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLm1hcmdpbil9IGF1dG9gfX0sW2Ake2NvbXBvbmVudENsc30tZm9vdGVyYF06e3RleHRBbGlnbjoiZW5kIixiYWNrZ3JvdW5kOnRva2VuLmZvb3RlckJnLG1hcmdpblRvcDp0b2tlbi5mb290ZXJNYXJnaW5Ub3AscGFkZGluZzp0b2tlbi5mb290ZXJQYWRkaW5nLGJvcmRlclRvcDp0b2tlbi5mb290ZXJCb3JkZXJUb3AsYm9yZGVyUmFkaXVzOnRva2VuLmZvb3RlckJvcmRlclJhZGl1cyxbYD4gJHt0b2tlbi5hbnRDbHN9LWJ0biArICR7dG9rZW4uYW50Q2xzfS1idG5gXTp7bWFyZ2luSW5saW5lU3RhcnQ6dG9rZW4ubWFyZ2luWFN9fSxbYCR7Y29tcG9uZW50Q2xzfS1vcGVuYF06e292ZXJmbG93OiJoaWRkZW4ifX0pfSx7W2Ake2NvbXBvbmVudENsc30tcHVyZS1wYW5lbGBdOnt0b3A6ImF1dG8iLHBhZGRpbmc6MCxkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLFtgJHtjb21wb25lbnRDbHN9LWNvbnRlbnQsCiAgICAgICAgICAke2NvbXBvbmVudENsc30tYm9keSwKICAgICAgICAgICR7Y29tcG9uZW50Q2xzfS1jb25maXJtLWJvZHktd3JhcHBlcmBdOntkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLGZsZXg6ImF1dG8ifSxbYCR7Y29tcG9uZW50Q2xzfS1jb25maXJtLWJvZHlgXTp7bWFyZ2luQm90dG9tOiJhdXRvIn19fV19LGdlblJUTFN0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENsc309dG9rZW47cmV0dXJue1tgJHtjb21wb25lbnRDbHN9LXJvb3RgXTp7W2Ake2NvbXBvbmVudENsc30td3JhcC1ydGxgXTp7ZGlyZWN0aW9uOiJydGwiLFtgJHtjb21wb25lbnRDbHN9LWNvbmZpcm0tYm9keWBdOntkaXJlY3Rpb246InJ0bCJ9fX19fSxnZW5SZXNwb25zaXZlV2lkdGhTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHN9PXRva2VuLGdyaWRNZWRpYVNpemVzTWFwPSgwLHN0eWxlLmhkKSh0b2tlbik7ZGVsZXRlIGdyaWRNZWRpYVNpemVzTWFwLnhzO2xldCByZXNwb25zaXZlU3R5bGVzPU9iamVjdC5rZXlzKGdyaWRNZWRpYVNpemVzTWFwKS5tYXAoa2V5PT4oe1tgQG1lZGlhIChtaW4td2lkdGg6ICR7KDAsY3NzaW5qc19lcy5iZikoZ3JpZE1lZGlhU2l6ZXNNYXBba2V5XSl9KWBdOnt3aWR0aDpgdmFyKC0tJHtjb21wb25lbnRDbHMucmVwbGFjZSgiLiIsIiIpfS0ke2tleX0td2lkdGgpYH19KSk7cmV0dXJue1tgJHtjb21wb25lbnRDbHN9LXJvb3RgXTp7W2NvbXBvbmVudENsc106W3t3aWR0aDpgdmFyKC0tJHtjb21wb25lbnRDbHMucmVwbGFjZSgiLiIsIiIpfS14cy13aWR0aClgfV0uY29uY2F0KCgwLHRvQ29uc3VtYWJsZUFycmF5LlopKHJlc3BvbnNpdmVTdHlsZXMpKX19fSxwcmVwYXJlVG9rZW49dG9rZW49PntsZXQgaGVhZGVyUGFkZGluZ1ZlcnRpY2FsPXRva2VuLnBhZGRpbmcsaGVhZGVyRm9udFNpemU9dG9rZW4uZm9udFNpemVIZWFkaW5nNSxoZWFkZXJMaW5lSGVpZ2h0PXRva2VuLmxpbmVIZWlnaHRIZWFkaW5nNSxtb2RhbFRva2VuPSgwLGNzc2luanNfdXRpbHNfZXMuSVgpKHRva2VuLHttb2RhbEhlYWRlckhlaWdodDp0b2tlbi5jYWxjKHRva2VuLmNhbGMoaGVhZGVyTGluZUhlaWdodCkubXVsKGhlYWRlckZvbnRTaXplKS5lcXVhbCgpKS5hZGQodG9rZW4uY2FsYyhoZWFkZXJQYWRkaW5nVmVydGljYWwpLm11bCgyKS5lcXVhbCgpKS5lcXVhbCgpLG1vZGFsRm9vdGVyQm9yZGVyQ29sb3JTcGxpdDp0b2tlbi5jb2xvclNwbGl0LG1vZGFsRm9vdGVyQm9yZGVyU3R5bGU6dG9rZW4ubGluZVR5cGUsbW9kYWxGb290ZXJCb3JkZXJXaWR0aDp0b2tlbi5saW5lV2lkdGgsbW9kYWxDbG9zZUljb25Db2xvcjp0b2tlbi5jb2xvckljb24sbW9kYWxDbG9zZUljb25Ib3ZlckNvbG9yOnRva2VuLmNvbG9ySWNvbkhvdmVyLG1vZGFsQ2xvc2VCdG5TaXplOnRva2VuLmNvbnRyb2xIZWlnaHQsbW9kYWxDb25maXJtSWNvblNpemU6dG9rZW4uZm9udEhlaWdodCxtb2RhbFRpdGxlSGVpZ2h0OnRva2VuLmNhbGModG9rZW4udGl0bGVGb250U2l6ZSkubXVsKHRva2VuLnRpdGxlTGluZUhlaWdodCkuZXF1YWwoKX0pO3JldHVybiBtb2RhbFRva2VufSxwcmVwYXJlQ29tcG9uZW50VG9rZW49dG9rZW49Pih7Zm9vdGVyQmc6InRyYW5zcGFyZW50IixoZWFkZXJCZzp0b2tlbi5jb2xvckJnRWxldmF0ZWQsdGl0bGVMaW5lSGVpZ2h0OnRva2VuLmxpbmVIZWlnaHRIZWFkaW5nNSx0aXRsZUZvbnRTaXplOnRva2VuLmZvbnRTaXplSGVhZGluZzUsY29udGVudEJnOnRva2VuLmNvbG9yQmdFbGV2YXRlZCx0aXRsZUNvbG9yOnRva2VuLmNvbG9yVGV4dEhlYWRpbmcsY29udGVudFBhZGRpbmc6dG9rZW4ud2lyZWZyYW1lPzA6YCR7KDAsY3NzaW5qc19lcy5iZikodG9rZW4ucGFkZGluZ01EKX0gJHsoMCxjc3NpbmpzX2VzLmJmKSh0b2tlbi5wYWRkaW5nQ29udGVudEhvcml6b250YWxMRyl9YCxoZWFkZXJQYWRkaW5nOnRva2VuLndpcmVmcmFtZT9gJHsoMCxjc3NpbmpzX2VzLmJmKSh0b2tlbi5wYWRkaW5nKX0gJHsoMCxjc3NpbmpzX2VzLmJmKSh0b2tlbi5wYWRkaW5nTEcpfWA6MCxoZWFkZXJCb3JkZXJCb3R0b206dG9rZW4ud2lyZWZyYW1lP2AkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLmxpbmVXaWR0aCl9ICR7dG9rZW4ubGluZVR5cGV9ICR7dG9rZW4uY29sb3JTcGxpdH1gOiJub25lIixoZWFkZXJNYXJnaW5Cb3R0b206dG9rZW4ud2lyZWZyYW1lPzA6dG9rZW4ubWFyZ2luWFMsYm9keVBhZGRpbmc6dG9rZW4ud2lyZWZyYW1lP3Rva2VuLnBhZGRpbmdMRzowLGZvb3RlclBhZGRpbmc6dG9rZW4ud2lyZWZyYW1lP2AkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLnBhZGRpbmdYUyl9ICR7KDAsY3NzaW5qc19lcy5iZikodG9rZW4ucGFkZGluZyl9YDowLGZvb3RlckJvcmRlclRvcDp0b2tlbi53aXJlZnJhbWU/YCR7KDAsY3NzaW5qc19lcy5iZikodG9rZW4ubGluZVdpZHRoKX0gJHt0b2tlbi5saW5lVHlwZX0gJHt0b2tlbi5jb2xvclNwbGl0fWA6Im5vbmUiLGZvb3RlckJvcmRlclJhZGl1czp0b2tlbi53aXJlZnJhbWU/YDAgMCAkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLmJvcmRlclJhZGl1c0xHKX0gJHsoMCxjc3NpbmpzX2VzLmJmKSh0b2tlbi5ib3JkZXJSYWRpdXNMRyl9YDowLGZvb3Rlck1hcmdpblRvcDp0b2tlbi53aXJlZnJhbWU/MDp0b2tlbi5tYXJnaW5TTSxjb25maXJtQm9keVBhZGRpbmc6dG9rZW4ud2lyZWZyYW1lP2AkeygwLGNzc2luanNfZXMuYmYpKDIqdG9rZW4ucGFkZGluZyl9ICR7KDAsY3NzaW5qc19lcy5iZikoMip0b2tlbi5wYWRkaW5nKX0gJHsoMCxjc3NpbmpzX2VzLmJmKSh0b2tlbi5wYWRkaW5nTEcpfWA6MCxjb25maXJtSWNvbk1hcmdpbklubGluZUVuZDp0b2tlbi53aXJlZnJhbWU/dG9rZW4ubWFyZ2luOnRva2VuLm1hcmdpblNNLGNvbmZpcm1CdG5zTWFyZ2luVG9wOnRva2VuLndpcmVmcmFtZT90b2tlbi5tYXJnaW5MRzp0b2tlbi5tYXJnaW5TTX0pO3ZhciBtb2RhbF9zdHlsZT0oMCxnZW5TdHlsZVV0aWxzLkkkKSgiTW9kYWwiLHRva2VuPT57bGV0IG1vZGFsVG9rZW49cHJlcGFyZVRva2VuKHRva2VuKTtyZXR1cm5bZ2VuTW9kYWxTdHlsZShtb2RhbFRva2VuKSxnZW5SVExTdHlsZShtb2RhbFRva2VuKSxnZW5Nb2RhbE1hc2tTdHlsZShtb2RhbFRva2VuKSwoMCx6b29tLl95KShtb2RhbFRva2VuLCJ6b29tIiksZ2VuUmVzcG9uc2l2ZVdpZHRoU3R5bGUobW9kYWxUb2tlbildfSxwcmVwYXJlQ29tcG9uZW50VG9rZW4se3VuaXRsZXNzOnt0aXRsZUxpbmVIZWlnaHQ6ITB9fSksX19yZXN0PWZ1bmN0aW9uKHMsZSl7dmFyIHQ9e307Zm9yKHZhciBwIGluIHMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMscCkmJjA+ZS5pbmRleE9mKHApJiYodFtwXT1zW3BdKTtpZihudWxsIT1zJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scylmb3IodmFyIGk9MCxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7aTxwLmxlbmd0aDtpKyspMD5lLmluZGV4T2YocFtpXSkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLHBbaV0pJiYodFtwW2ldXT1zW3BbaV1dKTtyZXR1cm4gdH07bGV0IGdldENsaWNrUG9zaXRpb249ZT0+e21vdXNlUG9zaXRpb249e3g6ZS5wYWdlWCx5OmUucGFnZVl9LHNldFRpbWVvdXQoKCk9Pnttb3VzZVBvc2l0aW9uPW51bGx9LDEwMCl9OygwLGNhblVzZURvbS5aKSgpJiZ3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGdldENsaWNrUG9zaXRpb24sITApO2xldCBNb2RhbD1wcm9wcz0+e2xldHtwcmVmaXhDbHM6Y3VzdG9taXplUHJlZml4Q2xzLGNsYXNzTmFtZSxyb290Q2xhc3NOYW1lLG9wZW4sd3JhcENsYXNzTmFtZSxjZW50ZXJlZCxnZXRDb250YWluZXIsZm9jdXNUcmlnZ2VyQWZ0ZXJDbG9zZT0hMCxzdHlsZSx2aXNpYmxlLHdpZHRoPTUyMCxmb290ZXIsY2xhc3NOYW1lczptb2RhbENsYXNzTmFtZXMsc3R5bGVzOm1vZGFsU3R5bGVzLGNoaWxkcmVuLGxvYWRpbmcsY29uZmlybUxvYWRpbmcsekluZGV4OmN1c3RvbWl6ZVpJbmRleCxtb3VzZVBvc2l0aW9uOmN1c3RvbWl6ZU1vdXNlUG9zaXRpb24sb25PayxvbkNhbmNlbCxkZXN0cm95T25IaWRkZW4sZGVzdHJveU9uQ2xvc2V9PXByb3BzLHJlc3RQcm9wcz1fX3Jlc3QocHJvcHMsWyJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwib3BlbiIsIndyYXBDbGFzc05hbWUiLCJjZW50ZXJlZCIsImdldENvbnRhaW5lciIsImZvY3VzVHJpZ2dlckFmdGVyQ2xvc2UiLCJzdHlsZSIsInZpc2libGUiLCJ3aWR0aCIsImZvb3RlciIsImNsYXNzTmFtZXMiLCJzdHlsZXMiLCJjaGlsZHJlbiIsImxvYWRpbmciLCJjb25maXJtTG9hZGluZyIsInpJbmRleCIsIm1vdXNlUG9zaXRpb24iLCJvbk9rIiwib25DYW5jZWwiLCJkZXN0cm95T25IaWRkZW4iLCJkZXN0cm95T25DbG9zZSJdKSx7Z2V0UG9wdXBDb250YWluZXI6Z2V0Q29udGV4dFBvcHVwQ29udGFpbmVyLGdldFByZWZpeENscyxkaXJlY3Rpb24sbW9kYWw6bW9kYWxDb250ZXh0fT1yZWFjdC51c2VDb250ZXh0KGNvbnRleHQuRV8pLGhhbmRsZUNhbmNlbD1lPT57Y29uZmlybUxvYWRpbmd8fG51bGw9PW9uQ2FuY2VsfHxvbkNhbmNlbChlKX0saGFuZGxlT2s9ZT0+e251bGw9PW9uT2t8fG9uT2soZSl9LHByZWZpeENscz1nZXRQcmVmaXhDbHMoIm1vZGFsIixjdXN0b21pemVQcmVmaXhDbHMpLHJvb3RQcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCkscm9vdENscz0oMCx1c2VDU1NWYXJDbHMuWikocHJlZml4Q2xzKSxbd3JhcENTU1ZhcixoYXNoSWQsY3NzVmFyQ2xzXT1tb2RhbF9zdHlsZShwcmVmaXhDbHMscm9vdENscyksd3JhcENsYXNzTmFtZUV4dGVuZGVkPWNsYXNzbmFtZXNfZGVmYXVsdCgpKHdyYXBDbGFzc05hbWUse1tgJHtwcmVmaXhDbHN9LWNlbnRlcmVkYF06bnVsbCE9Y2VudGVyZWQ/Y2VudGVyZWQ6bnVsbD09bW9kYWxDb250ZXh0P3ZvaWQgMDptb2RhbENvbnRleHQuY2VudGVyZWQsW2Ake3ByZWZpeENsc30td3JhcC1ydGxgXToicnRsIj09PWRpcmVjdGlvbn0pLGRpYWxvZ0Zvb3Rlcj1udWxsPT09Zm9vdGVyfHxsb2FkaW5nP251bGw6cmVhY3QuY3JlYXRlRWxlbWVudChGb290ZXIsT2JqZWN0LmFzc2lnbih7fSxwcm9wcyx7b25PazpoYW5kbGVPayxvbkNhbmNlbDpoYW5kbGVDYW5jZWx9KSksW21lcmdlZENsb3NhYmxlLG1lcmdlZENsb3NlSWNvbixjbG9zZUJ0bklzRGlzYWJsZWQsYXJpYVByb3BzXT0oMCx1c2VDbG9zYWJsZS5aKSgoMCx1c2VDbG9zYWJsZS53KShwcm9wcyksKDAsdXNlQ2xvc2FibGUudykobW9kYWxDb250ZXh0KSx7Y2xvc2FibGU6ITAsY2xvc2VJY29uOnJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2xvc2VPdXRsaW5lZC5aLHtjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS1jbG9zZS1pY29uYH0pLGNsb3NlSWNvblJlbmRlcjppY29uPT5yZW5kZXJDbG9zZUljb24ocHJlZml4Q2xzLGljb24pfSkscGFuZWxSZWY9KDAsd2F0ZXJtYXJrX2NvbnRleHQuSCkoYC4ke3ByZWZpeENsc30tY29udGVudGApLFt6SW5kZXgsY29udGV4dFpJbmRleF09KDAsdXNlWkluZGV4LkNuKSgiTW9kYWwiLGN1c3RvbWl6ZVpJbmRleCksW251bVdpZHRoLHJlc3BvbnNpdmVXaWR0aF09cmVhY3QudXNlTWVtbygoKT0+d2lkdGgmJiJvYmplY3QiPT10eXBlb2Ygd2lkdGg/W3ZvaWQgMCx3aWR0aF06W3dpZHRoLHZvaWQgMF0sW3dpZHRoXSkscmVzcG9uc2l2ZVdpZHRoVmFycz1yZWFjdC51c2VNZW1vKCgpPT57bGV0IHZhcnM9e307cmV0dXJuIHJlc3BvbnNpdmVXaWR0aCYmT2JqZWN0LmtleXMocmVzcG9uc2l2ZVdpZHRoKS5mb3JFYWNoKGJyZWFrcG9pbnQ9PntsZXQgYnJlYWtwb2ludFdpZHRoPXJlc3BvbnNpdmVXaWR0aFticmVha3BvaW50XTt2b2lkIDAhPT1icmVha3BvaW50V2lkdGgmJih2YXJzW2AtLSR7cHJlZml4Q2xzfS0ke2JyZWFrcG9pbnR9LXdpZHRoYF09Im51bWJlciI9PXR5cGVvZiBicmVha3BvaW50V2lkdGg/YCR7YnJlYWtwb2ludFdpZHRofXB4YDpicmVha3BvaW50V2lkdGgpfSksdmFyc30sW3Jlc3BvbnNpdmVXaWR0aF0pO3JldHVybiB3cmFwQ1NTVmFyKHJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29udGV4dElzb2xhdG9yLlose2Zvcm06ITAsc3BhY2U6ITB9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoemluZGV4Q29udGV4dC5aLlByb3ZpZGVyLHt2YWx1ZTpjb250ZXh0WkluZGV4fSxyZWFjdC5jcmVhdGVFbGVtZW50KERpYWxvZ1dyYXAsT2JqZWN0LmFzc2lnbih7d2lkdGg6bnVtV2lkdGh9LHJlc3RQcm9wcyx7ekluZGV4OnpJbmRleCxnZXRDb250YWluZXI6dm9pZCAwPT09Z2V0Q29udGFpbmVyP2dldENvbnRleHRQb3B1cENvbnRhaW5lcjpnZXRDb250YWluZXIscHJlZml4Q2xzOnByZWZpeENscyxyb290Q2xhc3NOYW1lOmNsYXNzbmFtZXNfZGVmYXVsdCgpKGhhc2hJZCxyb290Q2xhc3NOYW1lLGNzc1ZhckNscyxyb290Q2xzKSxmb290ZXI6ZGlhbG9nRm9vdGVyLHZpc2libGU6bnVsbCE9b3Blbj9vcGVuOnZpc2libGUsbW91c2VQb3NpdGlvbjpudWxsIT1jdXN0b21pemVNb3VzZVBvc2l0aW9uP2N1c3RvbWl6ZU1vdXNlUG9zaXRpb246bW91c2VQb3NpdGlvbixvbkNsb3NlOmhhbmRsZUNhbmNlbCxjbG9zYWJsZTptZXJnZWRDbG9zYWJsZT9PYmplY3QuYXNzaWduKHtkaXNhYmxlZDpjbG9zZUJ0bklzRGlzYWJsZWQsY2xvc2VJY29uOm1lcmdlZENsb3NlSWNvbn0sYXJpYVByb3BzKTptZXJnZWRDbG9zYWJsZSxjbG9zZUljb246bWVyZ2VkQ2xvc2VJY29uLGZvY3VzVHJpZ2dlckFmdGVyQ2xvc2U6Zm9jdXNUcmlnZ2VyQWZ0ZXJDbG9zZSx0cmFuc2l0aW9uTmFtZTooMCxtb3Rpb24ubSkocm9vdFByZWZpeENscywiem9vbSIscHJvcHMudHJhbnNpdGlvbk5hbWUpLG1hc2tUcmFuc2l0aW9uTmFtZTooMCxtb3Rpb24ubSkocm9vdFByZWZpeENscywiZmFkZSIscHJvcHMubWFza1RyYW5zaXRpb25OYW1lKSxjbGFzc05hbWU6Y2xhc3NuYW1lc19kZWZhdWx0KCkoaGFzaElkLGNsYXNzTmFtZSxudWxsPT1tb2RhbENvbnRleHQ/dm9pZCAwOm1vZGFsQ29udGV4dC5jbGFzc05hbWUpLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG51bGw9PW1vZGFsQ29udGV4dD92b2lkIDA6bW9kYWxDb250ZXh0LnN0eWxlKSxzdHlsZSkscmVzcG9uc2l2ZVdpZHRoVmFycyksY2xhc3NOYW1lczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxudWxsPT1tb2RhbENvbnRleHQ/dm9pZCAwOm1vZGFsQ29udGV4dC5jbGFzc05hbWVzKSxtb2RhbENsYXNzTmFtZXMpLHt3cmFwcGVyOmNsYXNzbmFtZXNfZGVmYXVsdCgpKHdyYXBDbGFzc05hbWVFeHRlbmRlZCxudWxsPT1tb2RhbENsYXNzTmFtZXM/dm9pZCAwOm1vZGFsQ2xhc3NOYW1lcy53cmFwcGVyKX0pLHN0eWxlczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbnVsbD09bW9kYWxDb250ZXh0P3ZvaWQgMDptb2RhbENvbnRleHQuc3R5bGVzKSxtb2RhbFN0eWxlcykscGFuZWxSZWY6cGFuZWxSZWYsZGVzdHJveU9uQ2xvc2U6bnVsbCE9ZGVzdHJveU9uSGlkZGVuP2Rlc3Ryb3lPbkhpZGRlbjpkZXN0cm95T25DbG9zZX0pLGxvYWRpbmc/cmVhY3QuY3JlYXRlRWxlbWVudChza2VsZXRvbi5aLHthY3RpdmU6ITAsdGl0bGU6ITEscGFyYWdyYXBoOntyb3dzOjR9LGNsYXNzTmFtZTpgJHtwcmVmaXhDbHN9LWJvZHktc2tlbGV0b25gfSk6Y2hpbGRyZW4pKSkpfSxnZW5Nb2RhbENvbmZpcm1TdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHMsdGl0bGVGb250U2l6ZSx0aXRsZUxpbmVIZWlnaHQsbW9kYWxDb25maXJtSWNvblNpemUsZm9udFNpemUsbGluZUhlaWdodCxtb2RhbFRpdGxlSGVpZ2h0LGZvbnRIZWlnaHQsY29uZmlybUJvZHlQYWRkaW5nfT10b2tlbixjb25maXJtQ29tcG9uZW50Q2xzPWAke2NvbXBvbmVudENsc30tY29uZmlybWA7cmV0dXJue1tjb25maXJtQ29tcG9uZW50Q2xzXTp7IiYtcnRsIjp7ZGlyZWN0aW9uOiJydGwifSxbYCR7dG9rZW4uYW50Q2xzfS1tb2RhbC1oZWFkZXJgXTp7ZGlzcGxheToibm9uZSJ9LFtgJHtjb25maXJtQ29tcG9uZW50Q2xzfS1ib2R5LXdyYXBwZXJgXTpPYmplY3QuYXNzaWduKHt9LCgwLGVzX3N0eWxlLmRGKSgpKSxbYCYke2NvbXBvbmVudENsc30gJHtjb21wb25lbnRDbHN9LWJvZHlgXTp7cGFkZGluZzpjb25maXJtQm9keVBhZGRpbmd9LFtgJHtjb25maXJtQ29tcG9uZW50Q2xzfS1ib2R5YF06e2Rpc3BsYXk6ImZsZXgiLGZsZXhXcmFwOiJub3dyYXAiLGFsaWduSXRlbXM6InN0YXJ0IixbYD4gJHt0b2tlbi5pY29uQ2xzfWBdOntmbGV4OiJub25lIixmb250U2l6ZTptb2RhbENvbmZpcm1JY29uU2l6ZSxtYXJnaW5JbmxpbmVFbmQ6dG9rZW4uY29uZmlybUljb25NYXJnaW5JbmxpbmVFbmQsbWFyZ2luVG9wOnRva2VuLmNhbGModG9rZW4uY2FsYyhmb250SGVpZ2h0KS5zdWIobW9kYWxDb25maXJtSWNvblNpemUpLmVxdWFsKCkpLmRpdigyKS5lcXVhbCgpfSxbYCYtaGFzLXRpdGxlID4gJHt0b2tlbi5pY29uQ2xzfWBdOnttYXJnaW5Ub3A6dG9rZW4uY2FsYyh0b2tlbi5jYWxjKG1vZGFsVGl0bGVIZWlnaHQpLnN1Yihtb2RhbENvbmZpcm1JY29uU2l6ZSkuZXF1YWwoKSkuZGl2KDIpLmVxdWFsKCl9fSxbYCR7Y29uZmlybUNvbXBvbmVudENsc30tcGFyYWdyYXBoYF06e2Rpc3BsYXk6ImZsZXgiLGZsZXhEaXJlY3Rpb246ImNvbHVtbiIsZmxleDoiYXV0byIscm93R2FwOnRva2VuLm1hcmdpblhTLG1heFdpZHRoOmBjYWxjKDEwMCUgLSAkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLm1hcmdpblNNKX0pYH0sW2Ake3Rva2VuLmljb25DbHN9ICsgJHtjb25maXJtQ29tcG9uZW50Q2xzfS1wYXJhZ3JhcGhgXTp7bWF4V2lkdGg6YGNhbGMoMTAwJSAtICR7KDAsY3NzaW5qc19lcy5iZikodG9rZW4uY2FsYyh0b2tlbi5tb2RhbENvbmZpcm1JY29uU2l6ZSkuYWRkKHRva2VuLm1hcmdpblNNKS5lcXVhbCgpKX0pYH0sW2Ake2NvbmZpcm1Db21wb25lbnRDbHN9LXRpdGxlYF06e2NvbG9yOnRva2VuLmNvbG9yVGV4dEhlYWRpbmcsZm9udFdlaWdodDp0b2tlbi5mb250V2VpZ2h0U3Ryb25nLGZvbnRTaXplOnRpdGxlRm9udFNpemUsbGluZUhlaWdodDp0aXRsZUxpbmVIZWlnaHR9LFtgJHtjb25maXJtQ29tcG9uZW50Q2xzfS1jb250ZW50YF06e2NvbG9yOnRva2VuLmNvbG9yVGV4dCxmb250U2l6ZSxsaW5lSGVpZ2h0fSxbYCR7Y29uZmlybUNvbXBvbmVudENsc30tYnRuc2BdOnt0ZXh0QWxpZ246ImVuZCIsbWFyZ2luVG9wOnRva2VuLmNvbmZpcm1CdG5zTWFyZ2luVG9wLFtgJHt0b2tlbi5hbnRDbHN9LWJ0biArICR7dG9rZW4uYW50Q2xzfS1idG5gXTp7bWFyZ2luQm90dG9tOjAsbWFyZ2luSW5saW5lU3RhcnQ6dG9rZW4ubWFyZ2luWFN9fX0sW2Ake2NvbmZpcm1Db21wb25lbnRDbHN9LWVycm9yICR7Y29uZmlybUNvbXBvbmVudENsc30tYm9keSA+ICR7dG9rZW4uaWNvbkNsc31gXTp7Y29sb3I6dG9rZW4uY29sb3JFcnJvcn0sW2Ake2NvbmZpcm1Db21wb25lbnRDbHN9LXdhcm5pbmcgJHtjb25maXJtQ29tcG9uZW50Q2xzfS1ib2R5ID4gJHt0b2tlbi5pY29uQ2xzfSwKICAgICAgICAke2NvbmZpcm1Db21wb25lbnRDbHN9LWNvbmZpcm0gJHtjb25maXJtQ29tcG9uZW50Q2xzfS1ib2R5ID4gJHt0b2tlbi5pY29uQ2xzfWBdOntjb2xvcjp0b2tlbi5jb2xvcldhcm5pbmd9LFtgJHtjb25maXJtQ29tcG9uZW50Q2xzfS1pbmZvICR7Y29uZmlybUNvbXBvbmVudENsc30tYm9keSA+ICR7dG9rZW4uaWNvbkNsc31gXTp7Y29sb3I6dG9rZW4uY29sb3JJbmZvfSxbYCR7Y29uZmlybUNvbXBvbmVudENsc30tc3VjY2VzcyAke2NvbmZpcm1Db21wb25lbnRDbHN9LWJvZHkgPiAke3Rva2VuLmljb25DbHN9YF06e2NvbG9yOnRva2VuLmNvbG9yU3VjY2Vzc319fTt2YXIgc3R5bGVfY29uZmlybT0oMCxnZW5TdHlsZVV0aWxzLmJrKShbIk1vZGFsIiwiY29uZmlybSJdLHRva2VuPT57bGV0IG1vZGFsVG9rZW49cHJlcGFyZVRva2VuKHRva2VuKTtyZXR1cm5bZ2VuTW9kYWxDb25maXJtU3R5bGUobW9kYWxUb2tlbildfSxwcmVwYXJlQ29tcG9uZW50VG9rZW4se29yZGVyOi0xZTN9KSxDb25maXJtRGlhbG9nX3Jlc3Q9ZnVuY3Rpb24ocyxlKXt2YXIgdD17fTtmb3IodmFyIHAgaW4gcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxwKSYmMD5lLmluZGV4T2YocCkmJih0W3BdPXNbcF0pO2lmKG51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKWZvcih2YXIgaT0wLHA9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtpPHAubGVuZ3RoO2krKykwPmUuaW5kZXhPZihwW2ldKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMscFtpXSkmJih0W3BbaV1dPXNbcFtpXV0pO3JldHVybiB0fTtmdW5jdGlvbiBDb25maXJtQ29udGVudChwcm9wcyl7bGV0e3ByZWZpeENscyxpY29uLG9rVGV4dCxjYW5jZWxUZXh0LGNvbmZpcm1QcmVmaXhDbHMsdHlwZSxva0NhbmNlbCxmb290ZXIsbG9jYWxlOnN0YXRpY0xvY2FsZX09cHJvcHMscmVzZXRQcm9wcz1Db25maXJtRGlhbG9nX3Jlc3QocHJvcHMsWyJwcmVmaXhDbHMiLCJpY29uIiwib2tUZXh0IiwiY2FuY2VsVGV4dCIsImNvbmZpcm1QcmVmaXhDbHMiLCJ0eXBlIiwib2tDYW5jZWwiLCJmb290ZXIiLCJsb2NhbGUiXSksbWVyZ2VkSWNvbj1pY29uO2lmKCFpY29uJiZudWxsIT09aWNvbilzd2l0Y2godHlwZSl7Y2FzZSJpbmZvIjptZXJnZWRJY29uPXJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5mb0NpcmNsZUZpbGxlZC5aLG51bGwpO2JyZWFrO2Nhc2Uic3VjY2VzcyI6bWVyZ2VkSWNvbj1yZWFjdC5jcmVhdGVFbGVtZW50KENoZWNrQ2lyY2xlRmlsbGVkLlosbnVsbCk7YnJlYWs7Y2FzZSJlcnJvciI6bWVyZ2VkSWNvbj1yZWFjdC5jcmVhdGVFbGVtZW50KENsb3NlQ2lyY2xlRmlsbGVkLlosbnVsbCk7YnJlYWs7ZGVmYXVsdDptZXJnZWRJY29uPXJlYWN0LmNyZWF0ZUVsZW1lbnQoRXhjbGFtYXRpb25DaXJjbGVGaWxsZWQuWixudWxsKX1sZXQgbWVyZ2VkT2tDYW5jZWw9bnVsbCE9b2tDYW5jZWw/b2tDYW5jZWw6ImNvbmZpcm0iPT09dHlwZSxhdXRvRm9jdXNCdXR0b249bnVsbCE9PXByb3BzLmF1dG9Gb2N1c0J1dHRvbiYmKHByb3BzLmF1dG9Gb2N1c0J1dHRvbnx8Im9rIiksW2xvY2FsZV09KDAsdXNlTG9jYWxlLlopKCJNb2RhbCIpLG1lcmdlZExvY2FsZT1zdGF0aWNMb2NhbGV8fGxvY2FsZSxva1RleHRMb2NhbGU9b2tUZXh0fHwobWVyZ2VkT2tDYW5jZWw/bnVsbD09bWVyZ2VkTG9jYWxlP3ZvaWQgMDptZXJnZWRMb2NhbGUub2tUZXh0Om51bGw9PW1lcmdlZExvY2FsZT92b2lkIDA6bWVyZ2VkTG9jYWxlLmp1c3RPa1RleHQpLGNhbmNlbFRleHRMb2NhbGU9Y2FuY2VsVGV4dHx8KG51bGw9PW1lcmdlZExvY2FsZT92b2lkIDA6bWVyZ2VkTG9jYWxlLmNhbmNlbFRleHQpLGJ0bkN0eFZhbHVlPU9iamVjdC5hc3NpZ24oe2F1dG9Gb2N1c0J1dHRvbixjYW5jZWxUZXh0TG9jYWxlLG9rVGV4dExvY2FsZSxtZXJnZWRPa0NhbmNlbH0scmVzZXRQcm9wcyksYnRuQ3R4VmFsdWVNZW1vPXJlYWN0LnVzZU1lbW8oKCk9PmJ0bkN0eFZhbHVlLCgwLHRvQ29uc3VtYWJsZUFycmF5LlopKE9iamVjdC52YWx1ZXMoYnRuQ3R4VmFsdWUpKSksZm9vdGVyT3JpZ2luTm9kZT1yZWFjdC5jcmVhdGVFbGVtZW50KHJlYWN0LkZyYWdtZW50LG51bGwscmVhY3QuY3JlYXRlRWxlbWVudChDb25maXJtQ2FuY2VsQnRuLG51bGwpLHJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29uZmlybU9rQnRuLG51bGwpKSxoYXNUaXRsZT12b2lkIDAhPT1wcm9wcy50aXRsZSYmbnVsbCE9PXByb3BzLnRpdGxlLGJvZHlDbHM9YCR7Y29uZmlybVByZWZpeENsc30tYm9keWA7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtjb25maXJtUHJlZml4Q2xzfS1ib2R5LXdyYXBwZXJgfSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Y2xhc3NuYW1lc19kZWZhdWx0KCkoYm9keUNscyx7W2Ake2JvZHlDbHN9LWhhcy10aXRsZWBdOmhhc1RpdGxlfSl9LG1lcmdlZEljb24scmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke2NvbmZpcm1QcmVmaXhDbHN9LXBhcmFncmFwaGB9LGhhc1RpdGxlJiZyZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmAke2NvbmZpcm1QcmVmaXhDbHN9LXRpdGxlYH0scHJvcHMudGl0bGUpLHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtjb25maXJtUHJlZml4Q2xzfS1jb250ZW50YH0scHJvcHMuY29udGVudCkpKSx2b2lkIDA9PT1mb290ZXJ8fCJmdW5jdGlvbiI9PXR5cGVvZiBmb290ZXI/cmVhY3QuY3JlYXRlRWxlbWVudChNb2RhbENvbnRleHRQcm92aWRlcix7dmFsdWU6YnRuQ3R4VmFsdWVNZW1vfSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7Y29uZmlybVByZWZpeENsc30tYnRuc2B9LCJmdW5jdGlvbiI9PXR5cGVvZiBmb290ZXI/Zm9vdGVyKGZvb3Rlck9yaWdpbk5vZGUse09rQnRuOkNvbmZpcm1Pa0J0bixDYW5jZWxCdG46Q29uZmlybUNhbmNlbEJ0bn0pOmZvb3Rlck9yaWdpbk5vZGUpKTpmb290ZXIscmVhY3QuY3JlYXRlRWxlbWVudChzdHlsZV9jb25maXJtLHtwcmVmaXhDbHM6cHJlZml4Q2xzfSkpfWxldCBDb25maXJtRGlhbG9nPXByb3BzPT57bGV0e2Nsb3NlLHpJbmRleCxtYXNrU3R5bGUsZGlyZWN0aW9uLHByZWZpeENscyx3cmFwQ2xhc3NOYW1lLHJvb3RQcmVmaXhDbHMsYm9keVN0eWxlLGNsb3NhYmxlPSExLG9uQ29uZmlybSxzdHlsZXN9PXByb3BzLGNvbmZpcm1QcmVmaXhDbHM9YCR7cHJlZml4Q2xzfS1jb25maXJtYCx3aWR0aD1wcm9wcy53aWR0aHx8NDE2LHN0eWxlPXByb3BzLnN0eWxlfHx7fSxtYXNrPXZvaWQgMD09PXByb3BzLm1hc2t8fHByb3BzLm1hc2ssbWFza0Nsb3NhYmxlPXZvaWQgMCE9PXByb3BzLm1hc2tDbG9zYWJsZSYmcHJvcHMubWFza0Nsb3NhYmxlLGNsYXNzU3RyaW5nPWNsYXNzbmFtZXNfZGVmYXVsdCgpKGNvbmZpcm1QcmVmaXhDbHMsYCR7Y29uZmlybVByZWZpeENsc30tJHtwcm9wcy50eXBlfWAse1tgJHtjb25maXJtUHJlZml4Q2xzfS1ydGxgXToicnRsIj09PWRpcmVjdGlvbn0scHJvcHMuY2xhc3NOYW1lKSxbLHRva2VuXT0oMCx1c2VUb2tlbi5aUCkoKSxtZXJnZWRaSW5kZXg9cmVhY3QudXNlTWVtbygoKT0+dm9pZCAwIT09ekluZGV4P3pJbmRleDp0b2tlbi56SW5kZXhQb3B1cEJhc2UrdXNlWkluZGV4LnU2LFt6SW5kZXgsdG9rZW5dKTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChNb2RhbCxPYmplY3QuYXNzaWduKHt9LHByb3BzLHtjbGFzc05hbWU6Y2xhc3NTdHJpbmcsd3JhcENsYXNzTmFtZTpjbGFzc25hbWVzX2RlZmF1bHQoKSh7W2Ake2NvbmZpcm1QcmVmaXhDbHN9LWNlbnRlcmVkYF06ISFwcm9wcy5jZW50ZXJlZH0sd3JhcENsYXNzTmFtZSksb25DYW5jZWwoKXtudWxsPT1jbG9zZXx8Y2xvc2Uoe3RyaWdnZXJDYW5jZWw6ITB9KSxudWxsPT1vbkNvbmZpcm18fG9uQ29uZmlybSghMSl9LHRpdGxlOiIiLGZvb3RlcjpudWxsLHRyYW5zaXRpb25OYW1lOigwLG1vdGlvbi5tKShyb290UHJlZml4Q2xzfHwiIiwiem9vbSIscHJvcHMudHJhbnNpdGlvbk5hbWUpLG1hc2tUcmFuc2l0aW9uTmFtZTooMCxtb3Rpb24ubSkocm9vdFByZWZpeENsc3x8IiIsImZhZGUiLHByb3BzLm1hc2tUcmFuc2l0aW9uTmFtZSksbWFzazptYXNrLG1hc2tDbG9zYWJsZTptYXNrQ2xvc2FibGUsc3R5bGU6c3R5bGUsc3R5bGVzOk9iamVjdC5hc3NpZ24oe2JvZHk6Ym9keVN0eWxlLG1hc2s6bWFza1N0eWxlfSxzdHlsZXMpLHdpZHRoOndpZHRoLHpJbmRleDptZXJnZWRaSW5kZXgsY2xvc2FibGU6Y2xvc2FibGV9KSxyZWFjdC5jcmVhdGVFbGVtZW50KENvbmZpcm1Db250ZW50LE9iamVjdC5hc3NpZ24oe30scHJvcHMse2NvbmZpcm1QcmVmaXhDbHM6Y29uZmlybVByZWZpeENsc30pKSl9LENvbmZpcm1EaWFsb2dXcmFwcGVyPXByb3BzPT57bGV0e3Jvb3RQcmVmaXhDbHMsaWNvblByZWZpeENscyxkaXJlY3Rpb24sdGhlbWV9PXByb3BzO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KGNvbmZpZ19wcm92aWRlci5aUCx7cHJlZml4Q2xzOnJvb3RQcmVmaXhDbHMsaWNvblByZWZpeENsczppY29uUHJlZml4Q2xzLGRpcmVjdGlvbjpkaXJlY3Rpb24sdGhlbWU6dGhlbWV9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29uZmlybURpYWxvZyxPYmplY3QuYXNzaWduKHt9LHByb3BzKSkpfTt2YXIgbW9kYWxfZGVzdHJveUZucz1bXTtsZXQgZGVmYXVsdFJvb3RQcmVmaXhDbHM9IiIsY29uZmlybV9Db25maXJtRGlhbG9nV3JhcHBlcj1wcm9wcz0+e3ZhciBfYSxfYjtsZXR7cHJlZml4Q2xzOmN1c3RvbWl6ZVByZWZpeENscyxnZXRDb250YWluZXIsZGlyZWN0aW9ufT1wcm9wcyxydW50aW1lTG9jYWxlPSgwLG1vZGFsX2xvY2FsZS5BKSgpLGNvbmZpZz0oMCxyZWFjdC51c2VDb250ZXh0KShjb250ZXh0LkVfKSxyb290UHJlZml4Q2xzPWRlZmF1bHRSb290UHJlZml4Q2xzfHxjb25maWcuZ2V0UHJlZml4Q2xzKCkscHJlZml4Q2xzPWN1c3RvbWl6ZVByZWZpeENsc3x8YCR7cm9vdFByZWZpeENsc30tbW9kYWxgLG1lcmdlZEdldENvbnRhaW5lcj1nZXRDb250YWluZXI7cmV0dXJuITE9PT1tZXJnZWRHZXRDb250YWluZXImJihtZXJnZWRHZXRDb250YWluZXI9dm9pZCAwKSxyZWFjdC5jcmVhdGVFbGVtZW50KENvbmZpcm1EaWFsb2dXcmFwcGVyLE9iamVjdC5hc3NpZ24oe30scHJvcHMse3Jvb3RQcmVmaXhDbHM6cm9vdFByZWZpeENscyxwcmVmaXhDbHM6cHJlZml4Q2xzLGljb25QcmVmaXhDbHM6Y29uZmlnLmljb25QcmVmaXhDbHMsdGhlbWU6Y29uZmlnLnRoZW1lLGRpcmVjdGlvbjpudWxsIT1kaXJlY3Rpb24/ZGlyZWN0aW9uOmNvbmZpZy5kaXJlY3Rpb24sbG9jYWxlOm51bGwhPT0oX2I9bnVsbD09PShfYT1jb25maWcubG9jYWxlKXx8dm9pZCAwPT09X2E/dm9pZCAwOl9hLk1vZGFsKSYmdm9pZCAwIT09X2I/X2I6cnVudGltZUxvY2FsZSxnZXRDb250YWluZXI6bWVyZ2VkR2V0Q29udGFpbmVyfSkpfTtmdW5jdGlvbiBjb25maXJtX2NvbmZpcm0oY29uZmlnKXtsZXQgdGltZW91dElkLHJlYWN0VW5tb3VudDtsZXQgZ2xvYmFsMT0oMCxjb25maWdfcHJvdmlkZXIudzYpKCksY29udGFpbmVyPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxjdXJyZW50Q29uZmlnPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjb25maWcpLHtjbG9zZSxvcGVuOiEwfSk7ZnVuY3Rpb24gZGVzdHJveSgpe2Zvcih2YXIgX2EsX2xlbj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbiksX2tleT0wO19rZXk8X2xlbjtfa2V5KyspYXJnc1tfa2V5XT1hcmd1bWVudHNbX2tleV07bGV0IHRyaWdnZXJDYW5jZWw9YXJncy5zb21lKHBhcmFtPT5udWxsPT1wYXJhbT92b2lkIDA6cGFyYW0udHJpZ2dlckNhbmNlbCk7dHJpZ2dlckNhbmNlbCYmKG51bGw9PT0oX2E9Y29uZmlnLm9uQ2FuY2VsKXx8dm9pZCAwPT09X2F8fF9hLmNhbGwuYXBwbHkoX2EsW2NvbmZpZywoKT0+e31dLmNvbmNhdCgoMCx0b0NvbnN1bWFibGVBcnJheS5aKShhcmdzLnNsaWNlKDEpKSkpKTtmb3IobGV0IGk9MDtpPG1vZGFsX2Rlc3Ryb3lGbnMubGVuZ3RoO2krKyl7bGV0IGZuPW1vZGFsX2Rlc3Ryb3lGbnNbaV07aWYoZm49PT1jbG9zZSl7bW9kYWxfZGVzdHJveUZucy5zcGxpY2UoaSwxKTticmVha319cmVhY3RVbm1vdW50KCl9ZnVuY3Rpb24gcmVuZGVyKHByb3BzKXtjbGVhclRpbWVvdXQodGltZW91dElkKSx0aW1lb3V0SWQ9c2V0VGltZW91dCgoKT0+e2xldCByb290UHJlZml4Q2xzPWdsb2JhbDEuZ2V0UHJlZml4Q2xzKHZvaWQgMCxkZWZhdWx0Um9vdFByZWZpeENscyksaWNvblByZWZpeENscz1nbG9iYWwxLmdldEljb25QcmVmaXhDbHMoKSx0aGVtZT1nbG9iYWwxLmdldFRoZW1lKCksZG9tPXJlYWN0LmNyZWF0ZUVsZW1lbnQoY29uZmlybV9Db25maXJtRGlhbG9nV3JhcHBlcixPYmplY3QuYXNzaWduKHt9LHByb3BzKSkscmVhY3RSZW5kZXI9KDAsVW5zdGFibGVDb250ZXh0LnEpKCk7cmVhY3RVbm1vdW50PXJlYWN0UmVuZGVyKHJlYWN0LmNyZWF0ZUVsZW1lbnQoY29uZmlnX3Byb3ZpZGVyLlpQLHtwcmVmaXhDbHM6cm9vdFByZWZpeENscyxpY29uUHJlZml4Q2xzOmljb25QcmVmaXhDbHMsdGhlbWU6dGhlbWV9LGdsb2JhbDEuaG9sZGVyUmVuZGVyP2dsb2JhbDEuaG9sZGVyUmVuZGVyKGRvbSk6ZG9tKSxjb250YWluZXIpfSl9ZnVuY3Rpb24gY2xvc2UoKXtmb3IodmFyIF9sZW4yPWFyZ3VtZW50cy5sZW5ndGgsYXJncz1BcnJheShfbGVuMiksX2tleTI9MDtfa2V5MjxfbGVuMjtfa2V5MisrKWFyZ3NbX2tleTJdPWFyZ3VtZW50c1tfa2V5Ml07KGN1cnJlbnRDb25maWc9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGN1cnJlbnRDb25maWcpLHtvcGVuOiExLGFmdGVyQ2xvc2U6KCk9PnsiZnVuY3Rpb24iPT10eXBlb2YgY29uZmlnLmFmdGVyQ2xvc2UmJmNvbmZpZy5hZnRlckNsb3NlKCksZGVzdHJveS5hcHBseSh0aGlzLGFyZ3MpfX0pKS52aXNpYmxlJiZkZWxldGUgY3VycmVudENvbmZpZy52aXNpYmxlLHJlbmRlcihjdXJyZW50Q29uZmlnKX1yZXR1cm4gcmVuZGVyKGN1cnJlbnRDb25maWcpLG1vZGFsX2Rlc3Ryb3lGbnMucHVzaChjbG9zZSkse2Rlc3Ryb3k6Y2xvc2UsdXBkYXRlOmZ1bmN0aW9uKGNvbmZpZ1VwZGF0ZSl7cmVuZGVyKGN1cnJlbnRDb25maWc9ImZ1bmN0aW9uIj09dHlwZW9mIGNvbmZpZ1VwZGF0ZT9jb25maWdVcGRhdGUoY3VycmVudENvbmZpZyk6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGN1cnJlbnRDb25maWcpLGNvbmZpZ1VwZGF0ZSkpfX19ZnVuY3Rpb24gd2l0aFdhcm4ocHJvcHMpe3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scHJvcHMpLHt0eXBlOiJ3YXJuaW5nIn0pfWZ1bmN0aW9uIHdpdGhJbmZvKHByb3BzKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHByb3BzKSx7dHlwZToiaW5mbyJ9KX1mdW5jdGlvbiB3aXRoU3VjY2Vzcyhwcm9wcyl7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxwcm9wcykse3R5cGU6InN1Y2Nlc3MifSl9ZnVuY3Rpb24gd2l0aEVycm9yKHByb3BzKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHByb3BzKSx7dHlwZToiZXJyb3IifSl9ZnVuY3Rpb24gd2l0aENvbmZpcm0ocHJvcHMpe3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scHJvcHMpLHt0eXBlOiJjb25maXJtIn0pfXZhciBQdXJlUGFuZWw9X193ZWJwYWNrX3JlcXVpcmVfXyg4NzQ1KSxQdXJlUGFuZWxfcmVzdD1mdW5jdGlvbihzLGUpe3ZhciB0PXt9O2Zvcih2YXIgcCBpbiBzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLHApJiYwPmUuaW5kZXhPZihwKSYmKHRbcF09c1twXSk7aWYobnVsbCE9cyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpZm9yKHZhciBpPTAscD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpO2k8cC5sZW5ndGg7aSsrKTA+ZS5pbmRleE9mKHBbaV0pJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocyxwW2ldKSYmKHRbcFtpXV09c1twW2ldXSk7cmV0dXJuIHR9O2xldCBQdXJlUGFuZWxfUHVyZVBhbmVsPXByb3BzPT57bGV0e3ByZWZpeENsczpjdXN0b21pemVQcmVmaXhDbHMsY2xhc3NOYW1lLGNsb3NlSWNvbixjbG9zYWJsZSx0eXBlLHRpdGxlLGNoaWxkcmVuLGZvb3Rlcn09cHJvcHMscmVzdFByb3BzPVB1cmVQYW5lbF9yZXN0KHByb3BzLFsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwiY2xvc2VJY29uIiwiY2xvc2FibGUiLCJ0eXBlIiwidGl0bGUiLCJjaGlsZHJlbiIsImZvb3RlciJdKSx7Z2V0UHJlZml4Q2xzfT1yZWFjdC51c2VDb250ZXh0KGNvbnRleHQuRV8pLHJvb3RQcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCkscHJlZml4Q2xzPWN1c3RvbWl6ZVByZWZpeENsc3x8Z2V0UHJlZml4Q2xzKCJtb2RhbCIpLHJvb3RDbHM9KDAsdXNlQ1NTVmFyQ2xzLlopKHJvb3RQcmVmaXhDbHMpLFt3cmFwQ1NTVmFyLGhhc2hJZCxjc3NWYXJDbHNdPW1vZGFsX3N0eWxlKHByZWZpeENscyxyb290Q2xzKSxjb25maXJtUHJlZml4Q2xzPWAke3ByZWZpeENsc30tY29uZmlybWAsYWRkaXRpb25hbFByb3BzPXt9O3JldHVybiBhZGRpdGlvbmFsUHJvcHM9dHlwZT97Y2xvc2FibGU6bnVsbCE9Y2xvc2FibGUmJmNsb3NhYmxlLHRpdGxlOiIiLGZvb3RlcjoiIixjaGlsZHJlbjpyZWFjdC5jcmVhdGVFbGVtZW50KENvbmZpcm1Db250ZW50LE9iamVjdC5hc3NpZ24oe30scHJvcHMse3ByZWZpeENsczpwcmVmaXhDbHMsY29uZmlybVByZWZpeENsczpjb25maXJtUHJlZml4Q2xzLHJvb3RQcmVmaXhDbHM6cm9vdFByZWZpeENscyxjb250ZW50OmNoaWxkcmVufSkpfTp7Y2xvc2FibGU6bnVsbD09Y2xvc2FibGV8fGNsb3NhYmxlLHRpdGxlLGZvb3RlcjpudWxsIT09Zm9vdGVyJiZyZWFjdC5jcmVhdGVFbGVtZW50KEZvb3RlcixPYmplY3QuYXNzaWduKHt9LHByb3BzKSksY2hpbGRyZW59LHdyYXBDU1NWYXIocmVhY3QuY3JlYXRlRWxlbWVudChQYW5lbCxPYmplY3QuYXNzaWduKHtwcmVmaXhDbHM6cHJlZml4Q2xzLGNsYXNzTmFtZTpjbGFzc25hbWVzX2RlZmF1bHQoKShoYXNoSWQsYCR7cHJlZml4Q2xzfS1wdXJlLXBhbmVsYCx0eXBlJiZjb25maXJtUHJlZml4Q2xzLHR5cGUmJmAke2NvbmZpcm1QcmVmaXhDbHN9LSR7dHlwZX1gLGNsYXNzTmFtZSxjc3NWYXJDbHMscm9vdENscyl9LHJlc3RQcm9wcyx7Y2xvc2VJY29uOnJlbmRlckNsb3NlSWNvbihwcmVmaXhDbHMsY2xvc2VJY29uKSxjbG9zYWJsZTpjbG9zYWJsZX0sYWRkaXRpb25hbFByb3BzKSkpfTt2YXIgbW9kYWxfUHVyZVBhbmVsPSgwLFB1cmVQYW5lbC5pKShQdXJlUGFuZWxfUHVyZVBhbmVsKSxlbl9VUz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI0NDU3KSxIb29rTW9kYWxfcmVzdD1mdW5jdGlvbihzLGUpe3ZhciB0PXt9O2Zvcih2YXIgcCBpbiBzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLHApJiYwPmUuaW5kZXhPZihwKSYmKHRbcF09c1twXSk7aWYobnVsbCE9cyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpZm9yKHZhciBpPTAscD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpO2k8cC5sZW5ndGg7aSsrKTA+ZS5pbmRleE9mKHBbaV0pJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocyxwW2ldKSYmKHRbcFtpXV09c1twW2ldXSk7cmV0dXJuIHR9O2xldCBIb29rTW9kYWw9KF9hLHJlZik9Pnt2YXIgX2Ise2FmdGVyQ2xvc2U6aG9va0FmdGVyQ2xvc2UsY29uZmlnfT1fYSxyZXN0UHJvcHM9SG9va01vZGFsX3Jlc3QoX2EsWyJhZnRlckNsb3NlIiwiY29uZmlnIl0pO2xldFtvcGVuLHNldE9wZW5dPXJlYWN0LnVzZVN0YXRlKCEwKSxbaW5uZXJDb25maWcsc2V0SW5uZXJDb25maWddPXJlYWN0LnVzZVN0YXRlKGNvbmZpZykse2RpcmVjdGlvbixnZXRQcmVmaXhDbHN9PXJlYWN0LnVzZUNvbnRleHQoY29udGV4dC5FXykscHJlZml4Q2xzPWdldFByZWZpeENscygibW9kYWwiKSxyb290UHJlZml4Q2xzPWdldFByZWZpeENscygpLGFmdGVyQ2xvc2U9KCk9Pnt2YXIgX2E7aG9va0FmdGVyQ2xvc2UoKSxudWxsPT09KF9hPWlubmVyQ29uZmlnLmFmdGVyQ2xvc2UpfHx2b2lkIDA9PT1fYXx8X2EuY2FsbChpbm5lckNvbmZpZyl9LGNsb3NlPWZ1bmN0aW9uKCl7c2V0T3BlbighMSk7Zm9yKHZhciBfYSxfbGVuPWFyZ3VtZW50cy5sZW5ndGgsYXJncz1BcnJheShfbGVuKSxfa2V5PTA7X2tleTxfbGVuO19rZXkrKylhcmdzW19rZXldPWFyZ3VtZW50c1tfa2V5XTtsZXQgdHJpZ2dlckNhbmNlbD1hcmdzLnNvbWUocGFyYW09Pm51bGw9PXBhcmFtP3ZvaWQgMDpwYXJhbS50cmlnZ2VyQ2FuY2VsKTt0cmlnZ2VyQ2FuY2VsJiYobnVsbD09PShfYT1pbm5lckNvbmZpZy5vbkNhbmNlbCl8fHZvaWQgMD09PV9hfHxfYS5jYWxsLmFwcGx5KF9hLFtpbm5lckNvbmZpZywoKT0+e31dLmNvbmNhdCgoMCx0b0NvbnN1bWFibGVBcnJheS5aKShhcmdzLnNsaWNlKDEpKSkpKX07cmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsKCk9Pih7ZGVzdHJveTpjbG9zZSx1cGRhdGUobmV3Q29uZmlnKXtzZXRJbm5lckNvbmZpZyhvcmlnaW5Db25maWc9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxvcmlnaW5Db25maWcpLG5ld0NvbmZpZykpfX0pKTtsZXQgbWVyZ2VkT2tDYW5jZWw9bnVsbCE9PShfYj1pbm5lckNvbmZpZy5va0NhbmNlbCkmJnZvaWQgMCE9PV9iP19iOiJjb25maXJtIj09PWlubmVyQ29uZmlnLnR5cGUsW2NvbnRleHRMb2NhbGVdPSgwLHVzZUxvY2FsZS5aKSgiTW9kYWwiLGVuX1VTLlouTW9kYWwpO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KENvbmZpcm1EaWFsb2dXcmFwcGVyLE9iamVjdC5hc3NpZ24oe3ByZWZpeENsczpwcmVmaXhDbHMscm9vdFByZWZpeENsczpyb290UHJlZml4Q2xzfSxpbm5lckNvbmZpZyx7Y2xvc2U6Y2xvc2Usb3BlbjpvcGVuLGFmdGVyQ2xvc2U6YWZ0ZXJDbG9zZSxva1RleHQ6aW5uZXJDb25maWcub2tUZXh0fHwobWVyZ2VkT2tDYW5jZWw/bnVsbD09Y29udGV4dExvY2FsZT92b2lkIDA6Y29udGV4dExvY2FsZS5va1RleHQ6bnVsbD09Y29udGV4dExvY2FsZT92b2lkIDA6Y29udGV4dExvY2FsZS5qdXN0T2tUZXh0KSxkaXJlY3Rpb246aW5uZXJDb25maWcuZGlyZWN0aW9ufHxkaXJlY3Rpb24sY2FuY2VsVGV4dDppbm5lckNvbmZpZy5jYW5jZWxUZXh0fHwobnVsbD09Y29udGV4dExvY2FsZT92b2lkIDA6Y29udGV4dExvY2FsZS5jYW5jZWxUZXh0KX0scmVzdFByb3BzKSl9O3ZhciB1c2VNb2RhbF9Ib29rTW9kYWw9cmVhY3QuZm9yd2FyZFJlZihIb29rTW9kYWwpO2xldCB1c2VNb2RhbF91dWlkPTAsRWxlbWVudHNIb2xkZXI9cmVhY3QubWVtbyhyZWFjdC5mb3J3YXJkUmVmKChfcHJvcHMscmVmKT0+e2xldFtlbGVtZW50cyxwYXRjaEVsZW1lbnRdPWZ1bmN0aW9uKCl7bGV0W2VsZW1lbnRzLHNldEVsZW1lbnRzXT1yZWFjdC51c2VTdGF0ZShbXSkscGF0Y2hFbGVtZW50PXJlYWN0LnVzZUNhbGxiYWNrKGVsZW1lbnQ9PihzZXRFbGVtZW50cyhvcmlnaW5FbGVtZW50cz0+W10uY29uY2F0KCgwLHRvQ29uc3VtYWJsZUFycmF5LlopKG9yaWdpbkVsZW1lbnRzKSxbZWxlbWVudF0pKSwoKT0+e3NldEVsZW1lbnRzKG9yaWdpbkVsZW1lbnRzPT5vcmlnaW5FbGVtZW50cy5maWx0ZXIoZWxlPT5lbGUhPT1lbGVtZW50KSl9KSxbXSk7cmV0dXJuW2VsZW1lbnRzLHBhdGNoRWxlbWVudF19KCk7cmV0dXJuIHJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCgpPT4oe3BhdGNoRWxlbWVudH0pLFtdKSxyZWFjdC5jcmVhdGVFbGVtZW50KHJlYWN0LkZyYWdtZW50LG51bGwsZWxlbWVudHMpfSkpO2Z1bmN0aW9uIG1vZGFsV2Fybihwcm9wcyl7cmV0dXJuIGNvbmZpcm1fY29uZmlybSh3aXRoV2Fybihwcm9wcykpfWxldCBlc19tb2RhbF9Nb2RhbD1Nb2RhbDtlc19tb2RhbF9Nb2RhbC51c2VNb2RhbD1mdW5jdGlvbigpe2xldCBob2xkZXJSZWY9cmVhY3QudXNlUmVmKG51bGwpLFthY3Rpb25RdWV1ZSxzZXRBY3Rpb25RdWV1ZV09cmVhY3QudXNlU3RhdGUoW10pO3JlYWN0LnVzZUVmZmVjdCgoKT0+e2lmKGFjdGlvblF1ZXVlLmxlbmd0aCl7bGV0IGNsb25lUXVldWU9KDAsdG9Db25zdW1hYmxlQXJyYXkuWikoYWN0aW9uUXVldWUpO2Nsb25lUXVldWUuZm9yRWFjaChhY3Rpb249PnthY3Rpb24oKX0pLHNldEFjdGlvblF1ZXVlKFtdKX19LFthY3Rpb25RdWV1ZV0pO2xldCBnZXRDb25maXJtRnVuYz1yZWFjdC51c2VDYWxsYmFjayh3aXRoRnVuYz0+ZnVuY3Rpb24oY29uZmlnKXt2YXIgX2E7bGV0IHJlc29sdmVQcm9taXNlLGNsb3NlRnVuYzt1c2VNb2RhbF91dWlkKz0xO2xldCBtb2RhbFJlZj1yZWFjdC5jcmVhdGVSZWYoKSxwcm9taXNlPW5ldyBQcm9taXNlKHJlc29sdmU9PntyZXNvbHZlUHJvbWlzZT1yZXNvbHZlfSksc2lsZW50PSExLG1vZGFsPXJlYWN0LmNyZWF0ZUVsZW1lbnQodXNlTW9kYWxfSG9va01vZGFsLHtrZXk6YG1vZGFsLSR7dXNlTW9kYWxfdXVpZH1gLGNvbmZpZzp3aXRoRnVuYyhjb25maWcpLHJlZjptb2RhbFJlZixhZnRlckNsb3NlKCl7bnVsbD09Y2xvc2VGdW5jfHxjbG9zZUZ1bmMoKX0saXNTaWxlbnQ6KCk9PnNpbGVudCxvbkNvbmZpcm0oY29uZmlybWVkKXtyZXNvbHZlUHJvbWlzZShjb25maXJtZWQpfX0pO3JldHVybihjbG9zZUZ1bmM9bnVsbD09PShfYT1ob2xkZXJSZWYuY3VycmVudCl8fHZvaWQgMD09PV9hP3ZvaWQgMDpfYS5wYXRjaEVsZW1lbnQobW9kYWwpKSYmbW9kYWxfZGVzdHJveUZucy5wdXNoKGNsb3NlRnVuYykse2Rlc3Ryb3koKXtmdW5jdGlvbiBkZXN0cm95QWN0aW9uKCl7dmFyIF9hO251bGw9PT0oX2E9bW9kYWxSZWYuY3VycmVudCl8fHZvaWQgMD09PV9hfHxfYS5kZXN0cm95KCl9bW9kYWxSZWYuY3VycmVudD9kZXN0cm95QWN0aW9uKCk6c2V0QWN0aW9uUXVldWUocHJldj0+W10uY29uY2F0KCgwLHRvQ29uc3VtYWJsZUFycmF5LlopKHByZXYpLFtkZXN0cm95QWN0aW9uXSkpfSx1cGRhdGUobmV3Q29uZmlnKXtmdW5jdGlvbiB1cGRhdGVBY3Rpb24oKXt2YXIgX2E7bnVsbD09PShfYT1tb2RhbFJlZi5jdXJyZW50KXx8dm9pZCAwPT09X2F8fF9hLnVwZGF0ZShuZXdDb25maWcpfW1vZGFsUmVmLmN1cnJlbnQ/dXBkYXRlQWN0aW9uKCk6c2V0QWN0aW9uUXVldWUocHJldj0+W10uY29uY2F0KCgwLHRvQ29uc3VtYWJsZUFycmF5LlopKHByZXYpLFt1cGRhdGVBY3Rpb25dKSl9LHRoZW46cmVzb2x2ZT0+KHNpbGVudD0hMCxwcm9taXNlLnRoZW4ocmVzb2x2ZSkpfX0sW10pLGZucz1yZWFjdC51c2VNZW1vKCgpPT4oe2luZm86Z2V0Q29uZmlybUZ1bmMod2l0aEluZm8pLHN1Y2Nlc3M6Z2V0Q29uZmlybUZ1bmMod2l0aFN1Y2Nlc3MpLGVycm9yOmdldENvbmZpcm1GdW5jKHdpdGhFcnJvciksd2FybmluZzpnZXRDb25maXJtRnVuYyh3aXRoV2FybiksY29uZmlybTpnZXRDb25maXJtRnVuYyh3aXRoQ29uZmlybSl9KSxbXSk7cmV0dXJuW2ZucyxyZWFjdC5jcmVhdGVFbGVtZW50KEVsZW1lbnRzSG9sZGVyLHtrZXk6Im1vZGFsLWhvbGRlciIscmVmOmhvbGRlclJlZn0pXX0sZXNfbW9kYWxfTW9kYWwuaW5mbz1mdW5jdGlvbihwcm9wcyl7cmV0dXJuIGNvbmZpcm1fY29uZmlybSh3aXRoSW5mbyhwcm9wcykpfSxlc19tb2RhbF9Nb2RhbC5zdWNjZXNzPWZ1bmN0aW9uKHByb3BzKXtyZXR1cm4gY29uZmlybV9jb25maXJtKHdpdGhTdWNjZXNzKHByb3BzKSl9LGVzX21vZGFsX01vZGFsLmVycm9yPWZ1bmN0aW9uKHByb3BzKXtyZXR1cm4gY29uZmlybV9jb25maXJtKHdpdGhFcnJvcihwcm9wcykpfSxlc19tb2RhbF9Nb2RhbC53YXJuaW5nPW1vZGFsV2Fybixlc19tb2RhbF9Nb2RhbC53YXJuPW1vZGFsV2Fybixlc19tb2RhbF9Nb2RhbC5jb25maXJtPWZ1bmN0aW9uKHByb3BzKXtyZXR1cm4gY29uZmlybV9jb25maXJtKHdpdGhDb25maXJtKHByb3BzKSl9LGVzX21vZGFsX01vZGFsLmRlc3Ryb3lBbGw9ZnVuY3Rpb24oKXtmb3IoO21vZGFsX2Rlc3Ryb3lGbnMubGVuZ3RoOyl7bGV0IGNsb3NlPW1vZGFsX2Rlc3Ryb3lGbnMucG9wKCk7Y2xvc2UmJmNsb3NlKCl9fSxlc19tb2RhbF9Nb2RhbC5jb25maWc9ZnVuY3Rpb24oX3JlZil7bGV0e3Jvb3RQcmVmaXhDbHN9PV9yZWY7ZGVmYXVsdFJvb3RQcmVmaXhDbHM9cm9vdFByZWZpeENsc30sZXNfbW9kYWxfTW9kYWwuX0ludGVybmFsUGFuZWxEb05vdFVzZU9yWW91V2lsbEJlRmlyZWQ9bW9kYWxfUHVyZVBhbmVsO3ZhciBtb2RhbD1lc19tb2RhbF9Nb2RhbH0sODMwMDg6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se0E6ZnVuY3Rpb24oKXtyZXR1cm4gZ2V0Q29uZmlybUxvY2FsZX0sZjpmdW5jdGlvbigpe3JldHVybiBjaGFuZ2VDb25maXJtTG9jYWxlfX0pO3ZhciBfbG9jYWxlX2VuX1VTX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXygyNDQ1Nyk7bGV0IHJ1bnRpbWVMb2NhbGU9T2JqZWN0LmFzc2lnbih7fSxfbG9jYWxlX2VuX1VTX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWi5Nb2RhbCksbG9jYWxlTGlzdD1bXSxnZW5lcmF0ZUxvY2FsZT0oKT0+bG9jYWxlTGlzdC5yZWR1Y2UoKG1lcmdlZCxsb2NhbGUpPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbWVyZ2VkKSxsb2NhbGUpLF9sb2NhbGVfZW5fVVNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aLk1vZGFsKTtmdW5jdGlvbiBjaGFuZ2VDb25maXJtTG9jYWxlKG5ld0xvY2FsZSl7aWYobmV3TG9jYWxlKXtsZXQgY2xvbmVMb2NhbGU9T2JqZWN0LmFzc2lnbih7fSxuZXdMb2NhbGUpO3JldHVybiBsb2NhbGVMaXN0LnB1c2goY2xvbmVMb2NhbGUpLHJ1bnRpbWVMb2NhbGU9Z2VuZXJhdGVMb2NhbGUoKSwoKT0+e2xvY2FsZUxpc3Q9bG9jYWxlTGlzdC5maWx0ZXIobG9jYWxlPT5sb2NhbGUhPT1jbG9uZUxvY2FsZSkscnVudGltZUxvY2FsZT1nZW5lcmF0ZUxvY2FsZSgpfX1ydW50aW1lTG9jYWxlPU9iamVjdC5hc3NpZ24oe30sX2xvY2FsZV9lbl9VU19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlouTW9kYWwpfWZ1bmN0aW9uIGdldENvbmZpcm1Mb2NhbGUoKXtyZXR1cm4gcnVudGltZUxvY2FsZX19LDE2NTY4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaUDpmdW5jdGlvbigpe3JldHVybiBlc19ub3RpZmljYXRpb259fSk7dmFyIHJlYWN0PV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLGNvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg2Njk2OCksY29uZmlnX3Byb3ZpZGVyX2NvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzEyNCksY29uZmlnX3Byb3ZpZGVyPV9fd2VicGFja19yZXF1aXJlX18oMzc4MTIpLFVuc3RhYmxlQ29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ2MTQ3KSxDaGVja0NpcmNsZUZpbGxlZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDg5NzM5KSxDbG9zZUNpcmNsZUZpbGxlZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQzNDApLENsb3NlT3V0bGluZWQ9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzkzNyksRXhjbGFtYXRpb25DaXJjbGVGaWxsZWQ9X193ZWJwYWNrX3JlcXVpcmVfXygyMTY0MCksSW5mb0NpcmNsZUZpbGxlZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDc4ODYwKSxMb2FkaW5nT3V0bGluZWQ9X193ZWJwYWNrX3JlcXVpcmVfXyg1MDg4OCksY2xhc3NuYW1lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDEzMTQ0KSxjbGFzc25hbWVzX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGNsYXNzbmFtZXMpLGVzPV9fd2VicGFja19yZXF1aXJlX18oNDI5OTkpLHVzZUNTU1ZhckNscz1fX3dlYnBhY2tfcmVxdWlyZV9fKDM1NzkyKSxjc3NpbmpzX2VzPV9fd2VicGFja19yZXF1aXJlX18oNDQ4OTkpLHVzZVpJbmRleD1fX3dlYnBhY2tfcmVxdWlyZV9fKDg3MjYzKSxzdHlsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDE0NzQ3KSxjc3NpbmpzX3V0aWxzX2VzPV9fd2VicGFja19yZXF1aXJlX18oNDI1NTkpLGdlblN0eWxlVXRpbHM9X193ZWJwYWNrX3JlcXVpcmVfXyg4MzU1OSk7bGV0IGdlbk5vdGlmaWNhdGlvblBsYWNlbWVudFN0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENscyxub3RpZmljYXRpb25NYXJnaW5FZGdlLGFuaW1hdGlvbk1heEhlaWdodH09dG9rZW4sbm90aWNlQ2xzPWAke2NvbXBvbmVudENsc30tbm90aWNlYCxyaWdodEZhZGVJbj1uZXcgY3NzaW5qc19lcy5FNCgiYW50Tm90aWZpY2F0aW9uRmFkZUluIix7IjAlIjp7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSIsb3BhY2l0eTowfSwiMTAwJSI6e3RyYW5zZm9ybToidHJhbnNsYXRlM2QoMCwgMCwgMCkiLG9wYWNpdHk6MX19KSx0b3BGYWRlSW49bmV3IGNzc2luanNfZXMuRTQoImFudE5vdGlmaWNhdGlvblRvcEZhZGVJbiIseyIwJSI6e3RvcDotYW5pbWF0aW9uTWF4SGVpZ2h0LG9wYWNpdHk6MH0sIjEwMCUiOnt0b3A6MCxvcGFjaXR5OjF9fSksYm90dG9tRmFkZUluPW5ldyBjc3NpbmpzX2VzLkU0KCJhbnROb3RpZmljYXRpb25Cb3R0b21GYWRlSW4iLHsiMCUiOntib3R0b206dG9rZW4uY2FsYyhhbmltYXRpb25NYXhIZWlnaHQpLm11bCgtMSkuZXF1YWwoKSxvcGFjaXR5OjB9LCIxMDAlIjp7Ym90dG9tOjAsb3BhY2l0eToxfX0pLGxlZnRGYWRlSW49bmV3IGNzc2luanNfZXMuRTQoImFudE5vdGlmaWNhdGlvbkxlZnRGYWRlSW4iLHsiMCUiOnt0cmFuc2Zvcm06InRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSIsb3BhY2l0eTowfSwiMTAwJSI6e3RyYW5zZm9ybToidHJhbnNsYXRlM2QoMCwgMCwgMCkiLG9wYWNpdHk6MX19KTtyZXR1cm57W2NvbXBvbmVudENsc106e1tgJiR7Y29tcG9uZW50Q2xzfS10b3AsICYke2NvbXBvbmVudENsc30tYm90dG9tYF06e21hcmdpbklubGluZTowLFtub3RpY2VDbHNdOnttYXJnaW5JbmxpbmU6ImF1dG8gYXV0byJ9fSxbYCYke2NvbXBvbmVudENsc30tdG9wYF06e1tgJHtjb21wb25lbnRDbHN9LWZhZGUtZW50ZXIke2NvbXBvbmVudENsc30tZmFkZS1lbnRlci1hY3RpdmUsICR7Y29tcG9uZW50Q2xzfS1mYWRlLWFwcGVhciR7Y29tcG9uZW50Q2xzfS1mYWRlLWFwcGVhci1hY3RpdmVgXTp7YW5pbWF0aW9uTmFtZTp0b3BGYWRlSW59fSxbYCYke2NvbXBvbmVudENsc30tYm90dG9tYF06e1tgJHtjb21wb25lbnRDbHN9LWZhZGUtZW50ZXIke2NvbXBvbmVudENsc30tZmFkZS1lbnRlci1hY3RpdmUsICR7Y29tcG9uZW50Q2xzfS1mYWRlLWFwcGVhciR7Y29tcG9uZW50Q2xzfS1mYWRlLWFwcGVhci1hY3RpdmVgXTp7YW5pbWF0aW9uTmFtZTpib3R0b21GYWRlSW59fSxbYCYke2NvbXBvbmVudENsc30tdG9wUmlnaHQsICYke2NvbXBvbmVudENsc30tYm90dG9tUmlnaHRgXTp7W2Ake2NvbXBvbmVudENsc30tZmFkZS1lbnRlciR7Y29tcG9uZW50Q2xzfS1mYWRlLWVudGVyLWFjdGl2ZSwgJHtjb21wb25lbnRDbHN9LWZhZGUtYXBwZWFyJHtjb21wb25lbnRDbHN9LWZhZGUtYXBwZWFyLWFjdGl2ZWBdOnthbmltYXRpb25OYW1lOnJpZ2h0RmFkZUlufX0sW2AmJHtjb21wb25lbnRDbHN9LXRvcExlZnQsICYke2NvbXBvbmVudENsc30tYm90dG9tTGVmdGBdOnttYXJnaW5SaWdodDp7dmFsdWU6MCxfc2tpcF9jaGVja186ITB9LG1hcmdpbkxlZnQ6e3ZhbHVlOm5vdGlmaWNhdGlvbk1hcmdpbkVkZ2UsX3NraXBfY2hlY2tfOiEwfSxbbm90aWNlQ2xzXTp7bWFyZ2luSW5saW5lRW5kOiJhdXRvIixtYXJnaW5JbmxpbmVTdGFydDowfSxbYCR7Y29tcG9uZW50Q2xzfS1mYWRlLWVudGVyJHtjb21wb25lbnRDbHN9LWZhZGUtZW50ZXItYWN0aXZlLCAke2NvbXBvbmVudENsc30tZmFkZS1hcHBlYXIke2NvbXBvbmVudENsc30tZmFkZS1hcHBlYXItYWN0aXZlYF06e2FuaW1hdGlvbk5hbWU6bGVmdEZhZGVJbn19fX19LE5vdGlmaWNhdGlvblBsYWNlbWVudHM9WyJ0b3AiLCJ0b3BMZWZ0IiwidG9wUmlnaHQiLCJib3R0b20iLCJib3R0b21MZWZ0IiwiYm90dG9tUmlnaHQiXSxwbGFjZW1lbnRBbGlnblByb3BlcnR5PXt0b3BMZWZ0OiJsZWZ0Iix0b3BSaWdodDoicmlnaHQiLGJvdHRvbUxlZnQ6ImxlZnQiLGJvdHRvbVJpZ2h0OiJyaWdodCIsdG9wOiJsZWZ0Iixib3R0b206ImxlZnQifSxnZW5QbGFjZW1lbnRTdGFja1N0eWxlPSh0b2tlbixwbGFjZW1lbnQpPT57bGV0e2NvbXBvbmVudENsc309dG9rZW47cmV0dXJue1tgJHtjb21wb25lbnRDbHN9LSR7cGxhY2VtZW50fWBdOntbYCYke2NvbXBvbmVudENsc30tc3RhY2sgPiAke2NvbXBvbmVudENsc30tbm90aWNlLXdyYXBwZXJgXTp7W3BsYWNlbWVudC5zdGFydHNXaXRoKCJ0b3AiKT8idG9wIjoiYm90dG9tIl06MCxbcGxhY2VtZW50QWxpZ25Qcm9wZXJ0eVtwbGFjZW1lbnRdXTp7dmFsdWU6MCxfc2tpcF9jaGVja186ITB9fX19fSxnZW5TdGFja0NoaWxkcmVuU3R5bGU9dG9rZW49PntsZXQgY2hpbGRyZW5TdHlsZT17fTtmb3IobGV0IGk9MTtpPHRva2VuLm5vdGlmaWNhdGlvblN0YWNrTGF5ZXI7aSsrKWNoaWxkcmVuU3R5bGVbYCY6bnRoLWxhc3QtY2hpbGQoJHtpKzF9KWBdPXtvdmVyZmxvdzoiaGlkZGVuIixbYCYgPiAke3Rva2VuLmNvbXBvbmVudENsc30tbm90aWNlYF06e29wYWNpdHk6MCx0cmFuc2l0aW9uOmBvcGFjaXR5ICR7dG9rZW4ubW90aW9uRHVyYXRpb25NaWR9YH19O3JldHVybiBPYmplY3QuYXNzaWduKHtbYCY6bm90KDpudGgtbGFzdC1jaGlsZCgtbiske3Rva2VuLm5vdGlmaWNhdGlvblN0YWNrTGF5ZXJ9KSlgXTp7b3BhY2l0eTowLG92ZXJmbG93OiJoaWRkZW4iLGNvbG9yOiJ0cmFuc3BhcmVudCIscG9pbnRlckV2ZW50czoibm9uZSJ9fSxjaGlsZHJlblN0eWxlKX0sZ2VuU3RhY2tlZE5vdGljZVN0eWxlPXRva2VuPT57bGV0IGNoaWxkcmVuU3R5bGU9e307Zm9yKGxldCBpPTE7aTx0b2tlbi5ub3RpZmljYXRpb25TdGFja0xheWVyO2krKyljaGlsZHJlblN0eWxlW2AmOm50aC1sYXN0LWNoaWxkKCR7aSsxfSlgXT17YmFja2dyb3VuZDp0b2tlbi5jb2xvckJnQmx1cixiYWNrZHJvcEZpbHRlcjoiYmx1cigxMHB4KSIsIi13ZWJraXQtYmFja2Ryb3AtZmlsdGVyIjoiYmx1cigxMHB4KSJ9O3JldHVybiBPYmplY3QuYXNzaWduKHt9LGNoaWxkcmVuU3R5bGUpfSxnZW5TdGFja1N0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENsc309dG9rZW47cmV0dXJuIE9iamVjdC5hc3NpZ24oe1tgJHtjb21wb25lbnRDbHN9LXN0YWNrYF06e1tgJiA+ICR7Y29tcG9uZW50Q2xzfS1ub3RpY2Utd3JhcHBlcmBdOk9iamVjdC5hc3NpZ24oe3RyYW5zaXRpb246YHRyYW5zZm9ybSAke3Rva2VuLm1vdGlvbkR1cmF0aW9uU2xvd30sIGJhY2tkcm9wLWZpbHRlciAwc2Asd2lsbENoYW5nZToidHJhbnNmb3JtLCBvcGFjaXR5Iixwb3NpdGlvbjoiYWJzb2x1dGUifSxnZW5TdGFja0NoaWxkcmVuU3R5bGUodG9rZW4pKX0sW2Ake2NvbXBvbmVudENsc30tc3RhY2s6bm90KCR7Y29tcG9uZW50Q2xzfS1zdGFjay1leHBhbmRlZClgXTp7W2AmID4gJHtjb21wb25lbnRDbHN9LW5vdGljZS13cmFwcGVyYF06T2JqZWN0LmFzc2lnbih7fSxnZW5TdGFja2VkTm90aWNlU3R5bGUodG9rZW4pKX0sW2Ake2NvbXBvbmVudENsc30tc3RhY2ske2NvbXBvbmVudENsc30tc3RhY2stZXhwYW5kZWRgXTp7W2AmID4gJHtjb21wb25lbnRDbHN9LW5vdGljZS13cmFwcGVyYF06eyImOm5vdCg6bnRoLWxhc3QtY2hpbGQoLW4gKyAxKSkiOntvcGFjaXR5OjEsb3ZlcmZsb3c6InVuc2V0Iixjb2xvcjoiaW5oZXJpdCIscG9pbnRlckV2ZW50czoiYXV0byIsW2AmID4gJHt0b2tlbi5jb21wb25lbnRDbHN9LW5vdGljZWBdOntvcGFjaXR5OjF9fSwiJjphZnRlciI6e2NvbnRlbnQ6JyIiJyxwb3NpdGlvbjoiYWJzb2x1dGUiLGhlaWdodDp0b2tlbi5tYXJnaW4sd2lkdGg6IjEwMCUiLGluc2V0SW5saW5lOjAsYm90dG9tOnRva2VuLmNhbGModG9rZW4ubWFyZ2luKS5tdWwoLTEpLmVxdWFsKCksYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLHBvaW50ZXJFdmVudHM6ImF1dG8ifX19fSxOb3RpZmljYXRpb25QbGFjZW1lbnRzLm1hcChwbGFjZW1lbnQ9PmdlblBsYWNlbWVudFN0YWNrU3R5bGUodG9rZW4scGxhY2VtZW50KSkucmVkdWNlKChhY2MsY3VyKT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGFjYyksY3VyKSx7fSkpfSxnZW5Ob3RpY2VTdHlsZT10b2tlbj0+e2xldHtpY29uQ2xzLGNvbXBvbmVudENscyxib3hTaGFkb3csZm9udFNpemVMRyxub3RpZmljYXRpb25NYXJnaW5Cb3R0b20sYm9yZGVyUmFkaXVzTEcsY29sb3JTdWNjZXNzLGNvbG9ySW5mbyxjb2xvcldhcm5pbmcsY29sb3JFcnJvcixjb2xvclRleHRIZWFkaW5nLG5vdGlmaWNhdGlvbkJnLG5vdGlmaWNhdGlvblBhZGRpbmcsbm90aWZpY2F0aW9uTWFyZ2luRWRnZSxub3RpZmljYXRpb25Qcm9ncmVzc0JnLG5vdGlmaWNhdGlvblByb2dyZXNzSGVpZ2h0LGZvbnRTaXplLGxpbmVIZWlnaHQsd2lkdGgsbm90aWZpY2F0aW9uSWNvblNpemUsY29sb3JUZXh0fT10b2tlbixub3RpY2VDbHM9YCR7Y29tcG9uZW50Q2xzfS1ub3RpY2VgO3JldHVybntwb3NpdGlvbjoicmVsYXRpdmUiLG1hcmdpbkJvdHRvbTpub3RpZmljYXRpb25NYXJnaW5Cb3R0b20sbWFyZ2luSW5saW5lU3RhcnQ6ImF1dG8iLGJhY2tncm91bmQ6bm90aWZpY2F0aW9uQmcsYm9yZGVyUmFkaXVzOmJvcmRlclJhZGl1c0xHLGJveFNoYWRvdyxbbm90aWNlQ2xzXTp7cGFkZGluZzpub3RpZmljYXRpb25QYWRkaW5nLHdpZHRoLG1heFdpZHRoOmBjYWxjKDEwMHZ3IC0gJHsoMCxjc3NpbmpzX2VzLmJmKSh0b2tlbi5jYWxjKG5vdGlmaWNhdGlvbk1hcmdpbkVkZ2UpLm11bCgyKS5lcXVhbCgpKX0pYCxvdmVyZmxvdzoiaGlkZGVuIixsaW5lSGVpZ2h0LHdvcmRXcmFwOiJicmVhay13b3JkIn0sW2Ake25vdGljZUNsc30tbWVzc2FnZWBdOnttYXJnaW5Cb3R0b206dG9rZW4ubWFyZ2luWFMsY29sb3I6Y29sb3JUZXh0SGVhZGluZyxmb250U2l6ZTpmb250U2l6ZUxHLGxpbmVIZWlnaHQ6dG9rZW4ubGluZUhlaWdodExHfSxbYCR7bm90aWNlQ2xzfS1kZXNjcmlwdGlvbmBdOntmb250U2l6ZSxjb2xvcjpjb2xvclRleHR9LFtgJHtub3RpY2VDbHN9LWNsb3NhYmxlICR7bm90aWNlQ2xzfS1tZXNzYWdlYF06e3BhZGRpbmdJbmxpbmVFbmQ6dG9rZW4ucGFkZGluZ0xHfSxbYCR7bm90aWNlQ2xzfS13aXRoLWljb24gJHtub3RpY2VDbHN9LW1lc3NhZ2VgXTp7bWFyZ2luQm90dG9tOnRva2VuLm1hcmdpblhTLG1hcmdpbklubGluZVN0YXJ0OnRva2VuLmNhbGModG9rZW4ubWFyZ2luU00pLmFkZChub3RpZmljYXRpb25JY29uU2l6ZSkuZXF1YWwoKSxmb250U2l6ZTpmb250U2l6ZUxHfSxbYCR7bm90aWNlQ2xzfS13aXRoLWljb24gJHtub3RpY2VDbHN9LWRlc2NyaXB0aW9uYF06e21hcmdpbklubGluZVN0YXJ0OnRva2VuLmNhbGModG9rZW4ubWFyZ2luU00pLmFkZChub3RpZmljYXRpb25JY29uU2l6ZSkuZXF1YWwoKSxmb250U2l6ZX0sW2Ake25vdGljZUNsc30taWNvbmBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLGZvbnRTaXplOm5vdGlmaWNhdGlvbkljb25TaXplLGxpbmVIZWlnaHQ6MSxbYCYtc3VjY2VzcyR7aWNvbkNsc31gXTp7Y29sb3I6Y29sb3JTdWNjZXNzfSxbYCYtaW5mbyR7aWNvbkNsc31gXTp7Y29sb3I6Y29sb3JJbmZvfSxbYCYtd2FybmluZyR7aWNvbkNsc31gXTp7Y29sb3I6Y29sb3JXYXJuaW5nfSxbYCYtZXJyb3Ike2ljb25DbHN9YF06e2NvbG9yOmNvbG9yRXJyb3J9fSxbYCR7bm90aWNlQ2xzfS1jbG9zZWBdOk9iamVjdC5hc3NpZ24oe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOnRva2VuLm5vdGlmaWNhdGlvblBhZGRpbmdWZXJ0aWNhbCxpbnNldElubGluZUVuZDp0b2tlbi5ub3RpZmljYXRpb25QYWRkaW5nSG9yaXpvbnRhbCxjb2xvcjp0b2tlbi5jb2xvckljb24sb3V0bGluZToibm9uZSIsd2lkdGg6dG9rZW4ubm90aWZpY2F0aW9uQ2xvc2VCdXR0b25TaXplLGhlaWdodDp0b2tlbi5ub3RpZmljYXRpb25DbG9zZUJ1dHRvblNpemUsYm9yZGVyUmFkaXVzOnRva2VuLmJvcmRlclJhZGl1c1NNLHRyYW5zaXRpb246YGJhY2tncm91bmQtY29sb3IgJHt0b2tlbi5tb3Rpb25EdXJhdGlvbk1pZH0sIGNvbG9yICR7dG9rZW4ubW90aW9uRHVyYXRpb25NaWR9YCxkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLGJhY2tncm91bmQ6Im5vbmUiLGJvcmRlcjoibm9uZSIsIiY6aG92ZXIiOntjb2xvcjp0b2tlbi5jb2xvckljb25Ib3ZlcixiYWNrZ3JvdW5kQ29sb3I6dG9rZW4uY29sb3JCZ1RleHRIb3Zlcn0sIiY6YWN0aXZlIjp7YmFja2dyb3VuZENvbG9yOnRva2VuLmNvbG9yQmdUZXh0QWN0aXZlfX0sKDAsc3R5bGUuUXkpKHRva2VuKSksW2Ake25vdGljZUNsc30tcHJvZ3Jlc3NgXTp7cG9zaXRpb246ImFic29sdXRlIixkaXNwbGF5OiJibG9jayIsYXBwZWFyYW5jZToibm9uZSIsaW5saW5lU2l6ZTpgY2FsYygxMDAlIC0gJHsoMCxjc3NpbmpzX2VzLmJmKShib3JkZXJSYWRpdXNMRyl9ICogMilgLGxlZnQ6e19za2lwX2NoZWNrXzohMCx2YWx1ZTpib3JkZXJSYWRpdXNMR30scmlnaHQ6e19za2lwX2NoZWNrXzohMCx2YWx1ZTpib3JkZXJSYWRpdXNMR30sYm90dG9tOjAsYmxvY2tTaXplOm5vdGlmaWNhdGlvblByb2dyZXNzSGVpZ2h0LGJvcmRlcjowLCImLCAmOjotd2Via2l0LXByb2dyZXNzLWJhciI6e2JvcmRlclJhZGl1czpib3JkZXJSYWRpdXNMRyxiYWNrZ3JvdW5kQ29sb3I6InJnYmEoMCwgMCwgMCwgMC4wNCkifSwiJjo6LW1vei1wcm9ncmVzcy1iYXIiOntiYWNrZ3JvdW5kOm5vdGlmaWNhdGlvblByb2dyZXNzQmd9LCImOjotd2Via2l0LXByb2dyZXNzLXZhbHVlIjp7Ym9yZGVyUmFkaXVzOmJvcmRlclJhZGl1c0xHLGJhY2tncm91bmQ6bm90aWZpY2F0aW9uUHJvZ3Jlc3NCZ319LFtgJHtub3RpY2VDbHN9LWFjdGlvbnNgXTp7ZmxvYXQ6InJpZ2h0IixtYXJnaW5Ub3A6dG9rZW4ubWFyZ2luU019fX0sZ2VuTm90aWZpY2F0aW9uU3R5bGU9dG9rZW49PntsZXR7Y29tcG9uZW50Q2xzLG5vdGlmaWNhdGlvbk1hcmdpbkJvdHRvbSxub3RpZmljYXRpb25NYXJnaW5FZGdlLG1vdGlvbkR1cmF0aW9uTWlkLG1vdGlvbkVhc2VJbk91dH09dG9rZW4sbm90aWNlQ2xzPWAke2NvbXBvbmVudENsc30tbm90aWNlYCxmYWRlT3V0PW5ldyBjc3NpbmpzX2VzLkU0KCJhbnROb3RpZmljYXRpb25GYWRlT3V0Iix7IjAlIjp7bWF4SGVpZ2h0OnRva2VuLmFuaW1hdGlvbk1heEhlaWdodCxtYXJnaW5Cb3R0b206bm90aWZpY2F0aW9uTWFyZ2luQm90dG9tfSwiMTAwJSI6e21heEhlaWdodDowLG1hcmdpbkJvdHRvbTowLHBhZGRpbmdUb3A6MCxwYWRkaW5nQm90dG9tOjAsb3BhY2l0eTowfX0pO3JldHVyblt7W2NvbXBvbmVudENsc106T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLHN0eWxlLldmKSh0b2tlbikpLHtwb3NpdGlvbjoiZml4ZWQiLHpJbmRleDp0b2tlbi56SW5kZXhQb3B1cCxtYXJnaW5SaWdodDp7dmFsdWU6bm90aWZpY2F0aW9uTWFyZ2luRWRnZSxfc2tpcF9jaGVja186ITB9LFtgJHtjb21wb25lbnRDbHN9LWhvb2staG9sZGVyYF06e3Bvc2l0aW9uOiJyZWxhdGl2ZSJ9LFtgJHtjb21wb25lbnRDbHN9LWZhZGUtYXBwZWFyLXByZXBhcmVgXTp7b3BhY2l0eToiMCAhaW1wb3J0YW50In0sW2Ake2NvbXBvbmVudENsc30tZmFkZS1lbnRlciwgJHtjb21wb25lbnRDbHN9LWZhZGUtYXBwZWFyYF06e2FuaW1hdGlvbkR1cmF0aW9uOnRva2VuLm1vdGlvbkR1cmF0aW9uTWlkLGFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOm1vdGlvbkVhc2VJbk91dCxhbmltYXRpb25GaWxsTW9kZToiYm90aCIsb3BhY2l0eTowLGFuaW1hdGlvblBsYXlTdGF0ZToicGF1c2VkIn0sW2Ake2NvbXBvbmVudENsc30tZmFkZS1sZWF2ZWBdOnthbmltYXRpb25UaW1pbmdGdW5jdGlvbjptb3Rpb25FYXNlSW5PdXQsYW5pbWF0aW9uRmlsbE1vZGU6ImJvdGgiLGFuaW1hdGlvbkR1cmF0aW9uOm1vdGlvbkR1cmF0aW9uTWlkLGFuaW1hdGlvblBsYXlTdGF0ZToicGF1c2VkIn0sW2Ake2NvbXBvbmVudENsc30tZmFkZS1lbnRlciR7Y29tcG9uZW50Q2xzfS1mYWRlLWVudGVyLWFjdGl2ZSwgJHtjb21wb25lbnRDbHN9LWZhZGUtYXBwZWFyJHtjb21wb25lbnRDbHN9LWZhZGUtYXBwZWFyLWFjdGl2ZWBdOnthbmltYXRpb25QbGF5U3RhdGU6InJ1bm5pbmcifSxbYCR7Y29tcG9uZW50Q2xzfS1mYWRlLWxlYXZlJHtjb21wb25lbnRDbHN9LWZhZGUtbGVhdmUtYWN0aXZlYF06e2FuaW1hdGlvbk5hbWU6ZmFkZU91dCxhbmltYXRpb25QbGF5U3RhdGU6InJ1bm5pbmcifSwiJi1ydGwiOntkaXJlY3Rpb246InJ0bCIsW2Ake25vdGljZUNsc30tYWN0aW9uc2BdOntmbG9hdDoibGVmdCJ9fX0pfSx7W2NvbXBvbmVudENsc106e1tgJHtub3RpY2VDbHN9LXdyYXBwZXJgXTpPYmplY3QuYXNzaWduKHt9LGdlbk5vdGljZVN0eWxlKHRva2VuKSl9fV19LHByZXBhcmVDb21wb25lbnRUb2tlbj10b2tlbj0+KHt6SW5kZXhQb3B1cDp0b2tlbi56SW5kZXhQb3B1cEJhc2UrdXNlWkluZGV4LnU2KzUwLHdpZHRoOjM4NH0pLHByZXBhcmVOb3RpZmljYXRpb25Ub2tlbj10b2tlbj0+e2xldCBub3RpZmljYXRpb25QYWRkaW5nVmVydGljYWw9dG9rZW4ucGFkZGluZ01ELG5vdGlmaWNhdGlvblBhZGRpbmdIb3Jpem9udGFsPXRva2VuLnBhZGRpbmdMRyxub3RpZmljYXRpb25Ub2tlbj0oMCxjc3NpbmpzX3V0aWxzX2VzLklYKSh0b2tlbix7bm90aWZpY2F0aW9uQmc6dG9rZW4uY29sb3JCZ0VsZXZhdGVkLG5vdGlmaWNhdGlvblBhZGRpbmdWZXJ0aWNhbCxub3RpZmljYXRpb25QYWRkaW5nSG9yaXpvbnRhbCxub3RpZmljYXRpb25JY29uU2l6ZTp0b2tlbi5jYWxjKHRva2VuLmZvbnRTaXplTEcpLm11bCh0b2tlbi5saW5lSGVpZ2h0TEcpLmVxdWFsKCksbm90aWZpY2F0aW9uQ2xvc2VCdXR0b25TaXplOnRva2VuLmNhbGModG9rZW4uY29udHJvbEhlaWdodExHKS5tdWwoLjU1KS5lcXVhbCgpLG5vdGlmaWNhdGlvbk1hcmdpbkJvdHRvbTp0b2tlbi5tYXJnaW4sbm90aWZpY2F0aW9uUGFkZGluZzpgJHsoMCxjc3NpbmpzX2VzLmJmKSh0b2tlbi5wYWRkaW5nTUQpfSAkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLnBhZGRpbmdDb250ZW50SG9yaXpvbnRhbExHKX1gLG5vdGlmaWNhdGlvbk1hcmdpbkVkZ2U6dG9rZW4ubWFyZ2luTEcsYW5pbWF0aW9uTWF4SGVpZ2h0OjE1MCxub3RpZmljYXRpb25TdGFja0xheWVyOjMsbm90aWZpY2F0aW9uUHJvZ3Jlc3NIZWlnaHQ6Mixub3RpZmljYXRpb25Qcm9ncmVzc0JnOmBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICR7dG9rZW4uY29sb3JQcmltYXJ5Qm9yZGVySG92ZXJ9LCAke3Rva2VuLmNvbG9yUHJpbWFyeX0pYH0pO3JldHVybiBub3RpZmljYXRpb25Ub2tlbn07dmFyIG5vdGlmaWNhdGlvbl9zdHlsZT0oMCxnZW5TdHlsZVV0aWxzLkkkKSgiTm90aWZpY2F0aW9uIix0b2tlbj0+e2xldCBub3RpZmljYXRpb25Ub2tlbj1wcmVwYXJlTm90aWZpY2F0aW9uVG9rZW4odG9rZW4pO3JldHVybltnZW5Ob3RpZmljYXRpb25TdHlsZShub3RpZmljYXRpb25Ub2tlbiksZ2VuTm90aWZpY2F0aW9uUGxhY2VtZW50U3R5bGUobm90aWZpY2F0aW9uVG9rZW4pLGdlblN0YWNrU3R5bGUobm90aWZpY2F0aW9uVG9rZW4pXX0scHJlcGFyZUNvbXBvbmVudFRva2VuKSxwdXJlX3BhbmVsPSgwLGdlblN0eWxlVXRpbHMuYmspKFsiTm90aWZpY2F0aW9uIiwiUHVyZVBhbmVsIl0sdG9rZW49PntsZXQgbm90aWNlQ2xzPWAke3Rva2VuLmNvbXBvbmVudENsc30tbm90aWNlYCxub3RpZmljYXRpb25Ub2tlbj1wcmVwYXJlTm90aWZpY2F0aW9uVG9rZW4odG9rZW4pO3JldHVybntbYCR7bm90aWNlQ2xzfS1wdXJlLXBhbmVsYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGdlbk5vdGljZVN0eWxlKG5vdGlmaWNhdGlvblRva2VuKSkse3dpZHRoOm5vdGlmaWNhdGlvblRva2VuLndpZHRoLG1heFdpZHRoOmBjYWxjKDEwMHZ3IC0gJHsoMCxjc3NpbmpzX2VzLmJmKSh0b2tlbi5jYWxjKG5vdGlmaWNhdGlvblRva2VuLm5vdGlmaWNhdGlvbk1hcmdpbkVkZ2UpLm11bCgyKS5lcXVhbCgpKX0pYCxtYXJnaW46MH0pfX0scHJlcGFyZUNvbXBvbmVudFRva2VuKSxfX3Jlc3Q9ZnVuY3Rpb24ocyxlKXt2YXIgdD17fTtmb3IodmFyIHAgaW4gcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxwKSYmMD5lLmluZGV4T2YocCkmJih0W3BdPXNbcF0pO2lmKG51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKWZvcih2YXIgaT0wLHA9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtpPHAubGVuZ3RoO2krKykwPmUuaW5kZXhPZihwW2ldKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMscFtpXSkmJih0W3BbaV1dPXNbcFtpXV0pO3JldHVybiB0fTtmdW5jdGlvbiBnZXRDbG9zZUljb24ocHJlZml4Q2xzLGNsb3NlSWNvbil7cmV0dXJuIG51bGw9PT1jbG9zZUljb258fCExPT09Y2xvc2VJY29uP251bGw6Y2xvc2VJY29ufHxyZWFjdC5jcmVhdGVFbGVtZW50KENsb3NlT3V0bGluZWQuWix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30tY2xvc2UtaWNvbmB9KX1JbmZvQ2lyY2xlRmlsbGVkLlosQ2hlY2tDaXJjbGVGaWxsZWQuWixDbG9zZUNpcmNsZUZpbGxlZC5aLEV4Y2xhbWF0aW9uQ2lyY2xlRmlsbGVkLlosTG9hZGluZ091dGxpbmVkLlo7bGV0IHR5cGVUb0ljb249e3N1Y2Nlc3M6Q2hlY2tDaXJjbGVGaWxsZWQuWixpbmZvOkluZm9DaXJjbGVGaWxsZWQuWixlcnJvcjpDbG9zZUNpcmNsZUZpbGxlZC5aLHdhcm5pbmc6RXhjbGFtYXRpb25DaXJjbGVGaWxsZWQuWn0sUHVyZUNvbnRlbnQ9cHJvcHM9PntsZXR7cHJlZml4Q2xzLGljb24sdHlwZSxtZXNzYWdlLGRlc2NyaXB0aW9uLGFjdGlvbnMscm9sZT0iYWxlcnQifT1wcm9wcyxpY29uTm9kZT1udWxsO3JldHVybiBpY29uP2ljb25Ob2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS1pY29uYH0saWNvbik6dHlwZSYmKGljb25Ob2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQodHlwZVRvSWNvblt0eXBlXXx8bnVsbCx7Y2xhc3NOYW1lOmNsYXNzbmFtZXNfZGVmYXVsdCgpKGAke3ByZWZpeENsc30taWNvbmAsYCR7cHJlZml4Q2xzfS1pY29uLSR7dHlwZX1gKX0pKSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Y2xhc3NuYW1lc19kZWZhdWx0KCkoe1tgJHtwcmVmaXhDbHN9LXdpdGgtaWNvbmBdOmljb25Ob2RlfSkscm9sZTpyb2xlfSxpY29uTm9kZSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS1tZXNzYWdlYH0sbWVzc2FnZSkscmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30tZGVzY3JpcHRpb25gfSxkZXNjcmlwdGlvbiksYWN0aW9ucyYmcmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30tYWN0aW9uc2B9LGFjdGlvbnMpKX0sUHVyZVBhbmVsPXByb3BzPT57bGV0e3ByZWZpeENsczpzdGF0aWNQcmVmaXhDbHMsY2xhc3NOYW1lLGljb24sdHlwZSxtZXNzYWdlLGRlc2NyaXB0aW9uLGJ0bixhY3Rpb25zLGNsb3NhYmxlPSEwLGNsb3NlSWNvbixjbGFzc05hbWU6bm90aWZpY2F0aW9uQ2xhc3NOYW1lfT1wcm9wcyxyZXN0UHJvcHM9X19yZXN0KHByb3BzLFsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwiaWNvbiIsInR5cGUiLCJtZXNzYWdlIiwiZGVzY3JpcHRpb24iLCJidG4iLCJhY3Rpb25zIiwiY2xvc2FibGUiLCJjbG9zZUljb24iLCJjbGFzc05hbWUiXSkse2dldFByZWZpeENsc309cmVhY3QudXNlQ29udGV4dChjb25maWdfcHJvdmlkZXJfY29udGV4dC5FXykscHJlZml4Q2xzPXN0YXRpY1ByZWZpeENsc3x8Z2V0UHJlZml4Q2xzKCJub3RpZmljYXRpb24iKSxub3RpY2VQcmVmaXhDbHM9YCR7cHJlZml4Q2xzfS1ub3RpY2VgLHJvb3RDbHM9KDAsdXNlQ1NTVmFyQ2xzLlopKHByZWZpeENscyksW3dyYXBDU1NWYXIsaGFzaElkLGNzc1ZhckNsc109bm90aWZpY2F0aW9uX3N0eWxlKHByZWZpeENscyxyb290Q2xzKTtyZXR1cm4gd3JhcENTU1ZhcihyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Y2xhc3NuYW1lc19kZWZhdWx0KCkoYCR7bm90aWNlUHJlZml4Q2xzfS1wdXJlLXBhbmVsYCxoYXNoSWQsY2xhc3NOYW1lLGNzc1ZhckNscyxyb290Q2xzKX0scmVhY3QuY3JlYXRlRWxlbWVudChwdXJlX3BhbmVsLHtwcmVmaXhDbHM6cHJlZml4Q2xzfSkscmVhY3QuY3JlYXRlRWxlbWVudChlcy5xWCxPYmplY3QuYXNzaWduKHt9LHJlc3RQcm9wcyx7cHJlZml4Q2xzOnByZWZpeENscyxldmVudEtleToicHVyZSIsZHVyYXRpb246bnVsbCxjbG9zYWJsZTpjbG9zYWJsZSxjbGFzc05hbWU6Y2xhc3NuYW1lc19kZWZhdWx0KCkoe25vdGlmaWNhdGlvbkNsYXNzTmFtZX0pLGNsb3NlSWNvbjpnZXRDbG9zZUljb24ocHJlZml4Q2xzLGNsb3NlSWNvbiksY29udGVudDpyZWFjdC5jcmVhdGVFbGVtZW50KFB1cmVDb250ZW50LHtwcmVmaXhDbHM6bm90aWNlUHJlZml4Q2xzLGljb246aWNvbix0eXBlOnR5cGUsbWVzc2FnZTptZXNzYWdlLGRlc2NyaXB0aW9uOmRlc2NyaXB0aW9uLGFjdGlvbnM6bnVsbCE9YWN0aW9ucz9hY3Rpb25zOmJ0bn0pfSkpKSl9O3ZhciBfdXRpbF93YXJuaW5nPV9fd2VicGFja19yZXF1aXJlX18oMjcyODgpLHVzZVRva2VuPV9fd2VicGFja19yZXF1aXJlX18oMjU5NzYpLHVzZU5vdGlmaWNhdGlvbl9yZXN0PWZ1bmN0aW9uKHMsZSl7dmFyIHQ9e307Zm9yKHZhciBwIGluIHMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMscCkmJjA+ZS5pbmRleE9mKHApJiYodFtwXT1zW3BdKTtpZihudWxsIT1zJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scylmb3IodmFyIGk9MCxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7aTxwLmxlbmd0aDtpKyspMD5lLmluZGV4T2YocFtpXSkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLHBbaV0pJiYodFtwW2ldXT1zW3BbaV1dKTtyZXR1cm4gdH07bGV0IFdyYXBwZXI9X3JlZj0+e2xldHtjaGlsZHJlbixwcmVmaXhDbHN9PV9yZWYscm9vdENscz0oMCx1c2VDU1NWYXJDbHMuWikocHJlZml4Q2xzKSxbd3JhcENTU1ZhcixoYXNoSWQsY3NzVmFyQ2xzXT1ub3RpZmljYXRpb25fc3R5bGUocHJlZml4Q2xzLHJvb3RDbHMpO3JldHVybiB3cmFwQ1NTVmFyKHJlYWN0LmNyZWF0ZUVsZW1lbnQoZXMuSkIse2NsYXNzTmFtZXM6e2xpc3Q6Y2xhc3NuYW1lc19kZWZhdWx0KCkoaGFzaElkLGNzc1ZhckNscyxyb290Q2xzKX19LGNoaWxkcmVuKSl9LHJlbmRlck5vdGlmaWNhdGlvbnM9KG5vZGUsX3JlZjIpPT57bGV0e3ByZWZpeENscyxrZXl9PV9yZWYyO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KFdyYXBwZXIse3ByZWZpeENsczpwcmVmaXhDbHMsa2V5OmtleX0sbm9kZSl9LEhvbGRlcj1yZWFjdC5mb3J3YXJkUmVmKChwcm9wcyxyZWYpPT57bGV0e3RvcCxib3R0b20scHJlZml4Q2xzOnN0YXRpY1ByZWZpeENscyxnZXRDb250YWluZXI6c3RhdGljR2V0Q29udGFpbmVyLG1heENvdW50LHJ0bCxvbkFsbFJlbW92ZWQsc3RhY2ssZHVyYXRpb24scGF1c2VPbkhvdmVyPSEwLHNob3dQcm9ncmVzc309cHJvcHMse2dldFByZWZpeENscyxnZXRQb3B1cENvbnRhaW5lcixub3RpZmljYXRpb24sZGlyZWN0aW9ufT0oMCxyZWFjdC51c2VDb250ZXh0KShjb25maWdfcHJvdmlkZXJfY29udGV4dC5FXyksWyx0b2tlbl09KDAsdXNlVG9rZW4uWlApKCkscHJlZml4Q2xzPXN0YXRpY1ByZWZpeENsc3x8Z2V0UHJlZml4Q2xzKCJub3RpZmljYXRpb24iKSxnZXRTdHlsZT1wbGFjZW1lbnQ9PihmdW5jdGlvbihwbGFjZW1lbnQsdG9wLGJvdHRvbSl7bGV0IHN0eWxlO3N3aXRjaChwbGFjZW1lbnQpe2Nhc2UidG9wIjpzdHlsZT17bGVmdDoiNTAlIix0cmFuc2Zvcm06InRyYW5zbGF0ZVgoLTUwJSkiLHJpZ2h0OiJhdXRvIix0b3AsYm90dG9tOiJhdXRvIn07YnJlYWs7Y2FzZSJ0b3BMZWZ0IjpzdHlsZT17bGVmdDowLHRvcCxib3R0b206ImF1dG8ifTticmVhaztjYXNlInRvcFJpZ2h0IjpzdHlsZT17cmlnaHQ6MCx0b3AsYm90dG9tOiJhdXRvIn07YnJlYWs7Y2FzZSJib3R0b20iOnN0eWxlPXtsZWZ0OiI1MCUiLHRyYW5zZm9ybToidHJhbnNsYXRlWCgtNTAlKSIscmlnaHQ6ImF1dG8iLHRvcDoiYXV0byIsYm90dG9tfTticmVhaztjYXNlImJvdHRvbUxlZnQiOnN0eWxlPXtsZWZ0OjAsdG9wOiJhdXRvIixib3R0b219O2JyZWFrO2RlZmF1bHQ6c3R5bGU9e3JpZ2h0OjAsdG9wOiJhdXRvIixib3R0b219fXJldHVybiBzdHlsZX0pKHBsYWNlbWVudCxudWxsIT10b3A/dG9wOjI0LG51bGwhPWJvdHRvbT9ib3R0b206MjQpLGdldENsYXNzTmFtZT0oKT0+Y2xhc3NuYW1lc19kZWZhdWx0KCkoe1tgJHtwcmVmaXhDbHN9LXJ0bGBdOm51bGwhPXJ0bD9ydGw6InJ0bCI9PT1kaXJlY3Rpb259KSxnZXROb3RpZmljYXRpb25Nb3Rpb249KCk9Pih7bW90aW9uTmFtZTpgJHtwcmVmaXhDbHN9LWZhZGVgfSksW2FwaSxob2xkZXJdPSgwLGVzLmxtKSh7cHJlZml4Q2xzLHN0eWxlOmdldFN0eWxlLGNsYXNzTmFtZTpnZXRDbGFzc05hbWUsbW90aW9uOmdldE5vdGlmaWNhdGlvbk1vdGlvbixjbG9zYWJsZTohMCxjbG9zZUljb246Z2V0Q2xvc2VJY29uKHByZWZpeENscyksZHVyYXRpb246bnVsbCE9ZHVyYXRpb24/ZHVyYXRpb246NC41LGdldENvbnRhaW5lcjooKT0+KG51bGw9PXN0YXRpY0dldENvbnRhaW5lcj92b2lkIDA6c3RhdGljR2V0Q29udGFpbmVyKCkpfHwobnVsbD09Z2V0UG9wdXBDb250YWluZXI/dm9pZCAwOmdldFBvcHVwQ29udGFpbmVyKCkpfHxkb2N1bWVudC5ib2R5LG1heENvdW50LHBhdXNlT25Ib3ZlcixzaG93UHJvZ3Jlc3Msb25BbGxSZW1vdmVkLHJlbmRlck5vdGlmaWNhdGlvbnMsc3RhY2s6ITEhPT1zdGFjayYme3RocmVzaG9sZDoib2JqZWN0Ij09dHlwZW9mIHN0YWNrP251bGw9PXN0YWNrP3ZvaWQgMDpzdGFjay50aHJlc2hvbGQ6dm9pZCAwLG9mZnNldDo4LGdhcDp0b2tlbi5tYXJnaW59fSk7cmV0dXJuIHJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCgpPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYXBpKSx7cHJlZml4Q2xzLG5vdGlmaWNhdGlvbn0pKSxob2xkZXJ9KTtmdW5jdGlvbiB1c2VJbnRlcm5hbE5vdGlmaWNhdGlvbihub3RpZmljYXRpb25Db25maWcpe2xldCBob2xkZXJSZWY9cmVhY3QudXNlUmVmKG51bGwpOygwLF91dGlsX3dhcm5pbmcubG4pKCJOb3RpZmljYXRpb24iKTtsZXQgd3JhcEFQST1yZWFjdC51c2VNZW1vKCgpPT57bGV0IG9wZW49Y29uZmlnPT57dmFyIF9hO2lmKCFob2xkZXJSZWYuY3VycmVudClyZXR1cm47bGV0e29wZW46b3JpZ2luT3BlbixwcmVmaXhDbHMsbm90aWZpY2F0aW9ufT1ob2xkZXJSZWYuY3VycmVudCxub3RpY2VQcmVmaXhDbHM9YCR7cHJlZml4Q2xzfS1ub3RpY2VgLHttZXNzYWdlLGRlc2NyaXB0aW9uLGljb24sdHlwZSxidG4sYWN0aW9ucyxjbGFzc05hbWUsc3R5bGUscm9sZT0iYWxlcnQiLGNsb3NlSWNvbixjbG9zYWJsZX09Y29uZmlnLHJlc3RDb25maWc9dXNlTm90aWZpY2F0aW9uX3Jlc3QoY29uZmlnLFsibWVzc2FnZSIsImRlc2NyaXB0aW9uIiwiaWNvbiIsInR5cGUiLCJidG4iLCJhY3Rpb25zIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJyb2xlIiwiY2xvc2VJY29uIiwiY2xvc2FibGUiXSkscmVhbENsb3NlSWNvbj1nZXRDbG9zZUljb24obm90aWNlUHJlZml4Q2xzLHZvaWQgMCE9PWNsb3NlSWNvbj9jbG9zZUljb246dm9pZCAwIT09KG51bGw9PW5vdGlmaWNhdGlvbkNvbmZpZz92b2lkIDA6bm90aWZpY2F0aW9uQ29uZmlnLmNsb3NlSWNvbik/bm90aWZpY2F0aW9uQ29uZmlnLmNsb3NlSWNvbjpudWxsPT1ub3RpZmljYXRpb24/dm9pZCAwOm5vdGlmaWNhdGlvbi5jbG9zZUljb24pO3JldHVybiBvcmlnaW5PcGVuKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7cGxhY2VtZW50Om51bGwhPT0oX2E9bnVsbD09bm90aWZpY2F0aW9uQ29uZmlnP3ZvaWQgMDpub3RpZmljYXRpb25Db25maWcucGxhY2VtZW50KSYmdm9pZCAwIT09X2E/X2E6InRvcFJpZ2h0In0scmVzdENvbmZpZykse2NvbnRlbnQ6cmVhY3QuY3JlYXRlRWxlbWVudChQdXJlQ29udGVudCx7cHJlZml4Q2xzOm5vdGljZVByZWZpeENscyxpY29uOmljb24sdHlwZTp0eXBlLG1lc3NhZ2U6bWVzc2FnZSxkZXNjcmlwdGlvbjpkZXNjcmlwdGlvbixhY3Rpb25zOm51bGwhPWFjdGlvbnM/YWN0aW9uczpidG4scm9sZTpyb2xlfSksY2xhc3NOYW1lOmNsYXNzbmFtZXNfZGVmYXVsdCgpKHR5cGUmJmAke25vdGljZVByZWZpeENsc30tJHt0eXBlfWAsY2xhc3NOYW1lLG51bGw9PW5vdGlmaWNhdGlvbj92b2lkIDA6bm90aWZpY2F0aW9uLmNsYXNzTmFtZSksc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG51bGw9PW5vdGlmaWNhdGlvbj92b2lkIDA6bm90aWZpY2F0aW9uLnN0eWxlKSxzdHlsZSksY2xvc2VJY29uOnJlYWxDbG9zZUljb24sY2xvc2FibGU6bnVsbCE9Y2xvc2FibGU/Y2xvc2FibGU6ISFyZWFsQ2xvc2VJY29ufSkpfSxkZXN0cm95PWtleT0+e3ZhciBfYSxfYjt2b2lkIDAhPT1rZXk/bnVsbD09PShfYT1ob2xkZXJSZWYuY3VycmVudCl8fHZvaWQgMD09PV9hfHxfYS5jbG9zZShrZXkpOm51bGw9PT0oX2I9aG9sZGVyUmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1fYnx8X2IuZGVzdHJveSgpfSxjbG9uZT17b3BlbixkZXN0cm95fTtyZXR1cm5bInN1Y2Nlc3MiLCJpbmZvIiwid2FybmluZyIsImVycm9yIl0uZm9yRWFjaCh0eXBlPT57Y2xvbmVbdHlwZV09Y29uZmlnPT5vcGVuKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjb25maWcpLHt0eXBlfSkpfSksY2xvbmV9LFtdKTtyZXR1cm5bd3JhcEFQSSxyZWFjdC5jcmVhdGVFbGVtZW50KEhvbGRlcixPYmplY3QuYXNzaWduKHtrZXk6Im5vdGlmaWNhdGlvbi1ob2xkZXIifSxub3RpZmljYXRpb25Db25maWcse3JlZjpob2xkZXJSZWZ9KSldfWxldCBub3RpZmljYXRpb249bnVsbCxhY3Q9Y2FsbGJhY2s9PmNhbGxiYWNrKCksdGFza1F1ZXVlPVtdLGRlZmF1bHRHbG9iYWxDb25maWc9e307ZnVuY3Rpb24gZ2V0R2xvYmFsQ29udGV4dCgpe2xldHtnZXRDb250YWluZXIscnRsLG1heENvdW50LHRvcCxib3R0b20sc2hvd1Byb2dyZXNzLHBhdXNlT25Ib3Zlcn09ZGVmYXVsdEdsb2JhbENvbmZpZyxtZXJnZWRDb250YWluZXI9KG51bGw9PWdldENvbnRhaW5lcj92b2lkIDA6Z2V0Q29udGFpbmVyKCkpfHxkb2N1bWVudC5ib2R5O3JldHVybntnZXRDb250YWluZXI6KCk9Pm1lcmdlZENvbnRhaW5lcixydGwsbWF4Q291bnQsdG9wLGJvdHRvbSxzaG93UHJvZ3Jlc3MscGF1c2VPbkhvdmVyfX1sZXQgR2xvYmFsSG9sZGVyPXJlYWN0LmZvcndhcmRSZWYoKHByb3BzLHJlZik9PntsZXR7bm90aWZpY2F0aW9uQ29uZmlnLHN5bmN9PXByb3BzLHtnZXRQcmVmaXhDbHN9PSgwLHJlYWN0LnVzZUNvbnRleHQpKGNvbmZpZ19wcm92aWRlcl9jb250ZXh0LkVfKSxwcmVmaXhDbHM9ZGVmYXVsdEdsb2JhbENvbmZpZy5wcmVmaXhDbHN8fGdldFByZWZpeENscygibm90aWZpY2F0aW9uIiksYXBwQ29uZmlnPSgwLHJlYWN0LnVzZUNvbnRleHQpKGNvbnRleHQuSiksW2FwaSxob2xkZXJdPXVzZUludGVybmFsTm90aWZpY2F0aW9uKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG5vdGlmaWNhdGlvbkNvbmZpZykse3ByZWZpeENsc30pLGFwcENvbmZpZy5ub3RpZmljYXRpb24pKTtyZXR1cm4gcmVhY3QudXNlRWZmZWN0KHN5bmMsW10pLHJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCgpPT57bGV0IGluc3RhbmNlPU9iamVjdC5hc3NpZ24oe30sYXBpKTtyZXR1cm4gT2JqZWN0LmtleXMoaW5zdGFuY2UpLmZvckVhY2gobWV0aG9kPT57aW5zdGFuY2VbbWV0aG9kXT1mdW5jdGlvbigpe3JldHVybiBzeW5jKCksYXBpW21ldGhvZF0uYXBwbHkoYXBpLGFyZ3VtZW50cyl9fSkse2luc3RhbmNlLHN5bmN9fSksaG9sZGVyfSksR2xvYmFsSG9sZGVyV3JhcHBlcj1yZWFjdC5mb3J3YXJkUmVmKChfLHJlZik9PntsZXRbbm90aWZpY2F0aW9uQ29uZmlnLHNldE5vdGlmaWNhdGlvbkNvbmZpZ109cmVhY3QudXNlU3RhdGUoZ2V0R2xvYmFsQ29udGV4dCksc3luYz0oKT0+e3NldE5vdGlmaWNhdGlvbkNvbmZpZyhnZXRHbG9iYWxDb250ZXh0KX07cmVhY3QudXNlRWZmZWN0KHN5bmMsW10pO2xldCBnbG9iYWwxPSgwLGNvbmZpZ19wcm92aWRlci53NikoKSxyb290UHJlZml4Q2xzPWdsb2JhbDEuZ2V0Um9vdFByZWZpeENscygpLHJvb3RJY29uUHJlZml4Q2xzPWdsb2JhbDEuZ2V0SWNvblByZWZpeENscygpLHRoZW1lPWdsb2JhbDEuZ2V0VGhlbWUoKSxkb209cmVhY3QuY3JlYXRlRWxlbWVudChHbG9iYWxIb2xkZXIse3JlZjpyZWYsc3luYzpzeW5jLG5vdGlmaWNhdGlvbkNvbmZpZzpub3RpZmljYXRpb25Db25maWd9KTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChjb25maWdfcHJvdmlkZXIuWlAse3ByZWZpeENsczpyb290UHJlZml4Q2xzLGljb25QcmVmaXhDbHM6cm9vdEljb25QcmVmaXhDbHMsdGhlbWU6dGhlbWV9LGdsb2JhbDEuaG9sZGVyUmVuZGVyP2dsb2JhbDEuaG9sZGVyUmVuZGVyKGRvbSk6ZG9tKX0pO2Z1bmN0aW9uIGZsdXNoTm90aWNlKCl7aWYoIW5vdGlmaWNhdGlvbil7bGV0IGhvbGRlckZyYWdtZW50PWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxuZXdOb3RpZmljYXRpb249e2ZyYWdtZW50OmhvbGRlckZyYWdtZW50fTtub3RpZmljYXRpb249bmV3Tm90aWZpY2F0aW9uLGFjdCgoKT0+e2xldCByZWFjdFJlbmRlcj0oMCxVbnN0YWJsZUNvbnRleHQucSkoKTtyZWFjdFJlbmRlcihyZWFjdC5jcmVhdGVFbGVtZW50KEdsb2JhbEhvbGRlcldyYXBwZXIse3JlZihub2RlKXtsZXR7aW5zdGFuY2Usc3luY309bm9kZXx8e307UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+eyFuZXdOb3RpZmljYXRpb24uaW5zdGFuY2UmJmluc3RhbmNlJiYobmV3Tm90aWZpY2F0aW9uLmluc3RhbmNlPWluc3RhbmNlLG5ld05vdGlmaWNhdGlvbi5zeW5jPXN5bmMsZmx1c2hOb3RpY2UoKSl9KX19KSxob2xkZXJGcmFnbWVudCl9KTtyZXR1cm59bm90aWZpY2F0aW9uLmluc3RhbmNlJiYodGFza1F1ZXVlLmZvckVhY2godGFzaz0+e3N3aXRjaCh0YXNrLnR5cGUpe2Nhc2Uib3BlbiI6YWN0KCgpPT57bm90aWZpY2F0aW9uLmluc3RhbmNlLm9wZW4oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGRlZmF1bHRHbG9iYWxDb25maWcpLHRhc2suY29uZmlnKSl9KTticmVhaztjYXNlImRlc3Ryb3kiOmFjdCgoKT0+e251bGw9PW5vdGlmaWNhdGlvbnx8bm90aWZpY2F0aW9uLmluc3RhbmNlLmRlc3Ryb3kodGFzay5rZXkpfSl9fSksdGFza1F1ZXVlPVtdKX1mdW5jdGlvbiBub3RpZmljYXRpb25fb3Blbihjb25maWcpeygwLGNvbmZpZ19wcm92aWRlci53NikoKSx0YXNrUXVldWUucHVzaCh7dHlwZToib3BlbiIsY29uZmlnfSksZmx1c2hOb3RpY2UoKX1sZXQgZGVzdHJveT1rZXk9Pnt0YXNrUXVldWUucHVzaCh7dHlwZToiZGVzdHJveSIsa2V5fSksZmx1c2hOb3RpY2UoKX0sc3RhdGljTWV0aG9kcz17b3Blbjpub3RpZmljYXRpb25fb3BlbixkZXN0cm95LGNvbmZpZzpmdW5jdGlvbihjb25maWcpe2RlZmF1bHRHbG9iYWxDb25maWc9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGRlZmF1bHRHbG9iYWxDb25maWcpLGNvbmZpZyksYWN0KCgpPT57dmFyIF9hO251bGw9PT0oX2E9bnVsbD09bm90aWZpY2F0aW9uP3ZvaWQgMDpub3RpZmljYXRpb24uc3luYyl8fHZvaWQgMD09PV9hfHxfYS5jYWxsKG5vdGlmaWNhdGlvbil9KX0sdXNlTm90aWZpY2F0aW9uOmZ1bmN0aW9uKG5vdGlmaWNhdGlvbkNvbmZpZyl7cmV0dXJuIHVzZUludGVybmFsTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbkNvbmZpZyl9LF9JbnRlcm5hbFBhbmVsRG9Ob3RVc2VPcllvdVdpbGxCZUZpcmVkOlB1cmVQYW5lbH07WyJzdWNjZXNzIiwiaW5mbyIsIndhcm5pbmciLCJlcnJvciJdLmZvckVhY2godHlwZT0+e3N0YXRpY01ldGhvZHNbdHlwZV09Y29uZmlnPT5ub3RpZmljYXRpb25fb3BlbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sY29uZmlnKSx7dHlwZX0pKX0pO3ZhciBlc19ub3RpZmljYXRpb249c3RhdGljTWV0aG9kc30sMTEwMDQ6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gcGFnaW5hdGlvbn19KTt2YXIgcmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksZXNtX2V4dGVuZHM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzQ2MCksYXNuX0RvdWJsZUxlZnRPdXRsaW5lZD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNMjcyLjkgNTEybDI2NS40LTMzOS4xYzQuMS01LjIuNC0xMi45LTYuMy0xMi45aC03Ny4zYy00LjkgMC05LjYgMi4zLTEyLjYgNi4xTDE4Ni44IDQ5Mi4zYTMxLjk5IDMxLjk5IDAgMDAwIDM5LjVsMjU1LjMgMzI2LjFjMyAzLjkgNy43IDYuMSAxMi42IDYuMUg1MzJjNi43IDAgMTAuNC03LjcgNi4zLTEyLjlMMjcyLjkgNTEyem0zMDQgMGwyNjUuNC0zMzkuMWM0LjEtNS4yLjQtMTIuOS02LjMtMTIuOWgtNzcuM2MtNC45IDAtOS42IDIuMy0xMi42IDYuMUw0OTAuOCA0OTIuM2EzMS45OSAzMS45OSAwIDAwMCAzOS41bDI1NS4zIDMyNi4xYzMgMy45IDcuNyA2LjEgMTIuNiA2LjFIODM2YzYuNyAwIDEwLjQtNy43IDYuMy0xMi45TDU3Ni45IDUxMnoifX1dfSxuYW1lOiJkb3VibGUtbGVmdCIsdGhlbWU6Im91dGxpbmVkIn0sQW50ZEljb249X193ZWJwYWNrX3JlcXVpcmVfXyg4NzU5MiksUmVmSWNvbj1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoQW50ZEljb24uWiwoMCxlc21fZXh0ZW5kcy5aKSh7fSxwcm9wcyx7cmVmOnJlZixpY29uOmFzbl9Eb3VibGVMZWZ0T3V0bGluZWR9KSl9KSxhc25fRG91YmxlUmlnaHRPdXRsaW5lZD17aWNvbjp7dGFnOiJzdmciLGF0dHJzOnt2aWV3Qm94OiI2NCA2NCA4OTYgODk2Iixmb2N1c2FibGU6ImZhbHNlIn0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJzOntkOiJNNTMzLjIgNDkyLjNMMjc3LjkgMTY2LjFjLTMtMy45LTcuNy02LjEtMTIuNi02LjFIMTg4Yy02LjcgMC0xMC40IDcuNy02LjMgMTIuOUw0NDcuMSA1MTIgMTgxLjcgODUxLjFBNy45OCA3Ljk4IDAgMDAxODggODY0aDc3LjNjNC45IDAgOS42LTIuMyAxMi42LTYuMWwyNTUuMy0zMjYuMWM5LjEtMTEuNyA5LjEtMjcuOSAwLTM5LjV6bTMwNCAwTDU4MS45IDE2Ni4xYy0zLTMuOS03LjctNi4xLTEyLjYtNi4xSDQ5MmMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlMNzUxLjEgNTEyIDQ4NS43IDg1MS4xQTcuOTggNy45OCAwIDAwNDkyIDg2NGg3Ny4zYzQuOSAwIDkuNi0yLjMgMTIuNi02LjFsMjU1LjMtMzI2LjFjOS4xLTExLjcgOS4xLTI3LjkgMC0zOS41eiJ9fV19LG5hbWU6ImRvdWJsZS1yaWdodCIsdGhlbWU6Im91dGxpbmVkIn0sRG91YmxlUmlnaHRPdXRsaW5lZF9SZWZJY29uPXJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24ocHJvcHMscmVmKXtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChBbnRkSWNvbi5aLCgwLGVzbV9leHRlbmRzLlopKHt9LHByb3BzLHtyZWY6cmVmLGljb246YXNuX0RvdWJsZVJpZ2h0T3V0bGluZWR9KSl9KSxMZWZ0T3V0bGluZWQ9X193ZWJwYWNrX3JlcXVpcmVfXyg2MTcxKSxSaWdodE91dGxpbmVkPV9fd2VicGFja19yZXF1aXJlX18oMTgwNzMpLGNsYXNzbmFtZXM9X193ZWJwYWNrX3JlcXVpcmVfXygxMzE0NCksY2xhc3NuYW1lc19kZWZhdWx0PV9fd2VicGFja19yZXF1aXJlX18ubihjbGFzc25hbWVzKSxkZWZpbmVQcm9wZXJ0eT1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ5NDIpLGhlbHBlcnNfZXNtX2V4dGVuZHM9X193ZWJwYWNrX3JlcXVpcmVfXyg4NzQ2MiksZXNtX3R5cGVvZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDcxMDAyKSxvYmplY3RTcHJlYWQyPV9fd2VicGFja19yZXF1aXJlX18oMTQxMyksc2xpY2VkVG9BcnJheT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk3Njg1KSxub2RlX21vZHVsZXNfY2xhc3NuYW1lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk0MTg0KSxub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0PV9fd2VicGFja19yZXF1aXJlX18ubihub2RlX21vZHVsZXNfY2xhc3NuYW1lcyksdXNlTWVyZ2VkU3RhdGU9X193ZWJwYWNrX3JlcXVpcmVfXygyMTc3MCksS2V5Q29kZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDE1MTA1KSxwaWNrQXR0cnM9X193ZWJwYWNrX3JlcXVpcmVfXyg2NDIxNyk7X193ZWJwYWNrX3JlcXVpcmVfXyg4MDMzNCk7dmFyIHpoX0NOPXtpdGVtc19wZXJfcGFnZToi5p2hL+mhtSIsanVtcF90bzoi6Lez6IezIixqdW1wX3RvX2NvbmZpcm06IuehruWumiIscGFnZToi6aG1IixwcmV2X3BhZ2U6IuS4iuS4gOmhtSIsbmV4dF9wYWdlOiLkuIvkuIDpobUiLHByZXZfNToi5ZCR5YmNIDUg6aG1IixuZXh0XzU6IuWQkeWQjiA1IOmhtSIscHJldl8zOiLlkJHliY0gMyDpobUiLG5leHRfMzoi5ZCR5ZCOIDMg6aG1IixwYWdlX3NpemU6IumhteeggSJ9LGRlZmF1bHRQYWdlU2l6ZU9wdGlvbnM9WzEwLDIwLDUwLDEwMF0sZXNfT3B0aW9ucz1mdW5jdGlvbihwcm9wcyl7dmFyIF9wcm9wcyRwYWdlU2l6ZU9wdGlvbj1wcm9wcy5wYWdlU2l6ZU9wdGlvbnMscGFnZVNpemVPcHRpb25zPXZvaWQgMD09PV9wcm9wcyRwYWdlU2l6ZU9wdGlvbj9kZWZhdWx0UGFnZVNpemVPcHRpb25zOl9wcm9wcyRwYWdlU2l6ZU9wdGlvbixsb2NhbGU9cHJvcHMubG9jYWxlLGNoYW5nZVNpemU9cHJvcHMuY2hhbmdlU2l6ZSxwYWdlU2l6ZT1wcm9wcy5wYWdlU2l6ZSxnb0J1dHRvbj1wcm9wcy5nb0J1dHRvbixxdWlja0dvPXByb3BzLnF1aWNrR28scm9vdFByZWZpeENscz1wcm9wcy5yb290UHJlZml4Q2xzLGRpc2FibGVkPXByb3BzLmRpc2FibGVkLGJ1aWxkT3B0aW9uVGV4dD1wcm9wcy5idWlsZE9wdGlvblRleHQsc2hvd1NpemVDaGFuZ2VyPXByb3BzLnNob3dTaXplQ2hhbmdlcixzaXplQ2hhbmdlclJlbmRlcj1wcm9wcy5zaXplQ2hhbmdlclJlbmRlcixfUmVhY3QkdXNlU3RhdGU9cmVhY3QudXNlU3RhdGUoIiIpLF9SZWFjdCR1c2VTdGF0ZTI9KDAsc2xpY2VkVG9BcnJheS5aKShfUmVhY3QkdXNlU3RhdGUsMiksZ29JbnB1dFRleHQ9X1JlYWN0JHVzZVN0YXRlMlswXSxzZXRHb0lucHV0VGV4dD1fUmVhY3QkdXNlU3RhdGUyWzFdLGdldFZhbGlkVmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4hZ29JbnB1dFRleHR8fE51bWJlci5pc05hTihnb0lucHV0VGV4dCk/dm9pZCAwOk51bWJlcihnb0lucHV0VGV4dCl9LG1lcmdlQnVpbGRPcHRpb25UZXh0PSJmdW5jdGlvbiI9PXR5cGVvZiBidWlsZE9wdGlvblRleHQ/YnVpbGRPcHRpb25UZXh0OmZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4iIi5jb25jYXQodmFsdWUsIiAiKS5jb25jYXQobG9jYWxlLml0ZW1zX3Blcl9wYWdlKX0sZ289ZnVuY3Rpb24oZSl7IiIhPT1nb0lucHV0VGV4dCYmKGUua2V5Q29kZT09PUtleUNvZGUuWi5FTlRFUnx8ImNsaWNrIj09PWUudHlwZSkmJihzZXRHb0lucHV0VGV4dCgiIiksbnVsbD09cXVpY2tHb3x8cXVpY2tHbyhnZXRWYWxpZFZhbHVlKCkpKX0scHJlZml4Q2xzPSIiLmNvbmNhdChyb290UHJlZml4Q2xzLCItb3B0aW9ucyIpO2lmKCFzaG93U2l6ZUNoYW5nZXImJiFxdWlja0dvKXJldHVybiBudWxsO3ZhciBjaGFuZ2VTZWxlY3Q9bnVsbCxnb0lucHV0PW51bGwsZ290b0J1dHRvbj1udWxsO3JldHVybiBzaG93U2l6ZUNoYW5nZXImJnNpemVDaGFuZ2VyUmVuZGVyJiYoY2hhbmdlU2VsZWN0PXNpemVDaGFuZ2VyUmVuZGVyKHtkaXNhYmxlZDpkaXNhYmxlZCxzaXplOnBhZ2VTaXplLG9uU2l6ZUNoYW5nZTpmdW5jdGlvbihuZXh0VmFsdWUpe251bGw9PWNoYW5nZVNpemV8fGNoYW5nZVNpemUoTnVtYmVyKG5leHRWYWx1ZSkpfSwiYXJpYS1sYWJlbCI6bG9jYWxlLnBhZ2Vfc2l6ZSxjbGFzc05hbWU6IiIuY29uY2F0KHByZWZpeENscywiLXNpemUtY2hhbmdlciIpLG9wdGlvbnM6KHBhZ2VTaXplT3B0aW9ucy5zb21lKGZ1bmN0aW9uKG9wdGlvbil7cmV0dXJuIG9wdGlvbi50b1N0cmluZygpPT09cGFnZVNpemUudG9TdHJpbmcoKX0pP3BhZ2VTaXplT3B0aW9uczpwYWdlU2l6ZU9wdGlvbnMuY29uY2F0KFtwYWdlU2l6ZV0pLnNvcnQoZnVuY3Rpb24oYSxiKXtyZXR1cm4oTnVtYmVyLmlzTmFOKE51bWJlcihhKSk/MDpOdW1iZXIoYSkpLShOdW1iZXIuaXNOYU4oTnVtYmVyKGIpKT8wOk51bWJlcihiKSl9KSkubWFwKGZ1bmN0aW9uKG9wdCl7cmV0dXJue2xhYmVsOm1lcmdlQnVpbGRPcHRpb25UZXh0KG9wdCksdmFsdWU6b3B0fX0pfSkpLHF1aWNrR28mJihnb0J1dHRvbiYmKGdvdG9CdXR0b249ImJvb2xlYW4iPT10eXBlb2YgZ29CdXR0b24/cmVhY3QuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixvbkNsaWNrOmdvLG9uS2V5VXA6Z28sZGlzYWJsZWQ6ZGlzYWJsZWQsY2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi1xdWljay1qdW1wZXItYnV0dG9uIil9LGxvY2FsZS5qdW1wX3RvX2NvbmZpcm0pOnJlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtvbkNsaWNrOmdvLG9uS2V5VXA6Z299LGdvQnV0dG9uKSksZ29JbnB1dD1yZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KHByZWZpeENscywiLXF1aWNrLWp1bXBlciIpfSxsb2NhbGUuanVtcF90byxyZWFjdC5jcmVhdGVFbGVtZW50KCJpbnB1dCIse2Rpc2FibGVkOmRpc2FibGVkLHR5cGU6InRleHQiLHZhbHVlOmdvSW5wdXRUZXh0LG9uQ2hhbmdlOmZ1bmN0aW9uKGUpe3NldEdvSW5wdXRUZXh0KGUudGFyZ2V0LnZhbHVlKX0sb25LZXlVcDpnbyxvbkJsdXI6ZnVuY3Rpb24oZSl7IWdvQnV0dG9uJiYiIiE9PWdvSW5wdXRUZXh0JiYoc2V0R29JbnB1dFRleHQoIiIpLGUucmVsYXRlZFRhcmdldCYmKGUucmVsYXRlZFRhcmdldC5jbGFzc05hbWUuaW5kZXhPZigiIi5jb25jYXQocm9vdFByZWZpeENscywiLWl0ZW0tbGluayIpKT49MHx8ZS5yZWxhdGVkVGFyZ2V0LmNsYXNzTmFtZS5pbmRleE9mKCIiLmNvbmNhdChyb290UHJlZml4Q2xzLCItaXRlbSIpKT49MCl8fG51bGw9PXF1aWNrR298fHF1aWNrR28oZ2V0VmFsaWRWYWx1ZSgpKSl9LCJhcmlhLWxhYmVsIjpsb2NhbGUucGFnZX0pLGxvY2FsZS5wYWdlLGdvdG9CdXR0b24pKSxyZWFjdC5jcmVhdGVFbGVtZW50KCJsaSIse2NsYXNzTmFtZTpwcmVmaXhDbHN9LGNoYW5nZVNlbGVjdCxnb0lucHV0KX0sZXNfUGFnZXI9ZnVuY3Rpb24ocHJvcHMpe3ZhciByb290UHJlZml4Q2xzPXByb3BzLnJvb3RQcmVmaXhDbHMscGFnZT1wcm9wcy5wYWdlLGFjdGl2ZT1wcm9wcy5hY3RpdmUsY2xhc3NOYW1lPXByb3BzLmNsYXNzTmFtZSxzaG93VGl0bGU9cHJvcHMuc2hvd1RpdGxlLG9uQ2xpY2s9cHJvcHMub25DbGljayxvbktleVByZXNzPXByb3BzLm9uS2V5UHJlc3MsaXRlbVJlbmRlcj1wcm9wcy5pdGVtUmVuZGVyLHByZWZpeENscz0iIi5jb25jYXQocm9vdFByZWZpeENscywiLWl0ZW0iKSxjbHM9bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKHByZWZpeENscywiIi5jb25jYXQocHJlZml4Q2xzLCItIikuY29uY2F0KHBhZ2UpLCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKHt9LCIiLmNvbmNhdChwcmVmaXhDbHMsIi1hY3RpdmUiKSxhY3RpdmUpLCIiLmNvbmNhdChwcmVmaXhDbHMsIi1kaXNhYmxlZCIpLCFwYWdlKSxjbGFzc05hbWUpLHBhZ2VyPWl0ZW1SZW5kZXIocGFnZSwicGFnZSIscmVhY3QuY3JlYXRlRWxlbWVudCgiYSIse3JlbDoibm9mb2xsb3cifSxwYWdlKSk7cmV0dXJuIHBhZ2VyP3JlYWN0LmNyZWF0ZUVsZW1lbnQoImxpIix7dGl0bGU6c2hvd1RpdGxlP1N0cmluZyhwYWdlKTpudWxsLGNsYXNzTmFtZTpjbHMsb25DbGljazpmdW5jdGlvbigpe29uQ2xpY2socGFnZSl9LG9uS2V5RG93bjpmdW5jdGlvbihlKXtvbktleVByZXNzKGUsb25DbGljayxwYWdlKX0sdGFiSW5kZXg6MH0scGFnZXIpOm51bGx9LGRlZmF1bHRJdGVtUmVuZGVyPWZ1bmN0aW9uKHBhZ2UsdHlwZSxlbGVtZW50KXtyZXR1cm4gZWxlbWVudH07ZnVuY3Rpb24gbm9vcCgpe31mdW5jdGlvbiBpc0ludGVnZXIodil7dmFyIHZhbHVlPU51bWJlcih2KTtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHZhbHVlJiYhTnVtYmVyLmlzTmFOKHZhbHVlKSYmaXNGaW5pdGUodmFsdWUpJiZNYXRoLmZsb29yKHZhbHVlKT09PXZhbHVlfWZ1bmN0aW9uIGNhbGN1bGF0ZVBhZ2UocCxwYWdlU2l6ZSx0b3RhbCl7cmV0dXJuIE1hdGguZmxvb3IoKHRvdGFsLTEpLyh2b2lkIDA9PT1wP3BhZ2VTaXplOnApKSsxfXZhciBlc19QYWdpbmF0aW9uPWZ1bmN0aW9uKHByb3BzKXt2YXIgcHJldkJ1dHRvbixuZXh0QnV0dG9uLG5leHREaXNhYmxlZCxuZXh0VGFiSW5kZXgsX3Byb3BzJHByZWZpeENscz1wcm9wcy5wcmVmaXhDbHMscHJlZml4Q2xzPXZvaWQgMD09PV9wcm9wcyRwcmVmaXhDbHM/InJjLXBhZ2luYXRpb24iOl9wcm9wcyRwcmVmaXhDbHMsX3Byb3BzJHNlbGVjdFByZWZpeENsPXByb3BzLnNlbGVjdFByZWZpeENscyxjbGFzc05hbWU9cHJvcHMuY2xhc3NOYW1lLGN1cnJlbnRQcm9wPXByb3BzLmN1cnJlbnQsX3Byb3BzJGRlZmF1bHRDdXJyZW50PXByb3BzLmRlZmF1bHRDdXJyZW50LF9wcm9wcyR0b3RhbD1wcm9wcy50b3RhbCx0b3RhbD12b2lkIDA9PT1fcHJvcHMkdG90YWw/MDpfcHJvcHMkdG90YWwscGFnZVNpemVQcm9wPXByb3BzLnBhZ2VTaXplLF9wcm9wcyRkZWZhdWx0UGFnZVNpej1wcm9wcy5kZWZhdWx0UGFnZVNpemUsX3Byb3BzJG9uQ2hhbmdlPXByb3BzLm9uQ2hhbmdlLG9uQ2hhbmdlPXZvaWQgMD09PV9wcm9wcyRvbkNoYW5nZT9ub29wOl9wcm9wcyRvbkNoYW5nZSxoaWRlT25TaW5nbGVQYWdlPXByb3BzLmhpZGVPblNpbmdsZVBhZ2UsYWxpZ249cHJvcHMuYWxpZ24sX3Byb3BzJHNob3dQcmV2TmV4dEp1PXByb3BzLnNob3dQcmV2TmV4dEp1bXBlcnMsc2hvd1F1aWNrSnVtcGVyPXByb3BzLnNob3dRdWlja0p1bXBlcixzaG93TGVzc0l0ZW1zPXByb3BzLnNob3dMZXNzSXRlbXMsX3Byb3BzJHNob3dUaXRsZT1wcm9wcy5zaG93VGl0bGUsc2hvd1RpdGxlPXZvaWQgMD09PV9wcm9wcyRzaG93VGl0bGV8fF9wcm9wcyRzaG93VGl0bGUsX3Byb3BzJG9uU2hvd1NpemVDaGFuPXByb3BzLm9uU2hvd1NpemVDaGFuZ2Usb25TaG93U2l6ZUNoYW5nZT12b2lkIDA9PT1fcHJvcHMkb25TaG93U2l6ZUNoYW4/bm9vcDpfcHJvcHMkb25TaG93U2l6ZUNoYW4sX3Byb3BzJGxvY2FsZT1wcm9wcy5sb2NhbGUsbG9jYWxlPXZvaWQgMD09PV9wcm9wcyRsb2NhbGU/emhfQ046X3Byb3BzJGxvY2FsZSxzdHlsZT1wcm9wcy5zdHlsZSxfcHJvcHMkdG90YWxCb3VuZGFyeVM9cHJvcHMudG90YWxCb3VuZGFyeVNob3dTaXplQ2hhbmdlcixkaXNhYmxlZD1wcm9wcy5kaXNhYmxlZCxzaW1wbGU9cHJvcHMuc2ltcGxlLHNob3dUb3RhbD1wcm9wcy5zaG93VG90YWwsX3Byb3BzJHNob3dTaXplQ2hhbmdlPXByb3BzLnNob3dTaXplQ2hhbmdlcixzaXplQ2hhbmdlclJlbmRlcj1wcm9wcy5zaXplQ2hhbmdlclJlbmRlcixwYWdlU2l6ZU9wdGlvbnM9cHJvcHMucGFnZVNpemVPcHRpb25zLF9wcm9wcyRpdGVtUmVuZGVyPXByb3BzLml0ZW1SZW5kZXIsaXRlbVJlbmRlcj12b2lkIDA9PT1fcHJvcHMkaXRlbVJlbmRlcj9kZWZhdWx0SXRlbVJlbmRlcjpfcHJvcHMkaXRlbVJlbmRlcixqdW1wUHJldkljb249cHJvcHMuanVtcFByZXZJY29uLGp1bXBOZXh0SWNvbj1wcm9wcy5qdW1wTmV4dEljb24scHJldkljb249cHJvcHMucHJldkljb24sbmV4dEljb249cHJvcHMubmV4dEljb24scGFnaW5hdGlvblJlZj1yZWFjdC51c2VSZWYobnVsbCksX3VzZU1lcmdlZFN0YXRlPSgwLHVzZU1lcmdlZFN0YXRlLlopKDEwLHt2YWx1ZTpwYWdlU2l6ZVByb3AsZGVmYXVsdFZhbHVlOnZvaWQgMD09PV9wcm9wcyRkZWZhdWx0UGFnZVNpej8xMDpfcHJvcHMkZGVmYXVsdFBhZ2VTaXp9KSxfdXNlTWVyZ2VkU3RhdGUyPSgwLHNsaWNlZFRvQXJyYXkuWikoX3VzZU1lcmdlZFN0YXRlLDIpLHBhZ2VTaXplPV91c2VNZXJnZWRTdGF0ZTJbMF0sc2V0UGFnZVNpemU9X3VzZU1lcmdlZFN0YXRlMlsxXSxfdXNlTWVyZ2VkU3RhdGUzPSgwLHVzZU1lcmdlZFN0YXRlLlopKDEse3ZhbHVlOmN1cnJlbnRQcm9wLGRlZmF1bHRWYWx1ZTp2b2lkIDA9PT1fcHJvcHMkZGVmYXVsdEN1cnJlbnQ/MTpfcHJvcHMkZGVmYXVsdEN1cnJlbnQscG9zdFN0YXRlOmZ1bmN0aW9uKGMpe3JldHVybiBNYXRoLm1heCgxLE1hdGgubWluKGMsY2FsY3VsYXRlUGFnZSh2b2lkIDAscGFnZVNpemUsdG90YWwpKSl9fSksX3VzZU1lcmdlZFN0YXRlND0oMCxzbGljZWRUb0FycmF5LlopKF91c2VNZXJnZWRTdGF0ZTMsMiksY3VycmVudD1fdXNlTWVyZ2VkU3RhdGU0WzBdLHNldEN1cnJlbnQ9X3VzZU1lcmdlZFN0YXRlNFsxXSxfUmVhY3QkdXNlU3RhdGU9cmVhY3QudXNlU3RhdGUoY3VycmVudCksX1JlYWN0JHVzZVN0YXRlMj0oMCxzbGljZWRUb0FycmF5LlopKF9SZWFjdCR1c2VTdGF0ZSwyKSxpbnRlcm5hbElucHV0VmFsPV9SZWFjdCR1c2VTdGF0ZTJbMF0sc2V0SW50ZXJuYWxJbnB1dFZhbD1fUmVhY3QkdXNlU3RhdGUyWzFdOygwLHJlYWN0LnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtzZXRJbnRlcm5hbElucHV0VmFsKGN1cnJlbnQpfSxbY3VycmVudF0pO3ZhciBqdW1wUHJldlBhZ2U9TWF0aC5tYXgoMSxjdXJyZW50LShzaG93TGVzc0l0ZW1zPzM6NSkpLGp1bXBOZXh0UGFnZT1NYXRoLm1pbihjYWxjdWxhdGVQYWdlKHZvaWQgMCxwYWdlU2l6ZSx0b3RhbCksY3VycmVudCsoc2hvd0xlc3NJdGVtcz8zOjUpKTtmdW5jdGlvbiBnZXRJdGVtSWNvbihpY29uLGxhYmVsKXt2YXIgaWNvbk5vZGU9aWNvbnx8cmVhY3QuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIiwiYXJpYS1sYWJlbCI6bGFiZWwsY2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi1pdGVtLWxpbmsiKX0pO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBpY29uJiYoaWNvbk5vZGU9cmVhY3QuY3JlYXRlRWxlbWVudChpY29uLCgwLG9iamVjdFNwcmVhZDIuWikoe30scHJvcHMpKSksaWNvbk5vZGV9ZnVuY3Rpb24gZ2V0VmFsaWRWYWx1ZShlKXt2YXIgaW5wdXRWYWx1ZT1lLnRhcmdldC52YWx1ZSxhbGxQYWdlcz1jYWxjdWxhdGVQYWdlKHZvaWQgMCxwYWdlU2l6ZSx0b3RhbCk7cmV0dXJuIiI9PT1pbnB1dFZhbHVlP2lucHV0VmFsdWU6TnVtYmVyLmlzTmFOKE51bWJlcihpbnB1dFZhbHVlKSk/aW50ZXJuYWxJbnB1dFZhbDppbnB1dFZhbHVlPj1hbGxQYWdlcz9hbGxQYWdlczpOdW1iZXIoaW5wdXRWYWx1ZSl9ZnVuY3Rpb24gaGFuZGxlS2V5VXAoZXZlbnQpe3ZhciB2YWx1ZT1nZXRWYWxpZFZhbHVlKGV2ZW50KTtzd2l0Y2godmFsdWUhPT1pbnRlcm5hbElucHV0VmFsJiZzZXRJbnRlcm5hbElucHV0VmFsKHZhbHVlKSxldmVudC5rZXlDb2RlKXtjYXNlIEtleUNvZGUuWi5FTlRFUjpoYW5kbGVDaGFuZ2UodmFsdWUpO2JyZWFrO2Nhc2UgS2V5Q29kZS5aLlVQOmhhbmRsZUNoYW5nZSh2YWx1ZS0xKTticmVhaztjYXNlIEtleUNvZGUuWi5ET1dOOmhhbmRsZUNoYW5nZSh2YWx1ZSsxKX19ZnVuY3Rpb24gaGFuZGxlQ2hhbmdlKHBhZ2Upe2lmKGlzSW50ZWdlcihwYWdlKSYmcGFnZSE9PWN1cnJlbnQmJmlzSW50ZWdlcih0b3RhbCkmJnRvdGFsPjAmJiFkaXNhYmxlZCl7dmFyIGN1cnJlbnRQYWdlPWNhbGN1bGF0ZVBhZ2Uodm9pZCAwLHBhZ2VTaXplLHRvdGFsKSxuZXdQYWdlPXBhZ2U7cmV0dXJuIHBhZ2U+Y3VycmVudFBhZ2U/bmV3UGFnZT1jdXJyZW50UGFnZTpwYWdlPDEmJihuZXdQYWdlPTEpLG5ld1BhZ2UhPT1pbnRlcm5hbElucHV0VmFsJiZzZXRJbnRlcm5hbElucHV0VmFsKG5ld1BhZ2UpLHNldEN1cnJlbnQobmV3UGFnZSksbnVsbD09b25DaGFuZ2V8fG9uQ2hhbmdlKG5ld1BhZ2UscGFnZVNpemUpLG5ld1BhZ2V9cmV0dXJuIGN1cnJlbnR9dmFyIGhhc1ByZXY9Y3VycmVudD4xLGhhc05leHQ9Y3VycmVudDxjYWxjdWxhdGVQYWdlKHZvaWQgMCxwYWdlU2l6ZSx0b3RhbCk7ZnVuY3Rpb24gcHJldkhhbmRsZSgpe2hhc1ByZXYmJmhhbmRsZUNoYW5nZShjdXJyZW50LTEpfWZ1bmN0aW9uIG5leHRIYW5kbGUoKXtoYXNOZXh0JiZoYW5kbGVDaGFuZ2UoY3VycmVudCsxKX1mdW5jdGlvbiBqdW1wUHJldkhhbmRsZSgpe2hhbmRsZUNoYW5nZShqdW1wUHJldlBhZ2UpfWZ1bmN0aW9uIGp1bXBOZXh0SGFuZGxlKCl7aGFuZGxlQ2hhbmdlKGp1bXBOZXh0UGFnZSl9ZnVuY3Rpb24gcnVuSWZFbnRlcihldmVudCxjYWxsYmFjayl7aWYoIkVudGVyIj09PWV2ZW50LmtleXx8ZXZlbnQuY2hhckNvZGU9PT1LZXlDb2RlLlouRU5URVJ8fGV2ZW50LmtleUNvZGU9PT1LZXlDb2RlLlouRU5URVIpe2Zvcih2YXIgX2xlbj1hcmd1bWVudHMubGVuZ3RoLHJlc3RQYXJhbXM9QXJyYXkoX2xlbj4yP19sZW4tMjowKSxfa2V5PTI7X2tleTxfbGVuO19rZXkrKylyZXN0UGFyYW1zW19rZXktMl09YXJndW1lbnRzW19rZXldO2NhbGxiYWNrLmFwcGx5KHZvaWQgMCxyZXN0UGFyYW1zKX19ZnVuY3Rpb24gaGFuZGxlR29UTyhldmVudCl7KCJjbGljayI9PT1ldmVudC50eXBlfHxldmVudC5rZXlDb2RlPT09S2V5Q29kZS5aLkVOVEVSKSYmaGFuZGxlQ2hhbmdlKGludGVybmFsSW5wdXRWYWwpfXZhciBqdW1wUHJldj1udWxsLGRhdGFPckFyaWFBdHRyaWJ1dGVQcm9wcz0oMCxwaWNrQXR0cnMuWikocHJvcHMse2FyaWE6ITAsZGF0YTohMH0pLHRvdGFsVGV4dD1zaG93VG90YWwmJnJlYWN0LmNyZWF0ZUVsZW1lbnQoImxpIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi10b3RhbC10ZXh0Iil9LHNob3dUb3RhbCh0b3RhbCxbMD09PXRvdGFsPzA6KGN1cnJlbnQtMSkqcGFnZVNpemUrMSxjdXJyZW50KnBhZ2VTaXplPnRvdGFsP3RvdGFsOmN1cnJlbnQqcGFnZVNpemVdKSksanVtcE5leHQ9bnVsbCxhbGxQYWdlcz1jYWxjdWxhdGVQYWdlKHZvaWQgMCxwYWdlU2l6ZSx0b3RhbCk7aWYoaGlkZU9uU2luZ2xlUGFnZSYmdG90YWw8PXBhZ2VTaXplKXJldHVybiBudWxsO3ZhciBwYWdlckxpc3Q9W10scGFnZXJQcm9wcz17cm9vdFByZWZpeENsczpwcmVmaXhDbHMsb25DbGljazpoYW5kbGVDaGFuZ2Usb25LZXlQcmVzczpydW5JZkVudGVyLHNob3dUaXRsZTpzaG93VGl0bGUsaXRlbVJlbmRlcjppdGVtUmVuZGVyLHBhZ2U6LTF9LGdvQnV0dG9uPXNob3dRdWlja0p1bXBlciYmc2hvd1F1aWNrSnVtcGVyLmdvQnV0dG9uLGlzUmVhZE9ubHk9Im9iamVjdCI9PT0oMCxlc21fdHlwZW9mLlopKHNpbXBsZSk/c2ltcGxlLnJlYWRPbmx5OiFzaW1wbGUsZ290b0J1dHRvbj1nb0J1dHRvbixzaW1wbGVQYWdlcj1udWxsO3NpbXBsZSYmKGdvQnV0dG9uJiYoZ290b0J1dHRvbj0iYm9vbGVhbiI9PXR5cGVvZiBnb0J1dHRvbj9yZWFjdC5jcmVhdGVFbGVtZW50KCJidXR0b24iLHt0eXBlOiJidXR0b24iLG9uQ2xpY2s6aGFuZGxlR29UTyxvbktleVVwOmhhbmRsZUdvVE99LGxvY2FsZS5qdW1wX3RvX2NvbmZpcm0pOnJlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtvbkNsaWNrOmhhbmRsZUdvVE8sb25LZXlVcDpoYW5kbGVHb1RPfSxnb0J1dHRvbiksZ290b0J1dHRvbj1yZWFjdC5jcmVhdGVFbGVtZW50KCJsaSIse3RpdGxlOnNob3dUaXRsZT8iIi5jb25jYXQobG9jYWxlLmp1bXBfdG8pLmNvbmNhdChjdXJyZW50LCIvIikuY29uY2F0KGFsbFBhZ2VzKTpudWxsLGNsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItc2ltcGxlLXBhZ2VyIil9LGdvdG9CdXR0b24pKSxzaW1wbGVQYWdlcj1yZWFjdC5jcmVhdGVFbGVtZW50KCJsaSIse3RpdGxlOnNob3dUaXRsZT8iIi5jb25jYXQoY3VycmVudCwiLyIpLmNvbmNhdChhbGxQYWdlcyk6bnVsbCxjbGFzc05hbWU6IiIuY29uY2F0KHByZWZpeENscywiLXNpbXBsZS1wYWdlciIpfSxpc1JlYWRPbmx5P2ludGVybmFsSW5wdXRWYWw6cmVhY3QuY3JlYXRlRWxlbWVudCgiaW5wdXQiLHt0eXBlOiJ0ZXh0IiwiYXJpYS1sYWJlbCI6bG9jYWxlLmp1bXBfdG8sdmFsdWU6aW50ZXJuYWxJbnB1dFZhbCxkaXNhYmxlZDpkaXNhYmxlZCxvbktleURvd246ZnVuY3Rpb24oZXZlbnQpeyhldmVudC5rZXlDb2RlPT09S2V5Q29kZS5aLlVQfHxldmVudC5rZXlDb2RlPT09S2V5Q29kZS5aLkRPV04pJiZldmVudC5wcmV2ZW50RGVmYXVsdCgpfSxvbktleVVwOmhhbmRsZUtleVVwLG9uQ2hhbmdlOmhhbmRsZUtleVVwLG9uQmx1cjpmdW5jdGlvbihldmVudCl7aGFuZGxlQ2hhbmdlKGdldFZhbGlkVmFsdWUoZXZlbnQpKX0sc2l6ZTozfSkscmVhY3QuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItc2xhc2giKX0sIi8iKSxhbGxQYWdlcykpO3ZhciBwYWdlQnVmZmVyU2l6ZT1zaG93TGVzc0l0ZW1zPzE6MjtpZihhbGxQYWdlczw9MysyKnBhZ2VCdWZmZXJTaXplKXthbGxQYWdlc3x8cGFnZXJMaXN0LnB1c2gocmVhY3QuY3JlYXRlRWxlbWVudChlc19QYWdlciwoMCxoZWxwZXJzX2VzbV9leHRlbmRzLlopKHt9LHBhZ2VyUHJvcHMse2tleToibm9QYWdlciIscGFnZToxLGNsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItaXRlbS1kaXNhYmxlZCIpfSkpKTtmb3IodmFyIGk9MTtpPD1hbGxQYWdlcztpKz0xKXBhZ2VyTGlzdC5wdXNoKHJlYWN0LmNyZWF0ZUVsZW1lbnQoZXNfUGFnZXIsKDAsaGVscGVyc19lc21fZXh0ZW5kcy5aKSh7fSxwYWdlclByb3BzLHtrZXk6aSxwYWdlOmksYWN0aXZlOmN1cnJlbnQ9PT1pfSkpKX1lbHNle3ZhciBwcmV2SXRlbVRpdGxlPXNob3dMZXNzSXRlbXM/bG9jYWxlLnByZXZfMzpsb2NhbGUucHJldl81LG5leHRJdGVtVGl0bGU9c2hvd0xlc3NJdGVtcz9sb2NhbGUubmV4dF8zOmxvY2FsZS5uZXh0XzUsanVtcFByZXZDb250ZW50PWl0ZW1SZW5kZXIoanVtcFByZXZQYWdlLCJqdW1wLXByZXYiLGdldEl0ZW1JY29uKGp1bXBQcmV2SWNvbiwicHJldiBwYWdlIikpLGp1bXBOZXh0Q29udGVudD1pdGVtUmVuZGVyKGp1bXBOZXh0UGFnZSwianVtcC1uZXh0IixnZXRJdGVtSWNvbihqdW1wTmV4dEljb24sIm5leHQgcGFnZSIpKTsodm9pZCAwPT09X3Byb3BzJHNob3dQcmV2TmV4dEp1fHxfcHJvcHMkc2hvd1ByZXZOZXh0SnUpJiYoanVtcFByZXY9anVtcFByZXZDb250ZW50P3JlYWN0LmNyZWF0ZUVsZW1lbnQoImxpIix7dGl0bGU6c2hvd1RpdGxlP3ByZXZJdGVtVGl0bGU6bnVsbCxrZXk6InByZXYiLG9uQ2xpY2s6anVtcFByZXZIYW5kbGUsdGFiSW5kZXg6MCxvbktleURvd246ZnVuY3Rpb24oZXZlbnQpe3J1bklmRW50ZXIoZXZlbnQsanVtcFByZXZIYW5kbGUpfSxjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKCIiLmNvbmNhdChwcmVmaXhDbHMsIi1qdW1wLXByZXYiKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKSh7fSwiIi5jb25jYXQocHJlZml4Q2xzLCItanVtcC1wcmV2LWN1c3RvbS1pY29uIiksISFqdW1wUHJldkljb24pKX0sanVtcFByZXZDb250ZW50KTpudWxsLGp1bXBOZXh0PWp1bXBOZXh0Q29udGVudD9yZWFjdC5jcmVhdGVFbGVtZW50KCJsaSIse3RpdGxlOnNob3dUaXRsZT9uZXh0SXRlbVRpdGxlOm51bGwsa2V5OiJuZXh0IixvbkNsaWNrOmp1bXBOZXh0SGFuZGxlLHRhYkluZGV4OjAsb25LZXlEb3duOmZ1bmN0aW9uKGV2ZW50KXtydW5JZkVudGVyKGV2ZW50LGp1bXBOZXh0SGFuZGxlKX0sY2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKSgiIi5jb25jYXQocHJlZml4Q2xzLCItanVtcC1uZXh0IiksKDAsZGVmaW5lUHJvcGVydHkuWikoe30sIiIuY29uY2F0KHByZWZpeENscywiLWp1bXAtbmV4dC1jdXN0b20taWNvbiIpLCEhanVtcE5leHRJY29uKSl9LGp1bXBOZXh0Q29udGVudCk6bnVsbCk7dmFyIGxlZnQ9TWF0aC5tYXgoMSxjdXJyZW50LXBhZ2VCdWZmZXJTaXplKSxyaWdodD1NYXRoLm1pbihjdXJyZW50K3BhZ2VCdWZmZXJTaXplLGFsbFBhZ2VzKTtjdXJyZW50LTE8PXBhZ2VCdWZmZXJTaXplJiYocmlnaHQ9MSsyKnBhZ2VCdWZmZXJTaXplKSxhbGxQYWdlcy1jdXJyZW50PD1wYWdlQnVmZmVyU2l6ZSYmKGxlZnQ9YWxsUGFnZXMtMipwYWdlQnVmZmVyU2l6ZSk7Zm9yKHZhciBfaT1sZWZ0O19pPD1yaWdodDtfaSs9MSlwYWdlckxpc3QucHVzaChyZWFjdC5jcmVhdGVFbGVtZW50KGVzX1BhZ2VyLCgwLGhlbHBlcnNfZXNtX2V4dGVuZHMuWikoe30scGFnZXJQcm9wcyx7a2V5Ol9pLHBhZ2U6X2ksYWN0aXZlOmN1cnJlbnQ9PT1faX0pKSk7aWYoY3VycmVudC0xPj0yKnBhZ2VCdWZmZXJTaXplJiYzIT09Y3VycmVudCYmKHBhZ2VyTGlzdFswXT1yZWFjdC5jbG9uZUVsZW1lbnQocGFnZXJMaXN0WzBdLHtjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKCIiLmNvbmNhdChwcmVmaXhDbHMsIi1pdGVtLWFmdGVyLWp1bXAtcHJldiIpLHBhZ2VyTGlzdFswXS5wcm9wcy5jbGFzc05hbWUpfSkscGFnZXJMaXN0LnVuc2hpZnQoanVtcFByZXYpKSxhbGxQYWdlcy1jdXJyZW50Pj0yKnBhZ2VCdWZmZXJTaXplJiZjdXJyZW50IT09YWxsUGFnZXMtMil7dmFyIGxhc3RPbmU9cGFnZXJMaXN0W3BhZ2VyTGlzdC5sZW5ndGgtMV07cGFnZXJMaXN0W3BhZ2VyTGlzdC5sZW5ndGgtMV09cmVhY3QuY2xvbmVFbGVtZW50KGxhc3RPbmUse2NsYXNzTmFtZTpub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0KCkoIiIuY29uY2F0KHByZWZpeENscywiLWl0ZW0tYmVmb3JlLWp1bXAtbmV4dCIpLGxhc3RPbmUucHJvcHMuY2xhc3NOYW1lKX0pLHBhZ2VyTGlzdC5wdXNoKGp1bXBOZXh0KX0xIT09bGVmdCYmcGFnZXJMaXN0LnVuc2hpZnQocmVhY3QuY3JlYXRlRWxlbWVudChlc19QYWdlciwoMCxoZWxwZXJzX2VzbV9leHRlbmRzLlopKHt9LHBhZ2VyUHJvcHMse2tleToxLHBhZ2U6MX0pKSkscmlnaHQhPT1hbGxQYWdlcyYmcGFnZXJMaXN0LnB1c2gocmVhY3QuY3JlYXRlRWxlbWVudChlc19QYWdlciwoMCxoZWxwZXJzX2VzbV9leHRlbmRzLlopKHt9LHBhZ2VyUHJvcHMse2tleTphbGxQYWdlcyxwYWdlOmFsbFBhZ2VzfSkpKX12YXIgcHJldj0ocHJldkJ1dHRvbj1pdGVtUmVuZGVyKGN1cnJlbnQtMT4wP2N1cnJlbnQtMTowLCJwcmV2IixnZXRJdGVtSWNvbihwcmV2SWNvbiwicHJldiBwYWdlIikpLHJlYWN0LmlzVmFsaWRFbGVtZW50KHByZXZCdXR0b24pP3JlYWN0LmNsb25lRWxlbWVudChwcmV2QnV0dG9uLHtkaXNhYmxlZDohaGFzUHJldn0pOnByZXZCdXR0b24pO2lmKHByZXYpe3ZhciBwcmV2RGlzYWJsZWQ9IWhhc1ByZXZ8fCFhbGxQYWdlcztwcmV2PXJlYWN0LmNyZWF0ZUVsZW1lbnQoImxpIix7dGl0bGU6c2hvd1RpdGxlP2xvY2FsZS5wcmV2X3BhZ2U6bnVsbCxvbkNsaWNrOnByZXZIYW5kbGUsdGFiSW5kZXg6cHJldkRpc2FibGVkP251bGw6MCxvbktleURvd246ZnVuY3Rpb24oZXZlbnQpe3J1bklmRW50ZXIoZXZlbnQscHJldkhhbmRsZSl9LGNsYXNzTmFtZTpub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0KCkoIiIuY29uY2F0KHByZWZpeENscywiLXByZXYiKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKSh7fSwiIi5jb25jYXQocHJlZml4Q2xzLCItZGlzYWJsZWQiKSxwcmV2RGlzYWJsZWQpKSwiYXJpYS1kaXNhYmxlZCI6cHJldkRpc2FibGVkfSxwcmV2KX12YXIgbmV4dD0obmV4dEJ1dHRvbj1pdGVtUmVuZGVyKGN1cnJlbnQrMTxhbGxQYWdlcz9jdXJyZW50KzE6YWxsUGFnZXMsIm5leHQiLGdldEl0ZW1JY29uKG5leHRJY29uLCJuZXh0IHBhZ2UiKSkscmVhY3QuaXNWYWxpZEVsZW1lbnQobmV4dEJ1dHRvbik/cmVhY3QuY2xvbmVFbGVtZW50KG5leHRCdXR0b24se2Rpc2FibGVkOiFoYXNOZXh0fSk6bmV4dEJ1dHRvbik7bmV4dCYmKHNpbXBsZT8obmV4dERpc2FibGVkPSFoYXNOZXh0LG5leHRUYWJJbmRleD1oYXNQcmV2PzA6bnVsbCk6bmV4dFRhYkluZGV4PShuZXh0RGlzYWJsZWQ9IWhhc05leHR8fCFhbGxQYWdlcyk/bnVsbDowLG5leHQ9cmVhY3QuY3JlYXRlRWxlbWVudCgibGkiLHt0aXRsZTpzaG93VGl0bGU/bG9jYWxlLm5leHRfcGFnZTpudWxsLG9uQ2xpY2s6bmV4dEhhbmRsZSx0YWJJbmRleDpuZXh0VGFiSW5kZXgsb25LZXlEb3duOmZ1bmN0aW9uKGV2ZW50KXtydW5JZkVudGVyKGV2ZW50LG5leHRIYW5kbGUpfSxjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKCIiLmNvbmNhdChwcmVmaXhDbHMsIi1uZXh0IiksKDAsZGVmaW5lUHJvcGVydHkuWikoe30sIiIuY29uY2F0KHByZWZpeENscywiLWRpc2FibGVkIiksbmV4dERpc2FibGVkKSksImFyaWEtZGlzYWJsZWQiOm5leHREaXNhYmxlZH0sbmV4dCkpO3ZhciBjbHM9bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKHByZWZpeENscyxjbGFzc05hbWUsKDAsZGVmaW5lUHJvcGVydHkuWikoKDAsZGVmaW5lUHJvcGVydHkuWikoKDAsZGVmaW5lUHJvcGVydHkuWikoKDAsZGVmaW5lUHJvcGVydHkuWikoKDAsZGVmaW5lUHJvcGVydHkuWikoe30sIiIuY29uY2F0KHByZWZpeENscywiLXN0YXJ0IiksInN0YXJ0Ij09PWFsaWduKSwiIi5jb25jYXQocHJlZml4Q2xzLCItY2VudGVyIiksImNlbnRlciI9PT1hbGlnbiksIiIuY29uY2F0KHByZWZpeENscywiLWVuZCIpLCJlbmQiPT09YWxpZ24pLCIiLmNvbmNhdChwcmVmaXhDbHMsIi1zaW1wbGUiKSxzaW1wbGUpLCIiLmNvbmNhdChwcmVmaXhDbHMsIi1kaXNhYmxlZCIpLGRpc2FibGVkKSk7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoInVsIiwoMCxoZWxwZXJzX2VzbV9leHRlbmRzLlopKHtjbGFzc05hbWU6Y2xzLHN0eWxlOnN0eWxlLHJlZjpwYWdpbmF0aW9uUmVmfSxkYXRhT3JBcmlhQXR0cmlidXRlUHJvcHMpLHRvdGFsVGV4dCxwcmV2LHNpbXBsZT9zaW1wbGVQYWdlcjpwYWdlckxpc3QsbmV4dCxyZWFjdC5jcmVhdGVFbGVtZW50KGVzX09wdGlvbnMse2xvY2FsZTpsb2NhbGUscm9vdFByZWZpeENsczpwcmVmaXhDbHMsZGlzYWJsZWQ6ZGlzYWJsZWQsc2VsZWN0UHJlZml4Q2xzOnZvaWQgMD09PV9wcm9wcyRzZWxlY3RQcmVmaXhDbD8icmMtc2VsZWN0IjpfcHJvcHMkc2VsZWN0UHJlZml4Q2wsY2hhbmdlU2l6ZTpmdW5jdGlvbihzaXplKXt2YXIgbmV3Q3VycmVudD1jYWxjdWxhdGVQYWdlKHNpemUscGFnZVNpemUsdG90YWwpLG5leHRDdXJyZW50PWN1cnJlbnQ+bmV3Q3VycmVudCYmMCE9PW5ld0N1cnJlbnQ/bmV3Q3VycmVudDpjdXJyZW50O3NldFBhZ2VTaXplKHNpemUpLHNldEludGVybmFsSW5wdXRWYWwobmV4dEN1cnJlbnQpLG51bGw9PW9uU2hvd1NpemVDaGFuZ2V8fG9uU2hvd1NpemVDaGFuZ2UoY3VycmVudCxzaXplKSxzZXRDdXJyZW50KG5leHRDdXJyZW50KSxudWxsPT1vbkNoYW5nZXx8b25DaGFuZ2UobmV4dEN1cnJlbnQsc2l6ZSl9LHBhZ2VTaXplOnBhZ2VTaXplLHBhZ2VTaXplT3B0aW9uczpwYWdlU2l6ZU9wdGlvbnMscXVpY2tHbzp0b3RhbD5wYWdlU2l6ZSYmc2hvd1F1aWNrSnVtcGVyP2hhbmRsZUNoYW5nZTpudWxsLGdvQnV0dG9uOmdvdG9CdXR0b24sc2hvd1NpemVDaGFuZ2VyOnZvaWQgMD09PV9wcm9wcyRzaG93U2l6ZUNoYW5nZT90b3RhbD4odm9pZCAwPT09X3Byb3BzJHRvdGFsQm91bmRhcnlTPzUwOl9wcm9wcyR0b3RhbEJvdW5kYXJ5Uyk6X3Byb3BzJHNob3dTaXplQ2hhbmdlLHNpemVDaGFuZ2VyUmVuZGVyOnNpemVDaGFuZ2VyUmVuZGVyfSkpfSxlbl9VUz1fX3dlYnBhY2tfcmVxdWlyZV9fKDYyOTA2KSxjb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oNTMxMjQpLHVzZVNpemU9X193ZWJwYWNrX3JlcXVpcmVfXyg5ODY3NSksdXNlQnJlYWtwb2ludD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY4ODIxKSx1c2VMb2NhbGU9X193ZWJwYWNrX3JlcXVpcmVfXygxMDExMCksZXNfc2VsZWN0PV9fd2VicGFja19yZXF1aXJlX18oMzUxMjIpLHVzZVRva2VuPV9fd2VicGFja19yZXF1aXJlX18oMjU5NzYpLGVzPV9fd2VicGFja19yZXF1aXJlX18oNDQ4OTkpLHN0eWxlPV9fd2VicGFja19yZXF1aXJlX18oNDc2NzMpLHN0eWxlX3Rva2VuPV9fd2VicGFja19yZXF1aXJlX18oMjAzNTMpLHZhcmlhbnRzPV9fd2VicGFja19yZXF1aXJlX18oOTM5MDApLGVzX3N0eWxlPV9fd2VicGFja19yZXF1aXJlX18oMTQ3NDcpLGNzc2luanNfdXRpbHNfZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0MjU1OSksZ2VuU3R5bGVVdGlscz1fX3dlYnBhY2tfcmVxdWlyZV9fKDgzNTU5KTtsZXQgZ2VuUGFnaW5hdGlvbkRpc2FibGVkU3R5bGU9dG9rZW49PntsZXR7Y29tcG9uZW50Q2xzfT10b2tlbjtyZXR1cm57W2Ake2NvbXBvbmVudENsc30tZGlzYWJsZWRgXTp7IiYsICY6aG92ZXIiOntjdXJzb3I6Im5vdC1hbGxvd2VkIixbYCR7Y29tcG9uZW50Q2xzfS1pdGVtLWxpbmtgXTp7Y29sb3I6dG9rZW4uY29sb3JUZXh0RGlzYWJsZWQsY3Vyc29yOiJub3QtYWxsb3dlZCJ9fSwiJjpmb2N1cy12aXNpYmxlIjp7Y3Vyc29yOiJub3QtYWxsb3dlZCIsW2Ake2NvbXBvbmVudENsc30taXRlbS1saW5rYF06e2NvbG9yOnRva2VuLmNvbG9yVGV4dERpc2FibGVkLGN1cnNvcjoibm90LWFsbG93ZWQifX19LFtgJiR7Y29tcG9uZW50Q2xzfS1kaXNhYmxlZGBdOntjdXJzb3I6Im5vdC1hbGxvd2VkIixbYCR7Y29tcG9uZW50Q2xzfS1pdGVtYF06e2N1cnNvcjoibm90LWFsbG93ZWQiLGJhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQiLCImOmhvdmVyLCAmOmFjdGl2ZSI6e2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQifSxhOntjb2xvcjp0b2tlbi5jb2xvclRleHREaXNhYmxlZCxiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50Iixib3JkZXI6Im5vbmUiLGN1cnNvcjoibm90LWFsbG93ZWQifSwiJi1hY3RpdmUiOntib3JkZXJDb2xvcjp0b2tlbi5jb2xvckJvcmRlcixiYWNrZ3JvdW5kQ29sb3I6dG9rZW4uaXRlbUFjdGl2ZUJnRGlzYWJsZWQsIiY6aG92ZXIsICY6YWN0aXZlIjp7YmFja2dyb3VuZENvbG9yOnRva2VuLml0ZW1BY3RpdmVCZ0Rpc2FibGVkfSxhOntjb2xvcjp0b2tlbi5pdGVtQWN0aXZlQ29sb3JEaXNhYmxlZH19fSxbYCR7Y29tcG9uZW50Q2xzfS1pdGVtLWxpbmtgXTp7Y29sb3I6dG9rZW4uY29sb3JUZXh0RGlzYWJsZWQsY3Vyc29yOiJub3QtYWxsb3dlZCIsIiY6aG92ZXIsICY6YWN0aXZlIjp7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCJ9LFtgJHtjb21wb25lbnRDbHN9LXNpbXBsZSZgXTp7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsIiY6aG92ZXIsICY6YWN0aXZlIjp7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCJ9fX0sW2Ake2NvbXBvbmVudENsc30tc2ltcGxlLXBhZ2VyYF06e2NvbG9yOnRva2VuLmNvbG9yVGV4dERpc2FibGVkfSxbYCR7Y29tcG9uZW50Q2xzfS1qdW1wLXByZXYsICR7Y29tcG9uZW50Q2xzfS1qdW1wLW5leHRgXTp7W2Ake2NvbXBvbmVudENsc30taXRlbS1saW5rLWljb25gXTp7b3BhY2l0eTowfSxbYCR7Y29tcG9uZW50Q2xzfS1pdGVtLWVsbGlwc2lzYF06e29wYWNpdHk6MX19fSxbYCYke2NvbXBvbmVudENsc30tc2ltcGxlYF06e1tgJHtjb21wb25lbnRDbHN9LXByZXYsICR7Y29tcG9uZW50Q2xzfS1uZXh0YF06e1tgJiR7Y29tcG9uZW50Q2xzfS1kaXNhYmxlZCAke2NvbXBvbmVudENsc30taXRlbS1saW5rYF06eyImOmhvdmVyLCAmOmFjdGl2ZSI6e2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQifX19fX19LGdlblBhZ2luYXRpb25NaW5pU3R5bGU9dG9rZW49PntsZXR7Y29tcG9uZW50Q2xzfT10b2tlbjtyZXR1cm57W2AmJHtjb21wb25lbnRDbHN9LW1pbmkgJHtjb21wb25lbnRDbHN9LXRvdGFsLXRleHQsICYke2NvbXBvbmVudENsc30tbWluaSAke2NvbXBvbmVudENsc30tc2ltcGxlLXBhZ2VyYF06e2hlaWdodDp0b2tlbi5pdGVtU2l6ZVNNLGxpbmVIZWlnaHQ6KDAsZXMuYmYpKHRva2VuLml0ZW1TaXplU00pfSxbYCYke2NvbXBvbmVudENsc30tbWluaSAke2NvbXBvbmVudENsc30taXRlbWBdOnttaW5XaWR0aDp0b2tlbi5pdGVtU2l6ZVNNLGhlaWdodDp0b2tlbi5pdGVtU2l6ZVNNLG1hcmdpbjowLGxpbmVIZWlnaHQ6KDAsZXMuYmYpKHRva2VuLmNhbGModG9rZW4uaXRlbVNpemVTTSkuc3ViKDIpLmVxdWFsKCkpfSxbYCYke2NvbXBvbmVudENsc30tbWluaSAke2NvbXBvbmVudENsc30tcHJldiwgJiR7Y29tcG9uZW50Q2xzfS1taW5pICR7Y29tcG9uZW50Q2xzfS1uZXh0YF06e21pbldpZHRoOnRva2VuLml0ZW1TaXplU00saGVpZ2h0OnRva2VuLml0ZW1TaXplU00sbWFyZ2luOjAsbGluZUhlaWdodDooMCxlcy5iZikodG9rZW4uaXRlbVNpemVTTSl9LFtgJiR7Y29tcG9uZW50Q2xzfS1taW5pOm5vdCgke2NvbXBvbmVudENsc30tZGlzYWJsZWQpYF06e1tgJHtjb21wb25lbnRDbHN9LXByZXYsICR7Y29tcG9uZW50Q2xzfS1uZXh0YF06e1tgJjpob3ZlciAke2NvbXBvbmVudENsc30taXRlbS1saW5rYF06e2JhY2tncm91bmRDb2xvcjp0b2tlbi5jb2xvckJnVGV4dEhvdmVyfSxbYCY6YWN0aXZlICR7Y29tcG9uZW50Q2xzfS1pdGVtLWxpbmtgXTp7YmFja2dyb3VuZENvbG9yOnRva2VuLmNvbG9yQmdUZXh0QWN0aXZlfSxbYCYke2NvbXBvbmVudENsc30tZGlzYWJsZWQ6aG92ZXIgJHtjb21wb25lbnRDbHN9LWl0ZW0tbGlua2BdOntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50In19fSxbYAogICAgJiR7Y29tcG9uZW50Q2xzfS1taW5pICR7Y29tcG9uZW50Q2xzfS1wcmV2ICR7Y29tcG9uZW50Q2xzfS1pdGVtLWxpbmssCiAgICAmJHtjb21wb25lbnRDbHN9LW1pbmkgJHtjb21wb25lbnRDbHN9LW5leHQgJHtjb21wb25lbnRDbHN9LWl0ZW0tbGluawogICAgYF06e2JhY2tncm91bmRDb2xvcjoidHJhbnNwYXJlbnQiLGJvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsIiY6OmFmdGVyIjp7aGVpZ2h0OnRva2VuLml0ZW1TaXplU00sbGluZUhlaWdodDooMCxlcy5iZikodG9rZW4uaXRlbVNpemVTTSl9fSxbYCYke2NvbXBvbmVudENsc30tbWluaSAke2NvbXBvbmVudENsc30tanVtcC1wcmV2LCAmJHtjb21wb25lbnRDbHN9LW1pbmkgJHtjb21wb25lbnRDbHN9LWp1bXAtbmV4dGBdOntoZWlnaHQ6dG9rZW4uaXRlbVNpemVTTSxtYXJnaW5JbmxpbmVFbmQ6MCxsaW5lSGVpZ2h0OigwLGVzLmJmKSh0b2tlbi5pdGVtU2l6ZVNNKX0sW2AmJHtjb21wb25lbnRDbHN9LW1pbmkgJHtjb21wb25lbnRDbHN9LW9wdGlvbnNgXTp7bWFyZ2luSW5saW5lU3RhcnQ6dG9rZW4ucGFnaW5hdGlvbk1pbmlPcHRpb25zTWFyZ2luSW5saW5lU3RhcnQsIiYtc2l6ZS1jaGFuZ2VyIjp7dG9wOnRva2VuLm1pbmlPcHRpb25zU2l6ZUNoYW5nZXJUb3B9LCImLXF1aWNrLWp1bXBlciI6e2hlaWdodDp0b2tlbi5pdGVtU2l6ZVNNLGxpbmVIZWlnaHQ6KDAsZXMuYmYpKHRva2VuLml0ZW1TaXplU00pLGlucHV0Ok9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxzdHlsZS54MCkodG9rZW4pKSx7d2lkdGg6dG9rZW4ucGFnaW5hdGlvbk1pbmlRdWlja0p1bXBlcklucHV0V2lkdGgsaGVpZ2h0OnRva2VuLmNvbnRyb2xIZWlnaHRTTX0pfX19fSxnZW5QYWdpbmF0aW9uU2ltcGxlU3R5bGU9dG9rZW49PntsZXR7Y29tcG9uZW50Q2xzfT10b2tlbjtyZXR1cm57W2AKICAgICYke2NvbXBvbmVudENsc30tc2ltcGxlICR7Y29tcG9uZW50Q2xzfS1wcmV2LAogICAgJiR7Y29tcG9uZW50Q2xzfS1zaW1wbGUgJHtjb21wb25lbnRDbHN9LW5leHQKICAgIGBdOntoZWlnaHQ6dG9rZW4uaXRlbVNpemVTTSxsaW5lSGVpZ2h0OigwLGVzLmJmKSh0b2tlbi5pdGVtU2l6ZVNNKSx2ZXJ0aWNhbEFsaWduOiJ0b3AiLFtgJHtjb21wb25lbnRDbHN9LWl0ZW0tbGlua2BdOntoZWlnaHQ6dG9rZW4uaXRlbVNpemVTTSxiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50Iixib3JkZXI6MCwiJjpob3ZlciI6e2JhY2tncm91bmRDb2xvcjp0b2tlbi5jb2xvckJnVGV4dEhvdmVyfSwiJjphY3RpdmUiOntiYWNrZ3JvdW5kQ29sb3I6dG9rZW4uY29sb3JCZ1RleHRBY3RpdmV9LCImOjphZnRlciI6e2hlaWdodDp0b2tlbi5pdGVtU2l6ZVNNLGxpbmVIZWlnaHQ6KDAsZXMuYmYpKHRva2VuLml0ZW1TaXplU00pfX19LFtgJiR7Y29tcG9uZW50Q2xzfS1zaW1wbGUgJHtjb21wb25lbnRDbHN9LXNpbXBsZS1wYWdlcmBdOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLGhlaWdodDp0b2tlbi5pdGVtU2l6ZVNNLG1hcmdpbklubGluZUVuZDp0b2tlbi5tYXJnaW5YUyxpbnB1dDp7Ym94U2l6aW5nOiJib3JkZXItYm94IixoZWlnaHQ6IjEwMCUiLHBhZGRpbmc6YDAgJHsoMCxlcy5iZikodG9rZW4ucGFnaW5hdGlvbkl0ZW1QYWRkaW5nSW5saW5lKX1gLHRleHRBbGlnbjoiY2VudGVyIixiYWNrZ3JvdW5kQ29sb3I6dG9rZW4uaXRlbUlucHV0QmcsYm9yZGVyOmAkeygwLGVzLmJmKSh0b2tlbi5saW5lV2lkdGgpfSAke3Rva2VuLmxpbmVUeXBlfSAke3Rva2VuLmNvbG9yQm9yZGVyfWAsYm9yZGVyUmFkaXVzOnRva2VuLmJvcmRlclJhZGl1cyxvdXRsaW5lOiJub25lIix0cmFuc2l0aW9uOmBib3JkZXItY29sb3IgJHt0b2tlbi5tb3Rpb25EdXJhdGlvbk1pZH1gLGNvbG9yOiJpbmhlcml0IiwiJjpob3ZlciI6e2JvcmRlckNvbG9yOnRva2VuLmNvbG9yUHJpbWFyeX0sIiY6Zm9jdXMiOntib3JkZXJDb2xvcjp0b2tlbi5jb2xvclByaW1hcnlIb3Zlcixib3hTaGFkb3c6YCR7KDAsZXMuYmYpKHRva2VuLmlucHV0T3V0bGluZU9mZnNldCl9IDAgJHsoMCxlcy5iZikodG9rZW4uY29udHJvbE91dGxpbmVXaWR0aCl9ICR7dG9rZW4uY29udHJvbE91dGxpbmV9YH0sIiZbZGlzYWJsZWRdIjp7Y29sb3I6dG9rZW4uY29sb3JUZXh0RGlzYWJsZWQsYmFja2dyb3VuZENvbG9yOnRva2VuLmNvbG9yQmdDb250YWluZXJEaXNhYmxlZCxib3JkZXJDb2xvcjp0b2tlbi5jb2xvckJvcmRlcixjdXJzb3I6Im5vdC1hbGxvd2VkIn19fX19LGdlblBhZ2luYXRpb25KdW1wU3R5bGU9dG9rZW49PntsZXR7Y29tcG9uZW50Q2xzfT10b2tlbjtyZXR1cm57W2Ake2NvbXBvbmVudENsc30tanVtcC1wcmV2LCAke2NvbXBvbmVudENsc30tanVtcC1uZXh0YF06e291dGxpbmU6MCxbYCR7Y29tcG9uZW50Q2xzfS1pdGVtLWNvbnRhaW5lcmBdOntwb3NpdGlvbjoicmVsYXRpdmUiLFtgJHtjb21wb25lbnRDbHN9LWl0ZW0tbGluay1pY29uYF06e2NvbG9yOnRva2VuLmNvbG9yUHJpbWFyeSxmb250U2l6ZTp0b2tlbi5mb250U2l6ZVNNLG9wYWNpdHk6MCx0cmFuc2l0aW9uOmBhbGwgJHt0b2tlbi5tb3Rpb25EdXJhdGlvbk1pZH1gLCImLXN2ZyI6e3RvcDowLGluc2V0SW5saW5lRW5kOjAsYm90dG9tOjAsaW5zZXRJbmxpbmVTdGFydDowLG1hcmdpbjoiYXV0byJ9fSxbYCR7Y29tcG9uZW50Q2xzfS1pdGVtLWVsbGlwc2lzYF06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjAsaW5zZXRJbmxpbmVFbmQ6MCxib3R0b206MCxpbnNldElubGluZVN0YXJ0OjAsZGlzcGxheToiYmxvY2siLG1hcmdpbjoiYXV0byIsY29sb3I6dG9rZW4uY29sb3JUZXh0RGlzYWJsZWQsbGV0dGVyU3BhY2luZzp0b2tlbi5wYWdpbmF0aW9uRWxsaXBzaXNMZXR0ZXJTcGFjaW5nLHRleHRBbGlnbjoiY2VudGVyIix0ZXh0SW5kZW50OnRva2VuLnBhZ2luYXRpb25FbGxpcHNpc1RleHRJbmRlbnQsb3BhY2l0eToxLHRyYW5zaXRpb246YGFsbCAke3Rva2VuLm1vdGlvbkR1cmF0aW9uTWlkfWB9fSwiJjpob3ZlciI6e1tgJHtjb21wb25lbnRDbHN9LWl0ZW0tbGluay1pY29uYF06e29wYWNpdHk6MX0sW2Ake2NvbXBvbmVudENsc30taXRlbS1lbGxpcHNpc2BdOntvcGFjaXR5OjB9fX0sW2AKICAgICR7Y29tcG9uZW50Q2xzfS1wcmV2LAogICAgJHtjb21wb25lbnRDbHN9LWp1bXAtcHJldiwKICAgICR7Y29tcG9uZW50Q2xzfS1qdW1wLW5leHQKICAgIGBdOnttYXJnaW5JbmxpbmVFbmQ6dG9rZW4ubWFyZ2luWFN9LFtgCiAgICAke2NvbXBvbmVudENsc30tcHJldiwKICAgICR7Y29tcG9uZW50Q2xzfS1uZXh0LAogICAgJHtjb21wb25lbnRDbHN9LWp1bXAtcHJldiwKICAgICR7Y29tcG9uZW50Q2xzfS1qdW1wLW5leHQKICAgIGBdOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLG1pbldpZHRoOnRva2VuLml0ZW1TaXplLGhlaWdodDp0b2tlbi5pdGVtU2l6ZSxjb2xvcjp0b2tlbi5jb2xvclRleHQsZm9udEZhbWlseTp0b2tlbi5mb250RmFtaWx5LGxpbmVIZWlnaHQ6KDAsZXMuYmYpKHRva2VuLml0ZW1TaXplKSx0ZXh0QWxpZ246ImNlbnRlciIsdmVydGljYWxBbGlnbjoibWlkZGxlIixsaXN0U3R5bGU6Im5vbmUiLGJvcmRlclJhZGl1czp0b2tlbi5ib3JkZXJSYWRpdXMsY3Vyc29yOiJwb2ludGVyIix0cmFuc2l0aW9uOmBhbGwgJHt0b2tlbi5tb3Rpb25EdXJhdGlvbk1pZH1gfSxbYCR7Y29tcG9uZW50Q2xzfS1wcmV2LCAke2NvbXBvbmVudENsc30tbmV4dGBdOntvdXRsaW5lOjAsYnV0dG9uOntjb2xvcjp0b2tlbi5jb2xvclRleHQsY3Vyc29yOiJwb2ludGVyIix1c2VyU2VsZWN0OiJub25lIn0sW2Ake2NvbXBvbmVudENsc30taXRlbS1saW5rYF06e2Rpc3BsYXk6ImJsb2NrIix3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixwYWRkaW5nOjAsZm9udFNpemU6dG9rZW4uZm9udFNpemVTTSx0ZXh0QWxpZ246ImNlbnRlciIsYmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyOmAkeygwLGVzLmJmKSh0b2tlbi5saW5lV2lkdGgpfSAke3Rva2VuLmxpbmVUeXBlfSB0cmFuc3BhcmVudGAsYm9yZGVyUmFkaXVzOnRva2VuLmJvcmRlclJhZGl1cyxvdXRsaW5lOiJub25lIix0cmFuc2l0aW9uOmBhbGwgJHt0b2tlbi5tb3Rpb25EdXJhdGlvbk1pZH1gfSxbYCY6aG92ZXIgJHtjb21wb25lbnRDbHN9LWl0ZW0tbGlua2BdOntiYWNrZ3JvdW5kQ29sb3I6dG9rZW4uY29sb3JCZ1RleHRIb3Zlcn0sW2AmOmFjdGl2ZSAke2NvbXBvbmVudENsc30taXRlbS1saW5rYF06e2JhY2tncm91bmRDb2xvcjp0b2tlbi5jb2xvckJnVGV4dEFjdGl2ZX0sW2AmJHtjb21wb25lbnRDbHN9LWRpc2FibGVkOmhvdmVyYF06e1tgJHtjb21wb25lbnRDbHN9LWl0ZW0tbGlua2BdOntiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50In19fSxbYCR7Y29tcG9uZW50Q2xzfS1zbGFzaGBdOnttYXJnaW5JbmxpbmVFbmQ6dG9rZW4ucGFnaW5hdGlvblNsYXNoTWFyZ2luSW5saW5lRW5kLG1hcmdpbklubGluZVN0YXJ0OnRva2VuLnBhZ2luYXRpb25TbGFzaE1hcmdpbklubGluZVN0YXJ0fSxbYCR7Y29tcG9uZW50Q2xzfS1vcHRpb25zYF06e2Rpc3BsYXk6ImlubGluZS1ibG9jayIsbWFyZ2luSW5saW5lU3RhcnQ6dG9rZW4ubWFyZ2luLHZlcnRpY2FsQWxpZ246Im1pZGRsZSIsIiYtc2l6ZS1jaGFuZ2VyIjp7ZGlzcGxheToiaW5saW5lLWJsb2NrIix3aWR0aDoiYXV0byJ9LCImLXF1aWNrLWp1bXBlciI6e2Rpc3BsYXk6ImlubGluZS1ibG9jayIsaGVpZ2h0OnRva2VuLmNvbnRyb2xIZWlnaHQsbWFyZ2luSW5saW5lU3RhcnQ6dG9rZW4ubWFyZ2luWFMsbGluZUhlaWdodDooMCxlcy5iZikodG9rZW4uY29udHJvbEhlaWdodCksdmVydGljYWxBbGlnbjoidG9wIixpbnB1dDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxzdHlsZS5paykodG9rZW4pKSwoMCx2YXJpYW50cy4kVSkodG9rZW4se2JvcmRlckNvbG9yOnRva2VuLmNvbG9yQm9yZGVyLGhvdmVyQm9yZGVyQ29sb3I6dG9rZW4uY29sb3JQcmltYXJ5SG92ZXIsYWN0aXZlQm9yZGVyQ29sb3I6dG9rZW4uY29sb3JQcmltYXJ5LGFjdGl2ZVNoYWRvdzp0b2tlbi5hY3RpdmVTaGFkb3d9KSkseyImW2Rpc2FibGVkXSI6T2JqZWN0LmFzc2lnbih7fSwoMCx2YXJpYW50cy5YeSkodG9rZW4pKSx3aWR0aDp0b2tlbi5jYWxjKHRva2VuLmNvbnRyb2xIZWlnaHRMRykubXVsKDEuMjUpLmVxdWFsKCksaGVpZ2h0OnRva2VuLmNvbnRyb2xIZWlnaHQsYm94U2l6aW5nOiJib3JkZXItYm94IixtYXJnaW46MCxtYXJnaW5JbmxpbmVTdGFydDp0b2tlbi5tYXJnaW5YUyxtYXJnaW5JbmxpbmVFbmQ6dG9rZW4ubWFyZ2luWFN9KX19fX0sZ2VuUGFnaW5hdGlvbkl0ZW1TdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHN9PXRva2VuO3JldHVybntbYCR7Y29tcG9uZW50Q2xzfS1pdGVtYF06e2Rpc3BsYXk6ImlubGluZS1ibG9jayIsbWluV2lkdGg6dG9rZW4uaXRlbVNpemUsaGVpZ2h0OnRva2VuLml0ZW1TaXplLG1hcmdpbklubGluZUVuZDp0b2tlbi5tYXJnaW5YUyxmb250RmFtaWx5OnRva2VuLmZvbnRGYW1pbHksbGluZUhlaWdodDooMCxlcy5iZikodG9rZW4uY2FsYyh0b2tlbi5pdGVtU2l6ZSkuc3ViKDIpLmVxdWFsKCkpLHRleHRBbGlnbjoiY2VudGVyIix2ZXJ0aWNhbEFsaWduOiJtaWRkbGUiLGxpc3RTdHlsZToibm9uZSIsYmFja2dyb3VuZENvbG9yOnRva2VuLml0ZW1CZyxib3JkZXI6YCR7KDAsZXMuYmYpKHRva2VuLmxpbmVXaWR0aCl9ICR7dG9rZW4ubGluZVR5cGV9IHRyYW5zcGFyZW50YCxib3JkZXJSYWRpdXM6dG9rZW4uYm9yZGVyUmFkaXVzLG91dGxpbmU6MCxjdXJzb3I6InBvaW50ZXIiLHVzZXJTZWxlY3Q6Im5vbmUiLGE6e2Rpc3BsYXk6ImJsb2NrIixwYWRkaW5nOmAwICR7KDAsZXMuYmYpKHRva2VuLnBhZ2luYXRpb25JdGVtUGFkZGluZ0lubGluZSl9YCxjb2xvcjp0b2tlbi5jb2xvclRleHQsIiY6aG92ZXIiOnt0ZXh0RGVjb3JhdGlvbjoibm9uZSJ9fSxbYCY6bm90KCR7Y29tcG9uZW50Q2xzfS1pdGVtLWFjdGl2ZSlgXTp7IiY6aG92ZXIiOnt0cmFuc2l0aW9uOmBhbGwgJHt0b2tlbi5tb3Rpb25EdXJhdGlvbk1pZH1gLGJhY2tncm91bmRDb2xvcjp0b2tlbi5jb2xvckJnVGV4dEhvdmVyfSwiJjphY3RpdmUiOntiYWNrZ3JvdW5kQ29sb3I6dG9rZW4uY29sb3JCZ1RleHRBY3RpdmV9fSwiJi1hY3RpdmUiOntmb250V2VpZ2h0OnRva2VuLmZvbnRXZWlnaHRTdHJvbmcsYmFja2dyb3VuZENvbG9yOnRva2VuLml0ZW1BY3RpdmVCZyxib3JkZXJDb2xvcjp0b2tlbi5jb2xvclByaW1hcnksYTp7Y29sb3I6dG9rZW4uY29sb3JQcmltYXJ5fSwiJjpob3ZlciI6e2JvcmRlckNvbG9yOnRva2VuLmNvbG9yUHJpbWFyeUhvdmVyfSwiJjpob3ZlciBhIjp7Y29sb3I6dG9rZW4uY29sb3JQcmltYXJ5SG92ZXJ9fX19fSxnZW5QYWdpbmF0aW9uU3R5bGU9dG9rZW49PntsZXR7Y29tcG9uZW50Q2xzfT10b2tlbjtyZXR1cm57W2NvbXBvbmVudENsc106T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLGVzX3N0eWxlLldmKSh0b2tlbikpLHtkaXNwbGF5OiJmbGV4IiwiJi1zdGFydCI6e2p1c3RpZnlDb250ZW50OiJzdGFydCJ9LCImLWNlbnRlciI6e2p1c3RpZnlDb250ZW50OiJjZW50ZXIifSwiJi1lbmQiOntqdXN0aWZ5Q29udGVudDoiZW5kIn0sInVsLCBvbCI6e21hcmdpbjowLHBhZGRpbmc6MCxsaXN0U3R5bGU6Im5vbmUifSwiJjo6YWZ0ZXIiOntkaXNwbGF5OiJibG9jayIsY2xlYXI6ImJvdGgiLGhlaWdodDowLG92ZXJmbG93OiJoaWRkZW4iLHZpc2liaWxpdHk6ImhpZGRlbiIsY29udGVudDonIiInfSxbYCR7Y29tcG9uZW50Q2xzfS10b3RhbC10ZXh0YF06e2Rpc3BsYXk6ImlubGluZS1ibG9jayIsaGVpZ2h0OnRva2VuLml0ZW1TaXplLG1hcmdpbklubGluZUVuZDp0b2tlbi5tYXJnaW5YUyxsaW5lSGVpZ2h0OigwLGVzLmJmKSh0b2tlbi5jYWxjKHRva2VuLml0ZW1TaXplKS5zdWIoMikuZXF1YWwoKSksdmVydGljYWxBbGlnbjoibWlkZGxlIn19KSxnZW5QYWdpbmF0aW9uSXRlbVN0eWxlKHRva2VuKSksZ2VuUGFnaW5hdGlvbkp1bXBTdHlsZSh0b2tlbikpLGdlblBhZ2luYXRpb25TaW1wbGVTdHlsZSh0b2tlbikpLGdlblBhZ2luYXRpb25NaW5pU3R5bGUodG9rZW4pKSxnZW5QYWdpbmF0aW9uRGlzYWJsZWRTdHlsZSh0b2tlbikpLHtbYEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHt0b2tlbi5zY3JlZW5MR31weClgXTp7W2Ake2NvbXBvbmVudENsc30taXRlbWBdOnsiJi1hZnRlci1qdW1wLXByZXYsICYtYmVmb3JlLWp1bXAtbmV4dCI6e2Rpc3BsYXk6Im5vbmUifX19LFtgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke3Rva2VuLnNjcmVlblNNfXB4KWBdOntbYCR7Y29tcG9uZW50Q2xzfS1vcHRpb25zYF06e2Rpc3BsYXk6Im5vbmUifX19KSxbYCYke3Rva2VuLmNvbXBvbmVudENsc30tcnRsYF06e2RpcmVjdGlvbjoicnRsIn19fSxnZW5QYWdpbmF0aW9uRm9jdXNTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHN9PXRva2VuO3JldHVybntbYCR7Y29tcG9uZW50Q2xzfTpub3QoJHtjb21wb25lbnRDbHN9LWRpc2FibGVkKWBdOntbYCR7Y29tcG9uZW50Q2xzfS1pdGVtYF06T2JqZWN0LmFzc2lnbih7fSwoMCxlc19zdHlsZS5ReSkodG9rZW4pKSxbYCR7Y29tcG9uZW50Q2xzfS1qdW1wLXByZXYsICR7Y29tcG9uZW50Q2xzfS1qdW1wLW5leHRgXTp7IiY6Zm9jdXMtdmlzaWJsZSI6T2JqZWN0LmFzc2lnbih7W2Ake2NvbXBvbmVudENsc30taXRlbS1saW5rLWljb25gXTp7b3BhY2l0eToxfSxbYCR7Y29tcG9uZW50Q2xzfS1pdGVtLWVsbGlwc2lzYF06e29wYWNpdHk6MH19LCgwLGVzX3N0eWxlLm9OKSh0b2tlbikpfSxbYCR7Y29tcG9uZW50Q2xzfS1wcmV2LCAke2NvbXBvbmVudENsc30tbmV4dGBdOntbYCY6Zm9jdXMtdmlzaWJsZSAke2NvbXBvbmVudENsc30taXRlbS1saW5rYF06T2JqZWN0LmFzc2lnbih7fSwoMCxlc19zdHlsZS5vTikodG9rZW4pKX19fX0scHJlcGFyZUNvbXBvbmVudFRva2VuPXRva2VuPT5PYmplY3QuYXNzaWduKHtpdGVtQmc6dG9rZW4uY29sb3JCZ0NvbnRhaW5lcixpdGVtU2l6ZTp0b2tlbi5jb250cm9sSGVpZ2h0LGl0ZW1TaXplU006dG9rZW4uY29udHJvbEhlaWdodFNNLGl0ZW1BY3RpdmVCZzp0b2tlbi5jb2xvckJnQ29udGFpbmVyLGl0ZW1MaW5rQmc6dG9rZW4uY29sb3JCZ0NvbnRhaW5lcixpdGVtQWN0aXZlQ29sb3JEaXNhYmxlZDp0b2tlbi5jb2xvclRleHREaXNhYmxlZCxpdGVtQWN0aXZlQmdEaXNhYmxlZDp0b2tlbi5jb250cm9sSXRlbUJnQWN0aXZlRGlzYWJsZWQsaXRlbUlucHV0Qmc6dG9rZW4uY29sb3JCZ0NvbnRhaW5lcixtaW5pT3B0aW9uc1NpemVDaGFuZ2VyVG9wOjB9LCgwLHN0eWxlX3Rva2VuLlQpKHRva2VuKSkscHJlcGFyZVRva2VuPXRva2VuPT4oMCxjc3NpbmpzX3V0aWxzX2VzLklYKSh0b2tlbix7aW5wdXRPdXRsaW5lT2Zmc2V0OjAscGFnaW5hdGlvbk1pbmlPcHRpb25zTWFyZ2luSW5saW5lU3RhcnQ6dG9rZW4uY2FsYyh0b2tlbi5tYXJnaW5YWFMpLmRpdigyKS5lcXVhbCgpLHBhZ2luYXRpb25NaW5pUXVpY2tKdW1wZXJJbnB1dFdpZHRoOnRva2VuLmNhbGModG9rZW4uY29udHJvbEhlaWdodExHKS5tdWwoMS4xKS5lcXVhbCgpLHBhZ2luYXRpb25JdGVtUGFkZGluZ0lubGluZTp0b2tlbi5jYWxjKHRva2VuLm1hcmdpblhYUykubXVsKDEuNSkuZXF1YWwoKSxwYWdpbmF0aW9uRWxsaXBzaXNMZXR0ZXJTcGFjaW5nOnRva2VuLmNhbGModG9rZW4ubWFyZ2luWFhTKS5kaXYoMikuZXF1YWwoKSxwYWdpbmF0aW9uU2xhc2hNYXJnaW5JbmxpbmVTdGFydDp0b2tlbi5tYXJnaW5TTSxwYWdpbmF0aW9uU2xhc2hNYXJnaW5JbmxpbmVFbmQ6dG9rZW4ubWFyZ2luU00scGFnaW5hdGlvbkVsbGlwc2lzVGV4dEluZGVudDoiMC4xM2VtIn0sKDAsc3R5bGVfdG9rZW4uZSkodG9rZW4pKTt2YXIgcGFnaW5hdGlvbl9zdHlsZT0oMCxnZW5TdHlsZVV0aWxzLkkkKSgiUGFnaW5hdGlvbiIsdG9rZW49PntsZXQgcGFnaW5hdGlvblRva2VuPXByZXBhcmVUb2tlbih0b2tlbik7cmV0dXJuW2dlblBhZ2luYXRpb25TdHlsZShwYWdpbmF0aW9uVG9rZW4pLGdlblBhZ2luYXRpb25Gb2N1c1N0eWxlKHBhZ2luYXRpb25Ub2tlbildfSxwcmVwYXJlQ29tcG9uZW50VG9rZW4pO2xldCBnZW5Cb3JkZXJlZFN0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENsc309dG9rZW47cmV0dXJue1tgJHtjb21wb25lbnRDbHN9JHtjb21wb25lbnRDbHN9LWJvcmRlcmVkJHtjb21wb25lbnRDbHN9LWRpc2FibGVkOm5vdCgke2NvbXBvbmVudENsc30tbWluaSlgXTp7IiYsICY6aG92ZXIiOntbYCR7Y29tcG9uZW50Q2xzfS1pdGVtLWxpbmtgXTp7Ym9yZGVyQ29sb3I6dG9rZW4uY29sb3JCb3JkZXJ9fSwiJjpmb2N1cy12aXNpYmxlIjp7W2Ake2NvbXBvbmVudENsc30taXRlbS1saW5rYF06e2JvcmRlckNvbG9yOnRva2VuLmNvbG9yQm9yZGVyfX0sW2Ake2NvbXBvbmVudENsc30taXRlbSwgJHtjb21wb25lbnRDbHN9LWl0ZW0tbGlua2BdOntiYWNrZ3JvdW5kQ29sb3I6dG9rZW4uY29sb3JCZ0NvbnRhaW5lckRpc2FibGVkLGJvcmRlckNvbG9yOnRva2VuLmNvbG9yQm9yZGVyLFtgJjpob3Zlcjpub3QoJHtjb21wb25lbnRDbHN9LWl0ZW0tYWN0aXZlKWBdOntiYWNrZ3JvdW5kQ29sb3I6dG9rZW4uY29sb3JCZ0NvbnRhaW5lckRpc2FibGVkLGJvcmRlckNvbG9yOnRva2VuLmNvbG9yQm9yZGVyLGE6e2NvbG9yOnRva2VuLmNvbG9yVGV4dERpc2FibGVkfX0sW2AmJHtjb21wb25lbnRDbHN9LWl0ZW0tYWN0aXZlYF06e2JhY2tncm91bmRDb2xvcjp0b2tlbi5pdGVtQWN0aXZlQmdEaXNhYmxlZH19LFtgJHtjb21wb25lbnRDbHN9LXByZXYsICR7Y29tcG9uZW50Q2xzfS1uZXh0YF06eyImOmhvdmVyIGJ1dHRvbiI6e2JhY2tncm91bmRDb2xvcjp0b2tlbi5jb2xvckJnQ29udGFpbmVyRGlzYWJsZWQsYm9yZGVyQ29sb3I6dG9rZW4uY29sb3JCb3JkZXIsY29sb3I6dG9rZW4uY29sb3JUZXh0RGlzYWJsZWR9LFtgJHtjb21wb25lbnRDbHN9LWl0ZW0tbGlua2BdOntiYWNrZ3JvdW5kQ29sb3I6dG9rZW4uY29sb3JCZ0NvbnRhaW5lckRpc2FibGVkLGJvcmRlckNvbG9yOnRva2VuLmNvbG9yQm9yZGVyfX19LFtgJHtjb21wb25lbnRDbHN9JHtjb21wb25lbnRDbHN9LWJvcmRlcmVkOm5vdCgke2NvbXBvbmVudENsc30tbWluaSlgXTp7W2Ake2NvbXBvbmVudENsc30tcHJldiwgJHtjb21wb25lbnRDbHN9LW5leHRgXTp7IiY6aG92ZXIgYnV0dG9uIjp7Ym9yZGVyQ29sb3I6dG9rZW4uY29sb3JQcmltYXJ5SG92ZXIsYmFja2dyb3VuZENvbG9yOnRva2VuLml0ZW1CZ30sW2Ake2NvbXBvbmVudENsc30taXRlbS1saW5rYF06e2JhY2tncm91bmRDb2xvcjp0b2tlbi5pdGVtTGlua0JnLGJvcmRlckNvbG9yOnRva2VuLmNvbG9yQm9yZGVyfSxbYCY6aG92ZXIgJHtjb21wb25lbnRDbHN9LWl0ZW0tbGlua2BdOntib3JkZXJDb2xvcjp0b2tlbi5jb2xvclByaW1hcnksYmFja2dyb3VuZENvbG9yOnRva2VuLml0ZW1CZyxjb2xvcjp0b2tlbi5jb2xvclByaW1hcnl9LFtgJiR7Y29tcG9uZW50Q2xzfS1kaXNhYmxlZGBdOntbYCR7Y29tcG9uZW50Q2xzfS1pdGVtLWxpbmtgXTp7Ym9yZGVyQ29sb3I6dG9rZW4uY29sb3JCb3JkZXIsY29sb3I6dG9rZW4uY29sb3JUZXh0RGlzYWJsZWR9fX0sW2Ake2NvbXBvbmVudENsc30taXRlbWBdOntiYWNrZ3JvdW5kQ29sb3I6dG9rZW4uaXRlbUJnLGJvcmRlcjpgJHsoMCxlcy5iZikodG9rZW4ubGluZVdpZHRoKX0gJHt0b2tlbi5saW5lVHlwZX0gJHt0b2tlbi5jb2xvckJvcmRlcn1gLFtgJjpob3Zlcjpub3QoJHtjb21wb25lbnRDbHN9LWl0ZW0tYWN0aXZlKWBdOntib3JkZXJDb2xvcjp0b2tlbi5jb2xvclByaW1hcnksYmFja2dyb3VuZENvbG9yOnRva2VuLml0ZW1CZyxhOntjb2xvcjp0b2tlbi5jb2xvclByaW1hcnl9fSwiJi1hY3RpdmUiOntib3JkZXJDb2xvcjp0b2tlbi5jb2xvclByaW1hcnl9fX19fTt2YXIgYm9yZGVyZWQ9KDAsZ2VuU3R5bGVVdGlscy5iaykoWyJQYWdpbmF0aW9uIiwiYm9yZGVyZWQiXSx0b2tlbj0+e2xldCBwYWdpbmF0aW9uVG9rZW49cHJlcGFyZVRva2VuKHRva2VuKTtyZXR1cm5bZ2VuQm9yZGVyZWRTdHlsZShwYWdpbmF0aW9uVG9rZW4pXX0scHJlcGFyZUNvbXBvbmVudFRva2VuKTtmdW5jdGlvbiB1c2VTaG93U2l6ZUNoYW5nZXIoc2hvd1NpemVDaGFuZ2VyKXtyZXR1cm4oMCxyZWFjdC51c2VNZW1vKSgoKT0+ImJvb2xlYW4iPT10eXBlb2Ygc2hvd1NpemVDaGFuZ2VyP1tzaG93U2l6ZUNoYW5nZXIse31dOnNob3dTaXplQ2hhbmdlciYmIm9iamVjdCI9PXR5cGVvZiBzaG93U2l6ZUNoYW5nZXI/WyEwLHNob3dTaXplQ2hhbmdlcl06W3ZvaWQgMCx2b2lkIDBdLFtzaG93U2l6ZUNoYW5nZXJdKX12YXIgX19yZXN0PWZ1bmN0aW9uKHMsZSl7dmFyIHQ9e307Zm9yKHZhciBwIGluIHMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMscCkmJjA+ZS5pbmRleE9mKHApJiYodFtwXT1zW3BdKTtpZihudWxsIT1zJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scylmb3IodmFyIGk9MCxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7aTxwLmxlbmd0aDtpKyspMD5lLmluZGV4T2YocFtpXSkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLHBbaV0pJiYodFtwW2ldXT1zW3BbaV1dKTtyZXR1cm4gdH07bGV0IFBhZ2luYXRpb25fUGFnaW5hdGlvbj1wcm9wcz0+e2xldHthbGlnbixwcmVmaXhDbHM6Y3VzdG9taXplUHJlZml4Q2xzLHNlbGVjdFByZWZpeENsczpjdXN0b21pemVTZWxlY3RQcmVmaXhDbHMsY2xhc3NOYW1lLHJvb3RDbGFzc05hbWUsc3R5bGUsc2l6ZTpjdXN0b21pemVTaXplLGxvY2FsZTpjdXN0b21Mb2NhbGUscmVzcG9uc2l2ZSxzaG93U2l6ZUNoYW5nZXIsc2VsZWN0Q29tcG9uZW50Q2xhc3MscGFnZVNpemVPcHRpb25zfT1wcm9wcyxyZXN0UHJvcHM9X19yZXN0KHByb3BzLFsiYWxpZ24iLCJwcmVmaXhDbHMiLCJzZWxlY3RQcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJyb290Q2xhc3NOYW1lIiwic3R5bGUiLCJzaXplIiwibG9jYWxlIiwicmVzcG9uc2l2ZSIsInNob3dTaXplQ2hhbmdlciIsInNlbGVjdENvbXBvbmVudENsYXNzIiwicGFnZVNpemVPcHRpb25zIl0pLHt4c309KDAsdXNlQnJlYWtwb2ludC5aKShyZXNwb25zaXZlKSxbLHRva2VuXT0oMCx1c2VUb2tlbi5aUCkoKSx7Z2V0UHJlZml4Q2xzLGRpcmVjdGlvbixzaG93U2l6ZUNoYW5nZXI6Y29udGV4dFNob3dTaXplQ2hhbmdlckNvbmZpZyxjbGFzc05hbWU6Y29udGV4dENsYXNzTmFtZSxzdHlsZTpjb250ZXh0U3R5bGV9PSgwLGNvbnRleHQuZGopKCJwYWdpbmF0aW9uIikscHJlZml4Q2xzPWdldFByZWZpeENscygicGFnaW5hdGlvbiIsY3VzdG9taXplUHJlZml4Q2xzKSxbd3JhcENTU1ZhcixoYXNoSWQsY3NzVmFyQ2xzXT1wYWdpbmF0aW9uX3N0eWxlKHByZWZpeENscyksbWVyZ2VkU2l6ZT0oMCx1c2VTaXplLlopKGN1c3RvbWl6ZVNpemUpLGlzU21hbGw9InNtYWxsIj09PW1lcmdlZFNpemV8fCEhKHhzJiYhbWVyZ2VkU2l6ZSYmcmVzcG9uc2l2ZSksW2NvbnRleHRMb2NhbGVdPSgwLHVzZUxvY2FsZS5aKSgiUGFnaW5hdGlvbiIsZW5fVVMuWiksbG9jYWxlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjb250ZXh0TG9jYWxlKSxjdXN0b21Mb2NhbGUpLFtwcm9wU2hvd1NpemVDaGFuZ2VyLHByb3BTaXplQ2hhbmdlclNlbGVjdFByb3BzXT11c2VTaG93U2l6ZUNoYW5nZXIoc2hvd1NpemVDaGFuZ2VyKSxbY29udGV4dFNob3dTaXplQ2hhbmdlcixjb250ZXh0U2l6ZUNoYW5nZXJTZWxlY3RQcm9wc109dXNlU2hvd1NpemVDaGFuZ2VyKGNvbnRleHRTaG93U2l6ZUNoYW5nZXJDb25maWcpLG1lcmdlZFNob3dTaXplQ2hhbmdlclNlbGVjdFByb3BzPW51bGwhPXByb3BTaXplQ2hhbmdlclNlbGVjdFByb3BzP3Byb3BTaXplQ2hhbmdlclNlbGVjdFByb3BzOmNvbnRleHRTaXplQ2hhbmdlclNlbGVjdFByb3BzLFNpemVDaGFuZ2VyPXNlbGVjdENvbXBvbmVudENsYXNzfHxlc19zZWxlY3QuWixtZXJnZWRQYWdlU2l6ZU9wdGlvbnM9cmVhY3QudXNlTWVtbygoKT0+cGFnZVNpemVPcHRpb25zP3BhZ2VTaXplT3B0aW9ucy5tYXAob3B0aW9uPT5OdW1iZXIob3B0aW9uKSk6dm9pZCAwLFtwYWdlU2l6ZU9wdGlvbnNdKSxzaXplQ2hhbmdlclJlbmRlcj1pbmZvPT57dmFyIF9hO2xldHtkaXNhYmxlZCxzaXplOnBhZ2VTaXplLG9uU2l6ZUNoYW5nZSwiYXJpYS1sYWJlbCI6YXJpYUxhYmVsLGNsYXNzTmFtZTpzaXplQ2hhbmdlckNsYXNzTmFtZSxvcHRpb25zfT1pbmZvLHtjbGFzc05hbWU6cHJvcFNpemVDaGFuZ2VyQ2xhc3NOYW1lLG9uQ2hhbmdlOnByb3BTaXplQ2hhbmdlck9uQ2hhbmdlfT1tZXJnZWRTaG93U2l6ZUNoYW5nZXJTZWxlY3RQcm9wc3x8e30sc2VsZWN0ZWRWYWx1ZT1udWxsPT09KF9hPW9wdGlvbnMuZmluZChvcHRpb249PlN0cmluZyhvcHRpb24udmFsdWUpPT09U3RyaW5nKHBhZ2VTaXplKSkpfHx2b2lkIDA9PT1fYT92b2lkIDA6X2EudmFsdWU7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoU2l6ZUNoYW5nZXIsT2JqZWN0LmFzc2lnbih7ZGlzYWJsZWQ6ZGlzYWJsZWQsc2hvd1NlYXJjaDohMCxwb3B1cE1hdGNoU2VsZWN0V2lkdGg6ITEsZ2V0UG9wdXBDb250YWluZXI6dHJpZ2dlck5vZGU9PnRyaWdnZXJOb2RlLnBhcmVudE5vZGUsImFyaWEtbGFiZWwiOmFyaWFMYWJlbCxvcHRpb25zOm9wdGlvbnN9LG1lcmdlZFNob3dTaXplQ2hhbmdlclNlbGVjdFByb3BzLHt2YWx1ZTpzZWxlY3RlZFZhbHVlLG9uQ2hhbmdlKG5leHRTaXplLG9wdGlvbil7bnVsbD09b25TaXplQ2hhbmdlfHxvblNpemVDaGFuZ2UobmV4dFNpemUpLG51bGw9PXByb3BTaXplQ2hhbmdlck9uQ2hhbmdlfHxwcm9wU2l6ZUNoYW5nZXJPbkNoYW5nZShuZXh0U2l6ZSxvcHRpb24pfSxzaXplOmlzU21hbGw/InNtYWxsIjoibWlkZGxlIixjbGFzc05hbWU6Y2xhc3NuYW1lc19kZWZhdWx0KCkoc2l6ZUNoYW5nZXJDbGFzc05hbWUscHJvcFNpemVDaGFuZ2VyQ2xhc3NOYW1lKX0pKX0saWNvbnNQcm9wcz1yZWFjdC51c2VNZW1vKCgpPT57bGV0IGVsbGlwc2lzPXJlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS1pdGVtLWVsbGlwc2lzYH0sIuKAouKAouKAoiIpLHByZXZJY29uPXJlYWN0LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIse2NsYXNzTmFtZTpgJHtwcmVmaXhDbHN9LWl0ZW0tbGlua2AsdHlwZToiYnV0dG9uIix0YWJJbmRleDotMX0sInJ0bCI9PT1kaXJlY3Rpb24/cmVhY3QuY3JlYXRlRWxlbWVudChSaWdodE91dGxpbmVkLlosbnVsbCk6cmVhY3QuY3JlYXRlRWxlbWVudChMZWZ0T3V0bGluZWQuWixudWxsKSksbmV4dEljb249cmVhY3QuY3JlYXRlRWxlbWVudCgiYnV0dG9uIix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30taXRlbS1saW5rYCx0eXBlOiJidXR0b24iLHRhYkluZGV4Oi0xfSwicnRsIj09PWRpcmVjdGlvbj9yZWFjdC5jcmVhdGVFbGVtZW50KExlZnRPdXRsaW5lZC5aLG51bGwpOnJlYWN0LmNyZWF0ZUVsZW1lbnQoUmlnaHRPdXRsaW5lZC5aLG51bGwpKSxqdW1wUHJldkljb249cmVhY3QuY3JlYXRlRWxlbWVudCgiYSIse2NsYXNzTmFtZTpgJHtwcmVmaXhDbHN9LWl0ZW0tbGlua2B9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtwcmVmaXhDbHN9LWl0ZW0tY29udGFpbmVyYH0sInJ0bCI9PT1kaXJlY3Rpb24/cmVhY3QuY3JlYXRlRWxlbWVudChEb3VibGVSaWdodE91dGxpbmVkX1JlZkljb24se2NsYXNzTmFtZTpgJHtwcmVmaXhDbHN9LWl0ZW0tbGluay1pY29uYH0pOnJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVmSWNvbix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30taXRlbS1saW5rLWljb25gfSksZWxsaXBzaXMpKSxqdW1wTmV4dEljb249cmVhY3QuY3JlYXRlRWxlbWVudCgiYSIse2NsYXNzTmFtZTpgJHtwcmVmaXhDbHN9LWl0ZW0tbGlua2B9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpgJHtwcmVmaXhDbHN9LWl0ZW0tY29udGFpbmVyYH0sInJ0bCI9PT1kaXJlY3Rpb24/cmVhY3QuY3JlYXRlRWxlbWVudChSZWZJY29uLHtjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS1pdGVtLWxpbmstaWNvbmB9KTpyZWFjdC5jcmVhdGVFbGVtZW50KERvdWJsZVJpZ2h0T3V0bGluZWRfUmVmSWNvbix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30taXRlbS1saW5rLWljb25gfSksZWxsaXBzaXMpKTtyZXR1cm57cHJldkljb24sbmV4dEljb24sanVtcFByZXZJY29uLGp1bXBOZXh0SWNvbn19LFtkaXJlY3Rpb24scHJlZml4Q2xzXSksc2VsZWN0UHJlZml4Q2xzPWdldFByZWZpeENscygic2VsZWN0IixjdXN0b21pemVTZWxlY3RQcmVmaXhDbHMpLGV4dGVuZGVkQ2xhc3NOYW1lPWNsYXNzbmFtZXNfZGVmYXVsdCgpKHtbYCR7cHJlZml4Q2xzfS0ke2FsaWdufWBdOiEhYWxpZ24sW2Ake3ByZWZpeENsc30tbWluaWBdOmlzU21hbGwsW2Ake3ByZWZpeENsc30tcnRsYF06InJ0bCI9PT1kaXJlY3Rpb24sW2Ake3ByZWZpeENsc30tYm9yZGVyZWRgXTp0b2tlbi53aXJlZnJhbWV9LGNvbnRleHRDbGFzc05hbWUsY2xhc3NOYW1lLHJvb3RDbGFzc05hbWUsaGFzaElkLGNzc1ZhckNscyksbWVyZ2VkU3R5bGU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGNvbnRleHRTdHlsZSksc3R5bGUpO3JldHVybiB3cmFwQ1NTVmFyKHJlYWN0LmNyZWF0ZUVsZW1lbnQocmVhY3QuRnJhZ21lbnQsbnVsbCx0b2tlbi53aXJlZnJhbWUmJnJlYWN0LmNyZWF0ZUVsZW1lbnQoYm9yZGVyZWQse3ByZWZpeENsczpwcmVmaXhDbHN9KSxyZWFjdC5jcmVhdGVFbGVtZW50KGVzX1BhZ2luYXRpb24sT2JqZWN0LmFzc2lnbih7fSxpY29uc1Byb3BzLHJlc3RQcm9wcyx7c3R5bGU6bWVyZ2VkU3R5bGUscHJlZml4Q2xzOnByZWZpeENscyxzZWxlY3RQcmVmaXhDbHM6c2VsZWN0UHJlZml4Q2xzLGNsYXNzTmFtZTpleHRlbmRlZENsYXNzTmFtZSxsb2NhbGU6bG9jYWxlLHBhZ2VTaXplT3B0aW9uczptZXJnZWRQYWdlU2l6ZU9wdGlvbnMsc2hvd1NpemVDaGFuZ2VyOm51bGwhPXByb3BTaG93U2l6ZUNoYW5nZXI/cHJvcFNob3dTaXplQ2hhbmdlcjpjb250ZXh0U2hvd1NpemVDaGFuZ2VyLHNpemVDaGFuZ2VyUmVuZGVyOnNpemVDaGFuZ2VyUmVuZGVyfSkpKSl9O3ZhciBwYWdpbmF0aW9uPVBhZ2luYXRpb25fUGFnaW5hdGlvbn0sNzQ2Mjc6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gcG9wb3Zlcn19KTt2YXIgcmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksY2xhc3NuYW1lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDEzMTQ0KSxjbGFzc25hbWVzX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGNsYXNzbmFtZXMpLHVzZU1lcmdlZFN0YXRlPV9fd2VicGFja19yZXF1aXJlX18oNTY2MyksS2V5Q29kZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDkyMzg5KTtsZXQgZ2V0UmVuZGVyUHJvcFZhbHVlPXByb3BWYWx1ZT0+cHJvcFZhbHVlPyJmdW5jdGlvbiI9PXR5cGVvZiBwcm9wVmFsdWU/cHJvcFZhbHVlKCk6cHJvcFZhbHVlOm51bGw7dmFyIG1vdGlvbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDMzNjAzKSxyZWFjdE5vZGU9X193ZWJwYWNrX3JlcXVpcmVfXyg5NjE1OSksdG9vbHRpcD1fX3dlYnBhY2tfcmVxdWlyZV9fKDYxNzgxKSxlcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDU3ODUyKSxjb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oNTMxMjQpLHN0eWxlPV9fd2VicGFja19yZXF1aXJlX18oMTQ3NDcpLHpvb209X193ZWJwYWNrX3JlcXVpcmVfXyg1MDQzOCkscGxhY2VtZW50QXJyb3c9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzQxNCkscm91bmRlZEFycm93PV9fd2VicGFja19yZXF1aXJlX18oNzk1MTEpLHByZXNldENvbG9ycz1fX3dlYnBhY2tfcmVxdWlyZV9fKDg3OTYpLGdlblN0eWxlVXRpbHM9X193ZWJwYWNrX3JlcXVpcmVfXyg4MzU1OSksY3NzaW5qc191dGlsc19lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQyNTU5KTtsZXQgZ2VuQmFzZVN0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENscyxwb3BvdmVyQ29sb3IsdGl0bGVNaW5XaWR0aCxmb250V2VpZ2h0U3Ryb25nLGlubmVyUGFkZGluZyxib3hTaGFkb3dTZWNvbmRhcnksY29sb3JUZXh0SGVhZGluZyxib3JkZXJSYWRpdXNMRyx6SW5kZXhQb3B1cCx0aXRsZU1hcmdpbkJvdHRvbSxjb2xvckJnRWxldmF0ZWQscG9wb3ZlckJnLHRpdGxlQm9yZGVyQm90dG9tLGlubmVyQ29udGVudFBhZGRpbmcsdGl0bGVQYWRkaW5nfT10b2tlbjtyZXR1cm5be1tjb21wb25lbnRDbHNdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxzdHlsZS5XZikodG9rZW4pKSx7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6MH0sekluZGV4OnpJbmRleFBvcHVwLGZvbnRXZWlnaHQ6Im5vcm1hbCIsd2hpdGVTcGFjZToibm9ybWFsIix0ZXh0QWxpZ246InN0YXJ0IixjdXJzb3I6ImF1dG8iLHVzZXJTZWxlY3Q6InRleHQiLCItLXZhbGlkLW9mZnNldC14IjoidmFyKC0tYXJyb3ctb2Zmc2V0LWhvcml6b250YWwsIHZhcigtLWFycm93LXgpKSIsdHJhbnNmb3JtT3JpZ2luOiJ2YXIoLS12YWxpZC1vZmZzZXQteCwgNTAlKSB2YXIoLS1hcnJvdy15LCA1MCUpIiwiLS1hbnRkLWFycm93LWJhY2tncm91bmQtY29sb3IiOmNvbG9yQmdFbGV2YXRlZCx3aWR0aDoibWF4LWNvbnRlbnQiLG1heFdpZHRoOiIxMDB2dyIsIiYtcnRsIjp7ZGlyZWN0aW9uOiJydGwifSwiJi1oaWRkZW4iOntkaXNwbGF5OiJub25lIn0sW2Ake2NvbXBvbmVudENsc30tY29udGVudGBdOntwb3NpdGlvbjoicmVsYXRpdmUifSxbYCR7Y29tcG9uZW50Q2xzfS1pbm5lcmBdOntiYWNrZ3JvdW5kQ29sb3I6cG9wb3ZlckJnLGJhY2tncm91bmRDbGlwOiJwYWRkaW5nLWJveCIsYm9yZGVyUmFkaXVzOmJvcmRlclJhZGl1c0xHLGJveFNoYWRvdzpib3hTaGFkb3dTZWNvbmRhcnkscGFkZGluZzppbm5lclBhZGRpbmd9LFtgJHtjb21wb25lbnRDbHN9LXRpdGxlYF06e21pbldpZHRoOnRpdGxlTWluV2lkdGgsbWFyZ2luQm90dG9tOnRpdGxlTWFyZ2luQm90dG9tLGNvbG9yOmNvbG9yVGV4dEhlYWRpbmcsZm9udFdlaWdodDpmb250V2VpZ2h0U3Ryb25nLGJvcmRlckJvdHRvbTp0aXRsZUJvcmRlckJvdHRvbSxwYWRkaW5nOnRpdGxlUGFkZGluZ30sW2Ake2NvbXBvbmVudENsc30taW5uZXItY29udGVudGBdOntjb2xvcjpwb3BvdmVyQ29sb3IscGFkZGluZzppbm5lckNvbnRlbnRQYWRkaW5nfX0pfSwoMCxwbGFjZW1lbnRBcnJvdy5aUCkodG9rZW4sInZhcigtLWFudGQtYXJyb3ctYmFja2dyb3VuZC1jb2xvcikiKSx7W2Ake2NvbXBvbmVudENsc30tcHVyZWBdOntwb3NpdGlvbjoicmVsYXRpdmUiLG1heFdpZHRoOiJub25lIixtYXJnaW46dG9rZW4uc2l6ZVBvcHVwQXJyb3csZGlzcGxheToiaW5saW5lLWJsb2NrIixbYCR7Y29tcG9uZW50Q2xzfS1jb250ZW50YF06e2Rpc3BsYXk6ImlubGluZS1ibG9jayJ9fX1dfSxnZW5Db2xvclN0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENsc309dG9rZW47cmV0dXJue1tjb21wb25lbnRDbHNdOnByZXNldENvbG9ycy5pLm1hcChjb2xvcktleT0+e2xldCBsaWdodENvbG9yPXRva2VuW2Ake2NvbG9yS2V5fTZgXTtyZXR1cm57W2AmJHtjb21wb25lbnRDbHN9LSR7Y29sb3JLZXl9YF06eyItLWFudGQtYXJyb3ctYmFja2dyb3VuZC1jb2xvciI6bGlnaHRDb2xvcixbYCR7Y29tcG9uZW50Q2xzfS1pbm5lcmBdOntiYWNrZ3JvdW5kQ29sb3I6bGlnaHRDb2xvcn0sW2Ake2NvbXBvbmVudENsc30tYXJyb3dgXTp7YmFja2dyb3VuZDoidHJhbnNwYXJlbnQifX19fSl9fSxwcmVwYXJlQ29tcG9uZW50VG9rZW49dG9rZW49PntsZXR7bGluZVdpZHRoLGNvbnRyb2xIZWlnaHQsZm9udEhlaWdodCxwYWRkaW5nLHdpcmVmcmFtZSx6SW5kZXhQb3B1cEJhc2UsYm9yZGVyUmFkaXVzTEcsbWFyZ2luWFMsbGluZVR5cGUsY29sb3JTcGxpdCxwYWRkaW5nU019PXRva2VuLHRpdGxlUGFkZGluZ0Jsb2NrRGlzdD1jb250cm9sSGVpZ2h0LWZvbnRIZWlnaHQ7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt0aXRsZU1pbldpZHRoOjE3Nyx6SW5kZXhQb3B1cDp6SW5kZXhQb3B1cEJhc2UrMzB9LCgwLHJvdW5kZWRBcnJvdy53KSh0b2tlbikpLCgwLHBsYWNlbWVudEFycm93LndaKSh7Y29udGVudFJhZGl1czpib3JkZXJSYWRpdXNMRyxsaW1pdFZlcnRpY2FsUmFkaXVzOiEwfSkpLHtpbm5lclBhZGRpbmc6d2lyZWZyYW1lPzA6MTIsdGl0bGVNYXJnaW5Cb3R0b206d2lyZWZyYW1lPzA6bWFyZ2luWFMsdGl0bGVQYWRkaW5nOndpcmVmcmFtZT9gJHt0aXRsZVBhZGRpbmdCbG9ja0Rpc3QvMn1weCAke3BhZGRpbmd9cHggJHt0aXRsZVBhZGRpbmdCbG9ja0Rpc3QvMi1saW5lV2lkdGh9cHhgOjAsdGl0bGVCb3JkZXJCb3R0b206d2lyZWZyYW1lP2Ake2xpbmVXaWR0aH1weCAke2xpbmVUeXBlfSAke2NvbG9yU3BsaXR9YDoibm9uZSIsaW5uZXJDb250ZW50UGFkZGluZzp3aXJlZnJhbWU/YCR7cGFkZGluZ1NNfXB4ICR7cGFkZGluZ31weGA6MH0pfTt2YXIgcG9wb3Zlcl9zdHlsZT0oMCxnZW5TdHlsZVV0aWxzLkkkKSgiUG9wb3ZlciIsdG9rZW49PntsZXR7Y29sb3JCZ0VsZXZhdGVkLGNvbG9yVGV4dH09dG9rZW4scG9wb3ZlclRva2VuPSgwLGNzc2luanNfdXRpbHNfZXMuSVgpKHRva2VuLHtwb3BvdmVyQmc6Y29sb3JCZ0VsZXZhdGVkLHBvcG92ZXJDb2xvcjpjb2xvclRleHR9KTtyZXR1cm5bZ2VuQmFzZVN0eWxlKHBvcG92ZXJUb2tlbiksZ2VuQ29sb3JTdHlsZShwb3BvdmVyVG9rZW4pLCgwLHpvb20uX3kpKHBvcG92ZXJUb2tlbiwiem9vbS1iaWciKV19LHByZXBhcmVDb21wb25lbnRUb2tlbix7cmVzZXRTdHlsZTohMSxkZXByZWNhdGVkVG9rZW5zOltbIndpZHRoIiwidGl0bGVNaW5XaWR0aCJdLFsibWluV2lkdGgiLCJ0aXRsZU1pbldpZHRoIl1dfSksX19yZXN0PWZ1bmN0aW9uKHMsZSl7dmFyIHQ9e307Zm9yKHZhciBwIGluIHMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMscCkmJjA+ZS5pbmRleE9mKHApJiYodFtwXT1zW3BdKTtpZihudWxsIT1zJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scylmb3IodmFyIGk9MCxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7aTxwLmxlbmd0aDtpKyspMD5lLmluZGV4T2YocFtpXSkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLHBbaV0pJiYodFtwW2ldXT1zW3BbaV1dKTtyZXR1cm4gdH07bGV0IE92ZXJsYXk9X3JlZj0+e2xldHt0aXRsZSxjb250ZW50LHByZWZpeENsc309X3JlZjtyZXR1cm4gdGl0bGV8fGNvbnRlbnQ/cmVhY3QuY3JlYXRlRWxlbWVudChyZWFjdC5GcmFnbWVudCxudWxsLHRpdGxlJiZyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS10aXRsZWB9LHRpdGxlKSxjb250ZW50JiZyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS1pbm5lci1jb250ZW50YH0sY29udGVudCkpOm51bGx9LFJhd1B1cmVQYW5lbD1wcm9wcz0+e2xldHtoYXNoSWQscHJlZml4Q2xzLGNsYXNzTmFtZSxzdHlsZSxwbGFjZW1lbnQ9InRvcCIsdGl0bGUsY29udGVudCxjaGlsZHJlbn09cHJvcHMsdGl0bGVOb2RlPWdldFJlbmRlclByb3BWYWx1ZSh0aXRsZSksY29udGVudE5vZGU9Z2V0UmVuZGVyUHJvcFZhbHVlKGNvbnRlbnQpLGNscz1jbGFzc25hbWVzX2RlZmF1bHQoKShoYXNoSWQscHJlZml4Q2xzLGAke3ByZWZpeENsc30tcHVyZWAsYCR7cHJlZml4Q2xzfS1wbGFjZW1lbnQtJHtwbGFjZW1lbnR9YCxjbGFzc05hbWUpO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Y2xzLHN0eWxlOnN0eWxlfSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS1hcnJvd2B9KSxyZWFjdC5jcmVhdGVFbGVtZW50KGVzLkcsT2JqZWN0LmFzc2lnbih7fSxwcm9wcyx7Y2xhc3NOYW1lOmhhc2hJZCxwcmVmaXhDbHM6cHJlZml4Q2xzfSksY2hpbGRyZW58fHJlYWN0LmNyZWF0ZUVsZW1lbnQoT3ZlcmxheSx7cHJlZml4Q2xzOnByZWZpeENscyx0aXRsZTp0aXRsZU5vZGUsY29udGVudDpjb250ZW50Tm9kZX0pKSl9LFB1cmVQYW5lbD1wcm9wcz0+e2xldHtwcmVmaXhDbHM6Y3VzdG9taXplUHJlZml4Q2xzLGNsYXNzTmFtZX09cHJvcHMscmVzdFByb3BzPV9fcmVzdChwcm9wcyxbInByZWZpeENscyIsImNsYXNzTmFtZSJdKSx7Z2V0UHJlZml4Q2xzfT1yZWFjdC51c2VDb250ZXh0KGNvbnRleHQuRV8pLHByZWZpeENscz1nZXRQcmVmaXhDbHMoInBvcG92ZXIiLGN1c3RvbWl6ZVByZWZpeENscyksW3dyYXBDU1NWYXIsaGFzaElkLGNzc1ZhckNsc109cG9wb3Zlcl9zdHlsZShwcmVmaXhDbHMpO3JldHVybiB3cmFwQ1NTVmFyKHJlYWN0LmNyZWF0ZUVsZW1lbnQoUmF3UHVyZVBhbmVsLE9iamVjdC5hc3NpZ24oe30scmVzdFByb3BzLHtwcmVmaXhDbHM6cHJlZml4Q2xzLGhhc2hJZDpoYXNoSWQsY2xhc3NOYW1lOmNsYXNzbmFtZXNfZGVmYXVsdCgpKGNsYXNzTmFtZSxjc3NWYXJDbHMpfSkpKX07dmFyIHBvcG92ZXJfcmVzdD1mdW5jdGlvbihzLGUpe3ZhciB0PXt9O2Zvcih2YXIgcCBpbiBzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLHApJiYwPmUuaW5kZXhPZihwKSYmKHRbcF09c1twXSk7aWYobnVsbCE9cyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpZm9yKHZhciBpPTAscD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpO2k8cC5sZW5ndGg7aSsrKTA+ZS5pbmRleE9mKHBbaV0pJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocyxwW2ldKSYmKHRbcFtpXV09c1twW2ldXSk7cmV0dXJuIHR9O2xldCBJbnRlcm5hbFBvcG92ZXI9cmVhY3QuZm9yd2FyZFJlZigocHJvcHMscmVmKT0+e3ZhciBfYSxfYjtsZXR7cHJlZml4Q2xzOmN1c3RvbWl6ZVByZWZpeENscyx0aXRsZSxjb250ZW50LG92ZXJsYXlDbGFzc05hbWUscGxhY2VtZW50PSJ0b3AiLHRyaWdnZXI9ImhvdmVyIixjaGlsZHJlbixtb3VzZUVudGVyRGVsYXk9LjEsbW91c2VMZWF2ZURlbGF5PS4xLG9uT3BlbkNoYW5nZSxvdmVybGF5U3R5bGU9e30sc3R5bGVzLGNsYXNzTmFtZXM6cG9wb3ZlckNsYXNzTmFtZXN9PXByb3BzLG90aGVyUHJvcHM9cG9wb3Zlcl9yZXN0KHByb3BzLFsicHJlZml4Q2xzIiwidGl0bGUiLCJjb250ZW50Iiwib3ZlcmxheUNsYXNzTmFtZSIsInBsYWNlbWVudCIsInRyaWdnZXIiLCJjaGlsZHJlbiIsIm1vdXNlRW50ZXJEZWxheSIsIm1vdXNlTGVhdmVEZWxheSIsIm9uT3BlbkNoYW5nZSIsIm92ZXJsYXlTdHlsZSIsInN0eWxlcyIsImNsYXNzTmFtZXMiXSkse2dldFByZWZpeENscyxjbGFzc05hbWU6Y29udGV4dENsYXNzTmFtZSxzdHlsZTpjb250ZXh0U3R5bGUsY2xhc3NOYW1lczpjb250ZXh0Q2xhc3NOYW1lcyxzdHlsZXM6Y29udGV4dFN0eWxlc309KDAsY29udGV4dC5kaikoInBvcG92ZXIiKSxwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJwb3BvdmVyIixjdXN0b21pemVQcmVmaXhDbHMpLFt3cmFwQ1NTVmFyLGhhc2hJZCxjc3NWYXJDbHNdPXBvcG92ZXJfc3R5bGUocHJlZml4Q2xzKSxyb290UHJlZml4Q2xzPWdldFByZWZpeENscygpLHJvb3RDbGFzc05hbWVzPWNsYXNzbmFtZXNfZGVmYXVsdCgpKG92ZXJsYXlDbGFzc05hbWUsaGFzaElkLGNzc1ZhckNscyxjb250ZXh0Q2xhc3NOYW1lLGNvbnRleHRDbGFzc05hbWVzLnJvb3QsbnVsbD09cG9wb3ZlckNsYXNzTmFtZXM/dm9pZCAwOnBvcG92ZXJDbGFzc05hbWVzLnJvb3QpLGJvZHlDbGFzc05hbWVzPWNsYXNzbmFtZXNfZGVmYXVsdCgpKGNvbnRleHRDbGFzc05hbWVzLmJvZHksbnVsbD09cG9wb3ZlckNsYXNzTmFtZXM/dm9pZCAwOnBvcG92ZXJDbGFzc05hbWVzLmJvZHkpLFtvcGVuLHNldE9wZW5dPSgwLHVzZU1lcmdlZFN0YXRlLlopKCExLHt2YWx1ZTpudWxsIT09KF9hPXByb3BzLm9wZW4pJiZ2b2lkIDAhPT1fYT9fYTpwcm9wcy52aXNpYmxlLGRlZmF1bHRWYWx1ZTpudWxsIT09KF9iPXByb3BzLmRlZmF1bHRPcGVuKSYmdm9pZCAwIT09X2I/X2I6cHJvcHMuZGVmYXVsdFZpc2libGV9KSxzZXR0aW5nT3Blbj0odmFsdWUsZSk9PntzZXRPcGVuKHZhbHVlLCEwKSxudWxsPT1vbk9wZW5DaGFuZ2V8fG9uT3BlbkNoYW5nZSh2YWx1ZSxlKX0sb25LZXlEb3duPWU9PntlLmtleUNvZGU9PT1LZXlDb2RlLlouRVNDJiZzZXR0aW5nT3BlbighMSxlKX0sb25JbnRlcm5hbE9wZW5DaGFuZ2U9dmFsdWU9PntzZXR0aW5nT3Blbih2YWx1ZSl9LHRpdGxlTm9kZT1nZXRSZW5kZXJQcm9wVmFsdWUodGl0bGUpLGNvbnRlbnROb2RlPWdldFJlbmRlclByb3BWYWx1ZShjb250ZW50KTtyZXR1cm4gd3JhcENTU1ZhcihyZWFjdC5jcmVhdGVFbGVtZW50KHRvb2x0aXAuWixPYmplY3QuYXNzaWduKHtwbGFjZW1lbnQ6cGxhY2VtZW50LHRyaWdnZXI6dHJpZ2dlcixtb3VzZUVudGVyRGVsYXk6bW91c2VFbnRlckRlbGF5LG1vdXNlTGVhdmVEZWxheTptb3VzZUxlYXZlRGVsYXl9LG90aGVyUHJvcHMse3ByZWZpeENsczpwcmVmaXhDbHMsY2xhc3NOYW1lczp7cm9vdDpyb290Q2xhc3NOYW1lcyxib2R5OmJvZHlDbGFzc05hbWVzfSxzdHlsZXM6e3Jvb3Q6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjb250ZXh0U3R5bGVzLnJvb3QpLGNvbnRleHRTdHlsZSksb3ZlcmxheVN0eWxlKSxudWxsPT1zdHlsZXM/dm9pZCAwOnN0eWxlcy5yb290KSxib2R5Ok9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjb250ZXh0U3R5bGVzLmJvZHkpLG51bGw9PXN0eWxlcz92b2lkIDA6c3R5bGVzLmJvZHkpfSxyZWY6cmVmLG9wZW46b3Blbixvbk9wZW5DaGFuZ2U6b25JbnRlcm5hbE9wZW5DaGFuZ2Usb3ZlcmxheTp0aXRsZU5vZGV8fGNvbnRlbnROb2RlP3JlYWN0LmNyZWF0ZUVsZW1lbnQoT3ZlcmxheSx7cHJlZml4Q2xzOnByZWZpeENscyx0aXRsZTp0aXRsZU5vZGUsY29udGVudDpjb250ZW50Tm9kZX0pOm51bGwsdHJhbnNpdGlvbk5hbWU6KDAsbW90aW9uLm0pKHJvb3RQcmVmaXhDbHMsInpvb20tYmlnIixvdGhlclByb3BzLnRyYW5zaXRpb25OYW1lKSwiZGF0YS1wb3BvdmVyLWluamVjdCI6ITB9KSwoMCxyZWFjdE5vZGUuVG0pKGNoaWxkcmVuLHtvbktleURvd24oZSl7dmFyIF9hLF9iO3JlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSYmKG51bGw9PT0oX2I9bnVsbD09Y2hpbGRyZW4/dm9pZCAwOihfYT1jaGlsZHJlbi5wcm9wcykub25LZXlEb3duKXx8dm9pZCAwPT09X2J8fF9iLmNhbGwoX2EsZSkpLG9uS2V5RG93bihlKX19KSkpfSksUG9wb3Zlcj1JbnRlcm5hbFBvcG92ZXI7UG9wb3Zlci5fSW50ZXJuYWxQYW5lbERvTm90VXNlT3JZb3VXaWxsQmVGaXJlZD1QdXJlUGFuZWw7dmFyIHBvcG92ZXI9UG9wb3Zlcn0sNzEyMzA6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7dmFyIF9ncmlkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXygxNzYyMSk7X193ZWJwYWNrX2V4cG9ydHNfXy5aPV9ncmlkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWn0sMzUxMjI6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gZXNfc2VsZWN0fX0pO3ZhciByZWFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxjbGFzc25hbWVzPV9fd2VicGFja19yZXF1aXJlX18oMTMxNDQpLGNsYXNzbmFtZXNfZGVmYXVsdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oY2xhc3NuYW1lcyksZXNtX2V4dGVuZHM9X193ZWJwYWNrX3JlcXVpcmVfXyg4NzQ2MiksdG9Db25zdW1hYmxlQXJyYXk9X193ZWJwYWNrX3JlcXVpcmVfXyg3NDkwMiksZGVmaW5lUHJvcGVydHk9X193ZWJwYWNrX3JlcXVpcmVfXyg0OTQyKSxvYmplY3RTcHJlYWQyPV9fd2VicGFja19yZXF1aXJlX18oMTQxMyksc2xpY2VkVG9BcnJheT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk3Njg1KSxvYmplY3RXaXRob3V0UHJvcGVydGllcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDkxKSxlc21fdHlwZW9mPV9fd2VicGFja19yZXF1aXJlX18oNzEwMDIpLHVzZU1lcmdlZFN0YXRlPV9fd2VicGFja19yZXF1aXJlX18oMjE3NzApLGVzX3dhcm5pbmc9X193ZWJwYWNrX3JlcXVpcmVfXyg4MDMzNCksbm9kZV9tb2R1bGVzX2NsYXNzbmFtZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NDE4NCksbm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4obm9kZV9tb2R1bGVzX2NsYXNzbmFtZXMpLHVzZUxheW91dEVmZmVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDg0MTApLGlzTW9iaWxlPWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBuYXZpZ2F0b3J8fCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93KXJldHVybiExO3ZhciBhZ2VudD1uYXZpZ2F0b3IudXNlckFnZW50fHxuYXZpZ2F0b3IudmVuZG9yfHx3aW5kb3cub3BlcmE7cmV0dXJuLyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcmlzfGtpbmRsZXxsZ2UgfG1hZW1vfG1pZHB8bW1wfG1vYmlsZS4rZmlyZWZveHxuZXRmcm9udHxvcGVyYSBtKG9ifGluKWl8cGFsbSggb3MpP3xwaG9uZXxwKGl4aXxyZSlcL3xwbHVja2VyfHBvY2tldHxwc3B8c2VyaWVzKDR8NikwfHN5bWJpYW58dHJlb3x1cFwuKGJyb3dzZXJ8bGluayl8dm9kYWZvbmV8d2FwfHdpbmRvd3MgY2V8eGRhfHhpaW5vfGFuZHJvaWR8aXBhZHxwbGF5Ym9va3xzaWxrL2kudGVzdChhZ2VudCl8fC8xMjA3fDYzMTB8NjU5MHwzZ3NvfDR0aHB8NTBbMS02XWl8Nzcwc3w4MDJzfGEgd2F8YWJhY3xhYyhlcnxvb3xzLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3LShufHUpfGM1NVwvfGNhcGl8Y2N3YXxjZG0tfGNlbGx8Y2h0bXxjbGRjfGNtZC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGMtc3xkZXZpfGRpY2F8ZG1vYnxkbyhjfHApb3xkcygxMnwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2YtNXxnLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZC0obXxwfHQpfGhlaS18aGkocHR8dGEpfGhwKCBpfGlwKXxocy1jfGh0KGMoLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGktKDIwfGdvfG1hKXxpMjMwfGlhYyggfC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2MtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8LVthLXddKXxsaWJ3fGx5bnh8bTEtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bS1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dCgtfCB8b3x2KXx6eil8bXQoNTB8cDF8diApfG13YnB8bXl3YXxuMTBbMC0yXXxuMjBbMi0zXXxuMzAoMHwyKXxuNTAoMHwyfDUpfG43KDAoMHwxKXwxMCl8bmUoKGN8bSktfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3wtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuLTJ8cG8oY2t8cnR8c2UpfHByb3h8cHNpb3xwdC1nfHFhLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8LVsyLTddfGktKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoLXxvb3xwLSl8c2RrXC98c2UoYygtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaC18c2hhcnxzaWUoLXxtKXxzay0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGgtfHYtfHYgKXxzeSgwMXxtYil8dDIoMTh8NTApfHQ2KDAwfDEwfDE4KXx0YShndHxsayl8dGNsLXx0ZGctfHRlbChpfG0pfHRpbS18dC1tb3x0byhwbHxzaCl8dHMoNzB8bS18bTN8bTUpfHR4LTl8dXAoXC5ifGcxfHNpKXx1dHN0fHY0MDB8djc1MHx2ZXJpfHZpKHJnfHRlKXx2ayg0MHw1WzAtM118LXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhcy18eW91cnx6ZXRvfHp0ZS0vaS50ZXN0KG51bGw9PWFnZW50P3ZvaWQgMDphZ2VudC5zdWJzdHIoMCw0KSl9LGVzX3JlZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDQyNTUwKSxlc19UcmFuc0J0bj1mdW5jdGlvbihwcm9wcyl7dmFyIGNsYXNzTmFtZT1wcm9wcy5jbGFzc05hbWUsY3VzdG9taXplSWNvbj1wcm9wcy5jdXN0b21pemVJY29uLGN1c3RvbWl6ZUljb25Qcm9wcz1wcm9wcy5jdXN0b21pemVJY29uUHJvcHMsY2hpbGRyZW49cHJvcHMuY2hpbGRyZW4sX29uTW91c2VEb3duPXByb3BzLm9uTW91c2VEb3duLG9uQ2xpY2s9cHJvcHMub25DbGljayxpY29uPSJmdW5jdGlvbiI9PXR5cGVvZiBjdXN0b21pemVJY29uP2N1c3RvbWl6ZUljb24oY3VzdG9taXplSWNvblByb3BzKTpjdXN0b21pemVJY29uO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmNsYXNzTmFtZSxvbk1vdXNlRG93bjpmdW5jdGlvbihldmVudCl7ZXZlbnQucHJldmVudERlZmF1bHQoKSxudWxsPT1fb25Nb3VzZURvd258fF9vbk1vdXNlRG93bihldmVudCl9LHN0eWxlOnt1c2VyU2VsZWN0OiJub25lIixXZWJraXRVc2VyU2VsZWN0OiJub25lIn0sdW5zZWxlY3RhYmxlOiJvbiIsb25DbGljazpvbkNsaWNrLCJhcmlhLWhpZGRlbiI6ITB9LHZvaWQgMCE9PWljb24/aWNvbjpyZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKShjbGFzc05hbWUuc3BsaXQoL1xzKy8pLm1hcChmdW5jdGlvbihjbHMpe3JldHVybiIiLmNvbmNhdChjbHMsIi1pY29uIil9KSl9LGNoaWxkcmVuKSl9LHVzZUFsbG93Q2xlYXI9ZnVuY3Rpb24ocHJlZml4Q2xzLG9uQ2xlYXJNb3VzZURvd24sZGlzcGxheVZhbHVlcyxhbGxvd0NsZWFyLGNsZWFySWNvbil7dmFyIGRpc2FibGVkPWFyZ3VtZW50cy5sZW5ndGg+NSYmdm9pZCAwIT09YXJndW1lbnRzWzVdJiZhcmd1bWVudHNbNV0sbWVyZ2VkU2VhcmNoVmFsdWU9YXJndW1lbnRzLmxlbmd0aD42P2FyZ3VtZW50c1s2XTp2b2lkIDAsbW9kZT1hcmd1bWVudHMubGVuZ3RoPjc/YXJndW1lbnRzWzddOnZvaWQgMCxtZXJnZWRDbGVhckljb249cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiJvYmplY3QiPT09KDAsZXNtX3R5cGVvZi5aKShhbGxvd0NsZWFyKT9hbGxvd0NsZWFyLmNsZWFySWNvbjpjbGVhckljb258fHZvaWQgMH0sW2FsbG93Q2xlYXIsY2xlYXJJY29uXSk7cmV0dXJue2FsbG93Q2xlYXI6cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiFkaXNhYmxlZCYmISFhbGxvd0NsZWFyJiYoISFkaXNwbGF5VmFsdWVzLmxlbmd0aHx8ISFtZXJnZWRTZWFyY2hWYWx1ZSkmJiEoImNvbWJvYm94Ij09PW1vZGUmJiIiPT09bWVyZ2VkU2VhcmNoVmFsdWUpfSxbYWxsb3dDbGVhcixkaXNhYmxlZCxkaXNwbGF5VmFsdWVzLmxlbmd0aCxtZXJnZWRTZWFyY2hWYWx1ZSxtb2RlXSksY2xlYXJJY29uOnJlYWN0LmNyZWF0ZUVsZW1lbnQoZXNfVHJhbnNCdG4se2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItY2xlYXIiKSxvbk1vdXNlRG93bjpvbkNsZWFyTW91c2VEb3duLGN1c3RvbWl6ZUljb246bWVyZ2VkQ2xlYXJJY29ufSwiXHhkNyIpfX0sQmFzZVNlbGVjdENvbnRleHQ9cmVhY3QuY3JlYXRlQ29udGV4dChudWxsKTtmdW5jdGlvbiB1c2VMb2NrKCl7dmFyIGR1cmF0aW9uPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToyNTAsbG9ja1JlZj1yZWFjdC51c2VSZWYobnVsbCksdGltZW91dFJlZj1yZWFjdC51c2VSZWYobnVsbCk7cmV0dXJuIHJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3dpbmRvdy5jbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KX19LFtdKSxbZnVuY3Rpb24oKXtyZXR1cm4gbG9ja1JlZi5jdXJyZW50fSxmdW5jdGlvbihsb2NrZWQpeyhsb2NrZWR8fG51bGw9PT1sb2NrUmVmLmN1cnJlbnQpJiYobG9ja1JlZi5jdXJyZW50PWxvY2tlZCksd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpLHRpbWVvdXRSZWYuY3VycmVudD13aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe2xvY2tSZWYuY3VycmVudD1udWxsfSxkdXJhdGlvbil9XX12YXIgS2V5Q29kZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDE1MTA1KSxwaWNrQXR0cnM9X193ZWJwYWNrX3JlcXVpcmVfXyg2NDIxNyksZXM9X193ZWJwYWNrX3JlcXVpcmVfXygzOTk4MyksUmVmSW5wdXQ9cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3ZhciBfaW5wdXROb2RlMixwcmVmaXhDbHM9cHJvcHMucHJlZml4Q2xzLGlkPXByb3BzLmlkLGlucHV0RWxlbWVudD1wcm9wcy5pbnB1dEVsZW1lbnQsZGlzYWJsZWQ9cHJvcHMuZGlzYWJsZWQsdGFiSW5kZXg9cHJvcHMudGFiSW5kZXgsYXV0b0ZvY3VzPXByb3BzLmF1dG9Gb2N1cyxhdXRvQ29tcGxldGU9cHJvcHMuYXV0b0NvbXBsZXRlLGVkaXRhYmxlPXByb3BzLmVkaXRhYmxlLGFjdGl2ZURlc2NlbmRhbnRJZD1wcm9wcy5hY3RpdmVEZXNjZW5kYW50SWQsdmFsdWU9cHJvcHMudmFsdWUsbWF4TGVuZ3RoPXByb3BzLm1heExlbmd0aCxfb25LZXlEb3duPXByb3BzLm9uS2V5RG93bixfb25Nb3VzZURvd249cHJvcHMub25Nb3VzZURvd24sX29uQ2hhbmdlPXByb3BzLm9uQ2hhbmdlLG9uUGFzdGU9cHJvcHMub25QYXN0ZSxfb25Db21wb3NpdGlvblN0YXJ0PXByb3BzLm9uQ29tcG9zaXRpb25TdGFydCxfb25Db21wb3NpdGlvbkVuZD1wcm9wcy5vbkNvbXBvc2l0aW9uRW5kLF9vbkJsdXI9cHJvcHMub25CbHVyLG9wZW49cHJvcHMub3BlbixhdHRycz1wcm9wcy5hdHRycyxpbnB1dE5vZGU9aW5wdXRFbGVtZW50fHxyZWFjdC5jcmVhdGVFbGVtZW50KCJpbnB1dCIsbnVsbCksX2lucHV0Tm9kZT1pbnB1dE5vZGUsb3JpZ2luUmVmPV9pbnB1dE5vZGUucmVmLG9yaWdpblByb3BzPV9pbnB1dE5vZGUucHJvcHMsb25PcmlnaW5LZXlEb3duPW9yaWdpblByb3BzLm9uS2V5RG93bixvbk9yaWdpbkNoYW5nZT1vcmlnaW5Qcm9wcy5vbkNoYW5nZSxvbk9yaWdpbk1vdXNlRG93bj1vcmlnaW5Qcm9wcy5vbk1vdXNlRG93bixvbk9yaWdpbkNvbXBvc2l0aW9uU3RhcnQ9b3JpZ2luUHJvcHMub25Db21wb3NpdGlvblN0YXJ0LG9uT3JpZ2luQ29tcG9zaXRpb25FbmQ9b3JpZ2luUHJvcHMub25Db21wb3NpdGlvbkVuZCxvbk9yaWdpbkJsdXI9b3JpZ2luUHJvcHMub25CbHVyLHN0eWxlPW9yaWdpblByb3BzLnN0eWxlO3JldHVybigwLGVzX3dhcm5pbmcuS3ApKCEoIm1heExlbmd0aCJpbiBpbnB1dE5vZGUucHJvcHMpLCJQYXNzaW5nICdtYXhMZW5ndGgnIHRvIGlucHV0IGVsZW1lbnQgZGlyZWN0bHkgbWF5IG5vdCB3b3JrIGJlY2F1c2UgaW5wdXQgaW4gQmFzZVNlbGVjdCBpcyBjb250cm9sbGVkLiIpLGlucHV0Tm9kZT1yZWFjdC5jbG9uZUVsZW1lbnQoaW5wdXROb2RlLCgwLG9iamVjdFNwcmVhZDIuWikoKDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt0eXBlOiJzZWFyY2gifSxvcmlnaW5Qcm9wcykse30se2lkOmlkLHJlZjooMCxlc19yZWYuc1EpKHJlZixvcmlnaW5SZWYpLGRpc2FibGVkOmRpc2FibGVkLHRhYkluZGV4OnRhYkluZGV4LGF1dG9Db21wbGV0ZTphdXRvQ29tcGxldGV8fCJvZmYiLGF1dG9Gb2N1czphdXRvRm9jdXMsY2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKSgiIi5jb25jYXQocHJlZml4Q2xzLCItc2VsZWN0aW9uLXNlYXJjaC1pbnB1dCIpLG51bGw9PT0oX2lucHV0Tm9kZTI9aW5wdXROb2RlKXx8dm9pZCAwPT09X2lucHV0Tm9kZTJ8fG51bGw9PT0oX2lucHV0Tm9kZTI9X2lucHV0Tm9kZTIucHJvcHMpfHx2b2lkIDA9PT1faW5wdXROb2RlMj92b2lkIDA6X2lucHV0Tm9kZTIuY2xhc3NOYW1lKSxyb2xlOiJjb21ib2JveCIsImFyaWEtZXhwYW5kZWQiOm9wZW58fCExLCJhcmlhLWhhc3BvcHVwIjoibGlzdGJveCIsImFyaWEtb3ducyI6IiIuY29uY2F0KGlkLCJfbGlzdCIpLCJhcmlhLWF1dG9jb21wbGV0ZSI6Imxpc3QiLCJhcmlhLWNvbnRyb2xzIjoiIi5jb25jYXQoaWQsIl9saXN0IiksImFyaWEtYWN0aXZlZGVzY2VuZGFudCI6b3Blbj9hY3RpdmVEZXNjZW5kYW50SWQ6dm9pZCAwfSxhdHRycykse30se3ZhbHVlOmVkaXRhYmxlP3ZhbHVlOiIiLG1heExlbmd0aDptYXhMZW5ndGgscmVhZE9ubHk6IWVkaXRhYmxlLHVuc2VsZWN0YWJsZTplZGl0YWJsZT9udWxsOiJvbiIsc3R5bGU6KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LHN0eWxlKSx7fSx7b3BhY2l0eTplZGl0YWJsZT9udWxsOjB9KSxvbktleURvd246ZnVuY3Rpb24oZXZlbnQpe19vbktleURvd24oZXZlbnQpLG9uT3JpZ2luS2V5RG93biYmb25PcmlnaW5LZXlEb3duKGV2ZW50KX0sb25Nb3VzZURvd246ZnVuY3Rpb24oZXZlbnQpe19vbk1vdXNlRG93bihldmVudCksb25PcmlnaW5Nb3VzZURvd24mJm9uT3JpZ2luTW91c2VEb3duKGV2ZW50KX0sb25DaGFuZ2U6ZnVuY3Rpb24oZXZlbnQpe19vbkNoYW5nZShldmVudCksb25PcmlnaW5DaGFuZ2UmJm9uT3JpZ2luQ2hhbmdlKGV2ZW50KX0sb25Db21wb3NpdGlvblN0YXJ0OmZ1bmN0aW9uKGV2ZW50KXtfb25Db21wb3NpdGlvblN0YXJ0KGV2ZW50KSxvbk9yaWdpbkNvbXBvc2l0aW9uU3RhcnQmJm9uT3JpZ2luQ29tcG9zaXRpb25TdGFydChldmVudCl9LG9uQ29tcG9zaXRpb25FbmQ6ZnVuY3Rpb24oZXZlbnQpe19vbkNvbXBvc2l0aW9uRW5kKGV2ZW50KSxvbk9yaWdpbkNvbXBvc2l0aW9uRW5kJiZvbk9yaWdpbkNvbXBvc2l0aW9uRW5kKGV2ZW50KX0sb25QYXN0ZTpvblBhc3RlLG9uQmx1cjpmdW5jdGlvbihldmVudCl7X29uQmx1cihldmVudCksb25PcmlnaW5CbHVyJiZvbk9yaWdpbkJsdXIoZXZlbnQpfX0pKX0pO2Z1bmN0aW9uIGNvbW1vblV0aWxfdG9BcnJheSh2YWx1ZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpP3ZhbHVlOnZvaWQgMCE9PXZhbHVlP1t2YWx1ZV06W119dmFyIGlzQ2xpZW50PSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuZG9jdW1lbnQmJndpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7ZnVuY3Rpb24gaXNUaXRsZVR5cGUodGl0bGUpe3JldHVyblsic3RyaW5nIiwibnVtYmVyIl0uaW5jbHVkZXMoKDAsZXNtX3R5cGVvZi5aKSh0aXRsZSkpfWZ1bmN0aW9uIGdldFRpdGxlKGl0ZW0pe3ZhciB0aXRsZT12b2lkIDA7cmV0dXJuIGl0ZW0mJihpc1RpdGxlVHlwZShpdGVtLnRpdGxlKT90aXRsZT1pdGVtLnRpdGxlLnRvU3RyaW5nKCk6aXNUaXRsZVR5cGUoaXRlbS5sYWJlbCkmJih0aXRsZT1pdGVtLmxhYmVsLnRvU3RyaW5nKCkpKSx0aXRsZX1mdW5jdGlvbiBpdGVtS2V5KHZhbHVlKXt2YXIgX3ZhbHVlJGtleTtyZXR1cm4gbnVsbCE9PShfdmFsdWUka2V5PXZhbHVlLmtleSkmJnZvaWQgMCE9PV92YWx1ZSRrZXk/X3ZhbHVlJGtleTp2YWx1ZS52YWx1ZX12YXIgb25QcmV2ZW50TW91c2VEb3duPWZ1bmN0aW9uKGV2ZW50KXtldmVudC5wcmV2ZW50RGVmYXVsdCgpLGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpfSxNdWx0aXBsZVNlbGVjdG9yPWZ1bmN0aW9uKHByb3BzKXt2YXIgZWZmZWN0LGRlcHMsaWQ9cHJvcHMuaWQscHJlZml4Q2xzPXByb3BzLnByZWZpeENscyx2YWx1ZXM9cHJvcHMudmFsdWVzLG9wZW49cHJvcHMub3BlbixzZWFyY2hWYWx1ZT1wcm9wcy5zZWFyY2hWYWx1ZSxhdXRvQ2xlYXJTZWFyY2hWYWx1ZT1wcm9wcy5hdXRvQ2xlYXJTZWFyY2hWYWx1ZSxpbnB1dFJlZj1wcm9wcy5pbnB1dFJlZixwbGFjZWhvbGRlcj1wcm9wcy5wbGFjZWhvbGRlcixkaXNhYmxlZD1wcm9wcy5kaXNhYmxlZCxtb2RlPXByb3BzLm1vZGUsc2hvd1NlYXJjaD1wcm9wcy5zaG93U2VhcmNoLGF1dG9Gb2N1cz1wcm9wcy5hdXRvRm9jdXMsYXV0b0NvbXBsZXRlPXByb3BzLmF1dG9Db21wbGV0ZSxhY3RpdmVEZXNjZW5kYW50SWQ9cHJvcHMuYWN0aXZlRGVzY2VuZGFudElkLHRhYkluZGV4PXByb3BzLnRhYkluZGV4LHJlbW92ZUljb249cHJvcHMucmVtb3ZlSWNvbixtYXhUYWdDb3VudD1wcm9wcy5tYXhUYWdDb3VudCxtYXhUYWdUZXh0TGVuZ3RoPXByb3BzLm1heFRhZ1RleHRMZW5ndGgsX3Byb3BzJG1heFRhZ1BsYWNlaG9sPXByb3BzLm1heFRhZ1BsYWNlaG9sZGVyLG1heFRhZ1BsYWNlaG9sZGVyPXZvaWQgMD09PV9wcm9wcyRtYXhUYWdQbGFjZWhvbD9mdW5jdGlvbihvbWl0dGVkVmFsdWVzKXtyZXR1cm4iKyAiLmNvbmNhdChvbWl0dGVkVmFsdWVzLmxlbmd0aCwiIC4uLiIpfTpfcHJvcHMkbWF4VGFnUGxhY2Vob2wsdGFnUmVuZGVyPXByb3BzLnRhZ1JlbmRlcixvblRvZ2dsZU9wZW49cHJvcHMub25Ub2dnbGVPcGVuLG9uUmVtb3ZlPXByb3BzLm9uUmVtb3ZlLG9uSW5wdXRDaGFuZ2U9cHJvcHMub25JbnB1dENoYW5nZSxvbklucHV0UGFzdGU9cHJvcHMub25JbnB1dFBhc3RlLG9uSW5wdXRLZXlEb3duPXByb3BzLm9uSW5wdXRLZXlEb3duLG9uSW5wdXRNb3VzZURvd249cHJvcHMub25JbnB1dE1vdXNlRG93bixvbklucHV0Q29tcG9zaXRpb25TdGFydD1wcm9wcy5vbklucHV0Q29tcG9zaXRpb25TdGFydCxvbklucHV0Q29tcG9zaXRpb25FbmQ9cHJvcHMub25JbnB1dENvbXBvc2l0aW9uRW5kLG9uSW5wdXRCbHVyPXByb3BzLm9uSW5wdXRCbHVyLG1lYXN1cmVSZWY9cmVhY3QudXNlUmVmKG51bGwpLF91c2VTdGF0ZT0oMCxyZWFjdC51c2VTdGF0ZSkoMCksX3VzZVN0YXRlMj0oMCxzbGljZWRUb0FycmF5LlopKF91c2VTdGF0ZSwyKSxpbnB1dFdpZHRoPV91c2VTdGF0ZTJbMF0sc2V0SW5wdXRXaWR0aD1fdXNlU3RhdGUyWzFdLF91c2VTdGF0ZTM9KDAscmVhY3QudXNlU3RhdGUpKCExKSxfdXNlU3RhdGU0PSgwLHNsaWNlZFRvQXJyYXkuWikoX3VzZVN0YXRlMywyKSxmb2N1c2VkPV91c2VTdGF0ZTRbMF0sc2V0Rm9jdXNlZD1fdXNlU3RhdGU0WzFdLHNlbGVjdGlvblByZWZpeENscz0iIi5jb25jYXQocHJlZml4Q2xzLCItc2VsZWN0aW9uIiksaW5wdXRWYWx1ZT1vcGVufHwibXVsdGlwbGUiPT09bW9kZSYmITE9PT1hdXRvQ2xlYXJTZWFyY2hWYWx1ZXx8InRhZ3MiPT09bW9kZT9zZWFyY2hWYWx1ZToiIjtlZmZlY3Q9ZnVuY3Rpb24oKXtzZXRJbnB1dFdpZHRoKG1lYXN1cmVSZWYuY3VycmVudC5zY3JvbGxXaWR0aCl9LGRlcHM9W2lucHV0VmFsdWVdLGlzQ2xpZW50P3JlYWN0LnVzZUxheW91dEVmZmVjdChlZmZlY3QsZGVwcyk6cmVhY3QudXNlRWZmZWN0KGVmZmVjdCxkZXBzKTt2YXIgZGVmYXVsdFJlbmRlclNlbGVjdG9yPWZ1bmN0aW9uKGl0ZW0sY29udGVudCxpdGVtRGlzYWJsZWQsY2xvc2FibGUsb25DbG9zZSl7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHt0aXRsZTpnZXRUaXRsZShpdGVtKSxjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKCIiLmNvbmNhdChzZWxlY3Rpb25QcmVmaXhDbHMsIi1pdGVtIiksKDAsZGVmaW5lUHJvcGVydHkuWikoe30sIiIuY29uY2F0KHNlbGVjdGlvblByZWZpeENscywiLWl0ZW0tZGlzYWJsZWQiKSxpdGVtRGlzYWJsZWQpKX0scmVhY3QuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQoc2VsZWN0aW9uUHJlZml4Q2xzLCItaXRlbS1jb250ZW50Iil9LGNvbnRlbnQpLGNsb3NhYmxlJiZyZWFjdC5jcmVhdGVFbGVtZW50KGVzX1RyYW5zQnRuLHtjbGFzc05hbWU6IiIuY29uY2F0KHNlbGVjdGlvblByZWZpeENscywiLWl0ZW0tcmVtb3ZlIiksb25Nb3VzZURvd246b25QcmV2ZW50TW91c2VEb3duLG9uQ2xpY2s6b25DbG9zZSxjdXN0b21pemVJY29uOnJlbW92ZUljb259LCJceGQ3IikpfSxjdXN0b21pemVSZW5kZXJTZWxlY3Rvcj1mdW5jdGlvbih2YWx1ZSxjb250ZW50LGl0ZW1EaXNhYmxlZCxjbG9zYWJsZSxvbkNsb3NlLGlzTWF4VGFnKXtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudCgic3BhbiIse29uTW91c2VEb3duOmZ1bmN0aW9uKGUpe29uUHJldmVudE1vdXNlRG93bihlKSxvblRvZ2dsZU9wZW4oIW9wZW4pfX0sdGFnUmVuZGVyKHtsYWJlbDpjb250ZW50LHZhbHVlOnZhbHVlLGRpc2FibGVkOml0ZW1EaXNhYmxlZCxjbG9zYWJsZTpjbG9zYWJsZSxvbkNsb3NlOm9uQ2xvc2UsaXNNYXhUYWc6ISFpc01heFRhZ30pKX0saW5wdXROb2RlPXJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQoc2VsZWN0aW9uUHJlZml4Q2xzLCItc2VhcmNoIiksc3R5bGU6e3dpZHRoOmlucHV0V2lkdGh9LG9uRm9jdXM6ZnVuY3Rpb24oKXtzZXRGb2N1c2VkKCEwKX0sb25CbHVyOmZ1bmN0aW9uKCl7c2V0Rm9jdXNlZCghMSl9fSxyZWFjdC5jcmVhdGVFbGVtZW50KFJlZklucHV0LHtyZWY6aW5wdXRSZWYsb3BlbjpvcGVuLHByZWZpeENsczpwcmVmaXhDbHMsaWQ6aWQsaW5wdXRFbGVtZW50Om51bGwsZGlzYWJsZWQ6ZGlzYWJsZWQsYXV0b0ZvY3VzOmF1dG9Gb2N1cyxhdXRvQ29tcGxldGU6YXV0b0NvbXBsZXRlLGVkaXRhYmxlOiJ0YWdzIj09PW1vZGV8fCJtdWx0aXBsZSI9PT1tb2RlJiYhMT09PWF1dG9DbGVhclNlYXJjaFZhbHVlfHxzaG93U2VhcmNoJiYob3Blbnx8Zm9jdXNlZCksYWN0aXZlRGVzY2VuZGFudElkOmFjdGl2ZURlc2NlbmRhbnRJZCx2YWx1ZTppbnB1dFZhbHVlLG9uS2V5RG93bjpvbklucHV0S2V5RG93bixvbk1vdXNlRG93bjpvbklucHV0TW91c2VEb3duLG9uQ2hhbmdlOm9uSW5wdXRDaGFuZ2Usb25QYXN0ZTpvbklucHV0UGFzdGUsb25Db21wb3NpdGlvblN0YXJ0Om9uSW5wdXRDb21wb3NpdGlvblN0YXJ0LG9uQ29tcG9zaXRpb25FbmQ6b25JbnB1dENvbXBvc2l0aW9uRW5kLG9uQmx1cjpvbklucHV0Qmx1cix0YWJJbmRleDp0YWJJbmRleCxhdHRyczooMCxwaWNrQXR0cnMuWikocHJvcHMsITApfSkscmVhY3QuY3JlYXRlRWxlbWVudCgic3BhbiIse3JlZjptZWFzdXJlUmVmLGNsYXNzTmFtZToiIi5jb25jYXQoc2VsZWN0aW9uUHJlZml4Q2xzLCItc2VhcmNoLW1pcnJvciIpLCJhcmlhLWhpZGRlbiI6ITB9LGlucHV0VmFsdWUsIlx4YTAiKSksc2VsZWN0aW9uTm9kZT1yZWFjdC5jcmVhdGVFbGVtZW50KGVzLlose3ByZWZpeENsczoiIi5jb25jYXQoc2VsZWN0aW9uUHJlZml4Q2xzLCItb3ZlcmZsb3ciKSxkYXRhOnZhbHVlcyxyZW5kZXJJdGVtOmZ1bmN0aW9uKHZhbHVlSXRlbSl7dmFyIGl0ZW1EaXNhYmxlZD12YWx1ZUl0ZW0uZGlzYWJsZWQsbGFiZWw9dmFsdWVJdGVtLmxhYmVsLHZhbHVlPXZhbHVlSXRlbS52YWx1ZSxjbG9zYWJsZT0hZGlzYWJsZWQmJiFpdGVtRGlzYWJsZWQsZGlzcGxheUxhYmVsPWxhYmVsO2lmKCJudW1iZXIiPT10eXBlb2YgbWF4VGFnVGV4dExlbmd0aCYmKCJzdHJpbmciPT10eXBlb2YgbGFiZWx8fCJudW1iZXIiPT10eXBlb2YgbGFiZWwpKXt2YXIgc3RyTGFiZWw9U3RyaW5nKGRpc3BsYXlMYWJlbCk7c3RyTGFiZWwubGVuZ3RoPm1heFRhZ1RleHRMZW5ndGgmJihkaXNwbGF5TGFiZWw9IiIuY29uY2F0KHN0ckxhYmVsLnNsaWNlKDAsbWF4VGFnVGV4dExlbmd0aCksIi4uLiIpKX12YXIgb25DbG9zZT1mdW5jdGlvbihldmVudCl7ZXZlbnQmJmV2ZW50LnN0b3BQcm9wYWdhdGlvbigpLG9uUmVtb3ZlKHZhbHVlSXRlbSl9O3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0YWdSZW5kZXI/Y3VzdG9taXplUmVuZGVyU2VsZWN0b3IodmFsdWUsZGlzcGxheUxhYmVsLGl0ZW1EaXNhYmxlZCxjbG9zYWJsZSxvbkNsb3NlKTpkZWZhdWx0UmVuZGVyU2VsZWN0b3IodmFsdWVJdGVtLGRpc3BsYXlMYWJlbCxpdGVtRGlzYWJsZWQsY2xvc2FibGUsb25DbG9zZSl9LHJlbmRlclJlc3Q6ZnVuY3Rpb24ob21pdHRlZFZhbHVlcyl7aWYoIXZhbHVlcy5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIGNvbnRlbnQ9ImZ1bmN0aW9uIj09dHlwZW9mIG1heFRhZ1BsYWNlaG9sZGVyP21heFRhZ1BsYWNlaG9sZGVyKG9taXR0ZWRWYWx1ZXMpOm1heFRhZ1BsYWNlaG9sZGVyO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0YWdSZW5kZXI/Y3VzdG9taXplUmVuZGVyU2VsZWN0b3Iodm9pZCAwLGNvbnRlbnQsITEsITEsdm9pZCAwLCEwKTpkZWZhdWx0UmVuZGVyU2VsZWN0b3Ioe3RpdGxlOmNvbnRlbnR9LGNvbnRlbnQsITEpfSxzdWZmaXg6aW5wdXROb2RlLGl0ZW1LZXk6aXRlbUtleSxtYXhDb3VudDptYXhUYWdDb3VudH0pO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChzZWxlY3Rpb25QcmVmaXhDbHMsIi13cmFwIil9LHNlbGVjdGlvbk5vZGUsIXZhbHVlcy5sZW5ndGgmJiFpbnB1dFZhbHVlJiZyZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChzZWxlY3Rpb25QcmVmaXhDbHMsIi1wbGFjZWhvbGRlciIpfSxwbGFjZWhvbGRlcikpfSxTZWxlY3Rvcl9TaW5nbGVTZWxlY3Rvcj1mdW5jdGlvbihwcm9wcyl7dmFyIGlucHV0RWxlbWVudD1wcm9wcy5pbnB1dEVsZW1lbnQscHJlZml4Q2xzPXByb3BzLnByZWZpeENscyxpZD1wcm9wcy5pZCxpbnB1dFJlZj1wcm9wcy5pbnB1dFJlZixkaXNhYmxlZD1wcm9wcy5kaXNhYmxlZCxhdXRvRm9jdXM9cHJvcHMuYXV0b0ZvY3VzLGF1dG9Db21wbGV0ZT1wcm9wcy5hdXRvQ29tcGxldGUsYWN0aXZlRGVzY2VuZGFudElkPXByb3BzLmFjdGl2ZURlc2NlbmRhbnRJZCxtb2RlPXByb3BzLm1vZGUsb3Blbj1wcm9wcy5vcGVuLHZhbHVlcz1wcm9wcy52YWx1ZXMscGxhY2Vob2xkZXI9cHJvcHMucGxhY2Vob2xkZXIsdGFiSW5kZXg9cHJvcHMudGFiSW5kZXgsc2hvd1NlYXJjaD1wcm9wcy5zaG93U2VhcmNoLHNlYXJjaFZhbHVlPXByb3BzLnNlYXJjaFZhbHVlLGFjdGl2ZVZhbHVlPXByb3BzLmFjdGl2ZVZhbHVlLG1heExlbmd0aD1wcm9wcy5tYXhMZW5ndGgsb25JbnB1dEtleURvd249cHJvcHMub25JbnB1dEtleURvd24sb25JbnB1dE1vdXNlRG93bj1wcm9wcy5vbklucHV0TW91c2VEb3duLG9uSW5wdXRDaGFuZ2U9cHJvcHMub25JbnB1dENoYW5nZSxvbklucHV0UGFzdGU9cHJvcHMub25JbnB1dFBhc3RlLG9uSW5wdXRDb21wb3NpdGlvblN0YXJ0PXByb3BzLm9uSW5wdXRDb21wb3NpdGlvblN0YXJ0LG9uSW5wdXRDb21wb3NpdGlvbkVuZD1wcm9wcy5vbklucHV0Q29tcG9zaXRpb25FbmQsb25JbnB1dEJsdXI9cHJvcHMub25JbnB1dEJsdXIsdGl0bGU9cHJvcHMudGl0bGUsX1JlYWN0JHVzZVN0YXRlPXJlYWN0LnVzZVN0YXRlKCExKSxfUmVhY3QkdXNlU3RhdGUyPSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlLDIpLGlucHV0Q2hhbmdlZD1fUmVhY3QkdXNlU3RhdGUyWzBdLHNldElucHV0Q2hhbmdlZD1fUmVhY3QkdXNlU3RhdGUyWzFdLGNvbWJvYm94PSJjb21ib2JveCI9PT1tb2RlLGl0ZW09dmFsdWVzWzBdLGlucHV0VmFsdWU9c2VhcmNoVmFsdWV8fCIiO2NvbWJvYm94JiZhY3RpdmVWYWx1ZSYmIWlucHV0Q2hhbmdlZCYmKGlucHV0VmFsdWU9YWN0aXZlVmFsdWUpLHJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbigpe2NvbWJvYm94JiZzZXRJbnB1dENoYW5nZWQoITEpfSxbY29tYm9ib3gsYWN0aXZlVmFsdWVdKTt2YXIgaGFzVGV4dElucHV0PSgiY29tYm9ib3giPT09bW9kZXx8ISFvcGVufHwhIXNob3dTZWFyY2gpJiYhIWlucHV0VmFsdWUsc2VsZWN0aW9uVGl0bGU9dm9pZCAwPT09dGl0bGU/Z2V0VGl0bGUoaXRlbSk6dGl0bGUscGxhY2Vob2xkZXJOb2RlPXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gaXRlbT9udWxsOnJlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6IiIuY29uY2F0KHByZWZpeENscywiLXNlbGVjdGlvbi1wbGFjZWhvbGRlciIpLHN0eWxlOmhhc1RleHRJbnB1dD97dmlzaWJpbGl0eToiaGlkZGVuIn06dm9pZCAwfSxwbGFjZWhvbGRlcil9LFtpdGVtLGhhc1RleHRJbnB1dCxwbGFjZWhvbGRlcixwcmVmaXhDbHNdKTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItc2VsZWN0aW9uLXdyYXAiKX0scmVhY3QuY3JlYXRlRWxlbWVudCgic3BhbiIse2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItc2VsZWN0aW9uLXNlYXJjaCIpfSxyZWFjdC5jcmVhdGVFbGVtZW50KFJlZklucHV0LHtyZWY6aW5wdXRSZWYscHJlZml4Q2xzOnByZWZpeENscyxpZDppZCxvcGVuOm9wZW4saW5wdXRFbGVtZW50OmlucHV0RWxlbWVudCxkaXNhYmxlZDpkaXNhYmxlZCxhdXRvRm9jdXM6YXV0b0ZvY3VzLGF1dG9Db21wbGV0ZTphdXRvQ29tcGxldGUsZWRpdGFibGU6Y29tYm9ib3h8fHNob3dTZWFyY2gsYWN0aXZlRGVzY2VuZGFudElkOmFjdGl2ZURlc2NlbmRhbnRJZCx2YWx1ZTppbnB1dFZhbHVlLG9uS2V5RG93bjpvbklucHV0S2V5RG93bixvbk1vdXNlRG93bjpvbklucHV0TW91c2VEb3duLG9uQ2hhbmdlOmZ1bmN0aW9uKGUpe3NldElucHV0Q2hhbmdlZCghMCksb25JbnB1dENoYW5nZShlKX0sb25QYXN0ZTpvbklucHV0UGFzdGUsb25Db21wb3NpdGlvblN0YXJ0Om9uSW5wdXRDb21wb3NpdGlvblN0YXJ0LG9uQ29tcG9zaXRpb25FbmQ6b25JbnB1dENvbXBvc2l0aW9uRW5kLG9uQmx1cjpvbklucHV0Qmx1cix0YWJJbmRleDp0YWJJbmRleCxhdHRyczooMCxwaWNrQXR0cnMuWikocHJvcHMsITApLG1heExlbmd0aDpjb21ib2JveD9tYXhMZW5ndGg6dm9pZCAwfSkpLCFjb21ib2JveCYmaXRlbT9yZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi1zZWxlY3Rpb24taXRlbSIpLHRpdGxlOnNlbGVjdGlvblRpdGxlLHN0eWxlOmhhc1RleHRJbnB1dD97dmlzaWJpbGl0eToiaGlkZGVuIn06dm9pZCAwfSxpdGVtLmxhYmVsKTpudWxsLHBsYWNlaG9sZGVyTm9kZSl9LEZvcndhcmRTZWxlY3Rvcj1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7dmFyIGlucHV0UmVmPSgwLHJlYWN0LnVzZVJlZikobnVsbCksY29tcG9zaXRpb25TdGF0dXNSZWY9KDAscmVhY3QudXNlUmVmKSghMSkscHJlZml4Q2xzPXByb3BzLnByZWZpeENscyxvcGVuPXByb3BzLm9wZW4sbW9kZT1wcm9wcy5tb2RlLHNob3dTZWFyY2g9cHJvcHMuc2hvd1NlYXJjaCx0b2tlbldpdGhFbnRlcj1wcm9wcy50b2tlbldpdGhFbnRlcixkaXNhYmxlZD1wcm9wcy5kaXNhYmxlZCxwcmVmaXg9cHJvcHMucHJlZml4LGF1dG9DbGVhclNlYXJjaFZhbHVlPXByb3BzLmF1dG9DbGVhclNlYXJjaFZhbHVlLG9uU2VhcmNoPXByb3BzLm9uU2VhcmNoLG9uU2VhcmNoU3VibWl0PXByb3BzLm9uU2VhcmNoU3VibWl0LG9uVG9nZ2xlT3Blbj1wcm9wcy5vblRvZ2dsZU9wZW4sb25JbnB1dEtleURvd249cHJvcHMub25JbnB1dEtleURvd24sb25JbnB1dEJsdXI9cHJvcHMub25JbnB1dEJsdXIsZG9tUmVmPXByb3BzLmRvbVJlZjtyZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKHJlZixmdW5jdGlvbigpe3JldHVybntmb2N1czpmdW5jdGlvbihvcHRpb25zKXtpbnB1dFJlZi5jdXJyZW50LmZvY3VzKG9wdGlvbnMpfSxibHVyOmZ1bmN0aW9uKCl7aW5wdXRSZWYuY3VycmVudC5ibHVyKCl9fX0pO3ZhciBfdXNlTG9jaz11c2VMb2NrKDApLF91c2VMb2NrMj0oMCxzbGljZWRUb0FycmF5LlopKF91c2VMb2NrLDIpLGdldElucHV0TW91c2VEb3duPV91c2VMb2NrMlswXSxzZXRJbnB1dE1vdXNlRG93bj1fdXNlTG9jazJbMV0scGFzdGVkVGV4dFJlZj0oMCxyZWFjdC51c2VSZWYpKG51bGwpLHRyaWdnZXJPblNlYXJjaD1mdW5jdGlvbih2YWx1ZSl7ITEhPT1vblNlYXJjaCh2YWx1ZSwhMCxjb21wb3NpdGlvblN0YXR1c1JlZi5jdXJyZW50KSYmb25Ub2dnbGVPcGVuKCEwKX0sc2hhcmVkUHJvcHM9e2lucHV0UmVmOmlucHV0UmVmLG9uSW5wdXRLZXlEb3duOmZ1bmN0aW9uKGV2ZW50KXt2YXIgd2hpY2g9ZXZlbnQud2hpY2gsaXNUZXh0QXJlYUVsZW1lbnQ9aW5wdXRSZWYuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQ7IWlzVGV4dEFyZWFFbGVtZW50JiZvcGVuJiYod2hpY2g9PT1LZXlDb2RlLlouVVB8fHdoaWNoPT09S2V5Q29kZS5aLkRPV04pJiZldmVudC5wcmV2ZW50RGVmYXVsdCgpLG9uSW5wdXRLZXlEb3duJiZvbklucHV0S2V5RG93bihldmVudCksd2hpY2ghPT1LZXlDb2RlLlouRU5URVJ8fCJ0YWdzIiE9PW1vZGV8fGNvbXBvc2l0aW9uU3RhdHVzUmVmLmN1cnJlbnR8fG9wZW58fG51bGw9PW9uU2VhcmNoU3VibWl0fHxvblNlYXJjaFN1Ym1pdChldmVudC50YXJnZXQudmFsdWUpLGlzVGV4dEFyZWFFbGVtZW50JiYhb3BlbiYmfltLZXlDb2RlLlouVVAsS2V5Q29kZS5aLkRPV04sS2V5Q29kZS5aLkxFRlQsS2V5Q29kZS5aLlJJR0hUXS5pbmRleE9mKHdoaWNoKXx8IXdoaWNofHxbS2V5Q29kZS5aLkVTQyxLZXlDb2RlLlouU0hJRlQsS2V5Q29kZS5aLkJBQ0tTUEFDRSxLZXlDb2RlLlouVEFCLEtleUNvZGUuWi5XSU5fS0VZLEtleUNvZGUuWi5BTFQsS2V5Q29kZS5aLk1FVEEsS2V5Q29kZS5aLldJTl9LRVlfUklHSFQsS2V5Q29kZS5aLkNUUkwsS2V5Q29kZS5aLlNFTUlDT0xPTixLZXlDb2RlLlouRVFVQUxTLEtleUNvZGUuWi5DQVBTX0xPQ0ssS2V5Q29kZS5aLkNPTlRFWFRfTUVOVSxLZXlDb2RlLlouRjEsS2V5Q29kZS5aLkYyLEtleUNvZGUuWi5GMyxLZXlDb2RlLlouRjQsS2V5Q29kZS5aLkY1LEtleUNvZGUuWi5GNixLZXlDb2RlLlouRjcsS2V5Q29kZS5aLkY4LEtleUNvZGUuWi5GOSxLZXlDb2RlLlouRjEwLEtleUNvZGUuWi5GMTEsS2V5Q29kZS5aLkYxMl0uaW5jbHVkZXMod2hpY2gpfHxvblRvZ2dsZU9wZW4oITApfSxvbklucHV0TW91c2VEb3duOmZ1bmN0aW9uKCl7c2V0SW5wdXRNb3VzZURvd24oITApfSxvbklucHV0Q2hhbmdlOmZ1bmN0aW9uKGV2ZW50KXt2YXIgdmFsdWU9ZXZlbnQudGFyZ2V0LnZhbHVlO2lmKHRva2VuV2l0aEVudGVyJiZwYXN0ZWRUZXh0UmVmLmN1cnJlbnQmJi9bXHJcbl0vLnRlc3QocGFzdGVkVGV4dFJlZi5jdXJyZW50KSl7dmFyIHJlcGxhY2VkVGV4dD1wYXN0ZWRUZXh0UmVmLmN1cnJlbnQucmVwbGFjZSgvW1xyXG5dKyQvLCIiKS5yZXBsYWNlKC9cclxuL2csIiAiKS5yZXBsYWNlKC9bXHJcbl0vZywiICIpO3ZhbHVlPXZhbHVlLnJlcGxhY2UocmVwbGFjZWRUZXh0LHBhc3RlZFRleHRSZWYuY3VycmVudCl9cGFzdGVkVGV4dFJlZi5jdXJyZW50PW51bGwsdHJpZ2dlck9uU2VhcmNoKHZhbHVlKX0sb25JbnB1dFBhc3RlOmZ1bmN0aW9uKGUpe3ZhciBjbGlwYm9hcmREYXRhPWUuY2xpcGJvYXJkRGF0YSx2YWx1ZT1udWxsPT1jbGlwYm9hcmREYXRhP3ZvaWQgMDpjbGlwYm9hcmREYXRhLmdldERhdGEoInRleHQiKTtwYXN0ZWRUZXh0UmVmLmN1cnJlbnQ9dmFsdWV8fCIifSxvbklucHV0Q29tcG9zaXRpb25TdGFydDpmdW5jdGlvbigpe2NvbXBvc2l0aW9uU3RhdHVzUmVmLmN1cnJlbnQ9ITB9LG9uSW5wdXRDb21wb3NpdGlvbkVuZDpmdW5jdGlvbihlKXtjb21wb3NpdGlvblN0YXR1c1JlZi5jdXJyZW50PSExLCJjb21ib2JveCIhPT1tb2RlJiZ0cmlnZ2VyT25TZWFyY2goZS50YXJnZXQudmFsdWUpfSxvbklucHV0Qmx1cjpvbklucHV0Qmx1cn0sc2VsZWN0Tm9kZT0ibXVsdGlwbGUiPT09bW9kZXx8InRhZ3MiPT09bW9kZT9yZWFjdC5jcmVhdGVFbGVtZW50KE11bHRpcGxlU2VsZWN0b3IsKDAsZXNtX2V4dGVuZHMuWikoe30scHJvcHMsc2hhcmVkUHJvcHMpKTpyZWFjdC5jcmVhdGVFbGVtZW50KFNlbGVjdG9yX1NpbmdsZVNlbGVjdG9yLCgwLGVzbV9leHRlbmRzLlopKHt9LHByb3BzLHNoYXJlZFByb3BzKSk7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse3JlZjpkb21SZWYsY2xhc3NOYW1lOiIiLmNvbmNhdChwcmVmaXhDbHMsIi1zZWxlY3RvciIpLG9uQ2xpY2s6ZnVuY3Rpb24oX3JlZil7X3JlZi50YXJnZXQhPT1pbnB1dFJlZi5jdXJyZW50JiYodm9pZCAwIT09ZG9jdW1lbnQuYm9keS5zdHlsZS5tc1RvdWNoQWN0aW9uP3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpbnB1dFJlZi5jdXJyZW50LmZvY3VzKCl9KTppbnB1dFJlZi5jdXJyZW50LmZvY3VzKCkpfSxvbk1vdXNlRG93bjpmdW5jdGlvbihldmVudCl7dmFyIGlucHV0TW91c2VEb3duPWdldElucHV0TW91c2VEb3duKCk7ZXZlbnQudGFyZ2V0PT09aW5wdXRSZWYuY3VycmVudHx8aW5wdXRNb3VzZURvd258fCJjb21ib2JveCI9PT1tb2RlJiZkaXNhYmxlZHx8ZXZlbnQucHJldmVudERlZmF1bHQoKSwoImNvbWJvYm94Ij09PW1vZGV8fHNob3dTZWFyY2gmJmlucHV0TW91c2VEb3duKSYmb3Blbnx8KG9wZW4mJiExIT09YXV0b0NsZWFyU2VhcmNoVmFsdWUmJm9uU2VhcmNoKCIiLCEwLCExKSxvblRvZ2dsZU9wZW4oKSl9fSxwcmVmaXgmJnJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToiIi5jb25jYXQocHJlZml4Q2xzLCItcHJlZml4Iil9LHByZWZpeCksc2VsZWN0Tm9kZSl9KSx0cmlnZ2VyX2VzPV9fd2VicGFja19yZXF1aXJlX18oNDAyMjgpLF9leGNsdWRlZD1bInByZWZpeENscyIsImRpc2FibGVkIiwidmlzaWJsZSIsImNoaWxkcmVuIiwicG9wdXBFbGVtZW50IiwiYW5pbWF0aW9uIiwidHJhbnNpdGlvbk5hbWUiLCJkcm9wZG93blN0eWxlIiwiZHJvcGRvd25DbGFzc05hbWUiLCJkaXJlY3Rpb24iLCJwbGFjZW1lbnQiLCJidWlsdGluUGxhY2VtZW50cyIsImRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aCIsImRyb3Bkb3duUmVuZGVyIiwiZHJvcGRvd25BbGlnbiIsImdldFBvcHVwQ29udGFpbmVyIiwiZW1wdHkiLCJnZXRUcmlnZ2VyRE9NTm9kZSIsIm9uUG9wdXBWaXNpYmxlQ2hhbmdlIiwib25Qb3B1cE1vdXNlRW50ZXIiXSxnZXRCdWlsdEluUGxhY2VtZW50cz1mdW5jdGlvbihkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGgpe3ZhciBhZGp1c3RYPSEwPT09ZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoPzA6MTtyZXR1cm57Ym90dG9tTGVmdDp7cG9pbnRzOlsidGwiLCJibCJdLG9mZnNldDpbMCw0XSxvdmVyZmxvdzp7YWRqdXN0WDphZGp1c3RYLGFkanVzdFk6MX0saHRtbFJlZ2lvbjoic2Nyb2xsIn0sYm90dG9tUmlnaHQ6e3BvaW50czpbInRyIiwiYnIiXSxvZmZzZXQ6WzAsNF0sb3ZlcmZsb3c6e2FkanVzdFg6YWRqdXN0WCxhZGp1c3RZOjF9LGh0bWxSZWdpb246InNjcm9sbCJ9LHRvcExlZnQ6e3BvaW50czpbImJsIiwidGwiXSxvZmZzZXQ6WzAsLTRdLG92ZXJmbG93OnthZGp1c3RYOmFkanVzdFgsYWRqdXN0WToxfSxodG1sUmVnaW9uOiJzY3JvbGwifSx0b3BSaWdodDp7cG9pbnRzOlsiYnIiLCJ0ciJdLG9mZnNldDpbMCwtNF0sb3ZlcmZsb3c6e2FkanVzdFg6YWRqdXN0WCxhZGp1c3RZOjF9LGh0bWxSZWdpb246InNjcm9sbCJ9fX0sUmVmU2VsZWN0VHJpZ2dlcj1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7dmFyIHByZWZpeENscz1wcm9wcy5wcmVmaXhDbHMsdmlzaWJsZT0ocHJvcHMuZGlzYWJsZWQscHJvcHMudmlzaWJsZSksY2hpbGRyZW49cHJvcHMuY2hpbGRyZW4scG9wdXBFbGVtZW50PXByb3BzLnBvcHVwRWxlbWVudCxhbmltYXRpb249cHJvcHMuYW5pbWF0aW9uLHRyYW5zaXRpb25OYW1lPXByb3BzLnRyYW5zaXRpb25OYW1lLGRyb3Bkb3duU3R5bGU9cHJvcHMuZHJvcGRvd25TdHlsZSxkcm9wZG93bkNsYXNzTmFtZT1wcm9wcy5kcm9wZG93bkNsYXNzTmFtZSxfcHJvcHMkZGlyZWN0aW9uPXByb3BzLmRpcmVjdGlvbixwbGFjZW1lbnQ9cHJvcHMucGxhY2VtZW50LGJ1aWx0aW5QbGFjZW1lbnRzPXByb3BzLmJ1aWx0aW5QbGFjZW1lbnRzLGRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aD1wcm9wcy5kcm9wZG93bk1hdGNoU2VsZWN0V2lkdGgsZHJvcGRvd25SZW5kZXI9cHJvcHMuZHJvcGRvd25SZW5kZXIsZHJvcGRvd25BbGlnbj1wcm9wcy5kcm9wZG93bkFsaWduLGdldFBvcHVwQ29udGFpbmVyPXByb3BzLmdldFBvcHVwQ29udGFpbmVyLGVtcHR5PXByb3BzLmVtcHR5LGdldFRyaWdnZXJET01Ob2RlPXByb3BzLmdldFRyaWdnZXJET01Ob2RlLG9uUG9wdXBWaXNpYmxlQ2hhbmdlPXByb3BzLm9uUG9wdXBWaXNpYmxlQ2hhbmdlLG9uUG9wdXBNb3VzZUVudGVyPXByb3BzLm9uUG9wdXBNb3VzZUVudGVyLHJlc3RQcm9wcz0oMCxvYmplY3RXaXRob3V0UHJvcGVydGllcy5aKShwcm9wcyxfZXhjbHVkZWQpLGRyb3Bkb3duUHJlZml4Q2xzPSIiLmNvbmNhdChwcmVmaXhDbHMsIi1kcm9wZG93biIpLHBvcHVwTm9kZT1wb3B1cEVsZW1lbnQ7ZHJvcGRvd25SZW5kZXImJihwb3B1cE5vZGU9ZHJvcGRvd25SZW5kZXIocG9wdXBFbGVtZW50KSk7dmFyIG1lcmdlZEJ1aWx0aW5QbGFjZW1lbnRzPXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gYnVpbHRpblBsYWNlbWVudHN8fGdldEJ1aWx0SW5QbGFjZW1lbnRzKGRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aCl9LFtidWlsdGluUGxhY2VtZW50cyxkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGhdKSxtZXJnZWRUcmFuc2l0aW9uTmFtZT1hbmltYXRpb24/IiIuY29uY2F0KGRyb3Bkb3duUHJlZml4Q2xzLCItIikuY29uY2F0KGFuaW1hdGlvbik6dHJhbnNpdGlvbk5hbWUsaXNOdW1iZXJQb3B1cFdpZHRoPSJudW1iZXIiPT10eXBlb2YgZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoLHN0cmV0Y2g9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBpc051bWJlclBvcHVwV2lkdGg/bnVsbDohMT09PWRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aD8ibWluV2lkdGgiOiJ3aWR0aCJ9LFtkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGgsaXNOdW1iZXJQb3B1cFdpZHRoXSkscG9wdXBTdHlsZT1kcm9wZG93blN0eWxlO2lzTnVtYmVyUG9wdXBXaWR0aCYmKHBvcHVwU3R5bGU9KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LHBvcHVwU3R5bGUpLHt9LHt3aWR0aDpkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGh9KSk7dmFyIHRyaWdnZXJQb3B1cFJlZj1yZWFjdC51c2VSZWYobnVsbCk7cmV0dXJuIHJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLGZ1bmN0aW9uKCl7cmV0dXJue2dldFBvcHVwRWxlbWVudDpmdW5jdGlvbigpe3ZhciBfdHJpZ2dlclBvcHVwUmVmJGN1cnI7cmV0dXJuIG51bGw9PT0oX3RyaWdnZXJQb3B1cFJlZiRjdXJyPXRyaWdnZXJQb3B1cFJlZi5jdXJyZW50KXx8dm9pZCAwPT09X3RyaWdnZXJQb3B1cFJlZiRjdXJyP3ZvaWQgMDpfdHJpZ2dlclBvcHVwUmVmJGN1cnIucG9wdXBFbGVtZW50fX19KSxyZWFjdC5jcmVhdGVFbGVtZW50KHRyaWdnZXJfZXMuWiwoMCxlc21fZXh0ZW5kcy5aKSh7fSxyZXN0UHJvcHMse3Nob3dBY3Rpb246b25Qb3B1cFZpc2libGVDaGFuZ2U/WyJjbGljayJdOltdLGhpZGVBY3Rpb246b25Qb3B1cFZpc2libGVDaGFuZ2U/WyJjbGljayJdOltdLHBvcHVwUGxhY2VtZW50OnBsYWNlbWVudHx8KCJydGwiPT09KHZvaWQgMD09PV9wcm9wcyRkaXJlY3Rpb24/Imx0ciI6X3Byb3BzJGRpcmVjdGlvbik/ImJvdHRvbVJpZ2h0IjoiYm90dG9tTGVmdCIpLGJ1aWx0aW5QbGFjZW1lbnRzOm1lcmdlZEJ1aWx0aW5QbGFjZW1lbnRzLHByZWZpeENsczpkcm9wZG93blByZWZpeENscyxwb3B1cFRyYW5zaXRpb25OYW1lOm1lcmdlZFRyYW5zaXRpb25OYW1lLHBvcHVwOnJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse29uTW91c2VFbnRlcjpvblBvcHVwTW91c2VFbnRlcn0scG9wdXBOb2RlKSxyZWY6dHJpZ2dlclBvcHVwUmVmLHN0cmV0Y2g6c3RyZXRjaCxwb3B1cEFsaWduOmRyb3Bkb3duQWxpZ24scG9wdXBWaXNpYmxlOnZpc2libGUsZ2V0UG9wdXBDb250YWluZXI6Z2V0UG9wdXBDb250YWluZXIscG9wdXBDbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKGRyb3Bkb3duQ2xhc3NOYW1lLCgwLGRlZmluZVByb3BlcnR5LlopKHt9LCIiLmNvbmNhdChkcm9wZG93blByZWZpeENscywiLWVtcHR5IiksZW1wdHkpKSxwb3B1cFN0eWxlOnBvcHVwU3R5bGUsZ2V0VHJpZ2dlckRPTU5vZGU6Z2V0VHJpZ2dlckRPTU5vZGUsb25Qb3B1cFZpc2libGVDaGFuZ2U6b25Qb3B1cFZpc2libGVDaGFuZ2V9KSxjaGlsZHJlbil9KSxlc21fdG9BcnJheT1fX3dlYnBhY2tfcmVxdWlyZV9fKDg0NTA2KTtmdW5jdGlvbiBnZXRLZXkoZGF0YSxpbmRleCl7dmFyIHZhbHVlLGtleT1kYXRhLmtleTtyZXR1cm4oInZhbHVlImluIGRhdGEmJih2YWx1ZT1kYXRhLnZhbHVlKSxudWxsIT1rZXkpP2tleTp2b2lkIDAhPT12YWx1ZT92YWx1ZToicmMtaW5kZXgta2V5LSIuY29uY2F0KGluZGV4KX1mdW5jdGlvbiBpc1ZhbGlkQ291bnQodmFsdWUpe3JldHVybiB2b2lkIDAhPT12YWx1ZSYmIU51bWJlci5pc05hTih2YWx1ZSl9ZnVuY3Rpb24gZmlsbEZpZWxkTmFtZXMoZmllbGROYW1lcyxjaGlsZHJlbkFzRGF0YSl7dmFyIF9yZWY9ZmllbGROYW1lc3x8e30sbGFiZWw9X3JlZi5sYWJlbCx2YWx1ZT1fcmVmLnZhbHVlLG9wdGlvbnM9X3JlZi5vcHRpb25zLGdyb3VwTGFiZWw9X3JlZi5ncm91cExhYmVsLG1lcmdlZExhYmVsPWxhYmVsfHwoY2hpbGRyZW5Bc0RhdGE/ImNoaWxkcmVuIjoibGFiZWwiKTtyZXR1cm57bGFiZWw6bWVyZ2VkTGFiZWwsdmFsdWU6dmFsdWV8fCJ2YWx1ZSIsb3B0aW9uczpvcHRpb25zfHwib3B0aW9ucyIsZ3JvdXBMYWJlbDpncm91cExhYmVsfHxtZXJnZWRMYWJlbH19ZnVuY3Rpb24gaW5qZWN0UHJvcHNXaXRoT3B0aW9uKG9wdGlvbil7dmFyIG5ld09wdGlvbj0oMCxvYmplY3RTcHJlYWQyLlopKHt9LG9wdGlvbik7cmV0dXJuInByb3BzImluIG5ld09wdGlvbnx8T2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09wdGlvbiwicHJvcHMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4oMCxlc193YXJuaW5nLlpQKSghMSwiUmV0dXJuIHR5cGUgaXMgb3B0aW9uIGluc3RlYWQgb2YgT3B0aW9uIGluc3RhbmNlLiBQbGVhc2UgcmVhZCB2YWx1ZSBkaXJlY3RseSBpbnN0ZWFkIG9mIHJlYWRpbmcgZnJvbSBgcHJvcHNgLiIpLG5ld09wdGlvbn19KSxuZXdPcHRpb259dmFyIGdldFNlcGFyYXRlZENvbnRlbnQ9ZnVuY3Rpb24odGV4dCx0b2tlbnMsZW5kKXtpZighdG9rZW5zfHwhdG9rZW5zLmxlbmd0aClyZXR1cm4gbnVsbDt2YXIgbWF0Y2g9ITEsbGlzdD1mdW5jdGlvbiBzZXBhcmF0ZShzdHIsX3JlZjMpe3ZhciBfcmVmND0oMCxlc21fdG9BcnJheS5aKShfcmVmMyksdG9rZW49X3JlZjRbMF0scmVzdFRva2Vucz1fcmVmNC5zbGljZSgxKTtpZighdG9rZW4pcmV0dXJuW3N0cl07dmFyIGxpc3Q9c3RyLnNwbGl0KHRva2VuKTtyZXR1cm4gbWF0Y2g9bWF0Y2h8fGxpc3QubGVuZ3RoPjEsbGlzdC5yZWR1Y2UoZnVuY3Rpb24ocHJldkxpc3QsdW5pdFN0cil7cmV0dXJuW10uY29uY2F0KCgwLHRvQ29uc3VtYWJsZUFycmF5LlopKHByZXZMaXN0KSwoMCx0b0NvbnN1bWFibGVBcnJheS5aKShzZXBhcmF0ZSh1bml0U3RyLHJlc3RUb2tlbnMpKSl9LFtdKS5maWx0ZXIoQm9vbGVhbil9KHRleHQsdG9rZW5zKTtyZXR1cm4gbWF0Y2g/dm9pZCAwIT09ZW5kP2xpc3Quc2xpY2UoMCxlbmQpOmxpc3Q6bnVsbH0sU2VsZWN0Q29udGV4dD1yZWFjdC5jcmVhdGVDb250ZXh0KG51bGwpO2Z1bmN0aW9uIFBvbGl0ZShwcm9wcyl7dmFyIHZpc2libGU9cHJvcHMudmlzaWJsZSx2YWx1ZXM9cHJvcHMudmFsdWVzO3JldHVybiB2aXNpYmxlP3JlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHsiYXJpYS1saXZlIjoicG9saXRlIixzdHlsZTp7d2lkdGg6MCxoZWlnaHQ6MCxwb3NpdGlvbjoiYWJzb2x1dGUiLG92ZXJmbG93OiJoaWRkZW4iLG9wYWNpdHk6MH19LCIiLmNvbmNhdCh2YWx1ZXMuc2xpY2UoMCw1MCkubWFwKGZ1bmN0aW9uKF9yZWYpe3ZhciBsYWJlbD1fcmVmLmxhYmVsLHZhbHVlPV9yZWYudmFsdWU7cmV0dXJuWyJudW1iZXIiLCJzdHJpbmciXS5pbmNsdWRlcygoMCxlc21fdHlwZW9mLlopKGxhYmVsKSk/bGFiZWw6dmFsdWV9KS5qb2luKCIsICIpKSx2YWx1ZXMubGVuZ3RoPjUwPyIsIC4uLiI6bnVsbCk6bnVsbH12YXIgQmFzZVNlbGVjdF9leGNsdWRlZD1bImlkIiwicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwic2hvd1NlYXJjaCIsInRhZ1JlbmRlciIsImRpcmVjdGlvbiIsIm9taXREb21Qcm9wcyIsImRpc3BsYXlWYWx1ZXMiLCJvbkRpc3BsYXlWYWx1ZXNDaGFuZ2UiLCJlbXB0eU9wdGlvbnMiLCJub3RGb3VuZENvbnRlbnQiLCJvbkNsZWFyIiwibW9kZSIsImRpc2FibGVkIiwibG9hZGluZyIsImdldElucHV0RWxlbWVudCIsImdldFJhd0lucHV0RWxlbWVudCIsIm9wZW4iLCJkZWZhdWx0T3BlbiIsIm9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlIiwiYWN0aXZlVmFsdWUiLCJvbkFjdGl2ZVZhbHVlQ2hhbmdlIiwiYWN0aXZlRGVzY2VuZGFudElkIiwic2VhcmNoVmFsdWUiLCJhdXRvQ2xlYXJTZWFyY2hWYWx1ZSIsIm9uU2VhcmNoIiwib25TZWFyY2hTcGxpdCIsInRva2VuU2VwYXJhdG9ycyIsImFsbG93Q2xlYXIiLCJwcmVmaXgiLCJzdWZmaXhJY29uIiwiY2xlYXJJY29uIiwiT3B0aW9uTGlzdCIsImFuaW1hdGlvbiIsInRyYW5zaXRpb25OYW1lIiwiZHJvcGRvd25TdHlsZSIsImRyb3Bkb3duQ2xhc3NOYW1lIiwiZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoIiwiZHJvcGRvd25SZW5kZXIiLCJkcm9wZG93bkFsaWduIiwicGxhY2VtZW50IiwiYnVpbHRpblBsYWNlbWVudHMiLCJnZXRQb3B1cENvbnRhaW5lciIsInNob3dBY3Rpb24iLCJvbkZvY3VzIiwib25CbHVyIiwib25LZXlVcCIsIm9uS2V5RG93biIsIm9uTW91c2VEb3duIl0sREVGQVVMVF9PTUlUX1BST1BTPVsidmFsdWUiLCJvbkNoYW5nZSIsInJlbW92ZUljb24iLCJwbGFjZWhvbGRlciIsImF1dG9Gb2N1cyIsIm1heFRhZ0NvdW50IiwibWF4VGFnVGV4dExlbmd0aCIsIm1heFRhZ1BsYWNlaG9sZGVyIiwiY2hvaWNlVHJhbnNpdGlvbk5hbWUiLCJvbklucHV0S2V5RG93biIsIm9uUG9wdXBTY3JvbGwiLCJ0YWJJbmRleCJdLEJhc2VTZWxlY3RfaXNNdWx0aXBsZT1mdW5jdGlvbihtb2RlKXtyZXR1cm4idGFncyI9PT1tb2RlfHwibXVsdGlwbGUiPT09bW9kZX0sQmFzZVNlbGVjdD1yZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uKHByb3BzLHJlZil7dmFyIGVsZW1lbnRzLHByb3BzUmVmLF9jdXN0b21pemVSYXdJbnB1dEVsZSxvblRyaWdnZXJWaXNpYmxlQ2hhbmdlLGFycm93Tm9kZSxyZW5kZXJOb2RlLGlkPXByb3BzLmlkLHByZWZpeENscz1wcm9wcy5wcmVmaXhDbHMsY2xhc3NOYW1lPXByb3BzLmNsYXNzTmFtZSxzaG93U2VhcmNoPXByb3BzLnNob3dTZWFyY2gsdGFnUmVuZGVyPXByb3BzLnRhZ1JlbmRlcixkaXJlY3Rpb249cHJvcHMuZGlyZWN0aW9uLG9taXREb21Qcm9wcz1wcm9wcy5vbWl0RG9tUHJvcHMsZGlzcGxheVZhbHVlcz1wcm9wcy5kaXNwbGF5VmFsdWVzLG9uRGlzcGxheVZhbHVlc0NoYW5nZT1wcm9wcy5vbkRpc3BsYXlWYWx1ZXNDaGFuZ2UsZW1wdHlPcHRpb25zPXByb3BzLmVtcHR5T3B0aW9ucyxfcHJvcHMkbm90Rm91bmRDb250ZW49cHJvcHMubm90Rm91bmRDb250ZW50LG5vdEZvdW5kQ29udGVudD12b2lkIDA9PT1fcHJvcHMkbm90Rm91bmRDb250ZW4/Ik5vdCBGb3VuZCI6X3Byb3BzJG5vdEZvdW5kQ29udGVuLG9uQ2xlYXI9cHJvcHMub25DbGVhcixtb2RlPXByb3BzLm1vZGUsZGlzYWJsZWQ9cHJvcHMuZGlzYWJsZWQsbG9hZGluZz1wcm9wcy5sb2FkaW5nLGdldElucHV0RWxlbWVudD1wcm9wcy5nZXRJbnB1dEVsZW1lbnQsZ2V0UmF3SW5wdXRFbGVtZW50PXByb3BzLmdldFJhd0lucHV0RWxlbWVudCxvcGVuPXByb3BzLm9wZW4sZGVmYXVsdE9wZW49cHJvcHMuZGVmYXVsdE9wZW4sb25Ecm9wZG93blZpc2libGVDaGFuZ2U9cHJvcHMub25Ecm9wZG93blZpc2libGVDaGFuZ2UsYWN0aXZlVmFsdWU9cHJvcHMuYWN0aXZlVmFsdWUsb25BY3RpdmVWYWx1ZUNoYW5nZT1wcm9wcy5vbkFjdGl2ZVZhbHVlQ2hhbmdlLGFjdGl2ZURlc2NlbmRhbnRJZD1wcm9wcy5hY3RpdmVEZXNjZW5kYW50SWQsc2VhcmNoVmFsdWU9cHJvcHMuc2VhcmNoVmFsdWUsYXV0b0NsZWFyU2VhcmNoVmFsdWU9cHJvcHMuYXV0b0NsZWFyU2VhcmNoVmFsdWUsb25TZWFyY2g9cHJvcHMub25TZWFyY2gsb25TZWFyY2hTcGxpdD1wcm9wcy5vblNlYXJjaFNwbGl0LHRva2VuU2VwYXJhdG9ycz1wcm9wcy50b2tlblNlcGFyYXRvcnMsYWxsb3dDbGVhcj1wcm9wcy5hbGxvd0NsZWFyLHByZWZpeD1wcm9wcy5wcmVmaXgsc3VmZml4SWNvbj1wcm9wcy5zdWZmaXhJY29uLGNsZWFySWNvbj1wcm9wcy5jbGVhckljb24sT3B0aW9uTGlzdD1wcm9wcy5PcHRpb25MaXN0LGFuaW1hdGlvbj1wcm9wcy5hbmltYXRpb24sdHJhbnNpdGlvbk5hbWU9cHJvcHMudHJhbnNpdGlvbk5hbWUsZHJvcGRvd25TdHlsZT1wcm9wcy5kcm9wZG93blN0eWxlLGRyb3Bkb3duQ2xhc3NOYW1lPXByb3BzLmRyb3Bkb3duQ2xhc3NOYW1lLGRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aD1wcm9wcy5kcm9wZG93bk1hdGNoU2VsZWN0V2lkdGgsZHJvcGRvd25SZW5kZXI9cHJvcHMuZHJvcGRvd25SZW5kZXIsZHJvcGRvd25BbGlnbj1wcm9wcy5kcm9wZG93bkFsaWduLHBsYWNlbWVudD1wcm9wcy5wbGFjZW1lbnQsYnVpbHRpblBsYWNlbWVudHM9cHJvcHMuYnVpbHRpblBsYWNlbWVudHMsZ2V0UG9wdXBDb250YWluZXI9cHJvcHMuZ2V0UG9wdXBDb250YWluZXIsX3Byb3BzJHNob3dBY3Rpb249cHJvcHMuc2hvd0FjdGlvbixzaG93QWN0aW9uPXZvaWQgMD09PV9wcm9wcyRzaG93QWN0aW9uP1tdOl9wcm9wcyRzaG93QWN0aW9uLG9uRm9jdXM9cHJvcHMub25Gb2N1cyxvbkJsdXI9cHJvcHMub25CbHVyLG9uS2V5VXA9cHJvcHMub25LZXlVcCxvbktleURvd249cHJvcHMub25LZXlEb3duLG9uTW91c2VEb3duPXByb3BzLm9uTW91c2VEb3duLHJlc3RQcm9wcz0oMCxvYmplY3RXaXRob3V0UHJvcGVydGllcy5aKShwcm9wcyxCYXNlU2VsZWN0X2V4Y2x1ZGVkKSxtdWx0aXBsZT1CYXNlU2VsZWN0X2lzTXVsdGlwbGUobW9kZSksbWVyZ2VkU2hvd1NlYXJjaD0odm9pZCAwIT09c2hvd1NlYXJjaD9zaG93U2VhcmNoOm11bHRpcGxlKXx8ImNvbWJvYm94Ij09PW1vZGUsZG9tUHJvcHM9KDAsb2JqZWN0U3ByZWFkMi5aKSh7fSxyZXN0UHJvcHMpO0RFRkFVTFRfT01JVF9QUk9QUy5mb3JFYWNoKGZ1bmN0aW9uKHByb3BOYW1lKXtkZWxldGUgZG9tUHJvcHNbcHJvcE5hbWVdfSksbnVsbD09b21pdERvbVByb3BzfHxvbWl0RG9tUHJvcHMuZm9yRWFjaChmdW5jdGlvbihwcm9wTmFtZSl7ZGVsZXRlIGRvbVByb3BzW3Byb3BOYW1lXX0pO3ZhciBfUmVhY3QkdXNlU3RhdGU9cmVhY3QudXNlU3RhdGUoITEpLF9SZWFjdCR1c2VTdGF0ZTI9KDAsc2xpY2VkVG9BcnJheS5aKShfUmVhY3QkdXNlU3RhdGUsMiksbW9iaWxlPV9SZWFjdCR1c2VTdGF0ZTJbMF0sc2V0TW9iaWxlPV9SZWFjdCR1c2VTdGF0ZTJbMV07cmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uKCl7c2V0TW9iaWxlKGlzTW9iaWxlKCkpfSxbXSk7dmFyIGNvbnRhaW5lclJlZj1yZWFjdC51c2VSZWYobnVsbCksc2VsZWN0b3JEb21SZWY9cmVhY3QudXNlUmVmKG51bGwpLHRyaWdnZXJSZWY9cmVhY3QudXNlUmVmKG51bGwpLHNlbGVjdG9yUmVmPXJlYWN0LnVzZVJlZihudWxsKSxsaXN0UmVmPXJlYWN0LnVzZVJlZihudWxsKSxibHVyUmVmPXJlYWN0LnVzZVJlZighMSksX3VzZURlbGF5UmVzZXQ9ZnVuY3Rpb24oKXt2YXIgdGltZW91dD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MTAsX1JlYWN0JHVzZVN0YXRlPXJlYWN0LnVzZVN0YXRlKCExKSxfUmVhY3QkdXNlU3RhdGUyPSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlLDIpLGJvb2w9X1JlYWN0JHVzZVN0YXRlMlswXSxzZXRCb29sPV9SZWFjdCR1c2VTdGF0ZTJbMV0sZGVsYXlSZWY9cmVhY3QudXNlUmVmKG51bGwpLGNhbmNlbExhdGVzdD1mdW5jdGlvbigpe3dpbmRvdy5jbGVhclRpbWVvdXQoZGVsYXlSZWYuY3VycmVudCl9O3JldHVybiByZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24oKXtyZXR1cm4gY2FuY2VsTGF0ZXN0fSxbXSksW2Jvb2wsZnVuY3Rpb24odmFsdWUsY2FsbGJhY2spe2NhbmNlbExhdGVzdCgpLGRlbGF5UmVmLmN1cnJlbnQ9d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtzZXRCb29sKHZhbHVlKSxjYWxsYmFjayYmY2FsbGJhY2soKX0sdGltZW91dCl9LGNhbmNlbExhdGVzdF19KCksX3VzZURlbGF5UmVzZXQyPSgwLHNsaWNlZFRvQXJyYXkuWikoX3VzZURlbGF5UmVzZXQsMyksbW9ja0ZvY3VzZWQ9X3VzZURlbGF5UmVzZXQyWzBdLHNldE1vY2tGb2N1c2VkPV91c2VEZWxheVJlc2V0MlsxXSxjYW5jZWxTZXRNb2NrRm9jdXNlZD1fdXNlRGVsYXlSZXNldDJbMl07cmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsZnVuY3Rpb24oKXt2YXIgX3NlbGVjdG9yUmVmJGN1cnJlbnQsX3NlbGVjdG9yUmVmJGN1cnJlbnQyO3JldHVybntmb2N1czpudWxsPT09KF9zZWxlY3RvclJlZiRjdXJyZW50PXNlbGVjdG9yUmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1fc2VsZWN0b3JSZWYkY3VycmVudD92b2lkIDA6X3NlbGVjdG9yUmVmJGN1cnJlbnQuZm9jdXMsYmx1cjpudWxsPT09KF9zZWxlY3RvclJlZiRjdXJyZW50Mj1zZWxlY3RvclJlZi5jdXJyZW50KXx8dm9pZCAwPT09X3NlbGVjdG9yUmVmJGN1cnJlbnQyP3ZvaWQgMDpfc2VsZWN0b3JSZWYkY3VycmVudDIuYmx1cixzY3JvbGxUbzpmdW5jdGlvbihhcmcpe3ZhciBfbGlzdFJlZiRjdXJyZW50O3JldHVybiBudWxsPT09KF9saXN0UmVmJGN1cnJlbnQ9bGlzdFJlZi5jdXJyZW50KXx8dm9pZCAwPT09X2xpc3RSZWYkY3VycmVudD92b2lkIDA6X2xpc3RSZWYkY3VycmVudC5zY3JvbGxUbyhhcmcpfSxuYXRpdmVFbGVtZW50OmNvbnRhaW5lclJlZi5jdXJyZW50fHxzZWxlY3RvckRvbVJlZi5jdXJyZW50fX0pO3ZhciBtZXJnZWRTZWFyY2hWYWx1ZT1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7aWYoImNvbWJvYm94IiE9PW1vZGUpcmV0dXJuIHNlYXJjaFZhbHVlO3ZhciBfZGlzcGxheVZhbHVlcyQsdmFsPW51bGw9PT0oX2Rpc3BsYXlWYWx1ZXMkPWRpc3BsYXlWYWx1ZXNbMF0pfHx2b2lkIDA9PT1fZGlzcGxheVZhbHVlcyQ/dm9pZCAwOl9kaXNwbGF5VmFsdWVzJC52YWx1ZTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHZhbHx8Im51bWJlciI9PXR5cGVvZiB2YWw/U3RyaW5nKHZhbCk6IiJ9LFtzZWFyY2hWYWx1ZSxtb2RlLGRpc3BsYXlWYWx1ZXNdKSxjdXN0b21pemVJbnB1dEVsZW1lbnQ9ImNvbWJvYm94Ij09PW1vZGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBnZXRJbnB1dEVsZW1lbnQmJmdldElucHV0RWxlbWVudCgpfHxudWxsLGN1c3RvbWl6ZVJhd0lucHV0RWxlbWVudD0iZnVuY3Rpb24iPT10eXBlb2YgZ2V0UmF3SW5wdXRFbGVtZW50JiZnZXRSYXdJbnB1dEVsZW1lbnQoKSxjdXN0b21pemVSYXdJbnB1dFJlZj0oMCxlc19yZWYueDEpKHNlbGVjdG9yRG9tUmVmLG51bGw9PWN1c3RvbWl6ZVJhd0lucHV0RWxlbWVudHx8bnVsbD09PShfY3VzdG9taXplUmF3SW5wdXRFbGU9Y3VzdG9taXplUmF3SW5wdXRFbGVtZW50LnByb3BzKXx8dm9pZCAwPT09X2N1c3RvbWl6ZVJhd0lucHV0RWxlP3ZvaWQgMDpfY3VzdG9taXplUmF3SW5wdXRFbGUucmVmKSxfUmVhY3QkdXNlU3RhdGUzPXJlYWN0LnVzZVN0YXRlKCExKSxfUmVhY3QkdXNlU3RhdGU0PSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlMywyKSxyZW5kZXJlZD1fUmVhY3QkdXNlU3RhdGU0WzBdLHNldFJlbmRlcmVkPV9SZWFjdCR1c2VTdGF0ZTRbMV07KDAsdXNlTGF5b3V0RWZmZWN0LlopKGZ1bmN0aW9uKCl7c2V0UmVuZGVyZWQoITApfSxbXSk7dmFyIF91c2VNZXJnZWRTdGF0ZT0oMCx1c2VNZXJnZWRTdGF0ZS5aKSghMSx7ZGVmYXVsdFZhbHVlOmRlZmF1bHRPcGVuLHZhbHVlOm9wZW59KSxfdXNlTWVyZ2VkU3RhdGUyPSgwLHNsaWNlZFRvQXJyYXkuWikoX3VzZU1lcmdlZFN0YXRlLDIpLGlubmVyT3Blbj1fdXNlTWVyZ2VkU3RhdGUyWzBdLHNldElubmVyT3Blbj1fdXNlTWVyZ2VkU3RhdGUyWzFdLG1lcmdlZE9wZW49ISFyZW5kZXJlZCYmaW5uZXJPcGVuLGVtcHR5TGlzdENvbnRlbnQ9IW5vdEZvdW5kQ29udGVudCYmZW1wdHlPcHRpb25zOyhkaXNhYmxlZHx8ZW1wdHlMaXN0Q29udGVudCYmbWVyZ2VkT3BlbiYmImNvbWJvYm94Ij09PW1vZGUpJiYobWVyZ2VkT3Blbj0hMSk7dmFyIHRyaWdnZXJPcGVuPSFlbXB0eUxpc3RDb250ZW50JiZtZXJnZWRPcGVuLG9uVG9nZ2xlT3Blbj1yZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbihuZXdPcGVuKXt2YXIgbmV4dE9wZW49dm9pZCAwIT09bmV3T3Blbj9uZXdPcGVuOiFtZXJnZWRPcGVuO2Rpc2FibGVkfHwoc2V0SW5uZXJPcGVuKG5leHRPcGVuKSxtZXJnZWRPcGVuIT09bmV4dE9wZW4mJihudWxsPT1vbkRyb3Bkb3duVmlzaWJsZUNoYW5nZXx8b25Ecm9wZG93blZpc2libGVDaGFuZ2UobmV4dE9wZW4pKSl9LFtkaXNhYmxlZCxtZXJnZWRPcGVuLHNldElubmVyT3BlbixvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZV0pLHRva2VuV2l0aEVudGVyPXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4odG9rZW5TZXBhcmF0b3JzfHxbXSkuc29tZShmdW5jdGlvbih0b2tlblNlcGFyYXRvcil7cmV0dXJuWyJcbiIsIlxyXG4iXS5pbmNsdWRlcyh0b2tlblNlcGFyYXRvcil9KX0sW3Rva2VuU2VwYXJhdG9yc10pLF9yZWY9cmVhY3QudXNlQ29udGV4dChTZWxlY3RDb250ZXh0KXx8e30sbWF4Q291bnQ9X3JlZi5tYXhDb3VudCxyYXdWYWx1ZXM9X3JlZi5yYXdWYWx1ZXMsb25JbnRlcm5hbFNlYXJjaD1mdW5jdGlvbihzZWFyY2hUZXh0LGZyb21UeXBpbmcsaXNDb21wb3NpdGluZyl7aWYoIShtdWx0aXBsZSYmaXNWYWxpZENvdW50KG1heENvdW50KSl8fCEoKG51bGw9PXJhd1ZhbHVlcz92b2lkIDA6cmF3VmFsdWVzLnNpemUpPj1tYXhDb3VudCkpe3ZhciByZXQ9ITAsbmV3U2VhcmNoVGV4dD1zZWFyY2hUZXh0O251bGw9PW9uQWN0aXZlVmFsdWVDaGFuZ2V8fG9uQWN0aXZlVmFsdWVDaGFuZ2UobnVsbCk7dmFyIHNlcGFyYXRlZExpc3Q9Z2V0U2VwYXJhdGVkQ29udGVudChzZWFyY2hUZXh0LHRva2VuU2VwYXJhdG9ycyxpc1ZhbGlkQ291bnQobWF4Q291bnQpP21heENvdW50LXJhd1ZhbHVlcy5zaXplOnZvaWQgMCkscGF0Y2hMYWJlbHM9aXNDb21wb3NpdGluZz9udWxsOnNlcGFyYXRlZExpc3Q7cmV0dXJuImNvbWJvYm94IiE9PW1vZGUmJnBhdGNoTGFiZWxzJiYobmV3U2VhcmNoVGV4dD0iIixudWxsPT1vblNlYXJjaFNwbGl0fHxvblNlYXJjaFNwbGl0KHBhdGNoTGFiZWxzKSxvblRvZ2dsZU9wZW4oITEpLHJldD0hMSksb25TZWFyY2gmJm1lcmdlZFNlYXJjaFZhbHVlIT09bmV3U2VhcmNoVGV4dCYmb25TZWFyY2gobmV3U2VhcmNoVGV4dCx7c291cmNlOmZyb21UeXBpbmc/InR5cGluZyI6ImVmZmVjdCJ9KSxyZXR9fTtyZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24oKXttZXJnZWRPcGVufHxtdWx0aXBsZXx8ImNvbWJvYm94Ij09PW1vZGV8fG9uSW50ZXJuYWxTZWFyY2goIiIsITEsITEpfSxbbWVyZ2VkT3Blbl0pLHJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbigpe2lubmVyT3BlbiYmZGlzYWJsZWQmJnNldElubmVyT3BlbighMSksZGlzYWJsZWQmJiFibHVyUmVmLmN1cnJlbnQmJnNldE1vY2tGb2N1c2VkKCExKX0sW2Rpc2FibGVkXSk7dmFyIF91c2VMb2NrPXVzZUxvY2soKSxfdXNlTG9jazI9KDAsc2xpY2VkVG9BcnJheS5aKShfdXNlTG9jaywyKSxnZXRDbGVhckxvY2s9X3VzZUxvY2syWzBdLHNldENsZWFyTG9jaz1fdXNlTG9jazJbMV0sa2V5TG9ja1JlZj1yZWFjdC51c2VSZWYoITEpLGZvY3VzUmVmPXJlYWN0LnVzZVJlZighMSksYWN0aXZlVGltZW91dElkcz1bXTtyZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXthY3RpdmVUaW1lb3V0SWRzLmZvckVhY2goZnVuY3Rpb24odGltZW91dElkKXtyZXR1cm4gY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCl9KSxhY3RpdmVUaW1lb3V0SWRzLnNwbGljZSgwLGFjdGl2ZVRpbWVvdXRJZHMubGVuZ3RoKX19LFtdKTt2YXIgX1JlYWN0JHVzZVN0YXRlNT1yZWFjdC51c2VTdGF0ZSh7fSksZm9yY2VVcGRhdGU9KDAsc2xpY2VkVG9BcnJheS5aKShfUmVhY3QkdXNlU3RhdGU1LDIpWzFdO2N1c3RvbWl6ZVJhd0lucHV0RWxlbWVudCYmKG9uVHJpZ2dlclZpc2libGVDaGFuZ2U9ZnVuY3Rpb24obmV3T3Blbil7b25Ub2dnbGVPcGVuKG5ld09wZW4pfSksZWxlbWVudHM9ZnVuY3Rpb24oKXt2YXIgX3RyaWdnZXJSZWYkY3VycmVudDI7cmV0dXJuW2NvbnRhaW5lclJlZi5jdXJyZW50LG51bGw9PT0oX3RyaWdnZXJSZWYkY3VycmVudDI9dHJpZ2dlclJlZi5jdXJyZW50KXx8dm9pZCAwPT09X3RyaWdnZXJSZWYkY3VycmVudDI/dm9pZCAwOl90cmlnZ2VyUmVmJGN1cnJlbnQyLmdldFBvcHVwRWxlbWVudCgpXX0sKHByb3BzUmVmPXJlYWN0LnVzZVJlZihudWxsKSkuY3VycmVudD17b3Blbjp0cmlnZ2VyT3Blbix0cmlnZ2VyT3BlbjpvblRvZ2dsZU9wZW4sY3VzdG9taXplZFRyaWdnZXI6ISFjdXN0b21pemVSYXdJbnB1dEVsZW1lbnR9LHJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbigpe2Z1bmN0aW9uIG9uR2xvYmFsTW91c2VEb3duKGV2ZW50KXtpZihudWxsPT09KF9wcm9wc1JlZiRjdXJyZW50PXByb3BzUmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1fcHJvcHNSZWYkY3VycmVudHx8IV9wcm9wc1JlZiRjdXJyZW50LmN1c3RvbWl6ZWRUcmlnZ2VyKXt2YXIgX3Byb3BzUmVmJGN1cnJlbnQsdGFyZ2V0PWV2ZW50LnRhcmdldDt0YXJnZXQuc2hhZG93Um9vdCYmZXZlbnQuY29tcG9zZWQmJih0YXJnZXQ9ZXZlbnQuY29tcG9zZWRQYXRoKClbMF18fHRhcmdldCkscHJvcHNSZWYuY3VycmVudC5vcGVuJiZlbGVtZW50cygpLmZpbHRlcihmdW5jdGlvbihlbGVtZW50KXtyZXR1cm4gZWxlbWVudH0pLmV2ZXJ5KGZ1bmN0aW9uKGVsZW1lbnQpe3JldHVybiFlbGVtZW50LmNvbnRhaW5zKHRhcmdldCkmJmVsZW1lbnQhPT10YXJnZXR9KSYmcHJvcHNSZWYuY3VycmVudC50cmlnZ2VyT3BlbighMSl9fXJldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixvbkdsb2JhbE1vdXNlRG93biksZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsb25HbG9iYWxNb3VzZURvd24pfX0sW10pO3ZhciBiYXNlU2VsZWN0Q29udGV4dD1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuKDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LHByb3BzKSx7fSx7bm90Rm91bmRDb250ZW50Om5vdEZvdW5kQ29udGVudCxvcGVuOm1lcmdlZE9wZW4sdHJpZ2dlck9wZW46dHJpZ2dlck9wZW4saWQ6aWQsc2hvd1NlYXJjaDptZXJnZWRTaG93U2VhcmNoLG11bHRpcGxlOm11bHRpcGxlLHRvZ2dsZU9wZW46b25Ub2dnbGVPcGVufSl9LFtwcm9wcyxub3RGb3VuZENvbnRlbnQsdHJpZ2dlck9wZW4sbWVyZ2VkT3BlbixpZCxtZXJnZWRTaG93U2VhcmNoLG11bHRpcGxlLG9uVG9nZ2xlT3Blbl0pLHNob3dTdWZmaXhJY29uPSEhc3VmZml4SWNvbnx8bG9hZGluZztzaG93U3VmZml4SWNvbiYmKGFycm93Tm9kZT1yZWFjdC5jcmVhdGVFbGVtZW50KGVzX1RyYW5zQnRuLHtjbGFzc05hbWU6bm9kZV9tb2R1bGVzX2NsYXNzbmFtZXNfZGVmYXVsdCgpKCIiLmNvbmNhdChwcmVmaXhDbHMsIi1hcnJvdyIpLCgwLGRlZmluZVByb3BlcnR5LlopKHt9LCIiLmNvbmNhdChwcmVmaXhDbHMsIi1hcnJvdy1sb2FkaW5nIiksbG9hZGluZykpLGN1c3RvbWl6ZUljb246c3VmZml4SWNvbixjdXN0b21pemVJY29uUHJvcHM6e2xvYWRpbmc6bG9hZGluZyxzZWFyY2hWYWx1ZTptZXJnZWRTZWFyY2hWYWx1ZSxvcGVuOm1lcmdlZE9wZW4sZm9jdXNlZDptb2NrRm9jdXNlZCxzaG93U2VhcmNoOm1lcmdlZFNob3dTZWFyY2h9fSkpO3ZhciBfdXNlQWxsb3dDbGVhcj11c2VBbGxvd0NsZWFyKHByZWZpeENscyxmdW5jdGlvbigpe3ZhciBfc2VsZWN0b3JSZWYkY3VycmVudDQ7bnVsbD09b25DbGVhcnx8b25DbGVhcigpLG51bGw9PT0oX3NlbGVjdG9yUmVmJGN1cnJlbnQ0PXNlbGVjdG9yUmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1fc2VsZWN0b3JSZWYkY3VycmVudDR8fF9zZWxlY3RvclJlZiRjdXJyZW50NC5mb2N1cygpLG9uRGlzcGxheVZhbHVlc0NoYW5nZShbXSx7dHlwZToiY2xlYXIiLHZhbHVlczpkaXNwbGF5VmFsdWVzfSksb25JbnRlcm5hbFNlYXJjaCgiIiwhMSwhMSl9LGRpc3BsYXlWYWx1ZXMsYWxsb3dDbGVhcixjbGVhckljb24sZGlzYWJsZWQsbWVyZ2VkU2VhcmNoVmFsdWUsbW9kZSksbWVyZ2VkQWxsb3dDbGVhcj1fdXNlQWxsb3dDbGVhci5hbGxvd0NsZWFyLGNsZWFyTm9kZT1fdXNlQWxsb3dDbGVhci5jbGVhckljb24sb3B0aW9uTGlzdD1yZWFjdC5jcmVhdGVFbGVtZW50KE9wdGlvbkxpc3Qse3JlZjpsaXN0UmVmfSksbWVyZ2VkQ2xhc3NOYW1lPW5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKShwcmVmaXhDbHMsY2xhc3NOYW1lLCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKCgwLGRlZmluZVByb3BlcnR5LlopKHt9LCIiLmNvbmNhdChwcmVmaXhDbHMsIi1mb2N1c2VkIiksbW9ja0ZvY3VzZWQpLCIiLmNvbmNhdChwcmVmaXhDbHMsIi1tdWx0aXBsZSIpLG11bHRpcGxlKSwiIi5jb25jYXQocHJlZml4Q2xzLCItc2luZ2xlIiksIW11bHRpcGxlKSwiIi5jb25jYXQocHJlZml4Q2xzLCItYWxsb3ctY2xlYXIiKSxhbGxvd0NsZWFyKSwiIi5jb25jYXQocHJlZml4Q2xzLCItc2hvdy1hcnJvdyIpLHNob3dTdWZmaXhJY29uKSwiIi5jb25jYXQocHJlZml4Q2xzLCItZGlzYWJsZWQiKSxkaXNhYmxlZCksIiIuY29uY2F0KHByZWZpeENscywiLWxvYWRpbmciKSxsb2FkaW5nKSwiIi5jb25jYXQocHJlZml4Q2xzLCItb3BlbiIpLG1lcmdlZE9wZW4pLCIiLmNvbmNhdChwcmVmaXhDbHMsIi1jdXN0b21pemUtaW5wdXQiKSxjdXN0b21pemVJbnB1dEVsZW1lbnQpLCIiLmNvbmNhdChwcmVmaXhDbHMsIi1zaG93LXNlYXJjaCIpLG1lcmdlZFNob3dTZWFyY2gpKSxzZWxlY3Rvck5vZGU9cmVhY3QuY3JlYXRlRWxlbWVudChSZWZTZWxlY3RUcmlnZ2VyLHtyZWY6dHJpZ2dlclJlZixkaXNhYmxlZDpkaXNhYmxlZCxwcmVmaXhDbHM6cHJlZml4Q2xzLHZpc2libGU6dHJpZ2dlck9wZW4scG9wdXBFbGVtZW50Om9wdGlvbkxpc3QsYW5pbWF0aW9uOmFuaW1hdGlvbix0cmFuc2l0aW9uTmFtZTp0cmFuc2l0aW9uTmFtZSxkcm9wZG93blN0eWxlOmRyb3Bkb3duU3R5bGUsZHJvcGRvd25DbGFzc05hbWU6ZHJvcGRvd25DbGFzc05hbWUsZGlyZWN0aW9uOmRpcmVjdGlvbixkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGg6ZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoLGRyb3Bkb3duUmVuZGVyOmRyb3Bkb3duUmVuZGVyLGRyb3Bkb3duQWxpZ246ZHJvcGRvd25BbGlnbixwbGFjZW1lbnQ6cGxhY2VtZW50LGJ1aWx0aW5QbGFjZW1lbnRzOmJ1aWx0aW5QbGFjZW1lbnRzLGdldFBvcHVwQ29udGFpbmVyOmdldFBvcHVwQ29udGFpbmVyLGVtcHR5OmVtcHR5T3B0aW9ucyxnZXRUcmlnZ2VyRE9NTm9kZTpmdW5jdGlvbihub2RlKXtyZXR1cm4gc2VsZWN0b3JEb21SZWYuY3VycmVudHx8bm9kZX0sb25Qb3B1cFZpc2libGVDaGFuZ2U6b25UcmlnZ2VyVmlzaWJsZUNoYW5nZSxvblBvcHVwTW91c2VFbnRlcjpmdW5jdGlvbigpe2ZvcmNlVXBkYXRlKHt9KX19LGN1c3RvbWl6ZVJhd0lucHV0RWxlbWVudD9yZWFjdC5jbG9uZUVsZW1lbnQoY3VzdG9taXplUmF3SW5wdXRFbGVtZW50LHtyZWY6Y3VzdG9taXplUmF3SW5wdXRSZWZ9KTpyZWFjdC5jcmVhdGVFbGVtZW50KEZvcndhcmRTZWxlY3RvciwoMCxlc21fZXh0ZW5kcy5aKSh7fSxwcm9wcyx7ZG9tUmVmOnNlbGVjdG9yRG9tUmVmLHByZWZpeENsczpwcmVmaXhDbHMsaW5wdXRFbGVtZW50OmN1c3RvbWl6ZUlucHV0RWxlbWVudCxyZWY6c2VsZWN0b3JSZWYsaWQ6aWQscHJlZml4OnByZWZpeCxzaG93U2VhcmNoOm1lcmdlZFNob3dTZWFyY2gsYXV0b0NsZWFyU2VhcmNoVmFsdWU6YXV0b0NsZWFyU2VhcmNoVmFsdWUsbW9kZTptb2RlLGFjdGl2ZURlc2NlbmRhbnRJZDphY3RpdmVEZXNjZW5kYW50SWQsdGFnUmVuZGVyOnRhZ1JlbmRlcix2YWx1ZXM6ZGlzcGxheVZhbHVlcyxvcGVuOm1lcmdlZE9wZW4sb25Ub2dnbGVPcGVuOm9uVG9nZ2xlT3BlbixhY3RpdmVWYWx1ZTphY3RpdmVWYWx1ZSxzZWFyY2hWYWx1ZTptZXJnZWRTZWFyY2hWYWx1ZSxvblNlYXJjaDpvbkludGVybmFsU2VhcmNoLG9uU2VhcmNoU3VibWl0OmZ1bmN0aW9uKHNlYXJjaFRleHQpe3NlYXJjaFRleHQmJnNlYXJjaFRleHQudHJpbSgpJiZvblNlYXJjaChzZWFyY2hUZXh0LHtzb3VyY2U6InN1Ym1pdCJ9KX0sb25SZW1vdmU6ZnVuY3Rpb24odmFsKXtvbkRpc3BsYXlWYWx1ZXNDaGFuZ2UoZGlzcGxheVZhbHVlcy5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuIGkhPT12YWx9KSx7dHlwZToicmVtb3ZlIix2YWx1ZXM6W3ZhbF19KX0sdG9rZW5XaXRoRW50ZXI6dG9rZW5XaXRoRW50ZXIsb25JbnB1dEJsdXI6ZnVuY3Rpb24oKXtrZXlMb2NrUmVmLmN1cnJlbnQ9ITF9fSkpKTtyZXR1cm4gcmVuZGVyTm9kZT1jdXN0b21pemVSYXdJbnB1dEVsZW1lbnQ/c2VsZWN0b3JOb2RlOnJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIsKDAsZXNtX2V4dGVuZHMuWikoe2NsYXNzTmFtZTptZXJnZWRDbGFzc05hbWV9LGRvbVByb3BzLHtyZWY6Y29udGFpbmVyUmVmLG9uTW91c2VEb3duOmZ1bmN0aW9uKGV2ZW50KXt2YXIgX3RyaWdnZXJSZWYkY3VycmVudCx0YXJnZXQ9ZXZlbnQudGFyZ2V0LHBvcHVwRWxlbWVudD1udWxsPT09KF90cmlnZ2VyUmVmJGN1cnJlbnQ9dHJpZ2dlclJlZi5jdXJyZW50KXx8dm9pZCAwPT09X3RyaWdnZXJSZWYkY3VycmVudD92b2lkIDA6X3RyaWdnZXJSZWYkY3VycmVudC5nZXRQb3B1cEVsZW1lbnQoKTtpZihwb3B1cEVsZW1lbnQmJnBvcHVwRWxlbWVudC5jb250YWlucyh0YXJnZXQpKXt2YXIgdGltZW91dElkPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgX3NlbGVjdG9yUmVmJGN1cnJlbnQzLGluZGV4PWFjdGl2ZVRpbWVvdXRJZHMuaW5kZXhPZih0aW1lb3V0SWQpOy0xIT09aW5kZXgmJmFjdGl2ZVRpbWVvdXRJZHMuc3BsaWNlKGluZGV4LDEpLGNhbmNlbFNldE1vY2tGb2N1c2VkKCksbW9iaWxlfHxwb3B1cEVsZW1lbnQuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl8fG51bGw9PT0oX3NlbGVjdG9yUmVmJGN1cnJlbnQzPXNlbGVjdG9yUmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1fc2VsZWN0b3JSZWYkY3VycmVudDN8fF9zZWxlY3RvclJlZiRjdXJyZW50My5mb2N1cygpfSk7YWN0aXZlVGltZW91dElkcy5wdXNoKHRpbWVvdXRJZCl9Zm9yKHZhciBfbGVuMz1hcmd1bWVudHMubGVuZ3RoLHJlc3RBcmdzPUFycmF5KF9sZW4zPjE/X2xlbjMtMTowKSxfa2V5Mz0xO19rZXkzPF9sZW4zO19rZXkzKyspcmVzdEFyZ3NbX2tleTMtMV09YXJndW1lbnRzW19rZXkzXTtudWxsPT1vbk1vdXNlRG93bnx8b25Nb3VzZURvd24uYXBwbHkodm9pZCAwLFtldmVudF0uY29uY2F0KHJlc3RBcmdzKSl9LG9uS2V5RG93bjpmdW5jdGlvbihldmVudCl7dmFyIF9saXN0UmVmJGN1cnJlbnQyLGNsZWFyTG9jaz1nZXRDbGVhckxvY2soKSxrZXk9ZXZlbnQua2V5LGlzRW50ZXJLZXk9IkVudGVyIj09PWtleTtpZihpc0VudGVyS2V5JiYoImNvbWJvYm94IiE9PW1vZGUmJmV2ZW50LnByZXZlbnREZWZhdWx0KCksbWVyZ2VkT3Blbnx8b25Ub2dnbGVPcGVuKCEwKSksc2V0Q2xlYXJMb2NrKCEhbWVyZ2VkU2VhcmNoVmFsdWUpLCJCYWNrc3BhY2UiPT09a2V5JiYhY2xlYXJMb2NrJiZtdWx0aXBsZSYmIW1lcmdlZFNlYXJjaFZhbHVlJiZkaXNwbGF5VmFsdWVzLmxlbmd0aCl7Zm9yKHZhciBjbG9uZURpc3BsYXlWYWx1ZXM9KDAsdG9Db25zdW1hYmxlQXJyYXkuWikoZGlzcGxheVZhbHVlcykscmVtb3ZlZERpc3BsYXlWYWx1ZT1udWxsLGk9Y2xvbmVEaXNwbGF5VmFsdWVzLmxlbmd0aC0xO2k+PTA7aS09MSl7dmFyIGN1cnJlbnQ9Y2xvbmVEaXNwbGF5VmFsdWVzW2ldO2lmKCFjdXJyZW50LmRpc2FibGVkKXtjbG9uZURpc3BsYXlWYWx1ZXMuc3BsaWNlKGksMSkscmVtb3ZlZERpc3BsYXlWYWx1ZT1jdXJyZW50O2JyZWFrfX1yZW1vdmVkRGlzcGxheVZhbHVlJiZvbkRpc3BsYXlWYWx1ZXNDaGFuZ2UoY2xvbmVEaXNwbGF5VmFsdWVzLHt0eXBlOiJyZW1vdmUiLHZhbHVlczpbcmVtb3ZlZERpc3BsYXlWYWx1ZV19KX1mb3IodmFyIF9sZW49YXJndW1lbnRzLmxlbmd0aCxyZXN0PUFycmF5KF9sZW4+MT9fbGVuLTE6MCksX2tleT0xO19rZXk8X2xlbjtfa2V5KyspcmVzdFtfa2V5LTFdPWFyZ3VtZW50c1tfa2V5XTshbWVyZ2VkT3Blbnx8aXNFbnRlcktleSYma2V5TG9ja1JlZi5jdXJyZW50fHwoaXNFbnRlcktleSYmKGtleUxvY2tSZWYuY3VycmVudD0hMCksbnVsbD09PShfbGlzdFJlZiRjdXJyZW50Mj1saXN0UmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1fbGlzdFJlZiRjdXJyZW50Mnx8X2xpc3RSZWYkY3VycmVudDIub25LZXlEb3duLmFwcGx5KF9saXN0UmVmJGN1cnJlbnQyLFtldmVudF0uY29uY2F0KHJlc3QpKSksbnVsbD09b25LZXlEb3dufHxvbktleURvd24uYXBwbHkodm9pZCAwLFtldmVudF0uY29uY2F0KHJlc3QpKX0sb25LZXlVcDpmdW5jdGlvbihldmVudCl7Zm9yKHZhciBfbGlzdFJlZiRjdXJyZW50MyxfbGVuMj1hcmd1bWVudHMubGVuZ3RoLHJlc3Q9QXJyYXkoX2xlbjI+MT9fbGVuMi0xOjApLF9rZXkyPTE7X2tleTI8X2xlbjI7X2tleTIrKylyZXN0W19rZXkyLTFdPWFyZ3VtZW50c1tfa2V5Ml07bWVyZ2VkT3BlbiYmKG51bGw9PT0oX2xpc3RSZWYkY3VycmVudDM9bGlzdFJlZi5jdXJyZW50KXx8dm9pZCAwPT09X2xpc3RSZWYkY3VycmVudDN8fF9saXN0UmVmJGN1cnJlbnQzLm9uS2V5VXAuYXBwbHkoX2xpc3RSZWYkY3VycmVudDMsW2V2ZW50XS5jb25jYXQocmVzdCkpKSwiRW50ZXIiPT09ZXZlbnQua2V5JiYoa2V5TG9ja1JlZi5jdXJyZW50PSExKSxudWxsPT1vbktleVVwfHxvbktleVVwLmFwcGx5KHZvaWQgMCxbZXZlbnRdLmNvbmNhdChyZXN0KSl9LG9uRm9jdXM6ZnVuY3Rpb24oKXtzZXRNb2NrRm9jdXNlZCghMCksIWRpc2FibGVkJiYob25Gb2N1cyYmIWZvY3VzUmVmLmN1cnJlbnQmJm9uRm9jdXMuYXBwbHkodm9pZCAwLGFyZ3VtZW50cyksc2hvd0FjdGlvbi5pbmNsdWRlcygiZm9jdXMiKSYmb25Ub2dnbGVPcGVuKCEwKSksZm9jdXNSZWYuY3VycmVudD0hMH0sb25CbHVyOmZ1bmN0aW9uKCl7Ymx1clJlZi5jdXJyZW50PSEwLHNldE1vY2tGb2N1c2VkKCExLGZ1bmN0aW9uKCl7Zm9jdXNSZWYuY3VycmVudD0hMSxibHVyUmVmLmN1cnJlbnQ9ITEsb25Ub2dnbGVPcGVuKCExKX0pLCFkaXNhYmxlZCYmKG1lcmdlZFNlYXJjaFZhbHVlJiYoInRhZ3MiPT09bW9kZT9vblNlYXJjaChtZXJnZWRTZWFyY2hWYWx1ZSx7c291cmNlOiJzdWJtaXQifSk6Im11bHRpcGxlIj09PW1vZGUmJm9uU2VhcmNoKCIiLHtzb3VyY2U6ImJsdXIifSkpLG9uQmx1ciYmb25CbHVyLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpKX19KSxyZWFjdC5jcmVhdGVFbGVtZW50KFBvbGl0ZSx7dmlzaWJsZTptb2NrRm9jdXNlZCYmIW1lcmdlZE9wZW4sdmFsdWVzOmRpc3BsYXlWYWx1ZXN9KSxzZWxlY3Rvck5vZGUsYXJyb3dOb2RlLG1lcmdlZEFsbG93Q2xlYXImJmNsZWFyTm9kZSkscmVhY3QuY3JlYXRlRWxlbWVudChCYXNlU2VsZWN0Q29udGV4dC5Qcm92aWRlcix7dmFsdWU6YmFzZVNlbGVjdENvbnRleHR9LHJlbmRlck5vZGUpfSksT3B0R3JvdXA9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH07T3B0R3JvdXAuaXNTZWxlY3RPcHRHcm91cD0hMDt2YXIgT3B0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O09wdGlvbi5pc1NlbGVjdE9wdGlvbj0hMDt2YXIgdXNlTWVtbz1fX3dlYnBhY2tfcmVxdWlyZV9fKDU2OTgyKSxvbWl0PV9fd2VicGFja19yZXF1aXJlX18oOTg0MjMpLHJlYWN0X2RvbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDczOTM1KSxyY19yZXNpemVfb2JzZXJ2ZXJfZXM9X193ZWJwYWNrX3JlcXVpcmVfXygyNzI1NCksRmlsbGVyPXJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24oX3JlZixyZWYpe3ZhciBfb2JqZWN0U3ByZWFkMixoZWlnaHQ9X3JlZi5oZWlnaHQsb2Zmc2V0WT1fcmVmLm9mZnNldFksb2Zmc2V0WD1fcmVmLm9mZnNldFgsY2hpbGRyZW49X3JlZi5jaGlsZHJlbixwcmVmaXhDbHM9X3JlZi5wcmVmaXhDbHMsb25Jbm5lclJlc2l6ZT1fcmVmLm9uSW5uZXJSZXNpemUsaW5uZXJQcm9wcz1fcmVmLmlubmVyUHJvcHMscnRsPV9yZWYucnRsLGV4dHJhPV9yZWYuZXh0cmEsb3V0ZXJTdHlsZT17fSxpbm5lclN0eWxlPXtkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4ifTtyZXR1cm4gdm9pZCAwIT09b2Zmc2V0WSYmKG91dGVyU3R5bGU9e2hlaWdodDpoZWlnaHQscG9zaXRpb246InJlbGF0aXZlIixvdmVyZmxvdzoiaGlkZGVuIn0saW5uZXJTdHlsZT0oMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe30saW5uZXJTdHlsZSkse30sKF9vYmplY3RTcHJlYWQyPXt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoIi5jb25jYXQob2Zmc2V0WSwicHgpIil9LCgwLGRlZmluZVByb3BlcnR5LlopKF9vYmplY3RTcHJlYWQyLHJ0bD8ibWFyZ2luUmlnaHQiOiJtYXJnaW5MZWZ0Iiwtb2Zmc2V0WCksKDAsZGVmaW5lUHJvcGVydHkuWikoX29iamVjdFNwcmVhZDIsInBvc2l0aW9uIiwiYWJzb2x1dGUiKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKShfb2JqZWN0U3ByZWFkMiwibGVmdCIsMCksKDAsZGVmaW5lUHJvcGVydHkuWikoX29iamVjdFNwcmVhZDIsInJpZ2h0IiwwKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKShfb2JqZWN0U3ByZWFkMiwidG9wIiwwKSxfb2JqZWN0U3ByZWFkMikpKSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTpvdXRlclN0eWxlfSxyZWFjdC5jcmVhdGVFbGVtZW50KHJjX3Jlc2l6ZV9vYnNlcnZlcl9lcy5aLHtvblJlc2l6ZTpmdW5jdGlvbihfcmVmMil7X3JlZjIub2Zmc2V0SGVpZ2h0JiZvbklubmVyUmVzaXplJiZvbklubmVyUmVzaXplKCl9fSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLCgwLGVzbV9leHRlbmRzLlopKHtzdHlsZTppbm5lclN0eWxlLGNsYXNzTmFtZTpub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0KCkoKDAsZGVmaW5lUHJvcGVydHkuWikoe30sIiIuY29uY2F0KHByZWZpeENscywiLWhvbGRlci1pbm5lciIpLHByZWZpeENscykpLHJlZjpyZWZ9LGlubmVyUHJvcHMpLGNoaWxkcmVuLGV4dHJhKSkpfSk7RmlsbGVyLmRpc3BsYXlOYW1lPSJGaWxsZXIiO3ZhciByYWY9X193ZWJwYWNrX3JlcXVpcmVfXyg3NTE2NCk7ZnVuY3Rpb24gZ2V0UGFnZVhZKGUsaG9yaXpvbnRhbCl7cmV0dXJuKCJ0b3VjaGVzImluIGU/ZS50b3VjaGVzWzBdOmUpW2hvcml6b250YWw/InBhZ2VYIjoicGFnZVkiXX12YXIgU2Nyb2xsQmFyPXJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24ocHJvcHMscmVmKXt2YXIgX2NsYXNzTmFtZXMscHJlZml4Q2xzPXByb3BzLnByZWZpeENscyxydGw9cHJvcHMucnRsLHNjcm9sbE9mZnNldD1wcm9wcy5zY3JvbGxPZmZzZXQsc2Nyb2xsUmFuZ2U9cHJvcHMuc2Nyb2xsUmFuZ2Usb25TdGFydE1vdmU9cHJvcHMub25TdGFydE1vdmUsb25TdG9wTW92ZT1wcm9wcy5vblN0b3BNb3ZlLG9uU2Nyb2xsPXByb3BzLm9uU2Nyb2xsLGhvcml6b250YWw9cHJvcHMuaG9yaXpvbnRhbCxzcGluU2l6ZT1wcm9wcy5zcGluU2l6ZSxjb250YWluZXJTaXplPXByb3BzLmNvbnRhaW5lclNpemUsc3R5bGU9cHJvcHMuc3R5bGUscHJvcHNUaHVtYlN0eWxlPXByb3BzLnRodW1iU3R5bGUsX1JlYWN0JHVzZVN0YXRlPXJlYWN0LnVzZVN0YXRlKCExKSxfUmVhY3QkdXNlU3RhdGUyPSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlLDIpLGRyYWdnaW5nPV9SZWFjdCR1c2VTdGF0ZTJbMF0sc2V0RHJhZ2dpbmc9X1JlYWN0JHVzZVN0YXRlMlsxXSxfUmVhY3QkdXNlU3RhdGUzPXJlYWN0LnVzZVN0YXRlKG51bGwpLF9SZWFjdCR1c2VTdGF0ZTQ9KDAsc2xpY2VkVG9BcnJheS5aKShfUmVhY3QkdXNlU3RhdGUzLDIpLHBhZ2VYWT1fUmVhY3QkdXNlU3RhdGU0WzBdLHNldFBhZ2VYWT1fUmVhY3QkdXNlU3RhdGU0WzFdLF9SZWFjdCR1c2VTdGF0ZTU9cmVhY3QudXNlU3RhdGUobnVsbCksX1JlYWN0JHVzZVN0YXRlNj0oMCxzbGljZWRUb0FycmF5LlopKF9SZWFjdCR1c2VTdGF0ZTUsMiksc3RhcnRUb3A9X1JlYWN0JHVzZVN0YXRlNlswXSxzZXRTdGFydFRvcD1fUmVhY3QkdXNlU3RhdGU2WzFdLGlzTFRSPSFydGwsc2Nyb2xsYmFyUmVmPXJlYWN0LnVzZVJlZigpLHRodW1iUmVmPXJlYWN0LnVzZVJlZigpLF9SZWFjdCR1c2VTdGF0ZTc9cmVhY3QudXNlU3RhdGUoITEpLF9SZWFjdCR1c2VTdGF0ZTg9KDAsc2xpY2VkVG9BcnJheS5aKShfUmVhY3QkdXNlU3RhdGU3LDIpLHZpc2libGU9X1JlYWN0JHVzZVN0YXRlOFswXSxzZXRWaXNpYmxlPV9SZWFjdCR1c2VTdGF0ZThbMV0sdmlzaWJsZVRpbWVvdXRSZWY9cmVhY3QudXNlUmVmKCksZGVsYXlIaWRkZW49ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodmlzaWJsZVRpbWVvdXRSZWYuY3VycmVudCksc2V0VmlzaWJsZSghMCksdmlzaWJsZVRpbWVvdXRSZWYuY3VycmVudD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7c2V0VmlzaWJsZSghMSl9LDNlMyl9LGVuYWJsZVNjcm9sbFJhbmdlPXNjcm9sbFJhbmdlLWNvbnRhaW5lclNpemV8fDAsZW5hYmxlT2Zmc2V0UmFuZ2U9Y29udGFpbmVyU2l6ZS1zcGluU2l6ZXx8MCx0b3A9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiAwPT09c2Nyb2xsT2Zmc2V0fHwwPT09ZW5hYmxlU2Nyb2xsUmFuZ2U/MDpzY3JvbGxPZmZzZXQvZW5hYmxlU2Nyb2xsUmFuZ2UqZW5hYmxlT2Zmc2V0UmFuZ2V9LFtzY3JvbGxPZmZzZXQsZW5hYmxlU2Nyb2xsUmFuZ2UsZW5hYmxlT2Zmc2V0UmFuZ2VdKSxzdGF0ZVJlZj1yZWFjdC51c2VSZWYoe3RvcDp0b3AsZHJhZ2dpbmc6ZHJhZ2dpbmcscGFnZVk6cGFnZVhZLHN0YXJ0VG9wOnN0YXJ0VG9wfSk7c3RhdGVSZWYuY3VycmVudD17dG9wOnRvcCxkcmFnZ2luZzpkcmFnZ2luZyxwYWdlWTpwYWdlWFksc3RhcnRUb3A6c3RhcnRUb3B9O3ZhciBvblRodW1iTW91c2VEb3duPWZ1bmN0aW9uKGUpe3NldERyYWdnaW5nKCEwKSxzZXRQYWdlWFkoZ2V0UGFnZVhZKGUsaG9yaXpvbnRhbCkpLHNldFN0YXJ0VG9wKHN0YXRlUmVmLmN1cnJlbnQudG9wKSxvblN0YXJ0TW92ZSgpLGUuc3RvcFByb3BhZ2F0aW9uKCksZS5wcmV2ZW50RGVmYXVsdCgpfTtyZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24oKXt2YXIgb25TY3JvbGxiYXJUb3VjaFN0YXJ0PWZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKX0sc2Nyb2xsYmFyRWxlPXNjcm9sbGJhclJlZi5jdXJyZW50LHRodW1iRWxlPXRodW1iUmVmLmN1cnJlbnQ7cmV0dXJuIHNjcm9sbGJhckVsZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixvblNjcm9sbGJhclRvdWNoU3RhcnQpLHRodW1iRWxlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLG9uVGh1bWJNb3VzZURvd24pLGZ1bmN0aW9uKCl7c2Nyb2xsYmFyRWxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLG9uU2Nyb2xsYmFyVG91Y2hTdGFydCksdGh1bWJFbGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsb25UaHVtYk1vdXNlRG93bil9fSxbXSk7dmFyIGVuYWJsZVNjcm9sbFJhbmdlUmVmPXJlYWN0LnVzZVJlZigpO2VuYWJsZVNjcm9sbFJhbmdlUmVmLmN1cnJlbnQ9ZW5hYmxlU2Nyb2xsUmFuZ2U7dmFyIGVuYWJsZU9mZnNldFJhbmdlUmVmPXJlYWN0LnVzZVJlZigpO2VuYWJsZU9mZnNldFJhbmdlUmVmLmN1cnJlbnQ9ZW5hYmxlT2Zmc2V0UmFuZ2UscmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uKCl7aWYoZHJhZ2dpbmcpe3ZhciBtb3ZlUmFmSWQsb25Nb3VzZU1vdmU9ZnVuY3Rpb24oZSl7dmFyIF9zdGF0ZVJlZiRjdXJyZW50PXN0YXRlUmVmLmN1cnJlbnQsc3RhdGVEcmFnZ2luZz1fc3RhdGVSZWYkY3VycmVudC5kcmFnZ2luZyxzdGF0ZVBhZ2VZPV9zdGF0ZVJlZiRjdXJyZW50LnBhZ2VZLHN0YXRlU3RhcnRUb3A9X3N0YXRlUmVmJGN1cnJlbnQuc3RhcnRUb3A7aWYocmFmLlouY2FuY2VsKG1vdmVSYWZJZCksc3RhdGVEcmFnZ2luZyl7dmFyIG9mZnNldD1nZXRQYWdlWFkoZSxob3Jpem9udGFsKS1zdGF0ZVBhZ2VZLG5ld1RvcD1zdGF0ZVN0YXJ0VG9wOyFpc0xUUiYmaG9yaXpvbnRhbD9uZXdUb3AtPW9mZnNldDpuZXdUb3ArPW9mZnNldDt2YXIgdG1wRW5hYmxlU2Nyb2xsUmFuZ2U9ZW5hYmxlU2Nyb2xsUmFuZ2VSZWYuY3VycmVudCx0bXBFbmFibGVPZmZzZXRSYW5nZT1lbmFibGVPZmZzZXRSYW5nZVJlZi5jdXJyZW50LG5ld1Njcm9sbFRvcD1NYXRoLmNlaWwoKHRtcEVuYWJsZU9mZnNldFJhbmdlP25ld1RvcC90bXBFbmFibGVPZmZzZXRSYW5nZTowKSp0bXBFbmFibGVTY3JvbGxSYW5nZSk7bmV3U2Nyb2xsVG9wPU1hdGgubWluKG5ld1Njcm9sbFRvcD1NYXRoLm1heChuZXdTY3JvbGxUb3AsMCksdG1wRW5hYmxlU2Nyb2xsUmFuZ2UpLG1vdmVSYWZJZD0oMCxyYWYuWikoZnVuY3Rpb24oKXtvblNjcm9sbChuZXdTY3JvbGxUb3AsaG9yaXpvbnRhbCl9KX19LG9uTW91c2VVcD1mdW5jdGlvbigpe3NldERyYWdnaW5nKCExKSxvblN0b3BNb3ZlKCl9O3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixvbk1vdXNlTW92ZSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsb25Nb3VzZU1vdmUpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixvbk1vdXNlVXApLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsb25Nb3VzZVVwKSxmdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLG9uTW91c2VNb3ZlKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixvbk1vdXNlTW92ZSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG9uTW91c2VVcCksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixvbk1vdXNlVXApLHJhZi5aLmNhbmNlbChtb3ZlUmFmSWQpfX19LFtkcmFnZ2luZ10pLHJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbigpe2RlbGF5SGlkZGVuKCl9LFtzY3JvbGxPZmZzZXRdKSxyZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKHJlZixmdW5jdGlvbigpe3JldHVybntkZWxheUhpZGRlbjpkZWxheUhpZGRlbn19KTt2YXIgc2Nyb2xsYmFyUHJlZml4Q2xzPSIiLmNvbmNhdChwcmVmaXhDbHMsIi1zY3JvbGxiYXIiKSxjb250YWluZXJTdHlsZT17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OnZpc2libGUmJmVuYWJsZVNjcm9sbFJhbmdlPjA/bnVsbDoiaGlkZGVuIn0sdGh1bWJTdHlsZT17cG9zaXRpb246ImFic29sdXRlIixiYWNrZ3JvdW5kOiJyZ2JhKDAsIDAsIDAsIDAuNSkiLGJvcmRlclJhZGl1czo5OSxjdXJzb3I6InBvaW50ZXIiLHVzZXJTZWxlY3Q6Im5vbmUifTtyZXR1cm4gaG9yaXpvbnRhbD8oY29udGFpbmVyU3R5bGUuaGVpZ2h0PTgsY29udGFpbmVyU3R5bGUubGVmdD0wLGNvbnRhaW5lclN0eWxlLnJpZ2h0PTAsY29udGFpbmVyU3R5bGUuYm90dG9tPTAsdGh1bWJTdHlsZS5oZWlnaHQ9IjEwMCUiLHRodW1iU3R5bGUud2lkdGg9c3BpblNpemUsaXNMVFI/dGh1bWJTdHlsZS5sZWZ0PXRvcDp0aHVtYlN0eWxlLnJpZ2h0PXRvcCk6KGNvbnRhaW5lclN0eWxlLndpZHRoPTgsY29udGFpbmVyU3R5bGUudG9wPTAsY29udGFpbmVyU3R5bGUuYm90dG9tPTAsaXNMVFI/Y29udGFpbmVyU3R5bGUucmlnaHQ9MDpjb250YWluZXJTdHlsZS5sZWZ0PTAsdGh1bWJTdHlsZS53aWR0aD0iMTAwJSIsdGh1bWJTdHlsZS5oZWlnaHQ9c3BpblNpemUsdGh1bWJTdHlsZS50b3A9dG9wKSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6c2Nyb2xsYmFyUmVmLGNsYXNzTmFtZTpub2RlX21vZHVsZXNfY2xhc3NuYW1lc19kZWZhdWx0KCkoc2Nyb2xsYmFyUHJlZml4Q2xzLChfY2xhc3NOYW1lcz17fSwoMCxkZWZpbmVQcm9wZXJ0eS5aKShfY2xhc3NOYW1lcywiIi5jb25jYXQoc2Nyb2xsYmFyUHJlZml4Q2xzLCItaG9yaXpvbnRhbCIpLGhvcml6b250YWwpLCgwLGRlZmluZVByb3BlcnR5LlopKF9jbGFzc05hbWVzLCIiLmNvbmNhdChzY3JvbGxiYXJQcmVmaXhDbHMsIi12ZXJ0aWNhbCIpLCFob3Jpem9udGFsKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKShfY2xhc3NOYW1lcywiIi5jb25jYXQoc2Nyb2xsYmFyUHJlZml4Q2xzLCItdmlzaWJsZSIpLHZpc2libGUpLF9jbGFzc05hbWVzKSksc3R5bGU6KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LGNvbnRhaW5lclN0eWxlKSxzdHlsZSksb25Nb3VzZURvd246ZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKSxlLnByZXZlbnREZWZhdWx0KCl9LG9uTW91c2VNb3ZlOmRlbGF5SGlkZGVufSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtyZWY6dGh1bWJSZWYsY2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKSgiIi5jb25jYXQoc2Nyb2xsYmFyUHJlZml4Q2xzLCItdGh1bWIiKSwoMCxkZWZpbmVQcm9wZXJ0eS5aKSh7fSwiIi5jb25jYXQoc2Nyb2xsYmFyUHJlZml4Q2xzLCItdGh1bWItbW92aW5nIiksZHJhZ2dpbmcpKSxzdHlsZTooMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe30sdGh1bWJTdHlsZSkscHJvcHNUaHVtYlN0eWxlKSxvbk1vdXNlRG93bjpvblRodW1iTW91c2VEb3dufSkpfSk7ZnVuY3Rpb24gSXRlbShfcmVmKXt2YXIgY2hpbGRyZW49X3JlZi5jaGlsZHJlbixzZXRSZWY9X3JlZi5zZXRSZWYscmVmRnVuYz1yZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbihub2RlKXtzZXRSZWYobm9kZSl9LFtdKTtyZXR1cm4gcmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkcmVuLHtyZWY6cmVmRnVuY30pfXZhciBmaW5kRE9NTm9kZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDM0MjAzKSxjbGFzc0NhbGxDaGVjaz1fX3dlYnBhY2tfcmVxdWlyZV9fKDE1NjcxKSxjcmVhdGVDbGFzcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQzMTQ0KSxDYWNoZU1hcD1mdW5jdGlvbigpe2Z1bmN0aW9uIENhY2hlTWFwKCl7KDAsY2xhc3NDYWxsQ2hlY2suWikodGhpcyxDYWNoZU1hcCksdGhpcy5tYXBzPXZvaWQgMCx0aGlzLmlkPTAsdGhpcy5tYXBzPU9iamVjdC5jcmVhdGUobnVsbCl9cmV0dXJuKDAsY3JlYXRlQ2xhc3MuWikoQ2FjaGVNYXAsW3trZXk6InNldCIsdmFsdWU6ZnVuY3Rpb24oa2V5LHZhbHVlKXt0aGlzLm1hcHNba2V5XT12YWx1ZSx0aGlzLmlkKz0xfX0se2tleToiZ2V0Iix2YWx1ZTpmdW5jdGlvbihrZXkpe3JldHVybiB0aGlzLm1hcHNba2V5XX19XSksQ2FjaGVNYXB9KCkscmNfdXRpbF9lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDU2NzkwKSxpc0ZGPSgidW5kZWZpbmVkIj09dHlwZW9mIG5hdmlnYXRvcj8idW5kZWZpbmVkIjooMCxlc21fdHlwZW9mLlopKG5hdmlnYXRvcikpPT09Im9iamVjdCImJi9GaXJlZm94L2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSx1c2VPcmlnaW5TY3JvbGw9ZnVuY3Rpb24oaXNTY3JvbGxBdFRvcCxpc1Njcm9sbEF0Qm90dG9tKXt2YXIgbG9ja1JlZj0oMCxyZWFjdC51c2VSZWYpKCExKSxsb2NrVGltZW91dFJlZj0oMCxyZWFjdC51c2VSZWYpKG51bGwpLHNjcm9sbFBpbmdSZWY9KDAscmVhY3QudXNlUmVmKSh7dG9wOmlzU2Nyb2xsQXRUb3AsYm90dG9tOmlzU2Nyb2xsQXRCb3R0b219KTtyZXR1cm4gc2Nyb2xsUGluZ1JlZi5jdXJyZW50LnRvcD1pc1Njcm9sbEF0VG9wLHNjcm9sbFBpbmdSZWYuY3VycmVudC5ib3R0b209aXNTY3JvbGxBdEJvdHRvbSxmdW5jdGlvbihkZWx0YVkpe3ZhciBzbW9vdGhPZmZzZXQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxvcmlnaW5TY3JvbGw9ZGVsdGFZPDAmJnNjcm9sbFBpbmdSZWYuY3VycmVudC50b3B8fGRlbHRhWT4wJiZzY3JvbGxQaW5nUmVmLmN1cnJlbnQuYm90dG9tO3JldHVybiBzbW9vdGhPZmZzZXQmJm9yaWdpblNjcm9sbD8oY2xlYXJUaW1lb3V0KGxvY2tUaW1lb3V0UmVmLmN1cnJlbnQpLGxvY2tSZWYuY3VycmVudD0hMSk6KCFvcmlnaW5TY3JvbGx8fGxvY2tSZWYuY3VycmVudCkmJihjbGVhclRpbWVvdXQobG9ja1RpbWVvdXRSZWYuY3VycmVudCksbG9ja1JlZi5jdXJyZW50PSEwLGxvY2tUaW1lb3V0UmVmLmN1cnJlbnQ9c2V0VGltZW91dChmdW5jdGlvbigpe2xvY2tSZWYuY3VycmVudD0hMX0sNTApKSwhbG9ja1JlZi5jdXJyZW50JiZvcmlnaW5TY3JvbGx9fSxTTU9PVEhfUFRHPTE0LzE1O2Z1bmN0aW9uIGdldFNwaW5TaXplKCl7dmFyIGNvbnRhaW5lclNpemU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjAsc2Nyb2xsUmFuZ2U9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAsYmFzZVNpemU9Y29udGFpbmVyU2l6ZS9zY3JvbGxSYW5nZSoxMDA7cmV0dXJuIGlzTmFOKGJhc2VTaXplKSYmKGJhc2VTaXplPTApLE1hdGguZmxvb3IoYmFzZVNpemU9TWF0aC5taW4oYmFzZVNpemU9TWF0aC5tYXgoYmFzZVNpemUsMjApLGNvbnRhaW5lclNpemUvMikpfXZhciBMaXN0X2V4Y2x1ZGVkPVsicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwiaGVpZ2h0IiwiaXRlbUhlaWdodCIsImZ1bGxIZWlnaHQiLCJzdHlsZSIsImRhdGEiLCJjaGlsZHJlbiIsIml0ZW1LZXkiLCJ2aXJ0dWFsIiwiZGlyZWN0aW9uIiwic2Nyb2xsV2lkdGgiLCJjb21wb25lbnQiLCJvblNjcm9sbCIsIm9uVmlydHVhbFNjcm9sbCIsIm9uVmlzaWJsZUNoYW5nZSIsImlubmVyUHJvcHMiLCJleHRyYVJlbmRlciIsInN0eWxlcyJdLEVNUFRZX0RBVEE9W10sU2Nyb2xsU3R5bGU9e292ZXJmbG93WToiYXV0byIsb3ZlcmZsb3dBbmNob3I6Im5vbmUifSxMaXN0PXJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24ocHJvcHMscmVmKXt2YXIgb25EaWZmLF9SZWFjdCR1c2VTdGF0ZSxfUmVhY3QkdXNlU3RhdGUyLHByZXZEYXRhLHNldFByZXZEYXRhLF9SZWFjdCR1c2VTdGF0ZTMsX1JlYWN0JHVzZVN0YXRlNCxkaWZmSXRlbSxzZXREaWZmSXRlbSxob3Jpem9udGFsU2Nyb2xsLG9mZnNldFJlZixuZXh0RnJhbWVSZWYsd2hlZWxWYWx1ZVJlZixpc01vdXNlU2Nyb2xsUmVmLG9yaWdpblNjcm9sbCx3aGVlbERpcmVjdGlvblJlZix3aGVlbERpcmVjdGlvbkNsZWFuUmVmLGNhbGxiYWNrLGNsZWFuVXBFdmVudHMsdG91Y2hlZFJlZix0b3VjaFlSZWYsZWxlbWVudFJlZixpbnRlcnZhbFJlZixvblRvdWNoTW92ZSxvblRvdWNoRW5kLG9uVG91Y2hTdGFydCxzY3JvbGxSZWYsX1JlYWN0JHVzZVN0YXRlMSxfUmVhY3QkdXNlU3RhdGUyMSxzeW5jU3RhdGUsc2V0U3luY1N0YXRlLF9SZWFjdCR1c2VNZW1vLF9SZWFjdCR1c2VNZW1vMixrZXkySW5kZXgsYm90dG9tTGlzdCxfcHJvcHMkcHJlZml4Q2xzPXByb3BzLnByZWZpeENscyxwcmVmaXhDbHM9dm9pZCAwPT09X3Byb3BzJHByZWZpeENscz8icmMtdmlydHVhbC1saXN0IjpfcHJvcHMkcHJlZml4Q2xzLGNsYXNzTmFtZT1wcm9wcy5jbGFzc05hbWUsaGVpZ2h0PXByb3BzLmhlaWdodCxpdGVtSGVpZ2h0PXByb3BzLml0ZW1IZWlnaHQsX3Byb3BzJGZ1bGxIZWlnaHQ9cHJvcHMuZnVsbEhlaWdodCxzdHlsZT1wcm9wcy5zdHlsZSxkYXRhPXByb3BzLmRhdGEsY2hpbGRyZW49cHJvcHMuY2hpbGRyZW4saXRlbUtleT1wcm9wcy5pdGVtS2V5LHZpcnR1YWw9cHJvcHMudmlydHVhbCxkaXJlY3Rpb249cHJvcHMuZGlyZWN0aW9uLHNjcm9sbFdpZHRoPXByb3BzLnNjcm9sbFdpZHRoLF9wcm9wcyRjb21wb25lbnQ9cHJvcHMuY29tcG9uZW50LG9uU2Nyb2xsPXByb3BzLm9uU2Nyb2xsLG9uVmlydHVhbFNjcm9sbD1wcm9wcy5vblZpcnR1YWxTY3JvbGwsb25WaXNpYmxlQ2hhbmdlPXByb3BzLm9uVmlzaWJsZUNoYW5nZSxpbm5lclByb3BzPXByb3BzLmlubmVyUHJvcHMsZXh0cmFSZW5kZXI9cHJvcHMuZXh0cmFSZW5kZXIsc3R5bGVzPXByb3BzLnN0eWxlcyxyZXN0UHJvcHM9KDAsb2JqZWN0V2l0aG91dFByb3BlcnRpZXMuWikocHJvcHMsTGlzdF9leGNsdWRlZCksdXNlVmlydHVhbD0hISghMSE9PXZpcnR1YWwmJmhlaWdodCYmaXRlbUhlaWdodCksaW5WaXJ0dWFsPXVzZVZpcnR1YWwmJmRhdGEmJihpdGVtSGVpZ2h0KmRhdGEubGVuZ3RoPmhlaWdodHx8ISFzY3JvbGxXaWR0aCksaXNSVEw9InJ0bCI9PT1kaXJlY3Rpb24sbWVyZ2VkQ2xhc3NOYW1lPW5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKShwcmVmaXhDbHMsKDAsZGVmaW5lUHJvcGVydHkuWikoe30sIiIuY29uY2F0KHByZWZpeENscywiLXJ0bCIpLGlzUlRMKSxjbGFzc05hbWUpLG1lcmdlZERhdGE9ZGF0YXx8RU1QVFlfREFUQSxjb21wb25lbnRSZWY9KDAscmVhY3QudXNlUmVmKSgpLGZpbGxlcklubmVyUmVmPSgwLHJlYWN0LnVzZVJlZikoKSxfdXNlU3RhdGU9KDAscmVhY3QudXNlU3RhdGUpKDApLF91c2VTdGF0ZTI9KDAsc2xpY2VkVG9BcnJheS5aKShfdXNlU3RhdGUsMiksb2Zmc2V0VG9wPV91c2VTdGF0ZTJbMF0sc2V0T2Zmc2V0VG9wPV91c2VTdGF0ZTJbMV0sX3VzZVN0YXRlMz0oMCxyZWFjdC51c2VTdGF0ZSkoMCksX3VzZVN0YXRlND0oMCxzbGljZWRUb0FycmF5LlopKF91c2VTdGF0ZTMsMiksb2Zmc2V0TGVmdD1fdXNlU3RhdGU0WzBdLHNldE9mZnNldExlZnQ9X3VzZVN0YXRlNFsxXSxfdXNlU3RhdGU1PSgwLHJlYWN0LnVzZVN0YXRlKSghMSksX3VzZVN0YXRlNj0oMCxzbGljZWRUb0FycmF5LlopKF91c2VTdGF0ZTUsMiksc2Nyb2xsTW92aW5nPV91c2VTdGF0ZTZbMF0sc2V0U2Nyb2xsTW92aW5nPV91c2VTdGF0ZTZbMV0sb25TY3JvbGxiYXJTdGFydE1vdmU9ZnVuY3Rpb24oKXtzZXRTY3JvbGxNb3ZpbmcoITApfSxvblNjcm9sbGJhclN0b3BNb3ZlPWZ1bmN0aW9uKCl7c2V0U2Nyb2xsTW92aW5nKCExKX0sZ2V0S2V5PXJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uKGl0ZW0pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBpdGVtS2V5P2l0ZW1LZXkoaXRlbSk6bnVsbD09aXRlbT92b2lkIDA6aXRlbVtpdGVtS2V5XX0sW2l0ZW1LZXldKTtmdW5jdGlvbiBzeW5jU2Nyb2xsVG9wKG5ld1RvcCl7c2V0T2Zmc2V0VG9wKGZ1bmN0aW9uKG9yaWdpbil7dmFyIG5ld1RvcDEsYWxpZ25lZFRvcD0obmV3VG9wMT0iZnVuY3Rpb24iPT10eXBlb2YgbmV3VG9wP25ld1RvcChvcmlnaW4pOm5ld1RvcCxOdW1iZXIuaXNOYU4obWF4U2Nyb2xsSGVpZ2h0UmVmLmN1cnJlbnQpfHwobmV3VG9wMT1NYXRoLm1pbihuZXdUb3AxLG1heFNjcm9sbEhlaWdodFJlZi5jdXJyZW50KSksbmV3VG9wMT1NYXRoLm1heChuZXdUb3AxLDApKTtyZXR1cm4gY29tcG9uZW50UmVmLmN1cnJlbnQuc2Nyb2xsVG9wPWFsaWduZWRUb3AsYWxpZ25lZFRvcH0pfXZhciByYW5nZVJlZj0oMCxyZWFjdC51c2VSZWYpKHtzdGFydDowLGVuZDptZXJnZWREYXRhLmxlbmd0aH0pLGRpZmZJdGVtUmVmPSgwLHJlYWN0LnVzZVJlZikoKSxfdXNlRGlmZkl0ZW09KF9SZWFjdCR1c2VTdGF0ZT1yZWFjdC51c2VTdGF0ZShtZXJnZWREYXRhKSxwcmV2RGF0YT0oX1JlYWN0JHVzZVN0YXRlMj0oMCxzbGljZWRUb0FycmF5LlopKF9SZWFjdCR1c2VTdGF0ZSwyKSlbMF0sc2V0UHJldkRhdGE9X1JlYWN0JHVzZVN0YXRlMlsxXSxfUmVhY3QkdXNlU3RhdGUzPXJlYWN0LnVzZVN0YXRlKG51bGwpLGRpZmZJdGVtPShfUmVhY3QkdXNlU3RhdGU0PSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlMywyKSlbMF0sc2V0RGlmZkl0ZW09X1JlYWN0JHVzZVN0YXRlNFsxXSxyZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24oKXt2YXIgZGlmZj1mdW5jdGlvbihvcmlnaW5MaXN0LHRhcmdldExpc3QsZ2V0S2V5KXt2YXIgc2hvcnRMaXN0LGxvbmdMaXN0LG9yaWdpbkxlbj1vcmlnaW5MaXN0Lmxlbmd0aCx0YXJnZXRMZW49dGFyZ2V0TGlzdC5sZW5ndGg7aWYoMD09PW9yaWdpbkxlbiYmMD09PXRhcmdldExlbilyZXR1cm4gbnVsbDtvcmlnaW5MZW48dGFyZ2V0TGVuPyhzaG9ydExpc3Q9b3JpZ2luTGlzdCxsb25nTGlzdD10YXJnZXRMaXN0KTooc2hvcnRMaXN0PXRhcmdldExpc3QsbG9uZ0xpc3Q9b3JpZ2luTGlzdCk7dmFyIG5vdEV4aXN0S2V5PXtfX0VNUFRZX0lURU1fXzohMH07ZnVuY3Rpb24gZ2V0SXRlbUtleShpdGVtKXtyZXR1cm4gdm9pZCAwIT09aXRlbT9nZXRLZXkoaXRlbSk6bm90RXhpc3RLZXl9Zm9yKHZhciBkaWZmSW5kZXg9bnVsbCxtdWx0aXBsZT0xIT09TWF0aC5hYnMob3JpZ2luTGVuLXRhcmdldExlbiksaT0wO2k8bG9uZ0xpc3QubGVuZ3RoO2krPTEpe3ZhciBzaG9ydEtleT1nZXRJdGVtS2V5KHNob3J0TGlzdFtpXSk7aWYoc2hvcnRLZXkhPT1nZXRJdGVtS2V5KGxvbmdMaXN0W2ldKSl7ZGlmZkluZGV4PWksbXVsdGlwbGU9bXVsdGlwbGV8fHNob3J0S2V5IT09Z2V0SXRlbUtleShsb25nTGlzdFtpKzFdKTticmVha319cmV0dXJuIG51bGw9PT1kaWZmSW5kZXg/bnVsbDp7aW5kZXg6ZGlmZkluZGV4LG11bHRpcGxlOm11bHRpcGxlfX0ocHJldkRhdGF8fFtdLG1lcmdlZERhdGF8fFtdLGdldEtleSk7KG51bGw9PWRpZmY/dm9pZCAwOmRpZmYuaW5kZXgpIT09dm9pZCAwJiYobnVsbD09b25EaWZmfHxvbkRpZmYoZGlmZi5pbmRleCksc2V0RGlmZkl0ZW0obWVyZ2VkRGF0YVtkaWZmLmluZGV4XSkpLHNldFByZXZEYXRhKG1lcmdlZERhdGEpfSxbbWVyZ2VkRGF0YV0pLFtkaWZmSXRlbV0pLGRpZmZJdGVtMT0oMCxzbGljZWRUb0FycmF5LlopKF91c2VEaWZmSXRlbSwxKVswXTtkaWZmSXRlbVJlZi5jdXJyZW50PWRpZmZJdGVtMTt2YXIgX3VzZUhlaWdodHM9ZnVuY3Rpb24oZ2V0S2V5LG9uSXRlbUFkZCxvbkl0ZW1SZW1vdmUpe3ZhciBfUmVhY3QkdXNlU3RhdGU9cmVhY3QudXNlU3RhdGUoMCksX1JlYWN0JHVzZVN0YXRlMj0oMCxzbGljZWRUb0FycmF5LlopKF9SZWFjdCR1c2VTdGF0ZSwyKSx1cGRhdGVkTWFyaz1fUmVhY3QkdXNlU3RhdGUyWzBdLHNldFVwZGF0ZWRNYXJrPV9SZWFjdCR1c2VTdGF0ZTJbMV0saW5zdGFuY2VSZWY9KDAscmVhY3QudXNlUmVmKShuZXcgTWFwKSxoZWlnaHRzUmVmPSgwLHJlYWN0LnVzZVJlZikobmV3IENhY2hlTWFwKSxjb2xsZWN0UmFmUmVmPSgwLHJlYWN0LnVzZVJlZikoKTtmdW5jdGlvbiBjYW5jZWxSYWYoKXtyYWYuWi5jYW5jZWwoY29sbGVjdFJhZlJlZi5jdXJyZW50KX1mdW5jdGlvbiBjb2xsZWN0SGVpZ2h0KCl7dmFyIHN5bmM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTtjYW5jZWxSYWYoKTt2YXIgZG9Db2xsZWN0PWZ1bmN0aW9uKCl7aW5zdGFuY2VSZWYuY3VycmVudC5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsa2V5KXtpZihlbGVtZW50JiZlbGVtZW50Lm9mZnNldFBhcmVudCl7dmFyIGh0bWxFbGVtZW50PSgwLGZpbmRET01Ob2RlLlopKGVsZW1lbnQpLG9mZnNldEhlaWdodD1odG1sRWxlbWVudC5vZmZzZXRIZWlnaHQ7aGVpZ2h0c1JlZi5jdXJyZW50LmdldChrZXkpIT09b2Zmc2V0SGVpZ2h0JiZoZWlnaHRzUmVmLmN1cnJlbnQuc2V0KGtleSxodG1sRWxlbWVudC5vZmZzZXRIZWlnaHQpfX0pLHNldFVwZGF0ZWRNYXJrKGZ1bmN0aW9uKGMpe3JldHVybiBjKzF9KX07c3luYz9kb0NvbGxlY3QoKTpjb2xsZWN0UmFmUmVmLmN1cnJlbnQ9KDAscmFmLlopKGRvQ29sbGVjdCl9cmV0dXJuKDAscmVhY3QudXNlRWZmZWN0KShmdW5jdGlvbigpe3JldHVybiBjYW5jZWxSYWZ9LFtdKSxbZnVuY3Rpb24oaXRlbSxpbnN0YW5jZSl7dmFyIGtleT1nZXRLZXkoaXRlbSksb3JpZ2luPWluc3RhbmNlUmVmLmN1cnJlbnQuZ2V0KGtleSk7aW5zdGFuY2U/KGluc3RhbmNlUmVmLmN1cnJlbnQuc2V0KGtleSxpbnN0YW5jZSksY29sbGVjdEhlaWdodCgpKTppbnN0YW5jZVJlZi5jdXJyZW50LmRlbGV0ZShrZXkpLCFvcmlnaW4hPSFpbnN0YW5jZSYmKGluc3RhbmNlP251bGw9PW9uSXRlbUFkZHx8b25JdGVtQWRkKGl0ZW0pOm51bGw9PW9uSXRlbVJlbW92ZXx8b25JdGVtUmVtb3ZlKGl0ZW0pKX0sY29sbGVjdEhlaWdodCxoZWlnaHRzUmVmLmN1cnJlbnQsdXBkYXRlZE1hcmtdfShnZXRLZXksbnVsbCxudWxsKSxfdXNlSGVpZ2h0czI9KDAsc2xpY2VkVG9BcnJheS5aKShfdXNlSGVpZ2h0cyw0KSxzZXRJbnN0YW5jZVJlZj1fdXNlSGVpZ2h0czJbMF0sY29sbGVjdEhlaWdodD1fdXNlSGVpZ2h0czJbMV0saGVpZ2h0cz1fdXNlSGVpZ2h0czJbMl0saGVpZ2h0VXBkYXRlZE1hcms9X3VzZUhlaWdodHMyWzNdLF9SZWFjdCR1c2VNZW1vMT1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7aWYoIXVzZVZpcnR1YWwpcmV0dXJue3Njcm9sbEhlaWdodDp2b2lkIDAsc3RhcnQ6MCxlbmQ6bWVyZ2VkRGF0YS5sZW5ndGgtMSxvZmZzZXQ6dm9pZCAwfTtpZighaW5WaXJ0dWFsKXJldHVybntzY3JvbGxIZWlnaHQ6KG51bGw9PT0oX2ZpbGxlcklubmVyUmVmJGN1cnJlPWZpbGxlcklubmVyUmVmLmN1cnJlbnQpfHx2b2lkIDA9PT1fZmlsbGVySW5uZXJSZWYkY3VycmU/dm9pZCAwOl9maWxsZXJJbm5lclJlZiRjdXJyZS5vZmZzZXRIZWlnaHQpfHwwLHN0YXJ0OjAsZW5kOm1lcmdlZERhdGEubGVuZ3RoLTEsb2Zmc2V0OnZvaWQgMH07Zm9yKHZhciBfZmlsbGVySW5uZXJSZWYkY3VycmUsc3RhcnRJbmRleCxzdGFydE9mZnNldCxlbmRJbmRleCxpdGVtVG9wPTAsZGF0YUxlbj1tZXJnZWREYXRhLmxlbmd0aCxpPTA7aTxkYXRhTGVuO2krPTEpe3ZhciBrZXk9Z2V0S2V5KG1lcmdlZERhdGFbaV0pLGNhY2hlSGVpZ2h0PWhlaWdodHMuZ2V0KGtleSksY3VycmVudEl0ZW1Cb3R0b209aXRlbVRvcCsodm9pZCAwPT09Y2FjaGVIZWlnaHQ/aXRlbUhlaWdodDpjYWNoZUhlaWdodCk7Y3VycmVudEl0ZW1Cb3R0b20+PW9mZnNldFRvcCYmdm9pZCAwPT09c3RhcnRJbmRleCYmKHN0YXJ0SW5kZXg9aSxzdGFydE9mZnNldD1pdGVtVG9wKSxjdXJyZW50SXRlbUJvdHRvbT5vZmZzZXRUb3AraGVpZ2h0JiZ2b2lkIDA9PT1lbmRJbmRleCYmKGVuZEluZGV4PWkpLGl0ZW1Ub3A9Y3VycmVudEl0ZW1Cb3R0b219cmV0dXJuIHZvaWQgMD09PXN0YXJ0SW5kZXgmJihzdGFydEluZGV4PTAsc3RhcnRPZmZzZXQ9MCxlbmRJbmRleD1NYXRoLmNlaWwoaGVpZ2h0L2l0ZW1IZWlnaHQpKSx2b2lkIDA9PT1lbmRJbmRleCYmKGVuZEluZGV4PW1lcmdlZERhdGEubGVuZ3RoLTEpLHtzY3JvbGxIZWlnaHQ6aXRlbVRvcCxzdGFydDpzdGFydEluZGV4LGVuZDplbmRJbmRleD1NYXRoLm1pbihlbmRJbmRleCsxLG1lcmdlZERhdGEubGVuZ3RoLTEpLG9mZnNldDpzdGFydE9mZnNldH19LFtpblZpcnR1YWwsdXNlVmlydHVhbCxvZmZzZXRUb3AsbWVyZ2VkRGF0YSxoZWlnaHRVcGRhdGVkTWFyayxoZWlnaHRdKSxzY3JvbGxIZWlnaHQ9X1JlYWN0JHVzZU1lbW8xLnNjcm9sbEhlaWdodCxzdGFydD1fUmVhY3QkdXNlTWVtbzEuc3RhcnQsZW5kPV9SZWFjdCR1c2VNZW1vMS5lbmQsZmlsbGVyT2Zmc2V0PV9SZWFjdCR1c2VNZW1vMS5vZmZzZXQ7cmFuZ2VSZWYuY3VycmVudC5zdGFydD1zdGFydCxyYW5nZVJlZi5jdXJyZW50LmVuZD1lbmQ7dmFyIF9SZWFjdCR1c2VTdGF0ZTU9cmVhY3QudXNlU3RhdGUoe3dpZHRoOjAsaGVpZ2h0OmhlaWdodH0pLF9SZWFjdCR1c2VTdGF0ZTIyPSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlNSwyKSxzaXplPV9SZWFjdCR1c2VTdGF0ZTIyWzBdLHNldFNpemU9X1JlYWN0JHVzZVN0YXRlMjJbMV0sdmVydGljYWxTY3JvbGxCYXJSZWY9KDAscmVhY3QudXNlUmVmKSgpLGhvcml6b250YWxTY3JvbGxCYXJSZWY9KDAscmVhY3QudXNlUmVmKSgpLGhvcml6b250YWxTY3JvbGxCYXJTcGluU2l6ZT1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuIGdldFNwaW5TaXplKHNpemUud2lkdGgsc2Nyb2xsV2lkdGgpfSxbc2l6ZS53aWR0aCxzY3JvbGxXaWR0aF0pLHZlcnRpY2FsU2Nyb2xsQmFyU3BpblNpemU9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBnZXRTcGluU2l6ZShzaXplLmhlaWdodCxzY3JvbGxIZWlnaHQpfSxbc2l6ZS5oZWlnaHQsc2Nyb2xsSGVpZ2h0XSksbWF4U2Nyb2xsSGVpZ2h0PXNjcm9sbEhlaWdodC1oZWlnaHQsbWF4U2Nyb2xsSGVpZ2h0UmVmPSgwLHJlYWN0LnVzZVJlZikobWF4U2Nyb2xsSGVpZ2h0KTttYXhTY3JvbGxIZWlnaHRSZWYuY3VycmVudD1tYXhTY3JvbGxIZWlnaHQ7dmFyIGlzU2Nyb2xsQXRUb3A9b2Zmc2V0VG9wPD0wLGlzU2Nyb2xsQXRCb3R0b209b2Zmc2V0VG9wPj1tYXhTY3JvbGxIZWlnaHQsb3JpZ2luU2Nyb2xsMT11c2VPcmlnaW5TY3JvbGwoaXNTY3JvbGxBdFRvcCxpc1Njcm9sbEF0Qm90dG9tKSxnZXRWaXJ0dWFsU2Nyb2xsSW5mbz1mdW5jdGlvbigpe3JldHVybnt4OmlzUlRMPy1vZmZzZXRMZWZ0Om9mZnNldExlZnQseTpvZmZzZXRUb3B9fSxsYXN0VmlydHVhbFNjcm9sbEluZm9SZWY9KDAscmVhY3QudXNlUmVmKShnZXRWaXJ0dWFsU2Nyb2xsSW5mbygpKSx0cmlnZ2VyU2Nyb2xsPSgwLHJjX3V0aWxfZXMuelgpKGZ1bmN0aW9uKCl7aWYob25WaXJ0dWFsU2Nyb2xsKXt2YXIgbmV4dEluZm89Z2V0VmlydHVhbFNjcm9sbEluZm8oKTsobGFzdFZpcnR1YWxTY3JvbGxJbmZvUmVmLmN1cnJlbnQueCE9PW5leHRJbmZvLnh8fGxhc3RWaXJ0dWFsU2Nyb2xsSW5mb1JlZi5jdXJyZW50LnkhPT1uZXh0SW5mby55KSYmKG9uVmlydHVhbFNjcm9sbChuZXh0SW5mbyksbGFzdFZpcnR1YWxTY3JvbGxJbmZvUmVmLmN1cnJlbnQ9bmV4dEluZm8pfX0pO2Z1bmN0aW9uIG9uU2Nyb2xsQmFyKG5ld1Njcm9sbE9mZnNldCxob3Jpem9udGFsKXtob3Jpem9udGFsPygoMCxyZWFjdF9kb20uZmx1c2hTeW5jKShmdW5jdGlvbigpe3NldE9mZnNldExlZnQobmV3U2Nyb2xsT2Zmc2V0KX0pLHRyaWdnZXJTY3JvbGwoKSk6c3luY1Njcm9sbFRvcChuZXdTY3JvbGxPZmZzZXQpfXZhciBrZWVwSW5Ib3Jpem9udGFsUmFuZ2U9ZnVuY3Rpb24obmV4dE9mZnNldExlZnQpe3ZhciB0bXBPZmZzZXRMZWZ0PW5leHRPZmZzZXRMZWZ0LG1heD1zY3JvbGxXaWR0aC1zaXplLndpZHRoO3JldHVybiBNYXRoLm1pbih0bXBPZmZzZXRMZWZ0PU1hdGgubWF4KHRtcE9mZnNldExlZnQsMCksbWF4KX0sb25XaGVlbERlbHRhPSgwLHJjX3V0aWxfZXMuelgpKGZ1bmN0aW9uKG9mZnNldFhZLGZyb21Ib3Jpem9udGFsKXtmcm9tSG9yaXpvbnRhbD8oKDAscmVhY3RfZG9tLmZsdXNoU3luYykoZnVuY3Rpb24oKXtzZXRPZmZzZXRMZWZ0KGZ1bmN0aW9uKGxlZnQpe3JldHVybiBrZWVwSW5Ib3Jpem9udGFsUmFuZ2UobGVmdCsoaXNSVEw/LW9mZnNldFhZOm9mZnNldFhZKSl9KX0pLHRyaWdnZXJTY3JvbGwoKSk6c3luY1Njcm9sbFRvcChmdW5jdGlvbih0b3Ape3JldHVybiB0b3Arb2Zmc2V0WFl9KX0pLF91c2VGcmFtZVdoZWVsPShob3Jpem9udGFsU2Nyb2xsPSEhc2Nyb2xsV2lkdGgsb2Zmc2V0UmVmPSgwLHJlYWN0LnVzZVJlZikoMCksbmV4dEZyYW1lUmVmPSgwLHJlYWN0LnVzZVJlZikobnVsbCksd2hlZWxWYWx1ZVJlZj0oMCxyZWFjdC51c2VSZWYpKG51bGwpLGlzTW91c2VTY3JvbGxSZWY9KDAscmVhY3QudXNlUmVmKSghMSksb3JpZ2luU2Nyb2xsPXVzZU9yaWdpblNjcm9sbChpc1Njcm9sbEF0VG9wLGlzU2Nyb2xsQXRCb3R0b20pLHdoZWVsRGlyZWN0aW9uUmVmPSgwLHJlYWN0LnVzZVJlZikobnVsbCksd2hlZWxEaXJlY3Rpb25DbGVhblJlZj0oMCxyZWFjdC51c2VSZWYpKG51bGwpLFtmdW5jdGlvbihldmVudCl7aWYodXNlVmlydHVhbCl7cmFmLlouY2FuY2VsKHdoZWVsRGlyZWN0aW9uQ2xlYW5SZWYuY3VycmVudCksd2hlZWxEaXJlY3Rpb25DbGVhblJlZi5jdXJyZW50PSgwLHJhZi5aKShmdW5jdGlvbigpe3doZWVsRGlyZWN0aW9uUmVmLmN1cnJlbnQ9bnVsbH0sMik7dmFyIGRlbHRhWSxkZWx0YVg9ZXZlbnQuZGVsdGFYLGRlbHRhWTE9ZXZlbnQuZGVsdGFZLHNoaWZ0S2V5PWV2ZW50LnNoaWZ0S2V5LG1lcmdlZERlbHRhWD1kZWx0YVgsbWVyZ2VkRGVsdGFZPWRlbHRhWTE7KCJzeCI9PT13aGVlbERpcmVjdGlvblJlZi5jdXJyZW50fHwhd2hlZWxEaXJlY3Rpb25SZWYuY3VycmVudCYmc2hpZnRLZXkmJmRlbHRhWTEmJiFkZWx0YVgpJiYobWVyZ2VkRGVsdGFYPWRlbHRhWTEsbWVyZ2VkRGVsdGFZPTAsd2hlZWxEaXJlY3Rpb25SZWYuY3VycmVudD0ic3giKTt2YXIgYWJzWD1NYXRoLmFicyhtZXJnZWREZWx0YVgpLGFic1k9TWF0aC5hYnMobWVyZ2VkRGVsdGFZKTsobnVsbD09PXdoZWVsRGlyZWN0aW9uUmVmLmN1cnJlbnQmJih3aGVlbERpcmVjdGlvblJlZi5jdXJyZW50PWhvcml6b250YWxTY3JvbGwmJmFic1g+YWJzWT8ieCI6InkiKSwieSI9PT13aGVlbERpcmVjdGlvblJlZi5jdXJyZW50KT8oZGVsdGFZPW1lcmdlZERlbHRhWSxyYWYuWi5jYW5jZWwobmV4dEZyYW1lUmVmLmN1cnJlbnQpLG9mZnNldFJlZi5jdXJyZW50Kz1kZWx0YVksd2hlZWxWYWx1ZVJlZi5jdXJyZW50PWRlbHRhWSxvcmlnaW5TY3JvbGwoZGVsdGFZKXx8KGlzRkZ8fGV2ZW50LnByZXZlbnREZWZhdWx0KCksbmV4dEZyYW1lUmVmLmN1cnJlbnQ9KDAscmFmLlopKGZ1bmN0aW9uKCl7dmFyIHBhdGNoTXVsdGlwbGU9aXNNb3VzZVNjcm9sbFJlZi5jdXJyZW50PzEwOjE7b25XaGVlbERlbHRhKG9mZnNldFJlZi5jdXJyZW50KnBhdGNoTXVsdGlwbGUpLG9mZnNldFJlZi5jdXJyZW50PTB9KSkpOihvbldoZWVsRGVsdGEobWVyZ2VkRGVsdGFYLCEwKSxpc0ZGfHxldmVudC5wcmV2ZW50RGVmYXVsdCgpKX19LGZ1bmN0aW9uKGV2ZW50KXt1c2VWaXJ0dWFsJiYoaXNNb3VzZVNjcm9sbFJlZi5jdXJyZW50PWV2ZW50LmRldGFpbD09PXdoZWVsVmFsdWVSZWYuY3VycmVudCl9XSksX3VzZUZyYW1lV2hlZWwyPSgwLHNsaWNlZFRvQXJyYXkuWikoX3VzZUZyYW1lV2hlZWwsMiksb25SYXdXaGVlbD1fdXNlRnJhbWVXaGVlbDJbMF0sb25GaXJlRm94U2Nyb2xsPV91c2VGcmFtZVdoZWVsMlsxXTtjYWxsYmFjaz1mdW5jdGlvbihkZWx0YVksc21vb3RoT2Zmc2V0KXtyZXR1cm4hb3JpZ2luU2Nyb2xsMShkZWx0YVksc21vb3RoT2Zmc2V0KSYmKG9uUmF3V2hlZWwoe3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7fSxkZWx0YVk6ZGVsdGFZfSksITApfSx0b3VjaGVkUmVmPSgwLHJlYWN0LnVzZVJlZikoITEpLHRvdWNoWVJlZj0oMCxyZWFjdC51c2VSZWYpKDApLGVsZW1lbnRSZWY9KDAscmVhY3QudXNlUmVmKShudWxsKSxpbnRlcnZhbFJlZj0oMCxyZWFjdC51c2VSZWYpKG51bGwpLG9uVG91Y2hNb3ZlPWZ1bmN0aW9uKGUpe2lmKHRvdWNoZWRSZWYuY3VycmVudCl7dmFyIGN1cnJlbnRZPU1hdGguY2VpbChlLnRvdWNoZXNbMF0ucGFnZVkpLG9mZnNldFk9dG91Y2hZUmVmLmN1cnJlbnQtY3VycmVudFk7dG91Y2hZUmVmLmN1cnJlbnQ9Y3VycmVudFksY2FsbGJhY2sob2Zmc2V0WSkmJmUucHJldmVudERlZmF1bHQoKSxjbGVhckludGVydmFsKGludGVydmFsUmVmLmN1cnJlbnQpLGludGVydmFsUmVmLmN1cnJlbnQ9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXsoIWNhbGxiYWNrKG9mZnNldFkqPVNNT09USF9QVEcsITApfHwuMT49TWF0aC5hYnMob2Zmc2V0WSkpJiZjbGVhckludGVydmFsKGludGVydmFsUmVmLmN1cnJlbnQpfSwxNil9fSxvblRvdWNoRW5kPWZ1bmN0aW9uKCl7dG91Y2hlZFJlZi5jdXJyZW50PSExLGNsZWFuVXBFdmVudHMoKX0sb25Ub3VjaFN0YXJ0PWZ1bmN0aW9uKGUpe2NsZWFuVXBFdmVudHMoKSwxIT09ZS50b3VjaGVzLmxlbmd0aHx8dG91Y2hlZFJlZi5jdXJyZW50fHwodG91Y2hlZFJlZi5jdXJyZW50PSEwLHRvdWNoWVJlZi5jdXJyZW50PU1hdGguY2VpbChlLnRvdWNoZXNbMF0ucGFnZVkpLGVsZW1lbnRSZWYuY3VycmVudD1lLnRhcmdldCxlbGVtZW50UmVmLmN1cnJlbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixvblRvdWNoTW92ZSksZWxlbWVudFJlZi5jdXJyZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixvblRvdWNoRW5kKSl9LGNsZWFuVXBFdmVudHM9ZnVuY3Rpb24oKXtlbGVtZW50UmVmLmN1cnJlbnQmJihlbGVtZW50UmVmLmN1cnJlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixvblRvdWNoTW92ZSksZWxlbWVudFJlZi5jdXJyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixvblRvdWNoRW5kKSl9LCgwLHVzZUxheW91dEVmZmVjdC5aKShmdW5jdGlvbigpe3JldHVybiB1c2VWaXJ0dWFsJiZjb21wb25lbnRSZWYuY3VycmVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixvblRvdWNoU3RhcnQpLGZ1bmN0aW9uKCl7dmFyIF9saXN0UmVmJGN1cnJlbnQ7bnVsbD09PShfbGlzdFJlZiRjdXJyZW50PWNvbXBvbmVudFJlZi5jdXJyZW50KXx8dm9pZCAwPT09X2xpc3RSZWYkY3VycmVudHx8X2xpc3RSZWYkY3VycmVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixvblRvdWNoU3RhcnQpLGNsZWFuVXBFdmVudHMoKSxjbGVhckludGVydmFsKGludGVydmFsUmVmLmN1cnJlbnQpfX0sW3VzZVZpcnR1YWxdKSwoMCx1c2VMYXlvdXRFZmZlY3QuWikoZnVuY3Rpb24oKXtmdW5jdGlvbiBvbk1vek1vdXNlUGl4ZWxTY3JvbGwoZSl7dXNlVmlydHVhbCYmZS5wcmV2ZW50RGVmYXVsdCgpfXZhciBjb21wb25lbnRFbGU9Y29tcG9uZW50UmVmLmN1cnJlbnQ7cmV0dXJuIGNvbXBvbmVudEVsZS5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsb25SYXdXaGVlbCksY29tcG9uZW50RWxlLmFkZEV2ZW50TGlzdGVuZXIoIkRPTU1vdXNlU2Nyb2xsIixvbkZpcmVGb3hTY3JvbGwpLGNvbXBvbmVudEVsZS5hZGRFdmVudExpc3RlbmVyKCJNb3pNb3VzZVBpeGVsU2Nyb2xsIixvbk1vek1vdXNlUGl4ZWxTY3JvbGwpLGZ1bmN0aW9uKCl7Y29tcG9uZW50RWxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixvblJhd1doZWVsKSxjb21wb25lbnRFbGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NTW91c2VTY3JvbGwiLG9uRmlyZUZveFNjcm9sbCksY29tcG9uZW50RWxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIk1vek1vdXNlUGl4ZWxTY3JvbGwiLG9uTW96TW91c2VQaXhlbFNjcm9sbCl9fSxbdXNlVmlydHVhbF0pLCgwLHVzZUxheW91dEVmZmVjdC5aKShmdW5jdGlvbigpe3Njcm9sbFdpZHRoJiZzZXRPZmZzZXRMZWZ0KGZ1bmN0aW9uKGxlZnQpe3JldHVybiBrZWVwSW5Ib3Jpem9udGFsUmFuZ2UobGVmdCl9KX0sW3NpemUud2lkdGgsc2Nyb2xsV2lkdGhdKTt2YXIgZGVsYXlIaWRlU2Nyb2xsQmFyPWZ1bmN0aW9uKCl7dmFyIF92ZXJ0aWNhbFNjcm9sbEJhclJlZixfaG9yaXpvbnRhbFNjcm9sbEJhclI7bnVsbD09PShfdmVydGljYWxTY3JvbGxCYXJSZWY9dmVydGljYWxTY3JvbGxCYXJSZWYuY3VycmVudCl8fHZvaWQgMD09PV92ZXJ0aWNhbFNjcm9sbEJhclJlZnx8X3ZlcnRpY2FsU2Nyb2xsQmFyUmVmLmRlbGF5SGlkZGVuKCksbnVsbD09PShfaG9yaXpvbnRhbFNjcm9sbEJhclI9aG9yaXpvbnRhbFNjcm9sbEJhclJlZi5jdXJyZW50KXx8dm9pZCAwPT09X2hvcml6b250YWxTY3JvbGxCYXJSfHxfaG9yaXpvbnRhbFNjcm9sbEJhclIuZGVsYXlIaWRkZW4oKX0sX3Njcm9sbFRvPShzY3JvbGxSZWY9cmVhY3QudXNlUmVmKCksX1JlYWN0JHVzZVN0YXRlMT1yZWFjdC51c2VTdGF0ZShudWxsKSxzeW5jU3RhdGU9KF9SZWFjdCR1c2VTdGF0ZTIxPSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlMSwyKSlbMF0sc2V0U3luY1N0YXRlPV9SZWFjdCR1c2VTdGF0ZTIxWzFdLCgwLHVzZUxheW91dEVmZmVjdC5aKShmdW5jdGlvbigpe2lmKHN5bmNTdGF0ZSYmc3luY1N0YXRlLnRpbWVzPDEwKXtpZighY29tcG9uZW50UmVmLmN1cnJlbnQpe3NldFN5bmNTdGF0ZShmdW5jdGlvbihvcmkpe3JldHVybigwLG9iamVjdFNwcmVhZDIuWikoe30sb3JpKX0pO3JldHVybn1jb2xsZWN0SGVpZ2h0KCEwKTt2YXIgdGFyZ2V0QWxpZ249c3luY1N0YXRlLnRhcmdldEFsaWduLG9yaWdpbkFsaWduPXN5bmNTdGF0ZS5vcmlnaW5BbGlnbixpbmRleD1zeW5jU3RhdGUuaW5kZXgsb2Zmc2V0PXN5bmNTdGF0ZS5vZmZzZXQsaGVpZ2h0PWNvbXBvbmVudFJlZi5jdXJyZW50LmNsaWVudEhlaWdodCxuZWVkQ29sbGVjdEhlaWdodD0hMSxuZXdUYXJnZXRBbGlnbj10YXJnZXRBbGlnbix0YXJnZXRUb3A9bnVsbDtpZihoZWlnaHQpe2Zvcih2YXIgbWVyZ2VkQWxpZ249dGFyZ2V0QWxpZ258fG9yaWdpbkFsaWduLHN0YWNrVG9wPTAsaXRlbVRvcD0wLGl0ZW1Cb3R0b209MCxtYXhMZW49TWF0aC5taW4obWVyZ2VkRGF0YS5sZW5ndGgtMSxpbmRleCksaT0wO2k8PW1heExlbjtpKz0xKXt2YXIga2V5PWdldEtleShtZXJnZWREYXRhW2ldKTtpdGVtVG9wPXN0YWNrVG9wO3ZhciBjYWNoZUhlaWdodD1oZWlnaHRzLmdldChrZXkpO3N0YWNrVG9wPWl0ZW1Cb3R0b209aXRlbVRvcCsodm9pZCAwPT09Y2FjaGVIZWlnaHQ/aXRlbUhlaWdodDpjYWNoZUhlaWdodCl9Zm9yKHZhciBsZWZ0SGVpZ2h0PSJ0b3AiPT09bWVyZ2VkQWxpZ24/b2Zmc2V0OmhlaWdodC1vZmZzZXQsX2k9bWF4TGVuO19pPj0wO19pLT0xKXt2YXIgX2tleT1nZXRLZXkobWVyZ2VkRGF0YVtfaV0pLF9jYWNoZUhlaWdodD1oZWlnaHRzLmdldChfa2V5KTtpZih2b2lkIDA9PT1fY2FjaGVIZWlnaHQpe25lZWRDb2xsZWN0SGVpZ2h0PSEwO2JyZWFrfWlmKChsZWZ0SGVpZ2h0LT1fY2FjaGVIZWlnaHQpPD0wKWJyZWFrfXN3aXRjaChtZXJnZWRBbGlnbil7Y2FzZSJ0b3AiOnRhcmdldFRvcD1pdGVtVG9wLW9mZnNldDticmVhaztjYXNlImJvdHRvbSI6dGFyZ2V0VG9wPWl0ZW1Cb3R0b20taGVpZ2h0K29mZnNldDticmVhaztkZWZhdWx0OnZhciBzY3JvbGxUb3A9Y29tcG9uZW50UmVmLmN1cnJlbnQuc2Nyb2xsVG9wO2l0ZW1Ub3A8c2Nyb2xsVG9wP25ld1RhcmdldEFsaWduPSJ0b3AiOml0ZW1Cb3R0b20+c2Nyb2xsVG9wK2hlaWdodCYmKG5ld1RhcmdldEFsaWduPSJib3R0b20iKX1udWxsIT09dGFyZ2V0VG9wJiZzeW5jU2Nyb2xsVG9wKHRhcmdldFRvcCksdGFyZ2V0VG9wIT09c3luY1N0YXRlLmxhc3RUb3AmJihuZWVkQ29sbGVjdEhlaWdodD0hMCl9bmVlZENvbGxlY3RIZWlnaHQmJnNldFN5bmNTdGF0ZSgoMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe30sc3luY1N0YXRlKSx7fSx7dGltZXM6c3luY1N0YXRlLnRpbWVzKzEsdGFyZ2V0QWxpZ246bmV3VGFyZ2V0QWxpZ24sbGFzdFRvcDp0YXJnZXRUb3B9KSl9fSxbc3luY1N0YXRlLGNvbXBvbmVudFJlZi5jdXJyZW50XSksZnVuY3Rpb24oYXJnKXtpZihudWxsPT1hcmcpe2RlbGF5SGlkZVNjcm9sbEJhcigpO3JldHVybn1pZihyYWYuWi5jYW5jZWwoc2Nyb2xsUmVmLmN1cnJlbnQpLCJudW1iZXIiPT10eXBlb2YgYXJnKXN5bmNTY3JvbGxUb3AoYXJnKTtlbHNlIGlmKGFyZyYmIm9iamVjdCI9PT0oMCxlc21fdHlwZW9mLlopKGFyZykpe3ZhciBpbmRleCxhbGlnbj1hcmcuYWxpZ247aW5kZXg9ImluZGV4ImluIGFyZz9hcmcuaW5kZXg6bWVyZ2VkRGF0YS5maW5kSW5kZXgoZnVuY3Rpb24oaXRlbSl7cmV0dXJuIGdldEtleShpdGVtKT09PWFyZy5rZXl9KTt2YXIgX2FyZyRvZmZzZXQ9YXJnLm9mZnNldDtzZXRTeW5jU3RhdGUoe3RpbWVzOjAsaW5kZXg6aW5kZXgsb2Zmc2V0OnZvaWQgMD09PV9hcmckb2Zmc2V0PzA6X2FyZyRvZmZzZXQsb3JpZ2luQWxpZ246YWxpZ259KX19KTtyZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKHJlZixmdW5jdGlvbigpe3JldHVybntnZXRTY3JvbGxJbmZvOmdldFZpcnR1YWxTY3JvbGxJbmZvLHNjcm9sbFRvOmZ1bmN0aW9uKGNvbmZpZyl7Y29uZmlnJiYib2JqZWN0Ij09PSgwLGVzbV90eXBlb2YuWikoY29uZmlnKSYmKCJsZWZ0ImluIGNvbmZpZ3x8InRvcCJpbiBjb25maWcpPyh2b2lkIDAhPT1jb25maWcubGVmdCYmc2V0T2Zmc2V0TGVmdChrZWVwSW5Ib3Jpem9udGFsUmFuZ2UoY29uZmlnLmxlZnQpKSxfc2Nyb2xsVG8oY29uZmlnLnRvcCkpOl9zY3JvbGxUbyhjb25maWcpfX19KSwoMCx1c2VMYXlvdXRFZmZlY3QuWikoZnVuY3Rpb24oKXtvblZpc2libGVDaGFuZ2UmJm9uVmlzaWJsZUNoYW5nZShtZXJnZWREYXRhLnNsaWNlKHN0YXJ0LGVuZCsxKSxtZXJnZWREYXRhKX0sW3N0YXJ0LGVuZCxtZXJnZWREYXRhXSk7dmFyIGdldFNpemU9KF9SZWFjdCR1c2VNZW1vPXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm5bbmV3IE1hcCxbXV19LFttZXJnZWREYXRhLGhlaWdodHMuaWQsaXRlbUhlaWdodF0pLGtleTJJbmRleD0oX1JlYWN0JHVzZU1lbW8yPSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZU1lbW8sMikpWzBdLGJvdHRvbUxpc3Q9X1JlYWN0JHVzZU1lbW8yWzFdLGZ1bmN0aW9uKHN0YXJ0S2V5KXt2YXIgZW5kS2V5PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpzdGFydEtleSxzdGFydEluZGV4PWtleTJJbmRleC5nZXQoc3RhcnRLZXkpLGVuZEluZGV4PWtleTJJbmRleC5nZXQoZW5kS2V5KTtpZih2b2lkIDA9PT1zdGFydEluZGV4fHx2b2lkIDA9PT1lbmRJbmRleClmb3IodmFyIGRhdGFMZW49bWVyZ2VkRGF0YS5sZW5ndGgsaT1ib3R0b21MaXN0Lmxlbmd0aDtpPGRhdGFMZW47aSs9MSl7dmFyIF9oZWlnaHRzJGdldCxrZXk9Z2V0S2V5KG1lcmdlZERhdGFbaV0pO2tleTJJbmRleC5zZXQoa2V5LGkpO3ZhciBjYWNoZUhlaWdodD1udWxsIT09KF9oZWlnaHRzJGdldD1oZWlnaHRzLmdldChrZXkpKSYmdm9pZCAwIT09X2hlaWdodHMkZ2V0P19oZWlnaHRzJGdldDppdGVtSGVpZ2h0O2lmKGJvdHRvbUxpc3RbaV09KGJvdHRvbUxpc3RbaS0xXXx8MCkrY2FjaGVIZWlnaHQsa2V5PT09c3RhcnRLZXkmJihzdGFydEluZGV4PWkpLGtleT09PWVuZEtleSYmKGVuZEluZGV4PWkpLHZvaWQgMCE9PXN0YXJ0SW5kZXgmJnZvaWQgMCE9PWVuZEluZGV4KWJyZWFrfXJldHVybnt0b3A6Ym90dG9tTGlzdFtzdGFydEluZGV4LTFdfHwwLGJvdHRvbTpib3R0b21MaXN0W2VuZEluZGV4XX19KSxleHRyYUNvbnRlbnQ9bnVsbD09ZXh0cmFSZW5kZXI/dm9pZCAwOmV4dHJhUmVuZGVyKHtzdGFydDpzdGFydCxlbmQ6ZW5kLHZpcnR1YWw6aW5WaXJ0dWFsLG9mZnNldFg6b2Zmc2V0TGVmdCxvZmZzZXRZOmZpbGxlck9mZnNldCxydGw6aXNSVEwsZ2V0U2l6ZTpnZXRTaXplfSksbGlzdENoaWxkcmVuPW1lcmdlZERhdGEuc2xpY2Uoc3RhcnQsZW5kKzEpLm1hcChmdW5jdGlvbihpdGVtLGluZGV4KXt2YXIgbm9kZT1jaGlsZHJlbihpdGVtLHN0YXJ0K2luZGV4LHtzdHlsZTp7d2lkdGg6c2Nyb2xsV2lkdGh9fSksa2V5PWdldEtleShpdGVtKTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChJdGVtLHtrZXk6a2V5LHNldFJlZjpmdW5jdGlvbihlbGUpe3JldHVybiBzZXRJbnN0YW5jZVJlZihpdGVtLGVsZSl9fSxub2RlKX0pLGNvbXBvbmVudFN0eWxlPW51bGw7aGVpZ2h0JiYoY29tcG9uZW50U3R5bGU9KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxkZWZpbmVQcm9wZXJ0eS5aKSh7fSx2b2lkIDA9PT1fcHJvcHMkZnVsbEhlaWdodHx8X3Byb3BzJGZ1bGxIZWlnaHQ/ImhlaWdodCI6Im1heEhlaWdodCIsaGVpZ2h0KSxTY3JvbGxTdHlsZSksdXNlVmlydHVhbCYmKGNvbXBvbmVudFN0eWxlLm92ZXJmbG93WT0iaGlkZGVuIixzY3JvbGxXaWR0aCYmKGNvbXBvbmVudFN0eWxlLm92ZXJmbG93WD0iaGlkZGVuIiksc2Nyb2xsTW92aW5nJiYoY29tcG9uZW50U3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIpKSk7dmFyIGNvbnRhaW5lclByb3BzPXt9O3JldHVybiBpc1JUTCYmKGNvbnRhaW5lclByb3BzLmRpcj0icnRsIikscmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2IiwoMCxlc21fZXh0ZW5kcy5aKSh7c3R5bGU6KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LHN0eWxlKSx7fSx7cG9zaXRpb246InJlbGF0aXZlIn0pLGNsYXNzTmFtZTptZXJnZWRDbGFzc05hbWV9LGNvbnRhaW5lclByb3BzLHJlc3RQcm9wcykscmVhY3QuY3JlYXRlRWxlbWVudChyY19yZXNpemVfb2JzZXJ2ZXJfZXMuWix7b25SZXNpemU6ZnVuY3Rpb24oc2l6ZUluZm8pe3NldFNpemUoe3dpZHRoOnNpemVJbmZvLndpZHRofHxzaXplSW5mby5vZmZzZXRXaWR0aCxoZWlnaHQ6c2l6ZUluZm8uaGVpZ2h0fHxzaXplSW5mby5vZmZzZXRIZWlnaHR9KX19LHJlYWN0LmNyZWF0ZUVsZW1lbnQodm9pZCAwPT09X3Byb3BzJGNvbXBvbmVudD8iZGl2IjpfcHJvcHMkY29tcG9uZW50LHtjbGFzc05hbWU6IiIuY29uY2F0KHByZWZpeENscywiLWhvbGRlciIpLHN0eWxlOmNvbXBvbmVudFN0eWxlLHJlZjpjb21wb25lbnRSZWYsb25TY3JvbGw6ZnVuY3Rpb24oZSl7dmFyIG5ld1Njcm9sbFRvcD1lLmN1cnJlbnRUYXJnZXQuc2Nyb2xsVG9wO25ld1Njcm9sbFRvcCE9PW9mZnNldFRvcCYmc3luY1Njcm9sbFRvcChuZXdTY3JvbGxUb3ApLG51bGw9PW9uU2Nyb2xsfHxvblNjcm9sbChlKSx0cmlnZ2VyU2Nyb2xsKCl9LG9uTW91c2VFbnRlcjpkZWxheUhpZGVTY3JvbGxCYXJ9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoRmlsbGVyLHtwcmVmaXhDbHM6cHJlZml4Q2xzLGhlaWdodDpzY3JvbGxIZWlnaHQsb2Zmc2V0WDpvZmZzZXRMZWZ0LG9mZnNldFk6ZmlsbGVyT2Zmc2V0LHNjcm9sbFdpZHRoOnNjcm9sbFdpZHRoLG9uSW5uZXJSZXNpemU6Y29sbGVjdEhlaWdodCxyZWY6ZmlsbGVySW5uZXJSZWYsaW5uZXJQcm9wczppbm5lclByb3BzLHJ0bDppc1JUTCxleHRyYTpleHRyYUNvbnRlbnR9LGxpc3RDaGlsZHJlbikpKSxpblZpcnR1YWwmJnNjcm9sbEhlaWdodD5oZWlnaHQmJnJlYWN0LmNyZWF0ZUVsZW1lbnQoU2Nyb2xsQmFyLHtyZWY6dmVydGljYWxTY3JvbGxCYXJSZWYscHJlZml4Q2xzOnByZWZpeENscyxzY3JvbGxPZmZzZXQ6b2Zmc2V0VG9wLHNjcm9sbFJhbmdlOnNjcm9sbEhlaWdodCxydGw6aXNSVEwsb25TY3JvbGw6b25TY3JvbGxCYXIsb25TdGFydE1vdmU6b25TY3JvbGxiYXJTdGFydE1vdmUsb25TdG9wTW92ZTpvblNjcm9sbGJhclN0b3BNb3ZlLHNwaW5TaXplOnZlcnRpY2FsU2Nyb2xsQmFyU3BpblNpemUsY29udGFpbmVyU2l6ZTpzaXplLmhlaWdodCxzdHlsZTpudWxsPT1zdHlsZXM/dm9pZCAwOnN0eWxlcy52ZXJ0aWNhbFNjcm9sbEJhcix0aHVtYlN0eWxlOm51bGw9PXN0eWxlcz92b2lkIDA6c3R5bGVzLnZlcnRpY2FsU2Nyb2xsQmFyVGh1bWJ9KSxpblZpcnR1YWwmJnNjcm9sbFdpZHRoJiZyZWFjdC5jcmVhdGVFbGVtZW50KFNjcm9sbEJhcix7cmVmOmhvcml6b250YWxTY3JvbGxCYXJSZWYscHJlZml4Q2xzOnByZWZpeENscyxzY3JvbGxPZmZzZXQ6b2Zmc2V0TGVmdCxzY3JvbGxSYW5nZTpzY3JvbGxXaWR0aCxydGw6aXNSVEwsb25TY3JvbGw6b25TY3JvbGxCYXIsb25TdGFydE1vdmU6b25TY3JvbGxiYXJTdGFydE1vdmUsb25TdG9wTW92ZTpvblNjcm9sbGJhclN0b3BNb3ZlLHNwaW5TaXplOmhvcml6b250YWxTY3JvbGxCYXJTcGluU2l6ZSxjb250YWluZXJTaXplOnNpemUud2lkdGgsaG9yaXpvbnRhbDohMCxzdHlsZTpudWxsPT1zdHlsZXM/dm9pZCAwOnN0eWxlcy5ob3Jpem9udGFsU2Nyb2xsQmFyLHRodW1iU3R5bGU6bnVsbD09c3R5bGVzP3ZvaWQgMDpzdHlsZXMuaG9yaXpvbnRhbFNjcm9sbEJhclRodW1ifSkpfSk7TGlzdC5kaXNwbGF5TmFtZT0iTGlzdCI7dmFyIE9wdGlvbkxpc3RfZXhjbHVkZWQ9WyJkaXNhYmxlZCIsInRpdGxlIiwiY2hpbGRyZW4iLCJzdHlsZSIsImNsYXNzTmFtZSJdO2Z1bmN0aW9uIE9wdGlvbkxpc3RfaXNUaXRsZVR5cGUoY29udGVudCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBjb250ZW50fHwibnVtYmVyIj09dHlwZW9mIGNvbnRlbnR9dmFyIFJlZk9wdGlvbkxpc3Q9cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihfLHJlZil7dmFyIF91c2VCYXNlUHJvcHM9cmVhY3QudXNlQ29udGV4dChCYXNlU2VsZWN0Q29udGV4dCkscHJlZml4Q2xzPV91c2VCYXNlUHJvcHMucHJlZml4Q2xzLGlkPV91c2VCYXNlUHJvcHMuaWQsb3Blbj1fdXNlQmFzZVByb3BzLm9wZW4sbXVsdGlwbGU9X3VzZUJhc2VQcm9wcy5tdWx0aXBsZSxtb2RlPV91c2VCYXNlUHJvcHMubW9kZSxzZWFyY2hWYWx1ZT1fdXNlQmFzZVByb3BzLnNlYXJjaFZhbHVlLHRvZ2dsZU9wZW49X3VzZUJhc2VQcm9wcy50b2dnbGVPcGVuLG5vdEZvdW5kQ29udGVudD1fdXNlQmFzZVByb3BzLm5vdEZvdW5kQ29udGVudCxvblBvcHVwU2Nyb2xsPV91c2VCYXNlUHJvcHMub25Qb3B1cFNjcm9sbCxfUmVhY3QkdXNlQ29udGV4dD1yZWFjdC51c2VDb250ZXh0KFNlbGVjdENvbnRleHQpLG1heENvdW50PV9SZWFjdCR1c2VDb250ZXh0Lm1heENvdW50LGZsYXR0ZW5PcHRpb25zPV9SZWFjdCR1c2VDb250ZXh0LmZsYXR0ZW5PcHRpb25zLG9uQWN0aXZlVmFsdWU9X1JlYWN0JHVzZUNvbnRleHQub25BY3RpdmVWYWx1ZSxkZWZhdWx0QWN0aXZlRmlyc3RPcHRpb249X1JlYWN0JHVzZUNvbnRleHQuZGVmYXVsdEFjdGl2ZUZpcnN0T3B0aW9uLG9uU2VsZWN0PV9SZWFjdCR1c2VDb250ZXh0Lm9uU2VsZWN0LG1lbnVJdGVtU2VsZWN0ZWRJY29uPV9SZWFjdCR1c2VDb250ZXh0Lm1lbnVJdGVtU2VsZWN0ZWRJY29uLHJhd1ZhbHVlcz1fUmVhY3QkdXNlQ29udGV4dC5yYXdWYWx1ZXMsZmllbGROYW1lcz1fUmVhY3QkdXNlQ29udGV4dC5maWVsZE5hbWVzLHZpcnR1YWw9X1JlYWN0JHVzZUNvbnRleHQudmlydHVhbCxkaXJlY3Rpb249X1JlYWN0JHVzZUNvbnRleHQuZGlyZWN0aW9uLGxpc3RIZWlnaHQ9X1JlYWN0JHVzZUNvbnRleHQubGlzdEhlaWdodCxsaXN0SXRlbUhlaWdodD1fUmVhY3QkdXNlQ29udGV4dC5saXN0SXRlbUhlaWdodCxvcHRpb25SZW5kZXI9X1JlYWN0JHVzZUNvbnRleHQub3B0aW9uUmVuZGVyLGl0ZW1QcmVmaXhDbHM9IiIuY29uY2F0KHByZWZpeENscywiLWl0ZW0iKSxtZW1vRmxhdHRlbk9wdGlvbnM9KDAsdXNlTWVtby5aKShmdW5jdGlvbigpe3JldHVybiBmbGF0dGVuT3B0aW9uc30sW29wZW4sZmxhdHRlbk9wdGlvbnNdLGZ1bmN0aW9uKHByZXYsbmV4dCl7cmV0dXJuIG5leHRbMF0mJnByZXZbMV0hPT1uZXh0WzFdfSksbGlzdFJlZj1yZWFjdC51c2VSZWYobnVsbCksb3Zlck1heENvdW50PXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4gbXVsdGlwbGUmJmlzVmFsaWRDb3VudChtYXhDb3VudCkmJihudWxsPT1yYXdWYWx1ZXM/dm9pZCAwOnJhd1ZhbHVlcy5zaXplKT49bWF4Q291bnR9LFttdWx0aXBsZSxtYXhDb3VudCxudWxsPT1yYXdWYWx1ZXM/dm9pZCAwOnJhd1ZhbHVlcy5zaXplXSksb25MaXN0TW91c2VEb3duPWZ1bmN0aW9uKGV2ZW50KXtldmVudC5wcmV2ZW50RGVmYXVsdCgpfSxzY3JvbGxJbnRvVmlldz1mdW5jdGlvbihhcmdzKXt2YXIgX2xpc3RSZWYkY3VycmVudDtudWxsPT09KF9saXN0UmVmJGN1cnJlbnQ9bGlzdFJlZi5jdXJyZW50KXx8dm9pZCAwPT09X2xpc3RSZWYkY3VycmVudHx8X2xpc3RSZWYkY3VycmVudC5zY3JvbGxUbygibnVtYmVyIj09dHlwZW9mIGFyZ3M/e2luZGV4OmFyZ3N9OmFyZ3MpfSxpc1NlbGVjdGVkPXJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4iY29tYm9ib3giIT09bW9kZSYmcmF3VmFsdWVzLmhhcyh2YWx1ZSl9LFttb2RlLCgwLHRvQ29uc3VtYWJsZUFycmF5LlopKHJhd1ZhbHVlcykudG9TdHJpbmcoKSxyYXdWYWx1ZXMuc2l6ZV0pLGdldEVuYWJsZWRBY3RpdmVJbmRleD1mdW5jdGlvbihpbmRleCl7Zm9yKHZhciBvZmZzZXQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjEsbGVuPW1lbW9GbGF0dGVuT3B0aW9ucy5sZW5ndGgsaT0wO2k8bGVuO2krPTEpe3ZhciBjdXJyZW50PShpbmRleCtpKm9mZnNldCtsZW4pJWxlbixfcmVmPW1lbW9GbGF0dGVuT3B0aW9uc1tjdXJyZW50XXx8e30sZ3JvdXA9X3JlZi5ncm91cCxkYXRhPV9yZWYuZGF0YTtpZighZ3JvdXAmJiEobnVsbCE9ZGF0YSYmZGF0YS5kaXNhYmxlZCkmJihpc1NlbGVjdGVkKGRhdGEudmFsdWUpfHwhb3Zlck1heENvdW50KSlyZXR1cm4gY3VycmVudH1yZXR1cm4gLTF9LF9SZWFjdCR1c2VTdGF0ZT1yZWFjdC51c2VTdGF0ZShmdW5jdGlvbigpe3JldHVybiBnZXRFbmFibGVkQWN0aXZlSW5kZXgoMCl9KSxfUmVhY3QkdXNlU3RhdGUyPSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlLDIpLGFjdGl2ZUluZGV4PV9SZWFjdCR1c2VTdGF0ZTJbMF0sc2V0QWN0aXZlSW5kZXg9X1JlYWN0JHVzZVN0YXRlMlsxXSxzZXRBY3RpdmU9ZnVuY3Rpb24oaW5kZXgpe3ZhciBmcm9tS2V5Ym9hcmQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtzZXRBY3RpdmVJbmRleChpbmRleCk7dmFyIGluZm89e3NvdXJjZTpmcm9tS2V5Ym9hcmQ/ImtleWJvYXJkIjoibW91c2UifSxmbGF0dGVuSXRlbT1tZW1vRmxhdHRlbk9wdGlvbnNbaW5kZXhdO2lmKCFmbGF0dGVuSXRlbSl7b25BY3RpdmVWYWx1ZShudWxsLC0xLGluZm8pO3JldHVybn1vbkFjdGl2ZVZhbHVlKGZsYXR0ZW5JdGVtLnZhbHVlLGluZGV4LGluZm8pfTsoMCxyZWFjdC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7c2V0QWN0aXZlKCExIT09ZGVmYXVsdEFjdGl2ZUZpcnN0T3B0aW9uP2dldEVuYWJsZWRBY3RpdmVJbmRleCgwKTotMSl9LFttZW1vRmxhdHRlbk9wdGlvbnMubGVuZ3RoLHNlYXJjaFZhbHVlXSk7dmFyIGlzQXJpYVNlbGVjdGVkPXJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4iY29tYm9ib3giPT09bW9kZT9TdHJpbmcodmFsdWUpLnRvTG93ZXJDYXNlKCk9PT1zZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpOnJhd1ZhbHVlcy5oYXModmFsdWUpfSxbbW9kZSxzZWFyY2hWYWx1ZSwoMCx0b0NvbnN1bWFibGVBcnJheS5aKShyYXdWYWx1ZXMpLnRvU3RyaW5nKCkscmF3VmFsdWVzLnNpemVdKTsoMCxyZWFjdC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIF9saXN0UmVmJGN1cnJlbnQyLHRpbWVvdXRJZD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYoIW11bHRpcGxlJiZvcGVuJiYxPT09cmF3VmFsdWVzLnNpemUpe3ZhciB2YWx1ZT1BcnJheS5mcm9tKHJhd1ZhbHVlcylbMF0saW5kZXg9bWVtb0ZsYXR0ZW5PcHRpb25zLmZpbmRJbmRleChmdW5jdGlvbihfcmVmMil7dmFyIGRhdGE9X3JlZjIuZGF0YTtyZXR1cm4gc2VhcmNoVmFsdWU/U3RyaW5nKGRhdGEudmFsdWUpLnN0YXJ0c1dpdGgoc2VhcmNoVmFsdWUpOmRhdGEudmFsdWU9PT12YWx1ZX0pOy0xIT09aW5kZXgmJihzZXRBY3RpdmUoaW5kZXgpLHNjcm9sbEludG9WaWV3KGluZGV4KSl9fSk7cmV0dXJuIG9wZW4mJihudWxsPT09KF9saXN0UmVmJGN1cnJlbnQyPWxpc3RSZWYuY3VycmVudCl8fHZvaWQgMD09PV9saXN0UmVmJGN1cnJlbnQyfHxfbGlzdFJlZiRjdXJyZW50Mi5zY3JvbGxUbyh2b2lkIDApKSxmdW5jdGlvbigpe3JldHVybiBjbGVhclRpbWVvdXQodGltZW91dElkKX19LFtvcGVuLHNlYXJjaFZhbHVlXSk7dmFyIG9uU2VsZWN0VmFsdWU9ZnVuY3Rpb24odmFsdWUpe3ZvaWQgMCE9PXZhbHVlJiZvblNlbGVjdCh2YWx1ZSx7c2VsZWN0ZWQ6IXJhd1ZhbHVlcy5oYXModmFsdWUpfSksbXVsdGlwbGV8fHRvZ2dsZU9wZW4oITEpfTtpZihyZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKHJlZixmdW5jdGlvbigpe3JldHVybntvbktleURvd246ZnVuY3Rpb24oZXZlbnQpe3ZhciB3aGljaD1ldmVudC53aGljaCxjdHJsS2V5PWV2ZW50LmN0cmxLZXk7c3dpdGNoKHdoaWNoKXtjYXNlIEtleUNvZGUuWi5OOmNhc2UgS2V5Q29kZS5aLlA6Y2FzZSBLZXlDb2RlLlouVVA6Y2FzZSBLZXlDb2RlLlouRE9XTjp2YXIgb2Zmc2V0PTA7aWYod2hpY2g9PT1LZXlDb2RlLlouVVA/b2Zmc2V0PS0xOndoaWNoPT09S2V5Q29kZS5aLkRPV04/b2Zmc2V0PTE6LyhtYWNcc29zfG1hY2ludG9zaCkvaS50ZXN0KG5hdmlnYXRvci5hcHBWZXJzaW9uKSYmY3RybEtleSYmKHdoaWNoPT09S2V5Q29kZS5aLk4/b2Zmc2V0PTE6d2hpY2g9PT1LZXlDb2RlLlouUCYmKG9mZnNldD0tMSkpLDAhPT1vZmZzZXQpe3ZhciBuZXh0QWN0aXZlSW5kZXg9Z2V0RW5hYmxlZEFjdGl2ZUluZGV4KGFjdGl2ZUluZGV4K29mZnNldCxvZmZzZXQpO3Njcm9sbEludG9WaWV3KG5leHRBY3RpdmVJbmRleCksc2V0QWN0aXZlKG5leHRBY3RpdmVJbmRleCwhMCl9YnJlYWs7Y2FzZSBLZXlDb2RlLlouVEFCOmNhc2UgS2V5Q29kZS5aLkVOVEVSOnZhciBfaXRlbSRkYXRhLGl0ZW09bWVtb0ZsYXR0ZW5PcHRpb25zW2FjdGl2ZUluZGV4XTshaXRlbXx8bnVsbCE9aXRlbSYmbnVsbCE9PShfaXRlbSRkYXRhPWl0ZW0uZGF0YSkmJnZvaWQgMCE9PV9pdGVtJGRhdGEmJl9pdGVtJGRhdGEuZGlzYWJsZWR8fG92ZXJNYXhDb3VudD9vblNlbGVjdFZhbHVlKHZvaWQgMCk6b25TZWxlY3RWYWx1ZShpdGVtLnZhbHVlKSxvcGVuJiZldmVudC5wcmV2ZW50RGVmYXVsdCgpO2JyZWFrO2Nhc2UgS2V5Q29kZS5aLkVTQzp0b2dnbGVPcGVuKCExKSxvcGVuJiZldmVudC5zdG9wUHJvcGFnYXRpb24oKX19LG9uS2V5VXA6ZnVuY3Rpb24oKXt9LHNjcm9sbFRvOmZ1bmN0aW9uKGluZGV4KXtzY3JvbGxJbnRvVmlldyhpbmRleCl9fX0pLDA9PT1tZW1vRmxhdHRlbk9wdGlvbnMubGVuZ3RoKXJldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtyb2xlOiJsaXN0Ym94IixpZDoiIi5jb25jYXQoaWQsIl9saXN0IiksY2xhc3NOYW1lOiIiLmNvbmNhdChpdGVtUHJlZml4Q2xzLCItZW1wdHkiKSxvbk1vdXNlRG93bjpvbkxpc3RNb3VzZURvd259LG5vdEZvdW5kQ29udGVudCk7dmFyIG9taXRGaWVsZE5hbWVMaXN0PU9iamVjdC5rZXlzKGZpZWxkTmFtZXMpLm1hcChmdW5jdGlvbihrZXkpe3JldHVybiBmaWVsZE5hbWVzW2tleV19KSxnZXRMYWJlbD1mdW5jdGlvbihpdGVtKXtyZXR1cm4gaXRlbS5sYWJlbH07ZnVuY3Rpb24gZ2V0SXRlbUFyaWFQcm9wcyhpdGVtLGluZGV4KXtyZXR1cm57cm9sZTppdGVtLmdyb3VwPyJwcmVzZW50YXRpb24iOiJvcHRpb24iLGlkOiIiLmNvbmNhdChpZCwiX2xpc3RfIikuY29uY2F0KGluZGV4KX19dmFyIHJlbmRlckl0ZW09ZnVuY3Rpb24oaW5kZXgpe3ZhciBpdGVtPW1lbW9GbGF0dGVuT3B0aW9uc1tpbmRleF07aWYoIWl0ZW0pcmV0dXJuIG51bGw7dmFyIGl0ZW1EYXRhPWl0ZW0uZGF0YXx8e30sdmFsdWU9aXRlbURhdGEudmFsdWUsZ3JvdXA9aXRlbS5ncm91cCxhdHRycz0oMCxwaWNrQXR0cnMuWikoaXRlbURhdGEsITApLG1lcmdlZExhYmVsPWdldExhYmVsKGl0ZW0pO3JldHVybiBpdGVtP3JlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIsKDAsZXNtX2V4dGVuZHMuWikoeyJhcmlhLWxhYmVsIjoic3RyaW5nIiE9dHlwZW9mIG1lcmdlZExhYmVsfHxncm91cD9udWxsOm1lcmdlZExhYmVsfSxhdHRycyx7a2V5OmluZGV4fSxnZXRJdGVtQXJpYVByb3BzKGl0ZW0saW5kZXgpLHsiYXJpYS1zZWxlY3RlZCI6aXNBcmlhU2VsZWN0ZWQodmFsdWUpfSksdmFsdWUpOm51bGx9LGExMXlQcm9wcz17cm9sZToibGlzdGJveCIsaWQ6IiIuY29uY2F0KGlkLCJfbGlzdCIpfTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChyZWFjdC5GcmFnbWVudCxudWxsLHZpcnR1YWwmJnJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIsKDAsZXNtX2V4dGVuZHMuWikoe30sYTExeVByb3BzLHtzdHlsZTp7aGVpZ2h0OjAsd2lkdGg6MCxvdmVyZmxvdzoiaGlkZGVuIn19KSxyZW5kZXJJdGVtKGFjdGl2ZUluZGV4LTEpLHJlbmRlckl0ZW0oYWN0aXZlSW5kZXgpLHJlbmRlckl0ZW0oYWN0aXZlSW5kZXgrMSkpLHJlYWN0LmNyZWF0ZUVsZW1lbnQoTGlzdCx7aXRlbUtleToia2V5IixyZWY6bGlzdFJlZixkYXRhOm1lbW9GbGF0dGVuT3B0aW9ucyxoZWlnaHQ6bGlzdEhlaWdodCxpdGVtSGVpZ2h0Omxpc3RJdGVtSGVpZ2h0LGZ1bGxIZWlnaHQ6ITEsb25Nb3VzZURvd246b25MaXN0TW91c2VEb3duLG9uU2Nyb2xsOm9uUG9wdXBTY3JvbGwsdmlydHVhbDp2aXJ0dWFsLGRpcmVjdGlvbjpkaXJlY3Rpb24saW5uZXJQcm9wczp2aXJ0dWFsP251bGw6YTExeVByb3BzfSxmdW5jdGlvbihpdGVtLGl0ZW1JbmRleCl7dmFyIGdyb3VwPWl0ZW0uZ3JvdXAsZ3JvdXBPcHRpb249aXRlbS5ncm91cE9wdGlvbixkYXRhPWl0ZW0uZGF0YSxsYWJlbD1pdGVtLmxhYmVsLHZhbHVlPWl0ZW0udmFsdWUsa2V5PWRhdGEua2V5O2lmKGdyb3VwKXt2YXIgX2RhdGEkdGl0bGUsZ3JvdXBUaXRsZT1udWxsIT09KF9kYXRhJHRpdGxlPWRhdGEudGl0bGUpJiZ2b2lkIDAhPT1fZGF0YSR0aXRsZT9fZGF0YSR0aXRsZTpPcHRpb25MaXN0X2lzVGl0bGVUeXBlKGxhYmVsKT9sYWJlbC50b1N0cmluZygpOnZvaWQgMDtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOm5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKShpdGVtUHJlZml4Q2xzLCIiLmNvbmNhdChpdGVtUHJlZml4Q2xzLCItZ3JvdXAiKSxkYXRhLmNsYXNzTmFtZSksdGl0bGU6Z3JvdXBUaXRsZX0sdm9pZCAwIT09bGFiZWw/bGFiZWw6a2V5KX12YXIgZGlzYWJsZWQ9ZGF0YS5kaXNhYmxlZCx0aXRsZT1kYXRhLnRpdGxlLHN0eWxlPShkYXRhLmNoaWxkcmVuLGRhdGEuc3R5bGUpLGNsYXNzTmFtZT1kYXRhLmNsYXNzTmFtZSxvdGhlclByb3BzPSgwLG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLlopKGRhdGEsT3B0aW9uTGlzdF9leGNsdWRlZCkscGFzc2VkUHJvcHM9KDAsb21pdC5aKShvdGhlclByb3BzLG9taXRGaWVsZE5hbWVMaXN0KSxzZWxlY3RlZD1pc1NlbGVjdGVkKHZhbHVlKSxtZXJnZWREaXNhYmxlZD1kaXNhYmxlZHx8IXNlbGVjdGVkJiZvdmVyTWF4Q291bnQsb3B0aW9uUHJlZml4Q2xzPSIiLmNvbmNhdChpdGVtUHJlZml4Q2xzLCItb3B0aW9uIiksb3B0aW9uQ2xhc3NOYW1lPW5vZGVfbW9kdWxlc19jbGFzc25hbWVzX2RlZmF1bHQoKShpdGVtUHJlZml4Q2xzLG9wdGlvblByZWZpeENscyxjbGFzc05hbWUsKDAsZGVmaW5lUHJvcGVydHkuWikoKDAsZGVmaW5lUHJvcGVydHkuWikoKDAsZGVmaW5lUHJvcGVydHkuWikoKDAsZGVmaW5lUHJvcGVydHkuWikoe30sIiIuY29uY2F0KG9wdGlvblByZWZpeENscywiLWdyb3VwZWQiKSxncm91cE9wdGlvbiksIiIuY29uY2F0KG9wdGlvblByZWZpeENscywiLWFjdGl2ZSIpLGFjdGl2ZUluZGV4PT09aXRlbUluZGV4JiYhbWVyZ2VkRGlzYWJsZWQpLCIiLmNvbmNhdChvcHRpb25QcmVmaXhDbHMsIi1kaXNhYmxlZCIpLG1lcmdlZERpc2FibGVkKSwiIi5jb25jYXQob3B0aW9uUHJlZml4Q2xzLCItc2VsZWN0ZWQiKSxzZWxlY3RlZCkpLG1lcmdlZExhYmVsPWdldExhYmVsKGl0ZW0pLGNvbnRlbnQ9Im51bWJlciI9PXR5cGVvZiBtZXJnZWRMYWJlbD9tZXJnZWRMYWJlbDptZXJnZWRMYWJlbHx8dmFsdWUsb3B0aW9uVGl0bGU9T3B0aW9uTGlzdF9pc1RpdGxlVHlwZShjb250ZW50KT9jb250ZW50LnRvU3RyaW5nKCk6dm9pZCAwO3JldHVybiB2b2lkIDAhPT10aXRsZSYmKG9wdGlvblRpdGxlPXRpdGxlKSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLCgwLGVzbV9leHRlbmRzLlopKHt9LCgwLHBpY2tBdHRycy5aKShwYXNzZWRQcm9wcyksdmlydHVhbD97fTpnZXRJdGVtQXJpYVByb3BzKGl0ZW0saXRlbUluZGV4KSx7ImFyaWEtc2VsZWN0ZWQiOmlzQXJpYVNlbGVjdGVkKHZhbHVlKSxjbGFzc05hbWU6b3B0aW9uQ2xhc3NOYW1lLHRpdGxlOm9wdGlvblRpdGxlLG9uTW91c2VNb3ZlOmZ1bmN0aW9uKCl7YWN0aXZlSW5kZXg9PT1pdGVtSW5kZXh8fG1lcmdlZERpc2FibGVkfHxzZXRBY3RpdmUoaXRlbUluZGV4KX0sb25DbGljazpmdW5jdGlvbigpe21lcmdlZERpc2FibGVkfHxvblNlbGVjdFZhbHVlKHZhbHVlKX0sc3R5bGU6c3R5bGV9KSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6IiIuY29uY2F0KG9wdGlvblByZWZpeENscywiLWNvbnRlbnQiKX0sImZ1bmN0aW9uIj09dHlwZW9mIG9wdGlvblJlbmRlcj9vcHRpb25SZW5kZXIoaXRlbSx7aW5kZXg6aXRlbUluZGV4fSk6Y29udGVudCkscmVhY3QuaXNWYWxpZEVsZW1lbnQobWVudUl0ZW1TZWxlY3RlZEljb24pfHxzZWxlY3RlZCwoIW1lbnVJdGVtU2VsZWN0ZWRJY29ufHwiZnVuY3Rpb24iPT10eXBlb2YgbWVudUl0ZW1TZWxlY3RlZEljb258fHNlbGVjdGVkKSYmcmVhY3QuY3JlYXRlRWxlbWVudChlc19UcmFuc0J0bix7Y2xhc3NOYW1lOiIiLmNvbmNhdChpdGVtUHJlZml4Q2xzLCItb3B0aW9uLXN0YXRlIiksY3VzdG9taXplSWNvbjptZW51SXRlbVNlbGVjdGVkSWNvbixjdXN0b21pemVJY29uUHJvcHM6e3ZhbHVlOnZhbHVlLGRpc2FibGVkOm1lcmdlZERpc2FibGVkLGlzU2VsZWN0ZWQ6c2VsZWN0ZWR9fSxzZWxlY3RlZD8i4pyTIjpudWxsKSl9KSl9KSx1c2VDYWNoZT1mdW5jdGlvbihsYWJlbGVkVmFsdWVzLHZhbHVlT3B0aW9ucyl7dmFyIGNhY2hlUmVmPXJlYWN0LnVzZVJlZih7dmFsdWVzOm5ldyBNYXAsb3B0aW9uczpuZXcgTWFwfSk7cmV0dXJuW3JlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgX2NhY2hlUmVmJGN1cnJlbnQ9Y2FjaGVSZWYuY3VycmVudCxwcmV2VmFsdWVDYWNoZT1fY2FjaGVSZWYkY3VycmVudC52YWx1ZXMscHJldk9wdGlvbkNhY2hlPV9jYWNoZVJlZiRjdXJyZW50Lm9wdGlvbnMscGF0Y2hlZFZhbHVlcz1sYWJlbGVkVmFsdWVzLm1hcChmdW5jdGlvbihpdGVtKXtpZih2b2lkIDA9PT1pdGVtLmxhYmVsKXt2YXIgX3ByZXZWYWx1ZUNhY2hlJGdldDtyZXR1cm4oMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe30saXRlbSkse30se2xhYmVsOm51bGw9PT0oX3ByZXZWYWx1ZUNhY2hlJGdldD1wcmV2VmFsdWVDYWNoZS5nZXQoaXRlbS52YWx1ZSkpfHx2b2lkIDA9PT1fcHJldlZhbHVlQ2FjaGUkZ2V0P3ZvaWQgMDpfcHJldlZhbHVlQ2FjaGUkZ2V0LmxhYmVsfSl9cmV0dXJuIGl0ZW19KSx2YWx1ZUNhY2hlPW5ldyBNYXAsb3B0aW9uQ2FjaGU9bmV3IE1hcDtyZXR1cm4gcGF0Y2hlZFZhbHVlcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pe3ZhbHVlQ2FjaGUuc2V0KGl0ZW0udmFsdWUsaXRlbSksb3B0aW9uQ2FjaGUuc2V0KGl0ZW0udmFsdWUsdmFsdWVPcHRpb25zLmdldChpdGVtLnZhbHVlKXx8cHJldk9wdGlvbkNhY2hlLmdldChpdGVtLnZhbHVlKSl9KSxjYWNoZVJlZi5jdXJyZW50LnZhbHVlcz12YWx1ZUNhY2hlLGNhY2hlUmVmLmN1cnJlbnQub3B0aW9ucz1vcHRpb25DYWNoZSxwYXRjaGVkVmFsdWVzfSxbbGFiZWxlZFZhbHVlcyx2YWx1ZU9wdGlvbnNdKSxyZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbih2YWwpe3JldHVybiB2YWx1ZU9wdGlvbnMuZ2V0KHZhbCl8fGNhY2hlUmVmLmN1cnJlbnQub3B0aW9ucy5nZXQodmFsKX0sW3ZhbHVlT3B0aW9uc10pXX07ZnVuY3Rpb24gaW5jbHVkZXModGVzdCxzZWFyY2gpe3JldHVybiBjb21tb25VdGlsX3RvQXJyYXkodGVzdCkuam9pbigiIikudG9VcHBlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpfXZhciBjYW5Vc2VEb209X193ZWJwYWNrX3JlcXVpcmVfXyg5ODkyNCksdXVpZD0wLHVzZUlkX2lzQnJvd3NlckNsaWVudD0oMCxjYW5Vc2VEb20uWikoKSxDaGlsZHJlbl90b0FycmF5PV9fd2VicGFja19yZXF1aXJlX18oNTAzNDQpLGxlZ2FjeVV0aWxfZXhjbHVkZWQ9WyJjaGlsZHJlbiIsInZhbHVlIl0sX2V4Y2x1ZGVkMj1bImNoaWxkcmVuIl07ZnVuY3Rpb24gdXNlUmVmRnVuYyhjYWxsYmFjayl7dmFyIGZ1bmNSZWY9cmVhY3QudXNlUmVmKCk7cmV0dXJuIGZ1bmNSZWYuY3VycmVudD1jYWxsYmFjayxyZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbigpe3JldHVybiBmdW5jUmVmLmN1cnJlbnQuYXBwbHkoZnVuY1JlZixhcmd1bWVudHMpfSxbXSl9dmFyIFNlbGVjdF9leGNsdWRlZD1bImlkIiwibW9kZSIsInByZWZpeENscyIsImJhY2tmaWxsIiwiZmllbGROYW1lcyIsImlucHV0VmFsdWUiLCJzZWFyY2hWYWx1ZSIsIm9uU2VhcmNoIiwiYXV0b0NsZWFyU2VhcmNoVmFsdWUiLCJvblNlbGVjdCIsIm9uRGVzZWxlY3QiLCJkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGgiLCJmaWx0ZXJPcHRpb24iLCJmaWx0ZXJTb3J0Iiwib3B0aW9uRmlsdGVyUHJvcCIsIm9wdGlvbkxhYmVsUHJvcCIsIm9wdGlvbnMiLCJvcHRpb25SZW5kZXIiLCJjaGlsZHJlbiIsImRlZmF1bHRBY3RpdmVGaXJzdE9wdGlvbiIsIm1lbnVJdGVtU2VsZWN0ZWRJY29uIiwidmlydHVhbCIsImRpcmVjdGlvbiIsImxpc3RIZWlnaHQiLCJsaXN0SXRlbUhlaWdodCIsImxhYmVsUmVuZGVyIiwidmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJsYWJlbEluVmFsdWUiLCJvbkNoYW5nZSIsIm1heENvdW50Il0sT01JVF9ET01fUFJPUFM9WyJpbnB1dFZhbHVlIl0sVHlwZWRTZWxlY3Q9cmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbihwcm9wcyxyZWYpe3ZhciBfUmVhY3QkdXNlU3RhdGUsX1JlYWN0JHVzZVN0YXRlMixpbm5lcklkLHNldElubmVySWQsb3B0aW9ucyxpZD1wcm9wcy5pZCxtb2RlPXByb3BzLm1vZGUsX3Byb3BzJHByZWZpeENscz1wcm9wcy5wcmVmaXhDbHMsYmFja2ZpbGw9cHJvcHMuYmFja2ZpbGwsZmllbGROYW1lcz1wcm9wcy5maWVsZE5hbWVzLGlucHV0VmFsdWU9cHJvcHMuaW5wdXRWYWx1ZSxzZWFyY2hWYWx1ZT1wcm9wcy5zZWFyY2hWYWx1ZSxvblNlYXJjaD1wcm9wcy5vblNlYXJjaCxfcHJvcHMkYXV0b0NsZWFyU2VhcmM9cHJvcHMuYXV0b0NsZWFyU2VhcmNoVmFsdWUsYXV0b0NsZWFyU2VhcmNoVmFsdWU9dm9pZCAwPT09X3Byb3BzJGF1dG9DbGVhclNlYXJjfHxfcHJvcHMkYXV0b0NsZWFyU2VhcmMsb25TZWxlY3Q9cHJvcHMub25TZWxlY3Qsb25EZXNlbGVjdD1wcm9wcy5vbkRlc2VsZWN0LF9wcm9wcyRkcm9wZG93bk1hdGNoUz1wcm9wcy5kcm9wZG93bk1hdGNoU2VsZWN0V2lkdGgsZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoPXZvaWQgMD09PV9wcm9wcyRkcm9wZG93bk1hdGNoU3x8X3Byb3BzJGRyb3Bkb3duTWF0Y2hTLGZpbHRlck9wdGlvbj1wcm9wcy5maWx0ZXJPcHRpb24sZmlsdGVyU29ydD1wcm9wcy5maWx0ZXJTb3J0LG9wdGlvbkZpbHRlclByb3A9cHJvcHMub3B0aW9uRmlsdGVyUHJvcCxvcHRpb25MYWJlbFByb3A9cHJvcHMub3B0aW9uTGFiZWxQcm9wLG9wdGlvbnMxPXByb3BzLm9wdGlvbnMsb3B0aW9uUmVuZGVyPXByb3BzLm9wdGlvblJlbmRlcixjaGlsZHJlbj1wcm9wcy5jaGlsZHJlbixkZWZhdWx0QWN0aXZlRmlyc3RPcHRpb249cHJvcHMuZGVmYXVsdEFjdGl2ZUZpcnN0T3B0aW9uLG1lbnVJdGVtU2VsZWN0ZWRJY29uPXByb3BzLm1lbnVJdGVtU2VsZWN0ZWRJY29uLHZpcnR1YWw9cHJvcHMudmlydHVhbCxkaXJlY3Rpb249cHJvcHMuZGlyZWN0aW9uLF9wcm9wcyRsaXN0SGVpZ2h0PXByb3BzLmxpc3RIZWlnaHQsbGlzdEhlaWdodD12b2lkIDA9PT1fcHJvcHMkbGlzdEhlaWdodD8yMDA6X3Byb3BzJGxpc3RIZWlnaHQsX3Byb3BzJGxpc3RJdGVtSGVpZ2h0PXByb3BzLmxpc3RJdGVtSGVpZ2h0LGxpc3RJdGVtSGVpZ2h0PXZvaWQgMD09PV9wcm9wcyRsaXN0SXRlbUhlaWdodD8yMDpfcHJvcHMkbGlzdEl0ZW1IZWlnaHQsbGFiZWxSZW5kZXI9cHJvcHMubGFiZWxSZW5kZXIsdmFsdWU9cHJvcHMudmFsdWUsZGVmYXVsdFZhbHVlPXByb3BzLmRlZmF1bHRWYWx1ZSxsYWJlbEluVmFsdWU9cHJvcHMubGFiZWxJblZhbHVlLG9uQ2hhbmdlPXByb3BzLm9uQ2hhbmdlLG1heENvdW50PXByb3BzLm1heENvdW50LHJlc3RQcm9wcz0oMCxvYmplY3RXaXRob3V0UHJvcGVydGllcy5aKShwcm9wcyxTZWxlY3RfZXhjbHVkZWQpLG1lcmdlZElkPShfUmVhY3QkdXNlU3RhdGU9cmVhY3QudXNlU3RhdGUoKSxpbm5lcklkPShfUmVhY3QkdXNlU3RhdGUyPSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlLDIpKVswXSxzZXRJbm5lcklkPV9SZWFjdCR1c2VTdGF0ZTJbMV0scmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uKCl7dmFyIHJldElkO3NldElubmVySWQoInJjX3NlbGVjdF8iLmNvbmNhdCgodXNlSWRfaXNCcm93c2VyQ2xpZW50PyhyZXRJZD11dWlkLHV1aWQrPTEpOnJldElkPSJURVNUX09SX1NTUiIscmV0SWQpKSl9LFtdKSxpZHx8aW5uZXJJZCksbXVsdGlwbGU9QmFzZVNlbGVjdF9pc011bHRpcGxlKG1vZGUpLGNoaWxkcmVuQXNEYXRhPSEhKCFvcHRpb25zMSYmY2hpbGRyZW4pLG1lcmdlZEZpbHRlck9wdGlvbj1yZWFjdC51c2VNZW1vKGZ1bmN0aW9uKCl7cmV0dXJuKHZvaWQgMCE9PWZpbHRlck9wdGlvbnx8ImNvbWJvYm94IiE9PW1vZGUpJiZmaWx0ZXJPcHRpb259LFtmaWx0ZXJPcHRpb24sbW9kZV0pLG1lcmdlZEZpZWxkTmFtZXM9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBmaWxsRmllbGROYW1lcyhmaWVsZE5hbWVzLGNoaWxkcmVuQXNEYXRhKX0sW0pTT04uc3RyaW5naWZ5KGZpZWxkTmFtZXMpLGNoaWxkcmVuQXNEYXRhXSksX3VzZU1lcmdlZFN0YXRlPSgwLHVzZU1lcmdlZFN0YXRlLlopKCIiLHt2YWx1ZTp2b2lkIDAhPT1zZWFyY2hWYWx1ZT9zZWFyY2hWYWx1ZTppbnB1dFZhbHVlLHBvc3RTdGF0ZTpmdW5jdGlvbihzZWFyY2gpe3JldHVybiBzZWFyY2h8fCIifX0pLF91c2VNZXJnZWRTdGF0ZTI9KDAsc2xpY2VkVG9BcnJheS5aKShfdXNlTWVyZ2VkU3RhdGUsMiksbWVyZ2VkU2VhcmNoVmFsdWU9X3VzZU1lcmdlZFN0YXRlMlswXSxzZXRTZWFyY2hWYWx1ZT1fdXNlTWVyZ2VkU3RhdGUyWzFdLHBhcnNlZE9wdGlvbnM9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3ZhciBtZXJnZWRPcHRpb25zPW9wdGlvbnMxO29wdGlvbnMxfHwobWVyZ2VkT3B0aW9ucz1mdW5jdGlvbiBsZWdhY3lVdGlsX2NvbnZlcnRDaGlsZHJlblRvRGF0YShub2Rlcyl7dmFyIG9wdGlvbk9ubHk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtyZXR1cm4oMCxDaGlsZHJlbl90b0FycmF5LlopKG5vZGVzKS5tYXAoZnVuY3Rpb24obm9kZSxpbmRleCl7aWYoIXJlYWN0LmlzVmFsaWRFbGVtZW50KG5vZGUpfHwhbm9kZS50eXBlKXJldHVybiBudWxsO3ZhciBrZXksX3JlZiRwcm9wcyxjaGlsZHJlbix2YWx1ZSxyZXN0UHJvcHMsaXNTZWxlY3RPcHRHcm91cD1ub2RlLnR5cGUuaXNTZWxlY3RPcHRHcm91cCxrZXkxPW5vZGUua2V5LF9yZWYyJHByb3BzPW5vZGUucHJvcHMsY2hpbGRyZW4xPV9yZWYyJHByb3BzLmNoaWxkcmVuLHJlc3RQcm9wczE9KDAsb2JqZWN0V2l0aG91dFByb3BlcnRpZXMuWikoX3JlZjIkcHJvcHMsX2V4Y2x1ZGVkMik7cmV0dXJuIG9wdGlvbk9ubHl8fCFpc1NlbGVjdE9wdEdyb3VwPyhrZXk9bm9kZS5rZXksY2hpbGRyZW49KF9yZWYkcHJvcHM9bm9kZS5wcm9wcykuY2hpbGRyZW4sdmFsdWU9X3JlZiRwcm9wcy52YWx1ZSxyZXN0UHJvcHM9KDAsb2JqZWN0V2l0aG91dFByb3BlcnRpZXMuWikoX3JlZiRwcm9wcyxsZWdhY3lVdGlsX2V4Y2x1ZGVkKSwoMCxvYmplY3RTcHJlYWQyLlopKHtrZXk6a2V5LHZhbHVlOnZvaWQgMCE9PXZhbHVlP3ZhbHVlOmtleSxjaGlsZHJlbjpjaGlsZHJlbn0scmVzdFByb3BzKSk6KDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHtrZXk6Il9fUkNfU0VMRUNUX0dSUF9fIi5jb25jYXQobnVsbD09PWtleTE/aW5kZXg6a2V5MSwiX18iKSxsYWJlbDprZXkxfSxyZXN0UHJvcHMxKSx7fSx7b3B0aW9uczpsZWdhY3lVdGlsX2NvbnZlcnRDaGlsZHJlblRvRGF0YShjaGlsZHJlbjEpfSl9KS5maWx0ZXIoZnVuY3Rpb24oZGF0YSl7cmV0dXJuIGRhdGF9KX0oY2hpbGRyZW4pKTt2YXIgdmFsdWVPcHRpb25zPW5ldyBNYXAsbGFiZWxPcHRpb25zPW5ldyBNYXAsc2V0TGFiZWxPcHRpb25zPWZ1bmN0aW9uKGxhYmVsT3B0aW9uc01hcCxvcHRpb24sa2V5KXtrZXkmJiJzdHJpbmciPT10eXBlb2Yga2V5JiZsYWJlbE9wdGlvbnNNYXAuc2V0KG9wdGlvbltrZXldLG9wdGlvbil9O3JldHVybiBmdW5jdGlvbiBkaWcob3B0aW9uTGlzdCl7Zm9yKHZhciBpc0NoaWxkcmVuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0saT0wO2k8b3B0aW9uTGlzdC5sZW5ndGg7aSs9MSl7dmFyIG9wdGlvbj1vcHRpb25MaXN0W2ldOyFvcHRpb25bbWVyZ2VkRmllbGROYW1lcy5vcHRpb25zXXx8aXNDaGlsZHJlbj8odmFsdWVPcHRpb25zLnNldChvcHRpb25bbWVyZ2VkRmllbGROYW1lcy52YWx1ZV0sb3B0aW9uKSxzZXRMYWJlbE9wdGlvbnMobGFiZWxPcHRpb25zLG9wdGlvbixtZXJnZWRGaWVsZE5hbWVzLmxhYmVsKSxzZXRMYWJlbE9wdGlvbnMobGFiZWxPcHRpb25zLG9wdGlvbixvcHRpb25GaWx0ZXJQcm9wKSxzZXRMYWJlbE9wdGlvbnMobGFiZWxPcHRpb25zLG9wdGlvbixvcHRpb25MYWJlbFByb3ApKTpkaWcob3B0aW9uW21lcmdlZEZpZWxkTmFtZXMub3B0aW9uc10sITApfX0obWVyZ2VkT3B0aW9ucykse29wdGlvbnM6bWVyZ2VkT3B0aW9ucyx2YWx1ZU9wdGlvbnM6dmFsdWVPcHRpb25zLGxhYmVsT3B0aW9uczpsYWJlbE9wdGlvbnN9fSxbb3B0aW9uczEsY2hpbGRyZW4sbWVyZ2VkRmllbGROYW1lcyxvcHRpb25GaWx0ZXJQcm9wLG9wdGlvbkxhYmVsUHJvcF0pLHZhbHVlT3B0aW9ucz1wYXJzZWRPcHRpb25zLnZhbHVlT3B0aW9ucyxsYWJlbE9wdGlvbnM9cGFyc2VkT3B0aW9ucy5sYWJlbE9wdGlvbnMsbWVyZ2VkT3B0aW9ucz1wYXJzZWRPcHRpb25zLm9wdGlvbnMsY29udmVydDJMYWJlbFZhbHVlcz1yZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbihkcmFmdFZhbHVlcyl7cmV0dXJuIGNvbW1vblV0aWxfdG9BcnJheShkcmFmdFZhbHVlcykubWFwKGZ1bmN0aW9uKHZhbCl7dmFsJiYib2JqZWN0Ij09PSgwLGVzbV90eXBlb2YuWikodmFsKT8ocmF3S2V5PXZhbC5rZXkscmF3TGFiZWw9dmFsLmxhYmVsLHJhd1ZhbHVlPW51bGwhPT0oX3ZhbCR2YWx1ZT12YWwudmFsdWUpJiZ2b2lkIDAhPT1fdmFsJHZhbHVlP192YWwkdmFsdWU6cmF3S2V5KTpyYXdWYWx1ZT12YWw7dmFyIHJhd1ZhbHVlLHJhd0xhYmVsLHJhd0tleSxyYXdEaXNhYmxlZCxyYXdUaXRsZSxfdmFsJHZhbHVlLF9vcHRpb24ka2V5LG9wdGlvbj12YWx1ZU9wdGlvbnMuZ2V0KHJhd1ZhbHVlKTtyZXR1cm4gb3B0aW9uJiYodm9pZCAwPT09cmF3TGFiZWwmJihyYXdMYWJlbD1udWxsPT1vcHRpb24/dm9pZCAwOm9wdGlvbltvcHRpb25MYWJlbFByb3B8fG1lcmdlZEZpZWxkTmFtZXMubGFiZWxdKSx2b2lkIDA9PT1yYXdLZXkmJihyYXdLZXk9bnVsbCE9PShfb3B0aW9uJGtleT1udWxsPT1vcHRpb24/dm9pZCAwOm9wdGlvbi5rZXkpJiZ2b2lkIDAhPT1fb3B0aW9uJGtleT9fb3B0aW9uJGtleTpyYXdWYWx1ZSkscmF3RGlzYWJsZWQ9bnVsbD09b3B0aW9uP3ZvaWQgMDpvcHRpb24uZGlzYWJsZWQscmF3VGl0bGU9bnVsbD09b3B0aW9uP3ZvaWQgMDpvcHRpb24udGl0bGUpLHtsYWJlbDpyYXdMYWJlbCx2YWx1ZTpyYXdWYWx1ZSxrZXk6cmF3S2V5LGRpc2FibGVkOnJhd0Rpc2FibGVkLHRpdGxlOnJhd1RpdGxlfX0pfSxbbWVyZ2VkRmllbGROYW1lcyxvcHRpb25MYWJlbFByb3AsdmFsdWVPcHRpb25zXSksX3VzZU1lcmdlZFN0YXRlMz0oMCx1c2VNZXJnZWRTdGF0ZS5aKShkZWZhdWx0VmFsdWUse3ZhbHVlOnZhbHVlfSksX3VzZU1lcmdlZFN0YXRlND0oMCxzbGljZWRUb0FycmF5LlopKF91c2VNZXJnZWRTdGF0ZTMsMiksaW50ZXJuYWxWYWx1ZT1fdXNlTWVyZ2VkU3RhdGU0WzBdLHNldEludGVybmFsVmFsdWU9X3VzZU1lcmdlZFN0YXRlNFsxXSxfdXNlQ2FjaGU9dXNlQ2FjaGUocmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3ZhciBfdmFsdWVzJCx2YWx1ZSx2YWx1ZXM9Y29udmVydDJMYWJlbFZhbHVlcyhtdWx0aXBsZSYmbnVsbD09PWludGVybmFsVmFsdWU/W106aW50ZXJuYWxWYWx1ZSk7cmV0dXJuImNvbWJvYm94IiE9PW1vZGV8fCh2YWx1ZT1udWxsPT09KF92YWx1ZXMkPXZhbHVlc1swXSl8fHZvaWQgMD09PV92YWx1ZXMkP3ZvaWQgMDpfdmFsdWVzJC52YWx1ZSl8fDA9PT12YWx1ZT92YWx1ZXM6W119LFtpbnRlcm5hbFZhbHVlLGNvbnZlcnQyTGFiZWxWYWx1ZXMsbW9kZSxtdWx0aXBsZV0pLHZhbHVlT3B0aW9ucyksX3VzZUNhY2hlMj0oMCxzbGljZWRUb0FycmF5LlopKF91c2VDYWNoZSwyKSxtZXJnZWRWYWx1ZXM9X3VzZUNhY2hlMlswXSxnZXRNaXhlZE9wdGlvbj1fdXNlQ2FjaGUyWzFdLGRpc3BsYXlWYWx1ZXM9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe2lmKCFtb2RlJiYxPT09bWVyZ2VkVmFsdWVzLmxlbmd0aCl7dmFyIGZpcnN0VmFsdWU9bWVyZ2VkVmFsdWVzWzBdO2lmKG51bGw9PT1maXJzdFZhbHVlLnZhbHVlJiYobnVsbD09PWZpcnN0VmFsdWUubGFiZWx8fHZvaWQgMD09PWZpcnN0VmFsdWUubGFiZWwpKXJldHVybltdfXJldHVybiBtZXJnZWRWYWx1ZXMubWFwKGZ1bmN0aW9uKGl0ZW0pe3ZhciBfcmVmO3JldHVybigwLG9iamVjdFNwcmVhZDIuWikoKDAsb2JqZWN0U3ByZWFkMi5aKSh7fSxpdGVtKSx7fSx7bGFiZWw6bnVsbCE9PShfcmVmPSJmdW5jdGlvbiI9PXR5cGVvZiBsYWJlbFJlbmRlcj9sYWJlbFJlbmRlcihpdGVtKTppdGVtLmxhYmVsKSYmdm9pZCAwIT09X3JlZj9fcmVmOml0ZW0udmFsdWV9KX0pfSxbbW9kZSxtZXJnZWRWYWx1ZXMsbGFiZWxSZW5kZXJdKSxyYXdWYWx1ZXM9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBuZXcgU2V0KG1lcmdlZFZhbHVlcy5tYXAoZnVuY3Rpb24odmFsKXtyZXR1cm4gdmFsLnZhbHVlfSkpfSxbbWVyZ2VkVmFsdWVzXSk7cmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uKCl7aWYoImNvbWJvYm94Ij09PW1vZGUpe3ZhciBfbWVyZ2VkVmFsdWVzJCxzdHJWYWx1ZT1udWxsPT09KF9tZXJnZWRWYWx1ZXMkPW1lcmdlZFZhbHVlc1swXSl8fHZvaWQgMD09PV9tZXJnZWRWYWx1ZXMkP3ZvaWQgMDpfbWVyZ2VkVmFsdWVzJC52YWx1ZTtzZXRTZWFyY2hWYWx1ZShudWxsIT1zdHJWYWx1ZT9TdHJpbmcoc3RyVmFsdWUpOiIiKX19LFttZXJnZWRWYWx1ZXNdKTt2YXIgY3JlYXRlVGFnT3B0aW9uPXVzZVJlZkZ1bmMoZnVuY3Rpb24odmFsLGxhYmVsKXtyZXR1cm4oMCxkZWZpbmVQcm9wZXJ0eS5aKSgoMCxkZWZpbmVQcm9wZXJ0eS5aKSh7fSxtZXJnZWRGaWVsZE5hbWVzLnZhbHVlLHZhbCksbWVyZ2VkRmllbGROYW1lcy5sYWJlbCxudWxsIT1sYWJlbD9sYWJlbDp2YWwpfSksZmlsdGVyZWRPcHRpb25zPShvcHRpb25zPXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtpZigidGFncyIhPT1tb2RlKXJldHVybiBtZXJnZWRPcHRpb25zO3ZhciBjbG9uZU9wdGlvbnM9KDAsdG9Db25zdW1hYmxlQXJyYXkuWikobWVyZ2VkT3B0aW9ucyk7cmV0dXJuKDAsdG9Db25zdW1hYmxlQXJyYXkuWikobWVyZ2VkVmFsdWVzKS5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEudmFsdWU8Yi52YWx1ZT8tMToxfSkuZm9yRWFjaChmdW5jdGlvbihpdGVtKXt2YXIgdmFsPWl0ZW0udmFsdWU7dmFsdWVPcHRpb25zLmhhcyh2YWwpfHxjbG9uZU9wdGlvbnMucHVzaChjcmVhdGVUYWdPcHRpb24odmFsLGl0ZW0ubGFiZWwpKX0pLGNsb25lT3B0aW9uc30sW2NyZWF0ZVRhZ09wdGlvbixtZXJnZWRPcHRpb25zLHZhbHVlT3B0aW9ucyxtZXJnZWRWYWx1ZXMsbW9kZV0pLHJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtpZighbWVyZ2VkU2VhcmNoVmFsdWV8fCExPT09bWVyZ2VkRmlsdGVyT3B0aW9uKXJldHVybiBvcHRpb25zO3ZhciBmaWVsZE9wdGlvbnM9bWVyZ2VkRmllbGROYW1lcy5vcHRpb25zLGZpZWxkTGFiZWw9bWVyZ2VkRmllbGROYW1lcy5sYWJlbCxmaWVsZFZhbHVlPW1lcmdlZEZpZWxkTmFtZXMudmFsdWUsZmlsdGVyZWRPcHRpb25zPVtdLGN1c3RvbWl6ZUZpbHRlcj0iZnVuY3Rpb24iPT10eXBlb2YgbWVyZ2VkRmlsdGVyT3B0aW9uLHVwcGVyU2VhcmNoPW1lcmdlZFNlYXJjaFZhbHVlLnRvVXBwZXJDYXNlKCksZmlsdGVyRnVuYz1jdXN0b21pemVGaWx0ZXI/bWVyZ2VkRmlsdGVyT3B0aW9uOmZ1bmN0aW9uKF8sb3B0aW9uKXtyZXR1cm4gb3B0aW9uRmlsdGVyUHJvcD9pbmNsdWRlcyhvcHRpb25bb3B0aW9uRmlsdGVyUHJvcF0sdXBwZXJTZWFyY2gpOm9wdGlvbltmaWVsZE9wdGlvbnNdP2luY2x1ZGVzKG9wdGlvblsiY2hpbGRyZW4iIT09ZmllbGRMYWJlbD9maWVsZExhYmVsOiJsYWJlbCJdLHVwcGVyU2VhcmNoKTppbmNsdWRlcyhvcHRpb25bZmllbGRWYWx1ZV0sdXBwZXJTZWFyY2gpfSx3cmFwT3B0aW9uPWN1c3RvbWl6ZUZpbHRlcj9mdW5jdGlvbihvcHQpe3JldHVybiBpbmplY3RQcm9wc1dpdGhPcHRpb24ob3B0KX06ZnVuY3Rpb24ob3B0KXtyZXR1cm4gb3B0fTtyZXR1cm4gb3B0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pe2lmKGl0ZW1bZmllbGRPcHRpb25zXSl7aWYoZmlsdGVyRnVuYyhtZXJnZWRTZWFyY2hWYWx1ZSx3cmFwT3B0aW9uKGl0ZW0pKSlmaWx0ZXJlZE9wdGlvbnMucHVzaChpdGVtKTtlbHNle3ZhciBzdWJPcHRpb25zPWl0ZW1bZmllbGRPcHRpb25zXS5maWx0ZXIoZnVuY3Rpb24oc3ViSXRlbSl7cmV0dXJuIGZpbHRlckZ1bmMobWVyZ2VkU2VhcmNoVmFsdWUsd3JhcE9wdGlvbihzdWJJdGVtKSl9KTtzdWJPcHRpb25zLmxlbmd0aCYmZmlsdGVyZWRPcHRpb25zLnB1c2goKDAsb2JqZWN0U3ByZWFkMi5aKSgoMCxvYmplY3RTcHJlYWQyLlopKHt9LGl0ZW0pLHt9LCgwLGRlZmluZVByb3BlcnR5LlopKHt9LGZpZWxkT3B0aW9ucyxzdWJPcHRpb25zKSkpfXJldHVybn1maWx0ZXJGdW5jKG1lcmdlZFNlYXJjaFZhbHVlLHdyYXBPcHRpb24oaXRlbSkpJiZmaWx0ZXJlZE9wdGlvbnMucHVzaChpdGVtKX0pLGZpbHRlcmVkT3B0aW9uc30sW29wdGlvbnMsbWVyZ2VkRmlsdGVyT3B0aW9uLG9wdGlvbkZpbHRlclByb3AsbWVyZ2VkU2VhcmNoVmFsdWUsbWVyZ2VkRmllbGROYW1lc10pKSxmaWxsZWRTZWFyY2hPcHRpb25zPXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4idGFncyIhPT1tb2RlfHwhbWVyZ2VkU2VhcmNoVmFsdWV8fGZpbHRlcmVkT3B0aW9ucy5zb21lKGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBpdGVtW29wdGlvbkZpbHRlclByb3B8fCJ2YWx1ZSJdPT09bWVyZ2VkU2VhcmNoVmFsdWV9KXx8ZmlsdGVyZWRPcHRpb25zLnNvbWUoZnVuY3Rpb24oaXRlbSl7cmV0dXJuIGl0ZW1bbWVyZ2VkRmllbGROYW1lcy52YWx1ZV09PT1tZXJnZWRTZWFyY2hWYWx1ZX0pP2ZpbHRlcmVkT3B0aW9uczpbY3JlYXRlVGFnT3B0aW9uKG1lcmdlZFNlYXJjaFZhbHVlKV0uY29uY2F0KCgwLHRvQ29uc3VtYWJsZUFycmF5LlopKGZpbHRlcmVkT3B0aW9ucykpfSxbY3JlYXRlVGFnT3B0aW9uLG9wdGlvbkZpbHRlclByb3AsbW9kZSxmaWx0ZXJlZE9wdGlvbnMsbWVyZ2VkU2VhcmNoVmFsdWUsbWVyZ2VkRmllbGROYW1lc10pLG9yZGVyZWRGaWx0ZXJlZE9wdGlvbnM9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBmaWx0ZXJTb3J0P2Z1bmN0aW9uIHNvcnRlcihpbnB1dE9wdGlvbnMpe3JldHVybigwLHRvQ29uc3VtYWJsZUFycmF5LlopKGlucHV0T3B0aW9ucykuc29ydChmdW5jdGlvbihhLGIpe3JldHVybiBmaWx0ZXJTb3J0KGEsYix7c2VhcmNoVmFsdWU6bWVyZ2VkU2VhcmNoVmFsdWV9KX0pLm1hcChmdW5jdGlvbihpdGVtKXtyZXR1cm4gQXJyYXkuaXNBcnJheShpdGVtLm9wdGlvbnMpPygwLG9iamVjdFNwcmVhZDIuWikoKDAsb2JqZWN0U3ByZWFkMi5aKSh7fSxpdGVtKSx7fSx7b3B0aW9uczppdGVtLm9wdGlvbnMubGVuZ3RoPjA/c29ydGVyKGl0ZW0ub3B0aW9ucyk6aXRlbS5vcHRpb25zfSk6aXRlbX0pfShmaWxsZWRTZWFyY2hPcHRpb25zKTpmaWxsZWRTZWFyY2hPcHRpb25zfSxbZmlsbGVkU2VhcmNoT3B0aW9ucyxmaWx0ZXJTb3J0LG1lcmdlZFNlYXJjaFZhbHVlXSksZGlzcGxheU9wdGlvbnM9cmVhY3QudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihvcHRpb25zKXt2YXIgX3JlZjI9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LGZpZWxkTmFtZXM9X3JlZjIuZmllbGROYW1lcyxjaGlsZHJlbkFzRGF0YT1fcmVmMi5jaGlsZHJlbkFzRGF0YSxmbGF0dGVuTGlzdD1bXSxfZmlsbEZpZWxkTmFtZXM9ZmlsbEZpZWxkTmFtZXMoZmllbGROYW1lcywhMSksZmllbGRMYWJlbD1fZmlsbEZpZWxkTmFtZXMubGFiZWwsZmllbGRWYWx1ZT1fZmlsbEZpZWxkTmFtZXMudmFsdWUsZmllbGRPcHRpb25zPV9maWxsRmllbGROYW1lcy5vcHRpb25zLGdyb3VwTGFiZWw9X2ZpbGxGaWVsZE5hbWVzLmdyb3VwTGFiZWw7cmV0dXJuIWZ1bmN0aW9uIGRpZyhsaXN0LGlzR3JvdXBPcHRpb24pe0FycmF5LmlzQXJyYXkobGlzdCkmJmxpc3QuZm9yRWFjaChmdW5jdGlvbihkYXRhKXtpZighaXNHcm91cE9wdGlvbiYmZmllbGRPcHRpb25zIGluIGRhdGEpe3ZhciBncnBMYWJlbD1kYXRhW2dyb3VwTGFiZWxdO3ZvaWQgMD09PWdycExhYmVsJiZjaGlsZHJlbkFzRGF0YSYmKGdycExhYmVsPWRhdGEubGFiZWwpLGZsYXR0ZW5MaXN0LnB1c2goe2tleTpnZXRLZXkoZGF0YSxmbGF0dGVuTGlzdC5sZW5ndGgpLGdyb3VwOiEwLGRhdGE6ZGF0YSxsYWJlbDpncnBMYWJlbH0pLGRpZyhkYXRhW2ZpZWxkT3B0aW9uc10sITApfWVsc2V7dmFyIHZhbHVlPWRhdGFbZmllbGRWYWx1ZV07ZmxhdHRlbkxpc3QucHVzaCh7a2V5OmdldEtleShkYXRhLGZsYXR0ZW5MaXN0Lmxlbmd0aCksZ3JvdXBPcHRpb246aXNHcm91cE9wdGlvbixkYXRhOmRhdGEsbGFiZWw6ZGF0YVtmaWVsZExhYmVsXSx2YWx1ZTp2YWx1ZX0pfX0pfShvcHRpb25zLCExKSxmbGF0dGVuTGlzdH0ob3JkZXJlZEZpbHRlcmVkT3B0aW9ucyx7ZmllbGROYW1lczptZXJnZWRGaWVsZE5hbWVzLGNoaWxkcmVuQXNEYXRhOmNoaWxkcmVuQXNEYXRhfSl9LFtvcmRlcmVkRmlsdGVyZWRPcHRpb25zLG1lcmdlZEZpZWxkTmFtZXMsY2hpbGRyZW5Bc0RhdGFdKSx0cmlnZ2VyQ2hhbmdlPWZ1bmN0aW9uKHZhbHVlcyl7dmFyIGxhYmVsZWRWYWx1ZXM9Y29udmVydDJMYWJlbFZhbHVlcyh2YWx1ZXMpO2lmKHNldEludGVybmFsVmFsdWUobGFiZWxlZFZhbHVlcyksb25DaGFuZ2UmJihsYWJlbGVkVmFsdWVzLmxlbmd0aCE9PW1lcmdlZFZhbHVlcy5sZW5ndGh8fGxhYmVsZWRWYWx1ZXMuc29tZShmdW5jdGlvbihuZXdWYWwsaW5kZXgpe3ZhciBfbWVyZ2VkVmFsdWVzJGluZGV4O3JldHVybihudWxsPT09KF9tZXJnZWRWYWx1ZXMkaW5kZXg9bWVyZ2VkVmFsdWVzW2luZGV4XSl8fHZvaWQgMD09PV9tZXJnZWRWYWx1ZXMkaW5kZXg/dm9pZCAwOl9tZXJnZWRWYWx1ZXMkaW5kZXgudmFsdWUpIT09KG51bGw9PW5ld1ZhbD92b2lkIDA6bmV3VmFsLnZhbHVlKX0pKSl7dmFyIHJldHVyblZhbHVlcz1sYWJlbEluVmFsdWU/bGFiZWxlZFZhbHVlczpsYWJlbGVkVmFsdWVzLm1hcChmdW5jdGlvbih2KXtyZXR1cm4gdi52YWx1ZX0pLHJldHVybk9wdGlvbnM9bGFiZWxlZFZhbHVlcy5tYXAoZnVuY3Rpb24odil7cmV0dXJuIGluamVjdFByb3BzV2l0aE9wdGlvbihnZXRNaXhlZE9wdGlvbih2LnZhbHVlKSl9KTtvbkNoYW5nZShtdWx0aXBsZT9yZXR1cm5WYWx1ZXM6cmV0dXJuVmFsdWVzWzBdLG11bHRpcGxlP3JldHVybk9wdGlvbnM6cmV0dXJuT3B0aW9uc1swXSl9fSxfUmVhY3QkdXNlU3RhdGUxPXJlYWN0LnVzZVN0YXRlKG51bGwpLF9SZWFjdCR1c2VTdGF0ZTIxPSgwLHNsaWNlZFRvQXJyYXkuWikoX1JlYWN0JHVzZVN0YXRlMSwyKSxhY3RpdmVWYWx1ZT1fUmVhY3QkdXNlU3RhdGUyMVswXSxzZXRBY3RpdmVWYWx1ZT1fUmVhY3QkdXNlU3RhdGUyMVsxXSxfUmVhY3QkdXNlU3RhdGUzPXJlYWN0LnVzZVN0YXRlKDApLF9SZWFjdCR1c2VTdGF0ZTQ9KDAsc2xpY2VkVG9BcnJheS5aKShfUmVhY3QkdXNlU3RhdGUzLDIpLGFjY2Vzc2liaWxpdHlJbmRleD1fUmVhY3QkdXNlU3RhdGU0WzBdLHNldEFjY2Vzc2liaWxpdHlJbmRleD1fUmVhY3QkdXNlU3RhdGU0WzFdLG1lcmdlZERlZmF1bHRBY3RpdmVGaXJzdE9wdGlvbj12b2lkIDAhPT1kZWZhdWx0QWN0aXZlRmlyc3RPcHRpb24/ZGVmYXVsdEFjdGl2ZUZpcnN0T3B0aW9uOiJjb21ib2JveCIhPT1tb2RlLG9uQWN0aXZlVmFsdWU9cmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24oYWN0aXZlLGluZGV4KXt2YXIgX3JlZjM9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9LF9yZWYzJHNvdXJjZT1fcmVmMy5zb3VyY2U7c2V0QWNjZXNzaWJpbGl0eUluZGV4KGluZGV4KSxiYWNrZmlsbCYmImNvbWJvYm94Ij09PW1vZGUmJm51bGwhPT1hY3RpdmUmJiJrZXlib2FyZCI9PT0odm9pZCAwPT09X3JlZjMkc291cmNlPyJrZXlib2FyZCI6X3JlZjMkc291cmNlKSYmc2V0QWN0aXZlVmFsdWUoU3RyaW5nKGFjdGl2ZSkpfSxbYmFja2ZpbGwsbW9kZV0pLHRyaWdnZXJTZWxlY3Q9ZnVuY3Rpb24odmFsLHNlbGVjdGVkLHR5cGUpe3ZhciBnZXRTZWxlY3RFbnQ9ZnVuY3Rpb24oKXt2YXIgX29wdGlvbiRrZXkyLG9wdGlvbj1nZXRNaXhlZE9wdGlvbih2YWwpO3JldHVybltsYWJlbEluVmFsdWU/e2xhYmVsOm51bGw9PW9wdGlvbj92b2lkIDA6b3B0aW9uW21lcmdlZEZpZWxkTmFtZXMubGFiZWxdLHZhbHVlOnZhbCxrZXk6bnVsbCE9PShfb3B0aW9uJGtleTI9bnVsbD09b3B0aW9uP3ZvaWQgMDpvcHRpb24ua2V5KSYmdm9pZCAwIT09X29wdGlvbiRrZXkyP19vcHRpb24ka2V5Mjp2YWx9OnZhbCxpbmplY3RQcm9wc1dpdGhPcHRpb24ob3B0aW9uKV19O2lmKHNlbGVjdGVkJiZvblNlbGVjdCl7dmFyIF9nZXRTZWxlY3RFbnQ9Z2V0U2VsZWN0RW50KCksX2dldFNlbGVjdEVudDI9KDAsc2xpY2VkVG9BcnJheS5aKShfZ2V0U2VsZWN0RW50LDIpO29uU2VsZWN0KF9nZXRTZWxlY3RFbnQyWzBdLF9nZXRTZWxlY3RFbnQyWzFdKX1lbHNlIGlmKCFzZWxlY3RlZCYmb25EZXNlbGVjdCYmImNsZWFyIiE9PXR5cGUpe3ZhciBfZ2V0U2VsZWN0RW50Mz1nZXRTZWxlY3RFbnQoKSxfZ2V0U2VsZWN0RW50ND0oMCxzbGljZWRUb0FycmF5LlopKF9nZXRTZWxlY3RFbnQzLDIpO29uRGVzZWxlY3QoX2dldFNlbGVjdEVudDRbMF0sX2dldFNlbGVjdEVudDRbMV0pfX0sb25JbnRlcm5hbFNlbGVjdD11c2VSZWZGdW5jKGZ1bmN0aW9uKHZhbCxpbmZvKXt2YXIgbWVyZ2VkU2VsZWN0PSFtdWx0aXBsZXx8aW5mby5zZWxlY3RlZDt0cmlnZ2VyQ2hhbmdlKG1lcmdlZFNlbGVjdD9tdWx0aXBsZT9bXS5jb25jYXQoKDAsdG9Db25zdW1hYmxlQXJyYXkuWikobWVyZ2VkVmFsdWVzKSxbdmFsXSk6W3ZhbF06bWVyZ2VkVmFsdWVzLmZpbHRlcihmdW5jdGlvbih2KXtyZXR1cm4gdi52YWx1ZSE9PXZhbH0pKSx0cmlnZ2VyU2VsZWN0KHZhbCxtZXJnZWRTZWxlY3QpLCJjb21ib2JveCI9PT1tb2RlP3NldEFjdGl2ZVZhbHVlKCIiKTooIUJhc2VTZWxlY3RfaXNNdWx0aXBsZXx8YXV0b0NsZWFyU2VhcmNoVmFsdWUpJiYoc2V0U2VhcmNoVmFsdWUoIiIpLHNldEFjdGl2ZVZhbHVlKCIiKSl9KSxzZWxlY3RDb250ZXh0PXJlYWN0LnVzZU1lbW8oZnVuY3Rpb24oKXtyZXR1cm4oMCxvYmplY3RTcHJlYWQyLlopKCgwLG9iamVjdFNwcmVhZDIuWikoe30scGFyc2VkT3B0aW9ucykse30se2ZsYXR0ZW5PcHRpb25zOmRpc3BsYXlPcHRpb25zLG9uQWN0aXZlVmFsdWU6b25BY3RpdmVWYWx1ZSxkZWZhdWx0QWN0aXZlRmlyc3RPcHRpb246bWVyZ2VkRGVmYXVsdEFjdGl2ZUZpcnN0T3B0aW9uLG9uU2VsZWN0Om9uSW50ZXJuYWxTZWxlY3QsbWVudUl0ZW1TZWxlY3RlZEljb246bWVudUl0ZW1TZWxlY3RlZEljb24scmF3VmFsdWVzOnJhd1ZhbHVlcyxmaWVsZE5hbWVzOm1lcmdlZEZpZWxkTmFtZXMsdmlydHVhbDohMSE9PXZpcnR1YWwmJiExIT09ZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoLGRpcmVjdGlvbjpkaXJlY3Rpb24sbGlzdEhlaWdodDpsaXN0SGVpZ2h0LGxpc3RJdGVtSGVpZ2h0Omxpc3RJdGVtSGVpZ2h0LGNoaWxkcmVuQXNEYXRhOmNoaWxkcmVuQXNEYXRhLG1heENvdW50Om1heENvdW50LG9wdGlvblJlbmRlcjpvcHRpb25SZW5kZXJ9KX0sW21heENvdW50LHBhcnNlZE9wdGlvbnMsZGlzcGxheU9wdGlvbnMsb25BY3RpdmVWYWx1ZSxtZXJnZWREZWZhdWx0QWN0aXZlRmlyc3RPcHRpb24sb25JbnRlcm5hbFNlbGVjdCxtZW51SXRlbVNlbGVjdGVkSWNvbixyYXdWYWx1ZXMsbWVyZ2VkRmllbGROYW1lcyx2aXJ0dWFsLGRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aCxkaXJlY3Rpb24sbGlzdEhlaWdodCxsaXN0SXRlbUhlaWdodCxjaGlsZHJlbkFzRGF0YSxvcHRpb25SZW5kZXJdKTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpzZWxlY3RDb250ZXh0fSxyZWFjdC5jcmVhdGVFbGVtZW50KEJhc2VTZWxlY3QsKDAsZXNtX2V4dGVuZHMuWikoe30scmVzdFByb3BzLHtpZDptZXJnZWRJZCxwcmVmaXhDbHM6dm9pZCAwPT09X3Byb3BzJHByZWZpeENscz8icmMtc2VsZWN0IjpfcHJvcHMkcHJlZml4Q2xzLHJlZjpyZWYsb21pdERvbVByb3BzOk9NSVRfRE9NX1BST1BTLG1vZGU6bW9kZSxkaXNwbGF5VmFsdWVzOmRpc3BsYXlWYWx1ZXMsb25EaXNwbGF5VmFsdWVzQ2hhbmdlOmZ1bmN0aW9uKG5leHRWYWx1ZXMsaW5mbyl7dHJpZ2dlckNoYW5nZShuZXh0VmFsdWVzKTt2YXIgdHlwZT1pbmZvLnR5cGUsdmFsdWVzPWluZm8udmFsdWVzOygicmVtb3ZlIj09PXR5cGV8fCJjbGVhciI9PT10eXBlKSYmdmFsdWVzLmZvckVhY2goZnVuY3Rpb24oaXRlbSl7dHJpZ2dlclNlbGVjdChpdGVtLnZhbHVlLCExLHR5cGUpfSl9LGRpcmVjdGlvbjpkaXJlY3Rpb24sc2VhcmNoVmFsdWU6bWVyZ2VkU2VhcmNoVmFsdWUsb25TZWFyY2g6ZnVuY3Rpb24oc2VhcmNoVGV4dCxpbmZvKXtpZihzZXRTZWFyY2hWYWx1ZShzZWFyY2hUZXh0KSxzZXRBY3RpdmVWYWx1ZShudWxsKSwic3VibWl0Ij09PWluZm8uc291cmNlKXt2YXIgZm9ybWF0dGVkPShzZWFyY2hUZXh0fHwiIikudHJpbSgpO2Zvcm1hdHRlZCYmKHRyaWdnZXJDaGFuZ2UoQXJyYXkuZnJvbShuZXcgU2V0KFtdLmNvbmNhdCgoMCx0b0NvbnN1bWFibGVBcnJheS5aKShyYXdWYWx1ZXMpLFtmb3JtYXR0ZWRdKSkpKSx0cmlnZ2VyU2VsZWN0KGZvcm1hdHRlZCwhMCksc2V0U2VhcmNoVmFsdWUoIiIpKTtyZXR1cm59ImJsdXIiIT09aW5mby5zb3VyY2UmJigiY29tYm9ib3giPT09bW9kZSYmdHJpZ2dlckNoYW5nZShzZWFyY2hUZXh0KSxudWxsPT1vblNlYXJjaHx8b25TZWFyY2goc2VhcmNoVGV4dCkpfSxhdXRvQ2xlYXJTZWFyY2hWYWx1ZTphdXRvQ2xlYXJTZWFyY2hWYWx1ZSxvblNlYXJjaFNwbGl0OmZ1bmN0aW9uKHdvcmRzKXt2YXIgcGF0Y2hWYWx1ZXM9d29yZHM7InRhZ3MiIT09bW9kZSYmKHBhdGNoVmFsdWVzPXdvcmRzLm1hcChmdW5jdGlvbih3b3JkKXt2YXIgb3B0PWxhYmVsT3B0aW9ucy5nZXQod29yZCk7cmV0dXJuIG51bGw9PW9wdD92b2lkIDA6b3B0LnZhbHVlfSkuZmlsdGVyKGZ1bmN0aW9uKHZhbCl7cmV0dXJuIHZvaWQgMCE9PXZhbH0pKTt2YXIgbmV3UmF3VmFsdWVzPUFycmF5LmZyb20obmV3IFNldChbXS5jb25jYXQoKDAsdG9Db25zdW1hYmxlQXJyYXkuWikocmF3VmFsdWVzKSwoMCx0b0NvbnN1bWFibGVBcnJheS5aKShwYXRjaFZhbHVlcykpKSk7dHJpZ2dlckNoYW5nZShuZXdSYXdWYWx1ZXMpLG5ld1Jhd1ZhbHVlcy5mb3JFYWNoKGZ1bmN0aW9uKG5ld1Jhd1ZhbHVlKXt0cmlnZ2VyU2VsZWN0KG5ld1Jhd1ZhbHVlLCEwKX0pfSxkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGg6ZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoLE9wdGlvbkxpc3Q6UmVmT3B0aW9uTGlzdCxlbXB0eU9wdGlvbnM6IWRpc3BsYXlPcHRpb25zLmxlbmd0aCxhY3RpdmVWYWx1ZTphY3RpdmVWYWx1ZSxhY3RpdmVEZXNjZW5kYW50SWQ6IiIuY29uY2F0KG1lcmdlZElkLCJfbGlzdF8iKS5jb25jYXQoYWNjZXNzaWJpbGl0eUluZGV4KX0pKSl9KTtUeXBlZFNlbGVjdC5PcHRpb249T3B0aW9uLFR5cGVkU2VsZWN0Lk9wdEdyb3VwPU9wdEdyb3VwO3ZhciBlc19vbWl0PV9fd2VicGFja19yZXF1aXJlX18oMTAzNjYpLHVzZVpJbmRleD1fX3dlYnBhY2tfcmVxdWlyZV9fKDg3MjYzKSxtb3Rpb249X193ZWJwYWNrX3JlcXVpcmVfXygzMzYwMyksUHVyZVBhbmVsPV9fd2VicGFja19yZXF1aXJlX18oODc0NSksc3RhdHVzVXRpbHM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NzA4KSxjb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oNTMxMjQpLHVzZUxvY2FsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDEwMTEwKSxmYXN0X2NvbG9yX2VzPV9fd2VicGFja19yZXF1aXJlX18oMjQzMjcpLHVzZVRva2VuPV9fd2VicGFja19yZXF1aXJlX18oMjU5NzYpO2xldCBFbXB0eT0oKT0+e2xldFssdG9rZW5dPSgwLHVzZVRva2VuLlpQKSgpLFtsb2NhbGVdPSgwLHVzZUxvY2FsZS5aKSgiRW1wdHkiKSxiZ0NvbG9yPW5ldyBmYXN0X2NvbG9yX2VzLnQodG9rZW4uY29sb3JCZ0Jhc2UpLHRoZW1lU3R5bGU9YmdDb2xvci50b0hzbCgpLmw8LjU/e29wYWNpdHk6LjY1fTp7fTtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudCgic3ZnIix7c3R5bGU6dGhlbWVTdHlsZSx3aWR0aDoiMTg0IixoZWlnaHQ6IjE1MiIsdmlld0JveDoiMCAwIDE4NCAxNTIiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyJ9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoInRpdGxlIixudWxsLChudWxsPT1sb2NhbGU/dm9pZCAwOmxvY2FsZS5kZXNjcmlwdGlvbil8fCJFbXB0eSIpLHJlYWN0LmNyZWF0ZUVsZW1lbnQoImciLHtmaWxsOiJub25lIixmaWxsUnVsZToiZXZlbm9kZCJ9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoImciLHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgyNCAzMS42NykifSxyZWFjdC5jcmVhdGVFbGVtZW50KCJlbGxpcHNlIix7ZmlsbE9wYWNpdHk6Ii44IixmaWxsOiIjRjVGNUY3IixjeDoiNjcuNzk3IixjeToiMTA2Ljg5IixyeDoiNjcuNzk3IixyeToiMTIuNjY4In0pLHJlYWN0LmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTIyLjAzNCA2OS42NzRMOTguMTA5IDQwLjIyOWMtMS4xNDgtMS4zODYtMi44MjYtMi4yMjUtNC41OTMtMi4yMjVoLTUxLjQ0Yy0xLjc2NiAwLTMuNDQ0LjgzOS00LjU5MiAyLjIyNUwxMy41NiA2OS42NzR2MTUuMzgzaDEwOC40NzVWNjkuNjc0eiIsZmlsbDoiI0FFQjhDMiJ9KSxyZWFjdC5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTEwMS41MzcgODYuMjE0TDgwLjYzIDYxLjEwMmMtMS4wMDEtMS4yMDctMi41MDctMS44NjctNC4wNDgtMS44NjdIMzEuNzI0Yy0xLjU0IDAtMy4wNDcuNjYtNC4wNDggMS44NjdMNi43NjkgODYuMjE0djEzLjc5Mmg5NC43NjhWODYuMjE0eiIsZmlsbDoidXJsKCNsaW5lYXJHcmFkaWVudC0xKSIsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoMTMuNTYpIn0pLHJlYWN0LmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMzMuODMgMGg2Ny45MzNhNCA0IDAgMCAxIDQgNHY5My4zNDRhNCA0IDAgMCAxLTQgNEgzMy44M2E0IDQgMCAwIDEtNC00VjRhNCA0IDAgMCAxIDQtNHoiLGZpbGw6IiNGNUY1RjcifSkscmVhY3QuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik00Mi42NzggOS45NTNoNTAuMjM3YTIgMiAwIDAgMSAyIDJWMzYuOTFhMiAyIDAgMCAxLTIgMkg0Mi42NzhhMiAyIDAgMCAxLTItMlYxMS45NTNhMiAyIDAgMCAxIDItMnpNNDIuOTQgNDkuNzY3aDQ5LjcxM2EyLjI2MiAyLjI2MiAwIDEgMSAwIDQuNTI0SDQyLjk0YTIuMjYyIDIuMjYyIDAgMCAxIDAtNC41MjR6TTQyLjk0IDYxLjUzaDQ5LjcxM2EyLjI2MiAyLjI2MiAwIDEgMSAwIDQuNTI1SDQyLjk0YTIuMjYyIDIuMjYyIDAgMCAxIDAtNC41MjV6TTEyMS44MTMgMTA1LjAzMmMtLjc3NSAzLjA3MS0zLjQ5NyA1LjM2LTYuNzM1IDUuMzZIMjAuNTE1Yy0zLjIzOCAwLTUuOTYtMi4yOS02LjczNC01LjM2YTcuMzA5IDcuMzA5IDAgMCAxLS4yMjItMS43OVY2OS42NzVoMjYuMzE4YzIuOTA3IDAgNS4yNSAyLjQ0OCA1LjI1IDUuNDJ2LjA0YzAgMi45NzEgMi4zNyA1LjM3IDUuMjc3IDUuMzdoMzQuNzg1YzIuOTA3IDAgNS4yNzctMi40MjEgNS4yNzctNS4zOTNWNzUuMWMwLTIuOTcyIDIuMzQzLTUuNDI2IDUuMjUtNS40MjZoMjYuMzE4djMzLjU2OWMwIC42MTctLjA3NyAxLjIxNi0uMjIxIDEuNzg5eiIsZmlsbDoiI0RDRTBFNiJ9KSkscmVhY3QuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik0xNDkuMTIxIDMzLjI5MmwtNi44MyAyLjY1YTEgMSAwIDAgMS0xLjMxNy0xLjIzbDEuOTM3LTYuMjA3Yy0yLjU4OS0yLjk0NC00LjEwOS02LjUzNC00LjEwOS0xMC40MDhDMTM4LjgwMiA4LjEwMiAxNDguOTIgMCAxNjEuNDAyIDAgMTczLjg4MSAwIDE4NCA4LjEwMiAxODQgMTguMDk3YzAgOS45OTUtMTAuMTE4IDE4LjA5Ny0yMi41OTkgMTguMDk3LTQuNTI4IDAtOC43NDQtMS4wNjYtMTIuMjgtMi45MDJ6IixmaWxsOiIjRENFMEU2In0pLHJlYWN0LmNyZWF0ZUVsZW1lbnQoImciLHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgxNDkuNjUgMTUuMzgzKSIsZmlsbDoiI0ZGRiJ9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoImVsbGlwc2UiLHtjeDoiMjAuNjU0IixjeToiMy4xNjciLHJ4OiIyLjg0OSIscnk6IjIuODE1In0pLHJlYWN0LmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNNS42OTggNS42M0gwTDIuODk4LjcwNHpNOS4yNTkuNzA0aDQuOTg1VjUuNjNIOS4yNTl6In0pKSkpfSxTaW1wbGU9KCk9PntsZXRbLHRva2VuXT0oMCx1c2VUb2tlbi5aUCkoKSxbbG9jYWxlXT0oMCx1c2VMb2NhbGUuWikoIkVtcHR5Iikse2NvbG9yRmlsbCxjb2xvckZpbGxUZXJ0aWFyeSxjb2xvckZpbGxRdWF0ZXJuYXJ5LGNvbG9yQmdDb250YWluZXJ9PXRva2VuLHtib3JkZXJDb2xvcixzaGFkb3dDb2xvcixjb250ZW50Q29sb3J9PSgwLHJlYWN0LnVzZU1lbW8pKCgpPT4oe2JvcmRlckNvbG9yOm5ldyBmYXN0X2NvbG9yX2VzLnQoY29sb3JGaWxsKS5vbkJhY2tncm91bmQoY29sb3JCZ0NvbnRhaW5lcikudG9IZXhTdHJpbmcoKSxzaGFkb3dDb2xvcjpuZXcgZmFzdF9jb2xvcl9lcy50KGNvbG9yRmlsbFRlcnRpYXJ5KS5vbkJhY2tncm91bmQoY29sb3JCZ0NvbnRhaW5lcikudG9IZXhTdHJpbmcoKSxjb250ZW50Q29sb3I6bmV3IGZhc3RfY29sb3JfZXMudChjb2xvckZpbGxRdWF0ZXJuYXJ5KS5vbkJhY2tncm91bmQoY29sb3JCZ0NvbnRhaW5lcikudG9IZXhTdHJpbmcoKX0pLFtjb2xvckZpbGwsY29sb3JGaWxsVGVydGlhcnksY29sb3JGaWxsUXVhdGVybmFyeSxjb2xvckJnQ29udGFpbmVyXSk7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoInN2ZyIse3dpZHRoOiI2NCIsaGVpZ2h0OiI0MSIsdmlld0JveDoiMCAwIDY0IDQxIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcifSxyZWFjdC5jcmVhdGVFbGVtZW50KCJ0aXRsZSIsbnVsbCwobnVsbD09bG9jYWxlP3ZvaWQgMDpsb2NhbGUuZGVzY3JpcHRpb24pfHwiRW1wdHkiKSxyZWFjdC5jcmVhdGVFbGVtZW50KCJnIix7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoMCAxKSIsZmlsbDoibm9uZSIsZmlsbFJ1bGU6ImV2ZW5vZGQifSxyZWFjdC5jcmVhdGVFbGVtZW50KCJlbGxpcHNlIix7ZmlsbDpzaGFkb3dDb2xvcixjeDoiMzIiLGN5OiIzMyIscng6IjMyIixyeToiNyJ9KSxyZWFjdC5jcmVhdGVFbGVtZW50KCJnIix7ZmlsbFJ1bGU6Im5vbnplcm8iLHN0cm9rZTpib3JkZXJDb2xvcn0scmVhY3QuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik01NSAxMi43Nkw0NC44NTQgMS4yNThDNDQuMzY3LjQ3NCA0My42NTYgMCA0Mi45MDcgMEgyMS4wOTNjLS43NDkgMC0xLjQ2LjQ3NC0xLjk0NyAxLjI1N0w5IDEyLjc2MVYyMmg0NnYtOS4yNHoifSkscmVhY3QuY3JlYXRlRWxlbWVudCgicGF0aCIse2Q6Ik00MS42MTMgMTUuOTMxYzAtMS42MDUuOTk0LTIuOTMgMi4yMjctMi45MzFINTV2MTguMTM3QzU1IDMzLjI2IDUzLjY4IDM1IDUyLjA1IDM1aC00MC4xQzEwLjMyIDM1IDkgMzMuMjU5IDkgMzEuMTM3VjEzaDExLjE2YzEuMjMzIDAgMi4yMjcgMS4zMjMgMi4yMjcgMi45Mjh2LjAyMmMwIDEuNjA1IDEuMDA1IDIuOTAxIDIuMjM3IDIuOTAxaDE0Ljc1MmMxLjIzMiAwIDIuMjM3LTEuMzA4IDIuMjM3LTIuOTEzdi0uMDA3eiIsZmlsbDpjb250ZW50Q29sb3J9KSkpKX07dmFyIGdlblN0eWxlVXRpbHM9X193ZWJwYWNrX3JlcXVpcmVfXyg4MzU1OSksY3NzaW5qc191dGlsc19lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQyNTU5KTtsZXQgZ2VuU2hhcmVkRW1wdHlTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHMsbWFyZ2luLG1hcmdpblhTLG1hcmdpblhMLGZvbnRTaXplLGxpbmVIZWlnaHR9PXRva2VuO3JldHVybntbY29tcG9uZW50Q2xzXTp7bWFyZ2luSW5saW5lOm1hcmdpblhTLGZvbnRTaXplLGxpbmVIZWlnaHQsdGV4dEFsaWduOiJjZW50ZXIiLFtgJHtjb21wb25lbnRDbHN9LWltYWdlYF06e2hlaWdodDp0b2tlbi5lbXB0eUltZ0hlaWdodCxtYXJnaW5Cb3R0b206bWFyZ2luWFMsb3BhY2l0eTp0b2tlbi5vcGFjaXR5SW1hZ2UsaW1nOntoZWlnaHQ6IjEwMCUifSxzdmc6e21heFdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLG1hcmdpbjoiYXV0byJ9fSxbYCR7Y29tcG9uZW50Q2xzfS1kZXNjcmlwdGlvbmBdOntjb2xvcjp0b2tlbi5jb2xvclRleHREZXNjcmlwdGlvbn0sW2Ake2NvbXBvbmVudENsc30tZm9vdGVyYF06e21hcmdpblRvcDptYXJnaW59LCImLW5vcm1hbCI6e21hcmdpbkJsb2NrOm1hcmdpblhMLGNvbG9yOnRva2VuLmNvbG9yVGV4dERlc2NyaXB0aW9uLFtgJHtjb21wb25lbnRDbHN9LWRlc2NyaXB0aW9uYF06e2NvbG9yOnRva2VuLmNvbG9yVGV4dERlc2NyaXB0aW9ufSxbYCR7Y29tcG9uZW50Q2xzfS1pbWFnZWBdOntoZWlnaHQ6dG9rZW4uZW1wdHlJbWdIZWlnaHRNRH19LCImLXNtYWxsIjp7bWFyZ2luQmxvY2s6bWFyZ2luWFMsY29sb3I6dG9rZW4uY29sb3JUZXh0RGVzY3JpcHRpb24sW2Ake2NvbXBvbmVudENsc30taW1hZ2VgXTp7aGVpZ2h0OnRva2VuLmVtcHR5SW1nSGVpZ2h0U019fX19fTt2YXIgZW1wdHlfc3R5bGU9KDAsZ2VuU3R5bGVVdGlscy5JJCkoIkVtcHR5Iix0b2tlbj0+e2xldHtjb21wb25lbnRDbHMsY29udHJvbEhlaWdodExHLGNhbGN9PXRva2VuLGVtcHR5VG9rZW49KDAsY3NzaW5qc191dGlsc19lcy5JWCkodG9rZW4se2VtcHR5SW1nQ2xzOmAke2NvbXBvbmVudENsc30taW1nYCxlbXB0eUltZ0hlaWdodDpjYWxjKGNvbnRyb2xIZWlnaHRMRykubXVsKDIuNSkuZXF1YWwoKSxlbXB0eUltZ0hlaWdodE1EOmNvbnRyb2xIZWlnaHRMRyxlbXB0eUltZ0hlaWdodFNNOmNhbGMoY29udHJvbEhlaWdodExHKS5tdWwoLjg3NSkuZXF1YWwoKX0pO3JldHVybltnZW5TaGFyZWRFbXB0eVN0eWxlKGVtcHR5VG9rZW4pXX0pLF9fcmVzdD1mdW5jdGlvbihzLGUpe3ZhciB0PXt9O2Zvcih2YXIgcCBpbiBzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLHApJiYwPmUuaW5kZXhPZihwKSYmKHRbcF09c1twXSk7aWYobnVsbCE9cyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpZm9yKHZhciBpPTAscD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpO2k8cC5sZW5ndGg7aSsrKTA+ZS5pbmRleE9mKHBbaV0pJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocyxwW2ldKSYmKHRbcFtpXV09c1twW2ldXSk7cmV0dXJuIHR9O2xldCBkZWZhdWx0RW1wdHlJbWc9cmVhY3QuY3JlYXRlRWxlbWVudChFbXB0eSxudWxsKSxzaW1wbGVFbXB0eUltZz1yZWFjdC5jcmVhdGVFbGVtZW50KFNpbXBsZSxudWxsKSxlbXB0eV9FbXB0eT1wcm9wcz0+e2xldHtjbGFzc05hbWUscm9vdENsYXNzTmFtZSxwcmVmaXhDbHM6Y3VzdG9taXplUHJlZml4Q2xzLGltYWdlPWRlZmF1bHRFbXB0eUltZyxkZXNjcmlwdGlvbixjaGlsZHJlbixpbWFnZVN0eWxlLHN0eWxlLGNsYXNzTmFtZXM6ZW1wdHlDbGFzc05hbWVzLHN0eWxlc309cHJvcHMscmVzdFByb3BzPV9fcmVzdChwcm9wcyxbImNsYXNzTmFtZSIsInJvb3RDbGFzc05hbWUiLCJwcmVmaXhDbHMiLCJpbWFnZSIsImRlc2NyaXB0aW9uIiwiY2hpbGRyZW4iLCJpbWFnZVN0eWxlIiwic3R5bGUiLCJjbGFzc05hbWVzIiwic3R5bGVzIl0pLHtnZXRQcmVmaXhDbHMsZGlyZWN0aW9uLGNsYXNzTmFtZTpjb250ZXh0Q2xhc3NOYW1lLHN0eWxlOmNvbnRleHRTdHlsZSxjbGFzc05hbWVzOmNvbnRleHRDbGFzc05hbWVzLHN0eWxlczpjb250ZXh0U3R5bGVzfT0oMCxjb250ZXh0LmRqKSgiZW1wdHkiKSxwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJlbXB0eSIsY3VzdG9taXplUHJlZml4Q2xzKSxbd3JhcENTU1ZhcixoYXNoSWQsY3NzVmFyQ2xzXT1lbXB0eV9zdHlsZShwcmVmaXhDbHMpLFtsb2NhbGVdPSgwLHVzZUxvY2FsZS5aKSgiRW1wdHkiKSxkZXM9dm9pZCAwIT09ZGVzY3JpcHRpb24/ZGVzY3JpcHRpb246bnVsbD09bG9jYWxlP3ZvaWQgMDpsb2NhbGUuZGVzY3JpcHRpb24saW1hZ2VOb2RlPW51bGw7cmV0dXJuIGltYWdlTm9kZT0ic3RyaW5nIj09dHlwZW9mIGltYWdlP3JlYWN0LmNyZWF0ZUVsZW1lbnQoImltZyIse2FsdDoic3RyaW5nIj09dHlwZW9mIGRlcz9kZXM6ImVtcHR5IixzcmM6aW1hZ2V9KTppbWFnZSx3cmFwQ1NTVmFyKHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOmNsYXNzbmFtZXNfZGVmYXVsdCgpKGhhc2hJZCxjc3NWYXJDbHMscHJlZml4Q2xzLGNvbnRleHRDbGFzc05hbWUse1tgJHtwcmVmaXhDbHN9LW5vcm1hbGBdOmltYWdlPT09c2ltcGxlRW1wdHlJbWcsW2Ake3ByZWZpeENsc30tcnRsYF06InJ0bCI9PT1kaXJlY3Rpb259LGNsYXNzTmFtZSxyb290Q2xhc3NOYW1lLGNvbnRleHRDbGFzc05hbWVzLnJvb3QsbnVsbD09ZW1wdHlDbGFzc05hbWVzP3ZvaWQgMDplbXB0eUNsYXNzTmFtZXMucm9vdCksc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjb250ZXh0U3R5bGVzLnJvb3QpLGNvbnRleHRTdHlsZSksbnVsbD09c3R5bGVzP3ZvaWQgMDpzdHlsZXMucm9vdCksc3R5bGUpfSxyZXN0UHJvcHMpLHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpjbGFzc25hbWVzX2RlZmF1bHQoKShgJHtwcmVmaXhDbHN9LWltYWdlYCxjb250ZXh0Q2xhc3NOYW1lcy5pbWFnZSxudWxsPT1lbXB0eUNsYXNzTmFtZXM/dm9pZCAwOmVtcHR5Q2xhc3NOYW1lcy5pbWFnZSksc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saW1hZ2VTdHlsZSksY29udGV4dFN0eWxlcy5pbWFnZSksbnVsbD09c3R5bGVzP3ZvaWQgMDpzdHlsZXMuaW1hZ2UpfSxpbWFnZU5vZGUpLGRlcyYmcmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmNsYXNzbmFtZXNfZGVmYXVsdCgpKGAke3ByZWZpeENsc30tZGVzY3JpcHRpb25gLGNvbnRleHRDbGFzc05hbWVzLmRlc2NyaXB0aW9uLG51bGw9PWVtcHR5Q2xhc3NOYW1lcz92b2lkIDA6ZW1wdHlDbGFzc05hbWVzLmRlc2NyaXB0aW9uKSxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sY29udGV4dFN0eWxlcy5kZXNjcmlwdGlvbiksbnVsbD09c3R5bGVzP3ZvaWQgMDpzdHlsZXMuZGVzY3JpcHRpb24pfSxkZXMpLGNoaWxkcmVuJiZyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Y2xhc3NuYW1lc19kZWZhdWx0KCkoYCR7cHJlZml4Q2xzfS1mb290ZXJgLGNvbnRleHRDbGFzc05hbWVzLmZvb3RlcixudWxsPT1lbXB0eUNsYXNzTmFtZXM/dm9pZCAwOmVtcHR5Q2xhc3NOYW1lcy5mb290ZXIpLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjb250ZXh0U3R5bGVzLmZvb3RlciksbnVsbD09c3R5bGVzP3ZvaWQgMDpzdHlsZXMuZm9vdGVyKX0sY2hpbGRyZW4pKSl9O2VtcHR5X0VtcHR5LlBSRVNFTlRFRF9JTUFHRV9ERUZBVUxUPWRlZmF1bHRFbXB0eUltZyxlbXB0eV9FbXB0eS5QUkVTRU5URURfSU1BR0VfU0lNUExFPXNpbXBsZUVtcHR5SW1nO2xldCBEZWZhdWx0UmVuZGVyRW1wdHk9cHJvcHM9PntsZXR7Y29tcG9uZW50TmFtZX09cHJvcHMse2dldFByZWZpeENsc309KDAscmVhY3QudXNlQ29udGV4dCkoY29udGV4dC5FXykscHJlZml4PWdldFByZWZpeENscygiZW1wdHkiKTtzd2l0Y2goY29tcG9uZW50TmFtZSl7Y2FzZSJUYWJsZSI6Y2FzZSJMaXN0IjpyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChlbXB0eV9FbXB0eSx7aW1hZ2U6ZW1wdHlfRW1wdHkuUFJFU0VOVEVEX0lNQUdFX1NJTVBMRX0pO2Nhc2UiU2VsZWN0IjpjYXNlIlRyZWVTZWxlY3QiOmNhc2UiQ2FzY2FkZXIiOmNhc2UiVHJhbnNmZXIiOmNhc2UiTWVudGlvbnMiOnJldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KGVtcHR5X0VtcHR5LHtpbWFnZTplbXB0eV9FbXB0eS5QUkVTRU5URURfSU1BR0VfU0lNUExFLGNsYXNzTmFtZTpgJHtwcmVmaXh9LXNtYWxsYH0pO2Nhc2UiVGFibGUuZmlsdGVyIjpyZXR1cm4gbnVsbDtkZWZhdWx0OnJldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KGVtcHR5X0VtcHR5LG51bGwpfX07dmFyIERpc2FibGVkQ29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDk4ODY2KSx1c2VDU1NWYXJDbHM9X193ZWJwYWNrX3JlcXVpcmVfXygzNTc5MiksdXNlU2l6ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk4Njc1KSxmb3JtX2NvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg2NTIyMyksdXNlVmFyaWFudHM9X193ZWJwYWNrX3JlcXVpcmVfXygyNzgzMyksQ29tcGFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQxNzMpO2xldCBtZXJnZWRCdWlsdGluUGxhY2VtZW50c19nZXRCdWlsdEluUGxhY2VtZW50cz1wb3B1cE92ZXJmbG93PT57bGV0IHNoYXJlZENvbmZpZz17b3ZlcmZsb3c6e2FkanVzdFg6ITAsYWRqdXN0WTohMCxzaGlmdFk6ITB9LGh0bWxSZWdpb246InNjcm9sbCI9PT1wb3B1cE92ZXJmbG93PyJzY3JvbGwiOiJ2aXNpYmxlIixkeW5hbWljSW5zZXQ6ITB9O3JldHVybntib3R0b21MZWZ0Ok9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxzaGFyZWRDb25maWcpLHtwb2ludHM6WyJ0bCIsImJsIl0sb2Zmc2V0OlswLDRdfSksYm90dG9tUmlnaHQ6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHNoYXJlZENvbmZpZykse3BvaW50czpbInRyIiwiYnIiXSxvZmZzZXQ6WzAsNF19KSx0b3BMZWZ0Ok9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxzaGFyZWRDb25maWcpLHtwb2ludHM6WyJibCIsInRsIl0sb2Zmc2V0OlswLC00XX0pLHRvcFJpZ2h0Ok9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxzaGFyZWRDb25maWcpLHtwb2ludHM6WyJiciIsInRyIl0sb2Zmc2V0OlswLC00XX0pfX07dmFyIHN0eWxlPV9fd2VicGFja19yZXF1aXJlX18oMTQ3NDcpLGNvbXBhY3RfaXRlbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDgwMTEwKSxzbGlkZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3NzcxKSxtb3ZlPV9fd2VicGFja19yZXF1aXJlX18oMzMyOTcpO2xldCBnZW5JdGVtU3R5bGU9dG9rZW49PntsZXR7b3B0aW9uSGVpZ2h0LG9wdGlvbkZvbnRTaXplLG9wdGlvbkxpbmVIZWlnaHQsb3B0aW9uUGFkZGluZ309dG9rZW47cmV0dXJue3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZGlzcGxheToiYmxvY2siLG1pbkhlaWdodDpvcHRpb25IZWlnaHQscGFkZGluZzpvcHRpb25QYWRkaW5nLGNvbG9yOnRva2VuLmNvbG9yVGV4dCxmb250V2VpZ2h0OiJub3JtYWwiLGZvbnRTaXplOm9wdGlvbkZvbnRTaXplLGxpbmVIZWlnaHQ6b3B0aW9uTGluZUhlaWdodCxib3hTaXppbmc6ImJvcmRlci1ib3gifX0sZ2VuU2luZ2xlU3R5bGU9dG9rZW49PntsZXR7YW50Q2xzLGNvbXBvbmVudENsc309dG9rZW4sc2VsZWN0SXRlbUNscz1gJHtjb21wb25lbnRDbHN9LWl0ZW1gLHNsaWRlVXBFbnRlckFjdGl2ZT1gJiR7YW50Q2xzfS1zbGlkZS11cC1lbnRlciR7YW50Q2xzfS1zbGlkZS11cC1lbnRlci1hY3RpdmVgLHNsaWRlVXBBcHBlYXJBY3RpdmU9YCYke2FudENsc30tc2xpZGUtdXAtYXBwZWFyJHthbnRDbHN9LXNsaWRlLXVwLWFwcGVhci1hY3RpdmVgLHNsaWRlVXBMZWF2ZUFjdGl2ZT1gJiR7YW50Q2xzfS1zbGlkZS11cC1sZWF2ZSR7YW50Q2xzfS1zbGlkZS11cC1sZWF2ZS1hY3RpdmVgLGRyb3Bkb3duUGxhY2VtZW50Q2xzPWAke2NvbXBvbmVudENsc30tZHJvcGRvd24tcGxhY2VtZW50LWAsc2VsZWN0ZWRJdGVtQ2xzPWAke3NlbGVjdEl0ZW1DbHN9LW9wdGlvbi1zZWxlY3RlZGA7cmV0dXJuW3tbYCR7Y29tcG9uZW50Q2xzfS1kcm9wZG93bmBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxzdHlsZS5XZikodG9rZW4pKSx7cG9zaXRpb246ImFic29sdXRlIix0b3A6LTk5OTksekluZGV4OnRva2VuLnpJbmRleFBvcHVwLGJveFNpemluZzoiYm9yZGVyLWJveCIscGFkZGluZzp0b2tlbi5wYWRkaW5nWFhTLG92ZXJmbG93OiJoaWRkZW4iLGZvbnRTaXplOnRva2VuLmZvbnRTaXplLGZvbnRWYXJpYW50OiJpbml0aWFsIixiYWNrZ3JvdW5kQ29sb3I6dG9rZW4uY29sb3JCZ0VsZXZhdGVkLGJvcmRlclJhZGl1czp0b2tlbi5ib3JkZXJSYWRpdXNMRyxvdXRsaW5lOiJub25lIixib3hTaGFkb3c6dG9rZW4uYm94U2hhZG93U2Vjb25kYXJ5LFtgCiAgICAgICAgICAke3NsaWRlVXBFbnRlckFjdGl2ZX0ke2Ryb3Bkb3duUGxhY2VtZW50Q2xzfWJvdHRvbUxlZnQsCiAgICAgICAgICAke3NsaWRlVXBBcHBlYXJBY3RpdmV9JHtkcm9wZG93blBsYWNlbWVudENsc31ib3R0b21MZWZ0CiAgICAgICAgYF06e2FuaW1hdGlvbk5hbWU6c2xpZGUuZkp9LFtgCiAgICAgICAgICAke3NsaWRlVXBFbnRlckFjdGl2ZX0ke2Ryb3Bkb3duUGxhY2VtZW50Q2xzfXRvcExlZnQsCiAgICAgICAgICAke3NsaWRlVXBBcHBlYXJBY3RpdmV9JHtkcm9wZG93blBsYWNlbWVudENsc310b3BMZWZ0LAogICAgICAgICAgJHtzbGlkZVVwRW50ZXJBY3RpdmV9JHtkcm9wZG93blBsYWNlbWVudENsc310b3BSaWdodCwKICAgICAgICAgICR7c2xpZGVVcEFwcGVhckFjdGl2ZX0ke2Ryb3Bkb3duUGxhY2VtZW50Q2xzfXRvcFJpZ2h0CiAgICAgICAgYF06e2FuaW1hdGlvbk5hbWU6c2xpZGUuUXR9LFtgJHtzbGlkZVVwTGVhdmVBY3RpdmV9JHtkcm9wZG93blBsYWNlbWVudENsc31ib3R0b21MZWZ0YF06e2FuaW1hdGlvbk5hbWU6c2xpZGUuVXd9LFtgCiAgICAgICAgICAke3NsaWRlVXBMZWF2ZUFjdGl2ZX0ke2Ryb3Bkb3duUGxhY2VtZW50Q2xzfXRvcExlZnQsCiAgICAgICAgICAke3NsaWRlVXBMZWF2ZUFjdGl2ZX0ke2Ryb3Bkb3duUGxhY2VtZW50Q2xzfXRvcFJpZ2h0CiAgICAgICAgYF06e2FuaW1hdGlvbk5hbWU6c2xpZGUubHl9LCImLWhpZGRlbiI6e2Rpc3BsYXk6Im5vbmUifSxbc2VsZWN0SXRlbUNsc106T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGdlbkl0ZW1TdHlsZSh0b2tlbikpLHtjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGJhY2tncm91bmQgJHt0b2tlbi5tb3Rpb25EdXJhdGlvblNsb3d9IGVhc2VgLGJvcmRlclJhZGl1czp0b2tlbi5ib3JkZXJSYWRpdXNTTSwiJi1ncm91cCI6e2NvbG9yOnRva2VuLmNvbG9yVGV4dERlc2NyaXB0aW9uLGZvbnRTaXplOnRva2VuLmZvbnRTaXplU00sY3Vyc29yOiJkZWZhdWx0In0sIiYtb3B0aW9uIjp7ZGlzcGxheToiZmxleCIsIiYtY29udGVudCI6T2JqZWN0LmFzc2lnbih7ZmxleDoiYXV0byJ9LHN0eWxlLnZTKSwiJi1zdGF0ZSI6e2ZsZXg6Im5vbmUiLGRpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciJ9LFtgJi1hY3RpdmU6bm90KCR7c2VsZWN0SXRlbUNsc30tb3B0aW9uLWRpc2FibGVkKWBdOntiYWNrZ3JvdW5kQ29sb3I6dG9rZW4ub3B0aW9uQWN0aXZlQmd9LFtgJi1zZWxlY3RlZDpub3QoJHtzZWxlY3RJdGVtQ2xzfS1vcHRpb24tZGlzYWJsZWQpYF06e2NvbG9yOnRva2VuLm9wdGlvblNlbGVjdGVkQ29sb3IsZm9udFdlaWdodDp0b2tlbi5vcHRpb25TZWxlY3RlZEZvbnRXZWlnaHQsYmFja2dyb3VuZENvbG9yOnRva2VuLm9wdGlvblNlbGVjdGVkQmcsW2Ake3NlbGVjdEl0ZW1DbHN9LW9wdGlvbi1zdGF0ZWBdOntjb2xvcjp0b2tlbi5jb2xvclByaW1hcnl9fSwiJi1kaXNhYmxlZCI6e1tgJiR7c2VsZWN0SXRlbUNsc30tb3B0aW9uLXNlbGVjdGVkYF06e2JhY2tncm91bmRDb2xvcjp0b2tlbi5jb2xvckJnQ29udGFpbmVyRGlzYWJsZWR9LGNvbG9yOnRva2VuLmNvbG9yVGV4dERpc2FibGVkLGN1cnNvcjoibm90LWFsbG93ZWQifSwiJi1ncm91cGVkIjp7cGFkZGluZ0lubGluZVN0YXJ0OnRva2VuLmNhbGModG9rZW4uY29udHJvbFBhZGRpbmdIb3Jpem9udGFsKS5tdWwoMikuZXF1YWwoKX19LCImLWVtcHR5IjpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZ2VuSXRlbVN0eWxlKHRva2VuKSkse2NvbG9yOnRva2VuLmNvbG9yVGV4dERpc2FibGVkfSl9KSxbYCR7c2VsZWN0ZWRJdGVtQ2xzfTpoYXMoKyAke3NlbGVjdGVkSXRlbUNsc30pYF06e2JvcmRlckVuZFN0YXJ0UmFkaXVzOjAsYm9yZGVyRW5kRW5kUmFkaXVzOjAsW2AmICsgJHtzZWxlY3RlZEl0ZW1DbHN9YF06e2JvcmRlclN0YXJ0U3RhcnRSYWRpdXM6MCxib3JkZXJTdGFydEVuZFJhZGl1czowfX0sIiYtcnRsIjp7ZGlyZWN0aW9uOiJydGwifX0pfSwoMCxzbGlkZS5vTikodG9rZW4sInNsaWRlLXVwIiksKDAsc2xpZGUub04pKHRva2VuLCJzbGlkZS1kb3duIiksKDAsbW92ZS5GbSkodG9rZW4sIm1vdmUtdXAiKSwoMCxtb3ZlLkZtKSh0b2tlbiwibW92ZS1kb3duIildfTt2YXIgbXVsdGlwbGU9X193ZWJwYWNrX3JlcXVpcmVfXygxNjkyOCksY3NzaW5qc19lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ0ODk5KTtmdW5jdGlvbiBnZW5TaXplU3R5bGUodG9rZW4sc3VmZml4KXtsZXR7Y29tcG9uZW50Q2xzLGlucHV0UGFkZGluZ0hvcml6b250YWxCYXNlLGJvcmRlclJhZGl1c309dG9rZW4sc2VsZWN0SGVpZ2h0V2l0aG91dEJvcmRlcj10b2tlbi5jYWxjKHRva2VuLmNvbnRyb2xIZWlnaHQpLnN1Yih0b2tlbi5jYWxjKHRva2VuLmxpbmVXaWR0aCkubXVsKDIpKS5lcXVhbCgpLHN1ZmZpeENscz1zdWZmaXg/YCR7Y29tcG9uZW50Q2xzfS0ke3N1ZmZpeH1gOiIiO3JldHVybntbYCR7Y29tcG9uZW50Q2xzfS1zaW5nbGUke3N1ZmZpeENsc31gXTp7Zm9udFNpemU6dG9rZW4uZm9udFNpemUsaGVpZ2h0OnRva2VuLmNvbnRyb2xIZWlnaHQsW2Ake2NvbXBvbmVudENsc30tc2VsZWN0b3JgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sKDAsc3R5bGUuV2YpKHRva2VuLCEwKSkse2Rpc3BsYXk6ImZsZXgiLGJvcmRlclJhZGl1cyxmbGV4OiIxIDEgYXV0byIsW2Ake2NvbXBvbmVudENsc30tc2VsZWN0aW9uLXdyYXA6YWZ0ZXJgXTp7bGluZUhlaWdodDooMCxjc3NpbmpzX2VzLmJmKShzZWxlY3RIZWlnaHRXaXRob3V0Qm9yZGVyKX0sW2Ake2NvbXBvbmVudENsc30tc2VsZWN0aW9uLXNlYXJjaGBdOntwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0OjAsd2lkdGg6IjEwMCUiLCImLWlucHV0Ijp7d2lkdGg6IjEwMCUiLFdlYmtpdEFwcGVhcmFuY2U6InRleHRmaWVsZCJ9fSxbYAogICAgICAgICAgJHtjb21wb25lbnRDbHN9LXNlbGVjdGlvbi1pdGVtLAogICAgICAgICAgJHtjb21wb25lbnRDbHN9LXNlbGVjdGlvbi1wbGFjZWhvbGRlcgogICAgICAgIGBdOntkaXNwbGF5OiJibG9jayIscGFkZGluZzowLGxpbmVIZWlnaHQ6KDAsY3NzaW5qc19lcy5iZikoc2VsZWN0SGVpZ2h0V2l0aG91dEJvcmRlciksdHJhbnNpdGlvbjpgYWxsICR7dG9rZW4ubW90aW9uRHVyYXRpb25TbG93fSwgdmlzaWJpbGl0eSAwc2AsYWxpZ25TZWxmOiJjZW50ZXIifSxbYCR7Y29tcG9uZW50Q2xzfS1zZWxlY3Rpb24tcGxhY2Vob2xkZXJgXTp7dHJhbnNpdGlvbjoibm9uZSIscG9pbnRlckV2ZW50czoibm9uZSJ9LFtgJjphZnRlciwke2NvbXBvbmVudENsc30tc2VsZWN0aW9uLWl0ZW06ZW1wdHk6YWZ0ZXIsJHtjb21wb25lbnRDbHN9LXNlbGVjdGlvbi1wbGFjZWhvbGRlcjplbXB0eTphZnRlcmBdOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHdpZHRoOjAsdmlzaWJpbGl0eToiaGlkZGVuIixjb250ZW50OiciXFxhMCInfX0pLFtgCiAgICAgICAgJiR7Y29tcG9uZW50Q2xzfS1zaG93LWFycm93ICR7Y29tcG9uZW50Q2xzfS1zZWxlY3Rpb24taXRlbSwKICAgICAgICAmJHtjb21wb25lbnRDbHN9LXNob3ctYXJyb3cgJHtjb21wb25lbnRDbHN9LXNlbGVjdGlvbi1zZWFyY2gsCiAgICAgICAgJiR7Y29tcG9uZW50Q2xzfS1zaG93LWFycm93ICR7Y29tcG9uZW50Q2xzfS1zZWxlY3Rpb24tcGxhY2Vob2xkZXIKICAgICAgYF06e3BhZGRpbmdJbmxpbmVFbmQ6dG9rZW4uc2hvd0Fycm93UGFkZGluZ0lubGluZUVuZH0sW2AmJHtjb21wb25lbnRDbHN9LW9wZW4gJHtjb21wb25lbnRDbHN9LXNlbGVjdGlvbi1pdGVtYF06e2NvbG9yOnRva2VuLmNvbG9yVGV4dFBsYWNlaG9sZGVyfSxbYCY6bm90KCR7Y29tcG9uZW50Q2xzfS1jdXN0b21pemUtaW5wdXQpYF06e1tgJHtjb21wb25lbnRDbHN9LXNlbGVjdG9yYF06e3dpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLGFsaWduSXRlbXM6ImNlbnRlciIscGFkZGluZzpgMCAkeygwLGNzc2luanNfZXMuYmYpKGlucHV0UGFkZGluZ0hvcml6b250YWxCYXNlKX1gLFtgJHtjb21wb25lbnRDbHN9LXNlbGVjdGlvbi1zZWFyY2gtaW5wdXRgXTp7aGVpZ2h0OnNlbGVjdEhlaWdodFdpdGhvdXRCb3JkZXIsZm9udFNpemU6dG9rZW4uZm9udFNpemV9LCImOmFmdGVyIjp7bGluZUhlaWdodDooMCxjc3NpbmpzX2VzLmJmKShzZWxlY3RIZWlnaHRXaXRob3V0Qm9yZGVyKX19fSxbYCYke2NvbXBvbmVudENsc30tY3VzdG9taXplLWlucHV0YF06e1tgJHtjb21wb25lbnRDbHN9LXNlbGVjdG9yYF06eyImOmFmdGVyIjp7ZGlzcGxheToibm9uZSJ9LFtgJHtjb21wb25lbnRDbHN9LXNlbGVjdGlvbi1zZWFyY2hgXTp7cG9zaXRpb246InN0YXRpYyIsd2lkdGg6IjEwMCUifSxbYCR7Y29tcG9uZW50Q2xzfS1zZWxlY3Rpb24tcGxhY2Vob2xkZXJgXTp7cG9zaXRpb246ImFic29sdXRlIixpbnNldElubGluZVN0YXJ0OjAsaW5zZXRJbmxpbmVFbmQ6MCxwYWRkaW5nOmAwICR7KDAsY3NzaW5qc19lcy5iZikoaW5wdXRQYWRkaW5nSG9yaXpvbnRhbEJhc2UpfWAsIiY6YWZ0ZXIiOntkaXNwbGF5OiJub25lIn19fX19fX1sZXQgcHJlcGFyZUNvbXBvbmVudFRva2VuPXRva2VuPT57bGV0e2ZvbnRTaXplLGxpbmVIZWlnaHQsbGluZVdpZHRoLGNvbnRyb2xIZWlnaHQsY29udHJvbEhlaWdodFNNLGNvbnRyb2xIZWlnaHRMRyxwYWRkaW5nWFhTLGNvbnRyb2xQYWRkaW5nSG9yaXpvbnRhbCx6SW5kZXhQb3B1cEJhc2UsY29sb3JUZXh0LGZvbnRXZWlnaHRTdHJvbmcsY29udHJvbEl0ZW1CZ0FjdGl2ZSxjb250cm9sSXRlbUJnSG92ZXIsY29sb3JCZ0NvbnRhaW5lcixjb2xvckZpbGxTZWNvbmRhcnksY29sb3JCZ0NvbnRhaW5lckRpc2FibGVkLGNvbG9yVGV4dERpc2FibGVkLGNvbG9yUHJpbWFyeUhvdmVyLGNvbG9yUHJpbWFyeSxjb250cm9sT3V0bGluZX09dG9rZW4sZGJsUGFkZGluZ1hYUz0yKnBhZGRpbmdYWFMsZGJsTGluZVdpZHRoPTIqbGluZVdpZHRoO3JldHVybntJTlRFUk5BTF9GSVhFRF9JVEVNX01BUkdJTjpNYXRoLmZsb29yKHBhZGRpbmdYWFMvMiksekluZGV4UG9wdXA6ekluZGV4UG9wdXBCYXNlKzUwLG9wdGlvblNlbGVjdGVkQ29sb3I6Y29sb3JUZXh0LG9wdGlvblNlbGVjdGVkRm9udFdlaWdodDpmb250V2VpZ2h0U3Ryb25nLG9wdGlvblNlbGVjdGVkQmc6Y29udHJvbEl0ZW1CZ0FjdGl2ZSxvcHRpb25BY3RpdmVCZzpjb250cm9sSXRlbUJnSG92ZXIsb3B0aW9uUGFkZGluZzpgJHsoY29udHJvbEhlaWdodC1mb250U2l6ZSpsaW5lSGVpZ2h0KS8yfXB4ICR7Y29udHJvbFBhZGRpbmdIb3Jpem9udGFsfXB4YCxvcHRpb25Gb250U2l6ZTpmb250U2l6ZSxvcHRpb25MaW5lSGVpZ2h0OmxpbmVIZWlnaHQsb3B0aW9uSGVpZ2h0OmNvbnRyb2xIZWlnaHQsc2VsZWN0b3JCZzpjb2xvckJnQ29udGFpbmVyLGNsZWFyQmc6Y29sb3JCZ0NvbnRhaW5lcixzaW5nbGVJdGVtSGVpZ2h0TEc6Y29udHJvbEhlaWdodExHLG11bHRpcGxlSXRlbUJnOmNvbG9yRmlsbFNlY29uZGFyeSxtdWx0aXBsZUl0ZW1Cb3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLG11bHRpcGxlSXRlbUhlaWdodDpNYXRoLm1pbihjb250cm9sSGVpZ2h0LWRibFBhZGRpbmdYWFMsY29udHJvbEhlaWdodC1kYmxMaW5lV2lkdGgpLG11bHRpcGxlSXRlbUhlaWdodFNNOk1hdGgubWluKGNvbnRyb2xIZWlnaHRTTS1kYmxQYWRkaW5nWFhTLGNvbnRyb2xIZWlnaHRTTS1kYmxMaW5lV2lkdGgpLG11bHRpcGxlSXRlbUhlaWdodExHOk1hdGgubWluKGNvbnRyb2xIZWlnaHRMRy1kYmxQYWRkaW5nWFhTLGNvbnRyb2xIZWlnaHRMRy1kYmxMaW5lV2lkdGgpLG11bHRpcGxlU2VsZWN0b3JCZ0Rpc2FibGVkOmNvbG9yQmdDb250YWluZXJEaXNhYmxlZCxtdWx0aXBsZUl0ZW1Db2xvckRpc2FibGVkOmNvbG9yVGV4dERpc2FibGVkLG11bHRpcGxlSXRlbUJvcmRlckNvbG9yRGlzYWJsZWQ6InRyYW5zcGFyZW50IixzaG93QXJyb3dQYWRkaW5nSW5saW5lRW5kOk1hdGguY2VpbCgxLjI1KnRva2VuLmZvbnRTaXplKSxob3ZlckJvcmRlckNvbG9yOmNvbG9yUHJpbWFyeUhvdmVyLGFjdGl2ZUJvcmRlckNvbG9yOmNvbG9yUHJpbWFyeSxhY3RpdmVPdXRsaW5lQ29sb3I6Y29udHJvbE91dGxpbmUsc2VsZWN0QWZmaXhQYWRkaW5nOnBhZGRpbmdYWFN9fSxnZW5CYXNlT3V0bGluZWRTdHlsZT0odG9rZW4sb3B0aW9ucyk9PntsZXR7Y29tcG9uZW50Q2xzLGFudENscyxjb250cm9sT3V0bGluZVdpZHRofT10b2tlbjtyZXR1cm57W2AmOm5vdCgke2NvbXBvbmVudENsc30tY3VzdG9taXplLWlucHV0KSAke2NvbXBvbmVudENsc30tc2VsZWN0b3JgXTp7Ym9yZGVyOmAkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLmxpbmVXaWR0aCl9ICR7dG9rZW4ubGluZVR5cGV9ICR7b3B0aW9ucy5ib3JkZXJDb2xvcn1gLGJhY2tncm91bmQ6dG9rZW4uc2VsZWN0b3JCZ30sW2AmOm5vdCgke2NvbXBvbmVudENsc30tZGlzYWJsZWQpOm5vdCgke2NvbXBvbmVudENsc30tY3VzdG9taXplLWlucHV0KTpub3QoJHthbnRDbHN9LXBhZ2luYXRpb24tc2l6ZS1jaGFuZ2VyKWBdOntbYCY6aG92ZXIgJHtjb21wb25lbnRDbHN9LXNlbGVjdG9yYF06e2JvcmRlckNvbG9yOm9wdGlvbnMuaG92ZXJCb3JkZXJIb3Zlcn0sW2Ake2NvbXBvbmVudENsc30tZm9jdXNlZCYgJHtjb21wb25lbnRDbHN9LXNlbGVjdG9yYF06e2JvcmRlckNvbG9yOm9wdGlvbnMuYWN0aXZlQm9yZGVyQ29sb3IsYm94U2hhZG93OmAwIDAgMCAkeygwLGNzc2luanNfZXMuYmYpKGNvbnRyb2xPdXRsaW5lV2lkdGgpfSAke29wdGlvbnMuYWN0aXZlT3V0bGluZUNvbG9yfWAsb3V0bGluZTowfSxbYCR7Y29tcG9uZW50Q2xzfS1wcmVmaXhgXTp7Y29sb3I6b3B0aW9ucy5jb2xvcn19fX0sZ2VuT3V0bGluZWRTdGF0dXNTdHlsZT0odG9rZW4sb3B0aW9ucyk9Pih7W2AmJHt0b2tlbi5jb21wb25lbnRDbHN9LXN0YXR1cy0ke29wdGlvbnMuc3RhdHVzfWBdOk9iamVjdC5hc3NpZ24oe30sZ2VuQmFzZU91dGxpbmVkU3R5bGUodG9rZW4sb3B0aW9ucykpfSksZ2VuT3V0bGluZWRTdHlsZT10b2tlbj0+KHsiJi1vdXRsaW5lZCI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnZW5CYXNlT3V0bGluZWRTdHlsZSh0b2tlbix7Ym9yZGVyQ29sb3I6dG9rZW4uY29sb3JCb3JkZXIsaG92ZXJCb3JkZXJIb3Zlcjp0b2tlbi5ob3ZlckJvcmRlckNvbG9yLGFjdGl2ZUJvcmRlckNvbG9yOnRva2VuLmFjdGl2ZUJvcmRlckNvbG9yLGFjdGl2ZU91dGxpbmVDb2xvcjp0b2tlbi5hY3RpdmVPdXRsaW5lQ29sb3IsY29sb3I6dG9rZW4uY29sb3JUZXh0fSkpLGdlbk91dGxpbmVkU3RhdHVzU3R5bGUodG9rZW4se3N0YXR1czoiZXJyb3IiLGJvcmRlckNvbG9yOnRva2VuLmNvbG9yRXJyb3IsaG92ZXJCb3JkZXJIb3Zlcjp0b2tlbi5jb2xvckVycm9ySG92ZXIsYWN0aXZlQm9yZGVyQ29sb3I6dG9rZW4uY29sb3JFcnJvcixhY3RpdmVPdXRsaW5lQ29sb3I6dG9rZW4uY29sb3JFcnJvck91dGxpbmUsY29sb3I6dG9rZW4uY29sb3JFcnJvcn0pKSxnZW5PdXRsaW5lZFN0YXR1c1N0eWxlKHRva2VuLHtzdGF0dXM6Indhcm5pbmciLGJvcmRlckNvbG9yOnRva2VuLmNvbG9yV2FybmluZyxob3ZlckJvcmRlckhvdmVyOnRva2VuLmNvbG9yV2FybmluZ0hvdmVyLGFjdGl2ZUJvcmRlckNvbG9yOnRva2VuLmNvbG9yV2FybmluZyxhY3RpdmVPdXRsaW5lQ29sb3I6dG9rZW4uY29sb3JXYXJuaW5nT3V0bGluZSxjb2xvcjp0b2tlbi5jb2xvcldhcm5pbmd9KSkse1tgJiR7dG9rZW4uY29tcG9uZW50Q2xzfS1kaXNhYmxlZGBdOntbYCY6bm90KCR7dG9rZW4uY29tcG9uZW50Q2xzfS1jdXN0b21pemUtaW5wdXQpICR7dG9rZW4uY29tcG9uZW50Q2xzfS1zZWxlY3RvcmBdOntiYWNrZ3JvdW5kOnRva2VuLmNvbG9yQmdDb250YWluZXJEaXNhYmxlZCxjb2xvcjp0b2tlbi5jb2xvclRleHREaXNhYmxlZH19LFtgJiR7dG9rZW4uY29tcG9uZW50Q2xzfS1tdWx0aXBsZSAke3Rva2VuLmNvbXBvbmVudENsc30tc2VsZWN0aW9uLWl0ZW1gXTp7YmFja2dyb3VuZDp0b2tlbi5tdWx0aXBsZUl0ZW1CZyxib3JkZXI6YCR7KDAsY3NzaW5qc19lcy5iZikodG9rZW4ubGluZVdpZHRoKX0gJHt0b2tlbi5saW5lVHlwZX0gJHt0b2tlbi5tdWx0aXBsZUl0ZW1Cb3JkZXJDb2xvcn1gfX0pfSksZ2VuQmFzZUZpbGxlZFN0eWxlPSh0b2tlbixvcHRpb25zKT0+e2xldHtjb21wb25lbnRDbHMsYW50Q2xzfT10b2tlbjtyZXR1cm57W2AmOm5vdCgke2NvbXBvbmVudENsc30tY3VzdG9taXplLWlucHV0KSAke2NvbXBvbmVudENsc30tc2VsZWN0b3JgXTp7YmFja2dyb3VuZDpvcHRpb25zLmJnLGJvcmRlcjpgJHsoMCxjc3NpbmpzX2VzLmJmKSh0b2tlbi5saW5lV2lkdGgpfSAke3Rva2VuLmxpbmVUeXBlfSB0cmFuc3BhcmVudGAsY29sb3I6b3B0aW9ucy5jb2xvcn0sW2AmOm5vdCgke2NvbXBvbmVudENsc30tZGlzYWJsZWQpOm5vdCgke2NvbXBvbmVudENsc30tY3VzdG9taXplLWlucHV0KTpub3QoJHthbnRDbHN9LXBhZ2luYXRpb24tc2l6ZS1jaGFuZ2VyKWBdOntbYCY6aG92ZXIgJHtjb21wb25lbnRDbHN9LXNlbGVjdG9yYF06e2JhY2tncm91bmQ6b3B0aW9ucy5ob3ZlckJnfSxbYCR7Y29tcG9uZW50Q2xzfS1mb2N1c2VkJiAke2NvbXBvbmVudENsc30tc2VsZWN0b3JgXTp7YmFja2dyb3VuZDp0b2tlbi5zZWxlY3RvckJnLGJvcmRlckNvbG9yOm9wdGlvbnMuYWN0aXZlQm9yZGVyQ29sb3Isb3V0bGluZTowfX19fSxnZW5GaWxsZWRTdGF0dXNTdHlsZT0odG9rZW4sb3B0aW9ucyk9Pih7W2AmJHt0b2tlbi5jb21wb25lbnRDbHN9LXN0YXR1cy0ke29wdGlvbnMuc3RhdHVzfWBdOk9iamVjdC5hc3NpZ24oe30sZ2VuQmFzZUZpbGxlZFN0eWxlKHRva2VuLG9wdGlvbnMpKX0pLGdlbkZpbGxlZFN0eWxlPXRva2VuPT4oeyImLWZpbGxlZCI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnZW5CYXNlRmlsbGVkU3R5bGUodG9rZW4se2JnOnRva2VuLmNvbG9yRmlsbFRlcnRpYXJ5LGhvdmVyQmc6dG9rZW4uY29sb3JGaWxsU2Vjb25kYXJ5LGFjdGl2ZUJvcmRlckNvbG9yOnRva2VuLmFjdGl2ZUJvcmRlckNvbG9yLGNvbG9yOnRva2VuLmNvbG9yVGV4dH0pKSxnZW5GaWxsZWRTdGF0dXNTdHlsZSh0b2tlbix7c3RhdHVzOiJlcnJvciIsYmc6dG9rZW4uY29sb3JFcnJvckJnLGhvdmVyQmc6dG9rZW4uY29sb3JFcnJvckJnSG92ZXIsYWN0aXZlQm9yZGVyQ29sb3I6dG9rZW4uY29sb3JFcnJvcixjb2xvcjp0b2tlbi5jb2xvckVycm9yfSkpLGdlbkZpbGxlZFN0YXR1c1N0eWxlKHRva2VuLHtzdGF0dXM6Indhcm5pbmciLGJnOnRva2VuLmNvbG9yV2FybmluZ0JnLGhvdmVyQmc6dG9rZW4uY29sb3JXYXJuaW5nQmdIb3ZlcixhY3RpdmVCb3JkZXJDb2xvcjp0b2tlbi5jb2xvcldhcm5pbmcsY29sb3I6dG9rZW4uY29sb3JXYXJuaW5nfSkpLHtbYCYke3Rva2VuLmNvbXBvbmVudENsc30tZGlzYWJsZWRgXTp7W2AmOm5vdCgke3Rva2VuLmNvbXBvbmVudENsc30tY3VzdG9taXplLWlucHV0KSAke3Rva2VuLmNvbXBvbmVudENsc30tc2VsZWN0b3JgXTp7Ym9yZGVyQ29sb3I6dG9rZW4uY29sb3JCb3JkZXIsYmFja2dyb3VuZDp0b2tlbi5jb2xvckJnQ29udGFpbmVyRGlzYWJsZWQsY29sb3I6dG9rZW4uY29sb3JUZXh0RGlzYWJsZWR9fSxbYCYke3Rva2VuLmNvbXBvbmVudENsc30tbXVsdGlwbGUgJHt0b2tlbi5jb21wb25lbnRDbHN9LXNlbGVjdGlvbi1pdGVtYF06e2JhY2tncm91bmQ6dG9rZW4uY29sb3JCZ0NvbnRhaW5lcixib3JkZXI6YCR7KDAsY3NzaW5qc19lcy5iZikodG9rZW4ubGluZVdpZHRoKX0gJHt0b2tlbi5saW5lVHlwZX0gJHt0b2tlbi5jb2xvclNwbGl0fWB9fSl9KSxnZW5Cb3JkZXJsZXNzU3R5bGU9dG9rZW49Pih7IiYtYm9yZGVybGVzcyI6e1tgJHt0b2tlbi5jb21wb25lbnRDbHN9LXNlbGVjdG9yYF06e2JhY2tncm91bmQ6InRyYW5zcGFyZW50Iixib3JkZXI6YCR7KDAsY3NzaW5qc19lcy5iZikodG9rZW4ubGluZVdpZHRoKX0gJHt0b2tlbi5saW5lVHlwZX0gdHJhbnNwYXJlbnRgfSxbYCYke3Rva2VuLmNvbXBvbmVudENsc30tZGlzYWJsZWRgXTp7W2AmOm5vdCgke3Rva2VuLmNvbXBvbmVudENsc30tY3VzdG9taXplLWlucHV0KSAke3Rva2VuLmNvbXBvbmVudENsc30tc2VsZWN0b3JgXTp7Y29sb3I6dG9rZW4uY29sb3JUZXh0RGlzYWJsZWR9fSxbYCYke3Rva2VuLmNvbXBvbmVudENsc30tbXVsdGlwbGUgJHt0b2tlbi5jb21wb25lbnRDbHN9LXNlbGVjdGlvbi1pdGVtYF06e2JhY2tncm91bmQ6dG9rZW4ubXVsdGlwbGVJdGVtQmcsYm9yZGVyOmAkeygwLGNzc2luanNfZXMuYmYpKHRva2VuLmxpbmVXaWR0aCl9ICR7dG9rZW4ubGluZVR5cGV9ICR7dG9rZW4ubXVsdGlwbGVJdGVtQm9yZGVyQ29sb3J9YH0sW2AmJHt0b2tlbi5jb21wb25lbnRDbHN9LXN0YXR1cy1lcnJvcmBdOntbYCR7dG9rZW4uY29tcG9uZW50Q2xzfS1wcmVmaXgsICR7dG9rZW4uY29tcG9uZW50Q2xzfS1zZWxlY3Rpb24taXRlbWBdOntjb2xvcjp0b2tlbi5jb2xvckVycm9yfX0sW2AmJHt0b2tlbi5jb21wb25lbnRDbHN9LXN0YXR1cy13YXJuaW5nYF06e1tgJHt0b2tlbi5jb21wb25lbnRDbHN9LXByZWZpeCwgJHt0b2tlbi5jb21wb25lbnRDbHN9LXNlbGVjdGlvbi1pdGVtYF06e2NvbG9yOnRva2VuLmNvbG9yV2FybmluZ319fX0pLGdlbkJhc2VVbmRlcmxpbmVkU3R5bGU9KHRva2VuLG9wdGlvbnMpPT57bGV0e2NvbXBvbmVudENscyxhbnRDbHN9PXRva2VuO3JldHVybntbYCY6bm90KCR7Y29tcG9uZW50Q2xzfS1jdXN0b21pemUtaW5wdXQpICR7Y29tcG9uZW50Q2xzfS1zZWxlY3RvcmBdOntib3JkZXJXaWR0aDpgMCAwICR7KDAsY3NzaW5qc19lcy5iZikodG9rZW4ubGluZVdpZHRoKX0gMGAsYm9yZGVyU3R5bGU6YG5vbmUgbm9uZSAke3Rva2VuLmxpbmVUeXBlfSBub25lYCxib3JkZXJDb2xvcjpvcHRpb25zLmJvcmRlckNvbG9yLGJhY2tncm91bmQ6dG9rZW4uc2VsZWN0b3JCZyxib3JkZXJSYWRpdXM6MH0sW2AmOm5vdCgke2NvbXBvbmVudENsc30tZGlzYWJsZWQpOm5vdCgke2NvbXBvbmVudENsc30tY3VzdG9taXplLWlucHV0KTpub3QoJHthbnRDbHN9LXBhZ2luYXRpb24tc2l6ZS1jaGFuZ2VyKWBdOntbYCY6aG92ZXIgJHtjb21wb25lbnRDbHN9LXNlbGVjdG9yYF06e2JvcmRlckNvbG9yOm9wdGlvbnMuaG92ZXJCb3JkZXJIb3Zlcn0sW2Ake2NvbXBvbmVudENsc30tZm9jdXNlZCYgJHtjb21wb25lbnRDbHN9LXNlbGVjdG9yYF06e2JvcmRlckNvbG9yOm9wdGlvbnMuYWN0aXZlQm9yZGVyQ29sb3Isb3V0bGluZTowfSxbYCR7Y29tcG9uZW50Q2xzfS1wcmVmaXhgXTp7Y29sb3I6b3B0aW9ucy5jb2xvcn19fX0sZ2VuVW5kZXJsaW5lZFN0YXR1c1N0eWxlPSh0b2tlbixvcHRpb25zKT0+KHtbYCYke3Rva2VuLmNvbXBvbmVudENsc30tc3RhdHVzLSR7b3B0aW9ucy5zdGF0dXN9YF06T2JqZWN0LmFzc2lnbih7fSxnZW5CYXNlVW5kZXJsaW5lZFN0eWxlKHRva2VuLG9wdGlvbnMpKX0pLGdlblVuZGVybGluZWRTdHlsZT10b2tlbj0+KHsiJi11bmRlcmxpbmVkIjpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGdlbkJhc2VVbmRlcmxpbmVkU3R5bGUodG9rZW4se2JvcmRlckNvbG9yOnRva2VuLmNvbG9yQm9yZGVyLGhvdmVyQm9yZGVySG92ZXI6dG9rZW4uaG92ZXJCb3JkZXJDb2xvcixhY3RpdmVCb3JkZXJDb2xvcjp0b2tlbi5hY3RpdmVCb3JkZXJDb2xvcixhY3RpdmVPdXRsaW5lQ29sb3I6dG9rZW4uYWN0aXZlT3V0bGluZUNvbG9yLGNvbG9yOnRva2VuLmNvbG9yVGV4dH0pKSxnZW5VbmRlcmxpbmVkU3RhdHVzU3R5bGUodG9rZW4se3N0YXR1czoiZXJyb3IiLGJvcmRlckNvbG9yOnRva2VuLmNvbG9yRXJyb3IsaG92ZXJCb3JkZXJIb3Zlcjp0b2tlbi5jb2xvckVycm9ySG92ZXIsYWN0aXZlQm9yZGVyQ29sb3I6dG9rZW4uY29sb3JFcnJvcixhY3RpdmVPdXRsaW5lQ29sb3I6dG9rZW4uY29sb3JFcnJvck91dGxpbmUsY29sb3I6dG9rZW4uY29sb3JFcnJvcn0pKSxnZW5VbmRlcmxpbmVkU3RhdHVzU3R5bGUodG9rZW4se3N0YXR1czoid2FybmluZyIsYm9yZGVyQ29sb3I6dG9rZW4uY29sb3JXYXJuaW5nLGhvdmVyQm9yZGVySG92ZXI6dG9rZW4uY29sb3JXYXJuaW5nSG92ZXIsYWN0aXZlQm9yZGVyQ29sb3I6dG9rZW4uY29sb3JXYXJuaW5nLGFjdGl2ZU91dGxpbmVDb2xvcjp0b2tlbi5jb2xvcldhcm5pbmdPdXRsaW5lLGNvbG9yOnRva2VuLmNvbG9yV2FybmluZ30pKSx7W2AmJHt0b2tlbi5jb21wb25lbnRDbHN9LWRpc2FibGVkYF06e1tgJjpub3QoJHt0b2tlbi5jb21wb25lbnRDbHN9LWN1c3RvbWl6ZS1pbnB1dCkgJHt0b2tlbi5jb21wb25lbnRDbHN9LXNlbGVjdG9yYF06e2NvbG9yOnRva2VuLmNvbG9yVGV4dERpc2FibGVkfX0sW2AmJHt0b2tlbi5jb21wb25lbnRDbHN9LW11bHRpcGxlICR7dG9rZW4uY29tcG9uZW50Q2xzfS1zZWxlY3Rpb24taXRlbWBdOntiYWNrZ3JvdW5kOnRva2VuLm11bHRpcGxlSXRlbUJnLGJvcmRlcjpgJHsoMCxjc3NpbmpzX2VzLmJmKSh0b2tlbi5saW5lV2lkdGgpfSAke3Rva2VuLmxpbmVUeXBlfSAke3Rva2VuLm11bHRpcGxlSXRlbUJvcmRlckNvbG9yfWB9fSl9KSxnZW5WYXJpYW50c1N0eWxlPXRva2VuPT4oe1t0b2tlbi5jb21wb25lbnRDbHNdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZ2VuT3V0bGluZWRTdHlsZSh0b2tlbikpLGdlbkZpbGxlZFN0eWxlKHRva2VuKSksZ2VuQm9yZGVybGVzc1N0eWxlKHRva2VuKSksZ2VuVW5kZXJsaW5lZFN0eWxlKHRva2VuKSl9KSxnZW5TZWxlY3RvclN0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENsc309dG9rZW47cmV0dXJue3Bvc2l0aW9uOiJyZWxhdGl2ZSIsdHJhbnNpdGlvbjpgYWxsICR7dG9rZW4ubW90aW9uRHVyYXRpb25NaWR9ICR7dG9rZW4ubW90aW9uRWFzZUluT3V0fWAsaW5wdXQ6e2N1cnNvcjoicG9pbnRlciJ9LFtgJHtjb21wb25lbnRDbHN9LXNob3ctc2VhcmNoJmBdOntjdXJzb3I6InRleHQiLGlucHV0OntjdXJzb3I6ImF1dG8iLGNvbG9yOiJpbmhlcml0IixoZWlnaHQ6IjEwMCUifX0sW2Ake2NvbXBvbmVudENsc30tZGlzYWJsZWQmYF06e2N1cnNvcjoibm90LWFsbG93ZWQiLGlucHV0OntjdXJzb3I6Im5vdC1hbGxvd2VkIn19fX0sZ2V0U2VhcmNoSW5wdXRXaXRob3V0Qm9yZGVyU3R5bGU9dG9rZW49PntsZXR7Y29tcG9uZW50Q2xzfT10b2tlbjtyZXR1cm57W2Ake2NvbXBvbmVudENsc30tc2VsZWN0aW9uLXNlYXJjaC1pbnB1dGBdOnttYXJnaW46MCxwYWRkaW5nOjAsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGJvcmRlcjoibm9uZSIsb3V0bGluZToibm9uZSIsYXBwZWFyYW5jZToibm9uZSIsZm9udEZhbWlseToiaW5oZXJpdCIsIiY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24iOntkaXNwbGF5OiJub25lIixhcHBlYXJhbmNlOiJub25lIn19fX0sZ2VuQmFzZVN0eWxlPXRva2VuPT57bGV0e2FudENscyxjb21wb25lbnRDbHMsaW5wdXRQYWRkaW5nSG9yaXpvbnRhbEJhc2UsaWNvbkNsc309dG9rZW4saG92ZXJTaG93Q2xlYXJTdHlsZT17W2Ake2NvbXBvbmVudENsc30tY2xlYXJgXTp7b3BhY2l0eToxLGJhY2tncm91bmQ6dG9rZW4uY29sb3JCZ0Jhc2UsYm9yZGVyUmFkaXVzOiI1MCUifX07cmV0dXJue1tjb21wb25lbnRDbHNdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxzdHlsZS5XZikodG9rZW4pKSx7cG9zaXRpb246InJlbGF0aXZlIixkaXNwbGF5OiJpbmxpbmUtZmxleCIsY3Vyc29yOiJwb2ludGVyIixbYCY6bm90KCR7Y29tcG9uZW50Q2xzfS1jdXN0b21pemUtaW5wdXQpICR7Y29tcG9uZW50Q2xzfS1zZWxlY3RvcmBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnZW5TZWxlY3RvclN0eWxlKHRva2VuKSksZ2V0U2VhcmNoSW5wdXRXaXRob3V0Qm9yZGVyU3R5bGUodG9rZW4pKSxbYCR7Y29tcG9uZW50Q2xzfS1zZWxlY3Rpb24taXRlbWBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7ZmxleDoxLGZvbnRXZWlnaHQ6Im5vcm1hbCIscG9zaXRpb246InJlbGF0aXZlIix1c2VyU2VsZWN0OiJub25lIn0sc3R5bGUudlMpLHtbYD4gJHthbnRDbHN9LXR5cG9ncmFwaHlgXTp7ZGlzcGxheToiaW5saW5lIn19KSxbYCR7Y29tcG9uZW50Q2xzfS1zZWxlY3Rpb24tcGxhY2Vob2xkZXJgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sc3R5bGUudlMpLHtmbGV4OjEsY29sb3I6dG9rZW4uY29sb3JUZXh0UGxhY2Vob2xkZXIscG9pbnRlckV2ZW50czoibm9uZSJ9KSxbYCR7Y29tcG9uZW50Q2xzfS1hcnJvd2BdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwoMCxzdHlsZS5SbykoKSkse3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOiI1MCUiLGluc2V0SW5saW5lU3RhcnQ6ImF1dG8iLGluc2V0SW5saW5lRW5kOmlucHV0UGFkZGluZ0hvcml6b250YWxCYXNlLGhlaWdodDp0b2tlbi5mb250U2l6ZUljb24sbWFyZ2luVG9wOnRva2VuLmNhbGModG9rZW4uZm9udFNpemVJY29uKS5tdWwoLTEpLmRpdigyKS5lcXVhbCgpLGNvbG9yOnRva2VuLmNvbG9yVGV4dFF1YXRlcm5hcnksZm9udFNpemU6dG9rZW4uZm9udFNpemVJY29uLGxpbmVIZWlnaHQ6MSx0ZXh0QWxpZ246ImNlbnRlciIscG9pbnRlckV2ZW50czoibm9uZSIsZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIix0cmFuc2l0aW9uOmBvcGFjaXR5ICR7dG9rZW4ubW90aW9uRHVyYXRpb25TbG93fSBlYXNlYCxbaWNvbkNsc106e3ZlcnRpY2FsQWxpZ246InRvcCIsdHJhbnNpdGlvbjpgdHJhbnNmb3JtICR7dG9rZW4ubW90aW9uRHVyYXRpb25TbG93fWAsIj4gc3ZnIjp7dmVydGljYWxBbGlnbjoidG9wIn0sW2AmOm5vdCgke2NvbXBvbmVudENsc30tc3VmZml4KWBdOntwb2ludGVyRXZlbnRzOiJhdXRvIn19LFtgJHtjb21wb25lbnRDbHN9LWRpc2FibGVkICZgXTp7Y3Vyc29yOiJub3QtYWxsb3dlZCJ9LCI+ICo6bm90KDpsYXN0LWNoaWxkKSI6e21hcmdpbklubGluZUVuZDo4fX0pLFtgJHtjb21wb25lbnRDbHN9LXNlbGVjdGlvbi13cmFwYF06e2Rpc3BsYXk6ImZsZXgiLHdpZHRoOiIxMDAlIixwb3NpdGlvbjoicmVsYXRpdmUiLG1pbldpZHRoOjAsIiY6YWZ0ZXIiOntjb250ZW50OiciXFxhMCInLHdpZHRoOjAsb3ZlcmZsb3c6ImhpZGRlbiJ9fSxbYCR7Y29tcG9uZW50Q2xzfS1wcmVmaXhgXTp7ZmxleDoibm9uZSIsbWFyZ2luSW5saW5lRW5kOnRva2VuLnNlbGVjdEFmZml4UGFkZGluZ30sW2Ake2NvbXBvbmVudENsc30tY2xlYXJgXTp7cG9zaXRpb246ImFic29sdXRlIix0b3A6IjUwJSIsaW5zZXRJbmxpbmVTdGFydDoiYXV0byIsaW5zZXRJbmxpbmVFbmQ6aW5wdXRQYWRkaW5nSG9yaXpvbnRhbEJhc2UsekluZGV4OjEsZGlzcGxheToiaW5saW5lLWJsb2NrIix3aWR0aDp0b2tlbi5mb250U2l6ZUljb24saGVpZ2h0OnRva2VuLmZvbnRTaXplSWNvbixtYXJnaW5Ub3A6dG9rZW4uY2FsYyh0b2tlbi5mb250U2l6ZUljb24pLm11bCgtMSkuZGl2KDIpLmVxdWFsKCksY29sb3I6dG9rZW4uY29sb3JUZXh0UXVhdGVybmFyeSxmb250U2l6ZTp0b2tlbi5mb250U2l6ZUljb24sZm9udFN0eWxlOiJub3JtYWwiLGxpbmVIZWlnaHQ6MSx0ZXh0QWxpZ246ImNlbnRlciIsdGV4dFRyYW5zZm9ybToibm9uZSIsY3Vyc29yOiJwb2ludGVyIixvcGFjaXR5OjAsdHJhbnNpdGlvbjpgY29sb3IgJHt0b2tlbi5tb3Rpb25EdXJhdGlvbk1pZH0gZWFzZSwgb3BhY2l0eSAke3Rva2VuLm1vdGlvbkR1cmF0aW9uU2xvd30gZWFzZWAsdGV4dFJlbmRlcmluZzoiYXV0byIsIiY6YmVmb3JlIjp7ZGlzcGxheToiYmxvY2sifSwiJjpob3ZlciI6e2NvbG9yOnRva2VuLmNvbG9ySWNvbn19LCJAbWVkaWEoaG92ZXI6bm9uZSkiOmhvdmVyU2hvd0NsZWFyU3R5bGUsIiY6aG92ZXIiOmhvdmVyU2hvd0NsZWFyU3R5bGV9KSxbYCR7Y29tcG9uZW50Q2xzfS1zdGF0dXNgXTp7IiYtZXJyb3IsICYtd2FybmluZywgJi1zdWNjZXNzLCAmLXZhbGlkYXRpbmciOntbYCYke2NvbXBvbmVudENsc30taGFzLWZlZWRiYWNrYF06e1tgJHtjb21wb25lbnRDbHN9LWNsZWFyYF06e2luc2V0SW5saW5lRW5kOnRva2VuLmNhbGMoaW5wdXRQYWRkaW5nSG9yaXpvbnRhbEJhc2UpLmFkZCh0b2tlbi5mb250U2l6ZSkuYWRkKHRva2VuLnBhZGRpbmdYUykuZXF1YWwoKX19fX19fSxnZW5TZWxlY3RTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHN9PXRva2VuO3JldHVyblt7W2NvbXBvbmVudENsc106e1tgJiR7Y29tcG9uZW50Q2xzfS1pbi1mb3JtLWl0ZW1gXTp7d2lkdGg6IjEwMCUifX19LGdlbkJhc2VTdHlsZSh0b2tlbiksZnVuY3Rpb24odG9rZW4pe2xldHtjb21wb25lbnRDbHN9PXRva2VuLGlucHV0UGFkZGluZ0hvcml6b250YWxTTT10b2tlbi5jYWxjKHRva2VuLmNvbnRyb2xQYWRkaW5nSG9yaXpvbnRhbFNNKS5zdWIodG9rZW4ubGluZVdpZHRoKS5lcXVhbCgpO3JldHVybltnZW5TaXplU3R5bGUodG9rZW4pLGdlblNpemVTdHlsZSgoMCxjc3NpbmpzX3V0aWxzX2VzLklYKSh0b2tlbix7Y29udHJvbEhlaWdodDp0b2tlbi5jb250cm9sSGVpZ2h0U00sYm9yZGVyUmFkaXVzOnRva2VuLmJvcmRlclJhZGl1c1NNfSksInNtIikse1tgJHtjb21wb25lbnRDbHN9LXNpbmdsZSR7Y29tcG9uZW50Q2xzfS1zbWBdOntbYCY6bm90KCR7Y29tcG9uZW50Q2xzfS1jdXN0b21pemUtaW5wdXQpYF06e1tgJHtjb21wb25lbnRDbHN9LXNlbGVjdG9yYF06e3BhZGRpbmc6YDAgJHsoMCxjc3NpbmpzX2VzLmJmKShpbnB1dFBhZGRpbmdIb3Jpem9udGFsU00pfWB9LFtgJiR7Y29tcG9uZW50Q2xzfS1zaG93LWFycm93ICR7Y29tcG9uZW50Q2xzfS1zZWxlY3Rpb24tc2VhcmNoYF06e2luc2V0SW5saW5lRW5kOnRva2VuLmNhbGMoaW5wdXRQYWRkaW5nSG9yaXpvbnRhbFNNKS5hZGQodG9rZW4uY2FsYyh0b2tlbi5mb250U2l6ZSkubXVsKDEuNSkpLmVxdWFsKCl9LFtgCiAgICAgICAgICAgICYke2NvbXBvbmVudENsc30tc2hvdy1hcnJvdyAke2NvbXBvbmVudENsc30tc2VsZWN0aW9uLWl0ZW0sCiAgICAgICAgICAgICYke2NvbXBvbmVudENsc30tc2hvdy1hcnJvdyAke2NvbXBvbmVudENsc30tc2VsZWN0aW9uLXBsYWNlaG9sZGVyCiAgICAgICAgICBgXTp7cGFkZGluZ0lubGluZUVuZDp0b2tlbi5jYWxjKHRva2VuLmZvbnRTaXplKS5tdWwoMS41KS5lcXVhbCgpfX19fSxnZW5TaXplU3R5bGUoKDAsY3NzaW5qc191dGlsc19lcy5JWCkodG9rZW4se2NvbnRyb2xIZWlnaHQ6dG9rZW4uc2luZ2xlSXRlbUhlaWdodExHLGZvbnRTaXplOnRva2VuLmZvbnRTaXplTEcsYm9yZGVyUmFkaXVzOnRva2VuLmJvcmRlclJhZGl1c0xHfSksImxnIildfSh0b2tlbiksKDAsbXVsdGlwbGUuWlApKHRva2VuKSxnZW5TaW5nbGVTdHlsZSh0b2tlbikse1tgJHtjb21wb25lbnRDbHN9LXJ0bGBdOntkaXJlY3Rpb246InJ0bCJ9fSwoMCxjb21wYWN0X2l0ZW0uYykodG9rZW4se2JvcmRlckVsQ2xzOmAke2NvbXBvbmVudENsc30tc2VsZWN0b3JgLGZvY3VzRWxDbHM6YCR7Y29tcG9uZW50Q2xzfS1mb2N1c2VkYH0pXX07dmFyIHNlbGVjdF9zdHlsZT0oMCxnZW5TdHlsZVV0aWxzLkkkKSgiU2VsZWN0IiwodG9rZW4sX3JlZik9PntsZXR7cm9vdFByZWZpeENsc309X3JlZixzZWxlY3RUb2tlbj0oMCxjc3NpbmpzX3V0aWxzX2VzLklYKSh0b2tlbix7cm9vdFByZWZpeENscyxpbnB1dFBhZGRpbmdIb3Jpem9udGFsQmFzZTp0b2tlbi5jYWxjKHRva2VuLnBhZGRpbmdTTSkuc3ViKDEpLmVxdWFsKCksbXVsdGlwbGVTZWxlY3RJdGVtSGVpZ2h0OnRva2VuLm11bHRpcGxlSXRlbUhlaWdodCxzZWxlY3RIZWlnaHQ6dG9rZW4uY29udHJvbEhlaWdodH0pO3JldHVybltnZW5TZWxlY3RTdHlsZShzZWxlY3RUb2tlbiksZ2VuVmFyaWFudHNTdHlsZShzZWxlY3RUb2tlbildfSxwcmVwYXJlQ29tcG9uZW50VG9rZW4se3VuaXRsZXNzOntvcHRpb25MaW5lSGVpZ2h0OiEwLG9wdGlvblNlbGVjdGVkRm9udFdlaWdodDohMH19KSx1c2VJY29ucz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQzMjc3KSxzZWxlY3RfcmVzdD1mdW5jdGlvbihzLGUpe3ZhciB0PXt9O2Zvcih2YXIgcCBpbiBzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLHApJiYwPmUuaW5kZXhPZihwKSYmKHRbcF09c1twXSk7aWYobnVsbCE9cyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpZm9yKHZhciBpPTAscD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpO2k8cC5sZW5ndGg7aSsrKTA+ZS5pbmRleE9mKHBbaV0pJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocyxwW2ldKSYmKHRbcFtpXV09c1twW2ldXSk7cmV0dXJuIHR9O2xldCBTRUNSRVRfQ09NQk9CT1hfTU9ERV9ET19OT1RfVVNFPSJTRUNSRVRfQ09NQk9CT1hfTU9ERV9ET19OT1RfVVNFIixJbnRlcm5hbFNlbGVjdD0ocHJvcHMscmVmKT0+e3ZhciBfYSxfYixfYyxfZCxfZSxzdWZmaXhJY29uLHNob3dBcnJvdztsZXQgbWVyZ2VkTm90Rm91bmQ7bGV0e3ByZWZpeENsczpjdXN0b21pemVQcmVmaXhDbHMsYm9yZGVyZWQsY2xhc3NOYW1lLHJvb3RDbGFzc05hbWUsZ2V0UG9wdXBDb250YWluZXIscG9wdXBDbGFzc05hbWUsZHJvcGRvd25DbGFzc05hbWUsbGlzdEhlaWdodD0yNTYscGxhY2VtZW50LGxpc3RJdGVtSGVpZ2h0OmN1c3RvbUxpc3RJdGVtSGVpZ2h0LHNpemU6Y3VzdG9taXplU2l6ZSxkaXNhYmxlZDpjdXN0b21EaXNhYmxlZCxub3RGb3VuZENvbnRlbnQsc3RhdHVzOmN1c3RvbVN0YXR1cyxidWlsdGluUGxhY2VtZW50cyxkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGgscG9wdXBNYXRjaFNlbGVjdFdpZHRoLGRpcmVjdGlvbjpwcm9wRGlyZWN0aW9uLHN0eWxlLGFsbG93Q2xlYXIsdmFyaWFudDpjdXN0b21pemVWYXJpYW50LGRyb3Bkb3duU3R5bGUsdHJhbnNpdGlvbk5hbWUsdGFnUmVuZGVyLG1heENvdW50LHByZWZpeCxkcm9wZG93blJlbmRlcixwb3B1cFJlbmRlcixvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZSxvbk9wZW5DaGFuZ2Usc3R5bGVzLGNsYXNzTmFtZXN9PXByb3BzLHJlc3Q9c2VsZWN0X3Jlc3QocHJvcHMsWyJwcmVmaXhDbHMiLCJib3JkZXJlZCIsImNsYXNzTmFtZSIsInJvb3RDbGFzc05hbWUiLCJnZXRQb3B1cENvbnRhaW5lciIsInBvcHVwQ2xhc3NOYW1lIiwiZHJvcGRvd25DbGFzc05hbWUiLCJsaXN0SGVpZ2h0IiwicGxhY2VtZW50IiwibGlzdEl0ZW1IZWlnaHQiLCJzaXplIiwiZGlzYWJsZWQiLCJub3RGb3VuZENvbnRlbnQiLCJzdGF0dXMiLCJidWlsdGluUGxhY2VtZW50cyIsImRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aCIsInBvcHVwTWF0Y2hTZWxlY3RXaWR0aCIsImRpcmVjdGlvbiIsInN0eWxlIiwiYWxsb3dDbGVhciIsInZhcmlhbnQiLCJkcm9wZG93blN0eWxlIiwidHJhbnNpdGlvbk5hbWUiLCJ0YWdSZW5kZXIiLCJtYXhDb3VudCIsInByZWZpeCIsImRyb3Bkb3duUmVuZGVyIiwicG9wdXBSZW5kZXIiLCJvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZSIsIm9uT3BlbkNoYW5nZSIsInN0eWxlcyIsImNsYXNzTmFtZXMiXSkse2dldFBvcHVwQ29udGFpbmVyOmdldENvbnRleHRQb3B1cENvbnRhaW5lcixnZXRQcmVmaXhDbHMscmVuZGVyRW1wdHksZGlyZWN0aW9uOmNvbnRleHREaXJlY3Rpb24sdmlydHVhbCxwb3B1cE1hdGNoU2VsZWN0V2lkdGg6Y29udGV4dFBvcHVwTWF0Y2hTZWxlY3RXaWR0aCxwb3B1cE92ZXJmbG93fT1yZWFjdC51c2VDb250ZXh0KGNvbnRleHQuRV8pLHtzaG93U2VhcmNoLHN0eWxlOmNvbnRleHRTdHlsZSxzdHlsZXM6Y29udGV4dFN0eWxlcyxjbGFzc05hbWU6Y29udGV4dENsYXNzTmFtZSxjbGFzc05hbWVzOmNvbnRleHRDbGFzc05hbWVzfT0oMCxjb250ZXh0LmRqKSgic2VsZWN0IiksWyx0b2tlbl09KDAsdXNlVG9rZW4uWlApKCksbGlzdEl0ZW1IZWlnaHQ9bnVsbCE9Y3VzdG9tTGlzdEl0ZW1IZWlnaHQ/Y3VzdG9tTGlzdEl0ZW1IZWlnaHQ6bnVsbD09dG9rZW4/dm9pZCAwOnRva2VuLmNvbnRyb2xIZWlnaHQscHJlZml4Q2xzPWdldFByZWZpeENscygic2VsZWN0IixjdXN0b21pemVQcmVmaXhDbHMpLHJvb3RQcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCksZGlyZWN0aW9uPW51bGwhPXByb3BEaXJlY3Rpb24/cHJvcERpcmVjdGlvbjpjb250ZXh0RGlyZWN0aW9uLHtjb21wYWN0U2l6ZSxjb21wYWN0SXRlbUNsYXNzbmFtZXN9PSgwLENvbXBhY3QucmkpKHByZWZpeENscyxkaXJlY3Rpb24pLFt2YXJpYW50LGVuYWJsZVZhcmlhbnRDbHNdPSgwLHVzZVZhcmlhbnRzLlopKCJzZWxlY3QiLGN1c3RvbWl6ZVZhcmlhbnQsYm9yZGVyZWQpLHJvb3RDbHM9KDAsdXNlQ1NTVmFyQ2xzLlopKHByZWZpeENscyksW3dyYXBDU1NWYXIsaGFzaElkLGNzc1ZhckNsc109c2VsZWN0X3N0eWxlKHByZWZpeENscyxyb290Q2xzKSxtb2RlPXJlYWN0LnVzZU1lbW8oKCk9PntsZXR7bW9kZTptfT1wcm9wcztyZXR1cm4iY29tYm9ib3giPT09bT92b2lkIDA6bT09PVNFQ1JFVF9DT01CT0JPWF9NT0RFX0RPX05PVF9VU0U/ImNvbWJvYm94IjptfSxbcHJvcHMubW9kZV0pLGlzTXVsdGlwbGU9Im11bHRpcGxlIj09PW1vZGV8fCJ0YWdzIj09PW1vZGUsc2hvd1N1ZmZpeEljb249KHN1ZmZpeEljb249cHJvcHMuc3VmZml4SWNvbix2b2lkIDAhPT0oc2hvd0Fycm93PXByb3BzLnNob3dBcnJvdyk/c2hvd0Fycm93Om51bGwhPT1zdWZmaXhJY29uKSxtZXJnZWRQb3B1cE1hdGNoU2VsZWN0V2lkdGg9bnVsbCE9PShfYT1udWxsIT1wb3B1cE1hdGNoU2VsZWN0V2lkdGg/cG9wdXBNYXRjaFNlbGVjdFdpZHRoOmRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aCkmJnZvaWQgMCE9PV9hP19hOmNvbnRleHRQb3B1cE1hdGNoU2VsZWN0V2lkdGgsbWVyZ2VkUG9wdXBTdHlsZT0obnVsbD09PShfYj1udWxsPT1zdHlsZXM/dm9pZCAwOnN0eWxlcy5wb3B1cCl8fHZvaWQgMD09PV9iP3ZvaWQgMDpfYi5yb290KXx8KG51bGw9PT0oX2M9Y29udGV4dFN0eWxlcy5wb3B1cCl8fHZvaWQgMD09PV9jP3ZvaWQgMDpfYy5yb290KXx8ZHJvcGRvd25TdHlsZSx7c3RhdHVzOmNvbnRleHRTdGF0dXMsaGFzRmVlZGJhY2ssaXNGb3JtSXRlbUlucHV0LGZlZWRiYWNrSWNvbn09cmVhY3QudXNlQ29udGV4dChmb3JtX2NvbnRleHQuYU0pLG1lcmdlZFN0YXR1cz0oMCxzdGF0dXNVdGlscy5GKShjb250ZXh0U3RhdHVzLGN1c3RvbVN0YXR1cyk7bWVyZ2VkTm90Rm91bmQ9dm9pZCAwIT09bm90Rm91bmRDb250ZW50P25vdEZvdW5kQ29udGVudDoiY29tYm9ib3giPT09bW9kZT9udWxsOihudWxsPT1yZW5kZXJFbXB0eT92b2lkIDA6cmVuZGVyRW1wdHkoIlNlbGVjdCIpKXx8cmVhY3QuY3JlYXRlRWxlbWVudChEZWZhdWx0UmVuZGVyRW1wdHkse2NvbXBvbmVudE5hbWU6IlNlbGVjdCJ9KTtsZXR7c3VmZml4SWNvbjpzdWZmaXhJY29uMSxpdGVtSWNvbixyZW1vdmVJY29uLGNsZWFySWNvbn09KDAsdXNlSWNvbnMuWikoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHJlc3QpLHttdWx0aXBsZTppc011bHRpcGxlLGhhc0ZlZWRiYWNrLGZlZWRiYWNrSWNvbixzaG93U3VmZml4SWNvbixwcmVmaXhDbHMsY29tcG9uZW50TmFtZToiU2VsZWN0In0pKSxzZWxlY3RQcm9wcz0oMCxlc19vbWl0LlopKHJlc3QsWyJzdWZmaXhJY29uIiwiaXRlbUljb24iXSksbWVyZ2VkUG9wdXBDbGFzc05hbWU9Y2xhc3NuYW1lc19kZWZhdWx0KCkoKG51bGw9PT0oX2Q9bnVsbD09Y2xhc3NOYW1lcz92b2lkIDA6Y2xhc3NOYW1lcy5wb3B1cCl8fHZvaWQgMD09PV9kP3ZvaWQgMDpfZC5yb290KXx8KG51bGw9PT0oX2U9bnVsbD09Y29udGV4dENsYXNzTmFtZXM/dm9pZCAwOmNvbnRleHRDbGFzc05hbWVzLnBvcHVwKXx8dm9pZCAwPT09X2U/dm9pZCAwOl9lLnJvb3QpfHxwb3B1cENsYXNzTmFtZXx8ZHJvcGRvd25DbGFzc05hbWUse1tgJHtwcmVmaXhDbHN9LWRyb3Bkb3duLSR7ZGlyZWN0aW9ufWBdOiJydGwiPT09ZGlyZWN0aW9ufSxyb290Q2xhc3NOYW1lLGNvbnRleHRDbGFzc05hbWVzLnJvb3QsbnVsbD09Y2xhc3NOYW1lcz92b2lkIDA6Y2xhc3NOYW1lcy5yb290LGNzc1ZhckNscyxyb290Q2xzLGhhc2hJZCksbWVyZ2VkU2l6ZT0oMCx1c2VTaXplLlopKGN0eD0+e3ZhciBfYTtyZXR1cm4gbnVsbCE9PShfYT1udWxsIT1jdXN0b21pemVTaXplP2N1c3RvbWl6ZVNpemU6Y29tcGFjdFNpemUpJiZ2b2lkIDAhPT1fYT9fYTpjdHh9KSxkaXNhYmxlZD1yZWFjdC51c2VDb250ZXh0KERpc2FibGVkQ29udGV4dC5aKSxtZXJnZWRDbGFzc05hbWU9Y2xhc3NuYW1lc19kZWZhdWx0KCkoe1tgJHtwcmVmaXhDbHN9LWxnYF06ImxhcmdlIj09PW1lcmdlZFNpemUsW2Ake3ByZWZpeENsc30tc21gXToic21hbGwiPT09bWVyZ2VkU2l6ZSxbYCR7cHJlZml4Q2xzfS1ydGxgXToicnRsIj09PWRpcmVjdGlvbixbYCR7cHJlZml4Q2xzfS0ke3ZhcmlhbnR9YF06ZW5hYmxlVmFyaWFudENscyxbYCR7cHJlZml4Q2xzfS1pbi1mb3JtLWl0ZW1gXTppc0Zvcm1JdGVtSW5wdXR9LCgwLHN0YXR1c1V0aWxzLlopKHByZWZpeENscyxtZXJnZWRTdGF0dXMsaGFzRmVlZGJhY2spLGNvbXBhY3RJdGVtQ2xhc3NuYW1lcyxjb250ZXh0Q2xhc3NOYW1lLGNsYXNzTmFtZSxjb250ZXh0Q2xhc3NOYW1lcy5yb290LG51bGw9PWNsYXNzTmFtZXM/dm9pZCAwOmNsYXNzTmFtZXMucm9vdCxyb290Q2xhc3NOYW1lLGNzc1ZhckNscyxyb290Q2xzLGhhc2hJZCksbWVtb1BsYWNlbWVudD1yZWFjdC51c2VNZW1vKCgpPT52b2lkIDAhPT1wbGFjZW1lbnQ/cGxhY2VtZW50OiJydGwiPT09ZGlyZWN0aW9uPyJib3R0b21SaWdodCI6ImJvdHRvbUxlZnQiLFtwbGFjZW1lbnQsZGlyZWN0aW9uXSksW3pJbmRleF09KDAsdXNlWkluZGV4LkNuKSgiU2VsZWN0TGlrZSIsbnVsbD09bWVyZ2VkUG9wdXBTdHlsZT92b2lkIDA6bWVyZ2VkUG9wdXBTdHlsZS56SW5kZXgpO3JldHVybiB3cmFwQ1NTVmFyKHJlYWN0LmNyZWF0ZUVsZW1lbnQoVHlwZWRTZWxlY3QsT2JqZWN0LmFzc2lnbih7cmVmOnJlZix2aXJ0dWFsOnZpcnR1YWwsc2hvd1NlYXJjaDpzaG93U2VhcmNofSxzZWxlY3RQcm9wcyx7c3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjb250ZXh0U3R5bGVzLnJvb3QpLG51bGw9PXN0eWxlcz92b2lkIDA6c3R5bGVzLnJvb3QpLGNvbnRleHRTdHlsZSksc3R5bGUpLGRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aDptZXJnZWRQb3B1cE1hdGNoU2VsZWN0V2lkdGgsdHJhbnNpdGlvbk5hbWU6KDAsbW90aW9uLm0pKHJvb3RQcmVmaXhDbHMsInNsaWRlLXVwIix0cmFuc2l0aW9uTmFtZSksYnVpbHRpblBsYWNlbWVudHM6YnVpbHRpblBsYWNlbWVudHN8fG1lcmdlZEJ1aWx0aW5QbGFjZW1lbnRzX2dldEJ1aWx0SW5QbGFjZW1lbnRzKHBvcHVwT3ZlcmZsb3cpLGxpc3RIZWlnaHQ6bGlzdEhlaWdodCxsaXN0SXRlbUhlaWdodDpsaXN0SXRlbUhlaWdodCxtb2RlOm1vZGUscHJlZml4Q2xzOnByZWZpeENscyxwbGFjZW1lbnQ6bWVtb1BsYWNlbWVudCxkaXJlY3Rpb246ZGlyZWN0aW9uLHByZWZpeDpwcmVmaXgsc3VmZml4SWNvbjpzdWZmaXhJY29uMSxtZW51SXRlbVNlbGVjdGVkSWNvbjppdGVtSWNvbixyZW1vdmVJY29uOnJlbW92ZUljb24sYWxsb3dDbGVhcjohMD09PWFsbG93Q2xlYXI/e2NsZWFySWNvbn06YWxsb3dDbGVhcixub3RGb3VuZENvbnRlbnQ6bWVyZ2VkTm90Rm91bmQsY2xhc3NOYW1lOm1lcmdlZENsYXNzTmFtZSxnZXRQb3B1cENvbnRhaW5lcjpnZXRQb3B1cENvbnRhaW5lcnx8Z2V0Q29udGV4dFBvcHVwQ29udGFpbmVyLGRyb3Bkb3duQ2xhc3NOYW1lOm1lcmdlZFBvcHVwQ2xhc3NOYW1lLGRpc2FibGVkOm51bGwhPWN1c3RvbURpc2FibGVkP2N1c3RvbURpc2FibGVkOmRpc2FibGVkLGRyb3Bkb3duU3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG1lcmdlZFBvcHVwU3R5bGUpLHt6SW5kZXh9KSxtYXhDb3VudDppc011bHRpcGxlP21heENvdW50OnZvaWQgMCx0YWdSZW5kZXI6aXNNdWx0aXBsZT90YWdSZW5kZXI6dm9pZCAwLGRyb3Bkb3duUmVuZGVyOnBvcHVwUmVuZGVyfHxkcm9wZG93blJlbmRlcixvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZTpvbk9wZW5DaGFuZ2V8fG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlfSkpKX0sc2VsZWN0X1NlbGVjdD1yZWFjdC5mb3J3YXJkUmVmKEludGVybmFsU2VsZWN0KSxzZWxlY3RfUHVyZVBhbmVsPSgwLFB1cmVQYW5lbC5aKShzZWxlY3RfU2VsZWN0LCJkcm9wZG93bkFsaWduIik7c2VsZWN0X1NlbGVjdC5TRUNSRVRfQ09NQk9CT1hfTU9ERV9ET19OT1RfVVNFPVNFQ1JFVF9DT01CT0JPWF9NT0RFX0RPX05PVF9VU0Usc2VsZWN0X1NlbGVjdC5PcHRpb249T3B0aW9uLHNlbGVjdF9TZWxlY3QuT3B0R3JvdXA9T3B0R3JvdXAsc2VsZWN0X1NlbGVjdC5fSW50ZXJuYWxQYW5lbERvTm90VXNlT3JZb3VXaWxsQmVGaXJlZD1zZWxlY3RfUHVyZVBhbmVsO3ZhciBlc19zZWxlY3Q9c2VsZWN0X1NlbGVjdH0sMTY5Mjg6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se196OmZ1bmN0aW9uKCl7cmV0dXJuIGdlbk92ZXJmbG93U3R5bGV9LGdwOmZ1bmN0aW9uKCl7cmV0dXJuIGdldE11bHRpcGxlU2VsZWN0b3JVbml0fX0pO3ZhciBfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg0NDg5OSksX3N0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXygxNDc0NyksX3RoZW1lX2ludGVybmFsX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXyg0MjU1OSk7bGV0IGdldE11bHRpcGxlU2VsZWN0b3JVbml0PXRva2VuPT57bGV0e211bHRpcGxlU2VsZWN0SXRlbUhlaWdodCxwYWRkaW5nWFhTLGxpbmVXaWR0aCxJTlRFUk5BTF9GSVhFRF9JVEVNX01BUkdJTn09dG9rZW4sYmFzZVBhZGRpbmc9dG9rZW4ubWF4KHRva2VuLmNhbGMocGFkZGluZ1hYUykuc3ViKGxpbmVXaWR0aCkuZXF1YWwoKSwwKSxjb250YWluZXJQYWRkaW5nPXRva2VuLm1heCh0b2tlbi5jYWxjKGJhc2VQYWRkaW5nKS5zdWIoSU5URVJOQUxfRklYRURfSVRFTV9NQVJHSU4pLmVxdWFsKCksMCk7cmV0dXJue2Jhc2VQYWRkaW5nLGNvbnRhaW5lclBhZGRpbmcsaXRlbUhlaWdodDooMCxfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uYmYpKG11bHRpcGxlU2VsZWN0SXRlbUhlaWdodCksaXRlbUxpbmVIZWlnaHQ6KDAsX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmJmKSh0b2tlbi5jYWxjKG11bHRpcGxlU2VsZWN0SXRlbUhlaWdodCkuc3ViKHRva2VuLmNhbGModG9rZW4ubGluZVdpZHRoKS5tdWwoMikpLmVxdWFsKCkpfX0sZ2V0U2VsZWN0SXRlbVN0eWxlPXRva2VuPT57bGV0e211bHRpcGxlU2VsZWN0SXRlbUhlaWdodCxzZWxlY3RIZWlnaHQsbGluZVdpZHRofT10b2tlbixzZWxlY3RJdGVtRGlzdD10b2tlbi5jYWxjKHNlbGVjdEhlaWdodCkuc3ViKG11bHRpcGxlU2VsZWN0SXRlbUhlaWdodCkuZGl2KDIpLnN1YihsaW5lV2lkdGgpLmVxdWFsKCk7cmV0dXJuIHNlbGVjdEl0ZW1EaXN0fSxnZW5PdmVyZmxvd1N0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENscyxpY29uQ2xzLGJvcmRlclJhZGl1c1NNLG1vdGlvbkR1cmF0aW9uU2xvdyxwYWRkaW5nWFMsbXVsdGlwbGVJdGVtQ29sb3JEaXNhYmxlZCxtdWx0aXBsZUl0ZW1Cb3JkZXJDb2xvckRpc2FibGVkLGNvbG9ySWNvbixjb2xvckljb25Ib3ZlcixJTlRFUk5BTF9GSVhFRF9JVEVNX01BUkdJTn09dG9rZW4sc2VsZWN0T3ZlcmZsb3dQcmVmaXhDbHM9YCR7Y29tcG9uZW50Q2xzfS1zZWxlY3Rpb24tb3ZlcmZsb3dgO3JldHVybntbc2VsZWN0T3ZlcmZsb3dQcmVmaXhDbHNdOntwb3NpdGlvbjoicmVsYXRpdmUiLGRpc3BsYXk6ImZsZXgiLGZsZXg6ImF1dG8iLGZsZXhXcmFwOiJ3cmFwIixtYXhXaWR0aDoiMTAwJSIsIiYtaXRlbSI6e2ZsZXg6Im5vbmUiLGFsaWduU2VsZjoiY2VudGVyIixtYXhXaWR0aDoiMTAwJSIsZGlzcGxheToiaW5saW5lLWZsZXgifSxbYCR7Y29tcG9uZW50Q2xzfS1zZWxlY3Rpb24taXRlbWBdOntkaXNwbGF5OiJmbGV4IixhbGlnblNlbGY6ImNlbnRlciIsZmxleDoibm9uZSIsYm94U2l6aW5nOiJib3JkZXItYm94IixtYXhXaWR0aDoiMTAwJSIsbWFyZ2luQmxvY2s6SU5URVJOQUxfRklYRURfSVRFTV9NQVJHSU4sYm9yZGVyUmFkaXVzOmJvcmRlclJhZGl1c1NNLGN1cnNvcjoiZGVmYXVsdCIsdHJhbnNpdGlvbjpgZm9udC1zaXplICR7bW90aW9uRHVyYXRpb25TbG93fSwgbGluZS1oZWlnaHQgJHttb3Rpb25EdXJhdGlvblNsb3d9LCBoZWlnaHQgJHttb3Rpb25EdXJhdGlvblNsb3d9YCxtYXJnaW5JbmxpbmVFbmQ6dG9rZW4uY2FsYyhJTlRFUk5BTF9GSVhFRF9JVEVNX01BUkdJTikubXVsKDIpLmVxdWFsKCkscGFkZGluZ0lubGluZVN0YXJ0OnBhZGRpbmdYUyxwYWRkaW5nSW5saW5lRW5kOnRva2VuLmNhbGMocGFkZGluZ1hTKS5kaXYoMikuZXF1YWwoKSxbYCR7Y29tcG9uZW50Q2xzfS1kaXNhYmxlZCZgXTp7Y29sb3I6bXVsdGlwbGVJdGVtQ29sb3JEaXNhYmxlZCxib3JkZXJDb2xvcjptdWx0aXBsZUl0ZW1Cb3JkZXJDb2xvckRpc2FibGVkLGN1cnNvcjoibm90LWFsbG93ZWQifSwiJi1jb250ZW50Ijp7ZGlzcGxheToiaW5saW5lLWJsb2NrIixtYXJnaW5JbmxpbmVFbmQ6dG9rZW4uY2FsYyhwYWRkaW5nWFMpLmRpdigyKS5lcXVhbCgpLG92ZXJmbG93OiJoaWRkZW4iLHdoaXRlU3BhY2U6InByZSIsdGV4dE92ZXJmbG93OiJlbGxpcHNpcyJ9LCImLXJlbW92ZSI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCgwLF9zdHlsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlJvKSgpKSx7ZGlzcGxheToiaW5saW5lLWZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsY29sb3I6Y29sb3JJY29uLGZvbnRXZWlnaHQ6ImJvbGQiLGZvbnRTaXplOjEwLGxpbmVIZWlnaHQ6ImluaGVyaXQiLGN1cnNvcjoicG9pbnRlciIsW2A+ICR7aWNvbkNsc31gXTp7dmVydGljYWxBbGlnbjoiLTAuMmVtIn0sIiY6aG92ZXIiOntjb2xvcjpjb2xvckljb25Ib3Zlcn19KX19fX0sZ2VuU2VsZWN0aW9uU3R5bGU9KHRva2VuLHN1ZmZpeCk9PntsZXR7Y29tcG9uZW50Q2xzLElOVEVSTkFMX0ZJWEVEX0lURU1fTUFSR0lOfT10b2tlbixzZWxlY3RPdmVyZmxvd1ByZWZpeENscz1gJHtjb21wb25lbnRDbHN9LXNlbGVjdGlvbi1vdmVyZmxvd2Asc2VsZWN0SXRlbUhlaWdodD10b2tlbi5tdWx0aXBsZVNlbGVjdEl0ZW1IZWlnaHQsc2VsZWN0SXRlbURpc3Q9Z2V0U2VsZWN0SXRlbVN0eWxlKHRva2VuKSxzdWZmaXhDbHM9c3VmZml4P2Ake2NvbXBvbmVudENsc30tJHtzdWZmaXh9YDoiIixtdWx0aXBsZVNlbGVjdG9yVW5pdD1nZXRNdWx0aXBsZVNlbGVjdG9yVW5pdCh0b2tlbik7cmV0dXJue1tgJHtjb21wb25lbnRDbHN9LW11bHRpcGxlJHtzdWZmaXhDbHN9YF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGdlbk92ZXJmbG93U3R5bGUodG9rZW4pKSx7W2Ake2NvbXBvbmVudENsc30tc2VsZWN0b3JgXTp7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIix3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixwYWRkaW5nSW5saW5lOm11bHRpcGxlU2VsZWN0b3JVbml0LmJhc2VQYWRkaW5nLHBhZGRpbmdCbG9jazptdWx0aXBsZVNlbGVjdG9yVW5pdC5jb250YWluZXJQYWRkaW5nLGJvcmRlclJhZGl1czp0b2tlbi5ib3JkZXJSYWRpdXMsW2Ake2NvbXBvbmVudENsc30tZGlzYWJsZWQmYF06e2JhY2tncm91bmQ6dG9rZW4ubXVsdGlwbGVTZWxlY3RvckJnRGlzYWJsZWQsY3Vyc29yOiJub3QtYWxsb3dlZCJ9LCImOmFmdGVyIjp7ZGlzcGxheToiaW5saW5lLWJsb2NrIix3aWR0aDowLG1hcmdpbjpgJHsoMCxfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uYmYpKElOVEVSTkFMX0ZJWEVEX0lURU1fTUFSR0lOKX0gMGAsbGluZUhlaWdodDooMCxfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uYmYpKHNlbGVjdEl0ZW1IZWlnaHQpLHZpc2liaWxpdHk6ImhpZGRlbiIsY29udGVudDonIlxcYTAiJ319LFtgJHtjb21wb25lbnRDbHN9LXNlbGVjdGlvbi1pdGVtYF06e2hlaWdodDptdWx0aXBsZVNlbGVjdG9yVW5pdC5pdGVtSGVpZ2h0LGxpbmVIZWlnaHQ6KDAsX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmJmKShtdWx0aXBsZVNlbGVjdG9yVW5pdC5pdGVtTGluZUhlaWdodCl9LFtgJHtjb21wb25lbnRDbHN9LXNlbGVjdGlvbi13cmFwYF06e2FsaWduU2VsZjoiZmxleC1zdGFydCIsIiY6YWZ0ZXIiOntsaW5lSGVpZ2h0OigwLF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5iZikoc2VsZWN0SXRlbUhlaWdodCksbWFyZ2luQmxvY2s6SU5URVJOQUxfRklYRURfSVRFTV9NQVJHSU59fSxbYCR7Y29tcG9uZW50Q2xzfS1wcmVmaXhgXTp7bWFyZ2luSW5saW5lU3RhcnQ6dG9rZW4uY2FsYyh0b2tlbi5pbnB1dFBhZGRpbmdIb3Jpem9udGFsQmFzZSkuc3ViKG11bHRpcGxlU2VsZWN0b3JVbml0LmJhc2VQYWRkaW5nKS5lcXVhbCgpfSxbYCR7c2VsZWN0T3ZlcmZsb3dQcmVmaXhDbHN9LWl0ZW0gKyAke3NlbGVjdE92ZXJmbG93UHJlZml4Q2xzfS1pdGVtLAogICAgICAgICR7Y29tcG9uZW50Q2xzfS1wcmVmaXggKyAke2NvbXBvbmVudENsc30tc2VsZWN0aW9uLXdyYXAKICAgICAgYF06e1tgJHtjb21wb25lbnRDbHN9LXNlbGVjdGlvbi1zZWFyY2hgXTp7bWFyZ2luSW5saW5lU3RhcnQ6MH0sW2Ake2NvbXBvbmVudENsc30tc2VsZWN0aW9uLXBsYWNlaG9sZGVyYF06e2luc2V0SW5saW5lU3RhcnQ6MH19LFtgJHtzZWxlY3RPdmVyZmxvd1ByZWZpeENsc30taXRlbS1zdWZmaXhgXTp7bWluSGVpZ2h0Om11bHRpcGxlU2VsZWN0b3JVbml0Lml0ZW1IZWlnaHQsbWFyZ2luQmxvY2s6SU5URVJOQUxfRklYRURfSVRFTV9NQVJHSU59LFtgJHtjb21wb25lbnRDbHN9LXNlbGVjdGlvbi1zZWFyY2hgXTp7ZGlzcGxheToiaW5saW5lLWZsZXgiLHBvc2l0aW9uOiJyZWxhdGl2ZSIsbWF4V2lkdGg6IjEwMCUiLG1hcmdpbklubGluZVN0YXJ0OnRva2VuLmNhbGModG9rZW4uaW5wdXRQYWRkaW5nSG9yaXpvbnRhbEJhc2UpLnN1YihzZWxlY3RJdGVtRGlzdCkuZXF1YWwoKSxbYAogICAgICAgICAgJi1pbnB1dCwKICAgICAgICAgICYtbWlycm9yCiAgICAgICAgYF06e2hlaWdodDpzZWxlY3RJdGVtSGVpZ2h0LGZvbnRGYW1pbHk6dG9rZW4uZm9udEZhbWlseSxsaW5lSGVpZ2h0OigwLF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5iZikoc2VsZWN0SXRlbUhlaWdodCksdHJhbnNpdGlvbjpgYWxsICR7dG9rZW4ubW90aW9uRHVyYXRpb25TbG93fWB9LCImLWlucHV0Ijp7d2lkdGg6IjEwMCUiLG1pbldpZHRoOjQuMX0sIiYtbWlycm9yIjp7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxpbnNldElubGluZVN0YXJ0OjAsaW5zZXRJbmxpbmVFbmQ6ImF1dG8iLHpJbmRleDo5OTksd2hpdGVTcGFjZToicHJlIix2aXNpYmlsaXR5OiJoaWRkZW4ifX0sW2Ake2NvbXBvbmVudENsc30tc2VsZWN0aW9uLXBsYWNlaG9sZGVyYF06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOiI1MCUiLGluc2V0SW5saW5lU3RhcnQ6dG9rZW4uY2FsYyh0b2tlbi5pbnB1dFBhZGRpbmdIb3Jpem9udGFsQmFzZSkuc3ViKG11bHRpcGxlU2VsZWN0b3JVbml0LmJhc2VQYWRkaW5nKS5lcXVhbCgpLGluc2V0SW5saW5lRW5kOnRva2VuLmlucHV0UGFkZGluZ0hvcml6b250YWxCYXNlLHRyYW5zZm9ybToidHJhbnNsYXRlWSgtNTAlKSIsdHJhbnNpdGlvbjpgYWxsICR7dG9rZW4ubW90aW9uRHVyYXRpb25TbG93fWB9fSl9fTtmdW5jdGlvbiBnZW5TaXplU3R5bGUodG9rZW4sc3VmZml4KXtsZXR7Y29tcG9uZW50Q2xzfT10b2tlbixzdWZmaXhDbHM9c3VmZml4P2Ake2NvbXBvbmVudENsc30tJHtzdWZmaXh9YDoiIixyYXdTdHlsZT17W2Ake2NvbXBvbmVudENsc30tbXVsdGlwbGUke3N1ZmZpeENsc31gXTp7Zm9udFNpemU6dG9rZW4uZm9udFNpemUsW2Ake2NvbXBvbmVudENsc30tc2VsZWN0b3JgXTp7W2Ake2NvbXBvbmVudENsc30tc2hvdy1zZWFyY2gmYF06e2N1cnNvcjoidGV4dCJ9fSxbYAogICAgICAgICYke2NvbXBvbmVudENsc30tc2hvdy1hcnJvdyAke2NvbXBvbmVudENsc30tc2VsZWN0b3IsCiAgICAgICAgJiR7Y29tcG9uZW50Q2xzfS1hbGxvdy1jbGVhciAke2NvbXBvbmVudENsc30tc2VsZWN0b3IKICAgICAgYF06e3BhZGRpbmdJbmxpbmVFbmQ6dG9rZW4uY2FsYyh0b2tlbi5mb250U2l6ZUljb24pLmFkZCh0b2tlbi5jb250cm9sUGFkZGluZ0hvcml6b250YWwpLmVxdWFsKCl9fX07cmV0dXJuW2dlblNlbGVjdGlvblN0eWxlKHRva2VuLHN1ZmZpeCkscmF3U3R5bGVdfWxldCBnZW5NdWx0aXBsZVN0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENsc309dG9rZW4sc21hbGxUb2tlbj0oMCxfdGhlbWVfaW50ZXJuYWxfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5JWCkodG9rZW4se3NlbGVjdEhlaWdodDp0b2tlbi5jb250cm9sSGVpZ2h0U00sbXVsdGlwbGVTZWxlY3RJdGVtSGVpZ2h0OnRva2VuLm11bHRpcGxlSXRlbUhlaWdodFNNLGJvcmRlclJhZGl1czp0b2tlbi5ib3JkZXJSYWRpdXNTTSxib3JkZXJSYWRpdXNTTTp0b2tlbi5ib3JkZXJSYWRpdXNYU30pLGxhcmdlVG9rZW49KDAsX3RoZW1lX2ludGVybmFsX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uSVgpKHRva2VuLHtmb250U2l6ZTp0b2tlbi5mb250U2l6ZUxHLHNlbGVjdEhlaWdodDp0b2tlbi5jb250cm9sSGVpZ2h0TEcsbXVsdGlwbGVTZWxlY3RJdGVtSGVpZ2h0OnRva2VuLm11bHRpcGxlSXRlbUhlaWdodExHLGJvcmRlclJhZGl1czp0b2tlbi5ib3JkZXJSYWRpdXNMRyxib3JkZXJSYWRpdXNTTTp0b2tlbi5ib3JkZXJSYWRpdXN9KTtyZXR1cm5bZ2VuU2l6ZVN0eWxlKHRva2VuKSxnZW5TaXplU3R5bGUoc21hbGxUb2tlbiwic20iKSx7W2Ake2NvbXBvbmVudENsc30tbXVsdGlwbGUke2NvbXBvbmVudENsc30tc21gXTp7W2Ake2NvbXBvbmVudENsc30tc2VsZWN0aW9uLXBsYWNlaG9sZGVyYF06e2luc2V0SW5saW5lOnRva2VuLmNhbGModG9rZW4uY29udHJvbFBhZGRpbmdIb3Jpem9udGFsU00pLnN1Yih0b2tlbi5saW5lV2lkdGgpLmVxdWFsKCl9LFtgJHtjb21wb25lbnRDbHN9LXNlbGVjdGlvbi1zZWFyY2hgXTp7bWFyZ2luSW5saW5lU3RhcnQ6Mn19fSxnZW5TaXplU3R5bGUobGFyZ2VUb2tlbiwibGciKV19O19fd2VicGFja19leHBvcnRzX18uWlA9Z2VuTXVsdGlwbGVTdHlsZX0sNDMyNzc6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gdXNlSWNvbnN9fSk7dmFyIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksX2FudF9kZXNpZ25faWNvbnNfZXNfaWNvbnNfQ2hlY2tPdXRsaW5lZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fPV9fd2VicGFja19yZXF1aXJlX18oNjM2MDYpLF9hbnRfZGVzaWduX2ljb25zX2VzX2ljb25zX0Nsb3NlQ2lyY2xlRmlsbGVkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX189X193ZWJwYWNrX3JlcXVpcmVfXyg0MzQwKSxfYW50X2Rlc2lnbl9pY29uc19lc19pY29uc19DbG9zZU91dGxpbmVkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X189X193ZWJwYWNrX3JlcXVpcmVfXyg5NzkzNyksX2FudF9kZXNpZ25faWNvbnNfZXNfaWNvbnNfRG93bk91dGxpbmVkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X189X193ZWJwYWNrX3JlcXVpcmVfXyg4MDg4MiksX2FudF9kZXNpZ25faWNvbnNfZXNfaWNvbnNfTG9hZGluZ091dGxpbmVkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXyg1MDg4OCksX2FudF9kZXNpZ25faWNvbnNfZXNfaWNvbnNfU2VhcmNoT3V0bGluZWRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY4Nzk1KTtmdW5jdGlvbiB1c2VJY29ucyhfcmVmKXtsZXR7c3VmZml4SWNvbixjbGVhckljb24sbWVudUl0ZW1TZWxlY3RlZEljb24scmVtb3ZlSWNvbixsb2FkaW5nLG11bHRpcGxlLGhhc0ZlZWRiYWNrLHByZWZpeENscyxzaG93U3VmZml4SWNvbixmZWVkYmFja0ljb24sc2hvd0Fycm93LGNvbXBvbmVudE5hbWV9PV9yZWYsbWVyZ2VkQ2xlYXJJY29uPW51bGwhPWNsZWFySWNvbj9jbGVhckljb246cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jcmVhdGVFbGVtZW50KF9hbnRfZGVzaWduX2ljb25zX2VzX2ljb25zX0Nsb3NlQ2lyY2xlRmlsbGVkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uWixudWxsKSxnZXRTdWZmaXhJY29uTm9kZT1hcnJvd0ljb249Pm51bGwhPT1zdWZmaXhJY29ufHxoYXNGZWVkYmFja3x8c2hvd0Fycm93P3JlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uY3JlYXRlRWxlbWVudChyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkZyYWdtZW50LG51bGwsITEhPT1zaG93U3VmZml4SWNvbiYmYXJyb3dJY29uLGhhc0ZlZWRiYWNrJiZmZWVkYmFja0ljb24pOm51bGwsbWVyZ2VkU3VmZml4SWNvbj1udWxsO2lmKHZvaWQgMCE9PXN1ZmZpeEljb24pbWVyZ2VkU3VmZml4SWNvbj1nZXRTdWZmaXhJY29uTm9kZShzdWZmaXhJY29uKTtlbHNlIGlmKGxvYWRpbmcpbWVyZ2VkU3VmZml4SWNvbj1nZXRTdWZmaXhJY29uTm9kZShyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmNyZWF0ZUVsZW1lbnQoX2FudF9kZXNpZ25faWNvbnNfZXNfaWNvbnNfTG9hZGluZ091dGxpbmVkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uWix7c3BpbjohMH0pKTtlbHNle2xldCBpY29uQ2xzPWAke3ByZWZpeENsc30tc3VmZml4YDttZXJnZWRTdWZmaXhJY29uPV9yZWYyPT57bGV0e29wZW4sc2hvd1NlYXJjaH09X3JlZjI7cmV0dXJuIG9wZW4mJnNob3dTZWFyY2g/Z2V0U3VmZml4SWNvbk5vZGUocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jcmVhdGVFbGVtZW50KF9hbnRfZGVzaWduX2ljb25zX2VzX2ljb25zX1NlYXJjaE91dGxpbmVkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uWix7Y2xhc3NOYW1lOmljb25DbHN9KSk6Z2V0U3VmZml4SWNvbk5vZGUocmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jcmVhdGVFbGVtZW50KF9hbnRfZGVzaWduX2ljb25zX2VzX2ljb25zX0Rvd25PdXRsaW5lZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlose2NsYXNzTmFtZTppY29uQ2xzfSkpfX1sZXQgbWVyZ2VkSXRlbUljb249bnVsbDtyZXR1cm4gbWVyZ2VkSXRlbUljb249dm9pZCAwIT09bWVudUl0ZW1TZWxlY3RlZEljb24/bWVudUl0ZW1TZWxlY3RlZEljb246bXVsdGlwbGU/cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jcmVhdGVFbGVtZW50KF9hbnRfZGVzaWduX2ljb25zX2VzX2ljb25zX0NoZWNrT3V0bGluZWRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5aLG51bGwpOm51bGwse2NsZWFySWNvbjptZXJnZWRDbGVhckljb24sc3VmZml4SWNvbjptZXJnZWRTdWZmaXhJY29uLGl0ZW1JY29uOm1lcmdlZEl0ZW1JY29uLHJlbW92ZUljb246dm9pZCAwIT09cmVtb3ZlSWNvbj9yZW1vdmVJY29uOnJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uY3JlYXRlRWxlbWVudChfYW50X2Rlc2lnbl9pY29uc19lc19pY29uc19DbG9zZU91dGxpbmVkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uWixudWxsKX19fSw0ODA1NDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiBza2VsZXRvbn19KTt2YXIgcmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksY2xhc3NuYW1lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDEzMTQ0KSxjbGFzc25hbWVzX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGNsYXNzbmFtZXMpLGNvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzEyNCksb21pdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDEwMzY2KTtsZXQgRWxlbWVudDE9cHJvcHM9PntsZXR7cHJlZml4Q2xzLGNsYXNzTmFtZSxzdHlsZSxzaXplLHNoYXBlfT1wcm9wcyxzaXplQ2xzPWNsYXNzbmFtZXNfZGVmYXVsdCgpKHtbYCR7cHJlZml4Q2xzfS1sZ2BdOiJsYXJnZSI9PT1zaXplLFtgJHtwcmVmaXhDbHN9LXNtYF06InNtYWxsIj09PXNpemV9KSxzaGFwZUNscz1jbGFzc25hbWVzX2RlZmF1bHQoKSh7W2Ake3ByZWZpeENsc30tY2lyY2xlYF06ImNpcmNsZSI9PT1zaGFwZSxbYCR7cHJlZml4Q2xzfS1zcXVhcmVgXToic3F1YXJlIj09PXNoYXBlLFtgJHtwcmVmaXhDbHN9LXJvdW5kYF06InJvdW5kIj09PXNoYXBlfSksc2l6ZVN0eWxlPXJlYWN0LnVzZU1lbW8oKCk9PiJudW1iZXIiPT10eXBlb2Ygc2l6ZT97d2lkdGg6c2l6ZSxoZWlnaHQ6c2l6ZSxsaW5lSGVpZ2h0OmAke3NpemV9cHhgfTp7fSxbc2l6ZV0pO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KCJzcGFuIix7Y2xhc3NOYW1lOmNsYXNzbmFtZXNfZGVmYXVsdCgpKHByZWZpeENscyxzaXplQ2xzLHNoYXBlQ2xzLGNsYXNzTmFtZSksc3R5bGU6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHNpemVTdHlsZSksc3R5bGUpfSl9O3ZhciBlcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ0ODk5KSxnZW5TdHlsZVV0aWxzPV9fd2VicGFja19yZXF1aXJlX18oODM1NTkpLGNzc2luanNfdXRpbHNfZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0MjU1OSk7bGV0IHNrZWxldG9uQ2xzTG9hZGluZz1uZXcgZXMuRTQoImFudC1za2VsZXRvbi1sb2FkaW5nIix7IjAlIjp7YmFja2dyb3VuZFBvc2l0aW9uOiIxMDAlIDUwJSJ9LCIxMDAlIjp7YmFja2dyb3VuZFBvc2l0aW9uOiIwIDUwJSJ9fSksZ2VuU2tlbGV0b25FbGVtZW50Q29tbW9uU2l6ZT1zaXplPT4oe2hlaWdodDpzaXplLGxpbmVIZWlnaHQ6KDAsZXMuYmYpKHNpemUpfSksZ2VuU2tlbGV0b25FbGVtZW50QXZhdGFyU2l6ZT1zaXplPT5PYmplY3QuYXNzaWduKHt3aWR0aDpzaXplfSxnZW5Ta2VsZXRvbkVsZW1lbnRDb21tb25TaXplKHNpemUpKSxnZW5Ta2VsZXRvbkNvbG9yPXRva2VuPT4oe2JhY2tncm91bmQ6dG9rZW4uc2tlbGV0b25Mb2FkaW5nQmFja2dyb3VuZCxiYWNrZ3JvdW5kU2l6ZToiNDAwJSAxMDAlIixhbmltYXRpb25OYW1lOnNrZWxldG9uQ2xzTG9hZGluZyxhbmltYXRpb25EdXJhdGlvbjp0b2tlbi5za2VsZXRvbkxvYWRpbmdNb3Rpb25EdXJhdGlvbixhbmltYXRpb25UaW1pbmdGdW5jdGlvbjoiZWFzZSIsYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ImluZmluaXRlIn0pLGdlblNrZWxldG9uRWxlbWVudElucHV0U2l6ZT0oc2l6ZSxjYWxjKT0+T2JqZWN0LmFzc2lnbih7d2lkdGg6Y2FsYyhzaXplKS5tdWwoNSkuZXF1YWwoKSxtaW5XaWR0aDpjYWxjKHNpemUpLm11bCg1KS5lcXVhbCgpfSxnZW5Ta2VsZXRvbkVsZW1lbnRDb21tb25TaXplKHNpemUpKSxnZW5Ta2VsZXRvbkVsZW1lbnRBdmF0YXI9dG9rZW49PntsZXR7c2tlbGV0b25BdmF0YXJDbHMsZ3JhZGllbnRGcm9tQ29sb3IsY29udHJvbEhlaWdodCxjb250cm9sSGVpZ2h0TEcsY29udHJvbEhlaWdodFNNfT10b2tlbjtyZXR1cm57W3NrZWxldG9uQXZhdGFyQ2xzXTpPYmplY3QuYXNzaWduKHtkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHZlcnRpY2FsQWxpZ246InRvcCIsYmFja2dyb3VuZDpncmFkaWVudEZyb21Db2xvcn0sZ2VuU2tlbGV0b25FbGVtZW50QXZhdGFyU2l6ZShjb250cm9sSGVpZ2h0KSksW2Ake3NrZWxldG9uQXZhdGFyQ2xzfSR7c2tlbGV0b25BdmF0YXJDbHN9LWNpcmNsZWBdOntib3JkZXJSYWRpdXM6IjUwJSJ9LFtgJHtza2VsZXRvbkF2YXRhckNsc30ke3NrZWxldG9uQXZhdGFyQ2xzfS1sZ2BdOk9iamVjdC5hc3NpZ24oe30sZ2VuU2tlbGV0b25FbGVtZW50QXZhdGFyU2l6ZShjb250cm9sSGVpZ2h0TEcpKSxbYCR7c2tlbGV0b25BdmF0YXJDbHN9JHtza2VsZXRvbkF2YXRhckNsc30tc21gXTpPYmplY3QuYXNzaWduKHt9LGdlblNrZWxldG9uRWxlbWVudEF2YXRhclNpemUoY29udHJvbEhlaWdodFNNKSl9fSxnZW5Ta2VsZXRvbkVsZW1lbnRJbnB1dD10b2tlbj0+e2xldHtjb250cm9sSGVpZ2h0LGJvcmRlclJhZGl1c1NNLHNrZWxldG9uSW5wdXRDbHMsY29udHJvbEhlaWdodExHLGNvbnRyb2xIZWlnaHRTTSxncmFkaWVudEZyb21Db2xvcixjYWxjfT10b2tlbjtyZXR1cm57W3NrZWxldG9uSW5wdXRDbHNdOk9iamVjdC5hc3NpZ24oe2Rpc3BsYXk6ImlubGluZS1ibG9jayIsdmVydGljYWxBbGlnbjoidG9wIixiYWNrZ3JvdW5kOmdyYWRpZW50RnJvbUNvbG9yLGJvcmRlclJhZGl1czpib3JkZXJSYWRpdXNTTX0sZ2VuU2tlbGV0b25FbGVtZW50SW5wdXRTaXplKGNvbnRyb2xIZWlnaHQsY2FsYykpLFtgJHtza2VsZXRvbklucHV0Q2xzfS1sZ2BdOk9iamVjdC5hc3NpZ24oe30sZ2VuU2tlbGV0b25FbGVtZW50SW5wdXRTaXplKGNvbnRyb2xIZWlnaHRMRyxjYWxjKSksW2Ake3NrZWxldG9uSW5wdXRDbHN9LXNtYF06T2JqZWN0LmFzc2lnbih7fSxnZW5Ta2VsZXRvbkVsZW1lbnRJbnB1dFNpemUoY29udHJvbEhlaWdodFNNLGNhbGMpKX19LGdlblNrZWxldG9uRWxlbWVudEltYWdlU2l6ZT1zaXplPT5PYmplY3QuYXNzaWduKHt3aWR0aDpzaXplfSxnZW5Ta2VsZXRvbkVsZW1lbnRDb21tb25TaXplKHNpemUpKSxnZW5Ta2VsZXRvbkVsZW1lbnRJbWFnZT10b2tlbj0+e2xldHtza2VsZXRvbkltYWdlQ2xzLGltYWdlU2l6ZUJhc2UsZ3JhZGllbnRGcm9tQ29sb3IsYm9yZGVyUmFkaXVzU00sY2FsY309dG9rZW47cmV0dXJue1tza2VsZXRvbkltYWdlQ2xzXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2Rpc3BsYXk6ImlubGluZS1mbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLHZlcnRpY2FsQWxpZ246Im1pZGRsZSIsYmFja2dyb3VuZDpncmFkaWVudEZyb21Db2xvcixib3JkZXJSYWRpdXM6Ym9yZGVyUmFkaXVzU019LGdlblNrZWxldG9uRWxlbWVudEltYWdlU2l6ZShjYWxjKGltYWdlU2l6ZUJhc2UpLm11bCgyKS5lcXVhbCgpKSkse1tgJHtza2VsZXRvbkltYWdlQ2xzfS1wYXRoYF06e2ZpbGw6IiNiZmJmYmYifSxbYCR7c2tlbGV0b25JbWFnZUNsc30tc3ZnYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGdlblNrZWxldG9uRWxlbWVudEltYWdlU2l6ZShpbWFnZVNpemVCYXNlKSkse21heFdpZHRoOmNhbGMoaW1hZ2VTaXplQmFzZSkubXVsKDQpLmVxdWFsKCksbWF4SGVpZ2h0OmNhbGMoaW1hZ2VTaXplQmFzZSkubXVsKDQpLmVxdWFsKCl9KSxbYCR7c2tlbGV0b25JbWFnZUNsc30tc3ZnJHtza2VsZXRvbkltYWdlQ2xzfS1zdmctY2lyY2xlYF06e2JvcmRlclJhZGl1czoiNTAlIn19KSxbYCR7c2tlbGV0b25JbWFnZUNsc30ke3NrZWxldG9uSW1hZ2VDbHN9LWNpcmNsZWBdOntib3JkZXJSYWRpdXM6IjUwJSJ9fX0sZ2VuU2tlbGV0b25FbGVtZW50QnV0dG9uU2hhcGU9KHRva2VuLHNpemUsYnV0dG9uQ2xzKT0+e2xldHtza2VsZXRvbkJ1dHRvbkNsc309dG9rZW47cmV0dXJue1tgJHtidXR0b25DbHN9JHtza2VsZXRvbkJ1dHRvbkNsc30tY2lyY2xlYF06e3dpZHRoOnNpemUsbWluV2lkdGg6c2l6ZSxib3JkZXJSYWRpdXM6IjUwJSJ9LFtgJHtidXR0b25DbHN9JHtza2VsZXRvbkJ1dHRvbkNsc30tcm91bmRgXTp7Ym9yZGVyUmFkaXVzOnNpemV9fX0sZ2VuU2tlbGV0b25FbGVtZW50QnV0dG9uU2l6ZT0oc2l6ZSxjYWxjKT0+T2JqZWN0LmFzc2lnbih7d2lkdGg6Y2FsYyhzaXplKS5tdWwoMikuZXF1YWwoKSxtaW5XaWR0aDpjYWxjKHNpemUpLm11bCgyKS5lcXVhbCgpfSxnZW5Ta2VsZXRvbkVsZW1lbnRDb21tb25TaXplKHNpemUpKSxnZW5Ta2VsZXRvbkVsZW1lbnRCdXR0b249dG9rZW49PntsZXR7Ym9yZGVyUmFkaXVzU00sc2tlbGV0b25CdXR0b25DbHMsY29udHJvbEhlaWdodCxjb250cm9sSGVpZ2h0TEcsY29udHJvbEhlaWdodFNNLGdyYWRpZW50RnJvbUNvbG9yLGNhbGN9PXRva2VuO3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe1tza2VsZXRvbkJ1dHRvbkNsc106T2JqZWN0LmFzc2lnbih7ZGlzcGxheToiaW5saW5lLWJsb2NrIix2ZXJ0aWNhbEFsaWduOiJ0b3AiLGJhY2tncm91bmQ6Z3JhZGllbnRGcm9tQ29sb3IsYm9yZGVyUmFkaXVzOmJvcmRlclJhZGl1c1NNLHdpZHRoOmNhbGMoY29udHJvbEhlaWdodCkubXVsKDIpLmVxdWFsKCksbWluV2lkdGg6Y2FsYyhjb250cm9sSGVpZ2h0KS5tdWwoMikuZXF1YWwoKX0sZ2VuU2tlbGV0b25FbGVtZW50QnV0dG9uU2l6ZShjb250cm9sSGVpZ2h0LGNhbGMpKX0sZ2VuU2tlbGV0b25FbGVtZW50QnV0dG9uU2hhcGUodG9rZW4sY29udHJvbEhlaWdodCxza2VsZXRvbkJ1dHRvbkNscykpLHtbYCR7c2tlbGV0b25CdXR0b25DbHN9LWxnYF06T2JqZWN0LmFzc2lnbih7fSxnZW5Ta2VsZXRvbkVsZW1lbnRCdXR0b25TaXplKGNvbnRyb2xIZWlnaHRMRyxjYWxjKSl9KSxnZW5Ta2VsZXRvbkVsZW1lbnRCdXR0b25TaGFwZSh0b2tlbixjb250cm9sSGVpZ2h0TEcsYCR7c2tlbGV0b25CdXR0b25DbHN9LWxnYCkpLHtbYCR7c2tlbGV0b25CdXR0b25DbHN9LXNtYF06T2JqZWN0LmFzc2lnbih7fSxnZW5Ta2VsZXRvbkVsZW1lbnRCdXR0b25TaXplKGNvbnRyb2xIZWlnaHRTTSxjYWxjKSl9KSxnZW5Ta2VsZXRvbkVsZW1lbnRCdXR0b25TaGFwZSh0b2tlbixjb250cm9sSGVpZ2h0U00sYCR7c2tlbGV0b25CdXR0b25DbHN9LXNtYCkpfSxnZW5CYXNlU3R5bGU9dG9rZW49PntsZXR7Y29tcG9uZW50Q2xzLHNrZWxldG9uQXZhdGFyQ2xzLHNrZWxldG9uVGl0bGVDbHMsc2tlbGV0b25QYXJhZ3JhcGhDbHMsc2tlbGV0b25CdXR0b25DbHMsc2tlbGV0b25JbnB1dENscyxza2VsZXRvbkltYWdlQ2xzLGNvbnRyb2xIZWlnaHQsY29udHJvbEhlaWdodExHLGNvbnRyb2xIZWlnaHRTTSxncmFkaWVudEZyb21Db2xvcixwYWRkaW5nLG1hcmdpblNNLGJvcmRlclJhZGl1cyx0aXRsZUhlaWdodCxibG9ja1JhZGl1cyxwYXJhZ3JhcGhMaUhlaWdodCxjb250cm9sSGVpZ2h0WFMscGFyYWdyYXBoTWFyZ2luVG9wfT10b2tlbjtyZXR1cm57W2NvbXBvbmVudENsc106e2Rpc3BsYXk6InRhYmxlIix3aWR0aDoiMTAwJSIsW2Ake2NvbXBvbmVudENsc30taGVhZGVyYF06e2Rpc3BsYXk6InRhYmxlLWNlbGwiLHBhZGRpbmdJbmxpbmVFbmQ6cGFkZGluZyx2ZXJ0aWNhbEFsaWduOiJ0b3AiLFtza2VsZXRvbkF2YXRhckNsc106T2JqZWN0LmFzc2lnbih7ZGlzcGxheToiaW5saW5lLWJsb2NrIix2ZXJ0aWNhbEFsaWduOiJ0b3AiLGJhY2tncm91bmQ6Z3JhZGllbnRGcm9tQ29sb3J9LGdlblNrZWxldG9uRWxlbWVudEF2YXRhclNpemUoY29udHJvbEhlaWdodCkpLFtgJHtza2VsZXRvbkF2YXRhckNsc30tY2lyY2xlYF06e2JvcmRlclJhZGl1czoiNTAlIn0sW2Ake3NrZWxldG9uQXZhdGFyQ2xzfS1sZ2BdOk9iamVjdC5hc3NpZ24oe30sZ2VuU2tlbGV0b25FbGVtZW50QXZhdGFyU2l6ZShjb250cm9sSGVpZ2h0TEcpKSxbYCR7c2tlbGV0b25BdmF0YXJDbHN9LXNtYF06T2JqZWN0LmFzc2lnbih7fSxnZW5Ta2VsZXRvbkVsZW1lbnRBdmF0YXJTaXplKGNvbnRyb2xIZWlnaHRTTSkpfSxbYCR7Y29tcG9uZW50Q2xzfS1jb250ZW50YF06e2Rpc3BsYXk6InRhYmxlLWNlbGwiLHdpZHRoOiIxMDAlIix2ZXJ0aWNhbEFsaWduOiJ0b3AiLFtza2VsZXRvblRpdGxlQ2xzXTp7d2lkdGg6IjEwMCUiLGhlaWdodDp0aXRsZUhlaWdodCxiYWNrZ3JvdW5kOmdyYWRpZW50RnJvbUNvbG9yLGJvcmRlclJhZGl1czpibG9ja1JhZGl1cyxbYCsgJHtza2VsZXRvblBhcmFncmFwaENsc31gXTp7bWFyZ2luQmxvY2tTdGFydDpjb250cm9sSGVpZ2h0U019fSxbc2tlbGV0b25QYXJhZ3JhcGhDbHNdOntwYWRkaW5nOjAsIj4gbGkiOnt3aWR0aDoiMTAwJSIsaGVpZ2h0OnBhcmFncmFwaExpSGVpZ2h0LGxpc3RTdHlsZToibm9uZSIsYmFja2dyb3VuZDpncmFkaWVudEZyb21Db2xvcixib3JkZXJSYWRpdXM6YmxvY2tSYWRpdXMsIisgbGkiOnttYXJnaW5CbG9ja1N0YXJ0OmNvbnRyb2xIZWlnaHRYU319fSxbYCR7c2tlbGV0b25QYXJhZ3JhcGhDbHN9PiBsaTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bnRoLWNoaWxkKDIpKWBdOnt3aWR0aDoiNjElIn19LFtgJi1yb3VuZCAke2NvbXBvbmVudENsc30tY29udGVudGBdOntbYCR7c2tlbGV0b25UaXRsZUNsc30sICR7c2tlbGV0b25QYXJhZ3JhcGhDbHN9ID4gbGlgXTp7Ym9yZGVyUmFkaXVzfX19LFtgJHtjb21wb25lbnRDbHN9LXdpdGgtYXZhdGFyICR7Y29tcG9uZW50Q2xzfS1jb250ZW50YF06e1tza2VsZXRvblRpdGxlQ2xzXTp7bWFyZ2luQmxvY2tTdGFydDptYXJnaW5TTSxbYCsgJHtza2VsZXRvblBhcmFncmFwaENsc31gXTp7bWFyZ2luQmxvY2tTdGFydDpwYXJhZ3JhcGhNYXJnaW5Ub3B9fX0sW2Ake2NvbXBvbmVudENsc30ke2NvbXBvbmVudENsc30tZWxlbWVudGBdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe2Rpc3BsYXk6ImlubGluZS1ibG9jayIsd2lkdGg6ImF1dG8ifSxnZW5Ta2VsZXRvbkVsZW1lbnRCdXR0b24odG9rZW4pKSxnZW5Ta2VsZXRvbkVsZW1lbnRBdmF0YXIodG9rZW4pKSxnZW5Ta2VsZXRvbkVsZW1lbnRJbnB1dCh0b2tlbikpLGdlblNrZWxldG9uRWxlbWVudEltYWdlKHRva2VuKSksW2Ake2NvbXBvbmVudENsc30ke2NvbXBvbmVudENsc30tYmxvY2tgXTp7d2lkdGg6IjEwMCUiLFtza2VsZXRvbkJ1dHRvbkNsc106e3dpZHRoOiIxMDAlIn0sW3NrZWxldG9uSW5wdXRDbHNdOnt3aWR0aDoiMTAwJSJ9fSxbYCR7Y29tcG9uZW50Q2xzfSR7Y29tcG9uZW50Q2xzfS1hY3RpdmVgXTp7W2AKICAgICAgICAke3NrZWxldG9uVGl0bGVDbHN9LAogICAgICAgICR7c2tlbGV0b25QYXJhZ3JhcGhDbHN9ID4gbGksCiAgICAgICAgJHtza2VsZXRvbkF2YXRhckNsc30sCiAgICAgICAgJHtza2VsZXRvbkJ1dHRvbkNsc30sCiAgICAgICAgJHtza2VsZXRvbklucHV0Q2xzfSwKICAgICAgICAke3NrZWxldG9uSW1hZ2VDbHN9CiAgICAgIGBdOk9iamVjdC5hc3NpZ24oe30sZ2VuU2tlbGV0b25Db2xvcih0b2tlbikpfX19LHByZXBhcmVDb21wb25lbnRUb2tlbj10b2tlbj0+e2xldHtjb2xvckZpbGxDb250ZW50LGNvbG9yRmlsbH09dG9rZW47cmV0dXJue2NvbG9yOmNvbG9yRmlsbENvbnRlbnQsY29sb3JHcmFkaWVudEVuZDpjb2xvckZpbGwsZ3JhZGllbnRGcm9tQ29sb3I6Y29sb3JGaWxsQ29udGVudCxncmFkaWVudFRvQ29sb3I6Y29sb3JGaWxsLHRpdGxlSGVpZ2h0OnRva2VuLmNvbnRyb2xIZWlnaHQvMixibG9ja1JhZGl1czp0b2tlbi5ib3JkZXJSYWRpdXNTTSxwYXJhZ3JhcGhNYXJnaW5Ub3A6dG9rZW4ubWFyZ2luTEcrdG9rZW4ubWFyZ2luWFhTLHBhcmFncmFwaExpSGVpZ2h0OnRva2VuLmNvbnRyb2xIZWlnaHQvMn19O3ZhciBza2VsZXRvbl9zdHlsZT0oMCxnZW5TdHlsZVV0aWxzLkkkKSgiU2tlbGV0b24iLHRva2VuPT57bGV0e2NvbXBvbmVudENscyxjYWxjfT10b2tlbixza2VsZXRvblRva2VuPSgwLGNzc2luanNfdXRpbHNfZXMuSVgpKHRva2VuLHtza2VsZXRvbkF2YXRhckNsczpgJHtjb21wb25lbnRDbHN9LWF2YXRhcmAsc2tlbGV0b25UaXRsZUNsczpgJHtjb21wb25lbnRDbHN9LXRpdGxlYCxza2VsZXRvblBhcmFncmFwaENsczpgJHtjb21wb25lbnRDbHN9LXBhcmFncmFwaGAsc2tlbGV0b25CdXR0b25DbHM6YCR7Y29tcG9uZW50Q2xzfS1idXR0b25gLHNrZWxldG9uSW5wdXRDbHM6YCR7Y29tcG9uZW50Q2xzfS1pbnB1dGAsc2tlbGV0b25JbWFnZUNsczpgJHtjb21wb25lbnRDbHN9LWltYWdlYCxpbWFnZVNpemVCYXNlOmNhbGModG9rZW4uY29udHJvbEhlaWdodCkubXVsKDEuNSkuZXF1YWwoKSxib3JkZXJSYWRpdXM6MTAwLHNrZWxldG9uTG9hZGluZ0JhY2tncm91bmQ6YGxpbmVhci1ncmFkaWVudCg5MGRlZywgJHt0b2tlbi5ncmFkaWVudEZyb21Db2xvcn0gMjUlLCAke3Rva2VuLmdyYWRpZW50VG9Db2xvcn0gMzclLCAke3Rva2VuLmdyYWRpZW50RnJvbUNvbG9yfSA2MyUpYCxza2VsZXRvbkxvYWRpbmdNb3Rpb25EdXJhdGlvbjoiMS40cyJ9KTtyZXR1cm5bZ2VuQmFzZVN0eWxlKHNrZWxldG9uVG9rZW4pXX0scHJlcGFyZUNvbXBvbmVudFRva2VuLHtkZXByZWNhdGVkVG9rZW5zOltbImNvbG9yIiwiZ3JhZGllbnRGcm9tQ29sb3IiXSxbImNvbG9yR3JhZGllbnRFbmQiLCJncmFkaWVudFRvQ29sb3IiXV19KTtsZXQgU2tlbGV0b25BdmF0YXI9cHJvcHM9PntsZXR7cHJlZml4Q2xzOmN1c3RvbWl6ZVByZWZpeENscyxjbGFzc05hbWUscm9vdENsYXNzTmFtZSxhY3RpdmUsc2hhcGU9ImNpcmNsZSIsc2l6ZT0iZGVmYXVsdCJ9PXByb3BzLHtnZXRQcmVmaXhDbHN9PXJlYWN0LnVzZUNvbnRleHQoY29udGV4dC5FXykscHJlZml4Q2xzPWdldFByZWZpeENscygic2tlbGV0b24iLGN1c3RvbWl6ZVByZWZpeENscyksW3dyYXBDU1NWYXIsaGFzaElkLGNzc1ZhckNsc109c2tlbGV0b25fc3R5bGUocHJlZml4Q2xzKSxvdGhlclByb3BzPSgwLG9taXQuWikocHJvcHMsWyJwcmVmaXhDbHMiLCJjbGFzc05hbWUiXSksY2xzPWNsYXNzbmFtZXNfZGVmYXVsdCgpKHByZWZpeENscyxgJHtwcmVmaXhDbHN9LWVsZW1lbnRgLHtbYCR7cHJlZml4Q2xzfS1hY3RpdmVgXTphY3RpdmV9LGNsYXNzTmFtZSxyb290Q2xhc3NOYW1lLGhhc2hJZCxjc3NWYXJDbHMpO3JldHVybiB3cmFwQ1NTVmFyKHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpjbHN9LHJlYWN0LmNyZWF0ZUVsZW1lbnQoRWxlbWVudDEsT2JqZWN0LmFzc2lnbih7cHJlZml4Q2xzOmAke3ByZWZpeENsc30tYXZhdGFyYCxzaGFwZTpzaGFwZSxzaXplOnNpemV9LG90aGVyUHJvcHMpKSkpfSxTa2VsZXRvbkJ1dHRvbj1wcm9wcz0+e2xldHtwcmVmaXhDbHM6Y3VzdG9taXplUHJlZml4Q2xzLGNsYXNzTmFtZSxyb290Q2xhc3NOYW1lLGFjdGl2ZSxibG9jaz0hMSxzaXplPSJkZWZhdWx0In09cHJvcHMse2dldFByZWZpeENsc309cmVhY3QudXNlQ29udGV4dChjb250ZXh0LkVfKSxwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJza2VsZXRvbiIsY3VzdG9taXplUHJlZml4Q2xzKSxbd3JhcENTU1ZhcixoYXNoSWQsY3NzVmFyQ2xzXT1za2VsZXRvbl9zdHlsZShwcmVmaXhDbHMpLG90aGVyUHJvcHM9KDAsb21pdC5aKShwcm9wcyxbInByZWZpeENscyJdKSxjbHM9Y2xhc3NuYW1lc19kZWZhdWx0KCkocHJlZml4Q2xzLGAke3ByZWZpeENsc30tZWxlbWVudGAse1tgJHtwcmVmaXhDbHN9LWFjdGl2ZWBdOmFjdGl2ZSxbYCR7cHJlZml4Q2xzfS1ibG9ja2BdOmJsb2NrfSxjbGFzc05hbWUscm9vdENsYXNzTmFtZSxoYXNoSWQsY3NzVmFyQ2xzKTtyZXR1cm4gd3JhcENTU1ZhcihyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Y2xzfSxyZWFjdC5jcmVhdGVFbGVtZW50KEVsZW1lbnQxLE9iamVjdC5hc3NpZ24oe3ByZWZpeENsczpgJHtwcmVmaXhDbHN9LWJ1dHRvbmAsc2l6ZTpzaXplfSxvdGhlclByb3BzKSkpKX0sU2tlbGV0b25JbWFnZT1wcm9wcz0+e2xldHtwcmVmaXhDbHM6Y3VzdG9taXplUHJlZml4Q2xzLGNsYXNzTmFtZSxyb290Q2xhc3NOYW1lLHN0eWxlLGFjdGl2ZX09cHJvcHMse2dldFByZWZpeENsc309cmVhY3QudXNlQ29udGV4dChjb250ZXh0LkVfKSxwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJza2VsZXRvbiIsY3VzdG9taXplUHJlZml4Q2xzKSxbd3JhcENTU1ZhcixoYXNoSWQsY3NzVmFyQ2xzXT1za2VsZXRvbl9zdHlsZShwcmVmaXhDbHMpLGNscz1jbGFzc25hbWVzX2RlZmF1bHQoKShwcmVmaXhDbHMsYCR7cHJlZml4Q2xzfS1lbGVtZW50YCx7W2Ake3ByZWZpeENsc30tYWN0aXZlYF06YWN0aXZlfSxjbGFzc05hbWUscm9vdENsYXNzTmFtZSxoYXNoSWQsY3NzVmFyQ2xzKTtyZXR1cm4gd3JhcENTU1ZhcihyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Y2xzfSxyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Y2xhc3NuYW1lc19kZWZhdWx0KCkoYCR7cHJlZml4Q2xzfS1pbWFnZWAsY2xhc3NOYW1lKSxzdHlsZTpzdHlsZX0scmVhY3QuY3JlYXRlRWxlbWVudCgic3ZnIix7dmlld0JveDoiMCAwIDEwOTggMTAyNCIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS1pbWFnZS1zdmdgfSxyZWFjdC5jcmVhdGVFbGVtZW50KCJ0aXRsZSIsbnVsbCwiSW1hZ2UgcGxhY2Vob2xkZXIiKSxyZWFjdC5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTM2NS43MTQyODYgMzI5LjE0Mjg1N3EwIDQ1LjcxNDI4Ni0zMi4wMzY1NzEgNzcuNjc3NzE0dC03Ny42Nzc3MTQgMzIuMDM2NTcxLTc3LjY3NzcxNC0zMi4wMzY1NzEtMzIuMDM2NTcxLTc3LjY3NzcxNCAzMi4wMzY1NzEtNzcuNjc3NzE0IDc3LjY3NzcxNC0zMi4wMzY1NzEgNzcuNjc3NzE0IDMyLjAzNjU3MSAzMi4wMzY1NzEgNzcuNjc3NzE0ek05NTAuODU3MTQzIDU0OC41NzE0MjlsMCAyNTYtODA0LjU3MTQyOSAwIDAtMTA5LjcxNDI4NiAxODIuODU3MTQzLTE4Mi44NTcxNDMgOTEuNDI4NTcxIDkxLjQyODU3MSAyOTIuNTcxNDI5LTI5Mi41NzE0Mjl6TTEwMDUuNzE0Mjg2IDE0Ni4yODU3MTRsLTkxNC4yODU3MTQgMHEtNy40NjA1NzEgMC0xMi44NzMxNDMgNS40MTI1NzF0LTUuNDEyNTcxIDEyLjg3MzE0M2wwIDY5NC44NTcxNDNxMCA3LjQ2MDU3MSA1LjQxMjU3MSAxMi44NzMxNDN0MTIuODczMTQzIDUuNDEyNTcxbDkxNC4yODU3MTQgMHE3LjQ2MDU3MSAwIDEyLjg3MzE0My01LjQxMjU3MXQ1LjQxMjU3MS0xMi44NzMxNDNsMC02OTQuODU3MTQzcTAtNy40NjA1NzEtNS40MTI1NzEtMTIuODczMTQzdC0xMi44NzMxNDMtNS40MTI1NzF6TTEwOTcuMTQyODU3IDE2NC41NzE0MjlsMCA2OTQuODU3MTQzcTAgMzcuNzQxNzE0LTI2Ljg0MzQyOSA2NC41ODUxNDN0LTY0LjU4NTE0MyAyNi44NDM0MjlsLTkxNC4yODU3MTQgMHEtMzcuNzQxNzE0IDAtNjQuNTg1MTQzLTI2Ljg0MzQyOXQtMjYuODQzNDI5LTY0LjU4NTE0M2wwLTY5NC44NTcxNDNxMC0zNy43NDE3MTQgMjYuODQzNDI5LTY0LjU4NTE0M3Q2NC41ODUxNDMtMjYuODQzNDI5bDkxNC4yODU3MTQgMHEzNy43NDE3MTQgMCA2NC41ODUxNDMgMjYuODQzNDI5dDI2Ljg0MzQyOSA2NC41ODUxNDN6IixjbGFzc05hbWU6YCR7cHJlZml4Q2xzfS1pbWFnZS1wYXRoYH0pKSkpKX0sU2tlbGV0b25JbnB1dD1wcm9wcz0+e2xldHtwcmVmaXhDbHM6Y3VzdG9taXplUHJlZml4Q2xzLGNsYXNzTmFtZSxyb290Q2xhc3NOYW1lLGFjdGl2ZSxibG9jayxzaXplPSJkZWZhdWx0In09cHJvcHMse2dldFByZWZpeENsc309cmVhY3QudXNlQ29udGV4dChjb250ZXh0LkVfKSxwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJza2VsZXRvbiIsY3VzdG9taXplUHJlZml4Q2xzKSxbd3JhcENTU1ZhcixoYXNoSWQsY3NzVmFyQ2xzXT1za2VsZXRvbl9zdHlsZShwcmVmaXhDbHMpLG90aGVyUHJvcHM9KDAsb21pdC5aKShwcm9wcyxbInByZWZpeENscyJdKSxjbHM9Y2xhc3NuYW1lc19kZWZhdWx0KCkocHJlZml4Q2xzLGAke3ByZWZpeENsc30tZWxlbWVudGAse1tgJHtwcmVmaXhDbHN9LWFjdGl2ZWBdOmFjdGl2ZSxbYCR7cHJlZml4Q2xzfS1ibG9ja2BdOmJsb2NrfSxjbGFzc05hbWUscm9vdENsYXNzTmFtZSxoYXNoSWQsY3NzVmFyQ2xzKTtyZXR1cm4gd3JhcENTU1ZhcihyZWFjdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6Y2xzfSxyZWFjdC5jcmVhdGVFbGVtZW50KEVsZW1lbnQxLE9iamVjdC5hc3NpZ24oe3ByZWZpeENsczpgJHtwcmVmaXhDbHN9LWlucHV0YCxzaXplOnNpemV9LG90aGVyUHJvcHMpKSkpfSxTa2VsZXRvbk5vZGU9cHJvcHM9PntsZXR7cHJlZml4Q2xzOmN1c3RvbWl6ZVByZWZpeENscyxjbGFzc05hbWUscm9vdENsYXNzTmFtZSxzdHlsZSxhY3RpdmUsY2hpbGRyZW59PXByb3BzLHtnZXRQcmVmaXhDbHN9PXJlYWN0LnVzZUNvbnRleHQoY29udGV4dC5FXykscHJlZml4Q2xzPWdldFByZWZpeENscygic2tlbGV0b24iLGN1c3RvbWl6ZVByZWZpeENscyksW3dyYXBDU1NWYXIsaGFzaElkLGNzc1ZhckNsc109c2tlbGV0b25fc3R5bGUocHJlZml4Q2xzKSxjbHM9Y2xhc3NuYW1lc19kZWZhdWx0KCkocHJlZml4Q2xzLGAke3ByZWZpeENsc30tZWxlbWVudGAse1tgJHtwcmVmaXhDbHN9LWFjdGl2ZWBdOmFjdGl2ZX0saGFzaElkLGNsYXNzTmFtZSxyb290Q2xhc3NOYW1lLGNzc1ZhckNscyk7cmV0dXJuIHdyYXBDU1NWYXIocmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmNsc30scmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmNsYXNzbmFtZXNfZGVmYXVsdCgpKGAke3ByZWZpeENsc30taW1hZ2VgLGNsYXNzTmFtZSksc3R5bGU6c3R5bGV9LGNoaWxkcmVuKSkpfSxnZXRXaWR0aD0oaW5kZXgscHJvcHMpPT57bGV0e3dpZHRoLHJvd3M9Mn09cHJvcHM7cmV0dXJuIEFycmF5LmlzQXJyYXkod2lkdGgpP3dpZHRoW2luZGV4XTpyb3dzLTE9PT1pbmRleD93aWR0aDp2b2lkIDB9LFBhcmFncmFwaD1wcm9wcz0+e2xldHtwcmVmaXhDbHMsY2xhc3NOYW1lLHN0eWxlLHJvd3M9MH09cHJvcHMscm93TGlzdD1BcnJheS5mcm9tKHtsZW5ndGg6cm93c30pLm1hcCgoXyxpbmRleCk9PnJlYWN0LmNyZWF0ZUVsZW1lbnQoImxpIix7a2V5OmluZGV4LHN0eWxlOnt3aWR0aDpnZXRXaWR0aChpbmRleCxwcm9wcyl9fSkpO3JldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KCJ1bCIse2NsYXNzTmFtZTpjbGFzc25hbWVzX2RlZmF1bHQoKShwcmVmaXhDbHMsY2xhc3NOYW1lKSxzdHlsZTpzdHlsZX0scm93TGlzdCl9LFRpdGxlPV9yZWY9PntsZXR7cHJlZml4Q2xzLGNsYXNzTmFtZSx3aWR0aCxzdHlsZX09X3JlZjtyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudCgiaDMiLHtjbGFzc05hbWU6Y2xhc3NuYW1lc19kZWZhdWx0KCkocHJlZml4Q2xzLGNsYXNzTmFtZSksc3R5bGU6T2JqZWN0LmFzc2lnbih7d2lkdGh9LHN0eWxlKX0pfTtmdW5jdGlvbiBnZXRDb21wb25lbnRQcm9wcyhwcm9wKXtyZXR1cm4gcHJvcCYmIm9iamVjdCI9PXR5cGVvZiBwcm9wP3Byb3A6e319bGV0IFNrZWxldG9uPXByb3BzPT57bGV0e3ByZWZpeENsczpjdXN0b21pemVQcmVmaXhDbHMsbG9hZGluZyxjbGFzc05hbWUscm9vdENsYXNzTmFtZSxzdHlsZSxjaGlsZHJlbixhdmF0YXI9ITEsdGl0bGU9ITAscGFyYWdyYXBoPSEwLGFjdGl2ZSxyb3VuZH09cHJvcHMse2dldFByZWZpeENscyxkaXJlY3Rpb24sY2xhc3NOYW1lOmNvbnRleHRDbGFzc05hbWUsc3R5bGU6Y29udGV4dFN0eWxlfT0oMCxjb250ZXh0LmRqKSgic2tlbGV0b24iKSxwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJza2VsZXRvbiIsY3VzdG9taXplUHJlZml4Q2xzKSxbd3JhcENTU1ZhcixoYXNoSWQsY3NzVmFyQ2xzXT1za2VsZXRvbl9zdHlsZShwcmVmaXhDbHMpO2lmKGxvYWRpbmd8fCEoImxvYWRpbmciaW4gcHJvcHMpKXtsZXQgYXZhdGFyTm9kZSxjb250ZW50Tm9kZTtsZXQgaGFzQXZhdGFyPSEhYXZhdGFyLGhhc1RpdGxlPSEhdGl0bGUsaGFzUGFyYWdyYXBoPSEhcGFyYWdyYXBoO2lmKGhhc0F2YXRhcil7bGV0IGF2YXRhclByb3BzPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7cHJlZml4Q2xzOmAke3ByZWZpeENsc30tYXZhdGFyYH0saGFzVGl0bGUmJiFoYXNQYXJhZ3JhcGg/e3NpemU6ImxhcmdlIixzaGFwZToic3F1YXJlIn06e3NpemU6ImxhcmdlIixzaGFwZToiY2lyY2xlIn0pLGdldENvbXBvbmVudFByb3BzKGF2YXRhcikpO2F2YXRhck5vZGU9cmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30taGVhZGVyYH0scmVhY3QuY3JlYXRlRWxlbWVudChFbGVtZW50MSxPYmplY3QuYXNzaWduKHt9LGF2YXRhclByb3BzKSkpfWlmKGhhc1RpdGxlfHxoYXNQYXJhZ3JhcGgpe2xldCAkdGl0bGUscGFyYWdyYXBoTm9kZTtpZihoYXNUaXRsZSl7bGV0IHRpdGxlUHJvcHM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtwcmVmaXhDbHM6YCR7cHJlZml4Q2xzfS10aXRsZWB9LCFoYXNBdmF0YXImJmhhc1BhcmFncmFwaD97d2lkdGg6IjM4JSJ9Omhhc0F2YXRhciYmaGFzUGFyYWdyYXBoP3t3aWR0aDoiNTAlIn06e30pLGdldENvbXBvbmVudFByb3BzKHRpdGxlKSk7JHRpdGxlPXJlYWN0LmNyZWF0ZUVsZW1lbnQoVGl0bGUsT2JqZWN0LmFzc2lnbih7fSx0aXRsZVByb3BzKSl9aWYoaGFzUGFyYWdyYXBoKXtsZXQgcGFyYWdyYXBoUHJvcHM9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtwcmVmaXhDbHM6YCR7cHJlZml4Q2xzfS1wYXJhZ3JhcGhgfSxmdW5jdGlvbihoYXNBdmF0YXIsaGFzVGl0bGUpe2xldCBiYXNpY1Byb3BzPXt9O3JldHVybiBoYXNBdmF0YXImJmhhc1RpdGxlfHwoYmFzaWNQcm9wcy53aWR0aD0iNjElIiksIWhhc0F2YXRhciYmaGFzVGl0bGU/YmFzaWNQcm9wcy5yb3dzPTM6YmFzaWNQcm9wcy5yb3dzPTIsYmFzaWNQcm9wc30oaGFzQXZhdGFyLGhhc1RpdGxlKSksZ2V0Q29tcG9uZW50UHJvcHMocGFyYWdyYXBoKSk7cGFyYWdyYXBoTm9kZT1yZWFjdC5jcmVhdGVFbGVtZW50KFBhcmFncmFwaCxPYmplY3QuYXNzaWduKHt9LHBhcmFncmFwaFByb3BzKSl9Y29udGVudE5vZGU9cmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmAke3ByZWZpeENsc30tY29udGVudGB9LCR0aXRsZSxwYXJhZ3JhcGhOb2RlKX1sZXQgY2xzPWNsYXNzbmFtZXNfZGVmYXVsdCgpKHByZWZpeENscyx7W2Ake3ByZWZpeENsc30td2l0aC1hdmF0YXJgXTpoYXNBdmF0YXIsW2Ake3ByZWZpeENsc30tYWN0aXZlYF06YWN0aXZlLFtgJHtwcmVmaXhDbHN9LXJ0bGBdOiJydGwiPT09ZGlyZWN0aW9uLFtgJHtwcmVmaXhDbHN9LXJvdW5kYF06cm91bmR9LGNvbnRleHRDbGFzc05hbWUsY2xhc3NOYW1lLHJvb3RDbGFzc05hbWUsaGFzaElkLGNzc1ZhckNscyk7cmV0dXJuIHdyYXBDU1NWYXIocmVhY3QuY3JlYXRlRWxlbWVudCgiZGl2Iix7Y2xhc3NOYW1lOmNscyxzdHlsZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sY29udGV4dFN0eWxlKSxzdHlsZSl9LGF2YXRhck5vZGUsY29udGVudE5vZGUpKX1yZXR1cm4gbnVsbCE9Y2hpbGRyZW4/Y2hpbGRyZW46bnVsbH07U2tlbGV0b24uQnV0dG9uPVNrZWxldG9uQnV0dG9uLFNrZWxldG9uLkF2YXRhcj1Ta2VsZXRvbkF2YXRhcixTa2VsZXRvbi5JbnB1dD1Ta2VsZXRvbklucHV0LFNrZWxldG9uLkltYWdlPVNrZWxldG9uSW1hZ2UsU2tlbGV0b24uTm9kZT1Ta2VsZXRvbk5vZGU7dmFyIHNrZWxldG9uPVNrZWxldG9ufSw0MTczOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtCUjpmdW5jdGlvbigpe3JldHVybiBOb0NvbXBhY3RTdHlsZX0scmk6ZnVuY3Rpb24oKXtyZXR1cm4gdXNlQ29tcGFjdEl0ZW1Db250ZXh0fX0pO3ZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLGNsYXNzbmFtZXNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDEzMTQ0KSxjbGFzc25hbWVzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19fZGVmYXVsdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oY2xhc3NuYW1lc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fKSxyY191dGlsX2VzX0NoaWxkcmVuX3RvQXJyYXlfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDM3NDE5KSxfY29uZmlnX3Byb3ZpZGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX189X193ZWJwYWNrX3JlcXVpcmVfXyg1MzEyNCksX2NvbmZpZ19wcm92aWRlcl9ob29rc191c2VTaXplX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X189X193ZWJwYWNrX3JlcXVpcmVfXyg5ODY3NSksX3N0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X189X193ZWJwYWNrX3JlcXVpcmVfXyg1MTkxNiksX19yZXN0PWZ1bmN0aW9uKHMsZSl7dmFyIHQ9e307Zm9yKHZhciBwIGluIHMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMscCkmJjA+ZS5pbmRleE9mKHApJiYodFtwXT1zW3BdKTtpZihudWxsIT1zJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scylmb3IodmFyIGk9MCxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7aTxwLmxlbmd0aDtpKyspMD5lLmluZGV4T2YocFtpXSkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLHBbaV0pJiYodFtwW2ldXT1zW3BbaV1dKTtyZXR1cm4gdH07bGV0IFNwYWNlQ29tcGFjdEl0ZW1Db250ZXh0PXJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uY3JlYXRlQ29udGV4dChudWxsKSx1c2VDb21wYWN0SXRlbUNvbnRleHQ9KHByZWZpeENscyxkaXJlY3Rpb24pPT57bGV0IGNvbXBhY3RJdGVtQ29udGV4dD1yZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnVzZUNvbnRleHQoU3BhY2VDb21wYWN0SXRlbUNvbnRleHQpLGNvbXBhY3RJdGVtQ2xhc3NuYW1lcz1yZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnVzZU1lbW8oKCk9PntpZighY29tcGFjdEl0ZW1Db250ZXh0KXJldHVybiIiO2xldHtjb21wYWN0RGlyZWN0aW9uLGlzRmlyc3RJdGVtLGlzTGFzdEl0ZW19PWNvbXBhY3RJdGVtQ29udGV4dCxzZXBhcmF0b3I9InZlcnRpY2FsIj09PWNvbXBhY3REaXJlY3Rpb24/Ii12ZXJ0aWNhbC0iOiItIjtyZXR1cm4gY2xhc3NuYW1lc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKShgJHtwcmVmaXhDbHN9LWNvbXBhY3Qke3NlcGFyYXRvcn1pdGVtYCx7W2Ake3ByZWZpeENsc30tY29tcGFjdCR7c2VwYXJhdG9yfWZpcnN0LWl0ZW1gXTppc0ZpcnN0SXRlbSxbYCR7cHJlZml4Q2xzfS1jb21wYWN0JHtzZXBhcmF0b3J9bGFzdC1pdGVtYF06aXNMYXN0SXRlbSxbYCR7cHJlZml4Q2xzfS1jb21wYWN0JHtzZXBhcmF0b3J9aXRlbS1ydGxgXToicnRsIj09PWRpcmVjdGlvbn0pfSxbcHJlZml4Q2xzLGRpcmVjdGlvbixjb21wYWN0SXRlbUNvbnRleHRdKTtyZXR1cm57Y29tcGFjdFNpemU6bnVsbD09Y29tcGFjdEl0ZW1Db250ZXh0P3ZvaWQgMDpjb21wYWN0SXRlbUNvbnRleHQuY29tcGFjdFNpemUsY29tcGFjdERpcmVjdGlvbjpudWxsPT1jb21wYWN0SXRlbUNvbnRleHQ/dm9pZCAwOmNvbXBhY3RJdGVtQ29udGV4dC5jb21wYWN0RGlyZWN0aW9uLGNvbXBhY3RJdGVtQ2xhc3NuYW1lc319LE5vQ29tcGFjdFN0eWxlPXByb3BzPT57bGV0e2NoaWxkcmVufT1wcm9wcztyZXR1cm4gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jcmVhdGVFbGVtZW50KFNwYWNlQ29tcGFjdEl0ZW1Db250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpudWxsfSxjaGlsZHJlbil9LENvbXBhY3RJdGVtPXByb3BzPT57bGV0e2NoaWxkcmVufT1wcm9wcyxvdGhlcnM9X19yZXN0KHByb3BzLFsiY2hpbGRyZW4iXSk7cmV0dXJuIHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uY3JlYXRlRWxlbWVudChTcGFjZUNvbXBhY3RJdGVtQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6cmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VNZW1vKCgpPT5vdGhlcnMsW290aGVyc10pfSxjaGlsZHJlbil9LENvbXBhY3Q9cHJvcHM9PntsZXR7Z2V0UHJlZml4Q2xzLGRpcmVjdGlvbjpkaXJlY3Rpb25Db25maWd9PXJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlQ29udGV4dChfY29uZmlnX3Byb3ZpZGVyX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uRV8pLHtzaXplLGRpcmVjdGlvbixibG9jayxwcmVmaXhDbHM6Y3VzdG9taXplUHJlZml4Q2xzLGNsYXNzTmFtZSxyb290Q2xhc3NOYW1lLGNoaWxkcmVufT1wcm9wcyxyZXN0UHJvcHM9X19yZXN0KHByb3BzLFsic2l6ZSIsImRpcmVjdGlvbiIsImJsb2NrIiwicHJlZml4Q2xzIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsImNoaWxkcmVuIl0pLG1lcmdlZFNpemU9KDAsX2NvbmZpZ19wcm92aWRlcl9ob29rc191c2VTaXplX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uWikoY3R4PT5udWxsIT1zaXplP3NpemU6Y3R4KSxwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJzcGFjZS1jb21wYWN0IixjdXN0b21pemVQcmVmaXhDbHMpLFt3cmFwQ1NTVmFyLGhhc2hJZF09KDAsX3N0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uWikocHJlZml4Q2xzKSxjbHg9Y2xhc3NuYW1lc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fX2RlZmF1bHQoKShwcmVmaXhDbHMsaGFzaElkLHtbYCR7cHJlZml4Q2xzfS1ydGxgXToicnRsIj09PWRpcmVjdGlvbkNvbmZpZyxbYCR7cHJlZml4Q2xzfS1ibG9ja2BdOmJsb2NrLFtgJHtwcmVmaXhDbHN9LXZlcnRpY2FsYF06InZlcnRpY2FsIj09PWRpcmVjdGlvbn0sY2xhc3NOYW1lLHJvb3RDbGFzc05hbWUpLGNvbXBhY3RJdGVtQ29udGV4dD1yZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnVzZUNvbnRleHQoU3BhY2VDb21wYWN0SXRlbUNvbnRleHQpLGNoaWxkTm9kZXM9KDAscmNfdXRpbF9lc19DaGlsZHJlbl90b0FycmF5X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uWikoY2hpbGRyZW4pLG5vZGVzPXJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlTWVtbygoKT0+Y2hpbGROb2Rlcy5tYXAoKGNoaWxkLGkpPT57bGV0IGtleT0obnVsbD09Y2hpbGQ/dm9pZCAwOmNoaWxkLmtleSl8fGAke3ByZWZpeENsc30taXRlbS0ke2l9YDtyZXR1cm4gcmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5jcmVhdGVFbGVtZW50KENvbXBhY3RJdGVtLHtrZXk6a2V5LGNvbXBhY3RTaXplOm1lcmdlZFNpemUsY29tcGFjdERpcmVjdGlvbjpkaXJlY3Rpb24saXNGaXJzdEl0ZW06MD09PWkmJighY29tcGFjdEl0ZW1Db250ZXh0fHwobnVsbD09Y29tcGFjdEl0ZW1Db250ZXh0P3ZvaWQgMDpjb21wYWN0SXRlbUNvbnRleHQuaXNGaXJzdEl0ZW0pKSxpc0xhc3RJdGVtOmk9PT1jaGlsZE5vZGVzLmxlbmd0aC0xJiYoIWNvbXBhY3RJdGVtQ29udGV4dHx8KG51bGw9PWNvbXBhY3RJdGVtQ29udGV4dD92b2lkIDA6Y29tcGFjdEl0ZW1Db250ZXh0LmlzTGFzdEl0ZW0pKX0sY2hpbGQpfSksW3NpemUsY2hpbGROb2Rlcyxjb21wYWN0SXRlbUNvbnRleHRdKTtyZXR1cm4gMD09PWNoaWxkTm9kZXMubGVuZ3RoP251bGw6d3JhcENTU1ZhcihyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmNyZWF0ZUVsZW1lbnQoImRpdiIsT2JqZWN0LmFzc2lnbih7Y2xhc3NOYW1lOmNseH0scmVzdFByb3BzKSxub2RlcykpfTtfX3dlYnBhY2tfZXhwb3J0c19fLlpQPUNvbXBhY3R9LDc4OTU3OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtaOmZ1bmN0aW9uKCl7cmV0dXJuIHNwYWNlfX0pO3ZhciByZWFjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSxjbGFzc25hbWVzPV9fd2VicGFja19yZXF1aXJlX18oMTMxNDQpLGNsYXNzbmFtZXNfZGVmYXVsdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oY2xhc3NuYW1lcyksdG9BcnJheT1fX3dlYnBhY2tfcmVxdWlyZV9fKDM3NDE5KTtmdW5jdGlvbiBpc1ByZXNldFNpemUoc2l6ZSl7cmV0dXJuWyJzbWFsbCIsIm1pZGRsZSIsImxhcmdlIl0uaW5jbHVkZXMoc2l6ZSl9ZnVuY3Rpb24gaXNWYWxpZEdhcE51bWJlcihzaXplKXtyZXR1cm4hIXNpemUmJiJudW1iZXIiPT10eXBlb2Ygc2l6ZSYmIU51bWJlci5pc05hTihzaXplKX12YXIgY29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDUzMTI0KSxDb21wYWN0PV9fd2VicGFja19yZXF1aXJlX18oNDE3Myk7bGV0IFNwYWNlQ29udGV4dD1yZWFjdC5jcmVhdGVDb250ZXh0KHtsYXRlc3RJbmRleDowfSksU3BhY2VDb250ZXh0UHJvdmlkZXI9U3BhY2VDb250ZXh0LlByb3ZpZGVyLEl0ZW09X3JlZj0+e2xldHtjbGFzc05hbWUsaW5kZXgsY2hpbGRyZW4sc3BsaXQsc3R5bGV9PV9yZWYse2xhdGVzdEluZGV4fT1yZWFjdC51c2VDb250ZXh0KFNwYWNlQ29udGV4dCk7cmV0dXJuIG51bGw9PWNoaWxkcmVuP251bGw6cmVhY3QuY3JlYXRlRWxlbWVudChyZWFjdC5GcmFnbWVudCxudWxsLHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpjbGFzc05hbWUsc3R5bGU6c3R5bGV9LGNoaWxkcmVuKSxpbmRleDxsYXRlc3RJbmRleCYmc3BsaXQmJnJlYWN0LmNyZWF0ZUVsZW1lbnQoInNwYW4iLHtjbGFzc05hbWU6YCR7Y2xhc3NOYW1lfS1zcGxpdGB9LHNwbGl0KSl9O3ZhciBzcGFjZV9zdHlsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDUxOTE2KSxfX3Jlc3Q9ZnVuY3Rpb24ocyxlKXt2YXIgdD17fTtmb3IodmFyIHAgaW4gcylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxwKSYmMD5lLmluZGV4T2YocCkmJih0W3BdPXNbcF0pO2lmKG51bGwhPXMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKWZvcih2YXIgaT0wLHA9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTtpPHAubGVuZ3RoO2krKykwPmUuaW5kZXhPZihwW2ldKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMscFtpXSkmJih0W3BbaV1dPXNbcFtpXV0pO3JldHVybiB0fTtsZXQgSW50ZXJuYWxTcGFjZT1yZWFjdC5mb3J3YXJkUmVmKChwcm9wcyxyZWYpPT57dmFyIF9hO2xldHtnZXRQcmVmaXhDbHMsZGlyZWN0aW9uOmRpcmVjdGlvbkNvbmZpZyxzaXplOmNvbnRleHRTaXplLGNsYXNzTmFtZTpjb250ZXh0Q2xhc3NOYW1lLHN0eWxlOmNvbnRleHRTdHlsZSxjbGFzc05hbWVzOmNvbnRleHRDbGFzc05hbWVzLHN0eWxlczpjb250ZXh0U3R5bGVzfT0oMCxjb250ZXh0LmRqKSgic3BhY2UiKSx7c2l6ZT1udWxsIT1jb250ZXh0U2l6ZT9jb250ZXh0U2l6ZToic21hbGwiLGFsaWduLGNsYXNzTmFtZSxyb290Q2xhc3NOYW1lLGNoaWxkcmVuLGRpcmVjdGlvbj0iaG9yaXpvbnRhbCIscHJlZml4Q2xzOmN1c3RvbWl6ZVByZWZpeENscyxzcGxpdCxzdHlsZSx3cmFwPSExLGNsYXNzTmFtZXM6Y3VzdG9tQ2xhc3NOYW1lcyxzdHlsZXN9PXByb3BzLG90aGVyUHJvcHM9X19yZXN0KHByb3BzLFsic2l6ZSIsImFsaWduIiwiY2xhc3NOYW1lIiwicm9vdENsYXNzTmFtZSIsImNoaWxkcmVuIiwiZGlyZWN0aW9uIiwicHJlZml4Q2xzIiwic3BsaXQiLCJzdHlsZSIsIndyYXAiLCJjbGFzc05hbWVzIiwic3R5bGVzIl0pLFtob3Jpem9udGFsU2l6ZSx2ZXJ0aWNhbFNpemVdPUFycmF5LmlzQXJyYXkoc2l6ZSk/c2l6ZTpbc2l6ZSxzaXplXSxpc1ByZXNldFZlcnRpY2FsU2l6ZT1pc1ByZXNldFNpemUodmVydGljYWxTaXplKSxpc1ByZXNldEhvcml6b250YWxTaXplPWlzUHJlc2V0U2l6ZShob3Jpem9udGFsU2l6ZSksaXNWYWxpZFZlcnRpY2FsU2l6ZT1pc1ZhbGlkR2FwTnVtYmVyKHZlcnRpY2FsU2l6ZSksaXNWYWxpZEhvcml6b250YWxTaXplPWlzVmFsaWRHYXBOdW1iZXIoaG9yaXpvbnRhbFNpemUpLGNoaWxkTm9kZXM9KDAsdG9BcnJheS5aKShjaGlsZHJlbix7a2VlcEVtcHR5OiEwfSksbWVyZ2VkQWxpZ249dm9pZCAwPT09YWxpZ24mJiJob3Jpem9udGFsIj09PWRpcmVjdGlvbj8iY2VudGVyIjphbGlnbixwcmVmaXhDbHM9Z2V0UHJlZml4Q2xzKCJzcGFjZSIsY3VzdG9taXplUHJlZml4Q2xzKSxbd3JhcENTU1ZhcixoYXNoSWQsY3NzVmFyQ2xzXT0oMCxzcGFjZV9zdHlsZS5aKShwcmVmaXhDbHMpLGNscz1jbGFzc25hbWVzX2RlZmF1bHQoKShwcmVmaXhDbHMsY29udGV4dENsYXNzTmFtZSxoYXNoSWQsYCR7cHJlZml4Q2xzfS0ke2RpcmVjdGlvbn1gLHtbYCR7cHJlZml4Q2xzfS1ydGxgXToicnRsIj09PWRpcmVjdGlvbkNvbmZpZyxbYCR7cHJlZml4Q2xzfS1hbGlnbi0ke21lcmdlZEFsaWdufWBdOm1lcmdlZEFsaWduLFtgJHtwcmVmaXhDbHN9LWdhcC1yb3ctJHt2ZXJ0aWNhbFNpemV9YF06aXNQcmVzZXRWZXJ0aWNhbFNpemUsW2Ake3ByZWZpeENsc30tZ2FwLWNvbC0ke2hvcml6b250YWxTaXplfWBdOmlzUHJlc2V0SG9yaXpvbnRhbFNpemV9LGNsYXNzTmFtZSxyb290Q2xhc3NOYW1lLGNzc1ZhckNscyksaXRlbUNsYXNzTmFtZT1jbGFzc25hbWVzX2RlZmF1bHQoKShgJHtwcmVmaXhDbHN9LWl0ZW1gLG51bGwhPT0oX2E9bnVsbD09Y3VzdG9tQ2xhc3NOYW1lcz92b2lkIDA6Y3VzdG9tQ2xhc3NOYW1lcy5pdGVtKSYmdm9pZCAwIT09X2E/X2E6Y29udGV4dENsYXNzTmFtZXMuaXRlbSksbGF0ZXN0SW5kZXg9MCxub2Rlcz1jaGlsZE5vZGVzLm1hcCgoY2hpbGQsaSk9Pnt2YXIgX2E7bnVsbCE9Y2hpbGQmJihsYXRlc3RJbmRleD1pKTtsZXQga2V5PShudWxsPT1jaGlsZD92b2lkIDA6Y2hpbGQua2V5KXx8YCR7aXRlbUNsYXNzTmFtZX0tJHtpfWA7cmV0dXJuIHJlYWN0LmNyZWF0ZUVsZW1lbnQoSXRlbSx7Y2xhc3NOYW1lOml0ZW1DbGFzc05hbWUsa2V5OmtleSxpbmRleDppLHNwbGl0OnNwbGl0LHN0eWxlOm51bGwhPT0oX2E9bnVsbD09c3R5bGVzP3ZvaWQgMDpzdHlsZXMuaXRlbSkmJnZvaWQgMCE9PV9hP19hOmNvbnRleHRTdHlsZXMuaXRlbX0sY2hpbGQpfSksc3BhY2VDb250ZXh0PXJlYWN0LnVzZU1lbW8oKCk9Pih7bGF0ZXN0SW5kZXh9KSxbbGF0ZXN0SW5kZXhdKTtpZigwPT09Y2hpbGROb2Rlcy5sZW5ndGgpcmV0dXJuIG51bGw7bGV0IGdhcFN0eWxlPXt9O3JldHVybiB3cmFwJiYoZ2FwU3R5bGUuZmxleFdyYXA9IndyYXAiKSwhaXNQcmVzZXRIb3Jpem9udGFsU2l6ZSYmaXNWYWxpZEhvcml6b250YWxTaXplJiYoZ2FwU3R5bGUuY29sdW1uR2FwPWhvcml6b250YWxTaXplKSwhaXNQcmVzZXRWZXJ0aWNhbFNpemUmJmlzVmFsaWRWZXJ0aWNhbFNpemUmJihnYXBTdHlsZS5yb3dHYXA9dmVydGljYWxTaXplKSx3cmFwQ1NTVmFyKHJlYWN0LmNyZWF0ZUVsZW1lbnQoImRpdiIsT2JqZWN0LmFzc2lnbih7cmVmOnJlZixjbGFzc05hbWU6Y2xzLHN0eWxlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGdhcFN0eWxlKSxjb250ZXh0U3R5bGUpLHN0eWxlKX0sb3RoZXJQcm9wcykscmVhY3QuY3JlYXRlRWxlbWVudChTcGFjZUNvbnRleHRQcm92aWRlcix7dmFsdWU6c3BhY2VDb250ZXh0fSxub2RlcykpKX0pLFNwYWNlPUludGVybmFsU3BhY2U7U3BhY2UuQ29tcGFjdD1Db21wYWN0LlpQO3ZhciBzcGFjZT1TcGFjZX0sNTE5MTY6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1o6ZnVuY3Rpb24oKXtyZXR1cm4gc3R5bGV9fSk7dmFyIGdlblN0eWxlVXRpbHM9X193ZWJwYWNrX3JlcXVpcmVfXyg4MzU1OSksZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0MjU1OSk7bGV0IGdlblNwYWNlQ29tcGFjdFN0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENsc309dG9rZW47cmV0dXJue1tjb21wb25lbnRDbHNdOnsiJi1ibG9jayI6e2Rpc3BsYXk6ImZsZXgiLHdpZHRoOiIxMDAlIn0sIiYtdmVydGljYWwiOntmbGV4RGlyZWN0aW9uOiJjb2x1bW4ifX19fSxnZW5TcGFjZVN0eWxlPXRva2VuPT57bGV0e2NvbXBvbmVudENscyxhbnRDbHN9PXRva2VuO3JldHVybntbY29tcG9uZW50Q2xzXTp7ZGlzcGxheToiaW5saW5lLWZsZXgiLCImLXJ0bCI6e2RpcmVjdGlvbjoicnRsIn0sIiYtdmVydGljYWwiOntmbGV4RGlyZWN0aW9uOiJjb2x1bW4ifSwiJi1hbGlnbiI6e2ZsZXhEaXJlY3Rpb246ImNvbHVtbiIsIiYtY2VudGVyIjp7YWxpZ25JdGVtczoiY2VudGVyIn0sIiYtc3RhcnQiOnthbGlnbkl0ZW1zOiJmbGV4LXN0YXJ0In0sIiYtZW5kIjp7YWxpZ25JdGVtczoiZmxleC1lbmQifSwiJi1iYXNlbGluZSI6e2FsaWduSXRlbXM6ImJhc2VsaW5lIn19LFtgJHtjb21wb25lbnRDbHN9LWl0ZW06ZW1wdHlgXTp7ZGlzcGxheToibm9uZSJ9LFtgJHtjb21wb25lbnRDbHN9LWl0ZW0gPiAke2FudENsc30tYmFkZ2Utbm90LWEtd3JhcHBlcjpvbmx5LWNoaWxkYF06e2Rpc3BsYXk6ImJsb2NrIn19fX0sZ2VuU3BhY2VHYXBTdHlsZT10b2tlbj0+e2xldHtjb21wb25lbnRDbHN9PXRva2VuO3JldHVybntbY29tcG9uZW50Q2xzXTp7IiYtZ2FwLXJvdy1zbWFsbCI6e3Jvd0dhcDp0b2tlbi5zcGFjZUdhcFNtYWxsU2l6ZX0sIiYtZ2FwLXJvdy1taWRkbGUiOntyb3dHYXA6dG9rZW4uc3BhY2VHYXBNaWRkbGVTaXplfSwiJi1nYXAtcm93LWxhcmdlIjp7cm93R2FwOnRva2VuLnNwYWNlR2FwTGFyZ2VTaXplfSwiJi1nYXAtY29sLXNtYWxsIjp7Y29sdW1uR2FwOnRva2VuLnNwYWNlR2FwU21hbGxTaXplfSwiJi1nYXAtY29sLW1pZGRsZSI6e2NvbHVtbkdhcDp0b2tlbi5zcGFjZUdhcE1pZGRsZVNpemV9LCImLWdhcC1jb2wtbGFyZ2UiOntjb2x1bW5HYXA6dG9rZW4uc3BhY2VHYXBMYXJnZVNpemV9fX19O3ZhciBzdHlsZT0oMCxnZW5TdHlsZVV0aWxzLkkkKSgiU3BhY2UiLHRva2VuPT57bGV0IHNwYWNlVG9rZW49KDAsZXMuSVgpKHRva2VuLHtzcGFjZUdhcFNtYWxsU2l6ZTp0b2tlbi5wYWRkaW5nWFMsc3BhY2VHYXBNaWRkbGVTaXplOnRva2VuLnBhZGRpbmcsc3BhY2VHYXBMYXJnZVNpemU6dG9rZW4ucGFkZGluZ0xHfSk7cmV0dXJuW2dlblNwYWNlU3R5bGUoc3BhY2VUb2tlbiksZ2VuU3BhY2VHYXBTdHlsZShzcGFjZVRva2VuKSxnZW5TcGFjZUNvbXBhY3RTdHlsZShzcGFjZVRva2VuKV19LCgpPT4oe30pLHtyZXNldFN0eWxlOiExfSl9LDgwMTEwOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGdlbkNvbXBhY3RJdGVtU3R5bGUodG9rZW4pe2xldCBvcHRpb25zPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7Zm9jdXM6ITB9LHtjb21wb25lbnRDbHN9PXRva2VuLGNvbXBhY3RDbHM9YCR7Y29tcG9uZW50Q2xzfS1jb21wYWN0YDtyZXR1cm57W2NvbXBhY3RDbHNdOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxmdW5jdGlvbih0b2tlbixwYXJlbnRDbHMsb3B0aW9ucyl7bGV0e2ZvY3VzRWxDbHMsZm9jdXMsYm9yZGVyRWxDbHN9PW9wdGlvbnMsY2hpbGRDb21iaW5hdG9yPWJvcmRlckVsQ2xzPyI+ICoiOiIiLGhvdmVyRWZmZWN0cz1bImhvdmVyIixmb2N1cz8iZm9jdXMiOm51bGwsImFjdGl2ZSJdLmZpbHRlcihCb29sZWFuKS5tYXAobj0+YCY6JHtufSAke2NoaWxkQ29tYmluYXRvcn1gKS5qb2luKCIsIik7cmV0dXJue1tgJi1pdGVtOm5vdCgke3BhcmVudENsc30tbGFzdC1pdGVtKWBdOnttYXJnaW5JbmxpbmVFbmQ6dG9rZW4uY2FsYyh0b2tlbi5saW5lV2lkdGgpLm11bCgtMSkuZXF1YWwoKX0sIiYtaXRlbSI6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtbaG92ZXJFZmZlY3RzXTp7ekluZGV4OjJ9fSxmb2N1c0VsQ2xzP3tbYCYke2ZvY3VzRWxDbHN9YF06e3pJbmRleDoyfX06e30pLHtbYCZbZGlzYWJsZWRdICR7Y2hpbGRDb21iaW5hdG9yfWBdOnt6SW5kZXg6MH19KX19KHRva2VuLGNvbXBhY3RDbHMsb3B0aW9ucykpLGZ1bmN0aW9uKHByZWZpeENscyxwYXJlbnRDbHMsb3B0aW9ucyl7bGV0e2JvcmRlckVsQ2xzfT1vcHRpb25zLGNoaWxkQ29tYmluYXRvcj1ib3JkZXJFbENscz9gPiAke2JvcmRlckVsQ2xzfWA6IiI7cmV0dXJue1tgJi1pdGVtOm5vdCgke3BhcmVudENsc30tZmlyc3QtaXRlbSk6bm90KCR7cGFyZW50Q2xzfS1sYXN0LWl0ZW0pICR7Y2hpbGRDb21iaW5hdG9yfWBdOntib3JkZXJSYWRpdXM6MH0sW2AmLWl0ZW06bm90KCR7cGFyZW50Q2xzfS1sYXN0LWl0ZW0pJHtwYXJlbnRDbHN9LWZpcnN0LWl0ZW1gXTp7W2AmICR7Y2hpbGRDb21iaW5hdG9yfSwgJiR7cHJlZml4Q2xzfS1zbSAke2NoaWxkQ29tYmluYXRvcn0sICYke3ByZWZpeENsc30tbGcgJHtjaGlsZENvbWJpbmF0b3J9YF06e2JvcmRlclN0YXJ0RW5kUmFkaXVzOjAsYm9yZGVyRW5kRW5kUmFkaXVzOjB9fSxbYCYtaXRlbTpub3QoJHtwYXJlbnRDbHN9LWZpcnN0LWl0ZW0pJHtwYXJlbnRDbHN9LWxhc3QtaXRlbWBdOntbYCYgJHtjaGlsZENvbWJpbmF0b3J9LCAmJHtwcmVmaXhDbHN9LXNtICR7Y2hpbGRDb21iaW5hdG9yfSwgJiR7cHJlZml4Q2xzfS1sZyAke2NoaWxkQ29tYmluYXRvcn1gXTp7Ym9yZGVyU3RhcnRTdGFydFJhZGl1czowLGJvcmRlckVuZFN0YXJ0UmFkaXVzOjB9fX19KGNvbXBvbmVudENscyxjb21wYWN0Q2xzLG9wdGlvbnMpKX19X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se2M6ZnVuY3Rpb24oKXtyZXR1cm4gZ2VuQ29tcGFjdEl0ZW1TdHlsZX19KX0sMTQ3NDc6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se0pUOmZ1bmN0aW9uKCl7cmV0dXJuIGdlbkljb25TdHlsZX0sTHg6ZnVuY3Rpb24oKXtyZXR1cm4gZ2VuTGlua1N0eWxlfSxOZDpmdW5jdGlvbigpe3JldHVybiBvcGVyYXRpb25Vbml0fSxReTpmdW5jdGlvbigpe3JldHVybiBnZW5Gb2N1c1N0eWxlfSxSbzpmdW5jdGlvbigpe3JldHVybiByZXNldEljb259LFdmOmZ1bmN0aW9uKCl7cmV0dXJuIHJlc2V0Q29tcG9uZW50fSxkRjpmdW5jdGlvbigpe3JldHVybiBjbGVhckZpeH0sZHU6ZnVuY3Rpb24oKXtyZXR1cm4gZ2VuQ29tbW9uU3R5bGV9LG9OOmZ1bmN0aW9uKCl7cmV0dXJuIGdlbkZvY3VzT3V0bGluZX0sdlM6ZnVuY3Rpb24oKXtyZXR1cm4gdGV4dEVsbGlwc2lzfX0pO3ZhciBfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg0NDg5OSk7bGV0IHRleHRFbGxpcHNpcz17b3ZlcmZsb3c6ImhpZGRlbiIsd2hpdGVTcGFjZToibm93cmFwIix0ZXh0T3ZlcmZsb3c6ImVsbGlwc2lzIn0scmVzZXRDb21wb25lbnQ9ZnVuY3Rpb24odG9rZW4pe2xldCBuZWVkSW5oZXJpdEZvbnRGYW1pbHk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtyZXR1cm57Ym94U2l6aW5nOiJib3JkZXItYm94IixtYXJnaW46MCxwYWRkaW5nOjAsY29sb3I6dG9rZW4uY29sb3JUZXh0LGZvbnRTaXplOnRva2VuLmZvbnRTaXplLGxpbmVIZWlnaHQ6dG9rZW4ubGluZUhlaWdodCxsaXN0U3R5bGU6Im5vbmUiLGZvbnRGYW1pbHk6bmVlZEluaGVyaXRGb250RmFtaWx5PyJpbmhlcml0Ijp0b2tlbi5mb250RmFtaWx5fX0scmVzZXRJY29uPSgpPT4oe2Rpc3BsYXk6ImlubGluZS1mbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGNvbG9yOiJpbmhlcml0Iixmb250U3R5bGU6Im5vcm1hbCIsbGluZUhlaWdodDowLHRleHRBbGlnbjoiY2VudGVyIix0ZXh0VHJhbnNmb3JtOiJub25lIix2ZXJ0aWNhbEFsaWduOiItMC4xMjVlbSIsdGV4dFJlbmRlcmluZzoib3B0aW1pemVMZWdpYmlsaXR5IiwiLXdlYmtpdC1mb250LXNtb290aGluZyI6ImFudGlhbGlhc2VkIiwiLW1vei1vc3gtZm9udC1zbW9vdGhpbmciOiJncmF5c2NhbGUiLCI+ICoiOntsaW5lSGVpZ2h0OjF9LHN2Zzp7ZGlzcGxheToiaW5saW5lLWJsb2NrIn19KSxjbGVhckZpeD0oKT0+KHsiJjo6YmVmb3JlIjp7ZGlzcGxheToidGFibGUiLGNvbnRlbnQ6JyIiJ30sIiY6OmFmdGVyIjp7ZGlzcGxheToidGFibGUiLGNsZWFyOiJib3RoIixjb250ZW50OiciIid9fSksZ2VuTGlua1N0eWxlPXRva2VuPT4oe2E6e2NvbG9yOnRva2VuLmNvbG9yTGluayx0ZXh0RGVjb3JhdGlvbjp0b2tlbi5saW5rRGVjb3JhdGlvbixiYWNrZ3JvdW5kQ29sb3I6InRyYW5zcGFyZW50IixvdXRsaW5lOiJub25lIixjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246YGNvbG9yICR7dG9rZW4ubW90aW9uRHVyYXRpb25TbG93fWAsIi13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXAiOiJvYmplY3RzIiwiJjpob3ZlciI6e2NvbG9yOnRva2VuLmNvbG9yTGlua0hvdmVyfSwiJjphY3RpdmUiOntjb2xvcjp0b2tlbi5jb2xvckxpbmtBY3RpdmV9LCImOmFjdGl2ZSwgJjpob3ZlciI6e3RleHREZWNvcmF0aW9uOnRva2VuLmxpbmtIb3ZlckRlY29yYXRpb24sb3V0bGluZTowfSwiJjpmb2N1cyI6e3RleHREZWNvcmF0aW9uOnRva2VuLmxpbmtGb2N1c0RlY29yYXRpb24sb3V0bGluZTowfSwiJltkaXNhYmxlZF0iOntjb2xvcjp0b2tlbi5jb2xvclRleHREaXNhYmxlZCxjdXJzb3I6Im5vdC1hbGxvd2VkIn19fSksZ2VuQ29tbW9uU3R5bGU9KHRva2VuLGNvbXBvbmVudFByZWZpeENscyxyb290Q2xzLHJlc2V0Rm9udCk9PntsZXQgcHJlZml4U2VsZWN0b3I9YFtjbGFzc149IiR7Y29tcG9uZW50UHJlZml4Q2xzfSJdLCBbY2xhc3MqPSIgJHtjb21wb25lbnRQcmVmaXhDbHN9Il1gLHJvb3RQcmVmaXhTZWxlY3Rvcj1yb290Q2xzP2AuJHtyb290Q2xzfWA6cHJlZml4U2VsZWN0b3IscmVzZXRTdHlsZT17Ym94U2l6aW5nOiJib3JkZXItYm94IiwiJjo6YmVmb3JlLCAmOjphZnRlciI6e2JveFNpemluZzoiYm9yZGVyLWJveCJ9fSxyZXNldEZvbnRTdHlsZT17fTtyZXR1cm4hMSE9PXJlc2V0Rm9udCYmKHJlc2V0Rm9udFN0eWxlPXtmb250RmFtaWx5OnRva2VuLmZvbnRGYW1pbHksZm9udFNpemU6dG9rZW4uZm9udFNpemV9KSx7W3Jvb3RQcmVmaXhTZWxlY3Rvcl06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scmVzZXRGb250U3R5bGUpLHJlc2V0U3R5bGUpLHtbcHJlZml4U2VsZWN0b3JdOnJlc2V0U3R5bGV9KX19LGdlbkZvY3VzT3V0bGluZT0odG9rZW4sb2Zmc2V0KT0+KHtvdXRsaW5lOmAkeygwLF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5iZikodG9rZW4ubGluZVdpZHRoRm9jdXMpfSBzb2xpZCAke3Rva2VuLmNvbG9yUHJpbWFyeUJvcmRlcn1gLG91dGxpbmVPZmZzZXQ6bnVsbCE9b2Zmc2V0P29mZnNldDoxLHRyYW5zaXRpb246Im91dGxpbmUtb2Zmc2V0IDBzLCBvdXRsaW5lIDBzIn0pLGdlbkZvY3VzU3R5bGU9KHRva2VuLG9mZnNldCk9Pih7IiY6Zm9jdXMtdmlzaWJsZSI6T2JqZWN0LmFzc2lnbih7fSxnZW5Gb2N1c091dGxpbmUodG9rZW4sb2Zmc2V0KSl9KSxnZW5JY29uU3R5bGU9aWNvblByZWZpeENscz0+KHtbYC4ke2ljb25QcmVmaXhDbHN9YF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHJlc2V0SWNvbigpKSx7W2AuJHtpY29uUHJlZml4Q2xzfSAuJHtpY29uUHJlZml4Q2xzfS1pY29uYF06e2Rpc3BsYXk6ImJsb2NrIn19KX0pLG9wZXJhdGlvblVuaXQ9dG9rZW49Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7Y29sb3I6dG9rZW4uY29sb3JMaW5rLHRleHREZWNvcmF0aW9uOnRva2VuLmxpbmtEZWNvcmF0aW9uLG91dGxpbmU6Im5vbmUiLGN1cnNvcjoicG9pbnRlciIsdHJhbnNpdGlvbjpgYWxsICR7dG9rZW4ubW90aW9uRHVyYXRpb25TbG93fWAsYm9yZGVyOjAscGFkZGluZzowLGJhY2tncm91bmQ6Im5vbmUiLHVzZXJTZWxlY3Q6Im5vbmUifSxnZW5Gb2N1c1N0eWxlKHRva2VuKSkseyImOmZvY3VzLCAmOmhvdmVyIjp7Y29sb3I6dG9rZW4uY29sb3JMaW5rSG92ZXJ9LCImOmFjdGl2ZSI6e2NvbG9yOnRva2VuLmNvbG9yTGlua0FjdGl2ZX19KX0sMzM1MDc6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyl7InVzZSBzdHJpY3QiO2xldCBnZW5Db2xsYXBzZU1vdGlvbj10b2tlbj0+KHtbdG9rZW4uY29tcG9uZW50Q2xzXTp7W2Ake3Rva2VuLmFudENsc30tbW90aW9uLWNvbGxhcHNlLWxlZ2FjeWBdOntvdmVyZmxvdzoiaGlkZGVuIiwiJi1hY3RpdmUiOnt0cmFuc2l0aW9uOmBoZWlnaHQgJHt0b2tlbi5tb3Rpb25EdXJhdGlvbk1pZH0gJHt0b2tlbi5tb3Rpb25FYXNlSW5PdXR9LAogICAgICAgIG9wYWNpdHkgJHt0b2tlbi5tb3Rpb25EdXJhdGlvbk1pZH0gJHt0b2tlbi5tb3Rpb25FYXNlSW5PdXR9ICFpbXBvcnRhbnRgfX0sW2Ake3Rva2VuLmFudENsc30tbW90aW9uLWNvbGxhcHNlYF06e292ZXJmbG93OiJoaWRkZW4iLHRyYW5zaXRpb246YGhlaWdodCAke3Rva2VuLm1vdGlvbkR1cmF0aW9uTWlkfSAke3Rva2VuLm1vdGlvbkVhc2VJbk91dH0sCiAgICAgICAgb3BhY2l0eSAke3Rva2VuLm1vdGlvbkR1cmF0aW9uTWlkfSAke3Rva2VuLm1vdGlvbkVhc2VJbk91dH0gIWltcG9ydGFudGB9fX0pO19fd2VicGFja19leHBvcnRzX18uWj1nZW5Db2xsYXBzZU1vdGlvbn0sOTM1OTA6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1I6ZnVuY3Rpb24oKXtyZXR1cm4gaW5pdE1vdGlvbn19KTtsZXQgaW5pdE1vdGlvbkNvbW1vbj1kdXJhdGlvbj0+KHthbmltYXRpb25EdXJhdGlvbjpkdXJhdGlvbixhbmltYXRpb25GaWxsTW9kZToiYm90aCJ9KSxpbml0TW90aW9uQ29tbW9uTGVhdmU9ZHVyYXRpb249Pih7YW5pbWF0aW9uRHVyYXRpb246ZHVyYXRpb24sYW5pbWF0aW9uRmlsbE1vZGU6ImJvdGgifSksaW5pdE1vdGlvbj1mdW5jdGlvbihtb3Rpb25DbHMsaW5LZXlmcmFtZXMsb3V0S2V5ZnJhbWVzLGR1cmF0aW9uKXtsZXQgc2FtZUxldmVsPWFyZ3VtZW50cy5sZW5ndGg+NCYmdm9pZCAwIT09YXJndW1lbnRzWzRdJiZhcmd1bWVudHNbNF0sc2FtZUxldmVsUHJlZml4PXNhbWVMZXZlbD8iJiI6IiI7cmV0dXJue1tgCiAgICAgICR7c2FtZUxldmVsUHJlZml4fSR7bW90aW9uQ2xzfS1lbnRlciwKICAgICAgJHtzYW1lTGV2ZWxQcmVmaXh9JHttb3Rpb25DbHN9LWFwcGVhcgogICAgYF06T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGluaXRNb3Rpb25Db21tb24oZHVyYXRpb24pKSx7YW5pbWF0aW9uUGxheVN0YXRlOiJwYXVzZWQifSksW2Ake3NhbWVMZXZlbFByZWZpeH0ke21vdGlvbkNsc30tbGVhdmVgXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saW5pdE1vdGlvbkNvbW1vbkxlYXZlKGR1cmF0aW9uKSkse2FuaW1hdGlvblBsYXlTdGF0ZToicGF1c2VkIn0pLFtgCiAgICAgICR7c2FtZUxldmVsUHJlZml4fSR7bW90aW9uQ2xzfS1lbnRlciR7bW90aW9uQ2xzfS1lbnRlci1hY3RpdmUsCiAgICAgICR7c2FtZUxldmVsUHJlZml4fSR7bW90aW9uQ2xzfS1hcHBlYXIke21vdGlvbkNsc30tYXBwZWFyLWFjdGl2ZQogICAgYF06e2FuaW1hdGlvbk5hbWU6aW5LZXlmcmFtZXMsYW5pbWF0aW9uUGxheVN0YXRlOiJydW5uaW5nIn0sW2Ake3NhbWVMZXZlbFByZWZpeH0ke21vdGlvbkNsc30tbGVhdmUke21vdGlvbkNsc30tbGVhdmUtYWN0aXZlYF06e2FuaW1hdGlvbk5hbWU6b3V0S2V5ZnJhbWVzLGFuaW1hdGlvblBsYXlTdGF0ZToicnVubmluZyIscG9pbnRlckV2ZW50czoibm9uZSJ9fX19LDMzMjk3OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtGbTpmdW5jdGlvbigpe3JldHVybiBpbml0TW92ZU1vdGlvbn19KTt2YXIgX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNDQ4OTkpLF9tb3Rpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDkzNTkwKTtsZXQgbW92ZURvd25Jbj1uZXcgX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkU0KCJhbnRNb3ZlRG93bkluIix7IjAlIjp7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKSIsdHJhbnNmb3JtT3JpZ2luOiIwIDAiLG9wYWNpdHk6MH0sIjEwMCUiOnt0cmFuc2Zvcm06InRyYW5zbGF0ZTNkKDAsIDAsIDApIix0cmFuc2Zvcm1PcmlnaW46IjAgMCIsb3BhY2l0eToxfX0pLG1vdmVEb3duT3V0PW5ldyBfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRTQoImFudE1vdmVEb3duT3V0Iix7IjAlIjp7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgwLCAwLCAwKSIsdHJhbnNmb3JtT3JpZ2luOiIwIDAiLG9wYWNpdHk6MX0sIjEwMCUiOnt0cmFuc2Zvcm06InRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApIix0cmFuc2Zvcm1PcmlnaW46IjAgMCIsb3BhY2l0eTowfX0pLG1vdmVMZWZ0SW49bmV3IF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5FNCgiYW50TW92ZUxlZnRJbiIseyIwJSI6e3RyYW5zZm9ybToidHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApIix0cmFuc2Zvcm1PcmlnaW46IjAgMCIsb3BhY2l0eTowfSwiMTAwJSI6e3RyYW5zZm9ybToidHJhbnNsYXRlM2QoMCwgMCwgMCkiLHRyYW5zZm9ybU9yaWdpbjoiMCAwIixvcGFjaXR5OjF9fSksbW92ZUxlZnRPdXQ9bmV3IF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5FNCgiYW50TW92ZUxlZnRPdXQiLHsiMCUiOnt0cmFuc2Zvcm06InRyYW5zbGF0ZTNkKDAsIDAsIDApIix0cmFuc2Zvcm1PcmlnaW46IjAgMCIsb3BhY2l0eToxfSwiMTAwJSI6e3RyYW5zZm9ybToidHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApIix0cmFuc2Zvcm1PcmlnaW46IjAgMCIsb3BhY2l0eTowfX0pLG1vdmVSaWdodEluPW5ldyBfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRTQoImFudE1vdmVSaWdodEluIix7IjAlIjp7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSIsdHJhbnNmb3JtT3JpZ2luOiIwIDAiLG9wYWNpdHk6MH0sIjEwMCUiOnt0cmFuc2Zvcm06InRyYW5zbGF0ZTNkKDAsIDAsIDApIix0cmFuc2Zvcm1PcmlnaW46IjAgMCIsb3BhY2l0eToxfX0pLG1vdmVSaWdodE91dD1uZXcgX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkU0KCJhbnRNb3ZlUmlnaHRPdXQiLHsiMCUiOnt0cmFuc2Zvcm06InRyYW5zbGF0ZTNkKDAsIDAsIDApIix0cmFuc2Zvcm1PcmlnaW46IjAgMCIsb3BhY2l0eToxfSwiMTAwJSI6e3RyYW5zZm9ybToidHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkiLHRyYW5zZm9ybU9yaWdpbjoiMCAwIixvcGFjaXR5OjB9fSksbW92ZVVwSW49bmV3IF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5FNCgiYW50TW92ZVVwSW4iLHsiMCUiOnt0cmFuc2Zvcm06InRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKSIsdHJhbnNmb3JtT3JpZ2luOiIwIDAiLG9wYWNpdHk6MH0sIjEwMCUiOnt0cmFuc2Zvcm06InRyYW5zbGF0ZTNkKDAsIDAsIDApIix0cmFuc2Zvcm1PcmlnaW46IjAgMCIsb3BhY2l0eToxfX0pLG1vdmVVcE91dD1uZXcgX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkU0KCJhbnRNb3ZlVXBPdXQiLHsiMCUiOnt0cmFuc2Zvcm06InRyYW5zbGF0ZTNkKDAsIDAsIDApIix0cmFuc2Zvcm1PcmlnaW46IjAgMCIsb3BhY2l0eToxfSwiMTAwJSI6e3RyYW5zZm9ybToidHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApIix0cmFuc2Zvcm1PcmlnaW46IjAgMCIsb3BhY2l0eTowfX0pLG1vdmVNb3Rpb249eyJtb3ZlLXVwIjp7aW5LZXlmcmFtZXM6bW92ZVVwSW4sb3V0S2V5ZnJhbWVzOm1vdmVVcE91dH0sIm1vdmUtZG93biI6e2luS2V5ZnJhbWVzOm1vdmVEb3duSW4sb3V0S2V5ZnJhbWVzOm1vdmVEb3duT3V0fSwibW92ZS1sZWZ0Ijp7aW5LZXlmcmFtZXM6bW92ZUxlZnRJbixvdXRLZXlmcmFtZXM6bW92ZUxlZnRPdXR9LCJtb3ZlLXJpZ2h0Ijp7aW5LZXlmcmFtZXM6bW92ZVJpZ2h0SW4sb3V0S2V5ZnJhbWVzOm1vdmVSaWdodE91dH19LGluaXRNb3ZlTW90aW9uPSh0b2tlbixtb3Rpb25OYW1lKT0+e2xldHthbnRDbHN9PXRva2VuLG1vdGlvbkNscz1gJHthbnRDbHN9LSR7bW90aW9uTmFtZX1gLHtpbktleWZyYW1lcyxvdXRLZXlmcmFtZXN9PW1vdmVNb3Rpb25bbW90aW9uTmFtZV07cmV0dXJuWygwLF9tb3Rpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5SKShtb3Rpb25DbHMsaW5LZXlmcmFtZXMsb3V0S2V5ZnJhbWVzLHRva2VuLm1vdGlvbkR1cmF0aW9uTWlkKSx7W2AKICAgICAgICAke21vdGlvbkNsc30tZW50ZXIsCiAgICAgICAgJHttb3Rpb25DbHN9LWFwcGVhcgogICAgICBgXTp7b3BhY2l0eTowLGFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOnRva2VuLm1vdGlvbkVhc2VPdXRDaXJjfSxbYCR7bW90aW9uQ2xzfS1sZWF2ZWBdOnthbmltYXRpb25UaW1pbmdGdW5jdGlvbjp0b2tlbi5tb3Rpb25FYXNlSW5PdXRDaXJjfX1dfX0sNjc3NzE6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1F0OmZ1bmN0aW9uKCl7cmV0dXJuIHNsaWRlRG93bklufSxVdzpmdW5jdGlvbigpe3JldHVybiBzbGlkZVVwT3V0fSxmSjpmdW5jdGlvbigpe3JldHVybiBzbGlkZVVwSW59LGx5OmZ1bmN0aW9uKCl7cmV0dXJuIHNsaWRlRG93bk91dH0sb046ZnVuY3Rpb24oKXtyZXR1cm4gaW5pdFNsaWRlTW90aW9ufX0pO3ZhciBfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg0NDg5OSksX21vdGlvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oOTM1OTApO2xldCBzbGlkZVVwSW49bmV3IF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5FNCgiYW50U2xpZGVVcEluIix7IjAlIjp7dHJhbnNmb3JtOiJzY2FsZVkoMC44KSIsdHJhbnNmb3JtT3JpZ2luOiIwJSAwJSIsb3BhY2l0eTowfSwiMTAwJSI6e3RyYW5zZm9ybToic2NhbGVZKDEpIix0cmFuc2Zvcm1PcmlnaW46IjAlIDAlIixvcGFjaXR5OjF9fSksc2xpZGVVcE91dD1uZXcgX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkU0KCJhbnRTbGlkZVVwT3V0Iix7IjAlIjp7dHJhbnNmb3JtOiJzY2FsZVkoMSkiLHRyYW5zZm9ybU9yaWdpbjoiMCUgMCUiLG9wYWNpdHk6MX0sIjEwMCUiOnt0cmFuc2Zvcm06InNjYWxlWSgwLjgpIix0cmFuc2Zvcm1PcmlnaW46IjAlIDAlIixvcGFjaXR5OjB9fSksc2xpZGVEb3duSW49bmV3IF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5FNCgiYW50U2xpZGVEb3duSW4iLHsiMCUiOnt0cmFuc2Zvcm06InNjYWxlWSgwLjgpIix0cmFuc2Zvcm1PcmlnaW46IjEwMCUgMTAwJSIsb3BhY2l0eTowfSwiMTAwJSI6e3RyYW5zZm9ybToic2NhbGVZKDEpIix0cmFuc2Zvcm1PcmlnaW46IjEwMCUgMTAwJSIsb3BhY2l0eToxfX0pLHNsaWRlRG93bk91dD1uZXcgX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkU0KCJhbnRTbGlkZURvd25PdXQiLHsiMCUiOnt0cmFuc2Zvcm06InNjYWxlWSgxKSIsdHJhbnNmb3JtT3JpZ2luOiIxMDAlIDEwMCUiLG9wYWNpdHk6MX0sIjEwMCUiOnt0cmFuc2Zvcm06InNjYWxlWSgwLjgpIix0cmFuc2Zvcm1PcmlnaW46IjEwMCUgMTAwJSIsb3BhY2l0eTowfX0pLHNsaWRlTGVmdEluPW5ldyBfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRTQoImFudFNsaWRlTGVmdEluIix7IjAlIjp7dHJhbnNmb3JtOiJzY2FsZVgoMC44KSIsdHJhbnNmb3JtT3JpZ2luOiIwJSAwJSIsb3BhY2l0eTowfSwiMTAwJSI6e3RyYW5zZm9ybToic2NhbGVYKDEpIix0cmFuc2Zvcm1PcmlnaW46IjAlIDAlIixvcGFjaXR5OjF9fSksc2xpZGVMZWZ0T3V0PW5ldyBfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRTQoImFudFNsaWRlTGVmdE91dCIseyIwJSI6e3RyYW5zZm9ybToic2NhbGVYKDEpIix0cmFuc2Zvcm1PcmlnaW46IjAlIDAlIixvcGFjaXR5OjF9LCIxMDAlIjp7dHJhbnNmb3JtOiJzY2FsZVgoMC44KSIsdHJhbnNmb3JtT3JpZ2luOiIwJSAwJSIsb3BhY2l0eTowfX0pLHNsaWRlUmlnaHRJbj1uZXcgX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkU0KCJhbnRTbGlkZVJpZ2h0SW4iLHsiMCUiOnt0cmFuc2Zvcm06InNjYWxlWCgwLjgpIix0cmFuc2Zvcm1PcmlnaW46IjEwMCUgMCUiLG9wYWNpdHk6MH0sIjEwMCUiOnt0cmFuc2Zvcm06InNjYWxlWCgxKSIsdHJhbnNmb3JtT3JpZ2luOiIxMDAlIDAlIixvcGFjaXR5OjF9fSksc2xpZGVSaWdodE91dD1uZXcgX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkU0KCJhbnRTbGlkZVJpZ2h0T3V0Iix7IjAlIjp7dHJhbnNmb3JtOiJzY2FsZVgoMSkiLHRyYW5zZm9ybU9yaWdpbjoiMTAwJSAwJSIsb3BhY2l0eToxfSwiMTAwJSI6e3RyYW5zZm9ybToic2NhbGVYKDAuOCkiLHRyYW5zZm9ybU9yaWdpbjoiMTAwJSAwJSIsb3BhY2l0eTowfX0pLHNsaWRlTW90aW9uPXsic2xpZGUtdXAiOntpbktleWZyYW1lczpzbGlkZVVwSW4sb3V0S2V5ZnJhbWVzOnNsaWRlVXBPdXR9LCJzbGlkZS1kb3duIjp7aW5LZXlmcmFtZXM6c2xpZGVEb3duSW4sb3V0S2V5ZnJhbWVzOnNsaWRlRG93bk91dH0sInNsaWRlLWxlZnQiOntpbktleWZyYW1lczpzbGlkZUxlZnRJbixvdXRLZXlmcmFtZXM6c2xpZGVMZWZ0T3V0fSwic2xpZGUtcmlnaHQiOntpbktleWZyYW1lczpzbGlkZVJpZ2h0SW4sb3V0S2V5ZnJhbWVzOnNsaWRlUmlnaHRPdXR9fSxpbml0U2xpZGVNb3Rpb249KHRva2VuLG1vdGlvbk5hbWUpPT57bGV0e2FudENsc309dG9rZW4sbW90aW9uQ2xzPWAke2FudENsc30tJHttb3Rpb25OYW1lfWAse2luS2V5ZnJhbWVzLG91dEtleWZyYW1lc309c2xpZGVNb3Rpb25bbW90aW9uTmFtZV07cmV0dXJuWygwLF9tb3Rpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5SKShtb3Rpb25DbHMsaW5LZXlmcmFtZXMsb3V0S2V5ZnJhbWVzLHRva2VuLm1vdGlvbkR1cmF0aW9uTWlkKSx7W2AKICAgICAgJHttb3Rpb25DbHN9LWVudGVyLAogICAgICAke21vdGlvbkNsc30tYXBwZWFyCiAgICBgXTp7dHJhbnNmb3JtOiJzY2FsZSgwKSIsdHJhbnNmb3JtT3JpZ2luOiIwJSAwJSIsb3BhY2l0eTowLGFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOnRva2VuLm1vdGlvbkVhc2VPdXRRdWludCwiJi1wcmVwYXJlIjp7dHJhbnNmb3JtOiJzY2FsZSgxKSJ9fSxbYCR7bW90aW9uQ2xzfS1sZWF2ZWBdOnthbmltYXRpb25UaW1pbmdGdW5jdGlvbjp0b2tlbi5tb3Rpb25FYXNlSW5RdWludH19XX19LDUwNDM4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtfeTpmdW5jdGlvbigpe3JldHVybiBpbml0Wm9vbU1vdGlvbn0sa3I6ZnVuY3Rpb24oKXtyZXR1cm4gem9vbUlufX0pO3ZhciBfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg0NDg5OSksX21vdGlvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oOTM1OTApO2xldCB6b29tSW49bmV3IF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5FNCgiYW50Wm9vbUluIix7IjAlIjp7dHJhbnNmb3JtOiJzY2FsZSgwLjIpIixvcGFjaXR5OjB9LCIxMDAlIjp7dHJhbnNmb3JtOiJzY2FsZSgxKSIsb3BhY2l0eToxfX0pLHpvb21PdXQ9bmV3IF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5FNCgiYW50Wm9vbU91dCIseyIwJSI6e3RyYW5zZm9ybToic2NhbGUoMSkifSwiMTAwJSI6e3RyYW5zZm9ybToic2NhbGUoMC4yKSIsb3BhY2l0eTowfX0pLHpvb21CaWdJbj1uZXcgX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkU0KCJhbnRab29tQmlnSW4iLHsiMCUiOnt0cmFuc2Zvcm06InNjYWxlKDAuOCkiLG9wYWNpdHk6MH0sIjEwMCUiOnt0cmFuc2Zvcm06InNjYWxlKDEpIixvcGFjaXR5OjF9fSksem9vbUJpZ091dD1uZXcgX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkU0KCJhbnRab29tQmlnT3V0Iix7IjAlIjp7dHJhbnNmb3JtOiJzY2FsZSgxKSJ9LCIxMDAlIjp7dHJhbnNmb3JtOiJzY2FsZSgwLjgpIixvcGFjaXR5OjB9fSksem9vbVVwSW49bmV3IF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5FNCgiYW50Wm9vbVVwSW4iLHsiMCUiOnt0cmFuc2Zvcm06InNjYWxlKDAuOCkiLHRyYW5zZm9ybU9yaWdpbjoiNTAlIDAlIixvcGFjaXR5OjB9LCIxMDAlIjp7dHJhbnNmb3JtOiJzY2FsZSgxKSIsdHJhbnNmb3JtT3JpZ2luOiI1MCUgMCUifX0pLHpvb21VcE91dD1uZXcgX2FudF9kZXNpZ25fY3NzaW5qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkU0KCJhbnRab29tVXBPdXQiLHsiMCUiOnt0cmFuc2Zvcm06InNjYWxlKDEpIix0cmFuc2Zvcm1PcmlnaW46IjUwJSAwJSJ9LCIxMDAlIjp7dHJhbnNmb3JtOiJzY2FsZSgwLjgpIix0cmFuc2Zvcm1PcmlnaW46IjUwJSAwJSIsb3BhY2l0eTowfX0pLHpvb21MZWZ0SW49bmV3IF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5FNCgiYW50Wm9vbUxlZnRJbiIseyIwJSI6e3RyYW5zZm9ybToic2NhbGUoMC44KSIsdHJhbnNmb3JtT3JpZ2luOiIwJSA1MCUiLG9wYWNpdHk6MH0sIjEwMCUiOnt0cmFuc2Zvcm06InNjYWxlKDEpIix0cmFuc2Zvcm1PcmlnaW46IjAlIDUwJSJ9fSksem9vbUxlZnRPdXQ9bmV3IF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5FNCgiYW50Wm9vbUxlZnRPdXQiLHsiMCUiOnt0cmFuc2Zvcm06InNjYWxlKDEpIix0cmFuc2Zvcm1PcmlnaW46IjAlIDUwJSJ9LCIxMDAlIjp7dHJhbnNmb3JtOiJzY2FsZSgwLjgpIix0cmFuc2Zvcm1PcmlnaW46IjAlIDUwJSIsb3BhY2l0eTowfX0pLHpvb21SaWdodEluPW5ldyBfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRTQoImFudFpvb21SaWdodEluIix7IjAlIjp7dHJhbnNmb3JtOiJzY2FsZSgwLjgpIix0cmFuc2Zvcm1PcmlnaW46IjEwMCUgNTAlIixvcGFjaXR5OjB9LCIxMDAlIjp7dHJhbnNmb3JtOiJzY2FsZSgxKSIsdHJhbnNmb3JtT3JpZ2luOiIxMDAlIDUwJSJ9fSksem9vbVJpZ2h0T3V0PW5ldyBfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRTQoImFudFpvb21SaWdodE91dCIseyIwJSI6e3RyYW5zZm9ybToic2NhbGUoMSkiLHRyYW5zZm9ybU9yaWdpbjoiMTAwJSA1MCUifSwiMTAwJSI6e3RyYW5zZm9ybToic2NhbGUoMC44KSIsdHJhbnNmb3JtT3JpZ2luOiIxMDAlIDUwJSIsb3BhY2l0eTowfX0pLHpvb21Eb3duSW49bmV3IF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5FNCgiYW50Wm9vbURvd25JbiIseyIwJSI6e3RyYW5zZm9ybToic2NhbGUoMC44KSIsdHJhbnNmb3JtT3JpZ2luOiI1MCUgMTAwJSIsb3BhY2l0eTowfSwiMTAwJSI6e3RyYW5zZm9ybToic2NhbGUoMSkiLHRyYW5zZm9ybU9yaWdpbjoiNTAlIDEwMCUifX0pLHpvb21Eb3duT3V0PW5ldyBfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uRTQoImFudFpvb21Eb3duT3V0Iix7IjAlIjp7dHJhbnNmb3JtOiJzY2FsZSgxKSIsdHJhbnNmb3JtT3JpZ2luOiI1MCUgMTAwJSJ9LCIxMDAlIjp7dHJhbnNmb3JtOiJzY2FsZSgwLjgpIix0cmFuc2Zvcm1PcmlnaW46IjUwJSAxMDAlIixvcGFjaXR5OjB9fSksem9vbU1vdGlvbj17em9vbTp7aW5LZXlmcmFtZXM6em9vbUluLG91dEtleWZyYW1lczp6b29tT3V0fSwiem9vbS1iaWciOntpbktleWZyYW1lczp6b29tQmlnSW4sb3V0S2V5ZnJhbWVzOnpvb21CaWdPdXR9LCJ6b29tLWJpZy1mYXN0Ijp7aW5LZXlmcmFtZXM6em9vbUJpZ0luLG91dEtleWZyYW1lczp6b29tQmlnT3V0fSwiem9vbS1sZWZ0Ijp7aW5LZXlmcmFtZXM6em9vbUxlZnRJbixvdXRLZXlmcmFtZXM6em9vbUxlZnRPdXR9LCJ6b29tLXJpZ2h0Ijp7aW5LZXlmcmFtZXM6em9vbVJpZ2h0SW4sb3V0S2V5ZnJhbWVzOnpvb21SaWdodE91dH0sInpvb20tdXAiOntpbktleWZyYW1lczp6b29tVXBJbixvdXRLZXlmcmFtZXM6em9vbVVwT3V0fSwiem9vbS1kb3duIjp7aW5LZXlmcmFtZXM6em9vbURvd25JbixvdXRLZXlmcmFtZXM6em9vbURvd25PdXR9fSxpbml0Wm9vbU1vdGlvbj0odG9rZW4sbW90aW9uTmFtZSk9PntsZXR7YW50Q2xzfT10b2tlbixtb3Rpb25DbHM9YCR7YW50Q2xzfS0ke21vdGlvbk5hbWV9YCx7aW5LZXlmcmFtZXMsb3V0S2V5ZnJhbWVzfT16b29tTW90aW9uW21vdGlvbk5hbWVdO3JldHVyblsoMCxfbW90aW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uUikobW90aW9uQ2xzLGluS2V5ZnJhbWVzLG91dEtleWZyYW1lcywiem9vbS1iaWctZmFzdCI9PT1tb3Rpb25OYW1lP3Rva2VuLm1vdGlvbkR1cmF0aW9uRmFzdDp0b2tlbi5tb3Rpb25EdXJhdGlvbk1pZCkse1tgCiAgICAgICAgJHttb3Rpb25DbHN9LWVudGVyLAogICAgICAgICR7bW90aW9uQ2xzfS1hcHBlYXIKICAgICAgYF06e3RyYW5zZm9ybToic2NhbGUoMCkiLG9wYWNpdHk6MCxhbmltYXRpb25UaW1pbmdGdW5jdGlvbjp0b2tlbi5tb3Rpb25FYXNlT3V0Q2lyYywiJi1wcmVwYXJlIjp7dHJhbnNmb3JtOiJub25lIn19LFtgJHttb3Rpb25DbHN9LWxlYXZlYF06e2FuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOnRva2VuLm1vdGlvbkVhc2VJbk91dENpcmN9fV19fSw5NzQxNDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WlA6ZnVuY3Rpb24oKXtyZXR1cm4gZ2V0QXJyb3dTdHlsZX0scU46ZnVuY3Rpb24oKXtyZXR1cm4gTUFYX1ZFUlRJQ0FMX0NPTlRFTlRfUkFESVVTfSx3WjpmdW5jdGlvbigpe3JldHVybiBnZXRBcnJvd09mZnNldFRva2VufX0pO3ZhciBfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg0NDg5OSksX3JvdW5kZWRBcnJvd19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oNzk1MTEpO2xldCBNQVhfVkVSVElDQUxfQ09OVEVOVF9SQURJVVM9ODtmdW5jdGlvbiBnZXRBcnJvd09mZnNldFRva2VuKG9wdGlvbnMpe2xldHtjb250ZW50UmFkaXVzLGxpbWl0VmVydGljYWxSYWRpdXN9PW9wdGlvbnMsYXJyb3dPZmZzZXQ9Y29udGVudFJhZGl1cz4xMj9jb250ZW50UmFkaXVzKzI6MTI7cmV0dXJue2Fycm93T2Zmc2V0SG9yaXpvbnRhbDphcnJvd09mZnNldCxhcnJvd09mZnNldFZlcnRpY2FsOmxpbWl0VmVydGljYWxSYWRpdXM/TUFYX1ZFUlRJQ0FMX0NPTlRFTlRfUkFESVVTOmFycm93T2Zmc2V0fX1mdW5jdGlvbiBnZXRBcnJvd1N0eWxlKHRva2VuLGNvbG9yQmcsb3B0aW9ucyl7dmFyIHZhbGlkLGNvZGUsdmFsaWQxLGNvZGUxLHZhbGlkMixjb2RlMix2YWxpZDMsY29kZTM7bGV0e2NvbXBvbmVudENscyxib3hTaGFkb3dQb3BvdmVyQXJyb3csYXJyb3dPZmZzZXRWZXJ0aWNhbCxhcnJvd09mZnNldEhvcml6b250YWx9PXRva2VuLHthcnJvd0Rpc3RhbmNlPTAsYXJyb3dQbGFjZW1lbnQ9e2xlZnQ6ITAscmlnaHQ6ITAsdG9wOiEwLGJvdHRvbTohMH19PW9wdGlvbnN8fHt9O3JldHVybntbY29tcG9uZW50Q2xzXTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHtbYCR7Y29tcG9uZW50Q2xzfS1hcnJvd2BdOltPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsekluZGV4OjEsZGlzcGxheToiYmxvY2sifSwoMCxfcm91bmRlZEFycm93X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uVykodG9rZW4sY29sb3JCZyxib3hTaGFkb3dQb3BvdmVyQXJyb3cpKSx7IiY6YmVmb3JlIjp7YmFja2dyb3VuZDpjb2xvckJnfX0pXX0sKHZhbGlkPSEhYXJyb3dQbGFjZW1lbnQudG9wLGNvZGU9e1tgJi1wbGFjZW1lbnQtdG9wID4gJHtjb21wb25lbnRDbHN9LWFycm93LCYtcGxhY2VtZW50LXRvcExlZnQgPiAke2NvbXBvbmVudENsc30tYXJyb3csJi1wbGFjZW1lbnQtdG9wUmlnaHQgPiAke2NvbXBvbmVudENsc30tYXJyb3dgXTp7Ym90dG9tOmFycm93RGlzdGFuY2UsdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDEwMCUpIHJvdGF0ZSgxODBkZWcpIn0sW2AmLXBsYWNlbWVudC10b3AgPiAke2NvbXBvbmVudENsc30tYXJyb3dgXTp7bGVmdDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOiI1MCUifSx0cmFuc2Zvcm06InRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgxMDAlKSByb3RhdGUoMTgwZGVnKSJ9LCImLXBsYWNlbWVudC10b3BMZWZ0Ijp7Ii0tYXJyb3ctb2Zmc2V0LWhvcml6b250YWwiOmFycm93T2Zmc2V0SG9yaXpvbnRhbCxbYD4gJHtjb21wb25lbnRDbHN9LWFycm93YF06e2xlZnQ6e19za2lwX2NoZWNrXzohMCx2YWx1ZTphcnJvd09mZnNldEhvcml6b250YWx9fX0sIiYtcGxhY2VtZW50LXRvcFJpZ2h0Ijp7Ii0tYXJyb3ctb2Zmc2V0LWhvcml6b250YWwiOmBjYWxjKDEwMCUgLSAkeygwLF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5iZikoYXJyb3dPZmZzZXRIb3Jpem9udGFsKX0pYCxbYD4gJHtjb21wb25lbnRDbHN9LWFycm93YF06e3JpZ2h0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6YXJyb3dPZmZzZXRIb3Jpem9udGFsfX19fSx2YWxpZD9jb2RlOnt9KSksKHZhbGlkMT0hIWFycm93UGxhY2VtZW50LmJvdHRvbSxjb2RlMT17W2AmLXBsYWNlbWVudC1ib3R0b20gPiAke2NvbXBvbmVudENsc30tYXJyb3csJi1wbGFjZW1lbnQtYm90dG9tTGVmdCA+ICR7Y29tcG9uZW50Q2xzfS1hcnJvdywmLXBsYWNlbWVudC1ib3R0b21SaWdodCA+ICR7Y29tcG9uZW50Q2xzfS1hcnJvd2BdOnt0b3A6YXJyb3dEaXN0YW5jZSx0cmFuc2Zvcm06InRyYW5zbGF0ZVkoLTEwMCUpIn0sW2AmLXBsYWNlbWVudC1ib3R0b20gPiAke2NvbXBvbmVudENsc30tYXJyb3dgXTp7bGVmdDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOiI1MCUifSx0cmFuc2Zvcm06InRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMTAwJSkifSwiJi1wbGFjZW1lbnQtYm90dG9tTGVmdCI6eyItLWFycm93LW9mZnNldC1ob3Jpem9udGFsIjphcnJvd09mZnNldEhvcml6b250YWwsW2A+ICR7Y29tcG9uZW50Q2xzfS1hcnJvd2BdOntsZWZ0Ontfc2tpcF9jaGVja186ITAsdmFsdWU6YXJyb3dPZmZzZXRIb3Jpem9udGFsfX19LCImLXBsYWNlbWVudC1ib3R0b21SaWdodCI6eyItLWFycm93LW9mZnNldC1ob3Jpem9udGFsIjpgY2FsYygxMDAlIC0gJHsoMCxfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uYmYpKGFycm93T2Zmc2V0SG9yaXpvbnRhbCl9KWAsW2A+ICR7Y29tcG9uZW50Q2xzfS1hcnJvd2BdOntyaWdodDp7X3NraXBfY2hlY2tfOiEwLHZhbHVlOmFycm93T2Zmc2V0SG9yaXpvbnRhbH19fX0sdmFsaWQxP2NvZGUxOnt9KSksKHZhbGlkMj0hIWFycm93UGxhY2VtZW50LmxlZnQsY29kZTI9e1tgJi1wbGFjZW1lbnQtbGVmdCA+ICR7Y29tcG9uZW50Q2xzfS1hcnJvdywmLXBsYWNlbWVudC1sZWZ0VG9wID4gJHtjb21wb25lbnRDbHN9LWFycm93LCYtcGxhY2VtZW50LWxlZnRCb3R0b20gPiAke2NvbXBvbmVudENsc30tYXJyb3dgXTp7cmlnaHQ6e19za2lwX2NoZWNrXzohMCx2YWx1ZTphcnJvd0Rpc3RhbmNlfSx0cmFuc2Zvcm06InRyYW5zbGF0ZVgoMTAwJSkgcm90YXRlKDkwZGVnKSJ9LFtgJi1wbGFjZW1lbnQtbGVmdCA+ICR7Y29tcG9uZW50Q2xzfS1hcnJvd2BdOnt0b3A6e19za2lwX2NoZWNrXzohMCx2YWx1ZToiNTAlIn0sdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoMTAwJSkgcm90YXRlKDkwZGVnKSJ9LFtgJi1wbGFjZW1lbnQtbGVmdFRvcCA+ICR7Y29tcG9uZW50Q2xzfS1hcnJvd2BdOnt0b3A6YXJyb3dPZmZzZXRWZXJ0aWNhbH0sW2AmLXBsYWNlbWVudC1sZWZ0Qm90dG9tID4gJHtjb21wb25lbnRDbHN9LWFycm93YF06e2JvdHRvbTphcnJvd09mZnNldFZlcnRpY2FsfX0sdmFsaWQyP2NvZGUyOnt9KSksKHZhbGlkMz0hIWFycm93UGxhY2VtZW50LnJpZ2h0LGNvZGUzPXtbYCYtcGxhY2VtZW50LXJpZ2h0ID4gJHtjb21wb25lbnRDbHN9LWFycm93LCYtcGxhY2VtZW50LXJpZ2h0VG9wID4gJHtjb21wb25lbnRDbHN9LWFycm93LCYtcGxhY2VtZW50LXJpZ2h0Qm90dG9tID4gJHtjb21wb25lbnRDbHN9LWFycm93YF06e2xlZnQ6e19za2lwX2NoZWNrXzohMCx2YWx1ZTphcnJvd0Rpc3RhbmNlfSx0cmFuc2Zvcm06InRyYW5zbGF0ZVgoLTEwMCUpIHJvdGF0ZSgtOTBkZWcpIn0sW2AmLXBsYWNlbWVudC1yaWdodCA+ICR7Y29tcG9uZW50Q2xzfS1hcnJvd2BdOnt0b3A6e19za2lwX2NoZWNrXzohMCx2YWx1ZToiNTAlIn0sdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTEwMCUpIHJvdGF0ZSgtOTBkZWcpIn0sW2AmLXBsYWNlbWVudC1yaWdodFRvcCA+ICR7Y29tcG9uZW50Q2xzfS1hcnJvd2BdOnt0b3A6YXJyb3dPZmZzZXRWZXJ0aWNhbH0sW2AmLXBsYWNlbWVudC1yaWdodEJvdHRvbSA+ICR7Y29tcG9uZW50Q2xzfS1hcnJvd2BdOntib3R0b206YXJyb3dPZmZzZXRWZXJ0aWNhbH19LHZhbGlkMz9jb2RlMzp7fSkpfX19LDc5NTExOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtXOmZ1bmN0aW9uKCl7cmV0dXJuIGdlblJvdW5kZWRBcnJvd30sdzpmdW5jdGlvbigpe3JldHVybiBnZXRBcnJvd1Rva2VufX0pO3ZhciBfYW50X2Rlc2lnbl9jc3NpbmpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg0NDg5OSk7ZnVuY3Rpb24gZ2V0QXJyb3dUb2tlbih0b2tlbil7bGV0e3NpemVQb3B1cEFycm93LGJvcmRlclJhZGl1c1hTLGJvcmRlclJhZGl1c091dGVyfT10b2tlbix1bml0V2lkdGg9c2l6ZVBvcHVwQXJyb3cvMixieD0xKmJvcmRlclJhZGl1c091dGVyL01hdGguc3FydCgyKSxieT11bml0V2lkdGgtYm9yZGVyUmFkaXVzT3V0ZXIqKDEtMS9NYXRoLnNxcnQoMikpLGN4PXVuaXRXaWR0aC1ib3JkZXJSYWRpdXNYUyooMS9NYXRoLnNxcnQoMikpLGN5PWJvcmRlclJhZGl1c091dGVyKihNYXRoLnNxcnQoMiktMSkrYm9yZGVyUmFkaXVzWFMqKDEvTWF0aC5zcXJ0KDIpKSxwb2x5Z29uT2Zmc2V0PWJvcmRlclJhZGl1c091dGVyKihNYXRoLnNxcnQoMiktMSksYXJyb3dQb2x5Z29uPWBwb2x5Z29uKCR7cG9seWdvbk9mZnNldH1weCAxMDAlLCA1MCUgJHtwb2x5Z29uT2Zmc2V0fXB4LCAkezIqdW5pdFdpZHRoLXBvbHlnb25PZmZzZXR9cHggMTAwJSwgJHtwb2x5Z29uT2Zmc2V0fXB4IDEwMCUpYCxhcnJvd1BhdGg9YHBhdGgoJ00gMCAke3VuaXRXaWR0aH0gQSAke2JvcmRlclJhZGl1c091dGVyfSAke2JvcmRlclJhZGl1c091dGVyfSAwIDAgMCAke2J4fSAke2J5fSBMICR7Y3h9ICR7Y3l9IEEgJHtib3JkZXJSYWRpdXNYU30gJHtib3JkZXJSYWRpdXNYU30gMCAwIDEgJHsyKnVuaXRXaWR0aC1jeH0gJHtjeX0gTCAkezIqdW5pdFdpZHRoLWJ4fSAke2J5fSBBICR7Ym9yZGVyUmFkaXVzT3V0ZXJ9ICR7Ym9yZGVyUmFkaXVzT3V0ZXJ9IDAgMCAwICR7Mip1bml0V2lkdGgtMH0gJHt1bml0V2lkdGh9IFonKWA7cmV0dXJue2Fycm93U2hhZG93V2lkdGg6dW5pdFdpZHRoKk1hdGguc3FydCgyKStib3JkZXJSYWRpdXNPdXRlciooTWF0aC5zcXJ0KDIpLTIpLGFycm93UGF0aCxhcnJvd1BvbHlnb259fWxldCBnZW5Sb3VuZGVkQXJyb3c9KHRva2VuLGJnQ29sb3IsYm94U2hhZG93KT0+e2xldHtzaXplUG9wdXBBcnJvdyxhcnJvd1BvbHlnb24sYXJyb3dQYXRoLGFycm93U2hhZG93V2lkdGgsYm9yZGVyUmFkaXVzWFMsY2FsY309dG9rZW47cmV0dXJue3BvaW50ZXJFdmVudHM6Im5vbmUiLHdpZHRoOnNpemVQb3B1cEFycm93LGhlaWdodDpzaXplUG9wdXBBcnJvdyxvdmVyZmxvdzoiaGlkZGVuIiwiJjo6YmVmb3JlIjp7cG9zaXRpb246ImFic29sdXRlIixib3R0b206MCxpbnNldElubGluZVN0YXJ0OjAsd2lkdGg6c2l6ZVBvcHVwQXJyb3csaGVpZ2h0OmNhbGMoc2l6ZVBvcHVwQXJyb3cpLmRpdigyKS5lcXVhbCgpLGJhY2tncm91bmQ6YmdDb2xvcixjbGlwUGF0aDp7X211bHRpX3ZhbHVlXzohMCx2YWx1ZTpbYXJyb3dQb2x5Z29uLGFycm93UGF0aF19LGNvbnRlbnQ6JyIiJ30sIiY6OmFmdGVyIjp7Y29udGVudDonIiInLHBvc2l0aW9uOiJhYnNvbHV0ZSIsd2lkdGg6YXJyb3dTaGFkb3dXaWR0aCxoZWlnaHQ6YXJyb3dTaGFkb3dXaWR0aCxib3R0b206MCxpbnNldElubGluZTowLG1hcmdpbjoiYXV0byIsYm9yZGVyUmFkaXVzOntfc2tpcF9jaGVja186ITAsdmFsdWU6YDAgMCAkeygwLF9hbnRfZGVzaWduX2Nzc2luanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5iZikoYm9yZGVyUmFkaXVzWFMpfSAwYH0sdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKDUwJSkgcm90YXRlKC0xMzVkZWcpIixib3hTaGFkb3csekluZGV4OjAsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQifX19fSwzMzA4MzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7TWo6ZnVuY3Rpb24oKXtyZXR1cm4gRGVzaWduVG9rZW5Db250ZXh0fSx1XzpmdW5jdGlvbigpe3JldHVybiBkZWZhdWx0Q29uZmlnfX0pO3ZhciByZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLF90aGVtZXNfc2VlZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oMjc5MCk7bGV0IGRlZmF1bHRDb25maWc9e3Rva2VuOl90aGVtZXNfc2VlZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlosb3ZlcnJpZGU6e292ZXJyaWRlOl90aGVtZXNfc2VlZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlp9LGhhc2hlZDohMH0sRGVzaWduVG9rZW5Db250ZXh0PXJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uY3JlYXRlQ29udGV4dChkZWZhdWx0Q29uZmlnKX0sOTM2MTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7WjpmdW5jdGlvbigpe3JldHVybiB0aGVtZX19KTt2YXIgZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0NDg5OSksZGVmYXVsdF90aGVtZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDMxNTY3KSxzZWVkPV9fd2VicGFja19yZXF1aXJlX18oMjc5MCksYWxpYXM9X193ZWJwYWNrX3JlcXVpcmVfXyg5MjM3Mik7bGV0IGdldERlc2lnblRva2VuPWNvbmZpZz0+e2xldCB0aGVtZT0obnVsbD09Y29uZmlnP3ZvaWQgMDpjb25maWcuYWxnb3JpdGhtKT8oMCxlcy5qRykoY29uZmlnLmFsZ29yaXRobSk6ZGVmYXVsdF90aGVtZS5aLG1lcmdlZFRva2VuPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxzZWVkLlopLG51bGw9PWNvbmZpZz92b2lkIDA6Y29uZmlnLnRva2VuKTtyZXR1cm4oMCxlcy50MikobWVyZ2VkVG9rZW4se292ZXJyaWRlOm51bGw9PWNvbmZpZz92b2lkIDA6Y29uZmlnLnRva2VufSx0aGVtZSxhbGlhcy5aKX07dmFyIHVzZVRva2VuPV9fd2VicGFja19yZXF1aXJlX18oMjU5NzYpLGNvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXygzMzA4MyksdGhlbWVzX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzE2NCksZ2VuQ29udHJvbEhlaWdodD1fX3dlYnBhY2tfcmVxdWlyZV9fKDM3MiksZ2VuRm9udE1hcFRva2VuPV9fd2VicGFja19yZXF1aXJlX18oNjk1OTQpO2xldCBkZXJpdmF0aXZlPSh0b2tlbixtYXBUb2tlbik9PntsZXQgbWVyZ2VkTWFwVG9rZW49bnVsbCE9bWFwVG9rZW4/bWFwVG9rZW46KDAsdGhlbWVzX2RlZmF1bHQuWikodG9rZW4pLGZvbnRTaXplPW1lcmdlZE1hcFRva2VuLmZvbnRTaXplU00sY29udHJvbEhlaWdodD1tZXJnZWRNYXBUb2tlbi5jb250cm9sSGVpZ2h0LTQ7cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxtZXJnZWRNYXBUb2tlbiksZnVuY3Rpb24odG9rZW4pe2xldHtzaXplVW5pdCxzaXplU3RlcH09dG9rZW4sY29tcGFjdFNpemVTdGVwPXNpemVTdGVwLTI7cmV0dXJue3NpemVYWEw6c2l6ZVVuaXQqKGNvbXBhY3RTaXplU3RlcCsxMCksc2l6ZVhMOnNpemVVbml0Kihjb21wYWN0U2l6ZVN0ZXArNiksc2l6ZUxHOnNpemVVbml0Kihjb21wYWN0U2l6ZVN0ZXArMiksc2l6ZU1EOnNpemVVbml0Kihjb21wYWN0U2l6ZVN0ZXArMiksc2l6ZU1TOnNpemVVbml0Kihjb21wYWN0U2l6ZVN0ZXArMSksc2l6ZTpzaXplVW5pdCpjb21wYWN0U2l6ZVN0ZXAsc2l6ZVNNOnNpemVVbml0KmNvbXBhY3RTaXplU3RlcCxzaXplWFM6c2l6ZVVuaXQqKGNvbXBhY3RTaXplU3RlcC0xKSxzaXplWFhTOnNpemVVbml0Kihjb21wYWN0U2l6ZVN0ZXAtMSl9fShudWxsIT1tYXBUb2tlbj9tYXBUb2tlbjp0b2tlbikpLCgwLGdlbkZvbnRNYXBUb2tlbi5aKShmb250U2l6ZSkpLHtjb250cm9sSGVpZ2h0fSksKDAsZ2VuQ29udHJvbEhlaWdodC5aKShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbWVyZ2VkTWFwVG9rZW4pLHtjb250cm9sSGVpZ2h0fSkpKX07dmFyIGNvbG9yc19lcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDg0ODk4KSxnZW5Db2xvck1hcFRva2VuPV9fd2VicGFja19yZXF1aXJlX18oNTcpLGZhc3RfY29sb3JfZXM9X193ZWJwYWNrX3JlcXVpcmVfXygyNDMyNyk7bGV0IGdldEFscGhhQ29sb3I9KGJhc2VDb2xvcixhbHBoYSk9Pm5ldyBmYXN0X2NvbG9yX2VzLnQoYmFzZUNvbG9yKS5zZXRBKGFscGhhKS50b1JnYlN0cmluZygpLGdldFNvbGlkQ29sb3I9KGJhc2VDb2xvcixicmlnaHRuZXNzKT0+e2xldCBpbnN0YW5jZT1uZXcgZmFzdF9jb2xvcl9lcy50KGJhc2VDb2xvcik7cmV0dXJuIGluc3RhbmNlLmxpZ2h0ZW4oYnJpZ2h0bmVzcykudG9IZXhTdHJpbmcoKX0sZ2VuZXJhdGVDb2xvclBhbGV0dGVzPWJhc2VDb2xvcj0+e2xldCBjb2xvcnM9KDAsY29sb3JzX2VzLlJfKShiYXNlQ29sb3Ise3RoZW1lOiJkYXJrIn0pO3JldHVybnsxOmNvbG9yc1swXSwyOmNvbG9yc1sxXSwzOmNvbG9yc1syXSw0OmNvbG9yc1szXSw1OmNvbG9yc1s2XSw2OmNvbG9yc1s1XSw3OmNvbG9yc1s0XSw4OmNvbG9yc1s2XSw5OmNvbG9yc1s1XSwxMDpjb2xvcnNbNF19fSxnZW5lcmF0ZU5ldXRyYWxDb2xvclBhbGV0dGVzPShiZ0Jhc2VDb2xvcix0ZXh0QmFzZUNvbG9yKT0+e2xldCBjb2xvckJnQmFzZT1iZ0Jhc2VDb2xvcnx8IiMwMDAiLGNvbG9yVGV4dEJhc2U9dGV4dEJhc2VDb2xvcnx8IiNmZmYiO3JldHVybntjb2xvckJnQmFzZSxjb2xvclRleHRCYXNlLGNvbG9yVGV4dDpnZXRBbHBoYUNvbG9yKGNvbG9yVGV4dEJhc2UsLjg1KSxjb2xvclRleHRTZWNvbmRhcnk6Z2V0QWxwaGFDb2xvcihjb2xvclRleHRCYXNlLC42NSksY29sb3JUZXh0VGVydGlhcnk6Z2V0QWxwaGFDb2xvcihjb2xvclRleHRCYXNlLC40NSksY29sb3JUZXh0UXVhdGVybmFyeTpnZXRBbHBoYUNvbG9yKGNvbG9yVGV4dEJhc2UsLjI1KSxjb2xvckZpbGw6Z2V0QWxwaGFDb2xvcihjb2xvclRleHRCYXNlLC4xOCksY29sb3JGaWxsU2Vjb25kYXJ5OmdldEFscGhhQ29sb3IoY29sb3JUZXh0QmFzZSwuMTIpLGNvbG9yRmlsbFRlcnRpYXJ5OmdldEFscGhh"}},"time_used":6,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"api.buvei.com/v1/b/visit/stat/save","fqdn":"api.buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:49.569Z","timestamp":1785127669569,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"OPTIONS /v1/b/visit/stat/save HTTP/1.1\r\nHost: api.buvei.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nAccess-Control-Request-Method: POST\r\nAccess-Control-Request-Headers: content-type\r\nReferer: https://buvei.com/\r\nOrigin: https://buvei.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\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"OPTIONS"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-length: 0\r\nset-cookie: AWSALBTG=wZHhtsO97tWU/tYsIv7uovGQvqRxTczoghPtEitoDGoVsfVI4Vww9XUplX+CdZ17FW68zNO32Q7J86IX1YnBn4Y2XdiqLvIV1zKp345iDJWekbdxZcawPAq9qJJUTSp0jGAmKQ0xcoAT8/laEldHW6Do8ahShaL0Gz7O484yJ9lN/pa+Yps=; Expires=Mon, 03 Aug 2026 04:47:49 GMT; Path=/\nAWSALBTGCORS=wZHhtsO97tWU/tYsIv7uovGQvqRxTczoghPtEitoDGoVsfVI4Vww9XUplX+CdZ17FW68zNO32Q7J86IX1YnBn4Y2XdiqLvIV1zKp345iDJWekbdxZcawPAq9qJJUTSp0jGAmKQ0xcoAT8/laEldHW6Do8ahShaL0Gz7O484yJ9lN/pa+Yps=; Expires=Mon, 03 Aug 2026 04:47:49 GMT; Path=/; SameSite=None; Secure\r\naccess-control-allow-origin: https://buvei.com\r\naccess-control-allow-credentials: true\r\naccess-control-allow-methods: POST,GET,OPTIONS,PUT,DELETE,PATCH,HEAD\r\naccess-control-allow-max-age: 3600\r\naccess-control-allow-headers: Referer,Origin,X-Requested-With,Content-Type,Accept,Authorization,X-Device,X-VERSION\r\ncf-cache-status: DYNAMIC\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=mpZ4YNqy8SLbGPhUzu1bgln6OUKSDBhRiWb8QyBcLAFHphwQBBekFUrsFq8Iu0ND5OC0NWWYQMU5NSWXNM8qt%2BdV9%2BX1RHnORvXm3AYwBr8uTq9bTXo4PSjK7m6s810%3D\"}]}\r\nserver: cloudflare\r\ncf-ray: a219021f2e4e5a0f-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"]}],"data":{"size":0,"size_decoded":1308,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-03T14:27:57.238673Z","times_seen":17691327,"resource_available":true,"data":""}},"time_used":462,"timings":{"blocked":0,"dns":40,"connect":1,"send":0,"wait":411,"receive":0,"ssl":10},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"client.crisp.chat/static/javascripts/features/chat_default_23e4212.js","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:50.252Z","timestamp":1785127670252,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /static/javascripts/features/chat_default_23e4212.js HTTP/1.1\r\nHost: client.crisp.chat\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://buvei.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://client.crisp.chat/static/javascripts/main_default_23e42123.js\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-type: application/javascript\r\naccess-control-allow-credentials: false\r\naccess-control-allow-headers: Content-Type, Origin\r\naccess-control-allow-methods: HEAD, GET, OPTIONS\r\naccess-control-allow-origin: *\r\naccess-control-max-age: 300\r\ncache-control: public, max-age=315360000\r\ncross-origin-resource-policy: cross-origin\r\nx-content-type-options: nosniff\r\nexpires: Thu, 24 Jul 2036 04:47:50 GMT\r\nlast-modified: Tue, 21 Jul 2026 15:59:21 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\npriority: u=3,i=?0\r\nage: 30810\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: W/\"6a5f9759-20ceb\"\r\ncontent-encoding: br\r\ncf-ray: a21902231b29c759-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"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":134379,"size_decoded":35351,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (65280)","md5":"623d9c929f8a62d35103cb7a1cd84d08","sha1":"1e306add908e799ec63ab0afffca1404c5cd0571","sha256":"3190e96ac86ba529fe100a6d684a93ef5702867cc0f483724a87367956004410","sha512":"9a324f960dc1ea620bb9a8e8b8c855ab9ba9b3be1b1c99060905e8034616e41bce2e68b5f2e1340734b8617960e69ee50500df4b5ceb434789f6f9b341dea7d9","ssdeep":"1536:8tOS+HXh8T4O5baSDt18TZXRMi0NW7zDowfB0qi2EFdU7hay:8IRHR8zbaNRH0I6p/U7h/","tlshash":"aad3b6556205a93a02f711dff891344072793e96c8c8043af7bc6d7e26dcd9872abfa4","first_seen":"2026-07-21T21:10:40.910548Z","last_seen":"2026-07-29T15:29:45.69266Z","times_seen":13,"resource_available":true,"data":"LyoqCiAqIGNyaXNwLWNsaWVudAogKiBAdmVyc2lvbiB2NC44LjcgMjNlNDIxMgogKiBAYXV0aG9yIENyaXNwIElNIFNBUwogKiBAZGF0ZSA3LzIxLzIwMjYKICovCmNvbnN0IF9fdml0ZV9fbWFwRGVwcz0oaSxtPV9fdml0ZV9fbWFwRGVwcyxkPShtLmZ8fChtLmY9WyJzdHlsZXNoZWV0cy9jbGllbnRfZGVmYXVsdF8yM2U0MjEyLmNzcyIsInN0eWxlc2hlZXRzL2NvbW1vbl9kZWZhdWx0XzIzZTQyMTIuY3NzIl0pKSk9PmkubWFwKGk9PmRbaV0pOwp2YXIgX19jcmVhdGU9T2JqZWN0LmNyZWF0ZSxfX2RlZlByb3A9T2JqZWN0LmRlZmluZVByb3BlcnR5LF9fZ2V0T3duUHJvcERlc2M9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixfX2dldE93blByb3BOYW1lcz1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyxfX2dldFByb3RvT2Y9T2JqZWN0LmdldFByb3RvdHlwZU9mLF9faGFzT3duUHJvcD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LF9fY29tbW9uSlNNaW49KGUsdCk9PigpPT4odHx8ZSgodD17ZXhwb3J0czp7fX0pLmV4cG9ydHMsdCksdC5leHBvcnRzKSxfX2V4cG9ydEFsbD0oZSx0KT0+e2xldCByPXt9O2Zvcih2YXIgbCBpbiBlKV9fZGVmUHJvcChyLGwse2dldDplW2xdLGVudW1lcmFibGU6ITB9KTtyZXR1cm4gdHx8X19kZWZQcm9wKHIsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pLHJ9LF9fdG9FU009KGUsdCxyKT0+KHI9bnVsbCE9ZT9fX2NyZWF0ZShfX2dldFByb3RvT2YoZSkpOnt9LCgoZSx0LHIsbCk9PntpZih0JiYib2JqZWN0Ij09dHlwZW9mIHR8fCJmdW5jdGlvbiI9PXR5cGVvZiB0KWZvcih2YXIgYSx1PV9fZ2V0T3duUHJvcE5hbWVzKHQpLGI9MCxuPXUubGVuZ3RoO2I8bjtiKyspYT11W2JdLF9faGFzT3duUHJvcC5jYWxsKGUsYSl8fGE9PT1yfHxfX2RlZlByb3AoZSxhLHtnZXQ6KGU9PnRbZV0pLmJpbmQobnVsbCxhKSxlbnVtZXJhYmxlOiEobD1fX2dldE93blByb3BEZXNjKHQsYSkpfHxsLmVudW1lcmFibGV9KTtyZXR1cm4gZX0pKCF0JiZlJiZlLnQ/cjpfX2RlZlByb3AociwiZGVmYXVsdCIse3ZhbHVlOmUsZW51bWVyYWJsZTohMH0pLGUpKTtpbXBvcnR7Q3QgYXMgZSxQIGFzIGMsYyBhcyB0LGYgYXMgYSxnIGFzIHMsaCBhcyBsLGkgYXMgbixsIGFzIGksbSBhcyBvLG4gYXMgcixwIGFzIGgsciBhcyBkLHMgYXMgcCx0IGFzIHUsdnQgYXMgbSx4dCBhcyBmLHl0IGFzIGt9ZnJvbSIuLi9jbGllbnRfZGVmYXVsdF8yM2U0MjEyLmpzIjtpbXBvcnR7QyBhcyB5LEYgYXMgdixJIGFzIGcsTiBhcyBiLE8gYXMgQyxQIGFzIHcsUiBhcyB4LFMgYXMgaixUIGFzIHEsXyBhcyB6LGEgYXMgUyxiIGFzIEYsYyBhcyBQLGQgYXMgVCxmIGFzIEIsaCBhcyBJLGkgYXMgTSxqIGFzIEEsbCBhcyBMLG0gYXMgRCxuIGFzIEUsbyBhcyBWLHAgYXMgSCxyIGFzIFIscyBhcyBLLHQgYXMgTyx2IGFzIFUsdyBhcyBOLHggYXMgVyx5IGFzIFoseiBhcyBHfWZyb20iLi4vY29tbW9uX2RlZmF1bHRfMjNlNDIxMi5qcyI7dmFyIFE9dShxKHtwcm9wczp7Y29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6InJlZCIsdmFsaWRhdG9yOmU9PlsicmVkIiwid2hpdGUtZml4ZWQiXS5pbmNsdWRlcyhlKX0sY291bnQ6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MH0sc2l6ZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiZGVmYXVsdCIsdmFsaWRhdG9yOmU9Plsic21hbGwiLCJkZWZhdWx0Il0uaW5jbHVkZXMoZSl9fX0pLFtbInJlbmRlciIsZnVuY3Rpb24oZSxjLHQsYSxzLGwpe3JldHVybiBBKCksRigic3BhbiIse2NsYXNzOm0oWyJjYy12ZDhzcyIsImNjLXZkOHNzLS0iK2Uuc2l6ZSwiY2MtdmQ4c3MtLSIrZS5jb2xvciwiY2MtMTBjcXMiXSl9LGYoZS5jb3VudCksMyl9XV0pLFk9WyJhcmlhLXByZXNzZWQiLCJhcmlhLWxhYmVsIl0sSj17a2V5OjAsY2xhc3M6ImNjLWp2azhqIGNjLTEwY3FzIn07dmFyIFg9dShxKHtjb21wb25lbnRzOntVbnJlYWRDb3VudGVyOlF9LHByb3BzOntjb3VudGVyOnt0eXBlOk51bWJlcixkZWZhdWx0OjB9LGRpc2FibGVkOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0saW5kZXg6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MH0sbW9kZTp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LHNob3dUZXh0Ont0eXBlOkJvb2xlYW4sZGVmYXVsdDohMH0sdGV4dDp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9fSxlbWl0czpbInBpY2siXSxjb21wdXRlZDp7aXNBY3RpdmUoKXtyZXR1cm4gZC5jaGF0Lm1vZGU9PT10aGlzLm1vZGV9LGxheW91dENvbG9yaXplZDooKT0+ImNvbG9yaXplZCI9PT1kLndlYnNpdGU/LmNoYXQ/LmxheW91dF90aGVtZX0sbWV0aG9kczp7b25DbGljayhlKXt0aGlzLiRlbWl0KCJwaWNrIixlKX19fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7Y29uc3Qgbj12KCJ1bnJlYWQtY291bnRlciIpLGk9ZygiY3Jpc3AtYWNjZXNzaWJpbGl0eSIpO3JldHVybiBHKChBKCksRigiZGl2Iix7b25DbGljazpjWzBdfHwoY1swXT1EKGM9PmUub25DbGljayhlLm1vZGUpLFsic3RvcCIsInByZXZlbnQiXSkpLCJhcmlhLXByZXNzZWQiOmUuaXNBY3RpdmU/InRydWUiOiJmYWxzZSIsImFyaWEtbGFiZWwiOmUudGV4dCxjbGFzczptKFsiY2MtMTdiemQiLCJjYy0xN2J6ZC0tIitlLm1vZGUsImNjLTU1ZzZkIiwiY2MtNTVnNmQtLSIrZS5tb2RlLHsiY2MtMTdiemQtLWxheW91dC1jb2xvcml6ZWQiOmUubGF5b3V0Q29sb3JpemVkLCJjYy0xN2J6ZC0tYWN0aXZlIjplLmlzQWN0aXZlLCJjYy0xN2J6ZC0tZGlzYWJsZWQiOmUuZGlzYWJsZWQsImNjLTE3YnpkLS1pY29uLW9ubHkiOiFlLnNob3dUZXh0LCJjYy0xaTRsMSI6ZS5pc0FjdGl2ZSYmKGUuc2hvd1RleHR8fCFlLmxheW91dENvbG9yaXplZCl9XSl9LFtjWzFdfHwoY1sxXT16KCJzcGFuIix7Y2xhc3M6ImNjLXl4eDNlIGNjLW95ZXZmIn0sbnVsbCwtMSkpLGUuc2hvd1RleHQ/KEEoKSxGKCJzcGFuIixKLGYoZS50ZXh0KSwxKSk6WigiIiwhMCksZS5jb3VudGVyPjA/KEEoKSxVKG4se2tleToxLGNsYXNzOiJjYy0xdjU0biIsY291bnQ6ZS5jb3VudGVyLGNvbG9yOmUuaXNBY3RpdmU/IndoaXRlLWZpeGVkIjoicmVkIixzaXplOiJzbWFsbCJ9LG51bGwsOCxbImNvdW50IiwiY29sb3IiXSkpOlooIiIsITApXSwxMCxZKSksW1tpLHtyb2xlOiJidXR0b24ifV1dKX1dXSk7dmFyIGVlPXUocSh7Y29tcG9uZW50czp7Q2hhdEhlYWRlck1vZGU6WH0scHJvcHM6e21vZGVDbGFzczp7dHlwZTpTdHJpbmcsZGVmYXVsdDpudWxsfX0sY29tcHV0ZWQ6e21vZGVzKCl7bGV0IGU9e2xlZnQ6W10sbWlkZGxlOltdLHJpZ2h0OltdfTtyZXR1cm4gZC53ZWJzaXRlPy5jaGF0Py5ob21lJiZlLmxlZnQucHVzaCgiaG9tZSIpLGQuaGVscGRlc2suc2V0dGluZ3Nfb25seXx8ZS5taWRkbGUucHVzaCgiY2hhdCIpLGQuaGVscGRlc2suc2V0dGluZ3Nfc2VhcmNoJiZlLm1pZGRsZS5wdXNoKCJoZWxwZGVzayIpLGQud2Vic2l0ZT8uY2hhdD8ub3ZlcmxheV9zZWFyY2gmJmUubWlkZGxlLnB1c2goInNlYXJjaCIpLGV9fSxtZXRob2RzOntnZXRNb2RlVGV4dChlKXtyZXR1cm4gdGhpcy4kcmVuZGVyLl9lKCJjaGF0IixgY2hhdF9oZWFkZXJfbW9kZV8ke2V9YCl9LG9uTW9kZVBpY2soZSl7ZC5jaGF0LmNoYW5nZU1vZGUoZSl9fX0pLFtbInJlbmRlciIsZnVuY3Rpb24oZSxjLHQsYSxzLGwpe2NvbnN0IG49digiY2hhdC1oZWFkZXItbW9kZSIpO3JldHVybiBBKCksRigic3BhbiIse2NsYXNzOm0oWyJjYy1kamJhdyIseyJjYy1kamJhdy0tbGF5b3V0LWNvbG9yaXplZCI6ImNvbG9yaXplZCI9PT1lLiRzdG9yZS53ZWJzaXRlPy5jaGF0Py5sYXlvdXRfdGhlbWV9XSl9LFsoQSghMCksRihJLG51bGwsYihlLm1vZGVzLCh0LGEpPT4oQSgpLEYoImRpdiIse29uQ2xpY2s6Y1swXXx8KGNbMF09RCgoKT0+e30sWyJzdG9wIl0pKSxrZXk6YG1vZGVfJHthfWAsY2xhc3M6bShbeyJjYy0xcDM5ZCI6ImxlZnQiPT09YSwiY2MtMTQ1YjEiOiJtaWRkbGUiPT09YSwiY2MtM2V1MDIiOiJyaWdodCI9PT1hfV0pfSxbKEEoITApLEYoSSxudWxsLGIodCwoYyx0KT0+KEEoKSxVKG4se2tleTpgbW9kZV8ke2F9XyR7dH1gLG9uUGljazplLm9uTW9kZVBpY2ssY2xhc3M6bShlLm1vZGVDbGFzcyksZGlzYWJsZWQ6ImhlbHBkZXNrIj09PWMmJiEoIWUuJHN0b3JlLmNoYXQuaGFzX29mZmxpbmV8fCJoZWxwZGVzayI9PT1lLiRzdG9yZS5jaGF0Lm1vZGUpLGNvdW50ZXI6ImNoYXQiPT09Yz9lLiRzdG9yZS5jaGF0LmNvbnZlcnNhdGlvbnMuYWxsX3VucmVhZF9jb3VudDowLHRleHQ6ZS5nZXRNb2RlVGV4dChjKSwic2hvdy10ZXh0IjoibWlkZGxlIj09PWEsbW9kZTpjLGluZGV4OnR9LG51bGwsOCxbIm9uUGljayIsImNsYXNzIiwiZGlzYWJsZWQiLCJjb3VudGVyIiwidGV4dCIsInNob3ctdGV4dCIsIm1vZGUiLCJpbmRleCJdKSkpLDEyOCkpXSwyKSkpLDEyOCkpXSwyKX1dXSksY2U9e2NsYXNzOiJjYy1sYm14cSJ9LHRlPXtjbGFzczoiY2MtMTNtaHUgY2MtMWxsN2oifSxhZT17Y2xhc3M6ImNjLTE4YzljIn0sc2U9e2NsYXNzOiJjYy0xeHJsdSBjYy0xMGNxcyJ9LGxlPXtjbGFzczoiY2MtMTloYnIifTt2YXIgbmU9dSh7fSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyl7cmV0dXJuIEEoKSxGKCJzcGFuIix7Y2xhc3M6bShbImNjLTZmdmVsIix7ImNjLTZmdmVsLS1sYXlvdXQtY29sb3JpemVkIjoiY29sb3JpemVkIj09PWUuJHN0b3JlLndlYnNpdGU/LmNoYXQ/LmxheW91dF90aGVtZX1dKX0sW3ooInNwYW4iLGNlLFt6KCJzcGFuIix0ZSxbeigic3BhbiIse2NsYXNzOiJjYy1vcnhkcyBjYy0xZjJ6MiIsc3R5bGU6ayh7YmFja2dyb3VuZEltYWdlOmUuJHJlbmRlci5pbWFnZVVybEJhY2tncm91bmQoZS4kcmVuZGVyLl9hKDEyMCwid2Vic2l0ZSIsZS4kc3RvcmUuYmFzZS53ZWJzaXRlPy5pZCkpfSl9LG51bGwsNCldKSx6KCJzcGFuIixhZSxbeigic3BhbiIsc2UsZihlLiRzdG9yZS53ZWJzaXRlLndlYnNpdGUubmFtZSksMSkseigic3BhbiIsbGUsZihlLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2hlYWRlcl9ob21lX2xhYmVsIikpLDEpXSldKV0sMil9XV0pLGllPXtrZXk6MCxjbGFzczoiY2MtMXJ2b3YifSxvZT17Y2xhc3M6ImNjLXJvOTBoIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIixmb2N1c2FibGU6ImZhbHNlIn0scmU9e2lkOiJhdmF0YXJfb25nb2luZyJ9LGhlPXtrZXk6MCxjbGFzczoiY2Mtend2ZW8iLGZpbGw6ImJsYWNrIn0sZGU9e21hc2s6InVybCgjYXZhdGFyX29uZ29pbmcpIn0scGU9WyJ4bGluazpocmVmIl0sdWU9WyJ4bGluazpocmVmIl0sbWU9e2tleTowLGNsYXNzOiJjYy0xMnJ0NCJ9LGZlPXtrZXk6MSxjbGFzczoiY2MtMXJ2b3YifSxrZT17Y2xhc3M6ImNjLXJvOTBoIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIixmb2N1c2FibGU6ImZhbHNlIn0seWU9e21hc2s6InVybCgjYXZhdGFyX2FnZW50KSJ9LF9lPVsieGxpbms6aHJlZiJdLHZlPVsieGxpbms6aHJlZiJdLGdlPXtrZXk6MixjbGFzczoiY2MtMXJ2b3YifSxiZT17Y2xhc3M6ImNjLXJvOTBoIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIixmb2N1c2FibGU6ImZhbHNlIn0sQ2U9WyJpZCJdLHdlPXtrZXk6MCxjbGFzczoiY2Mtend2ZW8iLGZpbGw6ImJsYWNrIn0seGU9WyJtYXNrIl0samU9WyJ4bGluazpocmVmIl0scWU9WyJ4bGluazpocmVmIl0semU9e2NsYXNzOiJjYy1wcnpxZyBjYy0xaGwxaSBjYy0xaWNyaiJ9O3ZhciBTZT11KHEoe2NvbXB1dGVkOnthdmF0YXJEZWZhdWx0VXJsKCl7cmV0dXJuYCR7dGhpcy4kQ09ORklHLlVSTF9DTElFTlRfQVNTRVRTfS9pbWFnZXMvY2xpZW50L2F2YXRhci1kZWZhdWx0LnN2Z2B9LHN0YXR1c01hcmtlcigpe3JldHVybiB0aGlzLiRzdG9yZS5jaGF0LmN1cnJlbnRfc3RhdHVzX21hcmtlciYmIm5vbmUiIT09dGhpcy4kc3RvcmUuY2hhdC5jdXJyZW50X3N0YXR1c19tYXJrZXI/dGhpcy4kc3RvcmUuY2hhdC5jdXJyZW50X3N0YXR1c19tYXJrZXI6ImluaXRpYWwifX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtyZXR1cm4gQSgpLEYoInNwYW4iLHtjbGFzczptKFsiY2MtazlkcHkiLCJjYy1rOWRweS0tc3RhdHVzLSIrZS5zdGF0dXNNYXJrZXJdKX0sWyJvbmdvaW5nIj09PWUuc3RhdHVzTWFya2VyPyhBKCksRigic3BhbiIsaWUsW3ooInNwYW4iLHtjbGFzczoiY2MtMXdpdmYiLG9uQ2xpY2s6Y1swXXx8KGNbMF09RCgoKT0+e30sWyJzdG9wIl0pKX0sWyhBKCksRigic3ZnIixvZSxbeigibWFzayIscmUsW2NbM118fChjWzNdPXooImNpcmNsZSIse2NsYXNzOiJjYy16d3ZlbyIsZmlsbDoid2hpdGUifSxudWxsLC0xKSksIm9ubGluZSI9PT1lLiRzdG9yZS5hdmFpbGFiaWxpdHkuYXZhaWxhYmlsaXR5PyhBKCksRigiY2lyY2xlIixoZSkpOlooIiIsITApXSkseigiZyIsZGUsW2NbNF18fChjWzRdPXooInJlY3QiLHtjbGFzczoiY2MtMjQ2cnoifSxudWxsLC0xKSkseigiaW1hZ2UiLHtjbGFzczoiY2MtMnRqNWciLCJ4bGluazpocmVmIjplLmF2YXRhckRlZmF1bHRVcmx9LG51bGwsOCxwZSkseigiaW1hZ2UiLHtjbGFzczoiY2MtMnRqNWciLCJ4bGluazpocmVmIjplLiRyZW5kZXIuX2EoMTIwLGUuJHN0b3JlLmNoYXQuY3VycmVudF9vbmdvaW5nX29wZXJhdG9yLnR5cGUsZS4kc3RvcmUuY2hhdC5jdXJyZW50X29uZ29pbmdfb3BlcmF0b3IudXNlcl9pZCxlLiRzdG9yZS5jaGF0LmN1cnJlbnRfb25nb2luZ19vcGVyYXRvci51cmwpfSxudWxsLDgsdWUpXSldKSksIm9ubGluZSI9PT1lLiRzdG9yZS5hdmFpbGFiaWxpdHkuYXZhaWxhYmlsaXR5PyhBKCksRigic3BhbiIsbWUpKTpaKCIiLCEwKV0pLGNbNV18fChjWzVdPXooInNwYW4iLHtjbGFzczoiY2MtMTNmdHgifSxudWxsLC0xKSldKSk6ImFnZW50Ij09PWUuc3RhdHVzTWFya2VyPyhBKCksRigic3BhbiIsZmUsW3ooInNwYW4iLHtjbGFzczoiY2MtMXdpdmYiLG9uQ2xpY2s6Y1sxXXx8KGNbMV09RCgoKT0+e30sWyJzdG9wIl0pKX0sWyhBKCksRigic3ZnIixrZSxbY1s3XXx8KGNbN109eigibWFzayIse2lkOiJhdmF0YXJfYWdlbnQifSxbeigiY2lyY2xlIix7Y2xhc3M6ImNjLXp3dmVvIixmaWxsOiJ3aGl0ZSJ9KV0sLTEpKSx6KCJnIix5ZSxbY1s2XXx8KGNbNl09eigicmVjdCIse2NsYXNzOiJjYy0yNDZyeiJ9LG51bGwsLTEpKSx6KCJpbWFnZSIse2NsYXNzOiJjYy0ydGo1ZyIsInhsaW5rOmhyZWYiOmUuYXZhdGFyRGVmYXVsdFVybH0sbnVsbCw4LF9lKSx6KCJpbWFnZSIse2NsYXNzOiJjYy0ydGo1ZyIsInhsaW5rOmhyZWYiOmUuJHJlbmRlci5fYSgxMjAsIndlYnNpdGUiLGUuJHN0b3JlLmJhc2Uud2Vic2l0ZT8uaWQpfSxudWxsLDgsdmUpXSldKSldKSxjWzhdfHwoY1s4XT16KCJzcGFuIix7Y2xhc3M6ImNjLTEzZnR4In0sbnVsbCwtMSkpXSkpOihBKCksRigic3BhbiIsZ2UsWyhBKCEwKSxGKEksbnVsbCxiKGUuJHN0b3JlLmJhc2UuYWN0aXZlX29wZXJhdG9ycywodCxhKT0+KEEoKSxGKCJzcGFuIix7Y2xhc3M6ImNjLTF3aXZmIGNjLXZzcnI3IixvbkNsaWNrOmNbMl18fChjWzJdPUQoKCk9Pnt9LFsic3RvcCJdKSksa2V5OmBhdmF0YXJfJHthfWB9LFsoQSgpLEYoInN2ZyIsYmUsW3ooIm1hc2siLHtpZDpgYXZhdGFyX2luaXRpYWxfJHthfWB9LFtjWzldfHwoY1s5XT16KCJjaXJjbGUiLHtjbGFzczoiY2Mtend2ZW8iLGZpbGw6IndoaXRlIn0sbnVsbCwtMSkpLGEhPT1lLiRzdG9yZS5iYXNlLmFjdGl2ZV9vcGVyYXRvcnMubGVuZ3RoLTE/KEEoKSxGKCJjaXJjbGUiLHdlKSk6WigiIiwhMCldLDgsQ2UpLHooImciLHttYXNrOmB1cmwoI2F2YXRhcl9pbml0aWFsXyR7YX0pYH0sW2NbMTBdfHwoY1sxMF09eigicmVjdCIse2NsYXNzOiJjYy0yNDZyeiJ9LG51bGwsLTEpKSx6KCJpbWFnZSIse2NsYXNzOiJjYy0ydGo1ZyIsInhsaW5rOmhyZWYiOmUuYXZhdGFyRGVmYXVsdFVybH0sbnVsbCw4LGplKSx6KCJpbWFnZSIse2NsYXNzOiJjYy0ydGo1ZyIsInhsaW5rOmhyZWYiOmUuJHJlbmRlci5fYSgxMjAsdC50eXBlLHQuaWRlbnRpZmllcix0LmF2YXRhcil9LG51bGwsOCxxZSldLDgseGUpXSkpLHQubmFtZXx8IndlYnNpdGUiPT09dC50eXBlJiZlLiRzdG9yZS5iYXNlLm90aGVyX29wZXJhdG9yc19jb3VudD4wJiYhMD09PWUuJHN0b3JlLmNoYXQuc2hvd19vcGVyYXRvcl9jb3VudD8oQSgpLEYoInNwYW4iLHtrZXk6MCxjbGFzczptKFsiY2MtMWJ3c3YiLCJjYy0xNjUxcSIsImNjLXVmMjQ0Iix7ImNjLTF5aTQ1IjoiY29sb3JpemVkIj09PWUuJHN0b3JlLndlYnNpdGU/LmNoYXQ/LmxheW91dF90aGVtZX1dKX0sW3ooInNwYW4iLHplLGYoIndlYnNpdGUiPT09dC50eXBlJiZlLiRzdG9yZS5iYXNlLm90aGVyX29wZXJhdG9yc19jb3VudD4wJiYhMD09PWUuJHN0b3JlLmNoYXQuc2hvd19vcGVyYXRvcl9jb3VudD9lLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2hlYWRlcl9pbml0aWFsX2F2YXRhcl93ZWJzaXRlX3Rvb2x0aXAiLFtlLiRzdG9yZS5iYXNlLm90aGVyX29wZXJhdG9yc19jb3VudF0pOnQubmFtZSksMSldLDIpKTpaKCIiLCEwKV0pKSksMTI4KSksY1sxMV18fChjWzExXT16KCJzcGFuIix7Y2xhc3M6ImNjLTEzZnR4In0sbnVsbCwtMSkpXSkpXSwyKX1dXSksRmU9e2tleTowLGNsYXNzOiJjYy0xNDhwaiJ9LFBlPXtjbGFzczoiY2MtMXhub3QgY2MtMTBjcXMifSxUZT17Y2xhc3M6ImNjLTE4Y2diIGNjLTE3bTVoIn0sQmU9e2tleTowLGNsYXNzOiJjYy0xOGNnYiJ9LEllPXtrZXk6MSxjbGFzczoiY2MtMTQ4cGoifSxNZT17Y2xhc3M6ImNjLWVvbHVmIGNjLTEwY3FzIn0sJGU9e2tleTowLGNsYXNzOiJjYy0xd2M0dCJ9LEFlPVsiYXJpYS1sYWJlbCJdLExlPXtjbGFzczoiY2MtZWhhemEgY2MtMWljcmoifSxEZT17a2V5OjEsY2xhc3M6ImNjLTF3YzR0IGNjLTF3YzR0LS1hY3Rpdml0eS1tZXRyaWNzIn0sRWU9WyJhcmlhLWxhYmVsIl0sVmU9e2tleTowLGNsYXNzOiJjYy1laGF6YSBjYy0xaWNyaiJ9LEhlPXtrZXk6MSxjbGFzczoiY2MtZWhhemEgY2MtMWljcmoifSxSZT1bImFyaWEtbGFiZWwiXSxLZT17a2V5OjAsY2xhc3M6ImNjLWVoYXphIGNjLTFpY3JqIn0sT2U9e2tleToxLGNsYXNzOiJjYy1laGF6YSBjYy0xaWNyaiJ9O3ZhciBVZT11KHEoe2NvbXB1dGVkOnt0aGVtZVRleHQ6KCk9PnIudGV4dCgidGhlbWVfdGV4dCIsWyJkZWZhdWx0X2NoYXQiLGAke2Qud2Vic2l0ZT8uY2hhdD8udGhlbWVfdGV4dH1fY2hhdGBdKX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtjb25zdCBuPWcoImNyaXNwLWRhdGUiKTtyZXR1cm4gQSgpLEYoInNwYW4iLHtjbGFzczptKFsiY2MtMTh5anciLCJjYy0xOHlqdy0tc3RhdHVzLSIrZS4kc3RvcmUuY2hhdC5jdXJyZW50X3N0YXR1c19tYXJrZXIseyJjYy0xOHlqdy0tbGF5b3V0LWNvbG9yaXplZCI6ImNvbG9yaXplZCI9PT1lLiRzdG9yZS53ZWJzaXRlPy5jaGF0Py5sYXlvdXRfdGhlbWV9XSl9LFsib25nb2luZyI9PT1lLiRzdG9yZS5jaGF0LmN1cnJlbnRfc3RhdHVzX21hcmtlcj8oQSgpLEYoInNwYW4iLEZlLFt6KCJzcGFuIixQZSxbeigic3BhbiIsVGUsZihlLiRzdG9yZS5jaGF0LmN1cnJlbnRfb25nb2luZ19vcGVyYXRvcj8ubmFtZSksMSksZS4kc3RvcmUuY2hhdC5jdXJyZW50X29uZ29pbmdfb3BlcmF0b3I/Lm5hbWUhPT1lLiRzdG9yZS53ZWJzaXRlPy53ZWJzaXRlPy5uYW1lPyhBKCksRigic3BhbiIsQmUsZihlLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2hlYWRlcl9vbmdvaW5nX2Zyb20iKSkrIiAiK2YoZS4kc3RvcmUud2Vic2l0ZT8ud2Vic2l0ZT8ubmFtZSksMSkpOlooIiIsITApLGNbMF18fChjWzBdPXooInNwYW4iLHtjbGFzczoiY2MtMTNmdHgifSxudWxsLC0xKSldKV0pKTooQSgpLEYoInNwYW4iLEllLFt6KCJoMiIsTWUsZihlLnRoZW1lVGV4dCksMSksImFnZW50Ij09PWUuJHN0b3JlLmNoYXQuY3VycmVudF9zdGF0dXNfbWFya2VyPyhBKCksRigic3BhbiIsJGUsW3ooInNwYW4iLHtjbGFzczoiY2MtdWhsdjUiLCJhcmlhLWxhYmVsIjplLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2hlYWRlcl9vbmdvaW5nX3N0YXR1c19vbmxpbmUiKX0sW3ooInAiLExlLGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9oZWFkZXJfYXV0b21hdGVkX2xhYmVsIikpLDEpXSw4LEFlKV0pKTohMD09PWUuJHN0b3JlLndlYnNpdGU/LmNoYXQ/LmFjdGl2aXR5X21ldHJpY3M/KEEoKSxGKCJzcGFuIixEZSxbIm9ubGluZSI9PT1lLiRzdG9yZS5hdmFpbGFiaWxpdHkuYXZhaWxhYmlsaXR5PyhBKCksRigic3BhbiIse2tleTowLGNsYXNzOiJjYy11aGx2NSBjYy11aGx2NS0tb25saW5lIiwiYXJpYS1sYWJlbCI6ZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9oZWFkZXJfb25nb2luZ19zdGF0dXNfb25saW5lIil9LFtlLiRzdG9yZS5jaGF0LmFjdGl2aXR5X21ldHJpY3M/RygoQSgpLEYoInAiLFZlLG51bGwsNTEyKSksW1tuLHt0eXBlOiJkdXJhdGlvbiIsZGF0ZTplLiRzdG9yZS5jaGF0LmFjdGl2aXR5X21ldHJpY3MsZm9ybWF0OmUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfaGVhZGVyX29uZ29pbmdfc3RhdHVzX21ldHJpY3MiKX1dXSk6KEEoKSxGKCJwIixIZSxmKGUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfaGVhZGVyX29uZ29pbmdfc3RhdHVzX29ubGluZSIpKSwxKSldLDgsRWUpKTooQSgpLEYoInNwYW4iLHtrZXk6MSxjbGFzczoiY2MtdWhsdjUgY2MtdWhsdjUtLWF3YXkiLCJhcmlhLWxhYmVsIjplLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2hlYWRlcl9vbmdvaW5nX3N0YXR1c19hd2F5Iil9LFtlLiRzdG9yZS5jaGF0LmFjdGl2aXR5X2xhc3Q/RygoQSgpLEYoInAiLEtlLG51bGwsNTEyKSksW1tuLHtkYXRlOmUuJHN0b3JlLmNoYXQuYWN0aXZpdHlfbGFzdCxmb3JtYXQ6ZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9oZWFkZXJfb25nb2luZ19zdGF0dXNfbGFzdCIpfV1dKTooQSgpLEYoInAiLE9lLGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9oZWFkZXJfb25nb2luZ19zdGF0dXNfYXdheSIpKSwxKSldLDgsUmUpKV0pKTpaKCIiLCEwKV0pKV0sMil9XV0pLE5lPVsiYXJpYS1sYWJlbCJdLFdlPXtjbGFzczoiY2MtMWhsMWkgY2MtMWljcmoifSxaZT17a2V5OjAsY2xhc3M6ImNjLTFlZzdnIn0sR2U9WyJocmVmIiwiYXJpYS1sYWJlbCJdLFFlPXtjbGFzczoiY2MtMWhsMWkgY2MtMWljcmoifTt2YXIgWWU9dShxKHtjb21wdXRlZDp7bGF5b3V0Q29sb3JpemVkOigpPT4iY29sb3JpemVkIj09PWQud2Vic2l0ZT8uY2hhdD8ubGF5b3V0X3RoZW1lfSxtZXRob2RzOntvbkJ1dHRvbkNsaWNrKCl7ZC5jaGF0LnRvZ2dsZUNoYW5uZWxEcm9wZG93bigpfSxvbkRyb3Bkb3duQ2xpY2soZSl7ZS5zdG9wUHJvcGFnYXRpb24oKX0sb25Ecm9wZG93bkVudHJ5Q2xpY2soKXtkLmNoYXQudG9nZ2xlQ2hhbm5lbERyb3Bkb3duKCExKX19fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7Y29uc3Qgbj1nKCJjcmlzcC1hY2Nlc3NpYmlsaXR5IiksaT1nKCJjcmlzcC1saW5rLXRhcmdldCIpO3JldHVybiJvbmdvaW5nIj09PWUuJHN0b3JlLmNoYXQuY3VycmVudF9zdGF0dXNfbWFya2VyJiZlLiRzdG9yZS5jaGF0LmNoYW5uZWxzLmxlbmd0aD4wPyhBKCksRigic3BhbiIse2tleTowLGNsYXNzOm0oWyJjYy0xNW1xMSIseyJjYy0xNW1xMS0tYWN0aXZlIjplLiRzdG9yZS5jaGF0Lmhhc19jaGFubmVscywiY2MtMTVtcTEtLXNtYWxsaXNoIjplLiRzdG9yZS5jaGF0LmNoYW5uZWxzLmxlbmd0aDw9MywiY2MtMTVtcTEtLWxheW91dC1jb2xvcml6ZWQiOmUubGF5b3V0Q29sb3JpemVkfV0pfSxbRygoQSgpLEYoImRpdiIse2NsYXNzOiJjYy0xaTZhaSBjYy12c3JyNyIsb25DbGljazpjWzBdfHwoY1swXT1EKCguLi5jKT0+ZS5vbkJ1dHRvbkNsaWNrJiZlLm9uQnV0dG9uQ2xpY2soLi4uYyksWyJzdG9wIl0pKSwiYXJpYS1sYWJlbCI6ZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9oZWFkZXJfY2hhbm5lbHMiKX0sW2UuJHN0b3JlLmNoYXQuaGFzX2NoYW5uZWxzP1ooIiIsITApOihBKCksRigic3BhbiIse2tleTowLGNsYXNzOm0oWyJjYy0xYndzdiIsImNjLTE2NTFxIiwiY2MtdWYyNDQiLHsiY2MtMXlpNDUiOmUubGF5b3V0Q29sb3JpemVkfV0pfSxbeigic3BhbiIsV2UsZihlLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2hlYWRlcl9jaGFubmVscyIpKSwxKV0sMikpLGNbM118fChjWzNdPXooInNwYW4iLHtjbGFzczoiY2MtMTFlenIifSxudWxsLC0xKSldLDgsTmUpKSxbW24se3JvbGU6ImJ1dHRvbiJ9XV0pLGUuJHN0b3JlLmNoYXQuaGFzX2NoYW5uZWxzPyhBKCksRigic3BhbiIsWmUsW3ooInNwYW4iLHtjbGFzczoiY2MtcHQ3MDEiLG9uQ2xpY2s6Y1syXXx8KGNbMl09KC4uLmMpPT5lLm9uRHJvcGRvd25DbGljayYmZS5vbkRyb3Bkb3duQ2xpY2soLi4uYykpfSxbKEEoITApLEYoSSxudWxsLGIoZS4kc3RvcmUuY2hhdC5jaGFubmVscywodCxhKT0+RygoQSgpLEYoImEiLHtrZXk6YGNoYW5uZWxfJHthfWAsb25DbGljazpjWzFdfHwoY1sxXT1EKCguLi5jKT0+ZS5vbkRyb3Bkb3duRW50cnlDbGljayYmZS5vbkRyb3Bkb3duRW50cnlDbGljayguLi5jKSxbInN0b3AiXSkpLGhyZWY6dC5saW5rLCJhcmlhLWxhYmVsIjp0Lm5hbWUsY2xhc3M6bShbImNjLW9wazl0IiwiY2MtdnNycjciLCJjYy1vcGs5dC0tIit0Lm5hbWVdKSxyZWw6Im5vb3BlbmVyIG5vcmVmZXJyZXIifSxbeigic3BhbiIse2NsYXNzOm0oWyJjYy0xYndzdiIsImNjLTE2NTFxIiwiY2MtdWYyNDQiLHsiY2MtMXlpNDUiOmUubGF5b3V0Q29sb3JpemVkfV0pfSxbeigic3BhbiIsUWUsZihlLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2hlYWRlcl9vbmdvaW5nX2NoYW5uZWxfY29udGludWUiLFt0LmZvcm1hdF0pKSwxKV0sMiksY1s0XXx8KGNbNF09eigic3BhbiIse2NsYXNzOiJjYy0xcGI4cyJ9LG51bGwsLTEpKV0sMTAsR2UpKSxbW2ksImVtYWlsIj09PXQubmFtZXx8InBob25lIj09PXQubmFtZT8iX3BhcmVudCI6Il9ibGFuayJdLFtuLHtyb2xlOiJidXR0b24ifV1dKSksMTI4KSksY1s1XXx8KGNbNV09eigic3BhbiIse2NsYXNzOiJjYy0xM2Z0eCJ9LG51bGwsLTEpKV0pXSkpOlooIiIsITApXSwyKSk6WigiIiwhMCl9XV0pO3ZhciBKZT11KHEoe2NvbXBvbmVudHM6e0NoYXRIZWFkZXJBdmF0YXJzOlNlLENoYXRIZWFkZXJNZXRhOlVlLENoYXRIZWFkZXJDaGFubmVsczpZZX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtjb25zdCBuPXYoImNoYXQtaGVhZGVyLWF2YXRhcnMiKSxpPXYoImNoYXQtaGVhZGVyLW1ldGEiKSxvPXYoImNoYXQtaGVhZGVyLWNoYW5uZWxzIik7cmV0dXJuIEEoKSxGKCJzcGFuIix7Y2xhc3M6bShbImNjLTFkbmsxIiwiY2MtMWRuazEtLXN0YXR1cy0iK2UuJHN0b3JlLmNoYXQuY3VycmVudF9zdGF0dXNfbWFya2VyXSl9LFt5KG4se2NsYXNzOiJjYy04aW0xMiJ9KSx5KGkpLHkobyx7Y2xhc3M6ImNjLWJtZ3ZqIn0pXSwyKX1dXSksWGU9e2NsYXNzOiJjYy0xYWlxOCBjYy0xMGNxcyJ9O3ZhciBlYz11KHt9LFtbInJlbmRlciIsZnVuY3Rpb24oZSxjKXtyZXR1cm4gQSgpLEYoInNwYW4iLHtjbGFzczptKFsiY2MtMTF5aXYiLHsiY2MtMTF5aXYtLWxheW91dC1jb2xvcml6ZWQiOiJjb2xvcml6ZWQiPT09ZS4kc3RvcmUud2Vic2l0ZT8uY2hhdD8ubGF5b3V0X3RoZW1lfV0pfSxbeigic3BhbiIsWGUsZihlLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2hlYWRlcl9jb252ZXJzYXRpb25zIikpLDEpXSwyKX1dXSksY2M9WyJuYW1lIl0sdGM9e2tleTowLGNsYXNzOiJjYy12YXM5dCJ9LGFjPXtrZXk6MSxjbGFzczoiY2MtMTltb2cifSxzYz1bImRpc2FibGVkIiwicGxhY2Vob2xkZXIiLCJhcmlhLWxhYmVsIiwibmFtZSIsIm1heGxlbmd0aCIsImF1dG9mb2N1cyIsInRhYmluZGV4Il0sbGM9e2tleToyLGNsYXNzOiJjYy0xcHM5cyJ9LG5jPXtjbGFzczoiY2Mtc2toaWsgY2MtMWljcmoiLHJlZjoiYXV0b2NvbXBsZXRlIn0saWM9e2NsYXNzOiJjYy1jajBreiBjYy0xaWNyaiIscmVmOiJydWxlciJ9O3ZhciBvYz11KHEoe3Byb3BzOnthdXRvY29tcGxldGU6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfSxhdXRvZm9jdXM6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfSxib3JkZXJlZDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITB9LGNsZWFyOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0sY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6ImdyZXkiLHZhbGlkYXRvcjplPT5bImdyZXkiLCJ3aGl0ZSJdLmluY2x1ZGVzKGUpfSxjcmlzcEZvY3VzRm9yZWdyb3VuZDp7dHlwZTpbT2JqZWN0LEJvb2xlYW5dLGRlZmF1bHQ6bnVsbH0sZGlzYWJsZWQ6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfSxsb2FkaW5nOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0sbWF4TGVuZ3RoOnt0eXBlOk51bWJlcixkZWZhdWx0Om51bGx9LG1vZGVsVmFsdWU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6bnVsbH0sbmFtZTp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LHBsYWNlaG9sZGVyOnt0eXBlOlN0cmluZyxkZWZhdWx0Om51bGx9LHNpemU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6ImRlZmF1bHQiLHZhbGlkYXRvcjplPT5bImRlZmF1bHQiLCJsYXJnZSJdLmluY2x1ZGVzKGUpfX0sZW1pdHM6WyJjbGVhciIsImlucHV0Iiwia2V5ZG93biIsImtleXVwIiwidXBkYXRlOm1vZGVsVmFsdWUiXSxkYXRhOigpPT4oe2N1cnJlbnRWYWx1ZToiIixoYXNBdXRvY29tcGxldGU6ITF9KSxjb21wdXRlZDp7Y2FuQ2xlYXIoKXtyZXR1cm4gdGhpcy5jbGVhciYmdGhpcy5oYXNWYWx1ZX0sY3Jpc3BGb2N1c0ZvcmVncm91bmRPcHRpb25zKCl7cmV0dXJuIHRoaXMuY3Jpc3BGb2N1c0ZvcmVncm91bmQ/ITA9PT10aGlzLmNyaXNwRm9jdXNGb3JlZ3JvdW5kP3t9OnRoaXMuY3Jpc3BGb2N1c0ZvcmVncm91bmQ6e2Rpc2FibGVkOiEwfX0saGFzVmFsdWUoKXtyZXR1cm4gdGhpcy5jdXJyZW50VmFsdWU/Lmxlbmd0aD4wfX0sd2F0Y2g6e21vZGVsVmFsdWU6e2ltbWVkaWF0ZTohMCxoYW5kbGVyKGUpe3RoaXMuY3VycmVudFZhbHVlPWV9fX0sbW91bnRlZCgpe3RoaXMuYXV0b2ZvY3VzJiZ0aGlzLmZvY3VzRmllbGQoKX0sbWV0aG9kczp7Zm9jdXNGaWVsZCgpe2QuYmFzZS5oYXNfYXV0b2ZvY3VzJiYodGhpcy4kcmVmcy5pbnB1dCYmdGhpcy4kcmVmcy5pbnB1dC5mb2N1cygpLGwuc2V0VGltZW91dCgoKT0+e3RoaXMuJHJlZnMuaW5wdXQmJnRoaXMuJHJlZnMuaW5wdXQuZm9jdXMoKX0sMSkpfSxoYW5kbGVBdXRvY29tcGxldGUoZT1bXSl7bGV0IGM9KGU/LlswXXx8IiIpLnRvTG93ZXJDYXNlKCksdD1udWxsLGE9bnVsbDtpZihjKXthPXRoaXMuY3VycmVudFZhbHVlO2xldCBlPWEuc3Vic3RyaW5nKGEubGFzdEluZGV4T2YoIiAiKSsxKS50cmltKCkudG9Mb3dlckNhc2UoKTtlJiZlLmxlbmd0aDxjLmxlbmd0aCYmYy5zdWJzdHJpbmcoMCxlLmxlbmd0aCk9PT1lJiYodD1jLnN1YnN0cmluZyhlLmxlbmd0aCkpfWxldCBzPXRoaXMuJHJlZnMucnVsZXIsbD10aGlzLiRyZWZzLmF1dG9jb21wbGV0ZTtpZih0JiZhJiZzKXtzLmlubmVyVGV4dD1hLGwuaW5uZXJUZXh0PXQsdGhpcy5oYXNBdXRvY29tcGxldGU9ITA7bGV0IGU9InJ0bCI9PT1kLmxvY2FsZS5kaXJlY3Rpb24/InJpZ2h0IjoibGVmdCI7bC5zdHlsZS5zZXRQcm9wZXJ0eShlLGAke3Mub2Zmc2V0V2lkdGh9cHhgLCJpbXBvcnRhbnQiKSxsLnN0eWxlLnNldFByb3BlcnR5KCJkaXNwbGF5IiwiYmxvY2siLCJpbXBvcnRhbnQiKX1lbHNlIGwuc3R5bGUuc2V0UHJvcGVydHkoImRpc3BsYXkiLCJub25lIiwiaW1wb3J0YW50IiksbC5pbm5lclRleHQ9IiIsdGhpcy5oYXNBdXRvY29tcGxldGU9ITF9LGFjY2VwdEF1dG9jb21wbGV0ZSgpe2xldCBlPSh0aGlzLiRyZWZzLmF1dG9jb21wbGV0ZS5pbm5lclRleHR8fCIiKS50cmltKCk7ZSYmKHRoaXMuY3VycmVudFZhbHVlPWAke3RoaXMuY3VycmVudFZhbHVlfSR7ZX1gLHRoaXMuJGVtaXQoInVwZGF0ZTptb2RlbFZhbHVlIix0aGlzLmN1cnJlbnRWYWx1ZSksdGhpcy5oYW5kbGVBdXRvY29tcGxldGUoW10pKX0sb25LZXl1cChlKXt0aGlzLiRlbWl0KCJrZXl1cCIsZSl9LG9uS2V5ZG93bihlKXtsZXQgYz0hMDtzd2l0Y2goZS5rZXlDb2RlKXtjYXNlIDEzOmNhc2UgMzg6Y2FzZSA0MDpjPSExO2JyZWFrO2Nhc2UgOTp0aGlzLmF1dG9jb21wbGV0ZSYmZS50YXJnZXQ/LnZhbHVlJiYoZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWNjZXB0QXV0b2NvbXBsZXRlKCkpfXRoaXMuYXV0b2NvbXBsZXRlJiYhMD09PWMmJiEwIT09ZS5zaGlmdEtleSYmITAhPT1lLm1ldGFLZXkmJiEwIT09ZS5jdHJsS2V5JiYhMCE9PWUuYWx0S2V5JiZ0aGlzLmhhbmRsZUF1dG9jb21wbGV0ZShbXSksdGhpcy4kZW1pdCgia2V5ZG93biIsZSl9LG9uSW5wdXQoZSl7dGhpcy4kZW1pdCgidXBkYXRlOm1vZGVsVmFsdWUiLGUudGFyZ2V0LnZhbHVlKSx0aGlzLiRlbWl0KCJpbnB1dCIsZSl9LG9uQ2xlYXJDbGljayhlKXtlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZm9jdXNGaWVsZCgpLHRoaXMuJGVtaXQoImNsZWFyIil9fX0pLFtbInJlbmRlciIsZnVuY3Rpb24oZSxjLHQsYSxzLGwpe2NvbnN0IG49ZygiY3Jpc3AtZm9jdXMtZm9yZWdyb3VuZCIpLGk9ZygiY3Jpc3AtYWNjZXNzaWJpbGl0eSIpO3JldHVybiBBKCksRigiZm9ybSIse29uU3VibWl0OmNbNV18fChjWzVdPUQoKCk9Pnt9LFsicHJldmVudCJdKSksbmFtZTpgZm9ybV8ke2UubmFtZX1gLGNsYXNzOm0oWyJjYy0xNmhwNyIsImNjLTE2aHA3LS0iK2UuY29sb3IsImNjLTE2aHA3LS0iK2Uuc2l6ZSx7ImNjLTE2aHA3LS1ib3JkZXJlZCI6ZS5ib3JkZXJlZCwiY2MtMTZocDctLWhhcy12YWx1ZSI6ZS5oYXNWYWx1ZX1dKSxhY3Rpb246IiMiLG1ldGhvZDoicG9zdCJ9LFtlLmxvYWRpbmc/KEEoKSxGKCJzcGFuIix0YyxbLi4uY1s2XXx8KGNbNl09W3ooInNwYW4iLHtjbGFzczoiY2MtMTlieGIgY2MtMWx3a3oiLCJkYXRhLXRpbnQiOiJ0aGVtZSJ9LG51bGwsLTEpXSldKSk6KEEoKSxGKCJzcGFuIixhYykpLEcoeigiaW5wdXQiLHsib25VcGRhdGU6bW9kZWxWYWx1ZSI6Y1swXXx8KGNbMF09Yz0+ZS5jdXJyZW50VmFsdWU9Yyksb25LZXl1cDpjWzFdfHwoY1sxXT0oLi4uYyk9PmUub25LZXl1cCYmZS5vbktleXVwKC4uLmMpKSxvbktleWRvd246Y1syXXx8KGNbMl09KC4uLmMpPT5lLm9uS2V5ZG93biYmZS5vbktleWRvd24oLi4uYykpLG9uSW5wdXQ6Y1szXXx8KGNbM109KC4uLmMpPT5lLm9uSW5wdXQmJmUub25JbnB1dCguLi5jKSksZGlzYWJsZWQ6ZS5kaXNhYmxlZCxwbGFjZWhvbGRlcjplLnBsYWNlaG9sZGVyLCJhcmlhLWxhYmVsIjplLnBsYWNlaG9sZGVyLG5hbWU6ZS5uYW1lLG1heGxlbmd0aDplLm1heExlbmd0aCxhdXRvZm9jdXM6ZS5hdXRvZm9jdXMsdGFiaW5kZXg6ZS5kaXNhYmxlZD8tMTowLGNsYXNzOm0oWyJjYy0xM3lvcyIsImNjLTNyZmdjIix7ImNjLTFpY3JqIjplLmxvYWRpbmd8fGUuaGFzQXV0b2NvbXBsZXRlfHwhZS5jdXJyZW50VmFsdWUsImNjLTEwY3FzIjohZS5sb2FkaW5nJiYhZS5oYXNBdXRvY29tcGxldGUmJmUuY3VycmVudFZhbHVlfV0pLHR5cGU6InRleHQiLGF1dG9jb21wbGV0ZToib2ZmIixhdXRvY29ycmVjdDoib2ZmIixhdXRvY2FwaXRhbGl6ZToib2ZmIixzcGVsbGNoZWNrOiJmYWxzZSIscmVmOiJpbnB1dCJ9LG51bGwsNDIsc2MpLFtbbixlLmNyaXNwRm9jdXNGb3JlZ3JvdW5kT3B0aW9uc10sW0gsZS5jdXJyZW50VmFsdWVdXSksZS4kc2xvdHMuYWN0aW9ucz8oQSgpLEYoInNwYW4iLGxjLFt3KGUuJHNsb3RzLCJhY3Rpb25zIildKSk6ZS5jYW5DbGVhcj9HKChBKCksRigic3BhbiIse2tleTozLGNsYXNzOiJjYy0xNjRjdiIsb25DbGljazpjWzRdfHwoY1s0XT0oLi4uYyk9PmUub25DbGVhckNsaWNrJiZlLm9uQ2xlYXJDbGljayguLi5jKSl9LG51bGwsNTEyKSksW1tpLHtyb2xlOiJidXR0b24ifV1dKTpaKCIiLCEwKSxlLmF1dG9jb21wbGV0ZT8oQSgpLEYoSSx7a2V5OjR9LFt6KCJzcGFuIixuYyxudWxsLDUxMikseigic3BhbiIsaWMsbnVsbCw1MTIpXSw2NCkpOlooIiIsITApXSw0MixjYyl9XV0pLHJjPXtrZXk6MCxjbGFzczoiY2MtaGFpazcifSxoYz1bImFyaWEtbGFiZWwiXSxkYz17Y2xhc3M6ImNjLXp3dTdoIn0scGM9e2tleTowLGNsYXNzOiJjYy01bjBjcyJ9LHVjPXtjbGFzczoiY2MtYjUxYzggY2MtMTBjcXMifSxtYz17Y2xhc3M6ImNjLWE1a3JoIGNjLTFpY3JqIn0sZmM9e2tleTowLGNsYXNzOiJjYy0xMmdyYiBjYy0xMGNxcyJ9LGtjPXtrZXk6MCxjbGFzczoiY2MtcWsxcmUgY2MtdnNycjcifSx5Yz17Y2xhc3M6ImNjLTFobDFpIGNjLTFpY3JqIn0sX2M9WyJocmVmIiwiYXJpYS1sYWJlbCJdLHZjPXtrZXk6MSxjbGFzczoiY2MtMXNjZDcifSxnYz17Y2xhc3M6ImNjLTFkcnRmIGNjLTEwY3FzIn07dmFyIGJjPXUocSh7Y29tcG9uZW50czp7U2VhcmNoRm9ybTpvY30scHJvcHM6e3RyYW5zaXRpb25Eb25lOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMH19LGNvbXB1dGVkOntsYXlvdXRDb2xvcml6ZWQ6KCk9PiJjb2xvcml6ZWQiPT09ZC53ZWJzaXRlPy5jaGF0Py5sYXlvdXRfdGhlbWV9LG1vdW50ZWQoKXtpLnN1YnNjcmliZSgiaGFuZGxlLWF1dG9jb21wbGV0ZSIsdGhpcy5oYW5kbGVBdXRvY29tcGxldGUpfSxiZWZvcmVVbm1vdW50KCl7aS51bnN1YnNjcmliZSgiaGFuZGxlLWF1dG9jb21wbGV0ZSIsdGhpcy5oYW5kbGVBdXRvY29tcGxldGUpfSxtZXRob2RzOntoYW5kbGVBdXRvY29tcGxldGUoZT1bXSl7dGhpcy4kcmVmcy5zZWFyY2hfZm9ybS5oYW5kbGVBdXRvY29tcGxldGUoZSl9LG9uTmF2aWdhdGlvblByZXZpb3VzQ2xpY2soKXtsZXQgYz1kLmhlbHBkZXNrLm5hdmlnYXRpb24ucHJldmlvdXMucG9wKCl8fG51bGw7Yz8ub3JpZ2luPy5tZXRob2Q/KGQuaGVscGRlc2tbYy5vcmlnaW4ubWV0aG9kXS5jYWxsKGQuaGVscGRlc2ssLi4uYy5vcmlnaW4uYXJndW1lbnRzLC0xKSxlKCkuQ2hhdC5JbnRlcmZhY2UucmVxdWVzdER5bmFtaWNTaXppbmdQcm9wZXJ0aWVzKCkpOmQuaGVscGRlc2suc2hvd1NlYXJjaCgpfSxvblNlYXJjaENsZWFyKCl7ZC5oZWxwZGVzay5zZWFyY2guaW5wdXQ9IiJ9fX0pLFtbInJlbmRlciIsZnVuY3Rpb24oZSxjLHQsYSxzLGwpe2NvbnN0IG49digic2VhcmNoLWZvcm0iKSxpPWcoImNyaXNwLWFjY2Vzc2liaWxpdHkiKSxvPWcoImNyaXNwLWxpbmstdGFyZ2V0Iik7cmV0dXJuIEEoKSxGKCJzcGFuIix7Y2xhc3M6bShbImNjLXJvczBoIix7ImNjLXJvczBoLS1sYXlvdXQtY29sb3JpemVkIjplLmxheW91dENvbG9yaXplZCwiY2Mtcm9zMGgtLWhhcy12aWV3ZXIiOmUuJHN0b3JlLmhlbHBkZXNrLnZpZXdlci51cmx9XSl9LFtlLiRzdG9yZS5oZWxwZGVzay5uYXZpZ2F0aW9uLmN1cnJlbnQudGl0bGU/KEEoKSxGKCJkaXYiLHJjLFtHKChBKCksRigic3BhbiIse29uQ2xpY2s6Y1swXXx8KGNbMF09RCgoLi4uYyk9PmUub25OYXZpZ2F0aW9uUHJldmlvdXNDbGljayYmZS5vbk5hdmlnYXRpb25QcmV2aW91c0NsaWNrKC4uLmMpLFsic3RvcCIsInByZXZlbnQiXSkpLCJhcmlhLWxhYmVsIjplLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2hlbHBkZXNrX25hdmlnYXRpb25fcHJldmlvdXNfdG9vbHRpcCIpLGNsYXNzOm0oWyJjYy0xcHZydyIseyJjYy02enM0bCI6ZS5sYXlvdXRDb2xvcml6ZWQsImNjLTFqOTByIjohZS5sYXlvdXRDb2xvcml6ZWR9XSl9LFsuLi5jWzRdfHwoY1s0XT1beigic3BhbiIse2NsYXNzOiJjYy1kMzk5ciJ9LG51bGwsLTEpXSldLDEwLGhjKSksW1tpLHtyb2xlOiJidXR0b24ifV1dKSx6KCJzcGFuIixkYyxbZS4kc3RvcmUuaGVscGRlc2submF2aWdhdGlvbi5jdXJyZW50LnRpdGxlPyhBKCksRigic3BhbiIscGMsW3ooInNwYW4iLHVjLGYoZS4kc3RvcmUuaGVscGRlc2submF2aWdhdGlvbi5jdXJyZW50LnRpdGxlKSwxKSx6KCJzcGFuIixtYyxmKGUuJHN0b3JlLmhlbHBkZXNrLm5hdmlnYXRpb24uY3VycmVudC5kZXNjcmlwdGlvbnx8ZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9oZWxwZGVza19uYXZpZ2F0aW9uX2Rlc2NyaXB0aW9uX25vbmUiKSksMSksZS4kc3RvcmUuaGVscGRlc2submF2aWdhdGlvbi5jdXJyZW50LnN1bW1hcnk/KEEoKSxGKCJzcGFuIixmYyxmKGUuJHN0b3JlLmhlbHBkZXNrLm5hdmlnYXRpb24uY3VycmVudC5zdW1tYXJ5KSwxKSk6WigiIiwhMCldKSk6WigiIiwhMCldKSxlLiRzdG9yZS5oZWxwZGVzay52aWV3ZXIudXJsPyhBKCksRigic3BhbiIsa2MsW3ooInNwYW4iLHtjbGFzczptKFsiY2MtMWJ3c3YiLCJjYy0xanRxZiIsImNjLTFhOXpxIix7ImNjLTF5aTQ1IjoiY29sb3JpemVkIj09PWUuJHN0b3JlLndlYnNpdGU/LmNoYXQ/LmxheW91dF90aGVtZX1dKX0sW3ooInNwYW4iLHljLGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9oZWxwZGVza192aWV3ZXJfb3Blbl90b29sdGlwIikpLDEpXSwyKSxHKChBKCksRigiYSIse2NsYXNzOiJjYy1zbGEwayIsb25DbGljazpjWzFdfHwoY1sxXT1EKCgpPT57fSxbInN0b3AiXSkpLGhyZWY6ZS4kc3RvcmUuaGVscGRlc2sudmlld2VyLnVybCwiYXJpYS1sYWJlbCI6ZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9oZWxwZGVza192aWV3ZXJfb3Blbl90b29sdGlwIikscmVsOiJub29wZW5lciBub3JlZmVycmVyIn0sWy4uLmNbNV18fChjWzVdPVt6KCJzcGFuIix7Y2xhc3M6ImNjLWJyd3l6In0sbnVsbCwtMSldKV0sOCxfYykpLFtbaSx7cm9sZToiYnV0dG9uIn1dLFtvXV0pXSkpOlooIiIsITApXSkpOihBKCksRigiZGl2Iix2YyxbeigiaDIiLGdjLFtlLiRzdG9yZS5oZWxwZGVzay5zZWFyY2guYWN0aXZlPyhBKCksRihJLHtrZXk6MH0sW2ooZihlLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2hlYWRlcl9oZWxwZGVza19yZXN1bHRzIikpLDEpXSw2NCkpOihBKCksRihJLHtrZXk6MX0sW2ooZihlLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2hlYWRlcl9oZWxwZGVza19jdXJhdGVkIikpLDEpXSw2NCkpXSkseShuLHttb2RlbFZhbHVlOmUuJHN0b3JlLmhlbHBkZXNrLnNlYXJjaC5pbnB1dCwib25VcGRhdGU6bW9kZWxWYWx1ZSI6Y1syXXx8KGNbMl09Yz0+ZS4kc3RvcmUuaGVscGRlc2suc2VhcmNoLmlucHV0PWMpLG9uQ2xpY2s6Y1szXXx8KGNbM109RCgoKT0+e30sWyJzdG9wIl0pKSxvbkNsZWFyOmUub25TZWFyY2hDbGVhcixwbGFjZWhvbGRlcjplLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2hlbHBkZXNrX3NlYXJjaF9mb3JtX2ZpZWxkIiksbG9hZGluZzplLiRzdG9yZS5oZWxwZGVzay5zZWFyY2guaW5pdGlhbGl6ZWQmJmUuJHN0b3JlLmhlbHBkZXNrLnNlYXJjaC5sb2FkaW5nLGRpc2FibGVkOmUuJHN0b3JlLmNoYXQuaGFzX29mZmxpbmUsIm1heC1sZW5ndGgiOjEwMCxjb2xvcjplLmxheW91dENvbG9yaXplZD8id2hpdGUiOiJncmV5Iixib3JkZXJlZDohZS5sYXlvdXRDb2xvcml6ZWQsY2xhc3M6bShbImNjLXptNG8wIix7ImNjLXptNG8wLS12aXNpYmxlIjplLnRyYW5zaXRpb25Eb25lfV0pLG5hbWU6ImhlbHBkZXNrX3NlYXJjaCIscmVmOiJzZWFyY2hfZm9ybSIsImNyaXNwLWZvY3VzLWZvcmVncm91bmQiOiIiLGF1dG9mb2N1czoiIixhdXRvY29tcGxldGU6IiIsY2xlYXI6IiJ9LG51bGwsOCxbIm1vZGVsVmFsdWUiLCJvbkNsZWFyIiwicGxhY2Vob2xkZXIiLCJsb2FkaW5nIiwiZGlzYWJsZWQiLCJjb2xvciIsImJvcmRlcmVkIiwiY2xhc3MiXSldKSldLDIpfV1dKSxDYz17Y2xhc3M6ImNjLTludWZhIGNjLTEwY3FzIn0sd2M9e2NsYXNzOiJjYy12YmM3cSJ9O3ZhciB4Yz17bWFjb3M6IuKMmEsiLHdpbmRvd3M6ImN0cmwrayIsbGludXg6ImN0cmwrayJ9LGpjPXUocSh7Y29tcG9uZW50czp7QmFzZUJ1dHRvbjpNLFNlYXJjaEZvcm06b2N9LHByb3BzOnt0cmFuc2l0aW9uRG9uZTp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITB9fSxjb21wdXRlZDp7bGF5b3V0Q29sb3JpemVkOigpPT4iY29sb3JpemVkIj09PWQud2Vic2l0ZT8uY2hhdD8ubGF5b3V0X3RoZW1lLHNob3J0Y3V0OigpPT54Y1tkLmZlYXR1cmU/Lm9wZXJhdGluZ19zeXN0ZW1dfHwiIix0aXRsZSgpe3JldHVybiBkLm92ZXJsYXkucHJvbXB0LmFza2VkP3RoaXMuJHJlbmRlci5fZSgic2VhcmNoIiwicHJvbXB0X2NvbnRyb2xzX3RpdGxlX3Jlc3VsdHMiKTp0aGlzLiRyZW5kZXIuX2UoInNlYXJjaCIsInByb21wdF9jb250cm9sc190aXRsZV9zZWFyY2giKX19LG1ldGhvZHM6e29uU2VhcmNoU3VibWl0QnV0dG9uQ2xpY2soKXtkLm92ZXJsYXkucHJvY2VlZFNlYXJjaCgpfSxvblNlYXJjaENsZWFyKCl7ZC5vdmVybGF5LnVwZGF0ZVByb21wdEZpZWxkKCIiKX0sb25TZWFyY2hLZXlkb3duKGUpe2lmKDEzPT09ZS5rZXlDb2RlJiYhZS5zaGlmdEtleSlyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksdm9pZCBkLm92ZXJsYXkucHJvY2VlZFNlYXJjaCgpfX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtjb25zdCBuPXYoImJhc2UtYnV0dG9uIiksaT12KCJzZWFyY2gtZm9ybSIpO3JldHVybiBBKCksRigic3BhbiIse2NsYXNzOm0oWyJjYy1pMTQ1diIseyJjYy1pMTQ1di0tbGF5b3V0LWNvbG9yaXplZCI6ZS5sYXlvdXRDb2xvcml6ZWQsImNjLWkxNDV2LS1mdWxsLXZpZXciOmUuJHN0b3JlLmJhc2UuaXNfZnVsbF92aWV3fV0pfSxbeigiaDIiLENjLGYoZS50aXRsZSksMSkseShpLHttb2RlbFZhbHVlOmUuJHN0b3JlLm92ZXJsYXkucHJvbXB0LnF1ZXJ5LCJvblVwZGF0ZTptb2RlbFZhbHVlIjpjWzBdfHwoY1swXT1jPT5lLiRzdG9yZS5vdmVybGF5LnByb21wdC5xdWVyeT1jKSxtb2RlbE1vZGlmaWVyczp7dHJpbTohMH0sb25DbGljazpjWzFdfHwoY1sxXT1EKCgpPT57fSxbInN0b3AiXSkpLG9uQ2xlYXI6ZS5vblNlYXJjaENsZWFyLG9uS2V5ZG93bjplLm9uU2VhcmNoS2V5ZG93bixwbGFjZWhvbGRlcjplLiRyZW5kZXIuX2UoInNlYXJjaCIsInByb21wdF9jb250cm9sc19maWVsZF9wbGFjZWhvbGRlciIpLCJjcmlzcC1mb2N1cy1mb3JlZ3JvdW5kIjp7cHJpb3JpdHk6Mn0sZGlzYWJsZWQ6ZS4kc3RvcmUub3ZlcmxheS5wcm9tcHQudGhpbmtpbmd8fGUuJHN0b3JlLm92ZXJsYXkuaXNfbG9hZGluZyxsb2FkaW5nOmUuJHN0b3JlLm92ZXJsYXkucHJvbXB0LnRoaW5raW5nLCJtYXgtbGVuZ3RoIjoyMDAsY29sb3I6ZS5sYXlvdXRDb2xvcml6ZWQ/IndoaXRlIjoiZ3JleSIsYm9yZGVyZWQ6IWUubGF5b3V0Q29sb3JpemVkLGNsZWFyOiFlLiRzdG9yZS5vdmVybGF5LnByb21wdC50aGlua2luZyxjbGFzczptKFsiY2MtdXB2YjIiLHsiY2MtdXB2YjItLXZpc2libGUiOmUudHJhbnNpdGlvbkRvbmV9XSksbmFtZToib3ZlcmxheV9wcm9tcHQiLHNpemU6ImxhcmdlIixhdXRvZm9jdXM6IiJ9LFcoe186Mn0sWyFlLiRzdG9yZS5vdmVybGF5LnByb21wdC50aGlua2luZyYmZS4kc3RvcmUub3ZlcmxheS5wcm9tcHQucXVlcnkmJmUuJHN0b3JlLm92ZXJsYXkucHJvbXB0LnF1ZXJ5IT09ZS4kc3RvcmUub3ZlcmxheS5yZXN1bHRzLnF1ZXJ5P3tuYW1lOiJhY3Rpb25zIixmbjp4KCgpPT5beShuLHtjbGFzczoiY2MtMTVmZWsiLG9uQ2xpY2s6RChlLm9uU2VhcmNoU3VibWl0QnV0dG9uQ2xpY2ssWyJwcmV2ZW50Il0pLCJhcmlhLWxhYmVsIjplLiRyZW5kZXIuX2UoInNlYXJjaCIsInByb21wdF9jb250cm9sc19maWVsZF9zdWJtaXQiKSx0aW50OiJ0aGVtZSJ9LHtkZWZhdWx0OngoKCk9PltqKGYoZS4kcmVuZGVyLl9lKCJzZWFyY2giLCJwcm9tcHRfY29udHJvbHNfZmllbGRfc3VibWl0IikpLDEpXSksXzoxfSw4LFsib25DbGljayIsImFyaWEtbGFiZWwiXSldKSxrZXk6IjAifTplLnNob3J0Y3V0JiYhZS4kc3RvcmUub3ZlcmxheS5wcm9tcHQuYXNrZWQ/e25hbWU6ImFjdGlvbnMiLGZuOngoKCk9Plt6KCJzcGFuIix3YyxmKGUuc2hvcnRjdXQpLDEpXSksa2V5OiIxIn06dm9pZCAwXSksMTAzMixbIm1vZGVsVmFsdWUiLCJvbkNsZWFyIiwib25LZXlkb3duIiwicGxhY2Vob2xkZXIiLCJkaXNhYmxlZCIsImxvYWRpbmciLCJjb2xvciIsImJvcmRlcmVkIiwiY2xlYXIiLCJjbGFzcyJdKV0sMil9XV0pLHFjPVsiYXJpYS1sYWJlbCIsImFyaWEtZXhwYW5kZWQiXSx6Yz17Y2xhc3M6ImNjLTFzcno4IGNjLTEwY3FzIn0sU2M9e2NsYXNzOiJjYy1ocWQ1NiJ9LEZjPVsib25DbGljayIsImRhdGEtdHlwZSJdLFBjPVsiYXJpYS1sYWJlbCJdO3ZhciBUYz11KHEoe3Byb3BzOntoYXNBY3Rpb25zOnt0eXBlOkJvb2xlYW4scmVxdWlyZWQ6ITB9LGhhc0Nsb3NlQWN0aW9uOnt0eXBlOkJvb2xlYW4scmVxdWlyZWQ6ITB9LGhhc0Nsb3NlQnV0dG9uOnt0eXBlOkJvb2xlYW4scmVxdWlyZWQ6ITB9LGhhc0NvbnZlcnNhdGlvbjp7dHlwZTpCb29sZWFuLHJlcXVpcmVkOiEwfSxoYXNFeHBhbmQ6e3R5cGU6Qm9vbGVhbixyZXF1aXJlZDohMH19LGRhdGE6KCk9Pih7a2V5ZG93bkxpc3RlbmVyOm51bGx9KSxjb21wdXRlZDp7YWN0aW9ucygpe2xldCBlPVtdO2lmKCEwPT09dGhpcy5oYXNFeHBhbmQpe2xldCBjPWQuY2hhdC5pc19leHBhbmRlZDsiaGVscGRlc2siPT09ZC5jaGF0Lm1vZGUmJmQuaGVscGRlc2sudmlld2VyLnVybCYmITA9PT1kLmNoYXQud2FzX2F1dG9fZXhwYW5kZWQuaGVscGRlc2tfYXJ0aWNsZSYmKGM9ITApLCJzZWFyY2giPT09ZC5jaGF0Lm1vZGUmJiEwPT09ZC5jaGF0Lndhc19hdXRvX2V4cGFuZGVkLnNlYXJjaCYmKGM9ITApLGUucHVzaChjPyJjb2xsYXBzZSI6ImV4cGFuZCIpfXJldHVybiB0aGlzLmhhc0NvbnZlcnNhdGlvbiYmKCEwPT09ZC5tZXNzYWdlcy5jb252ZXJzYXRpb24uaGFzX21lc3NhZ2VzJiZlLnB1c2goImRvd25sb2FkIiksITAhPT1kLmNoYXQuaGFzX29mZmxpbmUmJmUucHVzaCgiYWRkIikpLCEwPT09dGhpcy5oYXNDbG9zZUFjdGlvbiYmZS5sZW5ndGg+MCYmZS51bnNoaWZ0KCJjbG9zZSIpLGV9fSxtb3VudGVkKCl7dGhpcy5rZXlkb3duTGlzdGVuZXI9bC5hZGRFdmVudExpc3RlbmVyKCJ3aW5kb3ciLCJrZXlkb3duIix0aGlzLm9uS2V5ZG93bil9LHVubW91bnRlZCgpe3RoaXMua2V5ZG93bkxpc3RlbmVyJiZsLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndpbmRvdyIsImtleWRvd24iLHRoaXMua2V5ZG93bkxpc3RlbmVyKX0sbWV0aG9kczp7Z2V0QWN0aW9uVGV4dChlKXtyZXR1cm4gdGhpcy4kcmVuZGVyLl9lKCJjaGF0IixgY2hhdF9oZWFkZXJfcGFkX2FjdGlvbl8ke2V9YCl9LG9uQWN0aW9uQ2xpY2soZSl7c3dpdGNoKGUpe2Nhc2UiY2xvc2UiOnRoaXMub25DbG9zZUNsaWNrKCk7YnJlYWs7Y2FzZSJleHBhbmQiOmQuY2hhdC5leHBhbmQoITApO2JyZWFrO2Nhc2UiY29sbGFwc2UiOmQuY2hhdC5leHBhbmQoITEpO2JyZWFrO2Nhc2UiZG93bmxvYWQiOmQubWVzc2FnZXMuZG93bmxvYWRUcmFuc2NyaXB0KCk7YnJlYWs7Y2FzZSJhZGQiOmQuY2hhdC5vcGVuQ29udmVyc2F0aW9uKCl9ZC5jaGF0LnRvZ2dsZVBhZFBvcG92ZXIoITEpfSxvbkNsb3NlQ2xpY2soKXtlKCkuQWN0aW9uLmRvX2NoYXRfY2xvc2UoKSxhLm9uSW50ZXJmYWNlQWN0aW9uKCJjbG9zZSIse29yaWdpbjoiYnV0dG9uIn0pfSxvbktleWRvd24oZSl7IkVzY2FwZSI9PT1lLmtleSYmZC5jaGF0Lmhhc19wYWRfcG9wb3ZlciYmZC5jaGF0LnRvZ2dsZVBhZFBvcG92ZXIoITEpfX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtjb25zdCBuPWcoImNyaXNwLWFjY2Vzc2liaWxpdHkiKTtyZXR1cm4gQSgpLEYoInNwYW4iLHtvbk1vdXNlZW50ZXI6Y1szXXx8KGNbM109Yz0+ZS4kc3RvcmUuY2hhdC50b2dnbGVQYWRQb3BvdmVyKCEwKSksb25Nb3VzZWxlYXZlOmNbNF18fChjWzRdPWM9PmUuJHN0b3JlLmNoYXQudG9nZ2xlUGFkUG9wb3ZlcighMSkpLGNsYXNzOm0oWyJjYy0xZnFjOCIseyJjYy0xZnFjOC0tdmlzaWJsZSI6ZS4kc3RvcmUuY2hhdC5oYXNfcGFkX3BvcG92ZXIsImNjLTFmcWM4LS1tb2JpbGUtc2RrIjplLiRzdG9yZS5iYXNlLnJ1bnRpbWUubW9iaWxlX3NkaywiY2MtMWZxYzgtLWxheW91dC1jb2xvcml6ZWQiOiJjb2xvcml6ZWQiPT09ZS4kc3RvcmUud2Vic2l0ZT8uY2hhdD8ubGF5b3V0X3RoZW1lfV0pfSxbZS5oYXNBY3Rpb25zJiZlLmFjdGlvbnMubGVuZ3RoPjA/KEEoKSxGKEkse2tleTowfSxbRygoQSgpLEYoInNwYW4iLHtjbGFzczoiY2MtanQ5bXMiLG9uQ2xpY2s6Y1swXXx8KGNbMF09RChjPT5lLiRzdG9yZS5jaGF0LnRvZ2dsZVBhZFBvcG92ZXIoKSxbInN0b3AiXSkpLCJhcmlhLWxhYmVsIjplLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2hlYWRlcl9wYWRfdGl0bGUiKSwiYXJpYS1leHBhbmRlZCI6ZS4kc3RvcmUuY2hhdC5oYXNfcGFkX3BvcG92ZXI/InRydWUiOiJmYWxzZSJ9LFsuLi5jWzVdfHwoY1s1XT1beigic3BhbiIse2NsYXNzOiJjYy0xcDZ4NyJ9LG51bGwsLTEpXSldLDgscWMpKSxbW24se3JvbGU6ImJ1dHRvbiJ9XV0pLGUuJHN0b3JlLmNoYXQuaGFzX3BhZF9wb3BvdmVyPyhBKCksRigiZGl2Iix7a2V5OjAsY2xhc3M6ImNjLW9vNHR4IixvbkNsaWNrOmNbMV18fChjWzFdPUQoKCk9Pnt9LFsic3RvcCJdKSl9LFt6KCJkaXYiLHpjLGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9oZWFkZXJfcGFkX3RpdGxlIikpLDEpLHooInVsIixTYyxbKEEoITApLEYoSSxudWxsLGIoZS5hY3Rpb25zLGM9PkcoKEEoKSxGKCJsaSIse2NsYXNzOiJjYy1udGQydiIsb25DbGljazpEKHQ9PmUub25BY3Rpb25DbGljayhjKSxbInN0b3AiLCJwcmV2ZW50Il0pLGtleTpgYWN0aW9uXyR7Y31gLCJkYXRhLXR5cGUiOmN9LFtqKGYoZS5nZXRBY3Rpb25UZXh0KGMpKSwxKV0sOCxGYykpLFtbbix7cm9sZToiYnV0dG9uIn1dXSkpLDEyOCkpXSldKSk6WigiIiwhMCldLDY0KSk6ZS5oYXNDbG9zZUJ1dHRvbj9HKChBKCksRigiZGl2Iix7a2V5OjEsY2xhc3M6ImNjLXBkdDk4IixvbkNsaWNrOmNbMl18fChjWzJdPUQoKC4uLmMpPT5lLm9uQ2xvc2VDbGljayYmZS5vbkNsb3NlQ2xpY2soLi4uYyksWyJzdG9wIiwicHJldmVudCJdKSksImFyaWEtbGFiZWwiOmUuJHJlbmRlci5fZSgibWluaW1pemVkIiwidG9vbHRpcF9idXR0b25fY2xvc2VfaGludCIpfSxbLi4uY1s2XXx8KGNbNl09W3ooInNwYW4iLHtjbGFzczoiY2MtMXA2eDcifSxudWxsLC0xKV0pXSw4LFBjKSksW1tuLHtyb2xlOiJidXR0b24ifV1dKTpaKCIiLCEwKV0sMzQpfV1dKSxCYz17a2V5OjAsY2xhc3M6ImNjLWdweDRvIn0sSWM9e2tleToxLGNsYXNzOiJjYy1ncHg0byJ9LE1jPXtrZXk6MixjbGFzczoiY2MtZ3B4NG8ifSwkYz17a2V5OjMsY2xhc3M6ImNjLWdweDRvIn07dmFyIEFjPXUocSh7Y29tcG9uZW50czp7Q2hhdEhlYWRlck1vZGVzOmVlLENoYXRIZWFkZXJIb21lOm5lLENoYXRIZWFkZXJDb252ZXJzYXRpb246SmUsQ2hhdEhlYWRlckNvbnZlcnNhdGlvbnM6ZWMsQ2hhdEhlYWRlckhlbHBkZXNrOmJjLENoYXRIZWFkZXJTZWFyY2g6amMsQ2hhdEhlYWRlclBhZDpUY30sZW1pdHM6WyJoZWxwZGVzazpzZWFyY2g6a2V5ZG93biJdLGRhdGE6KCk9Pih7dHJhbnNpdGlvbkRvbmU6ITAsdHJhbnNpdGlvblN0YXJ0ZWQ6ITEsdHJhbnNpdGlvbkZhbGxiYWNrVGltZW91dDpudWxsfSksY29tcHV0ZWQ6e2hhc0FjdGlvbnM6KCk9PiEwIT09ZC5iYXNlLmlzX21vYmlsZV92aWV3LGhhc0Nsb3NlQWN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzQ2xvc2VGb3JjZWRWYWx1ZT8/ITB9LGhhc0Nsb3NlQnV0dG9uKCl7cmV0dXJuIHRoaXMuaGFzQ2xvc2VGb3JjZWRWYWx1ZT8/KHRoaXMuaXNGdWxsVmlld3x8dGhpcy53ZWJzaXRlTG9nb3x8dGhpcy5sYXN0T3BlcmF0b3JGYWNlfHx0aGlzLm9uZ29pbmdPcGVyYXRvckZhY2UpfSxoYXNDbG9zZUZvcmNlZFZhbHVlOigpPT4hMD09PWQuYmFzZS5ydW50aW1lPy5tb2JpbGVfc2RrPyJzaGVldCI9PT1kLmJhc2UucnVudGltZT8ucHJlc2VudGF0aW9uOiEwIT09ZC5iYXNlLnJ1bnRpbWU/LmxvY2tfbWF4aW1pemVkJiZudWxsLGhhc0NvbnZlcnNhdGlvbigpe3JldHVybiEwPT09dGhpcy5pc0NoYXRDb252ZXJzYXRpb24mJiEwPT09ZC53ZWJzaXRlLmNoYXQuY29udmVyc2F0aW9uc30saGFzRXhwYW5kKCl7cmV0dXJuITAhPT1kLmJhc2UucnVudGltZT8ubG9ja19tYXhpbWl6ZWQmJiEwIT09dGhpcy5pc0Z1bGxWaWV3fSxoYXNUaWxlOigpPT5kLndlYnNpdGU/LmNoYXQ/LnRpbGUmJiJkZWZhdWx0IiE9PWQud2Vic2l0ZS5jaGF0LnRpbGUsaGFzVHJhbnNpdGlvbjooKT0+ISFkLmZlYXR1cmUuaGFzX2Nzc19hbmltYXRpb25zLGlzQ2hhdDooKT0+ImNoYXQiPT09ZC5jaGF0Lm1vZGUsaXNDaGF0Q29udmVyc2F0aW9uKCl7cmV0dXJuISghdGhpcy5pc0NoYXR8fCFkLmNoYXQuY29udmVyc2F0aW9ucy5jdXJyZW50X3Nlc3Npb25faWQpfSxpc0NoYXRDb252ZXJzYXRpb25zKCl7cmV0dXJuISghdGhpcy5pc0NoYXR8fGQuY2hhdC5jb252ZXJzYXRpb25zLmN1cnJlbnRfc2Vzc2lvbl9pZCl9LGlzRnVsbFZpZXc6KCk9PiEhZC5iYXNlLmlzX2Z1bGxfdmlldyxpc0hlbHBkZXNrQXJ0aWNsZTooKT0+ISgiaGVscGRlc2siIT09ZC5jaGF0Lm1vZGV8fCFkLmhlbHBkZXNrLnZpZXdlci51cmwpLGxhc3RPcGVyYXRvckZhY2U6KCk9PiEhKGQud2Vic2l0ZT8uY2hhdD8ubGFzdF9vcGVyYXRvcl9mYWNlJiZkLmJhc2UuYWN0aXZlX29wZXJhdG9ycz8ubGVuZ3RoPjApLGxheW91dENvbG9yaXplZDooKT0+ImNvbG9yaXplZCI9PT1kLndlYnNpdGU/LmNoYXQ/LmxheW91dF90aGVtZSxvbmdvaW5nT3BlcmF0b3JGYWNlOigpPT4hKCFkLndlYnNpdGU/LmNoYXQ/Lm9uZ29pbmdfb3BlcmF0b3JfZmFjZXx8IWQuY2hhdC5jdXJyZW50X29uZ29pbmdfb3BlcmF0b3I/LnVybCksb3ZlcmZsb3c6KCk9PmQuY2hhdC5oYXNfY2hhbm5lbHN8fGQuY2hhdC5oYXNfcGFkX3BvcG92ZXIsdGlsZSgpe3JldHVybiB0aGlzLmhhc1RpbGU/ZC53ZWJzaXRlPy5jaGF0Py50aWxlOm51bGx9LHdlYnNpdGVMb2dvOigpPT4hIWQud2Vic2l0ZT8uY2hhdD8ud2Vic2l0ZV9sb2dvfSx3YXRjaDp7IiRzdG9yZS5jaGF0Lm1vZGUiKCl7dGhpcy5yZXNldFRyYW5zaXRpb25Eb25lKCl9fSxtb3VudGVkKCl7dGhpcy4kcmVmcy5yb290LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25zdGFydCIsdGhpcy5vblRyYW5zaXRpb25zdGFydCksdGhpcy4kcmVmcy5yb290LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMub25UcmFuc2l0aW9uZW5kKSx0aGlzLnJlc2V0VHJhbnNpdGlvbkRvbmUoKX0sYmVmb3JlVW5tb3VudCgpe3RoaXMuJHJlZnMucm9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uc3RhcnQiLHRoaXMub25UcmFuc2l0aW9uc3RhcnQpLHRoaXMuJHJlZnMucm9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIix0aGlzLm9uVHJhbnNpdGlvbmVuZCl9LG1ldGhvZHM6e3Jlc2V0VHJhbnNpdGlvbkRvbmUoKXt0aGlzLnRyYW5zaXRpb25GYWxsYmFja1RpbWVvdXQmJihsLmNsZWFyVGltZW91dCh0aGlzLnRyYW5zaXRpb25GYWxsYmFja1RpbWVvdXQpLHRoaXMudHJhbnNpdGlvbkZhbGxiYWNrVGltZW91dD1udWxsKSx0aGlzLnRyYW5zaXRpb25Eb25lPSF0aGlzLmhhc1RyYW5zaXRpb24sdGhpcy50cmFuc2l0aW9uU3RhcnRlZD0hMSx0aGlzLmhhc1RyYW5zaXRpb24mJih0aGlzLnRyYW5zaXRpb25GYWxsYmFja1RpbWVvdXQ9bC5zZXRUaW1lb3V0KCgpPT57dGhpcy50cmFuc2l0aW9uU3RhcnRlZHx8ITEhPT10aGlzLnRyYW5zaXRpb25Eb25lfHwodGhpcy50cmFuc2l0aW9uRG9uZT0hMCl9LDEwMCkpfSxvblRyYW5zaXRpb25zdGFydCgpe3RoaXMudHJhbnNpdGlvblN0YXJ0ZWQ9ITAsdGhpcy50cmFuc2l0aW9uRmFsbGJhY2tUaW1lb3V0JiYobC5jbGVhclRpbWVvdXQodGhpcy50cmFuc2l0aW9uRmFsbGJhY2tUaW1lb3V0KSx0aGlzLnRyYW5zaXRpb25GYWxsYmFja1RpbWVvdXQ9bnVsbCl9LG9uVHJhbnNpdGlvbmVuZCgpeyExPT09dGhpcy50cmFuc2l0aW9uRG9uZSYmImNoYXQiPT09ZC5jaGF0Lm1vZGUmJmguc2Nyb2xsVG9MYXN0TWVzc2FnZSgpLHRoaXMudHJhbnNpdGlvbkRvbmU9ITB9LG9uSGVscGRlc2tTZWFyY2hLZXlkb3duKGUpe3RoaXMuJGVtaXQoImhlbHBkZXNrOnNlYXJjaDprZXlkb3duIixlKX0sb25DbGljaygpe2UoKS5BY3Rpb24uZG9fY2hhdF9jbG9zZSgpfX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtjb25zdCBuPXYoImNoYXQtaGVhZGVyLW1vZGVzIiksaT12KCJjaGF0LWhlYWRlci1ob21lIiksbz12KCJjaGF0LWhlYWRlci1jb252ZXJzYXRpb24iKSxyPXYoImNoYXQtaGVhZGVyLWNvbnZlcnNhdGlvbnMiKSxoPXYoImNoYXQtaGVhZGVyLWhlbHBkZXNrIiksZD12KCJjaGF0LWhlYWRlci1zZWFyY2giKSxwPXYoImNoYXQtaGVhZGVyLXBhZCIpO3JldHVybiBBKCksRigiZGl2Iix7b25DbGljazpjWzBdfHwoY1swXT0oLi4uYyk9PmUub25DbGljayYmZS5vbkNsaWNrKC4uLmMpKSxyZWY6InJvb3QiLGNsYXNzOm0oWyJjYy0xd3JqOCIsImNjLTF3cmo4LS1tb2RlLSIrZS4kc3RvcmUuY2hhdC5tb2RlLCJjYy0xd3JqOC0tc3RhdHVzLSIrZS4kc3RvcmUuY2hhdC5jdXJyZW50X3N0YXR1c19tYXJrZXIsImNjLTF3cmo4LS1jb2xvci1tb2RlLSIrKCJhdXRvIj09PWUuJHN0b3JlLndlYnNpdGU/LmNoYXQuY29sb3JfbW9kZT9lLiRzdG9yZS5mZWF0dXJlLmNvbG9yX3NjaGVtZV9wcmVmZXJlbmNlOmUuJHN0b3JlLndlYnNpdGU/LmNoYXQuY29sb3JfbW9kZSkse1siY2MtMXdyajgtLXRpbGUtIitlLnRpbGVdOmUudGlsZSwiY2MtMWk0bDEiOmUubGF5b3V0Q29sb3JpemVkLCJjYy0xd3JqOC0tZnVsbC12aWV3IjplLmlzRnVsbFZpZXcsImNjLTF3cmo4LS1tb2JpbGUtc2RrIjplLiRzdG9yZS5iYXNlLnJ1bnRpbWUubW9iaWxlX3NkaywiY2MtMXdyajgtLXNtYWxsLXZpZXciOmUuJHN0b3JlLmJhc2UuaXNfc21hbGxfdmlldywiY2MtMXdyajgtLWxhcmdlLXZpZXciOmUuJHN0b3JlLmJhc2UuaXNfbGFyZ2VfdmlldywiY2MtMXdyajgtLWhhcy10aWxlIjplLmhhc1RpbGUsImNjLTF3cmo4LS1jaGF0LWNvbnZlcnNhdGlvbnMiOmUuaXNDaGF0Q29udmVyc2F0aW9ucywiY2MtMXdyajgtLWhlbHBkZXNrLWFydGljbGUiOmUuaXNIZWxwZGVza0FydGljbGUsImNjLTF3cmo4LS1sYXlvdXQtY29sb3JpemVkIjplLmxheW91dENvbG9yaXplZCwiY2MtMXdyajgtLWxvY2stbWF4aW1pemVkIjplLiRzdG9yZS5iYXNlLnJ1bnRpbWU/LmxvY2tfbWF4aW1pemVkLCJjYy0xd3JqOC0tYWN0aXZpdHktbWV0cmljcyI6ZS4kc3RvcmUud2Vic2l0ZT8uY2hhdD8uYWN0aXZpdHlfbWV0cmljcywiY2MtMXdyajgtLW92ZXJmbG93IjplLm92ZXJmbG93LCJjYy0xd3JqOC0taGFzLXRyYW5zaXRpb24iOmUuaGFzVHJhbnNpdGlvbn1dKX0sW3kobix7Y2xhc3M6ImNjLXEzOWI5IiwibW9kZS1jbGFzcyI6ImNjLTFzN3ZvIn0pLCJob21lIj09PWUuJHN0b3JlLmNoYXQubW9kZT8oQSgpLEYoImRpdiIsQmMsW3koaSldKSk6ImNoYXQiPT09ZS4kc3RvcmUuY2hhdC5tb2RlPyhBKCksRigiZGl2IixJYyxbZS4kc3RvcmUuY2hhdC5jb252ZXJzYXRpb25zLmN1cnJlbnRfc2Vzc2lvbl9pZD8oQSgpLFUobyx7a2V5OjB9KSk6KEEoKSxVKHIse2tleToxfSkpXSkpOiJoZWxwZGVzayI9PT1lLiRzdG9yZS5jaGF0Lm1vZGU/KEEoKSxGKCJkaXYiLE1jLFt5KGgse29uS2V5ZG93bjplLm9uSGVscGRlc2tTZWFyY2hLZXlkb3duLCJ0cmFuc2l0aW9uLWRvbmUiOmUudHJhbnNpdGlvbkRvbmV9LG51bGwsOCxbIm9uS2V5ZG93biIsInRyYW5zaXRpb24tZG9uZSJdKV0pKToic2VhcmNoIj09PWUuJHN0b3JlLmNoYXQubW9kZT8oQSgpLEYoImRpdiIsJGMsW3koZCx7InRyYW5zaXRpb24tZG9uZSI6ZS50cmFuc2l0aW9uRG9uZX0sbnVsbCw4LFsidHJhbnNpdGlvbi1kb25lIl0pXSkpOlooIiIsITApLHkocCx7Y2xhc3M6ImNjLXkwNmZlIiwiaGFzLWFjdGlvbnMiOmUuaGFzQWN0aW9ucywiaGFzLWNsb3NlLWJ1dHRvbiI6ZS5oYXNDbG9zZUJ1dHRvbiwiaGFzLWNsb3NlLWFjdGlvbiI6ZS5oYXNDbG9zZUFjdGlvbiwiaGFzLWNvbnZlcnNhdGlvbiI6ZS5oYXNDb252ZXJzYXRpb24sImhhcy1leHBhbmQiOmUuaGFzRXhwYW5kfSxudWxsLDgsWyJoYXMtYWN0aW9ucyIsImhhcy1jbG9zZS1idXR0b24iLCJoYXMtY2xvc2UtYWN0aW9uIiwiaGFzLWNvbnZlcnNhdGlvbiIsImhhcy1leHBhbmQiXSldLDIpfV1dKSxMYz17Y2xhc3M6ImNjLXprZGgyIn0sRGM9e2NsYXNzOiJjYy0xMHcwZCBjYy0xMGNxcyJ9LEVjPXtrZXk6MCxjbGFzczoiY2MtMnN0djIgY2MtMnN0djItLXByaW1hcnkifSxWYz17a2V5OjAsY2xhc3M6ImNjLTFyZXBiIn0sSGM9WyJhcmlhLWxhYmVsIl0sUmM9e2NsYXNzOiJjYy01MGFhdCBjYy0xMGNxcyJ9LEtjPXtjbGFzczoiY2MtNTBhYXQgY2MtMTBjcXMifSxPYz17a2V5OjAsY2xhc3M6ImNjLTFyMmo0In0sVWM9e2tleTowLGNsYXNzOiJjYy0xeTVpcyBjYy0xbHdreiIsImRhdGEtdGludCI6InRoZW1lIn0sTmM9WyJvbkNsaWNrIl0sV2M9e2tleToxLGNsYXNzOiJjYy0yc3R2MiBjYy0yc3R2Mi0tc2Vjb25kYXJ5In0sWmM9WyJkYXRhLWhlYWx0aCJdLEdjPVsiaHJlZiIsImFyaWEtbGFiZWwiXSxRYz17Y2xhc3M6ImNjLTl6cHd4In0sWWM9e2NsYXNzOiJjYy01MGFhdCBjYy0xMGNxcyJ9LEpjPXtjbGFzczoiY2MtYzlnMzAifSxYYz17a2V5OjEsY2xhc3M6ImNjLTFyZXBiIiwiZGF0YS10eXBlIjoic2VhcmNoIn0sZXQ9WyJhcmlhLWxhYmVsIl0sY3Q9e2NsYXNzOiJjYy05enB3eCJ9LHR0PXtjbGFzczoiY2MtNTBhYXQgY2MtMTBjcXMifSxhdD17Y2xhc3M6ImNjLWM5ZzMwIn07dmFyIHN0PXUocSh7Y29tcG9uZW50czp7VW5yZWFkQ291bnRlcjpRfSxjb21wdXRlZDp7YXZhaWxhYmxlQWN0aW9uczooKT0+KHtjaGF0OiFkLmhlbHBkZXNrLnNldHRpbmdzX29ubHl8fCExLGhlbHBkZXNrOmQuaGVscGRlc2suc2V0dGluZ3Nfc2VhcmNofHwhMSxzdGF0dXM6ISghZC5jaGF0LnN0YXR1cy51cmx8fCFkLndlYnNpdGUuY2hhdC5zdGF0dXNfaGVhbHRoX2RlYWQpLHNlYXJjaDpkLndlYnNpdGUuY2hhdD8ub3ZlcmxheV9zZWFyY2h8fCExfSksY29udmVyc2F0aW9uU2Vzc2lvbklkcygpe3JldHVybiB0aGlzLiRzdG9yZS5jaGF0LmNvbnZlcnNhdGlvbnMuYWxsX3Nlc3Npb25faWRzfHxbXX0saGVscGRlc2tTdWdnZXN0aW9uczooKT0+ZC5oZWxwZGVzay5zZWFyY2gucmVzdWx0cy5zbGljZSgwLDMpLHN0YXR1cygpe2xldCBlPWQud2Vic2l0ZS53ZWJzaXRlPy5zdGF0dXM/LmhlYWx0aHx8ImhlYWx0aHkiO3JldHVybntoZWFsdGg6ZSxsYWJlbDp0aGlzLiRyZW5kZXIuX2UoImNoYXQiLGBjaGF0X2hvbWVfc3RhdHVzXyR7ZX1gKX19LHVucmVhZE1lc3NhZ2VzOigpPT5kLmNoYXQuY29udmVyc2F0aW9ucy5hbGxfdW5yZWFkX2NvdW50fHwwfSxtb3VudGVkKCl7dGhpcy5pbml0aWFsaXplKCl9LG1ldGhvZHM6e2luaXRpYWxpemUoKXshMCE9PXRoaXMuYXZhaWxhYmxlQWN0aW9ucy5oZWxwZGVza3x8ZC5jaGF0Lmhhc19vZmZsaW5lfHxkLmhlbHBkZXNrLmFjcXVpcmVRdWVyeVJlc3VsdHMoKX0sb25BY3Rpb25DbGljayhlKXtkLmNoYXQuY2hhbmdlTW9kZShlLCEwKSwiY2hhdCI9PT1lJiZ0aGlzLnVucmVhZE1lc3NhZ2VzPjAmJnRoaXMuY29udmVyc2F0aW9uU2Vzc2lvbklkcy5sZW5ndGg+MSYmZC5jaGF0Lm9wZW5Db252ZXJzYXRpb24oKX0sb25IZWxwZGVza1N1Z2dlc3Rpb25DbGljayhlKXtkLmhlbHBkZXNrLnNob3dBcnRpY2xlKGUubG9jYWxlLGUuc2x1ZyxlLnRpdGxlLGUuY2F0ZWdvcnksZS51cGRhdGVkX2F0KSxkLmhlbHBkZXNrLm9wZW4oKX19fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7Y29uc3Qgbj12KCJ1bnJlYWQtY291bnRlciIpLGk9ZygiY3Jpc3AtYWNjZXNzaWJpbGl0eSIpLG89ZygiY3Jpc3AtbGluay10YXJnZXQiKTtyZXR1cm4gQSgpLEYoImRpdiIse2NsYXNzOm0oWyJjYy0xcDc0ZSIseyJjYy0xcDc0ZS0tZnVsbC12aWV3IjplLiRzdG9yZS5iYXNlLmlzX2Z1bGxfdmlld31dKX0sW3ooImRpdiIsTGMsW3ooInNwYW4iLERjLGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9ob21lX2hlbHBfdGl0bGUiKSksMSksZS5hdmFpbGFibGVBY3Rpb25zLmNoYXR8fGUuYXZhaWxhYmxlQWN0aW9ucy5oZWxwZGVzaz8oQSgpLEYoInVsIixFYyxbZS5hdmFpbGFibGVBY3Rpb25zLmNoYXQ/KEEoKSxGKCJsaSIsVmMsW0coKEEoKSxGKCJhIix7Y2xhc3M6ImNjLTEzdDNnIGNjLTU1ZzZkIGNjLTU1ZzZkLS1jaGF0IixvbkNsaWNrOmNbMF18fChjWzBdPWM9PmUub25BY3Rpb25DbGljaygiY2hhdCIpKSwiYXJpYS1sYWJlbCI6ZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9ob21lX2hlbHBfY2hhdF9uYW1lIil9LFtjWzNdfHwoY1szXT16KCJzcGFuIix7Y2xhc3M6ImNjLTFtZmJvIGNjLW95ZXZmIn0sbnVsbCwtMSkpLHooInNwYW4iLFJjLGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9ob21lX2hlbHBfY2hhdF9uYW1lIikpLDEpLGUudW5yZWFkTWVzc2FnZXM+MD8oQSgpLFUobix7a2V5OjAsY2xhc3M6ImNjLTFjeWs0Iixjb3VudDplLnVucmVhZE1lc3NhZ2VzfSxudWxsLDgsWyJjb3VudCJdKSk6WigiIiwhMCksY1s0XXx8KGNbNF09eigic3BhbiIse2NsYXNzOiJjYy05ZTZjcCJ9LG51bGwsLTEpKV0sOCxIYykpLFtbaSx7cm9sZToiYnV0dG9uIn1dXSldKSk6WigiIiwhMCksZS5hdmFpbGFibGVBY3Rpb25zLmhlbHBkZXNrPyhBKCksRigibGkiLHtrZXk6MSxjbGFzczptKFsiY2MtMXJlcGIiLHsiY2MtMXJlcGItLWRpc2FibGVkIjplLiRzdG9yZS5jaGF0Lmhhc19vZmZsaW5lLCJjYy0xcmVwYi0tcGFkZGVkIjplLmhlbHBkZXNrU3VnZ2VzdGlvbnMubGVuZ3RoPjB8fGUuJHN0b3JlLmhlbHBkZXNrLnNlYXJjaC5sb2FkaW5nfV0pfSxbRygoQSgpLEYoImEiLHtjbGFzczoiY2MtMTN0M2cgY2MtNTVnNmQgY2MtNTVnNmQtLWhlbHBkZXNrIixvbkNsaWNrOmNbMV18fChjWzFdPWM9PmUub25BY3Rpb25DbGljaygiaGVscGRlc2siKSl9LFtjWzVdfHwoY1s1XT16KCJzcGFuIix7Y2xhc3M6ImNjLTFtZmJvIGNjLW95ZXZmIn0sbnVsbCwtMSkpLHooInNwYW4iLEtjLGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9ob21lX2hlbHBfaGVscGRlc2tfbmFtZSIpKSwxKSxjWzZdfHwoY1s2XT16KCJzcGFuIix7Y2xhc3M6ImNjLTllNmNwIn0sbnVsbCwtMSkpXSkpLFtbaSx7cm9sZToiYnV0dG9uIn1dXSksZS5oZWxwZGVza1N1Z2dlc3Rpb25zLmxlbmd0aD4wfHxlLiRzdG9yZS5oZWxwZGVzay5zZWFyY2gubG9hZGluZz8oQSgpLEYoImRpdiIsT2MsW2UuJHN0b3JlLmhlbHBkZXNrLnNlYXJjaC5sb2FkaW5nPyhBKCksRigic3BhbiIsVWMpKTooQSghMCksRihJLHtrZXk6MX0sYihlLmhlbHBkZXNrU3VnZ2VzdGlvbnMsKGMsdCk9PkcoKEEoKSxGKCJhIix7Y2xhc3M6ImNjLXhhZjlmIixvbkNsaWNrOnQ9PmUub25IZWxwZGVza1N1Z2dlc3Rpb25DbGljayhjKSxrZXk6ImhlbHBkZXNrXyIrdH0sW2ooZihjLnRpdGxlKSwxKV0sOCxOYykpLFtbaSx7cm9sZToiYnV0dG9uIn1dXSkpLDEyOCkpXSkpOlooIiIsITApXSwyKSk6WigiIiwhMCldKSk6WigiIiwhMCksZS5hdmFpbGFibGVBY3Rpb25zLnN0YXR1c3x8ZS5hdmFpbGFibGVBY3Rpb25zLnNlYXJjaD8oQSgpLEYoInVsIixXYyxbZS5hdmFpbGFibGVBY3Rpb25zLnN0YXR1cz8oQSgpLEYoImxpIix7a2V5OjAsY2xhc3M6ImNjLTFyZXBiIiwiZGF0YS1oZWFsdGgiOmUuc3RhdHVzLmhlYWx0aCwiZGF0YS10eXBlIjoic3RhdHVzIn0sW0coKEEoKSxGKCJhIix7Y2xhc3M6ImNjLTEzdDNnIixocmVmOmUuJHN0b3JlLmNoYXQuc3RhdHVzLnVybCwiYXJpYS1sYWJlbCI6ZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9ob21lX2hlbHBfc3RhdHVzX25hbWUiKSxyZWw6Im5vb3BlbmVyIG5vcmVmZXJyZXIifSxbeigic3BhbiIsUWMsW3ooInNwYW4iLFljLGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9ob21lX2hlbHBfc3RhdHVzX25hbWUiKSksMSkseigic3BhbiIsSmMsZihlLnN0YXR1cy5sYWJlbCksMSldKSxjWzddfHwoY1s3XT16KCJzcGFuIix7Y2xhc3M6ImNjLTllNmNwIn0sbnVsbCwtMSkpXSw4LEdjKSksW1tvXSxbaSx7cm9sZToiYnV0dG9uIn1dXSldLDgsWmMpKTpaKCIiLCEwKSxlLmF2YWlsYWJsZUFjdGlvbnMuc2VhcmNoPyhBKCksRigibGkiLFhjLFtHKChBKCksRigiYSIse2NsYXNzOiJjYy0xM3QzZyIsb25DbGljazpjWzJdfHwoY1syXT1jPT5lLm9uQWN0aW9uQ2xpY2soInNlYXJjaCIpKSwiYXJpYS1sYWJlbCI6ZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9ob21lX2hlbHBfc2VhcmNoX25hbWUiKX0sW3ooInNwYW4iLGN0LFt6KCJzcGFuIix0dCxmKGUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfaG9tZV9oZWxwX3NlYXJjaF9uYW1lIikpLDEpLHooInNwYW4iLGF0LGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9ob21lX2hlbHBfc2VhcmNoX2xhYmVsIikpLDEpXSldLDgsZXQpKSxbW2kse3JvbGU6ImJ1dHRvbiJ9XV0pXSkpOlooIiIsITApXSkpOlooIiIsITApXSldLDIpfV1dKSxsdD1bIm9uQ2xpY2siLCJvbk1vdXNlZW50ZXIiLCJocmVmIl0sbnQ9e2NsYXNzOiJjYy1rODZlMiJ9LGl0PXtrZXk6MCxjbGFzczoiY2MtbjdydmUgY2MtMWljcmoifSxvdD17a2V5OjEsY2xhc3M6ImNjLTR6aWxzIGNjLTFpY3JqIn07dmFyIHJ0PXUocSh7Y29tcG9uZW50czp7VW5yZWFkQ291bnRlcjpRfSxwcm9wczp7cmVzdWx0czp7dHlwZTpBcnJheSxyZXF1aXJlZDohMH0sdHlwZTp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITAsdmFsaWRhdG9yOmU9PlsiY2hhdCIsImhlbHBkZXNrIl0uaW5jbHVkZXMoZSl9fSxlbWl0czpbInNlbGVjdCJdLGRhdGE6KCk9Pih7Y3VycmVudEluZGV4OjB9KSx3YXRjaDp7cmVzdWx0cygpe3RoaXMuY3VycmVudEluZGV4PTB9fSxtZXRob2RzOntrZXlkb3duRnJvbVBhcmVudChlKXt0aGlzLm9uS2V5ZG93bihlKX0sZm9jdXNGaXJzdFJlc3VsdCgpe3RoaXMuY3VycmVudEluZGV4PTA7bGV0IGU9dGhpcy4kcmVmcy5yb290LnF1ZXJ5U2VsZWN0b3IoIi5jYy1pZXl5biIpO3JldHVybiEhZSYmKGUuZm9jdXMoKSxlLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjoic21vb3RoIixibG9jazoibmVhcmVzdCJ9KSwhMCl9LHNlbGVjdEFjdGl2ZVJlc3VsdCgpe2xldCBlPXRoaXMuJHJlZnMucm9vdC5xdWVyeVNlbGVjdG9yKCIuY2MtaWV5eW4tLWFjdGl2ZSIpO2UmJmUuY2xpY2soKX0sbmF2aWdhdGVSZXN1bHRzKGU9MSl7bGV0IGM9dGhpcy5jdXJyZW50SW5kZXgrZTtjPj10aGlzLnJlc3VsdHMubGVuZ3RoJiYoYz0wKSxjPDAmJihjPXRoaXMucmVzdWx0cy5sZW5ndGgtMSksdGhpcy5jdXJyZW50SW5kZXg9YyxDKCgpPT57bGV0IGU9dGhpcy4kcmVmcy5yb290LnF1ZXJ5U2VsZWN0b3IoIi5jYy1pZXl5bi0tYWN0aXZlIik7ZSYmZS5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6InNtb290aCIsYmxvY2s6Im5lYXJlc3QifSl9KX0sb25LZXlkb3duKGUpe3N3aXRjaChlLmtleUNvZGUpe2Nhc2UgMTM6ZS5zdG9wUHJvcGFnYXRpb24oKSxlLnByZXZlbnREZWZhdWx0KCksdGhpcy5zZWxlY3RBY3RpdmVSZXN1bHQoKTticmVhaztjYXNlIDM4OmUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5uYXZpZ2F0ZVJlc3VsdHMoLTEpO2JyZWFrO2Nhc2UgNDA6ZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLm5hdmlnYXRlUmVzdWx0cygxKX19LG9uUmVzdWx0Q2xpY2soZSl7dGhpcy4kZW1pdCgic2VsZWN0IixlKX19fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7Y29uc3Qgbj12KCJ1bnJlYWQtY291bnRlciIpLGk9ZygiY3Jpc3AtbGluay10YXJnZXQiKSxvPWcoImNyaXNwLWFjY2Vzc2liaWxpdHkiKTtyZXR1cm4gQSgpLEYoInVsIix7b25LZXlkb3duOmNbMV18fChjWzFdPSguLi5jKT0+ZS5vbktleWRvd24mJmUub25LZXlkb3duKC4uLmMpKSxvbk1vdXNlbGVhdmU6Y1syXXx8KGNbMl09Yz0+ZS5jdXJyZW50SW5kZXg9LTEpLGNsYXNzOm0oWyJjYy16eWdzOCIsImNjLXp5Z3M4LS0iK2UudHlwZV0pLHJlZjoicm9vdCJ9LFsoQSghMCksRihJLG51bGwsYihlLnJlc3VsdHMsKHQsYSk9PihBKCksRigibGkiLHtjbGFzczoiY2MtN2R0cHciLGtleTpgcmVzdWx0XyR7YX1gfSxbRygoQSgpLEYoImEiLHtvbkNsaWNrOkQoYz0+ZS5vblJlc3VsdENsaWNrKHQpLFsicHJldmVudCJdKSxvbk1vdXNlZW50ZXI6Yz0+ZS5jdXJyZW50SW5kZXg9YSxvbk1vdXNlbGVhdmU6Y1swXXx8KGNbMF09Yz0+ZS5jdXJyZW50SW5kZXg9LTEpLGhyZWY6dC51cmx8fG51bGwsY2xhc3M6bShbImNjLWlleXluIiwiY2MtaWV5eW4tLSIrKHQuZW50aXR5fHwibm9uZSIpLHsiY2MtaWV5eW4tLWFjdGl2ZSI6YT09PWUuY3VycmVudEluZGV4fV0pLHJlbDoibm9vcGVuZXIgbm9yZWZlcnJlciJ9LFt6KCJzcGFuIixudCxbeigic3BhbiIse2NsYXNzOm0oWyJjYy1ldnkzYSIseyJjYy1ldnkzYS0tc2luZ2xlLWxpbmUiOnQudGl0bGVTaW5nbGVMaW5lLCJjYy0xMGNxcyI6dC50aXRsZUVtcGhhc2lzLCJjYy0xaWNyaiI6IXQudGl0bGVFbXBoYXNpc31dKX0sZih0LnRpdGxlKSwzKSx0LmRlc2NyaXB0aW9uPyhBKCksRigic3BhbiIsaXQsZih0LmRlc2NyaXB0aW9uKSwxKSk6WigiIiwhMCksdC5zdGF0aXN0aWNzPyhBKCksRigic3BhbiIsb3QsZih0LnN0YXRpc3RpY3MpLDEpKTpaKCIiLCEwKV0pLHQuY291bnRlciYmdC5jb3VudGVyPjA/KEEoKSxVKG4se2tleTowLGNsYXNzOiJjYy03aHo2MiIsY291bnQ6dC5jb3VudGVyfSxudWxsLDgsWyJjb3VudCJdKSk6WigiIiwhMCldLDQyLGx0KSksW1tpXSxbbyx7cm9sZToiYnV0dG9uIn1dXSldKSkpLDEyOCkpXSwzNCl9XV0pLGh0PXtrZXk6MCxjbGFzczoiY2MtdmszNTcgY2MtMTBjcXMifTt2YXIgZHQ9dShxKHtjb21wb25lbnRzOntCYXNlQnV0dG9uOk19LHByb3BzOnthdXRvc3RhcnQ6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfSxpY29uOnt0eXBlOlN0cmluZyxkZWZhdWx0OiJhZGQiLHZhbGlkYXRvcjplPT5bImFkZCIsImNoYXQiXS5pbmNsdWRlcyhlKX0sbGFiZWw6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6bnVsbH0scmVkdWNlZDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9fSxlbWl0czpbInN0YXJ0Il0sY29tcHV0ZWQ6e2VmZmVjdGl2ZUxhYmVsKCl7cmV0dXJuIHRoaXMubGFiZWx8fHRoaXMuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfc3RhdGVfc3RhcnQiKX19LG1ldGhvZHM6e3RvRXJyb3JSZWFzb246ZT0+ci50ZXh0KCJjaGF0IixgY2hhdF9zdGF0ZV9lcnJvcl9yZWFzb25fJHtlfWApfHxlLG9uQ2xpY2soKXshMD09PXRoaXMuYXV0b3N0YXJ0P2QuY2hhdC5zdGFydE5ld0NvbnZlcnNhdGlvbigpOnRoaXMuJGVtaXQoInN0YXJ0Iil9fX0pLFtbInJlbmRlciIsZnVuY3Rpb24oZSxjLHQsYSxzLGwpe2NvbnN0IG49digiYmFzZS1idXR0b24iKTtyZXR1cm4gQSgpLEYoImRpdiIse2NsYXNzOm0oWyJjYy0xbzdldiIsImNjLTFvN2V2LS0iK2UuaWNvbix7ImNjLTFvN2V2LS1yZWR1Y2VkIjplLnJlZHVjZWR9XSl9LFt5KG4se2NsYXNzOiJjYy02cHl1dCBjYy0xcWVhcCIsb25DbGljazpEKGUub25DbGljayxbInN0b3AiXSksImFyaWEtbGFiZWwiOmUuZWZmZWN0aXZlTGFiZWwsc2l6ZTplLnJlZHVjZWQ/InNtYWxsIjoiZGVmYXVsdCIsZGlzYWJsZWQ6ZS4kc3RvcmUuY2hhdC5jb252ZXJzYXRpb25zLmlzX3N0YXJ0aW5nfHxlLiRzdG9yZS5jaGF0Lmhhc19vZmZsaW5lLHJvdW5kZWQ6IiJ9LHtkZWZhdWx0OngoKCk9PltjWzBdfHwoY1swXT16KCJzcGFuIix7Y2xhc3M6ImNjLTE3YTc2In0sbnVsbCwtMSkpLGooZihlLmVmZmVjdGl2ZUxhYmVsKSwxKV0pLF86MX0sOCxbIm9uQ2xpY2siLCJhcmlhLWxhYmVsIiwic2l6ZSIsImRpc2FibGVkIl0pLGUuJHN0b3JlLmNoYXQuY29udmVyc2F0aW9ucy5sYXN0X3N0YXJ0X2Vycm9yPyhBKCksRigiZGl2IixodCxmKGUudG9FcnJvclJlYXNvbihlLiRzdG9yZS5jaGF0LmNvbnZlcnNhdGlvbnMubGFzdF9zdGFydF9lcnJvcikpLDEpKTpaKCIiLCEwKV0sMil9XV0pLHB0PXtrZXk6MCxjbGFzczoiY2MtMXgwamQifTt2YXIgdXQ9dShxKHtjb21wb25lbnRzOntDaGF0Q29udGVudFJlc3VsdExpc3Q6cnQsQ2hhdENvbnRlbnRCdXR0b25TdGF0ZVN0YXJ0OmR0fSxjb21wdXRlZDp7cmVzdWx0cygpe2xldCBlPVtdO3JldHVybiBkLmNoYXQuZWFjaFNlc3Npb25JZChjPT57bGV0IHQ9ZC5tZXNzYWdlcy5saXN0KGMpLGE9ZC5tZXNzYWdlcy5nZXRVbnJlYWQoYykscz10aGlzLmZpbmRMYXN0RXhjaGFuZ2VkTWVzc2FnZSh0KXx8dGhpcy5maW5kTGFzdE1lc3NhZ2UodCk7ZS5wdXNoKHtlbnRpdHk6ImNvbnZlcnNhdGlvbnMiLHRpdGxlOnRoaXMubWVzc2FnZVRvUmVzdWx0VGl0bGUocyksZGVzY3JpcHRpb246dGhpcy5tZXNzYWdlVG9SZXN1bHREZXNjcmlwdGlvbihzKSxjb3VudGVyOmEsdGl0bGVFbXBoYXNpczphPjAsdGl0bGVTaW5nbGVMaW5lOiEwLHJhd1Jlc3VsdDp7c2Vzc2lvbklkOmMsdGltZXN0YW1wOnM/LnRpbWVzdGFtcHx8MH19KX0pLGUuc29ydCgoZSxjKT0+Yy5yYXdSZXN1bHQudGltZXN0YW1wLWUucmF3UmVzdWx0LnRpbWVzdGFtcCksZX19LG1ldGhvZHM6e2ZpbmRMYXN0RXhjaGFuZ2VkTWVzc2FnZShlKXtmb3IobGV0IGM9ZS5sZW5ndGgtMTtjPj0wO2MtLSl7bGV0IHQ9ZVtjXTtpZigoIm9wZXJhdG9yIj09PXQuZnJvbXx8InVzZXIiPT09dC5mcm9tKSYmIm51bWJlciI9PXR5cGVvZiB0LmZpbmdlcnByaW50KXJldHVybiB0fXJldHVybiBudWxsfSxmaW5kTGFzdE1lc3NhZ2U6ZT0+ZS5sZW5ndGg+MD9lW2UubGVuZ3RoLTFdOm51bGwsbWVzc2FnZVRvUmVzdWx0VGl0bGU6KGU9bnVsbCk9PiJ0ZXh0Ij09PWU/LnR5cGUmJmU/LmNvbnRlbnQ/ZS5jb250ZW50OnIudGV4dCgiY2hhdCIsImNoYXRfY29udmVyc2F0aW9uc19jb252ZXJzYXRpb24iKSxtZXNzYWdlVG9SZXN1bHREZXNjcmlwdGlvbihlPW51bGwpe2lmKG51bGwhPT1lKXtsZXQgYz1bXTtyZXR1cm4idXNlciI9PT1lLmZyb20/Yy5wdXNoKHIudGV4dCgiY2hhdCIsImNoYXRfY29udmVyc2F0aW9uc195b3Vyc2VsZiIpKTplLnVzZXI/Lm5pY2tuYW1lJiZjLnB1c2godGhpcy4kcmVuZGVyLl9uKGUudXNlci5uaWNrbmFtZSkpLGMucHVzaChLLmZvcm1hdERhdGUoSy50aW1lc3RhbXBUb0lzbyhlLnRpbWVzdGFtcHx8KG5ldyBEYXRlKS5nZXRUaW1lKCkpKSksYy5tYXAoKGUsYyk9PmM+MD9lLnRvTG93ZXJDYXNlKCk6ZSkuam9pbigiLCAiKX1yZXR1cm4gci50ZXh0KCJjaGF0IiwiY2hhdF9jb252ZXJzYXRpb25zX25vX21lc3NhZ2UiKX0sb25LZXlkb3duKGUpe3RoaXMuJHJlZnMubGlzdC5rZXlkb3duRnJvbVBhcmVudChlKX0sb25MaXN0U2VsZWN0KGUpe2QuY2hhdC5vcGVuQ29udmVyc2F0aW9uKGUucmF3UmVzdWx0LnNlc3Npb25JZCl9fX0pLFtbInJlbmRlciIsZnVuY3Rpb24oZSxjLHQsYSxzLGwpe2NvbnN0IG49digiY2hhdC1jb250ZW50LXJlc3VsdC1saXN0IiksaT12KCJjaGF0LWNvbnRlbnQtYnV0dG9uLXN0YXRlLXN0YXJ0Iiksbz1nKCJjcmlzcC1mb2N1cy1mb3JlZ3JvdW5kIik7cmV0dXJuIEcoKEEoKSxGKCJkaXYiLHtvbktleWRvd246Y1swXXx8KGNbMF09KC4uLmMpPT5lLm9uS2V5ZG93biYmZS5vbktleWRvd24oLi4uYykpLGNsYXNzOm0oWyJjYy0xYmJtcyIseyJjYy0xYmJtcy0tZW1wdHkiOjA9PT1lLnJlc3VsdHMubGVuZ3RofV0pLHRhYmluZGV4OiIxIn0sW3kobix7Y2xhc3M6ImNjLTFidXlhIixvblNlbGVjdDplLm9uTGlzdFNlbGVjdCxyZXN1bHRzOmUucmVzdWx0cyx0eXBlOiJjaGF0IixyZWY6Imxpc3QifSxudWxsLDgsWyJvblNlbGVjdCIsInJlc3VsdHMiXSksZS4kc3RvcmUud2Vic2l0ZS5jaGF0LmNvbnZlcnNhdGlvbnM/KEEoKSxGKCJkaXYiLHB0LFt5KGkpXSkpOlooIiIsITApXSwzNCkpLFtbbyx7cHJpb3JpdHk6MX1dXSl9XV0pO3ZhciBtdD11KHEoe3Byb3BzOntjbGlja2FibGU6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtyZXR1cm4gQSgpLEYoImRpdiIse2NsYXNzOm0oWyJjYy1oeWJhZyIseyJjYy1oeWJhZy0tY2xpY2thYmxlIjplLmNsaWNrYWJsZSwiY2MtaHliYWctLWxheW91dC1jb2xvcml6ZWQiOiJjb2xvcml6ZWQiPT09ZS4kc3RvcmUud2Vic2l0ZT8uY2hhdD8ubGF5b3V0X3RoZW1lfV0pfSxbdyhlLiRzbG90cywiZGVmYXVsdCIpXSwyKX1dXSksZnQ9e2NsYXNzOiJjYy0xMmE1MCJ9LGt0PXtjbGFzczoiY2MtMThxMXMifSx5dD17a2V5OjAsY2xhc3M6ImNjLXBqZjhwIGNjLTEwY3FzIn0sX3Q9e2tleToxLGNsYXNzOiJjYy0xMjd2eSBjYy0xMGNxcyJ9LHZ0PXtrZXk6MixjbGFzczoiY2MtMTYzZ3AgY2MtMTBjcXMifSxndD17a2V5OjMsY2xhc3M6ImNjLTFsOXloIGNjLTEwY3FzIn0sYnQ9e2tleTo0LGNsYXNzOiJjYy1rZWtkbCBjYy0xaWNyaiJ9O3ZhciBDdD11KHEoe2NvbXBvbmVudHM6e0NoYXRDb250ZW50QmFubmVyOm10fSxjb21wdXRlZDp7aXNDbGlja2FibGU6KCk9PiEhZC5jaGF0LnJlY29ubmVjdF9pbmFjdGl2ZX0sbWV0aG9kczp7b25CYW5uZXJDbGljaygpeyEwPT09dGhpcy5pc0NsaWNrYWJsZSYmZSgpLkV2ZW50LnRyaWdnZXJJbnRlcmFjdGVkKCEwKX19fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7Y29uc3Qgbj12KCJjaGF0LWNvbnRlbnQtYmFubmVyIik7cmV0dXJuIEEoKSxVKG4se29uQ2xpY2s6ZS5vbkJhbm5lckNsaWNrLGNsYXNzOm0oWyJjYy0zbW5lbSIseyJjYy0zbW5lbS0tcmVjb25uZWN0LWZhaWxlZCI6ZS4kc3RvcmUuY2hhdC5yZWNvbm5lY3RfZmFpbGVkLCJjYy0zbW5lbS0tcmVjb25uZWN0LWluYWN0aXZlIjplLiRzdG9yZS5jaGF0LnJlY29ubmVjdF9pbmFjdGl2ZX1dKSxjbGlja2FibGU6ZS5pc0NsaWNrYWJsZX0se2RlZmF1bHQ6eCgoKT0+W3ooImRpdiIsZnQsW2NbMF18fChjWzBdPXooInNwYW4iLHtjbGFzczoiY2MtMTdsdTEifSxudWxsLC0xKSkseigic3BhbiIsa3QsW2UuJHN0b3JlLmNoYXQucmVjb25uZWN0X2ZhaWxlZHx8ZS4kc3RvcmUuY2hhdC5yZWNvbm5lY3RfaW5hY3RpdmU/ZS4kc3RvcmUuY2hhdC5yZWNvbm5lY3RfZmFpbGVkPyhBKCksRigic3BhbiIsX3QsZihlLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X29mZmxpbmVfZmFpbCIpKSwxKSk6ZS4kc3RvcmUuY2hhdC5yZWNvbm5lY3RfaW5hY3RpdmU/KEEoKSxGKCJzcGFuIix2dCxmKGUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfb2ZmbGluZV9pbmFjdGl2ZSIpKSwxKSk6WigiIiwhMCk6KEEoKSxGKCJzcGFuIix5dCxmKGUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfb2ZmbGluZV9tYWluIikpLDEpKSxlLiRzdG9yZS5jaGF0LnJlY29ubmVjdF9pbmFjdGl2ZT8oQSgpLEYoInNwYW4iLGd0LGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9vZmZsaW5lX2xhYmVsX3Jlc3VtZSIpKSwxKSk6KEEoKSxGKCJzcGFuIixidCxmKGUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfb2ZmbGluZV9sYWJlbF9mcm96ZW4iKSksMSkpXSldKV0pLF86MX0sOCxbIm9uQ2xpY2siLCJjbGFzcyIsImNsaWNrYWJsZSJdKX1dXSksd3Q9e2NsYXNzOiJjYy0xZ3dzayJ9LHh0PXtjbGFzczoiY2MtMTZmM2IgY2MtMTBjcXMifSxqdD17Y2xhc3M6ImNjLWJwcHN5IGNjLTFpY3JqIn0scXQ9WyJocmVmIl07dmFyIHp0PXUocSh7Y29tcG9uZW50czp7QmFzZVNwYWNlOlIsQ2hhdENvbnRlbnRCYW5uZXI6bXR9fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7Y29uc3Qgbj12KCJiYXNlLXNwYWNlIiksaT12KCJjaGF0LWNvbnRlbnQtYmFubmVyIiksbz1nKCJjcmlzcC1saW5rLXRhcmdldCIpO3JldHVybiBBKCksVShpLHtjbGFzczoiY2MtdmJobW8ifSx7ZGVmYXVsdDp4KCgpPT5beigiZGl2Iix3dCxbeigic3BhbiIseHQsZihlLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2hlYWx0aF9tYWluIikpLDEpLHooInNwYW4iLGp0LFtHKChBKCksRigiYSIse2NsYXNzOiJjYy0xcXd6eiBjYy0xMGNxcyIsaHJlZjplLiRzdG9yZS5jaGF0LnN0YXR1cy51cmwscmVsOiJub29wZW5lciBub3JlZmVycmVyIn0sW2ooZihlLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2hlYWx0aF9sYWJlbF9saW5rIikpLDEpXSw4LHF0KSksW1tvXV0pLHkobiksaihmKGUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfaGVhbHRoX2xhYmVsX3VwZGF0ZXMiKSksMSldKV0pXSksXzoxfSl9XV0pLFN0PXtjbGFzczoiY2MtdDk5M2oifTt2YXIgRnQ9L14oPzpodHRwcz86KT8oPzpcL1wvKT8oW14vP10rKS8sUHQ9dShxKHtwcm9wczp7bWVzc2FnZTp7dHlwZTpPYmplY3QscmVxdWlyZWQ6ITB9fSxjb21wdXRlZDp7YW5pbWF0aW9uQ29udGVudCgpe3JldHVybiB0aGlzLm1lc3NhZ2UuY29udGVudH0sY29udGVudFNvdXJjZSgpe3JldHVybiB0aGlzLmFuaW1hdGlvbkNvbnRlbnQudXJsLm1hdGNoKEZ0KVsxXX0sc291cmNlKCl7cmV0dXJuIHRoaXMuY29udGVudFNvdXJjZT8uZW5kc1dpdGgoImdpcGh5LmNvbSIpPyJnaXBoeSI6bnVsbH19fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7cmV0dXJuIEEoKSxGKCJzcGFuIixTdCxbeigic3BhbiIse2NsYXNzOiJjYy0xMHhidiIsc3R5bGU6ayh7YmFja2dyb3VuZEltYWdlOmUuJHJlbmRlci5pbWFnZVVybEJhY2tncm91bmQoZS4kcmVuZGVyLmltYWdlVXJsT3JpZ2luYWwoZS5hbmltYXRpb25Db250ZW50LnVybCkpfSl9LFtlLnNvdXJjZT8oQSgpLEYoInNwYW4iLHtrZXk6MCxjbGFzczptKFsiY2MtMWt0c3oiLCJjYy0xa3Rzei0tIitlLnNvdXJjZV0pfSxbLi4uY1swXXx8KGNbMF09W3ooInNwYW4iLHtjbGFzczoiY2MtNzlodHIifSxudWxsLC0xKV0pXSwyKSk6WigiIiwhMCldLDQpXSl9XV0pLFR0PXtjbGFzczoiY2MtMTU3cmkifSxCdD1bImFyaWEtbGFiZWwiXSxJdD17Y2xhc3M6ImNjLTFsa2drIn0sTXQ9e2NsYXNzOiJjYy0xOWRpaiBjYy0xaWNyaiJ9LCR0PXtjbGFzczoiY2MtMXRnc2wiLHByZWxvYWQ6Im5vbmUifSxBdD1bInNyYyIsInR5cGUiXTt2YXIgTHQ9dShxKHtwcm9wczp7bWVzc2FnZTp7dHlwZTpPYmplY3QscmVxdWlyZWQ6ITB9fSxjb21wdXRlZDp7YXVkaW9Db250ZW50KCl7cmV0dXJuIHRoaXMubWVzc2FnZS5jb250ZW50fX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtjb25zdCBuPWcoImNyaXNwLWFjY2Vzc2liaWxpdHkiKSxpPWcoImNyaXNwLWF1ZGlvIik7cmV0dXJuIEcoKEEoKSxGKCJzcGFuIix7Y2xhc3M6bShbImNjLTFncXZsIiwiY2MtMWdxdmwtLWZyb20tIitlLm1lc3NhZ2UuZnJvbV0pLCJkYXRhLXN0YXRlIjoibm9uZSJ9LFt6KCJzcGFuIixUdCxbRygoQSgpLEYoInNwYW4iLHsiYXJpYS1sYWJlbCI6ZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9tZXNzYWdlX2F1ZGlvX3BsYXlfaGl0IiksY2xhc3M6bShbImNjLXZnazM1Iix7ImNjLW1rNWx2Ijoib3BlcmF0b3IiIT09ZS5tZXNzYWdlLmZyb20sImNjLTFxZWFwIjoib3BlcmF0b3IiPT09ZS5tZXNzYWdlLmZyb219XSl9LFsuLi5jWzBdfHwoY1swXT1beigic3BhbiIse2NsYXNzOiJjYy1jY3EybiJ9LG51bGwsLTEpXSldLDEwLEJ0KSksW1tuLHtyb2xlOiJidXR0b24ifV1dKSxjWzJdfHwoY1syXT16KCJzcGFuIix7Y2xhc3M6ImNjLXhkY25sIn0sW3ooInNwYW4iLHtjbGFzczoiY2MtMWRreDkifSxbeigic3BhbiIse2NsYXNzOiJjYy0xZXgxaSJ9LFt6KCJzcGFuIix7Y2xhc3M6ImNjLWlwbG5iIn0pXSldKV0sLTEpKSx6KCJzcGFuIixJdCxbRygoQSgpLEYoImRpdiIse2NsYXNzOm0oWyJjYy10Y3IxNyIsImNjLTEwY3FzIix7ImNjLW1rNWx2Ijoib3BlcmF0b3IiIT09ZS5tZXNzYWdlLmZyb219XSl9LFsuLi5jWzFdfHwoY1sxXT1baihmKCIxeCIpLC0xKV0pXSwyKSksW1tuLHtyb2xlOiJidXR0b24ifV1dKSx6KCJzcGFuIixNdCxmKGUuJGZpbHRlcnMuZGF0ZS5mb3JtYXRUaW1lKGUuYXVkaW9Db250ZW50LmR1cmF0aW9uKSksMSldKV0pLHooImF1ZGlvIiwkdCxbeigic291cmNlIix7c3JjOmUuYXVkaW9Db250ZW50LnVybCx0eXBlOmUuYXVkaW9Db250ZW50LnR5cGV9LG51bGwsOCxBdCldKV0sMikpLFtbaSx7ZHVyYXRpb246ZS5hdWRpb0NvbnRlbnQuZHVyYXRpb259XV0pfV1dKSxEdD1bImlubmVySFRNTCJdO3ZhciBFdD11KHEoe3Byb3BzOnttZXNzYWdlOnt0eXBlOk9iamVjdCxyZXF1aXJlZDohMH19LGNvbXB1dGVkOntjYXJvdXNlbENvbnRlbnQoKXtyZXR1cm4gdGhpcy5tZXNzYWdlLmNvbnRlbnR9fX0pLFtbInJlbmRlciIsZnVuY3Rpb24oZSxjLHQsYSxzLGwpe3JldHVybiBBKCksRigic3BhbiIse2NsYXNzOiJjYy03ZmhrZSBjYy1seTZ2NyIsaW5uZXJIVE1MOmUuJHJlbmRlci5fZihlLmNhcm91c2VsQ29udGVudC50ZXh0KX0sbnVsbCw4LER0KX1dXSksVnQ9WyJkYXRhLWhhcy12YWx1ZSJdLEh0PVsiYXJpYS1sYWJlbCJdLFJ0PVsiaW5uZXJIVE1MIl07dmFyIEt0PXUocSh7cHJvcHM6e21lc3NhZ2U6e3R5cGU6T2JqZWN0LHJlcXVpcmVkOiEwfX0sY29tcHV0ZWQ6e2ZpZWxkQ29udGVudCgpe3JldHVybiB0aGlzLm1lc3NhZ2UuY29udGVudH0saGFzUHJldmlvdXMoKXtyZXR1cm4gQm9vbGVhbih0aGlzLmZpZWxkQ29udGVudC5wcmV2aW91cyl9fSxtZXRob2RzOntvbk1lc3NhZ2VQcmV2aW91c0NsaWNrKGUpe2QuY2hhdEludGVudC51cGRhdGUoZS5jb250ZW50LnByZXZpb3VzKSxwLnN0YXJ0KCJldmVudHMiLCJjaGF0LW1lc3NhZ2UtYWN0aW9uIil9fX0pLFtbInJlbmRlciIsZnVuY3Rpb24oZSxjLHQsYSxzLGwpe2NvbnN0IG49ZygiY3Jpc3AtYWNjZXNzaWJpbGl0eSIpO3JldHVybiBBKCksRigic3BhbiIse2NsYXNzOiJjYy0xNzB0ciIsImRhdGEtaGFzLXZhbHVlIjplLmZpZWxkQ29udGVudC52YWx1ZT8idHJ1ZSI6ImZhbHNlIn0sW2UuaGFzUHJldmlvdXMmJiJvcGVyYXRvciI9PT1lLm1lc3NhZ2UuZnJvbT9HKChBKCksRigiZGl2Iix7a2V5OjAsY2xhc3M6ImNjLTE0ZjRqIGNjLTZ6czRsIixvbkNsaWNrOmNbMF18fChjWzBdPWM9PmUub25NZXNzYWdlUHJldmlvdXNDbGljayhlLm1lc3NhZ2UpKSwiYXJpYS1sYWJlbCI6ZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9tZXNzYWdlX3RleHRfZmllbGRfcmV0dXJuIil9LFsuLi5jWzFdfHwoY1sxXT1beigic3BhbiIse2NsYXNzOiJjYy01dWN3NyJ9LG51bGwsLTEpXSldLDgsSHQpKSxbW24se3JvbGU6ImJ1dHRvbiJ9XV0pOlooIiIsITApLHooInNwYW4iLHtjbGFzczoiY2MtbHk2djciLGlubmVySFRNTDplLiRyZW5kZXIuX2YoZS5maWVsZENvbnRlbnQudGV4dCl9LG51bGwsOCxSdCldLDgsVnQpfV1dKSxPdD17Y2xhc3M6ImNjLTdpbHBjIn0sVXQ9WyJzcmMiXSxOdD1bInNyYyJdLFd0PVsic3JjIl0sWnQ9e2NsYXNzOiJjYy0xd2djeiJ9LEd0PXtjbGFzczoiY2MtbjZsbDkgY2MtbjZsbDktLW5hdmlnYXRlIn0sUXQ9WyJhcmlhLWxhYmVsIl0sWXQ9WyJhcmlhLWxhYmVsIl0sSnQ9e2NsYXNzOiJjYy1uNmxsOSBjYy1uNmxsOS0tY29udHJvbHMifSxYdD1bImFyaWEtbGFiZWwiXSxlYT1bImFyaWEtbGFiZWwiLCJocmVmIiwiZG93bmxvYWQiXTt2YXIgY2E9bygpLHRhPVsiaW1hZ2UiLCJ2aWRlbyJdLGFhPXUocSh7ZGF0YTooKT0+KHt2aXNpYmxlOiExLGxvYWRpbmc6ITEsc3RhdGU6ImxvYWRpbmciLHR5cGU6bnVsbCxzb3VyY2U6bnVsbCxuYW1lOm51bGwsbWVzc2FnZXM6bnVsbCxpbWFnZXM6W10sZnJvbVNlbGY6ITEsZG93bmxvYWQ6ITB9KSxtYWduaWZ5KGUsYyx0PW51bGwsYT1udWxsLHM9ITApe2NhLmVtaXQoIm1hZ25pZnkiLHt0eXBlOmUsc291cmNlOmMsbmFtZTp0LGZpbmdlcnByaW50OmEsZG93bmxvYWQ6c30pfSxjcmVhdGVkKCl7Y2Eub24oIm1hZ25pZnkiLHRoaXMub25NYWduaWZ5KX0sYmVmb3JlVW5tb3VudCgpe2NhLm9mZigibWFnbmlmeSIsdGhpcy5vbk1hZ25pZnkpfSxtZXRob2RzOnttYWduaWZ5KGUsYyx0PW51bGwsYT1udWxsLHM9ITEsbj0hMCl7aWYoITAhPT10aGlzLmxvYWRpbmcpe3RoaXMubG9hZGluZz0hMDtsZXQgaT10aGlzLmgodGEuaW5jbHVkZXMoZSk/YTpudWxsKTt0aGlzLnN0YXRlPSJsb2FkaW5nIix0aGlzLnR5cGU9ZSx0aGlzLnNvdXJjZT1jLHRoaXMubmFtZT10LHRoaXMubWVzc2FnZXM9aSx0aGlzLmZyb21TZWxmPXMsdGhpcy5kb3dubG9hZD1uLCJpbWFnZSIhPT10aGlzLnR5cGV8fHRoaXMuaW1hZ2VzLmluY2x1ZGVzKGMpP3RoaXMuc3RhdGU9ImxvYWRlZCI6dGhpcy5pbWFnZXMucHVzaChjKSx0aGlzLnZpc2libGU9ITAsbC5zZXRUaW1lb3V0KCgpPT57dGhpcy4kcmVmcy5yb290LmZvY3VzKCl9LDI1MCksdGhpcy5sb2FkaW5nPSExfX0sY2xvc2UoKXt0aGlzLnZpc2libGU9ITEsdGhpcy5sb2FkaW5nPSExLCEwPT09ZSgpLkNoYXQuX2lzSW5pdGlhbGl6ZWQmJmguZm9jdXNPbkZvcmVncm91bmQoKX0sbmF2aWdhdGUoYyx0PSExKXtsZXQgYT10aGlzLm1lc3NhZ2VzW2NdO2lmKGEmJiEwPT09ZSgpLkNoYXQuX2lzSW5pdGlhbGl6ZWQpe2xldCBlPWQubWVzc2FnZXMuZ2V0KGEuZmluZ2VycHJpbnQpLGM9ZS5jb250ZW50O2UmJnRoaXMubWFnbmlmeShhLnR5cGUsYy51cmwsYy5uYW1lLGUuZmluZ2VycHJpbnQsdCl9fSxoKGU9bnVsbCl7bGV0IGM9e3ByZXZpb3VzOm51bGwsbmV4dDpudWxsfTtpZihudWxsIT09ZSYmIWlzTmFOKE51bWJlcihlKSkpe2xldCB0PXBhcnNlSW50KGUsMTApLGE9cy5NZXNzYWdlLmdldENhY2hlZE1lc3NhZ2VzKCk7Zm9yKGxldCBlPTA7ZTxhLmxlbmd0aDtlKyspaWYoYVtlXS5maW5nZXJwcmludD09PXQpe2lmKGU+MClmb3IobGV0IHQ9ZS0xO3Q+PTA7dC0tKXtsZXQgZT1hW3RdLHM9dGhpcy5tKGUpO2lmKHMmJmUpe2MucHJldmlvdXM9e2ZpbmdlcnByaW50OmUuZmluZ2VycHJpbnQsdHlwZTpzfTticmVha319aWYoZTxhLmxlbmd0aC0xKWZvcihsZXQgdD1lKzE7dDxhLmxlbmd0aDt0Kyspe2xldCBlPWFbdF0scz10aGlzLm0oZSk7aWYocyl7Yy5uZXh0PXtmaW5nZXJwcmludDplLmZpbmdlcnByaW50LHR5cGU6c307YnJlYWt9fWJyZWFrfX1yZXR1cm4gY30sbShlKXtsZXQgYz1udWxsLHQ9ZS5jb250ZW50Py50eXBlfHxudWxsO3JldHVybiJmaWxlIj09PWUudHlwZSYmKCEwPT09dGhpcy4kQ09ORklHLkZJTEVfUFJFVklFVy5JTUFHRS5pbmNsdWRlcyh0KSYmKGM9ImltYWdlIiksITA9PT10aGlzLiRDT05GSUcuRklMRV9QUkVWSUVXLlZJREVPLmluY2x1ZGVzKHQpJiYoYz0idmlkZW8iKSksY30sb25DbG9zZUZ1enp5KGUpe2U/LnRhcmdldCYmITA9PT1lLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoImNjLTFrOXBtIikmJnRoaXMub25DbG9zZSgpfSxvbk1hZ25pZnkoZSl7dGhpcy5tYWduaWZ5KGUudHlwZSxlLnNvdXJjZSxlLm5hbWUsZS5maW5nZXJwcmludCwhMSxlLmRvd25sb2FkKX0sb25DbG9zZSgpe3RoaXMuY2xvc2UoKX0sb25OYXZpZ2F0ZUNsaWNrKGUpe3RoaXMubmF2aWdhdGUoZSwhMCl9LG9uRG93bmxvYWRDbGljayhlKXshMD09PWQuYmFzZS5ydW50aW1lLm1vYmlsZV9zZGsmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSksYS5vbkludGVyZmFjZUFjdGlvbigiZG93bmxvYWQiLHtvcmlnaW46Im1hZ25pZnkiLGZpbGU6e3R5cGU6dGhpcy50eXBlLHVybDp0aGlzLnNvdXJjZSxuYW1lOnRoaXMubmFtZX0scG9pbnRlcjp7eDplLmNsaWVudFh8fDAseTplLmNsaWVudFl8fDB9fSl9LG9uS2V5ZG93bihlKXtzd2l0Y2goZS5rZXlDb2RlKXtjYXNlIDI3OnRoaXMub25DbG9zZSgpO2JyZWFrO2Nhc2UgMzc6dGhpcy5vbk5hdmlnYXRlQ2xpY2soInByZXZpb3VzIik7YnJlYWs7Y2FzZSAzOTp0aGlzLm9uTmF2aWdhdGVDbGljaygibmV4dCIpfX19fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7Y29uc3Qgbj1nKCJjcmlzcC1hY2Nlc3NpYmlsaXR5IiksaT1nKCJjcmlzcC1saW5rLXRhcmdldCIpO3JldHVybiBlLnZpc2libGU/KEEoKSxGKCJkaXYiLHtrZXk6MCxvbkNsaWNrOmNbOF18fChjWzhdPSguLi5jKT0+ZS5vbkNsb3NlRnV6enkmJmUub25DbG9zZUZ1enp5KC4uLmMpKSxvbktleWRvd246Y1s5XXx8KGNbOV09KC4uLmMpPT5lLm9uS2V5ZG93biYmZS5vbktleWRvd24oLi4uYykpLGNsYXNzOm0oWyJjYy0xazlwbSIsImNjLTFrOXBtLS0iK2UudHlwZSwiY2MtMWs5cG0tLSIrZS5zdGF0ZSx7ImNjLTFrOXBtLS1hbmltYXRlIjohZS5mcm9tU2VsZn1dKSxyZWY6InJvb3QiLHRhYmluZGV4OiIwIn0sW2NbMTBdfHwoY1sxMF09eigic3BhbiIse2NsYXNzOiJjYy0xanc4MyBjYy0xbHdreiIsImRhdGEtdGludCI6InRoZW1lLWxpZ2h0In0sbnVsbCwtMSkpLHooImRpdiIsT3QsWyJpbWFnZSI9PT1lLnR5cGU/KEEoKSxGKCJpbWciLHtrZXk6MCxjbGFzczoiY2MtM2g3eXMiLG9uTG9hZDpjWzBdfHwoY1swXT1jPT5lLnN0YXRlPSJsb2FkZWQiKSxvbkNsaWNrOmNbMV18fChjWzFdPSguLi5jKT0+ZS5vbkNsb3NlJiZlLm9uQ2xvc2UoLi4uYykpLHNyYzplLnNvdXJjZSxhbHQ6IiJ9LG51bGwsNDAsVXQpKToidmlkZW8iPT09ZS50eXBlPyhBKCksRigidmlkZW8iLHtrZXk6MSxjbGFzczoiY2MtM2g3eXMiLG9uTG9hZGVkZGF0YTpjWzJdfHwoY1syXT1jPT5lLnN0YXRlPSJsb2FkZWQiKSxzcmM6ZS5zb3VyY2UsYXV0b3BsYXk6IiIsY29udHJvbHM6IiJ9LG51bGwsNDAsTnQpKTooQSgpLEYoImlmcmFtZSIse2tleToyLGNsYXNzOiJjYy0zaDd5cyIsb25Mb2FkOmNbM118fChjWzNdPWM9PmUuc3RhdGU9ImxvYWRlZCIpLHNyYzplLnNvdXJjZSx0eXBlOiJ0ZXh0L2h0bWwiLGZyYW1lYm9yZGVyOiIwIixzYW5kYm94OiJhbGxvdy1wb3B1cHMgYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ctc2NyaXB0cyBhbGxvdy1wcmVzZW50YXRpb24ifSxudWxsLDQwLFd0KSkseigiZGl2IixadCxbeigiZGl2IixHdCxbZS5tZXNzYWdlcz8ucHJldmlvdXM/RygoQSgpLEYoImRpdiIse2tleTowLGNsYXNzOiJjYy0xZWRpNSBjYy0xZWRpNS0tcHJldmlvdXMiLG9uQ2xpY2s6Y1s0XXx8KGNbNF09Yz0+ZS5vbk5hdmlnYXRlQ2xpY2soInByZXZpb3VzIikpLCJhcmlhLWxhYmVsIjplLiRyZW5kZXIuX2UoIm1hZ25pZnkiLCJ0b29sdGlwX3ByZXZpb3VzIil9LG51bGwsOCxRdCkpLFtbbix7cm9sZToiYnV0dG9uIn1dXSk6WigiIiwhMCksZS5tZXNzYWdlcz8ubmV4dD9HKChBKCksRigiZGl2Iix7a2V5OjEsY2xhc3M6ImNjLTFlZGk1IGNjLTFlZGk1LS1uZXh0IixvbkNsaWNrOmNbNV18fChjWzVdPWM9PmUub25OYXZpZ2F0ZUNsaWNrKCJuZXh0IikpLCJhcmlhLWxhYmVsIjplLiRyZW5kZXIuX2UoIm1hZ25pZnkiLCJ0b29sdGlwX25leHQiKX0sbnVsbCw4LFl0KSksW1tuLHtyb2xlOiJidXR0b24ifV1dKTpaKCIiLCEwKV0pLHooImRpdiIsSnQsW0coeigiZGl2Iix7Y2xhc3M6ImNjLTFlZGk1IGNjLTFlZGk1LS1jbG9zZSIsb25DbGljazpjWzZdfHwoY1s2XT0oLi4uYyk9PmUub25DbG9zZSYmZS5vbkNsb3NlKC4uLmMpKSwiYXJpYS1sYWJlbCI6ZS4kcmVuZGVyLl9lKCJjb21tb24iLCJjbG9zZSIpfSxudWxsLDgsWHQpLFtbbix7cm9sZToiYnV0dG9uIn1dXSksImltYWdlIiE9PWUudHlwZSYmInZpZGVvIiE9PWUudHlwZXx8IWUuZG93bmxvYWQ/WigiIiwhMCk6RygoQSgpLEYoImEiLHtrZXk6MCxjbGFzczoiY2MtMWVkaTUgY2MtMWVkaTUtLWRvd25sb2FkIixvbkNsaWNrOmNbN118fChjWzddPSguLi5jKT0+ZS5vbkRvd25sb2FkQ2xpY2smJmUub25Eb3dubG9hZENsaWNrKC4uLmMpKSwiYXJpYS1sYWJlbCI6ZS4kcmVuZGVyLl9lKCJtYWduaWZ5IiwidG9vbHRpcF9kb3dubG9hZCIpLGhyZWY6ZS5zb3VyY2UsZG93bmxvYWQ6ZS5uYW1lfHxlLnNvdXJjZSxyZWw6Im5vb3BlbmVyIG5vcmVmZXJyZXIifSxudWxsLDgsZWEpKSxbW24se3JvbGU6ImJ1dHRvbiJ9XSxbaV1dKV0pXSldKV0sMzQpKTpaKCIiLCEwKX1dXSksc2E9e2NsYXNzOiJjYy0xbWN5ayJ9LGxhPVsiaHJlZiIsImRhdGEtbmFtZSIsImRhdGEtcGFydGlhbC1wZW5kaW5nIl0sbmE9e2tleToxLGNsYXNzOiJjYy0xN3hmcCJ9LGlhPVsiaHJlZiIsImRhdGEtbmFtZSIsImRhdGEtcGFydGlhbC1wZW5kaW5nIl0sb2E9WyJocmVmIiwiZG93bmxvYWQiXSxyYT17a2V5OjIsY2xhc3M6ImNjLXZmbmExIGNjLTEwY3FzIn0saGE9e2tleTozLGNsYXNzOiJjYy12Zm5hMSBjYy0xMGNxcyJ9O3ZhciBkYT11KHEoe3Byb3BzOnttZXNzYWdlOnt0eXBlOk9iamVjdCxyZXF1aXJlZDohMH19LGNvbXB1dGVkOntmaWxlQ29udGVudCgpe3JldHVybiB0aGlzLm1lc3NhZ2UuY29udGVudH19LG1ldGhvZHM6e29uQ2xpY2soZSxjLHQsYSl7YWEubWFnbmlmeShlLGMsdCxhKX19fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7Y29uc3Qgbj1nKCJjcmlzcC1saW5rLXRhcmdldCIpO3JldHVybiBBKCksRigic3BhbiIsc2EsW2UuJENPTkZJRy5GSUxFX1BSRVZJRVcuSU1BR0UuaW5jbHVkZXMoZS5maWxlQ29udGVudC50eXBlKT8oQSgpLEYoImEiLHtrZXk6MCxvbkNsaWNrOmNbMF18fChjWzBdPUQoYz0+ZS5vbkNsaWNrKCJpbWFnZSIsZS5maWxlQ29udGVudC51cmwsZS5maWxlQ29udGVudC5uYW1lLFN0cmluZyhlLm1lc3NhZ2UuZmluZ2VycHJpbnQpKSxbInByZXZlbnQiXSkpLGhyZWY6ZS5maWxlQ29udGVudC51cmwsImRhdGEtbmFtZSI6ZS5maWxlQ29udGVudC5uYW1lLCJkYXRhLXBhcnRpYWwtcGVuZGluZyI6ZS4kc3RvcmUucGFydGlhbC5idW5kbGUucGVuZGluZy5tYWduaWZ5PT09ZS5maWxlQ29udGVudC51cmwsY2xhc3M6bShbImNjLTFsZW14IiwiY2MtbmNoOGEiLHsiY2MtMWxlbXgtLWhvdmVyYWJsZSI6IWUuJHN0b3JlLmJhc2UuaXNfbW9iaWxlX3ZpZXd9XSksImRhdGEtYWN0aW9uIjoiaW1hZ2UiLHJlbDoibm9vcGVuZXIgbm9yZWZlcnJlciJ9LFsiaW1hZ2UvZ2lmIj09PWUuZmlsZUNvbnRlbnQudHlwZT8oQSgpLEYoInNwYW4iLHtrZXk6MCxjbGFzczoiY2MtdXlmNm0iLHN0eWxlOmsoe2JhY2tncm91bmRJbWFnZTplLiRyZW5kZXIuaW1hZ2VVcmxCYWNrZ3JvdW5kKGUuJHJlbmRlci5pbWFnZVVybE9yaWdpbmFsKGUuZmlsZUNvbnRlbnQudXJsKSl9KX0sbnVsbCw0KSk6KEEoKSxGKCJzcGFuIix7a2V5OjEsY2xhc3M6ImNjLXV5ZjZtIixzdHlsZTprKHtiYWNrZ3JvdW5kSW1hZ2U6ZS4kcmVuZGVyLmltYWdlVXJsQmFja2dyb3VuZChlLiRyZW5kZXIuaW1hZ2VVcmxSZXNpemUoZS5maWxlQ29udGVudC51cmwpKX0pfSxudWxsLDQpKV0sMTAsbGEpKTooQSgpLEYoInNwYW4iLG5hLFtlLiRDT05GSUcuRklMRV9QUkVWSUVXLlZJREVPLmluY2x1ZGVzKGUuZmlsZUNvbnRlbnQudHlwZSk/KEEoKSxGKCJhIix7a2V5OjAsb25DbGljazpjWzFdfHwoY1sxXT1EKGM9PmUub25DbGljaygidmlkZW8iLGUuZmlsZUNvbnRlbnQudXJsLGUuZmlsZUNvbnRlbnQubmFtZSxTdHJpbmcoZS5tZXNzYWdlLmZpbmdlcnByaW50KSksWyJwcmV2ZW50Il0pKSxocmVmOmUuZmlsZUNvbnRlbnQudXJsLCJkYXRhLW5hbWUiOmUuZmlsZUNvbnRlbnQubmFtZSwiZGF0YS1wYXJ0aWFsLXBlbmRpbmciOmUuJHN0b3JlLnBhcnRpYWwuYnVuZGxlLnBlbmRpbmcubWFnbmlmeT09PWUuZmlsZUNvbnRlbnQudXJsLGNsYXNzOm0oWyJjYy0xb3RqaiIsImNjLW5jaDhhIix7ImNjLW1rNWx2Ijoib3BlcmF0b3IiIT09ZS5tZXNzYWdlLmZyb20sImNjLTFxZWFwIjoib3BlcmF0b3IiPT09ZS5tZXNzYWdlLmZyb219XSksImRhdGEtYWN0aW9uIjoidmlkZW8iLHJlbDoibm9vcGVuZXIgbm9yZWZlcnJlciJ9LFsuLi5jWzJdfHwoY1syXT1beigic3BhbiIse2NsYXNzOiJjYy11enVrNCJ9LG51bGwsLTEpXSldLDEwLGlhKSk6RygoQSgpLEYoImEiLHtrZXk6MSxocmVmOmUuZmlsZUNvbnRlbnQudXJsLGRvd25sb2FkOiJ0ZXh0L2h0bWwiPT09ZS5maWxlQ29udGVudC50eXBlP251bGw6ZS5maWxlQ29udGVudC5uYW1lfHxlLmZpbGVDb250ZW50LnVybCxjbGFzczptKFsiY2MtMW90amoiLHsiY2MtbWs1bHYiOiJvcGVyYXRvciIhPT1lLm1lc3NhZ2UuZnJvbSwiY2MtMXFlYXAiOiJvcGVyYXRvciI9PT1lLm1lc3NhZ2UuZnJvbX1dKSwiZGF0YS1hY3Rpb24iOiJkb3dubG9hZCIscmVsOiJub29wZW5lciBub3JlZmVycmVyIn0sWy4uLmNbM118fChjWzNdPVt6KCJzcGFuIix7Y2xhc3M6ImNjLXV6dWs0In0sbnVsbCwtMSldKV0sMTAsb2EpKSxbW25dXSksZS5maWxlQ29udGVudC5uYW1lPyhBKCksRigic3BhbiIscmEsZihlLmZpbGVDb250ZW50Lm5hbWUpLDEpKTooQSgpLEYoInNwYW4iLGhhLGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9tZXNzYWdlX2ZpbGVfbmFtZSIpKSwxKSldKSldKX1dXSkscGE9WyJpbm5lckhUTUwiXTt2YXIgdWE9dShxKHtwcm9wczp7bWVzc2FnZTp7dHlwZTpPYmplY3QscmVxdWlyZWQ6ITB9fSxjb21wdXRlZDp7cGlja2VyQ29udGVudCgpe3JldHVybiB0aGlzLm1lc3NhZ2UuY29udGVudH19fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7cmV0dXJuIEEoKSxGKCJzcGFuIix7Y2xhc3M6ImNjLXJmbm02IGNjLWx5NnY3Iixpbm5lckhUTUw6ZS4kcmVuZGVyLl9mKGUucGlja2VyQ29udGVudC50ZXh0KX0sbnVsbCw4LHBhKX1dXSksbWE9WyJpbm5lckhUTUwiXTt2YXIgZmE9e2phdmFzY3JpcHQ6InByaXNtanMvY29tcG9uZW50cy9wcmlzbS1qYXZhc2NyaXB0LmpzIix0eXBlc2NyaXB0OiJwcmlzbWpzL2NvbXBvbmVudHMvcHJpc20tdHlwZXNjcmlwdC5qcyIsanNvbjoicHJpc21qcy9jb21wb25lbnRzL3ByaXNtLWpzb24uanMiLGNzczoicHJpc21qcy9jb21wb25lbnRzL3ByaXNtLWNzcy5qcyIsbWFya3VwOiJwcmlzbWpzL2NvbXBvbmVudHMvcHJpc20tbWFya3VwLmpzIixiYXNoOiJwcmlzbWpzL2NvbXBvbmVudHMvcHJpc20tYmFzaC5qcyIscHl0aG9uOiJwcmlzbWpzL2NvbXBvbmVudHMvcHJpc20tcHl0aG9uLmpzIixqYXZhOiJwcmlzbWpzL2NvbXBvbmVudHMvcHJpc20tamF2YS5qcyIscGhwOiJwcmlzbWpzL2NvbXBvbmVudHMvcHJpc20tcGhwLmpzIixzcWw6InByaXNtanMvY29tcG9uZW50cy9wcmlzbS1zcWwuanMiLHlhbWw6InByaXNtanMvY29tcG9uZW50cy9wcmlzbS15YW1sLmpzIn0sa2E9e2pzOiJqYXZhc2NyaXB0Iix0czoidHlwZXNjcmlwdCIsaHRtbDoibWFya3VwIix4bWw6Im1hcmt1cCIsc2g6ImJhc2giLHB5OiJweXRob24iLHltbDoieWFtbCJ9LHlhPXEoe3Byb3BzOnttZXNzYWdlOnt0eXBlOk9iamVjdCxyZXF1aXJlZDohMH19LGRhdGE6KCk9Pih7cmVuZGVyZWRIdG1sOiIifSksY29tcHV0ZWQ6e3RleHRDb250ZW50KCl7cmV0dXJuIHRoaXMubWVzc2FnZS5jb250ZW50fX0sd2F0Y2g6e3RleHRDb250ZW50KCl7dGhpcy5yZW5kZXJIdG1sKCl9fSxtb3VudGVkKCl7dGhpcy5yZW5kZXJIdG1sKCl9LG1ldGhvZHM6e3JlbmRlckh0bWwoKXt0aGlzLnJlbmRlcmVkSHRtbD10aGlzLiRyZW5kZXIuX2YodGhpcy50ZXh0Q29udGVudCksQygoKT0+e3RoaXMuaGlnaGxpZ2h0Q29kZUJsb2NrcygpfSl9LG9uQ2xpY2soZSl7bGV0IGM9ZS50YXJnZXQ7aWYoYyl7bGV0IHQ9Yy5jbG9zZXN0KCIuY2MtMXV4enYiKTt0Py5ocmVmJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGFhLm1hZ25pZnkoImVtYmVkIix0LmhyZWYpKX19LGFzeW5jIGhpZ2hsaWdodENvZGVCbG9ja3MoKXtpZigib3BlcmF0b3IiIT09dGhpcy5tZXNzYWdlLmZyb20pcmV0dXJuO2NvbnN0IGU9dGhpcy4kZWw/LnF1ZXJ5U2VsZWN0b3JBbGw/LigiY29kZSIpO2lmKCFlPy5sZW5ndGgpcmV0dXJuO2NvbnN0IGM9bmV3IFNldDtpZihlLmZvckVhY2goZT0+e2lmKGUuY2xhc3NMaXN0LmNvbnRhaW5zKCJwcmlzbS1oaWdobGlnaHRlZCIpKXJldHVybjtjb25zdCB0PWUuZ2V0QXR0cmlidXRlKCJkYXRhLWxhbmd1YWdlIil8fCJ0ZXh0IixhPXRoaXMubm9ybWFsaXplTGFuZ3VhZ2UodCk7ZmFbYV0mJmMuYWRkKGEpfSksMD09PWMuc2l6ZSlyZXR1cm47Y29uc3QgYT1hd2FpdCB0KCgpPT5pbXBvcnQoIi4uL3ZlbmRvci1wcmlzbWpzX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4oZT0+X190b0VTTShlLnQoKSkpLFtdKSxzPWEuZGVmYXVsdHx8YTthd2FpdCBQcm9taXNlLmFsbChbdCgoKT0+aW1wb3J0KCIuLi92ZW5kb3ItcHJpc21qc19kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKGU9PmUudSksW10pLHQoKCk9PmltcG9ydCgiLi4vdmVuZG9yLXByaXNtanNfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbihlPT5lLnIpLFtdKSx0KCgpPT5pbXBvcnQoIi4uL3ZlbmRvci1wcmlzbWpzX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4oZT0+ZS5sKSxbXSksdCgoKT0+aW1wb3J0KCIuLi92ZW5kb3ItcHJpc21qc19kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKGU9PmUuZiksW10pLHQoKCk9PmltcG9ydCgiLi4vdmVuZG9yLXByaXNtanNfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbihlPT5lLnMpLFtdKSx0KCgpPT5pbXBvcnQoIi4uL3ZlbmRvci1wcmlzbWpzX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4oZT0+ZS5wKSxbXSksdCgoKT0+aW1wb3J0KCIuLi92ZW5kb3ItcHJpc21qc19kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKGU9PmUuYSksW10pLHQoKCk9PmltcG9ydCgiLi4vdmVuZG9yLXByaXNtanNfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbihlPT5lLmQpLFtdKSx0KCgpPT5pbXBvcnQoIi4uL3ZlbmRvci1wcmlzbWpzX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4oZT0+ZS5jKSxbXSksdCgoKT0+aW1wb3J0KCIuLi92ZW5kb3ItcHJpc21qc19kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKGU9PmUubyksW10pLHQoKCk9PmltcG9ydCgiLi4vdmVuZG9yLXByaXNtanNfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbihlPT5lLmkpLFtdKSx0KCgpPT5pbXBvcnQoIi4uL3ZlbmRvci1wcmlzbWpzX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4oZT0+ZS5uKSxbXSldKS5jYXRjaCgoKT0+e30pLGUuZm9yRWFjaChlPT57aWYoZS5jbGFzc0xpc3QuY29udGFpbnMoInByaXNtLWhpZ2hsaWdodGVkIikpcmV0dXJuO2NvbnN0IGM9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtbGFuZ3VhZ2UiKXx8InRleHQiLHQ9dGhpcy5ub3JtYWxpemVMYW5ndWFnZShjKTtpZihmYVt0XSl7ZS5jbGFzc0xpc3QuYWRkKGBsYW5ndWFnZS0ke3R9YCk7dHJ5e2NvbnN0IGE9ZS5pbm5lclRleHQ7aWYoIWEudHJpbSgpKXJldHVybiB2b2lkIGUuY2xhc3NMaXN0LmFkZCgicHJpc20taGlnaGxpZ2h0ZWQiKTtlLmlubmVySFRNTD1zLmhpZ2hsaWdodChhLHMubGFuZ3VhZ2VzW3RdLGMpLGUuY2xhc3NMaXN0LmFkZCgicHJpc20taGlnaGxpZ2h0ZWQiKX1jYXRjaHt9fWVsc2UgZS5jbGFzc0xpc3QuYWRkKCJwcmlzbS1oaWdobGlnaHRlZCIpfSl9LG5vcm1hbGl6ZUxhbmd1YWdlKGUpe2NvbnN0IGM9ZS50b0xvd2VyQ2FzZSgpLnRyaW0oKTtyZXR1cm4ga2FbY118fGN9fX0pLF9hPXUoeWEsW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7cmV0dXJuIEEoKSxGKCJzcGFuIix7Y2xhc3M6ImNjLXZsbnpwIGNjLWx5NnY3Iixpbm5lckhUTUw6ZS5yZW5kZXJlZEh0bWwsb25DbGljazpjWzBdfHwoY1swXT0oLi4uYyk9PmUub25DbGljayYmZS5vbkNsaWNrKC4uLmMpKX0sbnVsbCw4LG1hKX1dXSksdmE9e2tleTowLGNsYXNzOiJjYy0xajM5NiJ9LGdhPXtjbGFzczoiY2MtZWN6NmUifSxiYT17Y2xhc3M6ImNjLWZ1cW9jIn0sQ2E9e2tleTowLGNsYXNzOiJjYy0xaW50MyJ9LHdhPXtrZXk6MSxjbGFzczoiY2MtMXhmY2UiLGFjdGlvbjoiIyIsbWV0aG9kOiJwb3N0In0seGE9WyJuYW1lIiwiYXJpYS1sYWJlbCIsInBsYWNlaG9sZGVyIl0samE9WyJhcmlhLWxhYmVsIl0scWE9WyJvbkNsaWNrIl0semE9e2tleTowLGNsYXNzOiJjYy0xZzg2ZSIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LFNhPXtrZXk6MixjbGFzczoiY2MtYmk1djUifSxGYT1bImRhdGEtdGFyZ2V0LWNvdW50Il0sUGE9e2NsYXNzOiJjYy0xaXgwMCJ9LFRhPXtjbGFzczoiY2MtMTE5NDggY2MtMTBjcXMifSxCYT17Y2xhc3M6ImNjLXRsbThtIGNjLTFpY3JqIn0sSWE9e2tleTowLGNsYXNzOiJjYy0xaG5rayJ9O3ZhciBNYT1bImZpZWxkIiwicGlja2VyIiwiY2Fyb3VzZWwiXSwkYT11KHEoe2NvbXBvbmVudHM6e0Jhc2VCdXR0b246TX0sbWl4aW5zOltFXSxwcm9wczp7bWVzc2FnZTp7dHlwZTpPYmplY3QscmVxdWlyZWQ6ITB9fSxjb21wdXRlZDp7Y2Fyb3VzZWxDb250ZW50KCl7aWYoImNhcm91c2VsIj09PXRoaXMubWVzc2FnZS50eXBlKXJldHVybiB0aGlzLm1lc3NhZ2UuY29udGVudH0sY3Jpc3BGb2N1c0ZvcmVncm91bmRPcHRpb25zKCl7cmV0dXJuITA9PT10aGlzLm1lc3NhZ2UuY29udGVudC5yZXF1aXJlZD97cHJpb3JpdHk6MX06e2Rpc2FibGVkOiEwfX0sZmllbGRDb250ZW50KCl7aWYoImZpZWxkIj09PXRoaXMubWVzc2FnZS50eXBlKXJldHVybiB0aGlzLm1lc3NhZ2UuY29udGVudH0saGFzQ29udHJvbHMoKXtyZXR1cm4gTWEuaW5jbHVkZXModGhpcy5tZXNzYWdlLnR5cGUpfSxwaWNrZXJDb250ZW50KCl7aWYoInBpY2tlciI9PT10aGlzLm1lc3NhZ2UudHlwZSlyZXR1cm4gdGhpcy5tZXNzYWdlLmNvbnRlbnR9fSxtZXRob2RzOntmb2N1c09uTmV4dE1lc3NhZ2UoKXtsZXQgZT0odGhpcy4kZWw/LmNsb3Nlc3Q/LigiLmNjLXliZnk5Iil8fG51bGwpPy5uZXh0RWxlbWVudFNpYmxpbmd8fG51bGw7Zm9yKDtudWxsIT09ZSYmITAhPT1lLmNsYXNzTGlzdC5jb250YWlucygiY2MteWJmeTkiKTspZT1lLm5leHRFbGVtZW50U2libGluZztudWxsPT09ZXx8ITA9PT1kLmJhc2UuaGFzX2F1dG9mb2N1cyYmbnVsbCE9PWUucXVlcnlTZWxlY3RvcigiLmNjLTFseXVyIik/aC5mb2N1c09uRm9yZWdyb3VuZCgpOmUuZm9jdXMoKX0saGFzUGlja2VyU2VsZWN0ZWQoZSl7bGV0IGM9ZS5jb250ZW50O2ZvcihsZXQgdD0wO3Q8Yy5jaG9pY2VzLmxlbmd0aDt0KyspaWYoITA9PT1jLmNob2ljZXNbdF0uc2VsZWN0ZWQpcmV0dXJuITA7cmV0dXJuITF9LG9uV2hlZWwoZSl7dGhpcy51bndpbmRXaGVlbChlLCJjYy0xbmQwdSIsInNjcm9sbExlZnQiKX0sb25NZXNzYWdlUGlja2VyQnV0dG9uQ2xpY2soZSxjKXtpZigidXNlciIhPT1lLmZyb20pe2xldCB0PSExLGE9Yy52YWx1ZSxzPW51bGwsbj1lLmNvbnRlbnQ7Zm9yKGxldCBlPTA7ZTxuLmNob2ljZXMubGVuZ3RoO2UrKyl7bGV0IGM9bi5jaG9pY2VzW2VdO2MudmFsdWU9PT1hPyEwIT09Yy5zZWxlY3RlZCYmKGMuc2VsZWN0ZWQ9ITAsdD0hMCxzPWMuaGFuZGxlcik6Yy5zZWxlY3RlZD0hMX1pZihjLmFjdGlvbilzd2l0Y2goYy5hY3Rpb24udHlwZSl7Y2FzZSJmcmFtZSI6ZC5jaGF0RnJhbWUub3BlbihjLmFjdGlvbi50YXJnZXQsbi50ZXh0LHtmaW5nZXJwcmludDplLmZpbmdlcnByaW50fHwiIixwaWNrZXJfaWQ6bi5pZHx8IiIsY2hvaWNlX3ZhbHVlOmMudmFsdWV8fCIifSk7YnJlYWs7Y2FzZSJsaW5rIjpsLm9wZW5MaW5rKGMuYWN0aW9uLnRhcmdldCl9ITA9PT10JiYoImZ1bmN0aW9uIj09dHlwZW9mIHM/cyhlKTohMD09PWQubWVzc2FnZXMuY2hlY2tJbnRlbnRTZW5kKCkmJmQubWVzc2FnZXMudXBkYXRlKGUpLHAuc3RhcnQoImV2ZW50cyIsImNoYXQtbWVzc2FnZS1hY3Rpb24iKSl9fSxvbk1lc3NhZ2VGaWVsZElucHV0S2V5ZG93bihlLGMpe2lmKDEzPT09ZS5rZXlDb2RlKXJldHVybiBlLnByZXZlbnREZWZhdWx0KCksdm9pZCB0aGlzLm9uTWVzc2FnZUZpZWxkU2VuZChjKX0sb25NZXNzYWdlRmllbGRTZW5kKGUpe2lmKCEwPT09ZC5tZXNzYWdlcy5jaGVja0ludGVudFNlbmQoKSl7bGV0IGM9ZS5jb250ZW50LHQ9KGUubWV0YXMuZmllbGQudmFsdWV8fCIiKS50cmltKCk7aWYodC5sZW5ndGg+MCl7bGV0IGE9Yy5oYW5kbGVyOyJmdW5jdGlvbiI9PXR5cGVvZiBhP2EodCk6KGMudmFsdWU9dCxkLm1lc3NhZ2VzLnVwZGF0ZShlKSkscC5zdGFydCgiZXZlbnRzIiwiY2hhdC1tZXNzYWdlLWFjdGlvbiIpLGwuc2V0VGltZW91dCgoKT0+e3RoaXMuZm9jdXNPbk5leHRNZXNzYWdlKCl9LDUwMCl9fX19fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7Y29uc3Qgbj12KCJiYXNlLWJ1dHRvbiIpLGk9ZygiY3Jpc3AtZm9jdXMtZm9yZWdyb3VuZCIpLG89ZygiY3Jpc3AtYWNjZXNzaWJpbGl0eSIpLHI9ZygiY3Jpc3AtbGluay10YXJnZXQiKTtyZXR1cm4gZS5oYXNDb250cm9scz8oQSgpLEYoInNwYW4iLHZhLFtjWzZdfHwoY1s2XT16KCJzcGFuIix7Y2xhc3M6ImNjLTEzZnR4In0sbnVsbCwtMSkpLHooInNwYW4iLGdhLFt6KCJzcGFuIixiYSxbImZpZWxkIj09PWUubWVzc2FnZS50eXBlJiZlLmZpZWxkQ29udGVudD8oQSgpLEYoInNwYW4iLENhLFtlLmZpZWxkQ29udGVudC52YWx1ZXx8Im9wZXJhdG9yIiE9PWUubWVzc2FnZS5mcm9tPyhBKCksRigic3BhbiIse2tleTowLGNsYXNzOm0oWyJjYy1zNTgzbCIseyJjYy1zNTgzbC0taXMtZmlsbGVkIjplLmZpZWxkQ29udGVudC52YWx1ZX1dKX0sW3ooInNwYW4iLHtjbGFzczptKFsiY2MtZTRscDMiLHsiY2MtMTBjcXMgY2MtM3JmZ2MiOmUuZmllbGRDb250ZW50LnZhbHVlLCJjYy0xaWNyaiI6IWUuZmllbGRDb250ZW50LnZhbHVlfV0pfSxmKGUuZmllbGRDb250ZW50LnZhbHVlfHxlLmZpZWxkQ29udGVudC5leHBsYWluKSwzKV0sMikpOihBKCksRigiZm9ybSIsd2EsW0coeigiaW5wdXQiLHtjbGFzczoiY2MtMWx5dXIgY2MtM3JmZ2MgY2MtMWljcmoiLCJvblVwZGF0ZTptb2RlbFZhbHVlIjpjWzBdfHwoY1swXT1jPT5lLm1lc3NhZ2UubWV0YXMuZmllbGQudmFsdWU9Yyksb25LZXlkb3duOmNbMV18fChjWzFdPWM9PmUub25NZXNzYWdlRmllbGRJbnB1dEtleWRvd24oYyxlLm1lc3NhZ2UpKSxuYW1lOiJtZXNzYWdlX2ZpZWxkXyIrZS5maWVsZENvbnRlbnQuaWQsImFyaWEtbGFiZWwiOmUuZmllbGRDb250ZW50LmV4cGxhaW4scGxhY2Vob2xkZXI6ZS5maWVsZENvbnRlbnQuZXhwbGFpbix0eXBlOiJ0ZXh0IixhdXRvY29tcGxldGU6Im9mZiIsYXV0b2NhcGl0YWxpemU6Im9mZiIsYXV0b2NvcnJlY3Q6Im9mZiIsc3BlbGxjaGVjazoiZmFsc2UiLHRhYmluZGV4OiIwIn0sbnVsbCw0MCx4YSksW1tpLGUuY3Jpc3BGb2N1c0ZvcmVncm91bmRPcHRpb25zXSxbSCxlLm1lc3NhZ2UubWV0YXMuZmllbGQudmFsdWVdXSksRygoQSgpLEYoInNwYW4iLHtjbGFzczoiY2MtMWJ0M2EgY2MtMXFlYXAgY2MtMTBjcXMiLG9uQ2xpY2s6Y1syXXx8KGNbMl09RChjPT5lLm9uTWVzc2FnZUZpZWxkU2VuZChlLm1lc3NhZ2UpLFsicHJldmVudCJdKSksImFyaWEtbGFiZWwiOmUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfZm9ybV9zZW5kX2hpbnQiKX0sWy4uLmNbNF18fChjWzRdPVt6KCJzcGFuIix7Y2xhc3M6ImNjLTFndHpxIn0sbnVsbCwtMSldKV0sOCxqYSkpLFtbbyx7cm9sZToiYnV0dG9uIn1dXSldKSldKSk6InBpY2tlciI9PT1lLm1lc3NhZ2UudHlwZSYmZS5waWNrZXJDb250ZW50PyhBKCksRigic3BhbiIse2tleToxLGNsYXNzOm0oWyJjYy0xdnZobCIseyJjYy0xdnZobC0taGFzLXNlbGVjdGVkIjplLmhhc1BpY2tlclNlbGVjdGVkKGUubWVzc2FnZSl9XSl9LFsoQSghMCksRihJLG51bGwsYihlLnBpY2tlckNvbnRlbnQuY2hvaWNlcywoYyx0KT0+RygoQSgpLEYoImRpdiIse29uQ2xpY2s6RCh0PT5lLm9uTWVzc2FnZVBpY2tlckJ1dHRvbkNsaWNrKGUubWVzc2FnZSxjKSxbInByZXZlbnQiXSksa2V5OmBjaG9pY2VfJHt0fWAsY2xhc3M6bShbImNjLW55YnlwIiwiY2MtbnlieXAtLWZyb20tIitlLm1lc3NhZ2UuZnJvbSwiY2MtMTBjcXMiLHsiY2MtbnlieXAtLXNlbGVjdGVkIjohMD09PWMuc2VsZWN0ZWQsImNjLW55YnlwLS1oYXMtYWN0aW9uIjpjLmFjdGlvbn1dKX0sW2MuaWNvbj8oQSgpLEYoInNwYW4iLHphLGYoYy5pY29uKSwxKSk6WigiIiwhMCksaihmKGMubGFiZWwpLDEpXSwxMCxxYSkpLFtbbyx7cm9sZToiYnV0dG9uIn1dXSkpLDEyOCkpXSwyKSk6ImNhcm91c2VsIj09PWUubWVzc2FnZS50eXBlJiZlLmNhcm91c2VsQ29udGVudD8oQSgpLEYoInNwYW4iLFNhLFt6KCJzcGFuIix7Y2xhc3M6ImNjLTFuZDB1IixvbldoZWVsOmNbM118fChjWzNdPSguLi5jKT0+ZS5vbldoZWVsJiZlLm9uV2hlZWwoLi4uYykpfSxbeigic3BhbiIse2NsYXNzOiJjYy0xN25lNyIsImRhdGEtdGFyZ2V0LWNvdW50IjplLmNhcm91c2VsQ29udGVudC50YXJnZXRzLmxlbmd0aH0sWyhBKCEwKSxGKEksbnVsbCxiKGUuY2Fyb3VzZWxDb250ZW50LnRhcmdldHMsKGMsdCk9PihBKCksRigic3BhbiIse2NsYXNzOiJjYy0xcXRoeiIsa2V5OmB0YXJnZXRfJHt0fWB9LFtjLmltYWdlPyhBKCksRigic3BhbiIse2tleTowLGNsYXNzOiJjYy0xM2Q4bSIsc3R5bGU6ayh7YmFja2dyb3VuZEltYWdlOmUuJHJlbmRlci5pbWFnZVVybEJhY2tncm91bmQoZS4kcmVuZGVyLmltYWdlVXJsUmVzaXplKGMuaW1hZ2UsMzQwLDM0MCkpfSl9LG51bGwsNCkpOlooIiIsITApLHooInNwYW4iLFBhLFt6KCJzcGFuIixUYSxmKGMudGl0bGUpLDEpLHooInNwYW4iLEJhLGYoYy5kZXNjcmlwdGlvbiksMSksYy5hY3Rpb25zLmxlbmd0aD4wPyhBKCksRigic3BhbiIsSWEsWyhBKCEwKSxGKEksbnVsbCxiKGMuYWN0aW9ucywoYyx0KT0+RygoQSgpLFUobix7Y2xhc3M6ImNjLTE5M2JyIixrZXk6YGFjdGlvbl8ke3R9YCxsaW5rOmMudXJsLHRpbnQ6Im9wZXJhdG9yIj09PWUubWVzc2FnZS5mcm9tPyJ0aGVtZSI6InRyYW5zcGFyZW50IixzaXplOiJ0aW55Iix0eXBlOiJsaW5rIixyZWw6Im5vb3BlbmVyIG5vcmVmZXJyZXIifSx7ZGVmYXVsdDp4KCgpPT5baihmKGMubGFiZWwpLDEpXSksXzoyfSwxMDMyLFsibGluayIsInRpbnQiXSkpLFtbcl1dKSksMTI4KSldKSk6WigiIiwhMCldKV0pKSksMTI4KSldLDgsRmEpXSwzMildKSk6WigiIiwhMCldKSxjWzVdfHwoY1s1XT16KCJzcGFuIix7Y2xhc3M6ImNjLTEzZnR4In0sbnVsbCwtMSkpXSldKSk6WigiIiwhMCl9XV0pLEFhPXtrZXk6MCxjbGFzczoiY2MtMW91M2QifSxMYT17a2V5OjAsY2xhc3M6ImNjLTV1d29mIn0sRGE9WyJvbkNsaWNrIiwiaHJlZiIsImRhdGEtcGFydGlhbC1wZW5kaW5nIl0sRWE9e2tleToxLGNsYXNzOiJjYy01dXdvZiJ9LFZhPVsiaHJlZiJdLEhhPVsiaHJlZiJdO3ZhciBSYT11KHEoe3Byb3BzOnttZXNzYWdlOnt0eXBlOk9iamVjdCxyZXF1aXJlZDohMH19LGVtaXRzOlsiY2xpY2siXSxtZXRob2RzOntvbkVtYmVkQ2xpY2soZSl7YWEubWFnbmlmeSgiZW1iZWQiLGUpfSxvblByZXZpZXdDbGljayhlLGMpe3RoaXMuJGVtaXQoImNsaWNrIixlLGMpfX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtjb25zdCBuPWcoImNyaXNwLWxpbmstdGFyZ2V0IiksaT1nKCJjcmlzcC1hY2Nlc3NpYmlsaXR5Iik7cmV0dXJuIGUubWVzc2FnZS5wcmV2aWV3PyhBKCksRigic3BhbiIsQWEsW2NbNF18fChjWzRdPXooInNwYW4iLHtjbGFzczoiY2MtMTNmdHgifSxudWxsLC0xKSksKEEoITApLEYoSSxudWxsLGIoZS5tZXNzYWdlLnByZXZpZXcsKHQsYSk9PihBKCksRigic3BhbiIse2NsYXNzOiJjYy1oZTV5MyIsa2V5OmBwcmV2aWV3XyR7YX1gfSxbdC5wcmV2aWV3Py5lbWJlZCYmdC5wcmV2aWV3LmltYWdlPyhBKCksRigic3BhbiIsTGEsW0coKEEoKSxGKCJhIix7Y2xhc3M6ImNjLTZzNnUzIGNjLXFld3pnIGNjLTFnaXIwIGNjLW5jaDhhIixvbkNsaWNrOkQoYz0+ZS5vbkVtYmVkQ2xpY2sodC5wcmV2aWV3LmVtYmVkKSxbInByZXZlbnQiXSksaHJlZjp0LnByZXZpZXcuZW1iZWQsc3R5bGU6ayh7YmFja2dyb3VuZEltYWdlOmUuJHJlbmRlci5pbWFnZVVybEJhY2tncm91bmQoZS4kcmVuZGVyLmltYWdlVXJsUmVzaXplKHQucHJldmlldy5pbWFnZSkpfSksImRhdGEtcGFydGlhbC1wZW5kaW5nIjplLiRzdG9yZS5wYXJ0aWFsLmJ1bmRsZS5wZW5kaW5nLm1hZ25pZnk9PT10LnByZXZpZXcuZW1iZWQscmVsOiJub29wZW5lciBub3JlZmVycmVyIiwiZGF0YS10eXBlIjoiZW1iZWQifSxbLi4uY1syXXx8KGNbMl09W3ooInNwYW4iLHtjbGFzczoiY2MtMXB0MDEifSxudWxsLC0xKV0pXSwxMixEYSkpLFtbbl1dKV0pKTooQSgpLEYoInNwYW4iLEVhLFt0LnByZXZpZXc/LmltYWdlP0coKEEoKSxGKCJhIix7a2V5OjAsY2xhc3M6ImNjLTZzNnUzIixvbkNsaWNrOmNbMF18fChjWzBdPWM9PmUub25QcmV2aWV3Q2xpY2soYyxlLm1lc3NhZ2UpKSxzdHlsZTprKHtiYWNrZ3JvdW5kSW1hZ2U6ZS4kcmVuZGVyLmltYWdlVXJsQmFja2dyb3VuZChlLiRyZW5kZXIuaW1hZ2VVcmxSZXNpemUodC5wcmV2aWV3LmltYWdlKSl9KSxocmVmOnQudXJsLHJlbDoibm9vcGVuZXIgbm9yZWZlcnJlciIsImRhdGEtdHlwZSI6ImltYWdlIn0sbnVsbCwxMixWYSkpLFtbbl1dKTpaKCIiLCEwKSxHKChBKCksRigiYSIse2NsYXNzOiJjYy02czZ1MyBjYy0xMGNxcyIsb25DbGljazpjWzFdfHwoY1sxXT1jPT5lLm9uUHJldmlld0NsaWNrKGMsZS5tZXNzYWdlKSksaHJlZjp0LnVybCxyZWw6Im5vb3BlbmVyIG5vcmVmZXJyZXIiLCJkYXRhLXR5cGUiOiJsaW5rIn0sW2ooZih0LnRpdGxlfHx0LndlYnNpdGV8fHQudXJsKSwxKV0sOCxIYSkpLFtbaSx7cm9sZToiYnV0dG9uIn1dLFtuXV0pXSkpLGNbM118fChjWzNdPXooInNwYW4iLHtjbGFzczoiY2MtMTNmdHgifSxudWxsLC0xKSldKSkpLDEyOCkpXSkpOlooIiIsITApfV1dKSxLYT17Y2xhc3M6ImNjLW1qOXhhIn0sT2E9e2tleTowLGNsYXNzOiJjYy0xMG1qaiBjYy0xMGNxcyJ9LFVhPXtjbGFzczoiY2MtMXRmYWggY2MtMWljcmoifSxOYT17a2V5OjAsY2xhc3M6ImNjLXkxNnEzIn0sV2E9WyJocmVmIl0sWmE9e2tleToxLGNsYXNzOiJjYy0xYnA5dSJ9O3ZhciBHYT11KHEoe3Byb3BzOnttZXNzYWdlOnt0eXBlOk9iamVjdCxyZXF1aXJlZDohMH19LG1ldGhvZHM6e29uTWVzc2FnZVNvdXJjZUNsaWNrKGUpe2lmKGUuZmluZ2VycHJpbnQpe2xldCBjPWQubWVzc2FnZXMuY29udmVyc2F0aW9uLnN0YXRlcy5leHBhbmRlZF9zb3VyY2VzOyEwPT09Y1tlLmZpbmdlcnByaW50XT9kZWxldGUgY1tlLmZpbmdlcnByaW50XTpjW2UuZmluZ2VycHJpbnRdPSEwfX19fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7Y29uc3Qgbj1nKCJjcmlzcC1hY2Nlc3NpYmlsaXR5IiksaT1nKCJjcmlzcC1saW5rLXRhcmdldCIpO3JldHVybiBlLm1lc3NhZ2UucmVmZXJlbmNlcz8oQSgpLEYoInNwYW4iLHtrZXk6MCxjbGFzczptKFsiY2MtMWllbDEiLCJjYy0xaWVsMS0tZnJvbS0iK2UubWVzc2FnZS5mcm9tXSl9LFt6KCJzcGFuIixLYSxbITA9PT1lLm1lc3NhZ2UuYXV0b21hdGVkPyhBKCksRigic3BhbiIsT2EsW2NbMV18fChjWzFdPXooInNwYW4iLHtjbGFzczoiY2MtMTFhYmQifSxudWxsLC0xKSksaihmKGUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfbWVzc2FnZV9zb3VyY2VfYmFkZ2UiKSksMSldKSk6WigiIiwhMCkseigic3BhbiIsVWEsZihlLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X21lc3NhZ2Vfc291cmNlX2xhYmVsIikpLDEpLGUubWVzc2FnZS5yZWZlcmVuY2VzLmxlbmd0aD4wP0coKEEoKSxGKCJzcGFuIix7a2V5OjEsb25DbGljazpjWzBdfHwoY1swXT1EKGM9PmUub25NZXNzYWdlU291cmNlQ2xpY2soZS5tZXNzYWdlKSxbInByZXZlbnQiXSkpLGNsYXNzOm0oWyJjYy0xMnVyZiIsImNjLTFpY3JqIix7ImNjLTEydXJmLS1leHBhbmRlZCI6ZS4kc3RvcmUubWVzc2FnZXMuY29udmVyc2F0aW9uLnN0YXRlcy5leHBhbmRlZF9zb3VyY2VzW2UubWVzc2FnZS5maW5nZXJwcmludF19XSl9LFtqKGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9tZXNzYWdlX3NvdXJjZV9zb3VyY2VzIikpLDEpLGNbMl18fChjWzJdPXooInNwYW4iLHtjbGFzczoiY2MtbHk0b2YifSxudWxsLC0xKSldLDIpKSxbW24se3JvbGU6ImJ1dHRvbiJ9XV0pOlooIiIsITApXSksZS5tZXNzYWdlLnJlZmVyZW5jZXMubGVuZ3RoPjAmJmUuJHN0b3JlLm1lc3NhZ2VzLmNvbnZlcnNhdGlvbi5zdGF0ZXMuZXhwYW5kZWRfc291cmNlc1tlLm1lc3NhZ2UuZmluZ2VycHJpbnRdPyhBKCksRigic3BhbiIsTmEsWyhBKCEwKSxGKEksbnVsbCxiKGUubWVzc2FnZS5yZWZlcmVuY2VzLChlLGMpPT4oQSgpLEYoInNwYW4iLHtjbGFzczoiY2MtN2lnZm0iLGtleTpgcmVmZXJlbmNlXyR7Y31gfSxbImxpbmsiPT09ZS50eXBlP0coKEEoKSxGKCJhIix7a2V5OjAsY2xhc3M6ImNjLWtxNzExIixocmVmOmUudGFyZ2V0LHJlbDoibm9vcGVuZXIgbm9yZWZlcnJlciJ9LFtqKGYoZS5uYW1lKSwxKV0sOCxXYSkpLFtbaV1dKTooQSgpLEYoInNwYW4iLFphLGYoZS5uYW1lKSsiIMK3ICIrZihlLnRhcmdldCksMSkpXSkpKSwxMjgpKV0pKTpaKCIiLCEwKV0sMikpOlooIiIsITApfV1dKSxRYT17a2V5OjAsY2xhc3M6ImNjLTF4NjdiIGNjLTFid3N2IGNjLTE2NTFxIGNjLXVmMjQ0In0sWWE9e2NsYXNzOiJjYy0xaGwxaSBjYy0xaWNyaiJ9LEphPXtjbGFzczoiY2MtbzBxeG8ifSxYYT17a2V5OjAsY2xhc3M6ImNjLTFqaXczIn0sZXM9e2NsYXNzOiJjYy00czE2YyJ9LGNzPXtrZXk6MH0sdHM9e2tleTowfSxhcz17a2V5OjF9LHNzPXtrZXk6MH0sbHM9e2tleToyfTt2YXIgbnM9dShxKHtjb21wb25lbnRzOntCYXNlU3BhY2U6Un0scHJvcHM6e21lc3NhZ2U6e3R5cGU6T2JqZWN0LHJlcXVpcmVkOiEwfX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtjb25zdCBuPXYoImJhc2Utc3BhY2UiKSxpPWcoImNyaXNwLWRhdGUiKTtyZXR1cm4gZS5tZXNzYWdlLnRpbWVzdGFtcD8oQSgpLEYoInNwYW4iLFFhLFt6KCJzcGFuIixZYSxbRyh6KCJzcGFuIixKYSxudWxsLDUxMiksW1tpLHtkYXRlOmUubWVzc2FnZS50aW1lc3RhbXB9XV0pLCJwYXJ0aWNpcGFudCI9PT1lLm1lc3NhZ2UudXNlcj8udHlwZXx8ITA9PT1lLm1lc3NhZ2UuZWRpdGVkfHwhMD09PWUubWVzc2FnZS50cmFuc2xhdGVkPyhBKCksRigic3BhbiIsWGEsW3ooInNwYW4iLGVzLFtjWzJdfHwoY1syXT1qKGYoIigiKSwtMSkpLCJwYXJ0aWNpcGFudCI9PT1lLm1lc3NhZ2UudXNlcj8udHlwZT8oQSgpLEYoInNwYW4iLGNzLFtqKGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9tZXNzYWdlX3RhZ19wYXJ0aWNpcGFudCIpKSwxKSwhMD09PWUubWVzc2FnZS5lZGl0ZWR8fCEwPT09ZS5tZXNzYWdlLnRyYW5zbGF0ZWQ/KEEoKSxGKCJzcGFuIix0cyxbY1swXXx8KGNbMF09aihmKCIsIiksLTEpKSx5KG4pXSkpOlooIiIsITApXSkpOlooIiIsITApLCEwPT09ZS5tZXNzYWdlLmVkaXRlZD8oQSgpLEYoInNwYW4iLGFzLFtqKGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9tZXNzYWdlX3RhZ19lZGl0ZWQiKSksMSksITA9PT1lLm1lc3NhZ2UudHJhbnNsYXRlZD8oQSgpLEYoInNwYW4iLHNzLFtjWzFdfHwoY1sxXT1qKGYoIiwiKSwtMSkpLHkobildKSk6WigiIiwhMCldKSk6WigiIiwhMCksITA9PT1lLm1lc3NhZ2UudHJhbnNsYXRlZD8oQSgpLEYoInNwYW4iLGxzLGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9tZXNzYWdlX3RhZ190cmFuc2xhdGVkIikpLDEpKTpaKCIiLCEwKSxjWzNdfHwoY1szXT1qKGYoIikiKSwtMSkpXSldKSk6WigiIiwhMCldKV0pKTpaKCIiLCEwKX1dXSksaXM9e2NsYXNzOiJjYy0xd2o1aiJ9LG9zPXtrZXk6MCxjbGFzczoiY2MtNG84djMifSxycz17Y2xhc3M6ImNjLXdlNWZuIn0saHM9e2tleTowLGNsYXNzOiJjYy0xeWp5NCBjYy0xMGNxcyJ9O3ZhciBkcz11KHt9LFtbInJlbmRlciIsZnVuY3Rpb24oZSxjKXtyZXR1cm4gQSgpLEYoImRpdiIsaXMsW2UuJHN0b3JlLm1lc3NhZ2VzLmNvbnZlcnNhdGlvbi5jb21wb3NlLmlzX2FjdGl2ZT8oQSgpLEYoImRpdiIsb3MsW3ooInNwYW4iLHJzLFsoQSghMCksRihJLG51bGwsYihBcnJheSgzKSxlPT4oQSgpLEYoInNwYW4iLHtjbGFzczoiY2MtdDM4MGUiLGtleTplfSkpKSwxMjgpKV0pLGUuJHN0b3JlLm1lc3NhZ2VzLmNvbnZlcnNhdGlvbi5jb21wb3NlLmlzX2F1dG9tYXRlZD8oQSgpLEYoInNwYW4iLGhzLGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9tZXNzYWdlX2V2ZW50X3RoaW5raW5nIikpLDEpKTpaKCIiLCEwKSxjWzBdfHwoY1swXT16KCJzcGFuIix7Y2xhc3M6ImNjLTEzZnR4In0sbnVsbCwtMSkpXSkpOlooIiIsITApXSl9XV0pLHBzPVsiZGF0ZS1oYXMtdGltZXN0YW1wIl0sdXM9e2tleTowLGNsYXNzOiJjYy05MGp5YyJ9LG1zPXtjbGFzczoiY2MtMXNydm0ifSxmcz17Y2xhc3M6ImNjLXpwcHIzIGNjLTEwY3FzIn0sa3M9e2NsYXNzOiJjYy0xMXA3diBjYy0xbGw3aiJ9LHlzPXtrZXk6MCxjbGFzczoiY2MtemY3ZGYgY2MtMWljcmoifSxfcz17a2V5OjAsY2xhc3M6ImNjLXZtZ2tvIGNjLTEwY3FzIn0sdnM9e2NsYXNzOiJjYy04ZHRhYyJ9LGdzPXtjbGFzczoiY2MtMnYzMmEgY2MtdnNycjcifSxicz1bIm9uQ2xpY2siLCJvblBvaW50ZXJkb3duIl0sQ3M9e2tleTowLGNsYXNzOiJjYy0xNnByaSJ9LHdzPXtrZXk6MSxjbGFzczoiY2MtMTZwcmkifSx4cz17a2V5OjIsY2xhc3M6ImNjLTE2cHJpIn0sanM9e2tleTozLGNsYXNzOiJjYy0xNnByaSJ9LHFzPXtrZXk6NCxjbGFzczoiY2MtMTZwcmkifSx6cz17a2V5OjUsY2xhc3M6ImNjLTE2cHJpIn0sU3M9e2tleTo2LGNsYXNzOiJjYy0xNnByaSJ9LEZzPXtrZXk6MSxjbGFzczoiY2MtZmxjYmcifSxQcz17Y2xhc3M6ImNjLTFjODl0IGNjLTFpY3JqIn0sVHM9e2tleToyLGNsYXNzOiJjYy0xampnbyJ9LEJzPXtjbGFzczoiY2MteXljOWYifSxJcz17a2V5OjMsY2xhc3M6ImNjLTE3YXVyIn0sTXM9WyJvbkNsaWNrIl0sJHM9e2NsYXNzOiJjYy0xMmh1eSBjYy0xMGNxcyJ9LEFzPXtjbGFzczoiY2MtMXVrZXkifTt2YXIgTHM9dShxKHtjb21wb25lbnRzOntDaGF0Q29udGVudEZsb3dNZXNzYWdlc0J1YmJsZUFuaW1hdGlvbjpQdCxDaGF0Q29udGVudEZsb3dNZXNzYWdlc0J1YmJsZUF1ZGlvOkx0LENoYXRDb250ZW50Rmxvd01lc3NhZ2VzQnViYmxlQ2Fyb3VzZWw6RXQsQ2hhdENvbnRlbnRGbG93TWVzc2FnZXNCdWJibGVGaWVsZDpLdCxDaGF0Q29udGVudEZsb3dNZXNzYWdlc0J1YmJsZUZpbGU6ZGEsQ2hhdENvbnRlbnRGbG93TWVzc2FnZXNCdWJibGVQaWNrZXI6dWEsQ2hhdENvbnRlbnRGbG93TWVzc2FnZXNCdWJibGVUZXh0Ol9hLENoYXRDb250ZW50Rmxvd01lc3NhZ2VzQ29udHJvbHM6JGEsQ2hhdENvbnRlbnRGbG93TWVzc2FnZXNQcmV2aWV3OlJhLENoYXRDb250ZW50Rmxvd01lc3NhZ2VzU291cmNlczpHYSxDaGF0Q29udGVudEZsb3dNZXNzYWdlc1Rvb2x0aXA6bnMsQ2hhdENvbnRlbnRGbG93TWVzc2FnZXNFdmVudHM6ZHN9LGRhdGE6KCk9Pih7bWVzc2FnZUxvbmdUYXBUaW1lb3V0Om51bGx9KSxjb21wdXRlZDp7aGFzTG9uZ1RhcFRleHRTZWxlY3Rpb246KCk9PmQuYmFzZS5ydW50aW1lLm1vYmlsZV9zZGt8fCExfSxtZXRob2RzOnt0b0Vycm9yUmVhc29uOmU9PnIudGV4dCgiY2hhdCIsYGNoYXRfbWVzc2FnZV9lcnJvcl9yZWFzb25fJHtlfWApfHxlLGlzRGlmZmVyZW50RGF0ZShlLGMpe2xldCB0PWQubWVzc2FnZXMuY29udmVyc2F0aW9uLmxpc3RbZV0sYT1kLm1lc3NhZ2VzLmNvbnZlcnNhdGlvbi5saXN0W2NdO2lmKDA9PT10Py50aW1lc3RhbXApcmV0dXJuITE7aWYoIXR8fCFhKXJldHVybiEwO2xldCBzPUsudGltZXN0YW1wVG9Qcm9wZXJ0aWVzKGEudGltZXN0YW1wKSxsPUsudGltZXN0YW1wVG9Qcm9wZXJ0aWVzKHQudGltZXN0YW1wKTtyZXR1cm4gcy5kYXkhPT1sLmRheXx8cy5tb250aCE9PWwubW9udGh8fHMueWVhciE9PWwueWVhcnx8ITF9LGlzRmlyc3RPZkdyb3VwKGUsYyl7aWYoMD09PWMpcmV0dXJuITA7bGV0IHQ9ZC5tZXNzYWdlcy5jb252ZXJzYXRpb24ubGlzdFtjLTFdO3JldHVybiB0aGlzLmlzTGFzdE9mR3JvdXAodCxjLTEpfSxpc0xhc3RPZkdyb3VwKGUsYyl7bGV0IHQ9ZC5tZXNzYWdlcy5jb252ZXJzYXRpb24ubGlzdFtjKzFdLGE9dD8udXNlcnx8e30scz1lPy51c2VyfHx7fTtyZXR1cm4gdGhpcy5pc0RpZmZlcmVudERhdGUoYysxLGMpfHwhdCYmITB8fChlLnNlbmRpbmd8fGUuZXJyb3IpJiYhKHQuc2VuZGluZ3x8dC5lcnJvcil8fHQmJmEudXNlcl9pZCE9PXMudXNlcl9pZHx8KGEudHlwZXx8cy50eXBlKSYmYS5uaWNrbmFtZSE9PXMubmlja25hbWV8fCExfSxpc0xhc3RPZlRocmVhZChlLGMpe3JldHVybiB0aGlzLmlzRGlmZmVyZW50RGF0ZShjKzEsYyl8fCFkLm1lc3NhZ2VzLmNvbnZlcnNhdGlvbi5saXN0W2MrMV0mJiEwfHwhMX0saGFuZGxlTWVzc2FnZUxpbmtDbGlja0hlbHBkZXNrKGUsYyl7aWYoZC53ZWJzaXRlPy5jaGFubmVscz8uaGVscGRlc2smJmQuYmFzZS5wYWdlX2RvbWFpbiE9PWQud2Vic2l0ZT8uY2hhbm5lbHM/LmhlbHBkZXNrKXtsZXQgdD1kLmhlbHBkZXNrLmV4dHJhY3RBcnRpY2xlRnJvbVVybChlLnRhcmdldC5ocmVmKTtpZihudWxsIT09dCl7bGV0IGE9bnVsbDtjLnByZXZpZXc/LlswXT8udGl0bGUmJihhPWMucHJldmlld1swXS50aXRsZSksITA9PT1kLmhlbHBkZXNrLnNob3dBcnRpY2xlKHQubG9jYWxlLHQuc2x1ZyxhKSYmZC5oZWxwZGVzay5vcGVuKCksZS5wcmV2ZW50RGVmYXVsdCgpfX19LG9uTWVzc2FnZUNvbW1vbkNsaWNrKGUsYyl7bGV0IHQ9ZS50YXJnZXQ7aWYodD8uaHJlZilyZXR1cm4gdm9pZCB0aGlzLmhhbmRsZU1lc3NhZ2VMaW5rQ2xpY2tIZWxwZGVzayhlLGMpO2xldCBhPXQ/LnBhcmVudEVsZW1lbnQ/LmdldEF0dHJpYnV0ZSgiZGF0YS1zaG93LXByZXZpZXctdXJsIik7YSYmYWEubWFnbmlmeSgiaW1hZ2UiLGEpfSxvbk1lc3NhZ2VQcmV2aWV3Q2xpY2soZSxjKXt0aGlzLmhhbmRsZU1lc3NhZ2VMaW5rQ2xpY2tIZWxwZGVzayhlLGMpfSxvbk1lc3NhZ2VTZW5kUmV0cnlDbGljayhlKXshMD09PWQubWVzc2FnZXMuY2hlY2tJbnRlbnRTZW5kKCkmJihkLm1lc3NhZ2VzLnJlbW92ZShlLmZpbmdlcnByaW50KSxkLm1lc3NhZ2VzLnNlbmQoZS50eXBlLGUuY29udGVudCkpfSxvbk1lc3NhZ2VMb25nVGFwU3RhcnQoZSxjKXshdGhpcy5oYXNMb25nVGFwVGV4dFNlbGVjdGlvbnx8ZS5idXR0b24+MHx8KGwuY2xlYXJUaW1lb3V0KHRoaXMubWVzc2FnZUxvbmdUYXBUaW1lb3V0KSx0aGlzLm1lc3NhZ2VMb25nVGFwVGltZW91dD1sLnNldFRpbWVvdXQoKCk9Pnt0aGlzLm1lc3NhZ2VMb25nVGFwVGltZW91dD1udWxsLGEub25JbnRlcmZhY2VBY3Rpb24oInNlbGVjdCIse29iamVjdDoibWVzc2FnZSIsdGFyZ2V0OmMscG9pbnRlcjp7eDplLmNsaWVudFh8fDAseTplLmNsaWVudFl8fDB9fSl9LDFlMykpfSxvbk1lc3NhZ2VMb25nVGFwRW5kKCl7bnVsbCE9PXRoaXMubWVzc2FnZUxvbmdUYXBUaW1lb3V0JiYobC5jbGVhclRpbWVvdXQodGhpcy5tZXNzYWdlTG9uZ1RhcFRpbWVvdXQpLHRoaXMubWVzc2FnZUxvbmdUYXBUaW1lb3V0PW51bGwpfX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtjb25zdCBuPXYoImNoYXQtY29udGVudC1mbG93LW1lc3NhZ2VzLWJ1YmJsZS10ZXh0IiksaT12KCJjaGF0LWNvbnRlbnQtZmxvdy1tZXNzYWdlcy1zb3VyY2VzIiksbz12KCJjaGF0LWNvbnRlbnQtZmxvdy1tZXNzYWdlcy1idWJibGUtZmlsZSIpLHI9digiY2hhdC1jb250ZW50LWZsb3ctbWVzc2FnZXMtYnViYmxlLWFuaW1hdGlvbiIpLGg9digiY2hhdC1jb250ZW50LWZsb3ctbWVzc2FnZXMtYnViYmxlLWF1ZGlvIiksZD12KCJjaGF0LWNvbnRlbnQtZmxvdy1tZXNzYWdlcy1idWJibGUtZmllbGQiKSxwPXYoImNoYXQtY29udGVudC1mbG93LW1lc3NhZ2VzLWJ1YmJsZS1waWNrZXIiKSx1PXYoImNoYXQtY29udGVudC1mbG93LW1lc3NhZ2VzLWJ1YmJsZS1jYXJvdXNlbCIpLEM9digiY2hhdC1jb250ZW50LWZsb3ctbWVzc2FnZXMtdG9vbHRpcCIpLHc9digiY2hhdC1jb250ZW50LWZsb3ctbWVzc2FnZXMtY29udHJvbHMiKSx4PXYoImNoYXQtY29udGVudC1mbG93LW1lc3NhZ2VzLXByZXZpZXciKSxxPXYoImNoYXQtY29udGVudC1mbG93LW1lc3NhZ2VzLWV2ZW50cyIpLFM9ZygiY3Jpc3AtYWNjZXNzaWJpbGl0eSIpO3JldHVybiBBKCksRigiZGl2Iix7Y2xhc3M6bShbImNjLWt0b2RnIiwid3AtZXhjbHVkZS1lbW9qaSIsImNjLWt0b2RnLS1zdGF0dXMtIitlLiRzdG9yZS5jaGF0LmN1cnJlbnRfc3RhdHVzX21hcmtlcix7ImNjLWt0b2RnLS1leHBhbmRlZCI6ZS4kc3RvcmUuY2hhdC5pc19leHBhbmRlZH1dKX0sWyhBKCEwKSxGKEksbnVsbCxiKGUuJHN0b3JlLm1lc3NhZ2VzLmNvbnZlcnNhdGlvbi5saXN0LCh0LGEpPT4oQSgpLEYoImRpdiIse2NsYXNzOiJjYy15YmZ5OSIsa2V5OnQuZmluZ2VycHJpbnQsImRhdGUtaGFzLXRpbWVzdGFtcCI6ISF0LnRpbWVzdGFtcCx0YWJpbmRleDoiLTEiLCJhcmlhLWxpdmUiOiJwb2xpdGUiLCJhcmlhLXJlbGV2YW50IjoiYWRkaXRpb25zIn0sW2UuaXNEaWZmZXJlbnREYXRlKGEsYS0xKT8oQSgpLEYoImRpdiIsdXMsW3ooImRpdiIsbXMsW3ooImRpdiIsZnMsZihlLiRmaWx0ZXJzLmRhdGUudGltZXN0YW1wVG9Qcm9wZXJ0aWVzKHQudGltZXN0YW1wKS50aXRsZSksMSldKV0pKTpaKCIiLCEwKSx6KCJkaXYiLHtjbGFzczptKFsiY2MtMWdyZmEiLCJjYy0xZ3JmYS0tIisoIm9wZXJhdG9yIj09PXQuZnJvbT8ib3BlcmF0b3IiOiJ2aXNpdG9yIiksImNjLTFncmZhLS0iK3QudHlwZSx7ImNjLTFncmZhLS1uZXciOnQubWV0YXMuaXNfbmV3JiZlLiRzdG9yZS5mZWF0dXJlLmhhc19jc3NfYW5pbWF0aW9ucywiY2MtMWdyZmEtLWZpcnN0LW9mLWdyb3VwIjplLmlzRmlyc3RPZkdyb3VwKHQsYSksImNjLTFncmZhLS1sYXN0LW9mLWdyb3VwIjplLmlzTGFzdE9mR3JvdXAodCxhKSwiY2MtMWdyZmEtLWxhc3Qtb2YtdGhyZWFkIjplLmlzTGFzdE9mVGhyZWFkKHQsYSl9XSl9LFsib3BlcmF0b3IiPT09dC5mcm9tJiYiYWdlbnQiIT09ZS4kc3RvcmUuY2hhdC5jdXJyZW50X3N0YXR1c19tYXJrZXI/KEEoKSxGKEkse2tleTowfSxbeigic3BhbiIsa3MsW3ooInNwYW4iLHtjbGFzczoiY2MtMXF5bTggY2MtMWYyejIiLHN0eWxlOmsoe2JhY2tncm91bmRJbWFnZTplLiRyZW5kZXIuaW1hZ2VVcmxCYWNrZ3JvdW5kKGUuJHJlbmRlci5fYSgxMjAsdC51c2VyPy50eXBlfHx0LmZyb20sdC51c2VyPy51c2VyX2lkLHQudXNlcj8uYXZhdGFyKSl9KX0sbnVsbCw0KV0pLCJvcGVyYXRvciI9PT10LmZyb20mJnQudXNlcj8ubmlja25hbWU/KEEoKSxGKCJzcGFuIix5cyxbaihmKCJ3ZWJzaXRlIj09PXQudXNlcj8udHlwZT90LnVzZXI/Lm5pY2tuYW1lOmUuJHJlbmRlci5fbih0LnVzZXI/Lm5pY2tuYW1lKSksMSksITA9PT10LmF1dG9tYXRlZD8oQSgpLEYoInNwYW4iLF9zLGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9tZXNzYWdlX3RhZ19hdXRvbWF0ZWQiKSksMSkpOlooIiIsITApXSkpOlooIiIsITApXSw2NCkpOlooIiIsITApLHooInNwYW4iLHZzLFt6KCJzcGFuIixncyxbeigic3BhbiIse29uQ2xpY2s6Yz0+ZS5vbk1lc3NhZ2VDb21tb25DbGljayhjLHQpLG9uUG9pbnRlcmRvd246Yz0+ZS5vbk1lc3NhZ2VMb25nVGFwU3RhcnQoYyx0KSxvblBvaW50ZXJ1cDpjWzBdfHwoY1swXT0oLi4uYyk9PmUub25NZXNzYWdlTG9uZ1RhcEVuZCYmZS5vbk1lc3NhZ2VMb25nVGFwRW5kKC4uLmMpKSxvblBvaW50ZXJjYW5jZWw6Y1sxXXx8KGNbMV09KC4uLmMpPT5lLm9uTWVzc2FnZUxvbmdUYXBFbmQmJmUub25NZXNzYWdlTG9uZ1RhcEVuZCguLi5jKSksb25Qb2ludGVybW92ZTpjWzJdfHwoY1syXT0oLi4uYyk9PmUub25NZXNzYWdlTG9uZ1RhcEVuZCYmZS5vbk1lc3NhZ2VMb25nVGFwRW5kKC4uLmMpKSxjbGFzczptKFsiY2MteXI4cHgiLCJjYy0xaWNyaiIseyJjYy0zcmZnYyI6IWUuaGFzTG9uZ1RhcFRleHRTZWxlY3Rpb259XSl9LFsidGV4dCI9PT10LnR5cGU/KEEoKSxGKCJzcGFuIixDcyxbeShuLHttZXNzYWdlOnR9LG51bGwsOCxbIm1lc3NhZ2UiXSkseShpLHttZXNzYWdlOnR9LG51bGwsOCxbIm1lc3NhZ2UiXSldKSk6ImZpbGUiPT09dC50eXBlPyhBKCksRigic3BhbiIsd3MsW3kobyx7bWVzc2FnZTp0fSxudWxsLDgsWyJtZXNzYWdlIl0pXSkpOiJhbmltYXRpb24iPT09dC50eXBlPyhBKCksRigic3BhbiIseHMsW3kocix7bWVzc2FnZTp0fSxudWxsLDgsWyJtZXNzYWdlIl0pXSkpOiJhdWRpbyI9PT10LnR5cGU/KEEoKSxGKCJzcGFuIixqcyxbeShoLHttZXNzYWdlOnR9LG51bGwsOCxbIm1lc3NhZ2UiXSldKSk6ImZpZWxkIj09PXQudHlwZT8oQSgpLEYoInNwYW4iLHFzLFt5KGQse21lc3NhZ2U6dH0sbnVsbCw4LFsibWVzc2FnZSJdKV0pKToicGlja2VyIj09PXQudHlwZT8oQSgpLEYoInNwYW4iLHpzLFt5KHAse21lc3NhZ2U6dH0sbnVsbCw4LFsibWVzc2FnZSJdKV0pKToiY2Fyb3VzZWwiPT09dC50eXBlPyhBKCksRigic3BhbiIsU3MsW3kodSx7bWVzc2FnZTp0fSxudWxsLDgsWyJtZXNzYWdlIl0pXSkpOlooIiIsITApXSw0MixicykseShDLHttZXNzYWdlOnR9LG51bGwsOCxbIm1lc3NhZ2UiXSksY1szXXx8KGNbM109eigic3BhbiIse2NsYXNzOiJjYy0xM2Z0eCJ9LG51bGwsLTEpKV0pLHkodyx7bWVzc2FnZTp0fSxudWxsLDgsWyJtZXNzYWdlIl0pLHkoeCx7b25DbGljazplLm9uTWVzc2FnZVByZXZpZXdDbGljayxtZXNzYWdlOnR9LG51bGwsOCxbIm9uQ2xpY2siLCJtZXNzYWdlIl0pXSksY1sxMF18fChjWzEwXT16KCJzcGFuIix7Y2xhc3M6ImNjLTEzZnR4In0sbnVsbCwtMSkpLCJ1c2VyIj09PXQuZnJvbSYmdC5yZWFkJiZlLiRzdG9yZS5tZXNzYWdlcy5jb252ZXJzYXRpb24ubGF0ZXN0X2ZpbmdlcnByaW50PT09dC5maW5nZXJwcmludD8oQSgpLEYoInNwYW4iLEZzLFt6KCJzcGFuIixQcyxmKGUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfbWVzc2FnZV9pbmZvX3JlYWQiKSksMSksY1s0XXx8KGNbNF09eigic3BhbiIse2NsYXNzOiJjYy0xN2p6ciJ9LG51bGwsLTEpKSxjWzVdfHwoY1s1XT16KCJzcGFuIix7Y2xhc3M6ImNjLTEzZnR4In0sbnVsbCwtMSkpXSkpOlooIiIsITApLCJ1c2VyIj09PXQuZnJvbSYmdC5tZXRhcy5pc19wZW5kaW5nPyhBKCksRigic3BhbiIsVHMsW2NbNl18fChjWzZdPXooInNwYW4iLHtjbGFzczoiY2MtMXB5bXYifSxbeigic3BhbiIse2NsYXNzOiJjYy0xbHJxdyBjYy0xbHdreiJ9KV0sLTEpKSx6KCJzcGFuIixCcyxmKGUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfbWVzc2FnZV9pbmZvX3NlbmRpbmciKSksMSksY1s3XXx8KGNbN109eigic3BhbiIse2NsYXNzOiJjYy0xM2Z0eCJ9LG51bGwsLTEpKV0pKTpaKCIiLCEwKSwidXNlciI9PT10LmZyb20mJnQubWV0YXMuZXJyb3I/KEEoKSxGKCJzcGFuIixJcyxbRygoQSgpLEYoInNwYW4iLHtjbGFzczoiY2MtbzlpNHciLG9uQ2xpY2s6Yz0+ZS5vbk1lc3NhZ2VTZW5kUmV0cnlDbGljayh0KX0sW3ooInNwYW4iLCRzLGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9tZXNzYWdlX2Vycm9yX3JldHJ5IikpLDEpLGNbOF18fChjWzhdPXooInNwYW4iLHtjbGFzczoiY2MtcmdnOW8ifSxudWxsLC0xKSksY1s5XXx8KGNbOV09eigic3BhbiIse2NsYXNzOiJjYy0xM2Z0eCJ9LG51bGwsLTEpKV0sOCxNcykpLFtbUyx7cm9sZToiYnV0dG9uIn1dXSkseigic3BhbiIsQXMsZihlLnRvRXJyb3JSZWFzb24odC5tZXRhcy5lcnJvcikpLDEpXSkpOlooIiIsITApLGNbMTFdfHwoY1sxMV09eigic3BhbiIse2NsYXNzOiJjYy0xM2Z0eCJ9LG51bGwsLTEpKV0sMiksY1sxMl18fChjWzEyXT16KCJzcGFuIix7Y2xhc3M6ImNjLTEzZnR4In0sbnVsbCwtMSkpXSw4LHBzKSkpLDEyOCkpLHkocSldLDIpfV1dKTt2YXIgRHM9dShxKHtjb21wb25lbnRzOntDaGF0Q29udGVudEZsb3dNZXNzYWdlczpMc30sbWV0aG9kczp7b25TY3JvbGwoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCl9LG9uVG91Y2hzdGFydChlKXtlLnN0b3BQcm9wYWdhdGlvbigpfX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtjb25zdCBuPXYoImNoYXQtY29udGVudC1mbG93LW1lc3NhZ2VzIiksaT1nKCJjcmlzcC1zY3JvbGwiKSxvPWcoImNyaXNwLWFjY2Vzc2liaWxpdHkiKTtyZXR1cm4gRygoQSgpLEYoImRpdiIse2NsYXNzOm0oWyJjYy0xd2M5dCIsImNjLTF3Yzl0LS1zdGF0dXMtIitlLiRzdG9yZS5jaGF0LmN1cnJlbnRfc3RhdHVzX21hcmtlcix7ImNjLTF3Yzl0LS1mdWxsLXZpZXciOmUuJHN0b3JlLmJhc2UuaXNfZnVsbF92aWV3LCJjYy0xd2M5dC0taGFzLWFsZXJ0IjplLiRzdG9yZS5jaGF0LmN1cnJlbnRfYWxlcnRzLCJjYy0xd2M5dC0taGFzLWhlYWx0aCI6ZS4kc3RvcmUuY2hhdC5oYXNfaGVhbHRoLCJjYy0xd2M5dC0taGFzLW9mZmxpbmUiOmUuJHN0b3JlLmNoYXQuaGFzX29mZmxpbmUsImNjLTF3Yzl0LS1oYXMtbG9jYWwtbWVzc2FnZXMiOmUuJHN0b3JlLmJhc2UuaGFzX2xvY2FsX21lc3NhZ2VzLCJjYy0xd2M5dC0tbGF5b3V0LWNvbG9yaXplZCI6ImNvbG9yaXplZCI9PT1lLiRzdG9yZS53ZWJzaXRlPy5jaGF0Py5sYXlvdXRfdGhlbWV9XSksaWQ6ImNjLTF3Yzl0IiwiYXJpYS1saXZlIjoicG9saXRlIiwiYXJpYS1hdG9taWMiOiJmYWxzZSJ9LFtHKChBKCksRigiZGl2Iix7Y2xhc3M6ImNjLTF1MDd5IixvblNjcm9sbDpjWzBdfHwoY1swXT0oLi4uYyk9PmUub25TY3JvbGwmJmUub25TY3JvbGwoLi4uYykpLG9uVG91Y2hzdGFydDpjWzFdfHwoY1sxXT0oLi4uYyk9PmUub25Ub3VjaHN0YXJ0JiZlLm9uVG91Y2hzdGFydCguLi5jKSl9LFt5KG4se2NsYXNzOiJjYy1jM2ZoZiJ9KV0sMzIpKSxbW2ldXSldLDIpKSxbW28se31dXSl9XV0pLEVzPXtrZXk6MCxjbGFzczoiY2MtY3gzMWwifSxWcz17Y2xhc3M6ImNjLTFjZmtmIGNjLTEwY3FzIn0sSHM9e2NsYXNzOiJjYy0xY2ZrZiBjYy0xMGNxcyJ9LFJzPXtjbGFzczoiY2MtMWNma2YgY2MtMTBjcXMifSxLcz17a2V5OjMsY2xhc3M6ImNjLXQyNTBxIGNjLXQyNTBxLS13YWl0LXJlcGx5In0sT3M9e2tleTowLGNsYXNzOiJjYy0xY2ZrZiBjYy0xMGNxcyJ9LFVzPXtrZXk6MSxjbGFzczoiY2MtMWNma2YgY2MtMTBjcXMifSxOcz17Y2xhc3M6ImNjLTFjZmtmIGNjLTEwY3FzIn07dmFyIFdzPXUocSh7Y29tcHV0ZWQ6e3dhcm5SZXBseVRleHQoKXtyZXR1cm4gdGhpcy4kcmVuZGVyLl9lKCJjaGF0IixgY2hhdF9hbGVydHNfd2Fybl9yZXBseV8ke3RoaXMud2FyblJlcGx5VHlwZX1gKX0sd2FyblJlcGx5VHlwZSgpe2xldCBlPSJlbWFpbF9kZWZhdWx0IjtyZXR1cm4hMD09PWQud2Vic2l0ZT8uY2hhdD8ucGhvbmVfdmlzaXRvcnMmJiEwIT09ZC53ZWJzaXRlPy5jaGF0Py5lbWFpbF92aXNpdG9ycz9lPSEwPT09ZC53ZWJzaXRlPy5jaGF0Py5mb3JjZV9pZGVudGlmeT8icGhvbmVfZm9yY2UiOiJwaG9uZV9kZWZhdWx0IjohMD09PWQud2Vic2l0ZT8uY2hhdD8uZm9yY2VfaWRlbnRpZnkmJihlPSJlbWFpbF9mb3JjZSIpLGV9fSxtZXRob2RzOntvbkFsZXJ0RW1haWxJbnZhbGlkQ2xpY2soKXtkLmNoYXRJbnRlbnQudXBkYXRlKCJpZGVudGl0eSIsImVtYWlsIixudWxsLCEwKX0sb25BbGVydFdhcm5SZXBseUNsaWNrKCl7ITA9PT1kLndlYnNpdGUuY2hhdC5waG9uZV92aXNpdG9ycyYmITAhPT1kLndlYnNpdGUuY2hhdC5lbWFpbF92aXNpdG9ycz9kLmNoYXRJbnRlbnQudXBkYXRlKCJpZGVudGl0eSIsInBob25lIik6ZC5jaGF0SW50ZW50LnVwZGF0ZSgiaWRlbnRpdHkiLCJlbWFpbCIpfSxvbkFsZXJ0V2FyblByb21wdENsaWNrKCl7aC5mb2N1c09uRm9yZWdyb3VuZCgpfSxvbkFsZXJ0TmV3TWVzc2FnZXNDbGljaygpe2guc2Nyb2xsVG8oKX19fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7Y29uc3Qgbj1nKCJjcmlzcC1hY2Nlc3NpYmlsaXR5Iik7cmV0dXJuIGUuJHN0b3JlLmNoYXQuY3VycmVudF9hbGVydHM/KEEoKSxGKCJkaXYiLEVzLFtlLiRzdG9yZS5jaGF0LmN1cnJlbnRfYWxlcnRzPy5lbWFpbF9pbnZhbGlkP0coKEEoKSxGKCJkaXYiLHtrZXk6MCxjbGFzczoiY2MtdDI1MHEgY2MtdDI1MHEtLWVtYWlsLWludmFsaWQiLG9uQ2xpY2s6Y1swXXx8KGNbMF09RCgoLi4uYyk9PmUub25BbGVydEVtYWlsSW52YWxpZENsaWNrJiZlLm9uQWxlcnRFbWFpbEludmFsaWRDbGljayguLi5jKSxbInByZXZlbnQiXSkpfSxbeigic3BhbiIsVnMsZihlLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2FsZXJ0c19lbWFpbF9pbnZhbGlkIikpLDEpXSkpLFtbbix7cm9sZToiYWxlcnQifV1dKTplLiRzdG9yZS5jaGF0LmN1cnJlbnRfYWxlcnRzPy53YXJuX3JlcGx5P0coKEEoKSxGKCJkaXYiLHtrZXk6MSxjbGFzczoiY2MtdDI1MHEgY2MtdDI1MHEtLXdhcm4tcmVwbHkiLG9uQ2xpY2s6Y1sxXXx8KGNbMV09RCgoLi4uYyk9PmUub25BbGVydFdhcm5SZXBseUNsaWNrJiZlLm9uQWxlcnRXYXJuUmVwbHlDbGljayguLi5jKSxbInByZXZlbnQiXSkpfSxbY1s0XXx8KGNbNF09eigic3BhbiIse2NsYXNzOiJjYy03OHBrOSJ9LG51bGwsLTEpKSx6KCJzcGFuIixIcyxmKGUud2FyblJlcGx5VGV4dCksMSldKSksW1tuLHtyb2xlOiJhbGVydCJ9XV0pOmUuJHN0b3JlLmNoYXQuY3VycmVudF9hbGVydHM/Lndhcm5fcHJvbXB0P0coKEEoKSxGKCJkaXYiLHtrZXk6MixjbGFzczoiY2MtdDI1MHEgY2MtdDI1MHEtLXdhcm4tcHJvbXB0IixvbkNsaWNrOmNbMl18fChjWzJdPUQoKC4uLmMpPT5lLm9uQWxlcnRXYXJuUHJvbXB0Q2xpY2smJmUub25BbGVydFdhcm5Qcm9tcHRDbGljayguLi5jKSxbInByZXZlbnQiXSkpfSxbY1s1XXx8KGNbNV09eigic3BhbiIse2NsYXNzOiJjYy03OHBrOSJ9LG51bGwsLTEpKSx6KCJzcGFuIixScyxmKGUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfYWxlcnRzX3dhcm5fcHJvbXB0IikpLDEpXSkpLFtbbix7cm9sZToiYWxlcnQifV1dKTplLiRzdG9yZS5jaGF0LmN1cnJlbnRfYWxlcnRzPy53YWl0X3JlcGx5P0coKEEoKSxGKCJkaXYiLEtzLFsib25saW5lIj09PWUuJHN0b3JlLmF2YWlsYWJpbGl0eS5hdmFpbGFiaWxpdHk/KEEoKSxGKCJzcGFuIixPcyxmKGUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfYWxlcnRzX3dhaXRfcmVwbHlfb25saW5lIikpLDEpKTooQSgpLEYoInNwYW4iLFVzLGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9hbGVydHNfd2FpdF9yZXBseV9hd2F5IikpLDEpKV0pKSxbW24se3JvbGU6ImFsZXJ0In1dXSk6ZS4kc3RvcmUuY2hhdC5jdXJyZW50X2FsZXJ0cz8ubmV3X21lc3NhZ2VzP0coKEEoKSxGKCJkaXYiLHtrZXk6NCxjbGFzczoiY2MtdDI1MHEgY2MtdDI1MHEtLW5ldy1tZXNzYWdlcyIsb25DbGljazpjWzNdfHwoY1szXT1EKCguLi5jKT0+ZS5vbkFsZXJ0TmV3TWVzc2FnZXNDbGljayYmZS5vbkFsZXJ0TmV3TWVzc2FnZXNDbGljayguLi5jKSxbInByZXZlbnQiXSkpfSxbY1s2XXx8KGNbNl09eigic3BhbiIse2NsYXNzOiJjYy03OHBrOSJ9LG51bGwsLTEpKSx6KCJzcGFuIixOcyxmKGUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfYWxlcnRzX25ld19tZXNzYWdlcyIpKSwxKV0pKSxbW24se3JvbGU6ImFsZXJ0In1dXSk6WigiIiwhMCldKSk6WigiIiwhMCl9XV0pLFpzPXtjbGFzczoiY2MtMWUzdzYifSxHcz1bIm9uQ2xpY2siLCJhcmlhLWxhYmVsIl0sUXM9e2NsYXNzOiJjYy00c3A0YyBjYy0xaWNyaiJ9O3ZhciBZcz11KHEoe21ldGhvZHM6e29uUXVpY2tSZXBseUNsaWNrKGUpe2QubWVzc2FnZXMuc2VuZCgidGV4dCIsZSl9fX0pLFtbInJlbmRlciIsZnVuY3Rpb24oZSxjLHQsYSxzLGwpe2NvbnN0IG49ZygiY3Jpc3AtYWNjZXNzaWJpbGl0eSIpO3JldHVybiBlLiRzdG9yZS5jaGF0LmN1cnJlbnRfcXVpY2tfcmVwbGllcz8oQSgpLEYoImRpdiIse2tleTowLGNsYXNzOm0oWyJjYy0xdGJ6bCIseyJjYy0xdGJ6bC0taGFzLWFsZXJ0IjplLiRzdG9yZS5jaGF0LmN1cnJlbnRfYWxlcnRzfV0pfSxbeigiZGl2IixacyxbKEEoITApLEYoSSxudWxsLGIoZS4kc3RvcmUuY2hhdC5jdXJyZW50X3F1aWNrX3JlcGxpZXMsYz0+RygoQSgpLEYoImRpdiIse2NsYXNzOiJjYy0xM2cybiIsb25DbGljazp0PT5lLm9uUXVpY2tSZXBseUNsaWNrKGMpLCJhcmlhLWxhYmVsIjpjLGtleTpjfSxbeigic3BhbiIsUXMsZihjKSwxKV0sOCxHcykpLFtbbix7cm9sZToiYnV0dG9uIn1dXSkpLDEyOCkpXSldLDIpKTpaKCIiLCEwKX1dXSksSnM9e2NsYXNzOiJjYy0xam14aSJ9O3ZhciBYcz11KHEoe2NvbXBvbmVudHM6e0NoYXRDb250ZW50QmFubmVyT2ZmbGluZTpDdCxDaGF0Q29udGVudEJhbm5lckhlYWx0aDp6dCxDaGF0Q29udGVudEZsb3c6RHMsQ2hhdENvbnRlbnRBbGVydHM6V3MsQ2hhdENvbnRlbnRRdWlja1JlcGxpZXM6WXN9fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7Y29uc3Qgbj12KCJjaGF0LWNvbnRlbnQtYmFubmVyLW9mZmxpbmUiKSxpPXYoImNoYXQtY29udGVudC1iYW5uZXItaGVhbHRoIiksbz12KCJjaGF0LWNvbnRlbnQtZmxvdyIpLHI9digiY2hhdC1jb250ZW50LXF1aWNrLXJlcGxpZXMiKSxoPXYoImNoYXQtY29udGVudC1hbGVydHMiKTtyZXR1cm4gQSgpLEYoImRpdiIsSnMsW2UuJHN0b3JlLmNoYXQuaGFzX29mZmxpbmU/KEEoKSxVKG4se2tleTowfSkpOlooIiIsITApLGUuJHN0b3JlLmNoYXQuaGFzX2hlYWx0aD8oQSgpLFUoaSx7a2V5OjF9KSk6WigiIiwhMCkseShvKSx5KHIpLHkoaCldKX1dXSksZWw9e2tleTowLGNsYXNzOiJjYy0xd2drMSJ9LGNsPXtjbGFzczoiY2MtNXZiODYifSx0bD1bInNyYyJdLGFsPXtrZXk6MCxjbGFzczoiY2MtMW5pZHEifSxzbD17a2V5OjEsY2xhc3M6ImNjLTFhejMyIn0sbGw9e2NsYXNzOiJjYy0xaXVsayJ9LG5sPXtrZXk6MCxjbGFzczoiY2MtcmdnaXMifSxpbD17a2V5OjIsY2xhc3M6ImNjLW4zNXh5In0sb2w9e2NsYXNzOiJjYy1jOHdieiBjYy0xMGNxcyJ9LHJsPXtrZXk6MyxjbGFzczoiY2MtbjM1eHkifSxobD17Y2xhc3M6ImNjLWM4d2J6IGNjLTEwY3FzIn07dmFyIGRsPXthcnRpY2xlczoiYXJ0aWNsZSIsY2F0ZWdvcmllczoiY2F0ZWdvcnkifSxwbD11KHEoe2NvbXBvbmVudHM6e0NoYXRDb250ZW50UmVzdWx0TGlzdDpydH0sZGF0YTooKT0+KHtwZW5kaW5nRm9jdXNUYXJnZXQ6bnVsbH0pLGNvbXB1dGVkOntlbnRpdHlGaWx0ZXJlZFJhd1Jlc3VsdHMoKXtsZXQgZT1kLmhlbHBkZXNrLm5hdmlnYXRpb24uY3VycmVudC5maWx0ZXI7aWYoZS5jYXRlZ29yeUlkJiZudWxsPT09ZS5zZWN0aW9uSWQpe2xldCBjPWQuaGVscGRlc2suc2VhcmNoLnJlc3VsdHMuZmluZChjPT5jLmNhdGVnb3J5X2lkPT09ZS5jYXRlZ29yeUlkKTtyZXR1cm4oYz8uc2VjdGlvbnN8fFtdKS5tYXAoZT0+e2xldCB0PXtsb2NhbGU6Yy5sb2NhbGUsY2F0ZWdvcnlfaWQ6Yy5jYXRlZ29yeV9pZCwuLi5lfTtyZXR1cm4gZS5zZWN0aW9uX2lkP3Q6ey4uLnQsc2VjdGlvbl9pZDoiIixuYW1lOnRoaXMuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfaGVscGRlc2tfcmVzdWx0X3NlY3Rpb25fbm9uZSIpfX0pfXJldHVybiBkLmhlbHBkZXNrLnNlYXJjaC5yZXN1bHRzfSxlbnRpdHlGaWx0ZXJlZFJlc3VsdHMoKXtyZXR1cm4gdGhpcy5lbnRpdHlGaWx0ZXJlZFJhd1Jlc3VsdHMubWFwKGU9Pih7ZW50aXR5OmQuaGVscGRlc2suc2VhcmNoLmVudGl0eSx1cmw6dGhpcy5yZXN1bHRUb1VybChkLmhlbHBkZXNrLnNlYXJjaC5lbnRpdHksZSksdGl0bGU6ZS50aXRsZXx8ZS5uYW1lLGRlc2NyaXB0aW9uOmUuZXhjZXJwdHx8ZS5kZXNjcmlwdGlvbixzdGF0aXN0aWNzOnRoaXMucmVzdWx0VG9TdGF0aXN0aWNzKGUpLHRpdGxlRW1waGFzaXM6ITAscmF3UmVzdWx0OmV9KSl9fSx3YXRjaDp7IiRzdG9yZS5oZWxwZGVzay5zZWFyY2guaW5wdXQiOntoYW5kbGVyKCl7ZC5oZWxwZGVzay5wcm9jZWVkU2VhcmNoKGQuaGVscGRlc2suc2VhcmNoLmlucHV0KX19LCIkc3RvcmUuaGVscGRlc2suc2VhcmNoLmluaXRpYWxpemVkIjp7aGFuZGxlcigpe3RoaXMuZm9jdXNQZW5kaW5nVGFyZ2V0KCl9fSwiJHN0b3JlLmhlbHBkZXNrLnZpZXdlci51cmwiOntoYW5kbGVyKCl7dGhpcy5mb2N1c1BlbmRpbmdUYXJnZXQoKX19LCIkc3RvcmUud2Vic2l0ZS5jaGF0LmhlbHBkZXNrX25hdmlnYXRlIjp7aGFuZGxlcihlLGMpe2UmJmUhPT1jJiYoZC5oZWxwZGVzay5zZWFyY2guaW5wdXR8fGQuaGVscGRlc2sudmlld2VyLnVybHx8ZC5oZWxwZGVzay5zaG93U2VhcmNoKCkpfX0sZW50aXR5RmlsdGVyZWRSZXN1bHRzKCl7dGhpcy5mb2N1c1BlbmRpbmdUYXJnZXQoKX19LG1vdW50ZWQoKXtkLmhlbHBkZXNrLm5hdmlnYXRpb24uY3VycmVudC5vcmlnaW4ubWV0aG9kfHxkLmhlbHBkZXNrLnNob3dTZWFyY2goKX0sbWV0aG9kczp7c2VhcmNoS2V5ZG93bkZyb21QYXJlbnQoZSl7dGhpcy5vbktleWRvd24oZSl9LHJlc3VsdFRvVXJsKGUsYyl7bGV0IHQ9ZGxbZV18fG51bGw7cmV0dXJuIG51bGwhPT10P2Ake2QuaGVscGRlc2suc2VhcmNoLnVybH0ke2MubG9jYWxlfS8ke3R9LyR7Yy5zbHVnfS9gOm51bGx9LHJlc3VsdFRvU3RhdGlzdGljcyhlKXtsZXQgYz1udWxsO2lmKCJudW1iZXIiPT10eXBlb2YgZS5hcnRpY2xlcylpZigwPT09ZS5hcnRpY2xlcyljPXIudGV4dCgiY2hhdCIsImNoYXRfaGVscGRlc2tfcmVzdWx0X2FydGljbGVzX25vbmUiKTtlbHNle2xldCB0PTE9PT1lLmFydGljbGVzPyJzaW5ndWxhciI6InBsdXJhbCI7Yz1yLnRleHQoImNoYXQiLGBjaGF0X2hlbHBkZXNrX3Jlc3VsdF9hcnRpY2xlc18ke3R9YCxbZS5hcnRpY2xlc10pfXJldHVybiBjfSxhcnRpY2xlc0NvdW50VG9TdW1tYXJ5KGU9MCl7cmV0dXJuIDE9PT1lP3RoaXMuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfaGVscGRlc2tfcmVzdWx0X2FydGljbGVzX3Npbmd1bGFyIixbZV0pOnRoaXMuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfaGVscGRlc2tfcmVzdWx0X2FydGljbGVzX3BsdXJhbCIsW2VdKX0sZm9jdXNQZW5kaW5nVGFyZ2V0KCl7dGhpcy5wZW5kaW5nRm9jdXNUYXJnZXQmJkMoKCk9PntsZXQgZT0hMTtzd2l0Y2godGhpcy5wZW5kaW5nRm9jdXNUYXJnZXQpe2Nhc2UibmF2aWdhdGlvbiI6ZT10aGlzLmZvY3VzTmF2aWdhdGlvbigpO2JyZWFrO2Nhc2UicmVzdWx0cyI6ITA9PT1kLmhlbHBkZXNrLnNlYXJjaC5pbml0aWFsaXplZCYmdGhpcy5lbnRpdHlGaWx0ZXJlZFJlc3VsdHMubGVuZ3RoPjAmJihlPXRoaXMuJHJlZnMucmVzdWx0cz8uZm9jdXNGaXJzdFJlc3VsdCgpfHwhMSl9ITA9PT1lJiYodGhpcy5wZW5kaW5nRm9jdXNUYXJnZXQ9bnVsbCl9KX0sZm9jdXNOYXZpZ2F0aW9uKCl7bGV0IGU9dGhpcy4kcmVmcy5yb290Py5jbG9zZXN0KCIuY2MtMW1oOTEiKT8ucXVlcnlTZWxlY3RvcigiLmNjLTFwdnJ3Iik7cmV0dXJuISFlJiYoZS5mb2N1cygpLCEwKX0sb25LZXlkb3duKGUpe3RoaXMuJHJlZnMucmVzdWx0cz8ua2V5ZG93bkZyb21QYXJlbnQoZSl9LG9uU2VhcmNoUmVzdWx0U2VsZWN0KGUpe2xldCBjPWUucmF3UmVzdWx0O3N3aXRjaChlLmVudGl0eSl7Y2FzZSJhcnRpY2xlcyI6dGhpcy5wZW5kaW5nRm9jdXNUYXJnZXQ9Im5hdmlnYXRpb24iLHRoaXMub25TZWFyY2hBcnRpY2xlQ2xpY2soYy5sb2NhbGUsYy5zbHVnLGMudGl0bGUsYy5jYXRlZ29yeSxjLnVwZGF0ZWRfYXQpO2JyZWFrO2Nhc2UiY2F0ZWdvcmllcyI6dGhpcy5wZW5kaW5nRm9jdXNUYXJnZXQ9InJlc3VsdHMiLHZvaWQgMCE9PWMuc2VjdGlvbl9pZD90aGlzLm9uU2VhcmNoU2VjdGlvbkNsaWNrKGMubG9jYWxlLGMuY2F0ZWdvcnlfaWQsYy5zZWN0aW9uX2lkLGMubmFtZSxjLmRlc2NyaXB0aW9uLGMuYXJ0aWNsZXMpOnRoaXMub25TZWFyY2hDYXRlZ29yeUNsaWNrKGMubG9jYWxlLGMuY2F0ZWdvcnlfaWQsYy5uYW1lLGMuZGVzY3JpcHRpb24sYy5zZWN0aW9ucyxjLmFydGljbGVzKX10aGlzLmZvY3VzUGVuZGluZ1RhcmdldCgpfSxvblNlYXJjaEFydGljbGVDbGljayhlLGMsdCxhPW51bGwscz1udWxsKXtkLmhlbHBkZXNrLnNob3dBcnRpY2xlKGUsYyx0LGEscyl9LG9uU2VhcmNoQ2F0ZWdvcnlDbGljayhlLGMsdCxhPW51bGwscz1bXSxsPTApe2xldCBuO249MT09PXMubGVuZ3RoP3RoaXMuYXJ0aWNsZXNDb3VudFRvU3VtbWFyeShsKTp0aGlzLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2hlbHBkZXNrX3Jlc3VsdF9hcnRpY2xlc19pbl9zZWN0aW9ucyIsW2wscy5sZW5ndGhdKSxkLmhlbHBkZXNrLnNob3dDYXRlZ29yeShlLGMsdCxhLG4scyl9LG9uU2VhcmNoU2VjdGlvbkNsaWNrKGUsYyx0LGEscz1udWxsLGw9MCl7bGV0IG49dGhpcy5hcnRpY2xlc0NvdW50VG9TdW1tYXJ5KGwpO2QuaGVscGRlc2suc2hvd1NlY3Rpb24oZSxjLHQsYSxzLG4pfX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtjb25zdCBuPXYoImNoYXQtY29udGVudC1yZXN1bHQtbGlzdCIpO3JldHVybiBBKCksRigiZGl2Iix7Y2xhc3M6ImNjLTF2enFzIixvbktleWRvd246Y1sxXXx8KGNbMV09KC4uLmMpPT5lLm9uS2V5ZG93biYmZS5vbktleWRvd24oLi4uYykpLHJlZjoicm9vdCIsdGFiaW5kZXg6Ii0xIn0sW2UuJHN0b3JlLmhlbHBkZXNrLnZpZXdlci51cmw/KEEoKSxGKCJkaXYiLGVsLFt6KCJkaXYiLGNsLFt6KCJpZnJhbWUiLHtjbGFzczoiY2MtMTNydmgiLG9uTG9hZDpjWzBdfHwoY1swXT1jPT5lLiRzdG9yZS5oZWxwZGVzay52aWV3ZXIubG9hZGVkPSEwKSxzcmM6ZS4kc3RvcmUuaGVscGRlc2sudmlld2VyLnVybCsicmVhZGVyL2NvbXBhY3QvIix0eXBlOiJ0ZXh0L2h0bWwiLGZyYW1lYm9yZGVyOiIwIn0sbnVsbCw0MCx0bCldKSxlLiRzdG9yZS5oZWxwZGVzay52aWV3ZXIubG9hZGVkP1ooIiIsITApOihBKCksRigiZGl2IixhbCxbLi4uY1syXXx8KGNbMl09W3ooInNwYW4iLHtjbGFzczoiY2MtMW9ibXoifSxbeigic3BhbiIse2NsYXNzOiJjYy0yNHk1cyBjYy0xbHdreiIsImRhdGEtdGludCI6InRoZW1lIn0pXSwtMSldKV0pKV0pKTooQSgpLEYoImRpdiIsc2wsW3ooImRpdiIsbGwsW2UuJHN0b3JlLmhlbHBkZXNrLnNlYXJjaC5pbml0aWFsaXplZD9lLmVudGl0eUZpbHRlcmVkUmVzdWx0cy5sZW5ndGg+MD8oQSgpLFUobix7a2V5OjEsY2xhc3M6ImNjLWljdGhwIixvblNlbGVjdDplLm9uU2VhcmNoUmVzdWx0U2VsZWN0LHJlc3VsdHM6ZS5lbnRpdHlGaWx0ZXJlZFJlc3VsdHMsdHlwZToiaGVscGRlc2siLHJlZjoicmVzdWx0cyJ9LG51bGwsOCxbIm9uU2VsZWN0IiwicmVzdWx0cyJdKSk6ZS4kc3RvcmUuaGVscGRlc2suc2VhcmNoLmFjdGl2ZT8oQSgpLEYoImRpdiIsaWwsW3ooInNwYW4iLG9sLGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9oZWxwZGVza19zZWFyY2hfZW1wdHkiKSksMSldKSk6KEEoKSxGKCJkaXYiLHJsLFt6KCJzcGFuIixobCxmKGUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfaGVscGRlc2tfc2VhcmNoX3VucG9wdWxhdGVkIikpLDEpXSkpOihBKCksRigiZGl2IixubCxbLi4uY1szXXx8KGNbM109W3ooInNwYW4iLHtjbGFzczoiY2MtMW81cGcgY2MtMWx3a3oiLCJkYXRhLXRpbnQiOiJ0aGVtZSJ9LG51bGwsLTEpXSldKSldKV0pKV0sNTQ0KX1dXSksdWw9e2tleTowLGNsYXNzOiJjYy1uNGxmbiJ9O3ZhciBtbD11KHt9LFtbInJlbmRlciIsZnVuY3Rpb24oZSxjKXtyZXR1cm4gQSgpLEYoImRpdiIse2NsYXNzOm0oWyJjYy1lODI1cSIseyJjYy1lODI1cS0tbG9hZGluZyI6ZS4kc3RvcmUub3ZlcmxheS5pc19sb2FkaW5nfV0pfSxbZS4kc3RvcmUub3ZlcmxheS5pc19sb2FkaW5nPyhBKCksRigiZGl2Iix1bCxbLi4uY1swXXx8KGNbMF09W3ooImRpdiIse2NsYXNzOiJjYy1mMjNnaCBjYy0xbHdreiIsImRhdGEtdGludCI6InRoZW1lIn0sbnVsbCwtMSldKV0pKTpaKCIiLCEwKSxjWzFdfHwoY1sxXT16KCJkaXYiLHtjbGFzczoiY2MtaWhwYmUgY2MtMTVtbjYifSxudWxsLC0xKSldLDIpfV1dKSxmbD17a2V5OjMsY2xhc3M6ImNjLXN4bXd6In07dmFyIGtsPXUocSh7Y29tcG9uZW50czp7Q2hhdENvbnRlbnRIb21lOnN0LENoYXRDb250ZW50Q29udmVyc2F0aW9uczp1dCxDaGF0Q29udGVudENvbnZlcnNhdGlvbjpYcyxDaGF0Q29udGVudEhlbHBkZXNrOnBsLENoYXRDb250ZW50U2VhcmNoOm1sfSxtaXhpbnM6W0VdLG1ldGhvZHM6e29uQ29udGVudENsaWNrKGMpe2xldCB0PWMudGFyZ2V0O3QmJiEwIT09dC5jbGFzc0xpc3QuY29udGFpbnMoImNjLTNyZmdjIikmJiF0LmNsb3Nlc3QoIi5jYy0zcmZnYyIpJiYoZC5iYXNlLmlzX2Z1bGxfdmlld3x8aC5mb2N1c09uRm9yZWdyb3VuZCgpKSwhMD09PWQuY2hhdC5yZWNvbm5lY3RfaW5hY3RpdmUmJmUoKS5FdmVudC50cmlnZ2VySW50ZXJhY3RlZCghMCksZC5jaGF0LnRvZ2dsZUNoYW5uZWxEcm9wZG93bighMSl9LG9uV2hlZWxDaGF0KGUpeyJURCIhPT1lLnRhcmdldC50YWdOYW1lJiYiVEgiIT09ZS50YXJnZXQudGFnTmFtZSYmdGhpcy51bndpbmRXaGVlbChlLCJjYy0xdTA3eSIpfSxvbldoZWVsSGVscGRlc2soZSl7dGhpcy51bndpbmRXaGVlbChlLCJjYy1pY3RocCIpfX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtjb25zdCBuPXYoImNoYXQtY29udGVudC1ob21lIiksaT12KCJjaGF0LWNvbnRlbnQtY29udmVyc2F0aW9uIiksbz12KCJjaGF0LWNvbnRlbnQtY29udmVyc2F0aW9ucyIpLHI9digiY2hhdC1jb250ZW50LWhlbHBkZXNrIiksaD12KCJjaGF0LWNvbnRlbnQtc2VhcmNoIik7cmV0dXJuIEEoKSxGKCJkaXYiLHtjbGFzczoiY2MtMWdxZTciLG9uQ2xpY2s6Y1szXXx8KGNbM109KC4uLmMpPT5lLm9uQ29udGVudENsaWNrJiZlLm9uQ29udGVudENsaWNrKC4uLmMpKX0sWyJob21lIj09PWUuJHN0b3JlLmNoYXQubW9kZT8oQSgpLEYoImRpdiIse2tleTowLGNsYXNzOiJjYy0xMzRpMSIsb25XaGVlbDpjWzBdfHwoY1swXT0oLi4uYyk9PmUub25XaGVlbENoYXQmJmUub25XaGVlbENoYXQoLi4uYykpfSxbeShuKV0sMzIpKToiY2hhdCI9PT1lLiRzdG9yZS5jaGF0Lm1vZGU/KEEoKSxGKCJkaXYiLHtrZXk6MSxjbGFzczoiY2MtMTJ6aWMiLG9uV2hlZWw6Y1sxXXx8KGNbMV09KC4uLmMpPT5lLm9uV2hlZWxDaGF0JiZlLm9uV2hlZWxDaGF0KC4uLmMpKX0sW2UuJHN0b3JlLmNoYXQuY29udmVyc2F0aW9ucy5jdXJyZW50X3Nlc3Npb25faWQ/KEEoKSxVKGkse2tleTowfSkpOihBKCksVShvLHtrZXk6MX0pKV0sMzIpKToiaGVscGRlc2siPT09ZS4kc3RvcmUuY2hhdC5tb2RlPyhBKCksRigiZGl2Iix7a2V5OjIsY2xhc3M6ImNjLTFlOXp3IixvbldoZWVsOmNbMl18fChjWzJdPSguLi5jKT0+ZS5vbldoZWVsSGVscGRlc2smJmUub25XaGVlbEhlbHBkZXNrKC4uLmMpKX0sW3kocix7cmVmOiJjaGF0X2NvbnRlbnRfaGVscGRlc2sifSxudWxsLDUxMildLDMyKSk6InNlYXJjaCI9PT1lLiRzdG9yZS5jaGF0Lm1vZGU/KEEoKSxGKCJkaXYiLGZsLFt5KGgpXSkpOlooIiIsITApXSl9XV0pLHlsPXtjbGFzczoiY2MtYXc2dWMifSxfbD17Y2xhc3M6ImNjLTIyZHVqIn0sdmw9e2NsYXNzOiJjYy12NXNqZyBjYy0xMGNxcyJ9O3ZhciBnbD11KHEoe3Byb3BzOntlbmFibGVkOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX19LGVtaXRzOlsic2V0RHJvcFpvbmUiXSxtZXRob2RzOntvbkRyb3AoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksZS5kYXRhVHJhbnNmZXI/LmZpbGVzJiZlLmRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGg+MCYmZC5jaGF0RmlsZS5oYW5kbGVGaWxlQ2hhbmdlKGUuZGF0YVRyYW5zZmVyLmZpbGVzKSx0aGlzLiRlbWl0KCJzZXREcm9wWm9uZSIsITEpfSxvbkRyYWdsZWF2ZShlKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLiRlbWl0KCJzZXREcm9wWm9uZSIsITEpfX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtyZXR1cm4iY2hhdCI9PT1lLiRzdG9yZS5jaGF0Lm1vZGU/KEEoKSxGKCJkaXYiLHtrZXk6MCxjbGFzczptKFsiY2MtMTI5a3MiLHsiY2MtMTI5a3MtLWVuYWJsZWQiOmUuZW5hYmxlZCwiY2MtMTI5a3MtLWhhcy1icmFuZGluZyI6ZS4kc3RvcmUud2Vic2l0ZS5zaG93X2JyYW5kaW5nJiZlLiRzdG9yZS5vdmVybGF5LmJyYW5kaW5nX2xpbmt9XSl9LFt6KCJkaXYiLHtjbGFzczoiY2MtczRpdHIiLG9uRHJvcDpjWzBdfHwoY1swXT0oLi4uYyk9PmUub25Ecm9wJiZlLm9uRHJvcCguLi5jKSksb25EcmFnbGVhdmU6Y1sxXXx8KGNbMV09KC4uLmMpPT5lLm9uRHJhZ2xlYXZlJiZlLm9uRHJhZ2xlYXZlKC4uLmMpKX0sbnVsbCwzMikseigiZGl2Iix5bCxbeigiZGl2IixfbCxbY1syXXx8KGNbMl09eigiZGl2Iix7Y2xhc3M6ImNjLWFwcDB6In0sbnVsbCwtMSkpLHooImRpdiIsdmwsZihlLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2Zvcm1fYXR0YWNoX3Rvb2x0aXAiKSksMSldKV0pXSwyKSk6WigiIiwhMCl9XV0pLGJsPVsiaHJlZiJdLENsPXtrZXk6MCxjbGFzczoiY2MtMWY4cnUgY2MtMWY4cnUtLXByZWZpeCBjYy0xaWNyaiJ9LHdsPXtjbGFzczoiY2MtMWY4cnUgY2MtMWY4cnUtLW5hbWUgY2MtMTBjcXMifTt2YXIgeGw9dShxKHtwcm9wczp7Y29udGV4dDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiY2hhdCIsdmFsaWRhdG9yOmU9PlsiY2hhdCIsIm92ZXJsYXkiXS5pbmNsdWRlcyhlKX19LGNvbXB1dGVkOnthY3R1YWxCcmFuZE5hbWUoKXtyZXR1cm4iY2hhdCI9PT10aGlzLmNvbnRleHQmJnRoaXMuaXNBZ2VudEVuYWJsZWQ/Ikh1Z28iOiJDcmlzcCJ9LGFjdHVhbEJyYW5kUHJlZml4KCl7aWYoIXRoaXMuaGlkZVBvd2VyZWRCeVByZWZpeClzd2l0Y2godGhpcy5jb250ZXh0KXtjYXNlImNoYXQiOnJldHVybiB0aGlzLmlzQWdlbnRFbmFibGVkP3IudGV4dCgiY2hhdCIsImNoYXRfYnJhbmRfd2F0ZXJtYXJrX3ByZWZpeF9odWdvIik6ci50ZXh0KCJjaGF0IiwiY2hhdF9icmFuZF93YXRlcm1hcmtfcHJlZml4X2NyaXNwIik7Y2FzZSJvdmVybGF5IjpyZXR1cm4gci50ZXh0KCJzZWFyY2giLCJicmFuZF93YXRlcm1hcmtfcHJlZml4Iil9cmV0dXJuIG51bGx9LGFjdHVhbEJyYW5kaW5nTGluaygpe3N3aXRjaCh0aGlzLmNvbnRleHQpe2Nhc2UiY2hhdCI6cmV0dXJuIGQuY2hhdC5icmFuZGluZ19saW5rcz9kLmNoYXQuYnJhbmRpbmdfbGlua3NbZC5jaGF0LmN1cnJlbnRfc3RhdHVzX21hcmtlcl18fGQuY2hhdC5icmFuZGluZ19saW5rcy5kZWZhdWx0Om51bGw7Y2FzZSJvdmVybGF5IjpyZXR1cm4gZC5vdmVybGF5LmJyYW5kaW5nX2xpbmt8fG51bGw7ZGVmYXVsdDpyZXR1cm4gbnVsbH19LGFjdHVhbFN0YXR1c01hcmtlcigpe3N3aXRjaCh0aGlzLmNvbnRleHQpe2Nhc2UiY2hhdCI6cmV0dXJuIGQuY2hhdC5jdXJyZW50X3N0YXR1c19tYXJrZXI7Y2FzZSJvdmVybGF5IjpyZXR1cm4ib3ZlcmxheSJ9cmV0dXJuIm5vbmUifSxoaWRlUG93ZXJlZEJ5UHJlZml4OigpPT4hZC5iYXNlLmlzX3NtYWxsX3ZpZXcmJmQuYmFzZS5pc19mdWxsX3ZpZXcsaXNBZ2VudEVuYWJsZWQ6KCk9PiJhZ2VudCI9PT1kLmNoYXQuY3VycmVudF9zdGF0dXNfbWFya2VyfX0pLFtbInJlbmRlciIsZnVuY3Rpb24oZSxjLHQsYSxzLGwpe2NvbnN0IG49ZygiY3Jpc3AtbGluay10YXJnZXQiKTtyZXR1cm4gZS4kc3RvcmUud2Vic2l0ZS5zaG93X2JyYW5kaW5nJiZlLmFjdHVhbEJyYW5kaW5nTGluaz8oQSgpLEYoImRpdiIse2tleTowLGNsYXNzOm0oWyJjYy12azU0MCIsImNjLXZrNTQwLS1zdGF0dXMtIitlLmFjdHVhbFN0YXR1c01hcmtlcl0pfSxbRygoQSgpLEYoImEiLHtjbGFzczoiY2MtMWprdTMiLGhyZWY6ZS5hY3R1YWxCcmFuZGluZ0xpbmsscmVsOiJub29wZW5lciBub3JlZmVycmVyIG5vZm9sbG93In0sW2UuYWN0dWFsQnJhbmRQcmVmaXg/KEEoKSxGKCJzcGFuIixDbCxmKGUuYWN0dWFsQnJhbmRQcmVmaXgpLDEpKTpaKCIiLCEwKSxjWzBdfHwoY1swXT16KCJzcGFuIix7Y2xhc3M6ImNjLThwcTd1In0sbnVsbCwtMSkpLHooInNwYW4iLHdsLGYoZS5hY3R1YWxCcmFuZE5hbWUpLDEpLGNbMV18fChjWzFdPXooInNwYW4iLHtjbGFzczoiY2MtMTNmdHgifSxudWxsLC0xKSldLDgsYmwpKSxbW25dXSldLDIpKTpaKCIiLCEwKX1dXSksamw9e2tleToxLGNsYXNzOiJjYy1ueHh0ZCJ9LHFsPXtjbGFzczoiY2MtcDF5dTUifSx6bD17Y2xhc3M6ImNjLXZ6aTFmIGNjLTEwY3FzIn0sU2w9e2NsYXNzOiJjYy1qanhyMyBjYy0xaWNyaiJ9LEZsPXtrZXk6MixjbGFzczoiY2MtMW80bjUgY2MtMWx3a3oiLCJkYXRhLXRpbnQiOiJ0aGVtZSJ9LFBsPXtrZXk6MyxjbGFzczoiY2MtMWs5d3AifSxUbD1bImFyaWEtbGFiZWwiXTt2YXIgQmw9dShxKHtwcm9wczp7ZXJyb3I6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfSxmaWxlOnt0eXBlOkZpbGUscmVxdWlyZWQ6ITB9LHVwbG9hZGluZzp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9fSxlbWl0czpbImNsaWNrIiwiZGVsZXRlIl0sZGF0YTooKT0+KHtkYXRhVXJsOm51bGx9KSxjb21wdXRlZDp7ZXh0ZW5zaW9uKCl7bGV0IGU9dGhpcy5maWxlLm5hbWUubWF0Y2goL1wuKFswLTlhLXpdKykkL2kpO3JldHVybiBlPy5bMV0/ZVsxXS50b1VwcGVyQ2FzZSgpOiJGSUxFIn0sbmFtZSgpe3JldHVybiB0aGlzLmZpbGUubmFtZX0sdHlwZSgpe3JldHVybiB0aGlzLiRDT05GSUcuRklMRV9QUkVWSUVXLklNQUdFLmluY2x1ZGVzKHRoaXMuZmlsZS50eXBlKT8iaW1hZ2UiOiJmaWxlIn19LHdhdGNoOntmaWxlKCl7dGhpcy5yZXZva2VEYXRhVXJsKCksdGhpcy5jcmVhdGVEYXRhVXJsKCl9fSxtb3VudGVkKCl7dGhpcy5jcmVhdGVEYXRhVXJsKCl9LGJlZm9yZVVubW91bnQoKXt0aGlzLnJldm9rZURhdGFVcmwoKX0sbWV0aG9kczp7Y3JlYXRlRGF0YVVybCgpeyJpbWFnZSI9PT10aGlzLnR5cGUmJih0aGlzLmRhdGFVcmw9VVJMLmNyZWF0ZU9iamVjdFVSTCh0aGlzLmZpbGUpKX0scmV2b2tlRGF0YVVybCgpe3RoaXMuZGF0YVVybCYmKFVSTC5yZXZva2VPYmplY3RVUkwodGhpcy5kYXRhVXJsKSx0aGlzLmRhdGFVcmw9bnVsbCl9LG9uRmlsZUNsaWNrKCl7ImltYWdlIiE9PXRoaXMudHlwZXx8dGhpcy51cGxvYWRpbmd8fHRoaXMuJGVtaXQoImNsaWNrIix0aGlzLmZpbGUpfSxvbkRlbGV0ZUNsaWNrKCl7dGhpcy4kZW1pdCgiZGVsZXRlIix0aGlzLmZpbGUpfX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtjb25zdCBuPWcoImNyaXNwLWFjY2Vzc2liaWxpdHkiKTtyZXR1cm4gQSgpLEYoImRpdiIse2NsYXNzOm0oWyJjYy1vZ21mbCIsImNjLW9nbWZsLS0iK2UudHlwZSx7ImNjLW9nbWZsLS11cGxvYWRpbmciOmUudXBsb2FkaW5nLCJjYy1vZ21mbC0tZXJyb3IiOmUuZXJyb3J9XSl9LFsiaW1hZ2UiPT09ZS50eXBlPyhBKCksRigic3BhbiIse2tleTowLGNsYXNzOiJjYy12MjB0diIsb25DbGljazpjWzBdfHwoY1swXT0oLi4uYyk9PmUub25GaWxlQ2xpY2smJmUub25GaWxlQ2xpY2soLi4uYykpLHN0eWxlOmsoe2JhY2tncm91bmRJbWFnZToidXJsKCIrZS5kYXRhVXJsKyIpIn0pfSxbLi4uY1syXXx8KGNbMl09W3ooInNwYW4iLHtjbGFzczoiY2Mtc2E2cXMifSxudWxsLC0xKV0pXSw0KSk6KEEoKSxGKCJkaXYiLGpsLFtjWzNdfHwoY1szXT16KCJkaXYiLHtjbGFzczoiY2MtMXNkbzMifSxudWxsLC0xKSkseigiZGl2IixxbCxbeigic3BhbiIsemwsZihlLm5hbWUpLDEpLHooInNwYW4iLFNsLGYoZS5leHRlbnNpb24pLDEpXSldKSksZS51cGxvYWRpbmc/KEEoKSxGKCJzcGFuIixGbCkpOlooIiIsITApLGUuZXJyb3I/KEEoKSxGKCJzcGFuIixQbCkpOlooIiIsITApLEcoeigic3BhbiIse2NsYXNzOiJjYy0xOXhpOSIsb25DbGljazpjWzFdfHwoY1sxXT1EKCguLi5jKT0+ZS5vbkRlbGV0ZUNsaWNrJiZlLm9uRGVsZXRlQ2xpY2soLi4uYyksWyJzdG9wIl0pKSwiYXJpYS1sYWJlbCI6ZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9mb3JtX2F0dGFjaF9yZW1vdmUiKX0sbnVsbCw4LFRsKSxbW24se3JvbGU6ImJ1dHRvbiJ9XV0pXSwyKX1dXSksSWw9e2tleTowLGNsYXNzOiJjYy14dmE4ayJ9O3ZhciBNbD11KHEoe2NvbXBvbmVudHM6e0NoYXRGb290ZXJDb21wb3NlckZpbGU6Qmx9LG1ldGhvZHM6e2dldFByZXZpZXdUeXBlKGUpe3JldHVybiB0aGlzLiRDT05GSUcuRklMRV9QUkVWSUVXLklNQUdFLmluY2x1ZGVzKGUpPyJpbWFnZSI6dGhpcy4kQ09ORklHLkZJTEVfUFJFVklFVy5WSURFTy5pbmNsdWRlcyhlKT8idmlkZW8iOm51bGx9LG9uRmlsZUNsaWNrKGUpe2xldCBjPWQuY2hhdEZpbGUuZmlsZXMuZmluZChjPT5jLmZpbGU9PT1lKTtpZihjPy5wYXJhbXM/LnJlc291cmNlKXtsZXQgZT10aGlzLmdldFByZXZpZXdUeXBlKGMuZmlsZS50eXBlKTtlP2FhLm1hZ25pZnkoZSxjLnBhcmFtcy5yZXNvdXJjZSxjLmZpbGUubmFtZSxudWxsLCExKTp3aW5kb3cub3BlbihjLnBhcmFtcy5yZXNvdXJjZSwiX2JsYW5rIil9fSxvbkZpbGVEZWxldGUoZSl7ZC5jaGF0RmlsZS5yZW1vdmVGaWxlKGUpfX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtjb25zdCBuPXYoImNoYXQtZm9vdGVyLWNvbXBvc2VyLWZpbGUiKTtyZXR1cm4gZS4kc3RvcmUuY2hhdEZpbGUuZmlsZXMubGVuZ3RoPjA/KEEoKSxGKCJkaXYiLElsLFsoQSghMCksRihJLG51bGwsYihlLiRzdG9yZS5jaGF0RmlsZS5maWxlcywoYyx0KT0+KEEoKSxVKG4se29uQ2xpY2s6ZS5vbkZpbGVDbGljayxvbkRlbGV0ZTplLm9uRmlsZURlbGV0ZSxrZXk6YGZpbGVfJHt0fWAsZmlsZTpjLmZpbGUsdXBsb2FkaW5nOmMudXBsb2FkaW5nLGVycm9yOmMuZXJyb3J9LG51bGwsOCxbIm9uQ2xpY2siLCJvbkRlbGV0ZSIsImZpbGUiLCJ1cGxvYWRpbmciLCJlcnJvciJdKSkpLDEyOCkpXSkpOlooIiIsITApfV1dKSwkbD17Y2xhc3M6ImNjLTF1endjIn0sQWw9e2NsYXNzOiJjYy1zaTFmbSIsbmFtZToiZm9ybV9tZXNzYWdlIixhY3Rpb246IiMiLG1ldGhvZDoicG9zdCJ9LExsPVsiZGlzYWJsZWQiLCJwbGFjZWhvbGRlciIsImFyaWEtbGFiZWwiXTt2YXIgRGw9NzAsRWw9NzUsVmw9dShxKHtwcm9wczp7bG9ja2VkOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX19LGVtaXRzOlsiYmx1ciIsImZvY3VzIiwic3VibWl0Il0sZGF0YTooKT0+KHt0ZXh0YXJlYVByb3BhZ2F0ZURlZmVyVGltZW91dDpudWxsfSksY29tcHV0ZWQ6e2Zvcm1GaWVsZExhYmVsKCl7bGV0IGU9ImNoYXRfZm9ybV9maWVsZF8iKyhkLmNvbW1vbi5oYXNfZm9ybV9kaXNhYmxlZD8iZGlzYWJsZWQiOiJtZXNzYWdlIik7cmV0dXJuIHRoaXMuJHJlbmRlci5fZSgiY2hhdCIsZSl9fSx3YXRjaDp7IiRzdG9yZS5jaGF0Lm1lc3NhZ2VfZmllbGRfdmFsdWUiOntpbW1lZGlhdGU6ITAsaGFuZGxlcigpe0MoKCk9Pnt0aGlzLmFkanVzdFRleHRhcmVhSGVpZ2h0KCl9KX19fSxtb3VudGVkKCl7Tyh0aGlzLiRyZWZzLnRleHRhcmVhKX0sYmVmb3JlVW5tb3VudCgpe08uZGVzdHJveSh0aGlzLiRyZWZzLnRleHRhcmVhKX0sbWV0aG9kczp7Zm9jdXNGcm9tUGFyZW50KCl7dGhpcy4kcmVmcy50ZXh0YXJlYS5mb2N1cygpfSxhZGp1c3RUZXh0YXJlYUhlaWdodCgpe08udXBkYXRlKHRoaXMuJHJlZnMudGV4dGFyZWEpfSxoYXNWaXJ0dWFsS2V5Ym9hcmQ6KCk9PiEhKHdpbmRvdy52aXN1YWxWaWV3cG9ydCYmd2luZG93LmlubmVySGVpZ2h0LXdpbmRvdy52aXN1YWxWaWV3cG9ydC5oZWlnaHQ+MTUwKXx8ITA9PT1kLmJhc2UuaXNfbW9iaWxlX3ZpZXcsdHJpZ2dlcktleVByZXNzZWQoZSl7bGV0IGM9IiI7KG51bGw9PT1lfHwxMyE9PWUua2V5Q29kZXx8ZS5zaGlmdEtleSkmJihjPWQuY2hhdC5tZXNzYWdlX2ZpZWxkX3ZhbHVlLHRoaXMucHJvcGFnYXRlRXZlbnREZWZlcigpKSxzLk1lc3NhZ2Uuc2VuZE1lc3NhZ2VDb21wb3NlKGM/InN0YXJ0Ijoic3RvcCIsY3x8bnVsbCl9LHByb3BhZ2F0ZUV2ZW50RGVmZXIoKXtudWxsIT09dGhpcy50ZXh0YXJlYVByb3BhZ2F0ZURlZmVyVGltZW91dCYmbC5jbGVhclRpbWVvdXQodGhpcy50ZXh0YXJlYVByb3BhZ2F0ZURlZmVyVGltZW91dCksdGhpcy50ZXh0YXJlYVByb3BhZ2F0ZURlZmVyVGltZW91dD1sLnNldFRpbWVvdXQoKCk9Pnt0aGlzLnRleHRhcmVhUHJvcGFnYXRlRGVmZXJUaW1lb3V0PW51bGwsZC5zdGF0ZS5wcm9wYWdhdGUoInRleHRhcmVhIixkLmNoYXQubWVzc2FnZV9maWVsZF92YWx1ZSxkLmJhc2Uuc2Vzc2lvbl9pZCl9LDFlMyl9LG9uVGV4dGFyZWFGb2N1cyhlKXt0aGlzLiRlbWl0KCJmb2N1cyIpLCEwPT09ZC5iYXNlLmlzX21vYmlsZV92aWV3JiYoZS50YXJnZXQuc3R5bGUudHJhbnNmb3JtPSJUcmFuc2xhdGVZKC0xMDAwMHB4KSIsc2V0VGltZW91dCgoKT0+e2UudGFyZ2V0LnN0eWxlLnRyYW5zZm9ybT0ibm9uZSJ9LDApKX0sb25UZXh0YXJlYUJsdXIoKXt0aGlzLiRlbWl0KCJibHVyIil9LG9uVGV4dGFyZWFLZXl1cChlKXt0aGlzLnRyaWdnZXJLZXlQcmVzc2VkKGUpfSxvblRleHRhcmVhS2V5ZG93bihjKXtpZigxMz09PWMua2V5Q29kZSYmIWMuc2hpZnRLZXkmJiExPT09dGhpcy5oYXNWaXJ0dWFsS2V5Ym9hcmQoKSlyZXR1cm4gYy5wcmV2ZW50RGVmYXVsdCgpLHZvaWQgdGhpcy4kZW1pdCgic3VibWl0Iik7aWYoKGMuY3RybEtleXx8Yy5tZXRhS2V5KSYmW0RsLEVsXS5pbmNsdWRlcyhjLmtleUNvZGUpKXtpZighMD09PWQud2Vic2l0ZT8uY2hhdD8ub3ZlcmxheV9zZWFyY2gpcmV0dXJuIGMucHJldmVudERlZmF1bHQoKSx2b2lkIGQub3ZlcmxheS5vcGVuKCk7aWYoITA9PT1kLmhlbHBkZXNrLnNldHRpbmdzX3NlYXJjaClyZXR1cm4gYy5wcmV2ZW50RGVmYXVsdCgpLHZvaWQgZC5oZWxwZGVzay5vcGVuKCEwKX1lKCkuRXZlbnQudHJpZ2dlckludGVyYWN0ZWQoKSx0aGlzLnRyaWdnZXJLZXlQcmVzc2VkKGMpfSxvblRleHRhcmVhUGFzdGUoZSl7bGV0IGM9KGUuY2xpcGJvYXJkRGF0YXx8ZS5vcmlnaW5hbEV2ZW50LmNsaXBib2FyZERhdGEpPy5pdGVtc3x8W107aWYoITA9PT1kLndlYnNpdGUuY2hhdC5maWxlX3RyYW5zZmVyJiZjLmxlbmd0aD4wKXtsZXQgdD1bXTtmb3IobGV0IGU9MDtlPGMubGVuZ3RoO2UrKylpZigiZmlsZSI9PT1jW2VdLmtpbmQpe2xldCBhPWNbZV0uZ2V0QXNGaWxlKCk7YT8udHlwZSYmYS50eXBlLmluY2x1ZGVzKCJpbWFnZS8iKSYmdC5wdXNoKGEpfXQubGVuZ3RoPjAmJihlLnByZXZlbnREZWZhdWx0KCksZC5jaGF0RmlsZS5oYW5kbGVGaWxlQ2hhbmdlKHQpKX1zZXRUaW1lb3V0KCgpPT57dGhpcy50cmlnZ2VyS2V5UHJlc3NlZChudWxsKX0sMCl9fX0pLFtbInJlbmRlciIsZnVuY3Rpb24oZSxjLHQsYSxzLGwpe2NvbnN0IG49ZygiY3Jpc3AtZm9jdXMtZm9yZWdyb3VuZCIpO3JldHVybiBBKCksRigiZGl2IiwkbCxbeigiZm9ybSIsQWwsW0coeigidGV4dGFyZWEiLHtjbGFzczoiY2MtN2p0d3QgY2MtM3JmZ2MgY2MtMWljcmoiLCJvblVwZGF0ZTptb2RlbFZhbHVlIjpjWzBdfHwoY1swXT1jPT5lLiRzdG9yZS5jaGF0Lm1lc3NhZ2VfZmllbGRfdmFsdWU9Yyksb25Gb2N1czpjWzFdfHwoY1sxXT0oLi4uYyk9PmUub25UZXh0YXJlYUZvY3VzJiZlLm9uVGV4dGFyZWFGb2N1cyguLi5jKSksb25CbHVyOmNbMl18fChjWzJdPSguLi5jKT0+ZS5vblRleHRhcmVhQmx1ciYmZS5vblRleHRhcmVhQmx1ciguLi5jKSksb25LZXl1cDpjWzNdfHwoY1szXT0oLi4uYyk9PmUub25UZXh0YXJlYUtleXVwJiZlLm9uVGV4dGFyZWFLZXl1cCguLi5jKSksb25LZXlkb3duOmNbNF18fChjWzRdPSguLi5jKT0+ZS5vblRleHRhcmVhS2V5ZG93biYmZS5vblRleHRhcmVhS2V5ZG93biguLi5jKSksb25QYXN0ZTpjWzVdfHwoY1s1XT0oLi4uYyk9PmUub25UZXh0YXJlYVBhc3RlJiZlLm9uVGV4dGFyZWFQYXN0ZSguLi5jKSksZGlzYWJsZWQ6ZS5sb2NrZWQscGxhY2Vob2xkZXI6ZS5mb3JtRmllbGRMYWJlbCwiYXJpYS1sYWJlbCI6ZS5mb3JtRmllbGRMYWJlbCxuYW1lOiJtZXNzYWdlIixyb3dzOiIxIixkaXI6ImF1dG8iLGF1dG9jYXBpdGFsaXplOiJvZmYiLGF1dG9jb21wbGV0ZToib2ZmIiwiYXJpYS1jb250cm9scyI6ImNjLTF3Yzl0Iix0YWI6IjAiLHRhYmluZGV4OiIwIixyZWY6InRleHRhcmVhIn0sbnVsbCw0MCxMbCksW1tuXSxbSCxlLiRzdG9yZS5jaGF0Lm1lc3NhZ2VfZmllbGRfdmFsdWUsdm9pZCAwLHt0cmltOiEwfV1dKV0pXSl9XV0pLEhsPVsiYXJpYS1sYWJlbCJdO3ZhciBSbD11KHEoe3Byb3BzOntjYW5TZW5kOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0sbG9ja2VkOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX19LGVtaXRzOlsic3VibWl0Il0sbWV0aG9kczp7b25DbGljayhlKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNhblNlbmQmJnRoaXMuJGVtaXQoInN1Ym1pdCIpfX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtjb25zdCBuPWcoImNyaXNwLWFjY2Vzc2liaWxpdHkiKTtyZXR1cm4gQSgpLEYoImRpdiIse2NsYXNzOm0oWyJjYy14N3VhbSIseyJjYy14N3VhbS0tbG9ja2VkIjplLmxvY2tlZH1dKX0sW0coKEEoKSxGKCJzcGFuIix7b25DbGljazpjWzBdfHwoY1swXT0oLi4uYyk9PmUub25DbGljayYmZS5vbkNsaWNrKC4uLmMpKSwiYXJpYS1sYWJlbCI6ZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9mb3JtX3NlbmRfaGludCIpLGNsYXNzOm0oWyJjYy0xcXFnYyIseyJjYy0xcXFnYy0tZW5hYmxlZCI6ZS5jYW5TZW5kLCJjYy0xajkwciI6ZS5jYW5TZW5kfV0pfSxbLi4uY1sxXXx8KGNbMV09W3ooInNwYW4iLHtjbGFzczoiY2MtMWxtczMifSxudWxsLC0xKV0pXSwxMCxIbCkpLFtbbix7cm9sZToiYnV0dG9uIn1dXSldLDIpfV1dKSxLbD1bImFyaWEtbGFiZWwiLCJkYXRhLXN0YXRlIl0sT2w9e2NsYXNzOiJjYy0xYndzdiBjYy0xNjUxcSBjYy0xYTl6cSJ9LFVsPXtjbGFzczoiY2MtMWhsMWkgY2MtMWljcmoifSxObD1bImFyaWEtbGFiZWwiLCJkYXRhLXN0YXRlIl0sV2w9e2tleTowLGNsYXNzOiJjYy0xYndzdiBjYy0xNjUxcSBjYy11ZjI0NCJ9LFpsPXtjbGFzczoiY2MtMWhsMWkgY2MtMWljcmoifSxHbD17Y2xhc3M6ImNjLTFmaWgyIn0sUWw9e2tleToxLGNsYXNzOiJjYy0xM3I0eCJ9LFlsPXtrZXk6MCxjbGFzczoiY2MtMTd4M3MgY2MtMTBjcXMifSxKbD17a2V5OjEsY2xhc3M6ImNjLTE3eDNzIGNjLTEwY3FzIn0sWGw9e2tleToyLGNsYXNzOiJjYy0xcmhpcyJ9LGVuPVsiYXJpYS1sYWJlbCIsImRhdGEtc3RhdGUiXSxjbj17a2V5OjAsY2xhc3M6ImNjLTFid3N2IGNjLTE2NTFxIGNjLXVmMjQ0In0sdG49e2NsYXNzOiJjYy0xaGwxaSBjYy0xaWNyaiJ9LGFuPVsiYXJpYS1sYWJlbCIsImRhdGEtc3RhdGUiXSxzbj17Y2xhc3M6ImNjLTFid3N2IGNjLTE2NTFxIGNjLXVmMjQ0In0sbG49e2NsYXNzOiJjYy0xaGwxaSBjYy0xaWNyaiJ9O3ZhciBubj11KHEoe2NvbXBvbmVudHM6e0NoYXRGb290ZXJDb21wb3NlclNlbmQ6Umx9LHByb3BzOntsb2NrZWQ6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfX0sZW1pdHM6WyJzdWJtaXQiXSxjb21wdXRlZDp7Y2FuU2VuZCgpe2xldCBlPSEhZC5jaGF0Lm1lc3NhZ2VfZmllbGRfdmFsdWUsYz1kLmNoYXRGaWxlLmZpbGVzLnNvbWUoZT0+ITAhPT1lLmVycm9yKTtyZXR1cm4gZXx8Y319LG1ldGhvZHM6e29uU21pbGV5Q2xpY2soYyl7aWYoYy5wcmV2ZW50RGVmYXVsdCgpLGMuc3RvcFByb3BhZ2F0aW9uKCksIXRoaXMubG9ja2VkKXtsZXQgYz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuY2MtN2p0d3QiKTtkLmNoYXRQaWNrZXIuYmFja3VwU2VsZWN0aW9uKGMpLGQuY2hhdFBpY2tlci50b2dnbGUoKSwhMCE9PWQuY2hhdFBpY2tlci5pc192aXNpYmxlP2guZm9jdXNPbkZvcmVncm91bmQoKTpkLmNoYXRGZWVkYmFjay5oaWRlKCksITA9PT1kLmNoYXRQaWNrZXIuaXNfdmlzaWJsZSYmZSgpLkV2ZW50LnRyaWdnZXJJbnRlcmFjdGVkKCEwKX19LG9uRmlsZUNvbnRyb2xDbGljayhlKXtlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMubG9ja2VkfHwodGhpcy4kcmVmcy5maWxlX2lucHV0LmNsaWNrKCksYS5vbkludGVyZmFjZUFjdGlvbigidXBsb2FkIix7b3JpZ2luOiJjb21wb3NlciJ9KSl9LG9uRmlsZUlucHV0Q2xpY2soZSl7ZS5zdG9wUHJvcGFnYXRpb24oKX0sb25GaWxlQ2hhbmdlKGMpeyEwPT09ZC53ZWJzaXRlLmNoYXQuZmlsZV90cmFuc2ZlciYmYy50YXJnZXQuZmlsZXM/Lmxlbmd0aD4wJiYoZSgpLkV2ZW50LnRyaWdnZXJJbnRlcmFjdGVkKCEwKSxkLmNoYXRGaWxlLmhhbmRsZUZpbGVDaGFuZ2UoYy50YXJnZXQuZmlsZXMpKX0sb25TcGVlY2hSZWNvcmRDbGljayhjKXtjLnByZXZlbnREZWZhdWx0KCksYy5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmxvY2tlZHx8KGUoKS5FdmVudC50cmlnZ2VySW50ZXJhY3RlZCghMCksZC5jaGF0U3BlZWNoLnJlY29yZCgpLGEub25JbnRlcmZhY2VBY3Rpb24oInNwZWVjaCIse29yaWdpbjoiY29tcG9zZXIiLHN0YXRlOiJyZWNvcmQifSkpfSxvbkZlZWRiYWNrQ2xpY2soYyl7Yy5wcmV2ZW50RGVmYXVsdCgpLGMuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5sb2NrZWR8fChkLmNoYXRGZWVkYmFjay50b2dnbGUoKSwhMD09PWQuY2hhdEZlZWRiYWNrLmlzX3Zpc2libGUmJmUoKS5FdmVudC50cmlnZ2VySW50ZXJhY3RlZCghMCkpfSxvblNlbmRDbGljaygpe3RoaXMubG9ja2VkfHx0aGlzLiRlbWl0KCJzdWJtaXQiKX19fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7Y29uc3Qgbj12KCJjaGF0LWZvb3Rlci1jb21wb3Nlci1zZW5kIiksaT1nKCJjcmlzcC1hY2Nlc3NpYmlsaXR5Iik7cmV0dXJuIEEoKSxGKCJkaXYiLHtjbGFzczptKFsiY2MtdTJ2MnQiLHsiY2MtdTJ2MnQtLWxvY2tlZCI6ZS5sb2NrZWQsImNjLXUydjJ0LS1pcy1mdWxsLXZpZXciOmUuJHN0b3JlLmJhc2UuaXNfZnVsbF92aWV3fV0pfSxbeigiZGl2Iix7Y2xhc3M6bShbImNjLWdyamltIix7ImNjLWdyamltLS1oYXMtcG9wb3ZlciI6ZS4kc3RvcmUuY2hhdFBpY2tlcj8uaXNfdmlzaWJsZXx8ZS4kc3RvcmUuY2hhdEZlZWRiYWNrPy5pc192aXNpYmxlfV0pfSxbRygoQSgpLEYoInNwYW4iLHtjbGFzczoiY2MtZ3hkN3QgY2MtdnNycjciLG9uQ2xpY2s6Y1swXXx8KGNbMF09KC4uLmMpPT5lLm9uU21pbGV5Q2xpY2smJmUub25TbWlsZXlDbGljayguLi5jKSksImFyaWEtbGFiZWwiOmUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfZm9ybV9zbWlsZXlfdG9vbHRpcCIpLCJkYXRhLXN0YXRlIjplLiRzdG9yZS5jaGF0UGlja2VyPy5pc192aXNpYmxlPyJhY3RpdmUiOiJub25lIiwiZGF0YS10eXBlIjoic21pbGV5In0sW3ooInNwYW4iLE9sLFt6KCJzcGFuIixVbCxmKGUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfZm9ybV9zbWlsZXlfdG9vbHRpcCIpKSwxKV0pLGNbNl18fChjWzZdPXooInNwYW4iLHtjbGFzczoiY2MtMXJoaXMifSxudWxsLC0xKSldLDgsS2wpKSxbW2kse3JvbGU6ImJ1dHRvbiJ9XV0pLGUuJHN0b3JlLndlYnNpdGU/LmNoYXQ/LmZpbGVfdHJhbnNmZXJ8fCJub25lIiE9PWUuJHN0b3JlLmNoYXRGaWxlPy5zdGF0ZT9HKChBKCksRigic3BhbiIse2tleTowLGNsYXNzOiJjYy1neGQ3dCBjYy12c3JyNyIsb25DbGljazpjWzNdfHwoY1szXT0oLi4uYyk9PmUub25GaWxlQ29udHJvbENsaWNrJiZlLm9uRmlsZUNvbnRyb2xDbGljayguLi5jKSksImFyaWEtbGFiZWwiOmUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfZm9ybV9hdHRhY2hfdG9vbHRpcCIpLCJkYXRhLXN0YXRlIjplLiRzdG9yZS5jaGF0RmlsZS5zdGF0ZSwiZGF0YS10eXBlIjoiZmlsZSJ9LFsibm9uZSI9PT1lLiRzdG9yZS5jaGF0RmlsZT8uc3RhdGU/KEEoKSxGKCJzcGFuIixXbCxbeigic3BhbiIsWmwsZihlLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2Zvcm1fYXR0YWNoX3Rvb2x0aXAiKSksMSldKSk6WigiIiwhMCkseigic3BhbiIsR2wsW3ooImlucHV0Iix7Y2xhc3M6ImNjLXlmcmVnIixvbkNsaWNrOmNbMV18fChjWzFdPSguLi5jKT0+ZS5vbkZpbGVJbnB1dENsaWNrJiZlLm9uRmlsZUlucHV0Q2xpY2soLi4uYykpLG9uQ2hhbmdlOmNbMl18fChjWzJdPUQoKC4uLmMpPT5lLm9uRmlsZUNoYW5nZSYmZS5vbkZpbGVDaGFuZ2UoLi4uYyksWyJwcmV2ZW50Il0pKSx0eXBlOiJmaWxlIixuYW1lOiJhdHRhY2hfZmlsZSIsdGl0bGU6IiIsdGFiaW5kZXg6Ii0xIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIixyZWY6ImZpbGVfaW5wdXQiLG11bHRpcGxlOiIifSxudWxsLDU0NCldKSxbInByZXBhcmluZyIsInVwbG9hZGluZyJdLmluY2x1ZGVzKGUuJHN0b3JlLmNoYXRGaWxlPy5zdGF0ZSk/KEEoKSxGKCJzcGFuIixRbCxbY1s3XXx8KGNbN109eigic3BhbiIse2NsYXNzOiJjYy0xeGY3ciBjYy0xbHdreiIsImRhdGEtdGludCI6InRoZW1lIn0sbnVsbCwtMSkpLCJwcmVwYXJpbmciPT09ZS4kc3RvcmUuY2hhdEZpbGU/LnN0YXRlPyhBKCksRigic3BhbiIsWWwsZihlLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2Zvcm1fYXR0YWNoX3dhaXRfcHJlcGFyaW5nIikpLDEpKTooQSgpLEYoInNwYW4iLEpsLGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9mb3JtX2F0dGFjaF93YWl0X3VwbG9hZGluZyIpKSwxKSldKSk6KEEoKSxGKCJzcGFuIixYbCkpXSw4LE5sKSksW1tpLHtyb2xlOiJidXR0b24iLGRpc2FibGVkOlsicHJlcGFyaW5nIiwidXBsb2FkaW5nIl0uaW5jbHVkZXMoZS4kc3RvcmUuY2hhdEZpbGU/LnN0YXRlKX1dXSk6WigiIiwhMCksITA9PT1lLiRzdG9yZS53ZWJzaXRlPy5jaGF0Py5hdWRpb19yZWNvcmQmJmUuJHN0b3JlLmZlYXR1cmUuaGFzX2F1ZGlvX3JlY29yZGluZz9HKChBKCksRigic3BhbiIse2tleToxLGNsYXNzOiJjYy1neGQ3dCBjYy12c3JyNyIsb25DbGljazpjWzRdfHwoY1s0XT0oLi4uYyk9PmUub25TcGVlY2hSZWNvcmRDbGljayYmZS5vblNwZWVjaFJlY29yZENsaWNrKC4uLmMpKSwiYXJpYS1sYWJlbCI6ZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9mb3JtX3NwZWVjaF90b29sdGlwIiksImRhdGEtc3RhdGUiOmUuJHN0b3JlLmNoYXRTcGVlY2guc3RhdGUsImRhdGEtdHlwZSI6InNwZWVjaCJ9LFsibm9uZSI9PT1lLiRzdG9yZS5jaGF0U3BlZWNoLnN0YXRlPyhBKCksRigic3BhbiIsY24sW3ooInNwYW4iLHRuLGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9mb3JtX3NwZWVjaF90b29sdGlwIikpLDEpXSkpOlooIiIsITApLGNbOF18fChjWzhdPXooInNwYW4iLHtjbGFzczoiY2MtMXJoaXMifSxudWxsLC0xKSldLDgsZW4pKSxbW2kse3JvbGU6ImJ1dHRvbiJ9XV0pOlooIiIsITApLGUuJHN0b3JlLmNoYXRGZWVkYmFjay5pc19hdmFpbGFibGU/RygoQSgpLEYoInNwYW4iLHtrZXk6MixjbGFzczoiY2MtZ3hkN3QgY2MtdnNycjciLG9uQ2xpY2s6Y1s1XXx8KGNbNV09KC4uLmMpPT5lLm9uRmVlZGJhY2tDbGljayYmZS5vbkZlZWRiYWNrQ2xpY2soLi4uYykpLCJhcmlhLWxhYmVsIjplLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2Zvcm1fZmVlZGJhY2tfdG9vbHRpcCIpLCJkYXRhLXN0YXRlIjplLiRzdG9yZS5jaGF0RmVlZGJhY2suaXNfdmlzaWJsZT8iYWN0aXZlIjoibm9uZSIsImRhdGEtdHlwZSI6ImZlZWRiYWNrIn0sW3ooInNwYW4iLHNuLFt6KCJzcGFuIixsbixmKGUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfZm9ybV9mZWVkYmFja190b29sdGlwIikpLDEpXSksY1s5XXx8KGNbOV09eigic3BhbiIse2NsYXNzOiJjYy0xcmhpcyJ9LG51bGwsLTEpKV0sOCxhbikpLFtbaSx7cm9sZToiYnV0dG9uIn1dXSk6WigiIiwhMCksY1sxMF18fChjWzEwXT16KCJzcGFuIix7Y2xhc3M6ImNjLTEzZnR4In0sbnVsbCwtMSkpXSwyKSx5KG4se29uU3VibWl0OmUub25TZW5kQ2xpY2ssImNhbi1zZW5kIjplLmNhblNlbmQsbG9ja2VkOmUubG9ja2VkfSxudWxsLDgsWyJvblN1Ym1pdCIsImNhbi1zZW5kIiwibG9ja2VkIl0pXSwyKX1dXSksb249e2NsYXNzOiJjYy03OWNkcSJ9LHJuPXtjbGFzczoiY2MtMXdsNHkiLHJlZjoidmlzdWFsaXplciJ9LGhuPXtjbGFzczoiY2MtMTVlOGQifSxkbj17Y2xhc3M6ImNjLWpvOG1nIn0scG49e2NsYXNzOiJjYy0xdGFjayBjYy0xaWNyaiJ9O3ZhciB1bj0iI0QzRERFNiIsbW49IiM2Njc4OEEiLGZuPXUocSh7Y29tcG9uZW50czp7Q2hhdEZvb3RlckNvbXBvc2VyU2VuZDpSbH0sZW1pdHM6WyJzdWJtaXQiXSxkYXRhOigpPT4oe2F1ZGlvQ29udGV4dDpudWxsLHZpc3VhbGl6ZXJDb250ZXh0Om51bGwsYW5hbHlzZXI6bnVsbCxzb3VyY2U6bnVsbCxzdHJlYW06bnVsbCxiYXJzOltdLGFuaW1hdGlvbklkOm51bGwsbGFzdFRpbWU6MCxsYXN0VXBkYXRlVGltZTowfSksd2F0Y2g6eyIkc3RvcmUuY2hhdFNwZWVjaC5zdGF0ZSIoZSl7InJlY29yZGluZyIhPT1lJiYodGhpcy5zdG9wQW5pbWF0aW9uKCksdGhpcy5iYXJzPVtdKX19LGNyZWF0ZWQoKXtkLmNoYXRTcGVlY2guc2V0U3RyZWFtQWNxdWlyZWRDYWxsYmFjayh0aGlzLm9uU3RyZWFtQWNxdWlyZWQpfSxtb3VudGVkKCl7dGhpcy52aXN1YWxpemVyQ29udGV4dD10aGlzLiRyZWZzLnZpc3VhbGl6ZXIuZ2V0Q29udGV4dCgiMmQiKSx0aGlzLnNldHVwQ2FudmFzKCl9LGJlZm9yZVVubW91bnQoKXt0aGlzLmNsZWFudXAoKX0sbWV0aG9kczp7c2V0dXBDYW52YXMoKXtpZighdGhpcy4kcmVmcy52aXN1YWxpemVyfHwhdGhpcy52aXN1YWxpemVyQ29udGV4dClyZXR1cm47bGV0IGU9dGhpcy4kcmVmcy52aXN1YWxpemVyLGM9ZS5wYXJlbnRFbGVtZW50LHQ9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDEsYT1jP2MuY2xpZW50V2lkdGg6ZS5jbGllbnRXaWR0aHx8ZS5vZmZzZXRXaWR0aCxzPWM/Yy5jbGllbnRIZWlnaHQ6ZS5jbGllbnRIZWlnaHR8fGUub2Zmc2V0SGVpZ2h0O2Uud2lkdGg9YSp0LGUuaGVpZ2h0PXMqdCxlLnN0eWxlLndpZHRoPWAke2F9cHhgLGUuc3R5bGUuaGVpZ2h0PWAke3N9cHhgLHRoaXMudmlzdWFsaXplckNvbnRleHQuc2V0VHJhbnNmb3JtKDEsMCwwLDEsMCwwKSx0aGlzLnZpc3VhbGl6ZXJDb250ZXh0LnNjYWxlKHQsdCl9LGdldEFtcGxpdHVkZSgpe2lmKCF0aGlzLmFuYWx5c2VyfHwicmVjb3JkaW5nIiE9PWQuY2hhdFNwZWVjaC5zdGF0ZSlyZXR1cm4uMTtsZXQgZT1uZXcgVWludDhBcnJheSh0aGlzLmFuYWx5c2VyLmZmdFNpemUpO3RoaXMuYW5hbHlzZXIuZ2V0Qnl0ZVRpbWVEb21haW5EYXRhKGUpO2xldCBjPTAsdD0wO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXtsZXQgYT1NYXRoLmFicygoZVtuXS0xMjgpLzEyOCk7dCs9YSxhPmMmJihjPWEpfWxldCBhPS43KmMrLjMqKHQvZS5sZW5ndGgpLHM9TWF0aC5zcXJ0KGEpLGw9TWF0aC5taW4oMSwxKnMqMS43NSk7cmV0dXJuIE1hdGgubWF4KC4yLGwpfSxhbmltYXRlKGUpe2lmKCF0aGlzLiRyZWZzLnZpc3VhbGl6ZXJ8fCF0aGlzLnZpc3VhbGl6ZXJDb250ZXh0KXJldHVybjtsZXQgYz10aGlzLiRyZWZzLnZpc3VhbGl6ZXIsdD1jLnBhcmVudEVsZW1lbnQsYT10P3QuY2xpZW50V2lkdGg6Yy5jbGllbnRXaWR0aHx8Yy5vZmZzZXRXaWR0aCxzPXQ/dC5jbGllbnRIZWlnaHQ6Yy5jbGllbnRIZWlnaHR8fGMub2Zmc2V0SGVpZ2h0LGw9dGhpcy5sYXN0VGltZT8oZS10aGlzLmxhc3RUaW1lKS8xZTM6MDt0aGlzLmxhc3RUaW1lPWU7Zm9yKGxldCBuPTA7bjx0aGlzLmJhcnMubGVuZ3RoO24rKyl0aGlzLmJhcnNbbl0ueC09NTAqbDtpZih0aGlzLmJhcnM9dGhpcy5iYXJzLmZpbHRlcihlPT5lLngrMz4tNSksInJlY29yZGluZyI9PT1kLmNoYXRTcGVlY2guc3RhdGUmJmUtdGhpcy5sYXN0VXBkYXRlVGltZT41MCl7dGhpcy5sYXN0VXBkYXRlVGltZT1lO2xldCBjPXRoaXMuYmFyc1t0aGlzLmJhcnMubGVuZ3RoLTFdO2lmKDA9PT10aGlzLmJhcnMubGVuZ3RofHxjLng8YSl7bGV0IGU9Yz9jLngrNTphLHQ9dGhpcy5nZXRBbXBsaXR1ZGUoKTt0aGlzLmJhcnMucHVzaCh7eDplLGhlaWdodDp0fSl9fXRoaXMudmlzdWFsaXplckNvbnRleHQuY2xlYXJSZWN0KDAsMCxhLHMpO2ZvcihsZXQgbj0wO248dGhpcy5iYXJzLmxlbmd0aDtuKyspe2xldCBlPXRoaXMuYmFyc1tuXTtpZihlLng8YSYmZS54KzM+MCl7bGV0IGM9TWF0aC5tYXgoNCxlLmhlaWdodCpzKi43NSksdD1zLzItYy8yO3RoaXMudmlzdWFsaXplckNvbnRleHQuZmlsbFN0eWxlPWUuaGVpZ2h0PC4xP3VuOm1uLHRoaXMudmlzdWFsaXplckNvbnRleHQuZ2xvYmFsQWxwaGE9LjMrLjcqZS5oZWlnaHQsdGhpcy52aXN1YWxpemVyQ29udGV4dC5iZWdpblBhdGgoKSx0aGlzLnZpc3VhbGl6ZXJDb250ZXh0LnJvdW5kUmVjdChlLngsdCwzLGMsMiksdGhpcy52aXN1YWxpemVyQ29udGV4dC5maWxsKCl9fXRoaXMudmlzdWFsaXplckNvbnRleHQuZ2xvYmFsQWxwaGE9MSx0aGlzLmFuaW1hdGlvbklkPXJlcXVlc3RBbmltYXRpb25GcmFtZShlPT57dGhpcy5hbmltYXRlKGUpfSl9LHN0YXJ0QW5pbWF0aW9uKCl7dGhpcy5hbmltYXRpb25JZHx8KHRoaXMubGFzdFRpbWU9MCx0aGlzLmxhc3RVcGRhdGVUaW1lPTAsdGhpcy5hbmltYXRpb25JZD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZT0+e3RoaXMuYW5pbWF0ZShlKX0pKX0sc3RvcEFuaW1hdGlvbigpe3RoaXMuYW5pbWF0aW9uSWQmJihjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmFuaW1hdGlvbklkKSx0aGlzLmFuaW1hdGlvbklkPW51bGwpfSxjbGVhbnVwKCl7dGhpcy5zdG9wQW5pbWF0aW9uKCksdGhpcy5zb3VyY2UmJih0aGlzLnNvdXJjZS5kaXNjb25uZWN0KCksdGhpcy5zb3VyY2U9bnVsbCksdGhpcy5hbmFseXNlciYmKHRoaXMuYW5hbHlzZXIuZGlzY29ubmVjdCgpLHRoaXMuYW5hbHlzZXI9bnVsbCksdGhpcy5hdWRpb0NvbnRleHQmJiJjbG9zZWQiIT09dGhpcy5hdWRpb0NvbnRleHQuc3RhdGUmJih0aGlzLmF1ZGlvQ29udGV4dC5jbG9zZSgpLHRoaXMuYXVkaW9Db250ZXh0PW51bGwpLHRoaXMuc3RyZWFtPW51bGwsdGhpcy5iYXJzPVtdfSxvblN0cmVhbUFjcXVpcmVkKGUpe2lmKHRoaXMuY2xlYW51cCgpLHRoaXMuc3RyZWFtPWUsdGhpcy5iYXJzPVtdLCJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cuQXVkaW9Db250ZXh0P3RoaXMuYXVkaW9Db250ZXh0PW5ldyB3aW5kb3cuQXVkaW9Db250ZXh0OiJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0JiYodGhpcy5hdWRpb0NvbnRleHQ9bmV3IHdpbmRvdy53ZWJraXRBdWRpb0NvbnRleHQpLHRoaXMuYXVkaW9Db250ZXh0KXRyeXt0aGlzLmFuYWx5c2VyPXRoaXMuYXVkaW9Db250ZXh0LmNyZWF0ZUFuYWx5c2VyKCksdGhpcy5hbmFseXNlci5mZnRTaXplPTI1Nix0aGlzLmFuYWx5c2VyLnNtb290aGluZ1RpbWVDb25zdGFudD0uOCx0aGlzLnNvdXJjZT10aGlzLmF1ZGlvQ29udGV4dC5jcmVhdGVNZWRpYVN0cmVhbVNvdXJjZShlKSx0aGlzLnNvdXJjZS5jb25uZWN0KHRoaXMuYW5hbHlzZXIpLHRoaXMuc3RhcnRBbmltYXRpb24oKX1jYXRjaHt0aGlzLmNsZWFudXAoKX19LG9uQ2FuY2VsQ2xpY2soKXtkLmNoYXRTcGVlY2guY2FuY2VsKCksYS5vbkludGVyZmFjZUFjdGlvbigic3BlZWNoIix7b3JpZ2luOiJjb21wb3NlciIsc3RhdGU6ImNhbmNlbCJ9KSxoLmZvY3VzT25Gb3JlZ3JvdW5kKCl9LG9uU2VuZENsaWNrKCl7ZC5jaGF0U3BlZWNoLnNlbmQoKSxhLm9uSW50ZXJmYWNlQWN0aW9uKCJzcGVlY2giLHtvcmlnaW46ImNvbXBvc2VyIixzdGF0ZToic2VuZCJ9KSxoLmZvY3VzT25Gb3JlZ3JvdW5kKCl9fX0pLFtbInJlbmRlciIsZnVuY3Rpb24oZSxjLHQsYSxzLGwpe2NvbnN0IG49digiY2hhdC1mb290ZXItY29tcG9zZXItc2VuZCIpLGk9ZygiY3Jpc3AtYWNjZXNzaWJpbGl0eSIpO3JldHVybiBBKCksRigiZGl2Iix7Y2xhc3M6bShbImNjLW1ybm1rIiwiY2MtbXJubWstLSIrZS4kc3RvcmUuY2hhdFNwZWVjaC5zdGF0ZV0pfSxbeigiZGl2IixvbixbeigiY2FudmFzIixybixudWxsLDUxMildKSx6KCJkaXYiLGhuLFtHKChBKCksRigic3BhbiIse2NsYXNzOiJjYy1sN2FsaiIsb25DbGljazpjWzBdfHwoY1swXT1EKCguLi5jKT0+ZS5vbkNhbmNlbENsaWNrJiZlLm9uQ2FuY2VsQ2xpY2soLi4uYyksWyJwcmV2ZW50Il0pKSwiZGF0YS10eXBlIjoiY2FuY2VsIn0sWy4uLmNbMV18fChjWzFdPVt6KCJzcGFuIix7Y2xhc3M6ImNjLTJ6amFrIn0sbnVsbCwtMSldKV0pKSxbW2kse3JvbGU6ImJ1dHRvbiJ9XV0pLHooInNwYW4iLGRuLFt6KCJzcGFuIix7Y2xhc3M6ImNjLWNqdHNrIixzdHlsZTprKHt3aWR0aDplLiRzdG9yZS5jaGF0U3BlZWNoLnByb2dyZXNzKyIlICFpbXBvcnRhbnQifSl9LG51bGwsNCkseigic3BhbiIscG4sZihlLiRmaWx0ZXJzLmRhdGUuZm9ybWF0VGltZShlLiRzdG9yZS5jaGF0U3BlZWNoLmR1cmF0aW9uKSksMSldKSx5KG4se29uU3VibWl0OmUub25TZW5kQ2xpY2ssImNhbi1zZW5kIjoiIn0sbnVsbCw4LFsib25TdWJtaXQiXSldKV0sMil9XV0pO3ZhciBrbj11KHEoe2NvbXBvbmVudHM6e0NoYXRGb290ZXJDb21wb3NlckZpbGVzOk1sLENoYXRGb290ZXJDb21wb3NlckZvcm06VmwsQ2hhdEZvb3RlckNvbXBvc2VyQ29udHJvbHM6bm4sQ2hhdEZvb3RlckNvbXBvc2VyU3BlZWNoOmZufSxkYXRhOigpPT4oe2ZvY3VzZWQ6ITF9KSxjb21wdXRlZDp7bG9ja2VkOigpPT5kLmNoYXQuaXNfZm9ybV9sb2NrZWQscmVjb3JkaW5nOigpPT4hMD09PWQud2Vic2l0ZT8uY2hhdD8uYXVkaW9fcmVjb3JkJiYibm9uZSIhPT1kLmNoYXRTcGVlY2guc3RhdGV9LHdhdGNoOntsb2NrZWQoZSxjKXshMT09PWUmJiEwPT09YyYmZC5iYXNlLmhhc19hdXRvZm9jdXMmJnRoaXMucmVGb2N1c0lmTmVlZGVkKCl9fSxtZXRob2RzOntyZUZvY3VzSWZOZWVkZWQoKXshMT09PXRoaXMuZm9jdXNlZCYmQygoKT0+e3RoaXMuJHJlZnMuZm9ybS5mb2N1c0Zyb21QYXJlbnQoKX0pfSxvbkNsaWNrKCl7dGhpcy5yZWNvcmRpbmd8fCh0aGlzLnJlRm9jdXNJZk5lZWRlZCgpLCEwPT09ZC5jaGF0LnJlY29ubmVjdF9pbmFjdGl2ZSYmZSgpLkV2ZW50LnRyaWdnZXJJbnRlcmFjdGVkKCEwKSl9LG9uU3VibWl0KCl7ZSgpLkV2ZW50LnRyaWdnZXJJbnRlcmFjdGVkKCEwKSxkLm1lc3NhZ2VzLnNlbmQoKSxkLmNoYXRGaWxlLnNlbmRQZW5kaW5nRmlsZXMoKSx0aGlzLnJlRm9jdXNJZk5lZWRlZCgpfSxvbkZvcm1Gb2N1cygpe3RoaXMuZm9jdXNlZD0hMH0sb25Gb3JtQmx1cigpe3RoaXMuZm9jdXNlZD0hMX19fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7Y29uc3Qgbj12KCJjaGF0LWZvb3Rlci1jb21wb3Nlci1zcGVlY2giKSxpPXYoImNoYXQtZm9vdGVyLWNvbXBvc2VyLWZpbGVzIiksbz12KCJjaGF0LWZvb3Rlci1jb21wb3Nlci1mb3JtIikscj12KCJjaGF0LWZvb3Rlci1jb21wb3Nlci1jb250cm9scyIpO3JldHVybiBBKCksRigiZGl2Iix7b25DbGljazpjWzBdfHwoY1swXT0oLi4uYyk9PmUub25DbGljayYmZS5vbkNsaWNrKC4uLmMpKSxjbGFzczptKFsiY2MtNmVrNWYiLHsiY2MtNmVrNWYtLWZvY3VzZWQiOmUuZm9jdXNlZCwiY2MtNmVrNWYtLWxvY2tlZCI6ZS5sb2NrZWR9XSl9LFtlLnJlY29yZGluZz8oQSgpLFUobix7a2V5OjAsY2xhc3M6ImNjLTY4NHg5IixvblN1Ym1pdDplLm9uU3VibWl0LGxvY2tlZDplLmxvY2tlZH0sbnVsbCw4LFsib25TdWJtaXQiLCJsb2NrZWQiXSkpOihBKCksRihJLHtrZXk6MX0sW3koaSkseShvLHtvblN1Ym1pdDplLm9uU3VibWl0LG9uRm9jdXM6ZS5vbkZvcm1Gb2N1cyxvbkJsdXI6ZS5vbkZvcm1CbHVyLGxvY2tlZDplLmxvY2tlZCxyZWY6ImZvcm0ifSxudWxsLDgsWyJvblN1Ym1pdCIsIm9uRm9jdXMiLCJvbkJsdXIiLCJsb2NrZWQiXSkseShyLHtjbGFzczoiY2MtbW9qa2QiLG9uU3VibWl0OmUub25TdWJtaXQsbG9ja2VkOmUubG9ja2VkfSxudWxsLDgsWyJvblN1Ym1pdCIsImxvY2tlZCJdKV0sNjQpKV0sMil9XV0pO3ZhciB5bj11KHEoe2NvbXBvbmVudHM6e0JyYW5kV2F0ZXJtYXJrOnhsLENoYXRGb290ZXJDb21wb3Nlcjprbn19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtjb25zdCBuPXYoImNoYXQtZm9vdGVyLWNvbXBvc2VyIiksaT12KCJicmFuZC13YXRlcm1hcmsiKTtyZXR1cm4gQSgpLEYoImRpdiIse2NsYXNzOm0oWyJjYy04a3kwOSIseyJjYy04a3kwOS0tZnVsbC12aWV3IjplLiRzdG9yZS5iYXNlLmlzX2Z1bGxfdmlld31dKX0sW3kobikseShpLHtjbGFzczoiY2MtNHBwb3kifSldLDIpfV1dKSxfbj17Y2xhc3M6ImNjLTE3d2lyIn0sdm49e2NsYXNzOiJjYy0xaG11ZyJ9LGduPXtrZXk6MCxjbGFzczoiY2Mtc3o5MWwifTt2YXIgYm49dShxKHtwcm9wczp7aGFzQW5pbWF0aW9uOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0saGFzT3ZlcmxheTp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9fSxlbWl0czpbImNsaWNrIl19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtyZXR1cm4gQSgpLEYoImRpdiIse29uQ2xpY2s6Y1swXXx8KGNbMF09Yz0+ZS4kZW1pdCgiY2xpY2siLGMpKSxjbGFzczptKFsiY2MtMW9sZ3QiLHsiY2MtMW9sZ3QtLWhhcy1hbmltYXRpb24iOmUuaGFzQW5pbWF0aW9uLCJjYy0xb2xndC0taGFzLW92ZXJsYXkiOmUuaGFzT3ZlcmxheSwiY2MtMW9sZ3QtLWhhcy1icmFuZGluZyI6ZS4kc3RvcmUud2Vic2l0ZS5zaG93X2JyYW5kaW5nJiZlLiRzdG9yZS5vdmVybGF5LmJyYW5kaW5nX2xpbmt9XSl9LFt6KCJkaXYiLF9uLFt6KCJkaXYiLHZuLFt3KGUuJHNsb3RzLCJpbm5lciIpXSksZS4kc2xvdHMuY29udGVudD8oQSgpLEYoImRpdiIsZ24sW3coZS4kc2xvdHMsImNvbnRlbnQiKV0pKTpaKCIiLCEwKV0pXSwyKX1dXSk7dmFyIENuPXUocSh7cHJvcHM6e2hhc0FuaW1hdGlvbjp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LHBhZGRpbmdMZXZlbDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoicmVndWxhciIsdmFsaWRhdG9yOmU9PlsicmVndWxhciIsImV4dGVuZGVkIl0uaW5jbHVkZXMoZSl9fX0pLFtbInJlbmRlciIsZnVuY3Rpb24oZSxjLHQsYSxzLGwpe3JldHVybiBBKCksRigiZGl2Iix7Y2xhc3M6bShbImNjLTFncnUyIiwiY2MtMWdydTItLXBhZGRpbmctIitlLnBhZGRpbmdMZXZlbCx7ImNjLTFncnUyLS1oYXMtYW5pbWF0aW9uIjplLmhhc0FuaW1hdGlvbn1dKX0sW3coZS4kc2xvdHMsImRlZmF1bHQiKV0sMil9XV0pLHduPVsiaWQiXSx4bj1bImRhdGEtaWNvbiJdLGpuPVsiaWQiXTt2YXIgcW49dShxKHtwcm9wczp7aWNvbjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpudWxsfSxzaXplOnt0eXBlOlN0cmluZyxkZWZhdWx0OiJkZWZhdWx0Iix2YWxpZGF0b3I6ZT0+WyJzbWFsbCIsImRlZmF1bHQiXS5pbmNsdWRlcyhlKX0sc3BhY2VkVGl0bGVzOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0sc3VidGl0bGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6bnVsbH0sc3VidGl0bGVJZDp7dHlwZTpTdHJpbmcsZGVmYXVsdDpudWxsfSx0aXRsZTp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LHRpdGxlSWQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6bnVsbH19fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7cmV0dXJuIEEoKSxGKCJkaXYiLHtjbGFzczptKFsiY2MtMTdoNDUiLCJjYy0xN2g0NS0tIitlLnNpemUseyJjYy0xN2g0NS0tc3BhY2VkLXRpdGxlcyI6ZS5zcGFjZWRUaXRsZXN9XSl9LFt6KCJzcGFuIix7Y2xhc3M6ImNjLTFubTlyIGNjLTEwY3FzIixpZDplLnRpdGxlSWR9LFtlLmljb24/KEEoKSxGKCJzcGFuIix7a2V5OjAsY2xhc3M6ImNjLWwxazFwIiwiZGF0YS1pY29uIjplLmljb259LG51bGwsOCx4bikpOlooIiIsITApLGooZihlLnRpdGxlKSwxKV0sOCx3biksZS5zdWJ0aXRsZT8oQSgpLEYoInNwYW4iLHtrZXk6MCxjbGFzczoiY2MtZGlhZ2ciLGlkOmUuc3VidGl0bGVJZH0sZihlLnN1YnRpdGxlKSw5LGpuKSk6WigiIiwhMCldLDIpfV1dKSx6bj1bImFyaWEtbGFiZWwiXTt2YXIgU249dShxKHtjb21wb25lbnRzOntDaGF0Q29udGVudFBvcG92ZXI6Ym4sQ2hhdENvbnRlbnRQb3BvdmVySXRlbTpDbixDaGF0Q29udGVudFBvcG92ZXJJdGVtVGl0bGU6cW4sQ2hhdENvbnRlbnRCdXR0b25TdGF0ZVN0YXJ0OmR0fSxtZXRob2RzOntvblJlb3BlbkNsaWNrKCl7aC5mb2N1c09uRm9yZWdyb3VuZCgpLGQuY2hhdFN0YXRlLmhpZGVTdGFydCgpfSxvbkNsaWNrKGUpe2xldCBjPWUudGFyZ2V0OyFjfHwhMCE9PWMuY2xhc3NMaXN0LmNvbnRhaW5zKCJjYy0xZTQxbyIpJiZjLmNsb3Nlc3QoIi5jYy0xZTQxbyIpfHwoaC5mb2N1c09uRm9yZWdyb3VuZCgpLGQuY2hhdFN0YXRlLmhpZGVTdGFydCgpKX19fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7Y29uc3Qgbj12KCJjaGF0LWNvbnRlbnQtcG9wb3Zlci1pdGVtLXRpdGxlIiksaT12KCJjaGF0LWNvbnRlbnQtYnV0dG9uLXN0YXRlLXN0YXJ0Iiksbz12KCJjaGF0LWNvbnRlbnQtcG9wb3Zlci1pdGVtIikscj12KCJjaGF0LWNvbnRlbnQtcG9wb3ZlciIpLGg9ZygiY3Jpc3AtYWNjZXNzaWJpbGl0eSIpO3JldHVybiBlLiRzdG9yZS5jaGF0U3RhdGUuaXNfc3RhcnRfdmlzaWJsZT8oQSgpLFUocix7a2V5OjAsY2xhc3M6ImNjLTFlNDFvIixvbkNsaWNrOmUub25DbGljaywiaGFzLW92ZXJsYXkiOiIifSx7aW5uZXI6eCgoKT0+W3kobyx7Y2xhc3M6ImNjLXRjOGJkIiwicGFkZGluZy1sZXZlbCI6ImV4dGVuZGVkIn0se2RlZmF1bHQ6eCgoKT0+W3kobix7Y2xhc3M6ImNjLTF0endkIix0aXRsZTplLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X3N0YXRlX21haW4iKSxpY29uOiJpbmZvIn0sbnVsbCw4LFsidGl0bGUiXSkseShpLHtyZWR1Y2VkOiIifSksRygoQSgpLEYoInNwYW4iLHtjbGFzczoiY2MtMTAyZmEgY2MtMWljcmoiLG9uQ2xpY2s6Y1swXXx8KGNbMF09KC4uLmMpPT5lLm9uUmVvcGVuQ2xpY2smJmUub25SZW9wZW5DbGljayguLi5jKSksImFyaWEtbGFiZWwiOmUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfc3RhdGVfcmVvcGVuIil9LFtqKGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9zdGF0ZV9yZW9wZW4iKSksMSldLDgsem4pKSxbW2gse3JvbGU6ImJ1dHRvbiJ9XV0pXSksXzoxfSldKSxfOjF9LDgsWyJvbkNsaWNrIl0pKTpaKCIiLCEwKX1dXSksRm49e2NsYXNzOiJjYy0xb3lxdSJ9LFBuPVsiZGF0YS1zdGFycy1ob3ZlcmVkIiwiZGF0YS1zdGFycy1zZWxlY3RlZCJdLFRuPVsib25DbGljayIsIm9uTW91c2VlbnRlciIsImFyaWEtbGFiZWwiXSxCbj1bInBsYWNlaG9sZGVyIl07dmFyIEluPXUocSh7Y29tcG9uZW50czp7QmFzZUJ1dHRvbjpNLENoYXRDb250ZW50UG9wb3ZlcjpibixDaGF0Q29udGVudFBvcG92ZXJJdGVtOkNuLENoYXRDb250ZW50UG9wb3Zlckl0ZW1UaXRsZTpxbn0sbWV0aG9kczp7b25GZWVkYmFja0NsaWNrKGUpe2xldCBjPWUudGFyZ2V0OyFjfHwhMCE9PWMuY2xhc3NMaXN0LmNvbnRhaW5zKCJjYy1tcW1iYSIpJiZjLmNsb3Nlc3QoIi5jYy1tcW1iYSIpfHxkLmNoYXRGZWVkYmFjay5oaWRlKCl9LG9uRmVlZGJhY2tTdWJtaXRDbGljaygpe2QuY2hhdEZlZWRiYWNrPy5zdGFycz8uc2VsZWN0ZWQ+MCYmZC5jaGF0RmVlZGJhY2s/LmNvbW1lbnQmJihzLlNlc3Npb24uc2VuZEZlZWRiYWNrUmF0ZShkLmNoYXRGZWVkYmFjay5zdGFycz8uc2VsZWN0ZWQsZC5jaGF0RmVlZGJhY2suY29tbWVudCxkLmNoYXRGZWVkYmFjay5zZXNzaW9uX2lkKSxkLmNoYXRGZWVkYmFjay5oaWRlKCksZC5jaGF0SW50ZW50LnVwZGF0ZSgiZmVlZGJhY2siLCJzdWJtaXR0ZWQiLGQuY2hhdEZlZWRiYWNrLnNlc3Npb25faWQpKX19fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7Y29uc3Qgbj12KCJjaGF0LWNvbnRlbnQtcG9wb3Zlci1pdGVtLXRpdGxlIiksaT12KCJiYXNlLWJ1dHRvbiIpLG89digiY2hhdC1jb250ZW50LXBvcG92ZXItaXRlbSIpLHI9digiY2hhdC1jb250ZW50LXBvcG92ZXIiKSxoPWcoImNyaXNwLWFjY2Vzc2liaWxpdHkiKSxkPWcoImNyaXNwLWZvY3VzLWZvcmVncm91bmQiKTtyZXR1cm4gZS4kc3RvcmUuY2hhdEZlZWRiYWNrLmlzX3Zpc2libGU/KEEoKSxVKHIse2tleTowLGNsYXNzOiJjYy1tcW1iYSIsb25DbGljazplLm9uRmVlZGJhY2tDbGlja30se2lubmVyOngoKCk9Plt5KG8seyJkYXRhLXR5cGUiOiJyYXRlIn0se2RlZmF1bHQ6eCgoKT0+W3kobix7dGl0bGU6ZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9mZWVkYmFja19yYXRlX3RpdGxlIiksc2l6ZToic21hbGwifSxudWxsLDgsWyJ0aXRsZSJdKSx6KCJzcGFuIixGbixbeigic3BhbiIse2NsYXNzOiJjYy10NTFqaiIsb25Nb3VzZWxlYXZlOmNbMF18fChjWzBdPWM9PmUuJHN0b3JlLmNoYXRGZWVkYmFjay5zdGFycy5ob3ZlcmVkPTApLCJkYXRhLXN0YXJzLWhvdmVyZWQiOmUuJHN0b3JlLmNoYXRGZWVkYmFjay5zdGFycy5ob3ZlcmVkLCJkYXRhLXN0YXJzLXNlbGVjdGVkIjplLiRzdG9yZS5jaGF0RmVlZGJhY2suc3RhcnMuc2VsZWN0ZWR9LFsoQSgpLEYoSSxudWxsLGIoNSxjPT5HKHooInNwYW4iLHtjbGFzczoiY2MtMXhqYmsiLG9uQ2xpY2s6dD0+ZS4kc3RvcmUuY2hhdEZlZWRiYWNrLnN0YXJzLnNlbGVjdGVkPWMsb25Nb3VzZWVudGVyOnQ9PmUuJHN0b3JlLmNoYXRGZWVkYmFjay5zdGFycy5ob3ZlcmVkPWMsImFyaWEtbGFiZWwiOlN0cmluZyhjKSxrZXk6Y30sbnVsbCw0MCxUbiksW1toLHtyb2xlOiJidXR0b24ifV1dKSksNjQpKV0sNDAsUG4pXSksRyh6KCJ0ZXh0YXJlYSIse2NsYXNzOiJjYy0xYWcyNCBjYy0zcmZnYyIsIm9uVXBkYXRlOm1vZGVsVmFsdWUiOmNbMV18fChjWzFdPWM9PmUuJHN0b3JlLmNoYXRGZWVkYmFjay5jb21tZW50PWMpLHBsYWNlaG9sZGVyOmUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfZmVlZGJhY2tfcmF0ZV9wbGFjZWhvbGRlciIpLG5hbWU6ImZlZWRiYWNrX3JhdGUiLGNvbHM6IjEwIixyb3dzOiIxIixkaXI6ImF1dG8ifSxudWxsLDgsQm4pLFtbZCx7cHJpb3JpdHk6Mn1dLFtILGUuJHN0b3JlLmNoYXRGZWVkYmFjay5jb21tZW50LHZvaWQgMCx7dHJpbTohMH1dXSkseShpLHtvbkNsaWNrOmUub25GZWVkYmFja1N1Ym1pdENsaWNrLGRpc2FibGVkOmUuJHN0b3JlLmNoYXQuaGFzX29mZmxpbmV8fCFlLiRzdG9yZS5jaGF0RmVlZGJhY2suc3RhcnM/LnNlbGVjdGVkfHwhZS4kc3RvcmUuY2hhdEZlZWRiYWNrLmNvbW1lbnQsc2l6ZToidGlueSIsdGludDoidGhlbWUifSx7ZGVmYXVsdDp4KCgpPT5baihmKGUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfZmVlZGJhY2tfcmF0ZV9zdWJtaXQiKSksMSldKSxfOjF9LDgsWyJvbkNsaWNrIiwiZGlzYWJsZWQiXSldKSxfOjF9KV0pLF86MX0sOCxbIm9uQ2xpY2siXSkpOlooIiIsITApfV1dKSxNbj17Y2xhc3M6ImNjLWp4M255In0sJG49e2NsYXNzOiJjYy0xNmEyeSIsImRhdGEtYWN0aW9uIjoic2VhcmNoIn0sQW49e2tleTowLGNsYXNzOiJjYy02NHR1bCJ9LExuPXtjbGFzczoiY2MtMWRjaGEifSxEbj17Y2xhc3M6ImNjLTE1c3FxIGNjLTEwY3FzIn0sRW49e2NsYXNzOiJjYy1qeDNueSJ9LFZuPXtjbGFzczoiY2MtMTZhMnkiLCJkYXRhLWFjdGlvbiI6InNlYXJjaCJ9LEhuPVsib25DbGljayIsImRhdGEtdHlwZSIsImRhdGEtbG9hZGluZyJdLFJuPXtjbGFzczoiY2MtMWRjaGEifSxLbj17a2V5OjAsY2xhc3M6ImNjLTE1c3FxIGNjLTEwY3FzIn0sT249e2NsYXNzOiJjYy0xeWJyOSJ9LFVuPXtjbGFzczoiY2MtNmZwbjYifSxObj1bImRhdGEtZGlzYWJsZWQiXSxXbj17Y2xhc3M6ImNjLTZmcG42In07dmFyIFpuPVsic21pbGV5c19wZW9wbGUiLCJhbmltYWxzX25hdHVyZSIsImZvb2RfZHJpbmsiLCJhY3Rpdml0aWVzIiwidHJhdmVsX3BsYWNlcyIsIm9iamVjdHMiLCJzeW1ib2xzIiwiZmxhZ3MiXSxHbj1jKCExKSxRbj11KHEoe2NvbXBvbmVudHM6e0NoYXRDb250ZW50UG9wb3ZlcjpibixDaGF0Q29udGVudFBvcG92ZXJJdGVtOkNuLFNlYXJjaEZvcm06b2MsRW1vamlQaWNrZXI6TigoKT0+KEduLnZhbHVlPSEwLHQoKCk9PmltcG9ydCgiLi4vZW1vamktcGlja2VyLmVzX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4oZT0+KEduLnZhbHVlPSExLGUpKSxfX3ZpdGVfX21hcERlcHMoWzAsMV0pKSkpfSxkYXRhOigpPT4oe3NlYXJjaERlZmVyVGltZW91dDpudWxsfSksY29tcHV0ZWQ6e2Vtb2ppUGlja2VyTG9hZGluZzooKT0+R24udmFsdWUsZ3JvdXBOYW1lcygpe2NvbnN0IGU9e307Zm9yKGNvbnN0IGMgb2YgWm4pZVtjXT10aGlzLiRyZW5kZXIuX2UoImNoYXQiLGBjaGF0X3BpY2tlcnNfc21pbGV5X2dyb3VwXyR7Y31gKTtyZXR1cm4gZX19LG1ldGhvZHM6e29uQ2xpY2soZSl7bGV0IGM9ZS50YXJnZXQ7IWN8fCEwIT09Yy5jbGFzc0xpc3QuY29udGFpbnMoImNjLTE5MmowIikmJmMuY2xvc2VzdCgiLmNjLTE5MmowIil8fChkLmNoYXRQaWNrZXIuaGlkZSgpLGguZm9jdXNPbkZvcmVncm91bmQoKSl9LG9uV2hlZWwoZSl7ZS5zdG9wUHJvcGFnYXRpb24oKX0sb25QaWNrZXJTaG93Q2xpY2soZSl7ZC5jaGF0UGlja2VyLnNob3coZSl9LG9uU21pbGV5UGlja2VyU2VsZWN0KGUpe2xldCBjLHQsYT1lLmkscz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuY2MtN2p0d3QiKSxsPWQuY2hhdFBpY2tlci5zZWxlY3Rpb24uc3RhcnQ7Im51bWJlciIhPXR5cGVvZiBsJiYobD1zLnNlbGVjdGlvblN0YXJ0KSxjPXQ9ZC5jaGF0Lm1lc3NhZ2VfZmllbGRfdmFsdWUsYyYmKGw+MCYmIiAiIT09Y1tsLTFdJiYoYT1gICR7YX1gKSxsPGMubGVuZ3RoJiYiICIhPT1jW2xdJiYoYT1gJHthfSBgKSksdD1jLnN1YnN0cigwLGwpK2ErYy5zdWJzdHIobCksZC5jaGF0LnNldE1lc3NhZ2VUZXh0KHQpLHMuZGlzcGF0Y2hFdmVudChuZXcgd2luZG93LktleWJvYXJkRXZlbnQoImtleXVwIikpLHNldFRpbWVvdXQoKCk9PntsKz1hLmxlbmd0aCxzLnNlbGVjdGlvblN0YXJ0PWwscy5zZWxlY3Rpb25FbmQ9bH0sMCksZC5jaGF0UGlja2VyLmhpZGUoKSxoLmZvY3VzT25Gb3JlZ3JvdW5kKCl9LG9uUGlja2VyR2lmSW5wdXRLZXl1cChlKXtudWxsIT09dGhpcy5zZWFyY2hEZWZlclRpbWVvdXQmJmwuY2xlYXJUaW1lb3V0KHRoaXMuc2VhcmNoRGVmZXJUaW1lb3V0KSx0aGlzLnNlYXJjaERlZmVyVGltZW91dD1sLnNldFRpbWVvdXQoKCk9Pnt0aGlzLnNlYXJjaERlZmVyVGltZW91dD1udWxsLGQuY2hhdFBpY2tlci5sb2FkRGF0YUdpZigoZS50YXJnZXQudmFsdWV8fCIiKS50cmltKCkpfSw1MDApfSxvblBpY2tlckdpZklucHV0UmVzZXQoKXtkLmNoYXRQaWNrZXIuZ2lmLmlucHV0JiYoZC5jaGF0UGlja2VyLmdpZi5pbnB1dD0iIixkLmNoYXRQaWNrZXIubG9hZERhdGFHaWYoIiIpKX0sb25QaWNrZXJHaWZJdGVtQ2xpY2soZSl7ZS50eXBlJiZlLnVybCYmZC5tZXNzYWdlcy5zZW5kKCJhbmltYXRpb24iLHt0eXBlOmUudHlwZSx1cmw6ZS51cmx9KSxkLmNoYXRQaWNrZXIuaGlkZSgpLGguZm9jdXNPbkZvcmVncm91bmQoKX19fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7Y29uc3Qgbj12KCJzZWFyY2gtZm9ybSIpLGk9digiZW1vamktcGlja2VyIiksbz12KCJjaGF0LWNvbnRlbnQtcG9wb3Zlci1pdGVtIikscj12KCJjaGF0LWNvbnRlbnQtcG9wb3ZlciIpLGg9ZygiY3Jpc3AtYWNjZXNzaWJpbGl0eSIpO3JldHVybiBlLiRzdG9yZS5jaGF0UGlja2VyLmlzX3Zpc2libGU/KEEoKSxVKHIse2tleTowLGNsYXNzOiJjYy0xOTJqMCIsb25DbGljazplLm9uQ2xpY2ssb25XaGVlbDplLm9uV2hlZWwsImhhcy1hbmltYXRpb24iOmUuJHN0b3JlLmNoYXRQaWNrZXIuaGFzX2FuaW1hdGlvbn0se2lubmVyOngoKCk9Plsic21pbGV5Ij09PWUuJHN0b3JlLmNoYXRQaWNrZXIudHlwZT8oQSgpLFUobyx7a2V5OjAsY2xhc3M6ImNjLTEwNnJqIiwiaGFzLWFuaW1hdGlvbiI6ZS4kc3RvcmUuY2hhdFBpY2tlci5oYXNfYW5pbWF0aW9uLCJkYXRhLXR5cGUiOiJzbWlsZXkifSx7ZGVmYXVsdDp4KCgpPT5beigic3BhbiIsTW4sW3ooInNwYW4iLCRuLFt5KG4se21vZGVsVmFsdWU6ZS4kc3RvcmUuY2hhdFBpY2tlci5zbWlsZXkuaW5wdXQsIm9uVXBkYXRlOm1vZGVsVmFsdWUiOmNbMF18fChjWzBdPWM9PmUuJHN0b3JlLmNoYXRQaWNrZXIuc21pbGV5LmlucHV0PWMpLHBsYWNlaG9sZGVyOmUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfcGlja2Vyc19zbWlsZXlfc2VhcmNoIiksImNyaXNwLWZvY3VzLWZvcmVncm91bmQiOntwcmlvcml0eToyfSxkaXNhYmxlZDplLiRzdG9yZS5jaGF0Lmhhc19vZmZsaW5lLCJtYXgtbGVuZ3RoIjoyNSxuYW1lOiJzbWlsZXlfc2VhcmNoIixhdXRvZm9jdXM6IiJ9LG51bGwsOCxbIm1vZGVsVmFsdWUiLCJwbGFjZWhvbGRlciIsImRpc2FibGVkIl0pXSldKSx6KCJzcGFuIix7Y2xhc3M6bShbImNjLTFrbWI4Iix7ImNjLTFrbWI4LS1sb2FkaW5nIjplLmVtb2ppUGlja2VyTG9hZGluZ31dKX0sW2UuZW1vamlQaWNrZXJMb2FkaW5nPyhBKCksRigic3BhbiIsQW4sWy4uLmNbNF18fChjWzRdPVt6KCJzcGFuIix7Y2xhc3M6ImNjLW1ucDYwIGNjLTFsd2t6IiwiZGF0YS10aW50IjoidGhlbWUifSxudWxsLC0xKV0pXSkpOlooIiIsITApLHkoaSx7b25TZWxlY3Q6ZS5vblNtaWxleVBpY2tlclNlbGVjdCwiZ3JvdXAtbmFtZXMiOmUuZ3JvdXBOYW1lcywic2VhcmNoLXF1ZXJ5IjplLiRzdG9yZS5jaGF0UGlja2VyLnNtaWxleS5pbnB1dCx0aGVtZToibGlnaHQiLCJkaXNhYmxlLXNraW4tdG9uZXMiOiIiLCJoaWRlLWdyb3VwLWljb25zIjoiIiwiaGlkZS1zZWFyY2giOiIiLG5hdGl2ZToiIn0se2VtcHR5OngoKCk9Plt6KCJzcGFuIixMbixbeigic3BhbiIsRG4sZihlLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X3BpY2tlcnNfbm9fcmVzdWx0cyIpKSwxKV0pXSksXzoxfSw4LFsib25TZWxlY3QiLCJncm91cC1uYW1lcyIsInNlYXJjaC1xdWVyeSJdKV0sMildKSxfOjF9LDgsWyJoYXMtYW5pbWF0aW9uIl0pKTpaKCIiLCEwKSwiZ2lmIj09PWUuJHN0b3JlLmNoYXRQaWNrZXIudHlwZT8oQSgpLFUobyx7a2V5OjEsY2xhc3M6ImNjLTEwNnJqIiwiaGFzLWFuaW1hdGlvbiI6ZS4kc3RvcmUuY2hhdFBpY2tlci5oYXNfYW5pbWF0aW9uLCJkYXRhLXR5cGUiOiJnaWYifSx7ZGVmYXVsdDp4KCgpPT5beigic3BhbiIsRW4sW3ooInNwYW4iLFZuLFt5KG4se21vZGVsVmFsdWU6ZS4kc3RvcmUuY2hhdFBpY2tlci5naWYuaW5wdXQsIm9uVXBkYXRlOm1vZGVsVmFsdWUiOmNbMV18fChjWzFdPWM9PmUuJHN0b3JlLmNoYXRQaWNrZXIuZ2lmLmlucHV0PWMpLG9uS2V5dXA6ZS5vblBpY2tlckdpZklucHV0S2V5dXAsb25DbGVhcjplLm9uUGlja2VyR2lmSW5wdXRSZXNldCxwbGFjZWhvbGRlcjplLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X3BpY2tlcnNfZ2lmX3NlYXJjaCIpLCJjcmlzcC1mb2N1cy1mb3JlZ3JvdW5kIjp7cHJpb3JpdHk6Mn0sZGlzYWJsZWQ6ZS4kc3RvcmUuY2hhdC5oYXNfb2ZmbGluZSwibWF4LWxlbmd0aCI6MjUsbmFtZToiZ2lmX3NlYXJjaCIsYXV0b2ZvY3VzOiIiLGNsZWFyOiIifSxudWxsLDgsWyJtb2RlbFZhbHVlIiwib25LZXl1cCIsIm9uQ2xlYXIiLCJwbGFjZWhvbGRlciIsImRpc2FibGVkIl0pXSldKSx6KCJzcGFuIix7Y2xhc3M6bShbImNjLTFrbWI4Iix7ImNjLTFrbWI4LS1lbXB0eSI6MD09PWUuJHN0b3JlLmNoYXRQaWNrZXIuZ2lmLnJlc3VsdHMubGVuZ3RofV0pfSxbKEEoITApLEYoSSxudWxsLGIoZS4kc3RvcmUuY2hhdFBpY2tlci5naWYucmVzdWx0cywoYyx0KT0+RygoQSgpLEYoInNwYW4iLHtjbGFzczoiY2MtMXhpZmgiLG9uQ2xpY2s6dD0+ZS5vblBpY2tlckdpZkl0ZW1DbGljayhjKSxrZXk6YGdpZl8ke3R9YCwiZGF0YS10eXBlIjpjLnR5cGUsImRhdGEtbG9hZGluZyI6Yy5sb2FkaW5nfSxbYy51cmw/KEEoKSxGKCJzcGFuIix7a2V5OjAsY2xhc3M6ImNjLTdoaW1nIixzdHlsZTprKHtiYWNrZ3JvdW5kSW1hZ2U6ZS4kcmVuZGVyLmltYWdlVXJsQmFja2dyb3VuZChlLiRDT05GSUcuVVJMX0lNQUdFKyIvcHJvY2Vzcy9vcmlnaW5hbC8/dXJsPSIrYy51cmwpfSl9LG51bGwsNCkpOlooIiIsITApXSw4LEhuKSksW1toLHtyb2xlOiJidXR0b24ifV1dKSksMTI4KSldLDIpLHooInNwYW4iLFJuLFswPT09ZS4kc3RvcmUuY2hhdFBpY2tlci5naWYucmVzdWx0cy5sZW5ndGg/KEEoKSxGKCJzcGFuIixLbixmKGUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfcGlja2Vyc19ub19yZXN1bHRzIikpLDEpKTpaKCIiLCEwKV0pXSksXzoxfSw4LFsiaGFzLWFuaW1hdGlvbiJdKSk6WigiIiwhMCkseigiZGl2IixPbixbRygoQSgpLEYoInNwYW4iLHtvbkNsaWNrOmNbMl18fChjWzJdPWM9PmUub25QaWNrZXJTaG93Q2xpY2soInNtaWxleSIpKSxjbGFzczptKFsiY2MtNjF3ZXkiLCJjYy0xMGNxcyIseyJjYy02MXdleS0tYWN0aXZlIGNjLTFpNGwxIjoic21pbGV5Ij09PWUuJHN0b3JlLmNoYXRQaWNrZXIudHlwZX1dKSwiZGF0YS10eXBlIjoic21pbGV5In0sW2NbNV18fChjWzVdPXooInNwYW4iLHtjbGFzczoiY2MtdWRsYWgifSxudWxsLC0xKSkseigic3BhbiIsVW4sZihlLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X3BpY2tlcnNfc2VsZWN0b3Jfc21pbGV5cyIpKSwxKV0sMikpLFtbaCx7cm9sZToiYnV0dG9uIn1dXSksRygoQSgpLEYoInNwYW4iLHtvbkNsaWNrOmNbM118fChjWzNdPWM9PmUub25QaWNrZXJTaG93Q2xpY2soImdpZiIpKSwiZGF0YS1kaXNhYmxlZCI6ZS4kc3RvcmUuY2hhdC5oYXNfb2ZmbGluZSYmImdpZiIhPT1lLiRzdG9yZS5jaGF0UGlja2VyLnR5cGU/InRydWUiOiJmYWxzZSIsY2xhc3M6bShbImNjLTYxd2V5IiwiY2MtMTBjcXMiLHsiY2MtNjF3ZXktLWFjdGl2ZSBjYy0xaTRsMSI6ImdpZiI9PT1lLiRzdG9yZS5jaGF0UGlja2VyLnR5cGV9XSksImRhdGEtdHlwZSI6ImdpZiJ9LFtjWzZdfHwoY1s2XT16KCJzcGFuIix7Y2xhc3M6ImNjLXVkbGFoIn0sbnVsbCwtMSkpLHooInNwYW4iLFduLGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9waWNrZXJzX3NlbGVjdG9yX2dpZnMiKSksMSldLDEwLE5uKSksW1toLHtyb2xlOiJidXR0b24ifV1dKV0pXSksXzoxfSw4LFsib25DbGljayIsIm9uV2hlZWwiLCJoYXMtYW5pbWF0aW9uIl0pKTpaKCIiLCEwKX1dXSksWW49e2NsYXNzOiJjYy0xbjN3MiJ9O3ZhciBKbj11KHt9LFtbInJlbmRlciIsZnVuY3Rpb24oZSxjKXtyZXR1cm4gQSgpLEYoImRpdiIsWW4sW3coZS4kc2xvdHMsImRlZmF1bHQiKV0pfV1dKSxYbj1bImFyaWEtbGFiZWwiLCJhcmlhLWxhYmVsbGVkYnkiLCJhcmlhLWRlc2NyaWJlZGJ5IiwiYXJpYS1pbnZhbGlkIiwicGxhY2Vob2xkZXIiLCJ0eXBlIiwiYXV0b2NvbXBsZXRlIiwiZGlzYWJsZWQiLCJuYW1lIl0sZWk9WyJpZCJdO3ZhciBjaT11KHEoe2NvbXBvbmVudHM6e0Jhc2VCdXR0b246TSxDaGF0Q29udGVudFBvcG92ZXI6Ym4sQ2hhdENvbnRlbnRQb3BvdmVySXRlbTpDbixDaGF0Q29udGVudFBvcG92ZXJJdGVtVGl0bGU6cW4sQ2hhdENvbnRlbnRQb3BvdmVySXRlbUFjdGlvbnM6Sm59LGRhdGE6KCk9Pih7ZGF0YU1vZGVsOntpZGVudGl0eToiIixoYXNFcnJvcjohMX19KSxjb21wdXRlZDp7ZmllbGREZXNjcmliZWRCeSgpe3JldHVybiEwPT09dGhpcy5oYXNGaWVsZEVycm9yP3RoaXMuZmllbGRFcnJvcklkOm51bGx9LGZpZWxkRXJyb3JJZCgpe3JldHVybmBpZGVudGl0eV8ke3RoaXMuaWRlbnRpdHlUeXBlfV9lcnJvcmB9LGZpZWxkRXJyb3JUZXh0KCl7bGV0IGU9W3RoaXMuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfYWxlcnRzX2VtYWlsX2ludmFsaWQiKV07cmV0dXJuIG51bGwhPT10aGlzLmZpZWxkRm9ybWF0VGV4dCYmZS5wdXNoKHRoaXMuZmllbGRGb3JtYXRUZXh0KSxlLmpvaW4oIiAiKX0sZmllbGRGb3JtYXRUZXh0KCl7cmV0dXJuImVtYWlsIj09PXRoaXMuaWRlbnRpdHlUeXBlP3RoaXMuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfaWRlbnRpdHlfYXNrX2Zvcm1hdF9lbWFpbCIpOm51bGx9LGZpZWxkSGludElkKCl7cmV0dXJuYGlkZW50aXR5XyR7dGhpcy5pZGVudGl0eVR5cGV9X2hpbnRgfSxmaWVsZExhYmVsbGVkQnkoKXtyZXR1cm5bdGhpcy5maWVsZFRpdGxlSWQsdGhpcy5maWVsZEhpbnRJZF0uam9pbigiICIpfSxmaWVsZFRpdGxlSWQoKXtyZXR1cm5gaWRlbnRpdHlfJHt0aGlzLmlkZW50aXR5VHlwZX1fdGl0bGVgfSxoYXNGaWVsZEVycm9yKCl7cmV0dXJuITA9PT10aGlzLmRhdGFNb2RlbC5oYXNFcnJvciYmImVtYWlsIj09PXRoaXMuaWRlbnRpdHlUeXBlfSxpZGVudGl0eUFsbG93ZWQ6KCk9PiEoImNoYXQiIT09ZC5jaGF0Lm1vZGV8fCFkLmNoYXQuY29udmVyc2F0aW9ucy5jdXJyZW50X3Nlc3Npb25faWQpLGlkZW50aXR5VHlwZSgpe3N3aXRjaChkLmNoYXRJbnRlbnQuY3VycmVudF9pZGVudGl0eSl7Y2FzZSJlbWFpbCI6cmV0dXJuImVtYWlsIjtjYXNlInBob25lIjpyZXR1cm4icGhvbmUiO2RlZmF1bHQ6cmV0dXJuIG51bGx9fX0sbWV0aG9kczp7ZGVzZWxlY3RQaWNrZXJCdXR0b24oKXtsZXQgZT1kLm1lc3NhZ2VzLmNvbnZlcnNhdGlvbi5saXN0O2ZvcihsZXQgYz1lLmxlbmd0aC0xO2M+PTA7Yy0tKXtsZXQgdD1lW2NdO2lmKCJwaWNrZXIiPT09dC50eXBlJiYiYXNrLWlkZW50aXR5Ij09PXQuY29udGVudC5pZCl7bGV0IGU9dC5jb250ZW50LmNob2ljZXMuZmluZChlPT5lLnZhbHVlPT09dGhpcy5pZGVudGl0eVR5cGUpO2UmJihlLnNlbGVjdGVkPSExKTticmVha319fSxjbG9zZSgpe3RoaXMuZGF0YU1vZGVsLmlkZW50aXR5PSIiLHRoaXMuZGF0YU1vZGVsLmhhc0Vycm9yPSExLGQuY2hhdEludGVudC51cGRhdGUoImlkZW50aXR5IiwiZGVmYXVsdCIpfSxvbklucHV0KCl7dGhpcy5kYXRhTW9kZWwuaGFzRXJyb3I9ITF9LG9uSW5wdXRLZXlkb3duKGUpe3N3aXRjaChlLmtleUNvZGUpe2Nhc2UgMTM6ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMub25TdWJtaXRDbGljaygpO2JyZWFrO2Nhc2UgMjc6ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMub25Ta2lwQ2xpY2soKX19LG9uU3VibWl0Q2xpY2soKXtsZXQgYz10aGlzLmRhdGFNb2RlbC5pZGVudGl0eTtpZihjLmxlbmd0aD4wKXt0cnl7ZSgpLkFjdGlvbltgc2V0X3VzZXJfJHt0aGlzLmlkZW50aXR5VHlwZX1gXShjKSx0aGlzLmRlc2VsZWN0UGlja2VyQnV0dG9uKCl9Y2F0Y2h7dGhpcy5kYXRhTW9kZWwuaGFzRXJyb3I9ITAsdGhpcy5vblBvcG92ZXJJdGVtQ2xpY2soKX1wLnN0YXJ0KCJldmVudHMiLCJjaGF0LW1lc3NhZ2UtYWN0aW9uIil9ZWxzZSB0aGlzLmRhdGFNb2RlbC5oYXNFcnJvcj0hMCx0aGlzLm9uUG9wb3Zlckl0ZW1DbGljaygpfSxvblNraXBDbGljaygpe3RoaXMuZGVzZWxlY3RQaWNrZXJCdXR0b24oKSxoLmZvY3VzT25Gb3JlZ3JvdW5kKCksdGhpcy5jbG9zZSgpfSxvblBvcG92ZXJJdGVtQ2xpY2soKXtoLmZvY3VzT25Gb3JlZ3JvdW5kKCl9LG9uQ2xpY2soZSl7bGV0IGM9ZS50YXJnZXQ7IWN8fCEwIT09Yy5jbGFzc0xpc3QuY29udGFpbnMoImNjLWFvcHJmIikmJmMuY2xvc2VzdCgiLmNjLWFvcHJmIil8fHRoaXMub25Ta2lwQ2xpY2soKX19fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7Y29uc3Qgbj12KCJjaGF0LWNvbnRlbnQtcG9wb3Zlci1pdGVtLXRpdGxlIiksaT12KCJiYXNlLWJ1dHRvbiIpLG89digiY2hhdC1jb250ZW50LXBvcG92ZXItaXRlbS1hY3Rpb25zIikscj12KCJjaGF0LWNvbnRlbnQtcG9wb3Zlci1pdGVtIiksaD12KCJjaGF0LWNvbnRlbnQtcG9wb3ZlciIpLGQ9ZygiY3Jpc3AtZm9jdXMtZm9yZWdyb3VuZCIpLHA9ZygiY3Jpc3AtYWNjZXNzaWJpbGl0eSIpO3JldHVybiBlLmlkZW50aXR5VHlwZSYmZS5pZGVudGl0eUFsbG93ZWQ/KEEoKSxVKGgse2tleTowLGNsYXNzOiJjYy1hb3ByZiIsb25DbGljazplLm9uQ2xpY2ssImhhcy1vdmVybGF5IjoiIn0se2lubmVyOngoKCk9Plt5KHIse2NsYXNzOiJjYy02NmVnayIsb25DbGljazplLm9uUG9wb3Zlckl0ZW1DbGljaywiZGF0YS10eXBlIjplLmlkZW50aXR5VHlwZSwicGFkZGluZy1sZXZlbCI6ImV4dGVuZGVkIn0se2RlZmF1bHQ6eCgoKT0+W3kobix7dGl0bGU6ZS4kcmVuZGVyLl9lKCJjaGF0IixgY2hhdF9pZGVudGl0eV9hc2tfJHtlLmlkZW50aXR5VHlwZX1gKSxzdWJ0aXRsZTplLiRyZW5kZXIuX2UoImNoYXQiLGBjaGF0X2lkZW50aXR5X2Fza19leHBsYWluXyR7ZS5pZGVudGl0eVR5cGV9YCksInRpdGxlLWlkIjplLmZpZWxkVGl0bGVJZCwic3VidGl0bGUtaWQiOmUuZmllbGRIaW50SWR9LG51bGwsOCxbInRpdGxlIiwic3VidGl0bGUiLCJ0aXRsZS1pZCIsInN1YnRpdGxlLWlkIl0pLEcoeigiaW5wdXQiLHtjbGFzczoiY2MtMWVpZTQgY2MtM3JmZ2MgY2MtMWljcmoiLCJvblVwZGF0ZTptb2RlbFZhbHVlIjpjWzBdfHwoY1swXT1jPT5lLmRhdGFNb2RlbC5pZGVudGl0eT1jKSxvbklucHV0OmNbMV18fChjWzFdPSguLi5jKT0+ZS5vbklucHV0JiZlLm9uSW5wdXQoLi4uYykpLG9uS2V5ZG93bjpjWzJdfHwoY1syXT0oLi4uYyk9PmUub25JbnB1dEtleWRvd24mJmUub25JbnB1dEtleWRvd24oLi4uYykpLCJhcmlhLWxhYmVsIjplLiRyZW5kZXIuX2UoImNoYXQiLGBjaGF0X2lkZW50aXR5X2Fza19maWVsZF8ke2UuaWRlbnRpdHlUeXBlfWApLCJhcmlhLWxhYmVsbGVkYnkiOmUuZmllbGRMYWJlbGxlZEJ5LCJhcmlhLWRlc2NyaWJlZGJ5IjplLmZpZWxkRGVzY3JpYmVkQnksImFyaWEtaW52YWxpZCI6ZS5oYXNGaWVsZEVycm9yPyJ0cnVlIjpudWxsLHBsYWNlaG9sZGVyOmUuJHJlbmRlci5fZSgiY2hhdCIsYGNoYXRfaWRlbnRpdHlfYXNrX2ZpZWxkXyR7ZS5pZGVudGl0eVR5cGV9YCksdHlwZToicGhvbmUiPT09ZS5pZGVudGl0eVR5cGU/InRlbCI6ImVtYWlsIixhdXRvY29tcGxldGU6InBob25lIj09PWUuaWRlbnRpdHlUeXBlPyJ0ZWwiOiJlbWFpbCIsZGlzYWJsZWQ6ZS4kc3RvcmUuY2hhdC5oYXNfb2ZmbGluZSxuYW1lOmBpZGVudGl0eV8ke2UuaWRlbnRpdHlUeXBlfWAsYXV0b2NhcGl0YWxpemU6Im9mZiIsYXV0b2NvcnJlY3Q6Im9mZiIsc3BlbGxjaGVjazoiZmFsc2UiLHRhYmluZGV4OiIwIixhdXRvZm9jdXM6IiJ9LG51bGwsNDAsWG4pLFtbZCx7cHJpb3JpdHk6MX1dLFtCLGUuZGF0YU1vZGVsLmlkZW50aXR5LHZvaWQgMCx7dHJpbTohMH1dXSksZS5oYXNGaWVsZEVycm9yP0coKEEoKSxGKCJkaXYiLHtrZXk6MCxjbGFzczoiY2MtMXAwZG4gY2MtMTBjcXMiLGlkOmUuZmllbGRFcnJvcklkfSxbaihmKGUuZmllbGRFcnJvclRleHQpLDEpXSw4LGVpKSksW1twLHtyb2xlOiJhbGVydCJ9XV0pOlooIiIsITApLHkobyxudWxsLHtkZWZhdWx0OngoKCk9Plt5KGkse29uQ2xpY2s6RChlLm9uU3VibWl0Q2xpY2ssWyJzdG9wIl0pLCJhcmlhLWxhYmVsIjplLiRyZW5kZXIuX2UoImNoYXQiLGBjaGF0X2lkZW50aXR5X2Fza19zdWJtaXRfJHtlLmlkZW50aXR5VHlwZX1gKSxkaXNhYmxlZDplLiRzdG9yZS5jaGF0Lmhhc19vZmZsaW5lLHNpemU6ImxhcmdlIix0aW50OiJ0aGVtZSJ9LHtkZWZhdWx0OngoKCk9PltqKGYoZS4kcmVuZGVyLl9lKCJjaGF0IixgY2hhdF9pZGVudGl0eV9hc2tfc3VibWl0XyR7ZS5pZGVudGl0eVR5cGV9YCkpLDEpXSksXzoxfSw4LFsib25DbGljayIsImFyaWEtbGFiZWwiLCJkaXNhYmxlZCJdKSwhMCE9PWUuJHN0b3JlLndlYnNpdGU/LmNoYXQ/LmZvcmNlX2lkZW50aWZ5PyhBKCksVShpLHtrZXk6MCxvbkNsaWNrOkQoZS5vblNraXBDbGljayxbInN0b3AiXSksImFyaWEtbGFiZWwiOmUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfaWRlbnRpdHlfYXNrX3NraXAiKSxzaXplOiJsYXJnZSJ9LHtkZWZhdWx0OngoKCk9PltqKGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9pZGVudGl0eV9hc2tfc2tpcCIpKSwxKV0pLF86MX0sOCxbIm9uQ2xpY2siLCJhcmlhLWxhYmVsIl0pKTpaKCIiLCEwKV0pLF86MX0pXSksXzoxfSw4LFsib25DbGljayIsImRhdGEtdHlwZSJdKV0pLF86MX0sOCxbIm9uQ2xpY2siXSkpOlooIiIsITApfV1dKSx0aT1bImRhdGEtdHlwZSJdLGFpPXtrZXk6MCxjbGFzczoiY2MtczJnZXggY2MtMTBjcXMifSxzaT17Y2xhc3M6ImNjLTFxa3FlIn0sbGk9e2NsYXNzOiJjYy1jdGJ5ZyIscmVmOiJmaWVsZCJ9LG5pPVsiZGlzYWJsZWQiLCJwbGFjZWhvbGRlciIsIm1heGxlbmd0aCIsInBhdHRlcm4iXSxpaT1bIm9uVXBkYXRlOm1vZGVsVmFsdWUiLCJvbkZvY3VzIiwib25JbnB1dCIsIm9uS2V5ZG93biIsImRpc2FibGVkIiwicGxhY2Vob2xkZXIiLCJhdXRvY29tcGxldGUiLCJ0eXBlIiwibWF4bGVuZ3RoIiwicGF0dGVybiIsIm5hbWUiXTt2YXIgb2k9L151cm46KFteOl0rKTooW146XSspOihbMC05XSspJC8scmk9L14oWzAtOV17Nn0pJC8saGk9L1teMC05XS9nLGRpPXUocSh7Y29tcG9uZW50czp7QmFzZUJ1dHRvbjpNLENoYXRDb250ZW50UG9wb3ZlcjpibixDaGF0Q29udGVudFBvcG92ZXJJdGVtOkNuLENoYXRDb250ZW50UG9wb3Zlckl0ZW1UaXRsZTpxbixDaGF0Q29udGVudFBvcG92ZXJJdGVtQWN0aW9uczpKbn0sZGF0YTooKT0+KHtzaXplOjYscGF0dGVybjoiWzAtOV0qIixwbGFjZWhvbGRlclVuYXJ5OiIwIixwbGFjZWhvbGRlckZ1bGw6IjAiLnJlcGVhdCg2KSx0b2tlblBhcnRzOkFycmF5KDYpLmZpbGwoIiIpLHRva2VuRnVsbDoiIn0pLGNvbXB1dGVkOnthdXRoZW50aWNhdGVUeXBlKCl7bGV0IGU9ZC5jaGF0QXV0aGVudGljYXRlLmlkZW50aXR5fHxudWxsO2lmKG51bGwhPT1lKXtsZXQgYz1lLm1hdGNoKG9pKTtyZXR1cm4gYz8uWzJdP2NbMl06ZX1yZXR1cm4gbnVsbH0saGFzRXJyb3I6KCk9PiEhZC5jaGF0QXV0aGVudGljYXRlLmxhc3RfZXJyb3IsaXNGdWxsRmllbGQ6KCk9PiEhZC5iYXNlLmlzX21vYmlsZV92aWV3LHN1Ym1pdHRpbmc6KCk9PmQuY2hhdEF1dGhlbnRpY2F0ZS5pc19wZW5kaW5nfHwhMSx0YXJnZXQ6KCk9PmQuY2hhdEF1dGhlbnRpY2F0ZS5hbm5vdGF0aW9ufHxudWxsLHRpdGxlKCl7c3dpdGNoKHRoaXMuYXV0aGVudGljYXRlVHlwZSl7Y2FzZSJlbWFpbCI6cmV0dXJuIHRoaXMuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfYXV0aGVudGljYXRlX2NoZWNrX2VtYWlsIik7Y2FzZSJwaG9uZSI6cmV0dXJuIHRoaXMuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfYXV0aGVudGljYXRlX2NoZWNrX3Bob25lIik7ZGVmYXVsdDpyZXR1cm4gdGhpcy4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9hdXRoZW50aWNhdGVfY2hlY2tfcGxhdGZvcm0iLFt0aGlzLiRmaWx0ZXJzLnN0cmluZy51cHBlclN0cmluZ0ZpcnN0KHRoaXMuYXV0aGVudGljYXRlVHlwZSldKX19fSx3YXRjaDp7aGFzRXJyb3IoZSxjKXtlIT09YyYmITA9PT1lJiYodGhpcy50b2tlblBhcnRzPXRoaXMudG9rZW5QYXJ0cy5maWxsKCIiKSx0aGlzLnRva2VuRnVsbD0iIix0aGlzLmF1dG9mb2N1c0xhc3RFbXB0eSgpKX19LG1vdW50ZWQoKXtsLnNldFRpbWVvdXQoKCk9Pnt0aGlzLmF1dG9mb2N1c0xhc3RFbXB0eSgpfSwxMDApfSxtZXRob2RzOnthdXRvZm9jdXNMYXN0RW1wdHkoKXtDKCgpPT57bGV0IGU9dGhpcy5nZXRUb2tlblZhbHVlKCk7ZS5sZW5ndGg8NiYmdGhpcy5zZWxlY3RUb2tlbklucHV0cygpW3RoaXMuaXNGdWxsRmllbGQ/MDplLmxlbmd0aF0/LmZvY3VzKCl9KX0sc2VsZWN0VG9rZW5JbnB1dHMoKXtyZXR1cm4gdGhpcy4kcmVmcy5maWVsZD8ucXVlcnlTZWxlY3RvckFsbCgiaW5wdXQiKXx8W119LGdldFRva2VuVmFsdWUoKXtsZXQgZT0iIjtpZighMD09PXRoaXMuaXNGdWxsRmllbGQpZT10aGlzLnRva2VuRnVsbDtlbHNlIGZvcihsZXQgYz0wO2M8dGhpcy50b2tlblBhcnRzLmxlbmd0aDtjKyspZSs9dm9pZCAwIT09dGhpcy50b2tlblBhcnRzW2NdP3RoaXMudG9rZW5QYXJ0c1tjXToiIjtyZXR1cm4gZX0sc3VibWl0SWZDb21wbGV0ZSgpe2xldCBlPXRoaXMuZ2V0VG9rZW5WYWx1ZSgpOzY9PT1lLmxlbmd0aCYmdGhpcy5zdWJtaXQoZSl9LHN1Ym1pdChlKXtkLmNoYXRBdXRoZW50aWNhdGUuc3VibWl0KGUpfSxvbkNvZGVGb2N1cyhlKXtpZighMT09PXRoaXMuaXNGdWxsRmllbGQpe2xldCBjPXRoaXMuZ2V0VG9rZW5WYWx1ZSgpLHQ9ZSsxO2MubGVuZ3RoPDYmJnQ+Yy5sZW5ndGgmJnQ8PTYmJnRoaXMuc2VsZWN0VG9rZW5JbnB1dHMoKVtjLmxlbmd0aF0uZm9jdXMoKX19LG9uQ29kZUlucHV0KGUsYyl7aWYoITE9PT10aGlzLmlzRnVsbEZpZWxkKXtsZXQgdD1lKzE7aWYoYy5kYXRhKXtjb25zdCBlPXRoaXMuc2VsZWN0VG9rZW5JbnB1dHMoKTt0PDYmJmVbdF0uZm9jdXMoKX19dGhpcy5zdWJtaXRJZkNvbXBsZXRlKCl9LG9uQ29kZUtleWRvd24oZSxjKXtzd2l0Y2goYy5rZXlDb2RlKXtjYXNlIDEzOnRoaXMuc3VibWl0SWZDb21wbGV0ZSgpO2JyZWFrO2Nhc2UgODppZighMT09PXRoaXMuaXNGdWxsRmllbGQpe2NvbnN0IGM9dGhpcy5zZWxlY3RUb2tlbklucHV0cygpOzA9PT1jW2VdLnZhbHVlLmxlbmd0aCYmZT4wJiZjW2UtMV0uZm9jdXMoKX19fSxvbkNvZGVQYXN0ZShlKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IGM9ZS5jbGlwYm9hcmREYXRhfHxlLm9yaWdpbmFsRXZlbnQuY2xpcGJvYXJkRGF0YXx8e307aWYoYyl7bGV0IGU9KGMuZ2V0RGF0YSgidGV4dC9wbGFpbiIpfHwiIikudHJpbSgpLnJlcGxhY2UoaGksIiIpLnNsaWNlKDAsNik7ITA9PT1yaS50ZXN0KGUpJiYodGhpcy50b2tlblBhcnRzPWUuc3BsaXQoIiIpLHRoaXMudG9rZW5GdWxsPWUsdGhpcy5zdWJtaXRJZkNvbXBsZXRlKCkpfX0sb25JdGVtQ2xpY2soKXt0aGlzLmF1dG9mb2N1c0xhc3RFbXB0eSgpfSxvblN1Ym1pdENsaWNrKCl7dGhpcy5zdWJtaXRJZkNvbXBsZXRlKCl9LG9uQ2FuY2VsQ2xpY2soKXtkLmNoYXRBdXRoZW50aWNhdGUuaGlkZShkLmNoYXRBdXRoZW50aWNhdGUuc2Vzc2lvbl9pZCl9fX0pLFtbInJlbmRlciIsZnVuY3Rpb24oZSxjLHQsYSxzLGwpe2NvbnN0IG49digiY2hhdC1jb250ZW50LXBvcG92ZXItaXRlbS10aXRsZSIpLGk9digiYmFzZS1idXR0b24iKSxvPXYoImNoYXQtY29udGVudC1wb3BvdmVyLWl0ZW0tYWN0aW9ucyIpLHI9digiY2hhdC1jb250ZW50LXBvcG92ZXItaXRlbSIpLGg9digiY2hhdC1jb250ZW50LXBvcG92ZXIiKSxkPWcoImNyaXNwLWZvY3VzLWZvcmVncm91bmQiKTtyZXR1cm4gZS4kc3RvcmUuY2hhdEF1dGhlbnRpY2F0ZS5pc192aXNpYmxlJiZlLmF1dGhlbnRpY2F0ZVR5cGU/KEEoKSxVKGgse2tleTowLGNsYXNzOiJjYy1xMTNjYSIsImhhcy1vdmVybGF5IjoiIn0se2lubmVyOngoKCk9Plt5KHIse2NsYXNzOiJjYy1mNHBwYyIsb25DbGljazplLm9uSXRlbUNsaWNrLCJwYWRkaW5nLWxldmVsIjoiZXh0ZW5kZWQifSx7ZGVmYXVsdDp4KCgpPT5beShuLHt0aXRsZTplLnRpdGxlLHN1YnRpdGxlOmUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfYXV0aGVudGljYXRlX2V4cGxhaW4iKSxpY29uOiJhbGVydCIsInNwYWNlZC10aXRsZXMiOiIifSxudWxsLDgsWyJ0aXRsZSIsInN1YnRpdGxlIl0pLHooImRpdiIse2NsYXNzOiJjYy1kbjA4ZCIsImRhdGEtdHlwZSI6ZS5hdXRoZW50aWNhdGVUeXBlfSxmKGUudGFyZ2V0fHwiLS0iKSw5LHRpKSxlLmhhc0Vycm9yPyhBKCksRigiZGl2IixhaSxmKGUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfYXV0aGVudGljYXRlX2Vycm9yX2ludmFsaWQiKSksMSkpOlooIiIsITApLHooImRpdiIsc2ksW3ooImRpdiIsbGksW2UuaXNGdWxsRmllbGQ/RygoQSgpLEYoImlucHV0Iix7a2V5OjAsY2xhc3M6ImNjLTFtcG8yIGNjLTFtcG8yLS1mdWxsIGNjLTEwY3FzIiwib25VcGRhdGU6bW9kZWxWYWx1ZSI6Y1swXXx8KGNbMF09Yz0+ZS50b2tlbkZ1bGw9Yyksb25DbGljazpjWzFdfHwoY1sxXT1EKCgpPT57fSxbInN0b3AiXSkpLG9uRm9jdXM6Y1syXXx8KGNbMl09Yz0+ZS5vbkNvZGVGb2N1cygwKSksb25JbnB1dDpjWzNdfHwoY1szXT1jPT5lLm9uQ29kZUlucHV0KDAsYykpLG9uS2V5ZG93bjpjWzRdfHwoY1s0XT1jPT5lLm9uQ29kZUtleWRvd24oMCxjKSksb25QYXN0ZTpjWzVdfHwoY1s1XT0oLi4uYyk9PmUub25Db2RlUGFzdGUmJmUub25Db2RlUGFzdGUoLi4uYykpLGRpc2FibGVkOmUuc3VibWl0dGluZyxwbGFjZWhvbGRlcjplLnBsYWNlaG9sZGVyRnVsbCxtYXhsZW5ndGg6ZS5zaXplLHBhdHRlcm46ZS5wYXR0ZXJuLGlkOiJvdHAiLG5hbWU6Im90cCIsdHlwZToidGV4dCIsaW5wdXRtb2RlOiJudW1lcmljIixhdXRvY29tcGxldGU6Im9uZS10aW1lLWNvZGUiLGF1dG9mb2N1czoiIn0sbnVsbCw0MCxuaSkpLFtbZCx7cHJpb3JpdHk6MX1dLFtILGUudG9rZW5GdWxsXV0pOihBKCEwKSxGKEkse2tleToxfSxiKGUuc2l6ZSx0PT5HKChBKCksRigiaW5wdXQiLHtjbGFzczoiY2MtMW1wbzIgY2MtMTBjcXMiLCJvblVwZGF0ZTptb2RlbFZhbHVlIjpjPT5lLnRva2VuUGFydHNbdC0xXT1jLG9uQ2xpY2s6Y1s2XXx8KGNbNl09RCgoKT0+e30sWyJzdG9wIl0pKSxvbkZvY3VzOmM9PmUub25Db2RlRm9jdXModC0xKSxvbklucHV0OmM9PmUub25Db2RlSW5wdXQodC0xLGMpLG9uS2V5ZG93bjpjPT5lLm9uQ29kZUtleWRvd24odC0xLGMpLG9uUGFzdGU6Y1s3XXx8KGNbN109KC4uLmMpPT5lLm9uQ29kZVBhc3RlJiZlLm9uQ29kZVBhc3RlKC4uLmMpKSxrZXk6ImNvZGVfIit0LGRpc2FibGVkOmUuc3VibWl0dGluZyxwbGFjZWhvbGRlcjplLnBsYWNlaG9sZGVyVW5hcnksYXV0b2NvbXBsZXRlOjE9PT10PyJvbmUtdGltZS1jb2RlIjpudWxsLHR5cGU6MT09PXQ/InRleHQiOiJudW1iZXIiLG1heGxlbmd0aDoxPT09dD9lLnNpemU6MSxwYXR0ZXJuOmUucGF0dGVybixuYW1lOjE9PT10PyJvdHAiOm51bGwsbWF4OiI5IixtaW46IjAiLGlucHV0bW9kZToibnVtZXJpYyJ9LG51bGwsNDAsaWkpKSxbW2QsMT09PXQ/e3ByaW9yaXR5OjF9OntkaXNhYmxlZDohMH1dLFtCLGUudG9rZW5QYXJ0c1t0LTFdXV0pKSwxMjgpKV0sNTEyKV0pLHkobyxudWxsLHtkZWZhdWx0OngoKCk9Plt5KGkse29uQ2xpY2s6RChlLm9uU3VibWl0Q2xpY2ssWyJzdG9wIl0pLCJhcmlhLWxhYmVsIjplLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2F1dGhlbnRpY2F0ZV9zdWJtaXQiKSxkaXNhYmxlZDplLnN1Ym1pdHRpbmcsc2l6ZToibGFyZ2UiLHRpbnQ6InRoZW1lIn0se2RlZmF1bHQ6eCgoKT0+W2ooZihlLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X2F1dGhlbnRpY2F0ZV9zdWJtaXQiKSksMSldKSxfOjF9LDgsWyJvbkNsaWNrIiwiYXJpYS1sYWJlbCIsImRpc2FibGVkIl0pLHkoaSx7b25DbGljazpEKGUub25DYW5jZWxDbGljayxbInN0b3AiXSksImFyaWEtbGFiZWwiOmUuJHJlbmRlci5fZSgiY2hhdCIsImNoYXRfYXV0aGVudGljYXRlX2NhbmNlbCIpLGRpc2FibGVkOmUuc3VibWl0dGluZyxzaXplOiJsYXJnZSJ9LHtkZWZhdWx0OngoKCk9PltqKGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9hdXRoZW50aWNhdGVfY2FuY2VsIikpLDEpXSksXzoxfSw4LFsib25DbGljayIsImFyaWEtbGFiZWwiLCJkaXNhYmxlZCJdKV0pLF86MX0pXSksXzoxfSw4LFsib25DbGljayJdKV0pLF86MX0pKTpaKCIiLCEwKX1dXSk7dmFyIHBpPXUocSh7Y29tcG9uZW50czp7Q2hhdENvbnRlbnRQb3BvdmVyU3RhdGU6U24sQ2hhdENvbnRlbnRQb3BvdmVyRmVlZGJhY2s6SW4sQ2hhdENvbnRlbnRQb3BvdmVyUGlja2VyczpRbixDaGF0Q29udGVudFBvcG92ZXJJZGVudGl0eTpjaSxDaGF0Q29udGVudFBvcG92ZXJBdXRoZW50aWNhdGU6ZGl9fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7Y29uc3Qgbj12KCJjaGF0LWNvbnRlbnQtcG9wb3Zlci1zdGF0ZSIpLGk9digiY2hhdC1jb250ZW50LXBvcG92ZXItZmVlZGJhY2siKSxvPXYoImNoYXQtY29udGVudC1wb3BvdmVyLXBpY2tlcnMiKSxyPXYoImNoYXQtY29udGVudC1wb3BvdmVyLWlkZW50aXR5IiksaD12KCJjaGF0LWNvbnRlbnQtcG9wb3Zlci1hdXRoZW50aWNhdGUiKTtyZXR1cm4gQSgpLEYoSSxudWxsLFt5KG4pLHkoaSkseShvKSx5KHIpLHkoaCldLDY0KX1dXSksdWk9WyJzcmMiXSxtaT17Y2xhc3M6ImNjLTJ4YjNpIn0sZmk9e2tleTowLGNsYXNzOiJjYy10dDQxOCJ9O3ZhciBraT11KHEoe2NvbXBvbmVudHM6e0Jhc2VCdXR0b246TX0sbWV0aG9kczp7b25TdG9wQ2xpY2soKXtkLmdhbWUuc3RvcCgpfX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtjb25zdCBuPXYoImJhc2UtYnV0dG9uIik7cmV0dXJuIEEoKSxGKCJkaXYiLHtjbGFzczptKFsiY2MtMTkwaXciLCJjcmlzcC1jbGllbnQiLHsiY2MtMTkwaXctLWxvYWRlZCI6ZS4kc3RvcmUuZ2FtZS5sb2FkZWR9XSl9LFt6KCJpZnJhbWUiLHtjbGFzczoiY2MtMWxvYXciLG9uTG9hZDpjWzBdfHwoY1swXT1jPT5lLiRzdG9yZS5nYW1lLmxvYWRlZD0hMCksc3JjOmUuJENPTkZJRy5VUkxfQVNTRVRTKyIvZ2FtZS8iLHR5cGU6InRleHQvaHRtbCIsZnJhbWVib3JkZXI6IjAifSxudWxsLDQwLHVpKSx6KCJzcGFuIixtaSxbeShuLHtvbkNsaWNrOmUub25TdG9wQ2xpY2ssc2l6ZToiZGVmYXVsdCIsdHlwZToiYnV0dG9uIix0aW50OiJ0aGVtZSJ9LHtkZWZhdWx0OngoKCk9PltqKGYoZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9nYW1lX2NvbnRyb2xzX3N0b3AiKSksMSldKSxfOjF9LDgsWyJvbkNsaWNrIl0pXSksZS4kc3RvcmUuZ2FtZS5sb2FkZWQ/WigiIiwhMCk6KEEoKSxGKCJzcGFuIixmaSxbLi4uY1sxXXx8KGNbMV09W3ooInNwYW4iLHtjbGFzczoiY2Mtc2tscjIgY2MtMWx3a3oiLCJkYXRhLXRpbnQiOiJ0aGVtZSJ9LG51bGwsLTEpXSldKSldLDIpfV1dKSx5aT17Y2xhc3M6ImNjLXg0dzM4In0sX2k9WyJhcmlhLWxhYmVsIl0sdmk9WyJpbm5lckhUTUwiXSxnaT1bInNyYyJdLGJpPXtrZXk6MCxjbGFzczoiY2MtMTg5YmoifTt2YXIgQ2k9dShxKHtjb21wdXRlZDp7bGF5b3V0Q29sb3JpemVkOigpPT4iY29sb3JpemVkIj09PWQud2Vic2l0ZT8uY2hhdD8ubGF5b3V0X3RoZW1lfSxtZXRob2RzOntvblByZXZpb3VzQ2xpY2soKXtkLmNoYXRGcmFtZS5jbG9zZSgpfX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKGUsYyx0LGEscyxsKXtjb25zdCBuPWcoImNyaXNwLWFjY2Vzc2liaWxpdHkiKTtyZXR1cm4gQSgpLEYoImRpdiIse2NsYXNzOm0oWyJjYy1rNjAydSIseyJjYy1rNjAydS0tbG9hZGVkIjplLiRzdG9yZS5jaGF0RnJhbWUubG9hZGVkLCJjYy1rNjAydS0tbGF5b3V0LWNvbG9yaXplZCI6ZS5sYXlvdXRDb2xvcml6ZWR9XSl9LFt6KCJzcGFuIix7Y2xhc3M6bShbImNjLThtdDRlIix7ImNjLTFpNGwxIjplLmxheW91dENvbG9yaXplZH1dKX0sW3ooImRpdiIseWksW0coKEEoKSxGKCJkaXYiLHtvbkNsaWNrOmNbMF18fChjWzBdPUQoKC4uLmMpPT5lLm9uUHJldmlvdXNDbGljayYmZS5vblByZXZpb3VzQ2xpY2soLi4uYyksWyJwcmV2ZW50Il0pKSwiYXJpYS1sYWJlbCI6ZS4kcmVuZGVyLl9lKCJjaGF0IiwiY2hhdF9mcmFtZV9wcmV2aW91c190b29sdGlwIiksY2xhc3M6bShbImNjLTEyeDVjIix7ImNjLTZ6czRsIjplLmxheW91dENvbG9yaXplZCwiY2MtMWo5MHIiOiFlLmxheW91dENvbG9yaXplZH1dKX0sWy4uLmNbMl18fChjWzJdPVt6KCJzcGFuIix7Y2xhc3M6ImNjLXd3YXA4In0sbnVsbCwtMSldKV0sMTAsX2kpKSxbW24se3JvbGU6ImJ1dHRvbiJ9XV0pLGUuJHN0b3JlLmNoYXRGcmFtZS50aXRsZT8oQSgpLEYoInNwYW4iLHtrZXk6MCxjbGFzczoiY2MtNHBzZ2kgY2MtMTBjcXMiLGlubmVySFRNTDplLiRyZW5kZXIuX2YoZS4kc3RvcmUuY2hhdEZyYW1lLnRpdGxlKX0sbnVsbCw4LHZpKSk6WigiIiwhMCldKV0sMikseigiaWZyYW1lIix7Y2xhc3M6ImNjLXRra2w1IixvbkxvYWQ6Y1sxXXx8KGNbMV09Yz0+ZS4kc3RvcmUuY2hhdEZyYW1lLmxvYWRlZD0hMCksc3JjOmUuJHN0b3JlLmNoYXRGcmFtZS50YXJnZXQsdHlwZToidGV4dC9odG1sIixmcmFtZWJvcmRlcjoiMCJ9LG51bGwsNDAsZ2kpLGUuJHN0b3JlLmNoYXRGcmFtZS5sb2FkZWQ/WigiIiwhMCk6KEEoKSxGKCJzcGFuIixiaSxbLi4uY1szXXx8KGNbM109W3ooInNwYW4iLHtjbGFzczoiY2MtZzMzMm4gY2MtMWx3a3oiLCJkYXRhLXRpbnQiOiJ0aGVtZSJ9LG51bGwsLTEpXSldKSldLDIpfV1dKSx3aT1bImFyaWEtbGFiZWwiXSx4aT17Y2xhc3M6ImNjLTFmNTE2In0samk9e2NsYXNzOiJjYy03bWp1eSJ9O3ZhciBxaT11KHEoe2NvbXBvbmVudHM6e0NoYXRIZWFkZXI6QWMsQ2hhdENvbnRlbnQ6a2wsQ2hhdERyb3A6Z2wsQ2hhdEZvb3Rlcjp5bixDaGF0Q29udGVudFBvcG92ZXJzOnBpLENoYXRHYW1lOmtpLENoYXRGcmFtZTpDaSxDaGF0TWFnbmlmeTphYX0sZGF0YTooKT0+KHtoYXNEcm9wWm9uZTohMX0pLGNvbXB1dGVkOntub0hlYWRlclNlcGFyYXRvcigpe3JldHVybiB0aGlzLmhhc0Ryb3Bab25lfHxkLmNoYXQuaGFzX29mZmxpbmV8fGQuY2hhdC5oYXNfaGVhbHRofHxkLmNoYXQuaXNfbW9kZV9lbWJlZGRlZH19LG1ldGhvZHM6e3NldERyb3Bab25lKGUpeyhlJiYiY2hhdCI9PT1kLmNoYXQubW9kZSYmZC5jaGF0LmNvbnZlcnNhdGlvbnMuY3VycmVudF9zZXNzaW9uX2lkfHwhMT09PWUpJiYhMD09PWQud2Vic2l0ZT8uY2hhdD8uZmlsZV90cmFuc2ZlciYmITAhPT1kLmNoYXQuaXNfZm9ybV9sb2NrZWQmJih0aGlzLmhhc0Ryb3Bab25lPWUpfSxvbkRyYWdvdmVyKGUpe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2V0RHJvcFpvbmUoITApfSxvblNldERyb3Bab25lKGUpe3RoaXMuc2V0RHJvcFpvbmUoZSl9LG9uSGVscGRlc2tTZWFyY2hLZXlkb3duKGUpe3RoaXMuJHJlZnMuY2hhdF9jb250ZW50LiRyZWZzLmNoYXRfY29udGVudF9oZWxwZGVzay5zZWFyY2hLZXlkb3duRnJvbVBhcmVudChlKX19fSksW1sicmVuZGVyIixmdW5jdGlvbihlLGMsdCxhLHMsbCl7Y29uc3Qgbj12KCJjaGF0LWhlYWRlciIpLGk9digiY2hhdC1jb250ZW50Iiksbz12KCJjaGF0LWRyb3AiKSxyPXYoImNoYXQtZm9vdGVyIiksaD12KCJjaGF0LWNvbnRlbnQtcG9wb3ZlcnMiKSxkPXYoImNoYXQtZ2FtZSIpLHA9digiY2hhdC1mcmFtZSIpLHU9digiY2hhdC1tYWduaWZ5Iik7cmV0dXJuIEEoKSxGKCJkaXYiLHtrZXk6ImNoYXQvIitlLiRzdG9yZS5sb2NhbGUuY29kZSxjbGFzczptKFsiY2MtMW1oOTEiLCJjcmlzcC1jbGllbnQiLCJjYy0xc29mNSIseyJjYy0xbWg5MS0tbGF5b3V0LWNvbG9yaXplZCI6ImNvbG9yaXplZCI9PT1lLiRzdG9yZS53ZWJzaXRlPy5jaGF0Py5sYXlvdXRfdGhlbWUsImNjLTFtaDkxLS1uby1oZWFkZXItc2VwYXJhdG9yIjplLm5vSGVhZGVyU2VwYXJhdG9yfV0pLCJhcmlhLWxhYmVsIjplLiRyZW5kZXIuX2UoImNoYXQiLCJjaGF0X3dpbmRvd19sYWJlbCIpLHJvbGU6ImRpYWxvZyIsImFyaWEtbW9kYWwiOiJ0cnVlIn0sW3ooImRpdiIseGksW3ooImRpdiIsamksW3kobix7Im9uSGVscGRlc2s6c2VhcmNoOmtleWRvd24iOmUub25IZWxwZGVza1NlYXJjaEtleWRvd259LG51bGwsOCxbIm9uSGVscGRlc2s6c2VhcmNoOmtleWRvd24iXSldKSx6KCJkaXYiLHtjbGFzczoiY2MtMTVuYTIiLG9uRHJhZ292ZXI6Y1swXXx8KGNbMF09KC4uLmMpPT5lLm9uRHJhZ292ZXImJmUub25EcmFnb3ZlciguLi5jKSl9LFt5KGkse3JlZjoiY2hhdF9jb250ZW50In0sbnVsbCw1MTIpLHkobyx7b25TZXREcm9wWm9uZTplLm9uU2V0RHJvcFpvbmUsZW5hYmxlZDplLmhhc0Ryb3Bab25lfSxudWxsLDgsWyJvblNldERyb3Bab25lIiwiZW5hYmxlZCJdKSwiY2hhdCI9PT1lLiRzdG9yZS5jaGF0Lm1vZGUmJmUuJHN0b3JlLmNoYXQuY29udmVyc2F0aW9ucy5jdXJyZW50X3Nlc3Npb25faWQ/KEEoKSxVKHIse2tleTowfSkpOlooIiIsITApXSwzMikseShoKV0pLGUuJHN0b3JlLmdhbWUudmlzaWJsZT8oQSgpLFUoZCx7a2V5OjB9KSk6WigiIiwhMCksZS4kc3RvcmUuY2hhdEZyYW1lLm9wZW5lZD8oQSgpLFUocCx7a2V5OjF9KSk6WigiIiwhMCkseSh1KV0sMTAsd2kpfV1dKTtmdW5jdGlvbiB6aShlPW51bGwpe2NvbnN0IGM9VChxaSk7cmV0dXJuIGMudXNlKG4pLGMudXNlKEwpLGMudXNlKFYpLGMudXNlKFMpLGMudXNlKFApLGMubW91bnQoZXx8IiNhcHAiKSxjfXZhciBTaT1uZXcgY2xhc3N7bWludChlLGMpe2lmKCJTSEEtMjU2IiE9PWUuYWxnb3JpdGhtKXRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgbWludCBhbGdvcml0aG06ICR7ZS5hbGdvcml0aG19YCk7bGV0IHQ9KG5ldyBEYXRlKS5nZXRUaW1lKCksYT1lLnByb2JsZW1zPy50b3RhbHx8MSxzPWUucHJvYmxlbXM/LnJlcXVpcmVkfHwxLGw9MCxuPUFycmF5KGEpLmZpbGwobnVsbCksaT1BcnJheShhKS5maWxsKDApLG89W2BIJHtzfWAsZS5kaWZmaWN1bHR5LGUuZXhwaXJlc19hdCxlLnN1YmplY3QsZS5ub25jZSxlLmFsZ29yaXRobV0uam9pbigiOiIpO2Zvcig7bDxzOylmb3IobGV0IHQ9MDt0PGE7dCsrKXtpZihudWxsIT09blt0XSljb250aW51ZTtsZXQgYT10aGlzLmsoaVt0XSk7aWYobnVsbD09PWEpdGhyb3cgbmV3IEVycm9yKGBGb3JtYXR0ZWQgaW52YWxpZCBzb2x1dGlvbiBzdHJpbmc6ICR7aVt0XX0gb24gcHJvYmxlbTogIyR7dH1gKTtsZXQgcz1vKyI6IisodCsxKSsiOiIrYSxyPWMudXBkYXRlKHMpLmRpZ2VzdCgpOyEwPT09dGhpcy52KHIsZS5kaWZmaWN1bHR5KT8oblt0XT1hLGwrKyk6aVt0XSs9MX1sZXQgcj0iIjtmb3IobGV0IGg9MDtoPG4ubGVuZ3RoO2grKyl7bGV0IGU9bltoXTtudWxsIT09ZSYmKHIubGVuZ3RoPjAmJihyKz0iLCIpLHIrPWAke2grMX0+JHtlfWApfXJldHVybnt0b2tlbjpvKyI6IityLHNvbHV0aW9uczpuLGR1cmF0aW9uOihuZXcgRGF0ZSkuZ2V0VGltZSgpLXR9fWsoZSl7bGV0IGM9ZS50b1N0cmluZygxNik7Yy5sZW5ndGglMiYmKGM9IjAiK2MpO2xldCB0LGEscz1bXSxsPTA7Zm9yKDtsPGMubGVuZ3RoOyl0PXBhcnNlSW50KGMuc2xpY2UobCxsKzIpLDE2KSxhPVN0cmluZy5mcm9tQ2hhckNvZGUodCkscy5wdXNoKGEpLGwrPTI7cmV0dXJuIGJ0b2Eocy5qb2luKCIiKSl9dihlLGMpe2ZvcihsZXQgdD0wO2M+MCYmdDxlLmxlbmd0aDt0Kz0xKXtpZighKGM+OCkpcmV0dXJuIShlW3RdPj44LWMpO2lmKGMtPTgsMCE9PWVbdF0pcmV0dXJuITF9cmV0dXJuITF9fTtleHBvcnR7ZHQgYXMgaSx6aSBhcyBuLHhsIGFzIHIsU2kgYXMgdH07"}},"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":"buvei.com/_next/static/chunks/lib-misc.e1ea40c94ed1df40.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.435Z","timestamp":1785127668435,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/static/chunks/lib-misc.e1ea40c94ed1df40.js HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: application/javascript; charset=UTF-8\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\ncache-control: public, max-age=31536000, immutable\r\naccept-ranges: bytes\r\nlast-modified: Mon, 29 Jun 2026 05:34:13 GMT\r\netag: W/\"55fd-19f11def808\"\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nage: 188872\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=y3JiAQiKn0FDFgq2CRzT4Rb42VIe56ahwv5f2lBwtaPh1LWRIBIpsiutOXOVpuLD1P2xRmQkKb2Y%2F9WtsAJUIK1XhC2UU83Nu0k9Y%2BpJiJrVNmIZFFeyc6NSKA%3D%3D\"}]}\r\ncf-ray: a2190217bb388be6-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"]}],"data":{"size":22013,"size_decoded":4854,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (21925), with no line terminators","md5":"231b445d110aba91ce2fba6fedd26b6a","sha1":"4d3ddab76465b4742133e7511f5f69203cf6af83","sha256":"b145ac827ad0086855d73bf038223099e37508ca9ada2140594653beee5345df","sha512":"e57cc1b4b953a60db2e3f28116dd675bafa42c76cfad4508df709dfb0c4b6753b3fc9145f49aad107fa637c2322d6f2088c90dfab4276e5e8a7bb8e378ab709b","ssdeep":"384:Dv1vhR3fm5c4OVIZHfT4kt1X84FdtiJ+DV4wYWzZQlYWWX:DNvhR3fm5c4OVgHb4O1XZdtiJu4wYWtJ","tlshash":"09a2412c0fc51f9ee542be501913e15a3253236ea26f5c9d99bdb03025945c8eeee38e","first_seen":"2026-07-27T03:56:11.681324Z","last_seen":"2026-07-27T10:05:53.920348Z","times_seen":4,"resource_available":true,"data":"dHJ5eyFmdW5jdGlvbigpe3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sbj0obmV3IGUuRXJyb3IpLnN0YWNrO24mJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbbl09ImMyM2MzNDgwLTE4ZjMtNGYxZi1iZDdiLTZlOTNhNmE4ZWJjNiIsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9InNlbnRyeS1kYmlkLWMyM2MzNDgwLTE4ZjMtNGYxZi1iZDdiLTZlOTNhNmE4ZWJjNiIpfSgpfWNhdGNoKGUpe30idXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rX05fRT1zZWxmLndlYnBhY2tDaHVua19OX0V8fFtdKS5wdXNoKFtbODk0OV0sezc0NzQ1OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7X193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pLF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIEhvbWV9fSk7dmFyIF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fPV9fd2VicGFja19yZXF1aXJlX18oMzU5NDQpLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksZnJhbWVyX21vdGlvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ5NjApLGZyYW1lcl9tb3Rpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX189X193ZWJwYWNrX3JlcXVpcmVfXyg0ODgyOCksZnJhbWVyX21vdGlvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDE5MjE1KSxmcmFtZXJfbW90aW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNV9fPV9fd2VicGFja19yZXF1aXJlX18oODQyMTcpLGFudGRfc3R5bGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX189X193ZWJwYWNrX3JlcXVpcmVfXygyODc0MyksY29tcG9uZW50c19jb250YWluZXJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY2MjUxKSxuZXh0X2kxOG5leHRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDg2OTApLGNvbXBvbmVudHNfbW90aW9uX2xvYWRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDUxNjEwKSxjb21wb25lbnRzX2ltYWdlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X189X193ZWJwYWNrX3JlcXVpcmVfXygxMTU4NiksY29tcG9uZW50c19hbnRTdHlsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fPV9fd2VicGFja19yZXF1aXJlX18oOTIwNDEpLHZpZXdfY29tbW9uX2NvbW1vbl9zdHlsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fPV9fd2VicGFja19yZXF1aXJlX18oOTc2MzEpLGNvbXBvbmVudHNfaWNvbnNfcmlnaHRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY0NzApLF9pbmRleF9zdHlsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fPV9fd2VicGFja19yZXF1aXJlX18oMjA5ODIpLG5leHRfbGlua19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fPV9fd2VicGFja19yZXF1aXJlX18oNDE2NjQpLG5leHRfbGlua19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKG5leHRfbGlua19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fKTtmdW5jdGlvbiBIb21lKCl7bGV0e3N0eWxlczpjb21tb25TdHlsZXMsY3h9PSgwLHZpZXdfY29tbW9uX2NvbW1vbl9zdHlsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLmMpKCkse3N0eWxlc309KDAsX2luZGV4X3N0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18ueSkoKSx7dGFibGV0LGxhcHRvcCxtb2JpbGV9PSgwLGFudGRfc3R5bGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uRikoKSx7dH09KDAsbmV4dF9pMThuZXh0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uJEcpKFsiY29tbW9uIiwiaW5kZXgiXSksW3N0ZXBzXT0oMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnVzZVN0YXRlKShbMCwxLDIsM10pLFtvcGVuU3RhcixzZXRPcGVuU3Rhcl09KDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VTdGF0ZSkoITEpLFtvcGVuQWlyLHNldE9wZW5BaXJdPSgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlU3RhdGUpKCExKSxbb3BlbkZvb3RlcixzZXRPcGVuRm9vdGVyXT0oMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnVzZVN0YXRlKSghMSksW2FpclN0YXJ0VG9wLHNldEFpclN0YXJ0VG9wXT0oMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnVzZVN0YXRlKSgwKSxbc2Nyb2xsU3BlZWRdPSgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlU3RhdGUpKFsuMDUsLjAwMiwuMDAyLC4wMDIsLjAwMl0pLFtjdXJyZW50U3RhZ2Usc2V0Q3VycmVudFN0YWdlXT0oMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnVzZVN0YXRlKSgwKSxbaW5wdXRSYW5nZSxzZXRJbnB1dFJhbmdlXT0oMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnVzZVN0YXRlKShbMCwwXSkscHJvZ3Jlc3M9KDAsZnJhbWVyX21vdGlvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5jKSgwKSxbaXNGaW5pc2gsc2V0SXNGaW5pc2hdPSgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlU3RhdGUpKCExKSx4PSgwLGZyYW1lcl9tb3Rpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18uSCkocHJvZ3Jlc3MsWzAsMV0saW5wdXRSYW5nZSksc2Nyb2xsUmVmPSgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlUmVmKShudWxsKSxibG9ja1JlZj0oMCxyZWFjdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnVzZVJlZikobnVsbCksdHJhdmVsUmVmPSgwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlUmVmKShudWxsKSxpc0luVmlldz0oMCxmcmFtZXJfbW90aW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xM19fLlkpKHNjcm9sbFJlZik7cmV0dXJuKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VFZmZlY3QpKCgpPT57ITE9PT1sYXB0b3AmJihzZXRPcGVuRm9vdGVyKCEwKSxzZXRPcGVuU3RhcighMCksc2V0T3BlbkFpcighMCkpfSxbbGFwdG9wXSksKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VFZmZlY3QpKCgpPT57aWYodHJhdmVsUmVmLmN1cnJlbnQpe2xldCB0cmF2ZWxSZWN0PXRyYXZlbFJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RyYXZlbFJlY3QudG9wPDAmJihzZXRPcGVuRm9vdGVyKCEwKSxzZXRPcGVuU3RhcighMCksc2V0T3BlbkFpcighMCkpfX0sW3RyYXZlbFJlZi5jdXJyZW50XSksKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VFZmZlY3QpKCgpPT57Y3VycmVudFN0YWdlPj0yJiYhb3BlblN0YXI/c2V0T3BlblN0YXIoITApOmN1cnJlbnRTdGFnZT49NCYmIW9wZW5BaXImJnNldE9wZW5BaXIoITApfSxbY3VycmVudFN0YWdlLG9wZW5TdGFyXSksKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VFZmZlY3QpKCgpPT57aWYob3BlbkZvb3RlcilyZXR1cm47bGV0IGhhbmRsZVdoZWVsPWU9PntpZihjdXJyZW50U3RhZ2U+PXN0ZXBzLmxlbmd0aHx8aXNGaW5pc2gpcmV0dXJuO2UucHJldmVudERlZmF1bHQoKTtsZXQgZGVsdGE9ZS5kZWx0YVkqc2Nyb2xsU3BlZWRbY3VycmVudFN0YWdlXSxuZXh0PU1hdGgubWluKDEsTWF0aC5tYXgoMCxwcm9ncmVzcy5nZXQoKStkZWx0YSkpO3Byb2dyZXNzLnNldChuZXh0KSxuZXh0Pj0xJiYoY3VycmVudFN0YWdlKzE8c3RlcHMubGVuZ3RoPyhwcm9ncmVzcy5zZXQoMCksc2V0Q3VycmVudFN0YWdlKHByZXY9PnByZXYrMSkpOihzZXRDdXJyZW50U3RhZ2UocHJldj0+cHJldisxKSxkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93PSIiLHNldElzRmluaXNoKCEwKSkpfTtyZXR1cm4gaXNGaW5pc2h8fChpc0luVmlldz8oZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIix3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLGhhbmRsZVdoZWVsLHtwYXNzaXZlOiExfSkpOmRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9IiIpLCgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixoYW5kbGVXaGVlbCl9fSxbY3VycmVudFN0YWdlLGlzSW5WaWV3LGlzRmluaXNoXSksKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VFZmZlY3QpKCgpPT57aWYoIWJsb2NrUmVmLmN1cnJlbnR8fCF0cmF2ZWxSZWYuY3VycmVudClyZXR1cm47bGV0IGJsb2NrUmVjdD1ibG9ja1JlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHRyYXZlbFJlY3Q9dHJhdmVsUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbGVmdD1ibG9ja1JlY3Qud2lkdGgvMi10cmF2ZWxSZWN0LndpZHRoLzI7dHJhdmVsUmVmLmN1cnJlbnQuc3R5bGUubGVmdD0iIi5jb25jYXQobGVmdCwicHgiKSx0cmF2ZWxSZWYuY3VycmVudC5zdHlsZS50b3A9IiIuY29uY2F0KGJsb2NrUmVjdC5oZWlnaHQtMzAtdHJhdmVsUmVjdC5oZWlnaHQsInB4Iiksc2V0QWlyU3RhcnRUb3AoYmxvY2tSZWN0LmhlaWdodC04MCl9LFtibG9ja1JlZi5jdXJyZW50LHRyYXZlbFJlZi5jdXJyZW50XSksKDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VFZmZlY3QpKCgpPT57aWYoIWJsb2NrUmVmLmN1cnJlbnR8fCF0cmF2ZWxSZWYuY3VycmVudHx8b3BlbkZvb3RlcilyZXR1cm47bGV0IGJsb2NrUmVjdD1ibG9ja1JlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHRyYXZlbFJlY3Q9dHJhdmVsUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbGVmdD1ibG9ja1JlY3Qud2lkdGgvMi10cmF2ZWxSZWN0LndpZHRoLzIsY2VudGVyPWxlZnQrYmxvY2tSZWN0LndpZHRoLXRyYXZlbFJlY3Qud2lkdGgtMjAscmlnaHQ9bGVmdCsyKmJsb2NrUmVjdC53aWR0aC10cmF2ZWxSZWN0LndpZHRoOzE9PT1jdXJyZW50U3RhZ2U/c2V0SW5wdXRSYW5nZShbMCxjZW50ZXJdKToyPT09Y3VycmVudFN0YWdlP3NldElucHV0UmFuZ2UoW2NlbnRlcixjZW50ZXJdKTozPT09Y3VycmVudFN0YWdlP3NldElucHV0UmFuZ2UoW2NlbnRlcixyaWdodF0pOjQ9PT1jdXJyZW50U3RhZ2UmJnNldElucHV0UmFuZ2UoW3JpZ2h0LHJpZ2h0XSl9LFtibG9ja1JlZi5jdXJyZW50LHRyYXZlbFJlZi5jdXJyZW50LGN1cnJlbnRTdGFnZV0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5tYWluLGNvbW1vblN0eWxlcy5tYWluUGFkZGluZzEyMCksY2hpbGRyZW46WygwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLnRaKShjb21wb25lbnRzX2NvbnRhaW5lcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlose2NoaWxkcmVuOigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLnRaKShjb21wb25lbnRzX21vdGlvbl9sb2FkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18ucnEse2NoaWxkcmVuOigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLkJYKSgiZGl2Iix7Y2hpbGRyZW46WygwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLnRaKSgiaDIiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLmgyLGNvbW1vblN0eWxlcy50ZXh0Q2VudGVyKSxjaGlsZHJlbjp0KCJ0aXRsZTM4Iix7bnM6ImluZGV4In0pfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKCJkaXYiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLnN1YlRpdGxlMixjb21tb25TdHlsZXMudGV4dENlbnRlciksY2hpbGRyZW46dCgidGl0bGUzOSIse25zOiJpbmRleCJ9KX0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5tdDgwLGNvbW1vblN0eWxlcy5mbGV4LGNvbW1vblN0eWxlcy5mbGV4V3JhcCxjb21tb25TdHlsZXMuY29sb3JXaGl0ZSxjb21tb25TdHlsZXMucmVsYXRpdmUpLGNoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoZnJhbWVyX21vdGlvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXy5FLmRpdix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazRUcmF2ZWwscmVmOnRyYXZlbFJlZixzdHlsZTp7eH0sY2hpbGRyZW46KDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKGNvbXBvbmVudHNfaW1hZ2VfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5aLHt3aWR0aDo5MixoZWlnaHQ6NjMsYWx0OiJjYXJkIixzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDIzMTIxNzMyYzMzZGU4MWRlNy53ZWJwIn0pfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrNEl0ZW0sY2hpbGRyZW46WygwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazRJdGVtSW1hZ2UscmVmOmJsb2NrUmVmLGNoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoY29tcG9uZW50c19pbWFnZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlose3NyYzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MjIxMTEwNTQxMjViMzM3MDQ5LndlYnAiLGZpbGw6ITAsYWx0OiJBZHZlcnRpc2luZyJ9KSxjdXJyZW50U3RhZ2U+MCYmKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18uQlgpKGZyYW1lcl9tb3Rpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE1X18uRS5zdmcse3dpZHRoOiI4NCIsaGVpZ2h0OiI4NCIsdmlld0JveDoiMCAwIDg0IDg0Iixpbml0aWFsOntzY2FsZTowLG9wYWNpdHk6MH0sYW5pbWF0ZTp7c2NhbGU6WzAsMS4yLDFdLG9wYWNpdHk6MX0sY2xhc3NOYW1lOnN0eWxlcy5ibG9jazRJdGVtSW1hZ2UxU3ZnLHRyYW5zaXRpb246e2R1cmF0aW9uOi41LGVhc2U6ImVhc2VJbk91dCIsdGltZXM6WzAsLjYsMV19LGNoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoImRlZnMiLHtjaGlsZHJlbjooMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoInJlY3QiLHtpZDoicGF0aC1ndWk1aGRidjh5LTEiLHg6IjAiLHk6IjAiLHdpZHRoOiI4NCIsaGVpZ2h0OiI4NCJ9KX0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLnRaKSgiZyIse2lkOiLpobXpnaItMSIsc3Ryb2tlOiJub25lIiwic3Ryb2tlLXdpZHRoIjoiMSIsZmlsbDoibm9uZSIsImZpbGwtcnVsZSI6ImV2ZW5vZGQiLGNoaWxkcmVuOigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLkJYKSgiZyIse2lkOiLlr7nli74iLGNoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoIm1hc2siLHtpZDoibWFzay1ndWk1aGRidjh5LTIiLGZpbGw6IndoaXRlIixjaGlsZHJlbjooMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoInVzZSIse3hsaW5rSHJlZjoiI3BhdGgtZ3VpNWhkYnY4eS0xIn0pfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKCJnIix7aWQ6IuefqeW9oiJ9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoZnJhbWVyX21vdGlvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXy5FLnBhdGgse2Q6Ik04MS44NTgsNS43NTM5MDYyNSBDNTYuMzIyLDIxLjQxOTkwNjMgMzcuOCw0MS4yMDE5MDYzIDI5LjQ0Miw1MS4xMTM5MDYyIEw5LjAzLDM1LjExMTkwNjMgTDAsNDIuMzc3OTA2MyBMMzUuMjM4LDc4LjI0NTkwNjMgQzQxLjI4Niw2Mi43MDU5MDYyIDYwLjUyMiwzMi4zMzk5MDYyIDg0LDEwLjc1MTkwNjMgTDgxLjg1OCw1Ljc1MzkwNjI1IFoiLGlkOiLot6/lvoQiLGZpbGw6IiMzODRBQTAiLCJmaWxsLXJ1bGUiOiJub256ZXJvIixtYXNrOiJ1cmwoI21hc2stZ3VpNWhkYnY4eS0yKSJ9KV19KX0pXX0pXX0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazRJdGVtV3JhcCxjaGlsZHJlbjpbKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18uQlgpKCJkaXYiLHtjbGFzc05hbWU6Y29tbW9uU3R5bGVzLmZsZXhDZW50ZXIsY2hpbGRyZW46WygwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazRJdGVtVGFnLGNoaWxkcmVuOnQoInRpdGxlNDAiLHtuczoiaW5kZXgifSl9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2s0SXRlbVRhZyxjaGlsZHJlbjp0KCJ0aXRsZTQxIix7bnM6ImluZGV4In0pfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrNEl0ZW1UYWcsY2hpbGRyZW46dCgidGl0bGUzMSIse25zOiJpbmRleCJ9KX0pXX0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLnRaKSgiaDMiLHtjbGFzc05hbWU6Y29tbW9uU3R5bGVzLnN1YlRpdGxlMixjaGlsZHJlbjp0KCJ0aXRsZTQyIix7bnM6ImluZGV4In0pfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKCJkaXYiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLm10MTIsY29tbW9uU3R5bGVzLnNpemUxNiksY2hpbGRyZW46dCgidGl0bGU0MyIse25zOiJpbmRleCJ9KX0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmNvbW1vblN0eWxlcy5tdDM2LGNoaWxkcmVuOigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLnRaKShuZXh0X2xpbmtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfX19kZWZhdWx0KCkse2hyZWY6Ii9zb2x1dGlvbnMvYWRzIixjaGlsZHJlbjooMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy5CWCkoY29tcG9uZW50c19hbnRTdHlsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnQ4LHt0eXBlOiJwcmltYXJ5IixjbGFzc05hbWU6Y3goY3VycmVudFN0YWdlPjEmJnN0eWxlcy5ibG9jazRJdGVtQnV0dG9uKSxjaGlsZHJlbjpbdCgibGVhcm5Nb3JlIix7bnM6ImNvbW1vbiJ9KSwiICIsKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKGNvbXBvbmVudHNfaWNvbnNfcmlnaHRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5aLHtjbGFzc05hbWU6c3R5bGVzLnJpZ2h0SWNvbn0pXX0pfSl9KV19KV19KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2s0SXRlbSxjaGlsZHJlbjpbKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrNEl0ZW1JbWFnZSxjaGlsZHJlbjpbKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKGNvbXBvbmVudHNfaW1hZ2VfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5aLHtzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDIyMTEzMDEzYzYxN2QyM2E2Zi53ZWJwIixmaWxsOiEwLGFsdDoiY2hhdGdwdCJ9KSxvcGVuU3RhciYmKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKGZyYW1lcl9tb3Rpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE1X18uRS5zdmcse3dpZHRoOiI1NSIsaGVpZ2h0OiI1NiIsdmlld0JveDoiMCAwIDU1IDU2Iixpbml0aWFsOntzY2FsZTowLG9wYWNpdHk6MH0sYW5pbWF0ZTp7c2NhbGU6WzAsMS4yLDFdLG9wYWNpdHk6MX0sY2xhc3NOYW1lOnN0eWxlcy5ibG9jazRJdGVtSW1hZ2UyU3ZnLHRyYW5zaXRpb246e2R1cmF0aW9uOi41LGVhc2U6ImVhc2VJbk91dCIsdGltZXM6WzAsLjYsMV19LGNoaWxkcmVuOigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLnRaKSgiZyIse2lkOiLpobXpnaItMSIsc3Ryb2tlOiJub25lIiwic3Ryb2tlLXdpZHRoIjoiMSIsZmlsbDoibm9uZSIsImZpbGwtcnVsZSI6ImV2ZW5vZGQiLGNoaWxkcmVuOigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLnRaKSgiZyIse2lkOiLorqLpmIXmlLbol48iLGZpbGw6IiNGRkMxM0MiLCJmaWxsLXJ1bGUiOiJub256ZXJvIixjaGlsZHJlbjooMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoInBhdGgiLHtkOiJNMzIuNTQyNzk2NSw0Ni44Mjc0MDAxIEwyMS44NDI3OTY1LDU1Ljc0NDAwMDEgQzIwLjg5OTI5NjUsNTYuNTMxNzAwMSAxOS41OTg3OTY1LDU2LjczNjEwMDEgMTguNDU4OTk2NSw1Ni4yNzYwMDAxIEMxNy4zMTkyOTY1LDU1LjgxNjAwMDEgMTYuNTI1MTk2NSw1NC43NjYwMDAxIDE2LjM5Mjc5NjUsNTMuNTQ0MDAwMSBMMTQuODkyNzk2NSwzOS42ODU3MDAxIEMxNC43ODEyOTY1LDM4LjY3MzgwMDEgMTQuMjEzNDk2NSwzNy43Njg0MDAxIDEzLjM1MTE5NjUsMzcuMjI3MzAwMSBMMS41NTk0ODY1NCwyOS44MTA3MDAxIEMwLjUxNzUzNjUzOSwyOS4xNTU4MDAxIC0wLjA3ODc4NDU2MTIsMjcuOTgwMDAwMSAwLjAwODQwNDEyODc3LDI2Ljc1MjQwMDEgQzAuMDk1NTkyODM4OCwyNS41MjQ4MDAxIDAuODUyMDkzNTM5LDI0LjQ0NTEwMDEgMS45NzYxNTY1NCwyMy45NDQwMDAxIEwxNC42ODQ0OTY1LDE4LjIzNTcwMDEgQzE1LjYxNDA5NjUsMTcuODE4MzAwMSAxNi4zMDE2OTY1LDE2Ljk5ODcwMDEgMTYuNTUxMTk2NSwxNi4wMTA3MDAxIEwxOS45Njc3OTY1LDIuNTEwNjgwMDggQzIwLjI3MDI5NjUsMS4zMjMyNTAwOCAyMS4xOTk3OTY1LDAuMzk3NDk1MDgxIDIyLjM4ODQ5NjUsMC4wOTk4OTU1ODA3IEMyMy41NzcwOTY1LC0wLjE5NzcwMDkxOSAyNC44MzMxOTY1LDAuMTgwODUxMDgxIDI1LjY1OTQ5NjUsMS4wODU2OTAwOCBMMzUuMDE3Nzk2NSwxMS40MTA3MDAxIEMzNS43MDI1OTY1LDEyLjE2MzgwMDEgMzYuNjkzODk2NSwxMi41NjI4MDAxIDM3LjcwOTQ5NjUsMTIuNDk0MDAwMSBMNTEuNjA5NDk2NSwxMS41NjkwMDAxIEM1Mi44MzU5OTY1LDExLjQ4NjIwMDEgNTQuMDA4NDk2NSwxMi4wODUwMDAxIDU0LjY2MDI5NjUsMTMuMTI3MzAwMSBDNTUuMzEyMDk2NSwxNC4xNjk1MDAxIDU1LjMzNzM5NjUsMTUuNDg1ODAwMSA1NC43MjYxOTY1LDE2LjU1MjQwMDEgTDQ3LjgwMTE5NjUsMjguNjM1NzAwMSBDNDcuMjkxNTk2NSwyOS41MTk1MDAxIDQ3LjIxNDc5NjUsMzAuNTg4MTAwMSA0Ny41OTI3OTY1LDMxLjUzNTcwMDEgTDUyLjc3NjE5NjUsNDQuNDY5MDAwMSBDNTMuMjMzMDk2NSw0NS42MTA4MDAxIDUzLjAyNDI5NjUsNDYuOTExNDAwMSA1Mi4yMzI4OTY1LDQ3Ljg1MjcwMDEgQzUxLjQ0MTQ5NjUsNDguNzk0MDAwMSA1MC4xOTYwOTY1LDQ5LjIyMzEwMDEgNDguOTkyNzk2NSw0OC45NjkwMDAxIEwzNS4zNTk0OTY1LDQ2LjExOTAwMDEgQzM0LjM2Mjk5NjUsNDUuOTA5OTAwMSAzMy4zMjU0OTY1LDQ2LjE2NzcwMDEgMzIuNTQyNzk2NSw0Ni44MTkwMDAxIEwzMi41NDI3OTY1LDQ2LjgyNzQwMDEgWiIsaWQ6Iui3r+W+hCJ9KX0pfSl9KV19KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2s0SXRlbVdyYXAsY2hpbGRyZW46WygwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOmNvbW1vblN0eWxlcy5mbGV4Q2VudGVyLGNoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2s0SXRlbVRhZyxjaGlsZHJlbjp0KCJ0aXRsZTQ0Iix7bnM6ImluZGV4In0pfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrNEl0ZW1UYWcsY2hpbGRyZW46WyIgIix0KCJ0aXRsZTQ1Iix7bnM6ImluZGV4In0pXX0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazRJdGVtVGFnLGNoaWxkcmVuOnQoInRpdGxlNDYiLHtuczoiaW5kZXgifSl9KV19KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoImgzIix7Y2xhc3NOYW1lOmNvbW1vblN0eWxlcy5zdWJUaXRsZTIsY2hpbGRyZW46dCgidGl0bGU0NyIse25zOiJpbmRleCJ9KX0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5tdDEyLGNvbW1vblN0eWxlcy5zaXplMTYpLGNoaWxkcmVuOnQoInRpdGxlNDgiLHtuczoiaW5kZXgifSl9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoImRpdiIse2NsYXNzTmFtZTpjb21tb25TdHlsZXMubXQzNixjaGlsZHJlbjooMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikobmV4dF9saW5rX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X19fZGVmYXVsdCgpLHtocmVmOiIvc29sdXRpb25zL3N1YnNjcmliZSIsY2hpbGRyZW46KDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18uQlgpKGNvbXBvbmVudHNfYW50U3R5bGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy50OCx7dHlwZToicHJpbWFyeSIsY2xhc3NOYW1lOmN4KDIhPT1jdXJyZW50U3RhZ2UmJnN0eWxlcy5ibG9jazRJdGVtQnV0dG9uKSxjaGlsZHJlbjpbdCgidGl0bGU0OSIse25zOiJpbmRleCJ9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoY29tcG9uZW50c19pY29uc19yaWdodF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLlose2NsYXNzTmFtZTpzdHlsZXMucmlnaHRJY29ufSldfSl9KX0pXX0pXX0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazRJdGVtLGNoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2s0SXRlbUltYWdlLGNoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoY29tcG9uZW50c19pbWFnZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlose3NyYzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MjMxNjMyMTUwZWRlNjYyYzVmLndlYnAiLGZpbGw6ITAsYWx0OiJ0cmF2ZWwifSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmRhc2gsc3R5bGU6e3RvcDphaXJTdGFydFRvcC04OCxyaWdodDo4MH0sY2hpbGRyZW46KDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKGNvbXBvbmVudHNfaW1hZ2VfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5aLHtjbGFzc05hbWU6Y3goc3R5bGVzLmRhc2hJbWcsb3BlbkFpciYmc3R5bGVzLmRhc2hJbWdPcGVuKSxzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDIzMTgzOTA1ZWRlZTZjZjg2Zi5zdmciLHdpZHRoOjc2LGhlaWdodDo4OCxhbHQ6ImNpcmNsZSJ9KX0pLG9wZW5BaXImJigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLkJYKShmcmFtZXJfbW90aW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNV9fLkUuc3ZnLHt3aWR0aDoiNTQiLGhlaWdodDoiNTQiLHZpZXdCb3g6IjAgMCA1NCA1NCIsaW5pdGlhbDp7b2Zmc2V0RGlzdGFuY2U6IjQ5JSIscmlnaHQ6Ijk2cHgifSxhbmltYXRlOntvZmZzZXREaXN0YW5jZToiMSUifSxjbGFzc05hbWU6c3R5bGVzLmJsb2NrNEl0ZW1JbWFnZTNTdmcsc3R5bGU6e3RvcDphaXJTdGFydFRvcC04OH0sdHJhbnNpdGlvbjp7ZHVyYXRpb246MixlYXNlOiJlYXNlSW5PdXQifSxjaGlsZHJlbjpbKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKCJkZWZzIix7Y2hpbGRyZW46KDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKCJyZWN0Iix7aWQ6InBhdGgtaWtjMjdiMnVhai0xIix4OiIwIix5OiIwIix3aWR0aDoiMzAiLGhlaWdodDoiMzAifSl9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoImciLHtpZDoi6aG16Z2iLTEiLHN0cm9rZToibm9uZSIsInN0cm9rZS13aWR0aCI6IjEiLGZpbGw6Im5vbmUiLCJmaWxsLXJ1bGUiOiJldmVub2RkIixjaGlsZHJlbjooMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy5CWCkoImciLHtpZDoi6aOe5py6IixjaGlsZHJlbjpbKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKCJyZWN0Iix7aWQ6IuefqeW9oiIsZmlsbDoiI0ZGRkZGRiIsImZpbGwtcnVsZSI6Im5vbnplcm8iLHg6IjAiLHk6IjAiLHdpZHRoOiI1NCIsaGVpZ2h0OiI1NCIscng6IjIwIn0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLnRaKSgicmVjdCIse2lkOiLnn6nlvaIiLHN0cm9rZToiI0UwRTJFQSIseDoiMC41Iix5OiIwLjUiLHdpZHRoOiI1MyIsaGVpZ2h0OiI1MyIscng6IjE5LjUifSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18uQlgpKCJnIix7aWQ6IkNsaXBwZWQiLHRyYW5zZm9ybToidHJhbnNsYXRlKDEyLCAxMikiLGNoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoIm1hc2siLHtpZDoibWFzay1pa2MyN2IydWFqLTIiLGZpbGw6IndoaXRlIixjaGlsZHJlbjooMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoInVzZSIse3hsaW5rSHJlZjoiI3BhdGgtaWtjMjdiMnVhai0xIn0pfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKCJnIix7aWQ6IuefqeW9oiJ9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoImciLHtpZDoi57yW57uEIixtYXNrOiJ1cmwoI21hc2staWtjMjdiMnVhai0yKSIsZmlsbDoiIzIxMkI1NSIsImZpbGwtcnVsZSI6Im5vbnplcm8iLGNoaWxkcmVuOigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLnRaKSgiZyIse3RyYW5zZm9ybToidHJhbnNsYXRlKDE1LjUsIDE0LjAwMDEpIHJvdGF0ZSgtNjYuODYwNCkgdHJhbnNsYXRlKC0xNS41LCAtMTQuMDAwMSl0cmFuc2xhdGUoMy41LCAxLjUwMDEpIixpZDoi6Lev5b6EIixjaGlsZHJlbjooMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoInBhdGgiLHtkOiJNMTMuODk0NzAwMyw4LjY4Mzc1MDE5IEwyNCwxNSBMMjQsMTcuNSBMMTMuODk0NzAwMywxNC4zNDI1MDAzIEwxMy44OTQ3MDAzLDIxLjA0MjUwMDUgTDE3LjY4NDIwMDQsMjMuMTI1MDAwNSBMMTcuNjg0MjAwNCwyNSBMMTIsMjMuNzUwMDAwNSBMNi4zMTU3OTAxNCwyNSBMNi4zMTU3OTAxNCwyMy4xMjUwMDA1IEwxMC4xMDUzMDAyLDIxLjA0MTMwMDUgTDEwLjEwNTMwMDIsMTQuMzQxMzAwMyBMMCwxNy41IEwwLDE1IEwxMC4xMDUzMDAyLDguNjgzNzUwMTkgTDEwLjEwNTMwMDIsMS44NzUwMDAwNCBDMTAuMTA1MzAwMiwwLjgzOTQ2NjAxOCAxMC45NTM2MDAyLDAgMTIsMCBDMTMuMDQ2NDAwMywwIDEzLjg5NDcwMDMsMC44Mzk0NjYwMTggMTMuODk0NzAwMywxLjg3NTAwMDA0IEwxMy44OTQ3MDAzLDguNjgzNzUwMTkgWiJ9KX0pfSldfSldfSl9KV19KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy5CWCkoInN2ZyIse3dpZHRoOiI1NHB4IixoZWlnaHQ6IjU0cHgiLHZpZXdCb3g6IjAgMCA1NCA1NCIsdmVyc2lvbjoiMS4xIixjbGFzc05hbWU6c3R5bGVzLmJsb2NrNEl0ZW1JbWFnZTNTdmcsc3R5bGU6e3RvcDoiIi5jb25jYXQoYWlyU3RhcnRUb3AsInB4Iil9LGNoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoImRlZnMiLHtjaGlsZHJlbjooMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoInJlY3QiLHtpZDoicGF0aC1kZ2hrYjJkdG1yLTEiLHg6IjAiLHk6IjAiLHdpZHRoOiIzMCIsaGVpZ2h0OiIzMCJ9KX0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLnRaKSgiZyIse2lkOiLpobXpnaItMSIsc3Ryb2tlOiJub25lIiwic3Ryb2tlLXdpZHRoIjoiMSIsZmlsbDoibm9uZSIsImZpbGwtcnVsZSI6ImV2ZW5vZGQiLGNoaWxkcmVuOigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLkJYKSgiZyIse2lkOiLpo57mnLoiLGNoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoInJlY3QiLHtpZDoi55+p5b2iIixmaWxsOiIjRkZGRkZGIiwiZmlsbC1ydWxlIjoibm9uemVybyIseDoiMCIseToiMCIsd2lkdGg6IjU0IixoZWlnaHQ6IjU0IixyeDoiMjAifSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKCJyZWN0Iix7aWQ6IuefqeW9oiIsc3Ryb2tlOiIjRTBFMkVBIix4OiIwLjUiLHk6IjAuNSIsd2lkdGg6IjUzIixoZWlnaHQ6IjUzIixyeDoiMTkuNSJ9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy5CWCkoImciLHtpZDoiQ2xpcHBlZCIsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoMTIsIDEyKSIsY2hpbGRyZW46WygwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLnRaKSgibWFzayIse2lkOiJtYXNrLWRnaGtiMmR0bXItMiIsZmlsbDoid2hpdGUiLGNoaWxkcmVuOigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLnRaKSgidXNlIix7eGxpbmtIcmVmOiIjcGF0aC1kZ2hrYjJzZHNmc2FkZHRtci0xIn0pfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKCJnIix7aWQ6IuefqeW9oiJ9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoImciLHtpZDoi57yW57uEIixtYXNrOiJ1cmwoI21hc2stZGdoa2Iyc2RzZnNhZGR0bXItMikiLGZpbGw6IiMyMTJCNTUiLCJmaWxsLXJ1bGUiOiJub256ZXJvIixjaGlsZHJlbjooMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoImciLHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgxNS41LCAxNC4wMDAxKSByb3RhdGUoLTY2Ljg2MDQpIHRyYW5zbGF0ZSgtMTUuNSwgLTE0LjAwMDEpdHJhbnNsYXRlKDMuNSwgMS41MDAxKSIsaWQ6Iui3r+W+hCIsY2hpbGRyZW46KDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKCJwYXRoIix7ZDoiTTEzLjg5NDcwMDMsOC42ODM3NTAxOSBMMjQsMTUgTDI0LDE3LjUgTDEzLjg5NDcwMDMsMTQuMzQyNTAwMyBMMTMuODk0NzAwMywyMS4wNDI1MDA1IEwxNy42ODQyMDA0LDIzLjEyNTAwMDUgTDE3LjY4NDIwMDQsMjUgTDEyLDIzLjc1MDAwMDUgTDYuMzE1NzkwMTQsMjUgTDYuMzE1NzkwMTQsMjMuMTI1MDAwNSBMMTAuMTA1MzAwMiwyMS4wNDEzMDA1IEwxMC4xMDUzMDAyLDE0LjM0MTMwMDMgTDAsMTcuNSBMMCwxNSBMMTAuMTA1MzAwMiw4LjY4Mzc1MDE5IEwxMC4xMDUzMDAyLDEuODc1MDAwMDQgQzEwLjEwNTMwMDIsMC44Mzk0NjYwMTggMTAuOTUzNjAwMiwwIDEyLDAgQzEzLjA0NjQwMDMsMCAxMy44OTQ3MDAzLDAuODM5NDY2MDE4IDEzLjg5NDcwMDMsMS44NzUwMDAwNCBMMTMuODk0NzAwMyw4LjY4Mzc1MDE5IFoifSl9KX0pXX0pXX0pfSldfSldfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrNEl0ZW1XcmFwLGNoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy5CWCkoImRpdiIse2NsYXNzTmFtZTpjb21tb25TdHlsZXMuZmxleENlbnRlcixjaGlsZHJlbjpbKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrNEl0ZW1UYWcsY2hpbGRyZW46dCgidGl0bGU1MCIse25zOiJpbmRleCJ9KX0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazRJdGVtVGFnLGNoaWxkcmVuOnQoInRpdGxlNTEiLHtuczoiaW5kZXgifSl9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2s0SXRlbVRhZyxjaGlsZHJlbjp0KCJ0aXRsZTUyIix7bnM6ImluZGV4In0pfSldfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKCJoMyIse2NsYXNzTmFtZTpjb21tb25TdHlsZXMuc3ViVGl0bGUyLGNoaWxkcmVuOnQoInRpdGxlNTMiLHtuczoiaW5kZXgifSl9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXy50WikoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMubXQxMixjb21tb25TdHlsZXMuc2l6ZTE2KSxjaGlsZHJlbjp0KCJ0aXRsZTU0Iix7bnM6ImluZGV4In0pfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKCJkaXYiLHtjbGFzc05hbWU6Y29tbW9uU3R5bGVzLm10MzYsY2hpbGRyZW46KDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKG5leHRfbGlua19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fX2RlZmF1bHQoKSx7aHJlZjoiL3NvbHV0aW9ucy90cmF2ZWwiLGNoaWxkcmVuOigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNF9fLkJYKShjb21wb25lbnRzX2FudFN0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18udDgse3R5cGU6InByaW1hcnkiLGNsYXNzTmFtZTpjeCgzIT09Y3VycmVudFN0YWdlJiY0IT09Y3VycmVudFN0YWdlJiZzdHlsZXMuYmxvY2s0SXRlbUJ1dHRvbiksY2hpbGRyZW46W3QoInRpdGxlNTUiLHtuczoiaW5kZXgifSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKGNvbXBvbmVudHNfaWNvbnNfcmlnaHRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5aLHtjbGFzc05hbWU6c3R5bGVzLnJpZ2h0SWNvbn0pXX0pfSl9KV19KV19KV19KV19KX0pfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18udFopKCJkaXYiLHtyZWY6c2Nyb2xsUmVmfSldfSl9fX1dKTs="}},"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":"buvei.com/_next/image?url=https%3A%2F%2Fosspremium.s3.us-east-2.amazonaws.com%2Fa%2Fa_642f08%2F202504191220160bf8e12136.webp\u0026w=1920\u0026q=75","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"lazy-imageset","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.888Z","timestamp":1785127668888,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/image?url=https%3A%2F%2Fosspremium.s3.us-east-2.amazonaws.com%2Fa%2Fa_642f08%2F202504191220160bf8e12136.webp\u0026w=1920\u0026q=75 HTTP/1.1\r\nHost: buvei.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:49 GMT\r\ncontent-type: image/webp\r\ncontent-length: 18016\r\nserver: cloudflare\r\ncontent-security-policy: script-src 'none'; frame-src 'none'; sandbox;\r\nx-frame-options: DENY\r\nvary: Accept\r\ncache-control: public, max-age=60, must-revalidate\r\netag: AAPHEEowlLh54Y82GEcuZzZAtN3TRZrK3RSFCNYgrZM=\r\ncontent-disposition: inline; filename=\"202504191220160bf8e12136.webp\"\r\nx-nextjs-cache: STALE\r\ncf-cache-status: DYNAMIC\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=UaYY%2FmeKzMB%2FLpnSlXRe3u%2BsFiV5o5cBAoAPlHVRzlMBK22j3fALFT7b0zLTCFIO7Loohx7WcfbP4A6KLSXpwUQCPjT3zECFjFDHbQU3zC9eyiMZHnVURKqC2w%3D%3D\"}]}\r\ncf-ray: a219021a88a98be6-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"]}],"data":{"size":18016,"size_decoded":18837,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image","md5":"4f264d3b5bdd80c6bed8a0a84735bfd5","sha1":"0c132ccafa0bcc8990b22f211a526c4e4aed2551","sha256":"0003c7104a3094b879e18f3618472e673640b4ddd3459acadd148508d620ad93","sha512":"6210bb5712be81034f03c6c4fc87cec109193d75c9b957c4f526173d5982dd891b3fdcaac5b3498cc69a8e616a56e099b973d31421099d9e273c5bb88972b5db","ssdeep":"384:pwR/Vb0cqvnXgHM47/7Jn92bI7p4q7q3vUiNyaUFVzetYT:2Rtw5vXgH3PJn93d4qUv32Zets","tlshash":"7782d02475c35baef1572c32e2c876b0df2479ad4e2d7919d86bc8a512008cd6d18639","first_seen":"2026-07-27T03:56:11.716478Z","last_seen":"2026-07-27T10:05:53.934324Z","times_seen":4,"resource_available":false,"data":"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"}},"time_used":391,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":385,"receive":6,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"client.crisp.chat/static/stylesheets/client_default_23e4212.css","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:49.319Z","timestamp":1785127669319,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /static/stylesheets/client_default_23e4212.css HTTP/1.1\r\nHost: client.crisp.chat\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\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\ndate: Mon, 27 Jul 2026 04:47:49 GMT\r\ncontent-type: text/css\r\naccess-control-allow-credentials: false\r\naccess-control-allow-headers: Content-Type, Origin\r\naccess-control-allow-methods: HEAD, GET, OPTIONS\r\naccess-control-allow-origin: *\r\naccess-control-max-age: 300\r\ncache-control: public, max-age=315360000\r\ncross-origin-resource-policy: cross-origin\r\nx-content-type-options: nosniff\r\nexpires: Thu, 24 Jul 2036 04:47:49 GMT\r\nlast-modified: Tue, 21 Jul 2026 15:59:21 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\npriority: u=2,i=?0\r\nage: 45924\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: W/\"6a5f9759-26a45\"\r\ncontent-encoding: br\r\ncf-ray: a219021d4afdb28a-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"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":158277,"size_decoded":19723,"mime_type":"text/css","magic":"Unicode text, UTF-8 text, with very long lines (65438)","md5":"d37c7b8cb301d85c035e864c0c2f7769","sha1":"7fd2f3e63d0791c214c8295d995c189ef4797f9a","sha256":"14fae5cc4c3950898c73fb4e5f93398dfe7082e04d56993d352868d1776493c5","sha512":"d7c3cb72ff5e783f075ac18671db10be1028057e086804fca2fc4dbc51a3a92b66348b9c71412dd5d2509e7bbf5cdf814ec45186737bf465e3f42ccea4f65c40","ssdeep":"768:H4ekewY83pZ4O4q4DNvJqH8H54Ib0qR6uLYH0aCDjwN7Fq4ADxbXWNGVa6QdJSbV:YekewH4tgZsdrjwrq4ADxbXWA0RnOv","tlshash":"e4f3634fb266042428d745a3b9c8b73d843a64ff8252793cda2466bc4f954ff2768738","first_seen":"2026-07-21T16:14:01.530287Z","last_seen":"2026-07-30T12:07:42.876219Z","times_seen":171,"resource_available":false,"data":"LyoqCiAqIGNyaXNwLWNsaWVudAogKiBAdmVyc2lvbiB2NC44LjcgMjNlNDIxMgogKiBAYXV0aG9yIENyaXNwIElNIFNBUwogKiBAZGF0ZSA3LzIxLzIwMjYKICovCi5jcmlzcC1jbGllbnR7bGluZS1oZWlnaHQ6MTt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDtkaXJlY3Rpb246bHRyIWltcG9ydGFudDtmb250LXNpemU6bWVkaXVtIWltcG9ydGFudDtmb250LXN0eWxlOm5vcm1hbCFpbXBvcnRhbnQ7Zm9udC13ZWlnaHQ6NDAwIWltcG9ydGFudDt0ZXh0LWRlY29yYXRpb246bm9uZSFpbXBvcnRhbnQ7bGlzdC1zdHlsZS10eXBlOmRpc2MhaW1wb3J0YW50fS5jcmlzcC1jbGllbnRbZGlyPXJ0bF17dGV4dC1hbGlnbjpyaWdodCFpbXBvcnRhbnQ7ZGlyZWN0aW9uOnJ0bCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudFtkaXI9cnRsXSBzZWxlY3QsLmNyaXNwLWNsaWVudFtkaXI9cnRsXSB0ZXh0YXJlYSwuY3Jpc3AtY2xpZW50W2Rpcj1ydGxdIGlucHV0e3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnRbZGlyPXJ0bF0gdGV4dGFyZWF7bWFyZ2luLWlubGluZTowIDRweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAqLC5jcmlzcC1jbGllbnQgOmJlZm9yZSwuY3Jpc3AtY2xpZW50IDphZnRlcntoZWlnaHQ6YXV0bztsaW5lLWhlaWdodDppbmhlcml0O21pbi1oZWlnaHQ6MDttYXgtaGVpZ2h0Om5vbmU7YmFja2dyb3VuZDpub25lIGF1dG8gMCAwIHJlcGVhdCBwYWRkaW5nLWJveCBib3JkZXItYm94IHNjcm9sbCB0cmFuc3BhcmVudCFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDtjbGVhcjpub25lIWltcG9ydGFudDtjbGlwOmF1dG8haW1wb3J0YW50O2NvbG9yOmluaGVyaXQhaW1wb3J0YW50O2NvdW50ZXItaW5jcmVtZW50Om5vbmUhaW1wb3J0YW50O2NvdW50ZXItcmVzZXQ6bm9uZSFpbXBvcnRhbnQ7Y3Vyc29yOmF1dG8haW1wb3J0YW50O2RpcmVjdGlvbjppbmhlcml0IWltcG9ydGFudDtmbG9hdDpub25lIWltcG9ydGFudDtmb250LWZhbWlseTppbmhlcml0IWltcG9ydGFudDtmb250LXNpemU6aW5oZXJpdCFpbXBvcnRhbnQ7Zm9udC1zdHlsZTppbmhlcml0IWltcG9ydGFudDtmb250LXZhcmlhbnQ6bm9ybWFsIWltcG9ydGFudDtmb250LXdlaWdodDppbmhlcml0IWltcG9ydGFudDtsZXR0ZXItc3BhY2luZzpub3JtYWwhaW1wb3J0YW50O2xpc3Qtc3R5bGUtdHlwZTppbmhlcml0IWltcG9ydGFudDtvdXRsaW5lOmludmVydCBub25lIG1lZGl1bSFpbXBvcnRhbnQ7cXVvdGVzOiIiICIiIWltcG9ydGFudDt0YWJsZS1sYXlvdXQ6YXV0byFpbXBvcnRhbnQ7bWluLXdpZHRoOjAhaW1wb3J0YW50O21heC13aWR0aDpub25lIWltcG9ydGFudDt0ZXh0LWFsaWduOmluaGVyaXQhaW1wb3J0YW50Oy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOmluaGVyaXQhaW1wb3J0YW50O3RleHQtZGVjb3JhdGlvbjppbmhlcml0IWltcG9ydGFudDt0ZXh0LWluZGVudDowIWltcG9ydGFudDt0ZXh0LXRyYW5zZm9ybTpub25lIWltcG9ydGFudDt0ZXh0LXJlbmRlcmluZzphdXRvIWltcG9ydGFudDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZSFpbXBvcnRhbnQ7dmlzaWJpbGl0eTppbmhlcml0IWltcG9ydGFudDt3aGl0ZS1zcGFjZTpub3JtYWwhaW1wb3J0YW50O3dvcmQtc3BhY2luZzpub3JtYWwhaW1wb3J0YW50O3otaW5kZXg6YXV0byFpbXBvcnRhbnQ7d2lkdGg6YXV0byFpbXBvcnRhbnQ7Ym94LXNoYWRvdzpub25lIWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94IWltcG9ydGFudDstbW96LWNvbHVtbnM6YXV0byBhdXRvIWltcG9ydGFudDtjb2x1bW5zOmF1dG8gYXV0byFpbXBvcnRhbnQ7LW1vei1jb2x1bW4tZ2FwOm5vcm1hbCFpbXBvcnRhbnQ7LW1vei1jb2x1bW4tcnVsZTptZWRpdW0gbm9uZSByZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwpKSFpbXBvcnRhbnQ7Y29sdW1uLXJ1bGU6bWVkaXVtIG5vbmUgcmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbm9ybWFsKSkhaW1wb3J0YW50Oy1tb3otY29sdW1uLXNwYW46MSFpbXBvcnRhbnQ7Y29sdW1uLXNwYW46MSFpbXBvcnRhbnQ7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbCFpbXBvcnRhbnQ7cGVyc3BlY3RpdmU6bm9uZSFpbXBvcnRhbnQ7cGVyc3BlY3RpdmUtb3JpZ2luOjUwJSFpbXBvcnRhbnQ7YmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlIWltcG9ydGFudDt0ZXh0LXNoYWRvdzpub25lIWltcG9ydGFudDt3b3JkLWJyZWFrOm5vcm1hbCFpbXBvcnRhbnQ7LXdlYmtpdC1oeXBoZW5zOm1hbnVhbCFpbXBvcnRhbnQ7aHlwaGVuczptYW51YWwhaW1wb3J0YW50Oy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbm9ybWFsKSwgMCkhaW1wb3J0YW50Oy1tb3otdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbm9ybWFsKSwgMCkhaW1wb3J0YW50Oy1tcy10YXAtaGlnaGxpZ2h0LWNvbG9yOnJnYmEodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwpLCAwKSFpbXBvcnRhbnQ7LW8tdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbm9ybWFsKSwgMCkhaW1wb3J0YW50Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOmN1cnJlbnRjb2xvciFpbXBvcnRhbnQ7LXdlYmtpdC1oeXBoZW5hdGUtY2hhcmFjdGVyOiLigJAiIWltcG9ydGFudDtoeXBoZW5hdGUtY2hhcmFjdGVyOiLigJAiIWltcG9ydGFudDt1bmljb2RlLWJpZGk6bm9ybWFsIWltcG9ydGFudDtib3JkZXI6bm9uZSFpbXBvcnRhbnQ7Ym9yZGVyLWltYWdlOiFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czowIWltcG9ydGFudDtjb2x1bW4tZ2FwOm5vcm1hbCFpbXBvcnRhbnQ7bWFyZ2luOjAhaW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnQ7bGlzdC1zdHlsZS1pbWFnZTpub25lIWltcG9ydGFudDtsaXN0LXN0eWxlLXBvc2l0aW9uOm91dHNpZGUhaW1wb3J0YW50O3RyYW5zaXRpb246YWxsIWltcG9ydGFudDtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnQ7cG9zaXRpb246c3RhdGljIWltcG9ydGFudDtpbnNldDphdXRvIWltcG9ydGFudDtvdmVyZmxvdzp2aXNpYmxlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50LC5jcmlzcC1jbGllbnQgaDMsLmNyaXNwLWNsaWVudCBoNSwuY3Jpc3AtY2xpZW50IHAsLmNyaXNwLWNsaWVudCBoMSwuY3Jpc3AtY2xpZW50IGRsLC5jcmlzcC1jbGllbnQgZHQsLmNyaXNwLWNsaWVudCBoNiwuY3Jpc3AtY2xpZW50IG9sLC5jcmlzcC1jbGllbnQgZm9ybSwuY3Jpc3AtY2xpZW50IG9wdGlvbiwuY3Jpc3AtY2xpZW50IHByZSwuY3Jpc3AtY2xpZW50IGRpdiwuY3Jpc3AtY2xpZW50IGgyLC5jcmlzcC1jbGllbnQgY2FwdGlvbiwuY3Jpc3AtY2xpZW50IGg0LC5jcmlzcC1jbGllbnQgdWwsLmNyaXNwLWNsaWVudCBkZCwuY3Jpc3AtY2xpZW50IGZpZWxkc2V0LC5jcmlzcC1jbGllbnQgaHIsLmNyaXNwLWNsaWVudCBhcnRpY2xlLC5jcmlzcC1jbGllbnQgZGlhbG9nLC5jcmlzcC1jbGllbnQgZmlndXJlLC5jcmlzcC1jbGllbnQgZm9vdGVyLC5jcmlzcC1jbGllbnQgaGVhZGVyLC5jcmlzcC1jbGllbnQgaGdyb3VwLC5jcmlzcC1jbGllbnQgbWVudSwuY3Jpc3AtY2xpZW50IG5hdiwuY3Jpc3AtY2xpZW50IHNlY3Rpb24sLmNyaXNwLWNsaWVudCBhdWRpbywuY3Jpc3AtY2xpZW50IHZpZGVvLC5jcmlzcC1jbGllbnQgYWRkcmVzcywuY3Jpc3AtY2xpZW50IGJsb2NrcXVvdGUsLmNyaXNwLWNsaWVudCBjb2xncm91cCwuY3Jpc3AtY2xpZW50IG1haW4sLmNyaXNwLWNsaWVudCBwcm9ncmVzcywuY3Jpc3AtY2xpZW50IHN1bW1hcnl7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCBoMSwuY3Jpc3AtY2xpZW50IGgyLC5jcmlzcC1jbGllbnQgaDMsLmNyaXNwLWNsaWVudCBoNCwuY3Jpc3AtY2xpZW50IGg1LC5jcmlzcC1jbGllbnQgaDZ7Zm9udC13ZWlnaHQ6NzAwIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IGgxe3BhZGRpbmc6LjI1ZW0gMCFpbXBvcnRhbnQ7Zm9udC1zaXplOjJlbSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCBoMntwYWRkaW5nOi4zZW0gMCFpbXBvcnRhbnQ7Zm9udC1zaXplOjEuNWVtIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IGgze3BhZGRpbmc6LjM1ZW0gMCFpbXBvcnRhbnQ7Zm9udC1zaXplOjEuMTdlbSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCBoNHtmb250LXNpemU6MWVtIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IGg1e2ZvbnQtc2l6ZTouODNlbSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCBwe21hcmdpbjoxZW0gMCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCB0YWJsZXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2UhaW1wb3J0YW50O2JvcmRlci1zcGFjaW5nOjAhaW1wb3J0YW50O2Rpc3BsYXk6dGFibGUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgdGhlYWR7ZGlzcGxheTp0YWJsZS1oZWFkZXItZ3JvdXAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgdGJvZHl7ZGlzcGxheTp0YWJsZS1yb3ctZ3JvdXAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgdGZvb3R7ZGlzcGxheTp0YWJsZS1mb290ZXItZ3JvdXAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgdHJ7ZGlzcGxheTp0YWJsZS1yb3chaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgdGgsLmNyaXNwLWNsaWVudCB0ZHtwYWRkaW5nOjJweCFpbXBvcnRhbnQ7ZGlzcGxheTp0YWJsZS1jZWxsIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IG9sLC5jcmlzcC1jbGllbnQgdWx7bWFyZ2luOjFlbSAwIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IHVsIGxpLC5jcmlzcC1jbGllbnQgdWwgdWwgbGksLmNyaXNwLWNsaWVudCB1bCB1bCB1bCBsaSwuY3Jpc3AtY2xpZW50IG9sIGxpLC5jcmlzcC1jbGllbnQgb2wgb2wgbGksLmNyaXNwLWNsaWVudCBvbCBvbCBvbCBsaSwuY3Jpc3AtY2xpZW50IHVsIG9sIG9sIGxpLC5jcmlzcC1jbGllbnQgdWwgdWwgb2wgbGksLmNyaXNwLWNsaWVudCBvbCB1bCB1bCBsaSwuY3Jpc3AtY2xpZW50IG9sIG9sIHVsIGxpe21hcmdpbi10b3A6LjA4ZW0haW1wb3J0YW50O2xpc3Qtc3R5bGUtcG9zaXRpb246aW5zaWRlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IG9sIG9sLC5jcmlzcC1jbGllbnQgb2wgb2wgb2wsLmNyaXNwLWNsaWVudCB1bCB1bCwuY3Jpc3AtY2xpZW50IHVsIHVsIHVsLC5jcmlzcC1jbGllbnQgb2wgdWwsLmNyaXNwLWNsaWVudCBvbCB1bCB1bCwuY3Jpc3AtY2xpZW50IG9sIG9sIHVsLC5jcmlzcC1jbGllbnQgdWwgb2wsLmNyaXNwLWNsaWVudCB1bCBvbCBvbCwuY3Jpc3AtY2xpZW50IHVsIHVsIG9se21hcmdpbjowIWltcG9ydGFudDtwYWRkaW5nLWlubGluZS1zdGFydDo0MHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IG5hdiB1bCwuY3Jpc3AtY2xpZW50IG5hdiBvbHtsaXN0LXN0eWxlLXR5cGU6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCB1bCwuY3Jpc3AtY2xpZW50IG1lbnV7bGlzdC1zdHlsZS10eXBlOmRpc2MhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgb2x7bGlzdC1zdHlsZS10eXBlOmRlY2ltYWwhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgb2wgdWwsLmNyaXNwLWNsaWVudCB1bCB1bCwuY3Jpc3AtY2xpZW50IG1lbnUgdWwsLmNyaXNwLWNsaWVudCBvbCBtZW51LC5jcmlzcC1jbGllbnQgdWwgbWVudSwuY3Jpc3AtY2xpZW50IG1lbnUgbWVudXtsaXN0LXN0eWxlLXR5cGU6Y2lyY2xlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IG9sIG9sIHVsLC5jcmlzcC1jbGllbnQgb2wgdWwgdWwsLmNyaXNwLWNsaWVudCBvbCBtZW51IHVsLC5jcmlzcC1jbGllbnQgb2wgb2wgbWVudSwuY3Jpc3AtY2xpZW50IG9sIHVsIG1lbnUsLmNyaXNwLWNsaWVudCBvbCBtZW51IG1lbnUsLmNyaXNwLWNsaWVudCB1bCBvbCB1bCwuY3Jpc3AtY2xpZW50IHVsIHVsIHVsLC5jcmlzcC1jbGllbnQgdWwgbWVudSB1bCwuY3Jpc3AtY2xpZW50IHVsIG9sIG1lbnUsLmNyaXNwLWNsaWVudCB1bCB1bCBtZW51LC5jcmlzcC1jbGllbnQgdWwgbWVudSBtZW51LC5jcmlzcC1jbGllbnQgbWVudSBvbCB1bCwuY3Jpc3AtY2xpZW50IG1lbnUgdWwgdWwsLmNyaXNwLWNsaWVudCBtZW51IG1lbnUgdWwsLmNyaXNwLWNsaWVudCBtZW51IG9sIG1lbnUsLmNyaXNwLWNsaWVudCBtZW51IHVsIG1lbnUsLmNyaXNwLWNsaWVudCBtZW51IG1lbnUgbWVudXtsaXN0LXN0eWxlLXR5cGU6c3F1YXJlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IGxpe21pbi1oZWlnaHQ6YXV0bzttaW4td2lkdGg6YXV0byFpbXBvcnRhbnQ7cGFkZGluZy1pbmxpbmUtc3RhcnQ6MjBweCFpbXBvcnRhbnQ7ZGlzcGxheTpsaXN0LWl0ZW0haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgc3Ryb25ne2ZvbnQtd2VpZ2h0OjcwMCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCBlbXtmb250LXN0eWxlOm5vcm1hbCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCBhe2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IGEsLmNyaXNwLWNsaWVudCBhICosLmNyaXNwLWNsaWVudCBpbnB1dFt0eXBlPXN1Ym1pdF0sLmNyaXNwLWNsaWVudCBpbnB1dFt0eXBlPXJhZGlvXSwuY3Jpc3AtY2xpZW50IGlucHV0W3R5cGU9Y2hlY2tib3hdLC5jcmlzcC1jbGllbnQgc2VsZWN0e2N1cnNvcjpwb2ludGVyIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IGJ1dHRvbiwuY3Jpc3AtY2xpZW50IGlucHV0W3R5cGU9c3VibWl0XXt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7YXBwZWFyYW5jZTpub25lIWltcG9ydGFudDtjb2xvcjpidXR0b250ZXh0IWltcG9ydGFudDtiYWNrZ3JvdW5kOiNmZmYhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSwgMSkgMCUsICNkZGQgMTAwJSwgI2QxZDFkMSAxMDAlLCAjZGRkIDEwMCUpIWltcG9ydGFudDtvdXRsaW5lOmluaXRpYWwhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgI2E2YTZhNiFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czo0cHghaW1wb3J0YW50O3BhZGRpbmc6MnB4IDZweCAzcHghaW1wb3J0YW50O2ZvbnQtc2l6ZTpzbWFsbCFpbXBvcnRhbnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmUhaW1wb3J0YW50O2JveC1zaGFkb3c6MXB4IDFweCAjZWVlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IGJ1dHRvbnttYXJnaW4taW5saW5lLWVuZDo1cHghaW1wb3J0YW50O3BhZGRpbmc6MXB4IDZweCAycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgaW5wdXRbdHlwZT1oaWRkZW5de2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCBpbnB1dFt0eXBlPXRleHRde2JhY2tncm91bmQ6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSkhaW1wb3J0YW50O3BhZGRpbmc6MXB4IWltcG9ydGFudDtmb250LXNpemU6c21hbGwhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgaW5wdXRbdHlwZT1jaGVja2JveF0sLmNyaXNwLWNsaWVudCBpbnB1dFt0eXBlPXJhZGlvXXtvdXRsaW5lOmludGlhbCFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCAjMmIyYjJiIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjRweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCBpbnB1dFt0eXBlPXJhZGlvXXttYXJnaW46MnB4IDJweCAzcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgdGV4dGFyZWF7bGluZS1oZWlnaHQ6MTNweDthcHBlYXJhbmNlOmF1dG8haW1wb3J0YW50O2JhY2tncm91bmQ6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSkhaW1wb3J0YW50O3dvcmQtd3JhcDpicmVhay13b3JkIWltcG9ydGFudDt3aGl0ZS1zcGFjZTpwcmUtd3JhcCFpbXBvcnRhbnQ7cmVzaXplOmJvdGghaW1wb3J0YW50O3ZlcnRpY2FsLWFsaWduOnRvcCFpbXBvcnRhbnQ7bWFyZ2luLWlubGluZS1zdGFydDo0cHghaW1wb3J0YW50O3BhZGRpbmc6MnB4IWltcG9ydGFudDtmb250LXNpemU6MTFweCFpbXBvcnRhbnQ7b3ZlcmZsb3c6YXV0byFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCBzZWxlY3QsLmNyaXNwLWNsaWVudCB0ZXh0YXJlYSwuY3Jpc3AtY2xpZW50IGlucHV0e3RleHQtYWxpZ246bGVmdCFpbXBvcnRhbnQ7dGV4dC10cmFuc2Zvcm06bm9uZSFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCAjY2NjIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IHRleHRhcmVhOmRpc2FibGVkLC5jcmlzcC1jbGllbnQgaW5wdXQ6ZGlzYWJsZWQsLmNyaXNwLWNsaWVudCBidXR0b246ZGlzYWJsZWR7b3BhY2l0eTppbml0aWFsIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IHNlbGVjdHtmb250LXNpemU6MTFweCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgdGV4dGFyZWEsLmNyaXNwLWNsaWVudCBpbnB1dHttYXJnaW46MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCB0ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlcntmb250LXNpemU6aW5oZXJpdCFpbXBvcnRhbnQ7Zm9udC1zdHlsZTppbmhlcml0IWltcG9ydGFudDtmb250LXZhcmlhbnQ6bm9ybWFsIWltcG9ydGFudDtmb250LXdlaWdodDppbmhlcml0IWltcG9ydGFudDt0ZXh0LWFsaWduOmluaGVyaXQhaW1wb3J0YW50O29wYWNpdHk6MSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCBpbnB1dDo6LW1vei1wbGFjZWhvbGRlcntmb250LXNpemU6aW5oZXJpdCFpbXBvcnRhbnQ7Zm9udC1zdHlsZTppbmhlcml0IWltcG9ydGFudDtmb250LXZhcmlhbnQ6bm9ybWFsIWltcG9ydGFudDtmb250LXdlaWdodDppbmhlcml0IWltcG9ydGFudDt0ZXh0LWFsaWduOmluaGVyaXQhaW1wb3J0YW50O29wYWNpdHk6MSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIsLmNyaXNwLWNsaWVudCBpbnB1dDo6cGxhY2Vob2xkZXJ7Zm9udC1zaXplOmluaGVyaXQhaW1wb3J0YW50O2ZvbnQtc3R5bGU6aW5oZXJpdCFpbXBvcnRhbnQ7Zm9udC12YXJpYW50Om5vcm1hbCFpbXBvcnRhbnQ7Zm9udC13ZWlnaHQ6aW5oZXJpdCFpbXBvcnRhbnQ7dGV4dC1hbGlnbjppbmhlcml0IWltcG9ydGFudDtvcGFjaXR5OjEhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgdGV4dGFyZWE6Zm9jdXMsLmNyaXNwLWNsaWVudCBpbnB1dDpmb2N1c3tvdXRsaW5lOmluaXRpYWwhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgaW5wdXRbdHlwZT1zdWJtaXRdOmFjdGl2ZSwuY3Jpc3AtY2xpZW50IGJ1dHRvbjphY3RpdmV7YmFja2dyb3VuZDojM2I2NzllIGxpbmVhci1ncmFkaWVudCgjM2I2NzllIDAlLCMyYjg4ZDkgNTAlLCMyMDdjY2EgNTElLCM3ZGI5ZTggMTAwJSkhaW1wb3J0YW50O2JvcmRlci1jb2xvcjojNTI1OWIwIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IGFiYnJbdGl0bGVdLC5jcmlzcC1jbGllbnQgYWNyb255bVt0aXRsZV0sLmNyaXNwLWNsaWVudCBkZm5bdGl0bGVde2N1cnNvcjpoZWxwIWltcG9ydGFudDtib3JkZXItYm90dG9tLXN0eWxlOmRvdHRlZCFpbXBvcnRhbnQ7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgaW5ze2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiNmZjkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgZGVse3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2ghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgYmxvY2txdW90ZSwuY3Jpc3AtY2xpZW50IHF7cXVvdGVzOm5vbmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgYmxvY2txdW90ZTpiZWZvcmUsLmNyaXNwLWNsaWVudCBxOmJlZm9yZSwuY3Jpc3AtY2xpZW50IGxpOmJlZm9yZSwuY3Jpc3AtY2xpZW50IGJsb2NrcXVvdGU6YWZ0ZXIsLmNyaXNwLWNsaWVudCBxOmFmdGVyLC5jcmlzcC1jbGllbnQgbGk6YWZ0ZXJ7Y29udGVudDoiIiFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCBpbnB1dCwuY3Jpc3AtY2xpZW50IHNlbGVjdHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgaHJ7aGVpZ2h0OjFweDtib3JkZXI6MCFpbXBvcnRhbnQ7Ym9yZGVyLXRvcDoxcHggc29saWQgI2NjYyFpbXBvcnRhbnQ7bWFyZ2luOjFlbSAwIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IG1hcmt7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbm9ybWFsKSkhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2ZmOSFpbXBvcnRhbnQ7Zm9udC1zdHlsZTpub3JtYWwhaW1wb3J0YW50O2ZvbnQtd2VpZ2h0OjcwMCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCBtZW51e3BhZGRpbmctaW5saW5lLXN0YXJ0OjQwcHghaW1wb3J0YW50O3BhZGRpbmctdG9wOjhweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCBbaGlkZGVuXSwuY3Jpc3AtY2xpZW50IHRlbXBsYXRle2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCBhYmJyW3RpdGxlXXtib3JkZXItYm90dG9tOjFweCBkb3R0ZWQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgc3ViLC5jcmlzcC1jbGllbnQgc3Vwe2xpbmUtaGVpZ2h0OjA7dmVydGljYWwtYWxpZ246YmFzZWxpbmUhaW1wb3J0YW50O2ZvbnQtc2l6ZTo3NSUhaW1wb3J0YW50O3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IHN1cHt0b3A6LS41ZW0haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgc3Vie2JvdHRvbTotLjI1ZW0haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgaW1ne2JvcmRlcjowIWltcG9ydGFudDtvdmVyZmxvdzpjbGlwIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IGZpZ3VyZXttYXJnaW46MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCBwcmV7d2hpdGUtc3BhY2U6cHJlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50ey0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWw6MjU1LCAyNTUsIDI1NTstLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtZGFyazoyNTUsIDI1NSwgMjU1Oy0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1saWdodDoyOCwgNDEsIDU5Oy0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWw6MCwgMCwgMDstLWNyaXNwLWNvbG9yLWJhc2UtYmx1ZS11bHRyYS1saWdodDoyMjQsIDIzNywgMjU1Oy0tY3Jpc3AtY29sb3ItYmFzZS1ibHVlLWxpZ2h0Ojg5LCAxNDQsIDIyNjstLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS11bHRyYS1saWdodDoyNDAsIDI0MiwgMjQ1Oy0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LWxpZ2h0OjIxMSwgMjIxLCAyMzA7LS1jcmlzcC1jb2xvci1iYXNlLWdyZXktbm9ybWFsOjEwMiwgMTIwLCAxMzg7LS1jcmlzcC1jb2xvci1iYXNlLWdyZXktZGFyazo1NSwgODEsIDEwODstLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS11bHRyYS1kYXJrOjQwLCA2NCwgODk7LS1jcmlzcC1jb2xvci1iYXNlLXJlZC11bHRyYS1saWdodDoyNTUsIDI0MiwgMjQzOy0tY3Jpc3AtY29sb3ItYmFzZS1yZWQtbGlnaHQ6MjU1LCAyMjAsIDIyNDstLWNyaXNwLWNvbG9yLWJhc2UtcmVkLW5vcm1hbDoyMzgsIDUxLCA3NTstLWNyaXNwLWNvbG9yLWJhc2UtcmVkLWRhcms6MTk5LCAxMCwgMzQ7LS1jcmlzcC1jb2xvci1iYXNlLXJlZC11bHRyYS1kYXJrOjEwNywgMTIsIDA7LS1jcmlzcC1jb2xvci1iYXNlLWdyZWVuLWxpZ2h0Ojc4LCAyMDYsIDYxOy0tY3Jpc3AtY29sb3ItYmFzZS1ncmVlbi1ub3JtYWw6MzQsIDE3OCwgMTU7LS1jcmlzcC1jb2xvci1iYXNlLWdyZWVuLWRhcms6MTUsIDEyOCwgNDstLWNyaXNwLWNvbG9yLWJhc2UtZ3JlZW4tdWx0cmEtZGFyazo3LCA1OCwgMDstLWNyaXNwLWNvbG9yLWJhc2Utb3JhbmdlLWRhcms6MjI1LCAxMDUsIDA7LS1jcmlzcC1jb2xvci1iYXNlLXllbGxvdy11bHRyYS1saWdodDoyNTUsIDI0NiwgMjA4Oy0tY3Jpc3AtY29sb3ItYmFzZS15ZWxsb3ctbGlnaHQ6MjU1LCAyNDQsIDEyNzstLWNyaXNwLWNvbG9yLWJhc2UteWVsbG93LW5vcm1hbDoyNDUsIDIwMSwgMTI7LS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbC1maXhlZDoyNTUsIDI1NSwgMjU1Oy0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwtZml4ZWQ6MCwgMCwgMDstLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbGlnaHQtZml4ZWQ6MjgsIDQxLCA1OTstLWNyaXNwLWNvbG9yLXRleHQtYmxhY2stbm9ybWFsOjI4LCA0MSwgNTk7LS1jcmlzcC1jb2xvci10ZXh0LXdoaXRlLW5vcm1hbDoyNTUsIDI1NSwgMjU1Oy0tY3Jpc3AtY29sb3ItdGV4dC1ncmV5LW5vcm1hbDoxMDIsIDEyMCwgMTM4Oy0tY3Jpc3AtY29sb3ItdGV4dC1ncmV5LWRhcms6NTUsIDgxLCAxMDg7LS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbC1maXhlZDoyOCwgNDEsIDU5Oy0tY3Jpc3AtY29sb3ItdGV4dC13aGl0ZS1ub3JtYWwtZml4ZWQ6MjU1LCAyNTUsIDI1NTstLWNyaXNwLWNvbG9yLXNlcGFyYXRvci1ub3JtYWw6MjMzLCAyMzgsIDI0MzstLWNyaXNwLWNvbG9yLXNlcGFyYXRvci1kYXJrOjIxMSwgMjIxLCAyMzA7LS1jcmlzcC1jb2xvci1wbGFjZWhvbGRlci1ub3JtYWw6MTAyLCAxMjAsIDEzODstLWNyaXNwLWNvbG9yLXBsYWNlaG9sZGVyLWRpc2FibGVkOjIxMSwgMjIxLCAyMzA7LS1jcmlzcC1jb2xvci1zaGFkb3ctbm9ybWFsOjAsIDAsIDA7LS1jcmlzcC1jb2xvci1iYWNrZ3JvdW5kLXVsdHJhLWxpZ2h0OjI0NywgMjQ5LCAyNTI7LS1jcmlzcC1jb2xvci1iYWNrZ3JvdW5kLWxpZ2h0OjIzNywgMjQwLCAyNDY7LS1jcmlzcC1jb2xvci1iYWNrZ3JvdW5kLWxvY2tlcjoyOCwgNDEsIDU5fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoW2RhdGEtY29sb3ItbW9kZT1kYXJrXS5jYy0xc29mNSwuY3Jpc3AtY2xpZW50IC5jYy0xNjV3aFtkYXRhLWNvbG9yLW1vZGU9ZGFya10gLmNjLTFzb2Y1ey0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWw6MTgsIDE4LCAxODstLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtZGFyazo0OCwgNDgsIDQ4Oy0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1saWdodDoyNTUsIDI1NSwgMjU1Oy0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWw6MjU1LCAyNTUsIDI1NTstLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS11bHRyYS1saWdodDo0OCwgNDgsIDQ4Oy0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LWxpZ2h0OjcwLjk1LCA3MC45NSwgNzAuOTU7LS1jcmlzcC1jb2xvci1iYXNlLWdyZXktbm9ybWFsOjIxMSwgMjIxLCAyMzA7LS1jcmlzcC1jb2xvci1iYXNlLWdyZXktZGFyazoyNDAsIDI0MiwgMjQ1Oy0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LXVsdHJhLWRhcms6MjQwLCAyNDIsIDI0NTstLWNyaXNwLWNvbG9yLXRleHQtYmxhY2stbm9ybWFsOjI1NSwgMjU1LCAyNTU7LS1jcmlzcC1jb2xvci10ZXh0LXdoaXRlLW5vcm1hbDoyOCwgNDEsIDU5Oy0tY3Jpc3AtY29sb3ItdGV4dC1ncmV5LW5vcm1hbDoyNTUsIDI1NSwgMjU1Oy0tY3Jpc3AtY29sb3ItdGV4dC1ncmV5LWRhcms6MjU1LCAyNTUsIDI1NTstLWNyaXNwLWNvbG9yLXNlcGFyYXRvci1ub3JtYWw6NDgsIDQ4LCA0ODstLWNyaXNwLWNvbG9yLXNlcGFyYXRvci1kYXJrOjcwLjk1LCA3MC45NSwgNzAuOTU7LS1jcmlzcC1jb2xvci1wbGFjZWhvbGRlci1ub3JtYWw6MjExLCAyMjEsIDIzMDstLWNyaXNwLWNvbG9yLXBsYWNlaG9sZGVyLWRpc2FibGVkOjc4LjYsIDc4LjYsIDc4LjY7LS1jcmlzcC1jb2xvci1iYWNrZ3JvdW5kLXVsdHJhLWxpZ2h0OjQ4LCA0OCwgNDg7LS1jcmlzcC1jb2xvci1iYWNrZ3JvdW5kLWxpZ2h0OjY1Ljg1LCA2NS44NSwgNjUuODU7LS1jcmlzcC1jb2xvci1iYWNrZ3JvdW5kLWxvY2tlcjoyNTUsIDI1NSwgMjU1fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoey0tY3Jpc3AtZW52LWRldmljZS1pbnNldC10b3A6MHB4Oy0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1ib3R0b206MHB4Oy0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1sZWZ0OjBweDstLWNyaXNwLWVudi1kZXZpY2UtaW5zZXQtcmlnaHQ6MHB4fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoW2RhdGEtZnVsbC12aWV3PXRydWVdey0tY3Jpc3AtZW52LWRldmljZS1pbnNldC10b3A6bWF4KGVudihzYWZlLWFyZWEtaW5zZXQtdG9wLDBweCksIHZhcigtLWNyaXNwLW92ZXJyaWRlLWVudi1zYWZlLWFyZWEtaW5zZXQtdG9wLDBweCkpOy0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1ib3R0b206bWF4KGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLDBweCksIHZhcigtLWNyaXNwLW92ZXJyaWRlLWVudi1zYWZlLWFyZWEtaW5zZXQtYm90dG9tLDBweCkpOy0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1sZWZ0Om1heChlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQsMHB4KSwgdmFyKC0tY3Jpc3Atb3ZlcnJpZGUtZW52LXNhZmUtYXJlYS1pbnNldC1sZWZ0LDBweCkpOy0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1yaWdodDptYXgoZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCwwcHgpLCB2YXIoLS1jcmlzcC1vdmVycmlkZS1lbnYtc2FmZS1hcmVhLWluc2V0LXJpZ2h0LDBweCkpfS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoW2RhdGEtZnVsbC12aWV3PXRydWVdW2RhdGEtcHJlc2VudGF0aW9uPXNoZWV0XXstLWNyaXNwLWVudi1kZXZpY2UtaW5zZXQtdG9wOjBweH0uY3Jpc3AtY2xpZW50ey0tY3Jpc3AtY3VzdG9taXphdGlvbi1jb250YWluZXItaW5kZXg6MTAwMDAwMDstLWNyaXNwLWN1c3RvbWl6YXRpb24tZGVmYXVsdC1idXR0b24taG9yaXpvbnRhbDowcHg7LS1jcmlzcC1jdXN0b21pemF0aW9uLWRlZmF1bHQtYnV0dG9uLXZlcnRpY2FsOjBweDstLWNyaXNwLWN1c3RvbWl6YXRpb24tbW9iaWxlLWJ1dHRvbi1ob3Jpem9udGFsOjBweDstLWNyaXNwLWN1c3RvbWl6YXRpb24tbW9iaWxlLWJ1dHRvbi12ZXJ0aWNhbDowcHh9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2h7LS1jcmlzcC1jdXN0b21pemF0aW9uLWJ1dHRvbi1ob3Jpem9udGFsOnZhcigtLWNyaXNwLWN1c3RvbWl6YXRpb24tZGVmYXVsdC1idXR0b24taG9yaXpvbnRhbCk7LS1jcmlzcC1jdXN0b21pemF0aW9uLWJ1dHRvbi12ZXJ0aWNhbDp2YXIoLS1jcmlzcC1jdXN0b21pemF0aW9uLWRlZmF1bHQtYnV0dG9uLXZlcnRpY2FsKX0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aFtkYXRhLWZ1bGwtdmlldz10cnVlXXstLWNyaXNwLWN1c3RvbWl6YXRpb24tYnV0dG9uLWhvcml6b250YWw6dmFyKC0tY3Jpc3AtY3VzdG9taXphdGlvbi1tb2JpbGUtYnV0dG9uLWhvcml6b250YWwpOy0tY3Jpc3AtY3VzdG9taXphdGlvbi1idXR0b24tdmVydGljYWw6dmFyKC0tY3Jpc3AtY3VzdG9taXphdGlvbi1tb2JpbGUtYnV0dG9uLXZlcnRpY2FsKX1Aa2V5ZnJhbWVzIGNjLWduNTlnezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fUBrZXlmcmFtZXMgY2MtbWhmNWd7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MH19QGtleWZyYW1lcyBjYy0xZXJybnswJXtvcGFjaXR5OjB9NTAle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fUBrZXlmcmFtZXMgY2MtN2tubWZ7MCV7b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZSgxKX10b3tvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKDIpfX1Aa2V5ZnJhbWVzIGNjLTE1MGRyezAle29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUzZCguNiwuNiwuNil9ODAle29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUzZCguOSwuOSwuOSl9dG97b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIGNjLXR3cmt2ezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg0JSl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTpub25lfX1Aa2V5ZnJhbWVzIGNjLWRtY3dpezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlKDEwMHB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOm5vbmV9fUBrZXlmcmFtZXMgY2MtMTVodjd7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTEwMHB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOm5vbmV9fUBrZXlmcmFtZXMgY2MtZ2ZlZWN7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwKX10b3t0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fUBrZXlmcmFtZXMgY2MtMTIwb3h7MCV7b3BhY2l0eToxfTUwJXtvcGFjaXR5Oi40fXRve29wYWNpdHk6MX19QGtleWZyYW1lcyBjYy0xcnBiNXswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMyUpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZX19QGtleWZyYW1lcyBjYy0xbm52ZXswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDIuNSUpfX1Aa2V5ZnJhbWVzIGNjLTE5aml4ezAle29wYWNpdHk6MDt0cmFuc2Zvcm06cm90YXRlKC0xMGRlZyl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTpyb3RhdGUoMCl9fUBrZXlmcmFtZXMgY2MtaTY2ZGd7MCV7b3BhY2l0eToxO3RyYW5zZm9ybTpyb3RhdGUoMCl9dG97b3BhY2l0eTowO3RyYW5zZm9ybTpyb3RhdGUoLTEwZGVnKX19QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMDAyMC0wMDdGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsyMC03Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wMDIwLTAwN0Yvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzIwLTdGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzAwQTAtMDBGRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrQTAtRkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMDBBMC0wMEZGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStBMC1GRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wMTAwLTAxN0Yvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzEwMC0xN0Z9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMDEwMC0wMTdGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsxMDAtMTdGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzAxODAtMDI0Ri9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMTgwLTI0Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wMTgwLTAyNEYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE4MC0yNEZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMDI1MC0wMkFGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsyNTAtMkFGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzAyNTAtMDJBRi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMjUwLTJBRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wMkIwLTAyRkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzJCMC0yRkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMDJCMC0wMkZGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsyQjAtMkZGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzAzMDAtMDM2Ri9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMzAwLTM2Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wMzAwLTAzNkYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzMwMC0zNkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMDM3MC0wM0ZGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSszNzAtM0ZGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzAzNzAtMDNGRi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMzcwLTNGRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wNDAwLTA0RkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzQ/P31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wNDAwLTA0RkYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzQ/P31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wNTAwLTA1MkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzUwMC01MkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMDUwMC0wNTJGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSs1MDAtNTJGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzA1MzAtMDU4Ri9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrNTMwLTU4Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wNTMwLTA1OEYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzUzMC01OEZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMDU5MC0wNUZGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSs1OTAtNUZGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzA1OTAtMDVGRi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrNTkwLTVGRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wNjAwLTA2RkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzY/P31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wNjAwLTA2RkYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzY/P31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wNzAwLTA3NEYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzcwMC03NEZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMDcwMC0wNzRGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSs3MDAtNzRGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzA3ODAtMDdCRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrNzgwLTdCRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wNzgwLTA3QkYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzc4MC03QkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMDkwMC0wOTdGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSs5MDAtOTdGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzA5MDAtMDk3Ri9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrOTAwLTk3Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wOTgwLTA5RkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzk4MC05RkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMDk4MC0wOUZGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSs5ODAtOUZGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzBBMDAtMEE3Ri9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrQTAwLUE3Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wQTAwLTBBN0Yvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVK0EwMC1BN0Z9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMEE4MC0wQUZGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStBODAtQUZGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzBBODAtMEFGRi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrQTgwLUFGRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wQjAwLTBCN0Yvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVK0IwMC1CN0Z9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMEIwMC0wQjdGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStCMDAtQjdGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzBCODAtMEJGRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrQjgwLUJGRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wQjgwLTBCRkYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVK0I4MC1CRkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMEMwMC0wQzdGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStDMDAtQzdGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzBDMDAtMEM3Ri9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrQzAwLUM3Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wQzgwLTBDRkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVK0M4MC1DRkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMEM4MC0wQ0ZGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStDODAtQ0ZGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzBEMDAtMEQ3Ri9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrRDAwLUQ3Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wRDAwLTBEN0Yvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVK0QwMC1EN0Z9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMEQ4MC0wREZGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStEODAtREZGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzBEODAtMERGRi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrRDgwLURGRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wRTAwLTBFN0Yvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVK0UwMC1FN0Z9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMEUwMC0wRTdGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStFMDAtRTdGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzBFODAtMEVGRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrRTgwLUVGRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8wRTgwLTBFRkYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVK0U4MC1FRkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMEYwMC0wRkZGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStGPz99QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMEYwMC0wRkZGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStGPz99QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMTAwMC0xMDlGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsxMDAwLTEwOUZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMTAwMC0xMDlGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsxMDAwLTEwOUZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMTBBMC0xMEZGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsxMEEwLTEwRkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMTBBMC0xMEZGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsxMEEwLTEwRkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMTEwMC0xMUZGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsxMT8/fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzExMDAtMTFGRi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMTE/P31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xMjAwLTEzN0Yvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzEyMDAtMTM3Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xMjAwLTEzN0Yvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzEyMDAtMTM3Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xM0EwLTEzRkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzEzQTAtMTNGRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xM0EwLTEzRkYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzEzQTAtMTNGRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xNDAwLTE2N0Yvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE0MDAtMTY3Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xNDAwLTE2N0Yvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE0MDAtMTY3Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xNjgwLTE2OUYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE2ODAtMTY5Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xNjgwLTE2OUYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE2ODAtMTY5Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xNkEwLTE2RkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE2QTAtMTZGRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xNkEwLTE2RkYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE2QTAtMTZGRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xNzAwLTE3MUYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE3MDAtMTcxRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xNzAwLTE3MUYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE3MDAtMTcxRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xNzIwLTE3M0Yvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE3MjAtMTczRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xNzIwLTE3M0Yvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE3MjAtMTczRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xNzQwLTE3NUYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE3NDAtMTc1Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xNzQwLTE3NUYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE3NDAtMTc1Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xNzYwLTE3N0Yvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE3NjAtMTc3Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xNzYwLTE3N0Yvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE3NjAtMTc3Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xNzgwLTE3RkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE3ODAtMTdGRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xNzgwLTE3RkYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE3ODAtMTdGRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xODAwLTE4QUYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE4MDAtMThBRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xODAwLTE4QUYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE4MDAtMThBRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xOTAwLTE5NEYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE5MDAtMTk0Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xOTAwLTE5NEYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE5MDAtMTk0Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xOTUwLTE5N0Yvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE5NTAtMTk3Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xOTUwLTE5N0Yvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE5NTAtMTk3Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xOUUwLTE5RkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE5RTAtMTlGRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xOUUwLTE5RkYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzE5RTAtMTlGRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xRDAwLTFEN0Yvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzFEMDAtMUQ3Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xRDAwLTFEN0Yvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzFEMDAtMUQ3Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xRTAwLTFFRkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzFFPz99QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMUUwMC0xRUZGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsxRT8/fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzFGMDAtMUZGRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMUY/P31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8yMDAwLTIwNkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzIwMDAtMjA2Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8yMDcwLTIwOUYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzIwNzAtMjA5Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8yMEEwLTIwQ0Yvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzIwQTAtMjBDRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8yMEQwLTIwRkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzIwRDAtMjBGRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8yMTAwLTIxNEYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzIxMDAtMjE0Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8yMTUwLTIxOEYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzIxNTAtMjE4Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8yMTkwLTIxRkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzIxOTAtMjFGRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8yMjAwLTIyRkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzIyPz99QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMjMwMC0yM0ZGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsyMz8/fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzI0MDAtMjQzRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMjQwMC0yNDNGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzI0NDAtMjQ1Ri9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMjQ0MC0yNDVGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzI0NjAtMjRGRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMjQ2MC0yNEZGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzI1MDAtMjU3Ri9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMjUwMC0yNTdGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzI1ODAtMjU5Ri9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMjU4MC0yNTlGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzI1ODAtMjU5Ri9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMjU4MC0yNTlGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzI1QTAtMjVGRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMjVBMC0yNUZGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzI1QTAtMjVGRi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMjVBMC0yNUZGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzI2MDAtMjZGRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMjY/P31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8yNjAwLTI2RkYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzI2Pz99QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMjcwMC0yN0JGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsyNzAwLTI3QkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMjcwMC0yN0JGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsyNzAwLTI3QkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMjdDMC0yN0VGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsyN0MwLTI3RUZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMjdDMC0yN0VGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsyN0MwLTI3RUZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMjdGMC0yN0ZGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsyN0Y/fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzI3RjAtMjdGRi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMjdGP31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8yODAwLTI4RkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzI4Pz99QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMjgwMC0yOEZGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsyOD8/fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzI5MDAtMjk3Ri9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMjkwMC0yOTdGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzI5MDAtMjk3Ri9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMjkwMC0yOTdGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzI5ODAtMjlGRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMjk4MC0yOUZGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzI5ODAtMjlGRi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMjk4MC0yOUZGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzJBMDAtMkFGRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMkE/P31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8yQTAwLTJBRkYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzJBPz99QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMkIwMC0yQkZGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsyQj8/fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzJCMDAtMkJGRi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMkI/P31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8yRTgwLTJFRkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzJFODAtMkVGRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8yRTgwLTJFRkYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzJFODAtMkVGRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8yRjAwLTJGREYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzJGMDAtMkZERn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8yRjAwLTJGREYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzJGMDAtMkZERn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8yRkYwLTJGRkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzJGRj99QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMkZGMC0yRkZGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsyRkY/fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzMwMDAtMzAzRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMzAwMC0zMDNGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzMwMDAtMzAzRi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMzAwMC0zMDNGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzMwNDAtMzA5Ri9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMzA0MC0zMDlGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzMwNDAtMzA5Ri9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMzA0MC0zMDlGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzMwQTAtMzBGRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMzBBMC0zMEZGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzMwQTAtMzBGRi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMzBBMC0zMEZGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzMxMDAtMzEyRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMzEwMC0zMTJGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzMxMDAtMzEyRi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMzEwMC0zMTJGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzMxMzAtMzE4Ri9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMzEzMC0zMThGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzMxMzAtMzE4Ri9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMzEzMC0zMThGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzMxOTAtMzE5Ri9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMzE5P31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8zMTkwLTMxOUYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzMxOT99QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMzFBMC0zMUJGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSszMUEwLTMxQkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMzFBMC0zMUJGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSszMUEwLTMxQkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMzFGMC0zMUZGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSszMUY/fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzMxRjAtMzFGRi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMzFGP31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8zMjAwLTMyRkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzMyPz99QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMzIwMC0zMkZGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSszMj8/fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzMzMDAtMzNGRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMzM/P31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8zMzAwLTMzRkYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzMzPz99QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMzQwMC00REJGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSszNDAwLTREQkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMzQwMC00REJGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSszNDAwLTREQkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvNERDMC00REZGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSs0REMwLTRERkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvNERDMC00REZGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSs0REMwLTRERkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvNEUwMC05RkZGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSs0RTAwLTlGRkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvNEUwMC05RkZGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSs0RTAwLTlGRkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvQTAwMC1BNDhGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStBMDAwLUE0OEZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvQTAwMC1BNDhGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStBMDAwLUE0OEZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvQTQ5MC1BNENGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStBNDkwLUE0Q0Z9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvQTQ5MC1BNENGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStBNDkwLUE0Q0Z9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvQUMwMC1EN0FGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStBQzAwLUQ3QUZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvQUMwMC1EN0FGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStBQzAwLUQ3QUZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvRDgwMC1EQjdGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStEODAwLURCN0Z9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvRDgwMC1EQjdGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStEODAwLURCN0Z9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvREI4MC1EQkZGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStEQjgwLURCRkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvREI4MC1EQkZGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStEQjgwLURCRkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvREMwMC1ERkZGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStEQzAwLURGRkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvREMwMC1ERkZGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStEQzAwLURGRkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvRTAwMC1GOEZGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStFMDAwLUY4RkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvRTAwMC1GOEZGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStFMDAwLUY4RkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvRjkwMC1GQUZGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStGOTAwLUZBRkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvRjkwMC1GQUZGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStGOTAwLUZBRkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvRkIwMC1GQjRGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStGQjAwLUZCNEZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvRkIwMC1GQjRGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStGQjAwLUZCNEZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvRkI1MC1GREZGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStGQjUwLUZERkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvRkI1MC1GREZGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStGQjUwLUZERkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvRkUwMC1GRTBGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStGRTA/fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zL0ZFMDAtRkUwRi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrRkUwP31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy9GRTIwLUZFMkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVK0ZFMj99QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvRkUyMC1GRTJGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VStGRTI/fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zL0ZFMzAtRkU0Ri9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrRkUzMC1GRTRGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zL0ZFMzAtRkU0Ri9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrRkUzMC1GRTRGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zL0ZFNTAtRkU2Ri9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrRkU1MC1GRTZGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zL0ZFNTAtRkU2Ri9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrRkU1MC1GRTZGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zL0ZFNzAtRkVGRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrRkU3MC1GRUZGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zL0ZFNzAtRkVGRi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrRkU3MC1GRUZGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zL0ZGMDAtRkZFRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrRkYwMC1GRkVGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zL0ZGMDAtRkZFRi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrRkYwMC1GRkVGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zL0ZGRjAtRkZGRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrRkZGP31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy9GRkYwLUZGRkYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVK0ZGRj99QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMTAwMDAtMTAwN0Yvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzEwMDAwLTEwMDdGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzEwMDAwLTEwMDdGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsxMDAwMC0xMDA3Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xMDA4MC0xMDBGRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMTAwODAtMTAwRkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMTAwODAtMTAwRkYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzEwMDgwLTEwMEZGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzEwMTAwLTEwMTNGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsxMDEwMC0xMDEzRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xMDEwMC0xMDEzRi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMTAxMDAtMTAxM0Z9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMTAzMDAtMTAzMkYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzEwMzAwLTEwMzJGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzEwMzAwLTEwMzJGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsxMDMwMC0xMDMyRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xMDMzMC0xMDM0Ri9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMTAzMzAtMTAzNEZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMTAzMzAtMTAzNEYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzEwMzMwLTEwMzRGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzEwMzgwLTEwMzlGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsxMDM4MC0xMDM5Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xMDM4MC0xMDM5Ri9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMTAzODAtMTAzOUZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMTA0MDAtMTA0NEYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzEwNDAwLTEwNDRGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzEwNDAwLTEwNDRGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsxMDQwMC0xMDQ0Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xMDQ1MC0xMDQ3Ri9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMTA0NTAtMTA0N0Z9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMTA0NTAtMTA0N0Yvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzEwNDUwLTEwNDdGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzEwNDgwLTEwNEFGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsxMDQ4MC0xMDRBRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xMDQ4MC0xMDRBRi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMTA0ODAtMTA0QUZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMTA4MDAtMTA4M0Yvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzEwODAwLTEwODNGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzEwODAwLTEwODNGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsxMDgwMC0xMDgzRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xRDAwMC0xRDBGRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMUQwPz99QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMUQwMDAtMUQwRkYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzFEMD8/fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzFEMTAwLTFEMUZGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsxRDE/P31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xRDEwMC0xRDFGRi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMUQxPz99QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMUQzMDAtMUQzNUYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzFEMzAwLTFEMzVGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzFEMzAwLTFEMzVGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsxRDMwMC0xRDM1Rn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8xRDQwMC0xRDdGRi9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMUQ0MDAtMUQ3RkZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMUQ0MDAtMUQ3RkYvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzFENDAwLTFEN0ZGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzIwMDAwLTJBNkRGL25vdG9fc2Fuc19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsyMDAwMC0yQTZERn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy8yMDAwMC0yQTZERi9ub3RvX3NhbnNfYm9sZC53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrMjAwMDAtMkE2REZ9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcjtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvMkY4MDAtMkZBMUYvbm90b19zYW5zX3JlZ3VsYXIud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVKzJGODAwLTJGQTFGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIEJvbGQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO3NyYzp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvZm9udHMvbm90b19zYW5zLzJGODAwLTJGQTFGL25vdG9fc2Fuc19ib2xkLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpO3VuaWNvZGUtcmFuZ2U6VSsyRjgwMC0yRkExRn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL25vdG9fc2Fucy9FMDAwMC1FMDA3Ri9ub3RvX3NhbnNfcmVndWxhci53b2ZmMj8yM2U0MjEyKWZvcm1hdCgid29mZjIiKTt1bmljb2RlLXJhbmdlOlUrRTAwMDAtRTAwN0Z9QGZvbnQtZmFjZXtmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9mb250cy9ub3RvX3NhbnMvRTAwMDAtRTAwN0Yvbm90b19zYW5zX2JvbGQud29mZjI/MjNlNDIxMilmb3JtYXQoIndvZmYyIik7dW5pY29kZS1yYW5nZTpVK0UwMDAwLUUwMDdGfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6SGFjayBSZWd1bGFyO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ZvbnRzL2hhY2svaGFja19yZWd1bGFyLndvZmYyPzIzZTQyMTIpZm9ybWF0KCJ3b2ZmMiIpfWh0bWwuY2MtMXJwbHcsaHRtbC5jYy0xcnBsdz5ib2R5e2hlaWdodDowO292ZXJzY3JvbGwtYmVoYXZpb3I6bm9uZSFpbXBvcnRhbnQ7d2lkdGg6MCFpbXBvcnRhbnQ7cG9zaXRpb246c3RhdGljIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50O3RyYW5zZm9ybTpub25lIWltcG9ydGFudH1AbWVkaWEgcHJpbnR7LmNyaXNwLWNsaWVudCAuY2MtMTY1d2h7ZGlzcGxheTpub25lIWltcG9ydGFudH19LmNjLTFnZXVkLmNjLWttaWttLmNjLTFkcWJ1Ky5jYy11b2xudSwuY2MtMWdldWQuY2MtMTB4Z2YrLmNjLXVvbG51LC5jYy0xZ2V1ZC5jYy05NWx3cysuY2MtdW9sbnV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uY2MtMWdldWQuY2MtMTB4Z2Z7Ym9yZGVyLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktbGlnaHQpKSFpbXBvcnRhbnQ7Ym9yZGVyLXdpZHRoOjAhaW1wb3J0YW50O2JvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGg6MnB4IWltcG9ydGFudDtib3JkZXItc3R5bGU6c29saWQhaW1wb3J0YW50O21hcmdpbjo2cHggNHB4IWltcG9ydGFudDtwYWRkaW5nLWJsb2NrOjFweCAycHghaW1wb3J0YW50O3BhZGRpbmctaW5saW5lOjhweCAwIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY2MtMWdldWQuY2MteGF5OTR7Y29udGFpbjppbmxpbmUtc2l6ZSFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7b3ZlcmZsb3c6c2Nyb2xsIGhpZGRlbiFpbXBvcnRhbnR9LmNjLTFnZXVkLmNjLTEyMTVye2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZSFpbXBvcnRhbnR9LmNjLTFnZXVkLmNjLTEyMTVyIHRoZWFke2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhY2tncm91bmQtdWx0cmEtbGlnaHQpKSFpbXBvcnRhbnQ7bGV0dGVyLXNwYWNpbmc6LjFweCFpbXBvcnRhbnQ7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lIWltcG9ydGFudDt1c2VyLXNlbGVjdDpub25lIWltcG9ydGFudH0uY2MtMWdldWQuY2MtMTIxNXIgdGh7d2hpdGUtc3BhY2U6bm93cmFwIWltcG9ydGFudH0uY2MtMWdldWQuY2MtMTIxNXIgdGR7d29yZC1icmVhazpub3JtYWwhaW1wb3J0YW50O292ZXJmbG93LXdyYXA6YW55d2hlcmUhaW1wb3J0YW50Oy13ZWJraXQtaHlwaGVuczphdXRvIWltcG9ydGFudDtoeXBoZW5zOmF1dG8haW1wb3J0YW50fS5jYy0xZ2V1ZC5jYy0xMjE1ciB0aCwuY2MtMWdldWQuY2MtMTIxNXIgdGR7Ym9yZGVyLXN0eWxlOnNvbGlkIWltcG9ydGFudDtib3JkZXItd2lkdGg6MCAwIDFweCFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktbGlnaHQpKSFpbXBvcnRhbnQ7dGV4dC1hbGlnbjpzdGFydCFpbXBvcnRhbnQ7cGFkZGluZzo2cHggOHB4IWltcG9ydGFudH0uY2MtMWdldWQuY2MtMTIxNXIgdGhlYWQgdHJ7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHghaW1wb3J0YW50fS5jYy0xZ2V1ZC5jYy1rbWlrbXttYXJnaW46MCAxcHghaW1wb3J0YW50O3BhZGRpbmc6MnB4IDZweCFpbXBvcnRhbnR9LmNjLTFnZXVkLmNjLWttaWttLmNjLTE2YmV1e2JvcmRlci1yYWRpdXM6NnB4IWltcG9ydGFudDtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9LmNjLTFnZXVkLmNjLWttaWttLmNjLTFkcWJ1e3doaXRlLXNwYWNlOnByZS13cmFwIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjhweCFpbXBvcnRhbnQ7bWFyZ2luOjhweCAwIWltcG9ydGFudDtwYWRkaW5nOjEycHggMTRweCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNjLTFnZXVkLmNjLWttaWttLmNjLTFkcWJ1LnByaXNtLWhpZ2hsaWdodGVkIC50b2tlbntsaW5lLWhlaWdodDppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0IWltcG9ydGFudDtmb250LWZhbWlseTppbmhlcml0IWltcG9ydGFudH0uY2MtMWdldWQuY2Mta21pa20uY2MtMWRxYnUucHJpc20taGlnaGxpZ2h0ZWQgLnRva2VuLmNvbW1lbnQsLmNjLTFnZXVkLmNjLWttaWttLmNjLTFkcWJ1LnByaXNtLWhpZ2hsaWdodGVkIC50b2tlbi5wcm9sb2csLmNjLTFnZXVkLmNjLWttaWttLmNjLTFkcWJ1LnByaXNtLWhpZ2hsaWdodGVkIC50b2tlbi5jZGF0YXtjb2xvcjojYTJhMmEyIWltcG9ydGFudDtmb250LXN0eWxlOml0YWxpYyFpbXBvcnRhbnR9LmNjLTFnZXVkLmNjLWttaWttLmNjLTFkcWJ1LnByaXNtLWhpZ2hsaWdodGVkIC50b2tlbi5wdW5jdHVhdGlvbntjb2xvcjojZjdmN2Y3IWltcG9ydGFudH0uY2MtMWdldWQuY2Mta21pa20uY2MtMWRxYnUucHJpc20taGlnaGxpZ2h0ZWQgLnRva2VuLnZhcmlhYmxlLC5jYy0xZ2V1ZC5jYy1rbWlrbS5jYy0xZHFidS5wcmlzbS1oaWdobGlnaHRlZCAudG9rZW4udGFnLC5jYy0xZ2V1ZC5jYy1rbWlrbS5jYy0xZHFidS5wcmlzbS1oaWdobGlnaHRlZCAudG9rZW4ub3BlcmF0b3IsLmNjLTFnZXVkLmNjLWttaWttLmNjLTFkcWJ1LnByaXNtLWhpZ2hsaWdodGVkIC50b2tlbi5kZWxldGVke2NvbG9yOiNmMjc3N2EhaW1wb3J0YW50fS5jYy0xZ2V1ZC5jYy1rbWlrbS5jYy0xZHFidS5wcmlzbS1oaWdobGlnaHRlZCAudG9rZW4ubnVtYmVyLC5jYy0xZ2V1ZC5jYy1rbWlrbS5jYy0xZHFidS5wcmlzbS1oaWdobGlnaHRlZCAudG9rZW4uYm9vbGVhbiwuY2MtMWdldWQuY2Mta21pa20uY2MtMWRxYnUucHJpc20taGlnaGxpZ2h0ZWQgLnRva2VuLmNvbnN0YW50LC5jYy0xZ2V1ZC5jYy1rbWlrbS5jYy0xZHFidS5wcmlzbS1oaWdobGlnaHRlZCAudG9rZW4udXJse2NvbG9yOiNjMmVlNjUhaW1wb3J0YW50fS5jYy0xZ2V1ZC5jYy1rbWlrbS5jYy0xZHFidS5wcmlzbS1oaWdobGlnaHRlZCAudG9rZW4uY2xhc3MsLmNjLTFnZXVkLmNjLWttaWttLmNjLTFkcWJ1LnByaXNtLWhpZ2hsaWdodGVkIC50b2tlbi5jbGFzcy1uYW1lLC5jYy0xZ2V1ZC5jYy1rbWlrbS5jYy0xZHFidS5wcmlzbS1oaWdobGlnaHRlZCAudG9rZW4uYm9sZHtjb2xvcjojODhjNGZmIWltcG9ydGFudH0uY2MtMWdldWQuY2Mta21pa20uY2MtMWRxYnUucHJpc20taGlnaGxpZ2h0ZWQgLnRva2VuLnByb3BlcnR5LC5jYy0xZ2V1ZC5jYy1rbWlrbS5jYy0xZHFidS5wcmlzbS1oaWdobGlnaHRlZCAudG9rZW4uc3RyaW5nLC5jYy0xZ2V1ZC5jYy1rbWlrbS5jYy0xZHFidS5wcmlzbS1oaWdobGlnaHRlZCAudG9rZW4uc3ltYm9sLC5jYy0xZ2V1ZC5jYy1rbWlrbS5jYy0xZHFidS5wcmlzbS1oaWdobGlnaHRlZCAudG9rZW4uYXR0ci12YWx1ZSwuY2MtMWdldWQuY2Mta21pa20uY2MtMWRxYnUucHJpc20taGlnaGxpZ2h0ZWQgLnRva2VuLmluc2VydGVkLC5jYy0xZ2V1ZC5jYy1rbWlrbS5jYy0xZHFidS5wcmlzbS1oaWdobGlnaHRlZCAudG9rZW4uYXRydWxle2NvbG9yOiNjMmVlNjUhaW1wb3J0YW50fS5jYy0xZ2V1ZC5jYy1rbWlrbS5jYy0xZHFidS5wcmlzbS1oaWdobGlnaHRlZCAudG9rZW4ucmVnZXgsLmNjLTFnZXVkLmNjLWttaWttLmNjLTFkcWJ1LnByaXNtLWhpZ2hsaWdodGVkIC50b2tlbi5pbXBvcnRhbnR7Y29sb3I6IzZjYyFpbXBvcnRhbnR9LmNjLTFnZXVkLmNjLWttaWttLmNjLTFkcWJ1LnByaXNtLWhpZ2hsaWdodGVkIC50b2tlbi5hdHRyLW5hbWUsLmNjLTFnZXVkLmNjLWttaWttLmNjLTFkcWJ1LnByaXNtLWhpZ2hsaWdodGVkIC50b2tlbi5mdW5jdGlvbntjb2xvcjojODhjNGZmIWltcG9ydGFudH0uY2MtMWdldWQuY2Mta21pa20uY2MtMWRxYnUucHJpc20taGlnaGxpZ2h0ZWQgLnRva2VuLmtleXdvcmQsLmNjLTFnZXVkLmNjLWttaWttLmNjLTFkcWJ1LnByaXNtLWhpZ2hsaWdodGVkIC50b2tlbi5zZWxlY3RvciwuY2MtMWdldWQuY2Mta21pa20uY2MtMWRxYnUucHJpc20taGlnaGxpZ2h0ZWQgLnRva2VuLml0YWxpYywuY2MtMWdldWQuY2Mta21pa20uY2MtMWRxYnUucHJpc20taGlnaGxpZ2h0ZWQgLnRva2VuLmNoYXIsLmNjLTFnZXVkLmNjLWttaWttLmNjLTFkcWJ1LnByaXNtLWhpZ2hsaWdodGVkIC50b2tlbi5idWlsdGlue2NvbG9yOiNmZjllZmYhaW1wb3J0YW50fS5jYy0xZ2V1ZC5jYy1rbWlrbS5jYy0xZHFidS5wcmlzbS1oaWdobGlnaHRlZCAudG9rZW4uZG9jdHlwZXtjb2xvcjojZDI3YjUzIWltcG9ydGFudH0uY2MtMWdldWQuY2Mta21pa20uY2MtMWRxYnUucHJpc20taGlnaGxpZ2h0ZWQgLnRva2VuLmVudGl0eXtjdXJzb3I6aGVscCFpbXBvcnRhbnR9LmNjLTFnZXVkLmNjLWRoOWF1e3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2ghaW1wb3J0YW50fS5jYy0xZ2V1ZC5jYy0xZmhiMXtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXllbGxvdy1saWdodCkpIWltcG9ydGFudDtwYWRkaW5nOjJweCAzcHghaW1wb3J0YW50fS5jYy0xZ2V1ZC5jYy0xMWJqZ3t0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIWltcG9ydGFudH0uY2MtMWdldWQuY2MtMW82MzF7Zm9udC1zdHlsZTppdGFsaWMhaW1wb3J0YW50fS5jYy0xZ2V1ZC5jYy1oNnkxeXttYXJnaW46LjFlbSAwIWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmNjLTFnZXVkLmNjLTk1bHdze2hlaWdodDoxcHg7YmFja2dyb3VuZDpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LWxpZ2h0KSkhaW1wb3J0YW50O2JvcmRlcjowIWltcG9ydGFudDt3aWR0aDoxMDAlIWltcG9ydGFudDttaW4td2lkdGg6OHB4IWltcG9ydGFudDttYXJnaW46OHB4IDAgNHB4IWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmNjLTFnZXVkLmNjLTE0dDkyLC5jYy0xZ2V1ZC5jYy0xdXh6dntiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbCksIC4xNSkhaW1wb3J0YW50O2JveC1zaGFkb3c6MCAxcHggMnB4IHJnYih2YXIoLS1jcmlzcC1jb2xvci1zaGFkb3ctbm9ybWFsKSwgLjA4KSFpbXBvcnRhbnR9LmNjLTFnZXVkLmNjLTE0dDkyLC5jYy0xZ2V1ZC5jYy0xNHQ5MiAuY2MtMTdtOGcsLmNjLTFnZXVkLmNjLTF1eHp2LC5jYy0xZ2V1ZC5jYy0xdXh6diAuY2MtMTdtOGd7bWluLWhlaWdodDoxMDBweDtsaW5lLWhlaWdodDoxMDBweDt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7bWluLXdpZHRoOjE0MHB4IWltcG9ydGFudDttYXgtd2lkdGg6NDgwcHghaW1wb3J0YW50fS5jYy0xZ2V1ZC5jYy0xNHQ5MiwuY2MtMWdldWQuY2MtMTR0OTIgaW1nLC5jYy0xZ2V1ZC5jYy0xdXh6diwuY2MtMWdldWQuY2MtMXV4enYgaW1ne2JvcmRlci1yYWRpdXM6NHB4IWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY2MtMWdldWQuY2MtMTR0OTIgaW1nLC5jYy0xZ2V1ZC5jYy0xdXh6diBpbWd7dmVydGljYWwtYWxpZ246bWlkZGxlIWltcG9ydGFudDtib3JkZXI6MCFpbXBvcnRhbnQ7bWF4LXdpZHRoOjEwMCUhaW1wb3J0YW50O21hcmdpbjowIGF1dG8haW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uY2MtMWdldWQuY2MtMXV4enZ7dGV4dC1kZWNvcmF0aW9uOm5vbmUhaW1wb3J0YW50fS5jYy0xZ2V1ZC5jYy0xdXh6djpob3ZlciAuY2MtMTdtOGc6YmVmb3Jle3RyYW5zZm9ybTpzY2FsZSgxLjA1KSFpbXBvcnRhbnR9LmNjLTFnZXVkLmNjLTF1eHp2OmFjdGl2ZSAuY2MtMTdtOGc6YmVmb3Jle3RyYW5zZm9ybTpzY2FsZSguOTgpIWltcG9ydGFudH0uY2MtMWdldWQuY2MtMXV4enYuY2Mta2kyajcsLmNjLTFnZXVkLmNjLTF1eHp2LmNjLWtpMmo3IC5jYy02aTM1N3ttYXgtd2lkdGg6MzIwcHghaW1wb3J0YW50fS5jYy0xZ2V1ZC5jYy0xdXh6diAuY2MtMTdtOGd7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50fS5jYy0xZ2V1ZC5jYy0xdXh6diAuY2MtMTdtOGc6YmVmb3Jle2hlaWdodDo0MHB4O2NvbnRlbnQ6IiIhaW1wb3J0YW50O3otaW5kZXg6MSFpbXBvcnRhbnQ7d2lkdGg6NDBweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDotMjBweCFpbXBvcnRhbnQ7bWFyZ2luLWxlZnQ6LTIwcHghaW1wb3J0YW50O3RyYW5zaXRpb246dHJhbnNmb3JtIC4xNXMgZWFzZS1pbi1vdXQhaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDt0b3A6NTAlIWltcG9ydGFudDtsZWZ0OjUwJSFpbXBvcnRhbnR9LmNjLTFnZXVkLmNjLXBxNjZ6e21hcmdpbjowIDFweCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5jYy0xZ2V1ZC5jYy1wcTY2eltkYXRhLXR5cGVdOmJlZm9yZXtjb250ZW50OmF0dHIoZGF0YS10eXBlKSAiLiIhaW1wb3J0YW50O3BhZGRpbmctaW5saW5lLWVuZDo2cHghaW1wb3J0YW50fS5jYy0xZ2V1ZC5jYy1wcTY2eltkYXRhLXR5cGU9XCpdOmJlZm9yZXtjb250ZW50OiLigKIiIWltcG9ydGFudH0uY2MtMWdldWQuY2MtcHE2NnpbZGF0YS1sZXZlbD0iMSJde21hcmdpbi1sZWZ0OjEycHghaW1wb3J0YW50fS5jYy0xZ2V1ZC5jYy1wcTY2eltkYXRhLWxldmVsPSIyIl17bWFyZ2luLWxlZnQ6MjRweCFpbXBvcnRhbnR9LmNjLTFnZXVkLmNjLXBxNjZ6W2RhdGEtbGV2ZWw9IjMiXXttYXJnaW4tbGVmdDozNnB4IWltcG9ydGFudH0uY2MtMWdldWQuY2MtcHE2NnpbZGF0YS1sZXZlbD0iNCJde21hcmdpbi1sZWZ0OjQ4cHghaW1wb3J0YW50fS5jYy0xZ2V1ZC5jYy1wcTY2eltkYXRhLWxldmVsPSI1Il17bWFyZ2luLWxlZnQ6NjBweCFpbXBvcnRhbnR9LmNjLTFnZXVkLmNjLXBxNjZ6W2RhdGEtbGV2ZWw9IjYiXXttYXJnaW4tbGVmdDo3MnB4IWltcG9ydGFudH0uY2MtMWdldWQuY2MtcHE2NnpbZGF0YS1sZXZlbD0iNyJde21hcmdpbi1sZWZ0Ojg0cHghaW1wb3J0YW50fS5jYy0xZ2V1ZC5jYy1wcTY2eltkYXRhLWxldmVsPSI4Il17bWFyZ2luLWxlZnQ6OTZweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtc2h5b2R7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOmNvbnRhaW4haW1wb3J0YW50O21hcmdpbi1pbmxpbmU6MnB4IWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtc2h5b2RbZGF0YS1zaXplPXNtYWxsXXtoZWlnaHQ6MTZweDt3aWR0aDoxNnB4IWltcG9ydGFudDttYXJnaW4tYm90dG9tOi0zcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXNoeW9kW2RhdGEtc2l6ZT1sYXJnZV17aGVpZ2h0OjMycHg7d2lkdGg6MzJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtc2h5b2RbZGF0YS1uYW1lPWFuZ3J5XXtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjY0JTIyJTIwaGVpZ2h0JTNEJTIyNjQlMjIlM0UlM0NnJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTNFJTNDY2lyY2xlJTIwY3glM0QlMjIzMiUyMiUyMGN5JTNEJTIyMzIlMjIlMjByJTNEJTIyMzIlMjIlMjBmaWxsJTNEJTIyJTIzZmZkZDY3JTIyJTJGJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjM2NjRlMjclMjIlMjBkJTNEJTIyTTQxLjYlMjA1MC45Yy02LjItNS4xLTEzLTUuMS0xOS4yJTIwMC0uNy42LTEuNC0uNC0uOS0xLjQlMjAyLTMuNiUyMDUuNy03JTIwMTAuNS03czguNiUyMDMuNCUyMDEwLjUlMjA3Yy41LjgtLjIlMjAyLS45JTIwMS40JTIyJTJGJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBkJTNEJTIyTTguNyUyMDI0LjRjLTEuNiUyMDUlMjAuNyUyMDEwLjclMjA1LjclMjAxM3MxMC43LjUlMjAxMy41LTRsLTcuMy04LjJ6JTIyJTJGJTNFJTNDZyUyMGZpbGwlM0QlMjIlMjM2NjRlMjclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0xMyUyMDI1LjRjLTEuNSUyMDMlMjAwJTIwNi44JTIwMyUyMDguMiUyMDMlMjAxLjUlMjA2LjguMSUyMDguMi0zJTIwMS0yLTEwLjItNy4yLTExLjItNS4yJTIyJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNOC43JTIwMjQuNGExMSUyMDExJTIwMCUyMDAlMjAxJTIwNS44LTEuNiUyMDE0LjglMjAxNC44JTIwMCUyMDAlMjAxJTIwMTAuOSUyMDVjMS4zJTIwMS42JTIwMi4zJTIwMy41JTIwMi41JTIwNS41YTMzLjUlMjAzMy41JTIwMCUyMDAlMjAwLTguNy02LjJjLTEuNi0uOC0zLjItMS4zLTUtMS44LTEuOC0uMy0zLjUtLjctNS41LS45JTIyJTJGJTNFJTNDJTJGZyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmZmJTIyJTIwZCUzRCUyMk01NS4zJTIwMjQuNGMxLjYlMjA1LS43JTIwMTAuNy01LjclMjAxM3MtMTAuNy41LTEzLjUtNGw3LjMtOC4yeiUyMiUyRiUzRSUzQ2clMjBmaWxsJTNEJTIyJTIzNjY0ZTI3JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNNTElMjAyNS40YzEuNSUyMDMlMjAwJTIwNi44LTMlMjA4LjItMyUyMDEuNS02LjguMS04LjItMy0xLTIlMjAxMC4yLTcuMiUyMDExLjItNS4yJTIyJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNNTUuMyUyMDI0LjRhMTElMjAxMSUyMDAlMjAwJTIwMC01LjgtMS42JTIwMTQuOCUyMDE0LjglMjAwJTIwMCUyMDAtMTAuOSUyMDUlMjAxMC43JTIwMTAuNyUyMDAlMjAwJTIwMC0yLjUlMjA1LjUlMjAzMy41JTIwMzMuNSUyMDAlMjAwJTIwMSUyMDguNy02LjJjMS42LS44JTIwMy4yLTEuMyUyMDUtMS44JTIwMS44LS4zJTIwMy41LS43JTIwNS41LS45JTIyJTJGJTNFJTNDJTJGZyUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1zaHlvZFtkYXRhLW5hbWU9Ymx1c2hpbmdde2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyNjQlMjIlMjBoZWlnaHQlM0QlMjI2NCUyMiUzRSUzQ2clMjBmaWxsJTNEJTIybm9uZSUyMiUyMGZpbGwtcnVsZSUzRCUyMmV2ZW5vZGQlMjIlM0UlM0NjaXJjbGUlMjBjeCUzRCUyMjMyJTIyJTIwY3klM0QlMjIzMiUyMiUyMHIlM0QlMjIzMiUyMiUyMGZpbGwlM0QlMjIlMjNmZmRkNjclMjIlMkYlM0UlM0NnJTIwZmlsbCUzRCUyMiUyM2ZmNzE3ZiUyMiUyMG9wYWNpdHklM0QlMjIuOCUyMiUzRSUzQ2NpcmNsZSUyMGN4JTNEJTIyNTIuMSUyMiUyMGN5JTNEJTIyMzYuMyUyMiUyMHIlM0QlMjI4LjUlMjIlMkYlM0UlM0NjaXJjbGUlMjBjeCUzRCUyMjExLjklMjIlMjBjeSUzRCUyMjM2LjMlMjIlMjByJTNEJTIyOC41JTIyJTJGJTNFJTNDJTJGZyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzNjY0ZTI3JTIyJTIwZCUzRCUyMk00NS40JTIwNDAuOWMtOC42JTIwNi0xOC4yJTIwNi0yNi44JTIwMC0xLjEtLjgtMiUyMC41LTEuMyUyMDEuN0ExNy41JTIwMTcuNSUyMDAlMjAwJTIwMCUyMDMyJTIwNTAuOGM2LjglMjAwJTIwMTItMy45JTIwMTQuNy04LjIuNy0xLjItLjItMi41LTEuMy0xLjdNMjguMyUyMDI2LjZjLTItNS41LTUtOC4zLTgtOC4zcy02JTIwMi44LTglMjA4LjNjLS4zLjUuOCUyMDEuNSUyMDEuMyUyMDFhOSUyMDklMjAwJTIwMCUyMDElMjA2LjctMyUyMDklMjA5JTIwMCUyMDAlMjAxJTIwNi42JTIwM2MuNi40JTIwMS42LS41JTIwMS40LTFtMjMuMyUyMDBjLTItNS41LTUtOC4zLTgtOC4zcy02JTIwMi44LTglMjA4LjNjLS4yLjUuOSUyMDEuNSUyMDEuNCUyMDFhOSUyMDklMjAwJTIwMCUyMDElMjA2LjYtMyUyMDklMjA5JTIwMCUyMDAlMjAxJTIwNi42JTIwM2MuNi40JTIwMS42LS41JTIwMS40LTElMjIlMkYlM0UlM0MlMkZnJTNFJTNDJTJGc3ZnJTNFKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtc2h5b2RbZGF0YS1uYW1lPWNvbmZ1c2VkXXtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjY0JTIyJTIwaGVpZ2h0JTNEJTIyNjQlMjIlM0UlM0NnJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTNFJTNDY2lyY2xlJTIwY3glM0QlMjIzMiUyMiUyMGN5JTNEJTIyMzIlMjIlMjByJTNEJTIyMzIlMjIlMjBmaWxsJTNEJTIyJTIzRkZERDY3JTIyJTJGJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjM2NjRFMjclMjIlMjBkJTNEJTIyTTI1JTIwMjYuNmMtMi01LjUtNS04LjMtOC04LjNzLTYlMjAyLjgtOCUyMDguM2MtLjEuNSUyMDElMjAxLjUlMjAxLjUlMjAxYTklMjA5JTIwMCUyMDAlMjAxJTIwNi42LTMlMjA5JTIwOSUyMDAlMjAwJTIwMSUyMDYuNiUyMDNjLjYuNCUyMDEuNi0uNSUyMDEuNC0xbTIzLjMlMjAwYy0yLTUuNS01LTguMy04LTguM3MtNiUyMDIuOC04JTIwOC4zYy0uMi41LjklMjAxLjUlMjAxLjQlMjAxYTklMjA5JTIwMCUyMDAlMjAxJTIwNi42LTMlMjA5JTIwOSUyMDAlMjAwJTIwMSUyMDYuNiUyMDNjLjYuNCUyMDEuNi0uNSUyMDEuNC0xTTQ3JTIwMzguNGMwLS44LS41LTItMS45LTIuMmE4NC4zJTIwODQuMyUyMDAlMjAwJTIwMC0xNi4yLTEuNGMtNyUyMDAtMTIuNS43LTE2LjIlMjAxLjQtMS40LjMtMiUyMDEuMy0yJTIwMi4yJTIwMCUyMDcuOCUyMDYlMjAxNS42JTIwMTguMiUyMDE1LjZTNDclMjA0Ni4yJTIwNDclMjAzOC40JTIyJTJGJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNGRkYlMjIlMjBkJTNEJTIyTTQyLjQlMjAzOC43YTgwJTIwODAlMjAwJTIwMCUyMDAtMTMuNi0xYy02LjMlMjAwLTExLjIuNi0xMy42JTIwMS0xLjMuMi0xLjQuOC0xLjMlMjAxLjYlMjAwJTIwLjUlMjAwJTIwMSUyMC4zJTIwMS43JTIwMCUyMC43LjMlMjAxJTIwMS40LjklMjAyLS4yJTIwMjQuNS0uMiUyMDI2LjUlMjAwJTIwMS4xJTIwMCUyMDEuMi0uMiUyMDEuNC0uOWwuMy0xLjdjMC0uOCUyMDAtMS40LTEuNS0xLjYlMjIlMkYlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzY1QjFFRiUyMiUyMGQlM0QlMjJNNjEuOSUyMDMwYTUuMiUyMDUuMiUyMDAlMjAwJTIwMS0xMC40JTIwMGMwLTUuNSUyMDUuMi0xMSUyMDUuMi0xMVM2MiUyMDI0LjUlMjA2MiUyMDMweiUyMiUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1zaHlvZFtkYXRhLW5hbWU9Y29vbF17YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjI2NCUyMiUyMGhlaWdodCUzRCUyMjY0JTIyJTNFJTNDZyUyMGZpbGwlM0QlMjJub25lJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzRkZERDY3JTIyJTIwZCUzRCUyMk0zMiUyMDBhMzIlMjAzMiUyMDAlMjAxJTIwMSUyMDAlMjA2NCUyMDMyJTIwMzIlMjAwJTIwMCUyMDElMjAwLTY0JTIyJTJGJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjM0OTQ5NDklMjIlMjBkJTNEJTIyTTM2JTIwMTkuN2ExMCUyMDEwJTIwMCUyMDAlMjAxLTguMiUyMDAlMjAyNC42JTIwMjQuNiUyMDAlMjAwJTIwMC05LjItMi40Yy0zLjctLjMtMTEuMi0uMy0xNSUyMDFsLTEuMy42cy0uMi4yLS4yLjZ2LjZjMCUyMDElMjAwJTIwLjYuNyUyMDElMjAxLjUuOSUyMDIuMyUyMDMuMSUyMDIuNyUyMDYuMi43JTIwNC41JTIwMyUyMDcuNCUyMDYuNCUyMDguN2ExNC40JTIwMTQuNCUyMDAlMjAwJTIwMCUyMDEwLjQtLjIlMjA5LjglMjA5LjglMjAwJTIwMCUyMDAlMjA0LjctMy43YzIuMi0zLjIlMjAxLjUtNS4yJTIwMi42LTglMjAxLTIuNCUyMDMuOC0yLjQlMjA0LjglMjAwJTIwMS4yJTIwMi44LjUlMjA0LjglMjAyLjclMjA4YTEwLjUlMjAxMC41JTIwMCUyMDAlMjAwJTIwNC43JTIwMy43JTIwMTQuNCUyMDE0LjQlMjAwJTIwMCUyMDAlMjAxMC40LjFjMy42LTEuMyUyMDUuNy00LjElMjA2LjQtOC42LjQtMyUyMDEuMi01LjMlMjAyLjctNi4yLjgtLjQuNyUyMDAlMjAuNy0xdi0uNmMwLS40JTIwMC0uNS0uNC0uNmwtMS4yLS41YTQ0LjclMjA0NC43JTIwMCUyMDAlMjAwLTE1LTEuMSUyMDI1LjclMjAyNS43JTIwMCUyMDAlMjAwLTkuNCUyMDIuNCUyMiUyRiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzNjY0RTI3JTIyJTIwZCUzRCUyMk00NS40JTIwNDNjLTguNiUyMDYtMTguMiUyMDYtMjYuOCUyMDAtMS4xLS44LTIlMjAuNS0xLjMlMjAxLjdBMTcuNSUyMDE3LjUlMjAwJTIwMCUyMDAlMjAzMiUyMDUyLjljNi44JTIwMCUyMDEyLTMuOCUyMDE0LjctOC4yLjctMS4yLS4yLTIuNS0xLjMtMS43JTIyJTJGJTNFJTNDJTJGZyUzRSUzQyUyRnN2ZyUzRSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXNoeW9kW2RhdGEtbmFtZT1jcnlpbmdde2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyNjQlMjIlMjBoZWlnaHQlM0QlMjI2NCUyMiUzRSUzQ2clMjBmaWxsJTNEJTIybm9uZSUyMiUyMGZpbGwtcnVsZSUzRCUyMmV2ZW5vZGQlMjIlM0UlM0NnJTIwZmlsbCUzRCUyMiUyMzY1YjFlZiUyMiUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjE2LjUlMjIlMjBjeSUzRCUyMjYxLjglMjIlMjByeCUzRCUyMjEzLjMlMjIlMjByeSUzRCUyMjEuNiUyMiUyRiUzRSUzQ2VsbGlwc2UlMjBjeCUzRCUyMjQ0LjglMjIlMjBjeSUzRCUyMjYyLjElMjIlMjByeCUzRCUyMjE5LjIlMjIlMjByeSUzRCUyMjEuOSUyMiUyRiUzRSUzQyUyRmclM0UlM0NjaXJjbGUlMjBjeCUzRCUyMjMyJTIyJTIwY3klM0QlMjIzMiUyMiUyMHIlM0QlMjIzMiUyMiUyMGZpbGwlM0QlMjIlMjNmZmRkNjclMjIlMkYlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzY2NGUyNyUyMiUyMGQlM0QlMjJNNDUuNSUyMDQ3Yy0xLjUtNC01LTYuNS0xMy41LTYuNVMyMCUyMDQzLjElMjAxOC40JTIwNDdjLS43JTIwMiUyMC40JTIwNS40LjQlMjA1LjQlMjAxLjQlMjA0LjElMjAxLjElMjA1LjMlMjAxMy4yJTIwNS4zczExLjgtMS4yJTIwMTMuMi01LjNjMCUyMDAlMjAxLjItMy4zLjMtNS40JTIyJTJGJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBkJTNEJTIyTTQxLjYlMjA0NS45YS44LjglMjAwJTIwMCUyMDAtLjItLjlzLTIuMS0yLjMtOS40LTIuMy05LjQlMjAyLjMtOS40JTIwMi4zYy0uMi4xLS4yLjUtLjIuOWwuMi42Yy4xLjMuMy41LjUuNWgxNy43Yy4zJTIwMCUyMC42LS4yLjYtLjV6JTIyJTJGJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjM2NWIxZWYlMjIlMjBkJTNEJTIyTTQ1LjMlMjA2Mi40aDcuM2M4LjctMTAuNi0xLjYtMjEuMyUyMDEtMzEuOC0yLjUlMjAwLTUlMjAyLjctNy4zJTIwMi43LTMuNCUyMDEwLjElMjA3LjglMjAxOC41LTElMjAyOS4xbS0yNi42JTIwMGgtNy4zYy04LjctMTAuNiUyMDEuNi0yMS4zLTEtMzEuOCUyMDIuNSUyMDAlMjA1JTIwMi43JTIwNy4zJTIwMi43JTIwMy40JTIwMTAuMS03LjglMjAxOC41JTIwMSUyMDI5LjElMjIlMkYlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzkxNzUyNCUyMiUyMGQlM0QlMjJNNDEuMyUyMDE3LjRhMTUuMiUyMDE1LjIlMjAwJTIwMCUyMDAlMjAxMi4xJTIwNC40Yy43LS4xJTIwMSUyMDIuMi4yJTIwMi4zYTE3LjQlMjAxNy40JTIwMCUyMDAlMjAxLTE0LTUuMWMtLjYtLjUlMjAxLjItMiUyMDEuNy0xLjZtLTMwLjYlMjA0LjRhMTUuMiUyMDE1LjIlMjAwJTIwMCUyMDAlMjAxMi4xLTQuNGMuNS0uNCUyMDIuMyUyMDElMjAxLjclMjAxLjZhMTcuNSUyMDE3LjUlMjAwJTIwMCUyMDEtMTQlMjA1LjFjLS45JTIwMC0uNS0yLjMuMi0yLjMlMjIlMkYlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzY2NGUyNyUyMiUyMGQlM0QlMjJNMzYuMiUyMDMwLjJjNC40JTIwOC41JTIwMTMuNSUyMDguNSUyMDE4JTIwMCUyMC4yLS40LS4zLS42LTEtMWExMy44JTIwMTMuOCUyMDAlMjAwJTIwMS0xNiUyMDBjLS42LjQtMS4zLjYtMSUyMDFtLTI2LjQlMjAwYzQuNSUyMDguNSUyMDEzLjYlMjA4LjUlMjAxOCUyMDAlMjAuMi0uNC0uMy0uNi0xLTFhMTMuOCUyMDEzLjglMjAwJTIwMCUyMDEtMTYlMjAwYy0uNy40LTEuMi42LTElMjAxJTIyJTJGJTNFJTNDJTJGZyUzRSUzQyUyRnN2ZyUzRSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXNoeW9kW2RhdGEtbmFtZT1lbWJhcnJhc3NlZF17YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjI2NCUyMiUyMGhlaWdodCUzRCUyMjY0JTIyJTNFJTNDZyUyMGZpbGwlM0QlMjJub25lJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzRkZERDY3JTIyJTIwZCUzRCUyMk02NCUyMDMyYTMyJTIwMzIlMjAwJTIwMSUyMDEtNjQlMjAwJTIwMzIlMjAzMiUyMDAlMjAwJTIwMSUyMDY0JTIwMCUyMiUyRiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzNjY0RTI3JTIyJTIwZCUzRCUyMk01NS40JTIwMjljLTMuNy00LjEtMTUtMi42LTE4LjQlMjAzLS4yLjQuNCUyMDElMjAxLjIlMjAxLjVhMTUuMSUyMDE1LjElMjAwJTIwMCUyMDElMjA3LjctMi43JTIwNS40JTIwNS40JTIwMCUyMDAlMjAwJTIwNS4zJTIwNS41YzQuMyUyMDAlMjA2LjItNC44JTIwNC4yLTcuM00yNiUyMDI5Yy0zLjUtNC4xLTE0LjktMi42LTE4LjMlMjAzLS4yLjQuNCUyMDElMjAxLjIlMjAxLjVhMTUlMjAxNSUyMDAlMjAwJTIwMSUyMDcuNy0yLjclMjA1LjQlMjA1LjQlMjAwJTIwMCUyMDAlMjA1LjMlMjA1LjVjNC4yJTIwMCUyMDYuMy00LjglMjA0LjEtNy4zbTE1JTIwMTYuNWEyMiUyMDIyJTIwMCUyMDAlMjAwLTE4JTIwMy4yYy0xLjMlMjAxJTIwMS4xJTIwNC4zJTIwMi40JTIwMy41QTE3LjklMjAxNy45JTIwMCUyMDAlMjAxJTIwNDAlMjA0OS42YzEuNC4zJTIwMi42LTMuNiUyMDEtNCUyMiUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1zaHlvZFtkYXRhLW5hbWU9dGh1bWJzLXVwXXtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjQzJTIyJTIwaGVpZ2h0JTNEJTIyNjMlMjIlM0UlM0NnJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNGRkRENjclMjIlMjBkJTNEJTIyTTIwLjglMjAyNi4zcy00LjYlMjAxLS44LTYuOWMyLjctNS43JTIwMi40LTEyLjMlMjAwLTE1LjdDMTYtMiUyMDguMy0uMSUyMDkuMiUyMDNjMi43JTIwMTEtMy41JTIwMTQuNC02LjYlMjAyMS40LTMuMyUyMDctMyUyMDE3LTEuNSUyMDI2JTIwMSUyMDUuNSUyMDMuNCUyMDEyLjQlMjAxMiUyMDEyLjRoMTIuMWwtNC40LTM2LjYlMjIlMkYlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM0VCQTM1MiUyMiUyMGQlM0QlMjJNMTQuNSUyMDYxLjRDNS44JTIwNjEuNCUyMDQlMjA1NC40JTIwMyUyMDQ4LjlhNDIlMjA0MiUyMDAlMjAwJTIwMSUyMDEtMjMuM2MzLjItNy45JTIwNi40LTglMjA2LjQtMjMuNiUyMDAtLjcuNS0xLjMuOS0xLjdDOS45LjglMjA5JTIwMS43JTIwOSUyMDNjMCUyMDExLjctMy4zJTIwMTQuNS02LjQlMjAyMS41LTMuNCUyMDctMyUyMDE3LjEtMS42JTIwMjZDMi4xJTIwNTYlMjA0LjUlMjA2MyUyMDEzLjElMjA2M2gxMi4xdi0xLjZ6JTIyJTJGJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNGRkRENjclMjIlMjBkJTNEJTIyTTM1LjclMjAzNS41SDIwLjhjLTUuMiUyMDAtNS4yLTkuMiUyMDAtOS4yaDE1YzUuMiUyMDAlMjA1LjIlMjA5LjIlMjAwJTIwOS4yJTIyJTJGJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNFQkEzNTIlMjIlMjBkJTNEJTIyTTM2LjklMjAzNGgtMTVjLTMuNSUyMDAtNC41LTQuMi0zLjQtNi44LTIuOCUyMDIuMi0yJTIwOC40JTIwMi4yJTIwOC40aDE1YzEuNyUyMDAlMjAyLjktMSUyMDMuNS0yLjNhNCUyMDQlMjAwJTIwMCUyMDEtMi4zLjclMjIlMkYlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM0ZGREQ2NyUyMiUyMGQlM0QlMjJNMzcuMyUyMDQ0LjdIMTkuNWMtNi4zJTIwMC02LjMtOS4xJTIwMC05LjFoMTcuOWM2LjIlMjAwJTIwNi4yJTIwOS4xLS4xJTIwOS4xJTIyJTJGJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNFQkEzNTIlMjIlMjBkJTNEJTIyTTM4LjglMjA0My4xaC0xOGMtNC4yJTIwMC01LjUtNC4yLTQtNi44LTMuNCUyMDIuMi0yLjUlMjA4LjQlMjAyLjclMjA4LjRoMTcuOWMyJTIwMCUyMDMuNC0xJTIwNC4xLTIuM2E1LjUlMjA1LjUlMjAwJTIwMCUyMDEtMi43LjclMjIlMkYlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM0ZGREQ2NyUyMiUyMGQlM0QlMjJNMzUuNiUyMDUzLjhIMjAuNWMtNS4zJTIwMC01LjMtOS4xJTIwMC05LjFoMTUuMWM1LjQlMjAwJTIwNS40JTIwOS4xJTIwMCUyMDkuMSUyMiUyRiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzRUJBMzUyJTIyJTIwZCUzRCUyMk0zNi45JTIwNTIuM0gyMS43Yy0zLjYlMjAwLTQuOC00LjItMy41LTctMi44JTIwMi4yLTIuMSUyMDguNCUyMDIuMyUyMDguNGgxNS4xYzEuNyUyMDAlMjAyLjgtMSUyMDMuNS0yLjMtLjYuNi0xLjQuOC0yLjIuOCUyMiUyRiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzRkZERDY3JTIyJTIwZCUzRCUyMk0zNCUyMDYzaC05LjdjLTUuNyUyMDAtNS43LTkuMiUyMDAtOS4yaDkuOGM1LjYlMjAwJTIwNS42JTIwOS4yJTIwMCUyMDkuMiUyMiUyRiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzRUJBMzUyJTIyJTIwZCUzRCUyMk0zNS4zJTIwNjEuNWgtOS44Yy0zLjclMjAwLTUtNC4yLTMuNi03LTMlMjAyLjMtMi4yJTIwOC41JTIwMi40JTIwOC41SDM0YzIlMjAwJTIwMy0xJTIwMy43LTIuNC0uNi42LTEuNS45LTIuNC45JTIyJTJGJTNFJTNDJTJGZyUzRSUzQyUyRnN2ZyUzRSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXNoeW9kW2RhdGEtbmFtZT1oZWFydF17YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjI2NCUyMiUyMGhlaWdodCUzRCUyMjUyJTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNGRjVBNzklMjIlMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTIwZCUzRCUyMk02MyUyMDEwLjljLTYuOC0xOC4xLTI5LTEwLTMxLTFDMjkuMi4zJTIwNy42LTYuOCUyMDElMjAxMC45Yy03LjQlMjAxOS43JTIwMjguNCUyMDM3LjQlMjAzMSUyMDQwLjMlMjAyLjYtMi40JTIwMzguNC0yMSUyMDMxLTQwLjMlMjIlMkYlM0UlM0MlMkZzdmclM0UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1zaHlvZFtkYXRhLW5hbWU9bGF1Z2hpbmdde2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyNjQlMjIlMjBoZWlnaHQlM0QlMjI2NCUyMiUzRSUzQ2clMjBmaWxsJTNEJTIybm9uZSUyMiUyMGZpbGwtcnVsZSUzRCUyMmV2ZW5vZGQlMjIlM0UlM0NjaXJjbGUlMjBjeCUzRCUyMjMyJTIyJTIwY3klM0QlMjIzMiUyMiUyMHIlM0QlMjIzMiUyMiUyMGZpbGwlM0QlMjIlMjNGRkRENjclMjIlMkYlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzY2NEUyNyUyMiUyMGQlM0QlMjJNNTMlMjAxOC42Yy42LjMuMyUyMDEtLjIlMjAxLjFhMjYlMjAyNiUyMDAlMjAwJTIwMC04LjglMjAyLjZjNC4yLjclMjA3LjYlMjAyLjklMjA5LjUlMjA1LjEuNS41JTIwMCUyMDEuMi0uNSUyMDFhMzUuOSUyMDM1LjklMjAwJTIwMCUyMDAtMTYuOC0yYy0uNiUyMDAtMS0uMy0uOS0uOEMzNyUyMDE3LjglMjA0NyUyMDE0LjklMjA1MyUyMDE4LjZtLTQyJTIwMGMtLjcuMy0uMyUyMDElMjAuMiUyMDEuMSUyMDIuOS41JTIwNS45JTIwMSUyMDguOCUyMDIuNi00LjIuNy03LjYlMjAyLjktOS42JTIwNS4xLS40LjUuMSUyMDEuMi42JTIwMWEzNS45JTIwMzUuOSUyMDAlMjAwJTIwMSUyMDE2LjgtMmMuNiUyMDAlMjAxLS4zLjktLjhDMjclMjAxNy44JTIwMTclMjAxNC45JTIwMTElMjAxOC42bTM5LjklMjAxNmMtLjQtLjYtMS4yLS41LTItLjVIMTUuMmMtLjklMjAwLTEuNiUyMDAtMiUyMC41LTQuMiUyMDUuMy43JTIwMjAuOSUyMDE4LjglMjAyMC45czIzLTE1LjYlMjAxOC45LTIxJTIyJTJGJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjM0QzM1MjYlMjIlMjBkJTNEJTIyTTM0JTIwNDIuNGMtLjclMjAwLTEuNy41LTEuMiUyMDIlMjAuMi44JTIwMS4yJTIwMS44JTIwMS4yJTIwMyUyMDAlMjAyLjYtNCUyMDIuNi00JTIwMCUyMDAtMS4yJTIwMS0yJTIwMS4zLTMlMjAuMy0xLjQtLjctMi0xLjItMi0xLjclMjAwLTQuNCUyMDEuOC00LjQlMjA0LjlhNi4zJTIwNi4zJTIwMCUyMDAlMjAwJTIwNi40JTIwNi4xJTIwNi4zJTIwNi4zJTIwMCUyMDAlMjAwJTIwNi40LTYuMmMtLjEtMy0yLjktNC44LTQuNi00LjklMjIlMkYlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM0ZGNzE3RiUyMiUyMGQlM0QlMjJNMjMuOCUyMDUyYTE5LjglMjAxOS44JTIwMCUyMDAlMjAwJTIwOC4yJTIwMS42YzMuMSUyMDAlMjA1LjktLjclMjA4LjItMS42YTE3LjYlMjAxNy42JTIwMCUyMDAlMjAwLTguMi0yYy0zLjIlMjAwLTYlMjAuNy04LjIlMjAxLjklMjIlMkYlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM0ZGRiUyMiUyMGQlM0QlMjJNNDglMjAzNi4zSDE2LjFjLTIuMiUyMDAtMi4yJTIwNC4yLS4xJTIwNC4yaDMyYzIuMSUyMDAlMjAyLjEtNC4yJTIwMC00LjIlMjIlMkYlM0UlM0MlMkZnJTNFJTNDJTJGc3ZnJTNFKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtc2h5b2RbZGF0YS1uYW1lPXNhZF17YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjI2NCUyMiUyMGhlaWdodCUzRCUyMjY0JTIyJTNFJTNDZyUyMGZpbGwlM0QlMjJub25lJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUzRSUzQ2NpcmNsZSUyMGN4JTNEJTIyMzIlMjIlMjBjeSUzRCUyMjMyJTIyJTIwciUzRCUyMjMyJTIyJTIwZmlsbCUzRCUyMiUyM2ZmZGQ2NyUyMiUyRiUzRSUzQ2clMjBmaWxsJTNEJTIyJTIzNjY0ZTI3JTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MTMuOSUyMDIwLjMlMjklMjIlM0UlM0NjaXJjbGUlMjBjeCUzRCUyMjUuOSUyMiUyMGN5JTNEJTIyNiUyMiUyMHIlM0QlMjI1LjMlMjIlMkYlM0UlM0NjaXJjbGUlMjBjeCUzRCUyMjMwLjQlMjIlMjBjeSUzRCUyMjYlMjIlMjByJTNEJTIyNS4zJTIyJTJGJTNFJTNDcGF0aCUyMGQlM0QlMjJNOC41JTIwMjguNGM2LjItNS4xJTIwMTMtNS4xJTIwMTkuMiUyMDAlMjAuOC42JTIwMS40LS40LjktMS40LTItMy42LTUuNy03LTEwLjUtN3MtOC42JTIwMy40LTEwLjQlMjA3Yy0uNiUyMDElMjAwJTIwMiUyMC44JTIwMS40JTIyJTJGJTNFJTNDJTJGZyUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1zaHlvZFtkYXRhLW5hbWU9c2lja117YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjI2NCUyMiUyMGhlaWdodCUzRCUyMjY0JTIyJTNFJTNDZyUyMGZpbGwlM0QlMjJub25lJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUzRSUzQ2NpcmNsZSUyMGN4JTNEJTIyMzIlMjIlMjBjeSUzRCUyMjMyJTIyJTIwciUzRCUyMjMyJTIyJTIwZmlsbCUzRCUyMiUyM0ZGREQ2NyUyMiUyRiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzOTE3NTI0JTIyJTIwZCUzRCUyMk0yMiUyMDE3LjNhMTUlMjAxNSUyMDAlMjAwJTIwMS0xMi41JTIwMy4zYy0uNy0uMS0xLjIlMjAyLjEtLjQlMjAyLjMlMjA1JTIwMSUyMDEwLjQtLjUlMjAxNC40LTMuOC41LS41LTEuMS0yLjItMS41LTEuOG0zMi41JTIwMy4yYy00LjUuNy05LS40LTEyLjUtMy4zLS40LS40LTIuMSUyMDEuMy0xLjUlMjAxLjhBMTcuMiUyMDE3LjIlMjAwJTIwMCUyMDAlMjA1NSUyMDIyLjhjLjgtLjIuMy0yLjQtLjQtMi4zJTIyJTJGJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjM2NjRFMjclMjIlMjBkJTNEJTIyTTQ3LjYlMjA0My4xYTEuOCUyMDEuOCUyMDAlMjAwJTIwMC0yLjQtLjNsLTQuNCUyMDNjLS44LjUtMiUyMC40LTIuNi0uMWwtNS00LjJjLS42LS41LTEuNi0uNS0yLjQlMjAwTDI2JTIwNDUuN2MtLjYuNS0xLjguNi0yLjUlMjAwbC00LjYtM2ExLjglMjAxLjglMjAwJTIwMCUyMDAtMi40LjRsLTQuNyUyMDUuNWMtLjUuNy0uNC45LjQuNWw0LTIuM2EyLjMlMjAyLjMlMjAwJTIwMCUyMDElMjAyLjYuNGw0LjklMjA0LjdjLjYuNyUyMDEuNy43JTIwMi40LjFsNC44LTMuNmEyLjMlMjAyLjMlMjAwJTIwMCUyMDElMjAyLjYlMjAwbDQuNyUyMDMuN2EyJTIwMiUyMDAlMjAwJTIwMCUyMDIuNC0uMmw1LTQuOGEyLjMlMjAyLjMlMjAwJTIwMCUyMDElMjAyLjUtLjNsNCUyMDIuM2MuOC40JTIwMSUyMC4yLjQtLjVsLTQuOC01LjVNNTMlMjAyNy44Yy42LjQuMyUyMDEuMS0uMiUyMDEuMmEyNiUyMDI2JTIwMCUyMDAlMjAwLTguOCUyMDIuNmM0LjIuNyUyMDcuNiUyMDIuOSUyMDkuNSUyMDUlMjAuNS42JTIwMCUyMDEuMy0uNSUyMDEuMmEzNS45JTIwMzUuOSUyMDAlMjAwJTIwMC0xNi44LTIuMmMtLjYlMjAwLTEtLjItLjktLjdDMzclMjAyNyUyMDQ3JTIwMjQuMiUyMDUzJTIwMjcuOW0tNDIlMjAwYy0uNy4zLS4zJTIwMSUyMC4yJTIwMS4xJTIwMi45LjQlMjA1LjklMjAxJTIwOC44JTIwMi42LTQuMi43LTcuNiUyMDIuOC05LjYlMjA1LS40LjYuMSUyMDEuMy42JTIwMS4yYTM1LjklMjAzNS45JTIwMCUyMDAlMjAxJTIwMTYuOC0yLjJjLjYlMjAwJTIwMS0uMi45LS43QzI3JTIwMjclMjAxNyUyMDI0LjIlMjAxMSUyMDI3LjklMjIlMkYlM0UlM0MlMkZnJTNFJTNDJTJGc3ZnJTNFKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtc2h5b2RbZGF0YS1uYW1lPXNtYWxsLXNtaWxlXXtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjY0JTIyJTIwaGVpZ2h0JTNEJTIyNjQlMjIlM0UlM0NnJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTNFJTNDY2lyY2xlJTIwY3glM0QlMjIzMiUyMiUyMGN5JTNEJTIyMzIlMjIlMjByJTNEJTIyMzIlMjIlMjBmaWxsJTNEJTIyJTIzRkZERDY3JTIyJTJGJTNFJTNDZyUyMGZpbGwlM0QlMjIlMjM2NjRFMjclMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxMy45JTIwMjAuMyUyOSUyMiUzRSUzQ2NpcmNsZSUyMGN4JTNEJTIyNS45JTIyJTIwY3klM0QlMjI2JTIyJTIwciUzRCUyMjUuMyUyMiUyRiUzRSUzQ2NpcmNsZSUyMGN4JTNEJTIyMzAuNCUyMiUyMGN5JTNEJTIyNiUyMiUyMHIlM0QlMjI1LjMlMjIlMkYlM0UlM0NwYXRoJTIwZCUzRCUyMk0zMS42JTIwMjAuNmMtOC43JTIwNi0xOC4zJTIwNi0yNyUyMDAtMS0uOC0xLjguNS0xLjIlMjAxLjdhMTcuNSUyMDE3LjUlMjAwJTIwMCUyMDAlMjAxNC43JTIwOC4yYzYuOSUyMDAlMjAxMi0zLjglMjAxNC44LTguMi42LTEuMi0uMy0yLjUtMS4zLTEuNyUyMiUyRiUzRSUzQyUyRmclM0UlM0MlMkZnJTNFJTNDJTJGc3ZnJTNFKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtc2h5b2RbZGF0YS1uYW1lPWJpZy1zbWlsZV17YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjI2NCUyMiUyMGhlaWdodCUzRCUyMjY0JTIyJTNFJTNDZyUyMGZpbGwlM0QlMjJub25lJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUzRSUzQ2NpcmNsZSUyMGN4JTNEJTIyMzIlMjIlMjBjeSUzRCUyMjMyJTIyJTIwciUzRCUyMjMyJTIyJTIwZmlsbCUzRCUyMiUyM2ZmZGQ2NyUyMiUyRiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzNjY0ZTI3JTIyJTIwZCUzRCUyMk01MC45JTIwMzQuNmMtLjQtLjYtMS4yLS41LTItLjVIMTVjLS44JTIwMC0xLjYlMjAwLTIlMjAuNS00JTIwNS4zJTIwMSUyMDIwLjklMjAxOSUyMDIwLjlzMjMtMTUuNiUyMDE4LjktMjElMjIlMkYlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzRjMzUyNiUyMiUyMGQlM0QlMjJNMzQlMjA0Mi40Yy0uNyUyMDAtMS43LjUtMS4yJTIwMiUyMC4yLjglMjAxLjIlMjAxLjglMjAxLjIlMjAzJTIwMCUyMDIuNi00JTIwMi42LTQlMjAwJTIwMC0xLjIlMjAxLTIlMjAxLjMtMyUyMC4zLTEuNC0uNy0yLTEuMi0yLTEuNyUyMDAtNC40JTIwMS44LTQuNCUyMDQuOWE2LjMlMjA2LjMlMjAwJTIwMCUyMDAlMjA2LjQlMjA2LjElMjA2LjMlMjA2LjMlMjAwJTIwMCUyMDAlMjA2LjQtNi4yYy0uMS0zLTIuOS00LjgtNC42LTQuOSUyMiUyRiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmY3MTdmJTIyJTIwZCUzRCUyMk0yMy44JTIwNTJhMTkuOCUyMDE5LjglMjAwJTIwMCUyMDAlMjA4LjIlMjAxLjZjMy4xJTIwMCUyMDUuOS0uNyUyMDguMi0xLjZhMTcuNiUyMDE3LjYlMjAwJTIwMCUyMDAtOC4yLTJjLTMuMiUyMDAtNiUyMC43LTguMiUyMDEuOSUyMiUyRiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzZmZmJTIyJTIwZCUzRCUyMk00OCUyMDM2LjNIMTYuMWMtMi4yJTIwMC0yLjIlMjA0LjItLjElMjA0LjJoMzJjMi4xJTIwMCUyMDIuMS00LjIlMjAwLTQuMiUyMiUyRiUzRSUzQ2clMjBmaWxsJTNEJTIyJTIzNjY0ZTI3JTIyJTNFJTNDY2lyY2xlJTIwY3glM0QlMjIxOS43JTIyJTIwY3klM0QlMjIyMi40JTIyJTIwciUzRCUyMjUuMyUyMiUyRiUzRSUzQ2NpcmNsZSUyMGN4JTNEJTIyNDQuMyUyMiUyMGN5JTNEJTIyMjIuNCUyMiUyMHIlM0QlMjI1LjMlMjIlMkYlM0UlM0MlMkZnJTNFJTNDJTJGZyUzRSUzQyUyRnN2ZyUzRSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXNoeW9kW2RhdGEtbmFtZT1zdXJwcmlzZWRde2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyNjQlMjIlMjBoZWlnaHQlM0QlMjI2NCUyMiUzRSUzQ2clMjBmaWxsJTNEJTIybm9uZSUyMiUyMGZpbGwtcnVsZSUzRCUyMmV2ZW5vZGQlMjIlM0UlM0NjaXJjbGUlMjBjeCUzRCUyMjMyJTIyJTIwY3klM0QlMjIzMiUyMiUyMHIlM0QlMjIzMiUyMiUyMGZpbGwlM0QlMjIlMjNGRkRENjclMjIlMkYlM0UlM0NjaXJjbGUlMjBjeCUzRCUyMjE4LjElMjIlMjBjeSUzRCUyMjI4LjglMjIlMjByJTNEJTIyMTEuNyUyMiUyMGZpbGwlM0QlMjIlMjNGRkYlMjIlMkYlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzY2NEUyNyUyMiUyMGQlM0QlMjJNMjMuNSUyMDI4LjhhNS4zJTIwNS4zJTIwMCUyMDAlMjAxLTUuNCUyMDUuM2MtMyUyMDAtNS4zLTIuMy01LjMtNS4zczIuMy01LjMlMjA1LjMtNS4zYTUuMyUyMDUuMyUyMDAlMjAwJTIwMSUyMDUuNCUyMDUuMyUyMiUyRiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzRkZGJTIyJTIwZCUzRCUyMk01Ny42JTIwMjguOGExMS43JTIwMTEuNyUyMDAlMjAwJTIwMS0xMS43JTIwMTEuN0ExMS43JTIwMTEuNyUyMDAlMjAwJTIwMSUyMDM0JTIwMjguOGExMS43JTIwMTEuNyUyMDAlMjAwJTIwMSUyMDEyLTExLjclMjAxMS43JTIwMTEuNyUyMDAlMjAwJTIwMSUyMDExLjclMjAxMS43JTIyJTJGJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjM2NjRFMjclMjIlMjBkJTNEJTIyTTUxLjIlMjAyOC44YTUuMyUyMDUuMyUyMDAlMjAwJTIwMS01LjMlMjA1LjNjLTMlMjAwLTUuNC0yLjMtNS40LTUuM3MyLjQtNS4zJTIwNS40LTUuM2E1LjMlMjA1LjMlMjAwJTIwMCUyMDElMjA1LjMlMjA1LjMlMjIlMkYlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzkxNzUyNCUyMiUyMGQlM0QlMjJNNTEuNCUyMDE0LjdBMTUlMjAxNSUyMDAlMjAwJTIwMCUyMDM5JTIwMTEuNGMtLjYuMS0xLjEtMi4xLS40LTIuMyUyMDUuMS0xJTIwMTAuNS41JTIwMTQuNCUyMDMuOC42LjUtMSUyMDIuMy0xLjUlMjAxLjhtLTI2LjMtMy41Yy00LjUtLjgtOS4xLjQtMTIuNSUyMDMuMy0uNC40LTIuMS0xLjMtMS41LTEuOGExNy4yJTIwMTcuMiUyMDAlMjAwJTIwMSUyMDE0LjQtMy45Yy43LjMuMiUyMDIuNS0uNCUyMDIuNCUyMiUyRiUzRSUzQ2NpcmNsZSUyMGN4JTNEJTIyMzIlMjIlMjBjeSUzRCUyMjUwLjElMjIlMjByJTNEJTIyOS42JTIyJTIwZmlsbCUzRCUyMiUyMzY2NEUyNyUyMiUyRiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzRkZGJTIyJTIwZCUzRCUyMk0yNS42JTIwNDdhNy4yJTIwNy4yJTIwMCUyMDAlMjAxJTIwNi40LTQuM2MyLjglMjAwJTIwNS4xJTIwMS43JTIwNi40JTIwNC4ySDI1LjYlMjIlMkYlM0UlM0MlMkZnJTNFJTNDJTJGc3ZnJTNFKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtc2h5b2RbZGF0YS1uYW1lPXRvbmd1ZV17YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjI2NCUyMiUyMGhlaWdodCUzRCUyMjY0JTIyJTNFJTNDZyUyMGZpbGwlM0QlMjJub25lJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzRkZERDY3JTIyJTIwZCUzRCUyMk02NCUyMDMyYTMyJTIwMzIlMjAwJTIwMSUyMDEtNjQlMjAwJTIwMzIlMjAzMiUyMDAlMjAwJTIwMSUyMDY0JTIwMCUyMiUyRiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzRkY3MTdGJTIyJTIwZCUzRCUyMk00Mi43JTIwNDljLTUuNC01LjQtMy0zJTIwMi42LTguNyUyMDUuNy01LjYlMjAzLjMtOCUyMDguNy0yLjYlMjA1LjMlMjA1LjMlMjA1LjUlMjAxMC41JTIwMi4zJTIwMTMuNy0zJTIwMy4xLTguMyUyMDIuOS0xMy42LTIuNCUyMiUyRiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzRTI1OTZDJTIyJTIwZCUzRCUyMm00Ni41JTIwMzkuMSUyMDcuMyUyMDkuNi05LjUtNy4yeiUyMiUyRiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzNjY0RTI3JTIyJTIwZCUzRCUyMk0yOC4zJTIwMjQuNGMtMi01LjQtNS04LjItOC04LjJzLTYlMjAyLjgtOCUyMDguMmMtLjMuNi44JTIwMS41JTIwMS4zJTIwMWE5JTIwOSUyMDAlMjAwJTIwMSUyMDYuNy0yLjklMjA5JTIwOSUyMDAlMjAwJTIwMSUyMDYuNiUyMDIuOWMuNi41JTIwMS42LS40JTIwMS40LTFtMjMuMyUyMDBjLTItNS40LTUtOC4yLTgtOC4ycy02JTIwMi44LTglMjA4LjJjLS4yLjYuOSUyMDEuNSUyMDEuNCUyMDFhOSUyMDklMjAwJTIwMCUyMDElMjA2LjYtMi45JTIwOSUyMDklMjAwJTIwMCUyMDElMjA2LjYlMjAyLjljLjYuNSUyMDEuNi0uNCUyMDEuNC0xbS0yLjQlMjA4LjdDNDQuNiUyMDM5LjYlMjAzOSUyMDQxJTIwMzIlMjA0MXMtMTIuNi0xLjUtMTcuMi04Yy0uNi0uOS0yLjMtLjQtMS45JTIwMWExOS41JTIwMTkuNSUyMDAlMjAwJTIwMCUyMDE5LjIlMjAxMy41YzguNSUyMDAlMjAxNi43LTUlMjAxOS4yLTEzLjYuMi0xLjItMS41LTEuOC0yLjEtMSUyMiUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1zaHlvZFtkYXRhLW5hbWU9d2lua2luZ117YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjI2NCUyMiUyMGhlaWdodCUzRCUyMjY0JTIyJTNFJTNDZyUyMGZpbGwlM0QlMjJub25lJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUzRSUzQ2NpcmNsZSUyMGN4JTNEJTIyMzIlMjIlMjBjeSUzRCUyMjMyJTIyJTIwciUzRCUyMjMyJTIyJTIwZmlsbCUzRCUyMiUyM0ZGREQ2NyUyMiUyRiUzRSUzQ2NpcmNsZSUyMGN4JTNEJTIyMjEuNyUyMiUyMGN5JTNEJTIyMzEuNiUyMiUyMHIlM0QlMjI1LjMlMjIlMjBmaWxsJTNEJTIyJTIzNjY0RTI3JTIyJTJGJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjM5MTc1MjQlMjIlMjBkJTNEJTIyTTUyLjUlMjAyNy4yQTE1JTIwMTUlMjAwJTIwMCUyMDAlMjA0MCUyMDIzLjljLS42LjEtMS4yLTIuMS0uNC0yLjQlMjA1LTElMjAxMC40LjYlMjAxNC40JTIwMy45LjYuNS0xJTIwMi4yLTEuNSUyMDEuOE0yNCUyMDE3LjljLTQuNS0uNy05JTIwLjUtMTIuNSUyMDMuMy0uNC41LTIuMS0xLjItMS41LTEuOGExNy4yJTIwMTcuMiUyMDAlMjAwJTIwMSUyMDE0LjQtMy44Yy44LjIuMiUyMDIuNC0uNCUyMDIuMyUyMiUyRiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzNjY0RTI3JTIyJTIwZCUzRCUyMk01MS40JTIwMzQuNWMtMS44LTMuOC00LjctNS43LTcuNS01LjctMi43JTIwMC01LjUlMjAyLTcuNCUyMDUuNy0uMi40LjclMjAxJTIwMS4zLjYlMjAxLjgtMS40JTIwNC0yJTIwNi4yLTJzNC4zLjYlMjA2LjElMjAyYy41LjMlMjAxLjQtLjMlMjAxLjMtLjZNNDUlMjA0Mi45Yy03LjQlMjAzLjgtMTcuNSUyMDMtMjAuNCUyMDMtLjclMjAwLTEuMy40LTElMjAxJTIwMi4xJTIwNy41JTIwMTguMSUyMDcuNSUyMDIyLjUtMi44LjUtMS4yLS40LTEuNS0xLTEuMiUyMiUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5lbW9qaXtoZWlnaHQ6MTZweDt3aWR0aDoxNnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1ranJzcltkYXRhLXNpemU9bGFyZ2Vde2xpbmUtaGVpZ2h0OjQycHg7Zm9udC1zaXplOjQycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFpY3JqOjotbW96LXBsYWNlaG9sZGVye2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyLHNhbnMtc2VyaWYhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFpY3JqIDo6LW1vei1wbGFjZWhvbGRlcntmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgUmVndWxhcixzYW5zLXNlcmlmIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xaWNyaiwuY3Jpc3AtY2xpZW50IC5jYy0xaWNyajo6cGxhY2Vob2xkZXIsLmNyaXNwLWNsaWVudCAuY2MtMWljcmogKiwuY3Jpc3AtY2xpZW50IC5jYy0xaWNyaiA6OnBsYWNlaG9sZGVye2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBSZWd1bGFyLHNhbnMtc2VyaWYhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTEwY3FzOjotbW96LXBsYWNlaG9sZGVye2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkLHNhbnMtc2VyaWYhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTEwY3FzIDo6LW1vei1wbGFjZWhvbGRlcntmb250LWZhbWlseTpDcmlzcCBOb3RvIFNhbnMgQm9sZCxzYW5zLXNlcmlmIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xMGNxcywuY3Jpc3AtY2xpZW50IC5jYy0xMGNxczo6cGxhY2Vob2xkZXIsLmNyaXNwLWNsaWVudCAuY2MtMTBjcXMgKiwuY3Jpc3AtY2xpZW50IC5jYy0xMGNxcyA6OnBsYWNlaG9sZGVye2ZvbnQtZmFtaWx5OkNyaXNwIE5vdG8gU2FucyBCb2xkLHNhbnMtc2VyaWYhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFtY2l5OjotbW96LXBsYWNlaG9sZGVye2ZvbnQtZmFtaWx5OkhhY2sgUmVndWxhcixtb25vc3BhY2UhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFtY2l5IDo6LW1vei1wbGFjZWhvbGRlcntmb250LWZhbWlseTpIYWNrIFJlZ3VsYXIsbW9ub3NwYWNlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xbWNpeSwuY3Jpc3AtY2xpZW50IC5jYy0xbWNpeTo6cGxhY2Vob2xkZXIsLmNyaXNwLWNsaWVudCAuY2MtMW1jaXkgKiwuY3Jpc3AtY2xpZW50IC5jYy0xbWNpeSA6OnBsYWNlaG9sZGVye2ZvbnQtZmFtaWx5OkhhY2sgUmVndWxhcixtb25vc3BhY2UhaW1wb3J0YW50fS5jcmlzcC1jbGllbnRbZGlyPXJ0bF0gLmNjLTFpY3JqOjotbW96LXBsYWNlaG9sZGVye2ZvbnQtZmFtaWx5OlRhaG9tYSxzYW5zLXNlcmlmIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50W2Rpcj1ydGxdIC5jYy0xaWNyaiA6Oi1tb3otcGxhY2Vob2xkZXJ7Zm9udC1mYW1pbHk6VGFob21hLHNhbnMtc2VyaWYhaW1wb3J0YW50fS5jcmlzcC1jbGllbnRbZGlyPXJ0bF0gLmNjLTFpY3JqLC5jcmlzcC1jbGllbnRbZGlyPXJ0bF0gLmNjLTFpY3JqOjpwbGFjZWhvbGRlciwuY3Jpc3AtY2xpZW50W2Rpcj1ydGxdIC5jYy0xaWNyaiAqLC5jcmlzcC1jbGllbnRbZGlyPXJ0bF0gLmNjLTFpY3JqIDo6cGxhY2Vob2xkZXJ7Zm9udC1mYW1pbHk6VGFob21hLHNhbnMtc2VyaWYhaW1wb3J0YW50fS5jcmlzcC1jbGllbnRbZGlyPXJ0bF0gLmNjLTEwY3FzOjotbW96LXBsYWNlaG9sZGVye2ZvbnQtZmFtaWx5OlRhaG9tYSxzYW5zLXNlcmlmIWltcG9ydGFudDtmb250LXdlaWdodDo3MDAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnRbZGlyPXJ0bF0gLmNjLTEwY3FzIDo6LW1vei1wbGFjZWhvbGRlcntmb250LWZhbWlseTpUYWhvbWEsc2Fucy1zZXJpZiFpbXBvcnRhbnQ7Zm9udC13ZWlnaHQ6NzAwIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50W2Rpcj1ydGxdIC5jYy0xMGNxcywuY3Jpc3AtY2xpZW50W2Rpcj1ydGxdIC5jYy0xMGNxczo6cGxhY2Vob2xkZXIsLmNyaXNwLWNsaWVudFtkaXI9cnRsXSAuY2MtMTBjcXMgKiwuY3Jpc3AtY2xpZW50W2Rpcj1ydGxdIC5jYy0xMGNxcyA6OnBsYWNlaG9sZGVye2ZvbnQtZmFtaWx5OlRhaG9tYSxzYW5zLXNlcmlmIWltcG9ydGFudDtmb250LXdlaWdodDo3MDAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnR7Zm9udC1mYW1pbHk6Q3Jpc3AgTm90byBTYW5zIFJlZ3VsYXIsSGVsdmV0aWNhIE5ldWUsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWYhaW1wb3J0YW50O2ZvbnQtc2l6ZToxMXB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50W2Rpcj1ydGxde2ZvbnQtZmFtaWx5OlRhaG9tYSxzYW5zLXNlcmlmIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50ICp7LXdlYmtpdC1mb250LXNtb290aGluZzpzdWJwaXhlbC1hbnRpYWxpYXNlZCFpbXBvcnRhbnQ7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6YXV0byFpbXBvcnRhbnQ7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lIWltcG9ydGFudDt1c2VyLXNlbGVjdDpub25lIWltcG9ydGFudDttYXJnaW46MCFpbXBvcnRhbnQ7cGFkZGluZzowIWltcG9ydGFudDtmb250LXNpemU6MTFweCFpbXBvcnRhbnQ7Zm9udC13ZWlnaHQ6NDAwIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IGlucHV0e2xldHRlci1zcGFjaW5nOi44cHghaW1wb3J0YW50O2ZvbnQtc2l6ZToxMnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IGlucHV0LC5jcmlzcC1jbGllbnQgdGV4dGFyZWF7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtYmxhY2stbm9ybWFsKSkhaW1wb3J0YW50O2JhY2tncm91bmQ6MCAwIWltcG9ydGFudDtib3JkZXI6MCFpbXBvcnRhbnQ7b3V0bGluZS1zdHlsZTpub25lIWltcG9ydGFudDtmb250LXNpemU6MTEuMnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IGlucHV0OjotbW96LXBsYWNlaG9sZGVye2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1wbGFjZWhvbGRlci1ub3JtYWwpKSFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXBsYWNlaG9sZGVyLW5vcm1hbCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IHRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVye2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1wbGFjZWhvbGRlci1ub3JtYWwpKSFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXBsYWNlaG9sZGVyLW5vcm1hbCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IGlucHV0OjpwbGFjZWhvbGRlciwuY3Jpc3AtY2xpZW50IHRleHRhcmVhOjpwbGFjZWhvbGRlcntjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItcGxhY2Vob2xkZXItbm9ybWFsKSkhaW1wb3J0YW50Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1wbGFjZWhvbGRlci1ub3JtYWwpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCBpbnB1dDpkaXNhYmxlZDo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItcGxhY2Vob2xkZXItZGlzYWJsZWQpKSFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXBsYWNlaG9sZGVyLWRpc2FibGVkKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgdGV4dGFyZWE6ZGlzYWJsZWQ6Oi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXBsYWNlaG9sZGVyLWRpc2FibGVkKSkhaW1wb3J0YW50Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1wbGFjZWhvbGRlci1kaXNhYmxlZCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IGlucHV0OmRpc2FibGVkOjpwbGFjZWhvbGRlciwuY3Jpc3AtY2xpZW50IHRleHRhcmVhOmRpc2FibGVkOjpwbGFjZWhvbGRlcntjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItcGxhY2Vob2xkZXItZGlzYWJsZWQpKSFpbXBvcnRhbnQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXBsYWNlaG9sZGVyLWRpc2FibGVkKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgYnV0dG9ue291dGxpbmUtc3R5bGU6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCBhe2N1cnNvcjpwb2ludGVyIWltcG9ydGFudDtvdXRsaW5lLXN0eWxlOm5vbmUhaW1wb3J0YW50O3RleHQtZGVjb3JhdGlvbjpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IGE6aG92ZXJ7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgYTpmb2N1cy12aXNpYmxlLC5jcmlzcC1jbGllbnQgW3JvbGU9YnV0dG9uXTpmb2N1cy12aXNpYmxle291dGxpbmU6NHB4IHNvbGlkIHJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS05MDApKSFpbXBvcnRhbnQ7b3V0bGluZS1vZmZzZXQ6M3B4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aHstLWxpZ2h0bmluZ2Nzcy1saWdodDppbml0aWFsIWltcG9ydGFudDstLWxpZ2h0bmluZ2Nzcy1kYXJrOiAhaW1wb3J0YW50O2NvbG9yLXNjaGVtZTpsaWdodCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2hbZGF0YS1oaWRkZW49dHJ1ZV0gLmNjLTJvYjRqe2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2hbZGF0YS1jb2xvci1tb2RlPWRhcmtdey0tbGlnaHRuaW5nY3NzLWxpZ2h0OiAhaW1wb3J0YW50Oy0tbGlnaHRuaW5nY3NzLWRhcms6aW5pdGlhbCFpbXBvcnRhbnQ7Y29sb3Itc2NoZW1lOmRhcmshaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFoMHl4LC5jcmlzcC1jbGllbnQgLmNjLTEyemhte3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTEzZnR4e2NsZWFyOmJvdGghaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTNyZmdjLC5jcmlzcC1jbGllbnQgLmNjLTNyZmdjICp7LXdlYmtpdC11c2VyLXNlbGVjdDp0ZXh0IWltcG9ydGFudDt1c2VyLXNlbGVjdDp0ZXh0IWltcG9ydGFudH0jY3Jpc3AtbG9hZGVye2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmNjLTFsd2t6e2FuaW1hdGlvbi1uYW1lOmNjLWdmZWVjO2FuaW1hdGlvbi1kdXJhdGlvbjoxczthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcjthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDtib3JkZXItY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSwgLjUpIWltcG9ydGFudDtiYWNrZ3JvdW5kOjAgMCFpbXBvcnRhbnQ7Ym9yZGVyLXN0eWxlOnNvbGlkIWltcG9ydGFudDtib3JkZXItYm90dG9tLWNvbG9yOiMwMDAwIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjEwMCUhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uY2MtMWx3a3pbZGF0YS10aW50PXRoZW1lXXtib3JkZXItY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLTUwMCksIC4yKSFpbXBvcnRhbnQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtNTAwKSkhaW1wb3J0YW50fS5jYy0xbHdreltkYXRhLXRpbnQ9dGhlbWUtbGlnaHRde2JvcmRlci1ib3R0b20tY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLTUwMCkpIWltcG9ydGFudH0uY2MtMWxsN2p7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWwpKSFpbXBvcnRhbnR9LmNjLTFsbDdqOm5vdChbZGF0YS13aXRoLXBsYWNlaG9sZGVyPWZhbHNlXSl7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxMDElMjIlMjBoZWlnaHQlM0QlMjIxMDElMjIlM0UlM0NnJTIwZmlsbCUzRCUyMm5vbmUlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0wJTIwMGgxMDF2MTAxSDB6JTIyJTJGJTNFJTNDZyUyMGZpbGwlM0QlMjIlMjM3MDc1ODQlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk00OS43JTIwMjVhMTMlMjAxMyUyMDAlMjAwJTIwMSUyMDEzJTIwMTN2OS43YTEzJTIwMTMlMjAwJTIwMSUyMDEtMjYlMjAwVjM4YTEzJTIwMTMlMjAwJTIwMCUyMDElMjAxMy0xMyUyMiUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTMxLjglMjA1OS43aDM1LjhhNC44JTIwNC44JTIwMCUyMDAlMjAxJTIwNC45JTIwNC45djkuMUgyN3YtOS4xYTQuOCUyMDQuOCUyMDAlMjAwJTIwMSUyMDQuOC00LjklMjIlMjBvcGFjaXR5JTNEJTIyLjglMjIlMkYlM0UlM0MlMkZnJTNFJTNDJTJGZyUzRSUzQyUyRnN2ZyUzRSkhaW1wb3J0YW50fS5jYy0xbGw3aiwuY2MtMWxsN2ogLmNjLTFmMnoye2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOmNvdmVyIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy12c3JyN3twb3NpdGlvbjpyZWxhdGl2ZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdnNycjcgLmNjLTFid3N2e2xpbmUtaGVpZ2h0OjI4cHg7Y3Vyc29yOmRlZmF1bHQhaW1wb3J0YW50O3BvaW50ZXItZXZlbnRzOm5vbmUhaW1wb3J0YW50O3otaW5kZXg6MSFpbXBvcnRhbnQ7dmlzaWJpbGl0eTpoaWRkZW4haW1wb3J0YW50O29wYWNpdHk6MCFpbXBvcnRhbnQ7d2lkdGg6MTAwMHB4IWltcG9ydGFudDt0cmFuc2l0aW9uOmFsbCAuMXMgLjFzIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdnNycjcgLmNjLTFid3N2IC5jYy0xaGwxaXtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCksIC45NCkhaW1wb3J0YW50O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LXdoaXRlLW5vcm1hbCkpIWltcG9ydGFudDtsZXR0ZXItc3BhY2luZzouMXB4IWltcG9ydGFudDt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7dGV4dC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7dGV4dC10cmFuc2Zvcm06aW5pdGlhbCFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czo2cHghaW1wb3J0YW50O3BhZGRpbmc6MCAxMnB4IWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7aW5zZXQtaW5saW5lLXN0YXJ0OjUwJSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdnNycjcgLmNjLTFid3N2IC5jYy0xaGwxaSwuY3Jpc3AtY2xpZW50IC5jYy12c3JyNyAuY2MtMWJ3c3YgLmNjLTFobDFpICp7Zm9udC1zaXplOjEwLjhweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdnNycjcgLmNjLTFid3N2LC5jcmlzcC1jbGllbnQgLmNjLXZzcnI3IC5jYy0xYndzdiAqey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZSFpbXBvcnRhbnQ7dXNlci1zZWxlY3Q6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdnNycjcgLmNjLTFid3N2LmNjLTF2Z2J5LmNjLTFhOXpxLC5jcmlzcC1jbGllbnQgLmNjLXZzcnI3IC5jYy0xYndzdi5jYy0xNjUxcS5jYy0xYTl6cXt0ZXh0LWFsaWduOnN0YXJ0IWltcG9ydGFudDtpbnNldC1pbmxpbmUtc3RhcnQ6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdnNycjcgLmNjLTFid3N2LmNjLTF2Z2J5LmNjLTFhOXpxOmFmdGVyLC5jcmlzcC1jbGllbnQgLmNjLXZzcnI3IC5jYy0xYndzdi5jYy0xNjUxcS5jYy0xYTl6cTphZnRlcntpbnNldC1pbmxpbmUtc3RhcnQ6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdnNycjcgLmNjLTFid3N2LmNjLTF2Z2J5LmNjLXB3bWV4LC5jcmlzcC1jbGllbnQgLmNjLXZzcnI3IC5jYy0xYndzdi5jYy0xNjUxcS5jYy1wd21leHt0ZXh0LWFsaWduOmVuZCFpbXBvcnRhbnQ7aW5zZXQtaW5saW5lLWVuZDowIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy12c3JyNyAuY2MtMWJ3c3YuY2MtMXZnYnkuY2MtcHdtZXg6YWZ0ZXIsLmNyaXNwLWNsaWVudCAuY2MtdnNycjcgLmNjLTFid3N2LmNjLTE2NTFxLmNjLXB3bWV4OmFmdGVye2luc2V0LWlubGluZS1lbmQ6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdnNycjcgLmNjLTFid3N2LmNjLTF2Z2J5LmNjLXVmMjQ0LC5jcmlzcC1jbGllbnQgLmNjLXZzcnI3IC5jYy0xYndzdi5jYy0xNjUxcS5jYy11ZjI0NHt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7bWFyZ2luLWxlZnQ6LTUwMHB4IWltcG9ydGFudDtsZWZ0OjUwJSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdnNycjcgLmNjLTFid3N2LmNjLTF2Z2J5e21hcmdpbi10b3A6NXB4IWltcG9ydGFudDt0b3A6MTAwJSFpbXBvcnRhbnQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTNweCkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXZzcnI3IC5jYy0xYndzdi5jYy0xNjUxcXttYXJnaW4tYm90dG9tOjVweCFpbXBvcnRhbnQ7Ym90dG9tOjEwMCUhaW1wb3J0YW50O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0zcHgpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy12c3JyNyAuY2MtMWJ3c3YuY2MtMWp0cWZ7bWFyZ2luLXRvcDotMTRweCFpbXBvcnRhbnQ7dG9wOjUwJSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdnNycjcgLmNjLTFid3N2LmNjLTFqdHFmLmNjLTFhOXpxe3RleHQtYWxpZ246ZW5kIWltcG9ydGFudDttYXJnaW4taW5saW5lLWVuZDo3cHghaW1wb3J0YW50O2luc2V0LWlubGluZS1lbmQ6MTAwJSFpbXBvcnRhbnQ7dHJhbnNmb3JtOnRyYW5zbGF0ZSgzcHgpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy12c3JyNyAuY2MtMWJ3c3YuY2MtMWp0cWYuY2MtcHdtZXh7dGV4dC1hbGlnbjpzdGFydCFpbXBvcnRhbnQ7bWFyZ2luLWlubGluZS1zdGFydDo3cHghaW1wb3J0YW50O2luc2V0LWlubGluZS1zdGFydDoxMDAlIWltcG9ydGFudDt0cmFuc2Zvcm06dHJhbnNsYXRlKC0zcHgpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy12c3JyNyAuY2MtMWJ3c3YuY2MtMXlpNDUgLmNjLTFobDFpe2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSkhaW1wb3J0YW50O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy12c3JyNyAuY2MtMWJ3c3Y6YWZ0ZXJ7aGVpZ2h0OjA7Y29udGVudDoiIiFpbXBvcnRhbnQ7d2lkdGg6MCFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50fUBtZWRpYSAoaG92ZXI6aG92ZXIpey5jcmlzcC1jbGllbnQgLmNjLXZzcnI3OmhvdmVyIC5jYy0xYndzdnt2aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50O29wYWNpdHk6MSFpbXBvcnRhbnQ7dHJhbnNpdGlvbjphbGwgLjE1cyFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdnNycjc6aG92ZXIgLmNjLTFid3N2LmNjLTF2Z2J5LC5jcmlzcC1jbGllbnQgLmNjLXZzcnI3OmhvdmVyIC5jYy0xYndzdi5jYy0xNjUxcXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdnNycjc6aG92ZXIgLmNjLTFid3N2LmNjLTFqdHFmLmNjLTFhOXpxLC5jcmlzcC1jbGllbnQgLmNjLXZzcnI3OmhvdmVyIC5jYy0xYndzdi5jYy0xanRxZi5jYy1wd21leHt0cmFuc2Zvcm06dHJhbnNsYXRlKDApIWltcG9ydGFudH19LmNyaXNwLWNsaWVudCAuY2MtdnNycjcuY2MtMWthZ2wgLmNjLTFid3N2e3Zpc2liaWxpdHk6dmlzaWJsZSFpbXBvcnRhbnQ7b3BhY2l0eToxIWltcG9ydGFudDt0cmFuc2l0aW9uOmFsbCAuMTVzIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy12c3JyNy5jYy0xa2FnbCAuY2MtMWJ3c3YuY2MtMXZnYnksLmNyaXNwLWNsaWVudCAuY2MtdnNycjcuY2MtMWthZ2wgLmNjLTFid3N2LmNjLTE2NTFxe3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy12c3JyNy5jYy0xa2FnbCAuY2MtMWJ3c3YuY2MtMWp0cWYuY2MtMWE5enEsLmNyaXNwLWNsaWVudCAuY2MtdnNycjcuY2MtMWthZ2wgLmNjLTFid3N2LmNjLTFqdHFmLmNjLXB3bWV4e3RyYW5zZm9ybTp0cmFuc2xhdGUoMCkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnRbZGlyPXJ0bF0gLmNjLXZzcnI3IC5jYy0xYndzdi5jYy0xanRxZi5jYy0xYTl6cXt0cmFuc2Zvcm06dHJhbnNsYXRlKC0zcHgpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50W2Rpcj1ydGxdIC5jYy12c3JyNyAuY2MtMWJ3c3YuY2MtMWp0cWYuY2MtcHdtZXh7dHJhbnNmb3JtOnRyYW5zbGF0ZSgzcHgpIWltcG9ydGFudH1AbWVkaWEgKGhvdmVyOmhvdmVyKXsuY3Jpc3AtY2xpZW50W2Rpcj1ydGxdIC5jYy12c3JyNzpob3ZlciAuY2MtMWJ3c3YuY2MtMWp0cWYuY2MtMWE5enEsLmNyaXNwLWNsaWVudFtkaXI9cnRsXSAuY2MtdnNycjc6aG92ZXIgLmNjLTFid3N2LmNjLTFqdHFmLmNjLXB3bWV4e3RyYW5zZm9ybTp0cmFuc2xhdGUoMCkhaW1wb3J0YW50fX0uY3Jpc3AtY2xpZW50W2Rpcj1ydGxdIC5jYy12c3JyNy5jYy0xa2FnbCAuY2MtMWJ3c3YuY2MtMWp0cWYuY2MtMWE5enEsLmNyaXNwLWNsaWVudFtkaXI9cnRsXSAuY2MtdnNycjcuY2MtMWthZ2wgLmNjLTFid3N2LmNjLTFqdHFmLmNjLXB3bWV4e3RyYW5zZm9ybTp0cmFuc2xhdGUoMCkhaW1wb3J0YW50fS5jYy1uY2g4YVtkYXRhLXBhcnRpYWwtcGVuZGluZz10cnVlXXthbmltYXRpb24tbmFtZTpjYy0xMjBveDthbmltYXRpb24tZHVyYXRpb246MnM7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluLW91dDthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aH0uY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybywuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy13N3YxOHtwb3NpdGlvbjpmaXhlZCFpbXBvcnRhbnQ7cmlnaHQ6MjRweCFpbXBvcnRhbnR9LmNjLTE2NXdoW2RhdGEtcG9zaXRpb24tcmV2ZXJzZT10cnVlXSAuY2MtbGs0MnUgLmNjLTEzd3JvLC5jYy0xNjV3aFtkYXRhLXBvc2l0aW9uLXJldmVyc2U9dHJ1ZV0gLmNjLWxrNDJ1IC5jYy13N3YxOHtsZWZ0OjI0cHghaW1wb3J0YW50O3JpZ2h0OmF1dG8haW1wb3J0YW50fS5jYy0xNjV3aFtkYXRhLWxvY2stbWF4aW1pemVkPWZhbHNlXVtkYXRhLWlzLWFjdGl2aXR5LW9uZ29pbmc9ZmFsc2VdW2RhdGEtZm9yY2Utc2hvdz1mYWxzZV1bZGF0YS1ibG9ja2VkPXRydWVdIC5jYy0yb2I0aiwuY2MtMTY1d2hbZGF0YS1sb2NrLW1heGltaXplZD1mYWxzZV1bZGF0YS1pcy1hY3Rpdml0eS1vbmdvaW5nPWZhbHNlXVtkYXRhLWZvcmNlLXNob3c9ZmFsc2VdW2RhdGEtaGlkZS12YWNhdGlvbj10cnVlXSAuY2MtMm9iNGosLmNjLTE2NXdoW2RhdGEtbG9jay1tYXhpbWl6ZWQ9ZmFsc2VdW2RhdGEtaXMtYWN0aXZpdHktb25nb2luZz1mYWxzZV1bZGF0YS1mb3JjZS1zaG93PWZhbHNlXVtkYXRhLWhpZGUtb24tYXdheT10cnVlXVtkYXRhLXdhcy1hdmFpbGFiaWxpdHktb25saW5lPWZhbHNlXVtkYXRhLWF2YWlsYWJpbGl0eT1hd2F5XSAuY2MtMm9iNGosLmNjLTE2NXdoW2RhdGEtbG9jay1tYXhpbWl6ZWQ9ZmFsc2VdW2RhdGEtaXMtYWN0aXZpdHktb25nb2luZz1mYWxzZV1bZGF0YS1mb3JjZS1zaG93PWZhbHNlXVtkYXRhLWhpZGUtb24tbW9iaWxlPXRydWVdW2RhdGEtbW9iaWxlLXZpZXc9dHJ1ZV0gLmNjLTJvYjRqe2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHB7ei1pbmRleDowIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDtwb3NpdGlvbjpyZWxhdGl2ZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pke3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6dmFyKC0tY3Jpc3AtY3VzdG9taXphdGlvbi1idXR0b24taG9yaXpvbnRhbCkhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tY3Jpc3AtY3VzdG9taXphdGlvbi1idXR0b24tdmVydGljYWwpIWltcG9ydGFudDtwb3NpdGlvbjpmaXhlZCFpbXBvcnRhbnQ7Ym90dG9tOjkwcHghaW1wb3J0YW50O3JpZ2h0OjI0cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZC5jYy16djdjanthbmltYXRpb24tbmFtZTpjYy1nbjU5ZzthbmltYXRpb24tZHVyYXRpb246LjI1czthbmltYXRpb24tZmlsbC1tb2RlOmJvdGh9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkLmNjLWNsYzVne2FuaW1hdGlvbi1uYW1lOmNjLXR3cmt2O2FuaW1hdGlvbi1kdXJhdGlvbjouMjVzO2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1mYWlsdXJlX25vdGljZV0gLmNjLTU0cHhlIC5jYy0xZ2JydywuY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1uZXdfbWVzc2FnZXNdIC5jYy01NHB4ZSAuY2MtMWdicncsLmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9Z2VuZXJhbF9lbnRpY2VdIC5jYy01NHB4ZSAuY2MtMWdicnd7Ym9yZGVyLXJhZGl1czozM3B4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1mYWlsdXJlX25vdGljZV0gLmNjLTU0cHhlIC5jYy0xZ2JydywuY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1uZXdfbWVzc2FnZXNdIC5jYy01NHB4ZSAuY2MtMWdicnd7aGVpZ2h0OjM4cHg7Ym94LXNoYWRvdzowIDNweCA2cHggMCByZ2IodmFyKC0tY3Jpc3AtY29sb3Itc2hhZG93LW5vcm1hbCksIC4wNikhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnQ7cGFkZGluZzowIDIwcHghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9ZmFpbHVyZV9ub3RpY2VdIC5jYy01NHB4ZSAuY2MtMWdicncgLmNjLTF1dnZ1LC5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTU0cHhlIC5jYy0xZ2JydyAuY2MtMXV2dnV7bGV0dGVyLXNwYWNpbmc6MCFpbXBvcnRhbnQ7dGV4dC1hbGlnbjpzdGFydCFpbXBvcnRhbnQ7d2hpdGUtc3BhY2U6bm93cmFwIWltcG9ydGFudDttYXJnaW4tdG9wOi0ycHghaW1wb3J0YW50O2ZvbnQtc2l6ZToxMi40cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTFnYnJ3IC5jYy0xdDJmbywuY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1nZW5lcmFsX2VudGljZV0gLmNjLTE3MGlnW2RhdGEtdHlwZT1jaGF0XSAuY2MtZjd4d297LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjE2JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNiUyMDE2JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTMlMjAwYTMlMjAzJTIwMCUyMDAlMjAxJTIwMyUyMDN2N2EzJTIwMyUyMDAlMjAwJTIwMS0zJTIwM0g5LjI1YS43Ni43NiUyMDAlMjAwJTIwMC0uNDUuMTVsLTMuNiUyMDIuN2EuNzQ4Ljc0OCUyMDAlMjAwJTIwMS0xLjItLjZWMTNIM2EzJTIwMyUyMDAlMjAwJTIwMS0zLTNWM2EzJTIwMyUyMDAlMjAwJTIwMSUyMDMtM3pNNS4wNTclMjA1LjM3SDMuOTMzYS41NjMuNTYzJTIwMCUyMDAlMjAwLS41NjMuNTYzdjEuMTI0YzAlMjAuMzExLjI1Mi41NjMuNTYzLjU2M2gxLjEyNGEuNTYzLjU2MyUyMDAlMjAwJTIwMCUyMC41NjMtLjU2M1Y1LjkzM2EuNTYzLjU2MyUyMDAlMjAwJTIwMC0uNTYzLS41NjNtMy41JTIwMEg3LjQzMmEuNTYzLjU2MyUyMDAlMjAwJTIwMC0uNTYyLjU2M3YxLjEyNGMwJTIwLjMxMS4yNTIuNTYzLjU2Mi41NjNoMS4xMjVhLjU2My41NjMlMjAwJTIwMCUyMDAlMjAuNTYzLS41NjNWNS45MzNhLjU2My41NjMlMjAwJTIwMCUyMDAtLjU2My0uNTYzbTMuNSUyMDBoLTEuMTI0YS41NjMuNTYzJTIwMCUyMDAlMjAwLS41NjMuNTYzdjEuMTI0YzAlMjAuMzExLjI1Mi41NjMuNTYzLjU2M2gxLjEyNGEuNTYzLjU2MyUyMDAlMjAwJTIwMCUyMC41NjMtLjU2M1Y1LjkzM2EuNTYzLjU2MyUyMDAlMjAwJTIwMC0uNTYzLS41NjMlMjIlMkYlM0UlM0MlMkZzdmclM0UpOy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1mYWlsdXJlX25vdGljZV17ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9ZmFpbHVyZV9ub3RpY2VdIC5jYy01NHB4ZSAuY2MtMWdicnd7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1yZWQtbm9ybWFsKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPWZhaWx1cmVfbm90aWNlXSAuY2MtNTRweGUgLmNjLTFnYnJ3IC5jYy0xdXZ2dXtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC13aGl0ZS1ub3JtYWwpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9Z2VuZXJhbF9lbnRpY2Vde21hcmdpbi1yaWdodDpjYWxjKC04cHggKyB2YXIoLS1jcmlzcC1jdXN0b21pemF0aW9uLWJ1dHRvbi1ob3Jpem9udGFsKSkhaW1wb3J0YW50O21hcmdpbi1ib3R0b206Y2FsYygtNzhweCArIHZhcigtLWNyaXNwLWN1c3RvbWl6YXRpb24tYnV0dG9uLXZlcnRpY2FsKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPWdlbmVyYWxfZW50aWNlXSAuY2MtNTRweGUgLmNjLTFnYnJ3e2hlaWdodDphdXRvO2JhY2tncm91bmQ6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSkhaW1wb3J0YW50O21pbi13aWR0aDoyODBweCFpbXBvcnRhbnQ7bWF4LXdpZHRoOjM2MHB4IWltcG9ydGFudDtib3gtc2hhZG93OjAgNnB4IDZweCAwIHJnYih2YXIoLS1jcmlzcC1jb2xvci1zaGFkb3ctbm9ybWFsKSwgLjAyKSwgMCA4cHggMjRweCAwIHJnYih2YXIoLS1jcmlzcC1jb2xvci1zaGFkb3ctbm9ybWFsKSwgLjEyKSFpbXBvcnRhbnQ7cGFkZGluZzoxNnB4IWltcG9ydGFudDtwb3NpdGlvbjpyZWxhdGl2ZSFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1nZW5lcmFsX2VudGljZV0gLmNjLTU0cHhlIC5jYy0xZ2JydyAuY2MtMXE0OWR7cGFkZGluZy1pbmxpbmUtc3RhcnQ6NHB4IWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1nZW5lcmFsX2VudGljZV0gLmNjLTU0cHhlIC5jYy0xZ2JydyAuY2MtMXE0OWQgLmNjLTEzdHI5e2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1nZW5lcmFsX2VudGljZV0gLmNjLTU0cHhlIC5jYy0xZ2JydyAuY2MtMXE0OWQgLmNjLTEzdHI5IC5jYy0xbnp0OHtpbnNldC1pbmxpbmUtZW5kOjAhaW1wb3J0YW50O3otaW5kZXg6MSFpbXBvcnRhbnQ7ZGlzcGxheTpub25lIWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7dG9wOjUuNXB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1nZW5lcmFsX2VudGljZV0gLmNjLTU0cHhlIC5jYy0xZ2JydyAuY2MtMXE0OWQgLmNjLTEzdHI5IC5jYy0xdzNvc3t0ZXh0LWFsaWduOnN0YXJ0IWltcG9ydGFudDttYXJnaW4tYm90dG9tOjE2cHghaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPWdlbmVyYWxfZW50aWNlXSAuY2MtNTRweGUgLmNjLTFnYnJ3IC5jYy0xcTQ5ZCAuY2MtMTN0cjkgLmNjLTF3M29zIC5jYy0xOXJqOSwuY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1nZW5lcmFsX2VudGljZV0gLmNjLTU0cHhlIC5jYy0xZ2JydyAuY2MtMXE0OWQgLmNjLTEzdHI5IC5jYy0xdzNvcyAuY2MtMWlwcW17bGluZS1oZWlnaHQ6MTdweDtmb250LXNpemU6MTMuNnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1nZW5lcmFsX2VudGljZV0gLmNjLTU0cHhlIC5jYy0xZ2JydyAuY2MtMXE0OWQgLmNjLTEzdHI5IC5jYy0xdzNvcyAuY2MtMWsxbDN7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnQ7bWFyZ2luLXRvcDotNy41cHghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9Z2VuZXJhbF9lbnRpY2VdIC5jYy01NHB4ZSAuY2MtMWdicncgLmNjLTFxNDlkIC5jYy0xM3RyOSAuY2MtMXczb3MgLmNjLTFrMWwzIC5jYy0xOXJqOXtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwpKSFpbXBvcnRhbnQ7bGV0dGVyLXNwYWNpbmc6LjA1cHghaW1wb3J0YW50O3BhZGRpbmctaW5saW5lLWVuZDoyMnB4IWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1nZW5lcmFsX2VudGljZV0gLmNjLTU0cHhlIC5jYy0xZ2JydyAuY2MtMXE0OWQgLmNjLTEzdHI5IC5jYy0xdzNvcyAuY2MtMWlwcW17Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1ub3JtYWwpKSFpbXBvcnRhbnQ7bGV0dGVyLXNwYWNpbmc6LjFweCFpbXBvcnRhbnQ7dGV4dC1vdmVyZmxvdzplbGxpcHNpcyFpbXBvcnRhbnQ7d2hpdGUtc3BhY2U6bm93cmFwIWltcG9ydGFudDtmbGV4OjEhaW1wb3J0YW50O3BhZGRpbmc6MCAxcHghaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9Z2VuZXJhbF9lbnRpY2VdIC5jYy01NHB4ZSAuY2MtMWdicncgLmNjLTFxNDlkIC5jYy0xM3RyOSAuY2MtMXczb3MgLmNjLTFpcHFtW2RhdGEtaWQ9b25saW5lXTpiZWZvcmV7aGVpZ2h0OjhweDtjb250ZW50OiIiIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZWVuLWxpZ2h0KSkhaW1wb3J0YW50O291dGxpbmU6NHB4IHNvbGlkIHJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZWVuLWxpZ2h0KSwgLjIpIWltcG9ydGFudDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUhaW1wb3J0YW50O21hcmdpbi10b3A6LTJweCFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czo4cHghaW1wb3J0YW50O3dpZHRoOjhweCFpbXBvcnRhbnQ7bWFyZ2luLWlubGluZTo0cHggOXB4IWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9Z2VuZXJhbF9lbnRpY2VdIC5jYy01NHB4ZSAuY2MtMWdicncgLmNjLTFxNDlkIC5jYy0xM3RyOSAuY2MtMXczb3MgLmNjLTFweW1he2xpbmUtaGVpZ2h0OjA7ZmxleDpub25lIWltcG9ydGFudDttYXJnaW4taW5saW5lLXN0YXJ0OjVweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9Z2VuZXJhbF9lbnRpY2VdIC5jYy01NHB4ZSAuY2MtMWdicncgLmNjLTFxNDlkIC5jYy0xM3RyOSAuY2MtMXczb3MgLmNjLTFweW1hIC5jYy0xaHdxN3ttYXJnaW4taW5saW5lLXN0YXJ0Oi0xMXB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1nZW5lcmFsX2VudGljZV0gLmNjLTU0cHhlIC5jYy0xZ2JydyAuY2MtMXE0OWQgLmNjLTEzdHI5IC5jYy0xdzNvcyAuY2MtMXB5bWEgLmNjLTFod3E3OmZpcnN0LWNoaWxke21hcmdpbi1pbmxpbmUtc3RhcnQ6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9Z2VuZXJhbF9lbnRpY2VdIC5jYy01NHB4ZSAuY2MtMWdicncgLmNjLTFxNDlkIC5jYy0xM3RyOSAuY2MtMXczb3MgLmNjLTFweW1hIC5jYy0xaHdxNyAuY2MtZWY4amt7Ym9yZGVyLXN0eWxlOnNvbGlkIWltcG9ydGFudDtib3JkZXItd2lkdGg6MnB4IWltcG9ydGFudDtib3JkZXItY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPWdlbmVyYWxfZW50aWNlXSAuY2MtNTRweGUgLmNjLTFnYnJ3IC5jYy0xcTQ5ZCAuY2MtMTN0cjkgLmNjLTF3M29zIC5jYy0xcHltYSAuY2MtMWh3cTcgLmNjLWVmOGprLC5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPWdlbmVyYWxfZW50aWNlXSAuY2MtNTRweGUgLmNjLTFnYnJ3IC5jYy0xcTQ5ZCAuY2MtMTN0cjkgLmNjLTF3M29zIC5jYy0xcHltYSAuY2MtMWh3cTcgLmNjLWVmOGprIC5jYy0xdmpldntoZWlnaHQ6MjhweDtib3JkZXItcmFkaXVzOjI4cHghaW1wb3J0YW50O3dpZHRoOjI4cHghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1nZW5lcmFsX2VudGljZV0gLmNjLTU0cHhlIC5jYy0xZ2JydyAuY2MtZXo3eWp7cGFkZGluZy1yaWdodDo1N3B4IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPWdlbmVyYWxfZW50aWNlXSAuY2MtNTRweGUgLmNjLTFnYnJ3IC5jYy1lejd5aiAuY2MtMTcwaWd7aGVpZ2h0OjM4cHg7Ym9yZGVyLXJhZGl1czoxOXB4IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O21hcmdpbi1pbmxpbmUtZW5kOjZweCFpbXBvcnRhbnQ7cGFkZGluZzowIDE4cHghaW1wb3J0YW50O3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LHRyYW5zZm9ybSAuMTVzIGVhc2UtaW4tb3V0IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPWdlbmVyYWxfZW50aWNlXSAuY2MtNTRweGUgLmNjLTFnYnJ3IC5jYy1lejd5aiAuY2MtMTcwaWc6YWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDFweCkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPWdlbmVyYWxfZW50aWNlXSAuY2MtNTRweGUgLmNjLTFnYnJ3IC5jYy1lejd5aiAuY2MtMTcwaWc6bGFzdC1vZi10eXBle21hcmdpbi1pbmxpbmUtZW5kOjAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPWdlbmVyYWxfZW50aWNlXSAuY2MtNTRweGUgLmNjLTFnYnJ3IC5jYy1lejd5aiAuY2MtMTcwaWc6Zmlyc3QtY2hpbGR7ZmxleDoxIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1nZW5lcmFsX2VudGljZV0gLmNjLTU0cHhlIC5jYy0xZ2JydyAuY2MtZXo3eWogLmNjLTE3MGlnOm50aC1jaGlsZCgyKXtmbGV4Om5vbmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPWdlbmVyYWxfZW50aWNlXSAuY2MtNTRweGUgLmNjLTFnYnJ3IC5jYy1lejd5aiAuY2MtMTcwaWdbZGF0YS10eXBlPWNoYXRdIC5jYy1mN3h3b3tiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS1yZXZlcnNlKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPWdlbmVyYWxfZW50aWNlXSAuY2MtNTRweGUgLmNjLTFnYnJ3IC5jYy1lejd5aiAuY2MtMTcwaWdbZGF0YS10eXBlPWNoYXRdIC5jYy1pMjJ0ZHtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtcmV2ZXJzZSkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1nZW5lcmFsX2VudGljZV0gLmNjLTU0cHhlIC5jYy0xZ2JydyAuY2MtZXo3eWogLmNjLTE3MGlnW2RhdGEtdHlwZT1zZWFyY2hde2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1saWdodCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1nZW5lcmFsX2VudGljZV0gLmNjLTU0cHhlIC5jYy0xZ2JydyAuY2MtZXo3eWogLmNjLTE3MGlnW2RhdGEtdHlwZT1zZWFyY2hdOmhvdmVye2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsIHJnYmEodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LWxpZ2h0KSwgMSkgOTUlLCByZ2JhKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbm9ybWFsKSwgMSkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1nZW5lcmFsX2VudGljZV0gLmNjLTU0cHhlIC5jYy0xZ2JydyAuY2MtZXo3eWogLmNjLTE3MGlnW2RhdGEtdHlwZT1zZWFyY2hdOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBzcmdiLCByZ2JhKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1saWdodCksIDEpIDkzJSwgcmdiYSh2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCksIDEpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9Z2VuZXJhbF9lbnRpY2VdIC5jYy01NHB4ZSAuY2MtMWdicncgLmNjLWV6N3lqIC5jYy0xNzBpZ1tkYXRhLXR5cGU9c2VhcmNoXSAuY2MtZjd4d297LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjE2JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNiUyMDE2JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTMlMjA2LjVhNi40OCUyMDYuNDglMjAwJTIwMCUyMDEtMS4yNSUyMDMuODM1bDMuOTU3JTIwMy45NmExLjAwMiUyMDEuMDAyJTIwMCUyMDAlMjAxLTEuNDE2JTIwMS40MTVsLTMuOTU2LTMuOTZBNi41JTIwNi41JTIwMCUyMDAlMjAxJTIwMCUyMDYuNSUyMDYuNSUyMDYuNSUyMDAlMjAwJTIwMSUyMDYuNSUyMDAlMjA2LjUlMjA2LjUlMjAwJTIwMCUyMDElMjAxMyUyMDYuNU02LjUlMjAxMWE0LjUwMSUyMDQuNTAxJTIwMCUyMDAlMjAwJTIwMC05JTIwNC41MDElMjA0LjUwMSUyMDAlMjAwJTIwMCUyMDAlMjA5JTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9Z2VuZXJhbF9lbnRpY2VdIC5jYy01NHB4ZSAuY2MtMWdicncgLmNjLWV6N3lqIC5jYy0xNzBpZ1tkYXRhLXR5cGU9c2VhcmNoXSAuY2MtaTIydGR7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtYmxhY2stbm9ybWFsKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPWdlbmVyYWxfZW50aWNlXSAuY2MtNTRweGUgLmNjLTFnYnJ3IC5jYy1lejd5aiAuY2MtMTcwaWcgLmNjLWY3eHdve2hlaWdodDoxNnB4O2ZsZXg6bm9uZSFpbXBvcnRhbnQ7d2lkdGg6MTZweCFpbXBvcnRhbnQ7bWFyZ2luLWlubGluZS1lbmQ6OXB4IWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7bWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50O21hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7bWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1nZW5lcmFsX2VudGljZV0gLmNjLTU0cHhlIC5jYy0xZ2JydyAuY2MtZXo3eWogLmNjLTE3MGlnIC5jYy1pMjJ0ZHtsaW5lLWhlaWdodDoxOHB4O2xldHRlci1zcGFjaW5nOjAhaW1wb3J0YW50O3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXMhaW1wb3J0YW50O3doaXRlLXNwYWNlOm5vd3JhcCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDotMnB4IWltcG9ydGFudDtmb250LXNpemU6MTIuNHB4IWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPWdlbmVyYWxfZW50aWNlXTpob3ZlciAuY2MtNTRweGUgLmNjLTFnYnJ3IC5jYy0xcTQ5ZCAuY2MtMXczb3MgLmNjLTFweW1he29wYWNpdHk6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9Z2VuZXJhbF9lbnRpY2VdOmhvdmVyIC5jYy01NHB4ZSAuY2MtMWdicncgLmNjLTFxNDlkIC5jYy0xM3RyOSAuY2MtMW56dDh7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWd7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xYWdqanthbmltYXRpb24tbmFtZTpjYy1nbjU5ZzthbmltYXRpb24tZHVyYXRpb246LjJzO2FuaW1hdGlvbi1kZWxheTouM3M7YW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO21hcmdpbi1ib3R0b206N3B4IWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7Ym90dG9tOjEwMCUhaW1wb3J0YW50O3JpZ2h0OjAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xdHMzdntkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1uZXdfbWVzc2FnZXNdIC5jYy00a21hZyAuY2MtMXRzM3YgLmNjLTFrM3Zue21hcmdpbi1ib3R0b206N3B4IWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1uZXdfbWVzc2FnZXNdIC5jYy00a21hZyAuY2MtMXRzM3YgLmNjLTFrM3ZuLmNjLXI1Z2w1e2FuaW1hdGlvbi1uYW1lOmNjLWRtY3dpO2FuaW1hdGlvbi1kdXJhdGlvbjouM3M7YW5pbWF0aW9uLWZpbGwtbW9kZTpib3RofS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xdHMzdiAuY2MtMWszdm4uY2MtcjVnbDU6bnRoLWxhc3QtY2hpbGQoMil7YW5pbWF0aW9uLWRlbGF5OjE1bXN9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2bi5jYy1yNWdsNTpudGgtbGFzdC1jaGlsZCgzKXthbmltYXRpb24tZGVsYXk6MzBtc30uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1uZXdfbWVzc2FnZXNdIC5jYy00a21hZyAuY2MtMXRzM3YgLmNjLTFrM3ZuLmNjLXI1Z2w1Om50aC1sYXN0LWNoaWxkKDQpe2FuaW1hdGlvbi1kZWxheTo0NW1zfS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xdHMzdiAuY2MtMWszdm4uY2MtcjVnbDU6bnRoLWxhc3QtY2hpbGQoNSl7YW5pbWF0aW9uLWRlbGF5OjYwbXN9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2bjpsYXN0LW9mLXR5cGUgLmNjLTExbHpqIC5jYy1mb2RtOHtwYWRkaW5nLWxlZnQ6MTNweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2bjpsYXN0LW9mLXR5cGUgLmNjLTExbHpqIC5jYy1mb2RtOCAuY2MtMWp3OGkgLmNjLXpxcDdlLC5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xdHMzdiAuY2MtMWszdm46bGFzdC1vZi10eXBlIC5jYy0xMWx6aiAuY2MtZm9kbTggLmNjLTFqdzhpIC5jYy0xeTRsantkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1uZXdfbWVzc2FnZXNdIC5jYy00a21hZyAuY2MtMXRzM3YgLmNjLTFrM3ZuOm50aC1sYXN0LWNoaWxkKDIpIC5jYy0xMWx6aiAuY2MtZm9kbTh7b3BhY2l0eTouOSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2bjpudGgtbGFzdC1jaGlsZCgzKSAuY2MtMTFsemogLmNjLWZvZG04e29wYWNpdHk6LjghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xdHMzdiAuY2MtMWszdm46bnRoLWxhc3QtY2hpbGQoNCkgLmNjLTExbHpqIC5jYy1mb2RtOHtvcGFjaXR5Oi42IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1uZXdfbWVzc2FnZXNdIC5jYy00a21hZyAuY2MtMXRzM3YgLmNjLTFrM3ZuOm50aC1sYXN0LWNoaWxkKDUpIC5jYy0xMWx6aiAuY2MtZm9kbTh7b3BhY2l0eTouNSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2biAuY2MtMTFsemp7ZmxvYXQ6cmlnaHQhaW1wb3J0YW50O3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1uZXdfbWVzc2FnZXNdIC5jYy00a21hZyAuY2MtMXRzM3YgLmNjLTFrM3ZuIC5jYy0xMWx6ajpob3ZlcjpsYXN0LWNoaWxkIC5jYy1mb2RtOCwuY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1uZXdfbWVzc2FnZXNdIC5jYy00a21hZyAuY2MtMXRzM3YgLmNjLTFrM3ZuIC5jYy0xMWx6ajpob3ZlcjpudGgtbGFzdC1jaGlsZCgyKSAuY2MtZm9kbTgsLmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2biAuY2MtMTFsemo6aG92ZXI6bnRoLWxhc3QtY2hpbGQoMykgLmNjLWZvZG04LC5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xdHMzdiAuY2MtMWszdm4gLmNjLTExbHpqOmhvdmVyOm50aC1sYXN0LWNoaWxkKDQpIC5jYy1mb2RtOCwuY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1uZXdfbWVzc2FnZXNdIC5jYy00a21hZyAuY2MtMXRzM3YgLmNjLTFrM3ZuIC5jYy0xMWx6ajpob3ZlcjpudGgtbGFzdC1jaGlsZCg1KSAuY2MtZm9kbTgsLmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2biAuY2MtMTFsemo6YWN0aXZlOmxhc3QtY2hpbGQgLmNjLWZvZG04LC5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xdHMzdiAuY2MtMWszdm4gLmNjLTExbHpqOmFjdGl2ZTpudGgtbGFzdC1jaGlsZCgyKSAuY2MtZm9kbTgsLmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2biAuY2MtMTFsemo6YWN0aXZlOm50aC1sYXN0LWNoaWxkKDMpIC5jYy1mb2RtOCwuY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1uZXdfbWVzc2FnZXNdIC5jYy00a21hZyAuY2MtMXRzM3YgLmNjLTFrM3ZuIC5jYy0xMWx6ajphY3RpdmU6bnRoLWxhc3QtY2hpbGQoNCkgLmNjLWZvZG04LC5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xdHMzdiAuY2MtMWszdm4gLmNjLTExbHpqOmFjdGl2ZTpudGgtbGFzdC1jaGlsZCg1KSAuY2MtZm9kbTh7b3BhY2l0eToxIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1uZXdfbWVzc2FnZXNdIC5jYy00a21hZyAuY2MtMXRzM3YgLmNjLTFrM3ZuIC5jYy0xMWx6ajpob3ZlciAuY2MtZm9kbTh7Ym94LXNoYWRvdzowIDNweCAxMnB4IDAgcmdiKHZhcigtLWNyaXNwLWNvbG9yLXNoYWRvdy1ub3JtYWwpLCAuMikhaW1wb3J0YW50O3RyYW5zZm9ybTpzY2FsZSgxLjAxNSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xdHMzdiAuY2MtMWszdm4gLmNjLTExbHpqOmFjdGl2ZSAuY2MtZm9kbTh7dHJhbnNmb3JtOnNjYWxlKC45ODUpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1uZXdfbWVzc2FnZXNdIC5jYy00a21hZyAuY2MtMXRzM3YgLmNjLTFrM3ZuIC5jYy0xMWx6aiAuY2MtZm9kbTh7bWF4LWhlaWdodDoyNjBweDtiYWNrZ3JvdW5kOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbCkpIWltcG9ydGFudDtib3JkZXI6LjVweCBzb2xpZCByZ2IodmFyKC0tY3Jpc3AtY29sb3Itc2VwYXJhdG9yLW5vcm1hbCkpIWltcG9ydGFudDt0ZXh0LWFsaWduOnN0YXJ0IWltcG9ydGFudDttYXgtd2lkdGg6MzAwcHghaW1wb3J0YW50O2JveC1zaGFkb3c6MCAycHggOHB4IDAgcmdiKHZhcigtLWNyaXNwLWNvbG9yLXNoYWRvdy1ub3JtYWwpLCAuMDQpLCAwIDAgNnB4IDAgcmdiKHZhcigtLWNyaXNwLWNvbG9yLXNoYWRvdy1ub3JtYWwpLCAuMDMpIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjhweCFpbXBvcnRhbnQ7cGFkZGluZzoxMXB4IDE0cHggMTJweCFpbXBvcnRhbnQ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE1cyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXQsb3BhY2l0eSAuMTVzIGVhc2UtaW4tb3V0IWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDtwb3NpdGlvbjpyZWxhdGl2ZSFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1uZXdfbWVzc2FnZXNdIC5jYy00a21hZyAuY2MtMXRzM3YgLmNjLTFrM3ZuIC5jYy0xMWx6aiAuY2MtZm9kbTggLmNjLTFhb3F0e2hlaWdodDoxNXB4O2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbCksIC44KSAwJSwgcmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSwgMCkgMTAwJSkhaW1wb3J0YW50O2luc2V0LWlubGluZTowIWltcG9ydGFudDt6LWluZGV4OjEhaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDtib3R0b206MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2biAuY2MtMTFsemogLmNjLWZvZG04IC5jYy0xanc4aXtnYXA6OHB4IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xdHMzdiAuY2MtMWszdm4gLmNjLTExbHpqIC5jYy1mb2RtOCAuY2MtMWp3OGkgLmNjLXpxcDdle2JveC1zaGFkb3c6MCAxcHggMnB4IDAgcmdiKHZhcigtLWNyaXNwLWNvbG9yLXNoYWRvdy1ub3JtYWwpLCAuMDIpIWltcG9ydGFudDtmbGV4Om5vbmUhaW1wb3J0YW50O2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2biAuY2MtMTFsemogLmNjLWZvZG04IC5jYy0xanc4aSAuY2MtenFwN2UsLmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2biAuY2MtMTFsemogLmNjLWZvZG04IC5jYy0xanc4aSAuY2MtenFwN2UgLmNjLWViNGE4e2hlaWdodDoyNHB4O2JvcmRlci1yYWRpdXM6MjRweCFpbXBvcnRhbnQ7d2lkdGg6MjRweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2biAuY2MtMTFsemogLmNjLWZvZG04IC5jYy0xanc4aSAuY2MtenFwN2UgLmNjLWViNGE4e2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xdHMzdiAuY2MtMWszdm4gLmNjLTExbHpqIC5jYy1mb2RtOCAuY2MtMWp3OGkgLmNjLTF5NGxqe2xpbmUtaGVpZ2h0OjE0cHg7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtYmxhY2stbm9ybWFsKSkhaW1wb3J0YW50O2xldHRlci1zcGFjaW5nOjAhaW1wb3J0YW50O21hcmdpbi10b3A6MTBweCFpbXBvcnRhbnQ7Zm9udC1zaXplOjExcHghaW1wb3J0YW50O2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2biAuY2MtMTFsemogLmNjLWZvZG04IC5jYy0xanc4aSAuY2MtMTN0dzZ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2biAuY2MtMTFsemogLmNjLWZvZG04IC5jYy0xanc4aSAuY2MtMTN0dzYsLmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2biAuY2MtMTFsemogLmNjLWZvZG04IC5jYy0xanc4aSAuY2MtMTN0dzYgLmNjLTFoMHl4LC5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xdHMzdiAuY2MtMWszdm4gLmNjLTExbHpqIC5jYy1mb2RtOCAuY2MtMWp3OGkgLmNjLTEzdHc2IC5jYy0xZ2V1ZHtsaW5lLWhlaWdodDoxN3B4O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDt0ZXh0LWFsaWduOmp1c3RpZnkhaW1wb3J0YW50Oy13ZWJraXQtaHlwaGVuczphdXRvIWltcG9ydGFudDtoeXBoZW5zOmF1dG8haW1wb3J0YW50O3dvcmQtYnJlYWs6bm9ybWFsIWltcG9ydGFudDtvdmVyZmxvdy13cmFwOmFueXdoZXJlIWltcG9ydGFudDtsZXR0ZXItc3BhY2luZzowIWltcG9ydGFudDtmb250LXNpemU6MTJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2biAuY2MtMTFsemogLmNjLWZvZG04IC5jYy0xanc4aSAuY2MtMTN0dzYgLmNjLTFoMHl4LC5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xdHMzdiAuY2MtMWszdm4gLmNjLTExbHpqIC5jYy1mb2RtOCAuY2MtMWp3OGkgLmNjLTEzdHc2IC5jYy0xZ2V1ZHtwb2ludGVyLWV2ZW50czpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1uZXdfbWVzc2FnZXNdIC5jYy00a21hZyAuY2MtMXRzM3YgLmNjLTFrM3ZuIC5jYy0xMWx6aiAuY2MtZm9kbTggLmNjLTFqdzhpIC5jYy0xM3R3NiAuY2MtMWgweXh7d29yZC1icmVhazpicmVhay1hbGwhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xdHMzdiAuY2MtMWszdm4gLmNjLTExbHpqIC5jYy1mb2RtOCAuY2MtMWp3OGkgLmNjLTEzdHc2IC5jYy0xZ2V1ZC5jYy1oNnkxeVtkYXRhLXR5cGU9XCNde2xpbmUtaGVpZ2h0OjMycHg7Zm9udC1zaXplOjI4LjhweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2biAuY2MtMTFsemogLmNjLWZvZG04IC5jYy0xanc4aSAuY2MtMTN0dzYgLmNjLTFnZXVkLmNjLWg2eTF5W2RhdGEtdHlwZT0iIyMiXXtsaW5lLWhlaWdodDoyOHB4O2ZvbnQtc2l6ZToyNS42cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xdHMzdiAuY2MtMWszdm4gLmNjLTExbHpqIC5jYy1mb2RtOCAuY2MtMWp3OGkgLmNjLTEzdHc2IC5jYy0xZ2V1ZC5jYy1oNnkxeVtkYXRhLXR5cGU9IiMjIyJde2xpbmUtaGVpZ2h0OjI0cHg7Zm9udC1zaXplOjIyLjRweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2biAuY2MtMTFsemogLmNjLWZvZG04IC5jYy0xanc4aSAuY2MtMTN0dzYgLmNjLTFnZXVkLmNjLWg2eTF5W2RhdGEtdHlwZT0iIyMjIyJde2xpbmUtaGVpZ2h0OjI0cHg7Zm9udC1zaXplOjE5LjJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2biAuY2MtMTFsemogLmNjLWZvZG04IC5jYy0xanc4aSAuY2MtMTN0dzYgLmNjLTFnZXVkLmNjLWg2eTF5W2RhdGEtdHlwZT0iIyMjIyMiXXtsaW5lLWhlaWdodDoyMHB4O2ZvbnQtc2l6ZToxNnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1uZXdfbWVzc2FnZXNdIC5jYy00a21hZyAuY2MtMXRzM3YgLmNjLTFrM3ZuIC5jYy0xMWx6aiAuY2MtZm9kbTggLmNjLTFqdzhpIC5jYy0xM3R3NiAuY2MtMWdldWQuY2MtaDZ5MXlbZGF0YS10eXBlPSIjIyMjIyMiXXtsaW5lLWhlaWdodDoxNnB4O2ZvbnQtc2l6ZToxMi44cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xdHMzdiAuY2MtMWszdm4gLmNjLTExbHpqIC5jYy1mb2RtOCAuY2MtMWp3OGkgLmNjLTEzdHc2IC5jYy1zaHlvZFtkYXRhLXNpemU9bGFyZ2Vde21hcmdpbi1ib3R0b206LTRweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2biAuY2MtMTFsemogLmNjLWZvZG04IC5jYy0xanc4aSAuY2MtMTN0dzYgLmNjLWI0eTg3e2hlaWdodDo4MHB4O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS11bHRyYS1saWdodCkpIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOmNvdmVyIWltcG9ydGFudDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6Y292ZXIhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6OHB4IWltcG9ydGFudDt3aWR0aDoxODBweCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNTRweGV7bWFyZ2luLXRvcDoxNHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1uZXdfbWVzc2FnZXNdIC5jYy01NHB4ZSAuY2MtMWdicnd7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtNTAwKSkhaW1wb3J0YW50O3RyYW5zaXRpb246dHJhbnNmb3JtIC4xNXMgZWFzZS1pbi1vdXQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTU0cHhlIC5jYy0xZ2Jydzpob3Zlcjpob3Zlcntib3gtc2hhZG93OjAgM3B4IDhweCAwIHJnYih2YXIoLS1jcmlzcC1jb2xvci1zaGFkb3ctbm9ybWFsKSwgLjEyNSkhaW1wb3J0YW50O3RyYW5zZm9ybTpzY2FsZSgxLjAxKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNTRweGUgLmNjLTFnYnJ3OmhvdmVyOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjk4NSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTU0cHhlIC5jYy0xZ2JydyAuY2MtMXQyZm97aGVpZ2h0OjE2cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtcmV2ZXJzZSkpIWltcG9ydGFudDtmbGV4Om5vbmUhaW1wb3J0YW50O3dpZHRoOjE2cHghaW1wb3J0YW50O21hcmdpbi1pbmxpbmUtZW5kOjEwcHghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDstd2Via2l0LW1hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDttYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7bWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50Oy13ZWJraXQtbWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDttYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTU0cHhlIC5jYy0xZ2JydyAuY2MtMXV2dnV7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLXJldmVyc2UpKSFpbXBvcnRhbnQ7dGV4dC1hbGlnbjpzdGFydCFpbXBvcnRhbnQ7dHJhbnNpdGlvbjpjb2xvciAuMXMgZWFzZS1pbi1vdXQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZCAuY2MtNTRweGV7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkIC5jYy01NHB4ZSAuY2MtMWdicnd7aGVpZ2h0OjM3cHg7bGluZS1oZWlnaHQ6MzVweDtsZXR0ZXItc3BhY2luZzouMXB4IWltcG9ydGFudDt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7LXdlYmtpdC1oeXBoZW5zOmF1dG8haW1wb3J0YW50O2h5cGhlbnM6YXV0byFpbXBvcnRhbnQ7ZmxvYXQ6cmlnaHQhaW1wb3J0YW50O3otaW5kZXg6MSFpbXBvcnRhbnQ7cGFkZGluZzowIDIycHghaW1wb3J0YW50O2ZvbnQtc2l6ZToxMi44cHghaW1wb3J0YW50O3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZCAuY2MtMWh1ZXl7aGVpZ2h0OjIycHg7bGluZS1oZWlnaHQ6MDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCksIC40KSFpbXBvcnRhbnQ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O3dpZHRoOjIycHghaW1wb3J0YW50O2JveC1zaGFkb3c6MCAxcHggNHB4IDAgcmdiKHZhcigtLWNyaXNwLWNvbG9yLXNoYWRvdy1ub3JtYWwpLCAuMDYpIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjIycHghaW1wb3J0YW50O3RyYW5zaXRpb246dHJhbnNmb3JtIC4xNXMgbGluZWFyIWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkIC5jYy0xaHVleSwuY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emQgLmNjLTFodWV5OmFmdGVye2N1cnNvcjpwb2ludGVyIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emQgLmNjLTFodWV5OmhvdmVye3RyYW5zZm9ybTpzY2FsZSgxLjAyNSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZCAuY2MtMWh1ZXk6YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTc1KSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkIC5jYy0xaHVleTphZnRlcnstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyOCUyMiUyMGhlaWdodCUzRCUyMjglMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA4JTIwOCUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTcuOTk3LjU3M2EuNTcuNTclMjAwJTIwMCUyMDAtLjk3OS0uMzk4TDQlMjAzLjE5NC45ODIuMTc1YS41Ny41NyUyMDAlMjAxJTIwMC0uODA3LjgwN0wzLjE5NCUyMDQlMjAuMTc1JTIwNy4wMThhLjU3LjU3JTIwMCUyMDElMjAwJTIwLjgwNy44MDZMNCUyMDQuODA2bDMuMDE4JTIwMy4wMThhLjU3LjU3JTIwMCUyMDElMjAwJTIwLjgwNi0uODA2TDQuODA2JTIwNCUyMDcuODI0Ljk4MmEuNTcuNTclMjAwJTIwMCUyMDAlMjAuMTczLS40MSUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7aGVpZ2h0OjhweDtjb250ZW50OiIiIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LXdoaXRlLW5vcm1hbCkpIWltcG9ydGFudDt3aWR0aDo4cHghaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXJnaW4tdG9wOjdweCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50Oy13ZWJraXQtbWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O21hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDstd2Via2l0LW1hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDttYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50O21hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2hbZGF0YS1mdWxsLXZpZXc9dHJ1ZV0gLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pke2JvdHRvbTo4MHB4IWltcG9ydGFudDtyaWdodDoxNHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aFtkYXRhLWZ1bGwtdmlldz10cnVlXSAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1nZW5lcmFsX2VudGljZV17dmlzaWJpbGl0eTpoaWRkZW4haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoW2RhdGEtZnVsbC12aWV3PXRydWVdIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xYWdqantvcGFjaXR5OjEhaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoW2RhdGEtZnVsbC12aWV3PXRydWVdIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xdHMzdiAuY2MtMWszdm57ZGlzcGxheTpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aFtkYXRhLWZ1bGwtdmlldz10cnVlXSAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1uZXdfbWVzc2FnZXNdIC5jYy00a21hZyAuY2MtMXRzM3YgLmNjLTFrM3ZuOmxhc3QtY2hpbGQsLmNyaXNwLWNsaWVudCAuY2MtMTY1d2hbZGF0YS1mdWxsLXZpZXc9dHJ1ZV0gLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTF0czN2IC5jYy0xazN2bjpudGgtbGFzdC1jaGlsZCgyKXtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aFtkYXRhLWZ1bGwtdmlldz10cnVlXSAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1uZXdfbWVzc2FnZXNdIC5jYy00a21hZyAuY2MtMXRzM3YgLmNjLTFrM3ZuIC5jYy0xMWx6aiAuY2MtZm9kbTh7bWF4LWhlaWdodDoxNDBweDttYXgtd2lkdGg6MjYwcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoW2RhdGEtZnVsbC12aWV3PXRydWVdIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xdHMzdiAuY2MtMWszdm4gLmNjLTExbHpqIC5jYy1mb2RtOCAuY2MtMWp3OGkgLmNjLXpxcDdle2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2hbZGF0YS1mdWxsLXZpZXc9dHJ1ZV0gLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNTRweGV7bWFyZ2luLXRvcDo4cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoW2RhdGEtYXZhaWxhYmlsaXR5LXRvb2x0aXA9ZmFsc2VdIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPWdlbmVyYWxfZW50aWNlXSwuY3Jpc3AtY2xpZW50IC5jYy0xNjV3aFtkYXRhLWF2YWlsYWJpbGl0eS10b29sdGlwPXRydWVdW2RhdGEtYXZhaWxhYmlsaXR5PWF3YXldIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPWdlbmVyYWxfZW50aWNlXVtkYXRhLXdpdGgtaGVscGRlc2s9ZmFsc2VdLC5jcmlzcC1jbGllbnQgLmNjLTE2NXdoW2RhdGEtYXZhaWxhYmlsaXR5LXRvb2x0aXA9dHJ1ZV0gLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9Z2VuZXJhbF9lbnRpY2VdW2RhdGEtaXMtY29uY2VhbGVkPXRydWVde3Zpc2liaWxpdHk6aGlkZGVuIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aFtkYXRhLXBvc2l0aW9uLXJldmVyc2U9dHJ1ZV0gLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pke21hcmdpbi1sZWZ0OnZhcigtLWNyaXNwLWN1c3RvbWl6YXRpb24tYnV0dG9uLWhvcml6b250YWwpIWltcG9ydGFudDtsZWZ0OjI0cHghaW1wb3J0YW50O3JpZ2h0OmF1dG8haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoW2RhdGEtcG9zaXRpb24tcmV2ZXJzZT10cnVlXSAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emRbZGF0YS1pZD1nZW5lcmFsX2VudGljZV17bWFyZ2luLWxlZnQ6Y2FsYygtOHB4ICsgdmFyKC0tY3Jpc3AtY3VzdG9taXphdGlvbi1idXR0b24taG9yaXpvbnRhbCkpIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2hbZGF0YS1wb3NpdGlvbi1yZXZlcnNlPXRydWVdIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPWdlbmVyYWxfZW50aWNlXSAuY2MtNTRweGUgLmNjLTFnYnJ3IC5jYy1lejd5antwYWRkaW5nLWxlZnQ6NTdweCFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDowIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aFtkYXRhLXBvc2l0aW9uLXJldmVyc2U9dHJ1ZV0gLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pkW2RhdGEtaWQ9bmV3X21lc3NhZ2VzXSAuY2MtNGttYWcgLmNjLTFhZ2pqe2xlZnQ6MCFpbXBvcnRhbnQ7cmlnaHQ6YXV0byFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2hbZGF0YS1wb3NpdGlvbi1yZXZlcnNlPXRydWVdIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xdHMzdiAuY2MtMWszdm4uY2MtcjVnbDV7YW5pbWF0aW9uLW5hbWU6Y2MtMTVodjd9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2hbZGF0YS1wb3NpdGlvbi1yZXZlcnNlPXRydWVdIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTExcDRwIC5jYy1sNHd6ZFtkYXRhLWlkPW5ld19tZXNzYWdlc10gLmNjLTRrbWFnIC5jYy0xdHMzdiAuY2MtMWszdm4gLmNjLTExbHpqLC5jcmlzcC1jbGllbnQgLmNjLTE2NXdoW2RhdGEtcG9zaXRpb24tcmV2ZXJzZT10cnVlXSAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xMXA0cCAuY2MtbDR3emQgLmNjLTU0cHhlIC5jYy0xZ2Jyd3tmbG9hdDpsZWZ0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aFtkYXRhLXBvc2l0aW9uLXJldmVyc2U9dHJ1ZV1bZGF0YS1mdWxsLXZpZXc9dHJ1ZV0gLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMTFwNHAgLmNjLWw0d3pke2xlZnQ6MTRweCFpbXBvcnRhbnQ7cmlnaHQ6YXV0byFpbXBvcnRhbnR9LmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm97bWFyZ2luLWJvdHRvbTp2YXIoLS1jcmlzcC1jdXN0b21pemF0aW9uLWJ1dHRvbi12ZXJ0aWNhbCkhaW1wb3J0YW50O21hcmdpbi1yaWdodDp2YXIoLS1jcmlzcC1jdXN0b21pemF0aW9uLWJ1dHRvbi1ob3Jpem9udGFsKSFpbXBvcnRhbnR9LmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTFnZmt6e2hlaWdodDo1NHB4O3otaW5kZXg6MSFpbXBvcnRhbnQ7d2lkdGg6NTRweCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50fS5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xZ2Zrei5jYy14cHJpaXtjdXJzb3I6bm90LWFsbG93ZWQhaW1wb3J0YW50fS5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xZ2Zrei5jYy14cHJpaSAuY2MtMmdrNm97cG9pbnRlci1ldmVudHM6bm9uZSFpbXBvcnRhbnR9LmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTFnZmt6IC5jYy0yZ2s2b3toZWlnaHQ6MTAwJTt3aWR0aDoxMDAlIWltcG9ydGFudDtib3gtc2hhZG93OjAgNHB4IDEwcHggMCByZ2IodmFyKC0tY3Jpc3AtY29sb3Itc2hhZG93LW5vcm1hbCksIC4wNSkhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTAwJSFpbXBvcnRhbnQ7b3V0bGluZTowIHNvbGlkICMwMDAwIWltcG9ydGFudDt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjFzIGxpbmVhcixvdXRsaW5lIC4xNXMgZWFzZS1pbi1vdXQsdHJhbnNmb3JtIC4xNXMgZWFzZS1pbi1vdXQhaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xZ2ZreiAuY2MtMmdrNm9bZGF0YS1pZD1jaGF0X29wZW5lZF0sLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTFnZmt6IC5jYy0yZ2s2b1tkYXRhLWlkPWNoYXRfY2xvc2VkXXtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS01MDApKSFpbXBvcnRhbnR9LmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTFnZmt6IC5jYy0yZ2s2b1tkYXRhLWlkPWluX2ZhaWx1cmVde2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1kYXJrKSkhaW1wb3J0YW50fS5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xZ2ZreiAuY2MtMmdrNm8gLmNjLTFvdXJnLC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xZ2ZreiAuY2MtMmdrNm8gLmNjLTFlcjBxe3otaW5kZXg6MiFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50fS5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xZ2ZreiAuY2MtMmdrNm8gLmNjLTFvdXJne3RvcDoxNXB4IWltcG9ydGFudDtsZWZ0OjE1cHghaW1wb3J0YW50fS5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xZ2ZreiAuY2MtMmdrNm8gLmNjLTFvdXJnIC5jYy16MXNyOXtoZWlnaHQ6MjBweDtib3JkZXItd2lkdGg6MnB4IWltcG9ydGFudDt3aWR0aDoyMHB4IWltcG9ydGFudH0uY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMWdma3ogLmNjLTJnazZvIC5jYy0xZXIwcSAuY2MtYTg3bHJ7ZGlzcGxheTpub25lIWltcG9ydGFudH0uY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMWdma3ogLmNjLTJnazZvIC5jYy0xZXIwcSAuY2MtYTg3bHIsLmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTFnZmt6IC5jYy0yZ2s2byAuY2MtMWVyMHEgLmNjLWE4N2xyIC5jYy0xeDhpd3toZWlnaHQ6MTAwJTtib3JkZXItcmFkaXVzOjU0cHghaW1wb3J0YW50O3dpZHRoOjEwMCUhaW1wb3J0YW50fS5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xZ2ZreiAuY2MtMmdrNm8gLmNjLTFlcjBxIC5jYy1hODdsciAuY2MtMXg4aXd7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTFnZmt6IC5jYy0xbnZ4MywuY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMWdma3ogLmNjLTF4em1ke2hlaWdodDoxNnB4O2JvcmRlci1yYWRpdXM6MTZweCFpbXBvcnRhbnQ7d2lkdGg6MTZweCFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O2JvdHRvbTotMnB4IWltcG9ydGFudDtyaWdodDoxcHghaW1wb3J0YW50fS5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xZ2ZreiAuY2MtMW52eDN7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWwpKSFpbXBvcnRhbnQ7ei1pbmRleDozIWltcG9ydGFudDtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xZ2ZreiAuY2MtMXh6bWR7bGluZS1oZWlnaHQ6MTVweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXJlZC1ub3JtYWwpKSFpbXBvcnRhbnQ7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtd2hpdGUtbm9ybWFsLWZpeGVkKSkhaW1wb3J0YW50O3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDtsZXR0ZXItc3BhY2luZzowIWltcG9ydGFudDt6LWluZGV4OjQhaW1wb3J0YW50O2ZvbnQtc2l6ZToxMC40cHghaW1wb3J0YW50fS5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xZ2ZreltkYXRhLWhhcy11bnJlYWQ9dHJ1ZV0gLmNjLTJnazZvey13ZWJraXQtbWFzazpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IGNhbGMoMTAwJSAtIDlweCkgY2FsYygxMDAlIC0gNnB4KSwjMDAwMCAxMHB4LCMwMDAgMTBweCkhaW1wb3J0YW50O21hc2s6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCBjYWxjKDEwMCUgLSA5cHgpIGNhbGMoMTAwJSAtIDZweCksIzAwMDAgMTBweCwjMDAwIDEwcHgpIWltcG9ydGFudH0uY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dyb1tkYXRhLW1heGltaXplZD1mYWxzZV0gLmNjLTFnZmt6IC5jYy0yZ2s2byAuY2MtMWVyMHF7dmlzaWJpbGl0eTp2aXNpYmxlIWltcG9ydGFudH0uY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dyb1tkYXRhLWlzLWZhaWx1cmU9ZmFsc2VdIC5jYy0xZ2ZreiAuY2MtMmdrNm86YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTY1KSFpbXBvcnRhbnR9LmNjLTE2NXdoW2RhdGEtZnVsbC12aWV3PWZhbHNlXVtkYXRhLXBvc2l0aW9uLXJldmVyc2U9dHJ1ZV0gLmNjLWxrNDJ1IC5jYy0xM3dyb3ttYXJnaW4tbGVmdDp2YXIoLS1jcmlzcC1jdXN0b21pemF0aW9uLWJ1dHRvbi1ob3Jpem9udGFsKSFpbXBvcnRhbnR9LmNjLTE2NXdoW2RhdGEtZnVsbC12aWV3PWZhbHNlXVtkYXRhLXdlYnNpdGUtbG9nbz1mYWxzZV1bZGF0YS1sYXN0LW9wZXJhdG9yLWZhY2U9ZmFsc2VdIC5jYy1sazQydSAuY2MtMTN3cm9bZGF0YS1hbmltYXRlLW1pbmltaXplPXRydWVdIC5jYy0xZ2ZreltkYXRhLWlzLW9uZ29pbmc9ZmFsc2VdIC5jYy0yZ2s2byAuY2MtMWVyMHF7YW5pbWF0aW9uLW5hbWU6Y2MtaTY2ZGc7YW5pbWF0aW9uLWR1cmF0aW9uOi4yczthbmltYXRpb24tZGVsYXk6NTBtczthbmltYXRpb24tZmlsbC1tb2RlOmJvdGh9LmNjLTE2NXdoW2RhdGEtZnVsbC12aWV3PWZhbHNlXVtkYXRhLXdlYnNpdGUtbG9nbz1mYWxzZV1bZGF0YS1sYXN0LW9wZXJhdG9yLWZhY2U9ZmFsc2VdIC5jYy1sazQydSAuY2MtMTN3cm9bZGF0YS1hbmltYXRlLW1heGltaXplPXRydWVdIC5jYy0xZ2ZreltkYXRhLWlzLW9uZ29pbmc9ZmFsc2VdIC5jYy0yZ2s2byAuY2MtMWVyMHF7YW5pbWF0aW9uLW5hbWU6Y2MtMTlqaXg7YW5pbWF0aW9uLWR1cmF0aW9uOi4xNXM7YW5pbWF0aW9uLWZpbGwtbW9kZTpib3RofS5jYy0xNjV3aFtkYXRhLXdlYnNpdGUtbG9nbz10cnVlXSAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xZ2ZreiAuY2MtMmdrNm8gLmNjLTFlcjBxLC5jYy0xNjV3aFtkYXRhLWxhc3Qtb3BlcmF0b3ItZmFjZT10cnVlXSAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xZ2ZreiAuY2MtMmdrNm8gLmNjLTFlcjBxe2luc2V0OjAhaW1wb3J0YW50fS5jYy0xNjV3aFtkYXRhLXdlYnNpdGUtbG9nbz10cnVlXSAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xZ2ZreiAuY2MtMmdrNm8gLmNjLTFlcjBxIC5jYy1hODdsciwuY2MtMTY1d2hbZGF0YS1sYXN0LW9wZXJhdG9yLWZhY2U9dHJ1ZV0gLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMWdma3ogLmNjLTJnazZvIC5jYy0xZXIwcSAuY2MtYTg3bHJ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNjLTE2NXdoW2RhdGEtd2Vic2l0ZS1sb2dvPWZhbHNlXVtkYXRhLWxhc3Qtb3BlcmF0b3ItZmFjZT1mYWxzZV1bZGF0YS1vbmdvaW5nLW9wZXJhdG9yLWZhY2U9ZmFsc2VdW2RhdGEtZnVsbC12aWV3PWZhbHNlXSAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xZ2ZreiAuY2MtMmdrNm9bZGF0YS1pZD1jaGF0X29wZW5lZF06aG92ZXIsLmNjLTE2NXdoW2RhdGEtd2Vic2l0ZS1sb2dvPWZhbHNlXVtkYXRhLWxhc3Qtb3BlcmF0b3ItZmFjZT1mYWxzZV1bZGF0YS1vbmdvaW5nLW9wZXJhdG9yLWZhY2U9ZmFsc2VdW2RhdGEtZnVsbC12aWV3PWZhbHNlXSAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xZ2ZreiAuY2MtMmdrNm9bZGF0YS1pZD1jaGF0X2Nsb3NlZF06aG92ZXJ7b3V0bGluZS13aWR0aDo1cHghaW1wb3J0YW50O291dGxpbmUtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLTUwMCksIC4xNSkhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLTYwMCkpIWltcG9ydGFudH0uY2MtMTY1d2hbZGF0YS13ZWJzaXRlLWxvZ289ZmFsc2VdW2RhdGEtbGFzdC1vcGVyYXRvci1mYWNlPWZhbHNlXVtkYXRhLW9uZ29pbmctb3BlcmF0b3ItZmFjZT1mYWxzZV1bZGF0YS1mdWxsLXZpZXc9ZmFsc2VdIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTFnZmt6IC5jYy0yZ2s2b1tkYXRhLWlkPWNoYXRfb3BlbmVkXTpob3ZlcjphY3RpdmUsLmNjLTE2NXdoW2RhdGEtd2Vic2l0ZS1sb2dvPWZhbHNlXVtkYXRhLWxhc3Qtb3BlcmF0b3ItZmFjZT1mYWxzZV1bZGF0YS1vbmdvaW5nLW9wZXJhdG9yLWZhY2U9ZmFsc2VdW2RhdGEtZnVsbC12aWV3PWZhbHNlXSAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xZ2ZreiAuY2MtMmdrNm9bZGF0YS1pZD1jaGF0X2Nsb3NlZF06aG92ZXI6YWN0aXZle291dGxpbmUtd2lkdGg6M3B4IWltcG9ydGFudH0uY2MtMTY1d2hbZGF0YS13ZWJzaXRlLWxvZ289ZmFsc2VdW2RhdGEtbGFzdC1vcGVyYXRvci1mYWNlPWZhbHNlXVtkYXRhLWZ1bGwtdmlldz1mYWxzZV0gLmNjLWxrNDJ1IC5jYy0xM3dyb1tkYXRhLW1heGltaXplZD10cnVlXSAuY2MtMWdma3pbZGF0YS1pcy1vbmdvaW5nPWZhbHNlXSAuY2MtMmdrNm8gLmNjLTFlcjBxe2hlaWdodDoyMnB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUyMHdpZHRoJTNEJTIyMjQlMjIlMjBoZWlnaHQlM0QlMjIyNCUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlM0NkZWZzJTNFJTNDZmlsdGVyJTIwaWQlM0QlMjJjJTIyJTIwd2lkdGglM0QlMjIxMzcuNCUyNSUyMiUyMGhlaWdodCUzRCUyMjEzNy40JTI1JTIyJTIweCUzRCUyMi0xOC43JTI1JTIyJTIweSUzRCUyMi0xMy40JTI1JTIyJTNFJTNDZmVPZmZzZXQlMjBkeSUzRCUyMjElMjIlMjBpbiUzRCUyMlNvdXJjZUFscGhhJTIyJTIwcmVzdWx0JTNEJTIyc2hhZG93T2Zmc2V0T3V0ZXIxJTIyJTJGJTNFJTNDZmVHYXVzc2lhbkJsdXIlMjBpbiUzRCUyMnNoYWRvd09mZnNldE91dGVyMSUyMiUyMHJlc3VsdCUzRCUyMnNoYWRvd0JsdXJPdXRlcjElMjIlMjBzdGREZXZpYXRpb24lM0QlMjIxJTIyJTJGJTNFJTNDZmVDb2xvck1hdHJpeCUyMGluJTNEJTIyc2hhZG93Qmx1ck91dGVyMSUyMiUyMHZhbHVlcyUzRCUyMjAlMjAwJTIwMCUyMDAlMjAwJTIwMCUyMDAlMjAwJTIwMCUyMDAlMjAwJTIwMCUyMDAlMjAwJTIwMCUyMDAlMjAwJTIwMCUyMDAuMDclMjAwJTIyJTJGJTNFJTNDJTJGZmlsdGVyJTNFJTNDZmlsdGVyJTIwaWQlM0QlMjJlJTIyJTIwd2lkdGglM0QlMjIxNDguMSUyNSUyMiUyMGhlaWdodCUzRCUyMjE0OC4xJTI1JTIyJTIweCUzRCUyMi0yNC4xJTI1JTIyJTIweSUzRCUyMi0xOC43JTI1JTIyJTNFJTNDZmVNb3JwaG9sb2d5JTIwaW4lM0QlMjJTb3VyY2VBbHBoYSUyMiUyMHJhZGl1cyUzRCUyMjElMjIlMjByZXN1bHQlM0QlMjJzaGFkb3dTcHJlYWRJbm5lcjElMjIlMkYlM0UlM0NmZUdhdXNzaWFuQmx1ciUyMGluJTNEJTIyc2hhZG93U3ByZWFkSW5uZXIxJTIyJTIwcmVzdWx0JTNEJTIyc2hhZG93Qmx1cklubmVyMSUyMiUyMHN0ZERldmlhdGlvbiUzRCUyMjIlMjIlMkYlM0UlM0NmZU9mZnNldCUyMGluJTNEJTIyc2hhZG93Qmx1cklubmVyMSUyMiUyMHJlc3VsdCUzRCUyMnNoYWRvd09mZnNldElubmVyMSUyMiUyRiUzRSUzQ2ZlQ29tcG9zaXRlJTIwaW4lM0QlMjJzaGFkb3dPZmZzZXRJbm5lcjElMjIlMjBpbjIlM0QlMjJTb3VyY2VBbHBoYSUyMiUyMGsyJTNEJTIyLTElMjIlMjBrMyUzRCUyMjElMjIlMjBvcGVyYXRvciUzRCUyMmFyaXRobWV0aWMlMjIlMjByZXN1bHQlM0QlMjJzaGFkb3dJbm5lcklubmVyMSUyMiUyRiUzRSUzQ2ZlQ29sb3JNYXRyaXglMjBpbiUzRCUyMnNoYWRvd0lubmVySW5uZXIxJTIyJTIwdmFsdWVzJTNEJTIyMCUyMDAlMjAwJTIwMCUyMDElMjAwJTIwMCUyMDAlMjAwJTIwMSUyMDAlMjAwJTIwMCUyMDAlMjAxJTIwMCUyMDAlMjAwJTIwMC43NTAxOTEyMTUlMjAwJTIyJTJGJTNFJTNDJTJGZmlsdGVyJTNFJTNDbGluZWFyR3JhZGllbnQlMjBpZCUzRCUyMmQlMjIlMjB4MSUzRCUyMjQ2LjUxNiUyNSUyMiUyMHgyJTNEJTIyNTYuNjg4JTI1JTIyJTIweTElM0QlMjIwJTI1JTIyJTIweTIlM0QlMjI4Ny44MjclMjUlMjIlM0UlM0NzdG9wJTIwb2Zmc2V0JTNEJTIyMCUyMiUyMHN0b3AtY29sb3IlM0QlMjIlMjNmZmYlMjIlMkYlM0UlM0NzdG9wJTIwb2Zmc2V0JTNEJTIyMSUyMiUyMHN0b3AtY29sb3IlM0QlMjIlMjNmZmYlMjIlMjBzdG9wLW9wYWNpdHklM0QlMjIuNjAxJTIyJTJGJTNFJTNDJTJGbGluZWFyR3JhZGllbnQlM0UlM0NwYXRoJTIwaWQlM0QlMjJhJTIyJTIwZCUzRCUyMk0zNi4zOTklMjAxOS4wNGExLjMzNCUyMDEuMzM0JTIwMCUyMDAlMjAwLTIuMjktLjkzbC03LjA1NiUyMDcuMDU3LTcuMDU4LTcuMDU3YTEuMzMzJTIwMS4zMzMlMjAwJTIwMSUyMDAtMS44ODUlMjAxLjg4NWw3LjA1NyUyMDcuMDU4LTcuMDU3JTIwNy4wNTdhMS4zMzQlMjAxLjMzNCUyMDAlMjAxJTIwMCUyMDEuODg1JTIwMS44ODVsNy4wNTgtNy4wNTclMjA3LjA1NyUyMDcuMDU3YTEuMzM0JTIwMS4zMzQlMjAwJTIwMSUyMDAlMjAxLjg4NS0xLjg4NWwtNy4wNTctNy4wNTclMjA3LjA1Ny03LjA1OGExLjMzJTIwMS4zMyUyMDAlMjAwJTIwMCUyMC40MDQtLjk1NSUyMiUyRiUzRSUzQyUyRmRlZnMlM0UlM0NnJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4LTE1JTIwLTE2JTI5JTIyJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJTIyJTIzYSUyMiUyMGZpbGwlM0QlMjIlMjMwMDAlMjIlMjBmaWx0ZXIlM0QlMjJ1cmwlMjglMjNjJTI5JTIyJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJTIyJTIzYSUyMiUyMGZpbGwlM0QlMjJ1cmwlMjglMjNkJTI5JTIyJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJTIyJTIzYSUyMiUyMGZpbGwlM0QlMjIlMjMwMDAlMjIlMjBmaWx0ZXIlM0QlMjJ1cmwlMjglMjNlJTI5JTIyJTJGJTNFJTNDJTJGZyUzRSUzQyUyRnN2ZyUzRSkhaW1wb3J0YW50O2JhY2tncm91bmQtcG9zaXRpb246NTAlIWltcG9ydGFudDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTpjb250YWluIWltcG9ydGFudDt3aWR0aDoyMnB4IWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7dG9wOjE3cHghaW1wb3J0YW50O2xlZnQ6MTZweCFpbXBvcnRhbnR9LmNjLTE2NXdoW2RhdGEtd2Vic2l0ZS1sb2dvPWZhbHNlXVtkYXRhLWxhc3Qtb3BlcmF0b3ItZmFjZT1mYWxzZV0gLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMWdma3pbZGF0YS1pcy1vbmdvaW5nPWZhbHNlXSAuY2MtMmdrNm8gLmNjLTFlcjBxe2hlaWdodDozMHB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUyMHdpZHRoJTNEJTIyMzUlMjIlMjBoZWlnaHQlM0QlMjIzMCUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDM1JTIwMzAlMjIlM0UlM0NkZWZzJTNFJTNDZmlsdGVyJTIwaWQlM0QlMjJjJTIyJTIwd2lkdGglM0QlMjIxMjMuMSUyNSUyMiUyMGhlaWdodCUzRCUyMjEyNy45JTI1JTIyJTIweCUzRCUyMi0xMS41JTI1JTIyJTNFJTNDZmVPZmZzZXQlMjBkeSUzRCUyMjElMjIlMjBpbiUzRCUyMlNvdXJjZUFscGhhJTIyJTIwcmVzdWx0JTNEJTIyc2hhZG93T2Zmc2V0T3V0ZXIxJTIyJTJGJTNFJTNDZmVHYXVzc2lhbkJsdXIlMjBpbiUzRCUyMnNoYWRvd09mZnNldE91dGVyMSUyMiUyMHJlc3VsdCUzRCUyMnNoYWRvd0JsdXJPdXRlcjElMjIlMjBzdGREZXZpYXRpb24lM0QlMjIxJTIyJTJGJTNFJTNDZmVDb2xvck1hdHJpeCUyMGluJTNEJTIyc2hhZG93Qmx1ck91dGVyMSUyMiUyMHZhbHVlcyUzRCUyMjAlMjAwJTIwMCUyMDAlMjAwJTIwMCUyMDAlMjAwJTIwMCUyMDAlMjAwJTIwMCUyMDAlMjAwJTIwMCUyMDAlMjAwJTIwMCUyMDAuMDclMjAwJTIyJTJGJTNFJTNDJTJGZmlsdGVyJTNFJTNDZmlsdGVyJTIwaWQlM0QlMjJlJTIyJTIwd2lkdGglM0QlMjIxMjkuNyUyNSUyMiUyMGhlaWdodCUzRCUyMjEzNS45JTI1JTIyJTIweCUzRCUyMi0xNC44JTI1JTIyJTIweSUzRCUyMi0xNCUyNSUyMiUzRSUzQ2ZlTW9ycGhvbG9neSUyMGluJTNEJTIyU291cmNlQWxwaGElMjIlMjByYWRpdXMlM0QlMjIxJTIyJTIwcmVzdWx0JTNEJTIyc2hhZG93U3ByZWFkSW5uZXIxJTIyJTJGJTNFJTNDZmVHYXVzc2lhbkJsdXIlMjBpbiUzRCUyMnNoYWRvd1NwcmVhZElubmVyMSUyMiUyMHJlc3VsdCUzRCUyMnNoYWRvd0JsdXJJbm5lcjElMjIlMjBzdGREZXZpYXRpb24lM0QlMjIyJTIyJTJGJTNFJTNDZmVPZmZzZXQlMjBpbiUzRCUyMnNoYWRvd0JsdXJJbm5lcjElMjIlMjByZXN1bHQlM0QlMjJzaGFkb3dPZmZzZXRJbm5lcjElMjIlMkYlM0UlM0NmZUNvbXBvc2l0ZSUyMGluJTNEJTIyc2hhZG93T2Zmc2V0SW5uZXIxJTIyJTIwaW4yJTNEJTIyU291cmNlQWxwaGElMjIlMjBrMiUzRCUyMi0xJTIyJTIwazMlM0QlMjIxJTIyJTIwb3BlcmF0b3IlM0QlMjJhcml0aG1ldGljJTIyJTIwcmVzdWx0JTNEJTIyc2hhZG93SW5uZXJJbm5lcjElMjIlMkYlM0UlM0NmZUNvbG9yTWF0cml4JTIwaW4lM0QlMjJzaGFkb3dJbm5lcklubmVyMSUyMiUyMHZhbHVlcyUzRCUyMjAlMjAwJTIwMCUyMDAlMjAxJTIwMCUyMDAlMjAwJTIwMCUyMDElMjAwJTIwMCUyMDAlMjAwJTIwMSUyMDAlMjAwJTIwMCUyMDAuNzUwMTkxMjE1JTIwMCUyMiUyRiUzRSUzQyUyRmZpbHRlciUzRSUzQ2xpbmVhckdyYWRpZW50JTIwaWQlM0QlMjJkJTIyJTIweDElM0QlMjI0Ni41MTQlMjUlMjIlMjB4MiUzRCUyMjU2LjY5MiUyNSUyMiUyMHkxJTNEJTIyMTUuODM1JTI1JTIyJTIweTIlM0QlMjI3NS44NDclMjUlMjIlM0UlM0NzdG9wJTIwb2Zmc2V0JTNEJTIyMCUyMiUyMHN0b3AtY29sb3IlM0QlMjIlMjNmZmYlMjIlMkYlM0UlM0NzdG9wJTIwb2Zmc2V0JTNEJTIyMSUyMiUyMHN0b3AtY29sb3IlM0QlMjIlMjNmZmYlMjIlMjBzdG9wLW9wYWNpdHklM0QlMjIuNjAxJTIyJTJGJTNFJTNDJTJGbGluZWFyR3JhZGllbnQlM0UlM0NwYXRoJTIwaWQlM0QlMjJhJTIyJTIwZCUzRCUyMm00MC4zNCUyMDE2Ljg3OC4wMDUuMDUyJTIwMS4zMjclMjAxNC4zNWEyJTIwMiUyMDAlMjAwJTIwMS0xLjc1NCUyMDIuMTdsLTcuODE0LjkzNC0zLjI5MyUyMDUuMzI2YTElMjAxJTIwMCUyMDAlMjAxLTEuNTc0LjE2NWwtNC4yMDctNC40MDctOC4xMTMuOTY5YTIlMjAyJTIwMCUyMDAlMjAxLTIuMjI4LTEuODAybC0xLjMyOC0xNC4zNWEyJTIwMiUyMDAlMjAwJTIwMSUyMDEuNzU1LTIuMTdsMjUtMi45ODZhMiUyMDIlMjAwJTIwMCUyMDElMjAyLjIyMyUyMDEuNzQ5JTIyJTJGJTNFJTNDJTJGZGVmcyUzRSUzQ2clMjBmaWxsJTNEJTIybm9uZSUyMiUyMGZpbGwtcnVsZSUzRCUyMmV2ZW5vZGQlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgtOSUyMC0xNCUyOSUyMiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCUyMiUyM2ElMjIlMjBmaWxsJTNEJTIyJTIzMDAwJTIyJTIwZmlsdGVyJTNEJTIydXJsJTI4JTIzYyUyOSUyMiUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCUyMiUyM2ElMjIlMjBmaWxsJTNEJTIydXJsJTI4JTIzZCUyOSUyMiUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCUyMiUyM2ElMjIlMjBmaWxsJTNEJTIyJTIzMDAwJTIyJTIwZmlsdGVyJTNEJTIydXJsJTI4JTIzZSUyOSUyMiUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7d2lkdGg6MzVweCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50O3RvcDoxNHB4IWltcG9ydGFudDtsZWZ0OjlweCFpbXBvcnRhbnR9LmNjLTE2NXdoW2RhdGEtd2Vic2l0ZS1sb2dvPWZhbHNlXVtkYXRhLWxhc3Qtb3BlcmF0b3ItZmFjZT1mYWxzZV0gLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMWdma3pbZGF0YS1pcy1vbmdvaW5nPWZhbHNlXSAuY2MtMmdrNm9bZGF0YS1wcmVmZXItc2VhcmNoPXRydWVdIC5jYy0xZXIwcXtoZWlnaHQ6MzBweDtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB4bWxucyUzQXhsaW5rJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmslMjIlMjB3aWR0aCUzRCUyMjMyJTIyJTIwaGVpZ2h0JTNEJTIyMzIlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAzMiUyMDMyJTIyJTNFJTNDZGVmcyUzRSUzQ2ZpbHRlciUyMGlkJTNEJTIyYiUyMiUyMHdpZHRoJTNEJTIyMTI1JTI1JTIyJTIwaGVpZ2h0JTNEJTIyMTI1JTI1JTIyJTIweCUzRCUyMi0xMi41JTI1JTIyJTIweSUzRCUyMi04LjklMjUlMjIlM0UlM0NmZU9mZnNldCUyMGR5JTNEJTIyMSUyMiUyMGluJTNEJTIyU291cmNlQWxwaGElMjIlMjByZXN1bHQlM0QlMjJzaGFkb3dPZmZzZXRPdXRlcjElMjIlMkYlM0UlM0NmZUdhdXNzaWFuQmx1ciUyMGluJTNEJTIyc2hhZG93T2Zmc2V0T3V0ZXIxJTIyJTIwcmVzdWx0JTNEJTIyc2hhZG93Qmx1ck91dGVyMSUyMiUyMHN0ZERldmlhdGlvbiUzRCUyMjElMjIlMkYlM0UlM0NmZUNvbG9yTWF0cml4JTIwaW4lM0QlMjJzaGFkb3dCbHVyT3V0ZXIxJTIyJTIwdmFsdWVzJTNEJTIyMCUyMDAlMjAwJTIwMCUyMDAlMjAwJTIwMCUyMDAlMjAwJTIwMCUyMDAlMjAwJTIwMCUyMDAlMjAwJTIwMCUyMDAlMjAwJTIwMC4wNyUyMDAlMjIlMkYlM0UlM0MlMkZmaWx0ZXIlM0UlM0NmaWx0ZXIlMjBpZCUzRCUyMmUlMjIlMjB3aWR0aCUzRCUyMjEzMi4xJTI1JTIyJTIwaGVpZ2h0JTNEJTIyMTMyLjElMjUlMjIlMjB4JTNEJTIyLTE2LjElMjUlMjIlMjB5JTNEJTIyLTEyLjUlMjUlMjIlM0UlM0NmZU1vcnBob2xvZ3klMjBpbiUzRCUyMlNvdXJjZUFscGhhJTIyJTIwcmFkaXVzJTNEJTIyMSUyMiUyMHJlc3VsdCUzRCUyMnNoYWRvd1NwcmVhZElubmVyMSUyMiUyRiUzRSUzQ2ZlR2F1c3NpYW5CbHVyJTIwaW4lM0QlMjJzaGFkb3dTcHJlYWRJbm5lcjElMjIlMjByZXN1bHQlM0QlMjJzaGFkb3dCbHVySW5uZXIxJTIyJTIwc3RkRGV2aWF0aW9uJTNEJTIyMiUyMiUyRiUzRSUzQ2ZlT2Zmc2V0JTIwaW4lM0QlMjJzaGFkb3dCbHVySW5uZXIxJTIyJTIwcmVzdWx0JTNEJTIyc2hhZG93T2Zmc2V0SW5uZXIxJTIyJTJGJTNFJTNDZmVDb21wb3NpdGUlMjBpbiUzRCUyMnNoYWRvd09mZnNldElubmVyMSUyMiUyMGluMiUzRCUyMlNvdXJjZUFscGhhJTIyJTIwazIlM0QlMjItMSUyMiUyMGszJTNEJTIyMSUyMiUyMG9wZXJhdG9yJTNEJTIyYXJpdGhtZXRpYyUyMiUyMHJlc3VsdCUzRCUyMnNoYWRvd0lubmVySW5uZXIxJTIyJTJGJTNFJTNDZmVDb2xvck1hdHJpeCUyMGluJTNEJTIyc2hhZG93SW5uZXJJbm5lcjElMjIlMjB2YWx1ZXMlM0QlMjIwJTIwMCUyMDAlMjAwJTIwMSUyMDAlMjAwJTIwMCUyMDAlMjAxJTIwMCUyMDAlMjAwJTIwMCUyMDElMjAwJTIwMCUyMDAlMjAwLjc1MDE5MTIxNSUyMDAlMjIlMkYlM0UlM0MlMkZmaWx0ZXIlM0UlM0NsaW5lYXJHcmFkaWVudCUyMGlkJTNEJTIyZCUyMiUyMHgxJTNEJTIyNDYuNTE0JTI1JTIyJTIweDIlM0QlMjI1Ni42OTIlMjUlMjIlMjB5MSUzRCUyMjAlMjUlMjIlMjB5MiUzRCUyMjg3LjgyNyUyNSUyMiUzRSUzQ3N0b3AlMjBvZmZzZXQlM0QlMjIwJTIyJTIwc3RvcC1jb2xvciUzRCUyMiUyM2ZmZiUyMiUyRiUzRSUzQ3N0b3AlMjBvZmZzZXQlM0QlMjIxJTIyJTIwc3RvcC1jb2xvciUzRCUyMiUyM2ZmZiUyMiUyMHN0b3Atb3BhY2l0eSUzRCUyMi42MDElMjIlMkYlM0UlM0MlMkZsaW5lYXJHcmFkaWVudCUzRSUzQ3BhdGglMjBpZCUzRCUyMmElMjIlMjBkJTNEJTIybTI3LjY0JTIwMjUuOTc3LTYuMzA5LTYuMzJhMTEuOTglMjAxMS45OCUyMDAlMjAwJTIwMCUyMDIuNzE4LTcuNjIzQzI0LjA0OSUyMDUuMzg4JTIwMTguNjY1JTIwMCUyMDEyLjAyNCUyMDAlMjA1LjM4NCUyMDAlMjAwJTIwNS4zODglMjAwJTIwMTIuMDM0czUuMzg0JTIwMTIuMDM0JTIwMTIuMDI0JTIwMTIuMDM0YTExLjk2JTIwMTEuOTYlMjAwJTIwMCUyMDAlMjA3LjY0LTIuNzQzbDYuMzElMjA2LjMxNWMuNzM2LjY3NCUyMDEuNDI2LjI0JTIwMS42NjYlMjAwYTEuMTQlMjAxLjE0JTIwMCUyMDAlMjAwJTIwMC0xLjY2M00yLjM0NyUyMDEyLjAzNGMwLTUuMzQ4JTIwNC4zMzMtOS42ODUlMjA5LjY3Ny05LjY4NSUyMDUuMzQ1JTIwMCUyMDkuNjg0JTIwNC4zMzclMjA5LjY4NCUyMDkuNjg1cy00LjMzNCUyMDkuNjg2LTkuNjc4JTIwOS42ODYtOS42ODMtNC4zMzctOS42ODMtOS42ODYlMjIlMkYlM0UlM0MlMkZkZWZzJTNFJTNDZyUyMGZpbGwlM0QlMjJub25lJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODIlMjAxJTI5JTIyJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJTIyJTIzYSUyMiUyMGZpbGwlM0QlMjIlMjMwMDAlMjIlMjBmaWx0ZXIlM0QlMjJ1cmwlMjglMjNiJTI5JTIyJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJTIyJTIzYSUyMiUyMGZpbGwlM0QlMjJ1cmwlMjglMjNkJTI5JTIyJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJTIyJTIzYSUyMiUyMGZpbGwlM0QlMjIlMjMwMDAlMjIlMjBmaWx0ZXIlM0QlMjJ1cmwlMjglMjNlJTI5JTIyJTJGJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBmaWxsLXJ1bGUlM0QlMjJub256ZXJvJTIyJTIwZCUzRCUyMk05LjY0MiUyMDcuNjA3Yy4yMDglMjAwJTIwLjM5LjEzOC40NDcuMzM3bC41MDMlMjAxLjc2MmMuMjIuNzcuODIzJTIwMS4zNzQlMjAxLjU5NCUyMDEuNTk0bDEuNzYyLjUwM2EuNDY0LjQ2NCUyMDAlMjAwJTIwMSUyMDAlMjAuODkzbC0xLjc2Mi41MDNhMi4zMiUyMDIuMzIlMjAwJTIwMCUyMDAtMS41OTQlMjAxLjU5NWwtLjUwMyUyMDEuNzYyYS40NjQuNDY0JTIwMCUyMDAlMjAxLS44OTMlMjAwbC0uNTAzLTEuNzYyYTIuMzIlMjAyLjMyJTIwMCUyMDAlMjAwLTEuNTk1LTEuNTk1bC0xLjc2Mi0uNTAzYS40NjQuNDY0JTIwMCUyMDAlMjAxJTIwMC0uODkzbDEuNzYyLS41MDNhMi4zMiUyMDIuMzIlMjAwJTIwMCUyMDAlMjAxLjU5NS0xLjU5NGwuNTAzLTEuNzYyYS40NjQuNDY0JTIwMCUyMDAlMjAxJTIwLjQ0Ni0uMzM3bTUuNTcxLTEuODU3Yy4yMTQlMjAwJTIwLjQuMTQ1LjQ1MS4zNTJsLjE2LjY0Yy4xNDYuNTgzLjYlMjAxLjAzNyUyMDEuMTgyJTIwMS4xODNsLjY0MS4xNmEuNDY0LjQ2NCUyMDAlMjAwJTIwMSUyMDAlMjAuOTAxbC0uNjQuMTZjLS41ODMuMTQ2LTEuMDM3LjYtMS4xODMlMjAxLjE4MmwtLjE2LjY0MmEuNDY0LjQ2NCUyMDAlMjAwJTIwMS0uOTAxJTIwMGwtLjE2LS42NDJhMS42MyUyMDEuNjMlMjAwJTIwMCUyMDAtMS4xODItMS4xODJsLS42NDItLjE2YS40NjQuNDY0JTIwMCUyMDAlMjAxJTIwMC0uOTAxbC42NDItLjE2YTEuNjMlMjAxLjYzJTIwMCUyMDAlMjAwJTIwMS4xODItMS4xODJsLjE2LS42NDFhLjQ2NC40NjQlMjAwJTIwMCUyMDElMjAuNDUtLjM1Mm0tLjkyOCUyMDguMzU3Yy4yJTIwMCUyMC4zNzcuMTI4LjQ0LjMxN2wuMjQ1LjczM2MuMDkyLjI3Ni4zMS40OTQuNTg2LjU4NmwuNzMzLjI0NWEuNDY0LjQ2NCUyMDAlMjAwJTIwMSUyMDAlMjAuODhsLS43MzMuMjQ1YS45My45MyUyMDAlMjAwJTIwMC0uNTg2LjU4NmwtLjI0NS43MzNhLjQ2NC40NjQlMjAwJTIwMCUyMDEtLjg4JTIwMGwtLjI0NS0uNzMzYS45My45MyUyMDAlMjAwJTIwMC0uNTg3LS41ODZsLS43MzItLjI0NWEuNDY0LjQ2NCUyMDAlMjAwJTIwMSUyMDAtLjg4bC43MzItLjI0NWEuOTMuOTMlMjAwJTIwMCUyMDAlMjAuNTg3LS41ODZsLjI0NS0uNzMzYS40Ni40NiUyMDAlMjAwJTIwMSUyMC40NC0uMzE3JTIyJTIwb3BhY2l0eSUzRCUyMi41MDQlMjIlMkYlM0UlM0MlMkZnJTNFJTNDJTJGc3ZnJTNFKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOmNvbnRhaW4haW1wb3J0YW50O3dpZHRoOjMwcHghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDt0b3A6MTJweCFpbXBvcnRhbnQ7bGVmdDoxMXB4IWltcG9ydGFudH0uY2MtMTY1d2hbZGF0YS13ZWJzaXRlLWxvZ289ZmFsc2VdW2RhdGEtbGFzdC1vcGVyYXRvci1mYWNlPWZhbHNlXSAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xZ2ZreltkYXRhLWlzLW9uZ29pbmc9dHJ1ZV0gLmNjLTJnazZvIC5jYy0xZXIwcXtpbnNldDowIWltcG9ydGFudH0uY2MtMTY1d2hbZGF0YS13ZWJzaXRlLWxvZ289ZmFsc2VdW2RhdGEtbGFzdC1vcGVyYXRvci1mYWNlPWZhbHNlXSAuY2MtbGs0MnUgLmNjLTEzd3JvIC5jYy0xZ2ZreltkYXRhLWlzLW9uZ29pbmc9dHJ1ZV0gLmNjLTJnazZvIC5jYy0xZXIwcSAuY2MtYTg3bHJ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNjLTE2NXdoW2RhdGEtYXZhaWxhYmlsaXR5PW9ubGluZV0gLmNjLWxrNDJ1IC5jYy0xM3dybyAuY2MtMWdma3pbZGF0YS1pcy1vbmdvaW5nPXRydWVdIC5jYy0xbnZ4M3tiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZWVuLWxpZ2h0KSkhaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jYy0xNjV3aFtkYXRhLWF2YWlsYWJpbGl0eT1vbmxpbmVdIC5jYy1sazQydSAuY2MtMTN3cm8gLmNjLTFnZmt6W2RhdGEtaXMtb25nb2luZz10cnVlXSAuY2MtMmdrNm97LXdlYmtpdC1tYXNrOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgY2FsYygxMDAlIC0gOXB4KSBjYWxjKDEwMCUgLSA2cHgpLCMwMDAwIDEwcHgsIzAwMCAxMHB4KSFpbXBvcnRhbnQ7bWFzazpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IGNhbGMoMTAwJSAtIDlweCkgY2FsYygxMDAlIC0gNnB4KSwjMDAwMCAxMHB4LCMwMDAgMTBweCkhaW1wb3J0YW50fS5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3Jve3otaW5kZXg6Y2FsYyh2YXIoLS1jcmlzcC1jdXN0b21pemF0aW9uLWNvbnRhaW5lci1pbmRleCkgKyAyKSFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czoxMDAlIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDtib3R0b206MjBweCFpbXBvcnRhbnR9LmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm9bZGF0YS1pcy1mYWlsdXJlPXRydWVdLC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvW2RhdGEtaXMtZmFpbHVyZT10cnVlXSAqe2N1cnNvcjpkZWZhdWx0IWltcG9ydGFudH0uY2MtMTY1d2ggLmNjLWxrNDJ1IC5jYy0xM3dyb1tkYXRhLWlzLWZhaWx1cmU9ZmFsc2VdLC5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLTEzd3JvW2RhdGEtaXMtZmFpbHVyZT1mYWxzZV0gKntjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnR9LmNjLTE2NXdoIC5jYy1sazQydSAuY2MtMTN3cm9bZGF0YS1wYW5lLWFuaW1hdGUtZW50cmFuY2U9dHJ1ZV17YW5pbWF0aW9uLW5hbWU6Y2MtMTUwZHI7YW5pbWF0aW9uLWR1cmF0aW9uOi43NXM7YW5pbWF0aW9uLWZpbGwtbW9kZTpib3RofS5jYy0xNjV3aFtkYXRhLWZ1bGwtdmlldz10cnVlXSAuY2MtbGs0MnUgLmNjLTEzd3Jve3otaW5kZXg6Y2FsYyh2YXIoLS1jcmlzcC1jdXN0b21pemF0aW9uLWNvbnRhaW5lci1pbmRleCkgKyAxKSFpbXBvcnRhbnQ7Ym90dG9tOjE0cHghaW1wb3J0YW50O3JpZ2h0OjE0cHghaW1wb3J0YW50fS5jYy0xNjV3aFtkYXRhLWxvY2stbWF4aW1pemVkPXRydWVdIC5jYy1sazQydSAuY2MtMTN3cm97ZGlzcGxheTpub25lIWltcG9ydGFudH0uY2MtMTY1d2hbZGF0YS1wb3NpdGlvbi1yZXZlcnNlPXRydWVdW2RhdGEtZnVsbC12aWV3PXRydWVdIC5jYy1sazQydSAuY2MtMTN3cm97bGVmdDoxNHB4IWltcG9ydGFudDtyaWdodDphdXRvIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtMWk0bDF7YmFja2dyb3VuZDpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtNTAwKSkhaW1wb3J0YW50O2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbC1maXhlZCksIC40NSksIGluc2V0IDAgLTFweCAycHggcmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbm9ybWFsLWZpeGVkKSwgLjI0KSFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy0xaTRsMTpiZWZvcmV7Y29udGVudDoiIiFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czppbmhlcml0IWltcG9ydGFudDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbC1maXhlZCksIC4xKSAwJSwgcmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLTcwMCksIC4zNSkgMzAlLCByZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtNzAwKSwgLjM1KSAxMDAlKSFpbXBvcnRhbnQ7cG9pbnRlci1ldmVudHM6bm9uZSFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O2luc2V0OjAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy1tazVsdiwuY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbWs1bHY6YWN0aXZle2JhY2tncm91bmQ6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLTkwMCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtbWs1bHY6aG92ZXJ7YmFja2dyb3VuZDpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtODAwKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy02enM0bHtiYWNrZ3JvdW5kOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS03MDApKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLTZ6czRsOmhvdmVye2JhY2tncm91bmQ6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLTgwMCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtNnpzNGw6YWN0aXZle2JhY2tncm91bmQ6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLTkwMCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtMXFlYXB7YmFja2dyb3VuZDpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtNTAwKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy0xcWVhcDpob3ZlcntiYWNrZ3JvdW5kOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS02MDApKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLTFxZWFwOmFjdGl2ZXtiYWNrZ3JvdW5kOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS03MDApKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLTFqOTBye2JveC1zaGFkb3c6MCAxcHggMnB4IHJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbC1maXhlZCksIC4xNiksIGluc2V0IDAgMXB4IDJweCByZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWwtZml4ZWQpLCAuNDUpLCBpbnNldCAwIC0xcHggMnB4IHJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbC1maXhlZCksIC4yNCkhaW1wb3J0YW50O3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtMWo5MHI6YmVmb3Jle2NvbnRlbnQ6IiIhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6aW5oZXJpdCFpbXBvcnRhbnQ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWwtZml4ZWQpLCAuMTUpIDAlLCByZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtNzAwKSwgLjE0KSAxMDAlKSFpbXBvcnRhbnQ7cG9pbnRlci1ldmVudHM6bm9uZSFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O2luc2V0OjAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy0xajkwciwuY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtMWo5MHI6aG92ZXIsLmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLTFqOTByOmFjdGl2ZXtiYWNrZ3JvdW5kOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS01MDApKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLTFqOTByOmhvdmVye2JveC1zaGFkb3c6MCAycHggNHB4IHJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbC1maXhlZCksIC4yKSwgaW5zZXQgMCAxcHggMnB4IHJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbC1maXhlZCksIC42KSwgaW5zZXQgMCAtMXB4IDJweCByZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwtZml4ZWQpLCAuMjUpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtMWo5MHI6aG92ZXI6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsLWZpeGVkKSwgLjEyKSAwJSwgcmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLTcwMCksIC4xOCkgMTAwJSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy0xajkwcjphY3RpdmV7Ym94LXNoYWRvdzowIDFweCAycHggcmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbm9ybWFsLWZpeGVkKSwgLjI1KSwgaW5zZXQgMCAxcHggMXB4IHJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbC1maXhlZCksIC40KSwgaW5zZXQgMCAtMXB4IDFweCByZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwtZml4ZWQpLCAuMjUpIWltcG9ydGFudDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxcHgpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MtMWo5MHI6YWN0aXZlOmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbC1maXhlZCksIC4wOCkgMCUsIHJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS03MDApLCAuMjIpIDEwMCUpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MteTdtaHk6Oi1tb3otc2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLTEwMCkpIWltcG9ydGFudDtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC1ibGFjay1ub3JtYWwtZml4ZWQpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTY1d2ggLmNjLXk3bWh5IDo6LW1vei1zZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtMTAwKSkhaW1wb3J0YW50O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbC1maXhlZCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNjV3aCAuY2MteTdtaHk6OnNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS0xMDApKSFpbXBvcnRhbnQ7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtYmxhY2stbm9ybWFsLWZpeGVkKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2NXdoIC5jYy15N21oeSA6OnNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS0xMDApKSFpbXBvcnRhbnQ7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtYmxhY2stbm9ybWFsLWZpeGVkKSkhaW1wb3J0YW50fS5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLWxrNm90IC5jYy0xYzd3YXtoZWlnaHQ6MTg4MHB4O2JhY2tncm91bmQtaW1hZ2U6cmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgNTAlIDUwJSBhdCA1MCUgNTAlLCByZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwpLCAxKSAwJSwgcmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbm9ybWFsKSwgMCkgMTAwJSkhaW1wb3J0YW50O3BvaW50ZXItZXZlbnRzOm5vbmUhaW1wb3J0YW50O29wYWNpdHk6LjA2IWltcG9ydGFudDt3aWR0aDoxMzgwcHghaW1wb3J0YW50O3Bvc2l0aW9uOmZpeGVkIWltcG9ydGFudDtib3R0b206LTEwNDBweCFpbXBvcnRhbnQ7cmlnaHQ6LTc5MHB4IWltcG9ydGFudH0uY2MtMTY1d2hbZGF0YS1mdWxsLXZpZXc9ZmFsc2VdIC5jYy1sazQydSAuY2MtbGs2b3RbZGF0YS12aXNpYmxlPXRydWVde3Zpc2liaWxpdHk6dmlzaWJsZSFpbXBvcnRhbnR9LmNjLTE2NXdoW2RhdGEtZnVsbC12aWV3PWZhbHNlXSAuY2MtbGs0MnUgLmNjLWxrNm90W2RhdGEtdmlzaWJsZT1mYWxzZV17dmlzaWJpbGl0eTpoaWRkZW4haW1wb3J0YW50fS5jYy0xNjV3aFtkYXRhLWZ1bGwtdmlldz1mYWxzZV0gLmNjLWxrNDJ1IC5jYy1sazZvdFtkYXRhLWFuaW1hdGUtbWF4aW1pemU9dHJ1ZV17YW5pbWF0aW9uLW5hbWU6Y2MtZ241OWc7YW5pbWF0aW9uLWR1cmF0aW9uOi4xNXM7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluLW91dDthbmltYXRpb24tZmlsbC1tb2RlOmJvdGh9LmNjLTE2NXdoW2RhdGEtZnVsbC12aWV3PWZhbHNlXSAuY2MtbGs0MnUgLmNjLWxrNm90W2RhdGEtYW5pbWF0ZS1taW5pbWl6ZT10cnVlXXthbmltYXRpb24tbmFtZTpjYy1taGY1ZzthbmltYXRpb24tZHVyYXRpb246LjE1czthbmltYXRpb24tZGVsYXk6NTBtczthbmltYXRpb24tZmlsbC1tb2RlOmJvdGh9LmNjLTE2NXdoW2RhdGEtZnVsbC12aWV3PXRydWVdIC5jYy1sazQydSAuY2MtbGs2b3R7ZGlzcGxheTpub25lIWltcG9ydGFudH0uY2MtMTY1d2hbZGF0YS1wb3NpdGlvbi1yZXZlcnNlPXRydWVdIC5jYy1sazQydSAuY2MtbGs2b3QgLmNjLTFjN3dhe2xlZnQ6LTc5MHB4IWltcG9ydGFudDtyaWdodDphdXRvIWltcG9ydGFudH0K"}},"time_used":9,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/data/6wYjP2KmMK9hAISorGh1P/en/partner.json","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:49.416Z","timestamp":1785127669416,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/data/6wYjP2KmMK9hAISorGh1P/en/partner.json HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\npurpose: prefetch\r\nx-nextjs-data: 1\r\nsentry-trace: 5be496170b2042fc915da3c049a62288-95cc039d6acc7983-1\r\nbaggage: sentry-environment=production,sentry-public_key=f0c5bc359d786d8c0a56e9a38119b543,sentry-trace_id=5be496170b2042fc915da3c049a62288,sentry-org_id=4510469741281280,sentry-transaction=%2F,sentry-sampled=true,sentry-sample_rand=0.23391805679573818,sentry-sample_rate=1\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:49 GMT\r\ncontent-type: application/json\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\nx-nextjs-matched-path: /en/partner\r\nx-nextjs-cache: HIT\r\netag: \"162vsboqx8ca40\"\r\ncache-control: s-maxage=86400, stale-while-revalidate\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\ncf-cache-status: DYNAMIC\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=veGp186d77eHImEd6rNUfrD%2FkCtGTR8isH6PX47XW8eUCpxtUjHUp0PsGMKJjH1qt13FXY4kLVGCjuSH3bVb%2BGDWG7f0OAU2CCMbZ7A6oNYbkpv3ct7liu2qrA%3D%3D\"}]}\r\ncf-ray: a219021ddeed8be6-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"]}],"data":{"size":13158,"size_decoded":5867,"mime_type":"application/json","magic":"JSON text data","md5":"ee049b2e72ca55a449a55f4fac0b705e","sha1":"794ee6b2135f4ef1aa204a77f4850a89155e7fa2","sha256":"0327dda01088d7cddc33babf96fb346cc882a2c190d321f099c017e9c55cd7fb","sha512":"3fcbd75b5e5932f5700cff4709883b8d6372642d32855a6db03b0bd860d48b75149c56f4abff6f8bc9c1a5f90671487317ca736b96b341d455967a480104d0cd","ssdeep":"384:yYUPBC0KfRkL/c2RT3HHgsqkujbQ1DExbVph:yJPvLFjHAhURENp","tlshash":"df42960a7311153a0fca47e114972a92d5b88a1b32dd58f84cbf9d283329b7dc2b769c","first_seen":"2026-07-27T03:56:11.66994Z","last_seen":"2026-07-27T10:05:53.955524Z","times_seen":4,"resource_available":false,"data":"eyJwYWdlUHJvcHMiOnsiX25leHRJMThOZXh0Ijp7ImluaXRpYWxJMThuU3RvcmUiOnsiZW4iOnsiY29tbW9uIjp7InByaWNlIjoiV2hpdGUtTGFiZWwiLCJsb2dpbkluIjoiTG9nIGluIiwic3RhcnRGcmVlIjoiU3RhcnQgZnJlZSIsInJlY29tbWFuZEFydGljbGUiOiJSZWNvbW1lbmRlZCBBcnRpY2xlcyIsInZpZXdBbGwiOiJWaWV3IGFsbCIsImNvbW1pbmdTb29uIjoiQ29taW5nIFNvb24iLCJsZWFybk1vcmUiOiJMZWFybiBtb3JlIiwidDEiOiJQbGVhc2UgZW50ZXIiLCJ0MiI6IkNvbm5lY3QgdG8gZ2xvYmFsIGRpZ2l0YWwgY29uc3VtcHRpb24uIE9uZSAtIHN0b3AgdmlydHVhbCBjYXJkIHBheW1lbnQgYW5kIGV4cGVuc2UgbWFuYWdlbWVudCBwbGF0Zm9ybS4iLCJ0MyI6IkV4cGVuc2UgTWFuYWdlbWVudCIsInQ0IjoiQVBJIEFjY2VzcyIsInQ1IjoiUGF5bWVudCBjYXJkcyIsInQ2IjoiQWR2ZXJ0aXNpbmcgY2FyZCIsInQ3IjoiU3Vic2NyaXB0aW9uIGNhcmQiLCJ0OCI6IlRyYXZlbCBhbmQgYXZpYXRpb24gY2FyZCIsInQ5IjoiRW50ZXJwcmlzZSBzZXJ2aWNlcyIsInQxMCI6IkFQSSBEb2NzIiwidDExIjoiUmVwb3J0IGV4cG9ydCIsInQxMiI6IlBlcm1pc3Npb24gc3lzdGVtIiwidDEzIjoiQ29tcGFueSIsInQxNCI6IkFib3V0IFVzIiwidDE1IjoiTmV3cyIsInQxNiI6IlRlcm1zIG9mIFNlcnZpY2UiLCJ0MTciOiJQcml2YWN5IFBvbGljeSIsInQxOCI6Ikxhbmd1YWdlIiwidDE5IjoiTGVnYWwgaW5mbyIsInQyMCI6IkJ1dmVpJ3MgY2FyZHMgYXJlIGhlcmUhIiwidDIxIjoiTW9yZSB0aGFuIDIwIEJJTiBjYXJkcywgY292ZXJpbmcgRmFjZWJvb2ssIEdvb2dsZSwgVGlrdG9rLCBDaGF0R3B0IGFuZCBtb3JlIiwidDIyIjoiR2V0IHlvdXIgY2FyZCIsInQyMyI6IkluIEhvbmcgS29uZywgQnV2ZWkgaXMgYSBsaWNlbnNlZCBUcnVzdCBvciBDb21wYW55IFNlcnZpY2UgUHJvdmlkZXIgKFRDU1ApIGF1dGhvcml6ZWQgYnkgdGhlIEhvbmcgS29uZyBDb21wYW5pZXMgUmVnaXN0cnksIGFuZCBwZXJtaXR0ZWQgdG8gcHJvdmlkZSBzZXJ2aWNlcyByZWxhdGVkIHRvIGZ1bmRzIGN1c3RvZHksIHRydXN0IHNlcnZpY2VzLCBhbmQgZmluYW5jaWFsIGFkdmlzb3J5IHNlcnZpY2VzLiBUaGlzIGluY2x1ZGVzIHRoZSBtYW5hZ2VtZW50IGFuZCBhZG1pbmlzdHJhdGlvbiBvZiB0cnVzdCBzdHJ1Y3R1cmVzLCBhcyB3ZWxsIGFzIHRoZSBmYWNpbGl0YXRpb24gb2YgZmluYW5jaWFsIHRyYW5zYWN0aW9ucyB1bmRlciBzdHJpY3QgcmVndWxhdG9yeSBzdXBlcnZpc2lvbi4iLCJ0MjQiOiJJbiB0aGUgVW5pdGVkIFN0YXRlcywgQnV2ZWkgaXMgYSBsaWNlbnNlZCBNb25leSBTZXJ2aWNlcyBCdXNpbmVzcyAoTVNCKSB3aXRoIHRoZSBGaW5hbmNpYWwgQ3JpbWVzIEVuZm9yY2VtZW50IE5ldHdvcmsgKEZpbkNFTikgdW5kZXIgdGhlIEJhbmsgU2VjcmVjeSBBY3QgKEJTQSksIG9mZmVyaW5nIGEgcmFuZ2Ugb2YgcmVndWxhdGVkIGZpbmFuY2lhbCBzZXJ2aWNlcywgaW5jbHVkaW5nIG1vbmV5IHRyYW5zbWlzc2lvbiwgY3VycmVuY3kgZXhjaGFuZ2UsIGFuZCBtb25leSBjb252ZXJzaW9uLiIsInQyNSI6IkluIExpdGh1YW5pYSwgQnV2ZWkgaXMgYSBsaWNlbnNlZCBWaXJ0dWFsIEFzc2V0IFNlcnZpY2UgUHJvdmlkZXIgKFZBU1ApIGJ5IHRoZSBGaW5hbmNpYWwgQ3JpbWUgSW52ZXN0aWdhdGlvbiBTZXJ2aWNlIChGQ0lTKSwgYW5kIGF1dGhvcml6ZWQgdG8gcHJvdmlkZSBzZXJ2aWNlcyBpbnZvbHZpbmcgdGhlIGV4Y2hhbmdlIG9mIHZpcnR1YWwgYXNzZXRzIGFuZCB0aGUgY29udmVyc2lvbiBiZXR3ZWVuIHZpcnR1YWwgYXNzZXRzIGFuZCBmaWF0IGN1cnJlbmNpZXMuIiwidGl0bGUyMzAiOiJTaWduIHVwIGZvciBhIGxpbWl0ZWQgdGltZSBhbmQgZW5qb3kgYSIsInRpdGxlMjMxIjoiZGlzY291bnQiLCJ0aXRsZTIzMiI6Ik5ldyB1c2VyIGJlbmVmaXRzIOKAkyByZWNlaXZlIGRpc2NvdW50IGNvdXBvbnMgYXV0b21hdGljYWxseSBhZnRlciByZWdpc3RlcmluZyIsInRpdGxlMjQ2IjoiR2V0IGl0IG9uIEdvb2dsZSBQbGF5IiwidGl0bGUyNTciOiJCdXZlaSDigJMgTXVsdGktQklOIFZpcnR1YWwgQ2FyZHMsIElzc3VlZCBJbnN0YW50bHkiLCJ0aXRsZTI1NSI6IkRvd25sb2FkIiwidGl0bGUyNTYiOiJEb3dubG9hZCBvbiB0aGUgQXBwIFN0b3JlIiwic2lnblVwVGV4dCI6IlNpZ24gdXAgdG9kYXkgYW5kIGdldCIsImZyZWVDcmVkaXQiOiJpbiBmcmVlIGNhcmQgb3BlbmluZyBjcmVkaXQiLCJjbGFpbU5vdyI6IkNsYWltIE5vdyIsInQyNiI6IvCfjaogQ29va2llIE5vdGljZSIsInQyNyI6IldlIHVzZSBjb29raWVzIHRvIGVuaGFuY2UgeW91ciBicm93c2luZyBleHBlcmllbmNlIGFuZCBhbmFseXplIHNpdGUgdHJhZmZpYy5CeSBjb250aW51aW5nLCB5b3UgYWdyZWUgdG8gb3VyIiwidDI4IjoiUHJpdmFjeSBQb2xpY3kiLCJ0MjkiOiJEZWNsaW5lIiwidDMwIjoiQWNjZXB0IEFsbCIsInQzMSI6IkRpc2NsYWltZXIiLCJtZW51Ijp7InRpdGxlMSI6IlByb2R1Y3QiLCJ0aXRsZTIiOiJTb2x1dGlvbnMiLCJ0aXRsZTMiOiJSZXNvdXJjZSIsInRpdGxlNCI6IkNvbXBhbnkiLCJ0aXRsZTUiOiJWaXJ0dWFsIENyZWRpdCBjYXJkIiwidGl0bGU2IjoiUGh5c2ljYWwgQ2FyZCIsInRpdGxlNyI6IkFwcGxlIFBheSIsInRpdGxlOCI6IkRldmVsb3BlcnMiLCJ0aXRsZTkiOiJEaWdpdGFsIEFkdmVydGlzaW5nIFBheW1lbnRzIiwidGl0bGUxMCI6IkF2aWF0aW9uICYgVHJhdmVsIiwidGl0bGUxMSI6IlN1YnNjaXB0aW9uIE1hbmFnZW1lbnQiLCJ0aXRsZTEyIjoiQmxvZyIsInRpdGxlMTMiOiJUb29scyIsInRpdGxlMTQiOiJGQVFzIiwidGl0bGUxNSI6IlRlcm1zIiwidGl0bGUxNiI6IkhlbHAgQ2VudHJlIiwidGl0bGUxNyI6IkNvbnRhY3QgVXMiLCJ0aXRsZTE4IjoiUGFydG5lcnMiLCJ0aXRsZTE5IjoiTGFuZ3VhZ2VzIiwidGl0bGUyMCI6IkpvaW4gVXMiLCJkZXNjMTMiOiJMZXTigJlzIHN0YXJ0IG92ZXIiLCJkZXNjMSI6IlN1cHBvcnQgZm9yIGFkdmVydGlzaW5nLCBzdWJzY3JpcHRpb25zLCBhbmQgc2hvcHBpbmciLCJkZXNjMiI6Ik9mZmxpbmUgY29uc3VtcHRpb24iLCJkZXNjMyI6Ik9uZS1jbGljayBiaW5kaW5nIHdpdGggQXBwbGUgUGF5IiwiZGVzYzQiOiJEZXZlbG9wZXIgQ2VudGVyIiwiZGVzYzUiOiJGYWNlYm9vaywgVGlrVG9rLCBDUEMsIEdvb2dsZSwgZXRjLiIsImRlc2M2IjoiT25lLWNsaWNrIGFjY2VzcyBhY3Jvc3MgZ2xvYmFsIGFpcmxpbmVzIiwiZGVzYzciOiJPcGVuQUksIE1pZGpvdXJuZXksIGV0Yy4iLCJkZXNjOCI6IlN0YXkgdXBkYXRlZCB3aXRoIHRoZSBsYXRlc3QgbmV3cyIsImRlc2M5IjoiSW5zdGFudGx5IGdldCBCSU4gY2FyZCBpbmZvcm1hdGlvbiIsImRlc2MxMCI6IkNvbW1vbiBwcm9ibGVtIHNvbHZpbmciLCJkZXNjMTEiOiJJZiB5b3UgaGF2ZSBhbnkgcXVlc3Rpb25zLCBwbGVhc2UgY29udGFjdCB1cyIsImRlc2MxMiI6Ildpbi13aW4gY29vcGVyYXRpb24ifSwiYXJ0aWNsZSI6eyJ0aXRsZTEiOiJUaGUgY29udmVyZ2VuY2Ugb2YgYmFua3MgYW5kIGRpZ2l0YWwgZmluYW5jZTogbWFraW5nIGJhbmtzIHJpc2tpZXIgb3IgZmludGVjaCBzYWZlcj8iLCJkZXNjMSI6Ik92ZXIgdGhlIHBhc3QgZmV3IHllYXJzLCB0aGUgbGluZSBiZXR3ZWVuIHRyYWRpdGlvbmFsIGJhbmtpbmcgYW5kIGRpZ2l0YWwgZmluYW5jZSBoYXMgc3RlYWRpbHkgYmx1cnJlZC4gV2hhdCB3YXMgb25jZSBhIHBhcmFsbGVsIHJhY2UgaXMgbm93IGJlY29taW5nIiwidGl0bGUyIjoiRnJvbSBDb252ZW5pZW5jZSB0byBTZWN1cml0eTogQ3JlZGl0IENhcmRzIGFuZCB0aGUgUXVlc3QgZm9yIHRoZSBQYXltZW50IEhvbHkgR3JhaWwiLCJkZXNjMiI6IkluIHRoZSBwYXltZW50cyBpbmR1c3RyeSwgc2VhbWxlc3MgdXNlciBleHBlcmllbmNlIGFuZCByb2J1c3Qgc2VjdXJpdHkgYXJlIG9mdGVuIHNlZW4gYXMgb3Bwb3NpbmcgZm9yY2VzLiBPbiBvbmUgaGFuZCwgY29uc3VtZXJzIGV4cGVjdCBmYXN0LCBpbnR1aXRpdmUgdHJhbnNhY3Rpb25z4oCUdGFwIGFuZCBnby4iLCJ0aXRsZTMiOiJTZXZlbiBNYWpvciBQYXltZW50IFRyZW5kcyBpbiAyMDI1OiBUZWNobm9sb2d5LURyaXZlbiBUcmFuc2Zvcm1hdGlvbiBSZWRlZmluZXMgUGF5bWVudHMiLCJkZXNjMyI6IkFzIHdlIGVudGVyIDIwMjUsIHRoZSBnbG9iYWwgcGF5bWVudCBsYW5kc2NhcGUgaXMgdW5kZXJnb2luZyByYXBpZCBldm9sdXRpb24uIEVtZXJnaW5nIHRlY2hub2xvZ2llcyBzdWNoIGFzIGFydGlmaWNpYWwgaW50ZWxsaWdlbmNlIChBSSksIGRpc3RyaWJ1dGVkIGxlZGdlciB0ZWNobm9sb2d5LCBhbmQgZGlnaXRhbCBpZGVudGl0eSBhcmUgcHJvZm91bmRseSByZXNoYXBpbmcgdGhlIHdheSBwYXltZW50cyBhcmUgaW5pdGlhdGVkLCBwcm9jZXNzZWQsIGFuZCBzZWN1cmVkLiIsInRpdGxlNCI6IkFnZW50IENvbW1lcmNlOiBUaGUgRnV0dXJlIG9mIERpZ2l0YWwgUGF5bWVudHMgUG93ZXJlZCBieSBBSSIsImRlc2M0IjoiQXMgZGlnaXRhbCBjb21tZXJjZSBjb250aW51ZXMgdG8gZXZvbHZlLCB0aHJlZSBvZiB0aGUgd29ybGTigJlzIGxlYWRpbmcgcGF5bWVudCBjb21wYW5pZXMg4oCUIFZpc2EsIE1hc3RlcmNhcmQsIGFuZCBQYXlQYWwg4oCUIGFyZSByYWNpbmcgdG93YXJkIHRoZSBuZXh0IGZyb250aWVyOiBhZ2VudC1iYXNlZCBhcnRpZmljaWFsIGludGVsbGlnZW5jZS4iLCJ0aXRsZTUiOiJFdXJvcGVhbiBDZW50cmFsIEJhbmsgTGF1bmNoZXMgSW5ub3ZhdGlvbiBIdWIgdG8gQWR2YW5jZSBEaWdpdGFsIEV1cm8gYW5kIENCREMgVXNlIENhc2VzIiwiZGVzYzUiOiJUbyBhY2NlbGVyYXRlIHRoZSByZXNlYXJjaCBhbmQgcG90ZW50aWFsIGltcGxlbWVudGF0aW9uIG9mIGEgY2VudHJhbCBiYW5rIGRpZ2l0YWwgY3VycmVuY3kgKENCREMpLCB0aGUgRXVyb3BlYW4gQ2VudHJhbCBCYW5rIChFQ0IpIGhhcyBvZmZpY2lhbGx5IGxhdW5jaGVkIHRoZSBEaWdpdGFsIEV1cm8gSW5ub3ZhdGlvbiBQbGF0Zm9ybSIsInRpdGxlNiI6IlVuZGVyc3RhbmRpbmcgQ3JlZGl0IENhcmQgVGVybWlub2xvZ3kgfCBXaGF0IElzIGEgQ2FyZCBGZWUiLCJkZXNjNiI6IldoZW4gdXNpbmcgYSBjcmVkaXQgb3IgdmlydHVhbCBjYXJkLCBoYXZlIHlvdSBldmVyIG5vdGljZWQgdmFyaW91cyBjaGFyZ2VzIGxpc3RlZCBvbiB5b3VyIHN0YXRlbWVudD8iLCJ0aXRsZTciOiIyMDI1IGFuYWx5c2lzIG9mIHBheW1lbnRzIGFuZCBlY29tbWVyY2UgdHJlbmRzIiwiZGVzYzciOiJBcyB0aGUgbGFyZ2VzdCBlY29ub215IGluIFNvdXRoZWFzdCBBc2lh4oCUd2l0aCBhIHBvcHVsYXRpb24gb2YgMjc4LjMgbWlsbGlvbuKAlEluZG9uZXNpYSBvZmZlcnMgaW1tZW5zZSBvcHBvcnR1bml0aWVzIGluIGUtY29tbWVyY2UgYW5kIGRpZ2l0YWwgcGF5bWVudHMuIiwidGl0bGU4IjoiQ3JlZGl0IENhcmQgU2tpbW1pbmc6IDUgU2lnbnMgWW914oCZcmUgYXQgUmlzayAmIEhvdyB0byBTdG9wIEl0IE5vdyIsImRlc2M4IjoiQXMgZGlnaXRhbCBwYXltZW50cyBiZWNvbWUgaW5jcmVhc2luZ2x5IHdpZGVzcHJlYWQsIGNyZWRpdCBjYXJkIGZyYXVkIGhhcyBlbWVyZ2VkIGFzIGFuIHVuYXZvaWRhYmxlIHJpc2sgZm9yIGNvbnN1bWVycy4gQWNjb3JkaW5nIHRvIHN0YXRpc3RpY3MsIDgyJSBvZiBBbWVyaWNhbiBhZHVsdHMgZXhwZXJpZW5jZWQgc29tZSBmb3JtIG9mIGNyZWRpdCBjYXJkIGZyYXVkIGluIDIwMjMiLCJ0aXRsZTkiOiJWaXJ0dWFsIFdhbGxldHMsIFJlYWwgUG93ZXI6IDEwIE11c3QtSGF2ZSBWaXJ0dWFsIENhcmRzIGZvciBTZWN1cmUgU3BlbmRpbmcgaW4gMjAyNSIsImRlc2M5IjoiU2F5IGdvb2RieWUgdG8gZGlnZ2luZyBmb3IgYSBwaHlzaWNhbCBjYXJkIG9yIGZlYXJpbmcgeW91ciBudW1iZXIgd2lsbCBiZSBjb21wcm9taXNlZC4gVmlydHVhbCBjcmVkaXQgY2FyZHMgKFZDQ3MpIGFyZW7igJl0IGp1c3QgYSB0cmVuZOKAlHRoZXnigJlyZSBlc3NlbnRpYWwgdG9vbHMgZm9yIG5hdmlnYXRpbmcgdG9kYXnigJlzIGRpZ2l0YWwgZmluYW5jaWFsIGxhbmRzY2FwZS4iLCJ0aXRsZTEwIjoiS1lDIHZzLiBBTUw6IEEgQ29tcGxpYW5jZSBEZWVwIERpdmUgZm9yIHRoZSBQYXltZW50cyBJbmR1c3RyeSIsImRlc2MxMCI6IkluIHRvZGF54oCZcyByYXBpZGx5IGV2b2x2aW5nIGRpZ2l0YWwgcGF5bWVudHMgbGFuZHNjYXBlLCByZWd1bGF0b3J5IGNvbXBsaWFuY2UgaXMgYSB0b3AgcHJpb3JpdHkgZm9yIGZpbmFuY2lhbCBpbnN0aXR1dGlvbnMgYW5kIGJ1c2luZXNzZXMgYWxpa2UuIEFudGktTW9uZXkgTGF1bmRlcmluZyAoQU1MKSBhbmQgS25vdyBZb3VyIEN1c3RvbWVyIChLWUMpIGFyZSB0aGUgdHdvIGZvdW5kYXRpb25hbCBwaWxsYXJzIG9mIHBheW1lbnQgY29tcGxpYW5jZS4gIiwidGl0bGUxMSI6IkZhY2Vib29rIEFjY291bnQgVHlwZXMgRXhwbGFpbmVkOiBXaGljaCBPbmUgSXMgUmlnaHQgZm9yIFlvdT8iLCJkZXNjMTEiOiJBcyBhIGRvbWluYW50IGZvcmNlIGluIHRoZSBnbG9iYWwgc29jaWFsIG1lZGlhIGxhbmRzY2FwZSwgRmFjZWJvb2sgY29ubmVjdHMgaW5kaXZpZHVhbHMsIGJyYW5kcywgYnVzaW5lc3NlcywgYW5kIGRldmVsb3BlcnMgdGhyb3VnaCBhIGNvbXByZWhlbnNpdmUgZWNvc3lzdGVtIG9mIGFjY291bnQgdHlwZXMgYW5kIGZ1bmN0aW9uYWxpdGllcy4iLCJ0aXRsZTEyIjoiV2hhdCBEb2VzIOKAnFBlbmRpbmfigJ0gTWVhbiBpbiBQYXltZW50PyBDYXVzZXMsIER1cmF0aW9uLCBhbmQgUmlzayBNYW5hZ2VtZW50IiwiZGVzYzEyIjoiSW4gbW9kZXJuIHBheW1lbnQgc3lzdGVtc+KAlHdoZXRoZXIgdXNpbmcgY3JlZGl0IGNhcmRzLCBkZWJpdCBjYXJkcywgdmlydHVhbCBjYXJkcywgb3IgZS13YWxsZXRz4oCUdXNlcnMgb2Z0ZW4gZW5jb3VudGVyIGEgZmFtaWxpYXIgc3RhdHVzIGFmdGVyIGluaXRpYXRpbmcgYSB0cmFuc2FjdGlvbjog4oCcUGVuZGluZy7igJ0ifX0sInBhcnRuZXIiOnsidDEiOiJCdXZlaSBQYXJ0bmVyIFByb2dyYW0gfCBGaW50ZWNoLCBBZmZpbGlhdGUgJiBQbGF0Zm9ybSBQYXJ0bmVyc2hpcHMiLCJ0MiI6IkJ1aWxkIHRoZSBGdXR1cmUgb2YgUGF5bWVudHMgVG9nZXRoZXIgfCBKb2luIHRoZSBCdXZlaSBQYXJ0bmVyIFByb2dyYW0iLCJ0MyI6IkJ1dmVpLCBwYXJ0bmVycyxicmFuZCBjb2xsYWJvcmF0aW9uLCBwYXJ0bmVyc2hpcCBwcm9ncmFtIiwidDQiOiJQYXJ0bmVyIHdpdGggQnV2ZWkgdG8gZHJpdmUgaW5ub3ZhdGlvbiBpbiBwYXltZW50cywgZXhwYW5kIHlvdXIgb2ZmZXJpbmdzLGFuZCB1bmxvY2sgbmV3IGJ1c2luZXNzIG9wcG9ydHVuaXRpZXMgdGhyb3VnaCBvdXIgZ2xvYmFsIHBhcnRuZXIgZWNvc3lzdGVtLiIsInQ1Ijoib3Bwb3J0dW5pdGllcyB0aHJvdWdoIG91ciBQYXJ0bmVyIFByb2dyYW0iLCJ0NiI6IkpvaW4gbm93IiwidDciOiJXaHkgUGFydG5lciB3aXRoIEJ1dmVpPyIsInQ4IjoiQWR2YW5jZWQgUGF5bWVudCBhbmQgSXNzdWluZyBUZWNobm9sb2d5IiwidDkiOiJMZXZlcmFnZSBCdXZlaeKAmXMgY2FyZCBpc3N1aW5nIGFuZCBwYXltZW50IGluZnJhc3RydWN0dXJlIHRvIGVuaGFuY2UgcGVyZm9ybWFuY2UscmVsaWFiaWxpdHksIGFuZCB1c2VyIGV4cGVyaWVuY2UgYWNyb3NzIHlvdXIgZmluYW5jaWFsIHByb2R1Y3RzLiIsInQxMCI6IkxvbmctVGVybSBHcm93dGggUGFydG5lcnNoaXAiLCJ0MTEiOiJSZWNlaXZlIG9uZ29pbmcgdGVjaG5pY2FsLCBvcGVyYXRpb25hbCwgYW5kIGJ1c2luZXNzIHN1cHBvcnQgdG8gc2NhbGUgdG9nZXRoZXIgd2l0aGluIHRoZSBldm9sdmluZyBnbG9iYWwgcGF5bWVudHMgZWNvc3lzdGVtLiIsInQxMiI6Ikdsb2JhbCBNYXJrZXQgRXhwYW5zaW9uIiwidDEzIjoiQWNjZXNzIG5ldyByZWdpb25zLCBjdXN0b21lcnMsIGFuZCB1c2UgY2FzZXMgYnkgcGFydG5lcmluZyB3aXRoIEJ1dmVp4oCZcyBnbG9iYWwgY2FyZCBpc3N1aW5nIGFuZCBwYXltZW50IG5ldHdvcmsuIiwidDE0IjoiRmxleGlibGUgUGFydG5lcnNoaXAgTW9kZWxzIiwidDE1IjoiQ2hvb3NlIGZyb20gbXVsdGlwbGUgY29sbGFib3JhdGlvbiBtb2RlbHMgZGVzaWduZWQgdG8gYWxpZ24gd2l0aCB5b3VyIGJ1c2luZXNzIG9iamVjdGl2ZXMgYW5kIG9wZXJhdGlvbmFsIHJlcXVpcmVtZW50cy4iLCJ0MTYiOiJGbGV4aWJsZSBQYXJ0bmVyc2hpcCBNb2RlbHMgZm9yICIsInQxNyI6IkRpZmZlcmVudCBCdXNpbmVzcyBOZWVkcyIsInQxOCI6IkNoYW5uZWwgUGFydG5lcnMiLCJ0MTkiOiJHcm93IHlvdXIgcmV2ZW51ZSBieSBwcm9tb3RpbmcgYW5kIHJlc2VsbGluZyBCdXZlaeKAmXMgY2FyZCBpc3N1aW5nIGFuZCBwYXltZW50IHNvbHV0aW9ucyB0byB5b3VyIGN1c3RvbWVycy4iLCJ0MjAiOiJUZWNobm9sb2d5IEludGVncmF0aW9uIFBhcnRuZXJzIiwidDIxIjoiRW1iZWQgQnV2ZWnigJlzIEFQSXMgYW5kIGluZnJhc3RydWN0dXJlIGludG8geW91ciBwcm9kdWN0cyB0byBkZWxpdmVyIHNlYW1sZXNzIHBheW1lbnQgYW5kIGNhcmQgaXNzdWluZyBleHBlcmllbmNlcy4iLCJ0MjIiOiJTdHJhdGVnaWMgQWxsaWFuY2UgUGFydG5lcnMiLCJ0MjMiOiJDby1kZXZlbG9wIG5ldyBtYXJrZXRzLCB1c2UgY2FzZXMsIGFuZCBnby10by1tYXJrZXQgc3RyYXRlZ2llcyB0byBkcml2ZSBsb25nLXRlcm0gZ3Jvd3RoIGZvciBib3RoIG9yZ2FuaXphdGlvbnMuIiwidDI0IjoiSG93IHRvIGpvaW4gb3VyIHBhcnRuZXJzaGlwIHByb2dyYW0/IiwidDI1IjoiU1RFUCAwMSIsInQyNiI6IkZpbGwgb3V0IHRoZSBhcHBsaWNhdGlvbiBmb3JtIiwidDI3IjoiUHJvdmlkZSB5b3VyIGNvb3BlcmF0aW9uIGludGVudGlvbnMgYW5kIGJhc2ljIGNvbXBhbnkgaW5mb3JtYXRpb24uIiwidDI4IjoiU1RFUCAwMiIsInQyOSI6IkluaXRpYWwgY29tbXVuaWNhdGlvbiBhbmQgYWxpZ25tZW50IiwidDMwIjoiT3VyIHRlYW0gd2lsbCBkaXNjdXNzIGludGVncmF0aW9uIHNjb3BlLCB0ZWNobmljYWwgcmVxdWlyZW1lbnRzLCBhbmQgcGFydG5lcnNoaXAgdGVybXMgd2l0aCB5b3UuIiwidDMxIjoiU1RFUCAwMyIsInQzMiI6IlNpZ24gdGhlIGNvb3BlcmF0aW9uIGFncmVlbWVudCIsInQzMyI6Ik9mZmljaWFsbHkgZXN0YWJsaXNoIHRoZSBwYXJ0bmVyc2hpcCBhbmQgc3RhcnQgdGhlIGNvbGxhYm9yYXRpb24uIiwidDM0IjoiU1RFUCAwNCIsInQzNSI6IkxhdW5jaCB0aGUgY29vcGVyYXRpb24gYW5kIHdpbiIsInQzNiI6IkJvdGggcGFydGllcyB3aWxsIGpvaW50bHkgZHJpdmUgdGhlIGNvb3BlcmF0aW9uIGFuZCBzaGFyZSB0aGUgc3VjY2Vzcy4iLCJ0MzciOiJCdWlsZGluZyB0aGUgRnV0dXJlIG9mIFBheW1lbnRzIFRvZ2V0aGVyIiwidDM4IjoiV2UgcHJvdmlkZSBkZWRpY2F0ZWQgdGVjaG5pY2FsIHN1cHBvcnQsIGdvLXRvLW1hcmtldCByZXNvdXJjZXMsYW5kIHN0cmF0ZWdpYyBndWlkYW5jZSB0byBoZWxwIG91ciBwYXJ0bmVycyBzY2FsZSBmYXN0ZXIgYW5kIHN1Y2NlZWQgaW4gZ2xvYmFsIHBheW1lbnQgbWFya2V0cyIsInQzOSI6IkJlY29tZSBvdXIgcGFydG5lciBub3cgYW5kIiwidDQwIjoic2hhcGUgdGhlIGZ1dHVyZSB0b2dldGhlciEiLCJ0NDEiOiJGaXJzdCBOYW1lIiwidDQyIjoiRmlyc3QgbmFtZSBpcyByZXF1aXJlZCIsInQ0MyI6IkVudGVyIHlvdXIgZmlyc3QgbmFtZSIsInQ0NCI6IldvcmsgRW1haWwiLCJ0NDUiOiJXb3JrIEVtYWlsIGlzIHJlcXVpcmVkIiwidDQ2IjoiSW52YWxpZCBlbWFpbCBmb3JtYXQiLCJ0NDciOiJFbnRlciB5b3VyIG1haWwiLCJ0NDgiOiJMYXN0IE5hbWUiLCJ0NDkiOiJMYXN0IG5hbWUgaXMgcmVxdWlyZWQiLCJ0NTAiOiJFbnRlciB5b3VyIGxhc3QgbmFtZSIsInQ1MSI6IkNpdHkgb2YgY29tcGFueSBoZWFkcXVhcnRlcnMiLCJ0NTIiOiJQbGVhc2UgZW50ZXIiLCJ0NTMiOiJQbGVhc2UgZGVzY3JpYmUgeW91ciBleHBlY3RhdGlvbnMgZm9yIGNvbGxhYm9yYXRpb24gd2l0aCB1cyAoZS5nLiwgdGVjaG5pY2FsIHN1cHBvcnQsIG1hcmtldCBleHBhbnNpb24sIHN0cmF0ZWdpYyBwYXJ0bmVyc2hpcHMsIGV0Yy4pIiwidDU0IjoiQXBwbHkgdG8gYmVjb21lIGEgcGFydG5lciIsInQ1NSI6IlJlYWR5IHRvIHBhcnRuZXIgd2l0aCBCdXZlaT8iLCJ0NTYiOiJKb2luIHRoZSBCdXZlaSBQYXJ0bmVyIFByb2dyYW0gYW5kIEdyb3cgWW91ciBQYXltZW50IEJ1c2luZXNzIEZhc3RlciIsInQ1OCI6IkpvaW4gdGhlIEJ1dmVpIFBhcnRuZXIgUHJvZ3JhbSB0byBncm93IHdpdGggdmlydHVhbCBjYXJkcywgZGlnaXRhbCBwYXltZW50cywgYW5kIHdoaXRlIGxhYmVsIGluZnJhc3RydWN0dXJlLiBFYXJuIGNvbW1pc3Npb25zLCBhY2Nlc3MgQVBJcywgYW5kIHNjYWxlIHRvZ2V0aGVyIHdpdGggYSBnbG9iYWwgZmludGVjaCBwbGF0Zm9ybS4iLCJ0NTkiOiJCdXZlaSBwYXJ0bmVyIHByb2dyYW0sIGZpbnRlY2ggcGFydG5lcnNoaXBzLCBhZmZpbGlhdGUgcGF5bWVudCBwcm9ncmFtLCB3aGl0ZSBsYWJlbCBwYXJ0bmVycywgdmlydHVhbCBjYXJkIHBhcnRuZXJzLCBkaWdpdGFsIHBheW1lbnQgcGFydG5lcnMsIGZpbnRlY2ggcmVzZWxsZXIgcHJvZ3JhbSwgQVBJIHBhcnRuZXJzaGlwIiwidDYwIjoiQnV2ZWnigJlzIHBhcnRuZXIgcHJvZ3JhbSBvZmZlcnMgdGhyZWUgbW9kZWxzOiBjaGFubmVsIHBhcnRuZXJzIHJlc2VsbCBjYXJkIGlzc3Vpbmcgc29sdXRpb25zLCB0ZWNobm9sb2d5IHBhcnRuZXJzIGVtYmVkIHBheW1lbnQgQVBJcyBpbnRvIHRoZWlyIHByb2R1Y3RzLCBhbmQgc3RyYXRlZ2ljIHBhcnRuZXJzIGNvLWRldmVsb3AgbmV3IG1hcmtldHMuIEFsbCBwYXJ0bmVycyBnZXQgYSBkZWRpY2F0ZWQgbWFuYWdlciwgcHJpb3JpdHkgQVBJIHN1cHBvcnQsIGFuZCBjby1tYXJrZXRpbmcgcmVzb3VyY2VzLiIsInQ2MSI6IiIsInQ2MiI6IiIsInQ2MyI6IiIsInQ1NyI6IkpvaW4gdGhlIFBhcnRuZXIgUHJvZ3JhbSIsInQ2NCI6IkFjY2VsZXJhdGUgR3Jvd3RoIHdpdGggdGhlIEJ1dmVpIFBhcnRuZXIgRWNvc3lzdGVtIiwidDY1IjoiQnV2ZWkgcGFydG5lcnMgd2l0aCBpbm5vdmF0aXZlIHRlY2hub2xvZ3kgY29tcGFuaWVzIGFjcm9zcyBwYXltZW50cywgU2FhUyBwbGF0Zm9ybXMsIEFJIHRvb2xzLCBhbmQgZGlnaXRhbCBpbmZyYXN0cnVjdHVyZSB0byBoZWxwIGJ1c2luZXNzZXMgYWNjZXNzIGdsb2JhbCBzZXJ2aWNlcyBhbmQgc2NhbGUgb3BlcmF0aW9ucy4iLCJ0NjYiOiJFeHBsb3JlIFBhcnRuZXJzIiwidDY3IjoiQmVjb21lIGEgUGFydG5lciIsInQ2OCI6IkJ1aWxkLCBpbm5vdmF0ZSBhbmQgc2NhbGUgZmFzdGVyIiwidDY5IjoiRmFzdCBJbnRlZ3JhdGlvbiIsInQ3MCI6IkludGVncmF0ZSBCdXZlaSBwYXltZW50IGluZnJhc3RydWN0dXJlIGludG8geW91ciBwbGF0Zm9ybSBxdWlja2x5IHdpdGggZmxleGlibGUgc29sdXRpb25zLiIsInQ3MSI6IlBhcnRuZXIgU3VwcG9ydCIsInQ3MiI6Ildvcmsgd2l0aCBvdXIgcGFydG5lciBlY29zeXN0ZW0gdG8gYnVpbGQgc29sdXRpb25zIHRoYXQgc3VwcG9ydCB5b3VyIGJ1c2luZXNzIGdyb3d0aC4iLCJ0NzMiOiJPdXIgUGFydG5lcnMiLCJ0NzQiOiJBbGwiLCJ0NzUiOiJJbnRlcmVzdGVkIGluIHBhcnRuZXJpbmcgd2l0aCBCdXZlaT8iLCJ0NzYiOiJKb2luIG91ciBlY29zeXN0ZW0gYW5kIGJ1aWxkIGdsb2JhbCBwYXltZW50IHNvbHV0aW9ucyB0b2dldGhlci4ifX19LCJpbml0aWFsTG9jYWxlIjoiZW4iLCJucyI6WyJjb21tb24iLCJwYXJ0bmVyIl0sInVzZXJDb25maWciOnsiZGVidWciOmZhbHNlLCJpMThuIjp7ImRlZmF1bHRMb2NhbGUiOiJlbiIsImxvY2FsZXMiOlsiZW4iLCJ2aSIsInJ1IiwiamEiLCJwdCIsImFyIiwiZXMiLCJmciJdfSwibG9jYWxlUGF0aCI6Ii9hcHAvcHVibGljL2xvY2FsZXMiLCJyZWxvYWRPblByZXJlbmRlciI6ZmFsc2UsImRvbWFpbnMiOlt7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJlbiJ9LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6ImVuIiwibG9jYWxlcyI6WyJlbiJdfSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJ2aSIsImxvY2FsZXMiOlsidmkiXX0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoicnUiLCJsb2NhbGVzIjpbInJ1Il19LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6ImphIiwibG9jYWxlcyI6WyJqYSJdfSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJwdCIsImxvY2FsZXMiOlsicHQiXX0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoiYXIiLCJsb2NhbGVzIjpbImFyIl19LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6ImVzIiwibG9jYWxlcyI6WyJlcyJdfSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJmciIsImxvY2FsZXMiOlsiZnIiXX1dLCJkZWZhdWx0Ijp7ImRlYnVnIjpmYWxzZSwiaTE4biI6eyJkZWZhdWx0TG9jYWxlIjoiZW4iLCJsb2NhbGVzIjpbImVuIiwidmkiLCJydSIsImphIiwicHQiLCJhciIsImVzIiwiZnIiXX0sImxvY2FsZVBhdGgiOiIvYXBwL3B1YmxpYy9sb2NhbGVzIiwicmVsb2FkT25QcmVyZW5kZXIiOmZhbHNlLCJkb21haW5zIjpbeyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoiZW4ifSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJlbiIsImxvY2FsZXMiOlsiZW4iXX0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoidmkiLCJsb2NhbGVzIjpbInZpIl19LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6InJ1IiwibG9jYWxlcyI6WyJydSJdfSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJqYSIsImxvY2FsZXMiOlsiamEiXX0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoicHQiLCJsb2NhbGVzIjpbInB0Il19LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6ImFyIiwibG9jYWxlcyI6WyJhciJdfSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJlcyIsImxvY2FsZXMiOlsiZXMiXX0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoiZnIiLCJsb2NhbGVzIjpbImZyIl19XX19fX0sIl9fTl9TU0ciOnRydWV9"}},"time_used":138,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":138,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"client.crisp.chat/static/images/chat/tiles/yyy.svg?23e4212","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:50.364Z","timestamp":1785127670364,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /static/images/chat/tiles/yyy.svg?23e4212 HTTP/1.1\r\nHost: client.crisp.chat\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://client.crisp.chat/static/stylesheets/features/chat_default_23e4212.css\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-type: image/svg+xml\r\naccess-control-allow-credentials: false\r\naccess-control-allow-headers: Content-Type, Origin\r\naccess-control-allow-methods: HEAD, GET, OPTIONS\r\naccess-control-allow-origin: *\r\naccess-control-max-age: 300\r\ncache-control: public, max-age=315360000\r\ncross-origin-resource-policy: cross-origin\r\nx-content-type-options: nosniff\r\nexpires: Thu, 24 Jul 2036 04:47:50 GMT\r\nlast-modified: Tue, 21 Jul 2026 15:59:47 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\npriority: u=4,i\r\nage: 45205\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: W/\"6a5f9773-1a1\"\r\ncontent-encoding: br\r\ncf-ray: a2190223c96db28a-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"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":417,"size_decoded":976,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"4ee121d9db5589c7dd60477e82171a55","sha1":"1d4e64ebd844a7baa683f6994ea27039ba8b4bf8","sha256":"632456a8f510452f30708f3965d6a07e10543b99531622758de5477bb51646d7","sha512":"9dab06af5aa29bbeacbe2075af7a3b3ef6f4031755733bbd7e9d1fa5c37cf1ba7bd0386bdbf251fa1970addda12720b58225d41c582911febf262075eb9a0c78","ssdeep":"","tlshash":"f0e012334afc242c8c5b81f6c03b3411431e8ba8b18a00749dbc73b92487ee2d523059","first_seen":"2026-05-12T21:30:54.855451Z","last_seen":"2026-07-27T10:05:53.919589Z","times_seen":6,"resource_available":false,"data":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI5NiIgdmlld0JveD0iMCAwIDYwIDk2Ij48cGF0aCBkPSJNMzYgMTBhNiA2IDAgMCAxIDEyIDB2MTJhNiA2IDAgMCAxLTYgNiA2IDYgMCAwIDAtNiA2IDYgNiAwIDAgMS0xMiAwIDYgNiAwIDAgMC02LTYgNiA2IDAgMCAxLTYtNlYxMGE2IDYgMCAxIDEgMTIgMCA2IDYgMCAwIDAgMTIgMHptMjQgNzhhNiA2IDAgMCAxLTYtNiA2IDYgMCAwIDAtNi02IDYgNiAwIDAgMS02LTZWNThhNiA2IDAgMSAxIDEyIDAgNiA2IDAgMCAwIDYgNnYyNHpNMCA4OFY2NGE2IDYgMCAwIDAgNi02IDYgNiAwIDAgMSAxMiAwdjEyYTYgNiAwIDAgMS02IDYgNiA2IDAgMCAwLTYgNiA2IDYgMCAwIDEtNiA2eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+"}},"time_used":9,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"client.crisp.chat/static/fonts/noto_sans/0020-007F/noto_sans_regular.woff2?23e4212","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:50.380Z","timestamp":1785127670380,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /static/fonts/noto_sans/0020-007F/noto_sans_regular.woff2?23e4212 HTTP/1.1\r\nHost: client.crisp.chat\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://buvei.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://client.crisp.chat/static/stylesheets/client_default_23e4212.css\r\nSec-Fetch-Dest: font\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\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-type: application/font-woff2\r\ncontent-length: 10340\r\naccept-ranges: bytes\r\naccess-control-allow-credentials: false\r\naccess-control-allow-headers: Content-Type, Origin\r\naccess-control-allow-methods: HEAD, GET, OPTIONS\r\naccess-control-allow-origin: *\r\naccess-control-max-age: 300\r\ncache-control: public, max-age=315360000\r\ncross-origin-resource-policy: cross-origin\r\netag: \"6a5f9773-2864\"\r\nexpires: Thu, 24 Jul 2036 04:47:50 GMT\r\nlast-modified: Tue, 21 Jul 2026 15:59:47 GMT\r\nserver: cloudflare\r\npriority: u=3,i=?0\r\nage: 40037\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\ncf-ray: a2190223ecb1c759-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"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":10340,"size_decoded":11139,"mime_type":"application/font-woff2","magic":"Web Open Font Format (Version 2), TrueType, length 10340, version 1.3932","md5":"78fa8c47eac0b8da9cca3a18bf86c011","sha1":"b90a9205a440c4a45271a4f325e32d1b05189206","sha256":"6a3dd77dcb09b4dd4f21dc57d0babf83c04d10eedd13037572384179d30106e5","sha512":"fc3f1c0af848540ba24f63bc837d1a7af28784ce0e33e3ff1ed62d7257dffa24fcd8de91106de6828328f088db362a87e6ab852a27ec682bf03e2934dd01b332","ssdeep":"192:tWsBBhOAaNbZh7Ykr9LY9qbEVExuidBU3t5akR+6bx+uhF7xKr8uaxwk:t5QMCY9q2Exu2a95OutPKYua/","tlshash":"9222bff11dc72c9ed05484706039de4ac9a7d69686ed06fc5ba314c31810f9ee1e3ae9","first_seen":"2023-04-11T10:28:32Z","last_seen":"2026-08-03T08:16:13.593995Z","times_seen":3340,"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":"image.crisp.chat/process/thumbnail/?url=https%3A%2F%2Fstorage.crisp.chat%2Fusers%2Favatar%2Foperator%2F-%2Ff%2F4%2Fc%2Ff%2Ff4cf6c3ffc536000%2Fav_13nxc7a.png\u0026width=240\u0026height=240\u00261783170208855","fqdn":"image.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:50.451Z","timestamp":1785127670451,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /process/thumbnail/?url=https%3A%2F%2Fstorage.crisp.chat%2Fusers%2Favatar%2Foperator%2F-%2Ff%2F4%2Fc%2Ff%2Ff4cf6c3ffc536000%2Fav_13nxc7a.png\u0026width=240\u0026height=240\u00261783170208855 HTTP/1.1\r\nHost: image.crisp.chat\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-type: image/webp\r\ncontent-length: 27636\r\naccept-ranges: bytes\r\ncache-control: public, max-age=315360000\r\ncross-origin-resource-policy: cross-origin\r\netag: W/\"6bf4-19f9e88c2f0\"\r\nexpires: Thu, 24 Jul 2036 04:47:50 GMT\r\nlast-modified: Sun, 26 Jul 2026 13:06:30 GMT\r\nserver: cloudflare\r\npriority: u=5,i\r\nage: 40037\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\ncf-ray: a21902245ab5b28a-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":27636,"size_decoded":28221,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image, VP8 encoding, 240x240, Scaling: [none]x[none], YUV color, decoders should clamp","md5":"182fad01c92678a04f4ea94ba56a5903","sha1":"366165aa3f8fd86c8c37d1412003f92fcf6ea104","sha256":"220a418b4435f985fef468f0046fb3f19fe363c239d00add1611f9faa97e42f2","sha512":"6ad403bbc22caa6be41cb93ac6d55cb64c9794ceae0b567a56beb6fe36d83aa72fb72ed25f0db7763e7299c330f9aa2c103859c325e9d197f3e47f68ef6fd443","ssdeep":"768:QtmXL7bFKzLGl6bn5dY5SohaKRcp2Y9uplt:QtSHxyGlwXZohaE15pT","tlshash":"11c2e18e3784f18ab012da632d34f8d5635241fbd5d43a24fc674866fa37b42a6348de","first_seen":"2026-07-27T03:56:11.64984Z","last_seen":"2026-07-27T10:05:53.921502Z","times_seen":4,"resource_available":false,"data":"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"}},"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":"buvei.com/_next/static/chunks/9476.3857751f2642cb85.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.436Z","timestamp":1785127668436,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/static/chunks/9476.3857751f2642cb85.js HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: application/javascript; charset=UTF-8\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\ncache-control: public, max-age=31536000, immutable\r\naccept-ranges: bytes\r\nlast-modified: Mon, 29 Jun 2026 05:34:13 GMT\r\netag: W/\"1d59-19f11def808\"\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nage: 188872\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=cNG8Cgp1jIGM7kzRzNOZovw2iV0iL3tnXV6C%2BMPuMIpG6D8zOwIA6vt9A0GngL7zFgjf%2B4RUnDtPOEJAHFY8LHio2SQKDf9oz2l3347TCJsex8WvtHWcP19hgg%3D%3D\"}]}\r\ncf-ray: a2190217bb3e8be6-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"]}],"data":{"size":7513,"size_decoded":2274,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (7513), with no line terminators","md5":"616482af8fadde657ac94d93f287d198","sha1":"a5d7632d719471a608e21a48c852559897b3c851","sha256":"9f6244821fc75374aef92f3c51f3db00f78379ad41e987c8b9840fbf15e09dfe","sha512":"7706ca84932e7e001b11d72f797fff1a82c8fe3da5945d3c0fd2053bc91a4e6d160ca4a95c4423109e5218119401eb5d304f790b8a5888d2ea2346fc4d398778","ssdeep":"96:k27NWlPGz9Cd7XIACbZ1YZycZ3VUWeqL+:JWlhd74AK","tlshash":"53f1f4284fc16e8af562fda40927e5563143239b616f1d9da8bdb03111e00d8eefd78e","first_seen":"2026-07-27T03:56:11.729206Z","last_seen":"2026-07-27T10:05:53.928614Z","times_seen":4,"resource_available":true,"data":"dHJ5eyFmdW5jdGlvbigpe3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sbj0obmV3IGUuRXJyb3IpLnN0YWNrO24mJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbbl09IjA0NWU3MmM4LTZjOGItNDkzZC05ZTI5LTYwZThhMzNiM2YwOCIsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9InNlbnRyeS1kYmlkLTA0NWU3MmM4LTZjOGItNDkzZC05ZTI5LTYwZThhMzNiM2YwOCIpfSgpfWNhdGNoKGUpe30idXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rX05fRT1zZWxmLndlYnBhY2tDaHVua19OX0V8fFtdKS5wdXNoKFtbOTQ3Nl0sezg5NDc2OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7X193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pLF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIEhvbWV9fSk7dmFyIF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fPV9fd2VicGFja19yZXF1aXJlX18oMzU5NDQpLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCksYW50ZF9zdHlsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI4NzQzKSxjb21wb25lbnRzX2NvbnRhaW5lcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oNjYyNTEpLG5leHRfaTE4bmV4dF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fPV9fd2VicGFja19yZXF1aXJlX18oODY5MCksY29tcG9uZW50c19tb3Rpb25fbG9hZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fPV9fd2VicGFja19yZXF1aXJlX18oNTE2MTApLHZpZXdfY29tbW9uX2NvbW1vbl9zdHlsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fPV9fd2VicGFja19yZXF1aXJlX18oOTc2MzEpLGNvbXBvbmVudHNfaW1hZ2VfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDExNTg2KSxjb21wb25lbnRzX2FudFN0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X189X193ZWJwYWNrX3JlcXVpcmVfXyg5MjA0MSksbmV4dF9keW5hbWljX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X189X193ZWJwYWNrX3JlcXVpcmVfXyg1MTUyKSxuZXh0X2R5bmFtaWNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX19kZWZhdWx0PV9fd2VicGFja19yZXF1aXJlX18ubihuZXh0X2R5bmFtaWNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXyksY29tcG9uZW50c19pY29uc19yaWdodF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fPV9fd2VicGFja19yZXF1aXJlX18oNjQ3MCksX2luZGV4X3N0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X189X193ZWJwYWNrX3JlcXVpcmVfXygyMDk4Mik7bGV0IENvbnRhY3RCdXNpbmVzcz1uZXh0X2R5bmFtaWNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX19kZWZhdWx0KCkoKCk9Pl9fd2VicGFja19yZXF1aXJlX18uZSg5MzUxKS50aGVuKF9fd2VicGFja19yZXF1aXJlX18uYmluZChfX3dlYnBhY2tfcmVxdWlyZV9fLDIwNTgzKSkse2xvYWRhYmxlR2VuZXJhdGVkOnt3ZWJwYWNrOigpPT5bMjA1ODNdfSxzc3I6ITEsbG9hZGluZzooKT0+KDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udFopKCJkaXYiLHt9KX0pO2Z1bmN0aW9uIEhvbWUoKXtsZXR7c3R5bGVzOmNvbW1vblN0eWxlcyxjeH09KDAsdmlld19jb21tb25fY29tbW9uX3N0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uYykoKSx7c3R5bGVzfT0oMCxfaW5kZXhfc3R5bGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy55KSgpLHt0YWJsZXQsbGFwdG9wLG1vYmlsZX09KDAsYW50ZF9zdHlsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5GKSgpLHt0fT0oMCxuZXh0X2kxOG5leHRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy4kRykoWyJjb21tb24iLCJpbmRleCJdKSxbYWN0aXZlLHNldEFjdGl2ZV09KDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VTdGF0ZSkoMCksW29wZW4sc2V0T3Blbl09KDAscmVhY3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy51c2VTdGF0ZSkoITEpOygwLHJlYWN0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udXNlRWZmZWN0KSgoKT0+e2xldCB0aW1lcj1zZXRJbnRlcnZhbCgoKT0+e3NldEFjdGl2ZShwcmV2PT4ocHJldisxKSUzKX0sNWUzKTtyZXR1cm4oKT0+Y2xlYXJJbnRlcnZhbCh0aW1lcil9LFtdKTtsZXQgb25DbG9zZT0oKT0+e3NldE9wZW4oITEpfTtyZXR1cm4oMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5CWCkoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMubWFpbixjb21tb25TdHlsZXMuYmcxLGNvbW1vblN0eWxlcy5tYWluUGFkZGluZzEyMCksY2hpbGRyZW46WygwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnRaKShjb21wb25lbnRzX2NvbnRhaW5lcl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlose2NoaWxkcmVuOigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnRaKShjb21wb25lbnRzX21vdGlvbl9sb2FkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18ucnEse2NoaWxkcmVuOigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLkJYKSgiZGl2Iix7Y2hpbGRyZW46WygwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnRaKSgiaDIiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLmgyLGNvbW1vblN0eWxlcy50ZXh0Q2VudGVyKSxjaGlsZHJlbjp0KCJ0aXRsZTU2Iix7bnM6ImluZGV4In0pfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uQlgpKCJkaXYiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLm10NjAsY29tbW9uU3R5bGVzLmZsZXhTdGFydCxjb21tb25TdHlsZXMuZmxleFdyYXApLGNoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2s1TGVmdCxjaGlsZHJlbjpbKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uQlgpKCJkaXYiLHtjbGFzc05hbWU6Y3goc3R5bGVzLmJsb2NrNUl0ZW0sMD09PWFjdGl2ZSYmc3R5bGVzLmJsb2NrNUl0ZW1BY3RpdmUpLGNoaWxkcmVuOlsoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50WikoImRpdiIse2NsYXNzTmFtZTpjeChzdHlsZXMuYmxvY2s1TnVtYmVyLGNvbW1vblN0eWxlcy5mbGV4Q2VudGVyQ2VudGVyKSxjaGlsZHJlbjoiMDEifSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udFopKCJkaXYiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLnN1YlRpdGxlMixjb21tb25TdHlsZXMubXQxMiksY2hpbGRyZW46dCgidGl0bGU1NyIse25zOiJpbmRleCJ9KX0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5zaXplMTYsY29tbW9uU3R5bGVzLm10MTIpLGNoaWxkcmVuOnQoInRpdGxlNTgiLHtuczoiaW5kZXgifSl9KV19KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5CWCkoImRpdiIse2NsYXNzTmFtZTpjeChzdHlsZXMuYmxvY2s1SXRlbSwxPT09YWN0aXZlJiZzdHlsZXMuYmxvY2s1SXRlbUFjdGl2ZSksY2hpbGRyZW46WygwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KHN0eWxlcy5ibG9jazVOdW1iZXIsY29tbW9uU3R5bGVzLmZsZXhDZW50ZXJDZW50ZXIpLGNoaWxkcmVuOiIwMiJ9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50WikoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuc3ViVGl0bGUyLGNvbW1vblN0eWxlcy5tdDEyKSxjaGlsZHJlbjp0KCJ0aXRsZTU5Iix7bnM6ImluZGV4In0pfSksKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udFopKCJkaXYiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLnNpemUxNixjb21tb25TdHlsZXMubXQxMiksY2hpbGRyZW46dCgidGl0bGU2MCIse25zOiJpbmRleCJ9KX0pXX0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KHN0eWxlcy5ibG9jazVJdGVtLDI9PT1hY3RpdmUmJnN0eWxlcy5ibG9jazVJdGVtQWN0aXZlKSxjaGlsZHJlbjpbKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udFopKCJkaXYiLHtjbGFzc05hbWU6Y3goc3R5bGVzLmJsb2NrNU51bWJlcixjb21tb25TdHlsZXMuZmxleENlbnRlckNlbnRlciksY2hpbGRyZW46IjAzIn0pLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5zdWJUaXRsZTIsY29tbW9uU3R5bGVzLm10MTIpLGNoaWxkcmVuOnQoInRpdGxlNjEiLHtuczoiaW5kZXgifSl9KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50WikoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuc2l6ZTE2LGNvbW1vblN0eWxlcy5tdDEyKSxjaGlsZHJlbjp0KCJ0aXRsZTYyIix7bnM6ImluZGV4In0pfSldfSldfSksMD09PWFjdGl2ZSYmKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrNVJpZ2h0LGNoaWxkcmVuOigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnRaKShjb21wb25lbnRzX2ltYWdlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uWix7c3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDQyMjE1MzAzM2E4NGYyODg1ZDEud2VicCIsZmlsbDohMCxhbHQ6InN1YiBhY2NvdW50In0pfSksMT09PWFjdGl2ZSYmKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrNVJpZ2h0MixjaGlsZHJlbjooMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50WikoY29tcG9uZW50c19pbWFnZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLlose3NyYzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA1MTUxMDE0NTdmZmJhNTRlOGViLndlYnAiLGZpbGw6ITAsYWx0OiJzYWZlIn0pfSksMj09PWFjdGl2ZSYmKDAsX2Vtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrNVJpZ2h0MixjaGlsZHJlbjooMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50WikoY29tcG9uZW50c19pbWFnZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLlose3NyYzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA1MTUxMDE1MTU3MzU2MDc0NzMwLndlYnAiLGZpbGw6ITAsYWx0OiJkZXZlbG9wZXIifSl9KV19KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5CWCkoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuZmxleENlbnRlckNlbnRlcixjb21tb25TdHlsZXMubXQ2MCksY2hpbGRyZW46WygwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLkJYKShjb21wb25lbnRzX2FudFN0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18udDgse3R5cGU6InByaW1hcnkiLGNsYXNzTmFtZTpjeChzdHlsZXMuYmxvY2s0SXRlbUJ1dHRvbixzdHlsZXMubXIxMTApLG9uQ2xpY2soKXtzZXRPcGVuKCEwKX0sY2hpbGRyZW46W3QoInRpdGxlNjMiLHtuczoiaW5kZXgifSksIiAiLCgwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnRaKShjb21wb25lbnRzX2ljb25zX3JpZ2h0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uWix7Y2xhc3NOYW1lOnN0eWxlcy5yaWdodEljb259KV19KSwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5CWCkoY29tcG9uZW50c19hbnRTdHlsZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLnQ4LHt0eXBlOiJwcmltYXJ5IixjbGFzc05hbWU6c3R5bGVzLmJsb2NrNEl0ZW1CdXR0b24yLGhyZWY6Ii9kZXZlbG9wZXIiLGNoaWxkcmVuOlt0KCJ0aXRsZTY0Iix7bnM6ImluZGV4In0pLCIgIiwoMCxfZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy50WikoY29tcG9uZW50c19pY29uc19yaWdodF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLlose2NsYXNzTmFtZTpzdHlsZXMucmlnaHRJY29ufSldfSldfSldfSl9KX0pLG9wZW4mJigwLF9lbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLnRaKShDb250YWN0QnVzaW5lc3Mse29wZW46b3BlbixvbkNsb3NlOm9uQ2xvc2V9KV19KX19fV0pOw=="}},"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":"buvei.com/_next/static/chunks/pages/index-90cea8059c43276c.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.454Z","timestamp":1785127668454,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/static/chunks/pages/index-90cea8059c43276c.js HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: application/javascript; charset=UTF-8\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\ncache-control: public, max-age=31536000, immutable\r\naccept-ranges: bytes\r\nlast-modified: Mon, 29 Jun 2026 05:34:13 GMT\r\netag: W/\"b011-19f11def808\"\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nage: 334920\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=w7eFhZCp72JOI82w1XaxLZcQRusds5dOL5mjQz%2BLRViO4ugbG0ci1YydB0MahoJ%2BK9bnodOS5aoGsyQOmDa86yBTvfP8F%2BohvhWXM54WjWXmeZjfTVQIHXOaTg%3D%3D\"}]}\r\ncf-ray: a2190217db858be6-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"]}],"data":{"size":45073,"size_decoded":8456,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (42239)","md5":"5558c09d324aef25445844399063ceb6","sha1":"9913b8a9defbb496d9f964fc1e2f583f91b29261","sha256":"ecdee69ac96e0e1efa9e4435f5dd5cdede9938c1df5256480ba37e1b88d77709","sha512":"9d6c8b4cd9e7ccc6306769b0e7b16ce0761198e684c602819bf3eecca2aab6902c3c6fe323b9b18ba405a555b511f1beea6fb73067cc8cce18dc263e8a0c34e0","ssdeep":"768:krvnv+YJeZdPmi9kEq7aI2g8ImOsle/MM+nvI07OwldcLGoM7mt78eUdmPXo5E+t:s/eHPsPzUVOPNt0","tlshash":"29138901edc5f572b317b99c44f5c244f236a7c96966841bf89ea35323a00a852bff8d","first_seen":"2026-07-27T03:56:11.659164Z","last_seen":"2026-07-27T10:05:53.926021Z","times_seen":4,"resource_available":true,"data":"dHJ5eyFmdW5jdGlvbigpe3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sbj0obmV3IGUuRXJyb3IpLnN0YWNrO24mJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbbl09IjljZTQ3YjU3LWM3ZTUtNDRiMy1iZWQzLWJhMmZjNGEzNmU0MiIsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9InNlbnRyeS1kYmlkLTljZTQ3YjU3LWM3ZTUtNDRiMy1iZWQzLWJhMmZjNGEzNmU0MiIpfSgpfWNhdGNoKGUpe30oc2VsZi53ZWJwYWNrQ2h1bmtfTl9FPXNlbGYud2VicGFja0NodW5rX05fRXx8W10pLnB1c2goW1s1NDA1XSx7NDgzMTI6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX191bnVzZWRfd2VicGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18peyh3aW5kb3cuX19ORVhUX1A9d2luZG93Ll9fTkVYVF9QfHxbXSkucHVzaChbIi8iLGZ1bmN0aW9uKCl7cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oNTE4NDEpfV0pfSw1MTg0MTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyksX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se19fTl9TU0c6ZnVuY3Rpb24oKXtyZXR1cm4gX19OX1NTR30sZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBwYWdlc19Ib21lfX0pO3ZhciBlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtPV9fd2VicGFja19yZXF1aXJlX18oMzU5NDQpLHJlYWN0PV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLGVzbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDg2OTApLG5leHRfcm91dGVyPV9fd2VicGFja19yZXF1aXJlX18oMTExNjMpLGR5bmFtaWM9X193ZWJwYWNrX3JlcXVpcmVfXyg1MTUyKSxkeW5hbWljX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGR5bmFtaWMpLHVzZVJlc3BvbnNpdmU9X193ZWJwYWNrX3JlcXVpcmVfXygyODc0MyksbWFpbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDU5MDI2KSxzZW89X193ZWJwYWNrX3JlcXVpcmVfXyg3MjE3NCksc3RydWN0dXJlZERhdGE9X193ZWJwYWNrX3JlcXVpcmVfXygzNzg1NCksY29udGFpbmVyPV9fd2VicGFja19yZXF1aXJlX18oNjYyNTEpLGxvYWQ9X193ZWJwYWNrX3JlcXVpcmVfXyg1MTYxMCksdXNlX2lzb21vcnBoaWNfZWZmZWN0PV9fd2VicGFja19yZXF1aXJlX18oNTg4NjgpO2Z1bmN0aW9uIHVzZUlzTW91bnRlZCgpe2xldCBpc01vdW50ZWQ9KDAscmVhY3QudXNlUmVmKSghMSk7cmV0dXJuKDAsdXNlX2lzb21vcnBoaWNfZWZmZWN0LkwpKCgpPT4oaXNNb3VudGVkLmN1cnJlbnQ9ITAsKCk9Pntpc01vdW50ZWQuY3VycmVudD0hMX0pLFtdKSxpc01vdW50ZWR9dmFyIGZyYW1lbG9vcF9mcmFtZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDIwNzQpLFByZXNlbmNlQ29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDI0MCksdXNlX2NvbnN0YW50PV9fd2VicGFja19yZXF1aXJlX18oOTY2ODEpO2NsYXNzIFBvcENoaWxkTWVhc3VyZSBleHRlbmRzIHJlYWN0LkNvbXBvbmVudHtnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShwcmV2UHJvcHMpe2xldCBlbGVtZW50PXRoaXMucHJvcHMuY2hpbGRSZWYuY3VycmVudDtpZihlbGVtZW50JiZwcmV2UHJvcHMuaXNQcmVzZW50JiYhdGhpcy5wcm9wcy5pc1ByZXNlbnQpe2xldCBzaXplPXRoaXMucHJvcHMuc2l6ZVJlZi5jdXJyZW50O3NpemUuaGVpZ2h0PWVsZW1lbnQub2Zmc2V0SGVpZ2h0fHwwLHNpemUud2lkdGg9ZWxlbWVudC5vZmZzZXRXaWR0aHx8MCxzaXplLnRvcD1lbGVtZW50Lm9mZnNldFRvcCxzaXplLmxlZnQ9ZWxlbWVudC5vZmZzZXRMZWZ0fXJldHVybiBudWxsfWNvbXBvbmVudERpZFVwZGF0ZSgpe31yZW5kZXIoKXtyZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbn19ZnVuY3Rpb24gUG9wQ2hpbGQoe2NoaWxkcmVuLGlzUHJlc2VudH0pe2xldCBpZD0oMCxyZWFjdC51c2VJZCkoKSxyZWY9KDAscmVhY3QudXNlUmVmKShudWxsKSxzaXplPSgwLHJlYWN0LnVzZVJlZikoe3dpZHRoOjAsaGVpZ2h0OjAsdG9wOjAsbGVmdDowfSk7cmV0dXJuKDAscmVhY3QudXNlSW5zZXJ0aW9uRWZmZWN0KSgoKT0+e2xldHt3aWR0aCxoZWlnaHQsdG9wLGxlZnR9PXNpemUuY3VycmVudDtpZihpc1ByZXNlbnR8fCFyZWYuY3VycmVudHx8IXdpZHRofHwhaGVpZ2h0KXJldHVybjtyZWYuY3VycmVudC5kYXRhc2V0Lm1vdGlvblBvcElkPWlkO2xldCBzdHlsZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3JldHVybiBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlKSxzdHlsZS5zaGVldCYmc3R5bGUuc2hlZXQuaW5zZXJ0UnVsZShgCiAgICAgICAgICBbZGF0YS1tb3Rpb24tcG9wLWlkPSIke2lkfSJdIHsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7CiAgICAgICAgICAgIHdpZHRoOiAke3dpZHRofXB4ICFpbXBvcnRhbnQ7CiAgICAgICAgICAgIGhlaWdodDogJHtoZWlnaHR9cHggIWltcG9ydGFudDsKICAgICAgICAgICAgdG9wOiAke3RvcH1weCAhaW1wb3J0YW50OwogICAgICAgICAgICBsZWZ0OiAke2xlZnR9cHggIWltcG9ydGFudDsKICAgICAgICAgIH0KICAgICAgICBgKSwoKT0+e2RvY3VtZW50LmhlYWQucmVtb3ZlQ2hpbGQoc3R5bGUpfX0sW2lzUHJlc2VudF0pLHJlYWN0LmNyZWF0ZUVsZW1lbnQoUG9wQ2hpbGRNZWFzdXJlLHtpc1ByZXNlbnQ6aXNQcmVzZW50LGNoaWxkUmVmOnJlZixzaXplUmVmOnNpemV9LHJlYWN0LmNsb25lRWxlbWVudChjaGlsZHJlbix7cmVmfSkpfWxldCBQcmVzZW5jZUNoaWxkPSh7Y2hpbGRyZW4saW5pdGlhbCxpc1ByZXNlbnQsb25FeGl0Q29tcGxldGUsY3VzdG9tLHByZXNlbmNlQWZmZWN0c0xheW91dCxtb2RlfSk9PntsZXQgcHJlc2VuY2VDaGlsZHJlbj0oMCx1c2VfY29uc3RhbnQuaCkobmV3Q2hpbGRyZW5NYXApLGlkPSgwLHJlYWN0LnVzZUlkKSgpLGNvbnRleHQ9KDAscmVhY3QudXNlTWVtbykoKCk9Pih7aWQsaW5pdGlhbCxpc1ByZXNlbnQsY3VzdG9tLG9uRXhpdENvbXBsZXRlKGNoaWxkSWQpe2ZvcihsZXQgaXNDb21wbGV0ZSBvZihwcmVzZW5jZUNoaWxkcmVuLnNldChjaGlsZElkLCEwKSxwcmVzZW5jZUNoaWxkcmVuLnZhbHVlcygpKSlpZighaXNDb21wbGV0ZSlyZXR1cm47b25FeGl0Q29tcGxldGUmJm9uRXhpdENvbXBsZXRlKCl9LHJlZ2lzdGVyOmNoaWxkSWQ9PihwcmVzZW5jZUNoaWxkcmVuLnNldChjaGlsZElkLCExKSwoKT0+cHJlc2VuY2VDaGlsZHJlbi5kZWxldGUoY2hpbGRJZCkpfSkscHJlc2VuY2VBZmZlY3RzTGF5b3V0P3ZvaWQgMDpbaXNQcmVzZW50XSk7cmV0dXJuKDAscmVhY3QudXNlTWVtbykoKCk9PntwcmVzZW5jZUNoaWxkcmVuLmZvckVhY2goKF8sa2V5KT0+cHJlc2VuY2VDaGlsZHJlbi5zZXQoa2V5LCExKSl9LFtpc1ByZXNlbnRdKSxyZWFjdC51c2VFZmZlY3QoKCk9Pntpc1ByZXNlbnR8fHByZXNlbmNlQ2hpbGRyZW4uc2l6ZXx8IW9uRXhpdENvbXBsZXRlfHxvbkV4aXRDb21wbGV0ZSgpfSxbaXNQcmVzZW50XSksInBvcExheW91dCI9PT1tb2RlJiYoY2hpbGRyZW49cmVhY3QuY3JlYXRlRWxlbWVudChQb3BDaGlsZCx7aXNQcmVzZW50OmlzUHJlc2VudH0sY2hpbGRyZW4pKSxyZWFjdC5jcmVhdGVFbGVtZW50KFByZXNlbmNlQ29udGV4dC5PLlByb3ZpZGVyLHt2YWx1ZTpjb250ZXh0fSxjaGlsZHJlbil9O2Z1bmN0aW9uIG5ld0NoaWxkcmVuTWFwKCl7cmV0dXJuIG5ldyBNYXB9dmFyIExheW91dEdyb3VwQ29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDI1MzY0KSxlcnJvcnM9X193ZWJwYWNrX3JlcXVpcmVfXyg0NTQ4Nyk7bGV0IGdldENoaWxkS2V5PWNoaWxkPT5jaGlsZC5rZXl8fCIiLEFuaW1hdGVQcmVzZW5jZT0oe2NoaWxkcmVuLGN1c3RvbSxpbml0aWFsPSEwLG9uRXhpdENvbXBsZXRlLGV4aXRCZWZvcmVFbnRlcixwcmVzZW5jZUFmZmVjdHNMYXlvdXQ9ITAsbW9kZT0ic3luYyJ9KT0+e3ZhciBjYWxsYmFjazsoMCxlcnJvcnMuaykoIWV4aXRCZWZvcmVFbnRlciwiUmVwbGFjZSBleGl0QmVmb3JlRW50ZXIgd2l0aCBtb2RlPSd3YWl0JyIpO2xldCBmb3JjZVJlbmRlcj0oMCxyZWFjdC51c2VDb250ZXh0KShMYXlvdXRHcm91cENvbnRleHQucCkuZm9yY2VSZW5kZXJ8fGZ1bmN0aW9uKCl7bGV0IGlzTW91bnRlZD11c2VJc01vdW50ZWQoKSxbZm9yY2VkUmVuZGVyQ291bnQsc2V0Rm9yY2VkUmVuZGVyQ291bnRdPSgwLHJlYWN0LnVzZVN0YXRlKSgwKSxmb3JjZVJlbmRlcj0oMCxyZWFjdC51c2VDYWxsYmFjaykoKCk9Pntpc01vdW50ZWQuY3VycmVudCYmc2V0Rm9yY2VkUmVuZGVyQ291bnQoZm9yY2VkUmVuZGVyQ291bnQrMSl9LFtmb3JjZWRSZW5kZXJDb3VudF0pLGRlZmVycmVkRm9yY2VSZW5kZXI9KDAscmVhY3QudXNlQ2FsbGJhY2spKCgpPT5mcmFtZWxvb3BfZnJhbWUuV2kucG9zdFJlbmRlcihmb3JjZVJlbmRlciksW2ZvcmNlUmVuZGVyXSk7cmV0dXJuW2RlZmVycmVkRm9yY2VSZW5kZXIsZm9yY2VkUmVuZGVyQ291bnRdfSgpWzBdLGlzTW91bnRlZD11c2VJc01vdW50ZWQoKSxmaWx0ZXJlZENoaWxkcmVuPWZ1bmN0aW9uKGNoaWxkcmVuKXtsZXQgZmlsdGVyZWQ9W107cmV0dXJuIHJlYWN0LkNoaWxkcmVuLmZvckVhY2goY2hpbGRyZW4sY2hpbGQ9PnsoMCxyZWFjdC5pc1ZhbGlkRWxlbWVudCkoY2hpbGQpJiZmaWx0ZXJlZC5wdXNoKGNoaWxkKX0pLGZpbHRlcmVkfShjaGlsZHJlbiksY2hpbGRyZW5Ub1JlbmRlcj1maWx0ZXJlZENoaWxkcmVuLGV4aXRpbmdDaGlsZHJlbj0oMCxyZWFjdC51c2VSZWYpKG5ldyBNYXApLmN1cnJlbnQscHJlc2VudENoaWxkcmVuPSgwLHJlYWN0LnVzZVJlZikoY2hpbGRyZW5Ub1JlbmRlciksYWxsQ2hpbGRyZW49KDAscmVhY3QudXNlUmVmKShuZXcgTWFwKS5jdXJyZW50LGlzSW5pdGlhbFJlbmRlcj0oMCxyZWFjdC51c2VSZWYpKCEwKTtpZigoMCx1c2VfaXNvbW9ycGhpY19lZmZlY3QuTCkoKCk9Pntpc0luaXRpYWxSZW5kZXIuY3VycmVudD0hMSxmdW5jdGlvbihjaGlsZHJlbixhbGxDaGlsZHJlbil7Y2hpbGRyZW4uZm9yRWFjaChjaGlsZD0+e2xldCBrZXk9Z2V0Q2hpbGRLZXkoY2hpbGQpO2FsbENoaWxkcmVuLnNldChrZXksY2hpbGQpfSl9KGZpbHRlcmVkQ2hpbGRyZW4sYWxsQ2hpbGRyZW4pLHByZXNlbnRDaGlsZHJlbi5jdXJyZW50PWNoaWxkcmVuVG9SZW5kZXJ9KSxjYWxsYmFjaz0oKT0+e2lzSW5pdGlhbFJlbmRlci5jdXJyZW50PSEwLGFsbENoaWxkcmVuLmNsZWFyKCksZXhpdGluZ0NoaWxkcmVuLmNsZWFyKCl9LCgwLHJlYWN0LnVzZUVmZmVjdCkoKCk9PigpPT5jYWxsYmFjaygpLFtdKSxpc0luaXRpYWxSZW5kZXIuY3VycmVudClyZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChyZWFjdC5GcmFnbWVudCxudWxsLGNoaWxkcmVuVG9SZW5kZXIubWFwKGNoaWxkPT5yZWFjdC5jcmVhdGVFbGVtZW50KFByZXNlbmNlQ2hpbGQse2tleTpnZXRDaGlsZEtleShjaGlsZCksaXNQcmVzZW50OiEwLGluaXRpYWw6ISFpbml0aWFsJiZ2b2lkIDAscHJlc2VuY2VBZmZlY3RzTGF5b3V0OnByZXNlbmNlQWZmZWN0c0xheW91dCxtb2RlOm1vZGV9LGNoaWxkKSkpO2NoaWxkcmVuVG9SZW5kZXI9Wy4uLmNoaWxkcmVuVG9SZW5kZXJdO2xldCBwcmVzZW50S2V5cz1wcmVzZW50Q2hpbGRyZW4uY3VycmVudC5tYXAoZ2V0Q2hpbGRLZXkpLHRhcmdldEtleXM9ZmlsdGVyZWRDaGlsZHJlbi5tYXAoZ2V0Q2hpbGRLZXkpLG51bVByZXNlbnQ9cHJlc2VudEtleXMubGVuZ3RoO2ZvcihsZXQgaT0wO2k8bnVtUHJlc2VudDtpKyspe2xldCBrZXk9cHJlc2VudEtleXNbaV07LTEhPT10YXJnZXRLZXlzLmluZGV4T2Yoa2V5KXx8ZXhpdGluZ0NoaWxkcmVuLmhhcyhrZXkpfHxleGl0aW5nQ2hpbGRyZW4uc2V0KGtleSx2b2lkIDApfXJldHVybiJ3YWl0Ij09PW1vZGUmJmV4aXRpbmdDaGlsZHJlbi5zaXplJiYoY2hpbGRyZW5Ub1JlbmRlcj1bXSksZXhpdGluZ0NoaWxkcmVuLmZvckVhY2goKGNvbXBvbmVudCxrZXkpPT57aWYoLTEhPT10YXJnZXRLZXlzLmluZGV4T2Yoa2V5KSlyZXR1cm47bGV0IGNoaWxkPWFsbENoaWxkcmVuLmdldChrZXkpO2lmKCFjaGlsZClyZXR1cm47bGV0IGluc2VydGlvbkluZGV4PXByZXNlbnRLZXlzLmluZGV4T2Yoa2V5KSxleGl0aW5nQ29tcG9uZW50PWNvbXBvbmVudDtpZighZXhpdGluZ0NvbXBvbmVudCl7bGV0IG9uRXhpdD0oKT0+e2V4aXRpbmdDaGlsZHJlbi5kZWxldGUoa2V5KTtsZXQgbGVmdE92ZXJLZXlzPUFycmF5LmZyb20oYWxsQ2hpbGRyZW4ua2V5cygpKS5maWx0ZXIoY2hpbGRLZXk9PiF0YXJnZXRLZXlzLmluY2x1ZGVzKGNoaWxkS2V5KSk7aWYobGVmdE92ZXJLZXlzLmZvckVhY2gobGVmdE92ZXJLZXk9PmFsbENoaWxkcmVuLmRlbGV0ZShsZWZ0T3ZlcktleSkpLHByZXNlbnRDaGlsZHJlbi5jdXJyZW50PWZpbHRlcmVkQ2hpbGRyZW4uZmlsdGVyKHByZXNlbnRDaGlsZD0+e2xldCBwcmVzZW50Q2hpbGRLZXk9Z2V0Q2hpbGRLZXkocHJlc2VudENoaWxkKTtyZXR1cm4gcHJlc2VudENoaWxkS2V5PT09a2V5fHxsZWZ0T3ZlcktleXMuaW5jbHVkZXMocHJlc2VudENoaWxkS2V5KX0pLCFleGl0aW5nQ2hpbGRyZW4uc2l6ZSl7aWYoITE9PT1pc01vdW50ZWQuY3VycmVudClyZXR1cm47Zm9yY2VSZW5kZXIoKSxvbkV4aXRDb21wbGV0ZSYmb25FeGl0Q29tcGxldGUoKX19O2V4aXRpbmdDb21wb25lbnQ9cmVhY3QuY3JlYXRlRWxlbWVudChQcmVzZW5jZUNoaWxkLHtrZXk6Z2V0Q2hpbGRLZXkoY2hpbGQpLGlzUHJlc2VudDohMSxvbkV4aXRDb21wbGV0ZTpvbkV4aXQsY3VzdG9tOmN1c3RvbSxwcmVzZW5jZUFmZmVjdHNMYXlvdXQ6cHJlc2VuY2VBZmZlY3RzTGF5b3V0LG1vZGU6bW9kZX0sY2hpbGQpLGV4aXRpbmdDaGlsZHJlbi5zZXQoa2V5LGV4aXRpbmdDb21wb25lbnQpfWNoaWxkcmVuVG9SZW5kZXIuc3BsaWNlKGluc2VydGlvbkluZGV4LDAsZXhpdGluZ0NvbXBvbmVudCl9KSxjaGlsZHJlblRvUmVuZGVyPWNoaWxkcmVuVG9SZW5kZXIubWFwKGNoaWxkPT57bGV0IGtleT1jaGlsZC5rZXk7cmV0dXJuIGV4aXRpbmdDaGlsZHJlbi5oYXMoa2V5KT9jaGlsZDpyZWFjdC5jcmVhdGVFbGVtZW50KFByZXNlbmNlQ2hpbGQse2tleTpnZXRDaGlsZEtleShjaGlsZCksaXNQcmVzZW50OiEwLHByZXNlbmNlQWZmZWN0c0xheW91dDpwcmVzZW5jZUFmZmVjdHNMYXlvdXQsbW9kZTptb2RlfSxjaGlsZCl9KSxyZWFjdC5jcmVhdGVFbGVtZW50KHJlYWN0LkZyYWdtZW50LG51bGwsZXhpdGluZ0NoaWxkcmVuLnNpemU/Y2hpbGRyZW5Ub1JlbmRlcjpjaGlsZHJlblRvUmVuZGVyLm1hcChjaGlsZD0+KDAscmVhY3QuY2xvbmVFbGVtZW50KShjaGlsZCkpKX07dmFyIG1vdGlvbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDg0MjE3KSxjb21wb25lbnRzX2ltYWdlPV9fd2VicGFja19yZXF1aXJlX18oMTE1ODYpLGNvbW1vbl9zdHlsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk3NjMxKSxyaWdodD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY0NzApLG5leHRfbGluaz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQxNjY0KSxsaW5rX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKG5leHRfbGluayksaW5kZXhfc3R5bGU9X193ZWJwYWNrX3JlcXVpcmVfXygyMDk4Mik7bGV0IHdvcmRzPVsiRmFjZWJvb2sgQWRzIiwiR29vZ2xlIEFkcyIsIlRpa3RvayBBZHMiLCJBaXJibmIiLCJUcmlwIiwiQ2hhdEdQVCJdO2Z1bmN0aW9uIEhvbWUoKXtsZXR7c3R5bGVzOmNvbW1vblN0eWxlcyxjeH09KDAsY29tbW9uX3N0eWxlLmMpKCkse3N0eWxlc309KDAsaW5kZXhfc3R5bGUueSkoKSx7dGFibGV0LGxhcHRvcCxtb2JpbGV9PSgwLHVzZVJlc3BvbnNpdmUuRikoKSx7dH09KDAsZXNtLiRHKShbImNvbW1vbiIsImluZGV4Il0pLFtpbmRleCxzZXRJbmRleF09KDAscmVhY3QudXNlU3RhdGUpKDApO3JldHVybigwLHJlYWN0LnVzZUVmZmVjdCkoKCk9PntsZXQgdGltZXI9c2V0SW50ZXJ2YWwoKCk9PntzZXRJbmRleChwcmV2PT4ocHJldisxKSV3b3Jkcy5sZW5ndGgpfSwzZTMpO3JldHVybigpPT5jbGVhckludGVydmFsKHRpbWVyKX0sW10pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLm1haW4sIWxhcHRvcCYmc3R5bGVzLmJnMSxjb21tb25TdHlsZXMuY29sb3JXaGl0ZSxjb21tb25TdHlsZXMucmVsYXRpdmUpLGNoaWxkcmVuOltsYXB0b3AmJigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJnMldyYXAsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmcyLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7ZmlsbDohMCxhbHQ6ImJ1dmVpIixwcmlvcml0eTohMCxzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDE5MTA0NTAzMDAxY2ZjMjNjYy53ZWJwIn0pfSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmNvbW1vblN0eWxlcy50b3BJbmRleCxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShjb250YWluZXIuWix7Y2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMubWFpblBhZGRpbmc4MCksY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6Y29tbW9uU3R5bGVzLmZsZXhTdGFydEJldHdlZW4sY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJhbm5lcldyYXAsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJoMSIse2NsYXNzTmFtZTpjb21tb25TdHlsZXMuaDEsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjaGlsZHJlbjp0KCJ0aXRsZTMiLHtuczoiaW5kZXgifSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2hpbGRyZW46dCgidGl0bGU1Iix7bnM6ImluZGV4In0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYW5pbWF0ZVdyYXAsY2hpbGRyZW46W3QoInRpdGxlNCIse25zOiJpbmRleCJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5hbmltYXRlQ29udGFpbmVyLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKEFuaW1hdGVQcmVzZW5jZSx7Y2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikobW90aW9uLkUuZGl2LHtpbml0aWFsOnt5OjUwLG9wYWNpdHk6MH0sYW5pbWF0ZTp7eTowLG9wYWNpdHk6MX0sZXhpdDp7eTotNTAsb3BhY2l0eTowfSx0cmFuc2l0aW9uOntkdXJhdGlvbjouNn0sc3R5bGU6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdGV4dEFsaWduOiJjZW50ZXIiLHRvcDotMzAsY29sb3I6IiNmZmYifSxjaGlsZHJlbjp3b3Jkc1tpbmRleF19LHdvcmRzW2luZGV4XSl9KX0pXX0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJwIix7Y2xhc3NOYW1lOiJzci1vbmx5IixjaGlsZHJlbjp0KCJ0aXRsZTk4Iix7bnM6ImluZGV4In0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuZmxleFN0YXJ0LGNvbW1vblN0eWxlcy5tdDM2KSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2sxU3ViSVRlbSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpjb21tb25TdHlsZXMuc2l6ZTMyLGNoaWxkcmVuOiIxNSsifSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuc3ViUHJpbWFyeVRleHQsY2hpbGRyZW46dCgidGl0bGU2Iix7bnM6ImluZGV4In0pfSldfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2sxU3ViSVRlbSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpjb21tb25TdHlsZXMuc2l6ZTMyLGNoaWxkcmVuOiIzNSsifSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuc3ViUHJpbWFyeVRleHQsY2hpbGRyZW46dCgidGl0bGU3Iix7bnM6ImluZGV4In0pfSldfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2sxU3ViSVRlbSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpjb21tb25TdHlsZXMuc2l6ZTMyLGNoaWxkcmVuOiI1LDAwMCsifSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuc3ViUHJpbWFyeVRleHQsY2hpbGRyZW46dCgidGl0bGU4Iix7bnM6ImluZGV4In0pfSldfSldfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkobGlua19kZWZhdWx0KCkse2hyZWY6Imh0dHBzOi8vYXBwLmJ1dmVpLmNvbS9zaWduaW4iLGNsYXNzTmFtZTpjeChzdHlsZXMuYmxvY2sxUXVpY2tCdG4sY29tbW9uU3R5bGVzLmZsZXhDZW50ZXJCZXR3ZWVuKSx0YXJnZXQ6Il9ibGFuayIsY2hpbGRyZW46W3QoInRpdGxlOSIse25zOiJpbmRleCJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgic3BhbiIse2NsYXNzTmFtZTpzdHlsZXMuYXJyb3dCb3gsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikocmlnaHQuWix7d2lkdGg6MTYsaGVpZ2h0OjE0fSl9KV19KV19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5iYW5uZXIsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoY29tcG9uZW50c19pbWFnZS5aLHtzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDE4MTk0NjI0OWYzZDZhMDYyZi53ZWJwIixhbHQ6ImJhbm5lciIscHJpb3JpdHk6ITAsZmlsbDohMH0pfSldfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikobG9hZC5NMyx7bW9iaWxlOm1vYmlsZSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5iYW5rV3JhcCxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpjb21tb25TdHlsZXMuc3ViVGl0bGUsY2hpbGRyZW46dCgidGl0bGUxMCIse25zOiJpbmRleCJ9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLmZsZXhDZW50ZXJDZW50ZXIpLGNoaWxkcmVuOkFycmF5KG1vYmlsZT8zOmxhcHRvcD81OjQpLmZpbGwoMCkubWFwKChfLGluZGV4KT0+KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5IWSx7Y2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6Y3goc3R5bGVzLnZpc2Esc3R5bGVzLmJhbmtJdGVtKSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShjb21wb25lbnRzX2ltYWdlLlose3NyYzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MTkxMTEwMDk2ODgzNjdmZWVmLndlYnAiLGFsdDoiVklTQSIsZmlsbDohMH0pfSxpbmRleCksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpjeChzdHlsZXMubWFzdGVyLHN0eWxlcy5iYW5rSXRlbSksY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoY29tcG9uZW50c19pbWFnZS5aLHtzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDE5MTEwOTUxMTBmNWM5ZTZmMC53ZWJwIixhbHQ6Ik1hc3RlcmNhcmQiLGZpbGw6ITB9KX0pXX0pKX0pXX0pfSldfSl9KX0pXX0pfXZhciBjbG9jaz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk4Mjc0KSxhbnRTdHlsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDkyMDQxKTtmdW5jdGlvbiBibG9jazJfSG9tZSgpe2xldHtzdHlsZXM6Y29tbW9uU3R5bGVzLGN4fT0oMCxjb21tb25fc3R5bGUuYykoKSx7c3R5bGVzfT0oMCxpbmRleF9zdHlsZS55KSgpLHt0fT0oMCxlc20uJEcpKFsiY29tbW9uIiwiaW5kZXgiXSk7cmV0dXJuKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMubWFpbiksY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoY29udGFpbmVyLlose2NoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxvYWQucnEse2NoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6Y29tbW9uU3R5bGVzLm1haW5QYWRkaW5nMTIwLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiaDIiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLmgyLGNvbW1vblN0eWxlcy50ZXh0Q2VudGVyKSxjaGlsZHJlbjp0KCJ0aXRsZTExIix7bnM6ImluZGV4In0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuc3ViVGl0bGUyLGNvbW1vblN0eWxlcy50ZXh0Q2VudGVyKSxjaGlsZHJlbjp0KCJ0aXRsZTEyIix7bnM6ImluZGV4In0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMubXQ4MCxjb21tb25TdHlsZXMuZmxleCxjb21tb25TdHlsZXMuZmxleFdyYXApLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsb2FkLk0zLHtjbGFzc05hbWU6Y3goc3R5bGVzLmhpZ2hJdGVtKSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmhpZ2hOdW1iZXIsY2hpbGRyZW46Ii8wMSJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5oaWdoSGVhZGVySW1nLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7c3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDQxOTEyMDQwMTRlOWE5NTczYjAud2VicCIsYWx0OiJwYXkiLGZpbGw6ITB9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJoMyIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuc2l6ZTIwLGNvbW1vblN0eWxlcy5tdDIwKSxjaGlsZHJlbjp0KCJ0aXRsZTEzIix7bnM6ImluZGV4In0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuc2l6ZTE2LGNvbW1vblN0eWxlcy5tdDgpLGNoaWxkcmVuOnQoInRpdGxlMTQiLHtuczoiaW5kZXgifSl9KV19KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxvYWQuTTMse2NsYXNzTmFtZTpjeChzdHlsZXMuaGlnaEl0ZW0pLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuaGlnaE51bWJlcixjaGlsZHJlbjoiLzAyIn0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmhpZ2hIZWFkZXJJbWcsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoY29tcG9uZW50c19pbWFnZS5aLHtzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDE5MTIyMDE2MGJmOGUxMjEzNi53ZWJwIixhbHQ6ImNhcmQgZnJlZXplIixmaWxsOiEwfSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiaDMiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLnNpemUyMCxjb21tb25TdHlsZXMubXQyMCksY2hpbGRyZW46dCgidGl0bGUxNSIse25zOiJpbmRleCJ9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLnNpemUxNixjb21tb25TdHlsZXMubXQ4KSxjaGlsZHJlbjp0KCJ0aXRsZTE2Iix7bnM6ImluZGV4In0pfSldfSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsb2FkLk0zLHtjbGFzc05hbWU6Y3goc3R5bGVzLmhpZ2hJdGVtKSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmhpZ2hOdW1iZXIsY2hpbGRyZW46Ii8wMyJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5oaWdoSGVhZGVySW1nLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7c3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDQxOTEyMjE0NDRhZmU1YjIyMjgud2VicCIsYWx0OiJjYXJkIGluZm8iLGZpbGw6ITB9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJoMyIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuc2l6ZTIwLGNvbW1vblN0eWxlcy5tdDIwKSxjaGlsZHJlbjp0KCJ0aXRsZTE3Iix7bnM6ImluZGV4In0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuc2l6ZTE2LGNvbW1vblN0eWxlcy5tdDgpLGNoaWxkcmVuOnQoInRpdGxlMTgiLHtuczoiaW5kZXgifSl9KV19KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxvYWQuTTMse2NsYXNzTmFtZTpjeChzdHlsZXMuaGlnaEl0ZW0pLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuaGlnaE51bWJlcixjaGlsZHJlbjoiLzA0In0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmhpZ2hIZWFkZXJJbWcsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoY29tcG9uZW50c19pbWFnZS5aLHtzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDE5MTIyMjQwNGIwODY4NGI3NS53ZWJwIixhbHQ6ImFwcGx5IHBheSIsZmlsbDohMH0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImgzIix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5zaXplMjAsY29tbW9uU3R5bGVzLm10MjApLGNoaWxkcmVuOnQoInRpdGxlMTkiLHtuczoiaW5kZXgifSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5zaXplMTYsY29tbW9uU3R5bGVzLm10OCksY2hpbGRyZW46dCgidGl0bGUyMCIse25zOiJpbmRleCJ9KX0pXX0pfSldfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuZmxleCxjb21tb25TdHlsZXMuZmxleFdyYXApLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KHN0eWxlcy5oaWdoSXRlbSxzdHlsZXMuaGlnaEl0ZW0yKSxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuaGlnaE51bWJlcixjaGlsZHJlbjoiLzA1In0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmhpZ2hIZWFkZXJJbWcyLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7c3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDQxOTEyNDM1MzVhNDhjZmM3YjIud2VicCIsYWx0OiJwYXlvdXQiLGZpbGw6ITB9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJoMyIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuc2l6ZTIwLGNvbW1vblN0eWxlcy5tdDIwLGNvbW1vblN0eWxlcy5mbGV4Q2VudGVyKSxjaGlsZHJlbjpbdCgidGl0bGUyMSIse25zOiJpbmRleCJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KHN0eWxlcy5jb21taW5nV3JhcCxjb21tb25TdHlsZXMuZmxleENlbnRlciksY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNsb2NrLlose3dpZHRoOjEwLGhlaWdodDoxMCxjbGFzc05hbWU6c3R5bGVzLmNsb2NrSWNvbn0pLHQoImNvbW1pbmdTb29uIix7bnM6ImNvbW1vbiJ9KV19KV19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5zaXplMTYsY29tbW9uU3R5bGVzLm10OCksY2hpbGRyZW46dCgidGl0bGUyMiIse25zOiJpbmRleCJ9KX0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6Y3goc3R5bGVzLmhpZ2hJdGVtLHN0eWxlcy5oaWdoSXRlbTIpLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5oaWdoTnVtYmVyLGNoaWxkcmVuOiIvMDYifSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuaGlnaEhlYWRlckltZzIsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoY29tcG9uZW50c19pbWFnZS5aLHtzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDE5MTI1MTIzYzZiMmVhZjA5ZS53ZWJwIixhbHQ6InBheXBhbCIsZmlsbDohMH0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImgzIix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5zaXplMjAsY29tbW9uU3R5bGVzLm10MjAsY29tbW9uU3R5bGVzLmZsZXhDZW50ZXIpLGNoaWxkcmVuOnQoInRpdGxlMjMiLHtuczoiaW5kZXgifSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5zaXplMTYsY29tbW9uU3R5bGVzLm10OCksY2hpbGRyZW46dCgidGl0bGUyNCIse25zOiJpbmRleCJ9KX0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6Y3goc3R5bGVzLmhpZ2hJdGVtLHN0eWxlcy5oaWdoSXRlbTIpLGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5oaWdoTnVtYmVyLGNoaWxkcmVuOiIvMDcifSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuaGlnaEhlYWRlckltZzIsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoY29tcG9uZW50c19pbWFnZS5aLHtzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDE5MTI1MjI4MjMzZmZhNjYzYi53ZWJwIixhbHQ6IlBoeXNpY2FsIENhcmQiLGZpbGw6ITB9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJoMyIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuc2l6ZTIwLGNvbW1vblN0eWxlcy5tdDIwLGNvbW1vblN0eWxlcy5mbGV4Q2VudGVyKSxjaGlsZHJlbjpbdCgidGl0bGUyNSIse25zOiJpbmRleCJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KHN0eWxlcy5jb21taW5nV3JhcCxjb21tb25TdHlsZXMuZmxleENlbnRlciksY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNsb2NrLlose3dpZHRoOjEwLGhlaWdodDoxMCxjbGFzc05hbWU6c3R5bGVzLmNsb2NrSWNvbn0pLHQoImNvbW1pbmdTb29uIix7bnM6ImNvbW1vbiJ9KV19KV19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5zaXplMTYsY29tbW9uU3R5bGVzLm10OCksY2hpbGRyZW46dCgidGl0bGUyNiIse25zOiJpbmRleCJ9KX0pXX0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLm10ODAsY29tbW9uU3R5bGVzLnRleHRDZW50ZXIpLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxpbmtfZGVmYXVsdCgpLHtocmVmOiJodHRwczovL2FwcC5idXZlaS5jb20vc2lnbmluIix0YXJnZXQ6Il9ibGFuayIsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoYW50U3R5bGUudDgse3R5cGU6InByaW1hcnkiLGNoaWxkcmVuOlt0KCJ0aXRsZTI3Iix7bnM6ImluZGV4In0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKHJpZ2h0Llose2NsYXNzTmFtZTpzdHlsZXMucmlnaHRJY29ufSldfSl9KX0pXX0pfSl9KX0pfWxldCBCbG9jazM9ZHluYW1pY19kZWZhdWx0KCkoKCk9PlByb21pc2UuYWxsKFtfX3dlYnBhY2tfcmVxdWlyZV9fLmUoOTM1MSksX193ZWJwYWNrX3JlcXVpcmVfXy5lKDE5MjYpXSkudGhlbihfX3dlYnBhY2tfcmVxdWlyZV9fLmJpbmQoX193ZWJwYWNrX3JlcXVpcmVfXyw3MTkyNikpLHtsb2FkYWJsZUdlbmVyYXRlZDp7d2VicGFjazooKT0+WzcxOTI2XX19KSxCbG9jazQ9ZHluYW1pY19kZWZhdWx0KCkoKCk9PlByb21pc2UuYWxsKFtfX3dlYnBhY2tfcmVxdWlyZV9fLmUoODk0OSksX193ZWJwYWNrX3JlcXVpcmVfXy5lKDkzNTEpXSkudGhlbihfX3dlYnBhY2tfcmVxdWlyZV9fLmJpbmQoX193ZWJwYWNrX3JlcXVpcmVfXyw3NDc0NSkpLHtsb2FkYWJsZUdlbmVyYXRlZDp7d2VicGFjazooKT0+Wzc0NzQ1XX19KSxCbG9jazU9ZHluYW1pY19kZWZhdWx0KCkoKCk9Pl9fd2VicGFja19yZXF1aXJlX18uZSg5NDc2KS50aGVuKF9fd2VicGFja19yZXF1aXJlX18uYmluZChfX3dlYnBhY2tfcmVxdWlyZV9fLDg5NDc2KSkse2xvYWRhYmxlR2VuZXJhdGVkOnt3ZWJwYWNrOigpPT5bODk0NzZdfX0pLEJsb2NrNj1keW5hbWljX2RlZmF1bHQoKSgoKT0+X193ZWJwYWNrX3JlcXVpcmVfXy5lKDIyMSkudGhlbihfX3dlYnBhY2tfcmVxdWlyZV9fLmJpbmQoX193ZWJwYWNrX3JlcXVpcmVfXyw4MDIyMSkpLHtsb2FkYWJsZUdlbmVyYXRlZDp7d2VicGFjazooKT0+WzgwMjIxXX19KTtmdW5jdGlvbiBpbmRleF9Ib21lKHByb3BzKXtsZXR7dH09KDAsZXNtLiRHKShbImluZGV4Il0pLHttb2JpbGUsdGFibGV0fT0oMCx1c2VSZXNwb25zaXZlLkYpKCkscm91dGVyPSgwLG5leHRfcm91dGVyLnVzZVJvdXRlcikoKTtyZXR1cm4oMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKShlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkhZLHtjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50Wikoc2VvLlose3RpdGxlOnQoInRpdGxlOTUiLHtuczoiaW5kZXgifSksZGVzY3JpcHRpb246dCgidGl0bGU5NiIse25zOiJpbmRleCJ9KSxrZXl3b3Jkczp0KCJ0aXRsZTIiLHtuczoiaW5kZXgifSkscGF0aDoiLyIsbG9jYWxlOnJvdXRlci5sb2NhbGV8fCJlbiIsb2dUeXBlOiJ3ZWJzaXRlIixvZ0ltYWdlOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hX2E0NDE1ZC8yMDI1MDgzMDEwMjI1MGRmZDdkYTcyYWMuaWNvIix0d2l0dGVyOntjYXJkOiJzdW1tYXJ5X2xhcmdlX2ltYWdlIix0aXRsZTp0KCJ0aXRsZTk1Iix7bnM6ImluZGV4In0pLGRlc2NyaXB0aW9uOnQoInRpdGxlOTYiLHtuczoiaW5kZXgifSl9LHN0cnVjdHVyZWREYXRhOigwLHN0cnVjdHVyZWREYXRhLmp3KSgpfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKG1haW4uWix7Y2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKEhvbWUse30pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGJsb2NrMl9Ib21lLHt9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShCbG9jazMse30pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKEJsb2NrNCx7fSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoQmxvY2s1LHt9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShCbG9jazYse30pXX0pfSldfSl9dmFyIF9fTl9TU0c9ITA7ZnVuY3Rpb24gcGFnZXNfSG9tZShwcm9wcyl7cmV0dXJuKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoaW5kZXhfSG9tZSx7Li4ucHJvcHN9KX19LDIwOTgyOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHt5OmZ1bmN0aW9uKCl7cmV0dXJuIHVzZVN0eWxlc319KTt2YXIgX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDcyOTcpLGFudGRfc3R5bGVfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDc2MTU5KTtmdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsnXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDE5MTA0NTAzMDAxY2ZjMjNjYy53ZWJwIik7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAnXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDEoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBhc3BlY3QtcmF0aW86IDYxMCAvIDM2NDtcbiAgICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAiLCIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDIoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0Mygpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGFzcGVjdC1yYXRpbzogMTQ0MCAvIDcwMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgIiwiIHtcbiAgICAgICAgLyogd2lkdGg6IDQwMHB4OyAqL1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Mz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDQoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBtYXJnaW4tcmlnaHQ6IDY0cHg7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q0PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1yaWdodDogNDBweDtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDU9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q2KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgY29sb3I6ICNiZmM3ZWI7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q2PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0Nygpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHdpZHRoOiAyMjhweDtcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBwYWRkaW5nOiAxMHB4IDhweDtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICBib3JkZXItcmFkaXVzOiA4cHggOHB4IDhweCA4cHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgICBtYXJnaW4tdG9wOiA0OHB4O1xuICAgICAgY29sb3I6ICIsIjtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjk7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q3PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0OCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICIsIjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0OD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDkoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBtYXJnaW4tdG9wOiAxNDhweDtcbiAgICAgICIsIiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwOHB4O1xuICAgICAgfVxuICAgICAgIiwiIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNzhweDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDk9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxMCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIG1hcmdpbi1yaWdodDogNDBweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICIsIiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgIH1cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTA9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxMSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHdpZHRoOiAxMTJweDtcbiAgICAgIGFzcGVjdC1yYXRpbzogMTEyIC8gMzY7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxMT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDEyKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICBhc3BlY3QtcmF0aW86IDYwIC8gMzY7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxMj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDEzKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMTBweCk7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZmUxZWI7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAmOm50aC1jaGlsZCgybikge1xuICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgIH1cbiAgICAgICIsIiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTM9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QxNCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGZsZXg6IDE7XG4gICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgICIsIiB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE0PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTUoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBhc3BlY3QtcmF0aW86IDU1MCAvIDIwMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE1PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTYoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBhc3BlY3QtcmF0aW86IDM0MCAvIDIwMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDE2PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MTcoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgZm9udC1zaXplOiA0OHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICB0b3A6IDVweDtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgMTgwZGVnLFxuICAgICAgICAjNTUzOGEwIDAlLFxuICAgICAgICByZ2JhKDg1LCA1NiwgMTYwLCAwKSAxMDAlXG4gICAgICApO1xuICAgICAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAiLCIge1xuICAgICAgICBmb250LXNpemU6IDQycHg7XG4gICAgICB9XG4gICAgICAiLCIge1xuICAgICAgICBmb250LXNpemU6IDM4cHg7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxNz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDE4KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QxOD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDE5KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcGFkZGluZzogM3B4IDJweDtcbiAgICAgIGNvbG9yOiAjNTUzOGEwO1xuICAgICAgYmFja2dyb3VuZDogI2Y5ZjdmZjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MTk9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyMCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWydcbiAgICAgIG1heC13aWR0aDogOTYwcHg7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MTkxNDU4NDA3YTc1NDQ0NDk2LndlYnAiKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHBhZGRpbmc6IDYwcHggMHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgJ10pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyMD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDIxKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAzcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgICAgcGFkZGluZzogMCA4MHB4O1xuICAgICAgZm9udC1mYW1pbHk6IFNpbGthbDtcbiAgICAgICIsIiB7XG4gICAgICAgIHBhZGRpbmc6IDAgNjBweDtcbiAgICAgIH1cbiAgICAgICIsIiB7XG4gICAgICAgIHBhZGRpbmc6IDAgNDBweDtcbiAgICAgIH1cbiAgICAgICIsIiB7XG4gICAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgIH1cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMHB4O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MjE9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyMigpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGhlaWdodDogNTZweDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2UwZTJlYTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MjI9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QyMygpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyMz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDI0KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDI0PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MjUoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBmbGV4OiAxO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuXG4gICAgICAiLCIge1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgIH1cblxuICAgICAgIiwiIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgIH1cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDI1PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MjYoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBhc3BlY3QtcmF0aW86IDM4NiAvIDM0MDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDI2PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MjcoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyNz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDI4KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgY29sb3I6ICNlNDgyNDY7XG4gICAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjhmNDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDI4PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MjkoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICB3aWR0aDogMTZweDtcbiAgICAgIGhlaWdodDogMTRweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QyOT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDMwKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGNvbG9yOiAiLCI7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAiLCI7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzMD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDMxKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgIiwiIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MzE9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzMigpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGFzcGVjdC1yYXRpbzogMTMyIC8gNDI7XG4gICAgICB3aWR0aDogMTMycHg7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAiLCIge1xuICAgICAgICB3aWR0aDogMTEycHg7XG4gICAgICB9XG4gICAgICAiLCIge1xuICAgICAgICB3aWR0aDogODBweDtcbiAgICAgIH1cbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDMyPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MzMoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBmbGV4OiAwIDAgMzYuNiU7XG4gICAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA4MHB4O1xuICAgICAgIiwiIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2MHB4O1xuICAgICAgfVxuICAgICAgIiwiIHtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0MzM9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzNCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDM0PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MzUoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzNT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDM2KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgd2lkdGg6IDMycHg7XG4gICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZTRlOGY5O1xuICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgY29sb3I6ICIsIjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3QzNj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDM3KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZmxleDogMTtcbiAgICAgIGFzcGVjdC1yYXRpbzogNjgwIC8gNTQ1O1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Mzc9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3QzOCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBhc3BlY3QtcmF0aW86IDYxNCAvIDQwMDtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDM4PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0MzkoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBtYXJnaW4tcmlnaHQ6IDExMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAiLCIge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDgwcHggIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgICIsIiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0Mzk9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q0MCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGZsZXg6IDE7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q0MD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDQxKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgZmxleDogMTtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDQxPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NDIoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICB3aWR0aDogMjBweDtcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q0Mj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDQzKCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYXNwZWN0LXJhdGlvOiAzMDAgLyAyODQ7XG4gICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q0Mz1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDQ0KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgYmFja2dyb3VuZDogI2ZhZmFmYTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NDQ9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q0NSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBmbGV4OiAxO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgICAgIiwiIHtcbiAgICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIH1cbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q0NT1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDQ2KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgZm9udC1zaXplOiA0MHB4O1xuICAgICAgY29sb3I6ICIsIjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAiLCIge1xuICAgICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICB9XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q0Nj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDQ3KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMjtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDQ3PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NDgoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDEwcHg7XG4gICAgICByaWdodDogMTBweDtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDQ4PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NDkoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBhc3BlY3QtcmF0aW86IDEyMCAvIDEyMDtcbiAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDQ5PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NTAoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogNTBweDtcbiAgICAgIHRvcDogMzAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NTA9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q1MSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAyMCU7XG4gICAgICB0b3A6IDMwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDUxPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NTIoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsiXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB6LWluZGV4OiA5OTk7XG4gICAgICBmb250LXNpemU6IDA7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDUyPWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9ZnVuY3Rpb24gX3RlbXBsYXRlT2JqZWN0NTMoKXtsZXQgZGF0YT0oMCxfc3djX2hlbHBlcnNfc3JjX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKFsnXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogNDBweDtcbiAgICAgIG9mZnNldC1wYXRoOiBwYXRoKFxuICAgICAgICAiTTAuMTE1NjE1LDAgQzU0LjE5MjY3MTcsNi4yOTQzNCA3OS41Nzg0NjY3LDM1LjgwMzY0IDc2LjI3Myw4OC41Mjc5IEw3NS4yNzUsODguNDY1NCBDNzguNTQwODY2NywzNi4zNzE5MzMzIDUzLjQ0OTIsNy4yMTQ1NjQ2NyAwLDAuOTkzMjk0IEwwLjExNTYxNSwwIFoiXG4gICAgICApO1xuICAgICddKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NTM9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q1NCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHdpZHRoOiA3NnB4O1xuICAgICAgaGVpZ2h0OiA4OHB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NTQ9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q1NSgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyOyAvKiDkv53mjIHlm77niYfmr5TkvovvvIzoo4HliarlpJrkvZnpg6jliIYgKi9cbiAgICAgIGNsaXAtcGF0aDogaW5zZXQoMTAwJSAwIDAgMCk7IC8qIOWIneWni+eKtuaAge+8jOWujOWFqOijgeWJqiAqL1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDJzIGVhc2UtaW4tb3V0O1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NTU9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q1Nigpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIGNsaXAtcGF0aDogaW5zZXQoMCAwIDAgMCk7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q1Nj1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDU3KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBoZWlnaHQ6IDY4cHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICJdKTtyZXR1cm4gX3RlbXBsYXRlT2JqZWN0NTc9ZnVuY3Rpb24oKXtyZXR1cm4gZGF0YX0sZGF0YX1mdW5jdGlvbiBfdGVtcGxhdGVPYmplY3Q1OCgpe2xldCBkYXRhPSgwLF9zd2NfaGVscGVyc19zcmNfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikoWyJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgIl0pO3JldHVybiBfdGVtcGxhdGVPYmplY3Q1OD1mdW5jdGlvbigpe3JldHVybiBkYXRhfSxkYXRhfWZ1bmN0aW9uIF90ZW1wbGF0ZU9iamVjdDU5KCl7bGV0IGRhdGE9KDAsX3N3Y19oZWxwZXJzX3NyY190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShbIlxuICAgICAgbWluLXdpZHRoOiAxODVweDtcbiAgICAiXSk7cmV0dXJuIF90ZW1wbGF0ZU9iamVjdDU5PWZ1bmN0aW9uKCl7cmV0dXJuIGRhdGF9LGRhdGF9bGV0IHVzZVN0eWxlcz0oMCxhbnRkX3N0eWxlX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ua2MpKHBhcmFtPT57bGV0e3Rva2VuLGNzcyxyZXNwb25zaXZlfT1wYXJhbTtyZXR1cm57YmcxOmNzcyhfdGVtcGxhdGVPYmplY3QoKSksYmFubmVyOmNzcyhfdGVtcGxhdGVPYmplY3QxKCkscmVzcG9uc2l2ZS5sYXB0b3ApLGJnMldyYXA6Y3NzKF90ZW1wbGF0ZU9iamVjdDIoKSksYmcyOmNzcyhfdGVtcGxhdGVPYmplY3QzKCkscmVzcG9uc2l2ZS5tb2JpbGUpLGJhbm5lcldyYXA6Y3NzKF90ZW1wbGF0ZU9iamVjdDQoKSksYmxvY2sxU3ViSVRlbTpjc3MoX3RlbXBsYXRlT2JqZWN0NSgpKSxzdWJQcmltYXJ5VGV4dDpjc3MoX3RlbXBsYXRlT2JqZWN0NigpKSxibG9jazFRdWlja0J0bjpjc3MoX3RlbXBsYXRlT2JqZWN0NygpLHRva2VuLmNvbG9yVGV4dCksYXJyb3dCb3g6Y3NzKF90ZW1wbGF0ZU9iamVjdDgoKSx0b2tlbi5jb2xvclByaW1hcnkpLGJhbmtXcmFwOmNzcyhfdGVtcGxhdGVPYmplY3Q5KCkscmVzcG9uc2l2ZS5sYXB0b3AscmVzcG9uc2l2ZS50YWJsZXQpLGJhbmtJdGVtOmNzcyhfdGVtcGxhdGVPYmplY3QxMCgpLHJlc3BvbnNpdmUubW9iaWxlKSx2aXNhOmNzcyhfdGVtcGxhdGVPYmplY3QxMSgpKSxtYXN0ZXI6Y3NzKF90ZW1wbGF0ZU9iamVjdDEyKCkpLGhpZ2hJdGVtOmNzcyhfdGVtcGxhdGVPYmplY3QxMygpLHJlc3BvbnNpdmUubW9iaWxlKSxoaWdoSXRlbTI6Y3NzKF90ZW1wbGF0ZU9iamVjdDE0KCkscmVzcG9uc2l2ZS5tb2JpbGUpLGhpZ2hIZWFkZXJJbWc6Y3NzKF90ZW1wbGF0ZU9iamVjdDE1KCkpLGhpZ2hIZWFkZXJJbWcyOmNzcyhfdGVtcGxhdGVPYmplY3QxNigpKSxoaWdoTnVtYmVyOmNzcyhfdGVtcGxhdGVPYmplY3QxNygpLHJlc3BvbnNpdmUubGFwdG9wLHJlc3BvbnNpdmUudGFibGV0KSxjbG9ja0ljb246Y3NzKF90ZW1wbGF0ZU9iamVjdDE4KCkpLGNvbW1pbmdXcmFwOmNzcyhfdGVtcGxhdGVPYmplY3QxOSgpKSxzbWFsbENvbnRhaW5lcjpjc3MoX3RlbXBsYXRlT2JqZWN0MjAoKSksYmxvY2szQmluSXRlbTpjc3MoX3RlbXBsYXRlT2JqZWN0MjEoKSxyZXNwb25zaXZlLmxhcHRvcCxyZXNwb25zaXZlLnRhYmxldCxyZXNwb25zaXZlLm1vYmlsZSksYmxvY2szSW1nSXRlbTpjc3MoX3RlbXBsYXRlT2JqZWN0MjIoKSksYmxvY2szSW1nVGV4dDpjc3MoX3RlbXBsYXRlT2JqZWN0MjMoKSksb3ZlcmZsb3dIaWRkZW46Y3NzKF90ZW1wbGF0ZU9iamVjdDI0KCkpLGJsb2NrNEl0ZW06Y3NzKF90ZW1wbGF0ZU9iamVjdDI1KCkscmVzcG9uc2l2ZS5tb2JpbGUscmVzcG9uc2l2ZS50YWJsZXQpLGJsb2NrNEl0ZW1JbWFnZTpjc3MoX3RlbXBsYXRlT2JqZWN0MjYoKSksYmxvY2s0SXRlbVdyYXA6Y3NzKF90ZW1wbGF0ZU9iamVjdDI3KCkpLGJsb2NrNEl0ZW1UYWc6Y3NzKF90ZW1wbGF0ZU9iamVjdDI4KCkpLHJpZ2h0SWNvbjpjc3MoX3RlbXBsYXRlT2JqZWN0MjkoKSksYmxvY2s0SXRlbUJ1dHRvbjpjc3MoX3RlbXBsYXRlT2JqZWN0MzAoKSx0b2tlbi5jb2xvclByaW1hcnksdG9rZW4uY29sb3JQcmltYXJ5KSxibG9jazRJdGVtQnV0dG9uMjpjc3MoX3RlbXBsYXRlT2JqZWN0MzEoKSxyZXNwb25zaXZlLm1vYmlsZSksYmxvY2szSW1hZ2U6Y3NzKF90ZW1wbGF0ZU9iamVjdDMyKCkscmVzcG9uc2l2ZS50YWJsZXQscmVzcG9uc2l2ZS5tb2JpbGUpLGJsb2NrNUxlZnQ6Y3NzKF90ZW1wbGF0ZU9iamVjdDMzKCkscmVzcG9uc2l2ZS50YWJsZXQscmVzcG9uc2l2ZS5tb2JpbGUpLGJsb2NrNUl0ZW06Y3NzKF90ZW1wbGF0ZU9iamVjdDM0KCkpLGJsb2NrNUl0ZW1BY3RpdmU6Y3NzKF90ZW1wbGF0ZU9iamVjdDM1KCkpLGJsb2NrNU51bWJlcjpjc3MoX3RlbXBsYXRlT2JqZWN0MzYoKSx0b2tlbi5jb2xvclByaW1hcnkpLGJsb2NrNVJpZ2h0OmNzcyhfdGVtcGxhdGVPYmplY3QzNygpKSxibG9jazVSaWdodDI6Y3NzKF90ZW1wbGF0ZU9iamVjdDM4KCkpLG1yMTEwOmNzcyhfdGVtcGxhdGVPYmplY3QzOSgpLHJlc3BvbnNpdmUudGFibGV0LHJlc3BvbnNpdmUubW9iaWxlKSxibG9jazZMZWZ0OmNzcyhfdGVtcGxhdGVPYmplY3Q0MCgpKSxibG9jazZSaWdodDpjc3MoX3RlbXBsYXRlT2JqZWN0NDEoKSksY29udGFjdEljb246Y3NzKF90ZW1wbGF0ZU9iamVjdDQyKCkpLGJsb2NrNkltZzpjc3MoX3RlbXBsYXRlT2JqZWN0NDMoKSksYmxvY2s2SXRlbVdyYXA6Y3NzKF90ZW1wbGF0ZU9iamVjdDQ0KCkpLGJsb2NrNkl0ZW06Y3NzKF90ZW1wbGF0ZU9iamVjdDQ1KCkscmVzcG9uc2l2ZS5tb2JpbGUpLGJsb2NrNlRpdGxlOmNzcyhfdGVtcGxhdGVPYmplY3Q0NigpLHRva2VuLmNvbG9yUHJpbWFyeSxyZXNwb25zaXZlLm1vYmlsZSksYmxvY2s2SXRlbUNvbnRlbnQ6Y3NzKF90ZW1wbGF0ZU9iamVjdDQ3KCkpLGJsb2NrNkl0ZW1JbWc6Y3NzKF90ZW1wbGF0ZU9iamVjdDQ4KCkpLGJsb2NrNkl0ZW1JbWdXcmFwOmNzcyhfdGVtcGxhdGVPYmplY3Q0OSgpKSxibG9jazRJdGVtSW1hZ2UxU3ZnOmNzcyhfdGVtcGxhdGVPYmplY3Q1MCgpKSxibG9jazRJdGVtSW1hZ2UyU3ZnOmNzcyhfdGVtcGxhdGVPYmplY3Q1MSgpKSxibG9jazRUcmF2ZWw6Y3NzKF90ZW1wbGF0ZU9iamVjdDUyKCkpLGJsb2NrNEl0ZW1JbWFnZTNTdmc6Y3NzKF90ZW1wbGF0ZU9iamVjdDUzKCkpLGRhc2g6Y3NzKF90ZW1wbGF0ZU9iamVjdDU0KCkpLGRhc2hJbWc6Y3NzKF90ZW1wbGF0ZU9iamVjdDU1KCkpLGRhc2hJbWdPcGVuOmNzcyhfdGVtcGxhdGVPYmplY3Q1NigpKSxhbmltYXRlV3JhcDpjc3MoX3RlbXBsYXRlT2JqZWN0NTcoKSksYW5pbWF0ZUNvbnRhaW5lcjpjc3MoX3RlbXBsYXRlT2JqZWN0NTgoKSksZm9udE1pbldpZHRoOmNzcyhfdGVtcGxhdGVPYmplY3Q1OSgpKX19KX19LGZ1bmN0aW9uKF9fd2VicGFja19yZXF1aXJlX18pe19fd2VicGFja19yZXF1aXJlX18uTygwLFs4MDI0LDM2ODQsOTM1MSw5Nzc0LDg3MTMsMTY2OCwyODg4LDk0OTIsMTc5XSxmdW5jdGlvbigpe3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucz00ODMxMil9KSxfTl9FPV9fd2VicGFja19yZXF1aXJlX18uTygpfV0pOw=="}},"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":"buvei.com/_next/static/6wYjP2KmMK9hAISorGh1P/_ssgManifest.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.457Z","timestamp":1785127668457,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/static/6wYjP2KmMK9hAISorGh1P/_ssgManifest.js HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: application/javascript; charset=UTF-8\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\ncache-control: public, max-age=31536000, immutable\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=NeYoRgFWBbr775IH9L5xZf7Xg4p5fBPGh7dGB3RHdMQgSxIolMKlvJMOjtYMiMXNus8vqXyLXeMwfWSGMkURcUxQTPGzOjbLqw66nfJ3WG43btnuDQedfkHUTg%3D%3D\"}]}\r\nlast-modified: Sun, 26 Jul 2026 06:35:52 GMT\r\netag: W/\"264-19f9d231d40\"\r\nvary: Accept-Encoding\r\nage: 66709\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\ncontent-encoding: br\r\ncf-ray: a2190217db908be6-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"]}],"data":{"size":612,"size_decoded":1005,"mime_type":"application/javascript; charset=UTF-8","magic":"ASCII text, with very long lines (612), with no line terminators","md5":"52f6398da8e8cd56402812147da54e34","sha1":"b5615ce6cfa7429436ce47a0023b95ce25c2bd3b","sha256":"d8ded74b719d25a036bbe173e4756251a1dfaf06f93c93da521d5526a8abeab4","sha512":"46b1c77c96c7550a84dad5def0423e192705ff17ce8e0ffadb6fdef2f5e66600c95bfbcd1b304ae8bbe31a9c34d344a2590b4a67de683ed342ccb769c3f40eb1","ssdeep":"","tlshash":"62f097d50768bdbba813ae090c716f0797f0bd03db2d189b8b90248fa591418cf16607","first_seen":"2026-07-27T03:56:11.748693Z","last_seen":"2026-07-27T10:05:53.911416Z","times_seen":4,"resource_available":true,"data":"c2VsZi5fX1NTR19NQU5JRkVTVD1uZXcgU2V0KFsiXHUwMDJGIiwiXHUwMDJGYXBwbGUtcGF5IiwiXHUwMDJGYmluLXNlYXJjaCIsIlx1MDAyRmJpblx1MDAyRltpZF0iLCJcdTAwMkZjb250YWN0LWJ1c2luZXNzIiwiXHUwMDJGY29udGFjdC11cyIsIlx1MDAyRmRldmVsb3BlciIsIlx1MDAyRmRpc2NsYWltZXIiLCJcdTAwMkZmYXEiLCJcdTAwMkZoZWxwLWNlbnRlciIsIlx1MDAyRmludml0ZS1zdWNjZXNzIiwiXHUwMDJGaW52aXRlXHUwMDJGW3JlbF0iLCJcdTAwMkZqb2luLXVzIiwiXHUwMDJGcGFydG5lciIsIlx1MDAyRnBhcnRuZXJcdTAwMkZbaWRdIiwiXHUwMDJGcGFydG5lcnMiLCJcdTAwMkZwYXlwYWwiLCJcdTAwMkZwcml2YWN5IiwiXHUwMDJGc29sdXRpb25zXHUwMDJGYWRzIiwiXHUwMDJGc29sdXRpb25zXHUwMDJGc3Vic2NyaWJlIiwiXHUwMDJGc29sdXRpb25zXHUwMDJGdHJhdmVsIiwiXHUwMDJGdGVsZWdyYW0tY2FsbGJhY2siLCJcdTAwMkZ0ZXJtIiwiXHUwMDJGdGVybXMiLCJcdTAwMkZ2Y2MiLCJcdTAwMkZ2aXJ0dWFsLWNhcmRzIiwiXHUwMDJGd2hpdGUtbGFiZWwiXSk7c2VsZi5fX1NTR19NQU5JRkVTVF9DQiYmc2VsZi5fX1NTR19NQU5JRkVTVF9DQigp"}},"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":"buvei.com/_next/image?url=https%3A%2F%2Fosspremium.s3.us-east-2.amazonaws.com%2Fa%2Fa_642f08%2F20250419111009688367feef.webp\u0026w=1920\u0026q=75","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"lazy-imageset","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.885Z","timestamp":1785127668885,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/image?url=https%3A%2F%2Fosspremium.s3.us-east-2.amazonaws.com%2Fa%2Fa_642f08%2F20250419111009688367feef.webp\u0026w=1920\u0026q=75 HTTP/1.1\r\nHost: buvei.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:49 GMT\r\ncontent-type: image/webp\r\ncontent-length: 2484\r\nserver: cloudflare\r\ncontent-security-policy: script-src 'none'; frame-src 'none'; sandbox;\r\nx-frame-options: DENY\r\nvary: Accept\r\ncache-control: public, max-age=60, must-revalidate\r\netag: kUCWIpr66s+o2csqKIMV7tb3WoyaZZxE4rTs6MvPbRs=\r\ncontent-disposition: inline; filename=\"20250419111009688367feef.webp\"\r\nx-nextjs-cache: STALE\r\ncf-cache-status: DYNAMIC\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=L1An9MwJL2irhhT%2Bt7S34WCalzFxfrkHcq7ODCpjHyIAg3iPFhqvictohXGKnMMQcCmaUgFKwGSpKImkd6y58%2B5iUywMFeTk5EPVvzlQJtCtgSdoNNVG34PUhg%3D%3D\"}]}\r\ncf-ray: a219021a889f8be6-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"]}],"data":{"size":2484,"size_decoded":3302,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image","md5":"fc755dcbd5cc42087aa62ad59d3669cf","sha1":"f596d3841a6896fc5315104e7a966659a10212cf","sha256":"914096229afaeacfa8d9cb2a288315eed6f75a8c9a659c44e2b4ece8cbcf6d1b","sha512":"89d1adb2808da8ea8ff2616c71757f6f3ae7cf5300853320a02fab136775f0a0cd1220150c64d6b08b06dfc48716cc272063a700b81eb03c6580b475847a088e","ssdeep":"","tlshash":"8e513d69a7d0c328d406667192512b95d772fc31d0625309ee89186fe72eec16cd4b4d","first_seen":"2026-07-27T03:56:11.626195Z","last_seen":"2026-07-27T10:05:53.926595Z","times_seen":4,"resource_available":false,"data":"UklGRqwJAABXRUJQVlA4WAoAAAAwAAAA3wAARwAASUNDUMgBAAAAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADZWUDhMvQcAAC/fwBEQt8CgbSRHvn5wjj+y/k/DQNo22ZTcv8gPQdu28faf3/mTCUG2Ld4J3hj3TXTank8yPStIkB8MVXhX/bAWNhcBMBEABdm26raS8w9t9TNxMHf+Q5UFl32OMoCI/kOQJDduo5LLtEIwIHEtQOoDrffee++9995777333nvvvffee++PdisfEREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREfH2WbZ6b4/ee2vttn1/vf6R+WzHTLrc9ecFM11rrbXWWmuttdZaa5lY+o9wJMz95fv2YCK9fU8SVTj+KtttNb23NW8f5cdw/8L7glbje+KJ6OOVP7nzCR86dP2QWltHE2cL9P2j32xe30jWl2kmhKUvaWm0hmJKv4zP25NJwwPXqiBOyzxnwtKbowXXSfhQi74ncgAGcn1IX4jPrizeF2HpAhgvnfgcYk58mcY2nh/uXuaGR+xX5AATnoh+g6dsYSzmNEuOM/o+OkI+NJ/tJ+ARySBx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"}},"time_used":393,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":388,"receive":5,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"client.crisp.chat/static/images/client/avatar-default.svg","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:50.318Z","timestamp":1785127670318,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /static/images/client/avatar-default.svg HTTP/1.1\r\nHost: client.crisp.chat\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-type: image/svg+xml\r\naccess-control-allow-credentials: false\r\naccess-control-allow-headers: Content-Type, Origin\r\naccess-control-allow-methods: HEAD, GET, OPTIONS\r\naccess-control-allow-origin: *\r\naccess-control-max-age: 300\r\ncache-control: public, max-age=315360000\r\ncross-origin-resource-policy: cross-origin\r\nx-content-type-options: nosniff\r\nexpires: Thu, 24 Jul 2036 04:47:50 GMT\r\nlast-modified: Tue, 21 Jul 2026 15:59:47 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\npriority: u=5,i\r\nage: 45921\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: W/\"6a5f9773-134\"\r\ncontent-encoding: br\r\ncf-ray: a219022388d7b28a-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"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":308,"size_decoded":985,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"c8405f4dcfd7bd26998eba39aa3a95a9","sha1":"9b9da732ff2f5d27b18b09a45e79c985003e5cb8","sha256":"626caf211b150d21f5c20b05b378cb99540ae81d719b2af1cb1e29081704238d","sha512":"6cbf1ee5b6a2d06a01c013c593cbb638b8e49f1a6bce021e071b603b7effcc26990617d6cb6460bc22c696f7c8eaf3b2a6daffab32b7af1f114ba41273ef04f0","ssdeep":"","tlshash":"2be08669500861c8542e4755fe686521043570e6223a0aecf590271ab11b6ea3cb1e58","first_seen":"2025-10-19T09:06:30.379688Z","last_seen":"2026-08-03T08:16:13.668883Z","times_seen":299,"resource_available":false,"data":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDEiIGhlaWdodD0iMTAxIj48ZyBmaWxsPSJub25lIj48cGF0aCBkPSJNMCAwaDEwMXYxMDFIMHoiLz48ZyBmaWxsPSIjNzA3NTg0Ij48cGF0aCBkPSJNNDkuNyAyNWExMyAxMyAwIDAxMTMgMTN2OS43YTEzIDEzIDAgMTEtMjYgMFYzOGExMyAxMyAwIDAxMTMtMTN6Ii8+PHBhdGggZD0iTTMxLjggNTkuN2gzNS44YTQuOCA0LjggMCAwMTQuOSA0Ljl2OS4xSDI3di05LjFhNC44IDQuOCAwIDAxNC44LTQuOXoiIG9wYWNpdHk9Ii44Ii8+PC9nPjwvZz48L3N2Zz4="}},"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":"image.crisp.chat/process/thumbnail/?url=https%3A%2F%2Fstorage.crisp.chat%2Fusers%2Favatar%2Foperator%2F-%2Ff%2F4%2Fc%2Ff%2Ff4cf6c3ffc536000%2Fav_13nxc7a.png\u0026width=120\u0026height=120\u00261783170208855","fqdn":"image.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:50.322Z","timestamp":1785127670322,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /process/thumbnail/?url=https%3A%2F%2Fstorage.crisp.chat%2Fusers%2Favatar%2Foperator%2F-%2Ff%2F4%2Fc%2Ff%2Ff4cf6c3ffc536000%2Fav_13nxc7a.png\u0026width=120\u0026height=120\u00261783170208855 HTTP/1.1\r\nHost: image.crisp.chat\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-type: image/webp\r\ncontent-length: 7554\r\naccept-ranges: bytes\r\ncache-control: public, max-age=315360000\r\ncross-origin-resource-policy: cross-origin\r\netag: W/\"1d82-19f9f007950\"\r\nexpires: Thu, 24 Jul 2036 04:47:50 GMT\r\nlast-modified: Sun, 26 Jul 2026 15:17:16 GMT\r\nserver: cloudflare\r\npriority: u=5,i\r\nage: 44400\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\ncf-ray: a219022388dcb28a-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"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":7554,"size_decoded":8138,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image, VP8 encoding, 120x120, Scaling: [none]x[none], YUV color, decoders should clamp","md5":"7a24874f2143bec37a410a392e551972","sha1":"f8904084455fb7f4c27512ff5e193d597e81fd47","sha256":"bde7b28f7319e5b806a95313960ab52002aa1f3e75727830534abfdb6222d6e8","sha512":"c4b1c26fc5852822a2b63744cc6225c06793d9ff8005d94978eb4f40f1914e744255a89c3853f29842647599d2c638128b0fcbd2b70238ef476deebf65096b59","ssdeep":"192:8Zaa4Fuyu/cHQzEks33uPA0ISe+d91+3cvnCMjj:U4FUzzEtnu9bb6cP7j","tlshash":"46f1b023cfea3dea5691998836a35273732d1231cc8eed1445cdfb0455f0b5926b6848","first_seen":"2026-07-27T03:56:11.743526Z","last_seen":"2026-07-27T10:05:53.956563Z","times_seen":4,"resource_available":false,"data":"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"}},"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":"buvei.com/_next/static/chunks/main-05a0ec5e4a5fc095.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.443Z","timestamp":1785127668443,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/static/chunks/main-05a0ec5e4a5fc095.js HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: application/javascript; charset=UTF-8\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\ncache-control: public, max-age=31536000, immutable\r\naccept-ranges: bytes\r\nlast-modified: Mon, 29 Jun 2026 05:34:13 GMT\r\netag: W/\"1b2a1-19f11def808\"\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nage: 334919\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=nM9xnMuNJ5ejMkmNVJX8mlWh905IJ7gFhq3p0C6EoBAAmTpcFJnk13um2TwwTaa%2BQUBNGYT2G195gwNCoBIxBs1FEUB7RA4CCqoxpqnDYiyjIq5peXkQfkxDoA%3D%3D\"}]}\r\ncf-ray: a2190217cb4e8be6-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"]}],"data":{"size":111265,"size_decoded":29803,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (65536), with no line terminators","md5":"537ed861075db344a2fd2600160c101f","sha1":"2ac3a505d4cbda0729a5c0c7d3213b116c52addc","sha256":"9694c3f21356e6badda7701395101358b0ca9b1897c09ee9ef27dd6cb796fb6f","sha512":"ccfea5df57e648583686f2ae0a8bcee74d68527195a85b6e9491c947d4d1d300bb5cd1ad0f69c95baa3b8cb21de853c772888429cb18014a271d6fa98ae85987","ssdeep":"1536:tF53lxnGRXHojwpobtc8ecno2GkLbV/S+2SXNI9QaRFK5DXgQa:tFsc9no25bV/HsfK5Lg1","tlshash":"e7b32b7a7291bcd30ada12d8c5379156b11ac82b74187892f7aedfda10d4d8dc27af30","first_seen":"2026-07-27T03:56:11.746988Z","last_seen":"2026-07-27T10:05:53.914409Z","times_seen":4,"resource_available":true,"data":"dHJ5eyFmdW5jdGlvbigpe3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sbj0obmV3IGUuRXJyb3IpLnN0YWNrO24mJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbbl09ImVkMjc4NWM5LTY3YTEtNDFhNi1hZTYzLTM0OTNjOTg0MDA2YyIsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9InNlbnRyeS1kYmlkLWVkMjc4NWM5LTY3YTEtNDFhNi1hZTYzLTM0OTNjOTg0MDA2YyIpfSgpfWNhdGNoKGUpe30oc2VsZi53ZWJwYWNrQ2h1bmtfTl9FPXNlbGYud2VicGFja0NodW5rX05fRXx8W10pLnB1c2goW1sxNzldLHs2MDkzMjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxleHBvcnRzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYXN5bmNHZW5lcmF0b3JTdGVwKGdlbixyZXNvbHZlLHJlamVjdCxfbmV4dCxfdGhyb3csa2V5LGFyZyl7dHJ5e3ZhciBpbmZvPWdlbltrZXldKGFyZyksdmFsdWU9aW5mby52YWx1ZX1jYXRjaChlcnJvcil7cmVqZWN0KGVycm9yKTtyZXR1cm59aW5mby5kb25lP3Jlc29sdmUodmFsdWUpOlByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbihfbmV4dCxfdGhyb3cpfWV4cG9ydHMuWj1mdW5jdGlvbihmbil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHNlbGYxPXRoaXMsYXJncz1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUscmVqZWN0KXt2YXIgZ2VuPWZuLmFwcGx5KHNlbGYxLGFyZ3MpO2Z1bmN0aW9uIF9uZXh0KHZhbHVlKXthc3luY0dlbmVyYXRvclN0ZXAoZ2VuLHJlc29sdmUscmVqZWN0LF9uZXh0LF90aHJvdywibmV4dCIsdmFsdWUpfWZ1bmN0aW9uIF90aHJvdyhlcnIpe2FzeW5jR2VuZXJhdG9yU3RlcChnZW4scmVzb2x2ZSxyZWplY3QsX25leHQsX3Rocm93LCJ0aHJvdyIsZXJyKX1fbmV4dCh2b2lkIDApfSl9fX0sNjQ5NTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxleHBvcnRzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZXh0ZW5kc18oKXtyZXR1cm4oZXh0ZW5kc189T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odGFyZ2V0KXtmb3IodmFyIGk9MTtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXt2YXIgc291cmNlPWFyZ3VtZW50c1tpXTtmb3IodmFyIGtleSBpbiBzb3VyY2UpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSxrZXkpJiYodGFyZ2V0W2tleV09c291cmNlW2tleV0pfXJldHVybiB0YXJnZXR9KS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZXhwb3J0cy5aPWZ1bmN0aW9uKCl7cmV0dXJuIGV4dGVuZHNfLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LDkyNjQ4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMpeyJ1c2Ugc3RyaWN0IjtleHBvcnRzLlo9ZnVuY3Rpb24ob2JqKXtyZXR1cm4gb2JqJiZvYmouX19lc01vZHVsZT9vYmo6e2RlZmF1bHQ6b2JqfX19LDkxNTk4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3AxKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgV2Vha01hcClyZXR1cm4gbnVsbDt2YXIgY2FjaGVCYWJlbEludGVyb3A9bmV3IFdlYWtNYXAsY2FjaGVOb2RlSW50ZXJvcD1uZXcgV2Vha01hcDtyZXR1cm4oX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlPWZ1bmN0aW9uKG5vZGVJbnRlcm9wKXtyZXR1cm4gbm9kZUludGVyb3A/Y2FjaGVOb2RlSW50ZXJvcDpjYWNoZUJhYmVsSW50ZXJvcH0pKG5vZGVJbnRlcm9wMSl9ZXhwb3J0cy5aPWZ1bmN0aW9uKG9iaixub2RlSW50ZXJvcCl7aWYoIW5vZGVJbnRlcm9wJiZvYmomJm9iai5fX2VzTW9kdWxlKXJldHVybiBvYmo7aWYobnVsbD09PW9ianx8Im9iamVjdCIhPXR5cGVvZiBvYmomJiJmdW5jdGlvbiIhPXR5cGVvZiBvYmopcmV0dXJue2RlZmF1bHQ6b2JqfTt2YXIgY2FjaGU9X2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKTtpZihjYWNoZSYmY2FjaGUuaGFzKG9iaikpcmV0dXJuIGNhY2hlLmdldChvYmopO3ZhciBuZXdPYmo9e30saGFzUHJvcGVydHlEZXNjcmlwdG9yPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIGtleSBpbiBvYmopaWYoImRlZmF1bHQiIT09a2V5JiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLGtleSkpe3ZhciBkZXNjPWhhc1Byb3BlcnR5RGVzY3JpcHRvcj9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaixrZXkpOm51bGw7ZGVzYyYmKGRlc2MuZ2V0fHxkZXNjLnNldCk/T2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaixrZXksZGVzYyk6bmV3T2JqW2tleV09b2JqW2tleV19cmV0dXJuIG5ld09iai5kZWZhdWx0PW9iaixjYWNoZSYmY2FjaGUuc2V0KG9iaixuZXdPYmopLG5ld09ian19LDE3MjczOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMpeyJ1c2Ugc3RyaWN0IjtleHBvcnRzLlo9ZnVuY3Rpb24oc291cmNlLGV4Y2x1ZGVkKXtpZihudWxsPT1zb3VyY2UpcmV0dXJue307dmFyIGtleSxpLHRhcmdldD17fSxzb3VyY2VLZXlzPU9iamVjdC5rZXlzKHNvdXJjZSk7Zm9yKGk9MDtpPHNvdXJjZUtleXMubGVuZ3RoO2krKylrZXk9c291cmNlS2V5c1tpXSxleGNsdWRlZC5pbmRleE9mKGtleSk+PTB8fCh0YXJnZXRba2V5XT1zb3VyY2Vba2V5XSk7cmV0dXJuIHRhcmdldH19LDQwMDM3OmZ1bmN0aW9uKCl7InRyaW1TdGFydCJpbiBTdHJpbmcucHJvdG90eXBlfHwoU3RyaW5nLnByb3RvdHlwZS50cmltU3RhcnQ9U3RyaW5nLnByb3RvdHlwZS50cmltTGVmdCksInRyaW1FbmQiaW4gU3RyaW5nLnByb3RvdHlwZXx8KFN0cmluZy5wcm90b3R5cGUudHJpbUVuZD1TdHJpbmcucHJvdG90eXBlLnRyaW1SaWdodCksImRlc2NyaXB0aW9uImluIFN5bWJvbC5wcm90b3R5cGV8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTeW1ib2wucHJvdG90eXBlLCJkZXNjcmlwdGlvbiIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgdD0vXCgoLiopXCkvLmV4ZWModGhpcy50b1N0cmluZygpKTtyZXR1cm4gdD90WzFdOnZvaWQgMH19KSxBcnJheS5wcm90b3R5cGUuZmxhdHx8KEFycmF5LnByb3RvdHlwZS5mbGF0PWZ1bmN0aW9uKHQscil7cmV0dXJuIHI9dGhpcy5jb25jYXQuYXBwbHkoW10sdGhpcyksdD4xJiZyLnNvbWUoQXJyYXkuaXNBcnJheSk/ci5mbGF0KHQtMSk6cn0sQXJyYXkucHJvdG90eXBlLmZsYXRNYXA9ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5tYXAodCxyKS5mbGF0KCl9KSxQcm9taXNlLnByb3RvdHlwZS5maW5hbGx5fHwoUHJvbWlzZS5wcm90b3R5cGUuZmluYWxseT1mdW5jdGlvbih0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdClyZXR1cm4gdGhpcy50aGVuKHQsdCk7dmFyIHI9dGhpcy5jb25zdHJ1Y3Rvcnx8UHJvbWlzZTtyZXR1cm4gdGhpcy50aGVuKGZ1bmN0aW9uKG8pe3JldHVybiByLnJlc29sdmUodCgpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG99KX0sZnVuY3Rpb24obyl7cmV0dXJuIHIucmVzb2x2ZSh0KCkpLnRoZW4oZnVuY3Rpb24oKXt0aHJvdyBvfSl9KX0pLE9iamVjdC5mcm9tRW50cmllc3x8KE9iamVjdC5mcm9tRW50cmllcz1mdW5jdGlvbih0KXtyZXR1cm4gQXJyYXkuZnJvbSh0KS5yZWR1Y2UoZnVuY3Rpb24odCxyKXtyZXR1cm4gdFtyWzBdXT1yWzFdLHR9LHt9KX0pfSwzMzQ2ODpmdW5jdGlvbihtb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuYWRkQmFzZVBhdGg9ZnVuY3Rpb24ocGF0aCxyZXF1aXJlZCl7cmV0dXJuIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoLm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoKF9hZGRQYXRoUHJlZml4LmFkZFBhdGhQcmVmaXgocGF0aCwiIikpfTt2YXIgX2FkZFBhdGhQcmVmaXg9X193ZWJwYWNrX3JlcXVpcmVfXyg0NDEzNSksX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2g9X193ZWJwYWNrX3JlcXVpcmVfXyg1MjcwMCk7KCJmdW5jdGlvbiI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2YgZXhwb3J0cy5kZWZhdWx0JiZudWxsIT09ZXhwb3J0cy5kZWZhdWx0KSYmdm9pZCAwPT09ZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCxleHBvcnRzKSxtb2R1bGUuZXhwb3J0cz1leHBvcnRzLmRlZmF1bHQpfSw1NDQ2NTpmdW5jdGlvbihtb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuYWRkTG9jYWxlPXZvaWQgMDt2YXIgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2g9X193ZWJwYWNrX3JlcXVpcmVfXyg1MjcwMCk7ZXhwb3J0cy5hZGRMb2NhbGU9ZnVuY3Rpb24ocGF0aCl7Zm9yKHZhciBfbGVuPWFyZ3VtZW50cy5sZW5ndGgsYXJncz1BcnJheShfbGVuPjE/X2xlbi0xOjApLF9rZXk9MTtfa2V5PF9sZW47X2tleSsrKWFyZ3NbX2tleS0xXT1hcmd1bWVudHNbX2tleV07cmV0dXJuIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoLm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoKF9fd2VicGFja19yZXF1aXJlX18oMzQ0NDEpLmFkZExvY2FsZShwYXRoLC4uLmFyZ3MpKX0sKCJmdW5jdGlvbiI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2YgZXhwb3J0cy5kZWZhdWx0JiZudWxsIT09ZXhwb3J0cy5kZWZhdWx0KSYmdm9pZCAwPT09ZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCxleHBvcnRzKSxtb2R1bGUuZXhwb3J0cz1leHBvcnRzLmRlZmF1bHQpfSw4NDY0MzpmdW5jdGlvbihtb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuZGV0ZWN0RG9tYWluTG9jYWxlPXZvaWQgMCxleHBvcnRzLmRldGVjdERvbWFpbkxvY2FsZT1mdW5jdGlvbigpe2Zvcih2YXIgX2xlbj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbiksX2tleT0wO19rZXk8X2xlbjtfa2V5KyspYXJnc1tfa2V5XT1hcmd1bWVudHNbX2tleV07cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oNzIzODgpLmRldGVjdERvbWFpbkxvY2FsZSguLi5hcmdzKX0sKCJmdW5jdGlvbiI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2YgZXhwb3J0cy5kZWZhdWx0JiZudWxsIT09ZXhwb3J0cy5kZWZhdWx0KSYmdm9pZCAwPT09ZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCxleHBvcnRzKSxtb2R1bGUuZXhwb3J0cz1leHBvcnRzLmRlZmF1bHQpfSwxMDkyODpmdW5jdGlvbihtb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuaGFzQmFzZVBhdGg9ZnVuY3Rpb24ocGF0aCl7cmV0dXJuIF9wYXRoSGFzUHJlZml4LnBhdGhIYXNQcmVmaXgocGF0aCwiIil9O3ZhciBfcGF0aEhhc1ByZWZpeD1fX3dlYnBhY2tfcmVxdWlyZV9fKDkzMjEwKTsoImZ1bmN0aW9uIj09dHlwZW9mIGV4cG9ydHMuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHQmJm51bGwhPT1leHBvcnRzLmRlZmF1bHQpJiZ2b2lkIDA9PT1leHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LGV4cG9ydHMpLG1vZHVsZS5leHBvcnRzPWV4cG9ydHMuZGVmYXVsdCl9LDMxODMxOmZ1bmN0aW9uKG1vZHVsZSxleHBvcnRzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuZGVmYXVsdD1mdW5jdGlvbigpe3JldHVybnttb3VudGVkSW5zdGFuY2VzOm5ldyBTZXQsdXBkYXRlSGVhZChoZWFkKXtsZXQgdGFncz17fTtoZWFkLmZvckVhY2goaD0+e2lmKCJsaW5rIj09PWgudHlwZSYmaC5wcm9wc1siZGF0YS1vcHRpbWl6ZWQtZm9udHMiXSl7aWYoZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc3R5bGVbZGF0YS1ocmVmPSInLmNvbmNhdChoLnByb3BzWyJkYXRhLWhyZWYiXSwnIl0nKSkpcmV0dXJuO2gucHJvcHMuaHJlZj1oLnByb3BzWyJkYXRhLWhyZWYiXSxoLnByb3BzWyJkYXRhLWhyZWYiXT12b2lkIDB9bGV0IGNvbXBvbmVudHM9dGFnc1toLnR5cGVdfHxbXTtjb21wb25lbnRzLnB1c2goaCksdGFnc1toLnR5cGVdPWNvbXBvbmVudHN9KTtsZXQgdGl0bGVDb21wb25lbnQ9dGFncy50aXRsZT90YWdzLnRpdGxlWzBdOm51bGwsdGl0bGU9IiI7aWYodGl0bGVDb21wb25lbnQpe2xldHtjaGlsZHJlbn09dGl0bGVDb21wb25lbnQucHJvcHM7dGl0bGU9InN0cmluZyI9PXR5cGVvZiBjaGlsZHJlbj9jaGlsZHJlbjpBcnJheS5pc0FycmF5KGNoaWxkcmVuKT9jaGlsZHJlbi5qb2luKCIiKToiIn10aXRsZSE9PWRvY3VtZW50LnRpdGxlJiYoZG9jdW1lbnQudGl0bGU9dGl0bGUpLFsibWV0YSIsImJhc2UiLCJsaW5rIiwic3R5bGUiLCJzY3JpcHQiXS5mb3JFYWNoKHR5cGU9PnsoZnVuY3Rpb24odHlwZSxjb21wb25lbnRzKXtsZXQgaGVhZEVsPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0saGVhZENvdW50RWw9aGVhZEVsLnF1ZXJ5U2VsZWN0b3IoIm1ldGFbbmFtZT1uZXh0LWhlYWQtY291bnRdIiksaGVhZENvdW50PU51bWJlcihoZWFkQ291bnRFbC5jb250ZW50KSxvbGRUYWdzPVtdO2ZvcihsZXQgaT0wLGo9aGVhZENvdW50RWwucHJldmlvdXNFbGVtZW50U2libGluZztpPGhlYWRDb3VudDtpKyssaj0obnVsbD09aj92b2lkIDA6ai5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKXx8bnVsbCl7dmFyIHJlZjsobnVsbD09aj92b2lkIDA6bnVsbD09KHJlZj1qLnRhZ05hbWUpP3ZvaWQgMDpyZWYudG9Mb3dlckNhc2UoKSk9PT10eXBlJiZvbGRUYWdzLnB1c2goail9bGV0IG5ld1RhZ3M9Y29tcG9uZW50cy5tYXAocmVhY3RFbGVtZW50VG9ET00pLmZpbHRlcihuZXdUYWc9Pntmb3IobGV0IGs9MCxsZW49b2xkVGFncy5sZW5ndGg7azxsZW47aysrKXtsZXQgb2xkVGFnPW9sZFRhZ3Nba107aWYoaXNFcXVhbE5vZGUob2xkVGFnLG5ld1RhZykpcmV0dXJuIG9sZFRhZ3Muc3BsaWNlKGssMSksITF9cmV0dXJuITB9KTtvbGRUYWdzLmZvckVhY2godD0+e3ZhciByZWY7cmV0dXJuIG51bGw9PShyZWY9dC5wYXJlbnROb2RlKT92b2lkIDA6cmVmLnJlbW92ZUNoaWxkKHQpfSksbmV3VGFncy5mb3JFYWNoKHQ9PmhlYWRFbC5pbnNlcnRCZWZvcmUodCxoZWFkQ291bnRFbCkpLGhlYWRDb3VudEVsLmNvbnRlbnQ9KGhlYWRDb3VudC1vbGRUYWdzLmxlbmd0aCtuZXdUYWdzLmxlbmd0aCkudG9TdHJpbmcoKX0pKHR5cGUsdGFnc1t0eXBlXXx8W10pfSl9fX0sZXhwb3J0cy5pc0VxdWFsTm9kZT1pc0VxdWFsTm9kZSxleHBvcnRzLkRPTUF0dHJpYnV0ZU5hbWVzPXZvaWQgMDtsZXQgRE9NQXR0cmlidXRlTmFtZXM9e2FjY2VwdENoYXJzZXQ6ImFjY2VwdC1jaGFyc2V0IixjbGFzc05hbWU6ImNsYXNzIixodG1sRm9yOiJmb3IiLGh0dHBFcXVpdjoiaHR0cC1lcXVpdiIsbm9Nb2R1bGU6Im5vTW9kdWxlIn07ZnVuY3Rpb24gcmVhY3RFbGVtZW50VG9ET00ocGFyYW0pe2xldHt0eXBlLHByb3BzfT1wYXJhbSxlbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHR5cGUpO2ZvcihsZXQgcCBpbiBwcm9wcyl7aWYoIXByb3BzLmhhc093blByb3BlcnR5KHApfHwiY2hpbGRyZW4iPT09cHx8ImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIj09PXB8fHZvaWQgMD09PXByb3BzW3BdKWNvbnRpbnVlO2xldCBhdHRyPURPTUF0dHJpYnV0ZU5hbWVzW3BdfHxwLnRvTG93ZXJDYXNlKCk7InNjcmlwdCI9PT10eXBlJiYoImFzeW5jIj09PWF0dHJ8fCJkZWZlciI9PT1hdHRyfHwibm9Nb2R1bGUiPT09YXR0cik/ZWxbYXR0cl09ISFwcm9wc1twXTplbC5zZXRBdHRyaWJ1dGUoYXR0cixwcm9wc1twXSl9bGV0e2NoaWxkcmVuLGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MfT1wcm9wcztyZXR1cm4gZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw/ZWwuaW5uZXJIVE1MPWRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbHx8IiI6Y2hpbGRyZW4mJihlbC50ZXh0Q29udGVudD0ic3RyaW5nIj09dHlwZW9mIGNoaWxkcmVuP2NoaWxkcmVuOkFycmF5LmlzQXJyYXkoY2hpbGRyZW4pP2NoaWxkcmVuLmpvaW4oIiIpOiIiKSxlbH1mdW5jdGlvbiBpc0VxdWFsTm9kZShvbGRUYWcsbmV3VGFnKXtpZihvbGRUYWcgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmbmV3VGFnIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpe2xldCBub25jZT1uZXdUYWcuZ2V0QXR0cmlidXRlKCJub25jZSIpO2lmKG5vbmNlJiYhb2xkVGFnLmdldEF0dHJpYnV0ZSgibm9uY2UiKSl7bGV0IGNsb25lVGFnPW5ld1RhZy5jbG9uZU5vZGUoITApO3JldHVybiBjbG9uZVRhZy5zZXRBdHRyaWJ1dGUoIm5vbmNlIiwiIiksY2xvbmVUYWcubm9uY2U9bm9uY2Usbm9uY2U9PT1vbGRUYWcubm9uY2UmJm9sZFRhZy5pc0VxdWFsTm9kZShjbG9uZVRhZyl9fXJldHVybiBvbGRUYWcuaXNFcXVhbE5vZGUobmV3VGFnKX1leHBvcnRzLkRPTUF0dHJpYnV0ZU5hbWVzPURPTUF0dHJpYnV0ZU5hbWVzLCgiZnVuY3Rpb24iPT10eXBlb2YgZXhwb3J0cy5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMuZGVmYXVsdCYmbnVsbCE9PWV4cG9ydHMuZGVmYXVsdCkmJnZvaWQgMD09PWV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsZXhwb3J0cyksbW9kdWxlLmV4cG9ydHM9ZXhwb3J0cy5kZWZhdWx0KX0sODQ1MzQ6ZnVuY3Rpb24obW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO2xldCByb3V0ZXIsaW5pdGlhbERhdGEsYXNQYXRoLHBhZ2VMb2FkZXIsYXBwRWxlbWVudCxoZWFkTWFuYWdlcixsYXN0QXBwUHJvcHMsbGFzdFJlbmRlclJlamVjdCxDYWNoZWRBcHAsb25QZXJmRW50cnksQ2FjaGVkQ29tcG9uZW50LGRlZmF1bHRMb2NhbGU7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2xldCBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDkxNTk4KS5aO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxleHBvcnRzLmluaXRpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm4gX2luaXRpYWxpemUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxleHBvcnRzLmh5ZHJhdGU9ZnVuY3Rpb24ob3B0cyl7cmV0dXJuIF9oeWRyYXRlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZXhwb3J0cy5lbWl0dGVyPWV4cG9ydHMucm91dGVyPWV4cG9ydHMudmVyc2lvbj12b2lkIDA7dmFyIF9hc3luY190b19nZW5lcmF0b3I9X193ZWJwYWNrX3JlcXVpcmVfXyg2MDkzMikuWixfZXh0ZW5kcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY0OTUpLlosX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0PV9fd2VicGFja19yZXF1aXJlX18oOTI2NDgpLlo7X193ZWJwYWNrX3JlcXVpcmVfXyg5MTU5OCkuWixfX3dlYnBhY2tfcmVxdWlyZV9fKDQwMDM3KTt2YXIgX3JlYWN0PV9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChfX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSksX2NsaWVudD1faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXygyMDc0NSkpLF9oZWFkTWFuYWdlckNvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg0NjY0KSxfbWl0dD1faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXyg4NTUwKSksX3JvdXRlckNvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg3MjY5MiksX2lzRHluYW1pYz1fX3dlYnBhY2tfcmVxdWlyZV9fKDg2MjM4KSxfcXVlcnlzdHJpbmc9X193ZWJwYWNrX3JlcXVpcmVfXyg5NDkxOSksX3J1bnRpbWVDb25maWc9X193ZWJwYWNrX3JlcXVpcmVfXyg4Njk0OSksX3V0aWxzPV9fd2VicGFja19yZXF1aXJlX18oNjcwKSxfcG9ydGFsPV9fd2VicGFja19yZXF1aXJlX18oMTczNDUpLF9oZWFkTWFuYWdlcj1faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXygzMTgzMSkpLF9wYWdlTG9hZGVyPV9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChfX3dlYnBhY2tfcmVxdWlyZV9fKDcwOTc2KSksX3BlcmZvcm1hbmNlUmVsYXllcj1faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXyg2NTkpKSxfcm91dGVBbm5vdW5jZXI9X193ZWJwYWNrX3JlcXVpcmVfXygxODQ4MyksX3JvdXRlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDgwODgwKSxfaXNFcnJvcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDgwNjc2KSxfaW1hZ2VDb25maWdDb250ZXh0PV9fd2VicGFja19yZXF1aXJlX18oMjg3MzApLF9yZW1vdmVCYXNlUGF0aD1fX3dlYnBhY2tfcmVxdWlyZV9fKDgyODEzKSxfaGFzQmFzZVBhdGg9X193ZWJwYWNrX3JlcXVpcmVfXygxMDkyOCksX2FwcFJvdXRlckNvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg0ODI0NSksX2FkYXB0ZXJzPV9fd2VicGFja19yZXF1aXJlX18oNjA0MDEpLF9ob29rc0NsaWVudENvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg3ODkxNCk7ZXhwb3J0cy52ZXJzaW9uPSIxMy4wLjMiLGV4cG9ydHMucm91dGVyPXJvdXRlcjtsZXQgZW1pdHRlcj1fbWl0dC5kZWZhdWx0KCk7ZXhwb3J0cy5lbWl0dGVyPWVtaXR0ZXI7bGV0IGxvb3NlVG9BcnJheT1pbnB1dD0+W10uc2xpY2UuY2FsbChpbnB1dCksaW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlPSExO3NlbGYuX19uZXh0X3JlcXVpcmVfXz1fX3dlYnBhY2tfcmVxdWlyZV9fO2NsYXNzIENvbnRhaW5lciBleHRlbmRzIF9yZWFjdC5kZWZhdWx0LkNvbXBvbmVudHtjb21wb25lbnREaWRDYXRjaChjb21wb25lbnRFcnIsaW5mbyl7dGhpcy5wcm9wcy5mbihjb21wb25lbnRFcnIsaW5mbyl9Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLnNjcm9sbFRvSGFzaCgpLHJvdXRlci5pc1NzciYmIi80MDQiIT09aW5pdGlhbERhdGEucGFnZSYmIi9fZXJyb3IiIT09aW5pdGlhbERhdGEucGFnZSYmKGluaXRpYWxEYXRhLmlzRmFsbGJhY2t8fGluaXRpYWxEYXRhLm5leHRFeHBvcnQmJihfaXNEeW5hbWljLmlzRHluYW1pY1JvdXRlKHJvdXRlci5wYXRobmFtZSl8fGxvY2F0aW9uLnNlYXJjaCwxKXx8aW5pdGlhbERhdGEucHJvcHMmJmluaXRpYWxEYXRhLnByb3BzLl9fTl9TU0cmJihsb2NhdGlvbi5zZWFyY2gsMSkpJiZyb3V0ZXIucmVwbGFjZShyb3V0ZXIucGF0aG5hbWUrIj8iK1N0cmluZyhfcXVlcnlzdHJpbmcuYXNzaWduKF9xdWVyeXN0cmluZy51cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHJvdXRlci5xdWVyeSksbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpKSksYXNQYXRoLHtfaDoxLHNoYWxsb3c6IWluaXRpYWxEYXRhLmlzRmFsbGJhY2smJiFpbml0aWFsTWF0Y2hlc01pZGRsZXdhcmV9KS5jYXRjaChlcnI9PntpZighZXJyLmNhbmNlbGxlZCl0aHJvdyBlcnJ9KX1jb21wb25lbnREaWRVcGRhdGUoKXt0aGlzLnNjcm9sbFRvSGFzaCgpfXNjcm9sbFRvSGFzaCgpe2xldHtoYXNofT1sb2NhdGlvbjtpZighKGhhc2g9aGFzaCYmaGFzaC5zdWJzdHJpbmcoMSkpKXJldHVybjtsZXQgZWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaGFzaCk7ZWwmJnNldFRpbWVvdXQoKCk9PmVsLnNjcm9sbEludG9WaWV3KCksMCl9cmVuZGVyKCl7cmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW59fWZ1bmN0aW9uIF9pbml0aWFsaXplKCl7cmV0dXJuKF9pbml0aWFsaXplPV9hc3luY190b19nZW5lcmF0b3IoZnVuY3Rpb24qKCl7YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSxpbml0aWFsRGF0YT1KU09OLnBhcnNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJfX05FWFRfREFUQV9fIikudGV4dENvbnRlbnQpLHdpbmRvdy5fX05FWFRfREFUQV9fPWluaXRpYWxEYXRhLGRlZmF1bHRMb2NhbGU9aW5pdGlhbERhdGEuZGVmYXVsdExvY2FsZTtsZXQgcHJlZml4PWluaXRpYWxEYXRhLmFzc2V0UHJlZml4fHwiIjtfX3dlYnBhY2tfcmVxdWlyZV9fLnA9IiIuY29uY2F0KHByZWZpeCwiL19uZXh0LyIpLF9ydW50aW1lQ29uZmlnLnNldENvbmZpZyh7c2VydmVyUnVudGltZUNvbmZpZzp7fSxwdWJsaWNSdW50aW1lQ29uZmlnOmluaXRpYWxEYXRhLnJ1bnRpbWVDb25maWd8fHt9fSksYXNQYXRoPV91dGlscy5nZXRVUkwoKSxfaGFzQmFzZVBhdGguaGFzQmFzZVBhdGgoYXNQYXRoKSYmKGFzUGF0aD1fcmVtb3ZlQmFzZVBhdGgucmVtb3ZlQmFzZVBhdGgoYXNQYXRoKSk7e2xldHtub3JtYWxpemVMb2NhbGVQYXRofT1fX3dlYnBhY2tfcmVxdWlyZV9fKDI0NzY5KSx7ZGV0ZWN0RG9tYWluTG9jYWxlfT1fX3dlYnBhY2tfcmVxdWlyZV9fKDcyMzg4KSx7cGFyc2VSZWxhdGl2ZVVybH09X193ZWJwYWNrX3JlcXVpcmVfXygyMjg2NCkse2Zvcm1hdFVybH09X193ZWJwYWNrX3JlcXVpcmVfXyg2Nzc5NSk7aWYoaW5pdGlhbERhdGEubG9jYWxlcyl7bGV0IHBhcnNlZEFzPXBhcnNlUmVsYXRpdmVVcmwoYXNQYXRoKSxsb2NhbGVQYXRoUmVzdWx0PW5vcm1hbGl6ZUxvY2FsZVBhdGgocGFyc2VkQXMucGF0aG5hbWUsaW5pdGlhbERhdGEubG9jYWxlcyk7bG9jYWxlUGF0aFJlc3VsdC5kZXRlY3RlZExvY2FsZT8ocGFyc2VkQXMucGF0aG5hbWU9bG9jYWxlUGF0aFJlc3VsdC5wYXRobmFtZSxhc1BhdGg9Zm9ybWF0VXJsKHBhcnNlZEFzKSk6ZGVmYXVsdExvY2FsZT1pbml0aWFsRGF0YS5sb2NhbGU7bGV0IGRldGVjdGVkRG9tYWluPWRldGVjdERvbWFpbkxvY2FsZSh2b2lkIDAsd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKTtkZXRlY3RlZERvbWFpbiYmKGRlZmF1bHRMb2NhbGU9ZGV0ZWN0ZWREb21haW4uZGVmYXVsdExvY2FsZSl9fWlmKGluaXRpYWxEYXRhLnNjcmlwdExvYWRlcil7bGV0e2luaXRTY3JpcHRMb2FkZXJ9PV9fd2VicGFja19yZXF1aXJlX18oNjM1NzMpO2luaXRTY3JpcHRMb2FkZXIoaW5pdGlhbERhdGEuc2NyaXB0TG9hZGVyKX1wYWdlTG9hZGVyPW5ldyBfcGFnZUxvYWRlci5kZWZhdWx0KGluaXRpYWxEYXRhLmJ1aWxkSWQscHJlZml4KTtsZXQgcmVnaXN0ZXI9cGFyYW09PntsZXRbcixmXT1wYXJhbTtyZXR1cm4gcGFnZUxvYWRlci5yb3V0ZUxvYWRlci5vbkVudHJ5cG9pbnQocixmKX07cmV0dXJuIHdpbmRvdy5fX05FWFRfUCYmd2luZG93Ll9fTkVYVF9QLm1hcChwPT5zZXRUaW1lb3V0KCgpPT5yZWdpc3RlcihwKSwwKSksd2luZG93Ll9fTkVYVF9QPVtdLHdpbmRvdy5fX05FWFRfUC5wdXNoPXJlZ2lzdGVyLChoZWFkTWFuYWdlcj1faGVhZE1hbmFnZXIuZGVmYXVsdCgpKS5nZXRJc1Nzcj0oKT0+cm91dGVyLmlzU3NyLGFwcEVsZW1lbnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIl9fbmV4dCIpLHthc3NldFByZWZpeDpwcmVmaXh9fSkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiByZW5kZXJBcHAoQXBwLGFwcFByb3BzKXtyZXR1cm4gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChBcHAsT2JqZWN0LmFzc2lnbih7fSxhcHBQcm9wcykpfWZ1bmN0aW9uIEFwcENvbnRhaW5lcihwYXJhbSl7dmFyIF9hdXRvRXhwb3J0O2xldHtjaGlsZHJlbn09cGFyYW07cmV0dXJuIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQ29udGFpbmVyLHtmbjplcnJvcj0+cmVuZGVyRXJyb3Ioe0FwcDpDYWNoZWRBcHAsZXJyOmVycm9yfSkuY2F0Y2goZXJyPT5jb25zb2xlLmVycm9yKCJFcnJvciByZW5kZXJpbmcgcGFnZTogIixlcnIpKX0sX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfYXBwUm91dGVyQ29udGV4dC5BcHBSb3V0ZXJDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpfYWRhcHRlcnMuYWRhcHRGb3JBcHBSb3V0ZXJJbnN0YW5jZShyb3V0ZXIpfSxfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9ob29rc0NsaWVudENvbnRleHQuU2VhcmNoUGFyYW1zQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6X2FkYXB0ZXJzLmFkYXB0Rm9yU2VhcmNoUGFyYW1zKHJvdXRlcil9LF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX2FkYXB0ZXJzLlBhdGhuYW1lQ29udGV4dFByb3ZpZGVyQWRhcHRlcix7cm91dGVyOnJvdXRlcixpc0F1dG9FeHBvcnQ6bnVsbCE9KF9hdXRvRXhwb3J0PXNlbGYuX19ORVhUX0RBVEFfXy5hdXRvRXhwb3J0KSYmX2F1dG9FeHBvcnR9LF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX3JvdXRlckNvbnRleHQuUm91dGVyQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6X3JvdXRlci5tYWtlUHVibGljUm91dGVySW5zdGFuY2Uocm91dGVyKX0sX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfaGVhZE1hbmFnZXJDb250ZXh0LkhlYWRNYW5hZ2VyQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6aGVhZE1hbmFnZXJ9LF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX2ltYWdlQ29uZmlnQ29udGV4dC5JbWFnZUNvbmZpZ0NvbnRleHQuUHJvdmlkZXIse3ZhbHVlOntkZXZpY2VTaXplczpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OF0saW1hZ2VTaXplczpbMTYsMzIsNDgsNjQsOTYsMTI4LDI1NiwzODRdLHBhdGg6Ii9fbmV4dC9pbWFnZSIsbG9hZGVyOiJkZWZhdWx0IixkYW5nZXJvdXNseUFsbG93U1ZHOiExLHVub3B0aW1pemVkOiExfX0sY2hpbGRyZW4pKSkpKSkpfWxldCB3cmFwQXBwPUFwcD0+d3JhcHBlZEFwcFByb3BzPT57bGV0IGFwcFByb3BzPV9leHRlbmRzKHt9LHdyYXBwZWRBcHBQcm9wcyx7Q29tcG9uZW50OkNhY2hlZENvbXBvbmVudCxlcnI6aW5pdGlhbERhdGEuZXJyLHJvdXRlcn0pO3JldHVybiBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEFwcENvbnRhaW5lcixudWxsLHJlbmRlckFwcChBcHAsYXBwUHJvcHMpKX07ZnVuY3Rpb24gcmVuZGVyRXJyb3IocmVuZGVyRXJyb3JQcm9wcyl7bGV0e0FwcCxlcnJ9PXJlbmRlckVycm9yUHJvcHM7cmV0dXJuIGNvbnNvbGUuZXJyb3IoZXJyKSxjb25zb2xlLmVycm9yKCJBIGNsaWVudC1zaWRlIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQsIHNlZSBoZXJlIGZvciBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2NsaWVudC1zaWRlLWV4Y2VwdGlvbi1vY2N1cnJlZCIpLHBhZ2VMb2FkZXIubG9hZFBhZ2UoIi9fZXJyb3IiKS50aGVuKHBhcmFtPT57bGV0e3BhZ2U6RXJyb3JDb21wb25lbnQsc3R5bGVTaGVldHN9PXBhcmFtO3JldHVybihudWxsPT1sYXN0QXBwUHJvcHM/dm9pZCAwOmxhc3RBcHBQcm9wcy5Db21wb25lbnQpPT09RXJyb3JDb21wb25lbnQ/UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+X2ludGVyb3BSZXF1aXJlV2lsZGNhcmQoX193ZWJwYWNrX3JlcXVpcmVfXyg5NzM0NSkpKS50aGVuKGVycm9yTW9kdWxlPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5faW50ZXJvcFJlcXVpcmVXaWxkY2FyZChfX3dlYnBhY2tfcmVxdWlyZV9fKDc0Mjk3KSkpLnRoZW4oYXBwTW9kdWxlPT4oQXBwPWFwcE1vZHVsZS5kZWZhdWx0LHJlbmRlckVycm9yUHJvcHMuQXBwPUFwcCxlcnJvck1vZHVsZSkpKS50aGVuKG09Pih7RXJyb3JDb21wb25lbnQ6bS5kZWZhdWx0LHN0eWxlU2hlZXRzOltdfSkpOntFcnJvckNvbXBvbmVudCxzdHlsZVNoZWV0c319KS50aGVuKHBhcmFtPT57dmFyIHJlZjtsZXR7RXJyb3JDb21wb25lbnQsc3R5bGVTaGVldHN9PXBhcmFtLEFwcFRyZWU9d3JhcEFwcChBcHApLGFwcEN0eD17Q29tcG9uZW50OkVycm9yQ29tcG9uZW50LEFwcFRyZWUscm91dGVyLGN0eDp7ZXJyLHBhdGhuYW1lOmluaXRpYWxEYXRhLnBhZ2UscXVlcnk6aW5pdGlhbERhdGEucXVlcnksYXNQYXRoLEFwcFRyZWV9fTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKChudWxsPT0ocmVmPXJlbmRlckVycm9yUHJvcHMucHJvcHMpP3ZvaWQgMDpyZWYuZXJyKT9yZW5kZXJFcnJvclByb3BzLnByb3BzOl91dGlscy5sb2FkR2V0SW5pdGlhbFByb3BzKEFwcCxhcHBDdHgpKS50aGVuKGluaXRQcm9wcz0+ZG9SZW5kZXIoX2V4dGVuZHMoe30scmVuZGVyRXJyb3JQcm9wcyx7ZXJyLENvbXBvbmVudDpFcnJvckNvbXBvbmVudCxzdHlsZVNoZWV0cyxwcm9wczppbml0UHJvcHN9KSkpfSl9ZnVuY3Rpb24gSGVhZChwYXJhbSl7bGV0e2NhbGxiYWNrfT1wYXJhbTtyZXR1cm4gX3JlYWN0LmRlZmF1bHQudXNlTGF5b3V0RWZmZWN0KCgpPT5jYWxsYmFjaygpLFtjYWxsYmFja10pLG51bGx9bGV0IHJlYWN0Um9vdD1udWxsLHNob3VsZEh5ZHJhdGU9ITA7ZnVuY3Rpb24gY2xlYXJNYXJrcygpe1siYmVmb3JlUmVuZGVyIiwiYWZ0ZXJIeWRyYXRlIiwiYWZ0ZXJSZW5kZXIiLCJyb3V0ZUNoYW5nZSJdLmZvckVhY2gobWFyaz0+cGVyZm9ybWFuY2UuY2xlYXJNYXJrcyhtYXJrKSl9ZnVuY3Rpb24gbWFya0h5ZHJhdGVDb21wbGV0ZSgpe191dGlscy5TVCYmKHBlcmZvcm1hbmNlLm1hcmsoImFmdGVySHlkcmF0ZSIpLHBlcmZvcm1hbmNlLm1lYXN1cmUoIk5leHQuanMtYmVmb3JlLWh5ZHJhdGlvbiIsIm5hdmlnYXRpb25TdGFydCIsImJlZm9yZVJlbmRlciIpLHBlcmZvcm1hbmNlLm1lYXN1cmUoIk5leHQuanMtaHlkcmF0aW9uIiwiYmVmb3JlUmVuZGVyIiwiYWZ0ZXJIeWRyYXRlIiksb25QZXJmRW50cnkmJnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUoIk5leHQuanMtaHlkcmF0aW9uIikuZm9yRWFjaChvblBlcmZFbnRyeSksY2xlYXJNYXJrcygpKX1mdW5jdGlvbiBtYXJrUmVuZGVyQ29tcGxldGUoKXtpZighX3V0aWxzLlNUKXJldHVybjtwZXJmb3JtYW5jZS5tYXJrKCJhZnRlclJlbmRlciIpO2xldCBuYXZTdGFydEVudHJpZXM9cGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSgicm91dGVDaGFuZ2UiLCJtYXJrIik7bmF2U3RhcnRFbnRyaWVzLmxlbmd0aCYmKHBlcmZvcm1hbmNlLm1lYXN1cmUoIk5leHQuanMtcm91dGUtY2hhbmdlLXRvLXJlbmRlciIsbmF2U3RhcnRFbnRyaWVzWzBdLm5hbWUsImJlZm9yZVJlbmRlciIpLHBlcmZvcm1hbmNlLm1lYXN1cmUoIk5leHQuanMtcmVuZGVyIiwiYmVmb3JlUmVuZGVyIiwiYWZ0ZXJSZW5kZXIiKSxvblBlcmZFbnRyeSYmKHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUoIk5leHQuanMtcmVuZGVyIikuZm9yRWFjaChvblBlcmZFbnRyeSkscGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSgiTmV4dC5qcy1yb3V0ZS1jaGFuZ2UtdG8tcmVuZGVyIikuZm9yRWFjaChvblBlcmZFbnRyeSkpLGNsZWFyTWFya3MoKSxbIk5leHQuanMtcm91dGUtY2hhbmdlLXRvLXJlbmRlciIsIk5leHQuanMtcmVuZGVyIl0uZm9yRWFjaChtZWFzdXJlPT5wZXJmb3JtYW5jZS5jbGVhck1lYXN1cmVzKG1lYXN1cmUpKSl9ZnVuY3Rpb24gUm9vdChwYXJhbSl7bGV0e2NhbGxiYWNrcyxjaGlsZHJlbn09cGFyYW07cmV0dXJuIF9yZWFjdC5kZWZhdWx0LnVzZUxheW91dEVmZmVjdCgoKT0+Y2FsbGJhY2tzLmZvckVhY2goY2FsbGJhY2s9PmNhbGxiYWNrKCkpLFtjYWxsYmFja3NdKSxfcmVhY3QuZGVmYXVsdC51c2VFZmZlY3QoKCk9PntfcGVyZm9ybWFuY2VSZWxheWVyLmRlZmF1bHQob25QZXJmRW50cnkpfSxbXSksY2hpbGRyZW59ZnVuY3Rpb24gZG9SZW5kZXIoaW5wdXQpe2xldCByZXNvbHZlUHJvbWlzZSx7QXBwLENvbXBvbmVudCxwcm9wcyxlcnJ9PWlucHV0LHN0eWxlU2hlZXRzPSJpbml0aWFsImluIGlucHV0P3ZvaWQgMDppbnB1dC5zdHlsZVNoZWV0cztDb21wb25lbnQ9Q29tcG9uZW50fHxsYXN0QXBwUHJvcHMuQ29tcG9uZW50LHByb3BzPXByb3BzfHxsYXN0QXBwUHJvcHMucHJvcHM7bGV0IGFwcFByb3BzPV9leHRlbmRzKHt9LHByb3BzLHtDb21wb25lbnQsZXJyLHJvdXRlcn0pO2xhc3RBcHBQcm9wcz1hcHBQcm9wcztsZXQgY2FuY2VsZWQ9ITEscmVuZGVyUHJvbWlzZT1uZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpPT57bGFzdFJlbmRlclJlamVjdCYmbGFzdFJlbmRlclJlamVjdCgpLHJlc29sdmVQcm9taXNlPSgpPT57bGFzdFJlbmRlclJlamVjdD1udWxsLHJlc29sdmUoKX0sbGFzdFJlbmRlclJlamVjdD0oKT0+e2NhbmNlbGVkPSEwLGxhc3RSZW5kZXJSZWplY3Q9bnVsbDtsZXQgZXJyb3I9RXJyb3IoIkNhbmNlbCByZW5kZXJpbmcgcm91dGUiKTtlcnJvci5jYW5jZWxsZWQ9ITAscmVqZWN0KGVycm9yKX19KTtmdW5jdGlvbiBvblJvb3RDb21taXQoKXtyZXNvbHZlUHJvbWlzZSgpfSFmdW5jdGlvbigpe2lmKCFzdHlsZVNoZWV0cylyZXR1cm47bGV0IGN1cnJlbnRTdHlsZVRhZ3M9bG9vc2VUb0FycmF5KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlW2RhdGEtbi1ocmVmXSIpKSxjdXJyZW50SHJlZnM9bmV3IFNldChjdXJyZW50U3R5bGVUYWdzLm1hcCh0YWc9PnRhZy5nZXRBdHRyaWJ1dGUoImRhdGEtbi1ocmVmIikpKSxub3NjcmlwdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJub3NjcmlwdFtkYXRhLW4tY3NzXSIpLG5vbmNlPW51bGw9PW5vc2NyaXB0P3ZvaWQgMDpub3NjcmlwdC5nZXRBdHRyaWJ1dGUoImRhdGEtbi1jc3MiKTtzdHlsZVNoZWV0cy5mb3JFYWNoKHBhcmFtPT57bGV0e2hyZWYsdGV4dH09cGFyYW07aWYoIWN1cnJlbnRIcmVmcy5oYXMoaHJlZikpe2xldCBzdHlsZVRhZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3N0eWxlVGFnLnNldEF0dHJpYnV0ZSgiZGF0YS1uLWhyZWYiLGhyZWYpLHN0eWxlVGFnLnNldEF0dHJpYnV0ZSgibWVkaWEiLCJ4Iiksbm9uY2UmJnN0eWxlVGFnLnNldEF0dHJpYnV0ZSgibm9uY2UiLG5vbmNlKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlVGFnKSxzdHlsZVRhZy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSl9fSl9KCk7bGV0IGVsZW09X3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfcmVhY3QuZGVmYXVsdC5GcmFnbWVudCxudWxsLF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoSGVhZCx7Y2FsbGJhY2s6ZnVuY3Rpb24oKXtpZihzdHlsZVNoZWV0cyYmIWNhbmNlbGVkKXtsZXQgZGVzaXJlZEhyZWZzPW5ldyBTZXQoc3R5bGVTaGVldHMubWFwKHM9PnMuaHJlZikpLGN1cnJlbnRTdHlsZVRhZ3M9bG9vc2VUb0FycmF5KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlW2RhdGEtbi1ocmVmXSIpKSxjdXJyZW50SHJlZnM9Y3VycmVudFN0eWxlVGFncy5tYXAodGFnPT50YWcuZ2V0QXR0cmlidXRlKCJkYXRhLW4taHJlZiIpKTtmb3IobGV0IGlkeD0wO2lkeDxjdXJyZW50SHJlZnMubGVuZ3RoOysraWR4KWRlc2lyZWRIcmVmcy5oYXMoY3VycmVudEhyZWZzW2lkeF0pP2N1cnJlbnRTdHlsZVRhZ3NbaWR4XS5yZW1vdmVBdHRyaWJ1dGUoIm1lZGlhIik6Y3VycmVudFN0eWxlVGFnc1tpZHhdLnNldEF0dHJpYnV0ZSgibWVkaWEiLCJ4Iik7bGV0IHJlZmVyZW5jZU5vZGU9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigibm9zY3JpcHRbZGF0YS1uLWNzc10iKTtyZWZlcmVuY2VOb2RlJiZzdHlsZVNoZWV0cy5mb3JFYWNoKHBhcmFtPT57bGV0e2hyZWZ9PXBhcmFtLHRhcmdldFRhZz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzdHlsZVtkYXRhLW4taHJlZj0iJy5jb25jYXQoaHJlZiwnIl0nKSk7dGFyZ2V0VGFnJiYocmVmZXJlbmNlTm9kZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0YXJnZXRUYWcscmVmZXJlbmNlTm9kZS5uZXh0U2libGluZykscmVmZXJlbmNlTm9kZT10YXJnZXRUYWcpfSksbG9vc2VUb0FycmF5KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImxpbmtbZGF0YS1uLXBdIikpLmZvckVhY2goZWw9PntlbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsKX0pfWlmKGlucHV0LnNjcm9sbCl7bGV0IGh0bWxFbGVtZW50PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxleGlzdGluZz1odG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvcjtodG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvcj0iYXV0byIsd2luZG93LnNjcm9sbFRvKGlucHV0LnNjcm9sbC54LGlucHV0LnNjcm9sbC55KSxodG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvcj1leGlzdGluZ319fSksX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChBcHBDb250YWluZXIsbnVsbCxyZW5kZXJBcHAoQXBwLGFwcFByb3BzKSxfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9wb3J0YWwuUG9ydGFsLHt0eXBlOiJuZXh0LXJvdXRlLWFubm91bmNlciJ9LF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX3JvdXRlQW5ub3VuY2VyLlJvdXRlQW5ub3VuY2VyLG51bGwpKSkpO3JldHVybiFmdW5jdGlvbihkb21FbCxmbil7X3V0aWxzLlNUJiZwZXJmb3JtYW5jZS5tYXJrKCJiZWZvcmVSZW5kZXIiKTtsZXQgcmVhY3RFbD1mbihzaG91bGRIeWRyYXRlP21hcmtIeWRyYXRlQ29tcGxldGU6bWFya1JlbmRlckNvbXBsZXRlKTtpZihyZWFjdFJvb3Qpe2xldCBzdGFydFRyYW5zaXRpb249X3JlYWN0LmRlZmF1bHQuc3RhcnRUcmFuc2l0aW9uO3N0YXJ0VHJhbnNpdGlvbigoKT0+e3JlYWN0Um9vdC5yZW5kZXIocmVhY3RFbCl9KX1lbHNlIHJlYWN0Um9vdD1fY2xpZW50LmRlZmF1bHQuaHlkcmF0ZVJvb3QoZG9tRWwscmVhY3RFbCksc2hvdWxkSHlkcmF0ZT0hMX0oYXBwRWxlbWVudCxjYWxsYmFjaz0+X3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChSb290LHtjYWxsYmFja3M6W2NhbGxiYWNrLG9uUm9vdENvbW1pdF19LF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX3JlYWN0LmRlZmF1bHQuU3RyaWN0TW9kZSxudWxsLGVsZW0pKSkscmVuZGVyUHJvbWlzZX1mdW5jdGlvbiByZW5kZXIocmVuZGVyaW5nUHJvcHMpe3JldHVybiBfcmVuZGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBfcmVuZGVyKCl7cmV0dXJuKF9yZW5kZXI9X2FzeW5jX3RvX2dlbmVyYXRvcihmdW5jdGlvbioocmVuZGVyaW5nUHJvcHMpe2lmKHJlbmRlcmluZ1Byb3BzLmVycil7eWllbGQgcmVuZGVyRXJyb3IocmVuZGVyaW5nUHJvcHMpO3JldHVybn10cnl7eWllbGQgZG9SZW5kZXIocmVuZGVyaW5nUHJvcHMpfWNhdGNoKGVycil7bGV0IHJlbmRlckVycj1faXNFcnJvci5nZXRQcm9wZXJFcnJvcihlcnIpO2lmKHJlbmRlckVyci5jYW5jZWxsZWQpdGhyb3cgcmVuZGVyRXJyO3lpZWxkIHJlbmRlckVycm9yKF9leHRlbmRzKHt9LHJlbmRlcmluZ1Byb3BzLHtlcnI6cmVuZGVyRXJyfSkpfX0pKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gX2h5ZHJhdGUoKXtyZXR1cm4oX2h5ZHJhdGU9X2FzeW5jX3RvX2dlbmVyYXRvcihmdW5jdGlvbioob3B0cyl7bGV0IGluaXRpYWxFcnI9aW5pdGlhbERhdGEuZXJyO3RyeXtsZXQgYXBwRW50cnlwb2ludD15aWVsZCBwYWdlTG9hZGVyLnJvdXRlTG9hZGVyLndoZW5FbnRyeXBvaW50KCIvX2FwcCIpO2lmKCJlcnJvciJpbiBhcHBFbnRyeXBvaW50KXRocm93IGFwcEVudHJ5cG9pbnQuZXJyb3I7bGV0e2NvbXBvbmVudDphcHAsZXhwb3J0czptb2R9PWFwcEVudHJ5cG9pbnQ7Q2FjaGVkQXBwPWFwcCxtb2QmJm1vZC5yZXBvcnRXZWJWaXRhbHMmJihvblBlcmZFbnRyeT1wYXJhbT0+e2xldCBwZXJmU3RhcnRFbnRyeSx7aWQsbmFtZSxzdGFydFRpbWUsdmFsdWUsZHVyYXRpb24sZW50cnlUeXBlLGVudHJpZXMsYXR0cmlidXRpb259PXBhcmFtLHVuaXF1ZUlEPSIiLmNvbmNhdChEYXRlLm5vdygpLCItIikuY29uY2F0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooOWUxMi0xKSkrMWUxMik7ZW50cmllcyYmZW50cmllcy5sZW5ndGgmJihwZXJmU3RhcnRFbnRyeT1lbnRyaWVzWzBdLnN0YXJ0VGltZSk7bGV0IHdlYlZpdGFscz17aWQ6aWR8fHVuaXF1ZUlELG5hbWUsc3RhcnRUaW1lOnN0YXJ0VGltZXx8cGVyZlN0YXJ0RW50cnksdmFsdWU6bnVsbD09dmFsdWU/ZHVyYXRpb246dmFsdWUsbGFiZWw6Im1hcmsiPT09ZW50cnlUeXBlfHwibWVhc3VyZSI9PT1lbnRyeVR5cGU/ImN1c3RvbSI6IndlYi12aXRhbCJ9O2F0dHJpYnV0aW9uJiYod2ViVml0YWxzLmF0dHJpYnV0aW9uPWF0dHJpYnV0aW9uKSxtb2QucmVwb3J0V2ViVml0YWxzKHdlYlZpdGFscyl9KTtsZXQgcGFnZUVudHJ5cG9pbnQ9eWllbGQgcGFnZUxvYWRlci5yb3V0ZUxvYWRlci53aGVuRW50cnlwb2ludChpbml0aWFsRGF0YS5wYWdlKTtpZigiZXJyb3IiaW4gcGFnZUVudHJ5cG9pbnQpdGhyb3cgcGFnZUVudHJ5cG9pbnQuZXJyb3I7Q2FjaGVkQ29tcG9uZW50PXBhZ2VFbnRyeXBvaW50LmNvbXBvbmVudH1jYXRjaChlcnJvcjEpe2luaXRpYWxFcnI9X2lzRXJyb3IuZ2V0UHJvcGVyRXJyb3IoZXJyb3IxKX13aW5kb3cuX19ORVhUX1BSRUxPQURSRUFEWSYmKHlpZWxkIHdpbmRvdy5fX05FWFRfUFJFTE9BRFJFQURZKGluaXRpYWxEYXRhLmR5bmFtaWNJZHMpKSxleHBvcnRzLnJvdXRlcj1yb3V0ZXI9X3JvdXRlci5jcmVhdGVSb3V0ZXIoaW5pdGlhbERhdGEucGFnZSxpbml0aWFsRGF0YS5xdWVyeSxhc1BhdGgse2luaXRpYWxQcm9wczppbml0aWFsRGF0YS5wcm9wcyxwYWdlTG9hZGVyLEFwcDpDYWNoZWRBcHAsQ29tcG9uZW50OkNhY2hlZENvbXBvbmVudCx3cmFwQXBwLGVycjppbml0aWFsRXJyLGlzRmFsbGJhY2s6Qm9vbGVhbihpbml0aWFsRGF0YS5pc0ZhbGxiYWNrKSxzdWJzY3JpcHRpb246KGluZm8sQXBwLHNjcm9sbCk9PnJlbmRlcihPYmplY3QuYXNzaWduKHt9LGluZm8se0FwcCxzY3JvbGx9KSksbG9jYWxlOmluaXRpYWxEYXRhLmxvY2FsZSxsb2NhbGVzOmluaXRpYWxEYXRhLmxvY2FsZXMsZGVmYXVsdExvY2FsZSxkb21haW5Mb2NhbGVzOmluaXRpYWxEYXRhLmRvbWFpbkxvY2FsZXMsaXNQcmV2aWV3OmluaXRpYWxEYXRhLmlzUHJldmlld30pLGluaXRpYWxNYXRjaGVzTWlkZGxld2FyZT15aWVsZCByb3V0ZXIuX2luaXRpYWxNYXRjaGVzTWlkZGxld2FyZVByb21pc2U7bGV0IHJlbmRlckN0eD17QXBwOkNhY2hlZEFwcCxpbml0aWFsOiEwLENvbXBvbmVudDpDYWNoZWRDb21wb25lbnQscHJvcHM6aW5pdGlhbERhdGEucHJvcHMsZXJyOmluaXRpYWxFcnJ9OyhudWxsPT1vcHRzP3ZvaWQgMDpvcHRzLmJlZm9yZVJlbmRlcikmJih5aWVsZCBvcHRzLmJlZm9yZVJlbmRlcigpKSxyZW5kZXIocmVuZGVyQ3R4KX0pKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KCJmdW5jdGlvbiI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2YgZXhwb3J0cy5kZWZhdWx0JiZudWxsIT09ZXhwb3J0cy5kZWZhdWx0KSYmdm9pZCAwPT09ZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCxleHBvcnRzKSxtb2R1bGUuZXhwb3J0cz1leHBvcnRzLmRlZmF1bHQpfSwyMTc4MzpmdW5jdGlvbihtb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7dmFyIF89X193ZWJwYWNrX3JlcXVpcmVfXyg4NDUzNCk7d2luZG93Lm5leHQ9e3ZlcnNpb246Xy52ZXJzaW9uLGdldCByb3V0ZXIoKXtyZXR1cm4gXy5yb3V0ZXJ9LGVtaXR0ZXI6Xy5lbWl0dGVyfSxfLmluaXRpYWxpemUoe30pLnRoZW4oKCk9Pl8uaHlkcmF0ZSgpKS5jYXRjaChjb25zb2xlLmVycm9yKSwoImZ1bmN0aW9uIj09dHlwZW9mIGV4cG9ydHMuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHQmJm51bGwhPT1leHBvcnRzLmRlZmF1bHQpJiZ2b2lkIDA9PT1leHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LGV4cG9ydHMpLG1vZHVsZS5leHBvcnRzPWV4cG9ydHMuZGVmYXVsdCl9LDUyNzAwOmZ1bmN0aW9uKG1vZHVsZSxleHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaD12b2lkIDA7dmFyIF9yZW1vdmVUcmFpbGluZ1NsYXNoPV9fd2VicGFja19yZXF1aXJlX18oNDAwMTIpLF9wYXJzZVBhdGg9X193ZWJwYWNrX3JlcXVpcmVfXygyNjcyNyk7bGV0IG5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoPXBhdGg9PntpZighcGF0aC5zdGFydHNXaXRoKCIvIikpcmV0dXJuIHBhdGg7bGV0e3BhdGhuYW1lLHF1ZXJ5LGhhc2h9PV9wYXJzZVBhdGgucGFyc2VQYXRoKHBhdGgpO3JldHVybiIiLmNvbmNhdChfcmVtb3ZlVHJhaWxpbmdTbGFzaC5yZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKSkuY29uY2F0KHF1ZXJ5KS5jb25jYXQoaGFzaCl9O2V4cG9ydHMubm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2g9bm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2gsKCJmdW5jdGlvbiI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2YgZXhwb3J0cy5kZWZhdWx0JiZudWxsIT09ZXhwb3J0cy5kZWZhdWx0KSYmdm9pZCAwPT09ZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCxleHBvcnRzKSxtb2R1bGUuZXhwb3J0cz1leHBvcnRzLmRlZmF1bHQpfSw3MDk3NjpmdW5jdGlvbihtb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuZGVmYXVsdD12b2lkIDA7dmFyIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDkyNjQ4KS5aLF9hZGRCYXNlUGF0aD1fX3dlYnBhY2tfcmVxdWlyZV9fKDMzNDY4KSxfcm91dGVyPV9fd2VicGFja19yZXF1aXJlX18oNDEwMDMpLF9nZXRBc3NldFBhdGhGcm9tUm91dGU9X2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KF9fd2VicGFja19yZXF1aXJlX18oMjc5MjkpKSxfYWRkTG9jYWxlPV9fd2VicGFja19yZXF1aXJlX18oNTQ0NjUpLF9pc0R5bmFtaWM9X193ZWJwYWNrX3JlcXVpcmVfXyg4NjIzOCksX3BhcnNlUmVsYXRpdmVVcmw9X193ZWJwYWNrX3JlcXVpcmVfXygyMjg2NCksX3JlbW92ZVRyYWlsaW5nU2xhc2g9X193ZWJwYWNrX3JlcXVpcmVfXyg0MDAxMiksX3JvdXRlTG9hZGVyPV9fd2VicGFja19yZXF1aXJlX18oODI0OTcpO2V4cG9ydHMuZGVmYXVsdD1jbGFzc3tnZXRQYWdlTGlzdCgpe3JldHVybiBfcm91dGVMb2FkZXIuZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCgpLnRoZW4obWFuaWZlc3Q9Pm1hbmlmZXN0LnNvcnRlZFBhZ2VzKX1nZXRNaWRkbGV3YXJlKCl7cmV0dXJuIHdpbmRvdy5fX01JRERMRVdBUkVfTUFUQ0hFUlM9W10sd2luZG93Ll9fTUlERExFV0FSRV9NQVRDSEVSU31nZXREYXRhSHJlZihwYXJhbXMpe2xldHthc1BhdGgsaHJlZixsb2NhbGV9PXBhcmFtcyx7cGF0aG5hbWU6aHJlZlBhdGhuYW1lLHF1ZXJ5LHNlYXJjaH09X3BhcnNlUmVsYXRpdmVVcmwucGFyc2VSZWxhdGl2ZVVybChocmVmKSx7cGF0aG5hbWU6YXNQYXRobmFtZX09X3BhcnNlUmVsYXRpdmVVcmwucGFyc2VSZWxhdGl2ZVVybChhc1BhdGgpLHJvdXRlPV9yZW1vdmVUcmFpbGluZ1NsYXNoLnJlbW92ZVRyYWlsaW5nU2xhc2goaHJlZlBhdGhuYW1lKTtpZigiLyIhPT1yb3V0ZVswXSl0aHJvdyBFcnJvcignUm91dGUgbmFtZSBzaG91bGQgc3RhcnQgd2l0aCBhICIvIiwgZ290ICInLmNvbmNhdChyb3V0ZSwnIicpKTtyZXR1cm4ocGF0aD0+e2xldCBkYXRhUm91dGU9X2dldEFzc2V0UGF0aEZyb21Sb3V0ZS5kZWZhdWx0KF9yZW1vdmVUcmFpbGluZ1NsYXNoLnJlbW92ZVRyYWlsaW5nU2xhc2goX2FkZExvY2FsZS5hZGRMb2NhbGUocGF0aCxsb2NhbGUpKSwiLmpzb24iKTtyZXR1cm4gX2FkZEJhc2VQYXRoLmFkZEJhc2VQYXRoKCIvX25leHQvZGF0YS8iLmNvbmNhdCh0aGlzLmJ1aWxkSWQpLmNvbmNhdChkYXRhUm91dGUpLmNvbmNhdChzZWFyY2gpLCEwKX0pKHBhcmFtcy5za2lwSW50ZXJwb2xhdGlvbj9hc1BhdGhuYW1lOl9pc0R5bmFtaWMuaXNEeW5hbWljUm91dGUocm91dGUpP19yb3V0ZXIuaW50ZXJwb2xhdGVBcyhocmVmUGF0aG5hbWUsYXNQYXRobmFtZSxxdWVyeSkucmVzdWx0OnJvdXRlKX1faXNTc2cocm91dGUpe3JldHVybiB0aGlzLnByb21pc2VkU3NnTWFuaWZlc3QudGhlbihtYW5pZmVzdD0+bWFuaWZlc3QuaGFzKHJvdXRlKSl9bG9hZFBhZ2Uocm91dGUpe3JldHVybiB0aGlzLnJvdXRlTG9hZGVyLmxvYWRSb3V0ZShyb3V0ZSkudGhlbihyZXM9PntpZigiY29tcG9uZW50ImluIHJlcylyZXR1cm57cGFnZTpyZXMuY29tcG9uZW50LG1vZDpyZXMuZXhwb3J0cyxzdHlsZVNoZWV0czpyZXMuc3R5bGVzLm1hcChvPT4oe2hyZWY6by5ocmVmLHRleHQ6by5jb250ZW50fSkpfTt0aHJvdyByZXMuZXJyb3J9KX1wcmVmZXRjaChyb3V0ZSl7cmV0dXJuIHRoaXMucm91dGVMb2FkZXIucHJlZmV0Y2gocm91dGUpfWNvbnN0cnVjdG9yKGJ1aWxkSWQsYXNzZXRQcmVmaXgpe3RoaXMucm91dGVMb2FkZXI9X3JvdXRlTG9hZGVyLmNyZWF0ZVJvdXRlTG9hZGVyKGFzc2V0UHJlZml4KSx0aGlzLmJ1aWxkSWQ9YnVpbGRJZCx0aGlzLmFzc2V0UHJlZml4PWFzc2V0UHJlZml4LHRoaXMucHJvbWlzZWRTc2dNYW5pZmVzdD1uZXcgUHJvbWlzZShyZXNvbHZlPT57d2luZG93Ll9fU1NHX01BTklGRVNUP3Jlc29sdmUod2luZG93Ll9fU1NHX01BTklGRVNUKTp3aW5kb3cuX19TU0dfTUFOSUZFU1RfQ0I9KCk9PntyZXNvbHZlKHdpbmRvdy5fX1NTR19NQU5JRkVTVCl9fSl9fSwoImZ1bmN0aW9uIj09dHlwZW9mIGV4cG9ydHMuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHQmJm51bGwhPT1leHBvcnRzLmRlZmF1bHQpJiZ2b2lkIDA9PT1leHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LGV4cG9ydHMpLG1vZHVsZS5leHBvcnRzPWV4cG9ydHMuZGVmYXVsdCl9LDY1OTpmdW5jdGlvbihtb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7bGV0IHVzZXJSZXBvcnRIYW5kbGVyO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxleHBvcnRzLmRlZmF1bHQ9dm9pZCAwO2xldCBXRUJfVklUQUxTPVsiQ0xTIiwiRkNQIiwiRklEIiwiSU5QIiwiTENQIiwiVFRGQiJdO2xvY2F0aW9uLmhyZWY7bGV0IGlzUmVnaXN0ZXJlZD0hMTtmdW5jdGlvbiBvblJlcG9ydChtZXRyaWMpe3VzZXJSZXBvcnRIYW5kbGVyJiZ1c2VyUmVwb3J0SGFuZGxlcihtZXRyaWMpfXZhciBfZGVmYXVsdD1vblBlcmZFbnRyeT0+e2lmKHVzZXJSZXBvcnRIYW5kbGVyPW9uUGVyZkVudHJ5LCFpc1JlZ2lzdGVyZWQpZm9yKGxldCB3ZWJWaXRhbCBvZihpc1JlZ2lzdGVyZWQ9ITAsV0VCX1ZJVEFMUykpdHJ5e2xldCBtb2Q7bW9kfHwobW9kPV9fd2VicGFja19yZXF1aXJlX18oNzgwMTgpKSxtb2RbIm9uIi5jb25jYXQod2ViVml0YWwpXShvblJlcG9ydCl9Y2F0Y2goZXJyKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byB0cmFjayAiLmNvbmNhdCh3ZWJWaXRhbCwiIHdlYi12aXRhbCIpLGVycil9fTtleHBvcnRzLmRlZmF1bHQ9X2RlZmF1bHQsKCJmdW5jdGlvbiI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2YgZXhwb3J0cy5kZWZhdWx0JiZudWxsIT09ZXhwb3J0cy5kZWZhdWx0KSYmdm9pZCAwPT09ZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCxleHBvcnRzKSxtb2R1bGUuZXhwb3J0cz1leHBvcnRzLmRlZmF1bHQpfSwxNzM0NTpmdW5jdGlvbihtb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuUG9ydGFsPXZvaWQgMDt2YXIgX3JlYWN0PV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLF9yZWFjdERvbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDczOTM1KTtsZXQgUG9ydGFsPXBhcmFtPT57bGV0e2NoaWxkcmVuLHR5cGV9PXBhcmFtLFtwb3J0YWxOb2RlLHNldFBvcnRhbE5vZGVdPV9yZWFjdC51c2VTdGF0ZShudWxsKTtyZXR1cm4gX3JlYWN0LnVzZUVmZmVjdCgoKT0+e2xldCBlbGVtZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodHlwZSk7cmV0dXJuIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCksc2V0UG9ydGFsTm9kZShlbGVtZW50KSwoKT0+e2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudCl9fSxbdHlwZV0pLHBvcnRhbE5vZGU/X3JlYWN0RG9tLmNyZWF0ZVBvcnRhbChjaGlsZHJlbixwb3J0YWxOb2RlKTpudWxsfTtleHBvcnRzLlBvcnRhbD1Qb3J0YWwsKCJmdW5jdGlvbiI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2YgZXhwb3J0cy5kZWZhdWx0JiZudWxsIT09ZXhwb3J0cy5kZWZhdWx0KSYmdm9pZCAwPT09ZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCxleHBvcnRzKSxtb2R1bGUuZXhwb3J0cz1leHBvcnRzLmRlZmF1bHQpfSw4MjgxMzpmdW5jdGlvbihtb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMucmVtb3ZlQmFzZVBhdGg9ZnVuY3Rpb24ocGF0aCl7cmV0dXJuKHBhdGg9cGF0aC5zbGljZSgwKSkuc3RhcnRzV2l0aCgiLyIpfHwocGF0aD0iLyIuY29uY2F0KHBhdGgpKSxwYXRofSxfX3dlYnBhY2tfcmVxdWlyZV9fKDEwOTI4KSwoImZ1bmN0aW9uIj09dHlwZW9mIGV4cG9ydHMuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHQmJm51bGwhPT1leHBvcnRzLmRlZmF1bHQpJiZ2b2lkIDA9PT1leHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LGV4cG9ydHMpLG1vZHVsZS5leHBvcnRzPWV4cG9ydHMuZGVmYXVsdCl9LDY2ODc2OmZ1bmN0aW9uKG1vZHVsZSxleHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5yZW1vdmVMb2NhbGU9ZnVuY3Rpb24ocGF0aCxsb2NhbGUpe3tsZXR7cGF0aG5hbWV9PV9wYXJzZVBhdGgucGFyc2VQYXRoKHBhdGgpLHBhdGhMb3dlcj1wYXRobmFtZS50b0xvd2VyQ2FzZSgpLGxvY2FsZUxvd2VyPW51bGw9PWxvY2FsZT92b2lkIDA6bG9jYWxlLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGxvY2FsZSYmKHBhdGhMb3dlci5zdGFydHNXaXRoKCIvIi5jb25jYXQobG9jYWxlTG93ZXIsIi8iKSl8fHBhdGhMb3dlcj09PSIvIi5jb25jYXQobG9jYWxlTG93ZXIpKT8iIi5jb25jYXQocGF0aG5hbWUubGVuZ3RoPT09bG9jYWxlLmxlbmd0aCsxPyIvIjoiIikuY29uY2F0KHBhdGguc2xpY2UobG9jYWxlLmxlbmd0aCsxKSk6cGF0aH19O3ZhciBfcGFyc2VQYXRoPV9fd2VicGFja19yZXF1aXJlX18oMjY3MjcpOygiZnVuY3Rpb24iPT10eXBlb2YgZXhwb3J0cy5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMuZGVmYXVsdCYmbnVsbCE9PWV4cG9ydHMuZGVmYXVsdCkmJnZvaWQgMD09PWV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsZXhwb3J0cyksbW9kdWxlLmV4cG9ydHM9ZXhwb3J0cy5kZWZhdWx0KX0sNDQ2ODY6ZnVuY3Rpb24obW9kdWxlLGV4cG9ydHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5jYW5jZWxJZGxlQ2FsbGJhY2s9ZXhwb3J0cy5yZXF1ZXN0SWRsZUNhbGxiYWNrPXZvaWQgMDtsZXQgcmVxdWVzdElkbGVDYWxsYmFjaz0idW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGYucmVxdWVzdElkbGVDYWxsYmFjayYmc2VsZi5yZXF1ZXN0SWRsZUNhbGxiYWNrLmJpbmQod2luZG93KXx8ZnVuY3Rpb24oY2Ipe2xldCBzdGFydD1EYXRlLm5vdygpO3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Y2Ioe2RpZFRpbWVvdXQ6ITEsdGltZVJlbWFpbmluZzpmdW5jdGlvbigpe3JldHVybiBNYXRoLm1heCgwLDUwLShEYXRlLm5vdygpLXN0YXJ0KSl9fSl9LDEpfTtleHBvcnRzLnJlcXVlc3RJZGxlQ2FsbGJhY2s9cmVxdWVzdElkbGVDYWxsYmFjaztsZXQgY2FuY2VsSWRsZUNhbGxiYWNrPSJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZi5jYW5jZWxJZGxlQ2FsbGJhY2smJnNlbGYuY2FuY2VsSWRsZUNhbGxiYWNrLmJpbmQod2luZG93KXx8ZnVuY3Rpb24oaWQpe3JldHVybiBjbGVhclRpbWVvdXQoaWQpfTtleHBvcnRzLmNhbmNlbElkbGVDYWxsYmFjaz1jYW5jZWxJZGxlQ2FsbGJhY2ssKCJmdW5jdGlvbiI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2YgZXhwb3J0cy5kZWZhdWx0JiZudWxsIT09ZXhwb3J0cy5kZWZhdWx0KSYmdm9pZCAwPT09ZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCxleHBvcnRzKSxtb2R1bGUuZXhwb3J0cz1leHBvcnRzLmRlZmF1bHQpfSwxODQ4MzpmdW5jdGlvbihtb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuZGVmYXVsdD1leHBvcnRzLlJvdXRlQW5ub3VuY2VyPXZvaWQgMDt2YXIgX3JlYWN0PSgwLF9fd2VicGFja19yZXF1aXJlX18oOTI2NDgpLlopKF9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpKSxfcm91dGVyPV9fd2VicGFja19yZXF1aXJlX18oODA4ODApO2xldCBuZXh0anNSb3V0ZUFubm91bmNlclN0eWxlcz17Ym9yZGVyOjAsY2xpcDoicmVjdCgwIDAgMCAwKSIsaGVpZ2h0OiIxcHgiLG1hcmdpbjoiLTFweCIsb3ZlcmZsb3c6ImhpZGRlbiIscGFkZGluZzowLHBvc2l0aW9uOiJhYnNvbHV0ZSIsd2lkdGg6IjFweCIsd2hpdGVTcGFjZToibm93cmFwIix3b3JkV3JhcDoibm9ybWFsIn0sUm91dGVBbm5vdW5jZXI9KCk9PntsZXR7YXNQYXRofT1fcm91dGVyLnVzZVJvdXRlcigpLFtyb3V0ZUFubm91bmNlbWVudCxzZXRSb3V0ZUFubm91bmNlbWVudF09X3JlYWN0LmRlZmF1bHQudXNlU3RhdGUoIiIpLHByZXZpb3VzbHlMb2FkZWRQYXRoPV9yZWFjdC5kZWZhdWx0LnVzZVJlZihhc1BhdGgpO3JldHVybiBfcmVhY3QuZGVmYXVsdC51c2VFZmZlY3QoKCk9PntpZihwcmV2aW91c2x5TG9hZGVkUGF0aC5jdXJyZW50IT09YXNQYXRoKXtpZihwcmV2aW91c2x5TG9hZGVkUGF0aC5jdXJyZW50PWFzUGF0aCxkb2N1bWVudC50aXRsZSlzZXRSb3V0ZUFubm91bmNlbWVudChkb2N1bWVudC50aXRsZSk7ZWxzZXt2YXIgcmVmO2xldCBwYWdlSGVhZGVyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImgxIiksY29udGVudD1udWxsIT0ocmVmPW51bGw9PXBhZ2VIZWFkZXI/dm9pZCAwOnBhZ2VIZWFkZXIuaW5uZXJUZXh0KT9yZWY6bnVsbD09cGFnZUhlYWRlcj92b2lkIDA6cGFnZUhlYWRlci50ZXh0Q29udGVudDtzZXRSb3V0ZUFubm91bmNlbWVudChjb250ZW50fHxhc1BhdGgpfX19LFthc1BhdGhdKSxfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJwIix7ImFyaWEtbGl2ZSI6ImFzc2VydGl2ZSIsaWQ6Il9fbmV4dC1yb3V0ZS1hbm5vdW5jZXJfXyIscm9sZToiYWxlcnQiLHN0eWxlOm5leHRqc1JvdXRlQW5ub3VuY2VyU3R5bGVzfSxyb3V0ZUFubm91bmNlbWVudCl9O2V4cG9ydHMuUm91dGVBbm5vdW5jZXI9Um91dGVBbm5vdW5jZXIsZXhwb3J0cy5kZWZhdWx0PVJvdXRlQW5ub3VuY2VyLCgiZnVuY3Rpb24iPT10eXBlb2YgZXhwb3J0cy5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMuZGVmYXVsdCYmbnVsbCE9PWV4cG9ydHMuZGVmYXVsdCkmJnZvaWQgMD09PWV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsZXhwb3J0cyksbW9kdWxlLmV4cG9ydHM9ZXhwb3J0cy5kZWZhdWx0KX0sODI0OTc6ZnVuY3Rpb24obW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxleHBvcnRzLm1hcmtBc3NldEVycm9yPW1hcmtBc3NldEVycm9yLGV4cG9ydHMuaXNBc3NldEVycm9yPWZ1bmN0aW9uKGVycil7cmV0dXJuIGVyciYmQVNTRVRfTE9BRF9FUlJPUiBpbiBlcnJ9LGV4cG9ydHMuZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdD1nZXRDbGllbnRCdWlsZE1hbmlmZXN0LGV4cG9ydHMuY3JlYXRlUm91dGVMb2FkZXI9ZnVuY3Rpb24oYXNzZXRQcmVmaXgpe2xldCBlbnRyeXBvaW50cz1uZXcgTWFwLGxvYWRlZFNjcmlwdHM9bmV3IE1hcCxzdHlsZVNoZWV0cz1uZXcgTWFwLHJvdXRlcz1uZXcgTWFwO2Z1bmN0aW9uIG1heWJlRXhlY3V0ZVNjcmlwdChzcmMpe3t2YXIgc2NyaXB0O2xldCBwcm9tPWxvYWRlZFNjcmlwdHMuZ2V0KHNyYy50b1N0cmluZygpKTtyZXR1cm4gcHJvbXx8KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmNePSInLmNvbmNhdChzcmMsJyJdJykpP1Byb21pc2UucmVzb2x2ZSgpOihsb2FkZWRTY3JpcHRzLnNldChzcmMudG9TdHJpbmcoKSxwcm9tPW5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCk9Pnsoc2NyaXB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpKS5vbmxvYWQ9cmVzb2x2ZSxzY3JpcHQub25lcnJvcj0oKT0+cmVqZWN0KG1hcmtBc3NldEVycm9yKEVycm9yKCJGYWlsZWQgdG8gbG9hZCBzY3JpcHQ6ICIuY29uY2F0KHNyYykpKSksc2NyaXB0LmNyb3NzT3JpZ2luPXZvaWQgMCxzY3JpcHQuc3JjPXNyYyxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCl9KSkscHJvbSkpfX1mdW5jdGlvbiBmZXRjaFN0eWxlU2hlZXQoaHJlZil7bGV0IHByb209c3R5bGVTaGVldHMuZ2V0KGhyZWYpO3JldHVybiBwcm9tfHxzdHlsZVNoZWV0cy5zZXQoaHJlZixwcm9tPWZldGNoKGhyZWYpLnRoZW4ocmVzPT57aWYoIXJlcy5vayl0aHJvdyBFcnJvcigiRmFpbGVkIHRvIGxvYWQgc3R5bGVzaGVldDogIi5jb25jYXQoaHJlZikpO3JldHVybiByZXMudGV4dCgpLnRoZW4odGV4dD0+KHtocmVmOmhyZWYsY29udGVudDp0ZXh0fSkpfSkuY2F0Y2goZXJyPT57dGhyb3cgbWFya0Fzc2V0RXJyb3IoZXJyKX0pKSxwcm9tfXJldHVybnt3aGVuRW50cnlwb2ludDpyb3V0ZT0+d2l0aEZ1dHVyZShyb3V0ZSxlbnRyeXBvaW50cyksb25FbnRyeXBvaW50KHJvdXRlLGV4ZWN1dGUpeyhleGVjdXRlP1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmV4ZWN1dGUoKSkudGhlbihleHBvcnRzMT0+KHtjb21wb25lbnQ6ZXhwb3J0czEmJmV4cG9ydHMxLmRlZmF1bHR8fGV4cG9ydHMxLGV4cG9ydHM6ZXhwb3J0czF9KSxlcnI9Pih7ZXJyb3I6ZXJyfSkpOlByb21pc2UucmVzb2x2ZSh2b2lkIDApKS50aGVuKGlucHV0PT57bGV0IG9sZD1lbnRyeXBvaW50cy5nZXQocm91dGUpO29sZCYmInJlc29sdmUiaW4gb2xkP2lucHV0JiYoZW50cnlwb2ludHMuc2V0KHJvdXRlLGlucHV0KSxvbGQucmVzb2x2ZShpbnB1dCkpOihpbnB1dD9lbnRyeXBvaW50cy5zZXQocm91dGUsaW5wdXQpOmVudHJ5cG9pbnRzLmRlbGV0ZShyb3V0ZSkscm91dGVzLmRlbGV0ZShyb3V0ZSkpfSl9LGxvYWRSb3V0ZShyb3V0ZSxwcmVmZXRjaCl7cmV0dXJuIHdpdGhGdXR1cmUocm91dGUscm91dGVzLCgpPT57bGV0IGRldkJ1aWxkUHJvbWlzZVJlc29sdmU7cmV0dXJuIHJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQoZ2V0RmlsZXNGb3JSb3V0ZShhc3NldFByZWZpeCxyb3V0ZSkudGhlbihwYXJhbT0+e2xldHtzY3JpcHRzLGNzc309cGFyYW07cmV0dXJuIFByb21pc2UuYWxsKFtlbnRyeXBvaW50cy5oYXMocm91dGUpP1tdOlByb21pc2UuYWxsKHNjcmlwdHMubWFwKG1heWJlRXhlY3V0ZVNjcmlwdCkpLFByb21pc2UuYWxsKGNzcy5tYXAoZmV0Y2hTdHlsZVNoZWV0KSldKX0pLnRoZW4ocmVzPT50aGlzLndoZW5FbnRyeXBvaW50KHJvdXRlKS50aGVuKGVudHJ5cG9pbnQ9Pih7ZW50cnlwb2ludCxzdHlsZXM6cmVzWzFdfSkpKSwzODAwLG1hcmtBc3NldEVycm9yKEVycm9yKCJSb3V0ZSBkaWQgbm90IGNvbXBsZXRlIGxvYWRpbmc6ICIuY29uY2F0KHJvdXRlKSkpKS50aGVuKHBhcmFtPT57bGV0e2VudHJ5cG9pbnQsc3R5bGVzfT1wYXJhbSxyZXM9T2JqZWN0LmFzc2lnbih7c3R5bGVzOnN0eWxlc30sZW50cnlwb2ludCk7cmV0dXJuImVycm9yImluIGVudHJ5cG9pbnQ/ZW50cnlwb2ludDpyZXN9KS5jYXRjaChlcnI9PntpZihwcmVmZXRjaCl0aHJvdyBlcnI7cmV0dXJue2Vycm9yOmVycn19KS5maW5hbGx5KCgpPT5udWxsPT1kZXZCdWlsZFByb21pc2VSZXNvbHZlP3ZvaWQgMDpkZXZCdWlsZFByb21pc2VSZXNvbHZlKCkpfSl9LHByZWZldGNoKHJvdXRlKXtsZXQgY247cmV0dXJuKGNuPW5hdmlnYXRvci5jb25uZWN0aW9uKSYmKGNuLnNhdmVEYXRhfHwvMmcvLnRlc3QoY24uZWZmZWN0aXZlVHlwZSkpP1Byb21pc2UucmVzb2x2ZSgpOmdldEZpbGVzRm9yUm91dGUoYXNzZXRQcmVmaXgscm91dGUpLnRoZW4ob3V0cHV0PT5Qcm9taXNlLmFsbChjYW5QcmVmZXRjaD9vdXRwdXQuc2NyaXB0cy5tYXAoc2NyaXB0PT57dmFyIGhyZWYsYXMsbGluaztyZXR1cm4gaHJlZj1zY3JpcHQudG9TdHJpbmcoKSxhcz0ic2NyaXB0IixuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpPT57bGV0IHNlbGVjdG9yPSdcbiAgICAgIGxpbmtbcmVsPSJwcmVmZXRjaCJdW2hyZWZePSInLmNvbmNhdChocmVmLCciXSxcbiAgICAgIGxpbmtbcmVsPSJwcmVsb2FkIl1baHJlZl49IicpLmNvbmNhdChocmVmLCciXSxcbiAgICAgIHNjcmlwdFtzcmNePSInKS5jb25jYXQoaHJlZiwnIl0nKTtpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKSlyZXR1cm4gcmVzb2x2ZSgpO2xpbms9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpLGFzJiYobGluay5hcz1hcyksbGluay5yZWw9InByZWZldGNoIixsaW5rLmNyb3NzT3JpZ2luPXZvaWQgMCxsaW5rLm9ubG9hZD1yZXNvbHZlLGxpbmsub25lcnJvcj0oKT0+cmVqZWN0KG1hcmtBc3NldEVycm9yKEVycm9yKCJGYWlsZWQgdG8gcHJlZmV0Y2g6ICIuY29uY2F0KGhyZWYpKSkpLGxpbmsuaHJlZj1ocmVmLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobGluayl9KX0pOltdKSkudGhlbigoKT0+e19yZXF1ZXN0SWRsZUNhbGxiYWNrLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PnRoaXMubG9hZFJvdXRlKHJvdXRlLCEwKS5jYXRjaCgoKT0+e30pKX0pLmNhdGNoKCgpPT57fSl9fX0sKDAsX193ZWJwYWNrX3JlcXVpcmVfXyg5MjY0OCkuWikoX193ZWJwYWNrX3JlcXVpcmVfXygyNzkyOSkpO3ZhciBfdHJ1c3RlZFR5cGVzPV9fd2VicGFja19yZXF1aXJlX18oNjU0MDcpLF9yZXF1ZXN0SWRsZUNhbGxiYWNrPV9fd2VicGFja19yZXF1aXJlX18oNDQ2ODYpO2Z1bmN0aW9uIHdpdGhGdXR1cmUoa2V5LG1hcCxnZW5lcmF0b3Ipe2xldCByZXNvbHZlcixlbnRyeT1tYXAuZ2V0KGtleSk7aWYoZW50cnkpcmV0dXJuImZ1dHVyZSJpbiBlbnRyeT9lbnRyeS5mdXR1cmU6UHJvbWlzZS5yZXNvbHZlKGVudHJ5KTtsZXQgcHJvbT1uZXcgUHJvbWlzZShyZXNvbHZlPT57cmVzb2x2ZXI9cmVzb2x2ZX0pO3JldHVybiBtYXAuc2V0KGtleSxlbnRyeT17cmVzb2x2ZTpyZXNvbHZlcixmdXR1cmU6cHJvbX0pLGdlbmVyYXRvcj9nZW5lcmF0b3IoKS50aGVuKHZhbHVlPT4ocmVzb2x2ZXIodmFsdWUpLHZhbHVlKSkuY2F0Y2goZXJyPT57dGhyb3cgbWFwLmRlbGV0ZShrZXkpLGVycn0pOnByb219bGV0IEFTU0VUX0xPQURfRVJST1I9U3ltYm9sKCJBU1NFVF9MT0FEX0VSUk9SIik7ZnVuY3Rpb24gbWFya0Fzc2V0RXJyb3IoZXJyKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGVycixBU1NFVF9MT0FEX0VSUk9SLHt9KX1sZXQgY2FuUHJlZmV0Y2g9ZnVuY3Rpb24obGluayl7dHJ5e3JldHVybiBsaW5rPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKSwhIXdpbmRvdy5NU0lucHV0TWV0aG9kQ29udGV4dCYmISFkb2N1bWVudC5kb2N1bWVudE1vZGV8fGxpbmsucmVsTGlzdC5zdXBwb3J0cygicHJlZmV0Y2giKX1jYXRjaChlKXtyZXR1cm4hMX19KCk7ZnVuY3Rpb24gcmVzb2x2ZVByb21pc2VXaXRoVGltZW91dChwLG1zLGVycil7cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCk9PntsZXQgY2FuY2VsbGVkPSExO3AudGhlbihyPT57Y2FuY2VsbGVkPSEwLHJlc29sdmUocil9KS5jYXRjaChyZWplY3QpLF9yZXF1ZXN0SWRsZUNhbGxiYWNrLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PnNldFRpbWVvdXQoKCk9PntjYW5jZWxsZWR8fHJlamVjdChlcnIpfSxtcykpfSl9ZnVuY3Rpb24gZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCgpe2lmKHNlbGYuX19CVUlMRF9NQU5JRkVTVClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHNlbGYuX19CVUlMRF9NQU5JRkVTVCk7bGV0IG9uQnVpbGRNYW5pZmVzdD1uZXcgUHJvbWlzZShyZXNvbHZlPT57bGV0IGNiPXNlbGYuX19CVUlMRF9NQU5JRkVTVF9DQjtzZWxmLl9fQlVJTERfTUFOSUZFU1RfQ0I9KCk9PntyZXNvbHZlKHNlbGYuX19CVUlMRF9NQU5JRkVTVCksY2ImJmNiKCl9fSk7cmV0dXJuIHJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQob25CdWlsZE1hbmlmZXN0LDM4MDAsbWFya0Fzc2V0RXJyb3IoRXJyb3IoIkZhaWxlZCB0byBsb2FkIGNsaWVudCBidWlsZCBtYW5pZmVzdCIpKSl9ZnVuY3Rpb24gZ2V0RmlsZXNGb3JSb3V0ZShhc3NldFByZWZpeCxyb3V0ZSl7cmV0dXJuIGdldENsaWVudEJ1aWxkTWFuaWZlc3QoKS50aGVuKG1hbmlmZXN0PT57aWYoIShyb3V0ZSBpbiBtYW5pZmVzdCkpdGhyb3cgbWFya0Fzc2V0RXJyb3IoRXJyb3IoIkZhaWxlZCB0byBsb29rdXAgcm91dGU6ICIuY29uY2F0KHJvdXRlKSkpO2xldCBhbGxGaWxlcz1tYW5pZmVzdFtyb3V0ZV0ubWFwKGVudHJ5PT5hc3NldFByZWZpeCsiL19uZXh0LyIrZW5jb2RlVVJJKGVudHJ5KSk7cmV0dXJue3NjcmlwdHM6YWxsRmlsZXMuZmlsdGVyKHY9PnYuZW5kc1dpdGgoIi5qcyIpKS5tYXAodj0+X3RydXN0ZWRUeXBlcy5fX3Vuc2FmZUNyZWF0ZVRydXN0ZWRTY3JpcHRVUkwodikpLGNzczphbGxGaWxlcy5maWx0ZXIodj0+di5lbmRzV2l0aCgiLmNzcyIpKX19KX0oImZ1bmN0aW9uIj09dHlwZW9mIGV4cG9ydHMuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHQmJm51bGwhPT1leHBvcnRzLmRlZmF1bHQpJiZ2b2lkIDA9PT1leHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LGV4cG9ydHMpLG1vZHVsZS5leHBvcnRzPWV4cG9ydHMuZGVmYXVsdCl9LDgwODgwOmZ1bmN0aW9uKG1vZHVsZSxleHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIlJvdXRlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIF9yb3V0ZXIuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywid2l0aFJvdXRlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIF93aXRoUm91dGVyLmRlZmF1bHR9fSksZXhwb3J0cy51c2VSb3V0ZXI9ZnVuY3Rpb24oKXtsZXQgcm91dGVyPV9yZWFjdC5kZWZhdWx0LnVzZUNvbnRleHQoX3JvdXRlckNvbnRleHQuUm91dGVyQ29udGV4dCk7aWYoIXJvdXRlcil0aHJvdyBFcnJvcigiRXJyb3I6IE5leHRSb3V0ZXIgd2FzIG5vdCBtb3VudGVkLiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LXJvdXRlci1ub3QtbW91bnRlZCIpO3JldHVybiByb3V0ZXJ9LGV4cG9ydHMuY3JlYXRlUm91dGVyPWZ1bmN0aW9uKCl7Zm9yKHZhciBfbGVuPWFyZ3VtZW50cy5sZW5ndGgsYXJncz1BcnJheShfbGVuKSxfa2V5PTA7X2tleTxfbGVuO19rZXkrKylhcmdzW19rZXldPWFyZ3VtZW50c1tfa2V5XTtyZXR1cm4gc2luZ2xldG9uUm91dGVyLnJvdXRlcj1uZXcgX3JvdXRlci5kZWZhdWx0KC4uLmFyZ3MpLHNpbmdsZXRvblJvdXRlci5yZWFkeUNhbGxiYWNrcy5mb3JFYWNoKGNiPT5jYigpKSxzaW5nbGV0b25Sb3V0ZXIucmVhZHlDYWxsYmFja3M9W10sc2luZ2xldG9uUm91dGVyLnJvdXRlcn0sZXhwb3J0cy5tYWtlUHVibGljUm91dGVySW5zdGFuY2U9ZnVuY3Rpb24ocm91dGVyKXtsZXQgaW5zdGFuY2U9e307Zm9yKGxldCBwcm9wZXJ0eSBvZiB1cmxQcm9wZXJ0eUZpZWxkcyl7aWYoIm9iamVjdCI9PXR5cGVvZiByb3V0ZXJbcHJvcGVydHldKXtpbnN0YW5jZVtwcm9wZXJ0eV09T2JqZWN0LmFzc2lnbihBcnJheS5pc0FycmF5KHJvdXRlcltwcm9wZXJ0eV0pP1tdOnt9LHJvdXRlcltwcm9wZXJ0eV0pO2NvbnRpbnVlfWluc3RhbmNlW3Byb3BlcnR5XT1yb3V0ZXJbcHJvcGVydHldfXJldHVybiBpbnN0YW5jZS5ldmVudHM9X3JvdXRlci5kZWZhdWx0LmV2ZW50cyxjb3JlTWV0aG9kRmllbGRzLmZvckVhY2goZmllbGQ9PntpbnN0YW5jZVtmaWVsZF09ZnVuY3Rpb24oKXtmb3IodmFyIF9sZW49YXJndW1lbnRzLmxlbmd0aCxhcmdzPUFycmF5KF9sZW4pLF9rZXk9MDtfa2V5PF9sZW47X2tleSsrKWFyZ3NbX2tleV09YXJndW1lbnRzW19rZXldO3JldHVybiByb3V0ZXJbZmllbGRdKC4uLmFyZ3MpfX0pLGluc3RhbmNlfSxleHBvcnRzLmRlZmF1bHQ9dm9pZCAwO3ZhciBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg5MjY0OCkuWixfcmVhY3Q9X2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KF9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpKSxfcm91dGVyPV9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChfX3dlYnBhY2tfcmVxdWlyZV9fKDQxMDAzKSksX3JvdXRlckNvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg3MjY5MiksX2lzRXJyb3I9X2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KF9fd2VicGFja19yZXF1aXJlX18oODA2NzYpKSxfd2l0aFJvdXRlcj1faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXyg0OTk3NykpO2xldCBzaW5nbGV0b25Sb3V0ZXI9e3JvdXRlcjpudWxsLHJlYWR5Q2FsbGJhY2tzOltdLHJlYWR5KGNiKXtpZih0aGlzLnJvdXRlcilyZXR1cm4gY2IoKTt0aGlzLnJlYWR5Q2FsbGJhY2tzLnB1c2goY2IpfX0sdXJsUHJvcGVydHlGaWVsZHM9WyJwYXRobmFtZSIsInJvdXRlIiwicXVlcnkiLCJhc1BhdGgiLCJjb21wb25lbnRzIiwiaXNGYWxsYmFjayIsImJhc2VQYXRoIiwibG9jYWxlIiwibG9jYWxlcyIsImRlZmF1bHRMb2NhbGUiLCJpc1JlYWR5IiwiaXNQcmV2aWV3IiwiaXNMb2NhbGVEb21haW4iLCJkb21haW5Mb2NhbGVzIl0sY29yZU1ldGhvZEZpZWxkcz1bInB1c2giLCJyZXBsYWNlIiwicmVsb2FkIiwiYmFjayIsInByZWZldGNoIiwiYmVmb3JlUG9wU3RhdGUiXTtmdW5jdGlvbiBnZXRSb3V0ZXIoKXtpZighc2luZ2xldG9uUm91dGVyLnJvdXRlcil0aHJvdyBFcnJvcignTm8gcm91dGVyIGluc3RhbmNlIGZvdW5kLlxuWW91IHNob3VsZCBvbmx5IHVzZSAibmV4dC9yb3V0ZXIiIG9uIHRoZSBjbGllbnQgc2lkZSBvZiB5b3VyIGFwcC5cbicpO3JldHVybiBzaW5nbGV0b25Sb3V0ZXIucm91dGVyfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShzaW5nbGV0b25Sb3V0ZXIsImV2ZW50cyIse2dldDooKT0+X3JvdXRlci5kZWZhdWx0LmV2ZW50c30pLHVybFByb3BlcnR5RmllbGRzLmZvckVhY2goZmllbGQ9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoc2luZ2xldG9uUm91dGVyLGZpZWxkLHtnZXQoKXtsZXQgcm91dGVyPWdldFJvdXRlcigpO3JldHVybiByb3V0ZXJbZmllbGRdfX0pfSksY29yZU1ldGhvZEZpZWxkcy5mb3JFYWNoKGZpZWxkPT57c2luZ2xldG9uUm91dGVyW2ZpZWxkXT1mdW5jdGlvbigpe2Zvcih2YXIgX2xlbj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbiksX2tleT0wO19rZXk8X2xlbjtfa2V5KyspYXJnc1tfa2V5XT1hcmd1bWVudHNbX2tleV07bGV0IHJvdXRlcj1nZXRSb3V0ZXIoKTtyZXR1cm4gcm91dGVyW2ZpZWxkXSguLi5hcmdzKX19KSxbInJvdXRlQ2hhbmdlU3RhcnQiLCJiZWZvcmVIaXN0b3J5Q2hhbmdlIiwicm91dGVDaGFuZ2VDb21wbGV0ZSIsInJvdXRlQ2hhbmdlRXJyb3IiLCJoYXNoQ2hhbmdlU3RhcnQiLCJoYXNoQ2hhbmdlQ29tcGxldGUiXS5mb3JFYWNoKGV2ZW50PT57c2luZ2xldG9uUm91dGVyLnJlYWR5KCgpPT57X3JvdXRlci5kZWZhdWx0LmV2ZW50cy5vbihldmVudCxmdW5jdGlvbigpe2Zvcih2YXIgX2xlbj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbiksX2tleT0wO19rZXk8X2xlbjtfa2V5KyspYXJnc1tfa2V5XT1hcmd1bWVudHNbX2tleV07bGV0IGV2ZW50RmllbGQ9Im9uIi5jb25jYXQoZXZlbnQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkpLmNvbmNhdChldmVudC5zdWJzdHJpbmcoMSkpO2lmKHNpbmdsZXRvblJvdXRlcltldmVudEZpZWxkXSl0cnl7c2luZ2xldG9uUm91dGVyW2V2ZW50RmllbGRdKC4uLmFyZ3MpfWNhdGNoKGVycil7Y29uc29sZS5lcnJvcigiRXJyb3Igd2hlbiBydW5uaW5nIHRoZSBSb3V0ZXIgZXZlbnQ6ICIuY29uY2F0KGV2ZW50RmllbGQpKSxjb25zb2xlLmVycm9yKF9pc0Vycm9yLmRlZmF1bHQoZXJyKT8iIi5jb25jYXQoZXJyLm1lc3NhZ2UsIlxuIikuY29uY2F0KGVyci5zdGFjayk6ZXJyKyIiKX19KX0pfSksZXhwb3J0cy5kZWZhdWx0PXNpbmdsZXRvblJvdXRlciwoImZ1bmN0aW9uIj09dHlwZW9mIGV4cG9ydHMuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHQmJm51bGwhPT1leHBvcnRzLmRlZmF1bHQpJiZ2b2lkIDA9PT1leHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LGV4cG9ydHMpLG1vZHVsZS5leHBvcnRzPWV4cG9ydHMuZGVmYXVsdCl9LDYzNTczOmZ1bmN0aW9uKG1vZHVsZSxleHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5oYW5kbGVDbGllbnRTY3JpcHRMb2FkPWhhbmRsZUNsaWVudFNjcmlwdExvYWQsZXhwb3J0cy5pbml0U2NyaXB0TG9hZGVyPWZ1bmN0aW9uKHNjcmlwdExvYWRlckl0ZW1zKXtzY3JpcHRMb2FkZXJJdGVtcy5mb3JFYWNoKGhhbmRsZUNsaWVudFNjcmlwdExvYWQpLGZ1bmN0aW9uKCl7bGV0IHNjcmlwdHM9Wy4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLW5zY3JpcHQ9ImJlZm9yZUludGVyYWN0aXZlIl0nKSwuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1uc2NyaXB0PSJiZWZvcmVQYWdlUmVuZGVyIl0nKV07c2NyaXB0cy5mb3JFYWNoKHNjcmlwdD0+e2xldCBjYWNoZUtleT1zY3JpcHQuaWR8fHNjcmlwdC5nZXRBdHRyaWJ1dGUoInNyYyIpO0xvYWRDYWNoZS5hZGQoY2FjaGVLZXkpfSl9KCl9LGV4cG9ydHMuZGVmYXVsdD12b2lkIDA7dmFyIF9leHRlbmRzPV9fd2VicGFja19yZXF1aXJlX18oNjQ5NSkuWixfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg5MjY0OCkuWixfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkPV9fd2VicGFja19yZXF1aXJlX18oOTE1OTgpLlosX29iamVjdF93aXRob3V0X3Byb3BlcnRpZXNfbG9vc2U9X193ZWJwYWNrX3JlcXVpcmVfXygxNzI3MykuWixfcmVhY3REb209X2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KF9fd2VicGFja19yZXF1aXJlX18oNzM5MzUpKSxfcmVhY3Q9X2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChfX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSksX2hlYWRNYW5hZ2VyQ29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ2NjQpLF9oZWFkTWFuYWdlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDMxODMxKSxfcmVxdWVzdElkbGVDYWxsYmFjaz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ0Njg2KTtsZXQgU2NyaXB0Q2FjaGU9bmV3IE1hcCxMb2FkQ2FjaGU9bmV3IFNldCxpZ25vcmVQcm9wcz1bIm9uTG9hZCIsIm9uUmVhZHkiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsImNoaWxkcmVuIiwib25FcnJvciIsInN0cmF0ZWd5Il0sbG9hZFNjcmlwdD1wcm9wcz0+e2xldHtzcmMsaWQsb25Mb2FkPSgpPT57fSxvblJlYWR5PW51bGwsZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwsY2hpbGRyZW49IiIsc3RyYXRlZ3k9ImFmdGVySW50ZXJhY3RpdmUiLG9uRXJyb3J9PXByb3BzLGNhY2hlS2V5PWlkfHxzcmM7aWYoY2FjaGVLZXkmJkxvYWRDYWNoZS5oYXMoY2FjaGVLZXkpKXJldHVybjtpZihTY3JpcHRDYWNoZS5oYXMoc3JjKSl7TG9hZENhY2hlLmFkZChjYWNoZUtleSksU2NyaXB0Q2FjaGUuZ2V0KHNyYykudGhlbihvbkxvYWQsb25FcnJvcik7cmV0dXJufWxldCBhZnRlckxvYWQ9KCk9PntvblJlYWR5JiZvblJlYWR5KCksTG9hZENhY2hlLmFkZChjYWNoZUtleSl9LGVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLGxvYWRQcm9taXNlPW5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCk9PntlbC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbihlKXtyZXNvbHZlKCksb25Mb2FkJiZvbkxvYWQuY2FsbCh0aGlzLGUpLGFmdGVyTG9hZCgpfSksZWwuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGZ1bmN0aW9uKGUpe3JlamVjdChlKX0pfSkuY2F0Y2goZnVuY3Rpb24oZSl7b25FcnJvciYmb25FcnJvcihlKX0pO2ZvcihsZXRbayx2YWx1ZV1vZihkYW5nZXJvdXNseVNldElubmVySFRNTD8oZWwuaW5uZXJIVE1MPWRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbHx8IiIsYWZ0ZXJMb2FkKCkpOmNoaWxkcmVuPyhlbC50ZXh0Q29udGVudD0ic3RyaW5nIj09dHlwZW9mIGNoaWxkcmVuP2NoaWxkcmVuOkFycmF5LmlzQXJyYXkoY2hpbGRyZW4pP2NoaWxkcmVuLmpvaW4oIiIpOiIiLGFmdGVyTG9hZCgpKTpzcmMmJihlbC5zcmM9c3JjLFNjcmlwdENhY2hlLnNldChzcmMsbG9hZFByb21pc2UpKSxPYmplY3QuZW50cmllcyhwcm9wcykpKXtpZih2b2lkIDA9PT12YWx1ZXx8aWdub3JlUHJvcHMuaW5jbHVkZXMoaykpY29udGludWU7bGV0IGF0dHI9X2hlYWRNYW5hZ2VyLkRPTUF0dHJpYnV0ZU5hbWVzW2tdfHxrLnRvTG93ZXJDYXNlKCk7ZWwuc2V0QXR0cmlidXRlKGF0dHIsdmFsdWUpfSJ3b3JrZXIiPT09c3RyYXRlZ3kmJmVsLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvcGFydHl0b3duIiksZWwuc2V0QXR0cmlidXRlKCJkYXRhLW5zY3JpcHQiLHN0cmF0ZWd5KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsKX07ZnVuY3Rpb24gaGFuZGxlQ2xpZW50U2NyaXB0TG9hZChwcm9wcyl7bGV0e3N0cmF0ZWd5PSJhZnRlckludGVyYWN0aXZlIn09cHJvcHM7ImxhenlPbmxvYWQiPT09c3RyYXRlZ3k/d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCgpPT57X3JlcXVlc3RJZGxlQ2FsbGJhY2sucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+bG9hZFNjcmlwdChwcm9wcykpfSk6bG9hZFNjcmlwdChwcm9wcyl9ZnVuY3Rpb24gU2NyaXB0KHByb3BzKXtsZXR7aWQsc3JjPSIiLG9uTG9hZD0oKT0+e30sb25SZWFkeT1udWxsLHN0cmF0ZWd5PSJhZnRlckludGVyYWN0aXZlIixvbkVycm9yfT1wcm9wcyxyZXN0UHJvcHM9X29iamVjdF93aXRob3V0X3Byb3BlcnRpZXNfbG9vc2UocHJvcHMsWyJpZCIsInNyYyIsIm9uTG9hZCIsIm9uUmVhZHkiLCJzdHJhdGVneSIsIm9uRXJyb3IiXSkse3VwZGF0ZVNjcmlwdHMsc2NyaXB0cyxnZXRJc1NzcixhcHBEaXIsbm9uY2V9PV9yZWFjdC51c2VDb250ZXh0KF9oZWFkTWFuYWdlckNvbnRleHQuSGVhZE1hbmFnZXJDb250ZXh0KSxoYXNPblJlYWR5RWZmZWN0Q2FsbGVkPV9yZWFjdC51c2VSZWYoITEpO19yZWFjdC51c2VFZmZlY3QoKCk9PntsZXQgY2FjaGVLZXk9aWR8fHNyYztoYXNPblJlYWR5RWZmZWN0Q2FsbGVkLmN1cnJlbnR8fChvblJlYWR5JiZjYWNoZUtleSYmTG9hZENhY2hlLmhhcyhjYWNoZUtleSkmJm9uUmVhZHkoKSxoYXNPblJlYWR5RWZmZWN0Q2FsbGVkLmN1cnJlbnQ9ITApfSxbb25SZWFkeSxpZCxzcmNdKTtsZXQgaGFzTG9hZFNjcmlwdEVmZmVjdENhbGxlZD1fcmVhY3QudXNlUmVmKCExKTtpZihfcmVhY3QudXNlRWZmZWN0KCgpPT57IWhhc0xvYWRTY3JpcHRFZmZlY3RDYWxsZWQuY3VycmVudCYmKCJhZnRlckludGVyYWN0aXZlIj09PXN0cmF0ZWd5P2xvYWRTY3JpcHQocHJvcHMpOiJsYXp5T25sb2FkIj09PXN0cmF0ZWd5JiYoImNvbXBsZXRlIj09PWRvY3VtZW50LnJlYWR5U3RhdGU/X3JlcXVlc3RJZGxlQ2FsbGJhY2sucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+bG9hZFNjcmlwdChwcm9wcykpOndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoKT0+e19yZXF1ZXN0SWRsZUNhbGxiYWNrLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PmxvYWRTY3JpcHQocHJvcHMpKX0pKSxoYXNMb2FkU2NyaXB0RWZmZWN0Q2FsbGVkLmN1cnJlbnQ9ITApfSxbcHJvcHMsc3RyYXRlZ3ldKSwoImJlZm9yZUludGVyYWN0aXZlIj09PXN0cmF0ZWd5fHwid29ya2VyIj09PXN0cmF0ZWd5KSYmKHVwZGF0ZVNjcmlwdHM/KHNjcmlwdHNbc3RyYXRlZ3ldPShzY3JpcHRzW3N0cmF0ZWd5XXx8W10pLmNvbmNhdChbX2V4dGVuZHMoe2lkLHNyYyxvbkxvYWQsb25SZWFkeSxvbkVycm9yfSxyZXN0UHJvcHMpXSksdXBkYXRlU2NyaXB0cyhzY3JpcHRzKSk6Z2V0SXNTc3ImJmdldElzU3NyKCk/TG9hZENhY2hlLmFkZChpZHx8c3JjKTpnZXRJc1NzciYmIWdldElzU3NyKCkmJmxvYWRTY3JpcHQocHJvcHMpKSxhcHBEaXIpe2lmKCJiZWZvcmVJbnRlcmFjdGl2ZSI9PT1zdHJhdGVneSlyZXR1cm4gc3JjPyhfcmVhY3REb20uZGVmYXVsdC5wcmVsb2FkKHNyYyxyZXN0UHJvcHMuaW50ZWdyaXR5P3thczoic2NyaXB0IixpbnRlZ3JpdHk6cmVzdFByb3BzLmludGVncml0eX06e2FzOiJzY3JpcHQifSksX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iix7bm9uY2U6bm9uY2UsZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDoiKHNlbGYuX19uZXh0X3M9c2VsZi5fX25leHRfc3x8W10pLnB1c2goIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkoW3NyY10pLCIpIil9fSkpOihyZXN0UHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJihyZXN0UHJvcHMuY2hpbGRyZW49cmVzdFByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbCxkZWxldGUgcmVzdFByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSxfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiLHtub25jZTpub25jZSxkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOiIoc2VsZi5fX25leHRfcz1zZWxmLl9fbmV4dF9zfHxbXSkucHVzaCgiLmNvbmNhdChKU09OLnN0cmluZ2lmeShbMCxfZXh0ZW5kcyh7fSxyZXN0UHJvcHMpXSksIikiKX19KSk7ImFmdGVySW50ZXJhY3RpdmUiPT09c3RyYXRlZ3kmJnNyYyYmX3JlYWN0RG9tLmRlZmF1bHQucHJlbG9hZChzcmMscmVzdFByb3BzLmludGVncml0eT97YXM6InNjcmlwdCIsaW50ZWdyaXR5OnJlc3RQcm9wcy5pbnRlZ3JpdHl9Onthczoic2NyaXB0In0pfXJldHVybiBudWxsfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShTY3JpcHQsIl9fbmV4dFNjcmlwdCIse3ZhbHVlOiEwfSksZXhwb3J0cy5kZWZhdWx0PVNjcmlwdCwoImZ1bmN0aW9uIj09dHlwZW9mIGV4cG9ydHMuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHQmJm51bGwhPT1leHBvcnRzLmRlZmF1bHQpJiZ2b2lkIDA9PT1leHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LGV4cG9ydHMpLG1vZHVsZS5leHBvcnRzPWV4cG9ydHMuZGVmYXVsdCl9LDY1NDA3OmZ1bmN0aW9uKG1vZHVsZSxleHBvcnRzKXsidXNlIHN0cmljdCI7bGV0IHBvbGljeTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5fX3Vuc2FmZUNyZWF0ZVRydXN0ZWRTY3JpcHRVUkw9ZnVuY3Rpb24odXJsKXt2YXIgcmVmO3JldHVybihudWxsPT0ocmVmPWZ1bmN0aW9uKCl7aWYodm9pZCAwPT09cG9saWN5KXt2YXIgcmVmO3BvbGljeT0obnVsbD09KHJlZj13aW5kb3cudHJ1c3RlZFR5cGVzKT92b2lkIDA6cmVmLmNyZWF0ZVBvbGljeSgibmV4dGpzIix7Y3JlYXRlSFRNTDppbnB1dD0+aW5wdXQsY3JlYXRlU2NyaXB0OmlucHV0PT5pbnB1dCxjcmVhdGVTY3JpcHRVUkw6aW5wdXQ9PmlucHV0fSkpfHxudWxsfXJldHVybiBwb2xpY3l9KCkpP3ZvaWQgMDpyZWYuY3JlYXRlU2NyaXB0VVJMKHVybCkpfHx1cmx9LCgiZnVuY3Rpb24iPT10eXBlb2YgZXhwb3J0cy5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMuZGVmYXVsdCYmbnVsbCE9PWV4cG9ydHMuZGVmYXVsdCkmJnZvaWQgMD09PWV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsZXhwb3J0cyksbW9kdWxlLmV4cG9ydHM9ZXhwb3J0cy5kZWZhdWx0KX0sNDk5Nzc6ZnVuY3Rpb24obW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxleHBvcnRzLmRlZmF1bHQ9ZnVuY3Rpb24oQ29tcG9zZWRDb21wb25lbnQpe2Z1bmN0aW9uIFdpdGhSb3V0ZXJXcmFwcGVyKHByb3BzKXtyZXR1cm4gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChDb21wb3NlZENvbXBvbmVudCxPYmplY3QuYXNzaWduKHtyb3V0ZXI6X3JvdXRlci51c2VSb3V0ZXIoKX0scHJvcHMpKX1yZXR1cm4gV2l0aFJvdXRlcldyYXBwZXIuZ2V0SW5pdGlhbFByb3BzPUNvbXBvc2VkQ29tcG9uZW50LmdldEluaXRpYWxQcm9wcyxXaXRoUm91dGVyV3JhcHBlci5vcmlnR2V0SW5pdGlhbFByb3BzPUNvbXBvc2VkQ29tcG9uZW50Lm9yaWdHZXRJbml0aWFsUHJvcHMsV2l0aFJvdXRlcldyYXBwZXJ9O3ZhciBfcmVhY3Q9KDAsX193ZWJwYWNrX3JlcXVpcmVfXyg5MjY0OCkuWikoX193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCkpLF9yb3V0ZXI9X193ZWJwYWNrX3JlcXVpcmVfXyg4MDg4MCk7KCJmdW5jdGlvbiI9PXR5cGVvZiBleHBvcnRzLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2YgZXhwb3J0cy5kZWZhdWx0JiZudWxsIT09ZXhwb3J0cy5kZWZhdWx0KSYmdm9pZCAwPT09ZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCxleHBvcnRzKSxtb2R1bGUuZXhwb3J0cz1leHBvcnRzLmRlZmF1bHQpfSw3NDI5NzpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxleHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5kZWZhdWx0PXZvaWQgMDt2YXIgX0NvbXBvbmVudCxfYXN5bmNfdG9fZ2VuZXJhdG9yPV9fd2VicGFja19yZXF1aXJlX18oNjA5MzIpLlosX3JlYWN0PSgwLF9fd2VicGFja19yZXF1aXJlX18oOTI2NDgpLlopKF9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpKSxfdXRpbHM9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzApO2Z1bmN0aW9uIGFwcEdldEluaXRpYWxQcm9wcyhfKXtyZXR1cm4gX2FwcEdldEluaXRpYWxQcm9wcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gX2FwcEdldEluaXRpYWxQcm9wcygpe3JldHVybihfYXBwR2V0SW5pdGlhbFByb3BzPV9hc3luY190b19nZW5lcmF0b3IoZnVuY3Rpb24qKHBhcmFtKXtsZXR7Q29tcG9uZW50LGN0eH09cGFyYW0scGFnZVByb3BzPXlpZWxkIF91dGlscy5sb2FkR2V0SW5pdGlhbFByb3BzKENvbXBvbmVudCxjdHgpO3JldHVybntwYWdlUHJvcHN9fSkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1jbGFzcyBBcHAgZXh0ZW5kcyhfQ29tcG9uZW50PV9yZWFjdC5kZWZhdWx0LkNvbXBvbmVudCl7cmVuZGVyKCl7bGV0e0NvbXBvbmVudCxwYWdlUHJvcHN9PXRoaXMucHJvcHM7cmV0dXJuIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQ29tcG9uZW50LE9iamVjdC5hc3NpZ24oe30scGFnZVByb3BzKSl9fUFwcC5vcmlnR2V0SW5pdGlhbFByb3BzPWFwcEdldEluaXRpYWxQcm9wcyxBcHAuZ2V0SW5pdGlhbFByb3BzPWFwcEdldEluaXRpYWxQcm9wcyxleHBvcnRzLmRlZmF1bHQ9QXBwfSw5NzM0NTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxleHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5kZWZhdWx0PXZvaWQgMDt2YXIgX0NvbXBvbmVudCxfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg5MjY0OCkuWixfcmVhY3Q9X2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KF9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpKSxfaGVhZD1faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXyg4MzEyMSkpO2xldCBzdGF0dXNDb2Rlcz17NDAwOiJCYWQgUmVxdWVzdCIsNDA0OiJUaGlzIHBhZ2UgY291bGQgbm90IGJlIGZvdW5kIiw0MDU6Ik1ldGhvZCBOb3QgQWxsb3dlZCIsNTAwOiJJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IifTtmdW5jdGlvbiBfZ2V0SW5pdGlhbFByb3BzKHBhcmFtKXtsZXR7cmVzLGVycn09cGFyYW0sc3RhdHVzQ29kZT1yZXMmJnJlcy5zdGF0dXNDb2RlP3Jlcy5zdGF0dXNDb2RlOmVycj9lcnIuc3RhdHVzQ29kZTo0MDQ7cmV0dXJue3N0YXR1c0NvZGV9fWxldCBzdHlsZXM9e2Vycm9yOntmb250RmFtaWx5OictYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFJvYm90bywgIlNlZ29lIFVJIiwgIkZpcmEgU2FucyIsIEF2ZW5pciwgIkhlbHZldGljYSBOZXVlIiwgIkx1Y2lkYSBHcmFuZGUiLCBzYW5zLXNlcmlmJyxoZWlnaHQ6IjEwMHZoIix0ZXh0QWxpZ246ImNlbnRlciIsZGlzcGxheToiZmxleCIsZmxleERpcmVjdGlvbjoiY29sdW1uIixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIifSxkZXNjOntkaXNwbGF5OiJpbmxpbmUtYmxvY2siLHRleHRBbGlnbjoibGVmdCIsbGluZUhlaWdodDoiNDlweCIsaGVpZ2h0OiI0OXB4Iix2ZXJ0aWNhbEFsaWduOiJtaWRkbGUifSxoMTp7ZGlzcGxheToiaW5saW5lLWJsb2NrIixtYXJnaW46MCxtYXJnaW5SaWdodDoiMjBweCIscGFkZGluZzoiMCAyM3B4IDAgMCIsZm9udFNpemU6IjI0cHgiLGZvbnRXZWlnaHQ6NTAwLHZlcnRpY2FsQWxpZ246InRvcCIsbGluZUhlaWdodDoiNDlweCJ9LGgyOntmb250U2l6ZToiMTRweCIsZm9udFdlaWdodDoibm9ybWFsIixsaW5lSGVpZ2h0OiI0OXB4IixtYXJnaW46MCxwYWRkaW5nOjB9fTtjbGFzcyBFcnJvcjEgZXh0ZW5kcyhfQ29tcG9uZW50PV9yZWFjdC5kZWZhdWx0LkNvbXBvbmVudCl7cmVuZGVyKCl7bGV0e3N0YXR1c0NvZGUsd2l0aERhcmtNb2RlPSEwfT10aGlzLnByb3BzLHRpdGxlPXRoaXMucHJvcHMudGl0bGV8fHN0YXR1c0NvZGVzW3N0YXR1c0NvZGVdfHwiQW4gdW5leHBlY3RlZCBlcnJvciBoYXMgb2NjdXJyZWQiO3JldHVybiBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtzdHlsZTpzdHlsZXMuZXJyb3J9LF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX2hlYWQuZGVmYXVsdCxudWxsLF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInRpdGxlIixudWxsLHN0YXR1c0NvZGU/IiIuY29uY2F0KHN0YXR1c0NvZGUsIjogIikuY29uY2F0KHRpdGxlKToiQXBwbGljYXRpb24gZXJyb3I6IGEgY2xpZW50LXNpZGUgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZCIpKSxfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLG51bGwsX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3R5bGUiLHtkYW5nZXJvdXNseVNldElubmVySFRNTDp7X19odG1sOiJcbiAgICAgICAgICAgICAgICBib2R5IHsgbWFyZ2luOiAwOyBjb2xvcjogIzAwMDsgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgICAgICAgICAgICAgIC5uZXh0LWVycm9yLWgxIHtcbiAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgLjMpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICIuY29uY2F0KHdpdGhEYXJrTW9kZT8iQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgICAgICAgICAgICAgICAgYm9keSB7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kOiAjMDAwOyB9XG4gICAgICAgICAgICAgICAgICAubmV4dC1lcnJvci1oMSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjMpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0iOiIiKX19KSxzdGF0dXNDb2RlP19yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImgxIix7Y2xhc3NOYW1lOiJuZXh0LWVycm9yLWgxIixzdHlsZTpzdHlsZXMuaDF9LHN0YXR1c0NvZGUpOm51bGwsX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7c3R5bGU6c3R5bGVzLmRlc2N9LF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImgyIix7c3R5bGU6c3R5bGVzLmgyfSx0aGlzLnByb3BzLnRpdGxlfHxzdGF0dXNDb2RlP3RpdGxlOl9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX3JlYWN0LmRlZmF1bHQuRnJhZ21lbnQsbnVsbCwiQXBwbGljYXRpb24gZXJyb3I6IGEgY2xpZW50LXNpZGUgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZCAoc2VlIHRoZSBicm93c2VyIGNvbnNvbGUgZm9yIG1vcmUgaW5mb3JtYXRpb24pIiksIi4iKSkpKX19RXJyb3IxLmRpc3BsYXlOYW1lPSJFcnJvclBhZ2UiLEVycm9yMS5nZXRJbml0aWFsUHJvcHM9X2dldEluaXRpYWxQcm9wcyxFcnJvcjEub3JpZ0dldEluaXRpYWxQcm9wcz1fZ2V0SW5pdGlhbFByb3BzLGV4cG9ydHMuZGVmYXVsdD1FcnJvcjF9LDQwNjEwOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxleHBvcnRzLkFtcFN0YXRlQ29udGV4dD12b2lkIDA7dmFyIF9yZWFjdD0oMCxfX3dlYnBhY2tfcmVxdWlyZV9fKDkyNjQ4KS5aKShfX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSk7bGV0IEFtcFN0YXRlQ29udGV4dD1fcmVhY3QuZGVmYXVsdC5jcmVhdGVDb250ZXh0KHt9KTtleHBvcnRzLkFtcFN0YXRlQ29udGV4dD1BbXBTdGF0ZUNvbnRleHR9LDQwNTMyOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5pc0luQW1wTW9kZT1mdW5jdGlvbigpe2xldHthbXBGaXJzdD0hMSxoeWJyaWQ9ITEsaGFzUXVlcnk9ITF9PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtyZXR1cm4gYW1wRmlyc3R8fGh5YnJpZCYmaGFzUXVlcnl9fSw0ODI0NTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxleHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5UZW1wbGF0ZUNvbnRleHQ9ZXhwb3J0cy5HbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0PWV4cG9ydHMuTGF5b3V0Um91dGVyQ29udGV4dD1leHBvcnRzLkFwcFJvdXRlckNvbnRleHQ9ZXhwb3J0cy5DYWNoZVN0YXRlcz12b2lkIDA7dmFyIENhY2hlU3RhdGVzLENhY2hlU3RhdGVzMSxfcmVhY3Q9KDAsX193ZWJwYWNrX3JlcXVpcmVfXyg5MjY0OCkuWikoX193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCkpO2V4cG9ydHMuQ2FjaGVTdGF0ZXM9Q2FjaGVTdGF0ZXMsKENhY2hlU3RhdGVzMT1DYWNoZVN0YXRlc3x8KGV4cG9ydHMuQ2FjaGVTdGF0ZXM9Q2FjaGVTdGF0ZXM9e30pKS5MQVpZSU5JVElBTElaRUQ9IkxBWllJTklUSUFMSVpFRCIsQ2FjaGVTdGF0ZXMxLkRBVEFGRVRDSD0iREFUQUZFVENIIixDYWNoZVN0YXRlczEuUkVBRFk9IlJFQURZIjtsZXQgQXBwUm91dGVyQ29udGV4dD1fcmVhY3QuZGVmYXVsdC5jcmVhdGVDb250ZXh0KG51bGwpO2V4cG9ydHMuQXBwUm91dGVyQ29udGV4dD1BcHBSb3V0ZXJDb250ZXh0O2xldCBMYXlvdXRSb3V0ZXJDb250ZXh0PV9yZWFjdC5kZWZhdWx0LmNyZWF0ZUNvbnRleHQobnVsbCk7ZXhwb3J0cy5MYXlvdXRSb3V0ZXJDb250ZXh0PUxheW91dFJvdXRlckNvbnRleHQ7bGV0IEdsb2JhbExheW91dFJvdXRlckNvbnRleHQ9X3JlYWN0LmRlZmF1bHQuY3JlYXRlQ29udGV4dChudWxsKTtleHBvcnRzLkdsb2JhbExheW91dFJvdXRlckNvbnRleHQ9R2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dDtsZXQgVGVtcGxhdGVDb250ZXh0PV9yZWFjdC5kZWZhdWx0LmNyZWF0ZUNvbnRleHQobnVsbCk7ZXhwb3J0cy5UZW1wbGF0ZUNvbnRleHQ9VGVtcGxhdGVDb250ZXh0fSwxODY1OTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxleHBvcnRzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuZXNjYXBlU3RyaW5nUmVnZXhwPWZ1bmN0aW9uKHN0cil7cmV0dXJuIHJlSGFzUmVnRXhwLnRlc3Qoc3RyKT9zdHIucmVwbGFjZShyZVJlcGxhY2VSZWdFeHAsIlxcJCYiKTpzdHJ9O2xldCByZUhhc1JlZ0V4cD0vW3xcXHt9KClbXF1eJCsqPy4tXS8scmVSZXBsYWNlUmVnRXhwPS9bfFxce30oKVtcXV4kKyo/Li1dL2d9LDQ2NjQ6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuSGVhZE1hbmFnZXJDb250ZXh0PXZvaWQgMDt2YXIgX3JlYWN0PSgwLF9fd2VicGFja19yZXF1aXJlX18oOTI2NDgpLlopKF9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpKTtsZXQgSGVhZE1hbmFnZXJDb250ZXh0PV9yZWFjdC5kZWZhdWx0LmNyZWF0ZUNvbnRleHQoe30pO2V4cG9ydHMuSGVhZE1hbmFnZXJDb250ZXh0PUhlYWRNYW5hZ2VyQ29udGV4dH0sODMxMjE6ZnVuY3Rpb24obW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxleHBvcnRzLmRlZmF1bHRIZWFkPWRlZmF1bHRIZWFkLGV4cG9ydHMuZGVmYXVsdD12b2lkIDA7dmFyIF9leHRlbmRzPV9fd2VicGFja19yZXF1aXJlX18oNjQ5NSkuWixfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg5MjY0OCkuWixfcmVhY3Q9KDAsX193ZWJwYWNrX3JlcXVpcmVfXyg5MTU5OCkuWikoX193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCkpLF9zaWRlRWZmZWN0PV9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChfX3dlYnBhY2tfcmVxdWlyZV9fKDMxNDM2KSksX2FtcENvbnRleHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg0MDYxMCksX2hlYWRNYW5hZ2VyQ29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ2NjQpLF9hbXBNb2RlPV9fd2VicGFja19yZXF1aXJlX18oNDA1MzIpO2Z1bmN0aW9uIGRlZmF1bHRIZWFkKCl7bGV0IGluQW1wTW9kZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLGhlYWQ9W19yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoIm1ldGEiLHtjaGFyU2V0OiJ1dGYtOCJ9KV07cmV0dXJuIGluQW1wTW9kZXx8aGVhZC5wdXNoKF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoIm1ldGEiLHtuYW1lOiJ2aWV3cG9ydCIsY29udGVudDoid2lkdGg9ZGV2aWNlLXdpZHRoIn0pKSxoZWFkfWZ1bmN0aW9uIG9ubHlSZWFjdEVsZW1lbnQobGlzdCxjaGlsZCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBjaGlsZHx8Im51bWJlciI9PXR5cGVvZiBjaGlsZD9saXN0OmNoaWxkLnR5cGU9PT1fcmVhY3QuZGVmYXVsdC5GcmFnbWVudD9saXN0LmNvbmNhdChfcmVhY3QuZGVmYXVsdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkLnByb3BzLmNoaWxkcmVuKS5yZWR1Y2UoKGZyYWdtZW50TGlzdCxmcmFnbWVudENoaWxkKT0+InN0cmluZyI9PXR5cGVvZiBmcmFnbWVudENoaWxkfHwibnVtYmVyIj09dHlwZW9mIGZyYWdtZW50Q2hpbGQ/ZnJhZ21lbnRMaXN0OmZyYWdtZW50TGlzdC5jb25jYXQoZnJhZ21lbnRDaGlsZCksW10pKTpsaXN0LmNvbmNhdChjaGlsZCl9X193ZWJwYWNrX3JlcXVpcmVfXyg1NzIzOCk7bGV0IE1FVEFUWVBFUz1bIm5hbWUiLCJodHRwRXF1aXYiLCJjaGFyU2V0IiwiaXRlbVByb3AiXTtmdW5jdGlvbiByZWR1Y2VDb21wb25lbnRzKGhlYWRDaGlsZHJlbkVsZW1lbnRzLHByb3BzKXtsZXR7aW5BbXBNb2RlfT1wcm9wcztyZXR1cm4gaGVhZENoaWxkcmVuRWxlbWVudHMucmVkdWNlKG9ubHlSZWFjdEVsZW1lbnQsW10pLnJldmVyc2UoKS5jb25jYXQoZGVmYXVsdEhlYWQoaW5BbXBNb2RlKS5yZXZlcnNlKCkpLmZpbHRlcihmdW5jdGlvbigpe2xldCBrZXlzPW5ldyBTZXQsdGFncz1uZXcgU2V0LG1ldGFUeXBlcz1uZXcgU2V0LG1ldGFDYXRlZ29yaWVzPXt9O3JldHVybiBoPT57bGV0IGlzVW5pcXVlPSEwLGhhc0tleT0hMTtpZihoLmtleSYmIm51bWJlciIhPXR5cGVvZiBoLmtleSYmaC5rZXkuaW5kZXhPZigiJCIpPjApe2hhc0tleT0hMDtsZXQga2V5PWgua2V5LnNsaWNlKGgua2V5LmluZGV4T2YoIiQiKSsxKTtrZXlzLmhhcyhrZXkpP2lzVW5pcXVlPSExOmtleXMuYWRkKGtleSl9c3dpdGNoKGgudHlwZSl7Y2FzZSJ0aXRsZSI6Y2FzZSJiYXNlIjp0YWdzLmhhcyhoLnR5cGUpP2lzVW5pcXVlPSExOnRhZ3MuYWRkKGgudHlwZSk7YnJlYWs7Y2FzZSJtZXRhIjpmb3IobGV0IGk9MCxsZW49TUVUQVRZUEVTLmxlbmd0aDtpPGxlbjtpKyspe2xldCBtZXRhdHlwZT1NRVRBVFlQRVNbaV07aWYoaC5wcm9wcy5oYXNPd25Qcm9wZXJ0eShtZXRhdHlwZSkpe2lmKCJjaGFyU2V0Ij09PW1ldGF0eXBlKW1ldGFUeXBlcy5oYXMobWV0YXR5cGUpP2lzVW5pcXVlPSExOm1ldGFUeXBlcy5hZGQobWV0YXR5cGUpO2Vsc2V7bGV0IGNhdGVnb3J5PWgucHJvcHNbbWV0YXR5cGVdLGNhdGVnb3JpZXM9bWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdfHxuZXcgU2V0OygibmFtZSIhPT1tZXRhdHlwZXx8IWhhc0tleSkmJmNhdGVnb3JpZXMuaGFzKGNhdGVnb3J5KT9pc1VuaXF1ZT0hMTooY2F0ZWdvcmllcy5hZGQoY2F0ZWdvcnkpLG1ldGFDYXRlZ29yaWVzW21ldGF0eXBlXT1jYXRlZ29yaWVzKX19fX1yZXR1cm4gaXNVbmlxdWV9fSgpKS5yZXZlcnNlKCkubWFwKChjLGkpPT57bGV0IGtleT1jLmtleXx8aTtpZighaW5BbXBNb2RlJiYibGluayI9PT1jLnR5cGUmJmMucHJvcHMuaHJlZiYmWyJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzcyIsImh0dHBzOi8vdXNlLnR5cGVraXQubmV0LyJdLnNvbWUodXJsPT5jLnByb3BzLmhyZWYuc3RhcnRzV2l0aCh1cmwpKSl7bGV0IG5ld1Byb3BzPV9leHRlbmRzKHt9LGMucHJvcHN8fHt9KTtyZXR1cm4gbmV3UHJvcHNbImRhdGEtaHJlZiJdPW5ld1Byb3BzLmhyZWYsbmV3UHJvcHMuaHJlZj12b2lkIDAsbmV3UHJvcHNbImRhdGEtb3B0aW1pemVkLWZvbnRzIl09ITAsX3JlYWN0LmRlZmF1bHQuY2xvbmVFbGVtZW50KGMsbmV3UHJvcHMpfXJldHVybiBfcmVhY3QuZGVmYXVsdC5jbG9uZUVsZW1lbnQoYyx7a2V5fSl9KX1leHBvcnRzLmRlZmF1bHQ9ZnVuY3Rpb24ocGFyYW0pe2xldHtjaGlsZHJlbn09cGFyYW0sYW1wU3RhdGU9X3JlYWN0LnVzZUNvbnRleHQoX2FtcENvbnRleHQuQW1wU3RhdGVDb250ZXh0KSxoZWFkTWFuYWdlcj1fcmVhY3QudXNlQ29udGV4dChfaGVhZE1hbmFnZXJDb250ZXh0LkhlYWRNYW5hZ2VyQ29udGV4dCk7cmV0dXJuIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX3NpZGVFZmZlY3QuZGVmYXVsdCx7cmVkdWNlQ29tcG9uZW50c1RvU3RhdGU6cmVkdWNlQ29tcG9uZW50cyxoZWFkTWFuYWdlcjpoZWFkTWFuYWdlcixpbkFtcE1vZGU6X2FtcE1vZGUuaXNJbkFtcE1vZGUoYW1wU3RhdGUpfSxjaGlsZHJlbil9LCgiZnVuY3Rpb24iPT10eXBlb2YgZXhwb3J0cy5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMuZGVmYXVsdCYmbnVsbCE9PWV4cG9ydHMuZGVmYXVsdCkmJnZvaWQgMD09PWV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsZXhwb3J0cyksbW9kdWxlLmV4cG9ydHM9ZXhwb3J0cy5kZWZhdWx0KX0sNzg5MTQ6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuTGF5b3V0U2VnbWVudHNDb250ZXh0PWV4cG9ydHMuUGFyYW1zQ29udGV4dD1leHBvcnRzLlBhdGhuYW1lQ29udGV4dD1leHBvcnRzLlNlYXJjaFBhcmFtc0NvbnRleHQ9dm9pZCAwO3ZhciBfcmVhY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCk7bGV0IFNlYXJjaFBhcmFtc0NvbnRleHQ9X3JlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCk7ZXhwb3J0cy5TZWFyY2hQYXJhbXNDb250ZXh0PVNlYXJjaFBhcmFtc0NvbnRleHQ7bGV0IFBhdGhuYW1lQ29udGV4dD1fcmVhY3QuY3JlYXRlQ29udGV4dChudWxsKTtleHBvcnRzLlBhdGhuYW1lQ29udGV4dD1QYXRobmFtZUNvbnRleHQ7bGV0IFBhcmFtc0NvbnRleHQ9X3JlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCk7ZXhwb3J0cy5QYXJhbXNDb250ZXh0PVBhcmFtc0NvbnRleHQ7bGV0IExheW91dFNlZ21lbnRzQ29udGV4dD1fcmVhY3QuY3JlYXRlQ29udGV4dChudWxsKTtleHBvcnRzLkxheW91dFNlZ21lbnRzQ29udGV4dD1MYXlvdXRTZWdtZW50c0NvbnRleHR9LDcyMzg4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5kZXRlY3REb21haW5Mb2NhbGU9ZnVuY3Rpb24oZG9tYWluSXRlbXMsaG9zdG5hbWUsZGV0ZWN0ZWRMb2NhbGUpe2xldCBkb21haW5JdGVtO2lmKGRvbWFpbkl0ZW1zKWZvcihsZXQgaXRlbSBvZihkZXRlY3RlZExvY2FsZSYmKGRldGVjdGVkTG9jYWxlPWRldGVjdGVkTG9jYWxlLnRvTG93ZXJDYXNlKCkpLGRvbWFpbkl0ZW1zKSl7dmFyIHJlZixyZWYxO2xldCBkb21haW5Ib3N0bmFtZT1udWxsPT0ocmVmPWl0ZW0uZG9tYWluKT92b2lkIDA6cmVmLnNwbGl0KCI6IilbMF0udG9Mb3dlckNhc2UoKTtpZihob3N0bmFtZT09PWRvbWFpbkhvc3RuYW1lfHxkZXRlY3RlZExvY2FsZT09PWl0ZW0uZGVmYXVsdExvY2FsZS50b0xvd2VyQ2FzZSgpfHwobnVsbD09KHJlZjE9aXRlbS5sb2NhbGVzKT92b2lkIDA6cmVmMS5zb21lKGxvY2FsZT0+bG9jYWxlLnRvTG93ZXJDYXNlKCk9PT1kZXRlY3RlZExvY2FsZSkpKXtkb21haW5JdGVtPWl0ZW07YnJlYWt9fXJldHVybiBkb21haW5JdGVtfX0sMjQ3Njk6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxleHBvcnRzLm5vcm1hbGl6ZUxvY2FsZVBhdGg9ZnVuY3Rpb24ocGF0aG5hbWUsbG9jYWxlcyl7bGV0IGRldGVjdGVkTG9jYWxlO2xldCBwYXRobmFtZVBhcnRzPXBhdGhuYW1lLnNwbGl0KCIvIik7cmV0dXJuKGxvY2FsZXN8fFtdKS5zb21lKGxvY2FsZT0+ISFwYXRobmFtZVBhcnRzWzFdJiZwYXRobmFtZVBhcnRzWzFdLnRvTG93ZXJDYXNlKCk9PT1sb2NhbGUudG9Mb3dlckNhc2UoKSYmKGRldGVjdGVkTG9jYWxlPWxvY2FsZSxwYXRobmFtZVBhcnRzLnNwbGljZSgxLDEpLHBhdGhuYW1lPXBhdGhuYW1lUGFydHMuam9pbigiLyIpfHwiLyIsITApKSx7cGF0aG5hbWUsZGV0ZWN0ZWRMb2NhbGV9fX0sMjg3MzA6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuSW1hZ2VDb25maWdDb250ZXh0PXZvaWQgMDt2YXIgX3JlYWN0PSgwLF9fd2VicGFja19yZXF1aXJlX18oOTI2NDgpLlopKF9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpKSxfaW1hZ2VDb25maWc9X193ZWJwYWNrX3JlcXVpcmVfXygxMDEzOSk7bGV0IEltYWdlQ29uZmlnQ29udGV4dD1fcmVhY3QuZGVmYXVsdC5jcmVhdGVDb250ZXh0KF9pbWFnZUNvbmZpZy5pbWFnZUNvbmZpZ0RlZmF1bHQpO2V4cG9ydHMuSW1hZ2VDb25maWdDb250ZXh0PUltYWdlQ29uZmlnQ29udGV4dH0sMTAxMzk6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxleHBvcnRzLmltYWdlQ29uZmlnRGVmYXVsdD1leHBvcnRzLlZBTElEX0xPQURFUlM9dm9pZCAwLGV4cG9ydHMuVkFMSURfTE9BREVSUz1bImRlZmF1bHQiLCJpbWdpeCIsImNsb3VkaW5hcnkiLCJha2FtYWkiLCJjdXN0b20iXSxleHBvcnRzLmltYWdlQ29uZmlnRGVmYXVsdD17ZGV2aWNlU2l6ZXM6WzY0MCw3NTAsODI4LDEwODAsMTIwMCwxOTIwLDIwNDgsMzg0MF0saW1hZ2VTaXplczpbMTYsMzIsNDgsNjQsOTYsMTI4LDI1NiwzODRdLHBhdGg6Ii9fbmV4dC9pbWFnZSIsbG9hZGVyOiJkZWZhdWx0Iixsb2FkZXJGaWxlOiIiLGRvbWFpbnM6W10sZGlzYWJsZVN0YXRpY0ltYWdlczohMSxtaW5pbXVtQ2FjaGVUVEw6NjAsZm9ybWF0czpbImltYWdlL3dlYnAiXSxkYW5nZXJvdXNseUFsbG93U1ZHOiExLGNvbnRlbnRTZWN1cml0eVBvbGljeToic2NyaXB0LXNyYyAnbm9uZSc7IGZyYW1lLXNyYyAnbm9uZSc7IHNhbmRib3g7IixyZW1vdGVQYXR0ZXJuczpbXSx1bm9wdGltaXplZDohMX19LDgyODQ5OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5nZXRPYmplY3RDbGFzc0xhYmVsPWdldE9iamVjdENsYXNzTGFiZWwsZXhwb3J0cy5pc1BsYWluT2JqZWN0PWZ1bmN0aW9uKHZhbHVlKXtpZigiW29iamVjdCBPYmplY3RdIiE9PWdldE9iamVjdENsYXNzTGFiZWwodmFsdWUpKXJldHVybiExO2xldCBwcm90b3R5cGU9T2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbHVlKTtyZXR1cm4gbnVsbD09PXByb3RvdHlwZXx8cHJvdG90eXBlLmhhc093blByb3BlcnR5KCJpc1Byb3RvdHlwZU9mIil9fSw4NTUwOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5kZWZhdWx0PWZ1bmN0aW9uKCl7bGV0IGFsbD1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybntvbih0eXBlLGhhbmRsZXIpeyhhbGxbdHlwZV18fChhbGxbdHlwZV09W10pKS5wdXNoKGhhbmRsZXIpfSxvZmYodHlwZSxoYW5kbGVyKXthbGxbdHlwZV0mJmFsbFt0eXBlXS5zcGxpY2UoYWxsW3R5cGVdLmluZGV4T2YoaGFuZGxlcik+Pj4wLDEpfSxlbWl0KHR5cGUpe2Zvcih2YXIgX2xlbj1hcmd1bWVudHMubGVuZ3RoLGV2dHM9QXJyYXkoX2xlbj4xP19sZW4tMTowKSxfa2V5PTE7X2tleTxfbGVuO19rZXkrKylldnRzW19rZXktMV09YXJndW1lbnRzW19rZXldOyhhbGxbdHlwZV18fFtdKS5zbGljZSgpLm1hcChoYW5kbGVyPT57aGFuZGxlciguLi5ldnRzKX0pfX19fSw2MzAxOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxleHBvcnRzLmRlbm9ybWFsaXplUGFnZVBhdGg9ZnVuY3Rpb24ocGFnZSl7bGV0IF9wYWdlPV9ub3JtYWxpemVQYXRoU2VwLm5vcm1hbGl6ZVBhdGhTZXAocGFnZSk7cmV0dXJuIF9wYWdlLnN0YXJ0c1dpdGgoIi9pbmRleC8iKSYmIV91dGlscy5pc0R5bmFtaWNSb3V0ZShfcGFnZSk/X3BhZ2Uuc2xpY2UoNik6Ii9pbmRleCIhPT1fcGFnZT9fcGFnZToiLyJ9O3ZhciBfdXRpbHM9X193ZWJwYWNrX3JlcXVpcmVfXygxODU4OCksX25vcm1hbGl6ZVBhdGhTZXA9X193ZWJwYWNrX3JlcXVpcmVfXyg0OTk5Nyl9LDQ5OTk3OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5ub3JtYWxpemVQYXRoU2VwPWZ1bmN0aW9uKHBhdGgpe3JldHVybiBwYXRoLnJlcGxhY2UoL1xcL2csIi8iKX19LDcyNjkyOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxleHBvcnRzLlJvdXRlckNvbnRleHQ9dm9pZCAwO3ZhciBfcmVhY3Q9KDAsX193ZWJwYWNrX3JlcXVpcmVfXyg5MjY0OCkuWikoX193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCkpO2xldCBSb3V0ZXJDb250ZXh0PV9yZWFjdC5kZWZhdWx0LmNyZWF0ZUNvbnRleHQobnVsbCk7ZXhwb3J0cy5Sb3V0ZXJDb250ZXh0PVJvdXRlckNvbnRleHR9LDYwNDAxOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxleHBvcnRzLmFkYXB0Rm9yQXBwUm91dGVySW5zdGFuY2U9ZnVuY3Rpb24ocm91dGVyKXtyZXR1cm57YmFjaygpe3JvdXRlci5iYWNrKCl9LGZvcndhcmQoKXtyb3V0ZXIuZm9yd2FyZCgpfSxyZWZyZXNoKCl7cm91dGVyLnJlbG9hZCgpfSxwdXNoKGhyZWYpe3JvdXRlci5wdXNoKGhyZWYpfSxyZXBsYWNlKGhyZWYpe3JvdXRlci5yZXBsYWNlKGhyZWYpfSxwcmVmZXRjaChocmVmKXtyb3V0ZXIucHJlZmV0Y2goaHJlZil9fX0sZXhwb3J0cy5hZGFwdEZvclNlYXJjaFBhcmFtcz1mdW5jdGlvbihyb3V0ZXIpe3JldHVybiByb3V0ZXIuaXNSZWFkeSYmcm91dGVyLnF1ZXJ5P2Z1bmN0aW9uKHF1ZXJ5KXtsZXQgcGFyYW1zPW5ldyBVUkxTZWFyY2hQYXJhbXM7Zm9yKGxldFtuYW1lLHZhbHVlXW9mIE9iamVjdC5lbnRyaWVzKHF1ZXJ5KSlpZihBcnJheS5pc0FycmF5KHZhbHVlKSlmb3IobGV0IHZhbCBvZiB2YWx1ZSlwYXJhbXMuYXBwZW5kKG5hbWUsdmFsKTtlbHNlIHZvaWQgMCE9PXZhbHVlJiZwYXJhbXMuYXBwZW5kKG5hbWUsdmFsdWUpO3JldHVybiBwYXJhbXN9KHJvdXRlci5xdWVyeSk6bmV3IFVSTFNlYXJjaFBhcmFtc30sZXhwb3J0cy5QYXRobmFtZUNvbnRleHRQcm92aWRlckFkYXB0ZXI9ZnVuY3Rpb24oX3BhcmFtKXt2YXJ7Y2hpbGRyZW4scm91dGVyfT1fcGFyYW0scHJvcHM9X29iamVjdF93aXRob3V0X3Byb3BlcnRpZXNfbG9vc2UoX3BhcmFtLFsiY2hpbGRyZW4iLCJyb3V0ZXIiXSk7bGV0IHJlZj1fcmVhY3QudXNlUmVmKHByb3BzLmlzQXV0b0V4cG9ydCksdmFsdWU9X3JlYWN0LnVzZU1lbW8oKCk9PntsZXQgaXNBdXRvRXhwb3J0PXJlZi5jdXJyZW50O2lmKGlzQXV0b0V4cG9ydCYmKHJlZi5jdXJyZW50PSExKSxfdXRpbHMuaXNEeW5hbWljUm91dGUocm91dGVyLnBhdGhuYW1lKSYmKHJvdXRlci5pc0ZhbGxiYWNrfHxpc0F1dG9FeHBvcnQmJiFyb3V0ZXIuaXNSZWFkeSkpcmV0dXJuIG51bGw7bGV0IHVybD1uZXcgVVJMKHJvdXRlci5hc1BhdGgsImh0dHA6Ly9mIik7cmV0dXJuIHVybC5wYXRobmFtZX0sW3JvdXRlci5hc1BhdGgscm91dGVyLmlzRmFsbGJhY2sscm91dGVyLmlzUmVhZHkscm91dGVyLnBhdGhuYW1lXSk7cmV0dXJuIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX2hvb2tzQ2xpZW50Q29udGV4dC5QYXRobmFtZUNvbnRleHQuUHJvdmlkZXIse3ZhbHVlOnZhbHVlfSxjaGlsZHJlbil9O3ZhciBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkPV9fd2VicGFja19yZXF1aXJlX18oOTE1OTgpLlosX29iamVjdF93aXRob3V0X3Byb3BlcnRpZXNfbG9vc2U9X193ZWJwYWNrX3JlcXVpcmVfXygxNzI3MykuWixfcmVhY3Q9X2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChfX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KSksX2hvb2tzQ2xpZW50Q29udGV4dD1fX3dlYnBhY2tfcmVxdWlyZV9fKDc4OTE0KSxfdXRpbHM9X193ZWJwYWNrX3JlcXVpcmVfXygxODU4OCl9LDM0NDQxOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxleHBvcnRzLmFkZExvY2FsZT1mdW5jdGlvbihwYXRoLGxvY2FsZSxkZWZhdWx0TG9jYWxlLGlnbm9yZVByZWZpeCl7cmV0dXJuIGxvY2FsZSYmbG9jYWxlIT09ZGVmYXVsdExvY2FsZSYmKGlnbm9yZVByZWZpeHx8IV9wYXRoSGFzUHJlZml4LnBhdGhIYXNQcmVmaXgocGF0aC50b0xvd2VyQ2FzZSgpLCIvIi5jb25jYXQobG9jYWxlLnRvTG93ZXJDYXNlKCkpKSYmIV9wYXRoSGFzUHJlZml4LnBhdGhIYXNQcmVmaXgocGF0aC50b0xvd2VyQ2FzZSgpLCIvYXBpIikpP19hZGRQYXRoUHJlZml4LmFkZFBhdGhQcmVmaXgocGF0aCwiLyIuY29uY2F0KGxvY2FsZSkpOnBhdGh9O3ZhciBfYWRkUGF0aFByZWZpeD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ0MTM1KSxfcGF0aEhhc1ByZWZpeD1fX3dlYnBhY2tfcmVxdWlyZV9fKDkzMjEwKX0sNDQxMzU6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuYWRkUGF0aFByZWZpeD1mdW5jdGlvbihwYXRoLHByZWZpeCl7aWYoIXBhdGguc3RhcnRzV2l0aCgiLyIpfHwhcHJlZml4KXJldHVybiBwYXRoO2xldHtwYXRobmFtZSxxdWVyeSxoYXNofT1fcGFyc2VQYXRoLnBhcnNlUGF0aChwYXRoKTtyZXR1cm4iIi5jb25jYXQocHJlZml4KS5jb25jYXQocGF0aG5hbWUpLmNvbmNhdChxdWVyeSkuY29uY2F0KGhhc2gpfTt2YXIgX3BhcnNlUGF0aD1fX3dlYnBhY2tfcmVxdWlyZV9fKDI2NzI3KX0sOTYwNzQ6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuYWRkUGF0aFN1ZmZpeD1mdW5jdGlvbihwYXRoLHN1ZmZpeCl7aWYoIXBhdGguc3RhcnRzV2l0aCgiLyIpfHwhc3VmZml4KXJldHVybiBwYXRoO2xldHtwYXRobmFtZSxxdWVyeSxoYXNofT1fcGFyc2VQYXRoLnBhcnNlUGF0aChwYXRoKTtyZXR1cm4iIi5jb25jYXQocGF0aG5hbWUpLmNvbmNhdChzdWZmaXgpLmNvbmNhdChxdWVyeSkuY29uY2F0KGhhc2gpfTt2YXIgX3BhcnNlUGF0aD1fX3dlYnBhY2tfcmVxdWlyZV9fKDI2NzI3KX0sNzkwMDI6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxleHBvcnRzLmNvbXBhcmVSb3V0ZXJTdGF0ZXM9ZnVuY3Rpb24oYSxiKXtsZXQgc3RhdGVLZXlzPU9iamVjdC5rZXlzKGEpO2lmKHN0YXRlS2V5cy5sZW5ndGghPT1PYmplY3Qua2V5cyhiKS5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBpPXN0YXRlS2V5cy5sZW5ndGg7aS0tOyl7bGV0IGtleT1zdGF0ZUtleXNbaV07aWYoInF1ZXJ5Ij09PWtleSl7bGV0IHF1ZXJ5S2V5cz1PYmplY3Qua2V5cyhhLnF1ZXJ5KTtpZihxdWVyeUtleXMubGVuZ3RoIT09T2JqZWN0LmtleXMoYi5xdWVyeSkubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgaj1xdWVyeUtleXMubGVuZ3RoO2otLTspe2xldCBxdWVyeUtleT1xdWVyeUtleXNbal07aWYoIWIucXVlcnkuaGFzT3duUHJvcGVydHkocXVlcnlLZXkpfHxhLnF1ZXJ5W3F1ZXJ5S2V5XSE9PWIucXVlcnlbcXVlcnlLZXldKXJldHVybiExfX1lbHNlIGlmKCFiLmhhc093blByb3BlcnR5KGtleSl8fGFba2V5XSE9PWJba2V5XSlyZXR1cm4hMX1yZXR1cm4hMH19LDU3NDI5OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxleHBvcnRzLmZvcm1hdE5leHRQYXRobmFtZUluZm89ZnVuY3Rpb24oaW5mbyl7bGV0IHBhdGhuYW1lPV9hZGRMb2NhbGUuYWRkTG9jYWxlKGluZm8ucGF0aG5hbWUsaW5mby5sb2NhbGUsaW5mby5idWlsZElkP3ZvaWQgMDppbmZvLmRlZmF1bHRMb2NhbGUsaW5mby5pZ25vcmVQcmVmaXgpO3JldHVybihpbmZvLmJ1aWxkSWR8fCFpbmZvLnRyYWlsaW5nU2xhc2gpJiYocGF0aG5hbWU9X3JlbW92ZVRyYWlsaW5nU2xhc2gucmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSkpLGluZm8uYnVpbGRJZCYmKHBhdGhuYW1lPV9hZGRQYXRoU3VmZml4LmFkZFBhdGhTdWZmaXgoX2FkZFBhdGhQcmVmaXguYWRkUGF0aFByZWZpeChwYXRobmFtZSwiL19uZXh0L2RhdGEvIi5jb25jYXQoaW5mby5idWlsZElkKSksIi8iPT09aW5mby5wYXRobmFtZT8iaW5kZXguanNvbiI6Ii5qc29uIikpLHBhdGhuYW1lPV9hZGRQYXRoUHJlZml4LmFkZFBhdGhQcmVmaXgocGF0aG5hbWUsaW5mby5iYXNlUGF0aCksIWluZm8uYnVpbGRJZCYmaW5mby50cmFpbGluZ1NsYXNoP3BhdGhuYW1lLmVuZHNXaXRoKCIvIik/cGF0aG5hbWU6X2FkZFBhdGhTdWZmaXguYWRkUGF0aFN1ZmZpeChwYXRobmFtZSwiLyIpOl9yZW1vdmVUcmFpbGluZ1NsYXNoLnJlbW92ZVRyYWlsaW5nU2xhc2gocGF0aG5hbWUpfTt2YXIgX3JlbW92ZVRyYWlsaW5nU2xhc2g9X193ZWJwYWNrX3JlcXVpcmVfXyg0MDAxMiksX2FkZFBhdGhQcmVmaXg9X193ZWJwYWNrX3JlcXVpcmVfXyg0NDEzNSksX2FkZFBhdGhTdWZmaXg9X193ZWJwYWNrX3JlcXVpcmVfXyg5NjA3NCksX2FkZExvY2FsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDM0NDQxKX0sNjc3OTU6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuZm9ybWF0VXJsPWZvcm1hdFVybCxleHBvcnRzLmZvcm1hdFdpdGhWYWxpZGF0aW9uPWZ1bmN0aW9uKHVybCl7cmV0dXJuIGZvcm1hdFVybCh1cmwpfSxleHBvcnRzLnVybE9iamVjdEtleXM9dm9pZCAwO3ZhciBxdWVyeXN0cmluZz0oMCxfX3dlYnBhY2tfcmVxdWlyZV9fKDkxNTk4KS5aKShfX3dlYnBhY2tfcmVxdWlyZV9fKDk0OTE5KSk7bGV0IHNsYXNoZWRQcm90b2NvbHM9L2h0dHBzP3xmdHB8Z29waGVyfGZpbGUvO2Z1bmN0aW9uIGZvcm1hdFVybCh1cmxPYmope2xldHthdXRoLGhvc3RuYW1lfT11cmxPYmoscHJvdG9jb2w9dXJsT2JqLnByb3RvY29sfHwiIixwYXRobmFtZT11cmxPYmoucGF0aG5hbWV8fCIiLGhhc2g9dXJsT2JqLmhhc2h8fCIiLHF1ZXJ5PXVybE9iai5xdWVyeXx8IiIsaG9zdD0hMTthdXRoPWF1dGg/ZW5jb2RlVVJJQ29tcG9uZW50KGF1dGgpLnJlcGxhY2UoLyUzQS9pLCI6IikrIkAiOiIiLHVybE9iai5ob3N0P2hvc3Q9YXV0aCt1cmxPYmouaG9zdDpob3N0bmFtZSYmKGhvc3Q9YXV0aCsofmhvc3RuYW1lLmluZGV4T2YoIjoiKT8iWyIuY29uY2F0KGhvc3RuYW1lLCJdIik6aG9zdG5hbWUpLHVybE9iai5wb3J0JiYoaG9zdCs9IjoiK3VybE9iai5wb3J0KSkscXVlcnkmJiJvYmplY3QiPT10eXBlb2YgcXVlcnkmJihxdWVyeT1TdHJpbmcocXVlcnlzdHJpbmcudXJsUXVlcnlUb1NlYXJjaFBhcmFtcyhxdWVyeSkpKTtsZXQgc2VhcmNoPXVybE9iai5zZWFyY2h8fHF1ZXJ5JiYiPyIuY29uY2F0KHF1ZXJ5KXx8IiI7cmV0dXJuIHByb3RvY29sJiYhcHJvdG9jb2wuZW5kc1dpdGgoIjoiKSYmKHByb3RvY29sKz0iOiIpLHVybE9iai5zbGFzaGVzfHwoIXByb3RvY29sfHxzbGFzaGVkUHJvdG9jb2xzLnRlc3QocHJvdG9jb2wpKSYmITEhPT1ob3N0Pyhob3N0PSIvLyIrKGhvc3R8fCIiKSxwYXRobmFtZSYmIi8iIT09cGF0aG5hbWVbMF0mJihwYXRobmFtZT0iLyIrcGF0aG5hbWUpKTpob3N0fHwoaG9zdD0iIiksaGFzaCYmIiMiIT09aGFzaFswXSYmKGhhc2g9IiMiK2hhc2gpLHNlYXJjaCYmIj8iIT09c2VhcmNoWzBdJiYoc2VhcmNoPSI/IitzZWFyY2gpLHBhdGhuYW1lPXBhdGhuYW1lLnJlcGxhY2UoL1s/I10vZyxlbmNvZGVVUklDb21wb25lbnQpLHNlYXJjaD1zZWFyY2gucmVwbGFjZSgiIyIsIiUyMyIpLCIiLmNvbmNhdChwcm90b2NvbCkuY29uY2F0KGhvc3QpLmNvbmNhdChwYXRobmFtZSkuY29uY2F0KHNlYXJjaCkuY29uY2F0KGhhc2gpfWV4cG9ydHMudXJsT2JqZWN0S2V5cz1bImF1dGgiLCJoYXNoIiwiaG9zdCIsImhvc3RuYW1lIiwiaHJlZiIsInBhdGgiLCJwYXRobmFtZSIsInBvcnQiLCJwcm90b2NvbCIsInF1ZXJ5Iiwic2VhcmNoIiwic2xhc2hlcyJdfSwyNzkyOTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxleHBvcnRzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuZGVmYXVsdD1mdW5jdGlvbihyb3V0ZSl7bGV0IGV4dD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06IiIscGF0aD0iLyI9PT1yb3V0ZT8iL2luZGV4IjovXlwvaW5kZXgoXC98JCkvLnRlc3Qocm91dGUpPyIvaW5kZXgiLmNvbmNhdChyb3V0ZSk6IiIuY29uY2F0KHJvdXRlKTtyZXR1cm4gcGF0aCtleHR9fSwxODc1NjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxleHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5nZXROZXh0UGF0aG5hbWVJbmZvPWZ1bmN0aW9uKHBhdGhuYW1lLG9wdGlvbnMpe3ZhciBfbmV4dENvbmZpZztsZXR7YmFzZVBhdGgsaTE4bix0cmFpbGluZ1NsYXNofT1udWxsIT0oX25leHRDb25maWc9b3B0aW9ucy5uZXh0Q29uZmlnKT9fbmV4dENvbmZpZzp7fSxpbmZvPXtwYXRobmFtZTpwYXRobmFtZSx0cmFpbGluZ1NsYXNoOiIvIiE9PXBhdGhuYW1lP3BhdGhuYW1lLmVuZHNXaXRoKCIvIik6dHJhaWxpbmdTbGFzaH07aWYoYmFzZVBhdGgmJl9wYXRoSGFzUHJlZml4LnBhdGhIYXNQcmVmaXgoaW5mby5wYXRobmFtZSxiYXNlUGF0aCkmJihpbmZvLnBhdGhuYW1lPV9yZW1vdmVQYXRoUHJlZml4LnJlbW92ZVBhdGhQcmVmaXgoaW5mby5wYXRobmFtZSxiYXNlUGF0aCksaW5mby5iYXNlUGF0aD1iYXNlUGF0aCksITA9PT1vcHRpb25zLnBhcnNlRGF0YSYmaW5mby5wYXRobmFtZS5zdGFydHNXaXRoKCIvX25leHQvZGF0YS8iKSYmaW5mby5wYXRobmFtZS5lbmRzV2l0aCgiLmpzb24iKSl7bGV0IHBhdGhzPWluZm8ucGF0aG5hbWUucmVwbGFjZSgvXlwvX25leHRcL2RhdGFcLy8sIiIpLnJlcGxhY2UoL1wuanNvbiQvLCIiKS5zcGxpdCgiLyIpLGJ1aWxkSWQ9cGF0aHNbMF07aW5mby5wYXRobmFtZT0iaW5kZXgiIT09cGF0aHNbMV0/Ii8iLmNvbmNhdChwYXRocy5zbGljZSgxKS5qb2luKCIvIikpOiIvIixpbmZvLmJ1aWxkSWQ9YnVpbGRJZH1pZihpMThuKXtsZXQgcGF0aExvY2FsZT1fbm9ybWFsaXplTG9jYWxlUGF0aC5ub3JtYWxpemVMb2NhbGVQYXRoKGluZm8ucGF0aG5hbWUsaTE4bi5sb2NhbGVzKTtpbmZvLmxvY2FsZT1udWxsPT1wYXRoTG9jYWxlP3ZvaWQgMDpwYXRoTG9jYWxlLmRldGVjdGVkTG9jYWxlLGluZm8ucGF0aG5hbWU9KG51bGw9PXBhdGhMb2NhbGU/dm9pZCAwOnBhdGhMb2NhbGUucGF0aG5hbWUpfHxpbmZvLnBhdGhuYW1lfXJldHVybiBpbmZvfTt2YXIgX25vcm1hbGl6ZUxvY2FsZVBhdGg9X193ZWJwYWNrX3JlcXVpcmVfXygyNDc2OSksX3JlbW92ZVBhdGhQcmVmaXg9X193ZWJwYWNrX3JlcXVpcmVfXygyMjY1MCksX3BhdGhIYXNQcmVmaXg9X193ZWJwYWNrX3JlcXVpcmVfXyg5MzIxMCl9LDE4NTg4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiZ2V0U29ydGVkUm91dGVzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gX3NvcnRlZFJvdXRlcy5nZXRTb3J0ZWRSb3V0ZXN9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsImlzRHluYW1pY1JvdXRlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gX2lzRHluYW1pYy5pc0R5bmFtaWNSb3V0ZX19KTt2YXIgX3NvcnRlZFJvdXRlcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDMwNTY2KSxfaXNEeW5hbWljPV9fd2VicGFja19yZXF1aXJlX18oODYyMzgpfSwyMTc1NDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxleHBvcnRzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuaXNCb3Q9ZnVuY3Rpb24odXNlckFnZW50KXtyZXR1cm4vR29vZ2xlYm90fE1lZGlhcGFydG5lcnMtR29vZ2xlfEFkc0JvdC1Hb29nbGV8Z29vZ2xld2VibGlnaHR8U3RvcmVib3QtR29vZ2xlfEdvb2dsZS1QYWdlUmVuZGVyZXJ8QmluZ2JvdHxCaW5nUHJldmlld3xTbHVycHxEdWNrRHVja0JvdHxiYWlkdXNwaWRlcnx5YW5kZXh8c29nb3V8TGlua2VkSW5Cb3R8Yml0bHlib3R8dHVtYmxyfHZrU2hhcmV8cXVvcmEgbGluayBwcmV2aWV3fGZhY2Vib29rZXh0ZXJuYWxoaXR8ZmFjZWJvb2tjYXRhbG9nfFR3aXR0ZXJib3R8YXBwbGVib3R8cmVkZGl0Ym90fFNsYWNrYm90fERpc2NvcmRib3R8V2hhdHNBcHB8U2t5cGVVcmlQcmV2aWV3fGlhX2FyY2hpdmVyL2kudGVzdCh1c2VyQWdlbnQpfX0sODYyMzg6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxleHBvcnRzLmlzRHluYW1pY1JvdXRlPWZ1bmN0aW9uKHJvdXRlKXtyZXR1cm4gVEVTVF9ST1VURS50ZXN0KHJvdXRlKX07bGV0IFRFU1RfUk9VVEU9L1wvXFtbXi9dKz9cXSg/PVwvfCQpL30sMjY3Mjc6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxleHBvcnRzLnBhcnNlUGF0aD1mdW5jdGlvbihwYXRoKXtsZXQgaGFzaEluZGV4PXBhdGguaW5kZXhPZigiIyIpLHF1ZXJ5SW5kZXg9cGF0aC5pbmRleE9mKCI/IiksaGFzUXVlcnk9cXVlcnlJbmRleD4tMSYmKGhhc2hJbmRleDwwfHxxdWVyeUluZGV4PGhhc2hJbmRleCk7cmV0dXJuIGhhc1F1ZXJ5fHxoYXNoSW5kZXg+LTE/e3BhdGhuYW1lOnBhdGguc3Vic3RyaW5nKDAsaGFzUXVlcnk/cXVlcnlJbmRleDpoYXNoSW5kZXgpLHF1ZXJ5Omhhc1F1ZXJ5P3BhdGguc3Vic3RyaW5nKHF1ZXJ5SW5kZXgsaGFzaEluZGV4Pi0xP2hhc2hJbmRleDp2b2lkIDApOiIiLGhhc2g6aGFzaEluZGV4Pi0xP3BhdGguc2xpY2UoaGFzaEluZGV4KToiIn06e3BhdGhuYW1lOnBhdGgscXVlcnk6IiIsaGFzaDoiIn19fSwyMjg2NDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxleHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5wYXJzZVJlbGF0aXZlVXJsPWZ1bmN0aW9uKHVybCxiYXNlKXtsZXQgZ2xvYmFsQmFzZT1uZXcgVVJMKF91dGlscy5nZXRMb2NhdGlvbk9yaWdpbigpKSxyZXNvbHZlZEJhc2U9YmFzZT9uZXcgVVJMKGJhc2UsZ2xvYmFsQmFzZSk6dXJsLnN0YXJ0c1dpdGgoIi4iKT9uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTpnbG9iYWxCYXNlLHtwYXRobmFtZSxzZWFyY2hQYXJhbXMsc2VhcmNoLGhhc2gsaHJlZixvcmlnaW59PW5ldyBVUkwodXJsLHJlc29sdmVkQmFzZSk7aWYob3JpZ2luIT09Z2xvYmFsQmFzZS5vcmlnaW4pdGhyb3cgRXJyb3IoImludmFyaWFudDogaW52YWxpZCByZWxhdGl2ZSBVUkwsIHJvdXRlciByZWNlaXZlZCAiLmNvbmNhdCh1cmwpKTtyZXR1cm57cGF0aG5hbWUscXVlcnk6X3F1ZXJ5c3RyaW5nLnNlYXJjaFBhcmFtc1RvVXJsUXVlcnkoc2VhcmNoUGFyYW1zKSxzZWFyY2gsaGFzaCxocmVmOmhyZWYuc2xpY2UoZ2xvYmFsQmFzZS5vcmlnaW4ubGVuZ3RoKX19O3ZhciBfdXRpbHM9X193ZWJwYWNrX3JlcXVpcmVfXyg2NzApLF9xdWVyeXN0cmluZz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk0OTE5KX0sOTcyNTM6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMucGFyc2VVcmw9ZnVuY3Rpb24odXJsKXtpZih1cmwuc3RhcnRzV2l0aCgiLyIpKXJldHVybiBfcGFyc2VSZWxhdGl2ZVVybC5wYXJzZVJlbGF0aXZlVXJsKHVybCk7bGV0IHBhcnNlZFVSTD1uZXcgVVJMKHVybCk7cmV0dXJue2hhc2g6cGFyc2VkVVJMLmhhc2gsaG9zdG5hbWU6cGFyc2VkVVJMLmhvc3RuYW1lLGhyZWY6cGFyc2VkVVJMLmhyZWYscGF0aG5hbWU6cGFyc2VkVVJMLnBhdGhuYW1lLHBvcnQ6cGFyc2VkVVJMLnBvcnQscHJvdG9jb2w6cGFyc2VkVVJMLnByb3RvY29sLHF1ZXJ5Ol9xdWVyeXN0cmluZy5zZWFyY2hQYXJhbXNUb1VybFF1ZXJ5KHBhcnNlZFVSTC5zZWFyY2hQYXJhbXMpLHNlYXJjaDpwYXJzZWRVUkwuc2VhcmNofX07dmFyIF9xdWVyeXN0cmluZz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk0OTE5KSxfcGFyc2VSZWxhdGl2ZVVybD1fX3dlYnBhY2tfcmVxdWlyZV9fKDIyODY0KX0sOTMyMTA6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMucGF0aEhhc1ByZWZpeD1mdW5jdGlvbihwYXRoLHByZWZpeCl7aWYoInN0cmluZyIhPXR5cGVvZiBwYXRoKXJldHVybiExO2xldHtwYXRobmFtZX09X3BhcnNlUGF0aC5wYXJzZVBhdGgocGF0aCk7cmV0dXJuIHBhdGhuYW1lPT09cHJlZml4fHxwYXRobmFtZS5zdGFydHNXaXRoKHByZWZpeCsiLyIpfTt2YXIgX3BhcnNlUGF0aD1fX3dlYnBhY2tfcmVxdWlyZV9fKDI2NzI3KX0sNzcxMjc6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuZ2V0UGF0aE1hdGNoPWZ1bmN0aW9uKHBhdGgsb3B0aW9ucyl7bGV0IGtleXM9W10scmVnZXhwPV9wYXRoVG9SZWdleHAucGF0aFRvUmVnZXhwKHBhdGgsa2V5cyx7ZGVsaW1pdGVyOiIvIixzZW5zaXRpdmU6ITEsc3RyaWN0Om51bGw9PW9wdGlvbnM/dm9pZCAwOm9wdGlvbnMuc3RyaWN0fSksbWF0Y2hlcj1fcGF0aFRvUmVnZXhwLnJlZ2V4cFRvRnVuY3Rpb24oKG51bGw9PW9wdGlvbnM/dm9pZCAwOm9wdGlvbnMucmVnZXhNb2RpZmllcik/UmVnRXhwKG9wdGlvbnMucmVnZXhNb2RpZmllcihyZWdleHAuc291cmNlKSxyZWdleHAuZmxhZ3MpOnJlZ2V4cCxrZXlzKTtyZXR1cm4ocGF0aG5hbWUscGFyYW1zKT0+e2xldCByZXM9bnVsbCE9cGF0aG5hbWUmJm1hdGNoZXIocGF0aG5hbWUpO2lmKCFyZXMpcmV0dXJuITE7aWYobnVsbD09b3B0aW9ucz92b2lkIDA6b3B0aW9ucy5yZW1vdmVVbm5hbWVkUGFyYW1zKWZvcihsZXQga2V5IG9mIGtleXMpIm51bWJlciI9PXR5cGVvZiBrZXkubmFtZSYmZGVsZXRlIHJlcy5wYXJhbXNba2V5Lm5hbWVdO3JldHVybiBfZXh0ZW5kcyh7fSxwYXJhbXMscmVzLnBhcmFtcyl9fTt2YXIgX2V4dGVuZHM9X193ZWJwYWNrX3JlcXVpcmVfXyg2NDk1KS5aLF9wYXRoVG9SZWdleHA9X193ZWJwYWNrX3JlcXVpcmVfXyg3NDMyOSl9LDY3MzI3OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxleHBvcnRzLm1hdGNoSGFzPWZ1bmN0aW9uKHJlcSxxdWVyeSl7bGV0IGhhcz1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06W10sbWlzc2luZz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106W10scGFyYW1zPXt9LGhhc01hdGNoPWhhc0l0ZW09PntsZXQgdmFsdWU7bGV0IGtleT1oYXNJdGVtLmtleTtzd2l0Y2goaGFzSXRlbS50eXBlKXtjYXNlImhlYWRlciI6a2V5PWtleS50b0xvd2VyQ2FzZSgpLHZhbHVlPXJlcS5oZWFkZXJzW2tleV07YnJlYWs7Y2FzZSJjb29raWUiOnZhbHVlPXJlcS5jb29raWVzW2hhc0l0ZW0ua2V5XTticmVhaztjYXNlInF1ZXJ5Ijp2YWx1ZT1xdWVyeVtrZXldO2JyZWFrO2Nhc2UiaG9zdCI6e2xldHtob3N0fT0obnVsbD09cmVxP3ZvaWQgMDpyZXEuaGVhZGVycyl8fHt9LGhvc3RuYW1lPW51bGw9PWhvc3Q/dm9pZCAwOmhvc3Quc3BsaXQoIjoiKVswXS50b0xvd2VyQ2FzZSgpO3ZhbHVlPWhvc3RuYW1lfX1pZighaGFzSXRlbS52YWx1ZSYmdmFsdWUpcmV0dXJuIHBhcmFtc1tmdW5jdGlvbihwYXJhbU5hbWUpe2xldCBuZXdQYXJhbU5hbWU9IiI7Zm9yKGxldCBpPTA7aTxwYXJhbU5hbWUubGVuZ3RoO2krKyl7bGV0IGNoYXJDb2RlPXBhcmFtTmFtZS5jaGFyQ29kZUF0KGkpOyhjaGFyQ29kZT42NCYmY2hhckNvZGU8OTF8fGNoYXJDb2RlPjk2JiZjaGFyQ29kZTwxMjMpJiYobmV3UGFyYW1OYW1lKz1wYXJhbU5hbWVbaV0pfXJldHVybiBuZXdQYXJhbU5hbWV9KGtleSldPXZhbHVlLCEwO2lmKHZhbHVlKXtsZXQgbWF0Y2hlcj1SZWdFeHAoIl4iLmNvbmNhdChoYXNJdGVtLnZhbHVlLCIkIikpLG1hdGNoZXM9QXJyYXkuaXNBcnJheSh2YWx1ZSk/dmFsdWUuc2xpY2UoLTEpWzBdLm1hdGNoKG1hdGNoZXIpOnZhbHVlLm1hdGNoKG1hdGNoZXIpO2lmKG1hdGNoZXMpcmV0dXJuIEFycmF5LmlzQXJyYXkobWF0Y2hlcykmJihtYXRjaGVzLmdyb3Vwcz9PYmplY3Qua2V5cyhtYXRjaGVzLmdyb3VwcykuZm9yRWFjaChncm91cEtleT0+e3BhcmFtc1tncm91cEtleV09bWF0Y2hlcy5ncm91cHNbZ3JvdXBLZXldfSk6Imhvc3QiPT09aGFzSXRlbS50eXBlJiZtYXRjaGVzWzBdJiYocGFyYW1zLmhvc3Q9bWF0Y2hlc1swXSkpLCEwfXJldHVybiExfSxhbGxNYXRjaD1oYXMuZXZlcnkoaXRlbT0+aGFzTWF0Y2goaXRlbSkpJiYhbWlzc2luZy5zb21lKGl0ZW09Pmhhc01hdGNoKGl0ZW0pKTtyZXR1cm4hIWFsbE1hdGNoJiZwYXJhbXN9LGV4cG9ydHMuY29tcGlsZU5vblBhdGg9Y29tcGlsZU5vblBhdGgsZXhwb3J0cy5wcmVwYXJlRGVzdGluYXRpb249ZnVuY3Rpb24oYXJncyl7bGV0IG5ld1VybDtsZXQgcXVlcnk9T2JqZWN0LmFzc2lnbih7fSxhcmdzLnF1ZXJ5KTtkZWxldGUgcXVlcnkuX19uZXh0TG9jYWxlLGRlbGV0ZSBxdWVyeS5fX25leHREZWZhdWx0TG9jYWxlLGRlbGV0ZSBxdWVyeS5fX25leHREYXRhUmVxO2xldCBlc2NhcGVkRGVzdGluYXRpb249YXJncy5kZXN0aW5hdGlvbjtmb3IobGV0IHBhcmFtIG9mIE9iamVjdC5rZXlzKF9leHRlbmRzKHt9LGFyZ3MucGFyYW1zLHF1ZXJ5KSkpe3ZhciBzdHIsc2VnbWVudE5hbWU7c3RyPWVzY2FwZWREZXN0aW5hdGlvbixzZWdtZW50TmFtZT1wYXJhbSxlc2NhcGVkRGVzdGluYXRpb249c3RyLnJlcGxhY2UoUmVnRXhwKCI6Ii5jb25jYXQoX2VzY2FwZVJlZ2V4cC5lc2NhcGVTdHJpbmdSZWdleHAoc2VnbWVudE5hbWUpKSwiZyIpLCJfX0VTQ19DT0xPTl8iLmNvbmNhdChzZWdtZW50TmFtZSkpfWxldCBwYXJzZWREZXN0aW5hdGlvbj1fcGFyc2VVcmwucGFyc2VVcmwoZXNjYXBlZERlc3RpbmF0aW9uKSxkZXN0UXVlcnk9cGFyc2VkRGVzdGluYXRpb24ucXVlcnksZGVzdFBhdGg9dW5lc2NhcGVTZWdtZW50cygiIi5jb25jYXQocGFyc2VkRGVzdGluYXRpb24ucGF0aG5hbWUpLmNvbmNhdChwYXJzZWREZXN0aW5hdGlvbi5oYXNofHwiIikpLGRlc3RIb3N0bmFtZT11bmVzY2FwZVNlZ21lbnRzKHBhcnNlZERlc3RpbmF0aW9uLmhvc3RuYW1lfHwiIiksZGVzdFBhdGhQYXJhbUtleXM9W10sZGVzdEhvc3RuYW1lUGFyYW1LZXlzPVtdO19wYXRoVG9SZWdleHAucGF0aFRvUmVnZXhwKGRlc3RQYXRoLGRlc3RQYXRoUGFyYW1LZXlzKSxfcGF0aFRvUmVnZXhwLnBhdGhUb1JlZ2V4cChkZXN0SG9zdG5hbWUsZGVzdEhvc3RuYW1lUGFyYW1LZXlzKTtsZXQgZGVzdFBhcmFtcz1bXTtkZXN0UGF0aFBhcmFtS2V5cy5mb3JFYWNoKGtleT0+ZGVzdFBhcmFtcy5wdXNoKGtleS5uYW1lKSksZGVzdEhvc3RuYW1lUGFyYW1LZXlzLmZvckVhY2goa2V5PT5kZXN0UGFyYW1zLnB1c2goa2V5Lm5hbWUpKTtsZXQgZGVzdFBhdGhDb21waWxlcj1fcGF0aFRvUmVnZXhwLmNvbXBpbGUoZGVzdFBhdGgse3ZhbGlkYXRlOiExfSksZGVzdEhvc3RuYW1lQ29tcGlsZXI9X3BhdGhUb1JlZ2V4cC5jb21waWxlKGRlc3RIb3N0bmFtZSx7dmFsaWRhdGU6ITF9KTtmb3IobGV0W2tleTEsc3RyT3JBcnJheV1vZiBPYmplY3QuZW50cmllcyhkZXN0UXVlcnkpKUFycmF5LmlzQXJyYXkoc3RyT3JBcnJheSk/ZGVzdFF1ZXJ5W2tleTFdPXN0ck9yQXJyYXkubWFwKHZhbHVlPT5jb21waWxlTm9uUGF0aCh1bmVzY2FwZVNlZ21lbnRzKHZhbHVlKSxhcmdzLnBhcmFtcykpOiJzdHJpbmciPT10eXBlb2Ygc3RyT3JBcnJheSYmKGRlc3RRdWVyeVtrZXkxXT1jb21waWxlTm9uUGF0aCh1bmVzY2FwZVNlZ21lbnRzKHN0ck9yQXJyYXkpLGFyZ3MucGFyYW1zKSk7bGV0IHBhcmFtS2V5cz1PYmplY3Qua2V5cyhhcmdzLnBhcmFtcykuZmlsdGVyKG5hbWU9PiJuZXh0SW50ZXJuYWxMb2NhbGUiIT09bmFtZSk7aWYoYXJncy5hcHBlbmRQYXJhbXNUb1F1ZXJ5JiYhcGFyYW1LZXlzLnNvbWUoa2V5PT5kZXN0UGFyYW1zLmluY2x1ZGVzKGtleSkpKWZvcihsZXQga2V5IG9mIHBhcmFtS2V5cylrZXkgaW4gZGVzdFF1ZXJ5fHwoZGVzdFF1ZXJ5W2tleV09YXJncy5wYXJhbXNba2V5XSk7dHJ5e25ld1VybD1kZXN0UGF0aENvbXBpbGVyKGFyZ3MucGFyYW1zKTtsZXRbcGF0aG5hbWUsaGFzaF09bmV3VXJsLnNwbGl0KCIjIik7cGFyc2VkRGVzdGluYXRpb24uaG9zdG5hbWU9ZGVzdEhvc3RuYW1lQ29tcGlsZXIoYXJncy5wYXJhbXMpLHBhcnNlZERlc3RpbmF0aW9uLnBhdGhuYW1lPXBhdGhuYW1lLHBhcnNlZERlc3RpbmF0aW9uLmhhc2g9IiIuY29uY2F0KGhhc2g/IiMiOiIiKS5jb25jYXQoaGFzaHx8IiIpLGRlbGV0ZSBwYXJzZWREZXN0aW5hdGlvbi5zZWFyY2h9Y2F0Y2goZXJyKXtpZihlcnIubWVzc2FnZS5tYXRjaCgvRXhwZWN0ZWQgLio/IHRvIG5vdCByZXBlYXQsIGJ1dCBnb3QgYW4gYXJyYXkvKSl0aHJvdyBFcnJvcigiVG8gdXNlIGEgbXVsdGktbWF0Y2ggaW4gdGhlIGRlc3RpbmF0aW9uIHlvdSBtdXN0IGFkZCBgKmAgYXQgdGhlIGVuZCBvZiB0aGUgcGFyYW0gbmFtZSB0byBzaWduaWZ5IGl0IHNob3VsZCByZXBlYXQuIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2ludmFsaWQtbXVsdGktbWF0Y2giKTt0aHJvdyBlcnJ9cmV0dXJuIHBhcnNlZERlc3RpbmF0aW9uLnF1ZXJ5PV9leHRlbmRzKHt9LHF1ZXJ5LHBhcnNlZERlc3RpbmF0aW9uLnF1ZXJ5KSx7bmV3VXJsLGRlc3RRdWVyeSxwYXJzZWREZXN0aW5hdGlvbn19O3ZhciBfZXh0ZW5kcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY0OTUpLlosX3BhdGhUb1JlZ2V4cD1fX3dlYnBhY2tfcmVxdWlyZV9fKDc0MzI5KSxfZXNjYXBlUmVnZXhwPV9fd2VicGFja19yZXF1aXJlX18oMTg2NTkpLF9wYXJzZVVybD1fX3dlYnBhY2tfcmVxdWlyZV9fKDk3MjUzKTtmdW5jdGlvbiB1bmVzY2FwZVNlZ21lbnRzKHN0cil7cmV0dXJuIHN0ci5yZXBsYWNlKC9fX0VTQ19DT0xPTl8vZ2ksIjoiKX1mdW5jdGlvbiBjb21waWxlTm9uUGF0aCh2YWx1ZSxwYXJhbXMpe2lmKCF2YWx1ZS5pbmNsdWRlcygiOiIpKXJldHVybiB2YWx1ZTtmb3IobGV0IGtleSBvZiBPYmplY3Qua2V5cyhwYXJhbXMpKXZhbHVlLmluY2x1ZGVzKCI6Ii5jb25jYXQoa2V5KSkmJih2YWx1ZT12YWx1ZS5yZXBsYWNlKFJlZ0V4cCgiOiIuY29uY2F0KGtleSwiXFwqIiksImciKSwiOiIuY29uY2F0KGtleSwiLS1FU0NBUEVEX1BBUkFNX0FTVEVSSVNLUyIpKS5yZXBsYWNlKFJlZ0V4cCgiOiIuY29uY2F0KGtleSwiXFw/IiksImciKSwiOiIuY29uY2F0KGtleSwiLS1FU0NBUEVEX1BBUkFNX1FVRVNUSU9OIikpLnJlcGxhY2UoUmVnRXhwKCI6Ii5jb25jYXQoa2V5LCJcXCsiKSwiZyIpLCI6Ii5jb25jYXQoa2V5LCItLUVTQ0FQRURfUEFSQU1fUExVUyIpKS5yZXBsYWNlKFJlZ0V4cCgiOiIuY29uY2F0KGtleSwiKD8hXFx3KSIpLCJnIiksIi0tRVNDQVBFRF9QQVJBTV9DT0xPTiIuY29uY2F0KGtleSkpKTtyZXR1cm4gdmFsdWU9dmFsdWUucmVwbGFjZSgvKDp8XCp8XD98XCt8XCh8XCl8XHt8XH0pL2csIlxcJDEiKS5yZXBsYWNlKC8tLUVTQ0FQRURfUEFSQU1fUExVUy9nLCIrIikucmVwbGFjZSgvLS1FU0NBUEVEX1BBUkFNX0NPTE9OL2csIjoiKS5yZXBsYWNlKC8tLUVTQ0FQRURfUEFSQU1fUVVFU1RJT04vZywiPyIpLnJlcGxhY2UoLy0tRVNDQVBFRF9QQVJBTV9BU1RFUklTS1MvZywiKiIpLF9wYXRoVG9SZWdleHAuY29tcGlsZSgiLyIuY29uY2F0KHZhbHVlKSx7dmFsaWRhdGU6ITF9KShwYXJhbXMpLnNsaWNlKDEpfX0sOTQ5MTk6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0ocGFyYW0pe3JldHVybiJzdHJpbmciIT10eXBlb2YgcGFyYW0mJigibnVtYmVyIiE9dHlwZW9mIHBhcmFtfHxpc05hTihwYXJhbSkpJiYiYm9vbGVhbiIhPXR5cGVvZiBwYXJhbT8iIjpTdHJpbmcocGFyYW0pfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxleHBvcnRzLnNlYXJjaFBhcmFtc1RvVXJsUXVlcnk9ZnVuY3Rpb24oc2VhcmNoUGFyYW1zKXtsZXQgcXVlcnk9e307cmV0dXJuIHNlYXJjaFBhcmFtcy5mb3JFYWNoKCh2YWx1ZSxrZXkpPT57dm9pZCAwPT09cXVlcnlba2V5XT9xdWVyeVtrZXldPXZhbHVlOkFycmF5LmlzQXJyYXkocXVlcnlba2V5XSk/cXVlcnlba2V5XS5wdXNoKHZhbHVlKTpxdWVyeVtrZXldPVtxdWVyeVtrZXldLHZhbHVlXX0pLHF1ZXJ5fSxleHBvcnRzLnVybFF1ZXJ5VG9TZWFyY2hQYXJhbXM9ZnVuY3Rpb24odXJsUXVlcnkpe2xldCByZXN1bHQ9bmV3IFVSTFNlYXJjaFBhcmFtcztyZXR1cm4gT2JqZWN0LmVudHJpZXModXJsUXVlcnkpLmZvckVhY2gocGFyYW09PntsZXRba2V5LHZhbHVlXT1wYXJhbTtBcnJheS5pc0FycmF5KHZhbHVlKT92YWx1ZS5mb3JFYWNoKGl0ZW09PnJlc3VsdC5hcHBlbmQoa2V5LHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0oaXRlbSkpKTpyZXN1bHQuc2V0KGtleSxzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKHZhbHVlKSl9KSxyZXN1bHR9LGV4cG9ydHMuYXNzaWduPWZ1bmN0aW9uKHRhcmdldCl7Zm9yKHZhciBfbGVuPWFyZ3VtZW50cy5sZW5ndGgsc2VhcmNoUGFyYW1zTGlzdD1BcnJheShfbGVuPjE/X2xlbi0xOjApLF9rZXk9MTtfa2V5PF9sZW47X2tleSsrKXNlYXJjaFBhcmFtc0xpc3RbX2tleS0xXT1hcmd1bWVudHNbX2tleV07cmV0dXJuIHNlYXJjaFBhcmFtc0xpc3QuZm9yRWFjaChzZWFyY2hQYXJhbXM9PntBcnJheS5mcm9tKHNlYXJjaFBhcmFtcy5rZXlzKCkpLmZvckVhY2goa2V5PT50YXJnZXQuZGVsZXRlKGtleSkpLHNlYXJjaFBhcmFtcy5mb3JFYWNoKCh2YWx1ZSxrZXkpPT50YXJnZXQuYXBwZW5kKGtleSx2YWx1ZSkpfSksdGFyZ2V0fX0sMjI2NTA6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMucmVtb3ZlUGF0aFByZWZpeD1mdW5jdGlvbihwYXRoLHByZWZpeCl7aWYoX3BhdGhIYXNQcmVmaXgucGF0aEhhc1ByZWZpeChwYXRoLHByZWZpeCkpe2xldCB3aXRob3V0UHJlZml4PXBhdGguc2xpY2UocHJlZml4Lmxlbmd0aCk7cmV0dXJuIHdpdGhvdXRQcmVmaXguc3RhcnRzV2l0aCgiLyIpP3dpdGhvdXRQcmVmaXg6Ii8iLmNvbmNhdCh3aXRob3V0UHJlZml4KX1yZXR1cm4gcGF0aH07dmFyIF9wYXRoSGFzUHJlZml4PV9fd2VicGFja19yZXF1aXJlX18oOTMyMTApfSw0MDAxMjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxleHBvcnRzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMucmVtb3ZlVHJhaWxpbmdTbGFzaD1mdW5jdGlvbihyb3V0ZSl7cmV0dXJuIHJvdXRlLnJlcGxhY2UoL1wvJC8sIiIpfHwiLyJ9fSwyNzk4MDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxleHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5kZWZhdWx0PWZ1bmN0aW9uKGFzUGF0aCxwYWdlcyxyZXdyaXRlcyxxdWVyeSxyZXNvbHZlSHJlZixsb2NhbGVzKXtsZXQgcmVzb2x2ZWRIcmVmLG1hdGNoZWRQYWdlPSExLGV4dGVybmFsRGVzdD0hMSxwYXJzZWRBcz1fcGFyc2VSZWxhdGl2ZVVybC5wYXJzZVJlbGF0aXZlVXJsKGFzUGF0aCksZnNQYXRobmFtZT1fcmVtb3ZlVHJhaWxpbmdTbGFzaC5yZW1vdmVUcmFpbGluZ1NsYXNoKF9ub3JtYWxpemVMb2NhbGVQYXRoLm5vcm1hbGl6ZUxvY2FsZVBhdGgoX3JlbW92ZUJhc2VQYXRoLnJlbW92ZUJhc2VQYXRoKHBhcnNlZEFzLnBhdGhuYW1lKSxsb2NhbGVzKS5wYXRobmFtZSksaGFuZGxlUmV3cml0ZT1yZXdyaXRlPT57bGV0IG1hdGNoZXI9X3BhdGhNYXRjaC5nZXRQYXRoTWF0Y2gocmV3cml0ZS5zb3VyY2UrIiIse3JlbW92ZVVubmFtZWRQYXJhbXM6ITAsc3RyaWN0OiEwfSkscGFyYW1zPW1hdGNoZXIocGFyc2VkQXMucGF0aG5hbWUpO2lmKChyZXdyaXRlLmhhc3x8cmV3cml0ZS5taXNzaW5nKSYmcGFyYW1zKXtsZXQgaGFzUGFyYW1zPV9wcmVwYXJlRGVzdGluYXRpb24ubWF0Y2hIYXMoe2hlYWRlcnM6e2hvc3Q6ZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWV9LGNvb2tpZXM6ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7ICIpLnJlZHVjZSgoYWNjLGl0ZW0pPT57bGV0W2tleSwuLi52YWx1ZV09aXRlbS5zcGxpdCgiPSIpO3JldHVybiBhY2Nba2V5XT12YWx1ZS5qb2luKCI9IiksYWNjfSx7fSl9LHBhcnNlZEFzLnF1ZXJ5LHJld3JpdGUuaGFzLHJld3JpdGUubWlzc2luZyk7aGFzUGFyYW1zP09iamVjdC5hc3NpZ24ocGFyYW1zLGhhc1BhcmFtcyk6cGFyYW1zPSExfWlmKHBhcmFtcyl7aWYoIXJld3JpdGUuZGVzdGluYXRpb24pcmV0dXJuIGV4dGVybmFsRGVzdD0hMCwhMDtsZXQgZGVzdFJlcz1fcHJlcGFyZURlc3RpbmF0aW9uLnByZXBhcmVEZXN0aW5hdGlvbih7YXBwZW5kUGFyYW1zVG9RdWVyeTohMCxkZXN0aW5hdGlvbjpyZXdyaXRlLmRlc3RpbmF0aW9uLHBhcmFtczpwYXJhbXMscXVlcnk6cXVlcnl9KTtpZihwYXJzZWRBcz1kZXN0UmVzLnBhcnNlZERlc3RpbmF0aW9uLGFzUGF0aD1kZXN0UmVzLm5ld1VybCxPYmplY3QuYXNzaWduKHF1ZXJ5LGRlc3RSZXMucGFyc2VkRGVzdGluYXRpb24ucXVlcnkpLGZzUGF0aG5hbWU9X3JlbW92ZVRyYWlsaW5nU2xhc2gucmVtb3ZlVHJhaWxpbmdTbGFzaChfbm9ybWFsaXplTG9jYWxlUGF0aC5ub3JtYWxpemVMb2NhbGVQYXRoKF9yZW1vdmVCYXNlUGF0aC5yZW1vdmVCYXNlUGF0aChhc1BhdGgpLGxvY2FsZXMpLnBhdGhuYW1lKSxwYWdlcy5pbmNsdWRlcyhmc1BhdGhuYW1lKSlyZXR1cm4gbWF0Y2hlZFBhZ2U9ITAscmVzb2x2ZWRIcmVmPWZzUGF0aG5hbWUsITA7aWYoKHJlc29sdmVkSHJlZj1yZXNvbHZlSHJlZihmc1BhdGhuYW1lKSkhPT1hc1BhdGgmJnBhZ2VzLmluY2x1ZGVzKHJlc29sdmVkSHJlZikpcmV0dXJuIG1hdGNoZWRQYWdlPSEwLCEwfX0sZmluaXNoZWQ9ITE7Zm9yKGxldCBpPTA7aTxyZXdyaXRlcy5iZWZvcmVGaWxlcy5sZW5ndGg7aSsrKWhhbmRsZVJld3JpdGUocmV3cml0ZXMuYmVmb3JlRmlsZXNbaV0pO2lmKCEobWF0Y2hlZFBhZ2U9cGFnZXMuaW5jbHVkZXMoZnNQYXRobmFtZSkpKXtpZighZmluaXNoZWQpe2ZvcihsZXQgaTE9MDtpMTxyZXdyaXRlcy5hZnRlckZpbGVzLmxlbmd0aDtpMSsrKWlmKGhhbmRsZVJld3JpdGUocmV3cml0ZXMuYWZ0ZXJGaWxlc1tpMV0pKXtmaW5pc2hlZD0hMDticmVha319aWYoZmluaXNoZWR8fChyZXNvbHZlZEhyZWY9cmVzb2x2ZUhyZWYoZnNQYXRobmFtZSksZmluaXNoZWQ9bWF0Y2hlZFBhZ2U9cGFnZXMuaW5jbHVkZXMocmVzb2x2ZWRIcmVmKSksIWZpbmlzaGVkKXtmb3IobGV0IGkyPTA7aTI8cmV3cml0ZXMuZmFsbGJhY2subGVuZ3RoO2kyKyspaWYoaGFuZGxlUmV3cml0ZShyZXdyaXRlcy5mYWxsYmFja1tpMl0pKXtmaW5pc2hlZD0hMDticmVha319fXJldHVybnthc1BhdGgscGFyc2VkQXMsbWF0Y2hlZFBhZ2UscmVzb2x2ZWRIcmVmLGV4dGVybmFsRGVzdH19O3ZhciBfcGF0aE1hdGNoPV9fd2VicGFja19yZXF1aXJlX18oNzcxMjcpLF9wcmVwYXJlRGVzdGluYXRpb249X193ZWJwYWNrX3JlcXVpcmVfXyg2NzMyNyksX3JlbW92ZVRyYWlsaW5nU2xhc2g9X193ZWJwYWNrX3JlcXVpcmVfXyg0MDAxMiksX25vcm1hbGl6ZUxvY2FsZVBhdGg9X193ZWJwYWNrX3JlcXVpcmVfXygyNDc2OSksX3JlbW92ZUJhc2VQYXRoPV9fd2VicGFja19yZXF1aXJlX18oODI4MTMpLF9wYXJzZVJlbGF0aXZlVXJsPV9fd2VicGFja19yZXF1aXJlX18oMjI4NjQpfSwxMzE1NjpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxleHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5nZXRSb3V0ZU1hdGNoZXI9ZnVuY3Rpb24ocGFyYW0pe2xldHtyZSxncm91cHN9PXBhcmFtO3JldHVybiBwYXRobmFtZT0+e2xldCByb3V0ZU1hdGNoPXJlLmV4ZWMocGF0aG5hbWUpO2lmKCFyb3V0ZU1hdGNoKXJldHVybiExO2xldCBkZWNvZGU9cGFyYW09Pnt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChwYXJhbSl9Y2F0Y2goXyl7dGhyb3cgbmV3IF91dGlscy5EZWNvZGVFcnJvcigiZmFpbGVkIHRvIGRlY29kZSBwYXJhbSIpfX0scGFyYW1zPXt9O3JldHVybiBPYmplY3Qua2V5cyhncm91cHMpLmZvckVhY2goc2x1Z05hbWU9PntsZXQgZz1ncm91cHNbc2x1Z05hbWVdLG09cm91dGVNYXRjaFtnLnBvc107dm9pZCAwIT09bSYmKHBhcmFtc1tzbHVnTmFtZV09fm0uaW5kZXhPZigiLyIpP20uc3BsaXQoIi8iKS5tYXAoZW50cnk9PmRlY29kZShlbnRyeSkpOmcucmVwZWF0P1tkZWNvZGUobSldOmRlY29kZShtKSl9KSxwYXJhbXN9fTt2YXIgX3V0aWxzPV9fd2VicGFja19yZXF1aXJlX18oNjcwKX0sNTQ5MDM6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuZ2V0Um91dGVSZWdleD1nZXRSb3V0ZVJlZ2V4LGV4cG9ydHMuZ2V0TmFtZWRSb3V0ZVJlZ2V4PWZ1bmN0aW9uKG5vcm1hbGl6ZWRSb3V0ZSl7bGV0IHJlc3VsdD1nZXROYW1lZFBhcmFtZXRyaXplZFJvdXRlKG5vcm1hbGl6ZWRSb3V0ZSk7cmV0dXJuIF9leHRlbmRzKHt9LGdldFJvdXRlUmVnZXgobm9ybWFsaXplZFJvdXRlKSx7bmFtZWRSZWdleDoiXiIuY29uY2F0KHJlc3VsdC5uYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZSwiKD86Lyk/JCIpLHJvdXRlS2V5czpyZXN1bHQucm91dGVLZXlzfSl9LGV4cG9ydHMuZ2V0TmFtZWRNaWRkbGV3YXJlUmVnZXg9ZnVuY3Rpb24obm9ybWFsaXplZFJvdXRlLG9wdGlvbnMpe2xldHtwYXJhbWV0ZXJpemVkUm91dGV9PWdldFBhcmFtZXRyaXplZFJvdXRlKG5vcm1hbGl6ZWRSb3V0ZSkse2NhdGNoQWxsPSEwfT1vcHRpb25zO2lmKCIvIj09PXBhcmFtZXRlcml6ZWRSb3V0ZSlyZXR1cm57bmFtZWRSZWdleDoiXi8iLmNvbmNhdChjYXRjaEFsbD8iLioiOiIiLCIkIil9O2xldHtuYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZX09Z2V0TmFtZWRQYXJhbWV0cml6ZWRSb3V0ZShub3JtYWxpemVkUm91dGUpO3JldHVybntuYW1lZFJlZ2V4OiJeIi5jb25jYXQobmFtZWRQYXJhbWV0ZXJpemVkUm91dGUpLmNvbmNhdChjYXRjaEFsbD8iKD86KC8uKik/KSI6IiIsIiQiKX19O3ZhciBfZXh0ZW5kcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY0OTUpLlosX2VzY2FwZVJlZ2V4cD1fX3dlYnBhY2tfcmVxdWlyZV9fKDE4NjU5KSxfcmVtb3ZlVHJhaWxpbmdTbGFzaD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQwMDEyKTtmdW5jdGlvbiBwYXJzZVBhcmFtZXRlcihwYXJhbSl7bGV0IG9wdGlvbmFsPXBhcmFtLnN0YXJ0c1dpdGgoIlsiKSYmcGFyYW0uZW5kc1dpdGgoIl0iKTtvcHRpb25hbCYmKHBhcmFtPXBhcmFtLnNsaWNlKDEsLTEpKTtsZXQgcmVwZWF0PXBhcmFtLnN0YXJ0c1dpdGgoIi4uLiIpO3JldHVybiByZXBlYXQmJihwYXJhbT1wYXJhbS5zbGljZSgzKSkse2tleTpwYXJhbSxyZXBlYXQsb3B0aW9uYWx9fWZ1bmN0aW9uIGdldFBhcmFtZXRyaXplZFJvdXRlKHJvdXRlKXtsZXQgc2VnbWVudHM9X3JlbW92ZVRyYWlsaW5nU2xhc2gucmVtb3ZlVHJhaWxpbmdTbGFzaChyb3V0ZSkuc2xpY2UoMSkuc3BsaXQoIi8iKSxncm91cHM9e30sZ3JvdXBJbmRleD0xO3JldHVybntwYXJhbWV0ZXJpemVkUm91dGU6c2VnbWVudHMubWFwKHNlZ21lbnQ9PntpZighKHNlZ21lbnQuc3RhcnRzV2l0aCgiWyIpJiZzZWdtZW50LmVuZHNXaXRoKCJdIikpKXJldHVybiIvIi5jb25jYXQoX2VzY2FwZVJlZ2V4cC5lc2NhcGVTdHJpbmdSZWdleHAoc2VnbWVudCkpO3tsZXR7a2V5LG9wdGlvbmFsLHJlcGVhdH09cGFyc2VQYXJhbWV0ZXIoc2VnbWVudC5zbGljZSgxLC0xKSk7cmV0dXJuIGdyb3Vwc1trZXldPXtwb3M6Z3JvdXBJbmRleCsrLHJlcGVhdCxvcHRpb25hbH0scmVwZWF0P29wdGlvbmFsPyIoPzovKC4rPykpPyI6Ii8oLis/KSI6Ii8oW14vXSs/KSJ9fSkuam9pbigiIiksZ3JvdXBzfX1mdW5jdGlvbiBnZXRSb3V0ZVJlZ2V4KG5vcm1hbGl6ZWRSb3V0ZSl7bGV0e3BhcmFtZXRlcml6ZWRSb3V0ZSxncm91cHN9PWdldFBhcmFtZXRyaXplZFJvdXRlKG5vcm1hbGl6ZWRSb3V0ZSk7cmV0dXJue3JlOlJlZ0V4cCgiXiIuY29uY2F0KHBhcmFtZXRlcml6ZWRSb3V0ZSwiKD86Lyk/JCIpKSxncm91cHM6Z3JvdXBzfX1mdW5jdGlvbiBnZXROYW1lZFBhcmFtZXRyaXplZFJvdXRlKHJvdXRlKXtsZXQgcm91dGVLZXlDaGFyQ29kZSxyb3V0ZUtleUNoYXJMZW5ndGg7bGV0IHNlZ21lbnRzPV9yZW1vdmVUcmFpbGluZ1NsYXNoLnJlbW92ZVRyYWlsaW5nU2xhc2gocm91dGUpLnNsaWNlKDEpLnNwbGl0KCIvIiksZ2V0U2FmZVJvdXRlS2V5PShyb3V0ZUtleUNoYXJDb2RlPTk3LHJvdXRlS2V5Q2hhckxlbmd0aD0xLCgpPT57bGV0IHJvdXRlS2V5PSIiO2ZvcihsZXQgaT0wO2k8cm91dGVLZXlDaGFyTGVuZ3RoO2krKylyb3V0ZUtleSs9U3RyaW5nLmZyb21DaGFyQ29kZShyb3V0ZUtleUNoYXJDb2RlKSwrK3JvdXRlS2V5Q2hhckNvZGU+MTIyJiYocm91dGVLZXlDaGFyTGVuZ3RoKysscm91dGVLZXlDaGFyQ29kZT05Nyk7cmV0dXJuIHJvdXRlS2V5fSkscm91dGVLZXlzPXt9O3JldHVybntuYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZTpzZWdtZW50cy5tYXAoc2VnbWVudD0+e2lmKCEoc2VnbWVudC5zdGFydHNXaXRoKCJbIikmJnNlZ21lbnQuZW5kc1dpdGgoIl0iKSkpcmV0dXJuIi8iLmNvbmNhdChfZXNjYXBlUmVnZXhwLmVzY2FwZVN0cmluZ1JlZ2V4cChzZWdtZW50KSk7e2xldHtrZXksb3B0aW9uYWwscmVwZWF0fT1wYXJzZVBhcmFtZXRlcihzZWdtZW50LnNsaWNlKDEsLTEpKSxjbGVhbmVkS2V5PWtleS5yZXBsYWNlKC9cVy9nLCIiKSxpbnZhbGlkS2V5PSExO3JldHVybigwPT09Y2xlYW5lZEtleS5sZW5ndGh8fGNsZWFuZWRLZXkubGVuZ3RoPjMwKSYmKGludmFsaWRLZXk9ITApLGlzTmFOKHBhcnNlSW50KGNsZWFuZWRLZXkuc2xpY2UoMCwxKSkpfHwoaW52YWxpZEtleT0hMCksaW52YWxpZEtleSYmKGNsZWFuZWRLZXk9Z2V0U2FmZVJvdXRlS2V5KCkpLHJvdXRlS2V5c1tjbGVhbmVkS2V5XT1rZXkscmVwZWF0P29wdGlvbmFsPyIoPzovKD88Ii5jb25jYXQoY2xlYW5lZEtleSwiPi4rPykpPyIpOiIvKD88Ii5jb25jYXQoY2xlYW5lZEtleSwiPi4rPykiKToiLyg/PCIuY29uY2F0KGNsZWFuZWRLZXksIj5bXi9dKz8pIil9fSkuam9pbigiIikscm91dGVLZXlzfX19LDMwNTY2OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5nZXRTb3J0ZWRSb3V0ZXM9ZnVuY3Rpb24obm9ybWFsaXplZFBhZ2VzKXtsZXQgcm9vdD1uZXcgVXJsTm9kZTtyZXR1cm4gbm9ybWFsaXplZFBhZ2VzLmZvckVhY2gocGFnZVBhdGg9PnJvb3QuaW5zZXJ0KHBhZ2VQYXRoKSkscm9vdC5zbW9vc2goKX07Y2xhc3MgVXJsTm9kZXtpbnNlcnQodXJsUGF0aCl7dGhpcy5faW5zZXJ0KHVybFBhdGguc3BsaXQoIi8iKS5maWx0ZXIoQm9vbGVhbiksW10sITEpfXNtb29zaCgpe3JldHVybiB0aGlzLl9zbW9vc2goKX1fc21vb3NoKCl7bGV0IHByZWZpeD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06Ii8iLGNoaWxkcmVuUGF0aHM9Wy4uLnRoaXMuY2hpbGRyZW4ua2V5cygpXS5zb3J0KCk7bnVsbCE9PXRoaXMuc2x1Z05hbWUmJmNoaWxkcmVuUGF0aHMuc3BsaWNlKGNoaWxkcmVuUGF0aHMuaW5kZXhPZigiW10iKSwxKSxudWxsIT09dGhpcy5yZXN0U2x1Z05hbWUmJmNoaWxkcmVuUGF0aHMuc3BsaWNlKGNoaWxkcmVuUGF0aHMuaW5kZXhPZigiWy4uLl0iKSwxKSxudWxsIT09dGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSYmY2hpbGRyZW5QYXRocy5zcGxpY2UoY2hpbGRyZW5QYXRocy5pbmRleE9mKCJbWy4uLl1dIiksMSk7bGV0IHJvdXRlcz1jaGlsZHJlblBhdGhzLm1hcChjPT50aGlzLmNoaWxkcmVuLmdldChjKS5fc21vb3NoKCIiLmNvbmNhdChwcmVmaXgpLmNvbmNhdChjLCIvIikpKS5yZWR1Y2UoKHByZXYsY3Vycik9PlsuLi5wcmV2LC4uLmN1cnJdLFtdKTtpZihudWxsIT09dGhpcy5zbHVnTmFtZSYmcm91dGVzLnB1c2goLi4udGhpcy5jaGlsZHJlbi5nZXQoIltdIikuX3Ntb29zaCgiIi5jb25jYXQocHJlZml4LCJbIikuY29uY2F0KHRoaXMuc2x1Z05hbWUsIl0vIikpKSwhdGhpcy5wbGFjZWhvbGRlcil7bGV0IHI9Ii8iPT09cHJlZml4PyIvIjpwcmVmaXguc2xpY2UoMCwtMSk7aWYobnVsbCE9dGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSl0aHJvdyBFcnJvcignWW91IGNhbm5vdCBkZWZpbmUgYSByb3V0ZSB3aXRoIHRoZSBzYW1lIHNwZWNpZmljaXR5IGFzIGEgb3B0aW9uYWwgY2F0Y2gtYWxsIHJvdXRlICgiJy5jb25jYXQociwnIiBhbmQgIicpLmNvbmNhdChyLCJbWy4uLiIpLmNvbmNhdCh0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lLCddXSIpLicpKTtyb3V0ZXMudW5zaGlmdChyKX1yZXR1cm4gbnVsbCE9PXRoaXMucmVzdFNsdWdOYW1lJiZyb3V0ZXMucHVzaCguLi50aGlzLmNoaWxkcmVuLmdldCgiWy4uLl0iKS5fc21vb3NoKCIiLmNvbmNhdChwcmVmaXgsIlsuLi4iKS5jb25jYXQodGhpcy5yZXN0U2x1Z05hbWUsIl0vIikpKSxudWxsIT09dGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSYmcm91dGVzLnB1c2goLi4udGhpcy5jaGlsZHJlbi5nZXQoIltbLi4uXV0iKS5fc21vb3NoKCIiLmNvbmNhdChwcmVmaXgsIltbLi4uIikuY29uY2F0KHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUsIl1dLyIpKSkscm91dGVzfV9pbnNlcnQodXJsUGF0aHMsc2x1Z05hbWVzLGlzQ2F0Y2hBbGwpe2lmKDA9PT11cmxQYXRocy5sZW5ndGgpe3RoaXMucGxhY2Vob2xkZXI9ITE7cmV0dXJufWlmKGlzQ2F0Y2hBbGwpdGhyb3cgRXJyb3IoIkNhdGNoLWFsbCBtdXN0IGJlIHRoZSBsYXN0IHBhcnQgb2YgdGhlIFVSTC4iKTtsZXQgbmV4dFNlZ21lbnQ9dXJsUGF0aHNbMF07aWYobmV4dFNlZ21lbnQuc3RhcnRzV2l0aCgiWyIpJiZuZXh0U2VnbWVudC5lbmRzV2l0aCgiXSIpKXtsZXQgc2VnbWVudE5hbWU9bmV4dFNlZ21lbnQuc2xpY2UoMSwtMSksaXNPcHRpb25hbD0hMTtpZihzZWdtZW50TmFtZS5zdGFydHNXaXRoKCJbIikmJnNlZ21lbnROYW1lLmVuZHNXaXRoKCJdIikmJihzZWdtZW50TmFtZT1zZWdtZW50TmFtZS5zbGljZSgxLC0xKSxpc09wdGlvbmFsPSEwKSxzZWdtZW50TmFtZS5zdGFydHNXaXRoKCIuLi4iKSYmKHNlZ21lbnROYW1lPXNlZ21lbnROYW1lLnN1YnN0cmluZygzKSxpc0NhdGNoQWxsPSEwKSxzZWdtZW50TmFtZS5zdGFydHNXaXRoKCJbIil8fHNlZ21lbnROYW1lLmVuZHNXaXRoKCJdIikpdGhyb3cgRXJyb3IoIlNlZ21lbnQgbmFtZXMgbWF5IG5vdCBzdGFydCBvciBlbmQgd2l0aCBleHRyYSBicmFja2V0cyAoJyIuY29uY2F0KHNlZ21lbnROYW1lLCInKS4iKSk7aWYoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgiLiIpKXRocm93IEVycm9yKCJTZWdtZW50IG5hbWVzIG1heSBub3Qgc3RhcnQgd2l0aCBlcnJvbmVvdXMgcGVyaW9kcyAoJyIuY29uY2F0KHNlZ21lbnROYW1lLCInKS4iKSk7ZnVuY3Rpb24gaGFuZGxlU2x1ZyhwcmV2aW91c1NsdWcsbmV4dFNsdWcpe2lmKG51bGwhPT1wcmV2aW91c1NsdWcmJnByZXZpb3VzU2x1ZyE9PW5leHRTbHVnKXRocm93IEVycm9yKCJZb3UgY2Fubm90IHVzZSBkaWZmZXJlbnQgc2x1ZyBuYW1lcyBmb3IgdGhlIHNhbWUgZHluYW1pYyBwYXRoICgnIi5jb25jYXQocHJldmlvdXNTbHVnLCInICE9PSAnIikuY29uY2F0KG5leHRTbHVnLCInKS4iKSk7c2x1Z05hbWVzLmZvckVhY2goc2x1Zz0+e2lmKHNsdWc9PT1uZXh0U2x1Zyl0aHJvdyBFcnJvcignWW91IGNhbm5vdCBoYXZlIHRoZSBzYW1lIHNsdWcgbmFtZSAiJy5jb25jYXQobmV4dFNsdWcsJyIgcmVwZWF0IHdpdGhpbiBhIHNpbmdsZSBkeW5hbWljIHBhdGgnKSk7aWYoc2x1Zy5yZXBsYWNlKC9cVy9nLCIiKT09PW5leHRTZWdtZW50LnJlcGxhY2UoL1xXL2csIiIpKXRocm93IEVycm9yKCdZb3UgY2Fubm90IGhhdmUgdGhlIHNsdWcgbmFtZXMgIicuY29uY2F0KHNsdWcsJyIgYW5kICInKS5jb25jYXQobmV4dFNsdWcsJyIgZGlmZmVyIG9ubHkgYnkgbm9uLXdvcmQgc3ltYm9scyB3aXRoaW4gYSBzaW5nbGUgZHluYW1pYyBwYXRoJykpfSksc2x1Z05hbWVzLnB1c2gobmV4dFNsdWcpfWlmKGlzQ2F0Y2hBbGwpe2lmKGlzT3B0aW9uYWwpe2lmKG51bGwhPXRoaXMucmVzdFNsdWdOYW1lKXRocm93IEVycm9yKCdZb3UgY2Fubm90IHVzZSBib3RoIGFuIHJlcXVpcmVkIGFuZCBvcHRpb25hbCBjYXRjaC1hbGwgcm91dGUgYXQgdGhlIHNhbWUgbGV2ZWwgKCJbLi4uJy5jb25jYXQodGhpcy5yZXN0U2x1Z05hbWUsJ10iIGFuZCAiJykuY29uY2F0KHVybFBhdGhzWzBdLCciICkuJykpO2hhbmRsZVNsdWcodGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSxzZWdtZW50TmFtZSksdGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZT1zZWdtZW50TmFtZSxuZXh0U2VnbWVudD0iW1suLi5dXSJ9ZWxzZXtpZihudWxsIT10aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lKXRocm93IEVycm9yKCdZb3UgY2Fubm90IHVzZSBib3RoIGFuIG9wdGlvbmFsIGFuZCByZXF1aXJlZCBjYXRjaC1hbGwgcm91dGUgYXQgdGhlIHNhbWUgbGV2ZWwgKCJbWy4uLicuY29uY2F0KHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUsJ11dIiBhbmQgIicpLmNvbmNhdCh1cmxQYXRoc1swXSwnIikuJykpO2hhbmRsZVNsdWcodGhpcy5yZXN0U2x1Z05hbWUsc2VnbWVudE5hbWUpLHRoaXMucmVzdFNsdWdOYW1lPXNlZ21lbnROYW1lLG5leHRTZWdtZW50PSJbLi4uXSJ9fWVsc2V7aWYoaXNPcHRpb25hbCl0aHJvdyBFcnJvcignT3B0aW9uYWwgcm91dGUgcGFyYW1ldGVycyBhcmUgbm90IHlldCBzdXBwb3J0ZWQgKCInLmNvbmNhdCh1cmxQYXRoc1swXSwnIikuJykpO2hhbmRsZVNsdWcodGhpcy5zbHVnTmFtZSxzZWdtZW50TmFtZSksdGhpcy5zbHVnTmFtZT1zZWdtZW50TmFtZSxuZXh0U2VnbWVudD0iW10ifX10aGlzLmNoaWxkcmVuLmhhcyhuZXh0U2VnbWVudCl8fHRoaXMuY2hpbGRyZW4uc2V0KG5leHRTZWdtZW50LG5ldyBVcmxOb2RlKSx0aGlzLmNoaWxkcmVuLmdldChuZXh0U2VnbWVudCkuX2luc2VydCh1cmxQYXRocy5zbGljZSgxKSxzbHVnTmFtZXMsaXNDYXRjaEFsbCl9Y29uc3RydWN0b3IoKXt0aGlzLnBsYWNlaG9sZGVyPSEwLHRoaXMuY2hpbGRyZW49bmV3IE1hcCx0aGlzLnNsdWdOYW1lPW51bGwsdGhpcy5yZXN0U2x1Z05hbWU9bnVsbCx0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lPW51bGx9fX0sODY5NDk6ZnVuY3Rpb24obW9kdWxlLGV4cG9ydHMpeyJ1c2Ugc3RyaWN0IjtsZXQgcnVudGltZUNvbmZpZztPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5zZXRDb25maWc9ZnVuY3Rpb24oY29uZmlnVmFsdWUpe3J1bnRpbWVDb25maWc9Y29uZmlnVmFsdWV9LGV4cG9ydHMuZGVmYXVsdD12b2lkIDAsZXhwb3J0cy5kZWZhdWx0PSgpPT5ydW50aW1lQ29uZmlnLCgiZnVuY3Rpb24iPT10eXBlb2YgZXhwb3J0cy5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMuZGVmYXVsdCYmbnVsbCE9PWV4cG9ydHMuZGVmYXVsdCkmJnZvaWQgMD09PWV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsZXhwb3J0cyksbW9kdWxlLmV4cG9ydHM9ZXhwb3J0cy5kZWZhdWx0KX0sMzE0MzY6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuZGVmYXVsdD1mdW5jdGlvbihwcm9wcyl7bGV0e2hlYWRNYW5hZ2VyLHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlfT1wcm9wcztmdW5jdGlvbiBlbWl0Q2hhbmdlKCl7aWYoaGVhZE1hbmFnZXImJmhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXMpe2xldCBoZWFkRWxlbWVudHM9X3JlYWN0LkNoaWxkcmVuLnRvQXJyYXkoQXJyYXkuZnJvbShoZWFkTWFuYWdlci5tb3VudGVkSW5zdGFuY2VzKS5maWx0ZXIoQm9vbGVhbikpO2hlYWRNYW5hZ2VyLnVwZGF0ZUhlYWQocmVkdWNlQ29tcG9uZW50c1RvU3RhdGUoaGVhZEVsZW1lbnRzLHByb3BzKSl9fWlmKGlzU2VydmVyKXt2YXIgcmVmO251bGw9PWhlYWRNYW5hZ2VyfHxudWxsPT0ocmVmPWhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXMpfHxyZWYuYWRkKHByb3BzLmNoaWxkcmVuKSxlbWl0Q2hhbmdlKCl9cmV0dXJuIHVzZUNsaWVudE9ubHlMYXlvdXRFZmZlY3QoKCk9Pnt2YXIgcmVmMTtyZXR1cm4gbnVsbD09aGVhZE1hbmFnZXJ8fG51bGw9PShyZWYxPWhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXMpfHxyZWYxLmFkZChwcm9wcy5jaGlsZHJlbiksKCk9Pnt2YXIgcmVmO251bGw9PWhlYWRNYW5hZ2VyfHxudWxsPT0ocmVmPWhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXMpfHxyZWYuZGVsZXRlKHByb3BzLmNoaWxkcmVuKX19KSx1c2VDbGllbnRPbmx5TGF5b3V0RWZmZWN0KCgpPT4oaGVhZE1hbmFnZXImJihoZWFkTWFuYWdlci5fcGVuZGluZ1VwZGF0ZT1lbWl0Q2hhbmdlKSwoKT0+e2hlYWRNYW5hZ2VyJiYoaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGU9ZW1pdENoYW5nZSl9KSksdXNlQ2xpZW50T25seUVmZmVjdCgoKT0+KGhlYWRNYW5hZ2VyJiZoZWFkTWFuYWdlci5fcGVuZGluZ1VwZGF0ZSYmKGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlKCksaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGU9bnVsbCksKCk9PntoZWFkTWFuYWdlciYmaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUmJihoZWFkTWFuYWdlci5fcGVuZGluZ1VwZGF0ZSgpLGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlPW51bGwpfSkpLG51bGx9O3ZhciBfcmVhY3Q9KDAsX193ZWJwYWNrX3JlcXVpcmVfXyg5MTU5OCkuWikoX193ZWJwYWNrX3JlcXVpcmVfXyg2NzI5NCkpO2xldCBpc1NlcnZlcj0hMSx1c2VDbGllbnRPbmx5TGF5b3V0RWZmZWN0PWlzU2VydmVyPygpPT57fTpfcmVhY3QudXNlTGF5b3V0RWZmZWN0LHVzZUNsaWVudE9ubHlFZmZlY3Q9aXNTZXJ2ZXI/KCk9Pnt9Ol9yZWFjdC51c2VFZmZlY3R9LDY3MDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxleHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy5leGVjT25jZT1mdW5jdGlvbihmbil7bGV0IHJlc3VsdCx1c2VkPSExO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgX2xlbj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbiksX2tleT0wO19rZXk8X2xlbjtfa2V5KyspYXJnc1tfa2V5XT1hcmd1bWVudHNbX2tleV07cmV0dXJuIHVzZWR8fCh1c2VkPSEwLHJlc3VsdD1mbiguLi5hcmdzKSkscmVzdWx0fX0sZXhwb3J0cy5nZXRMb2NhdGlvbk9yaWdpbj1nZXRMb2NhdGlvbk9yaWdpbixleHBvcnRzLmdldFVSTD1mdW5jdGlvbigpe2xldHtocmVmfT13aW5kb3cubG9jYXRpb24sb3JpZ2luPWdldExvY2F0aW9uT3JpZ2luKCk7cmV0dXJuIGhyZWYuc3Vic3RyaW5nKG9yaWdpbi5sZW5ndGgpfSxleHBvcnRzLmdldERpc3BsYXlOYW1lPWdldERpc3BsYXlOYW1lLGV4cG9ydHMuaXNSZXNTZW50PWlzUmVzU2VudCxleHBvcnRzLm5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcz1mdW5jdGlvbih1cmwpe2xldCB1cmxQYXJ0cz11cmwuc3BsaXQoIj8iKSx1cmxOb1F1ZXJ5PXVybFBhcnRzWzBdO3JldHVybiB1cmxOb1F1ZXJ5LnJlcGxhY2UoL1xcL2csIi8iKS5yZXBsYWNlKC9cL1wvKy9nLCIvIikrKHVybFBhcnRzWzFdPyI/Ii5jb25jYXQodXJsUGFydHMuc2xpY2UoMSkuam9pbigiPyIpKToiIil9LGV4cG9ydHMubG9hZEdldEluaXRpYWxQcm9wcz1sb2FkR2V0SW5pdGlhbFByb3BzLGV4cG9ydHMuU1Q9ZXhwb3J0cy5TUD1leHBvcnRzLmlzQWJzb2x1dGVVcmw9ZXhwb3J0cy5XRUJfVklUQUxTPXZvaWQgMDt2YXIgX2FzeW5jX3RvX2dlbmVyYXRvcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDYwOTMyKS5aO2V4cG9ydHMuV0VCX1ZJVEFMUz1bIkNMUyIsIkZDUCIsIkZJRCIsIklOUCIsIkxDUCIsIlRURkIiXTtsZXQgQUJTT0xVVEVfVVJMX1JFR0VYPS9eW2EtekEtWl1bYS16QS1aXGQrXC0uXSo/Oi8saXNBYnNvbHV0ZVVybD11cmw9PkFCU09MVVRFX1VSTF9SRUdFWC50ZXN0KHVybCk7ZnVuY3Rpb24gZ2V0TG9jYXRpb25PcmlnaW4oKXtsZXR7cHJvdG9jb2wsaG9zdG5hbWUscG9ydH09d2luZG93LmxvY2F0aW9uO3JldHVybiIiLmNvbmNhdChwcm90b2NvbCwiLy8iKS5jb25jYXQoaG9zdG5hbWUpLmNvbmNhdChwb3J0PyI6Iitwb3J0OiIiKX1mdW5jdGlvbiBnZXREaXNwbGF5TmFtZShDb21wb25lbnQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgQ29tcG9uZW50P0NvbXBvbmVudDpDb21wb25lbnQuZGlzcGxheU5hbWV8fENvbXBvbmVudC5uYW1lfHwiVW5rbm93biJ9ZnVuY3Rpb24gaXNSZXNTZW50KHJlcyl7cmV0dXJuIHJlcy5maW5pc2hlZHx8cmVzLmhlYWRlcnNTZW50fWZ1bmN0aW9uIGxvYWRHZXRJbml0aWFsUHJvcHMoQXBwLGN0eCl7cmV0dXJuIF9sb2FkR2V0SW5pdGlhbFByb3BzLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBfbG9hZEdldEluaXRpYWxQcm9wcygpe3JldHVybihfbG9hZEdldEluaXRpYWxQcm9wcz1fYXN5bmNfdG9fZ2VuZXJhdG9yKGZ1bmN0aW9uKihBcHAsY3R4KXtsZXQgcmVzPWN0eC5yZXN8fGN0eC5jdHgmJmN0eC5jdHgucmVzO2lmKCFBcHAuZ2V0SW5pdGlhbFByb3BzKXJldHVybiBjdHguY3R4JiZjdHguQ29tcG9uZW50P3twYWdlUHJvcHM6eWllbGQgbG9hZEdldEluaXRpYWxQcm9wcyhjdHguQ29tcG9uZW50LGN0eC5jdHgpfTp7fTtsZXQgcHJvcHM9eWllbGQgQXBwLmdldEluaXRpYWxQcm9wcyhjdHgpO2lmKHJlcyYmaXNSZXNTZW50KHJlcykpcmV0dXJuIHByb3BzO2lmKCFwcm9wcyl7bGV0IG1lc3NhZ2UxPSciJy5jb25jYXQoZ2V0RGlzcGxheU5hbWUoQXBwKSwnLmdldEluaXRpYWxQcm9wcygpIiBzaG91bGQgcmVzb2x2ZSB0byBhbiBvYmplY3QuIEJ1dCBmb3VuZCAiJykuY29uY2F0KHByb3BzLCciIGluc3RlYWQuJyk7dGhyb3cgRXJyb3IobWVzc2FnZTEpfXJldHVybiBwcm9wc30pKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZXhwb3J0cy5pc0Fic29sdXRlVXJsPWlzQWJzb2x1dGVVcmw7bGV0IFNQPSJ1bmRlZmluZWQiIT10eXBlb2YgcGVyZm9ybWFuY2U7ZXhwb3J0cy5TUD1TUDtsZXQgU1Q9U1AmJlsibWFyayIsIm1lYXN1cmUiLCJnZXRFbnRyaWVzQnlOYW1lIl0uZXZlcnkobWV0aG9kPT4iZnVuY3Rpb24iPT10eXBlb2YgcGVyZm9ybWFuY2VbbWV0aG9kXSk7ZXhwb3J0cy5TVD1TVCxleHBvcnRzLkRlY29kZUVycm9yPWNsYXNzIGV4dGVuZHMgRXJyb3J7fSxleHBvcnRzLk5vcm1hbGl6ZUVycm9yPWNsYXNzIGV4dGVuZHMgRXJyb3J7fSxleHBvcnRzLlBhZ2VOb3RGb3VuZEVycm9yPWNsYXNzIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IocGFnZSl7c3VwZXIoKSx0aGlzLmNvZGU9IkVOT0VOVCIsdGhpcy5tZXNzYWdlPSJDYW5ub3QgZmluZCBtb2R1bGUgZm9yIHBhZ2U6ICIuY29uY2F0KHBhZ2UpfX0sZXhwb3J0cy5NaXNzaW5nU3RhdGljUGFnZT1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHBhZ2UsbWVzc2FnZSl7c3VwZXIoKSx0aGlzLm1lc3NhZ2U9IkZhaWxlZCB0byBsb2FkIHN0YXRpYyBmaWxlIGZvciBwYWdlOiAiLmNvbmNhdChwYWdlLCIgIikuY29uY2F0KG1lc3NhZ2UpfX0sZXhwb3J0cy5NaWRkbGV3YXJlTm90Rm91bmRFcnJvcj1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmNvZGU9IkVOT0VOVCIsdGhpcy5tZXNzYWdlPSJDYW5ub3QgZmluZCB0aGUgbWlkZGxld2FyZSBtb2R1bGUifX19LDU3MjM4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZXhwb3J0cy53YXJuT25jZT12b2lkIDA7bGV0IHdhcm5PbmNlPV89Pnt9O2V4cG9ydHMud2Fybk9uY2U9d2Fybk9uY2V9LDc0MzI5OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBwYXJzZShzdHIsb3B0aW9ucyl7dm9pZCAwPT09b3B0aW9ucyYmKG9wdGlvbnM9e30pO2Zvcih2YXIgdG9rZW5zPWZ1bmN0aW9uKHN0cil7Zm9yKHZhciB0b2tlbnM9W10saT0wO2k8c3RyLmxlbmd0aDspe3ZhciBjaGFyPXN0cltpXTtpZigiKiI9PT1jaGFyfHwiKyI9PT1jaGFyfHwiPyI9PT1jaGFyKXt0b2tlbnMucHVzaCh7dHlwZToiTU9ESUZJRVIiLGluZGV4OmksdmFsdWU6c3RyW2krK119KTtjb250aW51ZX1pZigiXFwiPT09Y2hhcil7dG9rZW5zLnB1c2goe3R5cGU6IkVTQ0FQRURfQ0hBUiIsaW5kZXg6aSsrLHZhbHVlOnN0cltpKytdfSk7Y29udGludWV9aWYoInsiPT09Y2hhcil7dG9rZW5zLnB1c2goe3R5cGU6Ik9QRU4iLGluZGV4OmksdmFsdWU6c3RyW2krK119KTtjb250aW51ZX1pZigifSI9PT1jaGFyKXt0b2tlbnMucHVzaCh7dHlwZToiQ0xPU0UiLGluZGV4OmksdmFsdWU6c3RyW2krK119KTtjb250aW51ZX1pZigiOiI9PT1jaGFyKXtmb3IodmFyIG5hbWU9IiIsaj1pKzE7ajxzdHIubGVuZ3RoOyl7dmFyIGNvZGU9c3RyLmNoYXJDb2RlQXQoaik7aWYoY29kZT49NDgmJmNvZGU8PTU3fHxjb2RlPj02NSYmY29kZTw9OTB8fGNvZGU+PTk3JiZjb2RlPD0xMjJ8fDk1PT09Y29kZSl7bmFtZSs9c3RyW2orK107Y29udGludWV9YnJlYWt9aWYoIW5hbWUpdGhyb3cgVHlwZUVycm9yKCJNaXNzaW5nIHBhcmFtZXRlciBuYW1lIGF0ICIraSk7dG9rZW5zLnB1c2goe3R5cGU6Ik5BTUUiLGluZGV4OmksdmFsdWU6bmFtZX0pLGk9ajtjb250aW51ZX1pZigiKCI9PT1jaGFyKXt2YXIgY291bnQ9MSxwYXR0ZXJuPSIiLGo9aSsxO2lmKCI/Ij09PXN0cltqXSl0aHJvdyBUeXBlRXJyb3IoJ1BhdHRlcm4gY2Fubm90IHN0YXJ0IHdpdGggIj8iIGF0ICcraik7Zm9yKDtqPHN0ci5sZW5ndGg7KXtpZigiXFwiPT09c3RyW2pdKXtwYXR0ZXJuKz1zdHJbaisrXStzdHJbaisrXTtjb250aW51ZX1pZigiKSI9PT1zdHJbal0pe2lmKDA9PS0tY291bnQpe2orKzticmVha319ZWxzZSBpZigiKCI9PT1zdHJbal0mJihjb3VudCsrLCI/IiE9PXN0cltqKzFdKSl0aHJvdyBUeXBlRXJyb3IoIkNhcHR1cmluZyBncm91cHMgYXJlIG5vdCBhbGxvd2VkIGF0ICIraik7cGF0dGVybis9c3RyW2orK119aWYoY291bnQpdGhyb3cgVHlwZUVycm9yKCJVbmJhbGFuY2VkIHBhdHRlcm4gYXQgIitpKTtpZighcGF0dGVybil0aHJvdyBUeXBlRXJyb3IoIk1pc3NpbmcgcGF0dGVybiBhdCAiK2kpO3Rva2Vucy5wdXNoKHt0eXBlOiJQQVRURVJOIixpbmRleDppLHZhbHVlOnBhdHRlcm59KSxpPWo7Y29udGludWV9dG9rZW5zLnB1c2goe3R5cGU6IkNIQVIiLGluZGV4OmksdmFsdWU6c3RyW2krK119KX1yZXR1cm4gdG9rZW5zLnB1c2goe3R5cGU6IkVORCIsaW5kZXg6aSx2YWx1ZToiIn0pLHRva2Vuc30oc3RyKSxfYT1vcHRpb25zLnByZWZpeGVzLHByZWZpeGVzPXZvaWQgMD09PV9hPyIuLyI6X2EsZGVmYXVsdFBhdHRlcm49IlteIitlc2NhcGVTdHJpbmcob3B0aW9ucy5kZWxpbWl0ZXJ8fCIvIz8iKSsiXSs/IixyZXN1bHQ9W10sa2V5PTAsaT0wLHBhdGg9IiIsdHJ5Q29uc3VtZT1mdW5jdGlvbih0eXBlKXtpZihpPHRva2Vucy5sZW5ndGgmJnRva2Vuc1tpXS50eXBlPT09dHlwZSlyZXR1cm4gdG9rZW5zW2krK10udmFsdWV9LG11c3RDb25zdW1lPWZ1bmN0aW9uKHR5cGUpe3ZhciB2YWx1ZT10cnlDb25zdW1lKHR5cGUpO2lmKHZvaWQgMCE9PXZhbHVlKXJldHVybiB2YWx1ZTt2YXIgX2E9dG9rZW5zW2ldO3Rocm93IFR5cGVFcnJvcigiVW5leHBlY3RlZCAiK19hLnR5cGUrIiBhdCAiK19hLmluZGV4KyIsIGV4cGVjdGVkICIrdHlwZSl9LGNvbnN1bWVUZXh0PWZ1bmN0aW9uKCl7Zm9yKHZhciB2YWx1ZSxyZXN1bHQ9IiI7dmFsdWU9dHJ5Q29uc3VtZSgiQ0hBUiIpfHx0cnlDb25zdW1lKCJFU0NBUEVEX0NIQVIiKTspcmVzdWx0Kz12YWx1ZTtyZXR1cm4gcmVzdWx0fTtpPHRva2Vucy5sZW5ndGg7KXt2YXIgY2hhcj10cnlDb25zdW1lKCJDSEFSIiksbmFtZT10cnlDb25zdW1lKCJOQU1FIikscGF0dGVybj10cnlDb25zdW1lKCJQQVRURVJOIik7aWYobmFtZXx8cGF0dGVybil7dmFyIHByZWZpeD1jaGFyfHwiIjstMT09PXByZWZpeGVzLmluZGV4T2YocHJlZml4KSYmKHBhdGgrPXByZWZpeCxwcmVmaXg9IiIpLHBhdGgmJihyZXN1bHQucHVzaChwYXRoKSxwYXRoPSIiKSxyZXN1bHQucHVzaCh7bmFtZTpuYW1lfHxrZXkrKyxwcmVmaXg6cHJlZml4LHN1ZmZpeDoiIixwYXR0ZXJuOnBhdHRlcm58fGRlZmF1bHRQYXR0ZXJuLG1vZGlmaWVyOnRyeUNvbnN1bWUoIk1PRElGSUVSIil8fCIifSk7Y29udGludWV9dmFyIHZhbHVlPWNoYXJ8fHRyeUNvbnN1bWUoIkVTQ0FQRURfQ0hBUiIpO2lmKHZhbHVlKXtwYXRoKz12YWx1ZTtjb250aW51ZX1pZihwYXRoJiYocmVzdWx0LnB1c2gocGF0aCkscGF0aD0iIiksdHJ5Q29uc3VtZSgiT1BFTiIpKXt2YXIgcHJlZml4PWNvbnN1bWVUZXh0KCksbmFtZV8xPXRyeUNvbnN1bWUoIk5BTUUiKXx8IiIscGF0dGVybl8xPXRyeUNvbnN1bWUoIlBBVFRFUk4iKXx8IiIsc3VmZml4PWNvbnN1bWVUZXh0KCk7bXVzdENvbnN1bWUoIkNMT1NFIikscmVzdWx0LnB1c2goe25hbWU6bmFtZV8xfHwocGF0dGVybl8xP2tleSsrOiIiKSxwYXR0ZXJuOm5hbWVfMSYmIXBhdHRlcm5fMT9kZWZhdWx0UGF0dGVybjpwYXR0ZXJuXzEscHJlZml4OnByZWZpeCxzdWZmaXg6c3VmZml4LG1vZGlmaWVyOnRyeUNvbnN1bWUoIk1PRElGSUVSIil8fCIifSk7Y29udGludWV9bXVzdENvbnN1bWUoIkVORCIpfXJldHVybiByZXN1bHR9ZnVuY3Rpb24gdG9rZW5zVG9GdW5jdGlvbih0b2tlbnMsb3B0aW9ucyl7dm9pZCAwPT09b3B0aW9ucyYmKG9wdGlvbnM9e30pO3ZhciByZUZsYWdzPWZsYWdzKG9wdGlvbnMpLF9hPW9wdGlvbnMuZW5jb2RlLGVuY29kZT12b2lkIDA9PT1fYT9mdW5jdGlvbih4KXtyZXR1cm4geH06X2EsX2I9b3B0aW9ucy52YWxpZGF0ZSx2YWxpZGF0ZT12b2lkIDA9PT1fYnx8X2IsbWF0Y2hlcz10b2tlbnMubWFwKGZ1bmN0aW9uKHRva2VuKXtpZigib2JqZWN0Ij09dHlwZW9mIHRva2VuKXJldHVybiBSZWdFeHAoIl4oPzoiK3Rva2VuLnBhdHRlcm4rIikkIixyZUZsYWdzKX0pO3JldHVybiBmdW5jdGlvbihkYXRhKXtmb3IodmFyIHBhdGg9IiIsaT0wO2k8dG9rZW5zLmxlbmd0aDtpKyspe3ZhciB0b2tlbj10b2tlbnNbaV07aWYoInN0cmluZyI9PXR5cGVvZiB0b2tlbil7cGF0aCs9dG9rZW47Y29udGludWV9dmFyIHZhbHVlPWRhdGE/ZGF0YVt0b2tlbi5uYW1lXTp2b2lkIDAsb3B0aW9uYWw9Ij8iPT09dG9rZW4ubW9kaWZpZXJ8fCIqIj09PXRva2VuLm1vZGlmaWVyLHJlcGVhdD0iKiI9PT10b2tlbi5tb2RpZmllcnx8IisiPT09dG9rZW4ubW9kaWZpZXI7aWYoQXJyYXkuaXNBcnJheSh2YWx1ZSkpe2lmKCFyZXBlYXQpdGhyb3cgVHlwZUVycm9yKCdFeHBlY3RlZCAiJyt0b2tlbi5uYW1lKyciIHRvIG5vdCByZXBlYXQsIGJ1dCBnb3QgYW4gYXJyYXknKTtpZigwPT09dmFsdWUubGVuZ3RoKXtpZihvcHRpb25hbCljb250aW51ZTt0aHJvdyBUeXBlRXJyb3IoJ0V4cGVjdGVkICInK3Rva2VuLm5hbWUrJyIgdG8gbm90IGJlIGVtcHR5Jyl9Zm9yKHZhciBqPTA7ajx2YWx1ZS5sZW5ndGg7aisrKXt2YXIgc2VnbWVudD1lbmNvZGUodmFsdWVbal0sdG9rZW4pO2lmKHZhbGlkYXRlJiYhbWF0Y2hlc1tpXS50ZXN0KHNlZ21lbnQpKXRocm93IFR5cGVFcnJvcignRXhwZWN0ZWQgYWxsICInK3Rva2VuLm5hbWUrJyIgdG8gbWF0Y2ggIicrdG9rZW4ucGF0dGVybisnIiwgYnV0IGdvdCAiJytzZWdtZW50KyciJyk7cGF0aCs9dG9rZW4ucHJlZml4K3NlZ21lbnQrdG9rZW4uc3VmZml4fWNvbnRpbnVlfWlmKCJzdHJpbmciPT10eXBlb2YgdmFsdWV8fCJudW1iZXIiPT10eXBlb2YgdmFsdWUpe3ZhciBzZWdtZW50PWVuY29kZShTdHJpbmcodmFsdWUpLHRva2VuKTtpZih2YWxpZGF0ZSYmIW1hdGNoZXNbaV0udGVzdChzZWdtZW50KSl0aHJvdyBUeXBlRXJyb3IoJ0V4cGVjdGVkICInK3Rva2VuLm5hbWUrJyIgdG8gbWF0Y2ggIicrdG9rZW4ucGF0dGVybisnIiwgYnV0IGdvdCAiJytzZWdtZW50KyciJyk7cGF0aCs9dG9rZW4ucHJlZml4K3NlZ21lbnQrdG9rZW4uc3VmZml4O2NvbnRpbnVlfWlmKCFvcHRpb25hbCl7dmFyIHR5cGVPZk1lc3NhZ2U9cmVwZWF0PyJhbiBhcnJheSI6ImEgc3RyaW5nIjt0aHJvdyBUeXBlRXJyb3IoJ0V4cGVjdGVkICInK3Rva2VuLm5hbWUrJyIgdG8gYmUgJyt0eXBlT2ZNZXNzYWdlKX19cmV0dXJuIHBhdGh9fWZ1bmN0aW9uIHJlZ2V4cFRvRnVuY3Rpb24ocmUsa2V5cyxvcHRpb25zKXt2b2lkIDA9PT1vcHRpb25zJiYob3B0aW9ucz17fSk7dmFyIF9hPW9wdGlvbnMuZGVjb2RlLGRlY29kZT12b2lkIDA9PT1fYT9mdW5jdGlvbih4KXtyZXR1cm4geH06X2E7cmV0dXJuIGZ1bmN0aW9uKHBhdGhuYW1lKXt2YXIgbT1yZS5leGVjKHBhdGhuYW1lKTtpZighbSlyZXR1cm4hMTtmb3IodmFyIHBhdGg9bVswXSxpbmRleD1tLmluZGV4LHBhcmFtcz1PYmplY3QuY3JlYXRlKG51bGwpLGk9MTtpPG0ubGVuZ3RoO2krKykhZnVuY3Rpb24oaSl7aWYodm9pZCAwIT09bVtpXSl7dmFyIGtleT1rZXlzW2ktMV07IioiPT09a2V5Lm1vZGlmaWVyfHwiKyI9PT1rZXkubW9kaWZpZXI/cGFyYW1zW2tleS5uYW1lXT1tW2ldLnNwbGl0KGtleS5wcmVmaXgra2V5LnN1ZmZpeCkubWFwKGZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gZGVjb2RlKHZhbHVlLGtleSl9KTpwYXJhbXNba2V5Lm5hbWVdPWRlY29kZShtW2ldLGtleSl9fShpKTtyZXR1cm57cGF0aDpwYXRoLGluZGV4OmluZGV4LHBhcmFtczpwYXJhbXN9fX1mdW5jdGlvbiBlc2NhcGVTdHJpbmcoc3RyKXtyZXR1cm4gc3RyLnJlcGxhY2UoLyhbLisqPz1eIToke30oKVtcXXwvXFxdKS9nLCJcXCQxIil9ZnVuY3Rpb24gZmxhZ3Mob3B0aW9ucyl7cmV0dXJuIG9wdGlvbnMmJm9wdGlvbnMuc2Vuc2l0aXZlPyIiOiJpIn1mdW5jdGlvbiB0b2tlbnNUb1JlZ2V4cCh0b2tlbnMsa2V5cyxvcHRpb25zKXt2b2lkIDA9PT1vcHRpb25zJiYob3B0aW9ucz17fSk7Zm9yKHZhciBfYT1vcHRpb25zLnN0cmljdCxzdHJpY3Q9dm9pZCAwIT09X2EmJl9hLF9iPW9wdGlvbnMuc3RhcnQsX2M9b3B0aW9ucy5lbmQsX2Q9b3B0aW9ucy5lbmNvZGUsZW5jb2RlPXZvaWQgMD09PV9kP2Z1bmN0aW9uKHgpe3JldHVybiB4fTpfZCxlbmRzV2l0aD0iWyIrZXNjYXBlU3RyaW5nKG9wdGlvbnMuZW5kc1dpdGh8fCIiKSsiXXwkIixkZWxpbWl0ZXI9IlsiK2VzY2FwZVN0cmluZyhvcHRpb25zLmRlbGltaXRlcnx8Ii8jPyIpKyJdIixyb3V0ZT12b2lkIDA9PT1fYnx8X2I/Il4iOiIiLF9pPTA7X2k8dG9rZW5zLmxlbmd0aDtfaSsrKXt2YXIgdG9rZW49dG9rZW5zW19pXTtpZigic3RyaW5nIj09dHlwZW9mIHRva2VuKXJvdXRlKz1lc2NhcGVTdHJpbmcoZW5jb2RlKHRva2VuKSk7ZWxzZXt2YXIgcHJlZml4PWVzY2FwZVN0cmluZyhlbmNvZGUodG9rZW4ucHJlZml4KSksc3VmZml4PWVzY2FwZVN0cmluZyhlbmNvZGUodG9rZW4uc3VmZml4KSk7aWYodG9rZW4ucGF0dGVybil7aWYoa2V5cyYma2V5cy5wdXNoKHRva2VuKSxwcmVmaXh8fHN1ZmZpeCl7aWYoIisiPT09dG9rZW4ubW9kaWZpZXJ8fCIqIj09PXRva2VuLm1vZGlmaWVyKXt2YXIgbW9kPSIqIj09PXRva2VuLm1vZGlmaWVyPyI/IjoiIjtyb3V0ZSs9Iig/OiIrcHJlZml4KyIoKD86Iit0b2tlbi5wYXR0ZXJuKyIpKD86IitzdWZmaXgrcHJlZml4KyIoPzoiK3Rva2VuLnBhdHRlcm4rIikpKikiK3N1ZmZpeCsiKSIrbW9kfWVsc2Ugcm91dGUrPSIoPzoiK3ByZWZpeCsiKCIrdG9rZW4ucGF0dGVybisiKSIrc3VmZml4KyIpIit0b2tlbi5tb2RpZmllcn1lbHNlIHJvdXRlKz0iKCIrdG9rZW4ucGF0dGVybisiKSIrdG9rZW4ubW9kaWZpZXJ9ZWxzZSByb3V0ZSs9Iig/OiIrcHJlZml4K3N1ZmZpeCsiKSIrdG9rZW4ubW9kaWZpZXJ9fWlmKHZvaWQgMD09PV9jfHxfYylzdHJpY3R8fChyb3V0ZSs9ZGVsaW1pdGVyKyI/Iikscm91dGUrPW9wdGlvbnMuZW5kc1dpdGg/Iig/PSIrZW5kc1dpdGgrIikiOiIkIjtlbHNle3ZhciBlbmRUb2tlbj10b2tlbnNbdG9rZW5zLmxlbmd0aC0xXSxpc0VuZERlbGltaXRlZD0ic3RyaW5nIj09dHlwZW9mIGVuZFRva2VuP2RlbGltaXRlci5pbmRleE9mKGVuZFRva2VuW2VuZFRva2VuLmxlbmd0aC0xXSk+LTE6dm9pZCAwPT09ZW5kVG9rZW47c3RyaWN0fHwocm91dGUrPSIoPzoiK2RlbGltaXRlcisiKD89IitlbmRzV2l0aCsiKSk/IiksaXNFbmREZWxpbWl0ZWR8fChyb3V0ZSs9Iig/PSIrZGVsaW1pdGVyKyJ8IitlbmRzV2l0aCsiKSIpfXJldHVybiBSZWdFeHAocm91dGUsZmxhZ3Mob3B0aW9ucykpfWZ1bmN0aW9uIHBhdGhUb1JlZ2V4cChwYXRoLGtleXMsb3B0aW9ucyl7cmV0dXJuIHBhdGggaW5zdGFuY2VvZiBSZWdFeHA/ZnVuY3Rpb24ocGF0aCxrZXlzKXtpZigha2V5cylyZXR1cm4gcGF0aDt2YXIgZ3JvdXBzPXBhdGguc291cmNlLm1hdGNoKC9cKCg/IVw/KS9nKTtpZihncm91cHMpZm9yKHZhciBpPTA7aTxncm91cHMubGVuZ3RoO2krKylrZXlzLnB1c2goe25hbWU6aSxwcmVmaXg6IiIsc3VmZml4OiIiLG1vZGlmaWVyOiIiLHBhdHRlcm46IiJ9KTtyZXR1cm4gcGF0aH0ocGF0aCxrZXlzKTpBcnJheS5pc0FycmF5KHBhdGgpP1JlZ0V4cCgiKD86IitwYXRoLm1hcChmdW5jdGlvbihwYXRoKXtyZXR1cm4gcGF0aFRvUmVnZXhwKHBhdGgsa2V5cyxvcHRpb25zKS5zb3VyY2V9KS5qb2luKCJ8IikrIikiLGZsYWdzKG9wdGlvbnMpKTp0b2tlbnNUb1JlZ2V4cChwYXJzZShwYXRoLG9wdGlvbnMpLGtleXMsb3B0aW9ucyl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMucGFyc2U9cGFyc2UsZXhwb3J0cy5jb21waWxlPWZ1bmN0aW9uKHN0cixvcHRpb25zKXtyZXR1cm4gdG9rZW5zVG9GdW5jdGlvbihwYXJzZShzdHIsb3B0aW9ucyksb3B0aW9ucyl9LGV4cG9ydHMudG9rZW5zVG9GdW5jdGlvbj10b2tlbnNUb0Z1bmN0aW9uLGV4cG9ydHMubWF0Y2g9ZnVuY3Rpb24oc3RyLG9wdGlvbnMpe3ZhciBrZXlzPVtdO3JldHVybiByZWdleHBUb0Z1bmN0aW9uKHBhdGhUb1JlZ2V4cChzdHIsa2V5cyxvcHRpb25zKSxrZXlzLG9wdGlvbnMpfSxleHBvcnRzLnJlZ2V4cFRvRnVuY3Rpb249cmVnZXhwVG9GdW5jdGlvbixleHBvcnRzLnRva2Vuc1RvUmVnZXhwPXRva2Vuc1RvUmVnZXhwLGV4cG9ydHMucGF0aFRvUmVnZXhwPXBhdGhUb1JlZ2V4cH0sNzgwMTg6ZnVuY3Rpb24obW9kdWxlKXt2YXIgbix5LFQsQyx3LFAsSSxrLG8sYyx1LGYscyxkLGwsTix2LG0saCxnLGoscSxFLHgseixMLFMsYixBLEYsSixLLFEsTSxCLEQsVSxSLFYsVyxILE8sWCxfLFksRzsobj17fSkuZD1mdW5jdGlvbih5LFQpe2Zvcih2YXIgQyBpbiBUKW4ubyhULEMpJiYhbi5vKHksQykmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh5LEMse2VudW1lcmFibGU6ITAsZ2V0OlRbQ119KX0sbi5vPWZ1bmN0aW9uKG4seSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHkpfSxuLnI9ZnVuY3Rpb24obil7InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sdm9pZCAwIT09biYmKG4uYWI9Ii8vIikseT17fSxuLnIoeSksbi5kKHkse2dldENMUzpmdW5jdGlvbigpe3JldHVybiBFfSxnZXRGQ1A6ZnVuY3Rpb24oKXtyZXR1cm4gZ30sZ2V0RklEOmZ1bmN0aW9uKCl7cmV0dXJuIEZ9LGdldElOUDpmdW5jdGlvbigpe3JldHVybiBPfSxnZXRMQ1A6ZnVuY3Rpb24oKXtyZXR1cm4gX30sZ2V0VFRGQjpmdW5jdGlvbigpe3JldHVybiBHfSxvbkNMUzpmdW5jdGlvbigpe3JldHVybiBFfSxvbkZDUDpmdW5jdGlvbigpe3JldHVybiBnfSxvbkZJRDpmdW5jdGlvbigpe3JldHVybiBGfSxvbklOUDpmdW5jdGlvbigpe3JldHVybiBPfSxvbkxDUDpmdW5jdGlvbigpe3JldHVybiBffSxvblRURkI6ZnVuY3Rpb24oKXtyZXR1cm4gR319KSxrPS0xLG89ZnVuY3Rpb24obil7YWRkRXZlbnRMaXN0ZW5lcigicGFnZXNob3ciLGZ1bmN0aW9uKHkpe3kucGVyc2lzdGVkJiYoaz15LnRpbWVTdGFtcCxuKHkpKX0sITApfSxjPWZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5wZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSYmcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSgibmF2aWdhdGlvbiIpWzBdfSx1PWZ1bmN0aW9uKCl7dmFyIG49YygpO3JldHVybiBuJiZuLmFjdGl2YXRpb25TdGFydHx8MH0sZj1mdW5jdGlvbihuLHkpe3ZhciBUPWMoKSxDPSJuYXZpZ2F0ZSI7cmV0dXJuIGs+PTA/Qz0iYmFjay1mb3J3YXJkLWNhY2hlIjpUJiYoQz1kb2N1bWVudC5wcmVyZW5kZXJpbmd8fHUoKT4wPyJwcmVyZW5kZXIiOlQudHlwZS5yZXBsYWNlKC9fL2csIi0iKSkse25hbWU6bix2YWx1ZTp2b2lkIDA9PT15Py0xOnkscmF0aW5nOiJnb29kIixkZWx0YTowLGVudHJpZXM6W10saWQ6InYzLSIuY29uY2F0KERhdGUubm93KCksIi0iKS5jb25jYXQoTWF0aC5mbG9vcig4OTk5OTk5OTk5OTk5Kk1hdGgucmFuZG9tKCkpKzFlMTIpLG5hdmlnYXRpb25UeXBlOkN9fSxzPWZ1bmN0aW9uKG4seSxUKXt0cnl7aWYoUGVyZm9ybWFuY2VPYnNlcnZlci5zdXBwb3J0ZWRFbnRyeVR5cGVzLmluY2x1ZGVzKG4pKXt2YXIgQz1uZXcgUGVyZm9ybWFuY2VPYnNlcnZlcihmdW5jdGlvbihuKXt5KG4uZ2V0RW50cmllcygpKX0pO3JldHVybiBDLm9ic2VydmUoT2JqZWN0LmFzc2lnbih7dHlwZTpuLGJ1ZmZlcmVkOiEwfSxUfHx7fSkpLEN9fWNhdGNoKG4xKXt9fSxkPWZ1bmN0aW9uKG4seSl7dmFyIFQ9ZnVuY3Rpb24gdChUKXsicGFnZWhpZGUiIT09VC50eXBlJiYiaGlkZGVuIiE9PWRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZXx8KG4oVCkseSYmKHJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHQsITApLHJlbW92ZUV2ZW50TGlzdGVuZXIoInBhZ2VoaWRlIix0LCEwKSkpfTthZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixULCEwKSxhZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsVCwhMCl9LGw9ZnVuY3Rpb24obix5LFQsQyl7dmFyIHcsUDtyZXR1cm4gZnVuY3Rpb24oSSl7dmFyIG4xO3kudmFsdWU+PTAmJihJfHxDKSYmKChQPXkudmFsdWUtKHd8fDApKXx8dm9pZCAwPT09dykmJih3PXkudmFsdWUseS5kZWx0YT1QLHkucmF0aW5nPShuMT15LnZhbHVlKT5UWzFdPyJwb29yIjpuMT5UWzBdPyJuZWVkcy1pbXByb3ZlbWVudCI6Imdvb2QiLG4oeSkpfX0sTj0tMSx2PWZ1bmN0aW9uKCl7cmV0dXJuImhpZGRlbiIhPT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGV8fGRvY3VtZW50LnByZXJlbmRlcmluZz8xLzA6MH0sbT1mdW5jdGlvbigpe2QoZnVuY3Rpb24obil7Tj1uLnRpbWVTdGFtcH0sITApfSxoPWZ1bmN0aW9uKCl7cmV0dXJuIE48MCYmKE49digpLG0oKSxvKGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe049digpLG0oKX0sMCl9KSkse2dldCBmaXJzdEhpZGRlblRpbWUoKXtyZXR1cm4gTn19fSxnPWZ1bmN0aW9uKG4seSl7eT15fHx7fTt2YXIgVCxDPVsxODAwLDNlM10sdz1oKCksUD1mKCJGQ1AiKSxjPWZ1bmN0aW9uKG4pe24uZm9yRWFjaChmdW5jdGlvbihuKXsiZmlyc3QtY29udGVudGZ1bC1wYWludCI9PT1uLm5hbWUmJihrJiZrLmRpc2Nvbm5lY3QoKSxuLnN0YXJ0VGltZTx3LmZpcnN0SGlkZGVuVGltZSYmKFAudmFsdWU9bi5zdGFydFRpbWUtdSgpLFAuZW50cmllcy5wdXNoKG4pLFQoITApKSl9KX0sST13aW5kb3cucGVyZm9ybWFuY2UmJndpbmRvdy5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lJiZ3aW5kb3cucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSgiZmlyc3QtY29udGVudGZ1bC1wYWludCIpWzBdLGs9ST9udWxsOnMoInBhaW50IixjKTsoSXx8aykmJihUPWwobixQLEMseS5yZXBvcnRBbGxDaGFuZ2VzKSxJJiZjKFtJXSksbyhmdW5jdGlvbih3KXtUPWwobixQPWYoIkZDUCIpLEMseS5yZXBvcnRBbGxDaGFuZ2VzKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtQLnZhbHVlPXBlcmZvcm1hbmNlLm5vdygpLXcudGltZVN0YW1wLFQoITApfSl9KX0pKX0saj0hMSxxPS0xLEU9ZnVuY3Rpb24obix5KXt5PXl8fHt9O3ZhciBUPVsuMSwuMjVdO2p8fChnKGZ1bmN0aW9uKG4pe3E9bi52YWx1ZX0pLGo9ITApO3ZhciBDLGk9ZnVuY3Rpb24oeSl7cT4tMSYmbih5KX0sdz1mKCJDTFMiLDApLFA9MCxJPVtdLHA9ZnVuY3Rpb24obil7bi5mb3JFYWNoKGZ1bmN0aW9uKG4pe2lmKCFuLmhhZFJlY2VudElucHV0KXt2YXIgeT1JWzBdLFQ9SVtJLmxlbmd0aC0xXTtQJiZuLnN0YXJ0VGltZS1ULnN0YXJ0VGltZTwxZTMmJm4uc3RhcnRUaW1lLXkuc3RhcnRUaW1lPDVlMz8oUCs9bi52YWx1ZSxJLnB1c2gobikpOihQPW4udmFsdWUsST1bbl0pLFA+dy52YWx1ZSYmKHcudmFsdWU9UCx3LmVudHJpZXM9SSxDKCkpfX0pfSxrPXMoImxheW91dC1zaGlmdCIscCk7ayYmKEM9bChpLHcsVCx5LnJlcG9ydEFsbENoYW5nZXMpLGQoZnVuY3Rpb24oKXtwKGsudGFrZVJlY29yZHMoKSksQyghMCl9KSxvKGZ1bmN0aW9uKCl7UD0wLHE9LTEsQz1sKGksdz1mKCJDTFMiLDApLFQseS5yZXBvcnRBbGxDaGFuZ2VzKX0pKX0seD17cGFzc2l2ZTohMCxjYXB0dXJlOiEwfSx6PW5ldyBEYXRlLEw9ZnVuY3Rpb24obix5KXtUfHwoVD15LEM9bix3PW5ldyBEYXRlLEEocmVtb3ZlRXZlbnRMaXN0ZW5lciksUygpKX0sUz1mdW5jdGlvbigpe2lmKEM+PTAmJkM8dy16KXt2YXIgbj17ZW50cnlUeXBlOiJmaXJzdC1pbnB1dCIsbmFtZTpULnR5cGUsdGFyZ2V0OlQudGFyZ2V0LGNhbmNlbGFibGU6VC5jYW5jZWxhYmxlLHN0YXJ0VGltZTpULnRpbWVTdGFtcCxwcm9jZXNzaW5nU3RhcnQ6VC50aW1lU3RhbXArQ307UC5mb3JFYWNoKGZ1bmN0aW9uKHkpe3kobil9KSxQPVtdfX0sYj1mdW5jdGlvbihuKXtpZihuLmNhbmNlbGFibGUpe3ZhciB0LHIsaSx5PShuLnRpbWVTdGFtcD4xZTEyP25ldyBEYXRlOnBlcmZvcm1hbmNlLm5vdygpKS1uLnRpbWVTdGFtcDsicG9pbnRlcmRvd24iPT1uLnR5cGU/KHQ9ZnVuY3Rpb24oKXtMKHksbiksaSgpfSxyPWZ1bmN0aW9uKCl7aSgpfSxpPWZ1bmN0aW9uKCl7cmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0LHgpLHJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLHIseCl9LGFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdCx4KSxhZGRFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIixyLHgpKTpMKHksbil9fSxBPWZ1bmN0aW9uKG4pe1sibW91c2Vkb3duIiwia2V5ZG93biIsInRvdWNoc3RhcnQiLCJwb2ludGVyZG93biJdLmZvckVhY2goZnVuY3Rpb24oeSl7cmV0dXJuIG4oeSxiLHgpfSl9LEY9ZnVuY3Rpb24obix5KXt5PXl8fHt9O3ZhciB3LEk9WzEwMCwzMDBdLGs9aCgpLE49ZigiRklEIiksdj1mdW5jdGlvbihuKXtuLnN0YXJ0VGltZTxrLmZpcnN0SGlkZGVuVGltZSYmKE4udmFsdWU9bi5wcm9jZXNzaW5nU3RhcnQtbi5zdGFydFRpbWUsTi5lbnRyaWVzLnB1c2gobiksdyghMCkpfSxtPWZ1bmN0aW9uKG4pe24uZm9yRWFjaCh2KX0saj1zKCJmaXJzdC1pbnB1dCIsbSk7dz1sKG4sTixJLHkucmVwb3J0QWxsQ2hhbmdlcyksaiYmZChmdW5jdGlvbigpe20oai50YWtlUmVjb3JkcygpKSxqLmRpc2Nvbm5lY3QoKX0sITApLGomJm8oZnVuY3Rpb24oKXt3PWwobixOPWYoIkZJRCIpLEkseS5yZXBvcnRBbGxDaGFuZ2VzKSxQPVtdLEM9LTEsVD1udWxsLEEoYWRkRXZlbnRMaXN0ZW5lciksUC5wdXNoKHYpLFMoKX0pfSxKPTAsSz0xLzAsUT0wLE09ZnVuY3Rpb24obil7bi5mb3JFYWNoKGZ1bmN0aW9uKG4pe24uaW50ZXJhY3Rpb25JZCYmKEs9TWF0aC5taW4oSyxuLmludGVyYWN0aW9uSWQpLEo9KFE9TWF0aC5tYXgoUSxuLmludGVyYWN0aW9uSWQpKT8oUS1LKS83KzE6MCl9KX0sQj1mdW5jdGlvbigpe3JldHVybiBJP0o6cGVyZm9ybWFuY2UuaW50ZXJhY3Rpb25Db3VudHx8MH0sRD1mdW5jdGlvbigpeyJpbnRlcmFjdGlvbkNvdW50ImluIHBlcmZvcm1hbmNlfHxJfHwoST1zKCJldmVudCIsTSx7dHlwZToiZXZlbnQiLGJ1ZmZlcmVkOiEwLGR1cmF0aW9uVGhyZXNob2xkOjB9KSl9LFU9MCxSPWZ1bmN0aW9uKCl7cmV0dXJuIEIoKS1VfSxWPVtdLFc9e30sSD1mdW5jdGlvbihuKXt2YXIgeT1WW1YubGVuZ3RoLTFdLFQ9V1tuLmludGVyYWN0aW9uSWRdO2lmKFR8fFYubGVuZ3RoPDEwfHxuLmR1cmF0aW9uPnkubGF0ZW5jeSl7aWYoVClULmVudHJpZXMucHVzaChuKSxULmxhdGVuY3k9TWF0aC5tYXgoVC5sYXRlbmN5LG4uZHVyYXRpb24pO2Vsc2V7dmFyIEM9e2lkOm4uaW50ZXJhY3Rpb25JZCxsYXRlbmN5Om4uZHVyYXRpb24sZW50cmllczpbbl19O1dbQy5pZF09QyxWLnB1c2goQyl9Vi5zb3J0KGZ1bmN0aW9uKG4seSl7cmV0dXJuIHkubGF0ZW5jeS1uLmxhdGVuY3l9KSxWLnNwbGljZSgxMCkuZm9yRWFjaChmdW5jdGlvbihuKXtkZWxldGUgV1tuLmlkXX0pfX0sTz1mdW5jdGlvbihuLHkpe3k9eXx8e307dmFyIFQ9WzIwMCw1MDBdO0QoKTt2YXIgQyx3PWYoIklOUCIpLGE9ZnVuY3Rpb24obil7bi5mb3JFYWNoKGZ1bmN0aW9uKG4pe24uaW50ZXJhY3Rpb25JZCYmSChuKSwiZmlyc3QtaW5wdXQiIT09bi5lbnRyeVR5cGV8fFYuc29tZShmdW5jdGlvbih5KXtyZXR1cm4geS5lbnRyaWVzLnNvbWUoZnVuY3Rpb24oeSl7cmV0dXJuIG4uZHVyYXRpb249PT15LmR1cmF0aW9uJiZuLnN0YXJ0VGltZT09PXkuc3RhcnRUaW1lfSl9KXx8SChuKX0pO3ZhciBUPVZbTWF0aC5taW4oVi5sZW5ndGgtMSxNYXRoLmZsb29yKFIoKS81MCkpXTtUJiZULmxhdGVuY3khPT13LnZhbHVlJiYody52YWx1ZT1ULmxhdGVuY3ksdy5lbnRyaWVzPVQuZW50cmllcyxDKCkpfSxQPXMoImV2ZW50IixhLHtkdXJhdGlvblRocmVzaG9sZDp5LmR1cmF0aW9uVGhyZXNob2xkfHw0MH0pO0M9bChuLHcsVCx5LnJlcG9ydEFsbENoYW5nZXMpLFAmJihQLm9ic2VydmUoe3R5cGU6ImZpcnN0LWlucHV0IixidWZmZXJlZDohMH0pLGQoZnVuY3Rpb24oKXthKFAudGFrZVJlY29yZHMoKSksdy52YWx1ZTwwJiZSKCk+MCYmKHcudmFsdWU9MCx3LmVudHJpZXM9W10pLEMoITApfSksbyhmdW5jdGlvbigpe1Y9W10sVT1CKCksQz1sKG4sdz1mKCJJTlAiKSxULHkucmVwb3J0QWxsQ2hhbmdlcyl9KSl9LFg9e30sXz1mdW5jdGlvbihuLHkpe3k9eXx8e307dmFyIFQsQz1bMjUwMCw0ZTNdLHc9aCgpLFA9ZigiTENQIiksYz1mdW5jdGlvbihuKXt2YXIgeT1uW24ubGVuZ3RoLTFdO2lmKHkpe3ZhciBDPXkuc3RhcnRUaW1lLXUoKTtDPHcuZmlyc3RIaWRkZW5UaW1lJiYoUC52YWx1ZT1DLFAuZW50cmllcz1beV0sVCgpKX19LEk9cygibGFyZ2VzdC1jb250ZW50ZnVsLXBhaW50IixjKTtpZihJKXtUPWwobixQLEMseS5yZXBvcnRBbGxDaGFuZ2VzKTt2YXIgdj1mdW5jdGlvbigpe1hbUC5pZF18fChjKEkudGFrZVJlY29yZHMoKSksSS5kaXNjb25uZWN0KCksWFtQLmlkXT0hMCxUKCEwKSl9O1sia2V5ZG93biIsImNsaWNrIl0uZm9yRWFjaChmdW5jdGlvbihuKXthZGRFdmVudExpc3RlbmVyKG4sdix7b25jZTohMCxjYXB0dXJlOiEwfSl9KSxkKHYsITApLG8oZnVuY3Rpb24odyl7VD1sKG4sUD1mKCJMQ1AiKSxDLHkucmVwb3J0QWxsQ2hhbmdlcykscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7UC52YWx1ZT1wZXJmb3JtYW5jZS5ub3coKS13LnRpbWVTdGFtcCxYW1AuaWRdPSEwLFQoITApfSl9KX0pfX0sWT1mdW5jdGlvbiBlKG4pe2RvY3VtZW50LnByZXJlbmRlcmluZz9hZGRFdmVudExpc3RlbmVyKCJwcmVyZW5kZXJpbmdjaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIGUobil9LCEwKToiY29tcGxldGUiIT09ZG9jdW1lbnQucmVhZHlTdGF0ZT9hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe3JldHVybiBlKG4pfSwhMCk6c2V0VGltZW91dChuLDApfSxHPWZ1bmN0aW9uKG4seSl7eT15fHx7fTt2YXIgVD1bODAwLDE4MDBdLEM9ZigiVFRGQiIpLHc9bChuLEMsVCx5LnJlcG9ydEFsbENoYW5nZXMpO1koZnVuY3Rpb24oKXt2YXIgUD1jKCk7aWYoUCl7aWYoQy52YWx1ZT1NYXRoLm1heChQLnJlc3BvbnNlU3RhcnQtdSgpLDApLEMudmFsdWU8MHx8Qy52YWx1ZT5wZXJmb3JtYW5jZS5ub3coKSlyZXR1cm47Qy5lbnRyaWVzPVtQXSx3KCEwKSxvKGZ1bmN0aW9uKCl7KHc9bChuLEM9ZigiVFRGQiIsMCksVCx5LnJlcG9ydEFsbENoYW5nZXMpKSghMCl9KX19KX0sbW9kdWxlLmV4cG9ydHM9eX0sODA2NzY6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMuZGVmYXVsdD1pc0Vycm9yLGV4cG9ydHMuZ2V0UHJvcGVyRXJyb3I9ZnVuY3Rpb24oZXJyKXtyZXR1cm4gaXNFcnJvcihlcnIpP2VycjpFcnJvcihfaXNQbGFpbk9iamVjdC5pc1BsYWluT2JqZWN0KGVycik/SlNPTi5zdHJpbmdpZnkoZXJyKTplcnIrIiIpfTt2YXIgX2lzUGxhaW5PYmplY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg4Mjg0OSk7ZnVuY3Rpb24gaXNFcnJvcihlcnIpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZXJyJiZudWxsIT09ZXJyJiYibmFtZSJpbiBlcnImJiJtZXNzYWdlImluIGVycn19fSxmdW5jdGlvbihfX3dlYnBhY2tfcmVxdWlyZV9fKXtfX3dlYnBhY2tfcmVxdWlyZV9fLk8oMCxbOTc3NCw5NDkyXSxmdW5jdGlvbigpe3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucz0yMTc4Myl9KSxfTl9FPV9fd2VicGFja19yZXF1aXJlX18uTygpfV0pOw=="}},"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":"image.crisp.chat/avatar/website/04c4ac10-ff79-40d3-97b2-e069177c1b37/120/?1783170208855","fqdn":"image.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:50.119Z","timestamp":1785127670119,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /avatar/website/04c4ac10-ff79-40d3-97b2-e069177c1b37/120/?1783170208855 HTTP/1.1\r\nHost: image.crisp.chat\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-type: image/webp\r\ncontent-length: 698\r\naccept-ranges: bytes\r\ncache-control: public, max-age=315360000\r\ncross-origin-resource-policy: cross-origin\r\netag: W/\"2ba-19f929a4ad2\"\r\nexpires: Thu, 24 Jul 2036 04:47:50 GMT\r\nlast-modified: Fri, 24 Jul 2026 05:30:13 GMT\r\nserver: cloudflare\r\npriority: u=4,i\r\nage: 47559\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\ncf-ray: a21902224e84b28a-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"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":698,"size_decoded":1280,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image, VP8 encoding, 120x120, Scaling: [none]x[none], YUV color, decoders should clamp","md5":"c28d6cad8a525f6743a3d109aa706ad2","sha1":"eb01a3bf377bb83a3b0184c1f0e24241e4e00baf","sha256":"adc0996c2619689e73af3396a75a6da3afd2aba97b4a08d6e098381b72021218","sha512":"a3761b719937981b077d0cd728f2742a5ef4422560c0328089a717d738b047244149509bec36e18ae1936d3aca8123618879c32cf425f0918832cccdd21de27b","ssdeep":"","tlshash":"9801492e900c148ed15116216e8d3a6621c968c06a807332980fb561bde4f9fb15534c","first_seen":"2024-09-08T23:24:24Z","last_seen":"2026-08-02T21:35:32.125658Z","times_seen":547,"resource_available":false,"data":"UklGRrICAABXRUJQVlA4IKYCAADQEQCdASp4AHgAPlEokUWjoqGTikw8OAUEsYULXhBfx34AbEh6j8XeH1jaPAbYDzAfsV6sP9k/aPWD/Qr/WDrbMidYhIgnJGcEYY4gNIFjJ5hCIiSFL/9JCl/lc5Ij3yJLCylgFlJ/qA+RuZBcdEcr+XfybyhsPA6VuMCTvFIDXfMgnqTfWEyJIDqYHp+qFs/pwH27/nAAAMgwK84D5wHvX1zTu3A7gANT+EbtBhO1IMV/HvD1Q+T6rPg0u7Z4mMDSzE2AeiumUkZgf5wAym2GZLIph6xeHMtOG1UaaSAYlksltoctq7muvlKLeu5wUpUQyO/jcqZvyzSfhUoMnPsJO57dsj2g/hyORGub60cIVaRBuZErC1nF4ZQzscuj0VZ4FFkSsJHHexMnYZyO/DgGq7biUOtMELZ6fHvW2Rvvq33a0FPZdS0NV//IbvweSF1pjH4EX98Gzjr4FZ5Oukjwe9a+mmCWAXshvr+yjRCJqqKky2drabiEsvChGu13pHAe6QWWWIF67cavXNG1nUyItIO43L1v0sbYhQLDWelZ43H3o3rRE1VhuWeahLUcIUrceAzgxDvU2p/geWtxSBWsoJJq1aG8eIMNC74X8h1A6E35YHTyU8XamC0+P+efaEyoF5BR6vgfss6xRUXKP3f8g1xHHx8ATdUjqKBtpZFqUmZ+1MDj47CPz55R+u3LiwjbO5/XI13pw2h8qkgYqBjCnhV53bHnIk2LtTOiThNqT3/LfX4//p6StWs2AL7JPvJ4HRLNsdJIMrf8H7vWwz7qX9GUdAlotnBXOCJOo4v4aWmETj+y6pGM8Ly7iP1mmWwxyLOMWEtlpm66rePcaOQtYEaSKxHqOAfRMWPAQc2j+F3akPLA+vrxSAAHSqyFgTIAAAAAAAA="}},"time_used":18,"timings":{"blocked":5,"dns":4,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"image.crisp.chat/process/thumbnail/?url=https%3A%2F%2Fstorage.crisp.chat%2Fusers%2Favatar%2Foperator%2F-%2Fe%2Fa%2F1%2F3%2Fea1343e768931800%2Fwx20250613-1535332x_1ua1ag.png\u0026width=120\u0026height=120\u00261783170208855","fqdn":"image.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:50.326Z","timestamp":1785127670326,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /process/thumbnail/?url=https%3A%2F%2Fstorage.crisp.chat%2Fusers%2Favatar%2Foperator%2F-%2Fe%2Fa%2F1%2F3%2Fea1343e768931800%2Fwx20250613-1535332x_1ua1ag.png\u0026width=120\u0026height=120\u00261783170208855 HTTP/1.1\r\nHost: image.crisp.chat\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-type: image/webp\r\ncontent-length: 2850\r\naccept-ranges: bytes\r\ncache-control: public, max-age=315360000\r\ncross-origin-resource-policy: cross-origin\r\netag: W/\"b22-19f9d0728a3\"\r\nexpires: Thu, 24 Jul 2036 04:47:50 GMT\r\nlast-modified: Sun, 26 Jul 2026 06:05:19 GMT\r\nserver: cloudflare\r\npriority: u=5,i\r\nage: 81750\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\ncf-ray: a219022388e4b28a-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"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":2850,"size_decoded":3433,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image, VP8 encoding, 120x120, Scaling: [none]x[none], YUV color, decoders should clamp","md5":"17f22bc66db37f863149aefa4cec5791","sha1":"3fc7f601eb57213e602ee0d2db344983337eb828","sha256":"2125f06eaceb5e96b18fb593d76da967c0481b76b5ccadee3dd04eea98502051","sha512":"4b0f8ecc6d67004b41f4a740c1fcc577f2a938c6b0de54f1d421cb848bc0547496b86f578b16982a1b280cbdfd578a00f1f728b5fe33453a1fcfe2ad5c4166d6","ssdeep":"","tlshash":"67516b0c31273046fe81a8154a903fb752ffc8f5a9c1f949ee83f2904ba1e165639139","first_seen":"2026-07-27T03:56:11.718512Z","last_seen":"2026-07-27T10:05:53.957044Z","times_seen":4,"resource_available":false,"data":"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"}},"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":"buvei.com/_next/data/6wYjP2KmMK9hAISorGh1P/en/white-label.json","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:49.414Z","timestamp":1785127669414,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/data/6wYjP2KmMK9hAISorGh1P/en/white-label.json HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\npurpose: prefetch\r\nx-nextjs-data: 1\r\nsentry-trace: 5be496170b2042fc915da3c049a62288-8bbff83de3e5fcef-1\r\nbaggage: sentry-environment=production,sentry-public_key=f0c5bc359d786d8c0a56e9a38119b543,sentry-trace_id=5be496170b2042fc915da3c049a62288,sentry-org_id=4510469741281280,sentry-transaction=%2F,sentry-sampled=true,sentry-sample_rand=0.23391805679573818,sentry-sample_rate=1\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:49 GMT\r\ncontent-type: application/json\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\nx-nextjs-matched-path: /en/white-label\r\nx-nextjs-cache: HIT\r\netag: \"13s9qpdguyxba3\"\r\ncache-control: s-maxage=86400, stale-while-revalidate\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\ncf-cache-status: DYNAMIC\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=LHPvpZ5690eZ%2Fk3Vz2lAk70nj1TxNahxL7wXLDdvGQMJ%2Fta%2F%2Fc9gLq%2BRg6AUtY1rbyFgsDi4ilrQXNQuRjNhCShvBm%2BMSgyALD9%2ByHILW%2FBCMcUrwJ2WLPLccw%3D%3D\"}]}\r\ncf-ray: a219021ddedd8be6-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"]}],"data":{"size":14671,"size_decoded":6464,"mime_type":"application/json","magic":"JSON text data","md5":"a81646983cb52a38442a4cb745f19d23","sha1":"07a342b6bf4926e12403b1ad2a18c6df87c2c45c","sha256":"ad3274dedae795962293d20189f08ee450d1532819177b873c0fe0b86daf7c61","sha512":"690a1cdeed64ee2bc800b898a4c82f25f941ec9a86fedcdf8b2fc8c79bfd8c3dbcbc898d3910e267ee3efc3c3c1192b91eeb588c9daf07d9334313f03bd8d031","ssdeep":"384:yYUPBC0KfRkL/c2RT3HHStaL6O5uUQVHF156m6ph:yJPvLFjHT6Ocz1w","tlshash":"6462b40fa715147a0fc603ea15d31a97dab8890b338a5ca448bfcd583325bbdc2b765d","first_seen":"2026-07-27T03:56:11.668445Z","last_seen":"2026-07-27T10:05:53.928133Z","times_seen":4,"resource_available":false,"data":"eyJwYWdlUHJvcHMiOnsiX25leHRJMThOZXh0Ijp7ImluaXRpYWxJMThuU3RvcmUiOnsiZW4iOnsiY29tbW9uIjp7InByaWNlIjoiV2hpdGUtTGFiZWwiLCJsb2dpbkluIjoiTG9nIGluIiwic3RhcnRGcmVlIjoiU3RhcnQgZnJlZSIsInJlY29tbWFuZEFydGljbGUiOiJSZWNvbW1lbmRlZCBBcnRpY2xlcyIsInZpZXdBbGwiOiJWaWV3IGFsbCIsImNvbW1pbmdTb29uIjoiQ29taW5nIFNvb24iLCJsZWFybk1vcmUiOiJMZWFybiBtb3JlIiwidDEiOiJQbGVhc2UgZW50ZXIiLCJ0MiI6IkNvbm5lY3QgdG8gZ2xvYmFsIGRpZ2l0YWwgY29uc3VtcHRpb24uIE9uZSAtIHN0b3AgdmlydHVhbCBjYXJkIHBheW1lbnQgYW5kIGV4cGVuc2UgbWFuYWdlbWVudCBwbGF0Zm9ybS4iLCJ0MyI6IkV4cGVuc2UgTWFuYWdlbWVudCIsInQ0IjoiQVBJIEFjY2VzcyIsInQ1IjoiUGF5bWVudCBjYXJkcyIsInQ2IjoiQWR2ZXJ0aXNpbmcgY2FyZCIsInQ3IjoiU3Vic2NyaXB0aW9uIGNhcmQiLCJ0OCI6IlRyYXZlbCBhbmQgYXZpYXRpb24gY2FyZCIsInQ5IjoiRW50ZXJwcmlzZSBzZXJ2aWNlcyIsInQxMCI6IkFQSSBEb2NzIiwidDExIjoiUmVwb3J0IGV4cG9ydCIsInQxMiI6IlBlcm1pc3Npb24gc3lzdGVtIiwidDEzIjoiQ29tcGFueSIsInQxNCI6IkFib3V0IFVzIiwidDE1IjoiTmV3cyIsInQxNiI6IlRlcm1zIG9mIFNlcnZpY2UiLCJ0MTciOiJQcml2YWN5IFBvbGljeSIsInQxOCI6Ikxhbmd1YWdlIiwidDE5IjoiTGVnYWwgaW5mbyIsInQyMCI6IkJ1dmVpJ3MgY2FyZHMgYXJlIGhlcmUhIiwidDIxIjoiTW9yZSB0aGFuIDIwIEJJTiBjYXJkcywgY292ZXJpbmcgRmFjZWJvb2ssIEdvb2dsZSwgVGlrdG9rLCBDaGF0R3B0IGFuZCBtb3JlIiwidDIyIjoiR2V0IHlvdXIgY2FyZCIsInQyMyI6IkluIEhvbmcgS29uZywgQnV2ZWkgaXMgYSBsaWNlbnNlZCBUcnVzdCBvciBDb21wYW55IFNlcnZpY2UgUHJvdmlkZXIgKFRDU1ApIGF1dGhvcml6ZWQgYnkgdGhlIEhvbmcgS29uZyBDb21wYW5pZXMgUmVnaXN0cnksIGFuZCBwZXJtaXR0ZWQgdG8gcHJvdmlkZSBzZXJ2aWNlcyByZWxhdGVkIHRvIGZ1bmRzIGN1c3RvZHksIHRydXN0IHNlcnZpY2VzLCBhbmQgZmluYW5jaWFsIGFkdmlzb3J5IHNlcnZpY2VzLiBUaGlzIGluY2x1ZGVzIHRoZSBtYW5hZ2VtZW50IGFuZCBhZG1pbmlzdHJhdGlvbiBvZiB0cnVzdCBzdHJ1Y3R1cmVzLCBhcyB3ZWxsIGFzIHRoZSBmYWNpbGl0YXRpb24gb2YgZmluYW5jaWFsIHRyYW5zYWN0aW9ucyB1bmRlciBzdHJpY3QgcmVndWxhdG9yeSBzdXBlcnZpc2lvbi4iLCJ0MjQiOiJJbiB0aGUgVW5pdGVkIFN0YXRlcywgQnV2ZWkgaXMgYSBsaWNlbnNlZCBNb25leSBTZXJ2aWNlcyBCdXNpbmVzcyAoTVNCKSB3aXRoIHRoZSBGaW5hbmNpYWwgQ3JpbWVzIEVuZm9yY2VtZW50IE5ldHdvcmsgKEZpbkNFTikgdW5kZXIgdGhlIEJhbmsgU2VjcmVjeSBBY3QgKEJTQSksIG9mZmVyaW5nIGEgcmFuZ2Ugb2YgcmVndWxhdGVkIGZpbmFuY2lhbCBzZXJ2aWNlcywgaW5jbHVkaW5nIG1vbmV5IHRyYW5zbWlzc2lvbiwgY3VycmVuY3kgZXhjaGFuZ2UsIGFuZCBtb25leSBjb252ZXJzaW9uLiIsInQyNSI6IkluIExpdGh1YW5pYSwgQnV2ZWkgaXMgYSBsaWNlbnNlZCBWaXJ0dWFsIEFzc2V0IFNlcnZpY2UgUHJvdmlkZXIgKFZBU1ApIGJ5IHRoZSBGaW5hbmNpYWwgQ3JpbWUgSW52ZXN0aWdhdGlvbiBTZXJ2aWNlIChGQ0lTKSwgYW5kIGF1dGhvcml6ZWQgdG8gcHJvdmlkZSBzZXJ2aWNlcyBpbnZvbHZpbmcgdGhlIGV4Y2hhbmdlIG9mIHZpcnR1YWwgYXNzZXRzIGFuZCB0aGUgY29udmVyc2lvbiBiZXR3ZWVuIHZpcnR1YWwgYXNzZXRzIGFuZCBmaWF0IGN1cnJlbmNpZXMuIiwidGl0bGUyMzAiOiJTaWduIHVwIGZvciBhIGxpbWl0ZWQgdGltZSBhbmQgZW5qb3kgYSIsInRpdGxlMjMxIjoiZGlzY291bnQiLCJ0aXRsZTIzMiI6Ik5ldyB1c2VyIGJlbmVmaXRzIOKAkyByZWNlaXZlIGRpc2NvdW50IGNvdXBvbnMgYXV0b21hdGljYWxseSBhZnRlciByZWdpc3RlcmluZyIsInRpdGxlMjQ2IjoiR2V0IGl0IG9uIEdvb2dsZSBQbGF5IiwidGl0bGUyNTciOiJCdXZlaSDigJMgTXVsdGktQklOIFZpcnR1YWwgQ2FyZHMsIElzc3VlZCBJbnN0YW50bHkiLCJ0aXRsZTI1NSI6IkRvd25sb2FkIiwidGl0bGUyNTYiOiJEb3dubG9hZCBvbiB0aGUgQXBwIFN0b3JlIiwic2lnblVwVGV4dCI6IlNpZ24gdXAgdG9kYXkgYW5kIGdldCIsImZyZWVDcmVkaXQiOiJpbiBmcmVlIGNhcmQgb3BlbmluZyBjcmVkaXQiLCJjbGFpbU5vdyI6IkNsYWltIE5vdyIsInQyNiI6IvCfjaogQ29va2llIE5vdGljZSIsInQyNyI6IldlIHVzZSBjb29raWVzIHRvIGVuaGFuY2UgeW91ciBicm93c2luZyBleHBlcmllbmNlIGFuZCBhbmFseXplIHNpdGUgdHJhZmZpYy5CeSBjb250aW51aW5nLCB5b3UgYWdyZWUgdG8gb3VyIiwidDI4IjoiUHJpdmFjeSBQb2xpY3kiLCJ0MjkiOiJEZWNsaW5lIiwidDMwIjoiQWNjZXB0IEFsbCIsInQzMSI6IkRpc2NsYWltZXIiLCJtZW51Ijp7InRpdGxlMSI6IlByb2R1Y3QiLCJ0aXRsZTIiOiJTb2x1dGlvbnMiLCJ0aXRsZTMiOiJSZXNvdXJjZSIsInRpdGxlNCI6IkNvbXBhbnkiLCJ0aXRsZTUiOiJWaXJ0dWFsIENyZWRpdCBjYXJkIiwidGl0bGU2IjoiUGh5c2ljYWwgQ2FyZCIsInRpdGxlNyI6IkFwcGxlIFBheSIsInRpdGxlOCI6IkRldmVsb3BlcnMiLCJ0aXRsZTkiOiJEaWdpdGFsIEFkdmVydGlzaW5nIFBheW1lbnRzIiwidGl0bGUxMCI6IkF2aWF0aW9uICYgVHJhdmVsIiwidGl0bGUxMSI6IlN1YnNjaXB0aW9uIE1hbmFnZW1lbnQiLCJ0aXRsZTEyIjoiQmxvZyIsInRpdGxlMTMiOiJUb29scyIsInRpdGxlMTQiOiJGQVFzIiwidGl0bGUxNSI6IlRlcm1zIiwidGl0bGUxNiI6IkhlbHAgQ2VudHJlIiwidGl0bGUxNyI6IkNvbnRhY3QgVXMiLCJ0aXRsZTE4IjoiUGFydG5lcnMiLCJ0aXRsZTE5IjoiTGFuZ3VhZ2VzIiwidGl0bGUyMCI6IkpvaW4gVXMiLCJkZXNjMTMiOiJMZXTigJlzIHN0YXJ0IG92ZXIiLCJkZXNjMSI6IlN1cHBvcnQgZm9yIGFkdmVydGlzaW5nLCBzdWJzY3JpcHRpb25zLCBhbmQgc2hvcHBpbmciLCJkZXNjMiI6Ik9mZmxpbmUgY29uc3VtcHRpb24iLCJkZXNjMyI6Ik9uZS1jbGljayBiaW5kaW5nIHdpdGggQXBwbGUgUGF5IiwiZGVzYzQiOiJEZXZlbG9wZXIgQ2VudGVyIiwiZGVzYzUiOiJGYWNlYm9vaywgVGlrVG9rLCBDUEMsIEdvb2dsZSwgZXRjLiIsImRlc2M2IjoiT25lLWNsaWNrIGFjY2VzcyBhY3Jvc3MgZ2xvYmFsIGFpcmxpbmVzIiwiZGVzYzciOiJPcGVuQUksIE1pZGpvdXJuZXksIGV0Yy4iLCJkZXNjOCI6IlN0YXkgdXBkYXRlZCB3aXRoIHRoZSBsYXRlc3QgbmV3cyIsImRlc2M5IjoiSW5zdGFudGx5IGdldCBCSU4gY2FyZCBpbmZvcm1hdGlvbiIsImRlc2MxMCI6IkNvbW1vbiBwcm9ibGVtIHNvbHZpbmciLCJkZXNjMTEiOiJJZiB5b3UgaGF2ZSBhbnkgcXVlc3Rpb25zLCBwbGVhc2UgY29udGFjdCB1cyIsImRlc2MxMiI6Ildpbi13aW4gY29vcGVyYXRpb24ifSwiYXJ0aWNsZSI6eyJ0aXRsZTEiOiJUaGUgY29udmVyZ2VuY2Ugb2YgYmFua3MgYW5kIGRpZ2l0YWwgZmluYW5jZTogbWFraW5nIGJhbmtzIHJpc2tpZXIgb3IgZmludGVjaCBzYWZlcj8iLCJkZXNjMSI6Ik92ZXIgdGhlIHBhc3QgZmV3IHllYXJzLCB0aGUgbGluZSBiZXR3ZWVuIHRyYWRpdGlvbmFsIGJhbmtpbmcgYW5kIGRpZ2l0YWwgZmluYW5jZSBoYXMgc3RlYWRpbHkgYmx1cnJlZC4gV2hhdCB3YXMgb25jZSBhIHBhcmFsbGVsIHJhY2UgaXMgbm93IGJlY29taW5nIiwidGl0bGUyIjoiRnJvbSBDb252ZW5pZW5jZSB0byBTZWN1cml0eTogQ3JlZGl0IENhcmRzIGFuZCB0aGUgUXVlc3QgZm9yIHRoZSBQYXltZW50IEhvbHkgR3JhaWwiLCJkZXNjMiI6IkluIHRoZSBwYXltZW50cyBpbmR1c3RyeSwgc2VhbWxlc3MgdXNlciBleHBlcmllbmNlIGFuZCByb2J1c3Qgc2VjdXJpdHkgYXJlIG9mdGVuIHNlZW4gYXMgb3Bwb3NpbmcgZm9yY2VzLiBPbiBvbmUgaGFuZCwgY29uc3VtZXJzIGV4cGVjdCBmYXN0LCBpbnR1aXRpdmUgdHJhbnNhY3Rpb25z4oCUdGFwIGFuZCBnby4iLCJ0aXRsZTMiOiJTZXZlbiBNYWpvciBQYXltZW50IFRyZW5kcyBpbiAyMDI1OiBUZWNobm9sb2d5LURyaXZlbiBUcmFuc2Zvcm1hdGlvbiBSZWRlZmluZXMgUGF5bWVudHMiLCJkZXNjMyI6IkFzIHdlIGVudGVyIDIwMjUsIHRoZSBnbG9iYWwgcGF5bWVudCBsYW5kc2NhcGUgaXMgdW5kZXJnb2luZyByYXBpZCBldm9sdXRpb24uIEVtZXJnaW5nIHRlY2hub2xvZ2llcyBzdWNoIGFzIGFydGlmaWNpYWwgaW50ZWxsaWdlbmNlIChBSSksIGRpc3RyaWJ1dGVkIGxlZGdlciB0ZWNobm9sb2d5LCBhbmQgZGlnaXRhbCBpZGVudGl0eSBhcmUgcHJvZm91bmRseSByZXNoYXBpbmcgdGhlIHdheSBwYXltZW50cyBhcmUgaW5pdGlhdGVkLCBwcm9jZXNzZWQsIGFuZCBzZWN1cmVkLiIsInRpdGxlNCI6IkFnZW50IENvbW1lcmNlOiBUaGUgRnV0dXJlIG9mIERpZ2l0YWwgUGF5bWVudHMgUG93ZXJlZCBieSBBSSIsImRlc2M0IjoiQXMgZGlnaXRhbCBjb21tZXJjZSBjb250aW51ZXMgdG8gZXZvbHZlLCB0aHJlZSBvZiB0aGUgd29ybGTigJlzIGxlYWRpbmcgcGF5bWVudCBjb21wYW5pZXMg4oCUIFZpc2EsIE1hc3RlcmNhcmQsIGFuZCBQYXlQYWwg4oCUIGFyZSByYWNpbmcgdG93YXJkIHRoZSBuZXh0IGZyb250aWVyOiBhZ2VudC1iYXNlZCBhcnRpZmljaWFsIGludGVsbGlnZW5jZS4iLCJ0aXRsZTUiOiJFdXJvcGVhbiBDZW50cmFsIEJhbmsgTGF1bmNoZXMgSW5ub3ZhdGlvbiBIdWIgdG8gQWR2YW5jZSBEaWdpdGFsIEV1cm8gYW5kIENCREMgVXNlIENhc2VzIiwiZGVzYzUiOiJUbyBhY2NlbGVyYXRlIHRoZSByZXNlYXJjaCBhbmQgcG90ZW50aWFsIGltcGxlbWVudGF0aW9uIG9mIGEgY2VudHJhbCBiYW5rIGRpZ2l0YWwgY3VycmVuY3kgKENCREMpLCB0aGUgRXVyb3BlYW4gQ2VudHJhbCBCYW5rIChFQ0IpIGhhcyBvZmZpY2lhbGx5IGxhdW5jaGVkIHRoZSBEaWdpdGFsIEV1cm8gSW5ub3ZhdGlvbiBQbGF0Zm9ybSIsInRpdGxlNiI6IlVuZGVyc3RhbmRpbmcgQ3JlZGl0IENhcmQgVGVybWlub2xvZ3kgfCBXaGF0IElzIGEgQ2FyZCBGZWUiLCJkZXNjNiI6IldoZW4gdXNpbmcgYSBjcmVkaXQgb3IgdmlydHVhbCBjYXJkLCBoYXZlIHlvdSBldmVyIG5vdGljZWQgdmFyaW91cyBjaGFyZ2VzIGxpc3RlZCBvbiB5b3VyIHN0YXRlbWVudD8iLCJ0aXRsZTciOiIyMDI1IGFuYWx5c2lzIG9mIHBheW1lbnRzIGFuZCBlY29tbWVyY2UgdHJlbmRzIiwiZGVzYzciOiJBcyB0aGUgbGFyZ2VzdCBlY29ub215IGluIFNvdXRoZWFzdCBBc2lh4oCUd2l0aCBhIHBvcHVsYXRpb24gb2YgMjc4LjMgbWlsbGlvbuKAlEluZG9uZXNpYSBvZmZlcnMgaW1tZW5zZSBvcHBvcnR1bml0aWVzIGluIGUtY29tbWVyY2UgYW5kIGRpZ2l0YWwgcGF5bWVudHMuIiwidGl0bGU4IjoiQ3JlZGl0IENhcmQgU2tpbW1pbmc6IDUgU2lnbnMgWW914oCZcmUgYXQgUmlzayAmIEhvdyB0byBTdG9wIEl0IE5vdyIsImRlc2M4IjoiQXMgZGlnaXRhbCBwYXltZW50cyBiZWNvbWUgaW5jcmVhc2luZ2x5IHdpZGVzcHJlYWQsIGNyZWRpdCBjYXJkIGZyYXVkIGhhcyBlbWVyZ2VkIGFzIGFuIHVuYXZvaWRhYmxlIHJpc2sgZm9yIGNvbnN1bWVycy4gQWNjb3JkaW5nIHRvIHN0YXRpc3RpY3MsIDgyJSBvZiBBbWVyaWNhbiBhZHVsdHMgZXhwZXJpZW5jZWQgc29tZSBmb3JtIG9mIGNyZWRpdCBjYXJkIGZyYXVkIGluIDIwMjMiLCJ0aXRsZTkiOiJWaXJ0dWFsIFdhbGxldHMsIFJlYWwgUG93ZXI6IDEwIE11c3QtSGF2ZSBWaXJ0dWFsIENhcmRzIGZvciBTZWN1cmUgU3BlbmRpbmcgaW4gMjAyNSIsImRlc2M5IjoiU2F5IGdvb2RieWUgdG8gZGlnZ2luZyBmb3IgYSBwaHlzaWNhbCBjYXJkIG9yIGZlYXJpbmcgeW91ciBudW1iZXIgd2lsbCBiZSBjb21wcm9taXNlZC4gVmlydHVhbCBjcmVkaXQgY2FyZHMgKFZDQ3MpIGFyZW7igJl0IGp1c3QgYSB0cmVuZOKAlHRoZXnigJlyZSBlc3NlbnRpYWwgdG9vbHMgZm9yIG5hdmlnYXRpbmcgdG9kYXnigJlzIGRpZ2l0YWwgZmluYW5jaWFsIGxhbmRzY2FwZS4iLCJ0aXRsZTEwIjoiS1lDIHZzLiBBTUw6IEEgQ29tcGxpYW5jZSBEZWVwIERpdmUgZm9yIHRoZSBQYXltZW50cyBJbmR1c3RyeSIsImRlc2MxMCI6IkluIHRvZGF54oCZcyByYXBpZGx5IGV2b2x2aW5nIGRpZ2l0YWwgcGF5bWVudHMgbGFuZHNjYXBlLCByZWd1bGF0b3J5IGNvbXBsaWFuY2UgaXMgYSB0b3AgcHJpb3JpdHkgZm9yIGZpbmFuY2lhbCBpbnN0aXR1dGlvbnMgYW5kIGJ1c2luZXNzZXMgYWxpa2UuIEFudGktTW9uZXkgTGF1bmRlcmluZyAoQU1MKSBhbmQgS25vdyBZb3VyIEN1c3RvbWVyIChLWUMpIGFyZSB0aGUgdHdvIGZvdW5kYXRpb25hbCBwaWxsYXJzIG9mIHBheW1lbnQgY29tcGxpYW5jZS4gIiwidGl0bGUxMSI6IkZhY2Vib29rIEFjY291bnQgVHlwZXMgRXhwbGFpbmVkOiBXaGljaCBPbmUgSXMgUmlnaHQgZm9yIFlvdT8iLCJkZXNjMTEiOiJBcyBhIGRvbWluYW50IGZvcmNlIGluIHRoZSBnbG9iYWwgc29jaWFsIG1lZGlhIGxhbmRzY2FwZSwgRmFjZWJvb2sgY29ubmVjdHMgaW5kaXZpZHVhbHMsIGJyYW5kcywgYnVzaW5lc3NlcywgYW5kIGRldmVsb3BlcnMgdGhyb3VnaCBhIGNvbXByZWhlbnNpdmUgZWNvc3lzdGVtIG9mIGFjY291bnQgdHlwZXMgYW5kIGZ1bmN0aW9uYWxpdGllcy4iLCJ0aXRsZTEyIjoiV2hhdCBEb2VzIOKAnFBlbmRpbmfigJ0gTWVhbiBpbiBQYXltZW50PyBDYXVzZXMsIER1cmF0aW9uLCBhbmQgUmlzayBNYW5hZ2VtZW50IiwiZGVzYzEyIjoiSW4gbW9kZXJuIHBheW1lbnQgc3lzdGVtc+KAlHdoZXRoZXIgdXNpbmcgY3JlZGl0IGNhcmRzLCBkZWJpdCBjYXJkcywgdmlydHVhbCBjYXJkcywgb3IgZS13YWxsZXRz4oCUdXNlcnMgb2Z0ZW4gZW5jb3VudGVyIGEgZmFtaWxpYXIgc3RhdHVzIGFmdGVyIGluaXRpYXRpbmcgYSB0cmFuc2FjdGlvbjog4oCcUGVuZGluZy7igJ0ifX0sIndoaXRlIjp7InQxIjoiV2hpdGUgTGFiZWwgVmlydHVhbCBDYXJkIFBsYXRmb3JtICYgRGlnaXRhbCBQYXltZW50cyB8IEJ1dmVpIiwidDIiOiJMYXVuY2ggWW91ciBPd24gQnJhbmRlZCBWaXJ0dWFsIENhcmQgUHJvZ3JhbSDigJQgRmFzdCwgR2xvYmFsLEZ1bGx5IEN1c3RvbWl6YWJsZSIsInQzIjoiQnV2ZWkgZW5hYmxlcyBlbnRlcnByaXNlcywgZmludGVjaCBwbGF0Zm9ybXMsIGFuZCBkaWdpdGFsIHdhbGxldHMgdG8gbGF1bmNoIGFuZCBtYW5hZ2Ugd2hpdGUtbGFiZWwgVmlzYSBhbmQgTWFzdGVyY2FyZCB2aXJ0dWFsIGNhcmQgcHJvZ3JhbXMgdW5kZXIgdGhlaXIgb3duIGJyYW5kLCB3aXRoIGZsZXhpYmxlIGN1c3RvbWl6YXRpb24sIG11bHRpLXJlZ2lvbiBCSU4gc3VwcG9ydCwgc2VhbWxlc3MgQVBJIGludGVncmF0aW9uLCBhbmQgZW50ZXJwcmlzZS1ncmFkZSBjb21wbGlhbmNlLiIsInQ0IjoiQm9vayBhIERlbW8iLCJ0NSI6IkNvbnRhY3QgU2FsZXMiLCJ0NiI6IlJhcGlkIFRpbWUtdG8tTWFya2V0IiwidDciOiJMYXVuY2ggWW91ciBPd24gQnJhbmRlZCBWaXJ0dWFsIENhcmQgUHJvZ3JhbSB3aXRoIFNwZWVkLCBHbG9iYWwgUmVhY2gsIGFuZCBGdWxsIEN1c3RvbWl6YXRpb24iLCJ0OCI6IkZ1bGx5IEJyYW5kZWQgQ2FyZCBFeHBlcmllbmNlIiwidDkiOiJDdXN0b21pemUgY2FyZCBkZXNpZ25zLCBiaWxsaW5nIGRlc2NyaXB0b3JzLCB1c2VyIGludGVyZmFjZXMsIGFuZCBjYXJkIHN0YXRlbWVudHMgdG8gZGVsaXZlciBhIHNlYW1sZXNzIGNhcmQgZXhwZXJpZW5jZSBhbGlnbmVkIHdpdGggeW91ciBicmFuZCBpZGVudGl0eS4iLCJ0MTAiOiJHbG9iYWwgUGF5bWVudCBPcHRpbWl6YXRpb24gd2l0aCBNdWx0aS1SZWdpb24gQklOcyIsInQxMSI6IkFjY2VzcyBtdWx0aS1yZWdpb24sIGhpZ2gtYXBwcm92YWwtcmF0ZSBCSU5zIG9wdGltaXplZCBmb3IgU2FhUywgc3Vic2NyaXB0aW9uIGJpbGxpbmcsYWR2ZXJ0aXNpbmcgc3BlbmQsIGFuZCBjcm9zcy1ib3JkZXIgZS1jb21tZXJjZSBwYXltZW50cy4iLCJ0MTIiOiJGbGV4aWJsZSBDYXJkIEZ1bmRpbmciLCJ0MTMiOiJFbmFibGUgaW5zdGFudCBmdW5kaW5nIHZpYSBtdWx0aXBsZSBwYXltZW50IG1ldGhvZHMsIHN1cHBvcnRpbmcgZGlnaXRhbC1uYXRpdmUgcGxhdGZvcm1zIGFuZCBnbG9iYWwgdXNlcnMuIiwidDE0IjoiT3BlcmF0aW9uYWwgRWZmaWNpZW5jeSIsInQxNSI6IldlIG1hbmFnZSBpc3N1aW5nLCBzZXR0bGVtZW50LCBjb21wbGlhbmNlLCBhbmQgcmlzaywgYWxsb3dpbmcgeW91ciB0ZWFtIHRvIGZvY3VzIG9uIGNvcmUgYnVzaW5lc3MuIiwidDE2IjoiV2h5IENob29zZSBCdXZlaSBmb3IgV2hpdGUtTGFiZWwgQ2FyZCBJc3N1aW5nPyIsInQxNyI6IkxhdW5jaCB5b3VyIHdoaXRlLWxhYmVsIGNhcmQgcHJvZ3JhbSB3aXRoaW4gd2Vla3Mgd2l0aG91dCBlc3RhYmxpc2hpbmcgYmFuayBwYXJ0bmVyc2hpcHMsIHNldHRsZW1lbnQgc3lzdGVtcywgb3IgY29tcGxleCByZWd1bGF0b3J5IGluZnJhc3RydWN0dXJlLiIsInQxOCI6IkFjY2VzcyBjYXJkIEJJTnMgYWNyb3NzIGtleSByZWdpb25zIGluY2x1ZGluZyB0aGUgVVMsIFVLLCBIb25nIEtvbmcsIFNpbmdhcG9yZSwgYW5kIG1vcmUuIiwidDE5IjoiR2VvZ3JhcGhpYyBCSU4gbWF0Y2hpbmcgaGVscHMgcmVkdWNlIGZhbHNlIGRlY2xpbmVzIGFuZCBsb2NhdGlvbi1iYXNlZCBhdXRob3JpemF0aW9uIG1pc21hdGNoZXMuIiwidDIwIjoiU3VwcG9ydCBmb3IgQXBwbGUgUGF5IGFuZCBHb29nbGUgUGF5IHRva2VuaXphdGlvbiBhY3Jvc3Mgc3VwcG9ydGVkIHJlZ2lvbnMuIiwidDIxIjoiT3B0aW1pemVkIGZvciBhZHZlcnRpc2luZyBzcGVuZCwgU2FhUyBzdWJzY3JpcHRpb25zLCBCMkIgcGF5bWVudHMsIHRyYXZlbCBib29raW5ncyxhbmQgZ2xvYmFsIGUtY29tbWVyY2UgdHJhbnNhY3Rpb25zLiIsInQyMiI6Ik11bHRpLVJlZ2lvbiwgTXVsdGktQklOIENhcmQgSXNzdWluZyBBcmNoaXRlY3R1cmUiLCJ0MjMiOiJEZXNpZ25lZCB0byBpbXByb3ZlIGdsb2JhbCBwYXltZW50IGFjY2VwdGFuY2UgYW5kIGFwcHJvdmFsIHJhdGVzIGFjcm9zcyBtdWx0aXBsZSByZWdpb25zLiIsInQyNCI6IkFkdmVydGlzaW5nICYgTWFya2V0aW5nIEFnZW5jaWVzIiwidDI1IjoiQWNjZXNzIG11bHRpcGxlIGhpZ2gtYXBwcm92YWwtcmF0ZSBCSU5zIHRvIHJlZHVjZSBhZCBzcGVuZCBpbnRlcnJ1cHRpb25zIGFjcm9zcyBwbGF0Zm9ybXMgc3VjaCBhcyBGYWNlYm9vaywgR29vZ2xlLCBUaWtUb2ssIGFuZCBDaGF0R1BULiIsInQyNiI6IkRpZ2l0YWwgUGxhdGZvcm1zICYgRmludGVjaCBQcm9qZWN0cyIsInQyNyI6IkVuYWJsZSBpbnN0YW50IHRvcC11cHMgd2l0aCBzcGVuZGFibGUgdmlydHVhbCBjYXJkcyBmb3IgYWR2ZXJ0aXNpbmcgcGF5bWVudHMsIFNhYVMgdG9vbHMsIGFuZCBzdWJzY3JpcHRpb24gbWFuYWdlbWVudC4iLCJ0MjgiOiJFbnRlcnByaXNlIFNhYVMgJiBCMkIgUGxhdGZvcm1zIiwidDI5IjoiSXNzdWUgdGVhbSB2aXJ0dWFsIGNhcmRzLCBlbmZvcmNlIHNwZW5kIGNvbnRyb2xzLCBhbmQgdW5sb2NrIG5ldyByZXZlbnVlIHN0cmVhbXMgdGhyb3VnaCBjYXJkLWFzLWEtc2VydmljZSBvZmZlcmluZ3MuIiwidDMwIjoiRmludGVjaCBTdGFydHVwcyAmIERpZ2l0YWwgV2FsbGV0cyIsInQzMSI6IlF1aWNrbHkgbGF1bmNoIGJyYW5kZWQgdmlydHVhbCBjYXJkIHByb2dyYW1zIHdpdGhvdXQgYnVpbGRpbmcgaW4taG91c2UgYmFua2luZyBvciBpc3N1aW5nIGluZnJhc3RydWN0dXJlLiIsInQzMiI6Ikdsb2JhbCBDb3Jwb3JhdGVzIiwidDMzIjoiTWFuYWdlIGVtcGxveWVlIHNwZW5kLCBzdWJzY3JpcHRpb25zLCB0cmF2ZWwsIGFuZCBtdWx0aS1jdXJyZW5jeSBvcGVyYXRpb25zIHdpdGggY3VzdG9taXphYmxlIGxpbWl0cywgY29udHJvbHMsIGFuZCBjZW50cmFsaXplZCBvdmVyc2lnaHQuIiwidDM0IjoiV2hvIEJlbmVmaXRzIGZyb20gQnV2ZWk/IiwidDM1IjoiV2hpdGUtTGFiZWwgVXNlciBJbnRlcmZhY2UiLCJ0MzYiOiJNYW5hZ2UgY2FyZHMsIHNwZW5kaW5nIGxpbWl0cywgYW5kIGNvbnRyb2wgcnVsZXMgdGhyb3VnaCBhIGZ1bGx5IGJyYW5kZWQgdXNlciBpbnRlcmZhY2UuIiwidDM3IjoiRW50ZXJwcmlzZSBBZG1pbiBEYXNoYm9hcmQiLCJ0MzgiOiJTdXBwb3J0IGJ1bGsgY2FyZCBpc3N1YW5jZSwgdGVhbSBtYW5hZ2VtZW50LCBhbmQgdHJhbnNhY3Rpb24gcmVwb3J0aW5nIGF0IHNjYWxlLiIsInQzOSI6IkVuZC10by1FbmQgSXNzdWluZyBBUEkiLCJ0NDAiOiJFbmFibGUgcHJvZ3JhbW1hdGljIGNhcmQgY3JlYXRpb24sIGxpZmVjeWNsZSBjb250cm9sLCBhbmQgcmVhbC10aW1lIG1vbml0b3JpbmcgdmlhIEFQSXMuIiwidDQxIjoiTXVsdGktQklOIFJvdXRpbmcgJiBJbnRlcm5hdGlvbmFsIFBheW1lbnRzIiwidDQyIjoiT3B0aW1pemUgdHJhbnNhY3Rpb24gcm91dGluZyBmb3IgaGlnaGVyIGdsb2JhbCBwYXltZW50IGFjY2VwdGFuY2UgcmF0ZXMuIiwidDQzIjoiSW5zdGFudCBUb3AtVXAgSW5mcmFzdHJ1Y3R1cmUiLCJ0NDQiOiJTdXBwb3J0IGF1dG9tYXRlZCBjcmVkaXRpbmcgZm9yIGRpZ2l0YWwtbmF0aXZlIGFuZCBnbG9iYWwgcGxhdGZvcm1zLiIsInQ0NSI6IlJpc2sgJiBDb21wbGlhbmNlIEVuZ2luZSIsInQ0NiI6IkFwcGx5IE1DQy1iYXNlZCBydWxlcywgZ2VvLWJsb2NraW5nLCAzRCBTZWN1cmUsIHJlYWwtdGltZSBmcmF1ZCBkZXRlY3Rpb24sS1lDL0FNTCB2ZXJpZmljYXRpb24sIGFuZCBzYW5jdGlvbnMgc2NyZWVuaW5nLiIsInQ0NyI6IkFwcGxlIFBheSAvIEdvb2dsZSBQYXkgVG9rZW5pemF0aW9uIiwidDQ4IjoiRW5hYmxlIHRva2VuaXphdGlvbiB0byBpbXByb3ZlIHBheW1lbnQgYWNjZXB0YW5jZSBhbmQgdXNlciBleHBlcmllbmNlIGdsb2JhbGx5LiIsInQ0OSI6IlZpcnR1YWwgQ2FyZCBMaWZlY3ljbGUgTWFuYWdlbWVudCIsInQ1MCI6Ikluc3RhbnQgY2FyZCBjcmVhdGlvbiwgZnJlZXppbmcsIHRlcm1pbmF0aW9uLCBhbmQgcHJvZ3JhbW1hdGljIGxpZmVjeWNsZSBjb250cm9scy4iLCJ0NTEiOiJDcmVhdGUgLyBGcmVlemUgLyBEZWxldGUiLCJ0NTIiOiJUZWFtIGFuZCBVc2VyIE1hbmFnZW1lbnQiLCJ0NTMiOiJNYW5hZ2Ugcm9sZXMsIHBlcm1pc3Npb25zLCBhbmQgZ3JvdXAtYmFzZWQgY2FyZCBhY2Nlc3MgYWNyb3NzIHRlYW1zLiIsInQ1NCI6IlJvbGVzIC8gTWVtYmVycyAvIENhcmRzIiwidDU1IjoiUmVhbC1UaW1lIEFuYWx5dGljcyBhbmQgV2ViaG9va3MiLCJ0NTYiOiJNb25pdG9yIHRvcC11cHMsIHNwZW5kaW5nIGFjdGl2aXR5LCBhbmQgY29zdCByZXBvcnRpbmcgaW4gcmVhbCB0aW1lLiIsInQ1NyI6IkRhc2hib2FyZHMgLyBXZWJob29rcyIsInQ1OCI6IlNlY3VyaXR5IGFuZCBGcmF1ZCBDb250cm9scyIsInQ1OSI6IkFwcGx5IGhpZ2gtcmlzayBNQ0MgYmxvY2tpbmcsIGdlb2xvY2F0aW9uIGFub21hbHkgZGV0ZWN0aW9uLGFuZCByZWFsLXRpbWUgdHJhbnNhY3Rpb24gbW9uaXRvcmluZy4iLCJ0NjAiOiJSdWxlcyAvIE1vbml0b3JpbmciLCJ0NjEiOiJQaHlzaWNhbCBDYXJkIFJvYWRtYXAiLCJ0NjIiOiJPcHRpb25hbCBwaHlzaWNhbCBjYXJkIGlzc3VhbmNlIHBsYW5uZWQgZm9yIDIwMjYuIiwidDYzIjoiUGh5c2ljYWwgY2FyZCBwcmV2aWV3IiwidDY0IjoiQ29yZSBDYXJkIElzc3VpbmcgUGxhdGZvcm0gQ2FwYWJpbGl0aWVzIiwidDY1IjoiQ29tcGxldGUgQ2FyZCBJc3N1aW5nIGFuZCBTZXR0bGVtZW50IFN5c3RlbSIsInQ2NiI6IkJ1dmVpIGlzIG5vdCBqdXN0IGEgY2FyZCBwcm92aWRlciDigJQgaXQgaXMgYSBmdWxsLXN0YWNrIGNhcmQgaXNzdWluZyBhbmQgc2V0dGxlbWVudCBwbGF0Zm9ybS4iLCJ0NjciOiJCdXNpbmVzcyBDb25zdWx0YXRpb24gJlxuUmVxdWlyZW1lbnQgTWFwcGluZyIsInQ2OCI6IldoaXRlLUxhYmVsIENvbmZpZ3VyYXRpb25cbiYgQnJhbmQgQWRhcHRhdGlvbiIsInQ2OSI6IkFQSSAvIERhc2hib2FyZCBJbnRlZ3JhdGlvbiIsInQ3MCI6IlNhbmRib3ggVGVzdGluZyIsInQ3MSI6IlByb2R1Y3Rpb24gTGF1bmNoIiwidDcyIjoiQ29udGludW91cyBTdXBwb3J0XG4mIE9wdGltaXphdGlvbiIsInQ3MyI6IldoaXRlLUxhYmVsIENhcmQgSW50ZWdyYXRpb24gV29ya2Zsb3cg4oCTIExhdW5jaCBpbiBXZWVrcyIsInQ3NCI6Ik11bHRpLVJlZ2lvbiwgTXVsdGktQklOIENhcmQgSXNzdWluZyBCdWlsdCBmb3IgR2xvYmFsIFNjYWxlIiwidDc1IjoiSW1wcm92ZSBnbG9iYWwgcGF5bWVudCBhY2NlcHRhbmNlIGFuZCBhcHByb3ZhbCByYXRlcyB3aXRoIHJlZ2lvbi1zcGVjaWZpYyBCSU5zIGFuZCBvcHRpbWl6ZWQgY2FyZCBpc3N1aW5nIGluZnJhc3RydWN0dXJlLiIsInQ3NiI6IkxhdW5jaCB5b3VyIG93biB3aGl0ZSBsYWJlbCB2aXJ0dWFsIGNhcmQgYW5kIGRpZ2l0YWwgcGF5bWVudCBwbGF0Zm9ybSB3aXRoIEJ1dmVpLiBCdWlsdC1pbiBLWUMsIEFNTCwgbXVsdGktY3VycmVuY3kgd2FsbGV0cywgdGVhbSBtYW5hZ2VtZW50LCBhbmQgQVBJLXJlYWR5IGluZnJhc3RydWN0dXJlIGZvciBmYXN0IHNjYWxpbmcuIiwidDc4IjoiV2hpdGUtTGFiZWwgVmlydHVhbCBDYXJkIElzc3VpbmcgU29sdXRpb24gZm9yIEdsb2JhbCBCdXNpbmVzc2VzIiwidDc5IjoiQnV2ZWkgbGV0cyBmaW50ZWNocywgd2FsbGV0cywgYW5kIGVudGVycHJpc2VzIGxhdW5jaCBicmFuZGVkIFZpc2EvTWFzdGVyY2FyZCB2aXJ0dWFsIGNhcmQgcHJvZ3JhbXMgaW4gd2Vla3MuIENob29zZSBmcm9tIFVTLCBVSywgSEssIGFuZCBTRyBCSU5zLCBmdW5kIGNhcmRzIHZpYSBtdWx0aXBsZSBwYXltZW50IG1ldGhvZHMsIGFuZCBtYW5hZ2UgaXNzdWFuY2UsIGNvbXBsaWFuY2UgKEtZQy9BTUwpLCBBcHBsZSBQYXkgdG9rZW5pemF0aW9uLCBhbmQgc2V0dGxlbWVudCB0aHJvdWdoIGEgc2luZ2xlIEFQSSDigJQgbm8gYmFuayBwYXJ0bmVyc2hpcHMgcmVxdWlyZWQuIiwidDgwIjoiIiwidDgxIjoiIiwidDgyIjoiIiwidDgzIjoiIiwidDg0IjoiIiwidDc3Ijoid2hpdGUgbGFiZWwgdmlydHVhbCBjYXJkcywgd2hpdGUgbGFiZWwgcGF5bWVudCBwbGF0Zm9ybSwgZGlnaXRhbCBwYXltZW50IGluZnJhc3RydWN0dXJlLCB2aXJ0dWFsIGNhcmQgaXNzdWluZyBBUEksIGZpbnRlY2ggd2hpdGUgbGFiZWwgc29sdXRpb24sIEtZQyBBTUwgcGF5bWVudHMsIG11bHRpLWN1cnJlbmN5IHdhbGxldCBwbGF0Zm9ybSwgQnV2ZWkifX19LCJpbml0aWFsTG9jYWxlIjoiZW4iLCJucyI6WyJjb21tb24iLCJ3aGl0ZSJdLCJ1c2VyQ29uZmlnIjp7ImRlYnVnIjpmYWxzZSwiaTE4biI6eyJkZWZhdWx0TG9jYWxlIjoiZW4iLCJsb2NhbGVzIjpbImVuIiwidmkiLCJydSIsImphIiwicHQiLCJhciIsImVzIiwiZnIiXX0sImxvY2FsZVBhdGgiOiIvYXBwL3B1YmxpYy9sb2NhbGVzIiwicmVsb2FkT25QcmVyZW5kZXIiOmZhbHNlLCJkb21haW5zIjpbeyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoiZW4ifSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJlbiIsImxvY2FsZXMiOlsiZW4iXX0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoidmkiLCJsb2NhbGVzIjpbInZpIl19LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6InJ1IiwibG9jYWxlcyI6WyJydSJdfSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJqYSIsImxvY2FsZXMiOlsiamEiXX0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoicHQiLCJsb2NhbGVzIjpbInB0Il19LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6ImFyIiwibG9jYWxlcyI6WyJhciJdfSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJlcyIsImxvY2FsZXMiOlsiZXMiXX0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoiZnIiLCJsb2NhbGVzIjpbImZyIl19XSwiZGVmYXVsdCI6eyJkZWJ1ZyI6ZmFsc2UsImkxOG4iOnsiZGVmYXVsdExvY2FsZSI6ImVuIiwibG9jYWxlcyI6WyJlbiIsInZpIiwicnUiLCJqYSIsInB0IiwiYXIiLCJlcyIsImZyIl19LCJsb2NhbGVQYXRoIjoiL2FwcC9wdWJsaWMvbG9jYWxlcyIsInJlbG9hZE9uUHJlcmVuZGVyIjpmYWxzZSwiZG9tYWlucyI6W3siZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6ImVuIn0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoiZW4iLCJsb2NhbGVzIjpbImVuIl19LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6InZpIiwibG9jYWxlcyI6WyJ2aSJdfSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJydSIsImxvY2FsZXMiOlsicnUiXX0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoiamEiLCJsb2NhbGVzIjpbImphIl19LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6InB0IiwibG9jYWxlcyI6WyJwdCJdfSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJhciIsImxvY2FsZXMiOlsiYXIiXX0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoiZXMiLCJsb2NhbGVzIjpbImVzIl19LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6ImZyIiwibG9jYWxlcyI6WyJmciJdfV19fX19LCJfX05fU1NHIjp0cnVlfQ=="}},"time_used":139,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":139,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"client.crisp.chat/settings/website/04c4ac10-ff79-40d3-97b2-e069177c1b37/prelude/?2026-6-27-4-47","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:49.543Z","timestamp":1785127669543,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /settings/website/04c4ac10-ff79-40d3-97b2-e069177c1b37/prelude/?2026-6-27-4-47 HTTP/1.1\r\nHost: client.crisp.chat\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://buvei.com/\r\nOrigin: https://buvei.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 04:47:49 GMT\r\ncontent-type: application/json; charset=utf-8\r\naccess-control-allow-credentials: false\r\naccess-control-allow-headers: Content-Type, Origin\r\naccess-control-allow-methods: HEAD, GET, OPTIONS\r\naccess-control-allow-origin: *\r\naccess-control-max-age: 300\r\ncache-control: public, max-age=14400\r\ncross-origin-resource-policy: cross-origin\r\nexpires: Mon, 27 Jul 2026 08:47:49 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\npriority: u=4,i=?0\r\nlast-modified: Mon, 27 Jul 2026 04:47:49 GMT\r\ncf-cache-status: MISS\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\ncontent-encoding: br\r\ncf-ray: a219021eab73c759-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":299,"size_decoded":894,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"6a24552526f65a5d24c0e9a34732a081","sha1":"e2b6cb7133764c3ff9f9528c74d360412f106dc7","sha256":"3b4cf20df74c587aef5f589d4beae13de0fe5b2eabfbfde37fe1683b13c74b6c","sha512":"425040616fe0704991e804dad5500e5dc47c2f288e0baddbccd7b77b350d53c356c4af942588e7717732a2a5e9fcb8ddf18ffb3898c942b0e377d360bf97ce20","ssdeep":"","tlshash":"01e0c29b6ad640706bb4431e140cb95d247741af51a9307ed4889c2c2c332e92a36230","first_seen":"2026-07-27T03:56:11.633856Z","last_seen":"2026-07-27T10:05:53.915623Z","times_seen":4,"resource_available":false,"data":"eyJzb2NrZXQiOnRydWUsImJ1c3RlciI6MTc4MzE3MDIwODg1NSwiZW5kcG9pbnRzIjp7InNvY2tldCI6eyJjbGllbnQiOiJodHRwczovL2NsaWVudC5yZWxheS5jcmlzcC5jaGF0L3cvZGE4LyIsInN0cmVhbSI6Imh0dHBzOi8vc3RyZWFtLnJlbGF5LmNyaXNwLmNoYXQvdy9kYTgvIn0sInJlc2N1ZSI6eyJzb2NrZXQiOnsiY2xpZW50IjoiaHR0cHM6Ly9jbGllbnQucmVsYXkucmVzY3VlLmNyaXNwLmNoYXQvdy9kYTgvIiwic3RyZWFtIjoiaHR0cHM6Ly9zdHJlYW0ucmVsYXkucmVzY3VlLmNyaXNwLmNoYXQvdy9kYTgvIn19fX0="}},"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":"client.crisp.chat/static/javascripts/main_default_23e42123.js","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:50.226Z","timestamp":1785127670226,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /static/javascripts/main_default_23e42123.js HTTP/1.1\r\nHost: client.crisp.chat\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://buvei.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://client.crisp.chat/static/javascripts/client_default_23e4212.js\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-type: application/javascript\r\naccess-control-allow-credentials: false\r\naccess-control-allow-headers: Content-Type, Origin\r\naccess-control-allow-methods: HEAD, GET, OPTIONS\r\naccess-control-allow-origin: *\r\naccess-control-max-age: 300\r\ncache-control: public, max-age=315360000\r\ncross-origin-resource-policy: cross-origin\r\nx-content-type-options: nosniff\r\nexpires: Thu, 24 Jul 2036 04:47:50 GMT\r\nlast-modified: Tue, 21 Jul 2026 15:59:21 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\npriority: u=3,i=?0\r\nage: 30810\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: W/\"6a5f9759-ce\"\r\ncontent-encoding: br\r\ncf-ray: a2190222eae9c759-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":206,"size_decoded":946,"mime_type":"application/javascript","magic":"ASCII text","md5":"29fb31e55f0a059a6547280f7fbb0c49","sha1":"a708bfa0b8e2345ca1c984a3731cc782a7c55435","sha256":"19bd7ff9519ab4a3c778c9f47d5c2748159a0aeeb98e55b82c79d48aa37e6402","sha512":"b7c19943dfb59850ac25db2cddb49e32e3e72979d1e50d4453200210edce97184ef75f36eb45b63db29935f8995ddf95c59be0cd6113154be3b50939dd214048","ssdeep":"","tlshash":"d2d0c92b2651c9ba71e906a980a050a2da62867f2752311492f8132a0ed54cdce5de25","first_seen":"2026-07-21T21:10:40.918217Z","last_seen":"2026-07-29T15:29:45.653651Z","times_seen":13,"resource_available":true,"data":"LyoqCiAqIGNyaXNwLWNsaWVudAogKiBAdmVyc2lvbiB2NC44LjcgMjNlNDIxMgogKiBAYXV0aG9yIENyaXNwIElNIFNBUwogKiBAZGF0ZSA3LzIxLzIwMjYKICovCmltcG9ydCIuL2NvbW1vbl9kZWZhdWx0XzIzZTQyMTIuanMiO2ltcG9ydHtuIGFzIGV9ZnJvbSIuL2ZlYXR1cmVzL2NoYXRfZGVmYXVsdF8yM2U0MjEyLmpzIjtleHBvcnR7ZSBhcyBkZWZhdWx0fTs="}},"time_used":9,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/chunks/221.40157ea5d05b1866.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.438Z","timestamp":1785127668438,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/static/chunks/221.40157ea5d05b1866.js HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: application/javascript; charset=UTF-8\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\ncache-control: public, max-age=31536000, immutable\r\naccept-ranges: bytes\r\nlast-modified: Mon, 29 Jun 2026 05:34:13 GMT\r\netag: W/\"2231-19f11def808\"\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nage: 188872\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=Zu%2FGrUl5pbNZpc07Nj10GEPtRPHr3Uc29IjDEn5tzz0KOkPk%2B07xzfzisOrnT9lLARWvl5DxtlwBxPrN3neEgmm8rklL1Bmg5Ivkh%2BIxo1448mHW%2BqMUnvVGaw%3D%3D\"}]}\r\ncf-ray: a2190217bb408be6-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"]}],"data":{"size":8753,"size_decoded":2736,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (8741), with no line terminators","md5":"1c2b49dd972044af622fd3c959a96e53","sha1":"064056ae6620a7c0ddf2ac08ed5e058b2cca7461","sha256":"f42a649a957ddbfa2352831d272163ef488e6fd4e4e55c5a69b4d7700793e68b","sha512":"b0246ee951df09bf1745364eed00c2ce43f0dfd0567f82c79584bcdbee1d808258589781a10727b215c45e720dffd0f9800e3ed83673cc0b9905dcc0e4c6cd1b","ssdeep":"192:EtDGAnh9paVpZhX297iPsqE/5PGqEYQPlqEq/P0AqEs8:EtDBVKrX297iPsqERPGqEdPlqEYP1qEp","tlshash":"d5020105cdc866a5fc22268d4476f9e5725f4bda61a78cfacc6b66300c841f8911eacf","first_seen":"2026-07-27T03:56:11.739192Z","last_seen":"2026-07-27T10:05:53.953452Z","times_seen":4,"resource_available":true,"data":"dHJ5eyFmdW5jdGlvbigpe3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sbj0obmV3IGUuRXJyb3IpLnN0YWNrO24mJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbbl09ImJhNDIwOWNiLWMxNjktNGJhMS05M2Q2LTNkYTE0ZDBkMzgyMyIsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9InNlbnRyeS1kYmlkLWJhNDIwOWNiLWMxNjktNGJhMS05M2Q2LTNkYTE0ZDBkMzgyMyIpfSgpfWNhdGNoKGUpe30idXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rX05fRT1zZWxmLndlYnBhY2tDaHVua19OX0V8fFtdKS5wdXNoKFtbMjIxXSx7ODAyMjE6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXtfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyksX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gSG9tZX19KTt2YXIgZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDM1OTQ0KTtfX3dlYnBhY2tfcmVxdWlyZV9fKDY3Mjk0KTt2YXIgdXNlUmVzcG9uc2l2ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDI4NzQzKSxjb250YWluZXI9X193ZWJwYWNrX3JlcXVpcmVfXyg2NjI1MSksZXNtPV9fd2VicGFja19yZXF1aXJlX18oODY5MCksbG9hZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDUxNjEwKSxjb21wb25lbnRzX2ltYWdlPV9fd2VicGFja19yZXF1aXJlX18oMTE1ODYpLGFudFN0eWxlPV9fd2VicGFja19yZXF1aXJlX18oOTIwNDEpLGNvbW1vbl9zdHlsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk3NjMxKTtsZXQgQ01QPXByb3BzPT4oMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgic3ZnIix7dmlld0JveDoiMCAwIDIwIDIwIiwuLi5wcm9wcyxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRlZnMiLHtjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgicmVjdCIse2lkOiJwYXRoLXBidTFfaDdlMGItMSIseDoiMCIseToiMCIsd2lkdGg6IjIwIixoZWlnaHQ6IjIwIn0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImciLHtpZDoi6aG16Z2iLTEiLHN0cm9rZToibm9uZSIsInN0cm9rZS13aWR0aCI6IjEiLGZpbGw6Im5vbmUiLCJmaWxsLXJ1bGUiOiJldmVub2RkIixjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZyIse2lkOiJDb250YWN0LVVzLSgxKSIsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJtYXNrIix7aWQ6Im1hc2stcGJ1MV9oN2UwYi0yIixmaWxsOiJ3aGl0ZSIsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoInVzZSIse3hsaW5rSHJlZjoiI3BhdGgtcGJ1MV9oN2UwYi0xIn0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImciLHtpZDoi55+p5b2iIn0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJwYXRoIix7ZDoiTTYuMDc1ODM2NDksMTcuMzUzNjkyMiBMMS42NjY2NTY0MiwxOC4zMzM3MDEgTDIuNjQ2NjY1NDksMTMuOTI0NDkyMiBDMi4wMDEyNzQ0OSwxMi43MTcyOTIyIDEuNjY0NjAzNjEsMTEuMzY5MTkyMiAxLjY2NjY1NjQyLDEwLjAwMDMyMjIgQzEuNjY2NjU2NDIsNS4zOTc4MjIxOSA1LjM5NzQ5NjQ5LDEuNjY2OTkyMTkgOS45OTk5OTY0OSwxLjY2Njk5MjE5IEMxNC42MDI0NTY1LDEuNjY2OTkyMTkgMTguMzMzMzU2NSw1LjM5NzgyMjE5IDE4LjMzMzM1NjUsMTAuMDAwMzIyMiBDMTguMzMzMzU2NSwxNC42MDI3OTIyIDE0LjYwMjQ1NjUsMTguMzMzNzAxIDkuOTk5OTk2NDksMTguMzMzNzAxIEM4LjYzMTEyNjQ5LDE4LjMzNTY5MjIgNy4yODMwMTY0OSwxNy45OTkwOTIyIDYuMDc1ODM2NDksMTcuMzUzNjkyMiBaIE02LjMxNzQ5NjQ5LDE1LjU5Mjc5MjIgTDYuODYxNjY2NDksMTUuODg0NDkyMiBDNy44MjcxMjY0OSwxNi40MDAzOTIyIDguOTA1MzI2NDksMTYuNjY5MjkyMiA5Ljk5OTk5NjQ5LDE2LjY2NzAwNjggQzEzLjY4MTg1NjUsMTYuNjY3MDA2OCAxNi42NjY2NTY1LDEzLjY4MjE5MjIgMTYuNjY2NjU2NSwxMC4wMDAzMjIyIEMxNi42NjY2NTY1LDYuMzE4NDMyMTkgMTMuNjgxODU2NSwzLjMzMzY2MjE5IDkuOTk5OTk2NDksMy4zMzM2NjIxOSBDNi4zMTgwOTY0OSwzLjMzMzY2MjE5IDMuMzMzMzM2NDksNi4zMTg0MzIxOSAzLjMzMzMzNjQ5LDEwLjAwMDMyMjIgQzMuMzMzMzM2NDksMTEuMTEyODMyMiAzLjYwNDE2NjQ5LDEyLjE4MTE5MjIgNC4xMTY2NjY0OSwxMy4xMzg2OTIyIEw0LjQwNzQ5NjQ5LDEzLjY4Mjc5MjIgTDMuODYxNjY2NDksMTYuMTM4NjkyMiBMNi4zMTc0OTY0OSwxNS41OTI3OTIyIFogTTUuODMzMzM2NDksMTAuMDAwMzIyMiBMNy40OTk5OTY0OSwxMC4wMDAzMjIyIEM3LjQ5OTk5NjQ5LDExLjM4MTA0MjIgOC42MTkyODY0OSwxMi41MDAyOTIyIDkuOTk5OTk2NDksMTIuNTAwMjkyMiBDMTEuMzgwNzE2NSwxMi41MDAyOTIyIDEyLjQ5OTk1NjUsMTEuMzgxMDQyMiAxMi40OTk5NTY1LDEwLjAwMDMyMjIgTDE0LjE2NjY1NjUsMTAuMDAwMzIyMiBDMTQuMTY1ODU2NSwxMi4zMDA5OTIyIDEyLjMwMDY1NjUsMTQuMTY1NTkyMiA5Ljk5OTk5NjQ5LDE0LjE2NTU5MjIgQzcuNjk5Mzc2NDksMTQuMTY1NTkyMiA1LjgzNDEyNjQ5LDEyLjMwMDk5MjIgNS44MzMzMzY0OSwxMC4wMDAzMjIyIFoiLGlkOiLlvaLnirYiLGZpbGw6IiNGRkZGRkYiLCJmaWxsLXJ1bGUiOiJub256ZXJvIixtYXNrOiJ1cmwoI21hc2stcGJ1MV9oN2UwYi0yKSJ9KV19KX0pXX0pO3ZhciBpbmRleF9zdHlsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDIwOTgyKSxjcmlzcF9lc209X193ZWJwYWNrX3JlcXVpcmVfXygzNjY2MSk7ZnVuY3Rpb24gSG9tZSgpe2xldHtzdHlsZXM6Y29tbW9uU3R5bGVzLGN4fT0oMCxjb21tb25fc3R5bGUuYykoKSx7c3R5bGVzfT0oMCxpbmRleF9zdHlsZS55KSgpLHt0YWJsZXQsbGFwdG9wLG1vYmlsZX09KDAsdXNlUmVzcG9uc2l2ZS5GKSgpLHt0fT0oMCxlc20uJEcpKFsiaW5kZXgiLCJjb21tb24iXSksb25PcGVuPSgpPT57Y3Jpc3BfZXNtLmZ2LmNoYXQub3BlbigpfTtyZXR1cm4oMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5tYWluLGNvbW1vblN0eWxlcy5tYWluUGFkZGluZzEyMCksY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoY29udGFpbmVyLlose2NoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxvYWQucnEse2NoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuZmxleFN0YXJ0LGNvbW1vblN0eWxlcy5mbGV4V3JhcCksY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrNkxlZnQsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJoMiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuaDIpLGNoaWxkcmVuOnQoInRpdGxlODkiLHtuczoiaW5kZXgifSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5zaXplMTYpLGNoaWxkcmVuOnQoInRpdGxlOTAiLHtuczoiaW5kZXgifSl9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgicCIse2NsYXNzTmFtZToidmlzdWFsbHktaGlkZGVuIixjaGlsZHJlbjp0KCJ0aXRsZTEwMSIse25zOiJpbmRleCJ9KX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLm10MzYpLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKGFudFN0eWxlLnQ4LHt0eXBlOiJwcmltYXJ5IixvbkNsaWNrOm9uT3BlbixjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoQ01QLHtjbGFzc05hbWU6c3R5bGVzLmNvbnRhY3RJY29ufSksIiAiLHQoIm1lbnUudGl0bGUxNyIse25zOiJjb21tb24ifSldfSl9KV19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KHN0eWxlcy5ibG9jazZSaWdodCxjb21tb25TdHlsZXMuZmxleENlbnRlckNlbnRlciksY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2s2SW1nLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7c3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDQyMjE2MDYwMmM4ODJiOTM0ODkud2VicCIsZmlsbDohMCxhbHQ6ImJ1dmVpIGNhcmQifSl9KX0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxvYWQuS0Yse2NoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLmZsZXgsY29tbW9uU3R5bGVzLmZsZXhXcmFwLHN0eWxlcy5ibG9jazZJdGVtV3JhcCksY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGxvYWQuTTMse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2s2SXRlbSxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrNkl0ZW1Db250ZW50LGNoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazZUaXRsZSxjaGlsZHJlbjoiMjIwKyJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5zaXplMTZOb0NvbG9yLGNvbW1vblN0eWxlcy5tdDEyKSxjaGlsZHJlbjp0KCJ0aXRsZTkxIix7bnM6ImluZGV4In0pfSldfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2s2SXRlbUltZyxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazZJdGVtSW1nV3JhcCxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShjb21wb25lbnRzX2ltYWdlLlose2ZpbGw6ITAsYWx0OiJnbG9iYWwiLHNyYzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MjIxNjIwMzJiZGVjMTA4NTAxLndlYnAifSl9KX0pXX0pfSwxKSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsb2FkLk0zLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrNkl0ZW0sY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazZJdGVtQ29udGVudCxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2s2VGl0bGUsY2hpbGRyZW46Ijk4JSJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOmN4KGNvbW1vblN0eWxlcy5zaXplMTZOb0NvbG9yLGNvbW1vblN0eWxlcy5tdDEyKSxjaGlsZHJlbjp0KCJ0aXRsZTkyIix7bnM6ImluZGV4In0pfSldfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2s2SXRlbUltZyxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazZJdGVtSW1nV3JhcCxjaGlsZHJlbjooMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShjb21wb25lbnRzX2ltYWdlLlose2ZpbGw6ITAsYWx0OiJnbG9iYWwiLHNyYzoiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MjIxNjIzNDY0NTg1N2RmY2YyLndlYnAifSl9KX0pXX0pfSwyKSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShsb2FkLk0zLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrNkl0ZW0sY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NoaWxkcmVuOlsoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazZJdGVtQ29udGVudCxjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2s2VGl0bGUsY2hpbGRyZW46IjEwLDAwMCsifSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpjeChjb21tb25TdHlsZXMuc2l6ZTE2Tm9Db2xvcixjb21tb25TdHlsZXMubXQxMiksY2hpbGRyZW46dCgidGl0bGU5MyIse25zOiJpbmRleCJ9KX0pXX0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrNkl0ZW1JbWcsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2s2SXRlbUltZ1dyYXAsY2hpbGRyZW46KDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoY29tcG9uZW50c19pbWFnZS5aLHtmaWxsOiEwLGFsdDoiZ2xvYmFsIixzcmM6Imh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDIyMTYyNDI5YjQxNWRmOTU3OS53ZWJwIn0pfSl9KV19KX0sMyksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikobG9hZC5NMyx7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazZJdGVtLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20uQlgpKCJkaXYiLHtjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoImRpdiIse2NsYXNzTmFtZTpzdHlsZXMuYmxvY2s2SXRlbUNvbnRlbnQsY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrNlRpdGxlLGNoaWxkcmVuOiI1MCslIn0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6Y3goY29tbW9uU3R5bGVzLnNpemUxNk5vQ29sb3IsY29tbW9uU3R5bGVzLm10MTIpLGNoaWxkcmVuOnQoInRpdGxlOTQiLHtuczoiaW5kZXgifSl9KV19KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKSgiZGl2Iix7Y2xhc3NOYW1lOnN0eWxlcy5ibG9jazZJdGVtSW1nLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJkaXYiLHtjbGFzc05hbWU6c3R5bGVzLmJsb2NrNkl0ZW1JbWdXcmFwLGNoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKGNvbXBvbmVudHNfaW1hZ2UuWix7ZmlsbDohMCxhbHQ6Imdsb2JhbCIsc3JjOiJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDQyMjE2MjUyOTA3ZDBkZjc5ZDIud2VicCJ9KX0pfSldfSl9LDQpXX0pfSldfSl9KX0pfSl9fX1dKTs="}},"time_used":6,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/6wYjP2KmMK9hAISorGh1P/_buildManifest.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.455Z","timestamp":1785127668455,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/static/6wYjP2KmMK9hAISorGh1P/_buildManifest.js HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: application/javascript; charset=UTF-8\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\ncache-control: public, max-age=31536000, immutable\r\naccept-ranges: bytes\r\nlast-modified: Sun, 26 Jul 2026 06:35:30 GMT\r\netag: W/\"bec-19f9d22c750\"\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nage: 66709\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=mWSPiuUR%2BfE52PK2nrOuyCN4a9q5fTMWeKDXHFFX3jpkotTRGc1jg0128e0nMtdqbwnF6qSxUbX%2F6UL%2BTBSrRxZ7wJwJ7sqQ1gBBgmJy%2FnzJId1cgLOQjdXlTQ%3D%3D\"}]}\r\ncf-ray: a2190217db8d8be6-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"]}],"data":{"size":3052,"size_decoded":1894,"mime_type":"application/javascript; charset=UTF-8","magic":"ASCII text, with very long lines (3052), with no line terminators","md5":"6fa233879bf4d220a702cfd565dbb730","sha1":"5befe492a5b5fbf92f5a895aa4ac1185dcfc6c1a","sha256":"82360c67b422e59e74cf93e216b15d71dbab3f37e134a08b317967bf3f4b1c10","sha512":"f4e3e0a484be77089fec566439b62de467224976f354c5900c47e045f754431d1b0eebcfde90ade4fe24d829354ee0c66463987df7227e67f5022f784a68267f","ssdeep":"","tlshash":"7b518f070245e4162ea1dd06782b13635ed0f63b9b394edde7dd0e2913c26f68b9e817","first_seen":"2026-07-27T03:56:11.702485Z","last_seen":"2026-07-27T04:49:42.854255Z","times_seen":3,"resource_available":true,"data":"c2VsZi5fX0JVSUxEX01BTklGRVNUPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCl7cmV0dXJue19fcmV3cml0ZXM6e2JlZm9yZUZpbGVzOltdLGFmdGVyRmlsZXM6W3tzb3VyY2U6ZCxoYXM6W3t0eXBlOmMsa2V5OmUsdmFsdWU6Zn0se3R5cGU6YyxrZXk6Zyx2YWx1ZTpofSx7dHlwZTpjLGtleToiciIsdmFsdWU6Iig/PHJlZ2lvbj5bYS16XXsyfSkifV19LHtzb3VyY2U6ZCxoYXM6W3t0eXBlOmMsa2V5OmUsdmFsdWU6Zn0se3R5cGU6YyxrZXk6Zyx2YWx1ZTpofV19XSxmYWxsYmFjazpbXX0sIi8iOltiLGEsInN0YXRpYy9jaHVua3MvcGFnZXMvaW5kZXgtOTBjZWE4MDU5YzQzMjc2Yy5qcyJdLCIvX2Vycm9yIjpbInN0YXRpYy9jaHVua3MvcGFnZXMvX2Vycm9yLTExMDMyMDgwMWYyMDYxNmYuanMiXSwiL2FwcGxlLXBheSI6W2IsYSwic3RhdGljL2NodW5rcy9wYWdlcy9hcHBsZS1wYXktZWQxMTg0YjM0Y2Y5NzUyYi5qcyJdLCIvYmluL1tpZF0iOltiLGEsInN0YXRpYy9jaHVua3MvcGFnZXMvYmluL1tpZF0tODFlMDg2MmU4MWMzNDhhNy5qcyJdLCIvYmluLXNlYXJjaCI6W2IsYSwic3RhdGljL2NodW5rcy9wYWdlcy9iaW4tc2VhcmNoLTI2OTgzOWQ4Yzc4NGY5NDAuanMiXSwiL2NvbnRhY3QtYnVzaW5lc3MiOltiLGEsInN0YXRpYy9jaHVua3MvcGFnZXMvY29udGFjdC1idXNpbmVzcy1hYWQ0OThmNmYyZjljODQ2LmpzIl0sIi9jb250YWN0LXVzIjpbYixhLCJzdGF0aWMvY2h1bmtzL3BhZ2VzL2NvbnRhY3QtdXMtMTM0Y2Q0MThiYmViZWM5My5qcyJdLCIvZGV2ZWxvcGVyIjpbYixhLCJzdGF0aWMvY2h1bmtzL3BhZ2VzL2RldmVsb3Blci00OWViMmQxNDExNDhkYTU5LmpzIl0sIi9kaXNjbGFpbWVyIjpbYixhLCJzdGF0aWMvY2h1bmtzL3BhZ2VzL2Rpc2NsYWltZXItNDk2NTBjY2ViZTlkZDgzMi5qcyJdLCIvZXNpbS1xci9baWRdIjpbYixhLCJzdGF0aWMvY2h1bmtzL3BhZ2VzL2VzaW0tcXIvW2lkXS1jZGU4NGFlOWJmZmQwYWUyLmpzIl0sIi9mYXEiOltiLGEsInN0YXRpYy9jaHVua3MvcGFnZXMvZmFxLWM3MzU5YzIzZDE1OGNjOWIuanMiXSwiL2hlbHAtY2VudGVyIjpbYixhLCJzdGF0aWMvY2h1bmtzL3BhZ2VzL2hlbHAtY2VudGVyLTU5NzNiYzQ0NmJhY2FjYTEuanMiXSwiL2ludml0ZS9bcmVsXSI6W2EsInN0YXRpYy9jaHVua3MvcGFnZXMvaW52aXRlL1tyZWxdLTA5MmIxOTJmMTI0NTU5NzMuanMiXSwiL2ludml0ZS1zdWNjZXNzIjpbYSwic3RhdGljL2NodW5rcy9wYWdlcy9pbnZpdGUtc3VjY2Vzcy1kNzlkYTBhMTcxNTE5MmI3LmpzIl0sIi9qb2luLXVzIjpbYixhLCJzdGF0aWMvY2h1bmtzL3BhZ2VzL2pvaW4tdXMtNzNjNmNjMDY3NDEyZDUxYy5qcyJdLCIvcGFydG5lciI6W2IsYSwic3RhdGljL2NodW5rcy9wYWdlcy9wYXJ0bmVyLTAyNmRkYThmZTk5M2NlMjguanMiXSwiL3BhcnRuZXIvW2lkXSI6W2IsYSwic3RhdGljL2NodW5rcy9wYWdlcy9wYXJ0bmVyL1tpZF0tOGU0NjY5ODZlMTk5NzI2YS5qcyJdLCIvcGFydG5lcnMiOltiLGEsInN0YXRpYy9jaHVua3MvcGFnZXMvcGFydG5lcnMtYjFkM2U3YzU5ZjFlMjE5NS5qcyJdLCIvcGF5cGFsIjpbYixhLCJzdGF0aWMvY2h1bmtzL3BhZ2VzL3BheXBhbC01OWUxNDlmZjk4YTIzZjI5LmpzIl0sIi9wcml2YWN5IjpbYixhLCJzdGF0aWMvY2h1bmtzL3BhZ2VzL3ByaXZhY3ktYjZjOGJkN2Q3Yzg0ZTM1My5qcyJdLCIvc29sdXRpb25zL2FkcyI6W2IsYSwic3RhdGljL2NodW5rcy9wYWdlcy9zb2x1dGlvbnMvYWRzLTk0NmEwN2Q2MmIwNjdkNjYuanMiXSwiL3NvbHV0aW9ucy9zdWJzY3JpYmUiOltiLGEsInN0YXRpYy9jaHVua3MvcGFnZXMvc29sdXRpb25zL3N1YnNjcmliZS02ZGUxODY4NmIwOThiZjJjLmpzIl0sIi9zb2x1dGlvbnMvdHJhdmVsIjpbYixhLCJzdGF0aWMvY2h1bmtzL3BhZ2VzL3NvbHV0aW9ucy90cmF2ZWwtMzJhNDU3MzA4MDE3NTI0Zi5qcyJdLCIvdGVsZWdyYW0tY2FsbGJhY2siOlsic3RhdGljL2NodW5rcy9wYWdlcy90ZWxlZ3JhbS1jYWxsYmFjay00Y2ViNzA3ZWNmZmQ4Nzg1LmpzIl0sIi90ZXJtIjpbYixhLCJzdGF0aWMvY2h1bmtzL3BhZ2VzL3Rlcm0tMGZhYjhhYzYwNjE2ZDdhYi5qcyJdLCIvdGVybXMiOltiLGEsInN0YXRpYy9jaHVua3MvcGFnZXMvdGVybXMtODg1ODZhY2NlZjQ0ZGY0Ni5qcyJdLCIvdmNjIjpbYixhLCJzdGF0aWMvY2h1bmtzL3BhZ2VzL3ZjYy1hZTg3OGM4MTY0ODJkYmIzLmpzIl0sIi92aXJ0dWFsLWNhcmRzIjpbYixhLCJzdGF0aWMvY2h1bmtzL3BhZ2VzL3ZpcnR1YWwtY2FyZHMtOTZhNDA1OTFlNDFkNGJhOS5qcyJdLCIvd2hpdGUtbGFiZWwiOltiLGEsInN0YXRpYy9jaHVua3MvcGFnZXMvd2hpdGUtbGFiZWwtMGY2Y2M0MTc1NzIzNmE1ZC5qcyJdLHNvcnRlZFBhZ2VzOlsiLyIsIi9fYXBwIiwiL19lcnJvciIsIi9hcHBsZS1wYXkiLCIvYmluL1tpZF0iLCIvYmluLXNlYXJjaCIsIi9jb250YWN0LWJ1c2luZXNzIiwiL2NvbnRhY3QtdXMiLCIvZGV2ZWxvcGVyIiwiL2Rpc2NsYWltZXIiLCIvZXNpbS1xci9baWRdIiwiL2ZhcSIsIi9oZWxwLWNlbnRlciIsIi9pbnZpdGUvW3JlbF0iLCIvaW52aXRlLXN1Y2Nlc3MiLCIvam9pbi11cyIsIi9wYXJ0bmVyIiwiL3BhcnRuZXIvW2lkXSIsIi9wYXJ0bmVycyIsIi9wYXlwYWwiLCIvcHJpdmFjeSIsIi9zb2x1dGlvbnMvYWRzIiwiL3NvbHV0aW9ucy9zdWJzY3JpYmUiLCIvc29sdXRpb25zL3RyYXZlbCIsIi90ZWxlZ3JhbS1jYWxsYmFjayIsIi90ZXJtIiwiL3Rlcm1zIiwiL3ZjYyIsIi92aXJ0dWFsLWNhcmRzIiwiL3doaXRlLWxhYmVsIl19fSgic3RhdGljL2NodW5rcy9jb21tb25zLTQ1ZDk4NmJjNjg2YTcxOWYuanMiLCJzdGF0aWMvY2h1bmtzL2xpYi1mcmFtZXItbW90aW9uLTBjYzlhZGJkYTVhYjhjMzIuanMiLCJxdWVyeSIsIi86bmV4dEludGVybmFsTG9jYWxlKGVufHZpfHJ1fGphfHB0fGFyfGVzfGZyKS9tb25pdG9yaW5nKC8/KSIsIm8iLCIoPzxvcmdpZD5cXGQqKSIsInAiLCIoPzxwcm9qZWN0aWQ+XFxkKikiKSxzZWxmLl9fQlVJTERfTUFOSUZFU1RfQ0ImJnNlbGYuX19CVUlMRF9NQU5JRkVTVF9DQigpOw=="}},"time_used":6,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/data/6wYjP2KmMK9hAISorGh1P/en.json","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:49.413Z","timestamp":1785127669413,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/data/6wYjP2KmMK9hAISorGh1P/en.json HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\npurpose: prefetch\r\nx-nextjs-data: 1\r\nsentry-trace: 5be496170b2042fc915da3c049a62288-8c0cd8458cc05342-1\r\nbaggage: sentry-environment=production,sentry-public_key=f0c5bc359d786d8c0a56e9a38119b543,sentry-trace_id=5be496170b2042fc915da3c049a62288,sentry-org_id=4510469741281280,sentry-transaction=%2F,sentry-sampled=true,sentry-sample_rand=0.23391805679573818,sentry-sample_rate=1\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:49 GMT\r\ncontent-type: application/json\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\nx-nextjs-matched-path: /en/\r\nx-nextjs-cache: HIT\r\netag: \"3hvcpmvjesb5i\"\r\ncache-control: s-maxage=86400, stale-while-revalidate\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\ncf-cache-status: DYNAMIC\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=dHhES%2FkCcZRUkC4E5LVDe3RDxRKJsKQib8YbMg0zRKPdY8H9gYS2ReqpemkB1SCPmFylNKt39lXNjEGSWerzDNwLLzsnkt9jIji2dsCDpHhHLZ4cIxlJDSaC%2BA%3D%3D\"}]}\r\ncf-ray: a219021dded48be6-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"]}],"data":{"size":14504,"size_decoded":6218,"mime_type":"application/json","magic":"JSON text data","md5":"255a86ab45c38eab91a4a1964a08539c","sha1":"eaddaefe292d45b50ca2713147dad27891494352","sha256":"6ec635e38df1474efcb67cc80cd68d007c8df32321f22f2383f4f4158fd1a49d","sha512":"108b796d560a67e646bbb94b78faa4e5f75508cd759f35c8c757a8a3389b552e7d9b841451d5ede60fff0888d5bbb9e53f1b3993a688996edb4ca8f4ea9db3cb","ssdeep":"192:ytBLiUOmBNiqIfcKfNXk4Q11c9ggGT3mCNjz+07reA83B0IjAGTYWrRFKxp/PZeh:yYUPBC0KfRkL/c2RT3HHPG9h7uriph","tlshash":"6352a40e5341293a0fc503ea25d72a4b96bc8a1b33c569b048fedd58331dbaed1b754e","first_seen":"2026-07-27T03:56:11.660983Z","last_seen":"2026-07-27T10:05:53.932445Z","times_seen":4,"resource_available":false,"data":"eyJwYWdlUHJvcHMiOnsiX25leHRJMThOZXh0Ijp7ImluaXRpYWxJMThuU3RvcmUiOnsiZW4iOnsiY29tbW9uIjp7InByaWNlIjoiV2hpdGUtTGFiZWwiLCJsb2dpbkluIjoiTG9nIGluIiwic3RhcnRGcmVlIjoiU3RhcnQgZnJlZSIsInJlY29tbWFuZEFydGljbGUiOiJSZWNvbW1lbmRlZCBBcnRpY2xlcyIsInZpZXdBbGwiOiJWaWV3IGFsbCIsImNvbW1pbmdTb29uIjoiQ29taW5nIFNvb24iLCJsZWFybk1vcmUiOiJMZWFybiBtb3JlIiwidDEiOiJQbGVhc2UgZW50ZXIiLCJ0MiI6IkNvbm5lY3QgdG8gZ2xvYmFsIGRpZ2l0YWwgY29uc3VtcHRpb24uIE9uZSAtIHN0b3AgdmlydHVhbCBjYXJkIHBheW1lbnQgYW5kIGV4cGVuc2UgbWFuYWdlbWVudCBwbGF0Zm9ybS4iLCJ0MyI6IkV4cGVuc2UgTWFuYWdlbWVudCIsInQ0IjoiQVBJIEFjY2VzcyIsInQ1IjoiUGF5bWVudCBjYXJkcyIsInQ2IjoiQWR2ZXJ0aXNpbmcgY2FyZCIsInQ3IjoiU3Vic2NyaXB0aW9uIGNhcmQiLCJ0OCI6IlRyYXZlbCBhbmQgYXZpYXRpb24gY2FyZCIsInQ5IjoiRW50ZXJwcmlzZSBzZXJ2aWNlcyIsInQxMCI6IkFQSSBEb2NzIiwidDExIjoiUmVwb3J0IGV4cG9ydCIsInQxMiI6IlBlcm1pc3Npb24gc3lzdGVtIiwidDEzIjoiQ29tcGFueSIsInQxNCI6IkFib3V0IFVzIiwidDE1IjoiTmV3cyIsInQxNiI6IlRlcm1zIG9mIFNlcnZpY2UiLCJ0MTciOiJQcml2YWN5IFBvbGljeSIsInQxOCI6Ikxhbmd1YWdlIiwidDE5IjoiTGVnYWwgaW5mbyIsInQyMCI6IkJ1dmVpJ3MgY2FyZHMgYXJlIGhlcmUhIiwidDIxIjoiTW9yZSB0aGFuIDIwIEJJTiBjYXJkcywgY292ZXJpbmcgRmFjZWJvb2ssIEdvb2dsZSwgVGlrdG9rLCBDaGF0R3B0IGFuZCBtb3JlIiwidDIyIjoiR2V0IHlvdXIgY2FyZCIsInQyMyI6IkluIEhvbmcgS29uZywgQnV2ZWkgaXMgYSBsaWNlbnNlZCBUcnVzdCBvciBDb21wYW55IFNlcnZpY2UgUHJvdmlkZXIgKFRDU1ApIGF1dGhvcml6ZWQgYnkgdGhlIEhvbmcgS29uZyBDb21wYW5pZXMgUmVnaXN0cnksIGFuZCBwZXJtaXR0ZWQgdG8gcHJvdmlkZSBzZXJ2aWNlcyByZWxhdGVkIHRvIGZ1bmRzIGN1c3RvZHksIHRydXN0IHNlcnZpY2VzLCBhbmQgZmluYW5jaWFsIGFkdmlzb3J5IHNlcnZpY2VzLiBUaGlzIGluY2x1ZGVzIHRoZSBtYW5hZ2VtZW50IGFuZCBhZG1pbmlzdHJhdGlvbiBvZiB0cnVzdCBzdHJ1Y3R1cmVzLCBhcyB3ZWxsIGFzIHRoZSBmYWNpbGl0YXRpb24gb2YgZmluYW5jaWFsIHRyYW5zYWN0aW9ucyB1bmRlciBzdHJpY3QgcmVndWxhdG9yeSBzdXBlcnZpc2lvbi4iLCJ0MjQiOiJJbiB0aGUgVW5pdGVkIFN0YXRlcywgQnV2ZWkgaXMgYSBsaWNlbnNlZCBNb25leSBTZXJ2aWNlcyBCdXNpbmVzcyAoTVNCKSB3aXRoIHRoZSBGaW5hbmNpYWwgQ3JpbWVzIEVuZm9yY2VtZW50IE5ldHdvcmsgKEZpbkNFTikgdW5kZXIgdGhlIEJhbmsgU2VjcmVjeSBBY3QgKEJTQSksIG9mZmVyaW5nIGEgcmFuZ2Ugb2YgcmVndWxhdGVkIGZpbmFuY2lhbCBzZXJ2aWNlcywgaW5jbHVkaW5nIG1vbmV5IHRyYW5zbWlzc2lvbiwgY3VycmVuY3kgZXhjaGFuZ2UsIGFuZCBtb25leSBjb252ZXJzaW9uLiIsInQyNSI6IkluIExpdGh1YW5pYSwgQnV2ZWkgaXMgYSBsaWNlbnNlZCBWaXJ0dWFsIEFzc2V0IFNlcnZpY2UgUHJvdmlkZXIgKFZBU1ApIGJ5IHRoZSBGaW5hbmNpYWwgQ3JpbWUgSW52ZXN0aWdhdGlvbiBTZXJ2aWNlIChGQ0lTKSwgYW5kIGF1dGhvcml6ZWQgdG8gcHJvdmlkZSBzZXJ2aWNlcyBpbnZvbHZpbmcgdGhlIGV4Y2hhbmdlIG9mIHZpcnR1YWwgYXNzZXRzIGFuZCB0aGUgY29udmVyc2lvbiBiZXR3ZWVuIHZpcnR1YWwgYXNzZXRzIGFuZCBmaWF0IGN1cnJlbmNpZXMuIiwidGl0bGUyMzAiOiJTaWduIHVwIGZvciBhIGxpbWl0ZWQgdGltZSBhbmQgZW5qb3kgYSIsInRpdGxlMjMxIjoiZGlzY291bnQiLCJ0aXRsZTIzMiI6Ik5ldyB1c2VyIGJlbmVmaXRzIOKAkyByZWNlaXZlIGRpc2NvdW50IGNvdXBvbnMgYXV0b21hdGljYWxseSBhZnRlciByZWdpc3RlcmluZyIsInRpdGxlMjQ2IjoiR2V0IGl0IG9uIEdvb2dsZSBQbGF5IiwidGl0bGUyNTciOiJCdXZlaSDigJMgTXVsdGktQklOIFZpcnR1YWwgQ2FyZHMsIElzc3VlZCBJbnN0YW50bHkiLCJ0aXRsZTI1NSI6IkRvd25sb2FkIiwidGl0bGUyNTYiOiJEb3dubG9hZCBvbiB0aGUgQXBwIFN0b3JlIiwic2lnblVwVGV4dCI6IlNpZ24gdXAgdG9kYXkgYW5kIGdldCIsImZyZWVDcmVkaXQiOiJpbiBmcmVlIGNhcmQgb3BlbmluZyBjcmVkaXQiLCJjbGFpbU5vdyI6IkNsYWltIE5vdyIsInQyNiI6IvCfjaogQ29va2llIE5vdGljZSIsInQyNyI6IldlIHVzZSBjb29raWVzIHRvIGVuaGFuY2UgeW91ciBicm93c2luZyBleHBlcmllbmNlIGFuZCBhbmFseXplIHNpdGUgdHJhZmZpYy5CeSBjb250aW51aW5nLCB5b3UgYWdyZWUgdG8gb3VyIiwidDI4IjoiUHJpdmFjeSBQb2xpY3kiLCJ0MjkiOiJEZWNsaW5lIiwidDMwIjoiQWNjZXB0IEFsbCIsInQzMSI6IkRpc2NsYWltZXIiLCJtZW51Ijp7InRpdGxlMSI6IlByb2R1Y3QiLCJ0aXRsZTIiOiJTb2x1dGlvbnMiLCJ0aXRsZTMiOiJSZXNvdXJjZSIsInRpdGxlNCI6IkNvbXBhbnkiLCJ0aXRsZTUiOiJWaXJ0dWFsIENyZWRpdCBjYXJkIiwidGl0bGU2IjoiUGh5c2ljYWwgQ2FyZCIsInRpdGxlNyI6IkFwcGxlIFBheSIsInRpdGxlOCI6IkRldmVsb3BlcnMiLCJ0aXRsZTkiOiJEaWdpdGFsIEFkdmVydGlzaW5nIFBheW1lbnRzIiwidGl0bGUxMCI6IkF2aWF0aW9uICYgVHJhdmVsIiwidGl0bGUxMSI6IlN1YnNjaXB0aW9uIE1hbmFnZW1lbnQiLCJ0aXRsZTEyIjoiQmxvZyIsInRpdGxlMTMiOiJUb29scyIsInRpdGxlMTQiOiJGQVFzIiwidGl0bGUxNSI6IlRlcm1zIiwidGl0bGUxNiI6IkhlbHAgQ2VudHJlIiwidGl0bGUxNyI6IkNvbnRhY3QgVXMiLCJ0aXRsZTE4IjoiUGFydG5lcnMiLCJ0aXRsZTE5IjoiTGFuZ3VhZ2VzIiwidGl0bGUyMCI6IkpvaW4gVXMiLCJkZXNjMTMiOiJMZXTigJlzIHN0YXJ0IG92ZXIiLCJkZXNjMSI6IlN1cHBvcnQgZm9yIGFkdmVydGlzaW5nLCBzdWJzY3JpcHRpb25zLCBhbmQgc2hvcHBpbmciLCJkZXNjMiI6Ik9mZmxpbmUgY29uc3VtcHRpb24iLCJkZXNjMyI6Ik9uZS1jbGljayBiaW5kaW5nIHdpdGggQXBwbGUgUGF5IiwiZGVzYzQiOiJEZXZlbG9wZXIgQ2VudGVyIiwiZGVzYzUiOiJGYWNlYm9vaywgVGlrVG9rLCBDUEMsIEdvb2dsZSwgZXRjLiIsImRlc2M2IjoiT25lLWNsaWNrIGFjY2VzcyBhY3Jvc3MgZ2xvYmFsIGFpcmxpbmVzIiwiZGVzYzciOiJPcGVuQUksIE1pZGpvdXJuZXksIGV0Yy4iLCJkZXNjOCI6IlN0YXkgdXBkYXRlZCB3aXRoIHRoZSBsYXRlc3QgbmV3cyIsImRlc2M5IjoiSW5zdGFudGx5IGdldCBCSU4gY2FyZCBpbmZvcm1hdGlvbiIsImRlc2MxMCI6IkNvbW1vbiBwcm9ibGVtIHNvbHZpbmciLCJkZXNjMTEiOiJJZiB5b3UgaGF2ZSBhbnkgcXVlc3Rpb25zLCBwbGVhc2UgY29udGFjdCB1cyIsImRlc2MxMiI6Ildpbi13aW4gY29vcGVyYXRpb24ifSwiYXJ0aWNsZSI6eyJ0aXRsZTEiOiJUaGUgY29udmVyZ2VuY2Ugb2YgYmFua3MgYW5kIGRpZ2l0YWwgZmluYW5jZTogbWFraW5nIGJhbmtzIHJpc2tpZXIgb3IgZmludGVjaCBzYWZlcj8iLCJkZXNjMSI6Ik92ZXIgdGhlIHBhc3QgZmV3IHllYXJzLCB0aGUgbGluZSBiZXR3ZWVuIHRyYWRpdGlvbmFsIGJhbmtpbmcgYW5kIGRpZ2l0YWwgZmluYW5jZSBoYXMgc3RlYWRpbHkgYmx1cnJlZC4gV2hhdCB3YXMgb25jZSBhIHBhcmFsbGVsIHJhY2UgaXMgbm93IGJlY29taW5nIiwidGl0bGUyIjoiRnJvbSBDb252ZW5pZW5jZSB0byBTZWN1cml0eTogQ3JlZGl0IENhcmRzIGFuZCB0aGUgUXVlc3QgZm9yIHRoZSBQYXltZW50IEhvbHkgR3JhaWwiLCJkZXNjMiI6IkluIHRoZSBwYXltZW50cyBpbmR1c3RyeSwgc2VhbWxlc3MgdXNlciBleHBlcmllbmNlIGFuZCByb2J1c3Qgc2VjdXJpdHkgYXJlIG9mdGVuIHNlZW4gYXMgb3Bwb3NpbmcgZm9yY2VzLiBPbiBvbmUgaGFuZCwgY29uc3VtZXJzIGV4cGVjdCBmYXN0LCBpbnR1aXRpdmUgdHJhbnNhY3Rpb25z4oCUdGFwIGFuZCBnby4iLCJ0aXRsZTMiOiJTZXZlbiBNYWpvciBQYXltZW50IFRyZW5kcyBpbiAyMDI1OiBUZWNobm9sb2d5LURyaXZlbiBUcmFuc2Zvcm1hdGlvbiBSZWRlZmluZXMgUGF5bWVudHMiLCJkZXNjMyI6IkFzIHdlIGVudGVyIDIwMjUsIHRoZSBnbG9iYWwgcGF5bWVudCBsYW5kc2NhcGUgaXMgdW5kZXJnb2luZyByYXBpZCBldm9sdXRpb24uIEVtZXJnaW5nIHRlY2hub2xvZ2llcyBzdWNoIGFzIGFydGlmaWNpYWwgaW50ZWxsaWdlbmNlIChBSSksIGRpc3RyaWJ1dGVkIGxlZGdlciB0ZWNobm9sb2d5LCBhbmQgZGlnaXRhbCBpZGVudGl0eSBhcmUgcHJvZm91bmRseSByZXNoYXBpbmcgdGhlIHdheSBwYXltZW50cyBhcmUgaW5pdGlhdGVkLCBwcm9jZXNzZWQsIGFuZCBzZWN1cmVkLiIsInRpdGxlNCI6IkFnZW50IENvbW1lcmNlOiBUaGUgRnV0dXJlIG9mIERpZ2l0YWwgUGF5bWVudHMgUG93ZXJlZCBieSBBSSIsImRlc2M0IjoiQXMgZGlnaXRhbCBjb21tZXJjZSBjb250aW51ZXMgdG8gZXZvbHZlLCB0aHJlZSBvZiB0aGUgd29ybGTigJlzIGxlYWRpbmcgcGF5bWVudCBjb21wYW5pZXMg4oCUIFZpc2EsIE1hc3RlcmNhcmQsIGFuZCBQYXlQYWwg4oCUIGFyZSByYWNpbmcgdG93YXJkIHRoZSBuZXh0IGZyb250aWVyOiBhZ2VudC1iYXNlZCBhcnRpZmljaWFsIGludGVsbGlnZW5jZS4iLCJ0aXRsZTUiOiJFdXJvcGVhbiBDZW50cmFsIEJhbmsgTGF1bmNoZXMgSW5ub3ZhdGlvbiBIdWIgdG8gQWR2YW5jZSBEaWdpdGFsIEV1cm8gYW5kIENCREMgVXNlIENhc2VzIiwiZGVzYzUiOiJUbyBhY2NlbGVyYXRlIHRoZSByZXNlYXJjaCBhbmQgcG90ZW50aWFsIGltcGxlbWVudGF0aW9uIG9mIGEgY2VudHJhbCBiYW5rIGRpZ2l0YWwgY3VycmVuY3kgKENCREMpLCB0aGUgRXVyb3BlYW4gQ2VudHJhbCBCYW5rIChFQ0IpIGhhcyBvZmZpY2lhbGx5IGxhdW5jaGVkIHRoZSBEaWdpdGFsIEV1cm8gSW5ub3ZhdGlvbiBQbGF0Zm9ybSIsInRpdGxlNiI6IlVuZGVyc3RhbmRpbmcgQ3JlZGl0IENhcmQgVGVybWlub2xvZ3kgfCBXaGF0IElzIGEgQ2FyZCBGZWUiLCJkZXNjNiI6IldoZW4gdXNpbmcgYSBjcmVkaXQgb3IgdmlydHVhbCBjYXJkLCBoYXZlIHlvdSBldmVyIG5vdGljZWQgdmFyaW91cyBjaGFyZ2VzIGxpc3RlZCBvbiB5b3VyIHN0YXRlbWVudD8iLCJ0aXRsZTciOiIyMDI1IGFuYWx5c2lzIG9mIHBheW1lbnRzIGFuZCBlY29tbWVyY2UgdHJlbmRzIiwiZGVzYzciOiJBcyB0aGUgbGFyZ2VzdCBlY29ub215IGluIFNvdXRoZWFzdCBBc2lh4oCUd2l0aCBhIHBvcHVsYXRpb24gb2YgMjc4LjMgbWlsbGlvbuKAlEluZG9uZXNpYSBvZmZlcnMgaW1tZW5zZSBvcHBvcnR1bml0aWVzIGluIGUtY29tbWVyY2UgYW5kIGRpZ2l0YWwgcGF5bWVudHMuIiwidGl0bGU4IjoiQ3JlZGl0IENhcmQgU2tpbW1pbmc6IDUgU2lnbnMgWW914oCZcmUgYXQgUmlzayAmIEhvdyB0byBTdG9wIEl0IE5vdyIsImRlc2M4IjoiQXMgZGlnaXRhbCBwYXltZW50cyBiZWNvbWUgaW5jcmVhc2luZ2x5IHdpZGVzcHJlYWQsIGNyZWRpdCBjYXJkIGZyYXVkIGhhcyBlbWVyZ2VkIGFzIGFuIHVuYXZvaWRhYmxlIHJpc2sgZm9yIGNvbnN1bWVycy4gQWNjb3JkaW5nIHRvIHN0YXRpc3RpY3MsIDgyJSBvZiBBbWVyaWNhbiBhZHVsdHMgZXhwZXJpZW5jZWQgc29tZSBmb3JtIG9mIGNyZWRpdCBjYXJkIGZyYXVkIGluIDIwMjMiLCJ0aXRsZTkiOiJWaXJ0dWFsIFdhbGxldHMsIFJlYWwgUG93ZXI6IDEwIE11c3QtSGF2ZSBWaXJ0dWFsIENhcmRzIGZvciBTZWN1cmUgU3BlbmRpbmcgaW4gMjAyNSIsImRlc2M5IjoiU2F5IGdvb2RieWUgdG8gZGlnZ2luZyBmb3IgYSBwaHlzaWNhbCBjYXJkIG9yIGZlYXJpbmcgeW91ciBudW1iZXIgd2lsbCBiZSBjb21wcm9taXNlZC4gVmlydHVhbCBjcmVkaXQgY2FyZHMgKFZDQ3MpIGFyZW7igJl0IGp1c3QgYSB0cmVuZOKAlHRoZXnigJlyZSBlc3NlbnRpYWwgdG9vbHMgZm9yIG5hdmlnYXRpbmcgdG9kYXnigJlzIGRpZ2l0YWwgZmluYW5jaWFsIGxhbmRzY2FwZS4iLCJ0aXRsZTEwIjoiS1lDIHZzLiBBTUw6IEEgQ29tcGxpYW5jZSBEZWVwIERpdmUgZm9yIHRoZSBQYXltZW50cyBJbmR1c3RyeSIsImRlc2MxMCI6IkluIHRvZGF54oCZcyByYXBpZGx5IGV2b2x2aW5nIGRpZ2l0YWwgcGF5bWVudHMgbGFuZHNjYXBlLCByZWd1bGF0b3J5IGNvbXBsaWFuY2UgaXMgYSB0b3AgcHJpb3JpdHkgZm9yIGZpbmFuY2lhbCBpbnN0aXR1dGlvbnMgYW5kIGJ1c2luZXNzZXMgYWxpa2UuIEFudGktTW9uZXkgTGF1bmRlcmluZyAoQU1MKSBhbmQgS25vdyBZb3VyIEN1c3RvbWVyIChLWUMpIGFyZSB0aGUgdHdvIGZvdW5kYXRpb25hbCBwaWxsYXJzIG9mIHBheW1lbnQgY29tcGxpYW5jZS4gIiwidGl0bGUxMSI6IkZhY2Vib29rIEFjY291bnQgVHlwZXMgRXhwbGFpbmVkOiBXaGljaCBPbmUgSXMgUmlnaHQgZm9yIFlvdT8iLCJkZXNjMTEiOiJBcyBhIGRvbWluYW50IGZvcmNlIGluIHRoZSBnbG9iYWwgc29jaWFsIG1lZGlhIGxhbmRzY2FwZSwgRmFjZWJvb2sgY29ubmVjdHMgaW5kaXZpZHVhbHMsIGJyYW5kcywgYnVzaW5lc3NlcywgYW5kIGRldmVsb3BlcnMgdGhyb3VnaCBhIGNvbXByZWhlbnNpdmUgZWNvc3lzdGVtIG9mIGFjY291bnQgdHlwZXMgYW5kIGZ1bmN0aW9uYWxpdGllcy4iLCJ0aXRsZTEyIjoiV2hhdCBEb2VzIOKAnFBlbmRpbmfigJ0gTWVhbiBpbiBQYXltZW50PyBDYXVzZXMsIER1cmF0aW9uLCBhbmQgUmlzayBNYW5hZ2VtZW50IiwiZGVzYzEyIjoiSW4gbW9kZXJuIHBheW1lbnQgc3lzdGVtc+KAlHdoZXRoZXIgdXNpbmcgY3JlZGl0IGNhcmRzLCBkZWJpdCBjYXJkcywgdmlydHVhbCBjYXJkcywgb3IgZS13YWxsZXRz4oCUdXNlcnMgb2Z0ZW4gZW5jb3VudGVyIGEgZmFtaWxpYXIgc3RhdHVzIGFmdGVyIGluaXRpYXRpbmcgYSB0cmFuc2FjdGlvbjog4oCcUGVuZGluZy7igJ0ifX0sImluZGV4Ijp7InRpdGxlMSI6IkJ1dmVpIC0gQWdncmVnYXRlZCBWaXJ0dWFsIENhcmQgSXNzdWFuY2UsTGluayB0byBnbG9iYWwgZGlnaXRhbCBwYXltZW50cyIsInRpdGxlMiI6InZpcnR1YWwgY2FyZHMsIGRpZ2l0YWwgdmlydHVhbCBjYXJkLCBnbG9iYWwgdmlydHVhbCBjYXJkLCBtdWx0aSBjdXJyZW5jeSB2aXJ0dWFsIGNhcmQsIHZpcnR1YWwgY2FyZCBmb3IgZmFjZWJvb2sgYWRzLCB2aXJ0dWFsIGNhcmQgZm9yIGdvb2dsZSBhZHMsIHZpcnR1YWwgY2FyZCBmb3Igc3Vic2NyaXB0aW9ucywgb25saW5lIHBheW1lbnQgdmlydHVhbCBjYXJkIiwidGl0bGUzIjoiU3BlbmQgR2xvYmFsbHkiLCJ0aXRsZTQiOiJmb3IiLCJ0aXRsZTUiOiJ3aXRoIFZpcnR1YWwgQ2FyZHMiLCJ0aXRsZTYiOiJCSU5zIiwidGl0bGU3IjoiQ3VycmVuY2llcyIsInRpdGxlOCI6IlNwZW5kaW5nIFNjZW5hcmlvcyIsInRpdGxlOSI6IkdldCBTdGFydGVkIGZvciBGcmVlIiwidGl0bGUxMCI6IlRydXN0ZWQgYnkgbGVhZGVycyIsInRpdGxlMTEiOiJJc3N1ZSBVbmxpbWl0ZWQgVmlydHVhbCBDYXJkcyBJbnN0YW50bHkiLCJ0aXRsZTEyIjoiSW5zdGFudCBpc3N1YW5jZSDCtyBTZWN1cmUgcGF5bWVudHMgwrcgRnVsbCBjb250cm9sIiwidGl0bGUxMyI6IkdldCBZb3VyIFZpcnR1YWwgQ2FyZCBpbiBTZWNvbmRzIiwidGl0bGUxNCI6Ikluc3RhbnQgdmlydHVhbCBjYXJkIGlzc3VhbmNlIHdpdGggbm8gcGFwZXJ3b3JrIGFuZCBubyBkZWxheXMuIFN0YXJ0IHVzaW5nIHlvdXIgY2FyZCBpbW1lZGlhdGVseSBmb3Igb25saW5lIHBheW1lbnRzIGFuZCBzdWJzY3JpcHRpb25zLiIsInRpdGxlMTUiOiJTaW5nbGUtVXNlIFZpcnR1YWwgQ2FyZHMuIEZ1bGx5IEN1c3RvbWl6YWJsZSIsInRpdGxlMTYiOiJTZXQgc3BlbmRpbmcgbGltaXRzLCBmcmVlemUgY2FyZHMgYW55dGltZSwgYW5kIHJlZHVjZSBmcmF1ZCByaXNrcyB3aXRoIGRpc3Bvc2FibGUgdmlydHVhbCBjYXJkcy4iLCJ0aXRsZTE3IjoiUmVhbC1UaW1lIFZpcnR1YWwgQ2FyZCBTcGVuZGluZyBDb250cm9sIiwidGl0bGUxOCI6IkN1c3RvbWl6ZSBzcGVuZGluZyBsaW1pdHMsIGZyZWV6ZSBvciBjbG9zZSB2aXJ0dWFsIGNhcmRzIGFueXRpbWUsIGFuZCBtYWludGFpbiBmdWxsIGNvbnRyb2wgb3ZlciB5b3VyIGNhcmQgc2VjdXJpdHkuIiwidGl0bGUxOSI6IlVzZSBWaXJ0dWFsIENhcmRzIHdpdGggQXBwbGUgUGF5ICYgR29vZ2xlIHBheSIsInRpdGxlMjAiOiJBZGQgeW91ciB2aXJ0dWFsIGNhcmQgdG8gQXBwbGUgUGF5IG9yIEdvb2dsZSBwYXkgYW5kIGVuam95IHNlYW1sZXNzIGdsb2JhbCBvbmxpbmUgcGF5bWVudHMuIiwidGl0bGUyMSI6Ikdsb2JhbCBQYXlvdXRzIiwidGl0bGUyMiI6IlNlbmQgZW1wbG95ZWUgc2FsYXJpZXMgYW5kIGNvbW1pc3Npb24gcGF5b3V0cyB0byB3YWxsZXRzIHdvcmxkd2lkZSB3aXRoIGZhc3QgYW5kIHNlY3VyZSBnbG9iYWwgcGF5b3V0IHNvbHV0aW9ucy4iLCJ0aXRsZTIzIjoiVmlydHVhbCBDYXJkIFBheW1lbnRzIHdpdGggUGF5UGFsIiwidGl0bGUyNCI6IlVzZSB5b3VyIHZpcnR1YWwgY2FyZHMgd2l0aCBQYXlQYWwgdG8gY29tcGxldGUgc2VjdXJlIGNyb3NzLXBsYXRmb3JtIG9ubGluZSBwYXltZW50cyB3b3JsZHdpZGUuIiwidGl0bGUyNSI6IlBoeXNpY2FsIENhcmRzIiwidGl0bGUyNiI6IlVzZSBwaHlzaWNhbCBjYXJkcyBmb3Igd29ybGR3aWRlIHBheW1lbnRzIGFuZCBBVE0gd2l0aGRyYXdhbHMuIE9yZGVyIHVubGltaXRlZCBjYXJkcyBmb3IgZ2xvYmFsIHNwZW5kaW5nLiIsInRpdGxlMjciOiJPcmRlciBZb3VyIENhcmQgTm93IiwidGl0bGUyOCI6Ikdvb2dsZSBhZHMiLCJ0aXRsZTI5IjoiRmFjZWJvb2sgQWRzIiwidGl0bGUzMCI6IlR3aXR0ZXIgQWRzIiwidGl0bGUzMSI6IlRpa1RvayBBZHMiLCJ0aXRsZTMyIjoiT3BlbkFJIiwidGl0bGUzMyI6IkRlZXBNaW5kIiwidGl0bGUzNCI6IkFtYXpvbiIsInRpdGxlMzUiOiJTcGVuZCBHbG9iYWxseSB3aXRoIFZpcnR1YWwgQ2FyZHMiLCJ0aXRsZTM2IjoiVXNlIG11bHRpLWN1cnJlbmN5IHZpcnR1YWwgY2FyZHMgdG8gcGF5IGdsb2JhbGx5IGZvciBhZHMsIHN1YnNjcmlwdGlvbnMsIGFuZCBvbmxpbmUgc2VydmljZXMuIiwidGl0bGUzNyI6IlNwZW5kaW5nIFNjZW5hcmlvcyIsInRpdGxlMzgiOiJLZXkgU3BlbmRpbmcgVXNlIENhc2VzIiwidGl0bGUzOSI6IkRpc2NvdmVyIGhvdyB2aXJ0dWFsIGNhcmRzIHBvd2VyIGFkdmVydGlzaW5nLCBzdWJzY3JpcHRpb25zLCBhbmQgZ2xvYmFsIHRyYXZlbCBwYXltZW50cy4iLCJ0aXRsZTQwIjoiRmFjZWJvb2siLCJ0aXRsZTQxIjoiR29vZ2xlIiwidGl0bGU0MiI6IkFkdmVydGlzaW5nIFBheW1lbnRzIiwidGl0bGU0MyI6IlBheSBmb3IgRmFjZWJvb2sgQWRzLCBHb29nbGUgQWRzLCBhbmQgVGlrVG9rIEFkcyB1c2luZyB2aXJ0dWFsIGNhcmRzIHdpdGggaGlnaGVyIGFwcHJvdmFsIHJhdGVzLCBmZXdlciBwYXltZW50IGZhaWx1cmVzLCBhbmQgYmV0dGVyIGJ1ZGdldCBjb250cm9sLiIsInRpdGxlNDQiOiJDaGF0R1BUIiwidGl0bGU0NSI6Ik5vdGlvbiIsInRpdGxlNDYiOiJUaWtUb2siLCJ0aXRsZTQ3IjoiU3Vic2NyaXB0aW9uIFNlcnZpY2VzIiwidGl0bGU0OCI6IlVzZSB2aXJ0dWFsIGNhcmRzIGZvciByZWN1cnJpbmcgU2FhUyBhbmQgc3Vic2NyaXB0aW9uIHBheW1lbnRzLCBpbmNsdWRpbmcgQ2hhdEdQVCBhbmQgb3RoZXIgb25saW5lIHNlcnZpY2VzLCB3aXRoIGZ1bGwgY29udHJvbCBvdmVyIGJpbGxpbmcgYW5kIHJlbmV3YWxzLiIsInRpdGxlNDkiOiJTdGFydCB1c2luZyBub3ciLCJ0aXRsZTUwIjoiQWlyYm5iIiwidGl0bGU1MSI6IkZsaWdodCB0aWNrZXRzIiwidGl0bGU1MiI6IkhvdGVsIHJlc2VydmF0aW9ucyIsInRpdGxlNTMiOiJUcmF2ZWwgYW5kIFRvdXJpc20iLCJ0aXRsZTU0IjoiUGF5IGZvciBmbGlnaHRzLCBob3RlbHMsIGFuZCBhY2NvbW1vZGF0aW9uIHBsYXRmb3JtcyBsaWtlIEFpcmJuYiB1c2luZyB2aXJ0dWFsIGNhcmRzLCB3aXRoIGdsb2JhbCBhY2NlcHRhbmNlIGFuZCBzZWN1cmUgb25saW5lIHBheW1lbnRzLiIsInRpdGxlNTUiOiJFeHBsb3JlIHVzZSBjYXNlcyIsInRpdGxlNTYiOiJUZWFtIE1hbmFnZW1lbnQgJiBBUEkgU3VwcG9ydCIsInRpdGxlNTciOiJTdWItYWNjb3VudCBtYW5hZ2VtZW50IiwidGl0bGU1OCI6IkNyZWF0ZSBhbmQgbWFuYWdlIG11bHRpcGxlIHN1Yi1hY2NvdW50cyBmb3IgdGVhbXMsIHdpdGggZmxleGlibGUgcGVybWlzc2lvbiBhc3NpZ25tZW50LiIsInRpdGxlNTkiOiJSb2xlLUJhc2VkIEFjY2VzcyBDb250cm9sIiwidGl0bGU2MCI6IkZpbmUtZ3JhaW5lZCBwZXJtaXNzaW9uIGNvbnRyb2xzIHRvIGVuc3VyZSBzZWN1cmUgYW5kIGNvbXBsaWFudCB0ZWFtIG9wZXJhdGlvbnMuIiwidGl0bGU2MSI6IkFQSSBTdXBwb3J0IGZvciBBdXRvbWF0ZWQgV29ya2Zsb3dzIiwidGl0bGU2MiI6IkludGVncmF0ZSB2aXJ0dWFsIGNhcmQgaXNzdWFuY2UsIHBheW1lbnRzLCBhbmQgYWNjb3VudCBtYW5hZ2VtZW50IGludG8geW91ciBzeXN0ZW1zIHdpdGggZmxleGlibGUgQVBJcy4iLCJ0aXRsZTYzIjoiQ29udGFjdCBTYWxlcyIsInRpdGxlNjQiOiJWaWV3IEFQSSBEb2N1bWVudGF0aW9uIiwidGl0bGU2NSI6IllvdSBoYXZlIHN1Y2Nlc3NmdWxseSBtYWRlIGFuIGFwcG9pbnRtZW50LiIsInRpdGxlNjYiOiJOYW1lIiwidGl0bGU2NyI6IkNvbXBhbnkgTmFtZSIsInRpdGxlNjgiOiJKb2IgVGl0bGUiLCJ0aXRsZTY5IjoiTWFpbCIsInRpdGxlNzAiOiJQaG9uZSBOdW1iZXIiLCJ0aXRsZTcxIjoiUHJlZmVycmVkIEFwcG9pbnRtZW50IFRpbWUiLCJ0aXRsZTcyIjoiU2VydmljZSBEZXNjcmlwdGlvbiIsInRpdGxlNzMiOiJQYXJ0bmVyIHdpdGggQnV2ZWkgdG8gc2hhcGUgdGhlIGZ1dHVyZSIsInRpdGxlNzQiOiJQcm9mZXNzaW9uYWwgY29ycG9yYXRlIHRyYXZlbCBhbmQgZXhwZW5zZSBtYW5hZ2VtZW50IHNvbHV0aW9ucyB0aGF0IHN1cHBvcnQgeW91ciBidXNpbmVzcyBhdCBldmVyeSBzdGVwLiBMZXTigJlzIGV4cGxvcmUgaG93IHRvIHJlZHVjZSBjb3N0cyBhbmQgaW1wcm92ZSBlZmZpY2llbmN5IHRvZ2V0aGVyLiIsInRpdGxlNzUiOiJOYW1lIGlzIHJlcXVpcmVkIiwidGl0bGU3NiI6IkVudGVyIHlvdXIgbmFtZSIsInRpdGxlNzciOiJDb21wYW55IE5hbWUgaXMgcmVxdWlyZWQiLCJ0aXRsZTc4IjoiRW50ZXIgeW91ciBjb21wYW55IE5hbWUiLCJ0aXRsZTc5IjoiSm9iIHRpdGxlICBpcyByZXF1aXJlZCIsInRpdGxlODAiOiJFbnRlciB5b3VyIEpvYiBUaXRsZSIsInRpdGxlODEiOiJNYWlsIGlzIHJlcXVpcmVkIiwidGl0bGU4MiI6IkludmFsaWQgZW1haWwgZm9ybWF0IiwidGl0bGU4MyI6IkVudGVyIHlvdXIgbWFpbCIsInRpdGxlODQiOiJQaG9uZSBOdW1iZXIgaXMgcmVxdWlyZWQiLCJ0aXRsZTg1IjoiRW50ZXIgeW91ciBwaG9uZSBOdW1iZXIiLCJ0aXRsZTg2IjoiUHJlZmVycmVkIEFwcG9pbnRtZW50IFRpbWUgaXMgcmVxdWlyZWQiLCJ0aXRsZTg3IjoiV2Ugd2lsbCBjb250YWN0IHlvdSBhcyBzb29uIGFzIHBvc3NpYmxlIHRvIHNjaGVkdWxlIGEgZGVkaWNhdGVkIGJ1c2luZXNzIGNvbnN1bHRhbnQgdG8gcHJvdmlkZSB5b3Ugd2l0aCBhIGRldGFpbGVkIHNvbHV0aW9uLiIsInRpdGxlODgiOiJTdWJtaXQgQXBwb2ludG1lbnQgUmVxdWVzdCIsInRpdGxlODkiOiJXaHkgY2hvb3NlIEJ1dmVpPyIsInRpdGxlOTAiOiJCdXZlaSBoZWxwcyBidXNpbmVzc2VzIG1hbmFnZSB2aXJ0dWFsIGNhcmQgcGF5bWVudHMsIHBheW91dHMsIGFuZCB0ZWFtIHNwZW5kaW5nIGdsb2JhbGx5LCB3aXRoIGhpZ2ggYXBwcm92YWwgcmF0ZXMsIHN0cm9uZyBjb21wbGlhbmNlLCBhbmQgZW50ZXJwcmlzZS1ncmFkZSBzZWN1cml0eS4iLCJ0aXRsZTkxIjoiU3VwcG9ydGVkIGNvdW50cmllcyBhbmQgcmVnaW9ucywgZW5hYmxpbmcgZ2xvYmFsIHZpcnR1YWwgY2FyZCBwYXltZW50cyBmb3IgaW50ZXJuYXRpb25hbCBidXNpbmVzc2VzLiIsInRpdGxlOTIiOiJIaWdoIGFwcHJvdmFsIHJhdGUgd2l0aCBsb3cgZnJpY3Rpb24sIHBvd2VyZWQgYnkgYW4gaW50ZWxsaWdlbnQgcmlzayBlbmdpbmUgdGhhdCByZWR1Y2VzIGRlY2xpbmVzIGFuZCB0cmFuc2FjdGlvbiBmYWlsdXJlcy4iLCJ0aXRsZTkzIjoiU3RhYmxlIG1vbnRobHkgdHJhbnNhY3Rpb24gdm9sdW1lIHByb2Nlc3NlZCwgd2l0aCBmbGV4aWJsZSBBUElzIGZvciBzZWFtbGVzcyBpbnRlZ3JhdGlvbiBpbnRvIGV4aXN0aW5nIHN5c3RlbXMuIiwidGl0bGU5NCI6IkVudGVycHJpc2VzIHJlZHVjZSBjcm9zcy1ib3JkZXIgcGF5bWVudCBjb3N0cywgaW1wcm92aW5nIGVmZmljaWVuY3kgYW5kIG9wZXJhdGlvbmFsIHBlcmZvcm1hbmNlLiIsInRpdGxlOTUiOiJHbG9iYWwgVmlydHVhbCBDYXJkcyBmb3IgQWRzICYgU3Vic2NyaXB0aW9ucyB8IEJ1dmVpIiwidGl0bGU5NiI6IkJ1dmVpIHByb3ZpZGVzIGluc3RhbnQgdmlydHVhbCBjYXJkcyBmb3IgbXVsdGktY3VycmVuY3kgcGF5bWVudHMuIFBheSBmb3IgRmFjZWJvb2sgQWRzLCBHb29nbGUgQWRzLCBTYWFTIHN1YnNjcmlwdGlvbnMsIGFuZCBnbG9iYWwgb25saW5lIHNlcnZpY2VzIHdpdGggaGlnaCBhcHByb3ZhbCByYXRlcy4iLCJ0aXRsZTk3IjoiIiwidGl0bGU5OCI6IkJ1dmVpIGxldHMgeW91IGZ1bmQgdmlydHVhbCBWaXNhIGFuZCBNYXN0ZXJjYXJkIGNhcmRzIGluc3RhbnRseSwgc2V0IHBlci1jYXJkIHNwZW5kaW5nIGxpbWl0cywgYW5kIHBheSBmb3IgRmFjZWJvb2sgQWRzLCBHb29nbGUgQWRzLCBDaGF0R1BULCBBaXJibmIsIGFuZCAxNTArIGNvdW50cnkgbWVyY2hhbnRzIOKAlCB3aXRoIDIwKyBCSU4gb3B0aW9ucyBhbmQgZW50ZXJwcmlzZSB0ZWFtIGNvbnRyb2xzLiIsInRpdGxlOTkiOiIiLCJ0aXRsZTEwMCI6IiIsInRpdGxlMTAxIjoiIiwiZGVzYzEiOiJBIGdsb2JhbCBwYXltZW50IHBsYXRmb3JtIHRoYXQgc3VwcG9ydHMgYWQgcGF5bWVudHMsIEFwcGxlIFBheSwgZS1jb21tZXJjZSBwdXJjaGFzaW5nLCBhbmQgcGh5c2ljYWwgY2FyZHMuIn19fSwiaW5pdGlhbExvY2FsZSI6ImVuIiwibnMiOlsiY29tbW9uIiwiaW5kZXgiXSwidXNlckNvbmZpZyI6eyJkZWJ1ZyI6ZmFsc2UsImkxOG4iOnsiZGVmYXVsdExvY2FsZSI6ImVuIiwibG9jYWxlcyI6WyJlbiIsInZpIiwicnUiLCJqYSIsInB0IiwiYXIiLCJlcyIsImZyIl19LCJsb2NhbGVQYXRoIjoiL2FwcC9wdWJsaWMvbG9jYWxlcyIsInJlbG9hZE9uUHJlcmVuZGVyIjpmYWxzZSwiZG9tYWlucyI6W3siZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6ImVuIn0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoiZW4iLCJsb2NhbGVzIjpbImVuIl19LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6InZpIiwibG9jYWxlcyI6WyJ2aSJdfSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJydSIsImxvY2FsZXMiOlsicnUiXX0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoiamEiLCJsb2NhbGVzIjpbImphIl19LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6InB0IiwibG9jYWxlcyI6WyJwdCJdfSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJhciIsImxvY2FsZXMiOlsiYXIiXX0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoiZXMiLCJsb2NhbGVzIjpbImVzIl19LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6ImZyIiwibG9jYWxlcyI6WyJmciJdfV0sImRlZmF1bHQiOnsiZGVidWciOmZhbHNlLCJpMThuIjp7ImRlZmF1bHRMb2NhbGUiOiJlbiIsImxvY2FsZXMiOlsiZW4iLCJ2aSIsInJ1IiwiamEiLCJwdCIsImFyIiwiZXMiLCJmciJdfSwibG9jYWxlUGF0aCI6Ii9hcHAvcHVibGljL2xvY2FsZXMiLCJyZWxvYWRPblByZXJlbmRlciI6ZmFsc2UsImRvbWFpbnMiOlt7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJlbiJ9LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6ImVuIiwibG9jYWxlcyI6WyJlbiJdfSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJ2aSIsImxvY2FsZXMiOlsidmkiXX0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoicnUiLCJsb2NhbGVzIjpbInJ1Il19LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6ImphIiwibG9jYWxlcyI6WyJqYSJdfSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJwdCIsImxvY2FsZXMiOlsicHQiXX0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoiYXIiLCJsb2NhbGVzIjpbImFyIl19LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6ImVzIiwibG9jYWxlcyI6WyJlcyJdfSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJmciIsImxvY2FsZXMiOlsiZnIiXX1dfX19fSwiX19OX1NTRyI6dHJ1ZX0="}},"time_used":139,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":139,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"client.crisp.chat/static/javascripts/common_default_23e4212.js","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:50.251Z","timestamp":1785127670251,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /static/javascripts/common_default_23e4212.js HTTP/1.1\r\nHost: client.crisp.chat\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://buvei.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://client.crisp.chat/static/javascripts/main_default_23e42123.js\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-type: application/javascript\r\naccess-control-allow-credentials: false\r\naccess-control-allow-headers: Content-Type, Origin\r\naccess-control-allow-methods: HEAD, GET, OPTIONS\r\naccess-control-allow-origin: *\r\naccess-control-max-age: 300\r\ncache-control: public, max-age=315360000\r\ncross-origin-resource-policy: cross-origin\r\nx-content-type-options: nosniff\r\nexpires: Thu, 24 Jul 2036 04:47:50 GMT\r\nlast-modified: Tue, 21 Jul 2026 15:59:21 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\npriority: u=3,i=?0\r\nage: 30810\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: W/\"6a5f9759-f3b7\"\r\ncontent-encoding: br\r\ncf-ray: a21902231b24c759-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"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":62391,"size_decoded":25783,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (62297)","md5":"fc42c30d7c70b9c9610aa2173475528b","sha1":"78b1a19363cfa2a80827d10efbb93493dd51156f","sha256":"c615a2b545259a9dd7fc5c3e36f14eb1566a8b33f8cb793e79cb96c653fbc075","sha512":"0385c19c7f6765bb79aa663911d1b8c6a6eb14168e2c5e48be81531a9dfbd70ffc2104a8ccc8236a5a35f8344077c4cb2c8cc09735ad3dc8b702181c49122bfe","ssdeep":"768:OMqFMYjgVHcgGGHNl6gont6aIYGj2z+TcGERsHQx/04PfMhnOI/YMAZg0tCVeTOO:OP5kgx7crTqFszwjVrFae","tlshash":"fa532ba93285b43127ed08e6503b4001f37c6a56740bd4d1e26dbdab2d3688e61ebf7d","first_seen":"2026-07-21T21:10:40.883914Z","last_seen":"2026-07-29T15:29:45.633785Z","times_seen":13,"resource_available":true,"data":"LyoqCiAqIGNyaXNwLWNsaWVudAogKiBAdmVyc2lvbiB2NC44LjcgMjNlNDIxMgogKiBAYXV0aG9yIENyaXNwIElNIFNBUwogKiBAZGF0ZSA3LzIxLzIwMjYKICovCmltcG9ydHskIGFzIHQsQSBhcyBlLEIgYXMgbixDIGFzIHIsRCBhcyBvLEUgYXMgcyxGIGFzIGwsRyBhcyBpLEggYXMgdSxJIGFzIGMsSiBhcyBhLEsgYXMgZixMIGFzIGQsTSBhcyBwLE8gYXMgbSxQIGFzIGgsUSBhcyB2LFIgYXMgYixTIGFzIHksU3QgYXMgZyxUIGFzIHcsVSBhcyBTLFYgYXMgeCxXIGFzIGssWCBhcyBNLFkgYXMgQyxaIGFzIEUsXyBhcyBULF90IGFzIGosYXQgYXMgRixiIGFzIE8sYnQgYXMgQSxjdCBhcyBVLGQgYXMgUCxkdCBhcyBJLGV0IGFzIFIsZnQgYXMgeixndCBhcyBMLGggYXMgRCxodCBhcyBILGl0IGFzIFYsaiBhcyBXLGsgYXMgTixsdCBhcyBxLG10IGFzIEIsbiBhcyBYLG50IGFzIEcsb3QgYXMgSyxwIGFzIFkscHQgYXMgWixxIGFzIEosciBhcyBRLHJ0IGFzIHR0LHN0IGFzIGV0LHQgYXMgbnQsdHQgYXMgcnQsdSBhcyBvdCx1dCBhcyBzdCx2IGFzIGx0LHZ0IGFzIGl0LHcgYXMgdXQseCBhcyBjdCx4dCBhcyBhdCx5dCBhcyBmdCx6IGFzIGR0fWZyb20iLi9jbGllbnRfZGVmYXVsdF8yM2U0MjEyLmpzIjtmdW5jdGlvbiBwdCh0LGUsLi4ubil7cmV0dXJuIHQuYmluZCYmL1xbbmF0aXZlIGNvZGVcXS8udGVzdCh0LmJpbmQudG9TdHJpbmcoKSk/dC5iaW5kKGUsLi4ubik6ZnVuY3Rpb24oLi4ucil7cmV0dXJuIHQuYXBwbHkoZSxbLi4ubiwuLi5yXSl9fWZ1bmN0aW9uIG10KHQsZSxuLHIpe3RyeXtyZXR1cm4gcj90KC4uLnIpOnQoKX1jYXRjaChvKXt2dChvLGUsbil9fWZ1bmN0aW9uIGh0KHQsZSxuLHIpe2lmKEYodCkpe2NvbnN0IG89bXQodCxlLG4scik7cmV0dXJuIG8mJnEobykmJm8uY2F0Y2godD0+e3Z0KHQsZSxuKX0pLG99aWYoVih0KSl7Y29uc3Qgbz1bXTtmb3IobGV0IHM9MDtzPHQubGVuZ3RoO3MrKylvLnB1c2goaHQodFtzXSxlLG4scikpO3JldHVybiBvfX1mdW5jdGlvbiB2dCh0LG4scixvPSEwKXtuJiZuLnZub2RlO2NvbnN0e2Vycm9ySGFuZGxlcjpzLHRocm93VW5oYW5kbGVkRXJyb3JJblByb2R1Y3Rpb246aX09biYmbi5hcHBDb250ZXh0LmNvbmZpZ3x8ZjtpZihuKXtsZXQgbz1uLnBhcmVudDtjb25zdCBpPW4ucHJveHksdT1gaHR0cHM6Ly92dWVqcy5vcmcvZXJyb3ItcmVmZXJlbmNlLyNydW50aW1lLSR7cn1gO2Zvcig7bzspe2NvbnN0IGU9by5lYztpZihlKWZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKWlmKCExPT09ZVtuXSh0LGksdSkpcmV0dXJuO289by5wYXJlbnR9aWYocylyZXR1cm4gZSgpLG10KHMsbnVsbCwxMCxbdCxpLHVdKSx2b2lkIGwoKX0hZnVuY3Rpb24odCxlLG4scj0hMCxvPSExKXtpZihvKXRocm93IHQ7Y29uc29sZS5lcnJvcih0KX0odCwwLDAsbyxpKX12YXIgYnQ9W10seXQ9LTEsZ3Q9W10sX3Q9bnVsbCx3dD0wLFN0PVByb21pc2UucmVzb2x2ZSgpLHh0PW51bGw7ZnVuY3Rpb24ga3QodCl7Y29uc3QgZT14dHx8U3Q7cmV0dXJuIHQ/ZS50aGVuKHRoaXM/cHQodCx0aGlzKTp0KTplfWZ1bmN0aW9uIE10KHQpe2lmKCEoMSZ0LmZsYWdzKSl7Y29uc3QgZT1UdCh0KSxuPWJ0W2J0Lmxlbmd0aC0xXTshbnx8ISgyJnQuZmxhZ3MpJiZlPj1UdChuKT9idC5wdXNoKHQpOmJ0LnNwbGljZShmdW5jdGlvbih0KXtsZXQgZT15dCsxLG49YnQubGVuZ3RoO2Zvcig7ZTxuOyl7Y29uc3Qgcj1lK24+Pj4xLG89YnRbcl0scz1UdChvKTtzPHR8fHM9PT10JiYyJm8uZmxhZ3M/ZT1yKzE6bj1yfXJldHVybiBlfShlKSwwLHQpLHQuZmxhZ3N8PTEsJHQoKX19ZnVuY3Rpb24gJHQoKXt4dHx8KHh0PVN0LnRoZW4oanQpKX1mdW5jdGlvbiBDdCh0LGUsbj15dCsxKXtmb3IoO248YnQubGVuZ3RoO24rKyl7Y29uc3QgZT1idFtuXTtpZihlJiYyJmUuZmxhZ3Mpe2lmKHQmJmUuaWQhPT10LnVpZCljb250aW51ZTtidC5zcGxpY2UobiwxKSxuLS0sNCZlLmZsYWdzJiYoZS5mbGFncyY9LTIpLGUoKSw0JmUuZmxhZ3N8fChlLmZsYWdzJj0tMil9fX1mdW5jdGlvbiBFdCh0KXtpZihndC5sZW5ndGgpe2NvbnN0IHQ9Wy4uLm5ldyBTZXQoZ3QpXS5zb3J0KCh0LGUpPT5UdCh0KS1UdChlKSk7aWYoZ3QubGVuZ3RoPTAsX3QpcmV0dXJuIHZvaWQgX3QucHVzaCguLi50KTtmb3IoX3Q9dCx3dD0wO3d0PF90Lmxlbmd0aDt3dCsrKXtjb25zdCB0PV90W3d0XTs0JnQuZmxhZ3MmJih0LmZsYWdzJj0tMiksOCZ0LmZsYWdzfHx0KCksdC5mbGFncyY9LTJ9X3Q9bnVsbCx3dD0wfX12YXIgVHQ9dD0+bnVsbD09dC5pZD8yJnQuZmxhZ3M/LTE6MS8wOnQuaWQ7ZnVuY3Rpb24ganQodCl7dHJ5e2Zvcih5dD0wO3l0PGJ0Lmxlbmd0aDt5dCsrKXtjb25zdCB0PWJ0W3l0XTshdHx8OCZ0LmZsYWdzfHwoNCZ0LmZsYWdzJiYodC5mbGFncyY9LTIpLG10KHQsdC5pLHQuaT8xNToxNCksNCZ0LmZsYWdzfHwodC5mbGFncyY9LTIpKX19ZmluYWxseXtmb3IoO3l0PGJ0Lmxlbmd0aDt5dCsrKXtjb25zdCB0PWJ0W3l0XTt0JiYodC5mbGFncyY9LTIpfXl0PS0xLGJ0Lmxlbmd0aD0wLEV0KCkseHQ9bnVsbCwoYnQubGVuZ3RofHxndC5sZW5ndGgpJiZqdCh0KX19dmFyIEZ0PW51bGwsT3Q9bnVsbDtmdW5jdGlvbiBBdCh0KXtjb25zdCBlPUZ0O3JldHVybiBGdD10LE90PXQmJnQudHlwZS50fHxudWxsLGV9ZnVuY3Rpb24gVXQodCxlPUZ0LG4pe2lmKCFlKXJldHVybiB0O2lmKHQuX24pcmV0dXJuIHQ7Y29uc3Qgcj0oLi4ubik9PntyLl9kJiZJbigtMSk7Y29uc3Qgbz1BdChlKTtsZXQgczt0cnl7cz10KC4uLm4pfWZpbmFsbHl7QXQobyksci5fZCYmSW4oMSl9cmV0dXJuIHN9O3JldHVybiByLl9uPSEwLHIuX2M9ITAsci5fZD0hMCxyfWZ1bmN0aW9uIFB0KHQsZSl7aWYobnVsbD09PUZ0KXJldHVybiB0O2NvbnN0IG49bXIoRnQpLHI9dC5kaXJzfHwodC5kaXJzPVtdKTtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKyl7bGV0W3QscyxsLGk9Zl09ZVtvXTt0JiYoRih0KSYmKHQ9e21vdW50ZWQ6dCx1cGRhdGVkOnR9KSx0LmRlZXAmJnUocyksci5wdXNoKHtkaXI6dCxpbnN0YW5jZTpuLHZhbHVlOnMsb2xkVmFsdWU6dm9pZCAwLGFyZzpsLG1vZGlmaWVyczppfSkpfXJldHVybiB0fWZ1bmN0aW9uIEl0KHQsbixyLG8pe2NvbnN0IHM9dC5kaXJzLGk9biYmbi5kaXJzO2ZvcihsZXQgdT0wO3U8cy5sZW5ndGg7dSsrKXtjb25zdCBjPXNbdV07aSYmKGMub2xkVmFsdWU9aVt1XS52YWx1ZSk7bGV0IGE9Yy5kaXJbb107YSYmKGUoKSxodChhLHIsOCxbdC5lbCxjLHQsbl0pLGwoKSl9fWZ1bmN0aW9uIFJ0KHQsZSl7aWYocnIpe2xldCBuPXJyLnByb3ZpZGVzO2NvbnN0IHI9cnIucGFyZW50JiZyci5wYXJlbnQucHJvdmlkZXM7cj09PW4mJihuPXJyLnByb3ZpZGVzPU9iamVjdC5jcmVhdGUocikpLG5bdF09ZX19ZnVuY3Rpb24genQodCxlLG49ITEpe2NvbnN0IHI9b3IoKTtpZihyfHxLZSl7bGV0IG89S2U/S2UuX2NvbnRleHQucHJvdmlkZXM6cj9udWxsPT1yLnBhcmVudHx8ci5jZT9yLnZub2RlLmFwcENvbnRleHQmJnIudm5vZGUuYXBwQ29udGV4dC5wcm92aWRlczpyLnBhcmVudC5wcm92aWRlczp2b2lkIDA7aWYobyYmdCBpbiBvKXJldHVybiBvW3RdO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSlyZXR1cm4gbiYmRihlKT9lLmNhbGwociYmci5wcm94eSk6ZX19dmFyIEx0PVN5bWJvbC5mb3IoInYtc2N4Iik7ZnVuY3Rpb24gRHQodCxlLG4pe3JldHVybiBIdCh0LGUsbil9ZnVuY3Rpb24gSHQodCxlLG49Zil7Y29uc3R7aW1tZWRpYXRlOnIsZGVlcDpvLGZsdXNoOnMsb25jZTpsfT1uLGk9dih7fSxuKSx1PWUmJnJ8fCFlJiYicG9zdCIhPT1zO2xldCBjO2lmKGFyKWlmKCJzeW5jIj09PXMpe2NvbnN0IHQ9enQoTHQpO2M9dC5sfHwodC5sPVtdKX1lbHNlIGlmKCF1KXtjb25zdCB0PSgpPT57fTtyZXR1cm4gdC5zdG9wPWEsdC5yZXN1bWU9YSx0LnBhdXNlPWEsdH1jb25zdCBkPXJyO2kuY2FsbD0odCxlLG4pPT5odCh0LGQsZSxuKTtsZXQgcD0hMTsicG9zdCI9PT1zP2kuc2NoZWR1bGVyPXQ9Pntnbih0LGQmJmQuc3VzcGVuc2UpfToic3luYyIhPT1zJiYocD0hMCxpLnNjaGVkdWxlcj0odCxlKT0+e2U/dCgpOk10KHQpfSksaS5hdWdtZW50Sm9iPXQ9PntlJiYodC5mbGFnc3w9NCkscCYmKHQuZmxhZ3N8PTIsZCYmKHQuaWQ9ZC51aWQsdC5pPWQpKX07Y29uc3QgbT1rKHQsZSxpKTtyZXR1cm4gYXImJihjP2MucHVzaChtKTp1JiZtKCkpLG19ZnVuY3Rpb24gVnQodCxlLG4pe2NvbnN0IHI9dGhpcy5wcm94eSxvPVoodCk/dC5pbmNsdWRlcygiLiIpP1d0KHIsdCk6KCk9PnJbdF06cHQodCxyLHIpO2xldCBzO0YoZSk/cz1lOihzPWUuaGFuZGxlcixuPWUpO2NvbnN0IGw9c3IodGhpcyksaT1IdChvLHB0KHMsciksbik7cmV0dXJuIGwoKSxpfWZ1bmN0aW9uIFd0KHQsZSl7Y29uc3Qgbj1lLnNwbGl0KCIuIik7cmV0dXJuKCk9PntsZXQgZT10O2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGgmJmU7dCsrKWU9ZVtuW3RdXTtyZXR1cm4gZX19dmFyIE50PVN5bWJvbCgiX3Z0ZSIpLHF0PVN5bWJvbCgiX2xlYXZlQ2IiKTtmdW5jdGlvbiBCdCh0LGUpezYmdC5zaGFwZUZsYWcmJnQuY29tcG9uZW50Pyh0LnRyYW5zaXRpb249ZSxCdCh0LmNvbXBvbmVudC5zdWJUcmVlLGUpKToxMjgmdC5zaGFwZUZsYWc/KHQuc3NDb250ZW50LnRyYW5zaXRpb249ZS5jbG9uZSh0LnNzQ29udGVudCksdC5zc0ZhbGxiYWNrLnRyYW5zaXRpb249ZS5jbG9uZSh0LnNzRmFsbGJhY2spKTp0LnRyYW5zaXRpb249ZX1mdW5jdGlvbiBYdCh0LGUpe3JldHVybiBGKHQpP3Yoe25hbWU6dC5uYW1lfSxlLHtzZXR1cDp0fSk6dH1mdW5jdGlvbiBHdCh0KXt0Lmlkcz1bdC5pZHNbMF0rdC5pZHNbMl0rKysiLSIsMCwwXX12YXIgS3Q9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gWXQodCxlLG4scixzPSExKXtpZihWKHQpKXJldHVybiB2b2lkIHQuZm9yRWFjaCgodCxvKT0+WXQodCxlJiYoVihlKT9lW29dOmUpLG4scixzKSk7aWYoUXQocikmJiFzKXJldHVybiB2b2lkKDUxMiZyLnNoYXBlRmxhZyYmci50eXBlLmgmJnIuY29tcG9uZW50LnN1YlRyZWUuY29tcG9uZW50JiZZdCh0LGUsbixyLmNvbXBvbmVudC5zdWJUcmVlKSk7Y29uc3QgbD00JnIuc2hhcGVGbGFnP21yKHIuY29tcG9uZW50KTpyLmVsLGk9cz9udWxsOmwse2k6dSxyOmN9PXQsYT1lJiZlLnIsZD11LnJlZnM9PT1mP3UucmVmcz17fTp1LnJlZnMscD11LnNldHVwU3RhdGUsbT1iKHApLGg9cD09PWY/Sjp0PT5SKG0sdCk7aWYobnVsbCE9YSYmYSE9PWMpaWYoWnQoZSksWihhKSlkW2FdPW51bGwsaChhKSYmKHBbYV09bnVsbCk7ZWxzZSBpZihvKGEpKXthLnZhbHVlPW51bGw7Y29uc3QgdD1lO3QuayYmKGRbdC5rXT1udWxsKX1pZihGKGMpKW10KGMsdSwxMixbaSxkXSk7ZWxzZXtjb25zdCBlPVooYykscj1vKGMpO2lmKGV8fHIpe2NvbnN0IG89KCk9PntpZih0LmYpe2NvbnN0IG49ZT9oKGMpP3BbY106ZFtjXTpjLnZhbHVlO2lmKHMpVihuKSYmQShuLGwpO2Vsc2UgaWYoVihuKSluLmluY2x1ZGVzKGwpfHxuLnB1c2gobCk7ZWxzZSBpZihlKWRbY109W2xdLGgoYykmJihwW2NdPWRbY10pO2Vsc2V7Y29uc3QgZT1bbF07Yy52YWx1ZT1lLHQuayYmKGRbdC5rXT1lKX19ZWxzZSBlPyhkW2NdPWksaChjKSYmKHBbY109aSkpOnImJihjLnZhbHVlPWksdC5rJiYoZFt0LmtdPWkpKX07aWYoaSl7Y29uc3QgZT0oKT0+e28oKSxLdC5kZWxldGUodCl9O2UuaWQ9LTEsS3Quc2V0KHQsZSksZ24oZSxuKX1lbHNlIFp0KHQpLG8oKX19fWZ1bmN0aW9uIFp0KHQpe2NvbnN0IGU9S3QuZ2V0KHQpO2UmJihlLmZsYWdzfD04LEt0LmRlbGV0ZSh0KSl9dmFyIEp0PXQ9Pjg9PT10Lm5vZGVUeXBlO3QoKS5yZXF1ZXN0SWRsZUNhbGxiYWNrLHQoKS5jYW5jZWxJZGxlQ2FsbGJhY2s7dmFyIFF0PXQ9PiEhdC50eXBlLnY7ZnVuY3Rpb24gdGUodCl7Rih0KSYmKHQ9e2xvYWRlcjp0fSk7Y29uc3R7bG9hZGVyOmUsbG9hZGluZ0NvbXBvbmVudDpuLGVycm9yQ29tcG9uZW50OnIsZGVsYXk6bz0yMDAsaHlkcmF0ZTpzLHRpbWVvdXQ6bCxzdXNwZW5zaWJsZTppPSEwLG9uRXJyb3I6dX09dDtsZXQgYyxhPW51bGwsZj0wO2NvbnN0IGQ9KCk9PntsZXQgdDtyZXR1cm4gYXx8KHQ9YT1lKCkuY2F0Y2godD0+e2lmKHQ9dCBpbnN0YW5jZW9mIEVycm9yP3Q6bmV3IEVycm9yKFN0cmluZyh0KSksdSlyZXR1cm4gbmV3IFByb21pc2UoKGUsbik9Pnt1KHQsKCk9PmUoKGYrKyxhPW51bGwsZCgpKSksKCk9Pm4odCksZisxKX0pO3Rocm93IHR9KS50aGVuKGU9PnQhPT1hJiZhP2E6KGUmJihlLlN8fCJNb2R1bGUiPT09ZVtTeW1ib2wudG9TdHJpbmdUYWddKSYmKGU9ZS5kZWZhdWx0KSxjPWUsZSkpKX07cmV0dXJuIFh0KHtuYW1lOiJBc3luY0NvbXBvbmVudFdyYXBwZXIiLHY6ZCxNKHQsZSxuKXtsZXQgcj0hMTsoZS5idXx8KGUuYnU9W10pKS5wdXNoKCgpPT5yPSEwKTtjb25zdCBvPSgpPT57cnx8bigpfSxsPXM/KCk9Pntjb25zdCBuPXMobyxlPT5mdW5jdGlvbih0LGUpe2lmKEp0KHQpJiYiWyI9PT10LmRhdGEpe2xldCBuPTEscj10Lm5leHRTaWJsaW5nO2Zvcig7cjspe2lmKDE9PT1yLm5vZGVUeXBlKXtpZighMT09PWUocikpYnJlYWt9ZWxzZSBpZihKdChyKSlpZigiXSI9PT1yLmRhdGEpe2lmKDA9PT0tLW4pYnJlYWt9ZWxzZSJbIj09PXIuZGF0YSYmbisrO3I9ci5uZXh0U2libGluZ319ZWxzZSBlKHQpfSh0LGUpKTtuJiYoZS5idW18fChlLmJ1bT1bXSkpLnB1c2gobil9Om87Yz9sKCk6ZCgpLnRoZW4oKCk9PiFlLmlzVW5tb3VudGVkJiZsKCkpfSxnZXQgaCgpe3JldHVybiBjfSxzZXR1cCgpe2NvbnN0IHQ9cnI7aWYoR3QodCksYylyZXR1cm4oKT0+ZWUoYyx0KTtjb25zdCBlPWU9PnthPW51bGwsdnQoZSx0LDEzLCFyKX07aWYoaSYmdC5zdXNwZW5zZXx8YXIpcmV0dXJuIGQoKS50aGVuKGU9PigpPT5lZShlLHQpKS5jYXRjaCh0PT4oZSh0KSwoKT0+cj9xbihyLHtlcnJvcjp0fSk6bnVsbCkpO2NvbnN0IHM9aCghMSksdT1oKCksZj1oKCEhbyk7cmV0dXJuIG8mJnNldFRpbWVvdXQoKCk9PntmLnZhbHVlPSExfSxvKSxudWxsIT1sJiZzZXRUaW1lb3V0KCgpPT57aWYoIXMudmFsdWUmJiF1LnZhbHVlKXtjb25zdCB0PW5ldyBFcnJvcihgQXN5bmMgY29tcG9uZW50IHRpbWVkIG91dCBhZnRlciAke2x9bXMuYCk7ZSh0KSx1LnZhbHVlPXR9fSxsKSxkKCkudGhlbigoKT0+e3MudmFsdWU9ITAsdC5wYXJlbnQmJm5lKHQucGFyZW50LnZub2RlKSYmdC5wYXJlbnQudXBkYXRlKCl9KS5jYXRjaCh0PT57ZSh0KSx1LnZhbHVlPXR9KSwoKT0+cy52YWx1ZSYmYz9lZShjLHQpOnUudmFsdWUmJnI/cW4ocix7ZXJyb3I6dS52YWx1ZX0pOm4mJiFmLnZhbHVlP2VlKG4sdCk6dm9pZCAwfX0pfWZ1bmN0aW9uIGVlKHQsZSl7Y29uc3R7cmVmOm4scHJvcHM6cixjaGlsZHJlbjpvLGNlOnN9PWUudm5vZGUsbD1xbih0LHIsbyk7cmV0dXJuIGwucmVmPW4sbC5jZT1zLGRlbGV0ZSBlLnZub2RlLmNlLGx9dmFyIG5lPXQ9PnQudHlwZS5DO2Z1bmN0aW9uIHJlKHQsZSl7c2UodCwiYSIsZSl9ZnVuY3Rpb24gb2UodCxlKXtzZSh0LCJkYSIsZSl9ZnVuY3Rpb24gc2UodCxlLG49cnIpe2NvbnN0IHI9dC5UfHwodC5UPSgpPT57bGV0IGU9bjtmb3IoO2U7KXtpZihlLmlzRGVhY3RpdmF0ZWQpcmV0dXJuO2U9ZS5wYXJlbnR9cmV0dXJuIHQoKX0pO2lmKGllKGUscixuKSxuKXtsZXQgdD1uLnBhcmVudDtmb3IoO3QmJnQucGFyZW50OyluZSh0LnBhcmVudC52bm9kZSkmJmxlKHIsZSxuLHQpLHQ9dC5wYXJlbnR9fWZ1bmN0aW9uIGxlKHQsZSxuLHIpe2NvbnN0IG89aWUoZSx0LHIsITApO21lKCgpPT57QShyW2VdLG8pfSxuKX1mdW5jdGlvbiBpZSh0LG4scj1ycixvPSExKXtpZihyKXtjb25zdCBzPXJbdF18fChyW3RdPVtdKSxpPW4uanx8KG4uaj0oLi4ubyk9PntlKCk7Y29uc3Qgcz1zcihyKSxpPWh0KG4scix0LG8pO3JldHVybiBzKCksbCgpLGl9KTtyZXR1cm4gbz9zLnVuc2hpZnQoaSk6cy5wdXNoKGkpLGl9fXZhciB1ZT10PT4oZSxuPXJyKT0+e2FyJiYic3AiIT09dHx8aWUodCwoLi4udCk9PmUoLi4udCksbil9LGNlPXVlKCJibSIpLGFlPXVlKCJtIiksZmU9dWUoImJ1IiksZGU9dWUoInUiKSxwZT11ZSgiYnVtIiksbWU9dWUoInVtIiksaGU9dWUoInNwIiksdmU9dWUoInJ0ZyIpLGJlPXVlKCJydGMiKTtmdW5jdGlvbiB5ZSh0LGU9cnIpe2llKCJlYyIsdCxlKX12YXIgZ2U9ImNvbXBvbmVudHMiO2Z1bmN0aW9uIF9lKHQsZSl7cmV0dXJuIHhlKGdlLHQsITAsZSl8fHR9dmFyIHdlPVN5bWJvbC5mb3IoInYtbmRjIik7ZnVuY3Rpb24gU2UodCl7cmV0dXJuIHhlKCJkaXJlY3RpdmVzIix0KX1mdW5jdGlvbiB4ZSh0LGUsbj0hMCxyPSExKXtjb25zdCBvPUZ0fHxycjtpZihvKXtjb25zdCBuPW8udHlwZTtpZih0PT09Z2Upe2NvbnN0IHQ9ZnVuY3Rpb24odCxlPSEwKXtyZXR1cm4gRih0KT90LmRpc3BsYXlOYW1lfHx0Lm5hbWU6dC5uYW1lfHxlJiZ0LkZ9KG4sITEpO2lmKHQmJih0PT09ZXx8dD09PUMoZSl8fHQ9PT1NKEMoZSkpKSlyZXR1cm4gbn1jb25zdCBzPWtlKG9bdF18fG5bdF0sZSl8fGtlKG8uYXBwQ29udGV4dFt0XSxlKTtyZXR1cm4hcyYmcj9uOnN9fWZ1bmN0aW9uIGtlKHQsZSl7cmV0dXJuIHQmJih0W2VdfHx0W0MoZSldfHx0W00oQyhlKSldKX1mdW5jdGlvbiBNZSh0LGUscixvKXtsZXQgbDtjb25zdCBpPXImJnJbb10sdT1WKHQpO2lmKHV8fFoodCkpe2xldCByPSExLG89ITE7dSYmdyh0KSYmKHI9IW0odCksbz1zKHQpLHQ9ZCh0KSksbD1uZXcgQXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgcz0wLHU9dC5sZW5ndGg7czx1O3MrKylsW3NdPWUocj9vP24oZHQodFtzXSkpOmR0KHRbc10pOnRbc10scyx2b2lkIDAsaSYmaVtzXSl9ZWxzZSBpZigibnVtYmVyIj09dHlwZW9mIHQpe2w9bmV3IEFycmF5KHQpO2ZvcihsZXQgbj0wO248dDtuKyspbFtuXT1lKG4rMSxuLHZvaWQgMCxpJiZpW25dKX1lbHNlIGlmKGV0KHQpKWlmKHRbU3ltYm9sLml0ZXJhdG9yXSlsPUFycmF5LmZyb20odCwodCxuKT0+ZSh0LG4sdm9pZCAwLGkmJmlbbl0pKTtlbHNle2NvbnN0IG49T2JqZWN0LmtleXModCk7bD1uZXcgQXJyYXkobi5sZW5ndGgpO2ZvcihsZXQgcj0wLG89bi5sZW5ndGg7cjxvO3IrKyl7Y29uc3Qgbz1uW3JdO2xbcl09ZSh0W29dLG8scixpJiZpW3JdKX19ZWxzZSBsPVtdO3JldHVybiByJiYocltvXT1sKSxsfWZ1bmN0aW9uICRlKHQsZSl7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspe2NvbnN0IHI9ZVtuXTtpZihWKHIpKWZvcihsZXQgZT0wO2U8ci5sZW5ndGg7ZSsrKXRbcltlXS5uYW1lXT1yW2VdLmZuO2Vsc2UgciYmKHRbci5uYW1lXT1yLmtleT8oLi4udCk9Pntjb25zdCBlPXIuZm4oLi4udCk7cmV0dXJuIGUmJihlLmtleT1yLmtleSksZX06ci5mbil9cmV0dXJuIHR9ZnVuY3Rpb24gQ2UodCxlLG49e30scixvKXtpZihGdC5jZXx8RnQucGFyZW50JiZRdChGdC5wYXJlbnQpJiZGdC5wYXJlbnQuY2Upe2NvbnN0IHQ9T2JqZWN0LmtleXMobikubGVuZ3RoPjA7cmV0dXJuImRlZmF1bHQiIT09ZSYmKG4ubmFtZT1lKSxVbigpLExuKEVuLG51bGwsW3FuKCJzbG90IixuLHImJnIoKSldLHQ/LTI6NjQpfWxldCBzPXRbZV07cyYmcy5fYyYmKHMuX2Q9ITEpLFVuKCk7Y29uc3QgbD1zJiZFZShzKG4pKSxpPW4ua2V5fHxsJiZsLmtleSx1PUxuKEVuLHtrZXk6KGkmJiFCKGkpP2k6YF8ke2V9YCkrKCFsJiZyPyJfZmIiOiIiKX0sbHx8KHI/cigpOltdKSxsJiYxPT09dC5fPzY0Oi0yKTtyZXR1cm4hbyYmdS5zY29wZUlkJiYodS5zbG90U2NvcGVJZHM9W3Uuc2NvcGVJZCsiLXMiXSkscyYmcy5fYyYmKHMuX2Q9ITApLHV9ZnVuY3Rpb24gRWUodCl7cmV0dXJuIHQuc29tZSh0PT4hRG4odCl8fHQudHlwZSE9PWpuJiYhKHQudHlwZT09PUVuJiYhRWUodC5jaGlsZHJlbikpKT90Om51bGx9dmFyIFRlPXQ9PnQ/aXIodCk/bXIodCk6VGUodC5wYXJlbnQpOm51bGwsamU9dihPYmplY3QuY3JlYXRlKG51bGwpLHskOnQ9PnQsJGVsOnQ9PnQudm5vZGUuZWwsJGRhdGE6dD0+dC5kYXRhLCRwcm9wczp0PT50LnByb3BzLCRhdHRyczp0PT50LmF0dHJzLCRzbG90czp0PT50LnNsb3RzLCRyZWZzOnQ9PnQucmVmcywkcGFyZW50OnQ9PlRlKHQucGFyZW50KSwkcm9vdDp0PT5UZSh0LnJvb3QpLCRob3N0OnQ9PnQuY2UsJGVtaXQ6dD0+dC5lbWl0LCRvcHRpb25zOnQ9PnplKHQpLCRmb3JjZVVwZGF0ZTp0PT50LmZ8fCh0LmY9KCk9PntNdCh0LnVwZGF0ZSl9KSwkbmV4dFRpY2s6dD0+dC5ufHwodC5uPXB0KGt0LHQucHJveHkpKSwkd2F0Y2g6dD0+cHQoVnQsdCl9KSxGZT0odCxlKT0+dCE9PWYmJiF0Lk8mJlIodCxlKSxPZT17Z2V0KHtfOnR9LGUpe2lmKCJfX3Zfc2tpcCI9PT1lKXJldHVybiEwO2NvbnN0e2N0eDpuLHNldHVwU3RhdGU6cixkYXRhOm8scHJvcHM6cyxhY2Nlc3NDYWNoZTpsLHR5cGU6aSxhcHBDb250ZXh0OnV9PXQ7aWYoIiQiIT09ZVswXSl7Y29uc3QgdD1sW2VdO2lmKHZvaWQgMCE9PXQpc3dpdGNoKHQpe2Nhc2UgMTpyZXR1cm4gcltlXTtjYXNlIDI6cmV0dXJuIG9bZV07Y2FzZSA0OnJldHVybiBuW2VdO2Nhc2UgMzpyZXR1cm4gc1tlXX1lbHNle2lmKEZlKHIsZSkpcmV0dXJuIGxbZV09MSxyW2VdO2lmKG8hPT1mJiZSKG8sZSkpcmV0dXJuIGxbZV09MixvW2VdO2lmKFIocyxlKSlyZXR1cm4gbFtlXT0zLHNbZV07aWYobiE9PWYmJlIobixlKSlyZXR1cm4gbFtlXT00LG5bZV07VWUmJihsW2VdPTApfX1jb25zdCBjPWplW2VdO2xldCBhLGQ7cmV0dXJuIGM/KCIkYXR0cnMiPT09ZSYmeCh0LmF0dHJzLCJnZXQiLCIiKSxjKHQpKTooYT1pLkEpJiYoYT1hW2VdKT9hOm4hPT1mJiZSKG4sZSk/KGxbZV09NCxuW2VdKTooZD11LmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLFIoZCxlKT9kW2VdOnZvaWQgMCl9LHNldCh7Xzp0fSxlLG4pe2NvbnN0e2RhdGE6cixzZXR1cFN0YXRlOm8sY3R4OnN9PXQ7cmV0dXJuIEZlKG8sZSk/KG9bZV09biwhMCk6ciE9PWYmJlIocixlKT8ocltlXT1uLCEwKTohUih0LnByb3BzLGUpJiYoKCIkIiE9PWVbMF18fCEoZS5zbGljZSgxKWluIHQpKSYmKHNbZV09biwhMCkpfSxoYXMoe186e2RhdGE6dCxzZXR1cFN0YXRlOmUsYWNjZXNzQ2FjaGU6bixjdHg6cixhcHBDb250ZXh0Om8scHJvcHM6cyx0eXBlOmx9fSxpKXtsZXQgdTtyZXR1cm4hIShuW2ldfHx0IT09ZiYmIiQiIT09aVswXSYmUih0LGkpfHxGZShlLGkpfHxSKHMsaSl8fFIocixpKXx8UihqZSxpKXx8UihvLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLGkpfHwodT1sLkEpJiZ1W2ldKX0sZGVmaW5lUHJvcGVydHkodCxlLG4pe3JldHVybiBudWxsIT1uLmdldD90Ll8uYWNjZXNzQ2FjaGVbZV09MDpSKG4sInZhbHVlIikmJnRoaXMuc2V0KHQsZSxuLnZhbHVlLG51bGwpLFJlZmxlY3QuZGVmaW5lUHJvcGVydHkodCxlLG4pfX07ZnVuY3Rpb24gQWUodCl7cmV0dXJuIFYodCk/dC5yZWR1Y2UoKHQsZSk9Pih0W2VdPW51bGwsdCkse30pOnR9dmFyIFVlPSEwO2Z1bmN0aW9uIFBlKHQpe2NvbnN0IGU9emUodCksbj10LnByb3h5LHI9dC5jdHg7VWU9ITEsZS5iZWZvcmVDcmVhdGUmJkllKGUuYmVmb3JlQ3JlYXRlLHQsImJjIik7Y29uc3R7ZGF0YTpzLGNvbXB1dGVkOmwsbWV0aG9kczppLHdhdGNoOnUscHJvdmlkZTpjLGluamVjdDpmLGNyZWF0ZWQ6ZCxiZWZvcmVNb3VudDptLG1vdW50ZWQ6aCxiZWZvcmVVcGRhdGU6dix1cGRhdGVkOmIsYWN0aXZhdGVkOnksZGVhY3RpdmF0ZWQ6ZyxiZWZvcmVEZXN0cm95OncsYmVmb3JlVW5tb3VudDpTLGRlc3Ryb3llZDp4LHVubW91bnRlZDprLHJlbmRlcjpNLHJlbmRlclRyYWNrZWQ6QyxyZW5kZXJUcmlnZ2VyZWQ6RSxlcnJvckNhcHR1cmVkOlQsc2VydmVyUHJlZmV0Y2g6aixleHBvc2U6Tyxpbmhlcml0QXR0cnM6QSxjb21wb25lbnRzOlUsZGlyZWN0aXZlczpQLGZpbHRlcnM6SX09ZTtpZihmJiZmdW5jdGlvbih0LGUpe1YodCkmJih0PVZlKHQpKTtmb3IoY29uc3QgbiBpbiB0KXtjb25zdCByPXRbbl07bGV0IHM7cz1ldChyKT8iZGVmYXVsdCJpbiByP3p0KHIuZnJvbXx8bixyLmRlZmF1bHQsITApOnp0KHIuZnJvbXx8bik6enQociksbyhzKT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6KCk9PnMudmFsdWUsc2V0OnQ9PnMudmFsdWU9dH0pOmVbbl09c319KGYscixudWxsKSxpKWZvcihjb25zdCBvIGluIGkpe2NvbnN0IHQ9aVtvXTtGKHQpJiYocltvXT1wdCh0LG4pKX1pZihzKXtjb25zdCBlPXMuY2FsbChuLG4pO2V0KGUpJiYodC5kYXRhPXAoZSkpfWlmKFVlPSEwLGwpZm9yKGNvbnN0IG8gaW4gbCl7Y29uc3QgdD1sW29dLGU9aHIoe2dldDpGKHQpP3B0KHQsbixuKTpGKHQuZ2V0KT9wdCh0LmdldCxuLG4pOmEsc2V0OiFGKHQpJiZGKHQuc2V0KT9wdCh0LnNldCxuKTphfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OigpPT5lLnZhbHVlLHNldDp0PT5lLnZhbHVlPXR9KX1pZih1KWZvcihjb25zdCBvIGluIHUpUmUodVtvXSxyLG4sbyk7aWYoYyl7Y29uc3QgdD1GKGMpP2MuY2FsbChuKTpjO1JlZmxlY3Qub3duS2V5cyh0KS5mb3JFYWNoKGU9PntSdChlLHRbZV0pfSl9ZnVuY3Rpb24gUih0LGUpe1YoZSk/ZS5mb3JFYWNoKGU9PnQocHQoZSxuKSkpOmUmJnQocHQoZSxuKSl9aWYoZCYmSWUoZCx0LCJjIiksUihjZSxtKSxSKGFlLGgpLFIoZmUsdiksUihkZSxiKSxSKHJlLHkpLFIob2UsZyksUih5ZSxUKSxSKGJlLEMpLFIodmUsRSksUihwZSxTKSxSKG1lLGspLFIoaGUsaiksVihPKSlpZihPLmxlbmd0aCl7Y29uc3QgZT10LmV4cG9zZWR8fCh0LmV4cG9zZWQ9e30pO08uZm9yRWFjaCh0PT57T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7Z2V0OigpPT5uW3RdLHNldDplPT5uW3RdPWUsZW51bWVyYWJsZTohMH0pfSl9ZWxzZSB0LmV4cG9zZWR8fCh0LmV4cG9zZWQ9e30pO00mJnQucmVuZGVyPT09YSYmKHQucmVuZGVyPU0pLG51bGwhPUEmJih0LmluaGVyaXRBdHRycz1BKSxVJiYodC5jb21wb25lbnRzPVUpLFAmJih0LmRpcmVjdGl2ZXM9UCksaiYmR3QodCl9ZnVuY3Rpb24gSWUodCxlLG4pe2h0KFYodCk/dC5tYXAodD0+cHQodCxlLnByb3h5KSk6cHQodCxlLnByb3h5KSxlLG4pfWZ1bmN0aW9uIFJlKHQsZSxuLHIpe2xldCBvPXIuaW5jbHVkZXMoIi4iKT9XdChuLHIpOigpPT5uW3JdO2lmKFoodCkpe2NvbnN0IG49ZVt0XTtGKG4pJiZEdChvLG4pfWVsc2UgaWYoRih0KSlEdChvLHB0KHQsbikpO2Vsc2UgaWYoZXQodCkpaWYoVih0KSl0LmZvckVhY2godD0+UmUodCxlLG4scikpO2Vsc2V7Y29uc3Qgcj1GKHQuaGFuZGxlcik/cHQodC5oYW5kbGVyLG4pOmVbdC5oYW5kbGVyXTtGKHIpJiZEdChvLHIsdCl9fWZ1bmN0aW9uIHplKHQpe2NvbnN0IGU9dC50eXBlLHttaXhpbnM6bixleHRlbmRzOnJ9PWUse21peGluczpvLG9wdGlvbnNDYWNoZTpzLGNvbmZpZzp7b3B0aW9uTWVyZ2VTdHJhdGVnaWVzOmx9fT10LmFwcENvbnRleHQsaT1zLmdldChlKTtsZXQgdTtyZXR1cm4gaT91PWk6by5sZW5ndGh8fG58fHI/KHU9e30sby5sZW5ndGgmJm8uZm9yRWFjaCh0PT5MZSh1LHQsbCwhMCkpLExlKHUsZSxsKSk6dT1lLGV0KGUpJiZzLnNldChlLHUpLHV9ZnVuY3Rpb24gTGUodCxlLG4scj0hMSl7Y29uc3R7bWl4aW5zOm8sZXh0ZW5kczpzfT1lO3MmJkxlKHQscyxuLCEwKSxvJiZvLmZvckVhY2goZT0+TGUodCxlLG4sITApKTtmb3IoY29uc3QgbCBpbiBlKWlmKHImJiJleHBvc2UiPT09bCk7ZWxzZXtjb25zdCByPURlW2xdfHxuJiZuW2xdO3RbbF09cj9yKHRbbF0sZVtsXSk6ZVtsXX1yZXR1cm4gdH12YXIgRGU9e2RhdGE6SGUscHJvcHM6cWUsZW1pdHM6cWUsbWV0aG9kczpOZSxjb21wdXRlZDpOZSxiZWZvcmVDcmVhdGU6V2UsY3JlYXRlZDpXZSxiZWZvcmVNb3VudDpXZSxtb3VudGVkOldlLGJlZm9yZVVwZGF0ZTpXZSx1cGRhdGVkOldlLGJlZm9yZURlc3Ryb3k6V2UsYmVmb3JlVW5tb3VudDpXZSxkZXN0cm95ZWQ6V2UsdW5tb3VudGVkOldlLGFjdGl2YXRlZDpXZSxkZWFjdGl2YXRlZDpXZSxlcnJvckNhcHR1cmVkOldlLHNlcnZlclByZWZldGNoOldlLGNvbXBvbmVudHM6TmUsZGlyZWN0aXZlczpOZSx3YXRjaDpmdW5jdGlvbih0LGUpe2lmKCF0KXJldHVybiBlO2lmKCFlKXJldHVybiB0O2NvbnN0IG49dihPYmplY3QuY3JlYXRlKG51bGwpLHQpO2Zvcihjb25zdCByIGluIGUpbltyXT1XZSh0W3JdLGVbcl0pO3JldHVybiBufSxwcm92aWRlOkhlLGluamVjdDpmdW5jdGlvbih0LGUpe3JldHVybiBOZShWZSh0KSxWZShlKSl9fTtmdW5jdGlvbiBIZSh0LGUpe3JldHVybiBlP3Q/ZnVuY3Rpb24oKXtyZXR1cm4gdihGKHQpP3QuY2FsbCh0aGlzLHRoaXMpOnQsRihlKT9lLmNhbGwodGhpcyx0aGlzKTplKX06ZTp0fWZ1bmN0aW9uIFZlKHQpe2lmKFYodCkpe2NvbnN0IGU9e307Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspZVt0W25dXT10W25dO3JldHVybiBlfXJldHVybiB0fWZ1bmN0aW9uIFdlKHQsZSl7cmV0dXJuIHQ/Wy4uLm5ldyBTZXQoW10uY29uY2F0KHQsZSkpXTplfWZ1bmN0aW9uIE5lKHQsZSl7cmV0dXJuIHQ/dihPYmplY3QuY3JlYXRlKG51bGwpLHQsZSk6ZX1mdW5jdGlvbiBxZSh0LGUpe3JldHVybiB0P1YodCkmJlYoZSk/Wy4uLm5ldyBTZXQoWy4uLnQsLi4uZV0pXTp2KE9iamVjdC5jcmVhdGUobnVsbCksQWUodCksQWUobnVsbCE9ZT9lOnt9KSk6ZX1mdW5jdGlvbiBCZSgpe3JldHVybnthcHA6bnVsbCxjb25maWc6e2lzTmF0aXZlVGFnOkoscGVyZm9ybWFuY2U6ITEsZ2xvYmFsUHJvcGVydGllczp7fSxvcHRpb25NZXJnZVN0cmF0ZWdpZXM6e30sZXJyb3JIYW5kbGVyOnZvaWQgMCx3YXJuSGFuZGxlcjp2b2lkIDAsY29tcGlsZXJPcHRpb25zOnt9fSxtaXhpbnM6W10sY29tcG9uZW50czp7fSxkaXJlY3RpdmVzOnt9LHByb3ZpZGVzOk9iamVjdC5jcmVhdGUobnVsbCksb3B0aW9uc0NhY2hlOm5ldyBXZWFrTWFwLHByb3BzQ2FjaGU6bmV3IFdlYWtNYXAsZW1pdHNDYWNoZTpuZXcgV2Vha01hcH19dmFyIFhlPTA7ZnVuY3Rpb24gR2UodCxlKXtyZXR1cm4gZnVuY3Rpb24obixyPW51bGwpe0Yobil8fChuPXYoe30sbikpLG51bGw9PXJ8fGV0KHIpfHwocj1udWxsKTtjb25zdCBvPUJlKCkscz1uZXcgV2Vha1NldCxsPVtdO2xldCBpPSExO2NvbnN0IHU9by5hcHA9e191aWQ6WGUrKyxfY29tcG9uZW50Om4sX3Byb3BzOnIsX2NvbnRhaW5lcjpudWxsLF9jb250ZXh0Om8sX2luc3RhbmNlOm51bGwsdmVyc2lvbjp2cixnZXQgY29uZmlnKCl7cmV0dXJuIG8uY29uZmlnfSxzZXQgY29uZmlnKHQpe30sdXNlOih0LC4uLmUpPT4ocy5oYXModCl8fCh0JiZGKHQuaW5zdGFsbCk/KHMuYWRkKHQpLHQuaW5zdGFsbCh1LC4uLmUpKTpGKHQpJiYocy5hZGQodCksdCh1LC4uLmUpKSksdSksbWl4aW46dD0+KG8ubWl4aW5zLmluY2x1ZGVzKHQpfHxvLm1peGlucy5wdXNoKHQpLHUpLGNvbXBvbmVudDoodCxlKT0+ZT8oby5jb21wb25lbnRzW3RdPWUsdSk6by5jb21wb25lbnRzW3RdLGRpcmVjdGl2ZToodCxlKT0+ZT8oby5kaXJlY3RpdmVzW3RdPWUsdSk6by5kaXJlY3RpdmVzW3RdLG1vdW50KHMsbCxjKXtpZighaSl7Y29uc3QgYT11Ll9jZVZOb2RlfHxxbihuLHIpO3JldHVybiBhLmFwcENvbnRleHQ9bywhMD09PWM/Yz0ic3ZnIjohMT09PWMmJihjPXZvaWQgMCksbCYmZT9lKGEscyk6dChhLHMsYyksaT0hMCx1Ll9jb250YWluZXI9cyxzLlU9dSxtcihhLmNvbXBvbmVudCl9fSxvblVubW91bnQodCl7bC5wdXNoKHQpfSx1bm1vdW50KCl7aSYmKGh0KGwsdS5faW5zdGFuY2UsMTYpLHQobnVsbCx1Ll9jb250YWluZXIpLGRlbGV0ZSB1Ll9jb250YWluZXIuVSl9LHByb3ZpZGU6KHQsZSk9PihvLnByb3ZpZGVzW3RdPWUsdSkscnVuV2l0aENvbnRleHQodCl7Y29uc3QgZT1LZTtLZT11O3RyeXtyZXR1cm4gdCgpfWZpbmFsbHl7S2U9ZX19fTtyZXR1cm4gdX19dmFyIEtlPW51bGw7ZnVuY3Rpb24gWWUodCxlLC4uLm4pe2lmKHQuaXNVbm1vdW50ZWQpcmV0dXJuO2NvbnN0IHI9dC52bm9kZS5wcm9wc3x8ZjtsZXQgbz1uO2NvbnN0IHM9ZS5zdGFydHNXaXRoKCJ1cGRhdGU6IiksbD1zJiYoKHQsZSk9PiJtb2RlbFZhbHVlIj09PWV8fCJtb2RlbC12YWx1ZSI9PT1lP3QubW9kZWxNb2RpZmllcnM6dFtgJHtlfU1vZGlmaWVyc2BdfHx0W2Ake0MoZSl9TW9kaWZpZXJzYF18fHRbYCR7cnQoZSl9TW9kaWZpZXJzYF0pKHIsZS5zbGljZSg3KSk7bGV0IGk7bCYmKGwudHJpbSYmKG89bi5tYXAodD0+Wih0KT90LnRyaW0oKTp0KSksbC5udW1iZXImJihvPW4ubWFwKGopKSk7bGV0IHU9cltpPWcoZSldfHxyW2k9ZyhDKGUpKV07IXUmJnMmJih1PXJbaT1nKHJ0KGUpKV0pLHUmJmh0KHUsdCw2LG8pO2NvbnN0IGM9cltpKyJPbmNlIl07aWYoYyl7aWYodC5lbWl0dGVkKXtpZih0LmVtaXR0ZWRbaV0pcmV0dXJufWVsc2UgdC5lbWl0dGVkPXt9O3QuZW1pdHRlZFtpXT0hMCxodChjLHQsNixvKX19dmFyIFplPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIEplKHQsZSxuPSExKXtjb25zdCByPW4/WmU6ZS5lbWl0c0NhY2hlLG89ci5nZXQodCk7aWYodm9pZCAwIT09bylyZXR1cm4gbztjb25zdCBzPXQuZW1pdHM7bGV0IGw9e30saT0hMTtpZighRih0KSl7Y29uc3Qgcj10PT57Y29uc3Qgbj1KZSh0LGUsITApO24mJihpPSEwLHYobCxuKSl9OyFuJiZlLm1peGlucy5sZW5ndGgmJmUubWl4aW5zLmZvckVhY2gociksdC5leHRlbmRzJiZyKHQuZXh0ZW5kcyksdC5taXhpbnMmJnQubWl4aW5zLmZvckVhY2gocil9cmV0dXJuIHN8fGk/KFYocyk/cy5mb3JFYWNoKHQ9PmxbdF09bnVsbCk6dihsLHMpLGV0KHQpJiZyLnNldCh0LGwpLGwpOihldCh0KSYmci5zZXQodCxudWxsKSxudWxsKX1mdW5jdGlvbiBRZSh0LGUpe3JldHVybiEoIXR8fCFVKGUpKSYmKGU9ZS5zbGljZSgyKS5yZXBsYWNlKC9PbmNlJC8sIiIpLFIodCxlWzBdLnRvTG93ZXJDYXNlKCkrZS5zbGljZSgxKSl8fFIodCxydChlKSl8fFIodCxlKSl9ZnVuY3Rpb24gdG4odCl7Y29uc3R7dHlwZTplLHZub2RlOm4scHJveHk6cix3aXRoUHJveHk6byxwcm9wc09wdGlvbnM6W3NdLHNsb3RzOmwsYXR0cnM6aSxlbWl0OnUscmVuZGVyOmMscmVuZGVyQ2FjaGU6YSxwcm9wczpmLGRhdGE6ZCxzZXR1cFN0YXRlOnAsY3R4Om0saW5oZXJpdEF0dHJzOmh9PXQsdj1BdCh0KTtsZXQgYix5O3RyeXtpZig0Jm4uc2hhcGVGbGFnKXtjb25zdCB0PW98fHIsZT10O2I9S24oYy5jYWxsKGUsdCxhLGYscCxkLG0pKSx5PWl9ZWxzZXtjb25zdCB0PWU7Yj1Lbih0Lmxlbmd0aD4xP3QoZix7YXR0cnM6aSxzbG90czpsLGVtaXQ6dX0pOnQoZixudWxsKSkseT1lLnByb3BzP2k6ZW4oaSl9fWNhdGNoKHcpe09uLmxlbmd0aD0wLHZ0KHcsdCwxKSxiPXFuKGpuKX1sZXQgZz1iO2lmKHkmJiExIT09aCl7Y29uc3QgdD1PYmplY3Qua2V5cyh5KSx7c2hhcGVGbGFnOmV9PWc7dC5sZW5ndGgmJjcmZSYmKHMmJnQuc29tZShLKSYmKHk9bm4oeSxzKSksZz1CbihnLHksITEsITApKX1yZXR1cm4gbi5kaXJzJiYoZz1CbihnLG51bGwsITEsITApLGcuZGlycz1nLmRpcnM/Zy5kaXJzLmNvbmNhdChuLmRpcnMpOm4uZGlycyksbi50cmFuc2l0aW9uJiZCdChnLG4udHJhbnNpdGlvbiksYj1nLEF0KHYpLGJ9dmFyIGVuPXQ9PntsZXQgZTtmb3IoY29uc3QgbiBpbiB0KSgiY2xhc3MiPT09bnx8InN0eWxlIj09PW58fFUobikpJiYoKGV8fChlPXt9KSlbbl09dFtuXSk7cmV0dXJuIGV9LG5uPSh0LGUpPT57Y29uc3Qgbj17fTtmb3IoY29uc3QgciBpbiB0KUsocikmJnIuc2xpY2UoOSlpbiBlfHwobltyXT10W3JdKTtyZXR1cm4gbn07ZnVuY3Rpb24gcm4odCxlLG4pe2NvbnN0IHI9T2JqZWN0LmtleXMoZSk7aWYoci5sZW5ndGghPT1PYmplY3Qua2V5cyh0KS5sZW5ndGgpcmV0dXJuITA7Zm9yKGxldCBvPTA7bzxyLmxlbmd0aDtvKyspe2NvbnN0IHM9cltvXTtpZihlW3NdIT09dFtzXSYmIVFlKG4scykpcmV0dXJuITB9cmV0dXJuITF9dmFyIG9uPXt9LHNuPSgpPT5PYmplY3QuY3JlYXRlKG9uKSxsbj10PT5PYmplY3QuZ2V0UHJvdG90eXBlT2YodCk9PT1vbjtmdW5jdGlvbiB1bih0LGUsbixyKXtjb25zdFtvLHNdPXQucHJvcHNPcHRpb25zO2xldCBsLGk9ITE7aWYoZSlmb3IobGV0IHUgaW4gZSl7aWYoc3QodSkpY29udGludWU7Y29uc3QgYz1lW3VdO2xldCBhO28mJlIobyxhPUModSkpP3MmJnMuaW5jbHVkZXMoYSk/KGx8fChsPXt9KSlbYV09YzpuW2FdPWM6UWUodC5lbWl0c09wdGlvbnMsdSl8fHUgaW4gciYmYz09PXJbdV18fChyW3VdPWMsaT0hMCl9aWYocyl7Y29uc3QgZT1iKG4pLHI9bHx8Zjtmb3IobGV0IGw9MDtsPHMubGVuZ3RoO2wrKyl7Y29uc3QgaT1zW2xdO25baV09Y24obyxlLGkscltpXSx0LCFSKHIsaSkpfX1yZXR1cm4gaX1mdW5jdGlvbiBjbih0LGUsbixyLG8scyl7Y29uc3QgbD10W25dO2lmKG51bGwhPWwpe2NvbnN0IHQ9UihsLCJkZWZhdWx0Iik7aWYodCYmdm9pZCAwPT09cil7Y29uc3QgdD1sLmRlZmF1bHQ7aWYobC50eXBlIT09RnVuY3Rpb24mJiFsLnNraXBGYWN0b3J5JiZGKHQpKXtjb25zdHtwcm9wc0RlZmF1bHRzOnN9PW87aWYobiBpbiBzKXI9c1tuXTtlbHNle2NvbnN0IGw9c3Iobyk7cj1zW25dPXQuY2FsbChudWxsLGUpLGwoKX19ZWxzZSByPXQ7by5jZSYmby5jZS5fc2V0UHJvcChuLHIpfWxbMF0mJihzJiYhdD9yPSExOiFsWzFdfHwiIiE9PXImJnIhPT1ydChuKXx8KHI9ITApKX1yZXR1cm4gcn12YXIgYW49bmV3IFdlYWtNYXA7ZnVuY3Rpb24gZm4odCxlLG49ITEpe2NvbnN0IHI9bj9hbjplLnByb3BzQ2FjaGUsbz1yLmdldCh0KTtpZihvKXJldHVybiBvO2NvbnN0IHM9dC5wcm9wcyxsPXt9LHU9W107bGV0IGM9ITE7aWYoIUYodCkpe2NvbnN0IHI9dD0+e2M9ITA7Y29uc3RbbixyXT1mbih0LGUsITApO3YobCxuKSxyJiZ1LnB1c2goLi4ucil9OyFuJiZlLm1peGlucy5sZW5ndGgmJmUubWl4aW5zLmZvckVhY2gociksdC5leHRlbmRzJiZyKHQuZXh0ZW5kcyksdC5taXhpbnMmJnQubWl4aW5zLmZvckVhY2gocil9aWYoIXMmJiFjKXJldHVybiBldCh0KSYmci5zZXQodCxpKSxpO2lmKFYocykpZm9yKGxldCBpPTA7aTxzLmxlbmd0aDtpKyspe2NvbnN0IHQ9QyhzW2ldKTtkbih0KSYmKGxbdF09Zil9ZWxzZSBpZihzKWZvcihjb25zdCBpIGluIHMpe2NvbnN0IHQ9QyhpKTtpZihkbih0KSl7Y29uc3QgZT1zW2ldLG49bFt0XT1WKGUpfHxGKGUpP3t0eXBlOmV9OnYoe30sZSkscj1uLnR5cGU7bGV0IG89ITEsYz0hMDtpZihWKHIpKWZvcihsZXQgdD0wO3Q8ci5sZW5ndGg7Kyt0KXtjb25zdCBlPXJbdF0sbj1GKGUpJiZlLm5hbWU7aWYoIkJvb2xlYW4iPT09bil7bz0hMDticmVha30iU3RyaW5nIj09PW4mJihjPSExKX1lbHNlIG89RihyKSYmIkJvb2xlYW4iPT09ci5uYW1lO25bMF09byxuWzFdPWMsKG98fFIobiwiZGVmYXVsdCIpKSYmdS5wdXNoKHQpfX1jb25zdCBhPVtsLHVdO3JldHVybiBldCh0KSYmci5zZXQodCxhKSxhfWZ1bmN0aW9uIGRuKHQpe3JldHVybiIkIiE9PXRbMF0mJiFzdCh0KX12YXIgcG49dD0+Il8iPT09dHx8Il9jdHgiPT09dHx8IiRzdGFibGUiPT09dCxtbj10PT5WKHQpP3QubWFwKEtuKTpbS24odCldLGhuPSh0LGUsbik9PntpZihlLl9uKXJldHVybiBlO2NvbnN0IHI9VXQoKC4uLnQpPT5tbihlKC4uLnQpKSxuKTtyZXR1cm4gci5fYz0hMSxyfSx2bj0odCxlLG4pPT57Y29uc3Qgcj10Ll9jdHg7Zm9yKGNvbnN0IG8gaW4gdCl7aWYocG4obykpY29udGludWU7Y29uc3Qgbj10W29dO2lmKEYobikpZVtvXT1obigwLG4scik7ZWxzZSBpZihudWxsIT1uKXtjb25zdCB0PW1uKG4pO2Vbb109KCk9PnR9fX0sYm49KHQsZSk9Pntjb25zdCBuPW1uKGUpO3Quc2xvdHMuZGVmYXVsdD0oKT0+bn0seW49KHQsZSxuKT0+e2Zvcihjb25zdCByIGluIGUpIW4mJnBuKHIpfHwodFtyXT1lW3JdKX07dmFyIGduPWZ1bmN0aW9uKHQsZSl7ZSYmZS5wZW5kaW5nQnJhbmNoP1YodCk/ZS5lZmZlY3RzLnB1c2goLi4udCk6ZS5lZmZlY3RzLnB1c2godCk6KG49dCxWKG4pP2d0LnB1c2goLi4ubik6X3QmJi0xPT09bi5pZD9fdC5zcGxpY2Uod3QrMSwwLG4pOjEmbi5mbGFnc3x8KGd0LnB1c2gobiksbi5mbGFnc3w9MSksJHQoKSk7dmFyIG59O2Z1bmN0aW9uIF9uKG4pe3JldHVybiBmdW5jdGlvbihuLHIpe3QoKS5QPSEwO2NvbnN0e2luc2VydDpvLHJlbW92ZTpzLHBhdGNoUHJvcDp1LGNyZWF0ZUVsZW1lbnQ6ZCxjcmVhdGVUZXh0OnAsY3JlYXRlQ29tbWVudDptLHNldFRleHQ6aCxzZXRFbGVtZW50VGV4dDp2LHBhcmVudE5vZGU6ZyxuZXh0U2libGluZzp3LHNldFNjb3BlSWQ6eD1hLGluc2VydFN0YXRpY0NvbnRlbnQ6a309bixNPSh0LGUsbixyPW51bGwsbz1udWxsLHM9bnVsbCxsPXZvaWQgMCxpPW51bGwsdT0hIWUuZHluYW1pY0NoaWxkcmVuKT0+e2lmKHQ9PT1lKXJldHVybjt0JiYhSG4odCxlKSYmKHI9aXQodCksUSh0LG8scywhMCksdD1udWxsKSwtMj09PWUucGF0Y2hGbGFnJiYodT0hMSxlLmR5bmFtaWNDaGlsZHJlbj1udWxsKTtjb25zdHt0eXBlOmMscmVmOmEsc2hhcGVGbGFnOmZ9PWU7c3dpdGNoKGMpe2Nhc2UgVG46VCh0LGUsbixyKTticmVhaztjYXNlIGpuOmoodCxlLG4scik7YnJlYWs7Y2FzZSBGbjpudWxsPT10JiZGKGUsbixyLGwpO2JyZWFrO2Nhc2UgRW46Vih0LGUsbixyLG8scyxsLGksdSk7YnJlYWs7ZGVmYXVsdDoxJmY/VSh0LGUsbixyLG8scyxsLGksdSk6NiZmP1codCxlLG4scixvLHMsbCxpLHUpOig2NCZmfHwxMjgmZikmJmMucHJvY2Vzcyh0LGUsbixyLG8scyxsLGksdSxmdCl9bnVsbCE9YSYmbz9ZdChhLHQmJnQucmVmLHMsZXx8dCwhZSk6bnVsbD09YSYmdCYmbnVsbCE9dC5yZWYmJll0KHQucmVmLG51bGwscyx0LCEwKX0sVD0odCxlLG4scik9PntpZihudWxsPT10KW8oZS5lbD1wKGUuY2hpbGRyZW4pLG4scik7ZWxzZXtjb25zdCBuPWUuZWw9dC5lbDtlLmNoaWxkcmVuIT09dC5jaGlsZHJlbiYmaChuLGUuY2hpbGRyZW4pfX0saj0odCxlLG4scik9PntudWxsPT10P28oZS5lbD1tKGUuY2hpbGRyZW58fCIiKSxuLHIpOmUuZWw9dC5lbH0sRj0odCxlLG4scik9PntbdC5lbCx0LmFuY2hvcl09ayh0LmNoaWxkcmVuLGUsbixyLHQuZWwsdC5hbmNob3IpfSxPPSh7ZWw6dCxhbmNob3I6ZX0sbixyKT0+e2xldCBzO2Zvcig7dCYmdCE9PWU7KXM9dyh0KSxvKHQsbixyKSx0PXM7byhlLG4scil9LEE9KHtlbDp0LGFuY2hvcjplfSk9PntsZXQgbjtmb3IoO3QmJnQhPT1lOyluPXcodCkscyh0KSx0PW47cyhlKX0sVT0odCxlLG4scixvLHMsbCxpLHUpPT57aWYoInN2ZyI9PT1lLnR5cGU/bD0ic3ZnIjoibWF0aCI9PT1lLnR5cGUmJihsPSJtYXRobWwiKSxudWxsPT10KVAoZSxuLHIsbyxzLGwsaSx1KTtlbHNle2NvbnN0IG49dC5lbCYmdC5lbC5faXNWdWVDRT90LmVsOm51bGw7dHJ5e24mJm4uX2JlZ2luUGF0Y2goKSxMKHQsZSxvLHMsbCxpLHUpfWZpbmFsbHl7biYmbi5fZW5kUGF0Y2goKX19fSxQPSh0LGUsbixyLHMsbCxpLGMpPT57bGV0IGEsZjtjb25zdHtwcm9wczpwLHNoYXBlRmxhZzptLHRyYW5zaXRpb246aCxkaXJzOmJ9PXQ7aWYoYT10LmVsPWQodC50eXBlLGwscCYmcC5pcyxwKSw4Jm0/dihhLHQuY2hpbGRyZW4pOjE2Jm0mJnoodC5jaGlsZHJlbixhLG51bGwscixzLHduKHQsbCksaSxjKSxiJiZJdCh0LG51bGwsciwiY3JlYXRlZCIpLEkoYSx0LHQuc2NvcGVJZCxpLHIpLHApe2Zvcihjb25zdCB0IGluIHApInZhbHVlIj09PXR8fHN0KHQpfHx1KGEsdCxudWxsLHBbdF0sbCxyKTsidmFsdWUiaW4gcCYmdShhLCJ2YWx1ZSIsbnVsbCxwLnZhbHVlLGwpLChmPXAub25Wbm9kZUJlZm9yZU1vdW50KSYmSm4oZixyLHQpfWImJkl0KHQsbnVsbCxyLCJiZWZvcmVNb3VudCIpO2NvbnN0IHk9ZnVuY3Rpb24odCxlKXtyZXR1cm4oIXR8fHQmJiF0LnBlbmRpbmdCcmFuY2gpJiZlJiYhZS5wZXJzaXN0ZWR9KHMsaCk7eSYmaC5iZWZvcmVFbnRlcihhKSxvKGEsZSxuKSwoKGY9cCYmcC5vblZub2RlTW91bnRlZCl8fHl8fGIpJiZnbigoKT0+e2YmJkpuKGYscix0KSx5JiZoLmVudGVyKGEpLGImJkl0KHQsbnVsbCxyLCJtb3VudGVkIil9LHMpfSxJPSh0LGUsbixyLG8pPT57aWYobiYmeCh0LG4pLHIpZm9yKGxldCBzPTA7czxyLmxlbmd0aDtzKyspeCh0LHJbc10pO2lmKG8pe2xldCBuPW8uc3ViVHJlZTtpZihlPT09bnx8Q24obi50eXBlKSYmKG4uc3NDb250ZW50PT09ZXx8bi5zc0ZhbGxiYWNrPT09ZSkpe2NvbnN0IGU9by52bm9kZTtJKHQsZSxlLnNjb3BlSWQsZS5zbG90U2NvcGVJZHMsby5wYXJlbnQpfX19LHo9KHQsZSxuLHIsbyxzLGwsaSx1PTApPT57Zm9yKGxldCBjPXU7Yzx0Lmxlbmd0aDtjKyspTShudWxsLHRbY109aT9Zbih0W2NdKTpLbih0W2NdKSxlLG4scixvLHMsbCxpKX0sTD0odCxlLG4scixvLHMsbCk9Pntjb25zdCBpPWUuZWw9dC5lbDtsZXR7cGF0Y2hGbGFnOmMsZHluYW1pY0NoaWxkcmVuOmEsZGlyczpkfT1lO2N8PTE2JnQucGF0Y2hGbGFnO2NvbnN0IHA9dC5wcm9wc3x8ZixtPWUucHJvcHN8fGY7bGV0IGg7aWYobiYmU24obiwhMSksKGg9bS5vblZub2RlQmVmb3JlVXBkYXRlKSYmSm4oaCxuLGUsdCksZCYmSXQoZSx0LG4sImJlZm9yZVVwZGF0ZSIpLG4mJlNuKG4sITApLChwLmlubmVySFRNTCYmbnVsbD09bS5pbm5lckhUTUx8fHAudGV4dENvbnRlbnQmJm51bGw9PW0udGV4dENvbnRlbnQpJiZ2KGksIiIpLGE/RCh0LmR5bmFtaWNDaGlsZHJlbixhLGksbixyLHduKGUsbykscyk6bHx8Syh0LGUsaSxudWxsLG4scix3bihlLG8pLHMsITEpLGM+MCl7aWYoMTYmYylIKGkscCxtLG4sbyk7ZWxzZSBpZigyJmMmJnAuY2xhc3MhPT1tLmNsYXNzJiZ1KGksImNsYXNzIixudWxsLG0uY2xhc3MsbyksNCZjJiZ1KGksInN0eWxlIixwLnN0eWxlLG0uc3R5bGUsbyksOCZjKXtjb25zdCB0PWUuZHluYW1pY1Byb3BzO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtjb25zdCByPXRbZV0scz1wW3JdLGw9bVtyXTtsPT09cyYmInZhbHVlIiE9PXJ8fHUoaSxyLHMsbCxvLG4pfX0xJmMmJnQuY2hpbGRyZW4hPT1lLmNoaWxkcmVuJiZ2KGksZS5jaGlsZHJlbil9ZWxzZSBsfHxudWxsIT1hfHxIKGkscCxtLG4sbyk7KChoPW0ub25Wbm9kZVVwZGF0ZWQpfHxkKSYmZ24oKCk9PntoJiZKbihoLG4sZSx0KSxkJiZJdChlLHQsbiwidXBkYXRlZCIpfSxyKX0sRD0odCxlLG4scixvLHMsbCk9Pntmb3IobGV0IGk9MDtpPGUubGVuZ3RoO2krKyl7Y29uc3QgdT10W2ldLGM9ZVtpXTtNKHUsYyx1LmVsJiYodS50eXBlPT09RW58fCFIbih1LGMpfHwxOTgmdS5zaGFwZUZsYWcpP2codS5lbCk6bixudWxsLHIsbyxzLGwsITApfX0sSD0odCxlLG4scixvKT0+e2lmKGUhPT1uKXtpZihlIT09Zilmb3IoY29uc3QgcyBpbiBlKXN0KHMpfHxzIGluIG58fHUodCxzLGVbc10sbnVsbCxvLHIpO2Zvcihjb25zdCBzIGluIG4pe2lmKHN0KHMpKWNvbnRpbnVlO2NvbnN0IGw9bltzXSxpPWVbc107bCE9PWkmJiJ2YWx1ZSIhPT1zJiZ1KHQscyxpLGwsbyxyKX0idmFsdWUiaW4gbiYmdSh0LCJ2YWx1ZSIsZS52YWx1ZSxuLnZhbHVlLG8pfX0sVj0odCxlLG4scixzLGwsaSx1LGMpPT57Y29uc3QgYT1lLmVsPXQ/dC5lbDpwKCIiKSxmPWUuYW5jaG9yPXQ/dC5hbmNob3I6cCgiIik7bGV0e3BhdGNoRmxhZzpkLGR5bmFtaWNDaGlsZHJlbjptLHNsb3RTY29wZUlkczpofT1lO2gmJih1PXU/dS5jb25jYXQoaCk6aCksbnVsbD09dD8obyhhLG4sciksbyhmLG4scikseihlLmNoaWxkcmVufHxbXSxuLGYscyxsLGksdSxjKSk6ZD4wJiY2NCZkJiZtJiZ0LmR5bmFtaWNDaGlsZHJlbiYmdC5keW5hbWljQ2hpbGRyZW4ubGVuZ3RoPT09bS5sZW5ndGg/KEQodC5keW5hbWljQ2hpbGRyZW4sbSxuLHMsbCxpLHUpLChudWxsIT1lLmtleXx8cyYmZT09PXMuc3ViVHJlZSkmJnhuKHQsZSwhMCkpOksodCxlLG4sZixzLGwsaSx1LGMpfSxXPSh0LGUsbixyLG8scyxsLGksdSk9PntlLnNsb3RTY29wZUlkcz1pLG51bGw9PXQ/NTEyJmUuc2hhcGVGbGFnP28uY3R4LmFjdGl2YXRlKGUsbixyLGwsdSk6TihlLG4scixvLHMsbCx1KTpCKHQsZSx1KX0sTj0odCxuLHIsbyxzLGksdSk9Pntjb25zdCBhPXQuY29tcG9uZW50PWZ1bmN0aW9uKHQsZSxuKXtjb25zdCByPXQudHlwZSxvPShlP2UuYXBwQ29udGV4dDp0LmFwcENvbnRleHQpfHxRbixzPXt1aWQ6dHIrKyx2bm9kZTp0LHR5cGU6cixwYXJlbnQ6ZSxhcHBDb250ZXh0Om8scm9vdDpudWxsLG5leHQ6bnVsbCxzdWJUcmVlOm51bGwsZWZmZWN0Om51bGwsdXBkYXRlOm51bGwsam9iOm51bGwsc2NvcGU6bmV3IGN0KCEwKSxyZW5kZXI6bnVsbCxwcm94eTpudWxsLGV4cG9zZWQ6bnVsbCxleHBvc2VQcm94eTpudWxsLHdpdGhQcm94eTpudWxsLHByb3ZpZGVzOmU/ZS5wcm92aWRlczpPYmplY3QuY3JlYXRlKG8ucHJvdmlkZXMpLGlkczplP2UuaWRzOlsiIiwwLDBdLGFjY2Vzc0NhY2hlOm51bGwscmVuZGVyQ2FjaGU6W10sY29tcG9uZW50czpudWxsLGRpcmVjdGl2ZXM6bnVsbCxwcm9wc09wdGlvbnM6Zm4ocixvKSxlbWl0c09wdGlvbnM6SmUocixvKSxlbWl0Om51bGwsZW1pdHRlZDpudWxsLHByb3BzRGVmYXVsdHM6Zixpbmhlcml0QXR0cnM6ci5pbmhlcml0QXR0cnMsY3R4OmYsZGF0YTpmLHByb3BzOmYsYXR0cnM6ZixzbG90czpmLHJlZnM6ZixzZXR1cFN0YXRlOmYsc2V0dXBDb250ZXh0Om51bGwsc3VzcGVuc2U6bixzdXNwZW5zZUlkOm4/bi5wZW5kaW5nSWQ6MCxhc3luY0RlcDpudWxsLGFzeW5jUmVzb2x2ZWQ6ITEsaXNNb3VudGVkOiExLGlzVW5tb3VudGVkOiExLGlzRGVhY3RpdmF0ZWQ6ITEsYmM6bnVsbCxjOm51bGwsYm06bnVsbCxtOm51bGwsYnU6bnVsbCx1Om51bGwsdW06bnVsbCxidW06bnVsbCxkYTpudWxsLGE6bnVsbCxydGc6bnVsbCxydGM6bnVsbCxlYzpudWxsLHNwOm51bGx9O3MuY3R4PXtfOnN9LHMucm9vdD1lP2Uucm9vdDpzLHMuZW1pdD1wdChZZSxudWxsLHMpLHQuY2UmJnQuY2Uocyk7cmV0dXJuIHN9KHQsbyxzKTtpZihuZSh0KSYmKGEuY3R4LnJlbmRlcmVyPWZ0KSxmdW5jdGlvbih0LG49ITEscj0hMSl7biYmbnIobik7Y29uc3R7cHJvcHM6byxjaGlsZHJlbjpzfT10LnZub2RlLGk9aXIodCk7KGZ1bmN0aW9uKHQsZSxuLHI9ITEpe2NvbnN0IG89e30scz1zbigpO3QucHJvcHNEZWZhdWx0cz1PYmplY3QuY3JlYXRlKG51bGwpLHVuKHQsZSxvLHMpO2Zvcihjb25zdCBsIGluIHQucHJvcHNPcHRpb25zWzBdKWwgaW4gb3x8KG9bbF09dm9pZCAwKTtuP3QucHJvcHM9cj9vOmMobyk6dC50eXBlLnByb3BzP3QucHJvcHM9bzp0LnByb3BzPXMsdC5hdHRycz1zfSkodCxvLGksbiksKCh0LGUsbik9Pntjb25zdCByPXQuc2xvdHM9c24oKTtpZigzMiZ0LnZub2RlLnNoYXBlRmxhZyl7Y29uc3QgdD1lLl87dD8oeW4ocixlLG4pLG4mJkUociwiXyIsdCwhMCkpOnZuKGUscil9ZWxzZSBlJiZibih0LGUpfSkodCxzLHJ8fG4pO2NvbnN0IHU9aT9mdW5jdGlvbih0LG4pe2NvbnN0IHI9dC50eXBlO3QuYWNjZXNzQ2FjaGU9T2JqZWN0LmNyZWF0ZShudWxsKSx0LnByb3h5PW5ldyBQcm94eSh0LmN0eCxPZSk7Y29uc3R7c2V0dXA6b309cjtpZihvKXtlKCk7Y29uc3Qgcj10LnNldHVwQ29udGV4dD1vLmxlbmd0aD4xP2Z1bmN0aW9uKHQpe2NvbnN0IGU9ZT0+e3QuZXhwb3NlZD1lfHx7fX07cmV0dXJue2F0dHJzOm5ldyBQcm94eSh0LmF0dHJzLHByKSxzbG90czp0LnNsb3RzLGVtaXQ6dC5lbWl0LGV4cG9zZTplfX0odCk6bnVsbCxzPXNyKHQpLGk9bXQobyx0LDAsW3QucHJvcHMscl0pLHU9cShpKTtpZihsKCkscygpLCF1JiYhdC5zcHx8UXQodCl8fEd0KHQpLHUpe2lmKGkudGhlbihscixsciksbilyZXR1cm4gaS50aGVuKGU9Pntmcih0LGUsbil9KS5jYXRjaChlPT57dnQoZSx0LDApfSk7dC5hc3luY0RlcD1pfWVsc2UgZnIodCxpLG4pfWVsc2UgZHIodCxuKX0odCxuKTp2b2lkIDA7biYmbnIoITEpfShhLCExLHUpLGEuYXN5bmNEZXApe2lmKHMmJnMucmVnaXN0ZXJEZXAoYSxYLHUpLCF0LmVsKXtjb25zdCBlPWEuc3ViVHJlZT1xbihqbik7aihudWxsLGUsbixyKSx0LnBsYWNlaG9sZGVyPWUuZWx9fWVsc2UgWChhLHQsbixyLHMsaSx1KX0sQj0odCxlLG4pPT57Y29uc3Qgcj1lLmNvbXBvbmVudD10LmNvbXBvbmVudDtpZihmdW5jdGlvbih0LGUsbil7Y29uc3R7cHJvcHM6cixjaGlsZHJlbjpvLGNvbXBvbmVudDpzfT10LHtwcm9wczpsLGNoaWxkcmVuOmkscGF0Y2hGbGFnOnV9PWUsYz1zLmVtaXRzT3B0aW9ucztpZihlLmRpcnN8fGUudHJhbnNpdGlvbilyZXR1cm4hMDtpZighKG4mJnU+PTApKXJldHVybiEoIW8mJiFpfHxpJiZpLiRzdGFibGUpfHxyIT09bCYmKHI/IWx8fHJuKHIsbCxjKTohIWwpO2lmKDEwMjQmdSlyZXR1cm4hMDtpZigxNiZ1KXJldHVybiByP3JuKHIsbCxjKTohIWw7aWYoOCZ1KXtjb25zdCB0PWUuZHluYW1pY1Byb3BzO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtjb25zdCBuPXRbZV07aWYobFtuXSE9PXJbbl0mJiFRZShjLG4pKXJldHVybiEwfX1yZXR1cm4hMX0odCxlLG4pKXtpZihyLmFzeW5jRGVwJiYhci5hc3luY1Jlc29sdmVkKXJldHVybiB2b2lkIEcocixlLG4pO3IubmV4dD1lLHIudXBkYXRlKCl9ZWxzZSBlLmVsPXQuZWwsci52bm9kZT1lfSxYPSh0LGUsbixyLG8scyxsKT0+e2NvbnN0IGk9KCk9PntpZih0LmlzTW91bnRlZCl7bGV0e25leHQ6ZSxidTpuLHU6cixwYXJlbnQ6dSx2bm9kZTpjfT10O3tjb25zdCBuPWtuKHQpO2lmKG4pcmV0dXJuIGUmJihlLmVsPWMuZWwsRyh0LGUsbCkpLHZvaWQgbi5hc3luY0RlcC50aGVuKCgpPT57dC5pc1VubW91bnRlZHx8aSgpfSl9bGV0IGEsZj1lO1NuKHQsITEpLGU/KGUuZWw9Yy5lbCxHKHQsZSxsKSk6ZT1jLG4mJnR0KG4pLChhPWUucHJvcHMmJmUucHJvcHMub25Wbm9kZUJlZm9yZVVwZGF0ZSkmJkpuKGEsdSxlLGMpLFNuKHQsITApO2NvbnN0IGQ9dG4odCkscD10LnN1YlRyZWU7dC5zdWJUcmVlPWQsTShwLGQsZyhwLmVsKSxpdChwKSx0LG8scyksZS5lbD1kLmVsLG51bGw9PT1mJiZmdW5jdGlvbih7dm5vZGU6dCxwYXJlbnQ6ZX0sbil7Zm9yKDtlOyl7Y29uc3Qgcj1lLnN1YlRyZWU7aWYoci5zdXNwZW5zZSYmci5zdXNwZW5zZS5hY3RpdmVCcmFuY2g9PT10JiYoci5lbD10LmVsKSxyIT09dClicmVhazsodD1lLnZub2RlKS5lbD1uLGU9ZS5wYXJlbnR9fSh0LGQuZWwpLHImJmduKHIsbyksKGE9ZS5wcm9wcyYmZS5wcm9wcy5vblZub2RlVXBkYXRlZCkmJmduKCgpPT5KbihhLHUsZSxjKSxvKX1lbHNle2xldCBsO2NvbnN0e2VsOmkscHJvcHM6dX09ZSx7Ym06YyxtOmEscGFyZW50OmYscm9vdDpkLHR5cGU6cH09dCxtPVF0KGUpO2lmKFNuKHQsITEpLGMmJnR0KGMpLCFtJiYobD11JiZ1Lm9uVm5vZGVCZWZvcmVNb3VudCkmJkpuKGwsZixlKSxTbih0LCEwKSxpJiZodCl7Y29uc3QgZT0oKT0+e3Quc3ViVHJlZT10bih0KSxodChpLHQuc3ViVHJlZSx0LG8sbnVsbCl9O20mJnAuTT9wLk0oaSx0LGUpOmUoKX1lbHNle2QuY2UmJiExIT09ZC5jZS5fZGVmLnNoYWRvd1Jvb3QmJmQuY2UuX2luamVjdENoaWxkU3R5bGUocCk7Y29uc3QgbD10LnN1YlRyZWU9dG4odCk7TShudWxsLGwsbixyLHQsbyxzKSxlLmVsPWwuZWx9aWYoYSYmZ24oYSxvKSwhbSYmKGw9dSYmdS5vblZub2RlTW91bnRlZCkpe2NvbnN0IHQ9ZTtnbigoKT0+Sm4obCxmLHQpLG8pfSgyNTYmZS5zaGFwZUZsYWd8fGYmJlF0KGYudm5vZGUpJiYyNTYmZi52bm9kZS5zaGFwZUZsYWcpJiZ0LmEmJmduKHQuYSxvKSx0LmlzTW91bnRlZD0hMCxlPW49cj1udWxsfX07dC5zY29wZS5vbigpO2NvbnN0IHU9dC5lZmZlY3Q9bmV3IHkoaSk7dC5zY29wZS5vZmYoKTtjb25zdCBjPXQudXBkYXRlPXB0KHUucnVuLHUpLGE9dC5qb2I9cHQodS5ydW5JZkRpcnR5LHUpO2EuaT10LGEuaWQ9dC51aWQsdS5zY2hlZHVsZXI9KCk9Pk10KGEpLFNuKHQsITApLGMoKX0sRz0odCxuLHIpPT57bi5jb21wb25lbnQ9dDtjb25zdCBvPXQudm5vZGUucHJvcHM7dC52bm9kZT1uLHQubmV4dD1udWxsLGZ1bmN0aW9uKHQsZSxuLHIpe2NvbnN0e3Byb3BzOm8sYXR0cnM6cyx2bm9kZTp7cGF0Y2hGbGFnOmx9fT10LGk9YihvKSxbdV09dC5wcm9wc09wdGlvbnM7bGV0IGM9ITE7aWYoIShyfHxsPjApfHwxNiZsKXtsZXQgcjt1bih0LGUsbyxzKSYmKGM9ITApO2Zvcihjb25zdCBzIGluIGkpZSYmKFIoZSxzKXx8KHI9cnQocykpIT09cyYmUihlLHIpKXx8KHU/IW58fHZvaWQgMD09PW5bc10mJnZvaWQgMD09PW5bcl18fChvW3NdPWNuKHUsaSxzLHZvaWQgMCx0LCEwKSk6ZGVsZXRlIG9bc10pO2lmKHMhPT1pKWZvcihjb25zdCB0IGluIHMpZSYmUihlLHQpfHwoZGVsZXRlIHNbdF0sYz0hMCl9ZWxzZSBpZig4Jmwpe2NvbnN0IG49dC52bm9kZS5keW5hbWljUHJvcHM7Zm9yKGxldCByPTA7cjxuLmxlbmd0aDtyKyspe2xldCBsPW5bcl07aWYoUWUodC5lbWl0c09wdGlvbnMsbCkpY29udGludWU7Y29uc3QgYT1lW2xdO2lmKHUpaWYoUihzLGwpKWEhPT1zW2xdJiYoc1tsXT1hLGM9ITApO2Vsc2V7Y29uc3QgZT1DKGwpO29bZV09Y24odSxpLGUsYSx0LCExKX1lbHNlIGEhPT1zW2xdJiYoc1tsXT1hLGM9ITApfX1jJiZTKHQuYXR0cnMsInNldCIsIiIpfSh0LG4ucHJvcHMsbyxyKSwoKHQsZSxuKT0+e2NvbnN0e3Zub2RlOnIsc2xvdHM6b309dDtsZXQgcz0hMCxsPWY7aWYoMzImci5zaGFwZUZsYWcpe2NvbnN0IHQ9ZS5fO3Q/biYmMT09PXQ/cz0hMTp5bihvLGUsbik6KHM9IWUuJHN0YWJsZSx2bihlLG8pKSxsPWV9ZWxzZSBlJiYoYm4odCxlKSxsPXtkZWZhdWx0OjF9KTtpZihzKWZvcihjb25zdCBpIGluIG8pcG4oaSl8fG51bGwhPWxbaV18fGRlbGV0ZSBvW2ldfSkodCxuLmNoaWxkcmVuLHIpLGUoKSxDdCh0KSxsKCl9LEs9KHQsZSxuLHIsbyxzLGwsaSx1PSExKT0+e2NvbnN0IGM9dCYmdC5jaGlsZHJlbixhPXQ/dC5zaGFwZUZsYWc6MCxmPWUuY2hpbGRyZW4se3BhdGNoRmxhZzpkLHNoYXBlRmxhZzpwfT1lO2lmKGQ+MCl7aWYoMTI4JmQpcmV0dXJuIHZvaWQgWihjLGYsbixyLG8scyxsLGksdSk7aWYoMjU2JmQpcmV0dXJuIHZvaWQgWShjLGYsbixyLG8scyxsLGksdSl9OCZwPygxNiZhJiZsdChjLG8scyksZiE9PWMmJnYobixmKSk6MTYmYT8xNiZwP1ooYyxmLG4scixvLHMsbCxpLHUpOmx0KGMsbyxzLCEwKTooOCZhJiZ2KG4sIiIpLDE2JnAmJnooZixuLHIsbyxzLGwsaSx1KSl9LFk9KHQsZSxuLHIsbyxzLGwsdSxjKT0+e2U9ZXx8aTtjb25zdCBhPSh0PXR8fGkpLmxlbmd0aCxmPWUubGVuZ3RoLGQ9TWF0aC5taW4oYSxmKTtsZXQgcDtmb3IocD0wO3A8ZDtwKyspe2NvbnN0IHI9ZVtwXT1jP1luKGVbcF0pOktuKGVbcF0pO00odFtwXSxyLG4sbnVsbCxvLHMsbCx1LGMpfWE+Zj9sdCh0LG8scywhMCwhMSxkKTp6KGUsbixyLG8scyxsLHUsYyxkKX0sWj0odCxlLG4scixvLHMsbCx1LGMpPT57bGV0IGE9MDtjb25zdCBmPWUubGVuZ3RoO2xldCBkPXQubGVuZ3RoLTEscD1mLTE7Zm9yKDthPD1kJiZhPD1wOyl7Y29uc3Qgcj10W2FdLGk9ZVthXT1jP1luKGVbYV0pOktuKGVbYV0pO2lmKCFIbihyLGkpKWJyZWFrO00ocixpLG4sbnVsbCxvLHMsbCx1LGMpLGErK31mb3IoO2E8PWQmJmE8PXA7KXtjb25zdCByPXRbZF0saT1lW3BdPWM/WW4oZVtwXSk6S24oZVtwXSk7aWYoIUhuKHIsaSkpYnJlYWs7TShyLGksbixudWxsLG8scyxsLHUsYyksZC0tLHAtLX1pZihhPmQpe2lmKGE8PXApe2NvbnN0IHQ9cCsxLGk9dDxmP2VbdF0uZWw6cjtmb3IoO2E8PXA7KU0obnVsbCxlW2FdPWM/WW4oZVthXSk6S24oZVthXSksbixpLG8scyxsLHUsYyksYSsrfX1lbHNlIGlmKGE+cClmb3IoO2E8PWQ7KVEodFthXSxvLHMsITApLGErKztlbHNle2NvbnN0IG09YSxoPWEsdj1uZXcgTWFwO2ZvcihhPWg7YTw9cDthKyspe2NvbnN0IHQ9ZVthXT1jP1luKGVbYV0pOktuKGVbYV0pO251bGwhPXQua2V5JiZ2LnNldCh0LmtleSxhKX1sZXQgYix5PTA7Y29uc3QgZz1wLWgrMTtsZXQgdz0hMSxTPTA7Y29uc3QgeD1uZXcgQXJyYXkoZyk7Zm9yKGE9MDthPGc7YSsrKXhbYV09MDtmb3IoYT1tO2E8PWQ7YSsrKXtjb25zdCByPXRbYV07aWYoeT49Zyl7UShyLG8scywhMCk7Y29udGludWV9bGV0IGk7aWYobnVsbCE9ci5rZXkpaT12LmdldChyLmtleSk7ZWxzZSBmb3IoYj1oO2I8PXA7YisrKWlmKDA9PT14W2ItaF0mJkhuKHIsZVtiXSkpe2k9YjticmVha312b2lkIDA9PT1pP1EocixvLHMsITApOih4W2ktaF09YSsxLGk+PVM/Uz1pOnc9ITAsTShyLGVbaV0sbixudWxsLG8scyxsLHUsYykseSsrKX1jb25zdCBrPXc/ZnVuY3Rpb24odCl7Y29uc3QgZT10LnNsaWNlKCksbj1bMF07bGV0IHIsbyxzLGwsaTtjb25zdCB1PXQubGVuZ3RoO2ZvcihyPTA7cjx1O3IrKyl7Y29uc3QgdT10W3JdO2lmKDAhPT11KXtpZihvPW5bbi5sZW5ndGgtMV0sdFtvXTx1KXtlW3JdPW8sbi5wdXNoKHIpO2NvbnRpbnVlfWZvcihzPTAsbD1uLmxlbmd0aC0xO3M8bDspaT1zK2w+PjEsdFtuW2ldXTx1P3M9aSsxOmw9aTt1PHRbbltzXV0mJihzPjAmJihlW3JdPW5bcy0xXSksbltzXT1yKX19cz1uLmxlbmd0aCxsPW5bcy0xXTtmb3IoO3MtLSA+MDspbltzXT1sLGw9ZVtsXTtyZXR1cm4gbn0oeCk6aTtmb3IoYj1rLmxlbmd0aC0xLGE9Zy0xO2E+PTA7YS0tKXtjb25zdCB0PWgrYSxpPWVbdF0sZD1lW3QrMV0scD10KzE8Zj9kLmVsfHwkbihkKTpyOzA9PT14W2FdP00obnVsbCxpLG4scCxvLHMsbCx1LGMpOncmJihiPDB8fGEhPT1rW2JdP0ooaSxuLHAsMik6Yi0tKX19fSxKPSh0LGUsbixyLGw9bnVsbCk9Pntjb25zdHtlbDppLHR5cGU6dSx0cmFuc2l0aW9uOmMsY2hpbGRyZW46YSxzaGFwZUZsYWc6Zn09dDtpZig2JmYpSih0LmNvbXBvbmVudC5zdWJUcmVlLGUsbixyKTtlbHNlIGlmKDEyOCZmKXQuc3VzcGVuc2UubW92ZShlLG4scik7ZWxzZSBpZig2NCZmKXUubW92ZSh0LGUsbixmdCk7ZWxzZSBpZih1IT09RW4paWYodSE9PUZuKWlmKDIhPT1yJiYxJmYmJmMpaWYoMD09PXIpYy5iZWZvcmVFbnRlcihpKSxvKGksZSxuKSxnbigoKT0+Yy5lbnRlcihpKSxsKTtlbHNle2NvbnN0e2xlYXZlOnIsZGVsYXlMZWF2ZTpsLGFmdGVyTGVhdmU6dX09YyxhPSgpPT57dC5jdHguaXNVbm1vdW50ZWQ/cyhpKTpvKGksZSxuKX0sZj0oKT0+e2kuX2lzTGVhdmluZyYmaVtxdF0oITApLHIoaSwoKT0+e2EoKSx1JiZ1KCl9KX07bD9sKGksYSxmKTpmKCl9ZWxzZSBvKGksZSxuKTtlbHNlIE8odCxlLG4pO2Vsc2V7byhpLGUsbik7Zm9yKGxldCB0PTA7dDxhLmxlbmd0aDt0KyspSihhW3RdLGUsbixyKTtvKHQuYW5jaG9yLGUsbil9fSxRPSh0LG4scixvPSExLHM9ITEpPT57Y29uc3R7dHlwZTppLHByb3BzOnUscmVmOmMsY2hpbGRyZW46YSxkeW5hbWljQ2hpbGRyZW46ZixzaGFwZUZsYWc6ZCxwYXRjaEZsYWc6cCxkaXJzOm0sY2FjaGVJbmRleDpofT10O2lmKC0yPT09cCYmKHM9ITEpLG51bGwhPWMmJihlKCksWXQoYyxudWxsLHIsdCwhMCksbCgpKSxudWxsIT1oJiYobi5yZW5kZXJDYWNoZVtoXT12b2lkIDApLDI1NiZkKXJldHVybiB2b2lkIG4uY3R4LmRlYWN0aXZhdGUodCk7Y29uc3Qgdj0xJmQmJm0sYj0hUXQodCk7bGV0IHk7aWYoYiYmKHk9dSYmdS5vblZub2RlQmVmb3JlVW5tb3VudCkmJkpuKHksbix0KSw2JmQpb3QodC5jb21wb25lbnQscixvKTtlbHNle2lmKDEyOCZkKXJldHVybiB2b2lkIHQuc3VzcGVuc2UudW5tb3VudChyLG8pO3YmJkl0KHQsbnVsbCxuLCJiZWZvcmVVbm1vdW50IiksNjQmZD90LnR5cGUucmVtb3ZlKHQsbixyLGZ0LG8pOmYmJiFmLmhhc09uY2UmJihpIT09RW58fHA+MCYmNjQmcCk/bHQoZixuLHIsITEsITApOihpPT09RW4mJjM4NCZwfHwhcyYmMTYmZCkmJmx0KGEsbixyKSxvJiZldCh0KX0oYiYmKHk9dSYmdS5vblZub2RlVW5tb3VudGVkKXx8dikmJmduKCgpPT57eSYmSm4oeSxuLHQpLHYmJkl0KHQsbnVsbCxuLCJ1bm1vdW50ZWQiKX0scil9LGV0PXQ9Pntjb25zdHt0eXBlOmUsZWw6bixhbmNob3I6cix0cmFuc2l0aW9uOm99PXQ7aWYoZT09PUVuKXJldHVybiB2b2lkIG50KG4scik7aWYoZT09PUZuKXJldHVybiB2b2lkIEEodCk7Y29uc3QgbD0oKT0+e3MobiksbyYmIW8ucGVyc2lzdGVkJiZvLmFmdGVyTGVhdmUmJm8uYWZ0ZXJMZWF2ZSgpfTtpZigxJnQuc2hhcGVGbGFnJiZvJiYhby5wZXJzaXN0ZWQpe2NvbnN0e2xlYXZlOmUsZGVsYXlMZWF2ZTpyfT1vLHM9KCk9PmUobixsKTtyP3IodC5lbCxsLHMpOnMoKX1lbHNlIGwoKX0sbnQ9KHQsZSk9PntsZXQgbjtmb3IoO3QhPT1lOyluPXcodCkscyh0KSx0PW47cyhlKX0sb3Q9KHQsZSxuKT0+e2NvbnN0e2J1bTpyLHNjb3BlOm8sam9iOnMsc3ViVHJlZTpsLHVtOmksbTp1LGE6Y309dDtNbih1KSxNbihjKSxyJiZ0dChyKSxvLnN0b3AoKSxzJiYocy5mbGFnc3w9OCxRKGwsdCxlLG4pKSxpJiZnbihpLGUpLGduKCgpPT57dC5pc1VubW91bnRlZD0hMH0sZSl9LGx0PSh0LGUsbixyPSExLG89ITEscz0wKT0+e2ZvcihsZXQgbD1zO2w8dC5sZW5ndGg7bCsrKVEodFtsXSxlLG4scixvKX0saXQ9dD0+e2lmKDYmdC5zaGFwZUZsYWcpcmV0dXJuIGl0KHQuY29tcG9uZW50LnN1YlRyZWUpO2lmKDEyOCZ0LnNoYXBlRmxhZylyZXR1cm4gdC5zdXNwZW5zZS5uZXh0KCk7Y29uc3QgZT13KHQuYW5jaG9yfHx0LmVsKSxuPWUmJmVbTnRdO3JldHVybiBuP3cobik6ZX07bGV0IHV0PSExO2NvbnN0IGF0PSh0LGUsbik9PntsZXQgcjtudWxsPT10P2UuX3Zub2RlJiYoUShlLl92bm9kZSxudWxsLG51bGwsITApLHI9ZS5fdm5vZGUuY29tcG9uZW50KTpNKGUuX3Zub2RlfHxudWxsLHQsZSxudWxsLG51bGwsbnVsbCxuKSxlLl92bm9kZT10LHV0fHwodXQ9ITAsQ3QociksRXQoKSx1dD0hMSl9LGZ0PXtwOk0sdW06USxtOkoscjpldCxtdDpOLG1jOnoscGM6SyxwYmM6RCxuOml0LG86bn07bGV0IGR0LGh0O3ImJihbZHQsaHRdPXIoZnQpKTtyZXR1cm57cmVuZGVyOmF0LGh5ZHJhdGU6ZHQsY3JlYXRlQXBwOkdlKGF0LGR0KX19KG4pfWZ1bmN0aW9uIHduKHt0eXBlOnQscHJvcHM6ZX0sbil7cmV0dXJuInN2ZyI9PT1uJiYiZm9yZWlnbk9iamVjdCI9PT10fHwibWF0aG1sIj09PW4mJiJhbm5vdGF0aW9uLXhtbCI9PT10JiZlJiZlLmVuY29kaW5nJiZlLmVuY29kaW5nLmluY2x1ZGVzKCJodG1sIik/dm9pZCAwOm59ZnVuY3Rpb24gU24oe2VmZmVjdDp0LGpvYjplfSxuKXtuPyh0LmZsYWdzfD0zMixlLmZsYWdzfD00KToodC5mbGFncyY9LTMzLGUuZmxhZ3MmPS01KX1mdW5jdGlvbiB4bih0LGUsbj0hMSl7Y29uc3Qgcj10LmNoaWxkcmVuLG89ZS5jaGlsZHJlbjtpZihWKHIpJiZWKG8pKWZvcihsZXQgcz0wO3M8ci5sZW5ndGg7cysrKXtjb25zdCBlPXJbc107bGV0IGw9b1tzXTsxJmwuc2hhcGVGbGFnJiYhbC5keW5hbWljQ2hpbGRyZW4mJigobC5wYXRjaEZsYWc8PTB8fDMyPT09bC5wYXRjaEZsYWcpJiYobD1vW3NdPVluKG9bc10pLGwuZWw9ZS5lbCksbnx8LTI9PT1sLnBhdGNoRmxhZ3x8eG4oZSxsKSksbC50eXBlPT09VG4mJigtMSE9PWwucGF0Y2hGbGFnP2wuZWw9ZS5lbDpsLkk9cysodC50eXBlPT09RW4/MTowKSksbC50eXBlIT09am58fGwuZWx8fChsLmVsPWUuZWwpfX1mdW5jdGlvbiBrbih0KXtjb25zdCBlPXQuc3ViVHJlZS5jb21wb25lbnQ7aWYoZSlyZXR1cm4gZS5hc3luY0RlcCYmIWUuYXN5bmNSZXNvbHZlZD9lOmtuKGUpfWZ1bmN0aW9uIE1uKHQpe2lmKHQpZm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspdFtlXS5mbGFnc3w9OH1mdW5jdGlvbiAkbih0KXtpZih0LnBsYWNlaG9sZGVyKXJldHVybiB0LnBsYWNlaG9sZGVyO2NvbnN0IGU9dC5jb21wb25lbnQ7cmV0dXJuIGU/JG4oZS5zdWJUcmVlKTpudWxsfXZhciBDbj10PT50LlI7dmFyIEVuPVN5bWJvbC5mb3IoInYtZmd0IiksVG49U3ltYm9sLmZvcigidi10eHQiKSxqbj1TeW1ib2wuZm9yKCJ2LWNtdCIpLEZuPVN5bWJvbC5mb3IoInYtc3RjIiksT249W10sQW49bnVsbDtmdW5jdGlvbiBVbih0PSExKXtPbi5wdXNoKEFuPXQ/bnVsbDpbXSl9dmFyIFBuPTE7ZnVuY3Rpb24gSW4odCxlPSExKXtQbis9dCx0PDAmJkFuJiZlJiYoQW4uaGFzT25jZT0hMCl9ZnVuY3Rpb24gUm4odCl7cmV0dXJuIHQuZHluYW1pY0NoaWxkcmVuPVBuPjA/QW58fGk6bnVsbCxPbi5wb3AoKSxBbj1PbltPbi5sZW5ndGgtMV18fG51bGwsUG4+MCYmQW4mJkFuLnB1c2godCksdH1mdW5jdGlvbiB6bih0LGUsbixyLG8scyl7cmV0dXJuIFJuKE5uKHQsZSxuLHIsbyxzLCEwKSl9ZnVuY3Rpb24gTG4odCxlLG4scixvKXtyZXR1cm4gUm4ocW4odCxlLG4scixvLCEwKSl9ZnVuY3Rpb24gRG4odCl7cmV0dXJuISF0JiYhMD09PXQuTH1mdW5jdGlvbiBIbih0LGUpe3JldHVybiB0LnR5cGU9PT1lLnR5cGUmJnQua2V5PT09ZS5rZXl9dmFyIFZuPSh7a2V5OnR9KT0+bnVsbCE9dD90Om51bGwsV249KHtyZWY6dCxyZWZfa2V5OmUscmVmX2ZvcjpufSk9PigibnVtYmVyIj09dHlwZW9mIHQmJih0PSIiK3QpLG51bGwhPXQ/Wih0KXx8byh0KXx8Rih0KT97aTpGdCxyOnQsazplLGY6ISFufTp0Om51bGwpO2Z1bmN0aW9uIE5uKHQsZT1udWxsLG49bnVsbCxyPTAsbz1udWxsLHM9KHQ9PT1Fbj8wOjEpLGw9ITEsaT0hMSl7Y29uc3QgdT17TDohMCxEOiEwLHR5cGU6dCxwcm9wczplLGtleTplJiZWbihlKSxyZWY6ZSYmV24oZSksc2NvcGVJZDpPdCxzbG90U2NvcGVJZHM6bnVsbCxjaGlsZHJlbjpuLGNvbXBvbmVudDpudWxsLHN1c3BlbnNlOm51bGwsc3NDb250ZW50Om51bGwsc3NGYWxsYmFjazpudWxsLGRpcnM6bnVsbCx0cmFuc2l0aW9uOm51bGwsZWw6bnVsbCxhbmNob3I6bnVsbCx0YXJnZXQ6bnVsbCx0YXJnZXRTdGFydDpudWxsLHRhcmdldEFuY2hvcjpudWxsLHN0YXRpY0NvdW50OjAsc2hhcGVGbGFnOnMscGF0Y2hGbGFnOnIsZHluYW1pY1Byb3BzOm8sZHluYW1pY0NoaWxkcmVuOm51bGwsYXBwQ29udGV4dDpudWxsLGN0eDpGdH07cmV0dXJuIGk/KFpuKHUsbiksMTI4JnMmJnQubm9ybWFsaXplKHUpKTpuJiYodS5zaGFwZUZsYWd8PVoobik/ODoxNiksUG4+MCYmIWwmJkFuJiYodS5wYXRjaEZsYWc+MHx8NiZzKSYmMzIhPT11LnBhdGNoRmxhZyYmQW4ucHVzaCh1KSx1fXZhciBxbj1mdW5jdGlvbih0LGU9bnVsbCxuPW51bGwscj0wLG89bnVsbCxzPSExKXt0JiZ0IT09d2V8fCh0PWpuKTtpZihEbih0KSl7Y29uc3Qgcj1Cbih0LGUsITApO3JldHVybiBuJiZabihyLG4pLFBuPjAmJiFzJiZBbiYmKDYmci5zaGFwZUZsYWc/QW5bQW4uaW5kZXhPZih0KV09cjpBbi5wdXNoKHIpKSxyLnBhdGNoRmxhZz0tMixyfWw9dCxGKGwpJiYiSCJpbiBsJiYodD10LkgpO3ZhciBsO2lmKGUpe2U9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/dXQodCl8fGxuKHQpP3Yoe30sdCk6dDpudWxsfShlKTtsZXR7Y2xhc3M6dCxzdHlsZTpufT1lO3QmJiFaKHQpJiYoZS5jbGFzcz1pdCh0KSksZXQobikmJih1dChuKSYmIVYobikmJihuPXYoe30sbikpLGUuc3R5bGU9ZnQobikpfWNvbnN0IGk9Wih0KT8xOkNuKHQpPzEyODoodD0+dC5WKSh0KT82NDpldCh0KT80OkYodCk/MjowO3JldHVybiBObih0LGUsbixyLG8saSxzLCEwKX07ZnVuY3Rpb24gQm4odCxlLG49ITEscj0hMSl7Y29uc3R7cHJvcHM6byxyZWY6cyxwYXRjaEZsYWc6bCxjaGlsZHJlbjppLHRyYW5zaXRpb246dX09dCxjPWU/ZnVuY3Rpb24oLi4udCl7Y29uc3QgZT17fTtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7Y29uc3Qgcj10W25dO2Zvcihjb25zdCB0IGluIHIpaWYoImNsYXNzIj09PXQpZS5jbGFzcyE9PXIuY2xhc3MmJihlLmNsYXNzPWl0KFtlLmNsYXNzLHIuY2xhc3NdKSk7ZWxzZSBpZigic3R5bGUiPT09dCllLnN0eWxlPWZ0KFtlLnN0eWxlLHIuc3R5bGVdKTtlbHNlIGlmKFUodCkpe2NvbnN0IG49ZVt0XSxvPXJbdF07IW98fG49PT1vfHxWKG4pJiZuLmluY2x1ZGVzKG8pfHwoZVt0XT1uP1tdLmNvbmNhdChuLG8pOm8pfWVsc2UiIiE9PXQmJihlW3RdPXJbdF0pfXJldHVybiBlfShvfHx7fSxlKTpvLGE9e0w6ITAsRDohMCx0eXBlOnQudHlwZSxwcm9wczpjLGtleTpjJiZWbihjKSxyZWY6ZSYmZS5yZWY/biYmcz9WKHMpP3MuY29uY2F0KFduKGUpKTpbcyxXbihlKV06V24oZSk6cyxzY29wZUlkOnQuc2NvcGVJZCxzbG90U2NvcGVJZHM6dC5zbG90U2NvcGVJZHMsY2hpbGRyZW46aSx0YXJnZXQ6dC50YXJnZXQsdGFyZ2V0U3RhcnQ6dC50YXJnZXRTdGFydCx0YXJnZXRBbmNob3I6dC50YXJnZXRBbmNob3Isc3RhdGljQ291bnQ6dC5zdGF0aWNDb3VudCxzaGFwZUZsYWc6dC5zaGFwZUZsYWcscGF0Y2hGbGFnOmUmJnQudHlwZSE9PUVuPy0xPT09bD8xNjoxNnxsOmwsZHluYW1pY1Byb3BzOnQuZHluYW1pY1Byb3BzLGR5bmFtaWNDaGlsZHJlbjp0LmR5bmFtaWNDaGlsZHJlbixhcHBDb250ZXh0OnQuYXBwQ29udGV4dCxkaXJzOnQuZGlycyx0cmFuc2l0aW9uOnUsY29tcG9uZW50OnQuY29tcG9uZW50LHN1c3BlbnNlOnQuc3VzcGVuc2Usc3NDb250ZW50OnQuc3NDb250ZW50JiZCbih0LnNzQ29udGVudCksc3NGYWxsYmFjazp0LnNzRmFsbGJhY2smJkJuKHQuc3NGYWxsYmFjaykscGxhY2Vob2xkZXI6dC5wbGFjZWhvbGRlcixlbDp0LmVsLGFuY2hvcjp0LmFuY2hvcixjdHg6dC5jdHgsY2U6dC5jZX07cmV0dXJuIHUmJnImJkJ0KGEsdS5jbG9uZShhKSksYX1mdW5jdGlvbiBYbih0PSIgIixlPTApe3JldHVybiBxbihUbixudWxsLHQsZSl9ZnVuY3Rpb24gR24odD0iIixlPSExKXtyZXR1cm4gZT8oVW4oKSxMbihqbixudWxsLHQpKTpxbihqbixudWxsLHQpfWZ1bmN0aW9uIEtuKHQpe3JldHVybiBudWxsPT10fHwiYm9vbGVhbiI9PXR5cGVvZiB0P3FuKGpuKTpWKHQpP3FuKEVuLG51bGwsdC5zbGljZSgpKTpEbih0KT9Zbih0KTpxbihUbixudWxsLFN0cmluZyh0KSl9ZnVuY3Rpb24gWW4odCl7cmV0dXJuIG51bGw9PT10LmVsJiYtMSE9PXQucGF0Y2hGbGFnfHx0Lm1lbW8/dDpCbih0KX1mdW5jdGlvbiBabih0LGUpe2xldCBuPTA7Y29uc3R7c2hhcGVGbGFnOnJ9PXQ7aWYobnVsbD09ZSllPW51bGw7ZWxzZSBpZihWKGUpKW49MTY7ZWxzZSBpZigib2JqZWN0Ij09dHlwZW9mIGUpe2lmKDY1JnIpe2NvbnN0IG49ZS5kZWZhdWx0O3JldHVybiB2b2lkKG4mJihuLl9jJiYobi5fZD0hMSksWm4odCxuKCkpLG4uX2MmJihuLl9kPSEwKSkpfXtuPTMyO2NvbnN0IHI9ZS5fO3J8fGxuKGUpPzM9PT1yJiZGdCYmKDE9PT1GdC5zbG90cy5fP2UuXz0xOihlLl89Mix0LnBhdGNoRmxhZ3w9MTAyNCkpOmUuX2N0eD1GdH19ZWxzZSBGKGUpPyhlPXtkZWZhdWx0OmUsX2N0eDpGdH0sbj0zMik6KGU9U3RyaW5nKGUpLDY0JnI/KG49MTYsZT1bWG4oZSldKTpuPTgpO3QuY2hpbGRyZW49ZSx0LnNoYXBlRmxhZ3w9bn1mdW5jdGlvbiBKbih0LGUsbixyPW51bGwpe2h0KHQsZSw3LFtuLHJdKX12YXIgUW49QmUoKSx0cj0wO3ZhciBlcixucixycj1udWxsLG9yPSgpPT5ycnx8RnQ7e2NvbnN0IGU9dCgpLG49KHQsbik9PntsZXQgcjtyZXR1cm4ocj1lW3RdKXx8KHI9ZVt0XT1bXSksci5wdXNoKG4pLHQ9PntyLmxlbmd0aD4xP3IuZm9yRWFjaChlPT5lKHQpKTpyWzBdKHQpfX07ZXI9bigiX19WVUVfSU5TVEFOQ0VfU0VUVEVSU19fIix0PT5ycj10KSxucj1uKCJfX1ZVRV9TU1JfU0VUVEVSU19fIix0PT5hcj10KX12YXIgc3I9dD0+e2NvbnN0IGU9cnI7cmV0dXJuIGVyKHQpLHQuc2NvcGUub24oKSwoKT0+e3Quc2NvcGUub2ZmKCksZXIoZSl9fSxscj0oKT0+e3JyJiZyci5zY29wZS5vZmYoKSxlcihudWxsKX07ZnVuY3Rpb24gaXIodCl7cmV0dXJuIDQmdC52bm9kZS5zaGFwZUZsYWd9dmFyIHVyLGNyLGFyPSExO2Z1bmN0aW9uIGZyKHQsZSxuKXtGKGUpP3QudHlwZS5XP3Quc3NyUmVuZGVyPWU6dC5yZW5kZXI9ZTpldChlKSYmKHQuc2V0dXBTdGF0ZT1XKGUpKSxkcih0LG4pfWZ1bmN0aW9uIGRyKHQsbixyKXtjb25zdCBvPXQudHlwZTtpZighdC5yZW5kZXIpe2lmKCFuJiZ1ciYmIW8ucmVuZGVyKXtjb25zdCBlPW8udGVtcGxhdGV8fHplKHQpLnRlbXBsYXRlO2lmKGUpe2NvbnN0e2lzQ3VzdG9tRWxlbWVudDpuLGNvbXBpbGVyT3B0aW9uczpyfT10LmFwcENvbnRleHQuY29uZmlnLHtkZWxpbWl0ZXJzOnMsY29tcGlsZXJPcHRpb25zOmx9PW8saT12KHYoe2lzQ3VzdG9tRWxlbWVudDpuLGRlbGltaXRlcnM6c30sciksbCk7by5yZW5kZXI9dXIoZSxpKX19dC5yZW5kZXI9by5yZW5kZXJ8fGEsY3ImJmNyKHQpfXtjb25zdCBuPXNyKHQpO2UoKTt0cnl7UGUodCl9ZmluYWxseXtsKCksbigpfX19dmFyIHByPXtnZXQ6KHQsZSk9Pih4KHQsImdldCIsIiIpLHRbZV0pfTtmdW5jdGlvbiBtcih0KXtyZXR1cm4gdC5leHBvc2VkP3QuZXhwb3NlUHJveHl8fCh0LmV4cG9zZVByb3h5PW5ldyBQcm94eShXKE4odC5leHBvc2VkKSkse2dldDooZSxuKT0+biBpbiBlP2Vbbl06biBpbiBqZT9qZVtuXSh0KTp2b2lkIDAsaGFzOih0LGUpPT5lIGluIHR8fGUgaW4gamV9KSk6dC5wcm94eX12YXIgaHI9KHQsZSk9PnIodCxlLGFyKSx2cj0iMy41LjI2IjtmdW5jdGlvbiBicigpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfXZhciB5cj12b2lkIDAsZ3I9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy50cnVzdGVkVHlwZXM7aWYoZ3IpdHJ5e3lyPWdyLmNyZWF0ZVBvbGljeSgidnVlIix7Y3JlYXRlSFRNTDp0PT50fSl9Y2F0Y2goV28pe312YXIgX3I9eXI/dD0+eXIuY3JlYXRlSFRNTCh0KTp0PT50LHdyPSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQ6bnVsbCxTcj13ciYmd3IuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKSx4cj17aW5zZXJ0Oih0LGUsbik9PntlLmluc2VydEJlZm9yZSh0LG58fG51bGwpfSxyZW1vdmU6dD0+e2NvbnN0IGU9dC5wYXJlbnROb2RlO2UmJmUucmVtb3ZlQ2hpbGQodCl9LGNyZWF0ZUVsZW1lbnQ6KHQsZSxuLHIpPT57Y29uc3Qgbz0ic3ZnIj09PWU/d3IuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdCk6Im1hdGhtbCI9PT1lP3dyLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCIsdCk6bj93ci5jcmVhdGVFbGVtZW50KHQse2lzOm59KTp3ci5jcmVhdGVFbGVtZW50KHQpO3JldHVybiJzZWxlY3QiPT09dCYmciYmbnVsbCE9ci5tdWx0aXBsZSYmby5zZXRBdHRyaWJ1dGUoIm11bHRpcGxlIixyLm11bHRpcGxlKSxvfSxjcmVhdGVUZXh0OnQ9PndyLmNyZWF0ZVRleHROb2RlKHQpLGNyZWF0ZUNvbW1lbnQ6dD0+d3IuY3JlYXRlQ29tbWVudCh0KSxzZXRUZXh0Oih0LGUpPT57dC5ub2RlVmFsdWU9ZX0sc2V0RWxlbWVudFRleHQ6KHQsZSk9Pnt0LnRleHRDb250ZW50PWV9LHBhcmVudE5vZGU6dD0+dC5wYXJlbnROb2RlLG5leHRTaWJsaW5nOnQ9PnQubmV4dFNpYmxpbmcscXVlcnlTZWxlY3Rvcjp0PT53ci5xdWVyeVNlbGVjdG9yKHQpLHNldFNjb3BlSWQodCxlKXt0LnNldEF0dHJpYnV0ZShlLCIiKX0saW5zZXJ0U3RhdGljQ29udGVudCh0LGUsbixyLG8scyl7Y29uc3QgbD1uP24ucHJldmlvdXNTaWJsaW5nOmUubGFzdENoaWxkO2lmKG8mJihvPT09c3x8by5uZXh0U2libGluZykpZm9yKDtlLmluc2VydEJlZm9yZShvLmNsb25lTm9kZSghMCksbiksbyE9PXMmJihvPW8ubmV4dFNpYmxpbmcpOyk7ZWxzZXtTci5pbm5lckhUTUw9X3IoInN2ZyI9PT1yP2A8c3ZnPiR7dH08L3N2Zz5gOiJtYXRobWwiPT09cj9gPG1hdGg+JHt0fTwvbWF0aD5gOnQpO2NvbnN0IG89U3IuY29udGVudDtpZigic3ZnIj09PXJ8fCJtYXRobWwiPT09cil7Y29uc3QgdD1vLmZpcnN0Q2hpbGQ7Zm9yKDt0LmZpcnN0Q2hpbGQ7KW8uYXBwZW5kQ2hpbGQodC5maXJzdENoaWxkKTtvLnJlbW92ZUNoaWxkKHQpfWUuaW5zZXJ0QmVmb3JlKG8sbil9cmV0dXJuW2w/bC5uZXh0U2libGluZzplLmZpcnN0Q2hpbGQsbj9uLnByZXZpb3VzU2libGluZzplLmxhc3RDaGlsZF19fSxrcj1TeW1ib2woIl92dGMiKTt2YXIgTXI9U3ltYm9sKCJfdm9kIiksJHI9U3ltYm9sKCJfdnNoIiksQ3I9U3ltYm9sKCIiKSxFcj0vKD86Xnw7KVxzKmRpc3BsYXlccyo6Lzt2YXIgVHI9L1xzKiFpbXBvcnRhbnQkLztmdW5jdGlvbiBqcih0LGUsbil7aWYoVihuKSluLmZvckVhY2gobj0+anIodCxlLG4pKTtlbHNlIGlmKG51bGw9PW4mJihuPSIiKSxlLnN0YXJ0c1dpdGgoIi0tIikpdC5zZXRQcm9wZXJ0eShlLG4pO2Vsc2V7Y29uc3Qgcj1mdW5jdGlvbih0LGUpe2NvbnN0IG49T3JbZV07aWYobilyZXR1cm4gbjtsZXQgcj1DKGUpO2lmKCJmaWx0ZXIiIT09ciYmciBpbiB0KXJldHVybiBPcltlXT1yO3I9TShyKTtmb3IobGV0IG89MDtvPEZyLmxlbmd0aDtvKyspe2NvbnN0IG49RnJbb10rcjtpZihuIGluIHQpcmV0dXJuIE9yW2VdPW59cmV0dXJuIGV9KHQsZSk7VHIudGVzdChuKT90LnNldFByb3BlcnR5KHJ0KHIpLG4ucmVwbGFjZShUciwiIiksImltcG9ydGFudCIpOnRbcl09bn19dmFyIEZyPVsiV2Via2l0IiwiTW96IiwibXMiXSxPcj17fTt2YXIgQXI9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiO2Z1bmN0aW9uIFVyKHQsZSxuLHIsbyxzPXooZSkpe3ImJmUuc3RhcnRzV2l0aCgieGxpbms6Iik/bnVsbD09bj90LnJlbW92ZUF0dHJpYnV0ZU5TKEFyLGUuc2xpY2UoNixlLmxlbmd0aCkpOnQuc2V0QXR0cmlidXRlTlMoQXIsZSxuKTpudWxsPT1ufHxzJiYhRyhuKT90LnJlbW92ZUF0dHJpYnV0ZShlKTp0LnNldEF0dHJpYnV0ZShlLHM/IiI6QihuKT9TdHJpbmcobik6bil9ZnVuY3Rpb24gUHIodCxlLG4scixvKXtpZigiaW5uZXJIVE1MIj09PWV8fCJ0ZXh0Q29udGVudCI9PT1lKXJldHVybiB2b2lkKG51bGwhPW4mJih0W2VdPSJpbm5lckhUTUwiPT09ZT9fcihuKTpuKSk7Y29uc3Qgcz10LnRhZ05hbWU7aWYoInZhbHVlIj09PWUmJiJQUk9HUkVTUyIhPT1zJiYhcy5pbmNsdWRlcygiLSIpKXtjb25zdCByPSJPUFRJT04iPT09cz90LmdldEF0dHJpYnV0ZSgidmFsdWUiKXx8IiI6dC52YWx1ZSxvPW51bGw9PW4/ImNoZWNrYm94Ij09PXQudHlwZT8ib24iOiIiOlN0cmluZyhuKTtyZXR1cm4gcj09PW8mJiJfdmFsdWUiaW4gdHx8KHQudmFsdWU9byksbnVsbD09biYmdC5yZW1vdmVBdHRyaWJ1dGUoZSksdm9pZCh0Ll92YWx1ZT1uKX1sZXQgbD0hMTtpZigiIj09PW58fG51bGw9PW4pe2NvbnN0IHI9dHlwZW9mIHRbZV07ImJvb2xlYW4iPT09cj9uPUcobik6bnVsbD09biYmInN0cmluZyI9PT1yPyhuPSIiLGw9ITApOiJudW1iZXIiPT09ciYmKG49MCxsPSEwKX10cnl7dFtlXT1ufWNhdGNoKFdvKXt9bCYmdC5yZW1vdmVBdHRyaWJ1dGUob3x8ZSl9ZnVuY3Rpb24gSXIodCxlLG4scil7dC5hZGRFdmVudExpc3RlbmVyKGUsbixyKX12YXIgUnI9U3ltYm9sKCJfdmVpIik7ZnVuY3Rpb24genIodCxlLG4scixvPW51bGwpe2NvbnN0IHM9dFtScl18fCh0W1JyXT17fSksbD1zW2VdO2lmKHImJmwpbC52YWx1ZT1yO2Vsc2V7Y29uc3RbbixpXT1mdW5jdGlvbih0KXtsZXQgZTtpZihMci50ZXN0KHQpKXtsZXQgbjtmb3IoZT17fTtuPXQubWF0Y2goTHIpOyl0PXQuc2xpY2UoMCx0Lmxlbmd0aC1uWzBdLmxlbmd0aCksZVtuWzBdLnRvTG93ZXJDYXNlKCldPSEwfXJldHVyblsiOiI9PT10WzJdP3Quc2xpY2UoMyk6cnQodC5zbGljZSgyKSksZV19KGUpO3I/SXIodCxuLHNbZV09ZnVuY3Rpb24odCxlKXtjb25zdCBuPXQ9PntpZih0Ll92dHMpe2lmKHQuX3Z0czw9bi5hdHRhY2hlZClyZXR1cm59ZWxzZSB0Ll92dHM9YnIoKTtodChmdW5jdGlvbih0LGUpe2lmKFYoZSkpe2NvbnN0IG49dC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb247cmV0dXJuIHQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uPSgpPT57bi5jYWxsKHQpLHQuX3N0b3BwZWQ9ITB9LGUubWFwKHQ9PmU9PiFlLl9zdG9wcGVkJiZ0JiZ0KGUpKX1yZXR1cm4gZX0odCxuLnZhbHVlKSxlLDUsW3RdKX07cmV0dXJuIG4udmFsdWU9dCxuLmF0dGFjaGVkPVZyKCksbn0ocixvKSxpKTpsJiYoIWZ1bmN0aW9uKHQsZSxuLHIpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLG4scil9KHQsbixsLGkpLHNbZV09dm9pZCAwKX19dmFyIExyPS8oPzpPbmNlfFBhc3NpdmV8Q2FwdHVyZSkkLzt2YXIgRHI9MCxIcj1Qcm9taXNlLnJlc29sdmUoKSxWcj0oKT0+RHJ8fChIci50aGVuKCgpPT5Ecj0wKSxEcj1icigpKTt2YXIgV3I9dD0+MTExPT09dC5jaGFyQ29kZUF0KDApJiYxMTA9PT10LmNoYXJDb2RlQXQoMSkmJnQuY2hhckNvZGVBdCgyKT45NiYmdC5jaGFyQ29kZUF0KDIpPDEyMzt2YXIgTnI9dD0+e2NvbnN0IGU9dC5wcm9wc1sib25VcGRhdGU6bW9kZWxWYWx1ZSJdfHwhMTtyZXR1cm4gVihlKT90PT50dChlLHQpOmV9O2Z1bmN0aW9uIHFyKHQpe3QudGFyZ2V0LmNvbXBvc2luZz0hMH1mdW5jdGlvbiBCcih0KXtjb25zdCBlPXQudGFyZ2V0O2UuY29tcG9zaW5nJiYoZS5jb21wb3Npbmc9ITEsZS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiaW5wdXQiKSkpfXZhciBYcj1TeW1ib2woIl9hc3NpZ24iKTtmdW5jdGlvbiBHcih0LGUsbil7cmV0dXJuIGUmJih0PXQudHJpbSgpKSxuJiYodD1qKHQpKSx0fXZhciBLcj17Y3JlYXRlZCh0LHttb2RpZmllcnM6e2xhenk6ZSx0cmltOm4sbnVtYmVyOnJ9fSxvKXt0W1hyXT1OcihvKTtjb25zdCBzPXJ8fG8ucHJvcHMmJiJudW1iZXIiPT09by5wcm9wcy50eXBlO0lyKHQsZT8iY2hhbmdlIjoiaW5wdXQiLGU9PntlLnRhcmdldC5jb21wb3Npbmd8fHRbWHJdKEdyKHQudmFsdWUsbixzKSl9KSwobnx8cykmJklyKHQsImNoYW5nZSIsKCk9Pnt0LnZhbHVlPUdyKHQudmFsdWUsbixzKX0pLGV8fChJcih0LCJjb21wb3NpdGlvbnN0YXJ0IixxciksSXIodCwiY29tcG9zaXRpb25lbmQiLEJyKSxJcih0LCJjaGFuZ2UiLEJyKSl9LG1vdW50ZWQodCx7dmFsdWU6ZX0pe3QudmFsdWU9bnVsbD09ZT8iIjplfSxiZWZvcmVVcGRhdGUodCx7dmFsdWU6ZSxvbGRWYWx1ZTpuLG1vZGlmaWVyczp7bGF6eTpyLHRyaW06byxudW1iZXI6c319LGwpe2lmKHRbWHJdPU5yKGwpLHQuY29tcG9zaW5nKXJldHVybjtjb25zdCBpPW51bGw9PWU/IiI6ZTtpZigoIXMmJiJudW1iZXIiIT09dC50eXBlfHwvXjBcZC8udGVzdCh0LnZhbHVlKT90LnZhbHVlOmoodC52YWx1ZSkpIT09aSl7aWYoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXQmJiJyYW5nZSIhPT10LnR5cGUpe2lmKHImJmU9PT1uKXJldHVybjtpZihvJiZ0LnZhbHVlLnRyaW0oKT09PWkpcmV0dXJufXQudmFsdWU9aX19fSxZcj17ZGVlcDohMCxjcmVhdGVkKHQsXyxlKXt0W1hyXT1OcihlKSxJcih0LCJjaGFuZ2UiLCgpPT57Y29uc3QgZT10Ll9tb2RlbFZhbHVlLG49ZW8odCkscj10LmNoZWNrZWQsbz10W1hyXTtpZihWKGUpKXtjb25zdCB0PUwoZSxuKSxzPS0xIT09dDtpZihyJiYhcylvKGUuY29uY2F0KG4pKTtlbHNlIGlmKCFyJiZzKXtjb25zdCBuPVsuLi5lXTtuLnNwbGljZSh0LDEpLG8obil9fWVsc2UgaWYoSShlKSl7Y29uc3QgdD1uZXcgU2V0KGUpO3I/dC5hZGQobik6dC5kZWxldGUobiksbyh0KX1lbHNlIG8obm8odCxyKSl9KX0sbW91bnRlZDpacixiZWZvcmVVcGRhdGUodCxlLG4pe3RbWHJdPU5yKG4pLFpyKHQsZSxuKX19O2Z1bmN0aW9uIFpyKHQse3ZhbHVlOmUsb2xkVmFsdWU6bn0scil7bGV0IG87aWYodC5fbW9kZWxWYWx1ZT1lLFYoZSkpbz1MKGUsci5wcm9wcy52YWx1ZSk+LTE7ZWxzZSBpZihJKGUpKW89ZS5oYXMoci5wcm9wcy52YWx1ZSk7ZWxzZXtpZihlPT09bilyZXR1cm47bz1IKGUsbm8odCwhMCkpfXQuY2hlY2tlZCE9PW8mJih0LmNoZWNrZWQ9byl9dmFyIEpyPXtjcmVhdGVkKHQse3ZhbHVlOmV9LG4pe3QuY2hlY2tlZD1IKGUsbi5wcm9wcy52YWx1ZSksdFtYcl09TnIobiksSXIodCwiY2hhbmdlIiwoKT0+e3RbWHJdKGVvKHQpKX0pfSxiZWZvcmVVcGRhdGUodCx7dmFsdWU6ZSxvbGRWYWx1ZTpufSxyKXt0W1hyXT1OcihyKSxlIT09biYmKHQuY2hlY2tlZD1IKGUsci5wcm9wcy52YWx1ZSkpfX0sUXI9e2RlZXA6ITAsY3JlYXRlZCh0LHt2YWx1ZTplLG1vZGlmaWVyczp7bnVtYmVyOm59fSxyKXtjb25zdCBvPUkoZSk7SXIodCwiY2hhbmdlIiwoKT0+e2NvbnN0IGU9QXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKHQub3B0aW9ucyx0PT50LnNlbGVjdGVkKS5tYXAodD0+bj9qKGVvKHQpKTplbyh0KSk7dFtYcl0odC5tdWx0aXBsZT9vP25ldyBTZXQoZSk6ZTplWzBdKSx0Ll9hc3NpZ25pbmc9ITAsa3QoKCk9Pnt0Ll9hc3NpZ25pbmc9ITF9KX0pLHRbWHJdPU5yKHIpfSxtb3VudGVkKHQse3ZhbHVlOmV9KXt0byh0LGUpfSxiZWZvcmVVcGRhdGUodCxlLG4pe3RbWHJdPU5yKG4pfSx1cGRhdGVkKHQse3ZhbHVlOmV9KXt0Ll9hc3NpZ25pbmd8fHRvKHQsZSl9fTtmdW5jdGlvbiB0byh0LGUpe2NvbnN0IG49dC5tdWx0aXBsZSxyPVYoZSk7aWYoIW58fHJ8fEkoZSkpe2ZvcihsZXQgbz0wLHM9dC5vcHRpb25zLmxlbmd0aDtvPHM7bysrKXtjb25zdCBzPXQub3B0aW9uc1tvXSxsPWVvKHMpO2lmKG4paWYocil7Y29uc3QgdD10eXBlb2YgbDtzLnNlbGVjdGVkPSJzdHJpbmciPT09dHx8Im51bWJlciI9PT10P2Uuc29tZSh0PT5TdHJpbmcodCk9PT1TdHJpbmcobCkpOkwoZSxsKT4tMX1lbHNlIHMuc2VsZWN0ZWQ9ZS5oYXMobCk7ZWxzZSBpZihIKGVvKHMpLGUpKXJldHVybiB2b2lkKHQuc2VsZWN0ZWRJbmRleCE9PW8mJih0LnNlbGVjdGVkSW5kZXg9bykpfW58fC0xPT09dC5zZWxlY3RlZEluZGV4fHwodC5zZWxlY3RlZEluZGV4PS0xKX19ZnVuY3Rpb24gZW8odCl7cmV0dXJuIl92YWx1ZSJpbiB0P3QuX3ZhbHVlOnQudmFsdWV9ZnVuY3Rpb24gbm8odCxlKXtjb25zdCBuPWU/Il90cnVlVmFsdWUiOiJfZmFsc2VWYWx1ZSI7cmV0dXJuIG4gaW4gdD90W25dOmV9dmFyIHJvPXtjcmVhdGVkKHQsZSxuKXtvbyh0LGUsbixudWxsLCJjcmVhdGVkIil9LG1vdW50ZWQodCxlLG4pe29vKHQsZSxuLG51bGwsIm1vdW50ZWQiKX0sYmVmb3JlVXBkYXRlKHQsZSxuLHIpe29vKHQsZSxuLHIsImJlZm9yZVVwZGF0ZSIpfSx1cGRhdGVkKHQsZSxuLHIpe29vKHQsZSxuLHIsInVwZGF0ZWQiKX19O2Z1bmN0aW9uIG9vKHQsZSxuLHIsbyl7Y29uc3Qgcz1mdW5jdGlvbih0LGUpe3N3aXRjaCh0KXtjYXNlIlNFTEVDVCI6cmV0dXJuIFFyO2Nhc2UiVEVYVEFSRUEiOnJldHVybiBLcjtkZWZhdWx0OnN3aXRjaChlKXtjYXNlImNoZWNrYm94IjpyZXR1cm4gWXI7Y2FzZSJyYWRpbyI6cmV0dXJuIEpyO2RlZmF1bHQ6cmV0dXJuIEtyfX19KHQudGFnTmFtZSxuLnByb3BzJiZuLnByb3BzLnR5cGUpW29dO3MmJnModCxlLG4scil9dmFyIHNvLGxvPVsiY3RybCIsInNoaWZ0IiwiYWx0IiwibWV0YSJdLGlvPXtzdG9wOnQ9PnQuc3RvcFByb3BhZ2F0aW9uKCkscHJldmVudDp0PT50LnByZXZlbnREZWZhdWx0KCksc2VsZjp0PT50LnRhcmdldCE9PXQuY3VycmVudFRhcmdldCxjdHJsOnQ9PiF0LmN0cmxLZXksc2hpZnQ6dD0+IXQuc2hpZnRLZXksYWx0OnQ9PiF0LmFsdEtleSxtZXRhOnQ9PiF0Lm1ldGFLZXksbGVmdDp0PT4iYnV0dG9uImluIHQmJjAhPT10LmJ1dHRvbixtaWRkbGU6dD0+ImJ1dHRvbiJpbiB0JiYxIT09dC5idXR0b24scmlnaHQ6dD0+ImJ1dHRvbiJpbiB0JiYyIT09dC5idXR0b24sZXhhY3Q6KHQsZSk9PmxvLnNvbWUobj0+dFtgJHtufUtleWBdJiYhZS5pbmNsdWRlcyhuKSl9LHVvPSh0LGUpPT57Y29uc3Qgbj10Ll93aXRoTW9kc3x8KHQuX3dpdGhNb2RzPXt9KSxyPWUuam9pbigiLiIpO3JldHVybiBuW3JdfHwobltyXT0obiwuLi5yKT0+e2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXtjb25zdCByPWlvW2VbdF1dO2lmKHImJnIobixlKSlyZXR1cm59cmV0dXJuIHQobiwuLi5yKX0pfSxjbz12KHtwYXRjaFByb3A6KHQsZSxuLHIsbyxzKT0+e2NvbnN0IGw9InN2ZyI9PT1vOyJjbGFzcyI9PT1lP2Z1bmN0aW9uKHQsZSxuKXtjb25zdCByPXRba3JdO3ImJihlPShlP1tlLC4uLnJdOlsuLi5yXSkuam9pbigiICIpKSxudWxsPT1lP3QucmVtb3ZlQXR0cmlidXRlKCJjbGFzcyIpOm4/dC5zZXRBdHRyaWJ1dGUoImNsYXNzIixlKTp0LmNsYXNzTmFtZT1lfSh0LHIsbCk6InN0eWxlIj09PWU/ZnVuY3Rpb24odCxlLG4pe2NvbnN0IHI9dC5zdHlsZSxvPVoobik7bGV0IHM9ITE7aWYobiYmIW8pe2lmKGUpaWYoWihlKSlmb3IoY29uc3QgdCBvZiBlLnNwbGl0KCI7Iikpe2NvbnN0IGU9dC5zbGljZSgwLHQuaW5kZXhPZigiOiIpKS50cmltKCk7bnVsbD09bltlXSYmanIocixlLCIiKX1lbHNlIGZvcihjb25zdCB0IGluIGUpbnVsbD09blt0XSYmanIocix0LCIiKTtmb3IoY29uc3QgdCBpbiBuKSJkaXNwbGF5Ij09PXQmJihzPSEwKSxqcihyLHQsblt0XSl9ZWxzZSBpZihvKXtpZihlIT09bil7Y29uc3QgdD1yW0NyXTt0JiYobis9IjsiK3QpLHIuY3NzVGV4dD1uLHM9RXIudGVzdChuKX19ZWxzZSBlJiZ0LnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKTtNciBpbiB0JiYodFtNcl09cz9yLmRpc3BsYXk6IiIsdFskcl0mJihyLmRpc3BsYXk9Im5vbmUiKSl9KHQsbixyKTpVKGUpP0soZSl8fHpyKHQsZSwwLHIscyk6KCIuIj09PWVbMF0/KGU9ZS5zbGljZSgxKSwxKToiXiI9PT1lWzBdPyhlPWUuc2xpY2UoMSksMCk6ZnVuY3Rpb24odCxlLG4scil7aWYocilyZXR1cm4iaW5uZXJIVE1MIj09PWV8fCJ0ZXh0Q29udGVudCI9PT1lfHwhIShlIGluIHQmJldyKGUpJiZGKG4pKTtpZigic3BlbGxjaGVjayI9PT1lfHwiZHJhZ2dhYmxlIj09PWV8fCJ0cmFuc2xhdGUiPT09ZXx8ImF1dG9jb3JyZWN0Ij09PWUpcmV0dXJuITE7aWYoInNhbmRib3giPT09ZSYmIklGUkFNRSI9PT10LnRhZ05hbWUpcmV0dXJuITE7aWYoImZvcm0iPT09ZSlyZXR1cm4hMTtpZigibGlzdCI9PT1lJiYiSU5QVVQiPT09dC50YWdOYW1lKXJldHVybiExO2lmKCJ0eXBlIj09PWUmJiJURVhUQVJFQSI9PT10LnRhZ05hbWUpcmV0dXJuITE7aWYoIndpZHRoIj09PWV8fCJoZWlnaHQiPT09ZSl7Y29uc3QgZT10LnRhZ05hbWU7aWYoIklNRyI9PT1lfHwiVklERU8iPT09ZXx8IkNBTlZBUyI9PT1lfHwiU09VUkNFIj09PWUpcmV0dXJuITF9cmV0dXJuKCFXcihlKXx8IVoobikpJiZlIGluIHR9KHQsZSxyLGwpKT8oUHIodCxlLHIpLHQudGFnTmFtZS5pbmNsdWRlcygiLSIpfHwidmFsdWUiIT09ZSYmImNoZWNrZWQiIT09ZSYmInNlbGVjdGVkIiE9PWV8fFVyKHQsZSxyLGwsMCwidmFsdWUiIT09ZSkpOiF0Ll9pc1Z1ZUNFfHwhL1tBLVpdLy50ZXN0KGUpJiZaKHIpPygidHJ1ZS12YWx1ZSI9PT1lP3QuX3RydWVWYWx1ZT1yOiJmYWxzZS12YWx1ZSI9PT1lJiYodC5fZmFsc2VWYWx1ZT1yKSxVcih0LGUscixsKSk6UHIodCxDKGUpLHIsMCxlKX19LHhyKTt2YXIgYW89KC4uLnQpPT57Y29uc3QgZT0oc298fChzbz1fbihjbykpKS5jcmVhdGVBcHAoLi4udCkse21vdW50Om59PWU7cmV0dXJuIGUubW91bnQ9dD0+e2NvbnN0IHI9ZnVuY3Rpb24odCl7cmV0dXJuIFoodCk/ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0KTp0fSh0KTtpZighcilyZXR1cm47Y29uc3Qgbz1lLl9jb21wb25lbnQ7RihvKXx8by5yZW5kZXJ8fG8udGVtcGxhdGV8fChvLnRlbXBsYXRlPXIuaW5uZXJIVE1MKSwxPT09ci5ub2RlVHlwZSYmKHIudGV4dENvbnRlbnQ9IiIpO2NvbnN0IHM9bihyLCExLGZ1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBTVkdFbGVtZW50KXJldHVybiJzdmciO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBNYXRoTUxFbGVtZW50JiZ0IGluc3RhbmNlb2YgTWF0aE1MRWxlbWVudClyZXR1cm4ibWF0aG1sIn0ocikpO3JldHVybiByIGluc3RhbmNlb2YgRWxlbWVudCYmKHIucmVtb3ZlQXR0cmlidXRlKCJ2LWNsb2FrIiksci5zZXRBdHRyaWJ1dGUoImRhdGEtdi1hcHAiLCIiKSksc30sZX07dmFyIGZvPXtjbGFzczoiY2Mtb2JieGEifSxwbz17Y2xhc3M6ImNjLWtjOGNlIGNjLTFsbDdqIn0sbW89e2NsYXNzOiJjYy1hcjllYSJ9LGhvPXtjbGFzczoiY2MtNnpwYmggY2MtMTBjcXMifSx2bz17a2V5OjAsY2xhc3M6ImNjLTE4a3E5IGNjLTFpY3JqIn0sYm89e2tleTowLGNsYXNzOiJjYy1vZTBmOSBjYy0xaWNyaiJ9LHlvPXtjbGFzczoiY2MtZWp2NzcifSxnbz1bIm9uQ2xpY2siLCJhcmlhLWxhYmVsIl0sX289e2NsYXNzOiJjYy04OXZ5cSBjYy0xMGNxcyJ9O3ZhciB3bz1udChYdCh7cHJvcHM6e2FjdGlvbnM6e3R5cGU6QXJyYXkscmVxdWlyZWQ6ITB9LGF2YXRhclVybDp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LGRlc2NyaXB0aW9uOnt0eXBlOlN0cmluZyxkZWZhdWx0Om51bGx9LHRpdGxlOnt0eXBlOlN0cmluZyxyZXF1aXJlZDohMH0sd2Vic2l0ZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpudWxsfX0sZW1pdHM6WyJhY3Rpb24iXSxtZXRob2RzOntvbkFjdGlvbkNsaWNrKHQpe3RoaXMuJGVtaXQoImFjdGlvbiIsdCl9fX0pLFtbInJlbmRlciIsZnVuY3Rpb24odCxlLG4scixvLHMpe2NvbnN0IGw9U2UoImNyaXNwLWFjY2Vzc2liaWxpdHkiKTtyZXR1cm4gVW4oKSx6bigiZGl2IixmbyxbTm4oImRpdiIscG8sW05uKCJzcGFuIix7Y2xhc3M6ImNjLTF3bGZnIGNjLTFmMnoyIixzdHlsZTpmdCh7YmFja2dyb3VuZEltYWdlOnQuJHJlbmRlci5pbWFnZVVybEJhY2tncm91bmQodC5hdmF0YXJVcmwpfSl9LG51bGwsNCldKSxObigiZGl2IixtbyxbTm4oImRpdiIsaG8sYXQodC50aXRsZSksMSksdC53ZWJzaXRlPyhVbigpLHpuKCJkaXYiLHZvLGF0KHQud2Vic2l0ZSksMSkpOkduKCIiLCEwKV0pLHQuZGVzY3JpcHRpb24/KFVuKCksem4oImRpdiIsYm8sYXQodC5kZXNjcmlwdGlvbiksMSkpOkduKCIiLCEwKSxObigidWwiLHlvLFsoVW4oITApLHpuKEVuLG51bGwsTWUodC5hY3Rpb25zLGU9PihVbigpLHpuKCJsaSIse2tleToiYWN0aW9uXyIrZS5pZCxjbGFzczppdChbImNjLTFqcHc4IiwiY2MtMWpwdzgtLWNvbG9yLSIrKGUuY29sb3J8fCJkZWZhdWx0IiksImNjLTFqcHc4LS1pY29uLSIrZS5pY29uXSl9LFtQdChObigiZGl2Iix7Y2xhc3M6ImNjLTF3dmgzIixvbkNsaWNrOnVvKG49PnQub25BY3Rpb25DbGljayhlLmlkKSxbInByZXZlbnQiXSksImFyaWEtbGFiZWwiOmUubGFiZWx9LG51bGwsOCxnbyksW1tsLHtyb2xlOiJidXR0b24ifV1dKSxObigic3BhbiIsX28sYXQoZS5sYWJlbCksMSldLDIpKSksMTI4KSldKV0pfV1dKSxTbz1uZXcgY2xhc3N7aW5zdGFsbCh0KXt0LmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLiRDT05GSUc9T2JqZWN0LmZyZWV6ZShPKX19LHhvPW5ldyBjbGFzc3tpbnN0YWxsKHQpe3QuY29uZmlnLmdsb2JhbFByb3BlcnRpZXMuJHJlbmRlcj17X2Y6b3QuZm9ybWF0VGV4dCxfbjpvdC5wYXJzZUZpcnN0TmFtZSxfZTpvdC50cmFuc2xhdGVUZXh0LF9hOm90LmdlbmVyYXRlQXZhdGFyVXJsLGltYWdlVXJsT3JpZ2luYWw6b3QuaW1hZ2VVcmxPcmlnaW5hbCxpbWFnZVVybFJlc2l6ZTpvdC5pbWFnZVVybFJlc2l6ZSxpbWFnZVVybEJhY2tncm91bmQ6b3QuaW1hZ2VVcmxCYWNrZ3JvdW5kfX19LGtvPW5ldyBjbGFzc3twYWROdW1iZXIodCxlPSIwMCIpe2xldCBuPWU7aWYodD49MCl7bGV0IHI9ZS5sZW5ndGgtTWF0aC5jZWlsKCh0KzEpLzEwKTtuPXQ/ZS5zdWJzdHIoMCxyKSt0OmV9cmV0dXJuIG59fSxNbz1uZXcgY2xhc3N7bG93ZXJTdHJpbmdGaXJzdCh0KXtyZXR1cm4gdGhpcy5OKHQsInRvTG93ZXJDYXNlIil9dXBwZXJTdHJpbmdGaXJzdCh0KXtyZXR1cm4gdGhpcy5OKHQsInRvVXBwZXJDYXNlIil9Tih0LGUpe2xldCBuPXQ7cmV0dXJuIHQmJihuPWAke3QuY2hhckF0KDApW2VdKCl9JHt0LnNsaWNlKDEpfWApLG59fSwkbz0zNjAwLENvPVsic3VuZGF5IiwibW9uZGF5IiwidHVlc2RheSIsIndlZG5lc2RheSIsInRodXJzZGF5IiwiZnJpZGF5Iiwic2F0dXJkYXkiXSxFbz1bImphbnVhcnkiLCJmZWJydWFyeSIsIm1hcmNoIiwiYXByaWwiLCJtYXkiLCJqdW5lIiwianVseSIsImF1Z3VzdCIsInNlcHRlbWJlciIsIm9jdG9iZXIiLCJub3ZlbWJlciIsImRlY2VtYmVyIl0sVG89bmV3IGNsYXNze2Zvcm1hdFRpbWUodCxlPSExKXtsZXQgbj0iMDowMCI7aWYodD49MCl7dD1NYXRoLnJvdW5kKHQpO2xldCByPU1hdGguZmxvb3IodC8kbyksbz1NYXRoLmZsb29yKHQlJG8vNjApLHM9dCU2MCUkbztuPXI+MHx8ITA9PT1lP2Ake3J9OiR7a28ucGFkTnVtYmVyKG8sIjAwIil9OiR7a28ucGFkTnVtYmVyKHMsIjAwIil9YDpgJHtvfToke2tvLnBhZE51bWJlcihzLCIwMCIpfWB9cmV0dXJuIG59Zm9ybWF0RGF0ZSh0LGU9ITEpe2xldCBuPW51bGwscj1uZXcgRGF0ZSxvPW5ldyBEYXRlKHQpLHM9ci5nZXRUaW1lKCktby5nZXRUaW1lKCksbD10aGlzLnEocyk7c3dpdGNoKGwudHlwZXx8KGw9e3R5cGU6ImZhcl9hd2F5IixkYXRhOntkYXRlX2Z1bGw6by50b0xvY2FsZURhdGVTdHJpbmcoKX19KSxsLnR5cGUpe2Nhc2Uibm93IjpuPVgudGV4dCgiZGF0ZSIsIm5vdyIpO2JyZWFrO2Nhc2Uic2Vjb25kcyI6bj1YLnRleHQoImRhdGUiLCJzZWNvbmQiKTticmVhaztjYXNlIm1pbnV0ZXMiOm49MT09PWwuZGF0YS5taW51dGVzP1gudGV4dCgiZGF0ZSIsIm1pbnV0ZV9zaW5ndWxhciIpOlgudGV4dCgiZGF0ZSIsIm1pbnV0ZV9wbHVyYWwiLFtsLmRhdGEubWludXRlc10pO2JyZWFrO2Nhc2UiaG91cnMiOm49MT09PWwuZGF0YS5ob3Vycz9YLnRleHQoImRhdGUiLCJob3VyX3Npbmd1bGFyIik6WC50ZXh0KCJkYXRlIiwiaG91cl9wbHVyYWwiLFtsLmRhdGEuaG91cnNdKTticmVhaztjYXNlImZhcl9hd2F5IjpuPWwuZGF0YS5kYXRlX2Z1bGx9aWYoIW4pdGhyb3cgbmV3IEVycm9yKGBFbXB0eSBwYXJzZWQgZGF0ZSBmb3IgSVNPIHN0cmluZzogJHt0fWApO3JldHVybiEwPT09ZSYmKG49TW8ubG93ZXJTdHJpbmdGaXJzdChuKSksbn1mb3JtYXREdXJhdGlvbih0LGU9ITApe2xldCBuPW51bGwscj10aGlzLnEodCxlKTtzd2l0Y2goci50eXBlfHwoci50eXBlPSJkYXlzIiksci50eXBlKXtjYXNlIm5vdyI6bj1YLnRleHQoImR1cmF0aW9uIiwibm93Iik7YnJlYWs7Y2FzZSJzZWNvbmRzIjpuPVgudGV4dCgiZHVyYXRpb24iLCJzZWNvbmQiKTticmVhaztjYXNlIm1pbnV0ZXMiOm49MT09PXIuZGF0YS5taW51dGVzP1gudGV4dCgiZHVyYXRpb24iLCJtaW51dGVfc2luZ3VsYXIiKTpYLnRleHQoImR1cmF0aW9uIiwibWludXRlX3BsdXJhbCIsW3IuZGF0YS5taW51dGVzXSk7YnJlYWs7Y2FzZSJob3VycyI6bj0xPT09ci5kYXRhLmhvdXJzP1gudGV4dCgiZHVyYXRpb24iLCJob3VyX3Npbmd1bGFyIik6WC50ZXh0KCJkdXJhdGlvbiIsImhvdXJfcGx1cmFsIixbci5kYXRhLmhvdXJzXSk7YnJlYWs7Y2FzZSJkYXlzIjpuPVgudGV4dCgiZHVyYXRpb24iLCJkYXlzIil9aWYoIW4pdGhyb3cgbmV3IEVycm9yKGBFbXB0eSBwYXJzZWQgZHVyYXRpb24gZm9yIGR1cmF0aW9uOiAke3R9YCk7cmV0dXJuIG59dGltZXN0YW1wVG9Jc28odCl7cmV0dXJuIG5ldyBEYXRlKHQpLnRvSVNPU3RyaW5nKCl9dGltZXN0YW1wVG9Qcm9wZXJ0aWVzKHQpe2xldCBlPXtkYXk6Im5vbmUiLG1vbnRoOiJub25lIix5ZWFyOiJub25lIix0aXRsZTpudWxsfTtpZih0PjApe2xldCBuPW5ldyBEYXRlKHQpLHI9WC50ZXh0KCJkYXlzIixDb1tuLmdldERheSgpXSksbz1YLnRleHQoIm1vbnRocyIsRW9bbi5nZXRNb250aCgpXSk7ZS5kYXk9YCR7bi5nZXREYXRlKCl9YCxlLm1vbnRoPWAke24uZ2V0TW9udGgoKSsxfWAsZS55ZWFyPWAke24uZ2V0RnVsbFllYXIoKX1gLGUudGl0bGU9YCR7cn0sICR7bi5nZXREYXRlKCl9ICR7b31gLChuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSE9PW4uZ2V0RnVsbFllYXIoKSYmKGUudGl0bGUrPWAgKCR7ZS55ZWFyfSlgKX1yZXR1cm4gZX1xKHQsZT0hMCl7bGV0IG49TWF0aC5yb3VuZCh0LzFlMyk7cmV0dXJuIG48MTAmJiEwPT09ZT97dHlwZToibm93In06bjw2MD97dHlwZToic2Vjb25kcyJ9Om48JG8/e3R5cGU6Im1pbnV0ZXMiLGRhdGE6e21pbnV0ZXM6TWF0aC5mbG9vcihuLzYwKX19Om48ODY0MDA/e3R5cGU6ImhvdXJzIixkYXRhOntob3VyczpNYXRoLmZsb29yKG4vJG8pfX06e319fSxqbz1uZXcgY2xhc3N7aW5pdCh0KXtsZXQgZT10aGlzO3QuZGlyZWN0aXZlKCJjcmlzcEF1ZGlvIix7YmVmb3JlTW91bnQ6KHQsbik9PmUubW91bnQodCxuKSx1cGRhdGVkOih0LG4pPT5lLnVwZGF0ZSh0LG4pLGJlZm9yZVVubW91bnQ6dD0+ZS51bmJpbmQodCl9KX1tb3VudCh0LGUpe3QuJGNhdT17fSx0LiRjYXUuaGFzSW50ZXJhY3RlZD0hMSx0LiRjYXUuaGFkQXVkaW9FcnJvcj0hMSx0LiRjYXUuaXNBdWRpb1JlYWR5PSExLHQuJGNhdS5wbGF5YmFja1NwZWVkPTEsdC4kY2F1LmR1cmF0aW9uPWUudmFsdWUuZHVyYXRpb258fDA7bGV0IG49dC5xdWVyeVNlbGVjdG9yKCIuY2MtdmdrMzUiKSxyPXQucXVlcnlTZWxlY3RvcigiLmNjLXRjcjE3Iiksbz10LnF1ZXJ5U2VsZWN0b3IoIi5jYy0xOWRpaiIpLHM9dC5xdWVyeVNlbGVjdG9yKCIuY2MtMXRnc2wiKSxsPXQucXVlcnlTZWxlY3RvcigiLmNjLTFka3g5Iik7aWYoIXMpcmV0dXJuO3RoaXMuQih0LHMsbyxsKTtsZXQgaT1zLnF1ZXJ5U2VsZWN0b3IoInNvdXJjZSIpO2kmJnRoaXMuWCh0LHMsaSksbCYmbyYmdGhpcy5HKHQscyxvLGwpLG4mJnRoaXMuSyh0LHMsbiksciYmdGhpcy5ZKHQscyxyKX11cGRhdGUodCxlKXt0aGlzLm1vdW50KHQsZSl9dW5iaW5kKHQpe3RoaXMuWih0KX1aKHQpe3QuJGNhdT17fX1CKHQsZSxuLHIpe2UuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsKCk9PntlLnBsYXliYWNrUmF0ZT10LiRjYXUucGxheWJhY2tTcGVlZCx0LnNldEF0dHJpYnV0ZSgiZGF0YS1zdGF0ZSIsITA9PT10LiRjYXUuaXNBdWRpb1JlYWR5PyJwbGF5aW5nIjoibG9hZGluZyIpfSksZS5hZGRFdmVudExpc3RlbmVyKCJwYXVzZSIsKCk9Pnt0LnNldEF0dHJpYnV0ZSgiZGF0YS1zdGF0ZSIsInBhdXNlZCIpfSksZS5hZGRFdmVudExpc3RlbmVyKCJjYW5wbGF5IiwoKT0+e3QuJGNhdS5pc0F1ZGlvUmVhZHk9ITAsdGhpcy5KKHQsZSxuLHIpLHQuc2V0QXR0cmlidXRlKCJkYXRhLXN0YXRlIiwicGxheWluZyIpfSksZS5hZGRFdmVudExpc3RlbmVyKCJzdGFsbGVkIiwoKT0+e3Quc2V0QXR0cmlidXRlKCJkYXRhLXN0YXRlIiwibm9uZSIpfSl9WCh0LGUsbil7bi5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9PntlLnBhdXNlZHx8ZS5wYXVzZSgpLHQuJGNhdS5oYWRBdWRpb0Vycm9yPSEwLCEwPT09dC4kY2F1Lmhhc0ludGVyYWN0ZWQmJmFsZXJ0KFgudGV4dCgiY2hhdCIsImNoYXRfbWVzc2FnZV9hdWRpb19wbGF5X2Vycm9yIikpfSl9Ryh0LGUsbixyKXtlLmFkZEV2ZW50TGlzdGVuZXIoInRpbWV1cGRhdGUiLGU9PntlLnRhcmdldCYmdGhpcy5KKHQsZS50YXJnZXQsbixyLCExKX0pfUsodCxlLG4pe24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT4oZSYmKHQuJGNhdS5oYXNJbnRlcmFjdGVkPSEwLGUucGF1c2VkPyghMD09PXQuJGNhdS5oYWRBdWRpb0Vycm9yJiYoZS5sb2FkKCksdC4kY2F1LmhhZEF1ZGlvRXJyb3I9ITEpLEQucGxheU1lZGlhKGUpKTplLnBhdXNlKCkpLCExKSl9WSh0LGUsbil7bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pih0LiRjYXUucGxheWJhY2tTcGVlZCs9LjUsdC4kY2F1LnBsYXliYWNrU3BlZWQ+MiYmKHQuJGNhdS5wbGF5YmFja1NwZWVkPTEpLGUucGxheWJhY2tSYXRlPXQuJGNhdS5wbGF5YmFja1NwZWVkLG4uaW5uZXJUZXh0PXQuJGNhdS5wbGF5YmFja1NwZWVkJTE9PTA/YHgke01hdGguZmxvb3IodC4kY2F1LnBsYXliYWNrU3BlZWQpfWA6YCR7dC4kY2F1LnBsYXliYWNrU3BlZWR9YCwhMSkpfUoodCxlLG4scixvPSEwKXtsZXQgcz1lLmR1cmF0aW9uIT09MS8wP2UuZHVyYXRpb246dC4kY2F1LmR1cmF0aW9uKzEsbD1NYXRoLmNlaWwoZS5jdXJyZW50VGltZS9zKjEwMCksaT1sPDEwMD9sOjAsdT0wPT09aSYmITAhPT1vP3QuJGNhdS5kdXJhdGlvbjpNYXRoLmZsb29yKGUuY3VycmVudFRpbWUpO24uaW5uZXJUZXh0PVRvLmZvcm1hdFRpbWUodSksci5zdHlsZS5zZXRQcm9wZXJ0eSgid2lkdGgiLGAke2l9JWAsImltcG9ydGFudCIpfX0sRm89bmV3IGNsYXNze2luaXQodCl7bGV0IGU9dGhpczt0LmRpcmVjdGl2ZSgiY3Jpc3BEYXRlIix7YmVmb3JlTW91bnQ6KHQsbik9PmUubW91bnQodCxuKSx1cGRhdGVkOih0LG4pPT5lLnVwZGF0ZSh0LG4pLGJlZm9yZVVubW91bnQ6dD0+ZS51bmJpbmQodCl9KX1tb3VudCh0LGUpe3QuJGNkPXt9LHQuJGNkLnRpbWVzdGFtcD1lLnZhbHVlPy5kYXRlLHQuJGNkLmZvcm1hdD1lLnZhbHVlPy5mb3JtYXR8fCIiLHQuJGNkLnR5cGU9ZS52YWx1ZT8udHlwZXx8ImRhdGUiLHQuJGNkLnRpbWVvdXQ9bnVsbCx0aGlzLnR0KHQpfXVwZGF0ZSh0LGUpe3RoaXMubW91bnQodCxlKX11bmJpbmQodCl7dGhpcy5aKHQpfXR0KHQpe2xldCBlPSIiO3N3aXRjaCh0LiRjZC50eXBlKXtjYXNlImRhdGUiOmU9VG8uZm9ybWF0RGF0ZShUby50aW1lc3RhbXBUb0lzbyh0LiRjZC50aW1lc3RhbXApKTticmVhaztjYXNlImR1cmF0aW9uIjplPVRvLmZvcm1hdER1cmF0aW9uKHQuJGNkLnRpbWVzdGFtcCl9dC4kY2QuZm9ybWF0JiYoZT1ULnBhcnNlKCkucmVwbGFjZSh0LiRjZC5mb3JtYXQsW01vLmxvd2VyU3RyaW5nRmlyc3QoZSldKSksdC5pbm5lclRleHQ9ZSx0aGlzLmV0KHQpfVoodCl7dGhpcy5udCh0KSx0LiRjZD17fX1ldCh0KXt0aGlzLm50KHQpLHQuJGNkLnRpbWVvdXQ9RC5zZXRUaW1lb3V0KCgpPT57dGhpcy50dCh0KX0sMmU0KX1udCh0KXt0LiRjZCYmKEQuY2xlYXJUaW1lb3V0KHQuJGNkLnRpbWVvdXQpLHQuJGNkLnRpbWVvdXQ9bnVsbCl9fSxPbz17c3RhY2s6W10scGVuZGluZ0ZvY3VzVGltZW91dDpudWxsfSxBbz1uZXcgY2xhc3MgZXh0ZW5kcyBsdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9cmVzZXQoKXtPby5zdGFjaz1bXSxudWxsIT09T28ucGVuZGluZ0ZvY3VzVGltZW91dCYmKGNsZWFyVGltZW91dChPby5wZW5kaW5nRm9jdXNUaW1lb3V0KSxPby5wZW5kaW5nRm9jdXNUaW1lb3V0PW51bGwpfWluaXQodCl7bGV0IGU9dGhpczt0LmRpcmVjdGl2ZSgiY3Jpc3BGb2N1c0ZvcmVncm91bmQiLHtiZWZvcmVNb3VudDoodCxuKT0+ZS5tb3VudCh0LG4pLHVwZGF0ZWQ6KHQsbik9PmUudXBkYXRlKHQsbiksYmVmb3JlVW5tb3VudDp0PT5lLnVuYmluZCh0KX0pfW1vdW50KHQsZSl7ITAhPT1lPy52YWx1ZT8uZGlzYWJsZWQ/KHQuJGNmZj17fSx0LiRjZmYucHJpb3JpdHk9ZT8udmFsdWU/LnByaW9yaXR5fHwwLHQuJGNmZi5mb3JjZT1lPy52YWx1ZT8uZm9yY2V8fCExLHRoaXMuWih0LCExKSx0LiRjZmYuZm5PbkZvY3VzPSgpPT57dGhpcy5ydCh0KX0sdC4kY2ZmLmZuT25CbHVyPSgpPT57dGhpcy5vdCh0KX0sT28uc3RhY2sucHVzaCh0KSxPby5zdGFjay5zb3J0KCh0LGUpPT5lLiRjZmYucHJpb3JpdHktdC4kY2ZmLnByaW9yaXR5KSxZLnN1YnNjcmliZSgiZm9jdXMtb24tZm9yZWdyb3VuZCIsdC4kY2ZmLmZuT25Gb2N1cyksWS5zdWJzY3JpYmUoImJsdXItZnJvbS1mb3JlZ3JvdW5kIix0LiRjZmYuZm5PbkJsdXIpKTp0aGlzLloodCl9dXBkYXRlKHQsZSl7T28uc3RhY2suZmluZChlPT5lPT09dCkmJnRoaXMubW91bnQodCxlKX11bmJpbmQodCl7dGhpcy5aKHQpfXJ0KHQpeyExPT09US5iYXNlLmhhc19hdXRvZm9jdXMmJiEwIT09dC4kY2ZmLmZvcmNlfHxPby5zdGFja1swXT09PXQmJihjbGVhclRpbWVvdXQoT28ucGVuZGluZ0ZvY3VzVGltZW91dCksT28ucGVuZGluZ0ZvY3VzVGltZW91dD1zZXRUaW1lb3V0KCgpPT57T28ucGVuZGluZ0ZvY3VzVGltZW91dD1udWxsLHQuZm9jdXMoKX0sMTApKX1vdCh0KXt0LmJsdXIoKX1aKHQsZT0hMCl7T28uc3RhY2s9T28uc3RhY2suZmlsdGVyKGU9PmUhPT10JiYhMSE9PWUuaXNDb25uZWN0ZWQpLCEwPT09ZSYmdC4kY2ZmJiYoWS51bnN1YnNjcmliZSgiZm9jdXMtb24tZm9yZWdyb3VuZCIsdC4kY2ZmLmZuT25Gb2N1cyksWS51bnN1YnNjcmliZSgiYmx1ci1mcm9tLWZvcmVncm91bmQiLHQuJGNmZi5mbk9uQmx1cikpfX0sVW89bmV3IGNsYXNze2luaXQodCl7bGV0IGU9dGhpczt0LmRpcmVjdGl2ZSgiY3Jpc3BMaW5rVGFyZ2V0Iix7YmVmb3JlTW91bnQ6KHQsbik9PmUubW91bnQodCxuKSx1cGRhdGVkOih0LG4pPT5lLnVwZGF0ZSh0LG4pfSl9bW91bnQodCxlKXt0aGlzLnN0KHQsZSl9dXBkYXRlKHQsZSl7dGhpcy5zdCh0LGUpfXN0KHQsZSl7aWYoImEiPT09dC50YWdOYW1lPy50b0xvd2VyQ2FzZSgpKWlmKCEwPT09US5iYXNlLnJ1bnRpbWU/Lm1vYmlsZV9zZGspdC5yZW1vdmVBdHRyaWJ1dGUoInRhcmdldCIpO2Vsc2V7bGV0IG49ZT8udmFsdWV8fCJfYmxhbmsiO3Quc2V0QXR0cmlidXRlKCJ0YXJnZXQiLG4pfX19O2Z1bmN0aW9uIFBvKHQsZSwuLi5uKXtyZXR1cm4gdC5iaW5kJiYvXFtuYXRpdmUgY29kZVxdLy50ZXN0KHQuYmluZC50b1N0cmluZygpKT90LmJpbmQoZSwuLi5uKTpmdW5jdGlvbiguLi5yKXtyZXR1cm4gdC5hcHBseShlLFsuLi5uLC4uLnJdKX19dmFyIElvPW5ldyBjbGFzc3tpbml0KHQpe2xldCBlPXRoaXM7dC5kaXJlY3RpdmUoImNyaXNwU2Nyb2xsIix7YmVmb3JlTW91bnQ6dD0+ZS5tb3VudCh0KSx1cGRhdGVkOnQ9PmUudXBkYXRlKHQpLGJlZm9yZVVubW91bnQ6KCk9PmUudW5iaW5kKCl9KX1tb3VudCh0KXt0aGlzLmVsZW1lbnQ9dCx0aGlzLlooKSxZLnN1YnNjcmliZSgic2Nyb2xsLXRvIixQbyh0aGlzLnNjcm9sbFRvLHRoaXMpKSxZLnN1YnNjcmliZSgic2Nyb2xsLXRvLWxhc3QtbWVzc2FnZSIsUG8odGhpcy5zY3JvbGxUb0xhc3RNZXNzYWdlLHRoaXMpKSxZLnN1YnNjcmliZSgiY2hlY2stY2xlYXJhbmNlIixQbyh0aGlzLmNoZWNrQ2xlYXJhbmNlLHRoaXMpKX1zY3JvbGxUbyh0PW51bGwpe3R8fCh0PXRoaXMuZWxlbWVudD8uc2Nyb2xsSGVpZ2h0LXRoaXMuZWxlbWVudD8uY2xpZW50SGVpZ2h0KSx0aGlzLmVsZW1lbnQuc2Nyb2xsVG8oe3RvcDp0LGJlaGF2aW9yOiJpbnN0YW50In0pLHRoaXMuY2hlY2tDbGVhcmFuY2UoKX1zY3JvbGxUb0xhc3RNZXNzYWdlKHQpe2xldCBlPXRoaXMuZWxlbWVudD8uc2Nyb2xsVG9wLG49dGhpcy5lbGVtZW50Py5zY3JvbGxIZWlnaHQscj10aGlzLmVsZW1lbnQ/LmNsaWVudEhlaWdodDshZXx8citlPj1uLTFlMz90aGlzLnNjcm9sbFRvKCk6ImZyb20iPT09dCYmUS5jaGF0QWxlcnQudXBkYXRlKCJuZXdfbWVzc2FnZXMiLCJzaG93Iil9Y2hlY2tDbGVhcmFuY2UoKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntsZXQgdD10aGlzLmVsZW1lbnQ/LnNjcm9sbFRvcCxlPXRoaXMuZWxlbWVudD8uc2Nyb2xsSGVpZ2h0O3RoaXMuZWxlbWVudD8uY2xpZW50SGVpZ2h0K3Q+PWUtMWUzJiZRLmNoYXRBbGVydC51cGRhdGUoIm5ld19tZXNzYWdlcyIsImhpZGUiKX0pfSl9dXBkYXRlKHQpeyh0Py5zY3JvbGxIZWlnaHR8fHQ/LmNsaWVudEhlaWdodCkmJnRoaXMubW91bnQodCl9dW5iaW5kKCl7dGhpcy5aKCl9Wigpe1kudW5zdWJzY3JpYmUoInNjcm9sbC10byIsdGhpcy5zY3JvbGxUbyksWS51bnN1YnNjcmliZSgic2Nyb2xsLXRvLWxhc3QtbWVzc2FnZSIsdGhpcy5zY3JvbGxUb0xhc3RNZXNzYWdlKSxZLnVuc3Vic2NyaWJlKCJjaGVjay1jbGVhcmFuY2UiLHRoaXMuY2hlY2tDbGVhcmFuY2UpfX0sUm89bmV3IGNsYXNze2luc3RhbGwodCl7UC5pbml0KHQpLGpvLmluaXQodCksRm8uaW5pdCh0KSxBby5pbml0KHQpLFVvLmluaXQodCksSW8uaW5pdCh0KX19LHpvPW5ldyBjbGFzc3tpbnN0YWxsKHQpe3QuY29uZmlnLmdsb2JhbFByb3BlcnRpZXMuJGZpbHRlcnM9e2RhdGU6VG8sZm9ybWF0OmtvLHN0cmluZzpNb319fTt2YXIgTG89bnQoWHQoe3Byb3BzOntkaXNhYmxlZDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LGxpbms6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LHJlbDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0scm91bmRlZDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LHNpemU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6ImRlZmF1bHQiLHZhbGlkYXRvcjp0PT5bInRpbnkiLCJzbWFsbCIsImRlZmF1bHQiLCJsYXJnZSJdLmluY2x1ZGVzKHQpfSx0YXJnZXQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LHRpbnQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6InRyYW5zcGFyZW50Iix2YWxpZGF0b3I6dD0+WyJ0cmFuc3BhcmVudCIsInRoZW1lIl0uaW5jbHVkZXModCl9LHR5cGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6ImJ1dHRvbiIsdmFsaWRhdG9yOnQ9PlsiYnV0dG9uIiwibGluayJdLmluY2x1ZGVzKHQpfX0sY29tcHV0ZWQ6e3RhZ0ZvclR5cGUoKXtzd2l0Y2godGhpcy50eXBlKXtjYXNlImJ1dHRvbiI6ZGVmYXVsdDpyZXR1cm4ic3BhbiI7Y2FzZSJsaW5rIjpyZXR1cm4iYSJ9fX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKHQsZSxuLHIsbyxzKXtjb25zdCBsPVNlKCJjcmlzcC1hY2Nlc3NpYmlsaXR5Iik7cmV0dXJuIFB0KChVbigpLExuKChpPXQudGFnRm9yVHlwZSxaKGkpP3hlKGdlLGksITEpfHxpOml8fHdlKSx7aHJlZjp0LmxpbmssdGFyZ2V0OnQudGFyZ2V0LHJlbDp0LnJlbCxjbGFzczppdChbImNjLTF4a2EyIiwiY2MtMXhrYTItLSIrdC5zaXplLCJjYy0xeGthMi0tIit0LnRpbnQsImNjLTEwY3FzIix7ImNjLTF4a2EyLS1kaXNhYmxlZCI6dC5kaXNhYmxlZCwiY2MtMXhrYTItLXJvdW5kZWQiOnQucm91bmRlZH1dKX0se2RlZmF1bHQ6VXQoKCk9PltDZSh0LiRzbG90cywiZGVmYXVsdCIpXSksXzozfSw4LFsiaHJlZiIsInRhcmdldCIsInJlbCIsImNsYXNzIl0pKSxbW2wse3JvbGU6ImJ1dHRvbiJ9XV0pO3ZhciBpfV1dKSxEbz1bImlubmVySFRNTCJdO3ZhciBIbz1udChYdCh7cHJvcHM6e3JlcGVhdDp7dHlwZTpOdW1iZXIsZGVmYXVsdDoxfX0sY29tcHV0ZWQ6e3NwYWNlc0h0bWwoKXtyZXR1cm4gQXJyYXkodGhpcy5yZXBlYXQpLmZpbGwoIiZuYnNwOyIpLmpvaW4oIiIpfX19KSxbWyJyZW5kZXIiLGZ1bmN0aW9uKHQsZSxuLHIsbyxzKXtyZXR1cm4gVW4oKSx6bigic3BhbiIse2lubmVySFRNTDp0LnNwYWNlc0h0bWx9LG51bGwsOCxEbyl9XV0pLFZvPVh0KHtkYXRhOigpPT4oe2lzV2hlZWxPdmVycmlkZGVuOm51bGx9KSxtZXRob2RzOnt1bndpbmRXaGVlbCh0LGUsbj0ic2Nyb2xsVG9wIil7aWYoITA9PT1RLmJhc2UuaXNfZnVsbF92aWV3KXJldHVybjtpZighMT09PXRoaXMuaXNXaGVlbE92ZXJyaWRkZW4pcmV0dXJuO251bGw9PT10aGlzLmlzV2hlZWxPdmVycmlkZGVuJiZELnNldFRpbWVvdXQoKCk9Pnt0aGlzLmlzV2hlZWxPdmVycmlkZGVuPXQuZGVmYXVsdFByZXZlbnRlZH0sMTApO2xldCByPXQudGFyZ2V0O2lmKHImJiJudW1iZXIiPT10eXBlb2YgdC5kZWx0YVkpe2xldCBvPW51bGw7aWYobz0hMD09PXIuY2xhc3NMaXN0LmNvbnRhaW5zKGUpP3I6ci5jbG9zZXN0KGAuJHtlfWApfHxudWxsLG51bGwhPT1vKXtsZXQgZT1vW25dK3QuZGVsdGFZO29bbl09ZT49MD9lOjAsITA9PT10aGlzLmlzV2hlZWxPdmVycmlkZGVuJiYodC5zdG9wUHJvcGFnYXRpb24oKSx0LnByZXZlbnREZWZhdWx0KCksdC5yZXR1cm5WYWx1ZT0hMSl9fX19fSk7dmFyIFdvPW5ldyBNYXA7ZnVuY3Rpb24gTm8odCl7dmFyIGU9V28uZ2V0KHQpO2UmJmUuZGVzdHJveSgpfWZ1bmN0aW9uIHFvKHQpe3ZhciBlPVdvLmdldCh0KTtlJiZlLnVwZGF0ZSgpfXZhciBCbz1udWxsOyJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93PygoQm89ZnVuY3Rpb24odCl7cmV0dXJuIHR9KS5kZXN0cm95PWZ1bmN0aW9uKHQpe3JldHVybiB0fSxCby51cGRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHR9KTooKEJvPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQmJkFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodC5sZW5ndGg/dDpbdF0sZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHQmJnQubm9kZU5hbWUmJiJURVhUQVJFQSI9PT10Lm5vZGVOYW1lJiYhV28uaGFzKHQpKXt2YXIgZSxuPW51bGwscj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KSxvPShlPXQudmFsdWUsZnVuY3Rpb24oKXtsKHt0ZXN0Rm9ySGVpZ2h0UmVkdWN0aW9uOiIiPT09ZXx8IXQudmFsdWUuc3RhcnRzV2l0aChlKSxyZXN0b3JlVGV4dEFsaWduOm51bGx9KSxlPXQudmFsdWV9KSxzPWZ1bmN0aW9uKHQsZSwuLi5uKXtyZXR1cm4gdC5iaW5kJiYvXFtuYXRpdmUgY29kZVxdLy50ZXN0KHQuYmluZC50b1N0cmluZygpKT90LmJpbmQoZSwuLi5uKTpmdW5jdGlvbiguLi5yKXtyZXR1cm4gdC5hcHBseShlLFsuLi5uLC4uLnJdKX19KGZ1bmN0aW9uKGUpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYXV0b3NpemU6ZGVzdHJveSIscyksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJhdXRvc2l6ZTp1cGRhdGUiLGkpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW5wdXQiLG8pLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLGkpLE9iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24obil7cmV0dXJuIHQuc3R5bGVbbl09ZVtuXX0pLFdvLmRlbGV0ZSh0KX0sdCx7aGVpZ2h0OnQuc3R5bGUuaGVpZ2h0LHJlc2l6ZTp0LnN0eWxlLnJlc2l6ZSx0ZXh0QWxpZ246dC5zdHlsZS50ZXh0QWxpZ24sb3ZlcmZsb3dZOnQuc3R5bGUub3ZlcmZsb3dZLG92ZXJmbG93WDp0LnN0eWxlLm92ZXJmbG93WCx3b3JkV3JhcDp0LnN0eWxlLndvcmRXcmFwfSk7dC5hZGRFdmVudExpc3RlbmVyKCJhdXRvc2l6ZTpkZXN0cm95IixzKSx0LmFkZEV2ZW50TGlzdGVuZXIoImF1dG9zaXplOnVwZGF0ZSIsaSksdC5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbyksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsaSksdC5zdHlsZS5vdmVyZmxvd1g9ImhpZGRlbiIsdC5zdHlsZS53b3JkV3JhcD0iYnJlYWstd29yZCIsV28uc2V0KHQse2Rlc3Ryb3k6cyx1cGRhdGU6aX0pLGkoKX1mdW5jdGlvbiBsKGUpe3ZhciBvLHMsaT1lLnJlc3RvcmVUZXh0QWxpZ24sdT12b2lkIDA9PT1pP251bGw6aSxjPWUudGVzdEZvckhlaWdodFJlZHVjdGlvbixhPXZvaWQgMD09PWN8fGMsZj1yLm92ZXJmbG93WTtpZigwIT09dC5zY3JvbGxIZWlnaHQmJigidmVydGljYWwiPT09ci5yZXNpemU/dC5zdHlsZS5yZXNpemU9Im5vbmUiOiJib3RoIj09PXIucmVzaXplJiYodC5zdHlsZS5yZXNpemU9Imhvcml6b250YWwiKSxhJiYobz1mdW5jdGlvbih0KXtmb3IodmFyIGU9W107dCYmdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUgaW5zdGFuY2VvZiBFbGVtZW50Oyl0LnBhcmVudE5vZGUuc2Nyb2xsVG9wJiZlLnB1c2goW3QucGFyZW50Tm9kZSx0LnBhcmVudE5vZGUuc2Nyb2xsVG9wXSksdD10LnBhcmVudE5vZGU7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT10WzBdLG49dFsxXTtlLnN0eWxlLnNjcm9sbEJlaGF2aW9yPSJhdXRvIixlLnNjcm9sbFRvcD1uLGUuc3R5bGUuc2Nyb2xsQmVoYXZpb3I9bnVsbH0pfX0odCksdC5zdHlsZS5oZWlnaHQ9IiIpLHM9ImNvbnRlbnQtYm94Ij09PXIuYm94U2l6aW5nP3Quc2Nyb2xsSGVpZ2h0LShwYXJzZUZsb2F0KHIucGFkZGluZ1RvcCkrcGFyc2VGbG9hdChyLnBhZGRpbmdCb3R0b20pKTp0LnNjcm9sbEhlaWdodCtwYXJzZUZsb2F0KHIuYm9yZGVyVG9wV2lkdGgpK3BhcnNlRmxvYXQoci5ib3JkZXJCb3R0b21XaWR0aCksIm5vbmUiIT09ci5tYXhIZWlnaHQmJnM+cGFyc2VGbG9hdChyLm1heEhlaWdodCk/KCJoaWRkZW4iPT09ci5vdmVyZmxvd1kmJih0LnN0eWxlLm92ZXJmbG93PSJzY3JvbGwiKSxzPXBhcnNlRmxvYXQoci5tYXhIZWlnaHQpKToiaGlkZGVuIiE9PXIub3ZlcmZsb3dZJiYodC5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIiksdC5zdHlsZS5oZWlnaHQ9cysicHgiLHUmJih0LnN0eWxlLnRleHRBbGlnbj11KSxvJiZvKCksbiE9PXMmJih0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJhdXRvc2l6ZTpyZXNpemVkIix7YnViYmxlczohMH0pKSxuPXMpLGYhPT1yLm92ZXJmbG93JiYhdSkpe3ZhciBkPXIudGV4dEFsaWduOyJoaWRkZW4iPT09ci5vdmVyZmxvdyYmKHQuc3R5bGUudGV4dEFsaWduPSJzdGFydCI9PT1kPyJlbmQiOiJzdGFydCIpLGwoe3Jlc3RvcmVUZXh0QWxpZ246ZCx0ZXN0Rm9ySGVpZ2h0UmVkdWN0aW9uOiEwfSl9fWZ1bmN0aW9uIGkoKXtsKHt0ZXN0Rm9ySGVpZ2h0UmVkdWN0aW9uOiEwLHJlc3RvcmVUZXh0QWxpZ246bnVsbH0pfX0odCl9KSx0fSkuZGVzdHJveT1mdW5jdGlvbih0KXtyZXR1cm4gdCYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0Lmxlbmd0aD90Olt0XSxObyksdH0sQm8udXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHQubGVuZ3RoP3Q6W3RdLHFvKSx0fSk7dmFyIFhvPUJvO2V4cG9ydHthZSBhcyBBLHFuIGFzIEMsenQgYXMgRCxvciBhcyBFLF9lIGFzIEYsU2UgYXMgSSxEdCBhcyBMLFJ0IGFzIE0sTWUgYXMgTixrdCBhcyBPLENlIGFzIFAsVXQgYXMgUixYbiBhcyBTLFh0IGFzIFQsTm4gYXMgXyx6byBhcyBhLHpuIGFzIGIseG8gYXMgYyxhbyBhcyBkLHJvIGFzIGYsaHIgYXMgZyxFbiBhcyBoLExvIGFzIGksVW4gYXMgaixwZSBhcyBrLFNvIGFzIGwsdW8gYXMgbSxWbyBhcyBuLFJvIGFzIG8sS3IgYXMgcCxIbyBhcyByLFRvIGFzIHMsWG8gYXMgdCx3byBhcyB1LExuIGFzIHYsdGUgYXMgdywkZSBhcyB4LEduIGFzIHksUHQgYXMgen07"}},"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":"client.crisp.chat/static/sounds/events/chat-message-action.oga?23e4212","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:50.306Z","timestamp":1785127670306,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /static/sounds/events/chat-message-action.oga?23e4212 HTTP/1.1\r\nHost: client.crisp.chat\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://buvei.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-type: audio/ogg\r\naccess-control-allow-credentials: false\r\naccess-control-allow-headers: Content-Type, Origin\r\naccess-control-allow-methods: HEAD, GET, OPTIONS\r\naccess-control-allow-origin: *\r\naccess-control-max-age: 300\r\ncache-control: public, max-age=315360000\r\ncross-origin-resource-policy: cross-origin\r\nx-content-type-options: nosniff\r\nexpires: Thu, 24 Jul 2036 04:47:50 GMT\r\nlast-modified: Tue, 21 Jul 2026 15:59:47 GMT\r\nserver: cloudflare\r\npriority: u=3,i=?0\r\nage: 34334\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: W/\"6a5f9773-10c2\"\r\ncontent-encoding: br\r\ncf-ray: a21902236bcfc759-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":4290,"size_decoded":4296,"mime_type":"audio/ogg","magic":"Ogg data, Vorbis audio, mono, 44100 Hz, ~48000 bps, created by: Xiph.Org libVorbis I","md5":"84cf23ad936646f11ff96db2a9e2a073","sha1":"283334c1ba605c4eb7be39e670391021fa711e8e","sha256":"8022aa161cb6a8060e3d1582e184a1315a51f5de5f39b4641e4bf1a691ba745b","sha512":"8e64c106b80a77faefe289c208205056f7c4444008794aeef5406a2ddceebb41de730c951ee259186fdf9623088cf44f465369e0033735a484f28e9baeeb820b","ssdeep":"96:i7zAfY5gK6f9bJdnieRgdaUjuweDbAPPPPPtPPPPPPPwPPPPPPPPPPPPPPPPPPPJ:KAg5oV9dnrgXjuvAqFiu6a","tlshash":"36913ad6d9b061c2fc4b317bb25933c826a27fc669ead6c6fb480a585c67e90037414a","first_seen":"2023-04-11T10:28:32Z","last_seen":"2026-08-03T08:16:13.610563Z","times_seen":623,"resource_available":false,"data":"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uroumqKpqqrrurKum6aqqq4ru7Ls66aqqqrryq4s+8Kquq4ry7Jt68Kwqq7ryrJs27Zv3Lqu677v+8KRreu6LvzCMQxHAQDgCQ4AQAU2rI5wUjQWWGjISgAgAwCAMAYhgxBCBiGEkFJKIaWUEgAAMOAAABBgQhkoNGRFABAnAAAYQymklFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSCmllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSqmklFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimVUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFIKAJCKcACQejChDBQashIASAUAAIxRSinGnIMQMeYYY9BJKClizDnGHJSSUuUchBBSaS23yjkIIaTUUm2Zc1JaizHmGDPnpKQUW805h1JSi7HmmmvupLRWa64151paqzXXnHPNubQWa64515xzyzHXnHPOOecYc84555xzzgUA4DQ4AIAe2LA6wknRWGChISsBgFQAAAIZpRhzzjnoEFKMOecchBAihRhzzjkIIVSMOeccdBBCqBhzzDkIIYSQOecchBBCCCFzDjroIIQQQgcdhBBCCKGUzkEIIYQQSighhBBCCCGEEDoIIYQQQgghhBBCCCGEUkoIIYQQQgmhlFAAAGCBAwBAgA2rI5wUjQUWGrISAAACAIAclqBSzoRBjkGPDUHKUTMNQkw50ZliTmozFVOQORCddBIZakHZXjILAACAIAAgwAQQGCAo+EIIiDEAAEGIzBAJhVWwwKAMGhzmAcADRIREAJCYoEi7uIAuA1zQxV0HQghCEIJYHEABCTg44YYn3vCEG5ygU1TqIAAAAAAADADgAQDgoAAiIpqrsLjAyNDY4OjwCAAAAAAAFgD4AAA4PoCIiOYqLC4wMjQ2ODo8AgAAAAAAAAAAgICAAAAAAABAAAAAgIBPZ2dTAATZEAAAAAAAAKC5/mkCAAAApMh0JggcHxyEgW5WE5TS0cHLxbDHlV1Zb/WM5NhOLiawMu1+fkSi4AG80s/vv/NGdLBz5Px6xVrbyoR5nmkBQdyJ7ynrvkAAtM5a/WdZnx6IHOd+zgev7nMGQz6blpmw7+b5E3rIxe+t+AbARvDrt57gqHBB2+Px46xZSc1MDFSA+OoW1vGfNqzny7v/N/bhZV/v5uWYZjK4r68DHq0iHF1VVeO55mkbxjO92MUALTXQgTN73dTzcOdiAFh2oXKf6VZl7qkyP/IpAEg1o+AMKPvUkc5m/D3mJLht8DenKwbkzQRgwA8SAJ7IrY/r9/ptiDrRBqELQL0xRMHlYmYQCgEA0F/d82flbiFuLr88X2So2mlsaTm5fKYSRQh/kO1Esr9cAzy48E5pVQ+HT5e941Hpa2xUvVs1f4xunMcEKiO5BPOlvenJkGZ50v6dAFAmmBMIPCkpgL2s63JXancKvNK7ywOKVfhBAZ7IPW6X73YXRu9xFR+Izu+oG1hAERpWoWBv757d3BXaZJUA2pTzK/+JQza8ZdjRdBUSLbW9cpUU1JotLjYfBlfNNTKR6TKqJYjbvufMKKfTD929Gwis4pIVaLUXfAAP9Tj/RQJwhlE2gWConR8Ansjd3m5fe4T2kh1fxBCHgiZQAAAAAOj99c7x38phvjvVVV210zTWubKEnFKu1VcBQf1VXH6XRpEEL4VVz6G5Y6UUw6scWQNGL755D3CkU4E1G12rjgKeyP3vLF+6AG4AQAAAAAAAAHAL"}},"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":"client.crisp.chat/static/fonts/noto_sans/0020-007F/noto_sans_bold.woff2?23e4212","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:50.381Z","timestamp":1785127670381,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /static/fonts/noto_sans/0020-007F/noto_sans_bold.woff2?23e4212 HTTP/1.1\r\nHost: client.crisp.chat\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://buvei.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://client.crisp.chat/static/stylesheets/client_default_23e4212.css\r\nSec-Fetch-Dest: font\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\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-type: application/font-woff2\r\ncontent-length: 10252\r\naccept-ranges: bytes\r\naccess-control-allow-credentials: false\r\naccess-control-allow-headers: Content-Type, Origin\r\naccess-control-allow-methods: HEAD, GET, OPTIONS\r\naccess-control-allow-origin: *\r\naccess-control-max-age: 300\r\ncache-control: public, max-age=315360000\r\ncross-origin-resource-policy: cross-origin\r\netag: \"6a5f9773-280c\"\r\nexpires: Thu, 24 Jul 2036 04:47:50 GMT\r\nlast-modified: Tue, 21 Jul 2026 15:59:47 GMT\r\nserver: cloudflare\r\npriority: u=3,i=?0\r\nage: 40037\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\ncf-ray: a2190223ecb3c759-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":10252,"size_decoded":11051,"mime_type":"application/font-woff2","magic":"Web Open Font Format (Version 2), TrueType, length 10252, version 1.3932","md5":"6d74a49bf6645c1c8a7940ff7f94ce6f","sha1":"433ea3334227f42a15b8853faa6ec93c371af4ba","sha256":"73d7d4ea3f62303b780f0225e5346e5047cfb41fcae7ac19e99af8a3e1950973","sha512":"6f08896b2d4c534fb8c2b15643c79ab14333afd428bd595c3597e7270d56673ba7bc6cb3b179a53cd375dc0b41025ed5bf005558697bbca121b8b2d08f723f12","ssdeep":"192:rKdkxVGer/0UYUyIX8kG46z66+VXw5jsSZ5pDKFb07vm0lIcuNteqPY:2kx80nYsz9XQoSFub06JcuNPg","tlshash":"0c22d0f71940dd6c86a1c9f23adc83f843a18891715eaea8535e6f4ca80716e8d051ba","first_seen":"2023-04-11T10:28:32Z","last_seen":"2026-08-03T08:16:13.632577Z","times_seen":3320,"resource_available":false,"data":"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"}},"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":"buvei.com/_next/static/chunks/lib-next-i18next-7ea2fa27591cb009.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.446Z","timestamp":1785127668446,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/static/chunks/lib-next-i18next-7ea2fa27591cb009.js HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: application/javascript; charset=UTF-8\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\ncache-control: public, max-age=31536000, immutable\r\naccept-ranges: bytes\r\nlast-modified: Mon, 29 Jun 2026 05:34:13 GMT\r\netag: W/\"13066-19f11def808\"\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nage: 334919\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=Rc5W0W9216KUYbUG5WiFRCtM0GAVjsMy2vg7w2XglljSchviTVQ%2BMZmN9FyAt5SDGByyGC%2B8KoDOHfrmToW4RipX8RPv6QRT%2Bb2qkbhDjTDV22eiJzzWLYppNQ%3D%3D\"}]}\r\ncf-ray: a2190217cb638be6-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"]}],"data":{"size":77926,"size_decoded":18674,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (65536), with no line terminators","md5":"819f6ec0a4e1ff14a9f672177f6d551a","sha1":"44e45b0f5516998372e5de3b32c08c979702899d","sha256":"19a46d6e95dec7629f37750da8451ba6d4c488f9935d646a9b075214a798ef55","sha512":"fc1f896f7e18c12389601b1249f6d6b92f0cc63964ec128b293a0fc11792e753563606b0f3dee6a168273e8472999d30bebb103cbba3b01e9385997dc2beb7db","ssdeep":"768:mjwA0/x04Rd4gALS27k+1ZmgReDs71aoSozwZtqOui0RX/mjkbzMCb7ZFOLDMxSB:mj10/x04r4jj7h+4gtqnikv/fOLAx1PQ","tlshash":"3873084876d3aa4489c3a2d4247b170ef139af251058a00afe75dfd099e5d0de2e7f3a","first_seen":"2026-07-27T03:56:11.666668Z","last_seen":"2026-07-27T10:05:53.930255Z","times_seen":4,"resource_available":true,"data":"dHJ5eyFmdW5jdGlvbigpe3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sbj0obmV3IGUuRXJyb3IpLnN0YWNrO24mJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbbl09ImM5OTNjYzAxLWJhNDgtNDhmZC05N2UxLWZkMGQ1NTk2ODY1NCIsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9InNlbnRyeS1kYmlkLWM5OTNjYzAxLWJhNDgtNDhmZC05N2UxLWZkMGQ1NTk2ODY1NCIpfSgpfWNhdGNoKGUpe30idXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rX05fRT1zZWxmLndlYnBhY2tDaHVua19OX0V8fFtdKS5wdXNoKFtbODcxM10sezQyNDk0OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX3R5cGVvZl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fPV9fd2VicGFja19yZXF1aXJlX18oNTA3MyksX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fY2xhc3NDYWxsQ2hlY2tfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDc0NTM2KSxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV9jcmVhdGVDbGFzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fPV9fd2VicGFja19yZXF1aXJlX18oMzA4NjYpLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX2Fzc2VydFRoaXNJbml0aWFsaXplZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fPV9fd2VicGFja19yZXF1aXJlX18oOTEzNiksX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21faW5oZXJpdHNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDYwMTM0KSxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X189X193ZWJwYWNrX3JlcXVpcmVfXyg0Njk5MCksX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fZ2V0UHJvdG90eXBlT2ZfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDgwMDk4KSxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV9kZWZpbmVQcm9wZXJ0eV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNDY2OTYpLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX3RvQXJyYXlfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDU3MTcyKTtmdW5jdGlvbiBvd25LZXlzKG9iamVjdCxlbnVtZXJhYmxlT25seSl7dmFyIGtleXM9T2JqZWN0LmtleXMob2JqZWN0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgc3ltYm9scz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7ZW51bWVyYWJsZU9ubHkmJihzeW1ib2xzPXN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uKHN5bSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LHN5bSkuZW51bWVyYWJsZX0pKSxrZXlzLnB1c2guYXBwbHkoa2V5cyxzeW1ib2xzKX1yZXR1cm4ga2V5c31mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKHRhcmdldCl7Zm9yKHZhciBpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKyl7dmFyIHNvdXJjZT1udWxsIT1hcmd1bWVudHNbaV0/YXJndW1lbnRzW2ldOnt9O2klMj9vd25LZXlzKE9iamVjdChzb3VyY2UpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSl7KDAsX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fZGVmaW5lUHJvcGVydHlfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKSh0YXJnZXQsa2V5LHNvdXJjZVtrZXldKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKTpvd25LZXlzKE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCxrZXksT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2Usa2V5KSl9KX1yZXR1cm4gdGFyZ2V0fXZhciBjb25zb2xlTG9nZ2VyPXt0eXBlOiJsb2dnZXIiLGxvZzpmdW5jdGlvbihhcmdzKXt0aGlzLm91dHB1dCgibG9nIixhcmdzKX0sd2FybjpmdW5jdGlvbihhcmdzKXt0aGlzLm91dHB1dCgid2FybiIsYXJncyl9LGVycm9yOmZ1bmN0aW9uKGFyZ3Mpe3RoaXMub3V0cHV0KCJlcnJvciIsYXJncyl9LG91dHB1dDpmdW5jdGlvbih0eXBlLGFyZ3Mpe2NvbnNvbGUmJmNvbnNvbGVbdHlwZV0mJmNvbnNvbGVbdHlwZV0uYXBwbHkoY29uc29sZSxhcmdzKX19LGJhc2VMb2dnZXI9bmV3KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gTG9nZ2VyKGNvbmNyZXRlTG9nZ2VyKXt2YXIgb3B0aW9ucz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307KDAsX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fY2xhc3NDYWxsQ2hlY2tfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5aKSh0aGlzLExvZ2dlciksdGhpcy5pbml0KGNvbmNyZXRlTG9nZ2VyLG9wdGlvbnMpfXJldHVybigwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX2NyZWF0ZUNsYXNzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uWikoTG9nZ2VyLFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbihjb25jcmV0ZUxvZ2dlcil7dmFyIG9wdGlvbnM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O3RoaXMucHJlZml4PW9wdGlvbnMucHJlZml4fHwiaTE4bmV4dDoiLHRoaXMubG9nZ2VyPWNvbmNyZXRlTG9nZ2VyfHxjb25zb2xlTG9nZ2VyLHRoaXMub3B0aW9ucz1vcHRpb25zLHRoaXMuZGVidWc9b3B0aW9ucy5kZWJ1Z319LHtrZXk6InNldERlYnVnIix2YWx1ZTpmdW5jdGlvbihib29sKXt0aGlzLmRlYnVnPWJvb2x9fSx7a2V5OiJsb2ciLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBfbGVuPWFyZ3VtZW50cy5sZW5ndGgsYXJncz1BcnJheShfbGVuKSxfa2V5PTA7X2tleTxfbGVuO19rZXkrKylhcmdzW19rZXldPWFyZ3VtZW50c1tfa2V5XTtyZXR1cm4gdGhpcy5mb3J3YXJkKGFyZ3MsImxvZyIsIiIsITApfX0se2tleToid2FybiIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIF9sZW4yPWFyZ3VtZW50cy5sZW5ndGgsYXJncz1BcnJheShfbGVuMiksX2tleTI9MDtfa2V5MjxfbGVuMjtfa2V5MisrKWFyZ3NbX2tleTJdPWFyZ3VtZW50c1tfa2V5Ml07cmV0dXJuIHRoaXMuZm9yd2FyZChhcmdzLCJ3YXJuIiwiIiwhMCl9fSx7a2V5OiJlcnJvciIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIF9sZW4zPWFyZ3VtZW50cy5sZW5ndGgsYXJncz1BcnJheShfbGVuMyksX2tleTM9MDtfa2V5MzxfbGVuMztfa2V5MysrKWFyZ3NbX2tleTNdPWFyZ3VtZW50c1tfa2V5M107cmV0dXJuIHRoaXMuZm9yd2FyZChhcmdzLCJlcnJvciIsIiIpfX0se2tleToiZGVwcmVjYXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgX2xlbjQ9YXJndW1lbnRzLmxlbmd0aCxhcmdzPUFycmF5KF9sZW40KSxfa2V5ND0wO19rZXk0PF9sZW40O19rZXk0KyspYXJnc1tfa2V5NF09YXJndW1lbnRzW19rZXk0XTtyZXR1cm4gdGhpcy5mb3J3YXJkKGFyZ3MsIndhcm4iLCJXQVJOSU5HIERFUFJFQ0FURUQ6ICIsITApfX0se2tleToiZm9yd2FyZCIsdmFsdWU6ZnVuY3Rpb24oYXJncyxsdmwscHJlZml4LGRlYnVnT25seSl7cmV0dXJuIGRlYnVnT25seSYmIXRoaXMuZGVidWc/bnVsbDooInN0cmluZyI9PXR5cGVvZiBhcmdzWzBdJiYoYXJnc1swXT0iIi5jb25jYXQocHJlZml4KS5jb25jYXQodGhpcy5wcmVmaXgsIiAiKS5jb25jYXQoYXJnc1swXSkpLHRoaXMubG9nZ2VyW2x2bF0oYXJncykpfX0se2tleToiY3JlYXRlIix2YWx1ZTpmdW5jdGlvbihtb2R1bGVOYW1lKXtyZXR1cm4gbmV3IExvZ2dlcih0aGlzLmxvZ2dlcixfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30se3ByZWZpeDoiIi5jb25jYXQodGhpcy5wcmVmaXgsIjoiKS5jb25jYXQobW9kdWxlTmFtZSwiOiIpfSksdGhpcy5vcHRpb25zKSl9fSx7a2V5OiJjbG9uZSIsdmFsdWU6ZnVuY3Rpb24ob3B0aW9ucyl7cmV0dXJuKG9wdGlvbnM9b3B0aW9uc3x8dGhpcy5vcHRpb25zKS5wcmVmaXg9b3B0aW9ucy5wcmVmaXh8fHRoaXMucHJlZml4LG5ldyBMb2dnZXIodGhpcy5sb2dnZXIsb3B0aW9ucyl9fV0pLExvZ2dlcn0oKSksRXZlbnRFbWl0dGVyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gRXZlbnRFbWl0dGVyKCl7KDAsX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fY2xhc3NDYWxsQ2hlY2tfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5aKSh0aGlzLEV2ZW50RW1pdHRlciksdGhpcy5vYnNlcnZlcnM9e319cmV0dXJuKDAsX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fY3JlYXRlQ2xhc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5aKShFdmVudEVtaXR0ZXIsW3trZXk6Im9uIix2YWx1ZTpmdW5jdGlvbihldmVudHMsbGlzdGVuZXIpe3ZhciBfdGhpcz10aGlzO3JldHVybiBldmVudHMuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKGV2ZW50KXtfdGhpcy5vYnNlcnZlcnNbZXZlbnRdPV90aGlzLm9ic2VydmVyc1tldmVudF18fFtdLF90aGlzLm9ic2VydmVyc1tldmVudF0ucHVzaChsaXN0ZW5lcil9KSx0aGlzfX0se2tleToib2ZmIix2YWx1ZTpmdW5jdGlvbihldmVudCxsaXN0ZW5lcil7aWYodGhpcy5vYnNlcnZlcnNbZXZlbnRdKXtpZighbGlzdGVuZXIpe2RlbGV0ZSB0aGlzLm9ic2VydmVyc1tldmVudF07cmV0dXJufXRoaXMub2JzZXJ2ZXJzW2V2ZW50XT10aGlzLm9ic2VydmVyc1tldmVudF0uZmlsdGVyKGZ1bmN0aW9uKGwpe3JldHVybiBsIT09bGlzdGVuZXJ9KX19fSx7a2V5OiJlbWl0Iix2YWx1ZTpmdW5jdGlvbihldmVudCl7Zm9yKHZhciBfbGVuPWFyZ3VtZW50cy5sZW5ndGgsYXJncz1BcnJheShfbGVuPjE/X2xlbi0xOjApLF9rZXk9MTtfa2V5PF9sZW47X2tleSsrKWFyZ3NbX2tleS0xXT1hcmd1bWVudHNbX2tleV07dGhpcy5vYnNlcnZlcnNbZXZlbnRdJiZbXS5jb25jYXQodGhpcy5vYnNlcnZlcnNbZXZlbnRdKS5mb3JFYWNoKGZ1bmN0aW9uKG9ic2VydmVyKXtvYnNlcnZlci5hcHBseSh2b2lkIDAsYXJncyl9KSx0aGlzLm9ic2VydmVyc1siKiJdJiZbXS5jb25jYXQodGhpcy5vYnNlcnZlcnNbIioiXSkuZm9yRWFjaChmdW5jdGlvbihvYnNlcnZlcil7b2JzZXJ2ZXIuYXBwbHkob2JzZXJ2ZXIsW2V2ZW50XS5jb25jYXQoYXJncykpfSl9fV0pLEV2ZW50RW1pdHRlcn0oKTtmdW5jdGlvbiBkZWZlcigpe3ZhciByZXMscmVqLHByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSxyZWplY3Qpe3Jlcz1yZXNvbHZlLHJlaj1yZWplY3R9KTtyZXR1cm4gcHJvbWlzZS5yZXNvbHZlPXJlcyxwcm9taXNlLnJlamVjdD1yZWoscHJvbWlzZX1mdW5jdGlvbiBtYWtlU3RyaW5nKG9iamVjdCl7cmV0dXJuIG51bGw9PW9iamVjdD8iIjoiIitvYmplY3R9ZnVuY3Rpb24gZ2V0TGFzdE9mUGF0aChvYmplY3QscGF0aCxFbXB0eSl7ZnVuY3Rpb24gY2xlYW5LZXkoa2V5KXtyZXR1cm4ga2V5JiZrZXkuaW5kZXhPZigiIyMjIik+LTE/a2V5LnJlcGxhY2UoLyMjIy9nLCIuIik6a2V5fWZ1bmN0aW9uIGNhbk5vdFRyYXZlcnNlRGVlcGVyKCl7cmV0dXJuIW9iamVjdHx8InN0cmluZyI9PXR5cGVvZiBvYmplY3R9Zm9yKHZhciBzdGFjaz0ic3RyaW5nIiE9dHlwZW9mIHBhdGg/W10uY29uY2F0KHBhdGgpOnBhdGguc3BsaXQoIi4iKTtzdGFjay5sZW5ndGg+MTspe2lmKGNhbk5vdFRyYXZlcnNlRGVlcGVyKCkpcmV0dXJue307dmFyIGtleT1jbGVhbktleShzdGFjay5zaGlmdCgpKTshb2JqZWN0W2tleV0mJkVtcHR5JiYob2JqZWN0W2tleV09bmV3IEVtcHR5KSxvYmplY3Q9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCxrZXkpP29iamVjdFtrZXldOnt9fXJldHVybiBjYW5Ob3RUcmF2ZXJzZURlZXBlcigpP3t9OntvYmo6b2JqZWN0LGs6Y2xlYW5LZXkoc3RhY2suc2hpZnQoKSl9fWZ1bmN0aW9uIHNldFBhdGgob2JqZWN0LHBhdGgsbmV3VmFsdWUpe3ZhciBfZ2V0TGFzdE9mUGF0aD1nZXRMYXN0T2ZQYXRoKG9iamVjdCxwYXRoLE9iamVjdCk7X2dldExhc3RPZlBhdGgub2JqW19nZXRMYXN0T2ZQYXRoLmtdPW5ld1ZhbHVlfWZ1bmN0aW9uIGdldFBhdGgob2JqZWN0LHBhdGgpe3ZhciBfZ2V0TGFzdE9mUGF0aDM9Z2V0TGFzdE9mUGF0aChvYmplY3QscGF0aCksb2JqPV9nZXRMYXN0T2ZQYXRoMy5vYmosaz1fZ2V0TGFzdE9mUGF0aDMuaztpZihvYmopcmV0dXJuIG9ialtrXX1mdW5jdGlvbiBnZXRQYXRoV2l0aERlZmF1bHRzKGRhdGEsZGVmYXVsdERhdGEsa2V5KXt2YXIgdmFsdWU9Z2V0UGF0aChkYXRhLGtleSk7cmV0dXJuIHZvaWQgMCE9PXZhbHVlP3ZhbHVlOmdldFBhdGgoZGVmYXVsdERhdGEsa2V5KX1mdW5jdGlvbiByZWdleEVzY2FwZShzdHIpe3JldHVybiBzdHIucmVwbGFjZSgvW1wtXFtcXVwvXHtcfVwoXClcKlwrXD9cLlxcXF5cJFx8XS9nLCJcXCQmIil9dmFyIF9lbnRpdHlNYXA9eyImIjoiJmFtcDsiLCI8IjoiJmx0OyIsIj4iOiImZ3Q7IiwnIic6IiZxdW90OyIsIiciOiImIzM5OyIsIi8iOiImI3gyRjsifTtmdW5jdGlvbiBlc2NhcGUoZGF0YSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBkYXRhP2RhdGEucmVwbGFjZSgvWyY8PiInXC9dL2csZnVuY3Rpb24ocyl7cmV0dXJuIF9lbnRpdHlNYXBbc119KTpkYXRhfXZhciBpc0lFMTA9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5uYXZpZ2F0b3ImJnZvaWQgMD09PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50RGF0YSYmd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQmJndpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1TSUUiKT4tMSxjaGFycz1bIiAiLCIsIiwiPyIsIiEiLCI7Il07ZnVuY3Rpb24gb3duS2V5cyQxKG9iamVjdCxlbnVtZXJhYmxlT25seSl7dmFyIGtleXM9T2JqZWN0LmtleXMob2JqZWN0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgc3ltYm9scz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7ZW51bWVyYWJsZU9ubHkmJihzeW1ib2xzPXN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uKHN5bSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LHN5bSkuZW51bWVyYWJsZX0pKSxrZXlzLnB1c2guYXBwbHkoa2V5cyxzeW1ib2xzKX1yZXR1cm4ga2V5c31mdW5jdGlvbiBfb2JqZWN0U3ByZWFkJDEodGFyZ2V0KXtmb3IodmFyIGk9MTtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXt2YXIgc291cmNlPW51bGwhPWFyZ3VtZW50c1tpXT9hcmd1bWVudHNbaV06e307aSUyP293bktleXMkMShPYmplY3Qoc291cmNlKSwhMCkuZm9yRWFjaChmdW5jdGlvbihrZXkpeygwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX2RlZmluZVByb3BlcnR5X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikodGFyZ2V0LGtleSxzb3VyY2Vba2V5XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk6b3duS2V5cyQxKE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCxrZXksT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2Usa2V5KSl9KX1yZXR1cm4gdGFyZ2V0fXZhciBSZXNvdXJjZVN0b3JlPWZ1bmN0aW9uKF9FdmVudEVtaXR0ZXIpeygwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX2luaGVyaXRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uWikoUmVzb3VyY2VTdG9yZSxfRXZlbnRFbWl0dGVyKTt2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCxfc3VwZXI9KGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3Q9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCksZnVuY3Rpb24oKXt2YXIgcmVzdWx0LFN1cGVyPSgwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX2dldFByb3RvdHlwZU9mX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uWikoUmVzb3VyY2VTdG9yZSk7aWYoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCl7dmFyIE5ld1RhcmdldD0oMCxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV9nZXRQcm90b3R5cGVPZl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLlopKHRoaXMpLmNvbnN0cnVjdG9yO3Jlc3VsdD1SZWZsZWN0LmNvbnN0cnVjdChTdXBlcixhcmd1bWVudHMsTmV3VGFyZ2V0KX1lbHNlIHJlc3VsdD1TdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuKDAsX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fcG9zc2libGVDb25zdHJ1Y3RvclJldHVybl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlopKHRoaXMscmVzdWx0KX0pO2Z1bmN0aW9uIFJlc291cmNlU3RvcmUoZGF0YSl7dmFyIF90aGlzLG9wdGlvbnM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOntuczpbInRyYW5zbGF0aW9uIl0sZGVmYXVsdE5TOiJ0cmFuc2xhdGlvbiJ9O3JldHVybigwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX2NsYXNzQ2FsbENoZWNrX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uWikodGhpcyxSZXNvdXJjZVN0b3JlKSxfdGhpcz1fc3VwZXIuY2FsbCh0aGlzKSxpc0lFMTAmJkV2ZW50RW1pdHRlci5jYWxsKCgwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX2Fzc2VydFRoaXNJbml0aWFsaXplZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLlopKF90aGlzKSksX3RoaXMuZGF0YT1kYXRhfHx7fSxfdGhpcy5vcHRpb25zPW9wdGlvbnMsdm9pZCAwPT09X3RoaXMub3B0aW9ucy5rZXlTZXBhcmF0b3ImJihfdGhpcy5vcHRpb25zLmtleVNlcGFyYXRvcj0iLiIpLHZvaWQgMD09PV90aGlzLm9wdGlvbnMuaWdub3JlSlNPTlN0cnVjdHVyZSYmKF90aGlzLm9wdGlvbnMuaWdub3JlSlNPTlN0cnVjdHVyZT0hMCksX3RoaXN9cmV0dXJuKDAsX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fY3JlYXRlQ2xhc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5aKShSZXNvdXJjZVN0b3JlLFt7a2V5OiJhZGROYW1lc3BhY2VzIix2YWx1ZTpmdW5jdGlvbihucyl7MD50aGlzLm9wdGlvbnMubnMuaW5kZXhPZihucykmJnRoaXMub3B0aW9ucy5ucy5wdXNoKG5zKX19LHtrZXk6InJlbW92ZU5hbWVzcGFjZXMiLHZhbHVlOmZ1bmN0aW9uKG5zKXt2YXIgaW5kZXg9dGhpcy5vcHRpb25zLm5zLmluZGV4T2YobnMpO2luZGV4Pi0xJiZ0aGlzLm9wdGlvbnMubnMuc3BsaWNlKGluZGV4LDEpfX0se2tleToiZ2V0UmVzb3VyY2UiLHZhbHVlOmZ1bmN0aW9uKGxuZyxucyxrZXkpe3ZhciBvcHRpb25zPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTp7fSxrZXlTZXBhcmF0b3I9dm9pZCAwIT09b3B0aW9ucy5rZXlTZXBhcmF0b3I/b3B0aW9ucy5rZXlTZXBhcmF0b3I6dGhpcy5vcHRpb25zLmtleVNlcGFyYXRvcixpZ25vcmVKU09OU3RydWN0dXJlPXZvaWQgMCE9PW9wdGlvbnMuaWdub3JlSlNPTlN0cnVjdHVyZT9vcHRpb25zLmlnbm9yZUpTT05TdHJ1Y3R1cmU6dGhpcy5vcHRpb25zLmlnbm9yZUpTT05TdHJ1Y3R1cmUscGF0aD1bbG5nLG5zXTtrZXkmJiJzdHJpbmciIT10eXBlb2Yga2V5JiYocGF0aD1wYXRoLmNvbmNhdChrZXkpKSxrZXkmJiJzdHJpbmciPT10eXBlb2Yga2V5JiYocGF0aD1wYXRoLmNvbmNhdChrZXlTZXBhcmF0b3I/a2V5LnNwbGl0KGtleVNlcGFyYXRvcik6a2V5KSksbG5nLmluZGV4T2YoIi4iKT4tMSYmKHBhdGg9bG5nLnNwbGl0KCIuIikpO3ZhciByZXN1bHQ9Z2V0UGF0aCh0aGlzLmRhdGEscGF0aCk7cmV0dXJuIHJlc3VsdHx8IWlnbm9yZUpTT05TdHJ1Y3R1cmV8fCJzdHJpbmciIT10eXBlb2Yga2V5P3Jlc3VsdDpmdW5jdGlvbiBkZWVwRmluZChvYmoscGF0aCl7dmFyIGtleVNlcGFyYXRvcj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06Ii4iO2lmKG9iail7aWYob2JqW3BhdGhdKXJldHVybiBvYmpbcGF0aF07Zm9yKHZhciBwYXRocz1wYXRoLnNwbGl0KGtleVNlcGFyYXRvciksY3VycmVudD1vYmosaT0wO2k8cGF0aHMubGVuZ3RoOysraSl7aWYoIWN1cnJlbnR8fCJzdHJpbmciPT10eXBlb2YgY3VycmVudFtwYXRoc1tpXV0mJmkrMTxwYXRocy5sZW5ndGgpcmV0dXJuO2lmKHZvaWQgMD09PWN1cnJlbnRbcGF0aHNbaV1dKXtmb3IodmFyIGo9MixwPXBhdGhzLnNsaWNlKGksaStqKS5qb2luKGtleVNlcGFyYXRvciksbWl4PWN1cnJlbnRbcF07dm9pZCAwPT09bWl4JiZwYXRocy5sZW5ndGg+aStqOylqKyssbWl4PWN1cnJlbnRbcD1wYXRocy5zbGljZShpLGkraikuam9pbihrZXlTZXBhcmF0b3IpXTtpZih2b2lkIDA9PT1taXgpcmV0dXJuO2lmKG51bGw9PT1taXgpcmV0dXJuIG51bGw7aWYocGF0aC5lbmRzV2l0aChwKSl7aWYoInN0cmluZyI9PXR5cGVvZiBtaXgpcmV0dXJuIG1peDtpZihwJiYic3RyaW5nIj09dHlwZW9mIG1peFtwXSlyZXR1cm4gbWl4W3BdfXZhciBqb2luZWRQYXRoPXBhdGhzLnNsaWNlKGkraikuam9pbihrZXlTZXBhcmF0b3IpO2lmKGpvaW5lZFBhdGgpcmV0dXJuIGRlZXBGaW5kKG1peCxqb2luZWRQYXRoLGtleVNlcGFyYXRvcik7cmV0dXJufWN1cnJlbnQ9Y3VycmVudFtwYXRoc1tpXV19cmV0dXJuIGN1cnJlbnR9fSh0aGlzLmRhdGEmJnRoaXMuZGF0YVtsbmddJiZ0aGlzLmRhdGFbbG5nXVtuc10sa2V5LGtleVNlcGFyYXRvcil9fSx7a2V5OiJhZGRSZXNvdXJjZSIsdmFsdWU6ZnVuY3Rpb24obG5nLG5zLGtleSx2YWx1ZSl7dmFyIG9wdGlvbnM9YXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0/YXJndW1lbnRzWzRdOntzaWxlbnQ6ITF9LGtleVNlcGFyYXRvcj10aGlzLm9wdGlvbnMua2V5U2VwYXJhdG9yO3ZvaWQgMD09PWtleVNlcGFyYXRvciYmKGtleVNlcGFyYXRvcj0iLiIpO3ZhciBwYXRoPVtsbmcsbnNdO2tleSYmKHBhdGg9cGF0aC5jb25jYXQoa2V5U2VwYXJhdG9yP2tleS5zcGxpdChrZXlTZXBhcmF0b3IpOmtleSkpLGxuZy5pbmRleE9mKCIuIik+LTEmJihwYXRoPWxuZy5zcGxpdCgiLiIpLHZhbHVlPW5zLG5zPXBhdGhbMV0pLHRoaXMuYWRkTmFtZXNwYWNlcyhucyksc2V0UGF0aCh0aGlzLmRhdGEscGF0aCx2YWx1ZSksb3B0aW9ucy5zaWxlbnR8fHRoaXMuZW1pdCgiYWRkZWQiLGxuZyxucyxrZXksdmFsdWUpfX0se2tleToiYWRkUmVzb3VyY2VzIix2YWx1ZTpmdW5jdGlvbihsbmcsbnMscmVzb3VyY2VzKXt2YXIgb3B0aW9ucz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106e3NpbGVudDohMX07Zm9yKHZhciBtIGluIHJlc291cmNlcykoInN0cmluZyI9PXR5cGVvZiByZXNvdXJjZXNbbV18fCJbb2JqZWN0IEFycmF5XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KHJlc291cmNlc1ttXSkpJiZ0aGlzLmFkZFJlc291cmNlKGxuZyxucyxtLHJlc291cmNlc1ttXSx7c2lsZW50OiEwfSk7b3B0aW9ucy5zaWxlbnR8fHRoaXMuZW1pdCgiYWRkZWQiLGxuZyxucyxyZXNvdXJjZXMpfX0se2tleToiYWRkUmVzb3VyY2VCdW5kbGUiLHZhbHVlOmZ1bmN0aW9uKGxuZyxucyxyZXNvdXJjZXMsZGVlcCxvdmVyd3JpdGUpe3ZhciBvcHRpb25zPWFyZ3VtZW50cy5sZW5ndGg+NSYmdm9pZCAwIT09YXJndW1lbnRzWzVdP2FyZ3VtZW50c1s1XTp7c2lsZW50OiExfSxwYXRoPVtsbmcsbnNdO2xuZy5pbmRleE9mKCIuIik+LTEmJihwYXRoPWxuZy5zcGxpdCgiLiIpLGRlZXA9cmVzb3VyY2VzLHJlc291cmNlcz1ucyxucz1wYXRoWzFdKSx0aGlzLmFkZE5hbWVzcGFjZXMobnMpO3ZhciBwYWNrPWdldFBhdGgodGhpcy5kYXRhLHBhdGgpfHx7fTtkZWVwP2Z1bmN0aW9uIGRlZXBFeHRlbmQodGFyZ2V0LHNvdXJjZSxvdmVyd3JpdGUpe2Zvcih2YXIgcHJvcCBpbiBzb3VyY2UpIl9fcHJvdG9fXyIhPT1wcm9wJiYiY29uc3RydWN0b3IiIT09cHJvcCYmKHByb3AgaW4gdGFyZ2V0PyJzdHJpbmciPT10eXBlb2YgdGFyZ2V0W3Byb3BdfHx0YXJnZXRbcHJvcF1pbnN0YW5jZW9mIFN0cmluZ3x8InN0cmluZyI9PXR5cGVvZiBzb3VyY2VbcHJvcF18fHNvdXJjZVtwcm9wXWluc3RhbmNlb2YgU3RyaW5nP292ZXJ3cml0ZSYmKHRhcmdldFtwcm9wXT1zb3VyY2VbcHJvcF0pOmRlZXBFeHRlbmQodGFyZ2V0W3Byb3BdLHNvdXJjZVtwcm9wXSxvdmVyd3JpdGUpOnRhcmdldFtwcm9wXT1zb3VyY2VbcHJvcF0pO3JldHVybiB0YXJnZXR9KHBhY2sscmVzb3VyY2VzLG92ZXJ3cml0ZSk6cGFjaz1fb2JqZWN0U3ByZWFkJDEoX29iamVjdFNwcmVhZCQxKHt9LHBhY2spLHJlc291cmNlcyksc2V0UGF0aCh0aGlzLmRhdGEscGF0aCxwYWNrKSxvcHRpb25zLnNpbGVudHx8dGhpcy5lbWl0KCJhZGRlZCIsbG5nLG5zLHJlc291cmNlcyl9fSx7a2V5OiJyZW1vdmVSZXNvdXJjZUJ1bmRsZSIsdmFsdWU6ZnVuY3Rpb24obG5nLG5zKXt0aGlzLmhhc1Jlc291cmNlQnVuZGxlKGxuZyxucykmJmRlbGV0ZSB0aGlzLmRhdGFbbG5nXVtuc10sdGhpcy5yZW1vdmVOYW1lc3BhY2VzKG5zKSx0aGlzLmVtaXQoInJlbW92ZWQiLGxuZyxucyl9fSx7a2V5OiJoYXNSZXNvdXJjZUJ1bmRsZSIsdmFsdWU6ZnVuY3Rpb24obG5nLG5zKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5nZXRSZXNvdXJjZShsbmcsbnMpfX0se2tleToiZ2V0UmVzb3VyY2VCdW5kbGUiLHZhbHVlOmZ1bmN0aW9uKGxuZyxucyl7cmV0dXJuKG5zfHwobnM9dGhpcy5vcHRpb25zLmRlZmF1bHROUyksInYxIj09PXRoaXMub3B0aW9ucy5jb21wYXRpYmlsaXR5QVBJKT9fb2JqZWN0U3ByZWFkJDEoX29iamVjdFNwcmVhZCQxKHt9LHt9KSx0aGlzLmdldFJlc291cmNlKGxuZyxucykpOnRoaXMuZ2V0UmVzb3VyY2UobG5nLG5zKX19LHtrZXk6ImdldERhdGFCeUxhbmd1YWdlIix2YWx1ZTpmdW5jdGlvbihsbmcpe3JldHVybiB0aGlzLmRhdGFbbG5nXX19LHtrZXk6Imhhc0xhbmd1YWdlU29tZVRyYW5zbGF0aW9ucyIsdmFsdWU6ZnVuY3Rpb24obG5nKXt2YXIgZGF0YT10aGlzLmdldERhdGFCeUxhbmd1YWdlKGxuZyk7cmV0dXJuISEoZGF0YSYmT2JqZWN0LmtleXMoZGF0YSl8fFtdKS5maW5kKGZ1bmN0aW9uKHYpe3JldHVybiBkYXRhW3ZdJiZPYmplY3Qua2V5cyhkYXRhW3ZdKS5sZW5ndGg+MH0pfX0se2tleToidG9KU09OIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGF9fV0pLFJlc291cmNlU3RvcmV9KEV2ZW50RW1pdHRlcikscG9zdFByb2Nlc3Nvcj17cHJvY2Vzc29yczp7fSxhZGRQb3N0UHJvY2Vzc29yOmZ1bmN0aW9uKG1vZHVsZSl7dGhpcy5wcm9jZXNzb3JzW21vZHVsZS5uYW1lXT1tb2R1bGV9LGhhbmRsZTpmdW5jdGlvbihwcm9jZXNzb3JzLHZhbHVlLGtleSxvcHRpb25zLHRyYW5zbGF0b3Ipe3ZhciBfdGhpcz10aGlzO3JldHVybiBwcm9jZXNzb3JzLmZvckVhY2goZnVuY3Rpb24ocHJvY2Vzc29yKXtfdGhpcy5wcm9jZXNzb3JzW3Byb2Nlc3Nvcl0mJih2YWx1ZT1fdGhpcy5wcm9jZXNzb3JzW3Byb2Nlc3Nvcl0ucHJvY2Vzcyh2YWx1ZSxrZXksb3B0aW9ucyx0cmFuc2xhdG9yKSl9KSx2YWx1ZX19O2Z1bmN0aW9uIG93bktleXMkMihvYmplY3QsZW51bWVyYWJsZU9ubHkpe3ZhciBrZXlzPU9iamVjdC5rZXlzKG9iamVjdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHN5bWJvbHM9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpO2VudW1lcmFibGVPbmx5JiYoc3ltYm9scz1zeW1ib2xzLmZpbHRlcihmdW5jdGlvbihzeW0pe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCxzeW0pLmVudW1lcmFibGV9KSksa2V5cy5wdXNoLmFwcGx5KGtleXMsc3ltYm9scyl9cmV0dXJuIGtleXN9ZnVuY3Rpb24gX29iamVjdFNwcmVhZCQyKHRhcmdldCl7Zm9yKHZhciBpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKyl7dmFyIHNvdXJjZT1udWxsIT1hcmd1bWVudHNbaV0/YXJndW1lbnRzW2ldOnt9O2klMj9vd25LZXlzJDIoT2JqZWN0KHNvdXJjZSksITApLmZvckVhY2goZnVuY3Rpb24oa2V5KXsoMCxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV9kZWZpbmVQcm9wZXJ0eV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlopKHRhcmdldCxrZXksc291cmNlW2tleV0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpOm93bktleXMkMihPYmplY3Qoc291cmNlKSkuZm9yRWFjaChmdW5jdGlvbihrZXkpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsa2V5LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLGtleSkpfSl9cmV0dXJuIHRhcmdldH12YXIgY2hlY2tlZExvYWRlZEZvcj17fSxUcmFuc2xhdG9yPWZ1bmN0aW9uKF9FdmVudEVtaXR0ZXIpeygwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX2luaGVyaXRzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uWikoVHJhbnNsYXRvcixfRXZlbnRFbWl0dGVyKTt2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCxfc3VwZXI9KGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3Q9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCksZnVuY3Rpb24oKXt2YXIgcmVzdWx0LFN1cGVyPSgwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX2dldFByb3RvdHlwZU9mX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uWikoVHJhbnNsYXRvcik7aWYoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCl7dmFyIE5ld1RhcmdldD0oMCxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV9nZXRQcm90b3R5cGVPZl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLlopKHRoaXMpLmNvbnN0cnVjdG9yO3Jlc3VsdD1SZWZsZWN0LmNvbnN0cnVjdChTdXBlcixhcmd1bWVudHMsTmV3VGFyZ2V0KX1lbHNlIHJlc3VsdD1TdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuKDAsX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fcG9zc2libGVDb25zdHJ1Y3RvclJldHVybl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlopKHRoaXMscmVzdWx0KX0pO2Z1bmN0aW9uIFRyYW5zbGF0b3Ioc2VydmljZXMpe3ZhciBfdGhpcyxvcHRpb25zPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm4oMCxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV9jbGFzc0NhbGxDaGVja19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlopKHRoaXMsVHJhbnNsYXRvciksX3RoaXM9X3N1cGVyLmNhbGwodGhpcyksaXNJRTEwJiZFdmVudEVtaXR0ZXIuY2FsbCgoMCxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV9hc3NlcnRUaGlzSW5pdGlhbGl6ZWRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5aKShfdGhpcykpLCFmdW5jdGlvbihhLHMsdCl7YS5mb3JFYWNoKGZ1bmN0aW9uKG0pe3NbbV0mJih0W21dPXNbbV0pfSl9KFsicmVzb3VyY2VTdG9yZSIsImxhbmd1YWdlVXRpbHMiLCJwbHVyYWxSZXNvbHZlciIsImludGVycG9sYXRvciIsImJhY2tlbmRDb25uZWN0b3IiLCJpMThuRm9ybWF0IiwidXRpbHMiXSxzZXJ2aWNlcywoMCxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV9hc3NlcnRUaGlzSW5pdGlhbGl6ZWRfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5aKShfdGhpcykpLF90aGlzLm9wdGlvbnM9b3B0aW9ucyx2b2lkIDA9PT1fdGhpcy5vcHRpb25zLmtleVNlcGFyYXRvciYmKF90aGlzLm9wdGlvbnMua2V5U2VwYXJhdG9yPSIuIiksX3RoaXMubG9nZ2VyPWJhc2VMb2dnZXIuY3JlYXRlKCJ0cmFuc2xhdG9yIiksX3RoaXN9cmV0dXJuKDAsX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fY3JlYXRlQ2xhc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5aKShUcmFuc2xhdG9yLFt7a2V5OiJjaGFuZ2VMYW5ndWFnZSIsdmFsdWU6ZnVuY3Rpb24obG5nKXtsbmcmJih0aGlzLmxhbmd1YWdlPWxuZyl9fSx7a2V5OiJleGlzdHMiLHZhbHVlOmZ1bmN0aW9uKGtleSl7dmFyIG9wdGlvbnM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOntpbnRlcnBvbGF0aW9uOnt9fTtpZihudWxsPT1rZXkpcmV0dXJuITE7dmFyIHJlc29sdmVkPXRoaXMucmVzb2x2ZShrZXksb3B0aW9ucyk7cmV0dXJuIHJlc29sdmVkJiZ2b2lkIDAhPT1yZXNvbHZlZC5yZXN9fSx7a2V5OiJleHRyYWN0RnJvbUtleSIsdmFsdWU6ZnVuY3Rpb24oa2V5LG9wdGlvbnMpe3ZhciBuc1NlcGFyYXRvcj12b2lkIDAhPT1vcHRpb25zLm5zU2VwYXJhdG9yP29wdGlvbnMubnNTZXBhcmF0b3I6dGhpcy5vcHRpb25zLm5zU2VwYXJhdG9yO3ZvaWQgMD09PW5zU2VwYXJhdG9yJiYobnNTZXBhcmF0b3I9IjoiKTt2YXIga2V5U2VwYXJhdG9yPXZvaWQgMCE9PW9wdGlvbnMua2V5U2VwYXJhdG9yP29wdGlvbnMua2V5U2VwYXJhdG9yOnRoaXMub3B0aW9ucy5rZXlTZXBhcmF0b3IsbmFtZXNwYWNlcz1vcHRpb25zLm5zfHx0aGlzLm9wdGlvbnMuZGVmYXVsdE5TfHxbXSx3b3VsZENoZWNrRm9yTnNJbktleT1uc1NlcGFyYXRvciYma2V5LmluZGV4T2YobnNTZXBhcmF0b3IpPi0xLHNlZW1zTmF0dXJhbExhbmd1YWdlPSF0aGlzLm9wdGlvbnMudXNlckRlZmluZWRLZXlTZXBhcmF0b3ImJiFvcHRpb25zLmtleVNlcGFyYXRvciYmIXRoaXMub3B0aW9ucy51c2VyRGVmaW5lZE5zU2VwYXJhdG9yJiYhb3B0aW9ucy5uc1NlcGFyYXRvciYmIWZ1bmN0aW9uKGtleSxuc1NlcGFyYXRvcixrZXlTZXBhcmF0b3Ipe25zU2VwYXJhdG9yPW5zU2VwYXJhdG9yfHwiIixrZXlTZXBhcmF0b3I9a2V5U2VwYXJhdG9yfHwiIjt2YXIgcG9zc2libGVDaGFycz1jaGFycy5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIDA+bnNTZXBhcmF0b3IuaW5kZXhPZihjKSYmMD5rZXlTZXBhcmF0b3IuaW5kZXhPZihjKX0pO2lmKDA9PT1wb3NzaWJsZUNoYXJzLmxlbmd0aClyZXR1cm4hMDt2YXIgcj1SZWdFeHAoIigiLmNvbmNhdChwb3NzaWJsZUNoYXJzLm1hcChmdW5jdGlvbihjKXtyZXR1cm4iPyI9PT1jPyJcXD8iOmN9KS5qb2luKCJ8IiksIikiKSksbWF0Y2hlZD0hci50ZXN0KGtleSk7aWYoIW1hdGNoZWQpe3ZhciBraT1rZXkuaW5kZXhPZihrZXlTZXBhcmF0b3IpO2tpPjAmJiFyLnRlc3Qoa2V5LnN1YnN0cmluZygwLGtpKSkmJihtYXRjaGVkPSEwKX1yZXR1cm4gbWF0Y2hlZH0oa2V5LG5zU2VwYXJhdG9yLGtleVNlcGFyYXRvcik7aWYod291bGRDaGVja0Zvck5zSW5LZXkmJiFzZWVtc05hdHVyYWxMYW5ndWFnZSl7dmFyIG09a2V5Lm1hdGNoKHRoaXMuaW50ZXJwb2xhdG9yLm5lc3RpbmdSZWdleHApO2lmKG0mJm0ubGVuZ3RoPjApcmV0dXJue2tleTprZXksbmFtZXNwYWNlczpuYW1lc3BhY2VzfTt2YXIgcGFydHM9a2V5LnNwbGl0KG5zU2VwYXJhdG9yKTsobnNTZXBhcmF0b3IhPT1rZXlTZXBhcmF0b3J8fG5zU2VwYXJhdG9yPT09a2V5U2VwYXJhdG9yJiZ0aGlzLm9wdGlvbnMubnMuaW5kZXhPZihwYXJ0c1swXSk+LTEpJiYobmFtZXNwYWNlcz1wYXJ0cy5zaGlmdCgpKSxrZXk9cGFydHMuam9pbihrZXlTZXBhcmF0b3IpfXJldHVybiJzdHJpbmciPT10eXBlb2YgbmFtZXNwYWNlcyYmKG5hbWVzcGFjZXM9W25hbWVzcGFjZXNdKSx7a2V5OmtleSxuYW1lc3BhY2VzOm5hbWVzcGFjZXN9fX0se2tleToidHJhbnNsYXRlIix2YWx1ZTpmdW5jdGlvbihrZXlzLG9wdGlvbnMsbGFzdEtleSl7dmFyIF90aGlzMj10aGlzO2lmKCJvYmplY3QiIT09KDAsX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fdHlwZW9mX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uWikob3B0aW9ucykmJnRoaXMub3B0aW9ucy5vdmVybG9hZFRyYW5zbGF0aW9uT3B0aW9uSGFuZGxlciYmKG9wdGlvbnM9dGhpcy5vcHRpb25zLm92ZXJsb2FkVHJhbnNsYXRpb25PcHRpb25IYW5kbGVyKGFyZ3VtZW50cykpLG9wdGlvbnN8fChvcHRpb25zPXt9KSxudWxsPT1rZXlzKXJldHVybiIiO0FycmF5LmlzQXJyYXkoa2V5cyl8fChrZXlzPVtTdHJpbmcoa2V5cyldKTt2YXIgcmV0dXJuRGV0YWlscz12b2lkIDAhPT1vcHRpb25zLnJldHVybkRldGFpbHM/b3B0aW9ucy5yZXR1cm5EZXRhaWxzOnRoaXMub3B0aW9ucy5yZXR1cm5EZXRhaWxzLGtleVNlcGFyYXRvcj12b2lkIDAhPT1vcHRpb25zLmtleVNlcGFyYXRvcj9vcHRpb25zLmtleVNlcGFyYXRvcjp0aGlzLm9wdGlvbnMua2V5U2VwYXJhdG9yLF90aGlzJGV4dHJhY3RGcm9tS2V5PXRoaXMuZXh0cmFjdEZyb21LZXkoa2V5c1trZXlzLmxlbmd0aC0xXSxvcHRpb25zKSxrZXk9X3RoaXMkZXh0cmFjdEZyb21LZXkua2V5LG5hbWVzcGFjZXM9X3RoaXMkZXh0cmFjdEZyb21LZXkubmFtZXNwYWNlcyxuYW1lc3BhY2U9bmFtZXNwYWNlc1tuYW1lc3BhY2VzLmxlbmd0aC0xXSxsbmc9b3B0aW9ucy5sbmd8fHRoaXMubGFuZ3VhZ2UsYXBwZW5kTmFtZXNwYWNlVG9DSU1vZGU9b3B0aW9ucy5hcHBlbmROYW1lc3BhY2VUb0NJTW9kZXx8dGhpcy5vcHRpb25zLmFwcGVuZE5hbWVzcGFjZVRvQ0lNb2RlO2lmKGxuZyYmImNpbW9kZSI9PT1sbmcudG9Mb3dlckNhc2UoKSl7aWYoYXBwZW5kTmFtZXNwYWNlVG9DSU1vZGUpe3ZhciBuc1NlcGFyYXRvcj1vcHRpb25zLm5zU2VwYXJhdG9yfHx0aGlzLm9wdGlvbnMubnNTZXBhcmF0b3I7cmV0dXJuIHJldHVybkRldGFpbHM/KHJlc29sdmVkLnJlcz0iIi5jb25jYXQobmFtZXNwYWNlKS5jb25jYXQobnNTZXBhcmF0b3IpLmNvbmNhdChrZXkpLHJlc29sdmVkKToiIi5jb25jYXQobmFtZXNwYWNlKS5jb25jYXQobnNTZXBhcmF0b3IpLmNvbmNhdChrZXkpfXJldHVybiByZXR1cm5EZXRhaWxzPyhyZXNvbHZlZC5yZXM9a2V5LHJlc29sdmVkKTprZXl9dmFyIHJlc29sdmVkPXRoaXMucmVzb2x2ZShrZXlzLG9wdGlvbnMpLHJlcz1yZXNvbHZlZCYmcmVzb2x2ZWQucmVzLHJlc1VzZWRLZXk9cmVzb2x2ZWQmJnJlc29sdmVkLnVzZWRLZXl8fGtleSxyZXNFeGFjdFVzZWRLZXk9cmVzb2x2ZWQmJnJlc29sdmVkLmV4YWN0VXNlZEtleXx8a2V5LHJlc1R5cGU9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseShyZXMpLGpvaW5BcnJheXM9dm9pZCAwIT09b3B0aW9ucy5qb2luQXJyYXlzP29wdGlvbnMuam9pbkFycmF5czp0aGlzLm9wdGlvbnMuam9pbkFycmF5cyxoYW5kbGVBc09iamVjdEluSTE4bkZvcm1hdD0hdGhpcy5pMThuRm9ybWF0fHx0aGlzLmkxOG5Gb3JtYXQuaGFuZGxlQXNPYmplY3QsaGFuZGxlQXNPYmplY3Q9InN0cmluZyIhPXR5cGVvZiByZXMmJiJib29sZWFuIiE9dHlwZW9mIHJlcyYmIm51bWJlciIhPXR5cGVvZiByZXM7aWYoaGFuZGxlQXNPYmplY3RJbkkxOG5Gb3JtYXQmJnJlcyYmaGFuZGxlQXNPYmplY3QmJjA+WyJbb2JqZWN0IE51bWJlcl0iLCJbb2JqZWN0IEZ1bmN0aW9uXSIsIltvYmplY3QgUmVnRXhwXSJdLmluZGV4T2YocmVzVHlwZSkmJiEoInN0cmluZyI9PXR5cGVvZiBqb2luQXJyYXlzJiYiW29iamVjdCBBcnJheV0iPT09cmVzVHlwZSkpe2lmKCFvcHRpb25zLnJldHVybk9iamVjdHMmJiF0aGlzLm9wdGlvbnMucmV0dXJuT2JqZWN0cyl7dGhpcy5vcHRpb25zLnJldHVybmVkT2JqZWN0SGFuZGxlcnx8dGhpcy5sb2dnZXIud2FybigiYWNjZXNzaW5nIGFuIG9iamVjdCAtIGJ1dCByZXR1cm5PYmplY3RzIG9wdGlvbnMgaXMgbm90IGVuYWJsZWQhIik7dmFyIHI9dGhpcy5vcHRpb25zLnJldHVybmVkT2JqZWN0SGFuZGxlcj90aGlzLm9wdGlvbnMucmV0dXJuZWRPYmplY3RIYW5kbGVyKHJlc1VzZWRLZXkscmVzLF9vYmplY3RTcHJlYWQkMihfb2JqZWN0U3ByZWFkJDIoe30sb3B0aW9ucykse30se25zOm5hbWVzcGFjZXN9KSk6ImtleSAnIi5jb25jYXQoa2V5LCIgKCIpLmNvbmNhdCh0aGlzLmxhbmd1YWdlLCIpJyByZXR1cm5lZCBhbiBvYmplY3QgaW5zdGVhZCBvZiBzdHJpbmcuIik7cmV0dXJuIHJldHVybkRldGFpbHM/KHJlc29sdmVkLnJlcz1yLHJlc29sdmVkKTpyfWlmKGtleVNlcGFyYXRvcil7dmFyIHJlc1R5cGVJc0FycmF5PSJbb2JqZWN0IEFycmF5XSI9PT1yZXNUeXBlLGNvcHk9cmVzVHlwZUlzQXJyYXk/W106e30sbmV3S2V5VG9Vc2U9cmVzVHlwZUlzQXJyYXk/cmVzRXhhY3RVc2VkS2V5OnJlc1VzZWRLZXk7Zm9yKHZhciBtIGluIHJlcylpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmVzLG0pKXt2YXIgZGVlcEtleT0iIi5jb25jYXQobmV3S2V5VG9Vc2UpLmNvbmNhdChrZXlTZXBhcmF0b3IpLmNvbmNhdChtKTtjb3B5W21dPXRoaXMudHJhbnNsYXRlKGRlZXBLZXksX29iamVjdFNwcmVhZCQyKF9vYmplY3RTcHJlYWQkMih7fSxvcHRpb25zKSx7am9pbkFycmF5czohMSxuczpuYW1lc3BhY2VzfSkpLGNvcHlbbV09PT1kZWVwS2V5JiYoY29weVttXT1yZXNbbV0pfXJlcz1jb3B5fX1lbHNlIGlmKGhhbmRsZUFzT2JqZWN0SW5JMThuRm9ybWF0JiYic3RyaW5nIj09dHlwZW9mIGpvaW5BcnJheXMmJiJbb2JqZWN0IEFycmF5XSI9PT1yZXNUeXBlKShyZXM9cmVzLmpvaW4oam9pbkFycmF5cykpJiYocmVzPXRoaXMuZXh0ZW5kVHJhbnNsYXRpb24ocmVzLGtleXMsb3B0aW9ucyxsYXN0S2V5KSk7ZWxzZXt2YXIgdXNlZERlZmF1bHQ9ITEsdXNlZEtleT0hMSxuZWVkc1BsdXJhbEhhbmRsaW5nPXZvaWQgMCE9PW9wdGlvbnMuY291bnQmJiJzdHJpbmciIT10eXBlb2Ygb3B0aW9ucy5jb3VudCxoYXNEZWZhdWx0VmFsdWU9VHJhbnNsYXRvci5oYXNEZWZhdWx0VmFsdWUob3B0aW9ucyksZGVmYXVsdFZhbHVlU3VmZml4PW5lZWRzUGx1cmFsSGFuZGxpbmc/dGhpcy5wbHVyYWxSZXNvbHZlci5nZXRTdWZmaXgobG5nLG9wdGlvbnMuY291bnQsb3B0aW9ucyk6IiIsZGVmYXVsdFZhbHVlPW9wdGlvbnNbImRlZmF1bHRWYWx1ZSIuY29uY2F0KGRlZmF1bHRWYWx1ZVN1ZmZpeCldfHxvcHRpb25zLmRlZmF1bHRWYWx1ZTshdGhpcy5pc1ZhbGlkTG9va3VwKHJlcykmJmhhc0RlZmF1bHRWYWx1ZSYmKHVzZWREZWZhdWx0PSEwLHJlcz1kZWZhdWx0VmFsdWUpLHRoaXMuaXNWYWxpZExvb2t1cChyZXMpfHwodXNlZEtleT0hMCxyZXM9a2V5KTt2YXIgcmVzRm9yTWlzc2luZz0ob3B0aW9ucy5taXNzaW5nS2V5Tm9WYWx1ZUZhbGxiYWNrVG9LZXl8fHRoaXMub3B0aW9ucy5taXNzaW5nS2V5Tm9WYWx1ZUZhbGxiYWNrVG9LZXkpJiZ1c2VkS2V5P3ZvaWQgMDpyZXMsdXBkYXRlTWlzc2luZz1oYXNEZWZhdWx0VmFsdWUmJmRlZmF1bHRWYWx1ZSE9PXJlcyYmdGhpcy5vcHRpb25zLnVwZGF0ZU1pc3Npbmc7aWYodXNlZEtleXx8dXNlZERlZmF1bHR8fHVwZGF0ZU1pc3Npbmcpe2lmKHRoaXMubG9nZ2VyLmxvZyh1cGRhdGVNaXNzaW5nPyJ1cGRhdGVLZXkiOiJtaXNzaW5nS2V5IixsbmcsbmFtZXNwYWNlLGtleSx1cGRhdGVNaXNzaW5nP2RlZmF1bHRWYWx1ZTpyZXMpLGtleVNlcGFyYXRvcil7dmFyIGZrPXRoaXMucmVzb2x2ZShrZXksX29iamVjdFNwcmVhZCQyKF9vYmplY3RTcHJlYWQkMih7fSxvcHRpb25zKSx7fSx7a2V5U2VwYXJhdG9yOiExfSkpO2ZrJiZmay5yZXMmJnRoaXMubG9nZ2VyLndhcm4oIlNlZW1zIHRoZSBsb2FkZWQgdHJhbnNsYXRpb25zIHdlcmUgaW4gZmxhdCBKU09OIGZvcm1hdCBpbnN0ZWFkIG9mIG5lc3RlZC4gRWl0aGVyIHNldCBrZXlTZXBhcmF0b3I6IGZhbHNlIG9uIGluaXQgb3IgbWFrZSBzdXJlIHlvdXIgdHJhbnNsYXRpb25zIGFyZSBwdWJsaXNoZWQgaW4gbmVzdGVkIGZvcm1hdC4iKX12YXIgbG5ncz1bXSxmYWxsYmFja0xuZ3M9dGhpcy5sYW5ndWFnZVV0aWxzLmdldEZhbGxiYWNrQ29kZXModGhpcy5vcHRpb25zLmZhbGxiYWNrTG5nLG9wdGlvbnMubG5nfHx0aGlzLmxhbmd1YWdlKTtpZigiZmFsbGJhY2siPT09dGhpcy5vcHRpb25zLnNhdmVNaXNzaW5nVG8mJmZhbGxiYWNrTG5ncyYmZmFsbGJhY2tMbmdzWzBdKWZvcih2YXIgaT0wO2k8ZmFsbGJhY2tMbmdzLmxlbmd0aDtpKyspbG5ncy5wdXNoKGZhbGxiYWNrTG5nc1tpXSk7ZWxzZSJhbGwiPT09dGhpcy5vcHRpb25zLnNhdmVNaXNzaW5nVG8/bG5ncz10aGlzLmxhbmd1YWdlVXRpbHMudG9SZXNvbHZlSGllcmFyY2h5KG9wdGlvbnMubG5nfHx0aGlzLmxhbmd1YWdlKTpsbmdzLnB1c2gob3B0aW9ucy5sbmd8fHRoaXMubGFuZ3VhZ2UpO3ZhciBzZW5kPWZ1bmN0aW9uKGwsayxzcGVjaWZpY0RlZmF1bHRWYWx1ZSl7dmFyIGRlZmF1bHRGb3JNaXNzaW5nPWhhc0RlZmF1bHRWYWx1ZSYmc3BlY2lmaWNEZWZhdWx0VmFsdWUhPT1yZXM/c3BlY2lmaWNEZWZhdWx0VmFsdWU6cmVzRm9yTWlzc2luZztfdGhpczIub3B0aW9ucy5taXNzaW5nS2V5SGFuZGxlcj9fdGhpczIub3B0aW9ucy5taXNzaW5nS2V5SGFuZGxlcihsLG5hbWVzcGFjZSxrLGRlZmF1bHRGb3JNaXNzaW5nLHVwZGF0ZU1pc3Npbmcsb3B0aW9ucyk6X3RoaXMyLmJhY2tlbmRDb25uZWN0b3ImJl90aGlzMi5iYWNrZW5kQ29ubmVjdG9yLnNhdmVNaXNzaW5nJiZfdGhpczIuYmFja2VuZENvbm5lY3Rvci5zYXZlTWlzc2luZyhsLG5hbWVzcGFjZSxrLGRlZmF1bHRGb3JNaXNzaW5nLHVwZGF0ZU1pc3Npbmcsb3B0aW9ucyksX3RoaXMyLmVtaXQoIm1pc3NpbmdLZXkiLGwsbmFtZXNwYWNlLGsscmVzKX07dGhpcy5vcHRpb25zLnNhdmVNaXNzaW5nJiYodGhpcy5vcHRpb25zLnNhdmVNaXNzaW5nUGx1cmFscyYmbmVlZHNQbHVyYWxIYW5kbGluZz9sbmdzLmZvckVhY2goZnVuY3Rpb24obGFuZ3VhZ2Upe190aGlzMi5wbHVyYWxSZXNvbHZlci5nZXRTdWZmaXhlcyhsYW5ndWFnZSxvcHRpb25zKS5mb3JFYWNoKGZ1bmN0aW9uKHN1ZmZpeCl7c2VuZChbbGFuZ3VhZ2VdLGtleStzdWZmaXgsb3B0aW9uc1siZGVmYXVsdFZhbHVlIi5jb25jYXQoc3VmZml4KV18fGRlZmF1bHRWYWx1ZSl9KX0pOnNlbmQobG5ncyxrZXksZGVmYXVsdFZhbHVlKSl9cmVzPXRoaXMuZXh0ZW5kVHJhbnNsYXRpb24ocmVzLGtleXMsb3B0aW9ucyxyZXNvbHZlZCxsYXN0S2V5KSx1c2VkS2V5JiZyZXM9PT1rZXkmJnRoaXMub3B0aW9ucy5hcHBlbmROYW1lc3BhY2VUb01pc3NpbmdLZXkmJihyZXM9IiIuY29uY2F0KG5hbWVzcGFjZSwiOiIpLmNvbmNhdChrZXkpKSwodXNlZEtleXx8dXNlZERlZmF1bHQpJiZ0aGlzLm9wdGlvbnMucGFyc2VNaXNzaW5nS2V5SGFuZGxlciYmKHJlcz0idjEiIT09dGhpcy5vcHRpb25zLmNvbXBhdGliaWxpdHlBUEk/dGhpcy5vcHRpb25zLnBhcnNlTWlzc2luZ0tleUhhbmRsZXIodGhpcy5vcHRpb25zLmFwcGVuZE5hbWVzcGFjZVRvTWlzc2luZ0tleT8iIi5jb25jYXQobmFtZXNwYWNlLCI6IikuY29uY2F0KGtleSk6a2V5LHVzZWREZWZhdWx0P3Jlczp2b2lkIDApOnRoaXMub3B0aW9ucy5wYXJzZU1pc3NpbmdLZXlIYW5kbGVyKHJlcykpfXJldHVybiByZXR1cm5EZXRhaWxzPyhyZXNvbHZlZC5yZXM9cmVzLHJlc29sdmVkKTpyZXN9fSx7a2V5OiJleHRlbmRUcmFuc2xhdGlvbiIsdmFsdWU6ZnVuY3Rpb24ocmVzLGtleSxvcHRpb25zLHJlc29sdmVkLGxhc3RLZXkpe3ZhciBfdGhpczM9dGhpcztpZih0aGlzLmkxOG5Gb3JtYXQmJnRoaXMuaTE4bkZvcm1hdC5wYXJzZSlyZXM9dGhpcy5pMThuRm9ybWF0LnBhcnNlKHJlcyxfb2JqZWN0U3ByZWFkJDIoX29iamVjdFNwcmVhZCQyKHt9LHRoaXMub3B0aW9ucy5pbnRlcnBvbGF0aW9uLmRlZmF1bHRWYXJpYWJsZXMpLG9wdGlvbnMpLHJlc29sdmVkLnVzZWRMbmcscmVzb2x2ZWQudXNlZE5TLHJlc29sdmVkLnVzZWRLZXkse3Jlc29sdmVkOnJlc29sdmVkfSk7ZWxzZSBpZighb3B0aW9ucy5za2lwSW50ZXJwb2xhdGlvbil7b3B0aW9ucy5pbnRlcnBvbGF0aW9uJiZ0aGlzLmludGVycG9sYXRvci5pbml0KF9vYmplY3RTcHJlYWQkMihfb2JqZWN0U3ByZWFkJDIoe30sb3B0aW9ucykse2ludGVycG9sYXRpb246X29iamVjdFNwcmVhZCQyKF9vYmplY3RTcHJlYWQkMih7fSx0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbiksb3B0aW9ucy5pbnRlcnBvbGF0aW9uKX0pKTt2YXIgbmVzdEJlZixza2lwT25WYXJpYWJsZXM9InN0cmluZyI9PXR5cGVvZiByZXMmJihvcHRpb25zJiZvcHRpb25zLmludGVycG9sYXRpb24mJnZvaWQgMCE9PW9wdGlvbnMuaW50ZXJwb2xhdGlvbi5za2lwT25WYXJpYWJsZXM/b3B0aW9ucy5pbnRlcnBvbGF0aW9uLnNraXBPblZhcmlhYmxlczp0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbi5za2lwT25WYXJpYWJsZXMpO2lmKHNraXBPblZhcmlhYmxlcyl7dmFyIG5iPXJlcy5tYXRjaCh0aGlzLmludGVycG9sYXRvci5uZXN0aW5nUmVnZXhwKTtuZXN0QmVmPW5iJiZuYi5sZW5ndGh9dmFyIGRhdGE9b3B0aW9ucy5yZXBsYWNlJiYic3RyaW5nIiE9dHlwZW9mIG9wdGlvbnMucmVwbGFjZT9vcHRpb25zLnJlcGxhY2U6b3B0aW9ucztpZih0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbi5kZWZhdWx0VmFyaWFibGVzJiYoZGF0YT1fb2JqZWN0U3ByZWFkJDIoX29iamVjdFNwcmVhZCQyKHt9LHRoaXMub3B0aW9ucy5pbnRlcnBvbGF0aW9uLmRlZmF1bHRWYXJpYWJsZXMpLGRhdGEpKSxyZXM9dGhpcy5pbnRlcnBvbGF0b3IuaW50ZXJwb2xhdGUocmVzLGRhdGEsb3B0aW9ucy5sbmd8fHRoaXMubGFuZ3VhZ2Usb3B0aW9ucyksc2tpcE9uVmFyaWFibGVzKXt2YXIgbmE9cmVzLm1hdGNoKHRoaXMuaW50ZXJwb2xhdG9yLm5lc3RpbmdSZWdleHApO25lc3RCZWY8KG5hJiZuYS5sZW5ndGgpJiYob3B0aW9ucy5uZXN0PSExKX0hMSE9PW9wdGlvbnMubmVzdCYmKHJlcz10aGlzLmludGVycG9sYXRvci5uZXN0KHJlcyxmdW5jdGlvbigpe2Zvcih2YXIgX2xlbj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbiksX2tleT0wO19rZXk8X2xlbjtfa2V5KyspYXJnc1tfa2V5XT1hcmd1bWVudHNbX2tleV07cmV0dXJuIGxhc3RLZXkmJmxhc3RLZXlbMF09PT1hcmdzWzBdJiYhb3B0aW9ucy5jb250ZXh0PyhfdGhpczMubG9nZ2VyLndhcm4oIkl0IHNlZW1zIHlvdSBhcmUgbmVzdGluZyByZWN1cnNpdmVseSBrZXk6ICIuY29uY2F0KGFyZ3NbMF0sIiBpbiBrZXk6ICIpLmNvbmNhdChrZXlbMF0pKSxudWxsKTpfdGhpczMudHJhbnNsYXRlLmFwcGx5KF90aGlzMyxhcmdzLmNvbmNhdChba2V5XSkpfSxvcHRpb25zKSksb3B0aW9ucy5pbnRlcnBvbGF0aW9uJiZ0aGlzLmludGVycG9sYXRvci5yZXNldCgpfXZhciBwb3N0UHJvY2Vzcz1vcHRpb25zLnBvc3RQcm9jZXNzfHx0aGlzLm9wdGlvbnMucG9zdFByb2Nlc3MscG9zdFByb2Nlc3Nvck5hbWVzPSJzdHJpbmciPT10eXBlb2YgcG9zdFByb2Nlc3M/W3Bvc3RQcm9jZXNzXTpwb3N0UHJvY2VzcztyZXR1cm4gbnVsbCE9cmVzJiZwb3N0UHJvY2Vzc29yTmFtZXMmJnBvc3RQcm9jZXNzb3JOYW1lcy5sZW5ndGgmJiExIT09b3B0aW9ucy5hcHBseVBvc3RQcm9jZXNzb3ImJihyZXM9cG9zdFByb2Nlc3Nvci5oYW5kbGUocG9zdFByb2Nlc3Nvck5hbWVzLHJlcyxrZXksdGhpcy5vcHRpb25zJiZ0aGlzLm9wdGlvbnMucG9zdFByb2Nlc3NQYXNzUmVzb2x2ZWQ/X29iamVjdFNwcmVhZCQyKHtpMThuUmVzb2x2ZWQ6cmVzb2x2ZWR9LG9wdGlvbnMpOm9wdGlvbnMsdGhpcykpLHJlc319LHtrZXk6InJlc29sdmUiLHZhbHVlOmZ1bmN0aW9uKGtleXMpe3ZhciBmb3VuZCx1c2VkS2V5LGV4YWN0VXNlZEtleSx1c2VkTG5nLHVzZWROUyxfdGhpczQ9dGhpcyxvcHRpb25zPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGtleXMmJihrZXlzPVtrZXlzXSksa2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGspe2lmKCFfdGhpczQuaXNWYWxpZExvb2t1cChmb3VuZCkpe3ZhciBleHRyYWN0ZWQ9X3RoaXM0LmV4dHJhY3RGcm9tS2V5KGssb3B0aW9ucyksa2V5PWV4dHJhY3RlZC5rZXk7dXNlZEtleT1rZXk7dmFyIG5hbWVzcGFjZXM9ZXh0cmFjdGVkLm5hbWVzcGFjZXM7X3RoaXM0Lm9wdGlvbnMuZmFsbGJhY2tOUyYmKG5hbWVzcGFjZXM9bmFtZXNwYWNlcy5jb25jYXQoX3RoaXM0Lm9wdGlvbnMuZmFsbGJhY2tOUykpO3ZhciBuZWVkc1BsdXJhbEhhbmRsaW5nPXZvaWQgMCE9PW9wdGlvbnMuY291bnQmJiJzdHJpbmciIT10eXBlb2Ygb3B0aW9ucy5jb3VudCxuZWVkc1plcm9TdWZmaXhMb29rdXA9bmVlZHNQbHVyYWxIYW5kbGluZyYmIW9wdGlvbnMub3JkaW5hbCYmMD09PW9wdGlvbnMuY291bnQmJl90aGlzNC5wbHVyYWxSZXNvbHZlci5zaG91bGRVc2VJbnRsQXBpKCksbmVlZHNDb250ZXh0SGFuZGxpbmc9dm9pZCAwIT09b3B0aW9ucy5jb250ZXh0JiYoInN0cmluZyI9PXR5cGVvZiBvcHRpb25zLmNvbnRleHR8fCJudW1iZXIiPT10eXBlb2Ygb3B0aW9ucy5jb250ZXh0KSYmIiIhPT1vcHRpb25zLmNvbnRleHQsY29kZXM9b3B0aW9ucy5sbmdzP29wdGlvbnMubG5nczpfdGhpczQubGFuZ3VhZ2VVdGlscy50b1Jlc29sdmVIaWVyYXJjaHkob3B0aW9ucy5sbmd8fF90aGlzNC5sYW5ndWFnZSxvcHRpb25zLmZhbGxiYWNrTG5nKTtuYW1lc3BhY2VzLmZvckVhY2goZnVuY3Rpb24obnMpe190aGlzNC5pc1ZhbGlkTG9va3VwKGZvdW5kKXx8KHVzZWROUz1ucywhY2hlY2tlZExvYWRlZEZvclsiIi5jb25jYXQoY29kZXNbMF0sIi0iKS5jb25jYXQobnMpXSYmX3RoaXM0LnV0aWxzJiZfdGhpczQudXRpbHMuaGFzTG9hZGVkTmFtZXNwYWNlJiYhX3RoaXM0LnV0aWxzLmhhc0xvYWRlZE5hbWVzcGFjZSh1c2VkTlMpJiYoY2hlY2tlZExvYWRlZEZvclsiIi5jb25jYXQoY29kZXNbMF0sIi0iKS5jb25jYXQobnMpXT0hMCxfdGhpczQubG9nZ2VyLndhcm4oJ2tleSAiJy5jb25jYXQodXNlZEtleSwnIiBmb3IgbGFuZ3VhZ2VzICInKS5jb25jYXQoY29kZXMuam9pbigiLCAiKSwnIiB3b25cJ3QgZ2V0IHJlc29sdmVkIGFzIG5hbWVzcGFjZSAiJykuY29uY2F0KHVzZWROUywnIiB3YXMgbm90IHlldCBsb2FkZWQnKSwiVGhpcyBtZWFucyBzb21ldGhpbmcgSVMgV1JPTkcgaW4geW91ciBzZXR1cC4gWW91IGFjY2VzcyB0aGUgdCBmdW5jdGlvbiBiZWZvcmUgaTE4bmV4dC5pbml0IC8gaTE4bmV4dC5sb2FkTmFtZXNwYWNlIC8gaTE4bmV4dC5jaGFuZ2VMYW5ndWFnZSB3YXMgZG9uZS4gV2FpdCBmb3IgdGhlIGNhbGxiYWNrIG9yIFByb21pc2UgdG8gcmVzb2x2ZSBiZWZvcmUgYWNjZXNzaW5nIGl0ISEhIikpLGNvZGVzLmZvckVhY2goZnVuY3Rpb24oY29kZSl7aWYoIV90aGlzNC5pc1ZhbGlkTG9va3VwKGZvdW5kKSl7dXNlZExuZz1jb2RlO3ZhciBwb3NzaWJsZUtleSxmaW5hbEtleXM9W2tleV07aWYoX3RoaXM0LmkxOG5Gb3JtYXQmJl90aGlzNC5pMThuRm9ybWF0LmFkZExvb2t1cEtleXMpX3RoaXM0LmkxOG5Gb3JtYXQuYWRkTG9va3VwS2V5cyhmaW5hbEtleXMsa2V5LGNvZGUsbnMsb3B0aW9ucyk7ZWxzZXtuZWVkc1BsdXJhbEhhbmRsaW5nJiYocGx1cmFsU3VmZml4PV90aGlzNC5wbHVyYWxSZXNvbHZlci5nZXRTdWZmaXgoY29kZSxvcHRpb25zLmNvdW50LG9wdGlvbnMpKTt2YXIgcGx1cmFsU3VmZml4LHplcm9TdWZmaXg9IiIuY29uY2F0KF90aGlzNC5vcHRpb25zLnBsdXJhbFNlcGFyYXRvciwiemVybyIpO2lmKG5lZWRzUGx1cmFsSGFuZGxpbmcmJihmaW5hbEtleXMucHVzaChrZXkrcGx1cmFsU3VmZml4KSxuZWVkc1plcm9TdWZmaXhMb29rdXAmJmZpbmFsS2V5cy5wdXNoKGtleSt6ZXJvU3VmZml4KSksbmVlZHNDb250ZXh0SGFuZGxpbmcpe3ZhciBjb250ZXh0S2V5PSIiLmNvbmNhdChrZXkpLmNvbmNhdChfdGhpczQub3B0aW9ucy5jb250ZXh0U2VwYXJhdG9yKS5jb25jYXQob3B0aW9ucy5jb250ZXh0KTtmaW5hbEtleXMucHVzaChjb250ZXh0S2V5KSxuZWVkc1BsdXJhbEhhbmRsaW5nJiYoZmluYWxLZXlzLnB1c2goY29udGV4dEtleStwbHVyYWxTdWZmaXgpLG5lZWRzWmVyb1N1ZmZpeExvb2t1cCYmZmluYWxLZXlzLnB1c2goY29udGV4dEtleSt6ZXJvU3VmZml4KSl9fWZvcig7cG9zc2libGVLZXk9ZmluYWxLZXlzLnBvcCgpOylfdGhpczQuaXNWYWxpZExvb2t1cChmb3VuZCl8fChleGFjdFVzZWRLZXk9cG9zc2libGVLZXksZm91bmQ9X3RoaXM0LmdldFJlc291cmNlKGNvZGUsbnMscG9zc2libGVLZXksb3B0aW9ucykpfX0pKX0pfX0pLHtyZXM6Zm91bmQsdXNlZEtleTp1c2VkS2V5LGV4YWN0VXNlZEtleTpleGFjdFVzZWRLZXksdXNlZExuZzp1c2VkTG5nLHVzZWROUzp1c2VkTlN9fX0se2tleToiaXNWYWxpZExvb2t1cCIsdmFsdWU6ZnVuY3Rpb24ocmVzKXtyZXR1cm4gdm9pZCAwIT09cmVzJiYhKCF0aGlzLm9wdGlvbnMucmV0dXJuTnVsbCYmbnVsbD09PXJlcykmJiEoIXRoaXMub3B0aW9ucy5yZXR1cm5FbXB0eVN0cmluZyYmIiI9PT1yZXMpfX0se2tleToiZ2V0UmVzb3VyY2UiLHZhbHVlOmZ1bmN0aW9uKGNvZGUsbnMsa2V5KXt2YXIgb3B0aW9ucz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106e307cmV0dXJuIHRoaXMuaTE4bkZvcm1hdCYmdGhpcy5pMThuRm9ybWF0LmdldFJlc291cmNlP3RoaXMuaTE4bkZvcm1hdC5nZXRSZXNvdXJjZShjb2RlLG5zLGtleSxvcHRpb25zKTp0aGlzLnJlc291cmNlU3RvcmUuZ2V0UmVzb3VyY2UoY29kZSxucyxrZXksb3B0aW9ucyl9fV0sW3trZXk6Imhhc0RlZmF1bHRWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24ob3B0aW9ucyl7dmFyIHByZWZpeD0iZGVmYXVsdFZhbHVlIjtmb3IodmFyIG9wdGlvbiBpbiBvcHRpb25zKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvcHRpb25zLG9wdGlvbikmJnByZWZpeD09PW9wdGlvbi5zdWJzdHJpbmcoMCxwcmVmaXgubGVuZ3RoKSYmdm9pZCAwIT09b3B0aW9uc1tvcHRpb25dKXJldHVybiEwO3JldHVybiExfX1dKSxUcmFuc2xhdG9yfShFdmVudEVtaXR0ZXIpO2Z1bmN0aW9uIGNhcGl0YWxpemUoc3RyaW5nKXtyZXR1cm4gc3RyaW5nLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3N0cmluZy5zbGljZSgxKX12YXIgTGFuZ3VhZ2VVdGlsPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gTGFuZ3VhZ2VVdGlsKG9wdGlvbnMpeygwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX2NsYXNzQ2FsbENoZWNrX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uWikodGhpcyxMYW5ndWFnZVV0aWwpLHRoaXMub3B0aW9ucz1vcHRpb25zLHRoaXMuc3VwcG9ydGVkTG5ncz10aGlzLm9wdGlvbnMuc3VwcG9ydGVkTG5nc3x8ITEsdGhpcy5sb2dnZXI9YmFzZUxvZ2dlci5jcmVhdGUoImxhbmd1YWdlVXRpbHMiKX1yZXR1cm4oMCxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV9jcmVhdGVDbGFzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLlopKExhbmd1YWdlVXRpbCxbe2tleToiZ2V0U2NyaXB0UGFydEZyb21Db2RlIix2YWx1ZTpmdW5jdGlvbihjb2RlKXtpZighY29kZXx8MD5jb2RlLmluZGV4T2YoIi0iKSlyZXR1cm4gbnVsbDt2YXIgcD1jb2RlLnNwbGl0KCItIik7cmV0dXJuIDI9PT1wLmxlbmd0aD9udWxsOihwLnBvcCgpLCJ4Ij09PXBbcC5sZW5ndGgtMV0udG9Mb3dlckNhc2UoKSk/bnVsbDp0aGlzLmZvcm1hdExhbmd1YWdlQ29kZShwLmpvaW4oIi0iKSl9fSx7a2V5OiJnZXRMYW5ndWFnZVBhcnRGcm9tQ29kZSIsdmFsdWU6ZnVuY3Rpb24oY29kZSl7aWYoIWNvZGV8fDA+Y29kZS5pbmRleE9mKCItIikpcmV0dXJuIGNvZGU7dmFyIHA9Y29kZS5zcGxpdCgiLSIpO3JldHVybiB0aGlzLmZvcm1hdExhbmd1YWdlQ29kZShwWzBdKX19LHtrZXk6ImZvcm1hdExhbmd1YWdlQ29kZSIsdmFsdWU6ZnVuY3Rpb24oY29kZSl7aWYoInN0cmluZyI9PXR5cGVvZiBjb2RlJiZjb2RlLmluZGV4T2YoIi0iKT4tMSl7dmFyIHNwZWNpYWxDYXNlcz1bImhhbnMiLCJoYW50IiwibGF0biIsImN5cmwiLCJjYW5zIiwibW9uZyIsImFyYWIiXSxwPWNvZGUuc3BsaXQoIi0iKTtyZXR1cm4gdGhpcy5vcHRpb25zLmxvd2VyQ2FzZUxuZz9wPXAubWFwKGZ1bmN0aW9uKHBhcnQpe3JldHVybiBwYXJ0LnRvTG93ZXJDYXNlKCl9KToyPT09cC5sZW5ndGg/KHBbMF09cFswXS50b0xvd2VyQ2FzZSgpLHBbMV09cFsxXS50b1VwcGVyQ2FzZSgpLHNwZWNpYWxDYXNlcy5pbmRleE9mKHBbMV0udG9Mb3dlckNhc2UoKSk+LTEmJihwWzFdPWNhcGl0YWxpemUocFsxXS50b0xvd2VyQ2FzZSgpKSkpOjM9PT1wLmxlbmd0aCYmKHBbMF09cFswXS50b0xvd2VyQ2FzZSgpLDI9PT1wWzFdLmxlbmd0aCYmKHBbMV09cFsxXS50b1VwcGVyQ2FzZSgpKSwic2duIiE9PXBbMF0mJjI9PT1wWzJdLmxlbmd0aCYmKHBbMl09cFsyXS50b1VwcGVyQ2FzZSgpKSxzcGVjaWFsQ2FzZXMuaW5kZXhPZihwWzFdLnRvTG93ZXJDYXNlKCkpPi0xJiYocFsxXT1jYXBpdGFsaXplKHBbMV0udG9Mb3dlckNhc2UoKSkpLHNwZWNpYWxDYXNlcy5pbmRleE9mKHBbMl0udG9Mb3dlckNhc2UoKSk+LTEmJihwWzJdPWNhcGl0YWxpemUocFsyXS50b0xvd2VyQ2FzZSgpKSkpLHAuam9pbigiLSIpfXJldHVybiB0aGlzLm9wdGlvbnMuY2xlYW5Db2RlfHx0aGlzLm9wdGlvbnMubG93ZXJDYXNlTG5nP2NvZGUudG9Mb3dlckNhc2UoKTpjb2RlfX0se2tleToiaXNTdXBwb3J0ZWRDb2RlIix2YWx1ZTpmdW5jdGlvbihjb2RlKXtyZXR1cm4oImxhbmd1YWdlT25seSI9PT10aGlzLm9wdGlvbnMubG9hZHx8dGhpcy5vcHRpb25zLm5vbkV4cGxpY2l0U3VwcG9ydGVkTG5ncykmJihjb2RlPXRoaXMuZ2V0TGFuZ3VhZ2VQYXJ0RnJvbUNvZGUoY29kZSkpLCF0aGlzLnN1cHBvcnRlZExuZ3N8fCF0aGlzLnN1cHBvcnRlZExuZ3MubGVuZ3RofHx0aGlzLnN1cHBvcnRlZExuZ3MuaW5kZXhPZihjb2RlKT4tMX19LHtrZXk6ImdldEJlc3RNYXRjaEZyb21Db2RlcyIsdmFsdWU6ZnVuY3Rpb24oY29kZXMpe3ZhciBmb3VuZCxfdGhpcz10aGlzO3JldHVybiBjb2Rlcz8oY29kZXMuZm9yRWFjaChmdW5jdGlvbihjb2RlKXtpZighZm91bmQpe3ZhciBjbGVhbmVkTG5nPV90aGlzLmZvcm1hdExhbmd1YWdlQ29kZShjb2RlKTsoIV90aGlzLm9wdGlvbnMuc3VwcG9ydGVkTG5nc3x8X3RoaXMuaXNTdXBwb3J0ZWRDb2RlKGNsZWFuZWRMbmcpKSYmKGZvdW5kPWNsZWFuZWRMbmcpfX0pLCFmb3VuZCYmdGhpcy5vcHRpb25zLnN1cHBvcnRlZExuZ3MmJmNvZGVzLmZvckVhY2goZnVuY3Rpb24oY29kZSl7aWYoIWZvdW5kKXt2YXIgbG5nT25seT1fdGhpcy5nZXRMYW5ndWFnZVBhcnRGcm9tQ29kZShjb2RlKTtpZihfdGhpcy5pc1N1cHBvcnRlZENvZGUobG5nT25seSkpcmV0dXJuIGZvdW5kPWxuZ09ubHk7Zm91bmQ9X3RoaXMub3B0aW9ucy5zdXBwb3J0ZWRMbmdzLmZpbmQoZnVuY3Rpb24oc3VwcG9ydGVkTG5nKXtpZigwPT09c3VwcG9ydGVkTG5nLmluZGV4T2YobG5nT25seSkpcmV0dXJuIHN1cHBvcnRlZExuZ30pfX0pLGZvdW5kfHwoZm91bmQ9dGhpcy5nZXRGYWxsYmFja0NvZGVzKHRoaXMub3B0aW9ucy5mYWxsYmFja0xuZylbMF0pLGZvdW5kKTpudWxsfX0se2tleToiZ2V0RmFsbGJhY2tDb2RlcyIsdmFsdWU6ZnVuY3Rpb24oZmFsbGJhY2tzLGNvZGUpe2lmKCFmYWxsYmFja3MpcmV0dXJuW107aWYoImZ1bmN0aW9uIj09dHlwZW9mIGZhbGxiYWNrcyYmKGZhbGxiYWNrcz1mYWxsYmFja3MoY29kZSkpLCJzdHJpbmciPT10eXBlb2YgZmFsbGJhY2tzJiYoZmFsbGJhY2tzPVtmYWxsYmFja3NdKSwiW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseShmYWxsYmFja3MpKXJldHVybiBmYWxsYmFja3M7aWYoIWNvZGUpcmV0dXJuIGZhbGxiYWNrcy5kZWZhdWx0fHxbXTt2YXIgZm91bmQ9ZmFsbGJhY2tzW2NvZGVdO3JldHVybiBmb3VuZHx8KGZvdW5kPWZhbGxiYWNrc1t0aGlzLmdldFNjcmlwdFBhcnRGcm9tQ29kZShjb2RlKV0pLGZvdW5kfHwoZm91bmQ9ZmFsbGJhY2tzW3RoaXMuZm9ybWF0TGFuZ3VhZ2VDb2RlKGNvZGUpXSksZm91bmR8fChmb3VuZD1mYWxsYmFja3NbdGhpcy5nZXRMYW5ndWFnZVBhcnRGcm9tQ29kZShjb2RlKV0pLGZvdW5kfHwoZm91bmQ9ZmFsbGJhY2tzLmRlZmF1bHQpLGZvdW5kfHxbXX19LHtrZXk6InRvUmVzb2x2ZUhpZXJhcmNoeSIsdmFsdWU6ZnVuY3Rpb24oY29kZSxmYWxsYmFja0NvZGUpe3ZhciBfdGhpczI9dGhpcyxmYWxsYmFja0NvZGVzPXRoaXMuZ2V0RmFsbGJhY2tDb2RlcyhmYWxsYmFja0NvZGV8fHRoaXMub3B0aW9ucy5mYWxsYmFja0xuZ3x8W10sY29kZSksY29kZXM9W10sYWRkQ29kZT1mdW5jdGlvbihjKXtjJiYoX3RoaXMyLmlzU3VwcG9ydGVkQ29kZShjKT9jb2Rlcy5wdXNoKGMpOl90aGlzMi5sb2dnZXIud2FybigicmVqZWN0aW5nIGxhbmd1YWdlIGNvZGUgbm90IGZvdW5kIGluIHN1cHBvcnRlZExuZ3M6ICIuY29uY2F0KGMpKSl9O3JldHVybiJzdHJpbmciPT10eXBlb2YgY29kZSYmY29kZS5pbmRleE9mKCItIik+LTE/KCJsYW5ndWFnZU9ubHkiIT09dGhpcy5vcHRpb25zLmxvYWQmJmFkZENvZGUodGhpcy5mb3JtYXRMYW5ndWFnZUNvZGUoY29kZSkpLCJsYW5ndWFnZU9ubHkiIT09dGhpcy5vcHRpb25zLmxvYWQmJiJjdXJyZW50T25seSIhPT10aGlzLm9wdGlvbnMubG9hZCYmYWRkQ29kZSh0aGlzLmdldFNjcmlwdFBhcnRGcm9tQ29kZShjb2RlKSksImN1cnJlbnRPbmx5IiE9PXRoaXMub3B0aW9ucy5sb2FkJiZhZGRDb2RlKHRoaXMuZ2V0TGFuZ3VhZ2VQYXJ0RnJvbUNvZGUoY29kZSkpKToic3RyaW5nIj09dHlwZW9mIGNvZGUmJmFkZENvZGUodGhpcy5mb3JtYXRMYW5ndWFnZUNvZGUoY29kZSkpLGZhbGxiYWNrQ29kZXMuZm9yRWFjaChmdW5jdGlvbihmYyl7MD5jb2Rlcy5pbmRleE9mKGZjKSYmYWRkQ29kZShfdGhpczIuZm9ybWF0TGFuZ3VhZ2VDb2RlKGZjKSl9KSxjb2Rlc319XSksTGFuZ3VhZ2VVdGlsfSgpLHNldHM9W3tsbmdzOlsiYWNoIiwiYWsiLCJhbSIsImFybiIsImJyIiwiZmlsIiwiZ3VuIiwibG4iLCJtZmUiLCJtZyIsIm1pIiwib2MiLCJwdCIsInB0LUJSIiwidGciLCJ0bCIsInRpIiwidHIiLCJ1eiIsIndhIl0sbnI6WzEsMl0sZmM6MX0se2xuZ3M6WyJhZiIsImFuIiwiYXN0IiwiYXoiLCJiZyIsImJuIiwiY2EiLCJkYSIsImRlIiwiZGV2IiwiZWwiLCJlbiIsImVvIiwiZXMiLCJldCIsImV1IiwiZmkiLCJmbyIsImZ1ciIsImZ5IiwiZ2wiLCJndSIsImhhIiwiaGkiLCJodSIsImh5IiwiaWEiLCJpdCIsImtrIiwia24iLCJrdSIsImxiIiwibWFpIiwibWwiLCJtbiIsIm1yIiwibmFoIiwibmFwIiwibmIiLCJuZSIsIm5sIiwibm4iLCJubyIsIm5zbyIsInBhIiwicGFwIiwicG1zIiwicHMiLCJwdC1QVCIsInJtIiwic2NvIiwic2UiLCJzaSIsInNvIiwic29uIiwic3EiLCJzdiIsInN3IiwidGEiLCJ0ZSIsInRrIiwidXIiLCJ5byJdLG5yOlsxLDJdLGZjOjJ9LHtsbmdzOlsiYXkiLCJibyIsImNnZyIsImZhIiwiaHQiLCJpZCIsImphIiwiamJvIiwia2EiLCJrbSIsImtvIiwia3kiLCJsbyIsIm1zIiwic2FoIiwic3UiLCJ0aCIsInR0IiwidWciLCJ2aSIsIndvIiwiemgiXSxucjpbMV0sZmM6M30se2xuZ3M6WyJiZSIsImJzIiwiY25yIiwiZHoiLCJociIsInJ1Iiwic3IiLCJ1ayJdLG5yOlsxLDIsNV0sZmM6NH0se2xuZ3M6WyJhciJdLG5yOlswLDEsMiwzLDExLDEwMF0sZmM6NX0se2xuZ3M6WyJjcyIsInNrIl0sbnI6WzEsMiw1XSxmYzo2fSx7bG5nczpbImNzYiIsInBsIl0sbnI6WzEsMiw1XSxmYzo3fSx7bG5nczpbImN5Il0sbnI6WzEsMiwzLDhdLGZjOjh9LHtsbmdzOlsiZnIiXSxucjpbMSwyXSxmYzo5fSx7bG5nczpbImdhIl0sbnI6WzEsMiwzLDcsMTFdLGZjOjEwfSx7bG5nczpbImdkIl0sbnI6WzEsMiwzLDIwXSxmYzoxMX0se2xuZ3M6WyJpcyJdLG5yOlsxLDJdLGZjOjEyfSx7bG5nczpbImp2Il0sbnI6WzAsMV0sZmM6MTN9LHtsbmdzOlsia3ciXSxucjpbMSwyLDMsNF0sZmM6MTR9LHtsbmdzOlsibHQiXSxucjpbMSwyLDEwXSxmYzoxNX0se2xuZ3M6WyJsdiJdLG5yOlsxLDIsMF0sZmM6MTZ9LHtsbmdzOlsibWsiXSxucjpbMSwyXSxmYzoxN30se2xuZ3M6WyJtbmsiXSxucjpbMCwxLDJdLGZjOjE4fSx7bG5nczpbIm10Il0sbnI6WzEsMiwxMSwyMF0sZmM6MTl9LHtsbmdzOlsib3IiXSxucjpbMiwxXSxmYzoyfSx7bG5nczpbInJvIl0sbnI6WzEsMiwyMF0sZmM6MjB9LHtsbmdzOlsic2wiXSxucjpbNSwxLDIsM10sZmM6MjF9LHtsbmdzOlsiaGUiLCJpdyJdLG5yOlsxLDIsMjAsMjFdLGZjOjIyfV0sX3J1bGVzUGx1cmFsc1R5cGVzPXsxOmZ1bmN0aW9uKG4pe3JldHVybiBOdW1iZXIobj4xKX0sMjpmdW5jdGlvbihuKXtyZXR1cm4gTnVtYmVyKDEhPW4pfSwzOmZ1bmN0aW9uKG4pe3JldHVybiAwfSw0OmZ1bmN0aW9uKG4pe3JldHVybiBOdW1iZXIobiUxMD09MSYmbiUxMDAhPTExPzA6biUxMD49MiYmbiUxMDw9NCYmKG4lMTAwPDEwfHxuJTEwMD49MjApPzE6Mil9LDU6ZnVuY3Rpb24obil7cmV0dXJuIE51bWJlcigwPT1uPzA6MT09bj8xOjI9PW4/MjpuJTEwMD49MyYmbiUxMDA8PTEwPzM6biUxMDA+PTExPzQ6NSl9LDY6ZnVuY3Rpb24obil7cmV0dXJuIE51bWJlcigxPT1uPzA6bj49MiYmbjw9ND8xOjIpfSw3OmZ1bmN0aW9uKG4pe3JldHVybiBOdW1iZXIoMT09bj8wOm4lMTA+PTImJm4lMTA8PTQmJihuJTEwMDwxMHx8biUxMDA+PTIwKT8xOjIpfSw4OmZ1bmN0aW9uKG4pe3JldHVybiBOdW1iZXIoMT09bj8wOjI9PW4/MTo4IT1uJiYxMSE9bj8yOjMpfSw5OmZ1bmN0aW9uKG4pe3JldHVybiBOdW1iZXIobj49Mil9LDEwOmZ1bmN0aW9uKG4pe3JldHVybiBOdW1iZXIoMT09bj8wOjI9PW4/MTpuPDc/MjpuPDExPzM6NCl9LDExOmZ1bmN0aW9uKG4pe3JldHVybiBOdW1iZXIoMT09bnx8MTE9PW4/MDoyPT1ufHwxMj09bj8xOm4+MiYmbjwyMD8yOjMpfSwxMjpmdW5jdGlvbihuKXtyZXR1cm4gTnVtYmVyKG4lMTAhPTF8fG4lMTAwPT0xMSl9LDEzOmZ1bmN0aW9uKG4pe3JldHVybiBOdW1iZXIoMCE9PW4pfSwxNDpmdW5jdGlvbihuKXtyZXR1cm4gTnVtYmVyKDE9PW4/MDoyPT1uPzE6Mz09bj8yOjMpfSwxNTpmdW5jdGlvbihuKXtyZXR1cm4gTnVtYmVyKG4lMTA9PTEmJm4lMTAwIT0xMT8wOm4lMTA+PTImJihuJTEwMDwxMHx8biUxMDA+PTIwKT8xOjIpfSwxNjpmdW5jdGlvbihuKXtyZXR1cm4gTnVtYmVyKG4lMTA9PTEmJm4lMTAwIT0xMT8wOjAhPT1uPzE6Mil9LDE3OmZ1bmN0aW9uKG4pe3JldHVybiBOdW1iZXIoMT09bnx8biUxMD09MSYmbiUxMDAhPTExPzA6MSl9LDE4OmZ1bmN0aW9uKG4pe3JldHVybiBOdW1iZXIoMD09bj8wOjE9PW4/MToyKX0sMTk6ZnVuY3Rpb24obil7cmV0dXJuIE51bWJlcigxPT1uPzA6MD09bnx8biUxMDA+MSYmbiUxMDA8MTE/MTpuJTEwMD4xMCYmbiUxMDA8MjA/MjozKX0sMjA6ZnVuY3Rpb24obil7cmV0dXJuIE51bWJlcigxPT1uPzA6MD09bnx8biUxMDA+MCYmbiUxMDA8MjA/MToyKX0sMjE6ZnVuY3Rpb24obil7cmV0dXJuIE51bWJlcihuJTEwMD09MT8xOm4lMTAwPT0yPzI6biUxMDA9PTN8fG4lMTAwPT00PzM6MCl9LDIyOmZ1bmN0aW9uKG4pe3JldHVybiBOdW1iZXIoMT09bj8wOjI9PW4/MToobjwwfHxuPjEwKSYmbiUxMD09MD8yOjMpfX0sZGVwcmVjYXRlZEpzb25WZXJzaW9ucz1bInYxIiwidjIiLCJ2MyJdLHN1ZmZpeGVzT3JkZXI9e3plcm86MCxvbmU6MSx0d286MixmZXc6MyxtYW55OjQsb3RoZXI6NX0sUGx1cmFsUmVzb2x2ZXI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBQbHVyYWxSZXNvbHZlcihsYW5ndWFnZVV0aWxzKXt2YXIgcnVsZXMsb3B0aW9ucz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307KDAsX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fY2xhc3NDYWxsQ2hlY2tfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5aKSh0aGlzLFBsdXJhbFJlc29sdmVyKSx0aGlzLmxhbmd1YWdlVXRpbHM9bGFuZ3VhZ2VVdGlscyx0aGlzLm9wdGlvbnM9b3B0aW9ucyx0aGlzLmxvZ2dlcj1iYXNlTG9nZ2VyLmNyZWF0ZSgicGx1cmFsUmVzb2x2ZXIiKSx0aGlzLm9wdGlvbnMuY29tcGF0aWJpbGl0eUpTT04mJiJ2NCIhPT10aGlzLm9wdGlvbnMuY29tcGF0aWJpbGl0eUpTT058fCJ1bmRlZmluZWQiIT10eXBlb2YgSW50bCYmSW50bC5QbHVyYWxSdWxlc3x8KHRoaXMub3B0aW9ucy5jb21wYXRpYmlsaXR5SlNPTj0idjMiLHRoaXMubG9nZ2VyLmVycm9yKCJZb3VyIGVudmlyb25tZW50IHNlZW1zIG5vdCB0byBiZSBJbnRsIEFQSSBjb21wYXRpYmxlLCB1c2UgYW4gSW50bC5QbHVyYWxSdWxlcyBwb2x5ZmlsbC4gV2lsbCBmYWxsYmFjayB0byB0aGUgY29tcGF0aWJpbGl0eUpTT04gdjMgZm9ybWF0IGhhbmRsaW5nLiIpKSx0aGlzLnJ1bGVzPShydWxlcz17fSxzZXRzLmZvckVhY2goZnVuY3Rpb24oc2V0KXtzZXQubG5ncy5mb3JFYWNoKGZ1bmN0aW9uKGwpe3J1bGVzW2xdPXtudW1iZXJzOnNldC5ucixwbHVyYWxzOl9ydWxlc1BsdXJhbHNUeXBlc1tzZXQuZmNdfX0pfSkscnVsZXMpfXJldHVybigwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX2NyZWF0ZUNsYXNzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uWikoUGx1cmFsUmVzb2x2ZXIsW3trZXk6ImFkZFJ1bGUiLHZhbHVlOmZ1bmN0aW9uKGxuZyxvYmope3RoaXMucnVsZXNbbG5nXT1vYmp9fSx7a2V5OiJnZXRSdWxlIix2YWx1ZTpmdW5jdGlvbihjb2RlKXt2YXIgb3B0aW9ucz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307aWYodGhpcy5zaG91bGRVc2VJbnRsQXBpKCkpdHJ5e3JldHVybiBuZXcgSW50bC5QbHVyYWxSdWxlcyhjb2RlLHt0eXBlOm9wdGlvbnMub3JkaW5hbD8ib3JkaW5hbCI6ImNhcmRpbmFsIn0pfWNhdGNoKF91bnVzZWQpe3JldHVybn1yZXR1cm4gdGhpcy5ydWxlc1tjb2RlXXx8dGhpcy5ydWxlc1t0aGlzLmxhbmd1YWdlVXRpbHMuZ2V0TGFuZ3VhZ2VQYXJ0RnJvbUNvZGUoY29kZSldfX0se2tleToibmVlZHNQbHVyYWwiLHZhbHVlOmZ1bmN0aW9uKGNvZGUpe3ZhciBvcHRpb25zPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxydWxlPXRoaXMuZ2V0UnVsZShjb2RlLG9wdGlvbnMpO3JldHVybiB0aGlzLnNob3VsZFVzZUludGxBcGkoKT9ydWxlJiZydWxlLnJlc29sdmVkT3B0aW9ucygpLnBsdXJhbENhdGVnb3JpZXMubGVuZ3RoPjE6cnVsZSYmcnVsZS5udW1iZXJzLmxlbmd0aD4xfX0se2tleToiZ2V0UGx1cmFsRm9ybXNPZktleSIsdmFsdWU6ZnVuY3Rpb24oY29kZSxrZXkpe3ZhciBvcHRpb25zPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fTtyZXR1cm4gdGhpcy5nZXRTdWZmaXhlcyhjb2RlLG9wdGlvbnMpLm1hcChmdW5jdGlvbihzdWZmaXgpe3JldHVybiIiLmNvbmNhdChrZXkpLmNvbmNhdChzdWZmaXgpfSl9fSx7a2V5OiJnZXRTdWZmaXhlcyIsdmFsdWU6ZnVuY3Rpb24oY29kZSl7dmFyIF90aGlzPXRoaXMsb3B0aW9ucz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30scnVsZT10aGlzLmdldFJ1bGUoY29kZSxvcHRpb25zKTtyZXR1cm4gcnVsZT90aGlzLnNob3VsZFVzZUludGxBcGkoKT9ydWxlLnJlc29sdmVkT3B0aW9ucygpLnBsdXJhbENhdGVnb3JpZXMuc29ydChmdW5jdGlvbihwbHVyYWxDYXRlZ29yeTEscGx1cmFsQ2F0ZWdvcnkyKXtyZXR1cm4gc3VmZml4ZXNPcmRlcltwbHVyYWxDYXRlZ29yeTFdLXN1ZmZpeGVzT3JkZXJbcGx1cmFsQ2F0ZWdvcnkyXX0pLm1hcChmdW5jdGlvbihwbHVyYWxDYXRlZ29yeSl7cmV0dXJuIiIuY29uY2F0KF90aGlzLm9wdGlvbnMucHJlcGVuZCkuY29uY2F0KHBsdXJhbENhdGVnb3J5KX0pOnJ1bGUubnVtYmVycy5tYXAoZnVuY3Rpb24obnVtYmVyKXtyZXR1cm4gX3RoaXMuZ2V0U3VmZml4KGNvZGUsbnVtYmVyLG9wdGlvbnMpfSk6W119fSx7a2V5OiJnZXRTdWZmaXgiLHZhbHVlOmZ1bmN0aW9uKGNvZGUsY291bnQpe3ZhciBvcHRpb25zPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fSxydWxlPXRoaXMuZ2V0UnVsZShjb2RlLG9wdGlvbnMpO3JldHVybiBydWxlP3RoaXMuc2hvdWxkVXNlSW50bEFwaSgpPyIiLmNvbmNhdCh0aGlzLm9wdGlvbnMucHJlcGVuZCkuY29uY2F0KHJ1bGUuc2VsZWN0KGNvdW50KSk6dGhpcy5nZXRTdWZmaXhSZXRyb0NvbXBhdGlibGUocnVsZSxjb3VudCk6KHRoaXMubG9nZ2VyLndhcm4oIm5vIHBsdXJhbCBydWxlIGZvdW5kIGZvcjogIi5jb25jYXQoY29kZSkpLCIiKX19LHtrZXk6ImdldFN1ZmZpeFJldHJvQ29tcGF0aWJsZSIsdmFsdWU6ZnVuY3Rpb24ocnVsZSxjb3VudCl7dmFyIF90aGlzMj10aGlzLGlkeD1ydWxlLm5vQWJzP3J1bGUucGx1cmFscyhjb3VudCk6cnVsZS5wbHVyYWxzKE1hdGguYWJzKGNvdW50KSksc3VmZml4PXJ1bGUubnVtYmVyc1tpZHhdO3RoaXMub3B0aW9ucy5zaW1wbGlmeVBsdXJhbFN1ZmZpeCYmMj09PXJ1bGUubnVtYmVycy5sZW5ndGgmJjE9PT1ydWxlLm51bWJlcnNbMF0mJigyPT09c3VmZml4P3N1ZmZpeD0icGx1cmFsIjoxPT09c3VmZml4JiYoc3VmZml4PSIiKSk7dmFyIHJldHVyblN1ZmZpeD1mdW5jdGlvbigpe3JldHVybiBfdGhpczIub3B0aW9ucy5wcmVwZW5kJiZzdWZmaXgudG9TdHJpbmcoKT9fdGhpczIub3B0aW9ucy5wcmVwZW5kK3N1ZmZpeC50b1N0cmluZygpOnN1ZmZpeC50b1N0cmluZygpfTtyZXR1cm4idjEiPT09dGhpcy5vcHRpb25zLmNvbXBhdGliaWxpdHlKU09OPzE9PT1zdWZmaXg/IiI6Im51bWJlciI9PXR5cGVvZiBzdWZmaXg/Il9wbHVyYWxfIi5jb25jYXQoc3VmZml4LnRvU3RyaW5nKCkpOnJldHVyblN1ZmZpeCgpOiJ2MiI9PT10aGlzLm9wdGlvbnMuY29tcGF0aWJpbGl0eUpTT058fHRoaXMub3B0aW9ucy5zaW1wbGlmeVBsdXJhbFN1ZmZpeCYmMj09PXJ1bGUubnVtYmVycy5sZW5ndGgmJjE9PT1ydWxlLm51bWJlcnNbMF0/cmV0dXJuU3VmZml4KCk6dGhpcy5vcHRpb25zLnByZXBlbmQmJmlkeC50b1N0cmluZygpP3RoaXMub3B0aW9ucy5wcmVwZW5kK2lkeC50b1N0cmluZygpOmlkeC50b1N0cmluZygpfX0se2tleToic2hvdWxkVXNlSW50bEFwaSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hZGVwcmVjYXRlZEpzb25WZXJzaW9ucy5pbmNsdWRlcyh0aGlzLm9wdGlvbnMuY29tcGF0aWJpbGl0eUpTT04pfX1dKSxQbHVyYWxSZXNvbHZlcn0oKTtmdW5jdGlvbiBvd25LZXlzJDMob2JqZWN0LGVudW1lcmFibGVPbmx5KXt2YXIga2V5cz1PYmplY3Qua2V5cyhvYmplY3QpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBzeW1ib2xzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTtlbnVtZXJhYmxlT25seSYmKHN5bWJvbHM9c3ltYm9scy5maWx0ZXIoZnVuY3Rpb24oc3ltKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3Qsc3ltKS5lbnVtZXJhYmxlfSkpLGtleXMucHVzaC5hcHBseShrZXlzLHN5bWJvbHMpfXJldHVybiBrZXlzfWZ1bmN0aW9uIF9vYmplY3RTcHJlYWQkMyh0YXJnZXQpe2Zvcih2YXIgaT0xO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspe3ZhciBzb3VyY2U9bnVsbCE9YXJndW1lbnRzW2ldP2FyZ3VtZW50c1tpXTp7fTtpJTI/b3duS2V5cyQzKE9iamVjdChzb3VyY2UpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSl7KDAsX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fZGVmaW5lUHJvcGVydHlfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKSh0YXJnZXQsa2V5LHNvdXJjZVtrZXldKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKTpvd25LZXlzJDMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24oa2V5KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LGtleSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSxrZXkpKX0pfXJldHVybiB0YXJnZXR9dmFyIEludGVycG9sYXRvcj1mdW5jdGlvbigpe2Z1bmN0aW9uIEludGVycG9sYXRvcigpe3ZhciBvcHRpb25zPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTsoMCxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV9jbGFzc0NhbGxDaGVja19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlopKHRoaXMsSW50ZXJwb2xhdG9yKSx0aGlzLmxvZ2dlcj1iYXNlTG9nZ2VyLmNyZWF0ZSgiaW50ZXJwb2xhdG9yIiksdGhpcy5vcHRpb25zPW9wdGlvbnMsdGhpcy5mb3JtYXQ9b3B0aW9ucy5pbnRlcnBvbGF0aW9uJiZvcHRpb25zLmludGVycG9sYXRpb24uZm9ybWF0fHxmdW5jdGlvbih2YWx1ZSl7cmV0dXJuIHZhbHVlfSx0aGlzLmluaXQob3B0aW9ucyl9cmV0dXJuKDAsX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fY3JlYXRlQ2xhc3NfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5aKShJbnRlcnBvbGF0b3IsW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIG9wdGlvbnM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9O29wdGlvbnMuaW50ZXJwb2xhdGlvbnx8KG9wdGlvbnMuaW50ZXJwb2xhdGlvbj17ZXNjYXBlVmFsdWU6ITB9KTt2YXIgaU9wdHM9b3B0aW9ucy5pbnRlcnBvbGF0aW9uO3RoaXMuZXNjYXBlPXZvaWQgMCE9PWlPcHRzLmVzY2FwZT9pT3B0cy5lc2NhcGU6ZXNjYXBlLHRoaXMuZXNjYXBlVmFsdWU9dm9pZCAwPT09aU9wdHMuZXNjYXBlVmFsdWV8fGlPcHRzLmVzY2FwZVZhbHVlLHRoaXMudXNlUmF3VmFsdWVUb0VzY2FwZT12b2lkIDAhPT1pT3B0cy51c2VSYXdWYWx1ZVRvRXNjYXBlJiZpT3B0cy51c2VSYXdWYWx1ZVRvRXNjYXBlLHRoaXMucHJlZml4PWlPcHRzLnByZWZpeD9yZWdleEVzY2FwZShpT3B0cy5wcmVmaXgpOmlPcHRzLnByZWZpeEVzY2FwZWR8fCJ7eyIsdGhpcy5zdWZmaXg9aU9wdHMuc3VmZml4P3JlZ2V4RXNjYXBlKGlPcHRzLnN1ZmZpeCk6aU9wdHMuc3VmZml4RXNjYXBlZHx8In19Iix0aGlzLmZvcm1hdFNlcGFyYXRvcj1pT3B0cy5mb3JtYXRTZXBhcmF0b3I/aU9wdHMuZm9ybWF0U2VwYXJhdG9yOmlPcHRzLmZvcm1hdFNlcGFyYXRvcnx8IiwiLHRoaXMudW5lc2NhcGVQcmVmaXg9aU9wdHMudW5lc2NhcGVTdWZmaXg/IiI6aU9wdHMudW5lc2NhcGVQcmVmaXh8fCItIix0aGlzLnVuZXNjYXBlU3VmZml4PXRoaXMudW5lc2NhcGVQcmVmaXg/IiI6aU9wdHMudW5lc2NhcGVTdWZmaXh8fCIiLHRoaXMubmVzdGluZ1ByZWZpeD1pT3B0cy5uZXN0aW5nUHJlZml4P3JlZ2V4RXNjYXBlKGlPcHRzLm5lc3RpbmdQcmVmaXgpOmlPcHRzLm5lc3RpbmdQcmVmaXhFc2NhcGVkfHxyZWdleEVzY2FwZSgiJHQoIiksdGhpcy5uZXN0aW5nU3VmZml4PWlPcHRzLm5lc3RpbmdTdWZmaXg/cmVnZXhFc2NhcGUoaU9wdHMubmVzdGluZ1N1ZmZpeCk6aU9wdHMubmVzdGluZ1N1ZmZpeEVzY2FwZWR8fHJlZ2V4RXNjYXBlKCIpIiksdGhpcy5uZXN0aW5nT3B0aW9uc1NlcGFyYXRvcj1pT3B0cy5uZXN0aW5nT3B0aW9uc1NlcGFyYXRvcj9pT3B0cy5uZXN0aW5nT3B0aW9uc1NlcGFyYXRvcjppT3B0cy5uZXN0aW5nT3B0aW9uc1NlcGFyYXRvcnx8IiwiLHRoaXMubWF4UmVwbGFjZXM9aU9wdHMubWF4UmVwbGFjZXM/aU9wdHMubWF4UmVwbGFjZXM6MWUzLHRoaXMuYWx3YXlzRm9ybWF0PXZvaWQgMCE9PWlPcHRzLmFsd2F5c0Zvcm1hdCYmaU9wdHMuYWx3YXlzRm9ybWF0LHRoaXMucmVzZXRSZWdFeHAoKX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMub3B0aW9ucyYmdGhpcy5pbml0KHRoaXMub3B0aW9ucyl9fSx7a2V5OiJyZXNldFJlZ0V4cCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgcmVnZXhwU3RyPSIiLmNvbmNhdCh0aGlzLnByZWZpeCwiKC4rPykiKS5jb25jYXQodGhpcy5zdWZmaXgpO3RoaXMucmVnZXhwPVJlZ0V4cChyZWdleHBTdHIsImciKTt2YXIgcmVnZXhwVW5lc2NhcGVTdHI9IiIuY29uY2F0KHRoaXMucHJlZml4KS5jb25jYXQodGhpcy51bmVzY2FwZVByZWZpeCwiKC4rPykiKS5jb25jYXQodGhpcy51bmVzY2FwZVN1ZmZpeCkuY29uY2F0KHRoaXMuc3VmZml4KTt0aGlzLnJlZ2V4cFVuZXNjYXBlPVJlZ0V4cChyZWdleHBVbmVzY2FwZVN0ciwiZyIpO3ZhciBuZXN0aW5nUmVnZXhwU3RyPSIiLmNvbmNhdCh0aGlzLm5lc3RpbmdQcmVmaXgsIiguKz8pIikuY29uY2F0KHRoaXMubmVzdGluZ1N1ZmZpeCk7dGhpcy5uZXN0aW5nUmVnZXhwPVJlZ0V4cChuZXN0aW5nUmVnZXhwU3RyLCJnIil9fSx7a2V5OiJpbnRlcnBvbGF0ZSIsdmFsdWU6ZnVuY3Rpb24oc3RyLGRhdGEsbG5nLG9wdGlvbnMpe3ZhciBtYXRjaCx2YWx1ZSxyZXBsYWNlcyxfdGhpcz10aGlzLGRlZmF1bHREYXRhPXRoaXMub3B0aW9ucyYmdGhpcy5vcHRpb25zLmludGVycG9sYXRpb24mJnRoaXMub3B0aW9ucy5pbnRlcnBvbGF0aW9uLmRlZmF1bHRWYXJpYWJsZXN8fHt9O2Z1bmN0aW9uIHJlZ2V4U2FmZSh2YWwpe3JldHVybiB2YWwucmVwbGFjZSgvXCQvZywiJCQkJCIpfXZhciBoYW5kbGVGb3JtYXQ9ZnVuY3Rpb24oa2V5KXtpZigwPmtleS5pbmRleE9mKF90aGlzLmZvcm1hdFNlcGFyYXRvcikpe3ZhciBwYXRoPWdldFBhdGhXaXRoRGVmYXVsdHMoZGF0YSxkZWZhdWx0RGF0YSxrZXkpO3JldHVybiBfdGhpcy5hbHdheXNGb3JtYXQ/X3RoaXMuZm9ybWF0KHBhdGgsdm9pZCAwLGxuZyxfb2JqZWN0U3ByZWFkJDMoX29iamVjdFNwcmVhZCQzKF9vYmplY3RTcHJlYWQkMyh7fSxvcHRpb25zKSxkYXRhKSx7fSx7aW50ZXJwb2xhdGlvbmtleTprZXl9KSk6cGF0aH12YXIgcD1rZXkuc3BsaXQoX3RoaXMuZm9ybWF0U2VwYXJhdG9yKSxrPXAuc2hpZnQoKS50cmltKCksZj1wLmpvaW4oX3RoaXMuZm9ybWF0U2VwYXJhdG9yKS50cmltKCk7cmV0dXJuIF90aGlzLmZvcm1hdChnZXRQYXRoV2l0aERlZmF1bHRzKGRhdGEsZGVmYXVsdERhdGEsayksZixsbmcsX29iamVjdFNwcmVhZCQzKF9vYmplY3RTcHJlYWQkMyhfb2JqZWN0U3ByZWFkJDMoe30sb3B0aW9ucyksZGF0YSkse30se2ludGVycG9sYXRpb25rZXk6a30pKX07dGhpcy5yZXNldFJlZ0V4cCgpO3ZhciBtaXNzaW5nSW50ZXJwb2xhdGlvbkhhbmRsZXI9b3B0aW9ucyYmb3B0aW9ucy5taXNzaW5nSW50ZXJwb2xhdGlvbkhhbmRsZXJ8fHRoaXMub3B0aW9ucy5taXNzaW5nSW50ZXJwb2xhdGlvbkhhbmRsZXIsc2tpcE9uVmFyaWFibGVzPW9wdGlvbnMmJm9wdGlvbnMuaW50ZXJwb2xhdGlvbiYmdm9pZCAwIT09b3B0aW9ucy5pbnRlcnBvbGF0aW9uLnNraXBPblZhcmlhYmxlcz9vcHRpb25zLmludGVycG9sYXRpb24uc2tpcE9uVmFyaWFibGVzOnRoaXMub3B0aW9ucy5pbnRlcnBvbGF0aW9uLnNraXBPblZhcmlhYmxlcztyZXR1cm5be3JlZ2V4OnRoaXMucmVnZXhwVW5lc2NhcGUsc2FmZVZhbHVlOmZ1bmN0aW9uKHZhbCl7cmV0dXJuIHJlZ2V4U2FmZSh2YWwpfX0se3JlZ2V4OnRoaXMucmVnZXhwLHNhZmVWYWx1ZTpmdW5jdGlvbih2YWwpe3JldHVybiBfdGhpcy5lc2NhcGVWYWx1ZT9yZWdleFNhZmUoX3RoaXMuZXNjYXBlKHZhbCkpOnJlZ2V4U2FmZSh2YWwpfX1dLmZvckVhY2goZnVuY3Rpb24odG9kbyl7Zm9yKHJlcGxhY2VzPTA7bWF0Y2g9dG9kby5yZWdleC5leGVjKHN0cik7KXt2YXIgbWF0Y2hlZFZhcj1tYXRjaFsxXS50cmltKCk7aWYodm9pZCAwPT09KHZhbHVlPWhhbmRsZUZvcm1hdChtYXRjaGVkVmFyKSkpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBtaXNzaW5nSW50ZXJwb2xhdGlvbkhhbmRsZXIpe3ZhciB0ZW1wPW1pc3NpbmdJbnRlcnBvbGF0aW9uSGFuZGxlcihzdHIsbWF0Y2gsb3B0aW9ucyk7dmFsdWU9InN0cmluZyI9PXR5cGVvZiB0ZW1wP3RlbXA6IiJ9ZWxzZSBpZihvcHRpb25zJiZvcHRpb25zLmhhc093blByb3BlcnR5KG1hdGNoZWRWYXIpKXZhbHVlPSIiO2Vsc2UgaWYoc2tpcE9uVmFyaWFibGVzKXt2YWx1ZT1tYXRjaFswXTtjb250aW51ZX1lbHNlIF90aGlzLmxvZ2dlci53YXJuKCJtaXNzZWQgdG8gcGFzcyBpbiB2YXJpYWJsZSAiLmNvbmNhdChtYXRjaGVkVmFyLCIgZm9yIGludGVycG9sYXRpbmcgIikuY29uY2F0KHN0cikpLHZhbHVlPSIifWVsc2Uic3RyaW5nIj09dHlwZW9mIHZhbHVlfHxfdGhpcy51c2VSYXdWYWx1ZVRvRXNjYXBlfHwodmFsdWU9bWFrZVN0cmluZyh2YWx1ZSkpO3ZhciBzYWZlVmFsdWU9dG9kby5zYWZlVmFsdWUodmFsdWUpO2lmKHN0cj1zdHIucmVwbGFjZShtYXRjaFswXSxzYWZlVmFsdWUpLHNraXBPblZhcmlhYmxlcz8odG9kby5yZWdleC5sYXN0SW5kZXgrPXZhbHVlLmxlbmd0aCx0b2RvLnJlZ2V4Lmxhc3RJbmRleC09bWF0Y2hbMF0ubGVuZ3RoKTp0b2RvLnJlZ2V4Lmxhc3RJbmRleD0wLCsrcmVwbGFjZXM+PV90aGlzLm1heFJlcGxhY2VzKWJyZWFrfX0pLHN0cn19LHtrZXk6Im5lc3QiLHZhbHVlOmZ1bmN0aW9uKHN0cixmYyl7dmFyIG1hdGNoLHZhbHVlLF90aGlzMj10aGlzLG9wdGlvbnM9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9LGNsb25lZE9wdGlvbnM9X29iamVjdFNwcmVhZCQzKHt9LG9wdGlvbnMpO2Z1bmN0aW9uIGhhbmRsZUhhc09wdGlvbnMoa2V5LGluaGVyaXRlZE9wdGlvbnMpe3ZhciBzZXA9dGhpcy5uZXN0aW5nT3B0aW9uc1NlcGFyYXRvcjtpZigwPmtleS5pbmRleE9mKHNlcCkpcmV0dXJuIGtleTt2YXIgYz1rZXkuc3BsaXQoUmVnRXhwKCIiLmNvbmNhdChzZXAsIlsgXSp7IikpKSxvcHRpb25zU3RyaW5nPSJ7Ii5jb25jYXQoY1sxXSk7a2V5PWNbMF07dmFyIG1hdGNoZWRTaW5nbGVRdW90ZXM9KG9wdGlvbnNTdHJpbmc9dGhpcy5pbnRlcnBvbGF0ZShvcHRpb25zU3RyaW5nLGNsb25lZE9wdGlvbnMpKS5tYXRjaCgvJy9nKSxtYXRjaGVkRG91YmxlUXVvdGVzPW9wdGlvbnNTdHJpbmcubWF0Y2goLyIvZyk7KG1hdGNoZWRTaW5nbGVRdW90ZXMmJm1hdGNoZWRTaW5nbGVRdW90ZXMubGVuZ3RoJTI9PTAmJiFtYXRjaGVkRG91YmxlUXVvdGVzfHxtYXRjaGVkRG91YmxlUXVvdGVzLmxlbmd0aCUyIT0wKSYmKG9wdGlvbnNTdHJpbmc9b3B0aW9uc1N0cmluZy5yZXBsYWNlKC8nL2csJyInKSk7dHJ5e2Nsb25lZE9wdGlvbnM9SlNPTi5wYXJzZShvcHRpb25zU3RyaW5nKSxpbmhlcml0ZWRPcHRpb25zJiYoY2xvbmVkT3B0aW9ucz1fb2JqZWN0U3ByZWFkJDMoX29iamVjdFNwcmVhZCQzKHt9LGluaGVyaXRlZE9wdGlvbnMpLGNsb25lZE9wdGlvbnMpKX1jYXRjaChlKXtyZXR1cm4gdGhpcy5sb2dnZXIud2FybigiZmFpbGVkIHBhcnNpbmcgb3B0aW9ucyBzdHJpbmcgaW4gbmVzdGluZyBmb3Iga2V5ICIuY29uY2F0KGtleSksZSksIiIuY29uY2F0KGtleSkuY29uY2F0KHNlcCkuY29uY2F0KG9wdGlvbnNTdHJpbmcpfXJldHVybiBkZWxldGUgY2xvbmVkT3B0aW9ucy5kZWZhdWx0VmFsdWUsa2V5fWZvcihjbG9uZWRPcHRpb25zLmFwcGx5UG9zdFByb2Nlc3Nvcj0hMSxkZWxldGUgY2xvbmVkT3B0aW9ucy5kZWZhdWx0VmFsdWU7bWF0Y2g9dGhpcy5uZXN0aW5nUmVnZXhwLmV4ZWMoc3RyKTspe3ZhciBmb3JtYXR0ZXJzPVtdLGRvUmVkdWNlPSExO2lmKC0xIT09bWF0Y2hbMF0uaW5kZXhPZih0aGlzLmZvcm1hdFNlcGFyYXRvcikmJiEvey4qfS8udGVzdChtYXRjaFsxXSkpe3ZhciByPW1hdGNoWzFdLnNwbGl0KHRoaXMuZm9ybWF0U2VwYXJhdG9yKS5tYXAoZnVuY3Rpb24oZWxlbSl7cmV0dXJuIGVsZW0udHJpbSgpfSk7bWF0Y2hbMV09ci5zaGlmdCgpLGZvcm1hdHRlcnM9cixkb1JlZHVjZT0hMH1pZigodmFsdWU9ZmMoaGFuZGxlSGFzT3B0aW9ucy5jYWxsKHRoaXMsbWF0Y2hbMV0udHJpbSgpLGNsb25lZE9wdGlvbnMpLGNsb25lZE9wdGlvbnMpKSYmbWF0Y2hbMF09PT1zdHImJiJzdHJpbmciIT10eXBlb2YgdmFsdWUpcmV0dXJuIHZhbHVlOyJzdHJpbmciIT10eXBlb2YgdmFsdWUmJih2YWx1ZT1tYWtlU3RyaW5nKHZhbHVlKSksdmFsdWV8fCh0aGlzLmxvZ2dlci53YXJuKCJtaXNzZWQgdG8gcmVzb2x2ZSAiLmNvbmNhdChtYXRjaFsxXSwiIGZvciBuZXN0aW5nICIpLmNvbmNhdChzdHIpKSx2YWx1ZT0iIiksZG9SZWR1Y2UmJih2YWx1ZT1mb3JtYXR0ZXJzLnJlZHVjZShmdW5jdGlvbih2LGYpe3JldHVybiBfdGhpczIuZm9ybWF0KHYsZixvcHRpb25zLmxuZyxfb2JqZWN0U3ByZWFkJDMoX29iamVjdFNwcmVhZCQzKHt9LG9wdGlvbnMpLHt9LHtpbnRlcnBvbGF0aW9ua2V5Om1hdGNoWzFdLnRyaW0oKX0pKX0sdmFsdWUudHJpbSgpKSksc3RyPXN0ci5yZXBsYWNlKG1hdGNoWzBdLHZhbHVlKSx0aGlzLnJlZ2V4cC5sYXN0SW5kZXg9MH1yZXR1cm4gc3RyfX1dKSxJbnRlcnBvbGF0b3J9KCk7ZnVuY3Rpb24gb3duS2V5cyQ0KG9iamVjdCxlbnVtZXJhYmxlT25seSl7dmFyIGtleXM9T2JqZWN0LmtleXMob2JqZWN0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgc3ltYm9scz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCk7ZW51bWVyYWJsZU9ubHkmJihzeW1ib2xzPXN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uKHN5bSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LHN5bSkuZW51bWVyYWJsZX0pKSxrZXlzLnB1c2guYXBwbHkoa2V5cyxzeW1ib2xzKX1yZXR1cm4ga2V5c31mdW5jdGlvbiBfb2JqZWN0U3ByZWFkJDQodGFyZ2V0KXtmb3IodmFyIGk9MTtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXt2YXIgc291cmNlPW51bGwhPWFyZ3VtZW50c1tpXT9hcmd1bWVudHNbaV06e307aSUyP293bktleXMkNChPYmplY3Qoc291cmNlKSwhMCkuZm9yRWFjaChmdW5jdGlvbihrZXkpeygwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX2RlZmluZVByb3BlcnR5X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uWikodGFyZ2V0LGtleSxzb3VyY2Vba2V5XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk6b3duS2V5cyQ0KE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCxrZXksT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2Usa2V5KSl9KX1yZXR1cm4gdGFyZ2V0fWZ1bmN0aW9uIGNyZWF0ZUNhY2hlZEZvcm1hdHRlcihmbil7dmFyIGNhY2hlPXt9O3JldHVybiBmdW5jdGlvbih2YWwsbG5nLG9wdGlvbnMpe3ZhciBrZXk9bG5nK0pTT04uc3RyaW5naWZ5KG9wdGlvbnMpLGZvcm1hdHRlcj1jYWNoZVtrZXldO3JldHVybiBmb3JtYXR0ZXJ8fChmb3JtYXR0ZXI9Zm4obG5nLG9wdGlvbnMpLGNhY2hlW2tleV09Zm9ybWF0dGVyKSxmb3JtYXR0ZXIodmFsKX19dmFyIEZvcm1hdHRlcj1mdW5jdGlvbigpe2Z1bmN0aW9uIEZvcm1hdHRlcigpe3ZhciBvcHRpb25zPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTsoMCxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV9jbGFzc0NhbGxDaGVja19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlopKHRoaXMsRm9ybWF0dGVyKSx0aGlzLmxvZ2dlcj1iYXNlTG9nZ2VyLmNyZWF0ZSgiZm9ybWF0dGVyIiksdGhpcy5vcHRpb25zPW9wdGlvbnMsdGhpcy5mb3JtYXRzPXtudW1iZXI6Y3JlYXRlQ2FjaGVkRm9ybWF0dGVyKGZ1bmN0aW9uKGxuZyxvcHRpb25zKXt2YXIgZm9ybWF0dGVyPW5ldyBJbnRsLk51bWJlckZvcm1hdChsbmcsb3B0aW9ucyk7cmV0dXJuIGZ1bmN0aW9uKHZhbCl7cmV0dXJuIGZvcm1hdHRlci5mb3JtYXQodmFsKX19KSxjdXJyZW5jeTpjcmVhdGVDYWNoZWRGb3JtYXR0ZXIoZnVuY3Rpb24obG5nLG9wdGlvbnMpe3ZhciBmb3JtYXR0ZXI9bmV3IEludGwuTnVtYmVyRm9ybWF0KGxuZyxfb2JqZWN0U3ByZWFkJDQoX29iamVjdFNwcmVhZCQ0KHt9LG9wdGlvbnMpLHt9LHtzdHlsZToiY3VycmVuY3kifSkpO3JldHVybiBmdW5jdGlvbih2YWwpe3JldHVybiBmb3JtYXR0ZXIuZm9ybWF0KHZhbCl9fSksZGF0ZXRpbWU6Y3JlYXRlQ2FjaGVkRm9ybWF0dGVyKGZ1bmN0aW9uKGxuZyxvcHRpb25zKXt2YXIgZm9ybWF0dGVyPW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxuZyxfb2JqZWN0U3ByZWFkJDQoe30sb3B0aW9ucykpO3JldHVybiBmdW5jdGlvbih2YWwpe3JldHVybiBmb3JtYXR0ZXIuZm9ybWF0KHZhbCl9fSkscmVsYXRpdmV0aW1lOmNyZWF0ZUNhY2hlZEZvcm1hdHRlcihmdW5jdGlvbihsbmcsb3B0aW9ucyl7dmFyIGZvcm1hdHRlcj1uZXcgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQobG5nLF9vYmplY3RTcHJlYWQkNCh7fSxvcHRpb25zKSk7cmV0dXJuIGZ1bmN0aW9uKHZhbCl7cmV0dXJuIGZvcm1hdHRlci5mb3JtYXQodmFsLG9wdGlvbnMucmFuZ2V8fCJkYXkiKX19KSxsaXN0OmNyZWF0ZUNhY2hlZEZvcm1hdHRlcihmdW5jdGlvbihsbmcsb3B0aW9ucyl7dmFyIGZvcm1hdHRlcj1uZXcgSW50bC5MaXN0Rm9ybWF0KGxuZyxfb2JqZWN0U3ByZWFkJDQoe30sb3B0aW9ucykpO3JldHVybiBmdW5jdGlvbih2YWwpe3JldHVybiBmb3JtYXR0ZXIuZm9ybWF0KHZhbCl9fSl9LHRoaXMuaW5pdChvcHRpb25zKX1yZXR1cm4oMCxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV9jcmVhdGVDbGFzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLlopKEZvcm1hdHRlcixbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oc2VydmljZXMpe3ZhciBvcHRpb25zPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7aW50ZXJwb2xhdGlvbjp7fX0saU9wdHM9b3B0aW9ucy5pbnRlcnBvbGF0aW9uO3RoaXMuZm9ybWF0U2VwYXJhdG9yPWlPcHRzLmZvcm1hdFNlcGFyYXRvcj9pT3B0cy5mb3JtYXRTZXBhcmF0b3I6aU9wdHMuZm9ybWF0U2VwYXJhdG9yfHwiLCJ9fSx7a2V5OiJhZGQiLHZhbHVlOmZ1bmN0aW9uKG5hbWUsZmMpe3RoaXMuZm9ybWF0c1tuYW1lLnRvTG93ZXJDYXNlKCkudHJpbSgpXT1mY319LHtrZXk6ImFkZENhY2hlZCIsdmFsdWU6ZnVuY3Rpb24obmFtZSxmYyl7dGhpcy5mb3JtYXRzW25hbWUudG9Mb3dlckNhc2UoKS50cmltKCldPWNyZWF0ZUNhY2hlZEZvcm1hdHRlcihmYyl9fSx7a2V5OiJmb3JtYXQiLHZhbHVlOmZ1bmN0aW9uKHZhbHVlLF9mb3JtYXQsbG5nLG9wdGlvbnMpe3ZhciBfdGhpcz10aGlzO3JldHVybiBfZm9ybWF0LnNwbGl0KHRoaXMuZm9ybWF0U2VwYXJhdG9yKS5yZWR1Y2UoZnVuY3Rpb24obWVtLGYpe3ZhciBfcGFyc2VGb3JtYXRTdHI9ZnVuY3Rpb24oZm9ybWF0U3RyKXt2YXIgZm9ybWF0TmFtZT1mb3JtYXRTdHIudG9Mb3dlckNhc2UoKS50cmltKCksZm9ybWF0T3B0aW9ucz17fTtpZihmb3JtYXRTdHIuaW5kZXhPZigiKCIpPi0xKXt2YXIgcD1mb3JtYXRTdHIuc3BsaXQoIigiKTtmb3JtYXROYW1lPXBbMF0udG9Mb3dlckNhc2UoKS50cmltKCk7dmFyIG9wdFN0cj1wWzFdLnN1YnN0cmluZygwLHBbMV0ubGVuZ3RoLTEpOyJjdXJyZW5jeSI9PT1mb3JtYXROYW1lJiYwPm9wdFN0ci5pbmRleE9mKCI6Iik/Zm9ybWF0T3B0aW9ucy5jdXJyZW5jeXx8KGZvcm1hdE9wdGlvbnMuY3VycmVuY3k9b3B0U3RyLnRyaW0oKSk6InJlbGF0aXZldGltZSI9PT1mb3JtYXROYW1lJiYwPm9wdFN0ci5pbmRleE9mKCI6Iik/Zm9ybWF0T3B0aW9ucy5yYW5nZXx8KGZvcm1hdE9wdGlvbnMucmFuZ2U9b3B0U3RyLnRyaW0oKSk6b3B0U3RyLnNwbGl0KCI7IikuZm9yRWFjaChmdW5jdGlvbihvcHQpe2lmKG9wdCl7dmFyIF9vcHQkc3BsaXQ9b3B0LnNwbGl0KCI6IiksX29wdCRzcGxpdDI9KDAsX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fdG9BcnJheV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLlopKF9vcHQkc3BsaXQpLGtleT1fb3B0JHNwbGl0MlswXSx2YWw9X29wdCRzcGxpdDIuc2xpY2UoMSkuam9pbigiOiIpLnRyaW0oKS5yZXBsYWNlKC9eJyt8JyskL2csIiIpO2Zvcm1hdE9wdGlvbnNba2V5LnRyaW0oKV18fChmb3JtYXRPcHRpb25zW2tleS50cmltKCldPXZhbCksImZhbHNlIj09PXZhbCYmKGZvcm1hdE9wdGlvbnNba2V5LnRyaW0oKV09ITEpLCJ0cnVlIj09PXZhbCYmKGZvcm1hdE9wdGlvbnNba2V5LnRyaW0oKV09ITApLGlzTmFOKHZhbCl8fChmb3JtYXRPcHRpb25zW2tleS50cmltKCldPXBhcnNlSW50KHZhbCwxMCkpfX0pfXJldHVybntmb3JtYXROYW1lOmZvcm1hdE5hbWUsZm9ybWF0T3B0aW9uczpmb3JtYXRPcHRpb25zfX0oZiksZm9ybWF0TmFtZT1fcGFyc2VGb3JtYXRTdHIuZm9ybWF0TmFtZSxmb3JtYXRPcHRpb25zPV9wYXJzZUZvcm1hdFN0ci5mb3JtYXRPcHRpb25zO2lmKF90aGlzLmZvcm1hdHNbZm9ybWF0TmFtZV0pe3ZhciBmb3JtYXR0ZWQ9bWVtO3RyeXt2YXIgdmFsT3B0aW9ucz1vcHRpb25zJiZvcHRpb25zLmZvcm1hdFBhcmFtcyYmb3B0aW9ucy5mb3JtYXRQYXJhbXNbb3B0aW9ucy5pbnRlcnBvbGF0aW9ua2V5XXx8e30sbD12YWxPcHRpb25zLmxvY2FsZXx8dmFsT3B0aW9ucy5sbmd8fG9wdGlvbnMubG9jYWxlfHxvcHRpb25zLmxuZ3x8bG5nO2Zvcm1hdHRlZD1fdGhpcy5mb3JtYXRzW2Zvcm1hdE5hbWVdKG1lbSxsLF9vYmplY3RTcHJlYWQkNChfb2JqZWN0U3ByZWFkJDQoX29iamVjdFNwcmVhZCQ0KHt9LGZvcm1hdE9wdGlvbnMpLG9wdGlvbnMpLHZhbE9wdGlvbnMpKX1jYXRjaChlcnJvcil7X3RoaXMubG9nZ2VyLndhcm4oZXJyb3IpfXJldHVybiBmb3JtYXR0ZWR9cmV0dXJuIF90aGlzLmxvZ2dlci53YXJuKCJ0aGVyZSB3YXMgbm8gZm9ybWF0IGZ1bmN0aW9uIGZvciAiLmNvbmNhdChmb3JtYXROYW1lKSksbWVtfSx2YWx1ZSl9fV0pLEZvcm1hdHRlcn0oKTtmdW5jdGlvbiBvd25LZXlzJDUob2JqZWN0LGVudW1lcmFibGVPbmx5KXt2YXIga2V5cz1PYmplY3Qua2V5cyhvYmplY3QpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBzeW1ib2xzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTtlbnVtZXJhYmxlT25seSYmKHN5bWJvbHM9c3ltYm9scy5maWx0ZXIoZnVuY3Rpb24oc3ltKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3Qsc3ltKS5lbnVtZXJhYmxlfSkpLGtleXMucHVzaC5hcHBseShrZXlzLHN5bWJvbHMpfXJldHVybiBrZXlzfWZ1bmN0aW9uIF9vYmplY3RTcHJlYWQkNSh0YXJnZXQpe2Zvcih2YXIgaT0xO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspe3ZhciBzb3VyY2U9bnVsbCE9YXJndW1lbnRzW2ldP2FyZ3VtZW50c1tpXTp7fTtpJTI/b3duS2V5cyQ1KE9iamVjdChzb3VyY2UpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSl7KDAsX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fZGVmaW5lUHJvcGVydHlfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKSh0YXJnZXQsa2V5LHNvdXJjZVtrZXldKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKTpvd25LZXlzJDUoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24oa2V5KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LGtleSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSxrZXkpKX0pfXJldHVybiB0YXJnZXR9dmFyIENvbm5lY3Rvcj1mdW5jdGlvbihfRXZlbnRFbWl0dGVyKXsoMCxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV9pbmhlcml0c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLlopKENvbm5lY3RvcixfRXZlbnRFbWl0dGVyKTt2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCxfc3VwZXI9KGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3Q9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCksZnVuY3Rpb24oKXt2YXIgcmVzdWx0LFN1cGVyPSgwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX2dldFByb3RvdHlwZU9mX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uWikoQ29ubmVjdG9yKTtpZihoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KXt2YXIgTmV3VGFyZ2V0PSgwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX2dldFByb3RvdHlwZU9mX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uWikodGhpcykuY29uc3RydWN0b3I7cmVzdWx0PVJlZmxlY3QuY29uc3RydWN0KFN1cGVyLGFyZ3VtZW50cyxOZXdUYXJnZXQpfWVsc2UgcmVzdWx0PVN1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4oMCxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uWikodGhpcyxyZXN1bHQpfSk7ZnVuY3Rpb24gQ29ubmVjdG9yKGJhY2tlbmQsc3RvcmUsc2VydmljZXMpe3ZhciBfdGhpcyxvcHRpb25zPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTp7fTtyZXR1cm4oMCxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV9jbGFzc0NhbGxDaGVja19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlopKHRoaXMsQ29ubmVjdG9yKSxfdGhpcz1fc3VwZXIuY2FsbCh0aGlzKSxpc0lFMTAmJkV2ZW50RW1pdHRlci5jYWxsKCgwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX2Fzc2VydFRoaXNJbml0aWFsaXplZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLlopKF90aGlzKSksX3RoaXMuYmFja2VuZD1iYWNrZW5kLF90aGlzLnN0b3JlPXN0b3JlLF90aGlzLnNlcnZpY2VzPXNlcnZpY2VzLF90aGlzLmxhbmd1YWdlVXRpbHM9c2VydmljZXMubGFuZ3VhZ2VVdGlscyxfdGhpcy5vcHRpb25zPW9wdGlvbnMsX3RoaXMubG9nZ2VyPWJhc2VMb2dnZXIuY3JlYXRlKCJiYWNrZW5kQ29ubmVjdG9yIiksX3RoaXMud2FpdGluZ1JlYWRzPVtdLF90aGlzLm1heFBhcmFsbGVsUmVhZHM9b3B0aW9ucy5tYXhQYXJhbGxlbFJlYWRzfHwxMCxfdGhpcy5yZWFkaW5nQ2FsbHM9MCxfdGhpcy5tYXhSZXRyaWVzPW9wdGlvbnMubWF4UmV0cmllcz49MD9vcHRpb25zLm1heFJldHJpZXM6NSxfdGhpcy5yZXRyeVRpbWVvdXQ9b3B0aW9ucy5yZXRyeVRpbWVvdXQ+PTE/b3B0aW9ucy5yZXRyeVRpbWVvdXQ6MzUwLF90aGlzLnN0YXRlPXt9LF90aGlzLnF1ZXVlPVtdLF90aGlzLmJhY2tlbmQmJl90aGlzLmJhY2tlbmQuaW5pdCYmX3RoaXMuYmFja2VuZC5pbml0KHNlcnZpY2VzLG9wdGlvbnMuYmFja2VuZCxvcHRpb25zKSxfdGhpc31yZXR1cm4oMCxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV9jcmVhdGVDbGFzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLlopKENvbm5lY3Rvcixbe2tleToicXVldWVMb2FkIix2YWx1ZTpmdW5jdGlvbihsYW5ndWFnZXMsbmFtZXNwYWNlcyxvcHRpb25zLGNhbGxiYWNrKXt2YXIgX3RoaXMyPXRoaXMsdG9Mb2FkPXt9LHBlbmRpbmc9e30sdG9Mb2FkTGFuZ3VhZ2VzPXt9LHRvTG9hZE5hbWVzcGFjZXM9e307cmV0dXJuIGxhbmd1YWdlcy5mb3JFYWNoKGZ1bmN0aW9uKGxuZyl7dmFyIGhhc0FsbE5hbWVzcGFjZXM9ITA7bmFtZXNwYWNlcy5mb3JFYWNoKGZ1bmN0aW9uKG5zKXt2YXIgbmFtZT0iIi5jb25jYXQobG5nLCJ8IikuY29uY2F0KG5zKTshb3B0aW9ucy5yZWxvYWQmJl90aGlzMi5zdG9yZS5oYXNSZXNvdXJjZUJ1bmRsZShsbmcsbnMpP190aGlzMi5zdGF0ZVtuYW1lXT0yOl90aGlzMi5zdGF0ZVtuYW1lXTwwfHwoMT09PV90aGlzMi5zdGF0ZVtuYW1lXT92b2lkIDA9PT1wZW5kaW5nW25hbWVdJiYocGVuZGluZ1tuYW1lXT0hMCk6KF90aGlzMi5zdGF0ZVtuYW1lXT0xLGhhc0FsbE5hbWVzcGFjZXM9ITEsdm9pZCAwPT09cGVuZGluZ1tuYW1lXSYmKHBlbmRpbmdbbmFtZV09ITApLHZvaWQgMD09PXRvTG9hZFtuYW1lXSYmKHRvTG9hZFtuYW1lXT0hMCksdm9pZCAwPT09dG9Mb2FkTmFtZXNwYWNlc1tuc10mJih0b0xvYWROYW1lc3BhY2VzW25zXT0hMCkpKX0pLGhhc0FsbE5hbWVzcGFjZXN8fCh0b0xvYWRMYW5ndWFnZXNbbG5nXT0hMCl9KSwoT2JqZWN0LmtleXModG9Mb2FkKS5sZW5ndGh8fE9iamVjdC5rZXlzKHBlbmRpbmcpLmxlbmd0aCkmJnRoaXMucXVldWUucHVzaCh7cGVuZGluZzpwZW5kaW5nLHBlbmRpbmdDb3VudDpPYmplY3Qua2V5cyhwZW5kaW5nKS5sZW5ndGgsbG9hZGVkOnt9LGVycm9yczpbXSxjYWxsYmFjazpjYWxsYmFja30pLHt0b0xvYWQ6T2JqZWN0LmtleXModG9Mb2FkKSxwZW5kaW5nOk9iamVjdC5rZXlzKHBlbmRpbmcpLHRvTG9hZExhbmd1YWdlczpPYmplY3Qua2V5cyh0b0xvYWRMYW5ndWFnZXMpLHRvTG9hZE5hbWVzcGFjZXM6T2JqZWN0LmtleXModG9Mb2FkTmFtZXNwYWNlcyl9fX0se2tleToibG9hZGVkIix2YWx1ZTpmdW5jdGlvbihuYW1lLGVycixkYXRhKXt2YXIgcz1uYW1lLnNwbGl0KCJ8IiksbG5nPXNbMF0sbnM9c1sxXTtlcnImJnRoaXMuZW1pdCgiZmFpbGVkTG9hZGluZyIsbG5nLG5zLGVyciksZGF0YSYmdGhpcy5zdG9yZS5hZGRSZXNvdXJjZUJ1bmRsZShsbmcsbnMsZGF0YSksdGhpcy5zdGF0ZVtuYW1lXT1lcnI/LTE6Mjt2YXIgbG9hZGVkPXt9O3RoaXMucXVldWUuZm9yRWFjaChmdW5jdGlvbihxKXt2YXIgY29uY2F0LF9nZXRMYXN0T2ZQYXRoMixvYmosayxxMTsob2JqPShfZ2V0TGFzdE9mUGF0aDI9Z2V0TGFzdE9mUGF0aChxLmxvYWRlZCxbbG5nXSxPYmplY3QpKS5vYmopW2s9X2dldExhc3RPZlBhdGgyLmtdPW9ialtrXXx8W10sY29uY2F0JiYob2JqW2tdPW9ialtrXS5jb25jYXQobnMpKSxjb25jYXR8fG9ialtrXS5wdXNoKG5zKSx2b2lkIDAhPT0ocTE9cSkucGVuZGluZ1tuYW1lXSYmKGRlbGV0ZSBxMS5wZW5kaW5nW25hbWVdLHExLnBlbmRpbmdDb3VudC0tKSxlcnImJnEuZXJyb3JzLnB1c2goZXJyKSwwIT09cS5wZW5kaW5nQ291bnR8fHEuZG9uZXx8KE9iamVjdC5rZXlzKHEubG9hZGVkKS5mb3JFYWNoKGZ1bmN0aW9uKGwpe2xvYWRlZFtsXXx8KGxvYWRlZFtsXT17fSk7dmFyIGxvYWRlZEtleXM9cS5sb2FkZWRbbF07bG9hZGVkS2V5cy5sZW5ndGgmJmxvYWRlZEtleXMuZm9yRWFjaChmdW5jdGlvbihucyl7dm9pZCAwPT09bG9hZGVkW2xdW25zXSYmKGxvYWRlZFtsXVtuc109ITApfSl9KSxxLmRvbmU9ITAscS5lcnJvcnMubGVuZ3RoP3EuY2FsbGJhY2socS5lcnJvcnMpOnEuY2FsbGJhY2soKSl9KSx0aGlzLmVtaXQoImxvYWRlZCIsbG9hZGVkKSx0aGlzLnF1ZXVlPXRoaXMucXVldWUuZmlsdGVyKGZ1bmN0aW9uKHEpe3JldHVybiFxLmRvbmV9KX19LHtrZXk6InJlYWQiLHZhbHVlOmZ1bmN0aW9uKGxuZyxucyxmY05hbWUpe3ZhciBfdGhpczM9dGhpcyx0cmllZD1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106MCx3YWl0PWFyZ3VtZW50cy5sZW5ndGg+NCYmdm9pZCAwIT09YXJndW1lbnRzWzRdP2FyZ3VtZW50c1s0XTp0aGlzLnJldHJ5VGltZW91dCxjYWxsYmFjaz1hcmd1bWVudHMubGVuZ3RoPjU/YXJndW1lbnRzWzVdOnZvaWQgMDtpZighbG5nLmxlbmd0aClyZXR1cm4gY2FsbGJhY2sobnVsbCx7fSk7aWYodGhpcy5yZWFkaW5nQ2FsbHM+PXRoaXMubWF4UGFyYWxsZWxSZWFkcyl7dGhpcy53YWl0aW5nUmVhZHMucHVzaCh7bG5nOmxuZyxuczpucyxmY05hbWU6ZmNOYW1lLHRyaWVkOnRyaWVkLHdhaXQ6d2FpdCxjYWxsYmFjazpjYWxsYmFja30pO3JldHVybn1yZXR1cm4gdGhpcy5yZWFkaW5nQ2FsbHMrKyx0aGlzLmJhY2tlbmRbZmNOYW1lXShsbmcsbnMsZnVuY3Rpb24oZXJyLGRhdGEpe2lmKF90aGlzMy5yZWFkaW5nQ2FsbHMtLSxfdGhpczMud2FpdGluZ1JlYWRzLmxlbmd0aD4wKXt2YXIgbmV4dD1fdGhpczMud2FpdGluZ1JlYWRzLnNoaWZ0KCk7X3RoaXMzLnJlYWQobmV4dC5sbmcsbmV4dC5ucyxuZXh0LmZjTmFtZSxuZXh0LnRyaWVkLG5leHQud2FpdCxuZXh0LmNhbGxiYWNrKX1pZihlcnImJmRhdGEmJnRyaWVkPF90aGlzMy5tYXhSZXRyaWVzKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7X3RoaXMzLnJlYWQuY2FsbChfdGhpczMsbG5nLG5zLGZjTmFtZSx0cmllZCsxLDIqd2FpdCxjYWxsYmFjayl9LHdhaXQpO3JldHVybn1jYWxsYmFjayhlcnIsZGF0YSl9KX19LHtrZXk6InByZXBhcmVMb2FkaW5nIix2YWx1ZTpmdW5jdGlvbihsYW5ndWFnZXMsbmFtZXNwYWNlcyl7dmFyIF90aGlzND10aGlzLG9wdGlvbnM9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9LGNhbGxiYWNrPWFyZ3VtZW50cy5sZW5ndGg+Mz9hcmd1bWVudHNbM106dm9pZCAwO2lmKCF0aGlzLmJhY2tlbmQpcmV0dXJuIHRoaXMubG9nZ2VyLndhcm4oIk5vIGJhY2tlbmQgd2FzIGFkZGVkIHZpYSBpMThuZXh0LnVzZS4gV2lsbCBub3QgbG9hZCByZXNvdXJjZXMuIiksY2FsbGJhY2smJmNhbGxiYWNrKCk7InN0cmluZyI9PXR5cGVvZiBsYW5ndWFnZXMmJihsYW5ndWFnZXM9dGhpcy5sYW5ndWFnZVV0aWxzLnRvUmVzb2x2ZUhpZXJhcmNoeShsYW5ndWFnZXMpKSwic3RyaW5nIj09dHlwZW9mIG5hbWVzcGFjZXMmJihuYW1lc3BhY2VzPVtuYW1lc3BhY2VzXSk7dmFyIHRvTG9hZD10aGlzLnF1ZXVlTG9hZChsYW5ndWFnZXMsbmFtZXNwYWNlcyxvcHRpb25zLGNhbGxiYWNrKTtpZighdG9Mb2FkLnRvTG9hZC5sZW5ndGgpcmV0dXJuIHRvTG9hZC5wZW5kaW5nLmxlbmd0aHx8Y2FsbGJhY2soKSxudWxsO3RvTG9hZC50b0xvYWQuZm9yRWFjaChmdW5jdGlvbihuYW1lKXtfdGhpczQubG9hZE9uZShuYW1lKX0pfX0se2tleToibG9hZCIsdmFsdWU6ZnVuY3Rpb24obGFuZ3VhZ2VzLG5hbWVzcGFjZXMsY2FsbGJhY2spe3RoaXMucHJlcGFyZUxvYWRpbmcobGFuZ3VhZ2VzLG5hbWVzcGFjZXMse30sY2FsbGJhY2spfX0se2tleToicmVsb2FkIix2YWx1ZTpmdW5jdGlvbihsYW5ndWFnZXMsbmFtZXNwYWNlcyxjYWxsYmFjayl7dGhpcy5wcmVwYXJlTG9hZGluZyhsYW5ndWFnZXMsbmFtZXNwYWNlcyx7cmVsb2FkOiEwfSxjYWxsYmFjayl9fSx7a2V5OiJsb2FkT25lIix2YWx1ZTpmdW5jdGlvbihuYW1lKXt2YXIgX3RoaXM1PXRoaXMscHJlZml4PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToiIixzPW5hbWUuc3BsaXQoInwiKSxsbmc9c1swXSxucz1zWzFdO3RoaXMucmVhZChsbmcsbnMsInJlYWQiLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oZXJyLGRhdGEpe2VyciYmX3RoaXM1LmxvZ2dlci53YXJuKCIiLmNvbmNhdChwcmVmaXgsImxvYWRpbmcgbmFtZXNwYWNlICIpLmNvbmNhdChucywiIGZvciBsYW5ndWFnZSAiKS5jb25jYXQobG5nLCIgZmFpbGVkIiksZXJyKSwhZXJyJiZkYXRhJiZfdGhpczUubG9nZ2VyLmxvZygiIi5jb25jYXQocHJlZml4LCJsb2FkZWQgbmFtZXNwYWNlICIpLmNvbmNhdChucywiIGZvciBsYW5ndWFnZSAiKS5jb25jYXQobG5nKSxkYXRhKSxfdGhpczUubG9hZGVkKG5hbWUsZXJyLGRhdGEpfSl9fSx7a2V5OiJzYXZlTWlzc2luZyIsdmFsdWU6ZnVuY3Rpb24obGFuZ3VhZ2VzLG5hbWVzcGFjZSxrZXksZmFsbGJhY2tWYWx1ZSxpc1VwZGF0ZSl7dmFyIG9wdGlvbnM9YXJndW1lbnRzLmxlbmd0aD41JiZ2b2lkIDAhPT1hcmd1bWVudHNbNV0/YXJndW1lbnRzWzVdOnt9O2lmKHRoaXMuc2VydmljZXMudXRpbHMmJnRoaXMuc2VydmljZXMudXRpbHMuaGFzTG9hZGVkTmFtZXNwYWNlJiYhdGhpcy5zZXJ2aWNlcy51dGlscy5oYXNMb2FkZWROYW1lc3BhY2UobmFtZXNwYWNlKSl7dGhpcy5sb2dnZXIud2FybignZGlkIG5vdCBzYXZlIGtleSAiJy5jb25jYXQoa2V5LCciIGFzIHRoZSBuYW1lc3BhY2UgIicpLmNvbmNhdChuYW1lc3BhY2UsJyIgd2FzIG5vdCB5ZXQgbG9hZGVkJyksIlRoaXMgbWVhbnMgc29tZXRoaW5nIElTIFdST05HIGluIHlvdXIgc2V0dXAuIFlvdSBhY2Nlc3MgdGhlIHQgZnVuY3Rpb24gYmVmb3JlIGkxOG5leHQuaW5pdCAvIGkxOG5leHQubG9hZE5hbWVzcGFjZSAvIGkxOG5leHQuY2hhbmdlTGFuZ3VhZ2Ugd2FzIGRvbmUuIFdhaXQgZm9yIHRoZSBjYWxsYmFjayBvciBQcm9taXNlIHRvIHJlc29sdmUgYmVmb3JlIGFjY2Vzc2luZyBpdCEhISIpO3JldHVybn1udWxsIT1rZXkmJiIiIT09a2V5JiYodGhpcy5iYWNrZW5kJiZ0aGlzLmJhY2tlbmQuY3JlYXRlJiZ0aGlzLmJhY2tlbmQuY3JlYXRlKGxhbmd1YWdlcyxuYW1lc3BhY2Usa2V5LGZhbGxiYWNrVmFsdWUsbnVsbCxfb2JqZWN0U3ByZWFkJDUoX29iamVjdFNwcmVhZCQ1KHt9LG9wdGlvbnMpLHt9LHtpc1VwZGF0ZTppc1VwZGF0ZX0pKSxsYW5ndWFnZXMmJmxhbmd1YWdlc1swXSYmdGhpcy5zdG9yZS5hZGRSZXNvdXJjZShsYW5ndWFnZXNbMF0sbmFtZXNwYWNlLGtleSxmYWxsYmFja1ZhbHVlKSl9fV0pLENvbm5lY3Rvcn0oRXZlbnRFbWl0dGVyKTtmdW5jdGlvbiB0cmFuc2Zvcm1PcHRpb25zKG9wdGlvbnMpe3JldHVybiJzdHJpbmciPT10eXBlb2Ygb3B0aW9ucy5ucyYmKG9wdGlvbnMubnM9W29wdGlvbnMubnNdKSwic3RyaW5nIj09dHlwZW9mIG9wdGlvbnMuZmFsbGJhY2tMbmcmJihvcHRpb25zLmZhbGxiYWNrTG5nPVtvcHRpb25zLmZhbGxiYWNrTG5nXSksInN0cmluZyI9PXR5cGVvZiBvcHRpb25zLmZhbGxiYWNrTlMmJihvcHRpb25zLmZhbGxiYWNrTlM9W29wdGlvbnMuZmFsbGJhY2tOU10pLG9wdGlvbnMuc3VwcG9ydGVkTG5ncyYmMD5vcHRpb25zLnN1cHBvcnRlZExuZ3MuaW5kZXhPZigiY2ltb2RlIikmJihvcHRpb25zLnN1cHBvcnRlZExuZ3M9b3B0aW9ucy5zdXBwb3J0ZWRMbmdzLmNvbmNhdChbImNpbW9kZSJdKSksb3B0aW9uc31mdW5jdGlvbiBvd25LZXlzJDYob2JqZWN0LGVudW1lcmFibGVPbmx5KXt2YXIga2V5cz1PYmplY3Qua2V5cyhvYmplY3QpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBzeW1ib2xzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTtlbnVtZXJhYmxlT25seSYmKHN5bWJvbHM9c3ltYm9scy5maWx0ZXIoZnVuY3Rpb24oc3ltKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3Qsc3ltKS5lbnVtZXJhYmxlfSkpLGtleXMucHVzaC5hcHBseShrZXlzLHN5bWJvbHMpfXJldHVybiBrZXlzfWZ1bmN0aW9uIF9vYmplY3RTcHJlYWQkNih0YXJnZXQpe2Zvcih2YXIgaT0xO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspe3ZhciBzb3VyY2U9bnVsbCE9YXJndW1lbnRzW2ldP2FyZ3VtZW50c1tpXTp7fTtpJTI/b3duS2V5cyQ2KE9iamVjdChzb3VyY2UpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSl7KDAsX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fZGVmaW5lUHJvcGVydHlfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKSh0YXJnZXQsa2V5LHNvdXJjZVtrZXldKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKTpvd25LZXlzJDYoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24oa2V5KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LGtleSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSxrZXkpKX0pfXJldHVybiB0YXJnZXR9ZnVuY3Rpb24gbm9vcCgpe312YXIgSTE4bj1mdW5jdGlvbihfRXZlbnRFbWl0dGVyKXsoMCxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV9pbmhlcml0c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLlopKEkxOG4sX0V2ZW50RW1pdHRlcik7dmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QsX3N1cGVyPShoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0PWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSgpLGZ1bmN0aW9uKCl7dmFyIHJlc3VsdCxTdXBlcj0oMCxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV9nZXRQcm90b3R5cGVPZl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLlopKEkxOG4pO2lmKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3Qpe3ZhciBOZXdUYXJnZXQ9KDAsX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fZ2V0UHJvdG90eXBlT2ZfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5aKSh0aGlzKS5jb25zdHJ1Y3RvcjtyZXN1bHQ9UmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsYXJndW1lbnRzLE5ld1RhcmdldCl9ZWxzZSByZXN1bHQ9U3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybigwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm5fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5aKSh0aGlzLHJlc3VsdCl9KTtmdW5jdGlvbiBJMThuKCl7dmFyIF90aGlzLG9wdGlvbnM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9LGNhbGxiYWNrPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwO2lmKCgwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX2NsYXNzQ2FsbENoZWNrX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uWikodGhpcyxJMThuKSxfdGhpcz1fc3VwZXIuY2FsbCh0aGlzKSxpc0lFMTAmJkV2ZW50RW1pdHRlci5jYWxsKCgwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX2Fzc2VydFRoaXNJbml0aWFsaXplZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLlopKF90aGlzKSksX3RoaXMub3B0aW9ucz10cmFuc2Zvcm1PcHRpb25zKG9wdGlvbnMpLF90aGlzLnNlcnZpY2VzPXt9LF90aGlzLmxvZ2dlcj1iYXNlTG9nZ2VyLF90aGlzLm1vZHVsZXM9e2V4dGVybmFsOltdfSwhZnVuY3Rpb24oaW5zdCl7T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoT2JqZWN0LmdldFByb3RvdHlwZU9mKGluc3QpKS5mb3JFYWNoKGZ1bmN0aW9uKG1lbSl7ImZ1bmN0aW9uIj09dHlwZW9mIGluc3RbbWVtXSYmKGluc3RbbWVtXT1pbnN0W21lbV0uYmluZChpbnN0KSl9KX0oKDAsX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fYXNzZXJ0VGhpc0luaXRpYWxpemVkX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uWikoX3RoaXMpKSxjYWxsYmFjayYmIV90aGlzLmlzSW5pdGlhbGl6ZWQmJiFvcHRpb25zLmlzQ2xvbmUpe2lmKCFfdGhpcy5vcHRpb25zLmluaXRJbW1lZGlhdGUpcmV0dXJuIF90aGlzLmluaXQob3B0aW9ucyxjYWxsYmFjayksKDAsX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fcG9zc2libGVDb25zdHJ1Y3RvclJldHVybl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlopKF90aGlzLCgwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX2Fzc2VydFRoaXNJbml0aWFsaXplZF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLlopKF90aGlzKSk7c2V0VGltZW91dChmdW5jdGlvbigpe190aGlzLmluaXQob3B0aW9ucyxjYWxsYmFjayl9LDApfXJldHVybiBfdGhpc31yZXR1cm4oMCxfYmFiZWxfcnVudGltZV9oZWxwZXJzX2VzbV9jcmVhdGVDbGFzc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLlopKEkxOG4sW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIF90aGlzMj10aGlzLG9wdGlvbnM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9LGNhbGxiYWNrPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwOyJmdW5jdGlvbiI9PXR5cGVvZiBvcHRpb25zJiYoY2FsbGJhY2s9b3B0aW9ucyxvcHRpb25zPXt9KSwhb3B0aW9ucy5kZWZhdWx0TlMmJiExIT09b3B0aW9ucy5kZWZhdWx0TlMmJm9wdGlvbnMubnMmJigic3RyaW5nIj09dHlwZW9mIG9wdGlvbnMubnM/b3B0aW9ucy5kZWZhdWx0TlM9b3B0aW9ucy5uczowPm9wdGlvbnMubnMuaW5kZXhPZigidHJhbnNsYXRpb24iKSYmKG9wdGlvbnMuZGVmYXVsdE5TPW9wdGlvbnMubnNbMF0pKTt2YXIgZGVmT3B0cz17ZGVidWc6ITEsaW5pdEltbWVkaWF0ZTohMCxuczpbInRyYW5zbGF0aW9uIl0sZGVmYXVsdE5TOlsidHJhbnNsYXRpb24iXSxmYWxsYmFja0xuZzpbImRldiJdLGZhbGxiYWNrTlM6ITEsc3VwcG9ydGVkTG5nczohMSxub25FeHBsaWNpdFN1cHBvcnRlZExuZ3M6ITEsbG9hZDoiYWxsIixwcmVsb2FkOiExLHNpbXBsaWZ5UGx1cmFsU3VmZml4OiEwLGtleVNlcGFyYXRvcjoiLiIsbnNTZXBhcmF0b3I6IjoiLHBsdXJhbFNlcGFyYXRvcjoiXyIsY29udGV4dFNlcGFyYXRvcjoiXyIscGFydGlhbEJ1bmRsZWRMYW5ndWFnZXM6ITEsc2F2ZU1pc3Npbmc6ITEsdXBkYXRlTWlzc2luZzohMSxzYXZlTWlzc2luZ1RvOiJmYWxsYmFjayIsc2F2ZU1pc3NpbmdQbHVyYWxzOiEwLG1pc3NpbmdLZXlIYW5kbGVyOiExLG1pc3NpbmdJbnRlcnBvbGF0aW9uSGFuZGxlcjohMSxwb3N0UHJvY2VzczohMSxwb3N0UHJvY2Vzc1Bhc3NSZXNvbHZlZDohMSxyZXR1cm5OdWxsOiEwLHJldHVybkVtcHR5U3RyaW5nOiEwLHJldHVybk9iamVjdHM6ITEsam9pbkFycmF5czohMSxyZXR1cm5lZE9iamVjdEhhbmRsZXI6ITEscGFyc2VNaXNzaW5nS2V5SGFuZGxlcjohMSxhcHBlbmROYW1lc3BhY2VUb01pc3NpbmdLZXk6ITEsYXBwZW5kTmFtZXNwYWNlVG9DSU1vZGU6ITEsb3ZlcmxvYWRUcmFuc2xhdGlvbk9wdGlvbkhhbmRsZXI6ZnVuY3Rpb24oYXJncyl7dmFyIHJldD17fTtpZigib2JqZWN0Ij09PSgwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX3R5cGVvZl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLlopKGFyZ3NbMV0pJiYocmV0PWFyZ3NbMV0pLCJzdHJpbmciPT10eXBlb2YgYXJnc1sxXSYmKHJldC5kZWZhdWx0VmFsdWU9YXJnc1sxXSksInN0cmluZyI9PXR5cGVvZiBhcmdzWzJdJiYocmV0LnREZXNjcmlwdGlvbj1hcmdzWzJdKSwib2JqZWN0Ij09PSgwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX3R5cGVvZl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLlopKGFyZ3NbMl0pfHwib2JqZWN0Ij09PSgwLF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfZXNtX3R5cGVvZl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLlopKGFyZ3NbM10pKXt2YXIgb3B0aW9ucz1hcmdzWzNdfHxhcmdzWzJdO09iamVjdC5rZXlzKG9wdGlvbnMpLmZvckVhY2goZnVuY3Rpb24oa2V5KXtyZXRba2V5XT1vcHRpb25zW2tleV19KX1yZXR1cm4gcmV0fSxpbnRlcnBvbGF0aW9uOntlc2NhcGVWYWx1ZTohMCxmb3JtYXQ6ZnVuY3Rpb24odmFsdWUsX2Zvcm1hdCxsbmcsb3B0aW9ucyl7cmV0dXJuIHZhbHVlfSxwcmVmaXg6Int7IixzdWZmaXg6In19Iixmb3JtYXRTZXBhcmF0b3I6IiwiLHVuZXNjYXBlUHJlZml4OiItIixuZXN0aW5nUHJlZml4OiIkdCgiLG5lc3RpbmdTdWZmaXg6IikiLG5lc3RpbmdPcHRpb25zU2VwYXJhdG9yOiIsIixtYXhSZXBsYWNlczoxZTMsc2tpcE9uVmFyaWFibGVzOiEwfX07ZnVuY3Rpb24gY3JlYXRlQ2xhc3NPbkRlbWFuZChDbGFzc09yT2JqZWN0KXtyZXR1cm4gQ2xhc3NPck9iamVjdD8iZnVuY3Rpb24iPT10eXBlb2YgQ2xhc3NPck9iamVjdD9uZXcgQ2xhc3NPck9iamVjdDpDbGFzc09yT2JqZWN0Om51bGx9aWYodGhpcy5vcHRpb25zPV9vYmplY3RTcHJlYWQkNihfb2JqZWN0U3ByZWFkJDYoX29iamVjdFNwcmVhZCQ2KHt9LGRlZk9wdHMpLHRoaXMub3B0aW9ucyksdHJhbnNmb3JtT3B0aW9ucyhvcHRpb25zKSksInYxIiE9PXRoaXMub3B0aW9ucy5jb21wYXRpYmlsaXR5QVBJJiYodGhpcy5vcHRpb25zLmludGVycG9sYXRpb249X29iamVjdFNwcmVhZCQ2KF9vYmplY3RTcHJlYWQkNih7fSxkZWZPcHRzLmludGVycG9sYXRpb24pLHRoaXMub3B0aW9ucy5pbnRlcnBvbGF0aW9uKSksdm9pZCAwIT09b3B0aW9ucy5rZXlTZXBhcmF0b3ImJih0aGlzLm9wdGlvbnMudXNlckRlZmluZWRLZXlTZXBhcmF0b3I9b3B0aW9ucy5rZXlTZXBhcmF0b3IpLHZvaWQgMCE9PW9wdGlvbnMubnNTZXBhcmF0b3ImJih0aGlzLm9wdGlvbnMudXNlckRlZmluZWROc1NlcGFyYXRvcj1vcHRpb25zLm5zU2VwYXJhdG9yKSwhdGhpcy5vcHRpb25zLmlzQ2xvbmUpe3RoaXMubW9kdWxlcy5sb2dnZXI/YmFzZUxvZ2dlci5pbml0KGNyZWF0ZUNsYXNzT25EZW1hbmQodGhpcy5tb2R1bGVzLmxvZ2dlciksdGhpcy5vcHRpb25zKTpiYXNlTG9nZ2VyLmluaXQobnVsbCx0aGlzLm9wdGlvbnMpLHRoaXMubW9kdWxlcy5mb3JtYXR0ZXI/Zm9ybWF0dGVyPXRoaXMubW9kdWxlcy5mb3JtYXR0ZXI6InVuZGVmaW5lZCIhPXR5cGVvZiBJbnRsJiYoZm9ybWF0dGVyPUZvcm1hdHRlcik7dmFyIGZvcm1hdHRlcixsdT1uZXcgTGFuZ3VhZ2VVdGlsKHRoaXMub3B0aW9ucyk7dGhpcy5zdG9yZT1uZXcgUmVzb3VyY2VTdG9yZSh0aGlzLm9wdGlvbnMucmVzb3VyY2VzLHRoaXMub3B0aW9ucyk7dmFyIHM9dGhpcy5zZXJ2aWNlcztzLmxvZ2dlcj1iYXNlTG9nZ2VyLHMucmVzb3VyY2VTdG9yZT10aGlzLnN0b3JlLHMubGFuZ3VhZ2VVdGlscz1sdSxzLnBsdXJhbFJlc29sdmVyPW5ldyBQbHVyYWxSZXNvbHZlcihsdSx7cHJlcGVuZDp0aGlzLm9wdGlvbnMucGx1cmFsU2VwYXJhdG9yLGNvbXBhdGliaWxpdHlKU09OOnRoaXMub3B0aW9ucy5jb21wYXRpYmlsaXR5SlNPTixzaW1wbGlmeVBsdXJhbFN1ZmZpeDp0aGlzLm9wdGlvbnMuc2ltcGxpZnlQbHVyYWxTdWZmaXh9KSxmb3JtYXR0ZXImJighdGhpcy5vcHRpb25zLmludGVycG9sYXRpb24uZm9ybWF0fHx0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbi5mb3JtYXQ9PT1kZWZPcHRzLmludGVycG9sYXRpb24uZm9ybWF0KSYmKHMuZm9ybWF0dGVyPWNyZWF0ZUNsYXNzT25EZW1hbmQoZm9ybWF0dGVyKSxzLmZvcm1hdHRlci5pbml0KHMsdGhpcy5vcHRpb25zKSx0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbi5mb3JtYXQ9cy5mb3JtYXR0ZXIuZm9ybWF0LmJpbmQocy5mb3JtYXR0ZXIpKSxzLmludGVycG9sYXRvcj1uZXcgSW50ZXJwb2xhdG9yKHRoaXMub3B0aW9ucykscy51dGlscz17aGFzTG9hZGVkTmFtZXNwYWNlOnRoaXMuaGFzTG9hZGVkTmFtZXNwYWNlLmJpbmQodGhpcyl9LHMuYmFja2VuZENvbm5lY3Rvcj1uZXcgQ29ubmVjdG9yKGNyZWF0ZUNsYXNzT25EZW1hbmQodGhpcy5tb2R1bGVzLmJhY2tlbmQpLHMucmVzb3VyY2VTdG9yZSxzLHRoaXMub3B0aW9ucykscy5iYWNrZW5kQ29ubmVjdG9yLm9uKCIqIixmdW5jdGlvbihldmVudCl7Zm9yKHZhciBfbGVuPWFyZ3VtZW50cy5sZW5ndGgsYXJncz1BcnJheShfbGVuPjE/X2xlbi0xOjApLF9rZXk9MTtfa2V5PF9sZW47X2tleSsrKWFyZ3NbX2tleS0xXT1hcmd1bWVudHNbX2tleV07X3RoaXMyLmVtaXQuYXBwbHkoX3RoaXMyLFtldmVudF0uY29uY2F0KGFyZ3MpKX0pLHRoaXMubW9kdWxlcy5sYW5ndWFnZURldGVjdG9yJiYocy5sYW5ndWFnZURldGVjdG9yPWNyZWF0ZUNsYXNzT25EZW1hbmQodGhpcy5tb2R1bGVzLmxhbmd1YWdlRGV0ZWN0b3IpLHMubGFuZ3VhZ2VEZXRlY3Rvci5pbml0KHMsdGhpcy5vcHRpb25zLmRldGVjdGlvbix0aGlzLm9wdGlvbnMpKSx0aGlzLm1vZHVsZXMuaTE4bkZvcm1hdCYmKHMuaTE4bkZvcm1hdD1jcmVhdGVDbGFzc09uRGVtYW5kKHRoaXMubW9kdWxlcy5pMThuRm9ybWF0KSxzLmkxOG5Gb3JtYXQuaW5pdCYmcy5pMThuRm9ybWF0LmluaXQodGhpcykpLHRoaXMudHJhbnNsYXRvcj1uZXcgVHJhbnNsYXRvcih0aGlzLnNlcnZpY2VzLHRoaXMub3B0aW9ucyksdGhpcy50cmFuc2xhdG9yLm9uKCIqIixmdW5jdGlvbihldmVudCl7Zm9yKHZhciBfbGVuMj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbjI+MT9fbGVuMi0xOjApLF9rZXkyPTE7X2tleTI8X2xlbjI7X2tleTIrKylhcmdzW19rZXkyLTFdPWFyZ3VtZW50c1tfa2V5Ml07X3RoaXMyLmVtaXQuYXBwbHkoX3RoaXMyLFtldmVudF0uY29uY2F0KGFyZ3MpKX0pLHRoaXMubW9kdWxlcy5leHRlcm5hbC5mb3JFYWNoKGZ1bmN0aW9uKG0pe20uaW5pdCYmbS5pbml0KF90aGlzMil9KX1pZih0aGlzLmZvcm1hdD10aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbi5mb3JtYXQsY2FsbGJhY2t8fChjYWxsYmFjaz1ub29wKSx0aGlzLm9wdGlvbnMuZmFsbGJhY2tMbmcmJiF0aGlzLnNlcnZpY2VzLmxhbmd1YWdlRGV0ZWN0b3ImJiF0aGlzLm9wdGlvbnMubG5nKXt2YXIgY29kZXM9dGhpcy5zZXJ2aWNlcy5sYW5ndWFnZVV0aWxzLmdldEZhbGxiYWNrQ29kZXModGhpcy5vcHRpb25zLmZhbGxiYWNrTG5nKTtjb2Rlcy5sZW5ndGg+MCYmImRldiIhPT1jb2Rlc1swXSYmKHRoaXMub3B0aW9ucy5sbmc9Y29kZXNbMF0pfXRoaXMuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3Rvcnx8dGhpcy5vcHRpb25zLmxuZ3x8dGhpcy5sb2dnZXIud2FybigiaW5pdDogbm8gbGFuZ3VhZ2VEZXRlY3RvciBpcyB1c2VkIGFuZCBubyBsbmcgaXMgZGVmaW5lZCIpLFsiZ2V0UmVzb3VyY2UiLCJoYXNSZXNvdXJjZUJ1bmRsZSIsImdldFJlc291cmNlQnVuZGxlIiwiZ2V0RGF0YUJ5TGFuZ3VhZ2UiXS5mb3JFYWNoKGZ1bmN0aW9uKGZjTmFtZSl7X3RoaXMyW2ZjTmFtZV09ZnVuY3Rpb24oKXt2YXIgX3RoaXMyJHN0b3JlO3JldHVybihfdGhpczIkc3RvcmU9X3RoaXMyLnN0b3JlKVtmY05hbWVdLmFwcGx5KF90aGlzMiRzdG9yZSxhcmd1bWVudHMpfX0pLFsiYWRkUmVzb3VyY2UiLCJhZGRSZXNvdXJjZXMiLCJhZGRSZXNvdXJjZUJ1bmRsZSIsInJlbW92ZVJlc291cmNlQnVuZGxlIl0uZm9yRWFjaChmdW5jdGlvbihmY05hbWUpe190aGlzMltmY05hbWVdPWZ1bmN0aW9uKCl7dmFyIF90aGlzMiRzdG9yZTI7cmV0dXJuKF90aGlzMiRzdG9yZTI9X3RoaXMyLnN0b3JlKVtmY05hbWVdLmFwcGx5KF90aGlzMiRzdG9yZTIsYXJndW1lbnRzKSxfdGhpczJ9fSk7dmFyIGRlZmVycmVkPWRlZmVyKCksbG9hZD1mdW5jdGlvbigpe3ZhciBmaW5pc2g9ZnVuY3Rpb24oZXJyLHQpe190aGlzMi5pc0luaXRpYWxpemVkJiYhX3RoaXMyLmluaXRpYWxpemVkU3RvcmVPbmNlJiZfdGhpczIubG9nZ2VyLndhcm4oImluaXQ6IGkxOG5leHQgaXMgYWxyZWFkeSBpbml0aWFsaXplZC4gWW91IHNob3VsZCBjYWxsIGluaXQganVzdCBvbmNlISIpLF90aGlzMi5pc0luaXRpYWxpemVkPSEwLF90aGlzMi5vcHRpb25zLmlzQ2xvbmV8fF90aGlzMi5sb2dnZXIubG9nKCJpbml0aWFsaXplZCIsX3RoaXMyLm9wdGlvbnMpLF90aGlzMi5lbWl0KCJpbml0aWFsaXplZCIsX3RoaXMyLm9wdGlvbnMpLGRlZmVycmVkLnJlc29sdmUodCksY2FsbGJhY2soZXJyLHQpfTtpZihfdGhpczIubGFuZ3VhZ2VzJiYidjEiIT09X3RoaXMyLm9wdGlvbnMuY29tcGF0aWJpbGl0eUFQSSYmIV90aGlzMi5pc0luaXRpYWxpemVkKXJldHVybiBmaW5pc2gobnVsbCxfdGhpczIudC5iaW5kKF90aGlzMikpO190aGlzMi5jaGFuZ2VMYW5ndWFnZShfdGhpczIub3B0aW9ucy5sbmcsZmluaXNoKX07cmV0dXJuIHRoaXMub3B0aW9ucy5yZXNvdXJjZXN8fCF0aGlzLm9wdGlvbnMuaW5pdEltbWVkaWF0ZT9sb2FkKCk6c2V0VGltZW91dChsb2FkLDApLGRlZmVycmVkfX0se2tleToibG9hZFJlc291cmNlcyIsdmFsdWU6ZnVuY3Rpb24obGFuZ3VhZ2Upe3ZhciBfdGhpczM9dGhpcyxjYWxsYmFjaz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bm9vcCx1c2VkQ2FsbGJhY2s9Y2FsbGJhY2ssdXNlZExuZz0ic3RyaW5nIj09dHlwZW9mIGxhbmd1YWdlP2xhbmd1YWdlOnRoaXMubGFuZ3VhZ2U7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGxhbmd1YWdlJiYodXNlZENhbGxiYWNrPWxhbmd1YWdlKSwhdGhpcy5vcHRpb25zLnJlc291cmNlc3x8dGhpcy5vcHRpb25zLnBhcnRpYWxCdW5kbGVkTGFuZ3VhZ2VzKXtpZih1c2VkTG5nJiYiY2ltb2RlIj09PXVzZWRMbmcudG9Mb3dlckNhc2UoKSlyZXR1cm4gdXNlZENhbGxiYWNrKCk7dmFyIHRvTG9hZD1bXSxhcHBlbmQ9ZnVuY3Rpb24obG5nKXtsbmcmJl90aGlzMy5zZXJ2aWNlcy5sYW5ndWFnZVV0aWxzLnRvUmVzb2x2ZUhpZXJhcmNoeShsbmcpLmZvckVhY2goZnVuY3Rpb24obCl7MD50b0xvYWQuaW5kZXhPZihsKSYmdG9Mb2FkLnB1c2gobCl9KX07dXNlZExuZz9hcHBlbmQodXNlZExuZyk6dGhpcy5zZXJ2aWNlcy5sYW5ndWFnZVV0aWxzLmdldEZhbGxiYWNrQ29kZXModGhpcy5vcHRpb25zLmZhbGxiYWNrTG5nKS5mb3JFYWNoKGZ1bmN0aW9uKGwpe3JldHVybiBhcHBlbmQobCl9KSx0aGlzLm9wdGlvbnMucHJlbG9hZCYmdGhpcy5vcHRpb25zLnByZWxvYWQuZm9yRWFjaChmdW5jdGlvbihsKXtyZXR1cm4gYXBwZW5kKGwpfSksdGhpcy5zZXJ2aWNlcy5iYWNrZW5kQ29ubmVjdG9yLmxvYWQodG9Mb2FkLHRoaXMub3B0aW9ucy5ucyxmdW5jdGlvbihlKXtlfHxfdGhpczMucmVzb2x2ZWRMYW5ndWFnZXx8IV90aGlzMy5sYW5ndWFnZXx8X3RoaXMzLnNldFJlc29sdmVkTGFuZ3VhZ2UoX3RoaXMzLmxhbmd1YWdlKSx1c2VkQ2FsbGJhY2soZSl9KX1lbHNlIHVzZWRDYWxsYmFjayhudWxsKX19LHtrZXk6InJlbG9hZFJlc291cmNlcyIsdmFsdWU6ZnVuY3Rpb24obG5ncyxucyxjYWxsYmFjayl7dmFyIGRlZmVycmVkPWRlZmVyKCk7cmV0dXJuIGxuZ3N8fChsbmdzPXRoaXMubGFuZ3VhZ2VzKSxuc3x8KG5zPXRoaXMub3B0aW9ucy5ucyksY2FsbGJhY2t8fChjYWxsYmFjaz1ub29wKSx0aGlzLnNlcnZpY2VzLmJhY2tlbmRDb25uZWN0b3IucmVsb2FkKGxuZ3MsbnMsZnVuY3Rpb24oZXJyKXtkZWZlcnJlZC5yZXNvbHZlKCksY2FsbGJhY2soZXJyKX0pLGRlZmVycmVkfX0se2tleToidXNlIix2YWx1ZTpmdW5jdGlvbihtb2R1bGUpe2lmKCFtb2R1bGUpdGhyb3cgRXJyb3IoIllvdSBhcmUgcGFzc2luZyBhbiB1bmRlZmluZWQgbW9kdWxlISBQbGVhc2UgY2hlY2sgdGhlIG9iamVjdCB5b3UgYXJlIHBhc3NpbmcgdG8gaTE4bmV4dC51c2UoKSIpO2lmKCFtb2R1bGUudHlwZSl0aHJvdyBFcnJvcigiWW91IGFyZSBwYXNzaW5nIGEgd3JvbmcgbW9kdWxlISBQbGVhc2UgY2hlY2sgdGhlIG9iamVjdCB5b3UgYXJlIHBhc3NpbmcgdG8gaTE4bmV4dC51c2UoKSIpO3JldHVybiJiYWNrZW5kIj09PW1vZHVsZS50eXBlJiYodGhpcy5tb2R1bGVzLmJhY2tlbmQ9bW9kdWxlKSwoImxvZ2dlciI9PT1tb2R1bGUudHlwZXx8bW9kdWxlLmxvZyYmbW9kdWxlLndhcm4mJm1vZHVsZS5lcnJvcikmJih0aGlzLm1vZHVsZXMubG9nZ2VyPW1vZHVsZSksImxhbmd1YWdlRGV0ZWN0b3IiPT09bW9kdWxlLnR5cGUmJih0aGlzLm1vZHVsZXMubGFuZ3VhZ2VEZXRlY3Rvcj1tb2R1bGUpLCJpMThuRm9ybWF0Ij09PW1vZHVsZS50eXBlJiYodGhpcy5tb2R1bGVzLmkxOG5Gb3JtYXQ9bW9kdWxlKSwicG9zdFByb2Nlc3NvciI9PT1tb2R1bGUudHlwZSYmcG9zdFByb2Nlc3Nvci5hZGRQb3N0UHJvY2Vzc29yKG1vZHVsZSksImZvcm1hdHRlciI9PT1tb2R1bGUudHlwZSYmKHRoaXMubW9kdWxlcy5mb3JtYXR0ZXI9bW9kdWxlKSwiM3JkUGFydHkiPT09bW9kdWxlLnR5cGUmJnRoaXMubW9kdWxlcy5leHRlcm5hbC5wdXNoKG1vZHVsZSksdGhpc319LHtrZXk6InNldFJlc29sdmVkTGFuZ3VhZ2UiLHZhbHVlOmZ1bmN0aW9uKGwpe2lmKGwmJnRoaXMubGFuZ3VhZ2VzJiYhKFsiY2ltb2RlIiwiZGV2Il0uaW5kZXhPZihsKT4tMSkpZm9yKHZhciBsaT0wO2xpPHRoaXMubGFuZ3VhZ2VzLmxlbmd0aDtsaSsrKXt2YXIgbG5nSW5MbmdzPXRoaXMubGFuZ3VhZ2VzW2xpXTtpZighKFsiY2ltb2RlIiwiZGV2Il0uaW5kZXhPZihsbmdJbkxuZ3MpPi0xKSYmdGhpcy5zdG9yZS5oYXNMYW5ndWFnZVNvbWVUcmFuc2xhdGlvbnMobG5nSW5MbmdzKSl7dGhpcy5yZXNvbHZlZExhbmd1YWdlPWxuZ0luTG5nczticmVha319fX0se2tleToiY2hhbmdlTGFuZ3VhZ2UiLHZhbHVlOmZ1bmN0aW9uKGxuZyxjYWxsYmFjayl7dmFyIF90aGlzND10aGlzO3RoaXMuaXNMYW5ndWFnZUNoYW5naW5nVG89bG5nO3ZhciBkZWZlcnJlZD1kZWZlcigpO3RoaXMuZW1pdCgibGFuZ3VhZ2VDaGFuZ2luZyIsbG5nKTt2YXIgc2V0TG5nUHJvcHM9ZnVuY3Rpb24obCl7X3RoaXM0Lmxhbmd1YWdlPWwsX3RoaXM0Lmxhbmd1YWdlcz1fdGhpczQuc2VydmljZXMubGFuZ3VhZ2VVdGlscy50b1Jlc29sdmVIaWVyYXJjaHkobCksX3RoaXM0LnJlc29sdmVkTGFuZ3VhZ2U9dm9pZCAwLF90aGlzNC5zZXRSZXNvbHZlZExhbmd1YWdlKGwpfSxkb25lPWZ1bmN0aW9uKGVycixsKXtsPyhzZXRMbmdQcm9wcyhsKSxfdGhpczQudHJhbnNsYXRvci5jaGFuZ2VMYW5ndWFnZShsKSxfdGhpczQuaXNMYW5ndWFnZUNoYW5naW5nVG89dm9pZCAwLF90aGlzNC5lbWl0KCJsYW5ndWFnZUNoYW5nZWQiLGwpLF90aGlzNC5sb2dnZXIubG9nKCJsYW5ndWFnZUNoYW5nZWQiLGwpKTpfdGhpczQuaXNMYW5ndWFnZUNoYW5naW5nVG89dm9pZCAwLGRlZmVycmVkLnJlc29sdmUoZnVuY3Rpb24oKXtyZXR1cm4gX3RoaXM0LnQuYXBwbHkoX3RoaXM0LGFyZ3VtZW50cyl9KSxjYWxsYmFjayYmY2FsbGJhY2soZXJyLGZ1bmN0aW9uKCl7cmV0dXJuIF90aGlzNC50LmFwcGx5KF90aGlzNCxhcmd1bWVudHMpfSl9LHNldExuZz1mdW5jdGlvbihsbmdzKXtsbmd8fGxuZ3N8fCFfdGhpczQuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3Rvcnx8KGxuZ3M9W10pO3ZhciBsPSJzdHJpbmciPT10eXBlb2YgbG5ncz9sbmdzOl90aGlzNC5zZXJ2aWNlcy5sYW5ndWFnZVV0aWxzLmdldEJlc3RNYXRjaEZyb21Db2RlcyhsbmdzKTtsJiYoX3RoaXM0Lmxhbmd1YWdlfHxzZXRMbmdQcm9wcyhsKSxfdGhpczQudHJhbnNsYXRvci5sYW5ndWFnZXx8X3RoaXM0LnRyYW5zbGF0b3IuY2hhbmdlTGFuZ3VhZ2UobCksX3RoaXM0LnNlcnZpY2VzLmxhbmd1YWdlRGV0ZWN0b3ImJl90aGlzNC5zZXJ2aWNlcy5sYW5ndWFnZURldGVjdG9yLmNhY2hlVXNlckxhbmd1YWdlKGwpKSxfdGhpczQubG9hZFJlc291cmNlcyhsLGZ1bmN0aW9uKGVycil7ZG9uZShlcnIsbCl9KX07cmV0dXJuIGxuZ3x8IXRoaXMuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3Rvcnx8dGhpcy5zZXJ2aWNlcy5sYW5ndWFnZURldGVjdG9yLmFzeW5jPyFsbmcmJnRoaXMuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3RvciYmdGhpcy5zZXJ2aWNlcy5sYW5ndWFnZURldGVjdG9yLmFzeW5jP3RoaXMuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3Rvci5kZXRlY3Qoc2V0TG5nKTpzZXRMbmcobG5nKTpzZXRMbmcodGhpcy5zZXJ2aWNlcy5sYW5ndWFnZURldGVjdG9yLmRldGVjdCgpKSxkZWZlcnJlZH19LHtrZXk6ImdldEZpeGVkVCIsdmFsdWU6ZnVuY3Rpb24obG5nLG5zLGtleVByZWZpeCl7dmFyIF90aGlzNT10aGlzLGZpeGVkVD1mdW5jdGlvbiBmaXhlZFQoa2V5LG9wdHMpe2lmKCJvYmplY3QiIT09KDAsX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fdHlwZW9mX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X18uWikob3B0cykpe2Zvcih2YXIgb3B0aW9ucyxfbGVuMz1hcmd1bWVudHMubGVuZ3RoLHJlc3Q9QXJyYXkoX2xlbjM+Mj9fbGVuMy0yOjApLF9rZXkzPTI7X2tleTM8X2xlbjM7X2tleTMrKylyZXN0W19rZXkzLTJdPWFyZ3VtZW50c1tfa2V5M107b3B0aW9ucz1fdGhpczUub3B0aW9ucy5vdmVybG9hZFRyYW5zbGF0aW9uT3B0aW9uSGFuZGxlcihba2V5LG9wdHNdLmNvbmNhdChyZXN0KSl9ZWxzZSBvcHRpb25zPV9vYmplY3RTcHJlYWQkNih7fSxvcHRzKTtvcHRpb25zLmxuZz1vcHRpb25zLmxuZ3x8Zml4ZWRULmxuZyxvcHRpb25zLmxuZ3M9b3B0aW9ucy5sbmdzfHxmaXhlZFQubG5ncyxvcHRpb25zLm5zPW9wdGlvbnMubnN8fGZpeGVkVC5ucyxvcHRpb25zLmtleVByZWZpeD1vcHRpb25zLmtleVByZWZpeHx8a2V5UHJlZml4fHxmaXhlZFQua2V5UHJlZml4O3ZhciBrZXlTZXBhcmF0b3I9X3RoaXM1Lm9wdGlvbnMua2V5U2VwYXJhdG9yfHwiLiIscmVzdWx0S2V5PW9wdGlvbnMua2V5UHJlZml4PyIiLmNvbmNhdChvcHRpb25zLmtleVByZWZpeCkuY29uY2F0KGtleVNlcGFyYXRvcikuY29uY2F0KGtleSk6a2V5O3JldHVybiBfdGhpczUudChyZXN1bHRLZXksb3B0aW9ucyl9O3JldHVybiJzdHJpbmciPT10eXBlb2YgbG5nP2ZpeGVkVC5sbmc9bG5nOmZpeGVkVC5sbmdzPWxuZyxmaXhlZFQubnM9bnMsZml4ZWRULmtleVByZWZpeD1rZXlQcmVmaXgsZml4ZWRUfX0se2tleToidCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgX3RoaXMkdHJhbnNsYXRvcjtyZXR1cm4gdGhpcy50cmFuc2xhdG9yJiYoX3RoaXMkdHJhbnNsYXRvcj10aGlzLnRyYW5zbGF0b3IpLnRyYW5zbGF0ZS5hcHBseShfdGhpcyR0cmFuc2xhdG9yLGFyZ3VtZW50cyl9fSx7a2V5OiJleGlzdHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIF90aGlzJHRyYW5zbGF0b3IyO3JldHVybiB0aGlzLnRyYW5zbGF0b3ImJihfdGhpcyR0cmFuc2xhdG9yMj10aGlzLnRyYW5zbGF0b3IpLmV4aXN0cy5hcHBseShfdGhpcyR0cmFuc2xhdG9yMixhcmd1bWVudHMpfX0se2tleToic2V0RGVmYXVsdE5hbWVzcGFjZSIsdmFsdWU6ZnVuY3Rpb24obnMpe3RoaXMub3B0aW9ucy5kZWZhdWx0TlM9bnN9fSx7a2V5OiJoYXNMb2FkZWROYW1lc3BhY2UiLHZhbHVlOmZ1bmN0aW9uKG5zKXt2YXIgX3RoaXM2PXRoaXMsb3B0aW9ucz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307aWYoIXRoaXMuaXNJbml0aWFsaXplZClyZXR1cm4gdGhpcy5sb2dnZXIud2FybigiaGFzTG9hZGVkTmFtZXNwYWNlOiBpMThuZXh0IHdhcyBub3QgaW5pdGlhbGl6ZWQiLHRoaXMubGFuZ3VhZ2VzKSwhMTtpZighdGhpcy5sYW5ndWFnZXN8fCF0aGlzLmxhbmd1YWdlcy5sZW5ndGgpcmV0dXJuIHRoaXMubG9nZ2VyLndhcm4oImhhc0xvYWRlZE5hbWVzcGFjZTogaTE4bi5sYW5ndWFnZXMgd2VyZSB1bmRlZmluZWQgb3IgZW1wdHkiLHRoaXMubGFuZ3VhZ2VzKSwhMTt2YXIgbG5nPXRoaXMucmVzb2x2ZWRMYW5ndWFnZXx8dGhpcy5sYW5ndWFnZXNbMF0sZmFsbGJhY2tMbmc9ISF0aGlzLm9wdGlvbnMmJnRoaXMub3B0aW9ucy5mYWxsYmFja0xuZyxsYXN0TG5nPXRoaXMubGFuZ3VhZ2VzW3RoaXMubGFuZ3VhZ2VzLmxlbmd0aC0xXTtpZigiY2ltb2RlIj09PWxuZy50b0xvd2VyQ2FzZSgpKXJldHVybiEwO3ZhciBsb2FkTm90UGVuZGluZz1mdW5jdGlvbihsLG4pe3ZhciBsb2FkU3RhdGU9X3RoaXM2LnNlcnZpY2VzLmJhY2tlbmRDb25uZWN0b3Iuc3RhdGVbIiIuY29uY2F0KGwsInwiKS5jb25jYXQobildO3JldHVybiAtMT09PWxvYWRTdGF0ZXx8Mj09PWxvYWRTdGF0ZX07aWYob3B0aW9ucy5wcmVjaGVjayl7dmFyIHByZVJlc3VsdD1vcHRpb25zLnByZWNoZWNrKHRoaXMsbG9hZE5vdFBlbmRpbmcpO2lmKHZvaWQgMCE9PXByZVJlc3VsdClyZXR1cm4gcHJlUmVzdWx0fXJldHVybiEhKHRoaXMuaGFzUmVzb3VyY2VCdW5kbGUobG5nLG5zKXx8IXRoaXMuc2VydmljZXMuYmFja2VuZENvbm5lY3Rvci5iYWNrZW5kfHx0aGlzLm9wdGlvbnMucmVzb3VyY2VzJiYhdGhpcy5vcHRpb25zLnBhcnRpYWxCdW5kbGVkTGFuZ3VhZ2VzfHxsb2FkTm90UGVuZGluZyhsbmcsbnMpJiYoIWZhbGxiYWNrTG5nfHxsb2FkTm90UGVuZGluZyhsYXN0TG5nLG5zKSkpfX0se2tleToibG9hZE5hbWVzcGFjZXMiLHZhbHVlOmZ1bmN0aW9uKG5zLGNhbGxiYWNrKXt2YXIgX3RoaXM3PXRoaXMsZGVmZXJyZWQ9ZGVmZXIoKTtyZXR1cm4gdGhpcy5vcHRpb25zLm5zPygic3RyaW5nIj09dHlwZW9mIG5zJiYobnM9W25zXSksbnMuZm9yRWFjaChmdW5jdGlvbihuKXswPl90aGlzNy5vcHRpb25zLm5zLmluZGV4T2YobikmJl90aGlzNy5vcHRpb25zLm5zLnB1c2gobil9KSx0aGlzLmxvYWRSZXNvdXJjZXMoZnVuY3Rpb24oZXJyKXtkZWZlcnJlZC5yZXNvbHZlKCksY2FsbGJhY2smJmNhbGxiYWNrKGVycil9KSxkZWZlcnJlZCk6KGNhbGxiYWNrJiZjYWxsYmFjaygpLFByb21pc2UucmVzb2x2ZSgpKX19LHtrZXk6ImxvYWRMYW5ndWFnZXMiLHZhbHVlOmZ1bmN0aW9uKGxuZ3MsY2FsbGJhY2spe3ZhciBkZWZlcnJlZD1kZWZlcigpOyJzdHJpbmciPT10eXBlb2YgbG5ncyYmKGxuZ3M9W2xuZ3NdKTt2YXIgcHJlbG9hZGVkPXRoaXMub3B0aW9ucy5wcmVsb2FkfHxbXSxuZXdMbmdzPWxuZ3MuZmlsdGVyKGZ1bmN0aW9uKGxuZyl7cmV0dXJuIDA+cHJlbG9hZGVkLmluZGV4T2YobG5nKX0pO3JldHVybiBuZXdMbmdzLmxlbmd0aD8odGhpcy5vcHRpb25zLnByZWxvYWQ9cHJlbG9hZGVkLmNvbmNhdChuZXdMbmdzKSx0aGlzLmxvYWRSZXNvdXJjZXMoZnVuY3Rpb24oZXJyKXtkZWZlcnJlZC5yZXNvbHZlKCksY2FsbGJhY2smJmNhbGxiYWNrKGVycil9KSxkZWZlcnJlZCk6KGNhbGxiYWNrJiZjYWxsYmFjaygpLFByb21pc2UucmVzb2x2ZSgpKX19LHtrZXk6ImRpciIsdmFsdWU6ZnVuY3Rpb24obG5nKXtyZXR1cm4obG5nfHwobG5nPXRoaXMucmVzb2x2ZWRMYW5ndWFnZXx8KHRoaXMubGFuZ3VhZ2VzJiZ0aGlzLmxhbmd1YWdlcy5sZW5ndGg+MD90aGlzLmxhbmd1YWdlc1swXTp0aGlzLmxhbmd1YWdlKSksbG5nKT9bImFyIiwic2h1Iiwic3FyIiwic3NoIiwieGFhIiwieWhkIiwieXVkIiwiYWFvIiwiYWJoIiwiYWJ2IiwiYWNtIiwiYWNxIiwiYWN3IiwiYWN4IiwiYWN5IiwiYWRmIiwiYWRzIiwiYWViIiwiYWVjIiwiYWZiIiwiYWpwIiwiYXBjIiwiYXBkIiwiYXJiIiwiYXJxIiwiYXJzIiwiYXJ5IiwiYXJ6IiwiYXV6IiwiYXZsIiwiYXloIiwiYXlsIiwiYXluIiwiYXlwIiwiYmJ6IiwicGdhIiwiaGUiLCJpdyIsInBzIiwicGJ0IiwicGJ1IiwicHN0IiwicHJwIiwicHJkIiwidWciLCJ1ciIsInlkZCIsInlkcyIsInlpaCIsImppIiwieWkiLCJoYm8iLCJtZW4iLCJ4bW4iLCJmYSIsImpwciIsInBlbyIsInBlcyIsInBycyIsImR2Iiwic2FtIiwiY2tiIl0uaW5kZXhPZih0aGlzLnNlcnZpY2VzLmxhbmd1YWdlVXRpbHMuZ2V0TGFuZ3VhZ2VQYXJ0RnJvbUNvZGUobG5nKSk+LTF8fGxuZy50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIi1hcmFiIik+MT8icnRsIjoibHRyIjoicnRsIn19LHtrZXk6ImNsb25lSW5zdGFuY2UiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIF90aGlzOD10aGlzLG9wdGlvbnM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9LGNhbGxiYWNrPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpub29wLG1lcmdlZE9wdGlvbnM9X29iamVjdFNwcmVhZCQ2KF9vYmplY3RTcHJlYWQkNihfb2JqZWN0U3ByZWFkJDYoe30sdGhpcy5vcHRpb25zKSxvcHRpb25zKSx7aXNDbG9uZTohMH0pLGNsb25lPW5ldyBJMThuKG1lcmdlZE9wdGlvbnMpO3JldHVybih2b2lkIDAhPT1vcHRpb25zLmRlYnVnfHx2b2lkIDAhPT1vcHRpb25zLnByZWZpeCkmJihjbG9uZS5sb2dnZXI9Y2xvbmUubG9nZ2VyLmNsb25lKG9wdGlvbnMpKSxbInN0b3JlIiwic2VydmljZXMiLCJsYW5ndWFnZSJdLmZvckVhY2goZnVuY3Rpb24obSl7Y2xvbmVbbV09X3RoaXM4W21dfSksY2xvbmUuc2VydmljZXM9X29iamVjdFNwcmVhZCQ2KHt9LHRoaXMuc2VydmljZXMpLGNsb25lLnNlcnZpY2VzLnV0aWxzPXtoYXNMb2FkZWROYW1lc3BhY2U6Y2xvbmUuaGFzTG9hZGVkTmFtZXNwYWNlLmJpbmQoY2xvbmUpfSxjbG9uZS50cmFuc2xhdG9yPW5ldyBUcmFuc2xhdG9yKGNsb25lLnNlcnZpY2VzLGNsb25lLm9wdGlvbnMpLGNsb25lLnRyYW5zbGF0b3Iub24oIioiLGZ1bmN0aW9uKGV2ZW50KXtmb3IodmFyIF9sZW40PWFyZ3VtZW50cy5sZW5ndGgsYXJncz1BcnJheShfbGVuND4xP19sZW40LTE6MCksX2tleTQ9MTtfa2V5NDxfbGVuNDtfa2V5NCsrKWFyZ3NbX2tleTQtMV09YXJndW1lbnRzW19rZXk0XTtjbG9uZS5lbWl0LmFwcGx5KGNsb25lLFtldmVudF0uY29uY2F0KGFyZ3MpKX0pLGNsb25lLmluaXQobWVyZ2VkT3B0aW9ucyxjYWxsYmFjayksY2xvbmUudHJhbnNsYXRvci5vcHRpb25zPWNsb25lLm9wdGlvbnMsY2xvbmUudHJhbnNsYXRvci5iYWNrZW5kQ29ubmVjdG9yLnNlcnZpY2VzLnV0aWxzPXtoYXNMb2FkZWROYW1lc3BhY2U6Y2xvbmUuaGFzTG9hZGVkTmFtZXNwYWNlLmJpbmQoY2xvbmUpfSxjbG9uZX19LHtrZXk6InRvSlNPTiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm57b3B0aW9uczp0aGlzLm9wdGlvbnMsc3RvcmU6dGhpcy5zdG9yZSxsYW5ndWFnZTp0aGlzLmxhbmd1YWdlLGxhbmd1YWdlczp0aGlzLmxhbmd1YWdlcyxyZXNvbHZlZExhbmd1YWdlOnRoaXMucmVzb2x2ZWRMYW5ndWFnZX19fV0pLEkxOG59KEV2ZW50RW1pdHRlcik7KDAsX2JhYmVsX3J1bnRpbWVfaGVscGVyc19lc21fZGVmaW5lUHJvcGVydHlfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5aKShJMThuLCJjcmVhdGVJbnN0YW5jZSIsZnVuY3Rpb24oKXt2YXIgb3B0aW9ucz1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sY2FsbGJhY2s9YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDA7cmV0dXJuIG5ldyBJMThuKG9wdGlvbnMsY2FsbGJhY2spfSk7dmFyIGluc3RhbmNlPUkxOG4uY3JlYXRlSW5zdGFuY2UoKTtpbnN0YW5jZS5jcmVhdGVJbnN0YW5jZT1JMThuLmNyZWF0ZUluc3RhbmNlLGluc3RhbmNlLmNyZWF0ZUluc3RhbmNlLGluc3RhbmNlLmluaXQsaW5zdGFuY2UubG9hZFJlc291cmNlcyxpbnN0YW5jZS5yZWxvYWRSZXNvdXJjZXMsaW5zdGFuY2UudXNlLGluc3RhbmNlLmNoYW5nZUxhbmd1YWdlLGluc3RhbmNlLmdldEZpeGVkVCxpbnN0YW5jZS50LGluc3RhbmNlLmV4aXN0cyxpbnN0YW5jZS5zZXREZWZhdWx0TmFtZXNwYWNlLGluc3RhbmNlLmhhc0xvYWRlZE5hbWVzcGFjZSxpbnN0YW5jZS5sb2FkTmFtZXNwYWNlcyxpbnN0YW5jZS5sb2FkTGFuZ3VhZ2VzLF9fd2VicGFja19leHBvcnRzX18uWlA9aW5zdGFuY2V9fV0pOw=="}},"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":"osspremium.s3.us-east-2.amazonaws.com/a/a_642f08/20250419104503001cfc23cc.webp","fqdn":"osspremium.s3.us-east-2.amazonaws.com","domain":"osspremium.s3.us-east-2.amazonaws.com","tld":"s3.us-east-2.amazonaws.com"},"ip":{"addr":"3.5.129.105","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.464Z","timestamp":1785127668464,"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.us-east-2.amazonaws.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M01","organization":"Amazon"},"validity":{"start":"Sun, 12 Jul 2026 00:00:00 GMT","end":"Mon, 25 Jan 2027 23:59:59 GMT"},"fingerprint":{"sha1":"3D:BB:9A:8E:A8:9C:1D:D8:DF:47:3C:1C:F9:66:6D:AE:B2:C2:1F:70","sha256":"42:D0:E2:21:4B:C9:30:88:F5:97:C9:BD:04:E3:2C:89:B6:2A:4D:36:49:87:B6:73:E9:61:34:78:33:A1:28:79"}}},"request":{"raw":"GET /a/a_642f08/20250419104503001cfc23cc.webp HTTP/1.1\r\nHost: osspremium.s3.us-east-2.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\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nx-amz-id-2: H4JVo8EdV+XwYQbsyCPmsoXAhB1uIppypW3WDAZFMogQUDlu7ZAk6xRx5b1blNHC4OorebiXUfo5tCintYDpSTYv5PbEatEV\r\nx-amz-request-id: BPBX34JV8J6Y6RXY\r\nDate: Mon, 27 Jul 2026 04:47:49 GMT\r\nLast-Modified: Sat, 19 Apr 2025 02:45:04 GMT\r\nETag: \"1d0237abd009f08bea8925fe3b842052\"\r\nx-amz-server-side-encryption: AES256\r\nAccept-Ranges: bytes\r\nContent-Type: image/webp\r\nContent-Length: 133102\r\nServer: AmazonS3\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}],"data":{"size":133102,"size_decoded":133520,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image","md5":"1d0237abd009f08bea8925fe3b842052","sha1":"2f384d57b22147d0526695a9f718457f77abb6df","sha256":"47f23016743edef8d7b484c29a80b302dff196bef1fd818eebed8f016199f1d9","sha512":"7d5906176e99be6064b9da560239b3b72fa0823a84dc28ea8da1fa7328fe7f228f413323d238416e5a463cf972775897b8020557061240619cf443749e6db6f1","ssdeep":"3072:KHaRZyI0Unpzbl6lsWkCG4SEAKNfvVQI2oM:KHaRZhzb2EF/6nVS","tlshash":"edd312844660d36cfc93c03a3434524726bc9925f7ccf8dee820f8a92d46dfb69195ba","first_seen":"2026-07-27T03:56:11.641885Z","last_seen":"2026-07-27T10:05:53.93931Z","times_seen":4,"resource_available":false,"data":"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"}},"time_used":678,"timings":{"blocked":-1,"dns":0,"connect":108,"send":0,"wait":133,"receive":324,"ssl":113},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"osspremium.s3.us-east-2.amazonaws.com/a/a_a4415d/20250830102250dfd7da72ac.ico","fqdn":"osspremium.s3.us-east-2.amazonaws.com","domain":"osspremium.s3.us-east-2.amazonaws.com","tld":"s3.us-east-2.amazonaws.com"},"ip":{"addr":"3.5.129.105","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:49.819Z","timestamp":1785127669819,"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.us-east-2.amazonaws.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M01","organization":"Amazon"},"validity":{"start":"Sun, 12 Jul 2026 00:00:00 GMT","end":"Mon, 25 Jan 2027 23:59:59 GMT"},"fingerprint":{"sha1":"3D:BB:9A:8E:A8:9C:1D:D8:DF:47:3C:1C:F9:66:6D:AE:B2:C2:1F:70","sha256":"42:D0:E2:21:4B:C9:30:88:F5:97:C9:BD:04:E3:2C:89:B6:2A:4D:36:49:87:B6:73:E9:61:34:78:33:A1:28:79"}}},"request":{"raw":"GET /a/a_a4415d/20250830102250dfd7da72ac.ico HTTP/1.1\r\nHost: osspremium.s3.us-east-2.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\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nx-amz-id-2: sfLP9NA2P5VGgjZm0pNIgQKLNDqlrDE5vQJapx1fDJ3hfwu/Tes76UhpKsEUs1f3dvaQrf2M2j3go9ZhISqEXs2ROs32MTNZ\r\nx-amz-request-id: 8PVTMEBTHCWZ2RPT\r\nDate: Mon, 27 Jul 2026 04:47:50 GMT\r\nLast-Modified: Sat, 30 Aug 2025 02:22:51 GMT\r\nETag: \"3fab1671f467b65bd312ce075cdc37ad\"\r\nx-amz-server-side-encryption: AES256\r\nAccept-Ranges: bytes\r\nContent-Type: image/vnd.microsoft.icon\r\nContent-Length: 7613\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":7613,"size_decoded":8043,"mime_type":"image/x-icon","magic":"MS Windows icon resource - 1 icon, 256x256 with PNG image data, 256 x 256, 8-bit/color RGBA, non-interlaced, 32 bits/pixel","md5":"3fab1671f467b65bd312ce075cdc37ad","sha1":"691873600e318e9a279872596a332fa700deae5d","sha256":"5b0a90f470c122cc5ad179e9be09c85f87d979a4225ea67d6b15b443d151eae8","sha512":"80c0f638807756e2b2cba82c6c65e5db458efbc91a5f71a52ae24365447d8362eacd41d61feaa3d5fbaa697295f232950ef5fa2b9be515a86a1a6419300b52b2","ssdeep":"192:D1iQWChI+prXzuRhHoYAEgVfwOeqZLmBDpS:DXuR+J4OjMpS","tlshash":"43f1a0c43bcc4ff79d451375822adf818e537b86f75a425a4d01657093e2b14e3c46c5","first_seen":"2026-07-27T03:56:11.709391Z","last_seen":"2026-07-27T10:05:53.939793Z","times_seen":4,"resource_available":false,"data":"AAABAAEAAAAAAAEAIACnHQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAHW5JREFUeNrt3WmMHOed3/Hvv6p7Ls5weIk6KJmmKVGSJVuWZK2vxHsZ8cYGFlhjkywWSbz22t7Ae2Cd480GwTobIC82ARLEayO214Yv7CarBDECxZYsWZYtyRIlcSSRkkiKN+fiXJyZnqOnj6p/XjzVnBEtSiI53dPH7wMUuqene7pZ7PrV8zz1HIa0FPusA/QA/wH41232z3MgBarZVllzvwqUgSWgUNsMChgFYD6F8zgTOGPAGDFT+RJL1Xz2lwG31fukQAnIZz9/yzru+5TTISVNxoD4ovu57HDtyg7XbqAf2AoUcYpuLJuzSAiEWWCWlPlqnsUsNJYdFrLgWMAp5AYoJrkQCA7wOQ/vlgeS7BN8ub1DQQEgzXbw20Uh4K9zWyspuNd+dtLssbVbBVgEZoAxgzMOp4BTGKeri4waLBNdeL6v2TqCAkCaNQhe7/6V2oXxNmCfwTTGDKu3k8A4MAKM0MV4dJ6Kd2fVhc84LAM3A3+xnh9JASDSKL3Zdh2vbQEoA6PAMeAQzkFb4Yj3MkXKMs4KUGGBCgXgc9mrdmahkABfau0wUABIJ7CLbmG1tr8bGDR4B/D3SZkGhi+EAhzN/zpj1WNZckTttWMUANLpuoFrs63mHHDEjN3ATdWXOQpMYswTU7Bxqh5nYfDZrEDx9dYsCSgARH7Rdoy7gVuAX8c4AwwB+0l53k4z4W8jXIxt8eZCBYDIL8oDg9m2i1BNuM5gF85ev4XDOCdImDBjBQf/tK9WML7ROqUBBYDIG3OcAeAu4BaMXwEOAP8P4xngDKExMTy3xSgARN5YrU9CDHTjbAZ6LJQO3gU8DzxLwlnrpeJVWqpdQAEgcnli4CbgBuDdwDsx+sjzlCeMEbEYO0kK9H7KWe4jdEf6WnOGgQJA5MqD4FrgPmC7GXc6PIjzgofORS1BASBydcdP7RLidguh0A+8EMHYSsyKrYDPAb+XVQuabMBRm3VrENkwu4HfBn4f+ITD22KHrgTY1rwfWiUAkfXRTWgX6PYwarFSjeh1OGIxJc8TuhF/PisJfKU5SgIKAJH1tY3QLtAPDJqx4MucoZfUFnEfbK4PqyqAyPoywiXC24GPYPwT6+Y99GGWJ1w/uBH4YnN0GVAJQKQ+BoH3EEYhVm2J82kPY/YqJYB4OkxxtNFUAhCpn35gH/BRnE9Yyi5zsBS8tzk+oEoAIvVjwGZCSSDBOUs3BYPZtJuEz2XVgA3sJKQSgEj9bQPeZfBRUj7oKZusSUYNqAQgUn8GXOPwIWARY9iNI4QJTdnIkoACQKRxx9ptwJLDEZwl4ASr8w9vCFUBRBprjzkfM+c9QC5Os6Nwg45EBYBIY20BPgDcZ85NHtFlCVjCalVAASDStiJCH4G7DT6Cc/1GfxgRaaw8oT3gVx32eI7Yc9hGLDegABDZGLsc7gVuJWEHCfFGTCimABDZODuBu6KUOyKnx1Lg0x42BYBI28tlVwN+CaffVAUQ6ShdbtzmxrsddqQTWKOXJlUAiGycmLDE+V5gr13Ddosxi6BRixQrAEQ23nYz7rOIvRYRNbIqoAAQ2XhbHO4G3k4R8xzwl9lWZxoLILLxBoDbHG4kISZHlb9uzBurBCCy8boIU4vv8j52+hIxHwY+rAAQ6RS9wA1EvIM8A40aIKQAEGkOEXBdBLdHsLVRAwQVACLN4xrgVsJgoaDOIwTVCCjSPLa5s5vQKBjU+ZKgSgAizWOQsGpA/4V+QAoAkY7RSxggtNm7MB+k7p0BFQAizaUP2EGF7RTIKQBEOktM6BNwHWHiEAWASIcFwHbCFYG6N9IrAESaS0SYOHRbFgZ1pcuAIs0XAANRWFIsBkjr/GYi0mQBwJoAqCeVAESai2EMeOgTUPcAUAlApLlE+JoSQJ0vA6oEINJsARB6Ag7QgBO0SgAizcWAbqBHASDSmbqyre6zAyoARJqLEarmeQWASOcGQE4BINKZGlYC0FUAkeZia45NlQBEOlTciDdRAIh0MAWASHNKGvEmagMQaS61zr8VGrA6qAJApPkCoJptdQ8AVQFEmk+VBpUAFAAizUUlAJEOVwHKCgCRzuPAClCkvrOBKQBEmlAKLAGLjQgAXQUQab4AWDCnQNYXoJ71AJUARJqLZwf/PA3oDKQAEGkuqRsLjQoAVQFEmiwAgEW31SqAAkCkswJg3o05BYBIJwaAMYMxRegMVFdqAxBpLlVgCmMSo6IAEOksKzhTREyTq38JQFUAkeZRBqaAeatkfQC0MpBIx5jFGSb0AgzqXEZXFUCkecwZDNvaAKgzBYBI85gGTgAFI5sS+Gv1nRhYVQCR5jHhxivAbKPeMBff++WW2Tu1LPS1j1j2iGc3BuZg7nguJtmyKTyvUoXHPqWvmDSrFWDcjZMYC/WfCSALABqw+MAG8Db8N0n7qhCK/2PAuSihnDaocp4D/rTJd06SbRVWp0qqXOJ2hdCAUgDmLJcv5MbPJ2lXDsywe75MLe/SXIx3dUGS9bZ86jP6GspGWSLU/UeilKI38JScA/6iSXeKsTo/WglYcVixMFPKCrVZU5wV7MJjBWACGMUY8Up5xDf1zJKkFVJPCP2s0wuhYpbS04ctL5K75ysX3rgy9Hl9JaWR5s05CAxDqML61xuTAjmgv0V2UgpUfbUUUAUPt579bJQMljAWHCvgvmDVZNZhBmMaZwqYAhv3KHe279zYcmnzINaWtSBpIXMOB8w5iTW2+tpKVwEioCvbLscSoVQwBoyCj2KcjKrlIyuDW8bNfQ73RcOK5b6kEhdjovd+GTwinb8ZZu6EGx6Hl/+xvqay3pxQfR0FDqcJ48QKgPW2yWAXsB3jZmAFfMncZwn1rkMYQzhHts/nz811pWpAlEapACcMXnZjItdDuVpp7AfolH4A3dk2eNHjNwO7HXYn5odnu9JTwDgw7dhMvGNoxbYcwqpdcPd/C/9jz/+JvrayngFwCDhgMJ8mjf8And4RaDvwXuDdwBxwFjgIPG34s8nCntNGNdl947/30ck/1NdV1tsS8LxHHCA0aCsAGiyfbQDbDL8G2Ilzk5PeGvVMPx+l6dD06O+PV3vy1cgd3Mn1/znVj90J96tdQK7YInAMOOIxI0CFlLp3/VUAvLF+4DZgD/Be8Gfd6C519T4XeTqRxPlij30qrdx0O8wtw91/FV71/B9pz8nlSIFT5jwNnIpKrAAkG3A0KgBeqzYGo9fgBuD9GJtT7E7HnjBPhyrvvGvaczHMFbW35EqVCXX/B4HhdAOH5CkALi0mhMD1YNcBg+ZpN/3dL3rqUxRWVjj6u869/xPe91/DK/b/qfaavJkV4BQwlEYcYCuzF4b+fLXx/VEUAG/KDNhr+CZgHylPmPN974qPc8f/LuOmy4ZyOSaAh904gLFo58Hjjfswmg/grekF9uB8EPiHBh+LuuJ30V/p6l7ZArleyHfBh76hPSWX4oSGv8NuPIZxFKfqxmoH9Q2gEsDl6cd5F9igQZ+lNlXaem7UiuWqx73Q1a09JJeyYnAEeApnaNsy4zN9G/+hFACXJwI2g98M/Kql8Sylvoc2jU0dLW3tobJlF9zxd+GZ6josqxJg3OERMx6JYOL82oP/axs3FkUBcGV6gLuAvMH88u53zDjxXBwdribVfdo7cvHBfw54AePhdAvPWEJCGfjSxg9CUwBcuUGDW3F+k2o1wv0BozK1ac//AGDpqHaQAGEo+36cv3V4JR6hikPP0dANUAHQugzYCnwQSM18JC1vebY48ffmzVLP3ft+AKoH1IW4Qzlhbr9XcB7xhJ9S5HySzVC39MvA0MZ/SF0FuPr9dw3YPeC/ZVHl/RZV81ja8TtGBz8rwEGcv3Z4GGcuv5eEmNDDpEmoBHD1ah2GPgxMGLwcw1gVSwyHe78annXgD7SnOscc4fz+Q4efUeIsMUllnNXZKr/aHJPQqASwPnqAfcA9wJ0JbDNUCuhAKbCA8Srwt57yv3DGP/KfSC57GpsGUQlg/eSB2x0+CszElkylHrO1awJo4ETvslESYBJ4BngE4wmKjMRbSR75M1ZHmXyzuaafUwlgfd0E/BpwW5Wunmqu2+YrO5iv7NCeaV9OaOkfwXkG5/+4cb/nOGnXkvznv8oO/G9Y2JqMSgDrq4fQHnC7ke6Lk/JxYFm7pa1VCSP7fobxKHCQmOl4gSQpwxc+29wfXiWA9dcP3AHcTeg6jCVOrjZ3gLSLEqHI/5zBQwYPWJ5HrcIwVZJkJ+H0mqMpz/w1KgHUYZ863IEzAjwJTGrS8bZTJswd+VPgYYcXDIYtx4rX6vot0gasAFh/kcEuh1vNuT5XTk4n+ShBy5W1y4E/QpjK6yDwc3eeI+EcOaqUwKrA7uzZ/6X5o18BsP4M6Da4HnhHko9OEvqCJ529W1qWs7o03RjwqBs/toiniZikTAUjIUwX2XJLzCgA6mfAzPcBR4EpBUDLmgZeJQzlfcWNQxhH/dMM21fwWj3fszH9yXdbKwIUAPXTC9yGcQh4EYD3hbUF2K+1BZpUbS3KMmENyjngqMMTwJOkvAQs0k2V7+F+Dnh/9sovtmZLjwKgfvocu5VQI9TVltaQEkprxwiX9g4CxwkNfhOcZ8524l5tn/9RBUD9dBM6Bt3g5j1xNV5K8lXtleZSIozKXci2SeA0oaj/IvBilDDltYN9G3iFUNEvAg9amNdXASCvIwIGgG1uvqWyvTDLYq8GCDSPFULj7DGDlz2c7U8QJu0sAMsYS97m13AVAPVlwKBh17HQN2VuBWiZS8TtokQ4uxcIdfraNk0YvXkWOIVx3CPOWULpwisdfG1Rv4k79CgAmteAud1kbmeyL6G8dX6Jn1/v9uItIRTUp4Axc846nHQ4QcQJizhHyiJOOXtulZS03c/4CoDG6zfnRkJ1YD3lO2DfWXZwJoSCU5VwRi8SivDFNfeXee2Zfj67v/axGWCGiJn8CZYqu8HtEtfuv9YZSaAAqL9NwLWEMQLrxQl11ZPZ/2G79DGonb2rQBXPbi27DZfnlgnz6y8ACwYL7iw4FDBmgCkiJoiZYoCClUgp4K9ptXe8vI8L5Qf/Sud21lYA1F+PG1sJIwXXSwX4PqHhKqJ9uhmvLdKna27X3q+FQWXNVguHMsYKxgp7WLFDOHnCnE3qiK0A2KgAALascwCkwOFsk4sjxIHT4LcQemGczI7/Fu2sowBobd34ugeAiAKgZQIgrCbUvR5DRfzrOou9Zn9oFygAmlwevB/o0tdVFACdJwbrpqlmgxcJNEilIQFwoS1aRAHQgbq0r6UZqQrQuP28LgFg/HPtzTqrNbM6nrXa2JqtSuiLFGU/39/S/1adlRoj1r6WZqQSQGPUuqeslxj4AGEpsggNMHwr+39tb8La2IJ0zc/lbCtl29r7RcK8AYtQWoq4JnFWsj/3yTX/sbW3qAC/A/xN9njzlhIUAI1RWeeDNAf8BvAn2X3NNPLmAZCw2o344q20eoCzsOa2NpBoFpgCn4CeSWdxHqIyRBcHSbZ5ary8OmEgnyTk9NphG99UAHSQ6joHgBEGGQ205u5oCmsP2trYgjJQ9gslACvbhRKAL4eQsCWIFwijDecIIwwnCJOLnIN02ugrwTGMfNP3/FAA1F+tTLjeI/Z01r86EavtMpe7dm8pHPw+BTZmcMbx02CnjXgEkkmwIq8ZurypbMw6xFko/DPgDGFW0b9UALSxBLyM6untpBvYDgyAXw/cbuHSwBLYAnAeGCZMMXY0bJURw6vNViJQANRflXAWqGhXtJVaBb8vC4O1VgiLiJwyeBX8VSiednJTWTicB58zbis504Q2Agj9xWoFu28pANpECawQbqVDdAG7gGuAu7JAmGV1uvEhsEPO6DA8UIXPWFhXqPEUAA0JAOYVAB0lIlQTulltqL0xC4QbDfaBvRe2H3M+eRLsDERjRjld7Xi0DxgEPg58UQHQ0gFgzBHOAtK5HNgJ7CCUCuaB0wY/d3gS0ufBJrP2ogpcm4YAWFtF+LYCoBUDwNznMFY0Grij1foS1zoE7CQsH7fZ8NvBTgEvAAfAjhg3LjoxoXtC/SgA6q8IzOAUtSvkIgPAbYTy/gJwK7DD8M3QfQx8DtJiTFJNiXH+I3A38APgSwqAFrHoxjlC7zKR1xOBDwB3h2Xl/QPgz4I9AnbY8PP1emMFQAMCABh18wU6bdUJucwQYEu27QKuNXwAfFdK9FIEZ5yhJecQTjehIxHAd6/6TaW+FlJjJI284Oa4qSFA3lQfcCeh9e9fAL/l+C0pN+ac7baefQRUAqivhNDaO3X3C7uLz991VntE3oo423qA9ziWBzYbs084fgB+ZwJySehc+nvZS64sFBQA9T34Z4HpKLXCwTtHtEfkSmwF7gN2g7/dIHbyByCdhK4yVLIi5Se5ksuECoD6KQKngFHUDViuTjdwPfBBYMCwhxz7ESSnwK+qf4kCoL4BcJQw5CsMBHrmj7VX5GqO1RsJ60x2hw5DSQ44AVEREr+ShkEFQP0sA0ctBEC7LN4pGy8P3BuuENigw0PgR+DK+pkoAOqnABzDfBjXUGBZV4PAXeBLBjhukB4zuhecMlyYOPY7CoAN4ISZZSYxP8Xk3mm//rA6AMh6yxPmhRwMXzkzp3yQy2xvUj+A9ZcQGv8OOcywbZjr9n/B377/C9ozsp6M0Di4z7CPG/YrYLuzVagybz6FvEoA668CvOzwDG6FNK4w+onPwPmb4DHtHFl3mwjzii0S5iWsAmfB05ARn86e9k0FQIOUgcOecgBsAXOY2gOxpvCTuskB91g2w7GHzmcFsOStvFDWT7j27xzxlegMh7eXuHMaytvgpc9r70g97QQ+BJwFZiAaiqjOp2x6wxepDWB9nXF41I3j33nlB6Xc+yYhtbCJ1F8/8A8Mftvg+phFVtc7eX0qAayfEmHOt8ccTn/ynt/ADIg1+EcaJge8A/gl8PsSNi/mKI0mmPslLg2qBLBOB7/h44YfMnjO7Z9OEBluOvNLQ9VmHNpl+EeB+1LotjeYikolgPUxB/Zj8CcMm8n5d4iyYlf50L/S3pFG2+bY+4FhD7MQn4W4HPoLfJG1k4yqBHB1nNWi/4ORR0PmJOYxZfop0689JBuhG9hLWDz2bmBH+JpWgT9/zRMVAFcnBYZwfohzKJfmps1JV1eYF9lQtxl83GCPUcFIgF97zRNUBbhyFcLyTz8DfuIwWooqSUTonc2BP9Aeko12PfA+sJ85mw9CvAS9Kfxy9usvqgRwFYYNHjX4MXDInWWd96XJ5IFrwd8J1dug1HfxwFSVAC5fAowATxDmZz4ELEZRWNypOqQOP9JUNgHvMfwU2LBTXYSnLvxSJYC3rnYt5ZzB4wYPAD+J4Jyu9kkTiwkTjH4A2BZRAW7ONpUALkcVeBl4klDsPwDMrR3onwz9ofaSNJuIsCbhXsf3Ot1jsFAgm6VKAfDGPDvwlwh9rB/C+ZHDEDBXO/NXD+jAl6ZVW5Jsp8EdDmfAD4Ol8DkFwJtIswUbf+7GgzgvGJzxhEKkPSetZQC4MyI6An4UjBSVAN7IHGE+vxcx+1EaJT+mrzgZLWxKyTnupiK/tJI+w24H9jhx3qiUIK8AuIRlYMjxh83sUaLoOJYusPN4agt3aZFfaUW9jt8MvB1sU8TEYsomBcAaRWAcGANOOOwHnkm67aW4UCpZl+Fjd5HEWbPfM3+kPSatJAI2Azc4ye4qNyzBymInB0CabVVCR+lhc55x4+ep2QHwEXMKUdUrzC/h//I34bEXYex8B+8yaQM7Ib0DmAA6OgCWCXX8I+CvAifAzphz2mMb3T5XLM4OdIf5VhOHJ1+BfF6Le0ir22rYXsKVrDPtHgBO6LlXJfTdr2T3CwajDi84/rR7+pxXVs6aRdXBa96dzheOM7OlN7w6hWT038L9+uZIW9hisIewtkBHtAEUwMbBa/X70Wy1npOEWVRn3NPzXf07y2m5yMLsMYjVtU/aNwAc3g5sBmupAEgJZ/OLt7WPl4EVQoPeEmF21OnswB9z9zGDEcxGYrOxxN3DkgoR5YVz4AnEXTD0b/Q1kXa1iTBKcNDpiVshAKrZgV0EioavOFYEK1442J2iGSsYs+6MOz6CMQJMmlNgtfhfmyGx3B/HPl/VVN3ScSJgC7ANKltzwJeb9INmA+tJagev4WVCi/2FAxl/zc8LwHnMptNcOj04m19Y7H/9g7x28KcHdDlPOk4XsB3SG3PAn7XIh/Y1t36Jx7LNU1LS+S0Vw3Fw4kT1epGMhQDw3TnCKrZtL9GAHZG1ATAAvjOnA0OkYwNghyYEEenIAPD+CBQAIh0oAhsArlEAiHQeA/od264AEOnMAOgDtikARDozAHqBzQoAkc6UB7oVACKdKQa6FAAinccII4FVAhDpUDmgS3MCinRuAGhSUJEOZIQ2AFMVQKRzQ0Dr24h0qBRIFAAinae25mVFVQCRzlQFygoAkc6UKABEOlOtCqAAEOlQCZjaAEQ6kINVgKKuAoh0ZgYUgQWVAEQ68OgnLI47qwAQ6cwAWDJsRgEg0pEBYIsO5xUAIp0nBV9yUAlApAM5sIhKACKdHAA+pQAQ6cwAmAUfUQCIdJ4qcB4YVQCIdJ5iCIDecwoAkc5SAqbB5owZDQYS6TAFsLPAAvShABDpuABgxGABIs0KLNJh5gw/BczXVgcRkc5x3uEI4SqAAkCkg1SBCYcTwDygNgCRDjr4Z4Exg7EIVhQAIp1jBThNaABc8uxBBYBIZ1gyeNlCCLhlD6oNQKQzLDscMvwEYUpw4LsKAJE254R1AKfAj6Skw2Bp7ZeqAoi0txQYA46ADfexbQHcQy6oCiDS7hLgKDAETBeZB6zWBqgAEGlzFeCQ4/uBhYt/qQAQaV9VYBw4An4MKIbmgO9deILaAETa1xTYS2DH+9gxE5FLLn6CSgAi7esE+INgx5c5j73OExQAIu0nJfT1P+T4z6A6BlHW7v+91zxRVQCR9jMP7Dd41vCxbgZK4bKf/8ITVQIQaT/nDH4KPB8RL1YowutWABQAIu0kIVzqe9Wxx43uw06SOimhVqAAEGlnJWA/8CDYcZgrXcvfAeFaoAJApH1VgBHgQSf9Afisk2OcP85+/aXXfZEaAUXawzHg+w5PQTIO02XoetMXqQQg0toSwkw/Tzv2APAqdFVgJ6Ej4Jfe8MUqAYi0tvPAQ449BByGaD40+PlberFKACKtyYFJYL9jPwSeBWYg9dXz+vcUACJtahF4zPH/CzwO8Xg4+C+PAkCk9YwB+x1+wIVGP6qrnX2+rQAQaTMeDnIWgacc7g8Hvw9DyaEX+M5l/1EFgEhrSICTwCPAT4DngHNhdp/eK/6jCgCR5j/wC+FMz5OO3Q/RQWAuzO1X850r+uMKAJHmNgs8D/YA2OOEef0LkPilBvgoAERamxOG9J4FXgKeguiRe/nWkQP8I5wBVq/zf/uq3kgBINJcqoQRfS85/gDwc8OOAvPP8e+IeZyEzev2ZgoAkeYxCbwKHAQfClt6AvKF0LtvhoR3EQb9fUMBINLiUsIovhLhrP+iYT8B/3FK5ShEZYgTr63kxVfW/QMoAEQ2ThE4DBwKmx0FToOfjRhYdso4VdajsU8BILLxKtlBvwjMAcOOPws8DfEB2DYZMZWmxDjjhALCJkKfHwWASCtzYAo4TjjjvwB2GJgAnwWbjzmTOv0YKd6gD6UAEKmPEuFS3ixhyO4k4bLecYejYEfgW2eM38XJA07CNYRCAsADCgCRJudrbtfeLxKm4Tvh8DL4i4YfAZsAW+RCw9/nDYoO+Q37BygARK5ckXCWPw/MANOEYv5Udn8CGAXOOuVzEZtLTnnNyys4+wjNAQD/XQEgUmf+Bre1Lb3otnY/yW7LwFJ20I8bNgycTuEEcBJs1KAIaXX19TlPWWK1Rf9vmmJnKACkkw782kFc26rZY1VCsXwFbBm8aLAMLHu4XQIKhFP1bHZbIHsOoVV/AZiHqJCjUEzoo56X7xQAIpevFgCVNVuVcEZfyQ7keYN58HmwOWDesTnwSfAxYBRsMoJFv8RbVBkkTMtVW4zjm027Q/4/bozRLwA3MjYAAAAASUVORK5CYII="}},"time_used":130,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":130,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.no/ads/ga-audiences?v=1\u0026t=sr\u0026slf_rd=1\u0026_r=4\u0026ngs=1\u0026ibt=1\u0026tid=G-085T6Y7PBP\u0026cid=1959893868.1785127670\u0026gtm=45je67m0v9218747034za200zd9218747034\u0026rcb=19\u0026aip=1\u0026dma=1\u0026dma_cps=a\u0026gcd=13l3l3l2l1l1\u0026npa=1\u0026frm=0\u0026tag_exp=115938466~115938469~118897920~118897930~119724321~119896802\u0026z=615993120","fqdn":"www.google.no","domain":"google.no","tld":"no"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:49.891Z","timestamp":1785127669891,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.no","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:41:27 GMT","end":"Mon, 21 Sep 2026 08:41:26 GMT"},"fingerprint":{"sha1":"FE:B5:BE:35:CB:DF:57:B9:38:CA:36:5B:8F:BC:13:7C:DE:64:44:66","sha256":"17:D6:B8:5F:85:3E:90:82:55:F6:FF:8B:5F:2E:49:BC:4F:09:E5:AA:B2:2E:E6:F2:31:A1:1E:7E:FC:A0:C4:EC"}}},"request":{"raw":"GET /ads/ga-audiences?v=1\u0026t=sr\u0026slf_rd=1\u0026_r=4\u0026ngs=1\u0026ibt=1\u0026tid=G-085T6Y7PBP\u0026cid=1959893868.1785127670\u0026gtm=45je67m0v9218747034za200zd9218747034\u0026rcb=19\u0026aip=1\u0026dma=1\u0026dma_cps=a\u0026gcd=13l3l3l2l1l1\u0026npa=1\u0026frm=0\u0026tag_exp=115938466~115938469~118897920~118897930~119724321~119896802\u0026z=615993120 HTTP/1.1\r\nHost: www.google.no\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\np3p: policyref=\"https://www.googleadservices.com/pagead/p3p.xml\", CP=\"NOI DEV PSA PSD IVA IVD OTP OUR OTR IND OTC\"\r\ntiming-allow-origin: *\r\ncross-origin-resource-policy: cross-origin\r\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\npragma: no-cache\r\nexpires: Fri, 01 Jan 1990 00:00:00 GMT\r\ncache-control: no-cache, no-store, must-revalidate\r\ncontent-type: image/gif\r\nx-content-type-options: nosniff\r\nserver: cafe\r\ncontent-length: 42\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":42,"size_decoded":578,"mime_type":"image/gif","magic":"GIF image data, version 89a, 1 x 1","md5":"d89746888da2d9510b64a9f031eaecd5","sha1":"d5fceb6532643d0d84ffe09c40c481ecdf59e15a","sha256":"ef1955ae757c8b966c83248350331bd3a30f658ced11f387f8ebf05ab3368629","sha512":"d5da26b5d496edb0221df1a4057a8b0285d15592a8f8dc7016a294df37ed335f3fde6a2252962e0df38b62847f8b771463a0124ef3f84299f262ed9d9d3cee4c","ssdeep":"","tlshash":"c4900023fa808000c3a8c2300a0b238a2b8c80200a28030b80ae208cec3a3a22c03020","first_seen":"2023-04-05T02:54:03Z","last_seen":"2026-08-03T14:28:22.336569Z","times_seen":1018397,"resource_available":true,"data":"R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"}},"time_used":85,"timings":{"blocked":0,"dns":2,"connect":16,"send":0,"wait":35,"receive":0,"ssl":32},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"client.crisp.chat/settings/website/04c4ac10-ff79-40d3-97b2-e069177c1b37/?1783170208855","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:50.008Z","timestamp":1785127670008,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /settings/website/04c4ac10-ff79-40d3-97b2-e069177c1b37/?1783170208855 HTTP/1.1\r\nHost: client.crisp.chat\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://buvei.com/\r\nOrigin: https://buvei.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-type: application/json; charset=utf-8\r\naccess-control-allow-credentials: false\r\naccess-control-allow-headers: Content-Type, Origin\r\naccess-control-allow-methods: HEAD, GET, OPTIONS\r\naccess-control-allow-origin: *\r\naccess-control-max-age: 300\r\ncache-control: public, max-age=14400\r\ncross-origin-resource-policy: cross-origin\r\nexpires: Mon, 27 Jul 2026 08:47:50 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\npriority: u=4,i=?0\r\nage: 13519\r\nlast-modified: Mon, 27 Jul 2026 03:27:23 GMT\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\ncontent-encoding: br\r\ncf-ray: a21902219898c759-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":6967,"size_decoded":2840,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"4ea5ffc34e99207632de7ef4aae4f4c9","sha1":"71e5bfcf16e0ecb23cf7330722918fcd06d3e98d","sha256":"2b6e65b80785bd145f9c7c0677975f07f93f4d3e6f8f93e0668d3def31ca3c86","sha512":"ec779e83ffb6cf99ebadd45ba2f2dbbcf21e9c947ba12bffac4e0511ab4c371894372fbc62a37f3a9eb6a42b23e5e36c1d40948aac2f0b177535aaef0873a14c","ssdeep":"48:YSi6z/jFEdM0W/47dM04u7WdM0Ph6aEHskFrxi/MdhlPCIUHbbCjOewi/VgHM9Mz:/iouMj4BM8CMC6nMunn6nmnKQszBD","tlshash":"39e1a8165d4128ba59e9c254ea293f03453dcc7776477878e2e84a2d22ffbbc1312d36","first_seen":"2026-07-27T03:56:11.655404Z","last_seen":"2026-07-27T04:49:42.837526Z","times_seen":3,"resource_available":false,"data":"eyJ3ZWJzaXRlIjoiQnV2ZWkiLCJkb21haW4iOiJidXZlaS5jb20iLCJtYWlsZXIiOiJidXZlaS5vbi5jcmlzcC5lbWFpbCIsInNldHRpbmdzIjp7ImxvZ28iOm51bGwsImF1ZGl0X2xvZyI6dHJ1ZSwicmF0aW5nIjp0cnVlLCJ0cmFuc2NyaXB0Ijp0cnVlLCJlbnJpY2giOnRydWUsImp1bmtfZmlsdGVyIjp0cnVlLCJ0aWxlIjoieXl5Iiwid2FpdF9nYW1lIjp0cnVlLCJ3ZWJzaXRlX2xvZ28iOnRydWUsImxhc3Rfb3BlcmF0b3JfZmFjZSI6dHJ1ZSwib25nb2luZ19vcGVyYXRvcl9mYWNlIjp0cnVlLCJhY3Rpdml0eV9tZXRyaWNzIjp0cnVlLCJvcGVyYXRvcl9wcml2YWN5IjpmYWxzZSwidmlzaXRvcl9wcml2YWN5IjpmYWxzZSwiYXZhaWxhYmlsaXR5X3Rvb2x0aXAiOnRydWUsImhpZGVfdmFjYXRpb24iOmZhbHNlLCJoaWRlX29uX2F3YXkiOmZhbHNlLCJoaWRlX29uX21vYmlsZSI6ZmFsc2UsInBvc2l0aW9uX3JldmVyc2UiOmZhbHNlLCJlbWFpbF92aXNpdG9ycyI6dHJ1ZSwicGhvbmVfdmlzaXRvcnMiOmZhbHNlLCJmb3JjZV9pZGVudGlmeSI6dHJ1ZSwiaWdub3JlX3ByaXZhY3kiOmZhbHNlLCJ2aXNpdG9yX2NvbXBvc2UiOnRydWUsImZpbGVfdHJhbnNmZXIiOnRydWUsImF1ZGlvX3JlY29yZCI6dHJ1ZSwib3ZlcmxheV9zZWFyY2giOmZhbHNlLCJvdmVybGF5X21vZGUiOmZhbHNlLCJoZWxwZGVza19saW5rIjpmYWxzZSwiaGVscGRlc2tfb25seSI6dHJ1ZSwic3RhdHVzX2hlYWx0aF9kZWFkIjp0cnVlLCJjaGVja19kb21haW4iOmZhbHNlLCJjb2xvcl90aGVtZSI6ImRlZmF1bHQiLCJ0ZXh0X3RoZW1lIjoiZGVmYXVsdCIsIndlbGNvbWVfbWVzc2FnZSI6IjEiLCJsb2NhbGUiOiIiLCJhbGxvd2VkX3BhZ2VzIjpbXSwiYmxvY2tlZF9wYWdlcyI6W10sImJsb2NrZWRfY291bnRyaWVzIjpbXSwiYmxvY2tlZF9sb2NhbGVzIjpbXSwiYmxvY2tlZF9pcHMiOltdfSwib3BlcmF0b3JzIjpbeyJ1c2VyX2lkIjoiZDRjOTM2ZGUtNmNhMC00NzQ0LTgyZTYtYjcyYzk1MzAyZWY2IiwiYXZhdGFyIjoiaHR0cHM6Ly9zdG9yYWdlLmNyaXNwLmNoYXQvdXNlcnMvYXZhdGFyL29wZXJhdG9yLy0vZi80L2MvZi9mNGNmNmMzZmZjNTM2MDAwL2F2XzEzbnhjN2EucG5nIiwibmlja25hbWUiOiJBcmlhIiwidGltZXN0YW1wIjoxNzg1MDg1MjExNzQwfSx7InVzZXJfaWQiOiJkOGQyYzQ3Yi1lNmEwLTRjZjctYTU5My1jODZhOWQyMTExZjIiLCJhdmF0YXIiOiJodHRwczovL3N0b3JhZ2UuY3Jpc3AuY2hhdC91c2Vycy9hdmF0YXIvb3BlcmF0b3IvLS9lL2EvMS8zL2VhMTM0M2U3Njg5MzE4MDAvd3gyMDI1MDYxMy0xNTM1MzMyeF8xdWExYWcucG5nIiwibmlja25hbWUiOiJHcmFjZSIsInRpbWVzdGFtcCI6MTc4NTA4MTMxOTE3Mn0seyJ1c2VyX2lkIjoiY2Q3YWVmZWEtOWY3Mi00ZjczLTkxZWItYWMyODAwZGFmMTNiIiwiYXZhdGFyIjoiaHR0cHM6Ly9zdG9yYWdlLmNyaXNwLmNoYXQvdXNlcnMvYXZhdGFyL29wZXJhdG9yLy0vOC83LzgvMy84NzgzMDNiNTA2MjgyMDAwL2ltZzA1ODhqcGdfcDZibHdsLmpwZyIsIm5pY2tuYW1lIjoiQmVsbGEiLCJ0aW1lc3RhbXAiOjE3ODUwNzgwODg0NzN9XSwicGx1Z2lucyI6eyJ1cm46Y3Jpc3AuaW06Y3VzdG9taXphdGlvbjowIjp7InNldHRpbmdzIjp7InRleHQiOnsidGhlbWVfd2VsY29tZSI6eyJkZWZhdWx0X2NoYXQiOiJIaSDwn5GLIExvb2tpbmcgdG8gaXNzdWUgYXZpcnR1YWwgY2FyZCBvciBzdGFydCB5b3VyIHBlcnNvbmFsIGV4cGVuc2VzID8gVGVsbCB1cyB5b3VyIGdvYWwsIGFuZCB3ZeKAmWxsIGd1aWRlIHlvdSBzdGVwIGJ5IHN0ZXAuIn0sInRoZW1lX3RleHQiOnsiZGVmYXVsdF9jaGF0IjoiR290IHF1ZXN0aW9ucz8gTGV0J3MgdGFsayAtIGNsaWNrIGhlcmUhIn19fX0sInVybjpjcmlzcC5pbTpodWdvOjAiOnsic2V0dGluZ3MiOnsiYWdlbnRfZW5hYmxlZCI6ZmFsc2V9fSwidXJuOmNyaXNwLmltOnRyaWdnZXJzOjAiOnsic2V0dGluZ3MiOnsidHJpZ2dlcnMiOnsiUHJpY2luZyI6eyJuYW1lIjoiUHJpY2luZyIsImVuYWJsZWQiOmZhbHNlLCJhY3Rpb25zIjp7Im9wZW4iOnsiZW5hYmxlZCI6ZmFsc2V9LCJtZXNzYWdlIjp7ImVuYWJsZWQiOnRydWUsInNldHRpbmdzIjp7ImRlZmF1bHQiOiLwn5KzIEJ1dmVpIFZpcnR1YWwgQ2FyZCBQcmljaW5nIFxuQWxsIGNhcmRzOiAkMCBtb250aGx5IGZlZSDCtyBJbnN0YW50IGlzc3VhbmNlXG5cbk1hc3RlcmNhcmRcbkhLIMK3IDUyNTc5NyAvIDUzOTUwMiDigJQgJDUgaXNzdWUgwrcgMi41JSB0b3AtdXAgwrcgJDAuMjAvdHhuXG5HQiDCtyAyNTYwMDAgLyAyMzgwMDMg4oCUICQ1IGlzc3VlIMK3IDIuNSUgdG9wLXVwIMK3ICQwLjE1L3R4blxuU0cgwrcgNTMzMTcxIOKAlCAkNSBpc3N1ZSDCtyAyLjUlIHRvcC11cCDCtyAkMC4yNS90eG5cbkhLIMK3IDUyNTg0NyAob3B0aW1pemVkIGZvciBBcHBsZSBQYXkgJiBHb29nbGUgUGF5KSDigJQgJDEwIGlzc3VlIMK3IDIuNSUgdG9wLXVwIMK3ICQwLjI1L3R4blxuSEsgwrcgMjIzNTE0IOKAlCAkNSBpc3N1ZSDCtyAyLjAlIHRvcC11cCDCtyAkMC4yNS90eG4ifX0sInNvdW5kIjp7ImVuYWJsZWQiOmZhbHNlfX0sImV2ZW50cyI6eyJsZWF2ZSI6eyJlbmFibGVkIjp0cnVlfSwibGluayI6eyJlbmFibGVkIjpmYWxzZX0sInBhZ2UiOnsiZW5hYmxlZCI6ZmFsc2UsInNldHRpbmdzIjp7InVybHMiOlsiaHR0cHM6Ly9hcHAuYnV2ZWkuY29tL2NhcmQvaXNzdWUiXX19LCJ1cmxfcGFyYW1ldGVyIjp7ImVuYWJsZWQiOmZhbHNlfSwidXNlcl9ldmVudCI6eyJlbmFibGVkIjpmYWxzZX0sInVzZXJfZGF0YSI6eyJlbmFibGVkIjpmYWxzZX0sImRlbGF5Ijp7ImVuYWJsZWQiOmZhbHNlLCJzZXR0aW5ncyI6eyJhZnRlciI6NX19fSwiYmVoYXZpb3JzIjp7InNob3dfYXNfd2Vic2l0ZSI6eyJlbmFibGVkIjpmYWxzZX0sImlmX3dlYnNpdGVfb25saW5lIjp7ImVuYWJsZWQiOmZhbHNlfSwiaWZfZmlyc3RfdmlzaXQiOnsiZW5hYmxlZCI6ZmFsc2V9LCJpZl90cmlnZ2VyX3NvbGUiOnsiZW5hYmxlZCI6dHJ1ZX0sImlmX2NvdW50cmllcyI6eyJlbmFibGVkIjpmYWxzZX19LCJwbGF0Zm9ybXMiOnsiZGVza3RvcCI6eyJlbmFibGVkIjp0cnVlfSwibW9iaWxlIjp7ImVuYWJsZWQiOnRydWV9fX0sIm5ldy10cmlnZ2VyLTE3NTY4NjU5NjMxMDUiOnsibmFtZSI6ImFzayIsImVuYWJsZWQiOnRydWUsImFjdGlvbnMiOnsibWVzc2FnZSI6eyJzZXR0aW5ncyI6eyJkZWZhdWx0IjoiSWYgeW91IGhhdmUgYW55IHF1ZXN0aW9ucywgcGxlYXNlIGNvbnRhY3QgdXMuIn0sImVuYWJsZWQiOnRydWV9fSwiZXZlbnRzIjp7ImxpbmsiOnsiZW5hYmxlZCI6ZmFsc2V9LCJwYWdlIjp7InNldHRpbmdzIjp7InVybHMiOlsiaHR0cHM6Ly9idXZlaS5jb20vIl19LCJlbmFibGVkIjp0cnVlfSwidXJsX3BhcmFtZXRlciI6eyJlbmFibGVkIjpmYWxzZX0sInVzZXJfZXZlbnQiOnsiZW5hYmxlZCI6ZmFsc2V9LCJ1c2VyX2RhdGEiOnsiZW5hYmxlZCI6ZmFsc2V9fSwiYmVoYXZpb3JzIjp7ImlmX3RyaWdnZXJfc29sZSI6eyJlbmFibGVkIjpmYWxzZX0sImlmX3dlYnNpdGVfb25saW5lIjp7ImVuYWJsZWQiOnRydWV9LCJpZl9maXJzdF92aXNpdCI6eyJlbmFibGVkIjp0cnVlfX0sInBsYXRmb3JtcyI6eyJkZXNrdG9wIjp7ImVuYWJsZWQiOnRydWV9LCJtb2JpbGUiOnsiZW5hYmxlZCI6dHJ1ZX19fSwiaHR0cHM6Ly9idXZlaS5jb20vIjp7Im5hbWUiOiJob21lcGFnZV93ZWxjb21lIiwiZW5hYmxlZCI6dHJ1ZSwiYWN0aW9ucyI6eyJtZXNzYWdlIjp7InNldHRpbmdzIjp7ImRlZmF1bHQiOiJIaSEgQ2xpY2sgaGVyZSB0byB0YWxrIHRvIHVzIn0sImVuYWJsZWQiOnRydWV9LCJvcGVuIjp7ImVuYWJsZWQiOmZhbHNlfX0sImV2ZW50cyI6eyJsZWF2ZSI6eyJlbmFibGVkIjp0cnVlfSwibGluayI6eyJlbmFibGVkIjpmYWxzZX0sInBhZ2UiOnsic2V0dGluZ3MiOnsidXJscyI6WyJodHRwczovL2J1dmVpLmNvbS9ibG9nLyJdfSwiZW5hYmxlZCI6dHJ1ZX0sInVybF9wYXJhbWV0ZXIiOnsiZW5hYmxlZCI6ZmFsc2V9LCJ1c2VyX2V2ZW50Ijp7ImVuYWJsZWQiOmZhbHNlfSwidXNlcl9kYXRhIjp7ImVuYWJsZWQiOmZhbHNlfX0sImJlaGF2aW9ycyI6eyJpZl90cmlnZ2VyX3NvbGUiOnsiZW5hYmxlZCI6ZmFsc2V9LCJpZl93ZWJzaXRlX29ubGluZSI6eyJlbmFibGVkIjp0cnVlfX0sInBsYXRmb3JtcyI6eyJkZXNrdG9wIjp7ImVuYWJsZWQiOnRydWV9LCJtb2JpbGUiOnsiZW5hYmxlZCI6dHJ1ZX19fSwiYmluIjp7Im5hbWUiOiJiaW4iLCJlbmFibGVkIjp0cnVlLCJhY3Rpb25zIjp7Im9wZW4iOnsiZW5hYmxlZCI6ZmFsc2V9LCJtZXNzYWdlIjp7ImVuYWJsZWQiOnRydWUsInNldHRpbmdzIjp7ImRlZmF1bHQiOiLwn5SlwqBUb3AgQklOIFJlY29tbWVuZGF0aW9uc1xuTUhLM8KgKEhLKTogQmVzdCBmb3IgRkIvVGlrVG9rIEFkcywgU2FhUywgYW5kIHN1YnNjcmlwdGlvbiBwYXltZW50c1xuTVVLN8KgKEdCKTogU3Ryb25nIGZvciBFVSBlLWNvbW1lcmNlLCBhZHZlcnRpc2luZywgYW5kIHN1YnNjcmlwdGlvbnNcbk1VSzLCoChHQik6IElkZWFsIGZvciBBSSB0b29scywgU2FhUyBwbGF0Zm9ybXMsIGFuZCByZWN1cnJpbmcgcGF5bWVudHNcbk1TRzHCoChTRyk6IFJlbGlhYmxlIGZvciBnZW5lcmFsIHN1YnNjcmlwdGlvbiB1c2Vcbk1ISzEwIChISynCoDogb3B0aW1pemVkIGZvciBBcHBsZSBQYXkgJiBHb29nbGUgUGF5In19LCJzb3VuZCI6eyJlbmFibGVkIjpmYWxzZX0sInByZXNldCI6eyJlbmFibGVkIjpmYWxzZX19LCJldmVudHMiOnsibGVhdmUiOnsiZW5hYmxlZCI6ZmFsc2V9LCJsaW5rIjp7ImVuYWJsZWQiOmZhbHNlfSwicGFnZSI6eyJlbmFibGVkIjp0cnVlLCJzZXR0aW5ncyI6eyJ1cmxzIjpbImh0dHBzOi8vYXBwLmJ1dmVpLmNvbS9jYXJkL2lzc3VlIl19fSwidXJsX3BhcmFtZXRlciI6eyJlbmFibGVkIjpmYWxzZX0sInVzZXJfZXZlbnQiOnsiZW5hYmxlZCI6ZmFsc2V9LCJ1c2VyX2RhdGEiOnsiZW5hYmxlZCI6ZmFsc2V9LCJkZWxheSI6eyJlbmFibGVkIjpmYWxzZSwic2V0dGluZ3MiOnsiYWZ0ZXIiOjV9fX0sImJlaGF2aW9ycyI6eyJzaG93X2FzX3dlYnNpdGUiOnsiZW5hYmxlZCI6ZmFsc2V9LCJpZl93ZWJzaXRlX29ubGluZSI6eyJlbmFibGVkIjpmYWxzZX0sImlmX2ZpcnN0X3Zpc2l0Ijp7ImVuYWJsZWQiOmZhbHNlfSwiaWZfdHJpZ2dlcl9zb2xlIjp7ImVuYWJsZWQiOnRydWV9LCJpZl9jb3VudHJpZXMiOnsiZW5hYmxlZCI6ZmFsc2V9fSwicGxhdGZvcm1zIjp7ImRlc2t0b3AiOnsiZW5hYmxlZCI6dHJ1ZX0sIm1vYmlsZSI6eyJlbmFibGVkIjp0cnVlfX19LCJuZXctdHJpZ2dlci0xNzU3Mzg5NzYzOTc1Ijp7Im5hbWUiOiJ0b3B1cCIsImVuYWJsZWQiOnRydWUsImJlaGF2aW9ycyI6eyJpZl90cmlnZ2VyX3NvbGUiOnsiZW5hYmxlZCI6dHJ1ZX19LCJwbGF0Zm9ybXMiOnsiZGVza3RvcCI6eyJlbmFibGVkIjp0cnVlfSwibW9iaWxlIjp7ImVuYWJsZWQiOnRydWV9fSwiYWN0aW9ucyI6eyJtZXNzYWdlIjp7InNldHRpbmdzIjp7ImRlZmF1bHQiOiJUb3AtdXAgYXJlIHVzdWFsbHkgY3JlZGl0ZWQgd2l0aGluIDUgbWludXRlcy4gUGxlYXNlIHdhaXQgcGF0aWVudGx5LiJ9LCJlbmFibGVkIjp0cnVlfX0sImV2ZW50cyI6eyJsZWF2ZSI6eyJlbmFibGVkIjpmYWxzZX0sImxpbmsiOnsic2V0dGluZ3MiOnsiaWRzIjpbImh0dHBzOi8vYXBwLmJ1dmVpLmNvbS93YWxsZXQiXX0sImVuYWJsZWQiOmZhbHNlfSwicGFnZSI6eyJlbmFibGVkIjpmYWxzZX0sInVybF9wYXJhbWV0ZXIiOnsiZW5hYmxlZCI6ZmFsc2V9LCJ1c2VyX2V2ZW50Ijp7ImVuYWJsZWQiOnRydWUsInNldHRpbmdzIjp7InRleHRzIjpbIlRvcC11cCBTdWNjZXNzZnVsIl19fSwidXNlcl9kYXRhIjp7ImVuYWJsZWQiOmZhbHNlfX19LCJuZXctdHJpZ2dlciI6eyJuYW1lIjoicHJpdmF0ZSIsImVuYWJsZWQiOnRydWUsImFjdGlvbnMiOnsibWVzc2FnZSI6eyJzZXR0aW5ncyI6eyJkZWZhdWx0IjoiVXBncmFkZSB0byBQcml2YXRl4oCUbW9yZSBmcmVlIGNhcmQgaXNzdWFuY2UsIGFuZCBsb3dlciBmZWVzIGJlbmVmaXRzIHRoYXQgc2NhbGUgYXMgeW91IGdyb3cuIn0sImVuYWJsZWQiOnRydWV9fSwiZXZlbnRzIjp7ImxlYXZlIjp7ImVuYWJsZWQiOmZhbHNlfSwibGluayI6eyJzZXR0aW5ncyI6eyJpZHMiOlsiaHR0cHM6Ly9hcHAuYnV2ZWkuY29tL3ByaXZhdGUiXX0sImVuYWJsZWQiOmZhbHNlfSwicGFnZSI6eyJlbmFibGVkIjp0cnVlLCJzZXR0aW5ncyI6eyJ1cmxzIjpbImh0dHBzOi8vYXBwLmJ1dmVpLmNvbS9wcml2YXRlIl19fSwidXJsX3BhcmFtZXRlciI6eyJlbmFibGVkIjpmYWxzZX0sInVzZXJfZXZlbnQiOnsiZW5hYmxlZCI6ZmFsc2V9LCJ1c2VyX2RhdGEiOnsiZW5hYmxlZCI6ZmFsc2V9fSwiYmVoYXZpb3JzIjp7ImlmX3RyaWdnZXJfc29sZSI6eyJlbmFibGVkIjpmYWxzZX0sInNob3dfYXNfd2Vic2l0ZSI6eyJlbmFibGVkIjp0cnVlfSwiaWZfd2Vic2l0ZV9vbmxpbmUiOnsiZW5hYmxlZCI6dHJ1ZX19LCJwbGF0Zm9ybXMiOnsiZGVza3RvcCI6eyJlbmFibGVkIjp0cnVlfSwibW9iaWxlIjp7ImVuYWJsZWQiOnRydWV9fX0sInRyaWdnZXIiOnsibmFtZSI6Ik5ldyB0cmlnZ2VyIiwiZW5hYmxlZCI6ZmFsc2V9LCJuZXctdHJpZ2dlci0xIjp7Im5hbWUiOiJOZXcgVHJpZ2dlciAoMSkiLCJlbmFibGVkIjpmYWxzZSwiYmVoYXZpb3JzIjp7ImlmX3RyaWdnZXJfc29sZSI6eyJlbmFibGVkIjp0cnVlfX0sInBsYXRmb3JtcyI6eyJkZXNrdG9wIjp7ImVuYWJsZWQiOnRydWV9LCJtb2JpbGUiOnsiZW5hYmxlZCI6dHJ1ZX19fX19fX0sIm9ubGluZSI6dHJ1ZSwidHJpYWwiOmZhbHNlLCJvdmVybGF5IjpudWxsLCJjaGFubmVscyI6eyJlbWFpbCI6ImluZm9AYnV2ZWkuY29tIiwidGVsZWdyYW0iOiJCdXZlaV9zdXBwb3J0X2JvdCIsInR3aXR0ZXIiOiJCdXZlaV9PZmZpY2lhbCIsImhlbHBkZXNrIjoiYnV2ZWkuY3Jpc3AuaGVscCJ9fQ=="}},"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":"buvei.com/_next/static/chunks/lib-framer-motion-0cc9adbda5ab8c32.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.451Z","timestamp":1785127668451,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/static/chunks/lib-framer-motion-0cc9adbda5ab8c32.js HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: application/javascript; charset=UTF-8\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\ncache-control: public, max-age=31536000, immutable\r\naccept-ranges: bytes\r\nlast-modified: Mon, 29 Jun 2026 05:34:13 GMT\r\netag: W/\"8ec6-19f11def808\"\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nage: 334919\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=m06Rpu0RPT6aw6Y6CqhAwLU01U5HZ30McYgGT7ItRU430r9Ldjjhtb2S%2FhC4DNZuYviLMnZn4pA6cxrqd3ZYcGBLSM24LHO1ns6eMPbAtralQM0OHR%2F68JUEtg%3D%3D\"}]}\r\ncf-ray: a2190217db798be6-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"]}],"data":{"size":36550,"size_decoded":8410,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (36550), with no line terminators","md5":"c16197621928d5410176e2e8e4aa1448","sha1":"9554e2a1a1aa243b111ba4e7c8dcccd51384f01c","sha256":"df413e07d99dd87816af00187a8f9d4e776c97b22deaa6143e88b7fa041b6aae","sha512":"9aef4aff7e767d600426deff8682d6f160f9df452bdf8c7fbdbb466ecbc375a620cfac4281f36c34d409d389d490295cd08fede07d18a7ed4de75442814bead5","ssdeep":"384:l9bsk41JVlBJdE+6gBqn/gQlgiRS3jROmQdullOVr3Stx6rbWPW8vLh0uJNIKyNZ:lYXKZgiRSkmQQllQsjRJN+NM225Za+k","tlshash":"66f2b666a7510f8aa386fd64d69bc34635670a96002c503d3e3d3ee365b09487ede33e","first_seen":"2026-07-27T03:56:11.657151Z","last_seen":"2026-07-27T10:05:53.909856Z","times_seen":4,"resource_available":true,"data":"dHJ5eyFmdW5jdGlvbigpe3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sbj0obmV3IGUuRXJyb3IpLnN0YWNrO24mJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbbl09ImZmYTk1Y2E0LTNkZGEtNDExNC05YzMwLTQzY2M5Yjk3NzE5YSIsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9InNlbnRyeS1kYmlkLWZmYTk1Y2E0LTNkZGEtNDExNC05YzMwLTQzY2M5Yjk3NzE5YSIpfSgpfWNhdGNoKGUpe30idXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rX05fRT1zZWxmLndlYnBhY2tDaHVua19OX0V8fFtdKS5wdXNoKFtbMzY4NF0sezIzMjYwOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se3lWOmZ1bmN0aW9uKCl7cmV0dXJuIGNyZWF0ZVByb2plY3Rpb25Ob2RlfX0pO3ZhciBfdXRpbHNfc3Vic2NyaXB0aW9uX21hbmFnZXJfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXygyMTU2MCksX2FuaW1hdGlvbl9taXhfdmFsdWVzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTdfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDczMDQ5KSxfZ2VvbWV0cnlfY29weV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX189X193ZWJwYWNrX3JlcXVpcmVfXygxMTgyMyksX2dlb21ldHJ5X2RlbHRhX2FwcGx5X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDE2ZTMpLF9nZW9tZXRyeV9kZWx0YV9jYWxjX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDE2NjQ1KSxfZ2VvbWV0cnlfZGVsdGFfcmVtb3ZlX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTRfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY0MDMpLF9nZW9tZXRyeV9tb2RlbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fPV9fd2VicGFja19yZXF1aXJlX18oNjE1MTIpLF9hbmltYXRpb25fdXRpbHNfdHJhbnNpdGlvbnNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X189X193ZWJwYWNrX3JlcXVpcmVfXygzMTA1NiksX2dlb21ldHJ5X3V0aWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fPV9fd2VicGFja19yZXF1aXJlX18oODg4MzMpLF9zaGFyZWRfc3RhY2tfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOV9fPV9fd2VicGFja19yZXF1aXJlX18oOTQ4MTEpLF9zdHlsZXNfc2NhbGVfY29ycmVjdGlvbl9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIxX189X193ZWJwYWNrX3JlcXVpcmVfXyg2NDU2MSksX3N0eWxlc190cmFuc2Zvcm1fbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNl9fPV9fd2VicGFja19yZXF1aXJlX18oNjUxOSksX3V0aWxzX2VhY2hfYXhpc19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIyX189X193ZWJwYWNrX3JlcXVpcmVfXyg5MTczMCksX3V0aWxzX2hhc190cmFuc2Zvcm1fbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fPV9fd2VicGFja19yZXF1aXJlX18oOTk1MjcpLF9yZW5kZXJfdXRpbHNfZmxhdF90cmVlX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oMzE0MTkpLF92YWx1ZV91dGlsc19yZXNvbHZlX21vdGlvbl92YWx1ZV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIwX189X193ZWJwYWNrX3JlcXVpcmVfXygxNjM5OSksX3N0YXRlX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fPV9fd2VicGFja19yZXF1aXJlX18oOTMwODMpLF91dGlsc19kZWxheV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDYzMzc4KSxfdXRpbHNfbWl4X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjNfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDgwMDIyKSxfZGVidWdfcmVjb3JkX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oODk5MDgpLF9yZW5kZXJfZG9tX3V0aWxzX2lzX3N2Z19lbGVtZW50X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fPV9fd2VicGFja19yZXF1aXJlX18oNzUxOTQpLF9hbmltYXRpb25faW50ZXJmYWNlc19zaW5nbGVfdmFsdWVfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOF9fPV9fd2VicGFja19yZXF1aXJlX18oNjEwNTkpLF91dGlsc19jbGFtcF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI0MTY5KSxfZnJhbWVsb29wX2ZyYW1lX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fPV9fd2VicGFja19yZXF1aXJlX18oMjA3NCksX3V0aWxzX25vb3BfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNF9fPV9fd2VicGFja19yZXF1aXJlX18oODE2NjIpO2xldCB0cmFuc2Zvcm1BeGVzPVsiIiwiWCIsIlkiLCJaIl0saWQ9MCxwcm9qZWN0aW9uRnJhbWVEYXRhPXt0eXBlOiJwcm9qZWN0aW9uRnJhbWUiLHRvdGFsTm9kZXM6MCxyZXNvbHZlZFRhcmdldERlbHRhczowLHJlY2FsY3VsYXRlZFByb2plY3Rpb246MH07ZnVuY3Rpb24gY3JlYXRlUHJvamVjdGlvbk5vZGUoe2F0dGFjaFJlc2l6ZUxpc3RlbmVyLGRlZmF1bHRQYXJlbnQsbWVhc3VyZVNjcm9sbCxjaGVja0lzU2Nyb2xsUm9vdCxyZXNldFRyYW5zZm9ybX0pe3JldHVybiBjbGFzc3tjb25zdHJ1Y3RvcihsYXRlc3RWYWx1ZXM9e30scGFyZW50PW51bGw9PWRlZmF1bHRQYXJlbnQ/dm9pZCAwOmRlZmF1bHRQYXJlbnQoKSl7dGhpcy5pZD1pZCsrLHRoaXMuYW5pbWF0aW9uSWQ9MCx0aGlzLmNoaWxkcmVuPW5ldyBTZXQsdGhpcy5vcHRpb25zPXt9LHRoaXMuaXNUcmVlQW5pbWF0aW5nPSExLHRoaXMuaXNBbmltYXRpb25CbG9ja2VkPSExLHRoaXMuaXNMYXlvdXREaXJ0eT0hMSx0aGlzLmlzUHJvamVjdGlvbkRpcnR5PSExLHRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHk9ITEsdGhpcy5pc1RyYW5zZm9ybURpcnR5PSExLHRoaXMudXBkYXRlTWFudWFsbHlCbG9ja2VkPSExLHRoaXMudXBkYXRlQmxvY2tlZEJ5UmVzaXplPSExLHRoaXMuaXNVcGRhdGluZz0hMSx0aGlzLmlzU1ZHPSExLHRoaXMubmVlZHNSZXNldD0hMSx0aGlzLnNob3VsZFJlc2V0VHJhbnNmb3JtPSExLHRoaXMudHJlZVNjYWxlPXt4OjEseToxfSx0aGlzLmV2ZW50SGFuZGxlcnM9bmV3IE1hcCx0aGlzLmhhc1RyZWVBbmltYXRlZD0hMSx0aGlzLnVwZGF0ZVNjaGVkdWxlZD0hMSx0aGlzLmNoZWNrVXBkYXRlRmFpbGVkPSgpPT57dGhpcy5pc1VwZGF0aW5nJiYodGhpcy5pc1VwZGF0aW5nPSExLHRoaXMuY2xlYXJBbGxTbmFwc2hvdHMoKSl9LHRoaXMudXBkYXRlUHJvamVjdGlvbj0oKT0+e3Byb2plY3Rpb25GcmFtZURhdGEudG90YWxOb2Rlcz1wcm9qZWN0aW9uRnJhbWVEYXRhLnJlc29sdmVkVGFyZ2V0RGVsdGFzPXByb2plY3Rpb25GcmFtZURhdGEucmVjYWxjdWxhdGVkUHJvamVjdGlvbj0wLHRoaXMubm9kZXMuZm9yRWFjaChwcm9wYWdhdGVEaXJ0eU5vZGVzKSx0aGlzLm5vZGVzLmZvckVhY2gocmVzb2x2ZVRhcmdldERlbHRhKSx0aGlzLm5vZGVzLmZvckVhY2goY2FsY1Byb2plY3Rpb24pLHRoaXMubm9kZXMuZm9yRWFjaChjbGVhbkRpcnR5Tm9kZXMpLCgwLF9kZWJ1Z19yZWNvcmRfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uSSkocHJvamVjdGlvbkZyYW1lRGF0YSl9LHRoaXMuaGFzUHJvamVjdGVkPSExLHRoaXMuaXNWaXNpYmxlPSEwLHRoaXMuYW5pbWF0aW9uUHJvZ3Jlc3M9MCx0aGlzLnNoYXJlZE5vZGVzPW5ldyBNYXAsdGhpcy5sYXRlc3RWYWx1ZXM9bGF0ZXN0VmFsdWVzLHRoaXMucm9vdD1wYXJlbnQ/cGFyZW50LnJvb3R8fHBhcmVudDp0aGlzLHRoaXMucGF0aD1wYXJlbnQ/Wy4uLnBhcmVudC5wYXRoLHBhcmVudF06W10sdGhpcy5wYXJlbnQ9cGFyZW50LHRoaXMuZGVwdGg9cGFyZW50P3BhcmVudC5kZXB0aCsxOjA7Zm9yKGxldCBpPTA7aTx0aGlzLnBhdGgubGVuZ3RoO2krKyl0aGlzLnBhdGhbaV0uc2hvdWxkUmVzZXRUcmFuc2Zvcm09ITA7dGhpcy5yb290PT09dGhpcyYmKHRoaXMubm9kZXM9bmV3IF9yZW5kZXJfdXRpbHNfZmxhdF90cmVlX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkUpfWFkZEV2ZW50TGlzdGVuZXIobmFtZSxoYW5kbGVyKXtyZXR1cm4gdGhpcy5ldmVudEhhbmRsZXJzLmhhcyhuYW1lKXx8dGhpcy5ldmVudEhhbmRsZXJzLnNldChuYW1lLG5ldyBfdXRpbHNfc3Vic2NyaXB0aW9uX21hbmFnZXJfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uTCksdGhpcy5ldmVudEhhbmRsZXJzLmdldChuYW1lKS5hZGQoaGFuZGxlcil9bm90aWZ5TGlzdGVuZXJzKG5hbWUsLi4uYXJncyl7bGV0IHN1YnNjcmlwdGlvbk1hbmFnZXI9dGhpcy5ldmVudEhhbmRsZXJzLmdldChuYW1lKTtzdWJzY3JpcHRpb25NYW5hZ2VyJiZzdWJzY3JpcHRpb25NYW5hZ2VyLm5vdGlmeSguLi5hcmdzKX1oYXNMaXN0ZW5lcnMobmFtZSl7cmV0dXJuIHRoaXMuZXZlbnRIYW5kbGVycy5oYXMobmFtZSl9bW91bnQoaW5zdGFuY2UsaXNMYXlvdXREaXJ0eT10aGlzLnJvb3QuaGFzVHJlZUFuaW1hdGVkKXtpZih0aGlzLmluc3RhbmNlKXJldHVybjt0aGlzLmlzU1ZHPSgwLF9yZW5kZXJfZG9tX3V0aWxzX2lzX3N2Z19lbGVtZW50X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnYpKGluc3RhbmNlKSx0aGlzLmluc3RhbmNlPWluc3RhbmNlO2xldHtsYXlvdXRJZCxsYXlvdXQsdmlzdWFsRWxlbWVudH09dGhpcy5vcHRpb25zO2lmKHZpc3VhbEVsZW1lbnQmJiF2aXN1YWxFbGVtZW50LmN1cnJlbnQmJnZpc3VhbEVsZW1lbnQubW91bnQoaW5zdGFuY2UpLHRoaXMucm9vdC5ub2Rlcy5hZGQodGhpcyksdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmNoaWxkcmVuLmFkZCh0aGlzKSxpc0xheW91dERpcnR5JiYobGF5b3V0fHxsYXlvdXRJZCkmJih0aGlzLmlzTGF5b3V0RGlydHk9ITApLGF0dGFjaFJlc2l6ZUxpc3RlbmVyKXtsZXQgY2FuY2VsRGVsYXk7bGV0IHJlc2l6ZVVuYmxvY2tVcGRhdGU9KCk9PnRoaXMucm9vdC51cGRhdGVCbG9ja2VkQnlSZXNpemU9ITE7YXR0YWNoUmVzaXplTGlzdGVuZXIoaW5zdGFuY2UsKCk9Pnt0aGlzLnJvb3QudXBkYXRlQmxvY2tlZEJ5UmVzaXplPSEwLGNhbmNlbERlbGF5JiZjYW5jZWxEZWxheSgpLGNhbmNlbERlbGF5PSgwLF91dGlsc19kZWxheV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5nKShyZXNpemVVbmJsb2NrVXBkYXRlLDI1MCksX3N0YXRlX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLlYuaGFzQW5pbWF0ZWRTaW5jZVJlc2l6ZSYmKF9zdGF0ZV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5WLmhhc0FuaW1hdGVkU2luY2VSZXNpemU9ITEsdGhpcy5ub2Rlcy5mb3JFYWNoKGZpbmlzaEFuaW1hdGlvbikpfSl9bGF5b3V0SWQmJnRoaXMucm9vdC5yZWdpc3RlclNoYXJlZE5vZGUobGF5b3V0SWQsdGhpcyksITEhPT10aGlzLm9wdGlvbnMuYW5pbWF0ZSYmdmlzdWFsRWxlbWVudCYmKGxheW91dElkfHxsYXlvdXQpJiZ0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImRpZFVwZGF0ZSIsKHtkZWx0YSxoYXNMYXlvdXRDaGFuZ2VkLGhhc1JlbGF0aXZlVGFyZ2V0Q2hhbmdlZCxsYXlvdXQ6bmV3TGF5b3V0fSk9PntpZih0aGlzLmlzVHJlZUFuaW1hdGlvbkJsb2NrZWQoKSl7dGhpcy50YXJnZXQ9dm9pZCAwLHRoaXMucmVsYXRpdmVUYXJnZXQ9dm9pZCAwO3JldHVybn1sZXQgbGF5b3V0VHJhbnNpdGlvbj10aGlzLm9wdGlvbnMudHJhbnNpdGlvbnx8dmlzdWFsRWxlbWVudC5nZXREZWZhdWx0VHJhbnNpdGlvbigpfHxkZWZhdWx0TGF5b3V0VHJhbnNpdGlvbix7b25MYXlvdXRBbmltYXRpb25TdGFydCxvbkxheW91dEFuaW1hdGlvbkNvbXBsZXRlfT12aXN1YWxFbGVtZW50LmdldFByb3BzKCksdGFyZ2V0Q2hhbmdlZD0hdGhpcy50YXJnZXRMYXlvdXR8fCEoMCxfZ2VvbWV0cnlfdXRpbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uUm0pKHRoaXMudGFyZ2V0TGF5b3V0LG5ld0xheW91dCl8fGhhc1JlbGF0aXZlVGFyZ2V0Q2hhbmdlZCxoYXNPbmx5UmVsYXRpdmVUYXJnZXRDaGFuZ2VkPSFoYXNMYXlvdXRDaGFuZ2VkJiZoYXNSZWxhdGl2ZVRhcmdldENoYW5nZWQ7aWYodGhpcy5vcHRpb25zLmxheW91dFJvb3R8fHRoaXMucmVzdW1lRnJvbSYmdGhpcy5yZXN1bWVGcm9tLmluc3RhbmNlfHxoYXNPbmx5UmVsYXRpdmVUYXJnZXRDaGFuZ2VkfHxoYXNMYXlvdXRDaGFuZ2VkJiYodGFyZ2V0Q2hhbmdlZHx8IXRoaXMuY3VycmVudEFuaW1hdGlvbikpe3RoaXMucmVzdW1lRnJvbSYmKHRoaXMucmVzdW1pbmdGcm9tPXRoaXMucmVzdW1lRnJvbSx0aGlzLnJlc3VtaW5nRnJvbS5yZXN1bWluZ0Zyb209dm9pZCAwKSx0aGlzLnNldEFuaW1hdGlvbk9yaWdpbihkZWx0YSxoYXNPbmx5UmVsYXRpdmVUYXJnZXRDaGFuZ2VkKTtsZXQgYW5pbWF0aW9uT3B0aW9ucz17Li4uKDAsX2FuaW1hdGlvbl91dGlsc190cmFuc2l0aW9uc19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5lKShsYXlvdXRUcmFuc2l0aW9uLCJsYXlvdXQiKSxvblBsYXk6b25MYXlvdXRBbmltYXRpb25TdGFydCxvbkNvbXBsZXRlOm9uTGF5b3V0QW5pbWF0aW9uQ29tcGxldGV9Oyh2aXN1YWxFbGVtZW50LnNob3VsZFJlZHVjZU1vdGlvbnx8dGhpcy5vcHRpb25zLmxheW91dFJvb3QpJiYoYW5pbWF0aW9uT3B0aW9ucy5kZWxheT0wLGFuaW1hdGlvbk9wdGlvbnMudHlwZT0hMSksdGhpcy5zdGFydEFuaW1hdGlvbihhbmltYXRpb25PcHRpb25zKX1lbHNlIGhhc0xheW91dENoYW5nZWR8fGZpbmlzaEFuaW1hdGlvbih0aGlzKSx0aGlzLmlzTGVhZCgpJiZ0aGlzLm9wdGlvbnMub25FeGl0Q29tcGxldGUmJnRoaXMub3B0aW9ucy5vbkV4aXRDb21wbGV0ZSgpO3RoaXMudGFyZ2V0TGF5b3V0PW5ld0xheW91dH0pfXVubW91bnQoKXt0aGlzLm9wdGlvbnMubGF5b3V0SWQmJnRoaXMud2lsbFVwZGF0ZSgpLHRoaXMucm9vdC5ub2Rlcy5yZW1vdmUodGhpcyk7bGV0IHN0YWNrPXRoaXMuZ2V0U3RhY2soKTtzdGFjayYmc3RhY2sucmVtb3ZlKHRoaXMpLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5jaGlsZHJlbi5kZWxldGUodGhpcyksdGhpcy5pbnN0YW5jZT12b2lkIDAsKDAsX2ZyYW1lbG9vcF9mcmFtZV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5QbikodGhpcy51cGRhdGVQcm9qZWN0aW9uKX1ibG9ja1VwZGF0ZSgpe3RoaXMudXBkYXRlTWFudWFsbHlCbG9ja2VkPSEwfXVuYmxvY2tVcGRhdGUoKXt0aGlzLnVwZGF0ZU1hbnVhbGx5QmxvY2tlZD0hMX1pc1VwZGF0ZUJsb2NrZWQoKXtyZXR1cm4gdGhpcy51cGRhdGVNYW51YWxseUJsb2NrZWR8fHRoaXMudXBkYXRlQmxvY2tlZEJ5UmVzaXplfWlzVHJlZUFuaW1hdGlvbkJsb2NrZWQoKXtyZXR1cm4gdGhpcy5pc0FuaW1hdGlvbkJsb2NrZWR8fHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5pc1RyZWVBbmltYXRpb25CbG9ja2VkKCl8fCExfXN0YXJ0VXBkYXRlKCl7IXRoaXMuaXNVcGRhdGVCbG9ja2VkKCkmJih0aGlzLmlzVXBkYXRpbmc9ITAsdGhpcy5ub2RlcyYmdGhpcy5ub2Rlcy5mb3JFYWNoKHJlc2V0Um90YXRpb24pLHRoaXMuYW5pbWF0aW9uSWQrKyl9Z2V0VHJhbnNmb3JtVGVtcGxhdGUoKXtsZXR7dmlzdWFsRWxlbWVudH09dGhpcy5vcHRpb25zO3JldHVybiB2aXN1YWxFbGVtZW50JiZ2aXN1YWxFbGVtZW50LmdldFByb3BzKCkudHJhbnNmb3JtVGVtcGxhdGV9d2lsbFVwZGF0ZShzaG91bGROb3RpZnlMaXN0ZW5lcnM9ITApe2lmKHRoaXMucm9vdC5oYXNUcmVlQW5pbWF0ZWQ9ITAsdGhpcy5yb290LmlzVXBkYXRlQmxvY2tlZCgpKXt0aGlzLm9wdGlvbnMub25FeGl0Q29tcGxldGUmJnRoaXMub3B0aW9ucy5vbkV4aXRDb21wbGV0ZSgpO3JldHVybn1pZih0aGlzLnJvb3QuaXNVcGRhdGluZ3x8dGhpcy5yb290LnN0YXJ0VXBkYXRlKCksdGhpcy5pc0xheW91dERpcnR5KXJldHVybjt0aGlzLmlzTGF5b3V0RGlydHk9ITA7Zm9yKGxldCBpPTA7aTx0aGlzLnBhdGgubGVuZ3RoO2krKyl7bGV0IG5vZGU9dGhpcy5wYXRoW2ldO25vZGUuc2hvdWxkUmVzZXRUcmFuc2Zvcm09ITAsbm9kZS51cGRhdGVTY3JvbGwoInNuYXBzaG90Iiksbm9kZS5vcHRpb25zLmxheW91dFJvb3QmJm5vZGUud2lsbFVwZGF0ZSghMSl9bGV0e2xheW91dElkLGxheW91dH09dGhpcy5vcHRpb25zO2lmKHZvaWQgMD09PWxheW91dElkJiYhbGF5b3V0KXJldHVybjtsZXQgdHJhbnNmb3JtVGVtcGxhdGU9dGhpcy5nZXRUcmFuc2Zvcm1UZW1wbGF0ZSgpO3RoaXMucHJldlRyYW5zZm9ybVRlbXBsYXRlVmFsdWU9dHJhbnNmb3JtVGVtcGxhdGU/dHJhbnNmb3JtVGVtcGxhdGUodGhpcy5sYXRlc3RWYWx1ZXMsIiIpOnZvaWQgMCx0aGlzLnVwZGF0ZVNuYXBzaG90KCksc2hvdWxkTm90aWZ5TGlzdGVuZXJzJiZ0aGlzLm5vdGlmeUxpc3RlbmVycygid2lsbFVwZGF0ZSIpfXVwZGF0ZSgpe3RoaXMudXBkYXRlU2NoZWR1bGVkPSExO2xldCB1cGRhdGVXYXNCbG9ja2VkPXRoaXMuaXNVcGRhdGVCbG9ja2VkKCk7aWYodXBkYXRlV2FzQmxvY2tlZCl7dGhpcy51bmJsb2NrVXBkYXRlKCksdGhpcy5jbGVhckFsbFNuYXBzaG90cygpLHRoaXMubm9kZXMuZm9yRWFjaChjbGVhck1lYXN1cmVtZW50cyk7cmV0dXJufXRoaXMuaXNVcGRhdGluZ3x8dGhpcy5ub2Rlcy5mb3JFYWNoKGNsZWFySXNMYXlvdXREaXJ0eSksdGhpcy5pc1VwZGF0aW5nPSExLHRoaXMubm9kZXMuZm9yRWFjaChyZXNldFRyYW5zZm9ybVN0eWxlKSx0aGlzLm5vZGVzLmZvckVhY2godXBkYXRlTGF5b3V0KSx0aGlzLm5vZGVzLmZvckVhY2gobm90aWZ5TGF5b3V0VXBkYXRlKSx0aGlzLmNsZWFyQWxsU25hcHNob3RzKCk7bGV0IG5vdz1wZXJmb3JtYW5jZS5ub3coKTtfZnJhbWVsb29wX2ZyYW1lX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLncwLmRlbHRhPSgwLF91dGlsc19jbGFtcF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy51KSgwLDFlMy82MCxub3ctX2ZyYW1lbG9vcF9mcmFtZV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy53MC50aW1lc3RhbXApLF9mcmFtZWxvb3BfZnJhbWVfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18udzAudGltZXN0YW1wPW5vdyxfZnJhbWVsb29wX2ZyYW1lX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLncwLmlzUHJvY2Vzc2luZz0hMCxfZnJhbWVsb29wX2ZyYW1lX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLlM2LnVwZGF0ZS5wcm9jZXNzKF9mcmFtZWxvb3BfZnJhbWVfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18udzApLF9mcmFtZWxvb3BfZnJhbWVfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uUzYucHJlUmVuZGVyLnByb2Nlc3MoX2ZyYW1lbG9vcF9mcmFtZV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy53MCksX2ZyYW1lbG9vcF9mcmFtZV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5TNi5yZW5kZXIucHJvY2VzcyhfZnJhbWVsb29wX2ZyYW1lX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLncwKSxfZnJhbWVsb29wX2ZyYW1lX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLncwLmlzUHJvY2Vzc2luZz0hMX1kaWRVcGRhdGUoKXt0aGlzLnVwZGF0ZVNjaGVkdWxlZHx8KHRoaXMudXBkYXRlU2NoZWR1bGVkPSEwLHF1ZXVlTWljcm90YXNrKCgpPT50aGlzLnVwZGF0ZSgpKSl9Y2xlYXJBbGxTbmFwc2hvdHMoKXt0aGlzLm5vZGVzLmZvckVhY2goY2xlYXJTbmFwc2hvdCksdGhpcy5zaGFyZWROb2Rlcy5mb3JFYWNoKHJlbW92ZUxlYWRTbmFwc2hvdHMpfXNjaGVkdWxlVXBkYXRlUHJvamVjdGlvbigpe19mcmFtZWxvb3BfZnJhbWVfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uV2kucHJlUmVuZGVyKHRoaXMudXBkYXRlUHJvamVjdGlvbiwhMSwhMCl9c2NoZWR1bGVDaGVja0FmdGVyVW5tb3VudCgpe19mcmFtZWxvb3BfZnJhbWVfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uV2kucG9zdFJlbmRlcigoKT0+e3RoaXMuaXNMYXlvdXREaXJ0eT90aGlzLnJvb3QuZGlkVXBkYXRlKCk6dGhpcy5yb290LmNoZWNrVXBkYXRlRmFpbGVkKCl9KX11cGRhdGVTbmFwc2hvdCgpeyF0aGlzLnNuYXBzaG90JiZ0aGlzLmluc3RhbmNlJiYodGhpcy5zbmFwc2hvdD10aGlzLm1lYXN1cmUoKSl9dXBkYXRlTGF5b3V0KCl7aWYoIXRoaXMuaW5zdGFuY2V8fCh0aGlzLnVwZGF0ZVNjcm9sbCgpLCEodGhpcy5vcHRpb25zLmFsd2F5c01lYXN1cmVMYXlvdXQmJnRoaXMuaXNMZWFkKCkpJiYhdGhpcy5pc0xheW91dERpcnR5KSlyZXR1cm47aWYodGhpcy5yZXN1bWVGcm9tJiYhdGhpcy5yZXN1bWVGcm9tLmluc3RhbmNlKWZvcihsZXQgaT0wO2k8dGhpcy5wYXRoLmxlbmd0aDtpKyspe2xldCBub2RlPXRoaXMucGF0aFtpXTtub2RlLnVwZGF0ZVNjcm9sbCgpfWxldCBwcmV2TGF5b3V0PXRoaXMubGF5b3V0O3RoaXMubGF5b3V0PXRoaXMubWVhc3VyZSghMSksdGhpcy5sYXlvdXRDb3JyZWN0ZWQ9KDAsX2dlb21ldHJ5X21vZGVsc19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uZE8pKCksdGhpcy5pc0xheW91dERpcnR5PSExLHRoaXMucHJvamVjdGlvbkRlbHRhPXZvaWQgMCx0aGlzLm5vdGlmeUxpc3RlbmVycygibWVhc3VyZSIsdGhpcy5sYXlvdXQubGF5b3V0Qm94KTtsZXR7dmlzdWFsRWxlbWVudH09dGhpcy5vcHRpb25zO3Zpc3VhbEVsZW1lbnQmJnZpc3VhbEVsZW1lbnQubm90aWZ5KCJMYXlvdXRNZWFzdXJlIix0aGlzLmxheW91dC5sYXlvdXRCb3gscHJldkxheW91dD9wcmV2TGF5b3V0LmxheW91dEJveDp2b2lkIDApfXVwZGF0ZVNjcm9sbChwaGFzZT0ibWVhc3VyZSIpe2xldCBuZWVkc01lYXN1cmVtZW50PUJvb2xlYW4odGhpcy5vcHRpb25zLmxheW91dFNjcm9sbCYmdGhpcy5pbnN0YW5jZSk7dGhpcy5zY3JvbGwmJnRoaXMuc2Nyb2xsLmFuaW1hdGlvbklkPT09dGhpcy5yb290LmFuaW1hdGlvbklkJiZ0aGlzLnNjcm9sbC5waGFzZT09PXBoYXNlJiYobmVlZHNNZWFzdXJlbWVudD0hMSksbmVlZHNNZWFzdXJlbWVudCYmKHRoaXMuc2Nyb2xsPXthbmltYXRpb25JZDp0aGlzLnJvb3QuYW5pbWF0aW9uSWQscGhhc2UsaXNSb290OmNoZWNrSXNTY3JvbGxSb290KHRoaXMuaW5zdGFuY2UpLG9mZnNldDptZWFzdXJlU2Nyb2xsKHRoaXMuaW5zdGFuY2UpfSl9cmVzZXRUcmFuc2Zvcm0oKXtpZighcmVzZXRUcmFuc2Zvcm0pcmV0dXJuO2xldCBpc1Jlc2V0UmVxdWVzdGVkPXRoaXMuaXNMYXlvdXREaXJ0eXx8dGhpcy5zaG91bGRSZXNldFRyYW5zZm9ybSxoYXNQcm9qZWN0aW9uPXRoaXMucHJvamVjdGlvbkRlbHRhJiYhKDAsX2dlb21ldHJ5X3V0aWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLkJTKSh0aGlzLnByb2plY3Rpb25EZWx0YSksdHJhbnNmb3JtVGVtcGxhdGU9dGhpcy5nZXRUcmFuc2Zvcm1UZW1wbGF0ZSgpLHRyYW5zZm9ybVRlbXBsYXRlVmFsdWU9dHJhbnNmb3JtVGVtcGxhdGU/dHJhbnNmb3JtVGVtcGxhdGUodGhpcy5sYXRlc3RWYWx1ZXMsIiIpOnZvaWQgMCx0cmFuc2Zvcm1UZW1wbGF0ZUhhc0NoYW5nZWQ9dHJhbnNmb3JtVGVtcGxhdGVWYWx1ZSE9PXRoaXMucHJldlRyYW5zZm9ybVRlbXBsYXRlVmFsdWU7aXNSZXNldFJlcXVlc3RlZCYmKGhhc1Byb2plY3Rpb258fCgwLF91dGlsc19oYXNfdHJhbnNmb3JtX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy51ZCkodGhpcy5sYXRlc3RWYWx1ZXMpfHx0cmFuc2Zvcm1UZW1wbGF0ZUhhc0NoYW5nZWQpJiYocmVzZXRUcmFuc2Zvcm0odGhpcy5pbnN0YW5jZSx0cmFuc2Zvcm1UZW1wbGF0ZVZhbHVlKSx0aGlzLnNob3VsZFJlc2V0VHJhbnNmb3JtPSExLHRoaXMuc2NoZWR1bGVSZW5kZXIoKSl9bWVhc3VyZShyZW1vdmVUcmFuc2Zvcm09ITApe3ZhciBib3g7bGV0IHBhZ2VCb3g9dGhpcy5tZWFzdXJlUGFnZUJveCgpLGxheW91dEJveD10aGlzLnJlbW92ZUVsZW1lbnRTY3JvbGwocGFnZUJveCk7cmV0dXJuIHJlbW92ZVRyYW5zZm9ybSYmKGxheW91dEJveD10aGlzLnJlbW92ZVRyYW5zZm9ybShsYXlvdXRCb3gpKSxyb3VuZEF4aXMoKGJveD1sYXlvdXRCb3gpLngpLHJvdW5kQXhpcyhib3gueSkse2FuaW1hdGlvbklkOnRoaXMucm9vdC5hbmltYXRpb25JZCxtZWFzdXJlZEJveDpwYWdlQm94LGxheW91dEJveCxsYXRlc3RWYWx1ZXM6e30sc291cmNlOnRoaXMuaWR9fW1lYXN1cmVQYWdlQm94KCl7bGV0e3Zpc3VhbEVsZW1lbnR9PXRoaXMub3B0aW9ucztpZighdmlzdWFsRWxlbWVudClyZXR1cm4oMCxfZ2VvbWV0cnlfbW9kZWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5kTykoKTtsZXQgYm94PXZpc3VhbEVsZW1lbnQubWVhc3VyZVZpZXdwb3J0Qm94KCkse3Njcm9sbH09dGhpcy5yb290O3JldHVybiBzY3JvbGwmJigoMCxfZ2VvbWV0cnlfZGVsdGFfYXBwbHlfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMl9fLmFtKShib3gueCxzY3JvbGwub2Zmc2V0LngpLCgwLF9nZW9tZXRyeV9kZWx0YV9hcHBseV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18uYW0pKGJveC55LHNjcm9sbC5vZmZzZXQueSkpLGJveH1yZW1vdmVFbGVtZW50U2Nyb2xsKGJveCl7bGV0IGJveFdpdGhvdXRTY3JvbGw9KDAsX2dlb21ldHJ5X21vZGVsc19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uZE8pKCk7KDAsX2dlb21ldHJ5X2NvcHlfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xM19fLmopKGJveFdpdGhvdXRTY3JvbGwsYm94KTtmb3IobGV0IGk9MDtpPHRoaXMucGF0aC5sZW5ndGg7aSsrKXtsZXQgbm9kZT10aGlzLnBhdGhbaV0se3Njcm9sbCxvcHRpb25zfT1ub2RlO2lmKG5vZGUhPT10aGlzLnJvb3QmJnNjcm9sbCYmb3B0aW9ucy5sYXlvdXRTY3JvbGwpe2lmKHNjcm9sbC5pc1Jvb3QpeygwLF9nZW9tZXRyeV9jb3B5X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXy5qKShib3hXaXRob3V0U2Nyb2xsLGJveCk7bGV0e3Njcm9sbDpyb290U2Nyb2xsfT10aGlzLnJvb3Q7cm9vdFNjcm9sbCYmKCgwLF9nZW9tZXRyeV9kZWx0YV9hcHBseV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18uYW0pKGJveFdpdGhvdXRTY3JvbGwueCwtcm9vdFNjcm9sbC5vZmZzZXQueCksKDAsX2dlb21ldHJ5X2RlbHRhX2FwcGx5X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXy5hbSkoYm94V2l0aG91dFNjcm9sbC55LC1yb290U2Nyb2xsLm9mZnNldC55KSl9KDAsX2dlb21ldHJ5X2RlbHRhX2FwcGx5X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXy5hbSkoYm94V2l0aG91dFNjcm9sbC54LHNjcm9sbC5vZmZzZXQueCksKDAsX2dlb21ldHJ5X2RlbHRhX2FwcGx5X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXy5hbSkoYm94V2l0aG91dFNjcm9sbC55LHNjcm9sbC5vZmZzZXQueSl9fXJldHVybiBib3hXaXRob3V0U2Nyb2xsfWFwcGx5VHJhbnNmb3JtKGJveCx0cmFuc2Zvcm1Pbmx5PSExKXtsZXQgd2l0aFRyYW5zZm9ybXM9KDAsX2dlb21ldHJ5X21vZGVsc19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uZE8pKCk7KDAsX2dlb21ldHJ5X2NvcHlfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xM19fLmopKHdpdGhUcmFuc2Zvcm1zLGJveCk7Zm9yKGxldCBpPTA7aTx0aGlzLnBhdGgubGVuZ3RoO2krKyl7bGV0IG5vZGU9dGhpcy5wYXRoW2ldOyF0cmFuc2Zvcm1Pbmx5JiZub2RlLm9wdGlvbnMubGF5b3V0U2Nyb2xsJiZub2RlLnNjcm9sbCYmbm9kZSE9PW5vZGUucm9vdCYmKDAsX2dlb21ldHJ5X2RlbHRhX2FwcGx5X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXy5EMikod2l0aFRyYW5zZm9ybXMse3g6LW5vZGUuc2Nyb2xsLm9mZnNldC54LHk6LW5vZGUuc2Nyb2xsLm9mZnNldC55fSksKDAsX3V0aWxzX2hhc190cmFuc2Zvcm1fbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLnVkKShub2RlLmxhdGVzdFZhbHVlcykmJigwLF9nZW9tZXRyeV9kZWx0YV9hcHBseV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18uRDIpKHdpdGhUcmFuc2Zvcm1zLG5vZGUubGF0ZXN0VmFsdWVzKX1yZXR1cm4oMCxfdXRpbHNfaGFzX3RyYW5zZm9ybV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18udWQpKHRoaXMubGF0ZXN0VmFsdWVzKSYmKDAsX2dlb21ldHJ5X2RlbHRhX2FwcGx5X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfXy5EMikod2l0aFRyYW5zZm9ybXMsdGhpcy5sYXRlc3RWYWx1ZXMpLHdpdGhUcmFuc2Zvcm1zfXJlbW92ZVRyYW5zZm9ybShib3gpe2xldCBib3hXaXRob3V0VHJhbnNmb3JtPSgwLF9nZW9tZXRyeV9tb2RlbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLmRPKSgpOygwLF9nZW9tZXRyeV9jb3B5X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXy5qKShib3hXaXRob3V0VHJhbnNmb3JtLGJveCk7Zm9yKGxldCBpPTA7aTx0aGlzLnBhdGgubGVuZ3RoO2krKyl7bGV0IG5vZGU9dGhpcy5wYXRoW2ldO2lmKCFub2RlLmluc3RhbmNlfHwhKDAsX3V0aWxzX2hhc190cmFuc2Zvcm1fbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLnVkKShub2RlLmxhdGVzdFZhbHVlcykpY29udGludWU7KDAsX3V0aWxzX2hhc190cmFuc2Zvcm1fbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLkxqKShub2RlLmxhdGVzdFZhbHVlcykmJm5vZGUudXBkYXRlU25hcHNob3QoKTtsZXQgc291cmNlQm94PSgwLF9nZW9tZXRyeV9tb2RlbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLmRPKSgpLG5vZGVCb3g9bm9kZS5tZWFzdXJlUGFnZUJveCgpOygwLF9nZW9tZXRyeV9jb3B5X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXy5qKShzb3VyY2VCb3gsbm9kZUJveCksKDAsX2dlb21ldHJ5X2RlbHRhX3JlbW92ZV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18ubWcpKGJveFdpdGhvdXRUcmFuc2Zvcm0sbm9kZS5sYXRlc3RWYWx1ZXMsbm9kZS5zbmFwc2hvdD9ub2RlLnNuYXBzaG90LmxheW91dEJveDp2b2lkIDAsc291cmNlQm94KX1yZXR1cm4oMCxfdXRpbHNfaGFzX3RyYW5zZm9ybV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18udWQpKHRoaXMubGF0ZXN0VmFsdWVzKSYmKDAsX2dlb21ldHJ5X2RlbHRhX3JlbW92ZV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X18ubWcpKGJveFdpdGhvdXRUcmFuc2Zvcm0sdGhpcy5sYXRlc3RWYWx1ZXMpLGJveFdpdGhvdXRUcmFuc2Zvcm19c2V0VGFyZ2V0RGVsdGEoZGVsdGEpe3RoaXMudGFyZ2V0RGVsdGE9ZGVsdGEsdGhpcy5yb290LnNjaGVkdWxlVXBkYXRlUHJvamVjdGlvbigpLHRoaXMuaXNQcm9qZWN0aW9uRGlydHk9ITB9c2V0T3B0aW9ucyhvcHRpb25zKXt0aGlzLm9wdGlvbnM9ey4uLnRoaXMub3B0aW9ucywuLi5vcHRpb25zLGNyb3NzZmFkZTp2b2lkIDA9PT1vcHRpb25zLmNyb3NzZmFkZXx8b3B0aW9ucy5jcm9zc2ZhZGV9fWNsZWFyTWVhc3VyZW1lbnRzKCl7dGhpcy5zY3JvbGw9dm9pZCAwLHRoaXMubGF5b3V0PXZvaWQgMCx0aGlzLnNuYXBzaG90PXZvaWQgMCx0aGlzLnByZXZUcmFuc2Zvcm1UZW1wbGF0ZVZhbHVlPXZvaWQgMCx0aGlzLnRhcmdldERlbHRhPXZvaWQgMCx0aGlzLnRhcmdldD12b2lkIDAsdGhpcy5pc0xheW91dERpcnR5PSExfWZvcmNlUmVsYXRpdmVQYXJlbnRUb1Jlc29sdmVUYXJnZXQoKXt0aGlzLnJlbGF0aXZlUGFyZW50JiZ0aGlzLnJlbGF0aXZlUGFyZW50LnJlc29sdmVkUmVsYXRpdmVUYXJnZXRBdCE9PV9mcmFtZWxvb3BfZnJhbWVfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18udzAudGltZXN0YW1wJiZ0aGlzLnJlbGF0aXZlUGFyZW50LnJlc29sdmVUYXJnZXREZWx0YSghMCl9cmVzb2x2ZVRhcmdldERlbHRhKGZvcmNlUmVjYWxjdWxhdGlvbj0hMSl7dmFyIF9hO2xldCBsZWFkPXRoaXMuZ2V0TGVhZCgpO3RoaXMuaXNQcm9qZWN0aW9uRGlydHl8fCh0aGlzLmlzUHJvamVjdGlvbkRpcnR5PWxlYWQuaXNQcm9qZWN0aW9uRGlydHkpLHRoaXMuaXNUcmFuc2Zvcm1EaXJ0eXx8KHRoaXMuaXNUcmFuc2Zvcm1EaXJ0eT1sZWFkLmlzVHJhbnNmb3JtRGlydHkpLHRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHl8fCh0aGlzLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5PWxlYWQuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkpO2xldCBpc1NoYXJlZD1Cb29sZWFuKHRoaXMucmVzdW1pbmdGcm9tKXx8dGhpcyE9PWxlYWQsY2FuU2tpcD0hKGZvcmNlUmVjYWxjdWxhdGlvbnx8aXNTaGFyZWQmJnRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHl8fHRoaXMuaXNQcm9qZWN0aW9uRGlydHl8fChudWxsPT09KF9hPXRoaXMucGFyZW50KXx8dm9pZCAwPT09X2E/dm9pZCAwOl9hLmlzUHJvamVjdGlvbkRpcnR5KXx8dGhpcy5hdHRlbXB0VG9SZXNvbHZlUmVsYXRpdmVUYXJnZXQpO2lmKGNhblNraXApcmV0dXJuO2xldHtsYXlvdXQsbGF5b3V0SWR9PXRoaXMub3B0aW9ucztpZih0aGlzLmxheW91dCYmKGxheW91dHx8bGF5b3V0SWQpKXtpZih0aGlzLnJlc29sdmVkUmVsYXRpdmVUYXJnZXRBdD1fZnJhbWVsb29wX2ZyYW1lX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLncwLnRpbWVzdGFtcCwhdGhpcy50YXJnZXREZWx0YSYmIXRoaXMucmVsYXRpdmVUYXJnZXQpe2xldCByZWxhdGl2ZVBhcmVudD10aGlzLmdldENsb3Nlc3RQcm9qZWN0aW5nUGFyZW50KCk7cmVsYXRpdmVQYXJlbnQmJnJlbGF0aXZlUGFyZW50LmxheW91dCYmMSE9PXRoaXMuYW5pbWF0aW9uUHJvZ3Jlc3M/KHRoaXMucmVsYXRpdmVQYXJlbnQ9cmVsYXRpdmVQYXJlbnQsdGhpcy5mb3JjZVJlbGF0aXZlUGFyZW50VG9SZXNvbHZlVGFyZ2V0KCksdGhpcy5yZWxhdGl2ZVRhcmdldD0oMCxfZ2VvbWV0cnlfbW9kZWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5kTykoKSx0aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luPSgwLF9nZW9tZXRyeV9tb2RlbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLmRPKSgpLCgwLF9nZW9tZXRyeV9kZWx0YV9jYWxjX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXy5iMykodGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbix0aGlzLmxheW91dC5sYXlvdXRCb3gscmVsYXRpdmVQYXJlbnQubGF5b3V0LmxheW91dEJveCksKDAsX2dlb21ldHJ5X2NvcHlfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xM19fLmopKHRoaXMucmVsYXRpdmVUYXJnZXQsdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbikpOnRoaXMucmVsYXRpdmVQYXJlbnQ9dGhpcy5yZWxhdGl2ZVRhcmdldD12b2lkIDB9aWYodGhpcy5yZWxhdGl2ZVRhcmdldHx8dGhpcy50YXJnZXREZWx0YSl7aWYodGhpcy50YXJnZXR8fCh0aGlzLnRhcmdldD0oMCxfZ2VvbWV0cnlfbW9kZWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5kTykoKSx0aGlzLnRhcmdldFdpdGhUcmFuc2Zvcm1zPSgwLF9nZW9tZXRyeV9tb2RlbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLmRPKSgpKSx0aGlzLnJlbGF0aXZlVGFyZ2V0JiZ0aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luJiZ0aGlzLnJlbGF0aXZlUGFyZW50JiZ0aGlzLnJlbGF0aXZlUGFyZW50LnRhcmdldD8odGhpcy5mb3JjZVJlbGF0aXZlUGFyZW50VG9SZXNvbHZlVGFyZ2V0KCksKDAsX2dlb21ldHJ5X2RlbHRhX2NhbGNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNV9fLnRmKSh0aGlzLnRhcmdldCx0aGlzLnJlbGF0aXZlVGFyZ2V0LHRoaXMucmVsYXRpdmVQYXJlbnQudGFyZ2V0KSk6dGhpcy50YXJnZXREZWx0YT8oQm9vbGVhbih0aGlzLnJlc3VtaW5nRnJvbSk/dGhpcy50YXJnZXQ9dGhpcy5hcHBseVRyYW5zZm9ybSh0aGlzLmxheW91dC5sYXlvdXRCb3gpOigwLF9nZW9tZXRyeV9jb3B5X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXy5qKSh0aGlzLnRhcmdldCx0aGlzLmxheW91dC5sYXlvdXRCb3gpLCgwLF9nZW9tZXRyeV9kZWx0YV9hcHBseV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18ubzIpKHRoaXMudGFyZ2V0LHRoaXMudGFyZ2V0RGVsdGEpKTooMCxfZ2VvbWV0cnlfY29weV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18uaikodGhpcy50YXJnZXQsdGhpcy5sYXlvdXQubGF5b3V0Qm94KSx0aGlzLmF0dGVtcHRUb1Jlc29sdmVSZWxhdGl2ZVRhcmdldCl7dGhpcy5hdHRlbXB0VG9SZXNvbHZlUmVsYXRpdmVUYXJnZXQ9ITE7bGV0IHJlbGF0aXZlUGFyZW50MT10aGlzLmdldENsb3Nlc3RQcm9qZWN0aW5nUGFyZW50KCk7cmVsYXRpdmVQYXJlbnQxJiZCb29sZWFuKHJlbGF0aXZlUGFyZW50MS5yZXN1bWluZ0Zyb20pPT09Qm9vbGVhbih0aGlzLnJlc3VtaW5nRnJvbSkmJiFyZWxhdGl2ZVBhcmVudDEub3B0aW9ucy5sYXlvdXRTY3JvbGwmJnJlbGF0aXZlUGFyZW50MS50YXJnZXQmJjEhPT10aGlzLmFuaW1hdGlvblByb2dyZXNzPyh0aGlzLnJlbGF0aXZlUGFyZW50PXJlbGF0aXZlUGFyZW50MSx0aGlzLmZvcmNlUmVsYXRpdmVQYXJlbnRUb1Jlc29sdmVUYXJnZXQoKSx0aGlzLnJlbGF0aXZlVGFyZ2V0PSgwLF9nZW9tZXRyeV9tb2RlbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLmRPKSgpLHRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW49KDAsX2dlb21ldHJ5X21vZGVsc19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uZE8pKCksKDAsX2dlb21ldHJ5X2RlbHRhX2NhbGNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNV9fLmIzKSh0aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luLHRoaXMudGFyZ2V0LHJlbGF0aXZlUGFyZW50MS50YXJnZXQpLCgwLF9nZW9tZXRyeV9jb3B5X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfXy5qKSh0aGlzLnJlbGF0aXZlVGFyZ2V0LHRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW4pKTp0aGlzLnJlbGF0aXZlUGFyZW50PXRoaXMucmVsYXRpdmVUYXJnZXQ9dm9pZCAwfXByb2plY3Rpb25GcmFtZURhdGEucmVzb2x2ZWRUYXJnZXREZWx0YXMrK319fWdldENsb3Nlc3RQcm9qZWN0aW5nUGFyZW50KCl7cmV0dXJuIXRoaXMucGFyZW50fHwoMCxfdXRpbHNfaGFzX3RyYW5zZm9ybV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX18uTGopKHRoaXMucGFyZW50LmxhdGVzdFZhbHVlcyl8fCgwLF91dGlsc19oYXNfdHJhbnNmb3JtX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5EXykodGhpcy5wYXJlbnQubGF0ZXN0VmFsdWVzKT92b2lkIDA6dGhpcy5wYXJlbnQuaXNQcm9qZWN0aW5nKCk/dGhpcy5wYXJlbnQ6dGhpcy5wYXJlbnQuZ2V0Q2xvc2VzdFByb2plY3RpbmdQYXJlbnQoKX1pc1Byb2plY3RpbmcoKXtyZXR1cm4gQm9vbGVhbigodGhpcy5yZWxhdGl2ZVRhcmdldHx8dGhpcy50YXJnZXREZWx0YXx8dGhpcy5vcHRpb25zLmxheW91dFJvb3QpJiZ0aGlzLmxheW91dCl9Y2FsY1Byb2plY3Rpb24oKXt2YXIgX2E7bGV0IGxlYWQ9dGhpcy5nZXRMZWFkKCksaXNTaGFyZWQ9Qm9vbGVhbih0aGlzLnJlc3VtaW5nRnJvbSl8fHRoaXMhPT1sZWFkLGNhblNraXA9ITA7aWYoKHRoaXMuaXNQcm9qZWN0aW9uRGlydHl8fChudWxsPT09KF9hPXRoaXMucGFyZW50KXx8dm9pZCAwPT09X2E/dm9pZCAwOl9hLmlzUHJvamVjdGlvbkRpcnR5KSkmJihjYW5Ta2lwPSExKSxpc1NoYXJlZCYmKHRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHl8fHRoaXMuaXNUcmFuc2Zvcm1EaXJ0eSkmJihjYW5Ta2lwPSExKSx0aGlzLnJlc29sdmVkUmVsYXRpdmVUYXJnZXRBdD09PV9mcmFtZWxvb3BfZnJhbWVfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18udzAudGltZXN0YW1wJiYoY2FuU2tpcD0hMSksY2FuU2tpcClyZXR1cm47bGV0e2xheW91dCxsYXlvdXRJZH09dGhpcy5vcHRpb25zO2lmKHRoaXMuaXNUcmVlQW5pbWF0aW5nPUJvb2xlYW4odGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmlzVHJlZUFuaW1hdGluZ3x8dGhpcy5jdXJyZW50QW5pbWF0aW9ufHx0aGlzLnBlbmRpbmdBbmltYXRpb24pLHRoaXMuaXNUcmVlQW5pbWF0aW5nfHwodGhpcy50YXJnZXREZWx0YT10aGlzLnJlbGF0aXZlVGFyZ2V0PXZvaWQgMCksIXRoaXMubGF5b3V0fHwhKGxheW91dHx8bGF5b3V0SWQpKXJldHVybjsoMCxfZ2VvbWV0cnlfY29weV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18uaikodGhpcy5sYXlvdXRDb3JyZWN0ZWQsdGhpcy5sYXlvdXQubGF5b3V0Qm94KTtsZXQgcHJldlRyZWVTY2FsZVg9dGhpcy50cmVlU2NhbGUueCxwcmV2VHJlZVNjYWxlWT10aGlzLnRyZWVTY2FsZS55OygwLF9nZW9tZXRyeV9kZWx0YV9hcHBseV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX18uWVkpKHRoaXMubGF5b3V0Q29ycmVjdGVkLHRoaXMudHJlZVNjYWxlLHRoaXMucGF0aCxpc1NoYXJlZCksbGVhZC5sYXlvdXQmJiFsZWFkLnRhcmdldCYmKDEhPT10aGlzLnRyZWVTY2FsZS54fHwxIT09dGhpcy50cmVlU2NhbGUueSkmJihsZWFkLnRhcmdldD1sZWFkLmxheW91dC5sYXlvdXRCb3gpO2xldHt0YXJnZXR9PWxlYWQ7aWYoIXRhcmdldCl7dGhpcy5wcm9qZWN0aW9uVHJhbnNmb3JtJiYodGhpcy5wcm9qZWN0aW9uRGVsdGE9KDAsX2dlb21ldHJ5X21vZGVsc19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18ud2MpKCksdGhpcy5wcm9qZWN0aW9uVHJhbnNmb3JtPSJub25lIix0aGlzLnNjaGVkdWxlUmVuZGVyKCkpO3JldHVybn10aGlzLnByb2plY3Rpb25EZWx0YXx8KHRoaXMucHJvamVjdGlvbkRlbHRhPSgwLF9nZW9tZXRyeV9tb2RlbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLndjKSgpLHRoaXMucHJvamVjdGlvbkRlbHRhV2l0aFRyYW5zZm9ybT0oMCxfZ2VvbWV0cnlfbW9kZWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy53YykoKSk7bGV0IHByZXZQcm9qZWN0aW9uVHJhbnNmb3JtPXRoaXMucHJvamVjdGlvblRyYW5zZm9ybTsoMCxfZ2VvbWV0cnlfZGVsdGFfY2FsY19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE1X18ueSQpKHRoaXMucHJvamVjdGlvbkRlbHRhLHRoaXMubGF5b3V0Q29ycmVjdGVkLHRhcmdldCx0aGlzLmxhdGVzdFZhbHVlcyksdGhpcy5wcm9qZWN0aW9uVHJhbnNmb3JtPSgwLF9zdHlsZXNfdHJhbnNmb3JtX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTZfXy5kKSh0aGlzLnByb2plY3Rpb25EZWx0YSx0aGlzLnRyZWVTY2FsZSksKHRoaXMucHJvamVjdGlvblRyYW5zZm9ybSE9PXByZXZQcm9qZWN0aW9uVHJhbnNmb3JtfHx0aGlzLnRyZWVTY2FsZS54IT09cHJldlRyZWVTY2FsZVh8fHRoaXMudHJlZVNjYWxlLnkhPT1wcmV2VHJlZVNjYWxlWSkmJih0aGlzLmhhc1Byb2plY3RlZD0hMCx0aGlzLnNjaGVkdWxlUmVuZGVyKCksdGhpcy5ub3RpZnlMaXN0ZW5lcnMoInByb2plY3Rpb25VcGRhdGUiLHRhcmdldCkpLHByb2plY3Rpb25GcmFtZURhdGEucmVjYWxjdWxhdGVkUHJvamVjdGlvbisrfWhpZGUoKXt0aGlzLmlzVmlzaWJsZT0hMX1zaG93KCl7dGhpcy5pc1Zpc2libGU9ITB9c2NoZWR1bGVSZW5kZXIobm90aWZ5QWxsPSEwKXtpZih0aGlzLm9wdGlvbnMuc2NoZWR1bGVSZW5kZXImJnRoaXMub3B0aW9ucy5zY2hlZHVsZVJlbmRlcigpLG5vdGlmeUFsbCl7bGV0IHN0YWNrPXRoaXMuZ2V0U3RhY2soKTtzdGFjayYmc3RhY2suc2NoZWR1bGVSZW5kZXIoKX10aGlzLnJlc3VtaW5nRnJvbSYmIXRoaXMucmVzdW1pbmdGcm9tLmluc3RhbmNlJiYodGhpcy5yZXN1bWluZ0Zyb209dm9pZCAwKX1zZXRBbmltYXRpb25PcmlnaW4oZGVsdGEsaGFzT25seVJlbGF0aXZlVGFyZ2V0Q2hhbmdlZD0hMSl7bGV0IHByZXZSZWxhdGl2ZVRhcmdldDtsZXQgc25hcHNob3Q9dGhpcy5zbmFwc2hvdCxzbmFwc2hvdExhdGVzdFZhbHVlcz1zbmFwc2hvdD9zbmFwc2hvdC5sYXRlc3RWYWx1ZXM6e30sbWl4ZWRWYWx1ZXM9ey4uLnRoaXMubGF0ZXN0VmFsdWVzfSx0YXJnZXREZWx0YT0oMCxfZ2VvbWV0cnlfbW9kZWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy53YykoKTt0aGlzLnJlbGF0aXZlUGFyZW50JiZ0aGlzLnJlbGF0aXZlUGFyZW50Lm9wdGlvbnMubGF5b3V0Um9vdHx8KHRoaXMucmVsYXRpdmVUYXJnZXQ9dGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbj12b2lkIDApLHRoaXMuYXR0ZW1wdFRvUmVzb2x2ZVJlbGF0aXZlVGFyZ2V0PSFoYXNPbmx5UmVsYXRpdmVUYXJnZXRDaGFuZ2VkO2xldCByZWxhdGl2ZUxheW91dD0oMCxfZ2VvbWV0cnlfbW9kZWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5kTykoKSxzbmFwc2hvdFNvdXJjZT1zbmFwc2hvdD9zbmFwc2hvdC5zb3VyY2U6dm9pZCAwLGxheW91dFNvdXJjZT10aGlzLmxheW91dD90aGlzLmxheW91dC5zb3VyY2U6dm9pZCAwLGlzU2hhcmVkTGF5b3V0QW5pbWF0aW9uPXNuYXBzaG90U291cmNlIT09bGF5b3V0U291cmNlLHN0YWNrPXRoaXMuZ2V0U3RhY2soKSxpc09ubHlNZW1iZXI9IXN0YWNrfHxzdGFjay5tZW1iZXJzLmxlbmd0aDw9MSxzaG91bGRDcm9zc2ZhZGVPcGFjaXR5PUJvb2xlYW4oaXNTaGFyZWRMYXlvdXRBbmltYXRpb24mJiFpc09ubHlNZW1iZXImJiEwPT09dGhpcy5vcHRpb25zLmNyb3NzZmFkZSYmIXRoaXMucGF0aC5zb21lKGhhc09wYWNpdHlDcm9zc2ZhZGUpKTt0aGlzLmFuaW1hdGlvblByb2dyZXNzPTAsdGhpcy5taXhUYXJnZXREZWx0YT1sYXRlc3Q9Pnt2YXIgb3V0cHV0LGZyb207bGV0IHByb2dyZXNzPWxhdGVzdC8xZTM7bWl4QXhpc0RlbHRhKHRhcmdldERlbHRhLngsZGVsdGEueCxwcm9ncmVzcyksbWl4QXhpc0RlbHRhKHRhcmdldERlbHRhLnksZGVsdGEueSxwcm9ncmVzcyksdGhpcy5zZXRUYXJnZXREZWx0YSh0YXJnZXREZWx0YSksdGhpcy5yZWxhdGl2ZVRhcmdldCYmdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbiYmdGhpcy5sYXlvdXQmJnRoaXMucmVsYXRpdmVQYXJlbnQmJnRoaXMucmVsYXRpdmVQYXJlbnQubGF5b3V0JiYoKDAsX2dlb21ldHJ5X2RlbHRhX2NhbGNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNV9fLmIzKShyZWxhdGl2ZUxheW91dCx0aGlzLmxheW91dC5sYXlvdXRCb3gsdGhpcy5yZWxhdGl2ZVBhcmVudC5sYXlvdXQubGF5b3V0Qm94KSxvdXRwdXQ9dGhpcy5yZWxhdGl2ZVRhcmdldCxmcm9tPXRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW4sbWl4QXhpcyhvdXRwdXQueCxmcm9tLngscmVsYXRpdmVMYXlvdXQueCxwcm9ncmVzcyksbWl4QXhpcyhvdXRwdXQueSxmcm9tLnkscmVsYXRpdmVMYXlvdXQueSxwcm9ncmVzcykscHJldlJlbGF0aXZlVGFyZ2V0JiYoMCxfZ2VvbWV0cnlfdXRpbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uUkQpKHRoaXMucmVsYXRpdmVUYXJnZXQscHJldlJlbGF0aXZlVGFyZ2V0KSYmKHRoaXMuaXNQcm9qZWN0aW9uRGlydHk9ITEpLHByZXZSZWxhdGl2ZVRhcmdldHx8KHByZXZSZWxhdGl2ZVRhcmdldD0oMCxfZ2VvbWV0cnlfbW9kZWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5kTykoKSksKDAsX2dlb21ldHJ5X2NvcHlfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xM19fLmopKHByZXZSZWxhdGl2ZVRhcmdldCx0aGlzLnJlbGF0aXZlVGFyZ2V0KSksaXNTaGFyZWRMYXlvdXRBbmltYXRpb24mJih0aGlzLmFuaW1hdGlvblZhbHVlcz1taXhlZFZhbHVlcywoMCxfYW5pbWF0aW9uX21peF92YWx1ZXNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xN19fLlYpKG1peGVkVmFsdWVzLHNuYXBzaG90TGF0ZXN0VmFsdWVzLHRoaXMubGF0ZXN0VmFsdWVzLHByb2dyZXNzLHNob3VsZENyb3NzZmFkZU9wYWNpdHksaXNPbmx5TWVtYmVyKSksdGhpcy5yb290LnNjaGVkdWxlVXBkYXRlUHJvamVjdGlvbigpLHRoaXMuc2NoZWR1bGVSZW5kZXIoKSx0aGlzLmFuaW1hdGlvblByb2dyZXNzPXByb2dyZXNzfSx0aGlzLm1peFRhcmdldERlbHRhKHRoaXMub3B0aW9ucy5sYXlvdXRSb290PzFlMzowKX1zdGFydEFuaW1hdGlvbihvcHRpb25zKXt0aGlzLm5vdGlmeUxpc3RlbmVycygiYW5pbWF0aW9uU3RhcnQiKSx0aGlzLmN1cnJlbnRBbmltYXRpb24mJnRoaXMuY3VycmVudEFuaW1hdGlvbi5zdG9wKCksdGhpcy5yZXN1bWluZ0Zyb20mJnRoaXMucmVzdW1pbmdGcm9tLmN1cnJlbnRBbmltYXRpb24mJnRoaXMucmVzdW1pbmdGcm9tLmN1cnJlbnRBbmltYXRpb24uc3RvcCgpLHRoaXMucGVuZGluZ0FuaW1hdGlvbiYmKCgwLF9mcmFtZWxvb3BfZnJhbWVfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uUG4pKHRoaXMucGVuZGluZ0FuaW1hdGlvbiksdGhpcy5wZW5kaW5nQW5pbWF0aW9uPXZvaWQgMCksdGhpcy5wZW5kaW5nQW5pbWF0aW9uPV9mcmFtZWxvb3BfZnJhbWVfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uV2kudXBkYXRlKCgpPT57X3N0YXRlX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLlYuaGFzQW5pbWF0ZWRTaW5jZVJlc2l6ZT0hMCx0aGlzLmN1cnJlbnRBbmltYXRpb249KDAsX2FuaW1hdGlvbl9pbnRlcmZhY2VzX3NpbmdsZV92YWx1ZV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE4X18uRCkoMCwxZTMsey4uLm9wdGlvbnMsb25VcGRhdGU6bGF0ZXN0PT57dGhpcy5taXhUYXJnZXREZWx0YShsYXRlc3QpLG9wdGlvbnMub25VcGRhdGUmJm9wdGlvbnMub25VcGRhdGUobGF0ZXN0KX0sb25Db21wbGV0ZTooKT0+e29wdGlvbnMub25Db21wbGV0ZSYmb3B0aW9ucy5vbkNvbXBsZXRlKCksdGhpcy5jb21wbGV0ZUFuaW1hdGlvbigpfX0pLHRoaXMucmVzdW1pbmdGcm9tJiYodGhpcy5yZXN1bWluZ0Zyb20uY3VycmVudEFuaW1hdGlvbj10aGlzLmN1cnJlbnRBbmltYXRpb24pLHRoaXMucGVuZGluZ0FuaW1hdGlvbj12b2lkIDB9KX1jb21wbGV0ZUFuaW1hdGlvbigpe3RoaXMucmVzdW1pbmdGcm9tJiYodGhpcy5yZXN1bWluZ0Zyb20uY3VycmVudEFuaW1hdGlvbj12b2lkIDAsdGhpcy5yZXN1bWluZ0Zyb20ucHJlc2VydmVPcGFjaXR5PXZvaWQgMCk7bGV0IHN0YWNrPXRoaXMuZ2V0U3RhY2soKTtzdGFjayYmc3RhY2suZXhpdEFuaW1hdGlvbkNvbXBsZXRlKCksdGhpcy5yZXN1bWluZ0Zyb209dGhpcy5jdXJyZW50QW5pbWF0aW9uPXRoaXMuYW5pbWF0aW9uVmFsdWVzPXZvaWQgMCx0aGlzLm5vdGlmeUxpc3RlbmVycygiYW5pbWF0aW9uQ29tcGxldGUiKX1maW5pc2hBbmltYXRpb24oKXt0aGlzLmN1cnJlbnRBbmltYXRpb24mJih0aGlzLm1peFRhcmdldERlbHRhJiZ0aGlzLm1peFRhcmdldERlbHRhKDFlMyksdGhpcy5jdXJyZW50QW5pbWF0aW9uLnN0b3AoKSksdGhpcy5jb21wbGV0ZUFuaW1hdGlvbigpfWFwcGx5VHJhbnNmb3Jtc1RvVGFyZ2V0KCl7bGV0IGxlYWQ9dGhpcy5nZXRMZWFkKCkse3RhcmdldFdpdGhUcmFuc2Zvcm1zLHRhcmdldCxsYXlvdXQsbGF0ZXN0VmFsdWVzfT1sZWFkO2lmKHRhcmdldFdpdGhUcmFuc2Zvcm1zJiZ0YXJnZXQmJmxheW91dCl7aWYodGhpcyE9PWxlYWQmJnRoaXMubGF5b3V0JiZsYXlvdXQmJnNob3VsZEFuaW1hdGVQb3NpdGlvbk9ubHkodGhpcy5vcHRpb25zLmFuaW1hdGlvblR5cGUsdGhpcy5sYXlvdXQubGF5b3V0Qm94LGxheW91dC5sYXlvdXRCb3gpKXt0YXJnZXQ9dGhpcy50YXJnZXR8fCgwLF9nZW9tZXRyeV9tb2RlbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fLmRPKSgpO2xldCB4TGVuZ3RoPSgwLF9nZW9tZXRyeV9kZWx0YV9jYWxjX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXy5KTykodGhpcy5sYXlvdXQubGF5b3V0Qm94LngpO3RhcmdldC54Lm1pbj1sZWFkLnRhcmdldC54Lm1pbix0YXJnZXQueC5tYXg9dGFyZ2V0LngubWluK3hMZW5ndGg7bGV0IHlMZW5ndGg9KDAsX2dlb21ldHJ5X2RlbHRhX2NhbGNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNV9fLkpPKSh0aGlzLmxheW91dC5sYXlvdXRCb3gueSk7dGFyZ2V0LnkubWluPWxlYWQudGFyZ2V0LnkubWluLHRhcmdldC55Lm1heD10YXJnZXQueS5taW4reUxlbmd0aH0oMCxfZ2VvbWV0cnlfY29weV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX18uaikodGFyZ2V0V2l0aFRyYW5zZm9ybXMsdGFyZ2V0KSwoMCxfZ2VvbWV0cnlfZGVsdGFfYXBwbHlfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMl9fLkQyKSh0YXJnZXRXaXRoVHJhbnNmb3JtcyxsYXRlc3RWYWx1ZXMpLCgwLF9nZW9tZXRyeV9kZWx0YV9jYWxjX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXy55JCkodGhpcy5wcm9qZWN0aW9uRGVsdGFXaXRoVHJhbnNmb3JtLHRoaXMubGF5b3V0Q29ycmVjdGVkLHRhcmdldFdpdGhUcmFuc2Zvcm1zLGxhdGVzdFZhbHVlcyl9fXJlZ2lzdGVyU2hhcmVkTm9kZShsYXlvdXRJZCxub2RlKXt0aGlzLnNoYXJlZE5vZGVzLmhhcyhsYXlvdXRJZCl8fHRoaXMuc2hhcmVkTm9kZXMuc2V0KGxheW91dElkLG5ldyBfc2hhcmVkX3N0YWNrX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTlfXy50KTtsZXQgc3RhY2s9dGhpcy5zaGFyZWROb2Rlcy5nZXQobGF5b3V0SWQpO3N0YWNrLmFkZChub2RlKTtsZXQgY29uZmlnPW5vZGUub3B0aW9ucy5pbml0aWFsUHJvbW90aW9uQ29uZmlnO25vZGUucHJvbW90ZSh7dHJhbnNpdGlvbjpjb25maWc/Y29uZmlnLnRyYW5zaXRpb246dm9pZCAwLHByZXNlcnZlRm9sbG93T3BhY2l0eTpjb25maWcmJmNvbmZpZy5zaG91bGRQcmVzZXJ2ZUZvbGxvd09wYWNpdHk/Y29uZmlnLnNob3VsZFByZXNlcnZlRm9sbG93T3BhY2l0eShub2RlKTp2b2lkIDB9KX1pc0xlYWQoKXtsZXQgc3RhY2s9dGhpcy5nZXRTdGFjaygpO3JldHVybiFzdGFja3x8c3RhY2subGVhZD09PXRoaXN9Z2V0TGVhZCgpe3ZhciBfYTtsZXR7bGF5b3V0SWR9PXRoaXMub3B0aW9ucztyZXR1cm4gbGF5b3V0SWQmJihudWxsPT09KF9hPXRoaXMuZ2V0U3RhY2soKSl8fHZvaWQgMD09PV9hP3ZvaWQgMDpfYS5sZWFkKXx8dGhpc31nZXRQcmV2TGVhZCgpe3ZhciBfYTtsZXR7bGF5b3V0SWR9PXRoaXMub3B0aW9ucztyZXR1cm4gbGF5b3V0SWQ/bnVsbD09PShfYT10aGlzLmdldFN0YWNrKCkpfHx2b2lkIDA9PT1fYT92b2lkIDA6X2EucHJldkxlYWQ6dm9pZCAwfWdldFN0YWNrKCl7bGV0e2xheW91dElkfT10aGlzLm9wdGlvbnM7aWYobGF5b3V0SWQpcmV0dXJuIHRoaXMucm9vdC5zaGFyZWROb2Rlcy5nZXQobGF5b3V0SWQpfXByb21vdGUoe25lZWRzUmVzZXQsdHJhbnNpdGlvbixwcmVzZXJ2ZUZvbGxvd09wYWNpdHl9PXt9KXtsZXQgc3RhY2s9dGhpcy5nZXRTdGFjaygpO3N0YWNrJiZzdGFjay5wcm9tb3RlKHRoaXMscHJlc2VydmVGb2xsb3dPcGFjaXR5KSxuZWVkc1Jlc2V0JiYodGhpcy5wcm9qZWN0aW9uRGVsdGE9dm9pZCAwLHRoaXMubmVlZHNSZXNldD0hMCksdHJhbnNpdGlvbiYmdGhpcy5zZXRPcHRpb25zKHt0cmFuc2l0aW9ufSl9cmVsZWdhdGUoKXtsZXQgc3RhY2s9dGhpcy5nZXRTdGFjaygpO3JldHVybiEhc3RhY2smJnN0YWNrLnJlbGVnYXRlKHRoaXMpfXJlc2V0Um90YXRpb24oKXtsZXR7dmlzdWFsRWxlbWVudH09dGhpcy5vcHRpb25zO2lmKCF2aXN1YWxFbGVtZW50KXJldHVybjtsZXQgaGFzUm90YXRlPSExLHtsYXRlc3RWYWx1ZXN9PXZpc3VhbEVsZW1lbnQ7aWYoKGxhdGVzdFZhbHVlcy5yb3RhdGV8fGxhdGVzdFZhbHVlcy5yb3RhdGVYfHxsYXRlc3RWYWx1ZXMucm90YXRlWXx8bGF0ZXN0VmFsdWVzLnJvdGF0ZVopJiYoaGFzUm90YXRlPSEwKSwhaGFzUm90YXRlKXJldHVybjtsZXQgcmVzZXRWYWx1ZXM9e307Zm9yKGxldCBpPTA7aTx0cmFuc2Zvcm1BeGVzLmxlbmd0aDtpKyspe2xldCBrZXk9InJvdGF0ZSIrdHJhbnNmb3JtQXhlc1tpXTtsYXRlc3RWYWx1ZXNba2V5XSYmKHJlc2V0VmFsdWVzW2tleV09bGF0ZXN0VmFsdWVzW2tleV0sdmlzdWFsRWxlbWVudC5zZXRTdGF0aWNWYWx1ZShrZXksMCkpfWZvcihsZXQga2V5MSBpbiB2aXN1YWxFbGVtZW50LnJlbmRlcigpLHJlc2V0VmFsdWVzKXZpc3VhbEVsZW1lbnQuc2V0U3RhdGljVmFsdWUoa2V5MSxyZXNldFZhbHVlc1trZXkxXSk7dmlzdWFsRWxlbWVudC5zY2hlZHVsZVJlbmRlcigpfWdldFByb2plY3Rpb25TdHlsZXMoc3R5bGVQcm9wPXt9KXt2YXIgX2EsX2I7bGV0IHN0eWxlcz17fTtpZighdGhpcy5pbnN0YW5jZXx8dGhpcy5pc1NWRylyZXR1cm4gc3R5bGVzO2lmKCF0aGlzLmlzVmlzaWJsZSlyZXR1cm57dmlzaWJpbGl0eToiaGlkZGVuIn07c3R5bGVzLnZpc2liaWxpdHk9IiI7bGV0IHRyYW5zZm9ybVRlbXBsYXRlPXRoaXMuZ2V0VHJhbnNmb3JtVGVtcGxhdGUoKTtpZih0aGlzLm5lZWRzUmVzZXQpcmV0dXJuIHRoaXMubmVlZHNSZXNldD0hMSxzdHlsZXMub3BhY2l0eT0iIixzdHlsZXMucG9pbnRlckV2ZW50cz0oMCxfdmFsdWVfdXRpbHNfcmVzb2x2ZV9tb3Rpb25fdmFsdWVfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yMF9fLmIpKHN0eWxlUHJvcC5wb2ludGVyRXZlbnRzKXx8IiIsc3R5bGVzLnRyYW5zZm9ybT10cmFuc2Zvcm1UZW1wbGF0ZT90cmFuc2Zvcm1UZW1wbGF0ZSh0aGlzLmxhdGVzdFZhbHVlcywiIik6Im5vbmUiLHN0eWxlcztsZXQgbGVhZD10aGlzLmdldExlYWQoKTtpZighdGhpcy5wcm9qZWN0aW9uRGVsdGF8fCF0aGlzLmxheW91dHx8IWxlYWQudGFyZ2V0KXtsZXQgZW1wdHlTdHlsZXM9e307cmV0dXJuIHRoaXMub3B0aW9ucy5sYXlvdXRJZCYmKGVtcHR5U3R5bGVzLm9wYWNpdHk9dm9pZCAwIT09dGhpcy5sYXRlc3RWYWx1ZXMub3BhY2l0eT90aGlzLmxhdGVzdFZhbHVlcy5vcGFjaXR5OjEsZW1wdHlTdHlsZXMucG9pbnRlckV2ZW50cz0oMCxfdmFsdWVfdXRpbHNfcmVzb2x2ZV9tb3Rpb25fdmFsdWVfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yMF9fLmIpKHN0eWxlUHJvcC5wb2ludGVyRXZlbnRzKXx8IiIpLHRoaXMuaGFzUHJvamVjdGVkJiYhKDAsX3V0aWxzX2hhc190cmFuc2Zvcm1fbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLnVkKSh0aGlzLmxhdGVzdFZhbHVlcykmJihlbXB0eVN0eWxlcy50cmFuc2Zvcm09dHJhbnNmb3JtVGVtcGxhdGU/dHJhbnNmb3JtVGVtcGxhdGUoe30sIiIpOiJub25lIix0aGlzLmhhc1Byb2plY3RlZD0hMSksZW1wdHlTdHlsZXN9bGV0IHZhbHVlc1RvUmVuZGVyPWxlYWQuYW5pbWF0aW9uVmFsdWVzfHxsZWFkLmxhdGVzdFZhbHVlczt0aGlzLmFwcGx5VHJhbnNmb3Jtc1RvVGFyZ2V0KCksc3R5bGVzLnRyYW5zZm9ybT0oMCxfc3R5bGVzX3RyYW5zZm9ybV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X18uZCkodGhpcy5wcm9qZWN0aW9uRGVsdGFXaXRoVHJhbnNmb3JtLHRoaXMudHJlZVNjYWxlLHZhbHVlc1RvUmVuZGVyKSx0cmFuc2Zvcm1UZW1wbGF0ZSYmKHN0eWxlcy50cmFuc2Zvcm09dHJhbnNmb3JtVGVtcGxhdGUodmFsdWVzVG9SZW5kZXIsc3R5bGVzLnRyYW5zZm9ybSkpO2xldHt4LHl9PXRoaXMucHJvamVjdGlvbkRlbHRhO2ZvcihsZXQga2V5IGluIHN0eWxlcy50cmFuc2Zvcm1PcmlnaW49YCR7MTAwKngub3JpZ2lufSUgJHsxMDAqeS5vcmlnaW59JSAwYCxsZWFkLmFuaW1hdGlvblZhbHVlcz9zdHlsZXMub3BhY2l0eT1sZWFkPT09dGhpcz9udWxsIT09KF9iPW51bGwhPT0oX2E9dmFsdWVzVG9SZW5kZXIub3BhY2l0eSkmJnZvaWQgMCE9PV9hP19hOnRoaXMubGF0ZXN0VmFsdWVzLm9wYWNpdHkpJiZ2b2lkIDAhPT1fYj9fYjoxOnRoaXMucHJlc2VydmVPcGFjaXR5P3RoaXMubGF0ZXN0VmFsdWVzLm9wYWNpdHk6dmFsdWVzVG9SZW5kZXIub3BhY2l0eUV4aXQ6c3R5bGVzLm9wYWNpdHk9bGVhZD09PXRoaXM/dm9pZCAwIT09dmFsdWVzVG9SZW5kZXIub3BhY2l0eT92YWx1ZXNUb1JlbmRlci5vcGFjaXR5OiIiOnZvaWQgMCE9PXZhbHVlc1RvUmVuZGVyLm9wYWNpdHlFeGl0P3ZhbHVlc1RvUmVuZGVyLm9wYWNpdHlFeGl0OjAsX3N0eWxlc19zY2FsZV9jb3JyZWN0aW9uX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjFfXy5QKXtpZih2b2lkIDA9PT12YWx1ZXNUb1JlbmRlcltrZXldKWNvbnRpbnVlO2xldHtjb3JyZWN0LGFwcGx5VG99PV9zdHlsZXNfc2NhbGVfY29ycmVjdGlvbl9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIxX18uUFtrZXldLGNvcnJlY3RlZD0ibm9uZSI9PT1zdHlsZXMudHJhbnNmb3JtP3ZhbHVlc1RvUmVuZGVyW2tleV06Y29ycmVjdCh2YWx1ZXNUb1JlbmRlcltrZXldLGxlYWQpO2lmKGFwcGx5VG8pe2xldCBudW09YXBwbHlUby5sZW5ndGg7Zm9yKGxldCBpPTA7aTxudW07aSsrKXN0eWxlc1thcHBseVRvW2ldXT1jb3JyZWN0ZWR9ZWxzZSBzdHlsZXNba2V5XT1jb3JyZWN0ZWR9cmV0dXJuIHRoaXMub3B0aW9ucy5sYXlvdXRJZCYmKHN0eWxlcy5wb2ludGVyRXZlbnRzPWxlYWQ9PT10aGlzPygwLF92YWx1ZV91dGlsc19yZXNvbHZlX21vdGlvbl92YWx1ZV9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIwX18uYikoc3R5bGVQcm9wLnBvaW50ZXJFdmVudHMpfHwiIjoibm9uZSIpLHN0eWxlc31jbGVhclNuYXBzaG90KCl7dGhpcy5yZXN1bWVGcm9tPXRoaXMuc25hcHNob3Q9dm9pZCAwfXJlc2V0VHJlZSgpe3RoaXMucm9vdC5ub2Rlcy5mb3JFYWNoKG5vZGU9Pnt2YXIgX2E7cmV0dXJuIG51bGw9PT0oX2E9bm9kZS5jdXJyZW50QW5pbWF0aW9uKXx8dm9pZCAwPT09X2E/dm9pZCAwOl9hLnN0b3AoKX0pLHRoaXMucm9vdC5ub2Rlcy5mb3JFYWNoKGNsZWFyTWVhc3VyZW1lbnRzKSx0aGlzLnJvb3Quc2hhcmVkTm9kZXMuY2xlYXIoKX19fWZ1bmN0aW9uIHVwZGF0ZUxheW91dChub2RlKXtub2RlLnVwZGF0ZUxheW91dCgpfWZ1bmN0aW9uIG5vdGlmeUxheW91dFVwZGF0ZShub2RlKXt2YXIgX2E7bGV0IHNuYXBzaG90PShudWxsPT09KF9hPW5vZGUucmVzdW1lRnJvbSl8fHZvaWQgMD09PV9hP3ZvaWQgMDpfYS5zbmFwc2hvdCl8fG5vZGUuc25hcHNob3Q7aWYobm9kZS5pc0xlYWQoKSYmbm9kZS5sYXlvdXQmJnNuYXBzaG90JiZub2RlLmhhc0xpc3RlbmVycygiZGlkVXBkYXRlIikpe2xldHtsYXlvdXRCb3g6bGF5b3V0LG1lYXN1cmVkQm94Om1lYXN1cmVkTGF5b3V0fT1ub2RlLmxheW91dCx7YW5pbWF0aW9uVHlwZX09bm9kZS5vcHRpb25zLGlzU2hhcmVkPXNuYXBzaG90LnNvdXJjZSE9PW5vZGUubGF5b3V0LnNvdXJjZTsic2l6ZSI9PT1hbmltYXRpb25UeXBlPygwLF91dGlsc19lYWNoX2F4aXNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yMl9fLlUpKGF4aXM9PntsZXQgYXhpc1NuYXBzaG90PWlzU2hhcmVkP3NuYXBzaG90Lm1lYXN1cmVkQm94W2F4aXNdOnNuYXBzaG90LmxheW91dEJveFtheGlzXSxsZW5ndGg9KDAsX2dlb21ldHJ5X2RlbHRhX2NhbGNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNV9fLkpPKShheGlzU25hcHNob3QpO2F4aXNTbmFwc2hvdC5taW49bGF5b3V0W2F4aXNdLm1pbixheGlzU25hcHNob3QubWF4PWF4aXNTbmFwc2hvdC5taW4rbGVuZ3RofSk6c2hvdWxkQW5pbWF0ZVBvc2l0aW9uT25seShhbmltYXRpb25UeXBlLHNuYXBzaG90LmxheW91dEJveCxsYXlvdXQpJiYoMCxfdXRpbHNfZWFjaF9heGlzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjJfXy5VKShheGlzPT57bGV0IGF4aXNTbmFwc2hvdD1pc1NoYXJlZD9zbmFwc2hvdC5tZWFzdXJlZEJveFtheGlzXTpzbmFwc2hvdC5sYXlvdXRCb3hbYXhpc10sbGVuZ3RoPSgwLF9nZW9tZXRyeV9kZWx0YV9jYWxjX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXy5KTykobGF5b3V0W2F4aXNdKTtheGlzU25hcHNob3QubWF4PWF4aXNTbmFwc2hvdC5taW4rbGVuZ3RoLG5vZGUucmVsYXRpdmVUYXJnZXQmJiFub2RlLmN1cnJlbnRBbmltYXRpb24mJihub2RlLmlzUHJvamVjdGlvbkRpcnR5PSEwLG5vZGUucmVsYXRpdmVUYXJnZXRbYXhpc10ubWF4PW5vZGUucmVsYXRpdmVUYXJnZXRbYXhpc10ubWluK2xlbmd0aCl9KTtsZXQgbGF5b3V0RGVsdGE9KDAsX2dlb21ldHJ5X21vZGVsc19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18ud2MpKCk7KDAsX2dlb21ldHJ5X2RlbHRhX2NhbGNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNV9fLnkkKShsYXlvdXREZWx0YSxsYXlvdXQsc25hcHNob3QubGF5b3V0Qm94KTtsZXQgdmlzdWFsRGVsdGE9KDAsX2dlb21ldHJ5X21vZGVsc19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18ud2MpKCk7aXNTaGFyZWQ/KDAsX2dlb21ldHJ5X2RlbHRhX2NhbGNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNV9fLnkkKSh2aXN1YWxEZWx0YSxub2RlLmFwcGx5VHJhbnNmb3JtKG1lYXN1cmVkTGF5b3V0LCEwKSxzbmFwc2hvdC5tZWFzdXJlZEJveCk6KDAsX2dlb21ldHJ5X2RlbHRhX2NhbGNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNV9fLnkkKSh2aXN1YWxEZWx0YSxsYXlvdXQsc25hcHNob3QubGF5b3V0Qm94KTtsZXQgaGFzTGF5b3V0Q2hhbmdlZD0hKDAsX2dlb21ldHJ5X3V0aWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLkJTKShsYXlvdXREZWx0YSksaGFzUmVsYXRpdmVUYXJnZXRDaGFuZ2VkPSExO2lmKCFub2RlLnJlc3VtZUZyb20pe2xldCByZWxhdGl2ZVBhcmVudD1ub2RlLmdldENsb3Nlc3RQcm9qZWN0aW5nUGFyZW50KCk7aWYocmVsYXRpdmVQYXJlbnQmJiFyZWxhdGl2ZVBhcmVudC5yZXN1bWVGcm9tKXtsZXR7c25hcHNob3Q6cGFyZW50U25hcHNob3QsbGF5b3V0OnBhcmVudExheW91dH09cmVsYXRpdmVQYXJlbnQ7aWYocGFyZW50U25hcHNob3QmJnBhcmVudExheW91dCl7bGV0IHJlbGF0aXZlU25hcHNob3Q9KDAsX2dlb21ldHJ5X21vZGVsc19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uZE8pKCk7KDAsX2dlb21ldHJ5X2RlbHRhX2NhbGNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNV9fLmIzKShyZWxhdGl2ZVNuYXBzaG90LHNuYXBzaG90LmxheW91dEJveCxwYXJlbnRTbmFwc2hvdC5sYXlvdXRCb3gpO2xldCByZWxhdGl2ZUxheW91dD0oMCxfZ2VvbWV0cnlfbW9kZWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5kTykoKTsoMCxfZ2VvbWV0cnlfZGVsdGFfY2FsY19tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE1X18uYjMpKHJlbGF0aXZlTGF5b3V0LGxheW91dCxwYXJlbnRMYXlvdXQubGF5b3V0Qm94KSwoMCxfZ2VvbWV0cnlfdXRpbHNfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uUm0pKHJlbGF0aXZlU25hcHNob3QscmVsYXRpdmVMYXlvdXQpfHwoaGFzUmVsYXRpdmVUYXJnZXRDaGFuZ2VkPSEwKSxyZWxhdGl2ZVBhcmVudC5vcHRpb25zLmxheW91dFJvb3QmJihub2RlLnJlbGF0aXZlVGFyZ2V0PXJlbGF0aXZlTGF5b3V0LG5vZGUucmVsYXRpdmVUYXJnZXRPcmlnaW49cmVsYXRpdmVTbmFwc2hvdCxub2RlLnJlbGF0aXZlUGFyZW50PXJlbGF0aXZlUGFyZW50KX19fW5vZGUubm90aWZ5TGlzdGVuZXJzKCJkaWRVcGRhdGUiLHtsYXlvdXQsc25hcHNob3QsZGVsdGE6dmlzdWFsRGVsdGEsbGF5b3V0RGVsdGEsaGFzTGF5b3V0Q2hhbmdlZCxoYXNSZWxhdGl2ZVRhcmdldENoYW5nZWR9KX1lbHNlIGlmKG5vZGUuaXNMZWFkKCkpe2xldHtvbkV4aXRDb21wbGV0ZX09bm9kZS5vcHRpb25zO29uRXhpdENvbXBsZXRlJiZvbkV4aXRDb21wbGV0ZSgpfW5vZGUub3B0aW9ucy50cmFuc2l0aW9uPXZvaWQgMH1mdW5jdGlvbiBwcm9wYWdhdGVEaXJ0eU5vZGVzKG5vZGUpe3Byb2plY3Rpb25GcmFtZURhdGEudG90YWxOb2RlcysrLG5vZGUucGFyZW50JiYobm9kZS5pc1Byb2plY3RpbmcoKXx8KG5vZGUuaXNQcm9qZWN0aW9uRGlydHk9bm9kZS5wYXJlbnQuaXNQcm9qZWN0aW9uRGlydHkpLG5vZGUuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHl8fChub2RlLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5PUJvb2xlYW4obm9kZS5pc1Byb2plY3Rpb25EaXJ0eXx8bm9kZS5wYXJlbnQuaXNQcm9qZWN0aW9uRGlydHl8fG5vZGUucGFyZW50LmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5KSksbm9kZS5pc1RyYW5zZm9ybURpcnR5fHwobm9kZS5pc1RyYW5zZm9ybURpcnR5PW5vZGUucGFyZW50LmlzVHJhbnNmb3JtRGlydHkpKX1mdW5jdGlvbiBjbGVhbkRpcnR5Tm9kZXMobm9kZSl7bm9kZS5pc1Byb2plY3Rpb25EaXJ0eT1ub2RlLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5PW5vZGUuaXNUcmFuc2Zvcm1EaXJ0eT0hMX1mdW5jdGlvbiBjbGVhclNuYXBzaG90KG5vZGUpe25vZGUuY2xlYXJTbmFwc2hvdCgpfWZ1bmN0aW9uIGNsZWFyTWVhc3VyZW1lbnRzKG5vZGUpe25vZGUuY2xlYXJNZWFzdXJlbWVudHMoKX1mdW5jdGlvbiBjbGVhcklzTGF5b3V0RGlydHkobm9kZSl7bm9kZS5pc0xheW91dERpcnR5PSExfWZ1bmN0aW9uIHJlc2V0VHJhbnNmb3JtU3R5bGUobm9kZSl7bGV0e3Zpc3VhbEVsZW1lbnR9PW5vZGUub3B0aW9uczt2aXN1YWxFbGVtZW50JiZ2aXN1YWxFbGVtZW50LmdldFByb3BzKCkub25CZWZvcmVMYXlvdXRNZWFzdXJlJiZ2aXN1YWxFbGVtZW50Lm5vdGlmeSgiQmVmb3JlTGF5b3V0TWVhc3VyZSIpLG5vZGUucmVzZXRUcmFuc2Zvcm0oKX1mdW5jdGlvbiBmaW5pc2hBbmltYXRpb24obm9kZSl7bm9kZS5maW5pc2hBbmltYXRpb24oKSxub2RlLnRhcmdldERlbHRhPW5vZGUucmVsYXRpdmVUYXJnZXQ9bm9kZS50YXJnZXQ9dm9pZCAwLG5vZGUuaXNQcm9qZWN0aW9uRGlydHk9ITB9ZnVuY3Rpb24gcmVzb2x2ZVRhcmdldERlbHRhKG5vZGUpe25vZGUucmVzb2x2ZVRhcmdldERlbHRhKCl9ZnVuY3Rpb24gY2FsY1Byb2plY3Rpb24obm9kZSl7bm9kZS5jYWxjUHJvamVjdGlvbigpfWZ1bmN0aW9uIHJlc2V0Um90YXRpb24obm9kZSl7bm9kZS5yZXNldFJvdGF0aW9uKCl9ZnVuY3Rpb24gcmVtb3ZlTGVhZFNuYXBzaG90cyhzdGFjayl7c3RhY2sucmVtb3ZlTGVhZFNuYXBzaG90KCl9ZnVuY3Rpb24gbWl4QXhpc0RlbHRhKG91dHB1dCxkZWx0YSxwKXtvdXRwdXQudHJhbnNsYXRlPSgwLF91dGlsc19taXhfbWpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yM19fLkMpKGRlbHRhLnRyYW5zbGF0ZSwwLHApLG91dHB1dC5zY2FsZT0oMCxfdXRpbHNfbWl4X21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjNfXy5DKShkZWx0YS5zY2FsZSwxLHApLG91dHB1dC5vcmlnaW49ZGVsdGEub3JpZ2luLG91dHB1dC5vcmlnaW5Qb2ludD1kZWx0YS5vcmlnaW5Qb2ludH1mdW5jdGlvbiBtaXhBeGlzKG91dHB1dCxmcm9tLHRvLHApe291dHB1dC5taW49KDAsX3V0aWxzX21peF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIzX18uQykoZnJvbS5taW4sdG8ubWluLHApLG91dHB1dC5tYXg9KDAsX3V0aWxzX21peF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIzX18uQykoZnJvbS5tYXgsdG8ubWF4LHApfWZ1bmN0aW9uIGhhc09wYWNpdHlDcm9zc2ZhZGUobm9kZSl7cmV0dXJuIG5vZGUuYW5pbWF0aW9uVmFsdWVzJiZ2b2lkIDAhPT1ub2RlLmFuaW1hdGlvblZhbHVlcy5vcGFjaXR5RXhpdH1sZXQgZGVmYXVsdExheW91dFRyYW5zaXRpb249e2R1cmF0aW9uOi40NSxlYXNlOlsuNCwwLC4xLDFdfSx1c2VyQWdlbnRDb250YWlucz1zdHJpbmc9PiJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc3RyaW5nKSxyb3VuZFBvaW50PXVzZXJBZ2VudENvbnRhaW5zKCJhcHBsZXdlYmtpdC8iKSYmIXVzZXJBZ2VudENvbnRhaW5zKCJjaHJvbWUvIik/TWF0aC5yb3VuZDpfdXRpbHNfbm9vcF9tanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI0X18uWjtmdW5jdGlvbiByb3VuZEF4aXMoYXhpcyl7YXhpcy5taW49cm91bmRQb2ludChheGlzLm1pbiksYXhpcy5tYXg9cm91bmRQb2ludChheGlzLm1heCl9ZnVuY3Rpb24gc2hvdWxkQW5pbWF0ZVBvc2l0aW9uT25seShhbmltYXRpb25UeXBlLHNuYXBzaG90LGxheW91dCl7cmV0dXJuInBvc2l0aW9uIj09PWFuaW1hdGlvblR5cGV8fCJwcmVzZXJ2ZS1hc3BlY3QiPT09YW5pbWF0aW9uVHlwZSYmISgwLF9nZW9tZXRyeV9kZWx0YV9jYWxjX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTVfXy53UykoKDAsX2dlb21ldHJ5X3V0aWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLkRtKShzbmFwc2hvdCksKDAsX2dlb21ldHJ5X3V0aWxzX21qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLkRtKShsYXlvdXQpLC4yKX19fV0pOw=="}},"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":"buvei.com/_next/image?url=https%3A%2F%2Fosspremium.s3.us-east-2.amazonaws.com%2Fa%2Fa_642f08%2F2025041911095110f5c9e6f0.webp\u0026w=1920\u0026q=75","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"lazy-imageset","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.886Z","timestamp":1785127668886,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/image?url=https%3A%2F%2Fosspremium.s3.us-east-2.amazonaws.com%2Fa%2Fa_642f08%2F2025041911095110f5c9e6f0.webp\u0026w=1920\u0026q=75 HTTP/1.1\r\nHost: buvei.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:49 GMT\r\ncontent-type: image/webp\r\ncontent-length: 1368\r\nserver: cloudflare\r\ncontent-security-policy: script-src 'none'; frame-src 'none'; sandbox;\r\nx-frame-options: DENY\r\nvary: Accept\r\ncache-control: public, max-age=60, must-revalidate\r\netag: bMe6dsLl+nD-jvZqCRU253MYyVeau1JGh5UmvKMvlLM=\r\ncontent-disposition: inline; filename=\"2025041911095110f5c9e6f0.webp\"\r\nx-nextjs-cache: STALE\r\ncf-cache-status: DYNAMIC\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=pKDhMhmk28stng2IFggeKzTuW2JezyhR46dtmkAWv1J8bigZrB2PhY8l0UiAZV49zPTAS315Rc6vaNhGpwbnT8mh0KIDJEYs4P%2BZ3hGjA8XtwfQkficLAZhWhg%3D%3D\"}]}\r\ncf-ray: a219021a88a28be6-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"]}],"data":{"size":1368,"size_decoded":2184,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image","md5":"89e889930e403611ce88648cd08f2257","sha1":"7da16d3363b43b1badeee15845be783b49e6d285","sha256":"6cc7ba76c2e5fa70ff8ef66a091536e77318c9579abb5246879526bca32f94b3","sha512":"e3e002e21f04bb58784869107fa9fb41870c222a1b9b96b0f298ce201b2b51bdaae13e8c7db6df43e72d4d9bdd48162856140e11d84128a4c7d89d64d42ce19a","ssdeep":"","tlshash":"8b2187765728479cf4195278a7819b12d7256e369b0793a783c001bf16045d02d3e08f","first_seen":"2026-07-27T03:56:11.727356Z","last_seen":"2026-07-27T10:05:53.912839Z","times_seen":4,"resource_available":false,"data":"UklGRlAFAABXRUJQVlA4WAoAAAAwAAAAdwAARwAASUNDUMgBAAAAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADZWUDhMYQMAAC93wBEQP6GgbRspiwpo/JHdfzQYtG0kKS6S5U9x71HQto2U/Ru744/iGJQg2xbX4Hv0eY3IqpdKuHkJN1WpHzErRnbm/fv0+m0AEREZUkQqrigBKipKQCmuKLmiouSKiksqgCXbbhopaQyzepjB2v8OQ7b05P6P6L8DR3LbhqAgF5k5urDmBczMzMzMzMzMzMzMzMzMfMyKth8nomkcmzo7JTqQiQflOI5NcdWgVJ475C0REREREREREVGfn8R3pugFIKduRgk/kmYDERERSbTIEwHKWoGym1FqtiT4iYiIFEqcAusbLcr6gN3Sb3hQthCU6XZL+VbmREQIHYpEdG8U7wRAzGl9Q1A6XJivQJSD9s3eHMXpUJVYlJlKZo9V4OHv78GHEyIykY8BC//xz7m/xxUpcFUaxXj+d865/xc0x7C9jA3DN0UDfMUydvyA5rC5gEtzbs9/aA5SQVjUP875+HcHGWbnAiMDY/5wzs8fBLYf/kUTWLpzIX62W9OB79TvlrxrgrDVftHnDMB4350L8xsY+HVP4N+6eX7LXuAVf42Ev9CT4Sw5DZ7sztufPq7U2EgxF7JaZrzNkPITmBNTExk0lvjFtaVHsPQODfMEvto5OcNNxwF8f1409AJW4GBgrGI5cUY7/G8NfYMVyNFWY4lvolk4gmHOxlnDKgVEiTSaXCy0lgTAsnR0w2owWw1w/DpTNIaD7pfQZlJJ4MP3u6S/WzKJNsQRB9pe5RHZZ3SadMb7o2gCjoj87yva/87RM9hwqGSBrYZBGKtwg/hA1jDgME+CUzDQpz0JcmDw/lzKWgJZdMQRidXY1HHBUN/i2D+Z5IOByVNNuoETYJv89yuKLGWf76NrVzHM+4QfnQHbn9+Voi2ECKTcwPVgf/0K7BysbUYaT73uE20iQ/VJ9CHT+mSwHmsg0FcIBucnSQRlb6vCt3293TOiKPSD/cOuboVvbETRYbDop8h7dB28f4SW5u8S2pb7ywpcWdD2B5EdvyvzZUL2BwH9UFhEmG5Qwh7M3H2G9H8hItvU82A6zL3ZdZ71zdhaHZZt6ri+DdwWpvvcKd6QGb8E5aRAmfm2YMvzbpJ8g8VRjrIXvQW5v7UPvfx0LZpxLgms/9/o2yI7JlqUWd2M8789PCh1OjEA"}},"time_used":392,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":387,"receive":5,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"client.crisp.chat/static/fonts/noto_sans/2000-206F/noto_sans_regular.woff2?23e4212","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:50.383Z","timestamp":1785127670383,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /static/fonts/noto_sans/2000-206F/noto_sans_regular.woff2?23e4212 HTTP/1.1\r\nHost: client.crisp.chat\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://buvei.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://client.crisp.chat/static/stylesheets/client_default_23e4212.css\r\nSec-Fetch-Dest: font\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\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-type: application/font-woff2\r\ncontent-length: 7012\r\naccept-ranges: bytes\r\naccess-control-allow-credentials: false\r\naccess-control-allow-headers: Content-Type, Origin\r\naccess-control-allow-methods: HEAD, GET, OPTIONS\r\naccess-control-allow-origin: *\r\naccess-control-max-age: 300\r\ncache-control: public, max-age=315360000\r\ncross-origin-resource-policy: cross-origin\r\netag: \"6a5f9773-1b64\"\r\nexpires: Thu, 24 Jul 2036 04:47:50 GMT\r\nlast-modified: Tue, 21 Jul 2026 15:59:47 GMT\r\nserver: cloudflare\r\npriority: u=3,i=?0\r\nage: 30809\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\ncf-ray: a2190223ecb9c759-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"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":7012,"size_decoded":7810,"mime_type":"application/font-woff2","magic":"Web Open Font Format (Version 2), TrueType, length 7012, version 1.3932","md5":"b48d1150d0a909b9f4d5429ad9ef673c","sha1":"4aeb0a00cc8bd372301f8732a42af8255f7cc9c9","sha256":"fc5b29b8d5bac56012c2a0707dfef2d4fc945ffe72e7e1a2c58e5de080e11848","sha512":"0b700b083ab22f69bdc4f9e3983237ac66fccd1f8817b669329c069d3b773501b5250d1281d39be4405972d0c5e3ba80e78f684f1ea59749fdee69431451c060","ssdeep":"192:Ylrcr3yIs5qlQvAXX8ZyJylR/AFnF/wej4ww4wgCr:YSr3ds5QQvSXUyJ3pXHwtr","tlshash":"1be18fad8140ae26dc4650accdd64644439eb393cefade604fce128dbbf014c1da11f4","first_seen":"2023-04-11T10:28:32Z","last_seen":"2026-08-03T08:16:13.604005Z","times_seen":622,"resource_available":false,"data":"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"}},"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":"buvei.com/","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-27T04:47:47.485Z","timestamp":1785127667485,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: buvei.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nUpgrade-Insecure-Requests: 1\r\nSec-Fetch-Dest: document\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: none\r\nPriority: u=0, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: text/html; charset=utf-8\r\nserver: cloudflare\r\nx-nextjs-cache: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\ncache-control: s-maxage=86400, stale-while-revalidate\r\nvary: Accept-Encoding\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=whNZ8ctwgllKKgqbNwVs6Bfg6qqtAbU7tJ5R%2BTMwJLOIVQ0l9UaN0OMD3uH%2FUkllETTP1tDyMppmzUxcYgSdcK5WISVXu1k6OGH%2Fql%2FVLv8r%2Bdcd%2FjcRK7YrPg%3D%3D\"}]}\r\ncf-cache-status: DYNAMIC\r\ncontent-encoding: br\r\ncf-ray: a2190211f9138be6-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":"Ant Design","description":"Ant Design is a UI library that can be used with data flow solutions and application frameworks in any React ecosystem.","website":"https://ant.design","common_platform_enumeration":"","icon":"Ant Design.svg","categories":["UI frameworks"]}],"data":{"size":182020,"size_decoded":22981,"mime_type":"text/html; charset=utf-8","magic":"HTML document, Unicode text, UTF-8 text, with very long lines (22311)","md5":"e5c2c219aa966c50f3c92effb4e7c872","sha1":"d620de9bce2d38d3374c5657d5b382e38be56e73","sha256":"3a54fcaed494f3cd155756ae3eddec5f47c5f7fc6918a2b78d468fab186ecd8a","sha512":"2708881141a1d875678af6c65b85c350783ccb8f2f3413a037fd57b6fd5414b8ff16069cbae8f127fa9d8807414e7a030b5fb0b4f3f836628ca4660bc9895fb1","ssdeep":"1536:FYyW0Fp5nTjsljef0jefu84N6CsIXoqm84N6CsIXoqH7lByt8CUCJPvLKQR:6yNCrJPjXR","tlshash":"3604f97301d05e3ab0372a55b9d66b8ea041cd3b798ea3fc44a3853587cfbe786118d6","first_seen":"2026-07-27T04:48:28.496095Z","last_seen":"2026-07-27T04:48:28.496095Z","times_seen":1,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0iZW4iIGRhdGEtY3JpdHRlcnMtY29udGFpbmVyPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij48bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xLCB3aWR0aD1kZXZpY2Utd2lkdGgiPjx0aXRsZT5HbG9iYWwgVmlydHVhbCBDYXJkcyBmb3IgQWRzICZhbXA7IFN1YnNjcmlwdGlvbnMgfCBCdXZlaTwvdGl0bGU+PG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkJ1dmVpIHByb3ZpZGVzIGluc3RhbnQgdmlydHVhbCBjYXJkcyBmb3IgbXVsdGktY3VycmVuY3kgcGF5bWVudHMuIFBheSBmb3IgRmFjZWJvb2sgQWRzLCBHb29nbGUgQWRzLCBTYWFTIHN1YnNjcmlwdGlvbnMsIGFuZCBnbG9iYWwgb25saW5lIHNlcnZpY2VzIHdpdGggaGlnaCBhcHByb3ZhbCByYXRlcy4iPjxtZXRhIG5hbWU9ImtleXdvcmRzIiBjb250ZW50PSJ2aXJ0dWFsIGNhcmRzLCBkaWdpdGFsIHZpcnR1YWwgY2FyZCwgZ2xvYmFsIHZpcnR1YWwgY2FyZCwgbXVsdGkgY3VycmVuY3kgdmlydHVhbCBjYXJkLCB2aXJ0dWFsIGNhcmQgZm9yIGZhY2Vib29rIGFkcywgdmlydHVhbCBjYXJkIGZvciBnb29nbGUgYWRzLCB2aXJ0dWFsIGNhcmQgZm9yIHN1YnNjcmlwdGlvbnMsIG9ubGluZSBwYXltZW50IHZpcnR1YWwgY2FyZCI+PGxpbmsgcmVsPSJjYW5vbmljYWwiIGhyZWY9Imh0dHBzOi8vYnV2ZWkuY29tLyI+PG1ldGEgcHJvcGVydHk9Im9nOnR5cGUiIGNvbnRlbnQ9IndlYnNpdGUiPjxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vYnV2ZWkuY29tLyI+PG1ldGEgcHJvcGVydHk9Im9nOnNpdGVfbmFtZSIgY29udGVudD0iQnV2ZWkiPjxtZXRhIHByb3BlcnR5PSJvZzp0aXRsZSIgY29udGVudD0iR2xvYmFsIFZpcnR1YWwgQ2FyZHMgZm9yIEFkcyAmYW1wOyBTdWJzY3JpcHRpb25zIHwgQnV2ZWkiPjxtZXRhIHByb3BlcnR5PSJvZzpkZXNjcmlwdGlvbiIgY29udGVudD0iQnV2ZWkgcHJvdmlkZXMgaW5zdGFudCB2aXJ0dWFsIGNhcmRzIGZvciBtdWx0aS1jdXJyZW5jeSBwYXltZW50cy4gUGF5IGZvciBGYWNlYm9vayBBZHMsIEdvb2dsZSBBZHMsIFNhYVMgc3Vic2NyaXB0aW9ucywgYW5kIGdsb2JhbCBvbmxpbmUgc2VydmljZXMgd2l0aCBoaWdoIGFwcHJvdmFsIHJhdGVzLiI+PG1ldGEgcHJvcGVydHk9Im9nOmltYWdlIiBjb250ZW50PSJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hX2E0NDE1ZC8yMDI1MDgzMDEwMjI1MGRmZDdkYTcyYWMuaWNvIj48bWV0YSBwcm9wZXJ0eT0ib2c6bG9jYWxlIiBjb250ZW50PSJlbiI+PG1ldGEgbmFtZT0idHdpdHRlcjpjYXJkIiBjb250ZW50PSJzdW1tYXJ5X2xhcmdlX2ltYWdlIj48bWV0YSBuYW1lPSJ0d2l0dGVyOnRpdGxlIiBjb250ZW50PSJHbG9iYWwgVmlydHVhbCBDYXJkcyBmb3IgQWRzICZhbXA7IFN1YnNjcmlwdGlvbnMgfCBCdXZlaSI+PG1ldGEgbmFtZT0idHdpdHRlcjpkZXNjcmlwdGlvbiIgY29udGVudD0iQnV2ZWkgcHJvdmlkZXMgaW5zdGFudCB2aXJ0dWFsIGNhcmRzIGZvciBtdWx0aS1jdXJyZW5jeSBwYXltZW50cy4gUGF5IGZvciBGYWNlYm9vayBBZHMsIEdvb2dsZSBBZHMsIFNhYVMgc3Vic2NyaXB0aW9ucywgYW5kIGdsb2JhbCBvbmxpbmUgc2VydmljZXMgd2l0aCBoaWdoIGFwcHJvdmFsIHJhdGVzLiI+PG1ldGEgbmFtZT0idHdpdHRlcjppbWFnZSIgY29udGVudD0iaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV9hNDQxNWQvMjAyNTA4MzAxMDIyNTBkZmQ3ZGE3MmFjLmljbyI+PGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWZsYW5nPSJlbiIgaHJlZj0iaHR0cHM6Ly9idXZlaS5jb20vZW4vIj48bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZmxhbmc9InZpIiBocmVmPSJodHRwczovL2J1dmVpLmNvbS92aS8iPjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmbGFuZz0icnUiIGhyZWY9Imh0dHBzOi8vYnV2ZWkuY29tL3J1LyI+PGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWZsYW5nPSJqYSIgaHJlZj0iaHR0cHM6Ly9idXZlaS5jb20vamEvIj48bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZmxhbmc9ImVzIiBocmVmPSJodHRwczovL2J1dmVpLmNvbS9lcy8iPjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmbGFuZz0iYXIiIGhyZWY9Imh0dHBzOi8vYnV2ZWkuY29tL2FyLyI+PGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWZsYW5nPSJ4LWRlZmF1bHQiIGhyZWY9Imh0dHBzOi8vYnV2ZWkuY29tLyI+PHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj57IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJPcmdhbml6YXRpb24iLCJuYW1lIjoiQnV2ZWkiLCJ1cmwiOiJodHRwczovL2J1dmVpLmNvbSIsImxvZ28iOiJodHRwczovL2J1dmVpLmNvbS9pbWFnZXMvbG9nby5zdmciLCJkZXNjcmlwdGlvbiI6IkJ1dmVpIHByb3ZpZGVzIHZpcnR1YWwgY2FyZCBzb2x1dGlvbnMgZm9yIGdsb2JhbCBwYXltZW50cywgYWR2ZXJ0aXNpbmcsIHN1YnNjcmlwdGlvbnMsIGFuZCB0cmF2ZWwuIiwic2FtZUFzIjpbXSwiY29udGFjdFBvaW50Ijp7IkB0eXBlIjoiQ29udGFjdFBvaW50IiwiY29udGFjdFR5cGUiOiJDdXN0b21lciBTZXJ2aWNlIiwiZW1haWwiOiJzdXBwb3J0QGJ1dmVpLmNvbSIsImF2YWlsYWJsZUxhbmd1YWdlIjpbIkVuZ2xpc2giLCJWaWV0bmFtZXNlIiwiUnVzc2lhbiIsIkphcGFuZXNlIiwiU3BhbmlzaCIsIkFyYWJpYyJdfX08L3NjcmlwdD48c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPnsiQGNvbnRleHQiOiJodHRwczovL3NjaGVtYS5vcmciLCJAdHlwZSI6IldlYlNpdGUiLCJuYW1lIjoiQnV2ZWkiLCJ1cmwiOiJodHRwczovL2J1dmVpLmNvbSIsImRlc2NyaXB0aW9uIjoiVmlydHVhbCBjYXJkIHNvbHV0aW9ucyBmb3IgZ2xvYmFsIHBheW1lbnRzIiwicG90ZW50aWFsQWN0aW9uIjp7IkB0eXBlIjoiU2VhcmNoQWN0aW9uIiwidGFyZ2V0Ijp7IkB0eXBlIjoiRW50cnlQb2ludCIsInVybFRlbXBsYXRlIjoiaHR0cHM6Ly9idXZlaS5jb20vYmluLXNlYXJjaD9xdWVyeT17c2VhcmNoX3Rlcm1fc3RyaW5nfSJ9LCJxdWVyeS1pbnB1dCI6InJlcXVpcmVkIG5hbWU9c2VhcmNoX3Rlcm1fc3RyaW5nIn19PC9zY3JpcHQ+PGxpbmsgcmVsPSJwcmVsb2FkIiBhcz0iaW1hZ2UiIGltYWdlc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE4MTk0NjI0OWYzZDZhMDYyZi53ZWJwJmFtcDt3PTY0MCZhbXA7cT03NSA2NDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE4MTk0NjI0OWYzZDZhMDYyZi53ZWJwJmFtcDt3PTc1MCZhbXA7cT03NSA3NTB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE4MTk0NjI0OWYzZDZhMDYyZi53ZWJwJmFtcDt3PTgyOCZhbXA7cT03NSA4Mjh3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE4MTk0NjI0OWYzZDZhMDYyZi53ZWJwJmFtcDt3PTEwODAmYW1wO3E9NzUgMTA4MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTgxOTQ2MjQ5ZjNkNmEwNjJmLndlYnAmYW1wO3c9MTIwMCZhbXA7cT03NSAxMjAwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxODE5NDYyNDlmM2Q2YTA2MmYud2VicCZhbXA7dz0xOTIwJmFtcDtxPTc1IDE5MjB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE4MTk0NjI0OWYzZDZhMDYyZi53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUgMjA0OHciIGltYWdlc2l6ZXM9IjEwMHZ3Ij48bWV0YSBuYW1lPSJuZXh0LWhlYWQtY291bnQiIGNvbnRlbnQ9IjI3Ij48bWV0YSBjaGFyc2V0PSJ1dGYtOCI+PGxpbmsgcmVsPSJpY29uIiBocmVmPSJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hX2E0NDE1ZC8yMDI1MDgzMDEwMjI1MGRmZDdkYTcyYWMuaWNvIj48bGluayByZWw9InByZWxvYWQiIGFzPSJpbWFnZSIgaHJlZj0iaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MTkxMDQ1MDMwMDFjZmMyM2NjLndlYnAiIHR5cGU9ImltYWdlL3dlYnAiPjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjxsaW5rIHJlbD0iZG5zLXByZWZldGNoIiBocmVmPSJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20iPjxsaW5rIHJlbD0iZG5zLXByZWZldGNoIiBocmVmPSJodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbSI+PGxpbmsgcmVsPSJkbnMtcHJlZmV0Y2giIGhyZWY9Imh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQiPjxsaW5rIGhyZWY9Ii9hcHAuY3NzIiByZWw9InN0eWxlc2hlZXQiPjxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIjZmZmZmZmIj48c3R5bGUgZGF0YS1hbnRkLXZlcnNpb249IjUuMjUuMSI+LmRhdGEtYW50LWNzc2luanMtY2FjaGUtcGF0aHtjb250ZW50OiIiO308L3N0eWxlPjxzdHlsZSBkYXRhLWVtb3Rpb249ImFjc3MgMCA1Mzk5OTIgczluZGhkIDFwZmhndnggcnl1NzNtIDFscjE4N2ogMTN1eHh3ayAxb3hrNmxyIGlqZmk0dSA1cTI2anogMmE5eG11IDFoYzZiOCAzNm9laXUgdzhpd2drIDFtZnN3bjAgcTkxMWFuIDFtbmNzN2ogeGhxeTBvIDFobGg2ZSBmcjE4Y3kgMTc4ZWtvZiAxYzUzZnZ4IGYzZTc3OCAxc2c4YW5zIDFyYmUzOHkgMWlndGRldCAxcjBlZjh1IDF4aTlta2cgdjY1bnZmIDFpeXplMXMgNzBoMjIxIGI1eGN2MiAxdHRmazBvIGh0ZW1lOCBpaTl1eHggMWs2NmJiYiBlaXkzNmcgYzVtNzBuIDFlNGtrMWMgMWNkejJ1dyBhMHUwczggazlmcGZlIDFlemNjNDYgMWM1dm41cyAxa2F2dDJzIDE3a2pldzcgMTVhajJyaiAxeTVqM2xkIDFxOXF0eXcgM21xM3E4IGM5eXFtNiAxa3d4cnhmIDEzeXJoMTIgMTJrY3c0cyAxcHR5YnFkIGpnb29hNiAxdHQzMmh0IGZocXY2aiBnM292cWggMWFhcms1MSAxZXk1bTR1IGdxNTJ2aCBuY3d4eGYgazYzNmp4IDF5YzZraGcgMWtybTZ1IDFpMTVuYmogMWQ1MWtxMSAxdG12ZXBxIGE2Y25hbCBtaWo2NGEgdTl1aWpmIHg4a3h6NCBuYTV4a2cgMWpodzVhYSAxaGYzMmVuIDF5ZzBwbTEgMWR3YmN0ZCAyNTNraDYgdzFweGI4IG9qZ2x4aiAxNmE4Y3YwIDR2b2x2eiAzMjB2NnMgMWg3NWxlbSBhdGdnZTMgeGZnd2c3IDF2amdoemUgN3hpMmhiIG51MWgwYyAxaTJva2kgMWR6ZGQ4OCA2ZXJob2MgMXVmNmNpOSBrbHpwcDcgMWpieDNpbSAxZ21uMHB0IG5jc25qcyAxeHU4ZGEyIDM4aDdsIHF5ZDZkbCAxN3c0aXljIHpoNjNiOSAyNWR5cDggcjU1ZzR0IG5qaWVteiA1eHRvNGMgYTA3NGVzIGE4bWoxNSAxeDM5dHlsIDRwcmFkeSAxbGJoMmk3IDFtdXd4bDkgMWI1aXg3aiAxYnR6MG14Ij4uYWNzcy01Mzk5OTJ7bWFyZ2luLXRvcDozNnB4O31AbWVkaWEgKG1heC13aWR0aDogMTE5OXB4KXsuYWNzcy01Mzk5OTJ7bWFyZ2luLXRvcDozMHB4O319QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy01Mzk5OTJ7bWFyZ2luLXRvcDoyMHB4O319QC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbi1zOW5kaGR7MCUsMTAwJXtvcGFjaXR5OjAuNjstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTstbW96LXRyYW5zZm9ybTpzY2FsZSgxKTstbXMtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKTt9NTAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjIpOy1tb3otdHJhbnNmb3JtOnNjYWxlKDEuMik7LW1zLXRyYW5zZm9ybTpzY2FsZSgxLjIpO3RyYW5zZm9ybTpzY2FsZSgxLjIpO319QGtleWZyYW1lcyBhbmltYXRpb24tczluZGhkezAlLDEwMCV7b3BhY2l0eTowLjY7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7LW1vei10cmFuc2Zvcm06c2NhbGUoMSk7LW1zLXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSk7fTUwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4yKTstbW96LXRyYW5zZm9ybTpzY2FsZSgxLjIpOy1tcy10cmFuc2Zvcm06c2NhbGUoMS4yKTt0cmFuc2Zvcm06c2NhbGUoMS4yKTt9fS5hY3NzLTFwZmhndnh7YmFja2dyb3VuZC1jb2xvcjojZmZmO30uYWNzcy1yeXU3M217bWFyZ2luOjAgYXV0bzt3aWR0aDoxMDAlO21heC13aWR0aDoxMjAwcHg7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlO31AbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KXsuYWNzcy1yeXU3M217Ym94LXNpemluZzpib3JkZXItYm94O319QG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCl7LmFjc3Mtcnl1NzNte21heC13aWR0aDo5MCU7cGFkZGluZzowIDQwcHg7Ym94LXNpemluZzpib3JkZXItYm94O319QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy1yeXU3M217bWF4LXdpZHRoOjkwJTtwYWRkaW5nOjAgNDBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLXJ5dTczbXttYXgtd2lkdGg6MTAwJTtwYWRkaW5nOjAgMjBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7fX0uYWNzcy0xbHIxODdqe2hlaWdodDo4MHB4O30uYWNzcy0xbHIxODdqIGF7bGluZS1oZWlnaHQ6MTt9LmFjc3MtMTN1eHh3a3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2hlaWdodDo4MHB4O3BhZGRpbmc6MCAyMHB4O30uYWNzcy0xb3hrNmxye3dpZHRoOjIwcHg7aGVpZ2h0OjE2cHg7fS5hY3NzLWlqZmk0dXt3aWR0aDozOHB4O2hlaWdodDozOHB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO2JvcmRlci1yYWRpdXM6OHB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7fS5hY3NzLTVxMjZqent3aWR0aDoxNHB4O2hlaWdodDoxNHB4O21hcmdpbi1sZWZ0OjEycHg7fS5hY3NzLTJhOXhtdXtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6OHB4IDE2cHg7Zm9udC1zaXplOjE0cHg7Ym9yZGVyOjFweCBzb2xpZCAjMjEyQjU1O2JvcmRlci1yYWRpdXM6MzBweDtjdXJzb3I6cG9pbnRlcjt9QG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KXsuYWNzcy0yYTl4bXV7ZGlzcGxheTpub25lO319LmFjc3MtMWhjNmI4e2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjUwMDttYXJnaW4tYm90dG9tOjMwcHg7Y29sb3I6IzIxMkI1NTt9LmFjc3MtMzZvZWl1e2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjojMjEyQjU1O31AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTM2b2VpdXtmb250LXNpemU6MjBweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtMzZvZWl1e2ZvbnQtc2l6ZToxOHB4O319LmFjc3Mtdzhpd2dre3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjojZmZmZmZmO30uYWNzcy0xbWZzd24we3BhZGRpbmc6ODBweCAwO3dpZHRoOjEwMCU7fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtMW1mc3duMHtwYWRkaW5nOjY1cHggMDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtMW1mc3duMHtwYWRkaW5nOjQwcHggMDt9fS5hY3NzLXE5MTFhbntwYWRkaW5nOjEyMHB4IDA7d2lkdGg6MTAwJTt9QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy1xOTExYW57cGFkZGluZzo4MHB4IDA7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLXE5MTFhbntwYWRkaW5nOjYwcHggMDt9fS5hY3NzLTFtbmNzN2p7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7LXdlYmtpdC1ib3gtYWxpZ246ZmxleC1zdGFydDstbXMtZmxleC1hbGlnbjpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47fS5hY3NzLXhocXkwb3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO30uYWNzcy0xaGxoNmV7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt9LmFjc3MtZnIxOGN5e2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjZmZmZmZmIDUwJSwgI2JmYzdlYiAxMDAlKTstd2Via2l0LWJhY2tncm91bmQtY2xpcDp0ZXh0O2JhY2tncm91bmQtY2xpcDp0ZXh0O2NvbG9yOnRyYW5zcGFyZW50O3RleHQtdHJhbnNmb3JtOm5vbmU7Zm9udC1zaXplOjQ4cHg7Zm9udC13ZWlnaHQ6NTAwO31AbWVkaWEgKG1heC13aWR0aDogMTE5OXB4KXsuYWNzcy1mcjE4Y3l7Zm9udC1zaXplOjQ0cHg7fX1AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLWZyMThjeXtmb250LXNpemU6NDBweDt9fS5hY3NzLTE3OGVrb2Z7Zm9udC1zaXplOjQycHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMjt3aGl0ZS1zcGFjZTpub3dyYXA7fUBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpey5hY3NzLTE3OGVrb2Z7Zm9udC1zaXplOjQwcHg7fX1AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTE3OGVrb2Z7Zm9udC1zaXplOjM2cHg7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLTE3OGVrb2Z7Zm9udC1zaXplOjMwcHg7d2hpdGUtc3BhY2U6cHJlLXdyYXA7fX0uYWNzcy0xYzUzZnZ4e2ZvbnQtc2l6ZTozMnB4O2ZvbnQtd2VpZ2h0OjUwMDt9LmFjc3MtZjNlNzc4e2ZvbnQtc2l6ZToxNnB4O2NvbG9yOiM3ZDgyOWQ7fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtZjNlNzc4e2ZvbnQtc2l6ZToxNHB4O319LmFjc3MtMXNnOGFuc3tmb250LXNpemU6NjBweDtmb250LXdlaWdodDo1MDA7fUBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpey5hY3NzLTFzZzhhbnN7Zm9udC1zaXplOjUwcHg7fX1AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTFzZzhhbnN7Zm9udC1zaXplOjQwcHg7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLTFzZzhhbnN7Zm9udC1zaXplOjMwcHg7fX0uYWNzcy0xcmJlMzh5e3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTA7fS5hY3NzLTFpZ3RkZXR7Zm9udC1zaXplOjQycHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1hbGlnbjpjZW50ZXI7fUBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpey5hY3NzLTFpZ3RkZXR7Zm9udC1zaXplOjQwcHg7fX1AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTFpZ3RkZXR7Zm9udC1zaXplOjM2cHg7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLTFpZ3RkZXR7Zm9udC1zaXplOjMwcHg7d2hpdGUtc3BhY2U6cHJlLXdyYXA7fX0uYWNzcy0xcjBlZjh1e2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE3OWRlZywgIzM4NGFhMCAwJSwgIzBmMGI2NSAxMDAlKTtwYWRkaW5nLXRvcDo2MHB4O3BhZGRpbmctYm90dG9tOjEwcHg7cG9zaXRpb246cmVsYXRpdmU7fUBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCl7LmFjc3MtMXIwZWY4dXtwYWRkaW5nLXRvcDo0MHB4O319LmFjc3MtMXhpOW1rZ3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWZsZXgtd3JhcDp3cmFwOy13ZWJraXQtZmxleC13cmFwOndyYXA7LW1zLWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwOy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoyMHB4O31AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpey5hY3NzLTF4aTlta2d7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjMwcHg7fX0uYWNzcy12NjVudmZ7bWFyZ2luLXJpZ2h0OjgwcHg7bWF4LXdpZHRoOjI3OHB4O3dpZHRoOjEwMCU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9QG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KXsuYWNzcy12NjVudmZ7bWFyZ2luLXJpZ2h0OjA7bWF4LXdpZHRoOjEwMCU7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1hbGlnbi1pdGVtczpmbGV4LXN0YXJ0Oy13ZWJraXQtYm94LWFsaWduOmZsZXgtc3RhcnQ7LW1zLWZsZXgtYWxpZ246ZmxleC1zdGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O319LmFjc3MtMWl5emUxc3std2Via2l0LWZsZXg6MTstbXMtZmxleDoxO2ZsZXg6MTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O31AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTFpeXplMXN7LXdlYmtpdC1ib3gtZmxleC13cmFwOndyYXA7LXdlYmtpdC1mbGV4LXdyYXA6d3JhcDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7fX0uYWNzcy03MGgyMjF7bWFyZ2luLXJpZ2h0OjYwcHg7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjE7bWluLXdpZHRoOjE0MHB4O31AbWVkaWEgKG1pbi13aWR0aDogNjQxcHgpIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpey5hY3NzLTcwaDIyMXstd2Via2l0LWZsZXg6MCAwIDQ1JTstbXMtZmxleDowIDAgNDUlO2ZsZXg6MCAwIDQ1JTttYXJnaW4tcmlnaHQ6MDt9fUBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCl7LmFjc3MtNzBoMjIxey13ZWJraXQtZmxleDoxIDEgMTAwJTstbXMtZmxleDoxIDEgMTAwJTtmbGV4OjEgMSAxMDAlO21hcmdpbi1yaWdodDowO319LmFjc3MtNzBoMjIxOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjBweDt9LmFjc3MtYjV4Y3Yye2ZvbnQtc2l6ZToxNnB4O2NvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTttYXJnaW4tYm90dG9tOjMycHg7fS5hY3NzLTF0dGZrMG97Zm9udC1zaXplOjE0cHg7Y29sb3I6I2ZmZjttYXJnaW4tYm90dG9tOjE2cHg7ZGlzcGxheTpibG9jazt9LmFjc3MtMXR0Zmswbzpob3Zlcntjb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7fS5hY3NzLWh0ZW1lOHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi10b3A6NjBweDstd2Via2l0LWJveC1mbGV4LXdyYXA6d3JhcDstd2Via2l0LWZsZXgtd3JhcDp3cmFwOy1tcy1mbGV4LXdyYXA6d3JhcDtmbGV4LXdyYXA6d3JhcDtnYXA6MTVweDt9QG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KXsuYWNzcy1odGVtZTh7bWFyZ2luLXRvcDo0MHB4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1zdGFydDstd2Via2l0LWJveC1hbGlnbjpmbGV4LXN0YXJ0Oy1tcy1mbGV4LWFsaWduOmZsZXgtc3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDt9fS5hY3NzLWlpOXV4eHt3aWR0aDoyNHB4O2hlaWdodDoyNHB4O3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDoyMHB4O30uYWNzcy1paTl1eHg6bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MjBweDt9LmFjc3MtMWs2NmJiYnt3aWR0aDoyNHB4O2hlaWdodDoyNHB4O3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtYm94O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5Oi1tcy1pbmxpbmUtZmxleGJveDtkaXNwbGF5OmlubGluZS1mbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDI1NSwyNTUsIDAuMSk7Ym9yZGVyLXJhZGl1czo1MCU7bWFyZ2luLXJpZ2h0OjIwcHg7fS5hY3NzLTFrNjZiYmI6bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MjBweDt9LmFjc3MtZWl5MzZne3dpZHRoOjEycHg7aGVpZ2h0OjEycHg7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7fS5hY3NzLWM1bTcwbnttYXJnaW4tdG9wOjIwMHB4O2NvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTt9QG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KXsuYWNzcy1jNW03MG57bWFyZ2luLXRvcDo2MHB4O319LmFjc3MtMWU0a2sxY3twb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MTAwcHg7bGVmdDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNDglKTstbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC00OCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNDglKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNDglKTt9LmFjc3MtMWNkejJ1d3twb3NpdGlvbjpyZWxhdGl2ZTthc3BlY3QtcmF0aW86NTM0LzE0ODt3aWR0aDo2MDBweDt9QG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KXsuYWNzcy0xY2R6MnV3e3dpZHRoOjcwJTt9fS5hY3NzLWEwdTBzOHtjb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7bWFyZ2luLWJvdHRvbToxNXB4O2ZvbnQtc2l6ZToxMnB4O30uYWNzcy1rOWZwZmV7Zm9udC1zaXplOjE2cHg7Y29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO21hcmdpbi1ib3R0b206MzJweDttYXJnaW4tYm90dG9tOjRweDt9LmFjc3MtMWV6Y2M0NnttYXJnaW4tcmlnaHQ6ODBweDttYXgtd2lkdGg6Mjc4cHg7d2lkdGg6MTAwJTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O21hcmdpbi10b3A6MTJweDt9QG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KXsuYWNzcy0xZXpjYzQ2e21hcmdpbi1yaWdodDowO21heC13aWR0aDoxMDAlOy13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1zdGFydDstd2Via2l0LWJveC1hbGlnbjpmbGV4LXN0YXJ0Oy1tcy1mbGV4LWFsaWduOmZsZXgtc3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtMWV6Y2M0NnttYXgtd2lkdGg6MTYwcHg7fX0uYWNzcy0xYzV2bjVze21hcmdpbi10b3A6MTJweDtmb250LXNpemU6MTZweDtjb2xvcjojN2Q4MjlkO31AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTFjNXZuNXN7Zm9udC1zaXplOjE0cHg7fX0uYWNzcy0xa2F2dDJze3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjojZmZmZmZmO3BhZGRpbmc6MTIwcHggMDt3aWR0aDoxMDAlO31AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTFrYXZ0MnN7cGFkZGluZzo4MHB4IDA7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLTFrYXZ0MnN7cGFkZGluZzo2MHB4IDA7fX0uYWNzcy0xN2tqZXc3e2ZvbnQtc2l6ZToxNnB4O2NvbG9yOiM3ZDgyOWQ7bWFyZ2luLXRvcDo4cHg7fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtMTdramV3N3tmb250LXNpemU6MTRweDt9fS5hY3NzLTE1YWoycmp7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhO3BhZGRpbmc6MTIwcHggMDt3aWR0aDoxMDAlO31AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTE1YWoycmp7cGFkZGluZzo4MHB4IDA7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLTE1YWoycmp7cGFkZGluZzo2MHB4IDA7fX0uYWNzcy0xeTVqM2xke2FzcGVjdC1yYXRpbzo2MTAvMzY0Oy13ZWJraXQtZmxleDowIDAgNTAlOy1tcy1mbGV4OjAgMCA1MCU7ZmxleDowIDAgNTAlO3Bvc2l0aW9uOnJlbGF0aXZlO31AbWVkaWEgKG1heC13aWR0aDogMTE5OXB4KXsuYWNzcy0xeTVqM2xke2Rpc3BsYXk6bm9uZTt9fS5hY3NzLTFxOXF0eXd7bWFyZ2luLXJpZ2h0OjY0cHg7fS5hY3NzLTNtcTNxOHt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tcmlnaHQ6NDBweDt9LmFjc3MtYzl5cW02e2NvbG9yOiNiZmM3ZWI7Zm9udC1zaXplOjE2cHg7bWFyZ2luLXRvcDo4cHg7fS5hY3NzLTFrd3hyeGZ7cGFkZGluZzo0cHg7YmFja2dyb3VuZC1jb2xvcjojMzg0YWEwO2JvcmRlci1yYWRpdXM6NnB4O2NvbG9yOiNmZmY7ZGlzcGxheTppbmxpbmUtYmxvY2s7fS5hY3NzLTEzeXJoMTJ7bWFyZ2luLXRvcDoxNDhweDt9QG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCl7LmFjc3MtMTN5cmgxMnttYXJnaW4tdG9wOjEwOHB4O319QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy0xM3lyaDEye21hcmdpbi10b3A6NzhweDt9fS5hY3NzLTEya2N3NHN7d2lkdGg6Y2FsYyg1MCUgLSAxMHB4KTtiYWNrZ3JvdW5kOiNmZmZmZmY7Ym9yZGVyLXJhZGl1czoyMHB4O2JvcmRlcjoxcHggc29saWQgI2RmZTFlYjtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzoyMHB4O21hcmdpbi1ib3R0b206MjBweDtwb3NpdGlvbjpyZWxhdGl2ZTt9LmFjc3MtMTJrY3c0czpudGgtY2hpbGQoMm4pe21hcmdpbi1sZWZ0OjIwcHg7fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtMTJrY3c0c3t3aWR0aDoxMDAlO21hcmdpbi1sZWZ0OjAhaW1wb3J0YW50O319LmFjc3MtMXB0eWJxZHthc3BlY3QtcmF0aW86NTUwLzIwMDtiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyLXJhZGl1czoyMHB4O292ZXJmbG93OmhpZGRlbjt9LmFjc3Mtamdvb2E2e2FzcGVjdC1yYXRpbzozNDAvMjAwO2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItcmFkaXVzOjIwcHg7b3ZlcmZsb3c6aGlkZGVuO30uYWNzcy0xdHQzMmh0e3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6Mjtmb250LXNpemU6NDhweDtsaW5lLWhlaWdodDoxO2ZvbnQtd2VpZ2h0OjcwMDtyaWdodDoxMHB4O3RvcDo1cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgMTgwZGVnLAogICAgICAgICM1NTM4YTAgMCUsCiAgICAgICAgcmdiYSg4NSwgNTYsIDE2MCwgMCkgMTAwJQogICAgICApOy13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnRleHQ7YmFja2dyb3VuZC1jbGlwOnRleHQ7Y29sb3I6dHJhbnNwYXJlbnQ7dGV4dC10cmFuc2Zvcm06bm9uZTt9QG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCl7LmFjc3MtMXR0MzJodHtmb250LXNpemU6NDJweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtMXR0MzJodHtmb250LXNpemU6MzhweDt9fS5hY3NzLWZocXY2anttYXJnaW4tcmlnaHQ6MnB4O30uYWNzcy1nM292cWh7dGV4dC1hbGlnbjpjZW50ZXI7Ym9yZGVyLXJpZ2h0OjNweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7cGFkZGluZzowIDgwcHg7Zm9udC1mYW1pbHk6U2lsa2FsO31AbWVkaWEgKG1heC13aWR0aDogMTE5OXB4KXsuYWNzcy1nM292cWh7cGFkZGluZzowIDYwcHg7fX1AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLWczb3ZxaHtwYWRkaW5nOjAgNDBweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtZzNvdnFoe3BhZGRpbmc6MCAxMHB4O319LmFjc3MtZzNvdnFoOmxhc3QtY2hpbGR7Ym9yZGVyLXJpZ2h0OjBweDt9LmFjc3MtMWFhcms1MXtwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6NTZweDtkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWJveDtkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWZsZXg7ZGlzcGxheTotbXMtaW5saW5lLWZsZXhib3g7ZGlzcGxheTppbmxpbmUtZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXI6MXB4IHNvbGlkICNlMGUyZWE7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1yYWRpdXM6NDBweDt9LmFjc3MtMWV5NW00dXttYXJnaW4tbGVmdDo2cHg7Zm9udC1zaXplOjE2cHg7fS5hY3NzLWdxNTJ2aHstd2Via2l0LWZsZXg6MTstbXMtZmxleDoxO2ZsZXg6MTttYXJnaW4tcmlnaHQ6MjBweDt9QG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KXsuYWNzcy1ncTUydmh7LXdlYmtpdC1mbGV4OjAgMCAxMDAlOy1tcy1mbGV4OjAgMCAxMDAlO2ZsZXg6MCAwIDEwMCU7bWFyZ2luLXRvcDoyMHB4O319QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy1ncTUydmh7bWFyZ2luLXRvcDoyMHB4O319LmFjc3MtZ3E1MnZoOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjA7fS5hY3NzLW5jd3h4Znthc3BlY3QtcmF0aW86Mzg2LzM0MDtwb3NpdGlvbjpyZWxhdGl2ZTt9LmFjc3MtazYzNmp4e21hcmdpbi10b3A6MzBweDttYXJnaW4tbGVmdDoyMHB4O30uYWNzcy0xeWM2a2hne2NvbG9yOiNlNDgyNDY7cGFkZGluZzo0cHggOHB4O2ZvbnQtc2l6ZToxNHB4O2JhY2tncm91bmQ6I2ZmZjhmNDtib3JkZXItcmFkaXVzOjMwcHg7bWFyZ2luLXJpZ2h0OjhweDt9LmFjc3MtMXljNmtoZzpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowO30uYWNzcy0xa3JtNnV7d2lkdGg6MTZweDtoZWlnaHQ6MTRweDttYXJnaW4tbGVmdDo4cHg7fS5hY3NzLTFpMTVuYmp7YmFja2dyb3VuZDojZmZmO2NvbG9yOiMzODRhYTA7Ym9yZGVyOjJweCBzb2xpZCAjMzg0YWEwO31AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLTFkNTFrcTF7ZGlzcGxheTpub25lIWltcG9ydGFudDt9fS5hY3NzLTF0bXZlcHF7cG9zaXRpb246cmVsYXRpdmU7YXNwZWN0LXJhdGlvOjEzMi80Mjt3aWR0aDoxMzJweDttYXJnaW46MCBhdXRvO21hcmdpbi10b3A6MjBweDt9QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy0xdG12ZXBxe3dpZHRoOjExMnB4O319QG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KXsuYWNzcy0xdG12ZXBxe3dpZHRoOjgwcHg7fX0uYWNzcy1hNmNuYWx7LXdlYmtpdC1mbGV4OjAgMCAzNi42JTstbXMtZmxleDowIDAgMzYuNiU7ZmxleDowIDAgMzYuNiU7bWluLXdpZHRoOjIwMHB4O21hcmdpbi1yaWdodDo4MHB4O31AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLWE2Y25hbHttYXJnaW4tcmlnaHQ6NjBweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtYTZjbmFse3dpZHRoOjMwcHg7LXdlYmtpdC1mbGV4OjAgMCAxMDAlOy1tcy1mbGV4OjAgMCAxMDAlO2ZsZXg6MCAwIDEwMCU7fX0uYWNzcy1taWo2NGF7cGFkZGluZzoyMHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXItcmFkaXVzOjIwcHg7fS5hY3NzLXU5dWlqZntwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LWZsZXg6MTstbXMtZmxleDoxO2ZsZXg6MTthc3BlY3QtcmF0aW86NjgwLzU0NTt9LmFjc3MteDhreHo0ey13ZWJraXQtZmxleDoxOy1tcy1mbGV4OjE7ZmxleDoxO21hcmdpbi1yaWdodDoyMHB4O30uYWNzcy1uYTV4a2d7d2lkdGg6MjBweDt3aWR0aDoyMHB4O21hcmdpbi1yaWdodDo4cHg7fS5hY3NzLTFqaHc1YWF7cG9zaXRpb246cmVsYXRpdmU7YXNwZWN0LXJhdGlvOjMwMC8yODQ7bWF4LXdpZHRoOjMwMHB4O3dpZHRoOjEwMCU7fS5hY3NzLTFoZjMyZW57Ym94LXNpemluZzpib3JkZXItYm94Oy13ZWJraXQtZmxleDoxOy1tcy1mbGV4OjE7ZmxleDoxO21hcmdpbi1yaWdodDoyMHB4O3BhZGRpbmc6MjBweDtiYWNrZ3JvdW5kOiNmZmZmZmY7Ym9yZGVyLXJhZGl1czoyMHB4O3Bvc2l0aW9uOnJlbGF0aXZlO30uYWNzcy0xaGYzMmVuOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjA7fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtMWhmMzJlbjpudGgtY2hpbGQoMSl7bWFyZ2luLWJvdHRvbToyMHB4O30uYWNzcy0xaGYzMmVuOm50aC1jaGlsZCgyKXttYXJnaW4tcmlnaHQ6MDttYXJnaW4tYm90dG9tOjIwcHg7fX0uYWNzcy0xeWcwcG0xe2ZvbnQtc2l6ZTo0MHB4O2NvbG9yOiMzODRhYTA7Zm9udC13ZWlnaHQ6NTAwO31AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLTF5ZzBwbTF7Zm9udC1zaXplOjMwcHg7fX0uYWNzcy0xZHdiY3Rke3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6Mjt9LmFjc3MtMjUza2g2e3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMHB4O3JpZ2h0OjEwcHg7fS5hY3NzLXcxcHhiOHtwb3NpdGlvbjpyZWxhdGl2ZTthc3BlY3QtcmF0aW86MTIwLzEyMDt3aWR0aDoxMjBweDt9LmFjc3Mtb2pnbHhqe3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6OTk5O2ZvbnQtc2l6ZTowO2xpbmUtaGVpZ2h0OjE7fS5hY3NzLTE2YThjdjB7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6NDBweDtvZmZzZXQtcGF0aDpwYXRoKAogICAgICAgICJNMC4xMTU2MTUsMCBDNTQuMTkyNjcxNyw2LjI5NDM0IDc5LjU3ODQ2NjcsMzUuODAzNjQgNzYuMjczLDg4LjUyNzkgTDc1LjI3NSw4OC40NjU0IEM3OC41NDA4NjY3LDM2LjM3MTkzMzMgNTMuNDQ5Miw3LjIxNDU2NDY3IDAsMC45OTMyOTQgTDAuMTE1NjE1LDAgWiIKICAgICAgKTt9LmFjc3MtNHZvbHZ6e3dpZHRoOjc2cHg7aGVpZ2h0Ojg4cHg7cG9zaXRpb246YWJzb2x1dGU7fS5hY3NzLTMyMHY2c3tvYmplY3QtZml0OmNvdmVyOy13ZWJraXQtY2xpcC1wYXRoOmluc2V0KDEwMCUgMCAwIDApO2NsaXAtcGF0aDppbnNldCgxMDAlIDAgMCAwKTstd2Via2l0LXRyYW5zaXRpb246YWxsIDJzIGVhc2UtaW4tb3V0O3RyYW5zaXRpb246YWxsIDJzIGVhc2UtaW4tb3V0O30uYWNzcy0xaDc1bGVte2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjY4cHg7b3ZlcmZsb3c6aGlkZGVuO30uYWNzcy1hdGdnZTN7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLWxlZnQ6OHB4O30uYWNzcy14Zmd3Zzd7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7YmFja2dyb3VuZC1pbWFnZTp1cmwoImh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDE5MTA0NTAzMDAxY2ZjMjNjYy53ZWJwIik7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtjb2xvcjojZmZmZmZmO3Bvc2l0aW9uOnJlbGF0aXZlO30uYWNzcy0xdmpnaHple2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpmbGV4LXN0YXJ0Oy13ZWJraXQtYm94LWFsaWduOmZsZXgtc3RhcnQ7LW1zLWZsZXgtYWxpZ246ZmxleC1zdGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O21hcmdpbi10b3A6MzZweDt9QG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCl7LmFjc3MtMXZqZ2h6ZXttYXJnaW4tdG9wOjMwcHg7fX1AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTF2amdoemV7bWFyZ2luLXRvcDoyMHB4O319LmFjc3MtN3hpMmhie3dpZHRoOjIyOHB4O2hlaWdodDo0MHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjEwcHggOHB4O2JhY2tncm91bmQ6I2ZmZmZmZjtib3JkZXItcmFkaXVzOjhweCA4cHggOHB4IDhweDtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyOjFweCBzb2xpZDttYXJnaW4tdG9wOjQ4cHg7Y29sb3I6IzIxMkI1NTt3aGl0ZS1zcGFjZTpub3dyYXA7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6MTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO30uYWNzcy03eGkyaGI6aG92ZXJ7b3BhY2l0eTowLjk7fS5hY3NzLW51MWgwY3t3aWR0aDoxMTJweDthc3BlY3QtcmF0aW86MTEyLzM2O21hcmdpbi1yaWdodDo0MHB4O3Bvc2l0aW9uOnJlbGF0aXZlO31AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLW51MWgwY3ttYXJnaW4tcmlnaHQ6MjBweDt9fS5hY3NzLW51MWgwYzpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowcHg7fS5hY3NzLTFpMm9raXt3aWR0aDo2MHB4O2FzcGVjdC1yYXRpbzo2MC8zNjttYXJnaW4tcmlnaHQ6NDBweDtwb3NpdGlvbjpyZWxhdGl2ZTt9QG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KXsuYWNzcy0xaTJva2l7bWFyZ2luLXJpZ2h0OjIwcHg7fX0uYWNzcy0xaTJva2k6bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MHB4O30uYWNzcy0xZHpkZDg4e2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjojMjEyQjU1O3RleHQtYWxpZ246Y2VudGVyO31AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTFkemRkODh7Zm9udC1zaXplOjIwcHg7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLTFkemRkODh7Zm9udC1zaXplOjE4cHg7fX0uYWNzcy02ZXJob2N7bWFyZ2luLXRvcDo4MHB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtZmxleC13cmFwOndyYXA7LXdlYmtpdC1mbGV4LXdyYXA6d3JhcDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7fUBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpey5hY3NzLTZlcmhvY3ttYXJnaW4tdG9wOjcwcHg7fX1AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTZlcmhvY3ttYXJnaW4tdG9wOjYwcHg7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLTZlcmhvY3ttYXJnaW4tdG9wOjMwcHg7fX0uYWNzcy0xdWY2Y2k5e2ZvbnQtc2l6ZToyMHB4O21hcmdpbi10b3A6MjBweDt9QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy0xdWY2Y2k5e2ZvbnQtc2l6ZToxNHB4O319QG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KXsuYWNzcy0xdWY2Y2k5e2ZvbnQtc2l6ZToxNHB4O319QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy0xdWY2Y2k5e21hcmdpbi10b3A6MTVweDt9fS5hY3NzLWtsenBwN3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWZsZXgtd3JhcDp3cmFwOy13ZWJraXQtZmxleC13cmFwOndyYXA7LW1zLWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwO30uYWNzcy0xamJ4M2lte3dpZHRoOmNhbGMoNTAlIC0gMTBweCk7YmFja2dyb3VuZDojZmZmZmZmO2JvcmRlci1yYWRpdXM6MjBweDtib3JkZXI6MXB4IHNvbGlkICNkZmUxZWI7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6MjBweDttYXJnaW4tYm90dG9tOjIwcHg7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjE7bWFyZ2luLWxlZnQ6MjBweDt9LmFjc3MtMWpieDNpbTpudGgtY2hpbGQoMm4pe21hcmdpbi1sZWZ0OjIwcHg7fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtMWpieDNpbXt3aWR0aDoxMDAlO21hcmdpbi1sZWZ0OjAhaW1wb3J0YW50O319QG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KXsuYWNzcy0xamJ4M2lte3dpZHRoOjEwMCUhaW1wb3J0YW50Oy13ZWJraXQtZmxleDowIDAgMTAwJSFpbXBvcnRhbnQ7LW1zLWZsZXg6MCAwIDEwMCUhaW1wb3J0YW50O2ZsZXg6MCAwIDEwMCUhaW1wb3J0YW50O21hcmdpbi1sZWZ0OjAhaW1wb3J0YW50O319LmFjc3MtMWpieDNpbTpmaXJzdC1jaGlsZHttYXJnaW4tbGVmdDowcHg7fS5hY3NzLTFnbW4wcHR7Zm9udC1zaXplOjIwcHg7bWFyZ2luLXRvcDoyMHB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtMWdtbjBwdHtmb250LXNpemU6MTRweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtMWdtbjBwdHtmb250LXNpemU6MTRweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtMWdtbjBwdHttYXJnaW4tdG9wOjE1cHg7fX0uYWNzcy1uY3NuanN7cGFkZGluZzozcHggMnB4O2NvbG9yOiM1NTM4YTA7YmFja2dyb3VuZDojZjlmN2ZmO2JvcmRlci1yYWRpdXM6MTVweDtmb250LXNpemU6MTBweDttYXJnaW4tbGVmdDo4cHg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt9LmFjc3MtMXh1OGRhMnttYXJnaW4tdG9wOjgwcHg7dGV4dC1hbGlnbjpjZW50ZXI7fUBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpey5hY3NzLTF4dThkYTJ7bWFyZ2luLXRvcDo3MHB4O319QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy0xeHU4ZGEye21hcmdpbi10b3A6NjBweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtMXh1OGRhMnttYXJnaW4tdG9wOjMwcHg7fX0uYWNzcy0zOGg3bHttYXgtd2lkdGg6OTYwcHg7bWFyZ2luOjAgYXV0bztiYWNrZ3JvdW5kLWltYWdlOnVybCgiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MTkxNDU4NDA3YTc1NDQ0NDk2LndlYnAiKTstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjYwcHggMHB4O2JvcmRlci1yYWRpdXM6MjBweDtvdmVyZmxvdzpoaWRkZW47bWFyZ2luLXRvcDo4MHB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y29sb3I6I2ZmZmZmZjt9QG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCl7LmFjc3MtMzhoN2x7bWFyZ2luLXRvcDo3MHB4O319QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy0zOGg3bHttYXJnaW4tdG9wOjYwcHg7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLTM4aDdse21hcmdpbi10b3A6MzBweDt9fS5hY3NzLXF5ZDZkbHtmb250LXNpemU6MjBweDtjb2xvcjojYmZjN2ViO21hcmdpbi10b3A6MTJweDt9QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy1xeWQ2ZGx7Zm9udC1zaXplOjE0cHg7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLXF5ZDZkbHtmb250LXNpemU6MTRweDt9fS5hY3NzLTE3dzRpeWN7Zm9udC1zaXplOjYwcHg7Zm9udC13ZWlnaHQ6NTAwO21pbi13aWR0aDoxODVweDt9QG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCl7LmFjc3MtMTd3NGl5Y3tmb250LXNpemU6NTBweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtMTd3NGl5Y3tmb250LXNpemU6NDBweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtMTd3NGl5Y3tmb250LXNpemU6MzBweDt9fS5hY3NzLXpoNjNiOXtvdmVyZmxvdzpoaWRkZW47bWFyZ2luLXRvcDo2MHB4O31AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLXpoNjNiOXttYXJnaW4tdG9wOjQwcHg7fX0uYWNzcy0yNWR5cDh7bWFyZ2luLXRvcDo4MHB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtZmxleC13cmFwOndyYXA7LXdlYmtpdC1mbGV4LXdyYXA6d3JhcDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7Y29sb3I6I2ZmZmZmZjtwb3NpdGlvbjpyZWxhdGl2ZTt9QG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCl7LmFjc3MtMjVkeXA4e21hcmdpbi10b3A6NzBweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtMjVkeXA4e21hcmdpbi10b3A6NjBweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtMjVkeXA4e21hcmdpbi10b3A6MzBweDt9fS5hY3NzLXI1NWc0dHttYXJnaW4tdG9wOjYwcHg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7LXdlYmtpdC1ib3gtYWxpZ246ZmxleC1zdGFydDstbXMtZmxleC1hbGlnbjpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7LXdlYmtpdC1ib3gtZmxleC13cmFwOndyYXA7LXdlYmtpdC1mbGV4LXdyYXA6d3JhcDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtcjU1ZzR0e21hcmdpbi10b3A6NDBweDt9fS5hY3NzLW5qaWVtentwYWRkaW5nOjIwcHg7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1yYWRpdXM6MjBweDtiYWNrZ3JvdW5kOiNmZmZmZmY7Ym94LXNoYWRvdzowcHggMHB4IDIwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2UtaW4tb3V0O3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZS1pbi1vdXQ7fS5hY3NzLTV4dG80Y3t3aWR0aDozMnB4O2hlaWdodDozMnB4O2JhY2tncm91bmQ6I2U0ZThmOTtib3JkZXItcmFkaXVzOjhweDtmb250LXNpemU6MTRweDtjb2xvcjojMzg0YWEwO2ZvbnQtd2VpZ2h0OjUwMDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO30uYWNzcy1hMDc0ZXN7Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiMyMTJCNTU7bWFyZ2luLXRvcDoxMnB4O31AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLWEwNzRlc3tmb250LXNpemU6MjBweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtYTA3NGVze2ZvbnQtc2l6ZToxOHB4O319LmFjc3MtYThtajE1e2ZvbnQtc2l6ZToxNnB4O2NvbG9yOiM3ZDgyOWQ7bWFyZ2luLXRvcDoxMnB4O31AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLWE4bWoxNXtmb250LXNpemU6MTRweDt9fS5hY3NzLTF4Mzl0eWx7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tdG9wOjYwcHg7fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtMXgzOXR5bHttYXJnaW4tdG9wOjQwcHg7fX0uYWNzcy00cHJhZHl7YmFja2dyb3VuZDojZmZmO2NvbG9yOiMzODRhYTA7Ym9yZGVyOjJweCBzb2xpZCAjMzg0YWEwO21hcmdpbi1yaWdodDoxMTBweCFpbXBvcnRhbnQ7fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtNHByYWR5e21hcmdpbi1yaWdodDo4MHB4IWltcG9ydGFudDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtNHByYWR5e21hcmdpbi1yaWdodDoxMHB4IWltcG9ydGFudDt9fS5hY3NzLTFsYmgyaTd7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7LXdlYmtpdC1ib3gtYWxpZ246ZmxleC1zdGFydDstbXMtZmxleC1hbGlnbjpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7LXdlYmtpdC1ib3gtZmxleC13cmFwOndyYXA7LXdlYmtpdC1mbGV4LXdyYXA6d3JhcDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7fS5hY3NzLTFtdXd4bDl7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjE7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt9LmFjc3MtMWI1aXg3antkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWZsZXgtd3JhcDp3cmFwOy13ZWJraXQtZmxleC13cmFwOndyYXA7LW1zLWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwO2JhY2tncm91bmQ6I2ZhZmFmYTtib3JkZXItcmFkaXVzOjIwcHg7cGFkZGluZzoyMHB4O30uYWNzcy0xYnR6MG14e2ZvbnQtc2l6ZToxNnB4O21hcmdpbi10b3A6MTJweDt9QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy0xYnR6MG14e2ZvbnQtc2l6ZToxNHB4O319PC9zdHlsZT48c2NyaXB0IGRlZmVyIG5vbW9kdWxlIHNyYz0iL19uZXh0L3N0YXRpYy9jaHVua3MvcG9seWZpbGxzLWM2N2E3NWQxYjZmOTlkYzguanMiPjwvc2NyaXB0PjxzY3JpcHQgZGVmZXIgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy8xOTI2LjZkODYyMjE5OTYzNDA0MjEuanMiPjwvc2NyaXB0PjxzY3JpcHQgZGVmZXIgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy9saWItbWlzYy5lMWVhNDBjOTRlZDFkZjQwLmpzIj48L3NjcmlwdD48c2NyaXB0IGRlZmVyIHNyYz0iL19uZXh0L3N0YXRpYy9jaHVua3MvOTQ3Ni4zODU3NzUxZjI2NDJjYjg1LmpzIj48L3NjcmlwdD48c2NyaXB0IGRlZmVyIHNyYz0iL19uZXh0L3N0YXRpYy9jaHVua3MvMjIxLjQwMTU3ZWE1ZDA1YjE4NjYuanMiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy93ZWJwYWNrLTRkODdiMTllOTZiODJmM2UuanMiIGRlZmVyPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy9mcmFtZXdvcmstMTQwNTg2ODQ4MzI5MDQ3OS5qcyIgZGVmZXI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9fbmV4dC9zdGF0aWMvY2h1bmtzL2xpYi1uZXh0LTI4YzVkN2JhZTliODhmNGUuanMiIGRlZmVyPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy9tYWluLTA1YTBlYzVlNGE1ZmMwOTUuanMiIGRlZmVyPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy9hbnRkLTA3MDdhMmI4YmRhNWIxYWMuanMiIGRlZmVyPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy9saWItbmV4dC1pMThuZXh0LTdlYTJmYTI3NTkxY2IwMDkuanMiIGRlZmVyPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy8xNjY4LWFlMTc5ZTNmOTdkNGJmYjguanMiIGRlZmVyPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy9wYWdlcy9fYXBwLWQyY2YyNDc2Njg4OGQ3NzYuanMiIGRlZmVyPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy9saWItZnJhbWVyLW1vdGlvbi0wY2M5YWRiZGE1YWI4YzMyLmpzIiBkZWZlcj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL19uZXh0L3N0YXRpYy9jaHVua3MvY29tbW9ucy00NWQ5ODZiYzY4NmE3MTlmLmpzIiBkZWZlcj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL19uZXh0L3N0YXRpYy9jaHVua3MvcGFnZXMvaW5kZXgtOTBjZWE4MDU5YzQzMjc2Yy5qcyIgZGVmZXI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9fbmV4dC9zdGF0aWMvNndZalAyS21NSzloQUlTb3JHaDFQL19idWlsZE1hbmlmZXN0LmpzIiBkZWZlcj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL19uZXh0L3N0YXRpYy82d1lqUDJLbU1LOWhBSVNvckdoMVAvX3NzZ01hbmlmZXN0LmpzIiBkZWZlcj48L3NjcmlwdD48bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9fbmV4dC9zdGF0aWMvY3NzLzljOWNmZjRjZjVmZmE3OTcuY3NzIiBtZWRpYT0icHJpbnQiIG9ubG9hZD0idGhpcy5tZWRpYT0nYWxsJyI+PG5vc2NyaXB0PjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL19uZXh0L3N0YXRpYy9jc3MvOWM5Y2ZmNGNmNWZmYTc5Ny5jc3MiPjwvbm9zY3JpcHQ+PG5vc2NyaXB0IGRhdGEtbi1jc3M+PC9ub3NjcmlwdD48c3R5bGUgZGF0YS1hbnRkLXZlcnNpb249IjUuMjUuMSI+LmRhdGEtYW50LWNzc2luanMtY2FjaGUtcGF0aHtjb250ZW50OiIiO308L3N0eWxlPjxzdHlsZSBkYXRhLWVtb3Rpb249ImFjc3MgMCA1Mzk5OTIgczluZGhkIDFwZmhndnggcnl1NzNtIDFscjE4N2ogMTN1eHh3ayAxb3hrNmxyIGlqZmk0dSA1cTI2anogMmE5eG11IDFoYzZiOCAzNm9laXUgdzhpd2drIDFtZnN3bjAgcTkxMWFuIDFtbmNzN2ogeGhxeTBvIDFobGg2ZSBmcjE4Y3kgMTc4ZWtvZiAxYzUzZnZ4IGYzZTc3OCAxc2c4YW5zIDFyYmUzOHkgMWlndGRldCAxcjBlZjh1IDF4aTlta2cgdjY1bnZmIDFpeXplMXMgNzBoMjIxIGI1eGN2MiAxdHRmazBvIGh0ZW1lOCBpaTl1eHggMWs2NmJiYiBlaXkzNmcgYzVtNzBuIDFlNGtrMWMgMWNkejJ1dyBhMHUwczggazlmcGZlIDFlemNjNDYgMWM1dm41cyAxa2F2dDJzIDE3a2pldzcgMTVhajJyaiAxeTVqM2xkIDFxOXF0eXcgM21xM3E4IGM5eXFtNiAxa3d4cnhmIDEzeXJoMTIgMTJrY3c0cyAxcHR5YnFkIGpnb29hNiAxdHQzMmh0IGZocXY2aiBnM292cWggMWFhcms1MSAxZXk1bTR1IGdxNTJ2aCBuY3d4eGYgazYzNmp4IDF5YzZraGcgMWtybTZ1IDFpMTVuYmogMWQ1MWtxMSAxdG12ZXBxIGE2Y25hbCBtaWo2NGEgdTl1aWpmIHg4a3h6NCBuYTV4a2cgMWpodzVhYSAxaGYzMmVuIDF5ZzBwbTEgMWR3YmN0ZCAyNTNraDYgdzFweGI4IG9qZ2x4aiAxNmE4Y3YwIDR2b2x2eiAzMjB2NnMgMWg3NWxlbSBhdGdnZTMgeGZnd2c3IDF2amdoemUgN3hpMmhiIG51MWgwYyAxaTJva2kgMWR6ZGQ4OCA2ZXJob2MgMXVmNmNpOSBrbHpwcDcgMWpieDNpbSAxZ21uMHB0IG5jc25qcyAxeHU4ZGEyIDM4aDdsIHF5ZDZkbCAxN3c0aXljIHpoNjNiOSAyNWR5cDggcjU1ZzR0IG5qaWVteiA1eHRvNGMgYTA3NGVzIGE4bWoxNSAxeDM5dHlsIDRwcmFkeSAxbGJoMmk3IDFtdXd4bDkgMWI1aXg3aiAxYnR6MG14Ij4uYWNzcy01Mzk5OTJ7bWFyZ2luLXRvcDozNnB4O31AbWVkaWEgKG1heC13aWR0aDogMTE5OXB4KXsuYWNzcy01Mzk5OTJ7bWFyZ2luLXRvcDozMHB4O319QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy01Mzk5OTJ7bWFyZ2luLXRvcDoyMHB4O319QC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbi1zOW5kaGR7MCUsMTAwJXtvcGFjaXR5OjAuNjstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTstbW96LXRyYW5zZm9ybTpzY2FsZSgxKTstbXMtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKTt9NTAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjIpOy1tb3otdHJhbnNmb3JtOnNjYWxlKDEuMik7LW1zLXRyYW5zZm9ybTpzY2FsZSgxLjIpO3RyYW5zZm9ybTpzY2FsZSgxLjIpO319QGtleWZyYW1lcyBhbmltYXRpb24tczluZGhkezAlLDEwMCV7b3BhY2l0eTowLjY7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7LW1vei10cmFuc2Zvcm06c2NhbGUoMSk7LW1zLXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSk7fTUwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4yKTstbW96LXRyYW5zZm9ybTpzY2FsZSgxLjIpOy1tcy10cmFuc2Zvcm06c2NhbGUoMS4yKTt0cmFuc2Zvcm06c2NhbGUoMS4yKTt9fS5hY3NzLTFwZmhndnh7YmFja2dyb3VuZC1jb2xvcjojZmZmO30uYWNzcy1yeXU3M217bWFyZ2luOjAgYXV0bzt3aWR0aDoxMDAlO21heC13aWR0aDoxMjAwcHg7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlO31AbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KXsuYWNzcy1yeXU3M217Ym94LXNpemluZzpib3JkZXItYm94O319QG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCl7LmFjc3Mtcnl1NzNte21heC13aWR0aDo5MCU7cGFkZGluZzowIDQwcHg7Ym94LXNpemluZzpib3JkZXItYm94O319QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy1yeXU3M217bWF4LXdpZHRoOjkwJTtwYWRkaW5nOjAgNDBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLXJ5dTczbXttYXgtd2lkdGg6MTAwJTtwYWRkaW5nOjAgMjBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7fX0uYWNzcy0xbHIxODdqe2hlaWdodDo4MHB4O30uYWNzcy0xbHIxODdqIGF7bGluZS1oZWlnaHQ6MTt9LmFjc3MtMTN1eHh3a3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2hlaWdodDo4MHB4O3BhZGRpbmc6MCAyMHB4O30uYWNzcy0xb3hrNmxye3dpZHRoOjIwcHg7aGVpZ2h0OjE2cHg7fS5hY3NzLWlqZmk0dXt3aWR0aDozOHB4O2hlaWdodDozOHB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO2JvcmRlci1yYWRpdXM6OHB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7fS5hY3NzLTVxMjZqent3aWR0aDoxNHB4O2hlaWdodDoxNHB4O21hcmdpbi1sZWZ0OjEycHg7fS5hY3NzLTJhOXhtdXtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6OHB4IDE2cHg7Zm9udC1zaXplOjE0cHg7Ym9yZGVyOjFweCBzb2xpZCAjMjEyQjU1O2JvcmRlci1yYWRpdXM6MzBweDtjdXJzb3I6cG9pbnRlcjt9QG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KXsuYWNzcy0yYTl4bXV7ZGlzcGxheTpub25lO319LmFjc3MtMWhjNmI4e2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjUwMDttYXJnaW4tYm90dG9tOjMwcHg7Y29sb3I6IzIxMkI1NTt9LmFjc3MtMzZvZWl1e2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjojMjEyQjU1O31AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTM2b2VpdXtmb250LXNpemU6MjBweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtMzZvZWl1e2ZvbnQtc2l6ZToxOHB4O319LmFjc3Mtdzhpd2dre3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjojZmZmZmZmO30uYWNzcy0xbWZzd24we3BhZGRpbmc6ODBweCAwO3dpZHRoOjEwMCU7fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtMW1mc3duMHtwYWRkaW5nOjY1cHggMDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtMW1mc3duMHtwYWRkaW5nOjQwcHggMDt9fS5hY3NzLXE5MTFhbntwYWRkaW5nOjEyMHB4IDA7d2lkdGg6MTAwJTt9QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy1xOTExYW57cGFkZGluZzo4MHB4IDA7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLXE5MTFhbntwYWRkaW5nOjYwcHggMDt9fS5hY3NzLTFtbmNzN2p7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7LXdlYmtpdC1ib3gtYWxpZ246ZmxleC1zdGFydDstbXMtZmxleC1hbGlnbjpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47fS5hY3NzLXhocXkwb3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO30uYWNzcy0xaGxoNmV7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt9LmFjc3MtZnIxOGN5e2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjZmZmZmZmIDUwJSwgI2JmYzdlYiAxMDAlKTstd2Via2l0LWJhY2tncm91bmQtY2xpcDp0ZXh0O2JhY2tncm91bmQtY2xpcDp0ZXh0O2NvbG9yOnRyYW5zcGFyZW50O3RleHQtdHJhbnNmb3JtOm5vbmU7Zm9udC1zaXplOjQ4cHg7Zm9udC13ZWlnaHQ6NTAwO31AbWVkaWEgKG1heC13aWR0aDogMTE5OXB4KXsuYWNzcy1mcjE4Y3l7Zm9udC1zaXplOjQ0cHg7fX1AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLWZyMThjeXtmb250LXNpemU6NDBweDt9fS5hY3NzLTE3OGVrb2Z7Zm9udC1zaXplOjQycHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMjt3aGl0ZS1zcGFjZTpub3dyYXA7fUBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpey5hY3NzLTE3OGVrb2Z7Zm9udC1zaXplOjQwcHg7fX1AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTE3OGVrb2Z7Zm9udC1zaXplOjM2cHg7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLTE3OGVrb2Z7Zm9udC1zaXplOjMwcHg7d2hpdGUtc3BhY2U6cHJlLXdyYXA7fX0uYWNzcy0xYzUzZnZ4e2ZvbnQtc2l6ZTozMnB4O2ZvbnQtd2VpZ2h0OjUwMDt9LmFjc3MtZjNlNzc4e2ZvbnQtc2l6ZToxNnB4O2NvbG9yOiM3ZDgyOWQ7fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtZjNlNzc4e2ZvbnQtc2l6ZToxNHB4O319LmFjc3MtMXNnOGFuc3tmb250LXNpemU6NjBweDtmb250LXdlaWdodDo1MDA7fUBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpey5hY3NzLTFzZzhhbnN7Zm9udC1zaXplOjUwcHg7fX1AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTFzZzhhbnN7Zm9udC1zaXplOjQwcHg7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLTFzZzhhbnN7Zm9udC1zaXplOjMwcHg7fX0uYWNzcy0xcmJlMzh5e3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTA7fS5hY3NzLTFpZ3RkZXR7Zm9udC1zaXplOjQycHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1hbGlnbjpjZW50ZXI7fUBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpey5hY3NzLTFpZ3RkZXR7Zm9udC1zaXplOjQwcHg7fX1AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTFpZ3RkZXR7Zm9udC1zaXplOjM2cHg7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLTFpZ3RkZXR7Zm9udC1zaXplOjMwcHg7d2hpdGUtc3BhY2U6cHJlLXdyYXA7fX0uYWNzcy0xcjBlZjh1e2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE3OWRlZywgIzM4NGFhMCAwJSwgIzBmMGI2NSAxMDAlKTtwYWRkaW5nLXRvcDo2MHB4O3BhZGRpbmctYm90dG9tOjEwcHg7cG9zaXRpb246cmVsYXRpdmU7fUBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCl7LmFjc3MtMXIwZWY4dXtwYWRkaW5nLXRvcDo0MHB4O319LmFjc3MtMXhpOW1rZ3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWZsZXgtd3JhcDp3cmFwOy13ZWJraXQtZmxleC13cmFwOndyYXA7LW1zLWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwOy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoyMHB4O31AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpey5hY3NzLTF4aTlta2d7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjMwcHg7fX0uYWNzcy12NjVudmZ7bWFyZ2luLXJpZ2h0OjgwcHg7bWF4LXdpZHRoOjI3OHB4O3dpZHRoOjEwMCU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9QG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KXsuYWNzcy12NjVudmZ7bWFyZ2luLXJpZ2h0OjA7bWF4LXdpZHRoOjEwMCU7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1hbGlnbi1pdGVtczpmbGV4LXN0YXJ0Oy13ZWJraXQtYm94LWFsaWduOmZsZXgtc3RhcnQ7LW1zLWZsZXgtYWxpZ246ZmxleC1zdGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O319LmFjc3MtMWl5emUxc3std2Via2l0LWZsZXg6MTstbXMtZmxleDoxO2ZsZXg6MTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O31AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTFpeXplMXN7LXdlYmtpdC1ib3gtZmxleC13cmFwOndyYXA7LXdlYmtpdC1mbGV4LXdyYXA6d3JhcDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7fX0uYWNzcy03MGgyMjF7bWFyZ2luLXJpZ2h0OjYwcHg7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjE7bWluLXdpZHRoOjE0MHB4O31AbWVkaWEgKG1pbi13aWR0aDogNjQxcHgpIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpey5hY3NzLTcwaDIyMXstd2Via2l0LWZsZXg6MCAwIDQ1JTstbXMtZmxleDowIDAgNDUlO2ZsZXg6MCAwIDQ1JTttYXJnaW4tcmlnaHQ6MDt9fUBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCl7LmFjc3MtNzBoMjIxey13ZWJraXQtZmxleDoxIDEgMTAwJTstbXMtZmxleDoxIDEgMTAwJTtmbGV4OjEgMSAxMDAlO21hcmdpbi1yaWdodDowO319LmFjc3MtNzBoMjIxOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjBweDt9LmFjc3MtYjV4Y3Yye2ZvbnQtc2l6ZToxNnB4O2NvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTttYXJnaW4tYm90dG9tOjMycHg7fS5hY3NzLTF0dGZrMG97Zm9udC1zaXplOjE0cHg7Y29sb3I6I2ZmZjttYXJnaW4tYm90dG9tOjE2cHg7ZGlzcGxheTpibG9jazt9LmFjc3MtMXR0Zmswbzpob3Zlcntjb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7fS5hY3NzLWh0ZW1lOHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi10b3A6NjBweDstd2Via2l0LWJveC1mbGV4LXdyYXA6d3JhcDstd2Via2l0LWZsZXgtd3JhcDp3cmFwOy1tcy1mbGV4LXdyYXA6d3JhcDtmbGV4LXdyYXA6d3JhcDtnYXA6MTVweDt9QG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KXsuYWNzcy1odGVtZTh7bWFyZ2luLXRvcDo0MHB4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1zdGFydDstd2Via2l0LWJveC1hbGlnbjpmbGV4LXN0YXJ0Oy1tcy1mbGV4LWFsaWduOmZsZXgtc3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDt9fS5hY3NzLWlpOXV4eHt3aWR0aDoyNHB4O2hlaWdodDoyNHB4O3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDoyMHB4O30uYWNzcy1paTl1eHg6bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MjBweDt9LmFjc3MtMWs2NmJiYnt3aWR0aDoyNHB4O2hlaWdodDoyNHB4O3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtYm94O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5Oi1tcy1pbmxpbmUtZmxleGJveDtkaXNwbGF5OmlubGluZS1mbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDI1NSwyNTUsIDAuMSk7Ym9yZGVyLXJhZGl1czo1MCU7bWFyZ2luLXJpZ2h0OjIwcHg7fS5hY3NzLTFrNjZiYmI6bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MjBweDt9LmFjc3MtZWl5MzZne3dpZHRoOjEycHg7aGVpZ2h0OjEycHg7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7fS5hY3NzLWM1bTcwbnttYXJnaW4tdG9wOjIwMHB4O2NvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTt9QG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KXsuYWNzcy1jNW03MG57bWFyZ2luLXRvcDo2MHB4O319LmFjc3MtMWU0a2sxY3twb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MTAwcHg7bGVmdDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNDglKTstbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC00OCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNDglKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNDglKTt9LmFjc3MtMWNkejJ1d3twb3NpdGlvbjpyZWxhdGl2ZTthc3BlY3QtcmF0aW86NTM0LzE0ODt3aWR0aDo2MDBweDt9QG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KXsuYWNzcy0xY2R6MnV3e3dpZHRoOjcwJTt9fS5hY3NzLWEwdTBzOHtjb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7bWFyZ2luLWJvdHRvbToxNXB4O2ZvbnQtc2l6ZToxMnB4O30uYWNzcy1rOWZwZmV7Zm9udC1zaXplOjE2cHg7Y29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO21hcmdpbi1ib3R0b206MzJweDttYXJnaW4tYm90dG9tOjRweDt9LmFjc3MtMWV6Y2M0NnttYXJnaW4tcmlnaHQ6ODBweDttYXgtd2lkdGg6Mjc4cHg7d2lkdGg6MTAwJTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O21hcmdpbi10b3A6MTJweDt9QG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KXsuYWNzcy0xZXpjYzQ2e21hcmdpbi1yaWdodDowO21heC13aWR0aDoxMDAlOy13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1zdGFydDstd2Via2l0LWJveC1hbGlnbjpmbGV4LXN0YXJ0Oy1tcy1mbGV4LWFsaWduOmZsZXgtc3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtMWV6Y2M0NnttYXgtd2lkdGg6MTYwcHg7fX0uYWNzcy0xYzV2bjVze21hcmdpbi10b3A6MTJweDtmb250LXNpemU6MTZweDtjb2xvcjojN2Q4MjlkO31AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTFjNXZuNXN7Zm9udC1zaXplOjE0cHg7fX0uYWNzcy0xa2F2dDJze3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjojZmZmZmZmO3BhZGRpbmc6MTIwcHggMDt3aWR0aDoxMDAlO31AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTFrYXZ0MnN7cGFkZGluZzo4MHB4IDA7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLTFrYXZ0MnN7cGFkZGluZzo2MHB4IDA7fX0uYWNzcy0xN2tqZXc3e2ZvbnQtc2l6ZToxNnB4O2NvbG9yOiM3ZDgyOWQ7bWFyZ2luLXRvcDo4cHg7fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtMTdramV3N3tmb250LXNpemU6MTRweDt9fS5hY3NzLTE1YWoycmp7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhO3BhZGRpbmc6MTIwcHggMDt3aWR0aDoxMDAlO31AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTE1YWoycmp7cGFkZGluZzo4MHB4IDA7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLTE1YWoycmp7cGFkZGluZzo2MHB4IDA7fX0uYWNzcy0xeTVqM2xke2FzcGVjdC1yYXRpbzo2MTAvMzY0Oy13ZWJraXQtZmxleDowIDAgNTAlOy1tcy1mbGV4OjAgMCA1MCU7ZmxleDowIDAgNTAlO3Bvc2l0aW9uOnJlbGF0aXZlO31AbWVkaWEgKG1heC13aWR0aDogMTE5OXB4KXsuYWNzcy0xeTVqM2xke2Rpc3BsYXk6bm9uZTt9fS5hY3NzLTFxOXF0eXd7bWFyZ2luLXJpZ2h0OjY0cHg7fS5hY3NzLTNtcTNxOHt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tcmlnaHQ6NDBweDt9LmFjc3MtYzl5cW02e2NvbG9yOiNiZmM3ZWI7Zm9udC1zaXplOjE2cHg7bWFyZ2luLXRvcDo4cHg7fS5hY3NzLTFrd3hyeGZ7cGFkZGluZzo0cHg7YmFja2dyb3VuZC1jb2xvcjojMzg0YWEwO2JvcmRlci1yYWRpdXM6NnB4O2NvbG9yOiNmZmY7ZGlzcGxheTppbmxpbmUtYmxvY2s7fS5hY3NzLTEzeXJoMTJ7bWFyZ2luLXRvcDoxNDhweDt9QG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCl7LmFjc3MtMTN5cmgxMnttYXJnaW4tdG9wOjEwOHB4O319QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy0xM3lyaDEye21hcmdpbi10b3A6NzhweDt9fS5hY3NzLTEya2N3NHN7d2lkdGg6Y2FsYyg1MCUgLSAxMHB4KTtiYWNrZ3JvdW5kOiNmZmZmZmY7Ym9yZGVyLXJhZGl1czoyMHB4O2JvcmRlcjoxcHggc29saWQgI2RmZTFlYjtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzoyMHB4O21hcmdpbi1ib3R0b206MjBweDtwb3NpdGlvbjpyZWxhdGl2ZTt9LmFjc3MtMTJrY3c0czpudGgtY2hpbGQoMm4pe21hcmdpbi1sZWZ0OjIwcHg7fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtMTJrY3c0c3t3aWR0aDoxMDAlO21hcmdpbi1sZWZ0OjAhaW1wb3J0YW50O319LmFjc3MtMXB0eWJxZHthc3BlY3QtcmF0aW86NTUwLzIwMDtiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyLXJhZGl1czoyMHB4O292ZXJmbG93OmhpZGRlbjt9LmFjc3Mtamdvb2E2e2FzcGVjdC1yYXRpbzozNDAvMjAwO2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItcmFkaXVzOjIwcHg7b3ZlcmZsb3c6aGlkZGVuO30uYWNzcy0xdHQzMmh0e3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6Mjtmb250LXNpemU6NDhweDtsaW5lLWhlaWdodDoxO2ZvbnQtd2VpZ2h0OjcwMDtyaWdodDoxMHB4O3RvcDo1cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgMTgwZGVnLAogICAgICAgICM1NTM4YTAgMCUsCiAgICAgICAgcmdiYSg4NSwgNTYsIDE2MCwgMCkgMTAwJQogICAgICApOy13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnRleHQ7YmFja2dyb3VuZC1jbGlwOnRleHQ7Y29sb3I6dHJhbnNwYXJlbnQ7dGV4dC10cmFuc2Zvcm06bm9uZTt9QG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCl7LmFjc3MtMXR0MzJodHtmb250LXNpemU6NDJweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtMXR0MzJodHtmb250LXNpemU6MzhweDt9fS5hY3NzLWZocXY2anttYXJnaW4tcmlnaHQ6MnB4O30uYWNzcy1nM292cWh7dGV4dC1hbGlnbjpjZW50ZXI7Ym9yZGVyLXJpZ2h0OjNweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7cGFkZGluZzowIDgwcHg7Zm9udC1mYW1pbHk6U2lsa2FsO31AbWVkaWEgKG1heC13aWR0aDogMTE5OXB4KXsuYWNzcy1nM292cWh7cGFkZGluZzowIDYwcHg7fX1AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLWczb3ZxaHtwYWRkaW5nOjAgNDBweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtZzNvdnFoe3BhZGRpbmc6MCAxMHB4O319LmFjc3MtZzNvdnFoOmxhc3QtY2hpbGR7Ym9yZGVyLXJpZ2h0OjBweDt9LmFjc3MtMWFhcms1MXtwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6NTZweDtkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWJveDtkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWZsZXg7ZGlzcGxheTotbXMtaW5saW5lLWZsZXhib3g7ZGlzcGxheTppbmxpbmUtZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXI6MXB4IHNvbGlkICNlMGUyZWE7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1yYWRpdXM6NDBweDt9LmFjc3MtMWV5NW00dXttYXJnaW4tbGVmdDo2cHg7Zm9udC1zaXplOjE2cHg7fS5hY3NzLWdxNTJ2aHstd2Via2l0LWZsZXg6MTstbXMtZmxleDoxO2ZsZXg6MTttYXJnaW4tcmlnaHQ6MjBweDt9QG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KXsuYWNzcy1ncTUydmh7LXdlYmtpdC1mbGV4OjAgMCAxMDAlOy1tcy1mbGV4OjAgMCAxMDAlO2ZsZXg6MCAwIDEwMCU7bWFyZ2luLXRvcDoyMHB4O319QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy1ncTUydmh7bWFyZ2luLXRvcDoyMHB4O319LmFjc3MtZ3E1MnZoOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjA7fS5hY3NzLW5jd3h4Znthc3BlY3QtcmF0aW86Mzg2LzM0MDtwb3NpdGlvbjpyZWxhdGl2ZTt9LmFjc3MtazYzNmp4e21hcmdpbi10b3A6MzBweDttYXJnaW4tbGVmdDoyMHB4O30uYWNzcy0xeWM2a2hne2NvbG9yOiNlNDgyNDY7cGFkZGluZzo0cHggOHB4O2ZvbnQtc2l6ZToxNHB4O2JhY2tncm91bmQ6I2ZmZjhmNDtib3JkZXItcmFkaXVzOjMwcHg7bWFyZ2luLXJpZ2h0OjhweDt9LmFjc3MtMXljNmtoZzpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowO30uYWNzcy0xa3JtNnV7d2lkdGg6MTZweDtoZWlnaHQ6MTRweDttYXJnaW4tbGVmdDo4cHg7fS5hY3NzLTFpMTVuYmp7YmFja2dyb3VuZDojZmZmO2NvbG9yOiMzODRhYTA7Ym9yZGVyOjJweCBzb2xpZCAjMzg0YWEwO31AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLTFkNTFrcTF7ZGlzcGxheTpub25lIWltcG9ydGFudDt9fS5hY3NzLTF0bXZlcHF7cG9zaXRpb246cmVsYXRpdmU7YXNwZWN0LXJhdGlvOjEzMi80Mjt3aWR0aDoxMzJweDttYXJnaW46MCBhdXRvO21hcmdpbi10b3A6MjBweDt9QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy0xdG12ZXBxe3dpZHRoOjExMnB4O319QG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KXsuYWNzcy0xdG12ZXBxe3dpZHRoOjgwcHg7fX0uYWNzcy1hNmNuYWx7LXdlYmtpdC1mbGV4OjAgMCAzNi42JTstbXMtZmxleDowIDAgMzYuNiU7ZmxleDowIDAgMzYuNiU7bWluLXdpZHRoOjIwMHB4O21hcmdpbi1yaWdodDo4MHB4O31AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLWE2Y25hbHttYXJnaW4tcmlnaHQ6NjBweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtYTZjbmFse3dpZHRoOjMwcHg7LXdlYmtpdC1mbGV4OjAgMCAxMDAlOy1tcy1mbGV4OjAgMCAxMDAlO2ZsZXg6MCAwIDEwMCU7fX0uYWNzcy1taWo2NGF7cGFkZGluZzoyMHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXItcmFkaXVzOjIwcHg7fS5hY3NzLXU5dWlqZntwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LWZsZXg6MTstbXMtZmxleDoxO2ZsZXg6MTthc3BlY3QtcmF0aW86NjgwLzU0NTt9LmFjc3MteDhreHo0ey13ZWJraXQtZmxleDoxOy1tcy1mbGV4OjE7ZmxleDoxO21hcmdpbi1yaWdodDoyMHB4O30uYWNzcy1uYTV4a2d7d2lkdGg6MjBweDt3aWR0aDoyMHB4O21hcmdpbi1yaWdodDo4cHg7fS5hY3NzLTFqaHc1YWF7cG9zaXRpb246cmVsYXRpdmU7YXNwZWN0LXJhdGlvOjMwMC8yODQ7bWF4LXdpZHRoOjMwMHB4O3dpZHRoOjEwMCU7fS5hY3NzLTFoZjMyZW57Ym94LXNpemluZzpib3JkZXItYm94Oy13ZWJraXQtZmxleDoxOy1tcy1mbGV4OjE7ZmxleDoxO21hcmdpbi1yaWdodDoyMHB4O3BhZGRpbmc6MjBweDtiYWNrZ3JvdW5kOiNmZmZmZmY7Ym9yZGVyLXJhZGl1czoyMHB4O3Bvc2l0aW9uOnJlbGF0aXZlO30uYWNzcy0xaGYzMmVuOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjA7fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtMWhmMzJlbjpudGgtY2hpbGQoMSl7bWFyZ2luLWJvdHRvbToyMHB4O30uYWNzcy0xaGYzMmVuOm50aC1jaGlsZCgyKXttYXJnaW4tcmlnaHQ6MDttYXJnaW4tYm90dG9tOjIwcHg7fX0uYWNzcy0xeWcwcG0xe2ZvbnQtc2l6ZTo0MHB4O2NvbG9yOiMzODRhYTA7Zm9udC13ZWlnaHQ6NTAwO31AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLTF5ZzBwbTF7Zm9udC1zaXplOjMwcHg7fX0uYWNzcy0xZHdiY3Rke3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6Mjt9LmFjc3MtMjUza2g2e3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMHB4O3JpZ2h0OjEwcHg7fS5hY3NzLXcxcHhiOHtwb3NpdGlvbjpyZWxhdGl2ZTthc3BlY3QtcmF0aW86MTIwLzEyMDt3aWR0aDoxMjBweDt9LmFjc3Mtb2pnbHhqe3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6OTk5O2ZvbnQtc2l6ZTowO2xpbmUtaGVpZ2h0OjE7fS5hY3NzLTE2YThjdjB7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6NDBweDtvZmZzZXQtcGF0aDpwYXRoKAogICAgICAgICJNMC4xMTU2MTUsMCBDNTQuMTkyNjcxNyw2LjI5NDM0IDc5LjU3ODQ2NjcsMzUuODAzNjQgNzYuMjczLDg4LjUyNzkgTDc1LjI3NSw4OC40NjU0IEM3OC41NDA4NjY3LDM2LjM3MTkzMzMgNTMuNDQ5Miw3LjIxNDU2NDY3IDAsMC45OTMyOTQgTDAuMTE1NjE1LDAgWiIKICAgICAgKTt9LmFjc3MtNHZvbHZ6e3dpZHRoOjc2cHg7aGVpZ2h0Ojg4cHg7cG9zaXRpb246YWJzb2x1dGU7fS5hY3NzLTMyMHY2c3tvYmplY3QtZml0OmNvdmVyOy13ZWJraXQtY2xpcC1wYXRoOmluc2V0KDEwMCUgMCAwIDApO2NsaXAtcGF0aDppbnNldCgxMDAlIDAgMCAwKTstd2Via2l0LXRyYW5zaXRpb246YWxsIDJzIGVhc2UtaW4tb3V0O3RyYW5zaXRpb246YWxsIDJzIGVhc2UtaW4tb3V0O30uYWNzcy0xaDc1bGVte2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjY4cHg7b3ZlcmZsb3c6aGlkZGVuO30uYWNzcy1hdGdnZTN7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLWxlZnQ6OHB4O30uYWNzcy14Zmd3Zzd7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7YmFja2dyb3VuZC1pbWFnZTp1cmwoImh0dHBzOi8vb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbS9hL2FfNjQyZjA4LzIwMjUwNDE5MTA0NTAzMDAxY2ZjMjNjYy53ZWJwIik7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtjb2xvcjojZmZmZmZmO3Bvc2l0aW9uOnJlbGF0aXZlO30uYWNzcy0xdmpnaHple2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpmbGV4LXN0YXJ0Oy13ZWJraXQtYm94LWFsaWduOmZsZXgtc3RhcnQ7LW1zLWZsZXgtYWxpZ246ZmxleC1zdGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O21hcmdpbi10b3A6MzZweDt9QG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCl7LmFjc3MtMXZqZ2h6ZXttYXJnaW4tdG9wOjMwcHg7fX1AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTF2amdoemV7bWFyZ2luLXRvcDoyMHB4O319LmFjc3MtN3hpMmhie3dpZHRoOjIyOHB4O2hlaWdodDo0MHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjEwcHggOHB4O2JhY2tncm91bmQ6I2ZmZmZmZjtib3JkZXItcmFkaXVzOjhweCA4cHggOHB4IDhweDtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyOjFweCBzb2xpZDttYXJnaW4tdG9wOjQ4cHg7Y29sb3I6IzIxMkI1NTt3aGl0ZS1zcGFjZTpub3dyYXA7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6MTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO30uYWNzcy03eGkyaGI6aG92ZXJ7b3BhY2l0eTowLjk7fS5hY3NzLW51MWgwY3t3aWR0aDoxMTJweDthc3BlY3QtcmF0aW86MTEyLzM2O21hcmdpbi1yaWdodDo0MHB4O3Bvc2l0aW9uOnJlbGF0aXZlO31AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLW51MWgwY3ttYXJnaW4tcmlnaHQ6MjBweDt9fS5hY3NzLW51MWgwYzpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowcHg7fS5hY3NzLTFpMm9raXt3aWR0aDo2MHB4O2FzcGVjdC1yYXRpbzo2MC8zNjttYXJnaW4tcmlnaHQ6NDBweDtwb3NpdGlvbjpyZWxhdGl2ZTt9QG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KXsuYWNzcy0xaTJva2l7bWFyZ2luLXJpZ2h0OjIwcHg7fX0uYWNzcy0xaTJva2k6bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MHB4O30uYWNzcy0xZHpkZDg4e2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjojMjEyQjU1O3RleHQtYWxpZ246Y2VudGVyO31AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTFkemRkODh7Zm9udC1zaXplOjIwcHg7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLTFkemRkODh7Zm9udC1zaXplOjE4cHg7fX0uYWNzcy02ZXJob2N7bWFyZ2luLXRvcDo4MHB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtZmxleC13cmFwOndyYXA7LXdlYmtpdC1mbGV4LXdyYXA6d3JhcDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7fUBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpey5hY3NzLTZlcmhvY3ttYXJnaW4tdG9wOjcwcHg7fX1AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLTZlcmhvY3ttYXJnaW4tdG9wOjYwcHg7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLTZlcmhvY3ttYXJnaW4tdG9wOjMwcHg7fX0uYWNzcy0xdWY2Y2k5e2ZvbnQtc2l6ZToyMHB4O21hcmdpbi10b3A6MjBweDt9QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy0xdWY2Y2k5e2ZvbnQtc2l6ZToxNHB4O319QG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KXsuYWNzcy0xdWY2Y2k5e2ZvbnQtc2l6ZToxNHB4O319QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy0xdWY2Y2k5e21hcmdpbi10b3A6MTVweDt9fS5hY3NzLWtsenBwN3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWZsZXgtd3JhcDp3cmFwOy13ZWJraXQtZmxleC13cmFwOndyYXA7LW1zLWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwO30uYWNzcy0xamJ4M2lte3dpZHRoOmNhbGMoNTAlIC0gMTBweCk7YmFja2dyb3VuZDojZmZmZmZmO2JvcmRlci1yYWRpdXM6MjBweDtib3JkZXI6MXB4IHNvbGlkICNkZmUxZWI7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6MjBweDttYXJnaW4tYm90dG9tOjIwcHg7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjE7bWFyZ2luLWxlZnQ6MjBweDt9LmFjc3MtMWpieDNpbTpudGgtY2hpbGQoMm4pe21hcmdpbi1sZWZ0OjIwcHg7fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtMWpieDNpbXt3aWR0aDoxMDAlO21hcmdpbi1sZWZ0OjAhaW1wb3J0YW50O319QG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KXsuYWNzcy0xamJ4M2lte3dpZHRoOjEwMCUhaW1wb3J0YW50Oy13ZWJraXQtZmxleDowIDAgMTAwJSFpbXBvcnRhbnQ7LW1zLWZsZXg6MCAwIDEwMCUhaW1wb3J0YW50O2ZsZXg6MCAwIDEwMCUhaW1wb3J0YW50O21hcmdpbi1sZWZ0OjAhaW1wb3J0YW50O319LmFjc3MtMWpieDNpbTpmaXJzdC1jaGlsZHttYXJnaW4tbGVmdDowcHg7fS5hY3NzLTFnbW4wcHR7Zm9udC1zaXplOjIwcHg7bWFyZ2luLXRvcDoyMHB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtMWdtbjBwdHtmb250LXNpemU6MTRweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtMWdtbjBwdHtmb250LXNpemU6MTRweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtMWdtbjBwdHttYXJnaW4tdG9wOjE1cHg7fX0uYWNzcy1uY3NuanN7cGFkZGluZzozcHggMnB4O2NvbG9yOiM1NTM4YTA7YmFja2dyb3VuZDojZjlmN2ZmO2JvcmRlci1yYWRpdXM6MTVweDtmb250LXNpemU6MTBweDttYXJnaW4tbGVmdDo4cHg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt9LmFjc3MtMXh1OGRhMnttYXJnaW4tdG9wOjgwcHg7dGV4dC1hbGlnbjpjZW50ZXI7fUBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpey5hY3NzLTF4dThkYTJ7bWFyZ2luLXRvcDo3MHB4O319QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy0xeHU4ZGEye21hcmdpbi10b3A6NjBweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtMXh1OGRhMnttYXJnaW4tdG9wOjMwcHg7fX0uYWNzcy0zOGg3bHttYXgtd2lkdGg6OTYwcHg7bWFyZ2luOjAgYXV0bztiYWNrZ3JvdW5kLWltYWdlOnVybCgiaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MTkxNDU4NDA3YTc1NDQ0NDk2LndlYnAiKTstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjYwcHggMHB4O2JvcmRlci1yYWRpdXM6MjBweDtvdmVyZmxvdzpoaWRkZW47bWFyZ2luLXRvcDo4MHB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y29sb3I6I2ZmZmZmZjt9QG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCl7LmFjc3MtMzhoN2x7bWFyZ2luLXRvcDo3MHB4O319QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy0zOGg3bHttYXJnaW4tdG9wOjYwcHg7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLTM4aDdse21hcmdpbi10b3A6MzBweDt9fS5hY3NzLXF5ZDZkbHtmb250LXNpemU6MjBweDtjb2xvcjojYmZjN2ViO21hcmdpbi10b3A6MTJweDt9QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy1xeWQ2ZGx7Zm9udC1zaXplOjE0cHg7fX1AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpey5hY3NzLXF5ZDZkbHtmb250LXNpemU6MTRweDt9fS5hY3NzLTE3dzRpeWN7Zm9udC1zaXplOjYwcHg7Zm9udC13ZWlnaHQ6NTAwO21pbi13aWR0aDoxODVweDt9QG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCl7LmFjc3MtMTd3NGl5Y3tmb250LXNpemU6NTBweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtMTd3NGl5Y3tmb250LXNpemU6NDBweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtMTd3NGl5Y3tmb250LXNpemU6MzBweDt9fS5hY3NzLXpoNjNiOXtvdmVyZmxvdzpoaWRkZW47bWFyZ2luLXRvcDo2MHB4O31AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLXpoNjNiOXttYXJnaW4tdG9wOjQwcHg7fX0uYWNzcy0yNWR5cDh7bWFyZ2luLXRvcDo4MHB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtZmxleC13cmFwOndyYXA7LXdlYmtpdC1mbGV4LXdyYXA6d3JhcDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7Y29sb3I6I2ZmZmZmZjtwb3NpdGlvbjpyZWxhdGl2ZTt9QG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCl7LmFjc3MtMjVkeXA4e21hcmdpbi10b3A6NzBweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtMjVkeXA4e21hcmdpbi10b3A6NjBweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtMjVkeXA4e21hcmdpbi10b3A6MzBweDt9fS5hY3NzLXI1NWc0dHttYXJnaW4tdG9wOjYwcHg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7LXdlYmtpdC1ib3gtYWxpZ246ZmxleC1zdGFydDstbXMtZmxleC1hbGlnbjpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7LXdlYmtpdC1ib3gtZmxleC13cmFwOndyYXA7LXdlYmtpdC1mbGV4LXdyYXA6d3JhcDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtcjU1ZzR0e21hcmdpbi10b3A6NDBweDt9fS5hY3NzLW5qaWVtentwYWRkaW5nOjIwcHg7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1yYWRpdXM6MjBweDtiYWNrZ3JvdW5kOiNmZmZmZmY7Ym94LXNoYWRvdzowcHggMHB4IDIwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2UtaW4tb3V0O3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZS1pbi1vdXQ7fS5hY3NzLTV4dG80Y3t3aWR0aDozMnB4O2hlaWdodDozMnB4O2JhY2tncm91bmQ6I2U0ZThmOTtib3JkZXItcmFkaXVzOjhweDtmb250LXNpemU6MTRweDtjb2xvcjojMzg0YWEwO2ZvbnQtd2VpZ2h0OjUwMDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO30uYWNzcy1hMDc0ZXN7Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiMyMTJCNTU7bWFyZ2luLXRvcDoxMnB4O31AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLWEwNzRlc3tmb250LXNpemU6MjBweDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtYTA3NGVze2ZvbnQtc2l6ZToxOHB4O319LmFjc3MtYThtajE1e2ZvbnQtc2l6ZToxNnB4O2NvbG9yOiM3ZDgyOWQ7bWFyZ2luLXRvcDoxMnB4O31AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpey5hY3NzLWE4bWoxNXtmb250LXNpemU6MTRweDt9fS5hY3NzLTF4Mzl0eWx7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tdG9wOjYwcHg7fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtMXgzOXR5bHttYXJnaW4tdG9wOjQwcHg7fX0uYWNzcy00cHJhZHl7YmFja2dyb3VuZDojZmZmO2NvbG9yOiMzODRhYTA7Ym9yZGVyOjJweCBzb2xpZCAjMzg0YWEwO21hcmdpbi1yaWdodDoxMTBweCFpbXBvcnRhbnQ7fUBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCl7LmFjc3MtNHByYWR5e21hcmdpbi1yaWdodDo4MHB4IWltcG9ydGFudDt9fUBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCl7LmFjc3MtNHByYWR5e21hcmdpbi1yaWdodDoxMHB4IWltcG9ydGFudDt9fS5hY3NzLTFsYmgyaTd7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7LXdlYmtpdC1ib3gtYWxpZ246ZmxleC1zdGFydDstbXMtZmxleC1hbGlnbjpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7LXdlYmtpdC1ib3gtZmxleC13cmFwOndyYXA7LXdlYmtpdC1mbGV4LXdyYXA6d3JhcDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7fS5hY3NzLTFtdXd4bDl7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjE7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt9LmFjc3MtMWI1aXg3antkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWZsZXgtd3JhcDp3cmFwOy13ZWJraXQtZmxleC13cmFwOndyYXA7LW1zLWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwO2JhY2tncm91bmQ6I2ZhZmFmYTtib3JkZXItcmFkaXVzOjIwcHg7cGFkZGluZzoyMHB4O30uYWNzcy0xYnR6MG14e2ZvbnQtc2l6ZToxNnB4O21hcmdpbi10b3A6MTJweDt9QG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KXsuYWNzcy0xYnR6MG14e2ZvbnQtc2l6ZToxNHB4O319PC9zdHlsZT48L2hlYWQ+PGJvZHk+PGRpdiBpZD0iX19uZXh0Ij48ZGl2PjxkaXYgY2xhc3M9ImFjc3MtMCI+PGhlYWRlciBjbGFzcz0iYWNzcy0xcGZoZ3Z4Ij48ZGl2IGNsYXNzPSJhY3NzLXJ5dTczbSI+PGRpdiBjbGFzcz0iYWNzcy0xbHIxODdqIj48ZGl2IGNsYXNzPSJhY3NzLTEzdXh4d2siPjxkaXYgc3R5bGU9ImFsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXgiPjxkaXYgY2xhc3M9ImFjc3MtaWpmaTR1Ij48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwIDI2LjY2NyIgY2xhc3M9ImFjc3MtMW94azZsciI+PHBhdGggaWQ9Iui3r+W+hF8xODA1OSIgZGF0YS1uYW1lPSLot6/lvoQgMTgwNTkiIGQ9Ik0xMjgsMTcwLjY2N2gzMFYxNzRIMTI4Wm0wLDExLjY2N2gzMHYzLjMzM0gxMjhaTTEyOCwxOTRoMzB2My4zMzNIMTI4WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEyOCAtMTcwLjY2NykiIGZpbGw9IiMwYzZmZmMiLz48L3N2Zz48L2Rpdj48L2Rpdj48ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyIj48ZGl2IGNsYXNzPSJhY3NzLTJhOXhtdSIgYXJpYS1kZXNjcmliZWRieT0iOlJwYWI2OiI+RU48c3ZnIHZpZXdCb3g9IjAgMCA2IDQiIGNsYXNzPSJhY3NzLTVxMjZqeiI+PGcgaWQ9Iumhtemdoi0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48ZyBpZD0i5LiL5ouJIiBmaWxsPSIjMjEyQjU1IiBmaWxsLXJ1bGU9Im5vbnplcm8iPjxwb2x5Z29uIGlkPSLot6/lvoQiIHBvaW50cz0iMyAzLjk5OTI5IDAgMC45OTk4MjMgMS4wMDA0NyAwIDMgMS45OTk2NSA0Ljk5OTUzIDAgNiAwLjk5OTgyMyAzIDQiLz48L2c+PC9nPjwvc3ZnPjwvZGl2PjxhIHJlbD0ibm9mb2xsb3ciIHRhcmdldD0iX2JsYW5rIiBzdHlsZT0ibWFyZ2luLWxlZnQ6MTBweCIgaHJlZj0iaHR0cHM6Ly9hcHAuYnV2ZWkuY29tL3NpZ25pbiI+TG9nIGluPC9hPjxhIHJlbD0ibm9mb2xsb3ciIHRhcmdldD0iX2JsYW5rIiBzdHlsZT0ibWFyZ2luLWxlZnQ6MjBweCIgaHJlZj0iaHR0cHM6Ly9hcHAuYnV2ZWkuY29tL3NpZ251cCI+PHN0eWxlIGRhdGEtZW1vdGlvbj0iY3NzIDF5OHpidzciPi5jc3MtMXk4emJ3Ny5hbnQtYnRue2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjE7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtYm94O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5Oi1tcy1pbmxpbmUtZmxleGJveDtkaXNwbGF5OmlubGluZS1mbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JvcmRlci1yYWRpdXM6NDBweDtib3gtc2hhZG93OjAgMnB4IDAgcmdiYSg1LDE0NSwyNTUsMC4xKTtoZWlnaHQ6NDRweDttaW4taGVpZ2h0OjQ0cHg7cGFkZGluZzoxNHB4IDMwcHg7fTwvc3R5bGU+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJhbnQtYnRuIGNzcy0xZGc1MTczIGFudC1idG4tcHJpbWFyeSBhbnQtYnRuLWNvbG9yLXByaW1hcnkgYW50LWJ0bi12YXJpYW50LXNvbGlkIGNzcy0xeTh6Ync3IGVzaDliajg0Ij48c3Bhbj5TdGFydCBmcmVlPC9zcGFuPjwvYnV0dG9uPjwvYT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2hlYWRlcj48bWFpbj48ZGl2IGNsYXNzPSJhY3NzLXhmZ3dnNyI+PGRpdiBjbGFzcz0iYWNzcy0xcmJlMzh5Ij48ZGl2IGNsYXNzPSJhY3NzLXJ5dTczbSI+PGRpdiBjbGFzcz0iYWNzcy0xbWZzd24wIj48ZGl2IGNsYXNzPSJhY3NzLTFtbmNzN2oiPjxkaXYgY2xhc3M9ImFjc3MtMXE5cXR5dyI+PGgxIGNsYXNzPSJhY3NzLWZyMThjeSI+PGRpdj5TcGVuZCBHbG9iYWxseTwvZGl2PjxkaXY+d2l0aCBWaXJ0dWFsIENhcmRzPC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0xaDc1bGVtIj5mb3I8ZGl2IGNsYXNzPSJhY3NzLWF0Z2dlMyI+PGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXI7dG9wOi0zMHB4O2NvbG9yOiNmZmY7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDUwcHgpIHRyYW5zbGF0ZVooMCkiPkZhY2Vib29rIEFkczwvZGl2PjwvZGl2PjwvZGl2PjwvaDE+PHAgY2xhc3M9InNyLW9ubHkiPkJ1dmVpIGxldHMgeW91IGZ1bmQgdmlydHVhbCBWaXNhIGFuZCBNYXN0ZXJjYXJkIGNhcmRzIGluc3RhbnRseSwgc2V0IHBlci1jYXJkIHNwZW5kaW5nIGxpbWl0cywgYW5kIHBheSBmb3IgRmFjZWJvb2sgQWRzLCBHb29nbGUgQWRzLCBDaGF0R1BULCBBaXJibmIsIGFuZCAxNTArIGNvdW50cnkgbWVyY2hhbnRzIOKAlCB3aXRoIDIwKyBCSU4gb3B0aW9ucyBhbmQgZW50ZXJwcmlzZSB0ZWFtIGNvbnRyb2xzLjwvcD48ZGl2IGNsYXNzPSJhY3NzLTF2amdoemUiPjxkaXYgY2xhc3M9ImFjc3MtM21xM3E4Ij48ZGl2IGNsYXNzPSJhY3NzLTFjNTNmdngiPjE1KzwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtYzl5cW02Ij5CSU5zPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0zbXEzcTgiPjxkaXYgY2xhc3M9ImFjc3MtMWM1M2Z2eCI+MzUrPC9kaXY+PGRpdiBjbGFzcz0iYWNzcy1jOXlxbTYiPkN1cnJlbmNpZXM8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLTNtcTNxOCI+PGRpdiBjbGFzcz0iYWNzcy0xYzUzZnZ4Ij41LDAwMCs8L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLWM5eXFtNiI+U3BlbmRpbmcgU2NlbmFyaW9zPC9kaXY+PC9kaXY+PC9kaXY+PGEgY2xhc3M9ImFjc3MtN3hpMmhiIiB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9hcHAuYnV2ZWkuY29tL3NpZ25pbiI+R2V0IFN0YXJ0ZWQgZm9yIEZyZWU8c3BhbiBjbGFzcz0iYWNzcy0xa3d4cnhmIj48c3ZnIHZpZXdCb3g9IjAgMCAxNiAxNCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE0Ij48ZyBpZD0i6aG16Z2iLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIGlkPSLnvJbnu4QiIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNMTMuNjIzOTg0Niw2LjMwMDA4ODQxIEwwLjY5NTU5ODExMiw2LjMwMDA4ODQxIEMwLjMxMTQyOTg4Myw2LjMwMDA4ODQxIDAsNi42MTM0NDk1IDAsNyBDMCw3LjM4NjU1MDUgMC4zMTE0Mjk4ODMsNy42OTk5MTE1OSAwLjY5NTU5ODExMiw3LjY5OTkxMTU5IEwxMy42MjM5ODQ2LDcuNjk5OTExNTkgTDguNTUwMjkxOTksMTIuODAzNjY2OSBDOC4yNzgzMDA4OCwxMy4wNzczNDQ2IDguMjc4MzAwODgsMTMuNTIxMDYzOSA4LjU1MDI5MTk5LDEzLjc5NDc0MTcgQzguODIyMjgzMSwxNC4wNjg0MTk0IDkuMjYzMjY3ODEsMTQuMDY4NDE5NCA5LjUzNTI1ODkyLDEzLjc5NDc0MTcgTDE1Ljc5NTY0MTksNy40OTU1Mzc0IEMxNS45MjY0NzI0LDcuMzY0MjI4MDIgMTYsNy4xODU5MzQ2OCAxNiw3IEMxNiw2LjgxNDA2NTMyIDE1LjkyNjQ3MjQsNi42MzU3NzE5OCAxNS43OTU2NDE5LDYuNTA0NDYyNiBMOS41MzUyNTg5MiwwLjIwNTI1ODMxMyBDOS4yNjMyNjc4MSwtMC4wNjg0MTk0Mzc3IDguODIyMjgzMSwtMC4wNjg0MTk0Mzc3IDguNTUwMjkxOTksMC4yMDUyNTgzMTMgQzguMjc4MzAwODgsMC40Nzg5MzYwNjQgOC4yNzgzMDA4OCwwLjkyMjY1NTM2OSA4LjU1MDI5MTk5LDEuMTk2MzMzMTIgTDEzLjYyMzk4NDYsNi4zMDAwODg0MSBaIiBpZD0i6Lev5b6EIi8+PC9nPjwvZz48L3N2Zz48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtMXk1ajNsZCI+PGltZyBhbHQ9ImJhbm5lciIgc2l6ZXM9IjEwMHZ3IiBzcmNzZXQ9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTgxOTQ2MjQ5ZjNkNmEwNjJmLndlYnAmYW1wO3c9NjQwJmFtcDtxPTc1IDY0MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTgxOTQ2MjQ5ZjNkNmEwNjJmLndlYnAmYW1wO3c9NzUwJmFtcDtxPTc1IDc1MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTgxOTQ2MjQ5ZjNkNmEwNjJmLndlYnAmYW1wO3c9ODI4JmFtcDtxPTc1IDgyOHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTgxOTQ2MjQ5ZjNkNmEwNjJmLndlYnAmYW1wO3c9MTA4MCZhbXA7cT03NSAxMDgwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxODE5NDYyNDlmM2Q2YTA2MmYud2VicCZhbXA7dz0xMjAwJmFtcDtxPTc1IDEyMDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE4MTk0NjI0OWYzZDZhMDYyZi53ZWJwJmFtcDt3PTE5MjAmYW1wO3E9NzUgMTkyMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTgxOTQ2MjQ5ZjNkNmEwNjJmLndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSAyMDQ4dyIgc3JjPSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE4MTk0NjI0OWYzZDZhMDYyZi53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUiIGRlY29kaW5nPSJhc3luYyIgZGF0YS1uaW1nPSJmaWxsIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtsZWZ0OjA7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtjb2xvcjp0cmFuc3BhcmVudCI+PC9kaXY+PC9kaXY+PGRpdj48ZGl2IGNsYXNzPSJhY3NzLTEzeXJoMTIiPjxkaXYgY2xhc3M9ImFjc3MtMWhjNmI4Ij5UcnVzdGVkIGJ5IGxlYWRlcnM8L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLTFobGg2ZSI+PGRpdiBjbGFzcz0iYWNzcy1udTFoMGMiPjxpbWcgYWx0PSJWSVNBIiBzaXplcz0iMTAwdnciIHNyY3NldD0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMTAwOTY4ODM2N2ZlZWYud2VicCZhbXA7dz02NDAmYW1wO3E9NzUgNjQwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMTAwOTY4ODM2N2ZlZWYud2VicCZhbXA7dz03NTAmYW1wO3E9NzUgNzUwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMTAwOTY4ODM2N2ZlZWYud2VicCZhbXA7dz04MjgmYW1wO3E9NzUgODI4dywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMTAwOTY4ODM2N2ZlZWYud2VicCZhbXA7dz0xMDgwJmFtcDtxPTc1IDEwODB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTExMDA5Njg4MzY3ZmVlZi53ZWJwJmFtcDt3PTEyMDAmYW1wO3E9NzUgMTIwMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMTEwMDk2ODgzNjdmZWVmLndlYnAmYW1wO3c9MTkyMCZhbXA7cT03NSAxOTIwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMTAwOTY4ODM2N2ZlZWYud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IDIwNDh3IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMTEwMDk2ODgzNjdmZWVmLndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9ImZpbGwiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2NvbG9yOnRyYW5zcGFyZW50Ij48L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLTFpMm9raSI+PGltZyBhbHQ9Ik1hc3RlcmNhcmQiIHNpemVzPSIxMDB2dyIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTEwOTUxMTBmNWM5ZTZmMC53ZWJwJmFtcDt3PTY0MCZhbXA7cT03NSA2NDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTEwOTUxMTBmNWM5ZTZmMC53ZWJwJmFtcDt3PTc1MCZhbXA7cT03NSA3NTB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTEwOTUxMTBmNWM5ZTZmMC53ZWJwJmFtcDt3PTgyOCZhbXA7cT03NSA4Mjh3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTEwOTUxMTBmNWM5ZTZmMC53ZWJwJmFtcDt3PTEwODAmYW1wO3E9NzUgMTA4MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMTA5NTExMGY1YzllNmYwLndlYnAmYW1wO3c9MTIwMCZhbXA7cT03NSAxMjAwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMDk1MTEwZjVjOWU2ZjAud2VicCZhbXA7dz0xOTIwJmFtcDtxPTc1IDE5MjB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTEwOTUxMTBmNWM5ZTZmMC53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUgMjA0OHciIHNyYz0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMDk1MTEwZjVjOWU2ZjAud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IiBkZWNvZGluZz0iYXN5bmMiIGRhdGEtbmltZz0iZmlsbCIgbG9hZGluZz0ibGF6eSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bGVmdDowO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7Y29sb3I6dHJhbnNwYXJlbnQiPjwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtbnUxaDBjIj48aW1nIGFsdD0iVklTQSIgc2l6ZXM9IjEwMHZ3IiBzcmNzZXQ9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMTEwMDk2ODgzNjdmZWVmLndlYnAmYW1wO3c9NjQwJmFtcDtxPTc1IDY0MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMTEwMDk2ODgzNjdmZWVmLndlYnAmYW1wO3c9NzUwJmFtcDtxPTc1IDc1MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMTEwMDk2ODgzNjdmZWVmLndlYnAmYW1wO3c9ODI4JmFtcDtxPTc1IDgyOHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMTEwMDk2ODgzNjdmZWVmLndlYnAmYW1wO3c9MTA4MCZhbXA7cT03NSAxMDgwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMTAwOTY4ODM2N2ZlZWYud2VicCZhbXA7dz0xMjAwJmFtcDtxPTc1IDEyMDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTExMDA5Njg4MzY3ZmVlZi53ZWJwJmFtcDt3PTE5MjAmYW1wO3E9NzUgMTkyMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMTEwMDk2ODgzNjdmZWVmLndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSAyMDQ4dyIgc3JjPSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTExMDA5Njg4MzY3ZmVlZi53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUiIGRlY29kaW5nPSJhc3luYyIgZGF0YS1uaW1nPSJmaWxsIiBsb2FkaW5nPSJsYXp5IiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtsZWZ0OjA7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtjb2xvcjp0cmFuc3BhcmVudCI+PC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0xaTJva2kiPjxpbWcgYWx0PSJNYXN0ZXJjYXJkIiBzaXplcz0iMTAwdnciIHNyY3NldD0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMDk1MTEwZjVjOWU2ZjAud2VicCZhbXA7dz02NDAmYW1wO3E9NzUgNjQwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMDk1MTEwZjVjOWU2ZjAud2VicCZhbXA7dz03NTAmYW1wO3E9NzUgNzUwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMDk1MTEwZjVjOWU2ZjAud2VicCZhbXA7dz04MjgmYW1wO3E9NzUgODI4dywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMDk1MTEwZjVjOWU2ZjAud2VicCZhbXA7dz0xMDgwJmFtcDtxPTc1IDEwODB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTEwOTUxMTBmNWM5ZTZmMC53ZWJwJmFtcDt3PTEyMDAmYW1wO3E9NzUgMTIwMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMTA5NTExMGY1YzllNmYwLndlYnAmYW1wO3c9MTkyMCZhbXA7cT03NSAxOTIwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMDk1MTEwZjVjOWU2ZjAud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IDIwNDh3IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMTA5NTExMGY1YzllNmYwLndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9ImZpbGwiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2NvbG9yOnRyYW5zcGFyZW50Ij48L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLW51MWgwYyI+PGltZyBhbHQ9IlZJU0EiIHNpemVzPSIxMDB2dyIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTExMDA5Njg4MzY3ZmVlZi53ZWJwJmFtcDt3PTY0MCZhbXA7cT03NSA2NDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTExMDA5Njg4MzY3ZmVlZi53ZWJwJmFtcDt3PTc1MCZhbXA7cT03NSA3NTB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTExMDA5Njg4MzY3ZmVlZi53ZWJwJmFtcDt3PTgyOCZhbXA7cT03NSA4Mjh3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTExMDA5Njg4MzY3ZmVlZi53ZWJwJmFtcDt3PTEwODAmYW1wO3E9NzUgMTA4MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMTEwMDk2ODgzNjdmZWVmLndlYnAmYW1wO3c9MTIwMCZhbXA7cT03NSAxMjAwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMTAwOTY4ODM2N2ZlZWYud2VicCZhbXA7dz0xOTIwJmFtcDtxPTc1IDE5MjB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTExMDA5Njg4MzY3ZmVlZi53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUgMjA0OHciIHNyYz0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMTAwOTY4ODM2N2ZlZWYud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IiBkZWNvZGluZz0iYXN5bmMiIGRhdGEtbmltZz0iZmlsbCIgbG9hZGluZz0ibGF6eSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bGVmdDowO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7Y29sb3I6dHJhbnNwYXJlbnQiPjwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtMWkyb2tpIj48aW1nIGFsdD0iTWFzdGVyY2FyZCIgc2l6ZXM9IjEwMHZ3IiBzcmNzZXQ9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMTA5NTExMGY1YzllNmYwLndlYnAmYW1wO3c9NjQwJmFtcDtxPTc1IDY0MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMTA5NTExMGY1YzllNmYwLndlYnAmYW1wO3c9NzUwJmFtcDtxPTc1IDc1MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMTA5NTExMGY1YzllNmYwLndlYnAmYW1wO3c9ODI4JmFtcDtxPTc1IDgyOHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMTA5NTExMGY1YzllNmYwLndlYnAmYW1wO3c9MTA4MCZhbXA7cT03NSAxMDgwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMDk1MTEwZjVjOWU2ZjAud2VicCZhbXA7dz0xMjAwJmFtcDtxPTc1IDEyMDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTEwOTUxMTBmNWM5ZTZmMC53ZWJwJmFtcDt3PTE5MjAmYW1wO3E9NzUgMTkyMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMTA5NTExMGY1YzllNmYwLndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSAyMDQ4dyIgc3JjPSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTEwOTUxMTBmNWM5ZTZmMC53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUiIGRlY29kaW5nPSJhc3luYyIgZGF0YS1uaW1nPSJmaWxsIiBsb2FkaW5nPSJsYXp5IiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtsZWZ0OjA7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtjb2xvcjp0cmFuc3BhcmVudCI+PC9kaXY+PGRpdiBjbGFzcz0iYWNzcy1udTFoMGMiPjxpbWcgYWx0PSJWSVNBIiBzaXplcz0iMTAwdnciIHNyY3NldD0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMTAwOTY4ODM2N2ZlZWYud2VicCZhbXA7dz02NDAmYW1wO3E9NzUgNjQwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMTAwOTY4ODM2N2ZlZWYud2VicCZhbXA7dz03NTAmYW1wO3E9NzUgNzUwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMTAwOTY4ODM2N2ZlZWYud2VicCZhbXA7dz04MjgmYW1wO3E9NzUgODI4dywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMTAwOTY4ODM2N2ZlZWYud2VicCZhbXA7dz0xMDgwJmFtcDtxPTc1IDEwODB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTExMDA5Njg4MzY3ZmVlZi53ZWJwJmFtcDt3PTEyMDAmYW1wO3E9NzUgMTIwMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMTEwMDk2ODgzNjdmZWVmLndlYnAmYW1wO3c9MTkyMCZhbXA7cT03NSAxOTIwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMTAwOTY4ODM2N2ZlZWYud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IDIwNDh3IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMTEwMDk2ODgzNjdmZWVmLndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9ImZpbGwiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2NvbG9yOnRyYW5zcGFyZW50Ij48L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLTFpMm9raSI+PGltZyBhbHQ9Ik1hc3RlcmNhcmQiIHNpemVzPSIxMDB2dyIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTEwOTUxMTBmNWM5ZTZmMC53ZWJwJmFtcDt3PTY0MCZhbXA7cT03NSA2NDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTEwOTUxMTBmNWM5ZTZmMC53ZWJwJmFtcDt3PTc1MCZhbXA7cT03NSA3NTB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTEwOTUxMTBmNWM5ZTZmMC53ZWJwJmFtcDt3PTgyOCZhbXA7cT03NSA4Mjh3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTEwOTUxMTBmNWM5ZTZmMC53ZWJwJmFtcDt3PTEwODAmYW1wO3E9NzUgMTA4MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMTA5NTExMGY1YzllNmYwLndlYnAmYW1wO3c9MTIwMCZhbXA7cT03NSAxMjAwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMDk1MTEwZjVjOWU2ZjAud2VicCZhbXA7dz0xOTIwJmFtcDtxPTc1IDE5MjB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTEwOTUxMTBmNWM5ZTZmMC53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUgMjA0OHciIHNyYz0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTExMDk1MTEwZjVjOWU2ZjAud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IiBkZWNvZGluZz0iYXN5bmMiIGRhdGEtbmltZz0iZmlsbCIgbG9hZGluZz0ibGF6eSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bGVmdDowO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7Y29sb3I6dHJhbnNwYXJlbnQiPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImFjc3Mtdzhpd2drIj48ZGl2IGNsYXNzPSJhY3NzLXJ5dTczbSI+PGRpdiBzdHlsZT0ib3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDUwcHgpIHNjYWxlKDAuOSkgdHJhbnNsYXRlWigwKSI+PGRpdiBjbGFzcz0iYWNzcy1xOTExYW4iPjxoMiBjbGFzcz0iYWNzcy0xaWd0ZGV0Ij5Jc3N1ZSBVbmxpbWl0ZWQgVmlydHVhbCBDYXJkcyBJbnN0YW50bHk8L2gyPjxkaXYgY2xhc3M9ImFjc3MtMWR6ZGQ4OCI+SW5zdGFudCBpc3N1YW5jZSDCtyBTZWN1cmUgcGF5bWVudHMgwrcgRnVsbCBjb250cm9sPC9kaXY+PGRpdiBjbGFzcz0iYWNzcy02ZXJob2MiPjxkaXYgY2xhc3M9ImFjc3MtMTJrY3c0cyIgc3R5bGU9Im9wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg1MHB4KSB0cmFuc2xhdGVaKDApIj48ZGl2PjxkaXYgY2xhc3M9ImFjc3MtMXR0MzJodCI+LzAxPC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0xcHR5YnFkIj48aW1nIGFsdD0icGF5IiBzaXplcz0iMTAwdnciIHNyY3NldD0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyMDQwMTRlOWE5NTczYjAud2VicCZhbXA7dz02NDAmYW1wO3E9NzUgNjQwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyMDQwMTRlOWE5NTczYjAud2VicCZhbXA7dz03NTAmYW1wO3E9NzUgNzUwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyMDQwMTRlOWE5NTczYjAud2VicCZhbXA7dz04MjgmYW1wO3E9NzUgODI4dywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyMDQwMTRlOWE5NTczYjAud2VicCZhbXA7dz0xMDgwJmFtcDtxPTc1IDEwODB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTIwNDAxNGU5YTk1NzNiMC53ZWJwJmFtcDt3PTEyMDAmYW1wO3E9NzUgMTIwMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMjA0MDE0ZTlhOTU3M2IwLndlYnAmYW1wO3c9MTkyMCZhbXA7cT03NSAxOTIwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyMDQwMTRlOWE5NTczYjAud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IDIwNDh3IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMjA0MDE0ZTlhOTU3M2IwLndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9ImZpbGwiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2NvbG9yOnRyYW5zcGFyZW50Ij48L2Rpdj48aDMgY2xhc3M9ImFjc3MtMXVmNmNpOSI+R2V0IFlvdXIgVmlydHVhbCBDYXJkIGluIFNlY29uZHM8L2gzPjxkaXYgY2xhc3M9ImFjc3MtMTdramV3NyI+SW5zdGFudCB2aXJ0dWFsIGNhcmQgaXNzdWFuY2Ugd2l0aCBubyBwYXBlcndvcmsgYW5kIG5vIGRlbGF5cy4gU3RhcnQgdXNpbmcgeW91ciBjYXJkIGltbWVkaWF0ZWx5IGZvciBvbmxpbmUgcGF5bWVudHMgYW5kIHN1YnNjcmlwdGlvbnMuPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0xMmtjdzRzIiBzdHlsZT0ib3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDUwcHgpIHRyYW5zbGF0ZVooMCkiPjxkaXY+PGRpdiBjbGFzcz0iYWNzcy0xdHQzMmh0Ij4vMDI8L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLTFwdHlicWQiPjxpbWcgYWx0PSJjYXJkIGZyZWV6ZSIgc2l6ZXM9IjEwMHZ3IiBzcmNzZXQ9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMjIwMTYwYmY4ZTEyMTM2LndlYnAmYW1wO3c9NjQwJmFtcDtxPTc1IDY0MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMjIwMTYwYmY4ZTEyMTM2LndlYnAmYW1wO3c9NzUwJmFtcDtxPTc1IDc1MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMjIwMTYwYmY4ZTEyMTM2LndlYnAmYW1wO3c9ODI4JmFtcDtxPTc1IDgyOHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMjIwMTYwYmY4ZTEyMTM2LndlYnAmYW1wO3c9MTA4MCZhbXA7cT03NSAxMDgwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyMjAxNjBiZjhlMTIxMzYud2VicCZhbXA7dz0xMjAwJmFtcDtxPTc1IDEyMDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTIyMDE2MGJmOGUxMjEzNi53ZWJwJmFtcDt3PTE5MjAmYW1wO3E9NzUgMTkyMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMjIwMTYwYmY4ZTEyMTM2LndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSAyMDQ4dyIgc3JjPSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTIyMDE2MGJmOGUxMjEzNi53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUiIGRlY29kaW5nPSJhc3luYyIgZGF0YS1uaW1nPSJmaWxsIiBsb2FkaW5nPSJsYXp5IiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtsZWZ0OjA7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtjb2xvcjp0cmFuc3BhcmVudCI+PC9kaXY+PGgzIGNsYXNzPSJhY3NzLTF1ZjZjaTkiPlNpbmdsZS1Vc2UgVmlydHVhbCBDYXJkcy4gRnVsbHkgQ3VzdG9taXphYmxlPC9oMz48ZGl2IGNsYXNzPSJhY3NzLTE3a2pldzciPlNldCBzcGVuZGluZyBsaW1pdHMsIGZyZWV6ZSBjYXJkcyBhbnl0aW1lLCBhbmQgcmVkdWNlIGZyYXVkIHJpc2tzIHdpdGggZGlzcG9zYWJsZSB2aXJ0dWFsIGNhcmRzLjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtMTJrY3c0cyIgc3R5bGU9Im9wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg1MHB4KSB0cmFuc2xhdGVaKDApIj48ZGl2PjxkaXYgY2xhc3M9ImFjc3MtMXR0MzJodCI+LzAzPC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0xcHR5YnFkIj48aW1nIGFsdD0iY2FyZCBpbmZvIiBzaXplcz0iMTAwdnciIHNyY3NldD0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyMjE0NDRhZmU1YjIyMjgud2VicCZhbXA7dz02NDAmYW1wO3E9NzUgNjQwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyMjE0NDRhZmU1YjIyMjgud2VicCZhbXA7dz03NTAmYW1wO3E9NzUgNzUwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyMjE0NDRhZmU1YjIyMjgud2VicCZhbXA7dz04MjgmYW1wO3E9NzUgODI4dywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyMjE0NDRhZmU1YjIyMjgud2VicCZhbXA7dz0xMDgwJmFtcDtxPTc1IDEwODB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTIyMTQ0NGFmZTViMjIyOC53ZWJwJmFtcDt3PTEyMDAmYW1wO3E9NzUgMTIwMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMjIxNDQ0YWZlNWIyMjI4LndlYnAmYW1wO3c9MTkyMCZhbXA7cT03NSAxOTIwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyMjE0NDRhZmU1YjIyMjgud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IDIwNDh3IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMjIxNDQ0YWZlNWIyMjI4LndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9ImZpbGwiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2NvbG9yOnRyYW5zcGFyZW50Ij48L2Rpdj48aDMgY2xhc3M9ImFjc3MtMXVmNmNpOSI+UmVhbC1UaW1lIFZpcnR1YWwgQ2FyZCBTcGVuZGluZyBDb250cm9sPC9oMz48ZGl2IGNsYXNzPSJhY3NzLTE3a2pldzciPkN1c3RvbWl6ZSBzcGVuZGluZyBsaW1pdHMsIGZyZWV6ZSBvciBjbG9zZSB2aXJ0dWFsIGNhcmRzIGFueXRpbWUsIGFuZCBtYWludGFpbiBmdWxsIGNvbnRyb2wgb3ZlciB5b3VyIGNhcmQgc2VjdXJpdHkuPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0xMmtjdzRzIiBzdHlsZT0ib3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDUwcHgpIHRyYW5zbGF0ZVooMCkiPjxkaXY+PGRpdiBjbGFzcz0iYWNzcy0xdHQzMmh0Ij4vMDQ8L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLTFwdHlicWQiPjxpbWcgYWx0PSJhcHBseSBwYXkiIHNpemVzPSIxMDB2dyIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTIyMjQwNGIwODY4NGI3NS53ZWJwJmFtcDt3PTY0MCZhbXA7cT03NSA2NDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTIyMjQwNGIwODY4NGI3NS53ZWJwJmFtcDt3PTc1MCZhbXA7cT03NSA3NTB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTIyMjQwNGIwODY4NGI3NS53ZWJwJmFtcDt3PTgyOCZhbXA7cT03NSA4Mjh3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTIyMjQwNGIwODY4NGI3NS53ZWJwJmFtcDt3PTEwODAmYW1wO3E9NzUgMTA4MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMjIyNDA0YjA4Njg0Yjc1LndlYnAmYW1wO3c9MTIwMCZhbXA7cT03NSAxMjAwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyMjI0MDRiMDg2ODRiNzUud2VicCZhbXA7dz0xOTIwJmFtcDtxPTc1IDE5MjB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTIyMjQwNGIwODY4NGI3NS53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUgMjA0OHciIHNyYz0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyMjI0MDRiMDg2ODRiNzUud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IiBkZWNvZGluZz0iYXN5bmMiIGRhdGEtbmltZz0iZmlsbCIgbG9hZGluZz0ibGF6eSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bGVmdDowO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7Y29sb3I6dHJhbnNwYXJlbnQiPjwvZGl2PjxoMyBjbGFzcz0iYWNzcy0xdWY2Y2k5Ij5Vc2UgVmlydHVhbCBDYXJkcyB3aXRoIEFwcGxlIFBheSAmYW1wOyBHb29nbGUgcGF5PC9oMz48ZGl2IGNsYXNzPSJhY3NzLTE3a2pldzciPkFkZCB5b3VyIHZpcnR1YWwgY2FyZCB0byBBcHBsZSBQYXkgb3IgR29vZ2xlIHBheSBhbmQgZW5qb3kgc2VhbWxlc3MgZ2xvYmFsIG9ubGluZSBwYXltZW50cy48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLWtsenBwNyI+PGRpdiBjbGFzcz0iYWNzcy0xamJ4M2ltIj48ZGl2IGNsYXNzPSJhY3NzLTF0dDMyaHQiPi8wNTwvZGl2PjxkaXYgY2xhc3M9ImFjc3Mtamdvb2E2Ij48aW1nIGFsdD0icGF5b3V0IiBzaXplcz0iMTAwdnciIHNyY3NldD0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyNDM1MzVhNDhjZmM3YjIud2VicCZhbXA7dz02NDAmYW1wO3E9NzUgNjQwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyNDM1MzVhNDhjZmM3YjIud2VicCZhbXA7dz03NTAmYW1wO3E9NzUgNzUwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyNDM1MzVhNDhjZmM3YjIud2VicCZhbXA7dz04MjgmYW1wO3E9NzUgODI4dywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyNDM1MzVhNDhjZmM3YjIud2VicCZhbXA7dz0xMDgwJmFtcDtxPTc1IDEwODB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTI0MzUzNWE0OGNmYzdiMi53ZWJwJmFtcDt3PTEyMDAmYW1wO3E9NzUgMTIwMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMjQzNTM1YTQ4Y2ZjN2IyLndlYnAmYW1wO3c9MTkyMCZhbXA7cT03NSAxOTIwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyNDM1MzVhNDhjZmM3YjIud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IDIwNDh3IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMjQzNTM1YTQ4Y2ZjN2IyLndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9ImZpbGwiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2NvbG9yOnRyYW5zcGFyZW50Ij48L2Rpdj48aDMgY2xhc3M9ImFjc3MtMWdtbjBwdCI+R2xvYmFsIFBheW91dHM8ZGl2IGNsYXNzPSJhY3NzLW5jc25qcyI+PHN2ZyB2aWV3Qm94PSIwIDAgMTAgMTAiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgY2xhc3M9ImFjc3MtZmhxdjZqIj48ZGVmcz48cmVjdCBpZD0icGF0aC1mNzVqZC1udXltLTEiIHg9IjAiIHk9IjAiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIvPjwvZGVmcz48ZyBpZD0i6aG16Z2iLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIGlkPSJDb21pbmctU29vbiI+PG1hc2sgaWQ9Im1hc2stZjc1amQtbnV5bS0yIiBmaWxsPSJ3aGl0ZSI+PHVzZSB4bGluazpocmVmPSIjcGF0aC1mNzVqZC1udXltLTEiLz48L21hc2s+PGcgaWQ9IuefqeW9oiIvPjxnIGlkPSLnvJbnu4QiIG1hc2s9InVybCgjbWFzay1mNzVqZC1udXltLTIpIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxLjQ1ODUsIDAuMzMzNSkiPjxjaXJjbGUgaWQ9IuakreWchuW9oiIgc3Ryb2tlPSIjNTUzOEEwIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGN4PSIzLjU0MTY2Njk4IiBjeT0iNS4yOTE2NjY5OCIgcj0iMy41NDE2NjY5OCIvPjxwYXRoIGQ9Ik0yLjI5MTUwMzkxLDAgTDQuNzkxNTAzOTEsMCBDNC44MjQzMzcyNCwwIDQuODU2ODUwNTcsMC4wMDMyMDIzMzMzMyA0Ljg4OTA0MzkxLDAuMDA5NjA3IEM0LjkyMTI0MzkxLDAuMDE2MDEyMzMzMyA0Ljk1MjUxMDU3LDAuMDI1NDk2NjY2NyA0Ljk4Mjg0MzkxLDAuMDM4MDYgQzUuMDEzMTc3MjQsMC4wNTA2MjQgNS4wNDE5OTA1NywwLjA2NjAyNTY2NjcgNS4wNjkyODM5MSwwLjA4NDI2NSBDNS4wOTY1ODM5MSwwLjEwMjUwNSA1LjEyMTg0MDU3LDAuMTIzMjMyMzMzIDUuMTQ1MDUzOTEsMC4xNDY0NDcgQzUuMTY4MjY3MjQsMC4xNjk2NjE2NjcgNS4xODg5OTM5MSwwLjE5NDkxNzY2NyA1LjIwNzIzMzkxLDAuMjIyMjE1IEM1LjIyNTQ3MzkxLDAuMjQ5NTEyMzMzIDUuMjQwODc3MjQsMC4yNzgzMjY2NjcgNS4yNTM0NDM5MSwwLjMwODY1OCBDNS4yNjYwMDM5MSwwLjMzODk4OTMzMyA1LjI3NTQ4NzI0LDAuMzcwMjU0OTY3IDUuMjgxODkzOTEsMC40MDI0NTQ5IEM1LjI4ODMwMDU3LDAuNDM0NjU0NSA1LjI5MTUwMzkxLDAuNDY3MTY5NTMzIDUuMjkxNTAzOTEsMC41IEM1LjI5MTUwMzkxLDAuNTMyODMwNDY3IDUuMjg4MzAwNTcsMC41NjUzNDU1IDUuMjgxODkzOTEsMC41OTc1NDUxIEM1LjI3NTQ4NzI0LDAuNjI5NzQ1MDMzIDUuMjY2MDAzOTEsMC42NjEwMTA2NjcgNS4yNTM0NDM5MSwwLjY5MTM0MiBDNS4yNDA4NzcyNCwwLjcyMTY3MzMzMyA1LjIyNTQ3MzkxLDAuNzUwNDg3NjY3IDUuMjA3MjMzOTEsMC43Nzc3ODUgQzUuMTg4OTkzOTEsMC44MDUwODIzMzMgNS4xNjgyNjcyNCwwLjgzMDMzODMzMyA1LjE0NTA1MzkxLDAuODUzNTUzIEM1LjEyMTg0MDU3LDAuODc2NzY3NjY3IDUuMDk2NTgzOTEsMC44OTc0OTUgNS4wNjkyODM5MSwwLjkxNTczNSBDNS4wNDE5OTA1NywwLjkzMzk3NDMzMyA1LjAxMzE3NzI0LDAuOTQ5Mzc2IDQuOTgyODQzOTEsMC45NjE5NCBDNC45NTI1MTA1NywwLjk3NDUwMzMzMyA0LjkyMTI0MzkxLDAuOTgzOTg3NjY3IDQuODg5MDQzOTEsMC45OTAzOTMgQzQuODU2ODUwNTcsMC45OTY3OTc2NjcgNC44MjQzMzcyNCwxIDQuNzkxNTAzOTEsMSBMMi4yOTE1MDM5MSwxIEMyLjI1ODY3MzQ0LDEgMi4yMjYxNTg0MSwwLjk5Njc5NzY2NyAyLjE5Mzk1ODgxLDAuOTkwMzkzIEMyLjE2MTc1ODg3LDAuOTgzOTg3NjY3IDIuMTMwNDkzMjQsMC45NzQ1MDMzMzMgMi4xMDAxNjE5MSwwLjk2MTk0IEMyLjA2OTgzMDU3LDAuOTQ5Mzc2IDIuMDQxMDE2MjQsMC45MzM5NzQzMzMgMi4wMTM3MTg5MSwwLjkxNTczNSBDMS45ODY0MjE1NywwLjg5NzQ5NSAxLjk2MTE2NTU3LDAuODc2NzY3NjY3IDEuOTM3OTUwOTEsMC44NTM1NTMgQzEuOTE0NzM2MjQsMC44MzAzMzgzMzMgMS44OTQwMDg5MSwwLjgwNTA4MjMzMyAxLjg3NTc2ODkxLDAuNzc3Nzg1IEMxLjg1NzUyOTU3LDAuNzUwNDg3NjY3IDEuODQyMTI3OTEsMC43MjE2NzMzMzMgMS44Mjk1NjM5MSwwLjY5MTM0MiBDMS44MTcwMDA1NywwLjY2MTAxMDY2NyAxLjgwNzUxNjI0LDAuNjI5NzQ1MDMzIDEuODAxMTEwOTEsMC41OTc1NDUxIEMxLjc5NDcwNjI0LDAuNTY1MzQ1NSAxLjc5MTUwMzkxLDAuNTMyODMwNDY3IDEuNzkxNTAzOTEsMC41IEMxLjc5MTUwMzkxLDAuNDY3MTY5NTMzIDEuNzk0NzA2MjQsMC40MzQ2NTQ1IDEuODAxMTEwOTEsMC40MDI0NTQ5IEMxLjgwNzUxNjI0LDAuMzcwMjU0OTY3IDEuODE3MDAwNTcsMC4zMzg5ODkzMzMgMS44Mjk1NjM5MSwwLjMwODY1OCBDMS44NDIxMjc5MSwwLjI3ODMyNjY2NyAxLjg1NzUyOTU3LDAuMjQ5NTEyMzMzIDEuODc1NzY4OTEsMC4yMjIyMTUgQzEuODk0MDA4OTEsMC4xOTQ5MTc2NjcgMS45MTQ3MzYyNCwwLjE2OTY2MTY2NyAxLjkzNzk1MDkxLDAuMTQ2NDQ3IEMxLjk2MTE2NTU3LDAuMTIzMjMyMzMzIDEuOTg2NDIxNTcsMC4xMDI1MDUgMi4wMTM3MTg5MSwwLjA4NDI2NSBDMi4wNDEwMTYyNCwwLjA2NjAyNTY2NjcgMi4wNjk4MzA1NywwLjA1MDYyNCAyLjEwMDE2MTkxLDAuMDM4MDYgQzIuMTMwNDkzMjQsMC4wMjU0OTY2NjY3IDIuMTYxNzU4ODcsMC4wMTYwMTIzMzMzIDIuMTkzOTU4ODEsMC4wMDk2MDcgQzIuMjI2MTU4NDEsMC4wMDMyMDIzMzMzMyAyLjI1ODY3MzQ0LDAgMi4yOTE1MDM5MSwwIFoiIGlkPSLot6/lvoQiIHN0cm9rZT0ibm9uZSIgZmlsbD0iIzU1MzhBMCIgZmlsbC1ydWxlPSJldmVub2RkIi8+PHBhdGggZD0iTTMuMDQxNTAzOTEsMy42MjUgQzMuMDQxNTAzOTEsMy41OTIxNjk1MyAzLjA0NDcwNjI0LDMuNTU5NjU0NSAzLjA1MTExMDkxLDMuNTI3NDU0OSBDMy4wNTc1MTYyNCwzLjQ5NTI1NDk3IDMuMDY3MDAwNTcsMy40NjM5ODkzMyAzLjA3OTU2MzkxLDMuNDMzNjU4IEMzLjA5MjEyNzkxLDMuNDAzMzI2NjcgMy4xMDc1Mjk1NywzLjM3NDUxMjMzIDMuMTI1NzY4OTEsMy4zNDcyMTUgQzMuMTQ0MDA4OTEsMy4zMTk5MTc2NyAzLjE2NDczNjI0LDMuMjk0NjYxNjcgMy4xODc5NTA5MSwzLjI3MTQ0NyBDMy4yMTExNjU1NywzLjI0ODIzMjMzIDMuMjM2NDIxNTcsMy4yMjc1MDUgMy4yNjM3MTg5MSwzLjIwOTI2NSBDMy4yOTEwMTYyNCwzLjE5MTAyNTY3IDMuMzE5ODMwNTcsMy4xNzU2MjQgMy4zNTAxNjE5MSwzLjE2MzA2IEMzLjM4MDQ5MzI0LDMuMTUwNDk2NjcgMy40MTE3NTg4NywzLjE0MTAxMjMzIDMuNDQzOTU4ODEsMy4xMzQ2MDcgQzMuNDc2MTU4NDEsMy4xMjgyMDIzMyAzLjUwODY3MzQ0LDMuMTI1IDMuNTQxNTAzOTEsMy4xMjUgQzMuNTc0MzM0MzcsMy4xMjUgMy42MDY4NDk0MSwzLjEyODIwMjMzIDMuNjM5MDQ5MDEsMy4xMzQ2MDcgQzMuNjcxMjQ4OTQsMy4xNDEwMTIzMyAzLjcwMjUxNDU3LDMuMTUwNDk2NjcgMy43MzI4NDU5MSwzLjE2MzA2IEMzLjc2MzE3NzI0LDMuMTc1NjI0IDMuNzkxOTkxNTcsMy4xOTEwMjU2NyAzLjgxOTI4ODkxLDMuMjA5MjY1IEMzLjg0NjU4NjI0LDMuMjI3NTA1IDMuODcxODQyMjQsMy4yNDgyMzIzMyAzLjg5NTA1NjkxLDMuMjcxNDQ3IEMzLjkxODI3MTU3LDMuMjk0NjYxNjcgMy45Mzg5OTg5MSwzLjMxOTkxNzY3IDMuOTU3MjM4OTEsMy4zNDcyMTUgQzMuOTc1NDc4MjQsMy4zNzQ1MTIzMyAzLjk5MDg3OTkxLDMuNDAzMzI2NjcgNC4wMDM0NDM5MSwzLjQzMzY1OCBDNC4wMTYwMDcyNCwzLjQ2Mzk4OTMzIDQuMDI1NDkxNTcsMy40OTUyNTQ5NyA0LjAzMTg5NjkxLDMuNTI3NDU0OSBDNC4wMzgzMDE1NywzLjU1OTY1NDUgNC4wNDE1MDM5MSwzLjU5MjE2OTUzIDQuMDQxNTAzOTEsMy42MjUgTDQuMDQxNTAzOTEsNS4yOTE2NyBDNC4wNDE1MDM5MSw1LjMyNDQ5NjY3IDQuMDM4MzAxNTcsNS4zNTcwMSA0LjAzMTg5NjkxLDUuMzg5MjEgQzQuMDI1NDkxNTcsNS40MjE0MSA0LjAxNjAwNzI0LDUuNDUyNjc2NjcgNC4wMDM0NDM5MSw1LjQ4MzAxIEMzLjk5MDg3OTkxLDUuNTEzMzQzMzMgMy45NzU0NzgyNCw1LjU0MjE1NjY3IDMuOTU3MjM4OTEsNS41Njk0NSBDMy45Mzg5OTg5MSw1LjU5Njc1IDMuOTE4MjcxNTcsNS42MjIwMDY2NyAzLjg5NTA1NjkxLDUuNjQ1MjIgQzMuODcxODQyMjQsNS42Njg0MzMzMyAzLjg0NjU4NjI0LDUuNjg5MTYgMy44MTkyODg5MSw1LjcwNzQgQzMuNzkxOTkxNTcsNS43MjU2NCAzLjc2MzE3NzI0LDUuNzQxMDQzMzMgMy43MzI4NDU5MSw1Ljc1MzYxIEMzLjcwMjUxNDU3LDUuNzY2MTcgMy42NzEyNDg5NCw1Ljc3NTY1MzMzIDMuNjM5MDQ5MDEsNS43ODIwNiBDMy42MDY4NDk0MSw1Ljc4ODQ2NjY3IDMuNTc0MzM0MzcsNS43OTE2NyAzLjU0MTUwMzkxLDUuNzkxNjcgQzMuNTA4NjczNDQsNS43OTE2NyAzLjQ3NjE1ODQxLDUuNzg4NDY2NjcgMy40NDM5NTg4MSw1Ljc4MjA2IEMzLjQxMTc1ODg3LDUuNzc1NjUzMzMgMy4zODA0OTMyNCw1Ljc2NjE3IDMuMzUwMTYxOTEsNS43NTM2MSBDMy4zMTk4MzA1Nyw1Ljc0MTA0MzMzIDMuMjkxMDE2MjQsNS43MjU2NCAzLjI2MzcxODkxLDUuNzA3NCBDMy4yMzY0MjE1Nyw1LjY4OTE2IDMuMjExMTY1NTcsNS42Njg0MzMzMyAzLjE4Nzk1MDkxLDUuNjQ1MjIgQzMuMTY0NzM2MjQsNS42MjIwMDY2NyAzLjE0NDAwODkxLDUuNTk2NzUgMy4xMjU3Njg5MSw1LjU2OTQ1IEMzLjEwNzUyOTU3LDUuNTQyMTU2NjcgMy4wOTIxMjc5MSw1LjUxMzM0MzMzIDMuMDc5NTYzOTEsNS40ODMwMSBDMy4wNjcwMDA1Nyw1LjQ1MjY3NjY3IDMuMDU3NTE2MjQsNS40MjE0MSAzLjA1MTExMDkxLDUuMzg5MjEgQzMuMDQ0NzA2MjQsNS4zNTcwMSAzLjA0MTUwMzkxLDUuMzI0NDk2NjcgMy4wNDE1MDM5MSw1LjI5MTY3IEwzLjA0MTUwMzkxLDMuNjI1IFoiIGlkPSLot6/lvoQiIHN0cm9rZT0ibm9uZSIgZmlsbD0iIzU1MzhBMCIgZmlsbC1ydWxlPSJldmVub2RkIi8+PHBhdGggZD0iTTMuNTQxNTAzOTEsNC43OTE1MDM5MSBMNS4yMDgxNzM5MSw0Ljc5MTUwMzkxIEM1LjI0MTAwMDU3LDQuNzkxNTAzOTEgNS4yNzM1MTM5MSw0Ljc5NDcwNjI0IDUuMzA1NzEzOTEsNC44MDExMTA5MSBDNS4zMzc5MTM5MSw0LjgwNzUxNjI0IDUuMzY5MTgwNTcsNC44MTcwMDA1NyA1LjM5OTUxMzkxLDQuODI5NTYzOTEgQzUuNDI5ODQ3MjQsNC44NDIxMjc5MSA1LjQ1ODY2MDU3LDQuODU3NTI5NTcgNS40ODU5NTM5MSw0Ljg3NTc2ODkxIEM1LjUxMzI1MzkxLDQuODk0MDA4OTEgNS41Mzg1MTA1Nyw0LjkxNDczNjI0IDUuNTYxNzIzOTEsNC45Mzc5NTA5MSBDNS41ODQ5MzcyNCw0Ljk2MTE2NTU3IDUuNjA1NjYzOTEsNC45ODY0MjE1NyA1LjYyMzkwMzkxLDUuMDEzNzE4OTEgQzUuNjQyMTQzOTEsNS4wNDEwMTYyNCA1LjY1NzU0NzI0LDUuMDY5ODMwNTcgNS42NzAxMTM5MSw1LjEwMDE2MTkxIEM1LjY4MjY3MzkxLDUuMTMwNDkzMjQgNS42OTIxNTcyNCw1LjE2MTc1ODg3IDUuNjk4NTYzOTEsNS4xOTM5NTg4MSBDNS43MDQ5NzA1Nyw1LjIyNjE1ODQxIDUuNzA4MTczOTEsNS4yNTg2NzM0NCA1LjcwODE3MzkxLDUuMjkxNTAzOTEgQzUuNzA4MTczOTEsNS4zMjQzMzQzNyA1LjcwNDk3MDU3LDUuMzU2ODQ5NDEgNS42OTg1NjM5MSw1LjM4OTA0OTAxIEM1LjY5MjE1NzI0LDUuNDIxMjQ4OTQgNS42ODI2NzM5MSw1LjQ1MjUxNDU3IDUuNjcwMTEzOTEsNS40ODI4NDU5MSBDNS42NTc1NDcyNCw1LjUxMzE3NzI0IDUuNjQyMTQzOTEsNS41NDE5OTE1NyA1LjYyMzkwMzkxLDUuNTY5Mjg4OTEgQzUuNjA1NjYzOTEsNS41OTY1ODYyNCA1LjU4NDkzNzI0LDUuNjIxODQyMjQgNS41NjE3MjM5MSw1LjY0NTA1NjkxIEM1LjUzODUxMDU3LDUuNjY4MjcxNTcgNS41MTMyNTM5MSw1LjY4ODk5ODkxIDUuNDg1OTUzOTEsNS43MDcyMzg5MSBDNS40NTg2NjA1Nyw1LjcyNTQ3ODI0IDUuNDI5ODQ3MjQsNS43NDA4Nzk5MSA1LjM5OTUxMzkxLDUuNzUzNDQzOTEgQzUuMzY5MTgwNTcsNS43NjYwMDcyNCA1LjMzNzkxMzkxLDUuNzc1NDkxNTcgNS4zMDU3MTM5MSw1Ljc4MTg5NjkxIEM1LjI3MzUxMzkxLDUuNzg4MzAxNTcgNS4yNDEwMDA1Nyw1Ljc5MTUwMzkxIDUuMjA4MTczOTEsNS43OTE1MDM5MSBMMy41NDE1MDM5MSw1Ljc5MTUwMzkxIEMzLjUwODY3MzQ0LDUuNzkxNTAzOTEgMy40NzYxNTg0MSw1Ljc4ODMwMTU3IDMuNDQzOTU4ODEsNS43ODE4OTY5MSBDMy40MTE3NTg4Nyw1Ljc3NTQ5MTU3IDMuMzgwNDkzMjQsNS43NjYwMDcyNCAzLjM1MDE2MTkxLDUuNzUzNDQzOTEgQzMuMzE5ODMwNTcsNS43NDA4Nzk5MSAzLjI5MTAxNjI0LDUuNzI1NDc4MjQgMy4yNjM3MTg5MSw1LjcwNzIzODkxIEMzLjIzNjQyMTU3LDUuNjg4OTk4OTEgMy4yMTExNjU1Nyw1LjY2ODI3MTU3IDMuMTg3OTUwOTEsNS42NDUwNTY5MSBDMy4xNjQ3MzYyNCw1LjYyMTg0MjI0IDMuMTQ0MDA4OTEsNS41OTY1ODYyNCAzLjEyNTc2ODkxLDUuNTY5Mjg4OTEgQzMuMTA3NTI5NTcsNS41NDE5OTE1NyAzLjA5MjEyNzkxLDUuNTEzMTc3MjQgMy4wNzk1NjM5MSw1LjQ4Mjg0NTkxIEMzLjA2NzAwMDU3LDUuNDUyNTE0NTcgMy4wNTc1MTYyNCw1LjQyMTI0ODk0IDMuMDUxMTEwOTEsNS4zODkwNDkwMSBDMy4wNDQ3MDYyNCw1LjM1Njg0OTQxIDMuMDQxNTAzOTEsNS4zMjQzMzQzNyAzLjA0MTUwMzkxLDUuMjkxNTAzOTEgQzMuMDQxNTAzOTEsNS4yNTg2NzM0NCAzLjA0NDcwNjI0LDUuMjI2MTU4NDEgMy4wNTExMTA5MSw1LjE5Mzk1ODgxIEMzLjA1NzUxNjI0LDUuMTYxNzU4ODcgMy4wNjcwMDA1Nyw1LjEzMDQ5MzI0IDMuMDc5NTYzOTEsNS4xMDAxNjE5MSBDMy4wOTIxMjc5MSw1LjA2OTgzMDU3IDMuMTA3NTI5NTcsNS4wNDEwMTYyNCAzLjEyNTc2ODkxLDUuMDEzNzE4OTEgQzMuMTQ0MDA4OTEsNC45ODY0MjE1NyAzLjE2NDczNjI0LDQuOTYxMTY1NTcgMy4xODc5NTA5MSw0LjkzNzk1MDkxIEMzLjIxMTE2NTU3LDQuOTE0NzM2MjQgMy4yMzY0MjE1Nyw0Ljg5NDAwODkxIDMuMjYzNzE4OTEsNC44NzU3Njg5MSBDMy4yOTEwMTYyNCw0Ljg1NzUyOTU3IDMuMzE5ODMwNTcsNC44NDIxMjc5MSAzLjM1MDE2MTkxLDQuODI5NTYzOTEgQzMuMzgwNDkzMjQsNC44MTcwMDA1NyAzLjQxMTc1ODg3LDQuODA3NTE2MjQgMy40NDM5NTg4MSw0LjgwMTExMDkxIEMzLjQ3NjE1ODQxLDQuNzk0NzA2MjQgMy41MDg2NzM0NCw0Ljc5MTUwMzkxIDMuNTQxNTAzOTEsNC43OTE1MDM5MSBaIiBpZD0i6Lev5b6EIiBzdHJva2U9Im5vbmUiIGZpbGw9IiM1NTM4QTAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGQ9Ik00LjA0MTUwMzkxLDAuNSBMNC4wNDE1MDM5MSwxLjMzMzMzMyBDNC4wNDE1MDM5MSwxLjM2NjE2MzY3IDQuMDM4MzAxNTcsMS4zOTg2Nzg2NyA0LjAzMTg5NjkxLDEuNDMwODc4IEM0LjAyNTQ5MTU3LDEuNDYzMDc4IDQuMDE2MDA3MjQsMS40OTQzNDUzMyA0LjAwMzQ0MzkxLDEuNTI0NjggQzMuOTkwODc5OTEsMS41NTUwMDY2NyAzLjk3NTQ3ODI0LDEuNTgzODIgMy45NTcyMzg5MSwxLjYxMTEyIEMzLjkzODk5ODkxLDEuNjM4NDEzMzMgMy45MTgyNzE1NywxLjY2MzY3IDMuODk1MDU2OTEsMS42ODY4OSBDMy44NzE4NDIyNCwxLjcxMDEwMzMzIDMuODQ2NTg2MjQsMS43MzA4MyAzLjgxOTI4ODkxLDEuNzQ5MDcgQzMuNzkxOTkxNTcsMS43NjczMSAzLjc2MzE3NzI0LDEuNzgyNzEgMy43MzI4NDU5MSwxLjc5NTI3IEMzLjcwMjUxNDU3LDEuODA3ODM2NjcgMy42NzEyNDg5NCwxLjgxNzMyMzMzIDMuNjM5MDQ5MDEsMS44MjM3MyBDMy42MDY4NDk0MSwxLjgzMDEzIDMuNTc0MzM0MzcsMS44MzMzMyAzLjU0MTUwMzkxLDEuODMzMzMgQzMuNTA4NjczNDQsMS44MzMzMyAzLjQ3NjE1ODQxLDEuODMwMTMgMy40NDM5NTg4MSwxLjgyMzczIEMzLjQxMTc1ODg3LDEuODE3MzIzMzMgMy4zODA0OTMyNCwxLjgwNzgzNjY3IDMuMzUwMTYxOTEsMS43OTUyNyBDMy4zMTk4MzA1NywxLjc4MjcxIDMuMjkxMDE2MjQsMS43NjczMSAzLjI2MzcxODkxLDEuNzQ5MDcgQzMuMjM2NDIxNTcsMS43MzA4MyAzLjIxMTE2NTU3LDEuNzEwMTAzMzMgMy4xODc5NTA5MSwxLjY4Njg5IEMzLjE2NDczNjI0LDEuNjYzNjcgMy4xNDQwMDg5MSwxLjYzODQxMzMzIDMuMTI1NzY4OTEsMS42MTExMiBDMy4xMDc1Mjk1NywxLjU4MzgyIDMuMDkyMTI3OTEsMS41NTUwMDY2NyAzLjA3OTU2MzkxLDEuNTI0NjggQzMuMDY3MDAwNTcsMS40OTQzNDUzMyAzLjA1NzUxNjI0LDEuNDYzMDc4IDMuMDUxMTEwOTEsMS40MzA4NzggQzMuMDQ0NzA2MjQsMS4zOTg2Nzg2NyAzLjA0MTUwMzkxLDEuMzY2MTYzNjcgMy4wNDE1MDM5MSwxLjMzMzMzMyBMMy4wNDE1MDM5MSwwLjUgQzMuMDQxNTAzOTEsMC40NjcxNjk1MzMgMy4wNDQ3MDYyNCwwLjQzNDY1NDUgMy4wNTExMTA5MSwwLjQwMjQ1NDkgQzMuMDU3NTE2MjQsMC4zNzAyNTQ5NjcgMy4wNjcwMDA1NywwLjMzODk4OTMzMyAzLjA3OTU2MzkxLDAuMzA4NjU4IEMzLjA5MjEyNzkxLDAuMjc4MzI2NjY3IDMuMTA3NTI5NTcsMC4yNDk1MTIzMzMgMy4xMjU3Njg5MSwwLjIyMjIxNSBDMy4xNDQwMDg5MSwwLjE5NDkxNzY2NyAzLjE2NDczNjI0LDAuMTY5NjYxNjY3IDMuMTg3OTUwOTEsMC4xNDY0NDcgQzMuMjExMTY1NTcsMC4xMjMyMzIzMzMgMy4yMzY0MjE1NywwLjEwMjUwNSAzLjI2MzcxODkxLDAuMDg0MjY1IEMzLjI5MTAxNjI0LDAuMDY2MDI1NjY2NyAzLjMxOTgzMDU3LDAuMDUwNjI0IDMuMzUwMTYxOTEsMC4wMzgwNiBDMy4zODA0OTMyNCwwLjAyNTQ5NjY2NjcgMy40MTE3NTg4NywwLjAxNjAxMjMzMzMgMy40NDM5NTg4MSwwLjAwOTYwNyBDMy40NzYxNTg0MSwwLjAwMzIwMjMzMzMzIDMuNTA4NjczNDQsMCAzLjU0MTUwMzkxLDAgQzMuNTc0MzM0MzcsMCAzLjYwNjg0OTQxLDAuMDAzMjAyMzMzMzMgMy42MzkwNDkwMSwwLjAwOTYwNyBDMy42NzEyNDg5NCwwLjAxNjAxMjMzMzMgMy43MDI1MTQ1NywwLjAyNTQ5NjY2NjcgMy43MzI4NDU5MSwwLjAzODA2IEMzLjc2MzE3NzI0LDAuMDUwNjI0IDMuNzkxOTkxNTcsMC4wNjYwMjU2NjY3IDMuODE5Mjg4OTEsMC4wODQyNjUgQzMuODQ2NTg2MjQsMC4xMDI1MDUgMy44NzE4NDIyNCwwLjEyMzIzMjMzMyAzLjg5NTA1NjkxLDAuMTQ2NDQ3IEMzLjkxODI3MTU3LDAuMTY5NjYxNjY3IDMuOTM4OTk4OTEsMC4xOTQ5MTc2NjcgMy45NTcyMzg5MSwwLjIyMjIxNSBDMy45NzU0NzgyNCwwLjI0OTUxMjMzMyAzLjk5MDg3OTkxLDAuMjc4MzI2NjY3IDQuMDAzNDQzOTEsMC4zMDg2NTggQzQuMDE2MDA3MjQsMC4zMzg5ODkzMzMgNC4wMjU0OTE1NywwLjM3MDI1NDk2NyA0LjAzMTg5NjkxLDAuNDAyNDU0OSBDNC4wMzgzMDE1NywwLjQzNDY1NDUgNC4wNDE1MDM5MSwwLjQ2NzE2OTUzMyA0LjA0MTUwMzkxLDAuNSBaIiBpZD0i6Lev5b6EIiBzdHJva2U9Im5vbmUiIGZpbGw9IiM1NTM4QTAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L2c+PC9nPjwvZz48L3N2Zz5Db21pbmcgU29vbjwvZGl2PjwvaDM+PGRpdiBjbGFzcz0iYWNzcy0xN2tqZXc3Ij5TZW5kIGVtcGxveWVlIHNhbGFyaWVzIGFuZCBjb21taXNzaW9uIHBheW91dHMgdG8gd2FsbGV0cyB3b3JsZHdpZGUgd2l0aCBmYXN0IGFuZCBzZWN1cmUgZ2xvYmFsIHBheW91dCBzb2x1dGlvbnMuPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0xamJ4M2ltIj48ZGl2IGNsYXNzPSJhY3NzLTF0dDMyaHQiPi8wNjwvZGl2PjxkaXYgY2xhc3M9ImFjc3Mtamdvb2E2Ij48aW1nIGFsdD0icGF5cGFsIiBzaXplcz0iMTAwdnciIHNyY3NldD0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyNTEyM2M2YjJlYWYwOWUud2VicCZhbXA7dz02NDAmYW1wO3E9NzUgNjQwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyNTEyM2M2YjJlYWYwOWUud2VicCZhbXA7dz03NTAmYW1wO3E9NzUgNzUwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyNTEyM2M2YjJlYWYwOWUud2VicCZhbXA7dz04MjgmYW1wO3E9NzUgODI4dywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyNTEyM2M2YjJlYWYwOWUud2VicCZhbXA7dz0xMDgwJmFtcDtxPTc1IDEwODB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTI1MTIzYzZiMmVhZjA5ZS53ZWJwJmFtcDt3PTEyMDAmYW1wO3E9NzUgMTIwMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMjUxMjNjNmIyZWFmMDllLndlYnAmYW1wO3c9MTkyMCZhbXA7cT03NSAxOTIwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyNTEyM2M2YjJlYWYwOWUud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IDIwNDh3IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMjUxMjNjNmIyZWFmMDllLndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9ImZpbGwiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2NvbG9yOnRyYW5zcGFyZW50Ij48L2Rpdj48aDMgY2xhc3M9ImFjc3MtMWdtbjBwdCI+VmlydHVhbCBDYXJkIFBheW1lbnRzIHdpdGggUGF5UGFsPC9oMz48ZGl2IGNsYXNzPSJhY3NzLTE3a2pldzciPlVzZSB5b3VyIHZpcnR1YWwgY2FyZHMgd2l0aCBQYXlQYWwgdG8gY29tcGxldGUgc2VjdXJlIGNyb3NzLXBsYXRmb3JtIG9ubGluZSBwYXltZW50cyB3b3JsZHdpZGUuPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0xamJ4M2ltIj48ZGl2IGNsYXNzPSJhY3NzLTF0dDMyaHQiPi8wNzwvZGl2PjxkaXYgY2xhc3M9ImFjc3Mtamdvb2E2Ij48aW1nIGFsdD0iUGh5c2ljYWwgQ2FyZCIgc2l6ZXM9IjEwMHZ3IiBzcmNzZXQ9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMjUyMjgyMzNmZmE2NjNiLndlYnAmYW1wO3c9NjQwJmFtcDtxPTc1IDY0MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMjUyMjgyMzNmZmE2NjNiLndlYnAmYW1wO3c9NzUwJmFtcDtxPTc1IDc1MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMjUyMjgyMzNmZmE2NjNiLndlYnAmYW1wO3c9ODI4JmFtcDtxPTc1IDgyOHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMjUyMjgyMzNmZmE2NjNiLndlYnAmYW1wO3c9MTA4MCZhbXA7cT03NSAxMDgwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTEyNTIyODIzM2ZmYTY2M2Iud2VicCZhbXA7dz0xMjAwJmFtcDtxPTc1IDEyMDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTI1MjI4MjMzZmZhNjYzYi53ZWJwJmFtcDt3PTE5MjAmYW1wO3E9NzUgMTkyMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxMjUyMjgyMzNmZmE2NjNiLndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSAyMDQ4dyIgc3JjPSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTI1MjI4MjMzZmZhNjYzYi53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUiIGRlY29kaW5nPSJhc3luYyIgZGF0YS1uaW1nPSJmaWxsIiBsb2FkaW5nPSJsYXp5IiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtsZWZ0OjA7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtjb2xvcjp0cmFuc3BhcmVudCI+PC9kaXY+PGgzIGNsYXNzPSJhY3NzLTFnbW4wcHQiPlBoeXNpY2FsIENhcmRzPGRpdiBjbGFzcz0iYWNzcy1uY3NuanMiPjxzdmcgdmlld0JveD0iMCAwIDEwIDEwIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIGNsYXNzPSJhY3NzLWZocXY2aiI+PGRlZnM+PHJlY3QgaWQ9InBhdGgtZjc1amQtbnV5bS0xIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiLz48L2RlZnM+PGcgaWQ9Iumhtemdoi0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48ZyBpZD0iQ29taW5nLVNvb24iPjxtYXNrIGlkPSJtYXNrLWY3NWpkLW51eW0tMiIgZmlsbD0id2hpdGUiPjx1c2UgeGxpbms6aHJlZj0iI3BhdGgtZjc1amQtbnV5bS0xIi8+PC9tYXNrPjxnIGlkPSLnn6nlvaIiLz48ZyBpZD0i57yW57uEIiBtYXNrPSJ1cmwoI21hc2stZjc1amQtbnV5bS0yKSI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS40NTg1LCAwLjMzMzUpIj48Y2lyY2xlIGlkPSLmpK3lnIblvaIiIHN0cm9rZT0iIzU1MzhBMCIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjeD0iMy41NDE2NjY5OCIgY3k9IjUuMjkxNjY2OTgiIHI9IjMuNTQxNjY2OTgiLz48cGF0aCBkPSJNMi4yOTE1MDM5MSwwIEw0Ljc5MTUwMzkxLDAgQzQuODI0MzM3MjQsMCA0Ljg1Njg1MDU3LDAuMDAzMjAyMzMzMzMgNC44ODkwNDM5MSwwLjAwOTYwNyBDNC45MjEyNDM5MSwwLjAxNjAxMjMzMzMgNC45NTI1MTA1NywwLjAyNTQ5NjY2NjcgNC45ODI4NDM5MSwwLjAzODA2IEM1LjAxMzE3NzI0LDAuMDUwNjI0IDUuMDQxOTkwNTcsMC4wNjYwMjU2NjY3IDUuMDY5MjgzOTEsMC4wODQyNjUgQzUuMDk2NTgzOTEsMC4xMDI1MDUgNS4xMjE4NDA1NywwLjEyMzIzMjMzMyA1LjE0NTA1MzkxLDAuMTQ2NDQ3IEM1LjE2ODI2NzI0LDAuMTY5NjYxNjY3IDUuMTg4OTkzOTEsMC4xOTQ5MTc2NjcgNS4yMDcyMzM5MSwwLjIyMjIxNSBDNS4yMjU0NzM5MSwwLjI0OTUxMjMzMyA1LjI0MDg3NzI0LDAuMjc4MzI2NjY3IDUuMjUzNDQzOTEsMC4zMDg2NTggQzUuMjY2MDAzOTEsMC4zMzg5ODkzMzMgNS4yNzU0ODcyNCwwLjM3MDI1NDk2NyA1LjI4MTg5MzkxLDAuNDAyNDU0OSBDNS4yODgzMDA1NywwLjQzNDY1NDUgNS4yOTE1MDM5MSwwLjQ2NzE2OTUzMyA1LjI5MTUwMzkxLDAuNSBDNS4yOTE1MDM5MSwwLjUzMjgzMDQ2NyA1LjI4ODMwMDU3LDAuNTY1MzQ1NSA1LjI4MTg5MzkxLDAuNTk3NTQ1MSBDNS4yNzU0ODcyNCwwLjYyOTc0NTAzMyA1LjI2NjAwMzkxLDAuNjYxMDEwNjY3IDUuMjUzNDQzOTEsMC42OTEzNDIgQzUuMjQwODc3MjQsMC43MjE2NzMzMzMgNS4yMjU0NzM5MSwwLjc1MDQ4NzY2NyA1LjIwNzIzMzkxLDAuNzc3Nzg1IEM1LjE4ODk5MzkxLDAuODA1MDgyMzMzIDUuMTY4MjY3MjQsMC44MzAzMzgzMzMgNS4xNDUwNTM5MSwwLjg1MzU1MyBDNS4xMjE4NDA1NywwLjg3Njc2NzY2NyA1LjA5NjU4MzkxLDAuODk3NDk1IDUuMDY5MjgzOTEsMC45MTU3MzUgQzUuMDQxOTkwNTcsMC45MzM5NzQzMzMgNS4wMTMxNzcyNCwwLjk0OTM3NiA0Ljk4Mjg0MzkxLDAuOTYxOTQgQzQuOTUyNTEwNTcsMC45NzQ1MDMzMzMgNC45MjEyNDM5MSwwLjk4Mzk4NzY2NyA0Ljg4OTA0MzkxLDAuOTkwMzkzIEM0Ljg1Njg1MDU3LDAuOTk2Nzk3NjY3IDQuODI0MzM3MjQsMSA0Ljc5MTUwMzkxLDEgTDIuMjkxNTAzOTEsMSBDMi4yNTg2NzM0NCwxIDIuMjI2MTU4NDEsMC45OTY3OTc2NjcgMi4xOTM5NTg4MSwwLjk5MDM5MyBDMi4xNjE3NTg4NywwLjk4Mzk4NzY2NyAyLjEzMDQ5MzI0LDAuOTc0NTAzMzMzIDIuMTAwMTYxOTEsMC45NjE5NCBDMi4wNjk4MzA1NywwLjk0OTM3NiAyLjA0MTAxNjI0LDAuOTMzOTc0MzMzIDIuMDEzNzE4OTEsMC45MTU3MzUgQzEuOTg2NDIxNTcsMC44OTc0OTUgMS45NjExNjU1NywwLjg3Njc2NzY2NyAxLjkzNzk1MDkxLDAuODUzNTUzIEMxLjkxNDczNjI0LDAuODMwMzM4MzMzIDEuODk0MDA4OTEsMC44MDUwODIzMzMgMS44NzU3Njg5MSwwLjc3Nzc4NSBDMS44NTc1Mjk1NywwLjc1MDQ4NzY2NyAxLjg0MjEyNzkxLDAuNzIxNjczMzMzIDEuODI5NTYzOTEsMC42OTEzNDIgQzEuODE3MDAwNTcsMC42NjEwMTA2NjcgMS44MDc1MTYyNCwwLjYyOTc0NTAzMyAxLjgwMTExMDkxLDAuNTk3NTQ1MSBDMS43OTQ3MDYyNCwwLjU2NTM0NTUgMS43OTE1MDM5MSwwLjUzMjgzMDQ2NyAxLjc5MTUwMzkxLDAuNSBDMS43OTE1MDM5MSwwLjQ2NzE2OTUzMyAxLjc5NDcwNjI0LDAuNDM0NjU0NSAxLjgwMTExMDkxLDAuNDAyNDU0OSBDMS44MDc1MTYyNCwwLjM3MDI1NDk2NyAxLjgxNzAwMDU3LDAuMzM4OTg5MzMzIDEuODI5NTYzOTEsMC4zMDg2NTggQzEuODQyMTI3OTEsMC4yNzgzMjY2NjcgMS44NTc1Mjk1NywwLjI0OTUxMjMzMyAxLjg3NTc2ODkxLDAuMjIyMjE1IEMxLjg5NDAwODkxLDAuMTk0OTE3NjY3IDEuOTE0NzM2MjQsMC4xNjk2NjE2NjcgMS45Mzc5NTA5MSwwLjE0NjQ0NyBDMS45NjExNjU1NywwLjEyMzIzMjMzMyAxLjk4NjQyMTU3LDAuMTAyNTA1IDIuMDEzNzE4OTEsMC4wODQyNjUgQzIuMDQxMDE2MjQsMC4wNjYwMjU2NjY3IDIuMDY5ODMwNTcsMC4wNTA2MjQgMi4xMDAxNjE5MSwwLjAzODA2IEMyLjEzMDQ5MzI0LDAuMDI1NDk2NjY2NyAyLjE2MTc1ODg3LDAuMDE2MDEyMzMzMyAyLjE5Mzk1ODgxLDAuMDA5NjA3IEMyLjIyNjE1ODQxLDAuMDAzMjAyMzMzMzMgMi4yNTg2NzM0NCwwIDIuMjkxNTAzOTEsMCBaIiBpZD0i6Lev5b6EIiBzdHJva2U9Im5vbmUiIGZpbGw9IiM1NTM4QTAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGQ9Ik0zLjA0MTUwMzkxLDMuNjI1IEMzLjA0MTUwMzkxLDMuNTkyMTY5NTMgMy4wNDQ3MDYyNCwzLjU1OTY1NDUgMy4wNTExMTA5MSwzLjUyNzQ1NDkgQzMuMDU3NTE2MjQsMy40OTUyNTQ5NyAzLjA2NzAwMDU3LDMuNDYzOTg5MzMgMy4wNzk1NjM5MSwzLjQzMzY1OCBDMy4wOTIxMjc5MSwzLjQwMzMyNjY3IDMuMTA3NTI5NTcsMy4zNzQ1MTIzMyAzLjEyNTc2ODkxLDMuMzQ3MjE1IEMzLjE0NDAwODkxLDMuMzE5OTE3NjcgMy4xNjQ3MzYyNCwzLjI5NDY2MTY3IDMuMTg3OTUwOTEsMy4yNzE0NDcgQzMuMjExMTY1NTcsMy4yNDgyMzIzMyAzLjIzNjQyMTU3LDMuMjI3NTA1IDMuMjYzNzE4OTEsMy4yMDkyNjUgQzMuMjkxMDE2MjQsMy4xOTEwMjU2NyAzLjMxOTgzMDU3LDMuMTc1NjI0IDMuMzUwMTYxOTEsMy4xNjMwNiBDMy4zODA0OTMyNCwzLjE1MDQ5NjY3IDMuNDExNzU4ODcsMy4xNDEwMTIzMyAzLjQ0Mzk1ODgxLDMuMTM0NjA3IEMzLjQ3NjE1ODQxLDMuMTI4MjAyMzMgMy41MDg2NzM0NCwzLjEyNSAzLjU0MTUwMzkxLDMuMTI1IEMzLjU3NDMzNDM3LDMuMTI1IDMuNjA2ODQ5NDEsMy4xMjgyMDIzMyAzLjYzOTA0OTAxLDMuMTM0NjA3IEMzLjY3MTI0ODk0LDMuMTQxMDEyMzMgMy43MDI1MTQ1NywzLjE1MDQ5NjY3IDMuNzMyODQ1OTEsMy4xNjMwNiBDMy43NjMxNzcyNCwzLjE3NTYyNCAzLjc5MTk5MTU3LDMuMTkxMDI1NjcgMy44MTkyODg5MSwzLjIwOTI2NSBDMy44NDY1ODYyNCwzLjIyNzUwNSAzLjg3MTg0MjI0LDMuMjQ4MjMyMzMgMy44OTUwNTY5MSwzLjI3MTQ0NyBDMy45MTgyNzE1NywzLjI5NDY2MTY3IDMuOTM4OTk4OTEsMy4zMTk5MTc2NyAzLjk1NzIzODkxLDMuMzQ3MjE1IEMzLjk3NTQ3ODI0LDMuMzc0NTEyMzMgMy45OTA4Nzk5MSwzLjQwMzMyNjY3IDQuMDAzNDQzOTEsMy40MzM2NTggQzQuMDE2MDA3MjQsMy40NjM5ODkzMyA0LjAyNTQ5MTU3LDMuNDk1MjU0OTcgNC4wMzE4OTY5MSwzLjUyNzQ1NDkgQzQuMDM4MzAxNTcsMy41NTk2NTQ1IDQuMDQxNTAzOTEsMy41OTIxNjk1MyA0LjA0MTUwMzkxLDMuNjI1IEw0LjA0MTUwMzkxLDUuMjkxNjcgQzQuMDQxNTAzOTEsNS4zMjQ0OTY2NyA0LjAzODMwMTU3LDUuMzU3MDEgNC4wMzE4OTY5MSw1LjM4OTIxIEM0LjAyNTQ5MTU3LDUuNDIxNDEgNC4wMTYwMDcyNCw1LjQ1MjY3NjY3IDQuMDAzNDQzOTEsNS40ODMwMSBDMy45OTA4Nzk5MSw1LjUxMzM0MzMzIDMuOTc1NDc4MjQsNS41NDIxNTY2NyAzLjk1NzIzODkxLDUuNTY5NDUgQzMuOTM4OTk4OTEsNS41OTY3NSAzLjkxODI3MTU3LDUuNjIyMDA2NjcgMy44OTUwNTY5MSw1LjY0NTIyIEMzLjg3MTg0MjI0LDUuNjY4NDMzMzMgMy44NDY1ODYyNCw1LjY4OTE2IDMuODE5Mjg4OTEsNS43MDc0IEMzLjc5MTk5MTU3LDUuNzI1NjQgMy43NjMxNzcyNCw1Ljc0MTA0MzMzIDMuNzMyODQ1OTEsNS43NTM2MSBDMy43MDI1MTQ1Nyw1Ljc2NjE3IDMuNjcxMjQ4OTQsNS43NzU2NTMzMyAzLjYzOTA0OTAxLDUuNzgyMDYgQzMuNjA2ODQ5NDEsNS43ODg0NjY2NyAzLjU3NDMzNDM3LDUuNzkxNjcgMy41NDE1MDM5MSw1Ljc5MTY3IEMzLjUwODY3MzQ0LDUuNzkxNjcgMy40NzYxNTg0MSw1Ljc4ODQ2NjY3IDMuNDQzOTU4ODEsNS43ODIwNiBDMy40MTE3NTg4Nyw1Ljc3NTY1MzMzIDMuMzgwNDkzMjQsNS43NjYxNyAzLjM1MDE2MTkxLDUuNzUzNjEgQzMuMzE5ODMwNTcsNS43NDEwNDMzMyAzLjI5MTAxNjI0LDUuNzI1NjQgMy4yNjM3MTg5MSw1LjcwNzQgQzMuMjM2NDIxNTcsNS42ODkxNiAzLjIxMTE2NTU3LDUuNjY4NDMzMzMgMy4xODc5NTA5MSw1LjY0NTIyIEMzLjE2NDczNjI0LDUuNjIyMDA2NjcgMy4xNDQwMDg5MSw1LjU5Njc1IDMuMTI1NzY4OTEsNS41Njk0NSBDMy4xMDc1Mjk1Nyw1LjU0MjE1NjY3IDMuMDkyMTI3OTEsNS41MTMzNDMzMyAzLjA3OTU2MzkxLDUuNDgzMDEgQzMuMDY3MDAwNTcsNS40NTI2NzY2NyAzLjA1NzUxNjI0LDUuNDIxNDEgMy4wNTExMTA5MSw1LjM4OTIxIEMzLjA0NDcwNjI0LDUuMzU3MDEgMy4wNDE1MDM5MSw1LjMyNDQ5NjY3IDMuMDQxNTAzOTEsNS4yOTE2NyBMMy4wNDE1MDM5MSwzLjYyNSBaIiBpZD0i6Lev5b6EIiBzdHJva2U9Im5vbmUiIGZpbGw9IiM1NTM4QTAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGQ9Ik0zLjU0MTUwMzkxLDQuNzkxNTAzOTEgTDUuMjA4MTczOTEsNC43OTE1MDM5MSBDNS4yNDEwMDA1Nyw0Ljc5MTUwMzkxIDUuMjczNTEzOTEsNC43OTQ3MDYyNCA1LjMwNTcxMzkxLDQuODAxMTEwOTEgQzUuMzM3OTEzOTEsNC44MDc1MTYyNCA1LjM2OTE4MDU3LDQuODE3MDAwNTcgNS4zOTk1MTM5MSw0LjgyOTU2MzkxIEM1LjQyOTg0NzI0LDQuODQyMTI3OTEgNS40NTg2NjA1Nyw0Ljg1NzUyOTU3IDUuNDg1OTUzOTEsNC44NzU3Njg5MSBDNS41MTMyNTM5MSw0Ljg5NDAwODkxIDUuNTM4NTEwNTcsNC45MTQ3MzYyNCA1LjU2MTcyMzkxLDQuOTM3OTUwOTEgQzUuNTg0OTM3MjQsNC45NjExNjU1NyA1LjYwNTY2MzkxLDQuOTg2NDIxNTcgNS42MjM5MDM5MSw1LjAxMzcxODkxIEM1LjY0MjE0MzkxLDUuMDQxMDE2MjQgNS42NTc1NDcyNCw1LjA2OTgzMDU3IDUuNjcwMTEzOTEsNS4xMDAxNjE5MSBDNS42ODI2NzM5MSw1LjEzMDQ5MzI0IDUuNjkyMTU3MjQsNS4xNjE3NTg4NyA1LjY5ODU2MzkxLDUuMTkzOTU4ODEgQzUuNzA0OTcwNTcsNS4yMjYxNTg0MSA1LjcwODE3MzkxLDUuMjU4NjczNDQgNS43MDgxNzM5MSw1LjI5MTUwMzkxIEM1LjcwODE3MzkxLDUuMzI0MzM0MzcgNS43MDQ5NzA1Nyw1LjM1Njg0OTQxIDUuNjk4NTYzOTEsNS4zODkwNDkwMSBDNS42OTIxNTcyNCw1LjQyMTI0ODk0IDUuNjgyNjczOTEsNS40NTI1MTQ1NyA1LjY3MDExMzkxLDUuNDgyODQ1OTEgQzUuNjU3NTQ3MjQsNS41MTMxNzcyNCA1LjY0MjE0MzkxLDUuNTQxOTkxNTcgNS42MjM5MDM5MSw1LjU2OTI4ODkxIEM1LjYwNTY2MzkxLDUuNTk2NTg2MjQgNS41ODQ5MzcyNCw1LjYyMTg0MjI0IDUuNTYxNzIzOTEsNS42NDUwNTY5MSBDNS41Mzg1MTA1Nyw1LjY2ODI3MTU3IDUuNTEzMjUzOTEsNS42ODg5OTg5MSA1LjQ4NTk1MzkxLDUuNzA3MjM4OTEgQzUuNDU4NjYwNTcsNS43MjU0NzgyNCA1LjQyOTg0NzI0LDUuNzQwODc5OTEgNS4zOTk1MTM5MSw1Ljc1MzQ0MzkxIEM1LjM2OTE4MDU3LDUuNzY2MDA3MjQgNS4zMzc5MTM5MSw1Ljc3NTQ5MTU3IDUuMzA1NzEzOTEsNS43ODE4OTY5MSBDNS4yNzM1MTM5MSw1Ljc4ODMwMTU3IDUuMjQxMDAwNTcsNS43OTE1MDM5MSA1LjIwODE3MzkxLDUuNzkxNTAzOTEgTDMuNTQxNTAzOTEsNS43OTE1MDM5MSBDMy41MDg2NzM0NCw1Ljc5MTUwMzkxIDMuNDc2MTU4NDEsNS43ODgzMDE1NyAzLjQ0Mzk1ODgxLDUuNzgxODk2OTEgQzMuNDExNzU4ODcsNS43NzU0OTE1NyAzLjM4MDQ5MzI0LDUuNzY2MDA3MjQgMy4zNTAxNjE5MSw1Ljc1MzQ0MzkxIEMzLjMxOTgzMDU3LDUuNzQwODc5OTEgMy4yOTEwMTYyNCw1LjcyNTQ3ODI0IDMuMjYzNzE4OTEsNS43MDcyMzg5MSBDMy4yMzY0MjE1Nyw1LjY4ODk5ODkxIDMuMjExMTY1NTcsNS42NjgyNzE1NyAzLjE4Nzk1MDkxLDUuNjQ1MDU2OTEgQzMuMTY0NzM2MjQsNS42MjE4NDIyNCAzLjE0NDAwODkxLDUuNTk2NTg2MjQgMy4xMjU3Njg5MSw1LjU2OTI4ODkxIEMzLjEwNzUyOTU3LDUuNTQxOTkxNTcgMy4wOTIxMjc5MSw1LjUxMzE3NzI0IDMuMDc5NTYzOTEsNS40ODI4NDU5MSBDMy4wNjcwMDA1Nyw1LjQ1MjUxNDU3IDMuMDU3NTE2MjQsNS40MjEyNDg5NCAzLjA1MTExMDkxLDUuMzg5MDQ5MDEgQzMuMDQ0NzA2MjQsNS4zNTY4NDk0MSAzLjA0MTUwMzkxLDUuMzI0MzM0MzcgMy4wNDE1MDM5MSw1LjI5MTUwMzkxIEMzLjA0MTUwMzkxLDUuMjU4NjczNDQgMy4wNDQ3MDYyNCw1LjIyNjE1ODQxIDMuMDUxMTEwOTEsNS4xOTM5NTg4MSBDMy4wNTc1MTYyNCw1LjE2MTc1ODg3IDMuMDY3MDAwNTcsNS4xMzA0OTMyNCAzLjA3OTU2MzkxLDUuMTAwMTYxOTEgQzMuMDkyMTI3OTEsNS4wNjk4MzA1NyAzLjEwNzUyOTU3LDUuMDQxMDE2MjQgMy4xMjU3Njg5MSw1LjAxMzcxODkxIEMzLjE0NDAwODkxLDQuOTg2NDIxNTcgMy4xNjQ3MzYyNCw0Ljk2MTE2NTU3IDMuMTg3OTUwOTEsNC45Mzc5NTA5MSBDMy4yMTExNjU1Nyw0LjkxNDczNjI0IDMuMjM2NDIxNTcsNC44OTQwMDg5MSAzLjI2MzcxODkxLDQuODc1NzY4OTEgQzMuMjkxMDE2MjQsNC44NTc1Mjk1NyAzLjMxOTgzMDU3LDQuODQyMTI3OTEgMy4zNTAxNjE5MSw0LjgyOTU2MzkxIEMzLjM4MDQ5MzI0LDQuODE3MDAwNTcgMy40MTE3NTg4Nyw0LjgwNzUxNjI0IDMuNDQzOTU4ODEsNC44MDExMTA5MSBDMy40NzYxNTg0MSw0Ljc5NDcwNjI0IDMuNTA4NjczNDQsNC43OTE1MDM5MSAzLjU0MTUwMzkxLDQuNzkxNTAzOTEgWiIgaWQ9Iui3r+W+hCIgc3Ryb2tlPSJub25lIiBmaWxsPSIjNTUzOEEwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBkPSJNNC4wNDE1MDM5MSwwLjUgTDQuMDQxNTAzOTEsMS4zMzMzMzMgQzQuMDQxNTAzOTEsMS4zNjYxNjM2NyA0LjAzODMwMTU3LDEuMzk4Njc4NjcgNC4wMzE4OTY5MSwxLjQzMDg3OCBDNC4wMjU0OTE1NywxLjQ2MzA3OCA0LjAxNjAwNzI0LDEuNDk0MzQ1MzMgNC4wMDM0NDM5MSwxLjUyNDY4IEMzLjk5MDg3OTkxLDEuNTU1MDA2NjcgMy45NzU0NzgyNCwxLjU4MzgyIDMuOTU3MjM4OTEsMS42MTExMiBDMy45Mzg5OTg5MSwxLjYzODQxMzMzIDMuOTE4MjcxNTcsMS42NjM2NyAzLjg5NTA1NjkxLDEuNjg2ODkgQzMuODcxODQyMjQsMS43MTAxMDMzMyAzLjg0NjU4NjI0LDEuNzMwODMgMy44MTkyODg5MSwxLjc0OTA3IEMzLjc5MTk5MTU3LDEuNzY3MzEgMy43NjMxNzcyNCwxLjc4MjcxIDMuNzMyODQ1OTEsMS43OTUyNyBDMy43MDI1MTQ1NywxLjgwNzgzNjY3IDMuNjcxMjQ4OTQsMS44MTczMjMzMyAzLjYzOTA0OTAxLDEuODIzNzMgQzMuNjA2ODQ5NDEsMS44MzAxMyAzLjU3NDMzNDM3LDEuODMzMzMgMy41NDE1MDM5MSwxLjgzMzMzIEMzLjUwODY3MzQ0LDEuODMzMzMgMy40NzYxNTg0MSwxLjgzMDEzIDMuNDQzOTU4ODEsMS44MjM3MyBDMy40MTE3NTg4NywxLjgxNzMyMzMzIDMuMzgwNDkzMjQsMS44MDc4MzY2NyAzLjM1MDE2MTkxLDEuNzk1MjcgQzMuMzE5ODMwNTcsMS43ODI3MSAzLjI5MTAxNjI0LDEuNzY3MzEgMy4yNjM3MTg5MSwxLjc0OTA3IEMzLjIzNjQyMTU3LDEuNzMwODMgMy4yMTExNjU1NywxLjcxMDEwMzMzIDMuMTg3OTUwOTEsMS42ODY4OSBDMy4xNjQ3MzYyNCwxLjY2MzY3IDMuMTQ0MDA4OTEsMS42Mzg0MTMzMyAzLjEyNTc2ODkxLDEuNjExMTIgQzMuMTA3NTI5NTcsMS41ODM4MiAzLjA5MjEyNzkxLDEuNTU1MDA2NjcgMy4wNzk1NjM5MSwxLjUyNDY4IEMzLjA2NzAwMDU3LDEuNDk0MzQ1MzMgMy4wNTc1MTYyNCwxLjQ2MzA3OCAzLjA1MTExMDkxLDEuNDMwODc4IEMzLjA0NDcwNjI0LDEuMzk4Njc4NjcgMy4wNDE1MDM5MSwxLjM2NjE2MzY3IDMuMDQxNTAzOTEsMS4zMzMzMzMgTDMuMDQxNTAzOTEsMC41IEMzLjA0MTUwMzkxLDAuNDY3MTY5NTMzIDMuMDQ0NzA2MjQsMC40MzQ2NTQ1IDMuMDUxMTEwOTEsMC40MDI0NTQ5IEMzLjA1NzUxNjI0LDAuMzcwMjU0OTY3IDMuMDY3MDAwNTcsMC4zMzg5ODkzMzMgMy4wNzk1NjM5MSwwLjMwODY1OCBDMy4wOTIxMjc5MSwwLjI3ODMyNjY2NyAzLjEwNzUyOTU3LDAuMjQ5NTEyMzMzIDMuMTI1NzY4OTEsMC4yMjIyMTUgQzMuMTQ0MDA4OTEsMC4xOTQ5MTc2NjcgMy4xNjQ3MzYyNCwwLjE2OTY2MTY2NyAzLjE4Nzk1MDkxLDAuMTQ2NDQ3IEMzLjIxMTE2NTU3LDAuMTIzMjMyMzMzIDMuMjM2NDIxNTcsMC4xMDI1MDUgMy4yNjM3MTg5MSwwLjA4NDI2NSBDMy4yOTEwMTYyNCwwLjA2NjAyNTY2NjcgMy4zMTk4MzA1NywwLjA1MDYyNCAzLjM1MDE2MTkxLDAuMDM4MDYgQzMuMzgwNDkzMjQsMC4wMjU0OTY2NjY3IDMuNDExNzU4ODcsMC4wMTYwMTIzMzMzIDMuNDQzOTU4ODEsMC4wMDk2MDcgQzMuNDc2MTU4NDEsMC4wMDMyMDIzMzMzMyAzLjUwODY3MzQ0LDAgMy41NDE1MDM5MSwwIEMzLjU3NDMzNDM3LDAgMy42MDY4NDk0MSwwLjAwMzIwMjMzMzMzIDMuNjM5MDQ5MDEsMC4wMDk2MDcgQzMuNjcxMjQ4OTQsMC4wMTYwMTIzMzMzIDMuNzAyNTE0NTcsMC4wMjU0OTY2NjY3IDMuNzMyODQ1OTEsMC4wMzgwNiBDMy43NjMxNzcyNCwwLjA1MDYyNCAzLjc5MTk5MTU3LDAuMDY2MDI1NjY2NyAzLjgxOTI4ODkxLDAuMDg0MjY1IEMzLjg0NjU4NjI0LDAuMTAyNTA1IDMuODcxODQyMjQsMC4xMjMyMzIzMzMgMy44OTUwNTY5MSwwLjE0NjQ0NyBDMy45MTgyNzE1NywwLjE2OTY2MTY2NyAzLjkzODk5ODkxLDAuMTk0OTE3NjY3IDMuOTU3MjM4OTEsMC4yMjIyMTUgQzMuOTc1NDc4MjQsMC4yNDk1MTIzMzMgMy45OTA4Nzk5MSwwLjI3ODMyNjY2NyA0LjAwMzQ0MzkxLDAuMzA4NjU4IEM0LjAxNjAwNzI0LDAuMzM4OTg5MzMzIDQuMDI1NDkxNTcsMC4zNzAyNTQ5NjcgNC4wMzE4OTY5MSwwLjQwMjQ1NDkgQzQuMDM4MzAxNTcsMC40MzQ2NTQ1IDQuMDQxNTAzOTEsMC40NjcxNjk1MzMgNC4wNDE1MDM5MSwwLjUgWiIgaWQ9Iui3r+W+hCIgc3Ryb2tlPSJub25lIiBmaWxsPSIjNTUzOEEwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L2c+PC9nPjwvZz48L2c+PC9zdmc+Q29taW5nIFNvb248L2Rpdj48L2gzPjxkaXYgY2xhc3M9ImFjc3MtMTdramV3NyI+VXNlIHBoeXNpY2FsIGNhcmRzIGZvciB3b3JsZHdpZGUgcGF5bWVudHMgYW5kIEFUTSB3aXRoZHJhd2Fscy4gT3JkZXIgdW5saW1pdGVkIGNhcmRzIGZvciBnbG9iYWwgc3BlbmRpbmcuPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0xeHU4ZGEyIj48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9hcHAuYnV2ZWkuY29tL3NpZ25pbiI+PHN0eWxlIGRhdGEtZW1vdGlvbj0iY3NzIDF5OHpidzciPi5jc3MtMXk4emJ3Ny5hbnQtYnRue2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjE7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtYm94O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5Oi1tcy1pbmxpbmUtZmxleGJveDtkaXNwbGF5OmlubGluZS1mbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JvcmRlci1yYWRpdXM6NDBweDtib3gtc2hhZG93OjAgMnB4IDAgcmdiYSg1LDE0NSwyNTUsMC4xKTtoZWlnaHQ6NDRweDttaW4taGVpZ2h0OjQ0cHg7cGFkZGluZzoxNHB4IDMwcHg7fTwvc3R5bGU+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJhbnQtYnRuIGNzcy0xZGc1MTczIGFudC1idG4tcHJpbWFyeSBhbnQtYnRuLWNvbG9yLXByaW1hcnkgYW50LWJ0bi12YXJpYW50LXNvbGlkIGNzcy0xeTh6Ync3IGVzaDliajg0Ij48c3Bhbj5PcmRlciBZb3VyIENhcmQgTm93PC9zcGFuPjxzdmcgdmlld0JveD0iMCAwIDE2IDE0IiBjbGFzcz0iYWNzcy0xa3JtNnUiPjxnIGlkPSLpobXpnaItMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PGcgaWQ9Iue8lue7hCIgZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjxwYXRoIGQ9Ik0xMy42MjM5ODQ2LDYuMzAwMDg4NDEgTDAuNjk1NTk4MTEyLDYuMzAwMDg4NDEgQzAuMzExNDI5ODgzLDYuMzAwMDg4NDEgMCw2LjYxMzQ0OTUgMCw3IEMwLDcuMzg2NTUwNSAwLjMxMTQyOTg4Myw3LjY5OTkxMTU5IDAuNjk1NTk4MTEyLDcuNjk5OTExNTkgTDEzLjYyMzk4NDYsNy42OTk5MTE1OSBMOC41NTAyOTE5OSwxMi44MDM2NjY5IEM4LjI3ODMwMDg4LDEzLjA3NzM0NDYgOC4yNzgzMDA4OCwxMy41MjEwNjM5IDguNTUwMjkxOTksMTMuNzk0NzQxNyBDOC44MjIyODMxLDE0LjA2ODQxOTQgOS4yNjMyNjc4MSwxNC4wNjg0MTk0IDkuNTM1MjU4OTIsMTMuNzk0NzQxNyBMMTUuNzk1NjQxOSw3LjQ5NTUzNzQgQzE1LjkyNjQ3MjQsNy4zNjQyMjgwMiAxNiw3LjE4NTkzNDY4IDE2LDcgQzE2LDYuODE0MDY1MzIgMTUuOTI2NDcyNCw2LjYzNTc3MTk4IDE1Ljc5NTY0MTksNi41MDQ0NjI2IEw5LjUzNTI1ODkyLDAuMjA1MjU4MzEzIEM5LjI2MzI2NzgxLC0wLjA2ODQxOTQzNzcgOC44MjIyODMxLC0wLjA2ODQxOTQzNzcgOC41NTAyOTE5OSwwLjIwNTI1ODMxMyBDOC4yNzgzMDA4OCwwLjQ3ODkzNjA2NCA4LjI3ODMwMDg4LDAuOTIyNjU1MzY5IDguNTUwMjkxOTksMS4xOTYzMzMxMiBMMTMuNjIzOTg0Niw2LjMwMDA4ODQxIFoiIGlkPSLot6/lvoQiLz48L2c+PC9nPjwvc3ZnPjwvYnV0dG9uPjwvYT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLTE1YWoycmoiPjxkaXYgY2xhc3M9ImFjc3Mtcnl1NzNtIj48ZGl2IHN0eWxlPSJvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNTBweCkgc2NhbGUoMC45KSB0cmFuc2xhdGVaKDApIj48ZGl2PjxoMiBjbGFzcz0iYWNzcy0xaWd0ZGV0Ij5TcGVuZCBHbG9iYWxseSB3aXRoIFZpcnR1YWwgQ2FyZHM8L2gyPjxkaXYgY2xhc3M9ImFjc3MtMWR6ZGQ4OCI+VXNlIG11bHRpLWN1cnJlbmN5IHZpcnR1YWwgY2FyZHMgdG8gcGF5IGdsb2JhbGx5IGZvciBhZHMsIHN1YnNjcmlwdGlvbnMsIGFuZCBvbmxpbmUgc2VydmljZXMuPC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0zOGg3bCI+PGRpdiBjbGFzcz0iYWNzcy1nM292cWgiPjxkaXYgY2xhc3M9ImFjc3MtMXNnOGFucyI+PHNwYW4+MDwvc3Bhbj4rPC9kaXY+PGRpdiBjbGFzcz0iYWNzcy1xeWQ2ZGwiPkJJTnM8L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLTF0bXZlcHEiPjxpbWcgYWx0PSJCSU5zIiBzaXplcz0iMTAwdnciIHNyY3NldD0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjExNTUxNjhkMDIxZjA1YWYud2VicCZhbXA7dz02NDAmYW1wO3E9NzUgNjQwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjExNTUxNjhkMDIxZjA1YWYud2VicCZhbXA7dz03NTAmYW1wO3E9NzUgNzUwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjExNTUxNjhkMDIxZjA1YWYud2VicCZhbXA7dz04MjgmYW1wO3E9NzUgODI4dywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjExNTUxNjhkMDIxZjA1YWYud2VicCZhbXA7dz0xMDgwJmFtcDtxPTc1IDEwODB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTE1NTE2OGQwMjFmMDVhZi53ZWJwJmFtcDt3PTEyMDAmYW1wO3E9NzUgMTIwMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxMTU1MTY4ZDAyMWYwNWFmLndlYnAmYW1wO3c9MTkyMCZhbXA7cT03NSAxOTIwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjExNTUxNjhkMDIxZjA1YWYud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IDIwNDh3IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxMTU1MTY4ZDAyMWYwNWFmLndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9ImZpbGwiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2NvbG9yOnRyYW5zcGFyZW50Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLWczb3ZxaCI+PGRpdiBjbGFzcz0iYWNzcy0xc2c4YW5zIj48c3Bhbj4wPC9zcGFuPis8L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLXF5ZDZkbCI+Q3VycmVuY2llczwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtMXRtdmVwcSI+PGltZyBhbHQ9IkN1cnJlbmNpZXMiIHNpemVzPSIxMDB2dyIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTIwNDA5MDlkOTI3ZGE0OC53ZWJwJmFtcDt3PTY0MCZhbXA7cT03NSA2NDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTIwNDA5MDlkOTI3ZGE0OC53ZWJwJmFtcDt3PTc1MCZhbXA7cT03NSA3NTB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTIwNDA5MDlkOTI3ZGE0OC53ZWJwJmFtcDt3PTgyOCZhbXA7cT03NSA4Mjh3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTIwNDA5MDlkOTI3ZGE0OC53ZWJwJmFtcDt3PTEwODAmYW1wO3E9NzUgMTA4MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxMjA0MDkwOWQ5MjdkYTQ4LndlYnAmYW1wO3c9MTIwMCZhbXA7cT03NSAxMjAwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjEyMDQwOTA5ZDkyN2RhNDgud2VicCZhbXA7dz0xOTIwJmFtcDtxPTc1IDE5MjB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTIwNDA5MDlkOTI3ZGE0OC53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUgMjA0OHciIHNyYz0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjEyMDQwOTA5ZDkyN2RhNDgud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IiBkZWNvZGluZz0iYXN5bmMiIGRhdGEtbmltZz0iZmlsbCIgbG9hZGluZz0ibGF6eSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bGVmdDowO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7Y29sb3I6dHJhbnNwYXJlbnQiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtZzNvdnFoIj48ZGl2IGNsYXNzPSJhY3NzLTE3dzRpeWMiPjxzcGFuPjA8L3NwYW4+KzwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtcXlkNmRsIj5TcGVuZGluZyBTY2VuYXJpb3M8L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLTF0bXZlcHEiPjxpbWcgYWx0PSJTcGVuZGluZyBTY2VuYXJpb3MiIHNpemVzPSIxMDB2dyIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTIwNDUwODI1NTVmMjEyMC53ZWJwJmFtcDt3PTY0MCZhbXA7cT03NSA2NDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTIwNDUwODI1NTVmMjEyMC53ZWJwJmFtcDt3PTc1MCZhbXA7cT03NSA3NTB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTIwNDUwODI1NTVmMjEyMC53ZWJwJmFtcDt3PTgyOCZhbXA7cT03NSA4Mjh3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTIwNDUwODI1NTVmMjEyMC53ZWJwJmFtcDt3PTEwODAmYW1wO3E9NzUgMTA4MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxMjA0NTA4MjU1NWYyMTIwLndlYnAmYW1wO3c9MTIwMCZhbXA7cT03NSAxMjAwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjEyMDQ1MDgyNTU1ZjIxMjAud2VicCZhbXA7dz0xOTIwJmFtcDtxPTc1IDE5MjB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTIwNDUwODI1NTVmMjEyMC53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUgMjA0OHciIHNyYz0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjEyMDQ1MDgyNTU1ZjIxMjAud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IiBkZWNvZGluZz0iYXN5bmMiIGRhdGEtbmltZz0iZmlsbCIgbG9hZGluZz0ibGF6eSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bGVmdDowO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7Y29sb3I6dHJhbnNwYXJlbnQiPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImFjc3Mtemg2M2I5Ij48ZGl2IHN0eWxlPSJoZWlnaHQ6NTZweCI+PGRpdiBzdHlsZT0iYW5pbWF0aW9uLWR1cmF0aW9uOjBtcyI+PGRpdiBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjIwcHgiPjxkaXYgY2xhc3M9ImFjc3MtMWFhcms1MSIgc3R5bGU9IndpZHRoOjE2NXB4Ij48aW1nIGFsdD0iR29vZ2xlIGFkcyIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTU1MTMxZTRjZjhjNDZjOS53ZWJwJmFtcDt3PTMyJmFtcDtxPTc1IDF4LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTU1MTMxZTRjZjhjNDZjOS53ZWJwJmFtcDt3PTY0JmFtcDtxPTc1IDJ4IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxNTUxMzFlNGNmOGM0NmM5LndlYnAmYW1wO3c9NjQmYW1wO3E9NzUiIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9IjEiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJjb2xvcjp0cmFuc3BhcmVudDt3aWR0aDozMHB4O2hlaWdodDozMHB4Ij48c3BhbiBjbGFzcz0iYWNzcy0xZXk1bTR1Ij5Hb29nbGUgYWRzPC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWZsZXg7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDoyMHB4Ij48ZGl2IGNsYXNzPSJhY3NzLTFhYXJrNTEiIHN0eWxlPSJ3aWR0aDoxODVweCI+PGltZyBhbHQ9IkZhY2Vib29rIEFkcyIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTU1NTEwYmI4NjMwZjk0OS53ZWJwJmFtcDt3PTMyJmFtcDtxPTc1IDF4LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTU1NTEwYmI4NjMwZjk0OS53ZWJwJmFtcDt3PTY0JmFtcDtxPTc1IDJ4IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxNTU1MTBiYjg2MzBmOTQ5LndlYnAmYW1wO3c9NjQmYW1wO3E9NzUiIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9IjEiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJjb2xvcjp0cmFuc3BhcmVudDt3aWR0aDozMHB4O2hlaWdodDozMHB4Ij48c3BhbiBjbGFzcz0iYWNzcy0xZXk1bTR1Ij5GYWNlYm9vayBBZHM8L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjIwcHgiPjxkaXYgY2xhc3M9ImFjc3MtMWFhcms1MSIgc3R5bGU9IndpZHRoOjE2OHB4Ij48aW1nIGFsdD0iVHdpdHRlciBBZHMiIHNyY3NldD0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTE1NTU1ODA2MTVjYTM1M2Yud2VicCZhbXA7dz0zMiZhbXA7cT03NSAxeCwgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTE1NTU1ODA2MTVjYTM1M2Yud2VicCZhbXA7dz02NCZhbXA7cT03NSAyeCIgc3JjPSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTU1NTU4MDYxNWNhMzUzZi53ZWJwJmFtcDt3PTY0JmFtcDtxPTc1IiB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGRlY29kaW5nPSJhc3luYyIgZGF0YS1uaW1nPSIxIiBsb2FkaW5nPSJsYXp5IiBzdHlsZT0iY29sb3I6dHJhbnNwYXJlbnQ7d2lkdGg6MzBweDtoZWlnaHQ6MzBweCI+PHNwYW4gY2xhc3M9ImFjc3MtMWV5NW00dSI+VHdpdHRlciBBZHM8L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjIwcHgiPjxkaXYgY2xhc3M9ImFjc3MtMWFhcms1MSIgc3R5bGU9IndpZHRoOjE2M3B4Ij48aW1nIGFsdD0iVGlrVG9rIEFkcyIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTU1NzExN2I4ZDMzYWRlMy53ZWJwJmFtcDt3PTMyJmFtcDtxPTc1IDF4LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTU1NzExN2I4ZDMzYWRlMy53ZWJwJmFtcDt3PTY0JmFtcDtxPTc1IDJ4IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxNTU3MTE3YjhkMzNhZGUzLndlYnAmYW1wO3c9NjQmYW1wO3E9NzUiIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9IjEiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJjb2xvcjp0cmFuc3BhcmVudDt3aWR0aDozMHB4O2hlaWdodDozMHB4Ij48c3BhbiBjbGFzcz0iYWNzcy0xZXk1bTR1Ij5UaWtUb2sgQWRzPC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWZsZXg7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDoyMHB4Ij48ZGl2IGNsYXNzPSJhY3NzLTFhYXJrNTEiIHN0eWxlPSJ3aWR0aDoxNDNweCI+PGltZyBhbHQ9Ik9wZW5BSSIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTU1NzU2NGEyZWZkZGNiNS53ZWJwJmFtcDt3PTMyJmFtcDtxPTc1IDF4LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTU1NzU2NGEyZWZkZGNiNS53ZWJwJmFtcDt3PTY0JmFtcDtxPTc1IDJ4IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxNTU3NTY0YTJlZmRkY2I1LndlYnAmYW1wO3c9NjQmYW1wO3E9NzUiIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9IjEiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJjb2xvcjp0cmFuc3BhcmVudDt3aWR0aDozMHB4O2hlaWdodDozMHB4Ij48c3BhbiBjbGFzcz0iYWNzcy0xZXk1bTR1Ij5PcGVuQUk8L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjIwcHgiPjxkaXYgY2xhc3M9ImFjc3MtMWFhcms1MSIgc3R5bGU9IndpZHRoOjE2MnB4Ij48aW1nIGFsdD0iT3BlbkFJIiBzcmNzZXQ9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxNTU5MDRiMzUzZjdkYzkyLndlYnAmYW1wO3c9MzImYW1wO3E9NzUgMXgsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxNTU5MDRiMzUzZjdkYzkyLndlYnAmYW1wO3c9NjQmYW1wO3E9NzUgMngiIHNyYz0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTE1NTkwNGIzNTNmN2RjOTIud2VicCZhbXA7dz02NCZhbXA7cT03NSIgd2lkdGg9IjMwIiBoZWlnaHQ9IjMwIiBkZWNvZGluZz0iYXN5bmMiIGRhdGEtbmltZz0iMSIgbG9hZGluZz0ibGF6eSIgc3R5bGU9ImNvbG9yOnRyYW5zcGFyZW50O3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHgiPjxzcGFuIGNsYXNzPSJhY3NzLTFleTVtNHUiPkRlZXBNaW5kPC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWZsZXg7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDoyMHB4Ij48ZGl2IGNsYXNzPSJhY3NzLTFhYXJrNTEiIHN0eWxlPSJ3aWR0aDoxNDVweCI+PGltZyBhbHQ9IkFtYXpvbiIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTYwMDE3MGZkMWVhMDI2NC53ZWJwJmFtcDt3PTMyJmFtcDtxPTc1IDF4LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTYwMDE3MGZkMWVhMDI2NC53ZWJwJmFtcDt3PTY0JmFtcDtxPTc1IDJ4IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxNjAwMTcwZmQxZWEwMjY0LndlYnAmYW1wO3c9NjQmYW1wO3E9NzUiIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9IjEiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJjb2xvcjp0cmFuc3BhcmVudDt3aWR0aDozMHB4O2hlaWdodDozMHB4Ij48c3BhbiBjbGFzcz0iYWNzcy0xZXk1bTR1Ij5BbWF6b248L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjIwcHgiPjxkaXYgY2xhc3M9ImFjc3MtMWFhcms1MSIgc3R5bGU9IndpZHRoOjE3NXB4Ij48aW1nIGFsdD0iV2FsbWFydCIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTYwMTQxMGE5M2JmODdlMC53ZWJwJmFtcDt3PTEyOCZhbXA7cT03NSAxeCwgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTE2MDE0MTBhOTNiZjg3ZTAud2VicCZhbXA7dz0yNTYmYW1wO3E9NzUgMngiIHNyYz0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTE2MDE0MTBhOTNiZjg3ZTAud2VicCZhbXA7dz0yNTYmYW1wO3E9NzUiIHdpZHRoPSIxMjciIGhlaWdodD0iMzAiIGRlY29kaW5nPSJhc3luYyIgZGF0YS1uaW1nPSIxIiBsb2FkaW5nPSJsYXp5IiBzdHlsZT0iY29sb3I6dHJhbnNwYXJlbnQ7d2lkdGg6MTI3cHg7aGVpZ2h0OjMwcHgiPjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWZsZXg7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDoyMHB4Ij48ZGl2IGNsYXNzPSJhY3NzLTFhYXJrNTEiIHN0eWxlPSJ3aWR0aDoxNjhweCI+PGltZyBhbHQ9IkxhemFkYSIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTYwMjI5YjBiOWM2ZTIxYi53ZWJwJmFtcDt3PTEyOCZhbXA7cT03NSAxeCwgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTE2MDIyOWIwYjljNmUyMWIud2VicCZhbXA7dz0yNTYmYW1wO3E9NzUgMngiIHNyYz0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTE2MDIyOWIwYjljNmUyMWIud2VicCZhbXA7dz0yNTYmYW1wO3E9NzUiIHdpZHRoPSIxMjAiIGhlaWdodD0iMzAiIGRlY29kaW5nPSJhc3luYyIgZGF0YS1uaW1nPSIxIiBsb2FkaW5nPSJsYXp5IiBzdHlsZT0iY29sb3I6dHJhbnNwYXJlbnQ7d2lkdGg6MTIwcHg7aGVpZ2h0OjMwcHgiPjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWZsZXg7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDoyMHB4Ij48ZGl2IGNsYXNzPSJhY3NzLTFhYXJrNTEiIHN0eWxlPSJ3aWR0aDoxMDhweCI+PGltZyBhbHQ9IkVUU1kiIHNyY3NldD0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTE2MDMxNTNjNjAwNGM5OGUud2VicCZhbXA7dz02NCZhbXA7cT03NSAxeCwgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTE2MDMxNTNjNjAwNGM5OGUud2VicCZhbXA7dz0xMjgmYW1wO3E9NzUgMngiIHNyYz0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTE2MDMxNTNjNjAwNGM5OGUud2VicCZhbXA7dz0xMjgmYW1wO3E9NzUiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMCIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9IjEiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJjb2xvcjp0cmFuc3BhcmVudDt3aWR0aDo2MHB4O2hlaWdodDozMHB4Ij48L2Rpdj48L2Rpdj48ZGl2IHN0eWxlPSJkaXNwbGF5OmlubGluZS1mbGV4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW4tcmlnaHQ6MjBweCI+PGRpdiBjbGFzcz0iYWNzcy0xYWFyazUxIiBzdHlsZT0id2lkdGg6MTIycHgiPjxpbWcgYWx0PSJFQkFZIiBzcmNzZXQ9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxNjAzNTM3OWU1YzI0MjQyLndlYnAmYW1wO3c9OTYmYW1wO3E9NzUgMXgsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxNjAzNTM3OWU1YzI0MjQyLndlYnAmYW1wO3c9MjU2JmFtcDtxPTc1IDJ4IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxNjAzNTM3OWU1YzI0MjQyLndlYnAmYW1wO3c9MjU2JmFtcDtxPTc1IiB3aWR0aD0iNzQiIGhlaWdodD0iMzAiIGRlY29kaW5nPSJhc3luYyIgZGF0YS1uaW1nPSIxIiBsb2FkaW5nPSJsYXp5IiBzdHlsZT0iY29sb3I6dHJhbnNwYXJlbnQ7d2lkdGg6NzRweDtoZWlnaHQ6MzBweCI+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjIwcHgiPjxkaXYgY2xhc3M9ImFjc3MtMWFhcms1MSIgc3R5bGU9IndpZHRoOjE2NXB4Ij48aW1nIGFsdD0iR29vZ2xlIGFkcyIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTU1MTMxZTRjZjhjNDZjOS53ZWJwJmFtcDt3PTMyJmFtcDtxPTc1IDF4LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTU1MTMxZTRjZjhjNDZjOS53ZWJwJmFtcDt3PTY0JmFtcDtxPTc1IDJ4IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxNTUxMzFlNGNmOGM0NmM5LndlYnAmYW1wO3c9NjQmYW1wO3E9NzUiIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9IjEiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJjb2xvcjp0cmFuc3BhcmVudDt3aWR0aDozMHB4O2hlaWdodDozMHB4Ij48c3BhbiBjbGFzcz0iYWNzcy0xZXk1bTR1Ij5Hb29nbGUgYWRzPC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWZsZXg7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDoyMHB4Ij48ZGl2IGNsYXNzPSJhY3NzLTFhYXJrNTEiIHN0eWxlPSJ3aWR0aDoxODVweCI+PGltZyBhbHQ9IkZhY2Vib29rIEFkcyIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTU1NTEwYmI4NjMwZjk0OS53ZWJwJmFtcDt3PTMyJmFtcDtxPTc1IDF4LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTU1NTEwYmI4NjMwZjk0OS53ZWJwJmFtcDt3PTY0JmFtcDtxPTc1IDJ4IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxNTU1MTBiYjg2MzBmOTQ5LndlYnAmYW1wO3c9NjQmYW1wO3E9NzUiIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9IjEiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJjb2xvcjp0cmFuc3BhcmVudDt3aWR0aDozMHB4O2hlaWdodDozMHB4Ij48c3BhbiBjbGFzcz0iYWNzcy0xZXk1bTR1Ij5GYWNlYm9vayBBZHM8L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjIwcHgiPjxkaXYgY2xhc3M9ImFjc3MtMWFhcms1MSIgc3R5bGU9IndpZHRoOjE2OHB4Ij48aW1nIGFsdD0iVHdpdHRlciBBZHMiIHNyY3NldD0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTE1NTU1ODA2MTVjYTM1M2Yud2VicCZhbXA7dz0zMiZhbXA7cT03NSAxeCwgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTE1NTU1ODA2MTVjYTM1M2Yud2VicCZhbXA7dz02NCZhbXA7cT03NSAyeCIgc3JjPSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTU1NTU4MDYxNWNhMzUzZi53ZWJwJmFtcDt3PTY0JmFtcDtxPTc1IiB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIGRlY29kaW5nPSJhc3luYyIgZGF0YS1uaW1nPSIxIiBsb2FkaW5nPSJsYXp5IiBzdHlsZT0iY29sb3I6dHJhbnNwYXJlbnQ7d2lkdGg6MzBweDtoZWlnaHQ6MzBweCI+PHNwYW4gY2xhc3M9ImFjc3MtMWV5NW00dSI+VHdpdHRlciBBZHM8L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjIwcHgiPjxkaXYgY2xhc3M9ImFjc3MtMWFhcms1MSIgc3R5bGU9IndpZHRoOjE2M3B4Ij48aW1nIGFsdD0iVGlrVG9rIEFkcyIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTU1NzExN2I4ZDMzYWRlMy53ZWJwJmFtcDt3PTMyJmFtcDtxPTc1IDF4LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTU1NzExN2I4ZDMzYWRlMy53ZWJwJmFtcDt3PTY0JmFtcDtxPTc1IDJ4IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxNTU3MTE3YjhkMzNhZGUzLndlYnAmYW1wO3c9NjQmYW1wO3E9NzUiIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9IjEiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJjb2xvcjp0cmFuc3BhcmVudDt3aWR0aDozMHB4O2hlaWdodDozMHB4Ij48c3BhbiBjbGFzcz0iYWNzcy0xZXk1bTR1Ij5UaWtUb2sgQWRzPC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWZsZXg7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDoyMHB4Ij48ZGl2IGNsYXNzPSJhY3NzLTFhYXJrNTEiIHN0eWxlPSJ3aWR0aDoxNDNweCI+PGltZyBhbHQ9Ik9wZW5BSSIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTU1NzU2NGEyZWZkZGNiNS53ZWJwJmFtcDt3PTMyJmFtcDtxPTc1IDF4LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTU1NzU2NGEyZWZkZGNiNS53ZWJwJmFtcDt3PTY0JmFtcDtxPTc1IDJ4IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxNTU3NTY0YTJlZmRkY2I1LndlYnAmYW1wO3c9NjQmYW1wO3E9NzUiIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9IjEiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJjb2xvcjp0cmFuc3BhcmVudDt3aWR0aDozMHB4O2hlaWdodDozMHB4Ij48c3BhbiBjbGFzcz0iYWNzcy0xZXk1bTR1Ij5PcGVuQUk8L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjIwcHgiPjxkaXYgY2xhc3M9ImFjc3MtMWFhcms1MSIgc3R5bGU9IndpZHRoOjE2MnB4Ij48aW1nIGFsdD0iT3BlbkFJIiBzcmNzZXQ9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxNTU5MDRiMzUzZjdkYzkyLndlYnAmYW1wO3c9MzImYW1wO3E9NzUgMXgsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxNTU5MDRiMzUzZjdkYzkyLndlYnAmYW1wO3c9NjQmYW1wO3E9NzUgMngiIHNyYz0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTE1NTkwNGIzNTNmN2RjOTIud2VicCZhbXA7dz02NCZhbXA7cT03NSIgd2lkdGg9IjMwIiBoZWlnaHQ9IjMwIiBkZWNvZGluZz0iYXN5bmMiIGRhdGEtbmltZz0iMSIgbG9hZGluZz0ibGF6eSIgc3R5bGU9ImNvbG9yOnRyYW5zcGFyZW50O3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHgiPjxzcGFuIGNsYXNzPSJhY3NzLTFleTVtNHUiPkRlZXBNaW5kPC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWZsZXg7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDoyMHB4Ij48ZGl2IGNsYXNzPSJhY3NzLTFhYXJrNTEiIHN0eWxlPSJ3aWR0aDoxNDVweCI+PGltZyBhbHQ9IkFtYXpvbiIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTYwMDE3MGZkMWVhMDI2NC53ZWJwJmFtcDt3PTMyJmFtcDtxPTc1IDF4LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTYwMDE3MGZkMWVhMDI2NC53ZWJwJmFtcDt3PTY0JmFtcDtxPTc1IDJ4IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxNjAwMTcwZmQxZWEwMjY0LndlYnAmYW1wO3c9NjQmYW1wO3E9NzUiIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9IjEiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJjb2xvcjp0cmFuc3BhcmVudDt3aWR0aDozMHB4O2hlaWdodDozMHB4Ij48c3BhbiBjbGFzcz0iYWNzcy0xZXk1bTR1Ij5BbWF6b248L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjIwcHgiPjxkaXYgY2xhc3M9ImFjc3MtMWFhcms1MSIgc3R5bGU9IndpZHRoOjE3NXB4Ij48aW1nIGFsdD0iV2FsbWFydCIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTYwMTQxMGE5M2JmODdlMC53ZWJwJmFtcDt3PTEyOCZhbXA7cT03NSAxeCwgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTE2MDE0MTBhOTNiZjg3ZTAud2VicCZhbXA7dz0yNTYmYW1wO3E9NzUgMngiIHNyYz0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTE2MDE0MTBhOTNiZjg3ZTAud2VicCZhbXA7dz0yNTYmYW1wO3E9NzUiIHdpZHRoPSIxMjciIGhlaWdodD0iMzAiIGRlY29kaW5nPSJhc3luYyIgZGF0YS1uaW1nPSIxIiBsb2FkaW5nPSJsYXp5IiBzdHlsZT0iY29sb3I6dHJhbnNwYXJlbnQ7d2lkdGg6MTI3cHg7aGVpZ2h0OjMwcHgiPjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWZsZXg7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDoyMHB4Ij48ZGl2IGNsYXNzPSJhY3NzLTFhYXJrNTEiIHN0eWxlPSJ3aWR0aDoxNjhweCI+PGltZyBhbHQ9IkxhemFkYSIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDE5MTYwMjI5YjBiOWM2ZTIxYi53ZWJwJmFtcDt3PTEyOCZhbXA7cT03NSAxeCwgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTE2MDIyOWIwYjljNmUyMWIud2VicCZhbXA7dz0yNTYmYW1wO3E9NzUgMngiIHNyYz0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTE2MDIyOWIwYjljNmUyMWIud2VicCZhbXA7dz0yNTYmYW1wO3E9NzUiIHdpZHRoPSIxMjAiIGhlaWdodD0iMzAiIGRlY29kaW5nPSJhc3luYyIgZGF0YS1uaW1nPSIxIiBsb2FkaW5nPSJsYXp5IiBzdHlsZT0iY29sb3I6dHJhbnNwYXJlbnQ7d2lkdGg6MTIwcHg7aGVpZ2h0OjMwcHgiPjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWZsZXg7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDoyMHB4Ij48ZGl2IGNsYXNzPSJhY3NzLTFhYXJrNTEiIHN0eWxlPSJ3aWR0aDoxMDhweCI+PGltZyBhbHQ9IkVUU1kiIHNyY3NldD0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTE2MDMxNTNjNjAwNGM5OGUud2VicCZhbXA7dz02NCZhbXA7cT03NSAxeCwgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTE2MDMxNTNjNjAwNGM5OGUud2VicCZhbXA7dz0xMjgmYW1wO3E9NzUgMngiIHNyYz0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQxOTE2MDMxNTNjNjAwNGM5OGUud2VicCZhbXA7dz0xMjgmYW1wO3E9NzUiIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMCIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9IjEiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJjb2xvcjp0cmFuc3BhcmVudDt3aWR0aDo2MHB4O2hlaWdodDozMHB4Ij48L2Rpdj48L2Rpdj48ZGl2IHN0eWxlPSJkaXNwbGF5OmlubGluZS1mbGV4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW4tcmlnaHQ6MjBweCI+PGRpdiBjbGFzcz0iYWNzcy0xYWFyazUxIiBzdHlsZT0id2lkdGg6MTIycHgiPjxpbWcgYWx0PSJFQkFZIiBzcmNzZXQ9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxNjAzNTM3OWU1YzI0MjQyLndlYnAmYW1wO3c9OTYmYW1wO3E9NzUgMXgsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxNjAzNTM3OWU1YzI0MjQyLndlYnAmYW1wO3c9MjU2JmFtcDtxPTc1IDJ4IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MTkxNjAzNTM3OWU1YzI0MjQyLndlYnAmYW1wO3c9MjU2JmFtcDtxPTc1IiB3aWR0aD0iNzQiIGhlaWdodD0iMzAiIGRlY29kaW5nPSJhc3luYyIgZGF0YS1uaW1nPSIxIiBsb2FkaW5nPSJsYXp5IiBzdHlsZT0iY29sb3I6dHJhbnNwYXJlbnQ7d2lkdGg6NzRweDtoZWlnaHQ6MzBweCI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0xa2F2dDJzIj48ZGl2IGNsYXNzPSJhY3NzLXJ5dTczbSI+PGRpdiBzdHlsZT0ib3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDUwcHgpIHNjYWxlKDAuOSkgdHJhbnNsYXRlWigwKSI+PGRpdj48aDIgY2xhc3M9ImFjc3MtMWlndGRldCI+S2V5IFNwZW5kaW5nIFVzZSBDYXNlczwvaDI+PGRpdiBjbGFzcz0iYWNzcy0xZHpkZDg4Ij5EaXNjb3ZlciBob3cgdmlydHVhbCBjYXJkcyBwb3dlciBhZHZlcnRpc2luZywgc3Vic2NyaXB0aW9ucywgYW5kIGdsb2JhbCB0cmF2ZWwgcGF5bWVudHMuPC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0yNWR5cDgiPjxkaXYgY2xhc3M9ImFjc3Mtb2pnbHhqIiBzdHlsZT0idHJhbnNmb3JtOm5vbmUiPjxpbWcgYWx0PSJjYXJkIiBzcmNzZXQ9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjMxMjE3MzJjMzNkZTgxZGU3LndlYnAmYW1wO3c9OTYmYW1wO3E9NzUgMXgsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjMxMjE3MzJjMzNkZTgxZGU3LndlYnAmYW1wO3c9MjU2JmFtcDtxPTc1IDJ4IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjMxMjE3MzJjMzNkZTgxZGU3LndlYnAmYW1wO3c9MjU2JmFtcDtxPTc1IiB3aWR0aD0iOTIiIGhlaWdodD0iNjMiIGRlY29kaW5nPSJhc3luYyIgZGF0YS1uaW1nPSIxIiBsb2FkaW5nPSJsYXp5IiBzdHlsZT0iY29sb3I6dHJhbnNwYXJlbnQ7d2lkdGg6OTJweDtoZWlnaHQ6NjNweCI+PC9kaXY+PGRpdiBjbGFzcz0iYWNzcy1ncTUydmgiPjxkaXYgY2xhc3M9ImFjc3MtbmN3eHhmIj48aW1nIGFsdD0iQWR2ZXJ0aXNpbmciIHNpemVzPSIxMDB2dyIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTExMDU0MTI1YjMzNzA0OS53ZWJwJmFtcDt3PTY0MCZhbXA7cT03NSA2NDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTExMDU0MTI1YjMzNzA0OS53ZWJwJmFtcDt3PTc1MCZhbXA7cT03NSA3NTB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTExMDU0MTI1YjMzNzA0OS53ZWJwJmFtcDt3PTgyOCZhbXA7cT03NSA4Mjh3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTExMDU0MTI1YjMzNzA0OS53ZWJwJmFtcDt3PTEwODAmYW1wO3E9NzUgMTA4MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxMTEwNTQxMjViMzM3MDQ5LndlYnAmYW1wO3c9MTIwMCZhbXA7cT03NSAxMjAwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjExMTA1NDEyNWIzMzcwNDkud2VicCZhbXA7dz0xOTIwJmFtcDtxPTc1IDE5MjB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTExMDU0MTI1YjMzNzA0OS53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUgMjA0OHciIHNyYz0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjExMTA1NDEyNWIzMzcwNDkud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IiBkZWNvZGluZz0iYXN5bmMiIGRhdGEtbmltZz0iZmlsbCIgbG9hZGluZz0ibGF6eSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bGVmdDowO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7Y29sb3I6dHJhbnNwYXJlbnQiPjwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtazYzNmp4Ij48ZGl2IGNsYXNzPSJhY3NzLXhocXkwbyI+PGRpdiBjbGFzcz0iYWNzcy0xeWM2a2hnIj5GYWNlYm9vazwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtMXljNmtoZyI+R29vZ2xlPC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0xeWM2a2hnIj5UaWtUb2sgQWRzPC9kaXY+PC9kaXY+PGgzIGNsYXNzPSJhY3NzLTM2b2VpdSI+QWR2ZXJ0aXNpbmcgUGF5bWVudHM8L2gzPjxkaXYgY2xhc3M9ImFjc3MtMWM1dm41cyI+UGF5IGZvciBGYWNlYm9vayBBZHMsIEdvb2dsZSBBZHMsIGFuZCBUaWtUb2sgQWRzIHVzaW5nIHZpcnR1YWwgY2FyZHMgd2l0aCBoaWdoZXIgYXBwcm92YWwgcmF0ZXMsIGZld2VyIHBheW1lbnQgZmFpbHVyZXMsIGFuZCBiZXR0ZXIgYnVkZ2V0IGNvbnRyb2wuPC9kaXY+PGRpdiBjbGFzcz0iYWNzcy01Mzk5OTIiPjxhIGhyZWY9Ii9zb2x1dGlvbnMvYWRzIj48c3R5bGUgZGF0YS1lbW90aW9uPSJjc3MgMXk4emJ3NyI+LmNzcy0xeTh6Ync3LmFudC1idG57Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MTtib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luOjA7ZGlzcGxheTotd2Via2l0LWlubGluZS1ib3g7ZGlzcGxheTotd2Via2l0LWlubGluZS1mbGV4O2Rpc3BsYXk6LW1zLWlubGluZS1mbGV4Ym94O2Rpc3BsYXk6aW5saW5lLWZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym9yZGVyLXJhZGl1czo0MHB4O2JveC1zaGFkb3c6MCAycHggMCByZ2JhKDUsMTQ1LDI1NSwwLjEpO2hlaWdodDo0NHB4O21pbi1oZWlnaHQ6NDRweDtwYWRkaW5nOjE0cHggMzBweDt9PC9zdHlsZT48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImFudC1idG4gY3NzLTFkZzUxNzMgYW50LWJ0bi1wcmltYXJ5IGFudC1idG4tY29sb3ItcHJpbWFyeSBhbnQtYnRuLXZhcmlhbnQtc29saWQgIGNzcy0xeTh6Ync3IGVzaDliajg0Ij48c3Bhbj5MZWFybiBtb3JlIDwvc3Bhbj48c3ZnIHZpZXdCb3g9IjAgMCAxNiAxNCIgY2xhc3M9ImFjc3MtMWtybTZ1Ij48ZyBpZD0i6aG16Z2iLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIGlkPSLnvJbnu4QiIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNMTMuNjIzOTg0Niw2LjMwMDA4ODQxIEwwLjY5NTU5ODExMiw2LjMwMDA4ODQxIEMwLjMxMTQyOTg4Myw2LjMwMDA4ODQxIDAsNi42MTM0NDk1IDAsNyBDMCw3LjM4NjU1MDUgMC4zMTE0Mjk4ODMsNy42OTk5MTE1OSAwLjY5NTU5ODExMiw3LjY5OTkxMTU5IEwxMy42MjM5ODQ2LDcuNjk5OTExNTkgTDguNTUwMjkxOTksMTIuODAzNjY2OSBDOC4yNzgzMDA4OCwxMy4wNzczNDQ2IDguMjc4MzAwODgsMTMuNTIxMDYzOSA4LjU1MDI5MTk5LDEzLjc5NDc0MTcgQzguODIyMjgzMSwxNC4wNjg0MTk0IDkuMjYzMjY3ODEsMTQuMDY4NDE5NCA5LjUzNTI1ODkyLDEzLjc5NDc0MTcgTDE1Ljc5NTY0MTksNy40OTU1Mzc0IEMxNS45MjY0NzI0LDcuMzY0MjI4MDIgMTYsNy4xODU5MzQ2OCAxNiw3IEMxNiw2LjgxNDA2NTMyIDE1LjkyNjQ3MjQsNi42MzU3NzE5OCAxNS43OTU2NDE5LDYuNTA0NDYyNiBMOS41MzUyNTg5MiwwLjIwNTI1ODMxMyBDOS4yNjMyNjc4MSwtMC4wNjg0MTk0Mzc3IDguODIyMjgzMSwtMC4wNjg0MTk0Mzc3IDguNTUwMjkxOTksMC4yMDUyNTgzMTMgQzguMjc4MzAwODgsMC40Nzg5MzYwNjQgOC4yNzgzMDA4OCwwLjkyMjY1NTM2OSA4LjU1MDI5MTk5LDEuMTk2MzMzMTIgTDEzLjYyMzk4NDYsNi4zMDAwODg0MSBaIiBpZD0i6Lev5b6EIi8+PC9nPjwvZz48L3N2Zz48L2J1dHRvbj48L2E+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iYWNzcy1ncTUydmgiPjxkaXYgY2xhc3M9ImFjc3MtbmN3eHhmIj48aW1nIGFsdD0iY2hhdGdwdCIgc2l6ZXM9IjEwMHZ3IiBzcmNzZXQ9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxMTMwMTNjNjE3ZDIzYTZmLndlYnAmYW1wO3c9NjQwJmFtcDtxPTc1IDY0MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxMTMwMTNjNjE3ZDIzYTZmLndlYnAmYW1wO3c9NzUwJmFtcDtxPTc1IDc1MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxMTMwMTNjNjE3ZDIzYTZmLndlYnAmYW1wO3c9ODI4JmFtcDtxPTc1IDgyOHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxMTMwMTNjNjE3ZDIzYTZmLndlYnAmYW1wO3c9MTA4MCZhbXA7cT03NSAxMDgwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjExMzAxM2M2MTdkMjNhNmYud2VicCZhbXA7dz0xMjAwJmFtcDtxPTc1IDEyMDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTEzMDEzYzYxN2QyM2E2Zi53ZWJwJmFtcDt3PTE5MjAmYW1wO3E9NzUgMTkyMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxMTMwMTNjNjE3ZDIzYTZmLndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSAyMDQ4dyIgc3JjPSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTEzMDEzYzYxN2QyM2E2Zi53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUiIGRlY29kaW5nPSJhc3luYyIgZGF0YS1uaW1nPSJmaWxsIiBsb2FkaW5nPSJsYXp5IiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtsZWZ0OjA7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtjb2xvcjp0cmFuc3BhcmVudCI+PC9kaXY+PGRpdiBjbGFzcz0iYWNzcy1rNjM2angiPjxkaXYgY2xhc3M9ImFjc3MteGhxeTBvIj48ZGl2IGNsYXNzPSJhY3NzLTF5YzZraGciPkNoYXRHUFQ8L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLTF5YzZraGciPiA8IS0tIC0tPk5vdGlvbjwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtMXljNmtoZyI+VGlrVG9rPC9kaXY+PC9kaXY+PGgzIGNsYXNzPSJhY3NzLTM2b2VpdSI+U3Vic2NyaXB0aW9uIFNlcnZpY2VzPC9oMz48ZGl2IGNsYXNzPSJhY3NzLTFjNXZuNXMiPlVzZSB2aXJ0dWFsIGNhcmRzIGZvciByZWN1cnJpbmcgU2FhUyBhbmQgc3Vic2NyaXB0aW9uIHBheW1lbnRzLCBpbmNsdWRpbmcgQ2hhdEdQVCBhbmQgb3RoZXIgb25saW5lIHNlcnZpY2VzLCB3aXRoIGZ1bGwgY29udHJvbCBvdmVyIGJpbGxpbmcgYW5kIHJlbmV3YWxzLjwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtNTM5OTkyIj48YSBocmVmPSIvc29sdXRpb25zL3N1YnNjcmliZSI+PHN0eWxlIGRhdGEtZW1vdGlvbj0iY3NzIDF5OHpidzciPi5jc3MtMXk4emJ3Ny5hbnQtYnRue2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjE7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtYm94O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5Oi1tcy1pbmxpbmUtZmxleGJveDtkaXNwbGF5OmlubGluZS1mbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JvcmRlci1yYWRpdXM6NDBweDtib3gtc2hhZG93OjAgMnB4IDAgcmdiYSg1LDE0NSwyNTUsMC4xKTtoZWlnaHQ6NDRweDttaW4taGVpZ2h0OjQ0cHg7cGFkZGluZzoxNHB4IDMwcHg7fTwvc3R5bGU+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJhbnQtYnRuIGNzcy0xZGc1MTczIGFudC1idG4tcHJpbWFyeSBhbnQtYnRuLWNvbG9yLXByaW1hcnkgYW50LWJ0bi12YXJpYW50LXNvbGlkIGFjc3MtMWkxNW5iaiBjc3MtMXk4emJ3NyBlc2g5Ymo4NCI+PHNwYW4+U3RhcnQgdXNpbmcgbm93PC9zcGFuPjxzdmcgdmlld0JveD0iMCAwIDE2IDE0IiBjbGFzcz0iYWNzcy0xa3JtNnUiPjxnIGlkPSLpobXpnaItMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PGcgaWQ9Iue8lue7hCIgZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjxwYXRoIGQ9Ik0xMy42MjM5ODQ2LDYuMzAwMDg4NDEgTDAuNjk1NTk4MTEyLDYuMzAwMDg4NDEgQzAuMzExNDI5ODgzLDYuMzAwMDg4NDEgMCw2LjYxMzQ0OTUgMCw3IEMwLDcuMzg2NTUwNSAwLjMxMTQyOTg4Myw3LjY5OTkxMTU5IDAuNjk1NTk4MTEyLDcuNjk5OTExNTkgTDEzLjYyMzk4NDYsNy42OTk5MTE1OSBMOC41NTAyOTE5OSwxMi44MDM2NjY5IEM4LjI3ODMwMDg4LDEzLjA3NzM0NDYgOC4yNzgzMDA4OCwxMy41MjEwNjM5IDguNTUwMjkxOTksMTMuNzk0NzQxNyBDOC44MjIyODMxLDE0LjA2ODQxOTQgOS4yNjMyNjc4MSwxNC4wNjg0MTk0IDkuNTM1MjU4OTIsMTMuNzk0NzQxNyBMMTUuNzk1NjQxOSw3LjQ5NTUzNzQgQzE1LjkyNjQ3MjQsNy4zNjQyMjgwMiAxNiw3LjE4NTkzNDY4IDE2LDcgQzE2LDYuODE0MDY1MzIgMTUuOTI2NDcyNCw2LjYzNTc3MTk4IDE1Ljc5NTY0MTksNi41MDQ0NjI2IEw5LjUzNTI1ODkyLDAuMjA1MjU4MzEzIEM5LjI2MzI2NzgxLC0wLjA2ODQxOTQzNzcgOC44MjIyODMxLC0wLjA2ODQxOTQzNzcgOC41NTAyOTE5OSwwLjIwNTI1ODMxMyBDOC4yNzgzMDA4OCwwLjQ3ODkzNjA2NCA4LjI3ODMwMDg4LDAuOTIyNjU1MzY5IDguNTUwMjkxOTksMS4xOTYzMzMxMiBMMTMuNjIzOTg0Niw2LjMwMDA4ODQxIFoiIGlkPSLot6/lvoQiLz48L2c+PC9nPjwvc3ZnPjwvYnV0dG9uPjwvYT48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLWdxNTJ2aCI+PGRpdiBjbGFzcz0iYWNzcy1uY3d4eGYiPjxpbWcgYWx0PSJ0cmF2ZWwiIHNpemVzPSIxMDB2dyIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIzMTYzMjE1MGVkZTY2MmM1Zi53ZWJwJmFtcDt3PTY0MCZhbXA7cT03NSA2NDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIzMTYzMjE1MGVkZTY2MmM1Zi53ZWJwJmFtcDt3PTc1MCZhbXA7cT03NSA3NTB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIzMTYzMjE1MGVkZTY2MmM1Zi53ZWJwJmFtcDt3PTgyOCZhbXA7cT03NSA4Mjh3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIzMTYzMjE1MGVkZTY2MmM1Zi53ZWJwJmFtcDt3PTEwODAmYW1wO3E9NzUgMTA4MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjMxNjMyMTUwZWRlNjYyYzVmLndlYnAmYW1wO3c9MTIwMCZhbXA7cT03NSAxMjAwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMzE2MzIxNTBlZGU2NjJjNWYud2VicCZhbXA7dz0xOTIwJmFtcDtxPTc1IDE5MjB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIzMTYzMjE1MGVkZTY2MmM1Zi53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUgMjA0OHciIHNyYz0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMzE2MzIxNTBlZGU2NjJjNWYud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IiBkZWNvZGluZz0iYXN5bmMiIGRhdGEtbmltZz0iZmlsbCIgbG9hZGluZz0ibGF6eSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bGVmdDowO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7Y29sb3I6dHJhbnNwYXJlbnQiPjxkaXYgY2xhc3M9ImFjc3MtNHZvbHZ6IiBzdHlsZT0idG9wOi04OHB4O3JpZ2h0OjgwcHgiPjxpbWcgYWx0PSJjaXJjbGUiIHNyY3NldD0iaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MjMxODM5MDVlZGVlNmNmODZmLnN2ZyAxeCwgaHR0cHM6Ly9vc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL2EvYV82NDJmMDgvMjAyNTA0MjMxODM5MDVlZGVlNmNmODZmLnN2ZyAyeCIgc3JjPSJodHRwczovL29zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vYS9hXzY0MmYwOC8yMDI1MDQyMzE4MzkwNWVkZWU2Y2Y4NmYuc3ZnIiB3aWR0aD0iNzYiIGhlaWdodD0iODgiIGRlY29kaW5nPSJhc3luYyIgZGF0YS1uaW1nPSIxIiBjbGFzcz0iYWNzcy0zMjB2NnMiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJjb2xvcjp0cmFuc3BhcmVudDt3aWR0aDo3NnB4O2hlaWdodDo4OHB4Ij48L2Rpdj48c3ZnIHdpZHRoPSI1NHB4IiBoZWlnaHQ9IjU0cHgiIHZpZXdCb3g9IjAgMCA1NCA1NCIgdmVyc2lvbj0iMS4xIiBjbGFzcz0iYWNzcy0xNmE4Y3YwIiBzdHlsZT0idG9wOjBweCI+PGRlZnM+PHJlY3QgaWQ9InBhdGgtZGdoa2IyZHRtci0xIiB4PSIwIiB5PSIwIiB3aWR0aD0iMzAiIGhlaWdodD0iMzAiLz48L2RlZnM+PGcgaWQ9Iumhtemdoi0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48ZyBpZD0i6aOe5py6Ij48cmVjdCBpZD0i55+p5b2iIiBmaWxsPSIjRkZGRkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iIHg9IjAiIHk9IjAiIHdpZHRoPSI1NCIgaGVpZ2h0PSI1NCIgcng9IjIwIi8+PHJlY3QgaWQ9IuefqeW9oiIgc3Ryb2tlPSIjRTBFMkVBIiB4PSIwLjUiIHk9IjAuNSIgd2lkdGg9IjUzIiBoZWlnaHQ9IjUzIiByeD0iMTkuNSIvPjxnIGlkPSJDbGlwcGVkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMiwgMTIpIj48bWFzayBpZD0ibWFzay1kZ2hrYjJkdG1yLTIiIGZpbGw9IndoaXRlIj48dXNlIHhsaW5rOmhyZWY9IiNwYXRoLWRnaGtiMnNkc2ZzYWRkdG1yLTEiLz48L21hc2s+PGcgaWQ9IuefqeW9oiIvPjxnIGlkPSLnvJbnu4QiIG1hc2s9InVybCgjbWFzay1kZ2hrYjJzZHNmc2FkZHRtci0yKSIgZmlsbD0iIzIxMkI1NSIgZmlsbC1ydWxlPSJub256ZXJvIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNS41LCAxNC4wMDAxKSByb3RhdGUoLTY2Ljg2MDQpIHRyYW5zbGF0ZSgtMTUuNSwgLTE0LjAwMDEpdHJhbnNsYXRlKDMuNSwgMS41MDAxKSIgaWQ9Iui3r+W+hCI+PHBhdGggZD0iTTEzLjg5NDcwMDMsOC42ODM3NTAxOSBMMjQsMTUgTDI0LDE3LjUgTDEzLjg5NDcwMDMsMTQuMzQyNTAwMyBMMTMuODk0NzAwMywyMS4wNDI1MDA1IEwxNy42ODQyMDA0LDIzLjEyNTAwMDUgTDE3LjY4NDIwMDQsMjUgTDEyLDIzLjc1MDAwMDUgTDYuMzE1NzkwMTQsMjUgTDYuMzE1NzkwMTQsMjMuMTI1MDAwNSBMMTAuMTA1MzAwMiwyMS4wNDEzMDA1IEwxMC4xMDUzMDAyLDE0LjM0MTMwMDMgTDAsMTcuNSBMMCwxNSBMMTAuMTA1MzAwMiw4LjY4Mzc1MDE5IEwxMC4xMDUzMDAyLDEuODc1MDAwMDQgQzEwLjEwNTMwMDIsMC44Mzk0NjYwMTggMTAuOTUzNjAwMiwwIDEyLDAgQzEzLjA0NjQwMDMsMCAxMy44OTQ3MDAzLDAuODM5NDY2MDE4IDEzLjg5NDcwMDMsMS44NzUwMDAwNCBMMTMuODk0NzAwMyw4LjY4Mzc1MDE5IFoiLz48L2c+PC9nPjwvZz48L2c+PC9nPjwvc3ZnPjwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtazYzNmp4Ij48ZGl2IGNsYXNzPSJhY3NzLXhocXkwbyI+PGRpdiBjbGFzcz0iYWNzcy0xeWM2a2hnIj5BaXJibmI8L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLTF5YzZraGciPkZsaWdodCB0aWNrZXRzPC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0xeWM2a2hnIj5Ib3RlbCByZXNlcnZhdGlvbnM8L2Rpdj48L2Rpdj48aDMgY2xhc3M9ImFjc3MtMzZvZWl1Ij5UcmF2ZWwgYW5kIFRvdXJpc208L2gzPjxkaXYgY2xhc3M9ImFjc3MtMWM1dm41cyI+UGF5IGZvciBmbGlnaHRzLCBob3RlbHMsIGFuZCBhY2NvbW1vZGF0aW9uIHBsYXRmb3JtcyBsaWtlIEFpcmJuYiB1c2luZyB2aXJ0dWFsIGNhcmRzLCB3aXRoIGdsb2JhbCBhY2NlcHRhbmNlIGFuZCBzZWN1cmUgb25saW5lIHBheW1lbnRzLjwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtNTM5OTkyIj48YSBocmVmPSIvc29sdXRpb25zL3RyYXZlbCI+PHN0eWxlIGRhdGEtZW1vdGlvbj0iY3NzIDF5OHpidzciPi5jc3MtMXk4emJ3Ny5hbnQtYnRue2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjE7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtYm94O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5Oi1tcy1pbmxpbmUtZmxleGJveDtkaXNwbGF5OmlubGluZS1mbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JvcmRlci1yYWRpdXM6NDBweDtib3gtc2hhZG93OjAgMnB4IDAgcmdiYSg1LDE0NSwyNTUsMC4xKTtoZWlnaHQ6NDRweDttaW4taGVpZ2h0OjQ0cHg7cGFkZGluZzoxNHB4IDMwcHg7fTwvc3R5bGU+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJhbnQtYnRuIGNzcy0xZGc1MTczIGFudC1idG4tcHJpbWFyeSBhbnQtYnRuLWNvbG9yLXByaW1hcnkgYW50LWJ0bi12YXJpYW50LXNvbGlkIGFjc3MtMWkxNW5iaiBjc3MtMXk4emJ3NyBlc2g5Ymo4NCI+PHNwYW4+RXhwbG9yZSB1c2UgY2FzZXM8L3NwYW4+PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTQiIGNsYXNzPSJhY3NzLTFrcm02dSI+PGcgaWQ9Iumhtemdoi0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48ZyBpZD0i57yW57uEIiBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTEzLjYyMzk4NDYsNi4zMDAwODg0MSBMMC42OTU1OTgxMTIsNi4zMDAwODg0MSBDMC4zMTE0Mjk4ODMsNi4zMDAwODg0MSAwLDYuNjEzNDQ5NSAwLDcgQzAsNy4zODY1NTA1IDAuMzExNDI5ODgzLDcuNjk5OTExNTkgMC42OTU1OTgxMTIsNy42OTk5MTE1OSBMMTMuNjIzOTg0Niw3LjY5OTkxMTU5IEw4LjU1MDI5MTk5LDEyLjgwMzY2NjkgQzguMjc4MzAwODgsMTMuMDc3MzQ0NiA4LjI3ODMwMDg4LDEzLjUyMTA2MzkgOC41NTAyOTE5OSwxMy43OTQ3NDE3IEM4LjgyMjI4MzEsMTQuMDY4NDE5NCA5LjI2MzI2NzgxLDE0LjA2ODQxOTQgOS41MzUyNTg5MiwxMy43OTQ3NDE3IEwxNS43OTU2NDE5LDcuNDk1NTM3NCBDMTUuOTI2NDcyNCw3LjM2NDIyODAyIDE2LDcuMTg1OTM0NjggMTYsNyBDMTYsNi44MTQwNjUzMiAxNS45MjY0NzI0LDYuNjM1NzcxOTggMTUuNzk1NjQxOSw2LjUwNDQ2MjYgTDkuNTM1MjU4OTIsMC4yMDUyNTgzMTMgQzkuMjYzMjY3ODEsLTAuMDY4NDE5NDM3NyA4LjgyMjI4MzEsLTAuMDY4NDE5NDM3NyA4LjU1MDI5MTk5LDAuMjA1MjU4MzEzIEM4LjI3ODMwMDg4LDAuNDc4OTM2MDY0IDguMjc4MzAwODgsMC45MjI2NTUzNjkgOC41NTAyOTE5OSwxLjE5NjMzMzEyIEwxMy42MjM5ODQ2LDYuMzAwMDg4NDEgWiIgaWQ9Iui3r+W+hCIvPjwvZz48L2c+PC9zdmc+PC9idXR0b24+PC9hPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0xNWFqMnJqIj48ZGl2IGNsYXNzPSJhY3NzLXJ5dTczbSI+PGRpdiBzdHlsZT0ib3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDUwcHgpIHNjYWxlKDAuOSkgdHJhbnNsYXRlWigwKSI+PGRpdj48aDIgY2xhc3M9ImFjc3MtMWlndGRldCI+VGVhbSBNYW5hZ2VtZW50ICZhbXA7IEFQSSBTdXBwb3J0PC9oMj48ZGl2IGNsYXNzPSJhY3NzLXI1NWc0dCI+PGRpdiBjbGFzcz0iYWNzcy1hNmNuYWwiPjxkaXYgY2xhc3M9ImFjc3MtbmppZW16Ij48ZGl2IGNsYXNzPSJhY3NzLTV4dG80YyI+MDE8L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLWEwNzRlcyI+U3ViLWFjY291bnQgbWFuYWdlbWVudDwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtYThtajE1Ij5DcmVhdGUgYW5kIG1hbmFnZSBtdWx0aXBsZSBzdWItYWNjb3VudHMgZm9yIHRlYW1zLCB3aXRoIGZsZXhpYmxlIHBlcm1pc3Npb24gYXNzaWdubWVudC48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLW1pajY0YSI+PGRpdiBjbGFzcz0iYWNzcy01eHRvNGMiPjAyPC9kaXY+PGRpdiBjbGFzcz0iYWNzcy1hMDc0ZXMiPlJvbGUtQmFzZWQgQWNjZXNzIENvbnRyb2w8L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLWE4bWoxNSI+RmluZS1ncmFpbmVkIHBlcm1pc3Npb24gY29udHJvbHMgdG8gZW5zdXJlIHNlY3VyZSBhbmQgY29tcGxpYW50IHRlYW0gb3BlcmF0aW9ucy48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLW1pajY0YSI+PGRpdiBjbGFzcz0iYWNzcy01eHRvNGMiPjAzPC9kaXY+PGRpdiBjbGFzcz0iYWNzcy1hMDc0ZXMiPkFQSSBTdXBwb3J0IGZvciBBdXRvbWF0ZWQgV29ya2Zsb3dzPC9kaXY+PGRpdiBjbGFzcz0iYWNzcy1hOG1qMTUiPkludGVncmF0ZSB2aXJ0dWFsIGNhcmQgaXNzdWFuY2UsIHBheW1lbnRzLCBhbmQgYWNjb3VudCBtYW5hZ2VtZW50IGludG8geW91ciBzeXN0ZW1zIHdpdGggZmxleGlibGUgQVBJcy48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLXU5dWlqZiI+PGltZyBhbHQ9InN1YiBhY2NvdW50IiBzaXplcz0iMTAwdnciIHNyY3NldD0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE1MzAzM2E4NGYyODg1ZDEud2VicCZhbXA7dz02NDAmYW1wO3E9NzUgNjQwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE1MzAzM2E4NGYyODg1ZDEud2VicCZhbXA7dz03NTAmYW1wO3E9NzUgNzUwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE1MzAzM2E4NGYyODg1ZDEud2VicCZhbXA7dz04MjgmYW1wO3E9NzUgODI4dywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE1MzAzM2E4NGYyODg1ZDEud2VicCZhbXA7dz0xMDgwJmFtcDtxPTc1IDEwODB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTUzMDMzYTg0ZjI4ODVkMS53ZWJwJmFtcDt3PTEyMDAmYW1wO3E9NzUgMTIwMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxNTMwMzNhODRmMjg4NWQxLndlYnAmYW1wO3c9MTkyMCZhbXA7cT03NSAxOTIwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE1MzAzM2E4NGYyODg1ZDEud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IDIwNDh3IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxNTMwMzNhODRmMjg4NWQxLndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9ImZpbGwiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2NvbG9yOnRyYW5zcGFyZW50Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLTF4Mzl0eWwiPjxzdHlsZSBkYXRhLWVtb3Rpb249ImNzcyAxeTh6Ync3Ij4uY3NzLTF5OHpidzcuYW50LWJ0bntmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxO2JveC1zaXppbmc6Ym9yZGVyLWJveDttYXJnaW46MDtkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWJveDtkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWZsZXg7ZGlzcGxheTotbXMtaW5saW5lLWZsZXhib3g7ZGlzcGxheTppbmxpbmUtZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXItcmFkaXVzOjQwcHg7Ym94LXNoYWRvdzowIDJweCAwIHJnYmEoNSwxNDUsMjU1LDAuMSk7aGVpZ2h0OjQ0cHg7bWluLWhlaWdodDo0NHB4O3BhZGRpbmc6MTRweCAzMHB4O308L3N0eWxlPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYW50LWJ0biBjc3MtMWRnNTE3MyBhbnQtYnRuLXByaW1hcnkgYW50LWJ0bi1jb2xvci1wcmltYXJ5IGFudC1idG4tdmFyaWFudC1zb2xpZCBhY3NzLTRwcmFkeSBjc3MtMXk4emJ3NyBlc2g5Ymo4NCI+PHNwYW4+Q29udGFjdCBTYWxlcyA8L3NwYW4+PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTQiIGNsYXNzPSJhY3NzLTFrcm02dSI+PGcgaWQ9Iumhtemdoi0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48ZyBpZD0i57yW57uEIiBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTEzLjYyMzk4NDYsNi4zMDAwODg0MSBMMC42OTU1OTgxMTIsNi4zMDAwODg0MSBDMC4zMTE0Mjk4ODMsNi4zMDAwODg0MSAwLDYuNjEzNDQ5NSAwLDcgQzAsNy4zODY1NTA1IDAuMzExNDI5ODgzLDcuNjk5OTExNTkgMC42OTU1OTgxMTIsNy42OTk5MTE1OSBMMTMuNjIzOTg0Niw3LjY5OTkxMTU5IEw4LjU1MDI5MTk5LDEyLjgwMzY2NjkgQzguMjc4MzAwODgsMTMuMDc3MzQ0NiA4LjI3ODMwMDg4LDEzLjUyMTA2MzkgOC41NTAyOTE5OSwxMy43OTQ3NDE3IEM4LjgyMjI4MzEsMTQuMDY4NDE5NCA5LjI2MzI2NzgxLDE0LjA2ODQxOTQgOS41MzUyNTg5MiwxMy43OTQ3NDE3IEwxNS43OTU2NDE5LDcuNDk1NTM3NCBDMTUuOTI2NDcyNCw3LjM2NDIyODAyIDE2LDcuMTg1OTM0NjggMTYsNyBDMTYsNi44MTQwNjUzMiAxNS45MjY0NzI0LDYuNjM1NzcxOTggMTUuNzk1NjQxOSw2LjUwNDQ2MjYgTDkuNTM1MjU4OTIsMC4yMDUyNTgzMTMgQzkuMjYzMjY3ODEsLTAuMDY4NDE5NDM3NyA4LjgyMjI4MzEsLTAuMDY4NDE5NDM3NyA4LjU1MDI5MTk5LDAuMjA1MjU4MzEzIEM4LjI3ODMwMDg4LDAuNDc4OTM2MDY0IDguMjc4MzAwODgsMC45MjI2NTUzNjkgOC41NTAyOTE5OSwxLjE5NjMzMzEyIEwxMy42MjM5ODQ2LDYuMzAwMDg4NDEgWiIgaWQ9Iui3r+W+hCIvPjwvZz48L2c+PC9zdmc+PC9idXR0b24+PHN0eWxlIGRhdGEtZW1vdGlvbj0iY3NzIDF5OHpidzciPi5jc3MtMXk4emJ3Ny5hbnQtYnRue2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjE7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtYm94O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5Oi1tcy1pbmxpbmUtZmxleGJveDtkaXNwbGF5OmlubGluZS1mbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JvcmRlci1yYWRpdXM6NDBweDtib3gtc2hhZG93OjAgMnB4IDAgcmdiYSg1LDE0NSwyNTUsMC4xKTtoZWlnaHQ6NDRweDttaW4taGVpZ2h0OjQ0cHg7cGFkZGluZzoxNHB4IDMwcHg7fTwvc3R5bGU+PGEgaHJlZj0iL2RldmVsb3BlciIgY2xhc3M9ImFudC1idG4gY3NzLTFkZzUxNzMgYW50LWJ0bi1wcmltYXJ5IGFudC1idG4tY29sb3ItcHJpbWFyeSBhbnQtYnRuLXZhcmlhbnQtc29saWQgYWNzcy0xZDUxa3ExIGNzcy0xeTh6Ync3IGVzaDliajg0IiB0YWJpbmRleD0iMCI+PHNwYW4+VmlldyBBUEkgRG9jdW1lbnRhdGlvbiA8L3NwYW4+PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTQiIGNsYXNzPSJhY3NzLTFrcm02dSI+PGcgaWQ9Iumhtemdoi0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48ZyBpZD0i57yW57uEIiBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZD0iTTEzLjYyMzk4NDYsNi4zMDAwODg0MSBMMC42OTU1OTgxMTIsNi4zMDAwODg0MSBDMC4zMTE0Mjk4ODMsNi4zMDAwODg0MSAwLDYuNjEzNDQ5NSAwLDcgQzAsNy4zODY1NTA1IDAuMzExNDI5ODgzLDcuNjk5OTExNTkgMC42OTU1OTgxMTIsNy42OTk5MTE1OSBMMTMuNjIzOTg0Niw3LjY5OTkxMTU5IEw4LjU1MDI5MTk5LDEyLjgwMzY2NjkgQzguMjc4MzAwODgsMTMuMDc3MzQ0NiA4LjI3ODMwMDg4LDEzLjUyMTA2MzkgOC41NTAyOTE5OSwxMy43OTQ3NDE3IEM4LjgyMjI4MzEsMTQuMDY4NDE5NCA5LjI2MzI2NzgxLDE0LjA2ODQxOTQgOS41MzUyNTg5MiwxMy43OTQ3NDE3IEwxNS43OTU2NDE5LDcuNDk1NTM3NCBDMTUuOTI2NDcyNCw3LjM2NDIyODAyIDE2LDcuMTg1OTM0NjggMTYsNyBDMTYsNi44MTQwNjUzMiAxNS45MjY0NzI0LDYuNjM1NzcxOTggMTUuNzk1NjQxOSw2LjUwNDQ2MjYgTDkuNTM1MjU4OTIsMC4yMDUyNTgzMTMgQzkuMjYzMjY3ODEsLTAuMDY4NDE5NDM3NyA4LjgyMjI4MzEsLTAuMDY4NDE5NDM3NyA4LjU1MDI5MTk5LDAuMjA1MjU4MzEzIEM4LjI3ODMwMDg4LDAuNDc4OTM2MDY0IDguMjc4MzAwODgsMC45MjI2NTUzNjkgOC41NTAyOTE5OSwxLjE5NjMzMzEyIEwxMy42MjM5ODQ2LDYuMzAwMDg4NDEgWiIgaWQ9Iui3r+W+hCIvPjwvZz48L2c+PC9zdmc+PC9hPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtMWthdnQycyI+PGRpdiBjbGFzcz0iYWNzcy1yeXU3M20iPjxkaXYgc3R5bGU9Im9wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg1MHB4KSBzY2FsZSgwLjkpIHRyYW5zbGF0ZVooMCkiPjxkaXY+PGRpdiBjbGFzcz0iYWNzcy0xbGJoMmk3Ij48ZGl2IGNsYXNzPSJhY3NzLXg4a3h6NCI+PGgyIGNsYXNzPSJhY3NzLTE3OGVrb2YiPldoeSBjaG9vc2UgQnV2ZWk/PC9oMj48ZGl2IGNsYXNzPSJhY3NzLWYzZTc3OCI+QnV2ZWkgaGVscHMgYnVzaW5lc3NlcyBtYW5hZ2UgdmlydHVhbCBjYXJkIHBheW1lbnRzLCBwYXlvdXRzLCBhbmQgdGVhbSBzcGVuZGluZyBnbG9iYWxseSwgd2l0aCBoaWdoIGFwcHJvdmFsIHJhdGVzLCBzdHJvbmcgY29tcGxpYW5jZSwgYW5kIGVudGVycHJpc2UtZ3JhZGUgc2VjdXJpdHkuPC9kaXY+PHAgY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+PC9wPjxkaXYgY2xhc3M9ImFjc3MtNTM5OTkyIj48c3R5bGUgZGF0YS1lbW90aW9uPSJjc3MgMXk4emJ3NyI+LmNzcy0xeTh6Ync3LmFudC1idG57Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MTtib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luOjA7ZGlzcGxheTotd2Via2l0LWlubGluZS1ib3g7ZGlzcGxheTotd2Via2l0LWlubGluZS1mbGV4O2Rpc3BsYXk6LW1zLWlubGluZS1mbGV4Ym94O2Rpc3BsYXk6aW5saW5lLWZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym9yZGVyLXJhZGl1czo0MHB4O2JveC1zaGFkb3c6MCAycHggMCByZ2JhKDUsMTQ1LDI1NSwwLjEpO2hlaWdodDo0NHB4O21pbi1oZWlnaHQ6NDRweDtwYWRkaW5nOjE0cHggMzBweDt9PC9zdHlsZT48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImFudC1idG4gY3NzLTFkZzUxNzMgYW50LWJ0bi1wcmltYXJ5IGFudC1idG4tY29sb3ItcHJpbWFyeSBhbnQtYnRuLXZhcmlhbnQtc29saWQgY3NzLTF5OHpidzcgZXNoOWJqODQiPjxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBjbGFzcz0iYWNzcy1uYTV4a2ciPjxkZWZzPjxyZWN0IGlkPSJwYXRoLXBidTFfaDdlMGItMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIi8+PC9kZWZzPjxnIGlkPSLpobXpnaItMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PGcgaWQ9IkNvbnRhY3QtVXMtKDEpIj48bWFzayBpZD0ibWFzay1wYnUxX2g3ZTBiLTIiIGZpbGw9IndoaXRlIj48dXNlIHhsaW5rOmhyZWY9IiNwYXRoLXBidTFfaDdlMGItMSIvPjwvbWFzaz48ZyBpZD0i55+p5b2iIi8+PHBhdGggZD0iTTYuMDc1ODM2NDksMTcuMzUzNjkyMiBMMS42NjY2NTY0MiwxOC4zMzM3MDEgTDIuNjQ2NjY1NDksMTMuOTI0NDkyMiBDMi4wMDEyNzQ0OSwxMi43MTcyOTIyIDEuNjY0NjAzNjEsMTEuMzY5MTkyMiAxLjY2NjY1NjQyLDEwLjAwMDMyMjIgQzEuNjY2NjU2NDIsNS4zOTc4MjIxOSA1LjM5NzQ5NjQ5LDEuNjY2OTkyMTkgOS45OTk5OTY0OSwxLjY2Njk5MjE5IEMxNC42MDI0NTY1LDEuNjY2OTkyMTkgMTguMzMzMzU2NSw1LjM5NzgyMjE5IDE4LjMzMzM1NjUsMTAuMDAwMzIyMiBDMTguMzMzMzU2NSwxNC42MDI3OTIyIDE0LjYwMjQ1NjUsMTguMzMzNzAxIDkuOTk5OTk2NDksMTguMzMzNzAxIEM4LjYzMTEyNjQ5LDE4LjMzNTY5MjIgNy4yODMwMTY0OSwxNy45OTkwOTIyIDYuMDc1ODM2NDksMTcuMzUzNjkyMiBaIE02LjMxNzQ5NjQ5LDE1LjU5Mjc5MjIgTDYuODYxNjY2NDksMTUuODg0NDkyMiBDNy44MjcxMjY0OSwxNi40MDAzOTIyIDguOTA1MzI2NDksMTYuNjY5MjkyMiA5Ljk5OTk5NjQ5LDE2LjY2NzAwNjggQzEzLjY4MTg1NjUsMTYuNjY3MDA2OCAxNi42NjY2NTY1LDEzLjY4MjE5MjIgMTYuNjY2NjU2NSwxMC4wMDAzMjIyIEMxNi42NjY2NTY1LDYuMzE4NDMyMTkgMTMuNjgxODU2NSwzLjMzMzY2MjE5IDkuOTk5OTk2NDksMy4zMzM2NjIxOSBDNi4zMTgwOTY0OSwzLjMzMzY2MjE5IDMuMzMzMzM2NDksNi4zMTg0MzIxOSAzLjMzMzMzNjQ5LDEwLjAwMDMyMjIgQzMuMzMzMzM2NDksMTEuMTEyODMyMiAzLjYwNDE2NjQ5LDEyLjE4MTE5MjIgNC4xMTY2NjY0OSwxMy4xMzg2OTIyIEw0LjQwNzQ5NjQ5LDEzLjY4Mjc5MjIgTDMuODYxNjY2NDksMTYuMTM4NjkyMiBMNi4zMTc0OTY0OSwxNS41OTI3OTIyIFogTTUuODMzMzM2NDksMTAuMDAwMzIyMiBMNy40OTk5OTY0OSwxMC4wMDAzMjIyIEM3LjQ5OTk5NjQ5LDExLjM4MTA0MjIgOC42MTkyODY0OSwxMi41MDAyOTIyIDkuOTk5OTk2NDksMTIuNTAwMjkyMiBDMTEuMzgwNzE2NSwxMi41MDAyOTIyIDEyLjQ5OTk1NjUsMTEuMzgxMDQyMiAxMi40OTk5NTY1LDEwLjAwMDMyMjIgTDE0LjE2NjY1NjUsMTAuMDAwMzIyMiBDMTQuMTY1ODU2NSwxMi4zMDA5OTIyIDEyLjMwMDY1NjUsMTQuMTY1NTkyMiA5Ljk5OTk5NjQ5LDE0LjE2NTU5MjIgQzcuNjk5Mzc2NDksMTQuMTY1NTkyMiA1LjgzNDEyNjQ5LDEyLjMwMDk5MjIgNS44MzMzMzY0OSwxMC4wMDAzMjIyIFoiIGlkPSLlvaLnirYiIGZpbGw9IiNGRkZGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIgbWFzaz0idXJsKCNtYXNrLXBidTFfaDdlMGItMikiLz48L2c+PC9nPjwvc3ZnPjxzcGFuPiBDb250YWN0IFVzPC9zcGFuPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtMW11d3hsOSI+PGRpdiBjbGFzcz0iYWNzcy0xamh3NWFhIj48aW1nIGFsdD0iYnV2ZWkgY2FyZCIgc2l6ZXM9IjEwMHZ3IiBzcmNzZXQ9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxNjA2MDJjODgyYjkzNDg5LndlYnAmYW1wO3c9NjQwJmFtcDtxPTc1IDY0MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxNjA2MDJjODgyYjkzNDg5LndlYnAmYW1wO3c9NzUwJmFtcDtxPTc1IDc1MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxNjA2MDJjODgyYjkzNDg5LndlYnAmYW1wO3c9ODI4JmFtcDtxPTc1IDgyOHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxNjA2MDJjODgyYjkzNDg5LndlYnAmYW1wO3c9MTA4MCZhbXA7cT03NSAxMDgwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE2MDYwMmM4ODJiOTM0ODkud2VicCZhbXA7dz0xMjAwJmFtcDtxPTc1IDEyMDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTYwNjAyYzg4MmI5MzQ4OS53ZWJwJmFtcDt3PTE5MjAmYW1wO3E9NzUgMTkyMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxNjA2MDJjODgyYjkzNDg5LndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSAyMDQ4dyIgc3JjPSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTYwNjAyYzg4MmI5MzQ4OS53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUiIGRlY29kaW5nPSJhc3luYyIgZGF0YS1uaW1nPSJmaWxsIiBsb2FkaW5nPSJsYXp5IiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtsZWZ0OjA7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtjb2xvcjp0cmFuc3BhcmVudCI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdj48ZGl2IGNsYXNzPSJhY3NzLTFiNWl4N2oiPjxkaXYgY2xhc3M9ImFjc3MtMWhmMzJlbiIgc3R5bGU9Im9wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg1MHB4KSB0cmFuc2xhdGVaKDApIj48ZGl2PjxkaXYgY2xhc3M9ImFjc3MtMWR3YmN0ZCI+PGRpdiBjbGFzcz0iYWNzcy0xeWcwcG0xIj4yMjArPC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0xYnR6MG14Ij5TdXBwb3J0ZWQgY291bnRyaWVzIGFuZCByZWdpb25zLCBlbmFibGluZyBnbG9iYWwgdmlydHVhbCBjYXJkIHBheW1lbnRzIGZvciBpbnRlcm5hdGlvbmFsIGJ1c2luZXNzZXMuPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0yNTNraDYiPjxkaXYgY2xhc3M9ImFjc3MtdzFweGI4Ij48aW1nIGFsdD0iZ2xvYmFsIiBzaXplcz0iMTAwdnciIHNyY3NldD0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE2MjAzMmJkZWMxMDg1MDEud2VicCZhbXA7dz02NDAmYW1wO3E9NzUgNjQwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE2MjAzMmJkZWMxMDg1MDEud2VicCZhbXA7dz03NTAmYW1wO3E9NzUgNzUwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE2MjAzMmJkZWMxMDg1MDEud2VicCZhbXA7dz04MjgmYW1wO3E9NzUgODI4dywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE2MjAzMmJkZWMxMDg1MDEud2VicCZhbXA7dz0xMDgwJmFtcDtxPTc1IDEwODB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTYyMDMyYmRlYzEwODUwMS53ZWJwJmFtcDt3PTEyMDAmYW1wO3E9NzUgMTIwMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxNjIwMzJiZGVjMTA4NTAxLndlYnAmYW1wO3c9MTkyMCZhbXA7cT03NSAxOTIwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE2MjAzMmJkZWMxMDg1MDEud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IDIwNDh3IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxNjIwMzJiZGVjMTA4NTAxLndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9ImZpbGwiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2NvbG9yOnRyYW5zcGFyZW50Ij48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLTFoZjMyZW4iIHN0eWxlPSJvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNTBweCkgdHJhbnNsYXRlWigwKSI+PGRpdj48ZGl2IGNsYXNzPSJhY3NzLTFkd2JjdGQiPjxkaXYgY2xhc3M9ImFjc3MtMXlnMHBtMSI+OTglPC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0xYnR6MG14Ij5IaWdoIGFwcHJvdmFsIHJhdGUgd2l0aCBsb3cgZnJpY3Rpb24sIHBvd2VyZWQgYnkgYW4gaW50ZWxsaWdlbnQgcmlzayBlbmdpbmUgdGhhdCByZWR1Y2VzIGRlY2xpbmVzIGFuZCB0cmFuc2FjdGlvbiBmYWlsdXJlcy48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLTI1M2toNiI+PGRpdiBjbGFzcz0iYWNzcy13MXB4YjgiPjxpbWcgYWx0PSJnbG9iYWwiIHNpemVzPSIxMDB2dyIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTYyMzQ2NDU4NTdkZmNmMi53ZWJwJmFtcDt3PTY0MCZhbXA7cT03NSA2NDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTYyMzQ2NDU4NTdkZmNmMi53ZWJwJmFtcDt3PTc1MCZhbXA7cT03NSA3NTB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTYyMzQ2NDU4NTdkZmNmMi53ZWJwJmFtcDt3PTgyOCZhbXA7cT03NSA4Mjh3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTYyMzQ2NDU4NTdkZmNmMi53ZWJwJmFtcDt3PTEwODAmYW1wO3E9NzUgMTA4MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxNjIzNDY0NTg1N2RmY2YyLndlYnAmYW1wO3c9MTIwMCZhbXA7cT03NSAxMjAwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE2MjM0NjQ1ODU3ZGZjZjIud2VicCZhbXA7dz0xOTIwJmFtcDtxPTc1IDE5MjB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTYyMzQ2NDU4NTdkZmNmMi53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUgMjA0OHciIHNyYz0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE2MjM0NjQ1ODU3ZGZjZjIud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IiBkZWNvZGluZz0iYXN5bmMiIGRhdGEtbmltZz0iZmlsbCIgbG9hZGluZz0ibGF6eSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bGVmdDowO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7Y29sb3I6dHJhbnNwYXJlbnQiPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtMWhmMzJlbiIgc3R5bGU9Im9wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg1MHB4KSB0cmFuc2xhdGVaKDApIj48ZGl2PjxkaXYgY2xhc3M9ImFjc3MtMWR3YmN0ZCI+PGRpdiBjbGFzcz0iYWNzcy0xeWcwcG0xIj4xMCwwMDArPC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0xYnR6MG14Ij5TdGFibGUgbW9udGhseSB0cmFuc2FjdGlvbiB2b2x1bWUgcHJvY2Vzc2VkLCB3aXRoIGZsZXhpYmxlIEFQSXMgZm9yIHNlYW1sZXNzIGludGVncmF0aW9uIGludG8gZXhpc3Rpbmcgc3lzdGVtcy48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLTI1M2toNiI+PGRpdiBjbGFzcz0iYWNzcy13MXB4YjgiPjxpbWcgYWx0PSJnbG9iYWwiIHNpemVzPSIxMDB2dyIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTYyNDI5YjQxNWRmOTU3OS53ZWJwJmFtcDt3PTY0MCZhbXA7cT03NSA2NDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTYyNDI5YjQxNWRmOTU3OS53ZWJwJmFtcDt3PTc1MCZhbXA7cT03NSA3NTB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTYyNDI5YjQxNWRmOTU3OS53ZWJwJmFtcDt3PTgyOCZhbXA7cT03NSA4Mjh3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTYyNDI5YjQxNWRmOTU3OS53ZWJwJmFtcDt3PTEwODAmYW1wO3E9NzUgMTA4MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxNjI0MjliNDE1ZGY5NTc5LndlYnAmYW1wO3c9MTIwMCZhbXA7cT03NSAxMjAwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE2MjQyOWI0MTVkZjk1Nzkud2VicCZhbXA7dz0xOTIwJmFtcDtxPTc1IDE5MjB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTYyNDI5YjQxNWRmOTU3OS53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUgMjA0OHciIHNyYz0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE2MjQyOWI0MTVkZjk1Nzkud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IiBkZWNvZGluZz0iYXN5bmMiIGRhdGEtbmltZz0iZmlsbCIgbG9hZGluZz0ibGF6eSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bGVmdDowO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7Y29sb3I6dHJhbnNwYXJlbnQiPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtMWhmMzJlbiIgc3R5bGU9Im9wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg1MHB4KSB0cmFuc2xhdGVaKDApIj48ZGl2PjxkaXYgY2xhc3M9ImFjc3MtMWR3YmN0ZCI+PGRpdiBjbGFzcz0iYWNzcy0xeWcwcG0xIj41MCslPC9kaXY+PGRpdiBjbGFzcz0iYWNzcy0xYnR6MG14Ij5FbnRlcnByaXNlcyByZWR1Y2UgY3Jvc3MtYm9yZGVyIHBheW1lbnQgY29zdHMsIGltcHJvdmluZyBlZmZpY2llbmN5IGFuZCBvcGVyYXRpb25hbCBwZXJmb3JtYW5jZS48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLTI1M2toNiI+PGRpdiBjbGFzcz0iYWNzcy13MXB4YjgiPjxpbWcgYWx0PSJnbG9iYWwiIHNpemVzPSIxMDB2dyIgc3Jjc2V0PSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTYyNTI5MDdkMGRmNzlkMi53ZWJwJmFtcDt3PTY0MCZhbXA7cT03NSA2NDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTYyNTI5MDdkMGRmNzlkMi53ZWJwJmFtcDt3PTc1MCZhbXA7cT03NSA3NTB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTYyNTI5MDdkMGRmNzlkMi53ZWJwJmFtcDt3PTgyOCZhbXA7cT03NSA4Mjh3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTYyNTI5MDdkMGRmNzlkMi53ZWJwJmFtcDt3PTEwODAmYW1wO3E9NzUgMTA4MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxNjI1MjkwN2QwZGY3OWQyLndlYnAmYW1wO3c9MTIwMCZhbXA7cT03NSAxMjAwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE2MjUyOTA3ZDBkZjc5ZDIud2VicCZhbXA7dz0xOTIwJmFtcDtxPTc1IDE5MjB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTYyNTI5MDdkMGRmNzlkMi53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUgMjA0OHciIHNyYz0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE2MjUyOTA3ZDBkZjc5ZDIud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IiBkZWNvZGluZz0iYXN5bmMiIGRhdGEtbmltZz0iZmlsbCIgbG9hZGluZz0ibGF6eSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bGVmdDowO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7Y29sb3I6dHJhbnNwYXJlbnQiPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvbWFpbj48Zm9vdGVyIGNsYXNzPSJhY3NzLTFyMGVmOHUiPjxpbWcgYWx0PSJiZyIgc2l6ZXM9IjEwMHZ3IiBzcmNzZXQ9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA5MDExNjU4MzEyMTgyY2I4YzJjLndlYnAmYW1wO3c9NjQwJmFtcDtxPTc1IDY0MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA5MDExNjU4MzEyMTgyY2I4YzJjLndlYnAmYW1wO3c9NzUwJmFtcDtxPTc1IDc1MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA5MDExNjU4MzEyMTgyY2I4YzJjLndlYnAmYW1wO3c9ODI4JmFtcDtxPTc1IDgyOHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA5MDExNjU4MzEyMTgyY2I4YzJjLndlYnAmYW1wO3c9MTA4MCZhbXA7cT03NSAxMDgwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDkwMTE2NTgzMTIxODJjYjhjMmMud2VicCZhbXA7dz0xMjAwJmFtcDtxPTc1IDEyMDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwOTAxMTY1ODMxMjE4MmNiOGMyYy53ZWJwJmFtcDt3PTE5MjAmYW1wO3E9NzUgMTkyMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA5MDExNjU4MzEyMTgyY2I4YzJjLndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSAyMDQ4dyIgc3JjPSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwOTAxMTY1ODMxMjE4MmNiOGMyYy53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUiIGRlY29kaW5nPSJhc3luYyIgZGF0YS1uaW1nPSJmaWxsIiBsb2FkaW5nPSJsYXp5IiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtsZWZ0OjA7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtjb2xvcjp0cmFuc3BhcmVudCI+PGRpdiBjbGFzcz0iYWNzcy0xZTRrazFjIj48ZGl2IGNsYXNzPSJhY3NzLTFjZHoydXciPjxpbWcgYWx0PSJiZyIgc2l6ZXM9IjEwMHZ3IiBzcmNzZXQ9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA5MDIxMDUxNDU1YjQ2NzFkYWYyLnBuZyZhbXA7dz02NDAmYW1wO3E9NzUgNjQwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDkwMjEwNTE0NTViNDY3MWRhZjIucG5nJmFtcDt3PTc1MCZhbXA7cT03NSA3NTB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwOTAyMTA1MTQ1NWI0NjcxZGFmMi5wbmcmYW1wO3c9ODI4JmFtcDtxPTc1IDgyOHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA5MDIxMDUxNDU1YjQ2NzFkYWYyLnBuZyZhbXA7dz0xMDgwJmFtcDtxPTc1IDEwODB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwOTAyMTA1MTQ1NWI0NjcxZGFmMi5wbmcmYW1wO3c9MTIwMCZhbXA7cT03NSAxMjAwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDkwMjEwNTE0NTViNDY3MWRhZjIucG5nJmFtcDt3PTE5MjAmYW1wO3E9NzUgMTkyMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA5MDIxMDUxNDU1YjQ2NzFkYWYyLnBuZyZhbXA7dz0yMDQ4JmFtcDtxPTc1IDIwNDh3IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA5MDIxMDUxNDU1YjQ2NzFkYWYyLnBuZyZhbXA7dz0yMDQ4JmFtcDtxPTc1IiBkZWNvZGluZz0iYXN5bmMiIGRhdGEtbmltZz0iZmlsbCIgbG9hZGluZz0ibGF6eSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bGVmdDowO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7Y29sb3I6dHJhbnNwYXJlbnQiPjwvZGl2PjwvZGl2PjxkaXY+PGRpdiBjbGFzcz0iYWNzcy1yeXU3M20iPjxkaXY+PGRpdiBjbGFzcz0iYWNzcy0xeGk5bWtnIj48ZGl2IGNsYXNzPSJhY3NzLXY2NW52ZiI+PGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbToyMHB4Ij48ZGl2IGNsYXNzPSJhY3NzLWs5ZnBmZSI+TGFuZ3VhZ2U8L2Rpdj48c3R5bGUgZGF0YS1lbW90aW9uPSJjc3Mgd29nd2MwIj4uY3NzLXdvZ3djMC5hbnQtc2VsZWN0e3dpZHRoOjE2MHB4O2hlaWdodDo0MnB4O30uY3NzLXdvZ3djMCAuYW50LXNlbGVjdC1zZWxlY3RvcntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50IWltcG9ydGFudDtjb2xvcjojZmZmO2JvcmRlcjoxcHggc29saWQgI2ZmZjMhaW1wb3J0YW50O30uY3NzLXdvZ3djMCAuYW50LXNlbGVjdC1zZWxlY3Rvcjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYxYSFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOiNmZmZmZmYxYSFpbXBvcnRhbnQ7fS5jc3Mtd29nd2MwIC5hbnQtc2VsZWN0LXNlbGVjdGlvbi1pdGVtLC5jc3Mtd29nd2MwIC5hbnQtc2VsZWN0LXNlbGVjdGlvbi1zZWFyY2gtaW5wdXR7Y29sb3I6I2ZmZiFpbXBvcnRhbnQ7fS5jc3Mtd29nd2MwIC5hbnQtc2VsZWN0LWFycm93e2NvbG9yOiNmZmYhaW1wb3J0YW50O308L3N0eWxlPjxkaXYgY2xhc3M9ImFudC1zZWxlY3QgYW50LXNlbGVjdC1vdXRsaW5lZCBjc3Mtd29nd2MwIGVzaDliajgxMSBjc3MtMWRnNTE3MyBhbnQtc2VsZWN0LXNpbmdsZSBhbnQtc2VsZWN0LXNob3ctYXJyb3ciPjxkaXYgY2xhc3M9ImFudC1zZWxlY3Qtc2VsZWN0b3IiPjxzcGFuIGNsYXNzPSJhbnQtc2VsZWN0LXNlbGVjdGlvbi13cmFwIj48c3BhbiBjbGFzcz0iYW50LXNlbGVjdC1zZWxlY3Rpb24tc2VhcmNoIj48aW5wdXQgdHlwZT0ic2VhcmNoIiBhdXRvY29tcGxldGU9Im9mZiIgY2xhc3M9ImFudC1zZWxlY3Qtc2VsZWN0aW9uLXNlYXJjaC1pbnB1dCIgcm9sZT0iY29tYm9ib3giIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIiBhcmlhLWhhc3BvcHVwPSJsaXN0Ym94IiBhcmlhLW93bnM9InVuZGVmaW5lZF9saXN0IiBhcmlhLWF1dG9jb21wbGV0ZT0ibGlzdCIgYXJpYS1jb250cm9scz0idW5kZWZpbmVkX2xpc3QiIHJlYWRvbmx5IHVuc2VsZWN0YWJsZT0ib24iIHN0eWxlPSJvcGFjaXR5OjAiIHZhbHVlPjwvc3Bhbj48c3BhbiBjbGFzcz0iYW50LXNlbGVjdC1zZWxlY3Rpb24taXRlbSIgdGl0bGU9IvCfh6zwn4enIEVuZ2xpc2giPvCfh6zwn4enIEVuZ2xpc2g8L3NwYW4+PC9zcGFuPjwvZGl2PjxzcGFuIGNsYXNzPSJhbnQtc2VsZWN0LWFycm93IiBzdHlsZT0idXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmUiIHVuc2VsZWN0YWJsZT0ib24iIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3BhbiByb2xlPSJpbWciIGFyaWEtbGFiZWw9ImRvd24iIGNsYXNzPSJhbnRpY29uIGFudGljb24tZG93biBhbnQtc2VsZWN0LXN1ZmZpeCI+PHN2ZyB2aWV3Qm94PSI2NCA2NCA4OTYgODk2IiBmb2N1c2FibGU9ImZhbHNlIiBkYXRhLWljb249ImRvd24iIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiBmaWxsPSJjdXJyZW50Q29sb3IiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNODg0IDI1NmgtNzVjLTUuMSAwLTkuOSAyLjUtMTIuOSA2LjZMNTEyIDY1NC4yIDIyNy45IDI2Mi42Yy0zLTQuMS03LjgtNi42LTEyLjktNi42aC03NWMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMzUyLjYgNDg2LjFjMTIuOCAxNy42IDM5IDE3LjYgNTEuNyAwbDM1Mi42LTQ4Ni4xYzMuOS01LjMuMS0xMi43LTYuNC0xMi43eiIvPjwvc3ZnPjwvc3Bhbj48L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iYWNzcy1jNW03MG4iPjxkaXY+MjAyNiBAIEJ1dmVpIExMQzwvZGl2PjxkaXY+QWxsIFJpZ2h0cyBSZXNlcnZlZDwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtMWl5emUxcyI+PGRpdiBjbGFzcz0iYWNzcy03MGgyMjEiPjxkaXYgY2xhc3M9ImFjc3MtYjV4Y3YyIj5Qcm9kdWN0PC9kaXY+PGEgY2xhc3M9ImFjc3MtMXR0ZmswbyIgaHJlZj0iL3ZpcnR1YWwtY2FyZHMiPlZpcnR1YWwgQ3JlZGl0IGNhcmQ8L2E+PGEgY2xhc3M9ImFjc3MtMXR0ZmswbyIgaHJlZj0iLyI+RXhwZW5zZSBNYW5hZ2VtZW50PC9hPjxhIGNsYXNzPSJhY3NzLTF0dGZrMG8iIGhyZWY9Ii9kZXZlbG9wZXIiPkFQSSBBY2Nlc3M8L2E+PC9kaXY+PGRpdiBjbGFzcz0iYWNzcy03MGgyMjEiPjxkaXYgY2xhc3M9ImFjc3MtYjV4Y3YyIj5QYXltZW50IGNhcmRzPC9kaXY+PGEgY2xhc3M9ImFjc3MtMXR0ZmswbyIgaHJlZj0iL3NvbHV0aW9ucy9hZHMiPkFkdmVydGlzaW5nIGNhcmQ8L2E+PGEgY2xhc3M9ImFjc3MtMXR0ZmswbyIgaHJlZj0iL3NvbHV0aW9ucy9zdWJzY3JpYmUiPlN1YnNjcmlwdGlvbiBjYXJkPC9hPjxhIGNsYXNzPSJhY3NzLTF0dGZrMG8iIGhyZWY9Ii9zb2x1dGlvbnMvdHJhdmVsIj5UcmF2ZWwgYW5kIGF2aWF0aW9uIGNhcmQ8L2E+PC9kaXY+PGRpdiBjbGFzcz0iYWNzcy03MGgyMjEiPjxkaXYgY2xhc3M9ImFjc3MtYjV4Y3YyIj5FbnRlcnByaXNlIHNlcnZpY2VzPC9kaXY+PGEgY2xhc3M9ImFjc3MtMXR0ZmswbyIgaHJlZj0iL2RldmVsb3BlciI+QVBJIERvY3M8L2E+PGEgY2xhc3M9ImFjc3MtMXR0ZmswbyIgaHJlZj0iLyI+UmVwb3J0IGV4cG9ydDwvYT48YSBjbGFzcz0iYWNzcy0xdHRmazBvIiBocmVmPSIvIj5QZXJtaXNzaW9uIHN5c3RlbTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLTcwaDIyMSI+PGRpdiBjbGFzcz0iYWNzcy1iNXhjdjIiPkxlZ2FsIGluZm88L2Rpdj48YSBjbGFzcz0iYWNzcy0xdHRmazBvIiBocmVmPSIvdGVybXMiPlRlcm1zIG9mIFNlcnZpY2U8L2E+PGEgY2xhc3M9ImFjc3MtMXR0ZmswbyIgaHJlZj0iL3ByaXZhY3kiPlByaXZhY3kgUG9saWN5PC9hPjxhIGNsYXNzPSJhY3NzLTF0dGZrMG8iIGhyZWY9Ii9kaXNjbGFpbWVyIj5EaXNjbGFpbWVyPC9hPjxkaXYgY2xhc3M9ImFjc3MtMWV6Y2M0NiI+PGEgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJhY3NzLTFrNjZiYmIiIGhyZWY9Imh0dHBzOi8veC5jb20vYnV2ZWlfb2ZmaWNpYWwiPjxkaXYgY2xhc3M9ImFjc3MtZWl5MzZnIj48aW1nIGFsdD0idHdpdHRlciIgc2l6ZXM9IjEwMHZ3IiBzcmNzZXQ9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNjAxMjIxNDM2NDhjYTZkY2QwYzJmLndlYnAmYW1wO3c9NjQwJmFtcDtxPTc1IDY0MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNjAxMjIxNDM2NDhjYTZkY2QwYzJmLndlYnAmYW1wO3c9NzUwJmFtcDtxPTc1IDc1MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNjAxMjIxNDM2NDhjYTZkY2QwYzJmLndlYnAmYW1wO3c9ODI4JmFtcDtxPTc1IDgyOHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNjAxMjIxNDM2NDhjYTZkY2QwYzJmLndlYnAmYW1wO3c9MTA4MCZhbXA7cT03NSAxMDgwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI2MDEyMjE0MzY0OGNhNmRjZDBjMmYud2VicCZhbXA7dz0xMjAwJmFtcDtxPTc1IDEyMDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjYwMTIyMTQzNjQ4Y2E2ZGNkMGMyZi53ZWJwJmFtcDt3PTE5MjAmYW1wO3E9NzUgMTkyMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNjAxMjIxNDM2NDhjYTZkY2QwYzJmLndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSAyMDQ4dyIgc3JjPSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjYwMTIyMTQzNjQ4Y2E2ZGNkMGMyZi53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUiIGRlY29kaW5nPSJhc3luYyIgZGF0YS1uaW1nPSJmaWxsIiBsb2FkaW5nPSJsYXp5IiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtsZWZ0OjA7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtjb2xvcjp0cmFuc3BhcmVudCI+PC9kaXY+PC9hPjxhIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iYWNzcy1paTl1eHgiIGhyZWY9Imh0dHBzOi8vdC5tZS9idXZlaV9vZmZpY2lhbCI+PGltZyBhbHQ9InRlbGVncmFtIiBzaXplcz0iMTAwdnciIHNyY3NldD0iL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE3MTMwODdhMmJkZTQ2NTIud2VicCZhbXA7dz02NDAmYW1wO3E9NzUgNjQwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE3MTMwODdhMmJkZTQ2NTIud2VicCZhbXA7dz03NTAmYW1wO3E9NzUgNzUwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE3MTMwODdhMmJkZTQ2NTIud2VicCZhbXA7dz04MjgmYW1wO3E9NzUgODI4dywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE3MTMwODdhMmJkZTQ2NTIud2VicCZhbXA7dz0xMDgwJmFtcDtxPTc1IDEwODB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTcxMzA4N2EyYmRlNDY1Mi53ZWJwJmFtcDt3PTEyMDAmYW1wO3E9NzUgMTIwMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxNzEzMDg3YTJiZGU0NjUyLndlYnAmYW1wO3c9MTkyMCZhbXA7cT03NSAxOTIwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE3MTMwODdhMmJkZTQ2NTIud2VicCZhbXA7dz0yMDQ4JmFtcDtxPTc1IDIwNDh3IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxNzEzMDg3YTJiZGU0NjUyLndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9ImZpbGwiIGxvYWRpbmc9ImxhenkiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2NvbG9yOnRyYW5zcGFyZW50Ij48L2E+PGEgY2xhc3M9ImFjc3MtaWk5dXh4IiBocmVmPSIvY2RuLWNnaS9sL2VtYWlsLXByb3RlY3Rpb24jYjlkMGQ3ZGZkNmY5ZGJjY2NmZGNkMDk3ZGFkNmQ0Ij48aW1nIGFsdD0ibWFpbCIgc2l6ZXM9IjEwMHZ3IiBzcmNzZXQ9Ii9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxNzEzMzAyOTMxYTE4MzgwLndlYnAmYW1wO3c9NjQwJmFtcDtxPTc1IDY0MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxNzEzMzAyOTMxYTE4MzgwLndlYnAmYW1wO3c9NzUwJmFtcDtxPTc1IDc1MHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxNzEzMzAyOTMxYTE4MzgwLndlYnAmYW1wO3c9ODI4JmFtcDtxPTc1IDgyOHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxNzEzMzAyOTMxYTE4MzgwLndlYnAmYW1wO3c9MTA4MCZhbXA7cT03NSAxMDgwdywgL19uZXh0L2ltYWdlP3VybD1odHRwcyUzQSUyRiUyRm9zc3ByZW1pdW0uczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20lMkZhJTJGYV82NDJmMDglMkYyMDI1MDQyMjE3MTMzMDI5MzFhMTgzODAud2VicCZhbXA7dz0xMjAwJmFtcDtxPTc1IDEyMDB3LCAvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTcxMzMwMjkzMWExODM4MC53ZWJwJmFtcDt3PTE5MjAmYW1wO3E9NzUgMTkyMHcsIC9fbmV4dC9pbWFnZT91cmw9aHR0cHMlM0ElMkYlMkZvc3NwcmVtaXVtLnMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tJTJGYSUyRmFfNjQyZjA4JTJGMjAyNTA0MjIxNzEzMzAyOTMxYTE4MzgwLndlYnAmYW1wO3c9MjA0OCZhbXA7cT03NSAyMDQ4dyIgc3JjPSIvX25leHQvaW1hZ2U/dXJsPWh0dHBzJTNBJTJGJTJGb3NzcHJlbWl1bS5zMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSUyRmElMkZhXzY0MmYwOCUyRjIwMjUwNDIyMTcxMzMwMjkzMWExODM4MC53ZWJwJmFtcDt3PTIwNDgmYW1wO3E9NzUiIGRlY29kaW5nPSJhc3luYyIgZGF0YS1uaW1nPSJmaWxsIiBsb2FkaW5nPSJsYXp5IiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtsZWZ0OjA7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtjb2xvcjp0cmFuc3BhcmVudCI+PC9hPjwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtMWV6Y2M0NiI+PGEgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJhY3NzLTFrNjZiYmIiIGhyZWY9Imh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9jb21wYW55L2J1dmVpLyI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0yMC40NDcgMjAuNDUyaC0zLjU1NHYtNS41NjljMC0xLjMyOC0uMDI3LTMuMDM3LTEuODUyLTMuMDM3LTEuODUzIDAtMi4xMzYgMS40NDUtMi4xMzYgMi45Mzl2NS42NjdIOS4zNTFWOWgzLjQxNHYxLjU2MWguMDQ2Yy40NzctLjkgMS42MzctMS44NSAzLjM3LTEuODUgMy42MDEgMCA0LjI2NyAyLjM3IDQuMjY3IDUuNDU1djYuMjg2ek01LjMzNyA3LjQzM2EyLjA2MiAyLjA2MiAwIDAxLTIuMDYzLTIuMDY1IDIuMDY0IDIuMDY0IDAgMTEyLjA2MyAyLjA2NXptMS43ODIgMTMuMDE5SDMuNTU1VjloMy41NjR2MTEuNDUyek0yMi4yMjUgMEgxLjc3MUMuNzkyIDAgMCAuNzc0IDAgMS43Mjl2MjAuNTQyQzAgMjMuMjI3Ljc5MiAyNCAxLjc3MSAyNGgyMC40NTFDMjMuMiAyNCAyNCAyMy4yMjcgMjQgMjIuMjcxVjEuNzI5QzI0IC43NzQgMjMuMiAwIDIyLjIyMiAwaC4wMDN6Ii8+PC9zdmc+PC9hPjxhIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iYWNzcy0xazY2YmJiIiBocmVmPSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vYnV2ZWlvZmZpY2lhbCI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0yNCAxMi4wNzNjMC02LjYyNy01LjM3My0xMi0xMi0xMnMtMTIgNS4zNzMtMTIgMTJjMCA1Ljk5IDQuMzg4IDEwLjk1NCAxMC4xMjUgMTEuODU0di04LjM4NUg3LjA3OHYtMy40N2gzLjA0N1Y5LjQzYzAtMy4wMDcgMS43OTItNC42NjkgNC41MzMtNC42NjkgMS4zMTIgMCAyLjY4Ni4yMzUgMi42ODYuMjM1djIuOTUzSDE1LjgzYy0xLjQ5MSAwLTEuOTU2LjkyNS0xLjk1NiAxLjg3NHYyLjI1aDMuMzI4bC0uNTMyIDMuNDdoLTIuNzk2djguMzg1QzE5LjYxMiAyMy4wMjcgMjQgMTguMDYyIDI0IDEyLjA3M3oiLz48L3N2Zz48L2E+PGEgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJhY3NzLTFrNjZiYmIiIGhyZWY9Imh0dHBzOi8vd3d3Lmluc3RhZ3JhbS5jb20vYnV2ZWlvZmZpY2lhbC8iPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IndoaXRlIj48cGF0aCBkPSJNMTIgMi4xNjNjMy4yMDQgMCAzLjU4NC4wMTIgNC44NS4wNyAzLjI1Mi4xNDggNC43NzEgMS42OTEgNC45MTkgNC45MTkuMDU4IDEuMjY1LjA2OSAxLjY0NS4wNjkgNC44NDkgMCAzLjIwNS0uMDEyIDMuNTg0LS4wNjkgNC44NDktLjE0OSAzLjIyNS0xLjY2NCA0Ljc3MS00LjkxOSA0LjkxOS0xLjI2Ni4wNTgtMS42NDQuMDctNC44NS4wNy0zLjIwNCAwLTMuNTg0LS4wMTItNC44NDktLjA3LTMuMjYtLjE0OS00Ljc3MS0xLjY5OS00LjkxOS00LjkyLS4wNTgtMS4yNjUtLjA3LTEuNjQ0LS4wNy00Ljg0OSAwLTMuMjA0LjAxMy0zLjU4My4wNy00Ljg0OS4xNDktMy4yMjcgMS42NjQtNC43NzEgNC45MTktNC45MTkgMS4yNjYtLjA1NyAxLjY0NS0uMDY5IDQuODQ5LS4wNjl6TTEyIDBDOC43NDEgMCA4LjMzMy4wMTQgNy4wNTMuMDcyIDIuNjk1LjI3Mi4yNzMgMi42OS4wNzMgNy4wNTIuMDE0IDguMzMzIDAgOC43NDEgMCAxMmMwIDMuMjU5LjAxNCAzLjY2OC4wNzIgNC45NDguMiA0LjM1OCAyLjYxOCA2Ljc4IDYuOTggNi45OEM4LjMzMyAyMy45ODYgOC43NDEgMjQgMTIgMjRjMy4yNTkgMCAzLjY2OC0uMDE0IDQuOTQ4LS4wNzIgNC4zNTQtLjIgNi43ODItMi42MTggNi45NzktNi45OC4wNTktMS4yOC4wNzMtMS42ODkuMDczLTQuOTQ4IDAtMy4yNTktLjAxNC0zLjY2Ny0uMDcyLTQuOTQ3LS4xOTYtNC4zNTQtMi42MTctNi43OC02Ljk3OS02Ljk4QzE1LjY2OC4wMTQgMTUuMjU5IDAgMTIgMHptMCA1LjgzOGE2LjE2MiA2LjE2MiAwIDEwMCAxMi4zMjQgNi4xNjIgNi4xNjIgMCAwMDAtMTIuMzI0ek0xMiAxNmE0IDQgMCAxMTAtOCA0IDQgMCAwMTAgOHptNi40MDYtMTEuODQ1YTEuNDQgMS40NCAwIDEwMCAyLjg4MSAxLjQ0IDEuNDQgMCAwMDAtMi44ODF6Ii8+PC9zdmc+PC9hPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImFjc3MtaHRlbWU4Ij48ZGl2IGNsYXNzPSJhY3NzLTFpeXplMXMiPjwvZGl2PjwvZGl2PjxkaXY+PGRpdiBjbGFzcz0iYWNzcy1hMHUwczgiPkluIEhvbmcgS29uZywgQnV2ZWkgaXMgYSBsaWNlbnNlZCBUcnVzdCBvciBDb21wYW55IFNlcnZpY2UgUHJvdmlkZXIgKFRDU1ApIGF1dGhvcml6ZWQgYnkgdGhlIEhvbmcgS29uZyBDb21wYW5pZXMgUmVnaXN0cnksIGFuZCBwZXJtaXR0ZWQgdG8gcHJvdmlkZSBzZXJ2aWNlcyByZWxhdGVkIHRvIGZ1bmRzIGN1c3RvZHksIHRydXN0IHNlcnZpY2VzLCBhbmQgZmluYW5jaWFsIGFkdmlzb3J5IHNlcnZpY2VzLiBUaGlzIGluY2x1ZGVzIHRoZSBtYW5hZ2VtZW50IGFuZCBhZG1pbmlzdHJhdGlvbiBvZiB0cnVzdCBzdHJ1Y3R1cmVzLCBhcyB3ZWxsIGFzIHRoZSBmYWNpbGl0YXRpb24gb2YgZmluYW5jaWFsIHRyYW5zYWN0aW9ucyB1bmRlciBzdHJpY3QgcmVndWxhdG9yeSBzdXBlcnZpc2lvbi48L2Rpdj48ZGl2IGNsYXNzPSJhY3NzLWEwdTBzOCI+SW4gdGhlIFVuaXRlZCBTdGF0ZXMsIEJ1dmVpIGlzIGEgbGljZW5zZWQgTW9uZXkgU2VydmljZXMgQnVzaW5lc3MgKE1TQikgd2l0aCB0aGUgRmluYW5jaWFsIENyaW1lcyBFbmZvcmNlbWVudCBOZXR3b3JrIChGaW5DRU4pIHVuZGVyIHRoZSBCYW5rIFNlY3JlY3kgQWN0IChCU0EpLCBvZmZlcmluZyBhIHJhbmdlIG9mIHJlZ3VsYXRlZCBmaW5hbmNpYWwgc2VydmljZXMsIGluY2x1ZGluZyBtb25leSB0cmFuc21pc3Npb24sIGN1cnJlbmN5IGV4Y2hhbmdlLCBhbmQgbW9uZXkgY29udmVyc2lvbi48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Zvb3Rlcj48L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0IGRhdGEtY2Zhc3luYz0iZmFsc2UiIHNyYz0iL2Nkbi1jZ2kvc2NyaXB0cy81YzVkZDcyOC9jbG91ZGZsYXJlLXN0YXRpYy9lbWFpbC1kZWNvZGUubWluLmpzIj48L3NjcmlwdD48c2NyaXB0IGlkPSJfX05FWFRfREFUQV9fIiB0eXBlPSJhcHBsaWNhdGlvbi9qc29uIj57InByb3BzIjp7InBhZ2VQcm9wcyI6eyJfbmV4dEkxOE5leHQiOnsiaW5pdGlhbEkxOG5TdG9yZSI6eyJlbiI6eyJjb21tb24iOnsicHJpY2UiOiJXaGl0ZS1MYWJlbCIsImxvZ2luSW4iOiJMb2cgaW4iLCJzdGFydEZyZWUiOiJTdGFydCBmcmVlIiwicmVjb21tYW5kQXJ0aWNsZSI6IlJlY29tbWVuZGVkIEFydGljbGVzIiwidmlld0FsbCI6IlZpZXcgYWxsIiwiY29tbWluZ1Nvb24iOiJDb21pbmcgU29vbiIsImxlYXJuTW9yZSI6IkxlYXJuIG1vcmUiLCJ0MSI6IlBsZWFzZSBlbnRlciIsInQyIjoiQ29ubmVjdCB0byBnbG9iYWwgZGlnaXRhbCBjb25zdW1wdGlvbi4gT25lIC0gc3RvcCB2aXJ0dWFsIGNhcmQgcGF5bWVudCBhbmQgZXhwZW5zZSBtYW5hZ2VtZW50IHBsYXRmb3JtLiIsInQzIjoiRXhwZW5zZSBNYW5hZ2VtZW50IiwidDQiOiJBUEkgQWNjZXNzIiwidDUiOiJQYXltZW50IGNhcmRzIiwidDYiOiJBZHZlcnRpc2luZyBjYXJkIiwidDciOiJTdWJzY3JpcHRpb24gY2FyZCIsInQ4IjoiVHJhdmVsIGFuZCBhdmlhdGlvbiBjYXJkIiwidDkiOiJFbnRlcnByaXNlIHNlcnZpY2VzIiwidDEwIjoiQVBJIERvY3MiLCJ0MTEiOiJSZXBvcnQgZXhwb3J0IiwidDEyIjoiUGVybWlzc2lvbiBzeXN0ZW0iLCJ0MTMiOiJDb21wYW55IiwidDE0IjoiQWJvdXQgVXMiLCJ0MTUiOiJOZXdzIiwidDE2IjoiVGVybXMgb2YgU2VydmljZSIsInQxNyI6IlByaXZhY3kgUG9saWN5IiwidDE4IjoiTGFuZ3VhZ2UiLCJ0MTkiOiJMZWdhbCBpbmZvIiwidDIwIjoiQnV2ZWkncyBjYXJkcyBhcmUgaGVyZSEiLCJ0MjEiOiJNb3JlIHRoYW4gMjAgQklOIGNhcmRzLCBjb3ZlcmluZyBGYWNlYm9vaywgR29vZ2xlLCBUaWt0b2ssIENoYXRHcHQgYW5kIG1vcmUiLCJ0MjIiOiJHZXQgeW91ciBjYXJkIiwidDIzIjoiSW4gSG9uZyBLb25nLCBCdXZlaSBpcyBhIGxpY2Vuc2VkIFRydXN0IG9yIENvbXBhbnkgU2VydmljZSBQcm92aWRlciAoVENTUCkgYXV0aG9yaXplZCBieSB0aGUgSG9uZyBLb25nIENvbXBhbmllcyBSZWdpc3RyeSwgYW5kIHBlcm1pdHRlZCB0byBwcm92aWRlIHNlcnZpY2VzIHJlbGF0ZWQgdG8gZnVuZHMgY3VzdG9keSwgdHJ1c3Qgc2VydmljZXMsIGFuZCBmaW5hbmNpYWwgYWR2aXNvcnkgc2VydmljZXMuIFRoaXMgaW5jbHVkZXMgdGhlIG1hbmFnZW1lbnQgYW5kIGFkbWluaXN0cmF0aW9uIG9mIHRydXN0IHN0cnVjdHVyZXMsIGFzIHdlbGwgYXMgdGhlIGZhY2lsaXRhdGlvbiBvZiBmaW5hbmNpYWwgdHJhbnNhY3Rpb25zIHVuZGVyIHN0cmljdCByZWd1bGF0b3J5IHN1cGVydmlzaW9uLiIsInQyNCI6IkluIHRoZSBVbml0ZWQgU3RhdGVzLCBCdXZlaSBpcyBhIGxpY2Vuc2VkIE1vbmV5IFNlcnZpY2VzIEJ1c2luZXNzIChNU0IpIHdpdGggdGhlIEZpbmFuY2lhbCBDcmltZXMgRW5mb3JjZW1lbnQgTmV0d29yayAoRmluQ0VOKSB1bmRlciB0aGUgQmFuayBTZWNyZWN5IEFjdCAoQlNBKSwgb2ZmZXJpbmcgYSByYW5nZSBvZiByZWd1bGF0ZWQgZmluYW5jaWFsIHNlcnZpY2VzLCBpbmNsdWRpbmcgbW9uZXkgdHJhbnNtaXNzaW9uLCBjdXJyZW5jeSBleGNoYW5nZSwgYW5kIG1vbmV5IGNvbnZlcnNpb24uIiwidDI1IjoiSW4gTGl0aHVhbmlhLCBCdXZlaSBpcyBhIGxpY2Vuc2VkIFZpcnR1YWwgQXNzZXQgU2VydmljZSBQcm92aWRlciAoVkFTUCkgYnkgdGhlIEZpbmFuY2lhbCBDcmltZSBJbnZlc3RpZ2F0aW9uIFNlcnZpY2UgKEZDSVMpLCBhbmQgYXV0aG9yaXplZCB0byBwcm92aWRlIHNlcnZpY2VzIGludm9sdmluZyB0aGUgZXhjaGFuZ2Ugb2YgdmlydHVhbCBhc3NldHMgYW5kIHRoZSBjb252ZXJzaW9uIGJldHdlZW4gdmlydHVhbCBhc3NldHMgYW5kIGZpYXQgY3VycmVuY2llcy4iLCJ0aXRsZTIzMCI6IlNpZ24gdXAgZm9yIGEgbGltaXRlZCB0aW1lIGFuZCBlbmpveSBhIiwidGl0bGUyMzEiOiJkaXNjb3VudCIsInRpdGxlMjMyIjoiTmV3IHVzZXIgYmVuZWZpdHMg4oCTIHJlY2VpdmUgZGlzY291bnQgY291cG9ucyBhdXRvbWF0aWNhbGx5IGFmdGVyIHJlZ2lzdGVyaW5nIiwidGl0bGUyNDYiOiJHZXQgaXQgb24gR29vZ2xlIFBsYXkiLCJ0aXRsZTI1NyI6IkJ1dmVpIOKAkyBNdWx0aS1CSU4gVmlydHVhbCBDYXJkcywgSXNzdWVkIEluc3RhbnRseSIsInRpdGxlMjU1IjoiRG93bmxvYWQiLCJ0aXRsZTI1NiI6IkRvd25sb2FkIG9uIHRoZSBBcHAgU3RvcmUiLCJzaWduVXBUZXh0IjoiU2lnbiB1cCB0b2RheSBhbmQgZ2V0IiwiZnJlZUNyZWRpdCI6ImluIGZyZWUgY2FyZCBvcGVuaW5nIGNyZWRpdCIsImNsYWltTm93IjoiQ2xhaW0gTm93IiwidDI2Ijoi8J+NqiBDb29raWUgTm90aWNlIiwidDI3IjoiV2UgdXNlIGNvb2tpZXMgdG8gZW5oYW5jZSB5b3VyIGJyb3dzaW5nIGV4cGVyaWVuY2UgYW5kIGFuYWx5emUgc2l0ZSB0cmFmZmljLkJ5IGNvbnRpbnVpbmcsIHlvdSBhZ3JlZSB0byBvdXIiLCJ0MjgiOiJQcml2YWN5IFBvbGljeSIsInQyOSI6IkRlY2xpbmUiLCJ0MzAiOiJBY2NlcHQgQWxsIiwidDMxIjoiRGlzY2xhaW1lciIsIm1lbnUiOnsidGl0bGUxIjoiUHJvZHVjdCIsInRpdGxlMiI6IlNvbHV0aW9ucyIsInRpdGxlMyI6IlJlc291cmNlIiwidGl0bGU0IjoiQ29tcGFueSIsInRpdGxlNSI6IlZpcnR1YWwgQ3JlZGl0IGNhcmQiLCJ0aXRsZTYiOiJQaHlzaWNhbCBDYXJkIiwidGl0bGU3IjoiQXBwbGUgUGF5IiwidGl0bGU4IjoiRGV2ZWxvcGVycyIsInRpdGxlOSI6IkRpZ2l0YWwgQWR2ZXJ0aXNpbmcgUGF5bWVudHMiLCJ0aXRsZTEwIjoiQXZpYXRpb24gXHUwMDI2IFRyYXZlbCIsInRpdGxlMTEiOiJTdWJzY2lwdGlvbiBNYW5hZ2VtZW50IiwidGl0bGUxMiI6IkJsb2ciLCJ0aXRsZTEzIjoiVG9vbHMiLCJ0aXRsZTE0IjoiRkFRcyIsInRpdGxlMTUiOiJUZXJtcyIsInRpdGxlMTYiOiJIZWxwIENlbnRyZSIsInRpdGxlMTciOiJDb250YWN0IFVzIiwidGl0bGUxOCI6IlBhcnRuZXJzIiwidGl0bGUxOSI6Ikxhbmd1YWdlcyIsInRpdGxlMjAiOiJKb2luIFVzIiwiZGVzYzEzIjoiTGV04oCZcyBzdGFydCBvdmVyIiwiZGVzYzEiOiJTdXBwb3J0IGZvciBhZHZlcnRpc2luZywgc3Vic2NyaXB0aW9ucywgYW5kIHNob3BwaW5nIiwiZGVzYzIiOiJPZmZsaW5lIGNvbnN1bXB0aW9uIiwiZGVzYzMiOiJPbmUtY2xpY2sgYmluZGluZyB3aXRoIEFwcGxlIFBheSIsImRlc2M0IjoiRGV2ZWxvcGVyIENlbnRlciIsImRlc2M1IjoiRmFjZWJvb2ssIFRpa1RvaywgQ1BDLCBHb29nbGUsIGV0Yy4iLCJkZXNjNiI6Ik9uZS1jbGljayBhY2Nlc3MgYWNyb3NzIGdsb2JhbCBhaXJsaW5lcyIsImRlc2M3IjoiT3BlbkFJLCBNaWRqb3VybmV5LCBldGMuIiwiZGVzYzgiOiJTdGF5IHVwZGF0ZWQgd2l0aCB0aGUgbGF0ZXN0IG5ld3MiLCJkZXNjOSI6Ikluc3RhbnRseSBnZXQgQklOIGNhcmQgaW5mb3JtYXRpb24iLCJkZXNjMTAiOiJDb21tb24gcHJvYmxlbSBzb2x2aW5nIiwiZGVzYzExIjoiSWYgeW91IGhhdmUgYW55IHF1ZXN0aW9ucywgcGxlYXNlIGNvbnRhY3QgdXMiLCJkZXNjMTIiOiJXaW4td2luIGNvb3BlcmF0aW9uIn0sImFydGljbGUiOnsidGl0bGUxIjoiVGhlIGNvbnZlcmdlbmNlIG9mIGJhbmtzIGFuZCBkaWdpdGFsIGZpbmFuY2U6IG1ha2luZyBiYW5rcyByaXNraWVyIG9yIGZpbnRlY2ggc2FmZXI/IiwiZGVzYzEiOiJPdmVyIHRoZSBwYXN0IGZldyB5ZWFycywgdGhlIGxpbmUgYmV0d2VlbiB0cmFkaXRpb25hbCBiYW5raW5nIGFuZCBkaWdpdGFsIGZpbmFuY2UgaGFzIHN0ZWFkaWx5IGJsdXJyZWQuIFdoYXQgd2FzIG9uY2UgYSBwYXJhbGxlbCByYWNlIGlzIG5vdyBiZWNvbWluZyIsInRpdGxlMiI6IkZyb20gQ29udmVuaWVuY2UgdG8gU2VjdXJpdHk6IENyZWRpdCBDYXJkcyBhbmQgdGhlIFF1ZXN0IGZvciB0aGUgUGF5bWVudCBIb2x5IEdyYWlsIiwiZGVzYzIiOiJJbiB0aGUgcGF5bWVudHMgaW5kdXN0cnksIHNlYW1sZXNzIHVzZXIgZXhwZXJpZW5jZSBhbmQgcm9idXN0IHNlY3VyaXR5IGFyZSBvZnRlbiBzZWVuIGFzIG9wcG9zaW5nIGZvcmNlcy4gT24gb25lIGhhbmQsIGNvbnN1bWVycyBleHBlY3QgZmFzdCwgaW50dWl0aXZlIHRyYW5zYWN0aW9uc+KAlHRhcCBhbmQgZ28uIiwidGl0bGUzIjoiU2V2ZW4gTWFqb3IgUGF5bWVudCBUcmVuZHMgaW4gMjAyNTogVGVjaG5vbG9neS1Ecml2ZW4gVHJhbnNmb3JtYXRpb24gUmVkZWZpbmVzIFBheW1lbnRzIiwiZGVzYzMiOiJBcyB3ZSBlbnRlciAyMDI1LCB0aGUgZ2xvYmFsIHBheW1lbnQgbGFuZHNjYXBlIGlzIHVuZGVyZ29pbmcgcmFwaWQgZXZvbHV0aW9uLiBFbWVyZ2luZyB0ZWNobm9sb2dpZXMgc3VjaCBhcyBhcnRpZmljaWFsIGludGVsbGlnZW5jZSAoQUkpLCBkaXN0cmlidXRlZCBsZWRnZXIgdGVjaG5vbG9neSwgYW5kIGRpZ2l0YWwgaWRlbnRpdHkgYXJlIHByb2ZvdW5kbHkgcmVzaGFwaW5nIHRoZSB3YXkgcGF5bWVudHMgYXJlIGluaXRpYXRlZCwgcHJvY2Vzc2VkLCBhbmQgc2VjdXJlZC4iLCJ0aXRsZTQiOiJBZ2VudCBDb21tZXJjZTogVGhlIEZ1dHVyZSBvZiBEaWdpdGFsIFBheW1lbnRzIFBvd2VyZWQgYnkgQUkiLCJkZXNjNCI6IkFzIGRpZ2l0YWwgY29tbWVyY2UgY29udGludWVzIHRvIGV2b2x2ZSwgdGhyZWUgb2YgdGhlIHdvcmxk4oCZcyBsZWFkaW5nIHBheW1lbnQgY29tcGFuaWVzIOKAlCBWaXNhLCBNYXN0ZXJjYXJkLCBhbmQgUGF5UGFsIOKAlCBhcmUgcmFjaW5nIHRvd2FyZCB0aGUgbmV4dCBmcm9udGllcjogYWdlbnQtYmFzZWQgYXJ0aWZpY2lhbCBpbnRlbGxpZ2VuY2UuIiwidGl0bGU1IjoiRXVyb3BlYW4gQ2VudHJhbCBCYW5rIExhdW5jaGVzIElubm92YXRpb24gSHViIHRvIEFkdmFuY2UgRGlnaXRhbCBFdXJvIGFuZCBDQkRDIFVzZSBDYXNlcyIsImRlc2M1IjoiVG8gYWNjZWxlcmF0ZSB0aGUgcmVzZWFyY2ggYW5kIHBvdGVudGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBhIGNlbnRyYWwgYmFuayBkaWdpdGFsIGN1cnJlbmN5IChDQkRDKSwgdGhlIEV1cm9wZWFuIENlbnRyYWwgQmFuayAoRUNCKSBoYXMgb2ZmaWNpYWxseSBsYXVuY2hlZCB0aGUgRGlnaXRhbCBFdXJvIElubm92YXRpb24gUGxhdGZvcm0iLCJ0aXRsZTYiOiJVbmRlcnN0YW5kaW5nIENyZWRpdCBDYXJkIFRlcm1pbm9sb2d5IHwgV2hhdCBJcyBhIENhcmQgRmVlIiwiZGVzYzYiOiJXaGVuIHVzaW5nIGEgY3JlZGl0IG9yIHZpcnR1YWwgY2FyZCwgaGF2ZSB5b3UgZXZlciBub3RpY2VkIHZhcmlvdXMgY2hhcmdlcyBsaXN0ZWQgb24geW91ciBzdGF0ZW1lbnQ/IiwidGl0bGU3IjoiMjAyNSBhbmFseXNpcyBvZiBwYXltZW50cyBhbmQgZWNvbW1lcmNlIHRyZW5kcyIsImRlc2M3IjoiQXMgdGhlIGxhcmdlc3QgZWNvbm9teSBpbiBTb3V0aGVhc3QgQXNpYeKAlHdpdGggYSBwb3B1bGF0aW9uIG9mIDI3OC4zIG1pbGxpb27igJRJbmRvbmVzaWEgb2ZmZXJzIGltbWVuc2Ugb3Bwb3J0dW5pdGllcyBpbiBlLWNvbW1lcmNlIGFuZCBkaWdpdGFsIHBheW1lbnRzLiIsInRpdGxlOCI6IkNyZWRpdCBDYXJkIFNraW1taW5nOiA1IFNpZ25zIFlvdeKAmXJlIGF0IFJpc2sgXHUwMDI2IEhvdyB0byBTdG9wIEl0IE5vdyIsImRlc2M4IjoiQXMgZGlnaXRhbCBwYXltZW50cyBiZWNvbWUgaW5jcmVhc2luZ2x5IHdpZGVzcHJlYWQsIGNyZWRpdCBjYXJkIGZyYXVkIGhhcyBlbWVyZ2VkIGFzIGFuIHVuYXZvaWRhYmxlIHJpc2sgZm9yIGNvbnN1bWVycy4gQWNjb3JkaW5nIHRvIHN0YXRpc3RpY3MsIDgyJSBvZiBBbWVyaWNhbiBhZHVsdHMgZXhwZXJpZW5jZWQgc29tZSBmb3JtIG9mIGNyZWRpdCBjYXJkIGZyYXVkIGluIDIwMjMiLCJ0aXRsZTkiOiJWaXJ0dWFsIFdhbGxldHMsIFJlYWwgUG93ZXI6IDEwIE11c3QtSGF2ZSBWaXJ0dWFsIENhcmRzIGZvciBTZWN1cmUgU3BlbmRpbmcgaW4gMjAyNSIsImRlc2M5IjoiU2F5IGdvb2RieWUgdG8gZGlnZ2luZyBmb3IgYSBwaHlzaWNhbCBjYXJkIG9yIGZlYXJpbmcgeW91ciBudW1iZXIgd2lsbCBiZSBjb21wcm9taXNlZC4gVmlydHVhbCBjcmVkaXQgY2FyZHMgKFZDQ3MpIGFyZW7igJl0IGp1c3QgYSB0cmVuZOKAlHRoZXnigJlyZSBlc3NlbnRpYWwgdG9vbHMgZm9yIG5hdmlnYXRpbmcgdG9kYXnigJlzIGRpZ2l0YWwgZmluYW5jaWFsIGxhbmRzY2FwZS4iLCJ0aXRsZTEwIjoiS1lDIHZzLiBBTUw6IEEgQ29tcGxpYW5jZSBEZWVwIERpdmUgZm9yIHRoZSBQYXltZW50cyBJbmR1c3RyeSIsImRlc2MxMCI6IkluIHRvZGF54oCZcyByYXBpZGx5IGV2b2x2aW5nIGRpZ2l0YWwgcGF5bWVudHMgbGFuZHNjYXBlLCByZWd1bGF0b3J5IGNvbXBsaWFuY2UgaXMgYSB0b3AgcHJpb3JpdHkgZm9yIGZpbmFuY2lhbCBpbnN0aXR1dGlvbnMgYW5kIGJ1c2luZXNzZXMgYWxpa2UuIEFudGktTW9uZXkgTGF1bmRlcmluZyAoQU1MKSBhbmQgS25vdyBZb3VyIEN1c3RvbWVyIChLWUMpIGFyZSB0aGUgdHdvIGZvdW5kYXRpb25hbCBwaWxsYXJzIG9mIHBheW1lbnQgY29tcGxpYW5jZS4gIiwidGl0bGUxMSI6IkZhY2Vib29rIEFjY291bnQgVHlwZXMgRXhwbGFpbmVkOiBXaGljaCBPbmUgSXMgUmlnaHQgZm9yIFlvdT8iLCJkZXNjMTEiOiJBcyBhIGRvbWluYW50IGZvcmNlIGluIHRoZSBnbG9iYWwgc29jaWFsIG1lZGlhIGxhbmRzY2FwZSwgRmFjZWJvb2sgY29ubmVjdHMgaW5kaXZpZHVhbHMsIGJyYW5kcywgYnVzaW5lc3NlcywgYW5kIGRldmVsb3BlcnMgdGhyb3VnaCBhIGNvbXByZWhlbnNpdmUgZWNvc3lzdGVtIG9mIGFjY291bnQgdHlwZXMgYW5kIGZ1bmN0aW9uYWxpdGllcy4iLCJ0aXRsZTEyIjoiV2hhdCBEb2VzIOKAnFBlbmRpbmfigJ0gTWVhbiBpbiBQYXltZW50PyBDYXVzZXMsIER1cmF0aW9uLCBhbmQgUmlzayBNYW5hZ2VtZW50IiwiZGVzYzEyIjoiSW4gbW9kZXJuIHBheW1lbnQgc3lzdGVtc+KAlHdoZXRoZXIgdXNpbmcgY3JlZGl0IGNhcmRzLCBkZWJpdCBjYXJkcywgdmlydHVhbCBjYXJkcywgb3IgZS13YWxsZXRz4oCUdXNlcnMgb2Z0ZW4gZW5jb3VudGVyIGEgZmFtaWxpYXIgc3RhdHVzIGFmdGVyIGluaXRpYXRpbmcgYSB0cmFuc2FjdGlvbjog4oCcUGVuZGluZy7igJ0ifX0sImluZGV4Ijp7InRpdGxlMSI6IkJ1dmVpIC0gQWdncmVnYXRlZCBWaXJ0dWFsIENhcmQgSXNzdWFuY2UsTGluayB0byBnbG9iYWwgZGlnaXRhbCBwYXltZW50cyIsInRpdGxlMiI6InZpcnR1YWwgY2FyZHMsIGRpZ2l0YWwgdmlydHVhbCBjYXJkLCBnbG9iYWwgdmlydHVhbCBjYXJkLCBtdWx0aSBjdXJyZW5jeSB2aXJ0dWFsIGNhcmQsIHZpcnR1YWwgY2FyZCBmb3IgZmFjZWJvb2sgYWRzLCB2aXJ0dWFsIGNhcmQgZm9yIGdvb2dsZSBhZHMsIHZpcnR1YWwgY2FyZCBmb3Igc3Vic2NyaXB0aW9ucywgb25saW5lIHBheW1lbnQgdmlydHVhbCBjYXJkIiwidGl0bGUzIjoiU3BlbmQgR2xvYmFsbHkiLCJ0aXRsZTQiOiJmb3IiLCJ0aXRsZTUiOiJ3aXRoIFZpcnR1YWwgQ2FyZHMiLCJ0aXRsZTYiOiJCSU5zIiwidGl0bGU3IjoiQ3VycmVuY2llcyIsInRpdGxlOCI6IlNwZW5kaW5nIFNjZW5hcmlvcyIsInRpdGxlOSI6IkdldCBTdGFydGVkIGZvciBGcmVlIiwidGl0bGUxMCI6IlRydXN0ZWQgYnkgbGVhZGVycyIsInRpdGxlMTEiOiJJc3N1ZSBVbmxpbWl0ZWQgVmlydHVhbCBDYXJkcyBJbnN0YW50bHkiLCJ0aXRsZTEyIjoiSW5zdGFudCBpc3N1YW5jZSDCtyBTZWN1cmUgcGF5bWVudHMgwrcgRnVsbCBjb250cm9sIiwidGl0bGUxMyI6IkdldCBZb3VyIFZpcnR1YWwgQ2FyZCBpbiBTZWNvbmRzIiwidGl0bGUxNCI6Ikluc3RhbnQgdmlydHVhbCBjYXJkIGlzc3VhbmNlIHdpdGggbm8gcGFwZXJ3b3JrIGFuZCBubyBkZWxheXMuIFN0YXJ0IHVzaW5nIHlvdXIgY2FyZCBpbW1lZGlhdGVseSBmb3Igb25saW5lIHBheW1lbnRzIGFuZCBzdWJzY3JpcHRpb25zLiIsInRpdGxlMTUiOiJTaW5nbGUtVXNlIFZpcnR1YWwgQ2FyZHMuIEZ1bGx5IEN1c3RvbWl6YWJsZSIsInRpdGxlMTYiOiJTZXQgc3BlbmRpbmcgbGltaXRzLCBmcmVlemUgY2FyZHMgYW55dGltZSwgYW5kIHJlZHVjZSBmcmF1ZCByaXNrcyB3aXRoIGRpc3Bvc2FibGUgdmlydHVhbCBjYXJkcy4iLCJ0aXRsZTE3IjoiUmVhbC1UaW1lIFZpcnR1YWwgQ2FyZCBTcGVuZGluZyBDb250cm9sIiwidGl0bGUxOCI6IkN1c3RvbWl6ZSBzcGVuZGluZyBsaW1pdHMsIGZyZWV6ZSBvciBjbG9zZSB2aXJ0dWFsIGNhcmRzIGFueXRpbWUsIGFuZCBtYWludGFpbiBmdWxsIGNvbnRyb2wgb3ZlciB5b3VyIGNhcmQgc2VjdXJpdHkuIiwidGl0bGUxOSI6IlVzZSBWaXJ0dWFsIENhcmRzIHdpdGggQXBwbGUgUGF5IFx1MDAyNiBHb29nbGUgcGF5IiwidGl0bGUyMCI6IkFkZCB5b3VyIHZpcnR1YWwgY2FyZCB0byBBcHBsZSBQYXkgb3IgR29vZ2xlIHBheSBhbmQgZW5qb3kgc2VhbWxlc3MgZ2xvYmFsIG9ubGluZSBwYXltZW50cy4iLCJ0aXRsZTIxIjoiR2xvYmFsIFBheW91dHMiLCJ0aXRsZTIyIjoiU2VuZCBlbXBsb3llZSBzYWxhcmllcyBhbmQgY29tbWlzc2lvbiBwYXlvdXRzIHRvIHdhbGxldHMgd29ybGR3aWRlIHdpdGggZmFzdCBhbmQgc2VjdXJlIGdsb2JhbCBwYXlvdXQgc29sdXRpb25zLiIsInRpdGxlMjMiOiJWaXJ0dWFsIENhcmQgUGF5bWVudHMgd2l0aCBQYXlQYWwiLCJ0aXRsZTI0IjoiVXNlIHlvdXIgdmlydHVhbCBjYXJkcyB3aXRoIFBheVBhbCB0byBjb21wbGV0ZSBzZWN1cmUgY3Jvc3MtcGxhdGZvcm0gb25saW5lIHBheW1lbnRzIHdvcmxkd2lkZS4iLCJ0aXRsZTI1IjoiUGh5c2ljYWwgQ2FyZHMiLCJ0aXRsZTI2IjoiVXNlIHBoeXNpY2FsIGNhcmRzIGZvciB3b3JsZHdpZGUgcGF5bWVudHMgYW5kIEFUTSB3aXRoZHJhd2Fscy4gT3JkZXIgdW5saW1pdGVkIGNhcmRzIGZvciBnbG9iYWwgc3BlbmRpbmcuIiwidGl0bGUyNyI6Ik9yZGVyIFlvdXIgQ2FyZCBOb3ciLCJ0aXRsZTI4IjoiR29vZ2xlIGFkcyIsInRpdGxlMjkiOiJGYWNlYm9vayBBZHMiLCJ0aXRsZTMwIjoiVHdpdHRlciBBZHMiLCJ0aXRsZTMxIjoiVGlrVG9rIEFkcyIsInRpdGxlMzIiOiJPcGVuQUkiLCJ0aXRsZTMzIjoiRGVlcE1pbmQiLCJ0aXRsZTM0IjoiQW1hem9uIiwidGl0bGUzNSI6IlNwZW5kIEdsb2JhbGx5IHdpdGggVmlydHVhbCBDYXJkcyIsInRpdGxlMzYiOiJVc2UgbXVsdGktY3VycmVuY3kgdmlydHVhbCBjYXJkcyB0byBwYXkgZ2xvYmFsbHkgZm9yIGFkcywgc3Vic2NyaXB0aW9ucywgYW5kIG9ubGluZSBzZXJ2aWNlcy4iLCJ0aXRsZTM3IjoiU3BlbmRpbmcgU2NlbmFyaW9zIiwidGl0bGUzOCI6IktleSBTcGVuZGluZyBVc2UgQ2FzZXMiLCJ0aXRsZTM5IjoiRGlzY292ZXIgaG93IHZpcnR1YWwgY2FyZHMgcG93ZXIgYWR2ZXJ0aXNpbmcsIHN1YnNjcmlwdGlvbnMsIGFuZCBnbG9iYWwgdHJhdmVsIHBheW1lbnRzLiIsInRpdGxlNDAiOiJGYWNlYm9vayIsInRpdGxlNDEiOiJHb29nbGUiLCJ0aXRsZTQyIjoiQWR2ZXJ0aXNpbmcgUGF5bWVudHMiLCJ0aXRsZTQzIjoiUGF5IGZvciBGYWNlYm9vayBBZHMsIEdvb2dsZSBBZHMsIGFuZCBUaWtUb2sgQWRzIHVzaW5nIHZpcnR1YWwgY2FyZHMgd2l0aCBoaWdoZXIgYXBwcm92YWwgcmF0ZXMsIGZld2VyIHBheW1lbnQgZmFpbHVyZXMsIGFuZCBiZXR0ZXIgYnVkZ2V0IGNvbnRyb2wuIiwidGl0bGU0NCI6IkNoYXRHUFQiLCJ0aXRsZTQ1IjoiTm90aW9uIiwidGl0bGU0NiI6IlRpa1RvayIsInRpdGxlNDciOiJTdWJzY3JpcHRpb24gU2VydmljZXMiLCJ0aXRsZTQ4IjoiVXNlIHZpcnR1YWwgY2FyZHMgZm9yIHJlY3VycmluZyBTYWFTIGFuZCBzdWJzY3JpcHRpb24gcGF5bWVudHMsIGluY2x1ZGluZyBDaGF0R1BUIGFuZCBvdGhlciBvbmxpbmUgc2VydmljZXMsIHdpdGggZnVsbCBjb250cm9sIG92ZXIgYmlsbGluZyBhbmQgcmVuZXdhbHMuIiwidGl0bGU0OSI6IlN0YXJ0IHVzaW5nIG5vdyIsInRpdGxlNTAiOiJBaXJibmIiLCJ0aXRsZTUxIjoiRmxpZ2h0IHRpY2tldHMiLCJ0aXRsZTUyIjoiSG90ZWwgcmVzZXJ2YXRpb25zIiwidGl0bGU1MyI6IlRyYXZlbCBhbmQgVG91cmlzbSIsInRpdGxlNTQiOiJQYXkgZm9yIGZsaWdodHMsIGhvdGVscywgYW5kIGFjY29tbW9kYXRpb24gcGxhdGZvcm1zIGxpa2UgQWlyYm5iIHVzaW5nIHZpcnR1YWwgY2FyZHMsIHdpdGggZ2xvYmFsIGFjY2VwdGFuY2UgYW5kIHNlY3VyZSBvbmxpbmUgcGF5bWVudHMuIiwidGl0bGU1NSI6IkV4cGxvcmUgdXNlIGNhc2VzIiwidGl0bGU1NiI6IlRlYW0gTWFuYWdlbWVudCBcdTAwMjYgQVBJIFN1cHBvcnQiLCJ0aXRsZTU3IjoiU3ViLWFjY291bnQgbWFuYWdlbWVudCIsInRpdGxlNTgiOiJDcmVhdGUgYW5kIG1hbmFnZSBtdWx0aXBsZSBzdWItYWNjb3VudHMgZm9yIHRlYW1zLCB3aXRoIGZsZXhpYmxlIHBlcm1pc3Npb24gYXNzaWdubWVudC4iLCJ0aXRsZTU5IjoiUm9sZS1CYXNlZCBBY2Nlc3MgQ29udHJvbCIsInRpdGxlNjAiOiJGaW5lLWdyYWluZWQgcGVybWlzc2lvbiBjb250cm9scyB0byBlbnN1cmUgc2VjdXJlIGFuZCBjb21wbGlhbnQgdGVhbSBvcGVyYXRpb25zLiIsInRpdGxlNjEiOiJBUEkgU3VwcG9ydCBmb3IgQXV0b21hdGVkIFdvcmtmbG93cyIsInRpdGxlNjIiOiJJbnRlZ3JhdGUgdmlydHVhbCBjYXJkIGlzc3VhbmNlLCBwYXltZW50cywgYW5kIGFjY291bnQgbWFuYWdlbWVudCBpbnRvIHlvdXIgc3lzdGVtcyB3aXRoIGZsZXhpYmxlIEFQSXMuIiwidGl0bGU2MyI6IkNvbnRhY3QgU2FsZXMiLCJ0aXRsZTY0IjoiVmlldyBBUEkgRG9jdW1lbnRhdGlvbiIsInRpdGxlNjUiOiJZb3UgaGF2ZSBzdWNjZXNzZnVsbHkgbWFkZSBhbiBhcHBvaW50bWVudC4iLCJ0aXRsZTY2IjoiTmFtZSIsInRpdGxlNjciOiJDb21wYW55IE5hbWUiLCJ0aXRsZTY4IjoiSm9iIFRpdGxlIiwidGl0bGU2OSI6Ik1haWwiLCJ0aXRsZTcwIjoiUGhvbmUgTnVtYmVyIiwidGl0bGU3MSI6IlByZWZlcnJlZCBBcHBvaW50bWVudCBUaW1lIiwidGl0bGU3MiI6IlNlcnZpY2UgRGVzY3JpcHRpb24iLCJ0aXRsZTczIjoiUGFydG5lciB3aXRoIEJ1dmVpIHRvIHNoYXBlIHRoZSBmdXR1cmUiLCJ0aXRsZTc0IjoiUHJvZmVzc2lvbmFsIGNvcnBvcmF0ZSB0cmF2ZWwgYW5kIGV4cGVuc2UgbWFuYWdlbWVudCBzb2x1dGlvbnMgdGhhdCBzdXBwb3J0IHlvdXIgYnVzaW5lc3MgYXQgZXZlcnkgc3RlcC4gTGV04oCZcyBleHBsb3JlIGhvdyB0byByZWR1Y2UgY29zdHMgYW5kIGltcHJvdmUgZWZmaWNpZW5jeSB0b2dldGhlci4iLCJ0aXRsZTc1IjoiTmFtZSBpcyByZXF1aXJlZCIsInRpdGxlNzYiOiJFbnRlciB5b3VyIG5hbWUiLCJ0aXRsZTc3IjoiQ29tcGFueSBOYW1lIGlzIHJlcXVpcmVkIiwidGl0bGU3OCI6IkVudGVyIHlvdXIgY29tcGFueSBOYW1lIiwidGl0bGU3OSI6IkpvYiB0aXRsZSAgaXMgcmVxdWlyZWQiLCJ0aXRsZTgwIjoiRW50ZXIgeW91ciBKb2IgVGl0bGUiLCJ0aXRsZTgxIjoiTWFpbCBpcyByZXF1aXJlZCIsInRpdGxlODIiOiJJbnZhbGlkIGVtYWlsIGZvcm1hdCIsInRpdGxlODMiOiJFbnRlciB5b3VyIG1haWwiLCJ0aXRsZTg0IjoiUGhvbmUgTnVtYmVyIGlzIHJlcXVpcmVkIiwidGl0bGU4NSI6IkVudGVyIHlvdXIgcGhvbmUgTnVtYmVyIiwidGl0bGU4NiI6IlByZWZlcnJlZCBBcHBvaW50bWVudCBUaW1lIGlzIHJlcXVpcmVkIiwidGl0bGU4NyI6IldlIHdpbGwgY29udGFjdCB5b3UgYXMgc29vbiBhcyBwb3NzaWJsZSB0byBzY2hlZHVsZSBhIGRlZGljYXRlZCBidXNpbmVzcyBjb25zdWx0YW50IHRvIHByb3ZpZGUgeW91IHdpdGggYSBkZXRhaWxlZCBzb2x1dGlvbi4iLCJ0aXRsZTg4IjoiU3VibWl0IEFwcG9pbnRtZW50IFJlcXVlc3QiLCJ0aXRsZTg5IjoiV2h5IGNob29zZSBCdXZlaT8iLCJ0aXRsZTkwIjoiQnV2ZWkgaGVscHMgYnVzaW5lc3NlcyBtYW5hZ2UgdmlydHVhbCBjYXJkIHBheW1lbnRzLCBwYXlvdXRzLCBhbmQgdGVhbSBzcGVuZGluZyBnbG9iYWxseSwgd2l0aCBoaWdoIGFwcHJvdmFsIHJhdGVzLCBzdHJvbmcgY29tcGxpYW5jZSwgYW5kIGVudGVycHJpc2UtZ3JhZGUgc2VjdXJpdHkuIiwidGl0bGU5MSI6IlN1cHBvcnRlZCBjb3VudHJpZXMgYW5kIHJlZ2lvbnMsIGVuYWJsaW5nIGdsb2JhbCB2aXJ0dWFsIGNhcmQgcGF5bWVudHMgZm9yIGludGVybmF0aW9uYWwgYnVzaW5lc3Nlcy4iLCJ0aXRsZTkyIjoiSGlnaCBhcHByb3ZhbCByYXRlIHdpdGggbG93IGZyaWN0aW9uLCBwb3dlcmVkIGJ5IGFuIGludGVsbGlnZW50IHJpc2sgZW5naW5lIHRoYXQgcmVkdWNlcyBkZWNsaW5lcyBhbmQgdHJhbnNhY3Rpb24gZmFpbHVyZXMuIiwidGl0bGU5MyI6IlN0YWJsZSBtb250aGx5IHRyYW5zYWN0aW9uIHZvbHVtZSBwcm9jZXNzZWQsIHdpdGggZmxleGlibGUgQVBJcyBmb3Igc2VhbWxlc3MgaW50ZWdyYXRpb24gaW50byBleGlzdGluZyBzeXN0ZW1zLiIsInRpdGxlOTQiOiJFbnRlcnByaXNlcyByZWR1Y2UgY3Jvc3MtYm9yZGVyIHBheW1lbnQgY29zdHMsIGltcHJvdmluZyBlZmZpY2llbmN5IGFuZCBvcGVyYXRpb25hbCBwZXJmb3JtYW5jZS4iLCJ0aXRsZTk1IjoiR2xvYmFsIFZpcnR1YWwgQ2FyZHMgZm9yIEFkcyBcdTAwMjYgU3Vic2NyaXB0aW9ucyB8IEJ1dmVpIiwidGl0bGU5NiI6IkJ1dmVpIHByb3ZpZGVzIGluc3RhbnQgdmlydHVhbCBjYXJkcyBmb3IgbXVsdGktY3VycmVuY3kgcGF5bWVudHMuIFBheSBmb3IgRmFjZWJvb2sgQWRzLCBHb29nbGUgQWRzLCBTYWFTIHN1YnNjcmlwdGlvbnMsIGFuZCBnbG9iYWwgb25saW5lIHNlcnZpY2VzIHdpdGggaGlnaCBhcHByb3ZhbCByYXRlcy4iLCJ0aXRsZTk3IjoiIiwidGl0bGU5OCI6IkJ1dmVpIGxldHMgeW91IGZ1bmQgdmlydHVhbCBWaXNhIGFuZCBNYXN0ZXJjYXJkIGNhcmRzIGluc3RhbnRseSwgc2V0IHBlci1jYXJkIHNwZW5kaW5nIGxpbWl0cywgYW5kIHBheSBmb3IgRmFjZWJvb2sgQWRzLCBHb29nbGUgQWRzLCBDaGF0R1BULCBBaXJibmIsIGFuZCAxNTArIGNvdW50cnkgbWVyY2hhbnRzIOKAlCB3aXRoIDIwKyBCSU4gb3B0aW9ucyBhbmQgZW50ZXJwcmlzZSB0ZWFtIGNvbnRyb2xzLiIsInRpdGxlOTkiOiIiLCJ0aXRsZTEwMCI6IiIsInRpdGxlMTAxIjoiIiwiZGVzYzEiOiJBIGdsb2JhbCBwYXltZW50IHBsYXRmb3JtIHRoYXQgc3VwcG9ydHMgYWQgcGF5bWVudHMsIEFwcGxlIFBheSwgZS1jb21tZXJjZSBwdXJjaGFzaW5nLCBhbmQgcGh5c2ljYWwgY2FyZHMuIn19fSwiaW5pdGlhbExvY2FsZSI6ImVuIiwibnMiOlsiY29tbW9uIiwiaW5kZXgiXSwidXNlckNvbmZpZyI6eyJkZWJ1ZyI6ZmFsc2UsImkxOG4iOnsiZGVmYXVsdExvY2FsZSI6ImVuIiwibG9jYWxlcyI6WyJlbiIsInZpIiwicnUiLCJqYSIsInB0IiwiYXIiLCJlcyIsImZyIl19LCJsb2NhbGVQYXRoIjoiL2FwcC9wdWJsaWMvbG9jYWxlcyIsInJlbG9hZE9uUHJlcmVuZGVyIjpmYWxzZSwiZG9tYWlucyI6W3siZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6ImVuIn0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoiZW4iLCJsb2NhbGVzIjpbImVuIl19LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6InZpIiwibG9jYWxlcyI6WyJ2aSJdfSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJydSIsImxvY2FsZXMiOlsicnUiXX0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoiamEiLCJsb2NhbGVzIjpbImphIl19LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6InB0IiwibG9jYWxlcyI6WyJwdCJdfSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJhciIsImxvY2FsZXMiOlsiYXIiXX0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoiZXMiLCJsb2NhbGVzIjpbImVzIl19LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6ImZyIiwibG9jYWxlcyI6WyJmciJdfV0sImRlZmF1bHQiOnsiZGVidWciOmZhbHNlLCJpMThuIjp7ImRlZmF1bHRMb2NhbGUiOiJlbiIsImxvY2FsZXMiOlsiZW4iLCJ2aSIsInJ1IiwiamEiLCJwdCIsImFyIiwiZXMiLCJmciJdfSwibG9jYWxlUGF0aCI6Ii9hcHAvcHVibGljL2xvY2FsZXMiLCJyZWxvYWRPblByZXJlbmRlciI6ZmFsc2UsImRvbWFpbnMiOlt7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJlbiJ9LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6ImVuIiwibG9jYWxlcyI6WyJlbiJdfSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJ2aSIsImxvY2FsZXMiOlsidmkiXX0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoicnUiLCJsb2NhbGVzIjpbInJ1Il19LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6ImphIiwibG9jYWxlcyI6WyJqYSJdfSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJwdCIsImxvY2FsZXMiOlsicHQiXX0seyJkb21haW4iOiJidXZlaS5jb20iLCJkZWZhdWx0TG9jYWxlIjoiYXIiLCJsb2NhbGVzIjpbImFyIl19LHsiZG9tYWluIjoiYnV2ZWkuY29tIiwiZGVmYXVsdExvY2FsZSI6ImVzIiwibG9jYWxlcyI6WyJlcyJdfSx7ImRvbWFpbiI6ImJ1dmVpLmNvbSIsImRlZmF1bHRMb2NhbGUiOiJmciIsImxvY2FsZXMiOlsiZnIiXX1dfX19fSwiX19OX1NTRyI6dHJ1ZX0sInBhZ2UiOiIvIiwicXVlcnkiOnt9LCJidWlsZElkIjoiNndZalAyS21NSzloQUlTb3JHaDFQIiwiaXNGYWxsYmFjayI6ZmFsc2UsImR5bmFtaWNJZHMiOls3MTkyNiw3NDc0NSw4OTQ3Niw4MDIyMV0sImdzcCI6dHJ1ZSwibG9jYWxlIjoiZW4iLCJsb2NhbGVzIjpbImVuIiwidmkiLCJydSIsImphIiwicHQiLCJhciIsImVzIiwiZnIiXSwiZGVmYXVsdExvY2FsZSI6ImVuIiwic2NyaXB0TG9hZGVyIjpbXX08L3NjcmlwdD48L2JvZHk+PC9odG1sPg=="}},"time_used":547,"timings":{"blocked":-1,"dns":11,"connect":1,"send":0,"wait":522,"receive":0,"ssl":12},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.459Z","timestamp":1785127668459,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: application/javascript\r\nexpires: Wed, 29 Jul 2026 04:47:48 GMT\r\ncache-control: public\r\nvary: accept-encoding\r\nx-frame-options: DENY\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=adrNh%2FFbHj3dXCk7ENr%2FkH%2FZjhA6UbW%2FxvRRJPDUsXXTwTo%2F5SHzrlNdSs7786KZP5iE1XCwvAt6Tate3hy79RkG7aLt5OkFTVCITwEyDsVqkiG4ZHSVstxBKw%3D%3D\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\ncontent-encoding: br\r\nserver: cloudflare\r\ncf-ray: a2190217eb958be6-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"]}],"data":{"size":1239,"size_decoded":1256,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (1238)","md5":"9e8f56e8e1806253ba01a95cfc3d392c","sha1":"a8af90d7482e1e99d03de6bf88fed2315c5dd728","sha256":"2595496fe48df6fcf9b1bc57c29a744c121eb4dd11566466bc13d2e52e6bbcc8","sha512":"63f0f6f94fbabadc3f774ccaa6a401696e8a7651a074bc077d214f91da080b36714fd799eb40fed64154972008e34fc733d6ee314ac675727b37b58ffbebebee","ssdeep":"","tlshash":"6021d5743a18107e226a0133e56f66cee1f23715fd17e440408ad89566e4fe5063fed9","first_seen":"2023-03-07T01:02:00Z","last_seen":"2026-08-03T14:28:06.118506Z","times_seen":413817,"resource_available":true,"data":"IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUoZSl7dHJ5e2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgY29uc29sZSlyZXR1cm47ImVycm9yImluIGNvbnNvbGU/Y29uc29sZS5lcnJvcihlKTpjb25zb2xlLmxvZyhlKX1jYXRjaChlKXt9fWZ1bmN0aW9uIHQoZSl7cmV0dXJuIGQuaW5uZXJIVE1MPSc8YSBocmVmPSInK2UucmVwbGFjZSgvIi9nLCImcXVvdDsiKSsnIj48L2E+JyxkLmNoaWxkTm9kZXNbMF0uZ2V0QXR0cmlidXRlKCJocmVmIil8fCIifWZ1bmN0aW9uIHIoZSx0KXt2YXIgcj1lLnN1YnN0cih0LDIpO3JldHVybiBwYXJzZUludChyLDE2KX1mdW5jdGlvbiBuKG4sYyl7Zm9yKHZhciBvPSIiLGE9cihuLGMpLGk9YysyO2k8bi5sZW5ndGg7aSs9Mil7dmFyIGw9cihuLGkpXmE7bys9U3RyaW5nLmZyb21DaGFyQ29kZShsKX10cnl7bz1kZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKG8pKX1jYXRjaCh1KXtlKHUpfXJldHVybiB0KG8pfWZ1bmN0aW9uIGModCl7Zm9yKHZhciByPXQucXVlcnlTZWxlY3RvckFsbCgiYSIpLGM9MDtjPHIubGVuZ3RoO2MrKyl0cnl7dmFyIG89cltjXSxhPW8uaHJlZi5pbmRleE9mKGwpO2E+LTEmJihvLmhyZWY9Im1haWx0bzoiK24oby5ocmVmLGErbC5sZW5ndGgpKX1jYXRjaChpKXtlKGkpfX1mdW5jdGlvbiBvKHQpe2Zvcih2YXIgcj10LnF1ZXJ5U2VsZWN0b3JBbGwodSksYz0wO2M8ci5sZW5ndGg7YysrKXRyeXt2YXIgbz1yW2NdLGE9by5wYXJlbnROb2RlLGk9by5nZXRBdHRyaWJ1dGUoZik7aWYoaSl7dmFyIGw9bihpLDApLGQ9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobCk7YS5yZXBsYWNlQ2hpbGQoZCxvKX19Y2F0Y2goaCl7ZShoKX19ZnVuY3Rpb24gYSh0KXtmb3IodmFyIHI9dC5xdWVyeVNlbGVjdG9yQWxsKCJ0ZW1wbGF0ZSIpLG49MDtuPHIubGVuZ3RoO24rKyl0cnl7aShyW25dLmNvbnRlbnQpfWNhdGNoKGMpe2UoYyl9fWZ1bmN0aW9uIGkodCl7dHJ5e2ModCksbyh0KSxhKHQpfWNhdGNoKHIpe2Uocil9fXZhciBsPSIvY2RuLWNnaS9sL2VtYWlsLXByb3RlY3Rpb24jIix1PSIuX19jZl9lbWFpbF9fIixmPSJkYXRhLWNmZW1haWwiLGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aShkb2N1bWVudCksZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5jdXJyZW50U2NyaXB0fHxkb2N1bWVudC5zY3JpcHRzW2RvY3VtZW50LnNjcmlwdHMubGVuZ3RoLTFdO2UucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKX0oKX0oKTsK"}},"time_used":3,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":3,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/image?url=https%3A%2F%2Fosspremium.s3.us-east-2.amazonaws.com%2Fa%2Fa_642f08%2F202504181946249f3d6a062f.webp\u0026w=1920\u0026q=75","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"imageset","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.489Z","timestamp":1785127668489,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/image?url=https%3A%2F%2Fosspremium.s3.us-east-2.amazonaws.com%2Fa%2Fa_642f08%2F202504181946249f3d6a062f.webp\u0026w=1920\u0026q=75 HTTP/1.1\r\nHost: buvei.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:49 GMT\r\ncontent-type: image/webp\r\ncontent-length: 503914\r\nserver: cloudflare\r\ncontent-security-policy: script-src 'none'; frame-src 'none'; sandbox;\r\nx-frame-options: DENY\r\nvary: Accept\r\ncache-control: public, max-age=60, must-revalidate\r\netag: jgnBhgeGvdfQxYSi62Z-rSE+GWD+Ve5jJIme7nvqb8U=\r\ncontent-disposition: inline; filename=\"202504181946249f3d6a062f.webp\"\r\nx-nextjs-cache: STALE\r\ncf-cache-status: DYNAMIC\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=LkHmnDNpxgMqR5GUyBpukFqv3hyYSCp%2BO515Iz9PaBuyDjta7bFQ1ZAqHG7BXQIY9OfDvESTh4RksP8YSh6gRNZ%2BgqRCgJ8te9dDdv3I%2BErutN3kFbcrNeB5OQ%3D%3D\"}]}\r\ncf-ray: a21902181be78be6-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"]}],"data":{"size":503914,"size_decoded":504736,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image","md5":"b0c72e0d5d596eaf6ad01dba8d8f252f","sha1":"00fca7d854021022a84395b52ee308a20504f612","sha256":"8e09c1860786bdd7d0c584a2eb667fad213e1960fe55ee6324899eee7bea6fc5","sha512":"b6f344858a11622f0f025edc9f34f11ba229d07d939c2d2b915d78e48f72b17ec4dd37a3910073f6e6886ed35a3afdd02453d2ec869d786579337c3477f7b0ad","ssdeep":"12288:ZbHEZwqAZ/TTpMUlTGIpsnPYY18rmJnIGQpu:ZbkZwqA5PpZlTGU6PL1jJIGQU","tlshash":"b9b4235555073ecac9193f324ce72ad3f6f93b456a7b0e507ce3a1ab10acbe07818169","first_seen":"2026-07-27T03:56:11.731249Z","last_seen":"2026-07-27T10:05:53.91506Z","times_seen":4,"resource_available":false,"data":"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"}},"time_used":1034,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":540,"receive":494,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"osspremium.s3.us-east-2.amazonaws.com/a/a_642f08/202504191458407a75444496.webp","fqdn":"osspremium.s3.us-east-2.amazonaws.com","domain":"osspremium.s3.us-east-2.amazonaws.com","tld":"s3.us-east-2.amazonaws.com"},"ip":{"addr":"3.5.129.105","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.840Z","timestamp":1785127668840,"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.us-east-2.amazonaws.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M01","organization":"Amazon"},"validity":{"start":"Sun, 12 Jul 2026 00:00:00 GMT","end":"Mon, 25 Jan 2027 23:59:59 GMT"},"fingerprint":{"sha1":"3D:BB:9A:8E:A8:9C:1D:D8:DF:47:3C:1C:F9:66:6D:AE:B2:C2:1F:70","sha256":"42:D0:E2:21:4B:C9:30:88:F5:97:C9:BD:04:E3:2C:89:B6:2A:4D:36:49:87:B6:73:E9:61:34:78:33:A1:28:79"}}},"request":{"raw":"GET /a/a_642f08/202504191458407a75444496.webp HTTP/1.1\r\nHost: osspremium.s3.us-east-2.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\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nx-amz-id-2: OXaDTctF+Chy37IPqutakdmpv7xU2rDTkZWnxPRwrhOz4xiDw+P7pMeNBkPbahgQnBgf2sOiCeO6HUIq99jjNxE0Hvm3AjIc\r\nx-amz-request-id: 8PVXNT72ZXX2NV6R\r\nDate: Mon, 27 Jul 2026 04:47:50 GMT\r\nLast-Modified: Sat, 19 Apr 2025 06:58:41 GMT\r\nETag: \"bd4a8f0845dbaef6c3243a7e81cf3f69\"\r\nx-amz-server-side-encryption: AES256\r\nAccept-Ranges: bytes\r\nContent-Type: image/webp\r\nContent-Length: 128092\r\nServer: AmazonS3\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}],"data":{"size":128092,"size_decoded":128510,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image","md5":"bd4a8f0845dbaef6c3243a7e81cf3f69","sha1":"31270d49fe894ebb6d97e52119253b38459fd9c1","sha256":"f269cc3e959f9d75a247b726acc12a0b4c2915e908f1552df900a04a7ad6bf52","sha512":"72a652144c6b0c12a240da8351ac2d07dbbb9046017bb23c76515f209f100b12bf4568ede3b8c61bf2519931ea95a6c628e885d6b00df3f482a7a6299283b0a9","ssdeep":"3072:k9k1r3JviEJ0cmXm7oWx0KR6UfALhnVhzEkuews:WkB3JvTJOKOk6sqhLEGZ","tlshash":"eac3123caad7c23dd271c27c668c1757e1b636412c6f66dcb04fd2263aa67c844ae05a","first_seen":"2026-07-27T03:56:11.737389Z","last_seen":"2026-07-27T10:05:53.936862Z","times_seen":4,"resource_available":false,"data":"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"}},"time_used":676,"timings":{"blocked":0,"dns":0,"connect":108,"send":0,"wait":133,"receive":323,"ssl":112},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/image?url=https%3A%2F%2Fosspremium.s3.us-east-2.amazonaws.com%2Fa%2Fa_642f08%2F202504191204014e9a9573b0.webp\u0026w=1920\u0026q=75","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"lazy-imageset","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.887Z","timestamp":1785127668887,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/image?url=https%3A%2F%2Fosspremium.s3.us-east-2.amazonaws.com%2Fa%2Fa_642f08%2F202504191204014e9a9573b0.webp\u0026w=1920\u0026q=75 HTTP/1.1\r\nHost: buvei.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:49 GMT\r\ncontent-type: image/webp\r\ncontent-length: 17198\r\nserver: cloudflare\r\ncontent-security-policy: script-src 'none'; frame-src 'none'; sandbox;\r\nx-frame-options: DENY\r\nvary: Accept\r\ncache-control: public, max-age=60, must-revalidate\r\netag: qz9+J-pcE6GLw0FyBRMzfj5M1rSwWwtwrGm+CAZJJTA=\r\ncontent-disposition: inline; filename=\"202504191204014e9a9573b0.webp\"\r\nx-nextjs-cache: STALE\r\ncf-cache-status: DYNAMIC\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=5w2lXBG7MgiCYh2uQFUN%2FZiiWH%2B1QAw%2BA4mDS4%2BzMyxHjl0dJqNZ3%2BraTE%2FUEH%2F%2FoE2Xa7kfq0C7iqLVP42D4%2FEYpESDL%2FA7d6CNyjM8VwL9NsW9TEq0fRnZyw%3D%3D\"}]}\r\ncf-ray: a219021a88a78be6-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"]}],"data":{"size":17198,"size_decoded":18033,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image","md5":"b86cb053a45b82ada06faf475136f7e7","sha1":"0f73b6b9d818f604e1ee38f6413da97faeda157e","sha256":"ab3f7e27fa5c13a18bc341720513337e3e4cd6b4b05b0b70ac69be0806492530","sha512":"fb1d625cf39c5585511a485a03c462e53d31517c6c92a54633c911a1e51e5788c1b1270336ae0e4d9573835960a519ddba6a5d9862ad26237b2629f0f99fdd33","ssdeep":"384:2wOALnhJl0GT2t5CoAa1YxJKtugMQM/4xt1:POALpB2t5U8uHQMAT1","tlshash":"8672d0a8db91f38cec4cb3b0b45029dd95b09ca41719af15e99c2627ce70dff971601a","first_seen":"2026-07-27T03:56:11.652451Z","last_seen":"2026-07-27T10:05:53.957608Z","times_seen":4,"resource_available":false,"data":"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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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"}},"time_used":392,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":386,"receive":6,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"client.crisp.chat/l.js","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:49.182Z","timestamp":1785127669182,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /l.js HTTP/1.1\r\nHost: client.crisp.chat\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 04:47:49 GMT\r\ncontent-type: application/javascript\r\naccess-control-allow-credentials: false\r\naccess-control-allow-headers: Content-Type, Origin\r\naccess-control-allow-methods: HEAD, GET, OPTIONS\r\naccess-control-allow-origin: *\r\naccess-control-max-age: 300\r\ncache-control: public, max-age=10800\r\ncross-origin-resource-policy: cross-origin\r\nx-content-type-options: nosniff\r\nexpires: Mon, 27 Jul 2026 07:47:49 GMT\r\nlast-modified: Tue, 21 Jul 2026 15:58:55 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\npriority: u=3,i=?0\r\nage: 45936\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: W/\"6a5f973f-1dd5\"\r\ncontent-encoding: br\r\ncf-ray: a219021c78d5b28a-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"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":7637,"size_decoded":3674,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (7543)","md5":"72c259f46cd540cdc3c987b515fe19f5","sha1":"4b2b6305cb0a58d67c3b85fbeaa00d703c90e4fc","sha256":"a8f55dbc140c0cc28590dc488fd4374b5d5a113dea704a50402236692f75dbe4","sha512":"72fed7388562dae5b81b1d48d20b9e131af1b6d5459f9cd37a70204c007cf95cf66eb6f336d4e8c20d51d5a058f79021dc1784e8ebc4531a1f723c796b269fe8","ssdeep":"192:lQSfZ0VsUEswg2r/gAbe39QoxdpsxGVkdlY3AnL/dCSaQwiY:J+SS4/M9QoxLkjY3AxZ1O","tlshash":"54f1631732696132059362aa163b2b49f43361295cc5c15cb169ecf1297ca8fa13bffe","first_seen":"2026-07-21T16:14:01.53582Z","last_seen":"2026-07-30T12:07:43.002176Z","times_seen":175,"resource_available":true,"data":"LyoqCiAqIGNyaXNwLWNsaWVudAogKiBAdmVyc2lvbiB2NC44LjcgMjNlNDIxMgogKiBAYXV0aG9yIENyaXNwIElNIFNBUwogKiBAZGF0ZSA3LzIxLzIwMjYKICovCm5ldyhmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgdD10aGlzO3RyeXtpZih0aGlzLm5zPSJDcmlzcExvYWRlciIsdGhpcy5fX2NvbnNvbGU9e3dhcm46ZnVuY3Rpb24odCxpKXt9LGVycm9yOmZ1bmN0aW9uKHQsaSl7fSxpbmZvOmZ1bmN0aW9uKHQsaSl7fSxsb2c6ZnVuY3Rpb24odCxpKXt9LGRlYnVnOmZ1bmN0aW9uKHQsaSl7fX0sdGhpcy50PSExLHRoaXMuaT0iaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMiLHRoaXMubz0iaHR0cHM6Ly9jbGllbnQucmVsYXkuY3Jpc3AuY2hhdCIsdGhpcy5oPSIyM2U0MjEyIix0aGlzLnU9e2RvbWFpbnM6W10sYWdlbnRzOlsiVHJpZGVudCIsIkdvb2dsZWJvdCIsIkJpbmdib3QiLCJTbHVycCIsIkR1Y2tEdWNrQm90IiwiQmFpZHVzcGlkZXIiLCJZYW5kZXhCb3QiLCJHVG1ldHJpeCIsIkxpZ2h0aG91c2UiLCJBY3VuZXRpeCIsIkFocmVmcyIsIlNlbXJ1c2hCb3QiLCJTaXRlQXVkaXRCb3QiLCJTcGxpdFNpZ25hbEJvdCIsIkhlYWRsZXNzQ2hyb21lIl0sZW5naW5lczpbe2VsZW1lbnQ6ImhlYWQgbGlua1tyZWw9J2ljb24nXVt0eXBlPSdpbWFnZS94LWljb24nXVtocmVmXj0naHR0cHM6Ly9zZWxscGFzcy5pbyddIn0se2VsZW1lbnQ6ImhlYWQgc2NyaXB0W3NyYyo9Jy9jZG4uc2VsbGl4LmlvLyddIn0se2VsZW1lbnQ6ImhlYWQgbGlua1tyZWw9J3ByZWNvbm5lY3QnXVtocmVmXj0naHR0cHM6Ly9jZG4uc2VsbGl4LmlvLyddIn0se2VsZW1lbnQ6ImhlYWQgbGlua1tyZWw9J3ByZWNvbm5lY3QnXVtocmVmXj0naHR0cHM6Ly9hcGkuc2VsbHNuLmlvJ10ifSx7ZWxlbWVudDoiaGVhZCBsaW5rW3JlbD0nYXV0aG9yJ11baHJlZl49J2h0dHBzOi8vZXJlZW1ieS5jb20vJ10ifSx7ZWxlbWVudDoiYm9keSBzY3JpcHRbc3JjJD0nL2Fpei1jb3JlLmpzJ10ifV19LHRoaXMubD0iJF9fQ1JJU1BfSU5TVEFOQ0UiLHRoaXMucD0iJF9fQ1JJU1BfSU5DTFVERUQiLHRoaXMuST0xMDAsdGhpcy52PTNlNCx0aGlzLl89MWUzLHRoaXMubT0yODAsdGhpcy5DPTMyMCx0aGlzLlI9NDIwLHRoaXMuUz1be3BhdHRlcm46L2VkZyg/OmUpP1wvKFswLTkuXSspLyx2ZXJzaW9uczp7c3VwcG9ydDoxOCxsZWdhY3k6MTE3fX0se3BhdHRlcm46L2Nocm9tKD86ZXxpdW0pXC8oWzAtOS5dKykvLHZlcnNpb25zOntzdXBwb3J0OjYzLGxlZ2FjeToxMTd9fSx7cGF0dGVybjovZmlyZWZveFwvKFswLTkuXSspLyx2ZXJzaW9uczp7c3VwcG9ydDo2NyxsZWdhY3k6Njd9fSx7cGF0dGVybjovb3ByXC8oWzAtOS5dKykvLHZlcnNpb25zOntzdXBwb3J0OjUwLGxlZ2FjeToxMDN9fSx7cGF0dGVybjovdmVyc2lvblwvKFswLTkuXSspKD86IG1vYmlsZVwvKD86W15cc10rKSk/IHNhZmFyaVwvLyx2ZXJzaW9uczp7c3VwcG9ydDoxMixsZWdhY3k6MTR9fSx7cGF0dGVybjovYW5kcm9pZCAoWzAtOS5dKykvLHZlcnNpb25zOntzdXBwb3J0OjUsbGVnYWN5OjEwfX1dLHRoaXMuRD0vKD86aHR0cDp8aHR0cHM6KT9cL1wvW14vXStcL2xcLyhbYS16QS1aMC05XC1fXSspXC5qcy9pLHRoaXMuUCgpLCEwPT09d2luZG93W3RoaXMucF18fHZvaWQgMCE9PXdpbmRvd1t0aGlzLmxdJiYiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93W3RoaXMubF0uX19pbml0KTtlbHNlIGlmKCEwIT09dGhpcy5PKCkpO2Vsc2V7aWYod2luZG93W3RoaXMucF09ITAsImludGVyYWN0aXZlIj09PWRvY3VtZW50LnJlYWR5U3RhdGV8fCJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlKXRoaXMuaW5pdCgpO2Vsc2V7dmFyIGk9ZG9jdW1lbnQub25yZWFkeXN0YXRlY2hhbmdlfHxmdW5jdGlvbigpe307d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGZ1bmN0aW9uKCl7dC5pbml0KCl9KSxkb2N1bWVudC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXsiZnVuY3Rpb24iPT10eXBlb2YgaSYmaSgpLCJpbnRlcmFjdGl2ZSIhPT1kb2N1bWVudC5yZWFkeVN0YXRlJiYiY29tcGxldGUiIT09ZG9jdW1lbnQucmVhZHlTdGF0ZXx8c2V0VGltZW91dChmdW5jdGlvbigpe3QuaW5pdCgpfSx0Ll8pfX10aGlzLlQoKX19Y2F0Y2gobil7fX12YXIgaT10LnByb3RvdHlwZTtyZXR1cm4gaS5pbml0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0cnl7aWYodGhpcy5OfHwhMD09PXRoaXMua3x8dGhpcy5BKCksdGhpcy5OJiYhMCE9PXRoaXMuayl7dGhpcy5rPSEwO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuaWQ9ImNyaXNwLWxvYWRlciIsZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXS5hcHBlbmRDaGlsZChpKTt2YXIgbj1mdW5jdGlvbigpe3QuSz1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYodC5LPW51bGwsdC5CLT10Lkksdm9pZCAwIT09d2luZG93W3QubF0mJiJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3dbdC5sXS5fX2luaXQmJiJub25lIj09PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGkpLmdldFByb3BlcnR5VmFsdWUoImRpc3BsYXkiKT09MSl7aS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGkpO3ZhciBlPXtkb2xsYXJDcmlzcDp3aW5kb3dbdC5sXSx3ZWJzaXRlRG9tYWluOnQuRyx3ZWJzaXRlSWQ6dC5OLHRva2VuSWQ6dC5qLGNvb2tpZUV4cGlyZTp0LkwsY29va2llRG9tYWluOnQuVSxwYWdlVXJsOnQuTSxwYWdlRG9tYWluOnQuVyxicm93c2VyVXNlcmFnZW50OnQuWCxicm93c2VyVGltZXpvbmU6dC5ZLGJyb3dzZXJDYXBhYmlsaXRpZXM6dC4kLGJyb3dzZXJMb2NhbGVzOnQuRixyZWFkeVRyaWdnZXI6dC5ILHJ1bnRpbWVDb25maWd1cmF0aW9uOnQuSixyZXNldEhhbmRsZXI6ZnVuY3Rpb24oKXt0LnJlc2V0KCl9fTt3aW5kb3dbdC5sXS5fX2luaXQoZSl9ZWxzZSB0LkI+MCYmbigpfSx0LkkpfTtuKCl9fWNhdGNoKGUpe319LGkucmVzZXQ9ZnVuY3Rpb24oKXt0cnl7bnVsbCE9PXRoaXMuSyYmY2xlYXJUaW1lb3V0KHRoaXMuSyksdGhpcy5QKCksdGhpcy5pbml0KCl9Y2F0Y2godCl7fX0saS5UPWZ1bmN0aW9uKCl7dHJ5e3RoaXMuWigiZG5zLXByZWZldGNoIix0aGlzLm8pLHRoaXMuWigicHJlY29ubmVjdCIsdGhpcy5pKSx0aGlzLnEoKSx0aGlzLlYoKX1jYXRjaCh0KXt9fSxpLlo9ZnVuY3Rpb24odCxpKXt0cnl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpO24uc2V0QXR0cmlidXRlKCJocmVmIixpKSxuLnNldEF0dHJpYnV0ZSgicmVsIix0KSxuLnNldEF0dHJpYnV0ZSgiY3Jvc3NvcmlnaW4iLCIiKSx0aGlzLnR0KG4pLGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQobil9Y2F0Y2goZSl7fX0saS5xPWZ1bmN0aW9uKCl7dHJ5e3ZhciB0PXRoaXMuaXQsaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtpLnNyYz10aGlzLmkrIi9qYXZhc2NyaXB0cy9jbGllbnRfIit0KyJfIit0aGlzLmgrIi5qcyIsaS50eXBlPSJtb2R1bGUiLGkuYXN5bmM9ITAsdGhpcy50dChpKSxkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKGkpfWNhdGNoKG4pe319LGkuVj1mdW5jdGlvbigpe3RyeXt2YXIgdD10aGlzLml0LGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpO2kuaHJlZj10aGlzLmkrIi9zdHlsZXNoZWV0cy9jbGllbnRfIit0KyJfIit0aGlzLmgrIi5jc3MiLGkudHlwZT0idGV4dC9jc3MiLGkucmVsPSJzdHlsZXNoZWV0Iix0aGlzLnR0KGkpLGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoaSl9Y2F0Y2gobil7fX0saS5QPWZ1bmN0aW9uKCl7dGhpcy5udCgpLHRoaXMuQSgpLHRoaXMuZXQoKSx0aGlzLnN0KCl9LGkubnQ9ZnVuY3Rpb24oKXt0aGlzLms9ITEsdGhpcy5LPW51bGwsdGhpcy5CPXRoaXMudix0aGlzLkc9ZG9jdW1lbnQuZG9tYWluLHRoaXMuTT1kb2N1bWVudC5sb2NhdGlvbi5ocmVmLHRoaXMuVz1kb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSx0aGlzLlg9d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQsdGhpcy5ZPShuZXcgRGF0ZSkuZ2V0VGltZXpvbmVPZmZzZXQoKSx0aGlzLkY9dGhpcy5vdCgpLHRoaXMuaXQ9dGhpcy5ydCgpfSxpLkE9ZnVuY3Rpb24oKXsic3RyaW5nIj09dHlwZW9mIENSSVNQX1dFQlNJVEVfSUQmJkNSSVNQX1dFQlNJVEVfSUQ/dGhpcy5OPUNSSVNQX1dFQlNJVEVfSUQ6dGhpcy5OPXRoaXMuaHQoKSwic3RyaW5nIj09dHlwZW9mIENSSVNQX1RPS0VOX0lEJiZDUklTUF9UT0tFTl9JRD90aGlzLmo9Q1JJU1BfVE9LRU5fSUQ6Im51bWJlciI9PXR5cGVvZiBDUklTUF9UT0tFTl9JRCYmQ1JJU1BfVE9LRU5fSUQ/dGhpcy5qPUNSSVNQX1RPS0VOX0lELnRvU3RyaW5nKCk6dGhpcy5qPW51bGwsIm51bWJlciI9PXR5cGVvZiBDUklTUF9DT09LSUVfRVhQSVJFJiZDUklTUF9DT09LSUVfRVhQSVJFPjA/dGhpcy5MPUNSSVNQX0NPT0tJRV9FWFBJUkU6dGhpcy5MPW51bGwsInN0cmluZyI9PXR5cGVvZiBDUklTUF9DT09LSUVfRE9NQUlOJiZDUklTUF9DT09LSUVfRE9NQUlOP3RoaXMuVT1DUklTUF9DT09LSUVfRE9NQUlOOnRoaXMuVT1udWxsLCJmdW5jdGlvbiI9PXR5cGVvZiBDUklTUF9SRUFEWV9UUklHR0VSP3RoaXMuSD1DUklTUF9SRUFEWV9UUklHR0VSOnRoaXMuSD17fSwib2JqZWN0Ij09dHlwZW9mIENSSVNQX1JVTlRJTUVfQ09ORklHP3RoaXMuSj1DUklTUF9SVU5USU1FX0NPTkZJRzp0aGlzLko9e30sIm9iamVjdCI9PXR5cGVvZiBDUklTUF9JTkNMVURFX0FUVFJTP3RoaXMuY3Q9Q1JJU1BfSU5DTFVERV9BVFRSUzp0aGlzLmN0PXt9fSxpLmV0PWZ1bmN0aW9uKCl7dHJ5e3RoaXMuJD1bXSwiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93Lk11dGF0aW9uT2JzZXJ2ZXImJiJmdW5jdGlvbiI9PXR5cGVvZiBKU09OLnN0cmluZ2lmeSYmdGhpcy4kLnB1c2goImJyb3dzaW5nIiksKCJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cuUlRDUGVlckNvbm5lY3Rpb24mJiJvYmplY3QiPT10eXBlb2YgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcyYmITA9PT13aW5kb3cuaXNTZWN1cmVDb250ZXh0JiYod2luZG93LmlubmVyV2lkdGh8fDApPj10aGlzLkMmJih3aW5kb3cuaW5uZXJIZWlnaHR8fDApPj10aGlzLlJ8fCEwPT09dGhpcy50KSYmdGhpcy4kLnB1c2goImNhbGwiKX1jYXRjaCh0KXt9fSxpLnN0PWZ1bmN0aW9uKCl7dHJ5e2lmKHRoaXMuSi5sb2NhbGUpe3ZhciB0PXRoaXMuRi5pbmRleE9mKHRoaXMuSi5sb2NhbGUpOy0xIT09dCYmdGhpcy5GLnNwbGljZSh0LDEpLHRoaXMuRi51bnNoaWZ0KHRoaXMuSi5sb2NhbGUpfX1jYXRjaChpKXt9fSxpLnR0PWZ1bmN0aW9uKHQpe3RyeXtmb3IodmFyIGkgaW4gdGhpcy5jdCl0aGlzLmN0Lmhhc093blByb3BlcnR5KGkpJiZ0LnNldEF0dHJpYnV0ZShpLHRoaXMuY3RbaV0pfWNhdGNoKG4pe319LGkuaHQ9ZnVuY3Rpb24oKXt2YXIgdD1udWxsO3RyeXtmb3IodmFyIGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgic2NyaXB0W3NyY10iKSxuPTA7bjxpLmxlbmd0aDtuKyspe3ZhciBlPXRoaXMuRC5leGVjKGlbbl0uc3JjKTtpZihlJiYic3RyaW5nIj09dHlwZW9mIGVbMV0pe3Q9ZVsxXTticmVha319fWNhdGNoKHMpe31maW5hbGx5e3JldHVybiB0fX0saS5ydD1mdW5jdGlvbigpe3ZhciB0PSJkZWZhdWx0Ijt0cnl7dmFyIGk9KG5hdmlnYXRvci51c2VyQWdlbnR8fCIiKS50b0xvd2VyQ2FzZSgpLG49KG5hdmlnYXRvci5hcHBWZXJzaW9ufHwiIikudG9Mb3dlckNhc2UoKSxlPSExLHM9ITE7LTE9PT1pLmluZGV4T2YoIm9wZXJhIG1pbmkvIikmJi0xPT09aS5pbmRleE9mKCJtc2llIikmJi0xPT09bi5pbmRleE9mKCJ0cmlkZW50LyIpfHwocz0hMCxlPSEwKTtmb3IodmFyIG89MDtvPHRoaXMuUy5sZW5ndGg7bysrKXt2YXIgcj10aGlzLlNbb10saD1pLm1hdGNoKHIucGF0dGVybiksYz1udWxsIT1oJiZoWzFdP3BhcnNlSW50KGhbMV0sMTApOi0xO2lmKCFpc05hTihjKSYmYz49MSl7dmFyIGE9ci52ZXJzaW9ucy5zdXBwb3J0LHU9ci52ZXJzaW9ucy5sZWdhY3k7YzxhJiYocz0hMCksYzw9dSYmKGU9ITApO2JyZWFrfX0hMD09PXM/dD1udWxsOiEwPT09ZSYmKHQ9ImxlZ2FjeSIpfWNhdGNoKGYpe31maW5hbGx5e3JldHVybiB0fX0saS5PPWZ1bmN0aW9uKCl7dmFyIHQ9ITA7dHJ5e3dpbmRvdy5pbm5lcldpZHRoJiZ3aW5kb3cuaW5uZXJXaWR0aDx0aGlzLm0/dD0hMTp0aGlzLml0PyEwIT09dGhpcy51dCgpfHwhMD09PXRoaXMuZnQodGhpcy5XKXx8ITA9PT10aGlzLmx0KHRoaXMuWCl8fCEwPT09dGhpcy5kdCgpP3Q9ITE6d2luZG93LldlYlNvY2tldD93aW5kb3cuX19uYXRpdmVQZXJmb3JtYW5jZSYmd2luZG93Ll9fbmF0aXZlUHJvbWlzZSYmKHQ9ITEpOnQ9ITE6dD0hMX1jYXRjaChpKXt9ZmluYWxseXtyZXR1cm4gdH19LGkudXQ9ZnVuY3Rpb24oKXt2YXIgdD0hMTt0cnl7aWYoITA9PT1uYXZpZ2F0b3IuY29va2llRW5hYmxlZCl0PSEwO2Vsc2UgaWYod2luZG93LmxvY2FsU3RvcmFnZSYmImZ1bmN0aW9uIj09dHlwZW9mIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSYmImZ1bmN0aW9uIj09dHlwZW9mIHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSYmImZ1bmN0aW9uIj09dHlwZW9mIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSl7dmFyIGk9IiIrKG5ldyBEYXRlKS5nZXRUaW1lKCksbj0iY3Jpc3AtY2xpZW50L2xvYWRlci9zdG9yYWdlL2NoZWNrIjt3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0obixpKSx0PXdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShuKT09PWl9fWNhdGNoKGUpe31maW5hbGx5e3JldHVybiB0fX0saS5mdD1mdW5jdGlvbih0PSIiKXt2YXIgaT0hMTt0cnl7aWYodClmb3IodmFyIG49MDtuPHRoaXMudS5kb21haW5zLmxlbmd0aDtuKyspe3ZhciBlPXRoaXMudS5kb21haW5zW25dLHM9Ii4iK2U7aWYodD09PWV8fHQuc2xpY2UoLTEqcy5sZW5ndGgpPT09cyl7aT0hMDticmVha319fWNhdGNoKG8pe31maW5hbGx5e3JldHVybiBpfX0saS5sdD1mdW5jdGlvbih0PSIiKXt2YXIgaT0hMTt0cnl7aWYodClmb3IodmFyIG49MDtuPHRoaXMudS5hZ2VudHMubGVuZ3RoO24rKylpZigtMSE9PXQuaW5kZXhPZih0aGlzLnUuYWdlbnRzW25dKSl7aT0hMDticmVha319Y2F0Y2goZSl7fWZpbmFsbHl7cmV0dXJuIGl9fSxpLmR0PWZ1bmN0aW9uKCl7dmFyIHQ9ITE7dHJ5e2Zvcih2YXIgaT0wO2k8dGhpcy51LmVuZ2luZXMubGVuZ3RoO2krKyl7dmFyIG49dGhpcy51LmVuZ2luZXNbaV0sZT0hMTtpZihuLmVsZW1lbnQmJihlPSEhZG9jdW1lbnQucXVlcnlTZWxlY3RvcihuLmVsZW1lbnQpKSwhMD09PWUpe3Q9ITA7YnJlYWt9fX1jYXRjaChzKXt9ZmluYWxseXtyZXR1cm4gdH19LGkub3Q9ZnVuY3Rpb24oKXt2YXIgdD1bXTt0cnl7Zm9yKHZhciBpLG49KG51bGw9PShpPW5hdmlnYXRvci5sYW5ndWFnZXMpP3ZvaWQgMDppLmxlbmd0aCk+MD9uYXZpZ2F0b3IubGFuZ3VhZ2VzOltuYXZpZ2F0b3IubGFuZ3VhZ2V8fG5hdmlnYXRvci51c2VyTGFuZ3VhZ2VdLGU9MDtlPG4ubGVuZ3RoO2UrKyluW2VdJiZ0LnB1c2gobltlXSl9Y2F0Y2gocyl7fWZpbmFsbHl7cmV0dXJuIHR9fSx0fSgpKTs="}},"time_used":15,"timings":{"blocked":0,"dns":0,"connect":8,"send":0,"wait":7,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtag/js?id=AW-11297594795\u0026cx=c\u0026gtm=4e67m0","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.72","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:49.874Z","timestamp":1785127669874,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google-analytics.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:33 GMT","end":"Mon, 21 Sep 2026 08:37:32 GMT"},"fingerprint":{"sha1":"85:82:80:E9:F0:BC:08:B5:D8:5D:91:B4:E5:D3:DB:B1:A7:2F:E3:F3","sha256":"E3:94:E9:DA:2C:F1:36:09:33:63:D3:69:08:E7:E6:91:8D:F3:61:7F:0F:D0:5F:8E:B6:E9:D7:F3:DD:10:3C:DC"}}},"request":{"raw":"GET /gtag/js?id=AW-11297594795\u0026cx=c\u0026gtm=4e67m0 HTTP/1.1\r\nHost: www.googletagmanager.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: application/javascript; charset=UTF-8\r\naccess-control-allow-origin: *\r\naccess-control-allow-credentials: true\r\naccess-control-allow-headers: Cache-Control\r\ncontent-encoding: zstd\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 04:47:49 GMT\r\nexpires: Mon, 27 Jul 2026 04:47:49 GMT\r\ncache-control: private, max-age=900\r\nlast-modified: Mon, 27 Jul 2026 03:00:00 GMT\r\nstrict-transport-security: max-age=31536000; includeSubDomains\r\ncross-origin-resource-policy: cross-origin\r\nserver: Google Tag Manager\r\ncontent-length: 155981\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":450876,"size_decoded":156611,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (5422)","md5":"617b43da75963b415775d6e689421248","sha1":"381e51da9201c7af20e9e974952465113ec3fa7c","sha256":"ad00254149962c4325692430fac64b1dc5d5792b496d0ea9b684b0035537db15","sha512":"b5bfa057332bfa8e88d41b53996041c99a10448bb40260c2eb59eaeab01cf7223d0c6d5864d3cd215af3ebf6f09a9f95f76d87962a99a7f521b055b4bc63e717","ssdeep":"6144:HsyDU0jNo7P69FMxmRkqn0hdBScPmfxNf3Ej+RGawoXxS:HsywYqP69V3KqBwOxS","tlshash":"63a409cdb3d674229396f478503f018ba57a28e2f448c899f189dce42e7465a8277f7c","first_seen":"2026-07-27T03:56:11.676436Z","last_seen":"2026-07-27T04:49:42.828229Z","times_seen":3,"resource_available":true,"data":"Ci8vIENvcHlyaWdodCAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKKGZ1bmN0aW9uKCl7Cgp2YXIgZGF0YSA9IHsKInJlc291cmNlIjogewogICJ2ZXJzaW9uIjoiMSIsCiAgCiAgIm1hY3JvcyI6W3siZnVuY3Rpb24iOiJfX2UifV0sCiAgInRhZ3MiOlt7ImZ1bmN0aW9uIjoiX19vZ3RfYWRzX2RhdGF0b3MiLCJwcmlvcml0eSI6MTcsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJBVy0xMTI5NzU5NDc5NSIsInRhZ19pZCI6MTF9LHsiZnVuY3Rpb24iOiJfX29ndF8xcF9kYXRhX3YyIiwicHJpb3JpdHkiOjcsInZ0cF9pc0F1dG9FbmFibGVkIjp0cnVlLCJ2dHBfYXV0b1Bob25lRW5hYmxlZCI6dHJ1ZSwidnRwX2F1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIjpbImxpc3QiLFsibWFwIiwiZXhjbHVzaW9uU2VsZWN0b3IiLCIiXV0sInZ0cF9pc0VuYWJsZWQiOnRydWUsInZ0cF9hdXRvQWRkcmVzc0VuYWJsZWQiOnRydWUsInZ0cF9hdXRvRW1haWxFbmFibGVkIjp0cnVlLCJ2dHBfaXNBdXRvQ29sbGVjdFBpaUVuYWJsZWRGbGFnIjp0cnVlLCJ0YWdfaWQiOjR9LHsiZnVuY3Rpb24iOiJfX2NjZF9hZHNfZmlyc3QiLCJwcmlvcml0eSI6NiwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkFXLTExMjk3NTk0Nzk1IiwidGFnX2lkIjoxMn0seyJmdW5jdGlvbiI6Il9fY2NkX3ByZV9hdXRvX3BpaSIsInByaW9yaXR5Ijo0LCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiQVctMTEyOTc1OTQ3OTUiLCJ0YWdfaWQiOjEwfSx7ImZ1bmN0aW9uIjoiX19jY2RfZW1fZm9ybSIsInByaW9yaXR5IjozLCJ2dHBfaW5jbHVkZVBhcmFtcyI6ZmFsc2UsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJBVy0xMTI5NzU5NDc5NSIsInRhZ19pZCI6OX0seyJmdW5jdGlvbiI6Il9fY2NkX2VtX3BhZ2VfdmlldyIsInByaW9yaXR5IjoyLCJ2dHBfaGlzdG9yeUV2ZW50cyI6dHJ1ZSwidnRwX2RlZmVyUGFnZVZpZXciOnRydWUsInZ0cF9pbmNsdWRlUGFyYW1zIjp0cnVlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiQVctMTEyOTc1OTQ3OTUiLCJ0YWdfaWQiOjh9LHsiZnVuY3Rpb24iOiJfX2NjZF9hZGRfMXBfZGF0YSIsInByaW9yaXR5IjoxLCJ2dHBfYWNjZXB0QXV0b21hdGljIjp0cnVlLCJ2dHBfYWNjZXB0Q29kZSI6dHJ1ZSwidnRwX2FjY2VwdE1hbnVhbFNlbGVjdG9yIjp0cnVlLCJ2dHBfYWNjZXB0VXNlckRhdGEiOnRydWUsInZ0cF9tYXRjaGluZ1J1bGVzIjoie1widHlwZVwiOjEsXCJhcmdzXCI6W3tcImJvb2xlYW5FeHByZXNzaW9uVmFsdWVcIjp7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wic3RyaW5nVmFsdWVcIjpcImNvbnZlcnNpb25cIn0se1wiY29udGV4dFZhbHVlXCI6e1wibmFtZXNwYWNlVHlwZVwiOjEsXCJrZXlQYXJ0c1wiOltcIm1ldGFkYXRhXCIsXCJoaXRfdHlwZVwiXX19XX19LHtcImJvb2xlYW5FeHByZXNzaW9uVmFsdWVcIjp7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wic3RyaW5nVmFsdWVcIjpcInVzZXJfZGF0YV93ZWJcIn0se1wiY29udGV4dFZhbHVlXCI6e1wibmFtZXNwYWNlVHlwZVwiOjEsXCJrZXlQYXJ0c1wiOltcIm1ldGFkYXRhXCIsXCJoaXRfdHlwZVwiXX19XX19XX0iLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiQVctMTEyOTc1OTQ3OTUiLCJ0YWdfaWQiOjd9LHsiZnVuY3Rpb24iOiJfX3JlcCIsInZ0cF9jb250YWluZXJJZCI6IkFXLTExMjk3NTk0Nzk1IiwidnRwX3JlbW90ZUNvbmZpZyI6WyJtYXAiXSwidGFnX2lkIjoxfSx7ImZ1bmN0aW9uIjoiX19jY2RfYWRzX2xhc3QiLCJwcmlvcml0eSI6MCwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkFXLTExMjk3NTk0Nzk1IiwidGFnX2lkIjo2fV0sCiAgInByZWRpY2F0ZXMiOlt7ImZ1bmN0aW9uIjoiX2VxIiwiYXJnMCI6WyJtYWNybyIsMF0sImFyZzEiOiJndG0uanMifSx7ImZ1bmN0aW9uIjoiX2VxIiwiYXJnMCI6WyJtYWNybyIsMF0sImFyZzEiOiJndG0uaW5pdCJ9XSwKICAicnVsZXMiOltbWyJpZiIsMF0sWyJhZGQiLDddXSxbWyJpZiIsMV0sWyJhZGQiLDEsOCw2LDUsNCwzLDAsMl1dXQp9LAoicnVudGltZSI6WyBbNTAsIl9fY2NkX2FkZF8xcF9kYXRhIixbNDYsImEiXSxbNTAsInciLFs0NiwiYUIiXSxbMjIsWzMwLFsyMCxbMTUsImFCIl0sWzQ0XV0sWzIwLFsxNSwiYUIiXSxbNDVdXV0sWzQ2LFszNixbN11dXV0sWzIyLFsyMCxbImciLFsxNSwiYUIiXV0sImFycmF5Il0sWzQ2LFszNixbMTUsImFCIl1dXV0sWzM2LFs3LFsxNSwiYUIiXV1dXSxbNTAsIngiLFs0NiwiYUIiLCJhQyJdLFsyMixbMSxbMTUsImFCIl0sWzE2LFsxNSwiYUIiXSxbMTUsIm0iXV1dLFs0NixbNTMsWzM4LFsxNixbMTUsImFCIl0sWzE1LCJtIl1dLFs0NixbMTUsIm8iXSxbMTUsInAiXV0sWzQ2LFs1LFs0NixbMzYsWzE1LCJsIl1dXV0sWzUsWzQ2LFszNixbMTUsImsiXV1dXSxbOSxbNDYsWzM2LFsxNSwiaiJdXV1dXV1dXV0sWzM2LFsxNSwiYUMiXV1dLFs1MCwieSIsWzQ2LCJhQiIsImFDIiwiYUQiXSxbMjIsWzE1LCJhQiJdLFs0NixbMzYsWyJ4IixbMTUsImFCIl0sWzE1LCJqIl1dXV1dLFsyMixbMTUsImFDIl0sWzQ2LFszNixbMTUsImsiXV1dXSxbMjIsWzE1LCJhRCJdLFs0NixbMzYsWzE1LCJsIl1dXV0sWzM2LFs0NF1dXSxbNTAsInoiLFs0NiwiYUIiLCJhQyIsImFEIl0sWzIyLFsyOCxbMTUsImFDIl1dLFs0NixbMzYsZmFsc2VdXV0sWzQxLCJhRSJdLFszLCJhRSIsZmFsc2VdLFs1MiwiYUYiLFsieCIsWzE1LCJhQyJdLFsxNSwiYUQiXV1dLFs2NSwiYUciLFsyLFsxNSwiZiJdLCJrZXlzIixbNyxbMTUsImFDIl1dXSxbNDYsWzUzLFsyMixbMjAsWzE1LCJhRyJdLFsxNSwibiJdXSxbNDYsWzZdXV0sWzUyLCJhSCIsWyJ3IixbMTYsWzE1LCJhQyJdLFsxNSwiYUciXV1dXSxbNTIsImFJIixbMSxbMTYsWzE1LCJhQyJdLFsxNSwibiJdXSxbMTYsWzE2LFsxNSwiYUMiXSxbMTUsIm4iXV0sWzE1LCJhRyJdXV1dLFs1MiwiYUoiLFsidyIsWzE1LCJhSSJdXV0sWzUzLFs0MSwiYUsiXSxbMywiYUsiLDBdLFs2MyxbNywiYUsiXSxbMjMsWzE1LCJhSyJdLFsxNyxbMTUsImFIIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJhSyJdLFszLCJhSyIsWzAsWzE1LCJhSyJdLDFdXV0sWzQ2LFs1MyxbNTIsImFMIixbMTYsWzE1LCJhSCJdLFsxNSwiYUsiXV1dLFsyMixbMjgsWzE1LCJhTCJdXSxbNDYsWzZdXV0sWzQzLFsxNSwiYUIiXSxbMTUsImFHIl0sWzMwLFsxNixbMTUsImFCIl0sWzE1LCJhRyJdXSxbN11dXSxbNDMsWzE1LCJhQiJdLFsxNSwibiJdLFszMCxbMTYsWzE1LCJhQiJdLFsxNSwibiJdXSxbOF1dXSxbNDMsWzE2LFsxNSwiYUIiXSxbMTUsIm4iXV0sWzE1LCJhRyJdLFszMCxbMTYsWzE2LFsxNSwiYUIiXSxbMTUsIm4iXV0sWzE1LCJhRyJdXSxbN11dXSxbNTIsImFNIixbMixbMTYsWzE1LCJhQiJdLFsxNSwiYUciXV0sImluZGV4T2YiLFs3LFsxNSwiYUwiXV1dXSxbMjIsWzIxLFsxNSwiYU0iXSxbMjcsMV1dLFs0NixbNl1dXSxbMixbMTYsWzE1LCJhQiJdLFsxNSwiYUciXV0sInB1c2giLFs3LFsxNSwiYUwiXV1dLFs1MiwiYU4iLFszMCxbMTYsWzE1LCJhSiJdLFsxNSwiYUsiXV0sWzgsIm1vZGUiLFsxNSwiYUYiXV1dXSxbMixbMTYsWzE2LFsxNSwiYUIiXSxbMTUsIm4iXV0sWzE1LCJhRyJdXSwicHVzaCIsWzcsWzE1LCJhTiJdXV0sWzMsImFFIix0cnVlXV1dXV1dXV0sWzM2LFsxNSwiYUUiXV1dLFs1MCwiYUEiLFs0NiwiYUIiLCJhQyIsImFEIl0sWzIyLFsxLFsxLFsyOCxbMTUsImFCIl1dLFsyOCxbMTUsImFDIl1dXSxbMjgsWzE1LCJhRCJdXV0sWzQ2LFs1MyxbMzYsWzgsInVzZXJEYXRhIixbNDRdLCJkaWRCbGVuZCIsZmFsc2VdXV1dXSxbNTIsImFFIixbOF1dLFs1MiwiYUYiLFsieiIsWzE1LCJhRSJdLFsxNSwiYUIiXSxbMTUsImoiXV1dLFs1MiwiYUciLFsieiIsWzE1LCJhRSJdLFsxNSwiYUMiXSxbMTUsImsiXV1dLFs1MiwiYUgiLFsieiIsWzE1LCJhRSJdLFsxNSwiYUQiXSxbMTUsImwiXV1dLFsyMixbMSxbMSxbMjgsWzE1LCJhRiJdXSxbMjgsWzE1LCJhRyJdXV0sWzI4LFsxNSwiYUgiXV1dLFs0NixbNTMsWzM2LFs4LCJ1c2VyRGF0YSIsWzQ0XSwiZGlkQmxlbmQiLGZhbHNlXV1dXV0sWzUyLCJhSSIsWzE5LFswLFswLFszOSxbMTUsImFGIl0sMSwwXSxbMzksWzE1LCJhRyJdLDEsMF1dLFszOSxbMTUsImFIIl0sMSwwXV0sMl1dLFszNixbOCwidXNlckRhdGEiLFsxNSwiYUUiXSwiZGlkQmxlbmQiLFsxNSwiYUkiXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImYiLFsicmVxdWlyZSIsIk9iamVjdCJdXSxbNTIsImciLFsicmVxdWlyZSIsImdldFR5cGUiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJpbnRlcm5hbC50cmFja1VzYWdlIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9ldmVudFVzYWdlVHJhY2tlcklkcyJdXSxbNTIsImoiLCJjIl0sWzUyLCJrIiwibSJdLFs1MiwibCIsImEiXSxbNTIsIm0iLCJfdGFnX21vZGUiXSxbNTIsIm4iLCJfdGFnX21ldGFkYXRhIl0sWzUyLCJvIiwiQVVUTyJdLFs1MiwicCIsIk1BTlVBTCJdLFs1MiwicSIsWyJyZXF1aXJlIiwiZ2V0Q29udGFpbmVyVmVyc2lvbiJdXSxbNTIsInIiLFszMCxbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFsxNyxbInEiXSwiY29udGFpbmVySWQiXV1dLFs1MiwicyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFsicyIsWzE1LCJyIl0sImNjZF9hZGRfMXBfZGF0YSIsdHJ1ZV0sWzIyLFszMCxbMzAsWzI4LFsxNyxbMTUsImEiXSwibWF0Y2hpbmdSdWxlcyJdXSxbMjgsWzE3LFsxNSwiYSJdLCJhY2NlcHRVc2VyRGF0YSJdXV0sWzEsWzEsWzI4LFsxNyxbMTUsImEiXSwiYWNjZXB0QXV0b21hdGljIl1dLFsyOCxbMTcsWzE1LCJhIl0sImFjY2VwdE1hbnVhbFNlbGVjdG9yIl1dXSxbMjgsWzE3LFsxNSwiYSJdLCJhY2NlcHRDb2RlIl1dXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJ0IixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwidSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiJdXSxbNTIsInYiLFs1MSwiIixbNywiYUIiXSxbMjIsWzI4LFsidSIsWzE3LFsxNSwiYSJdLCJtYXRjaGluZ1J1bGVzIl0sWzgsInByZUhpdCIsWzE1LCJhQiJdXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWzIsWzE1LCJhQiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJCTyJdXV0sWzQ2LFs1MyxbMixbMTUsImFCIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJiIl0sIkNOIl0sdHJ1ZV1dLFszNl1dXV0sWzQxLCJhQyJdLFs0MSwiYUQiXSxbNTIsImFFIixbImQiLFsxNyxbMTUsImUiXSwiQ0siXV1dLFs1MiwiYUYiLFsxLFsxNSwiciJdLFsyMCxbMixbMTUsInIiXSwiaW5kZXhPZiIsWzcsIkFXLSJdXSwwXV1dLFs1MiwiYUciLFsxLFsxNSwiYUUiXSxbMTUsImFGIl1dXSxbMjIsWzE1LCJhRyJdLFs0NixbNTMsWzUyLCJhSCIsWzM5LFsxNyxbMTUsImEiXSwiYWNjZXB0Q29kZSJdLFsyLFsxNSwiYUIiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiQ1oiXV1dLFs0NF1dXSxbNTIsImFJIixbMzksWzE3LFsxNSwiYSJdLCJhY2NlcHRNYW51YWxTZWxlY3RvciJdLFsyLFsxNSwiYUIiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiREEiXV1dLFs0NF1dXSxbNDEsImFKIl0sWzIyLFsxNyxbMTUsImEiXSwiYWNjZXB0QXV0b21hdGljIl0sWzQ2LFs1MyxbNTIsImFMIixbMixbMTUsImFCIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJiIl0sIkNZIl1dXV0sWzIyLFsxNSwiYUwiXSxbNDYsWzUzLFszLCJhSiIsWyJhTCIsWzE1LCJhQiJdXV1dXV1dXV0sWzIyLFsxLFsxNyxbMTUsImEiXSwiYWNjZXB0Q29kZSJdLFsyMCxbMTUsImFIIl0sWzQ1XV1dLFs0NixbNTMsWzM2XV1dXSxbNTIsImFLIixbImFBIixbMTUsImFIIl0sWzE1LCJhSSJdLFsxNSwiYUoiXV1dLFszLCJhRCIsWzE3LFsxNSwiYUsiXSwidXNlckRhdGEiXV0sWzIyLFsxNyxbMTUsImFLIl0sImRpZEJsZW5kIl0sWzQ2LFs1MyxbImgiLCJHVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTCIsWzE3LFsxNSwiaSJdLCJBRSJdXV1dXSxbMywiYUMiLFsieSIsWzE1LCJhSCJdLFsxNSwiYUkiXSxbMTUsImFKIl1dXV1dLFs0NixbNTMsWzIyLFsxNyxbMTUsImEiXSwiYWNjZXB0Q29kZSJdLFs0NixbNTMsWzMsImFEIixbMixbMTUsImFCIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJiIl0sIkNaIl1dXV0sWzIyLFsyMCxbMTUsImFEIl0sWzQ1XV0sWzQ2LFs1MyxbMzZdXV1dLFszLCJhQyIsWyJ4IixbMTUsImFEIl0sWzE1LCJqIl1dXV1dXSxbMjIsWzEsWzI4LFsxNSwiYUQiXV0sWzE3LFsxNSwiYSJdLCJhY2NlcHRNYW51YWxTZWxlY3RvciJdXSxbNDYsWzUzLFszLCJhRCIsWzIsWzE1LCJhQiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJEQSJdXV1dLFszLCJhQyIsWzE1LCJrIl1dXV1dLFsyMixbMSxbMjgsWzE1LCJhRCJdXSxbMTcsWzE1LCJhIl0sImFjY2VwdEF1dG9tYXRpYyJdXSxbNDYsWzUzLFs1MiwiYUgiLFsyLFsxNSwiYUIiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiQ1kiXV1dXSxbMjIsWzE1LCJhSCJdLFs0NixbNTMsWzMsImFEIixbImFIIixbMTUsImFCIl1dXSxbMywiYUMiLFsxNSwibCJdXV1dXV1dXV1dXSxbMjIsWzE1LCJhRCJdLFs0NixbNTMsWzIsWzE1LCJhQiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJDVyJdLFsxNSwiYUQiXV1dLFsyLFsxNSwiYUIiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYyJdLCJKUCJdLFsxNSwiYUMiXV1dXV1dLFsyLFsxNSwiYUIiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiQ04iXSx0cnVlXV1dXSxbInQiLFsxNSwiciJdLFsxNSwidiJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfYWRzX2ZpcnN0IixbNDYsImEiXSxbNTAsImYiLFs0NiwiZyJdLFsyLFsxNSwiYyJdLCJBIixbNyxbMTUsImciXV1dLFsyLFsxNSwiZCJdLCJBIixbNyxbMTUsImciXV1dLFsyLFsxNSwiZSJdLCJBIixbNyxbMTUsImciXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRHcHBQYXJhbXMiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX3Rhc2tQbGF0Zm9ybURldGVjdGlvbiJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfdGFza1NldFRlc3RIaXRQYXJhbXMiXV0sWyJiIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFs1MSwiIixbNywiZyJdLFsiZiIsWzE1LCJnIl1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2Fkc19sYXN0IixbNDYsImEiXSxbNTAsImciLFs0NiwiaCJdLFsyLFsxNSwiZiJdLCJBIixbNyxbMTUsImgiXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9hZHdvcmRzSGl0VHlwZSJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfdGFza0VuYWJsZUVuY3J5cHRpb24iXV0sWyJiIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFs1MSwiIixbNywiaCJdLFsiZyIsWzE1LCJoIl1dLFs1MiwiaSIsWzIsWzE1LCJoIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJjIl0sIkFRIl1dXV0sWzIyLFsyMSxbMTUsImkiXSxbMTcsWzE1LCJlIl0sIkQiXV0sWzQ2LFs1MyxbMixbMTUsImgiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJLSSJdLFs0NF1dXV1dXSxbMjIsWzEsWzIwLFsxNSwiaSJdLFsxNyxbMTUsImUiXSwiRCJdXSxbMjgsWzIsWzE1LCJoIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImQiXSwiS0ciXV1dXV0sWzQ2LFs1MyxbMixbMTUsImgiXSwiYWJvcnQiLFs3XV1dXV1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZW1fZm9ybSIsWzQ2LCJhIl0sWzUwLCJ4IixbNDYsImFMIl0sWzUyLCJhTSIsWzMwLFsxNixbMTUsImFMIl0sWzE1LCJyIl1dLFs4XV1dLFs0MyxbMTUsImFNIl0sImV2ZW50X3VzYWdlIixbNyxbMTcsWzE1LCJnIl0sIkgiXV1dLFs0MyxbMTUsImFMIl0sWzE1LCJyIl0sWzE1LCJhTSJdXV0sWzUwLCJ5IixbNDYsImFMIiwiYU0iXSxbNTIsImFOIixbMzAsWzE2LFsxNSwiYUwiXSxbMTUsInIiXV0sWzhdXV0sWzIyLFsxNixbMTUsImFNIl0sImd0bS5mb3JtQ2FuY2VsZWQiXSxbNDYsWzUzLFs0MyxbMTUsImFOIl0sWzE3LFsxNSwiaSJdLCJBSiJdLHRydWVdXV1dLFsyLFsxNSwidSJdLCJCIixbNyxbMTUsImFMIl0sWzE1LCJhTiJdXV1dLFs1MCwieiIsWzQ2LCJhTCIsImFNIiwiYU4iXSxbNTIsImFPIixbMixbMTUsInciXSwiZmlsdGVyIixbNyxbNTEsIiIsWzcsImFRIl0sWzM2LFsyMCxbMixbMTUsImFRIl0sImluZGV4T2YiLFs3LCJBVy0iXV0sMF1dXV1dXSxbMjIsWzE4LFsxNyxbMTUsImFPIl0sImxlbmd0aCJdLDBdLFs0NixbNTMsWyJ2IixbMTUsImFPIl0sWzE1LCJhTCJdLFsxNSwiYU0iXSxbMTUsImFOIl1dXV1dLFs1MiwiYVAiLFsyLFsxNSwidyJdLCJmaWx0ZXIiLFs3LFs1MSwiIixbNywiYVEiXSxbMzYsWzIxLFsyLFsxNSwiYVEiXSwiaW5kZXhPZiIsWzcsIkFXLSJdXSwwXV1dXV1dLFsyMixbMTgsWzE3LFsxNSwiYVAiXSwibGVuZ3RoIl0sMF0sWzQ2LFs1MyxbNDMsWzE1LCJhTiJdLCJkZWZlcnJhYmxlIix0cnVlXSxbInYiLFsxNSwiYVAiXSxbMTUsImFMIl0sWzE1LCJhTSJdLFsxNSwiYU4iXV1dXV1dLFs1MCwiYUsiLFs0Nl0sWzUyLCJhTCIsWyJtIixbImwiLDAsMi4xNDc0ODM2NDdFOV1dXSxbNDEsImFNIl0sWzMsImFNIiwwXSxbMzYsWzUxLCIiLFs3LCJhTiJdLFsyMixbMjAsWzE1LCJhTiJdLFsxNSwicyJdXSxbNDYsWzUzLFszLCJhTSIsWyJrIl1dLFszNixbMCxbIm0iLFsxNSwiYU0iXV0sWzE1LCJhTCJdXV1dXSxbNDYsWzIyLFsyMCxbMTUsImFOIl0sWzE1LCJvIl1dLFs0NixbNTMsWzIyLFsyMCxbMTUsImFNIl0sMF0sWzQ2LFs1MyxbMzYsWzAsWyJtIixbImsiXV0sWzE1LCJhTCJdXV1dXV0sWzUyLCJhTyIsWyJrIl1dLFsyMixbMjMsWzM3LFsxNSwiYU8iXSxbMTUsImFNIl1dLDIwMF0sWzQ2LFs1MyxbNTIsImFQIixbMTUsImFNIl1dLFszLCJhTSIsMF0sWzM2LFswLFsibSIsWzE1LCJhUCJdXSxbMTUsImFMIl1dXV1dXSxbMywiYU0iLDBdLFszNixbMCxbIm0iLFsxNSwiYU8iXV0sWzE1LCJhTCJdXV1dXV1dXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2NjZEVtRm9ybUFjdGl2aXR5Il1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImYiLFsicmVxdWlyZSIsInRlbXBsYXRlU3RvcmFnZSJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfZ29sZEV2ZW50VXNhZ2VJZCJdXSxbNTIsImgiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiaiIsWzE1LCJfX21vZHVsZV9hZHdvcmRzSGl0VHlwZSJdXSxbNTIsImsiLFsicmVxdWlyZSIsImdldFRpbWVzdGFtcE1pbGxpcyJdXSxbNTIsImwiLFsicmVxdWlyZSIsImdlbmVyYXRlUmFuZG9tIl1dLFs1MiwibSIsWyJyZXF1aXJlIiwibWFrZVN0cmluZyJdXSxbNTIsIm4iLFsxNyxbMTUsImgiXSwiQiJdXSxbNTIsIm8iLCJmb3JtX3N1Ym1pdCJdLFs1MiwicCIsImZvcm1fc3RhcnQiXSxbNTIsInEiLCJpc1JlZ2lzdGVyZWQiXSxbNTIsInIiLCJldmVudE1ldGFkYXRhIl0sWzUyLCJzIiwiY2xpY2siXSxbNTIsInQiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFsyMixbImQiLFsxNSwidCJdLFsxNSwibiJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbMixbMTUsImMiXSwiQSIsWzcsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXSxbMTcsWzE1LCJhIl0sInNraXBWYWxpZGF0aW9uIl0sWzE3LFsxNSwiYSJdLCJpbmNsdWRlUGFyYW1zIl1dXSxbMjIsWzIsWzE1LCJmIl0sImdldEl0ZW0iLFs3LFsxNSwicSJdXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzIsWzE1LCJmIl0sInNldEl0ZW0iLFs3LFsxNSwicSJdLHRydWVdXSxbNTIsInUiLFsxNSwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCJdXSxbNTIsInYiLFsicmVxdWlyZSIsImludGVybmFsLnNlbmRHdGFnRXZlbnQiXV0sWzUyLCJ3IixbMixbMTUsInUiXSwiQSIsWzcsImZvcm0iXV1dLFs1MiwiYUEiLFs4XV0sWzUyLCJhQiIsWzUxLCIiLFs3LCJhTCIsImFNIl0sWzIyLFsxNSwiYU0iXSxbNDYsWyJhTSJdXV0sWzUyLCJhTiIsWzE2LFsxNSwiYUwiXSwiZ3RtLmVsZW1lbnRJZCJdXSxbMjIsWzE2LFsxNSwiYUEiXSxbMTUsImFOIl1dLFs0NixbMzZdXV0sWzQzLFsxNSwiYUEiXSxbMTUsImFOIl0sdHJ1ZV0sWzUyLCJhTyIsWzgsImZvcm1faWQiLFsxNSwiYU4iXSwiZm9ybV9uYW1lIixbMTYsWzE1LCJhTCJdLCJndG0uaW50ZXJhY3RlZEZvcm1OYW1lIl0sImZvcm1fZGVzdGluYXRpb24iLFsxNixbMTUsImFMIl0sImd0bS5lbGVtZW50VXJsIl0sImZvcm1fbGVuZ3RoIixbMTYsWzE1LCJhTCJdLCJndG0uaW50ZXJhY3RlZEZvcm1MZW5ndGgiXSwiZmlyc3RfZmllbGRfaWQiLFsxNixbMTUsImFMIl0sImd0bS5pbnRlcmFjdGVkRm9ybUZpZWxkSWQiXSwiZmlyc3RfZmllbGRfbmFtZSIsWzE2LFsxNSwiYUwiXSwiZ3RtLmludGVyYWN0ZWRGb3JtRmllbGROYW1lIl0sImZpcnN0X2ZpZWxkX3R5cGUiLFsxNixbMTUsImFMIl0sImd0bS5pbnRlcmFjdGVkRm9ybUZpZWxkVHlwZSJdLCJmaXJzdF9maWVsZF9wb3NpdGlvbiIsWzE2LFsxNSwiYUwiXSwiZ3RtLmludGVyYWN0ZWRGb3JtRmllbGRQb3NpdGlvbiJdXV0sWzUyLCJhUCIsWzgsImV2ZW50SWQiLFsxNixbMTUsImFMIl0sImd0bS51bmlxdWVFdmVudElkIl1dXSxbIngiLFsxNSwiYVAiXV0sWyJ5IixbMTUsImFQIl0sWzE1LCJhTCJdXSxbNDMsWzE2LFsxNSwiYVAiXSxbMTUsInIiXV0sWzE3LFsxNSwiaSJdLCJBQSJdLCJmb3JtX3N0YXJ0Il0sWyJ6IixbMTUsInAiXSxbMTUsImFPIl0sWzE1LCJhUCJdXV1dLFs1MiwiYUMiLFsiYUsiXV0sWzUyLCJhRCIsWzUxLCIiLFs3LCJhTCIsImFNIl0sWzUyLCJhTiIsWyJhQyIsWzE1LCJvIl1dXSxbImFCIixbMTUsImFMIl0sWzQ0XV0sWzUyLCJhTyIsWzgsImZvcm1faWQiLFsxNixbMTUsImFMIl0sImd0bS5lbGVtZW50SWQiXSwiZm9ybV9uYW1lIixbMTYsWzE1LCJhTCJdLCJndG0uaW50ZXJhY3RlZEZvcm1OYW1lIl0sImZvcm1fZGVzdGluYXRpb24iLFsxNixbMTUsImFMIl0sImd0bS5lbGVtZW50VXJsIl0sImZvcm1fbGVuZ3RoIixbMTYsWzE1LCJhTCJdLCJndG0uaW50ZXJhY3RlZEZvcm1MZW5ndGgiXSwiZm9ybV9zdWJtaXRfdGV4dCIsWzE2LFsxNSwiYUwiXSwiZ3RtLmZvcm1TdWJtaXRFbGVtZW50VGV4dCJdXV0sWzQzLFsxNSwiYU8iXSwiZXZlbnRfY2FsbGJhY2siLFsxNSwiYU0iXV0sWzUyLCJhUCIsWzgsImV2ZW50SWQiLFsxNixbMTUsImFMIl0sImd0bS51bmlxdWVFdmVudElkIl1dXSxbIngiLFsxNSwiYVAiXV0sWyJ5IixbMTUsImFQIl0sWzE1LCJhTCJdXSxbNDMsWzE2LFsxNSwiYVAiXSxbMTUsInIiXV0sWzE3LFsxNSwiaSJdLCJBQSJdLCJmb3JtX3N1Ym1pdCJdLFs0MyxbMTYsWzE1LCJhUCJdLFsxNSwiciJdXSxbMTcsWzE1LCJpIl0sIlMiXSxbMTUsImFOIl1dLFsieiIsWzE1LCJvIl0sWzE1LCJhTyJdLFsxNSwiYVAiXV1dXSxbNTIsImFFIixbInJlcXVpcmUiLCJpbnRlcm5hbC5hZGREYXRhTGF5ZXJFdmVudExpc3RlbmVyIl1dLFs1MiwiYUYiLFsicmVxdWlyZSIsImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uRm9ybVN1Ym1pdCJdXSxbNTIsImFHIixbInJlcXVpcmUiLCJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkZvcm1JbnRlcmFjdGlvbiJdXSxbNTIsImFIIixbInJlcXVpcmUiLCJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkNsaWNrIl1dLFs1MiwiYUkiLFsiYUciXV0sWzIyLFsyOCxbMTUsImFJIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uRmFpbHVyZSIsWzddXSxbMzZdXV1dLFsiYUUiLCJndG0uZm9ybUludGVyYWN0IixbMTUsImFCIl0sWzE1LCJhSSJdXSxbNTIsImFKIixbImFGIixbOCwiY2hlY2tWYWxpZGF0aW9uIixmYWxzZSwid2FpdEZvclRhZ3MiLGZhbHNlXV1dLFsyMixbMjgsWzE1LCJhSiJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV0sWzM2XV1dXSxbImFFIiwiZ3RtLmZvcm1TdWJtaXQiLFsxNSwiYUQiXSxbMTUsImFKIl1dLFsyMixbImUiLFsxNyxbMTUsImIiXSwiQ1AiXV0sWzQ2LFs1MyxbNTIsImFMIixbImFIIixbOCwidXNlVjJFdmVudE5hbWUiLHRydWUsImNzc1NlbGVjdG9yIixbMCxbMCxbMCxbMCxbMCxbMCxbMCwiZm9ybSBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSwgIiwiZm9ybSBidXR0b246bm90KFt0eXBlXSksIl0sImZvcm0gaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSwgIl0sImZvcm0gaW5wdXRbdHlwZT1cImltYWdlXCJdLCAiXSwiYnV0dG9uW2Zvcm1dW3R5cGU9XCJzdWJtaXRcIl0sICJdLCJidXR0b25bZm9ybV06bm90KFt0eXBlXSksICJdLCJpbnB1dFt0eXBlPVwic3VibWl0XCJdW2Zvcm1dLCAiXSwiaW5wdXRbdHlwZT1cImltYWdlXCJdW2Zvcm1dIl1dXV0sWzUwLCJhTSIsWzQ2LCJhTiIsImFPIl0sWzUyLCJhUCIsWzgsImV2ZW50X2NhbGxiYWNrIixbMTUsImFPIl1dXSxbNTIsImFRIixbOCwiZXZlbnRJZCIsWzE2LFsxNSwiYU4iXSwiZ3RtLnVuaXF1ZUV2ZW50SWQiXV1dLFsieCIsWzE1LCJhUSJdXSxbInkiLFsxNSwiYVEiXSxbMTUsImFOIl1dLFs0MyxbMTYsWzE1LCJhUSJdLFsxNSwiciJdXSxbMTcsWzE1LCJpIl0sIkFSIl0sWzE3LFsxNSwiaiJdLCJLIl1dLFs0MyxbMTYsWzE1LCJhUSJdLFsxNSwiciJdXSxbMTcsWzE1LCJpIl0sIkFBIl0sImNsaWNrIl0sWzQzLFsxNixbMTUsImFRIl0sWzE1LCJyIl1dLFsxNyxbMTUsImkiXSwiUyJdLFsiYUMiLFsxNSwicyJdXV0sWyJ6IixbMTUsIm8iXSxbMTUsImFQIl0sWzE1LCJhUSJdXV0sWyJhRSIsImd0bS5jbGljay12MiIsWzE1LCJhTSJdLFsxNSwiYUwiXV1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2VtX3BhZ2VfdmlldyIsWzQ2LCJhIl0sWzIyLFsyOCxbMTcsWzE1LCJhIl0sImhpc3RvcnlFdmVudHMiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJ0ZW1wbGF0ZVN0b3JhZ2UiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2NjZEVtUGFnZVZpZXdBY3Rpdml0eSJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJnIixbMTcsWzE1LCJmIl0sIkMiXV0sWzUyLCJoIiwicGFnZV92aWV3Il0sWzUyLCJpIiwiaXNSZWdpc3RlcmVkIl0sWzUyLCJqIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbMjIsWyJiIixbMTUsImoiXSxbMTUsImciXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzIsWzE1LCJlIl0sIkEiLFs3LFsxNSwiaiJdXV0sWzIyLFsyLFsxNSwiZCJdLCJnZXRJdGVtIixbNyxbMTUsImkiXV1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwiayIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuYWRkRGF0YUxheWVyRXZlbnRMaXN0ZW5lciJdXSxbNTIsImwiLFsicmVxdWlyZSIsImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uSGlzdG9yeUNoYW5nZSJdXSxbNTIsIm0iLFsxNSwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCJdXSxbNTIsIm4iLFsicmVxdWlyZSIsImludGVybmFsLnNlbmRHdGFnRXZlbnQiXV0sWzUyLCJvIixbMixbMTUsIm0iXSwiQSIsWzcsInBhZ2VfdmlldyJdXV0sWzUyLCJwIixbOCwiaW50ZXJ2YWwiLDEwMDAsInVzZVYyRXZlbnROYW1lIix0cnVlXV0sWzUyLCJxIixbImwiLFsxNSwicCJdXV0sWzIyLFsyOCxbMTUsInEiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25GYWlsdXJlIixbN11dLFszNl1dXV0sWzIsWzE1LCJkIl0sInNldEl0ZW0iLFs3LFsxNSwiaSJdLHRydWVdXSxbImsiLCJndG0uaGlzdG9yeUNoYW5nZS12MiIsWzUxLCIiLFs3LCJyIiwicyJdLFsicyJdLFs1MiwidCIsWzE2LFsxNSwiciJdLCJndG0ub2xkVXJsIl1dLFsyMixbMjAsWzE2LFsxNSwiciJdLCJndG0ubmV3VXJsIl0sWzE1LCJ0Il1dLFs0NixbMzZdXV0sWzUyLCJ1IixbMTYsWzE1LCJyIl0sImd0bS5oaXN0b3J5Q2hhbmdlU291cmNlIl1dLFsyMixbMSxbMSxbMjEsWzE1LCJ1Il0sInB1c2hTdGF0ZSJdLFsyMSxbMTUsInUiXSwicG9wc3RhdGUiXV0sWzIxLFsxNSwidSJdLCJyZXBsYWNlU3RhdGUiXV0sWzQ2LFs1MyxbMzZdXV1dLFs1MiwidiIsWzhdXSxbMjIsWzE3LFsxNSwiYSJdLCJpbmNsdWRlUGFyYW1zIl0sWzQ2LFs1MyxbNDMsWzE1LCJ2Il0sInBhZ2VfbG9jYXRpb24iLFsxNixbMTUsInIiXSwiZ3RtLm5ld1VybCJdXSxbNDMsWzE1LCJ2Il0sInBhZ2VfcmVmZXJyZXIiLFsxNSwidCJdXV1dXSxbNTIsInciLFs4LCJldmVudElkIixbMTYsWzE1LCJyIl0sImd0bS51bmlxdWVFdmVudElkIl1dXSxbMjIsWzIxLFsxNyxbMTUsImEiXSwiZGVmZXJQYWdlVmlldyJdLGZhbHNlXSxbNDYsWzUzLFs0MyxbMTUsInciXSwiZGVmZXJyYWJsZSIsdHJ1ZV1dXV0sWzIsWzE1LCJtIl0sIkIiLFs3LFsxNSwidyJdXV0sWyJuIixbMTUsIm8iXSxbMTUsImgiXSxbMTUsInYiXSxbMTUsInciXV1dLFsxNSwicSJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfcHJlX2F1dG9fcGlpIixbNDYsImEiXSxbNTAsImwiLFs0NiwibiJdLFs1MiwibyIsWzE2LFsxNSwibiJdLCJ1c2VyRGF0YSJdXSxbNTIsInAiLFszMCxbMTgsWzIsWzE1LCJvIl0sImluZGV4T2YiLFs3LCJAZ21haWwuIl1dLFsyNywxXV0sWzE4LFsyLFsxNSwibyJdLCJpbmRleE9mIixbNywiQGdvb2dsZW1haWwuIl1dLFsyNywxXV1dXSxbMzYsWzAsWzAsWzAsWzAsWzAsWzAsWzE2LFsxNSwibiJdLCJ0YWdOYW1lIl0sIjoiXSxbMTYsWzE1LCJuIl0sImlzVmlzaWJsZSJdXSwiOiJdLFsxNyxbMTUsIm8iXSwibGVuZ3RoIl1dLCI6Il0sWzE1LCJwIl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0F1dG9QaWlFbGlnaWJsZSJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnNldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImQiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFsiYyIsWzE1LCJkIl0sImhhc1ByZUF1dG9QaWlDY2RSdWxlIix0cnVlXSxbMjIsWzI4LFsiYiJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJmIixbInJlcXVpcmUiLCJnZXRUaW1lc3RhbXBNaWxsaXMiXV0sWzUyLCJnIixbInJlcXVpcmUiLCJpc0NvbnNlbnRHcmFudGVkIl1dLFs1MiwiaCIsWyJyZXF1aXJlIiwibWFrZVN0cmluZyJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfYWR3b3Jkc0hpdFR5cGUiXV0sWzUyLCJqIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiayIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwibSIsWzgsImVtYWlsIiwiMSIsInBob25lX251bWJlciIsIjIiLCJmaXJzdF9uYW1lIiwiMyIsImxhc3RfbmFtZSIsIjQiLCJjb3VudHJ5IiwiNSIsInBvc3RhbF9jb2RlIiwiNiIsInN0cmVldCIsIjciLCJjaXR5IiwiOCIsInJlZ2lvbiIsIjkiXV0sWyJlIixbMTUsImQiXSxbNTEsIiIsWzcsIm4iXSxbMjIsWzIxLFsyLFsxNSwibiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJBUSJdXV0sWzE3LFsxNSwiaSJdLCJEIl1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWzI4LFsiZyIsWzE3LFsxNSwiayJdLCJCIl1dXSxbNDYsWzM2XV1dLFs1MiwibyIsWyJmIl1dLFs1MiwicCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZGV0ZWN0VXNlclByb3ZpZGVkRGF0YSJdXSxbNDEsInEiXSxbNjgsIiIsWzUzLFszLCJxIixbInAiLFs4LCJpbmNsdWRlU2VsZWN0b3IiLHRydWUsImluY2x1ZGVWaXNpYmlsaXR5Iix0cnVlLCJzZWxlY3RNdWx0aXBsZUVsZW1lbnRzIix0cnVlLCJyZWFkRnJvbURhdGFMYXllciIsZmFsc2VdXV1dLFs0Nl1dLFsyMixbMzAsWzMwLFsyOCxbMTUsInEiXV0sWzI4LFsxNixbMTUsInEiXSwiZWxlbWVudHMiXV1dLFsyMCxbMTcsWzE2LFsxNSwicSJdLCJlbGVtZW50cyJdLCJsZW5ndGgiXSwwXV0sWzQ2LFs1MyxbMzZdXV1dLFs1MiwiciIsWzE2LFsxNSwicSJdLCJlbGVtZW50cyJdXSxbNTIsInMiLFs3XV0sWzY1LCJ2IixbMTUsInIiXSxbNDYsWzUzLFs1MiwidyIsWyJsIixbMTUsInYiXV1dLFs1MiwieCIsWzMwLFsxNixbMTUsIm0iXSxbMTYsWzE1LCJ2Il0sInR5cGUiXV0sIiJdXSxbMixbMTUsInMiXSwicHVzaCIsWzcsWzAsWzAsWzAsWzAsWzE2LFsxNSwidiJdLCJxdWVyeVNlbGVjdG9yIl0sIioiXSxbMTUsInciXV0sIioiXSxbMTUsIngiXV1dXV1dXSxbMixbMTUsIm4iXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiayJdLCJKTSJdLFsyLFsxNSwicyJdLCJqb2luIixbNywifiJdXV1dLFs1MiwidCIsWzE2LFsxNSwicSJdLCJwcmVmZXJyZWRFbWFpbEVsZW1lbnQiXV0sWzIyLFsxNSwidCJdLFs0NixbNTMsWzIsWzE1LCJuIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImsiXSwiSk4iXSxbMTYsWzE1LCJ0Il0sInF1ZXJ5U2VsZWN0b3IiXV1dLFsyLFsxNSwibiJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJrIl0sIkpMIl0sWyJsIixbMTUsInQiXV1dXV1dXSxbNTIsInUiLFsiZiJdXSxbMixbMTUsIm4iXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiayJdLCJKSyJdLFsiaCIsWzM3LFsxNSwidSJdLFsxNSwibyJdXV1dXSxbMixbMTUsIm4iXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiayJdLCJKTyJdLFsxNixbMTUsInEiXSwic3RhdHVzIl1dXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2UiLFs0NiwiYSJdLFszNixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0RXZlbnREYXRhIl1dLFsiJDAiLCJldmVudCJdXV1dCiAsWzUwLCJfX29ndF8xcF9kYXRhX3YyIixbNDYsImEiXSxbNTAsInAiLFs0NiwiciIsInMiLCJ0IiwidSJdLFsyMixbMjAsWzE2LFsxNSwicyJdLCJ0eXBlIl0sWzE1LCJ0Il1dLFs0NixbNTMsWzIyLFsyOCxbMTUsInIiXV0sWzQ2LFs1MyxbMywiciIsWzhdXV1dXSxbMjIsWzI4LFsxNixbMTUsInIiXSxbMTUsInQiXV1dLFs0NixbNTMsWzQzLFsxNSwiciJdLFsxNSwidCJdLFsxNixbMTUsInMiXSwidXNlckRhdGEiXV0sWzUyLCJ2IixbOCwibW9kZSIsImEiXV0sWzIyLFsxNixbMTUsInMiXSwidGFnTmFtZSJdLFs0NixbNTMsWzQzLFsxNSwidiJdLCJsb2NhdGlvbiIsWzE2LFsxNSwicyJdLCJ0YWdOYW1lIl1dXV1dLFsyMixbMTYsWzE1LCJzIl0sInF1ZXJ5U2VsZWN0b3IiXSxbNDYsWzUzLFs0MyxbMTUsInYiXSwic2VsZWN0b3IiLFsxNixbMTUsInMiXSwicXVlcnlTZWxlY3RvciJdXV1dXSxbNDMsWzE1LCJ1Il0sWzE1LCJ0Il0sWzE1LCJ2Il1dXV1dXV1dLFszNixbMTUsInIiXV1dLFs1MCwicSIsWzQ2LCJyIiwicyIsInQiXSxbMjIsWzI4LFsxNixbMTUsImEiXSxbMTUsInQiXV1dLFs0NixbMzZdXV0sWzQzLFsxNSwiciJdLFsxNSwicyJdLFs4LCJ2YWx1ZSIsWzE2LFsxNSwiYSJdLFsxNSwidCJdXV1dXSxbMjIsWzI4LFsxNyxbMTUsImEiXSwiaXNFbmFibGVkIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiT2JqZWN0Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLmdldERlc3RpbmF0aW9uSWRzIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZGV0ZWN0VXNlclByb3ZpZGVkRGF0YSJdXSxbNTIsImgiLFsicmVxdWlyZSIsInF1ZXJ5UGVybWlzc2lvbiJdXSxbNTIsImkiLFsicmVxdWlyZSIsImludGVybmFsLnNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciJdXSxbNTIsImoiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJrIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwibCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwibSIsWyJjIixbMTcsWzE1LCJlIl0sIkFUIl1dXSxbNTIsIm4iLFszMCxbImYiXSxbN11dXSxbNTIsIm8iLFs4LCJlbmFibGVfY29kZSIsdHJ1ZV1dLFsyMixbMTcsWzE1LCJhIl0sImlzQXV0b0VuYWJsZWQiXSxbNDYsWzUzLFs1MiwiciIsWzddXSxbMjIsWzEsWzE3LFsxNSwiYSJdLCJhdXRvQ29sbGVjdEV4Y2x1c2lvblNlbGVjdG9ycyJdLFsxNyxbMTcsWzE1LCJhIl0sImF1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIl0sImxlbmd0aCJdXSxbNDYsWzUzLFs1MyxbNDEsInUiXSxbMywidSIsMF0sWzYzLFs3LCJ1Il0sWzIzLFsxNSwidSJdLFsxNyxbMTcsWzE1LCJhIl0sImF1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJ1Il0sWzMsInUiLFswLFsxNSwidSJdLDFdXV0sWzQ2LFs1MyxbNTIsInYiLFsxNyxbMTYsWzE3LFsxNSwiYSJdLCJhdXRvQ29sbGVjdEV4Y2x1c2lvblNlbGVjdG9ycyJdLFsxNSwidSJdXSwiZXhjbHVzaW9uU2VsZWN0b3IiXV0sWzIyLFsxNSwidiJdLFs0NixbNTMsWzIsWzE1LCJyIl0sInB1c2giLFs3LFsxNSwidiJdXV1dXV1dXV1dXV1dLFs1MiwicyIsWzE3LFsxNSwiYSJdLCJpc0F1dG9Db2xsZWN0UGlpRW5hYmxlZEZsYWciXV0sWzUyLCJ0IixbMzksWzE3LFsxNSwiYSJdLCJpc0F1dG9Db2xsZWN0UGlpRW5hYmxlZEZsYWciXSxbMTcsWzE1LCJhIl0sImF1dG9FbWFpbEVuYWJsZWQiXSx0cnVlXV0sWzQzLFsxNSwibyJdLCJhdXRvX2RldGVjdCIsWzgsImVtYWlsIixbMTUsInQiXSwicGhvbmUiLFsxLFsxNSwicyJdLFsxNyxbMTUsImEiXSwiYXV0b1Bob25lRW5hYmxlZCJdXSwiYWRkcmVzcyIsWzEsWzE1LCJzIl0sWzE3LFsxNSwiYSJdLCJhdXRvQWRkcmVzc0VuYWJsZWQiXV0sImV4Y2x1ZGVfZWxlbWVudF9zZWxlY3RvcnMiLFsxNSwiciJdXV1dXV0sWzIyLFsxNyxbMTUsImEiXSwiaXNNYW51YWxFbmFibGVkIl0sWzQ2LFs1MyxbNTIsInIiLFs4XV0sWzIyLFsxNyxbMTUsImEiXSwibWFudWFsRW1haWxFbmFibGVkIl0sWzQ2LFs1MyxbInEiLFsxNSwiciJdLCJlbWFpbCIsImVtYWlsVmFsdWUiXV1dXSxbMjIsWzE3LFsxNSwiYSJdLCJtYW51YWxQaG9uZUVuYWJsZWQiXSxbNDYsWzUzLFsicSIsWzE1LCJyIl0sInBob25lIiwicGhvbmVWYWx1ZSJdXV1dLFsyMixbMTcsWzE1LCJhIl0sIm1hbnVhbEFkZHJlc3NFbmFibGVkIl0sWzQ2LFs1MyxbNTIsInMiLFs4XV0sWyJxIixbMTUsInMiXSwiZmlyc3RfbmFtZSIsImZpcnN0TmFtZVZhbHVlIl0sWyJxIixbMTUsInMiXSwibGFzdF9uYW1lIiwibGFzdE5hbWVWYWx1ZSJdLFsicSIsWzE1LCJzIl0sInN0cmVldCIsInN0cmVldFZhbHVlIl0sWyJxIixbMTUsInMiXSwiY2l0eSIsImNpdHlWYWx1ZSJdLFsicSIsWzE1LCJzIl0sInJlZ2lvbiIsInJlZ2lvblZhbHVlIl0sWyJxIixbMTUsInMiXSwiY291bnRyeSIsImNvdW50cnlWYWx1ZSJdLFsicSIsWzE1LCJzIl0sInBvc3RhbF9jb2RlIiwicG9zdGFsQ29kZVZhbHVlIl0sWzQzLFsxNSwiciJdLCJuYW1lX2FuZF9hZGRyZXNzIixbNyxbMTUsInMiXV1dXV1dLFs0MyxbMTUsIm8iXSwic2VsZWN0b3JzIixbMTUsInIiXV1dXV0sWzY1LCJyIixbMTUsIm4iXSxbNDYsWzUzLFsiaSIsWzE1LCJyIl0sInVzZXJfZGF0YV9zZXR0aW5ncyIsWzE1LCJvIl1dLFs1MiwicyIsWzE2LFsxNSwibyJdLCJhdXRvX2RldGVjdCJdXSxbMjIsWzI4LFsxNSwicyJdXSxbNDYsWzUzLFs2XV1dXSxbNTIsInQiLFs1MSwiIixbNywidSJdLFs1MiwidiIsWzIsWzE1LCJ1Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJrIl0sIkNYIl1dXV0sWzIyLFsxNSwidiJdLFs0NixbNTMsWzM2LFsxNSwidiJdXV1dXSxbNTIsInciLFsiYyIsWzE3LFsxNSwiZSJdLCJCViJdXV0sWzUyLCJ4IixbImMiLFsxNyxbMTUsImUiXSwiQ0kiXV1dLFs0MSwieSJdLFsyMixbImgiLCJkZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhIiwiYXV0byJdLFs0NixbNTMsWzMsInkiLFsiZyIsWzgsImV4Y2x1ZGVFbGVtZW50U2VsZWN0b3JzIixbMTYsWzE1LCJzIl0sImV4Y2x1ZGVfZWxlbWVudF9zZWxlY3RvcnMiXSwiZmllbGRGaWx0ZXJzIixbOCwiZW1haWwiLFsxNixbMTUsInMiXSwiZW1haWwiXSwicGhvbmUiLFsxNixbMTUsInMiXSwicGhvbmUiXSwiYWRkcmVzcyIsWzE2LFsxNSwicyJdLCJhZGRyZXNzIl1dLCJpbmNsdWRlU2VsZWN0b3IiLFsxNSwidyJdLCJyZWFkRnJvbURhdGFMYXllciIsWzE1LCJ4Il1dXV1dXV0sWzUyLCJ6IixbMSxbMTUsInkiXSxbMTYsWzE1LCJ5Il0sImVsZW1lbnRzIl1dXSxbNTIsImFBIixbOF1dLFs1MiwiYUIiLFs4XV0sWzIyLFsxLFsxNSwieiJdLFsxOCxbMTcsWzE1LCJ6Il0sImxlbmd0aCJdLDBdXSxbNDYsWzUzLFs0MSwiYUMiXSxbNDEsImFEIl0sWzMsImFEIixbOF1dLFs1MyxbNDEsImFFIl0sWzMsImFFIiwwXSxbNjMsWzcsImFFIl0sWzIzLFsxNSwiYUUiXSxbMTcsWzE1LCJ6Il0sImxlbmd0aCJdXSxbMzMsWzE1LCJhRSJdLFszLCJhRSIsWzAsWzE1LCJhRSJdLDFdXV0sWzQ2LFs1MyxbNTIsImFGIixbMTYsWzE1LCJ6Il0sWzE1LCJhRSJdXV0sWyJwIixbMTUsImFBIl0sWzE1LCJhRiJdLCJlbWFpbCIsWzE1LCJhQiJdXSxbMjIsWyJjIixbMTcsWzE1LCJlIl0sIkJPIl1dLFs0NixbNTMsWyJwIixbMTUsImFBIl0sWzE1LCJhRiJdLCJwaG9uZV9udW1iZXIiLFsxNSwiYUIiXV0sWzMsImFDIixbInAiLFsxNSwiYUMiXSxbMTUsImFGIl0sImZpcnN0X25hbWUiLFsxNSwiYUQiXV1dLFszLCJhQyIsWyJwIixbMTUsImFDIl0sWzE1LCJhRiJdLCJsYXN0X25hbWUiLFsxNSwiYUQiXV1dLFszLCJhQyIsWyJwIixbMTUsImFDIl0sWzE1LCJhRiJdLCJjb3VudHJ5IixbMTUsImFEIl1dXSxbMywiYUMiLFsicCIsWzE1LCJhQyJdLFsxNSwiYUYiXSwicG9zdGFsX2NvZGUiLFsxNSwiYUQiXV1dXV1dXV1dXSxbMjIsWzEsWzE1LCJhQyJdLFsyOCxbMTYsWzE1LCJhQSJdLCJhZGRyZXNzIl1dXSxbNDYsWzUzLFs0MyxbMTUsImFBIl0sImFkZHJlc3MiLFsxNSwiYUMiXV0sWzIyLFsxNSwibSJdLFs0NixbNTMsWzQzLFsxNixbMTUsImFBIl0sImFkZHJlc3MiXSwiX3RhZ19tZXRhZGF0YSIsWzE1LCJhRCJdXV1dXV1dXV1dXSxbMjIsWzEsWzE1LCJ5Il0sWzE1LCJ4Il1dLFs0NixbNTMsWzUyLCJhQyIsWzE2LFsxNSwieSJdLCJkYXRhTGF5ZXJTZWFyY2hUaW1lIl1dLFs1MiwiYUQiLFsxNixbMTUsInkiXSwiZGF0YUxheWVyU2VhcmNoQ291bnQiXV0sWzIsWzE1LCJ1Il0sIm1lcmdlSGl0RGF0YUZvcktleSIsWzcsWzE3LFsxNSwibCJdLCJGVCJdLFs4LCJkbHN0IixbMTUsImFDIl0sImRsc2MiLFsxNSwiYUQiXV1dXV1dXSxbMjIsWzE1LCJtIl0sWzQ2LFs1MyxbMjIsWzMwLFsxNixbMTUsImFBIl0sImVtYWlsIl0sWzE2LFsxNSwiYUEiXSwicGhvbmVfbnVtYmVyIl1dLFs0NixbNTMsWzQzLFsxNSwiYUEiXSwiX3RhZ19tZXRhZGF0YSIsWzE1LCJhQiJdXV1dXV1dXSxbMixbMTUsInUiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImsiXSwiQ1giXSxbMTUsImFBIl1dXSxbMzYsWzE1LCJhQSJdXV1dLFsiaiIsWzE1LCJyIl0sWzUxLCIiLFs3LCJ1Il0sWzIsWzE1LCJ1Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJrIl0sIkNZIl0sWzE1LCJ0Il1dXV1dXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX29ndF9hZHNfZGF0YXRvcyIsWzQ2LCJhIl0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbImIiLFsxNSwiYyJdLCJhZHNfY3VzdG9tZXJfZGF0YV90ZXJtcyIsdHJ1ZV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fcmVwIixbNDYsImEiXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyRGVzdGluYXRpb24iXV0sWzIyLFsyOCxbImIiLFsxNyxbMTUsImEiXSwiY29udGFpbmVySWQiXSxbMTcsWzE1LCJhIl0sInJlbW90ZUNvbmZpZyJdXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25GYWlsdXJlIixbN11dLFszNl1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTIsIl9fbW9kdWxlX2Fkd29yZHNIaXRUeXBlIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiY29udmVyc2lvbiJdLFs1MiwiYyIsImZsb29kbGlnaHQiXSxbNTIsImQiLCJnYV9jb252ZXJzaW9uIl0sWzUyLCJlIiwicGFnZV92aWV3Il0sWzUyLCJmIiwicmVtYXJrZXRpbmciXSxbNTIsImciLCJ1c2VyX2RhdGFfbGVhZCJdLFs1MiwiaCIsInVzZXJfZGF0YV93ZWIiXSxbMzYsWzgsIkQiLFsxNSwiYiJdLCJFIixbMTUsImMiXSwiRiIsWzE1LCJkIl0sIkgiLFsxNSwiZSJdLCJJIixbMTUsImYiXSwiSiIsWzE1LCJnIl0sIksiLFsxNSwiaCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZ3RhZ1NjaGVtYSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsImFkX3BlcnNvbmFsaXphdGlvbiJdLFs1MiwiYyIsImFkX3N0b3JhZ2UiXSxbNTIsImQiLCJhZF91c2VyX2RhdGEiXSxbNTIsImUiLCJjb25zZW50X3VwZGF0ZWQiXSxbNTIsImYiLCJhcHBfcmVtb3ZlIl0sWzUyLCJnIiwiYXBwX3N0b3JlX3JlZnVuZCJdLFs1MiwiaCIsImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fY2FuY2VsIl0sWzUyLCJpIiwiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9jb252ZXJ0Il0sWzUyLCJqIiwiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9yZW5ldyJdLFs1MiwiayIsImNvbnZlcnNpb24iXSxbNTIsImwiLCJwdXJjaGFzZSJdLFs1MiwibSIsImZpcnN0X29wZW4iXSxbNTIsIm4iLCJmaXJzdF92aXNpdCJdLFs1MiwibyIsImd0YWcuY29uZmlnIl0sWzUyLCJwIiwiaW5fYXBwX3B1cmNoYXNlIl0sWzUyLCJxIiwicGFnZV92aWV3Il0sWzUyLCJyIiwic2Vzc2lvbl9zdGFydCJdLFs1MiwicyIsInVzZXJfZW5nYWdlbWVudCJdLFs1MiwidCIsImFkc19kYXRhX3JlZGFjdGlvbiJdLFs1MiwidSIsImFsbG93X2FkX3BlcnNvbmFsaXphdGlvbl9zaWduYWxzIl0sWzUyLCJ2IiwiYWxsb3dfY3VzdG9tX3NjcmlwdHMiXSxbNTIsInciLCJhbGxvd19lbmhhbmNlZF9jb252ZXJzaW9ucyJdLFs1MiwieCIsImFsbG93X2dvb2dsZV9zaWduYWxzIl0sWzUyLCJ5IiwiYXVpZCJdLFs1MiwieiIsImF3X3JlbWFya2V0aW5nX29ubHkiXSxbNTIsImFBIiwiZGlzY291bnQiXSxbNTIsImFCIiwiYXdfZmVlZF9jb3VudHJ5Il0sWzUyLCJhQyIsImF3X2ZlZWRfbGFuZ3VhZ2UiXSxbNTIsImFEIiwiaXRlbXMiXSxbNTIsImFFIiwiYXdfbWVyY2hhbnRfaWQiXSxbNTIsImFGIiwiYXdfYmFza2V0X3R5cGUiXSxbNTIsImFHIiwiY2xpZW50X2lkIl0sWzUyLCJhSCIsImNvbnZlcnNpb25fY29va2llX3ByZWZpeCJdLFs1MiwiYUkiLCJjb252ZXJzaW9uX2lkIl0sWzUyLCJhSiIsImNvbnZlcnNpb25fbGlua2VyIl0sWzUyLCJhSyIsImNvbnZlcnNpb25fYXBpIl0sWzUyLCJhTCIsImNvb2tpZV9kZXByZWNhdGlvbiJdLFs1MiwiYU0iLCJjb29raWVfZXhwaXJlcyJdLFs1MiwiYU4iLCJjb29raWVfcHJlZml4Il0sWzUyLCJhTyIsImNvb2tpZV91cGRhdGUiXSxbNTIsImFQIiwiY291bnRyeSJdLFs1MiwiYVEiLCJjdXJyZW5jeSJdLFs1MiwiYVIiLCJjdXN0b21lcl9saWZldGltZV92YWx1ZSJdLFs1MiwiYVMiLCJjdXN0b21lcl90eXBlIl0sWzUyLCJhVCIsImRlYnVnX21vZGUiXSxbNTIsImFVIiwic2hpcHBpbmciXSxbNTIsImFWIiwiZW5nYWdlbWVudF90aW1lX21zZWMiXSxbNTIsImFXIiwiZXN0aW1hdGVkX2RlbGl2ZXJ5X2RhdGUiXSxbNTIsImFYIiwiZXZlbnRfZGV2ZWxvcGVyX2lkX3N0cmluZyJdLFs1MiwiYVkiLCJldmVudF9pZCJdLFs1MiwiYVoiLCJldmVudCJdLFs1MiwiYkEiLCJfJmFlIl0sWzUyLCJiQiIsImV2ZW50X3RpbWVvdXQiXSxbNTIsImJDIiwiZXh0X2NsaWVudF9pZCJdLFs1MiwiYkQiLCJmaXJzdF9wYXJ0eV9jb2xsZWN0aW9uIl0sWzUyLCJiRSIsIm1hdGNoX2lkIl0sWzUyLCJiRiIsImdkcHJfYXBwbGllcyJdLFs1MiwiYkciLCJfZ3RfbWV0YWRhdGEiXSxbNTIsImJIIiwiZ29vZ2xlX2FuYWx5c2lzX3BhcmFtcyJdLFs1MiwiYkkiLCJfZ29vZ2xlX25nIl0sWzUyLCJiSiIsIl9vbm8iXSxbNTIsImJLIiwiZ3BwX3NpZCJdLFs1MiwiYkwiLCJncHBfc3RyaW5nIl0sWzUyLCJiTSIsImdzYV9leHBlcmltZW50X2lkIl0sWzUyLCJiTiIsImd0YWdfZXZlbnRfZmVhdHVyZV91c2FnZSJdLFs1MiwiYk8iLCJpZnJhbWVfc3RhdGUiXSxbNTIsImJQIiwiaWdub3JlX3JlZmVycmVyIl0sWzUyLCJiUSIsImlzX3Bhc3N0aHJvdWdoIl0sWzUyLCJiUiIsImxhbmd1YWdlIl0sWzUyLCJiUyIsIm1lcmNoYW50X2ZlZWRfbGFiZWwiXSxbNTIsImJUIiwibWVyY2hhbnRfZmVlZF9sYW5ndWFnZSJdLFs1MiwiYlUiLCJtZXJjaGFudF9pZCJdLFs1MiwiYlYiLCJuZXdfY3VzdG9tZXIiXSxbNTIsImJXIiwicGFnZV9ob3N0bmFtZSJdLFs1MiwiYlgiLCJwYWdlX3BhdGgiXSxbNTIsImJZIiwicGFnZV9yZWZlcnJlciJdLFs1MiwiYloiLCJwYWdlX3RpdGxlIl0sWzUyLCJjQSIsIl9wbGF0aW51bV9yZXF1ZXN0X3N0YXR1cyJdLFs1MiwiY0IiLCJxdWFudGl0eSJdLFs1MiwiY0MiLCJyZXN0cmljdGVkX2RhdGFfcHJvY2Vzc2luZyJdLFs1MiwiY0QiLCJzY3JlZW5fcmVzb2x1dGlvbiJdLFs1MiwiY0UiLCJzZW5kX3BhZ2VfdmlldyJdLFs1MiwiY0YiLCJzZXJ2ZXJfY29udGFpbmVyXzNwX2VucmljaG1lbnQiXSxbNTIsImNHIiwic2VydmVyX2NvbnRhaW5lcl91cmwiXSxbNTIsImNIIiwic2Vzc2lvbl9kdXJhdGlvbiJdLFs1MiwiY0kiLCJzZXNzaW9uX2VuZ2FnZWRfdGltZSJdLFs1MiwiY0oiLCJzZXNzaW9uX2lkIl0sWzUyLCJjSyIsIl9zaGFyZWRfdXNlcl9pZCJdLFs1MiwiY0wiLCJkZWxpdmVyeV9wb3N0YWxfY29kZSJdLFs1MiwiY00iLCJ0ZXN0b25seSJdLFs1MiwiY04iLCJ0b3Btb3N0X3VybCJdLFs1MiwiY08iLCJ0cmFuc2FjdGlvbl9pZCJdLFs1MiwiY1AiLCJ0cmFuc2FjdGlvbl9pZF9zb3VyY2UiXSxbNTIsImNRIiwidHJhbnNwb3J0X3VybCJdLFs1MiwiY1IiLCJ1cGRhdGUiXSxbNTIsImNTIiwiX3VzZXJfYWdlbnRfYXJjaGl0ZWN0dXJlIl0sWzUyLCJjVCIsIl91c2VyX2FnZW50X2JpdG5lc3MiXSxbNTIsImNVIiwiX3VzZXJfYWdlbnRfZnVsbF92ZXJzaW9uX2xpc3QiXSxbNTIsImNWIiwiX3VzZXJfYWdlbnRfbW9iaWxlIl0sWzUyLCJjVyIsIl91c2VyX2FnZW50X21vZGVsIl0sWzUyLCJjWCIsIl91c2VyX2FnZW50X3BsYXRmb3JtIl0sWzUyLCJjWSIsIl91c2VyX2FnZW50X3BsYXRmb3JtX3ZlcnNpb24iXSxbNTIsImNaIiwiX3VzZXJfYWdlbnRfd293NjQiXSxbNTIsImRBIiwidXNlcl9kYXRhIl0sWzUyLCJkQiIsInVzZXJfZGF0YV9hdXRvX2xhdGVuY3kiXSxbNTIsImRDIiwidXNlcl9kYXRhX2F1dG9fbWV0YSJdLFs1MiwiZEQiLCJ1c2VyX2RhdGFfYXV0b19tdWx0aSJdLFs1MiwiZEUiLCJ1c2VyX2RhdGFfYXV0b19zZWxlY3RvcnMiXSxbNTIsImRGIiwidXNlcl9kYXRhX2F1dG9fc3RhdHVzIl0sWzUyLCJkRyIsInVzZXJfZGF0YV9tb2RlIl0sWzUyLCJkSCIsInVzZXJfaWQiXSxbNTIsImRJIiwidXNlcl9wcm9wZXJ0aWVzIl0sWzUyLCJkSiIsInVzX3ByaXZhY3lfc3RyaW5nIl0sWzUyLCJkSyIsInZhbHVlIl0sWzUyLCJkTCIsIl9mcG1fcGFyYW1ldGVycyJdLFs1MiwiZE0iLCJfaG9zdF9uYW1lIl0sWzUyLCJkTiIsIl9pbl9wYWdlX2NvbW1hbmQiXSxbNTIsImRPIiwiX21lYXN1cmVtZW50X3R5cGUiXSxbNTIsImRQIiwibm9uX3BlcnNvbmFsaXplZF9hZHMiXSxbNTIsImRRIiwiY29udmVyc2lvbl9sYWJlbCJdLFs1MiwiZFIiLCJwYWdlX2xvY2F0aW9uIl0sWzUyLCJkUyIsIl9leHRyYWN0ZWRfZGF0YSJdLFs1MiwiZFQiLCJnbG9iYWxfZGV2ZWxvcGVyX2lkX3N0cmluZyJdLFs1MiwiZFUiLCJ0Y19wcml2YWN5X3N0cmluZyJdLFszNixbOCwiQSIsWzE1LCJiIl0sIkIiLFsxNSwiYyJdLCJDIixbMTUsImQiXSwiRiIsWzE1LCJlIl0sIkkiLFsxNSwiZiJdLCJKIixbMTUsImciXSwiSyIsWzE1LCJoIl0sIkwiLFsxNSwiaSJdLCJNIixbMTUsImoiXSwiTyIsWzE1LCJrIl0sIkFBIixbMTUsImwiXSwiQUYiLFsxNSwibSJdLCJBRyIsWzE1LCJuIl0sIkFIIixbMTUsIm8iXSwiQUoiLFsxNSwicCJdLCJBSyIsWzE1LCJxIl0sIkFNIixbMTUsInIiXSwiQVEiLFsxNSwicyJdLCJCQyIsWzE1LCJ0Il0sIkJKIixbMTUsInUiXSwiQksiLFsxNSwidiJdLCJCTSIsWzE1LCJ3Il0sIkJOIixbMTUsIngiXSwiQlQiLFsxNSwieSJdLCJCWCIsWzE1LCJ6Il0sIkJZIixbMTUsImFBIl0sIkJaIixbMTUsImFCIl0sIkNBIixbMTUsImFDIl0sIkNCIixbMTUsImFEIl0sIkNDIixbMTUsImFFIl0sIkNEIixbMTUsImFGIl0sIkNMIixbMTUsImFHIl0sIkNRIixbMTUsImFIIl0sIkNSIixbMTUsImFJIl0sIktHIixbMTUsImRRIl0sIkNTIixbMTUsImFKIl0sIkNVIixbMTUsImFLIl0sIkNXIixbMTUsImFMIl0sIkNZIixbMTUsImFNIl0sIkRDIixbMTUsImFOIl0sIkREIixbMTUsImFPIl0sIkRFIixbMTUsImFQIl0sIkRGIixbMTUsImFRIl0sIkRHIixbMTUsImFSIl0sIkRIIixbMTUsImFTIl0sIkROIixbMTUsImFUIl0sIkVBIixbMTUsImFVIl0sIkVDIixbMTUsImFWIl0sIkVHIixbMTUsImFXIl0sIkVKIixbMTUsImFYIl0sIkVLIixbMTUsImFZIl0sIkVOIixbMTUsImFaIl0sIkVPIixbMTUsImJBIl0sIkVRIixbMTUsImJCIl0sIktJIixbMTUsImRTIl0sIkVVIixbMTUsImJDIl0sIkVXIixbMTUsImJEIl0sIkZFIixbMTUsImJFIl0sIkZPIixbMTUsImJGIl0sIkZQIixbMTUsImJHIl0sIktKIixbMTUsImRUIl0sIkZUIixbMTUsImJIIl0sIkZVIixbMTUsImJJIl0sIkZWIixbMTUsImJKIl0sIkZZIixbMTUsImJLIl0sIkZaIixbMTUsImJMIl0sIkdCIixbMTUsImJNIl0sIkdDIixbMTUsImJOIl0sIkdFIixbMTUsImJPIl0sIkdGIixbMTUsImJQIl0sIkdLIixbMTUsImJRIl0sIkdNIixbMTUsImJSIl0sIkdUIixbMTUsImJTIl0sIkdVIixbMTUsImJUIl0sIkdWIixbMTUsImJVIl0sIkdaIixbMTUsImJWIl0sIkhDIixbMTUsImJXIl0sIktIIixbMTUsImRSIl0sIkhEIixbMTUsImJYIl0sIkhFIixbMTUsImJZIl0sIkhGIixbMTUsImJaIl0sIkhOIixbMTUsImNBIl0sIkhQIixbMTUsImNCIl0sIkhUIixbMTUsImNDIl0sIkhYIixbMTUsImNEIl0sIklBIixbMTUsImNFIl0sIklDIixbMTUsImNGIl0sIklEIixbMTUsImNHIl0sIklGIixbMTUsImNIIl0sIklIIixbMTUsImNJIl0sIklJIixbMTUsImNKIl0sIklLIixbMTUsImNLIl0sIklMIixbMTUsImNMIl0sIktLIixbMTUsImRVIl0sIklQIixbMTUsImNNIl0sIklSIixbMTUsImNOIl0sIklVIixbMTUsImNPIl0sIklWIixbMTUsImNQIl0sIklXIixbMTUsImNRIl0sIklZIixbMTUsImNSIl0sIkpCIixbMTUsImNTIl0sIkpDIixbMTUsImNUIl0sIkpEIixbMTUsImNVIl0sIkpFIixbMTUsImNWIl0sIkpGIixbMTUsImNXIl0sIkpHIixbMTUsImNYIl0sIkpIIixbMTUsImNZIl0sIkpJIixbMTUsImNaIl0sIkpKIixbMTUsImRBIl0sIkpLIixbMTUsImRCIl0sIkpMIixbMTUsImRDIl0sIkpNIixbMTUsImREIl0sIkpOIixbMTUsImRFIl0sIkpPIixbMTUsImRGIl0sIkpQIixbMTUsImRHIl0sIkpSIixbMTUsImRIIl0sIkpTIixbMTUsImRJIl0sIkpVIixbMTUsImRKIl0sIkpWIixbMTUsImRLIl0sIkpYIixbMTUsImRMIl0sIkpZIixbMTUsImRNIl0sIkpaIixbMTUsImROIl0sIktDIixbMTUsImRPIl0sIktEIixbMTUsImRQIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsImFib3J0X3dpdGhvdXRfZmFpbCJdLFs1MiwiYyIsImFjY2VwdF9ieV9kZWZhdWx0Il0sWzUyLCJkIiwiYWxsb3dfYWRfcGVyc29uYWxpemF0aW9uIl0sWzUyLCJlIiwiY29uc2VudF9zdGF0ZSJdLFs1MiwiZiIsImNvbnNlbnRfdXBkYXRlZCJdLFs1MiwiZyIsImNvbnZlcnNpb25fbGlua2VyX2VuYWJsZWQiXSxbNTIsImgiLCJjb252ZXJzaW9uX21hcmtpbmdfY2FsbGVkIl0sWzUyLCJpIiwiY29va2llX29wdGlvbnMiXSxbNTIsImoiLCJkZWR1cGVfaWQiXSxbNTIsImsiLCJlbV9ldmVudCJdLFs1MiwibCIsImV2ZW50X3Byb3ZlbmFuY2UiXSxbNTIsIm0iLCJldmVudF9zb3VyY2UiXSxbNTIsIm4iLCJldmVudF9zdGFydF90aW1lc3RhbXBfbXMiXSxbNTIsIm8iLCJldmVudF91c2FnZSJdLFs1MiwicCIsImV4dHJhX3RhZ19leHBlcmltZW50X2lkcyJdLFs1MiwicSIsImZvcm1fZXZlbnRfY2FuY2VsZWQiXSxbNTIsInIiLCJnYTRfY29sbGVjdGlvbl9zdWJkb21haW4iXSxbNTIsInMiLCJndG1fZXh0cmFjdGVkX2RhdGEiXSxbNTIsInQiLCJoYW5kbGVfaW50ZXJuYWxseSJdLFs1MiwidSIsImhhc19nYV9jb252ZXJzaW9uX2NvbnNlbnRzIl0sWzUyLCJ2IiwiaGl0X3R5cGUiXSxbNTIsInciLCJoaXRfdHlwZV9vdmVycmlkZSJdLFs1MiwieCIsImlnbm9yZV9kdXBlX2NvbmZpZyJdLFs1MiwieSIsImlzX2NvbnZlcnNpb24iXSxbNTIsInoiLCJpc19leHRlcm5hbF9ldmVudCJdLFs1MiwiYUEiLCJpc19maXJzdF92aXNpdCJdLFs1MiwiYUIiLCJpc19maXJzdF92aXNpdF9jb252ZXJzaW9uIl0sWzUyLCJhQyIsImlzX2ZwbV9lbmNyeXB0aW9uIl0sWzUyLCJhRCIsImlzX2ZwbV9zcGxpdCJdLFs1MiwiYUUiLCJpc19nY3BfYnJvd3NlciJdLFs1MiwiYUYiLCJpc19nb29nbGVfbWVhc3VyZW1lbnRfYWxsb3dlZCJdLFs1MiwiYUciLCJpc19zZXJ2ZXJfc2lkZV9kZXN0aW5hdGlvbiJdLFs1MiwiYUgiLCJpc19zZXNzaW9uX3N0YXJ0Il0sWzUyLCJhSSIsImlzX3Nlc3Npb25fc3RhcnRfY29udmVyc2lvbiJdLFs1MiwiYUoiLCJpc19zZ3RtX2dhX2Fkc19jb252ZXJzaW9uX3N0dWR5X2NvbnRyb2xfZ3JvdXAiXSxbNTIsImFLIiwiaXNfc2d0bV9wcmVoaXQiXSxbNTIsImFMIiwiaXNfc3BsaXRfY29udmVyc2lvbiJdLFs1MiwiYU0iLCJpc19zeW4iXSxbNTIsImFOIiwiaXNfdGVzdF9ldmVudCJdLFs1MiwiYU8iLCJwcmVoaXRfZm9yX3JldHJ5Il0sWzUyLCJhUCIsInJlZGFjdF9hZHNfZGF0YSJdLFs1MiwiYVEiLCJyZWRhY3RfY2xpY2tfaWRzIl0sWzUyLCJhUiIsInNlbmRfY2NtX3BhcmFsbGVsX3BpbmciXSxbNTIsImFTIiwic2VuZF91c2VyX2RhdGFfaGl0Il0sWzUyLCJhVCIsInNwZWN1bGF0aXZlIl0sWzUyLCJhVSIsInN5bl9vcl9tb2QiXSxbNTIsImFWIiwidHJhbnNpZW50X2Vjc2lkIl0sWzUyLCJhVyIsInVzZXJfZGF0YSJdLFs1MiwiYVgiLCJ1c2VyX2RhdGFfZnJvbV9hdXRvbWF0aWMiXSxbNTIsImFZIiwidXNlcl9kYXRhX2Zyb21fYXV0b21hdGljX2dldHRlciJdLFs1MiwiYVoiLCJ1c2VyX2RhdGFfZnJvbV9jb2RlIl0sWzUyLCJiQSIsInVzZXJfZGF0YV9mcm9tX21hbnVhbCJdLFszNixbOCwiQSIsWzE1LCJiIl0sIkIiLFsxNSwiYyJdLCJGIixbMTUsImQiXSwiTSIsWzE1LCJlIl0sIk4iLFsxNSwiZiJdLCJPIixbMTUsImciXSwiUCIsWzE1LCJoIl0sIlEiLFsxNSwiaSJdLCJTIixbMTUsImoiXSwiVCIsWzE1LCJrIl0sIloiLFsxNSwibCJdLCJBQSIsWzE1LCJtIl0sIkFCIixbMTUsIm4iXSwiQUMiLFsxNSwibyJdLCJBRCIsWzE1LCJwIl0sIkFKIixbMTUsInEiXSwiQUsiLFsxNSwiciJdLCJBTiIsWzE1LCJzIl0sIkFPIixbMTUsInQiXSwiQVAiLFsxNSwidSJdLCJBUSIsWzE1LCJ2Il0sIkFSIixbMTUsInciXSwiQVMiLFsxNSwieCJdLCJBViIsWzE1LCJ5Il0sIkFZIixbMTUsInoiXSwiQVoiLFsxNSwiYUEiXSwiQkEiLFsxNSwiYUIiXSwiQkMiLFsxNSwiYUMiXSwiQkQiLFsxNSwiYUQiXSwiQkUiLFsxNSwiYUUiXSwiQkYiLFsxNSwiYUYiXSwiQksiLFsxNSwiYUciXSwiQkwiLFsxNSwiYUgiXSwiQk0iLFsxNSwiYUkiXSwiQk4iLFsxNSwiYUoiXSwiQk8iLFsxNSwiYUsiXSwiQlEiLFsxNSwiYUwiXSwiQlIiLFsxNSwiYU0iXSwiQlMiLFsxNSwiYU4iXSwiQlkiLFsxNSwiYU8iXSwiQ0IiLFsxNSwiYVAiXSwiQ0MiLFsxNSwiYVEiXSwiQ0UiLFsxNSwiYVIiXSwiQ04iLFsxNSwiYVMiXSwiQ1EiLFsxNSwiYVQiXSwiQ1QiLFsxNSwiYVUiXSwiQ1UiLFsxNSwiYVYiXSwiQ1ciLFsxNSwiYVciXSwiQ1giLFsxNSwiYVgiXSwiQ1kiLFsxNSwiYVkiXSwiQ1oiLFsxNSwiYVoiXSwiREEiLFsxNSwiYkEiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2ZlYXR1cmVGbGFncyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsNDVdLFs1MiwiYyIsNDZdLFs1MiwiZCIsNDddLFs1MiwiZSIsMTc0XSxbNTIsImYiLDI3Nl0sWzM2LFs4LCJGIixbMTUsImIiXSwiRyIsWzE1LCJjIl0sIkgiLFsxNSwiZCJdLCJWIixbMTUsImUiXSwiQUQiLFsxNSwiZiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZWNUeXBlcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsImZzcmMiXSxbNTIsImMiLCJmZWlkIl0sWzUyLCJkIiwiMCJdLFs1MiwiZSIsIjEiXSxbNTIsImYiLCIyIl0sWzUyLCJnIiwiMyJdLFs1MiwiaCIsIjQiXSxbMzYsWzgsIkIiLFsxNSwiYyJdLCJGIixbMTUsImciXSwiRCIsWzE1LCJlIl0sIkUiLFsxNSwiZiJdLCJDIixbMTUsImQiXSwiRyIsWzE1LCJoIl0sIkEiLFsxNSwiYiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZmVhdHVyZXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLDQyNV0sWzUyLCJjIiw0MzVdLFs1MiwiZCIsNDg4XSxbNTIsImUiLDQ4OV0sWzUyLCJmIiw0OThdLFs1MiwiZyIsNTAzXSxbNTIsImgiLDUwNF0sWzUyLCJpIiw1MDZdLFs1MiwiaiIsNTIzXSxbNTIsImsiLDUzMl0sWzUyLCJsIiw1NTNdLFs1MiwibSIsNTY4XSxbNTIsIm4iLDU3N10sWzUyLCJvIiw1ODFdLFs1MiwicCIsNTgzXSxbNTIsInEiLDU5Ml0sWzUyLCJyIiw1OTRdLFs1MiwicyIsNTk5XSxbMzYsWzgsIkFWIixbMTUsImsiXSwiQUQiLFsxNSwiZCJdLCJDSSIsWzE1LCJxIl0sIkJWIixbMTUsIm4iXSwiQk8iLFsxNSwibSJdLCJDSyIsWzE1LCJyIl0sIkNQIixbMTUsInMiXSwiQU0iLFsxNSwiZyJdLCJCWiIsWzE1LCJvIl0sIkFUIixbMTUsImoiXSwiQUUiLFsxNSwiZSJdLCJBTiIsWzE1LCJoIl0sIkwiLFsxNSwiYyJdLCJCQyIsWzE1LCJsIl0sIkFPIixbMTUsImkiXSwiQ0IiLFsxNSwicCJdLCJBSSIsWzE1LCJmIl0sIkkiLFsxNSwiYiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY3Jvc3NDb250YWluZXJTY2hlbWEiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCJjb29raWVfZGVwcmVjYXRpb25fbGFiZWwiXSxbNTIsImMiLCJwbGQiXSxbNTIsImQiLCJzaGFyZWRfdXNlcl9pZCJdLFs1MiwiZSIsInNoYXJlZF91c2VyX2lkX3JlcXVlc3RlZCJdLFs1MiwiZiIsInNoYXJlZF91c2VyX2lkX3NvdXJjZSJdLFszNixbOCwiQiIsWzE1LCJiIl0sIk4iLFsxNSwiYyJdLCJTIixbMTUsImQiXSwiVCIsWzE1LCJlIl0sIlUiLFsxNSwiZiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfcGxhdGZvcm1TY2hlbWEiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLDFdLFs1MiwiYyIsMl0sWzUyLCJkIiwzXSxbNTIsImUiLDRdLFs1MiwiZiIsNV0sWzUyLCJnIiw2XSxbMzYsWzgsIkEiLFsxNSwiYiJdLCJGIixbMTUsImciXSwiQiIsWzE1LCJjIl0sIkMiLFsxNSwiZCJdLCJEIixbMTUsImUiXSwiRSIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9nb2xkRXZlbnRVc2FnZUlkIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwxXSxbNTIsImMiLDJdLFs1MiwiZCIsNV0sWzUyLCJlIiw2XSxbNTIsImYiLDddLFs1MiwiZyIsOF0sWzUyLCJoIiw5XSxbNTIsImkiLDExXSxbNTIsImoiLDE1XSxbNTIsImsiLDE2XSxbNTIsImwiLDIwXSxbNTIsIm0iLDIxXSxbNTIsIm4iLDIzXSxbNTIsIm8iLDI0XSxbNTIsInAiLDI3XSxbNTIsInEiLDQwXSxbNTIsInIiLDQxXSxbMzYsWzgsIk8iLFsxNSwiaiJdLCJXIixbMTUsIm4iXSwiUCIsWzE1LCJrIl0sIlgiLFsxNSwibyJdLCJLIixbMTUsImkiXSwiQSIsWzE1LCJiIl0sIlQiLFsxNSwibCJdLCJFIixbMTUsImQiXSwiRiIsWzE1LCJlIl0sIkIiLFsxNSwiYyJdLCJIIixbMTUsImciXSwiQU4iLFsxNSwicSJdLCJJIixbMTUsImgiXSwiRyIsWzE1LCJmIl0sIlUiLFsxNSwibSJdLCJBTyIsWzE1LCJyIl0sIkFBIixbMTUsInAiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiYWVfYmxvY2tfZG93bmxvYWRzIl0sWzUyLCJjIiwiYWVfYmxvY2tfZm9ybSJdLFs1MiwiZCIsImFlX2Jsb2NrX2hpc3RvcnkiXSxbNTIsImUiLCJhZV9ibG9ja19vdXRib3VuZF9jbGljayJdLFs1MiwiZiIsImFlX2Jsb2NrX3Njcm9sbCJdLFs1MiwiZyIsImFlX2Jsb2NrX3ZpZGVvIl0sWzM2LFs4LCJBIixbMTUsImIiXSwiQiIsWzE1LCJjIl0sIkMiLFsxNSwiZCJdLCJEIixbMTUsImUiXSwiRSIsWzE1LCJmIl0sIkYiLFsxNSwiZyJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZXZlbnRVc2FnZVRyYWNrZXJJZHMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLDMyXSxbMzYsWzgsIkFFIixbMTUsImIiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3BsYXRmb3JtRGV0ZWN0aW9uIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJvIixbNDZdLFs2OCwidyIsWzUzLFsyMixbMSxbMjgsWyJlIixbMTcsWzE1LCJoIl0sIkFJIl1dXSxbMjgsWyJlIixbMTcsWzE1LCJoIl0sIkkiXV1dXSxbNDYsWzUzLFszNixbN11dXV1dLFs1MiwidyIsWyJiIixbMTcsWzE1LCJnIl0sIk4iXV1dLFsyMixbIm4iLFsxNSwidyJdXSxbNDYsWzUzLFszNixbMTUsInciXV1dXV0sWzUyLCJ4IixbN11dLFsyMixbInAiXSxbNDYsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImoiXSwiQSJdXV1dXSxbMjIsWyJxIl0sWzQ2LFsyLFsxNSwieCJdLCJwdXNoIixbNyxbMTcsWzE1LCJqIl0sIkIiXV1dXV0sWzIyLFsiciJdLFs0NixbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaiJdLCJGIl1dXV1dLFsyMixbInUiXSxbNDYsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImoiXSwiRCJdXV1dXSxbMjIsWyJzIl0sWzQ2LFsyLFsxNSwieCJdLCJwdXNoIixbNyxbMTcsWzE1LCJqIl0sIkUiXV1dXV0sWzIyLFsidCJdLFs0NixbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaiJdLCJDIl1dXV1dLFsyMixbImwiXSxbNDYsWzUzLFsiZiIsWzE3LFsxNSwiZyJdLCJOIl0sWzE1LCJ4Il0sdHJ1ZV1dXV0sWzM2LFsxNSwieCJdXV0sWzQ2XV0sWzM2LFs3XV1dLFs1MCwicCIsWzQ2XSxbNjgsInciLFs1MyxbMzYsWzI4LFsyOCxbImMiLCJzY3JpcHRbZGF0YS1yZXF1aXJlbW9kdWxlXj1cIm1hZ2UvXCJdIl1dXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwicSIsWzQ2XSxbNjgsInciLFs1MyxbNTIsInciLFsibSIsIllYTnpaWFJ6TG5OeGRXRnlaWE53WVdObExtTnZiUzg9Il1dLFsyMixbMjgsWzE1LCJ3Il1dLFs0NixbMzYsZmFsc2VdXV0sWzM2LFsyOCxbMjgsWyJjIixbMCxbMCwic2NyaXB0W3NyY149XCIvLyIsWzE1LCJ3Il1dLCJcIl0iXV1dXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwiciIsWzQ2XSxbMjIsWzI4LFsiZSIsWzE3LFsxNSwiaCJdLCJJIl1dXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzY4LCJ3IixbNTMsWzUyLCJ3IixbIm0iLCJjMmh2Y0dsbWVTNWpiMjA9Il1dLFs1MiwieCIsWyJtIiwiYzJodmNHbG1lV05rYmk1amIyMD0iXV0sWzIyLFszMCxbMjgsWzE1LCJ3Il1dLFsyOCxbMTUsIngiXV1dLFs0NixbMzYsZmFsc2VdXV0sWzM2LFsyOCxbMjgsWyJjIixbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCxbMCwic2NyaXB0W3NyYyo9XCJjZG4uIixbMTUsInciXV0sIlwiXSwiXSwibWV0YVtwcm9wZXJ0eT1cIm9nOmltYWdlXCJdW2NvbnRlbnQqPVwiY2RuLiJdLFsxNSwidyJdXSwiXCJdLCJdLCJsaW5rW3JlbD1cInByZWNvbm5lY3RcIl1baHJlZio9XCJjZG4uIl0sWzE1LCJ3Il1dLCJcIl0sIl0sImxpbmtbcmVsPVwicHJlY29ubmVjdFwiXVtocmVmKj1cImZvbnRzLiJdLFsxNSwieCJdXSwiXCJdLCJdLCJsaW5rW3JlbD1cInByZWNvbm5lY3RcIl1baHJlZio9XCJpdGVyYWJsZS1zaG9waWZ5XCJdLCJdLCJsaW5rW3JlbD1cInByZWNvbm5lY3RcIl1baHJlZio9XCJ2LiJdLFsxNSwidyJdXSwiXCJdIl1dXV1dXSxbNDZdXSxbMzYsZmFsc2VdXSxbNTAsInMiLFs0Nl0sWzY4LCJ3IixbNTMsWzUyLCJ3IixbImQiLCJwcm90b2NvbCJdXSxbNTIsIngiLFsiZCIsImhvc3QiXV0sWzUyLCJ5IixbMzksWzEsWzE1LCJ3Il0sWzE1LCJ4Il1dLFswLFswLFswLFswLCJbc3JjXj1cIiIsWzE1LCJ3Il1dLCI6Ly8iXSxbMTUsIngiXV0sIi93cC1jb250ZW50XCJdLCJdLCIiXV0sWzUyLCJ6IixbIm0iLCJMbmR2Y21Sd2NtVnpjeTVqYjIwPSJdXSxbNTIsImFBIixbIm0iLCJMeTl6TG5jdWIzSm4iXV0sWzIyLFszMCxbMjgsWzE1LCJ6Il1dLFsyOCxbMTUsImFBIl1dXSxbNDYsWzM2LGZhbHNlXV1dLFszNixbMzAsWyJ2IixbMTUsIngiXSxbMTUsInoiXV0sWzI4LFsyOCxbImMiLFswLFswLFswLFswLFsxNSwieSJdLCJtZXRhW25hbWU9XCJnZW5lcmF0b3JcIl1bY29udGVudF49XCJXb3JkUHJlc3MgXCJdLCJdLCJsaW5rW3JlbD1cImRucy1wcmVmZXRjaFwiXVtocmVmPVwiIl0sWzE1LCJhQSJdXSwiXCJdIl1dXV1dXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJ0IixbNDZdLFs2OCwidyIsWzUzLFs1MiwidyIsWzI4LFsyOCxbImMiLFswLCJbY2xhc3MqPVwid29vY29tbWVyY2VcIl0sIiwibWV0YVtuYW1lPVwiZ2VuZXJhdG9yXCJdW2NvbnRlbnRePVwiV29vQ29tbWVyY2UgXCJdIl1dXV1dLFsyMixbMTUsInciXSxbNDYsWzUzXV1dLFszNixbMTUsInciXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwidSIsWzQ2XSxbNjgsInciLFs1MyxbNTIsInciLFsyOCxbMjgsWyJjIixbMCxbMCwic2NyaXB0W3NyYyo9XCJ3b29jb21tZXJjZVwiXSwiLCJsaW5rW2hyZWYqPVwid29vY29tbWVyY2VcIl0sIl0sIltjbGFzc3w9XCJ3b29jb21tZXJjZVwiXSJdXV1dXSxbMjIsWzE1LCJ3Il0sWzQ2LFs1M11dXSxbMzYsWzE1LCJ3Il1dXSxbNDZdXSxbMzYsZmFsc2VdXSxbNTAsInYiLFs0NiwidyIsIngiXSxbMzYsWzEsWzE5LFsxNyxbMTUsInciXSwibGVuZ3RoIl0sWzE3LFsxNSwieCJdLCJsZW5ndGgiXV0sWzIwLFsyLFsxNSwidyJdLCJzdWJzdHJpbmciLFs3LFszNyxbMTcsWzE1LCJ3Il0sImxlbmd0aCJdLFsxNyxbMTUsIngiXSwibGVuZ3RoIl1dLFsxNyxbMTUsInciXSwibGVuZ3RoIl1dXSxbMTUsIngiXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5RnJvbUNyb3NzQ29udGFpbmVyRGF0YSJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmdldEZpcnN0RWxlbWVudEJ5Q3NzU2VsZWN0b3IiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJnZXRVcmwiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0SW5Dcm9zc0NvbnRhaW5lckRhdGEiXV0sWzUyLCJnIixbMTUsIl9fbW9kdWxlX2Nyb3NzQ29udGFpbmVyU2NoZW1hIl1dLFs1MiwiaCIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIl1dLFs1MiwiaiIsWzE1LCJfX21vZHVsZV9wbGF0Zm9ybVNjaGVtYSJdXSxbNTIsImsiLFsicmVxdWlyZSIsImdldFR5cGUiXV0sWzUyLCJsIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0RvbVJlYWR5Il1dLFs1MiwibSIsWyJyZXF1aXJlIiwiZnJvbUJhc2U2NCJdXSxbNTIsIm4iLFs1MSwiIixbNywidyJdLFszNixbMjAsWyJrIixbMTUsInciXV0sImFycmF5Il1dXV0sWzM2LFs4LCJBIixbMTUsIm8iXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2VuaGFuY2VkTWVhc3VyZW1lbnQiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImUiLFs0NiwiZyJdLFs1MiwiaCIsWyJiIl1dLFs1MiwiaSIsWzddXSxbNTMsWzQxLCJqIl0sWzMsImoiLDBdLFs2MyxbNywiaiJdLFsyMyxbMTUsImoiXSxbMTcsWzE1LCJoIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJqIl0sWzMsImoiLFswLFsxNSwiaiJdLDFdXV0sWzQ2LFs1MyxbNTIsImsiLFsxNixbMTUsImgiXSxbMTUsImoiXV1dLFsyMixbImQiLFsxNSwiZyJdLFsxNSwiayJdXSxbNDYsWzUzLFsyLFsxNSwiaSJdLCJwdXNoIixbNyxbMTUsImsiXV1dXV1dXV1dXSxbMzYsWzE1LCJpIl1dXSxbNTAsImYiLFs0NiwiZyIsImgiXSxbNTIsImkiLFszMCxbMTUsImgiXSxbOF1dXSxbNDMsWzE1LCJpIl0sWzE3LFsxNSwiYyJdLCJUIl0sdHJ1ZV0sWzQzLFsxNSwiaSJdLFsxNyxbMTUsImMiXSwiQ1EiXSx0cnVlXSxbNDMsWzE1LCJpIl0sWzE3LFsxNSwiYyJdLCJaIl0sImEiXSxbNDMsWzE1LCJnIl0sImV2ZW50TWV0YWRhdGEiLFsxNSwiaSJdXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXREZXN0aW5hdGlvbklkcyJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jbGFpbURlc3RpbmF0aW9uIl1dLFszNixbOCwiQSIsWzE1LCJlIl0sIkIiLFsxNSwiZiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY2NkRW1Gb3JtQWN0aXZpdHkiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsIm4iLFs0NiwibyIsInAiLCJxIl0sWzUyLCJyIixbMjAsWzIsWzE1LCJvIl0sImluZGV4T2YiLFs3LCJBVy0iXV0sMF1dLFsyMixbMjAsWzE1LCJwIl0sWzQ0XV0sWzQ2LFs1MyxbMywicCIsWzE1LCJyIl1dXV1dLFsiYyIsWzE1LCJvIl0sWzUxLCIiLFs3LCJzIl0sWzUyLCJ0IixbMixbMTUsInMiXSwiZ2V0RXZlbnROYW1lIixbN11dXSxbNTIsInUiLFszMCxbMjAsWzE1LCJ0Il0sWzE1LCJsIl1dLFsyMCxbMTUsInQiXSxbMTUsImsiXV1dXSxbMjIsWzMwLFsyOCxbMTUsInUiXV0sWzI4LFsyLFsxNSwicyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJUIl1dXV1dLFs0NixbNTMsWzM2XV1dXSxbMjIsWyJiIixbMTUsIm8iXSxbMTUsImoiXV0sWzQ2LFs1MyxbMixbMTUsInMiXSwiYWJvcnQiLFs3XV0sWzM2XV1dXSxbMjIsWzEsWzI4LFsxNSwicCJdXSxbMixbMTUsInMiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiQUoiXV1dXSxbNDYsWzUzLFsyLFsxNSwicyJdLCJhYm9ydCIsWzddXSxbMzZdXV1dLFs1MiwidiIsWzIsWzE1LCJzIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIkFBIl1dXV0sWzIyLFsxLFsyOCxbMTUsInIiXV0sWzIwLFsxNSwidiJdLFsxNSwibSJdXV0sWzQ2LFs1MyxbMixbMTUsInMiXSwiYWJvcnQiLFs3XV0sWzM2XV1dXSxbMjIsWzI4LFsiaCIsWzE3LFsxNSwiaSJdLCJCWiJdXV0sWzQ2LFs1MyxbMjIsWzIwLFsxNSwidiJdLFsxNSwibSJdXSxbNDYsWzUzLFsyLFsxNSwicyJdLCJhYm9ydCIsWzddXSxbMzZdXV0sWzQ2LFsyMixbMjAsWzE1LCJ2Il0sWzE1LCJrIl1dLFs0NixbNTMsWzIsWzE1LCJzIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIlMiXSxbNDRdXV1dXV1dXV1dXSxbMixbMTUsInMiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiQ1EiXSxmYWxzZV1dLFsyMixbMSxbMTUsInYiXSxbMTUsInIiXV0sWzQ2LFs1MyxbNDEsInciXSxbMywidyIsWzE3LFsxNSwiZyJdLCJDIl1dLFs0MSwieCJdLFsyMixbMjAsWzE1LCJ2Il0sWzE1LCJsIl1dLFs0NixbNTMsWzMsInciLFsxNyxbMTUsImciXSwiRCJdXV1dLFs0NixbMjIsWzIwLFsxNSwidiJdLFsxNSwiayJdXSxbNDYsWzUzLFszLCJ3IixbMTcsWzE1LCJnIl0sIkUiXV0sWzMsIngiLFsyLFsxNSwicyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJTIl1dXV1dXSxbNDYsWzIyLFsyMCxbMTUsInYiXSxbMTUsIm0iXV0sWzQ2LFs1MyxbMywidyIsWzE3LFsxNSwiZyJdLCJGIl1dLFszLCJ4IixbMixbMTUsInMiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiUyJdXV1dXV1dXV1dXSxbNTIsInkiLFs4XV0sWzQzLFsxNSwieSJdLFsxNyxbMTUsImciXSwiQSJdLFsxNSwidyJdXSxbMjIsWzE1LCJ4Il0sWzQ2LFs1MyxbNDMsWzE1LCJ5Il0sWzE3LFsxNSwiZyJdLCJCIl0sWzE1LCJ4Il1dXV1dLFsyLFsxNSwicyJdLCJtZXJnZUhpdERhdGFGb3JLZXkiLFs3LFsxNyxbMTUsImYiXSwiRlQiXSxbMTUsInkiXV1dXV1dLFsyMixbMjgsWzE1LCJxIl1dLFs0NixbNTMsWzIsWzE1LCJzIl0sInNldEhpdERhdGEiLFs3LCJmb3JtX2lkIixbNDRdXV0sWzIsWzE1LCJzIl0sInNldEhpdERhdGEiLFs3LCJmb3JtX25hbWUiLFs0NF1dXSxbMixbMTUsInMiXSwic2V0SGl0RGF0YSIsWzcsImZvcm1fZGVzdGluYXRpb24iLFs0NF1dXSxbMixbMTUsInMiXSwic2V0SGl0RGF0YSIsWzcsImZvcm1fbGVuZ3RoIixbNDRdXV0sWzIyLFsyMCxbMTUsInQiXSxbMTUsImsiXV0sWzQ2LFs1MyxbMixbMTUsInMiXSwic2V0SGl0RGF0YSIsWzcsImZvcm1fc3VibWl0X3RleHQiLFs0NF1dXV1dLFs0NixbMjIsWzIwLFsxNSwidCJdLFsxNSwibCJdXSxbNDYsWzUzLFsyLFsxNSwicyJdLCJzZXRIaXREYXRhIixbNywiZmlyc3RfZmllbGRfaWQiLFs0NF1dXSxbMixbMTUsInMiXSwic2V0SGl0RGF0YSIsWzcsImZpcnN0X2ZpZWxkX25hbWUiLFs0NF1dXSxbMixbMTUsInMiXSwic2V0SGl0RGF0YSIsWzcsImZpcnN0X2ZpZWxkX3R5cGUiLFs0NF1dXSxbMixbMTUsInMiXSwic2V0SGl0RGF0YSIsWzcsImZpcnN0X2ZpZWxkX3Bvc2l0aW9uIixbNDRdXV1dXV1dXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfZWNUeXBlcyJdXSxbNTIsImgiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiaiIsWzE3LFsxNSwiZSJdLCJCIl1dLFs1MiwiayIsImZvcm1fc3VibWl0Il0sWzUyLCJsIiwiZm9ybV9zdGFydCJdLFs1MiwibSIsImNsaWNrIl0sWzM2LFs4LCJBIixbMTUsIm4iXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2NjZEVtUGFnZVZpZXdBY3Rpdml0eSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiaiIsWzQ2LCJrIl0sWyJjIixbMTUsImsiXSxbNTEsIiIsWzcsImwiXSxbMjIsWzMwLFsyMSxbMixbMTUsImwiXSwiZ2V0RXZlbnROYW1lIixbN11dLFsxNSwiaSJdXSxbMjgsWzIsWzE1LCJsIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIlQiXV1dXV0sWzQ2LFs1MyxbMzZdXV1dLFsyMixbImIiLFsxNSwiayJdLFsxNSwiaCJdXSxbNDYsWzUzLFsyLFsxNSwibCJdLCJhYm9ydCIsWzddXSxbMzZdXV1dLFsyMixbMjgsWzIsWzE1LCJsIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkJPIl1dXV0sWzQ2LFs1MyxbImQiLFsxNSwiayJdLFsxNyxbMTUsImYiXSwiSEUiXSxbMixbMTUsImwiXSwiZ2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiZiJdLCJIRSJdXV1dXV1dLFsyLFsxNSwibCJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJDUSJdLGZhbHNlXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0UmVtb3RlQ29uZmlnUGFyYW1ldGVyIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJoIixbMTcsWzE1LCJnIl0sIkMiXV0sWzUyLCJpIixbMTcsWzE1LCJmIl0sIkFLIl1dLFszNixbOCwiQSIsWzE1LCJqIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0R3BwUGFyYW1zIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJkIixbNDYsImUiXSxbNTIsImYiLFsiYiJdXSxbMjIsWzE2LFsxNSwiZiJdLFsxNyxbMTUsImMiXSwiRloiXV0sWzQ2LFs1MyxbMixbMTUsImUiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYyJdLCJGWiJdLFsxNixbMTUsImYiXSxbMTcsWzE1LCJjIl0sIkZaIl1dXV1dXV0sWzIyLFsxNixbMTUsImYiXSxbMTcsWzE1LCJjIl0sIkZZIl1dLFs0NixbNTMsWzIsWzE1LCJlIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImMiXSwiRlkiXSxbMTYsWzE1LCJmIl0sWzE3LFsxNSwiYyJdLCJGWSJdXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByaXZhY3lTdHJpbmdzIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJkIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0VGVzdEhpdFBhcmFtcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZiIsWzQ2LCJnIl0sWzIyLFsyLFsxNSwiZyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJCUyJdXV0sWzQ2LFs1MyxbMixbMTUsImciXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJJUCJdLCIxIl1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiZiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza0VuYWJsZUVuY3J5cHRpb24iLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImgiLFs0NiwiaiJdLFs1MiwiayIsWzIsWzE1LCJqIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJnIl0sIkFRIl1dXV0sWzIyLFsxLFszMCxbMjAsWzE1LCJrIl0sWzE3LFsxNSwiYiJdLCJLIl1dLFsyMCxbMTUsImsiXSxbMTcsWzE1LCJiIl0sIkoiXV1dLFsiaSIsWzE1LCJqIl1dXSxbNDYsWzUzLFsyLFsxNSwiaiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZyJdLCJCQyJdLHRydWVdXV1dXV0sWzUwLCJpIixbNDYsImoiXSxbMjIsWzI4LFsyLFsxNSwiaiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZyJdLCJDVyJdXV1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbMzYsWyJjIl1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfYWR3b3Jkc0hpdFR5cGUiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZwZmUiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIl1dLFs1MiwiZyIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiaCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1BsYXRmb3JtRGV0ZWN0aW9uIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJkIixbNDYsImUiXSxbNTIsImYiLFsyLFsxNSwiYyJdLCJBIixbN11dXSxbMjIsWzEsWzE1LCJmIl0sWzE4LFsxNyxbMTUsImYiXSwibGVuZ3RoIl0sMF1dLFs0NixbNTMsWzIsWzE1LCJlIl0sIm1lcmdlSGl0RGF0YUZvcktleSIsWzcsWzE3LFsxNSwiYiJdLCJGVCJdLFs4LCJwbGYiLFsyLFsxNSwiZiJdLCJqb2luIixbNywiLiJdXV1dXV1dXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX3BsYXRmb3JtRGV0ZWN0aW9uIl1dLFszNixbOCwiQSIsWzE1LCJkIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAKXQosImVudGl0aWVzIjp7CiJfX2NjZF9hZGRfMXBfZGF0YSI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9hZHNfZmlyc3QiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfYWRzX2xhc3QiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfZW1fZm9ybSI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9lbV9wYWdlX3ZpZXciOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfcHJlX2F1dG9fcGlpIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fZSI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX29ndF8xcF9kYXRhX3YyIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fb2d0X2Fkc19kYXRhdG9zIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fcmVwIjp7IjUiOnRydWUsIjYiOnRydWV9CgoKfQosImJsb2IiOnsiMSI6IjEiLCIxMCI6IkFXLTExMjk3NTk0Nzk1fEdULVROR0pCS1QiLCIxMSI6dHJ1ZSwiMTQiOiI2N20wIiwiMTUiOiIwIiwiMTYiOiJDaEFJOE9DVzB3WVFyNURna0orZThhTjlFaDhBaCtnR2ZzbnNuSldqVXZBN0tISGJ5alpCeUFxUnJWQ2ZaNTI1WEJaNkdnSUF5Zz09IiwiMTciOiJjIiwiMTkiOiJkYXRhTGF5ZXIiLCIyIjp0cnVlLCIyMCI6IiIsIjIxIjoid3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tIiwiMjIiOiJleUl3SWpvaVRrOGlMQ0l4SWpvaVRrOHRNRE1pTENJeUlqcG1ZV3h6WlN3aU15STZJbWR2YjJkc1pTNXVieUlzSWpRaU9pSnlaV2RwYjI0eElpd2lOU0k2Wm1Gc2MyVXNJallpT25SeWRXVXNJamNpT2lKaFpGOXpkRzl5WVdkbGZHRnVZV3g1ZEdsamMxOXpkRzl5WVdkbGZHRmtYM1Z6WlhKZlpHRjBZWHhoWkY5d1pYSnpiMjVoYkdsNllYUnBiMjRpTENJNUlqcDBjblZsZlEiLCIyMyI6Imdvb2dsZS50YWdtYW5hZ2VyLmRlYnVndWkyLnF1ZXVlIiwiMjQiOiJ0YWdhc3Npc3RhbnQuZ29vZ2xlLmNvbSIsIjI3IjowLjAwNSwiMyI6Ind3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbSIsIjMwIjoiTk8iLCIzMSI6Ik5PLTAzIiwiMzIiOmZhbHNlLCIzMyI6InJlZ2lvbjEiLCIzNCI6IkFXLTExMjk3NTk0Nzk1IiwiMzUiOiJBVyIsIjM2IjoiaHR0cHM6Ly9hZHNlcnZpY2UuZ29vZ2xlLmNvbS9wYWdlYWQvcmVnY2xrIiwiMzciOiJfX1RBR0dZX0lOU1RBTExFRCIsIjM4IjoiY2N0Lmdvb2dsZSIsIjM5IjoiZ29vZ1RhZ2d5UmVmZXJyZXIiLCI0MCI6Imh0dHBzOi8vY2N0Lmdvb2dsZS90YWdneS9hZ2VudC5qcyIsIjQxIjoiZ29vZ2xlLnRhZ21hbmFnZXIudGEucHJvZHF1ZXVlIiwiNDIiOjAuMDEsIjQzIjoie1wia2V5c1wiOlt7XCJocGtlUHVibGljS2V5XCI6e1wicGFyYW1zXCI6e1wiYWVhZFwiOlwiQUVTXzEyOF9HQ01cIixcImtkZlwiOlwiSEtERl9TSEEyNTZcIixcImtlbVwiOlwiREhLRU1fUDI1Nl9IS0RGX1NIQTI1NlwifSxcInB1YmxpY0tleVwiOlwiQktseVRYMmp5b2JwUUNtZlV5QmJoQnlRSGs5WjJIZE41bEh4cEJBdElLR01jbXp3MGdFK2VibFlDbW0xR2E3YlllVGR5ZG9KbWU2SXBhU29DVTBJVVVvPVwiLFwidmVyc2lvblwiOjB9LFwiaWRcIjpcImRlZTRiMzUxLWIwZjUtNGMyNy1hOGM4LWVkNjYwNDc3YTQ0Y1wifSx7XCJocGtlUHVibGljS2V5XCI6e1wicGFyYW1zXCI6e1wiYWVhZFwiOlwiQUVTXzEyOF9HQ01cIixcImtkZlwiOlwiSEtERl9TSEEyNTZcIixcImtlbVwiOlwiREhLRU1fUDI1Nl9IS0RGX1NIQTI1NlwifSxcInB1YmxpY0tleVwiOlwiQkR0WUJSblBCUzFnNm1lWE8xclE1YTUyQjVGYm5oN0RDNWpxdjAyaXhKc3NuMGsxSjlyY0hDYVZjL3p6UnNuc0hCelNvRktzNko4cEg3Q2NuUVAzRWp3PVwiLFwidmVyc2lvblwiOjB9LFwiaWRcIjpcImFkMTkzYjJhLTRhOTAtNGMxYS1iNzllLWRlMzdhYzM5MWJkMlwifSx7XCJocGtlUHVibGljS2V5XCI6e1wicGFyYW1zXCI6e1wiYWVhZFwiOlwiQUVTXzEyOF9HQ01cIixcImtkZlwiOlwiSEtERl9TSEEyNTZcIixcImtlbVwiOlwiREhLRU1fUDI1Nl9IS0RGX1NIQTI1NlwifSxcInB1YmxpY0tleVwiOlwiQk1aMFVNdWRBZTRQb2FmU1RwVXhQdElrZkJlQ01iRkJYdnR5Ull2SExDU1EvRVV2RUpzbXNWNHQ2TkIvQkVWcHFMM0h2OGdOU1FoN0srU1Vvb2YyNWFvPVwiLFwidmVyc2lvblwiOjB9LFwiaWRcIjpcIjQ4YzRlZmUxLWZkZDAtNDM2YS1hYzhmLTkyM2YxMTkxODc4N1wifSx7XCJocGtlUHVibGljS2V5XCI6e1wicGFyYW1zXCI6e1wiYWVhZFwiOlwiQUVTXzEyOF9HQ01cIixcImtkZlwiOlwiSEtERl9TSEEyNTZcIixcImtlbVwiOlwiREhLRU1fUDI1Nl9IS0RGX1NIQTI1NlwifSxcInB1YmxpY0tleVwiOlwiQkZmbHZVbCt4cEhhRlZDSVlPMUtQTHhrditBamRsNGQ4cnZyWGhJNnpmcG5iQkRxSTUxRERrdEhIYjNaV0lTNTdvRGgwS2lyOUF1Q09vbjJNT3hOVjlZPVwiLFwidmVyc2lvblwiOjB9LFwiaWRcIjpcIjQzMmJjMjcwLTk5ZWEtNDIyMC1iNTYyLWUyYzVhZTc3ZDRkOVwifSx7XCJocGtlUHVibGljS2V5XCI6e1wicGFyYW1zXCI6e1wiYWVhZFwiOlwiQUVTXzEyOF9HQ01cIixcImtkZlwiOlwiSEtERl9TSEEyNTZcIixcImtlbVwiOlwiREhLRU1fUDI1Nl9IS0RGX1NIQTI1NlwifSxcInB1YmxpY0tleVwiOlwiQkFROFRreTRETFdPSmJIT0hiVllEYlFaRWZFZWxiNEZUQjhFWU1RZVJRaUwxbTFMdEFkMHIzemV5TGpnWjMvVzI0UjhWZmIyMnpZMml4NlcvVGZDampBPVwiLFwidmVyc2lvblwiOjB9LFwiaWRcIjpcIjA1MGE2ZTExLTM4YWItNGY4MC04OWNiLTdiMzE5Yjk3MDRjMFwifV19IiwiNDQiOiIxMTg4OTc5MjB+MTE4ODk3OTMwIiwiNDUiOnRydWUsIjQ2Ijp7IjEiOiIxMDAwIiwiMTAiOiI2NnUwIiwiMTEiOiI2NmcwIiwiMTQiOiIxMDAwIiwiMTYiOiJVUy1DT35VUy1DVH5VUy1NVH5VUy1ORX5VUy1OSH5VUy1UWH5VUy1NTn5VUy1OSn5VUy1NRH5VUy1PUn5VUy1ERSIsIjE3IjoiVVMtQ09+VVMtQ1R+VVMtTVR+VVMtTkV+VVMtTkh+VVMtVFh+VVMtTU5+VVMtTkp+VVMtTUR+VVMtT1J+VVMtREUiLCIyIjoiOSIsIjIwIjoiNTAwMCIsIjIxIjoiNTAwMCIsIjIyIjoiNC40LjAiLCIyMyI6IjAuMC4wIiwiMjUiOiIxIiwiMjYiOiI0MDAwIiwiMjciOiIxMDAiLCIzIjoiNSIsIjQiOiJhZF9zdG9yYWdlfGFuYWx5dGljc19zdG9yYWdlfGFkX3VzZXJfZGF0YXxhZF9wZXJzb25hbGl6YXRpb24iLCI0NCI6IjE1MDAwIiwiNDgiOiIzMDAwMCIsIjUiOiJhZF9zdG9yYWdlfGFuYWx5dGljc19zdG9yYWdlfGFkX3VzZXJfZGF0YSIsIjYiOiIxIiwiNjEiOiIxMDAwIiwiNjIiOiJBNk9OSFJZNy9idkJybytJTVpkL2E2TE5qbjdTU3Y5OTlTa04vaEZBRTlMNnZNcjM0ZE5nZmRTVmRZbXY0VStOSFpnMXN4ZDM4UnRjaVJwUlV0SVJQZ1FBQUFDQ2V5SnZjbWxuYVc0aU9pSm9kSFJ3Y3pvdkwzZDNkeTVuYjI5bmJHVjBZV2R0WVc1aFoyVnlMbU52YlRvME5ETWlMQ0ptWldGMGRYSmxJam9pVTJoaGNtVmtWMjl5YTJWeVJYaDBaVzVrWldSTWFXWmxkR2x0WlNJc0ltVjRjR2x5ZVNJNk1UYzNOamN5T1RZd01Dd2lhWE5VYUdseVpGQmhjblI1SWpwMGNuVmxmUT09IiwiNjMiOiIxMDAwIiwiNjYiOiIxMDAiLCI3IjoiMTAifSwiNDgiOnRydWUsIjUiOiJBVy0xMTI5NzU5NDc5NSIsIjUxIjp0cnVlLCI1NSI6WyJBVy0xMTI5NzU5NDc5NSJdLCI1NiI6W3siMSI6NDAzLCIzIjowLjUsIjQiOjExNTkzODQ2NSwiNSI6MTE1OTM4NDY2LCI2IjowLCI3IjoyfSx7IjEiOjQwNCwiMyI6MC41LCI0IjoxMTU5Mzg0NjgsIjUiOjExNTkzODQ2OSwiNiI6MCwiNyI6MX0seyIxIjo2MDIsIjMiOjAuMDEsIjQiOjEyMDEyNDQ1NSwiNSI6MTIwMTI0NDUzLCI2IjoxMjAxMjQ0NTQsIjciOjN9LHsiMSI6NTY5LCIyIjp0cnVlfSx7IjEiOjQ3NSwiMiI6dHJ1ZX0seyIxIjo1MDIsIjIiOnRydWV9LHsiMSI6NTc3LCIyIjp0cnVlfSx7IjEiOjU2OCwiMyI6MC4wMSwiNCI6MTE5NzkxNzQ5LCI1IjoxMTk3OTE3NDgsIjYiOjAsIjciOjF9LHsiMSI6NDkwLCIyIjp0cnVlfSx7IjEiOjQ5MSwiMyI6MC4wMSwiNCI6MTE4MDEyMDA3LCI1IjoxMTgwMTIwMDgsIjYiOjExODAxMjAwOSwiNyI6MX0seyIxIjo0ODAsIjIiOnRydWV9LHsiMSI6NTk0LCIzIjowLjAxLCI0IjoxMTk3OTM5NzQsIjUiOjExOTc5Mzk3MiwiNiI6MTE5NzkzOTczLCI3IjoxfSx7IjEiOjU5OSwiMiI6dHJ1ZX0seyIxIjo1ODAsIjMiOjAuMSwiNCI6MTE5NTI3MDIwLCI1IjoxMTk1MjcwMTksIjYiOjAsIjciOjF9LHsiMSI6NTIzLCIyIjp0cnVlfSx7IjEiOjU4MSwiMyI6MC4wMSwiNCI6MTE5OTQ4ODU0LCI1IjoxMTk5NDg4NTIsIjYiOjExOTk0ODg1MywiNyI6M30seyIxIjo1NTUsIjMiOjAuMDEsIjQiOjExOTI1OTYwNiwiNSI6MTE5MjU5NjA1LCI2IjowLCI3IjoyfSx7IjEiOjUwNCwiMiI6dHJ1ZX0seyIxIjo0NjIsIjMiOjAuMDUsIjQiOjExODgwNjUyNCwiNSI6MTE4ODA2NTI1LCI2IjoxMTg4MDY1MjYsIjciOjF9LHsiMSI6NDEzLCIyIjp0cnVlfSx7IjEiOjU5MywiMiI6dHJ1ZX0seyIxIjo1MDYsIjIiOnRydWV9LHsiMSI6NTAwLCIyIjp0cnVlfSx7IjEiOjU2MSwiMyI6MC4wMDEsIjQiOjExOTQwNDcwMywiNSI6MTE5NDA0NzAyLCI2IjowLCI3IjoxfSx7IjEiOjQ4MSwiMyI6MC4wMDEsIjQiOjExOTQwNDcwMSwiNSI6MTE5NDA0NzAwLCI2IjowLCI3IjoxfSx7IjEiOjQ1MCwiMyI6MC4wMSwiNCI6MTE3MjI3NzE0LCI1IjoxMTcyMjc3MTUsIjYiOjExNzIyNzcxNiwiNyI6M30seyIxIjo1ODMsIjMiOjAuNSwiNCI6MTE5ODk2ODAzLCI1IjoxMTk4OTY4MDIsIjYiOjAsIjciOjF9LHsiMSI6NDU4LCIyIjp0cnVlfSx7IjEiOjU4MiwiMyI6MC4wMSwiNCI6MTE5MzgxNjY0LCI1IjoxMTkzODE2NjIsIjYiOjExOTM4MTY2MywiNyI6MX0seyIxIjo1NzAsIjIiOnRydWV9LHsiMSI6NDk4LCIzIjowLjIsIjQiOjExNTYxNjk4NSwiNSI6MTE1NjE2OTg2LCI2IjowLCI3IjoxfSx7IjEiOjU5NSwiMiI6dHJ1ZX0seyIxIjo1ODksIjMiOjAuMDEsIjQiOjEyMDA4NDIxNSwiNSI6MTIwMDg0MjE0LCI2IjowLCI3IjoxfSx7IjEiOjQ5NSwiMyI6MC4wNSwiNCI6MTE4MTMxODEwLCI1IjoxMTgxMzE4MDgsIjYiOjExODEzMTgwOSwiNyI6M30seyIxIjo1ODcsIjMiOjAuMSwiNCI6MTE5NzMyMTcxLCI1IjoxMTk3MzIxNzAsIjYiOjAsIjciOjN9LHsiMSI6NTg0LCIyIjp0cnVlfSx7IjEiOjU2NCwiMyI6MC4wMDAxLCI0IjoxMTkyMDUzMTcsIjUiOjExOTIwNTMxNSwiNiI6MTE5MjA1MzE2LCI3IjoxfSx7IjEiOjU1NywiMiI6dHJ1ZX0seyIxIjo0MjcsIjMiOjAuMSwiNCI6MTE5NzI0MzIyLCI1IjoxMTk3MjQzMjAsIjYiOjExOTcyNDMyMSwiNyI6Mn0seyIxIjo1NzYsIjMiOjAuMDEsIjQiOjExOTMxNzgxMCwiNSI6MTE5MzE3ODExLCI2IjoxMTkzMTgxNzcsIjciOjN9LHsiMSI6NTczLCIyIjp0cnVlfSx7IjEiOjQ5OSwiMiI6dHJ1ZX0seyIxIjo1MTYsIjMiOjAuMSwiNCI6MTE4Mzk1MzM1LCI1IjoxMTgzOTUzMzMsIjYiOjExODM5NTMzNCwiNyI6MX0seyIxIjo1MjQsIjIiOnRydWV9XSwiNTkiOlsiQVctMTEyOTc1OTQ3OTUiXSwiNiI6IjE2ODE1MDU0OCIsIjYyIjp0cnVlLCI2MyI6MC4wMDV9CiwicGVybWlzc2lvbnMiOnsKIl9fY2NkX2FkZF8xcF9kYXRhIjp7InJlYWRfY29udGFpbmVyX2RhdGEiOnt9fQosCiJfX2NjZF9hZHNfZmlyc3QiOnsicmVhZF9kb21fZWxlbWVudHMiOnsiYWxsb3dlZENzc1NlbGVjdG9ycyI6ImFueSJ9LCJnZXRfdXJsIjp7InVybFBhcnRzIjoic3BlY2lmaWMiLCJwcm90b2NvbCI6dHJ1ZSwiaG9zdCI6dHJ1ZX19CiwKIl9fY2NkX2Fkc19sYXN0Ijp7fQosCiJfX2NjZF9lbV9mb3JtIjp7ImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIjp7fSwibGlzdGVuX2RhdGFfbGF5ZXIiOnsiYWNjZXNzVHlwZSI6InNwZWNpZmljIiwiYWxsb3dlZEV2ZW50cyI6WyJndG0uZm9ybUludGVyYWN0IiwiZ3RtLmZvcm1TdWJtaXQiLCJndG0uY2xpY2stdjIiXX0sImRldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMiOnsiYWxsb3dXYWl0Rm9yVGFncyI6IiJ9LCJkZXRlY3RfY2xpY2tfZXZlbnRzIjp7fSwiZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzIjp7fX0KLAoiX19jY2RfZW1fcGFnZV92aWV3Ijp7Imxpc3Rlbl9kYXRhX2xheWVyIjp7ImFjY2Vzc1R5cGUiOiJzcGVjaWZpYyIsImFsbG93ZWRFdmVudHMiOlsiZ3RtLmhpc3RvcnlDaGFuZ2UtdjIiXX0sImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIjp7fSwiZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cyI6e319CiwKIl9fY2NkX3ByZV9hdXRvX3BpaSI6eyJkZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhIjp7ImxpbWl0RGF0YVNvdXJjZXMiOnRydWUsImFsbG93QXV0b0RhdGFTb3VyY2VzIjp0cnVlLCJhbGxvd01hbnVhbERhdGFTb3VyY2VzIjpmYWxzZSwiYWxsb3dDb2RlRGF0YVNvdXJjZXMiOmZhbHNlfSwiYWNjZXNzX2NvbnNlbnQiOnsiY29uc2VudFR5cGVzIjpbeyJjb25zZW50VHlwZSI6ImFkX3N0b3JhZ2UiLCJyZWFkIjp0cnVlLCJ3cml0ZSI6ZmFsc2V9LHsiY29uc2VudFR5cGUiOiJhbmFseXRpY3Nfc3RvcmFnZSIsInJlYWQiOnRydWUsIndyaXRlIjpmYWxzZX1dfX0KLAoiX19lIjp7InJlYWRfZXZlbnRfZGF0YSI6eyJldmVudERhdGFBY2Nlc3MiOiJzcGVjaWZpYyIsImtleVBhdHRlcm5zIjpbImV2ZW50Il19fQosCiJfX29ndF8xcF9kYXRhX3YyIjp7ImRldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEiOnsibGltaXREYXRhU291cmNlcyI6dHJ1ZSwiYWxsb3dBdXRvRGF0YVNvdXJjZXMiOnRydWUsImFsbG93TWFudWFsRGF0YVNvdXJjZXMiOmZhbHNlLCJhbGxvd0NvZGVEYXRhU291cmNlcyI6ZmFsc2V9fQosCiJfX29ndF9hZHNfZGF0YXRvcyI6e30KLAoiX19yZXAiOnt9CgoKfQoKCgosInNlY3VyaXR5X2dyb3VwcyI6ewoiZ29vZ2xlIjpbCiJfX2NjZF9hZGRfMXBfZGF0YSIKLAoiX19jY2RfYWRzX2ZpcnN0IgosCiJfX2NjZF9hZHNfbGFzdCIKLAoiX19jY2RfZW1fZm9ybSIKLAoiX19jY2RfZW1fcGFnZV92aWV3IgosCiJfX2NjZF9wcmVfYXV0b19waWkiCiwKIl9fZSIKLAoiX19vZ3RfMXBfZGF0YV92MiIKLAoiX19vZ3RfYWRzX2RhdGF0b3MiCiwKIl9fcmVwIgoKXQoKCn0KCgoKCgp9OwoKCgoKdmFyIGssYWE9dHlwZW9mIE9iamVjdC5jcmVhdGU9PSJmdW5jdGlvbiI/T2JqZWN0LmNyZWF0ZTpmdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbigpe307Yi5wcm90b3R5cGU9YTtyZXR1cm4gbmV3IGJ9LGJhPXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz09ImZ1bmN0aW9uIj9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9LGNhPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGEsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF0sYz0wO2M8Yi5sZW5ndGg7KytjKXt2YXIgZD1iW2NdO2lmKGQmJmQuTWF0aD09TWF0aClyZXR1cm4gZH10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpOwp9LGhhPWNhKHRoaXMpLGlhPXR5cGVvZiBTeW1ib2w9PT0iZnVuY3Rpb24iJiZ0eXBlb2YgU3ltYm9sKCJ4Iik9PT0ic3ltYm9sIixrYT17fSxsYT17fSxuYT1mdW5jdGlvbihhLGIsYyl7aWYoIWN8fGEhPW51bGwpe3ZhciBkPWxhW2JdO2lmKGQ9PW51bGwpcmV0dXJuIGFbYl07dmFyIGU9YVtkXTtyZXR1cm4gZSE9PXZvaWQgMD9lOmFbYl19fSxvYT1mdW5jdGlvbihhLGIsYyl7aWYoYilhOnt2YXIgZD1hLnNwbGl0KCIuIiksZT1kLmxlbmd0aD09PTEsZj1kWzBdLGc7IWUmJmYgaW4ga2E/Zz1rYTpnPWhhO2Zvcih2YXIgaD0wO2g8ZC5sZW5ndGgtMTtoKyspe3ZhciBsPWRbaF07aWYoIShsIGluIGcpKWJyZWFrIGE7Zz1nW2xdfXZhciBuPWRbZC5sZW5ndGgtMV0scD1pYSYmYz09PSJlczYiP2dbbl06bnVsbCxxPWIocCk7aWYocSE9bnVsbClpZihlKWJhKGthLG4se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpxfSk7ZWxzZSBpZihxIT09cCl7aWYobGFbbl09PT12b2lkIDApe3ZhciByPQpNYXRoLnJhbmRvbSgpKjFFOT4+PjA7bGFbbl09aWE/aGEuU3ltYm9sKG4pOiIkanNjcCQiK3IrIiQiK259YmEoZyxsYVtuXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnF9KX19fSxwYTtpZihpYSYmdHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj09ImZ1bmN0aW9uIilwYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y7ZWxzZXt2YXIgcmE7YTp7dmFyIHRhPXthOiEwfSx1YT17fTt0cnl7dWEuX19wcm90b19fPXRhO3JhPXVhLmE7YnJlYWsgYX1jYXRjaChhKXt9cmE9ITF9cGE9cmE/ZnVuY3Rpb24oYSxiKXthLl9fcHJvdG9fXz1iO2lmKGEuX19wcm90b19fIT09Yil0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBhfTpudWxsfQp2YXIgdmE9cGEsd2E9ZnVuY3Rpb24oYSxiKXthLnByb3RvdHlwZT1hYShiLnByb3RvdHlwZSk7YS5wcm90b3R5cGUuY29uc3RydWN0b3I9YTtpZih2YSl2YShhLGIpO2Vsc2UgZm9yKHZhciBjIGluIGIpaWYoYyE9InByb3RvdHlwZSIpaWYoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMpe3ZhciBkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYixjKTtkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxjLGQpfWVsc2UgYVtjXT1iW2NdO2EuRnQ9Yi5wcm90b3R5cGV9LHhhPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fSxtPWZ1bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiBTeW1ib2whPSJ1bmRlZmluZWQiJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtpZihiKXJldHVybiBiLmNhbGwoYSk7aWYodHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIilyZXR1cm57bmV4dDp4YShhKX07CnRocm93IEVycm9yKFN0cmluZyhhKSsiIGlzIG5vdCBhbiBpdGVyYWJsZSBvciBBcnJheUxpa2UiKTt9LHlhPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYixjPVtdOyEoYj1hLm5leHQoKSkuZG9uZTspYy5wdXNoKGIudmFsdWUpO3JldHVybiBjfSx3PWZ1bmN0aW9uKGEpe3JldHVybiBhIGluc3RhbmNlb2YgQXJyYXk/YTp5YShtKGEpKX0sQWE9ZnVuY3Rpb24oYSl7cmV0dXJuIHphKGEsYSl9LHphPWZ1bmN0aW9uKGEsYil7YS5yYXc9YjtPYmplY3QuZnJlZXplJiYoT2JqZWN0LmZyZWV6ZShhKSxPYmplY3QuZnJlZXplKGIpKTtyZXR1cm4gYX0sQmE9aWEmJnR5cGVvZiBuYShPYmplY3QsImFzc2lnbiIpPT0iZnVuY3Rpb24iP25hKE9iamVjdCwiYXNzaWduIik6ZnVuY3Rpb24oYSxiKXtpZihhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIk5vIG51bGxpc2ggYXJnIik7YT1PYmplY3QoYSk7Zm9yKHZhciBjPTE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyl7dmFyIGQ9YXJndW1lbnRzW2NdOwppZihkKWZvcih2YXIgZSBpbiBkKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGUpJiYoYVtlXT1kW2VdKX1yZXR1cm4gYX07b2EoIk9iamVjdC5hc3NpZ24iLGZ1bmN0aW9uKGEpe3JldHVybiBhfHxCYX0sImVzNiIpO3ZhciBDYT1mdW5jdGlvbihhKXtpZighKGEgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2ErIiBpcyBub3QgYW4gb2JqZWN0Iik7fSxEYT1mdW5jdGlvbigpe3RoaXMuZmE9ITE7dGhpcy5SPW51bGw7dGhpcy5qYT12b2lkIDA7dGhpcy5IPTE7dGhpcy5OPXRoaXMuWj0wO3RoaXMuTGE9dGhpcy5LPW51bGx9LEVhPWZ1bmN0aW9uKGEpe2lmKGEuZmEpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2EuZmE9ITB9O0RhLnByb3RvdHlwZS55YT1mdW5jdGlvbihhKXt0aGlzLmphPWF9Owp2YXIgR2E9ZnVuY3Rpb24oYSxiKXthLks9e2FvOmIsaXNFeGNlcHRpb246ITB9O2EuSD1hLlp8fGEuTn07RGEucHJvdG90eXBlLmdldE5leHRBZGRyZXNzSnNjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSH07RGEucHJvdG90eXBlLmdldFlpZWxkUmVzdWx0SnNjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuamF9O0RhLnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYSl7dGhpcy5LPXtyZXR1cm46YX07dGhpcy5IPXRoaXMuTn07RGEucHJvdG90eXBlWyJyZXR1cm4iXT1EYS5wcm90b3R5cGUucmV0dXJuO0RhLnByb3RvdHlwZS5Baj1mdW5jdGlvbihhKXt0aGlzLks9e25kOmF9O3RoaXMuSD10aGlzLk59O0RhLnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9RGEucHJvdG90eXBlLkFqO0RhLnByb3RvdHlwZS5hYz1mdW5jdGlvbihhLGIpe3RoaXMuSD1iO3JldHVybnt2YWx1ZTphfX07RGEucHJvdG90eXBlLnlpZWxkPURhLnByb3RvdHlwZS5hYzsKRGEucHJvdG90eXBlLnhzPWZ1bmN0aW9uKGEsYil7dmFyIGM9bShhKSxkPWMubmV4dCgpO0NhKGQpO2lmKGQuZG9uZSl0aGlzLmphPWQudmFsdWUsdGhpcy5IPWI7ZWxzZSByZXR1cm4gdGhpcy5SPWMsdGhpcy5hYyhkLnZhbHVlLGIpfTtEYS5wcm90b3R5cGUueWllbGRBbGw9RGEucHJvdG90eXBlLnhzO0RhLnByb3RvdHlwZS5uZD1mdW5jdGlvbihhKXt0aGlzLkg9YX07RGEucHJvdG90eXBlLmp1bXBUbz1EYS5wcm90b3R5cGUubmQ7RGEucHJvdG90eXBlLkRqPWZ1bmN0aW9uKCl7dGhpcy5IPTB9O0RhLnByb3RvdHlwZS5qdW1wVG9FbmQ9RGEucHJvdG90eXBlLkRqO0RhLnByb3RvdHlwZS5Oaj1mdW5jdGlvbihhLGIpe3RoaXMuWj1hO2IhPXZvaWQgMCYmKHRoaXMuTj1iKX07RGEucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1EYS5wcm90b3R5cGUuTmo7RGEucHJvdG90eXBlLnZnPWZ1bmN0aW9uKGEpe3RoaXMuWj0wO3RoaXMuTj1hfHwwfTsKRGEucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1EYS5wcm90b3R5cGUudmc7RGEucHJvdG90eXBlLklqPWZ1bmN0aW9uKGEsYil7dGhpcy5IPWE7dGhpcy5aPWJ8fDB9O0RhLnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPURhLnByb3RvdHlwZS5JajtEYS5wcm90b3R5cGUuUGg9ZnVuY3Rpb24oYSl7dGhpcy5aPWF8fDA7dmFyIGI9dGhpcy5LLmFvO3RoaXMuSz1udWxsO3JldHVybiBifTtEYS5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPURhLnByb3RvdHlwZS5QaDtEYS5wcm90b3R5cGUua2Q9ZnVuY3Rpb24oYSxiLGMpe2M/dGhpcy5MYVtjXT10aGlzLks6dGhpcy5MYT1bdGhpcy5LXTt0aGlzLlo9YXx8MDt0aGlzLk49Ynx8MH07RGEucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPURhLnByb3RvdHlwZS5rZDsKRGEucHJvdG90eXBlLmhlPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5MYS5zcGxpY2UoYnx8MClbMF0sZD10aGlzLks9dGhpcy5LfHxjO2Q/ZC5pc0V4Y2VwdGlvbj90aGlzLkg9dGhpcy5afHx0aGlzLk46ZC5uZCE9dm9pZCAwJiZ0aGlzLk48ZC5uZD8odGhpcy5IPWQubmQsdGhpcy5LPW51bGwpOnRoaXMuSD10aGlzLk46dGhpcy5IPWF9O0RhLnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1EYS5wcm90b3R5cGUuaGU7RGEucHJvdG90eXBlLmZlPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgSGEoYSl9O0RhLnByb3RvdHlwZS5mb3JJbj1EYS5wcm90b3R5cGUuZmU7dmFyIEhhPWZ1bmN0aW9uKGEpe3RoaXMuSz1hO3RoaXMuSD1bXTtmb3IodmFyIGIgaW4gYSl0aGlzLkgucHVzaChiKTt0aGlzLkgucmV2ZXJzZSgpfTtIYS5wcm90b3R5cGUuaG89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuSC5sZW5ndGg+MDspe3ZhciBhPXRoaXMuSC5wb3AoKTtpZihhIGluIHRoaXMuSylyZXR1cm4gYX1yZXR1cm4gbnVsbH07CkhhLnByb3RvdHlwZS5nZXROZXh0PUhhLnByb3RvdHlwZS5obzsKdmFyIElhPWZ1bmN0aW9uKGEpe3RoaXMuSD1uZXcgRGE7dGhpcy5LPWF9LExhPWZ1bmN0aW9uKGEsYil7RWEoYS5IKTt2YXIgYz1hLkguUjtpZihjKXJldHVybiBKYShhLCJyZXR1cm4iaW4gYz9jWyJyZXR1cm4iXTpmdW5jdGlvbihkKXtyZXR1cm57dmFsdWU6ZCxkb25lOiEwfX0sYixhLkgucmV0dXJuKTthLkgucmV0dXJuKGIpO3JldHVybiBLYShhKX0sSmE9ZnVuY3Rpb24oYSxiLGMsZCl7dHJ5e3ZhciBlPWIuY2FsbChhLkguUixjKTtDYShlKTtpZighZS5kb25lKXJldHVybiBhLkguZmE9ITEsZTt2YXIgZj1lLnZhbHVlfWNhdGNoKGcpe3JldHVybiBhLkguUj1udWxsLEdhKGEuSCxnKSxLYShhKX1hLkguUj1udWxsO2QuY2FsbChhLkgsZik7cmV0dXJuIEthKGEpfSxLYT1mdW5jdGlvbihhKXtmb3IoO2EuSC5IOyl0cnl7dmFyIGI9YS5LKGEuSCk7aWYoYilyZXR1cm4gYS5ILmZhPSExLHt2YWx1ZTpiLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGQpe2EuSC5qYT12b2lkIDAsR2EoYS5ILApkKX1hLkguZmE9ITE7aWYoYS5ILkspe3ZhciBjPWEuSC5LO2EuSC5LPW51bGw7aWYoYy5pc0V4Y2VwdGlvbil0aHJvdyBjLmFvO3JldHVybnt2YWx1ZTpjLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fSxNYT1mdW5jdGlvbihhKXt0aGlzLm5leHQ9ZnVuY3Rpb24oYil7dmFyIGM7RWEoYS5IKTthLkguUj9jPUphKGEsYS5ILlIubmV4dCxiLGEuSC55YSk6KGEuSC55YShiKSxjPUthKGEpKTtyZXR1cm4gY307dGhpcy50aHJvdz1mdW5jdGlvbihiKXt2YXIgYztFYShhLkgpO2EuSC5SP2M9SmEoYSxhLkguUlsidGhyb3ciXSxiLGEuSC55YSk6KEdhKGEuSCxiKSxjPUthKGEpKTtyZXR1cm4gY307dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIExhKGEsYil9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX0sTmE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1uZXcgTWEobmV3IElhKGIpKTt2YSYmYS5wcm90b3R5cGUmJnZhKGMsCmEucHJvdG90eXBlKTtyZXR1cm4gY30sT2E9ZnVuY3Rpb24oKXtmb3IodmFyIGE9TnVtYmVyKHRoaXMpLGI9W10sYz1hO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspYltjLWFdPWFyZ3VtZW50c1tjXTtyZXR1cm4gYn0sUWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGF9Oy8qCgogQ29weXJpZ2h0IFRoZSBDbG9zdXJlIExpYnJhcnkgQXV0aG9ycy4KIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiovCnZhciBSYT10aGlzfHxzZWxmLFNhPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe31jLnByb3RvdHlwZT1iLnByb3RvdHlwZTthLkZ0PWIucHJvdG90eXBlO2EucHJvdG90eXBlPW5ldyBjO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7YS5udj1mdW5jdGlvbihkLGUsZil7Zm9yKHZhciBnPUFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMiksaD0yO2g8YXJndW1lbnRzLmxlbmd0aDtoKyspZ1toLTJdPWFyZ3VtZW50c1toXTtyZXR1cm4gYi5wcm90b3R5cGVbZV0uYXBwbHkoZCxnKX19O3ZhciBUYT1mdW5jdGlvbihhLGIpe3RoaXMudHlwZT1hO3RoaXMuZGF0YT1ifTt2YXIgVWE9ZnVuY3Rpb24oKXt0aGlzLm1hcD17fTt0aGlzLkg9e319O1VhLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubWFwWyJkdXN0LiIrYV19O1VhLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz0iZHVzdC4iK2E7dGhpcy5ILmhhc093blByb3BlcnR5KGMpfHwodGhpcy5tYXBbY109Yil9O1VhLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubWFwLmhhc093blByb3BlcnR5KCJkdXN0LiIrYSl9O1VhLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oYSl7dmFyIGI9ImR1c3QuIithO3RoaXMuSC5oYXNPd25Qcm9wZXJ0eShiKXx8ZGVsZXRlIHRoaXMubWFwW2JdfTsKdmFyIFZhPWZ1bmN0aW9uKGEsYil7dmFyIGM9W10sZDtmb3IoZCBpbiBhLm1hcClpZihhLm1hcC5oYXNPd25Qcm9wZXJ0eShkKSl7dmFyIGU9ZC5zdWJzdHJpbmcoNSk7c3dpdGNoKGIpe2Nhc2UgMTpjLnB1c2goZSk7YnJlYWs7Y2FzZSAyOmMucHVzaChhLm1hcFtkXSk7YnJlYWs7Y2FzZSAzOmMucHVzaChbZSxhLm1hcFtkXV0pfX1yZXR1cm4gY307VWEucHJvdG90eXBlLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIFZhKHRoaXMsMSl9O1VhLnByb3RvdHlwZS5oYz1mdW5jdGlvbigpe3JldHVybiBWYSh0aGlzLDIpfTtVYS5wcm90b3R5cGUuZmM9ZnVuY3Rpb24oKXtyZXR1cm4gVmEodGhpcywzKX07dmFyIFdhPWZ1bmN0aW9uKCl7fTtXYS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt9O3ZhciBYYT1mdW5jdGlvbigpe3RoaXMudmFsdWU9e307dGhpcy5wcmVmaXg9Imd0bS4ifTtrPVhhLnByb3RvdHlwZTtrLnNldD1mdW5jdGlvbihhLGIpe3RoaXMudmFsdWVbdGhpcy5wcmVmaXgrU3RyaW5nKGEpXT1ifTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZVt0aGlzLnByZWZpeCtTdHJpbmcoYSldfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZS5oYXNPd25Qcm9wZXJ0eSh0aGlzLnByZWZpeCtTdHJpbmcoYSkpfTtrLmRlbGV0ZT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLnByZWZpeCtTdHJpbmcoYSk7cmV0dXJuIHRoaXMudmFsdWUuaGFzT3duUHJvcGVydHkoYik/KGRlbGV0ZSB0aGlzLnZhbHVlW2JdLCEwKTohMX07ay5jbGVhcj1mdW5jdGlvbigpe3RoaXMudmFsdWU9e319OwprLnZhbHVlcz1mdW5jdGlvbigpe3ZhciBhPXRoaXM7cmV0dXJuIGZ1bmN0aW9uIGMoKXt2YXIgZCxlLGY7cmV0dXJuIE5hKGMsZnVuY3Rpb24oZyl7c3dpdGNoKGcuSCl7Y2FzZSAxOmcudmcoMiksZT1nLmZlKGEudmFsdWUpO2Nhc2UgNDppZigoZD1lLmhvKCkpPT1udWxsKXtnLm5kKDIpO2JyZWFrfWlmKCFhLnZhbHVlLmhhc093blByb3BlcnR5KGQpKXtnLm5kKDQpO2JyZWFrfWY9UWE7cmV0dXJuIGcuYWMoYS52YWx1ZVtkXSw4KTtjYXNlIDg6ZihnLmphKTtnLm5kKDQpO2JyZWFrO2Nhc2UgMjpnLmtkKCksZy5oZSgwKX19KX0oKX07aGEuT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoWGEucHJvdG90eXBlLHtzaXplOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy52YWx1ZSkubGVuZ3RofX19KTsKZnVuY3Rpb24gWWEoKXt0cnl7aWYoTWFwKXJldHVybiBuZXcgTWFwfWNhdGNoKGEpe31yZXR1cm4gbmV3IFhhfTt2YXIgWmE9ZnVuY3Rpb24oKXt0aGlzLnZhbHVlcz1bXX07WmEucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhKXt0aGlzLnZhbHVlcy5pbmRleE9mKGEpPT09LTEmJnRoaXMudmFsdWVzLnB1c2goYSl9O1phLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWVzLmluZGV4T2YoYSk+LTF9O3ZhciAkYT1mdW5jdGlvbihhLGIpe3RoaXMuZmE9YTt0aGlzLnBhcmVudD1iO3RoaXMuUj10aGlzLks9dm9pZCAwO3RoaXMuSGI9ITE7dGhpcy5OPWZ1bmN0aW9uKGQsZSxmKXtyZXR1cm4gZC5hcHBseShlLGYpfTt0aGlzLkg9WWEoKTt2YXIgYzthOnt0cnl7aWYoU2V0KXtjPW5ldyBTZXQ7YnJlYWsgYX19Y2F0Y2goZCl7fWM9bmV3IFphfXRoaXMuWj1jfTskYS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYil7YWIodGhpcyxhLGIsITEpfTskYS5wcm90b3R5cGUuUWg9ZnVuY3Rpb24oYSxiKXthYih0aGlzLGEsYiwhMCl9O3ZhciBhYj1mdW5jdGlvbihhLGIsYyxkKXthLkhifHxhLlouaGFzKGIpfHwoZCYmYS5aLmFkZChiKSxhLkguc2V0KGIsYykpfTtrPSRhLnByb3RvdHlwZTsKay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLkhifHwoIXRoaXMuSC5oYXMoYSkmJnRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5oYXMoYSk/dGhpcy5wYXJlbnQuc2V0KGEsYik6dGhpcy5aLmhhcyhhKXx8dGhpcy5ILnNldChhLGIpKX07ay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuSC5oYXMoYSk/dGhpcy5ILmdldChhKTp0aGlzLnBhcmVudD90aGlzLnBhcmVudC5nZXQoYSk6dm9pZCAwfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4hIXRoaXMuSC5oYXMoYSl8fCEoIXRoaXMucGFyZW50fHwhdGhpcy5wYXJlbnQuaGFzKGEpKX07ay53Yj1mdW5jdGlvbigpe3ZhciBhPW5ldyAkYSh0aGlzLmZhLHRoaXMpO3RoaXMuSyYmYS5RYih0aGlzLkspO2Euc2QodGhpcy5OKTthLnVlKHRoaXMuUik7cmV0dXJuIGF9O2suamU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mYX07ay5RYj1mdW5jdGlvbihhKXt0aGlzLks9YX07ay5mbz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkt9OwprLnNkPWZ1bmN0aW9uKGEpe3RoaXMuTj1hfTtrLlBqPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTn07ay5aYT1mdW5jdGlvbigpe3RoaXMuSGI9ITB9O2sudWU9ZnVuY3Rpb24oYSl7dGhpcy5SPWF9O2sueGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SfTt2YXIgYmI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2Q9RXJyb3IuY2FsbCh0aGlzLGEubWVzc2FnZSk7dGhpcy5tZXNzYWdlPWQubWVzc2FnZTsic3RhY2siaW4gZCYmKHRoaXMuc3RhY2s9ZC5zdGFjayk7dGhpcy52bz1hO3RoaXMuU249Yz09PXZvaWQgMD8hMTpjO3RoaXMuSz1bXTt0aGlzLkg9Yn07d2EoYmIsRXJyb3IpO3ZhciBjYj1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIGJiP2E6bmV3IGJiKGEsdm9pZCAwLCEwKX07dmFyIGRiPVlhKCk7ZnVuY3Rpb24gZWIoYSxiKXtmb3IodmFyIGMsZD1tKGIpLGU9ZC5uZXh0KCk7IWUuZG9uZSYmIShjPWZiKGEsZS52YWx1ZSksYyBpbnN0YW5jZW9mIFRhKTtlPWQubmV4dCgpKTtyZXR1cm4gY31mdW5jdGlvbiBmYihhLGIpe3RyeXt2YXIgYz1iWzBdLGQ9Yi5zbGljZSgxKSxlPVN0cmluZyhjKSxmPWRiLmhhcyhlKT9kYi5nZXQoZSk6YS5nZXQoZSk7aWYoIWZ8fHR5cGVvZiBmLmludm9rZSE9PSJmdW5jdGlvbiIpdGhyb3cgY2IoRXJyb3IoIkF0dGVtcHRpbmcgdG8gZXhlY3V0ZSBub24tZnVuY3Rpb24gIitiWzBdKyIuIikpO3JldHVybiBmLmFwcGx5KGEsZCl9Y2F0Y2goaCl7dmFyIGc9YS5mbygpO2cmJmcoaCxiLmNvbnRleHQ/e2lkOmJbMF0sbGluZTpiLmNvbnRleHQubGluZX06bnVsbCk7dGhyb3cgaDt9fTt2YXIgZ2I9ZnVuY3Rpb24oKXt0aGlzLks9bmV3IFdhO3RoaXMuSD1uZXcgJGEodGhpcy5LKX07az1nYi5wcm90b3R5cGU7ay5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkt9O2suUWI9ZnVuY3Rpb24oYSl7dGhpcy5ILlFiKGEpfTtrLnNkPWZ1bmN0aW9uKGEpe3RoaXMuSC5zZChhKX07ay5leGVjdXRlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnJrKFthXS5jb25jYXQodyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKSl9O2sucms9ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj1tKE9hLmFwcGx5KDAsYXJndW1lbnRzKSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpYT1mYih0aGlzLkgsYy52YWx1ZSk7cmV0dXJuIGF9O2suSnE9ZnVuY3Rpb24oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpLGM9dGhpcy5ILndiKCk7Yy51ZShhKTtmb3IodmFyIGQsZT1tKGIpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKWQ9ZmIoYyxmLnZhbHVlKTtyZXR1cm4gZH07ay5aYT1mdW5jdGlvbigpe3RoaXMuSC5aYSgpfTt2YXIgaGI9ZnVuY3Rpb24oYSxiKXt0aGlzLlI9YTt0aGlzLnBhcmVudD1iO3RoaXMuTj10aGlzLkg9dm9pZCAwO3RoaXMuSGI9ITE7dGhpcy5LPWZ1bmN0aW9uKGMsZCxlKXtyZXR1cm4gYy5hcHBseShkLGUpfTt0aGlzLnZhbHVlcz1uZXcgVWF9O2hiLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxiKXtqYih0aGlzLGEsYiwhMSl9O2hiLnByb3RvdHlwZS5RaD1mdW5jdGlvbihhLGIpe2piKHRoaXMsYSxiLCEwKX07dmFyIGpiPWZ1bmN0aW9uKGEsYixjLGQpe2lmKCFhLkhiKWlmKGQpe3ZhciBlPWEudmFsdWVzO2Uuc2V0KGIsYyk7ZS5IWyJkdXN0LiIrYl09ITB9ZWxzZSBhLnZhbHVlcy5zZXQoYixjKX07az1oYi5wcm90b3R5cGU7ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLkhifHwoIXRoaXMudmFsdWVzLmhhcyhhKSYmdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmhhcyhhKT90aGlzLnBhcmVudC5zZXQoYSxiKTp0aGlzLnZhbHVlcy5zZXQoYSxiKSl9OwprLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZXMuaGFzKGEpP3RoaXMudmFsdWVzLmdldChhKTp0aGlzLnBhcmVudD90aGlzLnBhcmVudC5nZXQoYSk6dm9pZCAwfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4hIXRoaXMudmFsdWVzLmhhcyhhKXx8ISghdGhpcy5wYXJlbnR8fCF0aGlzLnBhcmVudC5oYXMoYSkpfTtrLndiPWZ1bmN0aW9uKCl7dmFyIGE9bmV3IGhiKHRoaXMuUix0aGlzKTt0aGlzLkgmJmEuUWIodGhpcy5IKTthLnNkKHRoaXMuSyk7YS51ZSh0aGlzLk4pO3JldHVybiBhfTtrLmplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUn07ay5RYj1mdW5jdGlvbihhKXt0aGlzLkg9YX07ay5mbz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkh9O2suc2Q9ZnVuY3Rpb24oYSl7dGhpcy5LPWF9O2suUGo9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5IYj0hMH07ay51ZT1mdW5jdGlvbihhKXt0aGlzLk49YX07ay54Yj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk59O3ZhciBrYj1mdW5jdGlvbigpe3RoaXMuTmE9ITE7dGhpcy5sYT1uZXcgVWF9O2s9a2IucHJvdG90eXBlO2suZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmdldChhKX07ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLk5hfHx0aGlzLmxhLnNldChhLGIpfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5oYXMoYSl9O2sucmVtb3ZlPWZ1bmN0aW9uKGEpe3RoaXMuTmF8fHRoaXMubGEucmVtb3ZlKGEpfTtrLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuRmEoKX07ay5oYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmhjKCl9O2suZmM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5mYygpfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5OYT0hMH07ay5IYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk5hfTtmdW5jdGlvbiBsYigpe2Zvcih2YXIgYT1tYixiPXt9LGM9MDtjPGEubGVuZ3RoOysrYyliW2FbY11dPWM7cmV0dXJuIGJ9ZnVuY3Rpb24gbmIoKXt2YXIgYT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiO2ErPWEudG9Mb3dlckNhc2UoKSsiMDEyMzQ1Njc4OS1fIjtyZXR1cm4gYSsiLiJ9dmFyIG1iLG9iO2Z1bmN0aW9uIHBiKGEpe21iPW1ifHxuYigpO29iPW9ifHxsYigpO2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKz0zKXt2YXIgZD1jKzE8YS5sZW5ndGgsZT1jKzI8YS5sZW5ndGgsZj1hLmNoYXJDb2RlQXQoYyksZz1kP2EuY2hhckNvZGVBdChjKzEpOjAsaD1lP2EuY2hhckNvZGVBdChjKzIpOjAsbD1mPj4yLG49KGYmMyk8PDR8Zz4+NCxwPShnJjE1KTw8MnxoPj42LHE9aCY2MztlfHwocT02NCxkfHwocD02NCkpO2IucHVzaChtYltsXSxtYltuXSxtYltwXSxtYltxXSl9cmV0dXJuIGIuam9pbigiIil9CmZ1bmN0aW9uIHFiKGEpe2Z1bmN0aW9uIGIobCl7Zm9yKDtkPGEubGVuZ3RoOyl7dmFyIG49YS5jaGFyQXQoZCsrKSxwPW9iW25dO2lmKHAhPW51bGwpcmV0dXJuIHA7aWYoIS9eW1xzXHhhMF0qJC8udGVzdChuKSl0aHJvdyBFcnJvcigiVW5rbm93biBiYXNlNjQgZW5jb2RpbmcgYXQgY2hhcjogIituKTt9cmV0dXJuIGx9bWI9bWJ8fG5iKCk7b2I9b2J8fGxiKCk7Zm9yKHZhciBjPSIiLGQ9MDs7KXt2YXIgZT1iKC0xKSxmPWIoMCksZz1iKDY0KSxoPWIoNjQpO2lmKGg9PT02NCYmZT09PS0xKXJldHVybiBjO2MrPVN0cmluZy5mcm9tQ2hhckNvZGUoZTw8MnxmPj40KTtnIT09NjQmJihjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGY8PDQmMjQwfGc+PjIpLGghPT02NCYmKGMrPVN0cmluZy5mcm9tQ2hhckNvZGUoZzw8NiYxOTJ8aCkpKX19O3ZhciByYj17fTtmdW5jdGlvbiBzYihhLGIpe3ZhciBjPXJiW2FdO2N8fChjPXJiW2FdPVtdKTtjW2JdPSEwfWZ1bmN0aW9uIHRiKCl7ZGVsZXRlIHJiLkdBNF9FVkVOVH1mdW5jdGlvbiB1Yigpe3ZhciBhPXZiLkguc2xpY2UoKTtyYi5HVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTD1hfWZ1bmN0aW9uIHdiKGEpe2Zvcih2YXIgYj1bXSxjPTAsZD0wO2Q8YS5sZW5ndGg7ZCsrKWQlOD09PTAmJmQ+MCYmKGIucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGMpKSxjPTApLGFbZF0mJihjfD0xPDxkJTgpO2M+MCYmYi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYykpO3JldHVybiBwYihiLmpvaW4oIiIpKS5yZXBsYWNlKC9cLiskLywiIil9O2Z1bmN0aW9uIHhiKCl7fWZ1bmN0aW9uIHliKGEpe3JldHVybiB0eXBlb2YgYT09PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gemIoYSl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyJ9ZnVuY3Rpb24gQWIoYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciImJiFpc05hTihhKX1mdW5jdGlvbiBCYihhKXtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hOlthXX1mdW5jdGlvbiBDYihhLGIpe2lmKGEmJkFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYVtjXSYmYihhW2NdKSlyZXR1cm4gYVtjXX1mdW5jdGlvbiBEYihhLGIpe2lmKCFBYihhKXx8IUFiKGIpfHxhPmIpYT0wLGI9MjE0NzQ4MzY0NztyZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKihiLWErMSkrYSl9CmZ1bmN0aW9uIEViKGEsYil7Zm9yKHZhciBjPW5ldyBGYixkPTA7ZDxhLmxlbmd0aDtkKyspYy5zZXQoYVtkXSwhMCk7Zm9yKHZhciBlPTA7ZTxiLmxlbmd0aDtlKyspaWYoYy5nZXQoYltlXSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gR2IoYSxiKXtmb3IodmFyIGMgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxjKSYmYihjLGFbY10pfWZ1bmN0aW9uIEhiKGEpe3JldHVybiEhYSYmKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKT09PSJbb2JqZWN0IEFyZ3VtZW50c10ifHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSwiY2FsbGVlIikpfWZ1bmN0aW9uIEliKGEpe3JldHVybiBNYXRoLnJvdW5kKE51bWJlcihhKSl8fDB9ZnVuY3Rpb24gSmIoYSl7cmV0dXJuImZhbHNlIj09PVN0cmluZyhhKS50b0xvd2VyQ2FzZSgpPyExOiEhYX0KZnVuY3Rpb24gS2IoYSl7dmFyIGI9W107aWYoQXJyYXkuaXNBcnJheShhKSlmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKyliLnB1c2goU3RyaW5nKGFbY10pKTtyZXR1cm4gYn1mdW5jdGlvbiBMYihhKXtyZXR1cm4gYT9hLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKToiIn1mdW5jdGlvbiBNYigpe3JldHVybiBuZXcgRGF0ZShEYXRlLm5vdygpKX1mdW5jdGlvbiBOYigpe3JldHVybiBNYigpLmdldFRpbWUoKX12YXIgRmI9ZnVuY3Rpb24oKXt0aGlzLnByZWZpeD0iZ3RtLiI7dGhpcy52YWx1ZXM9e319O0ZiLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLnZhbHVlc1t0aGlzLnByZWZpeCthXT1ifTtGYi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlc1t0aGlzLnByZWZpeCthXX07RmIucHJvdG90eXBlLmNvbnRhaW5zPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmdldChhKSE9PXZvaWQgMH07CmZ1bmN0aW9uIE9iKGEsYixjKXtyZXR1cm4gYSYmYS5oYXNPd25Qcm9wZXJ0eShiKT9hW2JdOmN9ZnVuY3Rpb24gUGIoYSl7dmFyIGI9YTtyZXR1cm4gZnVuY3Rpb24oKXtpZihiKXt2YXIgYz1iO2I9dm9pZCAwO3RyeXtjKCl9Y2F0Y2goZCl7fX19fWZ1bmN0aW9uIFFiKGEsYil7Zm9yKHZhciBjIGluIGIpYi5oYXNPd25Qcm9wZXJ0eShjKSYmKGFbY109YltjXSl9ZnVuY3Rpb24gUmIoYSxiKXtmb3IodmFyIGM9W10sZD0wO2Q8YS5sZW5ndGg7ZCsrKWMucHVzaChhW2RdKSxjLnB1c2guYXBwbHkoYyxiW2FbZF1dfHxbXSk7cmV0dXJuIGN9ZnVuY3Rpb24gU2IoYSxiKXtyZXR1cm4gYS5sZW5ndGg+PWIubGVuZ3RoJiZhLnN1YnN0cmluZygwLGIubGVuZ3RoKT09PWJ9ZnVuY3Rpb24gVGIoYSxiKXtyZXR1cm4gYS5sZW5ndGg+PWIubGVuZ3RoJiZhLnN1YnN0cmluZyhhLmxlbmd0aC1iLmxlbmd0aCxhLmxlbmd0aCk9PT1ifQpmdW5jdGlvbiBVYihhLGIsYyl7Yz1jfHxbXTtmb3IodmFyIGQ9YSxlPTA7ZTxiLmxlbmd0aC0xO2UrKyl7aWYoIWQuaGFzT3duUHJvcGVydHkoYltlXSkpcmV0dXJuO2Q9ZFtiW2VdXTtpZihjLmluZGV4T2YoZCk+PTApcmV0dXJufXJldHVybiBkfWZ1bmN0aW9uIFZiKGEsYil7Zm9yKHZhciBjPXt9LGQ9YyxlPWEuc3BsaXQoIi4iKSxmPTA7ZjxlLmxlbmd0aC0xO2YrKylkPWRbZVtmXV09e307ZFtlW2UubGVuZ3RoLTFdXT1iO3JldHVybiBjfXZhciBXYj0vXlx3ezEsOX0kLztmdW5jdGlvbiBZYihhLGIpe2E9YXx8e307Yj1ifHwiLCI7dmFyIGM9W107R2IoYSxmdW5jdGlvbihkLGUpe1diLnRlc3QoZCkmJmUmJmMucHVzaChkKX0pO3JldHVybiBjLmpvaW4oYil9CmZ1bmN0aW9uIFpiKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWEuY2hhckNvZGVBdChjKTtkPDEyOD9iLnB1c2goZCk6ZDwyMDQ4P2IucHVzaCgxOTJ8ZD4+NiwxMjh8ZCY2Myk6ZDw1NTI5Nnx8ZD49NTczNDQ/Yi5wdXNoKDIyNHxkPj4xMiwxMjh8ZD4+NiY2MywxMjh8ZCY2Myk6KGQ9NjU1MzYrKChkJjEwMjMpPDwxMHxhLmNoYXJDb2RlQXQoKytjKSYxMDIzKSxiLnB1c2goMjQwfGQ+PjE4LDEyOHxkPj4xMiY2MywxMjh8ZD4+NiY2MywxMjh8ZCY2MykpfXJldHVybiBuZXcgVWludDhBcnJheShiKX1mdW5jdGlvbiAkYihhKXtpZighYSlyZXR1cm4gYTt2YXIgYj1hO3RyeXtiPWRlY29kZVVSSUNvbXBvbmVudChhKX1jYXRjaChkKXt9dmFyIGM9Yi5zcGxpdCgiLCIpO3JldHVybiBjLmxlbmd0aD09PTImJmNbMF09PT1jWzFdP2NbMF06YX0KZnVuY3Rpb24gYWMoYSxiLGMpe2Z1bmN0aW9uIGQobil7dmFyIHA9bi5zcGxpdCgiPSIpWzBdO2lmKGEuaW5kZXhPZihwKTwwKXJldHVybiBuO2lmKGMhPT12b2lkIDApcmV0dXJuIHArIj0iK2N9ZnVuY3Rpb24gZShuKXtyZXR1cm4gbi5zcGxpdCgiJiIpLm1hcChkKS5maWx0ZXIoZnVuY3Rpb24ocCl7cmV0dXJuIHAhPT12b2lkIDB9KS5qb2luKCImIil9dmFyIGY9Yi5ocmVmLnNwbGl0KC9bPyNdLylbMF0sZz1iLnNlYXJjaCxoPWIuaGFzaDtnWzBdPT09Ij8iJiYoZz1nLnN1YnN0cmluZygxKSk7aFswXT09PSIjIiYmKGg9aC5zdWJzdHJpbmcoMSkpO2c9ZShnKTtoPWUoaCk7ZyE9PSIiJiYoZz0iPyIrZyk7aCE9PSIiJiYoaD0iIyIraCk7dmFyIGw9IiIrZitnK2g7bFtsLmxlbmd0aC0xXT09PSIvIiYmKGw9bC5zdWJzdHJpbmcoMCxsLmxlbmd0aC0xKSk7cmV0dXJuIGx9CmZ1bmN0aW9uIGJjKGEpe2Zvcih2YXIgYj0wO2I8MzsrK2IpdHJ5e3ZhciBjPWRlY29kZVVSSUNvbXBvbmVudChhKS5yZXBsYWNlKC9cKy9nLCIgIik7aWYoYz09PWEpYnJlYWs7YT1jfWNhdGNoKGQpe3JldHVybiIifXJldHVybiBhfWZ1bmN0aW9uIGNjKCl7dmFyIGE9QSxiO2E6e3ZhciBjPWEuY3J5cHRvfHxhLm1zQ3J5cHRvO2lmKGMmJmMuZ2V0UmFuZG9tVmFsdWVzKXRyeXt2YXIgZD1uZXcgVWludDhBcnJheSgyNSk7Yy5nZXRSYW5kb21WYWx1ZXMoZCk7Yj1idG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHcoZCkpKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC8sIiIpO2JyZWFrIGF9Y2F0Y2goZSl7fWI9dm9pZCAwfXJldHVybiBifTsvKgoKIENvcHlyaWdodCBHb29nbGUgTExDCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwp2YXIgZGM9Z2xvYmFsVGhpcy50cnVzdGVkVHlwZXMsZWM7ZnVuY3Rpb24gZmMoKXt2YXIgYT1udWxsO2lmKCFkYylyZXR1cm4gYTt0cnl7dmFyIGI9ZnVuY3Rpb24oYyl7cmV0dXJuIGN9O2E9ZGMuY3JlYXRlUG9saWN5KCJnb29nI2h0bWwiLHtjcmVhdGVIVE1MOmIsY3JlYXRlU2NyaXB0OmIsY3JlYXRlU2NyaXB0VVJMOmJ9KX1jYXRjaChjKXt9cmV0dXJuIGF9ZnVuY3Rpb24gaGMoKXtlYz09PXZvaWQgMCYmKGVjPWZjKCkpO3JldHVybiBlY307dmFyIGljPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTtpYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IKyIifTtmdW5jdGlvbiBqYyhhKXt2YXIgYj1hLGM9aGMoKSxkPWM/Yy5jcmVhdGVTY3JpcHRVUkwoYik6YjtyZXR1cm4gbmV3IGljKGQpfWZ1bmN0aW9uIGtjKGEpe2lmKGEgaW5zdGFuY2VvZiBpYylyZXR1cm4gYS5IO3Rocm93IEVycm9yKCIiKTt9O3ZhciBsYz1BYShbIiJdKSxtYz16YShbIlx4MDAiXSxbIlxcMCJdKSxuYz16YShbIlxuIl0sWyJcXG4iXSksb2M9emEoWyJceDAwIl0sWyJcXHUwMDAwIl0pO2Z1bmN0aW9uIHBjKGEpe3JldHVybiBhLnRvU3RyaW5nKCkuaW5kZXhPZigiYCIpPT09LTF9cGMoZnVuY3Rpb24oYSl7cmV0dXJuIGEobGMpfSl8fHBjKGZ1bmN0aW9uKGEpe3JldHVybiBhKG1jKX0pfHxwYyhmdW5jdGlvbihhKXtyZXR1cm4gYShuYyl9KXx8cGMoZnVuY3Rpb24oYSl7cmV0dXJuIGEob2MpfSk7dmFyIHFjPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTtxYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IfTt2YXIgcmM9ZnVuY3Rpb24oYSl7dGhpcy5Kcz1hfTtmdW5jdGlvbiBzYyhhKXtyZXR1cm4gbmV3IHJjKGZ1bmN0aW9uKGIpe3JldHVybiBiLnN1YnN0cigwLGEubGVuZ3RoKzEpLnRvTG93ZXJDYXNlKCk9PT1hKyI6In0pfXZhciB0Yz1bc2MoImRhdGEiKSxzYygiaHR0cCIpLHNjKCJodHRwcyIpLHNjKCJtYWlsdG8iKSxzYygiZnRwIiksbmV3IHJjKGZ1bmN0aW9uKGEpe3JldHVybi9eW146XSooWy8/I118JCkvLnRlc3QoYSl9KV07ZnVuY3Rpb24gdWMoYSl7dmFyIGI7Yj1iPT09dm9pZCAwP3RjOmI7aWYoYSBpbnN0YW5jZW9mIHFjKXJldHVybiBhO2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7KytjKXt2YXIgZD1iW2NdO2lmKGQgaW5zdGFuY2VvZiByYyYmZC5KcyhhKSlyZXR1cm4gbmV3IHFjKGEpfX12YXIgdmM9L15ccyooPyFqYXZhc2NyaXB0OikoPzpbXHcrLi1dKzp8W146Lz8jXSooPzpbLz8jXXwkKSkvaTsKZnVuY3Rpb24gd2MoYSl7dmFyIGI7aWYoYSBpbnN0YW5jZW9mIHFjKWlmKGEgaW5zdGFuY2VvZiBxYyliPWEuSDtlbHNlIHRocm93IEVycm9yKCIiKTtlbHNlIGI9dmMudGVzdChhKT9hOnZvaWQgMDtyZXR1cm4gYn07ZnVuY3Rpb24geGMoYSxiKXt2YXIgYz13YyhiKTtjIT09dm9pZCAwJiYoYS5hY3Rpb249Yyl9O2Z1bmN0aW9uIHljKGEsYil7dGhyb3cgRXJyb3IoYj09PXZvaWQgMD8idW5leHBlY3RlZCB2YWx1ZSAiK2ErIiEiOmIpO307dmFyIHpjPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTt6Yy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IKyIifTt2YXIgQmM9ZnVuY3Rpb24oKXt0aGlzLkg9QWNbMF0udG9Mb3dlckNhc2UoKX07QmMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSH07ZnVuY3Rpb24gQ2MoYSxiKXt2YXIgYz1bbmV3IEJjXTtpZihjLmxlbmd0aD09PTApdGhyb3cgRXJyb3IoIiIpO3ZhciBkPWMubWFwKGZ1bmN0aW9uKGYpe3ZhciBnO2lmKGYgaW5zdGFuY2VvZiBCYylnPWYuSDtlbHNlIHRocm93IEVycm9yKCIiKTtyZXR1cm4gZ30pLGU9Yi50b0xvd2VyQ2FzZSgpO2lmKGQuZXZlcnkoZnVuY3Rpb24oZil7cmV0dXJuIGUuaW5kZXhPZihmKSE9PTB9KSl0aHJvdyBFcnJvcignQXR0cmlidXRlICInK2IrJyIgZG9lcyBub3QgbWF0Y2ggYW55IG9mIHRoZSBhbGxvd2VkIHByZWZpeGVzLicpO2Euc2V0QXR0cmlidXRlKGIsInRydWUiKX07dmFyIERjPUFycmF5LnByb3RvdHlwZS5pbmRleE9mP2Z1bmN0aW9uKGEsYil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoYSxiLHZvaWQgMCl9OmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilyZXR1cm4gdHlwZW9mIGIhPT0ic3RyaW5nInx8Yi5sZW5ndGghPTE/LTE6YS5pbmRleE9mKGIsMCk7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYyBpbiBhJiZhW2NdPT09YilyZXR1cm4gYztyZXR1cm4tMX07IkFSVElDTEUgU0VDVElPTiBOQVYgQVNJREUgSDEgSDIgSDMgSDQgSDUgSDYgSEVBREVSIEZPT1RFUiBBRERSRVNTIFAgSFIgUFJFIEJMT0NLUVVPVEUgT0wgVUwgTEggTEkgREwgRFQgREQgRklHVVJFIEZJR0NBUFRJT04gTUFJTiBESVYgRU0gU1RST05HIFNNQUxMIFMgQ0lURSBRIERGTiBBQkJSIFJVQlkgUkIgUlQgUlRDIFJQIERBVEEgVElNRSBDT0RFIFZBUiBTQU1QIEtCRCBTVUIgU1VQIEkgQiBVIE1BUksgQkRJIEJETyBTUEFOIEJSIFdCUiBOT0JSIElOUyBERUwgUElDVFVSRSBQQVJBTSBUUkFDSyBNQVAgVEFCTEUgQ0FQVElPTiBDT0xHUk9VUCBDT0wgVEJPRFkgVEhFQUQgVEZPT1QgVFIgVEQgVEggU0VMRUNUIERBVEFMSVNUIE9QVEdST1VQIE9QVElPTiBPVVRQVVQgUFJPR1JFU1MgTUVURVIgRklFTERTRVQgTEVHRU5EIERFVEFJTFMgU1VNTUFSWSBNRU5VIERJQUxPRyBTTE9UIENBTlZBUyBGT05UIENFTlRFUiBBQ1JPTllNIEJBU0VGT05UIEJJRyBESVIgSEdST1VQIFNUUklLRSBUVCIuc3BsaXQoIiAiKS5jb25jYXQoWyJCVVRUT04iLAoiSU5QVVQiXSk7ZnVuY3Rpb24gRWMoYSl7cmV0dXJuIGE9PT1udWxsPyJudWxsIjphPT09dm9pZCAwPyJ1bmRlZmluZWQiOmF9O3ZhciBBPXdpbmRvdyxGYz1bXSxHYz13aW5kb3cuaGlzdG9yeSxCPWRvY3VtZW50LEhjPW5hdmlnYXRvcjtmdW5jdGlvbiBJYygpe3ZhciBhO3RyeXthPUhjLnNlcnZpY2VXb3JrZXJ9Y2F0Y2goYil7cmV0dXJufXJldHVybiBhfXZhciBKYz1CLmN1cnJlbnRTY3JpcHQsS2M9SmMmJkpjLnNyYztmdW5jdGlvbiBNYyhhLGIpe3ZhciBjPUEsZD1jW2FdO2NbYV09ZD09PXZvaWQgMD9iOmQ7cmV0dXJuIGNbYV19ZnVuY3Rpb24gTmMoYSl7cmV0dXJuKEhjLnVzZXJBZ2VudHx8IiIpLmluZGV4T2YoYSkhPT0tMX1mdW5jdGlvbiBPYygpe3JldHVybiBOYygiRmlyZWZveCIpfHxOYygiRnhpT1MiKX1mdW5jdGlvbiBQYygpe3JldHVybihOYygiR1NBIil8fE5jKCJHb29nbGVBcHAiKSkmJihOYygiaVBob25lIil8fE5jKCJpUGFkIikpfWZ1bmN0aW9uIFFjKCl7cmV0dXJuIE5jKCJFZGcvIil8fE5jKCJFZGdBLyIpfHxOYygiRWRnaU9TLyIpfQp2YXIgUmM9e2FzeW5jOjEsbm9uY2U6MSxvbmVycm9yOjEsb25sb2FkOjEsc3JjOjEsdHlwZToxfSxTYz17aGVpZ2h0OjEsb25sb2FkOjEsc3JjOjEsc3R5bGU6MSx3aWR0aDoxfTtmdW5jdGlvbiBUYyhhLGIsYyl7YiYmR2IoYixmdW5jdGlvbihkLGUpe2Q9ZC50b0xvd2VyQ2FzZSgpO2MuaGFzT3duUHJvcGVydHkoZCl8fGEuc2V0QXR0cmlidXRlKGQsZSl9KX0KZnVuY3Rpb24gVWMoYSxiLGMsZCxlKXt2YXIgZj1CLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO1RjKGYsZCxSYyk7Zi50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiO2YuYXN5bmM9ZCYmZC5hc3luYz09PSExPyExOiEwO3ZhciBnO2c9amMoRWMoYSkpO2Yuc3JjPWtjKGcpO3ZhciBoLGw9Zi5vd25lckRvY3VtZW50O2w9bD09PXZvaWQgMD9kb2N1bWVudDpsO3ZhciBuLHAscT0ocD0obj1sKS5xdWVyeVNlbGVjdG9yKT09bnVsbD92b2lkIDA6cC5jYWxsKG4sInNjcmlwdFtub25jZV0iKTsoaD1xPT1udWxsPyIiOnEubm9uY2V8fHEuZ2V0QXR0cmlidXRlKCJub25jZSIpfHwiIikmJmYuc2V0QXR0cmlidXRlKCJub25jZSIsaCk7YiYmKGYub25sb2FkPWIpO2MmJihmLm9uZXJyb3I9Yyk7ZT9lLmFwcGVuZENoaWxkKGYpOlZjLkJzKGYpO3JldHVybiBmfQpmdW5jdGlvbiBXYygpe2lmKEtjKXt2YXIgYT1LYy50b0xvd2VyQ2FzZSgpO2lmKGEuaW5kZXhPZigiaHR0cHM6Ly8iKT09PTApcmV0dXJuIDI7aWYoYS5pbmRleE9mKCJodHRwOi8vIik9PT0wKXJldHVybiAzfXJldHVybiAxfWZ1bmN0aW9uIFhjKGEsYixjLGQsZSxmKXtmPWY9PT12b2lkIDA/ITA6Zjt2YXIgZz1lLGg9ITE7Z3x8KGc9Qi5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxoPSEwKTtUYyhnLGMsU2MpO2QmJkdiKGQsZnVuY3Rpb24obixwKXtnLmRhdGFzZXRbbl09cH0pO2YmJihnLmhlaWdodD0iMCIsZy53aWR0aD0iMCIsZy5zdHlsZS5kaXNwbGF5PSJub25lIixnLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIpO2EhPT12b2lkIDAmJihnLnNyYz1hKTtpZihoKXt2YXIgbD1CLmJvZHkmJkIuYm9keS5sYXN0Q2hpbGR8fEIuYm9keXx8Qi5oZWFkO2wucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZyxsKX1iJiYoZy5vbmxvYWQ9Yik7cmV0dXJuIGd9CmZ1bmN0aW9uIFpjKCl7cmV0dXJuIFZjLkVyLmFwcGx5KFZjLHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSl9ZnVuY3Rpb24gJGMoYSxiLGMsZCl7YS5hZGRFdmVudExpc3RlbmVyJiZhLmFkZEV2ZW50TGlzdGVuZXIoYixjLCEhZCl9ZnVuY3Rpb24gYWQoYSxiLGMpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lciYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYywhMSl9ZnVuY3Rpb24gYmQoYSl7QS5zZXRUaW1lb3V0KGEsMCl9ZnVuY3Rpb24gY2QoYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyksZCxlPShkPUEpLnNldEludGVydmFsLmFwcGx5KGQsW2EsYl0uY29uY2F0KHcoYykpKTtGYy5wdXNoKGUpO3JldHVybiBlfQpmdW5jdGlvbiBkZChhKXt2YXIgYj1BO3liKGIucXVldWVNaWNyb3Rhc2spP2IucXVldWVNaWNyb3Rhc2soYSk6eWIoYi5Qcm9taXNlKSYmYi5Qcm9taXNlLnJlc29sdmU/Yi5Qcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCl7YSgpfSkuY2F0Y2goZnVuY3Rpb24oKXt9KTpiZChhKX1mdW5jdGlvbiBlZChhLGIpe3JldHVybiBhJiZiJiZhLmF0dHJpYnV0ZXMmJmEuYXR0cmlidXRlc1tiXT9hLmF0dHJpYnV0ZXNbYl0udmFsdWU6bnVsbH1mdW5jdGlvbiBmZChhKXt2YXIgYj1hLmlubmVyVGV4dHx8YS50ZXh0Q29udGVudHx8IiI7YiYmYiE9PSIgIiYmKGI9Yi5yZXBsYWNlKC9eW1xzXHhhMF0rL2csIiIpLGI9Yi5yZXBsYWNlKC9bXHNceGEwXSskL2csIiIpKTtiJiYoYj1iLnJlcGxhY2UoLyhceGEwK3xcc3syLH18XG58XHJcdCkvZywiICIpKTtyZXR1cm4gYn0KZnVuY3Rpb24gZ2QoYSl7dmFyIGI9Qi5jcmVhdGVFbGVtZW50KCJkaXYiKSxjPWIsZCxlPUVjKCJBPGRpdj4iK2ErIjwvZGl2PiIpLGY9aGMoKSxnPWY/Zi5jcmVhdGVIVE1MKGUpOmU7ZD1uZXcgemMoZyk7aWYoYy5ub2RlVHlwZT09PTEmJi9eKHNjcmlwdHxzdHlsZSkkL2kudGVzdChjLnRhZ05hbWUpKXRocm93IEVycm9yKCIiKTt2YXIgaDtpZihkIGluc3RhbmNlb2YgemMpaD1kLkg7ZWxzZSB0aHJvdyBFcnJvcigiIik7Yy5pbm5lckhUTUw9aDtiPWIubGFzdENoaWxkO2Zvcih2YXIgbD1bXTtiJiZiLmZpcnN0Q2hpbGQ7KWwucHVzaChiLnJlbW92ZUNoaWxkKGIuZmlyc3RDaGlsZCkpO3JldHVybiBsfQpmdW5jdGlvbiBoZChhLGIsYyl7Yz1jfHwxMDA7Zm9yKHZhciBkPXt9LGU9MDtlPGIubGVuZ3RoO2UrKylkW2JbZV1dPSEwO2Zvcih2YXIgZj1hLGc9MDtmJiZnPD1jO2crKyl7aWYoZFtTdHJpbmcoZi50YWdOYW1lKS50b0xvd2VyQ2FzZSgpXSlyZXR1cm4gZjtmPWYucGFyZW50RWxlbWVudH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBpZChhLGIsYyl7dmFyIGQ7dHJ5e2Q9SGMuc2VuZEJlYWNvbiYmSGMuc2VuZEJlYWNvbihhKX1jYXRjaChlKXtzYigiVEFHR0lORyIsMTUpfWQ/Yj09bnVsbHx8YigpOlpjKGEsYixjKX1mdW5jdGlvbiBqZChhLGIpe3RyeXtpZihIYy5zZW5kQmVhY29uIT09dm9pZCAwKXJldHVybiBIYy5zZW5kQmVhY29uKGEsYil9Y2F0Y2goYyl7c2IoIlRBR0dJTkciLDE1KX1yZXR1cm4hMX1mdW5jdGlvbiBrZCgpe3JldHVybiBIYy5zZW5kQmVhY29uIT09dm9pZCAwfQp2YXIgbGQ9e2NhY2hlOiJuby1zdG9yZSIsY3JlZGVudGlhbHM6ImluY2x1ZGUiLGtlZXBhbGl2ZTohMCxtZXRob2Q6IlBPU1QiLG1vZGU6Im5vLWNvcnMiLHJlZGlyZWN0OiJmb2xsb3cifTsKZnVuY3Rpb24gbWQoYSxiLGMsZCxlKXtpZihuZCgpKXt2YXIgZj1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGxkKTtiJiYoZi5ib2R5PWIpO2MmJihjLmF0dHJpYnV0aW9uUmVwb3J0aW5nJiYoZi5hdHRyaWJ1dGlvblJlcG9ydGluZz1jLmF0dHJpYnV0aW9uUmVwb3J0aW5nKSxjLmJyb3dzaW5nVG9waWNzIT09dm9pZCAwJiYoZi5icm93c2luZ1RvcGljcz1jLmJyb3dzaW5nVG9waWNzKSxjLmNyZWRlbnRpYWxzJiYoZi5jcmVkZW50aWFscz1jLmNyZWRlbnRpYWxzKSxjLmtlZXBhbGl2ZSE9PXZvaWQgMCYmKGYua2VlcGFsaXZlPWMua2VlcGFsaXZlKSxjLm1ldGhvZCYmKGYubWV0aG9kPWMubWV0aG9kKSxjLm1vZGUmJihmLm1vZGU9Yy5tb2RlKSk7dHJ5e3ZhciBnPUEuZmV0Y2goYSxmKTtpZihnKXJldHVybiBnLnRoZW4oZnVuY3Rpb24obCl7bCYmKGwub2t8fGwuc3RhdHVzPT09MCk/ZD09bnVsbHx8ZCgpOmU9PW51bGx8fGUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ZT09Cm51bGx8fGUoKX0pLCEwfWNhdGNoKGwpe319aWYoKGM9PW51bGw/MDpjLlFnKXx8KGM9PW51bGw/MDpjLmNyZWRlbnRpYWxzKSYmYy5jcmVkZW50aWFscyE9PSJpbmNsdWRlIilyZXR1cm4gZT09bnVsbHx8ZSgpLCExO2lmKGIpe3ZhciBoPWpkKGEsYik7aD9kPT1udWxsfHxkKCk6ZT09bnVsbHx8ZSgpO3JldHVybiBofVZjLnd0KGEsZCxlKTtyZXR1cm4hMH1mdW5jdGlvbiBuZCgpe3JldHVybiB5YihBLmZldGNoKX1mdW5jdGlvbiBvZChhLGIpe3ZhciBjPWFbYl07YyYmdHlwZW9mIGMuYW5pbVZhbD09PSJzdHJpbmciJiYoYz1jLmFuaW1WYWwpO3JldHVybiBjfWZ1bmN0aW9uIHBkKCl7dmFyIGE9QS5wZXJmb3JtYW5jZTtpZihhJiZ5YihhLm5vdykpcmV0dXJuIGEubm93KCl9CmZ1bmN0aW9uIHFkKCl7dmFyIGEsYj1BLnBlcmZvcm1hbmNlO2lmKGImJmIuZ2V0RW50cmllc0J5VHlwZSl0cnl7dmFyIGM9Yi5nZXRFbnRyaWVzQnlUeXBlKCJuYXZpZ2F0aW9uIik7YyYmYy5sZW5ndGg+MCYmKGE9Y1swXS50eXBlKX1jYXRjaChkKXtyZXR1cm4iZSJ9aWYoIWEpcmV0dXJuInUiO3N3aXRjaChhKXtjYXNlICJuYXZpZ2F0ZSI6cmV0dXJuIm4iO2Nhc2UgImJhY2tfZm9yd2FyZCI6cmV0dXJuImgiO2Nhc2UgInJlbG9hZCI6cmV0dXJuInIiO2Nhc2UgInByZXJlbmRlciI6cmV0dXJuInAiO2RlZmF1bHQ6cmV0dXJuIngifX1mdW5jdGlvbiByZCgpe3JldHVybiBBLnBlcmZvcm1hbmNlfHx2b2lkIDB9ZnVuY3Rpb24gc2QoKXt2YXIgYT1BLndlYlBpeGVsc01hbmFnZXI7cmV0dXJuIGE/YS5jcmVhdGVTaG9waWZ5RXh0ZW5kIT09dm9pZCAwOiExfQp2YXIgVmM9e0VyOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPW5ldyBJbWFnZSgxLDEpO1RjKGUsZCx7fSk7ZS5vbmxvYWQ9ZnVuY3Rpb24oKXtlLm9ubG9hZD1udWxsO2ImJmIoKX07ZS5vbmVycm9yPWZ1bmN0aW9uKCl7ZS5vbmVycm9yPW51bGw7YyYmYygpfTtlLnNyYz1hO3JldHVybiBlfSxCczpmdW5jdGlvbihhKXt2YXIgYj1CLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXXx8Qi5ib2R5fHxCLmhlYWQ7Yi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLGIpfSx3dDppZH07ZnVuY3Rpb24gdGQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSYmdGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiB1ZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpPT09dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiB2ZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpfHx0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIHdkKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKSxkPXRoaXMuZXZhbHVhdGUoYik7cmV0dXJuIFN0cmluZyhjKS5pbmRleE9mKFN0cmluZyhkKSk+LTF9ZnVuY3Rpb24geGQoYSxiKXt2YXIgYz1TdHJpbmcodGhpcy5ldmFsdWF0ZShhKSksZD1TdHJpbmcodGhpcy5ldmFsdWF0ZShiKSk7cmV0dXJuIGMuc3Vic3RyaW5nKDAsZC5sZW5ndGgpPT09ZH0KZnVuY3Rpb24geWQoYSxiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGEpLGQ9dGhpcy5ldmFsdWF0ZShiKTtzd2l0Y2goYyl7Y2FzZSAicGFnZUxvY2F0aW9uIjp2YXIgZT1BLmxvY2F0aW9uLmhyZWY7ZCBpbnN0YW5jZW9mIGtiJiZkLmdldCgic3RyaXBQcm90b2NvbCIpJiYoZT1lLnJlcGxhY2UoL15odHRwcz86XC9cLy8sIiIpKTtyZXR1cm4gZX19Oy8qCiBqUXVlcnkgKGMpIDIwMDUsIDIwMTIgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4ganF1ZXJ5Lm9yZy9saWNlbnNlLgoqLwp2YXIgemQ9L1xbb2JqZWN0IChCb29sZWFufE51bWJlcnxTdHJpbmd8RnVuY3Rpb258QXJyYXl8RGF0ZXxSZWdFeHApXF0vLEFkPWZ1bmN0aW9uKGEpe2lmKGE9PW51bGwpcmV0dXJuIFN0cmluZyhhKTt2YXIgYj16ZC5leGVjKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChPYmplY3QoYSkpKTtyZXR1cm4gYj9iWzFdLnRvTG93ZXJDYXNlKCk6Im9iamVjdCJ9LEJkPWZ1bmN0aW9uKGEsYil7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChPYmplY3QoYSksYil9LENkPWZ1bmN0aW9uKGEpe2lmKCFhfHxBZChhKSE9Im9iamVjdCJ8fGEubm9kZVR5cGV8fGE9PWEud2luZG93KXJldHVybiExO3RyeXtpZihhLmNvbnN0cnVjdG9yJiYhQmQoYSwiY29uc3RydWN0b3IiKSYmIUJkKGEuY29uc3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIikpcmV0dXJuITF9Y2F0Y2goYyl7cmV0dXJuITF9Zm9yKHZhciBiIGluIGEpO3JldHVybiBiPT09dm9pZCAwfHwKQmQoYSxiKX0sRWQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1ifHwoQWQoYSk9PSJhcnJheSI/W106e30pLGQ7Zm9yKGQgaW4gYSlpZihCZChhLGQpKXt2YXIgZT1hW2RdO0FkKGUpPT0iYXJyYXkiPyhBZChjW2RdKSE9ImFycmF5IiYmKGNbZF09W10pLGNbZF09RWQoZSxjW2RdKSk6Q2QoZSk/KENkKGNbZF0pfHwoY1tkXT17fSksY1tkXT1FZChlLGNbZF0pKTpjW2RdPWV9cmV0dXJuIGN9O2Z1bmN0aW9uIEZkKGEpe3JldHVybiB0eXBlb2YgYT09PSJudW1iZXIiJiZhPj0wJiZpc0Zpbml0ZShhKSYmYSUxPT09MHx8dHlwZW9mIGE9PT0ic3RyaW5nIiYmYVswXSE9PSItIiYmYT09PSIiK3BhcnNlSW50KGEpfTt2YXIgR2Q9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP1tdOmE7dGhpcy5sYT1uZXcgVWE7dGhpcy52YWx1ZXM9W107dGhpcy5OYT0hMTtmb3IodmFyIGIgaW4gYSlhLmhhc093blByb3BlcnR5KGIpJiYoRmQoYik/dGhpcy52YWx1ZXNbTnVtYmVyKGIpXT1hW051bWJlcihiKV06dGhpcy5sYS5zZXQoYixhW2JdKSl9O2s9R2QucHJvdG90eXBlO2sudG9TdHJpbmc9ZnVuY3Rpb24oYSl7aWYoYSYmYS5pbmRleE9mKHRoaXMpPj0wKXJldHVybiIiO2Zvcih2YXIgYj1bXSxjPTA7Yzx0aGlzLnZhbHVlcy5sZW5ndGg7YysrKXt2YXIgZD10aGlzLnZhbHVlc1tjXTtkPT09bnVsbHx8ZD09PXZvaWQgMD9iLnB1c2goIiIpOmQgaW5zdGFuY2VvZiBHZD8oYT1hfHxbXSxhLnB1c2godGhpcyksYi5wdXNoKGQudG9TdHJpbmcoYSkpLGEucG9wKCkpOmIucHVzaChTdHJpbmcoZCkpfXJldHVybiBiLmpvaW4oIiwiKX07Cmsuc2V0PWZ1bmN0aW9uKGEsYil7aWYoIXRoaXMuTmEpaWYoYT09PSJsZW5ndGgiKXtpZighRmQoYikpdGhyb3cgY2IoRXJyb3IoIlJhbmdlRXJyb3I6IExlbmd0aCBwcm9wZXJ0eSBtdXN0IGJlIGEgdmFsaWQgaW50ZWdlci4iKSk7dGhpcy52YWx1ZXMubGVuZ3RoPU51bWJlcihiKX1lbHNlIEZkKGEpP3RoaXMudmFsdWVzW051bWJlcihhKV09Yjp0aGlzLmxhLnNldChhLGIpfTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gYT09PSJsZW5ndGgiP3RoaXMubGVuZ3RoKCk6RmQoYSk/dGhpcy52YWx1ZXNbTnVtYmVyKGEpXTp0aGlzLmxhLmdldChhKX07ay5sZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMubGVuZ3RofTtrLkZhPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMubGEuRmEoKSxiPTA7Yjx0aGlzLnZhbHVlcy5sZW5ndGg7YisrKXRoaXMudmFsdWVzLmhhc093blByb3BlcnR5KGIpJiZhLnB1c2goU3RyaW5nKGIpKTtyZXR1cm4gYX07CmsuaGM9ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcy5sYS5oYygpLGI9MDtiPHRoaXMudmFsdWVzLmxlbmd0aDtiKyspdGhpcy52YWx1ZXMuaGFzT3duUHJvcGVydHkoYikmJmEucHVzaCh0aGlzLnZhbHVlc1tiXSk7cmV0dXJuIGF9O2suZmM9ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcy5sYS5mYygpLGI9MDtiPHRoaXMudmFsdWVzLmxlbmd0aDtiKyspdGhpcy52YWx1ZXMuaGFzT3duUHJvcGVydHkoYikmJmEucHVzaChbU3RyaW5nKGIpLHRoaXMudmFsdWVzW2JdXSk7cmV0dXJuIGF9O2sucmVtb3ZlPWZ1bmN0aW9uKGEpe0ZkKGEpP2RlbGV0ZSB0aGlzLnZhbHVlc1tOdW1iZXIoYSldOnRoaXMuTmF8fHRoaXMubGEucmVtb3ZlKGEpfTtrLnBvcD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5wb3AoKX07ay5wdXNoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVzLnB1c2guYXBwbHkodGhpcy52YWx1ZXMsdyhPYS5hcHBseSgwLGFyZ3VtZW50cykpKX07ay5zaGlmdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5zaGlmdCgpfTsKay5zcGxpY2U9ZnVuY3Rpb24oYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyk7cmV0dXJuIGI9PT12b2lkIDAmJmMubGVuZ3RoPT09MD9uZXcgR2QodGhpcy52YWx1ZXMuc3BsaWNlKGEpKTpuZXcgR2QodGhpcy52YWx1ZXMuc3BsaWNlLmFwcGx5KHRoaXMudmFsdWVzLFthLGJ8fDBdLmNvbmNhdCh3KGMpKSkpfTtrLnVuc2hpZnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMudW5zaGlmdC5hcHBseSh0aGlzLnZhbHVlcyx3KE9hLmFwcGx5KDAsYXJndW1lbnRzKSkpfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gRmQoYSkmJnRoaXMudmFsdWVzLmhhc093blByb3BlcnR5KGEpfHx0aGlzLmxhLmhhcyhhKX07ay5aYT1mdW5jdGlvbigpe3RoaXMuTmE9ITA7T2JqZWN0LmZyZWV6ZSh0aGlzLnZhbHVlcyl9O2suSGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OYX07CmZ1bmN0aW9uIEhkKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aCgpO2MrKylhLmhhcyhjKSYmKGJbY109YS5nZXQoYykpO3JldHVybiBifTt2YXIgSWQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmZ1bmN0aW9uTmFtZT1hO3RoaXMuaWU9Yjt0aGlzLmxhPW5ldyBVYTt0aGlzLk5hPSExfTtrPUlkLnByb3RvdHlwZTtrLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZnVuY3Rpb25OYW1lfTtrLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mdW5jdGlvbk5hbWV9O2suZ2V0S2V5cz1mdW5jdGlvbigpe3JldHVybiBuZXcgR2QodGhpcy5GYSgpKX07ay5pbnZva2U9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaWUuY2FsbC5hcHBseSh0aGlzLmllLFtuZXcgSmQodGhpcyxhKV0uY29uY2F0KHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSkpfTtrLmFwcGx5PWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuaWUuYXBwbHkobmV3IEpkKHRoaXMsYSksYil9O2suTmM9ZnVuY3Rpb24oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO3RyeXtyZXR1cm4gdGhpcy5pbnZva2UuYXBwbHkodGhpcyxbYV0uY29uY2F0KHcoYikpKX1jYXRjaChjKXt9fTsKay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuZ2V0KGEpfTtrLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuTmF8fHRoaXMubGEuc2V0KGEsYil9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmhhcyhhKX07ay5yZW1vdmU9ZnVuY3Rpb24oYSl7dGhpcy5OYXx8dGhpcy5sYS5yZW1vdmUoYSl9O2suRmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5GYSgpfTtrLmhjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuaGMoKX07ay5mYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmZjKCl9O2suWmE9ZnVuY3Rpb24oKXt0aGlzLk5hPSEwfTtrLkhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTmF9O3ZhciBLZD1mdW5jdGlvbihhLGIpe0lkLmNhbGwodGhpcyxhLGIpfTt3YShLZCxJZCk7dmFyIExkPWZ1bmN0aW9uKGEsYil7SWQuY2FsbCh0aGlzLGEsYil9O3dhKExkLElkKTt2YXIgSmQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmllPWE7dGhpcy5UPWJ9OwpKZC5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5UO3JldHVybiBBcnJheS5pc0FycmF5KGEpP2ZiKGIsYSk6YX07SmQucHJvdG90eXBlLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pZS5nZXROYW1lKCl9O0pkLnByb3RvdHlwZS5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlQuamUoKX07dmFyIE1kPWZ1bmN0aW9uKCl7dGhpcy5tYXA9bmV3IE1hcH07TWQucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMubWFwLnNldChhLGIpfTtNZC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm1hcC5nZXQoYSl9O3ZhciBOZD1mdW5jdGlvbigpe3RoaXMua2V5cz1bXTt0aGlzLnZhbHVlcz1bXX07TmQucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMua2V5cy5wdXNoKGEpO3RoaXMudmFsdWVzLnB1c2goYil9O05kLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5rZXlzLmluZGV4T2YoYSk7aWYoYj4tMSlyZXR1cm4gdGhpcy52YWx1ZXNbYl19O2Z1bmN0aW9uIE9kKCl7dHJ5e3JldHVybiBNYXA/bmV3IE1kOm5ldyBOZH1jYXRjaChhKXtyZXR1cm4gbmV3IE5kfX07dmFyIFBkPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBQZClyZXR1cm4gYTt2YXIgYjthOmlmKGE9PXZvaWQgMHx8QXJyYXkuaXNBcnJheShhKXx8Q2QoYSkpYj0hMDtlbHNle3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAiYm9vbGVhbiI6Y2FzZSAibnVtYmVyIjpjYXNlICJzdHJpbmciOmNhc2UgImZ1bmN0aW9uIjpiPSEwO2JyZWFrIGF9Yj0hMX1pZihiKXRocm93IEVycm9yKCJUeXBlIG9mIGdpdmVuIHZhbHVlIGhhcyBhbiBlcXVpdmFsZW50IFBpeGllIHR5cGUuIik7dGhpcy52YWx1ZT1hfTtQZC5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX07UGQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZyh0aGlzLnZhbHVlKX07dmFyIFNkPWZ1bmN0aW9uKGEpe3RoaXMucHJvbWlzZT1hO3RoaXMuTmE9ITE7dGhpcy5sYT1uZXcgVWE7dGhpcy5sYS5zZXQoInRoZW4iLFJkKHRoaXMpKTt0aGlzLmxhLnNldCgiY2F0Y2giLFJkKHRoaXMsITApKTt0aGlzLmxhLnNldCgiZmluYWxseSIsUmQodGhpcywhMSwhMCkpfTtrPVNkLnByb3RvdHlwZTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5nZXQoYSl9O2suc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5OYXx8dGhpcy5sYS5zZXQoYSxiKX07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuaGFzKGEpfTtrLnJlbW92ZT1mdW5jdGlvbihhKXt0aGlzLk5hfHx0aGlzLmxhLnJlbW92ZShhKX07ay5GYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLkZhKCl9O2suaGM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5oYygpfTtrLmZjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuZmMoKX07CnZhciBSZD1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPyExOmI7Yz1jPT09dm9pZCAwPyExOmM7cmV0dXJuIG5ldyBLZCgiIixmdW5jdGlvbihkLGUpe2ImJihlPWQsZD12b2lkIDApO2MmJihlPWQpO2QgaW5zdGFuY2VvZiBLZHx8KGQ9dm9pZCAwKTtlIGluc3RhbmNlb2YgS2R8fChlPXZvaWQgMCk7dmFyIGY9dGhpcy5ULndiKCksZz1mdW5jdGlvbihsKXtyZXR1cm4gZnVuY3Rpb24obil7dHJ5e3JldHVybiBjPyhsLmludm9rZShmKSxhLnByb21pc2UpOmwuaW52b2tlKGYsbil9Y2F0Y2gocCl7cmV0dXJuIFByb21pc2UucmVqZWN0KHAgaW5zdGFuY2VvZiBFcnJvcj9uZXcgUGQocCk6U3RyaW5nKHApKX19fSxoPWEucHJvbWlzZS50aGVuKGQmJmcoZCksZSYmZyhlKSk7cmV0dXJuIG5ldyBTZChoKX0pfTtTZC5wcm90b3R5cGUuWmE9ZnVuY3Rpb24oKXt0aGlzLk5hPSEwfTtTZC5wcm90b3R5cGUuSGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OYX07ZnVuY3Rpb24gVGQoYSxiLGMpe3ZhciBkPU9kKCksZT1mdW5jdGlvbihnLGgpe2Zvcih2YXIgbD1nLkZhKCksbj0wO248bC5sZW5ndGg7bisrKWhbbFtuXV09ZihnLmdldChsW25dKSl9LGY9ZnVuY3Rpb24oZyl7aWYoZz09PW51bGx8fGc9PT12b2lkIDApcmV0dXJuIGc7dmFyIGg9ZC5nZXQoZyk7aWYoaClyZXR1cm4gaDtpZihnIGluc3RhbmNlb2YgR2Qpe3ZhciBsPVtdO2Quc2V0KGcsbCk7Zm9yKHZhciBuPWcuRmEoKSxwPTA7cDxuLmxlbmd0aDtwKyspbFtuW3BdXT1mKGcuZ2V0KG5bcF0pKTtyZXR1cm4gbH1pZihnIGluc3RhbmNlb2YgU2QpcmV0dXJuIGcucHJvbWlzZS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiBUZCh1LGIsMSl9LGZ1bmN0aW9uKHUpe3JldHVybiBQcm9taXNlLnJlamVjdChUZCh1LGIsMSkpfSk7aWYoZyBpbnN0YW5jZW9mIGtiKXt2YXIgcT17fTtkLnNldChnLHEpO2UoZyxxKTtyZXR1cm4gcX1pZihnIGluc3RhbmNlb2YgS2Qpe3ZhciByPWZ1bmN0aW9uKCl7Zm9yKHZhciB1PQpbXSx2PTA7djxhcmd1bWVudHMubGVuZ3RoO3YrKyl1W3ZdPVVkKGFyZ3VtZW50c1t2XSxiLGMpO3ZhciB4PW5ldyBoYihiP2IuamUoKTpuZXcgV2EpO2ImJngudWUoYi54YigpKTtyZXR1cm4gZihnLmFwcGx5KHgsdSkpfTtkLnNldChnLHIpO2UoZyxyKTtyZXR1cm4gcn12YXIgdD0hMTtzd2l0Y2goYyl7Y2FzZSAxOnQ9ITA7YnJlYWs7Y2FzZSAyOnQ9ITE7YnJlYWs7Y2FzZSAzOnQ9ITE7YnJlYWs7ZGVmYXVsdDp9aWYoZyBpbnN0YW5jZW9mIFBkJiZ0KXJldHVybiBnLmdldFZhbHVlKCk7c3dpdGNoKHR5cGVvZiBnKXtjYXNlICJib29sZWFuIjpjYXNlICJudW1iZXIiOmNhc2UgInN0cmluZyI6Y2FzZSAidW5kZWZpbmVkIjpyZXR1cm4gZztjYXNlICJvYmplY3QiOmlmKGc9PT0KbnVsbClyZXR1cm4gbnVsbH19O3JldHVybiBmKGEpfQpmdW5jdGlvbiBVZChhLGIsYyl7dmFyIGQ9T2QoKSxlPWZ1bmN0aW9uKGcsaCl7Zm9yKHZhciBsIGluIGcpZy5oYXNPd25Qcm9wZXJ0eShsKSYmaC5zZXQobCxmKGdbbF0pKX0sZj1mdW5jdGlvbihnKXt2YXIgaD1kLmdldChnKTtpZihoKXJldHVybiBoO2lmKEFycmF5LmlzQXJyYXkoZyl8fEhiKGcpKXt2YXIgbD1uZXcgR2Q7ZC5zZXQoZyxsKTtmb3IodmFyIG4gaW4gZylnLmhhc093blByb3BlcnR5KG4pJiZsLnNldChuLGYoZ1tuXSkpO3JldHVybiBsfWlmKENkKGcpKXt2YXIgcD1uZXcga2I7ZC5zZXQoZyxwKTtlKGcscCk7cmV0dXJuIHB9aWYodHlwZW9mIGc9PT0iZnVuY3Rpb24iKXt2YXIgcT1uZXcgS2QoIiIsZnVuY3Rpb24oKXtmb3IodmFyIHU9T2EuYXBwbHkoMCxhcmd1bWVudHMpLHY9W10seD0wO3g8dS5sZW5ndGg7eCsrKXZbeF09VGQodGhpcy5ldmFsdWF0ZSh1W3hdKSxiLGMpO3JldHVybiBmKHRoaXMuVC5QaigpKGcsZyx2KSl9KTtkLnNldChnLHEpO2UoZyxxKTtyZXR1cm4gcX12YXIgcj10eXBlb2YgZztpZihnPT09bnVsbHx8cj09PSJzdHJpbmcifHxyPT09Im51bWJlciJ8fHI9PT0iYm9vbGVhbiIpcmV0dXJuIGc7dmFyIHQ9ITE7c3dpdGNoKGMpe2Nhc2UgMTp0PSEwO2JyZWFrO2Nhc2UgMjp0PSExO2JyZWFrO2RlZmF1bHQ6fWlmKGchPT12b2lkIDAmJnQpcmV0dXJuIG5ldyBQZChnKX07cmV0dXJuIGYoYSl9O3ZhciBWZD17c3VwcG9ydGVkTWV0aG9kczoiY29uY2F0IGV2ZXJ5IGZpbHRlciBmb3JFYWNoIGhhc093blByb3BlcnR5IGluZGV4T2Ygam9pbiBsYXN0SW5kZXhPZiBtYXAgcG9wIHB1c2ggcmVkdWNlIHJlZHVjZVJpZ2h0IHJldmVyc2Ugc2hpZnQgc2xpY2Ugc29tZSBzb3J0IHNwbGljZSB1bnNoaWZ0IHRvU3RyaW5nIi5zcGxpdCgiICIpLGNvbmNhdDpmdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz0wO2M8dGhpcy5sZW5ndGgoKTtjKyspYi5wdXNoKHRoaXMuZ2V0KGMpKTtmb3IodmFyIGQ9MTtkPGFyZ3VtZW50cy5sZW5ndGg7ZCsrKWlmKGFyZ3VtZW50c1tkXWluc3RhbmNlb2YgR2QpZm9yKHZhciBlPWFyZ3VtZW50c1tkXSxmPTA7ZjxlLmxlbmd0aCgpO2YrKyliLnB1c2goZS5nZXQoZikpO2Vsc2UgYi5wdXNoKGFyZ3VtZW50c1tkXSk7cmV0dXJuIG5ldyBHZChiKX0sZXZlcnk6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5sZW5ndGgoKSxkPTA7ZDx0aGlzLmxlbmd0aCgpJiYKZDxjO2QrKylpZih0aGlzLmhhcyhkKSYmIWIuaW52b2tlKGEsdGhpcy5nZXQoZCksZCx0aGlzKSlyZXR1cm4hMTtyZXR1cm4hMH0sZmlsdGVyOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD1bXSxlPTA7ZTx0aGlzLmxlbmd0aCgpJiZlPGM7ZSsrKXRoaXMuaGFzKGUpJiZiLmludm9rZShhLHRoaXMuZ2V0KGUpLGUsdGhpcykmJmQucHVzaCh0aGlzLmdldChlKSk7cmV0dXJuIG5ldyBHZChkKX0sZm9yRWFjaDpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz10aGlzLmxlbmd0aCgpLGQ9MDtkPHRoaXMubGVuZ3RoKCkmJmQ8YztkKyspdGhpcy5oYXMoZCkmJmIuaW52b2tlKGEsdGhpcy5nZXQoZCksZCx0aGlzKX0saGFzT3duUHJvcGVydHk6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5oYXMoYil9LGluZGV4T2Y6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCksZT1jPT09dm9pZCAwPzA6TnVtYmVyKGMpO2U8MCYmKGU9TWF0aC5tYXgoZCtlLDApKTtmb3IodmFyIGY9CmU7ZjxkO2YrKylpZih0aGlzLmhhcyhmKSYmdGhpcy5nZXQoZik9PT1iKXJldHVybiBmO3JldHVybi0xfSxqb2luOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPHRoaXMubGVuZ3RoKCk7ZCsrKWMucHVzaCh0aGlzLmdldChkKSk7cmV0dXJuIGMuam9pbihiKX0sbGFzdEluZGV4T2Y6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCksZT1kLTE7YyE9PXZvaWQgMCYmKGU9YzwwP2QrYzpNYXRoLm1pbihjLGUpKTtmb3IodmFyIGY9ZTtmPj0wO2YtLSlpZih0aGlzLmhhcyhmKSYmdGhpcy5nZXQoZik9PT1iKXJldHVybiBmO3JldHVybi0xfSxtYXA6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5sZW5ndGgoKSxkPVtdLGU9MDtlPHRoaXMubGVuZ3RoKCkmJmU8YztlKyspdGhpcy5oYXMoZSkmJihkW2VdPWIuaW52b2tlKGEsdGhpcy5nZXQoZSksZSx0aGlzKSk7cmV0dXJuIG5ldyBHZChkKX0scG9wOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucG9wKCl9LHB1c2g6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaC5hcHBseSh0aGlzLAp3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpfSxyZWR1Y2U6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCksZSxmPTA7aWYoYyE9PXZvaWQgMCllPWM7ZWxzZXtpZihkPT09MCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBSZWR1Y2Ugb24gTGlzdCB3aXRoIG5vIGVsZW1lbnRzLiIpKTtmb3IodmFyIGc9MDtnPGQ7ZysrKWlmKHRoaXMuaGFzKGcpKXtlPXRoaXMuZ2V0KGcpO2Y9ZysxO2JyZWFrfWlmKGc9PT1kKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IFJlZHVjZSBvbiBMaXN0IHdpdGggbm8gZWxlbWVudHMuIikpO31mb3IodmFyIGg9ZjtoPGQ7aCsrKXRoaXMuaGFzKGgpJiYoZT1iLmludm9rZShhLGUsdGhpcy5nZXQoaCksaCx0aGlzKSk7cmV0dXJuIGV9LHJlZHVjZVJpZ2h0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmxlbmd0aCgpLGUsZj1kLTE7aWYoYyE9PXZvaWQgMCllPWM7ZWxzZXtpZihkPT09MCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBSZWR1Y2VSaWdodCBvbiBMaXN0IHdpdGggbm8gZWxlbWVudHMuIikpOwpmb3IodmFyIGc9MTtnPD1kO2crKylpZih0aGlzLmhhcyhkLWcpKXtlPXRoaXMuZ2V0KGQtZyk7Zj1kLShnKzEpO2JyZWFrfWlmKGc+ZCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBSZWR1Y2VSaWdodCBvbiBMaXN0IHdpdGggbm8gZWxlbWVudHMuIikpO31mb3IodmFyIGg9ZjtoPj0wO2gtLSl0aGlzLmhhcyhoKSYmKGU9Yi5pbnZva2UoYSxlLHRoaXMuZ2V0KGgpLGgsdGhpcykpO3JldHVybiBlfSxyZXZlcnNlOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPUhkKHRoaXMpLGI9YS5sZW5ndGgtMSxjPTA7Yj49MDtiLS0sYysrKWEuaGFzT3duUHJvcGVydHkoYik/dGhpcy5zZXQoYyxhW2JdKTp0aGlzLnJlbW92ZShjKTtyZXR1cm4gdGhpc30sc2hpZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaGlmdCgpfSxzbGljZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5sZW5ndGgoKTtiPT09dm9pZCAwJiYoYj0wKTtiPWI8MD9NYXRoLm1heChkK2IsMCk6TWF0aC5taW4oYixkKTtjPWM9PT0Kdm9pZCAwP2Q6YzwwP01hdGgubWF4KGQrYywwKTpNYXRoLm1pbihjLGQpO2M9TWF0aC5tYXgoYixjKTtmb3IodmFyIGU9W10sZj1iO2Y8YztmKyspZS5wdXNoKHRoaXMuZ2V0KGYpKTtyZXR1cm4gbmV3IEdkKGUpfSxzb21lOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD0wO2Q8dGhpcy5sZW5ndGgoKSYmZDxjO2QrKylpZih0aGlzLmhhcyhkKSYmYi5pbnZva2UoYSx0aGlzLmdldChkKSxkLHRoaXMpKXJldHVybiEwO3JldHVybiExfSxzb3J0OmZ1bmN0aW9uKGEsYil7dmFyIGM9SGQodGhpcyk7Yj09PXZvaWQgMD9jLnNvcnQoKTpjLnNvcnQoZnVuY3Rpb24oZSxmKXtyZXR1cm4gTnVtYmVyKGIuaW52b2tlKGEsZSxmKSl9KTtmb3IodmFyIGQ9MDtkPGMubGVuZ3RoO2QrKyljLmhhc093blByb3BlcnR5KGQpP3RoaXMuc2V0KGQsY1tkXSk6dGhpcy5yZW1vdmUoZCk7cmV0dXJuIHRoaXN9LHNwbGljZTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMuc3BsaWNlLmFwcGx5KHRoaXMsCltiLGNdLmNvbmNhdCh3KE9hLmFwcGx5KDMsYXJndW1lbnRzKSkpKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygpfSx1bnNoaWZ0OmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnVuc2hpZnQuYXBwbHkodGhpcyx3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpfX07dmFyIFdkPXtjaGFyQXQ6MSxjb25jYXQ6MSxpbmRleE9mOjEsbGFzdEluZGV4T2Y6MSxtYXRjaDoxLHJlcGxhY2U6MSxzZWFyY2g6MSxzbGljZToxLHNwbGl0OjEsc3Vic3RyaW5nOjEsdG9Mb3dlckNhc2U6MSx0b0xvY2FsZUxvd2VyQ2FzZToxLHRvU3RyaW5nOjEsdG9VcHBlckNhc2U6MSx0b0xvY2FsZVVwcGVyQ2FzZToxLHRyaW06MX0sWGQ9bmV3IFRhKCJicmVhayIpLFlkPW5ldyBUYSgiY29udGludWUiKTtmdW5jdGlvbiBaZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpK3RoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gJGQoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSYmdGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24gYWUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKTtpZighKGYgaW5zdGFuY2VvZiBHZCkpdGhyb3cgRXJyb3IoIkVycm9yOiBOb24tTGlzdCBhcmd1bWVudCBnaXZlbiB0byBBcHBseSBpbnN0cnVjdGlvbi4iKTtpZihkPT09bnVsbHx8ZD09PXZvaWQgMCl0aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiBDYW4ndCByZWFkIHByb3BlcnR5ICIrZSsiIG9mICIrZCsiLiIpKTt2YXIgZz10eXBlb2YgZD09PSJudW1iZXIiO2lmKHR5cGVvZiBkPT09ImJvb2xlYW4ifHxnKXtpZihlPT09InRvU3RyaW5nIil7aWYoZyYmZi5sZW5ndGgoKSl7dmFyIGg9VGQoZi5nZXQoMCkpO3RyeXtyZXR1cm4gZC50b1N0cmluZyhoKX1jYXRjaCh1KXt9fXJldHVybiBkLnRvU3RyaW5nKCl9dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogIitkKyIuIitlKyIgaXMgbm90IGEgZnVuY3Rpb24uIikpO31pZih0eXBlb2YgZD09PQoic3RyaW5nIil7aWYoV2QuaGFzT3duUHJvcGVydHkoZSkpe3ZhciBsPVRkKGYsdm9pZCAwLDEpO3JldHVybiBVZChkW2VdLmFwcGx5KGQsbCksdGhpcy5UKX10aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiAiK2UrIiBpcyBub3QgYSBmdW5jdGlvbiIpKTt9aWYoZCBpbnN0YW5jZW9mIEdkKXtpZihkLmhhcyhlKSl7dmFyIG49ZC5nZXQoU3RyaW5nKGUpKTtpZihuIGluc3RhbmNlb2YgS2Qpe3ZhciBwPUhkKGYpO3JldHVybiBuLmFwcGx5KHRoaXMuVCxwKX10aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiAiK2UrIiBpcyBub3QgYSBmdW5jdGlvbiIpKTt9aWYoVmQuc3VwcG9ydGVkTWV0aG9kcy5pbmRleE9mKGUpPj0wKXt2YXIgcT1IZChmKTtyZXR1cm4gVmRbZV0uY2FsbC5hcHBseShWZFtlXSxbZCx0aGlzLlRdLmNvbmNhdCh3KHEpKSl9fWlmKGQgaW5zdGFuY2VvZiBLZHx8ZCBpbnN0YW5jZW9mIGtifHxkIGluc3RhbmNlb2YgU2Qpe2lmKGQuaGFzKGUpKXt2YXIgcj1kLmdldChlKTsKaWYociBpbnN0YW5jZW9mIEtkKXt2YXIgdD1IZChmKTtyZXR1cm4gci5hcHBseSh0aGlzLlQsdCl9dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogIitlKyIgaXMgbm90IGEgZnVuY3Rpb24iKSk7fWlmKGU9PT0idG9TdHJpbmciKXJldHVybiBkIGluc3RhbmNlb2YgS2Q/ZC5nZXROYW1lKCk6ZC50b1N0cmluZygpO2lmKGU9PT0iaGFzT3duUHJvcGVydHkiKXJldHVybiBkLmhhcyhmLmdldCgwKSl9aWYoZCBpbnN0YW5jZW9mIFBkJiZlPT09InRvU3RyaW5nIilyZXR1cm4gZC50b1N0cmluZygpO3Rocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IE9iamVjdCBoYXMgbm8gJyIrZSsiJyBwcm9wZXJ0eS4iKSk7fQpmdW5jdGlvbiBiZShhLGIpe2E9dGhpcy5ldmFsdWF0ZShhKTtpZih0eXBlb2YgYSE9PSJzdHJpbmciKXRocm93IEVycm9yKCJJbnZhbGlkIGtleSBuYW1lIGdpdmVuIGZvciBhc3NpZ25tZW50LiIpO3ZhciBjPXRoaXMuVDtpZighYy5oYXMoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYXNzaWduIHRvIHVuZGVmaW5lZCB2YWx1ZSAiK2IpO3ZhciBkPXRoaXMuZXZhbHVhdGUoYik7Yy5zZXQoYSxkKTtyZXR1cm4gZH1mdW5jdGlvbiBjZSgpe3ZhciBhPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxiPXRoaXMuVC53YigpLGM9ZWIoYixhKTtpZihjIGluc3RhbmNlb2YgVGEpcmV0dXJuIGN9ZnVuY3Rpb24gZGUoKXtyZXR1cm4gWGR9ZnVuY3Rpb24gZWUoYSl7Zm9yKHZhciBiPXRoaXMuZXZhbHVhdGUoYSksYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD10aGlzLmV2YWx1YXRlKGJbY10pO2lmKGQgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZH19CmZ1bmN0aW9uIGZlKCl7Zm9yKHZhciBhPXRoaXMuVCxiPTA7Yjxhcmd1bWVudHMubGVuZ3RoLTE7Yis9Mil7dmFyIGM9YXJndW1lbnRzW2JdO2lmKHR5cGVvZiBjPT09InN0cmluZyIpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2IrMV0pO2EuUWgoYyxkKX19fWZ1bmN0aW9uIGdlKCl7cmV0dXJuIFlkfWZ1bmN0aW9uIGhlKGEsYil7cmV0dXJuIG5ldyBUYShhLHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGllKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpLGQ7ZD1uZXcgR2Q7Zm9yKHZhciBlPXRoaXMuZXZhbHVhdGUoYiksZj0wO2Y8ZS5sZW5ndGg7ZisrKWQucHVzaChlW2ZdKTt2YXIgZz1bNTEsYSxkXS5jb25jYXQodyhjKSk7dGhpcy5ULmFkZChhLHRoaXMuZXZhbHVhdGUoZykpfWZ1bmN0aW9uIGplKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkvdGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24ga2UoYSxiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGEpLGQ9dGhpcy5ldmFsdWF0ZShiKSxlPWMgaW5zdGFuY2VvZiBQZCxmPWQgaW5zdGFuY2VvZiBQZDtyZXR1cm4gZXx8Zj9lJiZmP2MuZ2V0VmFsdWUoKT09PWQuZ2V0VmFsdWUoKTohMTpjPT1kfWZ1bmN0aW9uIGxlKCl7Zm9yKHZhciBhLGI9MDtiPGFyZ3VtZW50cy5sZW5ndGg7YisrKWE9dGhpcy5ldmFsdWF0ZShhcmd1bWVudHNbYl0pO3JldHVybiBhfWZ1bmN0aW9uIG1lKGEsYixjLGQpe2Zvcih2YXIgZT0wO2U8YigpO2UrKyl7dmFyIGY9YShjKGUpKSxnPWViKGYsZCk7aWYoZyBpbnN0YW5jZW9mIFRhKXtpZihnLnR5cGU9PT0iYnJlYWsiKWJyZWFrO2lmKGcudHlwZT09PSJyZXR1cm4iKXJldHVybiBnfX19CmZ1bmN0aW9uIG5lKGEsYixjKXtpZih0eXBlb2YgYj09PSJzdHJpbmciKXJldHVybiBtZShhLGZ1bmN0aW9uKCl7cmV0dXJuIGIubGVuZ3RofSxmdW5jdGlvbihmKXtyZXR1cm4gZn0sYyk7aWYoYiBpbnN0YW5jZW9mIGtifHxiIGluc3RhbmNlb2YgU2R8fGIgaW5zdGFuY2VvZiBHZHx8YiBpbnN0YW5jZW9mIEtkKXt2YXIgZD1iLkZhKCksZT1kLmxlbmd0aDtyZXR1cm4gbWUoYSxmdW5jdGlvbigpe3JldHVybiBlfSxmdW5jdGlvbihmKXtyZXR1cm4gZFtmXX0sYyl9fWZ1bmN0aW9uIG9lKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIG5lKGZ1bmN0aW9uKGgpe2cuc2V0KGQsaCk7cmV0dXJuIGd9LGUsZil9CmZ1bmN0aW9uIHBlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIG5lKGZ1bmN0aW9uKGgpe3ZhciBsPWcud2IoKTtsLlFoKGQsaCk7cmV0dXJuIGx9LGUsZil9ZnVuY3Rpb24gcWUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gbmUoZnVuY3Rpb24oaCl7dmFyIGw9Zy53YigpO2wuYWRkKGQsaCk7cmV0dXJuIGx9LGUsZil9ZnVuY3Rpb24gcmUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gc2UoZnVuY3Rpb24oaCl7Zy5zZXQoZCxoKTtyZXR1cm4gZ30sZSxmKX0KZnVuY3Rpb24gdGUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gc2UoZnVuY3Rpb24oaCl7dmFyIGw9Zy53YigpO2wuUWgoZCxoKTtyZXR1cm4gbH0sZSxmKX1mdW5jdGlvbiB1ZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBzZShmdW5jdGlvbihoKXt2YXIgbD1nLndiKCk7bC5hZGQoZCxoKTtyZXR1cm4gbH0sZSxmKX0KZnVuY3Rpb24gc2UoYSxiLGMpe2lmKHR5cGVvZiBiPT09InN0cmluZyIpcmV0dXJuIG1lKGEsZnVuY3Rpb24oKXtyZXR1cm4gYi5sZW5ndGh9LGZ1bmN0aW9uKGQpe3JldHVybiBiW2RdfSxjKTtpZihiIGluc3RhbmNlb2YgR2QpcmV0dXJuIG1lKGEsZnVuY3Rpb24oKXtyZXR1cm4gYi5sZW5ndGgoKX0sZnVuY3Rpb24oZCl7cmV0dXJuIGIuZ2V0KGQpfSxjKTt0aHJvdyBjYihFcnJvcigiVGhlIHZhbHVlIGlzIG5vdCBpdGVyYWJsZS4iKSk7fQpmdW5jdGlvbiB2ZShhLGIsYyxkKXtmdW5jdGlvbiBlKHEscil7Zm9yKHZhciB0PTA7dDxmLmxlbmd0aCgpO3QrKyl7dmFyIHU9Zi5nZXQodCk7ci5hZGQodSxxLmdldCh1KSl9fXZhciBmPXRoaXMuZXZhbHVhdGUoYSk7aWYoIShmIGluc3RhbmNlb2YgR2QpKXRocm93IEVycm9yKCJUeXBlRXJyb3I6IE5vbi1MaXN0IGFyZ3VtZW50IGdpdmVuIHRvIEZvckxldCBpbnN0cnVjdGlvbi4iKTt2YXIgZz10aGlzLlQsaD10aGlzLmV2YWx1YXRlKGQpLGw9Zy53YigpO2ZvcihlKGcsbCk7ZmIobCxiKTspe3ZhciBuPWViKGwsaCk7aWYobiBpbnN0YW5jZW9mIFRhKXtpZihuLnR5cGU9PT0iYnJlYWsiKWJyZWFrO2lmKG4udHlwZT09PSJyZXR1cm4iKXJldHVybiBufXZhciBwPWcud2IoKTtlKGwscCk7ZmIocCxjKTtsPXB9fQpmdW5jdGlvbiB3ZShhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkPXRoaXMuVCxlPXRoaXMuZXZhbHVhdGUoYik7aWYoIShlIGluc3RhbmNlb2YgR2QpKXRocm93IEVycm9yKCJFcnJvcjogbm9uLUxpc3QgdmFsdWUgZ2l2ZW4gZm9yIEZuIGFyZ3VtZW50IG5hbWVzLiIpO3JldHVybiBuZXcgS2QoYSxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3ZhciBmPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxnPWQud2IoKTtnLnhiKCk9PT12b2lkIDAmJmcudWUodGhpcy5ULnhiKCkpO2Zvcih2YXIgaD1bXSxsPTA7bDxmLmxlbmd0aDtsKyspe3ZhciBuPXRoaXMuZXZhbHVhdGUoZltsXSk7aFtsXT1ufWZvcih2YXIgcD1lLmdldCgibGVuZ3RoIikscT0wO3E8cDtxKyspcTxoLmxlbmd0aD9nLmFkZChlLmdldChxKSxoW3FdKTpnLmFkZChlLmdldChxKSx2b2lkIDApO2cuYWRkKCJhcmd1bWVudHMiLG5ldyBHZChoKSk7dmFyIHI9ZWIoZyxjKTtpZihyIGluc3RhbmNlb2YgVGEpcmV0dXJuIHIudHlwZT09PQoicmV0dXJuIj9yLmRhdGE6cn19KCkpfWZ1bmN0aW9uIHhlKGEpe3ZhciBiPXRoaXMuZXZhbHVhdGUoYSksYz10aGlzLlQ7aWYoeWUmJiFjLmhhcyhiKSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoYisiIGlzIG5vdCBkZWZpbmVkLiIpO3JldHVybiBjLmdldChiKX0KZnVuY3Rpb24gemUoYSxiKXt2YXIgYyxkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpO2lmKGQ9PT12b2lkIDB8fGQ9PT1udWxsKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IENhbm5vdCByZWFkIHByb3BlcnRpZXMgb2YgIitkKyIgKHJlYWRpbmcgJyIrZSsiJykiKSk7aWYoZCBpbnN0YW5jZW9mIGtifHxkIGluc3RhbmNlb2YgU2R8fGQgaW5zdGFuY2VvZiBHZHx8ZCBpbnN0YW5jZW9mIEtkKWM9ZC5nZXQoZSk7ZWxzZSBpZih0eXBlb2YgZD09PSJzdHJpbmciKWU9PT0ibGVuZ3RoIj9jPWQubGVuZ3RoOkZkKGUpJiYoYz1kW2VdKTtlbHNlIGlmKGQgaW5zdGFuY2VvZiBQZClyZXR1cm47cmV0dXJuIGN9ZnVuY3Rpb24gQWUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKT50aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIEJlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk+PXRoaXMuZXZhbHVhdGUoYil9CmZ1bmN0aW9uIENlKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKSxkPXRoaXMuZXZhbHVhdGUoYik7YyBpbnN0YW5jZW9mIFBkJiYoYz1jLmdldFZhbHVlKCkpO2QgaW5zdGFuY2VvZiBQZCYmKGQ9ZC5nZXRWYWx1ZSgpKTtyZXR1cm4gYz09PWR9ZnVuY3Rpb24gRGUoYSxiKXtyZXR1cm4hQ2UuY2FsbCh0aGlzLGEsYil9ZnVuY3Rpb24gRWUoYSxiLGMpe3ZhciBkPVtdO3RoaXMuZXZhbHVhdGUoYSk/ZD10aGlzLmV2YWx1YXRlKGIpOmMmJihkPXRoaXMuZXZhbHVhdGUoYykpO3ZhciBlPWViKHRoaXMuVCxkKTtpZihlIGluc3RhbmNlb2YgVGEpcmV0dXJuIGV9dmFyIHllPSExOwpmdW5jdGlvbiBGZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpPHRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gR2UoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKTw9dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiBIZSgpe2Zvcih2YXIgYT1uZXcgR2QsYj0wO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspe3ZhciBjPXRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2JdKTthLnB1c2goYyl9cmV0dXJuIGF9ZnVuY3Rpb24gSWUoKXtmb3IodmFyIGE9bmV3IGtiLGI9MDtiPGFyZ3VtZW50cy5sZW5ndGgtMTtiKz0yKXt2YXIgYz1TdHJpbmcodGhpcy5ldmFsdWF0ZShhcmd1bWVudHNbYl0pKSxkPXRoaXMuZXZhbHVhdGUoYXJndW1lbnRzW2IrMV0pO2Euc2V0KGMsZCl9cmV0dXJuIGF9ZnVuY3Rpb24gSmUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKSV0aGlzLmV2YWx1YXRlKGIpfQpmdW5jdGlvbiBLZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpKnRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gTGUoYSl7cmV0dXJuLXRoaXMuZXZhbHVhdGUoYSl9ZnVuY3Rpb24gTWUoYSl7cmV0dXJuIXRoaXMuZXZhbHVhdGUoYSl9ZnVuY3Rpb24gTmUoYSxiKXtyZXR1cm4ha2UuY2FsbCh0aGlzLGEsYil9ZnVuY3Rpb24gT2UoKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBQZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpfHx0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIFFlKGEsYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShhKTt0aGlzLmV2YWx1YXRlKGIpO3JldHVybiBjfWZ1bmN0aW9uIFJlKGEpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpfWZ1bmN0aW9uIFNlKCl7cmV0dXJuIE9hLmFwcGx5KDAsYXJndW1lbnRzKX1mdW5jdGlvbiBUZShhKXtyZXR1cm4gbmV3IFRhKCJyZXR1cm4iLHRoaXMuZXZhbHVhdGUoYSkpfQpmdW5jdGlvbiBVZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpO2lmKGQ9PT1udWxsfHxkPT09dm9pZCAwKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IENhbid0IHNldCBwcm9wZXJ0eSAiK2UrIiBvZiAiK2QrIi4iKSk7KGQgaW5zdGFuY2VvZiBLZHx8ZCBpbnN0YW5jZW9mIEdkfHxkIGluc3RhbmNlb2Yga2IpJiZkLnNldChTdHJpbmcoZSksZik7cmV0dXJuIGZ9ZnVuY3Rpb24gVmUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKS10aGlzLmV2YWx1YXRlKGIpfQpmdW5jdGlvbiBXZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpO2lmKCFBcnJheS5pc0FycmF5KGUpfHwhQXJyYXkuaXNBcnJheShmKSl0aHJvdyBFcnJvcigiRXJyb3I6IE1hbGZvcm1lZCBzd2l0Y2ggaW5zdHJ1Y3Rpb24uIik7Zm9yKHZhciBnLGg9ITEsbD0wO2w8ZS5sZW5ndGg7bCsrKWlmKGh8fGQ9PT10aGlzLmV2YWx1YXRlKGVbbF0pKWlmKGc9dGhpcy5ldmFsdWF0ZShmW2xdKSxnIGluc3RhbmNlb2YgVGEpe3ZhciBuPWcudHlwZTtpZihuPT09ImJyZWFrIilyZXR1cm47aWYobj09PSJyZXR1cm4ifHxuPT09ImNvbnRpbnVlIilyZXR1cm4gZ31lbHNlIGg9ITA7aWYoZi5sZW5ndGg9PT1lLmxlbmd0aCsxJiYoZz10aGlzLmV2YWx1YXRlKGZbZi5sZW5ndGgtMV0pLGcgaW5zdGFuY2VvZiBUYSYmKGcudHlwZT09PSJyZXR1cm4ifHxnLnR5cGU9PT0iY29udGludWUiKSkpcmV0dXJuIGd9CmZ1bmN0aW9uIFhlKGEsYixjKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKT90aGlzLmV2YWx1YXRlKGIpOnRoaXMuZXZhbHVhdGUoYyl9ZnVuY3Rpb24gWWUoYSl7dmFyIGI9dGhpcy5ldmFsdWF0ZShhKTtyZXR1cm4gYiBpbnN0YW5jZW9mIEtkPyJmdW5jdGlvbiI6dHlwZW9mIGJ9ZnVuY3Rpb24gWmUoKXtmb3IodmFyIGE9dGhpcy5ULGI9MDtiPGFyZ3VtZW50cy5sZW5ndGg7YisrKXt2YXIgYz1hcmd1bWVudHNbYl07dHlwZW9mIGMhPT0ic3RyaW5nInx8YS5hZGQoYyx2b2lkIDApfX0KZnVuY3Rpb24gJGUoYSxiLGMsZCl7dmFyIGU9dGhpcy5ldmFsdWF0ZShkKTtpZih0aGlzLmV2YWx1YXRlKGMpKXt2YXIgZj1lYih0aGlzLlQsZSk7aWYoZiBpbnN0YW5jZW9mIFRhKXtpZihmLnR5cGU9PT0iYnJlYWsiKXJldHVybjtpZihmLnR5cGU9PT0icmV0dXJuIilyZXR1cm4gZn19Zm9yKDt0aGlzLmV2YWx1YXRlKGEpOyl7dmFyIGc9ZWIodGhpcy5ULGUpO2lmKGcgaW5zdGFuY2VvZiBUYSl7aWYoZy50eXBlPT09ImJyZWFrIilicmVhaztpZihnLnR5cGU9PT0icmV0dXJuIilyZXR1cm4gZ310aGlzLmV2YWx1YXRlKGIpfX1mdW5jdGlvbiBhZihhKXtyZXR1cm5+TnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpfWZ1bmN0aW9uIGJmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKTw8TnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGNmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKT4+TnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfQpmdW5jdGlvbiBkZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSk+Pj5OdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gZWYoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpJk51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBmZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSleTnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGdmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKXxOdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gaGYoKXt9CmZ1bmN0aW9uIGtmKGEsYixjKXt0cnl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShiKTtpZihkIGluc3RhbmNlb2YgVGEpcmV0dXJuIGR9Y2F0Y2goaCl7aWYoIShoIGluc3RhbmNlb2YgYmImJmguU24pKXRocm93IGg7dmFyIGU9dGhpcy5ULndiKCk7YSE9PSIiJiYoaCBpbnN0YW5jZW9mIGJiJiYoaD1oLnZvKSxlLmFkZChhLG5ldyBQZChoKSkpO3ZhciBmPXRoaXMuZXZhbHVhdGUoYyksZz1lYihlLGYpO2lmKGcgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZ319ZnVuY3Rpb24gbGYoYSxiKXt2YXIgYyxkO3RyeXtkPXRoaXMuZXZhbHVhdGUoYSl9Y2F0Y2goZil7aWYoIShmIGluc3RhbmNlb2YgYmImJmYuU24pKXRocm93IGY7Yz1mfXZhciBlPXRoaXMuZXZhbHVhdGUoYik7aWYoZSBpbnN0YW5jZW9mIFRhKXJldHVybiBlO2lmKGMpdGhyb3cgYztpZihkIGluc3RhbmNlb2YgVGEpcmV0dXJuIGR9O3ZhciBuZj1mdW5jdGlvbigpe3RoaXMuSD1uZXcgZ2I7bWYodGhpcyl9O25mLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLkgucmsoYSl9O3ZhciBtZj1mdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbihjLGQpe3ZhciBlPW5ldyBMZChTdHJpbmcoYyksZCk7ZS5aYSgpO3ZhciBmPVN0cmluZyhjKTthLkguSC5zZXQoZixlKTtkYi5zZXQoZixlKX07YigibWFwIixJZSk7YigiYW5kIix0ZCk7YigiY29udGFpbnMiLHdkKTtiKCJlcXVhbHMiLHVkKTtiKCJvciIsdmQpO2IoInN0YXJ0c1dpdGgiLHhkKTtiKCJ2YXJpYWJsZSIseWQpfTtuZi5wcm90b3R5cGUuUWI9ZnVuY3Rpb24oYSl7dGhpcy5ILlFiKGEpfTt2YXIgcGY9ZnVuY3Rpb24oKXt0aGlzLks9ITE7dGhpcy5IPW5ldyBnYjtvZih0aGlzKTt0aGlzLks9ITB9O3BmLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKGEpe3JldHVybiBxZih0aGlzLkgucmsoYSkpfTt2YXIgcmY9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBxZihhLkguSnEoYixjKSl9O3BmLnByb3RvdHlwZS5aYT1mdW5jdGlvbigpe3RoaXMuSC5aYSgpfTsKdmFyIG9mPWZ1bmN0aW9uKGEpe3ZhciBiPWZ1bmN0aW9uKGMsZCl7dmFyIGU9U3RyaW5nKGMpLGY9bmV3IExkKGUsZCk7Zi5aYSgpO2EuSC5ILnNldChlLGYpO2RiLnNldChlLGYpfTtiKDAsWmQpO2IoMSwkZCk7YigyLGFlKTtiKDMsYmUpO2IoNTYsZWYpO2IoNTcsYmYpO2IoNTgsYWYpO2IoNTksZ2YpO2IoNjAsY2YpO2IoNjEsZGYpO2IoNjIsZmYpO2IoNTMsY2UpO2IoNCxkZSk7Yig1LGVlKTtiKDY4LGtmKTtiKDUyLGZlKTtiKDYsZ2UpO2IoNDksaGUpO2IoNyxIZSk7Yig4LEllKTtiKDksZWUpO2IoNTAsaWUpO2IoMTAsamUpO2IoMTIsa2UpO2IoMTMsbGUpO2IoNjcsbGYpO2IoNTEsd2UpO2IoNDcsb2UpO2IoNTQscGUpO2IoNTUscWUpO2IoNjMsdmUpO2IoNjQscmUpO2IoNjUsdGUpO2IoNjYsdWUpO2IoMTUseGUpO2IoMTYsemUpO2IoMTcsemUpO2IoMTgsQWUpO2IoMTksQmUpO2IoMjAsQ2UpO2IoMjEsRGUpO2IoMjIsRWUpO2IoMjMsRmUpO2IoMjQsR2UpO2IoMjUsSmUpO2IoMjYsCktlKTtiKDI3LExlKTtiKDI4LE1lKTtiKDI5LE5lKTtiKDQ1LE9lKTtiKDMwLFBlKTtiKDMyLFFlKTtiKDMzLFFlKTtiKDM0LFJlKTtiKDM1LFJlKTtiKDQ2LFNlKTtiKDM2LFRlKTtiKDQzLFVlKTtiKDM3LFZlKTtiKDM4LFdlKTtiKDM5LFhlKTtiKDQwLFllKTtiKDQ0LGhmKTtiKDQxLFplKTtiKDQyLCRlKX07cGYucHJvdG90eXBlLmplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSC5qZSgpfTtwZi5wcm90b3R5cGUuUWI9ZnVuY3Rpb24oYSl7dGhpcy5ILlFiKGEpfTtwZi5wcm90b3R5cGUuc2Q9ZnVuY3Rpb24oYSl7dGhpcy5ILnNkKGEpfTsKZnVuY3Rpb24gcWYoYSl7aWYoYSBpbnN0YW5jZW9mIFRhfHxhIGluc3RhbmNlb2YgS2R8fGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2R8fGEgaW5zdGFuY2VvZiBQZHx8YT09PW51bGx8fGE9PT12b2lkIDB8fHR5cGVvZiBhPT09InN0cmluZyJ8fHR5cGVvZiBhPT09Im51bWJlciJ8fHR5cGVvZiBhPT09ImJvb2xlYW4iKXJldHVybiBhfTt2YXIgc2Y9ZnVuY3Rpb24oYSl7dGhpcy5tZXNzYWdlPWF9O2Z1bmN0aW9uIHRmKGEpe2EucXY9ITA7cmV0dXJuIGF9O3ZhciB1Zj10ZihmdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIn0pLHZmPXRmKGZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmcifSksd2Y9dGYoZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09ImJvb2xlYW4ifSk7ZnVuY3Rpb24geGYoYSl7dmFyIGI9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2FdO3JldHVybiBiPT09dm9pZCAwP25ldyBzZigiVmFsdWUgIithKyIgY2FuIG5vdCBiZSBlbmNvZGVkIGluIHdlYi1zYWZlIGJhc2U2NCBkaWN0aW9uYXJ5LiIpOmJ9O2Z1bmN0aW9uIHlmKGEpe3N3aXRjaChhKXtjYXNlIDE6cmV0dXJuIjEiO2Nhc2UgMjpjYXNlIDQ6cmV0dXJuIjAiO2RlZmF1bHQ6cmV0dXJuIi0ifX07dmFyIHpmPS9eWzEtOWEtekEtWl8tXVsxLTlhLWNdWzEtOWEtdl1cZCQvO2Z1bmN0aW9uIEFmKGEsYil7Zm9yKHZhciBjPSIiLGQ9ITA7YT43Oyl7dmFyIGU9YSYzMTthPj49NTtkP2Q9ITE6ZXw9MzI7Yz0iIit4ZihlKStjfWE8PD0yO2R8fChhfD0zMik7cmV0dXJuIGM9IiIreGYoYXxiKStjfWZ1bmN0aW9uIEJmKGEsYil7cmV0dXJuIGI9PT12b2lkIDB8fGI9PT0wPyIiOiIiK0FmKGEsMSkreGYoYil9CmZ1bmN0aW9uIENmKGEsYil7dmFyIGM7dmFyIGQ9YS5oaSxlPWEuYms7ZD09PXZvaWQgMD9jPSIiOihlfHwoZT0wKSxjPSIiK0FmKDEsMSkreGYoZDw8MnxlKSk7dmFyIGY9IjQiK2MrQmYoMixhLnFyKSxnLGg9YS5JbztnPWgmJnpmLnRlc3QoaCk/IiIrQWYoMywyKStoOiIiO3ZhciBsO3ZhciBuPWEuY3RpZDtpZihuJiZiKXt2YXIgcD1BZig1LDMpLHE9bi5zcGxpdCgiLSIpLHI9cVswXS50b1VwcGVyQ2FzZSgpO2lmKHIhPT0iR1RNIiYmciE9PSJPUFQiKWw9IiI7ZWxzZXt2YXIgdD1xWzFdO2w9IiIrcCt4ZigxK3QubGVuZ3RoKSsoYS5Mc3x8MCkrdH19ZWxzZSBsPSIiO3ZhciB1PWEuY2Fub25pY2FsSWQsdj1hLm1jLHg9YS56dix5PWYrZytCZig0LGEuRG8pK2wrQmYoNixhLkR0KSsodT8iIitBZig3LDMpK3hmKHUubGVuZ3RoKSt1OiIiKSsodj8iIitBZig4LDMpK3hmKHYubGVuZ3RoKSt2OiIiKSsoeD8iIitBZig5LDMpK3hmKHgubGVuZ3RoKSt4OiIiKSx6O3ZhciBDPWEuenI7Qz0KQz09PXZvaWQgMD97fTpDO2Zvcih2YXIgRD1bXSxJPW0oT2JqZWN0LmtleXMoQykpLEc9SS5uZXh0KCk7IUcuZG9uZTtHPUkubmV4dCgpKXt2YXIgTj1HLnZhbHVlO0RbTnVtYmVyKE4pXT1DW05dfWlmKEQubGVuZ3RoKXt2YXIgUz1BZigxMCwzKSxXO2lmKEQubGVuZ3RoPT09MClXPXhmKDApO2Vsc2V7Zm9yKHZhciBlYT1bXSxqYT0wLGZhPSExLHNhPTA7c2E8RC5sZW5ndGg7c2ErKyl7ZmE9ITA7dmFyIGRhPXNhJTY7RFtzYV0mJihqYXw9MTw8ZGEpO2RhPT09NSYmKGVhLnB1c2goeGYoamEpKSxqYT0wLGZhPSExKX1mYSYmZWEucHVzaCh4ZihqYSkpO1c9ZWEuam9pbigiIil9dmFyIG1hPVc7ej0iIitTK3hmKG1hLmxlbmd0aCkrbWF9ZWxzZSB6PSIiO3ZhciBQYT1hLlVzLEZhPWEubnQ7cmV0dXJuIHkreisoUGE/IiIrQWYoMTEsMykreGYoUGEubGVuZ3RoKStQYToiIikrKEZhPyIiK0FmKDEzLDMpK3hmKEZhLmxlbmd0aCkrRmE6IiIpK0JmKDE0LGEuRXQpK0JmKDE1LGEucnYpK0JmKDE2LAphLkF2KX07ZnVuY3Rpb24gRGYoYSl7Zm9yKHZhciBiPVtdLGM9MCxkPTA7ZDxhLmxlbmd0aDtkKyspe3ZhciBlPWEuY2hhckNvZGVBdChkKTtlPDEyOD9iW2MrK109ZTooZTwyMDQ4P2JbYysrXT1lPj42fDE5MjooKGUmNjQ1MTIpPT01NTI5NiYmZCsxPGEubGVuZ3RoJiYoYS5jaGFyQ29kZUF0KGQrMSkmNjQ1MTIpPT01NjMyMD8oZT02NTUzNisoKGUmMTAyMyk8PDEwKSsoYS5jaGFyQ29kZUF0KCsrZCkmMTAyMyksYltjKytdPWU+PjE4fDI0MCxiW2MrK109ZT4+MTImNjN8MTI4KTpiW2MrK109ZT4+MTJ8MjI0LGJbYysrXT1lPj42JjYzfDEyOCksYltjKytdPWUmNjN8MTI4KX1yZXR1cm4gYn07ZnVuY3Rpb24gRWYoYSxiKXtmb3IodmFyIGM9cWIoYiksZD1uZXcgVWludDhBcnJheShjLmxlbmd0aCksZT0wO2U8Yy5sZW5ndGg7ZSsrKWRbZV09Yy5jaGFyQ29kZUF0KGUpO2lmKGQubGVuZ3RoIT09MzIpdGhyb3cgRXJyb3IoIktleSBpcyBub3QgMzIgYnl0ZXMuIik7cmV0dXJuIEZmKGEsZCl9ZnVuY3Rpb24gRmYoYSxiKXtpZihhPT09IiIpcmV0dXJuIiI7dmFyIGM9WmIoYSksZD1iLnNsaWNlKC0yKSxlPVtdLmNvbmNhdCh3KGQpLHcoYykpLm1hcChmdW5jdGlvbihnLGgpe3JldHVybiBnXmJbaCViLmxlbmd0aF19KSxmPW5ldyBVaW50OEFycmF5KFtdLmNvbmNhdCh3KGUpLHcoZCkpKTtyZXR1cm4gcGIoU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdyhmKSkpLnJlcGxhY2UoL1wuKyQvLCIiKX07dmFyIEdmPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiKXtyZXR1cm57dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gYn19fXJldHVybntjcDphKCJjb25zZW50IiksWms6YSgiY29udmVydF9jYXNlX3RvIiksYWw6YSgiY29udmVydF9mYWxzZV90byIpLGJsOmEoImNvbnZlcnRfbnVsbF90byIpLGVwOmEoImNvbnZlcnRfdG9fYm9vbGVhbiIpLGFoOmEoImNvbnZlcnRfdG9fbnVtYmVyIiksZmw6YSgiY29udmVydF90cnVlX3RvIiksaWw6YSgiY29udmVydF91bmRlZmluZWRfdG8iKSxZdDphKCJkZWJ1Z19tb2RlX21ldGFkYXRhIiksWWI6YSgiZnVuY3Rpb24iKSxSbTphKCJpbnN0YW5jZV9uYW1lIiksTnE6YSgibGl2ZV9vbmx5IiksT3E6YSgibWFsd2FyZV9kaXNhYmxlZCIpLE1FVEFEQVRBOmEoIm1ldGFkYXRhIiksUnE6YSgib3JpZ2luYWxfYWN0aXZpdHlfaWQiKSxUdTphKCJvcmlnaW5hbF92ZW5kb3JfdGVtcGxhdGVfaWQiKSxTdTphKCJvbmNlX29uX2xvYWQiKSxRcTphKCJvbmNlX3Blcl9ldmVudCIpLAprbjphKCJvbmNlX3Blcl9sb2FkIiksVnU6YSgicHJpb3JpdHlfb3ZlcnJpZGUiKSxZdTphKCJyZXNwZWN0ZWRfY29uc2VudF90eXBlcyIpLHRuOmEoInNldHVwX3RhZ3MiKSx5ajphKCJ0YWdfaWQiKSxEbjphKCJ0ZWFyZG93bl90YWdzIikscGw6YSgiZGlzYWJsZWRfaW5fZ29vZ2xlX21vZGUiKSxGcTphKCJnZW5lcmF0ZWRfdGFnZ2luZ19tZXRhZGF0YSIpfX0oKTtmdW5jdGlvbiBIZihhLGIpe3ZhciBjPXt9O2NbR2YuWWJdPSJfXyIrYTtmb3IodmFyIGQgaW4gYiliLmhhc093blByb3BlcnR5KGQpJiYoY1sidnRwXyIrZF09YltkXSk7cmV0dXJuIGN9O2Z1bmN0aW9uIElmKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGMsZDtyZXR1cm4oKGM9ZGF0YSk9PW51bGw/MDooZD1jLmJsb2IpPT1udWxsPzA6ZC5oYXNPd25Qcm9wZXJ0eShhKSk/ISFkYXRhLmJsb2JbYV06Yn1mdW5jdGlvbiBFKGEpe3ZhciBiO2I9Yj09PXZvaWQgMD8iIjpiO3ZhciBjLGQ7cmV0dXJuKChjPWRhdGEpPT1udWxsPzA6KGQ9Yy5ibG9iKT09bnVsbD8wOmQuaGFzT3duUHJvcGVydHkoYSkpP1N0cmluZyhkYXRhLmJsb2JbYV0pOmJ9ZnVuY3Rpb24gSmYoYSl7dmFyIGIsYztyZXR1cm4oKGI9ZGF0YSk9PW51bGw/MDooYz1iLmJsb2IpPT1udWxsPzA6Yy5oYXNPd25Qcm9wZXJ0eShhKSk/TnVtYmVyKGRhdGEuYmxvYlthXSk6MH1mdW5jdGlvbiBLZihhKXt2YXIgYjtiPWI9PT12b2lkIDA/W106Yjt2YXIgYyxkLGU9KGM9ZGF0YSk9PW51bGw/dm9pZCAwOihkPWMuYmxvYik9PW51bGw/dm9pZCAwOmRbYV07cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZTpifQpmdW5jdGlvbiBMZihhKXt2YXIgYjtiPWI9PT12b2lkIDA/IiI6Yjt2YXIgYz1NZig0Nik7cmV0dXJuIGMmJihjPT1udWxsPzA6Yy5oYXNPd25Qcm9wZXJ0eShhKSk/U3RyaW5nKGNbYV0pOmJ9ZnVuY3Rpb24gTmYoYSxiKXt2YXIgYz1NZig0Nik7cmV0dXJuIGMmJihjPT1udWxsPzA6Yy5oYXNPd25Qcm9wZXJ0eShhKSk/TnVtYmVyKGNbYV0pOmJ9ZnVuY3Rpb24gTWYoYSl7dmFyIGIsYztyZXR1cm4oYj1kYXRhKT09bnVsbD92b2lkIDA6KGM9Yi5ibG9iKT09bnVsbD92b2lkIDA6Y1thXX07dmFyIE9mPWZ1bmN0aW9uKGEsYixjKXt2YXIgZDtkPUVycm9yLmNhbGwodGhpcyxjKTt0aGlzLm1lc3NhZ2U9ZC5tZXNzYWdlOyJzdGFjayJpbiBkJiYodGhpcy5zdGFjaz1kLnN0YWNrKTt0aGlzLnBlcm1pc3Npb25JZD1hO3RoaXMucGFyYW1ldGVycz1iO3RoaXMubmFtZT0iUGVybWlzc2lvbkVycm9yIn07d2EoT2YsRXJyb3IpO09mLnByb3RvdHlwZS5nZXRNZXNzYWdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWVzc2FnZX07ZnVuY3Rpb24gUGYoYSxiKXtpZihBcnJheS5pc0FycmF5KGEpKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwiY29udGV4dCIse3ZhbHVlOntsaW5lOmJbMF19fSk7Zm9yKHZhciBjPTE7YzxhLmxlbmd0aDtjKyspUGYoYVtjXSxiW2NdKX19O2Z1bmN0aW9uIFFmKCl7cmV0dXJuIGZ1bmN0aW9uKGEsYil7dmFyIGM7dmFyIGQ9UmY7YSBpbnN0YW5jZW9mIGJiPyhhLkg9ZCxjPWEpOmM9bmV3IGJiKGEsZCk7dmFyIGU9YztiJiZlLksucHVzaChiKTt0aHJvdyBlO319ZnVuY3Rpb24gUmYoYSl7aWYoIWEubGVuZ3RoKXJldHVybiBhO2EucHVzaCh7aWQ6Im1haW4iLGxpbmU6MH0pO2Zvcih2YXIgYj1hLmxlbmd0aC0xO2I+MDtiLS0pQWIoYVtiXS5pZCkmJmEuc3BsaWNlKGIrKywxKTtmb3IodmFyIGM9YS5sZW5ndGgtMTtjPjA7Yy0tKWFbY10ubGluZT1hW2MtMV0ubGluZTthLnNwbGljZSgwLDEpO3JldHVybiBhfTt2YXIgU2Y9UmVnRXhwKCJbXjAtOVxcListXSIsImciKSxUZj1SZWdFeHAoIlteMC05XFwsKy1dIiwiZyIpLFVmPVJlZ0V4cCgiW14wLTkrLV0iLCJnIik7CmZ1bmN0aW9uIFZmKGEsYil7aWYodHlwZW9mIGE9PT0ibnVtYmVyIilyZXR1cm4gYTt2YXIgYz1TdHJpbmcoYSksZDtpZihiPT09IkFVVE9NQVRJQyIpe3ZhciBlPShjLm1hdGNoKC9cLi9nKXx8W10pLmxlbmd0aCxmPShjLm1hdGNoKC8sL2cpfHxbXSkubGVuZ3RoLGc9Ik5PTkUiO2lmKGU+MCYmZj4wKXt2YXIgaD1jLmxhc3RJbmRleE9mKCIuIik+Yy5sYXN0SW5kZXhPZigiLCIpO2gmJmU9PT0xP2c9IlBFUklPRCI6aHx8ZiE9PTF8fChnPSJDT01NQSIpfWVsc2UgZT09PTE/Zz0oYy5zcGxpdCgiLiIpWzFdLm1hdGNoKC9bMC05XS9nKXx8W10pLmxlbmd0aCE9PTM/IlBFUklPRCI6Ik5PTkUiOmY9PT0xJiYoZz0oYy5zcGxpdCgiLCIpWzFdLm1hdGNoKC9bMC05XS9nKXx8W10pLmxlbmd0aCE9PTM/IkNPTU1BIjoiTk9ORSIpO2Q9Z31lbHNlIGQ9Yj09PSJDT01NQSI/IkNPTU1BIjoiUEVSSU9EIjt2YXIgbCxuO2Q9PT0iUEVSSU9EIj8obD0iLiIsbj1TZik6ZD09PSJDT01NQSI/KGw9IiwiLApuPVRmKToobD0iIixuPVVmKTt2YXIgcD1jLnJlcGxhY2UobiwiIik7aWYobCE9PSIiJiZwLnNwbGl0KGwpLmxlbmd0aD4yKXJldHVybiBhO3ZhciBxPXAucmVwbGFjZSgvLC9nLCIuIik7aWYocT09PSIiKXJldHVybiBhO3ZhciByPU51bWJlcihxKTtyZXR1cm4gaXNOYU4ocik/YTpyfTt2YXIgV2Y9W10sWGY9e307ZnVuY3Rpb24gWWYoYSl7cmV0dXJuIFdmW2FdPT09dm9pZCAwPyExOldmW2FdfTt2YXIgWmY9ZnVuY3Rpb24oKXt0aGlzLkg9e319LCRmPWZ1bmN0aW9uKGEsYixjKXt2YXIgZDsoZD1hLkgpW2JdIT1udWxsfHwoZFtiXT1bXSk7YS5IW2JdLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gYy5hcHBseShudWxsLHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSl9KX07ZnVuY3Rpb24gYWcoYSxiLGMsZCl7aWYoYSlmb3IodmFyIGU9MDtlPGEubGVuZ3RoO2UrKyl7dmFyIGY9dm9pZCAwLGc9IkEgcG9saWN5IGZ1bmN0aW9uIGRlbmllZCB0aGUgcGVybWlzc2lvbiByZXF1ZXN0Ijt0cnl7Zj1hW2VdKGIsYyxkKSxnKz0iLiJ9Y2F0Y2goaCl7Zz10eXBlb2YgaD09PSJzdHJpbmciP2crKCI6ICIraCk6aCBpbnN0YW5jZW9mIEVycm9yP2crKCI6ICIraC5tZXNzYWdlKTpnKyIuIn1pZighZil0aHJvdyBuZXcgT2YoYyxkLGcpO319CmZ1bmN0aW9uIGJnKGEsYil7dmFyIGM9Y2coZGcuSCxiLGZ1bmN0aW9uKCl7cmV0dXJue319KTt0cnl7cmV0dXJuIGMoYSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fWZ1bmN0aW9uIGNnKGEsYixjKXtyZXR1cm4gZnVuY3Rpb24oZCl7aWYoZCl7dmFyIGU9YS5IW2RdLGY9YS5ILmFsbDtpZihlfHxmKXt2YXIgZz1jLmFwcGx5KHZvaWQgMCxbZF0uY29uY2F0KHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSkpO2FnKGUsYixkLGcpO2FnKGYsYixkLGcpfX19fTt2YXIgZ2c9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXM7dGhpcy5LPXt9O3RoaXMuSD1uZXcgWmY7dmFyIGU9e30sZj17fSxnPWNnKHRoaXMuSCxhLGZ1bmN0aW9uKGgpe3JldHVybiBoJiZlW2hdP2VbaF0uYXBwbHkodm9pZCAwLFtoXS5jb25jYXQodyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKSk6e319KTtHYihiLGZ1bmN0aW9uKGgsbCl7ZnVuY3Rpb24gbihxKXt2YXIgcj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7aWYoIXBbcV0pdGhyb3cgZWcocSx7fSwiVGhlIHJlcXVlc3RlZCBhZGRpdGlvbmFsIHBlcm1pc3Npb24gIitxKyIgaXMgbm90IGNvbmZpZ3VyZWQuIik7Zy5hcHBseShudWxsLFtxXS5jb25jYXQodyhyKSkpfXZhciBwPXt9O0diKGwsZnVuY3Rpb24ocSxyKXt2YXIgdD1mZyhxLHIsYyk7cFtxXT10LmFzc2VydDtlW3FdfHwoZVtxXT10LmFhKTt0Lk9uJiYhZltxXSYmKGZbcV09dC5Pbil9KTtkLktbaF09ZnVuY3Rpb24ocSxyKXt2YXIgdD1wW3FdO2lmKCF0KXRocm93IGVnKHEsCnt9LCJUaGUgcmVxdWVzdGVkIHBlcm1pc3Npb24gIitxKyIgaXMgbm90IGNvbmZpZ3VyZWQuIik7dmFyIHU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApO3QuYXBwbHkodm9pZCAwLHUpO2cuYXBwbHkodm9pZCAwLHUpO3ZhciB2PWZbcV07diYmdi5hcHBseShudWxsLFtuXS5jb25jYXQodyh1LnNsaWNlKDEpKSkpfX0pfSxoZz1mdW5jdGlvbihhKXtyZXR1cm4gZGcuS1thXXx8ZnVuY3Rpb24oKXt9fTsKZnVuY3Rpb24gZmcoYSxiLGMpe3RyeXt2YXIgZD1jWyJfXyIrYV07aWYoIWQpdGhyb3cgRXJyb3IoIk5vIGZ1bmN0aW9uIGZvdW5kIGZvciBwZXJtaXNzaW9uOiAiK2ErIi4iKTt2YXIgZT1IZihhLGIpO2UudnRwX3Blcm1pc3Npb25OYW1lPWE7ZS52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yPWVnO2RlbGV0ZSBlW0dmLlliXTtyZXR1cm4gZChlKX1jYXRjaChmKXtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGcpe3Rocm93IG5ldyBPZihnLHt9LCJQZXJtaXNzaW9uICIrZysiIGlzIHVua25vd24uIik7fSxhYTpmdW5jdGlvbigpe3Rocm93IG5ldyBPZihhLHt9LCJQZXJtaXNzaW9uICIrYSsiIGlzIHVua25vd24uIik7fX19fWZ1bmN0aW9uIGVnKGEsYixjKXtyZXR1cm4gbmV3IE9mKGEsYixjKX07dmFyIGlnPUUoNSksamc9RSgyMCksa2c9RSgxKSxsZz0hMTt2YXIgbWc9e307bWcuUG89SWYoMjkpO21nLktyPUlmKDI4KTtmdW5jdGlvbiBuZyhhKXt2YXIgYj0xLGMsZCxlO2lmKGEpZm9yKGI9MCxkPWEubGVuZ3RoLTE7ZD49MDtkLS0pZT1hLmNoYXJDb2RlQXQoZCksYj0oYjw8NiYyNjg0MzU0NTUpK2UrKGU8PDE0KSxjPWImMjY2MzM4MzA0LGI9YyE9PTA/Yl5jPj4yMTpiO3JldHVybiBifTt2YXIgb2c9ZnVuY3Rpb24oYSl7dGhpcy5jYWNoZT1hfTtvZy5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3ZhciBiPW5nKGEpLGM9dGhpcy5jYWNoZS5nZXQoYik7aWYoIWMpcmV0dXJue3Byb21pc2U6dm9pZCAwLEtqOjB9O2lmKERhdGUubm93KCk+PWMudGltZXN0YW1wKzlFNSlyZXR1cm4gdGhpcy5jYWNoZS5kZWxldGUoYikse3Byb21pc2U6dm9pZCAwLEtqOjN9O3ZhciBkPWMucmVzb2x2ZWRWYWx1ZT8yOjE7cmV0dXJue3Byb21pc2U6Yy5yZXNvbHZlZFZhbHVlP1Byb21pc2UucmVzb2x2ZShjLnJlc29sdmVkVmFsdWUpOmMucHJvbWlzZSxLajpkfX07b2cucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3ZhciBjPXtwcm9taXNlOmIscmVzb2x2ZWRWYWx1ZTp2b2lkIDAsdGltZXN0YW1wOkRhdGUubm93KCl9O3RoaXMuY2FjaGUuc2V0KG5nKGEpLGMpO2IudGhlbihmdW5jdGlvbihkKXtjLnJlc29sdmVkVmFsdWU9ZH0pfTtmdW5jdGlvbiBwZyhhKXtzd2l0Y2goYSl7Y2FzZSAwOmJyZWFrO2Nhc2UgOTpyZXR1cm4iZTQiO2Nhc2UgNjpyZXR1cm4iZTUiO2Nhc2UgMTQ6cmV0dXJuImU2IjtkZWZhdWx0OnJldHVybiJlNyJ9fTt2YXIgRj17RDp7WGE6ImFkX3BlcnNvbmFsaXphdGlvbiIsa2E6ImFkX3N0b3JhZ2UiLG1hOiJhZF91c2VyX2RhdGEiLHJhOiJhbmFseXRpY3Nfc3RvcmFnZSIsbmM6InJlZ2lvbiIsc2E6ImNvbnNlbnRfdXBkYXRlZCIsWWc6IndhaXRfZm9yX3VwZGF0ZSIsZWg6ImVuZHBvaW50X3R5cGUiLHFwOiJhcHBfcmVtb3ZlIixycDoiYXBwX3N0b3JlX3JlZnVuZCIsdHA6ImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fY2FuY2VsIix1cDoiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9jb252ZXJ0Iix2cDoiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9yZW5ldyIsd3A6ImNvbnNlbnRfdXBkYXRlIix4cDoiY29udmVyc2lvbiIsdmw6ImFkZF9wYXltZW50X2luZm8iLHdsOiJhZGRfc2hpcHBpbmdfaW5mbyIseGU6ImFkZF90b19jYXJ0Iix5ZToicmVtb3ZlX2Zyb21fY2FydCIseGw6InZpZXdfY2FydCIsQWQ6ImJlZ2luX2NoZWNrb3V0IixldToiZ2VuZXJhdGVfbGVhZCIsemU6InNlbGVjdF9pdGVtIixvYzoidmlld19pdGVtX2xpc3QiLApRYzoic2VsZWN0X3Byb21vdGlvbiIscWM6InZpZXdfcHJvbW90aW9uIixJYjoicHVyY2hhc2UiLEFlOiJyZWZ1bmQiLHJjOiJ2aWV3X2l0ZW0iLHlsOiJhZGRfdG9fd2lzaGxpc3QiLHlwOiJleGNlcHRpb24iLHpwOiJmaXJzdF9vcGVuIixBcDoiZmlyc3RfdmlzaXQiLHdhOiJndGFnLmNvbmZpZyIsSmI6Imd0YWcuZ2V0IixCcDoiaW5fYXBwX3B1cmNoYXNlIixzYzoicGFnZV92aWV3IixDcDoic2NyZWVuX3ZpZXciLERwOiJzZXNzaW9uX3N0YXJ0IixFcDoic291cmNlX3VwZGF0ZSIsRnA6InRpbWluZ19jb21wbGV0ZSIsR3A6InRyYWNrX3NvY2lhbCIseWY6InVzZXJfZW5nYWdlbWVudCIsSHA6InVzZXJfaWRfdXBkYXRlIixmaDoiYnJhaWRfbGlua19kZWNvcmF0aW9uX3NvdXJjZSIsZ2g6ImJyYWlkX3N0b3JhZ2Vfc291cmNlIixCZDoiZ2NsaWRfbGlua19kZWNvcmF0aW9uX3NvdXJjZSIsQ2Q6ImdjbGlkX3N0b3JhZ2Vfc291cmNlIixTYjoiZ2NsZ2IiLGxiOiJnY2xpZCIsemw6ImdjbGlkX2xlbiIsCkJlOiJnY2xncyIsQ2U6ImdjbGxwIixEZToiZ2Nsc3QiLG1iOiJhZHNfZGF0YV9yZWRhY3Rpb24iLHpmOiJnYWRfc291cmNlIixBZjoiZ2FkX3NvdXJjZV9zcmMiLERkOiJnY2xpZF91cmwiLEFsOiJnY2xzcmMiLEJmOiJnYnJhaWQiLEVlOiJ3YnJhaWQiLFJjOiJhbGxvd19hZF9wZXJzb25hbGl6YXRpb25fc2lnbmFscyIscmk6ImFsbG93X2N1c3RvbV9zY3JpcHRzIixoaDoiYWxsb3dfZGlzcGxheV9mZWF0dXJlcyIsc2k6ImFsbG93X2VuaGFuY2VkX2NvbnZlcnNpb25zIixTYzoiYWxsb3dfZ29vZ2xlX3NpZ25hbHMiLHVpOiJhbGxvd19pbnRlcmVzdF9ncm91cHMiLElwOiJhcHBfaWQiLEpwOiJhcHBfaW5zdGFsbGVyX2lkIixLcDoiYXBwX25hbWUiLExwOiJhcHBfdmVyc2lvbiIsRWQ6ImF1aWQiLGZ1OiJhdXRvX2RldGVjdGlvbl9lbmFibGVkIixCbDoiYXV0b19ldmVudCIsQ2w6ImF3X3JlbWFya2V0aW5nIixpaDoiYXdfcmVtYXJrZXRpbmdfb25seSIsQ2Y6ImRpc2NvdW50IixEZjoiYXdfZmVlZF9jb3VudHJ5IiwKRWY6ImF3X2ZlZWRfbGFuZ3VhZ2UiLEhhOiJpdGVtcyIsRmY6ImF3X21lcmNoYW50X2lkIix3aToiYXdfYmFza2V0X3R5cGUiLEdmOiJjYW1wYWlnbl9jb250ZW50IixIZjoiY2FtcGFpZ25faWQiLElmOiJjYW1wYWlnbl9tZWRpdW0iLEpmOiJjYW1wYWlnbl9uYW1lIixLZjoiY2FtcGFpZ24iLExmOiJjYW1wYWlnbl9zb3VyY2UiLE1mOiJjYW1wYWlnbl90ZXJtIixLYjoiY2xpZW50X2lkIixEbDoicm5kIix4aToiY29uc2VudF91cGRhdGVfdHlwZSIsTXA6ImNvbnRlbnRfZ3JvdXAiLE5wOiJjb250ZW50X3R5cGUiLEZkOiJjb252ZXJzaW9uX2Nvb2tpZV9wcmVmaXgiLHlpOiJjb252ZXJzaW9uX2lkIix1YzoiY29udmVyc2lvbl9saW5rZXIiLEhkOiJjb252ZXJzaW9uX2xpbmtlcl9kaXNhYmxlZCIsRmU6ImNvbnZlcnNpb25fYXBpIix6aToiXyZyY2IiLGpoOiJjb29raWVfZGVwcmVjYXRpb24iLExiOiJjb29raWVfZG9tYWluIixDYjoiY29va2llX2V4cGlyZXMiLFRiOiJjb29raWVfZmxhZ3MiLApJZDoiY29va2llX25hbWUiLHZjOiJjb29raWVfcGF0aCIsbmI6ImNvb2tpZV9wcmVmaXgiLEpkOiJjb29raWVfdXBkYXRlIixUYzoiY291bnRyeSIsZWI6ImN1cnJlbmN5IixHZToiY3VzdG9tZXJfbGlmZXRpbWVfdmFsdWUiLGtoOiJjdXN0b21lcl90eXBlIixIZToiY3VzdG9tX21hcCIsQWk6ImdjbGRjX2xpbmtfZGVjb3JhdGlvbl9zb3VyY2UiLEJpOiJnY2xkY19zdG9yYWdlX3NvdXJjZSIsTmY6ImdjbGRjIixLZDoiZGNsaWQiLEVsOiJkZWJ1Z19tb2RlIixPYToiZGV2ZWxvcGVyX2lkIixPcDoiZGlzYWJsZV9tZXJjaGFudF9yZXBvcnRlZF9wdXJjaGFzZXMiLFVjOiJkY19jdXN0b21fcGFyYW1zIixQcDoiZGNfbmF0dXJhbF9zZWFyY2giLFFwOiJkeW5hbWljX2V2ZW50X3NldHRpbmdzIixGbDoiYWZmaWxpYXRpb24iLG1oOiJjaGVja291dF9vcHRpb24iLENpOiJjaGVja291dF9zdGVwIixHbDoiY291cG9uIixPZjoiaXRlbV9saXN0X25hbWUiLERpOiJsaXN0X25hbWUiLFJwOiJwcm9tb3Rpb25zIiwKTGQ6InNoaXBwaW5nIixIbDoidGF4IixuaDoiZW5nYWdlbWVudF90aW1lX21zZWMiLG9oOiJlbmhhbmNlZF9jbGllbnRfaWQiLFNwOiJlbmhhbmNlZF9jb252ZXJzaW9ucyIsZ3U6ImVuaGFuY2VkX2NvbnZlcnNpb25zX2F1dG9tYXRpY19zZXR0aW5ncyIsSWU6ImVzdGltYXRlZF9kZWxpdmVyeV9kYXRlIixQZjoiZXZlbnRfY2FsbGJhY2siLFRwOiJldmVudF9jYXRlZ29yeSIsVmM6ImV2ZW50X2RldmVsb3Blcl9pZF9zdHJpbmciLE1kOiJldmVudF9pZCIsRWk6Il9ldmVudF9qb2luX2lkIixVcDoiZXZlbnRfbGFiZWwiLFViOiJldmVudCIsSWw6Il8mYWUiLEZpOiJldmVudF9zZXR0aW5ncyIscGg6ImV2ZW50X3RpbWVvdXQiLFZwOiJkZXNjcmlwdGlvbiIsV3A6ImZhdGFsIixYcDoiZXhwZXJpbWVudHMiLE5kOiJleHRfY2xpZW50X2lkIixHaToiZmlyZWJhc2VfaWQiLFFmOiJmaXJzdF9wYXJ0eV9jb2xsZWN0aW9uIixSZjoiX3hfMjAiLFZiOiJfeF8xOSIsWXA6ImZsaWdodF9lcnJvcl9jb2RlIiwKWnA6ImZsaWdodF9lcnJvcl9tZXNzYWdlIixIaToiZmxfYWN0aXZpdHlfY2F0ZWdvcnkiLElpOiJmbF9hY3Rpdml0eV9ncm91cCIscWg6ImZsX2FkdmVydGlzZXJfaWQiLEppOiJtYXRjaF9pZCIsSmw6ImZsX3JhbmRvbV9udW1iZXIiLEtsOiJ0cmFuIixMbDoidSIscmg6ImdhY19nY2xpZCIsSmU6ImdhY193YnJhaWQiLE1sOiJnYWNfd2JyYWlkX211bHRpcGxlX2NvbnZlcnNpb25zIixhcToiZ2FfcmVzdHJpY3RfZG9tYWluIixObDoiZ2FfdGVtcF9jbGllbnRfaWQiLGJxOiJnYV90ZW1wX2VjaWQiLEtlOiJnZHByX2FwcGxpZXMiLHNoOiJfZ3RfbWV0YWRhdGEiLE9sOiJnZW9fZ3JhbnVsYXJpdHkiLFNmOiJ2YWx1ZV9jYWxsYmFjayIsVGY6InZhbHVlX2tleSIsVGE6Imdvb2dsZV9hbmFseXNpc19wYXJhbXMiLExlOiJfZ29vZ2xlX25nIixjcToiX29ubyIsVWY6Imdvb2dsZV9zaWduYWxzIixmcToiZ29vZ2xlX3RsZCIsdGg6ImdwcF9zaWQiLHVoOiJncHBfc3RyaW5nIixPZDoiZ3JvdXBzIiwKUGw6ImdzYV9leHBlcmltZW50X2lkIixWZjoiZ3RhZ19ldmVudF9mZWF0dXJlX3VzYWdlIixRbDoiZ3RtX3VwIixNZToiaWZyYW1lX3N0YXRlIixXZjoiaWdub3JlX3JlZmVycmVyIixSbDoiaW50ZXJuYWxfdHJhZmZpY19yZXN1bHRzIixTbDoiX2lzX2ZwbSIsWWM6ImlzX2xlZ2FjeV9jb252ZXJ0ZWQiLFpjOiJpc19sZWdhY3lfbG9hZGVkIixLaToiaXNfcGFzc3Rocm91Z2giLFBkOiJfbHBzIix0YjoibGFuZ3VhZ2UiLExpOiJsZWdhY3lfZGV2ZWxvcGVyX2lkX3N0cmluZyIsRGI6ImxpbmtlciIsWGY6ImFjY2VwdF9pbmNvbWluZyIsd2M6ImRlY29yYXRlX2Zvcm1zIixBYToiZG9tYWlucyIsYWQ6InVybF9wb3NpdGlvbiIsUWQ6Im1lcmNoYW50X2ZlZWRfbGFiZWwiLFJkOiJtZXJjaGFudF9mZWVkX2xhbmd1YWdlIixTZDoibWVyY2hhbnRfaWQiLFRsOiJtZXRob2QiLGdxOiJuYW1lIixVbDoibmF2aWdhdGlvbl90eXBlIixOZToibmV3X2N1c3RvbWVyIixNaToibm9uX2ludGVyYWN0aW9uIiwKaHE6Im9wdGltaXplX2lkIixWbDoicGFnZV9ob3N0bmFtZSIsWWY6InBhZ2VfcGF0aCIsVWE6InBhZ2VfcmVmZXJyZXIiLE1iOiJwYWdlX3RpdGxlIixpcToicGFzc2VuZ2VycyIsV2w6InBob25lX2NvbnZlcnNpb25fY2FsbGJhY2siLGpxOiJwaG9uZV9jb252ZXJzaW9uX2NvdW50cnlfY29kZSIsWGw6InBob25lX2NvbnZlcnNpb25fY3NzX2NsYXNzIixrcToicGhvbmVfY29udmVyc2lvbl9pZHMiLFlsOiJwaG9uZV9jb252ZXJzaW9uX251bWJlciIsWmw6InBob25lX2NvbnZlcnNpb25fb3B0aW9ucyIsbHE6Il9wbGF0aW51bV9yZXF1ZXN0X3N0YXR1cyIsbXE6Il9wcm90ZWN0ZWRfYXVkaWVuY2VfZW5hYmxlZCIsd2g6InF1YW50aXR5Iix4aDoicmVkYWN0X2RldmljZV9pbmZvIixhbToicmVmZXJyYWxfZXhjbHVzaW9uX2RlZmluaXRpb24iLGh1OiJfcmVxdWVzdF9zdGFydF90aW1lIixXYjoicmVzdHJpY3RlZF9kYXRhX3Byb2Nlc3NpbmciLG5xOiJyZXRva2VuIixvcToic2FtcGxlX3JhdGUiLApOaToic2NyZWVuX25hbWUiLGJkOiJzY3JlZW5fcmVzb2x1dGlvbiIsYm06Il9zY3JpcHRfc291cmNlIixwcToic2VhcmNoX3Rlcm0iLFRkOiJzZW5kX3BhZ2VfdmlldyIsWGI6InNlbmRfdG8iLE9pOiJzZXJ2ZXJfY29udGFpbmVyXzNwX2VucmljaG1lbnQiLGRkOiJzZXJ2ZXJfY29udGFpbmVyX3VybCIscXE6InNlc3Npb25fYXR0cmlidXRlc19lbmNvZGVkIix5aDoic2Vzc2lvbl9kdXJhdGlvbiIsemg6InNlc3Npb25fZW5nYWdlZCIsUGk6InNlc3Npb25fZW5nYWdlZF90aW1lIix4Yzoic2Vzc2lvbl9pZCIsQWg6InNlc3Npb25fbnVtYmVyIixaZjoiX3NoYXJlZF91c2VyX2lkIixVZDoiZGVsaXZlcnlfcG9zdGFsX2NvZGUiLGl1OiJfdGFnX2ZpcmluZ19kZWxheSIsanU6Il90YWdfZmlyaW5nX3RpbWUiLGt1OiJ0ZW1wb3JhcnlfY2xpZW50X2lkIixRaToidGVzdG9ubHkiLHJxOiJfdGltZXpvbmUiLFBlOiJ0b3Btb3N0X3VybCIsUWU6InRyYWNraW5nX2lkIixSaToidHJhZmZpY190eXBlIiwKUGE6InRyYW5zYWN0aW9uX2lkIixkbToidHJhbnNhY3Rpb25faWRfc291cmNlIix5YzoidHJhbnNwb3J0X3VybCIsc3E6InRyaXBfdHlwZSIsVmQ6InVwZGF0ZSIsemM6InVybF9wYXNzdGhyb3VnaCIsZm06InVwdGdzIixjZzoiX3VzZXJfYWdlbnRfYXJjaGl0ZWN0dXJlIixkZzoiX3VzZXJfYWdlbnRfYml0bmVzcyIsZWc6Il91c2VyX2FnZW50X2Z1bGxfdmVyc2lvbl9saXN0IixmZzoiX3VzZXJfYWdlbnRfbW9iaWxlIixnZzoiX3VzZXJfYWdlbnRfbW9kZWwiLGhnOiJfdXNlcl9hZ2VudF9wbGF0Zm9ybSIsaWc6Il91c2VyX2FnZW50X3BsYXRmb3JtX3ZlcnNpb24iLGpnOiJfdXNlcl9hZ2VudF93b3c2NCIsQWM6InVzZXJfZGF0YSIsZ206InVzZXJfZGF0YV9hdXRvX2xhdGVuY3kiLGhtOiJ1c2VyX2RhdGFfYXV0b19tZXRhIixpbToidXNlcl9kYXRhX2F1dG9fbXVsdGkiLGptOiJ1c2VyX2RhdGFfYXV0b19zZWxlY3RvcnMiLGttOiJ1c2VyX2RhdGFfYXV0b19zdGF0dXMiLEJjOiJ1c2VyX2RhdGFfbW9kZSIsCmxtOiJ1c2VyX2RhdGFfc2V0dGluZ3MiLGZiOiJ1c2VyX2lkIixXZDoidXNlcl9wcm9wZXJ0aWVzIixvbToiX3VzZXJfcmVnaW9uIixrZzoidXNfcHJpdmFjeV9zdHJpbmciLFFhOiJ2YWx1ZSIscW06IndicmFpZF9tdWx0aXBsZV9jb252ZXJzaW9ucyIsZWQ6Il9mcG1fcGFyYW1ldGVycyIsV2k6Il9ob3N0X25hbWUiLFZtOiJfaW5fcGFnZV9jb21tYW5kIixZaToiX2lwX292ZXJyaWRlIixabToiX2lzX3Bhc3N0aHJvdWdoX2NpZCIsSmg6Il9tZWFzdXJlbWVudF90eXBlIixkZToibm9uX3BlcnNvbmFsaXplZF9hZHMiLG9qOiJfc3N0X3BhcmFtZXRlcnMiLFlxOiJzZ3RtX2dlb191c2VyX2NvdW50cnkiLEdkOiJjb252ZXJzaW9uX2xhYmVsIix6YToicGFnZV9sb2NhdGlvbiIsV2M6Il9leHRyYWN0ZWRfZGF0YSIsWGM6Imdsb2JhbF9kZXZlbG9wZXJfaWRfc3RyaW5nIixPZToidGNfcHJpdmFjeV9zdHJpbmcifX07dmFyIEg9e0o6e1NvOiJhYm9ydF93aXRob3V0X2ZhaWwiLGtpOiJhY2NlcHRfYnlfZGVmYXVsdCIsQms6ImFkZF90YWdfdGltaW5nIixEazoiYWRzX2NvbnNlbnRfZ3JhbnRlZCIsdmQ6ImFkc19ldmVudF9wYWdlX3ZpZXciLHdkOiJhbGxvd19hZF9wZXJzb25hbGl6YXRpb24iLFF0OiJhdXRvX2V2ZW50IixLazoiYmF0Y2hfb25fbmF2aWdhdGlvbiIsWGc6ImJpc2NvdHRpX2pvaW5faWQiLFBrOiJjbGllbnRfaWRfc291cmNlIix1ZjoiY29uc2VudF9ldmVudF9pZCIsdmY6ImNvbnNlbnRfcHJpb3JpdHlfaWQiLFN0OiJjb25zZW50X3N0YXRlIixzYToiY29uc2VudF91cGRhdGVkIix3ZjoiY29udmVyc2lvbl9saW5rZXJfZW5hYmxlZCIsVHQ6ImNvbnZlcnNpb25fbWFya2luZ19jYWxsZWQiLEdhOiJjb29raWVfb3B0aW9ucyIsb2w6ImRjX3JhbmRvbSIsWnQ6ImRlZHVwZV9pZCIsUGM6ImVtX2V2ZW50IixidToiZW5kcG9pbnRfZm9yX2RlYnVnIix0bDoiZW5oYW5jZWRfY2xpZW50X2lkX3NvdXJjZSIsCnBwOiJlbmhhbmNlZF9tYXRjaF9yZXN1bHQiLHJtOiJldWlkX2xvZ2dlZF9pbl9zdGF0ZSIsbGc6ImV1aWRfbW9kZV9lbmFibGVkIix0cToiZXZlbnRfcHJvdmVuYW5jZSIsbXU6ImV2ZW50X3NvdXJjZSIsRWI6ImV2ZW50X3N0YXJ0X3RpbWVzdGFtcF9tcyIsd206ImV2ZW50X3VzYWdlIixDaDoiZXh0cmFfdGFnX2V4cGVyaW1lbnRfaWRzIixwdToiYWRkX3BhcmFtZXRlciIsVWk6ImNvdW50aW5nX21ldGhvZCIsRGg6InNlbmRfYXNfaWZyYW1lIixxdToicGFyYW1ldGVyX29yZGVyIixFaDoicGFyc2VkX3RhcmdldCIsc3U6ImZvcm1fZXZlbnRfY2FuY2VsZWQiLEFxOiJnYTRfY29sbGVjdGlvbl9zdWJkb21haW4iLFZpOiJnYTRfcmVxdWVzdF9mbGFncyIsTm06ImdicmFpZF9jb29raWVfbWFya2VkIixRbToiZ3RtX2V4dHJhY3RlZF9kYXRhIixDYzoiaGFuZGxlX2ludGVybmFsbHkiLHV1OiJoYXNfZ2FfY29udmVyc2lvbl9jb25zZW50cyIsZGE6ImhpdF90eXBlIixEYzoiaGl0X3R5cGVfb3ZlcnJpZGUiLApIcToiaWdub3JlX2R1cGVfY29uZmlnIixPdToiaXNfY29uZmlnX2NvbW1hbmQiLEdoOiJpc19jb25zZW50X3VwZGF0ZSIsbWc6ImlzX2NvbnZlcnNpb24iLFdtOiJpc19lY29tbWVyY2UiLFhtOiJpc19lY19jbV9zcGxpdCIsYWU6ImlzX2V4dGVybmFsX2V2ZW50IixuZzoiaXNfZmlyc3RfdmlzaXQiLFltOiJpc19maXJzdF92aXNpdF9jb252ZXJzaW9uIixaaToiaXNfZmxfZmFsbGJhY2tfY29udmVyc2lvbl9mbG93X2FsbG93ZWQiLGZkOiJpc19mcG1fZW5jcnlwdGlvbiIsYWo6ImlzX2ZwbV9zcGxpdCIsb2I6ImlzX2djcF9icm93c2VyIixiajoiaXNfZ29vZ2xlX21lYXN1cmVtZW50X2FsbG93ZWQiLGNqOiJpc19nb29nbGVfc2lnbmFsc19lbmFibGVkIixiZToiaXNfbWVyY2hhbnRfY2VudGVyIixIaDoiaXNfbmV3X3RvX3NpdGUiLEVjOiJpc19wZXJzb25hbGl6YXRpb24iLGRqOiJpc19zZXJ2ZXJfc2lkZV9kZXN0aW5hdGlvbiIsVGU6ImlzX3Nlc3Npb25fc3RhcnQiLGJuOiJpc19zZXNzaW9uX3N0YXJ0X2NvbnZlcnNpb24iLApQdToiaXNfc2d0bV9nYV9hZHNfY29udmVyc2lvbl9zdHVkeV9jb250cm9sX2dyb3VwIixRdToiaXNfc2d0bV9wcmVoaXQiLGRuOiJpc19zZ3RtX3NlcnZpY2Vfd29ya2VyIixJaDoiaXNfc3BsaXRfY29udmVyc2lvbiIsSXE6ImlzX3N5biIsRmM6ImlzX3Rlc3RfZXZlbnQiLG9nOiJqb2luX2lkIixlajoiam9pbl9lbGFwc2VkIixwZzoiam9pbl90aW1lcl9zZWMiLGduOiJsb2NhbF9zdG9yYWdlX2F3X2NvbnZlcnNpb25fY291bnRlcnMiLFdlOiJ0dW5uZWxfdXBkYXRlZCIsVXU6InByZWhpdF9mb3JfcmV0cnkiLFd1OiJwcm9taXNlcyIsWHU6InJlY29yZF9hd19sYXRlbmN5IixYZToicmVkYWN0X2Fkc19kYXRhIixZZToicmVkYWN0X2NsaWNrX2lkcyIscG46InJlbWFya2V0aW5nX29ubHkiLGxqOiJzZW5kX2NjbV9wYXJhbGxlbF9waW5nIixoZDoic2VuZF9kb3VibGVjbGlja19qb2luIixNaDoic2VuZF9mcG1fZ2VvX2pvaW4iLE5oOiJzZW5kX2ZwbV9nb29nbGVfam9pbiIsWnU6InNlbmRfY2NtX3BhcmFsbGVsX3Rlc3RfcGluZyIsCnJuOiJzZW5kX2dvb2dsZV9tZWFzdXJlbWVudCIscmc6InNlbmRfdGxkX2pvaW4iLHNnOiJzZW5kX3RvX2Rlc3RpbmF0aW9ucyIsbWo6InNlbmRfdG9fdGFyZ2V0cyIsc246InNlbmRfdXNlcl9kYXRhX2hpdCIscGo6InNlcnZpY2Vfd29ya2VyX2NvbnRleHQiLE5iOiJzb3VyY2VfY2Fub25pY2FsX2lkIixKYToic3BlY3VsYXRpdmUiLHluOiJzcGVjdWxhdGl2ZV9pbl9tZXNzYWdlIixBbjoic3VwcHJlc3Nfc2NyaXB0X2xvYWQiLEJuOiJzeW5fb3JfbW9kIix6ajoidHJhbnNpZW50X2Vjc2lkIix0ZzoidHJhbnNtaXNzaW9uX3R5cGUiLFlhOiJ1c2VyX2RhdGEiLGd2OiJ1c2VyX2RhdGFfZnJvbV9hdXRvbWF0aWMiLGh2OiJ1c2VyX2RhdGFfZnJvbV9hdXRvbWF0aWNfZ2V0dGVyIixHbjoidXNlcl9kYXRhX2Zyb21fY29kZSIsaXI6InVzZXJfZGF0YV9mcm9tX21hbnVhbCIsanY6InVzZXJfZGF0YV9tb2RlIix1ZzoidXNlcl9pZF91cGRhdGVkIn19O3ZhciBKPXtVOntrcDoxLG1wOjIsRW46Myxubjo0LHFsOjUscmw6NixFcTo3LG5wOjgsRHE6OSxqcDoxMCxocDoxMSx4bjoxMix2bjoxMyxOazoxNCxVbzoxNSxXbzoxNixobjoxNyxzbDoxOCxmbjoxOSxscDoyMCxQcToyMSxhcDoyMixWbzoyMyxYbzoyNCxubDoyNSxMazoyNixlcjoyNyxKbToyOCxVbToyOSxUbTozMCxTbTozMSxNbTozMixLbTozMyxMbTozNCxHbTozNSxGbTozNixIbTozNyxJbTozOCxCcTozOSxDcTo0MCxVcTo0MX19O0ouVVtKLlUua3BdPSJDUkVBVEVfRVZFTlRfU09VUkNFIjtKLlVbSi5VLm1wXT0iRURJVF9FVkVOVCI7Si5VW0ouVS5Fbl09IlRSQUZGSUNfVFlQRSI7Si5VW0ouVS5ubl09IlJFRkVSUkFMX0VYQ0xVU0lPTiI7Si5VW0ouVS5xbF09IkVDT01NRVJDRV9GUk9NX0dUTV9UQUciO0ouVVtKLlUucmxdPSJFQ09NTUVSQ0VfRlJPTV9HVE1fVUFfU0NIRU1BIjtKLlVbSi5VLkVxXT0iR0FfU0VORCI7Si5VW0ouVS5ucF09IkVNX0ZPUk0iOwpKLlVbSi5VLkRxXT0iR0FfR0FNX0xJTksiO0ouVVtKLlUuanBdPSJDUkVBVEVfRVZFTlRfQVVUT19QQUdFX1BBVEgiO0ouVVtKLlUuaHBdPSJDUkVBVEVEX0VWRU5UIjtKLlVbSi5VLnhuXT0iU0lERUxPQURFRCI7Si5VW0ouVS52bl09IlNHVE1fTEVHQUNZX0NPTkZJR1VSQVRJT04iO0ouVVtKLlUuTmtdPSJDQ0RfRU1fRVZFTlQiO0ouVVtKLlUuVW9dPSJBVVRPX1JFREFDVF9FTUFJTCI7Si5VW0ouVS5Xb109IkFVVE9fUkVEQUNUX1FVRVJZX1BBUkFNIjtKLlVbSi5VLmhuXT0iTVVMVElQTEVfUEFHRVZJRVdfRlJPTV9DT05GSUciO0ouVVtKLlUuc2xdPSJFTV9FVkVOVF9TRU5UX0JFRk9SRV9DT05GSUciO0ouVVtKLlUuZm5dPSJMT0FERURfVklBX0NTVF9PUl9TSURFTE9BRElORyI7Si5VW0ouVS5scF09IkRFQ09ERURfUEFSQU1fTUFUQ0giO0ouVVtKLlUuUHFdPSJOT05fREVDT0RFRF9QQVJBTV9NQVRDSCI7Si5VW0ouVS5hcF09IkNDRF9FVkVOVF9TR1RNIjsKSi5VW0ouVS5Wb109IkFVVE9fUkVEQUNUX0VNQUlMX1NHVE0iO0ouVVtKLlUuWG9dPSJBVVRPX1JFREFDVF9RVUVSWV9QQVJBTV9TR1RNIjtKLlVbSi5VLm5sXT0iREFJTFlfTElNSVRfUkVBQ0hFRCI7Si5VW0ouVS5Ma109IkJVUlNUX0xJTUlUX1JFQUNIRUQiO0ouVVtKLlUuZXJdPSJTSEFSRURfVVNFUl9JRF9TRVRfQUZURVJfUkVRVUVTVCI7Si5VW0ouVS5KbV09IkdBNF9NVUxUSVBMRV9TRVNTSU9OX0NPT0tJRVMiO0ouVVtKLlUuVW1dPSJJTlZBTElEX0dBNF9TRVNTSU9OX0NPVU5UIjtKLlVbSi5VLlRtXT0iSU5WQUxJRF9HQTRfTEFTVF9FVkVOVF9USU1FU1RBTVAiO0ouVVtKLlUuU21dPSJJTlZBTElEX0dBNF9KT0lOX1RJTUVSIjtKLlVbSi5VLk1tXT0iR0E0X1NUQUxFX1NFU1NJT05fQ09PS0lFX1NFTEVDVEVEIjtKLlVbSi5VLkttXT0iR0E0X1NFU1NJT05fQ09PS0lFX0dTMV9SRUFEIjtKLlVbSi5VLkxtXT0iR0E0X1NFU1NJT05fQ09PS0lFX0dTMl9SRUFEIjsKSi5VW0ouVS5HbV09IkdBNF9ETF9QQVJBTV9SRUNPVkVSWV9BVkFJTEFCTEUiO0ouVVtKLlUuRm1dPSJHQTRfRExfUEFSQU1fUkVDT1ZFUllfQVBQTElFRCI7Si5VW0ouVS5IbV09IkdBNF9HT09HTEVfTUVBU1VSRU1FTlRfQUxMT1dFRCI7Si5VW0ouVS5JbV09IkdBNF9HT09HTEVfU0lHTkFMU19FTkFCTEVEIjtKLlVbSi5VLkJxXT0iR0E0X0ZBTExCQUNLX1JFUVVFU1QiO0ouVVtKLlUuQ3FdPSJHQV9BRFNfTElOS19CRUZPUkVfQ09OVkVSU0lPTl9NQVJLSU5HIjtKLlVbSi5VLlVxXT0iUExBVElOVU1fRUxJR0lCTEUiO3ZhciB4Zz17fSx5Zz0oeGcudWFhPSEwLHhnLnVhYj0hMCx4Zy51YWZ2bD0hMCx4Zy51YW1iPSEwLHhnLnVhbT0hMCx4Zy51YXA9ITAseGcudWFwdj0hMCx4Zy51YXc9ITAseGcpOwp2YXIgRWc9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YSxlPWJbY107aWYoIUNnLmV4ZWMoZSkpdGhyb3cgRXJyb3IoIkludmFsaWQga2V5IHdpbGRjYXJkIik7dmFyIGY9ZS5pbmRleE9mKCIuKiIpLGc9ZiE9PS0xJiZmPT09ZS5sZW5ndGgtMixoPWc/ZS5zbGljZSgwLGUubGVuZ3RoLTIpOmUsbDthOmlmKGQubGVuZ3RoPT09MClsPSExO2Vsc2V7Zm9yKHZhciBuPWQuc3BsaXQoIi4iKSxwPTA7cDxuLmxlbmd0aDtwKyspaWYoIURnLmV4ZWMobltwXSkpe2w9ITE7YnJlYWsgYX1sPSEwfWlmKCFsfHxoLmxlbmd0aD5kLmxlbmd0aHx8IWcmJmQubGVuZ3RoIT09ZS5sZW5ndGg/MDpnP1NiKGQsaCkmJihkPT09aHx8ZC5jaGFyQXQoaC5sZW5ndGgpPT09Ii4iKTpkPT09aClyZXR1cm4hMH1yZXR1cm4hMX0sRGc9L15bYS16JF9dW1x3LSRdKiQvaSxDZz0vXig/OlthLXpfJF1bYS16LV8kMC05XSpcLikqW2Etel8kXVthLXotXyQwLTldKig/OlwuXCopPyQvaTsKdmFyIEZnPVsibWF0Y2hlcyIsIndlYmtpdE1hdGNoZXNTZWxlY3RvciIsIm1vek1hdGNoZXNTZWxlY3RvciIsIm1zTWF0Y2hlc1NlbGVjdG9yIiwib01hdGNoZXNTZWxlY3RvciJdO2Z1bmN0aW9uIEdnKGEsYil7aWYoIWEpcmV0dXJuITE7dHJ5e2Zvcih2YXIgYz0wO2M8RmcubGVuZ3RoO2MrKyl7dmFyIGQ9RmdbY107aWYoYVtkXSE9bnVsbClyZXR1cm4gYVtkXShiKX19Y2F0Y2goZSl7fXJldHVybiExfWZ1bmN0aW9uIEhnKGEsYil7dmFyIGM9U3RyaW5nKGEpLGQ9U3RyaW5nKGIpLGU9Yy5sZW5ndGgtZC5sZW5ndGg7cmV0dXJuIGU+PTAmJmMuaW5kZXhPZihkLGUpPT09ZX1mdW5jdGlvbiBJZyhhLGIpe3JldHVybiBTdHJpbmcoYSkuc3BsaXQoIiwiKS5pbmRleE9mKFN0cmluZyhiKSk+PTB9CmZ1bmN0aW9uIEpnKGEsYixjLGQpe3ZhciBlPWM/ImkiOnZvaWQgMDt0cnl7dmFyIGY9U3RyaW5nKGIpK1N0cmluZyhlKSxnPWQ9PW51bGw/dm9pZCAwOmQuZ2V0KGYpO2d8fChnPW5ldyBSZWdFeHAoYixlKSxkPT1udWxsfHxkLnNldChmLGcpKTtyZXR1cm4gZy50ZXN0KGEpfWNhdGNoKGgpe3JldHVybiExfX1mdW5jdGlvbiBLZyhhLGIpe3JldHVybiBTdHJpbmcoYSkuaW5kZXhPZihTdHJpbmcoYikpPj0wfWZ1bmN0aW9uIExnKGEsYil7cmV0dXJuIFN0cmluZyhhKT09PVN0cmluZyhiKX1mdW5jdGlvbiBNZyhhLGIpe3JldHVybiBOdW1iZXIoYSk+PU51bWJlcihiKX1mdW5jdGlvbiBOZyhhLGIpe3JldHVybiBOdW1iZXIoYSk8PU51bWJlcihiKX1mdW5jdGlvbiBPZyhhLGIpe3JldHVybiBOdW1iZXIoYSk+TnVtYmVyKGIpfWZ1bmN0aW9uIFBnKGEsYil7cmV0dXJuIE51bWJlcihhKTxOdW1iZXIoYil9CmZ1bmN0aW9uIFFnKGEsYil7cmV0dXJuIFNiKFN0cmluZyhhKSxTdHJpbmcoYikpfTtmdW5jdGlvbiBYZyhhKXt2YXIgYj1hLnNlYXJjaDtyZXR1cm4gYS5wcm90b2NvbCsiLy8iK2EuaG9zdG5hbWUrYS5wYXRobmFtZSsoYj9iKyImcmljaHNzdHNzZSI6Ij9yaWNoc3N0c3NlIil9O3ZhciBZZz1mdW5jdGlvbigpe3RoaXMuUj0iIn0sJGc9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYz1iLmZhbGxiYWNrX3VybCxkPWIuZmFsbGJhY2tfdXJsX21ldGhvZDtpZihjJiZkKXt2YXIgZT17fTtaZyhhLChlW2RdPVtjXSxlLm9wdGlvbnM9e30sZSkpfX19LGFoPWZ1bmN0aW9uKGEsYixjKXtpZihBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgZD1tKGEpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO3R5cGVvZiBmPT09InN0cmluZyImJmMoZixiKX19LFpnPWZ1bmN0aW9uKGEsYil7aWYoYilmb3IodmFyIGM9Q2QoYi5vcHRpb25zKT9iLm9wdGlvbnM6e30sZD1tKE9iamVjdC5rZXlzKGIpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZSxnPWJbZl07c3dpdGNoKGYpe2Nhc2UgInNlbmRfcGl4ZWwiOmFoKGcsYyxmdW5jdGlvbihoLGwpe3JldHVybiB2b2lkIGEuSyhoLGwpfSk7YnJlYWs7Y2FzZSAiZmV0Y2giOmFoKGcsCmMsZnVuY3Rpb24oaCxsKXtyZXR1cm4gdm9pZCBhLkgoaCxsKX0pfX19O3ZhciBiaD0vXihbYS16XVthLXowLTldKik6KCF8XD8pKFwqfHN0cmluZ3xib29sZWFufG51bWJlcnxGbnxQaXhpZU1hcHxMaXN0fE9wYXF1ZVZhbHVlKSQvaSxjaD17Rm46ImZ1bmN0aW9uIixQaXhpZU1hcDoiT2JqZWN0IixMaXN0OiJBcnJheSJ9OwpmdW5jdGlvbiBkaChhLGIpe2Zvcih2YXIgYz1bImlucHV0OiEqIl0sZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1iaC5leGVjKGNbZF0pO2lmKCFlKXRocm93IEVycm9yKCJJbnRlcm5hbCBFcnJvciBpbiAiK2EpO3ZhciBmPWVbMV0sZz1lWzJdPT09IiEiLGg9ZVszXSxsPWJbZF07aWYobD09bnVsbCl7aWYoZyl0aHJvdyBFcnJvcigiRXJyb3IgaW4gIithKyIuIFJlcXVpcmVkIGFyZ3VtZW50ICIrZisiIG5vdCBzdXBwbGllZC4iKTt9ZWxzZSBpZihoIT09IioiKXt2YXIgbj10eXBlb2YgbDtsIGluc3RhbmNlb2YgS2Q/bj0iRm4iOmwgaW5zdGFuY2VvZiBHZD9uPSJMaXN0IjpsIGluc3RhbmNlb2Yga2I/bj0iUGl4aWVNYXAiOmwgaW5zdGFuY2VvZiBTZD9uPSJQaXhpZVByb21pc2UiOmwgaW5zdGFuY2VvZiBQZCYmKG49Ik9wYXF1ZVZhbHVlIik7aWYobiE9PWgpdGhyb3cgRXJyb3IoIkVycm9yIGluICIrYSsiLiBBcmd1bWVudCAiK2YrIiBoYXMgdHlwZSAiKygoY2hbbl18fG4pKyIsIHdoaWNoIGRvZXMgbm90IG1hdGNoIHJlcXVpcmVkIHR5cGUgIikrCigoY2hbaF18fGgpKyIuIikpO319fWZ1bmN0aW9uIEsoYSxiLGMpe2Zvcih2YXIgZD1bXSxlPW0oYyksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7ZyBpbnN0YW5jZW9mIEtkP2QucHVzaCgiZnVuY3Rpb24iKTpnIGluc3RhbmNlb2YgR2Q/ZC5wdXNoKCJBcnJheSIpOmcgaW5zdGFuY2VvZiBrYj9kLnB1c2goIk9iamVjdCIpOmcgaW5zdGFuY2VvZiBTZD9kLnB1c2goIlByb21pc2UiKTpnIGluc3RhbmNlb2YgUGQ/ZC5wdXNoKCJPcGFxdWVWYWx1ZSIpOmQucHVzaCh0eXBlb2YgZyl9cmV0dXJuIEVycm9yKCJBcmd1bWVudCBlcnJvciBpbiAiK2ErIi4gRXhwZWN0ZWQgYXJndW1lbnQgdHlwZXMgWyIrKGIuam9pbigiLCIpKyJdLCBidXQgcmVjZWl2ZWQgWyIpKyhkLmpvaW4oIiwiKSsiXS4iKSl9ZnVuY3Rpb24gZWgoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBrYn1mdW5jdGlvbiBmaChhKXtyZXR1cm4gZWgoYSl8fGE9PT1udWxsfHxnaChhKX0KZnVuY3Rpb24gaGgoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBLZH1mdW5jdGlvbiBpaChhKXtyZXR1cm4gaGgoYSl8fGE9PT1udWxsfHxnaChhKX1mdW5jdGlvbiBqaChhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIEdkfWZ1bmN0aW9uIGtoKGEpe3JldHVybiBhIGluc3RhbmNlb2YgUGR9ZnVuY3Rpb24gbGgoYSl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyJ9ZnVuY3Rpb24gbWgoYSl7cmV0dXJuIGxoKGEpfHxhPT09bnVsbHx8Z2goYSl9ZnVuY3Rpb24gbmgoYSl7cmV0dXJuIHR5cGVvZiBhPT09ImJvb2xlYW4ifWZ1bmN0aW9uIG9oKGEpe3JldHVybiBuaChhKXx8Z2goYSl9ZnVuY3Rpb24gcGgoYSl7cmV0dXJuIG5oKGEpfHxhPT09bnVsbHx8Z2goYSl9ZnVuY3Rpb24gcWgoYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciJ9ZnVuY3Rpb24gZ2goYSl7cmV0dXJuIGE9PT12b2lkIDB9O2Z1bmN0aW9uIHJoKGEpe3JldHVybiIiK2F9CmZ1bmN0aW9uIHNoKGEsYil7dmFyIGM9W107cmV0dXJuIGN9O2Z1bmN0aW9uIHRoKGEsYil7dmFyIGM9bmV3IEtkKGEsZnVuY3Rpb24oKXtmb3IodmFyIGQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApLGU9MDtlPGQubGVuZ3RoO2UrKylkW2VdPXRoaXMuZXZhbHVhdGUoZFtlXSk7dHJ5e3JldHVybiBiLmFwcGx5KHRoaXMsZCl9Y2F0Y2goZyl7dGhyb3cgY2IoZyk7fX0pO2MuWmEoKTtyZXR1cm4gY30KZnVuY3Rpb24gdWgoYSxiKXt2YXIgYz1uZXcga2IsZDtmb3IoZCBpbiBiKWlmKGIuaGFzT3duUHJvcGVydHkoZCkpe3ZhciBlPWJbZF07eWIoZSk/Yy5zZXQoZCx0aChhKyJfIitkLGUpKTpDZChlKT9jLnNldChkLHVoKGErIl8iK2QsZSkpOihBYihlKXx8emIoZSl8fHR5cGVvZiBlPT09ImJvb2xlYW4iKSYmYy5zZXQoZCxlKX1jLlphKCk7cmV0dXJuIGN9O2Z1bmN0aW9uIHdoKGEsYil7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO2lmKCFtaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwidW5kZWZpbmVkIl0sYXJndW1lbnRzKTt2YXIgYz17fSxkPW5ldyBrYjtyZXR1cm4gZD11aCgiQXNzZXJ0QXBpU3ViamVjdCIsCmMpfTtmdW5jdGlvbiB4aChhLGIpe2lmKCFtaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwidW5kZWZpbmVkIl0sYXJndW1lbnRzKTtpZihhIGluc3RhbmNlb2YgU2QpdGhyb3cgRXJyb3IoIkFyZ3VtZW50IGFjdHVhbCBjYW5ub3QgaGF2ZSB0eXBlIFByb21pc2UuIEFzc2VydGlvbnMgb24gYXN5bmNocm9ub3VzIGNvZGUgYXJlbid0IHN1cHBvcnRlZC4iKTt2YXIgYz17fSxkPW5ldyBrYjtyZXR1cm4gZD11aCgiQXNzZXJ0VGhhdFN1YmplY3QiLGMpfTtmdW5jdGlvbiB5aChhKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGI9T2EuYXBwbHkoMCxhcmd1bWVudHMpLGM9W10sZD10aGlzLlQsZT0wO2U8Yi5sZW5ndGg7KytlKWMucHVzaChUZChiW2VdLGQpKTtyZXR1cm4gVWQoYS5hcHBseShudWxsLGMpKX19ZnVuY3Rpb24gemgoKXtmb3IodmFyIGE9TWF0aCxiPUFoLGM9e30sZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdO2EuaGFzT3duUHJvcGVydHkoZSkmJihjW2VdPXloKGFbZV0uYmluZChhKSkpfXJldHVybiBjfTtmdW5jdGlvbiBCaChhKXtyZXR1cm4gYSE9bnVsbCYmU2IoYSwiX19jdnRfIil9O2Z1bmN0aW9uIENoKGEpe3ZhciBiO3JldHVybiBifTtmdW5jdGlvbiBEaChhKXt2YXIgYjtyZXR1cm4gYn07ZnVuY3Rpb24gRWgoYSl7dHJ5e3JldHVybiBlbmNvZGVVUkkoYSl9Y2F0Y2goYil7fX07ZnVuY3Rpb24gRmgoYSl7dHJ5e3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGEpKX1jYXRjaChiKXt9fTtmdW5jdGlvbiBHaChhLGIpe3ZhciBjPSExO3ZhciBkPUpTT04ucGFyc2UoYSk7aWYoIWQpdGhyb3cgRXJyb3IoIkludmFsaWQgYm9vbGVhbiBleHByZXNzaW9uIHN0cmluZyB3YXMgZ2l2ZW4uIik7Yz1IaChkLGIpO3JldHVybiBjfQp2YXIgSWg9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7aWYoYT09PXZvaWQgMClyZXR1cm47YT1hW2JbY11dfXJldHVybiBhfSxKaD1mdW5jdGlvbihhLGIpe3ZhciBjPWIucHJlSGl0O2lmKGMpe3ZhciBkPWFbMF07c3dpdGNoKGQpe2Nhc2UgImhpdERhdGEiOnJldHVybiBhLmxlbmd0aDwyP3ZvaWQgMDpJaChjLmdldEhpdERhdGEoYVsxXSksYS5zbGljZSgyKSk7Y2FzZSAibWV0YWRhdGEiOnJldHVybiBhLmxlbmd0aDwyP3ZvaWQgMDpJaChjLmdldE1ldGFkYXRhKGFbMV0pLGEuc2xpY2UoMikpO2Nhc2UgImV2ZW50TmFtZSI6cmV0dXJuIGMuZ2V0RXZlbnROYW1lKCk7Y2FzZSAiZGVzdGluYXRpb25JZCI6cmV0dXJuIGMuZ2V0RGVzdGluYXRpb25JZCgpO2RlZmF1bHQ6dGhyb3cgRXJyb3IoZCsiIGlzIG5vdCBhIHZhbGlkIGZpZWxkIHRoYXQgY2FuIGJlIGFjY2Vzc2VkXG4gICAgICAgICAgICAgICAgICAgICAgZnJvbSBQcmVIaXQgZGF0YS4iKTt9fX0sCktoPWZ1bmN0aW9uKGEsYil7aWYoYSl7aWYoYS5jb250ZXh0VmFsdWUhPT12b2lkIDApe3ZhciBjO2E6e3ZhciBkPWEuY29udGV4dFZhbHVlLGU9ZC5rZXlQYXJ0cztpZihlJiZlLmxlbmd0aCE9PTApe3ZhciBmPWQubmFtZXNwYWNlVHlwZTtzd2l0Y2goZil7Y2FzZSAxOmM9SmgoZSxiKTticmVhayBhO2Nhc2UgMjp2YXIgZz1iLm1hY3JvO2M9Zz9nW2VbMF1dOnZvaWQgMDticmVhayBhO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIlVua25vd24gTmFtZXNwYWNlIFR5cGUgdXNlZDogIitmKTt9fWM9dm9pZCAwfXJldHVybiBjfWlmKGEuYm9vbGVhbkV4cHJlc3Npb25WYWx1ZSE9PXZvaWQgMClyZXR1cm4gSGgoYS5ib29sZWFuRXhwcmVzc2lvblZhbHVlLGIpO2lmKGEuYm9vbGVhblZhbHVlIT09dm9pZCAwKXJldHVybiEhYS5ib29sZWFuVmFsdWU7aWYoYS5zdHJpbmdWYWx1ZSE9PXZvaWQgMClyZXR1cm4gU3RyaW5nKGEuc3RyaW5nVmFsdWUpO2lmKGEuaW50ZWdlclZhbHVlIT09dm9pZCAwKXJldHVybiBOdW1iZXIoYS5pbnRlZ2VyVmFsdWUpOwppZihhLmRvdWJsZVZhbHVlIT09dm9pZCAwKXJldHVybiBOdW1iZXIoYS5kb3VibGVWYWx1ZSk7dGhyb3cgRXJyb3IoIlVua25vd24gZmllbGQgdXNlZCBmb3IgdmFyaWFibGUgb2YgdHlwZSBFeHByZXNzaW9uVmFsdWU6IithKTt9fSxIaD1mdW5jdGlvbihhLGIpe3ZhciBjPWEuYXJncztpZighQXJyYXkuaXNBcnJheShjKXx8Yy5sZW5ndGg9PT0wKXRocm93IEVycm9yKCdJbnZhbGlkIGJvb2xlYW4gZXhwcmVzc2lvbiBmb3JtYXQuIEV4cGVjdGVkICJhcmdzIjonK2MrIiBwcm9wZXJ0eSB0b1xuICAgICAgICAgYmUgbm9uLWVtcHR5IGFycmF5LiIpO3ZhciBkPWZ1bmN0aW9uKGcpe3JldHVybiBLaChnLGIpfTtzd2l0Y2goYS50eXBlKXtjYXNlIDE6Zm9yKHZhciBlPTA7ZTxjLmxlbmd0aDtlKyspaWYoZChjW2VdKSlyZXR1cm4hMDtyZXR1cm4hMTtjYXNlIDI6Zm9yKHZhciBmPTA7ZjxjLmxlbmd0aDtmKyspaWYoIWQoY1tmXSkpcmV0dXJuITE7cmV0dXJuIGMubGVuZ3RoPjA7Y2FzZSAzOnJldHVybiFkKGNbMF0pOwpjYXNlIDQ6cmV0dXJuIEpnKGQoY1swXSksZChjWzFdKSwhMSxiLnJlZ2V4Q2FjaGUpO2Nhc2UgNTpyZXR1cm4gTGcoZChjWzBdKSxkKGNbMV0pKTtjYXNlIDY6cmV0dXJuIFFnKGQoY1swXSksZChjWzFdKSk7Y2FzZSA3OnJldHVybiBIZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgODpyZXR1cm4gS2coZChjWzBdKSxkKGNbMV0pKTtjYXNlIDk6cmV0dXJuIFBnKGQoY1swXSksZChjWzFdKSk7Y2FzZSAxMDpyZXR1cm4gTmcoZChjWzBdKSxkKGNbMV0pKTtjYXNlIDExOnJldHVybiBPZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgMTI6cmV0dXJuIE1nKGQoY1swXSksZChjWzFdKSk7Y2FzZSAxMzpyZXR1cm4gSWcoZChjWzBdKSxTdHJpbmcoZChjWzFdKSkpO2RlZmF1bHQ6dGhyb3cgRXJyb3IoJ0ludmFsaWQgYm9vbGVhbiBleHByZXNzaW9uIGZvcm1hdC4gRXhwZWN0ZWQgInR5cGUiIHByb3BlcnR5IHRvYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIHdoaWNoIGlzIGxlc3MgdGhhbiAxNC4nKTt9fTsKZnVuY3Rpb24gTGgoYSl7aWYoIW1oKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt9O2Z1bmN0aW9uIE1oKGEpe3ZhciBiPVRkKGEpO3JldHVybiBuZyhiPyIiK2I6IiIpfTtmdW5jdGlvbiBOaChhLGIpe2lmKCFxaChhKXx8IXFoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJudW1iZXIiLCJudW1iZXIiXSxhcmd1bWVudHMpO3JldHVybiBEYihhLGIpfTtmdW5jdGlvbiBPaCgpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfTtmdW5jdGlvbiBQaChhKXtpZihhPT09bnVsbClyZXR1cm4ibnVsbCI7aWYoYSBpbnN0YW5jZW9mIEdkKXJldHVybiJhcnJheSI7aWYoYSBpbnN0YW5jZW9mIEtkKXJldHVybiJmdW5jdGlvbiI7aWYoYSBpbnN0YW5jZW9mIFBkKXt2YXIgYj1hLmdldFZhbHVlKCk7aWYoKGI9PW51bGw/dm9pZCAwOmIuY29uc3RydWN0b3IpPT09dm9pZCAwfHxiLmNvbnN0cnVjdG9yLm5hbWU9PT12b2lkIDApe3ZhciBjPVN0cmluZyhiKTtyZXR1cm4gYy5zdWJzdHJpbmcoOCxjLmxlbmd0aC0xKX1yZXR1cm4gU3RyaW5nKGIuY29uc3RydWN0b3IubmFtZSl9cmV0dXJuIHR5cGVvZiBhfTtmdW5jdGlvbiBRaChhKXtmdW5jdGlvbiBiKGMpe3JldHVybiBmdW5jdGlvbihkKXt0cnl7cmV0dXJuIGMoZCl9Y2F0Y2goZSl7KGxnfHxtZy5QbykmJmEuY2FsbCh0aGlzLGUubWVzc2FnZSl9fX1yZXR1cm57cGFyc2U6YihmdW5jdGlvbihjKXtyZXR1cm4gVWQoSlNPTi5wYXJzZShjKSl9KSxzdHJpbmdpZnk6YihmdW5jdGlvbihjKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoVGQoYykpfSkscHVibGljTmFtZToiSlNPTiJ9fTtmdW5jdGlvbiBSaChhKXtyZXR1cm4gSWIoVGQoYSx0aGlzLlQpKX07ZnVuY3Rpb24gU2goYSl7cmV0dXJuIE51bWJlcihUZChhLHRoaXMuVCkpfTtmdW5jdGlvbiBUaChhKXtyZXR1cm4gYT09PW51bGw/Im51bGwiOmE9PT12b2lkIDA/InVuZGVmaW5lZCI6YS50b1N0cmluZygpfTtmdW5jdGlvbiBVaChhLGIsYyl7dmFyIGQ9bnVsbCxlPSExO3JldHVybiBlP2Q6bnVsbH07dmFyIEFoPSJmbG9vciBjZWlsIHJvdW5kIG1heCBtaW4gYWJzIHBvdyBzcXJ0Ii5zcGxpdCgiICIpO2Z1bmN0aW9uIFZoKCl7dmFyIGE9e307cmV0dXJue1dyOmZ1bmN0aW9uKGIpe3JldHVybiBhLmhhc093blByb3BlcnR5KGIpP2FbYl06dm9pZCAwfSxLbzpmdW5jdGlvbihiLGMpe2FbYl09Y30scmVzZXQ6ZnVuY3Rpb24oKXthPXt9fX19ZnVuY3Rpb24gV2goYSxiKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gS2QucHJvdG90eXBlLmludm9rZS5hcHBseShhLFtiXS5jb25jYXQodyhPYS5hcHBseSgwLGFyZ3VtZW50cykpKSl9fQpmdW5jdGlvbiBYaChhLGIpe2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiYW55Il0sYXJndW1lbnRzKTt9CmZ1bmN0aW9uIFloKGEsYil7aWYoIWxoKGEpfHwhZWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIlBpeGllTWFwIl0sYXJndW1lbnRzKTt9O3ZhciBaaD17fTt2YXIgJGg9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IGtiO2lmKGEgaW5zdGFuY2VvZiBHZClmb3IodmFyIGM9YS5GYSgpLGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9Y1tkXTthLmhhcyhlKSYmYi5zZXQoZSxhLmdldChlKSl9ZWxzZSBpZihhIGluc3RhbmNlb2YgS2QpZm9yKHZhciBmPWEuRmEoKSxnPTA7ZzxmLmxlbmd0aDtnKyspe3ZhciBoPWZbZ107Yi5zZXQoaCxhLmdldChoKSl9ZWxzZSBmb3IodmFyIGw9MDtsPGEubGVuZ3RoO2wrKyliLnNldChsLGFbbF0pO3JldHVybiBifTsKWmgua2V5cz1mdW5jdGlvbihhKXtkaCh0aGlzLmdldE5hbWUoKSxhcmd1bWVudHMpO2lmKGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIEtkfHx0eXBlb2YgYT09PSJzdHJpbmciKWE9JGgoYSk7aWYoYSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2QpcmV0dXJuIG5ldyBHZChhLkZhKCkpO3JldHVybiBuZXcgR2R9OwpaaC52YWx1ZXM9ZnVuY3Rpb24oYSl7ZGgodGhpcy5nZXROYW1lKCksYXJndW1lbnRzKTtpZihhIGluc3RhbmNlb2YgR2R8fGEgaW5zdGFuY2VvZiBLZHx8dHlwZW9mIGE9PT0ic3RyaW5nIilhPSRoKGEpO2lmKGEgaW5zdGFuY2VvZiBrYnx8YSBpbnN0YW5jZW9mIFNkKXJldHVybiBuZXcgR2QoYS5oYygpKTtyZXR1cm4gbmV3IEdkfTsKWmguZW50cmllcz1mdW5jdGlvbihhKXtkaCh0aGlzLmdldE5hbWUoKSxhcmd1bWVudHMpO2lmKGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIEtkfHx0eXBlb2YgYT09PSJzdHJpbmciKWE9JGgoYSk7aWYoYSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2QpcmV0dXJuIG5ldyBHZChhLmZjKCkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBuZXcgR2QoYil9KSk7cmV0dXJuIG5ldyBHZH07ClpoLmZyZWV6ZT1mdW5jdGlvbihhKXsoYSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2R8fGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIEtkKSYmYS5aYSgpO3JldHVybiBhfTtaaC5kZWxldGU9ZnVuY3Rpb24oYSxiKXtpZihhIGluc3RhbmNlb2Yga2ImJiFhLkhiKCkpcmV0dXJuIGEucmVtb3ZlKGIpLCEwO3JldHVybiExfTtmdW5jdGlvbiBMKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpLGQ9YS5ULnhiKCk7aWYoIWQpdGhyb3cgRXJyb3IoIk1pc3NpbmcgcHJvZ3JhbSBzdGF0ZS4iKTtpZihkLml0KXt0cnl7ZC5Sbi5hcHBseShudWxsLFtiXS5jb25jYXQodyhjKSkpfWNhdGNoKGUpe3Rocm93IHNiKCJUQUdHSU5HIiwyMSksZTt9cmV0dXJufWQuUm4uYXBwbHkobnVsbCxbYl0uY29uY2F0KHcoYykpKX07dmFyIGFpPWZ1bmN0aW9uKCl7dGhpcy5LPXt9O3RoaXMuSD17fTt0aGlzLk49ITA7fTthaS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jb250YWlucyhhKT90aGlzLktbYV06dm9pZCAwO3JldHVybiBjfTthaS5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuSy5oYXNPd25Qcm9wZXJ0eShhKX07CmFpLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxiLGMpe2lmKHRoaXMuY29udGFpbnMoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYWRkIGEgZnVuY3Rpb24gd2hpY2ggYWxyZWFkeSBleGlzdHM6ICIrYSsiLiIpO2lmKHRoaXMuSC5oYXNPd25Qcm9wZXJ0eShhKSl0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhZGQgYW4gQVBJIHdpdGggYW4gZXhpc3RpbmcgcHJpdmF0ZSBBUEkgbmFtZTogIithKyIuIik7dGhpcy5LW2FdPWM/dm9pZCAwOnliKGIpP3RoKGEsYik6dWgoYSxiKX07ZnVuY3Rpb24gYmkoYSxiKXt2YXIgYz12b2lkIDA7cmV0dXJuIGN9O2Z1bmN0aW9uIGNpKCl7dmFyIGE9e307CnJldHVybiBhfTt2YXIgZGk9e30sZWk9KGRpW0YuRC5zYV09ImdjdSIsZGlbRi5ELmVoXT0iZXB0IixkaVtGLkQuU2JdPSJnY2xnYiIsZGlbRi5ELmxiXT0iZ2NsYXciLGRpW0YuRC56bF09ImdjbGlkX2xlbiIsZGlbRi5ELkJlXT0iZ2NsZ3MiLGRpW0YuRC5DZV09ImdjbGxwIixkaVtGLkQuRGVdPSJnY2xzdCIsZGlbRi5ELkVkXT0iYXVpZCIsZGlbRi5ELkJsXT0iYWUiLGRpW0YuRC5DZl09ImRzY250IixkaVtGLkQuRGZdPSJmY250ciIsZGlbRi5ELkVmXT0iZmxuZyIsZGlbRi5ELkZmXT0ibWlkIixkaVtGLkQud2ldPSJidHR5cGUiLGRpW0YuRC5LYl09ImdhY2lkIixkaVtGLkQuR2RdPSJsYWJlbCIsZGlbRi5ELkZlXT0iY2FwaSIsZGlbRi5ELmpoXT0icHNjZGwiLGRpW0YuRC5lYl09ImN1cnJlbmN5X2NvZGUiLGRpW0YuRC5HZV09InZkbHR2IixkaVtGLkQua2hdPSJjbG9jdCIsZGlbRi5ELkVsXT0iX2RiZyIsZGlbRi5ELkllXT0ib2VkZWxkIixkaVtGLkQuVmNdPSJlZGlkIixkaVtGLkQuTWRdPSJldm5pZCIsCmRpW0YuRC5FaV09ImV2amlkIixkaVtGLkQuTmRdPSJleGNpZCIsZGlbRi5ELnJoXT0iZ2FjIixkaVtGLkQuSmVdPSJnYWNnYiIsZGlbRi5ELk1sXT0iZ2FjbWNvdiIsZGlbRi5ELktlXT0iZ2RwciIsZGlbRi5ELlhjXT0iZ2RpZCIsZGlbRi5ELkxlXT0iX25nIixkaVtGLkQuY3FdPSJfb25vIixkaVtGLkQudGhdPSJncHBfc2lkIixkaVtGLkQudWhdPSJncHAiLGRpW0YuRC5QbF09ImdzYWV4cCIsZGlbRi5ELlZmXT0iX3R1IixkaVtGLkQuTWVdPSJmcm0iLGRpW0YuRC5LaV09Imd0bV91cCIsZGlbRi5ELlBkXT0ibHBzIixkaVtGLkQuTGldPSJkaWQiLGRpW0YuRC5RZF09ImZjbnRyIixkaVtGLkQuUmRdPSJmbG5nIixkaVtGLkQuU2RdPSJtaWQiLGRpW0YuRC5OZV09dm9pZCAwLGRpW0YuRC5NYl09InRpYmEiLGRpW0YuRC5XYl09InJkcCIsZGlbRi5ELnhjXT0iZWNzaWQiLGRpW0YuRC5aZl09ImdhX3VpZCIsZGlbRi5ELlVkXT0iZGVsb3BjIixkaVtGLkQuT2VdPSJnZHByX2NvbnNlbnQiLApkaVtGLkQuUGFdPSJvaWQiLGRpW0YuRC5kbV09Im9pZHNyYyIsZGlbRi5ELmZtXT0idXB0Z3MiLGRpW0YuRC5jZ109InVhYSIsZGlbRi5ELmRnXT0idWFiIixkaVtGLkQuZWddPSJ1YWZ2bCIsZGlbRi5ELmZnXT0idWFtYiIsZGlbRi5ELmdnXT0idWFtIixkaVtGLkQuaGddPSJ1YXAiLGRpW0YuRC5pZ109InVhcHYiLGRpW0YuRC5qZ109InVhdyIsZGlbRi5ELmdtXT0iZWNfbGF0IixkaVtGLkQuaG1dPSJlY19tZXRhIixkaVtGLkQuaW1dPSJlY19tIixkaVtGLkQuam1dPSJlY19zZWwiLGRpW0YuRC5rbV09ImVjX3MiLGRpW0YuRC5CY109ImVjX21vZGUiLGRpW0YuRC5mYl09InVzZXJJZCIsZGlbRi5ELmtnXT0idXNfcHJpdmFjeSIsZGlbRi5ELlFhXT0idmFsdWUiLGRpW0YuRC5xbV09Im1jb3YiLGRpW0YuRC5XaV09ImhuIixkaVtGLkQuVm1dPSJndG1fZWUiLGRpW0YuRC5ZaV09InVpcCIsZGlbRi5ELkpoXT0ibXQiLGRpW0YuRC5kZV09Im5wYSIsZGlbRi5ELllxXT0ic2dfdWMiLGRpW0YuRC55aV09Cm51bGwsZGlbRi5ELmJkXT1udWxsLGRpW0YuRC50Yl09bnVsbCxkaVtGLkQuSGFdPW51bGwsZGlbRi5ELnphXT1udWxsLGRpW0YuRC5VYV09bnVsbCxkaVtGLkQuUGVdPW51bGwsZGlbRi5ELmVkXT1udWxsLGRpW0YuRC5zaF09bnVsbCxkaVtGLkQuQmRdPW51bGwsZGlbRi5ELkNkXT1udWxsLGRpW0YuRC5maF09bnVsbCxkaVtGLkQuZ2hdPW51bGwsZGlbRi5ELlRhXT1udWxsLGRpW0YuRC5XY109bnVsbCxkaSk7ZnVuY3Rpb24gZmkoYSxiKXtpZihhKXt2YXIgYz1hLnNwbGl0KCJ4Iik7Yy5sZW5ndGg9PT0yJiYoZ2koYiwidV93IixjWzBdKSxnaShiLCJ1X2giLGNbMV0pKX19ZnVuY3Rpb24gaGkoYSl7dmFyIGI9aWk7Yj1iPT09dm9pZCAwP2ppOmI7cmV0dXJuIGtpKGxpKGEsYikpfWZ1bmN0aW9uIGtpKGEpe3JldHVybihhfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiEhYn0pLm1hcChmdW5jdGlvbihiKXtyZXR1cm4iKCIrW21pKGIudmFsdWUpLG1pKGIucXVhbnRpdHkpLG1pKGIuaXRlbV9pZCksbWkoYi5zdGFydF9kYXRlKSxtaShiLmVuZF9kYXRlKV0uam9pbigiKiIpKyIpIn0pLmpvaW4oIiIpfQpmdW5jdGlvbiBsaShhLGIpe3JldHVybihhfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiEhY30pLm1hcChmdW5jdGlvbihjKXtyZXR1cm57aXRlbV9pZDpiKGMpLHF1YW50aXR5OmMucXVhbnRpdHksdmFsdWU6Yy5wcmljZSxzdGFydF9kYXRlOmMuc3RhcnRfZGF0ZSxlbmRfZGF0ZTpjLmVuZF9kYXRlfX0pfWZ1bmN0aW9uIGppKGEpe3JldHVyblthLml0ZW1faWQsYS5pZCxhLml0ZW1fbmFtZV0uZmluZChmdW5jdGlvbihiKXtyZXR1cm4gYiE9bnVsbH0pfWZ1bmN0aW9uIG5pKGEpe2lmKGEmJmEubGVuZ3RoKXJldHVybiBhLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYiYmYi5lc3RpbWF0ZWRfZGVsaXZlcnlfZGF0ZT9iLmVzdGltYXRlZF9kZWxpdmVyeV9kYXRlOiIifSkuam9pbigiLCIpfWZ1bmN0aW9uIGdpKGEsYixjKXtjPT09dm9pZCAwfHxjPT09bnVsbHx8Yz09PSIiJiYheWdbYl18fChhW2JdPWMpfQpmdW5jdGlvbiBtaShhKXtyZXR1cm4gdHlwZW9mIGEhPT0ibnVtYmVyIiYmdHlwZW9mIGEhPT0ic3RyaW5nIj8iIjphLnRvU3RyaW5nKCl9O2Z1bmN0aW9uIG9pKCl7dGhpcy5ibG9ja1NpemU9LTF9O2Z1bmN0aW9uIHBpKGEsYil7dGhpcy5ibG9ja1NpemU9LTE7dGhpcy5ibG9ja1NpemU9NjQ7dGhpcy5OPVJhLlVpbnQ4QXJyYXk/bmV3IFVpbnQ4QXJyYXkodGhpcy5ibG9ja1NpemUpOkFycmF5KHRoaXMuYmxvY2tTaXplKTt0aGlzLlI9dGhpcy5LPTA7dGhpcy5IPVtdO3RoaXMuZmE9YTt0aGlzLlo9Yjt0aGlzLmphPVJhLkludDMyQXJyYXk/bmV3IEludDMyQXJyYXkoNjQpOkFycmF5KDY0KTtxaT09PXZvaWQgMCYmKFJhLkludDMyQXJyYXk/cWk9bmV3IEludDMyQXJyYXkocmkpOnFpPXJpKTt0aGlzLnJlc2V0KCl9U2EocGksb2kpO2Zvcih2YXIgc2k9W10sdGk9MDt0aTw2Mzt0aSsrKXNpW3RpXT0wO3ZhciB1aT1bXS5jb25jYXQoMTI4LHNpKTsKcGkucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5SPXRoaXMuSz0wO3ZhciBhO2lmKFJhLkludDMyQXJyYXkpYT1uZXcgSW50MzJBcnJheSh0aGlzLlopO2Vsc2V7dmFyIGI9dGhpcy5aLGM9Yi5sZW5ndGg7aWYoYz4wKXtmb3IodmFyIGQ9QXJyYXkoYyksZT0wO2U8YztlKyspZFtlXT1iW2VdO2E9ZH1lbHNlIGE9W119dGhpcy5IPWF9Owp2YXIgdmk9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWEuTixjPWEuamEsZD0wLGU9MDtlPGIubGVuZ3RoOyljW2QrK109YltlXTw8MjR8YltlKzFdPDwxNnxiW2UrMl08PDh8YltlKzNdLGU9ZCo0O2Zvcih2YXIgZj0xNjtmPDY0O2YrKyl7dmFyIGc9Y1tmLTE1XXwwLGg9Y1tmLTJdfDA7Y1tmXT0oKGNbZi0xNl18MCkrKChnPj4+N3xnPDwyNSleKGc+Pj4xOHxnPDwxNCleZz4+PjMpfDApKygoY1tmLTddfDApKygoaD4+PjE3fGg8PDE1KV4oaD4+PjE5fGg8PDEzKV5oPj4+MTApfDApfDB9Zm9yKHZhciBsPWEuSFswXXwwLG49YS5IWzFdfDAscD1hLkhbMl18MCxxPWEuSFszXXwwLHI9YS5IWzRdfDAsdD1hLkhbNV18MCx1PWEuSFs2XXwwLHY9YS5IWzddfDAseD0wO3g8NjQ7eCsrKXt2YXIgeT0oKGw+Pj4yfGw8PDMwKV4obD4+PjEzfGw8PDE5KV4obD4+PjIyfGw8PDEwKSkrKGwmbl5sJnBebiZwKXwwLHo9KHYrKChyPj4+NnxyPDwyNileKHI+Pj4xMXxyPDwyMSleKHI+Pj4yNXxyPDw3KSl8CjApKygoKHImdF5+ciZ1KSsocWlbeF18MCl8MCkrKGNbeF18MCl8MCl8MDt2PXU7dT10O3Q9cjtyPXErenwwO3E9cDtwPW47bj1sO2w9eit5fDB9YS5IWzBdPWEuSFswXStsfDA7YS5IWzFdPWEuSFsxXStufDA7YS5IWzJdPWEuSFsyXStwfDA7YS5IWzNdPWEuSFszXStxfDA7YS5IWzRdPWEuSFs0XStyfDA7YS5IWzVdPWEuSFs1XSt0fDA7YS5IWzZdPWEuSFs2XSt1fDA7YS5IWzddPWEuSFs3XSt2fDB9OwpwaS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGEsYil7Yj09PXZvaWQgMCYmKGI9YS5sZW5ndGgpO3ZhciBjPTAsZD10aGlzLks7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilmb3IoO2M8YjspdGhpcy5OW2QrK109YS5jaGFyQ29kZUF0KGMrKyksZD09dGhpcy5ibG9ja1NpemUmJih2aSh0aGlzKSxkPTApO2Vsc2V7dmFyIGUsZj10eXBlb2YgYTtlPWYhPSJvYmplY3QiP2Y6YT9BcnJheS5pc0FycmF5KGEpPyJhcnJheSI6ZjoibnVsbCI7aWYoZT09ImFycmF5Inx8ZT09Im9iamVjdCImJnR5cGVvZiBhLmxlbmd0aD09Im51bWJlciIpZm9yKDtjPGI7KXt2YXIgZz1hW2MrK107aWYoISgibnVtYmVyIj09dHlwZW9mIGcmJjA8PWcmJjI1NT49ZyYmZz09KGd8MCkpKXRocm93IEVycm9yKCJtZXNzYWdlIG11c3QgYmUgYSBieXRlIGFycmF5Iik7dGhpcy5OW2QrK109ZztkPT10aGlzLmJsb2NrU2l6ZSYmKHZpKHRoaXMpLGQ9MCl9ZWxzZSB0aHJvdyBFcnJvcigibWVzc2FnZSBtdXN0IGJlIHN0cmluZyBvciBhcnJheSIpOwp9dGhpcy5LPWQ7dGhpcy5SKz1ifTtwaS5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKCl7dmFyIGE9W10sYj10aGlzLlIqODt0aGlzLks8NTY/dGhpcy51cGRhdGUodWksNTYtdGhpcy5LKTp0aGlzLnVwZGF0ZSh1aSx0aGlzLmJsb2NrU2l6ZS0odGhpcy5LLTU2KSk7Zm9yKHZhciBjPTYzO2M+PTU2O2MtLSl0aGlzLk5bY109YiYyNTUsYi89MjU2O3ZpKHRoaXMpO2Zvcih2YXIgZD0wLGU9MDtlPHRoaXMuZmE7ZSsrKWZvcih2YXIgZj0yNDtmPj0wO2YtPTgpYVtkKytdPXRoaXMuSFtlXT4+ZiYyNTU7cmV0dXJuIGF9Owp2YXIgcmk9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCwKNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdLHFpO2Z1bmN0aW9uIHdpKCl7cGkuY2FsbCh0aGlzLDgseGkpfVNhKHdpLHBpKTt2YXIgeGk9WzE3NzkwMzM3MDMsMzE0NDEzNDI3NywxMDEzOTA0MjQyLDI3NzM0ODA3NjIsMTM1OTg5MzExOSwyNjAwODIyOTI0LDUyODczNDYzNSwxNTQxNDU5MjI1XTt2YXIgeWk9L15bMC05QS1GYS1mXXs2NH0kLztmdW5jdGlvbiB6aShhKXt0cnl7cmV0dXJuKG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKGEpfWNhdGNoKGIpe3JldHVybiBaYihhKX19ZnVuY3Rpb24gQWkoYSl7dmFyIGI9QTtpZihhPT09IiJ8fGE9PT0iZTAiKXJldHVybiBQcm9taXNlLnJlc29sdmUoYSk7dmFyIGM7aWYoKGM9Yi5jcnlwdG8pPT1udWxsPzA6Yy5zdWJ0bGUpe2lmKHlpLnRlc3QoYSkpcmV0dXJuIFByb21pc2UucmVzb2x2ZShhKTt0cnl7dmFyIGQ9emkoYSk7cmV0dXJuIGIuY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLGQpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIEJpKGUsYil9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiJlMiJ9KX1jYXRjaChlKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCJlMiIpfX1lbHNlIHJldHVybiBQcm9taXNlLnJlc29sdmUoImUxIil9CmZ1bmN0aW9uIENpKGEpe3RyeXt2YXIgYj1uZXcgd2k7Yi51cGRhdGUoemkoYSkpO3JldHVybiBiLmRpZ2VzdCgpfWNhdGNoKGMpe3JldHVybiJlMiJ9fWZ1bmN0aW9uIERpKGEpe3ZhciBiPUE7aWYoYT09PSIifHxhPT09ImUwInx8eWkudGVzdChhKSlyZXR1cm4gYTt2YXIgYz1DaShhKTtpZihjPT09ImUyIilyZXR1cm4iZTIiO3RyeXtyZXR1cm4gQmkoYyxiKX1jYXRjaChkKXtyZXR1cm4iZTIifX1mdW5jdGlvbiBCaShhLGIpe3ZhciBjPUFycmF5LmZyb20obmV3IFVpbnQ4QXJyYXkoYSkpLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShkKX0pLmpvaW4oIiIpO3JldHVybiBiLmJ0b2EoYykucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89KyQvLCIiKX07ZnVuY3Rpb24gRWkoKXtmb3IodmFyIGE9ITEsYj0hMSxjPTA7YT09PWI7KWlmKGE9RGIoMCwxKT09PTAsYj1EYigwLDEpPT09MCxjKyssYz4zMClyZXR1cm47cmV0dXJuIGF9dmFyIEdpPXtzazpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIEZpLnNrKGEsYixjKX19LEhpPWZ1bmN0aW9uKCl7dGhpcy5zdHVkaWVzPXt9O3RoaXMuSD1FaX07CkhpLnByb3RvdHlwZS5zaz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5zdHVkaWVzW2JdO2lmKCEoKGM9PT12b2lkIDA/RGIoMCw5OTk5KTpjJTFFNCk8ZC5wcm9iYWJpbGl0eSooZC5jb250cm9sSWQyPzQ6MikqMUU0KSlyZXR1cm4gYTthOnt2YXIgZT1kLnN0dWR5SWQsZj1kLmV4cGVyaW1lbnRJZCxnPWQuY29udHJvbElkLGg9ZC5jb250cm9sSWQyO2lmKCEoKGEuZXhwfHx7fSlbZl18fChhLmV4cHx8e30pW2ddfHxoJiYoYS5leHB8fHt9KVtoXSkpe3ZhciBsPWMhPT12b2lkIDA/YyUyPT09MDp0aGlzLkgoKTtpZihsIT09dm9pZCAwKXt2YXIgbj1sPzA6MTtpZihoKXt2YXIgcD1jIT09dm9pZCAwPyhjPj4xKSUyPT09MDp0aGlzLkgoKTtpZihwPT09dm9pZCAwKWJyZWFrIGE7bnw9KHA/MDoxKTw8MX1uPT09MD9JaShhLGYsZSk6bj09PTE/SWkoYSxnLGUpOm49PT0yJiZJaShhLGgsZSl9fX1yZXR1cm4gYX07CnZhciBLaT1mdW5jdGlvbihhLGIpe3ZhciBjPUZpO3JldHVybiBjLnN0dWRpZXNbYl0/SmkoYyxiKXx8ISEoYS5leHB8fHt9KVtjLnN0dWRpZXNbYl0uZXhwZXJpbWVudElkXTohMX0sTGk9ZnVuY3Rpb24oYSxiKXt2YXIgYz1GaTtyZXR1cm4gYy5zdHVkaWVzW2JdJiZjLnN0dWRpZXNbYl0uY29udHJvbElkJiYhSmkoYyxiKT8hIShhLmV4cHx8e30pW2Muc3R1ZGllc1tiXS5jb250cm9sSWRdOiExfSxNaT1mdW5jdGlvbihhLGIpe3ZhciBjPUZpO3JldHVybiBjLnN0dWRpZXNbYl0mJmMuc3R1ZGllc1tiXS5jb250cm9sSWQyJiYhSmkoYyxiKT8hIShhLmV4cHx8e30pW2Muc3R1ZGllc1tiXS5jb250cm9sSWQyXTohMX0sTmk9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YS5leHB8fHt9LGQ9bShPYmplY3Qua2V5cyhjKS5tYXAoTnVtYmVyKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7aWYoY1tmXT09PWIpcmV0dXJuIGZ9fSxKaT1mdW5jdGlvbihhLApiKXtyZXR1cm4hIWEuc3R1ZGllc1tiXS5hY3RpdmV8fGEuc3R1ZGllc1tiXS5wcm9iYWJpbGl0eT4uNX0sSWk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuZXhwfHx7fTtkW2JdPWM7YS5leHA9ZH0sRmk9bmV3IEhpO3ZhciBpaj1mdW5jdGlvbigpe3RoaXMuSD1BLmdvb2dsZV90YWdfbWFuYWdlcj1BLmdvb2dsZV90YWdfbWFuYWdlcnx8e319LGpqO2Z1bmN0aW9uIGtqKGEsYil7bGooKTt2YXIgYz1qajtyZXR1cm4gYy5IW2FdPWMuSFthXXx8YigpfWZ1bmN0aW9uIG1qKGEpe2xqKCk7cmV0dXJuIGpqLkhbYV19ZnVuY3Rpb24gbmooYSxiKXtsaigpO2pqLkhbYV09Yn1mdW5jdGlvbiBvaihhKXt2YXIgYj1FKDUpO2xqKCk7dmFyIGM9amo7Yy5IW2JdPWMuSFtiXXx8YX1mdW5jdGlvbiBwaigpe3ZhciBhPUUoMTkpO2xqKCk7dmFyIGI9amo7cmV0dXJuIGIuSFthXT1iLkhbYV18fHt9fWZ1bmN0aW9uIHFqKCl7dmFyIGE9RSgxOSk7bGooKTtyZXR1cm4gamouSFthXX1mdW5jdGlvbiByaigpe2xqKCk7dmFyIGE9amosYj1hLkguc2VxdWVuY2V8fDE7YS5ILnNlcXVlbmNlPWIrMTtyZXR1cm4gYn1mdW5jdGlvbiBsaigpe2pqfHwoamo9bmV3IGlqKX07dmFyIHNqPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIDE6cmV0dXJuIDA7Y2FzZSA0OTE6cmV0dXJuIDEyO2Nhc2UgNDgwOnJldHVybiAxMTtjYXNlIDQ5OTpyZXR1cm4gMTA7Y2FzZSA1MDA6cmV0dXJuIDY7Y2FzZSA0MjE6cmV0dXJuIDk7Y2FzZSA1NjE6cmV0dXJuIDE3O2Nhc2UgNDgyOnJldHVybiAxNTtjYXNlIDU3MDpyZXR1cm4gMTk7Y2FzZSA0OTU6cmV0dXJuIDEzO2Nhc2UgNTE0OnJldHVybiAxNjtjYXNlIDU3MzpyZXR1cm4gMTg7Y2FzZSAyMzU6cmV0dXJuIDg7Y2FzZSA1MzpyZXR1cm4gMTtjYXNlIDU0OnJldHVybiAyO2Nhc2UgNTI6cmV0dXJuIDQ7Y2FzZSA3NTpyZXR1cm4gM319LHRqPWZ1bmN0aW9uKGEsYil7YS5OW2JdPSEwO3ZhciBjPXNqKGIpO2MhPT12b2lkIDAmJihXZltjXT0hMCl9LE09ZnVuY3Rpb24oYSl7cmV0dXJuISF1ai5OW2FdfSx1aj1uZXcgZnVuY3Rpb24oKXt0aGlzLk49W107dGhpcy5LPVtdO3RoaXMuSD1bXTsKdGoodGhpcywxMzIpO3ZhciBhPU5mKDYsNkU0KTtYZlsxXT1hO3ZhciBiPU5mKDcsMSk7WGZbM109Yjt2YXIgYz1OZigzNSw1MCk7WGZbMl09Yzt2YXIgZD1OZig2OSwxNzc2NDQ4OTIwKTtYZls0XT1kOwp0aih0aGlzLDQzNSk7dGoodGhpcywxNDEpOwp9O3ZhciB2aj1mdW5jdGlvbigpe3RoaXMuSD1uZXcgU2V0O3RoaXMuSz1uZXcgU2V0fSx4aj1mdW5jdGlvbihhKXt2YXIgYj13ai5IO2E9YT09PXZvaWQgMD9bXTphO3ZhciBjPVtdLmNvbmNhdCh3KGIuSCkpLmNvbmNhdChbXS5jb25jYXQodyhiLkspKSkuY29uY2F0KGEpO2Muc29ydChmdW5jdGlvbihkLGUpe3JldHVybiBkLWV9KTtyZXR1cm4gY30seWo9ZnVuY3Rpb24oKXt2YXIgYT1bXS5jb25jYXQodyh3ai5ILkgpKTthLnNvcnQoZnVuY3Rpb24oYixjKXtyZXR1cm4gYi1jfSk7cmV0dXJuIGF9LHpqPWZ1bmN0aW9uKCl7dmFyIGE9d2ouSCxiPUUoNDQpO2EuSD1uZXcgU2V0O2lmKGIhPT0iIilmb3IodmFyIGM9bShiLnNwbGl0KCJ+IikpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1OdW1iZXIoZC52YWx1ZSk7aXNOYU4oZSl8fGEuSC5hZGQoZSl9fTt2YXIgQWo9e30sQmo9e19fY2w6MSxfX2VjbDoxLF9fZWhsOjEsX19ldmw6MSxfX2ZhbDoxLF9fZmlsOjEsX19mc2w6MSxfX2hsOjEsX19qZWw6MSxfX2xjbDoxLF9fc2RsOjEsX190bDoxLF9feXRsOjF9LENqPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30se19fcGF1c2VkOjEsX190ZzoxfSxCaiksRGosRWo9ITE7RGo9RWo7dmFyIEZqPSIiO0FqLnFqPUZqO3ZhciB3aj1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9bmV3IHZqfTt2YXIgR2o9LzpbMC05XSskLyxIaj0vXlxkK1wuZmxzXC5kb3VibGVjbGlja1wubmV0JC87ZnVuY3Rpb24gSWooYSxiLGMsZCl7dmFyIGU9SmooYSwhIWQsYiksZixnO3JldHVybiBjPyhnPWVbYl0pIT1udWxsP2c6W106KGY9ZVtiXSk9PW51bGw/dm9pZCAwOmZbMF19ZnVuY3Rpb24gSmooYSxiLGMpe2Zvcih2YXIgZD17fSxlPW0oYS5zcGxpdCgiJiIpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9bShmLnZhbHVlLnNwbGl0KCI9IikpLGg9Zy5uZXh0KCkudmFsdWUsbD15YShnKSxuPWRlY29kZVVSSUNvbXBvbmVudChoLnJlcGxhY2UoL1wrL2csIiAiKSk7aWYoYz09PXZvaWQgMHx8bj09PWMpe3ZhciBwPWwuam9pbigiPSIpO2Rbbl18fChkW25dPVtdKTtkW25dLnB1c2goYj9wOmRlY29kZVVSSUNvbXBvbmVudChwLnJlcGxhY2UoL1wrL2csIiAiKSkpfX1yZXR1cm4gZH0KZnVuY3Rpb24gS2ooYSl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoYSl9Y2F0Y2goYil7fX1mdW5jdGlvbiBMaihhLGIsYyxkLGUpe2ImJihiPVN0cmluZyhiKS50b0xvd2VyQ2FzZSgpKTtpZihiPT09InByb3RvY29sInx8Yj09PSJwb3J0IilhLnByb3RvY29sPU1qKGEucHJvdG9jb2wpfHxNaihBLmxvY2F0aW9uLnByb3RvY29sKTtiPT09InBvcnQiP2EucG9ydD1TdHJpbmcoTnVtYmVyKGEuaG9zdG5hbWU/YS5wb3J0OkEubG9jYXRpb24ucG9ydCl8fChhLnByb3RvY29sPT09Imh0dHAiPzgwOmEucHJvdG9jb2w9PT0iaHR0cHMiPzQ0MzoiIikpOmI9PT0iaG9zdCImJihhLmhvc3RuYW1lPShhLmhvc3RuYW1lfHxBLmxvY2F0aW9uLmhvc3RuYW1lKS5yZXBsYWNlKEdqLCIiKS50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gTmooYSxiLGMsZCxlKX0KZnVuY3Rpb24gTmooYSxiLGMsZCxlKXt2YXIgZixnPU1qKGEucHJvdG9jb2wpO2ImJihiPVN0cmluZyhiKS50b0xvd2VyQ2FzZSgpKTtzd2l0Y2goYil7Y2FzZSAidXJsX25vX2ZyYWdtZW50IjpmPU9qKGEpO2JyZWFrO2Nhc2UgInByb3RvY29sIjpmPWc7YnJlYWs7Y2FzZSAiaG9zdCI6Zj1hLmhvc3RuYW1lLnJlcGxhY2UoR2osIiIpLnRvTG93ZXJDYXNlKCk7aWYoYyl7dmFyIGg9L153d3dcZCpcLi8uZXhlYyhmKTtoJiZoWzBdJiYoZj1mLnN1YnN0cmluZyhoWzBdLmxlbmd0aCkpfWJyZWFrO2Nhc2UgInBvcnQiOmY9U3RyaW5nKE51bWJlcihhLnBvcnQpfHwoZz09PSJodHRwIj84MDpnPT09Imh0dHBzIj80NDM6IiIpKTticmVhaztjYXNlICJwYXRoIjphLnBhdGhuYW1lfHxhLmhvc3RuYW1lfHxzYigiVEFHR0lORyIsMSk7Zj1hLnBhdGhuYW1lLnN1YnN0cmluZygwLDEpPT09Ii8iP2EucGF0aG5hbWU6Ii8iK2EucGF0aG5hbWU7dmFyIGw9Zi5zcGxpdCgiLyIpOyhkfHxbXSkuaW5kZXhPZihsW2wubGVuZ3RoLQoxXSk+PTAmJihsW2wubGVuZ3RoLTFdPSIiKTtmPWwuam9pbigiLyIpO2JyZWFrO2Nhc2UgInF1ZXJ5IjpmPWEuc2VhcmNoLnJlcGxhY2UoIj8iLCIiKTtlJiYoZj1JaihmLGUsITEpKTticmVhaztjYXNlICJleHRlbnNpb24iOnZhciBuPWEucGF0aG5hbWUuc3BsaXQoIi4iKTtmPW4ubGVuZ3RoPjE/bltuLmxlbmd0aC0xXToiIjtmPWYuc3BsaXQoIi8iKVswXTticmVhaztjYXNlICJmcmFnbWVudCI6Zj1hLmhhc2gucmVwbGFjZSgiIyIsIiIpO2JyZWFrO2RlZmF1bHQ6Zj1hJiZhLmhyZWZ9cmV0dXJuIGZ9ZnVuY3Rpb24gTWooYSl7cmV0dXJuIGE/YS5yZXBsYWNlKCI6IiwiIikudG9Mb3dlckNhc2UoKToiIn1mdW5jdGlvbiBPaihhKXt2YXIgYj0iIjtpZihhJiZhLmhyZWYpe3ZhciBjPWEuaHJlZi5pbmRleE9mKCIjIik7Yj1jPDA/YS5ocmVmOmEuaHJlZi5zdWJzdHJpbmcoMCxjKX1yZXR1cm4gYn12YXIgUGo9e30sUWo9MDsKZnVuY3Rpb24gUmooYSl7dmFyIGI9UGpbYV07aWYoIWIpe3ZhciBjPUIuY3JlYXRlRWxlbWVudCgiYSIpO2EmJihjLmhyZWY9YSk7dmFyIGQ9Yy5wYXRobmFtZTtkWzBdIT09Ii8iJiYoYXx8c2IoIlRBR0dJTkciLDEpLGQ9Ii8iK2QpO3ZhciBlPWMuaG9zdG5hbWUucmVwbGFjZShHaiwiIik7Yj17aHJlZjpjLmhyZWYscHJvdG9jb2w6Yy5wcm90b2NvbCxob3N0OmMuaG9zdCxob3N0bmFtZTplLHBhdGhuYW1lOmQsc2VhcmNoOmMuc2VhcmNoLGhhc2g6Yy5oYXNoLHBvcnQ6Yy5wb3J0fTtRajw1JiYoUGpbYV09YixRaisrKX1yZXR1cm4gYn1mdW5jdGlvbiBTaihhLGIsYyl7dmFyIGQ9UmooYSk7cmV0dXJuIGFjKGIsZCxjKX0KZnVuY3Rpb24gVGooYSl7dmFyIGI9UmooQS5sb2NhdGlvbi5ocmVmKSxjPUxqKGIsImhvc3QiLCExKTtpZihjJiZjLm1hdGNoKEhqKSl7dmFyIGQ9TGooYiwicGF0aCIpO2lmKGQpe3ZhciBlPWQuc3BsaXQoYSsiPSIpO2lmKGUubGVuZ3RoPjEpcmV0dXJuIGVbMV0uc3BsaXQoIjsiKVswXS5zcGxpdCgiPyIpWzBdfX19O3ZhciBVaj17Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20iOiIvZyIsImh0dHBzOi8vd3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIjoiL2FzIiwiaHR0cHM6Ly9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSI6Ii9ncyJ9LFZqPVsiL2FzL2QvY2NtL2NvbnZlcnNpb24iLCIvZy9kL2NjbS9jb252ZXJzaW9uIiwiL2dzL2NjbS9jb252ZXJzaW9uIiwiL2QvY2NtL2Zvcm0tZGF0YSJdO2Z1bmN0aW9uIFdqKCl7cmV0dXJuIElmKDQ3KT9KZig1NCkhPT0xOiExfWZ1bmN0aW9uIFhqKCl7dmFyIGE9RSgxOCksYj1hLmxlbmd0aDtyZXR1cm4gYVtiLTFdPT09Ii8iP2Euc3Vic3RyaW5nKDAsYi0xKTphfQpmdW5jdGlvbiBZaihhLGIpe2lmKGEpe3ZhciBjPSIiK2E7Yy5pbmRleE9mKCJodHRwOi8vIikhPT0wJiZjLmluZGV4T2YoImh0dHBzOi8vIikhPT0wJiYoYz0iaHR0cHM6Ly8iK2MpO2NbYy5sZW5ndGgtMV09PT0iLyImJihjPWMuc3Vic3RyaW5nKDAsYy5sZW5ndGgtMSkpO3JldHVybiBSaigiIitjK2IpLmhyZWZ9fWZ1bmN0aW9uIFpqKGEpe2lmKGFrKCkpcmV0dXJuIFlqKGEsIi9hbmFseXRpY3MuanMiKX1mdW5jdGlvbiBiayhhKXtyZXR1cm4gYT09PTJ8fGE9PT0zfWZ1bmN0aW9uIGNrKGEpe3JldHVybiBNKDU4OCkmJmE9PT0zfWZ1bmN0aW9uIGFrKCl7cmV0dXJuIFdqKCl8fElmKDUwKX1mdW5jdGlvbiBkaygpe3JldHVybiEhQWoucWomJkFqLnFqLnNwbGl0KCJAQCIpLmpvaW4oIiIpIT09IlNHVE1fVE9LRU4ifQpmdW5jdGlvbiBlayhhKXtmb3IodmFyIGI9bShbRi5ELmRkLEYuRC55Y10pLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXt2YXIgZD1PKGEsYy52YWx1ZSk7aWYoZClyZXR1cm4gZH19ZnVuY3Rpb24gZmsoYSxiLGMpe2M9Yz09PXZvaWQgMD8iIjpjO2lmKCFXaigpKXJldHVybiBhO3ZhciBkPWI/VWpbYV18fCIiOiIiO2Q9PT0iL2dzIiYmKGM9IiIpO3JldHVybiIiK1hqKCkrZCtjfWZ1bmN0aW9uIGdrKGEpe2lmKFdqKCkpZm9yKHZhciBiPW0oVmopLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKXt2YXIgZD1jLnZhbHVlO2lmKFNiKGEsIiIrWGooKStkKSlyZXR1cm4iOjoifX0KZnVuY3Rpb24gaGsoKXt2YXIgYT1BO2lmKCFhKXJldHVybiExO3RyeXtpZihhPT09YS50b3ApcmV0dXJuITE7dmFyIGI9YS5sb2NhdGlvbi5wYXRobmFtZTtyZXR1cm4gYi5pbmRleE9mKCIvXy9zZXJ2aWNlX3dvcmtlci8iKSE9PS0xJiZUYihiLCIvc3dfaWZyYW1lLmh0bWwiKX1jYXRjaChjKXtyZXR1cm4hMX19O3ZhciBpaz0vZ3RhZ1suXC9danMvLGprPS9ndG1bLlwvXWpzLyxsaz1mdW5jdGlvbihhKXt2YXIgYj1raztpZigoYS5zY3JpcHRDb250YWluZXJJZHx8IiIpLmluZGV4T2YoIkdUTS0iKT49MCl7dmFyIGM7YTp7dmFyIGQsZT0oZD1hLnNjcmlwdEVsZW1lbnQpPT1udWxsP3ZvaWQgMDpkLnNyYztpZihlKXtmb3IodmFyIGY9SWYoNDcpLGc9UmooZSksaD1mP2cucGF0aG5hbWU6IiIrZy5ob3N0bmFtZStnLnBhdGhuYW1lLGw9Qi5zY3JpcHRzLG49IiIscD0wO3A8bC5sZW5ndGg7KytwKXt2YXIgcT1sW3BdO2lmKCEocS5pbm5lckhUTUwubGVuZ3RoPT09MHx8IWYmJnEuaW5uZXJIVE1MLmluZGV4T2YoYS5zY3JpcHRDb250YWluZXJJZHx8IlNIT1VMRF9OT1RfQkVfU0VUIik8MHx8cS5pbm5lckhUTUwuaW5kZXhPZihoKTwwKSl7aWYocS5pbm5lckhUTUwuaW5kZXhPZigiKGZ1bmN0aW9uKHcsZCxzLGwsaSkiKT49MCl7Yz1TdHJpbmcocCk7YnJlYWsgYX1uPVN0cmluZyhwKX19aWYobil7Yz0KbjticmVhayBhfX1jPXZvaWQgMH12YXIgcj1jO2lmKHIpcmV0dXJuIGIuSD0hMCxyfXZhciB0PVtdLnNsaWNlLmNhbGwoQi5zY3JpcHRzKTtyZXR1cm4gYS5zY3JpcHRFbGVtZW50P1N0cmluZyh0LmluZGV4T2YoYS5zY3JpcHRFbGVtZW50KSk6Ii0xIn0sbWs9ZnVuY3Rpb24oYSl7aWYoa2suSClyZXR1cm4iMSI7dmFyIGIsYz0oYj1hLnNjcmlwdEVsZW1lbnQpPT1udWxsP3ZvaWQgMDpiLnNyYztpZihjKXtpZihpay50ZXN0KGMpKXJldHVybiIzIjtpZihqay50ZXN0KGMpKXJldHVybiIyIn1yZXR1cm4iMCJ9LGtrPW5ldyBmdW5jdGlvbigpe3RoaXMuSD0hMX07ZnVuY3Rpb24gUChhKXtzYigiR1RNIixhKX07ZnVuY3Rpb24gbmsoYSl7dmFyIGI9b2soKS5kZXN0aW5hdGlvbkFycmF5W2FdLGM9b2soKS5kZXN0aW5hdGlvblthXTtyZXR1cm4gYiYmYi5sZW5ndGg+MD9iWzBdOmN9ZnVuY3Rpb24gcGsoYSxiKXt2YXIgYz1vaygpO2MucGVuZGluZ3x8KGMucGVuZGluZz1bXSk7Q2IoYy5wZW5kaW5nLGZ1bmN0aW9uKGQpe3JldHVybiBkLnRhcmdldC5jdGlkPT09YS5jdGlkJiZkLnRhcmdldC5pc0Rlc3RpbmF0aW9uPT09YS5pc0Rlc3RpbmF0aW9ufSl8fGMucGVuZGluZy5wdXNoKHt0YXJnZXQ6YSxvbkxvYWQ6Yn0pfWZ1bmN0aW9uIHFrKCl7dmFyIGE9QS5nb29nbGVfdGFnc19maXJzdF9wYXJ0eTtBcnJheS5pc0FycmF5KGEpfHwoYT1bXSk7Zm9yKHZhciBiPXt9LGM9bShhKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSliW2QudmFsdWVdPSEwO3JldHVybiBPYmplY3QuZnJlZXplKGIpfQp2YXIgcms9ZnVuY3Rpb24oKXt0aGlzLmNvbnRhaW5lcj17fTt0aGlzLmRlc3RpbmF0aW9uPXt9O3RoaXMuZGVzdGluYXRpb25BcnJheT17fTt0aGlzLmNhbm9uaWNhbD17fTt0aGlzLnBlbmRpbmc9W107dGhpcy5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzPXt9O3RoaXMuaW5qZWN0ZWRGaXJzdFBhcnR5Q29udGFpbmVycz1xaygpfTsKZnVuY3Rpb24gb2soKXt2YXIgYT1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSksYj1hLnRpZHI7YiYmdHlwZW9mIGI9PT0ib2JqZWN0Inx8KGI9bmV3IHJrLGEudGlkcj1iKTt2YXIgYz1iO2MuY29udGFpbmVyfHwoYy5jb250YWluZXI9e30pO2MuZGVzdGluYXRpb258fChjLmRlc3RpbmF0aW9uPXt9KTtjLmRlc3RpbmF0aW9uQXJyYXl8fChjLmRlc3RpbmF0aW9uQXJyYXk9e30pO2MuY2Fub25pY2FsfHwoYy5jYW5vbmljYWw9e30pO2MucGVuZGluZ3x8KGMucGVuZGluZz1bXSk7Yy5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzfHwoYy5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzPXFrKCkpO3JldHVybiBjfTtmdW5jdGlvbiBzaygpe3JldHVybiBJZig3KSYmdGsoKS5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBhPT09RSg1KX0pfWZ1bmN0aW9uIHVrKCl7dmFyIGE7cmV0dXJuKGE9S2YoNTUpKSE9bnVsbD9hOltdfWZ1bmN0aW9uIHZrKCl7cmV0dXJuIEUoNil8fCJfIitFKDUpfWZ1bmN0aW9uIHdrKCl7dmFyIGE9RSgxMCk7cmV0dXJuIGE/YS5zcGxpdCgifCIpOltFKDUpXX1mdW5jdGlvbiB0aygpe3ZhciBhPUtmKDU5KTtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gdHlwZW9mIGI9PT0ic3RyaW5nIn0pLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gYi5pbmRleE9mKCJHVE0tIikhPT0wfSk6W119ZnVuY3Rpb24geGsoKXt2YXIgYT15ayh6aygpKSxiPWEmJmEucGFyZW50O2lmKGIpcmV0dXJuIHlrKGIpfQpmdW5jdGlvbiBBaygpe3ZhciBhPXlrKHprKCkpO2lmKGEpe2Zvcig7YS5wYXJlbnQ7KXt2YXIgYj15ayhhLnBhcmVudCk7aWYoIWIpYnJlYWs7YT1ifXJldHVybiBhfX1mdW5jdGlvbiB5ayhhKXt2YXIgYj1vaygpO3JldHVybiBhLmlzRGVzdGluYXRpb24/bmsoYS5jdGlkKTpiLmNvbnRhaW5lclthLmN0aWRdfWZ1bmN0aW9uIEJrKCl7dmFyIGE9b2soKTtpZihhLnBlbmRpbmcpe2Zvcih2YXIgYixjPVtdLGQ9ITEsZT13aygpLGY9dGsoKSxnPXt9LGg9MDtoPGEucGVuZGluZy5sZW5ndGg7Zz17Umc6dm9pZCAwfSxoKyspZy5SZz1hLnBlbmRpbmdbaF0sQ2IoZy5SZy50YXJnZXQuaXNEZXN0aW5hdGlvbj9mOmUsZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBuPT09bC5SZy50YXJnZXQuY3RpZH19KGcpKT9kfHwoYj1nLlJnLm9uTG9hZCxkPSEwKTpjLnB1c2goZy5SZyk7YS5wZW5kaW5nPWM7aWYoYil0cnl7Yih2aygpKX1jYXRjaChsKXt9fX0KZnVuY3Rpb24gQ2soKXtmb3IodmFyIGE9RSg1KSxiPXdrKCksYz10aygpLGQ9dWsoKSxlPWZ1bmN0aW9uKHEscil7dmFyIHQ9e2Nhbm9uaWNhbENvbnRhaW5lcklkOkUoNiksc2NyaXB0Q29udGFpbmVySWQ6YSxzdGF0ZToyLGNvbnRhaW5lcnM6Yi5zbGljZSgpLGRlc3RpbmF0aW9uczpjLnNsaWNlKCl9O0pjJiYodC5zY3JpcHRFbGVtZW50PUpjKTtLYyYmKHQuc2NyaXB0U291cmNlPUtjKTt4aygpPT09dm9pZCAwJiYodC5odG1sTG9hZE9yZGVyPWxrKHQpLHQubG9hZFNjcmlwdFR5cGU9bWsodCkpO3ZhciB1LHY7c3dpdGNoKHIpe2Nhc2UgMDp1PWZ1bmN0aW9uKHope2YuY29udGFpbmVyW3FdPXp9O3Y9Zi5jb250YWluZXJbcV07YnJlYWs7Y2FzZSAxOnU9ZnVuY3Rpb24oeil7Zi5kZXN0aW5hdGlvbkFycmF5W3FdPWYuZGVzdGluYXRpb25BcnJheVtxXXx8W107Zi5kZXN0aW5hdGlvbkFycmF5W3FdLnVuc2hpZnQoeil9O3ZhciB4LHk9KCh4PWYuZGVzdGluYXRpb25BcnJheVtxXSk9PQpudWxsP3ZvaWQgMDp4WzBdKXx8Zi5kZXN0aW5hdGlvbltxXTsheXx8eS5zdGF0ZSE9PTAmJnkuc3RhdGUhPT0xfHwodj15KTticmVhaztjYXNlIDI6dT1mdW5jdGlvbih6KXtmLmRlc3RpbmF0aW9uQXJyYXlbcV09Zi5kZXN0aW5hdGlvbkFycmF5W3FdfHxbXTtmLmRlc3RpbmF0aW9uQXJyYXlbcV0ucHVzaCh6KX0sdj12b2lkIDB9dSYmKHY/KHYuc3RhdGU9PT0wJiZQKDkzKSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHYsdCkpOnUodCkpfSxmPW9rKCksZz1tKGIpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKWUoaC52YWx1ZSwwKTtmb3IodmFyIGw9bShjKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtkLmluY2x1ZGVzKHApP2UocCwxKTplKHAsMil9Zi5jYW5vbmljYWxbdmsoKV09e307QmsoKX1mdW5jdGlvbiBEaygpe3ZhciBhPXZrKCk7cmV0dXJuISFvaygpLmNhbm9uaWNhbFthXX0KZnVuY3Rpb24gRWsoYSl7cmV0dXJuISFvaygpLmNvbnRhaW5lclthXX1mdW5jdGlvbiBGaygpe3ZhciBhPXprKCksYj15ayhhKTtyZXR1cm4gYiYmYi5jb250ZXh0fWZ1bmN0aW9uIEdrKGEpe3ZhciBiPW5rKGEpO3JldHVybiBiP2Iuc3RhdGUhPT0wOiExfWZ1bmN0aW9uIHprKCl7cmV0dXJue2N0aWQ6RSg1KSxpc0Rlc3RpbmF0aW9uOklmKDcpfX1mdW5jdGlvbiBIayhhLGIsYyl7dmFyIGQ9emsoKSxlPW9rKCkuY29udGFpbmVyW2FdO2UmJmUuc3RhdGUhPT0zfHwob2soKS5jb250YWluZXJbYV09e3N0YXRlOjEsY29udGV4dDpiLHBhcmVudDpkfSxwayh7Y3RpZDphLGlzRGVzdGluYXRpb246ITF9LGMpKX1mdW5jdGlvbiBJayhhLGIsYyl7dmFyIGQ9b2soKSxlPW5rKGEpO2U/ZS5zdGF0ZT0xOihlPXtjb250ZXh0OmIsc3RhdGU6MSxwYXJlbnQ6emsoKX0sZC5kZXN0aW5hdGlvbkFycmF5W2FdPVtlXSk7cGsoe2N0aWQ6YSxpc0Rlc3RpbmF0aW9uOiEwfSxjKX0KZnVuY3Rpb24gSmsoYSxiLGMsZCl7dmFyIGU9b2soKSxmPW5rKGEpO2Y/Zi5zdGF0ZT0wOihmPXtzdGF0ZTowLHRyYW5zcG9ydFVybDpiLGNvbnRleHQ6YyxwYXJlbnQ6emsoKX0sZS5kZXN0aW5hdGlvbkFycmF5W2FdPVtmXSk7cGsoe2N0aWQ6YSxpc0Rlc3RpbmF0aW9uOiEwfSxkKTtQKDkxKX1mdW5jdGlvbiBLaygpe3ZhciBhPW9rKCkuY29udGFpbmVyLGI7Zm9yKGIgaW4gYSlpZihhLmhhc093blByb3BlcnR5KGIpJiZhW2JdLnN0YXRlPT09MSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBMaygpe3ZhciBhPXt9O0diKG9rKCkuZGVzdGluYXRpb24sZnVuY3Rpb24oYixjKXsoYz09bnVsbD92b2lkIDA6Yy5zdGF0ZSk9PT0wJiYoYVtiXT1jKX0pO0diKG9rKCkuZGVzdGluYXRpb25BcnJheSxmdW5jdGlvbihiLGMpe3ZhciBkPWNbMF07KGQ9PW51bGw/dm9pZCAwOmQuc3RhdGUpPT09MCYmKGFbYl09ZCl9KTtyZXR1cm4gYX0KZnVuY3Rpb24gTWsoYSl7cmV0dXJuISEoYSYmYS5wYXJlbnQmJmEuY29udGV4dCYmYS5jb250ZXh0LnNvdXJjZT09PTEmJmEucGFyZW50LmN0aWQuaW5kZXhPZigiR1RNLSIpIT09MCl9ZnVuY3Rpb24gTmsoKXtmb3IodmFyIGE9b2soKSxiPW0od2soKSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpaWYoYS5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzW2MudmFsdWVdKXJldHVybiEwO3JldHVybiExfTt2YXIgT2s9ZnVuY3Rpb24oKXt9O09rLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJ1bmRlZmluZWQifTt2YXIgUGs9bmV3IE9rO3ZhciBYaz1mdW5jdGlvbigpe3RoaXMuc3RvcmFnZT1ZYSgpfTtYay5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5zdG9yYWdlLnNldChTdHJpbmcoYSksYil9O1hrLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuc3RvcmFnZS5nZXQoU3RyaW5nKGEpKX07dmFyIFlrO2Z1bmN0aW9uIFprKGEsYil7WWt8fChZaz1uZXcgWGspO1lrLnNldChhLGIpfWZ1bmN0aW9uICRrKGEpe1lrfHwoWWs9bmV3IFhrKTtyZXR1cm4gWWsuZ2V0KGEpfWZ1bmN0aW9uIGFsKGEsYil7WWt8fChZaz1uZXcgWGspO3ZhciBjPVlrO2Muc3RvcmFnZS5oYXMoU3RyaW5nKGEpKXx8Yy5zdG9yYWdlLnNldChTdHJpbmcoYSksYigpKTtyZXR1cm4gYy5zdG9yYWdlLmdldChTdHJpbmcoYSkpfTtmdW5jdGlvbiBibChhLGIpe2Z1bmN0aW9uIGMoZyl7dmFyIGg9UmooZyksbD1MaihoLCJwcm90b2NvbCIpLG49TGooaCwiaG9zdCIsITApLHA9TGooaCwicG9ydCIpLHE9TGooaCwicGF0aCIpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXC8kLywiIik7aWYobD09PXZvaWQgMHx8bD09PSJodHRwIiYmcD09PSI4MCJ8fGw9PT0iaHR0cHMiJiZwPT09IjQ0MyIpbD0id2ViIixwPSJkZWZhdWx0IjtyZXR1cm5bbCxuLHAscV19Zm9yKHZhciBkPWMoU3RyaW5nKGEpKSxlPWMoU3RyaW5nKGIpKSxmPTA7ZjxkLmxlbmd0aDtmKyspaWYoZFtmXSE9PWVbZl0pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gY2woYSl7cmV0dXJuIGRsKGEpPzE6MH0KZnVuY3Rpb24gZGwoYSl7dmFyIGI9YS5hcmcwLGM9YS5hcmcxO2lmKGEuYW55X29mJiZBcnJheS5pc0FycmF5KGMpKXtmb3IodmFyIGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9RWQoYSx7fSk7RWQoe2FyZzE6Y1tkXSxhbnlfb2Y6dm9pZCAwfSxlKTtpZihjbChlKSlyZXR1cm4hMH1yZXR1cm4hMX1zd2l0Y2goYVsiZnVuY3Rpb24iXSl7Y2FzZSAiX2NuIjpyZXR1cm4gS2coYixjKTtjYXNlICJfY3NzIjpyZXR1cm4gR2coYixjKTtjYXNlICJfZXciOnJldHVybiBIZyhiLGMpO2Nhc2UgIl9lcSI6cmV0dXJuIExnKGIsYyk7Y2FzZSAiX2dlIjpyZXR1cm4gTWcoYixjKTtjYXNlICJfZ3QiOnJldHVybiBPZyhiLGMpO2Nhc2UgIl9sYyI6cmV0dXJuIElnKGIsYyk7Y2FzZSAiX2xlIjpyZXR1cm4gTmcoYixjKTtjYXNlICJfbHQiOnJldHVybiBQZyhiLGMpO2Nhc2UgIl9yZSI6cmV0dXJuIEpnKGIsYyxhLmlnbm9yZV9jYXNlLGFsKDMsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE1hcH0pKTtjYXNlICJfc3ciOnJldHVybiBRZyhiLApjKTtjYXNlICJfdW0iOnJldHVybiBibChiLGMpfXJldHVybiExfTtmdW5jdGlvbiBlbChhLGIsYyxkLGUpe2lmKEFycmF5LmlzQXJyYXkoYSkpe3ZhciBmO3N3aXRjaChhWzBdKXtjYXNlICJmdW5jdGlvbl9pZCI6cmV0dXJuIGFbMV07Y2FzZSAibGlzdCI6Zj1bXTtmb3IodmFyIGc9MTtnPGEubGVuZ3RoO2crKylmLnB1c2goZWwoYVtnXSxiLGMsZCxlKSk7cmV0dXJuIGY7Y2FzZSAibWFjcm8iOnZhciBoPWRbYVsxXV07cmV0dXJuIGg/aC5ldmFsdWF0ZShiLGUpOnZvaWQgMDtjYXNlICJtYXAiOmY9e307Zm9yKHZhciBsPTE7bDxhLmxlbmd0aDtsKz0yKWZbZWwoYVtsXSxiLGMsZCxlKV09ZWwoYVtsKzFdLGIsYyxkLGUpO3JldHVybiBmO2Nhc2UgInRlbXBsYXRlIjpmPVtdO2Zvcih2YXIgbj0hMSxwPTE7cDxhLmxlbmd0aDtwKyspe3ZhciBxPWVsKGFbcF0sYixjLGQsZSk7Zi5wdXNoKHEpfXJldHVybiBmLmpvaW4oIiIpO2Nhc2UgImVzY2FwZSI6Zj1lbChhWzFdLGIsYyxkLGUpO2Y9U3RyaW5nKGYpO2Zvcih2YXIgeT0yO3k8YS5sZW5ndGg7eSsrKVVpW2FbeV1dJiYoZj1VaVthW3ldXShmKSk7cmV0dXJuIGY7Y2FzZSAidGFnIjp2YXIgej1hWzFdO2lmKCFjW3pdKXRocm93IEVycm9yKCJVbmFibGUgdG8gcmVzb2x2ZSB0YWcgcmVmZXJlbmNlICIrCnorIi4iKTtyZXR1cm57Ym86YVsyXSxpbmRleDp6fTtjYXNlICJ6YiI6dmFyIEM9e30sRD0oQ1tHZi5ZYl09YVsxXSxDLmFyZzA9ZWwoYVsyXSxiLGMsZCxlKSxDLmFyZzE9ZWwoYVszXSxiLGMsZCxlKSxDLmlnbm9yZV9jYXNlPWVsKGFbNV0sYixjLGQsZSksQyksST1jbChEKSxHPSEhYVs0XTtyZXR1cm4gR3x8SSE9PTI/RyE9PShJPT09MSk6bnVsbDtkZWZhdWx0OnRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGV4cGFuZCB1bmtub3duIFZhbHVlIHR5cGU6ICIrYVswXSsiLiIpO319cmV0dXJuIGF9O2Z1bmN0aW9uIGZsKGEpe3JldHVybiBhJiZhLmluZGV4T2YoInBlbmRpbmc6Iik9PT0wP2dsKGEuc3Vic3RyKDgpKTohMX1mdW5jdGlvbiBnbChhKXtpZihhPT1udWxsfHxhLmxlbmd0aD09PTApcmV0dXJuITE7dmFyIGI9TnVtYmVyKGEpLGM9TmIoKTtyZXR1cm4gYjxjKzNFNSYmYj5jLTlFNX07dmFyIGhsPSExLGlsPSExLGpsPSExLGtsPTAsbGw9ITEsbWw9dm9pZCAwLG5sPVtdO2Z1bmN0aW9uIG9sKGEpe2lmKGtsPT09MClsbCYmbmwmJihubC5sZW5ndGg+PTEwMCYmbmwuc2hpZnQoKSxubC5wdXNoKGEpKTtlbHNlIGlmKHBsKCkpe3ZhciBiPUUoNDEpLGM9TWMoYixbXSk7Yy5sZW5ndGg+PTUwJiZjLnNoaWZ0KCk7Yy5wdXNoKGEpfX1mdW5jdGlvbiBxbCgpe2lsfHwocmwoKSxzbChrbCkpfWZ1bmN0aW9uIHNsKGEpe2lmKCFpbHx8a2w9PT0yJiZhPT09MSlpZihpbD0hMCxqbCYmKGFkKEIsIlRBUHJvZERlYnVnU2lnbmFsIixxbCksamw9ITEpLG1sIT09dm9pZCAwJiYoQS5jbGVhclRpbWVvdXQobWwpLG1sPXZvaWQgMCksa2w9YSxhPT09MSl7dmFyIGI9bmw7bmw9dm9pZCAwO2I9PW51bGx8fGIuZm9yRWFjaChmdW5jdGlvbihjKXtvbChjKX0pfX0KZnVuY3Rpb24gcmwoKXt2YXIgYT1CLmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtdGFnLWFzc2lzdGFudC1wcm9kLXByZXNlbnQiKTtnbChhKT9rbD0xOiFmbChhKXx8aGx8fGpsP2tsPTI6KGpsPSEwLCRjKEIsIlRBUHJvZERlYnVnU2lnbmFsIixxbCwhMSksbWw9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWx8fChybCgpLHNsKGtsKSk7aGw9ITB9LDIwMCkpfWZ1bmN0aW9uIHBsKCl7aWYoIWxsKXJldHVybiExO3N3aXRjaChrbCl7Y2FzZSAxOmNhc2UgMDpyZXR1cm4hMDtjYXNlIDI6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMX19O2Z1bmN0aW9uIHRsKCl7dmFyIGE9TWMoImdvb2dsZV90YWdfZGF0YSIse30pO3JldHVybiBhLmljcz1hLmljc3x8bmV3IHVsfXZhciB1bD1mdW5jdGlvbigpe3RoaXMuZW50cmllcz17fTt0aGlzLndhaXRQZXJpb2RUaW1lZE91dD10aGlzLndhc1NldExhdGU9dGhpcy5hY2Nlc3NlZEFueT10aGlzLmFjY2Vzc2VkRGVmYXVsdD10aGlzLnVzZWRJbXBsaWNpdD10aGlzLnVzZWRVcGRhdGU9dGhpcy51c2VkRGVmYXVsdD10aGlzLnVzZWREZWNsYXJlPXRoaXMuYWN0aXZlPSExO3RoaXMuSD1bXX07CnVsLnByb3RvdHlwZS5kZWZhdWx0PWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcpe3RoaXMudXNlZERlZmF1bHR8fHRoaXMudXNlZERlY2xhcmV8fCF0aGlzLmFjY2Vzc2VkRGVmYXVsdCYmIXRoaXMuYWNjZXNzZWRBbnl8fCh0aGlzLndhc1NldExhdGU9ITApO3RoaXMudXNlZERlZmF1bHQ9dGhpcy5hY3RpdmU9ITA7c2IoIlRBR0dJTkciLDE5KTtiPT1udWxsP3NiKCJUQUdHSU5HIiwxOCk6dmwodGhpcyxhLGI9PT0iZ3JhbnRlZCIsYyxkLGUsZixnKX07dWwucHJvdG90eXBlLndhaXRGb3JVcGRhdGU9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wO2Q8YS5sZW5ndGg7ZCsrKXZsKHRoaXMsYVtkXSx2b2lkIDAsdm9pZCAwLCIiLCIiLGIsYyl9Owp2YXIgdmw9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoKXt2YXIgbD1hLmVudHJpZXMsbj1sW2JdfHx7fSxwPW4ucmVnaW9uLHE9ZCYmemIoZCk/ZC50b1VwcGVyQ2FzZSgpOnZvaWQgMDtlPWUudG9VcHBlckNhc2UoKTtmPWYudG9VcHBlckNhc2UoKTtpZihlPT09IiJ8fHE9PT1mfHwocT09PWU/cCE9PWY6IXEmJiFwKSl7dmFyIHI9ISEoZyYmZz4wJiZuLnVwZGF0ZT09PXZvaWQgMCksdD17cmVnaW9uOnEsZGVjbGFyZV9yZWdpb246bi5kZWNsYXJlX3JlZ2lvbixpbXBsaWNpdDpuLmltcGxpY2l0LGRlZmF1bHQ6YyE9PXZvaWQgMD9jOm4uZGVmYXVsdCxkZWNsYXJlOm4uZGVjbGFyZSx1cGRhdGU6bi51cGRhdGUscXVpZXQ6cn07aWYoZSE9PSIifHxuLmRlZmF1bHQhPT0hMSlsW2JdPXQ7ciYmQS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bFtiXT09PXQmJnQucXVpZXQmJihzYigiVEFHR0lORyIsMiksYS53YWl0UGVyaW9kVGltZWRPdXQ9ITAsYS5jbGVhclRpbWVvdXQoYix2b2lkIDAsaCksCmEubm90aWZ5TGlzdGVuZXJzKCkpfSxnKX19O2s9dWwucHJvdG90eXBlO2suY2xlYXJUaW1lb3V0PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bYV0sZT1jLmRlbGVnYXRlZENvbnNlbnRUeXBlcyxmO2ZvcihmIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShmKSYmZVtmXT09PWEmJmQucHVzaChmKTt2YXIgZz10aGlzLmVudHJpZXNbYV18fHt9LGg9dGhpcy5nZXRDb25zZW50U3RhdGUoYSxjKTtpZihnLnF1aWV0KXtnLnF1aWV0PSExO2Zvcih2YXIgbD1tKGQpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXdsKHRoaXMsbi52YWx1ZSl9ZWxzZSBpZihiIT09dm9pZCAwJiZoIT09Yilmb3IodmFyIHA9bShkKSxxPXAubmV4dCgpOyFxLmRvbmU7cT1wLm5leHQoKSl3bCh0aGlzLHEudmFsdWUpfTsKay51cGRhdGU9ZnVuY3Rpb24oYSxiLGMpe3RoaXMudXNlZERlZmF1bHR8fHRoaXMudXNlZERlY2xhcmV8fHRoaXMudXNlZFVwZGF0ZXx8IXRoaXMuYWNjZXNzZWRBbnl8fCh0aGlzLndhc1NldExhdGU9ITApO3RoaXMudXNlZFVwZGF0ZT10aGlzLmFjdGl2ZT0hMDtpZihiIT1udWxsKXt2YXIgZD10aGlzLmdldENvbnNlbnRTdGF0ZShhLGMpLGU9dGhpcy5lbnRyaWVzOyhlW2FdPWVbYV18fHt9KS51cGRhdGU9Yj09PSJncmFudGVkIjt0aGlzLmNsZWFyVGltZW91dChhLGQsYyl9fTsKay5kZWNsYXJlPWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy51c2VkRGVjbGFyZT10aGlzLmFjdGl2ZT0hMDt2YXIgZj10aGlzLmVudHJpZXMsZz1mW2FdfHx7fSxoPWcuZGVjbGFyZV9yZWdpb24sbD1jJiZ6YihjKT9jLnRvVXBwZXJDYXNlKCk6dm9pZCAwO2Q9ZC50b1VwcGVyQ2FzZSgpO2U9ZS50b1VwcGVyQ2FzZSgpO2lmKGQ9PT0iInx8bD09PWV8fChsPT09ZD9oIT09ZTohbCYmIWgpKXt2YXIgbj17cmVnaW9uOmcucmVnaW9uLGRlY2xhcmVfcmVnaW9uOmwsZGVjbGFyZTpiPT09ImdyYW50ZWQiLGltcGxpY2l0OmcuaW1wbGljaXQsZGVmYXVsdDpnLmRlZmF1bHQsdXBkYXRlOmcudXBkYXRlLHF1aWV0OmcucXVpZXR9O2lmKGQhPT0iInx8Zy5kZWNsYXJlIT09ITEpZlthXT1ufX07CmsuaW1wbGljaXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLnVzZWRJbXBsaWNpdD0hMDt2YXIgYz10aGlzLmVudHJpZXMsZD1jW2FdPWNbYV18fHt9O2QuaW1wbGljaXQhPT0hMSYmKGQuaW1wbGljaXQ9Yj09PSJncmFudGVkIil9OwprLmdldENvbnNlbnRTdGF0ZT1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuZW50cmllcyxkPWNbYV18fHt9LGU9ZC51cGRhdGU7aWYoZSE9PXZvaWQgMClyZXR1cm4gZT8xOjI7aWYoYi51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHMpe3ZhciBmPWIuY29udGFpbmVyU2NvcGVkRGVmYXVsdHNbYV07aWYoZj09PTMpcmV0dXJuIDE7aWYoZj09PTIpcmV0dXJuIDJ9ZWxzZSBpZihlPWQuZGVmYXVsdCxlIT09dm9pZCAwKXJldHVybiBlPzE6MjtpZihiPT1udWxsPzA6Yi5kZWxlZ2F0ZWRDb25zZW50VHlwZXMuaGFzT3duUHJvcGVydHkoYSkpe3ZhciBnPWIuZGVsZWdhdGVkQ29uc2VudFR5cGVzW2FdLGg9Y1tnXXx8e307ZT1oLnVwZGF0ZTtpZihlIT09dm9pZCAwKXJldHVybiBlPzE6MjtpZihiLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cyl7dmFyIGw9Yi5jb250YWluZXJTY29wZWREZWZhdWx0c1tnXTtpZihsPT09MylyZXR1cm4gMTtpZihsPT09MilyZXR1cm4gMn1lbHNlIGlmKGU9CmguZGVmYXVsdCxlIT09dm9pZCAwKXJldHVybiBlPzE6Mn1lPWQuZGVjbGFyZTtpZihlIT09dm9pZCAwKXJldHVybiBlPzE6MjtlPWQuaW1wbGljaXQ7cmV0dXJuIGUhPT12b2lkIDA/ZT8zOjQ6MH07ay5hZGRMaXN0ZW5lcj1mdW5jdGlvbihhLGIpe3RoaXMuSC5wdXNoKHtjb25zZW50VHlwZXM6YSxpZTpifSl9O3ZhciB3bD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2M8YS5ILmxlbmd0aDsrK2Mpe3ZhciBkPWEuSFtjXTtBcnJheS5pc0FycmF5KGQuY29uc2VudFR5cGVzKSYmZC5jb25zZW50VHlwZXMuaW5kZXhPZihiKSE9PS0xJiYoZC54bz0hMCl9fTt1bC5wcm90b3R5cGUubm90aWZ5TGlzdGVuZXJzPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7Yzx0aGlzLkgubGVuZ3RoOysrYyl7dmFyIGQ9dGhpcy5IW2NdO2lmKGQueG8pe2QueG89ITE7dHJ5e2QuaWUoe2NvbnNlbnRFdmVudElkOmEsY29uc2VudFByaW9yaXR5SWQ6Yn0pfWNhdGNoKGUpe319fX07dmFyIHhsPSExLHlsPSExLHpsPXt9LEFsPXtkZWxlZ2F0ZWRDb25zZW50VHlwZXM6e30sY29yZVBsYXRmb3JtU2VydmljZXM6e30sdXNlZENvcmVQbGF0Zm9ybVNlcnZpY2VzOiExLHNlbGVjdGVkQWxsQ29yZVBsYXRmb3JtU2VydmljZXM6ITEsY29udGFpbmVyU2NvcGVkRGVmYXVsdHM6KHpsLmFkX3N0b3JhZ2U9MSx6bC5hbmFseXRpY3Nfc3RvcmFnZT0xLHpsLmFkX3VzZXJfZGF0YT0xLHpsLmFkX3BlcnNvbmFsaXphdGlvbj0xLHpsKSx1c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHM6ITF9O2Z1bmN0aW9uIEJsKGEpe3ZhciBiPXRsKCk7Yi5hY2Nlc3NlZEFueT0hMDtyZXR1cm4oemIoYSk/W2FdOmEpLmV2ZXJ5KGZ1bmN0aW9uKGMpe3N3aXRjaChiLmdldENvbnNlbnRTdGF0ZShjLEFsKSl7Y2FzZSAxOmNhc2UgMzpyZXR1cm4hMDtjYXNlIDI6Y2FzZSA0OnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fSl9CmZ1bmN0aW9uIENsKGEpe3ZhciBiPXRsKCk7Yi5hY2Nlc3NlZEFueT0hMDtyZXR1cm4gYi5nZXRDb25zZW50U3RhdGUoYSxBbCl9ZnVuY3Rpb24gRGwoYSl7dmFyIGI9dGwoKTtiLmFjY2Vzc2VkQW55PSEwO3JldHVybiEoYi5lbnRyaWVzW2FdfHx7fSkucXVpZXR9ZnVuY3Rpb24gRWwoKXtpZighWWYoNSkpcmV0dXJuITE7dmFyIGE9dGwoKTthLmFjY2Vzc2VkQW55PSEwO2lmKGEuYWN0aXZlKXJldHVybiEwO2lmKCFBbC51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHMpcmV0dXJuITE7Zm9yKHZhciBiPW0oT2JqZWN0LmtleXMoQWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHMpKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSlpZihBbC5jb250YWluZXJTY29wZWREZWZhdWx0c1tjLnZhbHVlXSE9PTEpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gRmwoYSxiKXt0bCgpLmFkZExpc3RlbmVyKGEsYil9CmZ1bmN0aW9uIEdsKGEsYil7dGwoKS5ub3RpZnlMaXN0ZW5lcnMoYSxiKX1mdW5jdGlvbiBIbChhLGIpe2lmKGIuZXZlcnkoRGwpKWEoe30pO2Vsc2V7dmFyIGM9ITE7RmwoYixmdW5jdGlvbihkKXshYyYmYi5ldmVyeShEbCkmJihjPSEwLGEoZCkpfSl9fQpmdW5jdGlvbiBJbChhLGIpe3ZhciBjPXpiKGIpP1tiXTpiLGQ9e30sZT1mdW5jdGlvbigpe3JldHVybiBjLmZpbHRlcihmdW5jdGlvbihoKXtyZXR1cm4gQmwoaCkmJiFkW2hdfSl9LGY9ZSgpO2lmKGYubGVuZ3RoIT09Yy5sZW5ndGgpe3ZhciBnPWZ1bmN0aW9uKGgpe2Zvcih2YXIgbD1tKGgpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKWRbbi52YWx1ZV09ITB9O2coZik7RmwoYyxmdW5jdGlvbihoKXtmdW5jdGlvbiBsKHEpe3EubGVuZ3RoIT09MCYmKGcocSksaC5jb25zZW50VHlwZXM9cSxhKGgpKX12YXIgbj1lKCk7aWYobi5sZW5ndGghPT0wKXt2YXIgcD1PYmplY3Qua2V5cyhkKS5sZW5ndGg7bi5sZW5ndGgrcD49Yy5sZW5ndGg/bChuKTpBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtsKGUoKSl9LDUwMCl9fSl9fTt2YXIgSmw9ITE7ZnVuY3Rpb24gS2woYSxiKXt2YXIgYz13aygpLGQ9dGsoKTtFKDI2KTt2YXIgZT1JZig0Nyk/MDpJZig1MCk/MTozLGY9WGooKTtpZihwbCgpKXt2YXIgZz1MbCgiSU5JVCIpO2cuY29udGFpbmVyTG9hZFNvdXJjZT1hIT1udWxsP2E6MDtiJiYoZy5wYXJlbnRUYXJnZXRSZWZlcmVuY2U9Yik7Zy5hbGlhc2VzPWM7Zy5kZXN0aW5hdGlvbnM9ZDtlIT09dm9pZCAwJiYoZy5ndGc9e3NvdXJjZTplLG1QYXRoOmYhPW51bGw/ZjoiIn0pO29sKGcpfX0KZnVuY3Rpb24gTWwoYSl7dmFyIGIsYyxkLGU7Yj1hLnRhcmdldElkO2M9YS5yZXF1ZXN0O2Q9YS5xYjtlPWEuaXNCYXRjaGVkO3ZhciBmO2lmKGY9cGwoKSl7dmFyIGc7YTpzd2l0Y2goYy5lbmRwb2ludCl7Y2FzZSA2ODpjYXNlIDY5OmNhc2UgMTk6Y2FzZSA2MjpjYXNlIDQ3Omc9ITA7YnJlYWsgYTtkZWZhdWx0Omc9ITF9Zj0hZ31pZihmKXt2YXIgaD1MbCgiR1RBR19ISVQiLHtldmVudElkOmQuZXZlbnRJZCxwcmlvcml0eUlkOmQucHJpb3JpdHlJZH0pO2gudGFyZ2V0PWI7aC51cmw9Yy51cmw7Yy5wb3N0Qm9keSYmKGgucG9zdEJvZHk9Yy5wb3N0Qm9keSk7aC5wYXJhbWV0ZXJFbmNvZGluZz1jLnBhcmFtZXRlckVuY29kaW5nO2guZW5kcG9pbnQ9Yy5lbmRwb2ludDtlIT09dm9pZCAwJiYoaC5pc0JhdGNoZWQ9ZSk7b2woaCl9fWZ1bmN0aW9uIE5sKGEpe3BsKCkmJk1sKGEoKSl9CmZ1bmN0aW9uIExsKGEsYil7Yj1iPT09dm9pZCAwP3t9OmI7Yi5ncm91cElkPU9sO3ZhciBjLGQ9YixlPVBsLGY9e3B1YmxpY0lkOlFsfTtkLmV2ZW50SWQhPW51bGwmJihmLmV2ZW50SWQ9ZC5ldmVudElkKTtkLnByaW9yaXR5SWQhPW51bGwmJihmLnByaW9yaXR5SWQ9ZC5wcmlvcml0eUlkKTtkLmV2ZW50TmFtZSYmKGYuZXZlbnROYW1lPWQuZXZlbnROYW1lKTtkLmdyb3VwSWQmJihmLmdyb3VwSWQ9ZC5ncm91cElkKTtkLnRhZ05hbWUmJihmLnRhZ05hbWU9ZC50YWdOYW1lKTtjPXtjb250YWluZXJQcm9kdWN0OiJHVE0iLGtleTpmLHZlcnNpb246ZSxtZXNzYWdlVHlwZTphfTtjLmNvbnRhaW5lclByb2R1Y3Q9Smw/Ik9HVCI6IkdUTSI7Yy5rZXkudGFyZ2V0UmVmPVJsO3JldHVybiBjfXZhciBRbD0iIixQbD0iIixSbD17Y3RpZDoiIixpc0Rlc3RpbmF0aW9uOiExfSxPbDsKZnVuY3Rpb24gU2woYSl7dmFyIGI9RSg1KSxjPUlmKDQ1KSxkPXNrKCksZT1FKDYpLGY9RSgxKTtFKDIzKTtrbD0wO2xsPSEwO3JsKCk7T2w9YTtRbD1iO1BsPWY7Smw9YztSbD17Y3RpZDpiLGlzRGVzdGluYXRpb246ZCxjYW5vbmljYWxJZDplfX07ZnVuY3Rpb24gVGwoYSxiLGMsZCl7aWYocGwoKSl7dmFyIGU9Yi5NO01sKHt0YXJnZXRJZDpkfHxbYi50YXJnZXQuZGVzdGluYXRpb25JZF0scmVxdWVzdDp7dXJsOmEscGFyYW1ldGVyRW5jb2Rpbmc6MixlbmRwb2ludDpjfSxxYjp7ZXZlbnRJZDplLmV2ZW50SWQscHJpb3JpdHlJZDplLnByaW9yaXR5SWR9LEZqOntldmVudElkOlEoYixILkoudWYpLHByaW9yaXR5SWQ6UShiLEguSi52Zil9fSl9fTtmdW5jdGlvbiBVbChhLGIsYyl7dmFyIGQ9Imh0dHBzOi8vIithK2I7cmV0dXJuIGM/ZnVuY3Rpb24oKXtyZXR1cm4gV2ooKT9YaigpK2MrYjpkfTpmdW5jdGlvbigpe3JldHVybiBkfX07dmFyIFZsPXt9LFdsPShWbFsyMl09VWwoInd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSIsIi9jY20vY29udmVyc2lvbiIsIi9hcy9kIiksVmxbNjBdPVVsKCJwYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIsIi9jY20vY29udmVyc2lvbiIsIi9ncyIpLFZsWzIzXT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvY2NtL2NvbnZlcnNpb24iLCIvZy9kIiksVmwpO3ZhciBYbD17fSxZbD0oWGxbNV09VWwoInd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSIsIi9wYWdlYWQvY29udmVyc2lvbiIpLFhsWzZdPVVsKCJwYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIsIi9wYWdlYWQvY29udmVyc2lvbiIsIi9ncyIpLFhsWzhdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvMXAtY29udmVyc2lvbiIpLFhsWzY2XT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcGFnZWFkL3Vjb252ZXJzaW9uIiksWGxbNjNdPVVsKCJ3d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iLCIvcGFnZWFkL2NvbnZlcnNpb24iKSxYbFs2NF09VWwoInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIiwiL3BhZ2VhZC9jb252ZXJzaW9uIiwiL2dzIiksWGxbNjVdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvMXAtY29udmVyc2lvbiIpLFhsWzc0XT1mdW5jdGlvbigpe3JldHVybiBYaigpKyIvYXMvcC9jIn0sWGwpO3ZhciBabD17fSwkbD0oWmxbNDVdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9jY20vY29sbGVjdCIpLFpsWzQ2XT1VbCgicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvY2NtL2NvbGxlY3QiLCIvZ3MiKSxabFs2OV09VWwoImFkLmRvdWJsZWNsaWNrLm5ldCIsIi9jY20vcy9jb2xsZWN0IiksWmxbNThdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvc2V0X3BhcnRpdGlvbmVkX2Nvb2tpZSIpLFpsWzU3XT1VbCgid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIiwiL3BhZ2VhZC9zZXRfcGFydGl0aW9uZWRfY29va2llIiksWmwpO3ZhciBhbT17fSxibT0oYW1bOV09VWwoImdvb2dsZWFkcy5nLmRvdWJsZWNsaWNrLm5ldCIsIi9wYWdlYWQvdmlld3Rocm91Z2hjb252ZXJzaW9uIiksYW1bNjhdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9ybWt0L2NvbGxlY3QiKSxhbSk7dmFyIGNtPXt9LGRtPShjbVsxMV09VWwoInd3dy5nb29nbGUuY29tIiwiL3BhZ2VhZC9mb3JtLWRhdGEiLCIvZCIpLGNtWzIxXT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvY2NtL2Zvcm0tZGF0YSIsIi9kIiksY21bNzJdPVVsKCJnb29nbGUuY29tIiwiL3BhZ2VhZC9mb3JtLWRhdGEiLCIvZCIpLGNtWzczXT1VbCgiZ29vZ2xlLmNvbSIsIi9jY20vZm9ybS1kYXRhIiwiL2QiKSxjbSk7dmFyIGVtPXt9LGZtPShlbVs1MV09VWwoInd3dy5nb29nbGUuY29tIiwiL3RyYXZlbC9mbGlnaHRzL2NsaWNrL2NvbnZlcnNpb24iKSxlbSk7dmFyIGdtPXt9LGhtPShnbVsxXT1mdW5jdGlvbigpe3JldHVybiJodHRwczovL2FkLmRvdWJsZWNsaWNrLm5ldC9hY3Rpdml0eTsifSxnbVsyXT1mdW5jdGlvbigpe3JldHVybihXaigpP1hqKCk6Imh0dHBzOi8vYWRlLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIpKyIvZGRtL2FjdGl2aXR5IisoTSg0NjcpPyI7IjoiLyIpfSxnbVszXT1mdW5jdGlvbihhKXtyZXR1cm4iaHR0cHM6Ly8iK2EubHIrIi5mbHMuZG91YmxlY2xpY2submV0L2FjdGl2aXR5aTsifSxnbSk7ZnVuY3Rpb24gaW0oYSl7c2IoIkhFQUxUSCIsYSl9O3ZhciBqbT17YmE6e1B0OiJhd191c2VyX2RhdGFfY2FjaGUiLG9pOiJjb29raWVfZGVwcmVjYXRpb25fbGFiZWwiLGJoOiJkaWFnbm9zdGljc19wYWdlX2lkIixvcDoiZW1lbW8iLGR1OiJlbV9yZWdpc3RyeSIsU2k6ImVhYiIscnU6ImZsX3VzZXJfZGF0YV9jYWNoZSIsdHU6ImdhNF91c2VyX2RhdGFfY2FjaGUiLEx1OiJpZGNfcHZfY2xhaW0iLFNlOiJpcF9nZW9fZGF0YV9jYWNoZSIsWGk6ImlwX2dlb19mZXRjaF9pbl9wcm9ncmVzcyIsam46Im5iX2RhdGEiLFRxOiJwYWdlX2V4cGVyaW1lbnRfaWRzIixsbjoicGxkIixWZToicHRfZGF0YSIsbW46InB0X2xpc3RlbmVyX3NldCIsa2o6InJldHJ5X2NvbnRhaW5lcnMiLE9oOiJzZXJ2aWNlX3dvcmtlcl9lbmRwb2ludCIsWnE6InNoYXJlZF91c2VyX2lkIixhcjoic2hhcmVkX3VzZXJfaWRfcmVxdWVzdGVkIixzajoic2hhcmVkX3VzZXJfaWRfc291cmNlIixidjoiYXdoIixocjoidW5pdmVyc2FsX2NsYWltX3JlZ2lzdHJ5In19O3ZhciBrbT1mdW5jdGlvbihhKXtyZXR1cm4gdGYoZnVuY3Rpb24oYil7Zm9yKHZhciBjIGluIGEpaWYoYj09PWFbY10mJiEvXlswLTldKyQvLnRlc3QoYykpcmV0dXJuITA7cmV0dXJuITF9KX0oam0uYmEpOwpmdW5jdGlvbiBsbShhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO2lmKGttKGEpKXt2YXIgYyxkLGU9KGQ9KGM9TWMoImdvb2dsZV90YWdfZGF0YSIse30pKS54Y2QpIT1udWxsP2Q6Yy54Y2Q9e307aWYoZVthXSlyZXR1cm4gZVthXTtpZihiKXt2YXIgZj12b2lkIDAsZz0xLGg9e30sbD17c2V0OmZ1bmN0aW9uKG4pe2Y9bjtsLm5vdGlmeSgpfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sc3Vic2NyaWJlOmZ1bmN0aW9uKG4pe2hbU3RyaW5nKGcpXT1uO3JldHVybiBnKyt9LHVuc3Vic2NyaWJlOmZ1bmN0aW9uKG4pe3ZhciBwPVN0cmluZyhuKTtyZXR1cm4gaC5oYXNPd25Qcm9wZXJ0eShwKT8oZGVsZXRlIGhbcF0sITApOiExfSxub3RpZnk6ZnVuY3Rpb24oKXtmb3IodmFyIG49bShPYmplY3Qua2V5cyhoKSkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPXAudmFsdWU7dHJ5e2hbcV0oYSxmKX1jYXRjaChyKXt9fX19O3JldHVybiBlW2FdPWx9fX0KZnVuY3Rpb24gbW0oYSxiKXt2YXIgYz1sbShhLCEwKTtjJiZjLnNldChiKX1mdW5jdGlvbiBubShhKXt2YXIgYjtyZXR1cm4oYj1sbShhKSk9PW51bGw/dm9pZCAwOmIuZ2V0KCl9ZnVuY3Rpb24gb20oYSxiKXt2YXIgYz1sbShhKTtpZighYyl7Yz1sbShhLCEwKTtpZighYylyZXR1cm47Yy5zZXQoYil9cmV0dXJuIGMuZ2V0KCl9ZnVuY3Rpb24gcG0oYSxiKXtpZih0eXBlb2YgYj09PSJmdW5jdGlvbiIpe3ZhciBjO3JldHVybihjPWxtKGEsITApKT09bnVsbD92b2lkIDA6Yy5zdWJzY3JpYmUoYil9fWZ1bmN0aW9uIHFtKGEsYil7dmFyIGM9bG0oYSk7cmV0dXJuIGM/Yy51bnN1YnNjcmliZShiKTohMX07dmFyIHNtPWZ1bmN0aW9uKCl7dGhpcy5IPXt9O3RoaXMuSz0hMX07c20ucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt0aGlzLkt8fCh0aGlzLkg9dG0oKSx0aGlzLkhbIjAiXSYmb20oam0uYmEuU2UsSlNPTi5zdHJpbmdpZnkodGhpcy5IKSkpfTsKdmFyIHhtPWZ1bmN0aW9uKCl7dmFyIGE9dW0sYj12bSxjPXZvaWQgMCxkPWZ1bmN0aW9uKCl7YyE9PXZvaWQgMCYmcW0oam0uYmEuU2UsYyk7dHJ5e3ZhciBmPW5tKGptLmJhLlNlKTtiLkg9SlNPTi5wYXJzZShmKX1jYXRjaChnKXtQKDEyMyksaW0oMiksYi5IPXt9fWIuSz0hMDthKCl9LGU9bm0oam0uYmEuU2UpO2U/ZChlKTooYz1wbShqbS5iYS5TZSxkKSx3bSgpKX0sd209ZnVuY3Rpb24oKXtpZighbm0oam0uYmEuWGkpKXttbShqbS5iYS5YaSwhMCk7dmFyIGE9ZnVuY3Rpb24oYil7bW0oam0uYmEuU2UsYnx8Int9Iik7bW0oam0uYmEuWGksITEpfTt0cnl7QS5mZXRjaCgiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9jY20vZ2VvIix7bWV0aG9kOiJHRVQiLGNhY2hlOiJuby1zdG9yZSIsbW9kZToiY29ycyIsY3JlZGVudGlhbHM6Im9taXQifSkudGhlbihmdW5jdGlvbihiKXtiLm9rP2IudGV4dCgpLnRoZW4oZnVuY3Rpb24oYyl7YShjKX0sZnVuY3Rpb24oKXthKCl9KTphKCl9LGZ1bmN0aW9uKCl7YSgpfSl9Y2F0Y2goYil7YSgpfX19LAp0bT1mdW5jdGlvbigpe3ZhciBhPUUoMjIpO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShxYihhKSl9Y2F0Y2goYil7cmV0dXJuIFAoMTIzKSxpbSgyKSx7fX19LHltPWZ1bmN0aW9uKCl7cmV0dXJuIHZtLkhbIjAiXXx8IiJ9LHptPWZ1bmN0aW9uKCl7cmV0dXJuIHZtLkhbIjEiXXx8IiJ9LEFtPWZ1bmN0aW9uKCl7dmFyIGE9dm0sYj0hMTtyZXR1cm4gYn0sQm09ZnVuY3Rpb24oKXtyZXR1cm4gdm0uSFsiNiJdIT09ITF9LENtPWZ1bmN0aW9uKCl7dmFyIGE9dm0sYj0hMTtyZXR1cm4gYn0sRG09ZnVuY3Rpb24oKXt2YXIgYT12bSxiPSIiOwpyZXR1cm4gYn0sRW09ZnVuY3Rpb24oKXt2YXIgYT12bSxiPSIiO3JldHVybiBifSx2bT1uZXcgc207ZnVuY3Rpb24gRm0oYSl7YT1hPT09dm9pZCAwPyJnL2NvbGxlY3QiOmE7cmV0dXJuImh0dHBzOi8vIisoRG0oKXx8Ind3dyIpKyIuZ29vZ2xlLWFuYWx5dGljcy5jb20vIithfWZ1bmN0aW9uIEdtKGEpe2E9YT09PXZvaWQgMD8iZy9jb2xsZWN0IjphO3ZhciBiPURtKCk7cmV0dXJuImh0dHBzOi8vIisoYj9iKyIuIjoiIikrImFuYWx5dGljcy5nb29nbGUuY29tLyIrYX12YXIgSG09e30sSW09KEhtWzE3XT1mdW5jdGlvbigpe3JldHVybiBXaigpJiYhRG0oKT9YaigpKyIvYWcvZy9jIjpHbSgpfSxIbVsxNl09ZnVuY3Rpb24oKXtyZXR1cm4gV2ooKSYmIURtKCk/WGooKSsiL2dhL2cvYyI6Rm0oKX0sSG1bNjddPWZ1bmN0aW9uKCl7dmFyIGE7YT1hPT09dm9pZCAwPyJnL2NvbGxlY3QiOmE7cmV0dXJuIERtKCk/IiI6Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vIithfSxIbSk7ZnVuY3Rpb24gSm0oYSxiLGMpe3ZhciBkPVVsKGIsIi9tZWFzdXJlbWVudC9jb252ZXJzaW9uIixjKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gRG0oKT9hKCJtZWFzdXJlbWVudC9jb252ZXJzaW9uIik6ZCgpfX12YXIgS209e30sTG09KEttWzU1XT1KbShGbSwicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvZ3MiKSxLbVs1NF09Sm0oR20sInd3dy5nb29nbGUuY29tIiwiL2ciKSxLbSk7dmFyIE1tPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sV2wsWWwsJGwsYm0sZG0sZm0saG0sTG0sSW0pO2Z1bmN0aW9uIE5tKGEsYil7dmFyIGM9T2JqZWN0LmtleXMoYikuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiBiW2RdIT1udWxsfSkubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBkKyI9IitiW2RdfSkuam9pbigiJiIpO3JldHVybiBNbVthXSh2b2lkIDApKyI/IitjfTt2YXIgT209e30sUG09KE9tLnRkcD0xLE9tLmV4cD0xLE9tLmd0bT0xLE9tLnBpZD0xLE9tLmRsPTEsT20uc2VxPTEsT20udD0xLE9tLnY9MSxPbSksUm09ZnVuY3Rpb24oKXt2YXIgYT1RbTtyZXR1cm4gT2JqZWN0LmtleXMoYS5IKS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIGEuSFtiXX0pfSxTbT1mdW5jdGlvbihhLGIsYyl7aWYoYS5IW2JdPT09dm9pZCAwfHwoYz09PXZvaWQgMD8wOmMpKWEuSFtiXT0hMH0sVG09ZnVuY3Rpb24oYSl7YS5mb3JFYWNoKGZ1bmN0aW9uKGIpe1BtW2JdfHwoUW0uSFtiXT0hMSl9KX0sUW09bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPXt9O3RoaXMuSz17fX07ZnVuY3Rpb24gVW0oYSxiLGMpe3ZhciBkPWM9PT12b2lkIDA/ITA6YyxlPVFtO2UuS1thXT1iOyhkPT09dm9pZCAwfHxkKSYmU20oZSxhKX1mdW5jdGlvbiBWbShhLGIpe1NtKFFtLGEsYj09PXZvaWQgMD8hMTpiKX07ZnVuY3Rpb24gV20oYSl7dmFyIGI9MDthLkdjLmZvckVhY2goZnVuY3Rpb24oYyl7Ynw9MTw8Y30pO3JldHVybiBifWZ1bmN0aW9uIFhtKCl7cmV0dXJue3RvdGFsOjAsamI6MCxHYzpuZXcgU2V0LGxmOnt9fX1mdW5jdGlvbiBZbShhLGIsYyxkKXt2YXIgZT1PYmplY3Qua2V5cyhhLm5mKS5zb3J0KGZ1bmN0aW9uKGYsZyl7cmV0dXJuIE51bWJlcihmKS1OdW1iZXIoZyl9KS5tYXAoZnVuY3Rpb24oZil7cmV0dXJuW2YsYihhLm5mW2ZdKV19KS5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuIGZbMV0hPT12b2lkIDB9KS5tYXAoZnVuY3Rpb24oZil7cmV0dXJuIGYuam9pbihjKX0pLmpvaW4oZCk7cmV0dXJuIGU/ZTp2b2lkIDB9CmZ1bmN0aW9uIFptKGEsYil7dmFyIGMsZCxlO2M9Yz09PXZvaWQgMD8iXyI6YztkPWQ9PT12b2lkIDA/IjsiOmQ7ZT1lPT09dm9pZCAwPyJ+IjplO2Zvcih2YXIgZj1bXSxnPW0oT2JqZWN0LmtleXMoYS5sZikuc29ydCgpKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZSxuPVltKGEubGZbbF0sYixjLGQpO2lmKG4pe3ZhciBwPXZvaWQgMDtmLnB1c2goIiIrKChwPWwpIT1udWxsP3A6IiIpK2Qrbil9fXJldHVybiBmLmxlbmd0aD9mLmpvaW4oZSk6dm9pZCAwfQpmdW5jdGlvbiAkbShhKXthLmpiPTA7YS5HYy5jbGVhcigpO2Zvcih2YXIgYj1tKE9iamVjdC5rZXlzKGEubGYpKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9YS5sZltjLnZhbHVlXTtkLmpiPTA7ZC5HYy5jbGVhcigpO2Zvcih2YXIgZT1tKE9iamVjdC5rZXlzKGQubmYpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9ZC5uZltmLnZhbHVlXTtnLmpiPTA7Zy5HYy5jbGVhcigpfX19CmZ1bmN0aW9uIGFuKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwPzE6ZDthLnRvdGFsKz1kO2EuamIrPWQ7dmFyIGYsZz1iPT09dm9pZCAwPyIiOmI7Zj1hLmxmW2ddfHwoYS5sZltnXT17dG90YWw6MCxqYjowLEdjOm5ldyBTZXQsbmY6e319KTtmLnRvdGFsKz1kO2YuamIrPWQ7dmFyIGgsbD1TdHJpbmcoYyk7aD1mLm5mW2xdfHwoZi5uZltsXT17dG90YWw6MCxqYjowLEdjOm5ldyBTZXR9KTtoLnRvdGFsKz1kO2guamIrPWQ7ZSE9PXZvaWQgMCYmKGEuR2MuYWRkKGUpLGYuR2MuYWRkKGUpLGguR2MuYWRkKGUpKX07dmFyIGJuPWZ1bmN0aW9uKCl7dGhpcy5IPVhtKCl9O2JuLnByb3RvdHlwZS5pbmNyZW1lbnQ9ZnVuY3Rpb24oYSxiKXthbih0aGlzLkgsYSxiKX07dmFyIGNuPW5ldyBibjtmdW5jdGlvbiBkbihhKXt2YXIgYj1TdHJpbmcoYVtHZi5ZYl18fCIiKS5yZXBsYWNlKC9fL2csIiIpO3JldHVybiBTYihiLCJjdnQiKT8iY3Z0IjpifXZhciBlbj1BLmxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCI/Z3RtX2xhdGVuY3k9Iik+PTB8fEEubG9jYXRpb24uc2VhcmNoLmluZGV4T2YoIiZndG1fbGF0ZW5jeT0iKT49MDt2YXIgZ249ZnVuY3Rpb24oKXt2YXIgYT1mbjtyZXR1cm4gTSg2MDMpJiZJZig2NSwhMSkmJiFhLlp9LGZuPW5ldyBmdW5jdGlvbihhKXt0aGlzLlI9YSgpO3ZhciBiPUpmKDI3KTt0aGlzLk49ZW58fHRoaXMuUjxiO3ZhciBjPUpmKDQyKTt0aGlzLlo9ZW58fHRoaXMuUj49MS1jO3ZhciBkPU0oNjAzKSYmSWYoNjUsITEpO3RoaXMuSz10aGlzLlp8fGQ7dmFyIGU9SmYoMjcpLGY9SmYoNjMpO3RoaXMuSD1lbnx8Zj09PTF8fHRoaXMuUj49ZSYmdGhpcy5SPGUrZn0oZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5yYW5kb20oKX0pO3ZhciBobj1mdW5jdGlvbigpe3RoaXMuSD17fX07aG4ucHJvdG90eXBlLnJlZ2lzdGVyPWZ1bmN0aW9uKGEsYixjKXtpZihmbi5LKXt2YXIgZD1qbihiLGMpO2lmKGQpe3ZhciBlLGY9YjtmPT09NCYmKGY9NSk7dmFyIGc9dGhpcy5IW2ZdO2d8fChnPXRoaXMuSFtmXT17fSk7ZT1nO3ZhciBoPWVbZF07aHx8KGg9ZVtkXT1bXSk7aC5wdXNoKG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYSkpO2NuLmluY3JlbWVudChhLmRlc3RpbmF0aW9uSWQsYS5lbmRwb2ludCk7YS5lbmRwb2ludCE9PTU2JiZhLmVuZHBvaW50IT09NjEmJlZtKCJtZGUiLCEwKX19fTsKdmFyIG1uPWZ1bmN0aW9uKGEsYil7dmFyIGM9a24sZD1qbihhLGIpO2lmKGQpe3ZhciBlPWxuKGMsYSk7aWYoZSl7dmFyIGY9ZVtkXTtmJiYoZVtkXT1mLmZpbHRlcihmdW5jdGlvbihnKXtyZXR1cm4hZy5Fb30pKX19fSxsbj1mdW5jdGlvbihhLGIpe2I9PT00JiYoYj01KTtyZXR1cm4gYS5IW2JdfSxqbj1mdW5jdGlvbihhLGIpe3ZhciBjPWI7aWYoYlswXT09PSIvIil7dmFyIGQ7Yz0oKGQ9QS5sb2NhdGlvbik9PW51bGw/dm9pZCAwOmQub3JpZ2luKStifXRyeXt2YXIgZT1uZXcgVVJMKGMpO3JldHVybiBhPT09Mj9lLm9yaWdpbjplLm9yaWdpbitlLnBhdGhuYW1lfWNhdGNoKGYpe319LGtuPW5ldyBobjsKZnVuY3Rpb24gbm4oYSl7c3dpdGNoKGEpe2Nhc2UgInNjcmlwdC1zcmMiOnJldHVybiA0O2Nhc2UgInNjcmlwdC1zcmMtZWxlbSI6cmV0dXJuIDU7Y2FzZSAiZnJhbWUtc3JjIjpyZXR1cm4gMjtjYXNlICJjb25uZWN0LXNyYyI6cmV0dXJuIDE7Y2FzZSAiaW1nLXNyYyI6cmV0dXJuIDN9fTtmdW5jdGlvbiBvbihhLGIsYyl7dmFyIGQsZT1hLkdvb2dsZWJRaENzTztlfHwoZT17fSxhLkdvb2dsZWJRaENzTz1lKTtkPWU7aWYoZFtiXSlyZXR1cm4hMTtkW2JdPVtdO2RbYl1bMF09YztyZXR1cm4hMH07dmFyIHBuLHFuO2E6e2Zvcih2YXIgcm49WyJDTE9TVVJFX0ZMQUdTIl0sc249UmEsdG49MDt0bjxybi5sZW5ndGg7dG4rKylpZihzbj1zbltyblt0bl1dLHNuPT1udWxsKXtxbj1udWxsO2JyZWFrIGF9cW49c259dmFyIHVuPXFuJiZxbls2MTA0MDEzMDFdO3BuPXVuIT1udWxsP3VuOiExO2Z1bmN0aW9uIHZuKCl7dmFyIGE9UmEubmF2aWdhdG9yO2lmKGEpe3ZhciBiPWEudXNlckFnZW50O2lmKGIpcmV0dXJuIGJ9cmV0dXJuIiJ9dmFyIHduLHhuPVJhLm5hdmlnYXRvcjt3bj14bj94bi51c2VyQWdlbnREYXRhfHxudWxsOm51bGw7ZnVuY3Rpb24geW4oYSl7aWYoIXBufHwhd24pcmV0dXJuITE7Zm9yKHZhciBiPTA7Yjx3bi5icmFuZHMubGVuZ3RoO2IrKyl7dmFyIGM9d24uYnJhbmRzW2JdLmJyYW5kO2lmKGMmJmMuaW5kZXhPZihhKSE9LTEpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gem4oYSl7cmV0dXJuIHZuKCkuaW5kZXhPZihhKSE9LTF9O2Z1bmN0aW9uIEFuKCl7cmV0dXJuIHBuPyEhd24mJnduLmJyYW5kcy5sZW5ndGg+MDohMX1mdW5jdGlvbiBCbigpe3JldHVybiBBbigpPyExOnpuKCJPcGVyYSIpfWZ1bmN0aW9uIENuKCl7cmV0dXJuIHpuKCJGaXJlZm94Iil8fHpuKCJGeGlPUyIpfWZ1bmN0aW9uIERuKCl7cmV0dXJuIEFuKCk/eW4oIkNocm9taXVtIik6KHpuKCJDaHJvbWUiKXx8em4oIkNyaU9TIikpJiYhKEFuKCk/MDp6bigiRWRnZSIpKXx8em4oIlNpbGsiKX07ZnVuY3Rpb24gRW4oKXtyZXR1cm4gcG4/ISF3biYmISF3bi5wbGF0Zm9ybTohMX1mdW5jdGlvbiBGbigpe3JldHVybiB6bigiaVBob25lIikmJiF6bigiaVBvZCIpJiYhem4oImlQYWQiKX1mdW5jdGlvbiBHbigpe0ZuKCl8fHpuKCJpUGFkIil8fHpuKCJpUG9kIil9O3ZhciBIbj1mdW5jdGlvbihhKXtIblsiICJdKGEpO3JldHVybiBhfTtIblsiICJdPWZ1bmN0aW9uKCl7fTtCbigpO0FuKCl8fHpuKCJUcmlkZW50Iil8fHpuKCJNU0lFIik7em4oIkVkZ2UiKTshem4oIkdlY2tvIil8fHZuKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKSE9LTEmJiF6bigiRWRnZSIpfHx6bigiVHJpZGVudCIpfHx6bigiTVNJRSIpfHx6bigiRWRnZSIpO3ZuKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKSE9LTEmJiF6bigiRWRnZSIpJiZ6bigiTW9iaWxlIik7RW4oKXx8em4oIk1hY2ludG9zaCIpO0VuKCl8fHpuKCJXaW5kb3dzIik7KEVuKCk/d24ucGxhdGZvcm09PT0iTGludXgiOnpuKCJMaW51eCIpKXx8RW4oKXx8em4oIkNyT1MiKTtFbigpfHx6bigiQW5kcm9pZCIpO0ZuKCk7em4oImlQYWQiKTt6bigiaVBvZCIpO0duKCk7dm4oKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImthaW9zIik7Q24oKTtGbigpfHx6bigiaVBvZCIpO3puKCJpUGFkIik7IXpuKCJBbmRyb2lkIil8fERuKCl8fENuKCl8fEJuKCl8fHpuKCJTaWxrIik7RG4oKTshem4oIlNhZmFyaSIpfHxEbigpfHwoQW4oKT8wOnpuKCJDb2FzdCIpKXx8Qm4oKXx8KEFuKCk/MDp6bigiRWRnZSIpKXx8KEFuKCk/eW4oIk1pY3Jvc29mdCBFZGdlIik6em4oIkVkZy8iKSl8fChBbigpP3luKCJPcGVyYSIpOnpuKCJPUFIiKSl8fENuKCl8fHpuKCJTaWxrIil8fHpuKCJBbmRyb2lkIil8fEduKCk7dmFyIEluPXt9LEpuPW51bGw7CmZ1bmN0aW9uIEtuKGEpe2Zvcih2YXIgYj1bXSxjPTAsZD0wO2Q8YS5sZW5ndGg7ZCsrKXt2YXIgZT1hLmNoYXJDb2RlQXQoZCk7ZT4yNTUmJihiW2MrK109ZSYyNTUsZT4+PTgpO2JbYysrXT1lfXZhciBmPTQ7Zj09PXZvaWQgMCYmKGY9MCk7aWYoIUpuKXtKbj17fTtmb3IodmFyIGc9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ii5zcGxpdCgiIiksaD1bIisvPSIsIisvIiwiLV89IiwiLV8uIiwiLV8iXSxsPTA7bDw1O2wrKyl7dmFyIG49Zy5jb25jYXQoaFtsXS5zcGxpdCgiIikpO0luW2xdPW47Zm9yKHZhciBwPTA7cDxuLmxlbmd0aDtwKyspe3ZhciBxPW5bcF07Sm5bcV09PT12b2lkIDAmJihKbltxXT1wKX19fWZvcih2YXIgcj1JbltmXSx0PUFycmF5KE1hdGguZmxvb3IoYi5sZW5ndGgvMykpLHU9cls2NF18fCIiLHY9MCx4PTA7djxiLmxlbmd0aC0yO3YrPTMpe3ZhciB5PWJbdl0sej1iW3YrMV0sQz1iW3YrMl0sCkQ9clt5Pj4yXSxJPXJbKHkmMyk8PDR8ej4+NF0sRz1yWyh6JjE1KTw8MnxDPj42XSxOPXJbQyY2M107dFt4KytdPSIiK0QrSStHK059dmFyIFM9MCxXPXU7c3dpdGNoKGIubGVuZ3RoLXYpe2Nhc2UgMjpTPWJbdisxXSxXPXJbKFMmMTUpPDwyXXx8dTtjYXNlIDE6dmFyIGVhPWJbdl07dFt4XT0iIityW2VhPj4yXStyWyhlYSYzKTw8NHxTPj40XStXK3V9cmV0dXJuIHQuam9pbigiIil9O3ZhciBMbj1mdW5jdGlvbihhKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGEucmVwbGFjZSgvXCsvZywiICIpKX07dmFyIE1uPVJlZ0V4cCgiXig/OihbXjovPyMuXSspOik/KD86Ly8oPzooW15cXFxcLz8jXSopQCk/KFteXFxcXC8/I10qPykoPzo6KFswLTldKykpPyg/PVtcXFxcLz8jXXwkKSk/KFtePyNdKyk/KD86XFw/KFteI10qKSk/KD86IyhbXFxzXFxTXSopKT8kIik7ZnVuY3Rpb24gTm4oYSxiLGMsZCl7Zm9yKHZhciBlPWIsZj1jLmxlbmd0aDsoZT1hLmluZGV4T2YoYyxlKSk+PTAmJmU8ZDspe3ZhciBnPWEuY2hhckNvZGVBdChlLTEpO2lmKGc9PTM4fHxnPT02Myl7dmFyIGg9YS5jaGFyQ29kZUF0KGUrZik7aWYoIWh8fGg9PTYxfHxoPT0zOHx8aD09MzUpcmV0dXJuIGV9ZSs9ZisxfXJldHVybi0xfXZhciBPbj0vI3wkLzsKZnVuY3Rpb24gUG4oYSxiKXt2YXIgYz1hLnNlYXJjaChPbiksZD1ObihhLDAsYixjKTtpZihkPDApcmV0dXJuIG51bGw7dmFyIGU9YS5pbmRleE9mKCImIixkKTtpZihlPDB8fGU+YyllPWM7ZCs9Yi5sZW5ndGgrMTtyZXR1cm4gTG4oYS5zbGljZShkLGUhPT0tMT9lOjApKX12YXIgUW49L1s/Jl0oJHwjKS87CmZ1bmN0aW9uIFJuKGEsYixjKXtmb3IodmFyIGQsZT1hLnNlYXJjaChPbiksZj0wLGcsaD1bXTsoZz1ObihhLGYsYixlKSk+PTA7KWgucHVzaChhLnN1YnN0cmluZyhmLGcpKSxmPU1hdGgubWluKGEuaW5kZXhPZigiJiIsZykrMXx8ZSxlKTtoLnB1c2goYS5zbGljZShmKSk7ZD1oLmpvaW4oIiIpLnJlcGxhY2UoUW4sIiQxIik7dmFyIGwsbj1jIT1udWxsPyI9IitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGMpKToiIjt2YXIgcD1iK247aWYocCl7dmFyIHEscj1kLmluZGV4T2YoIiMiKTtyPDAmJihyPWQubGVuZ3RoKTt2YXIgdD1kLmluZGV4T2YoIj8iKSx1O3Q8MHx8dD5yPyh0PXIsdT0iIik6dT1kLnN1YnN0cmluZyh0KzEscik7cT1bZC5zbGljZSgwLHQpLHUsZC5zbGljZShyKV07dmFyIHY9cVsxXTtxWzFdPXA/dj92KyImIitwOnA6djtsPXFbMF0rKHFbMV0/Ij8iK3FbMV06IiIpK3FbMl19ZWxzZSBsPWQ7cmV0dXJuIGx9O2Z1bmN0aW9uIFNuKGEsYixjLGQsZSxmLGcsaCl7dmFyIGw9UG4oYywiZm10Iik7aWYoZCl7dmFyIG49UG4oYywicmFuZG9tIikscD1QbihjLCJsYWJlbCIpfHwiIjtpZighbilyZXR1cm47dmFyIHE9S24oTG4ocCkrIjoiK0xuKG4pKTtpZighb24oYSxxLGQpKXJldHVybn1sJiZOdW1iZXIobCkhPT00PyhjPVJuKGMsInJmbXQiLGwpLGM9Um4oYywiZm10Iiw0KSk6bHx8KGM9Um4oYywiZm10Iiw0KSk7VWMoYyxmdW5jdGlvbigpe2c9PW51bGx8fFRuKGcpO2g9PW51bGx8fFVuKGgsYyk7YS5nb29nbGVfbm9GdXJ0aGVyUmVkaXJlY3RzJiZkJiYoYS5nb29nbGVfbm9GdXJ0aGVyUmVkaXJlY3RzPW51bGwsZCgpKX0sZnVuY3Rpb24oKXtnPT1udWxsfHxUbihnKTtoPT1udWxsfHxVbihoLGMpO2U9PW51bGx8fGUoKX0sZixiLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXS5wYXJlbnRFbGVtZW50fHx2b2lkIDApO3JldHVybiBjfTtmdW5jdGlvbiBWbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSwxLGJbMF0pO2lkLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gV24oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsMSxiWzBdKTtyZXR1cm4gamQuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBYbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSwzLGJbMF0pO1pjLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gWW4oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsMSxiWzBdKTtyZXR1cm4gbWQuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBabihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7a24ucmVnaXN0ZXIoYSw1LGJbMF0pO1VjLmFwcGx5KG51bGwsdyhiKSl9CmZ1bmN0aW9uICRuKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtiWzBdJiZrbi5yZWdpc3RlcihhLDIsYlswXSk7WGMuYXBwbHkobnVsbCx3KGIpKX1mdW5jdGlvbiBhbyhhKXt2YXIgYj1Tbi5hcHBseShudWxsLHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSk7YiYma24ucmVnaXN0ZXIoYSw0LGIpO3JldHVybiBifTt2YXIgYm89e01hOntSZTowLFVlOjEsTGg6Mn19O2JvLk1hW2JvLk1hLlJlXT0iRlVMTF9UUkFOU01JU1NJT04iO2JvLk1hW2JvLk1hLlVlXT0iTElNSVRFRF9UUkFOU01JU1NJT04iO2JvLk1hW2JvLk1hLkxoXT0iTk9fVFJBTlNNSVNTSU9OIjt2YXIgY289e2lhOntnZDowLGNiOjEseGQ6MixaYjozfX07Y28uaWFbY28uaWEuZ2RdPSJOT19RVUVVRSI7Y28uaWFbY28uaWEuY2JdPSJBRFMiO2NvLmlhW2NvLmlhLnhkXT0iQU5BTFlUSUNTIjtjby5pYVtjby5pYS5aYl09Ik1PTklUT1JJTkciO3ZhciBlbz1mdW5jdGlvbihhLGIpe3RoaXMuSD1hO3RoaXMuY29uc2VudFR5cGVzPWJ9O2VvLnByb3RvdHlwZS5pc0NvbnNlbnRHcmFudGVkPWZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuSCl7Y2FzZSAwOnJldHVybiB0aGlzLmNvbnNlbnRUeXBlcy5ldmVyeShmdW5jdGlvbihhKXtyZXR1cm4gQmwoYSl9KTtjYXNlIDE6cmV0dXJuIHRoaXMuY29uc2VudFR5cGVzLnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIEJsKGEpfSk7ZGVmYXVsdDp5Yyh0aGlzLkgsImNvbnNlbnRzUmVxdWlyZWQgaGFkIGFuIHVua25vd24gdHlwZSIpfX07CnZhciBmbz1uZXcgZnVuY3Rpb24oKXt2YXIgYT17fTt0aGlzLkg9KGFbY28uaWEuZ2RdPWJvLk1hLlJlLGFbY28uaWEuY2JdPWJvLk1hLlJlLGFbY28uaWEueGRdPWJvLk1hLlJlLGFbY28uaWEuWmJdPWJvLk1hLlJlLGEpO3ZhciBiPXt9O3RoaXMuSz0oYltjby5pYS5nZF09bmV3IGVvKDAsW10pLGJbY28uaWEuY2JdPW5ldyBlbygwLFsiYWRfc3RvcmFnZSJdKSxiW2NvLmlhLnhkXT1uZXcgZW8oMCxbImFuYWx5dGljc19zdG9yYWdlIl0pLGJbY28uaWEuWmJdPW5ldyBlbygxLFsiYWRfc3RvcmFnZSIsImFuYWx5dGljc19zdG9yYWdlIl0pLGIpfTt2YXIgaG89ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0aGlzLnR5cGU9YTt0aGlzLkg9W107RmwoZm8uS1thXS5jb25zZW50VHlwZXMsZnVuY3Rpb24oKXtnbyhiKXx8Yi5mbHVzaCgpfSl9O2hvLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe2Zvcih2YXIgYT1tKHRoaXMuSCksYj1hLm5leHQoKTshYi5kb25lO2I9YS5uZXh0KCkpe3ZhciBjPWIudmFsdWU7YygpfXRoaXMuSD1bXX07dmFyIGdvPWZ1bmN0aW9uKGEpe3JldHVybiBmby5IW2EudHlwZV09PT1iby5NYS5MaCYmIWZvLktbYS50eXBlXS5pc0NvbnNlbnRHcmFudGVkKCl9LGlvPWZ1bmN0aW9uKGEsYil7Z28oYSk/YS5ILnB1c2goYik6YigpfSxqbz1mdW5jdGlvbigpe3RoaXMuSD1uZXcgTWFwfSxsbz1mdW5jdGlvbihhKXt2YXIgYj1rbztiLkguaGFzKGEpfHxiLkguc2V0KGEsbmV3IGhvKGEpKTtyZXR1cm4gYi5ILmdldChhKX07am8ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5ILmNsZWFyKCl9Owp2YXIga289bmV3IGpvO3ZhciBtbz1bImZpbiIsImZzIiwibWNjIiwibmNjIl0sbm89ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwPyExOmE7dmFyIGI9Um0oKSxjPVFtLkssZD1iLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gY1tlXSE9PXZvaWQgMCYmKGF8fCFtby5pbmNsdWRlcyhlKSl9KTtUbShkKTtyZXR1cm4gZC5tYXAoZnVuY3Rpb24oZSl7dmFyIGY9Y1tlXTt0eXBlb2YgZj09PSJmdW5jdGlvbiImJihmPWYoKSk7cmV0dXJuIGY/IiYiK2UrIj0iK2Y6IiJ9KS5qb2luKCIiKSsiJno9MCJ9LG9vPWZ1bmN0aW9uKGEpe3ZhciBiPSJodHRwczovLyIrRSgyMSksYz0iL3RkP2lkPSIrRSg1KTtyZXR1cm4iIitmayhiKStjK2F9LHBvPWZ1bmN0aW9uKGEsYixjKXtiPWI9PT12b2lkIDA/ITE6YjtjPWM9PT12b2lkIDA/ITE6YztpZigkaygyNikmJmZuLksmJkUoNSkmJihjfHwhZ24oKSkpe3ZhciBkPWxvKGNvLmlhLlpiKTtpZihnbyhkKSlhLkh8fChhLkg9ITAsaW8oZCxmdW5jdGlvbigpe3JldHVybiBwbyhhKX0pKTsKZWxzZXtiJiZVbSgiZmluIiwiMSIpO3ZhciBlPW5vKGIpLGY9b28oZSksZz17ZGVzdGluYXRpb25JZDpFKDUpLGVuZHBvaW50OjYxfTtiP1luKGcsZix2b2lkIDAse1FnOiEwfSx2b2lkIDAsZnVuY3Rpb24oKXtaYyhmKyImaW1nPTEiKX0pOlhuKGcsZik7YS5IPSExO3FvKGUpfX19LHFvPWZ1bmN0aW9uKGEpe2lmKEtjJiYoU2IoS2MsImh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tLyIpfHxJZig0NykpJiYhKGEuaW5kZXhPZigiJmNzcD0iKTwwJiZhLmluZGV4T2YoIiZtZGU9Iik8MCkpe3ZhciBiO2E6e3RyeXtpZihLYyl7Yj1uZXcgVVJMKEtjKTticmVhayBhfX1jYXRjaChjKXt9Yj12b2lkIDB9YiYmVWMoIiIrS2MrKEtjLmluZGV4T2YoIj8iKT49MD8iJiI6Ij8iKSsiaXNfdGQ9MSIrYSl9fSxybz1mdW5jdGlvbihhKXtSbSgpLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIVBtW2JdfSkmJnBvKGEsITApfSxzbz1uZXcgZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0hMTsKJGMoQSwicGFnZWhpZGUiLGZ1bmN0aW9uKCl7cm8oYSl9KX07ZnVuY3Rpb24gdG8oYSxiKXtwbyhzbyxhPT09dm9pZCAwPyExOmEsYj09PXZvaWQgMD8hMTpiKX07dmFyIHVvPVsiYWRfc3RvcmFnZSIsImFuYWx5dGljc19zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIiwiYWRfcGVyc29uYWxpemF0aW9uIl0sdm89W0YuRC5kZCxGLkQueWMsRi5ELlFmLEYuRC5LYixGLkQueGMsRi5ELmZiLEYuRC5EYixGLkQubmIsRi5ELkxiLEYuRC52Y10seW89ZnVuY3Rpb24oKXt2YXIgYT13bzshYS5SJiZhLkgmJih1by5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBBbC5jb250YWluZXJTY29wZWREZWZhdWx0c1tiXSE9PTF9KXx8eG8oIm1iYyIpKTthLlI9ITB9LHhvPWZ1bmN0aW9uKGEpe2ZuLksmJihVbShhLCIxIiksdG8oKSl9LHpvPWZ1bmN0aW9uKGEsYil7dmFyIGM9d287aWYoIWMuTltiXSYmKGMuTltiXT0hMCxjLktbYl0pKWZvcih2YXIgZD1tKHZvKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSlpZihPKGEsZS52YWx1ZSkpe3hvKCJlcmMiKTticmVha319LHdvPW5ldyBmdW5jdGlvbigpe3RoaXMuUj10aGlzLkg9ITE7dGhpcy5OPXt9O3RoaXMuSz17fX07dmFyIEFvPXt9LEJvPU9iamVjdC5mcmVlemUoKEFvW0YuRC5SY109MSxBb1tGLkQuaGhdPTEsQW9bRi5ELnNpXT0xLEFvW0YuRC5TY109MSxBb1tGLkQuSGFdPTEsQW9bRi5ELkxiXT0xLEFvW0YuRC5DYl09MSxBb1tGLkQuVGJdPTEsQW9bRi5ELklkXT0xLEFvW0YuRC52Y109MSxBb1tGLkQubmJdPTEsQW9bRi5ELkpkXT0xLEFvW0YuRC5IZV09MSxBb1tGLkQuT2FdPTEsQW9bRi5ELlFwXT0xLEFvW0YuRC5QZl09MSxBb1tGLkQuRmldPTEsQW9bRi5ELnBoXT0xLEFvW0YuRC5XY109MSxBb1tGLkQuUWZdPTEsQW9bRi5ELmFxXT0xLEFvW0YuRC5UYV09MSxBb1tGLkQuVWZdPTEsQW9bRi5ELmZxXT0xLEFvW0YuRC5PZF09MSxBb1tGLkQuUmxdPTEsQW9bRi5ELlljXT0xLEFvW0YuRC5aY109MSxBb1tGLkQuRGJdPTEsQW9bRi5ELmFtXT0xLEFvW0YuRC5XYl09MSxBb1tGLkQuVGRdPTEsQW9bRi5ELlhiXT0xLEFvW0YuRC5PaV09MSxBb1tGLkQuZGRdPTEsQW9bRi5ELnloXT0xLEFvW0YuRC5QaV09CjEsQW9bRi5ELlVkXT0xLEFvW0YuRC55Y109MSxBb1tGLkQuVmRdPTEsQW9bRi5ELmxtXT0xLEFvW0YuRC5XZF09MSxBb1tGLkQuZWRdPTEsQW9bRi5ELm9qXT0xLEFvKSk7T2JqZWN0LmZyZWV6ZShbRi5ELnphLEYuRC5VYSxGLkQuTWIsRi5ELnRiLEYuRC5OaSxGLkQuZmIsRi5ELkdpLEYuRC5NcF0pOwp2YXIgQ289e30sRG89T2JqZWN0LmZyZWV6ZSgoQ29bRi5ELnFwXT0xLENvW0YuRC5ycF09MSxDb1tGLkQudHBdPTEsQ29bRi5ELnVwXT0xLENvW0YuRC52cF09MSxDb1tGLkQuenBdPTEsQ29bRi5ELkFwXT0xLENvW0YuRC5CcF09MSxDb1tGLkQuRHBdPTEsQ29bRi5ELnlmXT0xLENvKSksRW89e30sRm89T2JqZWN0LmZyZWV6ZSgoRW9bRi5ELnZsXT0xLEVvW0YuRC53bF09MSxFb1tGLkQueGVdPTEsRW9bRi5ELnllXT0xLEVvW0YuRC54bF09MSxFb1tGLkQuQWRdPTEsRW9bRi5ELnplXT0xLEVvW0YuRC5vY109MSxFb1tGLkQuUWNdPTEsRW9bRi5ELnFjXT0xLEVvW0YuRC5JYl09MSxFb1tGLkQuQWVdPTEsRW9bRi5ELnJjXT0xLEVvW0YuRC55bF09MSxFbykpLEdvPU9iamVjdC5mcmVlemUoW0YuRC5SYyxGLkQuU2MsRi5ELkpkLEYuRC5RZixGLkQuV2YsRi5ELlRkLEYuRC5PaSxGLkQuVmRdKSxIbz1PYmplY3QuZnJlZXplKFtdLmNvbmNhdCh3KEdvKSkpLElvPU9iamVjdC5mcmVlemUoW0YuRC5DYiwKRi5ELnBoLEYuRC55aCxGLkQuUGksRi5ELm5oXSksSm89T2JqZWN0LmZyZWV6ZShbXS5jb25jYXQodyhJbykpKSxLbz17fSxMbz0oS29bRi5ELmthXT0iMSIsS29bRi5ELnJhXT0iMiIsS29bRi5ELm1hXT0iMyIsS29bRi5ELlhhXT0iNCIsS28pLE1vPXt9LE5vPU9iamVjdC5mcmVlemUoKE1vLnNlYXJjaD0icyIsTW8ueW91dHViZT0ieSIsTW8ucGxheXN0b3JlPSJwIixNby5zaG9wcGluZz0iaCIsTW8uYWRzPSJhIixNby5tYXBzPSJtIixNbykpO2Z1bmN0aW9uIE9vKGEpe3JldHVybiB0eXBlb2YgYSE9PSJvYmplY3QifHxhPT09bnVsbD97fTphfWZ1bmN0aW9uIFBvKGEpe3JldHVybiBhPT09dm9pZCAwfHxhPT09bnVsbD8iIjp0eXBlb2YgYT09PSJvYmplY3QiP2EudG9TdHJpbmcoKTpTdHJpbmcoYSl9ZnVuY3Rpb24gUW8oYSl7aWYoYSE9PXZvaWQgMCYmYSE9PW51bGwpcmV0dXJuIFBvKGEpfTt2YXIgUm89W0YuRC5rYSxGLkQucmEsRi5ELm1hLEYuRC5YYV07ZnVuY3Rpb24gU28oYSl7Zm9yKHZhciBiPW0oYVtGLkQubmNdfHxbIiJdKSxjPWIubmV4dCgpLGQ9e307IWMuZG9uZTtkPXtyZWdpb246dm9pZCAwfSxjPWIubmV4dCgpKWQucmVnaW9uPWMudmFsdWUsR2IoYSxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oZixnKXtpZihmIT09Ri5ELm5jKXt2YXIgaD1QbyhnKSxsPWUucmVnaW9uLG49eW0oKSxwPXptKCk7eWw9ITA7eGwmJnNiKCJUQUdHSU5HIiwyMCk7dGwoKS5kZWNsYXJlKGYsaCxsLG4scCl9fX0oZCkpfQpmdW5jdGlvbiBUbyhhKXt5bygpO3ZhciBiPWFsKDE3LGZ1bmN0aW9uKCl7cmV0dXJuITF9KSxjPWFsKDE2LGZ1bmN0aW9uKCl7cmV0dXJuITF9KTshYiYmYyYmeG8oImNyYyIpO1prKDE3LCEwKTt2YXIgZD1hW0YuRC5ZZ107ZCYmUCg0MSk7dmFyIGU9YVtGLkQubmNdO2U/UCg0MCk6ZT1bIiJdO2Zvcih2YXIgZj1tKGUpLGc9Zi5uZXh0KCksaD17fTshZy5kb25lO2g9e0JvOnZvaWQgMH0sZz1mLm5leHQoKSloLkJvPWcudmFsdWUsR2IoYSxmdW5jdGlvbihsKXtyZXR1cm4gZnVuY3Rpb24obixwKXtpZihuIT09Ri5ELm5jJiZuIT09Ri5ELllnKXt2YXIgcT1RbyhwKSxyPWwuQm8sdD1OdW1iZXIoZCksdT15bSgpLHY9em0oKTt0PXQ9PT12b2lkIDA/MDp0O3hsPSEwO3lsJiZzYigiVEFHR0lORyIsMjApO3RsKCkuZGVmYXVsdChuLHEscix1LHYsdCxBbCl9fX0oaCkpfQpmdW5jdGlvbiBVbyhhKXtBbC51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHM9ITA7dmFyIGI9YVtGLkQubmNdO2lmKGIpe3ZhciBjPUFycmF5LmlzQXJyYXkoYik/YjpbYl07aWYoIWMuaW5jbHVkZXMoem0oKSkmJiFjLmluY2x1ZGVzKHltKCkpKXJldHVybn1HYihhLGZ1bmN0aW9uKGQsZSl7c3dpdGNoKGQpe2Nhc2UgImFkX3N0b3JhZ2UiOmNhc2UgImFuYWx5dGljc19zdG9yYWdlIjpjYXNlICJhZF91c2VyX2RhdGEiOmNhc2UgImFkX3BlcnNvbmFsaXphdGlvbiI6YnJlYWs7ZGVmYXVsdDpyZXR1cm59QWwudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzPSEwO0FsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzW2RdPWU9PT0iZ3JhbnRlZCI/MzoyfSl9CmZ1bmN0aW9uIFZvKGEsYil7eW8oKTtaaygxNiwhMCk7R2IoYSxmdW5jdGlvbihjLGQpe3ZhciBlPVBvKGQpO3hsPSEwO3lsJiZzYigiVEFHR0lORyIsMjApO3RsKCkudXBkYXRlKGMsZSxBbCl9KTtHbChiLmV2ZW50SWQsYi5wcmlvcml0eUlkKX1mdW5jdGlvbiBXbyhhKXthLmhhc093blByb3BlcnR5KCJhbGwiKSYmKEFsLnNlbGVjdGVkQWxsQ29yZVBsYXRmb3JtU2VydmljZXM9ITAsR2IoTm8sZnVuY3Rpb24oYil7QWwuY29yZVBsYXRmb3JtU2VydmljZXNbYl09YS5hbGw9PT0iZ3JhbnRlZCI7QWwudXNlZENvcmVQbGF0Zm9ybVNlcnZpY2VzPSEwfSkpO0diKGEsZnVuY3Rpb24oYixjKXtiIT09ImFsbCImJihBbC5jb3JlUGxhdGZvcm1TZXJ2aWNlc1tiXT1jPT09ImdyYW50ZWQiLEFsLnVzZWRDb3JlUGxhdGZvcm1TZXJ2aWNlcz0hMCl9KX0KZnVuY3Rpb24gWG8oYSl7QXJyYXkuaXNBcnJheShhKXx8KGE9W2FdKTtyZXR1cm4gYS5ldmVyeShmdW5jdGlvbihiKXtyZXR1cm4gQmwoYil9KX1mdW5jdGlvbiBZbygpe3ZhciBhPVpvO0FycmF5LmlzQXJyYXkoYSl8fChhPVthXSk7cmV0dXJuIGEuc29tZShmdW5jdGlvbihiKXtyZXR1cm4gQmwoYil9KX1mdW5jdGlvbiAkbyhhLGIpe0ZsKGEsYil9ZnVuY3Rpb24gYXAoYSxiKXtJbChhLGIpfWZ1bmN0aW9uIGJwKGEsYil7SGwoYSxiKX1mdW5jdGlvbiBjcCgpe3ZhciBhPVtGLkQua2EsRi5ELlhhLEYuRC5tYV07dGwoKS53YWl0Rm9yVXBkYXRlKGEsNTAwLEFsKX1mdW5jdGlvbiBkcChhKXtmb3IodmFyIGI9bShhKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZTt0bCgpLmNsZWFyVGltZW91dChkLHZvaWQgMCxBbCl9R2woKX0KZnVuY3Rpb24gZXAoYSl7Zm9yKHZhciBiPXt9LGM9bShhLnNwbGl0KCJ8IikpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWJbZC52YWx1ZV09ITA7cmV0dXJuIGJ9O3ZhciBmcD1PYmplY3QuZnJlZXplKFtGLkQua2EsRi5ELm1hXSk7CnZhciBocD1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz1tKE9iamVjdC5rZXlzKGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtiW2dwW2VdfHxlXT1hW2VdfXJldHVybiBifSxpcD1mdW5jdGlvbihhKXtyZXR1cm4hIVEoYSxILkoudmQpJiZSKGEsRi5ELlBkKT09PSIxIiYmUihhLEYuRC5IZCkhPT0iMSImJlhvKGZwKX0sanA9ZnVuY3Rpb24oYSxiKXtpZighaXAoYSkpcmV0dXJuITE7dmFyIGM9UWMoKXx8T2MoKT81ODo1NyxkPU5tKGMsaHAoYikpO1RsKGQsYSxjKTtZbih7ZGVzdGluYXRpb25JZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLGVuZHBvaW50OmMsZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfSxkKyImZm10PTgiLHZvaWQgMCx7UWc6ITAsbWV0aG9kOiJHRVQifSxmdW5jdGlvbigpe30sZnVuY3Rpb24oKXtaYyhkKyImZm10PTMiKX0pO3JldHVybiEwfSxrcD17fSxncD0oa3AuZGw9InVybCIsa3AuZHI9CiJyZWYiLGtwLnVpZD0idXNlcklkIixrcCk7dmFyIGxwPWZ1bmN0aW9uKGEsYil7dmFyIGM9e30sZD1mdW5jdGlvbihlKXtiW2VdIT1udWxsJiZiW2VdIT09IiImJihjW2VdPWJbZV0pfTtNKDQ3NCkmJmQoIl9nc2lkIik7UihhLEYuRC5IZCkhPT0iMSImJihkKCJnY2xpZCIpLGQoImdjbHNyYyIpLGQoImF1aWQiKSxkKCJkY2xpZCIpKTtpZihPYmplY3Qua2V5cyhjKS5sZW5ndGgpcmV0dXJuIGQoImd0bSIpLGN9Owp2YXIgbXA9e30sbnA9KG1wW0YuRC5zYV09ImdjdSIsbXBbRi5ELlNiXT0iZ2NsZ2IiLG1wW0YuRC5sYl09ImdjbGF3IixtcFtGLkQuemZdPSJnYWRfc291cmNlIixtcFtGLkQuQWZdPSJnYWRfc291cmNlX3NyYyIsbXBbRi5ELkRkXT0iZ2NsaWQiLG1wW0YuRC5BbF09ImdjbHNyYyIsbXBbRi5ELkJmXT0iZ2JyYWlkIixtcFtGLkQuRWVdPSJ3YnJhaWQiLG1wW0YuRC5FZF09ImF1aWQiLG1wW0YuRC5CbF09ImFlIixtcFtGLkQuSGFdPW51bGwsbXBbRi5ELkRsXT0icm5kIixtcFtGLkQuSGRdPSJuY2wiLG1wW0YuRC5OZl09ImdjbGRjIixtcFtGLkQuS2RdPSJkY2xpZCIsbXBbRi5ELlZjXT0iZWRpZCIsbXBbRi5ELlViXT0iZW4iLG1wW0YuRC5LZV09ImdkcHIiLG1wW0YuRC5YY109ImdkaWQiLG1wW0YuRC5UYV09bnVsbCxtcFtGLkQuTGVdPSJfbmciLG1wW0YuRC50aF09ImdwcF9zaWQiLG1wW0YuRC51aF09ImdwcCIsbXBbRi5ELlZmXT0iX3R1IixtcFtGLkQuUWxdPSJndG1fdXAiLG1wW0YuRC5NZV09CiJmcm0iLG1wW0YuRC5QZF09ImxwcyIsbXBbRi5ELkxpXT0iZGlkIixtcFtGLkQuVWxdPSJuYXZ0IixtcFtGLkQuemFdPSJkbCIsbXBbRi5ELlVhXT0iZHIiLG1wW0YuRC5NYl09ImR0IixtcFtGLkQuYm1dPSJzY3JzcmMiLG1wW0YuRC5aZl09ImdhX3VpZCIsbXBbRi5ELk9lXT0iZ2Rwcl9jb25zZW50IixtcFtGLkQuUWldPSJ0ZXN0b25seSIsbXBbRi5ELnJxXT0idV90eiIsbXBbRi5ELlBlXT0idG9wIixtcFtGLkQuUWVdPSJ0aWQiLG1wW0YuRC5mYl09InVpZCIsbXBbRi5ELmtnXT0idXNfcHJpdmFjeSIsbXBbRi5ELmVkXT1udWxsLG1wW0YuRC5kZV09Im5wYSIsbXApO2Z1bmN0aW9uIG9wKGEsYil7aWYoYiE9bnVsbCYmYiE9PSIiKXt2YXIgYz1iPT09ITA/IjEiOmI9PT0hMT8iMCI6ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhiKSk7aWYoU2IoYSwiXyYiKSlyZXR1cm57a2V5OmEuc3Vic3RyaW5nKDIpLHZhbHVlOmN9O3ZhciBkPW5wW2FdO2lmKGQhPT1udWxsKXJldHVybiBkP3trZXk6ZCx2YWx1ZTpjfTp7a2V5OkFiKGIpPyJlcG4uIithOiJlcC4iK2EsdmFsdWU6Y319fTtmdW5jdGlvbiBwcChhKXthPWE9PT12b2lkIDA/W106YTtyZXR1cm4geGooYSkuam9pbigifiIpfTtmdW5jdGlvbiBxcCgpe3ZhciBhPVtdLGI9TnVtYmVyKCcnKXx8MCxjPU51bWJlcignJyl8fDA7Y3x8KGM9Yi8xMDApO3ZhciBkPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7cmV0dXJuIHR9KCk7YS5wdXNoKHt1azoyMjgsc3R1ZHlJZDoyMjgsZXhwZXJpbWVudElkOjEwNTE3NzE1NCxjb250cm9sSWQ6MTA1MTc3MTU1LGNvbnRyb2xJZDI6MTA1MjU1MjQ1LHByb2JhYmlsaXR5OmMsYWN0aXZlOmQsWmU6MH0pO3ZhciBlPU51bWJlcignJyl8fAowLGY9TnVtYmVyKCcnKXx8MDtmfHwoZj1lLzEwMCk7dmFyIGc9ZnVuY3Rpb24oKXt2YXIgdD0hMTtyZXR1cm4gdH0oKTthLnB1c2goe3VrOjIzNSxzdHVkeUlkOjIzNSxleHBlcmltZW50SWQ6MTA1MzU3MTUwLGNvbnRyb2xJZDoxMDUzNTcxNTEsY29udHJvbElkMjowLHByb2JhYmlsaXR5OmYsYWN0aXZlOmcsWmU6MX0pO3ZhciBoPU51bWJlcignJyl8fDAsbD1OdW1iZXIoJycpfHwKMDtsfHwobD1oLzEwMCk7dmFyIG49ZnVuY3Rpb24oKXt2YXIgdD0hMTtyZXR1cm4gdH0oKTthLnB1c2goe3VrOjI2NixzdHVkeUlkOjI2NixleHBlcmltZW50SWQ6MTE1NzE4NTI5LGNvbnRyb2xJZDoxMTU3MTg1MzAsY29udHJvbElkMjoxMTU3MTg1MzEscHJvYmFiaWxpdHk6bCxhY3RpdmU6bixaZTowfSk7dmFyIHA9TnVtYmVyKCcnKXx8MCxxPU51bWJlcignJyl8fAowO3F8fChxPXAvMTAwKTt2YXIgcj1mdW5jdGlvbigpe3ZhciB0PSExO3JldHVybiB0fSgpO2EucHVzaCh7dWs6MjY3LHN0dWR5SWQ6MjY3LGV4cGVyaW1lbnRJZDoxMTU3MTg1MjYsY29udHJvbElkOjExNTcxODUyNyxjb250cm9sSWQyOjExNTcxODUyOCxwcm9iYWJpbGl0eTpxLGFjdGl2ZTpyLFplOjB9KTtyZXR1cm4gYX07dmFyIHJwPWZ1bmN0aW9uKCl7dGhpcy5LPXt9O3RoaXMuSD17fTt0aGlzLk49e307dGhpcy5SPW5ldyBTZXR9LHhwPWZ1bmN0aW9uKGEsYil7dmFyIGM9YixkPWI9YS5OW2Muc3R1ZHlJZF0/bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjLHthY3RpdmU6ITB9KTpjLGU9Rmk7ZC5jb250cm9sSWQyJiZkLnByb2JhYmlsaXR5PD0uMjV8fChkPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sZCx7Y29udHJvbElkMjowfSkpO2Uuc3R1ZGllc1tkLnN0dWR5SWRdPWQ7Yi5mb2N1c2VkJiYoYS5LW2Iuc3R1ZHlJZF09ITApO2lmKGIuWmU9PT0xKXt2YXIgZj1iLnN0dWR5SWQ7c3AoYSx0cCgpLGYpO3VwKGEsZik/dGoodWosZik6dnAoYSxmKT91ai5LW2ZdPSEwOndwKGEsZikmJih1ai5IW2ZdPSEwKX1lbHNlIGlmKGIuWmU9PT0wKXt2YXIgZz1iLnN0dWR5SWQ7c3AoYSxhLkgsZyk7dXAoYSxnKT90aih1aixnKTp2cChhLGcpP3VqLktbZ109ITA6d3AoYSxnKSYmCih1ai5IW2ddPSEwKX19LHNwPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPUZpO2lmKGUuc3R1ZGllc1tjXSl7dmFyIGY9ZS5zdHVkaWVzW2NdLGc9Zi5leHBlcmltZW50SWQsaD1mLnByb2JhYmlsaXR5O2lmKCEoYi5zdHVkaWVzfHx7fSlbY10pe3ZhciBsPWIuc3R1ZGllc3x8e307bFtjXT0hMDtiLnN0dWRpZXM9bDtpZighZS5zdHVkaWVzW2NdLmFjdGl2ZSlpZihlLnN0dWRpZXNbY10ucHJvYmFiaWxpdHk+LjUpSWkoYixnLGMpO2Vsc2UgaWYoIShoPD0wfHxoPjEpKXt2YXIgbj12b2lkIDA7aWYoZCl7dmFyIHA9Q2koZCsifiIrYyk7aWYocD09PSJlMiIpbj0tMTtlbHNle2Zvcih2YXIgcT1uZXcgVWludDhBcnJheShwKSxyPUJpZ0ludCgwKSx0PW0ocSksdT10Lm5leHQoKTshdS5kb25lO3U9dC5uZXh0KCkpcj1yPDxCaWdJbnQoOCl8QmlnSW50KHUudmFsdWUpO249TnVtYmVyKHIlQmlnSW50KE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSl9fUdpLnNrKGIsYyxuKX19fWlmKCFhLktbY10pe3ZhciB2PQpOaShiLGMpO3YmJndqLkguSy5hZGQodil9fSx0cD1mdW5jdGlvbigpe3JldHVybiBvbShqbS5iYS5UcSx7fSl9LHVwPWZ1bmN0aW9uKGEsYil7dmFyIGM9dHAoKTtyZXR1cm4gS2koYyxiKXx8S2koYS5ILGIpfSx2cD1mdW5jdGlvbihhLGIpe3ZhciBjPXRwKCk7cmV0dXJuIExpKGMsYil8fExpKGEuSCxiKX0sd3A9ZnVuY3Rpb24oYSxiKXt2YXIgYz10cCgpO3JldHVybiBNaShjLGIpfHxNaShhLkgsYil9LHlwOwpmdW5jdGlvbiB6cCgpe2lmKCF5cCl7dmFyIGE9eXA9bmV3IHJwLGIsYyxkPSgoYj1BKT09bnVsbD92b2lkIDA6KGM9Yi5sb2NhdGlvbik9PW51bGw/dm9pZCAwOmMuaGFzaCl8fCIiO2lmKGRbMF09PT0iIyImJmRbMV09PT0iXyImJmRbMl09PT0idCImJmRbM109PT0iZSImJmRbNF09PT0iPSIpe3ZhciBlPWQuc3Vic3RyaW5nKDUpO2lmKGUpZm9yKHZhciBmPW0oZS5zcGxpdCgifiIpKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9TnVtYmVyKGcudmFsdWUpO2gmJihhLk5baF09ITAsdGoodWosaCkpfX1mb3IodmFyIGw9bShxcCgpKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl4cChhLG4udmFsdWUpO2Zvcih2YXIgcD1bXSxxPW0oTWYoNTYpfHxbXSkscj1xLm5leHQoKTshci5kb25lO3I9cS5uZXh0KCkpe3ZhciB0PXIudmFsdWUsdT17c3R1ZHlJZDp0WzFdLGFjdGl2ZTohIXRbMl0scHJvYmFiaWxpdHk6dFszXXx8MCxleHBlcmltZW50SWQ6dFs0XXx8CjAsY29udHJvbElkOnRbNV18fDAsY29udHJvbElkMjp0WzZdfHwwfSx2PTA7c3dpdGNoKHRbN10pe2Nhc2UgMjp2PTE7YnJlYWs7Y2FzZSAzOnY9MjticmVhaztjYXNlIDE6Y2FzZSA0OmNhc2UgNTpjYXNlIDA6dj0wfXZhciB4O2E6c3dpdGNoKHUuc3R1ZHlJZCl7Y2FzZSA1Njc6Y2FzZSA0NjI6eD0hMDticmVhayBhO2RlZmF1bHQ6eD0hMX12YXIgeT1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHUse1plOnYsZm9jdXNlZDp4fSk7KHkuYWN0aXZlfHx5LnByb2JhYmlsaXR5Pi41JiZ5LmV4cGVyaW1lbnRJZHx8eS5leHBlcmltZW50SWQmJnkuY29udHJvbElkKSYmcC5wdXNoKHkpfWZvcih2YXIgej1tKHApLEM9ei5uZXh0KCk7IUMuZG9uZTtDPXoubmV4dCgpKXhwKGEsQy52YWx1ZSl9fQpmdW5jdGlvbiBBcChhLGIpe3pwKCk7dmFyIGM9eXA7c3AoYyx0cCgpLGEsYik7dXAoYyxhKT90aih1aixhKTp2cChjLGEpP3VqLktbYV09ITA6d3AoYyxhKSYmKHVqLkhbYV09ITApfWZ1bmN0aW9uIEJwKCl7enAoKTt2YXIgYT15cCxiPXVwKGEsNTY3KTtpZihhLktbNTY3XSl7dmFyIGMsZD10cCgpOyhjPU5pKGQsNTY3KXx8TmkoYS5ILDU2NykpJiZhLlIuYWRkKGMpfXJldHVybiBifWZ1bmN0aW9uIENwKGEpe3pwKCk7dmFyIGI9bmV3IFNldCh5cC5SKTtpZihhKWZvcih2YXIgYz1RKGEsSC5KLkNoKXx8W10sZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKWIuYWRkKGUudmFsdWUpO3JldHVybiBwcChbXS5jb25jYXQodyhiKSkpfTtmdW5jdGlvbiBEcChhKXt2YXIgYj1hLmxvY2F0aW9uLmhyZWY7aWYoYT09PWEudG9wKXJldHVybnt1cmw6YixJczohMH07dmFyIGM9ITEsZD1hLmRvY3VtZW50O2QmJmQucmVmZXJyZXImJihiPWQucmVmZXJyZXIsYS5wYXJlbnQ9PT1hLnRvcCYmKGM9ITApKTt2YXIgZT1hLmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucztpZihlKXt2YXIgZj1lW2UubGVuZ3RoLTFdLGc7ZiYmKChnPWIpPT1udWxsP3ZvaWQgMDpnLmluZGV4T2YoZikpPT09LTEmJihjPSExLGI9Zil9cmV0dXJue3VybDpiLElzOmN9fWZ1bmN0aW9uIEVwKGEpe3RyeXt2YXIgYjtpZihiPSEhYSYmYS5sb2NhdGlvbi5ocmVmIT1udWxsKWE6e3RyeXtIbihhLmZvbyk7Yj0hMDticmVhayBhfWNhdGNoKGMpe31iPSExfXJldHVybiBifWNhdGNoKGMpe3JldHVybiExfX1mdW5jdGlvbiBGcCgpe2Zvcih2YXIgYT1BLGI9YTthJiZhIT09YS5wYXJlbnQ7KWE9YS5wYXJlbnQsRXAoYSkmJihiPWEpO3JldHVybiBifTt2YXIgR3A9ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdW5jdGlvbigpe307Yy5wcm90b3R5cGU9YS5wcm90b3R5cGU7dmFyIGQ9bmV3IGM7YS5hcHBseShkLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSk7cmV0dXJuIGR9LEhwPWZ1bmN0aW9uKGEpe3ZhciBiPWE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoYil7dmFyIGM9YjtiPW51bGw7YygpfX19O2Z1bmN0aW9uIElwKGEsYil7aWYoYSlmb3IodmFyIGMgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxjKSYmYihhW2NdLGMsYSl9O2Z1bmN0aW9uIEpwKGEpe3ZhciBiPWEuc3BsaXQoL1s/I10vKSxjPS9bP10vLnRlc3QoYSk/Ij8iK2JbMV06IiI7cmV0dXJue3prOmJbMF0scGFyYW1zOmMsZnJhZ21lbnQ6L1sjXS8udGVzdChhKT8iIyIrKGM/YlsyXTpiWzFdKToiIn19ZnVuY3Rpb24gS3AoYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2lmKGIubGVuZ3RoPT09MClyZXR1cm4gamMoYVswXSk7Zm9yKHZhciBjPWFbMF0sZD0wO2Q8Yi5sZW5ndGg7ZCsrKWMrPWVuY29kZVVSSUNvbXBvbmVudChiW2RdKSthW2QrMV07cmV0dXJuIGpjKGMpfQpmdW5jdGlvbiBMcChhLGIsYyxkKXtmdW5jdGlvbiBlKGcsaCl7ZyE9bnVsbCYmKEFycmF5LmlzQXJyYXkoZyk/Zy5mb3JFYWNoKGZ1bmN0aW9uKGwpe3JldHVybiBlKGwsaCl9KTooYis9ZitlbmNvZGVVUklDb21wb25lbnQoaCkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChnKSxmPSImIikpfXZhciBmPWIubGVuZ3RoPyImIjoiPyI7ZC5jb25zdHJ1Y3Rvcj09PU9iamVjdCYmKGQ9T2JqZWN0LmVudHJpZXMoZCkpO0FycmF5LmlzQXJyYXkoZCk/ZC5mb3JFYWNoKGZ1bmN0aW9uKGcpe3JldHVybiBlKGdbMV0sZ1swXSl9KTpkLmZvckVhY2goZSk7cmV0dXJuIGpjKGErYitjKX1mdW5jdGlvbiBNcChhLGIpe3ZhciBjPUpwKGtjKGEpLnRvU3RyaW5nKCkpLGQ9Yy56ay5zbGljZSgtMSk9PT0iLyI/IiI6Ii8iLGU9Yy56aytkK2VuY29kZVVSSUNvbXBvbmVudChiKTtyZXR1cm4gamMoZStjLnBhcmFtcytjLmZyYWdtZW50KX07dmFyIE5wPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWEsZD0wO2Q8NTA7KytkKXt2YXIgZTt0cnl7ZT0hKCFjLmZyYW1lc3x8IWMuZnJhbWVzW2JdKX1jYXRjaChoKXtlPSExfWlmKGUpcmV0dXJuIGM7dmFyIGY7YTp7dHJ5e3ZhciBnPWMucGFyZW50O2lmKGcmJmchPT1jKXtmPWc7YnJlYWsgYX19Y2F0Y2goaCl7fWY9bnVsbH1pZighKGM9ZikpYnJlYWt9cmV0dXJuIG51bGx9LE9wPWZ1bmN0aW9uKGEpe3ZhciBiPUE7aWYoYi50b3A9PWIpcmV0dXJuIDA7aWYoYT09PXZvaWQgMD8wOmEpe3ZhciBjPWIubG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zO2lmKGMpcmV0dXJuIGNbYy5sZW5ndGgtMV09PWIubG9jYXRpb24ub3JpZ2luPzE6Mn1yZXR1cm4gRXAoYi50b3ApPzE6Mn0sUHA9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP2RvY3VtZW50OmE7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiaW1nIil9O2Z1bmN0aW9uIFFwKGEpe2Zvcih2YXIgYj1bXSxjPUIuY29va2llLnNwbGl0KCI7IiksZD1uZXcgUmVnRXhwKCJeXFxzKiIrKGF8fCJfZ2FjIikrIl8oVUEtXFxkKy1cXGQrKT1cXHMqKC4rPylcXHMqJCIpLGU9MDtlPGMubGVuZ3RoO2UrKyl7dmFyIGY9Y1tlXS5tYXRjaChkKTtmJiZiLnB1c2goe3VkOmZbMV0sdmFsdWU6ZlsyXSx0aW1lc3RhbXA6TnVtYmVyKGZbMl0uc3BsaXQoIi4iKVsxXSl8fDB9KX1iLnNvcnQoZnVuY3Rpb24oZyxoKXtyZXR1cm4gaC50aW1lc3RhbXAtZy50aW1lc3RhbXB9KTtyZXR1cm4gYn0KZnVuY3Rpb24gUnAoYSxiKXt2YXIgYz1RcChhKSxkPXt9O2lmKCFjfHwhYy5sZW5ndGgpcmV0dXJuIGQ7Zm9yKHZhciBlPTA7ZTxjLmxlbmd0aDtlKyspe3ZhciBmPWNbZV0udmFsdWUuc3BsaXQoIi4iKTtpZighKGZbMF0hPT0iMSJ8fGImJmYubGVuZ3RoPDN8fCFiJiZmLmxlbmd0aCE9PTMpJiZOdW1iZXIoZlsxXSkpe2RbY1tlXS51ZF18fChkW2NbZV0udWRdPVtdKTt2YXIgZz17dmVyc2lvbjpmWzBdLHRpbWVzdGFtcDpOdW1iZXIoZlsxXSkqMUUzLGdjbGlkOmZbMl19O2ImJmYubGVuZ3RoPjMmJihnLmxhYmVscz1mLnNsaWNlKDMpKTtkW2NbZV0udWRdLnB1c2goZyl9fXJldHVybiBkfTtmdW5jdGlvbiBTcChhKXtyZXR1cm4gYS5vcmlnaW4hPT0ibnVsbCJ9O3ZhciBUcD17fSxVcD0oVHAuaz17bmE6L15bXHctXSskL30sVHAuYj17bmE6L15bXHctXSskLyxuazohMH0sVHAuaT17bmE6L15bMS05XVxkKiQvfSxUcC5oPXtuYTovXlxkKyQvfSxUcC50PXtuYTovXlsxLTldXGQqJC99LFRwLmQ9e25hOi9eW0EtWmEtejAtOV8tXSskL30sVHAuaj17bmE6L15cZCskL30sVHAudT17bmE6L15bMS05XVxkKiQvfSxUcC5sPXtuYTovXlswMV0kL30sVHAubz17bmE6L15bMS05XVxkKiQvfSxUcC5nPXtuYTovXlswMV0kL30sVHAucz17bmE6L14uKyQvfSxUcC5tPXtuYTovXlswMV0kL30sVHApO3ZhciBWcD17fSxacD0oVnBbNV09e2ppOnsyOldwfSxaajoiMiIsUmg6WyJrIiwiaSIsImIiLCJ1Il19LFZwWzRdPXtqaTp7MjpXcCxHQ0w6WHB9LFpqOiIyIixSaDpbImsiLCJpIiwiYiIsIm0iXX0sVnBbMl09e2ppOntHUzI6V3AsR1MxOllwfSxaajoiR1MyIixSaDoic29ndGpsaGQiLnNwbGl0KCIiKX0sVnApO2Z1bmN0aW9uICRwKGEsYixjKXt2YXIgZD1acFtiXTtpZihkKXt2YXIgZT1hLnNwbGl0KCIuIilbMF07Yz09bnVsbHx8YyhlKTtpZihlKXt2YXIgZj1kLmppW2VdO2lmKGYpcmV0dXJuIGYoYSxiKX19fQpmdW5jdGlvbiBXcChhLGIpe3ZhciBjPWEuc3BsaXQoIi4iKTtpZihjLmxlbmd0aD09PTMpe3ZhciBkPWNbMl07aWYoZC5pbmRleE9mKCIkIik9PT0tMSYmZC5pbmRleE9mKCIlMjQiKSE9PS0xKXRyeXtkPWRlY29kZVVSSUNvbXBvbmVudChkKX1jYXRjaCh0KXt9dmFyIGU9e30sZj1acFtiXTtpZihmKXtmb3IodmFyIGc9Zi5SaCxoPW0oZC5zcGxpdCgiJCIpKSxsPWgubmV4dCgpOyFsLmRvbmU7bD1oLm5leHQoKSl7dmFyIG49bC52YWx1ZSxwPW5bMF07aWYoZy5pbmRleE9mKHApIT09LTEpdHJ5e3ZhciBxPWRlY29kZVVSSUNvbXBvbmVudChuLnN1YnN0cmluZygxKSkscj1VcFtwXTtyJiYoci5uaz8oZVtwXT1lW3BdfHxbXSxlW3BdLnB1c2gocSkpOmVbcF09cSl9Y2F0Y2godCl7fX1yZXR1cm4gZX19fWZ1bmN0aW9uIGFxKGEsYixjKXt2YXIgZD1acFtiXTtpZihkKXJldHVybltkLlpqLGN8fCIxIixicShhLGIpXS5qb2luKCIuIil9CmZ1bmN0aW9uIGJxKGEsYil7dmFyIGM9WnBbYl07aWYoYyl7Zm9yKHZhciBkPVtdLGU9bShjLlJoKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZSxoPVVwW2ddO2lmKGgpe3ZhciBsPWFbZ107aWYobCE9PXZvaWQgMClpZihoLm5rJiZBcnJheS5pc0FycmF5KGwpKWZvcih2YXIgbj1tKGwpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKWQucHVzaChlbmNvZGVVUklDb21wb25lbnQoIiIrZytwLnZhbHVlKSk7ZWxzZSBkLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCIiK2crbCkpfX1yZXR1cm4gZC5qb2luKCIkIil9fWZ1bmN0aW9uIFhwKGEpe3ZhciBiPWEuc3BsaXQoIi4iKTtiLnNoaWZ0KCk7dmFyIGM9Yi5zaGlmdCgpLGQ9Yi5zaGlmdCgpLGU9e307cmV0dXJuIGUuaz1kLGUuaT1jLGUuYj1iLGV9CmZ1bmN0aW9uIFlwKGEpe3ZhciBiPWEuc3BsaXQoIi4iKS5zbGljZSgyKTtpZighKGIubGVuZ3RoPDV8fGIubGVuZ3RoPjcpKXt2YXIgYz17fTtyZXR1cm4gYy5zPWJbMF0sYy5vPWJbMV0sYy5nPWJbMl0sYy50PWJbM10sYy5qPWJbNF0sYy5sPWJbNV0sYy5oPWJbNl0sY319O2Z1bmN0aW9uIGNxKGEsYixjLGQpe3ZhciBlO3JldHVybihlPWRxKGZ1bmN0aW9uKGYpe3JldHVybiBmPT09YX0sYixjLGQpW2FdKSE9bnVsbD9lOltdfWZ1bmN0aW9uIGRxKGEsYixjLGQpe3ZhciBlO2lmKGVxKGQpKXtmb3IodmFyIGY9e30sZz1TdHJpbmcoYnx8ZnEoKSkuc3BsaXQoIjsiKSxoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciBsPWdbaF0uc3BsaXQoIj0iKSxuPWxbMF0udHJpbSgpO2lmKG4mJmEobikpe3ZhciBwPWwuc2xpY2UoMSkuam9pbigiPSIpLnRyaW0oKTtwJiZjJiYocD1kZWNvZGVVUklDb21wb25lbnQocCkpO3ZhciBxPXZvaWQgMCxyPXZvaWQgMDsoKHE9Zilbcj1uXXx8KHFbcl09W10pKS5wdXNoKHApfX1lPWZ9ZWxzZSBlPXt9O3JldHVybiBlfQpmdW5jdGlvbiBncShhLGIsYyxkLGUpe2lmKGVxKGUpKXt2YXIgZj1ocShhLGQsZSk7aWYoZi5sZW5ndGg9PT0xKXJldHVybiBmWzBdO2lmKGYubGVuZ3RoIT09MCl7Zj1pcShmLGZ1bmN0aW9uKGcpe3JldHVybiBnLkpyfSxiKTtpZihmLmxlbmd0aD09PTEpcmV0dXJuIGZbMF07Zj1pcShmLGZ1bmN0aW9uKGcpe3JldHVybiBnLldzfSxjKTtyZXR1cm4gZlswXX19fWZ1bmN0aW9uIGpxKGEsYixjLGQpe3ZhciBlPWZxKCksZj1BO1NwKGYpJiYoZi5kb2N1bWVudC5jb29raWU9YSk7dmFyIGc9ZnEoKTtyZXR1cm4gZSE9PWd8fGMhPT12b2lkIDAmJmNxKGIsZywhMSxkKS5pbmRleE9mKGMpPj0wfQpmdW5jdGlvbiBrcShhLGIsYyxkKXtmdW5jdGlvbiBlKHgseSx6KXtpZih6PT1udWxsKXJldHVybiBkZWxldGUgaFt5XSx4O2hbeV09ejtyZXR1cm4geCsiOyAiK3krIj0iK3p9ZnVuY3Rpb24gZih4LHkpe2lmKHk9PW51bGwpcmV0dXJuIHg7aFt5XT0hMDtyZXR1cm4geCsiOyAiK3l9aWYoIWVxKGMuTWMpKXJldHVybiAyO3ZhciBnO2I9PW51bGw/Zz1hKyI9ZGVsZXRlZDsgZXhwaXJlcz0iKyhuZXcgRGF0ZSgwKSkudG9VVENTdHJpbmcoKTooYy5lbmNvZGUmJihiPWVuY29kZVVSSUNvbXBvbmVudChiKSksYj1scShiKSxnPWErIj0iK2IpO3ZhciBoPXt9O2c9ZShnLCJwYXRoIixjLnBhdGgpO3ZhciBsO2MuZXhwaXJlcyBpbnN0YW5jZW9mIERhdGU/bD1jLmV4cGlyZXMudG9VVENTdHJpbmcoKTpjLmV4cGlyZXMhPW51bGwmJihsPSIiK2MuZXhwaXJlcyk7Zz1lKGcsImV4cGlyZXMiLGwpO2c9ZShnLCJtYXgtYWdlIixjLk9zKTtnPWUoZywic2FtZXNpdGUiLGMucnQpO2Muc2VjdXJlJiYKKGc9ZihnLCJzZWN1cmUiKSk7dmFyIG49Yy5kb21haW47aWYobiYmbi50b0xvd2VyQ2FzZSgpPT09ImF1dG8iKXtmb3IodmFyIHA9bXEoKSxxPXZvaWQgMCxyPSExLHQ9MDt0PHAubGVuZ3RoOysrdCl7dmFyIHU9cFt0XSE9PSJub25lIj9wW3RdOnZvaWQgMCx2PWUoZywiZG9tYWluIix1KTt2PWYodixjLmZsYWdzKTt0cnl7ZCYmZChhLGgpfWNhdGNoKHgpe3E9eDtjb250aW51ZX1yPSEwO2lmKCFucSh1LGMucGF0aCkmJmpxKHYsYSxiLGMuTWMpKXJldHVybiAwfWlmKHEmJiFyKXRocm93IHE7cmV0dXJuIDF9biYmbi50b0xvd2VyQ2FzZSgpIT09Im5vbmUiJiYoZz1lKGcsImRvbWFpbiIsbikpO2c9ZihnLGMuZmxhZ3MpO2QmJmQoYSxoKTtyZXR1cm4gbnEobixjLnBhdGgpPzE6anEoZyxhLGIsYy5NYyk/MDoxfWZ1bmN0aW9uIG9xKGEsYixjKXtjLnBhdGg9PW51bGwmJihjLnBhdGg9Ii8iKTtjLmRvbWFpbnx8KGMuZG9tYWluPSJhdXRvIik7cmV0dXJuIGtxKGEsYixjKX0KZnVuY3Rpb24gaXEoYSxiLGMpe2Zvcih2YXIgZD1bXSxlPVtdLGYsZz0wO2c8YS5sZW5ndGg7ZysrKXt2YXIgaD1hW2ddLGw9YihoKTtsPT09Yz9kLnB1c2goaCk6Zj09PXZvaWQgMHx8bDxmPyhlPVtoXSxmPWwpOmw9PT1mJiZlLnB1c2goaCl9cmV0dXJuIGQubGVuZ3RoPjA/ZDplfWZ1bmN0aW9uIGhxKGEsYixjKXtmb3IodmFyIGQ9W10sZT1jcShhLHZvaWQgMCx2b2lkIDAsYyksZj0wO2Y8ZS5sZW5ndGg7ZisrKXt2YXIgZz1lW2ZdLnNwbGl0KCIuIiksaD1nLnNoaWZ0KCk7aWYoIWJ8fCFofHxiLmluZGV4T2YoaCkhPT0tMSl7dmFyIGw9Zy5zaGlmdCgpO2lmKGwpe3ZhciBuPWwuc3BsaXQoIi0iKTtkLnB1c2goe0JyOmVbZl0sQ3I6Zy5qb2luKCIuIiksSnI6TnVtYmVyKG5bMF0pfHwxLFdzOk51bWJlcihuWzFdKXx8MX0pfX19cmV0dXJuIGR9ZnVuY3Rpb24gbHEoYSl7YSYmYS5sZW5ndGg+MTIwMCYmKGE9YS5zdWJzdHJpbmcoMCwxMjAwKSk7cmV0dXJuIGF9CnZhciBwcT0vXih3d3dcLik/Z29vZ2xlKFwuY29tPyk/KFwuW2Etel17Mn0pPyQvLHFxPS8oXnxcLilkb3VibGVjbGlja1wubmV0JC9pO2Z1bmN0aW9uIG5xKGEsYil7cmV0dXJuIGEhPT12b2lkIDAmJihxcS50ZXN0KEEuZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUpfHxiPT09Ii8iJiZwcS50ZXN0KGEpKX1mdW5jdGlvbiBycShhKXtpZighYSlyZXR1cm4gMTt2YXIgYj1hO1lmKDQpJiZhPT09Im5vbmUiJiYoYj1BLmRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lKTtiPWIuaW5kZXhPZigiLiIpPT09MD9iLnN1YnN0cmluZygxKTpiO3JldHVybiBiLnNwbGl0KCIuIikubGVuZ3RofWZ1bmN0aW9uIHNxKGEpe2lmKCFhfHxhPT09Ii8iKXJldHVybiAxO2FbMF0hPT0iLyImJihhPSIvIithKTthW2EubGVuZ3RoLTFdIT09Ii8iJiYoYSs9Ii8iKTtyZXR1cm4gYS5zcGxpdCgiLyIpLmxlbmd0aC0xfQpmdW5jdGlvbiB0cShhLGIpe3ZhciBjPSIiK3JxKGEpLGQ9c3EoYik7ZD4xJiYoYys9Ii0iK2QpO3JldHVybiBjfQp2YXIgZnE9ZnVuY3Rpb24oKXt2YXIgYT1BO3JldHVybiBTcChhKT9hLmRvY3VtZW50LmNvb2tpZToiIn0sZXE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJllmKDUpPyhBcnJheS5pc0FycmF5KGEpP2E6W2FdKS5ldmVyeShmdW5jdGlvbihiKXtyZXR1cm4gRGwoYikmJkJsKGIpfSk6ITB9LG1xPWZ1bmN0aW9uKCl7dmFyIGE9W10sYj1BLmRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lLnNwbGl0KCIuIik7aWYoYi5sZW5ndGg9PT00KXt2YXIgYz1iW2IubGVuZ3RoLTFdO2lmKE51bWJlcihjKS50b1N0cmluZygpPT09YylyZXR1cm5bIm5vbmUiXX1mb3IodmFyIGQ9Yi5sZW5ndGgtMjtkPj0wO2QtLSlhLnB1c2goYi5zbGljZShkKS5qb2luKCIuIikpO3ZhciBlPUEuZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWU7cXEudGVzdChlKXx8cHEudGVzdChlKXx8YS5wdXNoKCJub25lIik7cmV0dXJuIGF9O2Z1bmN0aW9uIHVxKGEsYixjLGQpe3ZhciBlLGY9TnVtYmVyKGEucGQhPW51bGw/YS5wZDp2b2lkIDApO2YhPT0wJiYoZT1uZXcgRGF0ZSgoYnx8TmIoKSkrMUUzKihmfHw3Nzc2RTMpKSk7cmV0dXJue3BhdGg6YS5wYXRoLGRvbWFpbjphLmRvbWFpbixmbGFnczphLmZsYWdzLGVuY29kZTohIWMsZXhwaXJlczplLE1jOmR9fTt2YXIgdnE9bmV3IE1hcChbWzUsImFkX3N0b3JhZ2UiXSxbNCxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXV0sWzIsImFuYWx5dGljc19zdG9yYWdlIl1dKTtmdW5jdGlvbiB3cShhLGIsYyl7aWYoWnBbYl0pe2Zvcih2YXIgZD1bXSxlPWNxKGEsdm9pZCAwLHZvaWQgMCx2cS5nZXQoYikpLGY9bShlKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9JHAoZy52YWx1ZSxiLGMpO2gmJmQucHVzaCh4cShoKSl9cmV0dXJuIGR9fQpmdW5jdGlvbiB5cShhKXt2YXIgYj16cTtpZihacFsyXSl7Zm9yKHZhciBjPXt9LGQ9ZHEoYSx2b2lkIDAsdm9pZCAwLHZxLmdldCgyKSksZT1PYmplY3Qua2V5cyhkKS5zb3J0KCksZj1tKGUpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWZvcih2YXIgaD1nLnZhbHVlLGw9bShkW2hdKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9JHAobi52YWx1ZSwyLGIpO3AmJihjW2hdfHwoY1toXT1bXSksY1toXS5wdXNoKHhxKHApKSl9cmV0dXJuIGN9fWZ1bmN0aW9uIEFxKGEsYixjLGQsZSl7ZD1kfHx7fTt2YXIgZj10cShkLmRvbWFpbixkLnBhdGgpLGc9YXEoYixjLGYpO2lmKCFnKXJldHVybiAxO3ZhciBoPXVxKGQsZSx2b2lkIDAsdnEuZ2V0KGMpKTtyZXR1cm4gb3EoYSxnLGgpfWZ1bmN0aW9uIEJxKGEsYil7dmFyIGM9Yi5uYTtyZXR1cm4gdHlwZW9mIGM9PT0iZnVuY3Rpb24iP2MoYSk6Yy50ZXN0KGEpfQpmdW5jdGlvbiB4cShhKXtmb3IodmFyIGI9bShPYmplY3Qua2V5cyhhKSksYz1iLm5leHQoKSxkPXt9OyFjLmRvbmU7ZD17QWc6dm9pZCAwfSxjPWIubmV4dCgpKXt2YXIgZT1jLnZhbHVlLGY9YVtlXTtkLkFnPVVwW2VdO2QuQWc/ZC5BZy5uaz9hW2VdPUFycmF5LmlzQXJyYXkoZik/Zi5maWx0ZXIoZnVuY3Rpb24oZyl7cmV0dXJuIGZ1bmN0aW9uKGgpe3JldHVybiBCcShoLGcuQWcpfX0oZCkpOnZvaWQgMDp0eXBlb2YgZj09PSJzdHJpbmciJiZCcShmLGQuQWcpfHwoYVtlXT12b2lkIDApOmFbZV09dm9pZCAwfXJldHVybiBhfTt2YXIgQ3E7ZnVuY3Rpb24gRHEoKXtmdW5jdGlvbiBhKGcpe2MoZy50YXJnZXR8fGcuc3JjRWxlbWVudHx8e30pfWZ1bmN0aW9uIGIoZyl7ZChnLnRhcmdldHx8Zy5zcmNFbGVtZW50fHx7fSl9dmFyIGM9RXEsZD1GcSxlPUdxKCk7aWYoIWUuaW5pdCl7JGMoQiwibW91c2Vkb3duIixhKTskYyhCLCJrZXl1cCIsYSk7JGMoQiwic3VibWl0IixiKTt2YXIgZj1IVE1MRm9ybUVsZW1lbnQucHJvdG90eXBlLnN1Ym1pdDtIVE1MRm9ybUVsZW1lbnQucHJvdG90eXBlLnN1Ym1pdD1mdW5jdGlvbigpe2QodGhpcyk7Zi5jYWxsKHRoaXMpfTtlLmluaXQ9ITB9fWZ1bmN0aW9uIEhxKGEsYixjLGQsZSl7dmFyIGY9e2NhbGxiYWNrOmEsZG9tYWluczpiLGZyYWdtZW50OmM9PT0yLHBsYWNlbWVudDpjLGZvcm1zOmQsc2FtZUhvc3Q6ZX07R3EoKS5kZWNvcmF0b3JzLnB1c2goZil9CmZ1bmN0aW9uIElxKGEsYixjKXtmb3IodmFyIGQ9R3EoKS5kZWNvcmF0b3JzLGU9e30sZj0wO2Y8ZC5sZW5ndGg7KytmKXt2YXIgZz1kW2ZdLGg7aWYoaD0hY3x8Zy5mb3JtcylhOnt2YXIgbD1nLmRvbWFpbnMsbj1hLHA9ISFnLnNhbWVIb3N0O2lmKGwmJihwfHxuIT09Qi5sb2NhdGlvbi5ob3N0bmFtZSkpZm9yKHZhciBxPTA7cTxsLmxlbmd0aDtxKyspaWYobFtxXWluc3RhbmNlb2YgUmVnRXhwKXtpZihsW3FdLnRlc3Qobikpe2g9ITA7YnJlYWsgYX19ZWxzZSBpZihuLmluZGV4T2YobFtxXSk+PTB8fHAmJmxbcV0uaW5kZXhPZihuKT49MCl7aD0hMDticmVhayBhfWg9ITF9aWYoaCl7dmFyIHI9Zy5wbGFjZW1lbnQ7cj09PXZvaWQgMCYmKHI9Zy5mcmFnbWVudD8yOjEpO3I9PT1iJiZRYihlLGcuY2FsbGJhY2soKSl9fXJldHVybiBlfQpmdW5jdGlvbiBHcSgpe3ZhciBhPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KSxiPWEuZ2w7YiYmYi5kZWNvcmF0b3JzfHwoYj17ZGVjb3JhdG9yczpbXX0sYS5nbD1iKTtyZXR1cm4gYn07dmFyIEpxPS8oLio/KVwqKC4qPylcKiguKikvLEtxPS9eaHR0cHM/OlwvXC8oW15cL10qPylcLj9jZG5cLmFtcHByb2plY3RcLm9yZ1wvPyguKikvLExxPS9eKD86d3d3XC58bVwufGFtcFwuKSsvLE1xPS8oW14/I10rKShcP1teI10qKT8oIy4qKT8vO2Z1bmN0aW9uIE5xKGEpe3ZhciBiPU1xLmV4ZWMoYSk7aWYoYilyZXR1cm57aGs6YlsxXSxxdWVyeTpiWzJdLGZyYWdtZW50OmJbM119fWZ1bmN0aW9uIE9xKGEpe3JldHVybiBuZXcgUmVnRXhwKCIoLio/KShefCYpIithKyI9KFteJl0qKSY/KC4qKSIpfQpmdW5jdGlvbiBQcShhLGIpe3ZhciBjPVtIYy51c2VyQWdlbnQsKG5ldyBEYXRlKS5nZXRUaW1lem9uZU9mZnNldCgpLEhjLnVzZXJMYW5ndWFnZXx8SGMubGFuZ3VhZ2UsTWF0aC5mbG9vcihOYigpLzYwLzFFMyktKGI9PT12b2lkIDA/MDpiKSxhXS5qb2luKCIqIiksZDtpZighKGQ9Q3EpKXtmb3IodmFyIGU9QXJyYXkoMjU2KSxmPTA7ZjwyNTY7ZisrKXtmb3IodmFyIGc9ZixoPTA7aDw4O2grKylnPWcmMT9nPj4+MV4zOTg4MjkyMzg0Omc+Pj4xO2VbZl09Z31kPWV9Q3E9ZDtmb3IodmFyIGw9NDI5NDk2NzI5NSxuPTA7bjxjLmxlbmd0aDtuKyspbD1sPj4+OF5DcVsobF5jLmNoYXJDb2RlQXQobikpJjI1NV07cmV0dXJuKChsXi0xKT4+PjApLnRvU3RyaW5nKDM2KX0KZnVuY3Rpb24gUXEoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPVJqKEEubG9jYXRpb24uaHJlZiksZD1jLnNlYXJjaC5yZXBsYWNlKCI/IiwiIiksZT1JaihkLCJfZ2wiLCExLCEwKXx8IiI7Yi5xdWVyeT1ScShlKXx8e307dmFyIGY9TGooYywiZnJhZ21lbnQiKSxnO3ZhciBoPS0xO2lmKFNiKGYsIl9nbD0iKSloPTQ7ZWxzZXt2YXIgbD1mLmluZGV4T2YoIiZfZ2w9Iik7bD4wJiYoaD1sKzMrMil9aWYoaDwwKWc9dm9pZCAwO2Vsc2V7dmFyIG49Zi5pbmRleE9mKCImIixoKTtnPW48MD9mLnN1YnN0cmluZyhoKTpmLnN1YnN0cmluZyhoLG4pfWIuZnJhZ21lbnQ9UnEoZ3x8IiIpfHx7fTthJiZTcShjLGQsZil9fWZ1bmN0aW9uIFRxKGEsYil7dmFyIGM9T3EoYSkuZXhlYyhiKSxkPWI7aWYoYyl7dmFyIGU9Y1syXSxmPWNbNF07ZD1jWzFdO2YmJihkPWQrZStmKX1yZXR1cm4gZH0KZnVuY3Rpb24gU3EoYSxiLGMpe2Z1bmN0aW9uIGQoZyxoKXt2YXIgbD1UcSgiX2dsIixnKTtsLmxlbmd0aCYmKGw9aCtsKTtyZXR1cm4gbH1pZihHYyYmR2MucmVwbGFjZVN0YXRlKXt2YXIgZT1PcSgiX2dsIik7aWYoZS50ZXN0KGIpfHxlLnRlc3QoYykpe3ZhciBmPUxqKGEsInBhdGgiKTtiPWQoYiwiPyIpO2M9ZChjLCIjIik7R2MucmVwbGFjZVN0YXRlKHt9LCIiLCIiK2YrYitjKX19fWZ1bmN0aW9uIFVxKGEsYil7dmFyIGM9UXEoISFiKSxkPUdxKCk7ZC5kYXRhfHwoZC5kYXRhPXtxdWVyeTp7fSxmcmFnbWVudDp7fX0sYyhkLmRhdGEpKTt2YXIgZT17fSxmPWQuZGF0YTtmJiYoUWIoZSxmLnF1ZXJ5KSxhJiZRYihlLGYuZnJhZ21lbnQpKTtyZXR1cm4gZX0KdmFyIFJxPWZ1bmN0aW9uKGEpe3RyeXt2YXIgYj1WcShhLDMpO2lmKGIhPT12b2lkIDApe2Zvcih2YXIgYz17fSxkPWI/Yi5zcGxpdCgiKiIpOltdLGU9MDtlKzE8ZC5sZW5ndGg7ZSs9Mil7dmFyIGY9ZFtlXSxnPXFiKGRbZSsxXSk7Y1tmXT1nfXNiKCJUQUdHSU5HIiw2KTtyZXR1cm4gY319Y2F0Y2goaCl7c2IoIlRBR0dJTkciLDgpfX07ZnVuY3Rpb24gVnEoYSxiKXtpZihhKXt2YXIgYzthOntmb3IodmFyIGQ9YSxlPTA7ZTwzOysrZSl7dmFyIGY9SnEuZXhlYyhkKTtpZihmKXtjPWY7YnJlYWsgYX1kPUtqKGQpfHwiIn1jPXZvaWQgMH12YXIgZz1jO2lmKGcmJmdbMV09PT0iMSIpe3ZhciBoPWdbM10sbDthOntmb3IodmFyIG49Z1syXSxwPTA7cDxiOysrcClpZihuPT09UHEoaCxwKSl7bD0hMDticmVhayBhfWw9ITF9aWYobClyZXR1cm4gaDtzYigiVEFHR0lORyIsNyl9fX0KZnVuY3Rpb24gV3EoYSxiLGMsZCxlKXtmdW5jdGlvbiBmKHApe3A9VHEoYSxwKTt2YXIgcT1wLmNoYXJBdChwLmxlbmd0aC0xKTtwJiZxIT09IiYiJiYocCs9IiYiKTtyZXR1cm4gcCtufWQ9ZD09PXZvaWQgMD8hMTpkO2U9ZT09PXZvaWQgMD8hMTplO3ZhciBnPU5xKGMpO2lmKCFnKXJldHVybiIiO3ZhciBoPWcucXVlcnl8fCIiLGw9Zy5mcmFnbWVudHx8IiIsbj1hKyI9IitiO2Q/bC5zdWJzdHJpbmcoMSkubGVuZ3RoIT09MCYmZXx8KGw9IiMiK2YobC5zdWJzdHJpbmcoMSkpKTpoPSI/IitmKGguc3Vic3RyaW5nKDEpKTtyZXR1cm4iIitnLmhrK2grbH0KZnVuY3Rpb24gWHEoYSxiKXtmdW5jdGlvbiBjKG4scCxxKXt2YXIgcjthOntmb3IodmFyIHQgaW4gbilpZihuLmhhc093blByb3BlcnR5KHQpKXtyPSEwO2JyZWFrIGF9cj0hMX1pZihyKXt2YXIgdSx2PVtdLHg7Zm9yKHggaW4gbilpZihuLmhhc093blByb3BlcnR5KHgpKXt2YXIgeT1uW3hdO3khPT12b2lkIDAmJnk9PT15JiZ5IT09bnVsbCYmeS50b1N0cmluZygpIT09IltvYmplY3QgT2JqZWN0XSImJih2LnB1c2goeCksdi5wdXNoKHBiKFN0cmluZyh5KSkpKX12YXIgej12LmpvaW4oIioiKTt1PVsiMSIsUHEoeiksel0uam9pbigiKiIpO2Q/KFlmKDMpfHxZZigxKXx8IXApJiZZcSgiX2dsIix1LGEscCxxKTpacSgiX2dsIix1LGEscCxxKX19dmFyIGQ9KGEudGFnTmFtZXx8IiIpLnRvVXBwZXJDYXNlKCk9PT0iRk9STSIsZT1JcShiLDEsZCksZj1JcShiLDIsZCksZz1JcShiLDQsZCksaD1JcShiLDMsZCk7YyhlLCExLCExKTtjKGYsITAsITEpO1lmKDEpJiZjKGcsITAsITApO2Zvcih2YXIgbCBpbiBoKWguaGFzT3duUHJvcGVydHkobCkmJgokcShsLGhbbF0sYSl9ZnVuY3Rpb24gJHEoYSxiLGMpe2MudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09ImEiP1pxKGEsYixjKTpjLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PSJmb3JtIiYmWXEoYSxiLGMpfWZ1bmN0aW9uIFpxKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwPyExOmQ7ZT1lPT09dm9pZCAwPyExOmU7dmFyIGY7aWYoZj1jLmhyZWYpe3ZhciBnO2lmKCEoZz1kKSl7dmFyIGg9QS5sb2NhdGlvbi5ocmVmLGw9TnEoYy5ocmVmKSxuPU5xKGgpO2c9IShsJiZuJiZsLmhrPT09bi5oayYmbC5xdWVyeT09PW4ucXVlcnkmJmwuZnJhZ21lbnQpfWY9Z31pZihmKXt2YXIgcD1XcShhLGIsYy5ocmVmLGQsZSk7dmMudGVzdChwKSYmKGMuaHJlZj1wKX19CmZ1bmN0aW9uIFlxKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwPyExOmQ7ZT1lPT09dm9pZCAwPyExOmU7aWYoYyl7dmFyIGY9Yy5nZXRBdHRyaWJ1dGUoImFjdGlvbiIpfHwiIjtpZihmKXt2YXIgZz0oYy5tZXRob2R8fCIiKS50b0xvd2VyQ2FzZSgpO2lmKGchPT0iZ2V0Inx8ZCl7aWYoZz09PSJnZXQifHxnPT09InBvc3QiKXt2YXIgaD1XcShhLGIsZixkLGUpO3ZjLnRlc3QoaCkmJihjLmFjdGlvbj1oKX19ZWxzZXtmb3IodmFyIGw9Yy5jaGlsZE5vZGVzfHxbXSxuPSExLHA9MDtwPGwubGVuZ3RoO3ArKyl7dmFyIHE9bFtwXTtpZihxLm5hbWU9PT1hKXtxLnNldEF0dHJpYnV0ZSgidmFsdWUiLGIpO249ITA7YnJlYWt9fWlmKCFuKXt2YXIgcj1CLmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7ci5zZXRBdHRyaWJ1dGUoInR5cGUiLCJoaWRkZW4iKTtyLnNldEF0dHJpYnV0ZSgibmFtZSIsYSk7ci5zZXRBdHRyaWJ1dGUoInZhbHVlIixiKTtjLmFwcGVuZENoaWxkKHIpfX19fX0KZnVuY3Rpb24gRXEoYSl7dHJ5e3ZhciBiO2E6e2Zvcih2YXIgYz1hLGQ9MTAwO2MmJmQ+MDspe2lmKGMuaHJlZiYmYy5ub2RlTmFtZS5tYXRjaCgvXmEoPzpyZWEpPyQvaSkpe2I9YzticmVhayBhfWM9Yy5wYXJlbnROb2RlO2QtLX1iPW51bGx9dmFyIGU9YjtpZihlKXt2YXIgZj1lLnByb3RvY29sO2YhPT0iaHR0cDoiJiZmIT09Imh0dHBzOiJ8fFhxKGUsZS5ob3N0bmFtZSl9fWNhdGNoKGcpe319ZnVuY3Rpb24gRnEoYSl7dHJ5e3ZhciBiPWEuZ2V0QXR0cmlidXRlKCJhY3Rpb24iKTtpZihiKXt2YXIgYz1MaihSaihiKSwiaG9zdCIpO1hxKGEsYyl9fWNhdGNoKGQpe319ZnVuY3Rpb24gYXIoYSxiLGMsZCl7RHEoKTt2YXIgZT1jPT09ImZyYWdtZW50Ij8yOjE7ZD0hIWQ7SHEoYSxiLGUsZCwhMSk7ZT09PTImJnNiKCJUQUdHSU5HIiwyMyk7ZCYmc2IoIlRBR0dJTkciLDI0KX0KZnVuY3Rpb24gYnIoYSxiKXtEcSgpO0hxKGEsW05qKEEubG9jYXRpb24sImhvc3QiLCEwKV0sYiwhMCwhMCl9ZnVuY3Rpb24gY3IoKXt2YXIgYT1CLmxvY2F0aW9uLmhvc3RuYW1lLGI9S3EuZXhlYyhCLnJlZmVycmVyKTtpZighYilyZXR1cm4hMTt2YXIgYz1iWzJdLGQ9YlsxXSxlPSIiO2lmKGMpe3ZhciBmPWMuc3BsaXQoIi8iKSxnPWZbMV07ZT1nPT09InMiP0tqKGZbMl0pfHwiIjpLaihnKXx8IiJ9ZWxzZSBpZihkKXtpZihkLmluZGV4T2YoInhuLS0iKT09PTApcmV0dXJuITE7ZT1kLnJlcGxhY2UoLy0vZywiLiIpLnJlcGxhY2UoL1wuXC4vZywiLSIpfXZhciBoPWEucmVwbGFjZShMcSwiIiksbD1lLnJlcGxhY2UoTHEsIiIpO3JldHVybiBoPT09bHx8VGIoaCwiLiIrbCl9ZnVuY3Rpb24gZHIoYSxiKXtyZXR1cm4gYT09PSExPyExOmF8fGJ8fGNyKCl9O3ZhciBlcj1mdW5jdGlvbihhKXt0aGlzLnZhbHVlPTA7dGhpcy52YWx1ZT1hPT09dm9pZCAwPzA6YX07ZXIucHJvdG90eXBlLnNldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZXw9MTw8YX07dmFyIGZyPWZ1bmN0aW9uKGEsYil7Yjw9MHx8KGEudmFsdWV8PTE8PGItMSl9O2VyLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX07ZXIucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKGEpe3RoaXMudmFsdWUmPX4oMTw8YSl9O2VyLnByb3RvdHlwZS5jbGVhckFsbD1mdW5jdGlvbigpe3RoaXMudmFsdWU9MH07ZXIucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZT09PWEudmFsdWV9O2Z1bmN0aW9uIGdyKGEpe2lmKGEpdHJ5e3JldHVybiBuZXcgVWludDhBcnJheShhdG9iKGEucmVwbGFjZSgvLS9nLCIrIikucmVwbGFjZSgvXy9nLCIvIikpLnNwbGl0KCIiKS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGIuY2hhckNvZGVBdCgwKX0pKX1jYXRjaChiKXt9fWZ1bmN0aW9uIGhyKGEsYil7dmFyIGM9MCxkPTAsZSxmPWI7ZG97aWYoZj49YS5sZW5ndGgpcmV0dXJuO2U9YVtmKytdO2N8PShlJjEyNyk8PGQ7ZCs9N313aGlsZShlJjEyOCk7cmV0dXJuW2MsZl19O2Z1bmN0aW9uIGlyKCl7dmFyIGE9U3RyaW5nLGI9QS5sb2NhdGlvbi5ob3N0bmFtZSxjPUEubG9jYXRpb24ucGF0aG5hbWUsZD1iPWJjKGIpO2Quc3BsaXQoIi4iKS5sZW5ndGg+MiYmKGQ9ZC5yZXBsYWNlKC9eKHd3d1swLTldKnx3ZWJ8ZnRwfHdhcHxob21lfG18d3xhbXB8bW9iaWxlKVwuLywiIikpO2I9ZDtjPWJjKGMpO3ZhciBlPWMuc3BsaXQoIjsiKVswXTtlPWUucmVwbGFjZSgvXC8oYXJ8c2xwfHdlYnxpbmRleCk/XC8/JC8sIiIpO3JldHVybiBhKG5nKCgiIitiK2UpLnRvTG93ZXJDYXNlKCkpKX07dmFyIGpyPVsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdO2Z1bmN0aW9uIGtyKGEsYil7aWYoIWEpcmV0dXJuIHNiKCJUQUdHSU5HIiwzMiksMTA7aWYoYj09PW51bGx8fGI9PT12b2lkIDB8fGI9PT0iIilyZXR1cm4gc2IoIlRBR0dJTkciLDMzKSwxMTt2YXIgYz1scighMSk7aWYoYy5lcnJvciE9PTApcmV0dXJuIHNiKCJUQUdHSU5HIiwzNCksYy5lcnJvcjtpZighYy52YWx1ZSlyZXR1cm4gc2IoIlRBR0dJTkciLDM1KSwyO2MudmFsdWVbYV09Yjt2YXIgZD1tcihjKTtkIT09MCYmc2IoIlRBR0dJTkciLDM2KTtyZXR1cm4gZH0KZnVuY3Rpb24gbnIoYSl7aWYoIWEpcmV0dXJuIHNiKCJUQUdHSU5HIiwyNykse2Vycm9yOjEwfTt2YXIgYj1scigpO2lmKGIuZXJyb3IhPT0wKXJldHVybiBzYigiVEFHR0lORyIsMjkpLGI7aWYoIWIudmFsdWUpcmV0dXJuIHNiKCJUQUdHSU5HIiwzMCkse2Vycm9yOjJ9O2lmKCEoYSBpbiBiLnZhbHVlKSlyZXR1cm4gc2IoIlRBR0dJTkciLDMxKSx7dmFsdWU6dm9pZCAwLGVycm9yOjE1fTt2YXIgYz1iLnZhbHVlW2FdO3JldHVybiBjPT09bnVsbHx8Yz09PXZvaWQgMHx8Yz09PSIiPyhzYigiVEFHR0lORyIsMjgpLHt2YWx1ZTp2b2lkIDAsZXJyb3I6MTF9KTp7dmFsdWU6YyxlcnJvcjowfX0KZnVuY3Rpb24gb3IoYSl7aWYoYSl7dmFyIGI9bHIoITEpO2IuZXJyb3IhPT0wP3NiKCJUQUdHSU5HIiwzOCk6Yi52YWx1ZT9hIGluIGIudmFsdWU/KGRlbGV0ZSBiLnZhbHVlW2FdLG1yKGIpIT09MCYmc2IoIlRBR0dJTkciLDQxKSk6c2IoIlRBR0dJTkciLDQwKTpzYigiVEFHR0lORyIsMzkpfWVsc2Ugc2IoIlRBR0dJTkciLDM3KX0KZnVuY3Rpb24gbHIoYSl7YT1hPT09dm9pZCAwPyEwOmE7aWYoIUJsKGpyKSlyZXR1cm4gc2IoIlRBR0dJTkciLDQzKSx7ZXJyb3I6M307dHJ5e2lmKCFBLmxvY2FsU3RvcmFnZSlyZXR1cm4gc2IoIlRBR0dJTkciLDQ0KSx7ZXJyb3I6MX19Y2F0Y2goZil7cmV0dXJuIHNiKCJUQUdHSU5HIiw0NSkse2Vycm9yOjE0fX12YXIgYj17c2NoZW1hOiJnY2wiLHZlcnNpb246MX0sYz12b2lkIDA7dHJ5e2M9QS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiX2djbF9scyIpfWNhdGNoKGYpe3JldHVybiBzYigiVEFHR0lORyIsNDYpLHtlcnJvcjoxM319dHJ5e2lmKGMpe3ZhciBkPUpTT04ucGFyc2UoYyk7aWYoZCYmdHlwZW9mIGQ9PT0ib2JqZWN0IiliPWQ7ZWxzZSByZXR1cm4gc2IoIlRBR0dJTkciLDQ3KSx7ZXJyb3I6MTJ9fX1jYXRjaChmKXtyZXR1cm4gc2IoIlRBR0dJTkciLDQ4KSx7ZXJyb3I6OH19aWYoYi5zY2hlbWEhPT0iZ2NsIilyZXR1cm4gc2IoIlRBR0dJTkciLDQ5KSx7ZXJyb3I6NH07CmlmKGIudmVyc2lvbiE9PTEpcmV0dXJuIHNiKCJUQUdHSU5HIiw1MCkse2Vycm9yOjV9O3RyeXt2YXIgZT1wcihiKTthJiZlJiZtcih7dmFsdWU6YixlcnJvcjowfSl9Y2F0Y2goZil7cmV0dXJuIHNiKCJUQUdHSU5HIiw0OCkse2Vycm9yOjh9fXJldHVybnt2YWx1ZTpiLGVycm9yOjB9fQpmdW5jdGlvbiBwcihhKXtpZighYXx8dHlwZW9mIGEhPT0ib2JqZWN0IilyZXR1cm4hMTtpZigiZXhwaXJlcyJpbiBhJiYidmFsdWUiaW4gYSl7dmFyIGI7dHlwZW9mIGEuZXhwaXJlcz09PSJudW1iZXIiP2I9YS5leHBpcmVzOmI9dHlwZW9mIGEuZXhwaXJlcz09PSJzdHJpbmciP051bWJlcihhLmV4cGlyZXMpOk5hTjtpZihpc05hTihiKXx8IShEYXRlLm5vdygpPD1iKSlyZXR1cm4gYS52YWx1ZT1udWxsLGEuZXJyb3I9OSxzYigiVEFHR0lORyIsNTQpLCEwfWVsc2V7Zm9yKHZhciBjPSExLGQ9bShPYmplY3Qua2V5cyhhKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpYz1wcihhW2UudmFsdWVdKXx8YztyZXR1cm4gY31yZXR1cm4hMX0KZnVuY3Rpb24gbXIoYSl7aWYoYS5lcnJvcilyZXR1cm4gYS5lcnJvcjtpZighYS52YWx1ZSlyZXR1cm4gc2IoIlRBR0dJTkciLDQyKSwyO3ZhciBiPWEudmFsdWUsYzt0cnl7Yz1KU09OLnN0cmluZ2lmeShiKX1jYXRjaChkKXtyZXR1cm4gc2IoIlRBR0dJTkciLDUyKSw2fXRyeXtBLmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJfZ2NsX2xzIixjKX1jYXRjaChkKXtyZXR1cm4gc2IoIlRBR0dJTkciLDUzKSw3fXJldHVybiAwfTt2YXIgcXI9e30scnI9KHFyLmdjbGlkPSEwLHFyLmRjbGlkPSEwLHFyLmdicmFpZD0hMCxxci53YnJhaWQ9ITAscXIpLHNyPS9eXHcrJC8sdHI9L15bXHctXSskLyx1cj17fSx2cj0odXIuYXc9IkZQR0NMQVciLHVyKSx3cj17fSx4cj0od3IuYWc9Il9hZyIsd3IuZ2I9Il9nYiIsd3IuYXc9Il9hdyIsd3IuZGM9Il9kYyIsd3IuZ2Y9Il9nZiIsd3IuaGE9Il9oYSIsd3IuZ3A9Il9ncCIsd3IuZ3M9Il9ncyIsd3IpLHlyPS9eKD86d3d3XC4pP2dvb2dsZSg/OlwuY29tPyk/KD86XC5bYS16XXsyfXQ/KT8kLyx6cj0vXnd3d1wuZ29vZ2xlYWRzZXJ2aWNlc1wuY29tJC87ZnVuY3Rpb24gQXIoKXtyZXR1cm5bImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXX1mdW5jdGlvbiBCcihhKXtyZXR1cm4hWWYoNSl8fEJsKGEpfWZ1bmN0aW9uIENyKGEsYil7ZnVuY3Rpb24gYygpe3ZhciBkPUJyKGIpO2QmJmEoKTtyZXR1cm4gZH1IbChmdW5jdGlvbigpe2MoKXx8SWwoYyxiKX0sYil9CmZ1bmN0aW9uIERyKGEpe3JldHVybiBFcihhKS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGIuZ2NsaWR9KX1mdW5jdGlvbiBGcihhKXtyZXR1cm4gR3IoYSkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBiLmdjbGlkfSkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiLmdjbGlkfSl9ZnVuY3Rpb24gR3IoYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz1IcihhLnByZWZpeCksZD1JcigiZ2IiLGMpLGU9SXIoImFnIixjKTtpZighZXx8IWQpcmV0dXJuW107dmFyIGY9ZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKG4pe24uemc9bDtyZXR1cm4gbn19LGc9RXIoZCxiKS5tYXAoZigiZ2IiKSksaD1KcihlKS5tYXAoZigiYWciKSk7cmV0dXJuIGcuY29uY2F0KGgpLnNvcnQoZnVuY3Rpb24obCxuKXtyZXR1cm4gbi50aW1lc3RhbXAtbC50aW1lc3RhbXB9KX0KZnVuY3Rpb24gS3IoYSxiLGMsZCxlKXt2YXIgZj1DYihhLGZ1bmN0aW9uKGcpe3JldHVybiBnLmdjbGlkPT09Yn0pO2Y/KGYudGltZXN0YW1wPGMmJihmLnRpbWVzdGFtcD1jLGYub2Q9ZSksZi5sYWJlbHM9THIoZi5sYWJlbHN8fFtdLGR8fFtdKSk6YS5wdXNoKHt2ZXJzaW9uOiIyIixnY2xpZDpiLHRpbWVzdGFtcDpjLGxhYmVsczpkLG9kOmV9KX1mdW5jdGlvbiBNcihhKXtmb3IodmFyIGI9d3EoYSw1KXx8W10sYz1bXSxkPW0oYiksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWUsZz1mLGg9TnIoZik7aCYmS3IoYyxnLmssaCxnLmJ8fFtdLGYudSl9cmV0dXJuIGMuc29ydChmdW5jdGlvbihsLG4pe3JldHVybiBuLnRpbWVzdGFtcC1sLnRpbWVzdGFtcH0pfQpmdW5jdGlvbiBFcihhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPVtdO09yKGMsYSwxKTtpZihiKWlmKFRiKGEsIl9hdyIpKXt2YXIgZD1QcigpO2QmJihkLm9kPXZvaWQgMCxkLm9hPWQub2F8fFsyXSxRcihjLGQpKTtPcihjLCJnY2xfYXciLDIpfWVsc2UgVGIoYSwiX2diIikmJllmKDYpJiZPcihjLCJnY2xfZ2IiLDIpO2Muc29ydChmdW5jdGlvbihlLGYpe3JldHVybiBmLnRpbWVzdGFtcC1lLnRpbWVzdGFtcH0pO3JldHVybiBScihjKX1mdW5jdGlvbiBTcihhLGIpe2Zvcih2YXIgYz1bXSxkPW0oYSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7Yy5pbmNsdWRlcyhmKXx8Yy5wdXNoKGYpfWZvcih2YXIgZz1tKGIpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlO2MuaW5jbHVkZXMobCl8fGMucHVzaChsKX1yZXR1cm4gY30KZnVuY3Rpb24gUXIoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO2Zvcih2YXIgZCxlLGY9bShhKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtpZihoLmdjbGlkPT09Yi5nY2xpZCl7ZD1oO2JyZWFrfWgucWEmJmIucWEmJmgucWEuZXF1YWxzKGIucWEpJiYoZT1oKX1pZihkKXt2YXIgbCxuLHA9KGw9ZC5xYSkhPW51bGw/bDpuZXcgZXIscT0obj1iLnFhKSE9bnVsbD9uOm5ldyBlcjtwLnZhbHVlfD1xLnZhbHVlO2QucWE9cDtkLnRpbWVzdGFtcDxiLnRpbWVzdGFtcCYmKGQudGltZXN0YW1wPWIudGltZXN0YW1wLGQub2Q9Yi5vZCk7ZC5sYWJlbHM9U3IoZC5sYWJlbHN8fFtdLGIubGFiZWxzfHxbXSk7ZC5vYT1TcihkLm9hfHxbXSxiLm9hfHxbXSl9ZWxzZSBjJiZlP25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZSxiKTphLnB1c2goYil9CmZ1bmN0aW9uIFRyKGEpe2lmKCFhKXJldHVybiBuZXcgZXI7dmFyIGI9bmV3IGVyO2lmKGE9PT0xKXJldHVybiBmcihiLDIpLGZyKGIsMyksYjtmcihiLGEpO3JldHVybiBifQpmdW5jdGlvbiBQcigpe3ZhciBhPW5yKCJnY2xpZCIpO2lmKCFhfHxhLmVycm9yfHwhYS52YWx1ZXx8dHlwZW9mIGEudmFsdWUhPT0ib2JqZWN0IilyZXR1cm4gbnVsbDt2YXIgYj1hLnZhbHVlO3RyeXtpZighKCJ2YWx1ZSJpbiBiJiZiLnZhbHVlKXx8dHlwZW9mIGIudmFsdWUhPT0ib2JqZWN0IilyZXR1cm4gbnVsbDt2YXIgYz1iLnZhbHVlLGQ9Yy52YWx1ZTtpZighZHx8IWQubWF0Y2godHIpKXJldHVybiBudWxsO3ZhciBlPWMubGlua0RlY29yYXRpb25Tb3VyY2UsZj1jLmxpbmtEZWNvcmF0aW9uU291cmNlcyxnPW5ldyBlcjt0eXBlb2YgZT09PSJudW1iZXIiP2c9VHIoZSk6dHlwZW9mIGY9PT0ibnVtYmVyIiYmKGcudmFsdWU9Zik7cmV0dXJue3ZlcnNpb246IiIsZ2NsaWQ6ZCx0aW1lc3RhbXA6TnVtYmVyKGMuY3JlYXRpb25UaW1lTXMpfHwwLGxhYmVsczpbXSxxYTpnLG9hOlsyXX19Y2F0Y2goaCl7cmV0dXJuIG51bGx9fQpmdW5jdGlvbiBVcihhKXt2YXIgYj1ucihhKTtpZihiLmVycm9yIT09MClyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIGIudmFsdWUucmVkdWNlKGZ1bmN0aW9uKGMsZCl7aWYoIWQudmFsdWV8fHR5cGVvZiBkLnZhbHVlIT09Im9iamVjdCIpcmV0dXJuIGM7dmFyIGU9ZC52YWx1ZSxmPWUudmFsdWU7aWYoIWZ8fCFmLm1hdGNoKHRyKSlyZXR1cm4gYzt2YXIgZz1uZXcgZXIsaD1lLmxpbmtEZWNvcmF0aW9uU291cmNlczt0eXBlb2YgaD09PSJudW1iZXIiJiYoZy52YWx1ZT1oKTt2YXIgbDtjLnB1c2goe3ZlcnNpb246IiIsZ2NsaWQ6Zix0aW1lc3RhbXA6TnVtYmVyKGUuY3JlYXRpb25UaW1lTXMpfHwwLGV4cGlyZXM6TnVtYmVyKGQuZXhwaXJlcyl8fDAsbGFiZWxzOihsPWUubGFiZWxzKSE9bnVsbD9sOltdLHFhOmcsb2E6WzJdfSk7cmV0dXJuIGN9LFtdKX1jYXRjaChjKXtyZXR1cm4gbnVsbH19CmZ1bmN0aW9uIE9yKGEsYixjKXtpZihjPT09MSlmb3IodmFyIGQ9Y3EoYixCLmNvb2tpZSx2b2lkIDAsQXIoKSksZT1tKGQpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1WcihmLnZhbHVlLnNwbGl0KCIuIikpLGg9Zy5sZW5ndGg9PT0wP251bGw6e3ZlcnNpb246Z1swXSxnY2xpZDpnWzJdLHRpbWVzdGFtcDooTnVtYmVyKGdbMV0pfHwwKSoxRTMsbGFiZWxzOmcuc2xpY2UoMyl9O2ghPW51bGwmJihoLm9kPXZvaWQgMCxoLnFhPW5ldyBlcixoLm9hPVtjXSxRcihhLGgpKX1lbHNlIGlmKGM9PT0yKXt2YXIgbD1VcihiKTtpZihsKWZvcih2YXIgbj1tKGwpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1wLnZhbHVlO3Eub2Q9dm9pZCAwO3Eub2E9cS5vYTtRcihhLHEpfX19CmZ1bmN0aW9uIFpyKGEpe3ZhciBiPUVyKGEpLGM9VXIoImdjbF9kYyIpO2lmKGMpZm9yKHZhciBkPW0oYyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7Zi5vZD12b2lkIDA7Zi5vYT1mLm9hfHxbMl07UXIoYixmKX1iLnNvcnQoZnVuY3Rpb24oZyxoKXt2YXIgbD1nLm9hJiZnLm9hLmluY2x1ZGVzKDEpLG49aC5vYSYmaC5vYS5pbmNsdWRlcygxKTtyZXR1cm4gbCYmIW4/LTE6IWwmJm4/MTpoLnRpbWVzdGFtcC1nLnRpbWVzdGFtcH0pO3JldHVybiBScihiKX1mdW5jdGlvbiBKcihhKXtyZXR1cm4gTXIoYSkubWFwKGZ1bmN0aW9uKGIpe2IucWE9bmV3IGVyO2Iub2E9WzFdO3JldHVybiBifSl9CmZ1bmN0aW9uIExyKGEsYil7aWYoIWEubGVuZ3RoKXJldHVybiBiO2lmKCFiLmxlbmd0aClyZXR1cm4gYTt2YXIgYz17fTtyZXR1cm4gYS5jb25jYXQoYikuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiBjLmhhc093blByb3BlcnR5KGQpPyExOmNbZF09ITB9KX1mdW5jdGlvbiBIcihhKXtyZXR1cm4gYSYmdHlwZW9mIGE9PT0ic3RyaW5nIiYmYS5tYXRjaChzcik/YToiX2djbCJ9ZnVuY3Rpb24gJHIoYSxiKXtpZihhKXt2YXIgYz17dmFsdWU6YSxxYTpuZXcgZXJ9O2ZyKGMucWEsYik7cmV0dXJuIGN9fQpmdW5jdGlvbiBhcyhhLGIsYyl7dmFyIGQ9UmooYSksZT1MaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xzcmMiKSxmPSRyKExqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbGlkIiksYz80OjIpO2lmKGImJighZnx8IWUpKXt2YXIgZz1kLmhhc2gucmVwbGFjZSgiIyIsIiIpO2Z8fChmPSRyKElqKGcsImdjbGlkIiwhMSksMykpO2V8fChlPUlqKGcsImdjbHNyYyIsITEpKX1yZXR1cm4gZiYmKGU9PT12b2lkIDB8fGU9PT0iYXcifHxlPT09ImF3LmRzInx8WWYoOCkmJmU9PT0iYXcuZHYiKT9bZl06W119CmZ1bmN0aW9uIGJzKGEsYil7dmFyIGM9UmooYSksZD1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xpZCIpLGU9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZ2Nsc3JjIiksZj1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJ3YnJhaWQiKTtmPSRiKGYpO3ZhciBnPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsImdicmFpZCIpLGg9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZ2FkX3NvdXJjZSIpLGw9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZGNsaWQiKTtpZihiJiYhKGQmJmUmJmYmJmcpKXt2YXIgbj1jLmhhc2gucmVwbGFjZSgiIyIsIiIpO2Q9ZHx8SWoobiwiZ2NsaWQiLCExKTtlPWV8fElqKG4sImdjbHNyYyIsITEpO2Y9Znx8SWoobiwid2JyYWlkIiwhMSk7Zz1nfHxJaihuLCJnYnJhaWQiLCExKTtoPWh8fElqKG4sImdhZF9zb3VyY2UiLCExKX1yZXR1cm4gY3MoZCxlLGwsZixnLGgpfQpmdW5jdGlvbiBkcyhhLGIsYyl7dmFyIGQ9UmooYSksZT1MaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xzcmMiKSxmPSRyKExqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbGlkIiksYz80OjIpLGc9JHIoTGooZCwicXVlcnkiLCExLHZvaWQgMCwiZGNsaWQiKSxjPzQ6Mik7aWYoYiYmKCFlfHwhZikpe3ZhciBoPWQuaGFzaC5yZXBsYWNlKCIjIiwiIik7Znx8KGY9JHIoSWooaCwiZ2NsaWQiLCExKSwzKSk7ZXx8KGU9SWooaCwiZ2Nsc3JjIiwhMSkpfXJldHVybiBmJiZlJiYoZT09PSJhdy5kcyJ8fGU9PT0iYXcuZHYifHxlPT09IjNwLmRzInx8ZT09PSJkcyIpP1tmXTpnP1tnXTpbXX1mdW5jdGlvbiBlcygpe3JldHVybiBicyhBLmxvY2F0aW9uLmhyZWYsITApfQpmdW5jdGlvbiBjcyhhLGIsYyxkLGUsZil7dmFyIGc9e30saD1mdW5jdGlvbihsLG4pe2dbbl18fChnW25dPVtdKTtnW25dLnB1c2gobCl9O2cuZ2NsaWQ9YTtnLmdjbHNyYz1iO2cuZGNsaWQ9YztpZihhIT09dm9pZCAwJiZhLm1hdGNoKHRyKSlzd2l0Y2goYil7Y2FzZSB2b2lkIDA6aChhLCJhdyIpO2JyZWFrO2Nhc2UgImF3LmRzIjpoKGEsImF3Iik7aChhLCJkYyIpO2JyZWFrO2Nhc2UgImF3LmR2IjpZZig4KSYmKGgoYSwiYXciKSxoKGEsImRjIikpO2JyZWFrO2Nhc2UgImRzIjpoKGEsImRjIik7YnJlYWs7Y2FzZSAiM3AuZHMiOmgoYSwiZGMiKTticmVhaztjYXNlICJnZiI6aChhLCJnZiIpO2JyZWFrO2Nhc2UgImhhIjpoKGEsImhhIil9YyYmaChjLCJkYyIpO2QhPT12b2lkIDAmJnRyLnRlc3QoZCkmJihnLndicmFpZD1kLGgoZCwiZ2IiKSk7ZSE9PXZvaWQgMCYmdHIudGVzdChlKSYmKGcuZ2JyYWlkPWUsaChlLCJhZyIpKTtmIT09dm9pZCAwJiZ0ci50ZXN0KGYpJiYoZy5nYWRfc291cmNlPQpmLGgoZiwiZ3MiKSk7cmV0dXJuIGd9ZnVuY3Rpb24gZnMoKXtmb3IodmFyIGE9ZXMoKSxiPSEwLGM9bShPYmplY3Qua2V5cyhhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpaWYoYVtkLnZhbHVlXSE9PXZvaWQgMCl7Yj0hMTticmVha31iJiYoYT1icyhBLmRvY3VtZW50LnJlZmVycmVyLCExKSxhLmdhZF9zb3VyY2U9dm9pZCAwKTtyZXR1cm4gYX1mdW5jdGlvbiBncyhhKXt2YXIgYj1mcygpO2hzKGIsITEsYSl9CmZ1bmN0aW9uIGlzKGEpe3ZhciBiPWFzKEEubG9jYXRpb24uaHJlZiwhMCwhMSk7Yi5sZW5ndGh8fChiPWFzKEEuZG9jdW1lbnQucmVmZXJyZXIsITEsITApKTthPWF8fHt9O2pzKGEpO2lmKGIubGVuZ3RoKXt2YXIgYz1iWzBdLGQ9TmIoKSxlPXVxKGEsZCwhMCksZj1BcigpLGc9ZnVuY3Rpb24oKXtCcihmKSYmZS5leHBpcmVzIT09dm9pZCAwJiZrcigiZ2NsaWQiLHt2YWx1ZTp7dmFsdWU6Yy52YWx1ZSxjcmVhdGlvblRpbWVNczpkLGxpbmtEZWNvcmF0aW9uU291cmNlczpjLnFhLmdldCgpfSxleHBpcmVzOk51bWJlcihlLmV4cGlyZXMpfSl9O0hsKGZ1bmN0aW9uKCl7ZygpO0JyKGYpfHxJbChnLGYpfSxmKX19CmZ1bmN0aW9uIGpzKGEpe3ZhciBiPUIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIjtpZih5ci50ZXN0KGIpfHx6ci50ZXN0KGIpfHxrcygpKXt2YXIgYzthOntmb3IodmFyIGQ9UmooQS5sb2NhdGlvbi5ocmVmKSxlPUpqKExqKGQsInF1ZXJ5IikpLGY9bShPYmplY3Qua2V5cyhlKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7aWYoIXJyW2hdKXt2YXIgbD1lW2hdWzBdfHwiIixuO2lmKCFsfHxsLmxlbmd0aDw1MHx8bC5sZW5ndGg+MjAwKW49ITE7ZWxzZXt2YXIgcD1ncihsKSxxO2lmKHApYzp7dmFyIHI9cDtpZihyJiZyLmxlbmd0aCE9PTApe3ZhciB0PTA7dHJ5e2Zvcih2YXIgdT0xMDt0PHIubGVuZ3RoJiYhKHUtLTw9MCk7KXt2YXIgdj1ocihyLHQpO2lmKHY9PT12b2lkIDApYnJlYWs7dmFyIHg9bSh2KSx5PXgubmV4dCgpLnZhbHVlLHo9eC5uZXh0KCkudmFsdWUsQz15LEQ9eixJPUMmNztpZihDPj4zPT09MTYzODIpe2lmKEkhPT0KMClicmVhazt2YXIgRz1ocihyLEQpO2lmKEc9PT12b2lkIDApYnJlYWs7cT1tKEcpLm5leHQoKS52YWx1ZT09PTE7YnJlYWsgY312YXIgTjtkOnt2YXIgUz12b2lkIDAsVz1yLGVhPUQ7c3dpdGNoKEkpe2Nhc2UgMDpOPShTPWhyKFcsZWEpKT09bnVsbD92b2lkIDA6U1sxXTticmVhayBkO2Nhc2UgMTpOPWVhKzg7YnJlYWsgZDtjYXNlIDI6dmFyIGphPWhyKFcsZWEpO2lmKGphPT09dm9pZCAwKWJyZWFrO3ZhciBmYT1tKGphKSxzYT1mYS5uZXh0KCkudmFsdWU7Tj1mYS5uZXh0KCkudmFsdWUrc2E7YnJlYWsgZDtjYXNlIDU6Tj1lYSs0O2JyZWFrIGR9Tj12b2lkIDB9aWYoTj09PXZvaWQgMHx8Tj5yLmxlbmd0aHx8Tjw9dClicmVhazt0PU59fWNhdGNoKG1hKXt9fXE9ITF9ZWxzZSBxPSExO249cX1pZihuKXtjPWw7YnJlYWsgYX19fWM9dm9pZCAwfXZhciBkYT1jO2RhJiZscygiZ2NsX2F3IixkYSw3LGEpfX0KZnVuY3Rpb24gbHMoYSxiLGMsZCl7bXMoYSxbe3ZlcnNpb246IiIsZ2NsaWQ6Yix0aW1lc3RhbXA6TmIoKSxxYTpUcihjKX1dLGQpfQpmdW5jdGlvbiBtcyhhLGIsYyl7Yz1jfHx7fTt2YXIgZD1BcigpLGU9ZnVuY3Rpb24oKXtpZihCcihkKSYmYi5sZW5ndGg+MCl7dmFyIGY9VXIoYSl8fFtdO2IuZm9yRWFjaChmdW5jdGlvbihnKXt2YXIgaD11cShjLGcudGltZXN0YW1wLCEwKTtoLmV4cGlyZXMhPT12b2lkIDAmJlFyKGYse3ZlcnNpb246IiIsZ2NsaWQ6Zy5nY2xpZCx0aW1lc3RhbXA6Zy50aW1lc3RhbXAsZXhwaXJlczpOdW1iZXIoaC5leHBpcmVzKSxxYTpnLnFhLGxhYmVsczpnLmxhYmVsc30sITApfSk7Zi5sZW5ndGgmJmtyKGEsZi5tYXAoZnVuY3Rpb24oZyl7dmFyIGg9e3ZhbHVlOmcuZ2NsaWQsY3JlYXRpb25UaW1lTXM6Zy50aW1lc3RhbXAsbGlua0RlY29yYXRpb25Tb3VyY2VzOmcucWE/Zy5xYS5nZXQoKTowfSxsO2lmKChsPWcubGFiZWxzKT09bnVsbD8wOmwubGVuZ3RoKWgubGFiZWxzPWcubGFiZWxzO3JldHVybnt2YWx1ZTpoLGV4cGlyZXM6TnVtYmVyKGcuZXhwaXJlcyl9fSkpfX07SGwoZnVuY3Rpb24oKXtCcihkKT8KZSgpOklsKGUsZCl9LGQpfQpmdW5jdGlvbiBocyhhLGIsYyxkLGUpe2M9Y3x8e307ZT1lfHxbXTt2YXIgZj1IcihjLnByZWZpeCksZz1kfHxOYigpLGg9TWF0aC5yb3VuZChnLzFFMyksbD1BcigpLG49ITEscD0hMSxxPVlmKDkpLHI9ZnVuY3Rpb24oKXtpZihCcihsKSl7dmFyIHQ9dXEoYyxnLCEwKTt0Lk1jPWw7Zm9yKHZhciB1PWZ1bmN0aW9uKFcsZWEpe3ZhciBqYT1JcihXLGYpO2phJiYob3EoamEsZWEsdCksVyE9PSJnYiImJihuPSEwKSl9LHY9ZnVuY3Rpb24oVyl7dmFyIGVhPVsiR0NMIixoLFddO2UubGVuZ3RoPjAmJmVhLnB1c2goZS5qb2luKCIuIikpO3JldHVybiBlYS5qb2luKCIuIil9LHg9bShbImF3IiwiZGMiLCJnZiIsImhhIiwiZ3AiXSkseT14Lm5leHQoKTsheS5kb25lO3k9eC5uZXh0KCkpe3ZhciB6PXkudmFsdWU7YVt6XSYmdSh6LHYoYVt6XVswXSkpfWlmKCghbnx8cSkmJmEuZ2Ipe3ZhciBDPWEuZ2JbMF0sRD1JcigiZ2IiLGYpOyFiJiZFcihEKS5zb21lKGZ1bmN0aW9uKFcpe3JldHVybiBXLmdjbGlkPT09QyYmClcubGFiZWxzJiZXLmxhYmVscy5sZW5ndGg+MH0pfHx1KCJnYiIsdihDKSl9fWlmKCFwJiZhLmdicmFpZCYmQnIoImFkX3N0b3JhZ2UiKSYmKHA9ITAsIW58fHEpKXt2YXIgST1hLmdicmFpZCxHPUlyKCJhZyIsZik7aWYoYnx8IUpyKEcpLnNvbWUoZnVuY3Rpb24oVyl7cmV0dXJuIFcuZ2NsaWQ9PT1JJiZXLmxhYmVscyYmVy5sYWJlbHMubGVuZ3RoPjB9KSl7dmFyIE49e30sUz0oTi5rPUksTi5pPSIiK2gsTi5iPWUsTik7QXEoRyxTLDUsYyxnKX19bnMoYSxmLGcsYyl9O0hsKGZ1bmN0aW9uKCl7cigpO0JyKGwpfHxJbChyLGwpfSxsKX0KZnVuY3Rpb24gbnMoYSxiLGMsZCl7aWYoYS5nYWRfc291cmNlIT09dm9pZCAwJiZCcigiYWRfc3RvcmFnZSIpKXt2YXIgZT1xZCgpO2lmKGUhPT0iciImJmUhPT0iaCIpe3ZhciBmPWEuZ2FkX3NvdXJjZSxnPUlyKCJncyIsYik7aWYoZyl7dmFyIGg9TWF0aC5mbG9vcigoTmIoKS0ocGQoKXx8MCkpLzFFMyksbCxuPWlyKCkscD17fTtsPShwLms9ZixwLmk9IiIraCxwLnU9bixwKTtBcShnLGwsNSxkLGMpfX19fWZ1bmN0aW9uIG9zKGEsYixjKXtmb3IodmFyIGQ9d3EoYixjKSxlPTA7ZTxkLmxlbmd0aDsrK2UpaWYoTnIoZFtlXSk+YSlyZXR1cm4hMDtyZXR1cm4hMX0KZnVuY3Rpb24gcHMoYSl7dmFyIGI9cXMsYz1ycyhhLnByZWZpeCk7Q3IoZnVuY3Rpb24oKXtmb3IodmFyIGQ9SHIoYS5wcmVmaXgpLGU9bShiKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZSxoPWNbZ107aWYoaCl7dmFyIGw9TWF0aC5taW4oc3MoaCksTmIoKSksbj11cShhLGwsITApO24uTWM9QXIoKTt2YXIgcD1JcihnLGQpO3AmJm9xKHAsaCxuKX19dmFyIHE9VXEoITApO2hzKGNzKHEuZ2NsaWQscS5nY2xzcmMpLCExLGEpfSxBcigpKX0KZnVuY3Rpb24gcnMoYSl7dmFyIGI9VXEoITApLGM9SHIoYSksZD17fSxlO2ZvcihlIGluIHhyKWlmKHhyLmhhc093blByb3BlcnR5KGUpKXt2YXIgZj1lLGc9SXIoZixjKTtpZihnIT09dm9pZCAwKXt2YXIgaD1iW2ddO2lmKGgpe3ZhciBsPXNzKGgpLG47YTp7Zm9yKHZhciBwPU1hdGgubWluKGwsTmIoKSl8fE5iKCkscT1jcShnLEIuY29va2llLHZvaWQgMCxBcigpKSxyPTA7cjxxLmxlbmd0aDsrK3IpaWYoc3MocVtyXSk+cCl7bj0hMDticmVhayBhfW49ITF9bnx8KGRbZl09aCl9fX1yZXR1cm4gZH0KZnVuY3Rpb24gdHMoYSl7dmFyIGI9WyJhZyJdLGM9VXEoITApLGQ9SHIoYS5wcmVmaXgpO0NyKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTxiLmxlbmd0aDsrK2Upe3ZhciBmPUlyKGJbZV0sZCk7aWYoZil7dmFyIGc9Y1tmXTtpZihnKXt2YXIgaD0kcChnLDUpO2lmKGgpe3ZhciBsPU5yKGgpO2x8fChsPU5iKCkpO2lmKG9zKGwsZiw1KSlicmVhaztoLmk9IiIrTWF0aC5yb3VuZChsLzFFMyk7QXEoZixoLDUsYSxsKX19fX19LFsiYWRfc3RvcmFnZSJdKX1mdW5jdGlvbiBJcihhLGIpe3ZhciBjPXhyW2FdO2lmKGMhPT12b2lkIDApcmV0dXJuIGIrY31mdW5jdGlvbiBzcyhhKXtyZXR1cm4gVnIoYS5zcGxpdCgiLiIpKS5sZW5ndGghPT0wPyhOdW1iZXIoYS5zcGxpdCgiLiIpWzFdKXx8MCkqMUUzOjB9ZnVuY3Rpb24gTnIoYSl7cmV0dXJuIGE/KE51bWJlcihhLmkpfHwwKSoxRTM6MH0KZnVuY3Rpb24gVnIoYSl7cmV0dXJuIGEubGVuZ3RoPDN8fGFbMF0hPT0iR0NMIiYmYVswXSE9PSIxInx8IS9eXGQrJC8udGVzdChhWzFdKXx8IXRyLnRlc3QoYVsyXSk/W106YX1mdW5jdGlvbiB1cyhhLGIsYyxkKXt2YXIgZT1xcztpZihBcnJheS5pc0FycmF5KGEpJiZTcChBKSl7dmFyIGY9SHIoZCksZz1mdW5jdGlvbigpe2Zvcih2YXIgaD17fSxsPTA7bDxlLmxlbmd0aDsrK2wpe3ZhciBuPUlyKGVbbF0sZik7aWYobil7dmFyIHA9Y3EobixCLmNvb2tpZSx2b2lkIDAsQXIoKSk7cC5sZW5ndGgmJihoW25dPXAuc29ydCgpW3AubGVuZ3RoLTFdKX19cmV0dXJuIGh9O0NyKGZ1bmN0aW9uKCl7YXIoZyxhLGIsYyl9LEFyKCkpfX0KZnVuY3Rpb24gdnMoYSxiLGMpe3ZhciBkPXFzO2lmKFlmKDEzKSYmQXJyYXkuaXNBcnJheShhKSYmU3AoQSkpe3ZhciBlPWZ1bmN0aW9uKCl7Zm9yKHZhciBmPXt9LGc9MDtnPGQubGVuZ3RoOysrZyl7dmFyIGg9dnJbZFtnXV07aWYoaCl7dmFyIGw9Y3EoaCxCLmNvb2tpZSx2b2lkIDAsQXIoKSk7aWYobC5sZW5ndGgpe2Zvcih2YXIgbj12b2lkIDAscD0wLHE9bShsKSxyPXEubmV4dCgpOyFyLmRvbmU7cj1xLm5leHQoKSl7dmFyIHQ9ci52YWx1ZSx1PSRwKHQsNCk7aWYodSYmKHUubT09PSIxInx8WWYoMTYpKSl7dmFyIHY9TnIodSk7dj49cCYmKHA9dixuPXQpfX1uJiYoZltoXT1uKX19fXJldHVybiBmfTtDcihmdW5jdGlvbigpe2FyKGUsYSxiLGMpfSxBcigpKX19CmZ1bmN0aW9uIHdzKGEsYixjLGQpe2lmKEFycmF5LmlzQXJyYXkoYSkmJlNwKEEpKXt2YXIgZT1bImFnIl0sZj1IcihkKSxnPWZ1bmN0aW9uKCl7Zm9yKHZhciBoPXt9LGw9MDtsPGUubGVuZ3RoOysrbCl7dmFyIG49SXIoZVtsXSxmKTtpZighbilyZXR1cm57fTt2YXIgcD13cShuLDUpO2lmKHAubGVuZ3RoKXt2YXIgcT1wLnNvcnQoZnVuY3Rpb24ocix0KXtyZXR1cm4gTnIodCktTnIocil9KVswXTtoW25dPWFxKHEsNSl9fXJldHVybiBofTtDcihmdW5jdGlvbigpe2FyKGcsYSxiLGMpfSxbImFkX3N0b3JhZ2UiXSl9fWZ1bmN0aW9uIFJyKGEpe3JldHVybiBhLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gdHIudGVzdChiLmdjbGlkKX0pfQpmdW5jdGlvbiB4cyhhLGIpe2lmKFNwKEEpKXtmb3IodmFyIGM9SHIoYi5wcmVmaXgpLGQ9e30sZT0wO2U8YS5sZW5ndGg7ZSsrKXhyW2FbZV1dJiYoZFthW2VdXT14clthW2VdXSk7Q3IoZnVuY3Rpb24oKXtHYihkLGZ1bmN0aW9uKGYsZyl7dmFyIGg9Y3EoYytnLEIuY29va2llLHZvaWQgMCxBcigpKTtoLnNvcnQoZnVuY3Rpb24odCx1KXtyZXR1cm4gc3ModSktc3ModCl9KTtpZihoLmxlbmd0aCl7dmFyIGw9aFswXSxuPXNzKGwpLHA9VnIobC5zcGxpdCgiLiIpKS5sZW5ndGghPT0wP2wuc3BsaXQoIi4iKS5zbGljZSgzKTpbXSxxPXt9LHI7cj1WcihsLnNwbGl0KCIuIikpLmxlbmd0aCE9PTA/bC5zcGxpdCgiLiIpWzJdOnZvaWQgMDtxW2ZdPVtyXTtocyhxLCEwLGIsbixwKX19KX0sQXIoKSl9fQpmdW5jdGlvbiB5cyhhKXt2YXIgYj1bImFnIl0sYz1bImdicmFpZCJdO0NyKGZ1bmN0aW9uKCl7Zm9yKHZhciBkPUhyKGEucHJlZml4KSxlPTA7ZTxiLmxlbmd0aDsrK2Upe3ZhciBmPUlyKGJbZV0sZCk7aWYoIWYpYnJlYWs7dmFyIGc9d3EoZiw1KTtpZihnLmxlbmd0aCl7dmFyIGg9Zy5zb3J0KGZ1bmN0aW9uKHEscil7cmV0dXJuIE5yKHIpLU5yKHEpfSlbMF0sbD1OcihoKSxuPWguYixwPXt9O3BbY1tlXV09aC5rO2hzKHAsITAsYSxsLG4pfX19LFsiYWRfc3RvcmFnZSJdKX1mdW5jdGlvbiB6cyhhLGIpe2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7KytjKWlmKGFbYltjXV0pcmV0dXJuITA7cmV0dXJuITF9CmZ1bmN0aW9uIEFzKGEpe2Z1bmN0aW9uIGIoaCxsLG4pe24mJihoW2xdPW4pfWlmKEVsKCkpe3ZhciBjPWVzKCksZDthLmluY2x1ZGVzKCJnYWRfc291cmNlIikmJihkPWMuZ2FkX3NvdXJjZSE9PXZvaWQgMD9jLmdhZF9zb3VyY2U6VXEoITEpLl9ncyk7aWYoenMoYyxhKXx8ZCl7dmFyIGU9e307YihlLCJnY2xpZCIsYy5nY2xpZCk7YihlLCJkY2xpZCIsYy5kY2xpZCk7YihlLCJnY2xzcmMiLGMuZ2Nsc3JjKTtiKGUsIndicmFpZCIsYy53YnJhaWQpO2IoZSwiZ2JyYWlkIixjLmdicmFpZCk7YnIoZnVuY3Rpb24oKXtyZXR1cm4gZX0sMyk7dmFyIGY9e30sZz0oZi5fdXA9IjEiLGYpO2IoZywiX2dzIixkKTticihmdW5jdGlvbigpe3JldHVybiBnfSwxKX19fWZ1bmN0aW9uIGtzKCl7dmFyIGE9UmooQS5sb2NhdGlvbi5ocmVmKTtyZXR1cm4gTGooYSwicXVlcnkiLCExLHZvaWQgMCwiZ2FkX3NvdXJjZSIpfQpmdW5jdGlvbiBCcyhhKXtpZighWWYoMSkpcmV0dXJuIG51bGw7dmFyIGI9VXEoITApLmdhZF9zb3VyY2U7aWYoYiE9bnVsbClyZXR1cm4gQS5sb2NhdGlvbi5oYXNoPSIiLGI7aWYoWWYoMikpe2I9a3MoKTtpZihiIT1udWxsKXJldHVybiBiO3ZhciBjPWVzKCk7aWYoenMoYyxhKSlyZXR1cm4iMCJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gQ3MoYSl7dmFyIGI9QnMoYSk7YiE9bnVsbCYmYnIoZnVuY3Rpb24oKXt2YXIgYz17fTtyZXR1cm4gYy5nYWRfc291cmNlPWIsY30sNCl9CmZ1bmN0aW9uIERzKGEsYixjKXt2YXIgZD1bXTtpZihiLmxlbmd0aD09PTApcmV0dXJuIGQ7Zm9yKHZhciBlPXt9LGY9MDtmPGIubGVuZ3RoO2YrKyl7dmFyIGc9YltmXSxoPWcuemc/Zy56ZzoiZ2NsIjtpZigoZy5sYWJlbHN8fFtdKS5pbmRleE9mKGMpPT09LTEpe2EucHVzaCgwKTt2YXIgbD0hMSxuPXZvaWQgMDtpZigobj1nLm9hKT09bnVsbD8wOm4uaW5jbHVkZXMoMikpbD0hMDt2YXIgcD12b2lkIDA7KChwPWcub2EpPT1udWxsPzA6cC5pbmNsdWRlcygxKSkmJiFlW2hdJiYobD0hMCxlW2hdPSEwKTtsJiZkLnB1c2goZyl9ZWxzZXthLnB1c2goMSk7dmFyIHE9dm9pZCAwO2lmKChxPWcub2EpPT1udWxsPzA6cS5pbmNsdWRlcygxKSllW2hdPSEwfX1yZXR1cm4gZH0KZnVuY3Rpb24gRXMoYSxiLGMsZCxlKXtlPWU9PT12b2lkIDA/ITE6ZTt2YXIgZj1bXTtjPWN8fHt9O2lmKCFCcihBcigpKSlyZXR1cm4gZjt2YXIgZz1FcihhLGUpLGg9RHMoZixnLGIpO2lmKGgubGVuZ3RoJiYhZCl7Zm9yKHZhciBsPVtdLG49ITEscD1tKGgpLHE9cC5uZXh0KCk7IXEuZG9uZTtxPXAubmV4dCgpKXt2YXIgcj1xLnZhbHVlLHQ9cix1PXQudmVyc2lvbix2PXQuZ2NsaWQseD10LnRpbWVzdGFtcCx5PXQub2Esej0odC5sYWJlbHN8fFtdKS5jb25jYXQoW2JdKSxDPXZvaWQgMDtpZigoKEM9eSk9PW51bGw/MDpDLmluY2x1ZGVzKDEpKSYmIW4pe3ZhciBEPVt1LE1hdGgucm91bmQoeC8xRTMpLHZdLmNvbmNhdCh6KS5qb2luKCIuIiksST11cShjLHgsITApO0kuTWM9QXIoKTtvcShhLEQsSSk7bj0hMH12YXIgRz12b2lkIDA7ZSYmKChHPXkpPT1udWxsPzA6Ry5pbmNsdWRlcygyKSkmJmwucHVzaChuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHIse2xhYmVsczp6fSkpfWwubGVuZ3RoJiYKbXMoImdjbF9nYiIsbCxjKX1yZXR1cm4gZn0KZnVuY3Rpb24gRnMoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO3ZhciBkPVtdO2I9Ynx8e307dmFyIGU9R3IoYixjKSxmPURzKGQsZSxhKTtpZihmLmxlbmd0aCl7Zm9yKHZhciBnPVtdLGg9e30sbD1tKGYpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlLHE9SHIoYi5wcmVmaXgpLHI9SXIocC56ZyxxKTtpZighcilyZXR1cm4gZDt2YXIgdD1wLHU9dC52ZXJzaW9uLHY9dC5nY2xpZCx4PXQudGltZXN0YW1wLHk9dC5vYSx6PU1hdGgucm91bmQoeC8xRTMpLEM9THIodC5sYWJlbHN8fFtdLFthXSksRD12b2lkIDA7aWYoKEQ9eSk9PW51bGw/MDpELmluY2x1ZGVzKDEpKWlmKHAuemc9PT0iYWciJiYhaC5hZyl7dmFyIEk9e30sRz0oSS5rPXYsSS5pPSIiK3osSS5iPUMsSSk7QXEocixHLDUsYix4KTtoLmFnPSEwfWVsc2UgaWYocC56Zz09PSJnYiImJiFoLmdiKXt2YXIgTj1bdSx6LHZdLmNvbmNhdChDKS5qb2luKCIuIiksUz11cShiLHgsITApO1MuTWM9CkFyKCk7b3EocixOLFMpO2guZ2I9ITB9dmFyIFc9dm9pZCAwO2MmJigoVz15KT09bnVsbD8wOlcuaW5jbHVkZXMoMikpJiZnLnB1c2gobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxwLHtsYWJlbHM6Q30pKX1nLmxlbmd0aCYmbXMoImdjbF9nYiIsZyxiKX1yZXR1cm4gZH1mdW5jdGlvbiBHcyhhLGIpe3ZhciBjPUhyKGIpLGQ9SXIoYSxjKTtpZighZClyZXR1cm4gMDt2YXIgZTtlPWE9PT0iYWciP0pyKGQpOkVyKGQpO2Zvcih2YXIgZj0wLGc9MDtnPGUubGVuZ3RoO2crKylmPU1hdGgubWF4KGYsZVtnXS50aW1lc3RhbXApO3JldHVybiBmfWZ1bmN0aW9uIEhzKGEpe2Zvcih2YXIgYj0wLGM9bShPYmplY3Qua2V5cyhhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpZm9yKHZhciBlPWFbZC52YWx1ZV0sZj0wO2Y8ZS5sZW5ndGg7ZisrKWI9TWF0aC5tYXgoYixOdW1iZXIoZVtmXS50aW1lc3RhbXApKTtyZXR1cm4gYn0KZnVuY3Rpb24gSXMoYSl7dmFyIGI9TWF0aC5tYXgoR3MoImF3IixhKSxIcyhCcihBcigpKT9ScCgpOnt9KSksYz1NYXRoLm1heChHcygiZ2IiLGEpLEhzKEJyKEFyKCkpP1JwKCJfZ2FjX2diIiwhMCk6e30pKTtjPU1hdGgubWF4KGMsR3MoImFnIixhKSk7cmV0dXJuIGM+Yn07dmFyIEpzPVJlZ0V4cCgiXlVBLVxcZCstXFxkKyUzQVtcXHctXSsoPzolMkNbXFx3LV0rKSooPzolM0JVQS1cXGQrLVxcZCslM0FbXFx3LV0rKD86JTJDW1xcdy1dKykqKSokIiksS3M9L15+P1tcdy1dKyg/Olwufj9bXHctXSspKiQvLExzPS9eXGQrXC5mbHNcLmRvdWJsZWNsaWNrXC5uZXQkLyxNcz0vO2dhYz0oW147P10rKS8sTnM9LztnYWNnYj0oW147P10rKS87CmZ1bmN0aW9uIE9zKGEsYil7aWYoTHMudGVzdChCLmxvY2F0aW9uLmhvc3QpKXt2YXIgYz1CLmxvY2F0aW9uLmhyZWYubWF0Y2goYik7cmV0dXJuIGMmJmMubGVuZ3RoPT09MiYmY1sxXS5tYXRjaChKcyk/S2ooY1sxXSl8fCIiOiIifWZvcih2YXIgZD1bXSxlPW0oT2JqZWN0LmtleXMoYSkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXtmb3IodmFyIGc9Zi52YWx1ZSxoPVtdLGw9YVtnXSxuPTA7bjxsLmxlbmd0aDtuKyspaC5wdXNoKGxbbl0uZ2NsaWQpO2QucHVzaChnKyI6IitoLmpvaW4oIiwiKSl9cmV0dXJuIGQubGVuZ3RoPjA/ZC5qb2luKCI7Iik6IiJ9CmZ1bmN0aW9uIFBzKGEsYixjKXtmb3IodmFyIGQ9QnIoQXIoKSk/UnAoIl9nYWNfZ2IiLCEwKTp7fSxlPVtdLGY9ITEsZz1tKE9iamVjdC5rZXlzKGQpKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZSxuPUVzKCJfZ2FjX2diXyIrbCxhLGIsYyk7Zj1mfHxuLmxlbmd0aCE9PTAmJm4uc29tZShmdW5jdGlvbihwKXtyZXR1cm4gcD09PTF9KTtlLnB1c2gobCsiOiIrbi5qb2luKCIsIikpfXJldHVybntScjpmP2Uuam9pbigiOyIpOiIiLFFyOk9zKGQsTnMpfX1mdW5jdGlvbiBRcyhhKXt2YXIgYj1CLmxvY2F0aW9uLmhyZWYubWF0Y2gobmV3IFJlZ0V4cCgiOyIrYSsiPShbXjs/XSspIikpO3JldHVybiBiJiZiLmxlbmd0aD09PTImJmJbMV0ubWF0Y2goS3MpP2JbMV06dm9pZCAwfQpmdW5jdGlvbiBScyhhKXt2YXIgYj17fSxjLGQsZTtMcy50ZXN0KEIubG9jYXRpb24uaG9zdCkmJihjPVFzKCJnY2xncyIpLGQ9UXMoImdjbHN0IiksZT1RcygiZ2NsbHAiKSk7aWYoYyYmZCYmZSliLkVnPWMsYi5XaD1kLGIuVWg9ZTtlbHNle3ZhciBmPU5iKCksZz1NcigoYXx8Il9nY2wiKSsiX2dzIiksaD1nLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gcC5nY2xpZH0pLGw9Zy5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIGYtcC50aW1lc3RhbXB9KSxuPWcubWFwKGZ1bmN0aW9uKHApe3JldHVybiBwLm9kfSk7aC5sZW5ndGg+MCYmbC5sZW5ndGg+MCYmbi5sZW5ndGg+MCYmKGIuRWc9aC5qb2luKCIuIiksYi5XaD1sLmpvaW4oIi4iKSxiLlVoPW4uam9pbigiLiIpKX1yZXR1cm4gYn0KZnVuY3Rpb24gU3MoYSxiKXt2YXIgYz1hLnNwbGl0KCIuIiksZD1iP2Iuc3BsaXQoIi4iKTpbXSxlPWQubGVuZ3RoPT09Yy5sZW5ndGg/ZDp2b2lkIDA7cmV0dXJuIGMubWFwKGZ1bmN0aW9uKGYsZyl7dmFyIGg9e2djbGlkOmZ9O2lmKGUpe3ZhciBsPWVbZ10uc3BsaXQoIl8iKTtpZihsLmxlbmd0aD09PTIpe2gucWE9bmV3IGVyKE51bWJlcihsWzBdKSk7dmFyIG47dmFyIHA9TnVtYmVyKGxbMV0pO2lmKHA9PT0wKW49WzBdO2Vsc2V7dmFyIHE9W107cCYxJiZxLnB1c2goMSk7cCYyJiZxLnB1c2goMik7cCY0JiZxLnB1c2goMyk7cCY4JiZxLnB1c2goNCk7cCYxNiYmcS5wdXNoKDUpO249cX1oLm9hPW59fXJldHVybiBofSl9CmZ1bmN0aW9uIFRzKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO2lmKExzLnRlc3QoQi5sb2NhdGlvbi5ob3N0KSl7dmFyIGU9UXMoYyk7aWYoZSl7aWYoWWYoMTcpKXt2YXIgZj1RcyhjKyJfc3JjIik7cmV0dXJuIFNzKGUsZil9aWYoZCl7dmFyIGc9bmV3IGVyO2ZyKGcsMik7ZnIoZywzKTtyZXR1cm4gZS5zcGxpdCgiLiIpLm1hcChmdW5jdGlvbihyKXtyZXR1cm57Z2NsaWQ6cixxYTpnLG9hOlsxXX19KX1yZXR1cm4gZS5zcGxpdCgiLiIpLm1hcChmdW5jdGlvbihyKXtyZXR1cm57Z2NsaWQ6cixxYTpuZXcgZXIsb2E6WzFdfX0pfX1lbHNle2lmKGI9PT0iZ2NsaWQiKXtmb3IodmFyIGg9RXIoKGF8fCJfZ2NsIikrIl9hdyIsZCksbD1OdW1iZXIoWGZbNF09PT12b2lkIDA/MDpYZls0XSksbj1tKFVzKCkpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1wLnZhbHVlO3EudGltZXN0YW1wPmwmJlFyKGgscSl9cmV0dXJuIGh9aWYoYj09PSJ3YnJhaWQiKXJldHVybiBFcigoYXx8CiJfZ2NsIikrIl9nYiIsZCk7aWYoYj09PSJicmFpZHMiKXJldHVybiBHcih7cHJlZml4OmF9LGQpfXJldHVybltdfWZ1bmN0aW9uIFVzKCl7cmV0dXJuKHdxKHZyLmF3LDQpfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhLm09PT0iMSJ9KS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJue2djbGlkOmEuayx0aW1lc3RhbXA6TnVtYmVyKGEuaSksdmVyc2lvbjoiIixvYTpbNV19fSl9ZnVuY3Rpb24gVnMoYSl7Zm9yKHZhciBiPTAsYz1tKGEpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2U+MCYmKGJ8PTE8PGUtMSl9cmV0dXJuIGIudG9TdHJpbmcoKX1mdW5jdGlvbiBXcyhhKXtyZXR1cm4gTHMudGVzdChCLmxvY2F0aW9uLmhvc3QpPyEoUXMoImdjbGF3Iil8fFFzKCJnYWMiKSk6SXMoYSl9CmZ1bmN0aW9uIFhzKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO3ZhciBlO2U9Yz9GcyhhLGIsZCk6RXMoKGImJmIucHJlZml4fHwiX2djbCIpKyJfZ2IiLGEsYix2b2lkIDAsZCk7cmV0dXJuIGUubGVuZ3RoPT09MHx8ZS5ldmVyeShmdW5jdGlvbihmKXtyZXR1cm4gZj09PTB9KT8iIjplLmpvaW4oIi4iKX07CnZhciBZcz1mdW5jdGlvbihhKXt2YXIgYjtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz1raigiYWRzX3BhZ2V2aWV3IixmdW5jdGlvbigpe3JldHVybnt9fSk7aWYoY1thXSlyZXR1cm4hMTtifHwoY1thXT0hMCk7cmV0dXJuITB9LFpzPWZ1bmN0aW9uKGEpe3JldHVybiBTaihhLCJnY2xpZCBkY2xpZCBnYnJhaWQgd2JyYWlkIGdjbGF3IGdjbGRjIGdjbGhhIGdjbGdmIGdjbGdiIF9nbCIuc3BsaXQoIiAiKSwiMCIpfSxhdD1mdW5jdGlvbigpe3ZhciBhPVJqKEEubG9jYXRpb24uaHJlZiksYj12b2lkIDAsYz12b2lkIDAsZD1MaihhLCJxdWVyeSIsITEsdm9pZCAwLCJnYWRfc291cmNlIiksZT1MaihhLCJxdWVyeSIsITEsdm9pZCAwLCJnYWRfY2FtcGFpZ25pZCIpLGYsZz1hLmhhc2gucmVwbGFjZSgiIyIsIiIpLm1hdGNoKCRzKTtmPWc/Z1sxXTp2b2lkIDA7ZCYmZj8oYj1kLGM9MSk6ZD8oYj1kLGM9Mik6ZiYmKGI9ZixjPTMpO3JldHVybntEZzpiLFNyOmMsVGg6ZX19LGJ0PWZ1bmN0aW9uKGEpe3ZhciBiPQpPcCghMSk9PT0xP0EudG9wLmxvY2F0aW9uLmhyZWY6QS5sb2NhdGlvbi5ocmVmO3JldHVybiBhKGIpfSxjdD1mdW5jdGlvbihhKXt2YXIgYj1bXTtHYihhLGZ1bmN0aW9uKGMsZCl7ZD1ScihkKTtmb3IodmFyIGU9W10sZj0wO2Y8ZC5sZW5ndGg7ZisrKWUucHVzaChkW2ZdLmdjbGlkKTtlLmxlbmd0aCYmYi5wdXNoKGMrIjoiK2Uuam9pbigiLCIpKX0pO3JldHVybiBiLmpvaW4oIjsiKX0sZXQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWR0KGEpO2lmKGQpcmV0dXJuIGQ7dmFyIGU9SHIoYik7aWYoZT09PSJfZ2NsIil7dmFyIGY9IVhvKGZwKSYmYyxnPVtdO2E9PT0iYXciP2c9YXMoQS5sb2NhdGlvbi5ocmVmLCEwLCExKTphPT09ImRjIiYmKGc9ZHMoQS5sb2NhdGlvbi5ocmVmLCEwLCExKSk7aWYoZy5sZW5ndGg+MClyZXR1cm4gZj9be3ZlcnNpb246IkdDTCIsdGltZXN0YW1wOjAsZ2NsaWQ6IjAifV06Zy5tYXAoZnVuY3Rpb24obCl7cmV0dXJue3ZlcnNpb246IkdDTCIsdGltZXN0YW1wOjAsCmdjbGlkOmwudmFsdWUscWE6bC5xYSxvYTpbMV19fSl9dmFyIGg9SXIoYSxlKTtyZXR1cm4gaD9hPT09ImF3Ij9FcihoLE0oNTYyKSk6WnIoaCk6W119LGR0PWZ1bmN0aW9uKGEpe3ZhciBiPVRqKCJnY2wiK2EpLGM9YT09PSJkYyJ8fGE9PT0iYXciP1RqKCJnY2wiK2ErIl9zcmMiKTp2b2lkIDA7aWYoYilyZXR1cm4gU3MoYixjKX0sZnQ9ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PT0iYXcifHxhPT09ImRjInx8YT09PSJnYiIpe3ZhciBkPVRqKCJnY2wiK2EpO2lmKGQpcmV0dXJuIGQuc3BsaXQoIi4iKX12YXIgZT1IcihiKTtpZihlPT09Il9nY2wiKXt2YXIgZj0hWG8oZnApJiZjLGc7Zz1lcygpW2FdfHxbXTtpZihnLmxlbmd0aD4wKXJldHVybiBmP1siMCJdOmd9dmFyIGg9SXIoYSxlKTtyZXR1cm4gaD9EcihoKTpbXX0sZ3Q9ZnVuY3Rpb24oYSxiLGMpe2lmKCFSKGEsYil8fCFSKGEsYykpcmV0dXJuIiI7dmFyIGQ9UihhLGIpLnNwbGl0KCIuIiksZT1SKGEsYykuc3BsaXQoIi4iKTtyZXR1cm4gZC5sZW5ndGgmJgplLmxlbmd0aCYmZC5sZW5ndGg9PT1lLmxlbmd0aCYmZFswXSYmZVswXT9kLm1hcChmdW5jdGlvbihmLGcpe3JldHVybiBmKyJfIitlW2ddfSkuam9pbigiLiIpOiIifSwkcz0vXmdhZF9zb3VyY2VbXz1dKFxkKykkLztmdW5jdGlvbiBodChhLGIsYyl7dmFyIGQ9UihhLEYuRC5UYSk7aWYoZCYmdHlwZW9mIGQ9PT0ib2JqZWN0Iilmb3IodmFyIGU9bShPYmplY3Qua2V5cyhkKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1kW2ddO2lmKGghPT12b2lkIDApe2g9PT1udWxsJiYoaD0iIik7dmFyIGw9ImdhcC4iK2csbj1TdHJpbmcoaCk7Yz9jKGwsbik6YltsXT1ufX19O3ZhciBpdD0hMSxqdD1bXTtmdW5jdGlvbiBrdCgpe2lmKCFpdCl7aXQ9ITA7Zm9yKHZhciBhPWp0Lmxlbmd0aC0xO2E+PTA7YS0tKWp0W2FdKCk7anQ9W119fTtmdW5jdGlvbiBsdChhKXt2YXIgYj1bXSxjPTAsZDtmb3IoZCBpbiBhKWJbYysrXT1hW2RdO3JldHVybiBifTtmdW5jdGlvbiBtdChhLGIsYyl7cmV0dXJuIHR5cGVvZiBhLmFkZEV2ZW50TGlzdGVuZXI9PT0iZnVuY3Rpb24iPyhhLmFkZEV2ZW50TGlzdGVuZXIoYixjLCExKSwhMCk6ITF9ZnVuY3Rpb24gbnQoYSxiLGMpe3R5cGVvZiBhLnJlbW92ZUV2ZW50TGlzdGVuZXI9PT0iZnVuY3Rpb24iJiZhLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjLCExKX07ZnVuY3Rpb24gb3QoYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7YS5nb29nbGVfaW1hZ2VfcmVxdWVzdHN8fChhLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cz1bXSk7dmFyIGU9UHAoYS5kb2N1bWVudCk7aWYoYyl7dmFyIGY9ZnVuY3Rpb24oKXtpZihjKXt2YXIgZz1hLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cyxoPURjKGcsZSk7aD49MCYmQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGcsaCwxKX1udChlLCJsb2FkIixmKTtudChlLCJlcnJvciIsZil9O210KGUsImxvYWQiLGYpO210KGUsImVycm9yIixmKX1kJiYoZS5hdHRyaWJ1dGlvblNyYz0iIik7ZS5zcmM9YjthLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cy5wdXNoKGUpfQpmdW5jdGlvbiBwdChhKXt2YXIgYjtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz0iaHR0cHM6Ly9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvZ2VuXzIwND9pZD10Y2ZlIjtJcChhLGZ1bmN0aW9uKGQsZSl7aWYoZHx8ZD09PTApYys9IiYiK2UrIj0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZCkpfSk7cXQoYyxiKX0KZnVuY3Rpb24gcXQoYSxiKXt2YXIgYz13aW5kb3csZDtiPWI9PT12b2lkIDA/ITE6YjtkPWQ9PT12b2lkIDA/ITE6ZDtpZihjLmZldGNoKXt2YXIgZT17a2VlcGFsaXZlOiEwLGNyZWRlbnRpYWxzOiJpbmNsdWRlIixyZWRpcmVjdDoiZm9sbG93IixtZXRob2Q6ImdldCIsbW9kZToibm8tY29ycyJ9O2QmJihlLm1vZGU9ImNvcnMiLCJzZXRBdHRyaWJ1dGlvblJlcG9ydGluZyJpbiBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGU/ZS5hdHRyaWJ1dGlvblJlcG9ydGluZz17ZXZlbnRTb3VyY2VFbGlnaWJsZToidHJ1ZSIsdHJpZ2dlckVsaWdpYmxlOiJmYWxzZSJ9OmUuaGVhZGVycz17IkF0dHJpYnV0aW9uLVJlcG9ydGluZy1FbGlnaWJsZSI6ImV2ZW50LXNvdXJjZSJ9KTtjLmZldGNoKGEsZSl9ZWxzZSBvdChjLGEsYj09PXZvaWQgMD8hMTpiLGQ9PT12b2lkIDA/ITE6ZCl9O2Z1bmN0aW9uIHJ0KCl7dGhpcy5mYT10aGlzLmZhO3RoaXMuUj10aGlzLlJ9cnQucHJvdG90eXBlLmZhPSExO3J0LnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5mYXx8KHRoaXMuZmE9ITAsdGhpcy5OKCkpfTtydC5wcm90b3R5cGVbU3ltYm9sLmRpc3Bvc2VdPWZ1bmN0aW9uKCl7dGhpcy5kaXNwb3NlKCl9O3J0LnByb3RvdHlwZS5hZGRPbkRpc3Bvc2VDYWxsYmFjaz1mdW5jdGlvbihhLGIpe3RoaXMuZmE/YiE9PXZvaWQgMD9hLmNhbGwoYik6YSgpOih0aGlzLlJ8fCh0aGlzLlI9W10pLGImJihhPWEuYmluZChiKSksdGhpcy5SLnB1c2goYSkpfTtydC5wcm90b3R5cGUuTj1mdW5jdGlvbigpe2lmKHRoaXMuUilmb3IoO3RoaXMuUi5sZW5ndGg7KXRoaXMuUi5zaGlmdCgpKCl9O2Z1bmN0aW9uIHN0KGEpe2EuYWRkdGxDb25zZW50PT09dm9pZCAwfHx2ZihhLmFkZHRsQ29uc2VudCl8fChhLmFkZHRsQ29uc2VudD12b2lkIDApO2EuZ2RwckFwcGxpZXM9PT12b2lkIDB8fHdmKGEuZ2RwckFwcGxpZXMpfHwoYS5nZHByQXBwbGllcz12b2lkIDApO3JldHVybiBhLnRjU3RyaW5nIT09dm9pZCAwJiYhdmYoYS50Y1N0cmluZyl8fGEubGlzdGVuZXJJZCE9PXZvaWQgMCYmIXVmKGEubGlzdGVuZXJJZCk/MjphLmNtcFN0YXR1cyYmYS5jbXBTdGF0dXMhPT0iZXJyb3IiPzA6M312YXIgdHQ9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/e306YjtydC5jYWxsKHRoaXMpO3RoaXMuSD1udWxsO3RoaXMuamE9e307dGhpcy55YT0wO3RoaXMuWj1udWxsO3RoaXMuSz1hO3ZhciBjO3RoaXMudGltZW91dE1zPShjPWIudGltZW91dE1zKSE9bnVsbD9jOjUwMDt2YXIgZDt0aGlzLkVqPShkPWIuRWopIT1udWxsP2Q6ITF9O3dhKHR0LHJ0KTsKdHQucHJvdG90eXBlLk49ZnVuY3Rpb24oKXt0aGlzLmphPXt9O3RoaXMuWiYmKG50KHRoaXMuSywibWVzc2FnZSIsdGhpcy5aKSxkZWxldGUgdGhpcy5aKTtkZWxldGUgdGhpcy5qYTtkZWxldGUgdGhpcy5LO2RlbGV0ZSB0aGlzLkg7cnQucHJvdG90eXBlLk4uY2FsbCh0aGlzKX07dmFyIHZ0PWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYS5LLl9fdGNmYXBpPT09ImZ1bmN0aW9uInx8dXQoYSkhPW51bGx9Owp0dC5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9e2ludGVybmFsQmxvY2tPbkVycm9yczp0aGlzLkVqfSxkPUhwKGZ1bmN0aW9uKCl7YShjKX0pLGU9MDt0aGlzLnRpbWVvdXRNcyE9PS0xJiYoZT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSI7Yy5pbnRlcm5hbEVycm9yU3RhdGU9MTtkKCl9LHRoaXMudGltZW91dE1zKSk7dmFyIGY9ZnVuY3Rpb24oZyxoKXtjbGVhclRpbWVvdXQoZSk7Zz8oYz1nLGMuaW50ZXJuYWxFcnJvclN0YXRlPXN0KGMpLGMuaW50ZXJuYWxCbG9ja09uRXJyb3JzPWIuRWosaCYmYy5pbnRlcm5hbEVycm9yU3RhdGU9PT0wfHwoYy50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSIsaHx8KGMuaW50ZXJuYWxFcnJvclN0YXRlPTMpKSk6KGMudGNTdHJpbmc9InRjdW5hdmFpbGFibGUiLGMuaW50ZXJuYWxFcnJvclN0YXRlPTMpO2EoYyl9O3RyeXt3dCh0aGlzLCJhZGRFdmVudExpc3RlbmVyIiwKZil9Y2F0Y2goZyl7Yy50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSIsYy5pbnRlcm5hbEVycm9yU3RhdGU9MyxlJiYoY2xlYXJUaW1lb3V0KGUpLGU9MCksZCgpfX07dHQucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSl7YSYmYS5saXN0ZW5lcklkJiZ3dCh0aGlzLCJyZW1vdmVFdmVudExpc3RlbmVyIixudWxsLGEubGlzdGVuZXJJZCl9Owp2YXIgenQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2Q9ZD09PXZvaWQgMD8iNzU1IjpkO3ZhciBlO2E6e2lmKGEucHVibGlzaGVyJiZhLnB1Ymxpc2hlci5yZXN0cmljdGlvbnMpe3ZhciBmPWEucHVibGlzaGVyLnJlc3RyaWN0aW9uc1tiXTtpZihmIT09dm9pZCAwKXtlPWZbZD09PXZvaWQgMD8iNzU1IjpkXTticmVhayBhfX1lPXZvaWQgMH12YXIgZz1lO2lmKGc9PT0wKXJldHVybiExO3ZhciBoPWM7Yz09PTI/KGg9MCxnPT09MiYmKGg9MSkpOmM9PT0zJiYoaD0xLGc9PT0xJiYoaD0wKSk7dmFyIGw7aWYoaD09PTApaWYoYS5wdXJwb3NlJiZhLnZlbmRvcil7dmFyIG49eHQoYS52ZW5kb3IuY29uc2VudHMsZD09PXZvaWQgMD8iNzU1IjpkKTtsPW4mJmI9PT0iMSImJmEucHVycG9zZU9uZVRyZWF0bWVudCYmYS5wdWJsaXNoZXJDQz09PSJDSCI/ITA6biYmeHQoYS5wdXJwb3NlLmNvbnNlbnRzLGIpfWVsc2UgbD0hMDtlbHNlIGw9aD09PTE/YS5wdXJwb3NlJiZhLnZlbmRvcj94dChhLnB1cnBvc2UubGVnaXRpbWF0ZUludGVyZXN0cywKYikmJnh0KGEudmVuZG9yLmxlZ2l0aW1hdGVJbnRlcmVzdHMsZD09PXZvaWQgMD8iNzU1IjpkKTohMDohMDtyZXR1cm4gbH0seHQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4hKCFhfHwhYVtiXSl9LHd0PWZ1bmN0aW9uKGEsYixjLGQpe2N8fChjPWZ1bmN0aW9uKCl7fSk7dmFyIGU9YS5LO2lmKHR5cGVvZiBlLl9fdGNmYXBpPT09ImZ1bmN0aW9uIil7dmFyIGY9ZS5fX3RjZmFwaTtmKGIsMixjLGQpfWVsc2UgaWYodXQoYSkpe0F0KGEpO3ZhciBnPSsrYS55YTthLmphW2ddPWM7aWYoYS5IKXt2YXIgaD17fTthLkgucG9zdE1lc3NhZ2UoKGguX190Y2ZhcGlDYWxsPXtjb21tYW5kOmIsdmVyc2lvbjoyLGNhbGxJZDpnLHBhcmFtZXRlcjpkfSxoKSwiKiIpfX1lbHNlIGMoe30sITEpfSx1dD1mdW5jdGlvbihhKXtpZihhLkgpcmV0dXJuIGEuSDthLkg9TnAoYS5LLCJfX3RjZmFwaUxvY2F0b3IiKTtyZXR1cm4gYS5IfSxBdD1mdW5jdGlvbihhKXtpZighYS5aKXt2YXIgYj1mdW5jdGlvbihjKXtpZihjLnNvdXJjZT09PQphLkgpdHJ5e3ZhciBkO2Q9KHZmKGMuZGF0YSk/SlNPTi5wYXJzZShjLmRhdGEpOmMuZGF0YSkuX190Y2ZhcGlSZXR1cm47YS5qYVtkLmNhbGxJZF0oZC5yZXR1cm5WYWx1ZSxkLnN1Y2Nlc3MpfWNhdGNoKGUpe319O2EuWj1iO210KGEuSywibWVzc2FnZSIsYil9fSxCdD1mdW5jdGlvbihhKXtpZihhLmdkcHJBcHBsaWVzPT09ITEpcmV0dXJuITA7YS5pbnRlcm5hbEVycm9yU3RhdGU9PT12b2lkIDAmJihhLmludGVybmFsRXJyb3JTdGF0ZT1zdChhKSk7cmV0dXJuIGEuY21wU3RhdHVzPT09ImVycm9yInx8YS5pbnRlcm5hbEVycm9yU3RhdGUhPT0wP2EuaW50ZXJuYWxCbG9ja09uRXJyb3JzPyhwdCh7ZTpTdHJpbmcoYS5pbnRlcm5hbEVycm9yU3RhdGUpfSksITEpOiEwOmEuY21wU3RhdHVzIT09ImxvYWRlZCJ8fGEuZXZlbnRTdGF0dXMhPT0idGNsb2FkZWQiJiZhLmV2ZW50U3RhdHVzIT09InVzZXJhY3Rpb25jb21wbGV0ZSI/ITE6ITB9O3ZhciBDdD17MTowLDM6MCw0OjAsNzozLDk6MywxMDozfTtmdW5jdGlvbiBEdCgpe3JldHVybiBraigidGNmIixmdW5jdGlvbigpe3JldHVybnt9fSl9dmFyIEV0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0dChBLHt0aW1lb3V0TXM6LTF9KX07CmZ1bmN0aW9uIEZ0KCl7dmFyIGE9RHQoKSxiPUV0KCk7dnQoYikmJiFHdCgpJiYhSHQoKSYmUCgxMjQpO2lmKCFhLmFjdGl2ZSYmdnQoYikpe0d0KCkmJihhLmFjdGl2ZT0hMCxhLnB1cnBvc2VzPXt9LGEuY21wSWQ9MCxhLnRjZlBvbGljeVZlcnNpb249MCx0bCgpLmFjdGl2ZT0hMCxhLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIik7Y3AoKTt0cnl7Yi5hZGRFdmVudExpc3RlbmVyKGZ1bmN0aW9uKGMpe2lmKGMuaW50ZXJuYWxFcnJvclN0YXRlIT09MClJdChhKSxkcChbRi5ELmthLEYuRC5YYSxGLkQubWFdKSx0bCgpLmFjdGl2ZT0hMDtlbHNlIGlmKGEuZ2RwckFwcGxpZXM9Yy5nZHByQXBwbGllcyxhLmNtcElkPWMuY21wSWQsYS5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGU9Yy5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGUsSHQoKSYmKGEuYWN0aXZlPSEwKSwhSnQoYyl8fEd0KCl8fEh0KCkpe2EudGNmUG9saWN5VmVyc2lvbj1jLnRjZlBvbGljeVZlcnNpb247dmFyIGQ7aWYoYy5nZHByQXBwbGllcz09PQohMSl7dmFyIGU9e30sZjtmb3IoZiBpbiBDdClDdC5oYXNPd25Qcm9wZXJ0eShmKSYmKGVbZl09ITApO2Q9ZTtiLnJlbW92ZUV2ZW50TGlzdGVuZXIoYyl9ZWxzZSBpZihKdChjKSl7dmFyIGc9e30saDtmb3IoaCBpbiBDdClpZihDdC5oYXNPd25Qcm9wZXJ0eShoKSlpZihoPT09IjEiKXt2YXIgbCxuPWMscD17VXI6ITB9O3A9cD09PXZvaWQgMD97fTpwO2w9QnQobik/bi5nZHByQXBwbGllcz09PSExPyEwOm4udGNTdHJpbmc9PT0idGN1bmF2YWlsYWJsZSI/IXAuaWRwY0FwcGxpZXM6KHAuaWRwY0FwcGxpZXN8fG4uZ2RwckFwcGxpZXMhPT12b2lkIDB8fHAuVXIpJiYocC5pZHBjQXBwbGllc3x8dmYobi50Y1N0cmluZykmJm4udGNTdHJpbmcubGVuZ3RoKT96dChuLCIxIiwwKTohMDohMTtnWyIxIl09bH1lbHNlIGdbaF09enQoYyxoLEN0W2hdKTtkPWd9aWYoZCl7YS50Y1N0cmluZz1jLnRjU3RyaW5nfHwidGNlbXB0eSI7YS5wdXJwb3Nlcz1kO3ZhciBxPXt9LHI9KHFbRi5ELmthXT0KYS5wdXJwb3Nlc1siMSJdPyJncmFudGVkIjoiZGVuaWVkIixxKTthLmdkcHJBcHBsaWVzIT09ITA/KGRwKFtGLkQua2EsRi5ELlhhLEYuRC5tYV0pLHRsKCkuYWN0aXZlPSEwKToocltGLkQuWGFdPWEucHVycG9zZXNbIjMiXSYmYS5wdXJwb3Nlc1siNCJdPyJncmFudGVkIjoiZGVuaWVkIix0eXBlb2YgYS50Y2ZQb2xpY3lWZXJzaW9uPT09Im51bWJlciImJmEudGNmUG9saWN5VmVyc2lvbj49ND9yW0YuRC5tYV09YS5wdXJwb3Nlc1siMSJdJiZhLnB1cnBvc2VzWyI3Il0/ImdyYW50ZWQiOiJkZW5pZWQiOmRwKFtGLkQubWFdKSxWbyhyLHtldmVudElkOjB9LHtnZHByQXBwbGllczphP2EuZ2RwckFwcGxpZXM6dm9pZCAwLHRjU3RyaW5nOkt0KCl8fCIifSkpfX1lbHNlIGRwKFtGLkQua2EsRi5ELlhhLEYuRC5tYV0pfSl9Y2F0Y2goYyl7SXQoYSksZHAoW0YuRC5rYSxGLkQuWGEsRi5ELm1hXSksdGwoKS5hY3RpdmU9ITB9fX0KZnVuY3Rpb24gSXQoYSl7YS50eXBlPSJlIjthLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIn1mdW5jdGlvbiBKdChhKXtyZXR1cm4gYS5ldmVudFN0YXR1cz09PSJ0Y2xvYWRlZCJ8fGEuZXZlbnRTdGF0dXM9PT0idXNlcmFjdGlvbmNvbXBsZXRlInx8YS5ldmVudFN0YXR1cz09PSJjbXB1aXNob3duIn1mdW5jdGlvbiBHdCgpe3JldHVybiBBLmd0YWdfZW5hYmxlX3RjZl9zdXBwb3J0PT09ITB9ZnVuY3Rpb24gSHQoKXtyZXR1cm4gRHQoKS5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGU9PT0hMH1mdW5jdGlvbiBLdCgpe3ZhciBhPUR0KCk7aWYoYS5hY3RpdmUpcmV0dXJuIGEudGNTdHJpbmd9ZnVuY3Rpb24gTHQoKXt2YXIgYT1EdCgpO2lmKGEuYWN0aXZlJiZhLmdkcHJBcHBsaWVzIT09dm9pZCAwKXJldHVybiBhLmdkcHJBcHBsaWVzPyIxIjoiMCJ9CmZ1bmN0aW9uIE10KGEpe2lmKCFDdC5oYXNPd25Qcm9wZXJ0eShTdHJpbmcoYSkpKXJldHVybiEwO3ZhciBiPUR0KCk7cmV0dXJuIGIuYWN0aXZlJiZiLnB1cnBvc2VzPyEhYi5wdXJwb3Nlc1tTdHJpbmcoYSldOiEwfTt2YXIgTnQ9W0YuRC5rYSxGLkQucmEsRi5ELm1hLEYuRC5YYV0sT3Q9e30sUHQ9KE90W0YuRC5rYV09MSxPdFtGLkQucmFdPTIsT3QpO2Z1bmN0aW9uIFF0KGEpe2lmKGE9PT12b2lkIDApcmV0dXJuIDA7c3dpdGNoKE8oYSxGLkQuUmMpKXtjYXNlIHZvaWQgMDpyZXR1cm4gMTtjYXNlICExOnJldHVybiAzO2RlZmF1bHQ6cmV0dXJuIDJ9fWZ1bmN0aW9uIFJ0KCl7cmV0dXJuKE0oMTgzKT9MZigxNikuc3BsaXQoIn4iKTpMZigxNykuc3BsaXQoIn4iKSkuaW5kZXhPZih6bSgpKSE9PS0xJiZIYy5nbG9iYWxQcml2YWN5Q29udHJvbD09PSEwfWZ1bmN0aW9uIFN0KGEpe2lmKFJ0KCkpcmV0dXJuITE7dmFyIGI9UXQoYSk7aWYoYj09PTMpcmV0dXJuITE7c3dpdGNoKENsKEYuRC5YYSkpe2Nhc2UgMTpjYXNlIDM6cmV0dXJuITA7Y2FzZSAyOnJldHVybiExO2Nhc2UgNDpyZXR1cm4gYj09PTI7Y2FzZSAwOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fQpmdW5jdGlvbiBUdCgpe3JldHVybiBFbCgpfHwhQmwoRi5ELmthKXx8IUJsKEYuRC5yYSl9ZnVuY3Rpb24gVXQoKXt2YXIgYT17fSxiO2ZvcihiIGluIFB0KVB0Lmhhc093blByb3BlcnR5KGIpJiYoYVtQdFtiXV09Q2woYikpO3JldHVybiJHMSIreWYoYVsxXXx8MCkreWYoYVsyXXx8MCl9dmFyIFZ0PXt9LFd0PShWdFtGLkQua2FdPTAsVnRbRi5ELnJhXT0xLFZ0W0YuRC5tYV09MixWdFtGLkQuWGFdPTMsVnQpO2Z1bmN0aW9uIFh0KGEpe3N3aXRjaChhKXtjYXNlIHZvaWQgMDpyZXR1cm4gMTtjYXNlICEwOnJldHVybiAzO2Nhc2UgITE6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMH19CmZ1bmN0aW9uIFl0KGEpe2Zvcih2YXIgYj0iMSIsYz0wO2M8TnQubGVuZ3RoO2MrKyl7dmFyIGQ9YixlLGY9TnRbY10sZz1BbC5kZWxlZ2F0ZWRDb25zZW50VHlwZXNbZl07ZT1nPT09dm9pZCAwPzA6V3QuaGFzT3duUHJvcGVydHkoZyk/MTJ8V3RbZ106ODt2YXIgaD10bCgpO2guYWNjZXNzZWRBbnk9ITA7dmFyIGw9aC5lbnRyaWVzW2ZdfHx7fTtlPWU8PDJ8WHQobC5pbXBsaWNpdCk7Yj1kKygiIisiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbZV0rIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW1h0KGwuZGVjbGFyZSk8PDR8WHQobC5kZWZhdWx0KTw8MnxYdChsLnVwZGF0ZSldKX12YXIgbj1iLHA9KFJ0KCk/MTowKTw8MyxxPShFbCgpPzE6MCk8PDIscj1RdChhKTtiPW4rIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW3B8CnF8cl07cmV0dXJuIGIrPSIiKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltBbC5jb250YWluZXJTY29wZWREZWZhdWx0cy5hZF9zdG9yYWdlPDw0fEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzLmFuYWx5dGljc19zdG9yYWdlPDwyfEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzLmFkX3VzZXJfZGF0YV0rIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iWyhBbC51c2VkQ29udGFpbmVyU2NvcGVkRGVmYXVsdHM/MTowKTw8MnxBbC5jb250YWluZXJTY29wZWREZWZhdWx0cy5hZF9wZXJzb25hbGl6YXRpb25dfWZ1bmN0aW9uIFp0KCl7cmV0dXJuIEJsKEYuRC5tYSk/ImEiOiItIn1mdW5jdGlvbiAkdCgpe3JldHVybiBCbSgpfHwoR3QoKXx8SHQoKSkmJkx0KCk9PT0iMSI/IjEiOiIwIn0KZnVuY3Rpb24gYXUoKXtyZXR1cm4oQm0oKT8hMDohKCFHdCgpJiYhSHQoKSkmJkx0KCk9PT0iMSIpfHwhQmwoRi5ELm1hKX0KZnVuY3Rpb24gYnUoKXt2YXIgYT0iMCIsYj0iMCIsYzt2YXIgZD1EdCgpO2M9ZC5hY3RpdmU/ZC5jbXBJZDp2b2lkIDA7dHlwZW9mIGM9PT0ibnVtYmVyIiYmYz49MCYmYzw9NDA5NSYmKGE9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2M+PjYmNjNdLGI9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2MmNjNdKTt2YXIgZT0iMCIsZjt2YXIgZz1EdCgpO2Y9Zy5hY3RpdmU/Zy50Y2ZQb2xpY3lWZXJzaW9uOnZvaWQgMDt0eXBlb2YgZj09PSJudW1iZXIiJiZmPj0wJiZmPD02MyYmKGU9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2ZdKTt2YXIgaD0wO0JtKCkmJihofD0xKTtMdCgpPT09IjEiJiYoaHw9Mik7R3QoKSYmKGh8PTQpO3ZhciBsO3ZhciBuPUR0KCk7bD1uLmVuYWJsZUFkdmVydGlzZXJDb25zZW50TW9kZSE9PQp2b2lkIDA/bi5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGU/IjEiOiIwIjp2b2lkIDA7bD09PSIxIiYmKGh8PTgpO3RsKCkud2FpdFBlcmlvZFRpbWVkT3V0JiYoaHw9MTYpO3JldHVybiIxIithK2IrZSsiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbaF19O3ZhciBjdT17VUE6MSxBVzoyLERDOjMsRzo0LEdGOjUsR1Q6MTIsR1RNOjE0LEhBOjYsTUM6N307CmZ1bmN0aW9uIGR1KGEpe2E9YT09PXZvaWQgMD97fTphO3ZhciBiPUUoNSkuc3BsaXQoIi0iKVswXS50b1VwcGVyQ2FzZSgpLGMsZD17Y3RpZDpFKDUpLERvOkpmKDE1KSxJbzpFKDE0KSxMczpJZig3KT8yOjEsRHQ6YS5wZixjYW5vbmljYWxJZDpFKDYpLG50OihjPUFrKCkpPT1udWxsP3ZvaWQgMDpjLmNhbm9uaWNhbENvbnRhaW5lcklkLEV0OmEuVGc9PT12b2lkIDA/dm9pZCAwOmEuVGc/MTA6MTJ9O2QuY2Fub25pY2FsSWQhPT1hLm1jJiYoZC5tYz1hLm1jKTt2YXIgZT14aygpO2QuVXM9ZT9lLmNhbm9uaWNhbENvbnRhaW5lcklkOnZvaWQgMDtJZig0NSk/KGQuaGk9Y3VbYl0sZC5oaXx8KGQuaGk9MCkpOmQuaGk9RGo/MTM6MTA7SWYoNDcpPyhkLmJrPTAsZC5xcj0yKTpJZig1MCk/ZC5iaz0xOmQuYms9Mzt2YXIgZj1hLGc9ezY6ITF9O0pmKDU0KT09PTI/Z1s3XT0hMDpKZig1NCk9PT0xJiYoZ1syXT0hMCk7aWYoS2Mpe3ZhciBoPUxqKFJqKEtjKSwiaG9zdCIpO2gmJihnWzhdPQpoLm1hdGNoKC9eKHd3d1wuKT9nb29nbGV0YWdtYW5hZ2VyXC5jb20kLyk9PT1udWxsKX12YXIgbDtnWzldPShsPWYuZWYpIT1udWxsP2w6ITE7dmFyIG49RmsoKSxwO2dbMTBdPShwPW49PW51bGw/dm9pZCAwOm4uZnJvbUNvbnRhaW5lckV4ZWN1dGlvbikhPW51bGw/cDohMTtkLnpyPWc7cmV0dXJuIENmKGQsYS5Qbil9Owp2YXIgZnU9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9bShldShhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWUsZj1SKGEsZSksZz1RKGEsSC5KLlllKTtNKDU4OSkmJmcmJihlPT09Ri5ELnphfHxlPT09Ri5ELlVhfHxlPT09Ri5ELlBlKSYmdHlwZW9mIGY9PT0ic3RyaW5nIiYmKGY9WnMoZikpO3ZhciBoPW9wKGUsZik7aCYmKCFnfHxlIT09Ri5ELkRkJiZlIT09Ri5ELktkJiZlIT09Ri5ELkVlJiZlIT09Ri5ELkJmfHwoaC52YWx1ZT0iMCIpLE0oNTA0KSYmKGU9PT1GLkQuTWQ/aC5rZXk9ImV2bmlkIjplPT09Ri5ELk5kJiYoaC5rZXk9ImV4Y2lkIikpLGJbaC5rZXldPWgudmFsdWUpfWIuZ3RtPWR1KHttYzpRKGEsSC5KLk5iKSxUZzphLk0uaXNHdG1FdmVudCxlZjpRKGEsSC5KLkNjKX0pO1R0KCkmJihiLmdjcz1iLmdjc3x8VXQoKSk7Yi5nY2Q9Yi5nY2R8fFl0KGEuTSk7YXUoKSYmKGIuZG1hX2Nwcz1adCgpKTtiLmRtYT0kdCgpO3Z0KEV0KCkpJiYKKGIudGNmZD1idSgpKTt2YXIgbD1DcChhKTtsJiYoYi50YWdfZXhwPWwpO2lmKFEoYSxILkouQmspKXtiLnRmdD1TdHJpbmcoTmIoKSk7dmFyIG49cGQoKTtuIT09dm9pZCAwJiYoYi50ZmQ9U3RyaW5nKE1hdGgucm91bmQobikpKX1iLmFwdmU9IjEiO2IuYXB2Zj1uZCgpPyJmIjoibmYiO2ZvLkhbY28uaWEuY2JdIT09Ym8uTWEuVWV8fGZvLktbY28uaWEuY2JdLmlzQ29uc2VudEdyYW50ZWQoKXx8KGIubGltaXRlZF9hZHM9IjEiKTt2YXIgcD1RKGEsSC5KLlhnKTtNKDQ3NCkmJnAhPW51bGwmJnAhPT0iIiYmKGIuX2dzaWQ9cCk7aHQoYSxiLGZ1bmN0aW9uKHEscil7YltxXT1lbmNvZGVVUklDb21wb25lbnQocil9KTtyZXR1cm4gYn07dmFyIGd1PWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy5lbmRwb2ludD1hO3RoaXMuZmE9Yzt0aGlzLmphPWQ7dGhpcy5wYXJhbWV0ZXJFbmNvZGluZz1lO3RoaXMuWj1iLnNsaWNlKCl9O2d1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKCl7cmV0dXJuIFhvKHRoaXMuWil9O2d1LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiEwfTtndS5wcm90b3R5cGUuUj1mdW5jdGlvbigpe3ZhciBhPU1tW3RoaXMuZW5kcG9pbnRdKHZvaWQgMCk7cmV0dXJuIFNiKGEsImh0dHBzOi8vIik/YS5zdWJzdHJpbmcoOCk6U2IoYSwiaHR0cDovLyIpP2Euc3Vic3RyaW5nKDcpOmF9O3ZhciBodT1mdW5jdGlvbihhLGIpe3RoaXMubWV0aG9kTmFtZT1hO3RoaXMuUj1ifTtodS5wcm90b3R5cGUuc2VuZFJlcXVlc3Q9ZnVuY3Rpb24oYSxiLGMpe2lmKHRoaXMuaXNTdXBwb3J0ZWQoKSlpZigoYz09bnVsbD92b2lkIDA6Yy5ib2R5KT09PXZvaWQgMHx8dGhpcy5IKCkpdHJ5e3RoaXMuSyhhLGIsYyl9Y2F0Y2goZCl7YS5yZChkKX1lbHNlIGEucmQoIlJlcXVlc3QgbWV0aG9kICIrdGhpcy5tZXRob2ROYW1lKyIgZG9lcyBub3Qgc3VwcG9ydCBhIHJlcXVlc3QgYm9keS4iKTtlbHNlIGEucmQoIlJlcXVlc3QgbWV0aG9kICIrdGhpcy5tZXRob2ROYW1lKyIgaXMgbm90IHN1cHBvcnRlZC4iKX07dmFyIGl1PWZ1bmN0aW9uKCl7aHUuY2FsbCh0aGlzLCJJbWFnZVBpeGVsIiwzKX07d2EoaXUsaHUpO2l1LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiEwfTtpdS5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiExfTsKaXUucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMpe1pjKGIsZnVuY3Rpb24oKXthLmpmKCl9LGZ1bmN0aW9uKCl7YS5vbkZhaWx1cmUodm9pZCAwKX0sYz09bnVsbD92b2lkIDA6Yy5hZil9O3ZhciBqdT1mdW5jdGlvbigpe2h1LmNhbGwodGhpcywiU2VuZEJlYWNvbiIsMSl9O3dhKGp1LGh1KTtqdS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4ga2QoKX07anUucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMH07anUucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMpe2pkKGIsYz09bnVsbD92b2lkIDA6Yy5ib2R5KT9hLmpmKCk6YS5yZCh2b2lkIDApfTt2YXIga3U9ZnVuY3Rpb24oKXtodS5jYWxsKHRoaXMsIkZldGNoIiwxKX07d2Eoa3UsaHUpO2t1LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiB5YihBLmZldGNoKX07a3UucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMH07Cmt1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtBLmZldGNoKGIsYz09bnVsbD92b2lkIDA6Yy5HYikudGhlbihmdW5jdGlvbihkKXtpZihkLm9rKWEucGUoZCk7ZWxzZSBpZihkLnN0YXR1cz09PTApYS5qZigpO2Vsc2UgYS5vbkZhaWx1cmUoIkZldGNoIGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrZC5zdGF0dXMrIi4iKX0pLmNhdGNoKGZ1bmN0aW9uKGQpe2EucmQoZCl9KX07dmFyIGx1PW5ldyBpdSxtdT1uZXcganUsbnU9bmV3IGt1O3ZhciBvdT1mdW5jdGlvbigpe307b3UucHJvdG90eXBlLks9ZnVuY3Rpb24oKXtyZXR1cm5bXX07CnZhciBwdT1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD9bImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXTpiO2d1LmNhbGwodGhpcyxhLGIsMSwhMCwyKX07d2EocHUsZ3UpO3B1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEpe2lmKHRoaXMuWi5sZW5ndGgpe3ZhciBiPVEoYSxILkouRGspO2lmKGIhPT12b2lkIDApcmV0dXJuIGJ9cmV0dXJuIGd1LnByb3RvdHlwZS5LLmNhbGwodGhpcyxhKX07cHUucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdShhKTthLnRhcmdldC5kZXN0aW5hdGlvbklkJiYoYy50aWQ9YS50YXJnZXQuZGVzdGluYXRpb25JZCk7Yi5tZXRob2QgaW5zdGFuY2VvZiBrdT9jLmZtdD0iOCI6Yi5tZXRob2QgaW5zdGFuY2VvZiBqdT9jLmZtdD0iNSI6Yi5tZXRob2QgaW5zdGFuY2VvZiBpdSYmKGMuZm10PSIzIik7cmV0dXJuIGN9O3B1LnByb3RvdHlwZS55YT1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuTihhLGIpO3JldHVybiI/IitPYmplY3Qua2V5cyhjKS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQrCiI9IitjW2RdfSkuam9pbigiJiIpfTtwdS5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy55YShhLGIpLGU9e307aWYoYi5tZXRob2QgaW5zdGFuY2VvZiBrdSl7ZS5HYj1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGxkKTtpZih0aGlzLmVuZHBvaW50PT09NTh8fHRoaXMuZW5kcG9pbnQ9PT01NyllLkdiLm1ldGhvZD0iR0VUIjt0aGlzLmVuZHBvaW50IT09NDV8fHF1LksoYSl8fChlLkdiLmNyZWRlbnRpYWxzPSJvbWl0IixkKz0iJmdhcC51Y2ZiPTEiKX1jKGQsZSl9O3ZhciBxdT1uZXcgcHUoNDUpLHJ1PW5ldyBwdSg0NSxbXSksc3U9bmV3IHB1KDQ2LFtdKSx0dT1mdW5jdGlvbigpe3B1LmNhbGwodGhpcyw2OSl9O3dhKHR1LHB1KTt0dS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oYSl7dmFyIGI9TSg0NzQpJiYoISFSKGEsIl9nc2lkIil8fCEhUShhLEguSi5YZykpLGM9UihhLEYuRC5IZCkhPT0iMSImJighIVIoYSwiZ2NsaWQiKXx8CiEhUihhLCJkY2xpZCIpfHwhIVIoYSwiZ2Nsc3JjIil8fCEhUihhLCJhdWlkIikpO3JldHVybiBifHxjfTt0dS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPWZ1KGEpLGQ9bHAoYSxjKXx8e307T2JqZWN0LmtleXMoZCkubGVuZ3RoPjAmJihiLm1ldGhvZCBpbnN0YW5jZW9mIGt1P2QuZm10PSI4IjpiLm1ldGhvZCBpbnN0YW5jZW9mIGp1P2QuZm10PSI1IjpiLm1ldGhvZCBpbnN0YW5jZW9mIGl1JiYoZC5mbXQ9IjMiKSk7cmV0dXJuIGR9O3ZhciB1dT1uZXcgdHUsdnU9ZnVuY3Rpb24oKXtwdS5jYWxsKHRoaXMsNDUpfTt3YSh2dSxwdSk7dnUucHJvdG90eXBlLlI9ZnVuY3Rpb24oKXtyZXR1cm4gWGooKSsiL2cvZC9jY20vY29sbGVjdCJ9O3Z1LnByb3RvdHlwZS5OPWZ1bmN0aW9uKGEsYil7dmFyIGM9cHUucHJvdG90eXBlLk4uY2FsbCh0aGlzLGEsYik7Y1siZ2FwLjFwZmIiXT0iMSI7cmV0dXJuIGN9O3ZhciB3dT1mdW5jdGlvbihhKXtwdS5jYWxsKHRoaXMsYSxbImFkX3N0b3JhZ2UiLAoiYWRfdXNlcl9kYXRhIl0pfTt3YSh3dSxwdSk7d3UucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1wdS5wcm90b3R5cGUuTi5jYWxsKHRoaXMsYSxiKTtyZXR1cm4gaHAoYyl9O3ZhciB4dT1uZXcgd3UoNTgpLHl1PW5ldyB3dSg1NyksenU9ZnVuY3Rpb24oKXt9O3dhKHp1LG91KTt6dS5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXt2YXIgYj1xdS5LKGEpLGM9Yj9xdTpzdSxkPVt7ZW5kcG9pbnQ6YyxtZXRob2Q6bmQoKT9udTptdX0se2VuZHBvaW50OmMsbWV0aG9kOmx1fV07Yj9NKDUxNykmJklmKDQ3KSYmZC5wdXNoKHtlbmRwb2ludDpuZXcgdnUsbWV0aG9kOm51fSk6TSg2MDApJiZkLnB1c2goe2VuZHBvaW50OnJ1LG1ldGhvZDpudX0pO3JldHVybiBkfTt6dS5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXt2YXIgYj1bXSxjPSEhUShhLEguSi52ZCksZD1SKGEsRi5ELlBkKT09PSIxIixlPVIoYSxGLkQuSGQpPT09IjEiLGY9cXUuSyhhKSxnPWMmJmQmJiFlJiZmO2lmKGcpe3ZhciBoPQpRYygpfHxPYygpP3h1Onl1O2IucHVzaChbe2VuZHBvaW50OmgsbWV0aG9kOm51fSx7ZW5kcG9pbnQ6aCxtZXRob2Q6bHV9XSl9ZiYmKGd8fFEoYSxILkouaGQpKSYmYi5wdXNoKFt7ZW5kcG9pbnQ6dXUsbWV0aG9kOm5kKCk/bnU6bHV9XSk7cmV0dXJuIGJ9O3ZhciBBdT1uZXcgenU7dmFyIFQ9e1c6e0prOjEsbmo6MixGazozLG1sOjQsR2s6NSx5ZDo2LGtsOjcsTXE6OCxxbjo5LEhrOjEwLElrOjExLEZoOjEyLERtOjEzLEFtOjE0LENtOjE1LHptOjE2LEJtOjE3LHltOjE4LFRvOjE5LHhxOjIwLHlxOjIxLGZqOjIyLHVuOjI0LE9tOjI1LFNrOjI2LFRrOjI3LFJrOjI4LFVrOjI5LHJqOjMwLE9rOjMxLFpvOjMyfX07VC5XW1QuVy5Ka109IkFMTE9XX0lOVEVSRVNUX0dST1VQUyI7VC5XW1QuVy5ual09IlNFUlZFUl9DT05UQUlORVJfVVJMIjtULldbVC5XLkZrXT0iQURTX0RBVEFfUkVEQUNUSU9OIjtULldbVC5XLm1sXT0iQ1VTVE9NRVJfTElGRVRJTUVfVkFMVUUiO1QuV1tULlcuR2tdPSJBTExPV19DVVNUT01fU0NSSVBUUyI7VC5XW1QuVy55ZF09IkFOWV9DT09LSUVfUEFSQU1TIjtULldbVC5XLmtsXT0iQ09PS0lFX0VYUElSRVMiO1QuV1tULlcuTXFdPSJMRUdBQ1lfRU5IQU5DRURfQ09OVkVSU0lPTl9KU19WQVJJQUJMRSI7VC5XW1QuVy5xbl09IlJFU1RSSUNURURfREFUQV9QUk9DRVNTSU5HIjsKVC5XW1QuVy5Ia109IkFMTE9XX0RJU1BMQVlfRkVBVFVSRVMiO1QuV1tULlcuSWtdPSJBTExPV19HT09HTEVfU0lHTkFMUyI7VC5XW1QuVy5GaF09IkdFTkVSQVRFRF9UUkFOU0FDVElPTl9JRCI7VC5XW1QuVy5EbV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1VOS05PV04iO1QuV1tULlcuQW1dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9TVEFOREFSRCI7VC5XW1QuVy5DbV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1VOSVFVRSI7VC5XW1QuVy56bV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1BFUl9TRVNTSU9OIjtULldbVC5XLkJtXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfVFJBTlNBQ1RJT05TIjtULldbVC5XLnltXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfSVRFTVNfU09MRCI7VC5XW1QuVy5Ub109IkFEU19PR1RfVjFfVVNBR0UiO1QuV1tULlcueHFdPSJGT1JNX0lOVEVSQUNUSU9OX1BFUk1JU1NJT05fREVOSUVEIjsKVC5XW1QuVy55cV09IkZPUk1fU1VCTUlUX1BFUk1JU1NJT05fREVOSUVEIjtULldbVC5XLmZqXT0iTUlDUk9UQVNLX05PVF9TVVBQT1JURUQiO1QuV1tULlcudW5dPSJTRVRfRU5DUllQVEVEX0RBVEFfVE9fQ0FDSEUiO1QuV1tULlcuT21dPSJHRVRfRU5DUllQVEVEX0RBVEFfRlJPTV9DQUNIRSI7VC5XW1QuVy5Ta109IkNPTkZJR19ERVRFQ1RFRF9XSVRIX05PX1BBUkFNIjtULldbVC5XLlRrXT0iQ09ORklHX0RFVEVDVEVEX1dJVEhfUEFSQU0iO1QuV1tULlcuUmtdPSJDT05GSUdfQ09OU0VOVF9TRVRfQkVGT1JFIjtULldbVC5XLlVrXT0iQ09ORklHX1NFVF9VU0VEX0JFRk9SRSI7VC5XW1QuVy5yal09IlNIQURPV19ET01fQVVUT19QSUkiO1QuV1tULlcuT2tdPSJDQ0RfVVNFUl9EQVRBX1dFQl9PTl9DT05GSUciO1QuV1tULlcuWm9dPSJCTEVOREVEX1VTRVJfREFUQSI7dmFyIEJ1PXt9LEN1PShCdVtGLkQudWldPVQuVy5KayxCdVtGLkQuZGRdPVQuVy5uaixCdVtGLkQueWNdPVQuVy5uaixCdVtGLkQubWJdPVQuVy5GayxCdVtGLkQuR2VdPVQuVy5tbCxCdVtGLkQucmldPVQuVy5HayxCdVtGLkQuSmRdPVQuVy55ZCxCdVtGLkQubmJdPVQuVy55ZCxCdVtGLkQuTGJdPVQuVy55ZCxCdVtGLkQuSWRdPVQuVy55ZCxCdVtGLkQudmNdPVQuVy55ZCxCdVtGLkQuVGJdPVQuVy55ZCxCdVtGLkQuQ2JdPVQuVy5rbCxCdVtGLkQuV2JdPVQuVy5xbixCdVtGLkQuaGhdPVQuVy5IayxCdVtGLkQuU2NdPVQuVy5JayxCdSksRHU9e30sRXU9KER1LnVua25vd249VC5XLkRtLER1LnN0YW5kYXJkPVQuVy5BbSxEdS51bmlxdWU9VC5XLkNtLER1LnBlcl9zZXNzaW9uPVQuVy56bSxEdS50cmFuc2FjdGlvbnM9VC5XLkJtLER1Lml0ZW1zX3NvbGQ9VC5XLnltLER1KTt2YXIgRnU9ZnVuY3Rpb24oYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO3NiKCJHVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTCIsYik7YyYmKGEuSFtiXT0hMCl9LHZiPW5ldyBmdW5jdGlvbigpe3RoaXMuSD1bXX07ZnVuY3Rpb24gR3UoYSl7RnUodmIsYSwhMSl9ZnVuY3Rpb24gSHUoYSxiKXt2YXIgYz1iPT09dm9pZCAwPyExOmIsZD12YjtjPWM9PT12b2lkIDA/ITE6Yztmb3IodmFyIGU9T2JqZWN0LmtleXMoYSksZj1tKE9iamVjdC5rZXlzKEN1KSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7ZS5pbmNsdWRlcyhoKSYmRnUoZCxDdVtoXSxjKX19O2Z1bmN0aW9uIEl1KGEsYil7YT9hLnRoZW4oYik6Yih2b2lkIDApfWZ1bmN0aW9uIEp1KGEpe3JldHVybiBQcm9taXNlLmFsbFNldHRsZWQoYSkudGhlbihmdW5jdGlvbihiKXtyZXR1cm4gYi5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGMuc3RhdHVzPT09ImZ1bGZpbGxlZCJ9KS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGMudmFsdWV9KX0pfWZ1bmN0aW9uIEt1KCl7dmFyIGEsYjtyZXR1cm57cHJvbWlzZTpuZXcgUHJvbWlzZShmdW5jdGlvbihjLGQpe2E9YztiPWR9KSxyZXNvbHZlOmEscmVqZWN0OmJ9fTtmdW5jdGlvbiBMdShhLGIsYyxkLGUsZil7dmFyIGc9Yy5zbGljZSgpLGg7ZD09bnVsbHx8KGg9ZC51dik9PW51bGx8fGguY2FsbChkLGEsYixjLGUpO3ZhciBsPUt1KCksbj1sLnByb21pc2UscD1sLnJlc29sdmUscT1bXSxyPWZ1bmN0aW9uKCl7cChxKTt2YXIgdTtkPT1udWxsfHwodT1kLlJzKT09bnVsbHx8dS5jYWxsKGQsYSxiLGMsZSxxKX0sdD1mdW5jdGlvbigpe3ZhciB1PWcuc2hpZnQoKTt1P3UubWV0aG9kLmlzU3VwcG9ydGVkKCk/TXUoYSxiLHUuZW5kcG9pbnQsZCxxLHUubWV0aG9kLGUsZix0LHIpOnQoKTpyKCl9O3QoKTtyZXR1cm4gbn0KZnVuY3Rpb24gTXUoYSxiLGMsZCxlLGYsZyxoLGwsbil7dmFyIHA9Yy5SKGEpLHE9e3RrOmIsZW5kcG9pbnQ6Yyxpc1ByaW1hcnk6ZyxzYjp2b2lkIDAscGs6ZixqdDp7fX0scj0hMSx0PWZ1bmN0aW9uKHosQyl7aWYocilQKDE4Nyk7ZWxzZSBpZihyPSEwLCF1KXt2YXIgRD1DfHx7fSxJPUQuYm9keSxHPUQuR2IsTj1ELmFmO0M9T2JqZWN0LmZyZWV6ZShuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LEk/e2JvZHk6SX06e30sRz97R2I6R306e30sTj97YWY6Tn06e30pKTtpZihJJiYhZi5IKCkpeCgpLGwoKTtlbHNle3ZhciBTPU51KHopLFc9cFswXT09PSIvIj8iIitwK1M6Imh0dHBzOi8vIitwK1M7cS5zYj1XO3EuanQ9Qzt2YXIgZWE7ZD09bnVsbHx8KGVhPWQuU3MpPT1udWxsfHxlYS5jYWxsKGQsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHEpKTt2YXIgamE9e2Rlc3RpbmF0aW9uSWQ6YS50YXJnZXQuZGVzdGluYXRpb25JZCxlbmRwb2ludDpjLmVuZHBvaW50LApldmVudElkOmEuTS5ldmVudElkLHByaW9yaXR5SWQ6YS5NLnByaW9yaXR5SWR9O2YuUj09PXZvaWQgMHx8Yy5mYSE9PTImJihjLmZhIT09MXx8ZS5sZW5ndGgpfHxrbi5yZWdpc3RlcihqYSxmLlIsVyk7dmFyIGZhPWZ1bmN0aW9uKGRhLG1hKXt4KCk7aWYocS5zdGF0dXMhPT12b2lkIDApcmV0dXJuIFAoMTkyKSwhMTtxLnN0YXR1cz1kYTtlLnB1c2gocSk7dmFyIFBhO2Q9PW51bGx8fChQYT1kLnVvKT09bnVsbHx8UGEuY2FsbChkLGEsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxxKSxtYSk7cmV0dXJuITB9LHNhPXtGbzpqYSxyZDpmdW5jdGlvbigpe2ZhKDIpJiZsKCl9LG9uRmFpbHVyZTpmdW5jdGlvbigpe2ZhKDMpJiZsKCl9LHBlOmZ1bmN0aW9uKGRhKXtmYShkYS5zdGF0dXM9PT0wPzE6ZGEub2s/MDozLGRhKSYmbigpfSxqZjpmdW5jdGlvbigpe2ZhKDEpJiZuKCl9fTtPdShjLGEsVyxTLEkpO2Yuc2VuZFJlcXVlc3Qoc2EsVyxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LAp7fSxJJiZ7Ym9keTpJfSxHJiZ7R2I6R30sTiYme2FmOk59KSl9fX0sdT0hMSx2LHg9ZnVuY3Rpb24oKXt2IT09dm9pZCAwJiYoQS5jbGVhclRpbWVvdXQodiksdj12b2lkIDApfTtNKDU3NCkmJih2PUEuc2V0VGltZW91dChmdW5jdGlvbigpe3Y9dm9pZCAwO3U9ITA7aWYocS5zdGF0dXM9PT12b2lkIDApe3Euc3RhdHVzPTQ7cS5zYj09PXZvaWQgMCYmKHEuc2I9IltmYWlsZWQgdG8gYnVpbGRdICIrcCk7ZS5wdXNoKHEpO3ZhciB6O2Q9PW51bGx8fCh6PWQudW8pPT1udWxsfHx6LmNhbGwoZCxhLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scSksdm9pZCAwKTtsKCl9fSw1RTMpKTt2YXIgeT17SWM6cCxtZXRob2Q6Zix5djplLGlzUHJpbWFyeTpnLEN0Omh9O3RyeXtjLkgoYSx5LHQpfWNhdGNoKHope3goKSxQKDE4OCksbCgpfX0KZnVuY3Rpb24gT3UoYSxiLGMsZCxlKXtpZihhLmphKXt2YXIgZj1iLnRhcmdldC5kZXN0aW5hdGlvbklkLGc9YS5lbmRwb2ludDtpZihnPT09NDV8fGc9PT00Nnx8Zz09PTY5fHxnPT09NTh8fGc9PT01Nyl7dmFyIGg9L1s/Jl10aWRzPShbXiZdKykvLmV4ZWMoZCk7Zj1oP2RlY29kZVVSSUNvbXBvbmVudChoWzFdKS5zcGxpdCgifiIpOltmXX1NbCh7dGFyZ2V0SWQ6ZixyZXF1ZXN0Om5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30se3VybDpjLHBhcmFtZXRlckVuY29kaW5nOmEucGFyYW1ldGVyRW5jb2RpbmcsZW5kcG9pbnQ6YS5lbmRwb2ludH0sZT97cG9zdEJvZHk6ZX06e30pLHFiOntldmVudElkOmIuTS5ldmVudElkLHByaW9yaXR5SWQ6Yi5NLnByaW9yaXR5SWR9LEZqOntldmVudElkOlEoYixILkoudWYpLHByaW9yaXR5SWQ6UShiLEguSi52Zil9fSl9fQpmdW5jdGlvbiBOdShhKXtyZXR1cm4gYSYmYSE9PSI/Ij9hWzBdIT09Ij8iPyI/Ii5jb25jYXQoYSk6YToiIn07ZnVuY3Rpb24gUHUoYSxiLGMsZCxlKXt2YXIgZjtlPT1udWxsfHwoZj1lLnZ2KT09bnVsbHx8Zi5jYWxsKGUsYSxiKTtpZighYy5sZW5ndGgpe3ZhciBnO2U9PW51bGx8fChnPWUuVHMpPT1udWxsfHxnLmNhbGwoZSxhLGIsW10pO3JldHVybiBQcm9taXNlLnJlc29sdmUoW10pfXZhciBoPVtdLGw9e3RrOmIsbWs6YyxqazpkfTtoLnB1c2goTHUoYSxiLGMsZSwhMCxsKSk7Zm9yKHZhciBuPW0oZCkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpaC5wdXNoKEx1KGEsYixwLnZhbHVlLGUsITEsbCkpO3JldHVybiBKdShoKS50aGVuKGZ1bmN0aW9uKHEpe2Zvcih2YXIgcj1bXSx0PW0ocSksdT10Lm5leHQoKTshdS5kb25lO3U9dC5uZXh0KCkpci5wdXNoLmFwcGx5KHIsdyh1LnZhbHVlKSk7dmFyIHY7ZT09bnVsbHx8KHY9ZS5Ucyk9PW51bGx8fHYuY2FsbChlLGEsYixyKTtyZXR1cm4gcn0pfTtmdW5jdGlvbiBRdShhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkO2I9PW51bGx8fChkPWIud3YpPT1udWxsfHxkLmNhbGwoYixhLGMpO2Zvcih2YXIgZT1bXSxmPW0oYyksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpZS5wdXNoKFJ1KGEsZy52YWx1ZSkpO2Zvcih2YXIgaD1bXSxsPW0oZSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWU7aC5wdXNoKFB1KGEscC50ayxwLm1rLHAuamssYikpfUp1KGgpLnRoZW4oZnVuY3Rpb24ocSl7Zm9yKHZhciByPVtdLHQ9bShxKSx1PXQubmV4dCgpOyF1LmRvbmU7dT10Lm5leHQoKSlyLnB1c2guYXBwbHkocix3KHUudmFsdWUpKTt2YXIgdjtiPT1udWxsfHwodj1iLlFzKT09bnVsbHx8di5jYWxsKGIsYSxjLHIpfSl9CmZ1bmN0aW9uIFJ1KGEsYil7dmFyIGM9ZnVuY3Rpb24oZil7cmV0dXJuIGYubWV0aG9kLmlzU3VwcG9ydGVkKCkmJmYuZW5kcG9pbnQuaXNTdXBwb3J0ZWQoYSkmJmYuZW5kcG9pbnQuSyhhKX0sZD0oYi5IKGEpfHxbXSkuZmlsdGVyKGMpLGU9W107ZC5sZW5ndGgmJihlPShiLksoYSl8fFtdKS5tYXAoZnVuY3Rpb24oZil7cmV0dXJuIGYuZmlsdGVyKGMpfSkuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiBmLmxlbmd0aD4wfSkpO3JldHVybnt0azpiLG1rOmQsams6ZX19Owp2YXIgU3U9ZnVuY3Rpb24oYSxiKXtpZihNKDUxNykmJklmKDQ3KSYmYT09PTQ1KXJldHVybiBYaigpKyIvZy9kL2NjbS9jb2xsZWN0PyIrYi5zcGxpdCgiPyIpWzFdKyImZ2FwLjFwZmI9MSJ9LFd1PWZ1bmN0aW9uKCl7dmFyIGE9YWwoMzAsZnVuY3Rpb24oKXtyZXR1cm5bXX0pO2lmKGEubGVuZ3RoKXtmb3IodmFyIGI9e30sYz1tKGEpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlLGY9VHUoZS5rZSwiYXB2YyIpLGc9VHUoZS5rZSwidGZ0IiksaD1UdShlLmtlLCJ0ZmQiKSxsPVR1KGUua2UsInRpZCIpLG49Tm0oZS5lbmRwb2ludCxlLmtlKSxwPWJbbl09YltuXXx8e3hrOltdLFpoOltdfTtwLlpoLnB1c2goZSk7bD8ocC54ay5wdXNoKGwpLHAudWR8fChwLnVkPWwpKTpwLnhrLnB1c2goIiIpO2Y9PT0iMSImJihwLlFuPSEwKTtpZihnfHxoKXAuTm49ITB9YS5sZW5ndGg9MDtmb3IodmFyIHE9bShPYmplY3Qua2V5cyhiKSkscj1xLm5leHQoKSx0PXt9OyFyLmRvbmU7dD0Ke3lrOnZvaWQgMH0scj1xLm5leHQoKSl7dmFyIHU9ci52YWx1ZSx2PWJbdV07dC55az12LnhrO3ZhciB4PXQueWsuZmlsdGVyKGZ1bmN0aW9uKEQpe3JldHVybiBmdW5jdGlvbihJLEcpe3JldHVybiBELnlrLmluZGV4T2YoSSk9PT1HfX0odCkpLmZpbHRlcihmdW5jdGlvbihEKXtyZXR1cm4hIUR9KTtpZihNKDQyNykpe3ZhciB5PVV1KHYseCk7UXUoeSx2b2lkIDAsQXUpfWVsc2V7dmFyIHo9dSsiJmFwdmM9Iisodi5Rbj8iMSI6IjAiKTt4Lmxlbmd0aCYmKHorPSImdGlkcz0iK3guam9pbigifiIpKTt2LnVkJiYoeis9IiZ0aWQ9Iit2LnVkKTtpZih2Lk5uKXt6Kz0iJnRmdD0iK1N0cmluZyhOYigpKTt2YXIgQz1wZCgpO0MhPT12b2lkIDAmJih6Kz0iJnRmZD0iK1N0cmluZyhNYXRoLnJvdW5kKEMpKSl9VnUodi5aaFswXS5ldmVudCx6LHYuWmhbMF0uZW5kcG9pbnQseC5sZW5ndGg/eDpbIiJdKX19fX0sVHU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hW2JdO2lmKGMhPT12b2lkIDApcmV0dXJuIGRlbGV0ZSBhW2JdLApjfSxWdT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT17ZGVzdGluYXRpb25JZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLGVuZHBvaW50OmMsZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfSxmPWZ1bmN0aW9uKGwsbil7dmFyIHA9YitYdShsKTtUbChwLGEsYyxkKTtyZXR1cm4gbihwKX07aWYobmQoKSl7dmFyIGc9ZnVuY3Rpb24oKXt9LGg9U3UoYyxiKTtoIT09dm9pZCAwJiYoZz1mdW5jdGlvbigpe1luKGUsaCtYdSg4KSx2b2lkIDAse1FnOiEwfSl9KTtmKDgsZnVuY3Rpb24obCl7WW4oZSxsLHZvaWQgMCx7UWc6ITB9LGZ1bmN0aW9uKCl7fSxmdW5jdGlvbigpe1pjKGIrWHUoMyksZnVuY3Rpb24oKXt9LGcpfSl9KX1lbHNlIGYoNSxmdW5jdGlvbihsKXtyZXR1cm4gV24oZSxsKX0pfHxaYyhiK1h1KDMpKX0sVXU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLlpoWzBdLGQ9eyJfJmFwdmMiOmEuUW4/IjEiOiIwIn07Yi5sZW5ndGg+MCYmKGRbIl8mdGlkcyJdPQpiLmpvaW4oIn4iKSk7aWYoYS5Obil7ZFsiXyZ0ZnQiXT1TdHJpbmcoTmIoKSk7dmFyIGU9cGQoKTtlIT09dm9pZCAwJiYoZFsiXyZ0ZmQiXT1TdHJpbmcoTWF0aC5yb3VuZChlKSkpfXJldHVybiBZdShjLmV2ZW50LGEudWR8fCIiLGQpfSxZdT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxhLnRhcmdldCx7ZGVzdGluYXRpb25JZDpifSksZT1adShhLHt0YXJnZXQ6ZH0pO2J8fFUoZSxGLkQuUWUpO2Zvcih2YXIgZj1tKE9iamVjdC5rZXlzKGMpKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtVKGUsaCxjW2hdKX1yZXR1cm4gZX0sWHU9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgODpjYXNlIDM6Y2FzZSA1OnJldHVybiImZm10PSIrYTtkZWZhdWx0OnJldHVybiIifX0sJHU9ZnVuY3Rpb24oYSxiKXthPVp1KGEpO1YoYSxILkouRGssWG8oZnApKTtUdCgpJiZVKGEsIl8mZ2NzIixVdCgpKTsKVShhLCJfJmdjZCIsWXQoYS5NKSk7dmFyIGM9WG8oZnApPzQ1OjQ2LGQ9ZnVuY3Rpb24oKXt2YXIgZj1iLnRpZDtpZihNKDQyNykpe3ZhciBnPVl1KGEsZixiKTtRdShnLHZvaWQgMCxBdSl9ZWxzZXt2YXIgaD1ObShjLGIpO1Z1KGEsaCxjLFtmXSl9fTtpZih5YihBLnF1ZXVlTWljcm90YXNrKSl7dmFyIGU9YWwoMzAsZnVuY3Rpb24oKXtyZXR1cm5bXX0pO2lmKGUubGVuZ3RoPT09MCl0cnl7QS5xdWV1ZU1pY3JvdGFzayhXdSl9Y2F0Y2goZil7R3UoVC5XLmZqKTtkKCk7cmV0dXJufWI9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxiKTtlLnB1c2goe2V2ZW50OmEsa2U6YixlbmRwb2ludDpjfSl9ZWxzZSBHdShULlcuZmopLGQoKX07dmFyIGF2PWZ1bmN0aW9uKGEsYixjLGQpe2d1LmNhbGwodGhpcyxhLGIsYz09PXZvaWQgMD8xOmMsZD09PXZvaWQgMD8hMTpkLDMsdm9pZCAwKX07d2EoYXYsZ3UpO2F2LnByb3RvdHlwZS55YT1mdW5jdGlvbihhLGIpe3ZhciBjPVIoYSxGLkQueWkpO3JldHVybiBiKyIvIitjKyIvIn07YXYucHJvdG90eXBlLlI9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMueWEoYSxndS5wcm90b3R5cGUuUi5jYWxsKHRoaXMsYSkpfTt2YXIgWD17Vjp7TWs6ImNhbGxfY29udmVyc2lvbiIsemQ6ImNjbV9jb252ZXJzaW9uIixRazoiY29tbW9uX2F3Iix4YToiY29udmVyc2lvbiIsd3E6ImZsb29kbGlnaHQiLFlkOiJnYV9jb252ZXJzaW9uIixaZDoiZ2NwX3JlbWFya2V0aW5nIixLYToicGFnZV92aWV3Iix1YjoicmVtYXJrZXRpbmciLE9iOiJ1c2VyX2RhdGFfbGVhZCIsRmI6InVzZXJfZGF0YV93ZWIifX07ZnVuY3Rpb24gYnYoYSxiKXtiJiZHYihiLGZ1bmN0aW9uKGMsZCl7dHlwZW9mIGQhPT0ib2JqZWN0IiYmZCE9PXZvaWQgMCYmKGFbIjFwLiIrY109U3RyaW5nKGQpKX0pfTsKdmFyIGN2PWZ1bmN0aW9uKGEsYil7dmFyIGM9UihhLEYuRC5zaCk7aWYoYylmb3IodmFyIGQ9bShPYmplY3Qua2V5cyhjKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWUsZz1jW2ZdO2chPW51bGwmJihiWyJndG1kLiIrZl09U3RyaW5nKGcpKX19LGd2PWZ1bmN0aW9uKGEpe3ZhciBiPWR2KGEpO2lmKGIubGVuZ3RoKXt2YXIgYz1ldihhKS5WbixkPWZ2KGMpfHwiIjtyZXR1cm4gYi5tYXAoZnVuY3Rpb24oZSl7dmFyIGY9ZnYoZSk7cmV0dXJuIiIrZCsoZCYmZj8iOyI6IiIpK2Z9KX19LGR2PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1odihhKSxjPXt9LGQ9bShiKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZSxnPXZvaWQgMDtpZihmLmhhc093blByb3BlcnR5KCJnb29nbGVfYnVzaW5lc3NfdmVydGljYWwiKSl7Zz1mLmdvb2dsZV9idXNpbmVzc192ZXJ0aWNhbDt2YXIgaD17fTtjW2ddPWNbZ118fChoLmdvb2dsZV9idXNpbmVzc192ZXJ0aWNhbD0KZyxoKX1lbHNlIGc9IiIsYy5oYXNPd25Qcm9wZXJ0eShnKXx8KGNbZ109e30pO3ZhciBsPWNbZ10sbjtmb3IobiBpbiBmKW4hPT0iZ29vZ2xlX2J1c2luZXNzX3ZlcnRpY2FsIiYmKG4gaW4gbHx8KGxbbl09W10pLGxbbl0ucHVzaChmW25dKSl9cmV0dXJuIE9iamVjdC5rZXlzKGMpLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gY1twXX0pfSxodj1mdW5jdGlvbihhKXt2YXIgYj1SKGEsRi5ELkhhKTtyZXR1cm4gYiYmYi5sZW5ndGg/Yi5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuISFjfSkubWFwKGZ1bmN0aW9uKGMpe3ZhciBkPXt9O3JldHVybiBkLmlkPWlpKGMpLGQub3JpZ2luPWMub3JpZ2luLGQuZGVzdGluYXRpb249Yy5kZXN0aW5hdGlvbixkLnN0YXJ0X2RhdGU9Yy5zdGFydF9kYXRlLGQuZW5kX2RhdGU9Yy5lbmRfZGF0ZSxkLmxvY2F0aW9uX2lkPWMubG9jYXRpb25faWQsZC5nb29nbGVfYnVzaW5lc3NfdmVydGljYWw9Yy5nb29nbGVfYnVzaW5lc3NfdmVydGljYWwsZH0pOltdfSwKaWk9ZnVuY3Rpb24oYSl7YS5pdGVtX2lkIT1udWxsJiYoYS5pZCE9bnVsbD8oUCgxMzgpLGEuaWQhPT1hLml0ZW1faWQmJlAoMTQ4KSk6UCgxNTMpKTtyZXR1cm4gamkoYSl9LGZ2PWZ1bmN0aW9uKGEpe2lmKGEmJnR5cGVvZiBhPT09Im9iamVjdCImJiFBcnJheS5pc0FycmF5KGEpKXJldHVybiBPYmplY3Qua2V5cyhhKS5tYXAoZnVuY3Rpb24oYil7dmFyIGM9aXYoYik7aWYoYyl7dmFyIGQ9YVtiXSxlPUFycmF5LmlzQXJyYXkoZCk/anYoZCk6aXYoZCk7aWYoZSE9PXZvaWQgMClyZXR1cm4gYysiPSIrZX19KS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIGIhPT12b2lkIDB9KS5qb2luKCI7Iil9LGp2PWZ1bmN0aW9uKGEpe3ZhciBiPWEubWFwKGl2KS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGMhPT12b2lkIDB9KTtyZXR1cm4gYi5sZW5ndGg/Yi5qb2luKCIsIik6dm9pZCAwfSxpdj1mdW5jdGlvbihhKXtpZihhIT1udWxsKXt2YXIgYj10eXBlb2YgYTtpZihiIT09Im9iamVjdCImJgpiIT09ImZ1bmN0aW9uIilyZXR1cm4gU3RyaW5nKGEpLnJlcGxhY2UoLywvZywiXFwsIikucmVwbGFjZSgvOy9nLCJcXDsiKS5yZXBsYWNlKC89L2csIlxcPSIpfX0sa3Y9ZnVuY3Rpb24oYSl7cmV0dXJuIE9iamVjdC5rZXlzKGEpLm1hcChmdW5jdGlvbihiKXt2YXIgYz1hW2JdO2lmKGMhPW51bGwmJihjIT09IiJ8fHlnW2JdKSlyZXR1cm4gYz09PSEwfHxjPT09ITE/YisiPSIrKGM/MTowKTpiKyI9IitlbmNvZGVVUklDb21wb25lbnQoYyl9KS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuISFifSkuam9pbigiJiIpfSxsdj1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKSxjPXt9LGQ9UShhLEguSi5FYik7aWYoYj09PVguVi54YXx8Yj09PVguVi51Ynx8Yj09PVguVi5ZZHx8Yj09PVguVi56ZHx8Yj09PVguVi5aZCljLnJhbmRvbT0iIitkO2I9PT1YLlYueGF8fGI9PT1YLlYudWJ8fGI9PT1YLlYuemR8fGI9PT1YLlYuWmQ/KGMuY3Y9IjExIixjLmZzdD0iIitkLGMuZm10PSIzIiwKYy5iZz0iZmZmZmZmIixjLmd1aWQ9Ik9OIixjLmFzeW5jPSIxIixjLmVuPWEuZXZlbnROYW1lKTpiPT09WC5WLllkJiYoYy5jdj0iMTEiLGMudGlkPWEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsYy5mc3Q9IiIrZCxjLmZtdD0iOCIsYy5lbj1hLmV2ZW50TmFtZSk7dmFyIGU9QnMoWyJhdyIsImRjIl0pO2UhPW51bGwmJihjLmdhZF9zb3VyY2U9ZSk7Yy5ndG09ZHUoe21jOlEoYSxILkouTmIpLFRnOmEuTS5pc0d0bUV2ZW50LGVmOlEoYSxILkouQ2MpfSk7YiE9PVguVi51YiYmVHQoKSYmKGMuZ2NzPVV0KCkpO2MuZ2NkPVl0KGEuTSk7YXUoKSYmKGMuZG1hX2Nwcz1adCgpKTtjLmRtYT0kdCgpO3Z0KEV0KCkpJiYoYy50Y2ZkPWJ1KCkpO3ZhciBmPUNwKGEpO2YmJihjLnRhZ19leHA9Zik7Zm8uSFtjby5pYS5jYl0hPT1iby5NYS5VZXx8Zm8uS1tjby5pYS5jYl0uaXNDb25zZW50R3JhbnRlZCgpfHwoYy5saW1pdGVkX2Fkcz0iMSIpO1IoYSxGLkQuYmQpJiZmaShSKGEsRi5ELmJkKSxjKTtpZihSKGEsCkYuRC50Yikpe3ZhciBnPVIoYSxGLkQudGIpO2cmJihnLmxlbmd0aD09PTI/Z2koYywiaGwiLGcpOmcubGVuZ3RoPT09NSYmKGdpKGMsImhsIixnLnN1YnN0cmluZygwLDIpKSxnaShjLCJnbCIsZy5zdWJzdHJpbmcoMyw1KSkpKX12YXIgaD1RKGEsSC5KLlllKSxsPWZ1bmN0aW9uKEksRyl7dmFyIE49UihhLEcpO04mJihjW0ldPWg/WnMoTik6Til9O2woInVybCIsRi5ELnphKTtsKCJyZWYiLEYuRC5VYSk7bCgidG9wIixGLkQuUGUpO3ZhciBuPWd0KGEsRi5ELkJkLEYuRC5DZCk7biYmKGMuZ2NsYXdfc3JjPW4pO3ZhciBwPWd0KGEsRi5ELmZoLEYuRC5naCk7cCYmKGMuZ2NsZ2Jfc3JjPXApO3ZhciBxPWZ1bmN0aW9uKEksRyl7Zm9yKHZhciBOPW0oT2JqZWN0LmtleXMoSSkpLFM9Ti5uZXh0KCk7IVMuZG9uZTtTPU4ubmV4dCgpKXt2YXIgVz1TLnZhbHVlO2VpW1ddJiZ0eXBlb2YgSVtXXT09PSJzdHJpbmciJiYoR1siZXh0LiIrZWlbV11dPUlbV10pfX0scj1SKGEsRi5ELldjKTtyJiYKcShyLGMpO3ZhciB0PWV2KGEpLHU9dC5WbjtuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGMsdC5rZSk7YnYoYyxSKGEsRi5ELmVkKSk7dmFyIHY9UihhLEYuRC5OZSk7diE9PXZvaWQgMCYmdiE9PSIiJiYoYy52ZG5jPVN0cmluZyh2KSk7dmFyIHg9UihhLEYuRC5MZCk7eCE9PXZvaWQgMCYmKGMuc2hmPXgpO3ZhciB5PVIoYSxGLkQuVGMpO3khPT12b2lkIDAmJihjLmRlbGM9eSk7aWYoYiE9PVguVi5ZZCl7dmFyIHo9ZnYodSk7eiYmKGMuZGF0YT16KX12YXIgQz1SKGEsRi5ELkhhKTtpZihDJiYoYj09PVguVi54YXx8Yj09PVguVi5ZZHx8Yj09PVguVi5aZHx8Yj09PVguVi56ZCkpe3ZhciBEPW5pKEMpO0QhPT12b2lkIDAmJihjLmllZGVsZD1EKTtjLml0ZW09aGkoQyl9aHQoYSxjKTtjdihhLGMpO1EoYSxILkouSWgpJiYoYy5hZWNzPSIxIik7YiE9PVguVi54YXx8UShhLEguSi5FYyl8fFEoYSxILkoub2IpfHwoYy5jYXRlZ29yeT0iYWNyY3BfdjFfNTEyIik7cmV0dXJuIGN9LApldj1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz17fSxkPVEoYSxILkouZGEpLGU9bShldShhKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1SKGEsZyk7aWYoaCE9PXZvaWQgMClpZihTYihnLCJfJiIpKWJbZy5zdWJzdHJpbmcoMildPWg7ZWxzZSBpZihlaS5oYXNPd25Qcm9wZXJ0eShnKSl7aWYoZyE9PUYuRC5FaXx8ZD09PVguVi54YSYmIVEoYSxILkouRWMpKXt2YXIgbD1laVtnXTtsJiYoZyE9PUYuRC5OZCYmZyE9PUYuRC5NZHx8TSg1MDQpP2JbbF09aDpjW2ddPWgpfX1lbHNlIGNbZ109aH1yZXR1cm57a2U6YixWbjpjfX07dmFyIG12PXtOZzoidmFsdWUiLHBiOiJjb252ZXJzaW9uQ291bnQiLE9nOjF9LG52PXtOZzoidGltZW91dHMiLHBiOiJ0aW1lb3V0cyIsT2c6MH0sb3Y9e05nOiJlb3BDb3VudCIscGI6ImVuZE9mUGFnZUNvdW50IixPZzowfSxwdj17Tmc6ImVycm9ycyIscGI6ImVycm9ycyIsT2c6MH0scXY9W212LG52LHB2LG92XTtmdW5jdGlvbiBydihhLGIpe2I9Yj09PXZvaWQgMD8xOmI7aWYoIXN2KGEpKXJldHVybnt9O3ZhciBjPXR2KHF2KSxkPWNbYS5wYl07aWYoZD09PXZvaWQgMHx8ZD09PS0xKXJldHVybiBjO3ZhciBlPXt9LGY9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjLChlW2EucGJdPWQrYixlKSk7cmV0dXJuIHV2KGYpP2Y6Y30KZnVuY3Rpb24gdHYoYSl7dmFyIGI7YTp7dmFyIGM9bnIoImdjbF9jdHIiKTtpZihjLmVycm9yPT09MCYmYy52YWx1ZSYmdHlwZW9mIGMudmFsdWU9PT0ib2JqZWN0Iil7dmFyIGQ9Yy52YWx1ZTt0cnl7Yj0idmFsdWUiaW4gZCYmdHlwZW9mIGQudmFsdWU9PT0ib2JqZWN0Ij9kLnZhbHVlOnZvaWQgMDticmVhayBhfWNhdGNoKHApe319Yj12b2lkIDB9Zm9yKHZhciBlPWIsZj17fSxnPW0oYSksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWU7aWYoZSYmc3YobCkpe3ZhciBuPWVbbC5OZ107bj09PXZvaWQgMHx8TnVtYmVyLmlzTmFOKG4pP2ZbbC5wYl09LTE6ZltsLnBiXT1OdW1iZXIobil9ZWxzZSBmW2wucGJdPS0xfXJldHVybiBmfQpmdW5jdGlvbiB1dihhLGIpe2I9Ynx8e307Zm9yKHZhciBjPU5iKCksZD11cShiLGMsITApLGU9e30sZj1tKHF2KSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZSxsPWFbaC5wYl07bCE9PXZvaWQgMCYmbCE9PS0xJiYoZVtoLk5nXT1sKX1lLmNyZWF0aW9uVGltZU1zPWM7cmV0dXJuIGtyKCJnY2xfY3RyIix7dmFsdWU6ZSxleHBpcmVzOk51bWJlcihkLmV4cGlyZXMpfSk9PT0wPyEwOiExfWZ1bmN0aW9uIHN2KGEpe3JldHVybiBCbChbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSk/IWEuZnR8fFlmKGEuZnQpOiExfWZ1bmN0aW9uIHZ2KGEpe3JldHVybiBCbChbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSk/IWEuQXN8fFlmKGEuQXMpOiExfTtmdW5jdGlvbiB3digpe2lmKHh2KCkpe3ZhciBhPW5yKCJsYXN0X2NvbnZzIik7aWYoYS5lcnJvcj09PTAmJmEudmFsdWUmJnR5cGVvZiBhLnZhbHVlPT09Im9iamVjdCIpe3ZhciBiPWEudmFsdWU7aWYoYi52YWx1ZSYmQXJyYXkuaXNBcnJheShiLnZhbHVlKSl7dmFyIGM9Yi52YWx1ZTtpZighKGMubGVuZ3RoPjEpKXtmb3IodmFyIGQ9W10sZT1tKGMpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO2lmKHR5cGVvZiBnIT09Im9iamVjdCJ8fGc9PT1udWxsfHx0eXBlb2YgZy5yYW5kb20hPT0ibnVtYmVyInx8dHlwZW9mIGcubGFiZWwhPT0ic3RyaW5nInx8Zy5sYWJlbC5sZW5ndGg+MjAwKXJldHVybjtkLnB1c2goe3JhbmRvbTpnLnJhbmRvbSxsYWJlbDpnLmxhYmVsfSl9cmV0dXJuIGR9fX19fQpmdW5jdGlvbiB5dihhLGIpeyF4digpfHxhLmxlbmd0aD4xfHxhLmxlbmd0aD09PTEmJmFbMF0ubGFiZWwubGVuZ3RoPjIwMHx8KGI9Ynx8e30sa3IoImxhc3RfY29udnMiLHt2YWx1ZTphLGV4cGlyZXM6TnVtYmVyKHVxKGIpLmV4cGlyZXMpfSkpfWZ1bmN0aW9uIHh2KCl7cmV0dXJuIEJsKFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSYmWWYoMTEpfTtmdW5jdGlvbiB6dihhKXt2YXIgYj1NYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMjE0NzQ4MzY0Nyk7cmV0dXJuIGE/U3RyaW5nKGJebmcoYSkmMjE0NzQ4MzY0Nyk6U3RyaW5nKGIpfWZ1bmN0aW9uIEF2KGEpe3JldHVyblt6dihhKSxNYXRoLnJvdW5kKE5iKCkvMUUzKV0uam9pbigiLiIpfWZ1bmN0aW9uIEJ2KGEsYixjLGQsZSl7dmFyIGY9cnEoYiksZztyZXR1cm4oZz1ncShhLGYsc3EoYyksZCxlKSk9PW51bGw/dm9pZCAwOmcuQ3J9O3ZhciBDdj1bIjEiXSxEdj17fSxFdj17fTtmdW5jdGlvbiBGdihhKXtyZXR1cm4gRXZbR3YoYSldfWZ1bmN0aW9uIEh2KGEsYil7Yj1iPT09dm9pZCAwPyEwOmI7dmFyIGM9R3YoYS5wcmVmaXgpO2lmKER2W2NdKUl2KGEpLEp2KGEpO2Vsc2UgaWYoS3YoYyxhLnBhdGgsYS5kb21haW4pKXt2YXIgZD1GdihhLnByZWZpeCl8fHtpZDp2b2lkIDAsa2M6dm9pZCAwfTtiJiZMdihhLGQpO0l2KGEpO0p2KGEpfWVsc2V7dmFyIGU9VGooImF1aWRkYyIpO2lmKGUpc2IoIlRBR0dJTkciLDE3KSxEdltjXT1lO2Vsc2UgaWYoYil7dmFyIGY9R3YoYS5wcmVmaXgpLGc9QXYoKTtNdihmLGcsYSk7S3YoYyxhLnBhdGgsYS5kb21haW4pO0l2KGEsITApO0p2KGEsITApfX19CmZ1bmN0aW9uIEl2KGEsYil7KGI9PT12b2lkIDA/MDpiKSYmc3YobXYpJiZvcigiZ2NsX2N0ciIpO2lmKHZ2KG12KSYmdHYoW212XSlbbXYucGJdPT09LTEpe2Zvcih2YXIgYz17fSxkPShjW212LnBiXT0wLGMpLGU9bShxdiksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7ZyE9PW12JiZ2dihnKSYmKGRbZy5wYl09MCl9dXYoZCxhKX19ZnVuY3Rpb24gSnYoYSxiKXsoYj09PXZvaWQgMD8wOmIpJiZ4digpJiZvcigibGFzdF9jb252cyIpOyFCbChbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSl8fCFZZigxMil8fHd2KCl8fHl2KFtdLGEpfQpmdW5jdGlvbiBMdihhLGIpe3ZhciBjPUd2KGEucHJlZml4KSxkPUR2W2NdO2lmKGQpe3ZhciBlPWQuc3BsaXQoIi4iKTtpZihlLmxlbmd0aD09PTIpe3ZhciBmPU51bWJlcihlWzFdKXx8MDtpZihmKXt2YXIgZz1kO1lmKDE5KSYmYi5maT9nPWQrIi4iKyhiLnNlc3Npb25JZHx8Ii0uLSIpKyIuIisoYi5rYz9iLmtjOk1hdGguZmxvb3IoTmIoKS8xRTMpKSsiLiIrYi5maSsiLiIrKGIuTGM/Yi5MYzpNYXRoLmZsb29yKE5iKCkvMUUzKSk6Yi5zZXNzaW9uSWQmJihnPWQrIi4iK2Iuc2Vzc2lvbklkKyIuIisoYi5rYz9iLmtjOk1hdGguZmxvb3IoTmIoKS8xRTMpKSk7TXYoYyxnLGEsZioxRTMpfX19fWZ1bmN0aW9uIE12KGEsYixjLGQpe3ZhciBlO2U9WyIxIix0cShjLmRvbWFpbixjLnBhdGgpLGJdLmpvaW4oIi4iKTt2YXIgZj11cShjLGQpO2YuTWM9TnYoKTtvcShhLGUsZil9CmZ1bmN0aW9uIEt2KGEsYixjKXt2YXIgZD1CdihhLGIsYyxDdixOdigpKTtpZighZClyZXR1cm4hMTtPdihhLGQpO3JldHVybiEwfWZ1bmN0aW9uIE92KGEsYil7dmFyIGM9Yi5zcGxpdCgiLiIpO2lmKGMubGVuZ3RoPT09MylFdlthXT17c2Vzc2lvbklkOmNbMF0rIi4iK2NbMV0sa2M6TnVtYmVyKGNbMl0pfHwwLExjOjB9O2Vsc2UgaWYoYy5sZW5ndGg+PTImJihEdlthXT1jWzBdKyIuIitjWzFdLGMuc2hpZnQoKSxjLnNoaWZ0KCksYy5sZW5ndGg+PTMpKXt2YXIgZD17c2Vzc2lvbklkOmNbMF09PT0iLSI/dm9pZCAwOmNbMF0rIi4iK2NbMV0sa2M6TnVtYmVyKGNbMl0pfHwwLExjOjB9O2lmKFlmKDE5KSYmYy5sZW5ndGg+PTYpe3ZhciBlPWNbM10rIi4iK2NbNF0sZj1OdW1iZXIoY1s1XSl8fDA7ZSYmZiE9PTAmJihkLmZpPWUsZC5MYz1mKX1FdlthXT1kfX1mdW5jdGlvbiBHdihhKXtyZXR1cm4oYXx8Il9nY2wiKSsiX2F1In0KZnVuY3Rpb24gUHYoYSl7ZnVuY3Rpb24gYigpe0JsKGMpJiZhKCl9dmFyIGM9TnYoKTtIbChmdW5jdGlvbigpe2IoKTtCbChjKXx8SWwoYixjKX0sYyl9ZnVuY3Rpb24gUXYoYSl7dmFyIGI9VXEoITApLGM9R3YoYS5wcmVmaXgpO1B2KGZ1bmN0aW9uKCl7dmFyIGQ9YltjXTtpZihkKXtPdihjLGQpO3ZhciBlPU51bWJlcihEdltjXS5zcGxpdCgiLiIpWzFdKSoxRTM7aWYoZSl7c2IoIlRBR0dJTkciLDE2KTt2YXIgZj11cShhLGUpO2YuTWM9TnYoKTt2YXIgZz1bIjEiLHRxKGEuZG9tYWluLGEucGF0aCksZF0uam9pbigiLiIpO29xKGMsZyxmKX19fSl9ZnVuY3Rpb24gUnYoYSxiLGMsZCxlKXtlPWV8fHt9O3ZhciBmPWZ1bmN0aW9uKCl7dmFyIGc9e30saD1CdihhLGUucGF0aCxlLmRvbWFpbixDdixOdigpKTtoJiYoZ1thXT1oKTtyZXR1cm4gZ307UHYoZnVuY3Rpb24oKXthcihmLGIsYyxkKX0pfQpmdW5jdGlvbiBOdigpe3JldHVyblsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdfTsKdmFyIFR2PWZ1bmN0aW9uKGEpe3JldHVybiBTdihhLHtPajohMH0pLlNofSxTdj1mdW5jdGlvbihhLGIpe2E9YXx8e307aWYoIVhvKEYuRC5rYSkpcmV0dXJue307dmFyIGM9VXYoYSksZD1jLlNoLGU9Yy5paztiLk9qJiYhZCYmKGQ9QXYoKSk7Yi5YaCYmIWUmJihlPUF2KCkpO3ZhciBmPXt9O2QmJihmLnNlc3Npb25JZD1kKTtlJiYoZi5maT1lKTt2YXIgZz1GdihIcihhLnByZWZpeCkpO2cmJihiLk9qJiYhYi5YaD9nLkxjJiYoZi5MYz1nLkxjKTpiLlhoJiYhYi5PaiYmZy5rYyYmKGYua2M9Zy5rYykpO2lmKGR8fGUpe3ZhciBoPWEsbD1HdihoLnByZWZpeCk7THYoaCxmKTtkZWxldGUgRHZbbF07ZGVsZXRlIEV2W2xdO0t2KGwsaC5wYXRoLGguZG9tYWluKX1yZXR1cm4gVXYoYSl9LFV2PWZ1bmN0aW9uKGEpe2lmKCFYbyhGLkQua2EpKXJldHVybnt9O2E9YXx8e307SHYoYSwhMSk7dmFyIGI9RnYoSHIoYS5wcmVmaXgpKTtpZighYilyZXR1cm57fTt2YXIgYz1OYigpLGQ9e307aWYoYy0KYi5rYyoxRTM8PShNKDQ1MCl8fE0oNDQzKT84NjRFNToxOEU1KSl7dmFyIGU9Yi5zZXNzaW9uSWQ7aWYoZSl7dmFyIGY9ZS5zcGxpdCgiLiIpO2YubGVuZ3RoPT09MiYmYy0oTnVtYmVyKGZbMV0pfHwwKSoxRTM8PTg2NEU1JiYoZC5TaD1lKX19aWYoYi5MYyYmYy1iLkxjKjFFMzw9ODY0RTUpe3ZhciBnPWIuZmk7aWYoZyl7dmFyIGg9Zy5zcGxpdCgiLiIpO2gubGVuZ3RoPT09MiYmYy0oTnVtYmVyKGhbMV0pfHwwKSoxRTM8PTg2NEU1JiYoZC5paz1nKX19cmV0dXJuIGR9O3ZhciBWdj0iZW1haWwgZW1haWxfYWRkcmVzcyBzaGEyNTZfZW1haWxfYWRkcmVzcyBwaG9uZV9udW1iZXIgc2hhMjU2X3Bob25lX251bWJlciBmaXJzdF9uYW1lIGxhc3RfbmFtZSIuc3BsaXQoIiAiKSxXdj0iZmlyc3RfbmFtZSBzaGEyNTZfZmlyc3RfbmFtZSBsYXN0X25hbWUgc2hhMjU2X2xhc3RfbmFtZSBzdHJlZXQgc2hhMjU2X3N0cmVldCBjaXR5IHJlZ2lvbiBjb3VudHJ5IHBvc3RhbF9jb2RlIi5zcGxpdCgiICIpO2Z1bmN0aW9uIFh2KGEsYil7aWYoIWIuX3RhZ19tZXRhZGF0YSl7Zm9yKHZhciBjPXt9LGQ9MCxlPTA7ZTxhLmxlbmd0aDtlKyspZCs9WXYoYVtlXSxiLGMpPzE6MDtkPjAmJihiLl90YWdfbWV0YWRhdGE9Yyl9fQpmdW5jdGlvbiBZdihhLGIsYyl7dmFyIGQ9YlthXTtpZihkPT09dm9pZCAwfHxkPT09bnVsbClyZXR1cm4hMTtjW2FdPUFycmF5LmlzQXJyYXkoZCk/ZC5tYXAoZnVuY3Rpb24oKXtyZXR1cm57bW9kZToiYyJ9fSk6e21vZGU6ImMifTtyZXR1cm4hMH1mdW5jdGlvbiBadihhKXtpZihNKDUyMykmJmEpe1h2KFZ2LGEpO2Zvcih2YXIgYj1CYihhLmFkZHJlc3MpLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXTtkJiZYdihXdixkKX12YXIgZT1hLmhvbWVfYWRkcmVzcztlJiZYdihXdixlKX19CmZ1bmN0aW9uICR2KGEsYixjKXtmdW5jdGlvbiBkKGYsZyl7Zz1TdHJpbmcoZykuc3Vic3RyaW5nKDAsMTAwKTtlLnB1c2goIiIrZitlbmNvZGVVUklDb21wb25lbnQoZykpfWlmKCFjKXJldHVybiIiO3ZhciBlPVtdO2QoImkiLFN0cmluZyhhKSk7ZCgiZiIsYik7Yy5tb2RlJiZkKCJtIixjLm1vZGUpO2MuaXNQcmVIYXNoZWQmJmQoInAiLCIxIik7Yy5yYXdMZW5ndGgmJmQoInIiLFN0cmluZyhjLnJhd0xlbmd0aCkpO2Mubm9ybWFsaXplZExlbmd0aCYmZCgibiIsU3RyaW5nKGMubm9ybWFsaXplZExlbmd0aCkpO2MubG9jYXRpb24mJmQoImwiLGMubG9jYXRpb24pO2Muc2VsZWN0b3ImJmQoInMiLGMuc2VsZWN0b3IpO3JldHVybiBlLmpvaW4oIi4iKX07dmFyIGF3PXZvaWQgMDtmdW5jdGlvbiBidygpe2lmKCFhdyl7dmFyIGE9b20oam0uYmEub3AsbmV3IE1hcCk7YXc9bmV3IG9nKGEpfXJldHVybiBhd307CnZhciBjdz1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4gYTtmb3IodmFyIGI9e30sYz1tKE9iamVjdC5rZXlzKGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtlIT09ImFkZHJlc3MiJiZlIT09InBob25lX251bWJlciImJmUhPT0ic2hhMjU2X3Bob25lX251bWJlciImJihiW2VdPWFbZV0pfXJldHVybiBifSxmdz1mdW5jdGlvbihhKXt2YXIgYj1NKDUyMyksYz1bInR2LjEiXSxkPVsidHZkLjEiXSxlPWR3KGEpO2lmKGUpcmV0dXJuIGMucHVzaChlKSx7aGFzVXBkOiExLE9vOmMuam9pbigifiIpLFluOmMuam9pbigifiIpLGVuY3J5cHRpb25LZXlTdHJpbmc6dm9pZCAwLGlpOnt9LG1ldGFkYXRhUGFyYW06Yj9kLmpvaW4oIn4iKTp2b2lkIDB9O3ZhciBmPXt9LGc9MDt2YXIgaD0wLGw9ZXcoYSxmdW5jdGlvbihxLHIsdCl7aCsrO3ZhciB1PXEudmFsdWUsdjsKaWYodCl7dmFyIHg9cisiX18iK2crKzt2PSIke3VzZXJEYXRhLiIreCsifHNoYTI1Nn0iO2ZbeF09dX1lbHNlIHY9ZW5jb2RlVVJJQ29tcG9uZW50KGVuY29kZVVSSUNvbXBvbmVudCh1KSk7cS5pbmRleCE9PXZvaWQgMCYmKHIrPXEuaW5kZXgpO2MucHVzaChyKyIuIit2KTtpZihiKXt2YXIgeT0kdihoLHIscS5tZXRhZGF0YSk7eSYmZC5wdXNoKHkpfX0pLmhhc1VwZCxuPWQuam9pbigifiIpO3ZhciBwPWMuam9pbigifiIpO3JldHVybntoYXNVcGQ6bCxPbzpwLGlpOnt1c2VyRGF0YTpmfSxZbjoidHYuMX4keyIrKHArInwiKyhNKDU1NSk/ImVuY3J5cHRfd2l0aF9tZW1vIjoiZW5jcnlwdCIpKyJ9IiksZW5jcnlwdGlvbktleVN0cmluZzpFKDQzKSxtZXRhZGF0YVBhcmFtOmI/bjp2b2lkIDB9fSxodz1mdW5jdGlvbihhKXtpZighKGEhPW51bGwmJk9iamVjdC5rZXlzKGEpLmxlbmd0aD4wKSlyZXR1cm4hMTsKdmFyIGI9Z3coYSk7cmV0dXJuIGV3KGIsZnVuY3Rpb24oKXt9KS5oYXNVcGR9LGV3PWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP2Z1bmN0aW9uKCl7fTpiO2Zvcih2YXIgYz0hMSxkPSExLGU9bShhKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtpZihnLnZhbHVlKXt2YXIgaD1pd1tnLm5hbWVdO2lmKGgpe3ZhciBsPWp3KGcpO2wmJihjPSEwKTtkPSEwO2IoZyxoLGwpfX19cmV0dXJue2hhc1VwZDpkLGhhc1VwZFRvSGFzaDpjfX0sanc9ZnVuY3Rpb24oYSl7dmFyIGI9a3coYS5uYW1lKSxjPS9eZVxkKyQvLnRlc3QoYS52YWx1ZSksZDtpZihkPWImJiFjKXt2YXIgZT1hLnZhbHVlO2Q9IShsdy50ZXN0KGUpfHx5aS50ZXN0KGUpKX1yZXR1cm4gZH0sa3c9ZnVuY3Rpb24oYSl7cmV0dXJuIG13LmluZGV4T2YoYSkhPT0tMX0sc3c9ZnVuY3Rpb24oYSxiLGMpe2lmKHliKEEuUHJvbWlzZSkpdHJ5e3ZhciBkPSExO3ZhciBlPWd3KGEsZCksZj1udyhlKS50aGVuKGZ1bmN0aW9uKGgpe3ZhciBsPWgueWIsbj1sLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4hU2IocS5uYW1lLCJyYXciKX0pLHA9b3coe3liOm59KTtyZXR1cm57cmVzdWx0OntwYXJhbTpwLnBhcmFtLGhhc1VwZFRvSGFzaDpwLmhhc1VwZFRvSGFzaCxoYXNVcGQ6cC5oYXNVcGQsaGFkRXJyb3I6cC5oYWRFcnJvcixtZXRhZGF0YVBhcmFtOnAubWV0YWRhdGFQYXJhbX0seWI6bH19KTtyZXR1cm4gZi50aGVuKGZ1bmN0aW9uKGgpe3JldHVybiBoLnJlc3VsdH0pfWNhdGNoKGgpe319LHF3PWZ1bmN0aW9uKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gYn0sb3c9ZnVuY3Rpb24oYSl7dmFyIGI9TSg1MjMpLGM9YS55YixkPVsidHYuMSJdLGU9WyJ0dmQuMSJdLGY9ZHcoYyk7aWYoZilyZXR1cm4gZC5wdXNoKGYpLHtwYXJhbTpkLmpvaW4oIn4iKSxoYXNVcGRUb0hhc2g6ITEsaGFzVXBkOiExLGhhZEVycm9yOiEwLG1ldGFkYXRhUGFyYW06Yj9lLmpvaW4oIn4iKTp2b2lkIDB9O3ZhciBnPWMuZmlsdGVyKGZ1bmN0aW9uKHEpe3JldHVybiFqdyhxKX0pLGg9MCxsPWV3KGcsZnVuY3Rpb24ocSxyKXtoKys7dmFyIHQ9cS52YWx1ZSx1PXEuaW5kZXg7dSE9PXZvaWQgMCYmKHIrPXUpO2QucHVzaChyKyIuIit0KTtpZihiKXt2YXIgdj0kdihoLHIscS5tZXRhZGF0YSk7diYmZS5wdXNoKHYpfX0pLG49bC5oYXNVcGRUb0hhc2gscD1sLmhhc1VwZDtyZXR1cm57cGFyYW06ZW5jb2RlVVJJQ29tcG9uZW50KGQuam9pbigifiIpKSwKaGFzVXBkVG9IYXNoOm4saGFzVXBkOnAsaGFkRXJyb3I6ITEsbWV0YWRhdGFQYXJhbTpiP2Uuam9pbigifiIpOnZvaWQgMH19LGR3PWZ1bmN0aW9uKGEpe2lmKGEubGVuZ3RoPT09MSYmYVswXS5uYW1lPT09ImVycm9yX2NvZGUiKXJldHVybiBpdy5lcnJvcl9jb2RlKyIuIithWzBdLnZhbHVlfSxwdz1mdW5jdGlvbihhKXtpZihhLmxlbmd0aD09PTEmJmFbMF0ubmFtZT09PSJlcnJvcl9jb2RlIilyZXR1cm4hMTtmb3IodmFyIGI9bShhKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZTtpZihpd1tkLm5hbWVdJiZkLnZhbHVlKXJldHVybiEwfXJldHVybiExfSxndz1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD8hMTpiO3ZhciBjPVtdO2lmKEEubG9jYXRpb24ucHJvdG9jb2whPT0iaHR0cHM6IilyZXR1cm4gYy5wdXNoKHtuYW1lOiJlcnJvcl9jb2RlIix2YWx1ZToiZTMiLGluZGV4OnZvaWQgMH0pLGM7dmFyIGQ9Yy5wdXNoLGU9ZC5hcHBseSxmPVtdLApnPWYuY29uY2F0LGgsbD1hLl90YWdfbWV0YWRhdGF8fHt9O2g9W10uY29uY2F0KHcodHcoe25hbWU6ImVtYWlsIixyYXc6YS5lbWFpbCxTYTphLnNoYTI1Nl9lbWFpbF9hZGRyZXNzLGFiOmwuZW1haWwsbWQ6bC5zaGEyNTZfZW1haWxfYWRkcmVzc30sdXcpKSx3KHR3KHtuYW1lOiJwaG9uZV9udW1iZXIiLHJhdzphLnBob25lX251bWJlcixTYTphLnNoYTI1Nl9waG9uZV9udW1iZXIsYWI6bC5waG9uZV9udW1iZXIsbWQ6bC5zaGEyNTZfcGhvbmVfbnVtYmVyfSx2dykpKTt2YXIgbj13KGgpLHAscT1hLl90YWdfbWV0YWRhdGF8fHt9LHI9YS5ob21lX2FkZHJlc3N8fHt9LHQ9ci5fdGFnX21ldGFkYXRhfHx7fTtwPVtdLmNvbmNhdCh3KHR3KHtuYW1lOiJmaXJzdF9uYW1lIixyYXc6YS5maXJzdF9uYW1lLFNhOmEuc2hhMjU2X2ZpcnN0X25hbWUsYWI6cS5maXJzdF9uYW1lLG1kOnEuc2hhMjU2X2ZpcnN0X25hbWV9LHd3KHh3KSkpLHcodHcoe25hbWU6Imxhc3RfbmFtZSIscmF3OmEubGFzdF9uYW1lLApTYTphLnNoYTI1Nl9sYXN0X25hbWUsYWI6cS5sYXN0X25hbWUsbWQ6cS5zaGEyNTZfbGFzdF9uYW1lfSx3dyh4dykpKSx3KHR3KHtuYW1lOiJzdHJlZXQiLHJhdzpyLnN0cmVldCxTYTpyLnNoYTI1Nl9zdHJlZXQsYWI6dC5zdHJlZXQsbWQ6dC5zaGEyNTZfc3RyZWV0fSx3dyh5dykpKSx3KHR3KHtuYW1lOiJjaXR5IixyYXc6ci5jaXR5LGFiOnQuY2l0eX0sd3coeXcpKSksdyh0dyh7bmFtZToicG9zdGFsX2NvZGUiLHJhdzpyLnBvc3RhbF9jb2RlLGFiOnQucG9zdGFsX2NvZGV9LHd3KHp3KSkpLHcodHcoe25hbWU6InJlZ2lvbiIscmF3OnIucmVnaW9uLGFiOnQucmVnaW9ufSx3dyh5dykpKSx3KHR3KHtuYW1lOiJjb3VudHJ5IixyYXc6ci5jb3VudHJ5LGFiOnQuY291bnRyeX0sd3coencpKSkpO2Zvcih2YXIgdT13KHApLHY9W10seD1CYihhLmFkZHJlc3N8fHt9KSx5PTA7eTx4Lmxlbmd0aDt5Kyspe2Zvcih2YXIgej14W3ldLEM9ei5fdGFnX21ldGFkYXRhfHx7fSxEPVtdLmNvbmNhdCh3KHR3KHtuYW1lOiJmaXJzdF9uYW1lIiwKcmF3OnouZmlyc3RfbmFtZSxTYTp6LnNoYTI1Nl9maXJzdF9uYW1lLGFiOkMuZmlyc3RfbmFtZSxtZDpDLnNoYTI1Nl9maXJzdF9uYW1lfSx4dykpLHcodHcoe25hbWU6Imxhc3RfbmFtZSIscmF3OnoubGFzdF9uYW1lLFNhOnouc2hhMjU2X2xhc3RfbmFtZSxhYjpDLmxhc3RfbmFtZSxtZDpDLnNoYTI1Nl9sYXN0X25hbWV9LHh3KSksdyh0dyh7bmFtZToic3RyZWV0IixyYXc6ei5zdHJlZXQsU2E6ei5zaGEyNTZfc3RyZWV0LGFiOkMuc3RyZWV0LG1kOkMuc2hhMjU2X3N0cmVldH0seXcpKSx3KHR3KHtuYW1lOiJjaXR5IixyYXc6ei5jaXR5LGFiOkMuY2l0eX0seXcpKSx3KHR3KHtuYW1lOiJwb3N0YWxfY29kZSIscmF3OnoucG9zdGFsX2NvZGUsYWI6Qy5wb3N0YWxfY29kZX0sencpKSx3KHR3KHtuYW1lOiJyZWdpb24iLHJhdzp6LnJlZ2lvbixhYjpDLnJlZ2lvbn0seXcpKSx3KHR3KHtuYW1lOiJjb3VudHJ5IixyYXc6ei5jb3VudHJ5LGFiOkMuY291bnRyeX0sencpKSksST0wO0k8CkQubGVuZ3RoO0krKylEW0ldLmluZGV4PXk7di5wdXNoLmFwcGx5KHYsdyhEKSl9ZS5jYWxsKGQsYyxnLmNhbGwoZixuLHUsdyh2KSkpO2lmKGImJkJwKCkpe3ZhciBHPWMucHVzaCxOPUcuYXBwbHksUz1bXTtTLnB1c2guYXBwbHkoUyxbXS5jb25jYXQodyhBdyh7bmFtZToicmF3X2VtYWlsIixyYXc6YS5lbWFpbCxTYTphLnNoYTI1Nl9lbWFpbF9hZGRyZXNzfSkpLHcoQXcoe25hbWU6InJhd19waG9uZV9udW1iZXIiLHJhdzphLnBob25lX251bWJlcixTYTphLnNoYTI1Nl9waG9uZV9udW1iZXJ9KSkpKTtmb3IodmFyIFc9QmIoYS5hZGRyZXNzfHx7fSksZWE9MDtlYTxXLmxlbmd0aDtlYSsrKXt2YXIgamE9V1tlYV07Uy5wdXNoLmFwcGx5KFMsW10uY29uY2F0KHcoQXcoe25hbWU6InJhd19maXJzdF9uYW1lIixyYXc6amEuZmlyc3RfbmFtZSxTYTpqYS5zaGEyNTZfZmlyc3RfbmFtZX0sZWEpKSx3KEF3KHtuYW1lOiJyYXdfbGFzdF9uYW1lIixyYXc6amEubGFzdF9uYW1lLFNhOmphLnNoYTI1Nl9sYXN0X25hbWV9LAplYSkpLHcoQXcoe25hbWU6InJhd19zdHJlZXQiLHJhdzpqYS5zdHJlZXQsU2E6amEuc2hhMjU2X3N0cmVldH0sZWEpKSkpfWlmKGEuZmlyc3RfbmFtZXx8YS5ob21lX2FkZHJlc3Mpe1MucHVzaC5hcHBseShTLFtdLmNvbmNhdCh3KEF3KHtuYW1lOiJyYXdfZmlyc3RfbmFtZSIscmF3OmEuZmlyc3RfbmFtZSxTYTphLnNoYTI1Nl9maXJzdF9uYW1lfSkpLHcoQXcoe25hbWU6InJhd19sYXN0X25hbWUiLHJhdzphLmxhc3RfbmFtZSxTYTphLnNoYTI1Nl9sYXN0X25hbWV9KSkpKTt2YXIgZmE9YS5ob21lX2FkZHJlc3N8fHt9O1MucHVzaC5hcHBseShTLHcoQXcoe25hbWU6InJhd19zdHJlZXQiLHJhdzpmYS5zdHJlZXQsU2E6ZmEuc2hhMjU2X3N0cmVldH0pKSl9Ti5jYWxsKEcsYyx3KFMpKX1yZXR1cm4gY30sd3c9ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe1AoNjQpO3JldHVybiBhKGIpfX0sQXc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtpZihhLlNhKXJldHVybiBjO2Zvcih2YXIgZD0KQmIoYS5yYXcpLGU9MDtlPGQubGVuZ3RoOysrZSl7dmFyIGY9QncoZFtlXSk7aWYoZiYmIXlpLnRlc3QoZikpaWYoL15lXGQrJC8udGVzdChmKSljLnB1c2goe25hbWU6YS5uYW1lLHZhbHVlOmYsaW5kZXg6Yn0pO2Vsc2V7dmFyIGc9YyxoPWcucHVzaCxsPWEubmFtZSxuO3ZhciBwPUE7dHJ5e249QmkoQXJyYXkuZnJvbShaYihmKSkscCl9Y2F0Y2gocSl7bj0iZTAifWguY2FsbChnLHtuYW1lOmwsdmFsdWU6bixpbmRleDpifSl9fXJldHVybiBjfSx0dz1mdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ9TSg1MjMpLGU9YS5yYXcsZj1kP2EuYWI6dm9pZCAwO0N3KGUsITEpO2EuU2EmJihlJiZQKDkwKSxlPWEuU2EsZj1kP2EubWQ6dm9pZCAwLEN3KGUsITApKTtmb3IodmFyIGc9QmIoZSksaD1CYihmKSxsPTA7bDxnLmxlbmd0aDsrK2wpe3ZhciBuO3ZhciBwPWEubmFtZSxxPWIscj1oW2xdLHQ9QncoZ1tsXSk7aWYodCE9PSIiKWlmKHlpLnRlc3QodCkpe3ImJihyLmlzUHJlSGFzaGVkPSEwKTsKdmFyIHU9e25hbWU6cCx2YWx1ZTp0LGluZGV4OnZvaWQgMH07ciYmKHUubWV0YWRhdGE9cik7bj11fWVsc2V7dmFyIHY9cSh0KSx4PXtuYW1lOnAsdmFsdWU6dixpbmRleDp2b2lkIDB9O3ImJih4Lm1ldGFkYXRhPXIsdiYmKHIucmF3TGVuZ3RoPVN0cmluZyh0KS5sZW5ndGgsci5ub3JtYWxpemVkTGVuZ3RoPXYubGVuZ3RoKSk7bj14fWVsc2Ugbj12b2lkIDA7dmFyIHk9bjt5JiZjLnB1c2goeSl9cmV0dXJuIGN9LEN3PWZ1bmN0aW9uKGEsYil7aWYoemIoYSl8fEFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBjPUJiKGEpLGQ9MDtkPGMubGVuZ3RoOysrZCl7dmFyIGU9QncoY1tkXSksZj15aS50ZXN0KGUpO2ImJiFmJiZQKDg5KTshYiYmZiYmUCg4OCl9fSxEdz1mdW5jdGlvbihhKXt2YXIgYj1hP2d3KGEpOltdO3JldHVybiBvdyh7eWI6Yn0pfSxFdz1mdW5jdGlvbihhKXtyZXR1cm4gYSYmYSE9bnVsbCYmT2JqZWN0LmtleXMoYSkubGVuZ3RoPjAmJnliKEEuUHJvbWlzZSk/Z3coYSkuc29tZShmdW5jdGlvbihiKXtyZXR1cm4gYi52YWx1ZSYmCmt3KGIubmFtZSkmJiF5aS50ZXN0KGIudmFsdWUpfSk6ITF9LEJ3PWZ1bmN0aW9uKGEpe3JldHVybiBhPT1udWxsPyIiOnpiKGEpP0xiKFN0cmluZyhhKSk6ImUwIn0senc9ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZShGdywiIil9LHh3PWZ1bmN0aW9uKGEpe3JldHVybiB5dyhhLnJlcGxhY2UoL1xzL2csIiIpKX0seXc9ZnVuY3Rpb24oYSl7cmV0dXJuIExiKGEucmVwbGFjZShHdywiIikudG9Mb3dlckNhc2UoKSl9LHZ3PWZ1bmN0aW9uKGEpe2E9YS5yZXBsYWNlKC9bXHMtKCkvLl0vZywiIik7YS5jaGFyQXQoMCkhPT0iKyImJihhPSIrIithKTtyZXR1cm4oTSg1OTcpP0h3Okl3KS50ZXN0KGEpP2E6ImUwIn0sdXc9ZnVuY3Rpb24oYSl7dmFyIGI9YS50b0xvd2VyQ2FzZSgpLnNwbGl0KCJAIik7aWYoYi5sZW5ndGg9PT0yKXt2YXIgYz1iWzBdOy9eKGdtYWlsfGdvb2dsZW1haWwpXC4vLnRlc3QoYlsxXSkmJihjPWMucmVwbGFjZSgvXC4vZywiIikpO2M9YysiQCIrYlsxXTtpZihKdy50ZXN0KGMpKXJldHVybiBjfXJldHVybiJlMCJ9LApLdz1mdW5jdGlvbihhKXt0cnl7cmV0dXJuIGEuZm9yRWFjaChmdW5jdGlvbihiKXtiLnZhbHVlJiZrdyhiLm5hbWUpJiYoYi52YWx1ZT1EaShiLnZhbHVlKSl9KSx7eWI6YX19Y2F0Y2goYil7cmV0dXJue3liOltdfX19LG53PWZ1bmN0aW9uKGEpe3JldHVybiBhLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIGIudmFsdWUmJmt3KGIubmFtZSl9KT95YihBLlByb21pc2UpP1Byb21pc2UuYWxsKGEubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiLnZhbHVlJiZrdyhiLm5hbWUpP0FpKGIudmFsdWUpLnRoZW4oZnVuY3Rpb24oYyl7Yi52YWx1ZT1jfSk6UHJvbWlzZS5yZXNvbHZlKCl9KSkudGhlbihmdW5jdGlvbigpe3JldHVybnt5YjphfX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue3liOltdfX0pOnt0aGVuOmZ1bmN0aW9uKGIpe2Ioe3liOltdfSl9fTpQcm9taXNlLnJlc29sdmUoe3liOmF9KX0sR3c9L1swLTlgfiFAIyQlXiYqKClfXC0rPTo7PD4sLj98L1xcW1xdXS9nLEp3PS9eXFMrQFxTK1wuXFMrJC8sCkl3PS9eXCtcZHsxMCwxNX0kLyxIdz0vXlwrXGR7NywxNX0kLyxGdz0vWy5+XS9nLGx3PS9eWzAtOUEtWmEtel8tXXs0M30kLyxMdz1bInJlbSIsInJwbiIsInJmbiIsInJsbiIsInJzYSJdLE13PXt9LGl3PShNdy5lbWFpbD0iZW0iLE13LnBob25lX251bWJlcj0icG4iLE13LmZpcnN0X25hbWU9ImZuIixNdy5sYXN0X25hbWU9ImxuIixNdy5zdHJlZXQ9InNhIixNdy5jaXR5PSJjdCIsTXcucmVnaW9uPSJyZyIsTXcuY291bnRyeT0iY28iLE13LnBvc3RhbF9jb2RlPSJwYyIsTXcuZXJyb3JfY29kZT0iZWMiLE13LnJhd19lbWFpbD0icmVtIixNdy5yYXdfcGhvbmVfbnVtYmVyPSJycG4iLE13LnJhd19maXJzdF9uYW1lPSJyZm4iLE13LnJhd19sYXN0X25hbWU9InJsbiIsTXcucmF3X3N0cmVldD0icnNhIixNdyk7dmFyIG13PU9iamVjdC5mcmVlemUoWyJlbWFpbCIsCiJwaG9uZV9udW1iZXIiLCJmaXJzdF9uYW1lIiwibGFzdF9uYW1lIiwic3RyZWV0Il0pOwp2YXIgUXc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1sdihhKSxkPWZ1bmN0aW9uKHApe3ZhciBxPUNwKGEpO3EmJihjLnRhZ19leHA9cSk7YihwKX0sZT1RKGEsSC5KLmRhKSxmPVEoYSxILkouWWEpLGc9WG8oW0YuRC5tYSxGLkQua2FdKSxoO2E6c3dpdGNoKGUpe2Nhc2UgWC5WLnhhOmNhc2UgWC5WLnpkOmNhc2UgWC5WLlpkOmNhc2UgWC5WLk9iOmNhc2UgWC5WLkZiOmg9ITA7YnJlYWsgYTtkZWZhdWx0Omg9ITF9aWYoaCYmZiYmZylpZihRKGEsSC5KLmZkKSlpZihOdyhhKSlkKGMpO2Vsc2V7dmFyIGw9c3coZiwhMCk7T3cobCxhLGMsZCl9ZWxzZXt2YXIgbjthOnt0cnl7bj1vdyhLdyhndyhmKSkpO2JyZWFrIGF9Y2F0Y2gocCl7fW49dm9pZCAwfWlmKG4pdHJ5e1B3KGMsYSkobil9Y2F0Y2gocCl7fWQoYyl9ZWxzZSBkZWxldGUgYy5lY19tb2RlLGQoYyl9LE53PWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouZGEpO3JldHVybiBiPT09WC5WLkZifHxiPT09WC5WLk9ifSxSdz1mdW5jdGlvbihhLApiKXtyZXR1cm4gYSE9PTF8fFEoYixILkouZGEpPT09WC5WLk9iJiYhTSg0NDUpPyExOiEhUShiLEguSi5mZCl9LFB3PWZ1bmN0aW9uKGEsYil7cmV0dXJuIGZ1bmN0aW9uKGMpe1J3KGMuZW5jcnlwdGlvblJlc3VsdD8xOjAsYil8fChhLmVtPWMucGFyYW0pO2lmKGMuaGFzVXBkKXt2YXIgZD1TdyhiKTtkJiYoYS5lY3NpZD1kKX1NKDUyMykmJmMubWV0YWRhdGFQYXJhbSYmKGEuZW1kPWMubWV0YWRhdGFQYXJhbSk7fX0sU3c9ZnVuY3Rpb24oYSl7aWYoUShhLEguSi5kYSk9PT1YLlYuRmImJgohTSg0NDMpKXt2YXIgYj1RKGEsSC5KLkdhKTtyZXR1cm4gUShhLEguSi56ail8fFR2KGIpfX0sT3c9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYSl0cnl7YS50aGVuKFB3KGMsYikpLnRoZW4oZnVuY3Rpb24oKXtkKGMpfSk7cmV0dXJufWNhdGNoKGUpe31kKGMpfTt2YXIgVHc9T2JqZWN0LmZyZWV6ZSh7Z2NwOiIxIixzc2N0ZToiMSIsY3RfY29va2llX3ByZXNlbnQ6IjEifSk7CnZhciBVdz1mdW5jdGlvbihhLGIpe2F2LmNhbGwodGhpcyxhLGIsMSwhMSl9O3dhKFV3LGF2KTtVdy5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7UXcoYSxmdW5jdGlvbihkKXtRKGEsSC5KLmFqKSYmZGVsZXRlIGQuaXRlbTtRKGEsSC5KLm9iKSYmbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxkLFR3KTt2YXIgZT1nayhiLkljKTtlJiYoZC5fdWlwPWUpO3ZhciBmPSI/IitrdihkKTtjKGYpfSl9O3ZhciBWdz1uZXcgVXcoMjIsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLFd3PW5ldyBVdygyMyxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSksWHc9bmV3IFV3KDYwLFtdKSxZdz1mdW5jdGlvbigpe307d2EoWXcsb3UpO1l3LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEpe3JldHVybiBRKGEsSC5KLmRhKT09PVguVi56ZCYmUShhLEguSi5saik/W3tlbmRwb2ludDpYbyhmcCk/UShhLEguSi5vYik/V3c6Vnc6WHcsbWV0aG9kOmx1fV06W119O3ZhciBadz1uZXcgWXc7Cgp2YXIgJHc9ZnVuY3Rpb24oYSl7aWYoT3AoKT09PTIpcmV0dXJuITE7dmFyIGI9UShhLEguSi5kYSksYz1bWC5WLnhhLFguVi51Yl07TSg1OTMpJiZjLnB1c2goWC5WLllkKTtyZXR1cm4gYy5pbmNsdWRlcyhiKT8hMDohMX0sYXg9ZnVuY3Rpb24oYSl7cmV0dXJuIE0oNTAwKSYmT3AoKSE9PTImJlEoYSxILkouZGEpPT09WC5WLnhhfSxieD1mdW5jdGlvbihhKXt2YXIgYj1IcihhLnByZWZpeCk7Yj09PSJfZ2NsIiYmKGI9IiIpO3JldHVybiBifSxjeD1mdW5jdGlvbihhKXtpZihSKGEsRi5ELlNiKXx8UihhLEYuRC5KZSkpe3ZhciBiPVIoYSxGLkQuR2QpLGM9RWQoUShhLEguSi5HYSksbnVsbCksZD1IcihjLnByZWZpeCk7Yy5wcmVmaXg9ZD09PSJfZ2NsIj8iIjpkO2lmKFIoYSxGLkQuU2IpKXt2YXIgZT1YcyhiLGMsIVEoYSxILkouTm0pLGF4KGEpKTtWKGEsSC5KLk5tLCEwKTtlJiZVKGEsRi5ELnFtLGUpfWlmKFIoYSxGLkQuSmUpKXt2YXIgZj1QcyhiLGMpLlJyO2YmJlUoYSxGLkQuTWwsCmYpfX19LGl4PWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBkeDtzd2l0Y2goUShhLEguSi5kYSkpe2Nhc2UgWC5WLnhhOlUoYSxGLkQuZm0sVXEoITEpLl9ncyk7ZXgoYSk7ZngoYSxiKTtneChhLGIpO2lmKCFiLmpvKCl8fE0oNDIxKSl7dmFyIGM9bm0oam0uYmEuVmUpLGQ9WG8oRi5ELmthKSYmWG8oRi5ELm1hKTtpZihjJiZjLmdjbGlkJiYhZCYmIVEoYSxILkouWGUpKXt2YXIgZT1TdHJpbmcoYy5nY2xpZCksZj1uZXcgZXI7ZnIoZiw2KTtiLkNqKHt2ZXJzaW9uOiJHQ0wiLHRpbWVzdGFtcDowLGdjbGlkOmUscWE6ZixvYTpbNF19KX19YnJlYWs7Y2FzZSBYLlYuT2I6Y2FzZSBYLlYuRmI6ZXgoYSk7ZngoYSxiKTticmVhaztjYXNlIFguVi51YjppZihNKDQ1OCkmJlhvKEYuRC5rYSkmJlEoYSxILkoud2YpKXt2YXIgZz1RKGEsSC5KLkdhKTtoeChhLGIsYngoZykpfWJyZWFrO2Nhc2UgWC5WLllkOmV4KGEpLGZ4KGEsYiksZ3goYSxiKX1iLk90KGEpfSxmeD1mdW5jdGlvbihhLGIpe2lmKFhvKEYuRC5rYSkmJgpRKGEsSC5KLndmKSl7dmFyIGM9UShhLEguSi5HYSksZD1ieChjKSxlPVJzKGQpO1UoYSxGLkQuQmUsZS5FZyk7VShhLEYuRC5EZSxlLldoKTtVKGEsRi5ELkNlLGUuVWgpO00oNDIxKT8oangoYSxiLGMsZCksaHgoYSxiLGQpKTpXcyhkKT9qeChhLGIsYyxkKTpoeChhLGIsZCl9fSxoeD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9JHcoYSk7VHMoYywiZ2NsaWQiLCJnY2xhdyIsZCkuZm9yRWFjaChmdW5jdGlvbihmKXtiLkNqKGYpfSk7Yi5MbygpO2lmKCFjKXt2YXIgZT1PcyhCcihBcigpKT9ScCgpOnt9LE1zKTtlJiZVKGEsRi5ELnJoLGUpfX0sang9ZnVuY3Rpb24oYSxiLGMsZCl7VHMoZCwiYnJhaWRzIiwiZ2NsZ2IiLGF4KGEpKS5mb3JFYWNoKGZ1bmN0aW9uKGcpe2IuanIoZyl9KTtpZighZCl7dmFyIGU9UihhLEYuRC5HZCk7Yz1FZChjLG51bGwpO2MucHJlZml4PWQ7dmFyIGY9UHMoZSxjLCEwKS5RcjtmJiZVKGEsRi5ELkplLGYpfX0sZXg9ZnVuY3Rpb24oYSl7aWYoTSgxNikpe3ZhciBiPQpPKGEuTSxGLkQuemEpO2J8fChiPU9wKCExKT09PTE/QS50b3AubG9jYXRpb24uaHJlZjpBLmxvY2F0aW9uLmhyZWYpO3ZhciBjLGQ9UmooYiksZT1MaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xpZCIpO2lmKCFlKXt2YXIgZj1kLmhhc2gucmVwbGFjZSgiIyIsIiIpO2U9ZXx8SWooZiwiZ2NsaWQiLCExKX0oYz1lP2UubGVuZ3RoOnZvaWQgMCkmJlUoYSxGLkQuemwsYyl9fSxneD1mdW5jdGlvbihhLGIpe3ZhciBjPVhvKEYuRC5rYSkmJlhvKEYuRC5tYSk7aWYoIWIuam8oKXx8TSg0MjEpKXt2YXIgZDt2YXIgZTtiOnt2YXIgZixnPUEsaD1bXTt0cnl7Zy5uYXZpZ2F0aW9uJiZnLm5hdmlnYXRpb24uZW50cmllcyYmKGg9Zy5uYXZpZ2F0aW9uLmVudHJpZXMoKSl9Y2F0Y2goQyl7fWY9aDt2YXIgbD17fTt0cnl7Zm9yKHZhciBuPWYubGVuZ3RoLTE7bj49MDtuLS0pe3ZhciBwPWZbbl0mJmZbbl0udXJsO2lmKHApe3ZhciBxPShuZXcgVVJMKHApKS5zZWFyY2hQYXJhbXMscj1xLmdldCgiZ2NsaWQiKXx8CnZvaWQgMCx0PXEuZ2V0KCJnY2xzcmMiKXx8dm9pZCAwO2lmKHIpe2wuZ2NsaWQ9cjt0JiYobC5WaD10KTtlPWw7YnJlYWsgYn19fX1jYXRjaChDKXt9ZT1sfXZhciB1PWUsdj11LmdjbGlkLHg9dS5WaCx5O2lmKHYmJih4PT09dm9pZCAwfHx4PT09ImF3Inx8eD09PSJhdy5kcyJ8fFlmKDgpJiZ4PT09ImF3LmR2IikpaWYodiE9PXZvaWQgMCl7dmFyIHo9bmV3IGVyO2ZyKHosMik7ZnIoeiwzKTt5PXt2ZXJzaW9uOiJHQ0wiLHRpbWVzdGFtcDowLGdjbGlkOnYscWE6eixvYTpbM119fWVsc2UgeT12b2lkIDA7ZWxzZSB5PXZvaWQgMDtkPXk7ZCYmKCFjJiZRKGEsSC5KLlhlKSYmKGQuZ2NsaWQ9IjAiKSxiLkNqKGQpLGIuTG8oKSl9fSxkeD1mdW5jdGlvbigpe3RoaXMuSD1bXTt0aGlzLks9W107dGhpcy5OPXZvaWQgMH07az1keC5wcm90b3R5cGU7ay5Daj1mdW5jdGlvbihhKXtRcih0aGlzLkgsYSl9O2suanI9ZnVuY3Rpb24oYSl7UXIodGhpcy5LLGEpfTtrLmpvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSy5sZW5ndGg+CjB9O2suTG89ZnVuY3Rpb24oKXt0aGlzLk4hPT0hMSYmKHRoaXMuTj0hMSl9O2sueW89ZnVuY3Rpb24oYSxiLGMsZCl7ZD1kPT09dm9pZCAwPyExOmQ7aWYoYS5sZW5ndGgpe3ZhciBlPVtdLGY9W10sZz1bXTthLmZvckVhY2goZnVuY3Rpb24oaCl7ZS5wdXNoKGguZ2NsaWQpO3ZhciBsLG47Zi5wdXNoKChuPShsPWgucWEpPT1udWxsP3ZvaWQgMDpsLmdldCgpKSE9bnVsbD9uOjApO2cucHVzaChWcyhoLm9hfHxbMF0pKX0pO2UubGVuZ3RoJiZVKGIsYy5pZCxlLmpvaW4oIi4iKSk7ZHx8KGYubGVuZ3RoJiZVKGIsYy5xYSxmLmpvaW4oIi4iKSksZy5sZW5ndGgmJlUoYixjLm9hLGcuam9pbigiLiIpKSl9fTtrLk90PWZ1bmN0aW9uKGEpe3RoaXMuSC5sZW5ndGg+MCYmdGhpcy55byh0aGlzLkgsYSx7aWQ6Ri5ELmxiLHFhOkYuRC5CZCxvYTpGLkQuQ2R9LHRoaXMuTik7KHRoaXMuSC5sZW5ndGg9PT0wfHxNKDQyMSkpJiZ0aGlzLnlvKHRoaXMuSyxhLHtpZDpGLkQuU2IscWE6Ri5ELmZoLApvYTpGLkQuZ2h9KX07dmFyIGt4PWZ1bmN0aW9uKCl7aHUuY2FsbCh0aGlzLCJJbmplY3RBZHNTY3JpcHQiKX07d2Eoa3gsaHUpO2t4LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiEwfTtreC5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiExfTtreC5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyl7YW8oYS5GbyxBLEIsYixmdW5jdGlvbigpe3JldHVybiB2b2lkIGEuamYoKX0sZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBhLnJkKHZvaWQgMCl9LGM9PW51bGw/dm9pZCAwOmMuYWYpfHxYbihhLkZvLGIucmVwbGFjZSgiJmZtdD00JiIsIiZmbXQ9MyYiKSxmdW5jdGlvbigpe3JldHVybiB2b2lkIGEuamYoKX0sZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBhLnJkKHZvaWQgMCl9LGM9PW51bGw/dm9pZCAwOmMuYWYpfTt2YXIgbHg9bmV3IGt4O3ZhciBteD1PYmplY3QuZnJlZXplKHthdHRyaWJ1dGlvbnNyYzoiIn0pLG54PU9iamVjdC5mcmVlemUoe2V2ZW50U291cmNlRWxpZ2libGU6ITEsdHJpZ2dlckVsaWdpYmxlOiEwfSk7ZnVuY3Rpb24gb3goKXt2YXIgYT1YTUxIdHRwUmVxdWVzdC5wcm90b3R5cGU7cmV0dXJuIGEmJnliKGEuc2V0QXR0cmlidXRpb25SZXBvcnRpbmcpfTt2YXIgcHg9T2JqZWN0LmZyZWV6ZSh7Y2FjaGU6Im5vLXN0b3JlIixjcmVkZW50aWFsczoiaW5jbHVkZSIsbWV0aG9kOiJHRVQiLGtlZXBhbGl2ZTohMCxyZWRpcmVjdDoiZm9sbG93In0pOwpmdW5jdGlvbiBxeChhLGIsYyxkLGUsZil7aWYoIXliKEEuZmV0Y2gpKXJldHVybiBmPT1udWxsfHxmKHZvaWQgMCx2b2lkIDApLCExO3ZhciBnPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scHgpO2ImJihnLmJvZHk9YixnLm1ldGhvZD0iUE9TVCIpO25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZyxkKTtBLmZldGNoKGEsZykudGhlbihmdW5jdGlvbihoKXtpZihoLm9rKXtpZihoLmJvZHkpe3ZhciBsPWguYm9keS5nZXRSZWFkZXIoKSxuPW5ldyBUZXh0RGVjb2RlcjtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocCl7ZnVuY3Rpb24gcSgpe2wucmVhZCgpLnRoZW4oZnVuY3Rpb24ocil7dmFyIHQ7dD1yLmRvbmU7dmFyIHU9bi5kZWNvZGUoci52YWx1ZSx7c3RyZWFtOiF0fSk7dT1jLlIrdTtmb3IodmFyIHY9dS5pbmRleE9mKCJcblxuIik7diE9PS0xOyl7dmFyIHg9WmcseTthOnt2YXIgej1tKHUuc3Vic3RyaW5nKDAsdikuc3BsaXQoIlxuIikpLEM9CnoubmV4dCgpLnZhbHVlLEQ9ei5uZXh0KCkudmFsdWU7aWYoU2IoQywiZXZlbnQ6IG1lc3NhZ2UiKSYmU2IoRCwiZGF0YTogIikpe3ZhciBJPUQuc3Vic3RyaW5nKDYpO3RyeXt5PUpTT04ucGFyc2UoSSk7YnJlYWsgYX1jYXRjaChHKXt9fXk9dm9pZCAwfXgoYyx5KTt1PXUuc3Vic3RyaW5nKHYrMik7dj11LmluZGV4T2YoIlxuXG4iKX1jLlI9dTt0PyhlPT1udWxsfHxlKGgpLHAoKSk6cSgpfSkuY2F0Y2goZnVuY3Rpb24oKXtlPT1udWxsfHxlKGgpO3AoKX0pfXEoKX0pfWU9PW51bGx8fGUoaCl9ZWxzZSBmPT1udWxsfHxmKGgsdm9pZCAwKX0pLmNhdGNoKGZ1bmN0aW9uKGgpe2Y9PW51bGx8fGYodm9pZCAwLGgpfSk7cmV0dXJuITB9O3ZhciByeD1mdW5jdGlvbihhKXtodS5jYWxsKHRoaXMsIkZldGNoUmljaFJlc3BvbnNlIiwxKTt0aGlzLk49YX07d2EocngsaHUpO3J4LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiB5YihBLmZldGNoKX07cngucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMH07cngucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMpe3F4KGIsYz09bnVsbD92b2lkIDA6Yy5ib2R5LHRoaXMuTixjPT1udWxsP3ZvaWQgMDpjLkdiLGEucGUsZnVuY3Rpb24oZCxlKXthLm9uRmFpbHVyZShlKX0pfTsKdmFyIHN4PWZ1bmN0aW9uKGEsYil7dmFyIGM9dm9pZCAwO2EgaW5zdGFuY2VvZiBrdT9jPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sbGQpOmEgaW5zdGFuY2VvZiByeCYmKGM9e30sb3goKSYmKGMuYXR0cmlidXRpb25SZXBvcnRpbmc9bngpKTshYiYmYyYmKGMuY3JlZGVudGlhbHM9Im9taXQiLGMubW9kZT0iY29ycyIpO3JldHVybiBjfSx0eD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1iLm1ldGhvZDtRdyhhLGZ1bmN0aW9uKGYpe3ZhciBnPVEoYSxILkoub2IpLGg9WG8oZnApLGw9ZSBpbnN0YW5jZW9mIGl1PzM6ZSBpbnN0YW5jZW9mIGt4P2M9PT01fHxjPT09OD8zOjQ6ZSBpbnN0YW5jZW9mIGt1PyFnJiZoPzM6ODplIGluc3RhbmNlb2Ygcng/NzotMTtlIGluc3RhbmNlb2Yga3gmJmw9PT0zPyhmLmZtdD00LGYucmZtdD0zKTpmLmZtdD1sO25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZixjPT09NjY/e2djcDoiNCJ9Omd8fGM9PT04fHxjPT09NjU/ClR3Ont9KTt2YXIgbj1laVtGLkQuZWhdO24mJihmW25dPWMpO2lmKE0oNTY5KSl7dmFyIHA9Yi5DdCxxPXAuamsuZmlsdGVyKGZ1bmN0aW9uKHYpe3JldHVybiB2WzBdIT09dm9pZCAwfSkubWFwKGZ1bmN0aW9uKHYpe3JldHVybiB2WzBdLmVuZHBvaW50LmVuZHBvaW50fSk7cS5sZW5ndGg+MCYmKHEucHVzaChwLm1rWzBdLmVuZHBvaW50LmVuZHBvaW50KSxmLmVwcD1xLnNvcnQoZnVuY3Rpb24odix4KXtyZXR1cm4gdi14fSkuam9pbigifiIpKX12YXIgcj0iPyIra3YoZiksdD1zeChlLGgpLHU7dT0oZSBpbnN0YW5jZW9mIGl1fHxlIGluc3RhbmNlb2Yga3gpJiZYbygiYWRfdXNlcl9kYXRhIik/bXg6dm9pZCAwO2Qocix7R2I6dCxhZjp1fSl9KX07dmFyIHV4PWZ1bmN0aW9uKGEsYil7YXYuY2FsbCh0aGlzLGEsYiwyKX07d2EodXgsYXYpO3V4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjKXt0eChhLGIsdGhpcy5lbmRwb2ludCxjKX07dmFyIHZ4PW5ldyB1eCg1LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSx3eD1uZXcgdXgoNixbXSkseHg9bmV3IHV4KDYzLFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSx5eD1uZXcgdXgoNjUsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLHp4PW5ldyB1eCg4LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSxBeD1uZXcgdXgoNjYsW10pLEJ4PW5ldyB1eCg3NCxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSk7dmFyIEN4PWZ1bmN0aW9uKCl7WWcuYXBwbHkodGhpcyxhcmd1bWVudHMpfTt3YShDeCxZZyk7Q3gucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiKXtaYyhhLHZvaWQgMCwkZyh0aGlzLGIpLGIuYXR0cmlidXRpb25fcmVwb3J0aW5nJiZveCgpP214Ont9KX07Q3gucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLmF0dHJpYnV0aW9uX3JlcG9ydGluZyYmb3goKT97YXR0cmlidXRpb25SZXBvcnRpbmc6bnh9Ont9LGQ9JGcodGhpcyxiKTtiLnByb2Nlc3NfcmVzcG9uc2U/cXgoYSx2b2lkIDAsdGhpcyxjLHZvaWQgMCxkKTptZChhLHZvaWQgMCxjLHZvaWQgMCxkKX07dmFyIER4PWZ1bmN0aW9uKCl7Q3guYXBwbHkodGhpcyxhcmd1bWVudHMpfTt3YShEeCxDeCk7RHgucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiKXtDeC5wcm90b3R5cGUuSC5jYWxsKHRoaXMsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGIse3Byb2Nlc3NfcmVzcG9uc2U6ITF9KSl9O3ZhciBFeD1mdW5jdGlvbigpe307d2EoRXgsb3UpO0V4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEpe2lmKFEoYSxILkouZGEpIT09WC5WLnhhKXJldHVybltdO3ZhciBiPVhvKGZwKSxjPSEhUShhLEguSi5vYiksZD0hIVEoYSxILkouRWMpLGU9W3tlbmRwb2ludDpiP2Q/Yz95eDp4eDpjP3p4OnZ4Ond4LG1ldGhvZDpuZCgpP2I/TSg0OTApP2M/bnU6bmV3IHJ4KG5ldyBEeCk6bHg6bnU6bHV9XSxmPWI/Yz92b2lkIDA6eng6QXg7ZiYmZS5wdXNoKHtlbmRwb2ludDpmLG1ldGhvZDpudX0pO3JldHVybiBlfTtFeC5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXtyZXR1cm4gUShhLEguSi5kYSk9PT1YLlYueGEmJldqKCkmJiFRKGEsSC5KLkVjKSYmTSg1NjkpJiZYbyhmcCk/W1t7ZW5kcG9pbnQ6QngsbWV0aG9kOm51fV1dOltdfTt2YXIgRng9bmV3IEV4O3ZhciBHeD1mdW5jdGlvbihhLGIpe2d1LmNhbGwodGhpcyxhLGIsMSwhMSwzKX07d2EoR3gsZ3UpO0d4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1sdihhKSxlPSI/IitrdihkKTtjKGUse0diOmxkfSl9O3ZhciBIeD1uZXcgR3goNTQsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLEl4PW5ldyBHeCg1NSxbXSksSng9ZnVuY3Rpb24oKXt9O3dhKEp4LG91KTtKeC5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXtyZXR1cm5be2VuZHBvaW50Okh4LksoYSk/SHg6SXgsbWV0aG9kOm51fV19O3ZhciBLeD1uZXcgSng7CnZhciBMeD1mdW5jdGlvbigpe2F2LmNhbGwodGhpcyw5LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdLDEpfTt3YShMeCxhdik7THgucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKGEpe3JldHVybiBRKGEsSC5KLmRhKT09PVguVi5aZH07THgucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXM7UXcoYSxmdW5jdGlvbihlKXt2YXIgZj1laVtGLkQuZWhdO2YmJihlW2ZdPWQuZW5kcG9pbnQpO2UuZ2NwPTE7ZS5jdF9jb29raWVfcHJlc2VudD0xO2UuZm10PWIubWV0aG9kIGluc3RhbmNlb2Yga3U/ODozO3ZhciBnPSI/IitrdihlKTtjKGcse0diOmxkfSl9KX07dmFyIE14PW5ldyBMeCxOeD1mdW5jdGlvbigpe307d2EoTngsb3UpO054LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuW3tlbmRwb2ludDpNeCxtZXRob2Q6bnV9LHtlbmRwb2ludDpNeCxtZXRob2Q6bHV9XX07dmFyIE94PW5ldyBOeDt2YXIgUHg9WzY4XTt2YXIgUXg9ZnVuY3Rpb24oYSxiKXt0aGlzLkg9YTt0aGlzLnRpbWVvdXRNcz1iO3RoaXMuUmI9dm9pZCAwfSxSeD1mdW5jdGlvbihhKXthLlJifHwoYS5SYj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5IKCk7YS5SYj12b2lkIDB9LGEudGltZW91dE1zKSl9LFRuPWZ1bmN0aW9uKGEpe2EuUmImJihjbGVhclRpbWVvdXQoYS5SYiksYS5SYj12b2lkIDApfTt2YXIgU3g9ZnVuY3Rpb24oKXt2YXIgYT1OZig2NiwwKTt0aGlzLks9W107dGhpcy5SPWE7dGhpcy5IPVlhKCl9LFV4PWZ1bmN0aW9uKGEpe3ZhciBiPVR4O2IuSy5wdXNoKGEpO2IuTnx8KGIuTj1mdW5jdGlvbigpe2Zvcih2YXIgYz1tKGIuSyksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7dHJ5e2UoKX1jYXRjaChsKXt9fWZvcih2YXIgZj1tKGIuSC52YWx1ZXMoKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPXZvaWQgMDsoaD1nLnZhbHVlLndlKT09bnVsbHx8VG4oaCl9Yi5ILmNsZWFyKCl9LCRjKEEsInBhZ2VoaWRlIixiLk4pKX0sVng9ZnVuY3Rpb24oYSl7dmFyIGI9YS5tYXRjaChNbilbM118fG51bGwsYz0oYj9kZWNvZGVVUkkoYik6Yil8fCIiLGQ9UG4oYSwibGFiZWwiKXx8IiIsZT1QbihhLCJyYW5kb20iKXx8IiI7cmV0dXJuIGMrIjoiK0xuKGQpKyI6IitMbihlKX0sV3g9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVR4LAplPVZ4KGEpO2lmKCEoZC5ILmhhcyhlKXx8ZC5ILnNpemU+PWQuUikpe3ZhciBmPXt9O2ImJmI+MCYmYyYmKGYud2U9bmV3IFF4KGMsYikpO2QuSC5zZXQoZSxmKTt2YXIgZzsoZz1mLndlKT09bnVsbHx8UngoZyl9fSxVbj1mdW5jdGlvbihhLGIpe3ZhciBjPVZ4KGIpLGQsZTsoZD1hLkguZ2V0KGMpKT09bnVsbHx8KGU9ZC53ZSk9PW51bGx8fFRuKGUpO2EuSC5kZWxldGUoYyl9O1N4LnByb3RvdHlwZS5nZXRTaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSC5zaXplfTsKdmFyIFh4PWZ1bmN0aW9uKGEsYil7dmFyIGMsZD0oYz1RKGEsSC5KLmduKSk9PW51bGw/dm9pZCAwOmNbYi5wYl07cmV0dXJuIGQhPT12b2lkIDAmJmQ+PWIuT2d9LFl4PWZ1bmN0aW9uKGEsYil7aWYoUShhLEguSi5kYSk9PT1YLlYueGEmJiFRKGEsSC5KLkVjKSYmWHgoYSxudikmJiEoYjw9MCkpcmV0dXJuIG5ldyBReChmdW5jdGlvbigpe3J2KG52KX0sYil9LFp4PWZ1bmN0aW9uKGEsYixjKXtRKGIsSC5KLmRhKSE9PVguVi54YXx8UShiLEguSi5FYyl8fChUeHx8KFR4PW5ldyBTeCxYeChiLG92KSYmVXgoZnVuY3Rpb24oKXt2YXIgZDtydihvdiwoZD1UeCk9PW51bGw/dm9pZCAwOmQuZ2V0U2l6ZSgpKX0pKSxYeChiLG52KT9XeChhLGMsZnVuY3Rpb24oKXtydihudik7dmFyIGQ7KGQ9VHgpPT1udWxsfHxVbihkLGEpfSk6V3goYSkpfSxUeDsKdmFyICR4PWZ1bmN0aW9uKGEsYixjLGQsZSl7ZT1lPT09dm9pZCAwPzA6ZTtpZihkKXt2YXIgZj1RKGEsSC5KLkViKTtiPWIuTGEoe3JhbmRvbTpmK2UsZGF0YTpkfSl9cmV0dXJuW3tlbmRwb2ludDpiLG1ldGhvZDpjfSx7ZW5kcG9pbnQ6YixtZXRob2Q6bHV9XX0sYXk9ZnVuY3Rpb24oYSxiLGMsZCl7YXYuY2FsbCh0aGlzLGEsYiwxLGMpO3RoaXMuTj1kfTt3YShheSxhdik7YXkucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVuZHBvaW50PT09NjgmJlEoYSxILkoub2IpPyExOiEwfTtheS5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9bHYoYSk7dGhpcy5OJiZuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGQsdGhpcy5OKTt2YXIgZT1laVtGLkQuZWhdO2UmJihkW2VdPXRoaXMuZW5kcG9pbnQpO3RoaXMuZW5kcG9pbnQhPT02OCYmKGRlbGV0ZSBkLmdjbGF3LGRlbGV0ZSBkLmdjbGF3X3NyYyk7dmFyIGY9dm9pZCAwO1EoYSwKSC5KLm9iKT8oZC5nY3A9MSxkLmN0X2Nvb2tpZV9wcmVzZW50PTEpOnRoaXMuZW5kcG9pbnQ9PT02OCYmKGQuZ2NwPTUsYi5tZXRob2QgaW5zdGFuY2VvZiBrdSYmKGQuZm10PTgsZj1sZCkpO3ZhciBnPSI/IitrdihkKTtjKGcsZj97R2I6Zn06e30pfTtheS5wcm90b3R5cGUuTGE9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBheSh0aGlzLmVuZHBvaW50LHRoaXMuWix0aGlzLmphLGEpfTt2YXIgYnk9bmV3IGF5KDksWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0sITApLGN5PW5ldyBheSg2OCxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSwhMSksZHk9ZnVuY3Rpb24oKXt9O3dhKGR5LG91KTtkeS5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXt2YXIgYj1ndihhKTtyZXR1cm4gJHgoYSxieSxRKGEsSC5KLm9iKT9udTpseCxiPT1udWxsP3ZvaWQgMDpiWzBdKX07ZHkucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9Z3YoYSksYz1bXTtNKDQ1OCkmJiFRKGEsSC5KLm9iKSYmCmMucHVzaCgkeChhLGN5LG51LGI9PW51bGw/dm9pZCAwOmJbMF0pKTtpZihiJiZiLmxlbmd0aD4xKWZvcih2YXIgZD1RKGEsSC5KLm9iKT9udTpseCxlPTE7ZTxiLmxlbmd0aDsrK2UpYy5wdXNoKCR4KGEsYnksZCxiW2VdLGUpKTtyZXR1cm4gY307dmFyIGV5PW5ldyBkeTsKdmFyIGd5PWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIodil7cmV0dXJuIHYuc3BsaXQoIn4iKS5maWx0ZXIoZnVuY3Rpb24oeCl7dmFyIHk9eC5zcGxpdCgiLiIpWzBdO3JldHVybiFMdy5zb21lKGZ1bmN0aW9uKHope3JldHVybiBTYih5LHopfSl9KS5qb2luKCJ+Iil9aWYoTncoYSkmJlEoYSxILkouZmQpKXt2YXIgYz1RKGEsSC5KLllhKSxkPUJwKCksZT1ndyhjLGQpLGY9ZS5zb21lKGZ1bmN0aW9uKHYpe3JldHVybiBTYih2Lm5hbWUsInJhdyIpfSksZz1mdyhlKSxoPWcuT28sbD1nLmlpLG49Zy5oYXNVcGQscD1nLlluLHE9Zy5lbmNyeXB0aW9uS2V5U3RyaW5nLHI9Zy5tZXRhZGF0YVBhcmFtLHQ9W107UncoMSxhKXx8dC5wdXNoKCImZW09IitiKGgpKTt0LnB1c2goIiZlbWU9IitwKTt2YXIgdTtyZXR1cm4gdT17aWk6bCxJdDp0LHN2OmUsWG46cixlbmNyeXB0aW9uS2V5U3RyaW5nOnEsVnI6ZnVuY3Rpb24odil7dmFyIHg9ZnkoYSx1KSx5PXN3KFEoYSxILkouWWEpLCEwLCEwKTtJdSh5LApmdW5jdGlvbih6KXtpZighUncoMSxhKSl7dmFyIEM9KHo9PW51bGw/dm9pZCAwOnoucGFyYW0pfHxvdyh7eWI6W119KS5wYXJhbTt4LmVtPUN9dih4KX0pfSxoYXNVcGQ6bixwZjp2b2lkIDAscmF3UGlpQWRkZWQ6Zn19fSxmeT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9KGM9Yi5wZikhPW51bGw/YzozLGU9e2d0bTpkdSh7bWM6UShhLEguSi5OYiksVGc6YS5NLmlzR3RtRXZlbnQsZWY6UShhLEguSi5DYykscGY6ZH0pfTtiLlhuJiYoZS5lbWQ9Yi5Ybik7aWYoYi5oYXNVcGQpe3ZhciBmPQpTdyhhKTtmJiYoZS5lY3NpZD1mKX1iLnJhd1BpaUFkZGVkJiYoZVsiZ2FwLnJwIl09IjEiKTtyZXR1cm4gZX07dmFyIGRnO2Z1bmN0aW9uIGh5KGEsYil7dmFyIGM7KGM9ZGcpPT1udWxsfHwkZihjLkgsYSxiKX07dmFyIGl5PUFhKFsiLyJdKSxqeT1mdW5jdGlvbihhKXt0aGlzLkg9YTt0aGlzLmZhaWx1cmVUeXBlPXZvaWQgMH07ankucHJvdG90eXBlLmlvPWZ1bmN0aW9uKGEsYixjKXt0cnl7dmFyIGQ9dGhpcy5ILmFjdGl2ZTtkPyhkLnBvc3RNZXNzYWdlKHt0eXBlOjEsY29tbWFuZDphfSksYih7ZGF0YToiIn0pKTpjKHtmYWlsdXJlVHlwZToxMyxkYXRhOiIifSl9Y2F0Y2goZSl7Yyh7ZmFpbHVyZVR5cGU6MTEsZGF0YTplLm1lc3NhZ2V9KX19O3ZhciBreT1mdW5jdGlvbihhLGIpe3RoaXMuZmFpbHVyZVR5cGU9YTt0aGlzLkg9Yn07a3kucHJvdG90eXBlLmlvPWZ1bmN0aW9uKGEsYixjKXtjKHtmYWlsdXJlVHlwZTp0aGlzLmZhaWx1cmVUeXBlLGRhdGE6ImYiK3RoaXMuZmFpbHVyZVR5cGUrKCJ0IisoKG5ldyBEYXRlKS5nZXRUaW1lKCktdGhpcy5IKSl9KX07CnZhciBueT1mdW5jdGlvbihhKXt2YXIgYj10aGlzO3RoaXMuaW5pdFRpbWU9KG5ldyBEYXRlKS5nZXRUaW1lKCk7dGhpcy5IPW5ldyBreSgxNSx0aGlzLmluaXRUaW1lKTt2YXIgYz1uZXcgUHJvbWlzZShmdW5jdGlvbihlKXtBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlKCl9LDIwKX0pLGQ9bHkoYSkudGhlbihmdW5jdGlvbihlKXtiLkg9bmV3IGp5KGUpO215KGIsZSl9KS5jYXRjaChmdW5jdGlvbigpe2IuSD1uZXcga3koNCxiLmluaXRUaW1lKX0pO3RoaXMuSz1Qcm9taXNlLnJhY2UoW2MsZF0pfSxteT1mdW5jdGlvbihhLGIpe3ZhciBjPWZ1bmN0aW9uKGQpe2QmJmQuYWRkRXZlbnRMaXN0ZW5lcigic3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKCl7aWYoZC5zdGF0ZT09PSJyZWR1bmRhbnQiKXt2YXIgZT1iLmFjdGl2ZTtlJiZlLnN0YXRlIT09InJlZHVuZGFudCJ8fChhLkg9bmV3IGt5KDEwLGEuaW5pdFRpbWUpKX19KX07YyhiLmFjdGl2ZSk7YyhiLndhaXRpbmcpO2MoYi5pbnN0YWxsaW5nKTsKYi5hZGRFdmVudExpc3RlbmVyKCJ1cGRhdGVmb3VuZCIsZnVuY3Rpb24oKXtjKGIuaW5zdGFsbGluZyl9KX07bnkucHJvdG90eXBlLmRlbGVnYXRlPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzO3RoaXMuSy50aGVuKGZ1bmN0aW9uKCl7ZC5ILmlvKGEsYixjKX0pfTtueS5wcm90b3R5cGUuZ2V0U3RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gMn07CnZhciBseT1mdW5jdGlvbihhKXt2YXIgYixjPUxmKDExKTtjPUxmKDEwKTtiPWM7dmFyIGQ9e3Njb3BlOihUYihhLmhyZWYsIi8iKT9hLmhyZWYuc2xpY2UoMCwtMSk6YS5ocmVmKSsiL18vc2VydmljZV93b3JrZXIifTtiJiYoZC51cGRhdGVWaWFDYWNoZT0iYWxsIik7dmFyIGUsZj1veShhLGIpLGc9bmV3IE1hcChbWyJwYXRoIixhLnBhdGhuYW1lXV0pLGg9SnAoa2MoZikudG9TdHJpbmcoKSk7ZT1McChoLnprLGgucGFyYW1zLGguZnJhZ21lbnQsZyk7dmFyIGw9SWMoKSxuPWtjKGUpO3RyeXtyZXR1cm4gbC5yZWdpc3RlcihuLGQpfWNhdGNoKHApe3RyeXtyZXR1cm4gbC5yZWdpc3RlcihuLnRvU3RyaW5nKCksZCl9Y2F0Y2gocSl7cmV0dXJuIFByb21pc2UucmVqZWN0KHEpfX19OwpmdW5jdGlvbiBveShhLGIpe2Zvcih2YXIgYz1LcChpeSksZD1hLnBhdGhuYW1lLnNwbGl0KCIvIikuZmlsdGVyKGZ1bmN0aW9uKGgpe3JldHVybiBoLmxlbmd0aD4wfSksZT1bXS5jb25jYXQodyhkKSxbIl8iLCJzZXJ2aWNlX3dvcmtlciIsYiwic3cuanMiXSksZj1tKGUpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWM9TXAoYyxnLnZhbHVlKTtyZXR1cm4gY307ZnVuY3Rpb24gcHkoYSl7dmFyIGI9bm0oam0uYmEuT2gpLGM9Yj09bnVsbD92b2lkIDA6YlthXTtjfHxhIT09ImxpdGUifHwoYz1iPT1udWxsP3ZvaWQgMDpiLmZ1bGwpO3JldHVybiBjfXZhciBxeT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9cHkoImZ1bGwiKTtkP2QuZGVsZWdhdGUoYSxiLGMpOmMoe2ZhaWx1cmVUeXBlOjE2fSl9O2Z1bmN0aW9uIHJ5KGEsYixjLGQsZSl7cXkoe2NvbW1hbmRUeXBlOjAscGFyYW1zOnt1cmw6YSxtZXRob2Q6MSx0ZW1wbGF0ZXM6Yixib2R5OiIiLHByb2Nlc3NSZXNwb25zZTohMSxlbmNyeXB0aW9uS2V5U3RyaW5nOmUsc29SZWZlcnJlcjpBLmxvY2F0aW9uLmhyZWZ9fSxjLGZ1bmN0aW9uKGYpe2QoZi5mYWlsdXJlVHlwZSxmLmRhdGEpfSl9O3ZhciBzeT1mdW5jdGlvbihhKXtodS5jYWxsKHRoaXMsIlNlcnZpY2VXb3JrZXJGcmFtZWxlc3MiKTt0aGlzLk49YX07d2Eoc3ksaHUpO3N5LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbigpe3JldHVybiEwfTtzeS5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVybiExfTtzeS5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXM7cnkoYix0aGlzLk4uaWksZnVuY3Rpb24oKXthLmpmKCl9LGZ1bmN0aW9uKGQpe2MuTi5wZj1kO2EucmQodm9pZCAwKX0sdGhpcy5OLmVuY3J5cHRpb25LZXlTdHJpbmcpfTsKdmFyIHR5PWZ1bmN0aW9uKGEpe2F2LmNhbGwodGhpcyxhLFsiYWRfdXNlcl9kYXRhIiwiYWRfc3RvcmFnZSJdLDEsITEpfTt3YSh0eSxhdik7dHkucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXM7UXcoYSxmdW5jdGlvbihlKXt2YXIgZj1RKGEsSC5KLnBqKSxnPWZ1bmN0aW9uKCl7dmFyIG49a3YoZSk7ZiYmYi5tZXRob2QgaW5zdGFuY2VvZiBzeSYmKG4rPWYuSXQuam9pbigiIikpO2Mobix7R2I6bGR9KX07aWYoZC5lbmRwb2ludD09PTIxfHxkLmVuZHBvaW50PT09NzMpe3ZhciBoPWdrKGIuSWMpO2gmJihlLl91aXA9aCl9aWYoZiYmKG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZSxmeShhLGYpKSwhKGIubWV0aG9kIGluc3RhbmNlb2Ygc3kpKSl7dmFyIGw7Zi5wZj0obD1mLnBmKSE9bnVsbD9sOjE3O2YuVnIoZnVuY3Rpb24obil7bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxlLG4pO2coKX0pO3JldHVybn1nKCl9KX07dHkucHJvdG90eXBlLlI9CmZ1bmN0aW9uKGEpe3JldHVybiBhdi5wcm90b3R5cGUuUi5jYWxsKHRoaXMsYSkuc2xpY2UoMCwtMSl9O3ZhciB1eT1uZXcgdHkoMTEpLHZ5PW5ldyB0eSg3Miksd3k9ZnVuY3Rpb24oYSxiKXt0aGlzLlo9YTt0aGlzLlI9Yn07d2Eod3ksb3UpO3d5LnByb3RvdHlwZS5mYT1mdW5jdGlvbigpe3JldHVybiBNKDU2Myk/W3RoaXMuWix0aGlzLlJdOk0oMTQxKT9bdGhpcy5aXTpbdGhpcy5SXX07d3kucHJvdG90eXBlLmphPWZ1bmN0aW9uKCl7cmV0dXJuIG51LmlzU3VwcG9ydGVkKCk/W251XTpbbXUsbHVdfTt3eS5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9dGhpcy5mYSgpLGQ9Yy5mbGF0TWFwKGZ1bmN0aW9uKGYpe3JldHVybiBiLmphKCkubWFwKGZ1bmN0aW9uKGcpe3JldHVybntlbmRwb2ludDpmLG1ldGhvZDpnfX0pfSk7aWYodGhpcy5OKCkpe3ZhciBlPVEoYSxILkoucGopO2UmJmUuaGFzVXBkJiZkLnVuc2hpZnQoe2VuZHBvaW50OmNbMF0sbWV0aG9kOm5ldyBzeShlKX0pfXJldHVybiBkfTsKdmFyIHh5PWZ1bmN0aW9uKCl7d3kuY2FsbCh0aGlzLHV5LHZ5KX07d2EoeHksd3kpO3h5LnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7cmV0dXJuITB9O3ZhciB5eT1uZXcgeHksenk9bmV3IHR5KDIxKSxBeT1uZXcgdHkoNzMpLEJ5PWZ1bmN0aW9uKCl7d3kuY2FsbCh0aGlzLHp5LEF5KX07d2EoQnksd3kpO0J5LnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7cmV0dXJuIE0oNTg3KX07dmFyIEN5PW5ldyBCeTt2YXIgRHk9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0wO3RoaXMuSz0hMTtNKDQ2MikmJlVtKCJmcyIsZnVuY3Rpb24oKXtyZXR1cm4gYS5IPjAmJmEuSDw1P1N0cmluZyhhLkgpOnZvaWQgMH0sITEpfSxFeTtmdW5jdGlvbiBGeShhLGIpe0V5fHwoRXk9bmV3IER5KTt2YXIgYz1FeTtNKDQ2MikmJmZuLksmJihiPT09Imd0bS5mb3JtU3VibWl0Inx8Yj09PSJmb3JtX3N1Ym1pdCImJklmKDQ1KSkmJihhPT09MXx8Yy5LKSYmKGMuSz0hMCxjLkg9YSxhIT09NT9WbSgiZnMiKTpRbS5ILmZzPSExKX07dmFyIEd5PWZ1bmN0aW9uKGEpe2lmKFEoYSxILkouZGEpPT09WC5WLkthKXt2YXIgYj1mdShhKTtpZighTSg0MjcpJiYoanAoYSxiKXx8UShhLEguSi5oZCkpJiZYbyhmcCkpe3ZhciBjPWxwKGEsYik7aWYoYyl7dmFyIGQ9Tm0oNjksYyk7VGwoZCxhLDY5KTtZbih7ZGVzdGluYXRpb25JZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLGVuZHBvaW50OjY5LGV2ZW50SWQ6YS5NLmV2ZW50SWQscHJpb3JpdHlJZDphLk0ucHJpb3JpdHlJZH0sZCl9fXZhciBlPXliKGEuTS5vblN1Y2Nlc3MpP2EuTS5vblN1Y2Nlc3M6eGI7JHUoYSxiKTtlKCl9fTt2YXIgSHk9e1g6e1dxOjAsRWs6MSxaZzoyLFhrOjMsbWk6NCxWazo1LFdrOjYsWWs6NyxuaTo4LHRtOjksc206MTAsVGk6MTEsdm06MTIsQmg6MTMsRW06MTQsaWo6MTUsU3E6MTYsamQ6MTcsdWo6MTgsdmo6MTksd2o6MjAsQ246MjEseGo6MjJ9fTtIeS5YW0h5LlguV3FdPSJSRVNFUlZFRF9aRVJPIjtIeS5YW0h5LlguRWtdPSJBRFNfQ09OVkVSU0lPTl9ISVQiO0h5LlhbSHkuWC5aZ109IkNPTlRBSU5FUl9FWEVDVVRFX1NUQVJUIjtIeS5YW0h5LlguWGtdPSJDT05UQUlORVJfU0VUVVBfRU5EIjtIeS5YW0h5LlgubWldPSJDT05UQUlORVJfU0VUVVBfU1RBUlQiO0h5LlhbSHkuWC5Wa109IkNPTlRBSU5FUl9CTE9DS0lOR19FTkQiO0h5LlhbSHkuWC5Xa109IkNPTlRBSU5FUl9FWEVDVVRFX0VORCI7SHkuWFtIeS5YLllrXT0iQ09OVEFJTkVSX1lJRUxEX0VORCI7SHkuWFtIeS5YLm5pXT0iQ09OVEFJTkVSX1lJRUxEX1NUQVJUIjtIeS5YW0h5LlgudG1dPSJFVkVOVF9FWEVDVVRFX0VORCI7Ckh5LlhbSHkuWC5zbV09IkVWRU5UX0VWQUxVQVRJT05fRU5EIjtIeS5YW0h5LlguVGldPSJFVkVOVF9FVkFMVUFUSU9OX1NUQVJUIjtIeS5YW0h5Llgudm1dPSJFVkVOVF9TRVRVUF9FTkQiO0h5LlhbSHkuWC5CaF09IkVWRU5UX1NFVFVQX1NUQVJUIjtIeS5YW0h5LlguRW1dPSJHQTRfQ09OVkVSU0lPTl9ISVQiO0h5LlhbSHkuWC5pal09IlBBR0VfTE9BRCI7SHkuWFtIeS5YLlNxXT0iUEFHRVZJRVciO0h5LlhbSHkuWC5qZF09IlNOSVBQRVRfTE9BRCI7SHkuWFtIeS5YLnVqXT0iVEFHX0NBTExCQUNLX0VSUk9SIjtIeS5YW0h5LlgudmpdPSJUQUdfQ0FMTEJBQ0tfRkFJTFVSRSI7SHkuWFtIeS5YLndqXT0iVEFHX0NBTExCQUNLX1NVQ0NFU1MiO0h5LlhbSHkuWC5Dbl09IlRBR19FWEVDVVRFX0VORCI7SHkuWFtIeS5YLnhqXT0iVEFHX0VYRUNVVEVfU1RBUlQiO3ZhciBJeT17fTtJeS5YPUh5Llg7dmFyIEp5PXtSdToiTCIsWHE6IlMiLGt2OiJZIixSdDoiQiIsbnU6IkUiLE51OiJJIixmdjoiVEMiLHZ1OiJIVEMiLG91OiJGIixNdToiQyJ9LEt5PXtYcToiUyIsbHU6IlYiLGF1OiJFIixkdjoidGFnIn0sTHk9e30sTXk9KEx5W0l5LlgudmpdPSI2IixMeVtJeS5YLndqXT0iNSIsTHlbSXkuWC51al09IjciLEx5KTtmdW5jdGlvbiBOeShhKXt2YXIgYj1FKDUpLGM9TnVtYmVyKGEuZXZlbnRJZCksZD1OdW1iZXIoYS50YWdJZCk7cmV0dXJuKFNiKGIsIkdUTS0iKT9iOiJHVE0tIitiKSsiOiIrKEFiKGMpP2MrIjoiOiIiKSsoQWIoZCk/ZCsiOiI6IiIpK2Euc3RhZ2V9O2Z1bmN0aW9uIE95KCl7dmFyIGE9cmQoKTtyZXR1cm4hIShhJiZhLm1hcmsgaW5zdGFuY2VvZiBGdW5jdGlvbiYmYS5tZWFzdXJlIGluc3RhbmNlb2YgRnVuY3Rpb24mJmEuY2xlYXJNZWFzdXJlcyBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZhLmNsZWFyTWFya3MgaW5zdGFuY2VvZiBGdW5jdGlvbil9O3ZhciBQeT1mdW5jdGlvbigpe3RoaXMuSD17fX0sUXk7ZnVuY3Rpb24gUnkoKXtReXx8KFF5PW5ldyBQeSk7cmV0dXJuIFF5fWZ1bmN0aW9uIFN5KGEpe3ZhciBiPVJ5KCksYz1OeShhKTtyZXR1cm4gYi5IW2NdfWZ1bmN0aW9uIFR5KGEsYil7dmFyIGM7YTp7dmFyIGQ9UnkoKTtpZihPeSgpKXt2YXIgZT1OeShhKSxmLGc7aWYoZj0oZz1yZCgpKT09bnVsbD92b2lkIDA6Zy5tYXJrKGUsYikpe2M9ZC5IW2VdPWY7YnJlYWsgYX19Yz12b2lkIDB9cmV0dXJuIGN9O2Z1bmN0aW9uIFV5KGEsYil7aWYoT3koKSl7YS5lbnRyeT1OeShhKTt2YXIgYz1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGEpO2Muc3RhZ2U9YjtkZWxldGUgYy5zZW50O3ZhciBkPVN5KGI9PT1JeS5YLmpkP3tzdGFnZTpJeS5YLmpkfTpjKSxlPVN5KGEpO2lmKGQmJmUmJiEoZC5zdGFydFRpbWU+ZS5zdGFydFRpbWUpKXtjLnN0YWdlPWIrIjoiK2Euc3RhZ2U7dmFyIGY9TnkoYyksZz17c3RhcnQ6ZC5uYW1lLGVuZDplLm5hbWV9LGgsbDtyZXR1cm4obD0oaD1yZCgpKT09bnVsbD92b2lkIDA6aC5tZWFzdXJlKGYsZykpPT1udWxsP3ZvaWQgMDpsLmR1cmF0aW9ufX19O3ZhciBXeT1mdW5jdGlvbigpe3ZhciBhPTU7VnkuUm8+MCYmKGE9VnkuUm8pO3RoaXMuSz1hO3RoaXMuSD0wO3RoaXMuTj1bXX0sWHk9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuSDxhLks/ITE6TmIoKS1hLk5bYS5IJWEuS108MUUzfSxZeT1mdW5jdGlvbihhKXt2YXIgYj1hLkgrKyVhLks7YS5OW2JdPU5iKCl9O3ZhciBWeT17Um86TmYoMywwKX0sJHk9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMueWE9W107dGhpcy5IPXZvaWQgMDt0aGlzLlo9e307dGhpcy5LPXZvaWQgMDt0aGlzLmphPW5ldyBXeTt0aGlzLkxhPTFFMzt0aGlzLlI9dGhpcy5OPSExO3RoaXMuZmE9RGIoKTtaeSh0aGlzLGZ1bmN0aW9uKCl7dmFyIGI9W1sidiIsIjMiXSxbInQiLCJ0Il0sWyJwaWQiLFN0cmluZyhhLmZhKV1dLGM9ZHUoKTtjJiZiLnB1c2goWyJndG0iLGNdKTtyZXR1cm4gYn0pO2NkKGZ1bmN0aW9uKCl7YS5mYT1EYigpfSw4NjRFNSl9LFp5PWZ1bmN0aW9uKGEsYil7YS55YS5wdXNoKGIpfSxhej1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5IO2lmKGQ9PT12b2lkIDApaWYoYylkPXJqKCk7ZWxzZSByZXR1cm4iIjtmb3IodmFyIGU9W2ZrKCJodHRwczovLyIrRSgyMSkpLCIvYSIsIj9pZD0iK0UoNSldLGY9bShhLnlhKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSlmb3IodmFyIGg9Zy52YWx1ZSxsPQpoKHtldmVudElkOmQsdGY6ISFifSksbj1tKGwpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1tKHAudmFsdWUpLHI9cS5uZXh0KCkudmFsdWUsdD1xLm5leHQoKS52YWx1ZTtlLnB1c2goIiYiK3IrIj0iK3QpfWUucHVzaCgiJno9MCIpO3JldHVybiBlLmpvaW4oIiIpfSxiej1mdW5jdGlvbihhKXtpZigkaygyNikmJihhLksmJihBLmNsZWFyVGltZW91dChhLkspLGEuSz12b2lkIDApLGEuSCE9PXZvaWQgMCYmYS5SKSl7dmFyIGI9bG8oY28uaWEuWmIpO2lmKGdvKGIpKWEuTnx8KGEuTj0hMCxpbyhiLGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYnooYSl9KSk7ZWxzZSBpZihhLlpbYS5IXXx8WHkoYS5qYSl8fGEuTGEtLTw9MClQKDEpLGEuWlthLkhdPSEwO2Vsc2V7WXkoYS5qYSk7dmFyIGM9YXooYSwhMCk7WG4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo1NixldmVudElkOmEuSH0sYyk7YS5SPSExO2EuTj0hMX19fSxjej1mdW5jdGlvbihhKXthLkt8fChhLks9CkEuc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB2b2lkIGJ6KGEpfSw1MDApKX0sZXo9ZnVuY3Rpb24oYSl7dmFyIGI9ZHo7Yi5aW2FdfHwoYSE9PWIuSCYmKGJ6KGIpLGIuSD1hKSxiLlI9ITAsY3ooYiksYXooYikubGVuZ3RoPj0yMDIyJiZieihiKSl9LGR6O2Z1bmN0aW9uIGZ6KGEpe2d6KCk7WnkoZHosYSl9ZnVuY3Rpb24gaHooKXt2YXIgYTthPWE9PT12b2lkIDA/ITE6YTtneigpO3ZhciBiPWEsYz1kejtiPWI9PT12b2lkIDA/ITE6YjtpZihmbi5OJiYkaygyNikpe3ZhciBkPWF6KGMsITAsITApO2I/Vm4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo1NixldmVudElkOmMuSH0sZCk6WG4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo1NixldmVudElkOmMuSH0sZCl9fWZ1bmN0aW9uIGd6KCl7ZHp8fChkej1uZXcgJHkpfTtmdW5jdGlvbiBpeigpe2Z1bmN0aW9uIGEoYyxkKXt2YXIgZT13YihyYltkXXx8W10pO2UmJmIucHVzaChbYyxlXSl9dmFyIGI9W107YSgidSIsIkdUTSIpO2EoInV0IiwiVEFHR0lORyIpO2EoImgiLCJIRUFMVEgiKTtyZXR1cm4gYn07dmFyIGp6PSJodHRwczovLyIrRSgyMSksa3o9ZnVuY3Rpb24oKXt0aGlzLk49ITE7dGhpcy5SPVtdO3RoaXMuWj1bXTt0aGlzLkg9e1RDOjAsSFRDOjB9O3RoaXMuSz17fX0sbHo9ZnVuY3Rpb24oYSxiLGMsZCl7YS5LW2JdfHwoYS5LW2JdPXt9KTthLktbYl1bY109ZH0sb3o9ZnVuY3Rpb24oYSl7dmFyIGI9IiIsYz0iIixkPW16KCk7QWIoZCkmJihhLkguST1NYXRoLmZsb29yKGQpKTtjPW56KGEuSCxKeSkudG9TdHJpbmcoKTtmb3IodmFyIGU9bShPYmplY3Qua2V5cyhhLkspKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZSxoPWEuS1tnXS5uYW1lLGw9IiIsbj1ueihhLktbZ10sS3kpO24mJihsPWgrIi4iK24udG9TdHJpbmcoKSxiKz0ifiIrbCl9dmFyIHA9In5BV0NUIithLlIuam9pbigiLiIpLHE9In5HQSIrYS5aLmpvaW4oIi4iKSxyPSImY2NpZD0iK3ZrKCkudG9TdHJpbmcoKSsiJmNpZD0iK0UoNSkudG9TdHJpbmcoKSsiJmw9IitjK2IrKGEuUi5sZW5ndGg/CnA6IiIpKyhhLloubGVuZ3RoP3E6IiIpO2lmKE0oMjE0KSl7dmFyIHQsdT0odD1yZCgpKT09bnVsbD92b2lkIDA6dC5nZXRFbnRyaWVzQnlOYW1lKEtjKS5tYXAoZnVuY3Rpb24odil7cmV0dXJuIFN0cmluZyh2LmR1cmF0aW9uKX0pLmpvaW4oIi4iKTt1JiYocis9In5TUyIrdSl9cmV0dXJuIHJ9LHB6PWZ1bmN0aW9uKGEsYil7aWYoIWIuc3RhZ2V8fGEuTnx8IU95KCl8fFN5KGIpKXJldHVybiExO3ZhciBjLGQ9KGM9cmQoKSk9PW51bGw/dm9pZCAwOmMudGltZU9yaWdpbjtpZighQWIoZCkpYS5OPSEwO2Vsc2UgaWYoQWIoJGsoMjUpKSYmIVN5KHtzdGFnZTpJeS5YLmpkfSkmJiFhLk4mJk95KCkpdHJ5e3ZhciBlPU51bWJlcigkaygyNSkpO1R5KHtzdGFnZTpJeS5YLmpkfSx7c3RhcnRUaW1lOk1hdGgubWF4KGUtZCwwKX0pO1R5KHtzdGFnZTpJeS5YLmlqfSx7c3RhcnRUaW1lOjB9KTt2YXIgZj1VeSh7c3RhZ2U6SXkuWC5qZH0sSXkuWC5paik7ZiYmKGEuSC5MPU1hdGguZmxvb3IoZikpfWNhdGNoKGcpe2EuTj0KITB9aWYoYS5OKXJldHVybiExO3RyeXtpZighVHkoYikpcmV0dXJuITF9Y2F0Y2goZyl7cmV0dXJuIGEuTj0hMCwhMX1yZXR1cm4hMH0scXo9ZnVuY3Rpb24oYSxiLGMpe2lmKHB6KGEsYikpdHJ5e3ZhciBkPVV5KGIsYyk7aWYoZClyZXR1cm4gTWF0aC5mbG9vcihkKX1jYXRjaChlKXthLk49ITB9fSxzej1mdW5jdGlvbigpe3ZhciBhPXJ6KCk7cHooYSx7c3RhZ2U6SXkuWC5taX0pfSx0ej1mdW5jdGlvbigpe3ZhciBhPXJ6KCksYj1xeihhLHtzdGFnZTpJeS5YLlhrfSxJeS5YLm1pKTtiIT09dm9pZCAwJiYoYS5ILlM9Yil9LHV6PWZ1bmN0aW9uKCl7dmFyIGE9cnooKTtweihhLHtzdGFnZTpJeS5YLm5pfSl9LHZ6PWZ1bmN0aW9uKGEsYil7dmFyIGM9cnooKTtweihjLHtzdGFnZTpJeS5YLkJoLGV2ZW50SWQ6YX0pO2MuS1thXSYmYy5LW2FdLm5hbWV8fGx6KGMsYSwibmFtZSIsU2IoYiwiZ3RtLiIpP2I6IioiKX0sd3o9ZnVuY3Rpb24oYSl7dmFyIGI9cnooKSxjPXF6KGIse3N0YWdlOkl5Llgudm0sCmV2ZW50SWQ6YX0sSXkuWC5CaCk7YyE9PXZvaWQgMCYmbHooYixhLCJTIixjKX0seXo9ZnVuY3Rpb24oYSxiKXt2YXIgYz1yeigpLGQ9cXooYyx7c3RhZ2U6SXkuWC50bSxldmVudElkOmF9LEl5LlguQmgpO2QhPT12b2lkIDAmJmx6KGMsYSwiRSIsZCk7aWYoYj09PSJndG0ubG9hZCIpe3ZhciBlPXF6KGMse3N0YWdlOkl5LlguV2t9LEl5LlguWmcpO2UhPT12b2lkIDAmJihjLkguRT1lKTtpbyhsbyhjby5pYS5aYiksZnVuY3Rpb24oKXtpZighYy5OJiZPeSgpJiZFKDUpKXt2YXIgZj14eigpO2YhPT12b2lkIDAmJihjLkguRj1NYXRoLmZsb29yKGYpKTt0cnl7Zm9yKHZhciBnPWl6KHtldmVudElkOjAsdGY6ITF9KSxoPVtdLGw9bShnKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bShuLnZhbHVlKSxxPXAubmV4dCgpLnZhbHVlLHI9cC5uZXh0KCkudmFsdWU7aC5wdXNoKCImIitxKyI9IityKX12YXIgdD1DcCgpLHU9W1tmayhqeiksIi9hP3Y9MyZ0PWwiLCImcGlkPSIrCkRiKCkudG9TdHJpbmcoKSwiJnJ2PSIrRSgxNCksdD8iJnRhZ19leHA9Iit0OiIiLGguam9pbigiIildLmpvaW4oIiIpLCImZ3RtPSIsZHUoKSxveihjKV0uam9pbigiIik7aWYodS5sZW5ndGg+MjAyMil7dmFyIHY9TWF0aC5tYXgodS5sYXN0SW5kZXhPZigiLlRTIiwyMDIyKSx1Lmxhc3RJbmRleE9mKCJ+IiwyMDIyKSk7dT11LnNsaWNlKDAsdil9WG4oe2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo1Nn0sdSl9Y2F0Y2goeCl7fX19KX19LHp6O2Z1bmN0aW9uIHJ6KCl7enp8fCh6ej1uZXcga3opO3JldHVybiB6en1mdW5jdGlvbiBteigpe3RyeXt2YXIgYTtyZXR1cm4oKGE9cmQoKSk9PW51bGw/dm9pZCAwOmEuZ2V0RW50cmllc0J5VHlwZSgibmF2aWdhdGlvbiIpWzBdKS5kb21JbnRlcmFjdGl2ZX1jYXRjaChiKXt9fQpmdW5jdGlvbiBueihhLGIpe3JldHVybiBPYmplY3Qua2V5cyhiKS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGJbY119KS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGFbY10hPT12b2lkIDB9KS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuKCIiKyhjPT09InRhZyI/IiI6YykpLmNvbmNhdChhW2NdLnRvU3RyaW5nKCkpfSkuam9pbigiLiIpfWZ1bmN0aW9uIEF6KGEpe3ZhciBiPXJ6KCksYz1xeihiLHtzdGFnZTpJeS5YLkVtLGV2ZW50SWQ6YX0sSXkuWC5qZCk7YyE9PXZvaWQgMCYmYi5aLnB1c2goYyl9ZnVuY3Rpb24gQnooYSl7dmFyIGI9cnooKSxjPXF6KGIse3N0YWdlOkl5LlguRWssZXZlbnRJZDphfSxJeS5YLmpkKTtjIT09dm9pZCAwJiZiLlIucHVzaChjKX1mdW5jdGlvbiBDeihhKXt2YXIgYj1yeigpO3B6KGIse3N0YWdlOkl5LlguVGksZXZlbnRJZDphfSl9CmZ1bmN0aW9uIER6KGEpe3ZhciBiPXJ6KCksYz1xeihiLHtzdGFnZTpJeS5YLnNtLGV2ZW50SWQ6YX0sSXkuWC5UaSk7YyE9PXZvaWQgMCYmbHooYixhLCJWIixjKX1mdW5jdGlvbiB4eigpe3RyeXt2YXIgYSxiO3JldHVybihiPShhPXJkKCkpPT1udWxsP3ZvaWQgMDphLmdldEVudHJpZXNCeVR5cGUoInBhaW50IikuZmluZChmdW5jdGlvbihjKXtyZXR1cm4gYy5uYW1lPT09ImZpcnN0LWNvbnRlbnRmdWwtcGFpbnQifSkpPT1udWxsP3ZvaWQgMDpiLnN0YXJ0VGltZX1jYXRjaChjKXt9fWZ1bmN0aW9uIEV6KGEsYil7dmFyIGM9cnooKTtweihjLHtzdGFnZTpJeS5YLnhqLGV2ZW50SWQ6YS5pZCx0YWdJZDpOdW1iZXIoYltHZi55al0pfSl9CmZ1bmN0aW9uIEZ6KGEsYixjKXt2YXIgZD1yeigpLGU9ZG4oYiksZj1OdW1iZXIoYltHZi55al0pLGc9cXooZCx7c3RhZ2U6YyxldmVudElkOmEuaWQsdGFnSWQ6Zn0sSXkuWC54aik7aWYoZyE9PXZvaWQgMCYmZC5LW2EuaWRdKXt2YXIgaD1kLktbYS5pZF0udGFnfHwiIixsLG49KGw9TXlbY10pIT1udWxsP2w6IjEiLHA9bmV3IFJlZ0V4cCgiVFNcXGQiK2UrIi5USSIrZikscT0iVFMiK24rZSsiLlRJIitmKyIuVEUiK2c7aC5zZWFyY2gocCk+PTA/biE9PSIxIiYmbHooZCxhLmlkLCJ0YWciLGgucmVwbGFjZShwLHEucmVwbGFjZSgiLlRFIitnLCIiKSkpOihseihkLGEuaWQsInRhZyIsKGg/aCsiLiI6IiIpK3EpLGU9PT0iaHRtbCImJihkLkguSFRDKz0xKSxkLkguVEMrPTEpfX07CnZhciBHej1mdW5jdGlvbihhKXtRKGEsSC5KLmRhKT09PVguVi54YSYmIVEoYSxILkouRWMpJiZYeChhLHB2KSYmcnYocHYpfSxJej1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKTtpZihiPT09WC5WLkthKUd5KGEpO2Vsc2V7dmFyIGM9SHpbYl07aWYoYylmbi5IJiZiPT09WC5WLnhhJiZCeihhLk0uZXZlbnRJZCksUXcoYSxmdW5jdGlvbihkKXt2YXIgZT1neShhKTtWKGEsSC5KLnBqLGUpO2UmJm5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZCxmeShhLGUpKTtGeSgzLGEuZXZlbnROYW1lKTt2YXIgZj17fSxnPXt9O1F1KGEse1FzOmZ1bmN0aW9uKGgsbCxuKXtpZihuLmZpbmQoZnVuY3Rpb24ocCl7cmV0dXJuIHAuaXNQcmltYXJ5JiYocC5zdGF0dXM9PT0wfHxwLnN0YXR1cz09PTEpfSkpaC5NLm9uU3VjY2VzcygpO2Vsc2UgR3ooaCksaC5NLm9uRmFpbHVyZSgpfSxTczpmdW5jdGlvbihoLGwpe3ZhciBuO3ZhciBwPWwuc2IscT1sLmVuZHBvaW50LmVuZHBvaW50LApyO3N3aXRjaChsLnBrIGluc3RhbmNlb2Yga3g/MjpsLnBrIGluc3RhbmNlb2Ygcng/NDpsLnBrIGluc3RhbmNlb2Yga3U/MzoxKXtjYXNlIDI6cj0yMTticmVhaztjYXNlIDM6UShoLEguSi5kYSk9PT1YLlYueGEmJlEoaCxILkoub2IpJiZxIT09OSYmKHI9MjApO2JyZWFrO2Nhc2UgNDpyPTIwfWlmKHIpe3ZhciB0O3ZhciB1PU5mKHIsLTEpO1h4KGgsb3YpPyhaeChwLGgsdSksdD17TXQ6VHh9KTp0PXt3ZTpZeChoLHUpfTt2YXIgdj10LHg9di53ZSx5PXYuTXQ7eD09bnVsbHx8UngoeCk7bj17d2U6eCxrdDp5fX1lbHNlIG49e307dmFyIHo9bixDPXoud2UsRD16Lmt0O0MmJihmW2wuc2JdPUMpO0QmJihnW2wuc2JdPUQpfSx1bzpmdW5jdGlvbihoLGwpe2ZbbC5zYl0mJihUbihmW2wuc2JdKSxkZWxldGUgZltsLnNiXSk7Z1tsLnNiXSYmKFVuKGdbbC5zYl0sbC5zYiksZGVsZXRlIGdbbC5zYl0pfSxSczpmdW5jdGlvbihoLGwsbixwLHEpe2lmKHEubGVuZ3RoJiZiIT09WC5WLnViKXt2YXIgcj0KcVtxLmxlbmd0aC0xXSx0PXIuc2IsdT1yLmVuZHBvaW50LmVuZHBvaW50O2lmKCFQeC5pbmNsdWRlcyh1KSl7dmFyIHY9aC5NO01sKHt0YXJnZXRJZDpoLnRhcmdldC5kZXN0aW5hdGlvbklkLHJlcXVlc3Q6e3VybDp0LHBhcmFtZXRlckVuY29kaW5nOjMsZW5kcG9pbnQ6dX0scWI6e2V2ZW50SWQ6di5ldmVudElkLHByaW9yaXR5SWQ6di5wcmlvcml0eUlkfSxGajp7ZXZlbnRJZDpRKGgsSC5KLnVmKSxwcmlvcml0eUlkOlEoaCxILkoudmYpfX0pO1EoaCxILkouZGEpfX19fSxjKX0pO2Vsc2UgYS5NLm9uRmFpbHVyZSgpfX0sSno9e30sSHo9KEp6W1guVi56ZF09WncsSnpbWC5WLnhhXT1GeCxKeltYLlYuWWRdPUt4LEp6W1guVi5aZF09T3gsSnpbWC5WLnViXT1leSxKeltYLlYuT2JdPXl5LEp6W1guVi5GYl09Q3ksSnopO3ZhciBLej17Z2o6e2JwOiIxIix1cToiMiIsVnE6IjMifX07CnZhciBMej17fSxNej1PYmplY3QuZnJlZXplKChMeltGLkQuZmhdPTEsTHpbRi5ELmdoXT0xLEx6W0YuRC5CZF09MSxMeltGLkQuQ2RdPTEsTHpbRi5ELlJjXT0xLEx6W0YuRC5zaV09MSxMeltGLkQudWldPTEsTHpbRi5ELkNsXT0xLEx6W0YuRC5paF09MSxMeltGLkQuQ2ZdPTEsTHpbRi5ELkRmXT0xLEx6W0YuRC5FZl09MSxMeltGLkQuSGFdPTEsTHpbRi5ELkZmXT0xLEx6W0YuRC5GZF09MSxMeltGLkQudWNdPTEsTHpbRi5ELkhkXT0xLEx6W0YuRC5MYl09MSxMeltGLkQuQ2JdPTEsTHpbRi5ELlRiXT0xLEx6W0YuRC5uYl09MSxMeltGLkQuZWJdPTEsTHpbRi5ELkdlXT0xLEx6W0YuRC5raF09MSxMeltGLkQuT2FdPTEsTHpbRi5ELk9wXT0xLEx6W0YuRC5TcF09MSxMeltGLkQuSWVdPTEsTHpbRi5ELkdpXT0xLEx6W0YuRC5RZl09MSxMeltGLkQuVGFdPTEsTHpbRi5ELlljXT0xLEx6W0YuRC5aY109MSxMeltGLkQudGJdPTEsTHpbRi5ELlFkXT0xLEx6W0YuRC5SZF09MSxMeltGLkQuU2RdPQoxLEx6W0YuRC5OZV09MSxMeltGLkQuemFdPTEsTHpbRi5ELlVhXT0xLEx6W0YuRC5XbF09MSxMeltGLkQuWGxdPTEsTHpbRi5ELllsXT0xLEx6W0YuRC5abF09MSxMeltGLkQuV2JdPTEsTHpbRi5ELlRkXT0xLEx6W0YuRC5YYl09MSxMeltGLkQuZGRdPTEsTHpbRi5ELlVkXT0xLEx6W0YuRC5RZV09MSxMeltGLkQuUGFdPTEsTHpbRi5ELnljXT0xLEx6W0YuRC5WZF09MSxMeltGLkQuemNdPTEsTHpbRi5ELkFjXT0xLEx6W0YuRC5mYl09MSxMeltGLkQuUWFdPTEsTHopKSxOej17fSxPej0oTnpbRi5ELlVjXT0xLE56W0YuRC5QcF09MSxOeltGLkQuSGVdPTEsTnpbRi5ELnJpXT0xLE56Lm9yZWY9MSxOeik7dmFyIFB6LFF6OwpmdW5jdGlvbiBSeihhLGIpe3ZhciBjPWFbR2YuWWJdLGQ9YiYmYi5ldmVudDtpZighYyl0aHJvdyBFcnJvcigiRXJyb3I6IE5vIGZ1bmN0aW9uIG5hbWUgZ2l2ZW4gZm9yIGZ1bmN0aW9uIGNhbGwuIik7dmFyIGU9UXpbY10sZj17fSxnO2ZvcihnIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShnKSYmKFNiKGcsInZ0cF8iKT9mW2UhPT12b2lkIDA/ZzpnLnN1YnN0cmluZyg0KV09YVtnXTpnPT09R2YuRnEudG9TdHJpbmcoKSYmKGZbZSE9PXZvaWQgMD8idnRwX2d0bUdlbmVyYXRlZFRhZ2dpbmdNZXRhZGF0YSI6Z109YVtnXSkpO0lmKDYxKSYmZSYmKGYudnRwX2V4dHJhRXhwZXJpbWVudElkcz0hMCk7ZSYmZCYmZC5jYWNoZWRNb2RlbFZhbHVlcyYmKGYudnRwX2d0bUNhY2hlZFZhbHVlcz1kLmNhY2hlZE1vZGVsVmFsdWVzKTtiJiZlJiYoZi52dHBfZ3RtRW50aXR5SW5kZXg9Yi5pbmRleCxmLnZ0cF9ndG1FbnRpdHlOYW1lPWIubmFtZSk7cmV0dXJuIGUhPT12b2lkIDA/ZShmKTpQeihjLGYsCmIpfXZhciBUej1mdW5jdGlvbigpe3ZhciBhPVN6O2lmKE0oNTg1KSYmZm4uSyl7dmFyIGI9RSg1KS5pbmRleE9mKCJHVE0tIik9PT0wJiZJZig2MiksYyxkPSgoYz1GaygpKT09bnVsbD92b2lkIDA6Yy5zb3VyY2UpPT09MTtiJiYhZHx8YS5IfHwoYS5IPSEwLFVtKCJhYmwiLCIxIiksdG8oKSl9fSxTej1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9ITF9O3ZhciBVej1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLkg9YTt0aGlzLmluZGV4PWI7dGhpcy50YWdzPWM7dGhpcy5tYWNyb3M9ZDt0aGlzLm5hbWU9U3RyaW5nKHRoaXMuSFtHZi5SbV18fCIiKX07ClV6LnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhLGIpe2lmKCFiW3RoaXMuaW5kZXhdJiYhYS5pc0Jsb2NrZWQodGhpcy5IKSl7Ylt0aGlzLmluZGV4XT0hMDt0aGlzLkhbR2YucGwudG9TdHJpbmcoKV0mJlR6KCk7dmFyIGM9dGhpcy5uYW1lLGQ7dHJ5e3ZhciBlPXt9LGY7Zm9yKGYgaW4gdGhpcy5IKXRoaXMuSC5oYXNPd25Qcm9wZXJ0eShmKSYmKGVbZl09ZWwodGhpcy5IW2ZdLGEsdGhpcy50YWdzLHRoaXMubWFjcm9zLGIpKTtlLnZ0cF9ndG1FdmVudElkPWEuaWQ7YS5wcmlvcml0eUlkJiYoZS52dHBfZ3RtUHJpb3JpdHlJZD1hLnByaW9yaXR5SWQpO3ZhciBnPWQ9UnooZSx7ZXZlbnQ6YSxpbmRleDp0aGlzLmluZGV4LHR5cGU6MixuYW1lOmN9KTtlW0dmLlprXSYmdHlwZW9mIGc9PT0ic3RyaW5nIiYmKGc9ZVtHZi5aa109PT0xP2cudG9Mb3dlckNhc2UoKTpnLnRvVXBwZXJDYXNlKCkpO2UuaGFzT3duUHJvcGVydHkoR2YuYWgpJiYoZz1ZZigxOCk/ZVtHZi5haF09PT0xPwpWZihnLCJQRVJJT0QiKTplW0dmLmFoXT09PTI/VmYoZywiQ09NTUEiKTpWZihnLCJBVVRPTUFUSUMiKTplW0dmLmFoXT09PTE/VmYoZywiUEVSSU9EIik6VmYoZywiQ09NTUEiKSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5ibCkmJmc9PT1udWxsJiYoZz1lW0dmLmJsXSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5pbCkmJmc9PT12b2lkIDAmJihnPWVbR2YuaWxdKTtlLmhhc093blByb3BlcnR5KEdmLmVwKSYmKGc9SmIoZykpO2UuaGFzT3duUHJvcGVydHkoR2YuZmwpJiZnPT09ITAmJihnPWVbR2YuZmxdKTtlLmhhc093blByb3BlcnR5KEdmLmFsKSYmZz09PSExJiYoZz1lW0dmLmFsXSk7ZD1nfWNhdGNoKGgpe2EubG9nTWFjcm9FcnJvciYmYS5sb2dNYWNyb0Vycm9yKGgsTnVtYmVyKHRoaXMuaW5kZXgpLGMpLGQ9ITF9Ylt0aGlzLmluZGV4XT0hMTtyZXR1cm4gZH19O1V6LnByb3RvdHlwZS5GZz1mdW5jdGlvbigpe3JldHVybiBuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHRoaXMuSCl9O3ZhciBWej1mdW5jdGlvbihhLGIsYyl7dGhpcy5IPWE7dGhpcy50YWdzPWI7dGhpcy5tYWNyb3M9Y307VnoucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGEsYil7dHJ5e2Zvcih2YXIgYz17fSxkPW0oT2JqZWN0LmtleXModGhpcy5IKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7Y1tmXT1mPT09ImZ1bmN0aW9uIj90aGlzLkhbZl06ZWwodGhpcy5IW2ZdLGEsdGhpcy50YWdzLHRoaXMubWFjcm9zLGIpfXJldHVybiBjbChjKX1jYXRjaChnKXtKU09OLnN0cmluZ2lmeSh0aGlzLkgpfXJldHVybiAyfTtWei5wcm90b3R5cGUuRmc9ZnVuY3Rpb24oKXtyZXR1cm4gbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx0aGlzLkgpfTt2YXIgV3o9ZnVuY3Rpb24oYSxiKXt0aGlzLmluZGV4PWI7dGhpcy5OPVtdO3RoaXMuUj1bXTt0aGlzLks9W107dGhpcy5IPVtdO3RoaXMubmFtZT0iIjtmb3IodmFyIGM9bShhKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9bShkLnZhbHVlKSxmPWUubmV4dCgpLnZhbHVlLGc9eWEoZSksaD1mLGw9ZztoPT09ImlmIj90aGlzLk49bDpoPT09InVubGVzcyI/dGhpcy5SPWw6aD09PSJhZGQiP3RoaXMuSz1sOmg9PT0iYmxvY2siP3RoaXMuSD1sOmg9PT0icnVsZU5hbWUiJiYodGhpcy5uYW1lPWxbMF0pfX07Cld6LnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhLGIpe3ZhciBjPVh6KHRoaXMsYiksZD1bXSxlPVtdO2M/KGQucHVzaC5hcHBseShkLHcodGhpcy5LKSksZS5wdXNoLmFwcGx5KGUsdyh0aGlzLkgpKSk6Yz09PW51bGwmJmUucHVzaC5hcHBseShlLHcodGhpcy5IKSk7cmV0dXJue2ZpcmluZ1RhZ3M6ZCxibG9ja2luZ1RhZ3M6ZX19Owp2YXIgWHo9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9bShhLk4pLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1iKGQudmFsdWUpO2lmKGU9PT0wKXJldHVybiExO2lmKGU9PT0yKXJldHVybiBudWxsfWZvcih2YXIgZj1tKGEuUiksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWIoZy52YWx1ZSk7aWYoaD09PTIpcmV0dXJuIG51bGw7aWYoaD09PTEpcmV0dXJuITF9cmV0dXJuITB9O1d6LnByb3RvdHlwZS5nZXROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZX07dmFyIFl6PWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuSWE9YTt0aGlzLmluZGV4PWI7dGhpcy50YWdzPWM7dGhpcy5tYWNyb3M9ZDt0aGlzLk89U3RyaW5nKHRoaXMuSWFbR2YuWWJdKTt0aGlzLm5hbWU9U3RyaW5nKHRoaXMuSWFbR2YuUm1dfHwiIik7dGhpcy50YWdJZD1OdW1iZXIodGhpcy5JYVtHZi55al0pfTsKWXoucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/e306Yzt2YXIgZCxlPWM7ZT1lPT09dm9pZCAwP3t9OmU7dmFyIGY9e30sZztmb3IoZyBpbiB0aGlzLklhKXRoaXMuSWEuaGFzT3duUHJvcGVydHkoZykmJihmW2ddPWVsKHRoaXMuSWFbZ10sYSx0aGlzLnRhZ3MsdGhpcy5tYWNyb3MsW10pKTtkPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sZixlKTtkLnZ0cF9ndG1UYWdJZD10aGlzLnRhZ0lkO3RoaXMuSWFbR2YucGwudG9TdHJpbmcoKV0mJlR6KCk7UnooZCx7ZXZlbnQ6YSxpbmRleDp0aGlzLmluZGV4LHR5cGU6MSxuYW1lOnRoaXMubmFtZX0pfTtZei5wcm90b3R5cGUuRmc9ZnVuY3Rpb24oKXtyZXR1cm4gbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx0aGlzLklhKX07CnZhciBaej1mdW5jdGlvbihhLGIpe2lmKGEuSWFbR2YudG5dKXJldHVybiBlbChhLklhW0dmLnRuXSxiLGEudGFncyxhLm1hY3JvcyxbXSl9LCR6PWZ1bmN0aW9uKGEsYil7aWYoYS5JYVtHZi5Ebl0pcmV0dXJuIGVsKGEuSWFbR2YuRG5dLGIsYS50YWdzLGEubWFjcm9zLFtdKX0sYUE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLklhW0dmLmNwXTtpZihjKXJldHVybiBlbChjLGIsYS50YWdzLGEubWFjcm9zLFtdKX07WXoucHJvdG90eXBlLmdldE1ldGFkYXRhPWZ1bmN0aW9uKGEpe3JldHVybiBlbCh0aGlzLklhW0dmLk1FVEFEQVRBXSxhLHRoaXMudGFncyx0aGlzLm1hY3JvcyxbXSl9O1l6LnByb3RvdHlwZS5nZXROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZX07dmFyIGJBPWZ1bmN0aW9uKCl7dGhpcy5tYWNyb3M9W107dGhpcy5ydWxlcz1bXTt0aGlzLnByZWRpY2F0ZXM9W107dGhpcy50YWdzPVtdO3RoaXMudms9W119O2JBLnByb3RvdHlwZS5nZXRSdWxlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJ1bGVzfTt2YXIgY0E9bmV3IGJBO2Z1bmN0aW9uIGRBKGEsYixjLGQpe3ZhciBlPVdjKCksZjtpZihlPT09MSlhOnt2YXIgZz1FKDMpO2c9Zy50b0xvd2VyQ2FzZSgpO2Zvcih2YXIgaD0iaHR0cHM6Ly8iK2csbD0iaHR0cDovLyIrZyxuPTEscD1CLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSxxPTA7cTxwLmxlbmd0aCYmcTwxMDA7cSsrKXt2YXIgcj1wW3FdLnNyYztpZihyKXtyPXIudG9Mb3dlckNhc2UoKTtpZihyLmluZGV4T2YobCk9PT0wKXtmPTM7YnJlYWsgYX1uPT09MSYmci5pbmRleE9mKGgpPT09MCYmKG49Mil9fWY9bn1lbHNlIGY9ZTtyZXR1cm4oZj09PTJ8fGR8fCJodHRwOiIhPT1BLmxvY2F0aW9uLnByb3RvY29sP2E6YikrY307dmFyIGVBPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLks9e307dGhpcy5IPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjPVtdLGQ7Zm9yKGQgaW4gYS5LKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLkssZCkmJmMucHVzaChkKyJ+IithLktbZF0pO3ZhciBlPVtdLGY7Zm9yKGYgaW4gYS5IKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLkgsZikmJmUucHVzaChmKyJ+IithLkhbZl0pO2IudGYmJihhLks9e30sYS5IPXt9KTt2YXIgZz1bXTtjLmxlbmd0aD4wJiZnLnB1c2goWyJiY3MiLGMuam9pbigiLiIpXSk7ZS5sZW5ndGg+MCYmZy5wdXNoKFsiYmV0IixlLmpvaW4oIi4iKV0pO3JldHVybiBnfSl9LGZBO2Z1bmN0aW9uIGdBKCl7ZkF8fChmQT1uZXcgZUEpfTtmdW5jdGlvbiBoQShhLGIsYyxkLGUpe2lmKCFFayhhKSl7ZC5sb2FkRXhwZXJpbWVudHM9eWooKTtIayhhLGQsZSk7dmFyIGY9aUEoYSksZz1mdW5jdGlvbigpe29rKCkuY29udGFpbmVyW2FdJiYob2soKS5jb250YWluZXJbYV0uc3RhdGU9Myk7akEoKX0saD17ZGVzdGluYXRpb25JZDphLGVuZHBvaW50OjB9O2lmKFdqKCkpe3ZhciBsPVhqKCksbj1sKyIvIitrQShmLGEpO1puKGgsbix2b2lkIDAsZnVuY3Rpb24oKXtsQShhLG4sbCsiLyIrZixoLGcpfSl9ZWxzZXt2YXIgcD1TYihhLCJHVE0tIikscT1kaygpLHI9Yz8iL2d0YWcvanMiOiIvZ3RtLmpzIix0PW1BKGIscitmLGEpO2lmKCF0KXt2YXIgdT1FKDMpK3I7cSYmS2MmJnAmJih1PUtjLnJlcGxhY2UoL14oPzpodHRwcz86XC9cLyk/L2ksIiIpLnNwbGl0KC9bPyNdLylbMF0pO3Q9ZEEoImh0dHBzOi8vIiwiaHR0cDovLyIsdStmKX1abihoLHQsdm9pZCAwLGcpfX19CmZ1bmN0aW9uIGpBKCl7S2soKXx8R2IoTGsoKSxmdW5jdGlvbihhLGIpe25BKGEsYi50cmFuc3BvcnRVcmwsYi5jb250ZXh0KTtQKDkyKX0pfWZ1bmN0aW9uIG5BKGEsYixjLGQpe2lmKCFHayhhKSlpZihjLmxvYWRFeHBlcmltZW50c3x8KGMubG9hZEV4cGVyaW1lbnRzPXlqKCkpLEtrKCkpSmsoYSxiLGMsZCk7ZWxzZXtJayhhLGMsZCk7dmFyIGU9e2Rlc3RpbmF0aW9uSWQ6YSxlbmRwb2ludDowfTtpZihXaigpKXt2YXIgZj1YaigpLGc9Imd0ZCIraUEoYSwhMCksaD1mKyIvIitrQShnLGEpO1puKGUsaCx2b2lkIDAsZnVuY3Rpb24oKXtsQShhLGgsZisiLyIrZyxlKX0pfWVsc2V7dmFyIGw9Ii9ndGFnL2Rlc3RpbmF0aW9uIitpQShhLCEwKSxuPW1BKGIsbCxhKTtufHwobj1kQSgiaHR0cHM6Ly8iLCJodHRwOi8vIixFKDMpK2wpKTtabihlLG4pfX19CmZ1bmN0aW9uIGxBKGEsYixjLGQsZSl7aWYoTSg0MTMpKXtnQSgpO3ZhciBmPWZBO2lmKGZuLk4pe3ZhciBnPUEucGVyZm9ybWFuY2UsaD0tMTtpZihnJiZnLmdldEVudHJpZXNCeVR5cGUpe3ZhciBsPVJqKGIpLmhyZWYsbj1nLmdldEVudHJpZXNCeU5hbWUobCkucG9wKCk7aWYoIW4pZm9yKHZhciBwPWcuZ2V0RW50cmllc0J5VHlwZSgicmVzb3VyY2UiKSxxPTA7cTxwLmxlbmd0aDtxKyspe3ZhciByPXBbcV07aWYoci5uYW1lJiZyLm5hbWUuaW5kZXhPZihiKSE9PS0xKXtuPXI7YnJlYWt9fW4mJm4ucmVzcG9uc2VTdGF0dXMhPT12b2lkIDAmJihoPW4ucmVzcG9uc2VTdGF0dXMpfWYuS1thXT1ofVAoMTkwKTt2YXIgdD1ubShqbS5iYS5rail8fHt9O3RbYV09ITA7bW0oam0uYmEua2osdCk7dmFyIHU9YysoYy5pbmRleE9mKCI/Iik9PT0tMT8iP2Y9MSI6IiZmPTEiKTtlP1puKGQsdSx2b2lkIDAsZSk6Wm4oZCx1KX1lbHNlIGUmJmUoKX0KZnVuY3Rpb24gaUEoYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz0iP2lkPSIrZW5jb2RlVVJJQ29tcG9uZW50KGEpLGQ9RSgxOSk7ZCE9PSJkYXRhTGF5ZXIiJiYoYys9IiZsPSIrZCk7dmFyIGU9U2IoYSwiR1RNLSIpO2lmKCFlfHxiKWMrPSImY3g9YyI7ZSYmSWYoNjIpJiYoYys9IiZnb29nbGVfb25seT10cnVlIik7dmFyIGY9YyxnLGg9e0RvOkpmKDE1KSxJbzpFKDE0KX07Zz1DZihoKTtjPWYrKCImZ3RtPSIrZyk7ZGsoKSYmKGMrPSImc2lnbj0iK0FqLnFqKTt2YXIgbD1jLG49SmYoNTQpO2lmKG49PT0xKXtsKz0iJmZwcz1mYyI7dmFyIHA9RSg2MCk7cCYmKGwrPSImZ2Rldj0iK3ApfWVsc2Ugbj09PTImJihsKz0iJmZwcz1mZSIpO3JldHVybiBsfQpmdW5jdGlvbiBrQShhLGIpe2lmKCFNKDQxMyl8fCFYaigpKXJldHVybiBhO3ZhciBjPUUoNTgpO2lmKCFjKXJldHVybiBQKDE4MiksYTt0cnl7dmFyIGQ9TmIoKSxlPUVmKGEsYyksZj1OYigpLWQ7Z0EoKTt2YXIgZz1mQTtmbi5OJiYoZy5IW2JdPWYpO3JldHVybiBlfWNhdGNoKGgpe3JldHVybiBQKDE4MyksYX19ZnVuY3Rpb24gbUEoYSxiLGMpe2lmKGFrKCkmJmEpe3ZhciBkPUUoNTgpLGU9WGooKTtpZihkJiZlKXRyeXt2YXIgZj1OYigpO2I9ZSsiLyIrRWYoYixkKTt2YXIgZz1OYigpLWY7Z0EoKTt2YXIgaD1mQTtmbi5OJiYoaC5IW2NdPWcpfWNhdGNoKGwpe1AoMTgzKX1yZXR1cm4gWWooYSxiKX19O3ZhciBwQT1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5LPW5ldyBGYjt0aGlzLkg9e307dGhpcy5OPXt9O3RoaXMuUj17bmFtZTpFKDE5KSxzZXQ6ZnVuY3Rpb24oYixjKXtFZChWYihiLGMpLGEuSCk7b0EoYSl9LGdldDpmdW5jdGlvbihiKXtyZXR1cm4gYS5nZXQoYiwyKX0scmVzZXQ6ZnVuY3Rpb24oKXthLks9bmV3IEZiO2EuSD17fTtvQShhKX19fTtwQS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEsYil7cmV0dXJuIGIhPTI/dGhpcy5LLmdldChhKTpxQSh0aGlzLGEpfTt2YXIgcUE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWIuc3BsaXQoIi4iKTtjPWN8fFtdO2Zvcih2YXIgZT1hLkgsZj0wO2Y8ZC5sZW5ndGg7ZisrKXtpZihlPT09bnVsbClyZXR1cm4hMTtpZihlPT09dm9pZCAwKWJyZWFrO2U9ZVtkW2ZdXTtpZihjLmluZGV4T2YoZSkhPT0tMSlyZXR1cm59cmV0dXJuIGV9OwpwQS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5OLmhhc093blByb3BlcnR5KGEpfHwodGhpcy5LLnNldChhLGIpLEVkKFZiKGEsYiksdGhpcy5IKSxvQSh0aGlzKSl9O3ZhciBzQT1mdW5jdGlvbigpe2Zvcih2YXIgYT1bImd0bS5hbGxvd2xpc3QiLCJndG0uYmxvY2tsaXN0IiwiZ3RtLndoaXRlbGlzdCIsImd0bS5ibGFja2xpc3QiLCJ0YWdUeXBlQmxhY2tsaXN0Il0sYj1yQSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10sZT1iLmdldChkLDEpO2lmKEFycmF5LmlzQXJyYXkoZSl8fENkKGUpKWU9RWQoZSxudWxsKTtiLk5bZF09ZX19LG9BPWZ1bmN0aW9uKGEsYil7R2IoYS5OLGZ1bmN0aW9uKGMsZCl7YS5LLnNldChjLGQpO0VkKFZiKGMpLGEuSCk7RWQoVmIoYyxkKSxhLkgpO2ImJmRlbGV0ZSBhLk5bY119KX0sckE9bmV3IHBBLHRBPXJBLlI7ZnVuY3Rpb24gdUEoYSxiKXtyZXR1cm4gckEuZ2V0KGEsYil9CmZ1bmN0aW9uIHZBKGEsYil7dmFyIGM9Yj09PXZvaWQgMD8yOmIsZD1yQSxlLGY9KGM9PT12b2lkIDA/MjpjKSE9PTE/cUEoZCxhKTpkLksuZ2V0KGEpO0FkKGYpPT09ImFycmF5Inx8QWQoZik9PT0ib2JqZWN0Ij9lPUVkKGYsbnVsbCk6ZT1mO3JldHVybiBlfTt2YXIgd0E9bmV3IFJlZ0V4cCgvXiguKlwuKT8oZ29vZ2xlfHlvdXR1YmV8YmxvZ2dlcnx3aXRoZ29vZ2xlKShcLmNvbT8pPyhcLlthLXpdezJ9KT9cLj8kLykseEE9e2NsOlsiZWNsIl0sY3VzdG9tUGl4ZWxzOlsibm9uR29vZ2xlUGl4ZWxzIl0sZWNsOlsiY2wiXSxlaGw6WyJobCJdLGdhYXdjOlsiZ29vZ3RhZyJdLGhsOlsiZWhsIl0saHRtbDpbImN1c3RvbVNjcmlwdHMiLCJjdXN0b21QaXhlbHMiLCJub25Hb29nbGVQaXhlbHMiLCJub25Hb29nbGVTY3JpcHRzIiwibm9uR29vZ2xlSWZyYW1lcyJdLGN1c3RvbVNjcmlwdHM6WyJodG1sIiwiY3VzdG9tUGl4ZWxzIiwibm9uR29vZ2xlUGl4ZWxzIiwibm9uR29vZ2xlU2NyaXB0cyIsIm5vbkdvb2dsZUlmcmFtZXMiXSxub25Hb29nbGVQaXhlbHM6W10sbm9uR29vZ2xlU2NyaXB0czpbIm5vbkdvb2dsZVBpeGVscyJdLG5vbkdvb2dsZUlmcmFtZXM6WyJub25Hb29nbGVQaXhlbHMiXX0seUE9e2NsOlsiZWNsIl0sY3VzdG9tUGl4ZWxzOlsiY3VzdG9tU2NyaXB0cyIsCiJodG1sIl0sZWNsOlsiY2wiXSxlaGw6WyJobCJdLGdhYXdjOlsiZ29vZ3RhZyJdLGhsOlsiZWhsIl0saHRtbDpbImN1c3RvbVNjcmlwdHMiXSxjdXN0b21TY3JpcHRzOlsiaHRtbCJdLG5vbkdvb2dsZVBpeGVsczpbImN1c3RvbVBpeGVscyIsImN1c3RvbVNjcmlwdHMiLCJodG1sIiwibm9uR29vZ2xlU2NyaXB0cyIsIm5vbkdvb2dsZUlmcmFtZXMiXSxub25Hb29nbGVTY3JpcHRzOlsiY3VzdG9tU2NyaXB0cyIsImh0bWwiXSxub25Hb29nbGVJZnJhbWVzOlsiY3VzdG9tU2NyaXB0cyIsImh0bWwiLCJub25Hb29nbGVTY3JpcHRzIl19LHpBPSJnb29nbGUgY3VzdG9tUGl4ZWxzIGN1c3RvbVNjcmlwdHMgaHRtbCBub25Hb29nbGVQaXhlbHMgbm9uR29vZ2xlU2NyaXB0cyBub25Hb29nbGVJZnJhbWVzIi5zcGxpdCgiICIpOwpmdW5jdGlvbiBBQSgpe3ZhciBhPXVBKCJndG0uYWxsb3dsaXN0Iil8fHVBKCJndG0ud2hpdGVsaXN0Iik7YSYmUCg5KTtJZig2MikmJihhPXZvaWQgMCk7QkEoKSYmKElmKDYyKT9QKDExNik6KFAoMTE3KSxJZig0OCkmJihhPVtdLHdpbmRvdy5jb25zb2xlJiZ3aW5kb3cuY29uc29sZS5sb2cmJndpbmRvdy5jb25zb2xlLmxvZygiR1RNIGJsb2NrZWQuIFNlZSBnby8xMzY4NzcyOC4iKSkpKTt2YXIgYj1hJiZSYihLYihhKSx4QSksYz11QSgiZ3RtLmJsb2NrbGlzdCIpfHx1QSgiZ3RtLmJsYWNrbGlzdCIpO2N8fChjPXVBKCJ0YWdUeXBlQmxhY2tsaXN0IikpJiZQKDMpO2M/UCg4KTpjPVtdO0JBKCkmJihjPUtiKGMpLGMucHVzaCgibm9uR29vZ2xlUGl4ZWxzIiwibm9uR29vZ2xlU2NyaXB0cyIsInNhbmRib3hlZFNjcmlwdHMiKSk7S2IoYykuaW5kZXhPZigiZ29vZ2xlIik+PTAmJlAoMik7dmFyIGQ9YyYmUmIoS2IoYykseUEpLGU9e307cmV0dXJuIGZ1bmN0aW9uKGYpe3ZhciBnPWYmJgpmW0dmLlliXTtpZighZ3x8dHlwZW9mIGchPT0ic3RyaW5nIilyZXR1cm4hMDtnPWcucmVwbGFjZSgvXl8qLywiIik7aWYoZVtnXSE9PXZvaWQgMClyZXR1cm4gZVtnXTt2YXIgaD1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSlbZ118fFtdLGw9ITA7YSYmKGw9bCYmQ0EoZyxoLGIpKTt2YXIgbj0hMTtjJiYobj1EQShnLGgsZCkpO3ZhciBwPSFsfHxuOyFwJiYoaC5pbmRleE9mKCJzYW5kYm94ZWRTY3JpcHRzIik9PT0tMXx8YiYmYi5pbmRleE9mKCJzYW5kYm94ZWRTY3JpcHRzIikhPT0tMT8wOkViKGQsekEpKSYmKHA9ITApO3JldHVybiBlW2ddPXB9fWZ1bmN0aW9uIENBKGEsYixjKXtpZihjLmluZGV4T2YoYSk8MClpZihiJiZiLmxlbmd0aD4wKWZvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXtpZihjLmluZGV4T2YoYltkXSk8MClyZXR1cm4gUCgxMSksITF9ZWxzZSByZXR1cm4hMTtyZXR1cm4hMH0KZnVuY3Rpb24gREEoYSxiLGMpe3ZhciBkPWMuaW5kZXhPZihhKT49MDtpZihkKXJldHVybiBkO3ZhciBlPUViKGMsYnx8W10pO2UmJlAoMTApO3JldHVybiBlfWZ1bmN0aW9uIEJBKCl7cmV0dXJuIHdBLnRlc3QoQS5sb2NhdGlvbiYmQS5sb2NhdGlvbi5ob3N0bmFtZSl9O2Z1bmN0aW9uIEVBKGEpe2Zvcih2YXIgYj1bXSxjPVtdLGQ9RkEoYSksZT1tKGNBLmdldFJ1bGVzKCkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXtmb3IodmFyIGc9Zi52YWx1ZS5ldmFsdWF0ZShhLGQpLGg9Zy5maXJpbmdUYWdzLGw9Zy5ibG9ja2luZ1RhZ3Msbj0wO248aC5sZW5ndGg7bisrKWJbaFtuXV09ITA7Zm9yKHZhciBwPTA7cDxsLmxlbmd0aDtwKyspY1tsW3BdXT0hMH1mb3IodmFyIHE9W10scj0wO3I8Y0EudGFncy5sZW5ndGg7cisrKWJbcl0mJiFjW3JdJiYocVtyXT0hMCk7cmV0dXJuIHF9ZnVuY3Rpb24gRkEoYSl7dmFyIGI9W107cmV0dXJuIGZ1bmN0aW9uKGMpe2JbY109PT12b2lkIDAmJihiW2NdPWNBLnByZWRpY2F0ZXNbY10uZXZhbHVhdGUoYSxbXSkpO3JldHVybiBiW2NdfX07dmFyIEdBPWZ1bmN0aW9uKCl7dGhpcy5LPTA7dGhpcy5IPXt9fTtHQS5wcm90b3R5cGUuYWRkTGlzdGVuZXI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSsrdGhpcy5LO3RoaXMuSFthXT10aGlzLkhbYV18fHt9O3RoaXMuSFthXVtTdHJpbmcoZCldPXtsaXN0ZW5lcjpiLHJmOmN9O3JldHVybiBkfTtHQS5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLkhbYV0sZD1TdHJpbmcoYik7aWYoIWN8fCFjW2RdKXJldHVybiExO2RlbGV0ZSBjW2RdO3JldHVybiEwfTt2YXIgSUE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtHYihIQS5IW2FdLGZ1bmN0aW9uKGQsZSl7Yy5pbmRleE9mKGUubGlzdGVuZXIpPDAmJihlLnJmPT09dm9pZCAwfHxiLmluZGV4T2YoZS5yZik+PTApJiZjLnB1c2goZS5saXN0ZW5lcil9KTtyZXR1cm4gY307ZnVuY3Rpb24gSkEoYSxiLGMpe3JldHVybntlbnRpdHlUeXBlOmEsaW5kZXhJbk9yaWdpbkNvbnRhaW5lcjpiLG5hbWVJbk9yaWdpbkNvbnRhaW5lcjpjLG9yaWdpbkNvbnRhaW5lcklkOkUoNSksb3JpZ2luQ0lkOnZrKCl9fTtmdW5jdGlvbiBLQShhLGIpe2lmKGRhdGEuZW50aXRpZXMpe3ZhciBjPWRhdGEuZW50aXRpZXNbYV07aWYoYylyZXR1cm4gY1tiXX19O3ZhciBNQT1mdW5jdGlvbihhLGIpe3RoaXMuSD0hMTt0aGlzLlI9W107dGhpcy5ldmVudERhdGE9e3RhZ3M6W119O3RoaXMuWj0hMTt0aGlzLks9dGhpcy5OPTA7TEEodGhpcyxhLGIpfSxOQT1mdW5jdGlvbihhLGIsYyxkKXtpZihDai5oYXNPd25Qcm9wZXJ0eShiKXx8Yj09PSJfX3pvbmUiKXJldHVybi0xO3ZhciBlPXt9O0NkKGQpJiYoZT1FZChkLGUpKTtlLmlkPWM7ZS5zdGF0dXM9InRpbWVvdXQiO3JldHVybiBhLmV2ZW50RGF0YS50YWdzLnB1c2goZSktMX0sT0E9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5ldmVudERhdGEudGFnc1tiXTtlJiYoZS5zdGF0dXM9YyxlLmV4ZWN1dGlvblRpbWU9ZCl9LFBBPWZ1bmN0aW9uKGEpe2lmKCFhLkgpe2Zvcih2YXIgYj1hLlIsYz0wO2M8Yi5sZW5ndGg7YysrKWJbY10oKTthLkg9ITA7YS5SLmxlbmd0aD0wfX0sTEE9ZnVuY3Rpb24oYSxiLGMpe2IhPT12b2lkIDAmJmEud2coYik7YyYmQS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7UEEoYSl9LApOdW1iZXIoYykpfTtNQS5wcm90b3R5cGUud2c9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPVBiKGZ1bmN0aW9uKCl7YmQoZnVuY3Rpb24oKXthKEUoNSksYi5ldmVudERhdGEpfSl9KTt0aGlzLkg/YygpOnRoaXMuUi5wdXNoKGMpfTt2YXIgUUE9ZnVuY3Rpb24oYSl7YS5OKys7cmV0dXJuIFBiKGZ1bmN0aW9uKCl7YS5LKys7YS5aJiZhLks+PWEuTiYmUEEoYSl9KX0sUkE9ZnVuY3Rpb24oYSl7YS5aPSEwO2EuSz49YS5OJiZQQShhKX07ZnVuY3Rpb24gU0EoKXtyZXR1cm4gQVtUQSgpXX0KZnVuY3Rpb24gVEEoKXtyZXR1cm4gQS5Hb29nbGVBbmFseXRpY3NPYmplY3R8fCJnYSJ9dmFyIFdBPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fX07ZnVuY3Rpb24gWEEoKXthOnt2YXIgYT1FKDUpO319CmZ1bmN0aW9uIFlBKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGM9U0EoKSxkPWMmJmMuZ2V0QnlOYW1lJiZjLmdldEJ5TmFtZShhKTtpZihkKXt2YXIgZT1kLmdldCgic2VuZEhpdFRhc2siKTtkLnNldCgic2VuZEhpdFRhc2siLGZ1bmN0aW9uKGYpe3ZhciBnPWYuZ2V0KCJoaXRQYXlsb2FkIiksaD1mLmdldCgiaGl0Q2FsbGJhY2siKSxsPWcuaW5kZXhPZigiJnRpZD0iK2IpPDA7bCYmKGYuc2V0KCJoaXRQYXlsb2FkIixnLnJlcGxhY2UoLyZ0aWQ9VUEtWzAtOV0rLVswLTldKy8sIiZ0aWQ9IitiKSwhMCksZi5zZXQoImhpdENhbGxiYWNrIix2b2lkIDAsITApKTtlKGYpO2wmJihmLnNldCgiaGl0UGF5bG9hZCIsZywhMCksZi5zZXQoImhpdENhbGxiYWNrIixoLCEwKSxmLnNldCgiX3hfMTkiLHZvaWQgMCwhMCksZShmKSl9KX19fTt2YXIgYUI9WyJlcyIsIjEiXSxiQj1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5ldmVudERhdGE9e307dGhpcy5IPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjO3ZhciBkPWIuZXZlbnRJZCxlPWIudGY7aWYoYS5ldmVudERhdGFbZF0pe3ZhciBmPVtdO2EuSFtkXXx8Zi5wdXNoKGFCKTtmLnB1c2guYXBwbHkoZix3KGEuZXZlbnREYXRhW2RdKSk7ZSYmKGEuSFtkXT0hMCk7Yz1mfWVsc2UgYz1bXTtyZXR1cm4gY30pfSxjQjtmdW5jdGlvbiBkQihhLGIpe3ZhciBjO2lmKChjPWNCKSE9bnVsbCYmZm4uTil7dmFyIGQ9Yy5ldmVudERhdGEsZTtlPWIubWF0Y2goL14oZ3RtfGd0YWcpXC4vKT9lbmNvZGVVUklDb21wb25lbnQoYik6IioiO2RbYV09W1siZSIsZV0sWyJlaWQiLFN0cmluZyhhKV1dO2d6KCk7ZXooYSl9fTt2YXIgZUI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD17fTt0aGlzLks9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9Yi5ldmVudElkLGQ9Yi50ZixlPVtdLGY9YS5IW2NdfHxbXTtmLmxlbmd0aCYmZS5wdXNoKFsidHIiLGYuam9pbigiLiIpXSk7dmFyIGc9YS5LW2NdfHxbXTtnLmxlbmd0aCYmZS5wdXNoKFsidGkiLGcuam9pbigiLiIpXSk7ZCYmKGRlbGV0ZSBhLkhbY10sZGVsZXRlIGEuS1tjXSk7cmV0dXJuIGV9KX0sZkI7CmZ1bmN0aW9uIGdCKGEsYixjKXtmQnx8KGZCPW5ldyBlQik7dmFyIGQ9ZkI7aWYoZm4uTiYmYil7dmFyIGU9ZG4oYik7ZC5IW2FdPWQuSFthXXx8W107ZC5IW2FdLnB1c2goYytlKTt2YXIgZj1iW0dmLlliXTtpZighZil0aHJvdyBFcnJvcigiRXJyb3I6IE5vIGZ1bmN0aW9uIG5hbWUgZ2l2ZW4gZm9yIGZ1bmN0aW9uIGNhbGwuIik7dmFyIGc9KFF6W2ZdPyIxIjoiMiIpK2U7ZC5LW2FdPWQuS1thXXx8W107ZC5LW2FdLnB1c2goZyk7Z3ooKTtleihhKX19O2Z1bmN0aW9uIGhCKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6YztpQigpLmFkZFJlc3RyaWN0aW9uKDAsYSxiLGMpfWZ1bmN0aW9uIGpCKCl7dmFyIGE9dmsoKTtyZXR1cm4gaUIoKS5nZXRSZXN0cmljdGlvbnMoMCxhKX1mdW5jdGlvbiBrQihhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7aUIoKS5hZGRSZXN0cmljdGlvbigxLGEsYixjKX1mdW5jdGlvbiBsQigpe3ZhciBhPXZrKCk7cmV0dXJuIGlCKCkuZ2V0UmVzdHJpY3Rpb25zKDEsYSl9dmFyIG1CPWZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXI9e307dGhpcy5IPXt9fSxuQj1mdW5jdGlvbihhLGIpe3ZhciBjPWEuY29udGFpbmVyW2JdO2N8fChjPXtfZW50aXR5OntpbnRlcm5hbDpbXSxleHRlcm5hbDpbXX0sX2V2ZW50OntpbnRlcm5hbDpbXSxleHRlcm5hbDpbXX19LGEuY29udGFpbmVyW2JdPWMpO3JldHVybiBjfTsKbUIucHJvdG90eXBlLmFkZFJlc3RyaWN0aW9uPWZ1bmN0aW9uKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO2lmKCFkfHwhdGhpcy5IW2JdKXt2YXIgZT1uQih0aGlzLGIpO2E9PT0wP2Q/ZS5fZW50aXR5LmV4dGVybmFsLnB1c2goYyk6ZS5fZW50aXR5LmludGVybmFsLnB1c2goYyk6YT09PTEmJihkP2UuX2V2ZW50LmV4dGVybmFsLnB1c2goYyk6ZS5fZXZlbnQuaW50ZXJuYWwucHVzaChjKSl9fTsKbUIucHJvdG90eXBlLmdldFJlc3RyaWN0aW9ucz1mdW5jdGlvbihhLGIpe3ZhciBjPW5CKHRoaXMsYik7aWYoYT09PTApe3ZhciBkLGU7cmV0dXJuW10uY29uY2F0KHcoKGM9PW51bGw/dm9pZCAwOihkPWMuX2VudGl0eSk9PW51bGw/dm9pZCAwOmQuaW50ZXJuYWwpfHxbXSksdygoYz09bnVsbD92b2lkIDA6KGU9Yy5fZW50aXR5KT09bnVsbD92b2lkIDA6ZS5leHRlcm5hbCl8fFtdKSl9aWYoYT09PTEpe3ZhciBmLGc7cmV0dXJuW10uY29uY2F0KHcoKGM9PW51bGw/dm9pZCAwOihmPWMuX2V2ZW50KT09bnVsbD92b2lkIDA6Zi5pbnRlcm5hbCl8fFtdKSx3KChjPT1udWxsP3ZvaWQgMDooZz1jLl9ldmVudCk9PW51bGw/dm9pZCAwOmcuZXh0ZXJuYWwpfHxbXSkpfXJldHVybltdfTsKbUIucHJvdG90eXBlLmdldEV4dGVybmFsUmVzdHJpY3Rpb25zPWZ1bmN0aW9uKGEsYil7dmFyIGM9bkIodGhpcyxiKSxkLGU7cmV0dXJuIGE9PT0wPyhjPT1udWxsP3ZvaWQgMDooZD1jLl9lbnRpdHkpPT1udWxsP3ZvaWQgMDpkLmV4dGVybmFsKXx8W106KGM9PW51bGw/dm9pZCAwOihlPWMuX2V2ZW50KT09bnVsbD92b2lkIDA6ZS5leHRlcm5hbCl8fFtdfTttQi5wcm90b3R5cGUucmVtb3ZlRXh0ZXJuYWxSZXN0cmljdGlvbnM9ZnVuY3Rpb24oYSl7dmFyIGI9bkIodGhpcyxhKTtiLl9ldmVudCYmKGIuX2V2ZW50LmV4dGVybmFsPVtdKTtiLl9lbnRpdHkmJihiLl9lbnRpdHkuZXh0ZXJuYWw9W10pO3RoaXMuSFthXT0hMH07ZnVuY3Rpb24gaUIoKXtyZXR1cm4ga2ooInIiLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBtQn0pfTtmdW5jdGlvbiBvQihhLGIsYyxkKXt2YXIgZT1jQS50YWdzW2FdLGY9cEIoYSxiLGMsZCk7aWYoIWYpcmV0dXJuIG51bGw7dmFyIGc9WnooZSxjKTtpZihnJiZnLmxlbmd0aCl7dmFyIGg9Z1swXTtmPW9CKGguaW5kZXgse29uU3VjY2VzczpmLG9uRmFpbHVyZTpoLmJvPT09MT9iLnRlcm1pbmF0ZTpmLHRlcm1pbmF0ZTpiLnRlcm1pbmF0ZX0sYyxkKX1yZXR1cm4gZn0KZnVuY3Rpb24gcEIoYSxiLGMsZCl7ZnVuY3Rpb24gZSgpe2Z1bmN0aW9uIHkoKXtpbSgzKTt2YXIgUz1OYigpLU47SkEoMSxhLGYuZ2V0TmFtZSgpKTtnQihjLmlkLGcsIjciKTtPQShjLmxkLEQsImV4Y2VwdGlvbiIsUyk7Zm4uSCYmRnooYyxnLEl5LlgudWopO0l8fChJPSEwLGwoKSl9aWYoZi5JYVtHZi5PcV0pbCgpO2Vsc2V7dmFyIHo9YUEoZixjKTtpZih6IT1udWxsKWZvcih2YXIgQz0wO0M8ei5sZW5ndGg7QysrKWlmKCFYbyh6W0NdKSl7bCgpO3JldHVybn12YXIgRD1OQShjLmxkLGYuTyxmLnRhZ0lkLGYuZ2V0TWV0YWRhdGEoYykpLEk9ITEsRz17dnRwX2d0bU9uU3VjY2VzczpmdW5jdGlvbigpe2lmKCFJKXtJPSEwO3ZhciBTPU5iKCktTjtnQihjLmlkLGcsIjUiKTtPQShjLmxkLEQsInN1Y2Nlc3MiLFMpO2ZuLkgmJkZ6KGMsZyxJeS5YLndqKTtoKCl9fSx2dHBfZ3RtT25GYWlsdXJlOmZ1bmN0aW9uKCl7aWYoIUkpe0k9ITA7dmFyIFM9TmIoKS1OO2dCKGMuaWQsZywiNiIpOwpPQShjLmxkLEQsImZhaWx1cmUiLFMpO2ZuLkgmJkZ6KGMsZyxJeS5YLnZqKTtsKCl9fX07Ry52dHBfZ3RtRXZlbnRJZD1jLmlkO2MucHJpb3JpdHlJZCYmKEcudnRwX2d0bVByaW9yaXR5SWQ9Yy5wcmlvcml0eUlkKTtnQihjLmlkLGcsIjEiKTtmbi5IJiZFeihjLGcpO3ZhciBOPU5iKCk7dHJ5e2YuZXZhbHVhdGUoYyxkLEcpfWNhdGNoKFMpe3koUyl9Zm4uSCYmRnooYyxnLEl5LlguQ24pfX12YXIgZj1jQS50YWdzW2FdLGc9Zi5GZygpLGg9Yi5vblN1Y2Nlc3MsbD1iLm9uRmFpbHVyZSxuPWIudGVybWluYXRlO2lmKGMuaXNCbG9ja2VkKGcpKXJldHVybiBudWxsO3ZhciBwPSR6KGYsYyk7aWYocCYmcC5sZW5ndGgpe3ZhciBxPXBbMF0scj1vQihxLmluZGV4LHtvblN1Y2Nlc3M6aCxvbkZhaWx1cmU6bCx0ZXJtaW5hdGU6bn0sYyxkKTtpZighcilyZXR1cm4gbnVsbDtoPXI7bD1xLmJvPT09Mj9uOnJ9aWYoZi5JYVtHZi5rbl18fGYuSWFbR2YuUXFdKXt2YXIgdD1mLklhW0dmLmtuXT8KY0Eudms6Yy52ayx1PWgsdj1sO2lmKCF0W2FdKXt2YXIgeD1xQihhLHQsUGIoZSkpO2g9eC5vblN1Y2Nlc3M7bD14Lm9uRmFpbHVyZX1yZXR1cm4gZnVuY3Rpb24oKXt0W2FdKHUsdil9fXJldHVybiBlfWZ1bmN0aW9uIHFCKGEsYixjKXt2YXIgZD1bXSxlPVtdO2JbYV09ckIoZCxlLGMpO3JldHVybntvblN1Y2Nlc3M6ZnVuY3Rpb24oKXtiW2FdPXNCO2Zvcih2YXIgZj0wO2Y8ZC5sZW5ndGg7ZisrKWRbZl0oKX0sb25GYWlsdXJlOmZ1bmN0aW9uKCl7YlthXT10Qjtmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKyllW2ZdKCl9fX1mdW5jdGlvbiByQihhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKGQsZSl7YS5wdXNoKGQpO2IucHVzaChlKTtjKCl9fWZ1bmN0aW9uIHNCKGEpe2EoKX1mdW5jdGlvbiB0QihhLGIpe2IoKX07dmFyIHdCPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGNBLnRhZ3MubGVuZ3RoO2QrKylpZihhW2RdKXt2YXIgZT1jQS50YWdzW2RdO3ZhciBmPVFBKGIubGQpO3RyeXt2YXIgZz1vQihkLHtvblN1Y2Nlc3M6ZixvbkZhaWx1cmU6Zix0ZXJtaW5hdGU6Zn0sYixkKTtpZihnKXt2YXIgaD1ReltlLk9dO2MucHVzaCh7Tm86ZCxwcmlvcml0eU92ZXJyaWRlOihoP2gucHJpb3JpdHlPdmVycmlkZXx8MDowKXx8S0EoZS5PLDEpfHwwLGV4ZWN1dGU6Z30pfWVsc2UgdUIoZCxiKSxmKCl9Y2F0Y2gobil7ZigpfX1jLnNvcnQodkIpO2Zvcih2YXIgbD0wO2w8Yy5sZW5ndGg7bCsrKWNbbF0uZXhlY3V0ZSgpO3JldHVybiBjLmxlbmd0aD4wfTsKZnVuY3Rpb24geEIoYSxiKXtpZighSEEpcmV0dXJuITE7dmFyIGM9YVsiZ3RtLnRyaWdnZXJzIl0mJlN0cmluZyhhWyJndG0udHJpZ2dlcnMiXSksZD1JQShhLmV2ZW50LGM/U3RyaW5nKGMpLnNwbGl0KCIsIik6W10pO2lmKCFkLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIGU9MDtlPGQubGVuZ3RoOysrZSl7dmFyIGY9UUEoYik7dHJ5e2RbZV0oYSxmKX1jYXRjaChnKXtmKCl9fXJldHVybiEwfWZ1bmN0aW9uIHZCKGEsYil7dmFyIGMsZD1iLnByaW9yaXR5T3ZlcnJpZGUsZT1hLnByaW9yaXR5T3ZlcnJpZGU7Yz1kPmU/MTpkPGU/LTE6MDt2YXIgZjtpZihjIT09MClmPWM7ZWxzZXt2YXIgZz1hLk5vLGg9Yi5ObztmPWc+aD8xOmc8aD8tMTowfXJldHVybiBmfQpmdW5jdGlvbiB1QihhLGIpe2lmKGZuLk4pe3ZhciBjPWZ1bmN0aW9uKGQpe3ZhciBlPWIuaXNCbG9ja2VkKGNBLnRhZ3NbZF0uRmcoKSk/IjMiOiI0IixmPVp6KGNBLnRhZ3NbZF0sYik7ZiYmZi5sZW5ndGgmJmMoZlswXS5pbmRleCk7Z0IoYi5pZCxjQS50YWdzW2RdLkZnKCksZSk7dmFyIGc9JHooY0EudGFnc1tkXSxiKTtnJiZnLmxlbmd0aCYmYyhnWzBdLmluZGV4KX07YyhhKX19dmFyIEhBO2Z1bmN0aW9uIHlCKCl7SEF8fChIQT1uZXcgR0EpO3JldHVybiBIQX0KZnVuY3Rpb24gekIoYSl7dmFyIGI9YVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXSxjPWFbImd0bS5wcmlvcml0eUlkIl0sZD1hWyJndG0ucHJpb3JpdHlRdWV1ZSJdLGU9YS5ldmVudDtmbi5IJiZ2eihiLGUpO2lmKGU9PT0iZ3RtLmpzIil7aWYoJGsoMTMpKXJldHVybiExO1prKDEzLCEwKX12YXIgZj0hMSxnPWxCKCksaD1FZChhLG51bGwpO2lmKCFnLmV2ZXJ5KGZ1bmN0aW9uKHUpe3JldHVybiB1KHtvcmlnaW5hbEV2ZW50RGF0YTpofSl9KSl7aWYoZSE9PSJndG0uanMiJiZlIT09Imd0bS5pbml0IiYmZSE9PSJndG0uaW5pdF9jb25zZW50IilyZXR1cm4hMTtmPSEwfWRCKGIsZSk7dmFyIGw9YS5ldmVudENhbGxiYWNrLG49YS5ldmVudFRpbWVvdXQscD17aWQ6Yixwcmlvcml0eUlkOmMscHJpb3JpdHlRdWV1ZTpkLG5hbWU6ZSxpc0Jsb2NrZWQ6QUIoaCxmKSx2azpbXSxsb2dNYWNyb0Vycm9yOmZ1bmN0aW9uKHUsdix4KXtQKDYpO2ltKDQpO0pBKDIsdix4KX0sY2FjaGVkTW9kZWxWYWx1ZXM6QkIoKSwKbGQ6bmV3IE1BKGZ1bmN0aW9uKCl7Zm4uSCYmeXooYixlKTtGeSg1LGUpO2wmJmwuYXBwbHkobCxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpfSxuKSxvcmlnaW5hbEV2ZW50RGF0YTpofTtmbi5IJiZDeihwLmlkKTt2YXIgcT1FQShwKTtmbi5IJiZEeihwLmlkKTtGeSgyLGUpO2NBLmdldFJ1bGVzKCk7ZiYmKHE9Q0IocSkpO2ZuLkgmJnd6KGIpO3ZhciByPXdCKHEscCk7ciYmRnkoNCxlKTt2YXIgdD14QihhLHAubGQpO1JBKHAubGQpO2UhPT0iZ3RtLmpzIiYmZSE9PSJndG0uc3luYyJ8fFhBKCk7cmV0dXJuIERCKHEscil8fHR9CmZ1bmN0aW9uIEJCKCl7dmFyIGE9e307YS5ldmVudD12QSgiZXZlbnQiLDEpO2EuZWNvbW1lcmNlPXZBKCJlY29tbWVyY2UiLDEpO2EuZ3RtPXZBKCJndG0iKTthLmV2ZW50TW9kZWw9dkEoImV2ZW50TW9kZWwiKTtyZXR1cm4gYX0KZnVuY3Rpb24gQUIoYSxiKXt2YXIgYz1BQSgpO3JldHVybiBmdW5jdGlvbihkKXt2YXIgZT1jKGQpO2lmKGUpcmV0dXJuITA7dmFyIGY9ZCYmZFtHZi5ZYl07aWYoIWZ8fHR5cGVvZiBmIT09InN0cmluZyIpcmV0dXJuITA7Zj1mLnJlcGxhY2UoL15fKi8sIiIpO3ZhciBnPWpCKCksaD1hO2ImJihoPUVkKGEsbnVsbCksaFsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUik7Zm9yKHZhciBsPSExLG49YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pW2ZdfHxbXSxwPW0oZykscT1wLm5leHQoKTshcS5kb25lO3E9cC5uZXh0KCkpe3ZhciByPXEudmFsdWU7dHJ5e3Ioe2VudGl0eUlkOmYsc2VjdXJpdHlHcm91cHM6bixvcmlnaW5hbEV2ZW50RGF0YTpofSl8fChsPSEwKX1jYXRjaCh0KXtsPSEwfX1yZXR1cm4gbHx8ZX19CmZ1bmN0aW9uIENCKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspaWYoYVtjXSl7dmFyIGQ9Y0EudGFnc1tjXS5PO2lmKEJqW2RdfHxjQS50YWdzW2NdLklhW0dmLlJxXSE9PXZvaWQgMHx8S0EoZCwyKSliW2NdPSEwfXJldHVybiBifWZ1bmN0aW9uIERCKGEsYil7aWYoIWIpcmV0dXJuIGI7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYVtjXSYmY0EudGFnc1tjXSYmIUNqW2NBLnRhZ3NbY10uT10pcmV0dXJuITA7cmV0dXJuITF9O3ZhciBFQj1OZig2MSwxRTMpLEZCPU5mKDY4LDJFMyksWm89WyJhZF9zdG9yYWdlIiwiYW5hbHl0aWNzX3N0b3JhZ2UiXTtmdW5jdGlvbiBHQihhLGIpe2lmKGEpe3ZhciBjPWtqKCJndGgiLGZ1bmN0aW9uKCl7cmV0dXJue319KSxkO2EhPT0yfHwoKGQ9SEIoKSk9PW51bGw/dm9pZCAwOmQuc3RhdHVzKSE9PTN8fGIhPT12b2lkIDAmJmI8PUZCfHwoYT0zLGMuZGw9Yj9NYXRoLmZsb29yKGIvMUUzKTp2b2lkIDApO2Mucz1hO0lCKGMpfX1mdW5jdGlvbiBJQihhKXtpZihhLnMpe3ZhciBiPWZ1bmN0aW9uKCl7dmFyIGM9e3N0YXR1czphLnMsZXhwaXJlczpEYXRlLm5vdygpKzg2NEU1fTthLmRsIT09dm9pZCAwJiYoYy5kZWxheT1hLmRsKTtrcigiZ3RnX2xvYWRfc3RhdHVzIixjKX07YnAoZnVuY3Rpb24oKXtpZihZbygpKWIoKTtlbHNlIGZvcih2YXIgYz1QYihiKSxkPW0oWm8pLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKUlsKGMsZS52YWx1ZSl9LFpvKX19CmZ1bmN0aW9uIEpCKCl7dmFyIGE9S0IoITApO3JldHVybiBhPyhMQihhLnN0YXR1cyxhLmRlbGF5KSwhMSk6ITB9ZnVuY3Rpb24gS0IoYSl7YT1hPT09dm9pZCAwPyExOmE7aWYoYWsoKSl7dmFyIGI9bnIoImd0Z19sb2FkX3N0YXR1cyIpLGM9Yi52YWx1ZSxkPWEmJkFiKGM9PW51bGw/dm9pZCAwOmMuZXhwaXJlcykmJihjPT1udWxsP3ZvaWQgMDpjLmV4cGlyZXMpPERhdGUubm93KCkrMzZFNTtpZihiLmVycm9yPT09MCYmQWIoYz09bnVsbD92b2lkIDA6Yy5zdGF0dXMpJiYhZCl7dmFyIGU9e3N0YXR1czpjLnN0YXR1c307KGM9PW51bGw/dm9pZCAwOmMuZGVsYXkpIT09dm9pZCAwJiYoZS5kZWxheT1jLmRlbGF5KTtyZXR1cm4gZX1yZXR1cm4gSEIoKX19ZnVuY3Rpb24gTEIoYSxiKXt2YXIgYz1raigiZ3RoIixmdW5jdGlvbigpe3JldHVybnt9fSk7Yy5zPWE7YiE9PXZvaWQgMCYmKGMuZGw9Yil9CmZ1bmN0aW9uIEhCKCl7dmFyIGE9bWooImd0aCIpO2lmKGEhPW51bGwmJmEucyl7dmFyIGI9e3N0YXR1czphLnN9O2EuZGwhPT12b2lkIDAmJihiLmRlbGF5PWEuZGwpO3JldHVybiBifX1mdW5jdGlvbiBNQigpe3ZhciBhOygoYT1IQigpKT09bnVsbD92b2lkIDA6YS5zdGF0dXMpPT09MSYmR0IoMyl9ZnVuY3Rpb24gTkIoKXtpZihKQigpKXt2YXIgYT1EYXRlLm5vdygpO25qKCJndGgiLHtsOmZ1bmN0aW9uKCl7R0IoMixEYXRlLm5vdygpLWEpfSxzOjF9KTt2YXIgYj1FKDUpLGM9U2IoYiwiR1RNLSIpPyIvZ3RtLmpzIjoiL2d0YWcvanMiLGQ9Imh0dHBzOi8vIitFKDMpK2MrIj9pZD0iK2IrIiZndGdfaGVhbHRoPTEiO1VjKGQsTUIsTUIpO0Euc2V0VGltZW91dChNQixFQil9fTtmdW5jdGlvbiBPQigpe3lCKCkuYWRkTGlzdGVuZXIoImd0bS5pbml0IixmdW5jdGlvbihhLGIpe1prKDI2LCEwKTtNKDU1NikmJmFrKCkmJiFJZig0NSkmJihmby5IW2NvLmlhLlpiXT1iby5NYS5MaCk7aWYoYWsoKSl7dmFyIGM7Yz1sbyhjby5pYS5aYik7Z28oYyk/aW8oYyxOQik6TkIoKX10byghMSwhMCk7YigpfSl9O2Z1bmN0aW9uIFBCKCl7aWYobWooInBzY2RsIikhPT12b2lkIDApbm0oam0uYmEub2kpPT09dm9pZCAwJiZtbShqbS5iYS5vaSxtaigicHNjZGwiKSk7ZWxzZXt2YXIgYT1mdW5jdGlvbihjKXtuaigicHNjZGwiLGMpO21tKGptLmJhLm9pLGMpfSxiPWZ1bmN0aW9uKCl7YSgiZXJyb3IiKX07dHJ5e0hjLmNvb2tpZURlcHJlY2F0aW9uTGFiZWw/KGEoInBlbmRpbmciKSxIYy5jb29raWVEZXByZWNhdGlvbkxhYmVsLmdldFZhbHVlKCkudGhlbihhKS5jYXRjaChiKSk6YSgibm9hcGkiKX1jYXRjaChjKXtiKGMpfX19O3ZhciBSQj1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5yZWFkeT0hMTt0aGlzLks9MDt0aGlzLkg9W107dmFyIGI9QTtpZihCLnJlYWR5U3RhdGU9PT0iaW50ZXJhY3RpdmUiJiYhQi5jcmVhdGVFdmVudE9iamVjdHx8Qi5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIil0aGlzLm9uUmVhZHkoKTtlbHNleyRjKEIsIkRPTUNvbnRlbnRMb2FkZWQiLGZ1bmN0aW9uKGQpe3JldHVybiB2b2lkIGEub25SZWFkeShkKX0pOyRjKEIsInJlYWR5c3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKGQpe3JldHVybiB2b2lkIGEub25SZWFkeShkKX0pO2lmKEIuY3JlYXRlRXZlbnRPYmplY3QmJkIuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKXt2YXIgYz0hMDt0cnl7Yz0hYi5mcmFtZUVsZW1lbnR9Y2F0Y2goZCl7fWMmJlFCKHRoaXMpfSRjKGIsImxvYWQiLGZ1bmN0aW9uKGQpe3JldHVybiB2b2lkIGEub25SZWFkeShkKX0pfX07UkIucHJvdG90eXBlLmlzUmVhZHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkeX07ClJCLnByb3RvdHlwZS5vblJlYWR5PWZ1bmN0aW9uKGEpe2lmKCF0aGlzLnJlYWR5KXt2YXIgYj1CLmNyZWF0ZUV2ZW50T2JqZWN0LGM9Qi5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIixkPUIucmVhZHlTdGF0ZT09PSJpbnRlcmFjdGl2ZSI7aWYoIWF8fGEudHlwZSE9PSJyZWFkeXN0YXRlY2hhbmdlInx8Y3x8IWImJmQpe3RoaXMucmVhZHk9ITA7Zm9yKHZhciBlPTA7ZTx0aGlzLkgubGVuZ3RoO2UrKyliZCh0aGlzLkhbZV0pfXRoaXMuSC5wdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciBmPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxnPTA7ZzxmLmxlbmd0aDtnKyspYmQoZltnXSk7cmV0dXJuIDB9fX07CnZhciBRQj1mdW5jdGlvbihhKXtpZighYS5yZWFkeSYmYS5LPDE0MCl7YS5LKys7dHJ5e3ZhciBiLGM7KGM9KGI9Qi5kb2N1bWVudEVsZW1lbnQpLmRvU2Nyb2xsKT09bnVsbHx8Yy5jYWxsKGIsImxlZnQiKTthLm9uUmVhZHkoKX1jYXRjaChkKXtBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBRQihhKX0sNTApfX19LFNCO2Z1bmN0aW9uIFRCKCl7U0J8fChTQj1uZXcgUkIpfWZ1bmN0aW9uIFVCKCl7VEIoKTt2YXIgYTtyZXR1cm4oYT1TQik9PW51bGw/dm9pZCAwOmEuaXNSZWFkeSgpfWZ1bmN0aW9uIFZCKGEpe1RCKCk7dmFyIGI7KGI9U0IpIT1udWxsJiYoYi5yZWFkeT9iZChhKTpiLkgucHVzaChhKSl9O3ZhciBYQj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9V0IsZTtpZigoZT1kLkgpPT1udWxsfHwhZS5Pcil7dmFyIGY9T2JqZWN0LmtleXMoYikubGVuZ3RoPjA/MjoxLGcsaCxsPShjPT1udWxsP3ZvaWQgMDooaD1jLm9yaWdpbmF0aW5nRW50aXR5KT09bnVsbD92b2lkIDA6aC5vcmlnaW5Db250YWluZXJJZCl8fCIiO2c9bD9TYihsLCJHVE0tIik/MzoyOjE7aWYoIWEpZC5IPXt0eXBlOmYsc291cmNlOmcscGFyYW1zOmJ9O2Vsc2UgaWYoZC5IKXtQKDE4NCk7dmFyIG49ITE7ZC5ILnNvdXJjZT09PWd8fGQuSC5zb3VyY2UhPT0zJiZnIT09M3x8KFVtKCJpZGNzIiwiMSIpLG49ITApO2QuSC50eXBlIT09MiYmZiE9PTJ8fFAoMTg2KTt2YXIgcDtpZihwPWQuSC50eXBlPT09MiYmZj09PTIpYTp7dmFyIHE9ZC5ILnBhcmFtcyxyPU9iamVjdC5rZXlzKHEpLHQ9T2JqZWN0LmtleXMoYik7aWYoci5sZW5ndGghPT10Lmxlbmd0aClwPSEwO2Vsc2V7Zm9yKHZhciB1PW0ociksdj11Lm5leHQoKTshdi5kb25lO3Y9CnUubmV4dCgpKXt2YXIgeD12LnZhbHVlO2lmKCFiLmhhc093blByb3BlcnR5KHgpfHxxW3hdIT09Ylt4XSl7cD0hMDticmVhayBhfX1wPSExfX1wJiYoVW0oImlkY2MiLCIxIiksbj0hMCk7biYmKHRvKCksZC5ILk9yPSEwKX19fSxXQj1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9dm9pZCAwfTt2YXIgWkI9ZnVuY3Rpb24oYSl7dmFyIGI9WUI7KCFmbi5LfHxTYihFKDUpLCJHVE0tIik/MDphPT09dm9pZCAwKSYmYi5IPT09MCYmKFVtKCJtY2MiLCIxIiksYi5IPTEpfSxZQj1uZXcgZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0wO1VtKCJuY2MiLGZ1bmN0aW9uKCl7aWYoSWYoNDUpJiZhLkghPT0yKXJldHVybiIxIn0pfTt2YXIgJEI9L14oPzpBV3xEQ3xHfEdGfEdUfEhBfE1DfFVBKSQvLGFDPS9ccy87CmZ1bmN0aW9uIGJDKGEsYil7aWYoemIoYSkpe2E9TGIoYSk7dmFyIGM9YS5pbmRleE9mKCItIik7aWYoIShjPDApKXt2YXIgZD1hLnN1YnN0cmluZygwLGMpO2lmKCRCLnRlc3QoZCkpe3ZhciBlPWEuc3Vic3RyaW5nKGMrMSksZjtpZihiKXt2YXIgZz1mdW5jdGlvbihuKXt2YXIgcD1uLmluZGV4T2YoIi8iKTtyZXR1cm4gcDwwP1tuXTpbbi5zdWJzdHJpbmcoMCxwKSxuLnN1YnN0cmluZyhwKzEpXX07Zj1nKGUpO2lmKGQ9PT0iREMiJiZmLmxlbmd0aD09PTIpe3ZhciBoPWcoZlsxXSk7aC5sZW5ndGg9PT0yJiYoZlsxXT1oWzBdLGYucHVzaChoWzFdKSl9fWVsc2V7Zj1lLnNwbGl0KCIvIik7Zm9yKHZhciBsPTA7bDxmLmxlbmd0aDtsKyspaWYoIWZbbF18fGFDLnRlc3QoZltsXSkmJihkIT09IkFXInx8bCE9PTEpKXJldHVybn1yZXR1cm57aWQ6YSxwcmVmaXg6ZCxkZXN0aW5hdGlvbklkOmQrIi0iK2ZbMF0saWRzOmYsSmM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pZCE9PXRoaXMuZGVzdGluYXRpb25JZH19fX19fQpmdW5jdGlvbiBjQyhhLGIpe2Zvcih2YXIgYz17fSxkPTA7ZDxhLmxlbmd0aDsrK2Qpe3ZhciBlPWJDKGFbZF0sYik7ZSYmKGNbZS5pZF09ZSl9dmFyIGY9W10sZztmb3IoZyBpbiBjKWlmKGMuaGFzT3duUHJvcGVydHkoZykpe3ZhciBoPWNbZ107aC5wcmVmaXg9PT0iQVciJiZoLmlkc1tkQ1sxXV0mJmYucHVzaChoLmRlc3RpbmF0aW9uSWQpfWZvcih2YXIgbD0wO2w8Zi5sZW5ndGg7KytsKWRlbGV0ZSBjW2ZbbF1dO2Zvcih2YXIgbj1bXSxwPW0oT2JqZWN0LmtleXMoYykpLHE9cC5uZXh0KCk7IXEuZG9uZTtxPXAubmV4dCgpKW4ucHVzaChjW3EudmFsdWVdKTtyZXR1cm4gbn12YXIgZUM9e30sZEM9KGVDWzBdPTAsZUNbMV09MSxlQ1syXT0yLGVDWzNdPTAsZUNbNF09MSxlQ1s1XT0wLGVDWzZdPTAsZUNbN109MCxlQyk7dmFyIGZDPXtpbml0aWFsaXplZDoxMSxjb21wbGV0ZToxMixpbnRlcmFjdGl2ZToxM30sZ0M9e30saEM9T2JqZWN0LmZyZWV6ZSgoZ0NbRi5ELlRkXT0hMCxnQykpLGlDPWZ1bmN0aW9uKCl7dGhpcy5SPU5mKDM0LDUwMCk7dGhpcy5IPXt9O3RoaXMuTj17fTt0aGlzLks9dm9pZCAwfSxqQz1mdW5jdGlvbihhLGIsYyl7aWYoYy5sZW5ndGgmJmZuLkspe3ZhciBkOyhkPWEuSClbYl0hPW51bGx8fChkW2JdPVtdKTt2YXIgZTsoZT1hLk4pW2JdIT1udWxsfHwoZVtiXT1bXSk7dmFyIGY9Yy5maWx0ZXIoZnVuY3Rpb24oZyl7cmV0dXJuIWEuTltiXS5pbmNsdWRlcyhnKX0pO2EuSFtiXS5wdXNoLmFwcGx5KGEuSFtiXSx3KGYpKTthLk5bYl0ucHVzaC5hcHBseShhLk5bYl0sdyhmKSk7IWEuSyYmZi5sZW5ndGg+MCYmKFZtKCJ0ZGMiLCEwKSxhLks9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dG8oKTthLkg9e307YS5LPXZvaWQgMH0sYS5SKSl9fTsKaUMucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO1VtKCJ0ZGMiLGZ1bmN0aW9uKCl7YS5LJiYoQS5jbGVhclRpbWVvdXQoYS5LKSxhLks9dm9pZCAwKTt2YXIgYj1bXSxjO2ZvcihjIGluIGEuSClhLkguaGFzT3duUHJvcGVydHkoYykmJmIucHVzaChjKyIqIithLkhbY10uam9pbigiLiIpKTtyZXR1cm4gYi5sZW5ndGg/Yi5qb2luKCIhIik6dm9pZCAwfSwhMSl9Owp2YXIga0M9ZnVuY3Rpb24oYSxiKXt2YXIgYz17fSxkO2ZvcihkIGluIGIpYi5oYXNPd25Qcm9wZXJ0eShkKSYmKGNbZF09ITApO2Zvcih2YXIgZSBpbiBhKWEuaGFzT3duUHJvcGVydHkoZSkmJihjW2VdPSEwKTtyZXR1cm4gY30sbEM9ZnVuY3Rpb24oYSxiLGMsZCxlKXtkPWQ9PT12b2lkIDA/e306ZDtlPWU9PT12b2lkIDA/IiI6ZTtpZihiPT09YylyZXR1cm5bXTt2YXIgZj1mdW5jdGlvbih0LHUpe3ZhciB2O0FkKHUpPT09Im9iamVjdCI/dj11W3RdOkFkKHUpPT09ImFycmF5IiYmKHY9dVt0XSk7cmV0dXJuIHY9PT12b2lkIDA/aENbdF06dn0sZz1rQyhiLGMpLGg7Zm9yKGggaW4gZylpZihnLmhhc093blByb3BlcnR5KGgpJiZoIT09Ri5ELlhiKXt2YXIgbD0oZT9lKyIuIjoiIikraCxuPWYoaCxiKSxwPWYoaCxjKSxxPUFkKG4pPT09Im9iamVjdCJ8fEFkKG4pPT09ImFycmF5IixyPUFkKHApPT09Im9iamVjdCJ8fEFkKHApPT09ImFycmF5IjtpZihxJiZyKWxDKGEsbixwLGQsbCk7CmVsc2UgaWYocXx8cnx8biE9PXApZFtsXT0hMH1yZXR1cm4gT2JqZWN0LmtleXMoZCl9LG1DPW5ldyBpQzt2YXIgbkM9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5LPU5iKCk7dGhpcy5IPWI7dGhpcy5hcmdzPWM7dGhpcy5tZXNzYWdlQ29udGV4dD1kO3RoaXMudHlwZT1hfSxvQz1mdW5jdGlvbigpe3RoaXMuV2E9e307dGhpcy5pYj17fTt0aGlzLks9e307dGhpcy5OPW51bGw7dGhpcy5oYj17fTt0aGlzLkg9ITE7dGhpcy5zdGF0dXM9MX07ZnVuY3Rpb24gcEMoYSxiKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/cUMoInNldCIsYSk6cUMoInNldCIsYSxiKX1mdW5jdGlvbiByQyhhLGIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT09MT9xQygiY29uZmlnIixhKTpxQygiY29uZmlnIixhLGIpfWZ1bmN0aW9uIHNDKGEsYixjKXtjPWN8fHt9O2NbRi5ELlhiXT1hO3JldHVybiBxQygiZXZlbnQiLGIsYyl9ZnVuY3Rpb24gcUMoKXtyZXR1cm4gYXJndW1lbnRzfTt2YXIgdEM9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoLGwsbixwLHEscil7dGhpcy5ldmVudElkPWE7dGhpcy5wcmlvcml0eUlkPWI7dGhpcy5wcmlvcml0eVF1ZXVlPWM7dGhpcy5FYT1kO3RoaXMuV2E9ZTt0aGlzLmhiPWY7dGhpcy5IYz1nO3RoaXMuQmc9aDt0aGlzLmliPWw7dGhpcy5ldmVudE1ldGFkYXRhPW47dGhpcy5vblN1Y2Nlc3M9cDt0aGlzLm9uRmFpbHVyZT1xO3RoaXMuaXNHdG1FdmVudD1yfSx1Qz1mdW5jdGlvbihhKXt2YXIgYj17b25TdWNjZXNzOnhiLG9uRmFpbHVyZTp4Yn07Yj1iPT09dm9pZCAwP3t9OmI7dmFyIGMsZCxlLGYsZyxoLGwsbixwLHEscix0LHUsdix4LHkseixDLEQsSSxHLE4sUyxXLGVhLGphO3JldHVybiBuZXcgdEMoKHY9KGM9Yik9PW51bGw/dm9pZCAwOmMuZXZlbnRJZCkhPW51bGw/djphLmV2ZW50SWQsKHg9KGQ9Yik9PW51bGw/dm9pZCAwOmQucHJpb3JpdHlJZCkhPW51bGw/eDphLnByaW9yaXR5SWQsKHk9KGU9Yik9PW51bGw/dm9pZCAwOmUucHJpb3JpdHlRdWV1ZSkhPQpudWxsP3k6YS5wcmlvcml0eVF1ZXVlLCh6PShmPWIpPT1udWxsP3ZvaWQgMDpmLkVhKSE9bnVsbD96OmEuRWEsKEM9KGc9Yik9PW51bGw/dm9pZCAwOmcuV2EpIT1udWxsP0M6YS5XYSwoRD0oaD1iKT09bnVsbD92b2lkIDA6aC5oYikhPW51bGw/RDphLmhiLChJPShsPWIpPT1udWxsP3ZvaWQgMDpsLkhjKSE9bnVsbD9JOmEuSGMsKEc9KG49Yik9PW51bGw/dm9pZCAwOm4uQmcpIT1udWxsP0c6YS5CZywoTj0ocD1iKT09bnVsbD92b2lkIDA6cC5pYikhPW51bGw/TjphLmliLChTPShxPWIpPT1udWxsP3ZvaWQgMDpxLmV2ZW50TWV0YWRhdGEpIT1udWxsP1M6YS5ldmVudE1ldGFkYXRhLChXPShyPWIpPT1udWxsP3ZvaWQgMDpyLm9uU3VjY2VzcykhPW51bGw/VzphLm9uU3VjY2VzcywoZWE9KHQ9Yik9PW51bGw/dm9pZCAwOnQub25GYWlsdXJlKSE9bnVsbD9lYTphLm9uRmFpbHVyZSwoamE9KHU9Yik9PW51bGw/dm9pZCAwOnUuaXNHdG1FdmVudCkhPW51bGw/amE6YS5pc0d0bUV2ZW50KX0sCnZDPWZ1bmN0aW9uKGEsYil7dmFyIGM9W107c3dpdGNoKGIpe2Nhc2UgMzpjLnB1c2goYS5FYSk7Yy5wdXNoKGEuV2EpO2MucHVzaChhLmhiKTtjLnB1c2goYS5IYyk7Yy5wdXNoKGEuaWIpO2JyZWFrO2Nhc2UgMjpjLnB1c2goYS5FYSk7YnJlYWs7Y2FzZSAxOmMucHVzaChhLldhKTtjLnB1c2goYS5oYik7Yy5wdXNoKGEuSGMpO2MucHVzaChhLmliKTticmVhaztjYXNlIDQ6Yy5wdXNoKGEuRWEpLGMucHVzaChhLldhKSxjLnB1c2goYS5oYiksYy5wdXNoKGEuSGMpfXJldHVybiBjfSxPPWZ1bmN0aW9uKGEsYixjLGQpe2Zvcih2YXIgZT1tKHZDKGEsZD09PXZvaWQgMD8zOmQpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtpZihnW2JdIT09dm9pZCAwKXJldHVybiBnW2JdfXJldHVybiBjfSx3Qz1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz12QyhhLDQpLGQ9bShjKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSlmb3IodmFyIGY9T2JqZWN0LmtleXMoZS52YWx1ZSksCmc9bShmKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSliW2gudmFsdWVdPTE7cmV0dXJuIE9iamVjdC5rZXlzKGIpfTt0Qy5wcm90b3R5cGUuZ2V0TWVyZ2VkVmFsdWVzPWZ1bmN0aW9uKGEsYixjKXtiPWI9PT12b2lkIDA/MzpiO3ZhciBkPXt9LGU9ITEsZj1mdW5jdGlvbihuKXtDZChuKSYmR2IobixmdW5jdGlvbihwLHEpe2U9ITA7ZFtwXT1xfSl9O2MmJmYoYyk7dmFyIGc9dkModGhpcyxiKTtnLnJldmVyc2UoKTtmb3IodmFyIGg9bShnKSxsPWgubmV4dCgpOyFsLmRvbmU7bD1oLm5leHQoKSlmKGwudmFsdWVbYV0pO3JldHVybiBlP2Q6dm9pZCAwfTsKdmFyIHhDPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bRi5ELktmLEYuRC5HZixGLkQuSGYsRi5ELklmLEYuRC5KZixGLkQuTGYsRi5ELk1mXSxjPXZDKGEsMyksZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXtmb3IodmFyIGY9ZS52YWx1ZSxnPXt9LGg9ITEsbD1tKGIpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO2ZbcF0hPT12b2lkIDAmJihnW3BdPWZbcF0saD0hMCl9dmFyIHE9aD9nOnZvaWQgMDtpZihxKXJldHVybiBxfXJldHVybnt9fSx5Qz1mdW5jdGlvbihhLGIsYyl7dGhpcy5ldmVudElkPWE7dGhpcy5wcmlvcml0eUlkPWI7dGhpcy5wcmlvcml0eVF1ZXVlPWM7dGhpcy5FYT17fTt0aGlzLldhPXt9O3RoaXMuaGI9e307dGhpcy5IYz17fTt0aGlzLkJnPXt9O3RoaXMuaWI9e307dGhpcy5ldmVudE1ldGFkYXRhPXt9O3RoaXMuaXNHdG1FdmVudD0hMTt0aGlzLm9uU3VjY2Vzcz1mdW5jdGlvbigpe307dGhpcy5vbkZhaWx1cmU9CmZ1bmN0aW9uKCl7fX0sekM9ZnVuY3Rpb24oYSxiKXthLkVhPWI7cmV0dXJuIGF9LEFDPWZ1bmN0aW9uKGEsYil7YS5XYT1iO3JldHVybiBhfSxCQz1mdW5jdGlvbihhLGIpe2EuaGI9YjtyZXR1cm4gYX0sQ0M9ZnVuY3Rpb24oYSxiKXthLkhjPWI7cmV0dXJuIGF9LERDPWZ1bmN0aW9uKGEsYil7YS5CZz1iO3JldHVybiBhfSxFQz1mdW5jdGlvbihhLGIpe2EuaWI9YjtyZXR1cm4gYX0sRkM9ZnVuY3Rpb24oYSxiKXthLmV2ZW50TWV0YWRhdGE9Ynx8e307cmV0dXJuIGF9LEdDPWZ1bmN0aW9uKGEsYil7YS5vblN1Y2Nlc3M9YjtyZXR1cm4gYX0sSEM9ZnVuY3Rpb24oYSxiKXthLm9uRmFpbHVyZT1iO3JldHVybiBhfSxJQz1mdW5jdGlvbihhLGIpe2EuaXNHdG1FdmVudD1iO3JldHVybiBhfSxKQz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IHRDKGEuZXZlbnRJZCxhLnByaW9yaXR5SWQsYS5wcmlvcml0eVF1ZXVlLGEuRWEsYS5XYSxhLmhiLGEuSGMsYS5CZyxhLmliLGEuZXZlbnRNZXRhZGF0YSwKYS5vblN1Y2Nlc3MsYS5vbkZhaWx1cmUsYS5pc0d0bUV2ZW50KX07ZnVuY3Rpb24gS0MoYSxiKXtHYihhLGZ1bmN0aW9uKGMpe3ZhciBkO2lmKGQ9Yy5jaGFyQXQoMCk9PT0iXyIpe3ZhciBlO2E6c3dpdGNoKGMpe2Nhc2UgRi5ELlZiOmNhc2UgRi5ELlJmOmNhc2UgRi5ELnNoOmU9ITA7YnJlYWsgYTtkZWZhdWx0OmU9ITF9ZD0hZX1kJiYoYiYmYihjKSxkZWxldGUgYVtjXSl9KX07dmFyIExDPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9Yi5ldmVudElkLGQ9Yi50ZixlPVtdLGY9YS5IW2NdfHxbXTtmLmxlbmd0aCYmZS5wdXNoKFsiZXByIixmLmpvaW4oIi4iKV0pO2QmJmRlbGV0ZSBhLkhbY107cmV0dXJuIGV9KX0sTkM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPU1DO2ZuLk4mJmEhPT12b2lkIDAmJihkLkhbYV09ZC5IW2FdfHxbXSxkLkhbYV0ucHVzaChjK2IpLGd6KCksZXooYSkpfSxNQztmdW5jdGlvbiBPQygpe01DfHwoTUM9bmV3IExDKX07dmFyIFBDPWZ1bmN0aW9uKCl7dGhpcy5kZXN0aW5hdGlvbnM9e307dGhpcy5IPXt9O3RoaXMuY29tbWFuZHM9W119LFFDPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuZGVzdGluYXRpb25zW2IuZGVzdGluYXRpb25JZF09YS5kZXN0aW5hdGlvbnNbYi5kZXN0aW5hdGlvbklkXXx8bmV3IG9DfSxSQz1mdW5jdGlvbihhLGIsYyxkKXtpZihkLkgpe3ZhciBlPVFDKGEsZC5IKSxmPWUuTjtpZihmKXt2YXIgZz1FZChjLG51bGwpLGg9RWQoZS5XYVtkLkguZGVzdGluYXRpb25JZF0sbnVsbCksbD1FZChlLmhiLG51bGwpLG49RWQoZS5pYixudWxsKSxwPUVkKGEuSCxudWxsKSxxPXt9O2lmKGZuLk4pdHJ5e3E9RWQockEuSCxudWxsKX1jYXRjaCh4KXtQKDcyKX12YXIgcj1kLkgucHJlZml4LHQ9ZnVuY3Rpb24oeCl7dmFyIHk9ZC5tZXNzYWdlQ29udGV4dC5ldmVudElkO09DKCk7TkMoeSxyLHgpfSx1PUpDKElDKEhDKEdDKEZDKERDKENDKEVDKEJDKEFDKHpDKG5ldyB5QyhkLm1lc3NhZ2VDb250ZXh0LmV2ZW50SWQsCmQubWVzc2FnZUNvbnRleHQucHJpb3JpdHlJZCxkLm1lc3NhZ2VDb250ZXh0LnByaW9yaXR5UXVldWUpLGcpLGgpLGwpLG4pLHApLHEpLGQubWVzc2FnZUNvbnRleHQuZXZlbnRNZXRhZGF0YSksZnVuY3Rpb24oKXtpZih0KXt2YXIgeD10O3Q9dm9pZCAwO3goIjIiKTtpZihkLm1lc3NhZ2VDb250ZXh0Lm9uU3VjY2VzcylkLm1lc3NhZ2VDb250ZXh0Lm9uU3VjY2VzcygpfX0pLGZ1bmN0aW9uKCl7aWYodCl7dmFyIHg9dDt0PXZvaWQgMDt4KCIzIik7aWYoZC5tZXNzYWdlQ29udGV4dC5vbkZhaWx1cmUpZC5tZXNzYWdlQ29udGV4dC5vbkZhaWx1cmUoKX19KSwhIWQubWVzc2FnZUNvbnRleHQuaXNHdG1FdmVudCkpLHY9ZnVuY3Rpb24oKXt0cnl7dmFyIHg9ZC5tZXNzYWdlQ29udGV4dC5ldmVudElkO09DKCk7TkMoeCxyLCIxIik7dmFyIHk9ZC5ILmlkLHo9bUM7aWYoZm4uSyYmYj09PUYuRC53YSl7dmFyIEMsRD0oQz1iQyh5KSk9PW51bGw/dm9pZCAwOkMuaWRzO2lmKCEoRCYmRC5sZW5ndGg+CjEpKXt2YXIgST11LkVhW0YuRC5YYl07aWYoIUl8fEk9PT15KXt2YXIgRyxOPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KTtOLnRkfHwoTi50ZD17fSk7Rz1OLnRkO3ZhciBTPUVkKHUuSGMsbnVsbCk7RWQodS5FYSxTKTt2YXIgVz1bXSxlYTtmb3IoZWEgaW4gRylHLmhhc093blByb3BlcnR5KGVhKSYmbEMoeixHW2VhXSxTKS5sZW5ndGgmJlcucHVzaChlYSk7Vy5sZW5ndGgmJihqQyh6LHksVyksc2IoIlRBR0dJTkciLGZDW0IucmVhZHlTdGF0ZV18fDE0KSk7R1t5XT1TfX19ZihkLkguaWQsYixkLkssdSl9Y2F0Y2goZmEpe3ZhciBqYT1kLm1lc3NhZ2VDb250ZXh0LmV2ZW50SWQ7T0MoKTtOQyhqYSxyLCI0Iil9fTtiPT09Imd0YWcuZ2V0Ij92KCk6aW8oZS5SLHYpfX19LFNDPWZ1bmN0aW9uKGEsYil7aWYoYi50eXBlIT09InJlcXVpcmUiKXt2YXIgYz12b2lkIDA7Yi50eXBlPT09ImV2ZW50IiYmKGM9Yi5hcmdzWzFdKTtpZihiLkgpZm9yKHZhciBkPVFDKGEsYi5IKS5LW2IudHlwZV18fApbXSxlPTA7ZTxkLmxlbmd0aDtlKyspZFtlXShjKTtlbHNlIGZvcih2YXIgZiBpbiBhLmRlc3RpbmF0aW9ucylpZihhLmRlc3RpbmF0aW9ucy5oYXNPd25Qcm9wZXJ0eShmKSl7dmFyIGc9YS5kZXN0aW5hdGlvbnNbZl07aWYoZyYmZy5LKWZvcih2YXIgaD1nLktbYi50eXBlXXx8W10sbD0wO2w8aC5sZW5ndGg7bCsrKWhbbF0oYyl9fX07UEMucHJvdG90eXBlLnJlZ2lzdGVyPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPVFDKHRoaXMsYSk7ZS5zdGF0dXMhPT0zJiYoZS5OPWIsZS5zdGF0dXM9MyxlLlI9bG8oYyksVEModGhpcyxhLGR8fHt9KSx0aGlzLmZsdXNoKCkpfTsKUEMucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oYSxiLGMsZCl7YyE9PXZvaWQgMCYmKFFDKHRoaXMsYykuc3RhdHVzPT09MSYmKFFDKHRoaXMsYykuc3RhdHVzPTIsdGhpcy5wdXNoKCJyZXF1aXJlIixbe31dLGMse30pKSxRQyh0aGlzLGMpLkgmJihkLmRlZmVycmFibGU9ITEpLGQuZXZlbnRNZXRhZGF0YXx8KGQuZXZlbnRNZXRhZGF0YT17fSksZC5ldmVudE1ldGFkYXRhW0guSi5zZ118fChkLmV2ZW50TWV0YWRhdGFbSC5KLnNnXT1bYy5kZXN0aW5hdGlvbklkXSksZC5ldmVudE1ldGFkYXRhW0guSi5tal18fChkLmV2ZW50TWV0YWRhdGFbSC5KLm1qXT1bYy5pZF0pKTt0aGlzLmNvbW1hbmRzLnB1c2gobmV3IG5DKGEsYyxiLGQpKTtkLmRlZmVycmFibGV8fHRoaXMuZmx1c2goKX07ClBDLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbihhKXtmb3IodmFyIGI9dGhpcyxjPVtdLGQ9ITEsZT17fTt0aGlzLmNvbW1hbmRzLmxlbmd0aDtlPXtabjp2b2lkIDB9KXt2YXIgZj10aGlzLmNvbW1hbmRzWzBdLGc9Zi5IO2lmKGYubWVzc2FnZUNvbnRleHQuZGVmZXJyYWJsZSkhZ3x8UUModGhpcyxnKS5IPyhmLm1lc3NhZ2VDb250ZXh0LmRlZmVycmFibGU9ITEsdGhpcy5jb21tYW5kcy5wdXNoKGYpKTpjLnB1c2goZiksdGhpcy5jb21tYW5kcy5zaGlmdCgpO2Vsc2V7c3dpdGNoKGYudHlwZSl7Y2FzZSAicmVxdWlyZSI6aWYoUUModGhpcyxnKS5zdGF0dXMhPT0zJiYhYSl7dGhpcy5jb21tYW5kcy5wdXNoLmFwcGx5KHRoaXMuY29tbWFuZHMsYyk7cmV0dXJufWJyZWFrO2Nhc2UgInNldCI6dmFyIGg9Zi5hcmdzWzBdO0tDKGgpO1VDKGgpO0diKGgsZnVuY3Rpb24oeCx5KXtFZChWYih4LHkpLGIuSCl9KTtIdShoLCEwKTticmVhaztjYXNlICJldmVudCI6ZS5abj1mLmFyZ3NbMV07dmFyIGw9ClZDKGYuYXJnc1swXSxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe319KGUpKSxuPWxbRi5ELlhiXTtuJiZuIT09Zy5pZHx8SHUobCk7UkModGhpcyxlLlpuLGwsZik7YnJlYWs7Y2FzZSAiZ2V0Ijp2YXIgcD17fSxxPShwW0YuRC5UZl09Zi5hcmdzWzBdLHBbRi5ELlNmXT1mLmFyZ3NbMV0scCk7UkModGhpcyxGLkQuSmIscSxmKTticmVhaztjYXNlICJjb250YWluZXJfY29uZmlnIjp2YXIgcj1RQyh0aGlzLGcpLHQ9VkMoZi5hcmdzWzBdLGZ1bmN0aW9uKCl7fSk7SHUodCwhMCk7ci5IPSEwO0VkKHQsci5oYik7ZD0hMDticmVhaztjYXNlICJkZXN0aW5hdGlvbl9jb25maWciOnZhciB1PVFDKHRoaXMsZyksdj1WQyhmLmFyZ3NbMF0sZnVuY3Rpb24oKXt9KTtIdSh2LCEwKTt1LldhW2cuaWRdfHwodS5XYVtnLmlkXT17fSk7dS5IPSEwO0VkKHYsdS5XYVtnLmlkXSk7ZD0hMDticmVhaztjYXNlICJyZXNldF9jb250YWluZXJfY29uZmlnIjpRQyh0aGlzLGcpLmhiPXt9O2JyZWFrOwpjYXNlICJyZXNldF90YXJnZXRfY29uZmlnIjpRQyh0aGlzLGcpLldhW2cuaWRdPXt9fXRoaXMuY29tbWFuZHMuc2hpZnQoKTtTQyh0aGlzLGYpfX10aGlzLmNvbW1hbmRzLnB1c2guYXBwbHkodGhpcy5jb21tYW5kcyxjKTtkJiZ0aGlzLmZsdXNoKCl9O3ZhciBUQz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9RWQoYyxudWxsKTtFZChRQyhhLGIpLmliLGQpO1FDKGEsYikuaWI9ZH07ZnVuY3Rpb24gVkMoYSxiKXt2YXIgYz17fTtHYihhLGZ1bmN0aW9uKGQsZSl7RWQoVmIoZCxlKSxjKX0pO0tDKGMsYik7VUMoYyk7cmV0dXJuIGN9CmZ1bmN0aW9uIFVDKGEpe2lmKE0oNjAxKSYmQkEoKSl7Zm9yKHZhciBiPSExLGM9bShuZXcgU2V0KFtGLkQueWMsRi5ELmRkXSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2FbZV0hPT12b2lkIDAmJihiPSEwLGRlbGV0ZSBhW2VdKX1iJiYhYWwoMzUsZnVuY3Rpb24oKXtyZXR1cm4hMX0pJiYoWmsoMzUsITApLHdpbmRvdy5jb25zb2xlJiZ3aW5kb3cuY29uc29sZS5sb2cmJndpbmRvdy5jb25zb2xlLmxvZygiR29vZ2xlIFRhZyBNYW5hZ2VyOiBTZXJ2ZXItc2lkZSBHVE0gcGFyYW1ldGVycyAodHJhbnNwb3J0X3VybC9zZXJ2ZXJfY29udGFpbmVyX3VybCkgYXJlIG5vdCBwZXJtaXR0ZWQgb24gdGhpcyBkb21haW4gYW5kIGhhdmUgYmVlbiBpZ25vcmVkLiIpLFAoMTk3KSl9fTt2YXIgV0M9ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IFBDO3RoaXMuSz0hMX07V0MucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7dGhpcy5ILmZsdXNoKCl9O3ZhciBYQztmdW5jdGlvbiBZQygpe1hDfHwoWEM9bmV3IFdDKTtyZXR1cm4gWEN9ZnVuY3Rpb24gWkMoYSxiLGMsZCl7dmFyIGU9WUMoKSxmPWJDKGMsZC5pc0d0bUV2ZW50KTtmJiYoZS5LJiYoZC5kZWZlcnJhYmxlPSEwKSxlLkgucHVzaCgiZXZlbnQiLFtiLGFdLGYsZCkpfWZ1bmN0aW9uICRDKGEsYixjLGQpe3ZhciBlPVlDKCksZj1iQyhjLGQuaXNHdG1FdmVudCk7ZiYmZS5ILnB1c2goImdldCIsW2EsYl0sZixkKX1mdW5jdGlvbiBhRChhLGIsYyl7dmFyIGQ9WUMoKSxlPWJDKGEsYy5pc0d0bUV2ZW50KTtlJiZkLkgucHVzaCgiY29udGFpbmVyX2NvbmZpZyIsW2JdLGUsYyl9CmZ1bmN0aW9uIGJEKGEsYixjKXt2YXIgZD1ZQygpLGU9YkMoYSxjLmlzR3RtRXZlbnQpO2UmJmQuSC5wdXNoKCJkZXN0aW5hdGlvbl9jb25maWciLFtiXSxlLGMpfWZ1bmN0aW9uIGNEKGEpe3ZhciBiPVlDKCksYz1iQyhhLCEwKTtjJiZiLkgucHVzaCgicmVzZXRfY29udGFpbmVyX2NvbmZpZyIsW10sYyx7fSl9ZnVuY3Rpb24gZEQoYSl7dmFyIGI9WUMoKSxjPWJDKGEsITApO2MmJmIuSC5wdXNoKCJyZXNldF90YXJnZXRfY29uZmlnIixbXSxjLHt9KX1mdW5jdGlvbiBlRChhKXt2YXIgYj1ZQygpLGM9YkMoYSwhMCk7cmV0dXJuIGM/UUMoYi5ILGMpLmliOnt9fWZ1bmN0aW9uIGZEKGEpe3JldHVybiBZQygpLkguSFthXX1mdW5jdGlvbiBnRChhKXt2YXIgYj1ZQygpLGM9YkMoYSwhMCk7cmV0dXJuIGM/UUMoYi5ILGMpLkg6ITF9O2Z1bmN0aW9uIGhEKGEsYil7YS5oYXNPd25Qcm9wZXJ0eSgiZ3RtLnVuaXF1ZUV2ZW50SWQiKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsImd0bS51bmlxdWVFdmVudElkIix7dmFsdWU6cmooKX0pO2IuZXZlbnRJZD1hWyJndG0udW5pcXVlRXZlbnRJZCJdO2IucHJpb3JpdHlJZD1hWyJndG0ucHJpb3JpdHlJZCJdO3JldHVybntldmVudElkOmIuZXZlbnRJZCxwcmlvcml0eUlkOmIucHJpb3JpdHlJZH19ZnVuY3Rpb24gaUQoYSl7Zm9yKHZhciBiPW0oW0YuRC5kZCxGLkQueWNdKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSl7dmFyIGQ9Yy52YWx1ZSxlPWEmJmFbZF18fGZEKGQpO2lmKGUpcmV0dXJuIGV9fWZ1bmN0aW9uIGpEKGEpe3JldHVybiFhLmlzR3RtRXZlbnR8fGEuZXZlbnRNZXRhZGF0YSYmYS5ldmVudE1ldGFkYXRhW0guSi5DY10mJmEuZXZlbnRNZXRhZGF0YVtILkouTmJdIT09dmsoKT8hMTohMH07dmFyIGtEPW5ldyBmdW5jdGlvbigpe3RoaXMuSD0hMX07dmFyIGxEPWZ1bmN0aW9uKCl7dGhpcy5tZXNzYWdlcz1bXTt0aGlzLkg9W119O2xELnByb3RvdHlwZS5lbnF1ZXVlPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLm1lc3NhZ2VzLmxlbmd0aCsxO2FbImd0bS51bmlxdWVFdmVudElkIl09YjthWyJndG0ucHJpb3JpdHlJZCJdPWQ7dmFyIGU9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxjLHtldmVudElkOmIscHJpb3JpdHlJZDpkLGZyb21Db250YWluZXJFeGVjdXRpb246ITB9KTtpZihNKDU5NSkpe3ZhciBmPWMucHJpb3JpdHlRdWV1ZT9bXS5jb25jYXQodyhjLnByaW9yaXR5UXVldWUpLFtkXSk6W2RdO2FbImd0bS5wcmlvcml0eVF1ZXVlIl09ZjtlLnByaW9yaXR5UXVldWU9Zn12YXIgZz17bWVzc2FnZTphLG5vdEJlZm9yZUV2ZW50SWQ6Yixwcmlvcml0eUlkOmQsbWVzc2FnZUNvbnRleHQ6ZX07dGhpcy5tZXNzYWdlcy5wdXNoKGcpO2Zvcih2YXIgaD0wO2g8dGhpcy5ILmxlbmd0aDtoKyspdHJ5e3RoaXMuSFtoXShnKX1jYXRjaChsKXt9fTsKbEQucHJvdG90eXBlLmxpc3Rlbj1mdW5jdGlvbihhKXt0aGlzLkgucHVzaChhKX07bEQucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe2Zvcih2YXIgYT17fSxiPTA7Yjx0aGlzLm1lc3NhZ2VzLmxlbmd0aDtiKyspe3ZhciBjPXRoaXMubWVzc2FnZXNbYl0sZD1hW2Mubm90QmVmb3JlRXZlbnRJZF07ZHx8KGQ9W10sYVtjLm5vdEJlZm9yZUV2ZW50SWRdPWQpO2QucHVzaChjKX1yZXR1cm4gYX07bEQucHJvdG90eXBlLnBydW5lPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPVtdLGQ9MDtkPHRoaXMubWVzc2FnZXMubGVuZ3RoO2QrKyl7dmFyIGU9dGhpcy5tZXNzYWdlc1tkXTtlLm5vdEJlZm9yZUV2ZW50SWQ9PT1hP2IucHVzaChlKTpjLnB1c2goZSl9dGhpcy5tZXNzYWdlcz1jO3JldHVybiBifTsKZnVuY3Rpb24gbUQoYSxiLGMpe2MuZXZlbnRNZXRhZGF0YT1jLmV2ZW50TWV0YWRhdGF8fHt9O2MuZXZlbnRNZXRhZGF0YVtILkouTmJdPU0oNTUwKT92aygpOkUoNik7bkQoKS5lbnF1ZXVlKGEsYixjKX1mdW5jdGlvbiBuRCgpe3JldHVybiBraigibWIiLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBsRH0pfTt2YXIgcEQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1vRDtiPVN0cmluZyhiKS5zcGxpdCgiLCIpO2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1jLk5bYltkXV18fFtdO2MuTltiW2RdXT1lO2UuaW5kZXhPZihhKTwwJiZlLnB1c2goYSl9fSxxRD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1vRCxkPVtdLGU9W10sZj17fSxnPTA7ZzxhLmxlbmd0aDtmPXtsazp2b2lkIDAsUWo6dm9pZCAwLFJqOnZvaWQgMH0sZysrKXt2YXIgaD1hW2ddO2lmKGguaW5kZXhPZigiLSIpPj0wKXtpZihmLmxrPWJDKGgsYiksZi5sayl7dmFyIGw9dGsoKTtDYihsLGZ1bmN0aW9uKHgpe3JldHVybiBmdW5jdGlvbih5KXtyZXR1cm4geC5say5kZXN0aW5hdGlvbklkPT09eX19KGYpKT9kLnB1c2goaCk6ZS5wdXNoKGgpfX1lbHNle2lmKE0oNTUwKSl7dmFyIG49Yy5LW2hdfHxbXTtmLlJqPXt9O24uZm9yRWFjaChmdW5jdGlvbih4KXtyZXR1cm4gZnVuY3Rpb24oeSl7eC5Salt5XT0hMH19KGYpKTtmb3IodmFyIHA9CnRrKCkscT0wO3E8cC5sZW5ndGg7cSsrKWYuUmpbcFtxXV0mJmQucHVzaChwW3FdKX1lbHNle3ZhciByPWMuSFtoXXx8W107Zi5Raj17fTtyLmZvckVhY2goZnVuY3Rpb24oeCl7cmV0dXJuIGZ1bmN0aW9uKHkpe3guUWpbeV09ITB9fShmKSk7Zm9yKHZhciB0PXdrKCksdT0wO3U8dC5sZW5ndGg7dSsrKWlmKGYuUWpbdFt1XV0pe2Q9ZC5jb25jYXQodGsoKSk7YnJlYWt9fXZhciB2PWMuTltoXXx8W107di5sZW5ndGgmJihkPWQuY29uY2F0KHYpKX19cmV0dXJue2VrOmQsUHM6ZX19LHJEPWZ1bmN0aW9uKGEpe0diKG9ELkgsZnVuY3Rpb24oYixjKXt2YXIgZD1jLmluZGV4T2YoYSk7ZD49MCYmYy5zcGxpY2UoZCwxKX0pfSxzRD1mdW5jdGlvbihhKXtHYihvRC5LLGZ1bmN0aW9uKGIsYyl7dmFyIGQ9Yy5pbmRleE9mKGEpO2Q+PTAmJmMuc3BsaWNlKGQsMSl9KX0sdEQ9ZnVuY3Rpb24oYSl7R2Iob0QuTixmdW5jdGlvbihiLGMpe3ZhciBkPWMuaW5kZXhPZihhKTtkPj0wJiZjLnNwbGljZShkLAoxKX0pfSxvRD1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9e307dGhpcy5OPXt9O3RoaXMuSz17fX07ZnVuY3Rpb24gdUQoYSxiLGMpe3ZhciBkPUVkKGEsbnVsbCk7ZC5ldmVudElkPXZvaWQgMDtkLmluaGVyaXRQYXJlbnRDb25maWc9dm9pZCAwO09iamVjdC5rZXlzKGIpLnNvbWUoZnVuY3Rpb24oZil7cmV0dXJuIGJbZl0hPT12b2lkIDB9KSYmUCgxMzYpO3ZhciBlPUVkKGIsbnVsbCk7RWQoYyxlKTttRChyQyh3aygpWzBdLGUpLGEuZXZlbnRJZCxkKX0KZnVuY3Rpb24gdkQoYSxiLGMsZCl7dmFyIGU9e30sZj0oZVtGLkQuVWJdPUYuRC53YSxlWyJndG0uY29uZmlnQ29udGFpbmVySWQiXT1hLmlkLGVbImd0bS5jb25maWdQYXJhbWV0ZXJzIl09YixlWyJndG0udW5pcXVlRXZlbnRJZCJdPWQuZXZlbnRJZCxlKTtjLnByaW9yaXR5UXVldWUmJihmWyJndG0ucHJpb3JpdHlRdWV1ZSJdPWMucHJpb3JpdHlRdWV1ZSk7Yy5ldmVudE1ldGFkYXRhJiYoZlsiZ3RtLmV2ZW50TWV0YWRhdGEiXT1jLmV2ZW50TWV0YWRhdGEpO2EuSmMoKSYmKGZbImd0bS5jb25maWdDb250YWluZXJJZCJdPXdrKClbMF0sZlsiZ3RtLm9yaWdpbmFsQ29uZmlnVGFyZ2V0SWQiXT1hLmlkKTtyZXR1cm4gZn1mdW5jdGlvbiB3RChhLGIsYyl7aWYoSWYoMTEpJiYhYyYmIWFbRi5ELlZkXSl7dmFyIGQ9YWwoMTAsZnVuY3Rpb24oKXtyZXR1cm4hMX0pO1prKDEwLCEwKTtYQihkLGEsYik7aWYoZClyZXR1cm4hMH1yZXR1cm4hMX07ZnVuY3Rpb24geEQoYSxiKXt2YXIgYz17fSxkPShjLmV2ZW50PWEsYyk7YiYmKGQuZXZlbnRNb2RlbD1FZChiLG51bGwpLGJbRi5ELlBmXSYmKGQuZXZlbnRDYWxsYmFjaz1iW0YuRC5QZl0pLGJbRi5ELnBoXSYmKGQuZXZlbnRUaW1lb3V0PWJbRi5ELnBoXSkpO3JldHVybiBkfQpmdW5jdGlvbiB5RChhLGIpe3ZhciBjPWEmJmFbRi5ELlhiXTtjPT09dm9pZCAwJiYoYz11QShGLkQuWGIsMiksYz09PXZvaWQgMCYmKGM9ImRlZmF1bHQiKSk7aWYoemIoYyl8fEFycmF5LmlzQXJyYXkoYykpe3ZhciBkO2Q9Yi5pc0d0bUV2ZW50P3piKGMpP1tjXTpjOmMudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikuc3BsaXQoIiwiKTt2YXIgZT1xRChkLGIuaXNHdG1FdmVudCksZj1lLmVrLGc9ZS5QcztpZihnLmxlbmd0aClmb3IodmFyIGg9aUQoYSksbD0wO2w8Zy5sZW5ndGg7bCsrKXt2YXIgbj1iQyhnW2xdLGIuaXNHdG1FdmVudCk7aWYobil7dmFyIHA9bi5kZXN0aW5hdGlvbklkLHE9dm9pZCAwOygocT1uayhuLmRlc3RpbmF0aW9uSWQpKT09bnVsbD92b2lkIDA6cS5zdGF0ZSk9PT0wfHxuQShwLGgse3NvdXJjZTozLGZyb21Db250YWluZXJFeGVjdXRpb246Yi5mcm9tQ29udGFpbmVyRXhlY3V0aW9ufSl9fXZhciByPWYuY29uY2F0KGcpO3JldHVybntlazpjQyhmLGIuaXNHdG1FdmVudCksCm1yOmNDKHIsYi5pc0d0bUV2ZW50KX19fTt2YXIgekQ9e30sQUQ9KHpELmNvbmZpZz1mdW5jdGlvbihhLGIpe3ZhciBjPWhEKGEsYiksZDthOntpZighKGEubGVuZ3RoPDIpJiZ6YihhWzFdKSl7dmFyIGU9e307aWYoYS5sZW5ndGg+Mil7aWYoYVsyXSE9PXZvaWQgMCYmIUNkKGFbMl0pfHxhLmxlbmd0aD4zKXtkPXZvaWQgMDticmVhayBhfWU9YVsyXX12YXIgZj1iQyhhWzFdLGIuaXNHdG1FdmVudCk7aWYoZil7ZD17dGFyZ2V0OmYscGFyYW1zOmV9O2JyZWFrIGF9fWQ9dm9pZCAwfXZhciBnPWQ7aWYoZyl7dmFyIGg9Zy50YXJnZXQsbD1nLnBhcmFtcyxuO2E6e2lmKCFJZig3KSl7dmFyIHA9eWsoemsoKSk7aWYoTWsocCkpe3ZhciBxPXAucGFyZW50LHI9cS5pc0Rlc3RpbmF0aW9uO249e1ZzOnlrKHEpLE1zOnJ9O2JyZWFrIGF9fW49dm9pZCAwfXZhciB0PW4sdT10PT1udWxsP3ZvaWQgMDp0LlZzLHY9dD09bnVsbD92b2lkIDA6dC5NcztkQihjLmV2ZW50SWQsImd0YWcuY29uZmlnIik7dmFyIHgseT1oLmRlc3RpbmF0aW9uSWQ7CmlmKGguSmMoKT90aygpLmluZGV4T2YoeSkhPT0tMTp3aygpLmluZGV4T2YoeSkhPT0tMSlhOntpZih1JiYoUCgxMjgpLHYmJlAoMTMwKSxiLmluaGVyaXRQYXJlbnRDb25maWcpKXt2YXIgejt2YXIgQz0kaygxMik7aWYoQyl1RChiLEMsbCksej0hMTtlbHNle3ZhciBEPSRrKDExKTshbFtGLkQuVmRdJiYoTSg1NTApfHxJZigxMSkpJiZEfHxaaygxMSxFZChsLG51bGwpKTt6PSEwfXomJnUuY29udGFpbmVycyYmdS5jb250YWluZXJzLmpvaW4oIiwiKTt4PXZvaWQgMDticmVhayBhfXZhciBJPSFJZig0NSksRz0hU2IoaC5pZCwiR1RNLSIpO0kmJkcmJihPYmplY3Qua2V5cyhsKS5sZW5ndGg9PT0wP0d1KFQuVy5Tayk6R3UoVC5XLlRrKSxFbCgpJiZHdShULlcuUmspLCRrKDMxKSYmR3UoVC5XLlVrKSk7dmFyIE49WUI7Zm4uSyYmKE4uSD09PTEmJihRbS5ILm1jYz0hMSksTi5IPTIpO2lmKE0oNTUwKXx8IXdEKGwsYixoLkpjKCkpKXtrRC5IfHxQKDQzKTtpZighTSg1NTApKXtpZighYi5ub1RhcmdldEdyb3VwKXt2YXIgUz0KaC5pZDtpZihoLkpjKCkpdEQoUykscEQoUyxsW0YuRC5PZF18fCJkZWZhdWx0Iik7ZWxzZXtyRChTKTt2YXIgVz1sW0YuRC5PZF18fCJkZWZhdWx0IixlYT1vRDtXPVcudG9TdHJpbmcoKS5zcGxpdCgiLCIpO2Zvcih2YXIgamE9MDtqYTxXLmxlbmd0aDtqYSsrKXt2YXIgZmE9ZWEuSFtXW2phXV18fFtdO2VhLkhbV1tqYV1dPWZhO2ZhLmluZGV4T2YoUyk8MCYmZmEucHVzaChTKX19fWRlbGV0ZSBsW0YuRC5PZF19dmFyIHNhPWIuZXZlbnRNZXRhZGF0YXx8e307c2EuaGFzT3duUHJvcGVydHkoSC5KLmFlKXx8KHNhW0guSi5hZV09IWIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbik7Yi5ldmVudE1ldGFkYXRhPXNhO2RlbGV0ZSBsW0YuRC5QZl07aWYoTSg1NTApKXt4PXZEKGgsbCxiLGMpO2JyZWFrIGF9dmFyIGRhPSEhbFtGLkQuVmRdO2RlbGV0ZSBsW0YuRC5WZF07dmFyIG1hPXRrKCksUGE9Y0QsRmE9YUQ7aC5KYygpJiYobWE9W2guaWRdLFBhPWRELEZhPWJEKTtmb3IodmFyIHFhPTA7cWE8Cm1hLmxlbmd0aDtxYSsrKXtkYXx8UGEobWFbcWFdKTt2YXIgaWI9Z0QobWFbcWFdKTtGYShtYVtxYV0sRWQobCxudWxsKSxFZChiLG51bGwpKTtpYiYmZGF8fFpDKEYuRC53YSxFZChsLG51bGwpLG1hW3FhXSxFZChiLG51bGwpKX19eD12b2lkIDB9ZWxzZSBhOntpZighYi5pbmhlcml0UGFyZW50Q29uZmlnJiYhbFtGLkQuWmNdKXt2YXIgWGI9aUQobCksTGM9aC5kZXN0aW5hdGlvbklkO2lmKGguSmMoKSluQShMYyxYYix7c291cmNlOjIsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjpiLmZyb21Db250YWluZXJFeGVjdXRpb259KTtlbHNlIGlmKHUhPT12b2lkIDAmJnUuY29udGFpbmVycy5pbmRleE9mKExjKSE9PS0xKXt2YXIgUWQ9JGsoMTEpLFljPSRrKDEyKTtRZD91RChiLGwsUWQpOlljfHxaaygxMixFZChsLG51bGwpKX1lbHNlIGlmKGhBKExjLFhiLCEwLHtzb3VyY2U6Mixmcm9tQ29udGFpbmVyRXhlY3V0aW9uOmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbn0pLE0oNTUwKSl7eD12RChoLApsLGIsYyk7YnJlYWsgYX19eD12b2lkIDB9cmV0dXJuIHh9fSx6RC5jb25zZW50PWZ1bmN0aW9uKGEsYil7aWYoYS5sZW5ndGg9PT0zKXtQKDM5KTt2YXIgYz1oRChhLGIpLGQ9YVsxXSxlPXt9LGY9T28oYVsyXSksZztmb3IoZyBpbiBmKWlmKGYuaGFzT3duUHJvcGVydHkoZykpe3ZhciBoPWZbZ107ZVtnXT1nPT09Ri5ELllnP0FycmF5LmlzQXJyYXkoaCk/TmFOOk51bWJlcihoKTpnPT09Ri5ELm5jPyhBcnJheS5pc0FycmF5KGgpP2g6W2hdKS5tYXAoUG8pOlFvKGgpfWIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbnx8KGVbRi5ELm1hXSYmUCgxMzkpLGVbRi5ELlhhXSYmUCgxNDApKTtkPT09ImRlZmF1bHQiP1RvKGUpOmQ9PT0idXBkYXRlIj9WbyhlLGMpOmQ9PT0iZGVjbGFyZSImJmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbiYmU28oZSl9fSx6RC5jb250YWluZXJfY29uZmlnPWZ1bmN0aW9uKGEsYil7aWYoakQoYikmJmEubGVuZ3RoPT09MyYmemIoYVsxXSkmJkNkKGFbMl0pKXt2YXIgYz0KYVsyXSxkPWJDKGFbMV0sITApO2QmJmFEKGQuZGVzdGluYXRpb25JZCxjLEVkKGIsbnVsbCkpfX0sekQuZGVzdGluYXRpb25fY29uZmlnPWZ1bmN0aW9uKGEsYil7aWYoakQoYikmJmEubGVuZ3RoPT09MyYmemIoYVsxXSkmJkNkKGFbMl0pKXt2YXIgYz1hWzJdLGQ9YkMoYVsxXSwhMCk7aWYoZCl7aWYoTSg1NTApKXtpZighYi5ub1RhcmdldEdyb3VwKXt2YXIgZT1kLmlkO2lmKGQuSmMoKSl0RChlKSxwRChlLGNbRi5ELk9kXXx8ImRlZmF1bHQiKTtlbHNle3NEKGUpO3ZhciBmPWNbRi5ELk9kXXx8ImRlZmF1bHQiLGc9b0Q7Zj1TdHJpbmcoZikuc3BsaXQoIiwiKTtmb3IodmFyIGg9MDtoPGYubGVuZ3RoO2grKyl7dmFyIGw9Zy5LW2ZbaF1dfHxbXTtnLktbZltoXV09bDtsLmluZGV4T2YoZSk8MCYmbC5wdXNoKGUpfX19ZGVsZXRlIGNbRi5ELk9kXX1iRChkLmlkLGMsRWQoYixudWxsKSl9fX0sekQuZXZlbnQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hWzFdO2lmKCEoYS5sZW5ndGg8MikmJgp6YihjKSl7dmFyIGQ9dm9pZCAwO2lmKGEubGVuZ3RoPjIpe2lmKCFDZChhWzJdKSYmYVsyXSE9PXZvaWQgMHx8YS5sZW5ndGg+MylyZXR1cm47ZD1hWzJdfXZhciBlPXhEKGMsZCksZj1oRChhLGIpLGc9Zi5ldmVudElkLGg9Zi5wcmlvcml0eUlkO2VbImd0bS51bmlxdWVFdmVudElkIl09ZztoJiYoZVsiZ3RtLnByaW9yaXR5SWQiXT1oKTtiLnByaW9yaXR5UXVldWUmJihlWyJndG0ucHJpb3JpdHlRdWV1ZSJdPWIucHJpb3JpdHlRdWV1ZSk7aWYoYz09PSJvcHRpbWl6ZS5jYWxsYmFjayIpcmV0dXJuIGUuZXZlbnRNb2RlbD1lLmV2ZW50TW9kZWx8fHt9LGU7dmFyIGw9eUQoZCxiKTtpZihsKXtmb3IodmFyIG49bC5layxwPWwubXIscT1wLm1hcChmdW5jdGlvbihOKXtyZXR1cm4gTi5pZH0pLHI9cC5tYXAoZnVuY3Rpb24oTil7cmV0dXJuIE4uZGVzdGluYXRpb25JZH0pLHQ9bi5tYXAoZnVuY3Rpb24oTil7cmV0dXJuIE4uaWR9KSx1PW0odGsoKSksdj11Lm5leHQoKTshdi5kb25lO3Y9CnUubmV4dCgpKXt2YXIgeD12LnZhbHVlO3IuaW5kZXhPZih4KTwwJiZ0LnB1c2goeCl9ZEIoZyxjKTtmb3IodmFyIHk9bSh0KSx6PXkubmV4dCgpOyF6LmRvbmU7ej15Lm5leHQoKSl7dmFyIEM9ei52YWx1ZSxEPUVkKGIsbnVsbCksST1FZChkLG51bGwpO2RlbGV0ZSBJW0YuRC5QZl07dmFyIEc9RC5ldmVudE1ldGFkYXRhfHx7fTtHLmhhc093blByb3BlcnR5KEguSi5hZSl8fChHW0guSi5hZV09IUQuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbik7R1tILkoubWpdPXEuc2xpY2UoKTtHW0guSi5zZ109ci5zbGljZSgpO0QuZXZlbnRNZXRhZGF0YT1HO1pDKGMsSSxDLEQpfWUuZXZlbnRNb2RlbD1lLmV2ZW50TW9kZWx8fHt9O3EubGVuZ3RoPjA/ZS5ldmVudE1vZGVsW0YuRC5YYl09cS5qb2luKCIsIik6ZGVsZXRlIGUuZXZlbnRNb2RlbFtGLkQuWGJdO2tELkh8fFAoNDMpO2Iubm9HdG1FdmVudD09PXZvaWQgMCYmYi5ldmVudE1ldGFkYXRhJiZiLmV2ZW50TWV0YWRhdGFbSC5KLkJuXSYmKGIubm9HdG1FdmVudD0KITApO2UuZXZlbnRNb2RlbFtGLkQuWWNdJiYoYi5ub0d0bUV2ZW50PSEwKTtyZXR1cm4gYi5ub0d0bUV2ZW50P3ZvaWQgMDplfX19LHpELmdldD1mdW5jdGlvbihhLGIpe1AoNTMpO2lmKGEubGVuZ3RoPT09NCYmemIoYVsxXSkmJnpiKGFbMl0pJiZ5YihhWzNdKSl7dmFyIGM9YkMoYVsxXSxiLmlzR3RtRXZlbnQpLGQ9U3RyaW5nKGFbMl0pLGU9YVszXTtpZihjKXtrRC5IfHxQKDQzKTt2YXIgZj1pRCgpO2lmKENiKHRrKCksZnVuY3Rpb24oaCl7cmV0dXJuIGMuZGVzdGluYXRpb25JZD09PWh9KSl7aEQoYSxiKTt2YXIgZz17fTtFZCgoZ1tGLkQuVGZdPWQsZ1tGLkQuU2ZdPWUsZyksbnVsbCk7JEMoZCxmdW5jdGlvbihoKXtiZChmdW5jdGlvbigpe2UoaCl9KX0sYy5pZCxiKX1lbHNlIG5BKGMuZGVzdGluYXRpb25JZCxmLHtzb3VyY2U6NCxmcm9tQ29udGFpbmVyRXhlY3V0aW9uOmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbn0pfX19LHpELmpzPWZ1bmN0aW9uKGEsYil7dmFyIGM7aWYoYS5sZW5ndGg9PT0KMiYmYVsxXS5nZXRUaW1lKXtrRC5IPSEwO3ZhciBkPWhEKGEsYiksZT1kLmV2ZW50SWQsZj1kLnByaW9yaXR5SWQsZz17fTtjPShnLmV2ZW50PSJndG0uanMiLGdbImd0bS5zdGFydCJdPWFbMV0uZ2V0VGltZSgpLGdbImd0bS51bmlxdWVFdmVudElkIl09ZSxnWyJndG0ucHJpb3JpdHlJZCJdPWYsZyl9ZWxzZSBjPXZvaWQgMDtyZXR1cm4gY30sekQucG9saWN5PWZ1bmN0aW9uKGEpe2lmKGEubGVuZ3RoPT09MyYmemIoYVsxXSkmJnliKGFbMl0pKXtpZihoeShhWzFdLGFbMl0pLFAoNzQpLGFbMV09PT0iYWxsIil7UCg3NSk7dmFyIGI9ITE7dHJ5e2I9YVsyXShFKDUpLCJ1bmtub3duIix7fSl9Y2F0Y2goYyl7fWJ8fFAoNzYpfX1lbHNlIFAoNzMpfSx6RC5yZXNldF90YXJnZXRfY29uZmlnPWZ1bmN0aW9uKGEsYil7aWYoakQoYikmJmEubGVuZ3RoPT09MiYmemIoYVsxXSkpe3ZhciBjPWJDKGFbMV0sITApO2MmJmREKGMuaWQpfX0sekQuc2V0PWZ1bmN0aW9uKGEsYil7dmFyIGM9dm9pZCAwOwphLmxlbmd0aD09PTImJkNkKGFbMV0pP2M9RWQoYVsxXSxudWxsKTphLmxlbmd0aD09PTMmJnpiKGFbMV0pJiYoYz17fSxDZChhWzJdKXx8QXJyYXkuaXNBcnJheShhWzJdKT9jW2FbMV1dPUVkKGFbMl0sbnVsbCk6Y1thWzFdXT1hWzJdKTtpZihjKXtaaygzMSwhMCk7dmFyIGQ9aEQoYSxiKSxlPWQuZXZlbnRJZCxmPWQucHJpb3JpdHlJZDtFZChjLG51bGwpO0UoNSk7dmFyIGc9RWQoYyxudWxsKTtZQygpLkgucHVzaCgic2V0IixbZ10sdm9pZCAwLGIpO2NbImd0bS51bmlxdWVFdmVudElkIl09ZTtmJiYoY1siZ3RtLnByaW9yaXR5SWQiXT1mKTtkZWxldGUgYy5ldmVudDtiLm92ZXJ3cml0ZU1vZGVsRmllbGRzPSEwO3JldHVybiBjfX0sekQpLEJEPXt9LENEPShCRC5wb2xpY3k9ITAsQkQpO3ZhciBFRD1mdW5jdGlvbihhKXtpZihERChhKSlyZXR1cm4gYTt0aGlzLnZhbHVlPWF9O0VELnByb3RvdHlwZS5nZXRVbnRydXN0ZWRNZXNzYWdlVmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX07dmFyIEREPWZ1bmN0aW9uKGEpe3JldHVybiFhfHxBZChhKSE9PSJvYmplY3QifHxDZChhKT8hMToiZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlImluIGF9O0VELnByb3RvdHlwZS5nZXRVbnRydXN0ZWRNZXNzYWdlVmFsdWU9RUQucHJvdG90eXBlLmdldFVudHJ1c3RlZE1lc3NhZ2VWYWx1ZTt2YXIgRkQ9e0JiOiIxIixlZToiMiIsWGQ6IjMiLGNlOiI0Iix4ZjoiNSIscWc6IjYiLEtoOiI3Iix0ajoiOCIsbGk6IjkiLGpqOiIxMCJ9Owp2YXIgR0Q9ZnVuY3Rpb24oYSxiKXtpZihhKXt2YXIgYz1hLnRyaW0oKS5yZXBsYWNlQWxsKC9ccysvZywiIikucmVwbGFjZUFsbCgvKFxkezIsfSlcLi9nLCIkMSIpLnJlcGxhY2VBbGwoLy0vZywiIikucmVwbGFjZUFsbCgvXCgoXGQrKVwpL2csIiQxIik7aWYoYiYmYy5tYXRjaCgvXlwrP1xkezMsNH0kLykpcmV0dXJuIGM7Yy5jaGFyQXQoMCkhPT0iKyImJihjPSIrIitjKTtpZihjLm1hdGNoKG5ldyBSZWdFeHAoIl5cXCtcXGR7IisoTSg1OTcpPzc6MTApKyIsMTV9JCIpKSlyZXR1cm4gY319LElEPWZ1bmN0aW9uKGEpe2lmKGEpe3ZhciBiPWEudHJpbSgpO2lmKEhELnRlc3QoYikpcmV0dXJuIGIudG9Mb3dlckNhc2UoKS5yZXBsYWNlQWxsKC9bLSBdKy9nLCIiKX19LE1EPWZ1bmN0aW9uKGEpe3ZhciBiPUpEKEtEKShhKTtpZihiJiYhTEQoYikpcmV0dXJuIGJ9LExEPWZ1bmN0aW9uKGEpe2lmKCFBLmxvY2F0aW9uKXJldHVybiExO3ZhciBiPU5qKEEubG9jYXRpb24sImhvc3QiLCEwKSwKYztpZihNKDYwMikpYTp7Zm9yKHZhciBkPWIuc3BsaXQoIi4iKSxlPWEudG9Mb3dlckNhc2UoKSxmPTA7ZjxkLmxlbmd0aC0xO2YrKyl7dmFyIGc9ZC5zbGljZShmKS5qb2luKCIuIik7aWYoZS5tYXRjaCgiQCIrZysiJCIpKXtjPSEwO2JyZWFrIGF9fWM9ITF9ZWxzZSBjPWEudG9Mb3dlckNhc2UoKS5pbmRleE9mKGIpPj0wO3JldHVybiBjfSxKRD1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7dmFyIGM9Yi5tYXRjaChhKTtyZXR1cm4gYz9jWzBdLnRyaW0oKS50b0xvd2VyQ2FzZSgpOnZvaWQgMH19LEtEPS9bQS1aMC05Ll8lKy1dK0BbQS1aMC05Li1dK1wuW0EtWl17Mix9L2ksTkQ9SkQoL14oW15ceDAwLVx4NDBceDViLVx4NjBceDdiLVx4ZmZdfFsuLV18XHMpKyQvKSxIRD1SZWdFeHAoIl4oPzpbQS1aXXsxLDJ9XFxkW0EtWlxcZF0/WyAtXT9cXGRbQS1aXXsyfXxbQS1aXVxcZFtBLVpdWyAtXT9cXGRbQS1aXVxcZHxcXGR7NH0gP1tBLVpdezJ9fFtBLVpdXFxkezR9W0EtWl17M318XFxkezV9KD86LVxcZHs0fSk/fFxcZHs1fS1cXGR7M318XFxkezR9LVxcZHszfXxcXGR7M30tXFxkezR9fFxcZHsyfS1cXGR7M318XFxkezN9ID9cXGR7Mn18XFxkezQsN30pJCIsCiJpIiksT0Q9SkQoL14oW15ceDAwLVx4NDBceDViLVx4NjBceDdiLVx4ZmZdfFsuLV18XHN8XGQpKyQvKTsKdmFyIFBEPWZ1bmN0aW9uKCl7dmFyIGE9U3RyaW5nKGFsKDMzLGZ1bmN0aW9uKCl7cmV0dXJuIDB9KSk7YS5pbmRleE9mKCIuIikhPT0tMSYmKGE9YS5zdWJzdHJpbmcoMCxhLmluZGV4T2YoIi4iKSszKSk7dmFyIGI9YWwoMzQsZnVuY3Rpb24oKXtyZXR1cm4gMH0pO3JldHVybnt2dDpOdW1iZXIoYSksc3Q6Yn19LFFEPWZ1bmN0aW9uKCl7cmV0dXJuIGFsKDMyLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXB9KX0sU0Q9ZnVuY3Rpb24oYSl7dmFyIGI9cGQoKXx8MCxjPVtGRC5CYl07TSg1NjgpJiZjLnB1c2goRkQuZWUsRkQuWGQsRkQuY2UsRkQueGYsRkQucWcsRkQudGosRkQubGksRkQuamopO2Zvcih2YXIgZD1SRChhLG5ldyBTZXQoYykpLGU9YWwoMzIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE1hcH0pLGY9bShkKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIGg9Zy52YWx1ZTtlLnNldChoLkRhLGgpfXZhciBsPShwZCgpfHwwKS1iLG49YWwoMzMsZnVuY3Rpb24oKXtyZXR1cm4gMH0pOwpaaygzMyxuK2wpO3ZhciBwPWFsKDM0LGZ1bmN0aW9uKCl7cmV0dXJuIDB9KTtaaygzNCxwKzEpfSxSRD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1OZigzNiwyKSxkPVtdLGU9W3tvbzphLGRlcHRoOjB9XTtlLmxlbmd0aD4wOylmb3IodmFyIGY9ZS5zaGlmdCgpLGc9Zi5vbyxoPWYuZGVwdGgsbD1tKE9iamVjdC5rZXlzKGcpKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtpZighVEQuaGFzKHApKXt2YXIgcT1nW3BdO2lmKHEpaWYoQ2QocSkpaCsxPD1jJiZlLnB1c2goe29vOnEsZGVwdGg6aCsxfSk7ZWxzZXtmb3IodmFyIHI9bShiKSx0PXIubmV4dCgpOyF0LmRvbmU7dD1yLm5leHQoKSl7dmFyIHU9dC52YWx1ZSx2PVVEW3VdO2lmKHYmJnYuS2MudGVzdChwKSl7dmFyIHg9di5uYShTdHJpbmcocSkpO2lmKHgpe2QucHVzaCh7Q2E6eCxEYTp1fSk7Yi5kZWxldGUodSk7YnJlYWt9fX1pZihiLnNpemU9PT0wKXJldHVybiBkfX19cmV0dXJuIGR9LFREPQpuZXcgU2V0KFsiaXRlbXMiLCJlY29tbWVyY2UiXSksVkQ9UmVnRXhwKCJwaG9uZSIsImkiKSxXRD1SZWdFeHAoImZpcnN0Xz9uYW1lIiwiaSIpLFhEPVJlZ0V4cCgibGFzdF8/bmFtZSIsImkiKSxZRD1SZWdFeHAoImNvdW50cnkiLCJpIiksWkQ9UmVnRXhwKCJwb3N0fHppcCIsImkiKSwkRD1SZWdFeHAoImFkZHJlc3N8c3RyZWV0IiwiaSIpLGFFPVJlZ0V4cCgiY2l0eSIsImkiKSxiRT1SZWdFeHAoInJlZ2lvbnxzdGF0ZXxwcm92aW5jZSIsImkiKSxjRT17fSxVRD0oY0VbRkQuQmJdPXtLYzpSZWdFeHAoImVtYWlsIiwiaSIpLG5hOk1EfSxjRVtGRC5lZV09e0tjOlZELG5hOmZ1bmN0aW9uKGEpe3JldHVybiBHRChhLCExKX19LGNFW0ZELlhkXT17S2M6V0QsbmE6TkR9LGNFW0ZELmNlXT17S2M6WEQsbmE6TkR9LGNFW0ZELnRqXT17S2M6JEQsbmE6T0R9LGNFW0ZELmxpXT17S2M6YUUsbmE6TkR9LGNFW0ZELmpqXT17S2M6YkUsbmE6TkR9LGNFW0ZELnFnXT17S2M6WkQsbmE6SUR9LGNFW0ZELnhmXT0Ke0tjOllELG5hOk5EfSxjRSk7dmFyIGRFPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLmxvYWRlZD0hMTt0aGlzLkg9W107aWYoQi5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIil0aGlzLm9uTG9hZCgpO2Vsc2UgJGMoQSwibG9hZCIsZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBhLm9uTG9hZCgpfSl9O2RFLnByb3RvdHlwZS5vbkxvYWQ9ZnVuY3Rpb24oKXtpZighdGhpcy5sb2FkZWQpe3RoaXMubG9hZGVkPSEwO2Zvcih2YXIgYT0wO2E8dGhpcy5ILmxlbmd0aDthKyspYmQodGhpcy5IW2FdKX19O3ZhciBmRT1mdW5jdGlvbihhKXt2YXIgYj1lRTtiLmxvYWRlZD9iZChhKTpiLkgucHVzaChhKX0sZUU9bmV3IGRFO3ZhciBnRT1mdW5jdGlvbigpe3RoaXMuWj0wO3RoaXMuSz17fTt0aGlzLkg9W107dGhpcy5OPVtdO3RoaXMuZmE9dGhpcy5SPXRoaXMuamE9ITF9LGlFPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1oRTthLmV2ZW50Q2FsbGJhY2s9YjtjJiYoYS5ldmVudFRpbWVvdXQ9Yyk7cmV0dXJuIGQucHVzaChhKX0sakU9ZnVuY3Rpb24oYSxiKXtpZighQWIoYil8fGI8MCliPTA7dmFyIGM9cWooKSxkPTAsZT0hMSxmPXZvaWQgMDtmPUEuc2V0VGltZW91dChmdW5jdGlvbigpe2V8fChlPSEwLGEoKSk7Zj12b2lkIDB9LGIpO3JldHVybiBmdW5jdGlvbigpe3ZhciBnPWM/Yy5zdWJzY3JpYmVyczoxOysrZD09PWcmJihmJiYoQS5jbGVhclRpbWVvdXQoZiksZj12b2lkIDApLGV8fChhKCksZT0hMCkpfX0sbEU9ZnVuY3Rpb24oYSl7dmFyIGI7aWYoYS5OLmxlbmd0aCliPWEuTi5zaGlmdCgpO2Vsc2UgaWYoYS5ILmxlbmd0aCliPWEuSC5zaGlmdCgpO2Vsc2UgcmV0dXJuO3ZhciBjO3ZhciBkPWI7aWYoYS5qYXx8CiFrRShkLm1lc3NhZ2UpKWM9ZDtlbHNle2EuamE9ITA7dmFyIGU9ZC5tZXNzYWdlWyJndG0udW5pcXVlRXZlbnRJZCJdLGYsZzt0eXBlb2YgZT09PSJudW1iZXIiPyhmPWUtMixnPWUtMSk6KGY9cmooKSxnPXJqKCksZC5tZXNzYWdlWyJndG0udW5pcXVlRXZlbnRJZCJdPXJqKCkpO3ZhciBoPXt9LGw9e21lc3NhZ2U6KGguZXZlbnQ9Imd0bS5pbml0X2NvbnNlbnQiLGhbImd0bS51bmlxdWVFdmVudElkIl09ZixoKSxtZXNzYWdlQ29udGV4dDp7ZXZlbnRJZDpmfX0sbj17fSxwPXttZXNzYWdlOihuLmV2ZW50PSJndG0uaW5pdCIsblsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1nLG4pLG1lc3NhZ2VDb250ZXh0OntldmVudElkOmd9fTthLkgudW5zaGlmdChwLGQpO2M9bH1yZXR1cm4gY30sb0U9ZnVuY3Rpb24oYSl7YS5mYXx8UCgxOTYpO2Zvcih2YXIgYj0hMSxjOyFhLlImJihjPWxFKGEpKTspe2EuUj0hMDt2YXIgZD1yQTtkZWxldGUgZC5ILmV2ZW50TW9kZWw7b0EoZCk7dmFyIGU9YyxmPQplLm1lc3NhZ2UsZz1lLm1lc3NhZ2VDb250ZXh0O2lmKGY9PW51bGwpYS5SPSExO2Vsc2V7Zy5mcm9tQ29udGFpbmVyRXhlY3V0aW9uJiZzQSgpO3RyeXtpZih5YihmKSl0cnl7Zi5jYWxsKHRBKX1jYXRjaChTKXt9ZWxzZSBpZihBcnJheS5pc0FycmF5KGYpKXtpZih6YihmWzBdKSl7dmFyIGg9ZlswXS5zcGxpdCgiLiIpLGw9aC5wb3AoKSxuPWYuc2xpY2UoMSkscD11QShoLmpvaW4oIi4iKSwyKTtpZihwIT1udWxsKXRyeXtwW2xdLmFwcGx5KHAsbil9Y2F0Y2goUyl7fX19ZWxzZXt2YXIgcT12b2lkIDA7aWYoSGIoZikpYTp7aWYoZi5sZW5ndGgmJnpiKGZbMF0pKXt2YXIgcj1BRFtmWzBdXTtpZihyJiYoIWcuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbnx8IUNEW2ZbMF1dKSl7cT1yKGYsZyk7YnJlYWsgYX19cT12b2lkIDB9ZWxzZSBxPWY7aWYocSl7dmFyIHQ7Zm9yKHZhciB1PXEsdj11Ll9jbGVhcnx8Zy5vdmVyd3JpdGVNb2RlbEZpZWxkcyx4PW0oT2JqZWN0LmtleXModSkpLHk9eC5uZXh0KCk7IXkuZG9uZTt5PQp4Lm5leHQoKSl7dmFyIHo9eS52YWx1ZTt6IT09Il9jbGVhciImJih2JiZyQS5zZXQoeix2b2lkIDApLHJBLnNldCh6LHVbel0pKX1NKDU5MikmJlNEKHUpOyRrKDI1KXx8WmsoMjUsdVsiZ3RtLnN0YXJ0Il0pO3ZhciBDPXVbImd0bS51bmlxdWVFdmVudElkIl07dS5ldmVudD8odHlwZW9mIEMhPT0ibnVtYmVyIiYmKEM9cmooKSx1WyJndG0udW5pcXVlRXZlbnRJZCJdPUMsckEuc2V0KCJndG0udW5pcXVlRXZlbnRJZCIsQykpLHQ9ekIodSkpOnQ9ITE7Yj10fHxifX19ZmluYWxseXtnLmZyb21Db250YWluZXJFeGVjdXRpb24mJm9BKHJBLCEwKTt2YXIgRD1mWyJndG0udW5pcXVlRXZlbnRJZCJdO2lmKHR5cGVvZiBEPT09Im51bWJlciIpe2Zvcih2YXIgST1hLEc9SS5LW1N0cmluZyhEKV18fFtdLE49MDtOPEcubGVuZ3RoO04rKylJLk4ucHVzaChtRShHW05dKSk7Ry5sZW5ndGgmJkkuTi5zb3J0KG5FKTtkZWxldGUgSS5LW1N0cmluZyhEKV07RD5hLlomJihhLlo9RCl9YS5SPSExfX19cmV0dXJuIWJ9LApwRT1mdW5jdGlvbigpe3ZhciBhPWhFO2EuZmEmJlAoMTk1KTthLmZhPSEwO2lmKGZuLkgpe3ZhciBiPSFJZig1MSksYz1yeigpO3B6KGMse3N0YWdlOkl5LlguWmd9KTtpZihiKXt2YXIgZD1xeihjLHtzdGFnZTpJeS5YLllrfSxJeS5YLm5pKTtkIT09dm9pZCAwJiYoYy5ILlk9ZCl9dmFyIGU9YS5ILmxlbmd0aDtyeigpLkguQz1lfW9FKGEpO2lmKGZuLkgpe3ZhciBmPXJ6KCksZz1xeihmLHtzdGFnZTpJeS5YLlZrfSxJeS5YLlpnKTtnIT09dm9pZCAwJiYoZi5ILkI9Zyl9dHJ5e3ZhciBoPUFbRSgxOSldLGw9RSg1KSxuPWguaGlkZTtpZihuJiZuW2xdIT09dm9pZCAwJiZuLmVuZCl7bltsXT0hMTt2YXIgcD0hMCxxO2ZvcihxIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShxKSYmbltxXT09PSEwKXtwPSExO2JyZWFrfXAmJihuLmVuZCgpLG4uZW5kPW51bGwpfX1jYXRjaChyKXtFKDUpfX0scUU9ZnVuY3Rpb24oYSxiKXtpZihhLlo8Yi5ub3RCZWZvcmVFdmVudElkKXt2YXIgYz1TdHJpbmcoYi5ub3RCZWZvcmVFdmVudElkKTsKYS5LW2NdPWEuS1tjXXx8W107YS5LW2NdLnB1c2goYil9ZWxzZXthLk4ucHVzaChtRShiKSk7YS5OLnNvcnQobkUpO3ZhciBkPWZ1bmN0aW9uKCl7YS5SfHxvRShhKX07TSg1ODApP2RkKGQpOmJkKGQpfX07CmdFLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShoKXt2YXIgbD17fTtpZihERChoKSl7dmFyIG49aDtoPUREKG4pP24uZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlKCk6dm9pZCAwO2wuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbj0hMH1yZXR1cm57bWVzc2FnZTpoLG1lc3NhZ2VDb250ZXh0Omx9fXZhciBiPXRoaXMsYz1NYyhFKDE5KSxbXSksZD1waigpO2QucHJ1bmVkPT09ITAmJlAoODMpO3RoaXMuSz1uRCgpLmdldCgpO25EKCkubGlzdGVuKGZ1bmN0aW9uKGgpe3FFKGIsaCl9KTtkLnN1YnNjcmliZXJzPShkLnN1YnNjcmliZXJzfHwwKSsxO3ZhciBlPWMucHVzaCxmPXRoaXM7Yy5wdXNoPWZ1bmN0aW9uKCl7dmFyIGg7bGooKTtpZihqai5ILlNBTkRCT1hFRF9KU19TRU1BUEhPUkU+MCl7aD1bXTtmb3IodmFyIGw9MDtsPGFyZ3VtZW50cy5sZW5ndGg7bCsrKWhbbF09bmV3IEVEKGFyZ3VtZW50c1tsXSl9ZWxzZSBoPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApOwp2YXIgbj1oLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gYSh0KX0pO2YuSC5wdXNoLmFwcGx5KGYuSCxuKTt2YXIgcD1lLmFwcGx5KGMsaCkscT1NYXRoLm1heCgxMDAsTmYoMSwzMDApKTtpZih0aGlzLmxlbmd0aD5xKWZvcihQKDQpLGQucHJ1bmVkPSEwO3RoaXMubGVuZ3RoPnE7KXRoaXMuc2hpZnQoKTt2YXIgcj10eXBlb2YgcCE9PSJib29sZWFuInx8cDtyZXR1cm4gb0UoZikmJnJ9O3ZhciBnPWMuc2xpY2UoMCkubWFwKGZ1bmN0aW9uKGgpe3JldHVybiBhKGgpfSk7dGhpcy5ILnB1c2guYXBwbHkodGhpcy5ILGcpO0lmKDUxKXx8KGZuLkgmJnV6KCksYmQockUpKTtWQihmdW5jdGlvbigpe2lmKCFkLmd0bURvbSl7ZC5ndG1Eb209ITA7dmFyIGg9e307Yy5wdXNoKChoLmV2ZW50PSJndG0uZG9tIixoKSl9fSk7ZkUoZnVuY3Rpb24oKXtpZighZC5ndG1Mb2FkKXtkLmd0bUxvYWQ9ITA7dmFyIGg9e307Yy5wdXNoKChoLmV2ZW50PSJndG0ubG9hZCIsaCkpfX0pfTsKZ0UucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oYSl7cmV0dXJuIEFbRSgxOSldLnB1c2goYSl9O3ZhciBoRT1uZXcgZ0U7ZnVuY3Rpb24gbkUoYSxiKXt2YXIgYz1hLm1lc3NhZ2VDb250ZXh0LGQ9Yi5tZXNzYWdlQ29udGV4dDtpZihjLmV2ZW50SWQhPT1kLmV2ZW50SWQpcmV0dXJuIGMuZXZlbnRJZC1kLmV2ZW50SWQ7aWYoIU0oNTk1KSlyZXR1cm4gYy5wcmlvcml0eUlkLWQucHJpb3JpdHlJZDt2YXIgZSxmLGc7YTp7Zm9yKHZhciBoPShlPWMucHJpb3JpdHlRdWV1ZSkhPW51bGw/ZTpbYy5wcmlvcml0eUlkXSxsPShmPWQucHJpb3JpdHlRdWV1ZSkhPW51bGw/ZjpbZC5wcmlvcml0eUlkXSxuPU1hdGgubWluKGgubGVuZ3RoLGwubGVuZ3RoKSxwPTA7cDxuO3ArKylpZihoW3BdIT09bFtwXSl7Zz1oW3BdLWxbcF07YnJlYWsgYX1nPWgubGVuZ3RoLWwubGVuZ3RofXJldHVybiBnfQpmdW5jdGlvbiBrRShhKXtpZihhPT1udWxsfHx0eXBlb2YgYSE9PSJvYmplY3QiKXJldHVybiExO2lmKGEuZXZlbnQpcmV0dXJuITA7aWYoSGIoYSkpe3ZhciBiPWFbMF07aWYoYj09PSJjb25maWcifHxiPT09ImV2ZW50Inx8Yj09PSJqcyJ8fGI9PT0iZ2V0IilyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBtRShhKXtyZXR1cm57bWVzc2FnZTphLm1lc3NhZ2UsbWVzc2FnZUNvbnRleHQ6YS5tZXNzYWdlQ29udGV4dH19ZnVuY3Rpb24gc0UoYSxiLGMpe3JldHVybiBpRShhLGIsYyl9ZnVuY3Rpb24gdEUoYSxiKXtyZXR1cm4gakUoYSxiKX1mdW5jdGlvbiByRSgpe3BFKCl9ZnVuY3Rpb24gdUUoYSl7cmV0dXJuIGhFLnB1c2goYSl9O3ZhciB2RT1mdW5jdGlvbigpe307dkUucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiPVJqKEEubG9jYXRpb24uaHJlZik7KGE9Yi5ob3N0bmFtZStiLnBhdGhuYW1lKSYmVW0oImRsIixlbmNvZGVVUklDb21wb25lbnQoYSkpO3ZhciBjO3ZhciBkPUUoNSk7aWYoZCl7dmFyIGU9SWYoNyk/MTowLGY9RmsoKSxnPWYmJmYuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbj8xOjAsaD1mJiZmLnNvdXJjZXx8MCxsPUUoNik7Yz1kKyI7IitsKyI7IitnKyI7IitoKyI7IitlfWVsc2UgYz12b2lkIDA7dmFyIG49YztuJiZVbSgidGRwIixuKTt2YXIgcD1PcCghMCk7cCE9PXZvaWQgMCYmVW0oImZybSIsU3RyaW5nKHApKX07dmFyIHdFPW5ldyB2RTt2YXIgeEU9ZnVuY3Rpb24oKXt0aGlzLkg9WG0oKTt0aGlzLks9dm9pZCAwfSx5RT1mdW5jdGlvbihhLGIpe3JldHVybiBabShhLGZ1bmN0aW9uKGMpe3JldHVybiBjLmpiPjA/Yj9jLmpiKyJfIitXbShjKTpTdHJpbmcoYy5qYik6dm9pZCAwfSl9Owp4RS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7aWYocGwoKXx8Zm4uSylVbSgiY3NwIixmdW5jdGlvbigpe3ZhciBiPXlFKGEuSCwhMCk7JG0oYS5IKTtyZXR1cm4gYn0sITEpLFVtKCJtZGUiLGZ1bmN0aW9uKCl7dmFyIGI9Y24uSCxjPXlFKGIsITEpOyRtKGIpO3JldHVybiBjfSwhMSksQS5hZGRFdmVudExpc3RlbmVyKCJzZWN1cml0eXBvbGljeXZpb2xhdGlvbiIsZnVuY3Rpb24oYil7aWYoYi5kaXNwb3NpdGlvbj09PSJlbmZvcmNlIil7UCgxNzkpO3ZhciBjPW5uKGIuZWZmZWN0aXZlRGlyZWN0aXZlKTtpZihjKXt2YXIgZDthOnt2YXIgZT1iLmJsb2NrZWRVUkksZj1rbjtpZihmbi5LJiZlKXt2YXIgZz1qbihjLGUpO2lmKGcpe3ZhciBoO2Q9KGg9bG4oZixjKSk9PW51bGw/dm9pZCAwOmhbZ107YnJlYWsgYX19ZD12b2lkIDB9dmFyIGw9ZDtpZihsKXt2YXIgbjthOnt0cnl7dmFyIHA9bmV3IFVSTChiLmJsb2NrZWRVUkkpLHE9cC5wYXRobmFtZS5pbmRleE9mKCI7Iik7Cm49cT49MD9wLm9yaWdpbitwLnBhdGhuYW1lLnN1YnN0cmluZygwLHEpOnAub3JpZ2luK3AucGF0aG5hbWU7YnJlYWsgYX1jYXRjaChEKXt9bj12b2lkIDB9dmFyIHI9bjtpZihyKXtmb3IodmFyIHQ9bShsKSx1PXQubmV4dCgpOyF1LmRvbmU7dT10Lm5leHQoKSl7dmFyIHY9dS52YWx1ZTtpZighdi5Fbyl7di5Fbz0hMDt2YXIgeD17ZXZlbnRJZDp2LmV2ZW50SWQscHJpb3JpdHlJZDp2LnByaW9yaXR5SWR9O2lmKHBsKCkpe3ZhciB5PXgsej17dHlwZToxLGJsb2NrZWRVcmw6cixlbmRwb2ludDp2LmVuZHBvaW50LHZpb2xhdGlvbjpiLmVmZmVjdGl2ZURpcmVjdGl2ZX07aWYocGwoKSl7dmFyIEM9TGwoIlRBR19ESUFHTk9TVElDUyIse2V2ZW50SWQ6eT09bnVsbD92b2lkIDA6eS5ldmVudElkLHByaW9yaXR5SWQ6eT09bnVsbD92b2lkIDA6eS5wcmlvcml0eUlkfSk7Qy50YWdEaWFnbm9zdGljcz16O29sKEMpfX16RShhLHYuZGVzdGluYXRpb25JZCx2LmVuZHBvaW50LGMpfX1tbihjLApiLmJsb2NrZWRVUkkpfX19fX0pfTt2YXIgekU9ZnVuY3Rpb24oYSxiLGMsZCl7YW4oYS5ILGIsYywxLGQpO1ZtKCJjc3AiLCEwKTtWbSgibWRlIiwhMCk7YyE9PTYxJiZjIT09NTYmJmEuSz09PXZvaWQgMCYmKGEuSz1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXthLkguamI+MCYmdG8oITEpO2EuSz12b2lkIDB9LDUwMCkpfSxBRT1uZXcgeEU7dmFyIEJFPWZ1bmN0aW9uKCl7dGhpcy5zZXF1ZW5jZU51bWJlcj0wfTtCRS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7Q0UodGhpcyk7SWYoNjUpJiZVbSgibXRibCIsIjEiKTtVbSgidiIsIjMiKTtVbSgidCIsInQiKTtVbSgicGlkIixmdW5jdGlvbigpe3JldHVybiBTdHJpbmcobm0oam0uYmEuYmgpKX0pO1VtKCJndG0iLGZ1bmN0aW9uKCl7cmV0dXJuIGR1KCl9KTtVbSgic2VxIixmdW5jdGlvbigpe3JldHVybiBTdHJpbmcoKythLnNlcXVlbmNlTnVtYmVyKX0pO1VtKCJleHAiLGZ1bmN0aW9uKCl7cmV0dXJuIENwKCl9KX07dmFyIENFPWZ1bmN0aW9uKGEpe2lmKG5tKGptLmJhLmJoKT09PXZvaWQgMCl7dmFyIGI9ZnVuY3Rpb24oKXttbShqbS5iYS5iaCxEYigpKTthLnNlcXVlbmNlTnVtYmVyPTB9O2IoKTtjZChiLDg2NEU1KX1lbHNlIHBtKGptLmJhLmJoLGZ1bmN0aW9uKCl7YS5zZXF1ZW5jZU51bWJlcj0wfSk7YS5zZXF1ZW5jZU51bWJlcj0wfSxERT1uZXcgQkU7ZnVuY3Rpb24gRUUoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEFbYV19fQp2YXIgRkU9e30sR0U9KEZFWzE0XT1mdW5jdGlvbigpe3ZhciBhO3JldHVybihhPUEuY3J5cHRvKT09bnVsbD92b2lkIDA6YS5nZXRSYW5kb21WYWx1ZXN9LEZFWzE1XT1mdW5jdGlvbigpe3ZhciBhLGI7cmV0dXJuKGE9QS5jcnlwdG8pPT1udWxsP3ZvaWQgMDooYj1hLnN1YnRsZSk9PW51bGw/dm9pZCAwOmIuZGlnZXN0fSxGRVsxXT1FRSgiZmV0Y2giKSxGRVs2XT1FRSgiTWFwIiksRkVbMl09ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5yYW5kb219LEZFWzhdPWZ1bmN0aW9uKCl7cmV0dXJuIG5hKE9iamVjdCwiYXNzaWduIil9LEZFWzldPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzfSxGRVsxMF09ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzfSxGRVs1XT1FRSgiUHJvbWlzZSIpLEZFWzEzXT1FRSgiUmVnRXhwIiksRkVbM109ZnVuY3Rpb24oKXtyZXR1cm4gSGMuc2VuZEJlYWNvbn0sRkVbN109RUUoIlNldCIpLEZFWzEyXT1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRofSwKRkVbMTFdPWZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aH0sRkVbNF09RUUoIlhNTEh0dHBSZXF1ZXN0IiksRkUpLEhFPXt9LElFPShIRVsxNV09ITAsSEUpO3ZhciBORT0vXihodHRwcz86KT9cL1wvLzsKZnVuY3Rpb24gaEYoKXt9O2Z1bmN0aW9uIGlGKCl7SWYoNjIpJiYoaHkoImRldGVjdF9saW5rX2NsaWNrX2V2ZW50cyIsZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybigoZD1jLm9wdGlvbnMpPT1udWxsP3ZvaWQgMDpkLndhaXRGb3JUYWdzKSE9PSEwfSksaHkoImRldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4oKGQ9Yy5vcHRpb25zKT09bnVsbD92b2lkIDA6ZC53YWl0Rm9yVGFncykhPT0hMH0pLGh5KCJkZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4oKGQ9Yy5vcHRpb25zKT09bnVsbD92b2lkIDA6ZC5maXhNaXNzaW5nQXBpKSE9PSEwfSkpfTt2YXIgakY9ZnVuY3Rpb24oKXt0aGlzLkg9dGhpcy5ncHBTdHJpbmc9dm9pZCAwfTtqRi5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLkg9dGhpcy5ncHBTdHJpbmc9dm9pZCAwfTt2YXIga0Y9bmV3IGpGO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7WzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7bHQoe0d1OjAsRnU6MSxDdToyLHh1OjMsRHU6NCx5dTo1LEV1OjYsQXU6NyxCdTo4LHd1OjksenU6MTAsSHU6MTF9KS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIE51bWJlcihhKX0pO2x0KHtKdTowLEt1OjEsSXU6Mn0pLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gTnVtYmVyKGEpfSk7dmFyIGxGPWZ1bmN0aW9uKGEsYixjLGQpe3J0LmNhbGwodGhpcyk7dGhpcy5mZT1iO3RoaXMua2Q9Yzt0aGlzLmFjPWQ7dGhpcy5MYT1uZXcgTWFwO3RoaXMuaGU9MDt0aGlzLmphPW5ldyBNYXA7dGhpcy55YT1uZXcgTWFwO3RoaXMuWj12b2lkIDA7dGhpcy5LPWF9O3dhKGxGLHJ0KTtsRi5wcm90b3R5cGUuTj1mdW5jdGlvbigpe2RlbGV0ZSB0aGlzLkg7dGhpcy5MYS5jbGVhcigpO3RoaXMuamEuY2xlYXIoKTt0aGlzLnlhLmNsZWFyKCk7dGhpcy5aJiYobnQodGhpcy5LLCJtZXNzYWdlIix0aGlzLlopLGRlbGV0ZSB0aGlzLlopO2RlbGV0ZSB0aGlzLks7ZGVsZXRlIHRoaXMuYWM7cnQucHJvdG90eXBlLk4uY2FsbCh0aGlzKX07CnZhciBtRj1mdW5jdGlvbihhKXtpZihhLkgpcmV0dXJuIGEuSDthLmtkJiZhLmtkKGEuSyk/YS5IPWEuSzphLkg9TnAoYS5LLGEuZmUpO3ZhciBiO3JldHVybihiPWEuSCkhPW51bGw/YjpudWxsfSxvRj1mdW5jdGlvbihhLGIsYyl7aWYobUYoYSkpaWYoYS5IPT09YS5LKXt2YXIgZD1hLkxhLmdldChiKTtkJiZkKGEuSCxjKX1lbHNle3ZhciBlPWEuamEuZ2V0KGIpO2lmKGUmJmUuZGspe25GKGEpO3ZhciBmPSsrYS5oZTthLnlhLnNldChmLHtwZTplLnBlLElyOmUubm8oYykscGVyc2lzdGVudDpiPT09ImFkZEV2ZW50TGlzdGVuZXIifSk7YS5ILnBvc3RNZXNzYWdlKGUuZGsoYyxmKSwiKiIpfX19LG5GPWZ1bmN0aW9uKGEpe2EuWnx8KGEuWj1mdW5jdGlvbihiKXtpZihiLnNvdXJjZT09PWEuSCl0cnl7dmFyIGM7Yz1hLmFjP2EuYWMoYik6dm9pZCAwO2lmKGMpe3ZhciBkPWMuWXMsZT1hLnlhLmdldChkKTtpZihlKXtlLnBlcnNpc3RlbnR8fGEueWEuZGVsZXRlKGQpO3ZhciBmOyhmPQplLnBlKT09bnVsbHx8Zi5jYWxsKGUsZS5JcixjLnBheWxvYWQpfX19Y2F0Y2goZyl7fX0sbXQoYS5LLCJtZXNzYWdlIixhLlopKX07dmFyIHBGPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5saXN0ZW5lcixkPSgwLGEuX19ncHApKCJhZGRFdmVudExpc3RlbmVyIixjKTtkJiZjKGQsITApfSxxRj1mdW5jdGlvbihhLGIpeygwLGEuX19ncHApKCJyZW1vdmVFdmVudExpc3RlbmVyIixiLmxpc3RlbmVyLGIubGlzdGVuZXJJZCl9LHJGPXtubzpmdW5jdGlvbihhKXtyZXR1cm4gYS5saXN0ZW5lcn0sZGs6ZnVuY3Rpb24oYSxiKXt2YXIgYz17fTtyZXR1cm4gYy5fX2dwcENhbGw9e2NhbGxJZDpiLGNvbW1hbmQ6ImFkZEV2ZW50TGlzdGVuZXIiLHZlcnNpb246IjEuMSJ9LGN9LHBlOmZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5fX2dwcFJldHVybjthKGMucmV0dXJuVmFsdWUsYy5zdWNjZXNzKX19LHNGPXtubzpmdW5jdGlvbihhKXtyZXR1cm4gYS5saXN0ZW5lcn0sZGs6ZnVuY3Rpb24oYSxiKXt2YXIgYz17fTtyZXR1cm4gYy5fX2dwcENhbGw9e2NhbGxJZDpiLGNvbW1hbmQ6InJlbW92ZUV2ZW50TGlzdGVuZXIiLHZlcnNpb246IjEuMSIsCnBhcmFtZXRlcjphLmxpc3RlbmVySWR9LGN9LHBlOmZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5fX2dwcFJldHVybixkPWMucmV0dXJuVmFsdWUuZGF0YTthPT1udWxsfHxhKGQsYy5zdWNjZXNzKX19O2Z1bmN0aW9uIHRGKGEpe3ZhciBiPXt9O3ZmKGEuZGF0YSk/Yj1KU09OLnBhcnNlKGEuZGF0YSk6Yj1hLmRhdGE7cmV0dXJue3BheWxvYWQ6YixZczpiLl9fZ3BwUmV0dXJuLmNhbGxJZH19CnZhciB1Rj1mdW5jdGlvbihhLGIpe3ZhciBjO2M9KGI9PT12b2lkIDA/e306YikudGltZW91dE1zO3J0LmNhbGwodGhpcyk7dGhpcy5jYWxsZXI9bmV3IGxGKGEsIl9fZ3BwTG9jYXRvciIsZnVuY3Rpb24oZCl7cmV0dXJuIHR5cGVvZiBkLl9fZ3BwPT09ImZ1bmN0aW9uIn0sdEYpO3RoaXMuY2FsbGVyLkxhLnNldCgiYWRkRXZlbnRMaXN0ZW5lciIscEYpO3RoaXMuY2FsbGVyLmphLnNldCgiYWRkRXZlbnRMaXN0ZW5lciIsckYpO3RoaXMuY2FsbGVyLkxhLnNldCgicmVtb3ZlRXZlbnRMaXN0ZW5lciIscUYpO3RoaXMuY2FsbGVyLmphLnNldCgicmVtb3ZlRXZlbnRMaXN0ZW5lciIsc0YpO3RoaXMudGltZW91dE1zPWMhPW51bGw/Yzo1MDB9O3dhKHVGLHJ0KTt1Ri5wcm90b3R5cGUuTj1mdW5jdGlvbigpe3RoaXMuY2FsbGVyLmRpc3Bvc2UoKTtydC5wcm90b3R5cGUuTi5jYWxsKHRoaXMpfTsKdUYucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPUhwKGZ1bmN0aW9uKCl7YSh2RiwhMCl9KSxkPXRoaXMudGltZW91dE1zPT09LTE/dm9pZCAwOnNldFRpbWVvdXQoZnVuY3Rpb24oKXtjKCl9LHRoaXMudGltZW91dE1zKTtvRih0aGlzLmNhbGxlciwiYWRkRXZlbnRMaXN0ZW5lciIse2xpc3RlbmVyOmZ1bmN0aW9uKGUsZil7Y2xlYXJUaW1lb3V0KGQpO3RyeXt2YXIgZzt2YXIgaDsoKGg9ZS5waW5nRGF0YSk9PW51bGw/dm9pZCAwOmguZ3BwVmVyc2lvbik9PT12b2lkIDB8fGUucGluZ0RhdGEuZ3BwVmVyc2lvbj09PSIxInx8ZS5waW5nRGF0YS5ncHBWZXJzaW9uPT09IjEuMCI/KGIucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLmxpc3RlbmVySWQpLGc9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2ludGVybmFsRXJyb3JTdGF0ZToxLGdwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19JU19ERVBSRUNBVEVEX1NQRUMiLAphcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX19KTpBcnJheS5pc0FycmF5KGUucGluZ0RhdGEuYXBwbGljYWJsZVNlY3Rpb25zKT9nPWU6KGIucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLmxpc3RlbmVySWQpLGc9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2ludGVybmFsRXJyb3JTdGF0ZToyLGdwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19FWFBFQ1RFRF9BUFBMSUNBVElPTl9TRUNUSU9OX0FSUkFZIixhcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX19KTthKGcsZil9Y2F0Y2gobCl7aWYoZT09bnVsbD8wOmUubGlzdGVuZXJJZCl0cnl7Yi5yZW1vdmVFdmVudExpc3RlbmVyKGUubGlzdGVuZXJJZCl9Y2F0Y2gobil7YSh3RiwhMCk7cmV0dXJufWEoeEYsITApfX19KX07CnVGLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEpe29GKHRoaXMuY2FsbGVyLCJyZW1vdmVFdmVudExpc3RlbmVyIix7bGlzdGVuZXI6ZnVuY3Rpb24oKXt9LGxpc3RlbmVySWQ6YX0pfTsKdmFyIHhGPXtldmVudE5hbWU6InNpZ25hbFN0YXR1cyIsZGF0YToicmVhZHkiLHBpbmdEYXRhOntpbnRlcm5hbEVycm9yU3RhdGU6MixncHBTdHJpbmc6IkdQUF9FUlJPUl9TVFJJTkdfVU5BVkFJTEFCTEUiLGFwcGxpY2FibGVTZWN0aW9uczpbLTFdfSxsaXN0ZW5lcklkOi0xfSx2Rj17ZXZlbnROYW1lOiJzaWduYWxTdGF0dXMiLGRhdGE6InJlYWR5IixwaW5nRGF0YTp7Z3BwU3RyaW5nOiJHUFBfRVJST1JfU1RSSU5HX0xJU1RFTkVSX1JFR0lTVFJBVElPTl9USU1FT1VUIixpbnRlcm5hbEVycm9yU3RhdGU6MixhcHBsaWNhYmxlU2VjdGlvbnM6Wy0xXX0sbGlzdGVuZXJJZDotMX0sd0Y9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2dwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19SRU1PVkVfRVZFTlRfTElTVEVORVJfRVJST1IiLGludGVybmFsRXJyb3JTdGF0ZToyLGFwcGxpY2FibGVTZWN0aW9uczpbLTFdfSxsaXN0ZW5lcklkOi0xfTtmdW5jdGlvbiB5RihhKXt2YXIgYjtpZighKGI9YS5waW5nRGF0YS5zaWduYWxTdGF0dXM9PT0icmVhZHkiKSl7dmFyIGM9YS5waW5nRGF0YS5hcHBsaWNhYmxlU2VjdGlvbnM7Yj0hY3x8Yy5sZW5ndGg9PT0xJiZjWzBdPT09LTF9aWYoYil7a0YuZ3BwU3RyaW5nPWEucGluZ0RhdGEuZ3BwU3RyaW5nO3ZhciBkPWEucGluZ0RhdGEuYXBwbGljYWJsZVNlY3Rpb25zLmpvaW4oIiwiKTtrRi5IPWR9fWZ1bmN0aW9uIHpGKCl7dHJ5e3ZhciBhPW5ldyB1RihBLHt0aW1lb3V0TXM6LTF9KTttRihhLmNhbGxlcikmJmEuYWRkRXZlbnRMaXN0ZW5lcih5Ril9Y2F0Y2goYil7fX07ZnVuY3Rpb24gQUYoKXt2YXIgYT1bWyJjdiIsRSgxKV0sWyJydiIsRSgxNCldLFsidGMiLGNBLnRhZ3MuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiBkfSkubGVuZ3RoXV0sYj1KZigxNSk7YiYmYS5wdXNoKFsieCIsYl0pO3ZhciBjPUNwKCk7YyYmYS5wdXNoKFsidGFnX2V4cCIsY10pO3JldHVybiBhfTt2YXIgQkY9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD17fTt0aGlzLks9e307ZnooZnVuY3Rpb24oYil7dmFyIGM9Yi5ldmVudElkLGQ9Yi50ZixlPVtdLGY9YS5IW2NdfHxbXTtmLmxlbmd0aCYmZS5wdXNoKFsiaGYiLGYuam9pbigiLiIpXSk7dmFyIGc9YS5LW2NdfHxbXTtnLmxlbmd0aCYmZS5wdXNoKFsiaHQiLGcuam9pbigiLiIpXSk7ZCYmKGRlbGV0ZSBhLkhbY10sZGVsZXRlIGEuS1tjXSk7cmV0dXJuIGV9KX0sQ0Y9ZnVuY3Rpb24oKXt2YXIgYT0wO3JldHVybiBmdW5jdGlvbihiKXtzd2l0Y2goYil7Y2FzZSAxOmF8PTE7YnJlYWs7Y2FzZSAyOmF8PTI7YnJlYWs7Y2FzZSAzOmF8PTR9cmV0dXJuIGF9fSxERjt2YXIgRUY9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSD0iIjtmbi5OJiZNKDUxNikmJmZ6KGZ1bmN0aW9uKCl7dmFyIGI9W107YS5IJiZiLnB1c2goWyJwc2QiLGEuSF0pO3JldHVybiBifSl9LEZGO2Z1bmN0aW9uIEdGKCl7cmV0dXJuITF9CmZ1bmN0aW9uIEhGKCl7dmFyIGE9e307cmV0dXJuIGZ1bmN0aW9uKGIsYyxkKXt9fTtmdW5jdGlvbiBJRigpe3ZhciBhPUpGO3JldHVybiBmdW5jdGlvbihiLGMsZCl7dmFyIGU9ZCYmZC5ldmVudDtLRihjKTt2YXIgZj1CaChiKT92b2lkIDA6MSxnPW5ldyBrYjtHYihjLGZ1bmN0aW9uKHIsdCl7dmFyIHU9VWQodCx2b2lkIDAsZik7dT09PXZvaWQgMCYmdCE9PXZvaWQgMCYmUCg0NCk7Zy5zZXQocix1KX0pO2EuUWIoUWYoKSk7dmFyIGg9e1JuOmhnKGIpLGV2ZW50SWQ6ZT09bnVsbD92b2lkIDA6ZS5pZCxwcmlvcml0eUlkOmUhPT12b2lkIDA/ZS5wcmlvcml0eUlkOnZvaWQgMCxwcmlvcml0eVF1ZXVlOmUhPT12b2lkIDA/ZS5wcmlvcml0eVF1ZXVlOnZvaWQgMCx3ZzplIT09dm9pZCAwP2Z1bmN0aW9uKHIpe2UubGQud2cocil9OnZvaWQgMCxQYjpmdW5jdGlvbigpe3JldHVybiBifSxsb2c6ZnVuY3Rpb24oKXt9LE5yOntpbmRleDpkPT1udWxsP3ZvaWQgMDpkLmluZGV4LHR5cGU6ZD09bnVsbD92b2lkIDA6ZC50eXBlLG5hbWU6ZD09bnVsbD92b2lkIDA6ZC5uYW1lfSwKaXQ6ISFLQShiLDMpLG9yaWdpbmFsRXZlbnREYXRhOmU9PW51bGw/dm9pZCAwOmUub3JpZ2luYWxFdmVudERhdGF9O2UmJmUuY2FjaGVkTW9kZWxWYWx1ZXMmJihoLmNhY2hlZE1vZGVsVmFsdWVzPXtndG06ZS5jYWNoZWRNb2RlbFZhbHVlcy5ndG0sZWNvbW1lcmNlOmUuY2FjaGVkTW9kZWxWYWx1ZXMuZWNvbW1lcmNlfSk7aWYoR0YoKSl7dmFyIGw9SEYoKSxuLHA7aC5BYj17d2s6W10seWc6e30samM6ZnVuY3Rpb24ocix0LHUpe3Q9PT0xJiYobj1yKTt0PT09NyYmKHA9dSk7bChyLHQsdSl9LGVpOlZoKCl9O2gubG9nPWZ1bmN0aW9uKHIpe3ZhciB0PU9hLmFwcGx5KDEsYXJndW1lbnRzKTtuJiZsKG4sNCx7bGV2ZWw6cixzb3VyY2U6cCxtZXNzYWdlOnR9KX19CnZhciBxPXJmKGEsaCxbYixnXSk7YS5RYigpO3EgaW5zdGFuY2VvZiBUYSYmKHEudHlwZT09PSJyZXR1cm4iP3E9cS5kYXRhOnE9dm9pZCAwKTtyZXR1cm4gVGQocSx2b2lkIDAsZil9fWZ1bmN0aW9uIEtGKGEpe3ZhciBiPWEuZ3RtT25TdWNjZXNzLGM9YS5ndG1PbkZhaWx1cmU7eWIoYikmJihhLmd0bU9uU3VjY2Vzcz1mdW5jdGlvbigpe2JkKGIpfSk7eWIoYykmJihhLmd0bU9uRmFpbHVyZT1mdW5jdGlvbigpe2JkKGMpfSl9O3ZhciBMRj1mdW5jdGlvbihhKXtpeChhKX07dmFyIE1GPWZ1bmN0aW9uKGEpe1YoYSxILkoudGcsY28uaWEuY2IpfTtmdW5jdGlvbiBORigpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjApfTt2YXIgT0Y9W0YuRC56aV0ubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhLnNsaWNlKDIpfSk7dmFyIFBGPWZ1bmN0aW9uKGEpe1UoYSxGLkQuemksYWwoOCxORikpfTtmdW5jdGlvbiBRRihhKXt9UUYuUD0iaW50ZXJuYWwuYWRkQWRzQ2xpY2tJZHMiO2Z1bmN0aW9uIFJGKGEsYil7dmFyIGM9dGhpczt9UkYucHVibGljTmFtZT0iYWRkQ29uc2VudExpc3RlbmVyIjt2YXIgU0Y9ITE7ZnVuY3Rpb24gVEYoYSl7Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2IpaWYoU0YpdHJ5e2FbYl0oKX1jYXRjaChjKXtQKDc3KX1lbHNlIGFbYl0oKX1mdW5jdGlvbiBVRihhLGIsYyl7dmFyIGQ9dGhpcyxlO2lmKCFsaChhKXx8IWhoKGIpfHwhbWgoYykpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsImZ1bmN0aW9uIiwic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7VEYoW2Z1bmN0aW9uKCl7TChkLCJsaXN0ZW5fZGF0YV9sYXllciIsYSl9XSk7ZT15QigpLmFkZExpc3RlbmVyKGEsVGQoYix2b2lkIDAsMSksYz09PW51bGw/dm9pZCAwOmMpO3JldHVybiBlfVVGLlA9ImludGVybmFsLmFkZERhdGFMYXllckV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIFZGKGEsYixjKXt9VkYucHVibGljTmFtZT0iYWRkRG9jdW1lbnRFdmVudExpc3RlbmVyIjtmdW5jdGlvbiBXRihhLGIsYyxkKXt9V0YucHVibGljTmFtZT0iYWRkRWxlbWVudEV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIFhGKGEpe3JldHVybiBhLlQueGIoKX07ZnVuY3Rpb24gWUYoYSl7fVlGLnB1YmxpY05hbWU9ImFkZEV2ZW50Q2FsbGJhY2siOwp2YXIgWkY9ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyI/YTpTdHJpbmcocmooKSl9LGJHPWZ1bmN0aW9uKGEsYil7JEYoYSwiaW5pdCIsITEpfHwoYUcoYSwiaW5pdCIsITApLGIoKSl9LCRGPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1jRyhhKTtyZXR1cm4gT2IoZCxiLGMpfSxkRz1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1jRyhhKSxmPU9iKGUsYixkKSxnPWMoZik7cmV0dXJuIGVbYl09Z30sYUc9ZnVuY3Rpb24oYSxiLGMpe2NHKGEpW2JdPWN9LGNHPWZ1bmN0aW9uKGEpe3ZhciBiPWtqKCJhdXRvRXZlbnRzU2V0dGluZ3MiLGZ1bmN0aW9uKCl7cmV0dXJue319KTtiLmhhc093blByb3BlcnR5KGEpfHwoYlthXT17fSk7cmV0dXJuIGJbYV19LGVHPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD17ZXZlbnQ6YiwiZ3RtLmVsZW1lbnQiOmEsImd0bS5lbGVtZW50Q2xhc3NlcyI6b2QoYSwiY2xhc3NOYW1lIiksImd0bS5lbGVtZW50SWQiOmEuZm9yfHxlZChhLCJpZCIpfHwKIiIsImd0bS5lbGVtZW50VGFyZ2V0IjphLmZvcm1UYXJnZXR8fG9kKGEsInRhcmdldCIpfHwiIn07YyYmKGRbImd0bS50cmlnZ2VycyJdPWMuam9pbigiLCIpKTtkWyJndG0uZWxlbWVudFVybCJdPShhLmF0dHJpYnV0ZXMmJmEuYXR0cmlidXRlcy5mb3JtYWN0aW9uP2EuZm9ybUFjdGlvbjoiIil8fGEuYWN0aW9ufHxvZChhLCJocmVmIil8fGEuc3JjfHxhLmNvZGV8fGEuY29kZWJhc2V8fCIiO3JldHVybiBkfTt2YXIgaEc9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhLmVsZW1lbnRzKXJldHVybiAwO2Zvcih2YXIgZD1iLmRhdGFzZXRbY10sZT0wLGY9MTtlPGEuZWxlbWVudHMubGVuZ3RoO2UrKyl7dmFyIGc9YS5lbGVtZW50c1tlXSxoPWcudGFnTmFtZS50b0xvd2VyQ2FzZSgpO2lmKCEoZkcuaW5kZXhPZihoKTwwfHxoPT09ImlucHV0IiYmZ0cuaW5kZXhPZihnLnR5cGUudG9Mb3dlckNhc2UoKSk+PTApKXtpZihnLmRhdGFzZXRbY109PT1kKXJldHVybiBmO2YrK319cmV0dXJuIDB9LGZHPVsiaW5wdXQiLCJzZWxlY3QiLCJ0ZXh0YXJlYSJdLGdHPVsiYnV0dG9uIiwiaGlkZGVuIiwiaW1hZ2UiLCJyZXNldCIsInN1Ym1pdCJdOwpmdW5jdGlvbiBpRyhhKXtpZihhLmZvcm0pe3ZhciBiO3JldHVybigoYj1hLmZvcm0pPT1udWxsPzA6Yi50YWdOYW1lKT9hLmZvcm06Qi5nZXRFbGVtZW50QnlJZChhLmZvcm0pfXJldHVybiBoZChhLFsiZm9ybSJdLDEwMCl9OwpmdW5jdGlvbiBtRyhhKXt9bUcuUD0iaW50ZXJuYWwuYWRkRm9ybUFiYW5kb25tZW50TGlzdGVuZXIiO2Z1bmN0aW9uIG5HKGEsYixjLGQpe30KbkcuUD0iaW50ZXJuYWwuYWRkRm9ybURhdGEiOwpmdW5jdGlvbiBzRyhhKXt9c0cuUD0iaW50ZXJuYWwuYWRkR2FTZW5kTGlzdGVuZXIiO2Z1bmN0aW9uIHRHKGEpe2lmKCFhKXJldHVybnt9O3ZhciBiPWEuTnI7cmV0dXJuIEpBKGIudHlwZSxiLmluZGV4LGIubmFtZSl9ZnVuY3Rpb24gdUcoYSl7aWYoIWEpcmV0dXJue307dmFyIGI9e29yaWdpbmF0aW5nRW50aXR5OnRHKGEpfTthLnByaW9yaXR5UXVldWUmJihiLnByaW9yaXR5UXVldWU9YS5wcmlvcml0eVF1ZXVlKTtyZXR1cm4gYn07ZnVuY3Rpb24gQ0coYSl7dmFyIGI9bWooInpvbmVzIik7cmV0dXJuIGI/Yi5nZXRJc0FsbG93ZWRGbih3aygpLGEpOmZ1bmN0aW9uKCl7cmV0dXJuITB9fWZ1bmN0aW9uIERHKCl7dmFyIGE9bWooInpvbmVzIik7YSYmYS51bnJlZ2lzdGVyQ2hpbGQod2soKSl9CmZ1bmN0aW9uIEVHKCl7a0IodmsoKSxmdW5jdGlvbihhKXt2YXIgYj1hLm9yaWdpbmFsRXZlbnREYXRhWyJndG0udW5pcXVlRXZlbnRJZCJdLGM9bWooInpvbmVzIik7cmV0dXJuIGM/Yy5pc0FjdGl2ZSh3aygpLGIpOiEwfSk7aEIodmsoKSxmdW5jdGlvbihhKXt2YXIgYixjO2I9YS5lbnRpdHlJZDtjPWEuc2VjdXJpdHlHcm91cHM7cmV0dXJuIENHKE51bWJlcihhLm9yaWdpbmFsRXZlbnREYXRhWyJndG0udW5pcXVlRXZlbnRJZCJdKSkoYixjKX0pfTt2YXIgRkc9ZnVuY3Rpb24oYSxiKXt0aGlzLnRhZ0lkPWE7dGhpcy5jYW5vbmljYWxJZD1ifTsKZnVuY3Rpb24gR0coYSxiKXt2YXIgYz10aGlzO3JldHVybiBhfUdHLlA9ImludGVybmFsLmxvYWRHb29nbGVUYWciO2Z1bmN0aW9uIEhHKGEpe3JldHVybiBuZXcgS2QoIiIsZnVuY3Rpb24oYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShiKTtpZihjIGluc3RhbmNlb2YgS2QpcmV0dXJuIG5ldyBLZCgiIixmdW5jdGlvbigpe3ZhciBkPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxlPXRoaXMsZj1FZChYRih0aGlzKSxudWxsKTtmLmV2ZW50SWQ9YS5ldmVudElkO2YucHJpb3JpdHlJZD1hLnByaW9yaXR5SWQ7Zi5vcmlnaW5hbEV2ZW50RGF0YT1hLm9yaWdpbmFsRXZlbnREYXRhO3ZhciBnPWQubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBlLmV2YWx1YXRlKGwpfSksaD10aGlzLlQud2IoKTtoLnVlKGYpO3JldHVybiBjLk5jLmFwcGx5KGMsW2hdLmNvbmNhdCh3KGcpKSl9KX0pfTtmdW5jdGlvbiBJRyhhLGIsYyl7dmFyIGQ9dGhpczt9SUcuUD0iaW50ZXJuYWwuYWRkR29vZ2xlVGFnUmVzdHJpY3Rpb24iOwpmdW5jdGlvbiBQRyhhLGIpe31QRy5QPSJpbnRlcm5hbC5hZGRIaXN0b3J5Q2hhbmdlTGlzdGVuZXIiO2Z1bmN0aW9uIFFHKGEsYixjKXt9UUcucHVibGljTmFtZT0iYWRkV2luZG93RXZlbnRMaXN0ZW5lciI7ZnVuY3Rpb24gUkcoYSxiKXtyZXR1cm4hMH1SRy5wdWJsaWNOYW1lPSJhbGlhc0luV2luZG93IjtmdW5jdGlvbiBTRyhhLGIsYyl7fVNHLlA9ImludGVybmFsLmFwcGVuZFJlbW90ZUNvbmZpZ1BhcmFtZXRlciI7ZnVuY3Rpb24gVEcoYSl7dmFyIGI7cmV0dXJuIGJ9ClRHLnB1YmxpY05hbWU9ImNhbGxJbldpbmRvdyI7ZnVuY3Rpb24gVUcoYSl7fVVHLnB1YmxpY05hbWU9ImNhbGxMYXRlciI7ZnVuY3Rpb24gVkcoYSl7fVZHLlA9ImNhbGxPbkRvbVJlYWR5IjtmdW5jdGlvbiBXRyhhKXt9V0cuUD0iY2FsbE9uV2luZG93TG9hZCI7dmFyIFlHPWZ1bmN0aW9uKGEsYil7dmFyIGM9bm0oWEcpfHx7fSxkPWNbYV18fHt9O2lmKGRbYl0pcmV0dXJuITE7dmFyIGU9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxkKTtlW2JdPSEwO3ZhciBmPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYyk7ZlthXT1lO21tKFhHLGYpO3JldHVybiEwfSxYRz1qbS5iYS5ocjtmdW5jdGlvbiBaRyhhLGIpe2lmKCFsaChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmciXSxhcmd1bWVudHMpO3ZhciBjPVlHKGEsYik7cmV0dXJuIGN9WkcuUD0iaW50ZXJuYWwuY2xhaW1EZXN0aW5hdGlvbiI7ZnVuY3Rpb24gJEcoYSxiKXt2YXIgYztyZXR1cm4gY30kRy5QPSJpbnRlcm5hbC5jb21wdXRlR3RtUGFyYW1ldGVyIjtmdW5jdGlvbiBhSChhLGIpe3ZhciBjPXRoaXM7fWFILlA9ImludGVybmFsLmNvbnNlbnRTY2hlZHVsZUZpcnN0VHJ5IjtmdW5jdGlvbiBiSChhLGIpe3ZhciBjPXRoaXM7fWJILlA9ImludGVybmFsLmNvbnNlbnRTY2hlZHVsZVJldHJ5IjtmdW5jdGlvbiBjSChhKXt2YXIgYjtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGM9YTtpZigha20oYykpdGhyb3cgRXJyb3IoImNvcHlGcm9tQ3Jvc3NDb250YWluZXJEYXRhIHJlcXVpcmVzIHZhbGlkIENyb3NzQ29udGFpbmVyU2NoZW1hIGtleS4iKTt2YXIgZD1ubShjKTtiPVVkKGQsdGhpcy5ULDEpO3JldHVybiBifWNILlA9ImludGVybmFsLmNvcHlGcm9tQ3Jvc3NDb250YWluZXJEYXRhIjtmdW5jdGlvbiBkSChhLGIpe3ZhciBjO3ZhciBlPVVkKGMsdGhpcy5ULEJoKFhGKHRoaXMpLlBiKCkpPzI6MSk7ZT09PXZvaWQgMCYmYyE9PXZvaWQgMCYmUCg0NSk7cmV0dXJuIGV9ZEgucHVibGljTmFtZT0iY29weUZyb21EYXRhTGF5ZXIiOwpmdW5jdGlvbiBlSChhKXt2YXIgYj12b2lkIDA7cmV0dXJuIGJ9ZUguUD0iaW50ZXJuYWwuY29weUZyb21EYXRhTGF5ZXJDYWNoZSI7ZnVuY3Rpb24gZkgoYSl7dmFyIGI7cmV0dXJuIGJ9ZkgucHVibGljTmFtZT0iY29weUZyb21XaW5kb3ciO2Z1bmN0aW9uIGdIKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gVWQoYix0aGlzLlQsMSl9Z0guUD0iaW50ZXJuYWwuY29weUtleUZyb21XaW5kb3ciO3ZhciBoSD1mdW5jdGlvbihhKXtyZXR1cm4gYT09PWNvLmlhLmNiJiZmby5IW2FdPT09Ym8uTWEuVWUmJiFYbyhGLkQua2EpfTt2YXIgaUg9ZnVuY3Rpb24oKXtyZXR1cm4iMCJ9LGpIPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09InN0cmluZyIpcmV0dXJuIiI7dmFyIGI9WyJnY2xpZCIsImRjbGlkIiwid2JyYWlkIiwiX2dsIl07TSgxMDIpJiZiLnB1c2goImdicmFpZCIpO3JldHVybiBTaihhLGIsIjAiKX07dmFyIGtIPXt9LGxIPXt9LG1IPXt9LG5IPXt9LG9IPXt9LHBIPXt9LHFIPXt9LHJIPXt9LHNIPXt9LHRIPXt9LHVIPXt9LHZIPXt9LHdIPXt9LHhIPXt9LHlIPXt9LHpIPXt9LEFIPXt9LEJIPXt9LENIPXt9LERIPXt9LEVIPXt9LEZIPXt9LEdIPXt9LEhIPXt9LElIPXt9LEpIPXt9LEtIPShKSFtGLkQuZmJdPShrSFsyXT1baEhdLGtIKSxKSFtGLkQuWmZdPShsSFsyXT1baEhdLGxIKSxKSFtGLkQuSmldPShtSFsyXT1baEhdLG1IKSxKSFtGLkQuZ21dPShuSFsyXT1baEhdLG5IKSxKSFtGLkQuaG1dPShvSFsyXT1baEhdLG9IKSxKSFtGLkQuaW1dPShwSFsyXT1baEhdLHBIKSxKSFtGLkQuam1dPShxSFsyXT1baEhdLHFIKSxKSFtGLkQua21dPShySFsyXT1baEhdLHJIKSxKSFtGLkQuQmNdPShzSFsyXT1baEhdLHNIKSxKSFtGLkQuY2ddPSh0SFsyXT1baEhdLHRIKSxKSFtGLkQuZGddPSh1SFsyXT1baEhdLHVIKSxKSFtGLkQuZWddPSh2SFsyXT1baEhdLHZIKSxKSFtGLkQuZmddPSh3SFsyXT0KW2hIXSx3SCksSkhbRi5ELmdnXT0oeEhbMl09W2hIXSx4SCksSkhbRi5ELmhnXT0oeUhbMl09W2hIXSx5SCksSkhbRi5ELmlnXT0oekhbMl09W2hIXSx6SCksSkhbRi5ELmpnXT0oQUhbMl09W2hIXSxBSCksSkhbRi5ELmxiXT0oQkhbMV09W2hIXSxCSCksSkhbRi5ELkRkXT0oQ0hbMV09W2hIXSxDSCksSkhbRi5ELktkXT0oREhbMV09W2hIXSxESCksSkhbRi5ELkVlXT0oRUhbMV09W2hIXSxFSCksSkhbRi5ELkJmXT0oRkhbMV09W2Z1bmN0aW9uKGEpe3JldHVybiBNKDEwMikmJmhIKGEpfV0sRkgpLEpIW0YuRC5VY109KEdIWzFdPVtoSF0sR0gpLEpIW0YuRC56YV09KEhIWzFdPVtoSF0sSEgpLEpIW0YuRC5VYV09KElIWzFdPVtoSF0sSUgpLEpIKSxMSD17fSxNSD0oTEhbRi5ELmxiXT1pSCxMSFtGLkQuRGRdPWlILExIW0YuRC5LZF09aUgsTEhbRi5ELkVlXT1pSCxMSFtGLkQuQmZdPWlILExIW0YuRC5VY109ZnVuY3Rpb24oYSl7aWYoIUNkKGEpKXJldHVybnt9O3ZhciBiPUVkKGEsCm51bGwpO2RlbGV0ZSBiLm1hdGNoX2lkO3JldHVybiBifSxMSFtGLkQuemFdPWpILExIW0YuRC5VYV09akgsTEgpLE5IPXt9LE9IPXt9LFBIPShPSFtILkouWWFdPShOSFsyXT1baEhdLE5IKSxPSCksUUg9e307dmFyIFJIPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuSD1hO3RoaXMuTj1iO3RoaXMuUj1jO3RoaXMuWj1kfTtSSC5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP2NvLmlhLmdkOmE7aWYoIXRoaXMuTi5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiKGEpfSkpcmV0dXJuIHRoaXMuUi5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiKGEpfSk/dGhpcy5aKHRoaXMuSCk6dGhpcy5IfTtSSC5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybiBBZCh0aGlzLkgpPT09ImFycmF5Inx8Q2QodGhpcy5IKT9FZCh0aGlzLkgsbnVsbCk6dGhpcy5IfTsKdmFyIFNIPWZ1bmN0aW9uKCl7fSxUSD1mdW5jdGlvbihhLGIpe3RoaXMuY29uZGl0aW9ucz1hO3RoaXMuSD1ifSxVSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZT0oKGQ9YS5jb25kaXRpb25zW2JdKT09bnVsbD92b2lkIDA6ZFsyXSl8fFtdLGYsZz0oKGY9YS5jb25kaXRpb25zW2JdKT09bnVsbD92b2lkIDA6ZlsxXSl8fFtdO3JldHVybiBuZXcgUkgoYyxlLGcsYS5IW2JdfHxTSCl9LFZILFdIO3ZhciBZSD1mdW5jdGlvbihhKXthLks9ITA7YS5IPSExO2lmKElmKDUyKSl7aWYoTSg1MTYpJiZYSCgpKXt2YXIgYjthLnNldHRpbmdzPShiPWRhdGEucHJvZHVjdFNldHRpbmdzKSE9bnVsbD9iOnt9O2EuSD0hMH1lbHNle3ZhciBjO2Euc2V0dGluZ3M9KGM9cHJvZHVjdFNldHRpbmdzKSE9bnVsbD9jOnt9fXByb2R1Y3RTZXR0aW5ncz12b2lkIDA7ZGF0YS5wcm9kdWN0U2V0dGluZ3M9dm9pZCAwO3ZhciBkOyhkPUZGKSE9bnVsbCYmZm4uTiYmTSg1MTYpJiYoZC5IPWEuSD8iMSI6IjAiKX19LCRIPWZ1bmN0aW9uKGEpe3ZhciBiPVpIO2IuS3x8WUgoYik7cmV0dXJuIGIuc2V0dGluZ3NbYV19LFpIPW5ldyBmdW5jdGlvbigpe3RoaXMuc2V0dGluZ3M9e307dGhpcy5LPXRoaXMuSD0hMX07CmZ1bmN0aW9uIFhIKCl7aWYoIWRhdGEucHJvZHVjdFNldHRpbmdzJiYhcHJvZHVjdFNldHRpbmdzKXJldHVybiEwO2lmKCFkYXRhLnByb2R1Y3RTZXR0aW5nc3x8IXByb2R1Y3RTZXR0aW5nc3x8T2JqZWN0LmtleXMoZGF0YS5wcm9kdWN0U2V0dGluZ3MpLmxlbmd0aCE9PU9iamVjdC5rZXlzKHByb2R1Y3RTZXR0aW5ncykubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgYSBpbiBwcm9kdWN0U2V0dGluZ3MpaWYoIWRhdGEucHJvZHVjdFNldHRpbmdzLmhhc093blByb3BlcnR5KGEpfHxkYXRhLnByb2R1Y3RTZXR0aW5nc1thXS5wcmVBdXRvUGlpIT09cHJvZHVjdFNldHRpbmdzW2FdLnByZUF1dG9QaWkpcmV0dXJuITE7cmV0dXJuITB9O3ZhciBhST1mdW5jdGlvbihhLGIsYyl7dGhpcy5ldmVudE5hbWU9Yjt0aGlzLk09Yzt0aGlzLkg9e307dGhpcy5pc0Fib3J0ZWQ9ITE7dGhpcy50YXJnZXQ9YTt0aGlzLm1ldGFkYXRhPXt9O2Zvcih2YXIgZD1jLmV2ZW50TWV0YWRhdGF8fHt9LGU9bShPYmplY3Qua2V5cyhkKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7Vih0aGlzLGcsZFtnXSl9fSxSPWZ1bmN0aW9uKGEsYil7dmFyIGMsZDtyZXR1cm4oYz1hLkhbYl0pPT1udWxsP3ZvaWQgMDooZD1jLmdldFZhbHVlKT09bnVsbD92b2lkIDA6ZC5jYWxsKGMsUShhLEguSi50ZykpfSxldT1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LmtleXMoYS5IKX0sVT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5ILGU7Yz09PXZvaWQgMD9lPXZvaWQgMDooVkghPW51bGx8fChWSD1uZXcgVEgoS0gsTUgpKSxlPVVIKFZILGIsYykpO2RbYl09ZX07CmFJLnByb3RvdHlwZS5tZXJnZUhpdERhdGFGb3JLZXk9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU7Yz0oZD10aGlzLkhbYV0pPT1udWxsP3ZvaWQgMDooZT1kLkspPT1udWxsP3ZvaWQgMDplLmNhbGwoZCk7aWYoIWMpcmV0dXJuIFUodGhpcyxhLGIpLCEwO2lmKCFDZChjKSlyZXR1cm4hMTtVKHRoaXMsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGMsYikpO3JldHVybiEwfTt2YXIgYkk9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/e306Yjtmb3IodmFyIGM9bShPYmplY3Qua2V5cyhhLkgpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZSxmPXZvaWQgMCxnPXZvaWQgMCxoPXZvaWQgMDtiW2VdPShmPWEuSFtlXSk9PW51bGw/dm9pZCAwOihoPShnPWYpLkspPT1udWxsP3ZvaWQgMDpoLmNhbGwoZyl9cmV0dXJuIGJ9OwphSS5wcm90b3R5cGUuY29weVRvSGl0RGF0YT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Tyh0aGlzLk0sYSk7ZD09PXZvaWQgMCYmKGQ9Yik7aWYoemIoZCkmJmMhPT12b2lkIDApdHJ5e2Q9YyhkKX1jYXRjaChlKXt9ZCE9PXZvaWQgMCYmVSh0aGlzLGEsZCl9Owp2YXIgUT1mdW5jdGlvbihhLGIpe3ZhciBjPWEubWV0YWRhdGFbYl07aWYoYj09PUguSi50Zyl7dmFyIGQ7cmV0dXJuIGM9PW51bGw/dm9pZCAwOihkPWMuSyk9PW51bGw/dm9pZCAwOmQuY2FsbChjKX12YXIgZTtyZXR1cm4gYz09bnVsbD92b2lkIDA6KGU9Yy5nZXRWYWx1ZSk9PW51bGw/dm9pZCAwOmUuY2FsbChjLFEoYSxILkoudGcpKX0sVj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5tZXRhZGF0YSxlO2M9PT12b2lkIDA/ZT1jOihXSCE9bnVsbHx8KFdIPW5ldyBUSChQSCxRSCkpLGU9VUgoV0gsYixjKSk7ZFtiXT1lfSxjST1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD97fTpiO2Zvcih2YXIgYz1tKE9iamVjdC5rZXlzKGEubWV0YWRhdGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZSxmPXZvaWQgMCxnPXZvaWQgMCxoPXZvaWQgMDtiW2VdPShmPWEubWV0YWRhdGFbZV0pPT1udWxsP3ZvaWQgMDooaD0oZz1mKS5LKT09bnVsbD92b2lkIDA6CmguY2FsbChnKX1yZXR1cm4gYn0sZEk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSRIKGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpO3JldHVybiBkJiZkW2JdIT09dm9pZCAwP2RbYl06Y30sWnU9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9bmV3IGFJKChiPT1udWxsP3ZvaWQgMDpiLnRhcmdldCl8fGEudGFyZ2V0LChiPT1udWxsP3ZvaWQgMDpiLmV2ZW50TmFtZSl8fGEuZXZlbnROYW1lLChiPT1udWxsP3ZvaWQgMDpiLk0pfHxhLk0pLGQ9YkkoYSksZT1tKE9iamVjdC5rZXlzKGQpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtVKGMsZyxkW2ddKX1mb3IodmFyIGg9Y0koYSksbD1tKE9iamVjdC5rZXlzKGgpKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtWKGMscCxoW3BdKX1jLmlzQWJvcnRlZD1hLmlzQWJvcnRlZDtyZXR1cm4gY30sZUk9ZnVuY3Rpb24oYSl7dmFyIGI9YS5NLGM9Yi5ldmVudElkLGQ9Yi5wcmlvcml0eUlkOwpyZXR1cm4gZD9jKyJfIitkOlN0cmluZyhjKX07YUkucHJvdG90eXBlLmFjY2VwdD1mdW5jdGlvbigpe3ZhciBhPW9tKGptLmJhLlNpLHt9KSxiPWVJKHRoaXMpLGM9dGhpcy50YXJnZXQuZGVzdGluYXRpb25JZDthW2JdfHwoYVtiXT17fSk7YVtiXVtjXT12aygpO3ZhciBkPWptLmJhLlNpO2lmKGttKGQpKXt2YXIgZTsoZT1sbShkKSk9PW51bGx8fGUubm90aWZ5KCl9fTthSS5wcm90b3R5cGUuY2FuQmVBY2NlcHRlZD1mdW5jdGlvbihhKXt2YXIgYj1ubShqbS5iYS5TaSk7aWYoIWIpcmV0dXJuITA7dmFyIGM9YltlSSh0aGlzKV07aWYoIWMpcmV0dXJuITA7dmFyIGQ9Y1thIT1udWxsP2E6dGhpcy50YXJnZXQuZGVzdGluYXRpb25JZF07cmV0dXJuIGQ9PT12b2lkIDB8fGQ9PT12aygpfTtmdW5jdGlvbiBmSShhKXtyZXR1cm57Z2V0RGVzdGluYXRpb25JZDpmdW5jdGlvbigpe3JldHVybiBhLnRhcmdldC5kZXN0aW5hdGlvbklkfSxnZXRFdmVudE5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gYS5ldmVudE5hbWV9LHNldEV2ZW50TmFtZTpmdW5jdGlvbihiKXthLmV2ZW50TmFtZT1ifSxnZXRIaXREYXRhOmZ1bmN0aW9uKGIpe3JldHVybiBSKGEsYil9LHNldEhpdERhdGE6ZnVuY3Rpb24oYixjKXtVKGEsYixjKX0sc2V0SGl0RGF0YUlmTm90RGVmaW5lZDpmdW5jdGlvbihiLGMpe1IoYSxiKT09PXZvaWQgMCYmVShhLGIsYyl9LGNvcHlUb0hpdERhdGE6ZnVuY3Rpb24oYixjKXthLmNvcHlUb0hpdERhdGEoYixjKX0sZ2V0TWV0YWRhdGE6ZnVuY3Rpb24oYil7cmV0dXJuIFEoYSxiKX0sc2V0TWV0YWRhdGE6ZnVuY3Rpb24oYixjKXtWKGEsYixjKX0saXNBYm9ydGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGEuaXNBYm9ydGVkfSxhYm9ydDpmdW5jdGlvbigpe2EuaXNBYm9ydGVkPSEwfSwKZ2V0RnJvbUV2ZW50Q29udGV4dDpmdW5jdGlvbihiKXtyZXR1cm4gTyhhLk0sYil9LHJiOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LGdldEhpdEtleXM6ZnVuY3Rpb24oKXtyZXR1cm4gZXUoYSl9LGdldE1lcmdlZFZhbHVlczpmdW5jdGlvbihiKXtyZXR1cm4gYS5NLmdldE1lcmdlZFZhbHVlcyhiLDMpfSxtZXJnZUhpdERhdGFGb3JLZXk6ZnVuY3Rpb24oYixjKXtyZXR1cm4gQ2QoYyk/YS5tZXJnZUhpdERhdGFGb3JLZXkoYixjKTohMX0sYWNjZXB0OmZ1bmN0aW9uKCl7YS5hY2NlcHQoKX0sY2FuQmVBY2NlcHRlZDpmdW5jdGlvbihiKXtyZXR1cm4gYS5jYW5CZUFjY2VwdGVkKGIpfX19O2Z1bmN0aW9uIGdJKGEsYil7dmFyIGM7cmV0dXJuIGN9Z0kuUD0iaW50ZXJuYWwuY29weVByZUhpdCI7ZnVuY3Rpb24gaEkoYSxiKXt2YXIgYz1udWxsO3JldHVybiBVZChjLHRoaXMuVCwyKX1oSS5wdWJsaWNOYW1lPSJjcmVhdGVBcmd1bWVudHNRdWV1ZSI7ZnVuY3Rpb24gaUkoYSl7cmV0dXJuIFVkKGZ1bmN0aW9uKGMpe3ZhciBkPVNBKCk7aWYodHlwZW9mIGM9PT0iZnVuY3Rpb24iKWQoZnVuY3Rpb24oKXtjKGZ1bmN0aW9uKGYsZyxoKXt2YXIgbD0KU0EoKSxuPWwmJmwuZ2V0QnlOYW1lJiZsLmdldEJ5TmFtZShmKTtyZXR1cm4obmV3IEEuZ2FwbHVnaW5zLkxpbmtlcihuKSkuZGVjb3JhdGUoZyxoKX0pfSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGMpKXt2YXIgZT1TdHJpbmcoY1swXSkuc3BsaXQoIi4iKTtiW2UubGVuZ3RoPT09MT9lWzBdOmVbMV1dJiZkLmFwcGx5KG51bGwsYyl9ZWxzZSBpZihjPT09ImlzTG9hZGVkIilyZXR1cm4hIWQubG9hZGVkfSx0aGlzLlQsMSl9aUkuUD0iaW50ZXJuYWwuY3JlYXRlR2FDb21tYW5kUXVldWUiO2Z1bmN0aW9uIGpJKGEpe3JldHVybiBVZChmdW5jdGlvbigpe2lmKCF5YihlLnB1c2gpKXRocm93IEVycm9yKCJPYmplY3QgYXQgIithKyIgaW4gd2luZG93IGlzIG5vdCBhbiBhcnJheS4iKTtlLnB1c2guYXBwbHkoZSxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpfSx0aGlzLlQsCkJoKFhGKHRoaXMpLlBiKCkpPzI6MSl9akkucHVibGljTmFtZT0iY3JlYXRlUXVldWUiO2Z1bmN0aW9uIGtJKGEsYil7dmFyIGM9bnVsbDtyZXR1cm4gY31rSS5QPSJpbnRlcm5hbC5jcmVhdGVSZWdleCI7ZnVuY3Rpb24gbEkoYSl7fWxJLlA9ImludGVybmFsLmRlY2xhcmVDb25zZW50U3RhdGUiO2Z1bmN0aW9uIG1JKGEpe3ZhciBiPSIiO3JldHVybiBifW1JLlA9ImludGVybmFsLmRlY29kZVVybEh0bWxFbnRpdGllcyI7ZnVuY3Rpb24gbkkoYSxiLGMpe3ZhciBkO3JldHVybiBkfW5JLlA9ImludGVybmFsLmRlY29yYXRlVXJsV2l0aEdhQ29va2llcyI7ZnVuY3Rpb24gb0koKXt9b0kuUD0iaW50ZXJuYWwuZGVmZXJDdXN0b21FdmVudHMiO2Z1bmN0aW9uIHBJKGEsYil7dHJ5e3JldHVybiBhLmNsb3Nlc3QoYil9Y2F0Y2goYyl7cmV0dXJuIG51bGx9fTtmdW5jdGlvbiBxSSgpe3ZhciBhPUEuc2NyZWVuO3JldHVybnt3aWR0aDphP2Eud2lkdGg6MCxoZWlnaHQ6YT9hLmhlaWdodDowfX0KZnVuY3Rpb24gckkoYSl7aWYoQi5oaWRkZW4pcmV0dXJuITA7dmFyIGI9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihiLnRvcD09PWIuYm90dG9tfHxiLmxlZnQ9PT1iLnJpZ2h0fHwhQS5nZXRDb21wdXRlZFN0eWxlKXJldHVybiEwO3ZhciBjPUEuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpO2lmKGMudmlzaWJpbGl0eT09PSJoaWRkZW4iKXJldHVybiEwO2Zvcih2YXIgZD1hLGU9YztkOyl7aWYoZS5kaXNwbGF5PT09Im5vbmUiKXJldHVybiEwO3ZhciBmPWUub3BhY2l0eSxnPWUuZmlsdGVyO2lmKGcpe3ZhciBoPWcuaW5kZXhPZigib3BhY2l0eSgiKTtoPj0wJiYoZz1nLnN1YnN0cmluZyhoKzgsZy5pbmRleE9mKCIpIixoKSksZy5jaGFyQXQoZy5sZW5ndGgtMSk9PT0iJSImJihnPWcuc3Vic3RyaW5nKDAsZy5sZW5ndGgtMSkpLGY9U3RyaW5nKE1hdGgubWluKE51bWJlcihnKSxOdW1iZXIoZikpKSl9aWYoZiE9PXZvaWQgMCYmTnVtYmVyKGYpPD0wKXJldHVybiEwOyhkPWQucGFyZW50RWxlbWVudCkmJgooZT1BLmdldENvbXB1dGVkU3R5bGUoZCxudWxsKSl9cmV0dXJuITF9CnZhciBKST1mdW5jdGlvbihhKXt2YXIgYixjPShiPWE9PW51bGw/dm9pZCAwOmEuaW5jbHVkZVNlbGVjdG9yKSE9bnVsbD9iOiEwLGQsZT0oZD1hPT1udWxsP3ZvaWQgMDphLmluY2x1ZGVWaXNpYmlsaXR5KSE9bnVsbD9kOiEwLGYsZz0oZj1hPT1udWxsP3ZvaWQgMDphLnNlbGVjdE11bHRpcGxlRWxlbWVudHMpIT1udWxsP2Y6ITEsaD0oYT09bnVsbD92b2lkIDA6YS5leGNsdWRlRWxlbWVudFNlbGVjdG9ycyl8fFtdLGw9KGE9PW51bGw/dm9pZCAwOmEuZmllbGRGaWx0ZXJzKXx8e2VtYWlsOiEwLHBob25lOiExLGFkZHJlc3M6ITF9LG49YWwoNixmdW5jdGlvbigpe3JldHVybnt9fSkscD16SSh7aW5jbHVkZVNlbGVjdG9yOmMsaW5jbHVkZVZpc2liaWxpdHk6ZSxleGNsdWRlRWxlbWVudFNlbGVjdG9yczpoLGZpZWxkRmlsdGVyczpsfSkscT1uW3BdO2lmKHEmJk5iKCktcS50aW1lc3RhbXA8MjAwKXt2YXIgcj1xLnJlc3VsdCx0OyhyLmVsZW1lbnRzLnNvbWUoZnVuY3Rpb24ocWEpe3JldHVybiBxYS5kaX0pfHwKKCh0PXIuZ2kpPT1udWxsPzA6dC5kaSkpJiZHdShULlcucmopO3JldHVybiByfXZhciB1PUFJKCksdj11LnN0YXR1cyx4PVtdLHkseixDPVtdO2lmKE0oNTY4KSl7dmFyIEQ9QkkobCksST1DSSh1LmVsZW1lbnRzLEQpLEc9REkoSSksTj1FSShHLGgpLFM9RkkoTik7eT1TLmZpbHRlcihmdW5jdGlvbihxYSl7cmV0dXJuIHFhLkRhPT09RkQuQmJ9KVswXTtmb3IodmFyIFc9W10sZWE9e0lnOjB9O2VhLklnPEQubGVuZ3RoO2VhPXtJZzplYS5JZ30sZWEuSWcrKyl7dmFyIGphPU4uZmlsdGVyKGZ1bmN0aW9uKHFhKXtyZXR1cm4gZnVuY3Rpb24oaWIpe3JldHVybiBpYi5EYT09PURbcWEuSWddfX0oZWEpKTtqYS5sZW5ndGg+MTAmJih2PSIzIixqYT1qYS5zbGljZSgwLDEwKSk7Vz1XLmNvbmNhdChqYSl9Tj1XOyFnJiZTJiYoTj1TKTtmb3IodmFyIGZhPTA7ZmE8Ti5sZW5ndGg7ZmErKyl7dmFyIHNhPU5bZmFdO3NhLkRhIT09RkQuS2gmJkMucHVzaChHSShzYSxjLGUpKX19ZWxzZXtpZihsLmVtYWlsKXt2YXIgZGE9CkhJKHUuZWxlbWVudHMpO3g9RUkoZGEsaCk7eT1JSSh4KTtkYS5sZW5ndGg+MTAmJih2PSIzIil9IWcmJnkmJih4PVt5XSk7Zm9yKHZhciBtYT0wO21hPHgubGVuZ3RoO21hKyspQy5wdXNoKEdJKHhbbWFdLGMsZSkpO0M9Qy5zbGljZSgwLDEwKX15JiYoej1HSSh5LGMsZSkpO3ZhciBQYT17ZWxlbWVudHM6QyxnaTp6LHN0YXR1czp2fTtuW3BdPXt0aW1lc3RhbXA6TmIoKSxyZXN1bHQ6UGF9O3ZhciBGYTsoUGEuZWxlbWVudHMuc29tZShmdW5jdGlvbihxYSl7cmV0dXJuIHFhLmRpfSl8fCgoRmE9UGEuZ2kpPT1udWxsPzA6RmEuZGkpKSYmR3UoVC5XLnJqKTtyZXR1cm4gUGF9LERJPWZ1bmN0aW9uKGEpe3ZhciBiPWEuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiB1LkRhPT09RkQuS2h9KSxjPWEuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiB1LkRhPT09RkQuWGR9KTtpZihhLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdS5EYT09PUZELmNlfSkubGVuZ3RoPT09MCYmYy5sZW5ndGg9PT0KMClmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXSxmPWUuQ2Euc3BsaXQoIiAiKTtmLmxlbmd0aD4xJiZhLnB1c2goe0NhOmZbMF0sRGE6RkQuWGQsZWxlbWVudDplLmVsZW1lbnQsT2M6ZS5PY30se0NhOmYuc2xpY2UoMSkuam9pbigiICIpLERhOkZELmNlLGVsZW1lbnQ6ZS5lbGVtZW50LE9jOmUuT2N9KX1mb3IodmFyIGcsaD0wLGwsbj1mdW5jdGlvbih1KXtyZXR1cm4gdS5EYT09PUZELmVlJiZ1LkNhLmxlbmd0aD49MyYmdS5DYS5sZW5ndGg8PTR9LHA9MDtwPGEubGVuZ3RoO3ArKyl7dmFyIHE9YVtwXTtpZihuKHEpJiZnJiZxLmVsZW1lbnQucGFyZW50RWxlbWVudD09PWcmJmg8Myl7aWYoaCs9MSxsKz1xLkNhLGg9PT0zKXt2YXIgcj1wLWgrMTtpZihsPUtJW0ZELmVlXS5uYShsKSlhW3JdLkNhPWx9fWVsc2UgaWYoaD0wLGw9IiIsZz12b2lkIDAsbihxKSl7aCsrO2w9cS5DYTt2YXIgdD12b2lkIDA7Zz0odD1xLmVsZW1lbnQucGFyZW50RWxlbWVudCkhPW51bGw/CnQ6dm9pZCAwfX1yZXR1cm4gYS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIW4odSl9KX0sT0k9ZnVuY3Rpb24oYSxiKXtpZihhLnZhbHVlJiZMSS5pbmRleE9mKChhLnR5cGV8fCJ0ZXh0IikudG9Mb3dlckNhc2UoKSkhPT0tMSl7dmFyIGM9YS5hdXRvY29tcGxldGU7aWYoYylmb3IodmFyIGQ9Yy5zcGxpdCgiICIpLGU9MDtlPGQubGVuZ3RoO2UrKyl7dmFyIGY9TUkoYS52YWx1ZSxiLGRbZV0pO2lmKGYpcmV0dXJuIGZ9dmFyIGcsaD1bYS5uYW1lLGEuaWQsKGc9YS5hcmlhTGFiZWwpIT1udWxsP2c6dm9pZCAwLGEucGxhY2Vob2xkZXJdLGw9YS5wYXJlbnRFbGVtZW50O2wmJmwudGFnTmFtZT09PSJMQUJFTCImJmgucHVzaChsLmlubmVyVGV4dCk7dmFyIG49YS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO24mJm4udGFnTmFtZT09PSJMQUJFTCImJiFuLmh0bWxGb3ImJmgucHVzaChuLmlubmVyVGV4dCk7aWYoYS5pZCl7dmFyIHA9W107dHJ5e3A9ZG9jdW1lbnQuYm9keS5xdWVyeVNlbGVjdG9yQWxsKCdsYWJlbFtmb3I9IicrCmEuaWQrJyJdJyl9Y2F0Y2goRCl7fWZvcih2YXIgcT0wO3E8cC5sZW5ndGg7cSsrKWgucHVzaChwW3FdLmlubmVyVGV4dCl9aD1oLmZpbHRlcihmdW5jdGlvbihEKXtyZXR1cm4gRCYmRC50cmltKCl9KTtmb3IodmFyIHIsdD0wLHU9MDt1PGgubGVuZ3RoO3UrKyl7dmFyIHY9TkkoYSxiLGhbdV0pO2lmKHYpe3ZhciB4PXYseT14LkNhLHo9eC5EYSxDPXguWHM7Qz50JiYodD1DLHI9e0NhOnksRGE6en0pfX1yZXR1cm4gcn19LE5JPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXTtpZihLSVtlXS5uZSl7dmFyIGY9S0lbZV0ubmUuZXhlYyhjLnRyaW0oKSk7aWYoZil7dmFyIGc9YSxoPVtdLGw9Zy52YWx1ZS50cmltKCk7bCYmaC5wdXNoKGwpO2lmKGcudGFnTmFtZT09PSJTRUxFQ1QiKXRyeXt2YXIgbj1nLnF1ZXJ5U2VsZWN0b3IoJ1t2YWx1ZT0iJytnLnZhbHVlKyciXScpLHA9biYmbi5pbm5lclRleHQudHJpbSgpO3AmJmgucHVzaChwKX1jYXRjaCh1KXt9Zm9yKHZhciBxPQpoLHI9dm9pZCAwLHQ9MDt0PHEubGVuZ3RoJiYhcjt0Kyspcj1LSVtlXS5uYShxW3RdKTtpZihyKXJldHVybntEYTplLENhOnIsWHM6ZlswXS5sZW5ndGgvYy50cmltKCkubGVuZ3RofX19fX0sTUk9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdO2lmKEtJW2VdLmF1dG9jb21wbGV0ZSYmS0lbZV0uYXV0b2NvbXBsZXRlLmluZGV4T2YoYyk+PTApe3ZhciBmPUtJW2VdLm5hKGEudHJpbSgpKTtpZihmKXJldHVybntEYTplLENhOmZ9fX19LEJJPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO2EuZW1haWwmJmIucHVzaChGRC5CYik7YS5waG9uZSYmYi5wdXNoKEZELmVlKTthLmFkZHJlc3MmJmIucHVzaChGRC5YZCxGRC5jZSxGRC54ZixGRC5xZyxGRC5LaCk7cmV0dXJuIGJ9LENJPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGEubGVuZ3RoO2QrKyl7dmFyIGU9YVtkXSxmPWUuZWxlbWVudCxnPWUuT2MsaDthOnt2YXIgbD1mLG49YiwKcD1sLmlubmVySFRNTDtQSS5pbmRleE9mKGwudGFnTmFtZSk+PTAmJihwPWwudmFsdWV8fHApO2lmKHApe3ZhciBxO2I6e2Zvcih2YXIgcj1wLHQ9bix1PTA7dTx0Lmxlbmd0aDt1Kyspe3ZhciB2PXRbdV07aWYoIUtJW3ZdLm1lKXt2YXIgeD1LSVt2XS5uYShyLnRyaW0oKSk7aWYoeCl7cT17RGE6dixDYTp4fTticmVhayBifX19cT12b2lkIDB9aWYocSl7aD1xO2JyZWFrIGF9aWYoUEkuaW5kZXhPZihsLnRhZ05hbWUpIT09LTEpe2g9T0kobCxuKTticmVhayBhfX1oPXZvaWQgMH12YXIgeT1oO2lmKHkpe3ZhciB6PXk7Yy5wdXNoKHtDYTp6LkNhLERhOnouRGEsZWxlbWVudDpmLE9jOmd9KX19cmV0dXJuIGN9LEZJPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO2lmKGEubGVuZ3RoPT09MClyZXR1cm4gYjt2YXIgYz17fSxkO2ZvcihkIGluIEZEKWlmKGM9e1ZnOmMuVmd9LGMuVmc9ZCxGRC5oYXNPd25Qcm9wZXJ0eShjLlZnKSl7dmFyIGU9YS5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuIGZ1bmN0aW9uKGcpe3JldHVybiBnLkRhPT09CkZEW2YuVmddfX0oYykpO2UubGVuZ3RoIT09MCYmKEZEW2MuVmddPT09RkQuQmImJihlPVFJKGUsZnVuY3Rpb24oZil7cmV0dXJuIVJJLnRlc3QoZi5DYSl9KSxlPVFJKGUsZnVuY3Rpb24oZil7cmV0dXJuIGYuZWxlbWVudC50YWdOYW1lLnRvVXBwZXJDYXNlKCk9PT0iSU5QVVQifSksZT1RSShlLGZ1bmN0aW9uKGYpe3JldHVybiFySShmLmVsZW1lbnQpfSkpLGIucHVzaChlWzBdKSl9cmV0dXJuIGJ9LEdJPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLmVsZW1lbnQsZT1hLk9jLGY9e0NhOmEuQ2EsdHlwZTphLkRhLHRhZ05hbWU6ZC50YWdOYW1lfTtpZihiKXt2YXIgZyxoPVNJKGQpO2lmKGc9KGU/ZSsifCIraDpoKS5zbGljZSgwLFRJKSlmLnF1ZXJ5U2VsZWN0b3I9Z31jJiYoZi5pc1Zpc2libGU9IXJJKGQpKTtlJiYoZi5kaT0hMCk7cmV0dXJuIGZ9LHpJPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlO2I9YS5pbmNsdWRlU2VsZWN0b3I7Yz1hLmluY2x1ZGVWaXNpYmlsaXR5O2Q9YS5leGNsdWRlRWxlbWVudFNlbGVjdG9yczsKZT1hLmZpZWxkRmlsdGVyczt2YXIgZj0hIWIrIi4iKyEhYztkLmxlbmd0aCYmKGYrPSIuIitkLmpvaW4oIi4iKSk7cmV0dXJuIGYrPSIuIitlLmVtYWlsKyIuIitlLnBob25lKyIuIitlLmFkZHJlc3N9LElJPWZ1bmN0aW9uKGEpe2lmKGEubGVuZ3RoIT09MCl7dmFyIGI7Yj1RSShhLGZ1bmN0aW9uKGMpe3JldHVybiFSSS50ZXN0KGMuQ2EpfSk7Yj1RSShiLGZ1bmN0aW9uKGMpe3JldHVybiBjLmVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09IklOUFVUIn0pO2I9UUkoYixmdW5jdGlvbihjKXtyZXR1cm4hckkoYy5lbGVtZW50KX0pO3JldHVybiBiWzBdfX0sRUk9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W10sZD0wO2Q8YS5sZW5ndGg7ZCsrKXtmb3IodmFyIGU9ITAsZj0wO2Y8Yi5sZW5ndGg7ZisrKXt2YXIgZz1iW2ZdO2lmKGcmJnBJKGFbZF0uZWxlbWVudCxnKSl7ZT0hMTticmVha319YVtkXS5EYT09PUZELkJiJiZNKDYwMikmJihSSS50ZXN0KGFbZF0uQ2EpfHxhW2RdLmVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09CiJBIiYmYVtkXS5lbGVtZW50Lmhhc0F0dHJpYnV0ZSgiaHJlZiIpJiZhW2RdLmVsZW1lbnQuZ2V0QXR0cmlidXRlKCJocmVmIikuaW5kZXhPZigibWFpbHRvOiIpIT09LTE/ZT0hMTphW2RdLmVsZW1lbnQuY2xvc2VzdCgiZm9vdGVyIikhPT1udWxsJiYoZT0hMSkpO2UmJmMucHVzaChhW2RdKX1yZXR1cm4gY30sUUk9ZnVuY3Rpb24oYSxiKXtpZihhLmxlbmd0aDw9MSlyZXR1cm4gYTt2YXIgYz1hLmZpbHRlcihiKTtyZXR1cm4gYy5sZW5ndGg9PT0wP2E6Y30sU0k9ZnVuY3Rpb24oYSl7aWYoYT09PUIuYm9keSlyZXR1cm4iYm9keSI7aWYoYS5pZClyZXR1cm4iIyIrYS5pZDt2YXIgYj1hLnBhcmVudEVsZW1lbnQ7aWYoYil7dmFyIGM9U0koYiksZD1VSShhLGIpLGU9VkkoYSkrIjpudGgtY2hpbGQoIitkKyIpIjtyZXR1cm4gYz9jKyI+IitlOmV9dmFyIGY9YS5wYXJlbnROb2RlO2lmKGYgaW5zdGFuY2VvZiBTaGFkb3dSb290KXt2YXIgZz1VSShhLGYpO3JldHVybiBWSShhKSsiOm50aC1jaGlsZCgiKwpnKyIpIn1yZXR1cm4gYS50YWdOYW1lP2EudGFnTmFtZS50b0xvd2VyQ2FzZSgpOiIifSxWST1mdW5jdGlvbihhKXtpZihhLmNsYXNzTGlzdCYmYS5jbGFzc0xpc3QubGVuZ3RoPjApe3ZhciBiPUFycmF5LmZyb20oYS5jbGFzc0xpc3QsZnVuY3Rpb24oYyl7cmV0dXJuIENTUy5lc2NhcGUoYyl9KS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGMubGVuZ3RoPjB9KTtpZihiLmxlbmd0aD4wKXJldHVybiIuIitiLmpvaW4oIi4iKX1yZXR1cm4iIn0sVUk9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9Yi5jaGlsZHJlbixkPTA7ZDxjLmxlbmd0aDtkKyspaWYoY1tkXT09PWEpcmV0dXJuIGQrMTtyZXR1cm4gMX0sSEk9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YVtjXSxlPWQuZWxlbWVudCxmPWQuT2MsZz1lLnRleHRDb250ZW50O2UudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09IklOUFVUIiYmZS52YWx1ZSYmKGc9ZS52YWx1ZSk7aWYoZyl7dmFyIGg9CmcubWF0Y2goS0QpO2lmKGgpe3ZhciBsPWhbMF07TEQobCl8fGIucHVzaCh7ZWxlbWVudDplLENhOmwsRGE6RkQuQmIsT2M6Zn0pfX19cmV0dXJuIGJ9LEFJPWZ1bmN0aW9uKCl7dmFyIGE9W10sYj1CLmJvZHk7aWYoIWIpcmV0dXJue2VsZW1lbnRzOmEsc3RhdHVzOiI0In07dmFyIGM9V0koYiwwLCIiLGEpO3JldHVybntlbGVtZW50czphLHN0YXR1czpjfX0sV0k9ZnVuY3Rpb24oYSxiLGMsZCl7Zm9yKHZhciBlPWEucXVlcnlTZWxlY3RvckFsbCgiKiIpLGY9ZS5sZW5ndGg+MUU0PyIyIjoiMSIsZz0wO2c8TWF0aC5taW4oZS5sZW5ndGgsMUU0KTtnKyspe3ZhciBoPWVbZ107aWYoIShYSS5pbmRleE9mKGgudGFnTmFtZS50b1VwcGVyQ2FzZSgpKT49MCkmJmguY2hpbGRyZW4gaW5zdGFuY2VvZiBIVE1MQ29sbGVjdGlvbil7dmFyIGw9ITE7aWYoTSg1ODIpJiZoLnNoYWRvd1Jvb3QmJmI8MSl7dmFyIG49U0koaCk7V0koaC5zaGFkb3dSb290LGIrMSxjP2MrInwiK246bixkKT09PSIyIiYmCihmPSIyIik7bD0hMH12YXIgcD0hMTtpZighbClmb3IodmFyIHE9MDtxPE1hdGgubWluKGguY2hpbGRFbGVtZW50Q291bnQsMUU0KTtxKyspaWYoIShZSS5pbmRleE9mKGguY2hpbGRyZW5bcV0udGFnTmFtZS50b1VwcGVyQ2FzZSgpKT49MCkpe3A9ITA7YnJlYWt9KCFwJiYhbHx8TSg1NjgpJiZQSS5pbmRleE9mKGgudGFnTmFtZSkhPT0tMSkmJmQucHVzaCh7ZWxlbWVudDpoLE9jOmI+MD9jOnZvaWQgMH0pfX1yZXR1cm4gZn0sUkk9L3N1cHBvcnR8bm9yZXBseS9pLFhJPSJTQ1JJUFQgU1RZTEUgSU1HIFNWRyBQQVRIIEJSIE5PU0NSSVBUIFRFWFRBUkVBIi5zcGxpdCgiICIpLFlJPVsiQlIiXSxUST1OZig3MCw1MCksUEk9WyJJTlBVVCIsIlNFTEVDVCJdLExJPSJ0ZXh0IHRlbCBzZWFyY2ggbnVtYmVyIGhpZGRlbiBlbWFpbCBzZWxlY3Qtb25lIi5zcGxpdCgiICIpLFpJPVJlZ0V4cCgicGhvbmV8bW9iaWxlfGNvbnRhY3QuP251bWJlcnx0ZWxlZm9ubnVtbWVyfHRlbGVmb25vfHRlbFx1MDBlOWZvbm98dGVsZml4ZXxcdTk2ZmJcdThhNzF8dGVsZWZvbmV8dGVsZW1vdmVsfFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQzNVx1MDQ0NFx1MDQzZVx1MDQzZHxcdTA5MmVcdTA5NGJcdTA5MmNcdTA5M2VcdTA5MDdcdTA5MzJ8XHU3NTM1XHU4YmRkfFx1NjI0Ylx1NjczYVx1NTNmN3xcdTBkMmVcdTBkNGFcdTBkMmNcdTBkNDhcdTBkMzJcdTBkNGRcdTIwMGR8KF58Wy1fXSl0ZWxbLV9dPyhcXGQrKSooXFxbLipcXF0pKiR8KD86XHVjODA0XHVkNjU0fFx1ZDU3OFx1YjRkY1x1ZDNmMHxcdWQ3MzRcdWIzMDBcdWQzZjB8XHVkNzM0XHViMzAwXHVjODA0XHVkNjU0KSg/Oi4/XHViYzg4XHVkNjM4KT98KFxcYnxffFxcKil0ZWxlZm9uKFxcYnxffFxcKil8dGVsZXBvbnxwb25zZWx8KG5vbW9yfG5vXFwuPykuPyhocHxoYW5kcGhvbmUpIiwKImkiKSwkST1SZWdFeHAoIl5uYW1lfGZ1bGwuP25hbWV8eW91ci4/bmFtZXxjdXN0b21lci4/bmFtZXxiaWxsLj9uYW1lfHNoaXAuP25hbWV8bmFtZS4qZmlyc3QuKmxhc3R8Zmlyc3RhbmRsYXN0bmFtZXxjb250YWN0Lj8obmFtZXxwZXJzb24pfG5vbWJyZS4qeS4qYXBlbGxpZG9zfF5ub20oPyFbYS16QS1aXSl8XHUzMDRhXHU1NDBkXHU1MjRkfFx1NmMwZlx1NTQwZHxebm9tZXxcdTA2NDZcdTA2MjdcdTA2NDUuKlx1MDY0Nlx1MDYyN1x1MDY0NS4qXHUwNjJlXHUwNjI3XHUwNjQ2XHUwNjQ4XHUwNjI3XHUwNjJmXHUwNmFmXHUwNmNjfFx1NTlkM1xccypcdTU0MGR8XHUwNDNhXHUwNDNlXHUwNDNkXHUwNDQyXHUwNDMwXHUwNDNhXHUwNDQyXHUwNDNkXHUwNDNlXHUwNDM1Lj9cdTA0M2JcdTA0MzhcdTA0NDZcdTA0M2V8KFxcYnxffFxcKilhZFtcdTAxMzFdPyBzb3lhZFtcdTAxMzFdPyhcXGJ8X3xcXCopfFx1YzEzMVx1YmE4NXxuYW1hLj8obGVuZ2thcHxwZW5lcmltYXxrYW11KSIsCiJpIiksYUo9UmVnRXhwKCJmaXJzdC4qbmFtZXxpbml0aWFsc3xmbmFtZXxmaXJzdCR8Z2l2ZW4uKm5hbWV8dm9ybmFtZXxub21icmV8Zm9yZW5hbWV8cHJcdTAwZTlub218cHJlbm9tfFx1NTQwZHxub21lfFx1MDQxOFx1MDQzY1x1MDQ0ZnxcdTA2NDZcdTA2MjdcdTA2NDV8XHVjNzc0XHViOTg0fFx1MGQyYVx1MGQ0N1x1MGQzMFx1MGQ0ZHwoXFxifF98XFwqKShpc2ltfGFkfGFkKGl8XHUwMTMxfGluaXp8XHUwMTMxblx1MDEzMXopPykoXFxifF98XFwqKXxcdTA5MjhcdTA5M2VcdTA5MmV8bmFtYSBkZXBhbiIsImkiKSxiSj1SZWdFeHAoImxhc3QuKm5hbWV8bG5hbWV8c3VybmFtZSg/IVxcZCl8bGFzdCR8c2Vjb25kbmFtZXxmYW1pbHkuKm5hbWV8bmFjaG5hbWV8YXBlbGxpZG9zP3xmYW1pbGxlfF5ub20oPyFbYS16QS1aXSl8Y29nbm9tZXxcdTU5ZDN8YXBlbGlkb3N8c3VyZW5hbWV8c29icmVub21lfFx1MDQyNFx1MDQzMFx1MDQzY1x1MDQzOFx1MDQzYlx1MDQzOFx1MDQ0ZnxcdTA2NDZcdTA2MjdcdTA2NDUuKlx1MDYyZVx1MDYyN1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDYyZlx1MDZhZlx1MDZjY3xcdTA5MDlcdTA5MmFcdTA5MjhcdTA5M2VcdTA5MmV8XHUwZDJlXHUwZDMxXHUwZDQxXHUwZDJhXHUwZDQ3XHUwZDMwXHUwZDRkfChcXGJ8X3xcXCopKHNveWlzaW18c295YWQoaXxcdTAxMzF8aW5penxcdTAxMzFuXHUwMTMxeik/KShcXGJ8X3xcXCopfFxcYlx1YzEzMSg/OlteXHViYTg1XXxcXGIpfG5hbWEgYmVsYWthbmciLAoiaSIpLGNKPVJlZ0V4cCgiY291bnRyeXxjb3VudHJpZXN8cGFcdTAwZWRzfHBhaXN8KFxcYnxfKWxhbmQoXFxifF8pKD8hLioobWFyay4qKSl8KF58W14oXHU1MTY1fFx1NTFmYSldKVx1NTZmZHxcdTU2ZmRcdTViYjZ8XHVhZDZkXHVhYzAwfFx1YjA5OFx1Yjc3Y3woXFxifF8pKFx1MDBmY2xrZXx1bGNlfHVsa2UpKFxcYnxfKXxcdTA2YTlcdTA2MzRcdTA2NDhcdTA2MzF8bmVnYXJhIiwiaSIpLGRKPVJlZ0V4cCgiKF58W14uXSl6aXB8cG9zdGFsfHBvc3QuKmNvZGV8cGNvZGV8cGluLj9jb2RlfHBvc3RsZWl0emFobHxcXGJjcFxcYnxcXGJjZHBcXGJ8XFxiY2FwXFxifFx1OTBmNVx1NGZiZlx1NzU2YVx1NTNmN3xjb2RpZ298Y29kcG9zfFxcYmNlcFxcYnxcdTA0MWZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzJcdTA0NGJcdTA0MzkuP1x1MDQxOFx1MDQzZFx1MDQzNFx1MDQzNVx1MDQzYVx1MDQ0MXxcdTA5MmFcdTA5M2ZcdTA5MjguP1x1MDkxNVx1MDk0Ylx1MDkyMXxcdTBkMmFcdTBkM2ZcdTBkMjhcdTBkNGRcdTIwMGRcdTBkMTVcdTBkNGJcdTBkMjFcdTBkNGR8XHU5MGFlXHU2NTNmXHU3ZjE2XHU3ODAxfFx1OTBhZVx1N2YxNnxcdTkwZjVcdTkwNWVcdTUzNDBcdTg2NWZ8KFxcYnxfKXBvc3RhIGtvZHUoXFxifF8pfFx1YzZiMFx1ZDNiOC4/XHViYzg4XHVkNjM4fGtvZGUuP3BvcyIsCiJpIiksZUo9e30sS0k9KGVKW0ZELkJiXT17bWU6ITEsbmE6TUR9LGVKW0ZELmVlXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsidGVsIiwidGVsLW5hdGlvbmFsIiwidGVsLWxvY2FsIl0sbmU6WkksbmE6ZnVuY3Rpb24oYSl7cmV0dXJuIEdEKGEsITApfX0sZUpbRkQuS2hdPXttZTohMCxhdXRvY29tcGxldGU6WyJuYW1lIiwiY2MtbmFtZSJdLG5lOiRJLG5hOk5EfSxlSltGRC5YZF09e21lOiEwLGF1dG9jb21wbGV0ZTpbImdpdmVuLW5hbWUiLCJjYy1naXZlbi1uYW1lIl0sbmU6YUosbmE6TkR9LGVKW0ZELmNlXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsiZmFtaWx5LW5hbWUiLCJjYy1mYW1pbHktbmFtZSJdLG5lOmJKLG5hOk5EfSxlSltGRC54Zl09e21lOiEwLGF1dG9jb21wbGV0ZTpbImNvdW50cnkiLCJjb3VudHJ5LW5hbWUiXSxuZTpjSixuYTpORH0sZUpbRkQucWddPXttZTohMCxhdXRvY29tcGxldGU6WyJwb3N0YWwtY29kZSJdLG5lOmRKLG5hOklEfSxlSik7ZnVuY3Rpb24gZkooYSl7dmFyIGI7TCh0aGlzLCJkZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhIiwiYXV0byIpO3ZhciBjPVRkKGEpfHx7fSxkPUpJKHtpbmNsdWRlU2VsZWN0b3I6ISFjLmluY2x1ZGVTZWxlY3RvcixpbmNsdWRlVmlzaWJpbGl0eTohIWMuaW5jbHVkZVZpc2liaWxpdHksZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnM6Yy5leGNsdWRlRWxlbWVudFNlbGVjdG9ycyxmaWVsZEZpbHRlcnM6Yy5maWVsZEZpbHRlcnMsc2VsZWN0TXVsdGlwbGVFbGVtZW50czohIWMuc2VsZWN0TXVsdGlwbGVFbGVtZW50c30pO2I9bmV3IGtiO3ZhciBlPW5ldyBHZDtiLnNldCgiZWxlbWVudHMiLGUpO2Zvcih2YXIgZj1kLmVsZW1lbnRzLGc9MDtnPGYubGVuZ3RoO2crKyllLnB1c2goZ0ooZltnXSkpO2QuZ2khPT12b2lkIDAmJmIuc2V0KCJwcmVmZXJyZWRFbWFpbEVsZW1lbnQiLApnSihkLmdpKSk7Yi5zZXQoInN0YXR1cyIsZC5zdGF0dXMpO2lmKGMucmVhZEZyb21EYXRhTGF5ZXIpe2hKKGUsYyk7dmFyIGg9UEQoKSxsPWguc3Q7Yi5zZXQoImRhdGFMYXllclNlYXJjaFRpbWUiLGgudnQpO2Iuc2V0KCJkYXRhTGF5ZXJTZWFyY2hDb3VudCIsbCl9cmV0dXJuIGJ9CnZhciBpSj1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSBGRC5CYjpyZXR1cm4iZW1haWwiO2Nhc2UgRkQuZWU6cmV0dXJuInBob25lX251bWJlciI7Y2FzZSBGRC5YZDpyZXR1cm4iZmlyc3RfbmFtZSI7Y2FzZSBGRC5jZTpyZXR1cm4ibGFzdF9uYW1lIjtjYXNlIEZELnRqOnJldHVybiJzdHJlZXQiO2Nhc2UgRkQubGk6cmV0dXJuImNpdHkiO2Nhc2UgRkQuamo6cmV0dXJuInJlZ2lvbiI7Y2FzZSBGRC5xZzpyZXR1cm4icG9zdGFsX2NvZGUiO2Nhc2UgRkQueGY6cmV0dXJuImNvdW50cnkifX0sako9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IGtiLGM9aUooYS5EYSk7YyE9PXZvaWQgMCYmYi5zZXQoInR5cGUiLGMpO2Iuc2V0KCJ1c2VyRGF0YSIsYS5DYSk7Yi5zZXQoInRhZ05hbWUiLCJETFlSIik7cmV0dXJuIGJ9LGhKPWZ1bmN0aW9uKGEsYil7dmFyIGM9UUQoKTtpZihNKDU2OCkpZm9yKHZhciBkPW5ldyBTZXQoYS5oYygpLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gci5nZXQoInR5cGUiKX0pKSwKZT1tKGMpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1tKGYudmFsdWUpLGg9Zy5uZXh0KCkudmFsdWUsbD1nLm5leHQoKS52YWx1ZSxuPWgscD1sO2lmKGIuc2VsZWN0TXVsdGlwbGVFbGVtZW50cylhLnB1c2goakoocCkpO2Vsc2V7dmFyIHE9aUoobik7cSYmIWQuaGFzKHEpJiZhLnB1c2goakoocCkpfX1lbHNlIGMuaGFzKEZELkJiKSYmKGIuc2VsZWN0TXVsdGlwbGVFbGVtZW50c3x8YS5sZW5ndGgoKT09PTApJiZhLnB1c2goakooYy5nZXQoRkQuQmIpKSl9LGdKPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBrYjtiLnNldCgidXNlckRhdGEiLGEuQ2EpO2Iuc2V0KCJ0YWdOYW1lIixhLnRhZ05hbWUpO2EucXVlcnlTZWxlY3RvciE9PXZvaWQgMCYmYi5zZXQoInF1ZXJ5U2VsZWN0b3IiLGEucXVlcnlTZWxlY3Rvcik7YS5pc1Zpc2libGUhPT12b2lkIDAmJmIuc2V0KCJpc1Zpc2libGUiLGEuaXNWaXNpYmxlKTtpZihNKDU2OCkpe3ZhciBjPWlKKGEudHlwZSk7YyE9PQp2b2lkIDAmJmIuc2V0KCJ0eXBlIixjKX1lbHNlIHN3aXRjaChhLnR5cGUpe2Nhc2UgRkQuQmI6Yi5zZXQoInR5cGUiLCJlbWFpbCIpfXJldHVybiBifTtmSi5QPSJpbnRlcm5hbC5kZXRlY3RVc2VyUHJvdmlkZWREYXRhIjsKdmFyIGtKPWZ1bmN0aW9uKGEpe3ZhciBiPWhkKGEsWyJidXR0b24iLCJpbnB1dCJdLDUwKTtpZighYilyZXR1cm4gbnVsbDt2YXIgYz1TdHJpbmcoYi50YWdOYW1lKS50b0xvd2VyQ2FzZSgpO2lmKGM9PT0iYnV0dG9uIilyZXR1cm4gYjtpZihjPT09ImlucHV0Iil7dmFyIGQ9ZWQoYiwidHlwZSIpO2lmKGQ9PT0iYnV0dG9uInx8ZD09PSJzdWJtaXQifHxkPT09ImltYWdlInx8ZD09PSJmaWxlInx8ZD09PSJyZXNldCIpcmV0dXJuIGJ9cmV0dXJuIG51bGx9LGxKPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1jLnRhcmdldDtpZihkKXt2YXIgZT0kRihhLCJpbmRpdmlkdWFsRWxlbWVudElkcyIsW10pO2lmKGUubGVuZ3RoPjApe3ZhciBmPWVHKGQsYixlKTt1RShmKX12YXIgZz0hMSxoPSRGKGEsImNvbW1vbkJ1dHRvbklkcyIsW10pO2lmKGgubGVuZ3RoPjApe3ZhciBsPWtKKGQpO2lmKGwpe3ZhciBuPWVHKGwsYixoKTt1RShuKTtnPSEwfX12YXIgcD0kRihhLCJzZWxlY3RvclRvVHJpZ2dlcklkcyIsCnt9KSxxO2ZvcihxIGluIHApaWYocC5oYXNPd25Qcm9wZXJ0eShxKSl7dmFyIHI9Zz9wW3FdLmZpbHRlcihmdW5jdGlvbih2KXtyZXR1cm4gaC5pbmRleE9mKHYpPT09LTF9KTpwW3FdO2lmKHIubGVuZ3RoIT09MCl7dmFyIHQ9cEkoZCxxKTtpZih0KXt2YXIgdT1lRyh0LGIscik7dUUodSl9fX19fTsKZnVuY3Rpb24gbUooYSxiKXtpZighZmgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdHx1bmRlZmluZWQiLCJhbnkiXSxhcmd1bWVudHMpO3ZhciBjPWE/VGQoYSk6e30sZD1KYihjLm1hdGNoQ29tbW9uQnV0dG9ucyksZT0hIWMuY3NzU2VsZWN0b3IsZj1aRihiKTtMKHRoaXMsImRldGVjdF9jbGlja19ldmVudHMiLGMubWF0Y2hDb21tb25CdXR0b25zLGMuY3NzU2VsZWN0b3IpO3ZhciBnPWMudXNlVjJFdmVudE5hbWU/Imd0bS5jbGljay12MiI6Imd0bS5jbGljayIsaD1jLnVzZVYyRXZlbnROYW1lPyJlY2wiOiJjbCIsbD1mdW5jdGlvbihwKXtwLnB1c2goZik7cmV0dXJuIHB9O2lmKGV8fGQpe2lmKGQmJmRHKGgsImNvbW1vbkJ1dHRvbklkcyIsbCxbXSksZSl7dmFyIG49TGIoU3RyaW5nKGMuY3NzU2VsZWN0b3IpKTtkRyhoLCJzZWxlY3RvclRvVHJpZ2dlcklkcyIsCmZ1bmN0aW9uKHApe3AuaGFzT3duUHJvcGVydHkobil8fChwW25dPVtdKTtsKHBbbl0pO3JldHVybiBwfSx7fSl9fWVsc2UgZEcoaCwiaW5kaXZpZHVhbEVsZW1lbnRJZHMiLGwsW10pO2JHKGgsZnVuY3Rpb24oKXskYyhCLCJjbGljayIsZnVuY3Rpb24ocCl7bEooaCxnLHApfSwhMCl9KTtyZXR1cm4gZn1tSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkNsaWNrIjsKZnVuY3Rpb24gdEooYSxiKXtyZXR1cm4gcH10Si5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkVsZW1lbnRWaXNpYmlsaXR5IjtmdW5jdGlvbiB1Sigpe311Si5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkVycm9yIjsKdmFyIHdKPWZ1bmN0aW9uKGEsYil7R2IoYSxmdW5jdGlvbihjLGQpe3ZhciBlPWJbY107ZSYmR2IoZCxmdW5jdGlvbihmLGcpe3ZKKGcsZSl9KX0pfSx6Sj1mdW5jdGlvbihhLGIsYyxkLGUsZixnKXt2YXIgaD0iIitiO2lmKGNbaF0pY1toXS5wdXNoKGEpO2Vsc2V7dmFyIGw9W2FdO2NbaF09bDt2YXIgbj1kW2hdO258fChuPXt9LGRbaF09bik7ZS5wdXNoKGZ1bmN0aW9uKHApe3ZhciBxPXAudGFyZ2V0O2lmKHEpe3ZhciByPWlHKHEpO2lmKHIpe3ZhciB0PXhKKHIsImd0bUZvcm1JbnRlcmFjdElkIixmKSx1PXhKKHEsImd0bUZvcm1JbnRlcmFjdEZpZWxkSWQiLGcpO2lmKHQhPT1udWxsJiZ1IT09bnVsbCl7dmFyIHY9blt0XTt2Pyh2LlJiJiYoQS5jbGVhclRpbWVvdXQodi5SYiksdi5kZi5nZXRBdHRyaWJ1dGUoImRhdGEtZ3RtLWZvcm0taW50ZXJhY3QtZmllbGQtaWQiKSE9PXUmJnZKKHYsbCkpLHYuZGY9cSx5Sih2LGwsYikpOihuW3RdPXtmb3JtOnIsZGY6cSxzZXF1ZW5jZU51bWJlcjowLApSYjpudWxsfSx5SihuW3RdLGwsYikpfX19fSl9fSx2Sj1mdW5jdGlvbihhLGIpe3ZhciBjPWEuZm9ybSxkPWEuZGYsZT1lRyhjLCJndG0uZm9ybUludGVyYWN0IixiKSxmPWMuYWN0aW9uO2YmJmYudGFnTmFtZSYmKGY9Yy5jbG9uZU5vZGUoITEpLmFjdGlvbik7ZVsiZ3RtLmVsZW1lbnRVcmwiXT1mO2VbImd0bS5pbnRlcmFjdGVkRm9ybU5hbWUiXT1jLmdldEF0dHJpYnV0ZSgibmFtZSIpIT1udWxsP2MuZ2V0QXR0cmlidXRlKCJuYW1lIik6dm9pZCAwO2VbImd0bS5pbnRlcmFjdGVkRm9ybUxlbmd0aCJdPWMubGVuZ3RoO2VbImd0bS5pbnRlcmFjdGVkRm9ybUZpZWxkIl09ZDtlWyJndG0uaW50ZXJhY3RlZEZvcm1GaWVsZElkIl09ZC5pZDtlWyJndG0uaW50ZXJhY3RlZEZvcm1GaWVsZE5hbWUiXT1kLmdldEF0dHJpYnV0ZSgibmFtZSIpIT1udWxsP2QuZ2V0QXR0cmlidXRlKCJuYW1lIik6dm9pZCAwO2VbImd0bS5pbnRlcmFjdGVkRm9ybUZpZWxkUG9zaXRpb24iXT1oRyhjLGQsImd0bUZvcm1JbnRlcmFjdEZpZWxkSWQiKTsKZVsiZ3RtLmludGVyYWN0ZWRGb3JtRmllbGRUeXBlIl09ZC5nZXRBdHRyaWJ1dGUoInR5cGUiKSE9bnVsbD9kLmdldEF0dHJpYnV0ZSgidHlwZSIpOnZvaWQgMDtlWyJndG0uaW50ZXJhY3RTZXF1ZW5jZU51bWJlciJdPWEuc2VxdWVuY2VOdW1iZXI7dUUoZSk7YS5zZXF1ZW5jZU51bWJlcisrO2EuUmI9bnVsbH0seUo9ZnVuY3Rpb24oYSxiLGMpe2M/YS5SYj1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2SihhLGIpfSxjKTp2SihhLGIpfSx4Sj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7dHJ5e2lmKGQ9YS5kYXRhc2V0W2JdKXJldHVybiBkO2Q9U3RyaW5nKGMoKSk7YS5kYXRhc2V0W2JdPWR9Y2F0Y2goZSl7ZD1udWxsfXJldHVybiBkfTsKZnVuY3Rpb24gQUooYSxiKXt2YXIgYz10aGlzO2lmKCFmaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0fHVuZGVmaW5lZCIsImFueSJdLGFyZ3VtZW50cyk7VEYoW2Z1bmN0aW9uKCl7TChjLCJkZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHMiKX1dKTt2YXIgZD1aRihiKSxlPWEmJk51bWJlcihhLmdldCgiaW50ZXJ2YWwiKSk7ZT4wJiZpc0Zpbml0ZShlKXx8KGU9MCk7aWYoJEYoImZpbCIsImluaXQiLCExKSl7dmFyIGY9JEYoImZpbCIsInJlZyIpO2lmKGYpZihkLGUpO2Vsc2UgdGhyb3cgRXJyb3IoIkZhaWxlZCB0byByZWdpc3RlciB0cmlnZ2VyOiAiK2QpO31lbHNle3ZhciBnPXt9LGg9W10sbD17fSxuPTAscD1mdW5jdGlvbigpe3JldHVybiBuKyt9LHE9MCxyPWZ1bmN0aW9uKCl7cmV0dXJuIHErK307JGMoQiwiY2hhbmdlIiwKZnVuY3Rpb24odCl7Zm9yKHZhciB1PTA7dTxoLmxlbmd0aDt1KyspaFt1XSh0KX0pOyRjKEEsInBhZ2VoaWRlIixmdW5jdGlvbigpe3dKKGwsZyl9KTt6SihkLGUsZyxsLGgscCxyKTthRygiZmlsIiwicmVnIixmdW5jdGlvbih0LHUpe3pKKHQsdSxnLGwsaCxwLHIpfSk7YUcoImZpbCIsImluaXQiLCEwKX1yZXR1cm4gZH1BSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkZvcm1JbnRlcmFjdGlvbiI7CnZhciBCSj1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPSRGKCJmc2wiLGM/Im52Lm13dCI6Im13dCIsMCksZztnPWM/JEYoImZzbCIsIm52LmlkcyIsW10pOiRGKCJmc2wiLCJpZHMiLFtdKTtpZighZy5sZW5ndGgpcmV0dXJuITA7dmFyIGg9ZUcoYSwiZ3RtLmZvcm1TdWJtaXQiLGcpLGw9YS5hY3Rpb247bCYmbC50YWdOYW1lJiYobD1hLmNsb25lTm9kZSghMSkuYWN0aW9uKTtQKDEyMSk7aWYobD09PSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vdHIvIilyZXR1cm4gUCgxMjIpLCEwO2hbImd0bS5lbGVtZW50VXJsIl09bDtoWyJndG0uZm9ybUNhbmNlbGVkIl09YzthLmdldEF0dHJpYnV0ZSgibmFtZSIpIT1udWxsJiYoaFsiZ3RtLmludGVyYWN0ZWRGb3JtTmFtZSJdPWEuZ2V0QXR0cmlidXRlKCJuYW1lIikpO2UmJihoWyJndG0uZm9ybVN1Ym1pdEVsZW1lbnQiXT1lLGhbImd0bS5mb3JtU3VibWl0RWxlbWVudFRleHQiXT1lLnZhbHVlKTtpZihkJiZmKXtpZighc0UoaCxqRShiLApmKSxmKSlyZXR1cm4hMX1lbHNlIEZ5KDEsImd0bS5mb3JtU3VibWl0Iiksc0UoaCxmdW5jdGlvbigpe30sZnx8MkUzKTtyZXR1cm4hMH0sQ0o9ZnVuY3Rpb24oKXt2YXIgYT1bXSxiPWZ1bmN0aW9uKGMpe3JldHVybiBDYihhLGZ1bmN0aW9uKGQpe3JldHVybiBkLmZvcm09PT1jfSl9O3JldHVybntzdG9yZTpmdW5jdGlvbihjLGQpe3ZhciBlPWIoYyk7ZT9lLmJ1dHRvbj1kOmEucHVzaCh7Zm9ybTpjLGJ1dHRvbjpkfSl9LGdldDpmdW5jdGlvbihjKXt2YXIgZD1iKGMpO2lmKGQpcmV0dXJuIGQuYnV0dG9ufX19LERKPWZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0O3JldHVybiBiJiZiIT09Il9zZWxmIiYmYiE9PSJfcGFyZW50IiYmYiE9PSJfdG9wIj8hMTohMH0sRUo9ZnVuY3Rpb24oKXt2YXIgYT1DSigpLGI9SFRNTEZvcm1FbGVtZW50LnByb3RvdHlwZS5zdWJtaXQ7JGMoQiwiY2xpY2siLGZ1bmN0aW9uKGMpe3ZhciBkPWMudGFyZ2V0O2lmKGQpe3ZhciBlPWhkKGQsWyJidXR0b24iLAoiaW5wdXQiXSwxMDApO2lmKGUmJihlLnR5cGU9PT0ic3VibWl0Inx8ZS50eXBlPT09ImltYWdlIikmJmUubmFtZSYmZWQoZSwidmFsdWUiKSl7dmFyIGY9aUcoZSk7ZiYmYS5zdG9yZShmLGUpfX19LCExKTskYyhCLCJzdWJtaXQiLGZ1bmN0aW9uKGMpe3ZhciBkPWMudGFyZ2V0O2lmKCFkKXJldHVybiBjLnJldHVyblZhbHVlO3ZhciBlPWMuZGVmYXVsdFByZXZlbnRlZHx8Yy5yZXR1cm5WYWx1ZT09PSExLGY9REooZCkmJiFlLGc9YS5nZXQoZCksaD0hMDtpZihCSihkLGZ1bmN0aW9uKCl7aWYoaCl7dmFyIGw9bnVsbCxuPXt9O2cmJihsPUIuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxsLnR5cGU9ImhpZGRlbiIsbC5uYW1lPWcubmFtZSxsLnZhbHVlPWcudmFsdWUsZC5hcHBlbmRDaGlsZChsKSxnLmhhc0F0dHJpYnV0ZSgiZm9ybWFjdGlvbiIpJiYobi5hY3Rpb249ZC5nZXRBdHRyaWJ1dGUoImFjdGlvbiIpLHhjKGQsZy5nZXRBdHRyaWJ1dGUoImZvcm1hY3Rpb24iKSkpLGcuaGFzQXR0cmlidXRlKCJmb3JtZW5jdHlwZSIpJiYKKG4uZW5jdHlwZT1kLmdldEF0dHJpYnV0ZSgiZW5jdHlwZSIpLGQuc2V0QXR0cmlidXRlKCJlbmN0eXBlIixnLmdldEF0dHJpYnV0ZSgiZm9ybWVuY3R5cGUiKSkpLGcuaGFzQXR0cmlidXRlKCJmb3JtbWV0aG9kIikmJihuLm1ldGhvZD1kLmdldEF0dHJpYnV0ZSgibWV0aG9kIiksZC5zZXRBdHRyaWJ1dGUoIm1ldGhvZCIsZy5nZXRBdHRyaWJ1dGUoImZvcm1tZXRob2QiKSkpLGcuaGFzQXR0cmlidXRlKCJmb3JtdmFsaWRhdGUiKSYmKG4udmFsaWRhdGU9ZC5nZXRBdHRyaWJ1dGUoInZhbGlkYXRlIiksZC5zZXRBdHRyaWJ1dGUoInZhbGlkYXRlIixnLmdldEF0dHJpYnV0ZSgiZm9ybXZhbGlkYXRlIikpKSxnLmhhc0F0dHJpYnV0ZSgiZm9ybXRhcmdldCIpJiYobi50YXJnZXQ9ZC5nZXRBdHRyaWJ1dGUoInRhcmdldCIpLGQuc2V0QXR0cmlidXRlKCJ0YXJnZXQiLGcuZ2V0QXR0cmlidXRlKCJmb3JtdGFyZ2V0IikpKSk7Yi5jYWxsKGQpO2wmJihkLnJlbW92ZUNoaWxkKGwpLG4uaGFzT3duUHJvcGVydHkoImFjdGlvbiIpJiYKeGMoZCxuLmFjdGlvbiksbi5oYXNPd25Qcm9wZXJ0eSgiZW5jdHlwZSIpJiZkLnNldEF0dHJpYnV0ZSgiZW5jdHlwZSIsbi5lbmN0eXBlKSxuLmhhc093blByb3BlcnR5KCJtZXRob2QiKSYmZC5zZXRBdHRyaWJ1dGUoIm1ldGhvZCIsbi5tZXRob2QpLG4uaGFzT3duUHJvcGVydHkoInZhbGlkYXRlIikmJmQuc2V0QXR0cmlidXRlKCJ2YWxpZGF0ZSIsbi52YWxpZGF0ZSksbi5oYXNPd25Qcm9wZXJ0eSgidGFyZ2V0IikmJmQuc2V0QXR0cmlidXRlKCJ0YXJnZXQiLG4udGFyZ2V0KSl9fSxlLGYsZykpaD0hMTtlbHNlIHJldHVybiBlfHwoYy5wcmV2ZW50RGVmYXVsdCYmYy5wcmV2ZW50RGVmYXVsdCgpLGMucmV0dXJuVmFsdWU9ITEpLCExO3JldHVybiBjLnJldHVyblZhbHVlfSwhMSk7SFRNTEZvcm1FbGVtZW50LnByb3RvdHlwZS5zdWJtaXQ9ZnVuY3Rpb24oKXt2YXIgYz10aGlzLGQ9ITA7QkooYyxmdW5jdGlvbigpe2QmJmIuY2FsbChjKX0sITEsREooYykpJiYoYi5jYWxsKGMpLGQ9CiExKX19OwpmdW5jdGlvbiBGSihhLGIpe3ZhciBjPXRoaXM7aWYoIWZoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3R8dW5kZWZpbmVkIiwiYW55Il0sYXJndW1lbnRzKTt2YXIgZD1hJiZhLmdldCgid2FpdEZvclRhZ3MiKTtURihbZnVuY3Rpb24oKXtMKGMsImRldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMiLHt3YWl0Rm9yVGFnczohIWR9KX1dKTt2YXIgZT1hJiZhLmdldCgiY2hlY2tWYWxpZGF0aW9uIiksZj1aRihiKTtpZihkKXt2YXIgZz1OdW1iZXIoYS5nZXQoIndhaXRGb3JUYWdzVGltZW91dCIpKTtnPjAmJmlzRmluaXRlKGcpfHwoZz0yRTMpO3ZhciBoPWZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLm1heChnLG4pfTtkRygiZnNsIiwibXd0IixoLDApO2V8fGRHKCJmc2wiLCJudi5td3QiLGgsMCl9dmFyIGw9ZnVuY3Rpb24obil7bi5wdXNoKGYpOwpyZXR1cm4gbn07ZEcoImZzbCIsImlkcyIsbCxbXSk7ZXx8ZEcoImZzbCIsIm52LmlkcyIsbCxbXSk7JEYoImZzbCIsImluaXQiLCExKXx8KEVKKCksYUcoImZzbCIsImluaXQiLCEwKSk7cmV0dXJuIGZ9RkouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25Gb3JtU3VibWl0IjsKZnVuY3Rpb24gS0ooKXt2YXIgYT10aGlzO31LSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkdhU2VuZCI7CnZhciBNSj1mdW5jdGlvbihhLGIsYyxkKXtjPWM9PT12b2lkIDA/e306YztkPWQ9PT12b2lkIDA/W106ZDt2YXIgZT0iIitiO2lmKGNbZV0pY1tlXS5wdXNoKGEpO2Vsc2V7dmFyIGY9W2FdO2NbZV09Zjt2YXIgZz1MSigiZ3RtLmhpc3RvcnlDaGFuZ2UtdjIiKSxoPS0xO2QucHVzaChmdW5jdGlvbihsKXtoPj0wJiZBLmNsZWFyVGltZW91dChoKTtiP2g9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZyhsLGYpO2g9LTF9LGIpOmcobCxmKX0pfX0sTEo9ZnVuY3Rpb24oYSl7dmFyIGI9QS5sb2NhdGlvbi5ocmVmLGM9e3NvdXJjZTpudWxsLHN0YXRlOkEuaGlzdG9yeS5zdGF0ZXx8bnVsbCx1cmw6T2ooUmooYikpLGtiOkxqKFJqKGIpLCJmcmFnbWVudCIpfTtyZXR1cm4gZnVuY3Rpb24oZCxlKXt2YXIgZj1jLGc9e307Z1tmLnNvdXJjZV09ITA7Z1tkLnNvdXJjZV09ITA7aWYoIWcucG9wc3RhdGV8fCFnLmhhc2hjaGFuZ2V8fGYua2IhPT1kLmtiKXt2YXIgaD17ZXZlbnQ6YSwiZ3RtLmhpc3RvcnlDaGFuZ2VTb3VyY2UiOmQuc291cmNlLAoiZ3RtLm9sZFVybEZyYWdtZW50IjpjLmtiLCJndG0ubmV3VXJsRnJhZ21lbnQiOmQua2IsImd0bS5vbGRIaXN0b3J5U3RhdGUiOmMuc3RhdGUsImd0bS5uZXdIaXN0b3J5U3RhdGUiOmQuc3RhdGUsImd0bS5vbGRVcmwiOmMudXJsLCJndG0ubmV3VXJsIjpkLnVybH07ZSYmKGhbImd0bS50cmlnZ2VycyJdPWUuam9pbigiLCIpKTtjPWQ7dUUoaCl9fX0sTko9ZnVuY3Rpb24oYSxiKXt2YXIgYz1BLmhpc3RvcnksZD1jW2FdO2lmKHliKGQpKXRyeXtjW2FdPWZ1bmN0aW9uKGUsZixnKXtkLmFwcGx5KGMsW10uc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpO3ZhciBoPUEubG9jYXRpb24uaHJlZjtiKHtzb3VyY2U6YSxzdGF0ZTplLHVybDpPaihSaihoKSksa2I6TGooUmooaCksImZyYWdtZW50Iil9KX19Y2F0Y2goZSl7fX0sUEo9ZnVuY3Rpb24oYSl7QS5hZGRFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsZnVuY3Rpb24oYil7dmFyIGM9T0ooYik7YSh7c291cmNlOiJwb3BzdGF0ZSIsc3RhdGU6Yi5zdGF0ZSwKdXJsOk9qKFJqKGMpKSxrYjpMaihSaihjKSwiZnJhZ21lbnQiKX0pfSl9LFFKPWZ1bmN0aW9uKGEpe0EuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsZnVuY3Rpb24oYil7dmFyIGM9T0ooYik7YSh7c291cmNlOiJoYXNoY2hhbmdlIixzdGF0ZTpudWxsLHVybDpPaihSaihjKSksa2I6TGooUmooYyksImZyYWdtZW50Iil9KX0pfSxPSj1mdW5jdGlvbihhKXt2YXIgYixjO3JldHVybigoYj1hLnRhcmdldCk9PW51bGw/dm9pZCAwOihjPWIubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpjLmhyZWYpfHxBLmxvY2F0aW9uLmhyZWZ9OwpmdW5jdGlvbiBSSihhLGIpe3ZhciBjPXRoaXM7aWYoIWZoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3R8dW5kZWZpbmVkIiwiYW55Il0sYXJndW1lbnRzKTtURihbZnVuY3Rpb24oKXtMKGMsImRldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMiKX1dKTt2YXIgZD1hJiZhLmdldCgidXNlVjJFdmVudE5hbWUiKT8iZWhsIjoiaGwiLGU9TnVtYmVyKGEmJmEuZ2V0KCJpbnRlcnZhbCIpKTtlPjAmJmlzRmluaXRlKGUpfHwoZT0wKTt2YXIgZjtpZighJEYoZCwiaW5pdCIsITEpKXt2YXIgZz17fSxoPVtdLGw7ZD09PSJlaGwiPyhsPWZ1bmN0aW9uKHApe2Zvcih2YXIgcT0wO3E8aC5sZW5ndGg7cSsrKWhbcV0ocCl9LGY9WkYoYiksTUooZixlLGcsaCksYUcoZCwicmVnIixmdW5jdGlvbihwLHEpe01KKHAscSxnLGgpfSkpOmw9TEooImd0bS5oaXN0b3J5Q2hhbmdlIik7ClFKKGwpO1BKKGwpO05KKCJwdXNoU3RhdGUiLGwpO05KKCJyZXBsYWNlU3RhdGUiLGwpO2FHKGQsImluaXQiLCEwKX1lbHNlIGlmKGQ9PT0iZWhsIil7dmFyIG49JEYoZCwicmVnIik7biYmKGY9WkYoYiksbihmLGUpKX1kPT09ImhsIiYmKGY9dm9pZCAwKTtyZXR1cm4gZn1SSi5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkhpc3RvcnlDaGFuZ2UiO3ZhciBTSj1bImh0dHA6Ly8iLCJodHRwczovLyIsImphdmFzY3JpcHQ6IiwiZmlsZTovLyJdOwpmdW5jdGlvbiBXSihhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGh9V0ouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25MaW5rQ2xpY2siOwpmdW5jdGlvbiBnSyhhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGd9Z0suUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25TY3JvbGwiO2Z1bmN0aW9uIGhLKGEpe3JldHVybiBmdW5jdGlvbigpe2lmKGEubGltaXQmJmEuZ2s+PWEubGltaXQpYS5haSYmQS5jbGVhckludGVydmFsKGEuYWkpO2Vsc2V7YS5naysrO3ZhciBiPU5iKCk7dUUoe2V2ZW50OmEuZXZlbnROYW1lLCJndG0udGltZXJJZCI6YS5haSwiZ3RtLnRpbWVyRXZlbnROdW1iZXIiOmEuZ2ssImd0bS50aW1lckludGVydmFsIjphLmludGVydmFsLCJndG0udGltZXJMaW1pdCI6YS5saW1pdCwiZ3RtLnRpbWVyU3RhcnRUaW1lIjphLk1vLCJndG0udGltZXJDdXJyZW50VGltZSI6YiwiZ3RtLnRpbWVyRWxhcHNlZFRpbWUiOmItYS5NbywiZ3RtLnRyaWdnZXJzIjphLkx0fSl9fX0KZnVuY3Rpb24gaUsoYSxiKXsKcmV0dXJuIGZ9aUsuUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25UaW1lciI7dmFyIEFjPUFhKFsiZGF0YS1ndG0teXQtaW5zcGVjdGVkLSJdKSxrSz1bInd3dy55b3V0dWJlLmNvbSIsInd3dy55b3V0dWJlLW5vY29va2llLmNvbSJdLGxLOwpmdW5jdGlvbiB2SyhhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGV9dksuUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25Zb3VUdWJlQWN0aXZpdHkiO2Z1bmN0aW9uIHdLKGEsYil7aWYoIWxoKGEpfHwhZmgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIk9iamVjdHx1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBjPWI/VGQoYik6e307Yy5yZWdleENhY2hlPWFsKDMsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE1hcH0pO3JldHVybiBHaChhLGMpfXdLLlA9ImludGVybmFsLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24iO2Z1bmN0aW9uIHhLKGEpe3ZhciBiPSExO3JldHVybiBifXhLLlA9ImludGVybmFsLmV2YWx1YXRlTWF0Y2hpbmdSdWxlcyI7dmFyIHlLPW5ldyBNYXAoW1siYXciLDRdXSk7ZnVuY3Rpb24geksoYSl7dmFyIGI9dnJbYV0sYz15Sy5nZXQoYSk7cmV0dXJuIGM/KHdxKGIsYyl8fFtdKS5zb21lKGZ1bmN0aW9uKGQpe3JldHVybiBkLm09PT0iMCJ8fGQubT09PXZvaWQgMH0pOiExfQpmdW5jdGlvbiBBSyhhLGIpe2lmKE0oNDk1KSl7Zm9yKHZhciBjPW5ldyBNYXAsZD1tKHlLKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9bShlLnZhbHVlKSxnPWYubmV4dCgpLnZhbHVlLGg9Zi5uZXh0KCkudmFsdWUsbD1nLG49YVtsXSxwPUFycmF5LmlzQXJyYXkobik/blswXTpuO2lmKHAhPT12b2lkIDApe3ZhciBxPXt9LHI9KHEuaz1wLHEuaT1TdHJpbmcoTWF0aC5mbG9vcihEYXRlLm5vdygpLzFFMykpLHEuYj1bXSxxLm09IjEiLHEpLHQ9YXEocixoKTt0JiYoeksobCl8fGMuc2V0KGwsdCkpfX1pZihjLnNpemUpe3ZhciB1LHY9W10seD1iLnBhdGh8fCIvIjt2LnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCJwIikrIj0iK2VuY29kZVVSSUNvbXBvbmVudCh4KSk7Yi5BciYmdi5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCgiY2UiKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhiLkFyKSkpO3ZhciB5PWIuZG9tYWluJiZiLmRvbWFpbiE9PSJhdXRvIj8KYi5kb21haW46ImF1dG86IitBLmxvY2F0aW9uLmhvc3RuYW1lO3YucHVzaChlbmNvZGVVUklDb21wb25lbnQoImQiKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHkpKTtmb3IodmFyIHo9bShjKSxDPXoubmV4dCgpOyFDLmRvbmU7Qz16Lm5leHQoKSl7dmFyIEQ9bShDLnZhbHVlKSxJPUQubmV4dCgpLnZhbHVlLEc9RC5uZXh0KCkudmFsdWU7di5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChJKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KEcpKX11PSJfL3NldF9jb29raWU/Iit2LmpvaW4oIiYiKTt2YXIgTixTPUUoNTgpO049RWYodSxTKTt2YXIgVz1YaigpKyIvIitOO21kKFcpfX19O2Z1bmN0aW9uIEJLKGEpe3JldHVybiJDV1ZXZWJWaWV3TWVzc2FnZSJpbiBhfWZ1bmN0aW9uIENLKGEpe3ZhciBiPUEsYz1iLndlYmtpdDtkZWxldGUgYi53ZWJraXQ7YShiLndlYmtpdCk7Yi53ZWJraXQ9Y31mdW5jdGlvbiBESyhhLGIpe3ZhciBjPXthY3Rpb246ImdjbF9zZXR1cCJ9O2lmKEJLKGEubWVzc2FnZUhhbmRsZXJzKSlyZXR1cm4gYS5tZXNzYWdlSGFuZGxlcnMuQ1dWV2ViVmlld01lc3NhZ2UucG9zdE1lc3NhZ2Uoe2NvbW1hbmQ6YixwYXlsb2FkOmN9KSwhMDt2YXIgZD1hLm1lc3NhZ2VIYW5kbGVyc1tiXTtyZXR1cm4gZD8oZC5wb3N0TWVzc2FnZShjKSwhMCk6ITF9O3ZhciBFSz17fSxGSz0oRUsuYXdiPXtub3RGb3VuZDoxNzh9LEVLLnl0Yj17bm90Rm91bmQ6MTk0fSxFSyk7ZnVuY3Rpb24gR0soYSl7dmFyIGIsYz0oYj1GS1thXSk9PW51bGw/dm9pZCAwOmIubm90Rm91bmQ7YyYmUChjKX0KZnVuY3Rpb24gSEsoYSl7aWYoIW5tKGptLmJhLmpuKSYmIndlYmtpdCJpbiBBJiZBLndlYmtpdC5tZXNzYWdlSGFuZGxlcnMpe3ZhciBiPWZ1bmN0aW9uKCl7dHJ5e0NLKGZ1bmN0aW9uKGMpe2lmKGMpe3ZhciBkO2Q9QksoYy5tZXNzYWdlSGFuZGxlcnMpfHwiYXdiImluIGMubWVzc2FnZUhhbmRsZXJzP3tjb21tYW5kOiJhd2IiLHNvdXJjZTo1fTooQksoYy5tZXNzYWdlSGFuZGxlcnMpfHwieXRiImluIGMubWVzc2FnZUhhbmRsZXJzKSYmTSg0OTkpP3tjb21tYW5kOiJ5dGIiLHNvdXJjZTo4fTp2b2lkIDA7ZCYmKG1tKGptLmJhLmpuLGZ1bmN0aW9uKGUpe3ZhciBmPWQuc291cmNlO2UuZ2NsaWQmJmxzKCJnY2xfYXciLGUuZ2NsaWQsZixhKTtlLndicmFpZCYmbHMoImdjbF9nYiIsZS53YnJhaWQsZixhKX0pLERLKGMsZC5jb21tYW5kKXx8R0soZC5jb21tYW5kKSl9fSl9Y2F0Y2goYyl7UCgxOTMpfX07SGwoZnVuY3Rpb24oKXtCcihmcCk/YigpOklsKGIsZnApfSxmcCl9fTt2YXIgSUs9WyJodHRwczovL3d3dy5nb29nbGUuY29tIiwiaHR0cHM6Ly93d3cueW91dHViZS5jb20iLCJodHRwczovL20ueW91dHViZS5jb20iXTtmdW5jdGlvbiBKSyhhKXtyZXR1cm4gYS5kYXRhLmFjdGlvbiE9PSJnY2xfdHJhbnNmZXIiPyhQKDE3MyksITApOmEuZGF0YS5nYWRTb3VyY2U/YS5kYXRhLmdjbGlkPyExOihQKDE4MSksITApOihQKDE4MCksITApfQpmdW5jdGlvbiBLSyhhLGIpe2lmKCFhfHxNKGEpKXtpZihubShqbS5iYS5WZSkpcmV0dXJuIFAoMTc2KSxqbS5iYS5WZTtpZihubShqbS5iYS5tbikpcmV0dXJuIFAoMTcwKSxqbS5iYS5WZTt2YXIgYz1GcCgpO2lmKCFjKVAoMTcxKTtlbHNlIGlmKGMub3BlbmVyKXt2YXIgZD1mdW5jdGlvbihnKXtpZighSUsuaW5jbHVkZXMoZy5vcmlnaW4pKVAoMTcyKTtlbHNlIGlmKCFKSyhnKSl7dmFyIGg9e2dhZFNvdXJjZTpnLmRhdGEuZ2FkU291cmNlfTtoLmdjbGlkPWcuZGF0YS5nY2xpZDttbShqbS5iYS5WZSxoKTtiJiZnLmRhdGEuZ2NsaWQmJmxzKCJnY2xfYXciLFN0cmluZyhnLmRhdGEuZ2NsaWQpLDYsYik7dmFyIGw7KGw9Zy5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24pPT1udWxsfHxsLmNhbGwoZyk7bnQoYywibWVzc2FnZSIsZCl9fTtpZihtdChjLCJtZXNzYWdlIixkKSl7bW0oam0uYmEubW4sITApO2Zvcih2YXIgZT1tKElLKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSljLm9wZW5lci5wb3N0TWVzc2FnZSh7YWN0aW9uOiJnY2xfc2V0dXAifSwKZi52YWx1ZSk7UCgxNzQpO3JldHVybiBqbS5iYS5WZX1QKDE3NSl9fX07CnZhciBMSz1mdW5jdGlvbihhKXt2YXIgYj17cHJlZml4Ok8oYS5NLEYuRC5GZCl8fE8oYS5NLEYuRC5uYiksZG9tYWluOk8oYS5NLEYuRC5MYikscGQ6TyhhLk0sRi5ELkNiKSxmbGFnczpPKGEuTSxGLkQuVGIpfTthLk0uaXNHdG1FdmVudCYmKGIucGF0aD1PKGEuTSxGLkQudmMpKTtyZXR1cm4gYn0sTUs9ZnVuY3Rpb24oYSxiKXtpZighUShhLEguSi5XZSkpe3ZhciBjPUtLKDExOSk7aWYoYyl7dmFyIGQ9bm0oYyksZT1mdW5jdGlvbihnKXtWKGEsSC5KLldlLCEwKTt2YXIgaD1SKGEsRi5ELnpmKSxsPVIoYSxGLkQuQWYpO1UoYSxGLkQuemYsU3RyaW5nKGcuZ2FkU291cmNlKSk7VShhLEYuRC5BZiw2KTtWKGEsSC5KLnNhKTtWKGEsSC5KLnVnKTtVKGEsRi5ELnNhKTtiKCk7VShhLEYuRC56ZixoKTtVKGEsRi5ELkFmLGwpO1YoYSxILkouV2UsITEpfTtpZihkKWUoZCk7ZWxzZXt2YXIgZj12b2lkIDA7Zj1wbShjLGZ1bmN0aW9uKGcsaCl7ZShoKTtxbShjLGYpfSl9fX19LFBLPWZ1bmN0aW9uKGEpe3ZhciBiLApjLGQsZTtiPWEuVG47Yz1hLm1vO2Q9YS5RbztlPWEuVW47aWYoYil7aWYoZHIoY1tGLkQuWGZdLCEhY1tGLkQuQWFdKSl7aWYoV2ooKSYmQnIoQXIoKSkpe2Zvcih2YXIgZj1VcSghMCksZz17fSxoPW0oT2JqZWN0LmtleXModnIpKSxsPWgubmV4dCgpOyFsLmRvbmU7bD1oLm5leHQoKSl7dmFyIG49bC52YWx1ZSxwPXZyW25dLHE9ZltwXTtpZihxKXt2YXIgcj0kcChxLDQpO3ImJihvcyhNYXRoLm1pbihOcihyKSxOYigpKXx8TmIoKSxwLDQpfHwoZ1tuXT1xKSl9fWZvcih2YXIgdD17fSx1PW0oT2JqZWN0LmtleXMoZykpLHY9dS5uZXh0KCk7IXYuZG9uZTt2PXUubmV4dCgpKXt2YXIgeD12LnZhbHVlLHk9Z1t4XTtpZih5IT09dm9pZCAwKXt2YXIgej0kcCh5LDQpO3omJnoubT09PSIxIiYmKHRbeF09ei5rKX19QUsodCxlKX1wcyhlKTt0cyhlKTtRdihlKX1pZihPcCgpIT09Mil7Z3MoZSk7aXMoZSk7aWYoWWYoMTUpKXt2YXIgQz1lLEQ9ZHMoQS5sb2NhdGlvbi5ocmVmLCEwLCExKTsKRC5sZW5ndGh8fChEPWRzKEEuZG9jdW1lbnQucmVmZXJyZXIsITEsITApKTtpZihELmxlbmd0aCl7Qz1DfHx7fTt2YXIgST1EWzBdO0kudmFsdWUmJm1zKCJnY2xfZGMiLFt7dmVyc2lvbjoiIixnY2xpZDpJLnZhbHVlLHRpbWVzdGFtcDpOYigpLHFhOkkucWF9XSxDKX19SEsoZSk7S0sodm9pZCAwLGUpfWVsc2UgZ3MoZSk7aWYoV2ooKSYmQnIoQXIoKSkpe3ZhciBHPWZzKCk7QUsoRyxlKX14cyhxcyxlKTt5cyhlKX1jW0YuRC5BYV0mJih2cyhjW0YuRC5BYV0sY1tGLkQuYWRdLCEhY1tGLkQud2NdKSx1cyhjW0YuRC5BYV0sY1tGLkQuYWRdLCEhY1tGLkQud2NdLGUucHJlZml4KSx3cyhjW0YuRC5BYV0sY1tGLkQuYWRdLCEhY1tGLkQud2NdLGUucHJlZml4KSxSdihHdihlLnByZWZpeCksY1tGLkQuQWFdLGNbRi5ELmFkXSwhIWNbRi5ELndjXSxlKSxSdigiRlBBVSIsY1tGLkQuQWFdLGNbRi5ELmFkXSwhIWNbRi5ELndjXSxlKSk7ZCYmQXMoTkspO0NzKE9LKX0scXM9WyJhdyIsImRjIiwKImdiIl0sT0s9WyJhdyIsImRjIiwiZ2IiLCJhZyJdLE5LPVsiYXciLCJkYyIsImdiIiwiYWciLCJnYWRfc291cmNlIl07CnZhciBRSz1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLkdhKSxjPVEoYSxILkouc24pLGQ9TSg0NDMpJiZjP1R2KGIpOlV2KGIpLlNoLGU9dm9pZCAwO00oNTcwKSYmYyYmKGU9U3YoYix7WGg6ITB9KS5payk7dmFyIGY7YTp7aWYoSWYoNDcpJiZYbyhmcCkpe3ZhciBnPWRJKGEsImNjZF9lbmFibGVfY20iLCExKSxoPVEoYSxILkouWWEpO1YoYSxILkouYWosITApO1YoYSxILkouZmQsITApO2lmKGh3KGgpKXtWKGEsSC5KLkloLCEwKTt2YXIgbD1kfHxBdigpLG49e30scD17ZXZlbnRNZXRhZGF0YToobltILkouRGNdPVguVi5GYixuW0guSi5ZYV09aCxuW0guSi56al09bCxuW0guSi5mZF09ITAsbltILkouYWpdPSEwLG5bSC5KLkloXT0hMCxuW0guSi5YbV09ZyYmSWYoNDcpLG4pLG5vR3RtRXZlbnQ6ITB9LHE9c0MoYS50YXJnZXQuZGVzdGluYXRpb25JZCxhLmV2ZW50TmFtZSxhLk0uRWEpO21EKHEsYS5NLmV2ZW50SWQscCk7ZyYmUShhLEguSi53ZCl8fFYoYSxILkouWWEpO2Y9bDsKYnJlYWsgYX19Zj12b2lkIDB9dmFyIHI9ZHx8ZjtpZihyfHxlKXt2YXIgdCx1O3Q9UihhLEYuRC5QYSk7dT1Lei5nai5icDt2YXIgdj1SKGEsRi5ELldjKTshdCYmdiYmKHQ9dltGLkQuUGFdLHU9S3ouZ2oudXEpO3R8fCh0PUF2KFIoYSxGLkQuR2QpKSxzYigiR1RBR19FVkVOVF9GRUFUVVJFX0NIQU5ORUwiLFQuVy5GaCksdT1Lei5nai5WcSk7VShhLEYuRC5QYSx0KTtVKGEsRi5ELmRtLHUpO3ImJlUoYSxGLkQueGMscik7ZSYmVShhLCJfJmVjc2lkMiIsZSk7VihhLEguSi5saiwhMCl9fTsKdmFyIFJLPWZ1bmN0aW9uKGEpe1EoYSxILkoueW4pfHxWKGEsSC5KLkphLCExKX0sU0s9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5kYSksYz1YbyhmcCksZD1RKGEsSC5KLnNhKSxlPVIoYSxGLkQuR2QpLGY9UShhLEguSi5wbik7c3dpdGNoKGIpe2Nhc2UgWC5WLnhhOiFmJiZlJiZSSyhhKTthLmV2ZW50TmFtZT09PUYuRC53YSYmVihhLEguSi5KYSwhMCk7YnJlYWs7Y2FzZSBYLlYuT2I6Y2FzZSBYLlYuRmI6aWYoIWN8fGR8fCFmJiZlKWEuaXNBYm9ydGVkPSEwO2JyZWFrO2Nhc2UgWC5WLnViOmN8fChhLmlzQWJvcnRlZD0hMCk7IWYmJmV8fFJLKGEpO1EoYSxILkoud2QpfHwoYS5pc0Fib3J0ZWQ9ITApO2EuZXZlbnROYW1lIT09Ri5ELndhfHxPKGEuTSxGLkQuQ2wpIT09ITEmJk8oYS5NLEYuRC5UZCkhPT0hMXx8VihhLEguSi5KYSwhMCk7YnJlYWs7Y2FzZSBYLlYuS2E6YS5ldmVudE5hbWUhPT1GLkQuc2MmJlEoYSxILkouUGMpJiYoYS5pc0Fib3J0ZWQ9ITApLGEudGFyZ2V0Lmlkc1tkQ1sxXV0mJgpPKGEuTSxGLkQuaWgpIT09ITAmJihhLmlzQWJvcnRlZD0hMCl9fTt2YXIgVEs9ZnVuY3Rpb24oYSl7dmFyIGIsYz1NKDU3Nik7aWYoUShhLEguSi5zbikpc3dpdGNoKFEoYSxILkouZGEpKXtjYXNlIFguVi5GYjppZighKGEuZXZlbnROYW1lIT09Ri5ELndhfHxjJiZodyhRKGEsSC5KLllhKSkpKWJyZWFrO2I9OTc7YS5ldmVudE5hbWU9PT1GLkQud2EmJkd1KFQuVy5Payk7TSg0ODgpP1YoYSxILkouSmEsITEpOlJLKGEpO2JyZWFrO2Nhc2UgWC5WLk9iOmlmKGEuZXZlbnROYW1lPT09Ri5ELndhKWJyZWFrO2I9OTg7TSg0ODgpP1YoYSxILkouSmEsITEpOlJLKGEpO2JyZWFrO2Nhc2UgWC5WLnhhOmI9OTl9IVEoYSxILkouSmEpJiZiJiZQKGIpO1EoYSxILkouSmEpPT09ITAmJihhLmlzQWJvcnRlZD0hMCl9Owp2YXIgVUs9ZnVuY3Rpb24oYSl7aWYoTSg1NjkpJiZXaigpJiZRKGEsSC5KLmRhKT09PVguVi54YSYmIVEoYSxILkouRWMpKXt2YXIgYj1NYXRoLmZsb29yKERhdGUubm93KCkvMUUzKSxjPW5ldyBVaW50OEFycmF5KFtiJjI1NSxiPj44JjI1NV0pLGQsZT15bSgpfHwiWFgiLGY9em0oKXx8IjAwIjtkPW5ldyBVaW50OEFycmF5KFtlLmNoYXJDb2RlQXQoMCksZS5jaGFyQ29kZUF0KDEpLGYuY2hhckNvZGVBdCgwKSxmLmNoYXJDb2RlQXQoMSldKTt2YXIgZz1uZXcgVWludDhBcnJheSg3KSxoO2lmKChoPUEuY3J5cHRvKT09bnVsbHx8IWguZ2V0UmFuZG9tVmFsdWVzKGcpKWZvcih2YXIgbD0wO2w8NztsKyspZ1tsXT1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjU2KTt2YXIgbj1uZXcgVWludDhBcnJheShbXS5jb25jYXQodyhjKSx3KGQpLHcoZykpKSxwO3RyeXtwPWJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdyhuKSkpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLAoiXyIpLnJlcGxhY2UoLz0rJC8sIiIpfWNhdGNoKHEpe3A9IiJ9VShhLEYuRC5FaSxwKX19O2Z1bmN0aW9uIFZLKCl7cmV0dXJuIE10KDcpJiZNdCg5KSYmTXQoMTApfTsKdmFyIGFMPWZ1bmN0aW9uKGEsYil7YSYmKCRLKCJzaWQiLGEudGFyZ2V0SWQsYiksJEsoImNjIixhLmNsaWVudENvdW50LGIpLCRLKCJ0bCIsYS50b3RhbExpZmVNcyxiKSwkSygiaGMiLGEuaGVhcnRiZWF0Q291bnQsYiksJEsoImNsIixhLmNsaWVudExpZmVNcyxiKSl9LCRLPWZ1bmN0aW9uKGEsYixjKXtiIT1udWxsJiZjLnB1c2goYSsiPSIrYil9LGJMPWZ1bmN0aW9uKCl7dmFyIGE9Qi5yZWZlcnJlcjtpZihhKXt2YXIgYjtyZXR1cm4gTGooUmooYSksImhvc3QiKT09PSgoYj1BLmxvY2F0aW9uKT09bnVsbD92b2lkIDA6Yi5ob3N0KT8xOjJ9cmV0dXJuIDB9LGRMPWZ1bmN0aW9uKCl7dGhpcy5qYT1jTDt0aGlzLk49MDt0aGlzLnlhPU5mKDU3LDUpO3RoaXMuUj1OZig1OCw1MCk7dGhpcy5mYT1EYigpO3RoaXMuTGE9Imh0dHBzOi8vIitFKDIxKSsiL2E/In07ZEwucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMsZCl7CnZhciBlPWJMKCksZixnPVtdO2Y9QT09PUEudG9wJiZlIT09MCYmYj8oYj09bnVsbD92b2lkIDA6Yi5jbGllbnRDb3VudCk+MT9lPT09Mj8xOjI6ZT09PTI/MDozOjQ7YSYmJEsoInNpIixhLkpnLGcpOyRLKCJtIiwwLGcpOyRLKCJpc3MiLGYsZyk7JEsoImlmIixjLGcpO2FMKGIsZyk7ZCYmJEsoImZtIixlbmNvZGVVUklDb21wb25lbnQoZC5zdWJzdHJpbmcoMCx0aGlzLlIpKSxnKTt0aGlzLlooZyk7fTtkTC5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPVtdOyRLKCJtIiwxLGYpOyRLKCJzIixhLGYpOyRLKCJwbyIsYkwoKSxmKTtiJiYoJEsoInN0IixiLnN0YXRlLGYpLCRLKCJzaSIsYi5KZyxmKSwkSygic20iLGIuVWcsZikpO2FMKGMsZik7JEsoImMiLGQsZik7ZSYmJEsoImZtIixlbmNvZGVVUklDb21wb25lbnQoZS5zdWJzdHJpbmcoMCwKdGhpcy5SKSksZik7dGhpcy5aKGYpO307ZEwucHJvdG90eXBlLlo9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP1tdOmE7IWZuLk58fHRoaXMuTj49dGhpcy55YXx8KCRLKCJwaWQiLHRoaXMuZmEsYSksJEsoImJjIiwrK3RoaXMuTixhKSxhLnVuc2hpZnQoImN0aWQ9IitFKDUpKyImdD1zIiksdGhpcy5qYSgiIit0aGlzLkxhK2Euam9pbigiJiIpKSl9O2Z1bmN0aW9uIGVMKGEpe3JldHVybiBhLnBlcmZvcm1hbmNlJiZhLnBlcmZvcm1hbmNlLm5vdygpfHxEYXRlLm5vdygpfQp2YXIgZkw9ZnVuY3Rpb24oYSxiKXt2YXIgYz1BLGQ9TmYoNTMsNTAwKSxlPU5mKDU0LDVFMyksZj1OZig4LDIwKSxnPU5mKDU1LDVFMyksaDt2YXIgbD1mdW5jdGlvbihuLHAscSl7cT1xPT09dm9pZCAwP3txbzpmdW5jdGlvbigpe30sc286ZnVuY3Rpb24oKXt9LHBvOmZ1bmN0aW9uKCl7fSxvbkZhaWx1cmU6ZnVuY3Rpb24oKXt9fTpxO3RoaXMuSWo9bjt0aGlzLkg9cDt0aGlzLk49cTt0aGlzLmZhPXRoaXMuamE9dGhpcy5oZWFydGJlYXRDb3VudD10aGlzLkRqPTA7dGhpcy5mZT0hMTt0aGlzLks9e307dGhpcy5pZD1TdHJpbmcoTWF0aC5mbG9vcihOdW1iZXIuTUFYX1NBRkVfSU5URUdFUipNYXRoLnJhbmRvbSgpKSk7dGhpcy5zdGF0ZT0wO3RoaXMuSmc9ZUwodGhpcy5IKTt0aGlzLlVnPWVMKHRoaXMuSCk7dGhpcy5aPTEwfTtsLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7dGhpcy5SKDEpOwp0aGlzLkxhKCl9O2wucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKCl7cmV0dXJue3N0YXRlOnRoaXMuc3RhdGUsSmc6TWF0aC5yb3VuZChlTCh0aGlzLkgpLXRoaXMuSmcpLFVnOk1hdGgucm91bmQoZUwodGhpcy5IKS10aGlzLlVnKX19O2wucHJvdG90eXBlLlI9ZnVuY3Rpb24obil7dGhpcy5zdGF0ZSE9PW4mJih0aGlzLnN0YXRlPW4sdGhpcy5VZz1lTCh0aGlzLkgpKX07bC5wcm90b3R5cGUudmc9ZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKHRoaXMuRGorKyl9O2wucHJvdG90eXBlLkxhPWZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLmhlYXJ0YmVhdENvdW50Kys7dGhpcy55YSh7dHlwZTowLGNsaWVudElkOnRoaXMuaWQscmVxdWVzdElkOnRoaXMudmcoKSxtYXhEZWxheTp0aGlzLmhlKCl9LGZ1bmN0aW9uKHApe2lmKHAudHlwZT09PTApe3ZhciBxO2lmKCgocT1wLmZhaWx1cmUpPT1udWxsP3ZvaWQgMDpxLmZhaWx1cmVUeXBlKSE9bnVsbClpZihwLnN0YXRzJiYobi5zdGF0cz0KcC5zdGF0cyksbi5mYSsrLHAuaXNEZWFkfHxuLmZhPmYpe3ZhciByPXAuaXNEZWFkJiZwLmZhaWx1cmUuZmFpbHVyZVR5cGU7bi5aPXJ8fDEwO24uUig0KTtuLkFqKCk7dmFyIHQsdTsodT0odD1uLk4pLnBvKT09bnVsbHx8dS5jYWxsKHQse2ZhaWx1cmVUeXBlOnJ8fDEwLGRhdGE6cC5mYWlsdXJlLmRhdGF9KX1lbHNlIG4uUigzKSxuLlBoKCk7ZWxzZXtpZihuLmhlYXJ0YmVhdENvdW50PnAuc3RhdHMuaGVhcnRiZWF0Q291bnQrZil7bi5oZWFydGJlYXRDb3VudD1wLnN0YXRzLmhlYXJ0YmVhdENvdW50O3ZhciB2LHg7KHg9KHY9bi5OKS5vbkZhaWx1cmUpPT1udWxsfHx4LmNhbGwodix7ZmFpbHVyZVR5cGU6MTN9KX1uLnN0YXRzPXAuc3RhdHM7dmFyIHk9bi5zdGF0ZTtuLlIoMik7aWYoeSE9PTIpaWYobi5mZSl7dmFyIHosQzsoQz0oej1uLk4pLnNvKT09bnVsbHx8Qy5jYWxsKHopfWVsc2V7bi5mZT0hMDt2YXIgRCxJOyhJPShEPW4uTikucW8pPT1udWxsfHxJLmNhbGwoRCl9bi5mYT0KMDtuLk5qKCk7bi5QaCgpfX19KX07bC5wcm90b3R5cGUuaGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGF0ZT09PTI/ZTpkfTtsLnByb3RvdHlwZS5QaD1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5ILnNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLkxhKCl9LE1hdGgubWF4KDAsdGhpcy5oZSgpLShlTCh0aGlzLkgpLXRoaXMuamEpKSl9O2wucHJvdG90eXBlLmtyPWZ1bmN0aW9uKG4scCxxKXt2YXIgcj10aGlzO3RoaXMueWEoe3R5cGU6MSxjbGllbnRJZDp0aGlzLmlkLHJlcXVlc3RJZDp0aGlzLnZnKCksY29tbWFuZDpufSxmdW5jdGlvbih0KXtpZih0LnR5cGU9PT0xKWlmKHQucmVzdWx0KXAodC5yZXN1bHQpO2Vsc2V7dmFyIHUsdix4LHk9e2ZhaWx1cmVUeXBlOih4PSh1PXQuZmFpbHVyZSk9PW51bGw/dm9pZCAwOnUuZmFpbHVyZVR5cGUpIT1udWxsP3g6MTIsZGF0YToodj10LmZhaWx1cmUpPT1udWxsP3ZvaWQgMDp2LmRhdGF9LHosQzsoQz0oej1yLk4pLm9uRmFpbHVyZSk9PQpudWxsfHxDLmNhbGwoeix5KTtxKHkpfX0pfTtsLnByb3RvdHlwZS55YT1mdW5jdGlvbihuLHApe3ZhciBxPXRoaXM7aWYodGhpcy5zdGF0ZT09PTQpbi5mYWlsdXJlPXtmYWlsdXJlVHlwZTp0aGlzLlp9LHAobik7ZWxzZXt2YXIgcj10aGlzLnN0YXRlIT09MiYmbi50eXBlIT09MCx0PW4ucmVxdWVzdElkLHUsdj10aGlzLkguc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB5PXEuS1t0XTt5JiYoaW0oNikscS5rZCh5LDcpKX0sKHU9bi5tYXhEZWxheSkhPW51bGw/dTpnKSx4PXtyZXF1ZXN0Om4sSG86cCx6bzpyLE5zOnZ9O3RoaXMuS1t0XT14O3J8fHRoaXMuc2VuZFJlcXVlc3QoeCl9fTtsLnByb3RvdHlwZS5zZW5kUmVxdWVzdD1mdW5jdGlvbihuKXt0aGlzLmphPWVMKHRoaXMuSCk7bi56bz0hMTt0aGlzLklqKG4ucmVxdWVzdCl9O2wucHJvdG90eXBlLk5qPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPW0oT2JqZWN0LmtleXModGhpcy5LKSkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPQp0aGlzLktbcC52YWx1ZV07cS56byYmdGhpcy5zZW5kUmVxdWVzdChxKX19O2wucHJvdG90eXBlLkFqPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPW0oT2JqZWN0LmtleXModGhpcy5LKSkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpdGhpcy5rZCh0aGlzLktbcC52YWx1ZV0sdGhpcy5aKX07bC5wcm90b3R5cGUua2Q9ZnVuY3Rpb24obixwKXt0aGlzLmFjKG4pO3ZhciBxPW4ucmVxdWVzdDtxLmZhaWx1cmU9e2ZhaWx1cmVUeXBlOnB9O24uSG8ocSl9O2wucHJvdG90eXBlLmFjPWZ1bmN0aW9uKG4pe2RlbGV0ZSB0aGlzLktbbi5yZXF1ZXN0LnJlcXVlc3RJZF07dGhpcy5ILmNsZWFyVGltZW91dChuLk5zKX07bC5wcm90b3R5cGUua3M9ZnVuY3Rpb24obil7dGhpcy5qYT1lTCh0aGlzLkgpO3ZhciBwPXRoaXMuS1tuLnJlcXVlc3RJZF07aWYocCl0aGlzLmFjKHApLHAuSG8obik7ZWxzZXt2YXIgcSxyOyhyPShxPXRoaXMuTikub25GYWlsdXJlKT09bnVsbHx8ci5jYWxsKHEse2ZhaWx1cmVUeXBlOjE0fSl9fTsKaD1uZXcgbChhLGMsYik7cmV0dXJuIGh9Owp2YXIgZ0w9ZnVuY3Rpb24oKXtyZXR1cm4gYWwoMTgsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGRMfSl9LGNMPWZ1bmN0aW9uKGEpe2lvKGxvKGNvLmlhLlpiKSxmdW5jdGlvbigpe1pjKGEpfSl9LGhMPWZ1bmN0aW9uKGEpe3ZhciBiPWEuc3Vic3RyaW5nKDAsYS5pbmRleE9mKCIvXy9zZXJ2aWNlX3dvcmtlciIpKTtyZXR1cm4iJjFwPTEiKyhiPyImcGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudChiKToiIil9LGlMPWZ1bmN0aW9uKGEpe3ZhciBiPUEubG9jYXRpb24ub3JpZ2luO2lmKCFiKXJldHVybiBudWxsOyhNKDQzMik/V2ooKTpXaigpJiYhYSkmJihhPSIiK2IrWGooKSsiL18vc2VydmljZV93b3JrZXIiKTt2YXIgYz1hLGQsZT1MZigxMSk7ZT1MZigxMCk7ZD1lO2M/KGMuY2hhckF0KGMubGVuZ3RoLTEpIT09Ii8iJiYKKGMrPSIvIiksYT1jK2QpOmE9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL3N0YXRpYy9zZXJ2aWNlX3dvcmtlci8iK2QrIi8iO3ZhciBmO3RyeXtmPW5ldyBVUkwoYSl9Y2F0Y2goZyl7cmV0dXJuIG51bGx9cmV0dXJuIGYucHJvdG9jb2whPT0iaHR0cHM6Ij9udWxsOmZ9LGpMPWZ1bmN0aW9uKGEpe3ZhciBiPW5tKGptLmJhLk9oKTtyZXR1cm4gYiYmYlthXX0sa0w9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0aGlzLks9Z0woKTt0aGlzLlo9dGhpcy5SPSExO3RoaXMuZmE9bnVsbDt0aGlzLmluaXRUaW1lPU1hdGgucm91bmQoTmIoKSk7dGhpcy5IPTE1O3RoaXMuTj10aGlzLkZyKGEpO0Euc2V0VGltZW91dChmdW5jdGlvbigpe2IuaW5pdGlhbGl6ZSgpfSwxRTMpO2JkKGZ1bmN0aW9uKCl7Yi56cyhhKX0pfTtrPWtMLnByb3RvdHlwZTtrLmRlbGVnYXRlPWZ1bmN0aW9uKGEsYixjKXt0aGlzLmdldFN0YXRlKCkhPT0yPyh0aGlzLksuSCh0aGlzLkgse3N0YXRlOnRoaXMuZ2V0U3RhdGUoKSwKSmc6dGhpcy5pbml0VGltZSxVZzpNYXRoLnJvdW5kKE5iKCkpLXRoaXMuaW5pdFRpbWV9LHZvaWQgMCxhLmNvbW1hbmRUeXBlKSxjKHtmYWlsdXJlVHlwZTp0aGlzLkh9KSk6dGhpcy5OLmtyKGEsYixjKX07ay5nZXRTdGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk4uZ2V0U3RhdGUoKS5zdGF0ZX07ay56cz1mdW5jdGlvbihhKXt2YXIgYj1BLmxvY2F0aW9uLm9yaWdpbixjPXRoaXMsZD1YYygpO3RyeXt2YXIgZT1kLmNvbnRlbnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxmPWEucGF0aG5hbWUsZz1mW2YubGVuZ3RoLTFdPT09Ii8iP2EudG9TdHJpbmcoKTphLnRvU3RyaW5nKCkrIi8iLGg9YS5vcmlnaW4hPT0iaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20iP2hMKGYpOiIiLGw7TSgxMzMpJiYobD17c2FuZGJveDoiYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ctc2NyaXB0cyJ9KTtYYyhnKyJzd19pZnJhbWUuaHRtbD9vcmlnaW49IitlbmNvZGVVUklDb21wb25lbnQoYikrCmgsdm9pZCAwLGwsdm9pZCAwLGUpO3ZhciBuPWZ1bmN0aW9uKCl7ZC5jb250ZW50RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTtlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7Yy5mYT1lLmNvbnRlbnRXaW5kb3c7ZC5jb250ZW50V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uKHApe3Aub3JpZ2luPT09YS5vcmlnaW4mJmMuTi5rcyhwLmRhdGEpfSk7Yy5pbml0aWFsaXplKCl9KX07ZC5jb250ZW50RG9jdW1lbnQucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSI/bigpOmQuY29udGVudFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe24oKX0pfWNhdGNoKHApe2QucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChkKSx0aGlzLkg9MTEsdGhpcy5LLksodm9pZCAwLHZvaWQgMCx0aGlzLkgscC50b1N0cmluZygpKX19O2suRnI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPWZMKGZ1bmN0aW9uKGQpe3ZhciBlOyhlPWIuZmEpPT0KbnVsbHx8ZS5wb3N0TWVzc2FnZShkLGEub3JpZ2luKX0se3FvOmZ1bmN0aW9uKCl7Yi5SPSEwO2IuSy5LKGMuZ2V0U3RhdGUoKSxjLnN0YXRzKX0sc286ZnVuY3Rpb24oKXt9LHBvOmZ1bmN0aW9uKGQpe2IuUj8oYi5IPShkPT1udWxsP3ZvaWQgMDpkLmZhaWx1cmVUeXBlKXx8MTAsYi5LLkgoYi5ILGMuZ2V0U3RhdGUoKSxjLnN0YXRzLHZvaWQgMCxkPT1udWxsP3ZvaWQgMDpkLmRhdGEpKTooYi5IPShkPT1udWxsP3ZvaWQgMDpkLmZhaWx1cmVUeXBlKXx8NCxiLksuSyhjLmdldFN0YXRlKCksYy5zdGF0cyxiLkgsZD09bnVsbD92b2lkIDA6ZC5kYXRhKSl9LG9uRmFpbHVyZTpmdW5jdGlvbihkKXtiLkg9ZC5mYWlsdXJlVHlwZTtiLksuSChiLkgsYy5nZXRTdGF0ZSgpLGMuc3RhdHMsZC5jb21tYW5kLGQuZGF0YSl9fSk7cmV0dXJuIGN9O2suaW5pdGlhbGl6ZT1mdW5jdGlvbigpe3RoaXMuWnx8dGhpcy5OLmluaXQoKTt0aGlzLlo9ITB9Owp2YXIgbEw9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU7aWYoKGU9akwoYSkpPT1udWxsfHwhZS5kZWxlZ2F0ZSl7dmFyIGY9SWMoKT8xNjo2O2dMKCkuSChmLHZvaWQgMCx2b2lkIDAsYi5jb21tYW5kVHlwZSk7ZCh7ZmFpbHVyZVR5cGU6Zn0pO3JldHVybn1qTChhKS5kZWxlZ2F0ZShiLGMsZCk7fTsKZnVuY3Rpb24gbUwoYSxiLGMsZCl7dmFyIGU9aUwoYSk7aWYoZT09PW51bGwpe2QoIl9pc19zdz1mIisoSWMoKT8xNjo2KSsidGUiKTtyZXR1cm59dmFyIGY9Yj8xOjAsZz1NYXRoLnJvdW5kKE5iKCkpLGgsbD0oaD1qTChlLm9yaWdpbikpPT1udWxsP3ZvaWQgMDpoLmluaXRUaW1lLG49bD9nLWw6dm9pZCAwLHA7TSg0MzIpP3A9V2ooKT92b2lkIDA6QS5sb2NhdGlvbi5ocmVmOnA9QS5sb2NhdGlvbi5ocmVmO2xMKGUub3JpZ2luLHtjb21tYW5kVHlwZTowLHBhcmFtczp7dXJsOmEsbWV0aG9kOmYsdGVtcGxhdGVzOmMsYm9keTpifHwiIixwcm9jZXNzUmVzcG9uc2U6ITAsc2luY2VJbml0Om4sYXR0cmlidXRpb25SZXBvcnRpbmc6ITAscmVmZXJlcjpwLHN0cmljdDpNKDU4NCl9fSxmdW5jdGlvbigpe30sZnVuY3Rpb24ocSl7dmFyIHI9Il9pc19zdz1mIitxLmZhaWx1cmVUeXBlLHQsdT0odD1qTChlLm9yaWdpbikpPT0KbnVsbD92b2lkIDA6dC5nZXRTdGF0ZSgpO3UhPT12b2lkIDAmJihyKz0icyIrdSk7ZChuP3IrKCJ0IituKTpyKyJ0ZSIpfSk7fTtmdW5jdGlvbiBuTChhKXtpZihJZig0NykmJmRJKGEsImNjZF9hZGRfMXBfZGF0YSIsITEpJiZXaigpKXt2YXIgYj1hLk07aWYoSWMoKSYmYmcoImludGVybmFsX3N3X2FsbG93ZWQiLCIiKSl7dmFyIGM9ZWsoYiksZD1XaigpP1hqKCk6dm9pZCAwLGU7ZT1kP3twYXRoOmQsZW86ImZ1bGwifTpjP3twYXRoOmMsZW86ImxpdGUifTp2b2lkIDA7aWYoZSl7dmFyIGY9ZS5lbyxnPW5ldyBVUkwoZS5wYXRoLEEubG9jYXRpb24ub3JpZ2luKTtpZihnLm9yaWdpbj09PUEubG9jYXRpb24ub3JpZ2luJiZweShmKT09PXZvaWQgMCl7dmFyIGg9b20oam0uYmEuT2gse30pO2hbZl18fChoW2ZdPW5ldyBueShnKSl9fX19fTt2YXIgb0w9ZnVuY3Rpb24oYSl7bkwoYSl9Owp2YXIgcEw9ZnVuY3Rpb24oYSl7aWYoIVEoYSxILkouSmEpJiYhYS5pc0Fib3J0ZWQpaWYoUShhLEguSi5kYSkhPT1YLlYueGEpUShhLEguSi5YbSkmJlUoYSxGLkQuSmgsIjEiKSxJeihhKTtlbHNle3ZhciBiPVEoYSxILkouWWEpLGM9UihhLEYuRC5CYyksZD1RKGEsSC5KLmZkKSxlPUlmKDQ3KSYmZEkoYSwiY2NkX2VuYWJsZV9jbSIsITEpLGY9WG8oZnApJiZRKGEsSC5KLndkKSYmZTtmJiYoVShhLEYuRC5KaCwiMSIpLFEoYSxILkouSWgpJiYoVihhLEguSi5ZYSksVShhLEYuRC5CYyksVihhLEguSi5mZCwhMSkpKTt2YXIgZz1ydihtdik7VihhLEguSi5nbixnKTtmb3IodmFyIGgsbD1bXSxuPW0ocXYpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1wLnZhbHVlLHI9Z1txLnBiXTtpZihyPT09dm9pZCAwfHxyPHEuT2cpYnJlYWs7bC5wdXNoKHIudG9TdHJpbmcoKSl9KGg9bC5qb2luKCJ+IikpJiZVKGEsIl8mZ2NsX2N0ciIsaCk7dmFyIHQ7dmFyIHU9e3JhbmRvbTpRKGEsCkguSi5FYiksbGFiZWw6UihhLEYuRC5HZCl9LHY9UShhLEguSi5HYSkseD13digpO3g/KHl2KFt1XSx2KSx0PXgubGVuZ3RoPT09MD97cmFuZG9tOjAsbGFiZWw6IjAifTp4WzBdKTp0PXZvaWQgMDt2YXIgeT10O3kmJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSx7bGFzdF9yYW5kb206eS5yYW5kb20sbGFzdF9sYWJlbDp5LmxhYmVsfSk7SXooYSk7aWYoUShhLEguSi5vYikmJlhvKGZwKSl7dmFyIHo9WnUoYSx7TTp1QyhhLk0pfSk7Vih6LEguSi5kYSxYLlYuWmQpO0l6KHopfWlmKFEoYSxILkoubGopKXt2YXIgQz1adShhLHtNOnVDKGEuTSl9KTtWKEMsSC5KLmRhLFguVi56ZCk7SXooQyl9aWYoZil7dmFyIEQ9WnUoYSx7TTp1QyhhLk0pfSk7VShELEYuRC5KaCwiMiIpO1YoRCxILkouRWMsITApO1YoRCxILkouZmQsZCk7VihELEguSi5ZYSxiKTtVKEQsRi5ELkJjLGMpO0l6KEQpfX19O3ZhciBxTD1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKT09PVguVi54YTtpZighYnx8YS5ldmVudE5hbWU9PT1GLkQuSWJ8fGEuTS5pc0d0bUV2ZW50KWEuY29weVRvSGl0RGF0YShGLkQuSGEpLGImJihhLmNvcHlUb0hpdERhdGEoRi5ELkZmKSxhLmNvcHlUb0hpdERhdGEoRi5ELkRmKSxhLmNvcHlUb0hpdERhdGEoRi5ELkVmKSxhLmNvcHlUb0hpdERhdGEoRi5ELkNmKSxVKGEsRi5ELndpLEYuRC5JYiksYS5jb3B5VG9IaXREYXRhKEYuRC5TZCksYS5jb3B5VG9IaXREYXRhKEYuRC5RZCksYS5jb3B5VG9IaXREYXRhKEYuRC5SZCkpfTt2YXIgckw9ZnVuY3Rpb24oKXt2YXIgYT1IYyYmSGMudXNlckFnZW50fHwiIjtpZihhLmluZGV4T2YoIlNhZmFyaSIpPDB8fC9DaHJvbWV8Q29hc3R8T3BlcmF8RWRnfFNpbGt8QW5kcm9pZC8udGVzdChhKSlyZXR1cm4hMTt2YXIgYj0oL1ZlcnNpb25cLyhbXGRcLl0rKS8uZXhlYyhhKXx8W10pWzFdfHwiIjtpZihiPT09IiIpcmV0dXJuITE7Zm9yKHZhciBjPVsiMTQiLCIxIiwiMSJdLGQ9Yi5zcGxpdCgiLiIpLGU9MDtlPGQubGVuZ3RoO2UrKyl7aWYoY1tlXT09PXZvaWQgMClyZXR1cm4hMDtpZihkW2VdIT09Y1tlXSlyZXR1cm4gTnVtYmVyKGRbZV0pPk51bWJlcihjW2VdKX1yZXR1cm4gZC5sZW5ndGg+PWMubGVuZ3RofTtmdW5jdGlvbiBzTCgpe3ZhciBhO2E9YT09PXZvaWQgMD9kb2N1bWVudDphO3ZhciBiO3JldHVybiEoKGI9YS5mZWF0dXJlUG9saWN5KT09bnVsbHx8IWIuYWxsb3dlZEZlYXR1cmVzKCkuaW5jbHVkZXMoImF0dHJpYnV0aW9uLXJlcG9ydGluZyIpKX07dmFyIHRMPWZ1bmN0aW9uKGEpe1hvKEYuRC5tYSkmJihBLl9ndG1wY209PT0hMHx8ckwoKT9VKGEsRi5ELkZlLCIyIik6c0woKSYmVShhLEYuRC5GZSwiMSIpKTsoT2MoKXx8UWMoKSkmJlYoYSxILkoub2IsITApO1YoYSxILkouWWUsUShhLEguSi5YZSkmJiFYbyhmcCkpO1EoYSxILkouc2EpJiZVKGEsRi5ELnNhLCEwKTthLk0uZXZlbnRNZXRhZGF0YVtILkouYWVdJiZVKGEsRi5ELlZtLCEwKX07dmFyIHVMPWZ1bmN0aW9uKGEpe2EuY29weVRvSGl0RGF0YShGLkQuUGEpO2EuY29weVRvSGl0RGF0YShGLkQuUWEpO2EuY29weVRvSGl0RGF0YShGLkQuZWIpO1EoYSxILkoub2IpP1UoYSxGLkQuV2ksInd3dy5nb29nbGUuY29tIik6VShhLEYuRC5XaSwid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIik7dmFyIGI9TyhhLk0sRi5ELldiKTtiIT09ITAmJmIhPT0hMXx8VShhLEYuRC5XYixiKX07dmFyIHZMPWZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0Lmlkc1tkQ1swXV07aWYoYil7VShhLEYuRC55aSxiKTt2YXIgYz1hLnRhcmdldC5pZHNbZENbMV1dO2MmJlUoYSxGLkQuR2QsYyk7TyhhLk0sRi5ELmloKT09PSEwJiZWKGEsSC5KLnBuLCEwKX1lbHNlIGEuaXNBYm9ydGVkPSEwfTtmdW5jdGlvbiB3TChhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDt2YXIgZT1GcCgpLGY9RHAoZSk7aWYoZi51cmwpaWYoZCl7dmFyIGc9YyhmLnVybCk7YiE9PWcmJlUoYSxGLkQuUGUsZyl9ZWxzZXt2YXIgaD1mLnVybDtiIT09aCYmVShhLEYuRC5QZSxjKGgpKX19O3ZhciB6TD1mdW5jdGlvbihhKXtpZighUShhLEguSi5zYSkpe3ZhciBiPVIoYSxGLkQuTWUpLGM9TyhhLk0sRi5ELnphKSxkPWM7ZHx8KGQ9Yj09PTE/QS50b3AubG9jYXRpb24uaHJlZjpBLmxvY2F0aW9uLmhyZWYpO1UoYSxGLkQuemEseEwoZCkpO2EuY29weVRvSGl0RGF0YShGLkQuVWEsQi5yZWZlcnJlcik7VShhLEYuRC5NYix5TCgpKTthLmNvcHlUb0hpdERhdGEoRi5ELnRiKTt2YXIgZT1xSSgpO1UoYSxGLkQuYmQsZS53aWR0aCsieCIrZS5oZWlnaHQpO3ZhciBmPU0oNTgzKSYmISFjO3dMKGEsZCxmdW5jdGlvbihnKXt2YXIgaD14TChnKTtmJiYoaD1oLnNwbGl0KCI/IilbMF0pO3JldHVybiBofSl9fTsKdmFyIHhMPWZ1bmN0aW9uKGEpe2lmKGEhPW51bGwpe3ZhciBiPVN0cmluZyhhKS5zdWJzdHJpbmcoMCw1MTIpLGM9Yi5pbmRleE9mKCIjIik7cmV0dXJuIGM9PT0tMT9iOmIuc3Vic3RyaW5nKDAsYyl9cmV0dXJuIiJ9LHlMPWZ1bmN0aW9uKCl7dmFyIGE9Qi50aXRsZTtpZihhPT09dm9pZCAwfHxhPT09IiIpcmV0dXJuIiI7YT1lbmNvZGVVUklDb21wb25lbnQoYSk7Zm9yKHZhciBiPTI1NjtiPjAmJktqKGEuc3Vic3RyaW5nKDAsYikpPT09dm9pZCAwOyliLS07cmV0dXJuIEtqKGEuc3Vic3RyaW5nKDAsYikpfHwiIn07ZnVuY3Rpb24gQUwoYSl7VihhLEguSi5KYSwhMCk7VihhLEguSi5FYixOYigpKTtWKGEsSC5KLnluLGEuTS5ldmVudE1ldGFkYXRhW0guSi5KYV0pfTt2YXIgQkw9ZnVuY3Rpb24oYSl7TSg0NykmJmEuY29weVRvSGl0RGF0YShGLkQua2gpfTt2YXIgQ0w9ZnVuY3Rpb24oYSl7dmFyIGI9TSg0NDMpLGM9TSg1NzApO2lmKChifHxjKSYmWG8oZnApKXt2YXIgZD1RKGEsSC5KLllhKTtpZihodyhkKSl7dmFyIGU9UShhLEguSi5HYSk7aWYoYil7dmFyIGY9UShhLEguSi56ail8fFR2KGUpO1UoYSxGLkQueGMsZil9aWYoYyl7dmFyIGc9U3YoZSx7WGg6ITB9KS5paztnJiZVKGEsIl8mZWNzaWQyIixnKX19fX07dmFyIERMPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouUW0pO2ImJlUoYSxGLkQuV2MsYil9O3ZhciBFTD1mdW5jdGlvbihhKXt2YXIgYj1BO2lmKGIuX19nc2FFeHAmJmIuX19nc2FFeHAuaWQpe3ZhciBjPWIuX19nc2FFeHAuaWQ7aWYoeWIoYykpdHJ5e3ZhciBkPU51bWJlcihjKCkpO2lzTmFOKGQpfHxVKGEsRi5ELlBsLGQpfWNhdGNoKGUpe319fTt2YXIgRkw9ZnVuY3Rpb24oYSl7YS5jb3B5VG9IaXREYXRhKEYuRC5OZSk7YS5jb3B5VG9IaXREYXRhKEYuRC5HZSk7YS5jb3B5VG9IaXREYXRhKEYuRC5VZCk7YS5jb3B5VG9IaXREYXRhKEYuRC5JZSk7YS5jb3B5VG9IaXREYXRhKEYuRC5UYyk7YS5jb3B5VG9IaXREYXRhKEYuRC5MZCl9O3ZhciBHTD1mdW5jdGlvbihhKXtpZihYbyhGLkQubWEpKXthLmNvcHlUb0hpdERhdGEoRi5ELmZiKTt2YXIgYj1ubShqbS5iYS5acSk7aWYoYj09PXZvaWQgMCltbShqbS5iYS5hciwhMCk7ZWxzZXt2YXIgYz1ubShqbS5iYS5zaik7VShhLEYuRC5aZixjKyIuIitiKX19fTsKdmFyIE1MPWZ1bmN0aW9uKGEsYil7aWYoYSYmKHpiKGEpJiYoYT1iQyhhKSksYSkpe3ZhciBjPXZvaWQgMCxkPSExLGU9TyhiLEYuRC5rcSk7aWYoZSYmQXJyYXkuaXNBcnJheShlKSl7Yz1bXTtmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKyl7dmFyIGc9YkMoZVtmXSk7ZyYmKGMucHVzaChnKSwoYS5pZD09PWcuaWR8fGEuaWQ9PT1hLmRlc3RpbmF0aW9uSWQmJmEuZGVzdGluYXRpb25JZD09PWcuZGVzdGluYXRpb25JZCkmJihkPSEwKSl9fWlmKCFjfHxkKXt2YXIgaD1PKGIsRi5ELllsKSxsO2lmKGgpe2w9QXJyYXkuaXNBcnJheShoKT9oOltoXTt2YXIgbj1PKGIsRi5ELldsKSxwPU8oYixGLkQuWGwpLHE9TyhiLEYuRC5abCkscj1RbyhPKGIsRi5ELmpxKSksdD1ufHxwLHU9MTthLnByZWZpeCE9PSJVQSJ8fGN8fCh1PTUpO2Zvcih2YXIgdj0wO3Y8bC5sZW5ndGg7disrKWlmKHY8dSlpZihjKUhMKGMsbFt2XSxyLGIse29lOnQsb3B0aW9uczpxfSk7ZWxzZSBpZihhLnByZWZpeD09PQoiQVciJiZhLmlkc1tkQ1sxXV0pe3ZhciB4PWEuaWRzW2RDWzBdXSx5PWEuaWRzW2RDWzFdXSx6PWxbdl0sQz1iLEQ9e29lOnQsb3B0aW9uczpxfTtQKDIyKTtpZih6KXtEPUR8fHt9O3ZhciBJPUlMKEpMLEQseCxDKSxHPXthazp4LGNsOnl9O0Qub2U9PT12b2lkIDAmJihHLmF1dG9yZXBsYWNlPXopO0tMKEcsQyk7SSgyLEQub2UsRyx6LDAsTWIoKSxELm9wdGlvbnMpfX1lbHNlIGlmKGEucHJlZml4PT09IlVBIil7dmFyIE49YS5kZXN0aW5hdGlvbklkLFM9bFt2XSxXPXtvZTp0fTtQKDIzKTtpZihTKXtXPVd8fHt9O3ZhciBlYT1JTChMTCxXLE4pLGphPXt9O1cub2UhPT12b2lkIDA/amEucmVjZWl2ZXI9Vy5vZTpqYS5yZXBsYWNlPVM7amEuZ2Ffd3BpZD1OO2phLmRlc3RpbmF0aW9uPVM7ZWEoMixNYigpLGphKX19fX19fSxITD1mdW5jdGlvbihhLGIsYyxkLGUpe1AoMjEpO2lmKGImJmMpe2U9ZXx8e307Zm9yKHZhciBmPXtjb3VudHJ5TmFtZUNvZGU6YyxkZXN0aW5hdGlvbk51bWJlcjpiLApyZXRyaWV2YWxUaW1lOk1iKCl9LGc9YWwoNCxmdW5jdGlvbigpe3JldHVybnt9fSksaD0wO2g8YS5sZW5ndGg7aCsrKXt2YXIgbD1hW2hdO2dbbC5pZF18fChsJiZsLnByZWZpeD09PSJBVyImJiFmLmFkRGF0YSYmbC5pZHMubGVuZ3RoPj0yPyhmLmFkRGF0YT17YWs6bC5pZHNbZENbMF1dLGNsOmwuaWRzW2RDWzFdXX0sS0woZi5hZERhdGEsZCksZ1tsLmlkXT0hMCk6bCYmbC5wcmVmaXg9PT0iVUEiJiYhZi5nYURhdGEmJihmLmdhRGF0YT17Z2FXcGlkOmwuZGVzdGluYXRpb25JZH0sZ1tsLmlkXT0hMCkpfShmLmdhRGF0YXx8Zi5hZERhdGEpJiZJTChOTCxlLHZvaWQgMCxkKShlLm9lLGYsZS5vcHRpb25zKX19LEtMPWZ1bmN0aW9uKGEsYil7YS5kbWE9JHQoKTthdSgpJiYoYS5kbWFDcHM9WnQoKSk7U3QoYik/YS5ucGE9IjAiOmEubnBhPSIxIn0sSUw9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9QTtpZihlW2EuZnVuY3Rpb25OYW1lXSlyZXR1cm4gYi5ybyYmYmQoYi5ybyksZVthLmZ1bmN0aW9uTmFtZV07CnZhciBmPU9MKCk7ZVthLmZ1bmN0aW9uTmFtZV09ZjtpZihhLmFkZGl0aW9uYWxRdWV1ZXMpZm9yKHZhciBnPTA7ZzxhLmFkZGl0aW9uYWxRdWV1ZXMubGVuZ3RoO2crKyllW2EuYWRkaXRpb25hbFF1ZXVlc1tnXV09ZVthLmFkZGl0aW9uYWxRdWV1ZXNbZ11dfHxPTCgpO2EuaWRLZXkmJmVbYS5pZEtleV09PT12b2lkIDAmJihlW2EuaWRLZXldPWMpO1puKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6MCxldmVudElkOmQ9PW51bGw/dm9pZCAwOmQuZXZlbnRJZCxwcmlvcml0eUlkOmQ9PW51bGw/dm9pZCAwOmQucHJpb3JpdHlJZH0sZEEoImh0dHBzOi8vIiwiaHR0cDovLyIsYS5zY3JpcHRVcmwpLGIucm8sYi50dik7cmV0dXJuIGZ9LE9MPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2EucT1hLnF8fFtdO2EucS5wdXNoKGFyZ3VtZW50cyl9cmV0dXJuIGF9LEpMPXtmdW5jdGlvbk5hbWU6Il9nb29nV2NtSW1wbCIsaWRLZXk6Il9nb29nV2NtQWsiLHNjcmlwdFVybDoid3d3LmdzdGF0aWMuY29tL3djbS9sb2FkZXIuanMifSwKTEw9e2Z1bmN0aW9uTmFtZToiX2dhUGhvbmVJbXBsIixpZEtleToiZ2Ffd3BpZCIsc2NyaXB0VXJsOiJ3d3cuZ3N0YXRpYy5jb20vZ2FwaG9uZS9sb2FkZXIuanMifSxQTD17WW86TGYoMiksZ3I6IjUifSxOTD17ZnVuY3Rpb25OYW1lOiJfZ29vZ0NhbGxUcmFja2luZ0ltcGwiLGFkZGl0aW9uYWxRdWV1ZXM6W0xMLmZ1bmN0aW9uTmFtZSxKTC5mdW5jdGlvbk5hbWVdLHNjcmlwdFVybDoid3d3LmdzdGF0aWMuY29tL2NhbGwtdHJhY2tpbmcvY2FsbC10cmFja2luZ18iKyhQTC5Zb3x8UEwuZ3IpKyIuanMifTt2YXIgUUw9ZnVuY3Rpb24oYSl7UShhLEguSi5zYSl8fE1MKGEudGFyZ2V0LGEuTSk7YS5pc0Fib3J0ZWQ9ITB9O3ZhciBSTD1mdW5jdGlvbihhKXtYbyhGLkQua2EpJiZjeChhKX07dmFyIFNMPWZ1bmN0aW9uKGEpe3ZhciBiPVhvKEYuRC5rYSk/bWooInBzY2RsIik6ImRlbmllZCI7YiE9bnVsbCYmVShhLEYuRC5qaCxiKX07dmFyIFRMPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fX07dmFyIFVMPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5NO2lmKGI9PT12b2lkIDA/MDpiKXt2YXIgZD1jLmdldE1lcmdlZFZhbHVlcyhGLkQuT2EpO1liKGQpJiZVKGEsRi5ELkxpLFliKGQpKX12YXIgZT1PbyhmRChGLkQuT2EpKSxmPWMuZ2V0TWVyZ2VkVmFsdWVzKEYuRC5PYSwxLGUpLGc9Yy5nZXRNZXJnZWRWYWx1ZXMoRi5ELk9hLDIpLGg9WWIobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxmLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sVEwuSCkpLCIuIiksbD1ZYihnLCIuIik7aCYmVShhLEYuRC5YYyxoKTtsJiZVKGEsRi5ELlZjLGwpfTt2YXIgVkw9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi50cSk7YiYmVShhLEYuRC5JbCxiKX07ZnVuY3Rpb24gV0woYSl7dmFyIGI9S0IoITEpO2lmKGIhPW51bGwmJmIuc3RhdHVzKXt2YXIgYz17Z3RiOmIuc3RhdHVzfTtiLmRlbGF5JiYoYy5ndGJkPWIuZGVsYXkpO2EubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSxjKX19O3ZhciBYTD1mdW5jdGlvbihhKXt6bSgpPT09IlVTLUNPIiYmVShhLEYuRC5MZSwxKX07dmFyIFlMPXtSYTp7Q2s6MSx6bjoyLEhuOjMsSW46NCxKbjo1LHduOjZ9fTtZTC5SYVtZTC5SYS5Da109IkFET0JFX0NPTU1FUkNFIjtZTC5SYVtZTC5SYS56bl09IlNRVUFSRVNQQUNFIjtZTC5SYVtZTC5SYS5Ibl09IldPT19DT01NRVJDRSI7WUwuUmFbWUwuUmEuSW5dPSJXT09fQ09NTUVSQ0VfTEVHQUNZIjtZTC5SYVtZTC5SYS5Kbl09IldPUkRfUFJFU1MiO1lMLlJhW1lMLlJhLnduXT0iU0hPUElGWSI7ZnVuY3Rpb24gWkwoYSl7dmFyIGI9QTtyZXR1cm4gS2ooYi5lc2NhcGUoYi5hdG9iKGEpKSl9CmZ1bmN0aW9uICRMKCl7dHJ5e2lmKCFNKDQ5OCkmJiFNKDQyNSkpcmV0dXJuW107dmFyIGE9bm0oam0uYmEubG4pO2lmKEFycmF5LmlzQXJyYXkoYSkpcmV0dXJuIGE7dmFyIGI9W10sYzthOnt0cnl7Yz0hIUIucXVlcnlTZWxlY3Rvcignc2NyaXB0W2RhdGEtcmVxdWlyZW1vZHVsZV49Im1hZ2UvIl0nKTticmVhayBhfWNhdGNoKHkpe31jPSExfWMmJmIucHVzaChZTC5SYS5Dayk7dmFyIGQ7YTp7dHJ5e3ZhciBlPVpMKCJZWE56WlhSekxuTnhkV0Z5WlhOd1lXTmxMbU52YlM4PSIpO2Q9ZT8hIUIucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyY149Ii8vJytlKyciXScpOiExO2JyZWFrIGF9Y2F0Y2goeSl7fWQ9ITF9ZCYmYi5wdXNoKFlMLlJhLnpuKTt2YXIgZjthOntpZihNKDQyNSkpdHJ5e3ZhciBnPVpMKCJjMmh2Y0dsbWVTNWpiMjA9IiksaD1aTCgiYzJodmNHbG1lV05rYmk1amIyMD0iKTtmPWcmJmg/ISFCLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMqPSJjZG4uJytnKyciXSxtZXRhW3Byb3BlcnR5PSJvZzppbWFnZSJdW2NvbnRlbnQqPSJjZG4uJysKKGcrJyJdLGxpbmtbcmVsPSJwcmVjb25uZWN0Il1baHJlZio9ImNkbi4nKSsoZysnIl0sbGlua1tyZWw9InByZWNvbm5lY3QiXVtocmVmKj0iZm9udHMuJykrKGgrJyJdLGxpbmtbcmVsPSJwcmVjb25uZWN0Il1baHJlZio9Iml0ZXJhYmxlLXNob3BpZnkiXSxsaW5rW3JlbD0icHJlY29ubmVjdCJdW2hyZWYqPSJ2LicpKyhnKyciXScpKTohMTticmVhayBhfWNhdGNoKHkpe31mPSExfWYmJmIucHVzaChZTC5SYS53bik7dmFyIGw7YTp7dHJ5e2w9ISFCLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMqPSJ3b29jb21tZXJjZSJdLGxpbmtbaHJlZio9Indvb2NvbW1lcmNlIl0sW2NsYXNzfD0id29vY29tbWVyY2UiXScpO2JyZWFrIGF9Y2F0Y2goeSl7fWw9ITF9bCYmYi5wdXNoKFlMLlJhLkluKTt2YXIgbjthOnt0cnl7dmFyIHAscT0oKHA9Qi5sb2NhdGlvbik9PW51bGw/dm9pZCAwOnAuaG9zdG5hbWUpfHwiIixyLHQ9KChyPUIubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpyLm9yaWdpbil8fAoiIix1PVpMKCJMbmR2Y21Sd2NtVnpjeTVqYjIwPSIpLHY9WkwoIkx5OXpMbmN1YjNKbiIpO249dSYmdj9UYihxLHUpfHwhIUIucXVlcnlTZWxlY3RvcignW3NyY149IicrdCsnL3dwLWNvbnRlbnQiXSxtZXRhW25hbWU9ImdlbmVyYXRvciJdW2NvbnRlbnRePSJXb3JkUHJlc3MgIl0sbGlua1tyZWw9ImRucy1wcmVmZXRjaCJdW2hyZWY9IicrKHYrJyJdJykpOiExO2JyZWFrIGF9Y2F0Y2goeSl7fW49ITF9biYmYi5wdXNoKFlMLlJhLkpuKTt2YXIgeDthOnt0cnl7eD0hIUIucXVlcnlTZWxlY3RvcignW2NsYXNzKj0id29vY29tbWVyY2UiXSxtZXRhW25hbWU9ImdlbmVyYXRvciJdW2NvbnRlbnRePSJXb29Db21tZXJjZSAiXScpO2JyZWFrIGF9Y2F0Y2goeSl7fXg9ITF9eCYmYi5wdXNoKFlMLlJhLkhuKTtVQigpJiZtbShqbS5iYS5sbixiKTtyZXR1cm4gYn1jYXRjaCh5KXt9cmV0dXJuW119O2Z1bmN0aW9uIHdNKGEpe2lmKE0oNDI1KSYmUShhLEguSi5GYykpe3ZhciBiPU5mKDY3LDE1MDApLGM9YS5tZXJnZUhpdERhdGFGb3JLZXksZD1GLkQuVGEsZT17fTtjLmNhbGwoYSxkLGUpfX07dmFyIHhNPSJwbGF0Zm9ybSBwbGF0Zm9ybVZlcnNpb24gYXJjaGl0ZWN0dXJlIG1vZGVsIHVhRnVsbFZlcnNpb24gYml0bmVzcyBmdWxsVmVyc2lvbkxpc3Qgd293NjQiLnNwbGl0KCIgIik7ZnVuY3Rpb24geU0oYSl7dmFyIGI7cmV0dXJuKGI9YS5nb29nbGVfdGFnX2RhdGEpIT1udWxsP2I6YS5nb29nbGVfdGFnX2RhdGE9e319ZnVuY3Rpb24gek0oYSl7dmFyIGIsYztyZXR1cm4oYz0oYj1hLmdvb2dsZV90YWdfZGF0YSk9PW51bGw/dm9pZCAwOmIudWFjaF9wcm9taXNlKSE9bnVsbD9jOm51bGx9ZnVuY3Rpb24gQU0oYSl7dmFyIGIsYztyZXR1cm4gdHlwZW9mKChiPWEubmF2aWdhdG9yKT09bnVsbD92b2lkIDA6KGM9Yi51c2VyQWdlbnREYXRhKT09bnVsbD92b2lkIDA6Yy5nZXRIaWdoRW50cm9weVZhbHVlcyk9PT0iZnVuY3Rpb24ifQpmdW5jdGlvbiBCTShhKXtpZighQU0oYSkpcmV0dXJuIG51bGw7dmFyIGI9eU0oYSk7aWYoYi51YWNoX3Byb21pc2UpcmV0dXJuIGIudWFjaF9wcm9taXNlO3ZhciBjPWEubmF2aWdhdG9yLnVzZXJBZ2VudERhdGEuZ2V0SGlnaEVudHJvcHlWYWx1ZXMoeE0pLnRoZW4oZnVuY3Rpb24oZCl7Yi51YWNoIT1udWxsfHwoYi51YWNoPWQpO3JldHVybiBkfSk7cmV0dXJuIGIudWFjaF9wcm9taXNlPWN9Owp2YXIgQ009ZnVuY3Rpb24oKXt0aGlzLndpbmRvdz1BO3RoaXMuTj1OYn07Q00ucHJvdG90eXBlLlI9ZnVuY3Rpb24oKXtpZihBTSh0aGlzLndpbmRvdykmJih0aGlzLlo9dGhpcy5OKCksIXpNKHRoaXMud2luZG93KSkpe3ZhciBhPUJNKHRoaXMud2luZG93KTthJiZhLnRoZW4oZnVuY3Rpb24oKXtQKDk1KX0pLmNhdGNoKGZ1bmN0aW9uKCl7UCg5Nil9KX19O0NNLnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy53aW5kb3cuZ29vZ2xlX3RhZ19kYXRhLGI7aWYoYSE9bnVsbCYmYS51YWNoKXt2YXIgYz1hLnVhY2gsZD1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMpO2MuZnVsbFZlcnNpb25MaXN0JiYoZC5mdWxsVmVyc2lvbkxpc3Q9Yy5mdWxsVmVyc2lvbkxpc3Quc2xpY2UoMCkpO2I9ZH1lbHNlIGI9bnVsbDtyZXR1cm4gYn07Q00ucHJvdG90eXBlLmZhPWZ1bmN0aW9uKGEpe3ZhciBiPTAsYz10aGlzLGQ9ZnVuY3Rpb24oaCxsKXt0cnl7YShoLGwpfWNhdGNoKG4pe319LAplPXRoaXMuSCgpO2lmKGUpZChlKTtlbHNle3ZhciBmPXpNKHRoaXMud2luZG93KTtpZihmKXtiPU1hdGgubWluKE1hdGgubWF4KGlzRmluaXRlKGIpP2I6MCwwKSwxRTMpO3ZhciBnPXRoaXMud2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtkLktnfHwoZC5LZz0hMCxQKDEwNiksZChudWxsLEVycm9yKCJUaW1lb3V0IikpKX0sYik7Zi50aGVuKGZ1bmN0aW9uKGgpe2QuS2d8fChkLktnPSEwLFAoMTA0KSxjLndpbmRvdy5jbGVhclRpbWVvdXQoZyksZChoKSl9KS5jYXRjaChmdW5jdGlvbihoKXtkLktnfHwoZC5LZz0hMCxQKDEwNSksYy53aW5kb3cuY2xlYXJUaW1lb3V0KGcpLGQobnVsbCxoKSl9KX1lbHNlIGQobnVsbCl9fTtDTS5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybiB0aGlzLlohPT12b2lkIDB9O3ZhciBETT1mdW5jdGlvbigpe3ZhciBhO2E9YT09PXZvaWQgMD9BOmE7cmV0dXJuIEFNKGEpfSxFTT1mdW5jdGlvbihhKXt2YXIgYj17fTtiW0YuRC5jZ109YS5hcmNoaXRlY3R1cmU7CmJbRi5ELmRnXT1hLmJpdG5lc3M7YS5mdWxsVmVyc2lvbkxpc3QmJihiW0YuRC5lZ109YS5mdWxsVmVyc2lvbkxpc3QubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoYy5icmFuZHx8IiIpKyI7IitlbmNvZGVVUklDb21wb25lbnQoYy52ZXJzaW9ufHwiIil9KS5qb2luKCJ8IikpO2JbRi5ELmZnXT1hLm1vYmlsZT8iMSI6IjAiO2JbRi5ELmdnXT1hLm1vZGVsO2JbRi5ELmhnXT1hLnBsYXRmb3JtO2JbRi5ELmlnXT1hLnBsYXRmb3JtVmVyc2lvbjtiW0YuRC5qZ109YS53b3c2ND8iMSI6IjAiO3JldHVybiBifSxGTT1uZXcgQ007dmFyIEdNPWZ1bmN0aW9uKGEpe2lmKCFETSgpKVAoODcpO2Vsc2UgaWYoRk0uSygpKXtQKDg1KTt2YXIgYj1GTS5IKCk7aWYoYil7aWYoYilmb3IodmFyIGM9RU0oYiksZD1tKE9iamVjdC5rZXlzKGMpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtVKGEsZixjW2ZdKX19ZWxzZSBQKDg2KX19O2Z1bmN0aW9uIEhNKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9UShhLEguSi5zZyksZD1kSShhLCJjdXN0b21fZXZlbnRfYWNjZXB0X3J1bGVzIiwhMSkmJiFiO2lmKGMpe3ZhciBlPWMuaW5kZXhPZihhLnRhcmdldC5kZXN0aW5hdGlvbklkKT49MCxmPSEwO1EoYSxILkouQ2MpJiYoZj1RKGEsSC5KLk5iKT09PXZrKCkpO2UmJmY/VihhLEguSi5raSwhMCk6KFYoYSxILkoua2ksITEpLGR8fChhLmlzQWJvcnRlZD0hMCkpO2lmKGEuY2FuQmVBY2NlcHRlZCgpKXt2YXIgZz11aygpLmluZGV4T2YoYS50YXJnZXQuZGVzdGluYXRpb25JZCk+PTAsaD0hMTtpZighZyl7dmFyIGwsbj0obD1uayhhLnRhcmdldC5kZXN0aW5hdGlvbklkKSk9PW51bGw/dm9pZCAwOmwuY2Fub25pY2FsQ29udGFpbmVySWQ7biYmKGg9dmsoKT09PW4pfWd8fGg/UShhLEguSi5raSkmJmEuYWNjZXB0KCk6YS5pc0Fib3J0ZWQ9ITB9ZWxzZSBhLmlzQWJvcnRlZD0hMH19O3ZhciBJTT1mdW5jdGlvbihhKXt2YXIgYj1PKGEuTSxGLkQuWmMpLGM9TyhhLk0sRi5ELlljKTtiJiYhYz8oYS5ldmVudE5hbWUhPT1GLkQud2EmJmEuZXZlbnROYW1lIT09Ri5ELnlmJiZQKDEzMSksYS5pc0Fib3J0ZWQ9ITApOiFiJiZjJiYoUCgxMzIpLGEuaXNBYm9ydGVkPSEwKX07dmFyIEpNPWZ1bmN0aW9uKGEpe2lmKGEuZXZlbnROYW1lPT09Ri5ELndhKXt2YXIgYj1JZigxMSksYz1RKGEsSC5KLkhxKTshKCFNKDU1MCkmJmJ8fGMpfHxhLnRhcmdldC5KYygpfHxZRygiaWRjX2NvbmZpZ19wdiIsYS50YXJnZXQuZGVzdGluYXRpb25JZCl8fChhLmlzQWJvcnRlZD0hMCl9fTt2YXIgTE09ZnVuY3Rpb24oYSxiKXtLTS5OKGEsYil9LE1NPWZ1bmN0aW9uKCl7dGhpcy5IPXt9fTtNTS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuSFthXTtjfHwoYz10aGlzLkhbYV09W10pO2MucHVzaChiKX07TU0ucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5IW2EudGFyZ2V0LmRlc3RpbmF0aW9uSWRdO2lmKCFhLmlzQWJvcnRlZCYmYilmb3IodmFyIGM9ZkkoYSksZD0wO2Q8Yi5sZW5ndGg7KytkKXt0cnl7YltkXShjKX1jYXRjaChlKXthLmlzQWJvcnRlZD0hMH1pZihhLmlzQWJvcnRlZClicmVha319O3ZhciBLTT1uZXcgTU07dmFyIE5NPWZ1bmN0aW9uKGEpe0tNLksoYSk7fTt2YXIgT009ZnVuY3Rpb24oYSl7YSYmKEFwKDQ5NSxhKSxBcCg1NjcsYSksQXAoNDUwLGEpLEFwKDQ0MyxhKSxBcCg1ODcsYSksQXAoNTc2LGEpLEFwKDU3MCxhKSxBcCg1ODEsYSksQXAoNjAyLGEpKX0sUE09ZnVuY3Rpb24oYSl7aWYoUShhLEguSi53ZikmJlhvKGZwKSl7dmFyIGI9UShhLEguSi5HYSksYz1RKGEsSC5KLmRhKSE9PVguVi51YiYmUShhLEguSi5kYSkhPT1YLlYuT2ImJlEoYSxILkouZGEpIT09WC5WLkZiJiZhLmV2ZW50TmFtZSE9PUYuRC5KYjtIdihiLGMpO3ZhciBkPUR2W0d2KGIucHJlZml4KV07T00oZCk7VShhLEYuRC5FZCxkKX19O2Z1bmN0aW9uIFFNKCl7cmV0dXJuIGtqKCJkZWR1cGVfZ2NsaWQiLGZ1bmN0aW9uKCl7cmV0dXJuIEF2KCl9KX07dmFyIFJNPS9eKHd3d1wuKT9nb29nbGUoXC5jb20/KT8oXC5bYS16XXsyfXQ/KT8kLyxTTT0vXnd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSQvO2Z1bmN0aW9uIFRNKGEpe2F8fChhPVVNKCkpO3JldHVybiBhLk50PyExOmEubnN8fGEucXN8fGEudnN8fGEucnN8fGEuRGd8fGEuVGh8fGEuVHJ8fGEuVmg9PT0iYXcuZHMifHxNKDIzNSkmJmEuVmg9PT0iYXcuZHYifHxhLllyPyEwOiExfQpmdW5jdGlvbiBVTSgpe3ZhciBhPXt9LGI9VXEoITApO2EuTnQ9ISFiLl91cDt2YXIgYz1lcygpLGQ9YXQoKTthLm5zPWMuYXchPT12b2lkIDA7YS5xcz1jLmRjIT09dm9pZCAwO2EudnM9Yy53YnJhaWQhPT12b2lkIDA7YS5ycz1jLmdicmFpZCE9PXZvaWQgMDthLlZoPXR5cGVvZiBjLmdjbHNyYz09PSJzdHJpbmciP2MuZ2Nsc3JjOnZvaWQgMDthLkRnPWQuRGc7YS5UaD1kLlRoO3ZhciBlPUIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIjthLllyPVJNLnRlc3QoZSk7YS5Ucj1TTS50ZXN0KGUpO3JldHVybiBhfTtmdW5jdGlvbiBWTSgpe3ZhciBhPUEuX191c3BhcGk7aWYoeWIoYSkpe3ZhciBiPSIiO3RyeXthKCJnZXRVU1BEYXRhIiwxLGZ1bmN0aW9uKGMsZCl7aWYoZCYmYyl7dmFyIGU9Yy51c3BTdHJpbmc7ZSYmUmVnRXhwKCJeW1xcZGEtekEtWi1dezEsMjB9JCIpLnRlc3QoZSkmJihiPWUpfX0pfWNhdGNoKGMpe31yZXR1cm4gYn19Owp2YXIgV009ZnVuY3Rpb24oYSl7dmFyIGI9WG8oZnApO1YoYSxILkouWWUsTyhhLk0sRi5ELm1iKSE9bnVsbCYmTyhhLk0sRi5ELm1iKSE9PSExJiYhYik7dmFyIGM9UShhLEguSi5kaiksZD1PKGEuTSxGLkQudWMpIT09ITEsZT1MSyhhKTtkfHxVKGEsRi5ELkhkLCIxIik7dmFyIGY9SHIoZS5wcmVmaXgpLGc9UShhLEguSi5zYSl8fFEoYSxILkoudWcpfHxRKGEsSC5KLldlKTtjfHxnfHxVKGEsIl8mYXB2YyIsIjAiKTthLk0uaXNHdG1FdmVudCYmVShhLEYuRC5JbCwiZyIpO1UoYSxGLkQuRWQpO1UoYSxGLkQuTWIpO2lmKGImJihVKGEsRi5ELk1iLHlMKCkpLGQpKXtIdihlKTt2YXIgaD1EdltHdihlLnByZWZpeCldO1UoYSxGLkQuRWQsaCk7T00oaCl9aWYoYS5ldmVudE5hbWU9PT1GLkQud2EmJiFnKXt2YXIgbD1PKGEuTSxGLkQuemMpLG49TyhhLk0sRi5ELkRiKXx8e307UEsoe1RuOmQsbW86bixRbzpsLFVuOmV9KTshYyYmWXMoZikmJihWKGEsSC5KLnZkLCEwKSxVKGEsIl8mYXB2YyIsCiIxIikpfWlmKGMpYS5pc0Fib3J0ZWQ9ITA7ZWxzZXthLnRhcmdldC5kZXN0aW5hdGlvbklkJiZVKGEsRi5ELlFlLGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpO1UoYSxGLkQuVWIsYS5ldmVudE5hbWUpO2EuZXZlbnROYW1lPT09Ri5ELndhJiZVKGEsRi5ELlViLEYuRC5zYyk7aWYoUShhLEguSi5zYSkpVShhLEYuRC5VYixGLkQud3ApLFUoYSxGLkQuc2EsIjEiKTtlbHNlIGlmKFEoYSxILkoudWcpKVUoYSxGLkQuVWIsRi5ELkhwKTtlbHNlIGlmKFEoYSxILkouV2UpKVUoYSxGLkQuVWIsRi5ELkVwKTtlbHNle3ZhciBwPWVzKCk7VShhLEYuRC5EZCxwLmdjbGlkKTtVKGEsRi5ELktkLHAuZGNsaWQpO1UoYSxGLkQuQWwscC5nY2xzcmMpO2lmKCFSKGEsRi5ELkRkKSYmIVIoYSxGLkQuS2QpfHxNKDQyMSkpVShhLEYuRC5FZSxwLndicmFpZCksVShhLEYuRC5CZixwLmdicmFpZCk7dmFyIHE9TSg1ODkpLHI9ZnVuY3Rpb24oZmEpe3JldHVybiBmYS5yZXBsYWNlKC9bXD8jXS4qJC8sIiIpfSwKdD0hIU8oYS5NLEYuRC56YSksdT1xP3Q/ZnVuY3Rpb24oZmEpe3JldHVybiB4TChyKGZhKSl9OmZ1bmN0aW9uKGZhKXtyZXR1cm4geEwoZmEucmVwbGFjZSgvIy4qJC8sIiIpKX06cix2PWJ0KHUpO1UoYSxGLkQuemEsdik7dmFyIHg9ISFPKGEuTSxGLkQuVWEpLHk9Qi5yZWZlcnJlcjtVKGEsRi5ELlVhLHE/eD9yKHkpOnkucmVwbGFjZSgvIy4qJC8sIiIpOkIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIik7d0woYSx2LHUsITApO2lmKEtjKXt2YXIgej1MaihSaihLYyksImhvc3QiKTt6JiZVKGEsRi5ELmJtLHopfWlmKCFRKGEsSC5KLldlKSl7dmFyIEM9YXQoKTtVKGEsRi5ELnpmLEMuRGcpO1UoYSxGLkQuQWYsQy5Tcil9dmFyIEQ9VU0oKTtUTShEKSYmVShhLEYuRC5QZCwiMSIpO1UoYSxGLkQuRGwsUU0oKSk7VXEoITEpLl91cD09PSIxIiYmVShhLEYuRC5RbCwiMSIpfXdvLkg9ITA7VShhLEYuRC5TYik7VShhLEYuRC5sYik7aWYoTSg0MjEpKXt2YXIgST1GcihlKTsKSS5sZW5ndGg+MCYmVShhLEYuRC5TYixJLmpvaW4oIi4iKSk7dmFyIEc9RHIoZisiX2F3Iik7Ry5sZW5ndGg+MCYmVShhLEYuRC5sYixHLmpvaW4oIi4iKSl9ZWxzZSBpZighUihhLEYuRC5EZCkmJiFSKGEsRi5ELktkKSYmV3MoZikpe3ZhciBOPUZyKGUpO04ubGVuZ3RoPjAmJlUoYSxGLkQuU2IsTi5qb2luKCIuIikpfWVsc2UgaWYoIVIoYSxGLkQuRWUpJiZiKXt2YXIgUz1EcihmKyJfYXciKTtTLmxlbmd0aD4wJiZVKGEsRi5ELmxiLFMuam9pbigiLiIpKX1VKGEsRi5ELlVsLHFkKCkpO2EuTS5pc0d0bUV2ZW50JiYoYS5NLkVhW0YuRC5SY109ZkQoRi5ELlJjKSk7U3QoYS5NKT9VKGEsRi5ELmRlLCExKTpVKGEsRi5ELmRlLCEwKTtWKGEsSC5KLkJrLCEwKTt2YXIgVz1WTSgpO1chPT12b2lkIDAmJlUoYSxGLkQua2csV3x8ImVycm9yIik7dmFyIGVhPUx0KCk7ZWEmJlUoYSxGLkQuS2UsZWEpO3ZhciBqYT1LdCgpO2phJiZVKGEsRi5ELk9lLGphKTtRKGEsSC5KLlBjKXx8VihhLEguSi5KYSwKITEpfX07CnZhciBYTT1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPyEwOmI7Yz1jPT09dm9pZCAwP3t9OmM7aWYoYS5ldmVudE5hbWU9PT1GLkQuSmImJiFhLk0uaXNHdG1FdmVudCl7dmFyIGQ9TyhhLk0sRi5ELlNmKTtpZih0eXBlb2YgZD09PSJmdW5jdGlvbiImJiFRKGEsSC5KLnNhKSl7dmFyIGU9U3RyaW5nKE8oYS5NLEYuRC5UZikpLGY9ZTtjW2VdJiYoZj1jW2VdKTt2YXIgZz1SKGEsZil8fE8oYS5NLGUpO2lmKGIpe2lmKHR5cGVvZiBkPT09ImZ1bmN0aW9uIilpZihlPT09Ri5ELmxiJiZnIT09dm9pZCAwKXt2YXIgaD1nLnNwbGl0KCIuIik7aC5sZW5ndGg9PT0wP2Qodm9pZCAwKTpoLmxlbmd0aD09PTE/ZChoWzBdKTpkKGgpfWVsc2UgaWYoZT09PUYuRC5xcSYmTSgyNTgpKXt2YXIgbCxuPXt9O1hvKGZwKSYmKG4uYXVpZD1SKGEsRi5ELkVkKSk7dmFyIHA9VU0oKTtpZihUTShwKSluLmdhZF9zb3VyY2U9cC5EZyxuLmdhZF9jYW1wYWlnbmlkPXAuVGgsbi5zZXNzaW9uX3N0YXJ0X3RpbWVfdXNlYz0KKERhdGUubm93KCkqMUUzKS50b1N0cmluZygpLG4ubGFuZGluZ19wYWdlX3VybD1BLmxvY2F0aW9uLmhyZWYsbi5sYW5kaW5nX3BhZ2VfcmVmZXJyZXI9Qi5yZWZlcnJlcixuLmxhbmRpbmdfcGFnZV91c2VyX2FnZW50PUhjLnVzZXJBZ2VudDtlbHNle3ZhciBxPVEoYSxILkouR2EpO24uZ2FkX3NvdXJjZT1ScyhxLnByZWZpeCkuRWd9bD1idG9hKEpTT04uc3RyaW5naWZ5KG4pKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC8sIiIpO2QobCl9ZWxzZSBkKGcpfWVsc2UgZChnKX1hLmlzQWJvcnRlZD0hMH19O3ZhciBZTT1mdW5jdGlvbihhKXtpZihNKDQyNSkmJlEoYSxILkouRmMpKXtmb3IodmFyIGI9WyJfJmFwdmMiLCJ0aWRzIixGLkQuVGEsRi5ELlFpLEYuRC5VYixGLkQuUWUsRi5ELlZjLEYuRC5YY10sYz1tKGV1KGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtpZihlPT09Ri5ELnphKXt2YXIgZj1SKGEsZSk7ZiYmKGY9Zi5yZXBsYWNlKC9bXD8jXS4qJC8sIiIpKTtVKGEsZSxmKX1lbHNlIGIuaW5jbHVkZXMoZSl8fFUoYSxlKX1WKGEsSC5KLlhnKTtWKGEsSC5KLmhkKX19O2Z1bmN0aW9uIFpNKGEpe2lmKGZuLkspaWYod28uSD0hMCxhLmV2ZW50TmFtZT09PUYuRC53YSl6byhhLk0sYS50YXJnZXQuaWQpO2Vsc2V7UShhLEguSi5QYyl8fCh3by5LW2EudGFyZ2V0LmlkXT0hMCk7dmFyIGI9UShhLEguSi5OYik7WkIoYil9fTt2YXIgJE09ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZj1iPT09dm9pZCAwP3t9OmI7Yz1mLlNqPT09dm9pZCAwPyExOmYuU2o7ZD1mLk1qPT09dm9pZCAwPyExOmYuTWo7ZT1mLmtvPT09dm9pZCAwPyExOmYua287ZHx8KGEuTS5pc0d0bUV2ZW50P1EoYSxILkouZGEpIT09WC5WLnhhJiZhLmV2ZW50TmFtZSYmVShhLEYuRC5VYixhLmV2ZW50TmFtZSk6VShhLEYuRC5VYixhLmV2ZW50TmFtZSkpO0diKGEuTS5FYSxmdW5jdGlvbihnLGgpe016W2ddfHxjJiZCb1tnXXx8ZSYmT3pbZ118fFUoYSxnLGgpfSl9O3ZhciBhTj1mdW5jdGlvbihhKXtmb3IodmFyIGI9bShbRi5ELlBhLEYuRC5RYSxGLkQuZWIsRi5ELk5lLEYuRC5HZSxGLkQuVWQsRi5ELkllLEYuRC5UYyxGLkQuTGQsRi5ELmtoLEYuRC5GZixGLkQuRGYsRi5ELkVmLEYuRC5DZixGLkQud2ksRi5ELlNkLEYuRC5RZCxGLkQuUmQsRi5ELnRiXSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpYS5jb3B5VG9IaXREYXRhKGMudmFsdWUpfTtmdW5jdGlvbiBiTihhLGIpe3JldHVybiBrcigiZ3NpZF9kYyIse3ZhbHVlOntqb2luSWQ6YSxsYXN0Sm9pbmVkVGltZU1zOmJ9LGV4cGlyZXM6YiszRTV9KT09PTA/ITA6ITF9Owp2YXIgY049ZnVuY3Rpb24oYSl7aWYoWG8oZnApKXt2YXIgYjthOnt2YXIgYz1ucigiZ3NpZF9kYyIpO2lmKGMuZXJyb3I9PT0wJiZjLnZhbHVlJiZ0eXBlb2YgYy52YWx1ZT09PSJvYmplY3QiKXt2YXIgZD1jLnZhbHVlO2lmKGQudmFsdWUmJnR5cGVvZiBkLnZhbHVlPT09Im9iamVjdCIpe3ZhciBlPWQudmFsdWU7aWYoZS5qb2luSWQmJmUubGFzdEpvaW5lZFRpbWVNcyYmdHlwZW9mIGUuam9pbklkPT09InN0cmluZyImJnR5cGVvZiBlLmxhc3RKb2luZWRUaW1lTXM9PT0ibnVtYmVyIil7Yj1lO2JyZWFrIGF9fX1iPXZvaWQgMH12YXIgZj1iLGc9Zj09bnVsbD92b2lkIDA6Zi5qb2luSWQsaD1OYigpO2lmKCFmfHwhZ3x8Zi5sYXN0Sm9pbmVkVGltZU1zPGgtM0U1KXt2YXIgbD1jYygpO2c9bCYmYk4obCxOYigpKT9sOnZvaWQgMDtnJiZWKGEsSC5KLmhkLCEwKX1lbHNlIGcmJmYubGFzdEpvaW5lZFRpbWVNczxoLTZFNCYmYk4oZi5qb2luSWQsaCkmJlYoYSxILkouaGQsITApO2cmJk0oNDc0KSYmClYoYSxILkouWGcsZyl9fTt2YXIgZE49ZnVuY3Rpb24oYSl7VihhLEguSi53ZixPKGEuTSxGLkQudWMpIT09ITEpO1YoYSxILkouR2EsTEsoYSkpO1YoYSxILkouWGUsTyhhLk0sRi5ELm1iKSE9bnVsbCYmTyhhLk0sRi5ELm1iKSE9PSExKTtWKGEsSC5KLndkLFN0KGEuTSkpfTt2YXIgZU49e3pxOntVdDoiY2QiLGZwOiJjZSIsVnQ6ImNmIixXdDoiY3BmIixYdDoiY3UifX07dmFyIGZOPWZ1bmN0aW9uKGEpe3ZhciBiPWVOLnpxLmZwLGM9TyhhLk0sRi5ELkNiKTtSKGEsRi5ELmVkKXx8VShhLEYuRC5lZCx7fSk7UihhLEYuRC5lZClbYl09Y307ZnVuY3Rpb24gZ04oYSxiKXtiPWI9PT12b2lkIDA/ITA6Yjt2YXIgYz13YihyYi5HVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTHx8W10pO2MmJihVKGEsRi5ELlZmLGMpLGImJnViKCkpfTt2YXIgaE49ZnVuY3Rpb24oYSl7dmFyIGI9YS5NLmdldE1lcmdlZFZhbHVlcyhGLkQuVGEpO2ImJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSxiKX07dmFyIGlOPWZ1bmN0aW9uKGEpe3ZhciBiPU9wKCExKTtVKGEsRi5ELk1lLGIpfTt2YXIgak49ZnVuY3Rpb24oYSl7UShhLEguSi53ZCk/VShhLEYuRC5kZSwiMCIpOlUoYSxGLkQuZGUsIjEiKX07dmFyIGtOPWZ1bmN0aW9uKGEsYil7aWYoYj09PXZvaWQgMHx8Yil7dmFyIGM9Vk0oKTtjIT09dm9pZCAwJiZVKGEsRi5ELmtnLGN8fCJlcnJvciIpfXZhciBkPUx0KCk7ZCYmVShhLEYuRC5LZSxkKTt2YXIgZT1LdCgpO2UmJlUoYSxGLkQuT2UsZSl9O3ZhciBsTj1mdW5jdGlvbihhKXt2YXIgYj1ubShqbS5iYS5raiksYz1FKDUpO2ImJmJbY10mJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSx7cmV0cnk6IjEifSl9O3ZhciBtTj1mdW5jdGlvbihhKXtVcSghMSkuX3VwPT09IjEiJiZVKGEsRi5ELktpLCIxIil9Owp2YXIgbk49ZnVuY3Rpb24oYSxiLGMpe2lmKGEhPT12b2lkIDApcmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/YS5tYXAoZnVuY3Rpb24oKXtyZXR1cm57bW9kZToibSIsbG9jYXRpb246YixzZWxlY3RvcjpjfX0pOnttb2RlOiJtIixsb2NhdGlvbjpiLHNlbGVjdG9yOmN9fSxvTj1mdW5jdGlvbihhLGIsYyxkKXtpZighYylyZXR1cm4hMTtmb3IodmFyIGU9U3RyaW5nKGMudmFsdWUpLGYsZz12b2lkIDAsaD1lLnJlcGxhY2UoL1xbIj8nPy9nLCIuIikucmVwbGFjZSgvIj8nP1xdL2csIiIpLnNwbGl0KCIsIikubWFwKGZ1bmN0aW9uKHUpe3JldHVybiB1LnRyaW0oKX0pLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdSYmIVNiKHUsIiMiKSYmIVNiKHUsIi4iKX0pLGw9MDtsPGgubGVuZ3RoO2wrKyl7dmFyIG49aFtsXTtpZihTYihuLCJkYXRhTGF5ZXIuIikpZj11QShuLnN1YnN0cmluZygxMCkpLGc9bk4oZiwiZCIsbik7ZWxzZXt2YXIgcD1uLnNwbGl0KCIuIik7Zj1BW3Auc2hpZnQoKV07CmZvcih2YXIgcT0wO3E8cC5sZW5ndGg7cSsrKWY9ZiYmZltwW3FdXTtnPW5OKGYsImoiLG4pfWlmKGYhPT12b2lkIDApYnJlYWt9aWYoZj09PXZvaWQgMCl0cnl7dmFyIHI9Qi5xdWVyeVNlbGVjdG9yQWxsKGUpO2lmKHImJnIubGVuZ3RoPjApe2Y9W107Zm9yKHZhciB0PTA7dDxyLmxlbmd0aCYmdDwoYj09PSJlbWFpbCJ8fGI9PT0icGhvbmVfbnVtYmVyIj81OjEpO3QrKylmLnB1c2goZmQoclt0XSl8fExiKHJbdF0udmFsdWUpKTtmPWYubGVuZ3RoPT09MT9mWzBdOmY7Zz1uTihmLCJjIixlKX19Y2F0Y2godSl7UCgxNDkpfXJldHVybiBmPyhhW2JdPWYsZCYmZyYmKGRbYl09ZyksITApOiExfTsKdmFyIHBOPWZ1bmN0aW9uKGEpe2lmKGRJKGEsImNjZF9hZGRfMXBfZGF0YSIsITEpJiZYbyhmcCkpe3ZhciBiPWEuTS5pYltGLkQubG1dO2lmKENkKGIpJiZiLmVuYWJsZV9jb2RlKXt2YXIgYz1PKGEuTSxGLkQuQWMpO2lmKGM9PT1udWxsKVYoYSxILkouR24sbnVsbCk7ZWxzZSBpZihiLmVuYWJsZV9jb2RlJiZDZChjKSYmKFp2KGMpLFYoYSxILkouR24sYykpLENkKGIuc2VsZWN0b3JzKSl7dmFyIGQ9SC5KLmlyLGU7dmFyIGY9Yi5zZWxlY3RvcnMsZz1NKDUyMyk7Zz1nPT09dm9pZCAwPyExOmc7aWYoZil7dmFyIGg9e30sbD0hMSxuPXt9O2w9b04oaCwiZW1haWwiLGYuZW1haWwsbil8fGw7bD1vTihoLCJwaG9uZV9udW1iZXIiLGYucGhvbmUsbil8fGw7aC5hZGRyZXNzPVtdO2Zvcih2YXIgcD1mLm5hbWVfYW5kX2FkZHJlc3N8fFtdLHE9MDtxPHAubGVuZ3RoO3ErKyl7dmFyIHI9e30sdD17fTtsPW9OKHIsImZpcnN0X25hbWUiLHBbcV0uZmlyc3RfbmFtZSx0KXx8bDtsPW9OKHIsCiJsYXN0X25hbWUiLHBbcV0ubGFzdF9uYW1lLHQpfHxsO2w9b04ociwic3RyZWV0IixwW3FdLnN0cmVldCx0KXx8bDtsPW9OKHIsImNpdHkiLHBbcV0uY2l0eSx0KXx8bDtsPW9OKHIsInJlZ2lvbiIscFtxXS5yZWdpb24sdCl8fGw7bD1vTihyLCJjb3VudHJ5IixwW3FdLmNvdW50cnksdCl8fGw7bD1vTihyLCJwb3N0YWxfY29kZSIscFtxXS5wb3N0YWxfY29kZSx0KXx8bDtoLmFkZHJlc3MucHVzaChyKTtnJiYoci5fdGFnX21ldGFkYXRhPXQpfWcmJihoLl90YWdfbWV0YWRhdGE9bik7ZT1sP2g6dm9pZCAwfWVsc2UgZT12b2lkIDA7VihhLGQsZSl9fX19Owp2YXIgcU49ZnVuY3Rpb24oYSl7dmFyIGI9ZnVuY3Rpb24oZSl7VUwoZSwhMCl9LGM9ZnVuY3Rpb24oZSl7cE4oZSl9LGQ9ZnVuY3Rpb24oZSl7JE0oZSx7U2o6ITAsTWo6ITB9KX07c3dpdGNoKGEpe2Nhc2UgWC5WLlFrOnJldHVybltQRixBTCxNRixITSxKTSxJTV07Y2FzZSBYLlYuS2E6cmV0dXJuW2ZOLFhMLFpNLGlOLGNOLFdNLGQsU0ssYU4sR0wsYix3TSxsTixoTixWTCxvTCxOTSxmdW5jdGlvbihlKXtnTihlLCExKX0sV0wsWU0scExdO2Nhc2UgWC5WLk1rOnJldHVybltaTSxRTF07Y2FzZSBYLlYueGE6cmV0dXJuW1VLLFhMLFpNLGROLHZMLHRMLCRNLFNLLGlOLFZMLHpMLEdMLGIscUwsRkwsQkwsRUwsdUwsak4sb0wsa04sbU4sTEYsYyxmTixTTCxsTixoTixQTSxYTSxHTSxOTSxUSyxETCxRSyxSTCxnTixXTCxwTF07Y2FzZSBYLlYudWI6cmV0dXJuW1hMLFpNLGROLHZMLCRNLFNLLGlOLHpMLEdMLGIsVkwscUwsRUwsdUwsak4sb0wsa04sTEYsU0wsZk4sbE4saE4sUE0sR00sCk5NLFRLLGdOLFdMLHBMXTtjYXNlIFguVi5PYjpyZXR1cm5bWEwsWk0sZE4sdkwsU0ssR0wsYixqTixvTCxpTixMRixjLFNMLGZOLGxOLGhOLFZMLFBNLEdNLE5NLFRLLGdOLFdMLHBMXTtjYXNlIFguVi5GYjpyZXR1cm5bWEwsWk0sZE4sdkwsU0ssR0wsYixqTixvTCxpTixWTCxMRixjLFNMLGZOLGxOLGhOLFBNLEdNLE5NLFRLLENMLGdOLFdMLHBMXTtkZWZhdWx0OnJldHVybltdfX0sck49ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXFOKFEoYSxILkouZGEpKSxjPTA7YzxiLmxlbmd0aCYmKGJbY10oYSksIWEuaXNBYm9ydGVkKTtjKyspO30sc049ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9bmV3IGFJKGIudGFyZ2V0LGIuZXZlbnROYW1lLGIuTSksZD1tKGV1KGIpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtVKGMsZixSKGIsZikpfWZvcih2YXIgZz1tKE9iamVjdC5rZXlzKGIubWV0YWRhdGEpKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9CmgudmFsdWU7VihjLGwsUShiLGwpKX1WKGMsSC5KLmRhLGEpO3JldHVybiBjfSx0Tj1mdW5jdGlvbihhLGIsYyxkKXtmdW5jdGlvbiBlKHUsdil7Zm9yKHZhciB4PW0obCkseT14Lm5leHQoKTsheS5kb25lO3k9eC5uZXh0KCkpe3ZhciB6PXkudmFsdWU7ei5pc0Fib3J0ZWQ9ITE7Vih6LEguSi5KYSwhMCk7Vih6LEguSi5zYSwhMCk7Vih6LEguSi5FYixOYigpKTtWKHosSC5KLnVmLHUpO1YoeixILkoudmYsdil9fWZ1bmN0aW9uIGYodSl7Zm9yKHZhciB2PXt9LHg9MDt4PGwubGVuZ3RoO3Y9e1ZhOnZvaWQgMH0seCsrKWlmKHYuVmE9bFt4XSwhdXx8dShRKHYuVmEsSC5KLmRhKSkpaWYoIVEodi5WYSxILkouc2EpfHxRKHYuVmEsSC5KLmRhKSE9PVguVi5LYXx8USh2LlZhLEguSi52ZCkpaWYoIVEodi5WYSxILkouc2EpfHxRKHYuVmEsSC5KLmRhKT09PVguVi5LYXx8WG8ocikpck4obFt4XSksUSh2LlZhLEguSi5KYSl8fHYuVmEuaXNBYm9ydGVkfHxRKHYuVmEsSC5KLmRhKSE9PVguVi5LYXx8CiFRKHYuVmEsSC5KLnZkKXx8KE1LKHYuVmEsZnVuY3Rpb24oKXtmKGZ1bmN0aW9uKHkpe3JldHVybiB5PT09WC5WLkthfSl9KSxSKHYuVmEsRi5ELlpmKT09PXZvaWQgMCYmdD09PXZvaWQgMCYmKHQ9cG0oam0uYmEuc2osZnVuY3Rpb24oeSl7cmV0dXJuIGZ1bmN0aW9uKCl7cW0oam0uYmEuc2osdCk7dD12b2lkIDA7WG8oRi5ELm1hKSYmKFYoeS5WYSxILkoudWcsITApLFYoeS5WYSxILkouc2EsITEpLFUoeS5WYSxGLkQuc2EpLGYoZnVuY3Rpb24oeil7cmV0dXJuIHo9PT1YLlYuS2F9KSxWKHkuVmEsSC5KLnVnLCExKSl9fSh2KSkpKX12YXIgZz1kLmlzR3RtRXZlbnQmJmE9PT0iIj97aWQ6IiIscHJlZml4OiIiLGRlc3RpbmF0aW9uSWQ6IiIsaWRzOltdLEpjOmZ1bmN0aW9uKCl7cmV0dXJuITF9fTpiQyhhLGQuaXNHdG1FdmVudCk7aWYoZyl7dmFyIGg9bmV3IGFJKGcsYixkKTtWKGgsSC5KLmRhLFguVi5Rayk7ck4oaCk7aWYoIWguaXNBYm9ydGVkKXt2YXIgbD1bXTtpZihkLmV2ZW50TWV0YWRhdGFbSC5KLkRjXSl7dmFyIG49CmQuZXZlbnRNZXRhZGF0YVtILkouRGNdO0FycmF5LmlzQXJyYXkobil8fChuPVtuXSk7Zm9yKHZhciBwPTA7cDxuLmxlbmd0aDtwKyspe3ZhciBxPXNOKG5bcF0saCk7TSg0ODgpfHxWKHEsSC5KLkphLCExKTtsLnB1c2gocSl9fWVsc2UgYj09PUYuRC53YSYmbC5wdXNoKHNOKFguVi5NayxoKSksYiE9PUYuRC5KYiYmbC5wdXNoKHNOKFguVi5LYSxoKSksbC5wdXNoKHNOKFguVi54YSxoKSksYiE9PUYuRC5KYiYmKGwucHVzaChzTihYLlYuT2IsaCkpLGwucHVzaChzTihYLlYuRmIsaCkpLGwucHVzaChzTihYLlYudWIsaCkpKTt2YXIgcj1bRi5ELmthLEYuRC5tYV0sdD12b2lkIDA7YnAoZnVuY3Rpb24oKXtmKCk7dmFyIHU9IVhvKFtGLkQuWGFdKTtpZighWG8ocil8fHUpe3ZhciB2PXI7dSYmKHY9W10uY29uY2F0KHcodiksW0YuRC5YYV0pKTthcChmdW5jdGlvbih4KXt2YXIgeSx6LEM7eT14LmNvbnNlbnRFdmVudElkO3o9eC5jb25zZW50UHJpb3JpdHlJZDtDPXguY29uc2VudFR5cGVzOwplKHkseik7QyYmQy5sZW5ndGg9PT0xJiZDWzBdPT09Ri5ELlhhP2YoZnVuY3Rpb24oRCl7cmV0dXJuIEQ9PT1YLlYudWJ9KTpmKCl9LHYpfX0scil9fX07ZnVuY3Rpb24gRk8oYSxiLGMsZCl7fUZPLlA9ImludGVybmFsLmV4ZWN1dGVFdmVudFByb2Nlc3NvciI7ZnVuY3Rpb24gR08oYSl7dmFyIGI7cmV0dXJuIFVkKGIsdGhpcy5ULDEpfUdPLlA9ImludGVybmFsLmV4ZWN1dGVKYXZhc2NyaXB0U3RyaW5nIjtmdW5jdGlvbiBITyhhKXt2YXIgYjtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGM9QTt0cnl7Yj1LaihjLmVzY2FwZShjLmF0b2IoYSkpKX1jYXRjaChkKXtyZXR1cm59cmV0dXJuIGJ9O2Z1bmN0aW9uIElPKGEpe3ZhciBiPSIiO3JldHVybiBifUlPLlA9ImludGVybmFsLmdlbmVyYXRlQ2xpZW50SWQiO2Z1bmN0aW9uIEpPKGEpe3ZhciBiPXt9O3JldHVybiBVZChiKX1KTy5QPSJpbnRlcm5hbC5nZXRBZHNDb29raWVXcml0aW5nT3B0aW9ucyI7ZnVuY3Rpb24gS08oYSxiKXt2YXIgYz0hMTtyZXR1cm4gY31LTy5QPSJpbnRlcm5hbC5nZXRBbGxvd0FkUGVyc29uYWxpemF0aW9uIjtmdW5jdGlvbiBMTygpe3ZhciBhO3JldHVybiBhfUxPLlA9ImludGVybmFsLmdldEFuZFJlc2V0RXZlbnRVc2FnZSI7ZnVuY3Rpb24gTU8oYSxiKXtiPWI9PT12b2lkIDA/ITA6Yjt2YXIgYztyZXR1cm4gY31NTy5QPSJpbnRlcm5hbC5nZXRBdWlkIjtmdW5jdGlvbiBOTygpe3ZhciBhPVtdO3JldHVybiBVZChhKX1OTy5QPSJpbnRlcm5hbC5nZXRDb250YWluZXJJZHMiO2Z1bmN0aW9uIE9PKCl7dmFyIGE9bmV3IGtiO0wodGhpcywicmVhZF9jb250YWluZXJfZGF0YSIpLGEuc2V0KCJjb250YWluZXJJZCIsaWcpLGEuc2V0KCJ2ZXJzaW9uIixrZyksYS5zZXQoImVudmlyb25tZW50TmFtZSIsamcpLGEuc2V0KCJkZWJ1Z01vZGUiLGxnKSxhLnNldCgicHJldmlld01vZGUiLG1nLlBvKSxhLnNldCgiZW52aXJvbm1lbnRNb2RlIixtZy5LciksYS5zZXQoImZpcnN0UGFydHlTZXJ2aW5nIixhaygpKSxhLnNldCgiY29udGFpbmVyVXJsIixLYyksYS5zZXQoImlzR29vZ2xlT25seU1vZGUiLElmKDYyKSksYS5aYSgpO3JldHVybiBhfU9PLnB1YmxpY05hbWU9ImdldENvbnRhaW5lclZlcnNpb24iO2Z1bmN0aW9uIFBPKGEsYil7Yj1iPT09dm9pZCAwPyEwOmI7dmFyIGM7cmV0dXJuIGN9UE8ucHVibGljTmFtZT0iZ2V0Q29va2llVmFsdWVzIjtmdW5jdGlvbiBRTygpe3ZhciBhPSIiO3JldHVybiBhfVFPLlA9ImludGVybmFsLmdldENvcmVQbGF0Zm9ybVNlcnZpY2VzUGFyYW0iO2Z1bmN0aW9uIFJPKCl7cmV0dXJuIHltKCl9Uk8uUD0iaW50ZXJuYWwuZ2V0Q291bnRyeUNvZGUiO2Z1bmN0aW9uIFNPKCl7dmFyIGE9W107YT10aygpO3JldHVybiBVZChhKX1TTy5QPSJpbnRlcm5hbC5nZXREZXN0aW5hdGlvbklkcyI7ZnVuY3Rpb24gVE8oYSl7dmFyIGI9bmV3IGtiO3JldHVybiBifVRPLlA9ImludGVybmFsLmdldERldmVsb3BlcklkcyI7ZnVuY3Rpb24gVU8oYSl7dmFyIGI7cmV0dXJuIGJ9VU8uUD0iaW50ZXJuYWwuZ2V0RWNzaWRDb29raWVWYWx1ZSI7ZnVuY3Rpb24gVk8oYSxiKXt2YXIgYz1udWxsO3JldHVybiBjfVZPLlA9ImludGVybmFsLmdldEVsZW1lbnRBdHRyaWJ1dGUiO2Z1bmN0aW9uIFdPKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9V08uUD0iaW50ZXJuYWwuZ2V0RWxlbWVudEJ5SWQiO2Z1bmN0aW9uIFhPKGEpe3ZhciBiPSIiO3JldHVybiBifVhPLlA9ImludGVybmFsLmdldEVsZW1lbnRJbm5lclRleHQiO2Z1bmN0aW9uIFlPKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9WU8uUD0iaW50ZXJuYWwuZ2V0RWxlbWVudFBhcmVudCI7ZnVuY3Rpb24gWk8oYSl7dmFyIGI9bnVsbDtyZXR1cm4gYn1aTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50UHJldmlvdXNTaWJsaW5nIjtmdW5jdGlvbiAkTyhhLGIpe3ZhciBjPW51bGw7cmV0dXJuIFVkKGMpfSRPLlA9ImludGVybmFsLmdldEVsZW1lbnRQcm9wZXJ0eSI7ZnVuY3Rpb24gYVAoYSl7dmFyIGI7cmV0dXJuIGJ9YVAuUD0iaW50ZXJuYWwuZ2V0RWxlbWVudFZhbHVlIjtmdW5jdGlvbiBiUChhKXt2YXIgYj0wO3JldHVybiBifWJQLlA9ImludGVybmFsLmdldEVsZW1lbnRWaXNpYmlsaXR5UmF0aW8iO2Z1bmN0aW9uIGNQKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9Y1AuUD0iaW50ZXJuYWwuZ2V0RWxlbWVudHNCeUNzc1NlbGVjdG9yIjsKZnVuY3Rpb24gZFAoYSl7dmFyIGI7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO0wodGhpcywicmVhZF9ldmVudF9kYXRhIixhKTt2YXIgYzthOnt2YXIgZD1hLGU9WEYodGhpcykub3JpZ2luYWxFdmVudERhdGE7aWYoZSl7Zm9yKHZhciBmPWUsZz17fSxoPXt9LGw9e30sbj1bXSxwPWQuc3BsaXQoIlxcXFwiKSxxPTA7cTxwLmxlbmd0aDtxKyspe2Zvcih2YXIgcj1wW3FdLnNwbGl0KCJcXC4iKSx0PTA7dDxyLmxlbmd0aDt0Kyspe2Zvcih2YXIgdT1yW3RdLnNwbGl0KCIuIiksdj0wO3Y8dS5sZW5ndGg7disrKW4ucHVzaCh1W3ZdKSx2IT09dS5sZW5ndGgtMSYmbi5wdXNoKGwpO3QhPT1yLmxlbmd0aC0xJiZuLnB1c2goaCl9cSE9PXAubGVuZ3RoLTEmJm4ucHVzaChnKX1mb3IodmFyIHg9W10seT0iIix6PW0obiksQz16Lm5leHQoKTshQy5kb25lO0M9CnoubmV4dCgpKXt2YXIgRD1DLnZhbHVlO0Q9PT1sPyh4LnB1c2goeSkseT0iIik6eT1EPT09Zz95KyJcXCI6RD09PWg/eSsiLiI6eStEfXkmJngucHVzaCh5KTtmb3IodmFyIEk9bSh4KSxHPUkubmV4dCgpOyFHLmRvbmU7Rz1JLm5leHQoKSl7aWYoZj09bnVsbCl7Yz12b2lkIDA7YnJlYWsgYX1mPWZbRy52YWx1ZV19Yz1mfWVsc2UgYz12b2lkIDB9Yj1VZChjLHRoaXMuVCwxKTtyZXR1cm4gYn1kUC5QPSJpbnRlcm5hbC5nZXRFdmVudERhdGEiO2Z1bmN0aW9uIGVQKGEpe3ZhciBiPW51bGw7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO0wodGhpcywicmVhZF9kb21fZWxlbWVudHMiLCJjc3MiLGEpO3RyeXt2YXIgYz1CLnF1ZXJ5U2VsZWN0b3IoYSk7YyYmKGI9bmV3IFBkKGMpKX1jYXRjaChkKXtyZXR1cm4gbnVsbH1yZXR1cm4gYn1lUC5QPSJpbnRlcm5hbC5nZXRGaXJzdEVsZW1lbnRCeUNzc1NlbGVjdG9yIjtmdW5jdGlvbiBmUCgpe3ZhciBhO3JldHVybiBhfWZQLlA9ImludGVybmFsLmdldEdzYUV4cGVyaW1lbnRJZCI7ZnVuY3Rpb24gZ1AoKXtyZXR1cm4gbmV3IFBkKFBrKX1nUC5QPSJpbnRlcm5hbC5nZXRIdG1sSWQiO2Z1bmN0aW9uIGhQKCl7dmFyIGE7cmV0dXJuIGF9aFAuUD0iaW50ZXJuYWwuZ2V0SWZyYW1pbmdTdGF0ZSI7ZnVuY3Rpb24gaVAoYSxiKXt2YXIgYz17fTtyZXR1cm4gVWQoYyl9aVAuUD0iaW50ZXJuYWwuZ2V0TGlua2VyVmFsdWVGcm9tTG9jYXRpb24iO2Z1bmN0aW9uIGpQKCl7dmFyIGE9bmV3IGtiO2lmKGFyZ3VtZW50cy5sZW5ndGghPT0wKXRocm93IEsodGhpcy5nZXROYW1lKCksW10sYXJndW1lbnRzKTt2YXIgYj1WTSgpO2IhPT12b2lkIDAmJmEuc2V0KEYuRC5rZyxifHwiZXJyb3IiKTt2YXIgYz1MdCgpO2MmJmEuc2V0KEYuRC5LZSxjKTt2YXIgZD1LdCgpO2QmJmEuc2V0KEYuRC5PZSxkKTt2YXIgZT1rRi5ncHBTdHJpbmc7ZSYmYS5zZXQoRi5ELnVoLGUpO3ZhciBmPWtGLkg7ZiYmYS5zZXQoRi5ELnRoLGYpO3JldHVybiBhfWpQLlA9ImludGVybmFsLmdldFByaXZhY3lTdHJpbmdzIjtmdW5jdGlvbiBrUChhLGIpe3ZhciBjO2lmKCFsaChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmciXSxhcmd1bWVudHMpO3ZhciBkPSRIKGEpfHx7fTtjPVVkKGRbYl0sdGhpcy5UKTtyZXR1cm4gY31rUC5QPSJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiO2Z1bmN0aW9uIGxQKGEsYil7dmFyIGM7cmV0dXJuIGN9bFAucHVibGljTmFtZT0iZ2V0UXVlcnlQYXJhbWV0ZXJzIjtmdW5jdGlvbiBtUChhLGIpe3ZhciBjO3JldHVybiBjfW1QLnB1YmxpY05hbWU9ImdldFJlZmVycmVyUXVlcnlQYXJhbWV0ZXJzIjtmdW5jdGlvbiBuUChhKXt2YXIgYj0iIjtyZXR1cm4gYn1uUC5wdWJsaWNOYW1lPSJnZXRSZWZlcnJlclVybCI7ZnVuY3Rpb24gb1AoKXtyZXR1cm4gem0oKX1vUC5QPSJpbnRlcm5hbC5nZXRSZWdpb25Db2RlIjtmdW5jdGlvbiBwUChhLGIpe3ZhciBjO3JldHVybiBjfXBQLlA9ImludGVybmFsLmdldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciI7ZnVuY3Rpb24gcVAoYSxiKXt2YXIgYz1udWxsOwpyZXR1cm4gY31xUC5QPSJpbnRlcm5hbC5nZXRTY29wZWRFbGVtZW50c0J5Q3NzU2VsZWN0b3IiO2Z1bmN0aW9uIHJQKCl7dmFyIGE9bmV3IGtiO2Euc2V0KCJ3aWR0aCIsMCk7YS5zZXQoImhlaWdodCIsMCk7cmV0dXJuIGF9clAuUD0iaW50ZXJuYWwuZ2V0U2NyZWVuRGltZW5zaW9ucyI7ZnVuY3Rpb24gc1AoKXt2YXIgYT0iIjtyZXR1cm4gYX1zUC5QPSJpbnRlcm5hbC5nZXRUb3BTYW1lRG9tYWluVXJsIjtmdW5jdGlvbiB0UCgpe3ZhciBhPSIiO3JldHVybiBhfXRQLlA9ImludGVybmFsLmdldFRvcFdpbmRvd1VybCI7ZnVuY3Rpb24gdVAoYSl7dmFyIGI9IiI7aWYoIW1oKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtMKHRoaXMsImdldF91cmwiLGEpO2I9TGooUmooQS5sb2NhdGlvbi5ocmVmKSxhKTtyZXR1cm4gYn11UC5wdWJsaWNOYW1lPSJnZXRVcmwiO2Z1bmN0aW9uIHZQKCl7TCh0aGlzLCJnZXRfdXNlcl9hZ2VudCIpO3JldHVybiBIYy51c2VyQWdlbnR9dlAucHVibGljTmFtZT0iZ2V0VXNlckFnZW50Ijt2UC5QPSJpbnRlcm5hbC5nZXRVc2VyQWdlbnQiO2Z1bmN0aW9uIHdQKCl7dmFyIGE7cmV0dXJuIGE/VWQoRU0oYSkpOmF9d1AuUD0iaW50ZXJuYWwuZ2V0VXNlckFnZW50Q2xpZW50SGludHMiO2Z1bmN0aW9uIHpQKCl7dmFyIGE9QTtyZXR1cm4gYS5nYUdsb2JhbD1hLmdhR2xvYmFsfHx7fX1mdW5jdGlvbiBBUChhLGIpe3ZhciBjPXpQKCk7aWYoYy52aWQ9PT12b2lkIDB8fGImJiFjLmZyb21fY29va2llKWMudmlkPWEsYy5mcm9tX2Nvb2tpZT1ifTtmdW5jdGlvbiBiUShhKXsoYmsoWksoYSkpfHxXaigpKSYmVShhLEYuRC5vbSx6bSgpfHx5bSgpKTshYmsoWksoYSkpJiZXaigpJiZVKGEsRi5ELllpLCI6OiIpfWZ1bmN0aW9uIGNRKGEpe1dqKCkmJihiayhaSyhhKSl8fERtKCl8fFUoYSxGLkQuU2wsITApKX07ZnVuY3Rpb24gaFEoYSxiLGMsZCl7dmFyIGU7aWYoKG5kKCl8fGtkKCkpJiZYaigpJiZYaigpIT09Ii8iKXt2YXIgZj1SaihhKTtlPUlmKDUwKSYmZCYmVGIoZi5wYXRobmFtZSwiL2cvY29sbGVjdCIpPzI6KGR8fCFXaigpfHxEbSgpPzA6VGIoZi5wYXRobmFtZSwiL2dhL2cvYyIpfHxUYihmLnBhdGhuYW1lLCIvYWcvZy9jIikpPzE6MH1lbHNlIGU9MDtzd2l0Y2goZSl7Y2FzZSAyOnZhciBnO2lmKE0oNTQ2KSl7dmFyIGg9VGIoYSwiL2cvY29sbGVjdCIpP2Euc3Vic3RyaW5nKDAsYS5sZW5ndGgtMTApOmEsbD1pUSgpLG49aCtsLHA9alEoIi9nL2NvbGxlY3QiLGIsYyk7Zz17SWM6bixrZjoiIixib2R5OnB9fWVsc2UgZz17SWM6YSxrZjpiLGJvZHk6Y307cmV0dXJuIGc7Y2FzZSAxOnZhciBxO2lmKE0oNTQ3KSl7dmFyIHI9aVEoKSx0PWEuaW5kZXhPZihyKSx1PWEuc3Vic3RyaW5nKDAsdCkrcix2PWpRKGEuc3Vic3RyaW5nKHQrci5sZW5ndGgtMSksYixjKTtxPXtJYzp1LGtmOiIiLApib2R5OnZ9fWVsc2UgcT17SWM6YSxrZjpiLGJvZHk6Y307cmV0dXJuIHE7ZGVmYXVsdDpyZXR1cm57SWM6YSxrZjpiLGJvZHk6Y319fWZ1bmN0aW9uIGlRKCl7dmFyIGE9WGooKTtpZighYSlyZXR1cm4iIjtTYihhLCIvIil8fChhPSIvIithKTtUYihhLCIvIil8fChhKz0iLyIpO3JldHVybiBhfWZ1bmN0aW9uIGpRKGEsYixjKXt2YXIgZD1bYV07YiYmZC5wdXNoKCI/IixiKTtjJiZkLnB1c2goIlxyXG4iLGMpO3JldHVybiBkLmpvaW4oIiIpfTtmdW5jdGlvbiBzUihhKXthLmNvcHlUb0hpdERhdGEoRi5ELmZiKTt2YXIgYj1PKGEuTSxGLkQuV2QpO2ImJihLQyhiLGZ1bmN0aW9uKCl7fSksVShhLEYuRC5XZCxiKSl9O2Z1bmN0aW9uIHZSKGEpe3ZhciBiPWZ1bmN0aW9uKGMpe3JldHVybiEhYyYmYy5jb252ZXJzaW9ufTtWKGEsSC5KLm1nLGIoWEsoYSkpKTtRKGEsSC5KLm5nKSYmVihhLEguSi5ZbSxiKFhLKGEsImZpcnN0X3Zpc2l0IikpKTtRKGEsSC5KLlRlKSYmVihhLEguSi5ibixiKFhLKGEsInNlc3Npb25fc3RhcnQiKSkpfTt2YXIgQVI9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9U3RyaW5nKHpSLmNvb2tpZSkuc3BsaXQoIjsiKSxkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPWNbZF0uc3BsaXQoIj0iKSxmPWVbMF0udHJpbSgpO2lmKGYmJmEoZikpe3ZhciBnPWUuc2xpY2UoMSkuam9pbigiPSIpLnRyaW0oKTtnJiYoZz1kZWNvZGVVUklDb21wb25lbnQoZykpO3ZhciBoPXZvaWQgMCxsPXZvaWQgMDsoKGg9YilbbD1mXXx8KGhbbF09W10pKS5wdXNoKGcpfX1yZXR1cm4gYn07dmFyIEJSPXdpbmRvdyx6Uj1kb2N1bWVudCxDUj1mdW5jdGlvbihhKXt2YXIgYj1CUi5fZ2FVc2VyUHJlZnM7aWYoYiYmYi5pb28mJmIuaW9vKCl8fHpSLmRvY3VtZW50RWxlbWVudC5oYXNBdHRyaWJ1dGUoImRhdGEtZ29vZ2xlLWFuYWx5dGljcy1vcHQtb3V0Iil8fGEmJkJSWyJnYS1kaXNhYmxlLSIrYV09PT0hMClyZXR1cm4hMDt0cnl7dmFyIGM9QlIuZXh0ZXJuYWw7aWYoYyYmYy5fZ2FVc2VyUHJlZnMmJmMuX2dhVXNlclByZWZzPT0ib28iKXJldHVybiEwfWNhdGNoKGYpe31mb3IodmFyIGQ9QVIoZnVuY3Rpb24oZil7cmV0dXJuIGY9PT0iQU1QX1RPS0VOIn0pLkFNUF9UT0tFTnx8W10sZT0wO2U8ZC5sZW5ndGg7ZSsrKWlmKGRbZV09PSIkT1BUX09VVCIpcmV0dXJuITA7cmV0dXJuIHpSLmdldEVsZW1lbnRCeUlkKCJfX2dhT3B0T3V0RXh0ZW5zaW9uIik/ITA6ITF9O3ZhciBNUj0iZ2NsaWQgZGNsaWQgZ2Nsc3JjIHdicmFpZCBnYnJhaWQgZ2FkX3NvdXJjZSBnYWRfY2FtcGFpZ25pZCB1dG1fc291cmNlIHV0bV9tZWRpdW0gdXRtX2NhbXBhaWduIHV0bV90ZXJtIHV0bV9jb250ZW50IHV0bV9pZCIuc3BsaXQoIiAiKTtmdW5jdGlvbiBOUigpe3ZhciBhPUIubG9jYXRpb24sYixjPWE9PW51bGw/dm9pZCAwOihiPWEuc2VhcmNoKT09bnVsbD92b2lkIDA6Yi5yZXBsYWNlKCI/IiwiIiksZDtpZihjKXtmb3IodmFyIGU9W10sZj1KaihjLCEwKSxnPW0oTVIpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlLG49ZltsXTtpZihuKWZvcih2YXIgcD0wO3A8bi5sZW5ndGg7cCsrKXt2YXIgcT1uW3BdO3EhPT12b2lkIDAmJmUucHVzaCh7bmFtZTpsLHZhbHVlOnF9KX19ZD1lfWVsc2UgZD1bXTtyZXR1cm4gZH07dmFyIFBSPVtGLkQucmEsRi5ELmthXSxRUj1bRi5ELnJhLEYuRC5rYSxGLkQubWFdOwpmdW5jdGlvbiBSUihhKXt2YXIgYixjPU0oNTA2KSYmIWRJKGEsImNjZF9nYV9hZHNfaWRzX29wdF9vdXQiLCExKSxkPSEhZEkoYSwiZ29vZ2xlX25nIiwhMSksZT1YbyhjP2Q/UVI6ZnA6UFIpLGY7Zj1kSShhLEYuRC5VZixPKGEuTSxGLkQuVWYpKXx8ISFkSShhLCJnb29nbGVfbmciLCExKTtiPXtoZjpjLEVzOmQsR286ZSxmZjpmLExnOiEhZEkoYSwiZ2E0X2Fkc19saW5rZWQiLCExKSxiaTpBbSgpLEdqOiFWSygpLEZzOmJrKFpLKGEpKSxEczohIVEoYSxILkouYmUpLEdzOiEhUShhLEguSi5UZSksdXM6ISFPKGEuTSxGLkQuTmwpLEtzOiEhUShhLEguSi5laikseGc6TyhhLk0sRi5ELlNjKSxucjpPKGEuTSxGLkQuU2Msdm9pZCAwLDQpLEhzOiEhUShhLEguSi5GYyl9O1YoYSxILkouY2osYi5mZik7VihhLEguSi5iaixTUihiKSk7Yi5oZiYmIWIuZmYmJmIuTGcmJlNSKGIpJiZVKGEsIl8maWJ0IiwiMSIpO1NSKGIpJiZiLkdvJiYoYi5oZj9iLnhnIT09ITF8fGIuTGc6MSkmJlYoYSwKSC5KLnJuLCEwKTtiLkVzJiYhYi5iaSYmVShhLEYuRC5MZSwxKTsoYi5oZj9iLnhnOmIubnIpPT09ITEmJlUoYSwiXyZuZ3MiLCIxIik7VihhLEguSi5oZCxUUihiKSYmKGIuR3N8fGIudXMpKTtWKGEsSC5KLnJnLFRSKGIpJiZiLktzJiYhYi5iaSl9ZnVuY3Rpb24gU1IoYSl7cmV0dXJuIGEuaGY/KGEuTGd8fGEuZmYpJiYhYS5iaSYmIWEuR2o6YS5mZiYmYS54ZyE9PSExJiYhYS5HaiYmIWEuYml9ZnVuY3Rpb24gVFIoYSl7aWYoYS5IcylyZXR1cm4hMTtpZihhLmhmKXtpZighYS5mZiYmIWEuTGcpcmV0dXJuITF9ZWxzZSBpZighYS5mZilyZXR1cm4hMTtyZXR1cm4gYS5Gc3x8YS5Ec3x8YS5Hanx8KGEuaGY/YS54Zz09PSExJiYhYS5MZzphLnhnPT09ITEpfHwhYS5Hbz8hMTohMH07dmFyIGJTPWZ1bmN0aW9uKGEpe3ZhciBiPSEwO2I9Yj09PXZvaWQgMD8hMTpiO2lmKE0oNDI1KSYmIShwbCgpfHxiJiZRKGEsSC5KLmRqKXx8YS5ldmVudE5hbWUhPT1GLkQud2F8fFEoYSxILkouRmMpKSl7dmFyIGM9e30sZD17fSxlPXtldmVudE1ldGFkYXRhOm5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYS5NLmV2ZW50TWV0YWRhdGEsKGNbSC5KLkZjXT0hMCxjKSxiP3t9OihkW0guSi5EY109WC5WLkthLGQpKSxub0d0bUV2ZW50OiEwfSxmPXNDKGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsInN0cnVjdHVyZWRfZGF0YSIsYS5NLkVhKTttRChmLGEuTS5ldmVudElkLGUpfX07ZnVuY3Rpb24gaFMoYSl7fWZ1bmN0aW9uIGlTKGEpe3ZhciBiPWZ1bmN0aW9uKCl7fTtyZXR1cm4gYn0KZnVuY3Rpb24galMoYSxiKXt9dmFyIGtTPUouVS5xbCxsUz1KLlUucmw7ZnVuY3Rpb24gbVMoYSxiKXt2YXIgYz10aygpO2MmJmMuaW5kZXhPZihiKT4tMSYmKGFbSC5KLkNjXT0hMCl9ZnVuY3Rpb24gb1MoYSxiLGMpe3ZhciBkPXRoaXM7fW9TLlA9ImludGVybmFsLmd0YWdDb25maWciO2Z1bmN0aW9uIHBTKGEsYixjLGQpe3ZhciBlPXRoaXM7fXBTLlA9ImludGVybmFsLmd0YWdEZXN0aW5hdGlvbkNvbmZpZyI7CmZ1bmN0aW9uIHJTKGEsYil7fQpyUy5wdWJsaWNOYW1lPSJndGFnU2V0IjtmdW5jdGlvbiBzUygpe3ZhciBhPXt9O3JldHVybiBhfTtmdW5jdGlvbiB0UyhhKXt9dFMuUD0iaW50ZXJuYWwuaW5pdGlhbGl6ZVNlcnZpY2VXb3JrZXIiO2Z1bmN0aW9uIHVTKGEsYil7fXVTLnB1YmxpY05hbWU9ImluamVjdEhpZGRlbklmcmFtZSI7ZnVuY3Rpb24gdlMoYSxiLGMsZCxlKXt9dlMuUD0iaW50ZXJuYWwuaW5qZWN0SHRtbCI7dmFyIEFTPXtkbDoxLGlkOjF9OwpmdW5jdGlvbiBCUyhhLGIsYyxkKXt9QlMucHVibGljTmFtZT0iaW5qZWN0U2NyaXB0IjtmdW5jdGlvbiBDUygpe3ZhciBhPXZtLGI9ITE7Yj0hIWEuSFsiNSJdO3JldHVybiBifUNTLlA9ImludGVybmFsLmlzQXV0b1BpaUVsaWdpYmxlIjtmdW5jdGlvbiBEUyhhKXt2YXIgYj0hMDtpZighbGgoYSkmJiFqaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiQXJyYXkiXSxhcmd1bWVudHMpO3ZhciBjPVRkKGEpO2lmKHpiKGMpKUwodGhpcywiYWNjZXNzX2NvbnNlbnQiLGMsInJlYWQiKTtlbHNlIGZvcih2YXIgZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKUwodGhpcywiYWNjZXNzX2NvbnNlbnQiLGUudmFsdWUsInJlYWQiKTtiPVhvKGMpO3JldHVybiBifURTLnB1YmxpY05hbWU9ImlzQ29uc2VudEdyYW50ZWQiO2Z1bmN0aW9uIEVTKGEpe3ZhciBiPSExO3JldHVybiBifUVTLlA9ImludGVybmFsLmlzRGVidWdNb2RlIjtmdW5jdGlvbiBGUyhhKXt2YXIgYj0hMTtyZXR1cm4gYn1GUy5QPSJpbnRlcm5hbC5pc0Rlc3RpbmF0aW9uSW5pdGlhbGl6ZWQiO2Z1bmN0aW9uIEdTKCl7cmV0dXJuIEJtKCl9R1MuUD0iaW50ZXJuYWwuaXNEbWFSZWdpb24iO2Z1bmN0aW9uIEhTKCl7cmV0dXJuIFVCKCl9SFMuUD0iaW50ZXJuYWwuaXNEb21SZWFkeSI7ZnVuY3Rpb24gSVMoYSl7dmFyIGI9ITE7cmV0dXJuIGJ9SVMuUD0iaW50ZXJuYWwuaXNFbnRpdHlJbmZyYXN0cnVjdHVyZSI7ZnVuY3Rpb24gSlMoYSl7dmFyIGI9ITE7aWYoIXFoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJudW1iZXIiXSxbYV0pO2I9TShhKTtyZXR1cm4gYn1KUy5QPSJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIjtmdW5jdGlvbiBLUygpe3ZhciBhPSExO2E9SWYoNDcpO3JldHVybiBhfUtTLlA9ImludGVybmFsLmlzRnBmZSI7ZnVuY3Rpb24gTFMoKXt2YXIgYT0hMTtyZXR1cm4gYX1MUy5QPSJpbnRlcm5hbC5pc0djcEJyb3dzZXIiO2Z1bmN0aW9uIE1TKCl7dmFyIGE9ITE7cmV0dXJuIGF9TVMuUD0iaW50ZXJuYWwuaXNMYW5kaW5nUGFnZSI7ZnVuY3Rpb24gTlMoKXt2YXIgYT0hMTtyZXR1cm4gYX1OUy5QPSJpbnRlcm5hbC5pc09ndCI7ZnVuY3Rpb24gT1MoKXt2YXIgYTtyZXR1cm4gYX1PUy5QPSJpbnRlcm5hbC5pc1NhZmFyaVBjbUVsaWdpYmxlQnJvd3NlciI7ZnVuY3Rpb24gUFMoKXt2YXIgYT1RaChmdW5jdGlvbihiKXtYRih0aGlzKS5sb2coImVycm9yIixiKX0pO2EucHVibGljTmFtZT0iSlNPTiI7cmV0dXJuIGF9O2Z1bmN0aW9uIFFTKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gVWQoYil9UVMuUD0iaW50ZXJuYWwubGVnYWN5UGFyc2VVcmwiO2Z1bmN0aW9uIFJTKCl7cmV0dXJuITF9CnZhciBTUz17Z2V0SXRlbTpmdW5jdGlvbihhKXt2YXIgYj1udWxsO3JldHVybiBifSxzZXRJdGVtOmZ1bmN0aW9uKGEsYil7cmV0dXJuITF9LHJlbW92ZUl0ZW06ZnVuY3Rpb24oYSl7fX07ZnVuY3Rpb24gVFMoKXt9VFMucHVibGljTmFtZT0ibG9nVG9Db25zb2xlIjtmdW5jdGlvbiBVUyhhLGIpe31VUy5QPSJpbnRlcm5hbC5tZXJnZVJlbW90ZUNvbmZpZyI7ZnVuY3Rpb24gVlMoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMDpjO3ZhciBkPVtdO3JldHVybiBVZChkKX1WUy5QPSJpbnRlcm5hbC5wYXJzZUNvb2tpZVZhbHVlc0Zyb21TdHJpbmciO2Z1bmN0aW9uIFdTKGEpe3ZhciBiPXZvaWQgMDsKcmV0dXJuIGJ9V1MucHVibGljTmFtZT0icGFyc2VVcmwiO2Z1bmN0aW9uIFhTKGEpe31YUy5QPSJpbnRlcm5hbC5wcm9jZXNzQXNOZXdFdmVudCI7ZnVuY3Rpb24gWVMoYSxiLGMpe3ZhciBkO3JldHVybiBkfVlTLlA9ImludGVybmFsLnB1c2hUb0RhdGFMYXllciI7ZnVuY3Rpb24gWlMoYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpLGM9ITE7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciXSxhcmd1bWVudHMpO2Zvcih2YXIgZD1bdGhpcyxhXSxlPW0oYiksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpZC5wdXNoKFRkKGYudmFsdWUsdGhpcy5ULDEpKTt0cnl7TC5hcHBseShudWxsLGQpLGM9ITB9Y2F0Y2goZyl7cmV0dXJuITF9cmV0dXJuIGN9WlMucHVibGljTmFtZT0icXVlcnlQZXJtaXNzaW9uIjtmdW5jdGlvbiAkUyhhKXt2YXIgYj10aGlzO30kUy5QPSJpbnRlcm5hbC5xdWV1ZUFkc1RyYW5zbWlzc2lvbiI7ZnVuY3Rpb24gYVQoYSl7dmFyIGI9dm9pZCAwO3JldHVybiBifWFULnB1YmxpY05hbWU9InJlYWRBbmFseXRpY3NTdG9yYWdlIjtmdW5jdGlvbiBiVCgpe3ZhciBhPSIiO3JldHVybiBhfWJULnB1YmxpY05hbWU9InJlYWRDaGFyYWN0ZXJTZXQiO2Z1bmN0aW9uIGNUKCl7cmV0dXJuIEUoMTkpfWNULlA9ImludGVybmFsLnJlYWREYXRhTGF5ZXJOYW1lIjtmdW5jdGlvbiBkVCgpe3ZhciBhPSIiO3JldHVybiBhfWRULnB1YmxpY05hbWU9InJlYWRUaXRsZSI7ZnVuY3Rpb24gZVQoYSxiKXt2YXIgYz10aGlzO2lmKCFsaChhKXx8IWhoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJmdW5jdGlvbiJdLGFyZ3VtZW50cyk7TE0oYSxmdW5jdGlvbihkKXtiLmludm9rZShjLlQsVWQoZCxjLlQsMSkpfSk7fWVULlA9ImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siO2Z1bmN0aW9uIGZUKGEsYil7aWYoIWxoKGEpfHwhZWgoYikmJiFnaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7aWYoQmgoWEYodGhpcykuUGIoKSkpcmV0dXJuITE7dmFyIGMsZCxlPWJDKGEsITApO2lmKCFlKXJldHVybiExO3N3aXRjaChlLnByZWZpeCl7Y2FzZSAiQVciOmM9dE47ZD1jby5pYS5jYjticmVhaztjYXNlICJEQyI6Yz1JTjtkPWNvLmlhLmNiO2JyZWFrO2Nhc2UgIkdGIjpjPU5OO2Q9Y28uaWEuZ2Q7YnJlYWs7Y2FzZSAiSEEiOmM9UE47ZD1jby5pYS5nZDticmVhaztjYXNlICJVQSI6Yz1mTztkPWNvLmlhLmdkO2JyZWFrO2Nhc2UgIk1DIjpjPWlTKGUpO2Q9Y28uaWEueGQ7YnJlYWs7Y2FzZSAiRyI6cmV0dXJuIGhTKGEpLCEwO2RlZmF1bHQ6cmV0dXJuITF9dmFyIGY9YSwKZz1jLGg9ZCxsPVRkKGIsdGhpcy5ULDEpLG49WUMoKSxwPWJDKGYsITApO3AmJm4uSC5yZWdpc3RlcihwLGcsaCxsKTtyZXR1cm4hMH1mVC5QPSJpbnRlcm5hbC5yZWdpc3RlckRlc3RpbmF0aW9uIjt2YXIgZ1Q9WyJldmVudCJdO2Z1bmN0aW9uIGhUKGEsYixjKXt9aFQuUD0iaW50ZXJuYWwucmVnaXN0ZXJHdGFnQ29tbWFuZExpc3RlbmVyIjtmdW5jdGlvbiBpVChhLGIpe3ZhciBjPSExO3JldHVybiBjfWlULlA9ImludGVybmFsLnJlbW92ZURhdGFMYXllckV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIGpUKGEsYil7fQpqVC5QPSJpbnRlcm5hbC5yZW1vdmVGb3JtRGF0YSI7ZnVuY3Rpb24ga1QoKXt9a1QucHVibGljTmFtZT0icmVzZXREYXRhTGF5ZXIiO2Z1bmN0aW9uIGxUKGEsYixjKXt2YXIgZD12b2lkIDA7cmV0dXJuIGR9bFQuUD0iaW50ZXJuYWwuc2NydWJVcmxQYXJhbXMiO2Z1bmN0aW9uIG1UKGEpe31tVC5QPSJpbnRlcm5hbC5zZW5kQWRzSGl0IjtmdW5jdGlvbiBuVChhLGIsYyxkKXtpZihhcmd1bWVudHMubGVuZ3RoPDJ8fCFmaChkKXx8IWZoKGMpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJhbnkiLCJhbnkiLCJPYmplY3R8dW5kZWZpbmVkIiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGU9Yz9UZChjLHRoaXMuVCwxKTp7fSxmPVRkKGEpLGc9QXJyYXkuaXNBcnJheShmKT9mOltmXTtiPVN0cmluZyhiKTt2YXIgaD1kP1RkKGQpOnt9LGw9WEYodGhpcyk7aC5vcmlnaW5hdGluZ0VudGl0eT10RyhsKTtsLnByaW9yaXR5UXVldWUmJihoLnByaW9yaXR5UXVldWU9bC5wcmlvcml0eVF1ZXVlKTtmb3IodmFyIG49MDtuPGcubGVuZ3RoO24rKyl7dmFyIHA9Z1tuXTtpZih0eXBlb2YgcD09PSJzdHJpbmciKXt2YXIgcT17fTtFZChlLHEpO3ZhciByPXt9O0VkKGgscik7dmFyIHQ9c0MocCxiLHEpO21EKHQsCmguZXZlbnRJZHx8bC5ldmVudElkLHIpfX19blQuUD0iaW50ZXJuYWwuc2VuZEd0YWdFdmVudCI7ZnVuY3Rpb24gb1QoYSxiLGMpe31vVC5wdWJsaWNOYW1lPSJzZW5kUGl4ZWwiO2Z1bmN0aW9uIHBUKGEsYil7fXBULlA9ImludGVybmFsLnNldEFuY2hvckhyZWYiO2Z1bmN0aW9uIHFUKGEpe31xVC5QPSJpbnRlcm5hbC5zZXRDb250YWluZXJDb25zZW50RGVmYXVsdHMiO2Z1bmN0aW9uIHJUKGEsYixjLGQpe3ZhciBlPXRoaXM7ZD1kPT09dm9pZCAwPyEwOmQ7dmFyIGY9ITE7CnJldHVybiBmfXJULnB1YmxpY05hbWU9InNldENvb2tpZSI7ZnVuY3Rpb24gc1QoYSl7fXNULlA9ImludGVybmFsLnNldENvcmVQbGF0Zm9ybVNlcnZpY2VzIjtmdW5jdGlvbiB0VChhLGIpe310VC5QPSJpbnRlcm5hbC5zZXREYXRhTGF5ZXJWYWx1ZSI7ZnVuY3Rpb24gdVQoYSl7fXVULnB1YmxpY05hbWU9InNldERlZmF1bHRDb25zZW50U3RhdGUiO2Z1bmN0aW9uIHZUKGEsYil7fXZULlA9ImludGVybmFsLnNldERlbGVnYXRlZENvbnNlbnRUeXBlIjtmdW5jdGlvbiB3VChhLGIpe313VC5QPSJpbnRlcm5hbC5zZXRGb3JtQWN0aW9uIjtmdW5jdGlvbiB4VChhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7aWYoIWxoKGEpfHwhb2goYykpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsImFueSIsImJvb2xlYW58dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtpZigha20oYSkpdGhyb3cgRXJyb3IoInNldEluQ3Jvc3NDb250YWluZXJEYXRhIHJlcXVpcmVzIHZhbGlkIENyb3NzQ29udGFpbmVyU2NoZW1hIGtleS4iKTsoY3x8bm0oYSk9PT12b2lkIDApJiZtbShhLFRkKGIsdGhpcy5ULDEpKTt9eFQuUD0iaW50ZXJuYWwuc2V0SW5Dcm9zc0NvbnRhaW5lckRhdGEiO2Z1bmN0aW9uIHlUKGEsYixjKXtyZXR1cm4hMX15VC5wdWJsaWNOYW1lPSJzZXRJbldpbmRvdyI7ZnVuY3Rpb24gelQoYSxiLGMpe2lmKCFsaChhKXx8IWxoKGIpfHxhcmd1bWVudHMubGVuZ3RoIT09Myl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwic3RyaW5nIiwiYW55Il0sYXJndW1lbnRzKTt2YXIgZD0kSChhKXx8e307ZFtiXT1UZChjLHRoaXMuVCk7dmFyIGU9YSxmPVpIO2YuS3x8WUgoZik7Zi5zZXR0aW5nc1tlXT1kO316VC5QPSJpbnRlcm5hbC5zZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiO2Z1bmN0aW9uIEFUKGEsYixjKXtpZighbGgoYSl8fCFsaChiKXx8YXJndW1lbnRzLmxlbmd0aCE9PTMpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInN0cmluZyIsImFueSJdLGFyZ3VtZW50cyk7Zm9yKHZhciBkPWIuc3BsaXQoIi4iKSxlPWVEKGEpLGY9MDtmPGQubGVuZ3RoLTE7ZisrKXtpZihlW2RbZl1dPT09dm9pZCAwKWVbZFtmXV09e307ZWxzZSBpZighQ2QoZVtkW2ZdXSkpdGhyb3cgRXJyb3IoInNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciBmYWlsZWQsIHBhdGggY29udGFpbnMgYSBub24tb2JqZWN0IHR5cGU6ICIrZFtmXSk7ZT1lW2RbZl1dfWVbZFtmXV09VGQoYyx0aGlzLlQsMSk7fUFULlA9ImludGVybmFsLnNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciI7ZnVuY3Rpb24gQlQoYSxiKXt9CkJULlA9ImludGVybmFsLnNldFRyYW5zbWlzc2lvbk1vZGUiO2Z1bmN0aW9uIENUKGEsYixjLGQpe3ZhciBlPXRoaXM7fUNULnB1YmxpY05hbWU9InNoYTI1NiI7ZnVuY3Rpb24gRFQoYSxiLGMpe30KRFQuUD0iaW50ZXJuYWwuc29ydFJlbW90ZUNvbmZpZ1BhcmFtZXRlcnMiO2Z1bmN0aW9uIEVUKGEpe31FVC5QPSJpbnRlcm5hbC5zdG9yZUFkc0JyYWlkTGFiZWxzIjtmdW5jdGlvbiBGVChhLGIpe3ZhciBjPXZvaWQgMDtyZXR1cm4gY31GVC5QPSJpbnRlcm5hbC5zdWJzY3JpYmVUb0Nyb3NzQ29udGFpbmVyRGF0YSI7ZnVuY3Rpb24gR1QoYSl7fUdULlA9ImludGVybmFsLnRhc2tTZW5kQWRzSGl0cyI7dmFyIEhUPXtnZXRJdGVtOmZ1bmN0aW9uKGEpe3ZhciBiPW51bGw7TCh0aGlzLCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIpO3ZhciBjPVhGKHRoaXMpLlBiKCksZD1hbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtkW2NdJiYoYj1kW2NdLmhhc093blByb3BlcnR5KCJndG0uIithKT9kW2NdWyJndG0uIithXTpudWxsKTtyZXR1cm4gYn0sc2V0SXRlbTpmdW5jdGlvbihhLGIpe0wodGhpcywiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiKTt2YXIgYz1YRih0aGlzKS5QYigpLGQ9YWwoNyxmdW5jdGlvbigpe3JldHVybnt9fSk7ZFtjXT1kW2NdfHx7fTtkW2NdWyJndG0uIithXT1iO30sCnJlbW92ZUl0ZW06ZnVuY3Rpb24oYSl7TCh0aGlzLCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIpO3ZhciBiPVhGKHRoaXMpLlBiKCksYz1hbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtpZighY1tiXXx8IWNbYl0uaGFzT3duUHJvcGVydHkoImd0bS4iK2EpKXJldHVybjtkZWxldGUgY1tiXVsiZ3RtLiIrYV07fSxjbGVhcjpmdW5jdGlvbigpe0wodGhpcywiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiKTt2YXIgYT1YRih0aGlzKS5QYigpO2RlbGV0ZSBhbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KVthXTt9LApwdWJsaWNOYW1lOiJ0ZW1wbGF0ZVN0b3JhZ2UifTtmdW5jdGlvbiBJVChhLGIpe3ZhciBjPSExO3JldHVybiBjfUlULlA9ImludGVybmFsLnRlc3RSZWdleCI7ZnVuY3Rpb24gSlQoYSl7dmFyIGI7cmV0dXJuIGJ9O2Z1bmN0aW9uIEtUKGEsYil7aWYoIWxoKGEpfHwhcWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIm51bWJlciJdLGFyZ3VtZW50cyk7c2IoYSxiKTt9S1QuUD0iaW50ZXJuYWwudHJhY2tVc2FnZSI7ZnVuY3Rpb24gTFQoYSxiKXt2YXIgYztyZXR1cm4gY31MVC5QPSJpbnRlcm5hbC51bnN1YnNjcmliZUZyb21Dcm9zc0NvbnRhaW5lckRhdGEiO2Z1bmN0aW9uIE1UKGEpe31NVC5wdWJsaWNOYW1lPSJ1cGRhdGVDb25zZW50U3RhdGUiO2Z1bmN0aW9uIE5UKGEpe3ZhciBiPSExO3JldHVybiBifU5ULlA9ImludGVybmFsLnVzZXJEYXRhTmVlZHNFbmNyeXB0aW9uIjt2YXIgT1Q9ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IGFpfSxRVD1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihhKXt2YXIgYjt2YXIgYz1QVC5IO2lmKGMuY29udGFpbnMoYSkpYj1jLmdldChhLHRoaXMpO2Vsc2V7dmFyIGQ7aWYoZD1jLkguaGFzT3duUHJvcGVydHkoYSkpe3ZhciBlPXRoaXMuVC54YigpO2lmKGUpe3ZhciBmPSExLGc9ZS5QYigpO2lmKGcpe0JoKGcpfHwoZj0hMCk7fWQ9Zn1lbHNlIGQ9ITB9aWYoZCl7dmFyIGg9Yy5ILmhhc093blByb3BlcnR5KGEpP2MuSFthXTp2b2lkIDA7Yj1ofWVsc2UgdGhyb3cgRXJyb3IoYSsiIGlzIG5vdCBhIHZhbGlkIEFQSSBuYW1lLiIpO31yZXR1cm4gYn19LFBUO2Z1bmN0aW9uIFJUKGEsYixjKXtQVHx8KFBUPW5ldyBPVCk7UFQuSC5hZGQoYSxiLGMpfWZ1bmN0aW9uIFNUKGEsYil7UFR8fChQVD1uZXcgT1QpO3ZhciBjPVBULkg7aWYoYy5ILmhhc093blByb3BlcnR5KGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFkZCBhIHByaXZhdGUgZnVuY3Rpb24gd2hpY2ggYWxyZWFkeSBleGlzdHM6ICIrYSsiLiIpO2lmKGMuY29udGFpbnMoYSkpdGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gYWRkIGEgcHJpdmF0ZSBmdW5jdGlvbiB3aXRoIGFuIGV4aXN0aW5nIEFQSSBuYW1lOiAiK2ErIi4iKTtjLkhbYV09eWIoYik/dGgoYSxiKTp1aChhLGIpfTtmdW5jdGlvbiBUVChhLGIpe2Z1bmN0aW9uIGMoZCl7aWYoIWVoKGQpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBlPVRkKGQsdGhpcy5ULDEpLnJiKCk7YShlKX1jLlA9ImludGVybmFsLiIrYjtyZXR1cm4gY307ZnVuY3Rpb24gVVQoKXt2YXIgYT1mdW5jdGlvbihjKXtyZXR1cm4gdm9pZCBTVChjLlAsYyl9LGI9ZnVuY3Rpb24oYyl7cmV0dXJuIHZvaWQgUlQoYy5wdWJsaWNOYW1lLGMpfTtiKFJGKTtiKFlGKTtiKFJHKTtiKFRHKTtiKFVHKTtiKGRIKTtiKGZIKTtiKGhJKTtiKFBTKCkpO2IoakkpO2IoT08pO2IoUE8pO2IobFApO2IobVApO2IoblApO2IodVApO2IodlApO2IoclMpO2IodVMpO2IoQlMpO2IoRFMpO2IoVFMpO2IoV1MpO2IoWlMpO2IoYVQpO2IoYlQpO2IoZFQpO2Iob1QpO2IoclQpO2IodVQpO2IoeVQpO2IoQ1QpO2IoSFQpO2IoTVQpO1JUKCJNYXRoIix6aCgpKTtSVCgiT2JqZWN0IixaaCk7UlQoIlRlc3RIZWxwZXIiLGNpKCkpO1JUKCJhc3NlcnRBcGkiLHdoKTtSVCgiYXNzZXJ0VGhhdCIseGgpO1JUKCJkZWNvZGVVcmkiLENoKTtSVCgiZGVjb2RlVXJpQ29tcG9uZW50IixEaCk7UlQoImVuY29kZVVyaSIsRWgpO1JUKCJlbmNvZGVVcmlDb21wb25lbnQiLEZoKTtSVCgiZmFpbCIsCkxoKTtSVCgiZ2VuZXJhdGVSYW5kb20iLE5oKTtSVCgiZ2V0VGltZXN0YW1wIixPaCk7UlQoImdldFRpbWVzdGFtcE1pbGxpcyIsT2gpO1JUKCJnZXRUeXBlIixQaCk7UlQoIm1ha2VJbnRlZ2VyIixSaCk7UlQoIm1ha2VOdW1iZXIiLFNoKTtSVCgibWFrZVN0cmluZyIsVGgpO1JUKCJtYWtlVGFibGVNYXAiLFVoKTtSVCgibW9jayIsWGgpO1JUKCJtb2NrT2JqZWN0IixZaCk7UlQoImZyb21CYXNlNjQiLEhPLCEoImF0b2IiaW4gQSkpO1JUKCJsb2NhbFN0b3JhZ2UiLFNTLCFSUygpKTtSVCgidG9CYXNlNjQiLEpULCEoImJ0b2EiaW4gQSkpO2EoUUYpO2EoVUYpO2EobkcpO2Eoc0cpO2EoSUcpO2EoUEcpO2EoU0cpO2EoVkcpO2EoV0cpO2EoWkcpO2EoJEcpO2EoYUgpO2EoYkgpO2EoY0gpO2EoZUgpO2EoZ0gpO2EoZ0kpO2EoaUkpO2Eoa0kpO2EobEkpO2EobUkpO2EobkkpO2Eob0kpO2EoZkopO2EobUopO2EodEopO2EodUopO2EoQUopO2EoRkopO2EoS0opO2EoUkopO2EoV0opO2EoZ0spOwphKGlLKTthKHZLKTthKHdLKTthKHhLKTthKEZPKTthKEdPKTthKElPKTthKEpPKTthKEtPKTthKExPKTthKE1PKTthKE5PKTthKFFPKTthKFJPKTthKFNPKTthKFRPKTthKFVPKTthKFZPKTthKFdPKTthKFhPKTthKFlPKTthKFpPKTthKCRPKTthKGFQKTthKGJQKTthKGNQKTthKGRQKTthKGVQKTthKGZQKTthKGdQKTthKGhQKTthKGlQKTthKGpQKTthKGtQKTthKG9QKTthKHBQKTthKHFQKTthKHJQKTthKHNQKTthKHRQKTthKHdQKTthKG9TKTthKHBTKTthKHRTKTthKHZTKTthKENTKTthKEVTKTthKEZTKTthKEdTKTthKEhTKTthKElTKTthKEpTKTthKEtTKTthKExTKTthKE1TKTthKE5TKTthKE9TKTthKFFTKTthKEdHKTthKFVTKTthKFZTKTthKFhTKTthKFlTKTthKCRTKTthKGNUKTthKGVUKTthKGZUKTthKGhUKTthKGlUKTthKGpUKTthKGxUKTthKG1UKTthKG5UKTthKHBUKTthKHFUKTthKHNUKTthKHRUKTthKHZUKTthKHdUKTthKHhUKTthKHpUKTthKEFUKTthKEJUKTthKERUKTsKYShFVCk7YShGVCk7YShHVCk7YShJVCk7YShLVCk7YShMVCk7YShOVCk7U1QoImludGVybmFsLklmcmFtaW5nU3RhdGVTY2hlbWEiLHNTKCkpO1NUKCJpbnRlcm5hbC5xdWlja0hhc2giLE1oKTthKFRUKE1GLCJ0YXNrU2V0QWRzVHJhbnNtaXNzaW9uVHlwZSIpKSxhKFRUKFBGLCJ0YXNrU2V0VW5pdmVyc2FsUGFyYW1zIikpO2EoVFQoTEYsInRhc2tBZGRBZHNDbGlja0lkcyIpKTtQVHx8KFBUPW5ldyBPVCk7cmV0dXJuIFFUKCl9O3ZhciBKRjtmdW5jdGlvbiBWVCgpe0pGLnNkKGZ1bmN0aW9uKGEsYixjKXtsaigpO3ZhciBkPWpqO2QuSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFPWQuSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFfHwwO2QuSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFKys7dHJ5e3JldHVybiBhLmFwcGx5KGIsYyl9ZmluYWxseXtsaigpLGpqLkguU0FOREJPWEVEX0pTX1NFTUFQSE9SRS0tfX0pfWZ1bmN0aW9uIFdUKGEpe2lmKGEmJmEubGVuZ3RoKWZvcih2YXIgYj1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSksYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdLnJlcGxhY2UoL15fKi8sIiIpO2JbZF09WyJzYW5kYm94ZWRTY3JpcHRzIl19fQpmdW5jdGlvbiBYVChhKXtpZihhKXt2YXIgYj1hbCgyNyxmdW5jdGlvbigpe3JldHVybnt9fSk7R2IoYSxmdW5jdGlvbihjLGQpe2Zvcih2YXIgZT0wO2U8ZC5sZW5ndGg7ZSsrKXt2YXIgZj1kW2VdLnJlcGxhY2UoL15fKi8sIiIpO2JbZl09YltmXXx8W107YltmXS5wdXNoKGMpfX0pfX07ZnVuY3Rpb24gWlQoYSl7bUQocEMoImRldmVsb3Blcl9pZC4iK2EsITApLDAse30pfTtmdW5jdGlvbiAkVChhLGIpe3JldHVybiBFZChhLGJ8fG51bGwpfWZ1bmN0aW9uIFkoYSl7cmV0dXJuIHdpbmRvdy5lbmNvZGVVUklDb21wb25lbnQoYSl9ZnVuY3Rpb24gYVUoYSl7WmMoYSx2b2lkIDAsdm9pZCAwKX1mdW5jdGlvbiBiVShhKXt2YXIgYj1bInZlaW50ZXJhY3RpdmUuY29tIiwidmUtaW50ZXJhY3RpdmUuY24iXTtpZighYSlyZXR1cm4hMTt2YXIgYz1MaihSaihhKSwiaG9zdCIpO2lmKCFjKXJldHVybiExO2Zvcih2YXIgZD0wO2ImJmQ8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdJiZiW2RdLnRvTG93ZXJDYXNlKCk7aWYoZSl7dmFyIGY9Yy5sZW5ndGgtZS5sZW5ndGg7Zj4wJiZlLmNoYXJBdCgwKSE9PSIuIiYmKGYtLSxlPSIuIitlKTtpZihmPj0wJiZjLmluZGV4T2YoZSxmKT09PWYpcmV0dXJuITB9fXJldHVybiExfQpmdW5jdGlvbiBjVShhLGIsYyl7Zm9yKHZhciBkPXt9LGU9ITEsZj0wO2EmJmY8YS5sZW5ndGg7ZisrKWFbZl0mJmFbZl0uaGFzT3duUHJvcGVydHkoYikmJmFbZl0uaGFzT3duUHJvcGVydHkoYykmJihkW2FbZl1bYl1dPWFbZl1bY10sZT0hMCk7cmV0dXJuIGU/ZDpudWxsfWZ1bmN0aW9uIGRVKGEsYil7dmFyIGM9e307aWYoYSlmb3IodmFyIGQgaW4gYSlhLmhhc093blByb3BlcnR5KGQpJiYoY1tkXT1hW2RdKTtpZihiKXt2YXIgZT1jVShiLCJwYXJhbWV0ZXIiLCJwYXJhbWV0ZXJWYWx1ZSIpO2UmJihjPSRUKGUsYykpfXJldHVybiBjfWZ1bmN0aW9uIGVVKGEsYixjKXtyZXR1cm4gYT09PXZvaWQgMHx8YT09PWM/YjphfWZ1bmN0aW9uIGZVKGEsYixjKXtyZXR1cm4gVWMoYSxiLGMsdm9pZCAwKX1mdW5jdGlvbiBnVShhLGIpe0FbYV09Yn1mdW5jdGlvbiBoVShhLGIsYyl7dmFyIGQ9QTtiJiYoZFthXT09PXZvaWQgMHx8YyYmIWRbYV0pJiYoZFthXT1iKTtyZXR1cm4gZFthXX12YXIgaVU9e30salU9WC5WO3ZhciBaPXtzZWN1cml0eUdyb3Vwczp7fX07CgpaLnNlY3VyaXR5R3JvdXBzLmFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlPVsiZ29vZ2xlIl0sWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlPWZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6ZnVuY3Rpb24oKXtyZXR1cm57fX19fSxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UuTz0iYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZS5pc1ZlbmRvclRlbXBsYXRlPSEwLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZS5wcmlvcml0eU92ZXJyaWRlPTAsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlLmlzSW5mcmFzdHJ1Y3R1cmU9ITEsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlWyI1Il09ITEsWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlWyI2Il09ITE7CgoKClouc2VjdXJpdHlHcm91cHMucmVhZF9ldmVudF9kYXRhPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue2tleTpjfX0oZnVuY3Rpb24oYil7Wi5fX3JlYWRfZXZlbnRfZGF0YT1iO1ouX19yZWFkX2V2ZW50X2RhdGEuTz0icmVhZF9ldmVudF9kYXRhIjtaLl9fcmVhZF9ldmVudF9kYXRhLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX3JlYWRfZXZlbnRfZGF0YS5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX3JlYWRfZXZlbnRfZGF0YS5pc0luZnJhc3RydWN0dXJlPSExO1ouX19yZWFkX2V2ZW50X2RhdGFbIjUiXT0hMTtaLl9fcmVhZF9ldmVudF9kYXRhWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9ldmVudERhdGFBY2Nlc3MsZD1iLnZ0cF9rZXlQYXR0ZXJuc3x8W10sZT1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihmLGcpe2lmKGchPW51bGwmJiF6YihnKSl0aHJvdyBlKGYse2tleTpnfSwiS2V5IG11c3QgYmUgYSBzdHJpbmcuIik7CmlmKGMhPT0iYW55Iil7dHJ5e2lmKGM9PT0ic3BlY2lmaWMiJiZnIT1udWxsJiZFZyhnLGQpKXJldHVybn1jYXRjaChoKXt0aHJvdyBlKGYse2tleTpnfSwiSW52YWxpZCBrZXkgZmlsdGVyLiIpO310aHJvdyBlKGYse2tleTpnfSwiUHJvaGliaXRlZCByZWFkIGZyb20gZXZlbnQgZGF0YS4iKTt9fSxhYTphfX0pfSgpOwoKCgoKCgoKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7cmV0dXJue319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzPWI7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMuTz0iZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cyI7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50c1siNSJdPSExO1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzWyI2Il09ITF9KShmdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LGFhOmF9fSl9KCk7CgoKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue29wdGlvbnM6Y319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzPWI7Wi5fX2RldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMuTz0iZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50cyI7Wi5fX2RldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF9mb3JtX3N1Ym1pdF9ldmVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50c1siNSJdPSExO1ouX19kZXRlY3RfZm9ybV9zdWJtaXRfZXZlbnRzWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9hbGxvd1dhaXRGb3JUYWdzLGQ9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yOwpyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGUsZil7aWYoIWMmJmYmJmYud2FpdEZvclRhZ3MpdGhyb3cgZChlLHt9LCJQcm9oaWJpdGVkIG9wdGlvbiB3YWl0Rm9yVGFncy4iKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMucmVhZF9jb250YWluZXJfZGF0YT1bImdvb2dsZSJdLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhPWZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6ZnVuY3Rpb24oKXtyZXR1cm57fX19fSxaLl9fcmVhZF9jb250YWluZXJfZGF0YS5PPSJyZWFkX2NvbnRhaW5lcl9kYXRhIixaLl9fcmVhZF9jb250YWluZXJfZGF0YS5pc1ZlbmRvclRlbXBsYXRlPSEwLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhLnByaW9yaXR5T3ZlcnJpZGU9MCxaLl9fcmVhZF9jb250YWluZXJfZGF0YS5pc0luZnJhc3RydWN0dXJlPSExLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhWyI1Il09ITEsWi5fX3JlYWRfY29udGFpbmVyX2RhdGFbIjYiXT0hMTsKWi5zZWN1cml0eUdyb3Vwcy5saXN0ZW5fZGF0YV9sYXllcj1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMpe3JldHVybntldmVudE5hbWU6Y319KGZ1bmN0aW9uKGIpe1ouX19saXN0ZW5fZGF0YV9sYXllcj1iO1ouX19saXN0ZW5fZGF0YV9sYXllci5PPSJsaXN0ZW5fZGF0YV9sYXllciI7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fbGlzdGVuX2RhdGFfbGF5ZXIuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fbGlzdGVuX2RhdGFfbGF5ZXJbIjUiXT0hMTtaLl9fbGlzdGVuX2RhdGFfbGF5ZXJbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2FjY2Vzc1R5cGUsZD1iLnZ0cF9hbGxvd2VkRXZlbnRzfHxbXSxlPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGYsZyl7aWYoIXpiKGcpKXRocm93IGUoZix7ZXZlbnROYW1lOmd9LAoiRXZlbnQgbmFtZSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKCEoYz09PSJhbnkifHxjPT09InNwZWNpZmljIiYmZC5pbmRleE9mKGcpPj0wKSl0aHJvdyBlKGYse2V2ZW50TmFtZTpnfSwiUHJvaGliaXRlZCBsaXN0ZW4gb24gZGF0YSBsYXllciBldmVudC4iKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMuZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YT1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMpe3JldHVybntkYXRhU291cmNlOmN9fShmdW5jdGlvbihiKXtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YT1iO1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhLk89ImRldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEiO1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEucHJpb3JpdHlPdmVycmlkZT0wO1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGFbIjUiXT0hMTtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YVsiNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZCwKZSl7aWYoZSE9PSJhdXRvIiYmZSE9PSJtYW51YWwiJiZlIT09ImNvZGUiKXRocm93IGMoZCx7fSwiVW5rbm93biB1c2VyIHByb3ZpZGVkIGRhdGEgc291cmNlLiIpO2lmKGIudnRwX2xpbWl0RGF0YVNvdXJjZXMpaWYoZSE9PSJhdXRvInx8Yi52dHBfYWxsb3dBdXRvRGF0YVNvdXJjZXMpe2lmKGU9PT0ibWFudWFsIiYmIWIudnRwX2FsbG93TWFudWFsRGF0YVNvdXJjZXMpdGhyb3cgYyhkLHt9LCJEZXRlY3Rpb24gb2YgdXNlciBwcm92aWRlZCBkYXRhIHZpYSBtYW51YWxseSBzcGVjaWZpZWQgQ1NTIHNlbGVjdG9ycyBpcyBub3QgYWxsb3dlZC4iKTtpZihlPT09ImNvZGUiJiYhYi52dHBfYWxsb3dDb2RlRGF0YVNvdXJjZXMpdGhyb3cgYyhkLHt9LCJEZXRlY3Rpb24gb2YgdXNlciBwcm92aWRlZCBkYXRhIGZyb20gYW4gaW4tcGFnZSB2YXJpYWJsZSBpcyBub3QgYWxsb3dlZC4iKTt9ZWxzZSB0aHJvdyBjKGQse30sIkF1dG9tYXRpYyBkZXRlY3Rpb24gb2YgdXNlciBwcm92aWRlZCBkYXRhIGlzIG5vdCBhbGxvd2VkLiIpOwp9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMuZ2V0X3VybD1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMsZCl7cmV0dXJue2NvbXBvbmVudDpjLHF1ZXJ5S2V5OmR9fShmdW5jdGlvbihiKXtaLl9fZ2V0X3VybD1iO1ouX19nZXRfdXJsLk89ImdldF91cmwiO1ouX19nZXRfdXJsLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2dldF91cmwucHJpb3JpdHlPdmVycmlkZT0wO1ouX19nZXRfdXJsLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2dldF91cmxbIjUiXT0hMTtaLl9fZ2V0X3VybFsiNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfdXJsUGFydHM9PT0iYW55Ij9udWxsOltdO2MmJihiLnZ0cF9wcm90b2NvbCYmYy5wdXNoKCJwcm90b2NvbCIpLGIudnRwX2hvc3QmJmMucHVzaCgiaG9zdCIpLGIudnRwX3BvcnQmJmMucHVzaCgicG9ydCIpLGIudnRwX3BhdGgmJmMucHVzaCgicGF0aCIpLGIudnRwX2V4dGVuc2lvbiYmYy5wdXNoKCJleHRlbnNpb24iKSxiLnZ0cF9xdWVyeSYmCmMucHVzaCgicXVlcnkiKSxiLnZ0cF9mcmFnbWVudCYmYy5wdXNoKCJmcmFnbWVudCIpKTt2YXIgZD1jJiZiLnZ0cF9xdWVyaWVzQWxsb3dlZCE9PSJhbnkiP2IudnRwX3F1ZXJ5S2V5c3x8W106bnVsbCxlPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGYsZyxoKXtpZihnKXtpZighemIoZykpdGhyb3cgZShmLHt9LCJVUkwgY29tcG9uZW50IG11c3QgYmUgYSBzdHJpbmcuIik7aWYoYyYmYy5pbmRleE9mKGcpPDApdGhyb3cgZShmLHt9LCJQcm9oaWJpdGVkIFVSTCBjb21wb25lbnQ6ICIrZyk7aWYoZz09PSJxdWVyeSImJmQpe2lmKCFoKXRocm93IGUoZix7fSwiUHJvaGliaXRlZCBmcm9tIGdldHRpbmcgZW50aXJlIFVSTCBxdWVyeSB3aGVuIHF1ZXJ5IGtleXMgYXJlIHNwZWNpZmllZC4iKTtpZighemIoaCkpdGhyb3cgZShmLHt9LCJRdWVyeSBrZXkgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihkLmluZGV4T2YoaCk8MCl0aHJvdyBlKGYse30sCiJQcm9oaWJpdGVkIHF1ZXJ5IGtleTogIitoKTt9fWVsc2UgaWYoYyl0aHJvdyBlKGYse30sIlByb2hpYml0ZWQgZnJvbSBnZXR0aW5nIGVudGlyZSBVUkwgd2hlbiBjb21wb25lbnRzIGFyZSBzcGVjaWZpZWQuIik7fSxhYTphfX0pfSgpOwpaLnNlY3VyaXR5R3JvdXBzLmFjY2Vzc19jb25zZW50PVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXt2YXIgZT17Y29uc2VudFR5cGU6YyxyZWFkOiExLHdyaXRlOiExfTtzd2l0Y2goZCl7Y2FzZSAicmVhZCI6ZS5yZWFkPSEwO2JyZWFrO2Nhc2UgIndyaXRlIjplLndyaXRlPSEwO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIkludmFsaWQgIitiKyIgcmVxdWVzdCAiK2QpO31yZXR1cm4gZX0oZnVuY3Rpb24oYil7Wi5fX2FjY2Vzc19jb25zZW50PWI7Wi5fX2FjY2Vzc19jb25zZW50Lk89ImFjY2Vzc19jb25zZW50IjtaLl9fYWNjZXNzX2NvbnNlbnQuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fYWNjZXNzX2NvbnNlbnQucHJpb3JpdHlPdmVycmlkZT0wO1ouX19hY2Nlc3NfY29uc2VudC5pc0luZnJhc3RydWN0dXJlPSExO1ouX19hY2Nlc3NfY29uc2VudFsiNSJdPSExO1ouX19hY2Nlc3NfY29uc2VudFsiNiJdPSExfSkoZnVuY3Rpb24oYil7Zm9yKHZhciBjPQpiLnZ0cF9jb25zZW50VHlwZXN8fFtdLGQ9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yLGU9W10sZj1bXSxnPTA7ZzxjLmxlbmd0aDtnKyspe3ZhciBoPWNbZ10sbD1oLmNvbnNlbnRUeXBlO2gucmVhZCYmZS5wdXNoKGwpO2gud3JpdGUmJmYucHVzaChsKX1yZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKG4scCxxKXtpZighemIocCkpdGhyb3cgZChuLHt9LCJDb25zZW50IHR5cGUgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihxPT09InJlYWQiKXtpZihlLmluZGV4T2YocCk+LTEpcmV0dXJufWVsc2UgaWYocT09PSJ3cml0ZSIpe2lmKGYuaW5kZXhPZihwKT4tMSlyZXR1cm59ZWxzZSB0aHJvdyBkKG4se30sIkFjY2VzcyB0eXBlIG11c3QgYmUgZWl0aGVyICdyZWFkJywgb3IgJ3dyaXRlJywgd2FzICIrcSk7dGhyb3cgZChuLHt9LCJQcm9oaWJpdGVkICIrcSsiIG9uIGNvbnNlbnQgdHlwZTogIitwKyIuIik7fSxhYTphfX0pfSgpOwoKCgpaLnNlY3VyaXR5R3JvdXBzLnJlYWRfZG9tX2VsZW1lbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXtyZXR1cm57dHlwZTpjLHZhbHVlOmR9fShmdW5jdGlvbihiKXtaLl9fcmVhZF9kb21fZWxlbWVudHM9YjtaLl9fcmVhZF9kb21fZWxlbWVudHMuTz0icmVhZF9kb21fZWxlbWVudHMiO1ouX19yZWFkX2RvbV9lbGVtZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19yZWFkX2RvbV9lbGVtZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzWyI1Il09ITE7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9hbGxvd2VkRWxlbWVudElkc3x8Im5vbmUiLGQ9Yi52dHBfYWxsb3dlZENzc1NlbGVjdG9yc3x8Im5vbmUiLGU9Yi52dHBfZWxlbWVudElkc3x8W10sZj1iLnZ0cF9jc3NTZWxlY3RvcnN8fFtdLGc9CmIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGgsbCxuKXtzd2l0Y2gobCl7Y2FzZSAiaWQiOmlmKGM9PT0ibm9uZSIpYnJlYWs7aWYoYz09PSJhbnkifHxlLmluZGV4T2Yobik+LTEpcmV0dXJuO2JyZWFrO2Nhc2UgImNzcyI6aWYoZD09PSJub25lIilicmVhaztpZihkPT09ImFueSJ8fGYuaW5kZXhPZihuKT4tMSlyZXR1cm47YnJlYWs7ZGVmYXVsdDp0aHJvdyBnKGgse30sIlVua25vd24gc2VsZWN0b3IgdHlwZSAiK2wrIi4iKTt9dGhyb3cgZyhoLHt9LCJQcm9oaWJpdGVkIHNlbGVjdG9yIHZhbHVlICIrbisiIGZvciBzZWxlY3RvciB0eXBlICIrbCsiLiIpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfY2xpY2tfZXZlbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXtyZXR1cm57bWF0Y2hDb21tb25CdXR0b25zOmMsY3NzU2VsZWN0b3I6ZH19KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfY2xpY2tfZXZlbnRzPWI7Wi5fX2RldGVjdF9jbGlja19ldmVudHMuTz0iZGV0ZWN0X2NsaWNrX2V2ZW50cyI7Wi5fX2RldGVjdF9jbGlja19ldmVudHMuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZGV0ZWN0X2NsaWNrX2V2ZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF9jbGlja19ldmVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X2NsaWNrX2V2ZW50c1siNSJdPSExO1ouX19kZXRlY3RfY2xpY2tfZXZlbnRzWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihkLGUsZil7aWYoZSE9PXZvaWQgMCYmdHlwZW9mIGUhPT0KImJvb2xlYW4iKXRocm93IGMoZCx7fSwibWF0Y2hDb21tb25CdXR0b25zIG11c3QgYmUgYSBib29sZWFuLiIpO2lmKGYhPT12b2lkIDAmJnR5cGVvZiBmIT09InN0cmluZyIpdGhyb3cgYyhkLHt9LCJjc3NTZWxlY3RvciBtdXN0IGJlIGEgc3RyaW5nLiIpO30sYWE6YX19KX0oKTsKCgoKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtyZXR1cm57fX0oZnVuY3Rpb24oYil7Wi5fX2RldGVjdF9mb3JtX2ludGVyYWN0aW9uX2V2ZW50cz1iO1ouX19kZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHMuTz0iZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzIjtaLl9fZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF9mb3JtX2ludGVyYWN0aW9uX2V2ZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF9mb3JtX2ludGVyYWN0aW9uX2V2ZW50cy5pc0luZnJhc3RydWN0dXJlPSExO1ouX19kZXRlY3RfZm9ybV9pbnRlcmFjdGlvbl9ldmVudHNbIjUiXT0hMTtaLl9fZGV0ZWN0X2Zvcm1faW50ZXJhY3Rpb25fZXZlbnRzWyI2Il09ITF9KShmdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LAphYTphfX0pfSgpOwpmdW5jdGlvbiBrVSgpe3ZhciBhPXt9LGI9e2RhdGFMYXllcjp0QSxjYWxsYmFjazpmdW5jdGlvbihjKXthLmhhc093blByb3BlcnR5KGMpJiZ5YihhW2NdKSYmYVtjXSgpO2RlbGV0ZSBhW2NdfSxib290c3RyYXA6MH07cmV0dXJuIGJ9CmZ1bmN0aW9uIGxVKCl7dmFyIGE9a1UoKTtvaihhKTtDaygpO2pBKCk7dmFyIGI9YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pO1FiKGIsWi5zZWN1cml0eUdyb3Vwcyk7dmFyIGM9eWsoemsoKSksZCxlPWM9PW51bGw/dm9pZCAwOihkPWMuY29udGV4dCk9PW51bGw/dm9pZCAwOmQuc291cmNlO0tsKGUsYz09bnVsbD92b2lkIDA6Yy5wYXJlbnQpO2UhPT0yJiZlIT09NCYmZSE9PTN8fFAoMTQyKTtyZXR1cm4gYX1mdW5jdGlvbiBtVSgpe3ZhciBhPUUoNjApO2lmKGEpZm9yKHZhciBiPWEuc3BsaXQoIi4iKSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWJbY10sZT1UTDtkJiYoZS5IW2RdPSEwKX19CmZ1bmN0aW9uIG5VKCl7enAoKTtsaigpO2Zvcih2YXIgYT1kYXRhLnJlc291cmNlfHx7fSxiPWNBLGM9YS5tYWNyb3N8fFtdLGQ9MDtkPGMubGVuZ3RoO2QrKyliLm1hY3Jvcy5wdXNoKG5ldyBVeihjW2RdLGQsYi50YWdzLGIubWFjcm9zKSk7Zm9yKHZhciBlPWEudGFnc3x8W10sZj0wO2Y8ZS5sZW5ndGg7ZisrKWIudGFncy5wdXNoKG5ldyBZeihlW2ZdLGYsYi50YWdzLGIubWFjcm9zKSk7Zm9yKHZhciBnPWEucHJlZGljYXRlc3x8W10saD0wO2g8Zy5sZW5ndGg7aCsrKWIucHJlZGljYXRlcy5wdXNoKG5ldyBWeihnW2hdLGIudGFncyxiLm1hY3JvcykpO2Zvcih2YXIgbD1hLnJ1bGVzfHxbXSxuPTA7bjxsLmxlbmd0aDtuKyspYi5ydWxlcy5wdXNoKG5ldyBXeihsW25dLG4pKTtRej1aO3ZhciBwPWRhdGEucGVybWlzc2lvbnN8fHt9LHE9WjtkZz1uZXcgZ2coRSg1KSxwLHEpO3ZhciByPWRhdGEuc2FuZGJveGVkX3NjcmlwdHMsdD1kYXRhLnNlY3VyaXR5X2dyb3Vwcyx1PWRhdGEucnVudGltZXx8CltdLHY9ZGF0YS5ydW50aW1lX2xpbmVzO0pGPW5ldyBwZjtWVCgpO1B6PUlGKCk7dmFyIHg9SkYseT1VVCgpLHo9bmV3IExkKCJyZXF1aXJlIix5KTt6LlphKCk7eC5ILkguc2V0KCJyZXF1aXJlIix6KTtkYi5zZXQoInJlcXVpcmUiLHopO2Zvcih2YXIgQz0wO0M8dS5sZW5ndGg7QysrKXt2YXIgRD11W0NdO2lmKCFBcnJheS5pc0FycmF5KEQpfHxELmxlbmd0aDwzKXtpZihELmxlbmd0aD09PTApY29udGludWU7YnJlYWt9diYmdltDXSYmdltDXS5sZW5ndGgmJlBmKEQsdltDXSk7dHJ5e0pGLmV4ZWN1dGUoRCl9Y2F0Y2gob1Upe319V1Qocik7WFQodCk7dmFyIEk9bFUoKTtpRigpO3ZtLmJpbmQoKTtpZighRGopZm9yKHZhciBHPUJtKCk/ZXAoTGYoNSkpOmVwKExmKDQpKSxOPW0oUm8pLFM9Ti5uZXh0KCk7IVMuZG9uZTtTPU4ubmV4dCgpKXt2YXIgVz1TLnZhbHVlLGVhPVcsamE9R1tXXT8iZ3JhbnRlZCI6ImRlbmllZCI7dGwoKS5pbXBsaWNpdChlYSxqYSl9aEUuYmluZCgpO1RCKCk7Ck9CKCk7Zm4uTiYmKGd6KCksZnooQUYpLGdBKCksY0I9bmV3IGJCLGZ6KGl6KSxPQygpLERGfHwoREY9bmV3IEJGKSxmQnx8KGZCPW5ldyBlQiksRkY9bmV3IEVGKTtpZihmbi5LKXtERS5iaW5kKCk7bUMuYmluZCgpO3dFLmJpbmQoKTt2YXIgZmE9QWsoKTtpZihmYSl7dmFyIHNhO2E6e3ZhciBkYSxtYT0oZGE9ZmEuc2NyaXB0RWxlbWVudCk9PW51bGw/dm9pZCAwOmRhLnNyYztpZihtYSl7dmFyIFBhO3RyeXt2YXIgRmE7UGE9KEZhPXJkKCkpPT1udWxsP3ZvaWQgMDpGYS5nZXRFbnRyaWVzQnlUeXBlKCJyZXNvdXJjZSIpfWNhdGNoKG9VKXt9aWYoUGEpe2Zvcih2YXIgcWE9LTEsaWI9bShQYSksWGI9aWIubmV4dCgpOyFYYi5kb25lO1hiPWliLm5leHQoKSl7dmFyIExjPVhiLnZhbHVlO2lmKExjLmluaXRpYXRvclR5cGU9PT0KInNjcmlwdCImJihxYSs9MSxMYy5uYW1lLnJlcGxhY2UoTkUsIiIpPT09bWEucmVwbGFjZShORSwiIikpKXtzYT1xYTticmVhayBhfX1QKDE0Nil9ZWxzZSBQKDE0NSl9c2E9dm9pZCAwfXZhciBRZD1zYTtRZCE9PXZvaWQgMCYmKGZhLmNhbm9uaWNhbENvbnRhaW5lcklkJiZVbSgicnRnIixTdHJpbmcoZmEuY2Fub25pY2FsQ29udGFpbmVySWQpKSxVbSgic2xvIixTdHJpbmcoUWQpKSxVbSgiaGxvIixmYS5odG1sTG9hZE9yZGVyfHwiLTEiKSxVbSgibHN0IixTdHJpbmcoZmEubG9hZFNjcmlwdFR5cGV8fCIwIikpKX1lbHNlIFAoMTQ0KTt2YXIgWWM7dmFyIERkPXhrKCk7aWYoRGQpaWYoRGQuY2Fub25pY2FsQ29udGFpbmVySWQpWWM9RGQuY2Fub25pY2FsQ29udGFpbmVySWQ7ZWxzZXt2YXIgamYsdmg9RGQuc2NyaXB0Q29udGFpbmVySWR8fCgoamY9RGQuZGVzdGluYXRpb25zKT09bnVsbD92b2lkIDA6amZbMF0pO1ljPXZoPyJfIit2aDp2b2lkIDB9ZWxzZSBZYz12b2lkIDA7dmFyIEpFPQpZYztKRSYmVW0oInBjaWQiLEpFKTtVbSgiYnQiLFN0cmluZyhJZig0Nyk/MjpJZig1MCk/MTowKSk7VW0oImN0IixTdHJpbmcoSWYoNDcpPzA6SWYoNTApPzE6MykpO0FFLmJpbmQoKTtmb3IodmFyIFdyPVtdLFhyPVtdLEtFPW0oT2JqZWN0LmtleXMoR0UpKSxZcj1LRS5uZXh0KCk7IVlyLmRvbmU7WXI9S0UubmV4dCgpKXt2YXIgcm09WXIudmFsdWU7aWYod2luZG93LmlzU2VjdXJlQ29udGV4dHx8IUlFW3JtXSl7dmFyIExFPUdFW3JtXSgpO2lmKHliKExFKSl7dmFyIE1FPUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKExFKTtUYihNRSwieyBbbmF0aXZlIGNvZGVdIH0iKXx8VGIoTUUsIntcbiAgICBbbmF0aXZlIGNvZGVdXG59Iil8fFhyLnB1c2gocm0pfWVsc2UgV3IucHVzaChybSl9fVdyLmxlbmd0aD4wJiZVbSgianNtIixXci5qb2luKCJ+IikpO1hyLmxlbmd0aD4wJiZVbSgianNwIixYci5qb2luKCJ+IikpO0V5fHwoRXk9bmV3IER5KX1oRigpO2ltKDEpO0VHKCk7cmV0dXJuIEl9CmZ1bmN0aW9uIHVtKCl7dHJ5e2lmKCFoaygpJiYoSWYoNDcpfHwhTmsoKSkpe0lmKDY0KSYmd2ouSC5LLmFkZCgxMTg1MTc5MTcpO3pqKCk7Zm4uSCYmc3ooKTtXZls1XT0hMDt2YXIgYT1raigiZGVidWdHcm91cElkIixmdW5jdGlvbigpe3JldHVybiBTdHJpbmcoTWF0aC5mbG9vcihOdW1iZXIuTUFYX1NBRkVfSU5URUdFUipNYXRoLnJhbmRvbSgpKSl9KTtTbChhKTtrdCgpO3pGKCk7RnQoKTtQQigpO2lmKERrKCkpe0UoNSk7REcoKTtpQigpLnJlbW92ZUV4dGVybmFsUmVzdHJpY3Rpb25zKHZrKCkpO31lbHNle0ZNLlIoKTtuVSgpLmJvb3RzdHJhcD1OYigpO0lmKDUxKSYmcEUoKTsKZm4uSCYmdHooKTt0eXBlb2YgQS5uYW1lPT09InN0cmluZyImJlNiKEEubmFtZSwid2ViLXBpeGVsLXNhbmRib3gtQ1VTVE9NIikmJnNkKCk/WlQoImRNRGcwWXoiKTpBLlNob3BpZnkmJihaVCgiZE4yWmtNaiIpLHNkKCkmJlpUKCJkTlRVMFl6IikpO21VKCl9fX1jYXRjaChiKXtpbSg1KSxoeigpfX0KKGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoKXtuPUIuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGF0YS10YWctYXNzaXN0YW50LXByZXNlbnQiKTtnbChuKSYmKGw9aC54bSl9ZnVuY3Rpb24gYygpe2wmJktjP2cobCk6YSgpfWlmKCFBW0UoMzcpXSl7dmFyIGQ9ITE7aWYoQi5yZWZlcnJlcil7dmFyIGU9UmooQi5yZWZlcnJlcik7ZD1OaihlLCJob3N0Iik9PT1FKDM4KX1pZighZCl7dmFyIGY9Y3EoRSgzOSkpO2Q9ISghZi5sZW5ndGh8fCFmWzBdLmxlbmd0aCl9ZCYmKEFbRSgzNyldPSEwLFVjKEUoNDApKSl9dmFyIGc9ZnVuY3Rpb24odSl7dmFyIHY9IkdUTSIseD0iR1RNIjtJZig0NSkmJih2PSJPR1QiLHg9IkdUQUciKTt2YXIgeT1FKDIzKSx6PUFbeV07enx8KHo9W10sQVt5XT16LFVjKCJodHRwczovLyIrRSgzKSsiL2RlYnVnL2Jvb3RzdHJhcD9pZD0iK0UoNSkrIiZzcmM9Iit4KyImY29uZD0iK1N0cmluZyh1KSsiJmd0bT0iK2R1KCkpKTt2YXIgQz17bWVzc2FnZVR5cGU6IkNPTlRBSU5FUl9TVEFSVElORyIsCmRhdGE6e3NjcmlwdFNvdXJjZTpLYyxjb250YWluZXJQcm9kdWN0OnYsZGVidWc6ITEsaWQ6RSg1KSx0YXJnZXRSZWY6e2N0aWQ6RSg1KSxpc0Rlc3RpbmF0aW9uOnNrKCksY2Fub25pY2FsSWQ6RSg2KX0sYWxpYXNlczp3aygpLGRlc3RpbmF0aW9uczp0aygpfX0sRD1DLmRhdGE7RC5yZXN1bWU9ZnVuY3Rpb24oKXthKCl9O0QucmVzdW1lV2l0aE1lbW9zPWZ1bmN0aW9uKCl7c2woMSk7YSgpfTtJZigyKSYmKEMuZGF0YS5pbml0aWFsUHVibGlzaD0hMCk7ei5wdXNoKEMpfSxoPXtHcToxLFBtOjIsb246MyxqbDo0LHhtOjV9O2hbaC5HcV09IkdUTV9ERUJVR19MRUdBQ1lfUEFSQU0iO2hbaC5QbV09IkdUTV9ERUJVR19QQVJBTSI7aFtoLm9uXT0iUkVGRVJSRVIiO2hbaC5qbF09IkNPT0tJRSI7aFtoLnhtXT0iRVhURU5TSU9OX1BBUkFNIjt2YXIgbD12b2lkIDAsbj12b2lkIDAscD1MaihBLmxvY2F0aW9uLCJxdWVyeSIsITEsdm9pZCAwLCJndG1fZGVidWciKTtnbChwKSYmKGw9aC5QbSk7CmlmKCFsJiZCLnJlZmVycmVyKXt2YXIgcT1SaihCLnJlZmVycmVyKTtOaihxLCJob3N0Iik9PT1FKDI0KSYmKGw9aC5vbil9aWYoIWwpe3ZhciByPWNxKCJfX1RBR19BU1NJU1RBTlQiKTtyLmxlbmd0aCYmclswXS5sZW5ndGgmJihsPWguamwpfWx8fGIoKTtpZighbCYmZmwobikpe3ZhciB0PSExOyRjKEIsIlRBRGVidWdTaWduYWwiLGZ1bmN0aW9uKCl7dHx8KHQ9ITAsYigpLGMoKSl9LCExKTtBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0fHwodD0hMCxiKCksYygpKX0sMjAwKX1lbHNlIGMoKX0pKGZ1bmN0aW9uKCl7IUlmKDQ3KXx8dG0oKVsiMCJdP3VtKCk6eG0oKX0pOwoKfSkoKQoK"}},"time_used":93,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":40,"receive":53,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/chunks/pages/_app-d2cf24766888d776.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.449Z","timestamp":1785127668449,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/static/chunks/pages/_app-d2cf24766888d776.js HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: application/javascript; charset=UTF-8\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\ncache-control: public, max-age=31536000, immutable\r\naccept-ranges: bytes\r\nlast-modified: Mon, 29 Jun 2026 05:34:13 GMT\r\netag: W/\"59ef-19f11def808\"\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nage: 334919\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=V8NrXyPOJvoNONBR5UXbkp2d7qhnakYDfts0iLKkVvmUpwZeJaBqd9peDgfDa%2FDHoRlugSXGbfENMcsp1DCpC7ITjBkDWKTLpK0fxhyJEiPjdfkVc40Usy%2B%2Fyw%3D%3D\"}]}\r\ncf-ray: a2190217db718be6-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"]}],"data":{"size":23023,"size_decoded":8131,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (22987), with no line terminators","md5":"547e2666aefaa22142dd7d5dc6509263","sha1":"fe24cf0da6f79876dbfd57da4a8a519875021f86","sha256":"012d0db4199958dbcaa9f05570576ff8cac37d931f210c02c467b83ee994b5d5","sha512":"8d4c09172b24f695d33261df2d98a64e7273419a0cb064e37b9df4d905b9310a96fb3ba84f226feb2bb74e09bdba6660ee443baccc21e8b64c69cf2107cc9d01","ssdeep":"384:Wx8CvoM6ZaEoSZQA37kQvlQoyvI2fTuaifTumY5UsIafTur3F8zKg5/ht:Wx8CAM6ZaExZQI77WoyvIVaxmvsIZr3q","tlshash":"cea219c47ad16c9344fb25e8d033932d707feb2a380da812f51f2d9511d4e99e2bab15","first_seen":"2026-07-27T03:56:11.740699Z","last_seen":"2026-07-27T04:49:42.850287Z","times_seen":3,"resource_available":true,"data":"dHJ5eyFmdW5jdGlvbigpe3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sbj0obmV3IGUuRXJyb3IpLnN0YWNrO24mJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbbl09IjBkZTIzMDBiLWY4ODYtNGZjNy05Y2U3LThlMzRkOGM3YjdhMiIsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9InNlbnRyeS1kYmlkLTBkZTIzMDBiLWY4ODYtNGZjNy05Y2U3LThlMzRkOGM3YjdhMiIpfSgpfWNhdGNoKGUpe30oc2VsZi53ZWJwYWNrQ2h1bmtfTl9FPXNlbGYud2VicGFja0NodW5rX05fRXx8W10pLnB1c2goW1syODg4XSx7Njg0MDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7KHdpbmRvdy5fX05FWFRfUD13aW5kb3cuX19ORVhUX1B8fFtdKS5wdXNoKFsiL19hcHAiLGZ1bmN0aW9uKCl7cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oODM5Myl9XSl9LDYzNzY1OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtiUTpmdW5jdGlvbigpe3JldHVybiBCQVNFX1NFVFRJTkd9LGMyOmZ1bmN0aW9uKCl7cmV0dXJuIENsYXJpdHlJZH0sdDA6ZnVuY3Rpb24oKXtyZXR1cm4gQ1JJU1BfSUR9LHpXOmZ1bmN0aW9uKCl7cmV0dXJuIEdPT0dMRV9QTEFZfSx6ejpmdW5jdGlvbigpe3JldHVybiBBUFBMRV9TVE9SRX19KTtsZXQgQ1JJU1BfSUQ9IjA0YzRhYzEwLWZmNzktNDBkMy05N2IyLWUwNjkxNzdjMWIzNyIsQkFTRV9TRVRUSU5HPXtlbWFpbDoiaW5mb0BidXZlaS5jb20ifSxDbGFyaXR5SWQ9InM2ZnVvN3k1ZHEiLEdPT0dMRV9QTEFZPSJodHRwczovL3BsYXkuZ29vZ2xlLmNvbS9zdG9yZS9hcHBzL2RldGFpbHM/aWQ9Y29tLmphY2ttYTEyNTQuYnV2ZWlhcHAiLEFQUExFX1NUT1JFPSJodHRwczovL2FwcHMuYXBwbGUuY29tL3VzL2FwcC9idXZlaS12aXJ0dWFsLWNhcmQtcGF5L2lkNjc1ODg1Mjc2NSJ9LDQ0MDE0OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtCOmZ1bmN0aW9uKCl7cmV0dXJuIFBSRUZJWH0sQzpmdW5jdGlvbigpe3JldHVybiBJU19URVNUfX0pO2xldCBJU19URVNUPSExLFBSRUZJWD1JU19URVNUPyJodHRwczovL3Rlc3QtYXBpLmNhcmRzZWxsZXIuY28vdjEvYiI6Imh0dHBzOi8vYXBpLmJ1dmVpLmNvbS92MS9iIn0sOTIyMTI6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18se1M6ZnVuY3Rpb24oKXtyZXR1cm4gZ2V0UmVzdWx0fX0pO2xldCBnZXRSZXN1bHQ9cmVzdWx0PT5yZXN1bHQmJnJlc3VsdC5zdWNjZXNzP3tzdWNjZXNzOiEwLGRhdGE6cmVzdWx0JiZyZXN1bHQucmVzdWx0fHxudWxsLG1zZzpyZXN1bHQmJnJlc3VsdC5tc2d8fHJlc3VsdC5tZXNzYWdlfHwiIn06e3N1Y2Nlc3M6ITEsY29kZTpyZXN1bHQmJnJlc3VsdC5jb2RlfHwiLTEiLG1zZzpyZXN1bHQmJihyZXN1bHQubXNnfHxyZXN1bHQubWVzc2FnZXx8IiIpfX0sNzI4OmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtKRzpmdW5jdGlvbigpe3JldHVybiBzdWJtaXRQYXJ0bmVyQXBwb2ludG1lbnR9LFFOOmZ1bmN0aW9uKCl7cmV0dXJuIHN1Ym1pdFBhcnRuZXJ9LGRGOmZ1bmN0aW9uKCl7cmV0dXJuIHNhdmVVc2VyVmlzaXRTdGF0fSxsQjpmdW5jdGlvbigpe3JldHVybiBzdWJtaXRBcHBvaW50bWVudH19KTt2YXIgdXRpbHNfdG9vbF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fPV9fd2VicGFja19yZXF1aXJlX18oNTkwMTQpLGNvbmZpZ19ob3N0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX189X193ZWJwYWNrX3JlcXVpcmVfXyg0NDAxNCksX2NvbW1vbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fPV9fd2VicGFja19yZXF1aXJlX18oOTIyMTIpO2xldCBzdWJtaXRQYXJ0bmVyQXBwb2ludG1lbnQ9YXN5bmMgb3B0aW9ucz0+e2xldCByZXM9KDAsX2NvbW1vbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlMpKGF3YWl0IHV0aWxzX3Rvb2xfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5XWS5wb3N0KCIiLmNvbmNhdChjb25maWdfaG9zdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkIsIi9mb3JtL3BhcnRuZXJBcHBvaW50bWVudC9zYXZlIiksb3B0aW9ucykpO3JldHVybiByZXMuc3VjY2VzcyxyZXN9LHN1Ym1pdEFwcG9pbnRtZW50PWFzeW5jIG9wdGlvbnM9PntsZXQgcmVzPSgwLF9jb21tb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5TKShhd2FpdCB1dGlsc190b29sX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uV1kucG9zdCgiIi5jb25jYXQoY29uZmlnX2hvc3RfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5CLCIvZm9ybS9hcHBvaW50bWVudC9zYXZlIiksb3B0aW9ucykpO3JldHVybiByZXMuc3VjY2VzcyxyZXN9LHN1Ym1pdFBhcnRuZXI9YXN5bmMgb3B0aW9ucz0+e2xldCByZXM9KDAsX2NvbW1vbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlMpKGF3YWl0IHV0aWxzX3Rvb2xfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5XWS5wb3N0KCIiLmNvbmNhdChjb25maWdfaG9zdF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkIsIi9mb3JtL3BhcnRuZXIvc2F2ZSIpLG9wdGlvbnMpKTtyZXR1cm4gcmVzLnN1Y2Nlc3MscmVzfSxzYXZlVXNlclZpc2l0U3RhdD1hc3luYyBvcHRpb25zPT57bGV0IHJlcz0oMCxfY29tbW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uUykoYXdhaXQgdXRpbHNfdG9vbF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLldZLnBvc3QoIiIuY29uY2F0KGNvbmZpZ19ob3N0X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQiwiL3Zpc2l0L3N0YXQvc2F2ZSIpLG9wdGlvbnMpKTtyZXR1cm4gcmVzLnN1Y2Nlc3MscmVzfX0sODkzNzk6ZnVuY3Rpb24oX191bnVzZWRfd2VicGFja19tb2R1bGUsX193ZWJwYWNrX2V4cG9ydHNfXyxfX3dlYnBhY2tfcmVxdWlyZV9fKXsidXNlIHN0cmljdCI7dmFyIF9zZW50cnlfbmV4dGpzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX189X193ZWJwYWNrX3JlcXVpcmVfXyg5MjkxOCksX3NlbnRyeV9uZXh0anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXz1fX3dlYnBhY2tfcmVxdWlyZV9fKDc5ODgzKTtnbG9iYWxUaGlzLl9zZW50cnlSZXdyaXRlc1R1bm5lbFBhdGg9Ii9tb25pdG9yaW5nIixnbG9iYWxUaGlzLlNFTlRSWV9SRUxFQVNFPXZvaWQgMCxnbG9iYWxUaGlzLl9zZW50cnlCYXNlUGF0aD12b2lkIDAsZ2xvYmFsVGhpcy5fc2VudHJ5TmV4dEpzVmVyc2lvbj0iMTMuMC4zIixnbG9iYWxUaGlzLl9zZW50cnlSZXdyaXRlRnJhbWVzQXNzZXRQcmVmaXhQYXRoPSIiLGdsb2JhbFRoaXMuX3NlbnRyeUFzc2V0UHJlZml4PXZvaWQgMCxnbG9iYWxUaGlzLl9zZW50cnlFeHBlcmltZW50YWxUaGlyZFBhcnR5T3JpZ2luU3RhY2tGcmFtZXM9dm9pZCAwLGdsb2JhbFRoaXMuX3NlbnRyeVJvdXRlTWFuaWZlc3Q9J3siaXNyUm91dGVzIjpbXSwiZHluYW1pY1JvdXRlcyI6W10sInN0YXRpY1JvdXRlcyI6W119Jyxfc2VudHJ5X25leHRqc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlMxbih7ZHNuOiJodHRwczovL2YwYzViYzM1OWQ3ODZkOGMwYTU2ZTlhMzgxMTliNTQzQG80NTEwNDY5NzQxMjgxMjgwLmluZ2VzdC51cy5zZW50cnkuaW8vNDUxMDY2MTMwMjQ4NDk5MiIsdHJhY2VzU2FtcGxlUmF0ZToxLGVuYWJsZUxvZ3M6ITAsc2VuZERlZmF1bHRQaWk6ITB9KSxfc2VudHJ5X25leHRqc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLlFVfSw4MzkzOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLF9fd2VicGFja19leHBvcnRzX18sX193ZWJwYWNrX3JlcXVpcmVfXyl7InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7ZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBfYXBwfSxyZXBvcnRXZWJWaXRhbHM6ZnVuY3Rpb24oKXtyZXR1cm4gcmVwb3J0V2ViVml0YWxzfX0pO3ZhciBlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtPV9fd2VicGFja19yZXF1aXJlX18oMzU5NDQpLHJlYWN0PV9fd2VicGFja19yZXF1aXJlX18oNjcyOTQpLGVzbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDg2OTApLGhlYWQ9X193ZWJwYWNrX3JlcXVpcmVfXyg5MDA4KSxoZWFkX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGhlYWQpO2xldCBUSFJFU0hPTERTPXtDTFM6e2dvb2Q6LjEsbmVlZHNJbXByb3ZlbWVudDouMjV9LEZJRDp7Z29vZDoxMDAsbmVlZHNJbXByb3ZlbWVudDozMDB9LEZDUDp7Z29vZDoxODAwLG5lZWRzSW1wcm92ZW1lbnQ6M2UzfSxMQ1A6e2dvb2Q6MjUwMCxuZWVkc0ltcHJvdmVtZW50OjRlM30sVFRGQjp7Z29vZDo4MDAsbmVlZHNJbXByb3ZlbWVudDoxODAwfSxJTlA6e2dvb2Q6MjAwLG5lZWRzSW1wcm92ZW1lbnQ6NTAwfX07ZnVuY3Rpb24gcmVwb3J0V2ViVml0YWxzKG1ldHJpYyl7IWZ1bmN0aW9uKG1ldHJpYyl7aWYoIXdpbmRvdy5ndGFnKXJldHVybjtsZXQgcmF0aW5nPWZ1bmN0aW9uKG1ldHJpYyl7bGV0IHRocmVzaG9sZHM9VEhSRVNIT0xEU1ttZXRyaWMubmFtZV07cmV0dXJuIXRocmVzaG9sZHN8fG1ldHJpYy52YWx1ZTw9dGhyZXNob2xkcy5nb29kPyJnb29kIjptZXRyaWMudmFsdWU8PXRocmVzaG9sZHMubmVlZHNJbXByb3ZlbWVudD8ibmVlZHMtaW1wcm92ZW1lbnQiOiJwb29yIn0obWV0cmljKTt3aW5kb3cuZ3RhZygiZXZlbnQiLG1ldHJpYy5uYW1lLHtldmVudF9jYXRlZ29yeToiV2ViIFZpdGFscyIsZXZlbnRfbGFiZWw6bWV0cmljLmlkLHZhbHVlOk1hdGgucm91bmQoIkNMUyI9PT1tZXRyaWMubmFtZT8xZTMqbWV0cmljLnZhbHVlOm1ldHJpYy52YWx1ZSksbWV0cmljX3JhdGluZzpyYXRpbmcsbWV0cmljX2RlbHRhOk1hdGgucm91bmQoIkNMUyI9PT1tZXRyaWMubmFtZT8xZTMqbWV0cmljLmRlbHRhOm1ldHJpYy5kZWx0YSksbm9uX2ludGVyYWN0aW9uOiEwfSl9KG1ldHJpYyl9dmFyIGNyaXNwX2VzbT1fX3dlYnBhY2tfcmVxdWlyZV9fKDM2NjYxKSxjb25zdGFudD1fX3dlYnBhY2tfcmVxdWlyZV9fKDYzNzY1KSxjb25maWdfcHJvdmlkZXI9X193ZWJwYWNrX3JlcXVpcmVfXygzNzgxMiksdG9vbD1fX3dlYnBhY2tfcmVxdWlyZV9fKDU5MDE0KSxzY3JpcHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg0Mjk4KSxzY3JpcHRfZGVmYXVsdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oc2NyaXB0KSxuZXh0X3JvdXRlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDExMTYzKSxxdWVzdGlvbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDcyOCk7bGV0IGdlbmVyYXRlTmFtZT0oKT0+e2lmKCFkb2N1bWVudC5yZWZlcnJlcilyZXR1cm4idW5Lbm93Ijtmb3IobGV0W2tleSx2YWx1ZV1vZiBPYmplY3QuZW50cmllcyh7YmFpZHU6ImJhaWR1Iixnb29nbGU6Imdvb2dsZSIsa3VhamluemhpZnU6Imt1YWZ1Iix5b3V0dWJlOiJ5b3V0dWJlIixiaW5nOiJiaW5nIix5YWhvbzoieWFob28iLG15c2hvcGxpbmU6InNob3BsaW5lIixibG9nOiJibG9nIixjaGF0Z3B0OiJDaGF0R3B0In0pKWlmKGRvY3VtZW50LnJlZmVycmVyLmluY2x1ZGVzKGtleSkpcmV0dXJuIHZhbHVlO3JldHVybiJ1bktub3cifSxzYWZlRGVjb2RlPXY9Pnt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh2KX1jYXRjaChlKXtyZXR1cm4gdn19LHJ1bldoZW5JZGxlPWZ1bmN0aW9uKGZuKXtsZXQgdGltZW91dD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MWUzOyJyZXF1ZXN0SWRsZUNhbGxiYWNrImluIHdpbmRvdz9yZXF1ZXN0SWRsZUNhbGxiYWNrKGZuLHt0aW1lb3V0fSk6c2V0VGltZW91dChmbix0aW1lb3V0KX0sQXBwPXByb3BzPT57dmFyIF9nZXRMYXlvdXQ7bGV0e0NvbXBvbmVudCxwYWdlUHJvcHN9PXByb3BzLHJvdXRlcj0oMCxuZXh0X3JvdXRlci51c2VSb3V0ZXIpKCksdHJhY2tpbmdJbml0aWFsaXplZD0oMCxyZWFjdC51c2VSZWYpKCExKSxjcmlzcEluaXRpYWxpemVkPSgwLHJlYWN0LnVzZVJlZikoITEpO2Z1bmN0aW9uIGluaXRpYWxpemVDcmlzcCh1c2VyTmFtZSxzdG9yYWdlKXtpZighY3Jpc3BJbml0aWFsaXplZC5jdXJyZW50KXtjcmlzcEluaXRpYWxpemVkLmN1cnJlbnQ9ITA7dHJ5e2NyaXNwX2VzbS5mdi5jb25maWd1cmUoY29uc3RhbnQudDAse2xvY2FsZToiZW4ifSk7bGV0e3Msa3d9PSgwLHRvb2wucG0pKCksYXR0ZW1wdHM9MCxjb25maWd1cmVDcmlzcD0oKT0+eyhudWxsPT09Y3Jpc3BfZXNtLmZ2fHx2b2lkIDA9PT1jcmlzcF9lc20uZnY/dm9pZCAwOmNyaXNwX2VzbS5mdi5zZXNzaW9uKT8oY3Jpc3BfZXNtLmZ2LnVzZXIuc2V0Tmlja25hbWUodXNlck5hbWUpLGNyaXNwX2VzbS5mdi5zZXNzaW9uLnNldERhdGEoe3NvdXJjZUNvZGU6a3d8fHN8fCJ1bmtub3duIixyZWZlcnJlcjpkb2N1bWVudC5yZWZlcnJlcixpc1JldHVybmluZ1VzZXI6KG51bGw9PXN0b3JhZ2U/dm9pZCAwOnN0b3JhZ2UuZ2V0SXRlbSgiSEFTX1JFQ09SREVEX1ZJU0lUIikpPT09InRydWUifSkpOmF0dGVtcHRzKys8MTAmJnJlcXVlc3RBbmltYXRpb25GcmFtZShjb25maWd1cmVDcmlzcCl9O3JlcXVlc3RBbmltYXRpb25GcmFtZShjb25maWd1cmVDcmlzcCl9Y2F0Y2goZXJyb3Ipe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGNvbmZpZ3VyZSBDcmlzcDoiLGVycm9yKX19fSgwLHJlYWN0LnVzZUVmZmVjdCkoKCk9PntpZih0cmFja2luZ0luaXRpYWxpemVkLmN1cnJlbnQpcmV0dXJuO3RyYWNraW5nSW5pdGlhbGl6ZWQuY3VycmVudD0hMDtsZXQgc3RvcmFnZT0oMCx0b29sLkVOKSgpLGhhc1JlY29yZGVkPShudWxsPT1zdG9yYWdlP3ZvaWQgMDpzdG9yYWdlLmdldEl0ZW0oIkhBU19SRUNPUkRFRF9WSVNJVCIpKT09PSJ0cnVlIixiaWQ9KG51bGw9PXN0b3JhZ2U/dm9pZCAwOnN0b3JhZ2UuZ2V0SXRlbSgiVVNFUl9CSUQiKSl8fFN0cmluZygoMCx0b29sLk1IKSgpKSx1cGRhdGVBcHBMaW5rcz0oKT0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImEiKS5mb3JFYWNoKGxpbms9Pnt2YXIgcmVmO2lmKG51bGw9PT0ocmVmPWxpbmsuZ2V0QXR0cmlidXRlKCJocmVmIikpfHx2b2lkIDA9PT1yZWY/dm9pZCAwOnJlZi5pbmNsdWRlcygiYXBwIikpdHJ5e2xldCB1cmw9bmV3IFVSTChsaW5rLmhyZWYsd2luZG93LmxvY2F0aW9uLm9yaWdpbik7dXJsLnNlYXJjaFBhcmFtcy5zZXQoImJpZCIsYmlkKSxsaW5rLmhyZWY9dXJsLnRvU3RyaW5nKCl9Y2F0Y2goZSl7fX0pfTtpZihydW5XaGVuSWRsZSh1cGRhdGVBcHBMaW5rcywyZTMpLGhhc1JlY29yZGVkKXtpbml0aWFsaXplQ3Jpc3AoKG51bGw9PXN0b3JhZ2U/dm9pZCAwOnN0b3JhZ2UuZ2V0SXRlbSgiU09VUkNFIikpfHwiIixzdG9yYWdlKTtyZXR1cm59bGV0e3MsZ2NsaWQsa3cscSxtYXRjaH09KDAsdG9vbC5wbSkoKSx0aW1lc3RhbXA9KDAsdG9vbC52YykobmV3IERhdGUoKS5nZXRUaW1lKCksIk1NL2RkIGhoOm1tIiksdXNlck5hbWU9IiIuY29uY2F0KGJpZCwiICIpLmNvbmNhdCh0aW1lc3RhbXApLHVzZXJUYWc9Z2NsaWR8fGt3PyJHb29nbGUiOnN8fGdlbmVyYXRlTmFtZSgpO251bGw9PXN0b3JhZ2V8fHN0b3JhZ2Uuc2V0SXRlbSgiU09VUkNFIix1c2VyTmFtZSksbnVsbD09c3RvcmFnZXx8c3RvcmFnZS5zZXRJdGVtKCJTT1VSQ0VfVEFHIix1c2VyVGFnKSxudWxsPT1zdG9yYWdlfHxzdG9yYWdlLnNldEl0ZW0oIlVTRVJfQklEIixiaWQpO2xldCBzZW5kU3RhdHM9KCk9Pnt0cnl7dmFyIHJlZjsoMCxxdWVzdGlvbi5kRikoe2ZpbmdlcnByaW50OmZ1bmN0aW9uKCl7bGV0IGNvbXBvbmVudHM9W25hdmlnYXRvci51c2VyQWdlbnQsbmF2aWdhdG9yLmxhbmd1YWdlLHNjcmVlbi5jb2xvckRlcHRoLG5hdmlnYXRvci5oYXJkd2FyZUNvbmN1cnJlbmN5fHwwLG5hdmlnYXRvci5wbGF0Zm9ybSxuYXZpZ2F0b3IuZG9Ob3RUcmFja3x8IjAiLEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZV0sZGF0YT1jb21wb25lbnRzLmpvaW4oIjo6Iik7cmV0dXJuIGZ1bmN0aW9uKGFzY2lpKXtmdW5jdGlvbiByaWdodFJvdGF0ZSh2YWx1ZSxhbW91bnQpe3JldHVybiB2YWx1ZT4+PmFtb3VudHx2YWx1ZTw8MzItYW1vdW50fWxldCBtYXhXb3JkPSgwLE1hdGgucG93KSgyLDMyKSxyZXN1bHQ9IiIsd29yZHM9W10sYXNjaWlCaXRMZW5ndGg9OCphc2NpaS5sZW5ndGgsaGFzaD1bXSxrPVtdLHByaW1lQ291bnRlcj0wLGlzUHJpbWU9bj0+e2ZvcihsZXQgaT0yO2kqaTw9bjtpKyspaWYobiVpPT0wKXJldHVybiExO3JldHVybiEwfTtmb3IobGV0IGNhbmRpZGF0ZT0yO3ByaW1lQ291bnRlcjw2NDtjYW5kaWRhdGUrKylpZihpc1ByaW1lKGNhbmRpZGF0ZSkpe3ZhciBuLG4xO2hhc2hbcHJpbWVDb3VudGVyXT0oKG49TWF0aC5wb3coY2FuZGlkYXRlLC41KSktKDB8bikpKm1heFdvcmR8MCxrW3ByaW1lQ291bnRlcl09KChuMT1NYXRoLnBvdyhjYW5kaWRhdGUsMS8zKSktKDB8bjEpKSptYXhXb3JkfDAscHJpbWVDb3VudGVyKyt9Zm9yKGFzY2lpKz0iXHg4MCI7YXNjaWkubGVuZ3RoJTY0LTU2Oylhc2NpaSs9IlwwIjtmb3IobGV0IGk9MDtpPGFzY2lpLmxlbmd0aDtpKyspe2xldCBqPWFzY2lpLmNoYXJDb2RlQXQoaSk7aWYoaj4+OClyZXR1cm4iIjt3b3Jkc1tpPj4yXXw9ajw8KDMtaSklNCo4fXdvcmRzW3dvcmRzLmxlbmd0aF09YXNjaWlCaXRMZW5ndGgvbWF4V29yZHwwLHdvcmRzW3dvcmRzLmxlbmd0aF09YXNjaWlCaXRMZW5ndGg7Zm9yKGxldCBqMT0wO2oxPHdvcmRzLmxlbmd0aDspe2xldCB3PXdvcmRzLnNsaWNlKGoxLGoxKz0xNiksb2xkSGFzaD1oYXNoLnNsaWNlKCk7Zm9yKGxldCBpMT0wO2kxPDY0O2kxKyspe2xldCB3MTU9d1tpMS0xNV0sdzI9d1tpMS0yXSxhPWhhc2hbMF0sZT1oYXNoWzRdLHRlbXAxPWhhc2hbN10rKHJpZ2h0Um90YXRlKGUsNilecmlnaHRSb3RhdGUoZSwxMSlecmlnaHRSb3RhdGUoZSwyNSkpKyhlJmhhc2hbNV1efmUmaGFzaFs2XSkra1tpMV0rKHdbaTFdPWkxPDE2P3dbaTFdOndbaTEtMTZdKyhyaWdodFJvdGF0ZSh3MTUsNylecmlnaHRSb3RhdGUodzE1LDE4KV53MTU+Pj4zKSt3W2kxLTddKyhyaWdodFJvdGF0ZSh3MiwxNylecmlnaHRSb3RhdGUodzIsMTkpXncyPj4+MTApfDApLHRlbXAyPShyaWdodFJvdGF0ZShhLDIpXnJpZ2h0Um90YXRlKGEsMTMpXnJpZ2h0Um90YXRlKGEsMjIpKSsoYSZoYXNoWzFdXmEmaGFzaFsyXV5oYXNoWzFdJmhhc2hbMl0pOyhoYXNoPVt0ZW1wMSt0ZW1wMnwwXS5jb25jYXQoaGFzaCkpWzRdPWhhc2hbNF0rdGVtcDF8MCxoYXNoLnBvcCgpfWZvcihsZXQgaTI9MDtpMjw4O2kyKyspaGFzaFtpMl09aGFzaFtpMl0rb2xkSGFzaFtpMl18MH1mb3IobGV0IGkzPTA7aTM8ODtpMysrKWZvcihsZXQgajI9MztqMisxO2oyLS0pe2xldCBiPWhhc2hbaTNdPj44KmoyJjI1NTtyZXN1bHQrPShiPDE2PzA6IiIpK2IudG9TdHJpbmcoMTYpfXJldHVybiByZXN1bHR9KGRhdGEpfSgpLHBsYXRmb3JtOiJIT01FIixuYW1lOnVzZXJOYW1lLHNvdXJjZTp1c2VyVGFnLHNvdXJjZUNvZGU6a3d8fHN8fCIiLGJyb3dzZXJTb3VyY2U6ZG9jdW1lbnQucmVmZXJyZXIsdXJsOnNhZmVEZWNvZGUod2luZG93LmxvY2F0aW9uLmhyZWYpLG1ldGFkYXRhOkpTT04uc3RyaW5naWZ5KHtuYW1lOnVzZXJOYW1lLHNvdXJjZTp1c2VyVGFnLGJpZCx1cmw6c2FmZURlY29kZSh3aW5kb3cubG9jYXRpb24uaHJlZikscmVmZXJyZXI6ZG9jdW1lbnQucmVmZXJyZXIsa3cscSxtYXRjaCxnY2xpZCxsYW5ndWFnZTpuYXZpZ2F0b3IubGFuZ3VhZ2UsbGFuZ3VhZ2VzOm5hdmlnYXRvci5sYW5ndWFnZXMsdXNlckFnZW50Om5hdmlnYXRvci51c2VyQWdlbnQscGxhdGZvcm06bmF2aWdhdG9yLnBsYXRmb3JtLHZlbmRvcjpuYXZpZ2F0b3IudmVuZG9yLHNjcmVlblJlc29sdXRpb246IiIuY29uY2F0KHNjcmVlbi53aWR0aCwieCIpLmNvbmNhdChzY3JlZW4uaGVpZ2h0KSxzY3JlZW5Db2xvckRlcHRoOnNjcmVlbi5jb2xvckRlcHRoLHZpZXdwb3J0OiIiLmNvbmNhdChpbm5lcldpZHRoLCJ4IikuY29uY2F0KGlubmVySGVpZ2h0KSxjb29raWVFbmFibGVkOm5hdmlnYXRvci5jb29raWVFbmFibGVkLG9uTGluZTpuYXZpZ2F0b3Iub25MaW5lLGhhcmR3YXJlQ29uY3VycmVuY3k6bmF2aWdhdG9yLmhhcmR3YXJlQ29uY3VycmVuY3ksZGV2aWNlTWVtb3J5Om5hdmlnYXRvci5kZXZpY2VNZW1vcnl8fCJ1bmtub3duIix0aW1lem9uZTpJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmUsdGltZXpvbmVPZmZzZXQ6bmV3IERhdGUoKS5nZXRUaW1lem9uZU9mZnNldCgpLGNvbm5lY3Rpb25UeXBlOihudWxsPT09KHJlZj1uYXZpZ2F0b3IuY29ubmVjdGlvbil8fHZvaWQgMD09PXJlZj92b2lkIDA6cmVmLmVmZmVjdGl2ZVR5cGUpfHwidW5rbm93biJ9KX0pLG51bGw9PXN0b3JhZ2V8fHN0b3JhZ2Uuc2V0SXRlbSgiSEFTX1JFQ09SREVEX1ZJU0lUIiwidHJ1ZSIpLG51bGw9PXN0b3JhZ2V8fHN0b3JhZ2Uuc2V0SXRlbSgiRklSU1RfVklTSVRfVElNRSIsbmV3IERhdGUoKS50b0lTT1N0cmluZygpKX1jYXRjaChlcnJvcil7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHJlY29yZCBmaXJzdCB2aXNpdDoiLGVycm9yKX19O3J1bldoZW5JZGxlKHNlbmRTdGF0cywxZTMpLGluaXRpYWxpemVDcmlzcCh1c2VyTmFtZSxzdG9yYWdlKX0sW10pLCgwLHJlYWN0LnVzZUVmZmVjdCkoKCk9PntydW5XaGVuSWRsZSgoKT0+e3RyeXsoMCx0b29sLkxmKSgiZXZlbnQiLHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSl9Y2F0Y2goZXJyb3Ipe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIHNlbmQgQ2xhcml0eSBldmVudDoiLGVycm9yKX19KX0sW3JvdXRlci5hc1BhdGhdKSwoMCxyZWFjdC51c2VFZmZlY3QpKCgpPT57dmFyIHJlZjtsZXQganNzU3R5bGVzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNqc3Mtc2VydmVyLXNpZGUiKTtudWxsPT1qc3NTdHlsZXN8fG51bGw9PT0ocmVmPWpzc1N0eWxlcy5wYXJlbnRFbGVtZW50KXx8dm9pZCAwPT09cmVmfHxyZWYucmVtb3ZlQ2hpbGQoanNzU3R5bGVzKX0sW10pO2xldCBnZXRMYXlvdXQ9bnVsbCE9PShfZ2V0TGF5b3V0PUNvbXBvbmVudC5nZXRMYXlvdXQpJiZ2b2lkIDAhPT1fZ2V0TGF5b3V0P19nZXRMYXlvdXQ6cGFnZT0+cGFnZTtyZXR1cm4oMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkJYKShlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLkhZLHtjaGlsZHJlbjpbKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS50WikoaGVhZF9kZWZhdWx0KCkse2NoaWxkcmVuOigwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKCJtZXRhIix7bmFtZToidmlld3BvcnQiLGNvbnRlbnQ6ImluaXRpYWwtc2NhbGU9MSwgd2lkdGg9ZGV2aWNlLXdpZHRoIn0pfSksKDAsZW1vdGlvbl9yZWFjdF9qc3hfcnVudGltZV9icm93c2VyX2VzbS5CWCkoY29uZmlnX3Byb3ZpZGVyLlpQLHt0aGVtZTp7dG9rZW46e2NvbG9yUHJpbWFyeToiIzM4NEFBMCIsY29sb3JUZXh0OiIjMjEyQjU1ICIsY29sb3JUZXh0U2Vjb25kYXJ5OiJyZ2JhKDExLDM3LDg2LCAwLjY1KSIsY29sb3JUZXh0VGVydGlhcnk6InJnYmEoMTEsMzcsODYsIDAuNDUpIixjb2xvclRleHRRdWF0ZXJuYXJ5OiJyZ2JhKDExLDM3LDg2LCAwLjI1KSIsY29sb3JTdWNjZXNzQm9yZGVyOiIjQkFFMEZGIixjb2xvckluZm86IiMzODRBQTAiLGNvbG9yVGV4dEJhc2U6IiMyMTJCNTUgIixib3JkZXJSYWRpdXM6NH0sY29tcG9uZW50czp7VHlwb2dyYXBoeTp7Y29sb3JUZXh0RGVzY3JpcHRpb246InJnYmEoMTEsMzcsODYsIDAuNjUpIn0sQnJlYWRjcnVtYjp7aXRlbUNvbG9yOiJyZ2JhKDExLDM3LDg2LCAwLjQ1KSIsbGFzdEl0ZW1Db2xvcjoicmdiYSgxMSwzNyw4NikiLHNlcGFyYXRvckNvbG9yOiJyZ2JhKDExLDM3LDg2LCAwLjQ1KSIsaWNvbkZvbnRTaXplOjIwLGxpbmtDb2xvcjoicmdiYSgxMSwzNyw4NiwgMC40NSkiLGZvbnRTaXplOjIwLGZvbnRTaXplSWNvbjoxNn0sRHJvcGRvd246e2JvcmRlclJhZGl1c0xHOjYsY29sb3JUZXh0RGlzYWJsZWQ6InJnYmEoMTEsMzcsODYsIDAuMjUpIn0sTWVudTp7ZHJvcGRvd25XaWR0aDoyMDAsaXRlbUJvcmRlclJhZGl1czo2LGl0ZW1Db2xvcjoiIzIxMkI1NSAiLGl0ZW1Ib3ZlckNvbG9yOiIjMjEyQjU1ICIsaG9yaXpvbnRhbEl0ZW1Ib3ZlckNvbG9yOiIjMzg0QUEwIixncm91cFRpdGxlQ29sb3I6InJnYmEoMTEsMzcsODYsIDAuNDUpIixpdGVtU2VsZWN0ZWRDb2xvcjoiIzM4NEFBMCIsaG9yaXpvbnRhbEl0ZW1TZWxlY3RlZENvbG9yOiIjMzg0QUEwIixpdGVtQWN0aXZlQmc6IiNFNUVFRkYiLGl0ZW1TZWxlY3RlZEJnOiIjRTVFRUZGIixpY29uU2l6ZToxNixncm91cFRpdGxlRm9udFNpemU6MTJ9LFRhZzp7Ym9yZGVyUmFkaXVzU006NCxmb250U2l6ZToxMn0sTW9kYWw6e3BhZGRpbmc6MjR9LElucHV0Ontib3JkZXJSYWRpdXM6NH0sU2VsZWN0Ontib3JkZXJSYWRpdXM6NH0sQnV0dG9uOntib3JkZXJSYWRpdXM6NH0sVG9vbHRpcDp7Y29sb3JCZ1Nwb3RsaWdodDoiIzdBN0E3QSIsZm9udFNpemU6MTJ9fX0sY2hpbGRyZW46WygwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKHNjcmlwdF9kZWZhdWx0KCkse2lkOiJnb29nbGUtdGFnLW1hbmFnZXIiLHN0cmF0ZWd5OiJsYXp5T25sb2FkIixzcmM6Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0YWcvanM/aWQ9Ry0wODVUNlk3UEJQIn0pLCgwLGVtb3Rpb25fcmVhY3RfanN4X3J1bnRpbWVfYnJvd3Nlcl9lc20udFopKHNjcmlwdF9kZWZhdWx0KCkse2lkOiJnb29nbGUtYW5hbHl0aWNzLWNvbmZpZyIsc3RyYXRlZ3k6ImxhenlPbmxvYWQiLGNoaWxkcmVuOiJcbiAgICAgICAgICB3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTtcbiAgICAgICAgICBmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9XG4gICAgICAgICAgZ3RhZygnanMnLCBuZXcgRGF0ZSgpKTtcbiAgICAgICAgICBndGFnKCdjb25maWcnLCAnRy0wODVUNlk3UEJQJyk7XG4gICAgICAgICAgZ3RhZygnY29uZmlnJywgJ0FXLTExMjk3NTk0Nzk1Jyk7XG4gICAgICAgICJ9KSwoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShzY3JpcHRfZGVmYXVsdCgpLHtpZDoiY2xhcml0eS1zY3JpcHQiLHN0cmF0ZWd5OiJsYXp5T25sb2FkIixjaGlsZHJlbjonXG4gICAgICAgICAgICAoZnVuY3Rpb24oYyxsLGEscixpLHQseSl7XG4gICAgICAgICAgICAgIGNbYV09Y1thXXx8ZnVuY3Rpb24oKXsoY1thXS5xPWNbYV0ucXx8W10pLnB1c2goYXJndW1lbnRzKX07XG4gICAgICAgICAgICAgIHQ9bC5jcmVhdGVFbGVtZW50KHIpO3QuYXN5bmM9MTt0LnNyYz0iaHR0cHM6Ly93d3cuY2xhcml0eS5tcy90YWcvIitpO1xuICAgICAgICAgICAgICB5PWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUocilbMF07eS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LHkpO1xuICAgICAgICAgICAgfSkod2luZG93LCBkb2N1bWVudCwgImNsYXJpdHkiLCAic2NyaXB0IiwgIicuY29uY2F0KGNvbnN0YW50LmMyLCciKTtcbiAgICAgICAgICAnKX0pLGdldExheW91dCgoMCxlbW90aW9uX3JlYWN0X2pzeF9ydW50aW1lX2Jyb3dzZXJfZXNtLnRaKShDb21wb25lbnQsey4uLnBhZ2VQcm9wc30pKV19KV19KX07dmFyIF9hcHA9KDAsZXNtLkpjKShBcHApfSw1OTAxNDpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxfX3dlYnBhY2tfZXhwb3J0c19fLF9fd2VicGFja19yZXF1aXJlX18peyJ1c2Ugc3RyaWN0IjtfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7TGY6ZnVuY3Rpb24oKXtyZXR1cm4gY2xhcml0eX0sdmM6ZnVuY3Rpb24oKXtyZXR1cm4gZGF0ZUZvcm1hdH0scG06ZnVuY3Rpb24oKXtyZXR1cm4gZ2V0UXVlcnl9LFBrOmZ1bmN0aW9uKCl7cmV0dXJuIGlzQW5kcm9pZENsaWVudH0sQjA6ZnVuY3Rpb24oKXtyZXR1cm4gaXNJT1NDbGllbnR9LE1IOmZ1bmN0aW9uKCl7cmV0dXJuIHJhbmRvbU51bWJlcn0sV1k6ZnVuY3Rpb24oKXtyZXR1cm4gdG9vbF9yZXF1ZXN0fSxFTjpmdW5jdGlvbigpe3JldHVybiBzYWZlTG9jYWxTdG9yYWdlfSxfdjpmdW5jdGlvbigpe3JldHVybiBzbGVlcH19KTt2YXIgcXVlcnlfc3RyaW5nPV9fd2VicGFja19yZXF1aXJlX18oMTc1NjMpLHRocm90dGxlPV9fd2VicGFja19yZXF1aXJlX18oMjM0OTMpLHRocm90dGxlX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXy5uKHRocm90dGxlKTtmdW5jdGlvbiBwYXJzZUpTT04ocmVzcG9uc2Upe3JldHVybiByZXNwb25zZS5qc29uKCl9bGV0IGdvVG9Ib21lPXRocm90dGxlX2RlZmF1bHQoKSgoKT0+e30sMTUwMCx7bGVhZGluZzohMCx0cmFpbGluZzohMH0pO2Z1bmN0aW9uIHJlcXVlc3QoX3VybCxvcHRpb25zLG5vQ29ycyl7bGV0IG5ld09wdGlvbnM9ey4uLm9wdGlvbnN9O3JldHVybiBub0NvcnMmJihuZXdPcHRpb25zLm1vZGU9Im5vLWNvcnMiKSwoIlBPU1QiPT09bmV3T3B0aW9ucy5tZXRob2R8fCJQVVQiPT09bmV3T3B0aW9ucy5tZXRob2R8fCJHRVQiPT09bmV3T3B0aW9ucy5tZXRob2QpJiYobmV3T3B0aW9ucy5ib2R5IGluc3RhbmNlb2YgRm9ybURhdGE/bmV3T3B0aW9ucy5oZWFkZXJzPXtBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLC4uLm5ld09wdGlvbnMuaGVhZGVyc306KG5ld09wdGlvbnMuaGVhZGVycz17QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCIsLi4ubmV3T3B0aW9ucy5oZWFkZXJzfSxuZXdPcHRpb25zLmJvZHk9SlNPTi5zdHJpbmdpZnkobmV3T3B0aW9ucy5ib2R5KSkpLGZldGNoKF91cmwsbmV3T3B0aW9ucykudGhlbihyZXNwb25zZT0+KGZ1bmN0aW9uKHBhcmFtKXtsZXR7cmVzcG9uc2Usb3B0aW9ucyx1cmx9PXBhcmFtO2lmKHJlc3BvbnNlLnN0YXR1cz49MjAwJiZyZXNwb25zZS5zdGF0dXM8MzAwKXJldHVybiByZXNwb25zZTt7bGV0IGVycm9yPUVycm9yKHJlc3BvbnNlLnN0YXR1c1RleHQpO3Rocm93IGVycm9yLnJlc3BvbnNlPXJlc3BvbnNlLGVycm9yLm1lc3NhZ2U9SlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpLGVycm9yfX0pKHtyZXNwb25zZSxvcHRpb25zOm5ld09wdGlvbnMsdXJsOl91cmx9KSkudGhlbihwYXJzZUpTT04pLnRoZW4oZGF0YT0+e2lmKFN0cmluZygobnVsbD09ZGF0YT92b2lkIDA6ZGF0YS5jb2RlKXx8IiIpLnN0YXJ0c1dpdGgoIjQwMSIpJiYhd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLmluY2x1ZGVzKCJsb2dpbiIpKXtnb1RvSG9tZSgpO3JldHVybn1yZXR1cm4gZGF0YX0pLmNhdGNoKGVycj0+KGNvbnNvbGUuZXJyb3IoZXJyKSxlcnImJmVyci5yZXNwb25zZSYmNDAwPT09ZXJyLnJlc3BvbnNlLnN0YXR1cyk/ZXJyLnJlc3BvbnNlLmpzb24oKS50aGVuKGRhdGE9PntpZigiVU5fTE9HSU4iPT09ZGF0YS5jb2RlJiYiLyIhPT1sb2NhdGlvbi5ocmVmKTtlbHNlIGlmKCJVSUNfTUFTVEVSX0JMT0NLRUQiIT09ZGF0YS5jb2RlJiYiVUlDX1VTRVJfQkxPQ0tFRCIhPT1kYXRhLmNvZGV8fCIvIj09PWxvY2F0aW9uLmhyZWYpcmV0dXJue2VycjplcnJ8fG51bGx9fSkuY2F0Y2goZT0+e30pOntkYXRhOm51bGwsZXJyOmVycnx8bnVsbH0pfWxldCByZXF1ZXN0QmxvYj0oX3VybCxvcHRpb25zKT0+e2xldCBuZXdPcHRpb25zPXtjcmVkZW50aWFsczoiaW5jbHVkZSIsLi4ub3B0aW9uc307cmV0dXJuKCJQT1NUIj09PW5ld09wdGlvbnMubWV0aG9kfHwiUFVUIj09PW5ld09wdGlvbnMubWV0aG9kfHwiR0VUIj09PW5ld09wdGlvbnMubWV0aG9kKSYmKG5ld09wdGlvbnMuYm9keSBpbnN0YW5jZW9mIEZvcm1EYXRhP25ld09wdGlvbnMuaGVhZGVycz17QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwuLi5uZXdPcHRpb25zLmhlYWRlcnN9OihuZXdPcHRpb25zLmhlYWRlcnM9e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsIkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgiLC4uLm5ld09wdGlvbnMuaGVhZGVyc30sbmV3T3B0aW9ucy5ib2R5PUpTT04uc3RyaW5naWZ5KG5ld09wdGlvbnMuYm9keSkpKSxmZXRjaChfdXJsLG5ld09wdGlvbnMpLnRoZW4ocmVzcG9uc2U9PnJlc3BvbnNlLmJsb2IoKSkudGhlbihkYXRhPT5kYXRhKX07ZnVuY3Rpb24gcmVxdWVzdFNlcnZlcl9wYXJzZUpTT04ocmVzcG9uc2Upe3JldHVybiByZXNwb25zZS5qc29uKCl9dGhyb3R0bGVfZGVmYXVsdCgpKCgpPT57d2luZG93LmxvY2F0aW9uLmhyZWY9Ii9wYWdlcy9sb2dpbiJ9LDE1MDAse2xlYWRpbmc6ITAsdHJhaWxpbmc6ITB9KTtsZXQgZGF0ZUZvcm1hdD1mdW5jdGlvbihkYXRlKXtsZXQgZm9ybWF0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToieXl5eS1NTS1kZCBoaDptbTpzcyBUVCI7ZGF0ZXx8KGRhdGU9bmV3IERhdGUpLCJzdHJpbmciPT10eXBlb2YgZGF0ZSYmL15cZCskLy50ZXN0KGRhdGUpJiYoZGF0ZT1uZXcgRGF0ZSgrZGF0ZSkpLCJudW1iZXIiPT10eXBlb2YgZGF0ZSYmKGRhdGU9bmV3IERhdGUoZGF0ZSkpLCJudW1iZXIiPT10eXBlb2YgZGF0ZXx8ZGF0ZSBpbnN0YW5jZW9mIERhdGV8fChkYXRlPWRhdGUucmVwbGFjZSgv5bm0fOaciC9nLCItIikucmVwbGFjZSgv5pelL2csIiIpLGRhdGU9bmV3IERhdGUoZGF0ZSkpO2xldCBkdXJhdGlvbj1EYXRlLm5vdygpLWRhdGUuZ2V0VGltZSgpO2lmKCJkZWZhdWx0Ij09PWZvcm1hdCl7aWYoZHVyYXRpb248NmU0KXJldHVybiLliJrliJoiO2lmKGR1cmF0aW9uPj02ZTQmJmR1cmF0aW9uPDM2ZTUpcmV0dXJuIiIuY29uY2F0KE1hdGgucm91bmQoZHVyYXRpb24vNmU0KSwi5YiG6ZKf5YmNIik7aWYoZHVyYXRpb24+PTM2ZTUmJmR1cmF0aW9uPDg2NGU1KXJldHVybiIiLmNvbmNhdChNYXRoLnJvdW5kKGR1cmF0aW9uLzM2ZTUpLCLlsI/ml7bliY0iKTtkdXJhdGlvbj49ODY0ZTUmJmR1cmF0aW9uPDE3MjhlNSYmKGZvcm1hdD0i5pio5aSpIGhoOm1tIik7bGV0IF9kYXRlPW5ldyBEYXRlLF95ZWFyPV9kYXRlLmdldEZ1bGxZZWFyKCk7Zm9ybWF0PW5ldyBEYXRlKCIiLmNvbmNhdChfeWVhciwiLTAxLTAxIikpLmdldFRpbWUoKTw9ZGF0ZS5nZXRUaW1lKCk/Ik1N5pyIZGTml6UgaGg6bW0iOiJ5eXl55bm0TU3mnIhkZOaXpSBoaDptbSJ9bGV0IG89eyJNKyI6ZGF0ZS5nZXRNb250aCgpKzEsImQrIjpkYXRlLmdldERhdGUoKSwiaCsiOmRhdGUuZ2V0SG91cnMoKSwibSsiOmRhdGUuZ2V0TWludXRlcygpLCJzKyI6ZGF0ZS5nZXRTZWNvbmRzKCksInErIjpNYXRoLmZsb29yKChkYXRlLmdldE1vbnRoKCkrMykvMyksUzpkYXRlLmdldE1pbGxpc2Vjb25kcygpLCJUKyI6MTI+ZGF0ZS5nZXRIb3VycygpPyJBTSI6IlBNIiwiSCsiOmRhdGUuZ2V0SG91cnMoKSUxMj09MD8xMjpkYXRlLmdldEhvdXJzKCklMTJ9O3JldHVybi8oeSspLy50ZXN0KGZvcm1hdCkmJihmb3JtYXQ9Zm9ybWF0LnJlcGxhY2UoUmVnRXhwLiQxLFN0cmluZyhkYXRlLmdldEZ1bGxZZWFyKCkpLnN1YnN0cig0LVJlZ0V4cC4kMS5sZW5ndGgpKSksT2JqZWN0LmtleXMobykuZm9yRWFjaChrPT57UmVnRXhwKCIoIi5jb25jYXQoaywiKSIpKS50ZXN0KGZvcm1hdCkmJihmb3JtYXQ9Zm9ybWF0LnJlcGxhY2UoUmVnRXhwLiQxLDE9PT1SZWdFeHAuJDEubGVuZ3RoP29ba106IjAwIi5jb25jYXQob1trXSkuc3Vic3RyKFN0cmluZyhvW2tdKS5sZW5ndGgpKSl9KSxmb3JtYXR9LGdldFF1ZXJ5PXBhcmFtPT57bGV0IHVybD1wYXJhbXx8d2luZG93LmxvY2F0aW9uLnNlYXJjaDtyZXR1cm4oMCxxdWVyeV9zdHJpbmcucGFyc2VVcmwpKHVybCkucXVlcnl9LHNsZWVwPW1zPT5uZXcgUHJvbWlzZShyZXNvbHZlPT5zZXRUaW1lb3V0KHJlc29sdmUsbXMpKSxvYmplY3Qyc3RyaW5nPW9wdGlvbnM9PnF1ZXJ5X3N0cmluZy5zdHJpbmdpZnkob3B0aW9ucyksdG9vbF9yZXF1ZXN0PXtnZXQ6ZnVuY3Rpb24odXJsKXtsZXQgZGF0YT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl07bGV0IHF1ZXJ5PW9iamVjdDJzdHJpbmcoZGF0YSksc2VwPXVybC5pbmNsdWRlcygiPyIpPyImIjoiPyI7cmV0dXJuIHJlcXVlc3QoIiIuY29uY2F0KHVybCkuY29uY2F0KHF1ZXJ5P3NlcDoiIikuY29uY2F0KHF1ZXJ5KSl9LGdldFNlcnZlcjpmdW5jdGlvbih1cmwpe2xldCBkYXRhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTthcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXTtsZXQgcXVlcnk9b2JqZWN0MnN0cmluZyhkYXRhKSxzZXA9dXJsLmluY2x1ZGVzKCI/Iik/IiYiOiI/IjtyZXR1cm4gZnVuY3Rpb24oX3VybCxvcHRpb25zKXtsZXQgbmV3T3B0aW9ucz17Li4udm9pZCAwfTtyZXR1cm4oIlBPU1QiPT09bmV3T3B0aW9ucy5tZXRob2R8fCJQVVQiPT09bmV3T3B0aW9ucy5tZXRob2R8fCJHRVQiPT09bmV3T3B0aW9ucy5tZXRob2QpJiYobmV3T3B0aW9ucy5ib2R5IGluc3RhbmNlb2YgRm9ybURhdGE/bmV3T3B0aW9ucy5oZWFkZXJzPXtBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLC4uLm5ld09wdGlvbnMuaGVhZGVyc306KG5ld09wdGlvbnMuaGVhZGVycz17QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCIsLi4ubmV3T3B0aW9ucy5oZWFkZXJzfSxuZXdPcHRpb25zLmJvZHk9SlNPTi5zdHJpbmdpZnkobmV3T3B0aW9ucy5ib2R5KSkpLGZldGNoKF91cmwsbmV3T3B0aW9ucykudGhlbihyZXNwb25zZT0+KGZ1bmN0aW9uKHBhcmFtKXtsZXR7cmVzcG9uc2Usb3B0aW9ucyx1cmx9PXBhcmFtO2lmKHJlc3BvbnNlLnN0YXR1cz49MjAwJiZyZXNwb25zZS5zdGF0dXM8MzAwKXJldHVybiByZXNwb25zZTt7bGV0IGVycm9yPUVycm9yKHJlc3BvbnNlLnN0YXR1c1RleHQpO3Rocm93IGVycm9yLnJlc3BvbnNlPXJlc3BvbnNlLGVycm9yLm1lc3NhZ2U9SlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpLGVycm9yfX0pKHtyZXNwb25zZSxvcHRpb25zOm5ld09wdGlvbnMsdXJsOl91cmx9KSkudGhlbihyZXF1ZXN0U2VydmVyX3BhcnNlSlNPTikudGhlbihkYXRhPT5kYXRhKS5jYXRjaChlcnI9Pihjb25zb2xlLmVycm9yKGVyciksZXJyJiZlcnIucmVzcG9uc2UmJjQwMD09PWVyci5yZXNwb25zZS5zdGF0dXMpP2Vyci5yZXNwb25zZS5qc29uKCkudGhlbihkYXRhPT57fSkuY2F0Y2goZT0+e30pOntkYXRhOm51bGwsZXJyOmVycnx8bnVsbH0pfSgiIi5jb25jYXQodXJsKS5jb25jYXQocXVlcnk/c2VwOiIiKS5jb25jYXQocXVlcnkpKX0sZ2V0QmxvYjpmdW5jdGlvbih1cmwpe2xldCBkYXRhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTthcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXTtsZXQgcXVlcnk9b2JqZWN0MnN0cmluZyhkYXRhKSxzZXA9dXJsLmluY2x1ZGVzKCI/Iik/IiYiOiI/IjtyZXR1cm4gcmVxdWVzdEJsb2IoIiIuY29uY2F0KHVybCkuY29uY2F0KHF1ZXJ5P3NlcDoiIikuY29uY2F0KHF1ZXJ5KSl9LHBvc3RCbG9iOmZ1bmN0aW9uKHVybCl7bGV0IGRhdGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LG9wdGlvbnM9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDA7cmV0dXJuIHJlcXVlc3RCbG9iKHVybCx7bWV0aG9kOiJQT1NUIixib2R5OihudWxsPT1vcHRpb25zP3ZvaWQgMDpvcHRpb25zLnN0cmluZ2lmeSk/SlNPTi5zdHJpbmdpZnkoZGF0YSk6ZGF0YX0pfSxwb3N0OmZ1bmN0aW9uKHVybCl7bGV0IGRhdGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LG9wdGlvbnM9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsbm9Db3JzPWFyZ3VtZW50cy5sZW5ndGg+Mz9hcmd1bWVudHNbM106dm9pZCAwO3JldHVybiByZXF1ZXN0KHVybCx7bWV0aG9kOiJQT1NUIixib2R5OihudWxsPT1vcHRpb25zP3ZvaWQgMDpvcHRpb25zLnN0cmluZ2lmeSk/SlNPTi5zdHJpbmdpZnkoZGF0YSk6ZGF0YX0sbm9Db3JzKX0scG9zdFNlcnZlcjpmdW5jdGlvbih1cmwpe2xldCBkYXRhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxvcHRpb25zPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwO3JldHVybiByZXF1ZXN0KHVybCx7bWV0aG9kOiJQT1NUIixib2R5OihudWxsPT1vcHRpb25zP3ZvaWQgMDpvcHRpb25zLnN0cmluZ2lmeSk/SlNPTi5zdHJpbmdpZnkoZGF0YSk6ZGF0YX0pfSxwdXQ6ZnVuY3Rpb24odXJsKXtsZXQgZGF0YT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sb3B0aW9ucz1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMDtyZXR1cm4gcmVxdWVzdCh1cmwse21ldGhvZDoiUFVUIixib2R5OihudWxsPT1vcHRpb25zP3ZvaWQgMDpvcHRpb25zLnN0cmluZ2lmeSk/SlNPTi5zdHJpbmdpZnkoZGF0YSk6ZGF0YX0pfSxkZWxldGU6ZnVuY3Rpb24odXJsKXtsZXQgZGF0YT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl07bGV0IHF1ZXJ5PW9iamVjdDJzdHJpbmcoZGF0YSksc2VwPXVybC5pbmNsdWRlcygiPyIpPyImIjoiPyI7cmV0dXJuIHJlcXVlc3QoIiIuY29uY2F0KHVybCkuY29uY2F0KHF1ZXJ5P3NlcDoiIikuY29uY2F0KHF1ZXJ5KSx7bWV0aG9kOiJERUxFVEUifSl9fSxmbGF0PW5vZGVzPT57bGV0IHJlc3VsdD1bXTtyZXR1cm4gbm9kZXMmJjAhPT1ub2Rlcy5sZW5ndGg/KG5vZGVzLmZvckVhY2gobm9kZT0+e2xldCBuZXdOb2RlPXsuLi5ub2RlfSx7Y2hpbGRyZW59PW5ld05vZGU7ZGVsZXRlIG5ld05vZGUuY2hpbGRyZW4scmVzdWx0LnB1c2gobmV3Tm9kZSk7bGV0IF9yZXN1bHQ9ZmxhdChjaGlsZHJlbik7cmVzdWx0PVsuLi5yZXN1bHQsLi4uX3Jlc3VsdF19KSxyZXN1bHQpOltdfSxyYW5kb21OdW1iZXI9ZnVuY3Rpb24oKXtsZXQgbnVtPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTo0LGFycj1bIkEiLCJCIiwiQyIsIkQiLCJFIiwiRiIsIkciLCJIIiwiSSIsIkoiLCJLIiwiTCIsIk0iLCJOIiwiTyIsIlAiLCJRIiwiUiIsIlMiLCJUIiwiVSIsIlYiLCJXIiwiWCIsIlkiLCJaIiwiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMCJdLGlkdmFsdWU9IiI7Zm9yKHZhciBpPTA7aTxudW07aSsrKWlkdmFsdWUrPWFycltNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqYXJyLmxlbmd0aCldO3JldHVybiBpZHZhbHVlfTtmdW5jdGlvbiBzYWZlTG9jYWxTdG9yYWdlKCl7dHJ5e2xldCBzdG9yYWdlPXdpbmRvdy5sb2NhbFN0b3JhZ2UsdGVzdEtleT0iX190ZXN0X18iO3JldHVybiBzdG9yYWdlLnNldEl0ZW0odGVzdEtleSwiMSIpLHN0b3JhZ2UucmVtb3ZlSXRlbSh0ZXN0S2V5KSxzdG9yYWdlfWNhdGNoKGUpe3JldHVybiBudWxsfX1mdW5jdGlvbiBpc0FuZHJvaWRDbGllbnQoKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmL0FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfWZ1bmN0aW9uIGlzSU9TQ2xpZW50KCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJi9pUGhvbmV8aVBhZHxpUG9kL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KX1mdW5jdGlvbiBjbGFyaXR5KCl7Zm9yKHZhciByZWYsX2xlbj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbiksX2tleT0wO19rZXk8X2xlbjtfa2V5KyspYXJnc1tfa2V5XT1hcmd1bWVudHNbX2tleV07bnVsbD09PShyZWY9d2luZG93LmNsYXJpdHkpfHx2b2lkIDA9PT1yZWZ8fHJlZi5jYWxsKHdpbmRvdywuLi5hcmdzKX19fSxmdW5jdGlvbihfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgX193ZWJwYWNrX2V4ZWNfXz1mdW5jdGlvbihtb2R1bGVJZCl7cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zPW1vZHVsZUlkKX07X193ZWJwYWNrX3JlcXVpcmVfXy5PKDAsWzk3NzQsODAyNCw4NzEzLDE2NjgsOTQ5MiwxNzldLGZ1bmN0aW9uKCl7cmV0dXJuIF9fd2VicGFja19leGVjX18oODkzNzkpLF9fd2VicGFja19leGVjX18oNjg0MCksX193ZWJwYWNrX2V4ZWNfXyg4MDg4MCl9KSxfTl9FPV9fd2VicGFja19yZXF1aXJlX18uTygpfV0pOw=="}},"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":"buvei.com/app.css","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.431Z","timestamp":1785127668431,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /app.css HTTP/1.1\r\nHost: buvei.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: text/css; charset=UTF-8\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\naccept-ranges: bytes\r\ncache-control: public, max-age=14400\r\nlast-modified: Sat, 20 Dec 2025 05:28:58 GMT\r\netag: W/\"b0b-19b3a3b8590\"\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\ncf-cache-status: EXPIRED\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=J2YXPOcQXGhRH93b%2FZK%2BZzu7RcApe8wPNiS%2F2qlkY%2F%2BBYVm3rahQHdk4OiMfBlKlkdrOi9WnEVqbJjiynQv5Znc%2BiQNq0IyIzZV%2BPpSDvwQUCGUOUhlO1j0h3g%3D%3D\"}]}\r\ncf-ray: a2190217bb2b8be6-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"]}],"data":{"size":2827,"size_decoded":2009,"mime_type":"text/css; charset=UTF-8","magic":"assembler source, ASCII text","md5":"c9293b2911aafd054fdc19310bb4adfe","sha1":"64ea030551f158cebcafe6c806d3e090e9d5546c","sha256":"595cfafc21a09a79d4472918ab7da88104611b8667d366cf5c3e69e8c4cddbb8","sha512":"f94bb66025af298c3dc70d51830de13ccaff5d15da6991b8a5556ce37422e370fdc5ef34773fbce285d0c5c84babb7bb5163d4bfd5bfce807ea6e64d13655505","ssdeep":"","tlshash":"b95175556bb04504591bc490b08aeb34f7bd80135b0fedb8bef3a1bd8f851953191b5e","first_seen":"2026-07-27T03:56:11.63848Z","last_seen":"2026-07-27T10:05:53.908319Z","times_seen":4,"resource_available":false,"data":"CgojX19uZXh0IHsKICBmb250LWZhbWlseTogQ2hpbmVzZSBRdW90ZSwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxTZWdvZSBVSSxQaW5nRmFuZyBTQyxTb3VyY2UgSGFuIFNhbnMgU0MsSGlyYWdpbm8gU2FucyBHQixNaWNyb3NvZnQgWWFIZWksSGVsdmV0aWNhIE5ldWUsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIG1pbi1oZWlnaHQ6IDEwMHZoOwogIG1pbi13aWR0aDogMTAwdnc7CiAgY29sb3I6ICMyMTJCNTU7Cn0KCmJvZHksIGh0bWwgewogIGNvbG9yOiAjMjEyQjU1OwogIHNjcm9sbC1zbmFwLXR5cGU6IHkgbWFuZGF0b3J5Owp9CgpoMSwKaDIgewogIGZvbnQtZmFtaWx5OiAnT3N3YWxkJywgc2Fucy1zZXJpZjsKfQoKCgpwIHsKICBsaW5lLWhlaWdodDogMS42NWVtOwp9CgphIHsKICBjb2xvcjogIzIxMkI1NTsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KYTpob3ZlciB7CiAgY29sb3I6ICMyMTJCNTU7Cn0KCgptYWluIHsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgZmxleDogMTsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICBhbGlnbi1pdGVtczogY2VudGVyOwp9Cgpmb290ZXIgewogIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsKICBwYWRkaW5nOiAzcmVtIDA7Cn0KCi50eXBlZC1jdXJzb3J7CiAgb3BhY2l0eTogMTsKICBhbmltYXRpb246IHR5cGVkanNCbGluayAwLjdzIGluZmluaXRlOwogIC13ZWJraXQtYW5pbWF0aW9uOiB0eXBlZGpzQmxpbmsgMC43cyBpbmZpbml0ZTsKICBhbmltYXRpb246IHR5cGVkanNCbGluayAwLjdzIGluZmluaXRlOwogIGZvbnQtc2l6ZTogNTBweDsKICBsaW5lLWhlaWdodDogMSAhaW1wb3J0YW50OwogIGNvbG9yOiAjMEIyNTU2ICFpbXBvcnRhbnQ7CiAgbWFyZ2luLWJvdHRvbTogOHB4Owp9Ci5xbC1jb250YWluZXIucWwtc25vdyB7CiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7Cn0KLnFsLWVkaXRvciB7CiAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7CiAgY29sb3I6ICMyMTJCNTUgIWltcG9ydGFudDsKICBmb250LXNpemU6ICAxNnB4Owp9Ci5zci1vbmx5LC52aXN1YWxseS1oaWRkZW4gewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB3aWR0aDogMXB4OwogIGhlaWdodDogMXB4OwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAtMXB4OwogIG92ZXJmbG93OiBoaWRkZW47CiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIGJvcmRlcjogMDsKfQoKQG1lZGlhIChtYXgtd2lkdGg6IDgwMHB4KSB7IAogIC50eXBlZC1jdXJzb3J7CgogICAgZm9udC1zaXplOiA0MHB4OwogIH0KIH0KQGtleWZyYW1lcyB0eXBlZGpzQmxpbmt7CiAgNTAlIHsgb3BhY2l0eTogMC4wOyB9Cn0KQC13ZWJraXQta2V5ZnJhbWVzIHR5cGVkanNCbGlua3sKICAwJSB7IG9wYWNpdHk6IDE7IH0KICA1MCUgeyBvcGFjaXR5OiAwLjA7IH0KICAxMDAlIHsgb3BhY2l0eTogMTsgfQp9Ci50eXBlZC1mYWRlLW91dHsKICBvcGFjaXR5OiAwOwogIHRyYW5zaXRpb246IG9wYWNpdHkgLjI1czsKICAtd2Via2l0LWFuaW1hdGlvbjogMDsKICBhbmltYXRpb246IDA7Cn0KCgpAa2V5ZnJhbWVzIHdhdmUgewogIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbi14OiAwOyB9CiAgMTAwJSB7IGJhY2tncm91bmQtcG9zaXRpb24teDogMTIwMHB4OyB9Cn0KCkBrZXlmcmFtZXMgZmxvYXQgewogIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7IH0KICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7IH0KfQoKCmh0bWwsCmJvZHksCmRpdiwKc3BhbiwKYXBwbGV0LApvYmplY3QsCmlmcmFtZSwKaDEsCmgyLApoMywKaDQsCmg1LApoNiwKcCwKYmxvY2txdW90ZSwKcHJlLAphLAphYmJyLAphY3JvbnltLAphZGRyZXNzLApiaWcsCmNpdGUsCmNvZGUsCmRlbCwKZGZuLAplbSwKaW1nLAppbnMsCmtiZCwKcSwKcywKc2FtcCwKc21hbGwsCnN0cmlrZSwKc3Ryb25nLApzdWIsCnN1cCwKdHQsCnZhciwKYiwKdSwKaSwKY2VudGVyLApkbCwKZHQsCmRkLApvbCwKdWwsCmxpLApmaWVsZHNldCwKZm9ybSwKbGFiZWwsCmxlZ2VuZCwKdGFibGUsCmNhcHRpb24sCnRib2R5LAp0Zm9vdCwKdGhlYWQsCnRyLAp0aCwKdGQsCmFydGljbGUsCmFzaWRlLApjYW52YXMsCmRldGFpbHMsCmVtYmVkLApmaWd1cmUsCmZpZ2NhcHRpb24sCmZvb3RlciwKaGVhZGVyLApoZ3JvdXAsCm1lbnUsCm5hdiwKb3V0cHV0LApydWJ5LApzZWN0aW9uLApzdW1tYXJ5LAp0aW1lLAptYXJrLAphdWRpbywKdmlkZW8gewogIG1hcmdpbjogMDsKICBwYWRkaW5nOiAwOwogIGJvcmRlcjogMDsKICBmb250LXNpemU6IDEwMCU7CiAgZm9udDogaW5oZXJpdDsKICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmUKfQoKYXJ0aWNsZSwKYXNpZGUsCmRldGFpbHMsCmZpZ2NhcHRpb24sCmZpZ3VyZSwKZm9vdGVyLApoZWFkZXIsCmhncm91cCwKbWVudSwKbmF2LApzZWN0aW9uIHsKICBkaXNwbGF5OiBibG9jawp9Cgpib2R5IHsKICBsaW5lLWhlaWdodDogMS40MTsKICBvdmVyZmxvdy14OiBoaWRkZW47Cn0KCm9sLAp1bCB7CiAgbGlzdC1zdHlsZTogbm9uZQp9CgpibG9ja3F1b3RlLApxIHsKICBxdW90ZXM6IG5vbmUKfQoKYmxvY2txdW90ZTpiZWZvcmUsCmJsb2NrcXVvdGU6YWZ0ZXIsCnE6YmVmb3JlLApxOmFmdGVyIHsKICBjb250ZW50OiAnJzsKICBjb250ZW50OiBub25lCn0KCnRhYmxlIHsKICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogIGJvcmRlci1zcGFjaW5nOiAwCn0KCg=="}},"time_used":396,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":396,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"buvei.com/_next/static/chunks/webpack-4d87b19e96b82f3e.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.439Z","timestamp":1785127668439,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/static/chunks/webpack-4d87b19e96b82f3e.js HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: application/javascript; charset=UTF-8\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\ncache-control: public, max-age=31536000, immutable\r\naccept-ranges: bytes\r\nlast-modified: Sun, 26 Jul 2026 06:35:30 GMT\r\netag: W/\"26f5-19f9d22c750\"\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nage: 66709\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=AHqTw9BjJTdCezycb8cLCfv%2FdiqBSp4H1%2FCzhQnEUQGSANtv0IjOJ8McVTCjeWuIJOnRD4Vd052YThRs7sBzWke32J46m7ynzneciWzJkeCuFqlICCZtwr6sHw%3D%3D\"}]}\r\ncf-ray: a2190217cb438be6-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"]}],"data":{"size":9973,"size_decoded":4117,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (9973), with no line terminators","md5":"4fdb1a8f4c46621a4d77b40e8fe7ef6b","sha1":"01800e51c00df45f6ebf97be2506195fa091a3bf","sha256":"224d3f5d2021e9873c41e4b34bfca03b313d373077f0058a12ce07371287cef7","sha512":"b57a488aa957c3d17dea8bfe5520e93d1d3c93c8740a80f6cb7706219a74a89a89fb6c59df42f777c2ffc43bc71d8706f949c7b4617e768f4d3ad806bf142874","ssdeep":"192:wLbKC49XfvP60jWyHO4d1/kYCxZULWlxMI+0ICPy52GbDwR7siuEV6Wh0CS:wLbKhX3i2OylkYCxnlRImy52SwR7siuj","tlshash":"1e22c8882f50f82b74a73de9e137723ae36fc0a3583954d1de5ecce404e2a459329676","first_seen":"2026-07-27T03:56:11.720233Z","last_seen":"2026-07-27T04:49:42.844509Z","times_seen":3,"resource_available":true,"data":"dHJ5eyFmdW5jdGlvbigpe3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sbj0obmV3IGUuRXJyb3IpLnN0YWNrO24mJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbbl09ImE5ZmIzMGI1LWY0OTYtNGJkOC1iN2E2LWFkOTExMzRkOWU0NyIsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9InNlbnRyeS1kYmlkLWE5ZmIzMGI1LWY0OTYtNGJkOC1iN2E2LWFkOTExMzRkOWU0NyIpfSgpfWNhdGNoKGUpe30hZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGRlZmVycmVkLGxlYWZQcm90b3R5cGVzLGdldFByb3RvLGluUHJvZ3Jlc3MsZGF0YVdlYnBhY2tQcmVmaXgscG9saWN5LGNyZWF0ZVN0eWxlc2hlZXQsZmluZFN0eWxlc2hlZXQsaW5zdGFsbGVkQ3NzQ2h1bmtzLGluc3RhbGxlZENodW5rcyx3ZWJwYWNrSnNvbnBDYWxsYmFjayxjaHVua0xvYWRpbmdHbG9iYWwsX193ZWJwYWNrX21vZHVsZXNfXz17fSxfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX189e307ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCl7dmFyIGNhY2hlZE1vZHVsZT1fX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO2lmKHZvaWQgMCE9PWNhY2hlZE1vZHVsZSlyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7dmFyIG1vZHVsZT1fX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdPXtpZDptb2R1bGVJZCxsb2FkZWQ6ITEsZXhwb3J0czp7fX0sdGhyZXc9ITA7dHJ5e19fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsbW9kdWxlLG1vZHVsZS5leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pLHRocmV3PSExfWZpbmFsbHl7dGhyZXcmJmRlbGV0ZSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdfXJldHVybiBtb2R1bGUubG9hZGVkPSEwLG1vZHVsZS5leHBvcnRzfV9fd2VicGFja19yZXF1aXJlX18ubT1fX3dlYnBhY2tfbW9kdWxlc19fLGRlZmVycmVkPVtdLF9fd2VicGFja19yZXF1aXJlX18uTz1mdW5jdGlvbihyZXN1bHQsY2h1bmtJZHMsZm4scHJpb3JpdHkpe2lmKGNodW5rSWRzKXtwcmlvcml0eT1wcmlvcml0eXx8MDtmb3IodmFyIGk9ZGVmZXJyZWQubGVuZ3RoO2k+MCYmZGVmZXJyZWRbaS0xXVsyXT5wcmlvcml0eTtpLS0pZGVmZXJyZWRbaV09ZGVmZXJyZWRbaS0xXTtkZWZlcnJlZFtpXT1bY2h1bmtJZHMsZm4scHJpb3JpdHldO3JldHVybn1mb3IodmFyIG5vdEZ1bGZpbGxlZD0xLzAsaT0wO2k8ZGVmZXJyZWQubGVuZ3RoO2krKyl7Zm9yKHZhciBjaHVua0lkcz1kZWZlcnJlZFtpXVswXSxmbj1kZWZlcnJlZFtpXVsxXSxwcmlvcml0eT1kZWZlcnJlZFtpXVsyXSxmdWxmaWxsZWQ9ITAsaj0wO2o8Y2h1bmtJZHMubGVuZ3RoO2orKylub3RGdWxmaWxsZWQ+PXByaW9yaXR5JiZPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLk8pLmV2ZXJ5KGZ1bmN0aW9uKGtleSl7cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uT1trZXldKGNodW5rSWRzW2pdKX0pP2NodW5rSWRzLnNwbGljZShqLS0sMSk6KGZ1bGZpbGxlZD0hMSxwcmlvcml0eTxub3RGdWxmaWxsZWQmJihub3RGdWxmaWxsZWQ9cHJpb3JpdHkpKTtpZihmdWxmaWxsZWQpe2RlZmVycmVkLnNwbGljZShpLS0sMSk7dmFyIHI9Zm4oKTt2b2lkIDAhPT1yJiYocmVzdWx0PXIpfX1yZXR1cm4gcmVzdWx0fSxfX3dlYnBhY2tfcmVxdWlyZV9fLm49ZnVuY3Rpb24obW9kdWxlKXt2YXIgZ2V0dGVyPW1vZHVsZSYmbW9kdWxlLl9fZXNNb2R1bGU/ZnVuY3Rpb24oKXtyZXR1cm4gbW9kdWxlLmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIG1vZHVsZX07cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIse2E6Z2V0dGVyfSksZ2V0dGVyfSxnZXRQcm90bz1PYmplY3QuZ2V0UHJvdG90eXBlT2Y/ZnVuY3Rpb24ob2JqKXtyZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iail9OmZ1bmN0aW9uKG9iail7cmV0dXJuIG9iai5fX3Byb3RvX199LF9fd2VicGFja19yZXF1aXJlX18udD1mdW5jdGlvbih2YWx1ZSxtb2RlKXtpZigxJm1vZGUmJih2YWx1ZT10aGlzKHZhbHVlKSksOCZtb2RlfHwib2JqZWN0Ij09dHlwZW9mIHZhbHVlJiZ2YWx1ZSYmKDQmbW9kZSYmdmFsdWUuX19lc01vZHVsZXx8MTYmbW9kZSYmImZ1bmN0aW9uIj09dHlwZW9mIHZhbHVlLnRoZW4pKXJldHVybiB2YWx1ZTt2YXIgbnM9T2JqZWN0LmNyZWF0ZShudWxsKTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO3ZhciBkZWY9e307bGVhZlByb3RvdHlwZXM9bGVhZlByb3RvdHlwZXN8fFtudWxsLGdldFByb3RvKHt9KSxnZXRQcm90byhbXSksZ2V0UHJvdG8oZ2V0UHJvdG8pXTtmb3IodmFyIGN1cnJlbnQ9MiZtb2RlJiZ2YWx1ZTsib2JqZWN0Ij09dHlwZW9mIGN1cnJlbnQmJiF+bGVhZlByb3RvdHlwZXMuaW5kZXhPZihjdXJyZW50KTtjdXJyZW50PWdldFByb3RvKGN1cnJlbnQpKU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGN1cnJlbnQpLmZvckVhY2goZnVuY3Rpb24oa2V5KXtkZWZba2V5XT1mdW5jdGlvbigpe3JldHVybiB2YWx1ZVtrZXldfX0pO3JldHVybiBkZWYuZGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiB2YWx1ZX0sX193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLGRlZiksbnN9LF9fd2VicGFja19yZXF1aXJlX18uZD1mdW5jdGlvbihleHBvcnRzLGRlZmluaXRpb24pe2Zvcih2YXIga2V5IGluIGRlZmluaXRpb24pX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sa2V5KSYmIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLGtleSkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLGtleSx7ZW51bWVyYWJsZTohMCxnZXQ6ZGVmaW5pdGlvbltrZXldfSl9LF9fd2VicGFja19yZXF1aXJlX18uZj17fSxfX3dlYnBhY2tfcmVxdWlyZV9fLmU9ZnVuY3Rpb24oY2h1bmtJZCl7cmV0dXJuIFByb21pc2UuYWxsKE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uZikucmVkdWNlKGZ1bmN0aW9uKHByb21pc2VzLGtleSl7cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZltrZXldKGNodW5rSWQscHJvbWlzZXMpLHByb21pc2VzfSxbXSkpfSxfX3dlYnBhY2tfcmVxdWlyZV9fLnU9ZnVuY3Rpb24oY2h1bmtJZCl7cmV0dXJuIDkzNTE9PT1jaHVua0lkPyJzdGF0aWMvY2h1bmtzL2NvbW1vbnMtNDVkOTg2YmM2ODZhNzE5Zi5qcyI6InN0YXRpYy9jaHVua3MvIisoKHszMzI4OiJsaWItcXVpbGwiLDQxOTg6ImxpYi1kb21wdXJpZnkiLDg5NDk6ImxpYi1taXNjIn0pW2NodW5rSWRdfHxjaHVua0lkKSsiLiIrKHs5MToiYjAxYzg0ZGMwNjk4NTMzMiIsMTU2OiJlMDg1OTExMDJmYTQ4NmFkIiwyMjE6IjQwMTU3ZWE1ZDA1YjE4NjYiLDYwNToiOTNiNDk1YzgwODRkZTU1MSIsMTkyNjoiNmQ4NjIyMTk5NjM0MDQyMSIsMzMyODoiYzk2OTU3ZDY4YmVmMzdiYiIsNDE5ODoiY2U0OWIxNmU5NjMxOWVkOCIsNDI3MzoiNGNiOTEyYjViNzdlODRiZSIsNDUyMzoiNWM4NjAwNmUyMzUyZDIwZSIsNDk1NjoiMmU5ODhlMmMwNmM1NjNhYiIsNTAyODoiZjlkNGRlZTM4YmI2MWYwMSIsNTkwNDoiY2Q4NzY1YTRkODJhODExYiIsNjE3NzoiMDNmMTU4MmNmZDk0NmIwMiIsNjgzOToiYjQzNWFkOWNlZDA3NTczNCIsNzMzNzoiMmJlOWY3ZDE2MzA4OGRjMiIsODk0OToiZTFlYTQwYzk0ZWQxZGY0MCIsOTQ3NjoiMzg1Nzc1MWYyNjQyY2I4NSIsOTcxNzoiZWNkZjBjNTk0MzQ0YTQ3YSJ9KVtjaHVua0lkXSsiLmpzIn0sX193ZWJwYWNrX3JlcXVpcmVfXy5taW5pQ3NzRj1mdW5jdGlvbihjaHVua0lkKXtyZXR1cm4ic3RhdGljL2Nzcy8iKyh7OTE6IjhhZWU0OGViNTJmNGM3MzEiLDE5MjY6IjljOWNmZjRjZjVmZmE3OTcifSlbY2h1bmtJZF0rIi5jc3MifSxfX3dlYnBhY2tfcmVxdWlyZV9fLmc9ZnVuY3Rpb24oKXtpZigib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMpcmV0dXJuIGdsb2JhbFRoaXM7dHJ5e3JldHVybiB0aGlzfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfWNhdGNoKGUpe2lmKCJvYmplY3QiPT10eXBlb2Ygd2luZG93KXJldHVybiB3aW5kb3d9fSgpLF9fd2VicGFja19yZXF1aXJlX18ubz1mdW5jdGlvbihvYmoscHJvcCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmoscHJvcCl9LGluUHJvZ3Jlc3M9e30sZGF0YVdlYnBhY2tQcmVmaXg9Il9OX0U6IixfX3dlYnBhY2tfcmVxdWlyZV9fLmw9ZnVuY3Rpb24odXJsLGRvbmUsa2V5LGNodW5rSWQpe2lmKGluUHJvZ3Jlc3NbdXJsXSl7aW5Qcm9ncmVzc1t1cmxdLnB1c2goZG9uZSk7cmV0dXJufWlmKHZvaWQgMCE9PWtleSlmb3IodmFyIHNjcmlwdCxuZWVkQXR0YWNoLHNjcmlwdHM9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpLGk9MDtpPHNjcmlwdHMubGVuZ3RoO2krKyl7dmFyIHM9c2NyaXB0c1tpXTtpZihzLmdldEF0dHJpYnV0ZSgic3JjIik9PXVybHx8cy5nZXRBdHRyaWJ1dGUoImRhdGEtd2VicGFjayIpPT1kYXRhV2VicGFja1ByZWZpeCtrZXkpe3NjcmlwdD1zO2JyZWFrfX1zY3JpcHR8fChuZWVkQXR0YWNoPSEwLChzY3JpcHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0IikpLmNoYXJzZXQ9InV0Zi04IixzY3JpcHQudGltZW91dD0xMjAsX193ZWJwYWNrX3JlcXVpcmVfXy5uYyYmc2NyaXB0LnNldEF0dHJpYnV0ZSgibm9uY2UiLF9fd2VicGFja19yZXF1aXJlX18ubmMpLHNjcmlwdC5zZXRBdHRyaWJ1dGUoImRhdGEtd2VicGFjayIsZGF0YVdlYnBhY2tQcmVmaXgra2V5KSxzY3JpcHQuc3JjPV9fd2VicGFja19yZXF1aXJlX18udHUodXJsKSksaW5Qcm9ncmVzc1t1cmxdPVtkb25lXTt2YXIgb25TY3JpcHRDb21wbGV0ZT1mdW5jdGlvbihwcmV2LGV2ZW50KXtzY3JpcHQub25lcnJvcj1zY3JpcHQub25sb2FkPW51bGwsY2xlYXJUaW1lb3V0KHRpbWVvdXQpO3ZhciBkb25lRm5zPWluUHJvZ3Jlc3NbdXJsXTtpZihkZWxldGUgaW5Qcm9ncmVzc1t1cmxdLHNjcmlwdC5wYXJlbnROb2RlJiZzY3JpcHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzY3JpcHQpLGRvbmVGbnMmJmRvbmVGbnMuZm9yRWFjaChmdW5jdGlvbihmbil7cmV0dXJuIGZuKGV2ZW50KX0pLHByZXYpcmV0dXJuIHByZXYoZXZlbnQpfSx0aW1lb3V0PXNldFRpbWVvdXQob25TY3JpcHRDb21wbGV0ZS5iaW5kKG51bGwsdm9pZCAwLHt0eXBlOiJ0aW1lb3V0Iix0YXJnZXQ6c2NyaXB0fSksMTJlNCk7c2NyaXB0Lm9uZXJyb3I9b25TY3JpcHRDb21wbGV0ZS5iaW5kKG51bGwsc2NyaXB0Lm9uZXJyb3IpLHNjcmlwdC5vbmxvYWQ9b25TY3JpcHRDb21wbGV0ZS5iaW5kKG51bGwsc2NyaXB0Lm9ubG9hZCksbmVlZEF0dGFjaCYmZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpfSxfX3dlYnBhY2tfcmVxdWlyZV9fLnI9ZnVuY3Rpb24oZXhwb3J0cyl7InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sX193ZWJwYWNrX3JlcXVpcmVfXy5ubWQ9ZnVuY3Rpb24obW9kdWxlKXtyZXR1cm4gbW9kdWxlLnBhdGhzPVtdLG1vZHVsZS5jaGlsZHJlbnx8KG1vZHVsZS5jaGlsZHJlbj1bXSksbW9kdWxlfSxfX3dlYnBhY2tfcmVxdWlyZV9fLnR0PWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PXBvbGljeSYmKHBvbGljeT17Y3JlYXRlU2NyaXB0VVJMOmZ1bmN0aW9uKHVybCl7cmV0dXJuIHVybH19LCJ1bmRlZmluZWQiIT10eXBlb2YgdHJ1c3RlZFR5cGVzJiZ0cnVzdGVkVHlwZXMuY3JlYXRlUG9saWN5JiYocG9saWN5PXRydXN0ZWRUeXBlcy5jcmVhdGVQb2xpY3koIm5leHRqcyNidW5kbGVyIixwb2xpY3kpKSkscG9saWN5fSxfX3dlYnBhY2tfcmVxdWlyZV9fLnR1PWZ1bmN0aW9uKHVybCl7cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18udHQoKS5jcmVhdGVTY3JpcHRVUkwodXJsKX0sX193ZWJwYWNrX3JlcXVpcmVfXy5wPSIvX25leHQvIixjcmVhdGVTdHlsZXNoZWV0PWZ1bmN0aW9uKGNodW5rSWQsZnVsbGhyZWYscmVzb2x2ZSxyZWplY3Qpe3ZhciBsaW5rVGFnPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtyZXR1cm4gbGlua1RhZy5yZWw9InN0eWxlc2hlZXQiLGxpbmtUYWcudHlwZT0idGV4dC9jc3MiLGxpbmtUYWcub25lcnJvcj1saW5rVGFnLm9ubG9hZD1mdW5jdGlvbihldmVudCl7aWYobGlua1RhZy5vbmVycm9yPWxpbmtUYWcub25sb2FkPW51bGwsImxvYWQiPT09ZXZlbnQudHlwZSlyZXNvbHZlKCk7ZWxzZXt2YXIgZXJyb3JUeXBlPWV2ZW50JiYoImxvYWQiPT09ZXZlbnQudHlwZT8ibWlzc2luZyI6ZXZlbnQudHlwZSkscmVhbEhyZWY9ZXZlbnQmJmV2ZW50LnRhcmdldCYmZXZlbnQudGFyZ2V0LmhyZWZ8fGZ1bGxocmVmLGVycj1FcnJvcigiTG9hZGluZyBDU1MgY2h1bmsgIitjaHVua0lkKyIgZmFpbGVkLlxuKCIrcmVhbEhyZWYrIikiKTtlcnIuY29kZT0iQ1NTX0NIVU5LX0xPQURfRkFJTEVEIixlcnIudHlwZT1lcnJvclR5cGUsZXJyLnJlcXVlc3Q9cmVhbEhyZWYsbGlua1RhZy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGxpbmtUYWcpLHJlamVjdChlcnIpfX0sbGlua1RhZy5ocmVmPWZ1bGxocmVmLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobGlua1RhZyksbGlua1RhZ30sZmluZFN0eWxlc2hlZXQ9ZnVuY3Rpb24oaHJlZixmdWxsaHJlZil7Zm9yKHZhciBleGlzdGluZ0xpbmtUYWdzPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIiksaT0wO2k8ZXhpc3RpbmdMaW5rVGFncy5sZW5ndGg7aSsrKXt2YXIgdGFnPWV4aXN0aW5nTGlua1RhZ3NbaV0sZGF0YUhyZWY9dGFnLmdldEF0dHJpYnV0ZSgiZGF0YS1ocmVmIil8fHRhZy5nZXRBdHRyaWJ1dGUoImhyZWYiKTtpZigic3R5bGVzaGVldCI9PT10YWcucmVsJiYoZGF0YUhyZWY9PT1ocmVmfHxkYXRhSHJlZj09PWZ1bGxocmVmKSlyZXR1cm4gdGFnfWZvcih2YXIgZXhpc3RpbmdTdHlsZVRhZ3M9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInN0eWxlIiksaT0wO2k8ZXhpc3RpbmdTdHlsZVRhZ3MubGVuZ3RoO2krKyl7dmFyIHRhZz1leGlzdGluZ1N0eWxlVGFnc1tpXSxkYXRhSHJlZj10YWcuZ2V0QXR0cmlidXRlKCJkYXRhLWhyZWYiKTtpZihkYXRhSHJlZj09PWhyZWZ8fGRhdGFIcmVmPT09ZnVsbGhyZWYpcmV0dXJuIHRhZ319LGluc3RhbGxlZENzc0NodW5rcz17MjI3MjowfSxfX3dlYnBhY2tfcmVxdWlyZV9fLmYubWluaUNzcz1mdW5jdGlvbihjaHVua0lkLHByb21pc2VzKXtpbnN0YWxsZWRDc3NDaHVua3NbY2h1bmtJZF0/cHJvbWlzZXMucHVzaChpbnN0YWxsZWRDc3NDaHVua3NbY2h1bmtJZF0pOjAhPT1pbnN0YWxsZWRDc3NDaHVua3NbY2h1bmtJZF0mJih7OTE6MSwxOTI2OjF9KVtjaHVua0lkXSYmcHJvbWlzZXMucHVzaChpbnN0YWxsZWRDc3NDaHVua3NbY2h1bmtJZF09bmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSxyZWplY3Qpe3ZhciBocmVmPV9fd2VicGFja19yZXF1aXJlX18ubWluaUNzc0YoY2h1bmtJZCksZnVsbGhyZWY9X193ZWJwYWNrX3JlcXVpcmVfXy5wK2hyZWY7aWYoZmluZFN0eWxlc2hlZXQoaHJlZixmdWxsaHJlZikpcmV0dXJuIHJlc29sdmUoKTtjcmVhdGVTdHlsZXNoZWV0KGNodW5rSWQsZnVsbGhyZWYscmVzb2x2ZSxyZWplY3QpfSkudGhlbihmdW5jdGlvbigpe2luc3RhbGxlZENzc0NodW5rc1tjaHVua0lkXT0wfSxmdW5jdGlvbihlKXt0aHJvdyBkZWxldGUgaW5zdGFsbGVkQ3NzQ2h1bmtzW2NodW5rSWRdLGV9KSl9LGluc3RhbGxlZENodW5rcz17MjI3MjowfSxfX3dlYnBhY2tfcmVxdWlyZV9fLmYuaj1mdW5jdGlvbihjaHVua0lkLHByb21pc2VzKXt2YXIgaW5zdGFsbGVkQ2h1bmtEYXRhPV9fd2VicGFja19yZXF1aXJlX18ubyhpbnN0YWxsZWRDaHVua3MsY2h1bmtJZCk/aW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdOnZvaWQgMDtpZigwIT09aW5zdGFsbGVkQ2h1bmtEYXRhKXtpZihpbnN0YWxsZWRDaHVua0RhdGEpcHJvbWlzZXMucHVzaChpbnN0YWxsZWRDaHVua0RhdGFbMl0pO2Vsc2UgaWYoMjI3MiE9Y2h1bmtJZCl7dmFyIHByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSxyZWplY3Qpe2luc3RhbGxlZENodW5rRGF0YT1pbnN0YWxsZWRDaHVua3NbY2h1bmtJZF09W3Jlc29sdmUscmVqZWN0XX0pO3Byb21pc2VzLnB1c2goaW5zdGFsbGVkQ2h1bmtEYXRhWzJdPXByb21pc2UpO3ZhciB1cmw9X193ZWJwYWNrX3JlcXVpcmVfXy5wK19fd2VicGFja19yZXF1aXJlX18udShjaHVua0lkKSxlcnJvcj1FcnJvcigpO19fd2VicGFja19yZXF1aXJlX18ubCh1cmwsZnVuY3Rpb24oZXZlbnQpe2lmKF9fd2VicGFja19yZXF1aXJlX18ubyhpbnN0YWxsZWRDaHVua3MsY2h1bmtJZCkmJigwIT09KGluc3RhbGxlZENodW5rRGF0YT1pbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0pJiYoaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdPXZvaWQgMCksaW5zdGFsbGVkQ2h1bmtEYXRhKSl7dmFyIGVycm9yVHlwZT1ldmVudCYmKCJsb2FkIj09PWV2ZW50LnR5cGU/Im1pc3NpbmciOmV2ZW50LnR5cGUpLHJlYWxTcmM9ZXZlbnQmJmV2ZW50LnRhcmdldCYmZXZlbnQudGFyZ2V0LnNyYztlcnJvci5tZXNzYWdlPSJMb2FkaW5nIGNodW5rICIrY2h1bmtJZCsiIGZhaWxlZC5cbigiK2Vycm9yVHlwZSsiOiAiK3JlYWxTcmMrIikiLGVycm9yLm5hbWU9IkNodW5rTG9hZEVycm9yIixlcnJvci50eXBlPWVycm9yVHlwZSxlcnJvci5yZXF1ZXN0PXJlYWxTcmMsaW5zdGFsbGVkQ2h1bmtEYXRhWzFdKGVycm9yKX19LCJjaHVuay0iK2NodW5rSWQsY2h1bmtJZCl9ZWxzZSBpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF09MH19LF9fd2VicGFja19yZXF1aXJlX18uTy5qPWZ1bmN0aW9uKGNodW5rSWQpe3JldHVybiAwPT09aW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdfSx3ZWJwYWNrSnNvbnBDYWxsYmFjaz1mdW5jdGlvbihwYXJlbnRDaHVua0xvYWRpbmdGdW5jdGlvbixkYXRhKXt2YXIgbW9kdWxlSWQsY2h1bmtJZCxjaHVua0lkcz1kYXRhWzBdLG1vcmVNb2R1bGVzPWRhdGFbMV0scnVudGltZT1kYXRhWzJdLGk9MDtpZihjaHVua0lkcy5zb21lKGZ1bmN0aW9uKGlkKXtyZXR1cm4gMCE9PWluc3RhbGxlZENodW5rc1tpZF19KSl7Zm9yKG1vZHVsZUlkIGluIG1vcmVNb2R1bGVzKV9fd2VicGFja19yZXF1aXJlX18ubyhtb3JlTW9kdWxlcyxtb2R1bGVJZCkmJihfX3dlYnBhY2tfcmVxdWlyZV9fLm1bbW9kdWxlSWRdPW1vcmVNb2R1bGVzW21vZHVsZUlkXSk7aWYocnVudGltZSl2YXIgcmVzdWx0PXJ1bnRpbWUoX193ZWJwYWNrX3JlcXVpcmVfXyl9Zm9yKHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uJiZwYXJlbnRDaHVua0xvYWRpbmdGdW5jdGlvbihkYXRhKTtpPGNodW5rSWRzLmxlbmd0aDtpKyspY2h1bmtJZD1jaHVua0lkc1tpXSxfX3dlYnBhY2tfcmVxdWlyZV9fLm8oaW5zdGFsbGVkQ2h1bmtzLGNodW5rSWQpJiZpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0mJmluc3RhbGxlZENodW5rc1tjaHVua0lkXVswXSgpLGluc3RhbGxlZENodW5rc1tjaHVua0lkXT0wO3JldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLk8ocmVzdWx0KX0sKGNodW5rTG9hZGluZ0dsb2JhbD1zZWxmLndlYnBhY2tDaHVua19OX0U9c2VsZi53ZWJwYWNrQ2h1bmtfTl9FfHxbXSkuZm9yRWFjaCh3ZWJwYWNrSnNvbnBDYWxsYmFjay5iaW5kKG51bGwsMCkpLGNodW5rTG9hZGluZ0dsb2JhbC5wdXNoPXdlYnBhY2tKc29ucENhbGxiYWNrLmJpbmQobnVsbCxjaHVua0xvYWRpbmdHbG9iYWwucHVzaC5iaW5kKGNodW5rTG9hZGluZ0dsb2JhbCkpfSgpOw=="}},"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":"client.crisp.chat/static/javascripts/client_default_23e4212.js","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:49.316Z","timestamp":1785127669316,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /static/javascripts/client_default_23e4212.js HTTP/1.1\r\nHost: client.crisp.chat\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://buvei.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 04:47:49 GMT\r\ncontent-type: application/javascript\r\naccess-control-allow-credentials: false\r\naccess-control-allow-headers: Content-Type, Origin\r\naccess-control-allow-methods: HEAD, GET, OPTIONS\r\naccess-control-allow-origin: *\r\naccess-control-max-age: 300\r\ncache-control: public, max-age=315360000\r\ncross-origin-resource-policy: cross-origin\r\nx-content-type-options: nosniff\r\nexpires: Thu, 24 Jul 2036 04:47:49 GMT\r\nlast-modified: Tue, 21 Jul 2026 15:59:21 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\npriority: u=3,i=?0\r\nage: 41228\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: W/\"6a5f9759-52179\"\r\ncontent-encoding: br\r\ncf-ray: a219021d4880c759-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"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":336249,"size_decoded":100606,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (65123)","md5":"3b968e589314835dcc69969dfaeba879","sha1":"c0e5846269318f56bf503d189815dda878f078c5","sha256":"7928095da82a0b824884a545855973d0677a16c9ac081d2ae1885d4908d30f89","sha512":"0b3a599bb50bb74865f15492d7b95654ccb0fe406850b10bd0c91fd8b250468f570087fc881935bb15df1e7ccde00fa5f73033e30e0be13da5982818362fb20c","ssdeep":"3072:qufRfBs+nD1PxoPiIm6gnxnNTkhOQgEEEI0r980LmbW1d0xjOqC/DNdz/kjm486S:rJBs+DiaxnNTGODEEEmW1dXjg1wiBKL","tlshash":"c364088a3262683313f642c3a4311a42f37a255d6886847cf37caeef6658dc571e7b74","first_seen":"2026-07-21T16:14:01.543411Z","last_seen":"2026-07-30T12:07:42.978529Z","times_seen":171,"resource_available":true,"data":"LyoqCiAqIGNyaXNwLWNsaWVudAogKiBAdmVyc2lvbiB2NC44LjcgMjNlNDIxMgogKiBAYXV0aG9yIENyaXNwIElNIFNBUwogKiBAZGF0ZSA3LzIxLzIwMjYKICovCmNvbnN0IF9fdml0ZV9fbWFwRGVwcz0oaSxtPV9fdml0ZV9fbWFwRGVwcyxkPShtLmZ8fChtLmY9WyJzdHlsZXNoZWV0cy9jb21tb25fZGVmYXVsdF8yM2U0MjEyLmNzcyIsInN0eWxlc2hlZXRzL2ZlYXR1cmVzL2NoYXRfZGVmYXVsdF8yM2U0MjEyLmNzcyIsInN0eWxlc2hlZXRzL2ZlYXR1cmVzL292ZXJsYXlfZGVmYXVsdF8yM2U0MjEyLmNzcyIsInN0eWxlc2hlZXRzL2ZlYXR1cmVzL2Jyb3dzaW5nX2RlZmF1bHRfMjNlNDIxMi5jc3MiLCJzdHlsZXNoZWV0cy9mZWF0dXJlcy9jYWxsX2RlZmF1bHRfMjNlNDIxMi5jc3MiXSkpKT0+aS5tYXAoaT0+ZFtpXSk7CnZhciBfX2NyZWF0ZT1PYmplY3QuY3JlYXRlLF9fZGVmUHJvcD1PYmplY3QuZGVmaW5lUHJvcGVydHksX19nZXRPd25Qcm9wRGVzYz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLF9fZ2V0T3duUHJvcE5hbWVzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzLF9fZ2V0UHJvdG9PZj1PYmplY3QuZ2V0UHJvdG90eXBlT2YsX19oYXNPd25Qcm9wPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksX19jb21tb25KU01pbj0oZSx0KT0+KCk9Pih0fHxlKCh0PXtleHBvcnRzOnt9fSkuZXhwb3J0cyx0KSx0LmV4cG9ydHMpLF9fZXhwb3J0QWxsPShlLHQpPT57bGV0IHI9e307Zm9yKHZhciBsIGluIGUpX19kZWZQcm9wKHIsbCx7Z2V0OmVbbF0sZW51bWVyYWJsZTohMH0pO3JldHVybiB0fHxfX2RlZlByb3AocixTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSkscn0sX190b0VTTT0oZSx0LHIpPT4ocj1udWxsIT1lP19fY3JlYXRlKF9fZ2V0UHJvdG9PZihlKSk6e30sKChlLHQscixsKT0+e2lmKHQmJiJvYmplY3QiPT10eXBlb2YgdHx8ImZ1bmN0aW9uIj09dHlwZW9mIHQpZm9yKHZhciBhLHU9X19nZXRPd25Qcm9wTmFtZXModCksYj0wLG49dS5sZW5ndGg7YjxuO2IrKylhPXVbYl0sX19oYXNPd25Qcm9wLmNhbGwoZSxhKXx8YT09PXJ8fF9fZGVmUHJvcChlLGEse2dldDooZT0+dFtlXSkuYmluZChudWxsLGEpLGVudW1lcmFibGU6IShsPV9fZ2V0T3duUHJvcERlc2ModCxhKSl8fGwuZW51bWVyYWJsZX0pO3JldHVybiBlfSkoIXQmJmUmJmUudD9yOl9fZGVmUHJvcChyLCJkZWZhdWx0Iix7dmFsdWU6ZSxlbnVtZXJhYmxlOiEwfSksZSkpO3ZhciB0PW51bGw7ZnVuY3Rpb24gZSgpe2lmKG51bGw9PT10KXRocm93IG5ldyBFcnJvcigiQ2xpZW50IG5vdCBpbml0aWFsaXplZCIpO3JldHVybiB0fWZ1bmN0aW9uIHModCl7Y29uc3QgZT1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcihjb25zdCBzIG9mIHQuc3BsaXQoIiwiKSllW3NdPTE7cmV0dXJuIHQ9PnQgaW4gZX12YXIgaSxuPXt9LHI9W10sbz0oKT0+e30sdT0oKT0+ITEsbD10PT4xMTE9PT10LmNoYXJDb2RlQXQoMCkmJjExMD09PXQuY2hhckNvZGVBdCgxKSYmKHQuY2hhckNvZGVBdCgyKT4xMjJ8fHQuY2hhckNvZGVBdCgyKTw5NyksYT10PT50LnN0YXJ0c1dpdGgoIm9uVXBkYXRlOiIpLGg9T2JqZWN0LmFzc2lnbixjPSh0LGUpPT57Y29uc3Qgcz10LmluZGV4T2YoZSk7cz4tMSYmdC5zcGxpY2UocywxKX0sZD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LEQ9KHQsZSk9PmQuY2FsbCh0LGUpLGY9QXJyYXkuaXNBcnJheSxwPXQ9PiJbb2JqZWN0IE1hcF0iPT09Qyh0KSxtPXQ9PiJbb2JqZWN0IFNldF0iPT09Qyh0KSxnPXQ9PiJbb2JqZWN0IERhdGVdIj09PUModCksRj10PT4iZnVuY3Rpb24iPT10eXBlb2YgdCx3PXQ9PiJzdHJpbmciPT10eXBlb2YgdCx2PXQ9PiJzeW1ib2wiPT10eXBlb2YgdCx5PXQ9Pm51bGwhPT10JiYib2JqZWN0Ij09dHlwZW9mIHQsYj10PT4oeSh0KXx8Rih0KSkmJkYodC50aGVuKSYmRih0LmNhdGNoKSxFPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsQz10PT5FLmNhbGwodCksaz10PT4iW29iamVjdCBPYmplY3RdIj09PUModCksQT10PT53KHQpJiYiTmFOIiE9PXQmJiItIiE9PXRbMF0mJiIiK3BhcnNlSW50KHQsMTApPT09dCxCPXMoIixrZXkscmVmLHJlZl9mb3IscmVmX2tleSxvblZub2RlQmVmb3JlTW91bnQsb25Wbm9kZU1vdW50ZWQsb25Wbm9kZUJlZm9yZVVwZGF0ZSxvblZub2RlVXBkYXRlZCxvblZub2RlQmVmb3JlVW5tb3VudCxvblZub2RlVW5tb3VudGVkIikseD10PT57Y29uc3QgZT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBzPT5lW3NdfHwoZVtzXT10KHMpKX0saj0vLVx3L2csST14KHQ9PnQucmVwbGFjZShqLHQ9PnQuc2xpY2UoMSkudG9VcHBlckNhc2UoKSkpLFM9L1xCKFtBLVpdKS9nLFI9eCh0PT50LnJlcGxhY2UoUywiLSQxIikudG9Mb3dlckNhc2UoKSksTz14KHQ9PnQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKSksVD14KHQ9PnQ/YG9uJHtPKHQpfWA6IiIpLHo9KHQsZSk9PiFPYmplY3QuaXModCxlKSxQPSh0LC4uLmUpPT57Zm9yKGxldCBzPTA7czx0Lmxlbmd0aDtzKyspdFtzXSguLi5lKX0sTD0odCxlLHMsaT0hMSk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx3cml0YWJsZTppLHZhbHVlOnN9KX0sTT10PT57Y29uc3QgZT1wYXJzZUZsb2F0KHQpO3JldHVybiBpc05hTihlKT90OmV9LFU9KCk9Pml8fChpPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6e30pO2Z1bmN0aW9uIHEodCl7aWYoZih0KSl7Y29uc3QgZT17fTtmb3IobGV0IHM9MDtzPHQubGVuZ3RoO3MrKyl7Y29uc3QgaT10W3NdLG49dyhpKT9XKGkpOnEoaSk7aWYobilmb3IoY29uc3QgdCBpbiBuKWVbdF09blt0XX1yZXR1cm4gZX1pZih3KHQpfHx5KHQpKXJldHVybiB0fXZhciBWPS87KD8hW14oXSpcKSkvZyxOPS86KFteXSspLyxIPS9cL1wqW15dKj9cKlwvL2c7ZnVuY3Rpb24gVyh0KXtjb25zdCBlPXt9O3JldHVybiB0LnJlcGxhY2UoSCwiIikuc3BsaXQoVikuZm9yRWFjaCh0PT57aWYodCl7Y29uc3Qgcz10LnNwbGl0KE4pO3MubGVuZ3RoPjEmJihlW3NbMF0udHJpbSgpXT1zWzFdLnRyaW0oKSl9fSksZX1mdW5jdGlvbiBHKHQpe2xldCBlPSIiO2lmKHcodCkpZT10O2Vsc2UgaWYoZih0KSlmb3IobGV0IHM9MDtzPHQubGVuZ3RoO3MrKyl7Y29uc3QgaT1HKHRbc10pO2kmJihlKz1pKyIgIil9ZWxzZSBpZih5KHQpKWZvcihjb25zdCBzIGluIHQpdFtzXSYmKGUrPXMrIiAiKTtyZXR1cm4gZS50cmltKCl9dmFyIEo9Iml0ZW1zY29wZSxhbGxvd2Z1bGxzY3JlZW4sZm9ybW5vdmFsaWRhdGUsaXNtYXAsbm9tb2R1bGUsbm92YWxpZGF0ZSxyZWFkb25seSIsSz1zKEopO3MoSisiLGFzeW5jLGF1dG9mb2N1cyxhdXRvcGxheSxjb250cm9scyxkZWZhdWx0LGRlZmVyLGRpc2FibGVkLGhpZGRlbixpbmVydCxsb29wLG9wZW4scmVxdWlyZWQscmV2ZXJzZWQsc2NvcGVkLHNlYW1sZXNzLGNoZWNrZWQsbXV0ZWQsbXVsdGlwbGUsc2VsZWN0ZWQiKTtmdW5jdGlvbiBZKHQpe3JldHVybiEhdHx8IiI9PT10fWZ1bmN0aW9uIFoodCxlKXtpZih0PT09ZSlyZXR1cm4hMDtsZXQgcz1nKHQpLGk9ZyhlKTtpZihzfHxpKXJldHVybiEoIXN8fCFpKSYmdC5nZXRUaW1lKCk9PT1lLmdldFRpbWUoKTtpZihzPXYodCksaT12KGUpLHN8fGkpcmV0dXJuIHQ9PT1lO2lmKHM9Zih0KSxpPWYoZSksc3x8aSlyZXR1cm4hKCFzfHwhaSkmJmZ1bmN0aW9uKHQsZSl7aWYodC5sZW5ndGghPT1lLmxlbmd0aClyZXR1cm4hMTtsZXQgcz0hMDtmb3IobGV0IGk9MDtzJiZpPHQubGVuZ3RoO2krKylzPVoodFtpXSxlW2ldKTtyZXR1cm4gc30odCxlKTtpZihzPXkodCksaT15KGUpLHN8fGkpe2lmKCFzfHwhaSlyZXR1cm4hMTtpZihPYmplY3Qua2V5cyh0KS5sZW5ndGghPT1PYmplY3Qua2V5cyhlKS5sZW5ndGgpcmV0dXJuITE7Zm9yKGNvbnN0IHMgaW4gdCl7Y29uc3QgaT10Lmhhc093blByb3BlcnR5KHMpLG49ZS5oYXNPd25Qcm9wZXJ0eShzKTtpZihpJiYhbnx8IWkmJm58fCFaKHRbc10sZVtzXSkpcmV0dXJuITF9fXJldHVybiBTdHJpbmcodCk9PT1TdHJpbmcoZSl9ZnVuY3Rpb24gWCh0LGUpe3JldHVybiB0LmZpbmRJbmRleCh0PT5aKHQsZSkpfXZhciBRLHR0PXQ9PiEoIXR8fCEwIT09dC5GZSksZXQ9dD0+dyh0KT90Om51bGw9PXQ/IiI6Zih0KXx8eSh0KSYmKHQudG9TdHJpbmc9PT1FfHwhRih0LnRvU3RyaW5nKSk/dHQodCk/ZXQodC52YWx1ZSk6SlNPTi5zdHJpbmdpZnkodCxzdCwyKTpTdHJpbmcodCksc3Q9KHQsZSk9PnR0KGUpP3N0KHQsZS52YWx1ZSk6cChlKT97W2BNYXAoJHtlLnNpemV9KWBdOlsuLi5lLmVudHJpZXMoKV0ucmVkdWNlKCh0LFtlLHNdLGkpPT4odFtpdChlLGkpKyIgPT4iXT1zLHQpLHt9KX06bShlKT97W2BTZXQoJHtlLnNpemV9KWBdOlsuLi5lLnZhbHVlcygpXS5tYXAodD0+aXQodCkpfTp2KGUpP2l0KGUpOiF5KGUpfHxmKGUpfHxrKGUpP2U6U3RyaW5nKGUpLGl0PSh0LGU9IiIpPT57dmFyIHM7cmV0dXJuIHYodCk/YFN5bWJvbCgke251bGwhPShzPXQuZGVzY3JpcHRpb24pP3M6ZX0pYDp0fTtmdW5jdGlvbiBudCh0LGUsLi4ucyl7cmV0dXJuIHQuYmluZCYmL1xbbmF0aXZlIGNvZGVcXS8udGVzdCh0LmJpbmQudG9TdHJpbmcoKSk/dC5iaW5kKGUsLi4ucyk6ZnVuY3Rpb24oLi4uaSl7cmV0dXJuIHQuYXBwbHkoZSxbLi4ucywuLi5pXSl9fXZhciBydCxvdD1jbGFzc3tjb25zdHJ1Y3Rvcih0PSExKXt0aGlzLmRldGFjaGVkPXQsdGhpcy5fYWN0aXZlPSEwLHRoaXMuX29uPTAsdGhpcy5lZmZlY3RzPVtdLHRoaXMuY2xlYW51cHM9W10sdGhpcy5faXNQYXVzZWQ9ITEsdGhpcy5wYXJlbnQ9USwhdCYmUSYmKHRoaXMuaW5kZXg9KFEuc2NvcGVzfHwoUS5zY29wZXM9W10pKS5wdXNoKHRoaXMpLTEpfWdldCBhY3RpdmUoKXtyZXR1cm4gdGhpcy5fYWN0aXZlfXBhdXNlKCl7aWYodGhpcy5fYWN0aXZlKXtsZXQgdCxlO2lmKHRoaXMuX2lzUGF1c2VkPSEwLHRoaXMuc2NvcGVzKWZvcih0PTAsZT10aGlzLnNjb3Blcy5sZW5ndGg7dDxlO3QrKyl0aGlzLnNjb3Blc1t0XS5wYXVzZSgpO2Zvcih0PTAsZT10aGlzLmVmZmVjdHMubGVuZ3RoO3Q8ZTt0KyspdGhpcy5lZmZlY3RzW3RdLnBhdXNlKCl9fXJlc3VtZSgpe2lmKHRoaXMuX2FjdGl2ZSYmdGhpcy5faXNQYXVzZWQpe2xldCB0LGU7aWYodGhpcy5faXNQYXVzZWQ9ITEsdGhpcy5zY29wZXMpZm9yKHQ9MCxlPXRoaXMuc2NvcGVzLmxlbmd0aDt0PGU7dCsrKXRoaXMuc2NvcGVzW3RdLnJlc3VtZSgpO2Zvcih0PTAsZT10aGlzLmVmZmVjdHMubGVuZ3RoO3Q8ZTt0KyspdGhpcy5lZmZlY3RzW3RdLnJlc3VtZSgpfX1ydW4odCl7aWYodGhpcy5fYWN0aXZlKXtjb25zdCBlPVE7dHJ5e3JldHVybiBRPXRoaXMsdCgpfWZpbmFsbHl7UT1lfX19b24oKXsxPT09Kyt0aGlzLl9vbiYmKHRoaXMucHJldlNjb3BlPVEsUT10aGlzKX1vZmYoKXt0aGlzLl9vbj4wJiYwPT09LS10aGlzLl9vbiYmKFE9dGhpcy5wcmV2U2NvcGUsdGhpcy5wcmV2U2NvcGU9dm9pZCAwKX1zdG9wKHQpe2lmKHRoaXMuX2FjdGl2ZSl7bGV0IGUscztmb3IodGhpcy5fYWN0aXZlPSExLGU9MCxzPXRoaXMuZWZmZWN0cy5sZW5ndGg7ZTxzO2UrKyl0aGlzLmVmZmVjdHNbZV0uc3RvcCgpO2Zvcih0aGlzLmVmZmVjdHMubGVuZ3RoPTAsZT0wLHM9dGhpcy5jbGVhbnVwcy5sZW5ndGg7ZTxzO2UrKyl0aGlzLmNsZWFudXBzW2VdKCk7aWYodGhpcy5jbGVhbnVwcy5sZW5ndGg9MCx0aGlzLnNjb3Blcyl7Zm9yKGU9MCxzPXRoaXMuc2NvcGVzLmxlbmd0aDtlPHM7ZSsrKXRoaXMuc2NvcGVzW2VdLnN0b3AoITApO3RoaXMuc2NvcGVzLmxlbmd0aD0wfWlmKCF0aGlzLmRldGFjaGVkJiZ0aGlzLnBhcmVudCYmIXQpe2NvbnN0IHQ9dGhpcy5wYXJlbnQuc2NvcGVzLnBvcCgpO3QmJnQhPT10aGlzJiYodGhpcy5wYXJlbnQuc2NvcGVzW3RoaXMuaW5kZXhdPXQsdC5pbmRleD10aGlzLmluZGV4KX10aGlzLnBhcmVudD12b2lkIDB9fX07dmFyIHV0LGx0LGF0PW5ldyBXZWFrU2V0LGh0PWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuZm49dCx0aGlzLmRlcHM9dm9pZCAwLHRoaXMuZGVwc1RhaWw9dm9pZCAwLHRoaXMuZmxhZ3M9NSx0aGlzLm5leHQ9dm9pZCAwLHRoaXMuY2xlYW51cD12b2lkIDAsdGhpcy5zY2hlZHVsZXI9dm9pZCAwLFEmJlEuYWN0aXZlJiZRLmVmZmVjdHMucHVzaCh0aGlzKX1wYXVzZSgpe3RoaXMuZmxhZ3N8PTY0fXJlc3VtZSgpezY0JnRoaXMuZmxhZ3MmJih0aGlzLmZsYWdzJj0tNjUsYXQuaGFzKHRoaXMpJiYoYXQuZGVsZXRlKHRoaXMpLHRoaXMudHJpZ2dlcigpKSl9bm90aWZ5KCl7MiZ0aGlzLmZsYWdzJiYhKDMyJnRoaXMuZmxhZ3MpfHw4JnRoaXMuZmxhZ3N8fGR0KHRoaXMpfXJ1bigpe2lmKCEoMSZ0aGlzLmZsYWdzKSlyZXR1cm4gdGhpcy5mbigpO3RoaXMuZmxhZ3N8PTIsJHQodGhpcykscHQodGhpcyk7Y29uc3QgdD1ydCxlPWJ0O3J0PXRoaXMsYnQ9ITA7dHJ5e3JldHVybiB0aGlzLmZuKCl9ZmluYWxseXtfdCh0aGlzKSxydD10LGJ0PWUsdGhpcy5mbGFncyY9LTN9fXN0b3AoKXtpZigxJnRoaXMuZmxhZ3Mpe2ZvcihsZXQgdD10aGlzLmRlcHM7dDt0PXQubmV4dERlcClGdCh0KTt0aGlzLmRlcHM9dGhpcy5kZXBzVGFpbD12b2lkIDAsJHQodGhpcyksdGhpcy5vblN0b3AmJnRoaXMub25TdG9wKCksdGhpcy5mbGFncyY9LTJ9fXRyaWdnZXIoKXs2NCZ0aGlzLmZsYWdzP2F0LmFkZCh0aGlzKTp0aGlzLnNjaGVkdWxlcj90aGlzLnNjaGVkdWxlcigpOnRoaXMucnVuSWZEaXJ0eSgpfXJ1bklmRGlydHkoKXttdCh0aGlzKSYmdGhpcy5ydW4oKX1nZXQgZGlydHkoKXtyZXR1cm4gbXQodGhpcyl9fSxjdD0wO2Z1bmN0aW9uIGR0KHQsZT0hMSl7aWYodC5mbGFnc3w9OCxlKXJldHVybiB0Lm5leHQ9bHQsdm9pZChsdD10KTt0Lm5leHQ9dXQsdXQ9dH1mdW5jdGlvbiBEdCgpe2N0Kyt9ZnVuY3Rpb24gZnQoKXtpZigtLWN0PjApcmV0dXJuO2lmKGx0KXtsZXQgdD1sdDtmb3IobHQ9dm9pZCAwO3Q7KXtjb25zdCBlPXQubmV4dDt0Lm5leHQ9dm9pZCAwLHQuZmxhZ3MmPS05LHQ9ZX19bGV0IHQ7Zm9yKDt1dDspe2xldCBzPXV0O2Zvcih1dD12b2lkIDA7czspe2NvbnN0IGk9cy5uZXh0O2lmKHMubmV4dD12b2lkIDAscy5mbGFncyY9LTksMSZzLmZsYWdzKXRyeXtzLnRyaWdnZXIoKX1jYXRjaChlKXt0fHwodD1lKX1zPWl9fWlmKHQpdGhyb3cgdH1mdW5jdGlvbiBwdCh0KXtmb3IobGV0IGU9dC5kZXBzO2U7ZT1lLm5leHREZXApZS52ZXJzaW9uPS0xLGUucHJldkFjdGl2ZUxpbms9ZS5kZXAuYWN0aXZlTGluayxlLmRlcC5hY3RpdmVMaW5rPWV9ZnVuY3Rpb24gX3QodCl7bGV0IGUscz10LmRlcHNUYWlsLGk9cztmb3IoO2k7KXtjb25zdCB0PWkucHJldkRlcDstMT09PWkudmVyc2lvbj8oaT09PXMmJihzPXQpLEZ0KGkpLHd0KGkpKTplPWksaS5kZXAuYWN0aXZlTGluaz1pLnByZXZBY3RpdmVMaW5rLGkucHJldkFjdGl2ZUxpbms9dm9pZCAwLGk9dH10LmRlcHM9ZSx0LmRlcHNUYWlsPXN9ZnVuY3Rpb24gbXQodCl7Zm9yKGxldCBlPXQuZGVwcztlO2U9ZS5uZXh0RGVwKWlmKGUuZGVwLnZlcnNpb24hPT1lLnZlcnNpb258fGUuZGVwLmNvbXB1dGVkJiYoZ3QoZS5kZXAuY29tcHV0ZWQpfHxlLmRlcC52ZXJzaW9uIT09ZS52ZXJzaW9uKSlyZXR1cm4hMDtyZXR1cm4hIXQuX2RpcnR5fWZ1bmN0aW9uIGd0KHQpe2lmKDQmdC5mbGFncyYmISgxNiZ0LmZsYWdzKSlyZXR1cm47aWYodC5mbGFncyY9LTE3LHQuZ2xvYmFsVmVyc2lvbj09PUF0KXJldHVybjtpZih0Lmdsb2JhbFZlcnNpb249QXQsIXQuaXNTU1ImJjEyOCZ0LmZsYWdzJiYoIXQuZGVwcyYmIXQuX2RpcnR5fHwhbXQodCkpKXJldHVybjt0LmZsYWdzfD0yO2NvbnN0IGU9dC5kZXAscz1ydCxpPWJ0O3J0PXQsYnQ9ITA7dHJ5e3B0KHQpO2NvbnN0IHM9dC5mbih0Ll92YWx1ZSk7KDA9PT1lLnZlcnNpb258fHoocyx0Ll92YWx1ZSkpJiYodC5mbGFnc3w9MTI4LHQuX3ZhbHVlPXMsZS52ZXJzaW9uKyspfWNhdGNoKG4pe3Rocm93IGUudmVyc2lvbisrLG59ZmluYWxseXtydD1zLGJ0PWksX3QodCksdC5mbGFncyY9LTN9fWZ1bmN0aW9uIEZ0KHQsZT0hMSl7Y29uc3R7ZGVwOnMscHJldlN1YjppLG5leHRTdWI6bn09dDtpZihpJiYoaS5uZXh0U3ViPW4sdC5wcmV2U3ViPXZvaWQgMCksbiYmKG4ucHJldlN1Yj1pLHQubmV4dFN1Yj12b2lkIDApLHMuc3Vicz09PXQmJihzLnN1YnM9aSwhaSYmcy5jb21wdXRlZCkpe3MuY29tcHV0ZWQuZmxhZ3MmPS01O2ZvcihsZXQgdD1zLmNvbXB1dGVkLmRlcHM7dDt0PXQubmV4dERlcClGdCh0LCEwKX1lfHwtLXMuc2N8fCFzLm1hcHx8cy5tYXAuZGVsZXRlKHMua2V5KX1mdW5jdGlvbiB3dCh0KXtjb25zdHtwcmV2RGVwOmUsbmV4dERlcDpzfT10O2UmJihlLm5leHREZXA9cyx0LnByZXZEZXA9dm9pZCAwKSxzJiYocy5wcmV2RGVwPWUsdC5uZXh0RGVwPXZvaWQgMCl9ZnVuY3Rpb24gdnQodCxlKXt0LmVmZmVjdCBpbnN0YW5jZW9mIGh0JiYodD10LmVmZmVjdC5mbik7Y29uc3Qgcz1uZXcgaHQodCk7ZSYmaChzLGUpO3RyeXtzLnJ1bigpfWNhdGNoKG4pe3Rocm93IHMuc3RvcCgpLG59Y29uc3QgaT1udChzLnJ1bixzKTtyZXR1cm4gaS5lZmZlY3Q9cyxpfWZ1bmN0aW9uIHl0KHQpe3QuZWZmZWN0LnN0b3AoKX12YXIgYnQ9ITAsRXQ9W107ZnVuY3Rpb24gQ3QoKXtFdC5wdXNoKGJ0KSxidD0hMX1mdW5jdGlvbiBrdCgpe2NvbnN0IHQ9RXQucG9wKCk7YnQ9dm9pZCAwPT09dHx8dH1mdW5jdGlvbiAkdCh0KXtjb25zdHtjbGVhbnVwOmV9PXQ7aWYodC5jbGVhbnVwPXZvaWQgMCxlKXtjb25zdCB0PXJ0O3J0PXZvaWQgMDt0cnl7ZSgpfWZpbmFsbHl7cnQ9dH19fXZhciBBdD0wLEJ0PWNsYXNze2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5zdWI9dCx0aGlzLmRlcD1lLHRoaXMudmVyc2lvbj1lLnZlcnNpb24sdGhpcy5uZXh0RGVwPXRoaXMucHJldkRlcD10aGlzLm5leHRTdWI9dGhpcy5wcmV2U3ViPXRoaXMucHJldkFjdGl2ZUxpbms9dm9pZCAwfX0seHQ9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5jb21wdXRlZD10LHRoaXMudmVyc2lvbj0wLHRoaXMuYWN0aXZlTGluaz12b2lkIDAsdGhpcy5zdWJzPXZvaWQgMCx0aGlzLm1hcD12b2lkIDAsdGhpcy5rZXk9dm9pZCAwLHRoaXMuc2M9MCx0aGlzLkJlPSEwfXRyYWNrKHQpe2lmKCFydHx8IWJ0fHxydD09PXRoaXMuY29tcHV0ZWQpcmV0dXJuO2xldCBlPXRoaXMuYWN0aXZlTGluaztpZih2b2lkIDA9PT1lfHxlLnN1YiE9PXJ0KWU9dGhpcy5hY3RpdmVMaW5rPW5ldyBCdChydCx0aGlzKSxydC5kZXBzPyhlLnByZXZEZXA9cnQuZGVwc1RhaWwscnQuZGVwc1RhaWwubmV4dERlcD1lLHJ0LmRlcHNUYWlsPWUpOnJ0LmRlcHM9cnQuZGVwc1RhaWw9ZSxqdChlKTtlbHNlIGlmKC0xPT09ZS52ZXJzaW9uJiYoZS52ZXJzaW9uPXRoaXMudmVyc2lvbixlLm5leHREZXApKXtjb25zdCB0PWUubmV4dERlcDt0LnByZXZEZXA9ZS5wcmV2RGVwLGUucHJldkRlcCYmKGUucHJldkRlcC5uZXh0RGVwPXQpLGUucHJldkRlcD1ydC5kZXBzVGFpbCxlLm5leHREZXA9dm9pZCAwLHJ0LmRlcHNUYWlsLm5leHREZXA9ZSxydC5kZXBzVGFpbD1lLHJ0LmRlcHM9PT1lJiYocnQuZGVwcz10KX1yZXR1cm4gZX10cmlnZ2VyKHQpe3RoaXMudmVyc2lvbisrLEF0KyssdGhpcy5ub3RpZnkodCl9bm90aWZ5KHQpe0R0KCk7dHJ5e2ZvcihsZXQgdD10aGlzLnN1YnM7dDt0PXQucHJldlN1Yil0LnN1Yi5ub3RpZnkoKSYmdC5zdWIuZGVwLm5vdGlmeSgpfWZpbmFsbHl7ZnQoKX19fTtmdW5jdGlvbiBqdCh0KXtpZih0LmRlcC5zYysrLDQmdC5zdWIuZmxhZ3Mpe2NvbnN0IGU9dC5kZXAuY29tcHV0ZWQ7aWYoZSYmIXQuZGVwLnN1YnMpe2UuZmxhZ3N8PTIwO2ZvcihsZXQgdD1lLmRlcHM7dDt0PXQubmV4dERlcClqdCh0KX1jb25zdCBzPXQuZGVwLnN1YnM7cyE9PXQmJih0LnByZXZTdWI9cyxzJiYocy5uZXh0U3ViPXQpKSx0LmRlcC5zdWJzPXR9fXZhciBJdD1uZXcgV2Vha01hcCxTdD1TeW1ib2woIiIpLFJ0PVN5bWJvbCgiIiksT3Q9U3ltYm9sKCIiKTtmdW5jdGlvbiBUdCh0LGUscyl7aWYoYnQmJnJ0KXtsZXQgZT1JdC5nZXQodCk7ZXx8SXQuc2V0KHQsZT1uZXcgTWFwKTtsZXQgaT1lLmdldChzKTtpfHwoZS5zZXQocyxpPW5ldyB4dCksaS5tYXA9ZSxpLmtleT1zKSxpLnRyYWNrKCl9fWZ1bmN0aW9uIHp0KHQsZSxzLGksbixyKXtjb25zdCBvPUl0LmdldCh0KTtpZighbylyZXR1cm4gdm9pZCBBdCsrO2NvbnN0IHU9dD0+e3QmJnQudHJpZ2dlcigpfTtpZihEdCgpLCJjbGVhciI9PT1lKW8uZm9yRWFjaCh1KTtlbHNle2NvbnN0IG49Zih0KSxyPW4mJkEocyk7aWYobiYmImxlbmd0aCI9PT1zKXtjb25zdCB0PU51bWJlcihpKTtvLmZvckVhY2goKGUscyk9PnsoImxlbmd0aCI9PT1zfHxzPT09T3R8fCF2KHMpJiZzPj10KSYmdShlKX0pfWVsc2Ugc3dpdGNoKCh2b2lkIDAhPT1zfHxvLmhhcyh2b2lkIDApKSYmdShvLmdldChzKSksciYmdShvLmdldChPdCkpLGUpe2Nhc2UiYWRkIjpuP3ImJnUoby5nZXQoImxlbmd0aCIpKToodShvLmdldChTdCkpLHAodCkmJnUoby5nZXQoUnQpKSk7YnJlYWs7Y2FzZSJkZWxldGUiOm58fCh1KG8uZ2V0KFN0KSkscCh0KSYmdShvLmdldChSdCkpKTticmVhaztjYXNlInNldCI6cCh0KSYmdShvLmdldChTdCkpfX1mdCgpfWZ1bmN0aW9uIFB0KHQpe2NvbnN0IGU9YmUodCk7cmV0dXJuIGU9PT10P2U6KFR0KGUsMCxPdCksdmUodCk/ZTplLm1hcChDZSkpfWZ1bmN0aW9uIEx0KHQpe3JldHVybiBUdCh0PWJlKHQpLDAsT3QpLHR9ZnVuY3Rpb24gTXQodCxlKXtyZXR1cm4gd2UodCk/RmUodCk/a2UoQ2UoZSkpOmtlKGUpOkNlKGUpfXZhciBVdD17X19wcm90b19fOm51bGwsW1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gcXQodGhpcyxTeW1ib2wuaXRlcmF0b3IsdD0+TXQodGhpcyx0KSl9LGNvbmNhdCguLi50KXtyZXR1cm4gUHQodGhpcykuY29uY2F0KC4uLnQubWFwKHQ9PmYodCk/UHQodCk6dCkpfSxlbnRyaWVzKCl7cmV0dXJuIHF0KHRoaXMsImVudHJpZXMiLHQ9Pih0WzFdPU10KHRoaXMsdFsxXSksdCkpfSxldmVyeSh0LGUpe3JldHVybiBOdCh0aGlzLCJldmVyeSIsdCxlLHZvaWQgMCxhcmd1bWVudHMpfSxmaWx0ZXIodCxlKXtyZXR1cm4gTnQodGhpcywiZmlsdGVyIix0LGUsdD0+dC5tYXAodD0+TXQodGhpcyx0KSksYXJndW1lbnRzKX0sZmluZCh0LGUpe3JldHVybiBOdCh0aGlzLCJmaW5kIix0LGUsdD0+TXQodGhpcyx0KSxhcmd1bWVudHMpfSxmaW5kSW5kZXgodCxlKXtyZXR1cm4gTnQodGhpcywiZmluZEluZGV4Iix0LGUsdm9pZCAwLGFyZ3VtZW50cyl9LGZpbmRMYXN0KHQsZSl7cmV0dXJuIE50KHRoaXMsImZpbmRMYXN0Iix0LGUsdD0+TXQodGhpcyx0KSxhcmd1bWVudHMpfSxmaW5kTGFzdEluZGV4KHQsZSl7cmV0dXJuIE50KHRoaXMsImZpbmRMYXN0SW5kZXgiLHQsZSx2b2lkIDAsYXJndW1lbnRzKX0sZm9yRWFjaCh0LGUpe3JldHVybiBOdCh0aGlzLCJmb3JFYWNoIix0LGUsdm9pZCAwLGFyZ3VtZW50cyl9LGluY2x1ZGVzKC4uLnQpe3JldHVybiBXdCh0aGlzLCJpbmNsdWRlcyIsdCl9LGluZGV4T2YoLi4udCl7cmV0dXJuIFd0KHRoaXMsImluZGV4T2YiLHQpfSxqb2luKHQpe3JldHVybiBQdCh0aGlzKS5qb2luKHQpfSxsYXN0SW5kZXhPZiguLi50KXtyZXR1cm4gV3QodGhpcywibGFzdEluZGV4T2YiLHQpfSxtYXAodCxlKXtyZXR1cm4gTnQodGhpcywibWFwIix0LGUsdm9pZCAwLGFyZ3VtZW50cyl9LHBvcCgpe3JldHVybiBHdCh0aGlzLCJwb3AiKX0scHVzaCguLi50KXtyZXR1cm4gR3QodGhpcywicHVzaCIsdCl9LHJlZHVjZSh0LC4uLmUpe3JldHVybiBIdCh0aGlzLCJyZWR1Y2UiLHQsZSl9LHJlZHVjZVJpZ2h0KHQsLi4uZSl7cmV0dXJuIEh0KHRoaXMsInJlZHVjZVJpZ2h0Iix0LGUpfSxzaGlmdCgpe3JldHVybiBHdCh0aGlzLCJzaGlmdCIpfSxzb21lKHQsZSl7cmV0dXJuIE50KHRoaXMsInNvbWUiLHQsZSx2b2lkIDAsYXJndW1lbnRzKX0sc3BsaWNlKC4uLnQpe3JldHVybiBHdCh0aGlzLCJzcGxpY2UiLHQpfSx0b1JldmVyc2VkKCl7cmV0dXJuIFB0KHRoaXMpLnRvUmV2ZXJzZWQoKX0sdG9Tb3J0ZWQodCl7cmV0dXJuIFB0KHRoaXMpLnRvU29ydGVkKHQpfSx0b1NwbGljZWQoLi4udCl7cmV0dXJuIFB0KHRoaXMpLnRvU3BsaWNlZCguLi50KX0sdW5zaGlmdCguLi50KXtyZXR1cm4gR3QodGhpcywidW5zaGlmdCIsdCl9LHZhbHVlcygpe3JldHVybiBxdCh0aGlzLCJ2YWx1ZXMiLHQ9Pk10KHRoaXMsdCkpfX07ZnVuY3Rpb24gcXQodCxlLHMpe2NvbnN0IGk9THQodCksbj1pW2VdKCk7cmV0dXJuIGk9PT10fHx2ZSh0KXx8KG4uX25leHQ9bi5uZXh0LG4ubmV4dD0oKT0+e2NvbnN0IHQ9bi5fbmV4dCgpO3JldHVybiB0LmRvbmV8fCh0LnZhbHVlPXModC52YWx1ZSkpLHR9KSxufXZhciBWdD1BcnJheS5wcm90b3R5cGU7ZnVuY3Rpb24gTnQodCxlLHMsaSxuLHIpe2NvbnN0IG89THQodCksdT1vIT09dCYmIXZlKHQpLGw9b1tlXTtpZihsIT09VnRbZV0pe2NvbnN0IGU9bC5hcHBseSh0LHIpO3JldHVybiB1P0NlKGUpOmV9bGV0IGE9cztvIT09dCYmKHU/YT1mdW5jdGlvbihlLGkpe3JldHVybiBzLmNhbGwodGhpcyxNdCh0LGUpLGksdCl9OnMubGVuZ3RoPjImJihhPWZ1bmN0aW9uKGUsaSl7cmV0dXJuIHMuY2FsbCh0aGlzLGUsaSx0KX0pKTtjb25zdCBoPWwuY2FsbChvLGEsaSk7cmV0dXJuIHUmJm4/bihoKTpofWZ1bmN0aW9uIEh0KHQsZSxzLGkpe2NvbnN0IG49THQodCk7bGV0IHI9cztyZXR1cm4gbiE9PXQmJih2ZSh0KT9zLmxlbmd0aD4zJiYocj1mdW5jdGlvbihlLGksbil7cmV0dXJuIHMuY2FsbCh0aGlzLGUsaSxuLHQpfSk6cj1mdW5jdGlvbihlLGksbil7cmV0dXJuIHMuY2FsbCh0aGlzLGUsTXQodCxpKSxuLHQpfSksbltlXShyLC4uLmkpfWZ1bmN0aW9uIFd0KHQsZSxzKXtjb25zdCBpPWJlKHQpO1R0KGksMCxPdCk7Y29uc3Qgbj1pW2VdKC4uLnMpO3JldHVybi0xIT09biYmITEhPT1ufHwheWUoc1swXSk/bjooc1swXT1iZShzWzBdKSxpW2VdKC4uLnMpKX1mdW5jdGlvbiBHdCh0LGUscz1bXSl7Q3QoKSxEdCgpO2NvbnN0IGk9YmUodClbZV0uYXBwbHkodCxzKTtyZXR1cm4gZnQoKSxrdCgpLGl9dmFyIEp0PXMoIl9fcHJvdG9fXyxfX3ZfaXNSZWYsX19pc1Z1ZSIpLEt0PW5ldyBTZXQoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoU3ltYm9sKS5maWx0ZXIodD0+ImFyZ3VtZW50cyIhPT10JiYiY2FsbGVyIiE9PXQpLm1hcCh0PT5TeW1ib2xbdF0pLmZpbHRlcih2KSk7ZnVuY3Rpb24gWXQodCl7dih0KXx8KHQ9U3RyaW5nKHQpKTtjb25zdCBlPWJlKHRoaXMpO3JldHVybiBUdChlLDAsdCksZS5oYXNPd25Qcm9wZXJ0eSh0KX12YXIgWnQ9Y2xhc3N7Y29uc3RydWN0b3IodD0hMSxlPSExKXt0aGlzLl9pc1JlYWRvbmx5PXQsdGhpcy5faXNTaGFsbG93PWV9Z2V0KHQsZSxzKXtpZigiX192X3NraXAiPT09ZSlyZXR1cm4gdC5CZTtjb25zdCBpPXRoaXMuX2lzUmVhZG9ubHksbj10aGlzLl9pc1NoYWxsb3c7aWYoIl9fdl9pc1JlYWN0aXZlIj09PWUpcmV0dXJuIWk7aWYoIl9fdl9pc1JlYWRvbmx5Ij09PWUpcmV0dXJuIGk7aWYoIl9fdl9pc1NoYWxsb3ciPT09ZSlyZXR1cm4gbjtpZigiX192X3JhdyI9PT1lKXJldHVybiBzPT09KGk/bj9EZTpkZTpuP2NlOmhlKS5nZXQodCl8fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KT09PU9iamVjdC5nZXRQcm90b3R5cGVPZihzKT90OnZvaWQgMDtjb25zdCByPWYodCk7aWYoIWkpe2xldCB0O2lmKHImJih0PVV0W2VdKSlyZXR1cm4gdDtpZigiaGFzT3duUHJvcGVydHkiPT09ZSlyZXR1cm4gWXR9Y29uc3Qgbz1SZWZsZWN0LmdldCh0LGUsJGUodCk/dDpzKTtpZih2KGUpP0t0LmhhcyhlKTpKdChlKSlyZXR1cm4gbztpZihpfHxUdCh0LDAsZSksbilyZXR1cm4gbztpZigkZShvKSl7Y29uc3QgdD1yJiZBKGUpP286by52YWx1ZTtyZXR1cm4gaSYmeSh0KT9tZSh0KTp0fXJldHVybiB5KG8pP2k/bWUobyk6cGUobyk6b319LFh0PWNsYXNzIGV4dGVuZHMgWnR7Y29uc3RydWN0b3IodD0hMSl7c3VwZXIoITEsdCl9c2V0KHQsZSxzLGkpe2xldCBuPXRbZV07Y29uc3Qgcj1mKHQpJiZBKGUpO2lmKCF0aGlzLl9pc1NoYWxsb3cpe2NvbnN0IHQ9d2Uobik7aWYodmUocyl8fHdlKHMpfHwobj1iZShuKSxzPWJlKHMpKSwhciYmJGUobikmJiEkZShzKSlyZXR1cm4gdHx8KG4udmFsdWU9cyksITB9Y29uc3Qgbz1yP051bWJlcihlKTx0Lmxlbmd0aDpEKHQsZSksdT1SZWZsZWN0LnNldCh0LGUscywkZSh0KT90OmkpO3JldHVybiB0PT09YmUoaSkmJihvP3oocyxuKSYmenQodCwic2V0IixlLHMpOnp0KHQsImFkZCIsZSxzKSksdX1kZWxldGVQcm9wZXJ0eSh0LGUpe2NvbnN0IHM9RCh0LGUpLGk9KHRbZV0sUmVmbGVjdC5kZWxldGVQcm9wZXJ0eSh0LGUpKTtyZXR1cm4gaSYmcyYmenQodCwiZGVsZXRlIixlLHZvaWQgMCksaX1oYXModCxlKXtjb25zdCBzPVJlZmxlY3QuaGFzKHQsZSk7cmV0dXJuIHYoZSkmJkt0LmhhcyhlKXx8VHQodCwwLGUpLHN9b3duS2V5cyh0KXtyZXR1cm4gVHQodCwwLGYodCk/Imxlbmd0aCI6U3QpLFJlZmxlY3Qub3duS2V5cyh0KX19LFF0PW5ldyBYdCx0ZT1uZXcgY2xhc3MgZXh0ZW5kcyBadHtjb25zdHJ1Y3Rvcih0PSExKXtzdXBlcighMCx0KX1zZXQodCxlKXtyZXR1cm4hMH1kZWxldGVQcm9wZXJ0eSh0LGUpe3JldHVybiEwfX0sZWU9bmV3IFh0KCEwKSxzZT10PT50LGllPXQ9PlJlZmxlY3QuZ2V0UHJvdG90eXBlT2YodCk7ZnVuY3Rpb24gbmUodCl7cmV0dXJuIGZ1bmN0aW9uKC4uLmUpe3JldHVybiJkZWxldGUiIT09dCYmKCJjbGVhciI9PT10P3ZvaWQgMDp0aGlzKX19ZnVuY3Rpb24gcmUodCxlKXtjb25zdCBzPXtnZXQocyl7Y29uc3QgaT10aGlzLl9fdl9yYXcsbj1iZShpKSxyPWJlKHMpO3R8fCh6KHMscikmJlR0KG4sMCxzKSxUdChuLDAscikpO2NvbnN0e2hhczpvfT1pZShuKSx1PWU/c2U6dD9rZTpDZTtyZXR1cm4gby5jYWxsKG4scyk/dShpLmdldChzKSk6by5jYWxsKG4scik/dShpLmdldChyKSk6dm9pZChpIT09biYmaS5nZXQocykpfSxnZXQgc2l6ZSgpe2NvbnN0IGU9dGhpcy5fX3ZfcmF3O3JldHVybiF0JiZUdChiZShlKSwwLFN0KSxlLnNpemV9LGhhcyhlKXtjb25zdCBzPXRoaXMuX192X3JhdyxpPWJlKHMpLG49YmUoZSk7cmV0dXJuIHR8fCh6KGUsbikmJlR0KGksMCxlKSxUdChpLDAsbikpLGU9PT1uP3MuaGFzKGUpOnMuaGFzKGUpfHxzLmhhcyhuKX0sZm9yRWFjaChzLGkpe2NvbnN0IG49dGhpcyxyPW4uX192X3JhdyxvPWJlKHIpLHU9ZT9zZTp0P2tlOkNlO3JldHVybiF0JiZUdChvLDAsU3QpLHIuZm9yRWFjaCgodCxlKT0+cy5jYWxsKGksdSh0KSx1KGUpLG4pKX19O3JldHVybiBoKHMsdD97YWRkOm5lKCJhZGQiKSxzZXQ6bmUoInNldCIpLGRlbGV0ZTpuZSgiZGVsZXRlIiksY2xlYXI6bmUoImNsZWFyIil9OnthZGQodCl7ZXx8dmUodCl8fHdlKHQpfHwodD1iZSh0KSk7Y29uc3Qgcz1iZSh0aGlzKTtyZXR1cm4gaWUocykuaGFzLmNhbGwocyx0KXx8KHMuYWRkKHQpLHp0KHMsImFkZCIsdCx0KSksdGhpc30sc2V0KHQscyl7ZXx8dmUocyl8fHdlKHMpfHwocz1iZShzKSk7Y29uc3QgaT1iZSh0aGlzKSx7aGFzOm4sZ2V0OnJ9PWllKGkpO2xldCBvPW4uY2FsbChpLHQpO298fCh0PWJlKHQpLG89bi5jYWxsKGksdCkpO2NvbnN0IHU9ci5jYWxsKGksdCk7cmV0dXJuIGkuc2V0KHQscyksbz96KHMsdSkmJnp0KGksInNldCIsdCxzKTp6dChpLCJhZGQiLHQscyksdGhpc30sZGVsZXRlKHQpe2NvbnN0IGU9YmUodGhpcykse2hhczpzLGdldDppfT1pZShlKTtsZXQgbj1zLmNhbGwoZSx0KTtufHwodD1iZSh0KSxuPXMuY2FsbChlLHQpKTtpJiZpLmNhbGwoZSx0KTtjb25zdCByPWUuZGVsZXRlKHQpO3JldHVybiBuJiZ6dChlLCJkZWxldGUiLHQsdm9pZCAwKSxyfSxjbGVhcigpe2NvbnN0IHQ9YmUodGhpcyksZT0wIT09dC5zaXplLHM9dC5jbGVhcigpO3JldHVybiBlJiZ6dCh0LCJjbGVhciIsdm9pZCAwLHZvaWQgMCksc319KSxbImtleXMiLCJ2YWx1ZXMiLCJlbnRyaWVzIixTeW1ib2wuaXRlcmF0b3JdLmZvckVhY2goaT0+e3NbaV09ZnVuY3Rpb24odCxlLHMpe3JldHVybiBmdW5jdGlvbiguLi5pKXtjb25zdCBuPXRoaXMuX192X3JhdyxyPWJlKG4pLG89cChyKSx1PSJlbnRyaWVzIj09PXR8fHQ9PT1TeW1ib2wuaXRlcmF0b3ImJm8sbD0ia2V5cyI9PT10JiZvLGE9blt0XSguLi5pKSxoPXM/c2U6ZT9rZTpDZTtyZXR1cm4hZSYmVHQociwwLGw/UnQ6U3QpLHtuZXh0KCl7Y29uc3R7dmFsdWU6dCxkb25lOmV9PWEubmV4dCgpO3JldHVybiBlP3t2YWx1ZTp0LGRvbmU6ZX06e3ZhbHVlOnU/W2godFswXSksaCh0WzFdKV06aCh0KSxkb25lOmV9fSxbU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzfX19fShpLHQsZSl9KSxzfWZ1bmN0aW9uIG9lKHQsZSl7Y29uc3Qgcz1yZSh0LGUpO3JldHVybihlLGksbik9PiJfX3ZfaXNSZWFjdGl2ZSI9PT1pPyF0OiJfX3ZfaXNSZWFkb25seSI9PT1pP3Q6Il9fdl9yYXciPT09aT9lOlJlZmxlY3QuZ2V0KEQocyxpKSYmaSBpbiBlP3M6ZSxpLG4pfXZhciB1ZT17Z2V0Om9lKCExLCExKX0sbGU9e2dldDpvZSghMSwhMCl9LGFlPXtnZXQ6b2UoITAsITEpfSxoZT1uZXcgV2Vha01hcCxjZT1uZXcgV2Vha01hcCxkZT1uZXcgV2Vha01hcCxEZT1uZXcgV2Vha01hcDtmdW5jdGlvbiBmZSh0KXtyZXR1cm4gdC5CZXx8IU9iamVjdC5pc0V4dGVuc2libGUodCk/MDpmdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSJPYmplY3QiOmNhc2UiQXJyYXkiOnJldHVybiAxO2Nhc2UiTWFwIjpjYXNlIlNldCI6Y2FzZSJXZWFrTWFwIjpjYXNlIldlYWtTZXQiOnJldHVybiAyO2RlZmF1bHQ6cmV0dXJuIDB9fSgodD0+Qyh0KS5zbGljZSg4LC0xKSkodCkpfWZ1bmN0aW9uIHBlKHQpe3JldHVybiB3ZSh0KT90OmdlKHQsITEsUXQsdWUsaGUpfWZ1bmN0aW9uIF9lKHQpe3JldHVybiBnZSh0LCExLGVlLGxlLGNlKX1mdW5jdGlvbiBtZSh0KXtyZXR1cm4gZ2UodCwhMCx0ZSxhZSxkZSl9ZnVuY3Rpb24gZ2UodCxlLHMsaSxuKXtpZigheSh0KSlyZXR1cm4gdDtpZih0Ll9fdl9yYXcmJighZXx8IXQuX192X2lzUmVhY3RpdmUpKXJldHVybiB0O2NvbnN0IHI9ZmUodCk7aWYoMD09PXIpcmV0dXJuIHQ7Y29uc3Qgbz1uLmdldCh0KTtpZihvKXJldHVybiBvO2NvbnN0IHU9bmV3IFByb3h5KHQsMj09PXI/aTpzKTtyZXR1cm4gbi5zZXQodCx1KSx1fWZ1bmN0aW9uIEZlKHQpe3JldHVybiB3ZSh0KT9GZSh0Ll9fdl9yYXcpOiEoIXR8fCF0Ll9fdl9pc1JlYWN0aXZlKX1mdW5jdGlvbiB3ZSh0KXtyZXR1cm4hKCF0fHwhdC5fX3ZfaXNSZWFkb25seSl9ZnVuY3Rpb24gdmUodCl7cmV0dXJuISghdHx8IXQuX192X2lzU2hhbGxvdyl9ZnVuY3Rpb24geWUodCl7cmV0dXJuISF0JiYhIXQuX192X3Jhd31mdW5jdGlvbiBiZSh0KXtjb25zdCBlPXQmJnQuX192X3JhdztyZXR1cm4gZT9iZShlKTp0fWZ1bmN0aW9uIEVlKHQpe3JldHVybiFEKHQsIl9fdl9za2lwIikmJk9iamVjdC5pc0V4dGVuc2libGUodCkmJkwodCwiX192X3NraXAiLCEwKSx0fXZhciBDZT10PT55KHQpP3BlKHQpOnQsa2U9dD0+eSh0KT9tZSh0KTp0O2Z1bmN0aW9uICRlKHQpe3JldHVybiEhdCYmITA9PT10LkZlfWZ1bmN0aW9uIEFlKHQpe3JldHVybiBzPSExLCRlKGU9dCk/ZTpuZXcgQmUoZSxzKTt2YXIgZSxzfXZhciBCZT1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuZGVwPW5ldyB4dCx0aGlzLkZlPSEwLHRoaXMuX192X2lzU2hhbGxvdz0hMSx0aGlzLl9yYXdWYWx1ZT1lP3Q6YmUodCksdGhpcy5fdmFsdWU9ZT90OkNlKHQpLHRoaXMuX192X2lzU2hhbGxvdz1lfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLmRlcC50cmFjaygpLHRoaXMuX3ZhbHVlfXNldCB2YWx1ZSh0KXtjb25zdCBlPXRoaXMuX3Jhd1ZhbHVlLHM9dGhpcy5fX3ZfaXNTaGFsbG93fHx2ZSh0KXx8d2UodCk7dD1zP3Q6YmUodCkseih0LGUpJiYodGhpcy5fcmF3VmFsdWU9dCx0aGlzLl92YWx1ZT1zP3Q6Q2UodCksdGhpcy5kZXAudHJpZ2dlcigpKX19O3ZhciB4ZT17Z2V0Oih0LGUscyk9PntyZXR1cm4iX192X3JhdyI9PT1lP3Q6JGUoaT1SZWZsZWN0LmdldCh0LGUscykpP2kudmFsdWU6aTt2YXIgaX0sc2V0Oih0LGUscyxpKT0+e2NvbnN0IG49dFtlXTtyZXR1cm4gJGUobikmJiEkZShzKT8obi52YWx1ZT1zLCEwKTpSZWZsZWN0LnNldCh0LGUscyxpKX19O2Z1bmN0aW9uIGplKHQpe3JldHVybiBGZSh0KT90Om5ldyBQcm94eSh0LHhlKX12YXIgSWU9Y2xhc3N7Y29uc3RydWN0b3IodCxlLHMpe3RoaXMuZm49dCx0aGlzLnNldHRlcj1lLHRoaXMuX3ZhbHVlPXZvaWQgMCx0aGlzLmRlcD1uZXcgeHQodGhpcyksdGhpcy5GZT0hMCx0aGlzLmRlcHM9dm9pZCAwLHRoaXMuZGVwc1RhaWw9dm9pZCAwLHRoaXMuZmxhZ3M9MTYsdGhpcy5nbG9iYWxWZXJzaW9uPUF0LTEsdGhpcy5uZXh0PXZvaWQgMCx0aGlzLmVmZmVjdD10aGlzLHRoaXMuX192X2lzUmVhZG9ubHk9IWUsdGhpcy5pc1NTUj1zfW5vdGlmeSgpe2lmKHRoaXMuZmxhZ3N8PTE2LCEoOCZ0aGlzLmZsYWdzKSYmcnQhPT10aGlzKXJldHVybiBkdCh0aGlzLCEwKSwhMH1nZXQgdmFsdWUoKXtjb25zdCB0PXRoaXMuZGVwLnRyYWNrKCk7cmV0dXJuIGd0KHRoaXMpLHQmJih0LnZlcnNpb249dGhpcy5kZXAudmVyc2lvbiksdGhpcy5fdmFsdWV9c2V0IHZhbHVlKHQpe3RoaXMuc2V0dGVyJiZ0aGlzLnNldHRlcih0KX19O2Z1bmN0aW9uIFNlKHQsZSxzPSExKXtsZXQgaSxuO3JldHVybiBGKHQpP2k9dDooaT10LmdldCxuPXQuc2V0KSxuZXcgSWUoaSxuLHMpfXZhciBSZT17fSxPZT1uZXcgV2Vha01hcCxUZT12b2lkIDA7ZnVuY3Rpb24gemUodCxlLHM9bil7Y29uc3R7aW1tZWRpYXRlOmksZGVlcDpyLG9uY2U6dSxzY2hlZHVsZXI6bCxhdWdtZW50Sm9iOmEsY2FsbDpofT1zLGQ9dD0+cj90OnZlKHQpfHwhMT09PXJ8fDA9PT1yP1BlKHQsMSk6UGUodCk7bGV0IEQscCxtLGcsdz0hMSx2PSExO2lmKCRlKHQpPyhwPSgpPT50LnZhbHVlLHc9dmUodCkpOkZlKHQpPyhwPSgpPT5kKHQpLHc9ITApOmYodCk/KHY9ITAsdz10LnNvbWUodD0+RmUodCl8fHZlKHQpKSxwPSgpPT50Lm1hcCh0PT4kZSh0KT90LnZhbHVlOkZlKHQpP2QodCk6Rih0KT9oP2godCwyKTp0KCk6dm9pZCAwKSk6cD1GKHQpP2U/aD8oKT0+aCh0LDIpOnQ6KCk9PntpZihtKXtDdCgpO3RyeXttKCl9ZmluYWxseXtrdCgpfX1jb25zdCBlPVRlO1RlPUQ7dHJ5e3JldHVybiBoP2godCwzLFtnXSk6dChnKX1maW5hbGx5e1RlPWV9fTpvLGUmJnIpe2NvbnN0IHQ9cCxlPSEwPT09cj8xLzA6cjtwPSgpPT5QZSh0KCksZSl9Y29uc3QgeT1RLGI9KCk9PntELnN0b3AoKSx5JiZ5LmFjdGl2ZSYmYyh5LmVmZmVjdHMsRCl9O2lmKHUmJmUpe2NvbnN0IHQ9ZTtlPSguLi5lKT0+e3QoLi4uZSksYigpfX1sZXQgRT12P25ldyBBcnJheSh0Lmxlbmd0aCkuZmlsbChSZSk6UmU7Y29uc3QgQz10PT57aWYoMSZELmZsYWdzJiYoRC5kaXJ0eXx8dCkpaWYoZSl7Y29uc3QgdD1ELnJ1bigpO2lmKHJ8fHd8fCh2P3Quc29tZSgodCxlKT0+eih0LEVbZV0pKTp6KHQsRSkpKXttJiZtKCk7Y29uc3Qgcz1UZTtUZT1EO3RyeXtjb25zdCBzPVt0LEU9PT1SZT92b2lkIDA6diYmRVswXT09PVJlP1tdOkUsZ107RT10LGg/aChlLDMscyk6ZSguLi5zKX1maW5hbGx5e1RlPXN9fX1lbHNlIEQucnVuKCl9O3JldHVybiBhJiZhKEMpLEQ9bmV3IGh0KHApLEQuc2NoZWR1bGVyPWw/KCk9PmwoQywhMSk6QyxnPXQ9PmZ1bmN0aW9uKHQsZT0hMSxzPVRlKXtpZihzKXtsZXQgZT1PZS5nZXQocyk7ZXx8T2Uuc2V0KHMsZT1bXSksZS5wdXNoKHQpfX0odCwhMSxEKSxtPUQub25TdG9wPSgpPT57Y29uc3QgdD1PZS5nZXQoRCk7aWYodCl7aWYoaCloKHQsNCk7ZWxzZSBmb3IoY29uc3QgZSBvZiB0KWUoKTtPZS5kZWxldGUoRCl9fSxlP2k/QyghMCk6RT1ELnJ1bigpOmw/bChudChDLG51bGwsITApLCEwKTpELnJ1bigpLGIucGF1c2U9bnQoRC5wYXVzZSxEKSxiLnJlc3VtZT1udChELnJlc3VtZSxEKSxiLnN0b3A9YixifWZ1bmN0aW9uIFBlKHQsZT0xLzAscyl7aWYoZTw9MHx8IXkodCl8fHQuQmUpcmV0dXJuIHQ7aWYoKChzPXN8fG5ldyBNYXApLmdldCh0KXx8MCk+PWUpcmV0dXJuIHQ7aWYocy5zZXQodCxlKSxlLS0sJGUodCkpUGUodC52YWx1ZSxlLHMpO2Vsc2UgaWYoZih0KSlmb3IobGV0IGk9MDtpPHQubGVuZ3RoO2krKylQZSh0W2ldLGUscyk7ZWxzZSBpZihtKHQpfHxwKHQpKXQuZm9yRWFjaCh0PT57UGUodCxlLHMpfSk7ZWxzZSBpZihrKHQpKXtmb3IoY29uc3QgaSBpbiB0KVBlKHRbaV0sZSxzKTtmb3IoY29uc3QgaSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpKU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LGkpJiZQZSh0W2ldLGUscyl9cmV0dXJuIHR9dmFyIExlPXtVUkxfQ0xJRU5UX0FTU0VUUzoiIixVUkxfSU1BR0U6IiIsUExBVEZPUk1fTkFNRToiIixQTEFURk9STV9TSUdOQVRVUkVfS0VZOiIifSxNZT17UFJPSkVDVF9OQU1FOiJjcmlzcC1jbGllbnQiLFJFVklTSU9OOiIyM2U0MjEyIixQUk9UT0NPTDoiX19DUklTUF9fSU5URVJOQUxfX1BST1RPQ09MX18iLGdldCBVUkxfQ0xJRU5UX0FTU0VUUygpe3JldHVybiBMZS5VUkxfQ0xJRU5UX0FTU0VUU3x8Imh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljIn0sc2V0IFVSTF9DTElFTlRfQVNTRVRTKHQpe0xlLlVSTF9DTElFTlRfQVNTRVRTPXR9LFVSTF9DTElFTlRfU0VUVElOR1M6Imh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc2V0dGluZ3MiLFVSTF9SRUxBWV9DTElFTlQ6Imh0dHBzOi8vY2xpZW50LnJlbGF5LmNyaXNwLmNoYXQiLFVSTF9SRUxBWV9TVFJFQU06Imh0dHBzOi8vc3RyZWFtLnJlbGF5LmNyaXNwLmNoYXQiLFVSTF9XRUJTSVRFOiJodHRwczovL2NyaXNwLmNoYXQiLFVSTF9HTzoiaHR0cHM6Ly9nby5jcmlzcC5jaGF0IixnZXQgVVJMX0lNQUdFKCl7cmV0dXJuIExlLlVSTF9JTUFHRXx8Imh0dHBzOi8vaW1hZ2UuY3Jpc3AuY2hhdCJ9LHNldCBVUkxfSU1BR0UodCl7TGUuVVJMX0lNQUdFPXR9LFVSTF9BU1NFVFM6Imh0dHBzOi8vYXNzZXRzLmNyaXNwLmNoYXQiLFVSTF9IVUdPOiJodHRwczovL2h1Z28uYWkiLGdldCBQTEFURk9STV9OQU1FKCl7cmV0dXJuIExlLlBMQVRGT1JNX05BTUV8fCJjcmlzcC1jbGllbnRAdjIifSxzZXQgUExBVEZPUk1fTkFNRSh0KXtMZS5QTEFURk9STV9OQU1FPXR9LGdldCBQTEFURk9STV9TSUdOQVRVUkVfS0VZKCl7cmV0dXJuIExlLlBMQVRGT1JNX1NJR05BVFVSRV9LRVl8fCIxay8yeS8ydS8yei8zOC8xZS8zZC8zOC8yeS8yMy8xZS8xeS8yOS8zNC8xai8yNiJ9LHNldCBQTEFURk9STV9TSUdOQVRVUkVfS0VZKHQpe0xlLlBMQVRGT1JNX1NJR05BVFVSRV9LRVk9dH0sU09DS0VUX0FGRklOSVRZOiEwLFJUQ19JQ0U6W3t1cmxzOlsic3R1bjpzdHVuLm1lZGlhLmNyaXNwLmNoYXQ6MzQ3OCIsInN0dW46c3R1bi5tZWRpYS5jcmlzcC5jaGF0OjM0NzkiXX0se3VybHM6WyJ0dXJuOnR1cm4ubWVkaWEuY3Jpc3AuY2hhdDozNDc4P3RyYW5zcG9ydD11ZHAiLCJ0dXJuOnR1cm4ubWVkaWEuY3Jpc3AuY2hhdDozNDc4P3RyYW5zcG9ydD10Y3AiLCJ0dXJuOnR1cm4ubWVkaWEuY3Jpc3AuY2hhdDozNDc5P3RyYW5zcG9ydD11ZHAiLCJ0dXJuOnR1cm4ubWVkaWEuY3Jpc3AuY2hhdDozNDc5P3RyYW5zcG9ydD10Y3AiLCJ0dXJuczp0dXJuLm1lZGlhLmNyaXNwLmNoYXQ6NDQzP3RyYW5zcG9ydD10Y3AiXSx1c2VybmFtZToiY2xpZW50XzlGOWtoIixjcmVkZW50aWFsOiJEUENFSFRxVWI3amlKMm12bnpjVW1GVjRtS0s2YzhqbnRVWG80Z0M4dFlDYkhUb2N1eTlZSmlDeHBRNHRtRzNwIn1dLENJUkNVSVRfQlJFQUtFUl9ET01BSU5TOltdLENJUkNVSVRfQlJFQUtFUl9BR0VOVFM6WyJUcmlkZW50IiwiR29vZ2xlYm90IiwiQmluZ2JvdCIsIlNsdXJwIiwiRHVja0R1Y2tCb3QiLCJCYWlkdXNwaWRlciIsIllhbmRleEJvdCIsIkdUbWV0cml4IiwiTGlnaHRob3VzZSIsIkFjdW5ldGl4IiwiQWhyZWZzIiwiU2VtcnVzaEJvdCIsIlNpdGVBdWRpdEJvdCIsIlNwbGl0U2lnbmFsQm90IiwiSGVhZGxlc3NDaHJvbWUiXSxDSVJDVUlUX0JSRUFLRVJfRU5HSU5FUzpbe2VsZW1lbnQ6ImhlYWQgbGlua1tyZWw9J2ljb24nXVt0eXBlPSdpbWFnZS94LWljb24nXVtocmVmXj0naHR0cHM6Ly9zZWxscGFzcy5pbyddIn0se2VsZW1lbnQ6ImhlYWQgc2NyaXB0W3NyYyo9Jy9jZG4uc2VsbGl4LmlvLyddIn0se2VsZW1lbnQ6ImhlYWQgbGlua1tyZWw9J3ByZWNvbm5lY3QnXVtocmVmXj0naHR0cHM6Ly9jZG4uc2VsbGl4LmlvLyddIn0se2VsZW1lbnQ6ImhlYWQgbGlua1tyZWw9J3ByZWNvbm5lY3QnXVtocmVmXj0naHR0cHM6Ly9hcGkuc2VsbHNuLmlvJ10ifSx7ZWxlbWVudDoiaGVhZCBsaW5rW3JlbD0nYXV0aG9yJ11baHJlZl49J2h0dHBzOi8vZXJlZW1ieS5jb20vJ10ifSx7ZWxlbWVudDoiYm9keSBzY3JpcHRbc3JjJD0nL2Fpei1jb3JlLmpzJ10ifV0sRU5WSVJPTk1FTlQ6InByb2R1Y3Rpb24iLFRFU1Q6ITEsTE9DQUxFX0RFRkFVTFQ6ImVuIixMT0NBTEVfQVZBSUxBQkxFOlsiYWYiLCJhci1hZSIsImFyLXNhIiwiYXIteWUiLCJhciIsImF6IiwiYmciLCJibiIsImNhIiwiY2tiIiwiY3MiLCJkYSIsImRlIiwiZWwiLCJlbiIsImVvIiwiZXMiLCJldCIsImV1IiwiZmEiLCJmaSIsImZvIiwiZnIiLCJndSIsImhlIiwiaGkiLCJociIsImh1IiwiaHkiLCJpZCIsImlzIiwiaXQiLCJqYSIsImthIiwia28iLCJsdCIsImx2IiwibWwiLCJtbiIsIm1zIiwibmwtYmUiLCJubCIsIm5vIiwicGwiLCJwcyIsInB0LWJyIiwicHQiLCJybyIsInJ1Iiwic2siLCJzbCIsInNyLWN5cmwtY3MiLCJzciIsInN2IiwidGEiLCJ0aCIsInRyIiwidWsiLCJ1ei1jeXJsIiwidXoiLCJ2aSIsInpoLWhrIiwiemgtdHciLCJ6aCJdLExPQ0FMRV9XRUJTSVRFOlsiZW4iLCJmciIsImVzIiwicHQiLCJkZSIsIm5sIiwiZmkiLCJwbCIsInRyIl0sRklMRV9QUkVWSUVXOntJTUFHRTpbImltYWdlL2pwZWciLCJpbWFnZS9qcGciLCJpbWFnZS93ZWJwIiwiaW1hZ2UvcG5nIiwiaW1hZ2UvZ2lmIl0sVklERU86WyJ2aWRlby9tcDQiLCJ2aWRlby93ZWJtIl19LFRIRU1FOntERUZBVUxUX0NPTE9SOiJkZWZhdWx0IixBVkFJTEFCTEVfQ09MT1JTOntkZWZhdWx0OnsxMDA6IiNFMkVFRkYiLDIwMDoiIzY2Nzg4QSIsNTAwOiIjMTk3MEYwIiw2MDA6IiMwNTVFRTEiLDcwMDoiIzAwNTdENyIsODAwOiIjMDA1MUM4Iiw5MDA6IiMwMDRBQjUiLHJldmVyc2U6IiNGRkZGRkYifSxyZWQ6ezEwMDoiI0ZGRTVFNCIsMjAwOiIjNjY3ODhBIiw1MDA6IiNFNTFFMEYiLDYwMDoiI0NDMUIwRSIsNzAwOiIjQzUxNzBBIiw4MDA6IiNCODEyMDYiLDkwMDoiI0E3MTAwNCIscmV2ZXJzZToiI0ZGRkZGRiJ9LHBpbms6ezEwMDoiI0ZGRTBFQiIsMjAwOiIjNjY3ODhBIiw1MDA6IiNGMTFENjQiLDYwMDoiI0RCMTY1QSIsNzAwOiIjQ0UxNDU0Iiw4MDA6IiNDMjBGNEQiLDkwMDoiI0I0MEE0NSIscmV2ZXJzZToiI0ZGRkZGRiJ9LHB1cnBsZTp7MTAwOiIjRkFEREZGIiwyMDA6IiM2Njc4OEEiLDUwMDoiI0I1MjBDRiIsNjAwOiIjOUIxOUIyIiw3MDA6IiM5NjE0QUUiLDgwMDoiIzhBMERBMSIsOTAwOiIjODAwODk2IixyZXZlcnNlOiIjRkZGRkZGIn0sZGVlcF9wdXJwbGU6ezEwMDoiI0VERTJGRiIsMjAwOiIjNjY3ODhBIiw1MDA6IiM2ODJBRDUiLDYwMDoiIzU4MUZCQiIsNzAwOiIjNTAxOUIwIiw4MDA6IiM0NDE1OTkiLDkwMDoiIzNCMEY4OSIscmV2ZXJzZToiI0ZGRkZGRiJ9LGluZGlnbzp7MTAwOiIjRERFMkZGIiwyMDA6IiM2Njc4OEEiLDUwMDoiIzI5NDNEMSIsNjAwOiIjMTczMkM0Iiw3MDA6IiMxMTJCQjkiLDgwMDoiIzBGMjQ5QSIsOTAwOiIjMDkxQzg3IixyZXZlcnNlOiIjRkZGRkZGIn0sYmx1ZTp7MTAwOiIjRTJFRUZGIiwyMDA6IiM2Njc4OEEiLDUwMDoiIzE5NzBGMCIsNjAwOiIjMDU1RUUxIiw3MDA6IiMwMDU3RDciLDgwMDoiIzAwNTFDOCIsOTAwOiIjMDA0QUI1IixyZXZlcnNlOiIjRkZGRkZGIn0sbGlnaHRfYmx1ZTp7MTAwOiIjRENGMEY5IiwyMDA6IiM2Njc4OEEiLDUwMDoiIzAwOUZERiIsNjAwOiIjMDA4Q0NCIiw3MDA6IiMwMDg4QzUiLDgwMDoiIzAwN0VCNyIsOTAwOiIjMDA3NkFCIixyZXZlcnNlOiIjRkZGRkZGIn0sY3lhbjp7MTAwOiIjREJGN0Y5IiwyMDA6IiM2Njc4OEEiLDUwMDoiIzAxQTJCNCIsNjAwOiIjMDA5Q0FFIiw3MDA6IiMwMDhBOUEiLDgwMDoiIzAwODQ5MyIsOTAwOiIjMDA3Qjg5IixyZXZlcnNlOiIjRkZGRkZGIn0sdGVhbDp7MTAwOiIjRDZFRUU5IiwyMDA6IiM2Njc4OEEiLDUwMDoiIzAwOTQ3QyIsNjAwOiIjMDA4MTZDIiw3MDA6IiMwMDdCNjYiLDgwMDoiIzAwNzA1RCIsOTAwOiIjMDA2NjU1IixyZXZlcnNlOiIjRkZGRkZGIn0sZ3JlZW46ezEwMDoiI0Q2RjNENyIsMjAwOiIjNjY3ODhBIiw1MDA6IiMyOEE1MkQiLDYwMDoiIzFBOTQxRiIsNzAwOiIjMTQ4OTE5Iiw4MDA6IiMwRjdCMTMiLDkwMDoiIzBBNkMwRSIscmV2ZXJzZToiI0ZGRkZGRiJ9LGxpZ2h0X2dyZWVuOnsxMDA6IiNERkY2QzYiLDIwMDoiIzY2Nzg4QSIsNTAwOiIjNkVCNzAwIiw2MDA6IiM2NEE1MDAiLDcwMDoiIzVFOUMwMCIsODAwOiIjNTI4ODAwIiw5MDA6IiM0ODc4MDAiLHJldmVyc2U6IiNGRkZGRkYifSxhbWJlcjp7MTAwOiIjRkZGMEMxIiwyMDA6IiM2Njc4OEEiLDUwMDoiI0UxQUUwMSIsNjAwOiIjQ0Q5RTAwIiw3MDA6IiNDNDk3MDAiLDgwMDoiI0I4OEUwMCIsOTAwOiIjQTM3RTAwIixyZXZlcnNlOiIjRkZGRkZGIn0sb3JhbmdlOnsxMDA6IiNGRkVDQ0YiLDIwMDoiIzY2Nzg4QSIsNTAwOiIjRUM2ODAwIiw2MDA6IiNFMTYzMDAiLDcwMDoiI0NFNUIwMCIsODAwOiIjQkU1NDAwIiw5MDA6IiNCNTRGMDAiLHJldmVyc2U6IiNGRkZGRkYifSxkZWVwX29yYW5nZTp7MTAwOiIjRkZFOEUwIiwyMDA6IiM2Njc4OEEiLDUwMDoiI0U0NTMwMCIsNjAwOiIjQ0Q0QTAwIiw3MDA6IiNDMjQ3MDIiLDgwMDoiI0I4NDIwMCIsOTAwOiIjQUMzRTAwIixyZXZlcnNlOiIjRkZGRkZGIn0sYnJvd246ezEwMDoiI0YyRUFFNyIsMjAwOiIjNjY3ODhBIiw1MDA6IiM5MjRCMzIiLDYwMDoiIzhDNDYyRCIsNzAwOiIjN0YzRDI1Iiw4MDA6IiM3NTM2MUYiLDkwMDoiIzY5MkUxOSIscmV2ZXJzZToiI0ZGRkZGRiJ9LGdyZXk6ezEwMDoiI0U1RTVFNSIsMjAwOiIjNjY3ODhBIiw1MDA6IiM3QTdBN0EiLDYwMDoiIzZCNkI2QiIsNzAwOiIjNjQ2NDY0Iiw4MDA6IiM1QjVCNUIiLDkwMDoiIzUwNTA1MCIscmV2ZXJzZToiI0ZGRkZGRiJ9LGJsdWVfZ3JleTp7MTAwOiIjRENFREY2IiwyMDA6IiM2Njc4OEEiLDUwMDoiIzQ0Nzk5MSIsNjAwOiIjM0M3MTg5Iiw3MDA6IiMzMjY1N0MiLDgwMDoiIzJBNUE3MCIsOTAwOiIjMjc1NTZBIixyZXZlcnNlOiIjRkZGRkZGIn0sYmxhY2s6ezEwMDoiI0U5RTlFOSIsMjAwOiIjNjY3ODhBIiw1MDA6IiMyQTJBMkEiLDYwMDoiIzMxMzEzMSIsNzAwOiIjNDU0NTQ1Iiw4MDA6IiM1MjUyNTIiLDkwMDoiIzVCNUI1QiIscmV2ZXJzZToiI0ZGRkZGRiJ9fSxERVJJVkVfQ09MT1JTOnsxMDA6e3BlcmNlbnQ6NjUsdHJhbnNwYXJlbnQ6ITB9LDIwMDp7cGVyY2VudDoxM30sMzAwOntwZXJjZW50OjEyfSw0MDA6e3BlcmNlbnQ6MTB9LDYwMDp7cGVyY2VudDotMTV9LDcwMDp7cGVyY2VudDotMjV9LDgwMDp7cGVyY2VudDotMzV9LDkwMDp7cGVyY2VudDotNTB9fX19LFVlPSJkZXZlbG9wbWVudCI9PT1NZS5FTlZJUk9OTUVOVCxxZT12b2lkIDAhPT13aW5kb3cuY29uc29sZSxWZT1VZSYmcWUsTmU9ImFub255bW91cyIsSGU9e30sV2U9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy54ZT0vXihFcnJvcikvLHRoaXMuSWU9L14oXHMqYXRccyspLyx0aGlzLk9lPS8oPzooLis/KSg/OlxzK1wofEApKT8oPzooLis/KTooXGQrKTooXGQrKSkvfWNvbm5lY3RMb2dTaW5rKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGZ1bmN0aW9uIik7SGVbdF09ZX1kaXNjb25uZWN0TG9nU2luayh0KXtkZWxldGUgSGVbdF19d2FybiguLi50KXtjb25zdCBlPXRoaXMuVGUoIndhcm4iLC4uLnQpO3RoaXMuemUoIndhcm4iLGVbMF0sdCl9ZXJyb3IoLi4udCl7Y29uc3QgZT10aGlzLlRlKCJlcnJvciIsLi4udCk7VmUmJmNvbnNvbGUuZXJyb3IoLi4uZSksdGhpcy56ZSgiZXJyb3IiLGVbMF0sdCl9aW5mbyguLi50KXtjb25zdCBlPXRoaXMuVGUoImluZm8iLC4uLnQpO3RoaXMuemUoImluZm8iLGVbMF0sdCl9bG9nKC4uLnQpe2NvbnN0IGU9dGhpcy5UZSgibG9nIiwuLi50KTt0aGlzLnplKCJsb2ciLGVbMF0sdCl9ZGVidWcoLi4udCl7Y29uc3QgZT10aGlzLlRlKCJkZWJ1ZyIsLi4udCk7VmUmJmNvbnNvbGUuZGVidWcsdGhpcy56ZSgiZGVidWciLGVbMF0sdCl9UGUoKXt0cnl7bGV0IHQ9KG5ldyBFcnJvcikuc3RhY2s7dD10LnJlcGxhY2UodGhpcy54ZSwiIikudHJpbSgpO2xldCBlPXQuc3BsaXQoIlxuIilbM118fCIiO2U9ZS5yZXBsYWNlKHRoaXMuSWUsIiIpLnRyaW0oKTtjb25zdCBzPWUubWF0Y2godGhpcy5PZSk7aWYocyl7Y29uc3RbLHQ9TmUsZT0idW5rbm93biIsaT0iPyIsbj0iPyJdPXMscj10LnNwbGl0KCIvIilbMF18fE5lO3JldHVybntmdW5jdGlvbjpyLGNsYXNzOnIuaW5jbHVkZXMoIi4iKT9yLnNwbGl0KCIuIilbMF06bnVsbCxmaWxlOmUuc3BsaXQoIi8iKS5wb3AoKSxsaW5lOmksY29sdW1uOm59fXJldHVybntmdW5jdGlvbjoidW5rbm93biIsY2xhc3M6bnVsbCxmaWxlOiJ1bmtub3duIixsaW5lOiI/Iixjb2x1bW46Ij8ifX1jYXRjaHtyZXR1cm57ZnVuY3Rpb246InVua25vd24iLGNsYXNzOm51bGwsZmlsZToidW5rbm93biIsbGluZToiPyIsY29sdW1uOiI/In19fVRlKHQsLi4uZSl7Y29uc3Qgcz10aGlzLlBlKCk7bGV0IGk7cmV0dXJuIGk9cy5mdW5jdGlvbj09PU5lP2Ake3MuZmlsZX06JHtzLmxpbmV9YDpzLmNsYXNzP2Ake3MuY2xhc3N9OiR7cy5mdW5jdGlvbn1gOmAke3MuZnVuY3Rpb259YCxbYFske3QudG9VcHBlckNhc2UoKX1dIFske2l9XWAsLi4uZV19emUodCxlLHMpe2ZvcihsZXQgaSBpbiBIZSlIZVtpXSh0LGUscyl9fTt2YXIgR2U9W10sSmU9Y2xhc3N7Y29uc3RydWN0b3IoKXtYZShmdW5jdGlvbih0LGUsLi4ucyl7cmV0dXJuIHQuYmluZCYmL1xbbmF0aXZlIGNvZGVcXS8udGVzdCh0LmJpbmQudG9TdHJpbmcoKSk/dC5iaW5kKGUsLi4ucyk6ZnVuY3Rpb24oLi4uaSl7cmV0dXJuIHQuYXBwbHkoZSxbLi4ucywuLi5pXSl9fSh0aGlzLnJlc2V0LHRoaXMpLDApfXJlc2V0KCl7fX07ZnVuY3Rpb24gS2UodCxlKXtpZigib2JqZWN0IiE9dHlwZW9mIHR8fCF0KXJldHVybiB0O2lmKCJvYmplY3QiIT10eXBlb2YgZXx8IWUpcmV0dXJuIHQ7Zm9yKGxldCBzIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShzKSYmKCJvYmplY3QiIT10eXBlb2YgZVtzXXx8bnVsbD09PWVbc118fEFycmF5LmlzQXJyYXkoZVtzXSk/dFtzXT1lW3NdOigoIm9iamVjdCIhPXR5cGVvZiB0W3NdfHxudWxsPT09dFtzXXx8QXJyYXkuaXNBcnJheSh0W3NdKSkmJih0W3NdPXt9KSxLZSh0W3NdLGVbc10pKSk7cmV0dXJuIHR9ZnVuY3Rpb24gWWUodCxlLHMpe2xldCBpPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodCkpLG49cGUoT2JqZWN0LmFzc2lnbihlLHQpKTtyZXR1cm4gWGUoKCk9PntLZShuLGkpfSwxKSwiZnVuY3Rpb24iPT10eXBlb2Ygbi5yZXNldCYmWGUobi5yZXNldCwwKSxufWZ1bmN0aW9uIFplKHQsZSxzKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBpbmplY3Qgc2Vzc2lvbiBzdG9yZSB3aXRob3V0IGEgc2Vzc2lvbiBpZGVudGlmaWVyIik7aWYoISh0IGluIHMpKXtsZXQgaT17fTshZnVuY3Rpb24odCxlKXtZZShKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHQpKSxlKX0oZSxpKSxzW3RdPWl9cmV0dXJuIHNbdF19ZnVuY3Rpb24gWGUodCxlPTApe0dlLnB1c2goe2ZuOnQscHJpb3JpdHk6ZX0pLEdlLnNvcnQoKHQsZSk9PmUucHJpb3JpdHktdC5wcmlvcml0eSl9dmFyIFFlPVllKHt1c2Vyc19hdmFpbGFibGU6ITEsbGFzdF9hdmFpbGFibGU6MCx3YXNfYXZhaWxhYmlsaXR5X29ubGluZTohMSxhdmFpbGFiaWxpdHk6ImF3YXkifSx7cmVjZWl2ZSh0PSExLHM9ITEpe1FlLnVzZXJzX2F2YWlsYWJsZT10LCEwPT09cyYmKFFlLmxhc3RfYXZhaWxhYmxlPShuZXcgRGF0ZSkuZ2V0VGltZSgpKSxlKCkuQWN0aW9uLmV2ZW50KCJ3ZWJzaXRlOmF2YWlsYWJpbGl0eTpjaGFuZ2VkIixRZS51c2Vyc19hdmFpbGFibGUpfSxhcHBseSgpe2xldCB0PSEwPT09UWUudXNlcnNfYXZhaWxhYmxlPyJvbmxpbmUiOiJhd2F5IjtRZS5hdmFpbGFiaWxpdHk9dCwhMT09PVFlLndhc19hdmFpbGFiaWxpdHlfb25saW5lJiYib25saW5lIj09PXQmJihRZS53YXNfYXZhaWxhYmlsaXR5X29ubGluZT0hMCl9fSk7ZnVuY3Rpb24gdHModCxlLC4uLnMpe3JldHVybiB0LmJpbmQmJi9cW25hdGl2ZSBjb2RlXF0vLnRlc3QodC5iaW5kLnRvU3RyaW5nKCkpP3QuYmluZChlLC4uLnMpOmZ1bmN0aW9uKC4uLmkpe3JldHVybiB0LmFwcGx5KGUsWy4uLnMsLi4uaV0pfX12YXIgZXM9T2JqZWN0LmRlZmluZVByb3BlcnR5LHNzPU9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzLGlzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzLG5zPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMscnM9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxvcz1PYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLHVzPSh0LGUscyk9PmUgaW4gdD9lcyh0LGUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnN9KTp0W2VdPXMsbHM9KHQsZSk9Pntmb3IodmFyIHMgaW4gZXx8KGU9e30pKXJzLmNhbGwoZSxzKSYmdXModCxzLGVbc10pO2lmKG5zKWZvcih2YXIgcyBvZiBucyhlKSlvcy5jYWxsKGUscykmJnVzKHQscyxlW3NdKTtyZXR1cm4gdH0sYXM9KHQsZSk9PnNzKHQsaXMoZSkpLGhzPSh0LGUscyk9Pih1cyh0LCJzeW1ib2wiIT10eXBlb2YgZT9lKyIiOmUscykscyksY3M9ITEsZHM9W10sRHM9UHJvbWlzZS5yZXNvbHZlKCksZnM9dD0+RHMudGhlbih0KSxwcz10PT57ZHMuaW5jbHVkZXModCl8fGRzLnB1c2godCksY3N8fChjcz0hMCxmcyhfcykpfSxfcz0oKT0+e2Zvcihjb25zdCB0IG9mIGRzKXQoKTtkcy5sZW5ndGg9MCxjcz0hMX07c2V0SW50ZXJ2YWwoKCk9PntfcygpfSwxZTMpO3ZhciBtcz1BcnJheS5pc0FycmF5LGdzPXQ9PiJzdHJpbmciPT10eXBlb2YgdCxGcz10PT5udWxsIT09dCYmIm9iamVjdCI9PXR5cGVvZiB0LHdzPXQ9Pntjb25zdCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIHM9PmVbc118fChlW3NdPXQocykpfSx2cz0vLShcdykvZyx5cz13cyh0PT50LnJlcGxhY2UodnMsKHQsZSk9PmU/ZS50b1VwcGVyQ2FzZSgpOiIiKSksYnM9L1xCKFtBLVpdKS9nLEVzPXdzKHQ9PnQucmVwbGFjZShicywiLSQxIikudG9Mb3dlckNhc2UoKSk7ZnVuY3Rpb24gQ3ModCl7aWYobXModCkpe2NvbnN0IGU9e307Zm9yKGxldCBzPTA7czx0Lmxlbmd0aDtzKyspe2NvbnN0IGk9dFtzXSxuPWdzKGkpP0JzKGkpOkNzKGkpO2lmKG4pZm9yKGNvbnN0IHQgaW4gbillW3RdPW5bdF19cmV0dXJuIGV9aWYoZ3ModCl8fEZzKHQpKXJldHVybiB0fXZhciBrcz0vOyg/IVteKF0qXCkpL2csJHM9LzooW15dKykvLEFzPS9cL1wqW15dKj9cKlwvL2c7ZnVuY3Rpb24gQnModCl7Y29uc3QgZT17fTtyZXR1cm4gdC5yZXBsYWNlKEFzLCIiKS5zcGxpdChrcykuZm9yRWFjaCh0PT57aWYodCl7Y29uc3Qgcz10LnNwbGl0KCRzKTtzLmxlbmd0aD4xJiYoZVtzWzBdLnRyaW0oKV09c1sxXS50cmltKCkpfX0pLGV9ZnVuY3Rpb24geHModCl7bGV0IGU9IiI7aWYoZ3ModCkpZT10O2Vsc2UgaWYobXModCkpZm9yKGxldCBzPTA7czx0Lmxlbmd0aDtzKyspe2NvbnN0IGk9eHModFtzXSk7aSYmKGUrPWkrIiAiKX1lbHNlIGlmKEZzKHQpKWZvcihjb25zdCBzIGluIHQpdFtzXSYmKGUrPXMrIiAiKTtyZXR1cm4gZS50cmltKCl9dmFyIGpzPS9eKHNwZWxsY2hlY2t8ZHJhZ2dhYmxlfGZvcm18bGlzdHx0eXBlKSQvLElzPSh7ZWw6dCxnZXQ6ZSxlZmZlY3Q6cyxhcmc6aSxtb2RpZmllcnM6bn0pPT57bGV0IHI7ImNsYXNzIj09PWkmJih0Ll9jbGFzcz10LmNsYXNzTmFtZSkscygoKT0+e2xldCBzPWUoKTtpZihpKW51bGwhPW4mJm4uY2FtZWwmJihpPXlzKGkpKSxTcyh0LGkscyxyKTtlbHNle2Zvcihjb25zdCBlIGluIHMpU3ModCxlLHNbZV0sciYmcltlXSk7Zm9yKGNvbnN0IGUgaW4gcikoIXN8fCEoZSBpbiBzKSkmJlNzKHQsZSxudWxsKX1yPXN9KX0sU3M9KHQsZSxzLGkpPT57aWYoImNsYXNzIj09PWUpdC5zZXRBdHRyaWJ1dGUoImNsYXNzIix4cyh0Ll9jbGFzcz9bdC5fY2xhc3Msc106cyl8fCIiKTtlbHNlIGlmKCJzdHlsZSI9PT1lKXtzPUNzKHMpO2NvbnN0e3N0eWxlOmV9PXQ7aWYocylpZihncyhzKSlzIT09aSYmKGUuY3NzVGV4dD1zKTtlbHNle2Zvcihjb25zdCB0IGluIHMpT3MoZSx0LHNbdF0pO2lmKGkmJiFncyhpKSlmb3IoY29uc3QgdCBpbiBpKXNbdF0/P09zKGUsdCwiIil9ZWxzZSB0LnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKX1lbHNlIHQgaW5zdGFuY2VvZiBTVkdFbGVtZW50fHwhKGUgaW4gdCl8fGpzLnRlc3QoZSk/InRydWUtdmFsdWUiPT09ZT90Ll90cnVlVmFsdWU9czoiZmFsc2UtdmFsdWUiPT09ZT90Ll9mYWxzZVZhbHVlPXM6bnVsbCE9cz90LnNldEF0dHJpYnV0ZShlLHMpOnQucmVtb3ZlQXR0cmlidXRlKGUpOih0W2VdPXMsInZhbHVlIj09PWUmJih0Ll92YWx1ZT1zKSl9LFJzPS9ccyohaW1wb3J0YW50JC8sT3M9KHQsZSxzKT0+e21zKHMpP3MuZm9yRWFjaChzPT5Pcyh0LGUscykpOmUuc3RhcnRzV2l0aCgiLS0iKT90LnNldFByb3BlcnR5KGUscyk6UnMudGVzdChzKT90LnNldFByb3BlcnR5KEVzKGUpLHMucmVwbGFjZShScywiIiksImltcG9ydGFudCIpOnRbZV09c30sVHM9KHQsZSk9Pntjb25zdCBzPXQuZ2V0QXR0cmlidXRlKGUpO3JldHVybiBudWxsIT1zJiZ0LnJlbW92ZUF0dHJpYnV0ZShlKSxzfSx6cz0vXltBLVphLXpfJF1bXHckXSooPzpcLltBLVphLXpfJF1bXHckXSp8XFsnW14nXSo/J118XFsiW14iXSo/Il18XFtcZCtdfFxbW0EtWmEtel8kXVtcdyRdKl0pKiQvLFBzPVsiY3RybCIsInNoaWZ0IiwiYWx0IiwibWV0YSJdLExzPXtzdG9wOnQ9PnQuc3RvcFByb3BhZ2F0aW9uKCkscHJldmVudDp0PT50LnByZXZlbnREZWZhdWx0KCksc2VsZjp0PT50LnRhcmdldCE9PXQuY3VycmVudFRhcmdldCxjdHJsOnQ9PiF0LmN0cmxLZXksc2hpZnQ6dD0+IXQuc2hpZnRLZXksYWx0OnQ9PiF0LmFsdEtleSxtZXRhOnQ9PiF0Lm1ldGFLZXksbGVmdDp0PT4iYnV0dG9uImluIHQmJjAhPT10LmJ1dHRvbixtaWRkbGU6dD0+ImJ1dHRvbiJpbiB0JiYxIT09dC5idXR0b24scmlnaHQ6dD0+ImJ1dHRvbiJpbiB0JiYyIT09dC5idXR0b24sZXhhY3Q6KHQsZSk9PlBzLnNvbWUocz0+dFtgJHtzfUtleWBdJiYhZVtzXSl9LE1zPSh7ZWw6dCxnZXQ6ZSxleHA6cyxhcmc6aSxjdHg6bixtb2RpZmllcnM6cn0pPT57aWYoaSl7dmFyIG89dD0+e3pzLnRlc3Qocyk/ZShgJHtzfWApKHQpOihuLnNjb3BlLiRldmVudD10LGUoYCR7c31gKSxkZWxldGUgbi5zY29wZS4kZXZlbnQpfTtpZigidnVlOm1vdW50ZWQiPT09aSlyZXR1cm4gdm9pZCBmcyhvKTtpZigidnVlOnVubW91bnRlZCI9PT1pKXJldHVybigpPT5vKCk7aWYocil7ImNsaWNrIj09PWkmJihyLnJpZ2h0JiYoaT0iY29udGV4dG1lbnUiKSxyLm1pZGRsZSYmKGk9Im1vdXNldXAiKSk7Y29uc3QgdD1vO289ZT0+e2lmKCEoImtleSJpbiBlKXx8RXMoZS5rZXkpaW4gcil7Zm9yKGNvbnN0IHQgaW4gcil7Y29uc3Qgcz1Mc1t0XTtpZihzJiZzKGUscikpcmV0dXJufXJldHVybiB0KGUpfX19KCh0LGUscyxpKT0+e3QuYWRkRXZlbnRMaXN0ZW5lcihlLHMsaSl9KSh0LGksbyxyKX19LFVzPSh7ZWw6dCxnZXQ6ZSxlZmZlY3Q6c30pPT57cygoKT0+e3QudGV4dENvbnRlbnQ9cXMoZSgpKX0pfSxxcz10PT5udWxsPT10PyIiOkZzKHQpP0pTT04uc3RyaW5naWZ5KHQsbnVsbCwyKTpTdHJpbmcodCksVnM9e3RydWU6ITAsZmFsc2U6ITEsbnVsbDpudWxsLHVuZGVmaW5lZDp2b2lkIDB9LE5zPXt9OyIrIC0gKiAvICUgPT09ICE9PSA9PSAhPSA8ID4gPD0gPj0gJiYgfHwgISA9Ii5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24odCl7TnNbdF09ITB9KTt2YXIgSHM9e246IlxuIixmOiJcZiIscjoiXHIiLHQ6Ilx0IixpOiJcdiIsbzoiJyIsdTonIid9LFdzPWNsYXNze2NvbnN0cnVjdG9yKCl7fWgodCl7Zm9yKHRoaXMudGV4dD10LHRoaXMuaW5kZXg9MCx0aGlzLmw9W107dGhpcy50ZXh0Lmxlbmd0aD50aGlzLmluZGV4Oyl7dmFyIGU9dGhpcy50ZXh0LmNoYXJBdCh0aGlzLmluZGV4KTtpZignIic9PT1lfHwiJyI9PT1lKXRoaXMucChlKTtlbHNlIGlmKHRoaXMudihlKXx8Ii4iPT09ZSYmdGhpcy52KHRoaXMubSgpKSl0aGlzLmsoKTtlbHNlIGlmKHRoaXMuSSh0aGlzLkEoKSkpdGhpcy5qKCk7ZWxzZSBpZigiPyI9PT1lJiYiLiI9PT10aGlzLm0oKSl0aGlzLmwucHVzaCh7aW5kZXg6dGhpcy5pbmRleCx0ZXh0OiI/LiIsQzohMH0pLHRoaXMuaW5kZXgrPTI7ZWxzZSBpZih0aGlzLmlzKGUsIigpe31bXS4sOzo/IikpdGhpcy5sLnB1c2goe2luZGV4OnRoaXMuaW5kZXgsdGV4dDplfSksdGhpcy5pbmRleCsrO2Vsc2UgaWYodGhpcy5TKGUpKXRoaXMuaW5kZXgrKztlbHNle3ZhciBzPWUrdGhpcy5tKCksaT1zK3RoaXMubSgyKSxuPU5zW3NdLHI9TnNbaV07aWYoTnNbZV18fG58fHIpe3ZhciBvPXI/aTpuP3M6ZTt0aGlzLmwucHVzaCh7aW5kZXg6dGhpcy5pbmRleCx0ZXh0Om8sb3BlcmF0b3I6ITB9KSx0aGlzLmluZGV4Kz1vLmxlbmd0aH1lbHNlIHRoaXMuJCgiVW5leHBlY3RlZCBuZXh0IGNoYXJhY3RlciAiLHRoaXMuaW5kZXgsdGhpcy5pbmRleCsxKX19cmV0dXJuIHRoaXMubH1pcyh0LGUpe3JldHVybi0xIT09ZS5pbmRleE9mKHQpfW0odCl7dmFyIGU9dHx8MTtyZXR1cm4gdGhpcy50ZXh0Lmxlbmd0aD50aGlzLmluZGV4K2UmJnRoaXMudGV4dC5jaGFyQXQodGhpcy5pbmRleCtlKX12KHQpe3JldHVybiB0Pj0iMCImJiI5Ij49dCYmInN0cmluZyI9PXR5cGVvZiB0fVModCl7cmV0dXJuIiAiPT09dHx8IlxyIj09PXR8fCJcdCI9PT10fHwiXG4iPT09dHx8Ilx2Ij09PXR8fCLCoCI9PT10fUkodCl7cmV0dXJuIHRoaXMuVSh0KX1VKHQpe3JldHVybiB0Pj0iYSImJiJ6Ij49dHx8dD49IkEiJiYiWiI+PXR8fCJfIj09PXR8fCIkIj09PXR9TSh0KXtyZXR1cm4gdGhpcy5UKHQpfVQodCxlKXtyZXR1cm4gdGhpcy5VKHQsZSl8fHRoaXMudih0KX1jb2RlUG9pbnRBdCh0KXtyZXR1cm4gMT09PXQubGVuZ3RoP3QuY2hhckNvZGVBdCgwKToodC5jaGFyQ29kZUF0KDApPDwxMCkrdC5jaGFyQ29kZUF0KDEpLTU2NjEzODg4fUEoKXt2YXIgdD10aGlzLnRleHQuY2hhckF0KHRoaXMuaW5kZXgpLGU9dGhpcy5tKCk7aWYoIWUpcmV0dXJuIHQ7dmFyIHM9dC5jaGFyQ29kZUF0KDApLGk9ZS5jaGFyQ29kZUF0KDApO3JldHVybiA1NTI5Nj5zfHxzPjU2MzE5fHw1NjMyMD5pfHxpPjU3MzQzP3Q6dCtlfUwodCl7cmV0dXJuIi0iPT09dHx8IisiPT09dHx8dGhpcy52KHQpfSQodCxlLHMpe3M9c3x8dGhpcy5pbmRleDt2YXIgaT12b2lkIDAhPT1lPyJzICIrZSsiLSIrdGhpcy5pbmRleCsiIFsiK3RoaXMudGV4dC5zdWJzdHJpbmcoZSxzKSsiXSI6IiAiK3M7dGhyb3cgRXJyb3IoIkxleGVyIEVycm9yOiAiK3QrIiBhdCBjb2x1bW4iK2krIiBpbiBleHByZXNzaW9uIFsiK3RoaXMudGV4dCsiXS4iKX1rKCl7Zm9yKHZhciB0PSIiLGU9dGhpcy5pbmRleDt0aGlzLnRleHQubGVuZ3RoPnRoaXMuaW5kZXg7KXt2YXIgcz10aGlzLnRleHQuY2hhckF0KHRoaXMuaW5kZXgpLnRvTG93ZXJDYXNlKCk7aWYoIi4iPT09c3x8dGhpcy52KHMpKXQrPXM7ZWxzZXt2YXIgaT10aGlzLm0oKTtpZigiZSI9PT1zJiZ0aGlzLkwoaSkpdCs9cztlbHNlIGlmKHRoaXMuTChzKSYmaSYmdGhpcy52KGkpJiYiZSI9PT10LmNoYXJBdCh0Lmxlbmd0aC0xKSl0Kz1zO2Vsc2V7aWYoIXRoaXMuTChzKXx8aSYmdGhpcy52KGkpfHwiZSIhPT10LmNoYXJBdCh0Lmxlbmd0aC0xKSlicmVhazt0aGlzLiQoIkludmFsaWQgZXhwb25lbnQiKX19dGhpcy5pbmRleCsrfXRoaXMubC5wdXNoKHtpbmRleDplLHRleHQ6dCxOOiEwLHZhbHVlOit0fSl9aigpe3ZhciB0PXRoaXMuaW5kZXg7Zm9yKHRoaXMuaW5kZXgrPXRoaXMuQSgpLmxlbmd0aDt0aGlzLnRleHQubGVuZ3RoPnRoaXMuaW5kZXg7KXt2YXIgZT10aGlzLkEoKTtpZighdGhpcy5NKGUpKWJyZWFrO3RoaXMuaW5kZXgrPWUubGVuZ3RofXRoaXMubC5wdXNoKHtpbmRleDp0LHRleHQ6dGhpcy50ZXh0LnNsaWNlKHQsdGhpcy5pbmRleCksaWRlbnRpZmllcjohMH0pfXAodCl7dmFyIGU9dGhpcy5pbmRleDt0aGlzLmluZGV4Kys7Zm9yKHZhciBzPSIiLGk9dCxuPSExO3RoaXMudGV4dC5sZW5ndGg+dGhpcy5pbmRleDspe3ZhciByPXRoaXMudGV4dC5jaGFyQXQodGhpcy5pbmRleCk7aWYoaSs9cixuKXtpZigidSI9PT1yKXt2YXIgbz10aGlzLnRleHQuc3Vic3RyaW5nKHRoaXMuaW5kZXgrMSx0aGlzLmluZGV4KzUpO28ubWF0Y2goL1tcZGEtZl17NH0vaSl8fHRoaXMuJCgiSW52YWxpZCB1bmljb2RlIGVzY2FwZSBbXFx1IitvKyJdIiksdGhpcy5pbmRleCs9NCxzKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KG8sMTYpKX1lbHNlIHMrPUhzW3JdfHxyO249ITF9ZWxzZSBpZigiXFwiPT09ciluPSEwO2Vsc2V7aWYocj09PXQpcmV0dXJuIHRoaXMuaW5kZXgrKyx2b2lkIHRoaXMubC5wdXNoKHtpbmRleDplLHRleHQ6aSxOOiEwLHZhbHVlOnN9KTtzKz1yfXRoaXMuaW5kZXgrK310aGlzLiQoIlVudGVybWluYXRlZCBxdW90ZSIsZSl9fTtmdW5jdGlvbiBHcyh0KXtyZXR1cm4gdC50eXBlPT09S3MuT3x8dC50eXBlPT09S3MuUH12YXIgSnM9Y2xhc3N7Y29uc3RydWN0b3IodCxlKXtocyh0aGlzLCJ3dCIseyR0Ont0eXBlOkpzLlh9LFV0Ont0eXBlOkpzLll9fSksdGhpcy5xPXQsdGhpcy5vcHRpb25zPWV9ZXQodCl7dGhpcy50ZXh0PXQsdGhpcy5sPXRoaXMucS5oKHQpO2NvbnN0IGU9dGhpcy5pdCgpO3JldHVybiAwIT09dGhpcy5sLmxlbmd0aCYmdGhpcy4kKCJpcyBhbiB1bmV4cGVjdGVkIHRva2VuIix0aGlzLmxbMF0pLGV9aXQoKXtjb25zdCB0PVtdO2Zvcig7OylpZih0aGlzLmwubGVuZ3RoPjAmJiF0aGlzLm0oIn0iLCIpIiwiOyIsIl0iKSYmdC5wdXNoKHRoaXMucnQoKSksIXRoaXMubnQoIjsiKSlyZXR1cm57dHlwZTpKcy5WLGJvZHk6dH19cnQoKXtyZXR1cm57dHlwZTpKcy5CLHN0OnRoaXMuc3QoKX19c3QoKXtyZXR1cm4gdGhpcy5vdCgpfW90KCl7Y29uc3QgdD10aGlzLnV0KCk7aWYodGhpcy5udCgiPSIpKXtpZighR3ModCkpdGhyb3cgRXJyb3IoIlRyeWluZyB0byBhc3NpZ24gYSB2YWx1ZSB0byBhIG5vbiBsLXZhbHVlIik7cmV0dXJue3R5cGU6SnMuRCxsZWZ0OnQscmlnaHQ6dGhpcy5vdCgpLG9wZXJhdG9yOiI9In19cmV0dXJuIHR9dXQoKXtjb25zdCB0PXRoaXMuaHQoKTtsZXQgZSxzO3JldHVybiB0aGlzLm50KCI/IikmJihlPXRoaXMuc3QoKSx0aGlzLmN0KCI6IikpPyhzPXRoaXMuc3QoKSx7dHlwZTpKcy5SLHRlc3Q6dCxhbHRlcm5hdGU6ZSxsdDpzfSk6dH1odCgpe2xldCB0PXRoaXMuZnQoKTtmb3IoO3RoaXMubnQoInx8Iik7KXQ9e3R5cGU6SnMuRyxvcGVyYXRvcjoifHwiLGxlZnQ6dCxyaWdodDp0aGlzLmZ0KCl9O3JldHVybiB0fWZ0KCl7bGV0IHQ9dGhpcy52dCgpO2Zvcig7dGhpcy5udCgiJiYiKTspdD17dHlwZTpKcy5HLG9wZXJhdG9yOiImJiIsbGVmdDp0LHJpZ2h0OnRoaXMudnQoKX07cmV0dXJuIHR9dnQoKXtsZXQgdCxlPXRoaXMuZHQoKTtmb3IoO3Q9dGhpcy5udCgiPT0iLCIhPSIsIj09PSIsIiE9PSIpOyllPXt0eXBlOkpzLlcsb3BlcmF0b3I6dC50ZXh0LGxlZnQ6ZSxyaWdodDp0aGlzLmR0KCl9O3JldHVybiBlfWR0KCl7bGV0IHQsZT10aGlzLnl0KCk7Zm9yKDt0PXRoaXMubnQoIjwiLCI+IiwiPD0iLCI+PSIpOyllPXt0eXBlOkpzLlcsb3BlcmF0b3I6dC50ZXh0LGxlZnQ6ZSxyaWdodDp0aGlzLnl0KCl9O3JldHVybiBlfXl0KCl7bGV0IHQsZT10aGlzLnh0KCk7Zm9yKDt0PXRoaXMubnQoIisiLCItIik7KWU9e3R5cGU6SnMuVyxvcGVyYXRvcjp0LnRleHQsbGVmdDplLHJpZ2h0OnRoaXMueHQoKX07cmV0dXJuIGV9eHQoKXtsZXQgdCxlPXRoaXMuYnQoKTtmb3IoO3Q9dGhpcy5udCgiKiIsIi8iLCIlIik7KWU9e3R5cGU6SnMuVyxvcGVyYXRvcjp0LnRleHQsbGVmdDplLHJpZ2h0OnRoaXMuYnQoKX07cmV0dXJuIGV9YnQoKXtsZXQgdDtyZXR1cm4odD10aGlzLm50KCIrIiwiLSIsIiEiKSk/e3R5cGU6SnMuWixvcGVyYXRvcjp0LnRleHQscHJlZml4OiEwLGt0OnRoaXMuYnQoKX06dGhpcy5ndCgpfWd0KCl7bGV0IHQsZTtmb3IodGhpcy5udCgiKCIpPyh0PXRoaXMuc3QoKSx0aGlzLmN0KCIpIikpOnRoaXMubnQoIlsiKT90PXRoaXMuRXQoKTp0aGlzLm50KCJ7Iik/dD10aGlzLm9iamVjdCgpOnRoaXMud3QuaGFzT3duUHJvcGVydHkodGhpcy5tKCkudGV4dCk/dD1PYmplY3QuYXNzaWduKHt9LHRoaXMud3RbdGhpcy5jdCgpLnRleHRdKTpWcy5oYXNPd25Qcm9wZXJ0eSh0aGlzLm0oKS50ZXh0KT90PXt0eXBlOkpzLkYsdmFsdWU6VnNbdGhpcy5jdCgpLnRleHRdfTp0aGlzLm0oKS5pZGVudGlmaWVyP3Q9dGhpcy5pZGVudGlmaWVyKCk6dGhpcy5tKCkuTj90PXRoaXMuTigpOnRoaXMuJCgibm90IGEgcHJpbWFyeSBleHByZXNzaW9uIix0aGlzLm0oKSk7ZT10aGlzLm50KCIoIiwiWyIsIi4iLCI/LiIpOykiKCI9PT1lLnRleHQ/KHQ9e3R5cGU6SnMuXyxJdDp0LGFyZ3VtZW50czp0aGlzLkF0KCl9LHRoaXMuY3QoIikiKSk6IlsiPT09ZS50ZXh0Pyh0PXt0eXBlOkpzLlAsb2JqZWN0OnQsanQ6dGhpcy5zdCgpLGNvbXB1dGVkOiEwfSx0aGlzLmN0KCJdIikpOiIuIj09PWUudGV4dD90PXt0eXBlOkpzLlAsb2JqZWN0OnQsanQ6dGhpcy5pZGVudGlmaWVyKCksY29tcHV0ZWQ6ITF9OiI/LiI9PT1lLnRleHQmJih0aGlzLm0oIlsiKT8odGhpcy5jdCgiWyIpLHQ9e3R5cGU6SnMuUCxvYmplY3Q6dCxqdDp0aGlzLnN0KCksY29tcHV0ZWQ6ITAsb3B0aW9uYWw6ITB9LHRoaXMuY3QoIl0iKSk6dD17dHlwZTpKcy5QLG9iamVjdDp0LGp0OnRoaXMuaWRlbnRpZmllcigpLGNvbXB1dGVkOiExLG9wdGlvbmFsOiEwfSk7cmV0dXJuIHR9QXQoKXtjb25zdCB0PVtdO2lmKCIpIiE9PXRoaXMuQ3QoKS50ZXh0KWRve3QucHVzaCh0aGlzLnN0KCkpfXdoaWxlKHRoaXMubnQoIiwiKSk7cmV0dXJuIHR9aWRlbnRpZmllcigpe2NvbnN0IHQ9dGhpcy5jdCgpO3JldHVybiB0LmlkZW50aWZpZXJ8fHRoaXMuJCgiaXMgbm90IGEgdmFsaWQgaWRlbnRpZmllciIsdCkse3R5cGU6SnMuTyxuYW1lOnQudGV4dH19Tigpe3JldHVybnt0eXBlOkpzLkYsdmFsdWU6dGhpcy5jdCgpLnZhbHVlfX1FdCgpe2NvbnN0IHQ9W107aWYoIl0iIT09dGhpcy5DdCgpLnRleHQpZG97aWYodGhpcy5tKCJdIikpYnJlYWs7dC5wdXNoKHRoaXMuc3QoKSl9d2hpbGUodGhpcy5udCgiLCIpKTtyZXR1cm4gdGhpcy5jdCgiXSIpLHt0eXBlOkpzLkgsZWxlbWVudHM6dH19b2JqZWN0KCl7Y29uc3QgdD1bXTtsZXQgZTtpZigifSIhPT10aGlzLkN0KCkudGV4dClkb3tpZih0aGlzLm0oIn0iKSlicmVhaztlPXt0eXBlOkpzLkosa2luZDoiaW5pdCJ9LHRoaXMubSgpLk4/KGUua2V5PXRoaXMuTigpLGUuY29tcHV0ZWQ9ITEsdGhpcy5jdCgiOiIpLGUudmFsdWU9dGhpcy5zdCgpKTp0aGlzLm0oKS5pZGVudGlmaWVyPyhlLmtleT10aGlzLmlkZW50aWZpZXIoKSxlLmNvbXB1dGVkPSExLHRoaXMubSgiOiIpPyh0aGlzLmN0KCI6IiksZS52YWx1ZT10aGlzLnN0KCkpOmUudmFsdWU9ZS5rZXkpOnRoaXMubSgiWyIpPyh0aGlzLmN0KCJbIiksZS5rZXk9dGhpcy5zdCgpLHRoaXMuY3QoIl0iKSxlLmNvbXB1dGVkPSEwLHRoaXMuY3QoIjoiKSxlLnZhbHVlPXRoaXMuc3QoKSk6dGhpcy4kKCJpbnZhbGlkIGtleSIsdGhpcy5tKCkpLHQucHVzaChlKX13aGlsZSh0aGlzLm50KCIsIikpO3JldHVybiB0aGlzLmN0KCJ9Iikse3R5cGU6SnMuSyxwcm9wZXJ0aWVzOnR9fSQodCxlKXt0aHJvdyBFcnJvcihgU3ludGF4IEVycm9yOiBUb2tlbiAnJHtlLnRleHR9JyAke3R9IGF0IGNvbHVtbiAke2UuaW5kZXgrMX0gb2YgdGhlIGV4cHJlc3Npb24gWyR7dGhpcy50ZXh0fV0gc3RhcnRpbmcgYXQgWyR7dGhpcy50ZXh0LnN1YnN0cmluZyhlLmluZGV4KX1dLmApfWN0KHQpe2lmKDA9PT10aGlzLmwubGVuZ3RoKXRocm93IEVycm9yKCJVbmV4cGVjdGVkIGVuZCBvZiBleHByZXNzaW9uOiAiK3RoaXMudGV4dCk7Y29uc3QgZT10aGlzLm50KHQpO3JldHVybiBlfHx0aGlzLiQoImlzIHVuZXhwZWN0ZWQsIGV4cGVjdGluZyBbIit0KyJdIix0aGlzLm0oKSksZX1DdCgpe2lmKDA9PT10aGlzLmwubGVuZ3RoKXRocm93IEVycm9yKCJVbmV4cGVjdGVkIGVuZCBvZiBleHByZXNzaW9uOiAiK3RoaXMudGV4dCk7cmV0dXJuIHRoaXMubFswXX1tKHQsZSxzLGkpe3JldHVybiB0aGlzLlN0KDAsdCxlLHMsaSl9U3QodCxlLHMsaSxuKXtpZih0aGlzLmwubGVuZ3RoPnQpe2NvbnN0IHI9dGhpcy5sW3RdLG89ci50ZXh0O2lmKG89PT1lfHxvPT09c3x8bz09PWl8fG89PT1ufHwhZSYmIXMmJiFpJiYhbilyZXR1cm4gcn1yZXR1cm4hMX1udCh0LGUscyxpKXtjb25zdCBuPXRoaXMubSh0LGUscyxpKTtyZXR1cm4hIW4mJih0aGlzLmwuc2hpZnQoKSxuKX19LEtzPUpzO2Z1bmN0aW9uIFlzKHQsZSl7bGV0IHMsaTtjb25zdCBuPXQuTXQ9ZnVuY3Rpb24odCxlKXtzd2l0Y2godC50eXBlKXtjYXNlIk1lbWJlckV4cHJlc3Npb24iOmlmKHQuY29tcHV0ZWQpcmV0dXJuITE7YnJlYWs7Y2FzZSJVbmFyeUV4cHJlc3Npb24iOnJldHVybiAxO2Nhc2UiQmluYXJ5RXhwcmVzc2lvbiI6cmV0dXJuIisiIT09dC5vcGVyYXRvciYmMTtjYXNlIkNhbGxFeHByZXNzaW9uIjpyZXR1cm4hMX1yZXR1cm4gdm9pZCAwPT09ZT8yOmV9KHQsZSk7c3dpdGNoKHQudHlwZSl7Y2FzZSBLcy5WOnM9ITAsdC5ib2R5LmZvckVhY2goZnVuY3Rpb24odCl7WXModC5zdCxuKSxzPXMmJnQuc3QuTn0pLHQuTj1zO2JyZWFrO2Nhc2UgS3MuRjp0Lk49ITAsdC5UdD1bXTticmVhaztjYXNlIEtzLlo6WXModC5rdCxuKSx0Lk49dC5rdC5OLHQuVHQ9dC5rdC5UdDticmVhaztjYXNlIEtzLlc6WXModC5sZWZ0LG4pLFlzKHQucmlnaHQsbiksdC5OPXQubGVmdC5OJiZ0LnJpZ2h0Lk4sdC5UdD10LmxlZnQuVHQuY29uY2F0KHQucmlnaHQuVHQpO2JyZWFrO2Nhc2UgS3MuRzpZcyh0LmxlZnQsbiksWXModC5yaWdodCxuKSx0Lk49dC5sZWZ0Lk4mJnQucmlnaHQuTix0LlR0PXQuTj9bXTpbdF07YnJlYWs7Y2FzZSBLcy5SOllzKHQudGVzdCxuKSxZcyh0LmFsdGVybmF0ZSxuKSxZcyh0Lmx0LG4pLHQuTj10LnRlc3QuTiYmdC5hbHRlcm5hdGUuTiYmdC5sdC5OLHQuVHQ9dC5OP1tdOlt0XTticmVhaztjYXNlIEtzLk86dC5OPSExLHQuVHQ9W3RdO2JyZWFrO2Nhc2UgS3MuUDpZcyh0Lm9iamVjdCxuKSx0LmNvbXB1dGVkJiZZcyh0Lmp0LG4pLHQuTj10Lm9iamVjdC5OJiYoIXQuY29tcHV0ZWR8fHQuanQuTiksdC5UdD10Lk4/W106W3RdO2JyZWFrO2Nhc2UgS3MuXzpzPSExLGk9W10sdC5hcmd1bWVudHMuZm9yRWFjaChmdW5jdGlvbih0KXtZcyh0LG4pLHM9cyYmdC5OLGkucHVzaC5hcHBseShpLHQuVHQpfSksdC5OPXMsdC5UdD1bdF07YnJlYWs7Y2FzZSBLcy5EOllzKHQubGVmdCxuKSxZcyh0LnJpZ2h0LG4pLHQuTj10LmxlZnQuTiYmdC5yaWdodC5OLHQuVHQ9W3RdO2JyZWFrO2Nhc2UgS3MuSDpzPSEwLGk9W10sdC5lbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKHQpe1lzKHQsbikscz1zJiZ0Lk4saS5wdXNoLmFwcGx5KGksdC5UdCl9KSx0Lk49cyx0LlR0PWk7YnJlYWs7Y2FzZSBLcy5LOnM9ITAsaT1bXSx0LnByb3BlcnRpZXMuZm9yRWFjaChmdW5jdGlvbih0KXtZcyh0LnZhbHVlLG4pLHM9cyYmdC52YWx1ZS5OLGkucHVzaC5hcHBseShpLHQudmFsdWUuVHQpLHQuY29tcHV0ZWQmJihZcyh0LmtleSwhMSkscz1zJiZ0LmtleS5OLGkucHVzaC5hcHBseShpLHQua2V5LlR0KSl9KSx0Lk49cyx0LlR0PWk7YnJlYWs7Y2FzZSBLcy5YOmNhc2UgS3MuWTp0Lk49ITEsdC5UdD1bXX19aHMoS3MsIlYiLDEpLGhzKEtzLCJCIiwyKSxocyhLcywiRCIsMyksaHMoS3MsIlIiLDQpLGhzKEtzLCJHIiw1KSxocyhLcywiVyIsNiksaHMoS3MsIloiLDcpLGhzKEtzLCJfIiw4KSxocyhLcywiUCIsOSksaHMoS3MsIk8iLDEwKSxocyhLcywiRiIsMTEpLGhzKEtzLCJIIiwxMiksaHMoS3MsIkoiLDEzKSxocyhLcywiSyIsMTQpLGhzKEtzLCJYIiwxNSksaHMoS3MsIlkiLDE2KSxocyhLcywidHQiLDE3KTt2YXIgWnM9Y2xhc3N7Y29tcGlsZSh0KXtjb25zdCBlPXRoaXM7bGV0IHMsaTtZcyh0KSwocz1mdW5jdGlvbih0KXtpZigxPT09dC5ib2R5Lmxlbmd0aCYmR3ModC5ib2R5WzBdLnN0KSlyZXR1cm57dHlwZTpLcy5ELGxlZnQ6dC5ib2R5WzBdLnN0LHJpZ2h0Ont0eXBlOktzLnR0fSxvcGVyYXRvcjoiPSJ9fSh0KSkmJihpPXRoaXMuTHQocykpO2NvbnN0IG49ZnVuY3Rpb24odCl7aWYoMSE9PXQubGVuZ3RoKXJldHVybjtjb25zdCBlPXRbMF0uc3Qscz1lLlR0O3JldHVybiAxIT09cy5sZW5ndGh8fHNbMF0hPT1lP3M6dm9pZCAwfSh0LmJvZHkpO2xldCByO24mJihyPVtdLG4uZm9yRWFjaChmdW5jdGlvbih0LHMpe2NvbnN0IGk9ZS5MdCh0KTtpLk10PXQuTXQsdC5pbnB1dD1pLHIucHVzaChpKSx0Lk50PXN9KSk7Y29uc3Qgbz1bXTt0LmJvZHkuZm9yRWFjaChmdW5jdGlvbih0KXtvLnB1c2goZS5MdCh0LnN0KSl9KTtjb25zdCB1PTA9PT10LmJvZHkubGVuZ3RoP25vb3A6MT09PXQuYm9keS5sZW5ndGg/b1swXTpmdW5jdGlvbih0LGUpe2xldCBzO3JldHVybiBvLmZvckVhY2goZnVuY3Rpb24oaSl7cz1pKHQsZSl9KSxzfTtyZXR1cm4gaSYmKHUuYXNzaWduPWZ1bmN0aW9uKHQsZSxzKXtyZXR1cm4gaSh0LHMsZSl9KSxyJiYodS5pbnB1dHM9ciksdX1MdCh0LGUscyl7bGV0IGksbixyLG89dGhpcztpZih0LmlucHV0KXJldHVybiB0aGlzLmlucHV0cyh0LmlucHV0LHQuTnQpO3N3aXRjaCh0LnR5cGUpe2Nhc2UgS3MuRjpyZXR1cm4gdGhpcy52YWx1ZSh0LnZhbHVlLGUpO2Nhc2UgS3MuWjpyZXR1cm4gbj10aGlzLkx0KHQua3QpLHRoaXNbInVuYXJ5Iit0Lm9wZXJhdG9yXShuLGUpO2Nhc2UgS3MuVzpjYXNlIEtzLkc6cmV0dXJuIGk9dGhpcy5MdCh0LmxlZnQpLG49dGhpcy5MdCh0LnJpZ2h0KSx0aGlzWyJiaW5hcnkiK3Qub3BlcmF0b3JdKGksbixlKTtjYXNlIEtzLlI6cmV0dXJuIHRoaXNbInRlcm5hcnk/OiJdKHRoaXMuTHQodC50ZXN0KSx0aGlzLkx0KHQuYWx0ZXJuYXRlKSx0aGlzLkx0KHQubHQpLGUpO2Nhc2UgS3MuTzpyZXR1cm4gby5pZGVudGlmaWVyKHQubmFtZSxlLHMpO2Nhc2UgS3MuUDpyZXR1cm4gaT10aGlzLkx0KHQub2JqZWN0LCExLCEhcyksdC5jb21wdXRlZHx8KG49dC5qdC5uYW1lKSx0LmNvbXB1dGVkJiYobj10aGlzLkx0KHQuanQpKSx0LmNvbXB1dGVkP3RoaXMuT3QoaSxuLGUscyx0Lm9wdGlvbmFsKTp0aGlzLlB0KGksbixlLHMsdC5vcHRpb25hbCk7Y2FzZSBLcy5fOnJldHVybiByPVtdLHQuYXJndW1lbnRzLmZvckVhY2goZnVuY3Rpb24odCl7ci5wdXNoKG8uTHQodCkpfSksbj10aGlzLkx0KHQuSXQsITApLGZ1bmN0aW9uKHQscyxpLG8pe2NvbnN0IHU9bih0LHMsaSxvKTtsZXQgbDtpZihudWxsIT11LnZhbHVlKXtjb25zdCBlPVtdO2ZvcihsZXQgbj0wO3IubGVuZ3RoPm47KytuKWUucHVzaChyW25dKHQscyxpLG8pKTtsPXUudmFsdWUuYXBwbHkodS5jb250ZXh0LGUpfXJldHVybiBlP3t2YWx1ZTpsfTpsfTtjYXNlIEtzLkQ6cmV0dXJuIGk9dGhpcy5MdCh0LmxlZnQsITAsMSksbj10aGlzLkx0KHQucmlnaHQpLGZ1bmN0aW9uKHQscyxyLG8pe2NvbnN0IHU9aSh0LHMscixvKSxsPW4odCxzLHIsbyk7cmV0dXJuIHUuY29udGV4dFt1Lm5hbWVdPWwsZT97dmFsdWU6bH06bH07Y2FzZSBLcy5IOnJldHVybiByPVtdLHQuZWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbih0KXtyLnB1c2goby5MdCh0KSl9KSxmdW5jdGlvbih0LHMsaSxuKXtjb25zdCBvPVtdO2ZvcihsZXQgZT0wO3IubGVuZ3RoPmU7KytlKW8ucHVzaChyW2VdKHQscyxpLG4pKTtyZXR1cm4gZT97dmFsdWU6b306b307Y2FzZSBLcy5LOnJldHVybiByPVtdLHQucHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3IucHVzaCh0LmNvbXB1dGVkP3trZXk6by5MdCh0LmtleSksY29tcHV0ZWQ6ITAsdmFsdWU6by5MdCh0LnZhbHVlKX06e2tleTp0LmtleS50eXBlPT09S3MuTz90LmtleS5uYW1lOiIiK3Qua2V5LnZhbHVlLGNvbXB1dGVkOiExLHZhbHVlOm8uTHQodC52YWx1ZSl9KX0pLGZ1bmN0aW9uKHQscyxpLG4pe2NvbnN0IG89e307Zm9yKGxldCBlPTA7ci5sZW5ndGg+ZTsrK2UpcltlXS5jb21wdXRlZD9vW3JbZV0ua2V5KHQscyxpLG4pXT1yW2VdLnZhbHVlKHQscyxpLG4pOm9bcltlXS5rZXldPXJbZV0udmFsdWUodCxzLGksbik7cmV0dXJuIGU/e3ZhbHVlOm99Om99O2Nhc2UgS3MuWDpyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGU/e3ZhbHVlOnR9OnR9O2Nhc2UgS3MuWTpyZXR1cm4gZnVuY3Rpb24odCxzKXtyZXR1cm4gZT97dmFsdWU6c306c307Y2FzZSBLcy50dDpyZXR1cm4gZnVuY3Rpb24odCxzLGkpe3JldHVybiBlP3t2YWx1ZTppfTppfX19InVuYXJ5KyIodCxlKXtyZXR1cm4gZnVuY3Rpb24ocyxpLG4scil7bGV0IG89dChzLGksbixyKTtyZXR1cm4gbz12b2lkIDAhPT1vPytvOjAsZT97dmFsdWU6b306b319InVuYXJ5LSIodCxlKXtyZXR1cm4gZnVuY3Rpb24ocyxpLG4scil7bGV0IG89dChzLGksbixyKTtyZXR1cm4gbz12b2lkIDAhPT1vPy1vOi0wLGU/e3ZhbHVlOm99Om99fSJ1bmFyeSEiKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHMsaSxuLHIpe2NvbnN0IG89IXQocyxpLG4scik7cmV0dXJuIGU/e3ZhbHVlOm99Om99fSJiaW5hcnkrIih0LGUscyl7cmV0dXJuIGZ1bmN0aW9uKGksbixyLG8pe2NvbnN0IHU9dChpLG4scixvKSxsPShoPWUoaSxuLHIsbyksdm9pZCAwPT09KGE9dSk/aDp2b2lkIDA9PT1oP2E6YStoKTt2YXIgYSxoO3JldHVybiBzP3t2YWx1ZTpsfTpsfX0iYmluYXJ5LSIodCxlLHMpe3JldHVybiBmdW5jdGlvbihpLG4scixvKXtjb25zdCB1PXQoaSxuLHIsbyksbD1lKGksbixyLG8pLGE9KHZvaWQgMCE9PXU/dTowKS0odm9pZCAwIT09bD9sOjApO3JldHVybiBzP3t2YWx1ZTphfTphfX0iYmluYXJ5KiIodCxlLHMpe3JldHVybiBmdW5jdGlvbihpLG4scixvKXtjb25zdCB1PXQoaSxuLHIsbykqZShpLG4scixvKTtyZXR1cm4gcz97dmFsdWU6dX06dX19ImJpbmFyeS8iKHQsZSxzKXtyZXR1cm4gZnVuY3Rpb24oaSxuLHIsbyl7Y29uc3QgdT10KGksbixyLG8pL2UoaSxuLHIsbyk7cmV0dXJuIHM/e3ZhbHVlOnV9OnV9fSJiaW5hcnklIih0LGUscyl7cmV0dXJuIGZ1bmN0aW9uKGksbixyLG8pe2NvbnN0IHU9dChpLG4scixvKSVlKGksbixyLG8pO3JldHVybiBzP3t2YWx1ZTp1fTp1fX0iYmluYXJ5PT09Iih0LGUscyl7cmV0dXJuIGZ1bmN0aW9uKGksbixyLG8pe2NvbnN0IHU9dChpLG4scixvKT09PWUoaSxuLHIsbyk7cmV0dXJuIHM/e3ZhbHVlOnV9OnV9fSJiaW5hcnkhPT0iKHQsZSxzKXtyZXR1cm4gZnVuY3Rpb24oaSxuLHIsbyl7Y29uc3QgdT10KGksbixyLG8pIT09ZShpLG4scixvKTtyZXR1cm4gcz97dmFsdWU6dX06dX19ImJpbmFyeT09Iih0LGUscyl7cmV0dXJuIGZ1bmN0aW9uKGksbixyLG8pe2NvbnN0IHU9dChpLG4scixvKT09ZShpLG4scixvKTtyZXR1cm4gcz97dmFsdWU6dX06dX19ImJpbmFyeSE9Iih0LGUscyl7cmV0dXJuIGZ1bmN0aW9uKGksbixyLG8pe2NvbnN0IHU9dChpLG4scixvKSE9ZShpLG4scixvKTtyZXR1cm4gcz97dmFsdWU6dX06dX19ImJpbmFyeTwiKHQsZSxzKXtyZXR1cm4gZnVuY3Rpb24oaSxuLHIsbyl7Y29uc3QgdT10KGksbixyLG8pPGUoaSxuLHIsbyk7cmV0dXJuIHM/e3ZhbHVlOnV9OnV9fSJiaW5hcnk+Iih0LGUscyl7cmV0dXJuIGZ1bmN0aW9uKGksbixyLG8pe2NvbnN0IHU9dChpLG4scixvKT5lKGksbixyLG8pO3JldHVybiBzP3t2YWx1ZTp1fTp1fX0iYmluYXJ5PD0iKHQsZSxzKXtyZXR1cm4gZnVuY3Rpb24oaSxuLHIsbyl7Y29uc3QgdT10KGksbixyLG8pPD1lKGksbixyLG8pO3JldHVybiBzP3t2YWx1ZTp1fTp1fX0iYmluYXJ5Pj0iKHQsZSxzKXtyZXR1cm4gZnVuY3Rpb24oaSxuLHIsbyl7Y29uc3QgdT10KGksbixyLG8pPj1lKGksbixyLG8pO3JldHVybiBzP3t2YWx1ZTp1fTp1fX0iYmluYXJ5JiYiKHQsZSxzKXtyZXR1cm4gZnVuY3Rpb24oaSxuLHIsbyl7Y29uc3QgdT10KGksbixyLG8pJiZlKGksbixyLG8pO3JldHVybiBzP3t2YWx1ZTp1fTp1fX0iYmluYXJ5fHwiKHQsZSxzKXtyZXR1cm4gZnVuY3Rpb24oaSxuLHIsbyl7Y29uc3QgdT10KGksbixyLG8pfHxlKGksbixyLG8pO3JldHVybiBzP3t2YWx1ZTp1fTp1fX0idGVybmFyeT86Iih0LGUscyxpKXtyZXR1cm4gZnVuY3Rpb24obixyLG8sdSl7Y29uc3QgbD10KG4scixvLHUpP2UobixyLG8sdSk6cyhuLHIsbyx1KTtyZXR1cm4gaT97dmFsdWU6bH06bH19dmFsdWUodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZT97Y29udGV4dDp2b2lkIDAsbmFtZTp2b2lkIDAsdmFsdWU6dH06dH19aWRlbnRpZmllcih0LGUscyl7cmV0dXJuIGZ1bmN0aW9uKGksbixyLG8pe2NvbnN0IHU9biYmdCBpbiBuP246aTtzJiYxIT09cyYmdSYmbnVsbD09dVt0XSYmKHVbdF09e30pO2NvbnN0IGw9dT91W3RdOnZvaWQgMDtyZXR1cm4gZT97Y29udGV4dDp1LG5hbWU6dCx2YWx1ZTpsfTpsfX1PdCh0LGUscyxpLG4pe3JldHVybiBmdW5jdGlvbihyLG8sdSxsKXtjb25zdCBhPXQocixvLHUsbCk7bGV0IGgsYztyZXR1cm4gbiYmbnVsbD09YT9jPXZvaWQgMDpudWxsIT1hJiYoaD1lKHIsbyx1LGwpLGgrPSIiLGkmJjEhPT1pJiZhJiYhYVtoXSYmKGFbaF09e30pLGM9YVtoXSkscz97Y29udGV4dDphLG5hbWU6aCx2YWx1ZTpjfTpjfX1QdCh0LGUscyxpLG4pe3JldHVybiBmdW5jdGlvbihyLG8sdSxsKXtjb25zdCBhPXQocixvLHUsbCk7bGV0IGg7cmV0dXJuIG4mJm51bGw9PWE/aD12b2lkIDA6KGkmJjEhPT1pJiZhJiZudWxsPT1hW2VdJiYoYVtlXT17fSksaD1udWxsIT1hP2FbZV06dm9pZCAwKSxzP3tjb250ZXh0OmEsbmFtZTplLHZhbHVlOmh9Omh9fWlucHV0cyh0LGUpe3JldHVybiBmdW5jdGlvbihzLGksbixyKXtyZXR1cm4gcj9yW2VdOnQocyxpLG4pfX19LFhzPWNsYXNze2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5ldD1uZXcgS3ModCxlKSx0aGlzLnF0PW5ldyBac31wYXJzZSh0KXtjb25zdCBlPXRoaXMuVnQodCkscz10aGlzLnF0LmNvbXBpbGUoZS5ldCk7cmV0dXJuIHMuQnQ9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10LmJvZHkubGVuZ3RofHwxPT09dC5ib2R5Lmxlbmd0aCYmKHQuYm9keVswXS5zdC50eXBlPT09S3MuRnx8dC5ib2R5WzBdLnN0LnR5cGU9PT1Lcy5IfHx0LmJvZHlbMF0uc3QudHlwZT09PUtzLkspfShlLmV0KSxzLk49ZnVuY3Rpb24odCl7cmV0dXJuIHQuTn0oZS5ldCkscy5EdD1lLkR0LHN9VnQodCl7bGV0IGU9ITE7cmV0dXJuIjoiPT09KHQ9dC50cmltKCkpLmNoYXJBdCgwKSYmIjoiPT09dC5jaGFyQXQoMSkmJihlPSEwLHQ9dC5zdWJzdHJpbmcoMikpLHtldDp0aGlzLmV0LmV0KHQpLER0OmV9fX07dmFyIFFzPW5ldyBmdW5jdGlvbih0PXt9KXtjb25zdCBlPW5ldyBYcyhuZXcgV3MsdCk7ZnVuY3Rpb24gcyh0KXtyZXR1cm4gZS5wYXJzZSh0KX1yZXR1cm4gcy5wYXJzZT1mdW5jdGlvbih0KXtyZXR1cm4gZS5wYXJzZSh0KX0sc30sdGk9KHQsZSxzKT0+ZWkodCxlKSxlaT0odCxlLHMpPT57dHJ5e3JldHVybiBRcyhlKSh0KX1jYXRjaChVaSl7Y29uc29sZS5lcnJvcihVaSl9fSxzaT17YmluZDpJcyxvbjpNcyxzaG93Oih7ZWw6dCxnZXQ6ZSxlZmZlY3Q6c30pPT57Y29uc3QgaT10LnN0eWxlLmRpc3BsYXk7cygoKT0+e3Quc3R5bGUuZGlzcGxheT1lKCk/aToibm9uZSJ9KX0sdGV4dDpVcyxodG1sOih7ZWw6dCxnZXQ6ZSxlZmZlY3Q6c30pPT57cygoKT0+e3QuaW5uZXJIVE1MPWUoKX0pfSxlZmZlY3Q6KHtlbDp0LGN0eDplLGV4cDpzLGVmZmVjdDppfSk9PntmcygoKT0+aSgoKT0+ZWkoZS5zY29wZSxzKSkpfX0saWk9LyhbXHNcU10qPylccysoPzppbnxvZilccysoW1xzXFNdKikvLG5pPS8sKFteLFx9XF1dKikoPzosKFteLFx9XF1dKikpPyQvLHJpPS9eXCh8XCkkL2csb2k9L15be1tdXHMqKCg/Oltcd18kXStccyosP1xzKikrKVtcXX1dJC8sdWk9KHQsZSxzKT0+e2NvbnN0IGk9ZS5tYXRjaChpaSk7aWYoIWkpcmV0dXJuO2NvbnN0IG49dC5uZXh0U2libGluZyxyPXQucGFyZW50RWxlbWVudCxvPW5ldyBUZXh0KCIiKTtyLmluc2VydEJlZm9yZShvLHQpLHIucmVtb3ZlQ2hpbGQodCk7Y29uc3QgdT1pWzJdLnRyaW0oKTtsZXQgbCxhLGgsYyxkPWlbMV0udHJpbSgpLnJlcGxhY2UocmksIiIpLnRyaW0oKSxEPSExLGY9ImtleSIscD10LmdldEF0dHJpYnV0ZShmKXx8dC5nZXRBdHRyaWJ1dGUoZj0iOmtleSIpfHx0LmdldEF0dHJpYnV0ZShmPSJ2LWJpbmQ6a2V5Iik7cCYmKHQucmVtb3ZlQXR0cmlidXRlKGYpLCJrZXkiPT09ZiYmKHA9SlNPTi5zdHJpbmdpZnkocCkpKSwoYz1kLm1hdGNoKG5pKSkmJihkPWQucmVwbGFjZShuaSwiIikudHJpbSgpLGE9Y1sxXS50cmltKCksY1syXSYmKGg9Y1syXS50cmltKCkpKSwoYz1kLm1hdGNoKG9pKSkmJihsPWNbMV0uc3BsaXQoIiwiKS5tYXAodD0+dC50cmltKCkpLEQ9IlsiPT09ZFswXSk7bGV0IG0sZyxGLHc9ITE7Y29uc3Qgdj0odCxlLGksbik9Pntjb25zdCByPXt9O2w/bC5mb3JFYWNoKCh0LCQpPT5yW3RdPWVbRD8kOnRdKTpyW2RdPWUsbj8oYSYmKHJbYV09biksaCYmKHJbaF09aSkpOmEmJihyW2FdPWkpO2NvbnN0IG89Z2kocyxyKSx1PXA/dGkoby5zY29wZSxwKTppO3JldHVybiB0LnNldCh1LGkpLG8ua2V5PXUsb30seT0oZSxzKT0+e2NvbnN0IGk9bmV3IHdpKHQsZSk7cmV0dXJuIGkua2V5PWUua2V5LGkuaW5zZXJ0KHIscyksaX07cmV0dXJuIHMuZWZmZWN0KCgpPT57Y29uc3QgdD10aShzLnNjb3BlLHUpLGU9RjtpZihbZyxGXT0odD0+e2NvbnN0IGU9bmV3IE1hcCxzPVtdO2lmKG1zKHQpKWZvcihsZXQgaT0wO2k8dC5sZW5ndGg7aSsrKXMucHVzaCh2KGUsdFtpXSxpKSk7ZWxzZSBpZigibnVtYmVyIj09dHlwZW9mIHQpZm9yKGxldCBpPTA7aTx0O2krKylzLnB1c2godihlLGkrMSxpKSk7ZWxzZSBpZihGcyh0KSl7bGV0IGk9MDtmb3IoY29uc3QgbiBpbiB0KXMucHVzaCh2KGUsdFtuXSxpKyssbikpfXJldHVybltzLGVdfSkodCksdyl7Zm9yKGxldCBlPTA7ZTxtLmxlbmd0aDtlKyspRi5oYXMobVtlXS5rZXkpfHxtW2VdLnJlbW92ZSgpO2NvbnN0IHQ9W107bGV0IHMsaSxuPWcubGVuZ3RoO2Zvcig7bi0tOyl7Y29uc3QgdT1nW25dLGw9ZS5nZXQodS5rZXkpO2xldCAkO251bGw9PWw/JD15KHUscz9zLmVsOm8pOigkPW1bbF0sT2JqZWN0LmFzc2lnbigkLmN0eC5zY29wZSx1LnNjb3BlKSxsIT09biYmKG1bbCsxXSE9PXN8fGk9PT1zKSYmKGk9JCwkLmluc2VydChyLHM/cy5lbDpvKSkpLHQudW5zaGlmdChzPSQpfW09dH1lbHNlIG09Zy5tYXAodD0+eSh0LG8pKSx3PSEwfSksbn0sbGk9KHtlbDp0LGN0eDp7c2NvcGU6eyRyZWZzOmV9fSxnZXQ6cyxlZmZlY3Q6aX0pPT57bGV0IG47cmV0dXJuIGkoKCk9Pntjb25zdCBpPXMoKTtlW2ldPXQsbiYmaSE9PW4mJmRlbGV0ZSBlW25dLG49aX0pLCgpPT57biYmZGVsZXRlIGVbbl19fSxhaT0vXig/OnYtfDp8QCkvLGhpPS9cLihbXHctXSspL2csY2k9ITEsZGk9KHQsZSk9Pntjb25zdCBzPXQubm9kZVR5cGU7aWYoMT09PXMpe2NvbnN0IHM9dDtpZihzLmhhc0F0dHJpYnV0ZSgidi1wcmUiKSlyZXR1cm47bGV0IGk7aWYoVHMocywidi1jbG9hayIpLGk9VHMocywidi1pZiIpKXJldHVybigodCxlLHMpPT57Y29uc3QgaT10LnBhcmVudEVsZW1lbnQsbj1uZXcgQ29tbWVudCgidi1pZiIpO2kuaW5zZXJ0QmVmb3JlKG4sdCk7Y29uc3Qgcj1be2V4cDplLGVsOnR9XTtsZXQgbyx1O2Zvcig7KG89dC5uZXh0RWxlbWVudFNpYmxpbmcpJiYodT1udWxsLCIiPT09VHMobywidi1lbHNlIil8fCh1PVRzKG8sInYtZWxzZS1pZiIpKSk7KWkucmVtb3ZlQ2hpbGQobyksci5wdXNoKHtleHA6dSxlbDpvfSk7Y29uc3QgbD10Lm5leHRTaWJsaW5nO2kucmVtb3ZlQ2hpbGQodCk7bGV0IGEsaD0tMTtjb25zdCBjPSgpPT57YSYmKGkuaW5zZXJ0QmVmb3JlKG4sYS5lbCksYS5yZW1vdmUoKSxhPXZvaWQgMCl9O3JldHVybiBzLmVmZmVjdCgoKT0+e2ZvcihsZXQgdD0wO3Q8ci5sZW5ndGg7dCsrKXtjb25zdHtleHA6ZSxlbDpvfT1yW3RdO2lmKCFlfHx0aShzLnNjb3BlLGUpKXJldHVybiB2b2lkKHQhPT1oJiYoYygpLGE9bmV3IHdpKG8scyksYS5pbnNlcnQoaSxuKSxpLnJlbW92ZUNoaWxkKG4pLGg9dCkpfWg9LTEsYygpfSksbH0pKHMsaSxlKTtpZihpPVRzKHMsInYtZm9yIikpcmV0dXJuIHVpKHMsaSxlKTtpZigoaT1UcyhzLCJ2LXNjb3BlIikpfHwiIj09PWkpe2NvbnN0IHQ9aT90aShlLnNjb3BlLGkpOnt9O2U9Z2koZSx0KSx0LiR0ZW1wbGF0ZSYmX2kocyx0LiR0ZW1wbGF0ZSl9Y29uc3Qgbj1udWxsIT1UcyhzLCJ2LW9uY2UiKTtuJiYoY2k9ITApLChpPVRzKHMsInJlZiIpKSYmcGkocyxsaSxgIiR7aX0iYCxlKSxEaShzLGUpO2NvbnN0IHI9W107Zm9yKGNvbnN0e25hbWU6dCx2YWx1ZTpvfW9mWy4uLnMuYXR0cmlidXRlc10pYWkudGVzdCh0KSYmInYtY2xvYWsiIT09dCYmKCJ2LW1vZGVsIj09PXQ/ci51bnNoaWZ0KFt0LG9dKToiQCI9PT10WzBdfHwvXnYtb25cYi8udGVzdCh0KT9yLnB1c2goW3Qsb10pOmZpKHMsdCxvLGUpKTtmb3IoY29uc3RbdCxvXW9mIHIpZmkocyx0LG8sZSk7biYmKGNpPSExKX1lbHNlIGlmKDM9PT1zKXtjb25zdCBzPXQuZGF0YTtpZihzLmluY2x1ZGVzKGUuZGVsaW1pdGVyc1swXSkpe2xldCBpLG49W10scj0wO2Zvcig7aT1lLmRlbGltaXRlcnNSRS5leGVjKHMpOyl7Y29uc3QgdD1zLnNsaWNlKHIsaS5pbmRleCk7dCYmbi5wdXNoKEpTT04uc3RyaW5naWZ5KHQpKSxuLnB1c2goYCRzKCR7aVsxXX0pYCkscj1pLmluZGV4K2lbMF0ubGVuZ3RofXI8cy5sZW5ndGgmJm4ucHVzaChKU09OLnN0cmluZ2lmeShzLnNsaWNlKHIpKSkscGkodCxVcyxuLmpvaW4oIisiKSxlKX19ZWxzZSAxMT09PXMmJkRpKHQsZSl9LERpPSh0LGUpPT57bGV0IHM9dC5maXJzdENoaWxkO2Zvcig7czspcz1kaShzLGUpfHxzLm5leHRTaWJsaW5nfSxmaT0odCxlLHMsaSk9PntsZXQgbixyLG8sdT1lLnJlcGxhY2UoaGksKHQsZSk9Pigob3x8KG89e30pKVtlXT0hMCwiIikpO2lmKCI6Ij09PXVbMF0pbj1JcyxyPXUuc2xpY2UoMSk7ZWxzZSBpZigiQCI9PT11WzBdKW49TXMscj11LnNsaWNlKDEpO2Vsc2V7Y29uc3QgdD11LmluZGV4T2YoIjoiKSxlPXQ+MD91LnNsaWNlKDIsdCk6dS5zbGljZSgyKTtuPXNpW2VdfHxpLmRpcnNbZV0scj10PjA/dS5zbGljZSh0KzEpOnZvaWQgMH1uJiYobj09PUlzJiYicmVmIj09PXImJihuPWxpKSxwaSh0LG4scyxpLHIsbyksdC5yZW1vdmVBdHRyaWJ1dGUoZSkpfSxwaT0odCxlLHMsaSxuLHIpPT57Y29uc3Qgbz1lKHtlbDp0LGdldDoodD1zKT0+dGkoaS5zY29wZSx0KSxlZmZlY3Q6aS5lZmZlY3QsY3R4OmksZXhwOnMsYXJnOm4sbW9kaWZpZXJzOnJ9KTtvJiZpLmNsZWFudXBzLnB1c2gobyl9LF9pPSh0LGUpPT57aWYoIiMiPT09ZVswXSl7Y29uc3Qgcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGUpO3JldHVybiB2b2lkIHQuYXBwZW5kQ2hpbGQocy5jb250ZW50LmNsb25lTm9kZSghMCkpfXQuaW5uZXJIVE1MPWV9LG1pPSh0LGUpPT57Y29uc3Qgcz1hcyhscyh7ZGVsaW1pdGVyczpbInt7IiwifX0iXSxkZWxpbWl0ZXJzUkU6L1x7XHsoW15dKz8pXH1cfS9nfSxlKSx7c2NvcGU6ZT9lLnNjb3BlOnQucmVhY3RpdmUoe30pLGRpcnM6ZT9lLmRpcnM6e30sZWZmZWN0czpbXSxibG9ja3M6W10sY2xlYW51cHM6W10sZWZmZWN0OmU9PntpZihjaSlyZXR1cm4gcHMoZSksZTtjb25zdCBpPXQuZWZmZWN0KGUse3NjaGVkdWxlcjooKT0+cHMoaSl9KTtyZXR1cm4gcy5lZmZlY3RzLnB1c2goaSksaX0scmVtb3ZlOnQucmVtb3ZlLHN0b3A6dC5zdG9wLHJlYWN0aXZlOnQucmVhY3RpdmV9KTtyZXR1cm4gc30sZ2k9KHQsZT17fSk9Pntjb25zdCBzPXQuc2NvcGUsaT1PYmplY3QuY3JlYXRlKHMpO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGksT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoZSkpLGkuJHJlZnM9T2JqZWN0LmNyZWF0ZShzLiRyZWZzKTtjb25zdCBuPXQucmVhY3RpdmUobmV3IFByb3h5KGkse3NldDoodCxlLGkscik9PnIhPT1ufHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKT9SZWZsZWN0LnNldCh0LGUsaSxyKTpSZWZsZWN0LnNldChzLGUsaSl9KSk7cmV0dXJuIEZpKG4pLGFzKGxzKHt9LHQpLHtzY29wZTpuLHJlbW92ZTp0LnJlbW92ZSxzdG9wOnQuc3RvcCxyZWFjdGl2ZTp0LnJlYWN0aXZlfSl9LEZpPXQ9Pntmb3IoY29uc3QgZSBvZiBPYmplY3Qua2V5cyh0KSkiZnVuY3Rpb24iPT10eXBlb2YgdFtlXSYmKHRbZV09dHModFtlXSx0KSl9LHdpPWNsYXNze2NvbnN0cnVjdG9yKHQsZSxzPSExKXtocyh0aGlzLCJ0ZW1wbGF0ZSIpLGhzKHRoaXMsImN0eCIpLGhzKHRoaXMsImtleSIpLGhzKHRoaXMsInBhcmVudEN0eCIpLGhzKHRoaXMsImlzRnJhZ21lbnQiKSxocyh0aGlzLCJzdGFydCIpLGhzKHRoaXMsImVuZCIpLHRoaXMuaXNGcmFnbWVudD10IGluc3RhbmNlb2YgSFRNTFRlbXBsYXRlRWxlbWVudCxzP3RoaXMudGVtcGxhdGU9dDp0aGlzLmlzRnJhZ21lbnQ/dGhpcy50ZW1wbGF0ZT10LmNvbnRlbnQuY2xvbmVOb2RlKCEwKTp0aGlzLnRlbXBsYXRlPXQuY2xvbmVOb2RlKCEwKSxzP3RoaXMuY3R4PWU6KHRoaXMucGFyZW50Q3R4PWUsZS5ibG9ja3MucHVzaCh0aGlzKSx0aGlzLmN0eD1taSh7cmVhY3RpdmU6ZS5yZWFjdGl2ZSxlZmZlY3Q6ZS5lZmZlY3QscmVtb3ZlOmUucmVtb3ZlLHN0b3A6ZS5zdG9wfSxlKSksZGkodGhpcy50ZW1wbGF0ZSx0aGlzLmN0eCl9Z2V0IGVsKCl7cmV0dXJuIHRoaXMuc3RhcnR8fHRoaXMudGVtcGxhdGV9aW5zZXJ0KHQsZT1udWxsKXtpZih0aGlzLmlzRnJhZ21lbnQpaWYodGhpcy5zdGFydCl7bGV0IHMsaT10aGlzLnN0YXJ0O2Zvcig7aSYmKHM9aS5uZXh0U2libGluZyx0Lmluc2VydEJlZm9yZShpLGUpLGkhPT10aGlzLmVuZCk7KWk9c31lbHNlIHRoaXMuc3RhcnQ9bmV3IFRleHQoIiIpLHRoaXMuZW5kPW5ldyBUZXh0KCIiKSx0Lmluc2VydEJlZm9yZSh0aGlzLmVuZCxlKSx0Lmluc2VydEJlZm9yZSh0aGlzLnN0YXJ0LHRoaXMuZW5kKSx0Lmluc2VydEJlZm9yZSh0aGlzLnRlbXBsYXRlLHRoaXMuZW5kKTtlbHNlIHQuaW5zZXJ0QmVmb3JlKHRoaXMudGVtcGxhdGUsZSl9cmVtb3ZlKCl7aWYodGhpcy5wYXJlbnRDdHgmJnRoaXMucGFyZW50Q3R4LnJlbW92ZSh0aGlzLnBhcmVudEN0eC5ibG9ja3MsdGhpcyksdGhpcy5zdGFydCl7Y29uc3QgdD10aGlzLnN0YXJ0LnBhcmVudE5vZGU7bGV0IGUscz10aGlzLnN0YXJ0O2Zvcig7cyYmKGU9cy5uZXh0U2libGluZyx0LnJlbW92ZUNoaWxkKHMpLHMhPT10aGlzLmVuZCk7KXM9ZX1lbHNlIHRoaXMudGVtcGxhdGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnRlbXBsYXRlKTt0aGlzLnRlYXJkb3duKCl9dGVhcmRvd24oKXt0aGlzLmN0eC5ibG9ja3MuZm9yRWFjaCh0PT57dC50ZWFyZG93bigpfSksdGhpcy5jdHguZWZmZWN0cy5mb3JFYWNoKHRoaXMuY3R4LnN0b3ApLHRoaXMuY3R4LmNsZWFudXBzLmZvckVhY2godD0+dCgpKX19LHZpPXQ9PnQucmVwbGFjZSgvWy0uKis/XiR7fSgpfFtcXVwvXFxdL2csIlxcJCYiKSx5aT0odCxlKT0+e2NvbnN0IHM9bWkodCk7aWYoZSYmKHMuc2NvcGU9dC5yZWFjdGl2ZShlKSxGaShzLnNjb3BlKSxlLiRkZWxpbWl0ZXJzKSl7Y29uc3RbdCxpXT1zLmRlbGltaXRlcnM9ZS4kZGVsaW1pdGVycztzLmRlbGltaXRlcnNSRT1uZXcgUmVnRXhwKHZpKHQpKyIoW15dKz8pIit2aShpKSwiZyIpfWxldCBpO3JldHVybiBzLnNjb3BlLiRzPXFzLHMuc2NvcGUuJG5leHRUaWNrPWZzLHMuc2NvcGUuJHJlZnM9T2JqZWN0LmNyZWF0ZShudWxsKSx7ZGlyZWN0aXZlKHQsZSl7cmV0dXJuIGU/KHMuZGlyc1t0XT1lLHRoaXMpOnMuZGlyc1t0XX0sbW91bnQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0JiYhKHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0KSkpcmV0dXJuO2xldCBlO3JldHVybiBlPSh0PXR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuaGFzQXR0cmlidXRlKCJ2LXNjb3BlIik/W3RdOlsuLi50LnF1ZXJ5U2VsZWN0b3JBbGwoIlt2LXNjb3BlXSIpXS5maWx0ZXIodD0+IXQubWF0Y2hlcygiW3Ytc2NvcGVdIFt2LXNjb3BlXSIpKSxlLmxlbmd0aHx8KGU9W3RdKSxpPWUubWFwKHQ9Pm5ldyB3aSh0LHMsITApKSx0aGlzfSx1bm1vdW50KCl7aS5mb3JFYWNoKHQ9PnQudGVhcmRvd24oKSl9fX07ZnVuY3Rpb24gYmkodCxlLC4uLnMpe3JldHVybiB0LmJpbmQmJi9cW25hdGl2ZSBjb2RlXF0vLnRlc3QodC5iaW5kLnRvU3RyaW5nKCkpP3QuYmluZChlLC4uLnMpOmZ1bmN0aW9uKC4uLmkpe3JldHVybiB0LmFwcGx5KGUsWy4uLnMsLi4uaV0pfX12YXIgRWksQ2ksa2k9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5wYXJlbnQ9dCx0aGlzLnNtaWxleV9tYXA9e2FuZ3J5OiI6QCIsYmx1c2hpbmc6IjokIixjb25mdXNlZDoieCkiLGNvb2w6IjgpIixjcnlpbmc6IjonKCIsZW1iYXJyYXNzZWQ6IjovIixoZWFydDoiPDMiLGxhdWdoaW5nOiI6J0QiLHNhZDoiOigiLHNpY2s6IjpTIiwic21hbGwtc21pbGUiOiI6KSIsImJpZy1zbWlsZSI6IjpEIiwidGh1bWJzLXVwIjoiWysxXSIsc3VycHJpc2VkOiI6byIsdG9uZ3VlOiI6UCIsd2lua2luZzoiOykifSx0aGlzLkxlPXthbmdyeToiKCg/Oj18OikoPzotKT9AKSIsYmx1c2hpbmc6IigoPzo9fDopKD86LSk/XFwkKSIsY29vbDoiKDgoPzotKT9cXCkpIixjb25mdXNlZDoiKHgoPzotKT9cXCkpIixjcnlpbmc6IigoPzo9fDopJyg/Oi0pP1xcKCkiLGVtYmFycmFzc2VkOiIoKD86PXw6KSg/Oi0pP1xcLykiLGhlYXJ0OiIoJmx0OzMpIixsYXVnaGluZzoiKCg/Oj18OikoPzotKT8nRCkiLHNhZDoiKCg/Oj18OikoPzotKT8oPzpcXCh8XFx8KSkiLHNpY2s6IigoPzo9fDopKD86LSk/UykiLCJzbWFsbC1zbWlsZSI6IigoPzo9fDopKD86LSk/XFwpKSIsImJpZy1zbWlsZSI6IigoPzo9fDopKD86LSk/RCkiLCJ0aHVtYnMtdXAiOiIoXFxbXFwrMVxcXSkiLHN1cnByaXNlZDoiKCg/Oj18OikoPzotKT9vKSIsdG9uZ3VlOiIoKD86PXw6KSg/Oi0pP1ApIix3aW5raW5nOiIoOyg/Oi0pP1xcKSkifSx0aGlzLlVlKCl9Y29kZSh0LGU9InNtYWxsIil7cmV0dXJuIHRoaXMucGFyZW50LnRlbXBsYXRlLnJlbmRlcigic21pbGV5Iix7bmFtZTp0LHNpemU6ZX0pfXBhcnNlKHQpe2xldCBlLHMsaSxfLG4scj10O2ZvcihlIGluIHRoaXMuVmUpaWYodGhpcy5WZS5oYXNPd25Qcm9wZXJ0eShlKSlmb3Iocz10aGlzLlZlW2VdO251bGwhPT0obj1yLm1hdGNoKHMpKTspaT0ic21hbGwiLHI9PT1uWzJdJiYoaT0ibGFyZ2UiKSxfPXRoaXMuY29kZShlLGkpLHI9ci5yZXBsYWNlKHMsYCQxJHtffSQzYCk7cmV0dXJuIHJ9Y291bnQodCl7bGV0IGUscyxpPTAsXz10O2ZvcihlIGluIHRoaXMuVmUpaWYodGhpcy5WZS5oYXNPd25Qcm9wZXJ0eShlKSlmb3Iocz10aGlzLlZlW2VdOyEwPT09cy50ZXN0KF8pOylpKyssXz1fLnJlcGxhY2UocywiJDFbXSQzIik7cmV0dXJuIGl9bmFtZSh0KXtsZXQgZSxzLGk9bnVsbDtmb3IoZSBpbiB0aGlzLlZlKWlmKHRoaXMuVmUuaGFzT3duUHJvcGVydHkoZSkmJihzPXRoaXMuVmVbZV0sdC5tYXRjaChzKSkpe2k9ZTticmVha31yZXR1cm4gaX1VZSgpe2xldCB0O2Zvcih0IGluIHRoaXMuVmU9e30sdGhpcy5MZSl0aGlzLlZlW3RdPW5ldyBSZWdFeHAoYChefFxcc3xcXCgpJHt0aGlzLkxlW3RdfSgkfFxcc3xcXCkpYCwiaSIpfX0sJGk9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5wYXJlbnQ9dCx0aGlzLk5lPS9bIyowLTldXHVGRTBGP1x1MjBFM3xbXHhBOVx4QUVcdTIwM0NcdTIwNDlcdTIxMjJcdTIxMzlcdTIxOTQtXHUyMTk5XHUyMUE5XHUyMUFBXHUyMzFBXHUyMzFCXHUyMzI4XHUyM0NGXHUyM0VELVx1MjNFRlx1MjNGMVx1MjNGMlx1MjNGOC1cdTIzRkFcdTI0QzJcdTI1QUFcdTI1QUJcdTI1QjZcdTI1QzBcdTI1RkJcdTI1RkNcdTI1RkVcdTI2MDAtXHUyNjA0XHUyNjBFXHUyNjExXHUyNjE0XHUyNjE1XHUyNjE4XHUyNjIwXHUyNjIyXHUyNjIzXHUyNjI2XHUyNjJBXHUyNjJFXHUyNjJGXHUyNjM4LVx1MjYzQVx1MjY0MFx1MjY0Mlx1MjY0OC1cdTI2NTNcdTI2NUZcdTI2NjBcdTI2NjNcdTI2NjVcdTI2NjZcdTI2NjhcdTI2N0JcdTI2N0VcdTI2N0ZcdTI2OTJcdTI2OTQtXHUyNjk3XHUyNjk5XHUyNjlCXHUyNjlDXHUyNkEwXHUyNkE3XHUyNkFBXHUyNkIwXHUyNkIxXHUyNkJEXHUyNkJFXHUyNkM0XHUyNkM4XHUyNkNGXHUyNkQxXHUyNkU5XHUyNkYwLVx1MjZGNVx1MjZGN1x1MjZGOFx1MjZGQVx1MjcwMlx1MjcwOFx1MjcwOVx1MjcwRlx1MjcxMlx1MjcxNFx1MjcxNlx1MjcxRFx1MjcyMVx1MjczM1x1MjczNFx1Mjc0NFx1Mjc0N1x1Mjc1N1x1Mjc2M1x1MjdBMVx1MjkzNFx1MjkzNVx1MkIwNS1cdTJCMDdcdTJCMUJcdTJCMUNcdTJCNTVcdTMwMzBcdTMwM0RcdTMyOTdcdTMyOTldXHVGRTBGP3xbXHUyNjFEXHUyNzBDXHUyNzBEXSg/Olx1RDgzQ1tcdURGRkItXHVERkZGXXxcdUZFMEYpP3xbXHUyNzBBXHUyNzBCXSg/Olx1RDgzQ1tcdURGRkItXHVERkZGXSk/fFtcdTIzRTktXHUyM0VDXHUyM0YwXHUyM0YzXHUyNUZEXHUyNjkzXHUyNkExXHUyNkFCXHUyNkM1XHUyNkNFXHUyNkQ0XHUyNkVBXHUyNkZEXHUyNzA1XHUyNzI4XHUyNzRDXHUyNzRFXHUyNzUzLVx1Mjc1NVx1Mjc5NS1cdTI3OTdcdTI3QjBcdTI3QkZcdTJCNTBdfFx1MjZEM1x1RkUwRj8oPzpcdTIwMERcdUQ4M0RcdURDQTUpP3xcdTI2RjkoPzpcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVGRTBGKT8oPzpcdTIwMERbXHUyNjQwXHUyNjQyXVx1RkUwRj8pP3xcdTI3NjRcdUZFMEY/KD86XHUyMDBEKD86XHVEODNEXHVERDI1fFx1RDgzRVx1REU3OSkpP3xcdUQ4M0MoPzpbXHVEQzA0XHVERDcwXHVERDcxXHVERDdFXHVERDdGXHVERTAyXHVERTM3XHVERjIxXHVERjI0LVx1REYyQ1x1REYzNlx1REY3RFx1REY5Nlx1REY5N1x1REY5OS1cdURGOUJcdURGOUVcdURGOUZcdURGQ0RcdURGQ0VcdURGRDQtXHVERkRGXHVERkY1XHVERkY3XVx1RkUwRj98W1x1REY4NVx1REZDMlx1REZDN10oPzpcdUQ4M0NbXHVERkZCLVx1REZGRl0pP3xbXHVERkM0XHVERkNBXSg/Olx1RDgzQ1tcdURGRkItXHVERkZGXSk/KD86XHUyMDBEW1x1MjY0MFx1MjY0Ml1cdUZFMEY/KT98W1x1REZDQlx1REZDQ10oPzpcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVGRTBGKT8oPzpcdTIwMERbXHUyNjQwXHUyNjQyXVx1RkUwRj8pP3xbXHVEQ0NGXHVERDhFXHVERDkxLVx1REQ5QVx1REUwMVx1REUxQVx1REUyRlx1REUzMi1cdURFMzZcdURFMzgtXHVERTNBXHVERTUwXHVERTUxXHVERjAwLVx1REYyMFx1REYyRC1cdURGMzVcdURGMzctXHVERjQzXHVERjQ1LVx1REY0QVx1REY0Qy1cdURGN0NcdURGN0UtXHVERjg0XHVERjg2LVx1REY5M1x1REZBMC1cdURGQzFcdURGQzVcdURGQzZcdURGQzhcdURGQzlcdURGQ0YtXHVERkQzXHVERkUwLVx1REZGMFx1REZGOC1cdURGRkZdfFx1RERFNlx1RDgzQ1tcdURERTgtXHVEREVDXHVEREVFXHVEREYxXHVEREYyXHVEREY0XHVEREY2LVx1RERGQVx1RERGQ1x1RERGRFx1RERGRl18XHVEREU3XHVEODNDW1x1RERFNlx1RERFN1x1RERFOS1cdURERUZcdURERjEtXHVEREY0XHVEREY2LVx1RERGOVx1RERGQlx1RERGQ1x1RERGRVx1RERGRl18XHVEREU4XHVEODNDW1x1RERFNlx1RERFOFx1RERFOVx1RERFQi1cdURERUVcdURERjAtXHVEREY3XHVEREZBLVx1RERGRl18XHVEREU5XHVEODNDW1x1RERFQVx1RERFQ1x1RERFRlx1RERGMFx1RERGMlx1RERGNFx1RERGRl18XHVEREVBXHVEODNDW1x1RERFNlx1RERFOFx1RERFQVx1RERFQ1x1RERFRFx1RERGNy1cdURERkFdfFx1RERFQlx1RDgzQ1tcdURERUUtXHVEREYwXHVEREYyXHVEREY0XHVEREY3XXxcdURERUNcdUQ4M0NbXHVEREU2XHVEREU3XHVEREU5LVx1RERFRVx1RERGMS1cdURERjNcdURERjUtXHVEREZBXHVEREZDXHVEREZFXXxcdURERURcdUQ4M0NbXHVEREYwXHVEREYyXHVEREYzXHVEREY3XHVEREY5XHVEREZBXXxcdURERUVcdUQ4M0NbXHVEREU4LVx1RERFQVx1RERGMS1cdURERjRcdURERjYtXHVEREY5XXxcdURERUZcdUQ4M0NbXHVEREVBXHVEREYyXHVEREY0XHVEREY1XXxcdURERjBcdUQ4M0NbXHVEREVBXHVEREVDLVx1RERFRVx1RERGMlx1RERGM1x1RERGNVx1RERGN1x1RERGQ1x1RERGRVx1RERGRl18XHVEREYxXHVEODNDW1x1RERFNi1cdURERThcdURERUVcdURERjBcdURERjctXHVEREZCXHVEREZFXXxcdURERjJcdUQ4M0NbXHVEREU2XHVEREU4LVx1RERFRFx1RERGMC1cdURERkZdfFx1RERGM1x1RDgzQ1tcdURERTZcdURERThcdURERUEtXHVEREVDXHVEREVFXHVEREYxXHVEREY0XHVEREY1XHVEREY3XHVEREZBXHVEREZGXXxcdURERjRcdUQ4M0NcdURERjJ8XHVEREY1XHVEODNDW1x1RERFNlx1RERFQS1cdURERURcdURERjAtXHVEREYzXHVEREY3LVx1RERGOVx1RERGQ1x1RERGRV18XHVEREY2XHVEODNDXHVEREU2fFx1RERGN1x1RDgzQ1tcdURERUFcdURERjRcdURERjhcdURERkFcdURERkNdfFx1RERGOFx1RDgzQ1tcdURERTYtXHVEREVBXHVEREVDLVx1RERGNFx1RERGNy1cdURERjlcdURERkJcdURERkQtXHVEREZGXXxcdURERjlcdUQ4M0NbXHVEREU2XHVEREU4XHVEREU5XHVEREVCLVx1RERFRFx1RERFRi1cdURERjRcdURERjdcdURERjlcdURERkJcdURERkNcdURERkZdfFx1RERGQVx1RDgzQ1tcdURERTZcdURERUNcdURERjJcdURERjNcdURERjhcdURERkVcdURERkZdfFx1RERGQlx1RDgzQ1tcdURERTZcdURERThcdURERUFcdURERUNcdURERUVcdURERjNcdURERkFdfFx1RERGQ1x1RDgzQ1tcdURERUJcdURERjhdfFx1RERGRFx1RDgzQ1x1RERGMHxcdURERkVcdUQ4M0NbXHVEREVBXHVEREY5XXxcdURERkZcdUQ4M0NbXHVEREU2XHVEREYyXHVEREZDXXxcdURGNDQoPzpcdTIwMERcdUQ4M0RcdURGRUIpP3xcdURGNEIoPzpcdTIwMERcdUQ4M0RcdURGRTkpP3xcdURGQzMoPzpcdUQ4M0NbXHVERkZCLVx1REZGRl0pPyg/Olx1MjAwRCg/OltcdTI2NDBcdTI2NDJdXHVGRTBGPyg/Olx1MjAwRFx1MjdBMVx1RkUwRj8pP3xcdTI3QTFcdUZFMEY/KSk/fFx1REZGM1x1RkUwRj8oPzpcdTIwMEQoPzpcdTI2QTdcdUZFMEY/fFx1RDgzQ1x1REYwOCkpP3xcdURGRjQoPzpcdTIwMERcdTI2MjBcdUZFMEY/fFx1REI0MFx1REM2N1x1REI0MFx1REM2Mlx1REI0MCg/Olx1REM2NVx1REI0MFx1REM2RVx1REI0MFx1REM2N3xcdURDNzNcdURCNDBcdURDNjNcdURCNDBcdURDNzR8XHVEQzc3XHVEQjQwXHVEQzZDXHVEQjQwXHVEQzczKVx1REI0MFx1REM3Rik/KXxcdUQ4M0QoPzpbXHVEQzNGXHVEQ0ZEXHVERDQ5XHVERDRBXHVERDZGXHVERDcwXHVERDczXHVERDc2LVx1REQ3OVx1REQ4N1x1REQ4QS1cdUREOERcdUREQTVcdUREQThcdUREQjFcdUREQjJcdUREQkNcdUREQzItXHVEREM0XHVEREQxLVx1REREM1x1REREQy1cdUREREVcdURERTFcdURERTNcdURERThcdURERUZcdURERjNcdURERkFcdURFQ0JcdURFQ0QtXHVERUNGXHVERUUwLVx1REVFNVx1REVFOVx1REVGMFx1REVGM11cdUZFMEY/fFtcdURDNDJcdURDNDNcdURDNDYtXHVEQzUwXHVEQzY2XHVEQzY3XHVEQzZCLVx1REM2RFx1REM3Mlx1REM3NC1cdURDNzZcdURDNzhcdURDN0NcdURDODNcdURDODVcdURDOEZcdURDOTFcdURDQUFcdUREN0FcdUREOTVcdUREOTZcdURFNENcdURFNEZcdURFQzBcdURFQ0NdKD86XHVEODNDW1x1REZGQi1cdURGRkZdKT98W1x1REM2RS1cdURDNzFcdURDNzNcdURDNzdcdURDODFcdURDODJcdURDODZcdURDODdcdURFNDUtXHVERTQ3XHVERTRCXHVERTREXHVERTRFXHVERUEzXHVERUI0XHVERUI1XSg/Olx1RDgzQ1tcdURGRkItXHVERkZGXSk/KD86XHUyMDBEW1x1MjY0MFx1MjY0Ml1cdUZFMEY/KT98W1x1REQ3NFx1REQ5MF0oPzpcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVGRTBGKT98W1x1REMwMC1cdURDMDdcdURDMDktXHVEQzE0XHVEQzE2LVx1REMyNVx1REMyNy1cdURDM0FcdURDM0MtXHVEQzNFXHVEQzQwXHVEQzQ0XHVEQzQ1XHVEQzUxLVx1REM2NVx1REM2QVx1REM3OS1cdURDN0JcdURDN0QtXHVEQzgwXHVEQzg0XHVEQzg4LVx1REM4RVx1REM5MFx1REM5Mi1cdURDQTlcdURDQUItXHVEQ0ZDXHVEQ0ZGLVx1REQzRFx1REQ0Qi1cdURENEVcdURENTAtXHVERDY3XHVEREE0XHVEREZCLVx1REUyRFx1REUyRi1cdURFMzRcdURFMzctXHVERTQxXHVERTQzXHVERTQ0XHVERTQ4LVx1REU0QVx1REU4MC1cdURFQTJcdURFQTQtXHVERUIzXHVERUI3LVx1REVCRlx1REVDMS1cdURFQzVcdURFRDAtXHVERUQyXHVERUQ1LVx1REVEOFx1REVEQy1cdURFREZcdURFRUJcdURFRUNcdURFRjQtXHVERUZDXHVERkUwLVx1REZFQlx1REZGMF18XHVEQzA4KD86XHUyMDBEXHUyQjFCKT98XHVEQzE1KD86XHUyMDBEXHVEODNFXHVEREJBKT98XHVEQzI2KD86XHUyMDBEKD86XHUyQjFCfFx1RDgzRFx1REQyNSkpP3xcdURDM0IoPzpcdTIwMERcdTI3NDRcdUZFMEY/KT98XHVEQzQxXHVGRTBGPyg/Olx1MjAwRFx1RDgzRFx1RERFOFx1RkUwRj8pP3xcdURDNjgoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRFx1RDgzRCg/Olx1REM4Qlx1MjAwRFx1RDgzRCk/XHVEQzY4fFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRCg/OltcdURDNjhcdURDNjldXHUyMDBEXHVEODNEKD86XHVEQzY2KD86XHUyMDBEXHVEODNEXHVEQzY2KT98XHVEQzY3KD86XHUyMDBEXHVEODNEW1x1REM2Nlx1REM2N10pPyl8W1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEQzY2KD86XHUyMDBEXHVEODNEXHVEQzY2KT98XHVEQzY3KD86XHUyMDBEXHVEODNEW1x1REM2Nlx1REM2N10pPyl8XHVEODNFKD86W1x1RERBRlx1RERCQ1x1RERCRF0oPzpcdTIwMERcdTI3QTFcdUZFMEY/KT98W1x1RERCMC1cdUREQjNdKSl8XHVEODNDKD86XHVERkZCKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMERcdUQ4M0QoPzpcdURDOEJcdTIwMERcdUQ4M0QpP1x1REM2OFx1RDgzQ1tcdURGRkItXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0QoPzpbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdURDMzBcdTIwMERcdUQ4M0RcdURDNjhcdUQ4M0NbXHVERkZDLVx1REZGRl0pfFx1RDgzRSg/OltcdUREMURcdURFRUZdXHUyMDBEXHVEODNEXHVEQzY4XHVEODNDW1x1REZGQy1cdURGRkZdfFtcdUREQUZcdUREQkNcdUREQkRdKD86XHUyMDBEXHUyN0ExXHVGRTBGPyk/fFtcdUREQjAtXHVEREIzXSkpKT98XHVERkZDKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMERcdUQ4M0QoPzpcdURDOEJcdTIwMERcdUQ4M0QpP1x1REM2OFx1RDgzQ1tcdURGRkItXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0QoPzpbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdURDMzBcdTIwMERcdUQ4M0RcdURDNjhcdUQ4M0NbXHVERkZCXHVERkZELVx1REZGRl0pfFx1RDgzRSg/OltcdUREMURcdURFRUZdXHUyMDBEXHVEODNEXHVEQzY4XHVEODNDW1x1REZGQlx1REZGRC1cdURGRkZdfFtcdUREQUZcdUREQkNcdUREQkRdKD86XHUyMDBEXHUyN0ExXHVGRTBGPyk/fFtcdUREQjAtXHVEREIzXSkpKT98XHVERkZEKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMERcdUQ4M0QoPzpcdURDOEJcdTIwMERcdUQ4M0QpP1x1REM2OFx1RDgzQ1tcdURGRkItXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0QoPzpbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdURDMzBcdTIwMERcdUQ4M0RcdURDNjhcdUQ4M0NbXHVERkZCXHVERkZDXHVERkZFXHVERkZGXSl8XHVEODNFKD86W1x1REQxRFx1REVFRl1cdTIwMERcdUQ4M0RcdURDNjhcdUQ4M0NbXHVERkZCXHVERkZDXHVERkZFXHVERkZGXXxbXHVEREFGXHVEREJDXHVEREJEXSg/Olx1MjAwRFx1MjdBMVx1RkUwRj8pP3xbXHVEREIwLVx1RERCM10pKSk/fFx1REZGRSg/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86XHVEQzhCXHUyMDBEXHVEODNEKT9cdURDNjhcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEKD86W1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEQzMwXHUyMDBEXHVEODNEXHVEQzY4XHVEODNDW1x1REZGQi1cdURGRkRcdURGRkZdKXxcdUQ4M0UoPzpbXHVERDFEXHVERUVGXVx1MjAwRFx1RDgzRFx1REM2OFx1RDgzQ1tcdURGRkItXHVERkZEXHVERkZGXXxbXHVEREFGXHVEREJDXHVEREJEXSg/Olx1MjAwRFx1MjdBMVx1RkUwRj8pP3xbXHVEREIwLVx1RERCM10pKSk/fFx1REZGRig/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86XHVEQzhCXHUyMDBEXHVEODNEKT9cdURDNjhcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEKD86W1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEQzMwXHUyMDBEXHVEODNEXHVEQzY4XHVEODNDW1x1REZGQi1cdURGRkVdKXxcdUQ4M0UoPzpbXHVERDFEXHVERUVGXVx1MjAwRFx1RDgzRFx1REM2OFx1RDgzQ1tcdURGRkItXHVERkZFXXxbXHVEREFGXHVEREJDXHVEREJEXSg/Olx1MjAwRFx1MjdBMVx1RkUwRj8pP3xbXHVEREIwLVx1RERCM10pKSk/KSk/fFx1REM2OSg/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86XHVEQzhCXHUyMDBEXHVEODNEKT9bXHVEQzY4XHVEQzY5XXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0QoPzpbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdURDNjYoPzpcdTIwMERcdUQ4M0RcdURDNjYpP3xcdURDNjcoPzpcdTIwMERcdUQ4M0RbXHVEQzY2XHVEQzY3XSk/fFx1REM2OVx1MjAwRFx1RDgzRCg/Olx1REM2Nig/Olx1MjAwRFx1RDgzRFx1REM2Nik/fFx1REM2Nyg/Olx1MjAwRFx1RDgzRFtcdURDNjZcdURDNjddKT8pKXxcdUQ4M0UoPzpbXHVEREFGXHVEREJDXHVEREJEXSg/Olx1MjAwRFx1MjdBMVx1RkUwRj8pP3xbXHVEREIwLVx1RERCM10pKXxcdUQ4M0MoPzpcdURGRkIoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRFx1RDgzRCg/OltcdURDNjhcdURDNjldfFx1REM4Qlx1MjAwRFx1RDgzRFtcdURDNjhcdURDNjldKVx1RDgzQ1tcdURGRkItXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0QoPzpbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdURDMzBcdTIwMERcdUQ4M0RcdURDNjlcdUQ4M0NbXHVERkZDLVx1REZGRl0pfFx1RDgzRSg/OltcdUREQUZcdUREQkNcdUREQkRdKD86XHUyMDBEXHUyN0ExXHVGRTBGPyk/fFtcdUREQjAtXHVEREIzXXxcdUREMURcdTIwMERcdUQ4M0RbXHVEQzY4XHVEQzY5XVx1RDgzQ1tcdURGRkMtXHVERkZGXXxcdURFRUZcdTIwMERcdUQ4M0RcdURDNjlcdUQ4M0NbXHVERkZDLVx1REZGRl0pKSk/fFx1REZGQyg/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86W1x1REM2OFx1REM2OV18XHVEQzhCXHUyMDBEXHVEODNEW1x1REM2OFx1REM2OV0pXHVEODNDW1x1REZGQi1cdURGRkZdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRCg/OltcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1REMzMFx1MjAwRFx1RDgzRFx1REM2OVx1RDgzQ1tcdURGRkJcdURGRkQtXHVERkZGXSl8XHVEODNFKD86W1x1RERBRlx1RERCQ1x1RERCRF0oPzpcdTIwMERcdTI3QTFcdUZFMEY/KT98W1x1RERCMC1cdUREQjNdfFx1REQxRFx1MjAwRFx1RDgzRFtcdURDNjhcdURDNjldXHVEODNDW1x1REZGQlx1REZGRC1cdURGRkZdfFx1REVFRlx1MjAwRFx1RDgzRFx1REM2OVx1RDgzQ1tcdURGRkJcdURGRkQtXHVERkZGXSkpKT98XHVERkZEKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMERcdUQ4M0QoPzpbXHVEQzY4XHVEQzY5XXxcdURDOEJcdTIwMERcdUQ4M0RbXHVEQzY4XHVEQzY5XSlcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVEODNDW1x1REYzRVx1REY3M1x1REY3Q1x1REY5M1x1REZBNFx1REZBOFx1REZFQlx1REZFRF18XHVEODNEKD86W1x1RENCQlx1RENCQ1x1REQyN1x1REQyQ1x1REU4MFx1REU5Ml18XHVEQzMwXHUyMDBEXHVEODNEXHVEQzY5XHVEODNDW1x1REZGQlx1REZGQ1x1REZGRVx1REZGRl0pfFx1RDgzRSg/OltcdUREQUZcdUREQkNcdUREQkRdKD86XHUyMDBEXHUyN0ExXHVGRTBGPyk/fFtcdUREQjAtXHVEREIzXXxcdUREMURcdTIwMERcdUQ4M0RbXHVEQzY4XHVEQzY5XVx1RDgzQ1tcdURGRkJcdURGRkNcdURGRkVcdURGRkZdfFx1REVFRlx1MjAwRFx1RDgzRFx1REM2OVx1RDgzQ1tcdURGRkJcdURGRkNcdURGRkVcdURGRkZdKSkpP3xcdURGRkUoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRFx1RDgzRCg/OltcdURDNjhcdURDNjldfFx1REM4Qlx1MjAwRFx1RDgzRFtcdURDNjhcdURDNjldKVx1RDgzQ1tcdURGRkItXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0QoPzpbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdURDMzBcdTIwMERcdUQ4M0RcdURDNjlcdUQ4M0NbXHVERkZCLVx1REZGRFx1REZGRl0pfFx1RDgzRSg/OltcdUREQUZcdUREQkNcdUREQkRdKD86XHUyMDBEXHUyN0ExXHVGRTBGPyk/fFtcdUREQjAtXHVEREIzXXxcdUREMURcdTIwMERcdUQ4M0RbXHVEQzY4XHVEQzY5XVx1RDgzQ1tcdURGRkItXHVERkZEXHVERkZGXXxcdURFRUZcdTIwMERcdUQ4M0RcdURDNjlcdUQ4M0NbXHVERkZCLVx1REZGRFx1REZGRl0pKSk/fFx1REZGRig/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEXHVEODNEKD86W1x1REM2OFx1REM2OV18XHVEQzhCXHUyMDBEXHVEODNEW1x1REM2OFx1REM2OV0pXHVEODNDW1x1REZGQi1cdURGRkZdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRCg/OltcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1REMzMFx1MjAwRFx1RDgzRFx1REM2OVx1RDgzQ1tcdURGRkItXHVERkZFXSl8XHVEODNFKD86W1x1RERBRlx1RERCQ1x1RERCRF0oPzpcdTIwMERcdTI3QTFcdUZFMEY/KT98W1x1RERCMC1cdUREQjNdfFx1REQxRFx1MjAwRFx1RDgzRFtcdURDNjhcdURDNjldXHVEODNDW1x1REZGQi1cdURGRkVdfFx1REVFRlx1MjAwRFx1RDgzRFx1REM2OVx1RDgzQ1tcdURGRkItXHVERkZFXSkpKT8pKT98XHVERDc1KD86XHVEODNDW1x1REZGQi1cdURGRkZdfFx1RkUwRik/KD86XHUyMDBEW1x1MjY0MFx1MjY0Ml1cdUZFMEY/KT98XHVERTJFKD86XHUyMDBEXHVEODNEXHVEQ0E4KT98XHVERTM1KD86XHUyMDBEXHVEODNEXHVEQ0FCKT98XHVERTM2KD86XHUyMDBEXHVEODNDXHVERjJCXHVGRTBGPyk/fFx1REU0Mig/Olx1MjAwRFtcdTIxOTRcdTIxOTVdXHVGRTBGPyk/fFx1REVCNig/Olx1RDgzQ1tcdURGRkItXHVERkZGXSk/KD86XHUyMDBEKD86W1x1MjY0MFx1MjY0Ml1cdUZFMEY/KD86XHUyMDBEXHUyN0ExXHVGRTBGPyk/fFx1MjdBMVx1RkUwRj8pKT8pfFx1RDgzRSg/OltcdUREMENcdUREMEZcdUREMTgtXHVERDFGXHVERDMwLVx1REQzNFx1REQzNlx1REQ3N1x1RERCNVx1RERCNlx1RERCQlx1REREMlx1REREM1x1RERENVx1REVDMy1cdURFQzVcdURFRjBcdURFRjItXHVERUY4XSg/Olx1RDgzQ1tcdURGRkItXHVERkZGXSk/fFtcdUREMjZcdUREMzVcdUREMzctXHVERDM5XHVERDNDLVx1REQzRVx1RERCOFx1RERCOVx1RERDRFx1RERDRlx1RERENFx1RERENi1cdURERERdKD86XHVEODNDW1x1REZGQi1cdURGRkZdKT8oPzpcdTIwMERbXHUyNjQwXHUyNjQyXVx1RkUwRj8pP3xbXHVERERFXHVERERGXSg/Olx1MjAwRFtcdTI2NDBcdTI2NDJdXHVGRTBGPyk/fFtcdUREMERcdUREMEVcdUREMTAtXHVERDE3XHVERDIwLVx1REQyNVx1REQyNy1cdUREMkZcdUREM0FcdUREM0YtXHVERDQ1XHVERDQ3LVx1REQ3Nlx1REQ3OC1cdUREQjRcdUREQjdcdUREQkFcdUREQkMtXHVERENDXHVEREQwXHVEREUwLVx1RERGRlx1REU3MC1cdURFN0NcdURFODAtXHVERThBXHVERThFLVx1REVDMlx1REVDNlx1REVDOFx1REVDRC1cdURFRENcdURFREYtXHVERUVBXHVERUVGXXxcdUREQ0UoPzpcdUQ4M0NbXHVERkZCLVx1REZGRl0pPyg/Olx1MjAwRCg/OltcdTI2NDBcdTI2NDJdXHVGRTBGPyg/Olx1MjAwRFx1MjdBMVx1RkUwRj8pP3xcdTI3QTFcdUZFMEY/KSk/fFx1REREMSg/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjg0XHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0RbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdUQ4M0UoPzpbXHVEREFGXHVEREJDXHVEREJEXSg/Olx1MjAwRFx1MjdBMVx1RkUwRj8pP3xbXHVEREIwLVx1RERCM1x1REU3MF18XHVERDFEXHUyMDBEXHVEODNFXHVEREQxfFx1REREMVx1MjAwRFx1RDgzRVx1REREMig/Olx1MjAwRFx1RDgzRVx1REREMik/fFx1REREMig/Olx1MjAwRFx1RDgzRVx1REREMik/KSl8XHVEODNDKD86XHVERkZCKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMEQoPzpcdUQ4M0RcdURDOEJcdTIwMEQpP1x1RDgzRVx1REREMVx1RDgzQ1tcdURGRkMtXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjg0XHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0QoPzpbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdURDMzBcdTIwMERcdUQ4M0VcdURERDFcdUQ4M0NbXHVERkZDLVx1REZGRl0pfFx1RDgzRSg/OltcdUREQUZcdUREQkNcdUREQkRdKD86XHUyMDBEXHUyN0ExXHVGRTBGPyk/fFtcdUREQjAtXHVEREIzXHVERTcwXXxcdUREMURcdTIwMERcdUQ4M0VcdURERDFcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVERUVGXHUyMDBEXHVEODNFXHVEREQxXHVEODNDW1x1REZGQy1cdURGRkZdKSkpP3xcdURGRkMoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRCg/Olx1RDgzRFx1REM4Qlx1MjAwRCk/XHVEODNFXHVEREQxXHVEODNDW1x1REZGQlx1REZGRC1cdURGRkZdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGODRcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRCg/OltcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1REMzMFx1MjAwRFx1RDgzRVx1REREMVx1RDgzQ1tcdURGRkJcdURGRkQtXHVERkZGXSl8XHVEODNFKD86W1x1RERBRlx1RERCQ1x1RERCRF0oPzpcdTIwMERcdTI3QTFcdUZFMEY/KT98W1x1RERCMC1cdUREQjNcdURFNzBdfFx1REQxRFx1MjAwRFx1RDgzRVx1REREMVx1RDgzQ1tcdURGRkItXHVERkZGXXxcdURFRUZcdTIwMERcdUQ4M0VcdURERDFcdUQ4M0NbXHVERkZCXHVERkZELVx1REZGRl0pKSk/fFx1REZGRCg/Olx1MjAwRCg/OltcdTI2OTVcdTI2OTZcdTI3MDhdXHVGRTBGP3xcdTI3NjRcdUZFMEY/XHUyMDBEKD86XHVEODNEXHVEQzhCXHUyMDBEKT9cdUQ4M0VcdURERDFcdUQ4M0NbXHVERkZCXHVERkZDXHVERkZFXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjg0XHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0QoPzpbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdURDMzBcdTIwMERcdUQ4M0VcdURERDFcdUQ4M0NbXHVERkZCXHVERkZDXHVERkZFXHVERkZGXSl8XHVEODNFKD86W1x1RERBRlx1RERCQ1x1RERCRF0oPzpcdTIwMERcdTI3QTFcdUZFMEY/KT98W1x1RERCMC1cdUREQjNcdURFNzBdfFx1REQxRFx1MjAwRFx1RDgzRVx1REREMVx1RDgzQ1tcdURGRkItXHVERkZGXXxcdURFRUZcdTIwMERcdUQ4M0VcdURERDFcdUQ4M0NbXHVERkZCXHVERkZDXHVERkZFXHVERkZGXSkpKT98XHVERkZFKD86XHUyMDBEKD86W1x1MjY5NVx1MjY5Nlx1MjcwOF1cdUZFMEY/fFx1Mjc2NFx1RkUwRj9cdTIwMEQoPzpcdUQ4M0RcdURDOEJcdTIwMEQpP1x1RDgzRVx1REREMVx1RDgzQ1tcdURGRkItXHVERkZEXHVERkZGXXxcdUQ4M0NbXHVERjNFXHVERjczXHVERjdDXHVERjg0XHVERjkzXHVERkE0XHVERkE4XHVERkVCXHVERkVEXXxcdUQ4M0QoPzpbXHVEQ0JCXHVEQ0JDXHVERDI3XHVERDJDXHVERTgwXHVERTkyXXxcdURDMzBcdTIwMERcdUQ4M0VcdURERDFcdUQ4M0NbXHVERkZCLVx1REZGRFx1REZGRl0pfFx1RDgzRSg/OltcdUREQUZcdUREQkNcdUREQkRdKD86XHUyMDBEXHUyN0ExXHVGRTBGPyk/fFtcdUREQjAtXHVEREIzXHVERTcwXXxcdUREMURcdTIwMERcdUQ4M0VcdURERDFcdUQ4M0NbXHVERkZCLVx1REZGRl18XHVERUVGXHUyMDBEXHVEODNFXHVEREQxXHVEODNDW1x1REZGQi1cdURGRkRcdURGRkZdKSkpP3xcdURGRkYoPzpcdTIwMEQoPzpbXHUyNjk1XHUyNjk2XHUyNzA4XVx1RkUwRj98XHUyNzY0XHVGRTBGP1x1MjAwRCg/Olx1RDgzRFx1REM4Qlx1MjAwRCk/XHVEODNFXHVEREQxXHVEODNDW1x1REZGQi1cdURGRkVdfFx1RDgzQ1tcdURGM0VcdURGNzNcdURGN0NcdURGODRcdURGOTNcdURGQTRcdURGQThcdURGRUJcdURGRURdfFx1RDgzRCg/OltcdURDQkJcdURDQkNcdUREMjdcdUREMkNcdURFODBcdURFOTJdfFx1REMzMFx1MjAwRFx1RDgzRVx1REREMVx1RDgzQ1tcdURGRkItXHVERkZFXSl8XHVEODNFKD86W1x1RERBRlx1RERCQ1x1RERCRF0oPzpcdTIwMERcdTI3QTFcdUZFMEY/KT98W1x1RERCMC1cdUREQjNcdURFNzBdfFx1REQxRFx1MjAwRFx1RDgzRVx1REREMVx1RDgzQ1tcdURGRkItXHVERkZGXXxcdURFRUZcdTIwMERcdUQ4M0VcdURERDFcdUQ4M0NbXHVERkZCLVx1REZGRV0pKSk/KSk/fFx1REVGMSg/Olx1RDgzQyg/Olx1REZGQig/Olx1MjAwRFx1RDgzRVx1REVGMlx1RDgzQ1tcdURGRkMtXHVERkZGXSk/fFx1REZGQyg/Olx1MjAwRFx1RDgzRVx1REVGMlx1RDgzQ1tcdURGRkJcdURGRkQtXHVERkZGXSk/fFx1REZGRCg/Olx1MjAwRFx1RDgzRVx1REVGMlx1RDgzQ1tcdURGRkJcdURGRkNcdURGRkVcdURGRkZdKT98XHVERkZFKD86XHUyMDBEXHVEODNFXHVERUYyXHVEODNDW1x1REZGQi1cdURGRkRcdURGRkZdKT98XHVERkZGKD86XHUyMDBEXHVEODNFXHVERUYyXHVEODNDW1x1REZGQi1cdURGRkVdKT8pKT8pL2d9Y29kZSh0LGU9InNtYWxsIil7cmV0dXJuIHRoaXMucGFyZW50LnRlbXBsYXRlLnJlbmRlcigiZW1vamkiLHtuYW1lOnQsc2l6ZTplfSl9Y291bnQodCl7bGV0IGU9dC5tYXRjaCh0aGlzLk5lKTtyZXR1cm4gZT9lLmxlbmd0aDowfXBhcnNlKHQpe2xldCBlPXRoaXMuSGUodCk/ImxhcmdlIjoic21hbGwiO3JldHVybiB0LnJlcGxhY2UodGhpcy5OZSx0PT50aGlzLmNvZGUodCxlKSl9SGUodCl7bGV0IGU9dGhpcy5jb3VudCh0KTtyZXR1cm4hKGU8MXx8ZT4zKSYmIiI9PT10LnJlcGxhY2UodGhpcy5OZSwiIikudHJpbSgpfX07dmFyIEFpPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0LldlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCwiZGVmYXVsdCIpP3QuZGVmYXVsdDp0fShDaT9FaTooQ2k9MSxFaT1bImNvbSIsIm5ldCIsIm9yZyIsImluZm8iLCJiaXoiLCJtb2JpIiwiY2hhdCIsImVtYWlsIiwiaGVscCIsIndhdGNoIiwibmFtZSIsInBybyIsImFlcm8iLCJhc2lhIiwiY2F0IiwiY29vcCIsImVkdSIsImdvdiIsImludCIsImpvYnMiLCJtaWwiLCJtdXNldW0iLCJwb3N0IiwidGVsIiwidHJhdmVsIiwieHh4IiwieHl6IiwidG9wIiwic2l0ZSIsIm9ubGluZSIsImNsdWIiLCJzaG9wIiwid29yayIsImFwcCIsImxpdmUiLCJzdG9yZSIsInNwYWNlIiwid2Vic2l0ZSIsInRlY2giLCJsaWZlIiwiZGV2IiwiYmxvZyIsImNsb3VkIiwicGFnZSIsImxpbmsiLCJkZXNpZ24iLCJncm91cCIsImNvbXBhbnkiLCJhZ2VuY3kiLCJuZXR3b3JrIiwibWVkaWEiLCJpbW1vIiwiYWMiLCJhZCIsImFlIiwiYWYiLCJhZyIsImFpIiwiYWwiLCJhbSIsImFuIiwiYW8iLCJhcSIsImFyIiwiYXMiLCJhdCIsImF1IiwiYXciLCJheCIsImF6IiwiYmEiLCJiYiIsImJkIiwiYmUiLCJiZiIsImJnIiwiYmgiLCJiaSIsImJqIiwiYmwiLCJibSIsImJuIiwiYm8iLCJicSIsImJyIiwiYnMiLCJidCIsImJ2IiwiYnciLCJieSIsImJ6IiwiY2EiLCJjYyIsImNkIiwiY2YiLCJjZyIsImNoIiwiY2kiLCJjayIsImNsIiwiY20iLCJjbiIsImNvIiwiY3IiLCJjdSIsImN2IiwiY3ciLCJjeCIsImN5IiwiY3oiLCJkZSIsImRqIiwiZGsiLCJkbSIsImRvIiwiZHoiLCJlYyIsImVlIiwiZWciLCJlaCIsImVyIiwiZXMiLCJldCIsImV1IiwiZmkiLCJmaiIsImZrIiwiZm0iLCJmbyIsImZyIiwiZ2EiLCJnYiIsImdkIiwiZ2UiLCJnZiIsImdnIiwiZ2giLCJnaSIsImdsIiwiZ20iLCJnbiIsImdwIiwiZ3EiLCJnciIsImdzIiwiZ3QiLCJndSIsImd3IiwiZ3kiLCJoayIsImhtIiwiaG4iLCJociIsImh0IiwiaHUiLCJpZCIsImllIiwiaWwiLCJpbSIsImluIiwiaW8iLCJpcSIsImlyIiwiaXMiLCJpdCIsImplIiwiam0iLCJqbyIsImpwIiwia2UiLCJrZyIsImtoIiwia2kiLCJrbSIsImtuIiwia3AiLCJrciIsImt3Iiwia3kiLCJreiIsImxhIiwibGIiLCJsYyIsImxpIiwibGsiLCJsciIsImxzIiwibHQiLCJsdSIsImx2IiwibHkiLCJtYSIsIm1jIiwibWQiLCJtZSIsIm1mIiwibWciLCJtaCIsIm1rIiwibWwiLCJtbSIsIm1uIiwibW8iLCJtcCIsIm1xIiwibXIiLCJtcyIsIm10IiwibXUiLCJtdiIsIm13IiwibXgiLCJteSIsIm16IiwibmEiLCJuYyIsIm5lIiwibmYiLCJuZyIsIm5pIiwibmwiLCJubyIsIm5wIiwibnIiLCJudSIsIm56Iiwib20iLCJwYSIsInBlIiwicGYiLCJwZyIsInBoIiwicGsiLCJwbCIsInBtIiwicG4iLCJwciIsInBzIiwicHQiLCJwdyIsInB5IiwicWEiLCJyZSIsInJvIiwicnMiLCJydSIsInJ3Iiwic2EiLCJzYiIsInNjIiwic2QiLCJzZSIsInNnIiwic2giLCJzaSIsInNqIiwic2siLCJzbCIsInNtIiwic24iLCJzbyIsInNyIiwic3MiLCJzdCIsInN1Iiwic3YiLCJzeCIsInN5Iiwic3oiLCJ0YyIsInRkIiwidGYiLCJ0ZyIsInRoIiwidGoiLCJ0ayIsInRsIiwidG0iLCJ0biIsInRvIiwidHAiLCJ0ciIsInR0IiwidHYiLCJ0dyIsInR6IiwidWEiLCJ1ZyIsInVrIiwidW0iLCJ1cyIsInV5IiwidXoiLCJ2YSIsInZjIiwidmUiLCJ2ZyIsInZpIiwidm4iLCJ2dSIsIndmIiwid3MiLCJ5ZSIsInl0IiwiemEiLCJ6bSIsInp3Il0pKSxCaT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnBhcmVudD10LHRoaXMuR2U9QWksdGhpcy5KZT17IiYiOi8mYW1wOy9nLCI8IjovJmx0Oy9nLCI+IjovJmd0Oy9nLCciJzovJnF1b3Q7L2d9LHRoaXMuS2U9eyImYW1wOyI6LyYvZywiJmx0OyI6LzwvZywiJmd0OyI6Lz4vZywiJnF1b3Q7IjovIi9nfSx0aGlzLlllPS8mIyhcZCspO3wmI3goWzAtOUEtRmEtZl0rKTsvZyx0aGlzLlplPXsiXFxcXCI6L1xcL2csIlxcdCI6L1x0L2csIlxcbiI6L1xuL2csIlxcdTAwQTAiOi9cdTAwQTAvZywiJnF1b3Q7IjovIi9nLCImYXBvczsiOi8nL2csIiZsb3diYXI7IjovXy9nLCImYXN0OyI6L1wqL2csIiZwbHVzOyI6L1wrL2csIiYjMTI2OyI6L34vZ30sdGhpcy5YZT17IjwiOi8mbHQ7L2csIj4iOi8mZ3Q7L2d9LHRoaXMuUWU9L1xcKFtcXGAqX3t9XFtcXSgpIysuIX58LV0pL2csdGhpcy50bj0vWy1cL1xcXiQqKz8uKCl8W1xde31dL2csdGhpcy5lbj0vKFtcIyRcKlxfXC0rIVtcXVwoXClgfj48XC58e31dKS9nLHRoaXMuc249L1xuKFxzKyk/XG4oXHMrKT9cbi9nLHRoaXMubm49L1xuL2csdGhpcy5ybj0vXihbYS16XXsxLDIwfSlcbigoPzpcbj8uKikqKSQvLHRoaXMudW49bmV3IFJlZ0V4cCgiXiguKz8pKD86XFxzKz0oPzooXFxkK3xhdXRvKSg/OngoXFxkK3xhdXRvKSk/KT8pPyQiKSx0aGlzLmxuPS9ccysoPzomcXVvdDsuKj8mcXVvdDt8IlteIl0qInwnW14nXSonKVxzKiQvLHRoaXMuYW49LygsfFwuKShcc3wkKS9nLHRoaXMuaG49L1x1MDAwMS9nLHRoaXMuY249L14od3d3XC4pL2ksdGhpcy5kbj0vW1x4MDAtXHgxRlx4N0ZdL2csdGhpcy5Ebj0vXihbYS16QS1aXVthLXpBLVowLTkrLi1dKilccyo6Lyx0aGlzLnBuPS8mbHQ7KFteXHNAJl0rQFteXHNAJl0rXC5bXlxzQCZdKz8pJmd0Oy9naSx0aGlzLm1uPS8mbHQ7KCg/Omh0dHBzP3xmdHBzP3xmaWxlfG1haWx0b3x0ZWwpOi4qPykmZ3Q7L2dpLHRoaXMuZ249L15bIF17MCwzfVxbKFteXF1dKylcXTpbIFx0XSooXFMrKVteXG5dKlxuPy9naW0sdGhpcy5Gbj0vXFsoW15cXV0rKVxdXFsoW15cXV0qKVxdL2csdGhpcy53bj0vKF58W15cXSFdKVxbKFteXF1bXSspXF0oPyFbKFxbOl0pL2csdGhpcy52bj0vXlsgXXswLDN9KD86Jmd0O3w+KSg/OiB8JCkvLHRoaXMueW49L15bIF17MCwzfSg/OiZndDt8PikgPy8sdGhpcy5ibj0vXHQvZyx0aGlzLkVuPS9bIFx0XSsvZyx0aGlzLkNuPS9bXHJcbl0rL2csdGhpcy5rbj0vXG5bIFx0XSpcbi8sdGhpcy4kbj1bXSx0aGlzLkFuPW51bGwsdGhpcy5Cbj17bGlua3M6e3ByZWZpeDoiKFxcc3w8W148Pl0rXFwvPnw8W15hXVtePD5dKj58XFwofF4pIixzdWZmaXg6IihcXHN8AXw8W148Pl0rXFwvPnw8L1teYV1bXjw+XSo+fFxcKXwkKSJ9LG1hcmtkb3duX3NpbXBsZTp7cHJlZml4OiIoXikiLHN1ZmZpeDoiKCQpIn0sbWFya2Rvd25faW5jbHVkZXM6e3ByZWZpeDoiKFxcc3w8W148Pl0rXFwvPnw8W148Pl0rPnxcXCh8XikiLHN1ZmZpeDoiKFxcc3wufCx8Onw8W148Pl0rXFwvPnxcXCl8JCkifSxtYXJrZG93bl9mb3JtYXR0aW5nOntwcmVmaXg6IihcXHN8PFtePD5dK1xcLz58W1xcKCcnXCLCv8KhXXxeKSIsc3VmZml4OiIifSxtYXJrZG93bl9saXN0OntwcmVmaXg6IiheXFxzKikiLHN1ZmZpeDoiKC4qPykoJCkifX0sdGhpcy54bj1bInRpdGxlIiwibGlzdCIsImNvZGVfaW5saW5lIiwiYmxvY2txdW90ZSIsInRhYmxlIiwiZW1waGFzaXMiXSx0aGlzLmpuPVsiY29kZV9ibG9jayIsImNvZGVfaW5saW5lIl0sdGhpcy5Jbj1bImxpbmtfdGV4dCIsImxpbmtfaW1hZ2UiLCJpbWFnZSIsImZyYW1lIl0sdGhpcy5Tbj1bImh0dHAiLCJodHRwcyIsImZ0cCIsImZ0cHMiLCJmaWxlIiwibWFpbHRvIiwidGVsIl0sdGhpcy5Sbj1bImRlY29kZV9odG1sX2VudGl0aWVzIiwiZXNjYXBlIiwiY29uc2VjdXRpdmVfbGluZXMiLCJtYXJrZG93biIsImF1dG9saW5rcyIsImxpbmtzX3VyaSIsImxpbmtzX2RvbWFpbiIsImVtYWlscyIsInBob25lcyIsInNtaWxleXMiLCJlbW9qaXMiLCJuZXdfbGluZXMiXSx0aGlzLk9uPXtlc2NhcGU6dGhpcy5UbixkZWNvZGVfaHRtbF9lbnRpdGllczp0aGlzLnpuLGNvbnNlY3V0aXZlX2xpbmVzOnRoaXMuUG4sbmV3X2xpbmVzOnRoaXMuTG4sZW1haWxzOnRoaXMuTW4scGhvbmVzOnRoaXMuVW4sbWFya2Rvd246dGhpcy5xbixhdXRvbGlua3M6dGhpcy5WbixsaW5rc19kb21haW46dGhpcy5ObixsaW5rc191cmk6dGhpcy5IbixzbWlsZXlzOnRoaXMuV24sZW1vamlzOnRoaXMuR259LHRoaXMuSm49e21hcmtkb3duX2xpbmtfaW1hZ2U6dGhpcy5LbixtYXJrZG93bl9pbWFnZTp0aGlzLlluLG1hcmtkb3duX2NvZGVfYmxvY2s6dGhpcy5abixtYXJrZG93bl90YWJsZTp0aGlzLlhufSx0aGlzLlFuKCksdGhpcy50cigpfWZvcm1hdCh0LGU9e30scz1bXSl7bGV0IGksXyxuPXQ7Zm9yKGk9MDtpPHRoaXMuUm4ubGVuZ3RoO2krKylfPXRoaXMuUm5baV0scy5pbmNsdWRlcyhfKXx8KG49YmkodGhpcy5PbltfXSx0aGlzKShuLGUpKTtyZXR1cm4gbn1yZXBsYWNlKHQsZT1bXSl7bGV0IHMsaSxfPXQ7Zm9yKHM9MDtzPGUubGVuZ3RoO3MrKylpPXMrMSxfPV8ucmVwbGFjZShgJSR7aX1zYCxlW3NdKTtyZXR1cm4gX31hdHRyaWJ1dGUodCl7cmV0dXJuIHRoaXMuVG4odCx7fSx0aGlzLlplKX1odG1sKHQsZT0hMSl7cmV0dXJuIHRoaXMuVG4odCx7fSwhMD09PWU/dGhpcy5KZTp0aGlzLktlKX1lc2NhcGVfcmVnZXgodCl7cmV0dXJuIHQucmVwbGFjZSh0aGlzLnRuLCJcXCQmIil9c2FuaXRpemVfdXJsKHQpe2lmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4iIjtsZXQgZT10LnJlcGxhY2UodGhpcy5kbiwiIikudHJpbSgpO2lmKCFlKXJldHVybiIiO2lmKGUuc3RhcnRzV2l0aCgiIyIpfHxlLnN0YXJ0c1dpdGgoIi8iKXx8ZS5zdGFydHNXaXRoKCIuLyIpfHxlLnN0YXJ0c1dpdGgoIi4uLyIpKXJldHVybiBlO2lmKCFlLmluY2x1ZGVzKCI6IikpcmV0dXJuIGU7bGV0IHM9ZS5tYXRjaCh0aGlzLkRuKTtpZighcylyZXR1cm4gZTtsZXQgaT1zWzFdLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHRoaXMuU24uaW5jbHVkZXMoaSk/ZToiIn1Ubih0LGU9e30scz1udWxsKXtsZXQgaSxfLG49dCxyPXN8fHRoaXMuS2U7Zm9yKF8gaW4gcilyLmhhc093blByb3BlcnR5KF8pJiYoaT1yW19dLG49bi5yZXBsYWNlKGksXykpO3JldHVybiBufXpuKHQsZT17fSl7cmV0dXJuIHQucmVwbGFjZSh0aGlzLlllLCh0LGUscyk9PntsZXQgaT1lP3BhcnNlSW50KGUsMTApOnBhcnNlSW50KHMsMTYpO3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpfSl9UG4odCxlPXt9KXtyZXR1cm4gdC5yZXBsYWNlKHRoaXMuc24sIlxuXG4iKX1Mbih0LGU9e30pe2xldCBzPXRoaXMucGFyZW50LnRlbXBsYXRlLnJlbmRlcigibmV3X2xpbmUiLHt9LGUpO3JldHVybiB0LnRyaW0oKS5yZXBsYWNlKHRoaXMubm4scyl9TW4odCxlPXt9KXtyZXR1cm4gdGhpcy5lcih0LHRoaXMuc3IuZW1haWwsKHQscyxpLF8pPT5gJHtzfSR7dGhpcy5wYXJlbnQudGVtcGxhdGUucmVuZGVyKCJsaW5rX2VtYWlsIix7ZW1haWw6aSxub19leHRlcm5hbF9saW5rOnRoaXMucGFyZW50LmNvbmZpZy5ydW50aW1lLm5vX2V4dGVybmFsX2xpbmt8fCExfSxlKX0ke199YCl9VW4odCxlPXt9KXtyZXR1cm4gdGhpcy5lcih0LHRoaXMuc3IucGhvbmUsKHQscyxpLF8pPT5gJHtzfSR7dGhpcy5wYXJlbnQudGVtcGxhdGUucmVuZGVyKCJsaW5rX3Bob25lIix7cGhvbmU6aSxub19leHRlcm5hbF9saW5rOnRoaXMucGFyZW50LmNvbmZpZy5ydW50aW1lLm5vX2V4dGVybmFsX2xpbmt8fCExfSxlKX0ke199YCl9cW4odCxlPXt9KXtyZXR1cm4gdD0odD1gXG4ke3R9XG5gKS5yZXBsYWNlKHRoaXMuUWUsKHQsZSk9PmAmIyR7ZS5jaGFyQ29kZUF0KDApfTtgKSx0PXRoaXMuaXIodCksKHQ9dGhpcy5ucih0LGUpKS50cmltKCl9bnIodCxlPXt9KXt0aGlzLiRuPVtdLHRoaXMuQW49bnVsbDtmb3IobGV0IHM9MDtzPHRoaXMucnIubGVuZ3RoO3MrKyl0PXQucmVwbGFjZSh0aGlzLnJyW3NdWzFdLHRoaXMudXIodGhpcy5ycltzXSxlKSk7cmV0dXJuIHRoaXMubHIodCxlKX1scih0LGUpe2xldCBzPXQuc3BsaXQoIlxuIiksaT1bXSxfPTA7Zm9yKDtfPHMubGVuZ3RoOyl7aWYoITE9PT10aGlzLnZuLnRlc3Qoc1tfXSkpe2kucHVzaChzW19dKSxfKys7Y29udGludWV9bGV0IHQ9W107Zm9yKDtfPHMubGVuZ3RoJiYhMD09PXRoaXMudm4udGVzdChzW19dKTspdC5wdXNoKHNbX10ucmVwbGFjZSh0aGlzLnluLCIiKSksXysrO2xldCBuPXRoaXMubnIodC5qb2luKCJcbiIpLGUpLnRyaW0oKTtpLnB1c2godGhpcy5wYXJlbnQudGVtcGxhdGUucmVuZGVyKCJtYXJrZG93bl9ibG9ja3F1b3RlIix7dHlwZTpudWxsLHZhbHVlOm59LGUpKX1yZXR1cm4gaS5qb2luKCJcbiIpfWlyKHQpe2xldCBlPXt9LHM9dC5yZXBsYWNlKHRoaXMuZ24sKHQscyxpKT0+KGVbcy50cmltKCkudG9Mb3dlckNhc2UoKV09aS50cmltKCksIiIpKTtyZXR1cm4gMD09PU9iamVjdC5rZXlzKGUpLmxlbmd0aD90OihzPXMucmVwbGFjZSh0aGlzLkZuLCh0LHMsaSk9PntsZXQgbj1lWyhpLnRyaW0oKXx8cy50cmltKCkpLnRvTG93ZXJDYXNlKCldO3JldHVybiBuP2BbJHtzfV0oJHtufSlgOnR9KSxzPXMucmVwbGFjZSh0aGlzLnduLCh0LHMsaSk9PntsZXQgXz1lW2kudHJpbSgpLnRvTG93ZXJDYXNlKCldO3JldHVybiBfP2Ake3N9WyR7aX1dKCR7X30pYDp0fSkscyl9Tm4odCxlPXt9KXtyZXR1cm4gdGhpcy5lcih0LHRoaXMuc3IuZG9tYWluLCh0LHMsaSxfKT0+YCR7c30ke3RoaXMucGFyZW50LnRlbXBsYXRlLnJlbmRlcigibGlua19kb21haW4iLHtkb21haW5fdmFsdWU6aSxkb21haW5fbmFtZTppLG5vX2V4dGVybmFsX2xpbms6dGhpcy5wYXJlbnQuY29uZmlnLnJ1bnRpbWUubm9fZXh0ZXJuYWxfbGlua3x8ITF9LGUpfSR7X31gKX1Ibih0LGU9e30pe3JldHVybiB0aGlzLmVyKHQsdGhpcy5zci51cmksKHQscyxpLF8pPT57bGV0IG49ITA9PT10aGlzLmNuLnRlc3QoaSk/YGh0dHA6Ly8ke2l9YDppO3JldHVybmAke3N9JHt0aGlzLnBhcmVudC50ZW1wbGF0ZS5yZW5kZXIoImxpbmtfdXJpIix7dXJpX3ZhbHVlOm4sdXJpX25hbWU6aSxub19leHRlcm5hbF9saW5rOnRoaXMucGFyZW50LmNvbmZpZy5ydW50aW1lLm5vX2V4dGVybmFsX2xpbmt8fCExfSxlKX0ke199YH0pfVZuKHQsZT17fSl7cmV0dXJuKHQ9dC5yZXBsYWNlKHRoaXMucG4sKHQscyk9PnRoaXMucGFyZW50LnRlbXBsYXRlLnJlbmRlcigibGlua19lbWFpbCIse2VtYWlsOnMsbm9fZXh0ZXJuYWxfbGluazp0aGlzLnBhcmVudC5jb25maWcucnVudGltZS5ub19leHRlcm5hbF9saW5rfHwhMX0sZSkpKS5yZXBsYWNlKHRoaXMubW4sKHQscyk9PntsZXQgaT10aGlzLnNhbml0aXplX3VybChzKTtyZXR1cm4gaT90aGlzLnBhcmVudC50ZW1wbGF0ZS5yZW5kZXIoImxpbmtfdXJpIix7dXJpX3ZhbHVlOmksdXJpX25hbWU6cyxub19leHRlcm5hbF9saW5rOnRoaXMucGFyZW50LmNvbmZpZy5ydW50aW1lLm5vX2V4dGVybmFsX2xpbmt8fCExfSxlKTp0fSl9V24odCxlPXt9KXtyZXR1cm4gdGhpcy5wYXJlbnQuU21pbGV5cy5wYXJzZSh0KX1Hbih0LGU9e30pe3JldHVybiB0aGlzLnBhcmVudC5FbW9qaXMucGFyc2UodCl9S24odCl7cmV0dXJuIHRoaXMuYXIoInR5cGUiLHQpfVluKHQpe3JldHVybiB0aGlzLmFyKCJ2YWx1ZSIsdCl9Wm4odCl7bGV0IGU9KHQudmFsdWV8fCIiKS5tYXRjaCh0aGlzLnJuKTtlPy5bMV0/KHQudHlwZT1lWzFdLHQudmFsdWU9ZVsyXSk6dC50eXBlPSJub25lIix0LnZhbHVlPSh0LnZhbHVlfHwiIikudHJpbSgpfVhuKHQpe2xldCBlPXQudHlwZS5zcGxpdCgifCIpLHM9ZS5zbGljZSgxLGUubGVuZ3RoLTEpLm1hcCh0PT4odHx8IiIpLnRyaW0oKSksaT10LnZhbHVlLnNwbGl0KCJcbiIpLm1hcCh0PT57bGV0IGU9dC5zcGxpdCgifCIpLGk9ZS5zbGljZSgxLGUubGVuZ3RoLTEpLm1hcCh0PT4odHx8IiIpLnRyaW0oKSksXz1zLmxlbmd0aC1pLmxlbmd0aDtpZigwIT09XylpZihfPDApaT1pLnNsaWNlKDAscy5sZW5ndGgpO2Vsc2UgZm9yKGxldCBzPTA7czxfO3MrKylpLnB1c2goIiIpO3JldHVybiBpfSk7dC50eXBlPXMsdC52YWx1ZT1pfXVyKHQsZT17fSl7cmV0dXJuKHMsaSxfLG4scixvLHUpPT57bGV0IGw9YG1hcmtkb3duXyR7dFswXX1gLGE9IiIsaD0iIixjPXt0eXBlOm51bGwsdmFsdWU6bnVsbCxsZXZlbDowLHVybF9jcmlzcF9pbWFnZTp0aGlzLnBhcmVudC5jb25maWcudXJsLmNyaXNwX2ltYWdlLG5vX2V4dGVybmFsX2xpbms6dGhpcy5wYXJlbnQuY29uZmlnLnJ1bnRpbWUubm9fZXh0ZXJuYWxfbGlua3x8ITF9O2lmKGE9KCJzdHJpbmciPT10eXBlb2YgaT9pOm51bGwpfHwiIixoPSgic3RyaW5nIj09dHlwZW9mIHI/cjpudWxsKXx8IiIsYy50eXBlPV8sYy52YWx1ZT1uLCJsaXN0Ij09PXRbMF0mJihjLmxldmVsPXRoaXMuaHIoYSxvLHUpLGE9YS5yZXBsYWNlKHRoaXMuRW4sIiIpKSx0aGlzLnhuLmluY2x1ZGVzKHRbMF0pJiYic3RyaW5nIj09dHlwZW9mIGMudmFsdWUmJihjLnZhbHVlPWMudmFsdWUudHJpbSgpKSx0aGlzLmpuLmluY2x1ZGVzKHRbMF0pJiYic3RyaW5nIj09dHlwZW9mIGMudmFsdWUmJihjLnZhbHVlPXRoaXMuY3IoYy52YWx1ZSkpLHRoaXMuSW4uaW5jbHVkZXModFswXSkmJiJzdHJpbmciPT10eXBlb2YgYy52YWx1ZSYmKGMudmFsdWU9Yy52YWx1ZS5yZXBsYWNlKHRoaXMubG4sIiIpLGMudmFsdWU9dGhpcy5zYW5pdGl6ZV91cmwoYy52YWx1ZSksIWMudmFsdWUpKXJldHVybiBzO2xldCBkPXRoaXMuSm5bbF18fG51bGw7cmV0dXJuIG51bGwhPT1kJiZiaShkLHRoaXMpKGMpLGAke2F9JHt0aGlzLnBhcmVudC50ZW1wbGF0ZS5yZW5kZXIobCxjLGUpfSR7aH1gfX1ocih0LGUscyl7bGV0IGk9KHR8fCIiKS5yZXBsYWNlKHRoaXMuQ24sIiIpLnJlcGxhY2UodGhpcy5ibiwiICAgICIpLmxlbmd0aDtmb3IoITA9PT0obnVsbD09PXRoaXMuQW58fCJudW1iZXIiIT10eXBlb2YgZXx8ZTx0aGlzLkFufHx0aGlzLmtuLnRlc3QoInN0cmluZyI9PXR5cGVvZiBzP3Muc2xpY2UodGhpcy5BbixlKToiIikpJiYodGhpcy4kbj1bXSk7dGhpcy4kbi5sZW5ndGg+MCYmaTx0aGlzLiRuW3RoaXMuJG4ubGVuZ3RoLTFdOyl0aGlzLiRuLnBvcCgpO3JldHVybigwPT09dGhpcy4kbi5sZW5ndGh8fGk+dGhpcy4kblt0aGlzLiRuLmxlbmd0aC0xXSkmJnRoaXMuJG4ucHVzaChpKSwibnVtYmVyIj09dHlwZW9mIGUmJih0aGlzLkFuPWUrdC5sZW5ndGgpLHRoaXMuJG4ubGVuZ3RoLTF9ZXIodCxlLHMpe2xldCBpPXQubWF0Y2goZSk7aWYoaSlmb3IobGV0IG49MDtuPGkubGVuZ3RoO24rKyl7bGV0IGU9aVtuXS5yZXBsYWNlKHRoaXMuYW4sKHQsZSxzKT0+YAEke2V9JHtzfWApO3Q9dC5yZXBsYWNlKGlbbl0sZSl9cmV0dXJuIHQucmVwbGFjZShlLCh0LGUsaSxfKT0+cyh0LGUsaSxfLnJlcGxhY2UodGhpcy5obiwiIikpKX1jcih0KXtsZXQgZT10O3JldHVybiBlPXRoaXMuVG4oZSx7fSx0aGlzLlhlKSxlPWUucmVwbGFjZSh0aGlzLmVuLHQ9PmAmIyR7dC5jaGFyQ29kZUF0KDApfTtgKSxlfWFyKHQsZSl7bGV0IHM9KGVbdF18fCIiKS5tYXRjaCh0aGlzLnVuKTtpZihzPy5bMV0mJnM/LlsyXSYmcz8uWzNdKXtlW3RdPXNbMV07bGV0IGk9c1syXSxfPXNbM118fGk7aSYmImF1dG8iIT09aSYmKGUud2lkdGg9aSksXyYmImF1dG8iIT09XyYmKGUuaGVpZ2h0PV8pfX1kcih0LGU9ImdpIixzPXt9KXtyZXR1cm4gbmV3IFJlZ0V4cChgJHtzLnByZWZpeHx8IiJ9JHt0fSR7cy5zdWZmaXh8fCIifWAsZSl9UW4oKXt0aGlzLnNyPXtlbWFpbDp0aGlzLmRyKCIoW1xcd1xcLl8tXStAW1xcd1xcLlxcL18tXSspIiwiZ2kiLHRoaXMuQm4ubGlua3MpLHBob25lOnRoaXMuZHIoIihcXCtbMC05XXsxLDN9WyBcXChcXClcXC0wLTldezcsMjB9KSIsImdpIix0aGlzLkJuLmxpbmtzKSxkb21haW46dGhpcy5kcihbIigoPzpbXjw+XFwoXFwpXFxzLEBdKykoPzpcXC4oPzoiLHRoaXMuR2UubWFwKGJpKHRoaXMuZXNjYXBlX3JlZ2V4LHRoaXMpKS5qb2luKCJ8IiksIikpKSJdLmpvaW4oIiIpLCJnaW0iLHRoaXMuQm4ubGlua3MpLHVyaTp0aGlzLmRyKCIoKD86KD86KD86aHR0cHM/fGZ0cHM/fGZpbGUpOil8KD86d3d3XFwuKSkoPzpbXjw+XFwoXFwpXFxzAV0rKSkiLCJnaW0iLHRoaXMuQm4ubGlua3MpfX10cigpe3RoaXMucnI9W1siY29kZV9ibG9jayIsdGhpcy5kcigiKGB7MiwzfSkoKD86XFxuKyk/KD86KD8hXFwyKS4oPzpcXG4rKT8pKikoPzpcXDIpIiwiZ2kiLHtwcmVmaXg6Iig/PCEoPzomZ3Q7fD4pWyBcXHRdezAsMTB9KShcXHN8PFtePD5dK1xcLz58XikiLHN1ZmZpeDoiKFxcc3xcXC58LHw6fCQpIn0pXSxbImNvZGVfaW5saW5lIix0aGlzLmRyKCIoYHsxfSkoW15gXSopKD86XFwyKSIsImdpbSIse3ByZWZpeDoiKFxcc3w8W148Pl0rXFwvPnxcXCh8XikiLHN1ZmZpeDoiKFxcc3xcXC58LHw6fFxcKXw8XFwvW148Pl0rPnwkKSJ9KV0sWyJ0aXRsZSIsdGhpcy5kcigiKCN7MX0pKD86W1xcc10rKShbXiNdLiopIiwiZ2ltIix0aGlzLkJuLm1hcmtkb3duX3NpbXBsZSldLFsidGl0bGUiLHRoaXMuZHIoIigjezJ9KSg/OltcXHNdKykoW14jXS4qKSIsImdpbSIsdGhpcy5Cbi5tYXJrZG93bl9zaW1wbGUpXSxbInRpdGxlIix0aGlzLmRyKCIoI3szfSkoPzpbXFxzXSspKFteI10uKikiLCJnaW0iLHRoaXMuQm4ubWFya2Rvd25fc2ltcGxlKV0sWyJ0aXRsZSIsdGhpcy5kcigiKCN7NH0pKD86W1xcc10rKShbXiNdLiopIiwiZ2ltIix0aGlzLkJuLm1hcmtkb3duX3NpbXBsZSldLFsidGl0bGUiLHRoaXMuZHIoIigjezV9KSg/OltcXHNdKykoW14jXS4qKSIsImdpbSIsdGhpcy5Cbi5tYXJrZG93bl9zaW1wbGUpXSxbInRpdGxlIix0aGlzLmRyKCIoI3s2fSkoPzpbXFxzXSspKFteI10uKikiLCJnaW0iLHRoaXMuQm4ubWFya2Rvd25fc2ltcGxlKV0sWyJsaW5rX2ltYWdlIix0aGlzLmRyKCJcXFshXFxbKD86W15cXFtdKilcXF1cXCgoW15cXCldKylcXClcXF1cXCgoW15cXCldKylcXCkiLCJnaW0iLHRoaXMuQm4ubWFya2Rvd25faW5jbHVkZXMpXSxbImltYWdlIix0aGlzLmRyKCIhXFxbKFteXFxbXSopXFxdXFwoKFteXFwpXSspXFwpIiwiZ2ltIix0aGlzLkJuLm1hcmtkb3duX2luY2x1ZGVzKV0sWyJsaW5rX3RleHQiLHRoaXMuZHIoIlxcWyhbXlxcW10rKVxcXVxcKChbXlxcKV0rKVxcKSIsImdpbSIse3ByZWZpeDoiKFxcc3w8W148Pl0rXFwvPnw8W15hXVtePD5dKj58XFwofF4pIixzdWZmaXg6IihcXHN8LnwsfDp8PFtePD5dK1xcLz58PC9bXmFdW148Pl0qPnxcXCl8JCkifSldLFsieW91dHViZSIsdGhpcy5kcigiXFwkXFx7eW91dHViZVxcfVxcWyhbXlxcW10qKVxcXVxcKChbXlxcKV0rKVxcKSIsImdpbSIsdGhpcy5Cbi5tYXJrZG93bl9pbmNsdWRlcyldLFsidmltZW8iLHRoaXMuZHIoIlxcJFxce3ZpbWVvXFx9XFxbKFteXFxbXSopXFxdXFwoKFteXFwpXSspXFwpIiwiZ2ltIix0aGlzLkJuLm1hcmtkb3duX2luY2x1ZGVzKV0sWyJkYWlseW1vdGlvbiIsdGhpcy5kcigiXFwkXFx7ZGFpbHltb3Rpb25cXH1cXFsoW15cXFtdKilcXF1cXCgoW15cXCldKylcXCkiLCJnaW0iLHRoaXMuQm4ubWFya2Rvd25faW5jbHVkZXMpXSxbImZyYW1lIix0aGlzLmRyKCJcXCRcXHtmcmFtZVxcfVxcWyhbXlxcW10qKVxcXVxcKChbXlxcKV0rKVxcKSIsImdpbSIsdGhpcy5Cbi5tYXJrZG93bl9pbmNsdWRlcyldLFsibGluZSIsdGhpcy5kcigiKFxcKikoWyBcXHRdKig/OlxcKlsgXFx0XSopezIsfSkiLCJnaW0iLHtwcmVmaXg6IiheWyBdezAsM30pIixzdWZmaXg6IigkKSJ9KV0sWyJsaW5lIix0aGlzLmRyKCIoXykoWyBcXHRdKig/Ol9bIFxcdF0qKXsyLH0pIiwiZ2ltIix7cHJlZml4OiIoXlsgXXswLDN9KSIsc3VmZml4OiIoJCkifSldLFsiYm9sZCIsdGhpcy5kcigiKFxcKlxcKikoLio/KSg/OlxcMikiLCJnaW0iLHRoaXMuQm4ubWFya2Rvd25fZm9ybWF0dGluZyldLFsidW5kZXJsaW5lIix0aGlzLmRyKCIoX18pKC4qPykoPzpcXDIpIiwiZ2ltIix0aGlzLkJuLm1hcmtkb3duX2Zvcm1hdHRpbmcpXSxbIml0YWxpYyIsdGhpcy5kcigiKFxcKikoXFxTKD86Lio/XFxTKT8pKD86XFwyKSIsImdpbSIsdGhpcy5Cbi5tYXJrZG93bl9mb3JtYXR0aW5nKV0sWyJpdGFsaWMiLHRoaXMuZHIoIihfKSguKj8pKD86XFwyKSIsImdpbSIsdGhpcy5Cbi5tYXJrZG93bl9mb3JtYXR0aW5nKV0sWyJkZWxldGUiLHRoaXMuZHIoIihcXH5cXH4pKC4qPykoPzpcXDIpIiwiZ2ltIix0aGlzLkJuLm1hcmtkb3duX2Zvcm1hdHRpbmcpXSxbImhpZ2hsaWdodCIsdGhpcy5kcigiKFxcK1xcKykoLio/KSg/OlxcMikiLCJnaW0iLHRoaXMuQm4ubWFya2Rvd25fZm9ybWF0dGluZyldLFsibGlzdCIsdGhpcy5kcigiKFxcKikoPzpbXFxzXSspIiwiZ2ltIix0aGlzLkJuLm1hcmtkb3duX2xpc3QpXSxbImxpc3QiLHRoaXMuZHIoIig/OihbXFxkXXsxLDJ9KVxcLikoPzpbXFxzXSspIiwiZ2ltIix0aGlzLkJuLm1hcmtkb3duX2xpc3QpXSxbInRhYmxlIix0aGlzLmRyKCIoPzooXFx8KD86W15cXHxcXHJcXG5dezAsOTk5fVxcfCl7MSwxOX0pKD86ICpcXG4pKD86XFx8KD86ICpcXC17MSw5OX0gKlxcfCl7MSwxOX0pKSgoPzogKlxcblxcfCg/OlteXFx8XFxyXFxuXXswLDk5OX1cXHwpezEsMTl9KXsxLDQ5fSkiLCJnaSIse3ByZWZpeDoiKFxcc3xeKSIsc3VmZml4OiIoXFxzfCQpIn0pXSxbImVtcGhhc2lzIix0aGlzLmRyKCIoXFx8ezF9KSg/OltcXHNdKykoW15cXHxdLiopIiwiZ2ltIix0aGlzLkJuLm1hcmtkb3duX3NpbXBsZSldLFsiZW1waGFzaXMiLHRoaXMuZHIoIihcXHx7Mn0pKD86W1xcc10rKShbXlxcfF0uKikiLCJnaW0iLHRoaXMuQm4ubWFya2Rvd25fc2ltcGxlKV0sWyJlbXBoYXNpcyIsdGhpcy5kcigiKFxcfHszfSkoPzpbXFxzXSspKFteXFx8XS4qKSIsImdpbSIsdGhpcy5Cbi5tYXJrZG93bl9zaW1wbGUpXSxbImludGVycG9sYXRlIix0aGlzLmRyKCcoPzpcXHtcXHtcXHMqKShbXlxce1xcfVxcfFxcc10rKSg/OlxccypcXHxcXHMqKD86KD86JnF1b3Q7KXwiKShbXiYiXSopKD86KD86JnF1b3Q7KXwiKSk/KD86XFxzKlxcfVxcfSknLCJnaW0iLHtwcmVmaXg6IihcXHN8XFwofF4pIixzdWZmaXg6IiJ9KV0sWyJsaW5lIix0aGlzLmRyKCIoLXszLH0pIiwiZ2ltIix7cHJlZml4OiIoXikoXFxzKyk/IixzdWZmaXg6IihcXHN8JCkifSldLFsiY29sb3IiLHRoaXMuZHIoIlxcJFxce2NvbG9yXFx9XFxbKCNbMC05QS1GYS1mXXs2fSlcXF1cXCgoW15cXCldKylcXCkiLCJnaW0iLHRoaXMuQm4ubWFya2Rvd25faW5jbHVkZXMpXV19fSx4aT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnBhcmVudD10LHRoaXMuRHI9L14oXFMrKSgoPzpccyspKC4rKSk/JC99cGFyc2VfZmlyc3RfbmFtZSh0KXtyZXR1cm4gdGhpcy5wcih0LDEpfXBhcnNlX2xhc3RfbmFtZSh0KXtyZXR1cm4gdGhpcy5wcih0LDMpfXByKHQsZSl7bGV0IHM9KHR8fCIiKS50cmltKCk7aWYocyl7bGV0IHQ9cy5tYXRjaCh0aGlzLkRyKTt0Py5bZV0mJihzPXRbZV0udHJpbSgpKX1yZXR1cm4gc319LGppPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMucGFyZW50PXQsdGhpcy5fcj17dHlwZToibm9uZSIsZGVjaXNpb246ImluZGV4In19ZXZhbHVhdGVfZmlsdGVycyh0LGU9IiIscz0iIil7Zm9yKGxldCBpPTA7aTx0Lmxlbmd0aDtpKyspe2xldCBfPXRbaV07c3dpdGNoKF8udHlwZSl7Y2FzZSJhbnkiOnJldHVybiBfO2Nhc2UidXJsOmV4YWN0IjpjYXNlInVybDpwcmVmaXgiOmNhc2UidXJsOmNvbnRhaW5zIjp7bGV0IHQ9KF8udmFsdWV8fCIiKS50b0xvd2VyQ2FzZSgpLHM9ZS50b0xvd2VyQ2FzZSgpLGk9Xy50eXBlLnNwbGl0KCI6IilbMV0sbj0hMTtpZihuPSJjb250YWlucyI9PT1pP3MuaW5jbHVkZXModCk6InByZWZpeCI9PT1pP3Muc3RhcnRzV2l0aCh0KTpzPT09dCYmITAsITA9PT1uKXJldHVybiBfO2JyZWFrfWNhc2UibGFuZ3VhZ2UiOmlmKHM9PT1fLnZhbHVlKXJldHVybiBfO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIGZpbHRlciBydWxlIGltcGxlbWVudGF0aW9uIGZvciB0eXBlOiAnJHtfLnR5cGV9J2ApfX1yZXR1cm4gdGhpcy5fcn19LElpPW5ldyBjbGFzc3tpbml0KHQpe3RoaXMubXIodCksdGhpcy5TbWlsZXlzPW5ldyBraSh0aGlzKSx0aGlzLkVtb2ppcz1uZXcgJGkodGhpcyksdGhpcy5QYXJzZT1uZXcgQmkodGhpcyksdGhpcy5OYW1lPW5ldyB4aSh0aGlzKSx0aGlzLlBhZ2U9bmV3IGppKHRoaXMpfW1yKHQpe3Q/LnRlbXBsYXRlJiYodGhpcy50ZW1wbGF0ZT10LnRlbXBsYXRlKSx0Py5jb25maWcmJih0aGlzLmNvbmZpZz10LmNvbmZpZyl9fTt2YXIgU2ksUmksT2k9L14oPzpccyopKD86KD86amF2YXNjcmlwdHx2YnNjcmlwdCk6KS9pLFRpPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaW5pdCgpfWluaXQoKXtJaS5pbml0KHt0ZW1wbGF0ZTp7cmVuZGVyOih0LGUpPT57bGV0IHM9dGhpc1tgcmVuZGVyXyR7dH1gXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgcylyZXR1cm4gZnVuY3Rpb24odCxlLC4uLnMpe3JldHVybiB0LmJpbmQmJi9cW25hdGl2ZSBjb2RlXF0vLnRlc3QodC5iaW5kLnRvU3RyaW5nKCkpP3QuYmluZChlLC4uLnMpOmZ1bmN0aW9uKC4uLmkpe3JldHVybiB0LmFwcGx5KGUsWy4uLnMsLi4uaV0pfX0ocyx0aGlzKShlKTt0aHJvdyBuZXcgRXJyb3IoYFJlbmRlciBzZXJ2aWNlIGlzIG1pc3NpbmcgZm9yOiAke3R9YCl9fSxjb25maWc6e3VybDp7Y3Jpc3BfaW1hZ2U6TWUuVVJMX0lNQUdFfSxydW50aW1lOnt9fX0pfXBhcnNlKCl7cmV0dXJuIElpLlBhcnNlfW5hbWUoKXtyZXR1cm4gSWkuTmFtZX1zbWlsZXlzKCl7cmV0dXJuIElpLlNtaWxleXN9cGFnZSgpe3JldHVybiBJaS5QYWdlfWh0bWwodCl7cmV0dXJuIHRoaXMucGFyc2UoKS5odG1sKHQpfWF0dHJpYnV0ZSh0KXtyZXR1cm4gdGhpcy5wYXJzZSgpLmF0dHJpYnV0ZSh0KX1sb3dlcih0KXtyZXR1cm4odHx8IiIpLnRvTG93ZXJDYXNlKCl9ZmlsdGVyTGlua1NhZmUodCl7bGV0IGU9IiMiO3JldHVybiB0JiYhMT09PU9pLnRlc3QodCkmJihlPXQpLGV9Z2V0TGlua1RhcmdldCgpe3JldHVybiEwPT09d3UuYmFzZS5ydW50aW1lPy5tb2JpbGVfc2RrPyIiOiJfYmxhbmsifXJlbmRlcl9uZXdfbGluZSgpe3JldHVybic8YnIgY2xhc3M9ImNjLXVvbG51IiAvPid9cmVuZGVyX2xpbmtfZW1haWwodCl7bGV0IGU9dGhpcy5nZXRMaW5rVGFyZ2V0KCk7cmV0dXJuYDxhIGNsYXNzPSJjYy0xaDB5eCBjYy1nMzFrcCIgZGF0YS1lbWFpbD0iJHt0aGlzLmF0dHJpYnV0ZSh0LmVtYWlsKX0iIGhyZWY9Im1haWx0bzoke3QuZW1haWx9ImArKGU/YCB0YXJnZXQ9IiR7ZX0iYDoiIikrYCByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPiR7dC5lbWFpbH08L2E+YH1yZW5kZXJfbGlua19waG9uZSh0KXtsZXQgZT10aGlzLmdldExpbmtUYXJnZXQoKTtyZXR1cm5gPGEgY2xhc3M9ImNjLTFoMHl4IGNjLTF4bzJpIiBocmVmPSJ0ZWw6JHt0LnBob25lfSJgKyhlP2AgdGFyZ2V0PSIke2V9ImA6IiIpK2AgcmVsPSJub29wZW5lciBub3JlZmVycmVyIj4ke3QucGhvbmV9PC9hPmB9cmVuZGVyX2xpbmtfdXJpKHQpe2xldCBlPXRoaXMuZ2V0TGlua1RhcmdldCgpO3JldHVybmA8YSBjbGFzcz0iY2MtMWgweXggY2MtMXZwa24iIGhyZWY9IiR7dC51cmlfdmFsdWV9ImArKGU/YCB0YXJnZXQ9IiR7ZX0iYDoiIikrYCByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPiR7dC51cmlfbmFtZX08L2E+YH1yZW5kZXJfbGlua19kb21haW4odCl7bGV0IGU9dGhpcy5nZXRMaW5rVGFyZ2V0KCk7cmV0dXJuYDxhIGNsYXNzPSJjYy0xaDB5eCBjYy1udG1vaiIgaHJlZj0iaHR0cDovLyR7dC5kb21haW5fdmFsdWV9LyIgcmVsPSJub29wZW5lciBub3JlZmVycmVyImArKGU/YCB0YXJnZXQ9IiR7ZX0iYDoiIikrYD4ke3QuZG9tYWluX25hbWV9PC9hPmB9cmVuZGVyX21hcmtkb3duX2Jsb2NrcXVvdGUodCl7cmV0dXJuYDxzcGFuIGNsYXNzPSJjYy0xZ2V1ZCBjYy0xMHhnZiI+JHt0LnZhbHVlfTwvc3Bhbj5gfXJlbmRlcl9tYXJrZG93bl90YWJsZSh0KXtyZXR1cm4nPGRpdiBjbGFzcz0iY2MtMWdldWQgY2MteGF5OTQiPjx0YWJsZSBjbGFzcz0iY2MtMWdldWQgY2MtMTIxNXIiPjx0aGVhZD48dHI+Jyt0LnR5cGUubWFwKHQ9PmA8dGg+JHt0fTwvdGg+YCkuam9pbigiIikrIjwvdHI+PC90aGVhZD48dGJvZHk+Iit0LnZhbHVlLm1hcCh0PT4iPHRyPiIrdC5tYXAodD0+YDx0ZD4ke3R9PC90ZD5gKS5qb2luKCIiKSsiPC90cj4iKS5qb2luKCIiKSsiPC90Ym9keT48L3RhYmxlPjwvZGl2PiJ9cmVuZGVyX21hcmtkb3duX2ludGVycG9sYXRlKHQpe3JldHVybmA8c3BhbiBjbGFzcz0iY2MtMWdldWQgY2MtcnU1bDciPnt7ICR7dC50eXBlfSR7dC52YWx1ZT8nIHwgIicrdC52YWx1ZSsnIic6IiJ9IH19PC9zcGFuPmB9cmVuZGVyX21hcmtkb3duX2NvbG9yKHQpe3JldHVybmA8c3BhbiBjbGFzcz0iY2MtMWdldWQgY2MtMTg0cnkiIHN0eWxlPSJjb2xvcjogJHt0LnR5cGV9OyI+JHt0LnZhbHVlfTwvc3Bhbj5gfXJlbmRlcl9tYXJrZG93bl9ib2xkKHQpe3JldHVybmA8c3BhbiBjbGFzcz0iY2MtMWdldWQgY2MtMXIzZ2IgY2MtMTBjcXMiPiR7dC52YWx1ZX08L3NwYW4+YH1yZW5kZXJfbWFya2Rvd25fY29kZV9pbmxpbmUodCl7cmV0dXJuYDxzcGFuIGNsYXNzPSJjYy0xZ2V1ZCBjYy1rbWlrbSBjYy0xNmJldSBjYy0xbWNpeSI+JHt0LnZhbHVlfTwvc3Bhbj5gfXJlbmRlcl9tYXJrZG93bl9jb2RlX2Jsb2NrKHQpe3JldHVybmA8Y29kZSBjbGFzcz0iY2MtMWdldWQgY2Mta21pa20gY2MtMWRxYnUgY2MtMW1jaXkiJHt0LnR5cGU/YCBkYXRhLWxhbmd1YWdlPSIke3RoaXMuYXR0cmlidXRlKHQudHlwZSl9ImA6IiJ9PiR7dC52YWx1ZX08L2NvZGU+YH1yZW5kZXJfbWFya2Rvd25fZGVsZXRlKHQpe3JldHVybmA8c3BhbiBjbGFzcz0iY2MtMWdldWQgY2MtZGg5YXUiPiR7dC52YWx1ZX08L3NwYW4+YH1yZW5kZXJfbWFya2Rvd25faGlnaGxpZ2h0KHQpe3JldHVybmA8c3BhbiBjbGFzcz0iY2MtMWdldWQgY2MtMWZoYjEiPiR7dC52YWx1ZX08L3NwYW4+YH1yZW5kZXJfbWFya2Rvd25faW1hZ2UodCl7cmV0dXJuYDxzcGFuIGNsYXNzPSJjYy0xZ2V1ZCBjYy0xNHQ5MiIgZGF0YS1zaG93LXByZXZpZXctdXJsPSIke3RoaXMuYXR0cmlidXRlKHQudmFsdWUpfSI+PGltZyBzcmM9IiR7dC51cmxfY3Jpc3BfaW1hZ2V9L3Byb2Nlc3Mvb3JpZ2luYWwvP3VybD0ke2VuY29kZVVSSUNvbXBvbmVudCh0LnZhbHVlKX0iIGFsdD0iJHt0aGlzLmF0dHJpYnV0ZSh0LnR5cGUpfSIgLz48L3NwYW4+YH1yZW5kZXJfbWFya2Rvd25faXRhbGljKHQpe3JldHVybmA8c3BhbiBjbGFzcz0iY2MtMWdldWQgY2MtMW82MzEiPiR7dC52YWx1ZX08L3NwYW4+YH1yZW5kZXJfbWFya2Rvd25fdW5kZXJsaW5lKHQpe3JldHVybmA8c3BhbiBjbGFzcz0iY2MtMWdldWQgY2MtMTFiamciPiR7dC52YWx1ZX08L3NwYW4+YH1yZW5kZXJfbWFya2Rvd25fbGluZSgpe3JldHVybic8c3BhbiBjbGFzcz0iY2MtMWdldWQgY2MtOTVsd3MiPjwvc3Bhbj4nfXJlbmRlcl9tYXJrZG93bl9saW5rX3RleHQodCl7bGV0IGU9dGhpcy5nZXRMaW5rVGFyZ2V0KCk7cmV0dXJuYDxhIGNsYXNzPSJjYy0xZ2V1ZCBjYy0xbzV5YiBjYy0xMnpobSIgaHJlZj0iJHt0aGlzLmF0dHJpYnV0ZSh0aGlzLmZpbHRlckxpbmtTYWZlKHQudmFsdWUpKX0iYCsoZT9gIHRhcmdldD0iJHt0aGlzLmF0dHJpYnV0ZShlKX0iYDoiIikrYCByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPiR7dC50eXBlfTwvYT5gfXJlbmRlcl9tYXJrZG93bl9saW5rX2ltYWdlKHQpe2xldCBlPXRoaXMuZ2V0TGlua1RhcmdldCgpO3JldHVybmA8YSBjbGFzcz0iY2MtMWdldWQgY2MtMW81eWIgY2MtM3YyZTIiIGhyZWY9IiR7dGhpcy5hdHRyaWJ1dGUodGhpcy5maWx0ZXJMaW5rU2FmZSh0LnZhbHVlKSl9ImArKGU/YCB0YXJnZXQ9IiR7dGhpcy5hdHRyaWJ1dGUoZSl9ImA6IiIpK2AgcmVsPSJub29wZW5lciBub3JlZmVycmVyIj48c3BhbiBjbGFzcz0iY2MtMWdldWQgY2MtMTR0OTIiPjxpbWcgc3JjPSIke3QudXJsX2NyaXNwX2ltYWdlfS9wcm9jZXNzL29yaWdpbmFsLz91cmw9JHtlbmNvZGVVUklDb21wb25lbnQodC50eXBlKX0iIGFsdD0iIiAvPjwvc3Bhbj48L2E+YH1yZW5kZXJfbWFya2Rvd25fbGlzdCh0KXtyZXR1cm5gPHNwYW4gY2xhc3M9ImNjLTFnZXVkIGNjLXBxNjZ6IiBkYXRhLXR5cGU9IiR7dGhpcy5hdHRyaWJ1dGUodC50eXBlKX0iJHt0LmxldmVsP2AgZGF0YS1sZXZlbD0iJHt0LmxldmVsfSJgOiIifT4ke3QudmFsdWV9PC9zcGFuPmB9cmVuZGVyX21hcmtkb3duX3RpdGxlKHQpe3JldHVybmA8c3BhbiBjbGFzcz0iY2MtMWdldWQgY2MtaDZ5MXkgY2MtMTBjcXMiIGRhdGEtdHlwZT0iJHt0aGlzLmF0dHJpYnV0ZSh0LnR5cGUpfSI+JHt0LnZhbHVlfTwvc3Bhbj5gfXJlbmRlcl9tYXJrZG93bl9lbXBoYXNpcyh0KXtyZXR1cm5gPHNwYW4gY2xhc3M9ImNjLTFnZXVkIGNjLTduYXc1IGNjLTEwY3FzIiBkYXRhLXR5cGU9IiR7dGhpcy5hdHRyaWJ1dGUodC50eXBlKX0iPiR7dC52YWx1ZX08L3NwYW4+YH1yZW5kZXJfbWFya2Rvd25feW91dHViZSh0KXtsZXQgZT1gaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtlbmNvZGVVUklDb21wb25lbnQodC52YWx1ZSl9P2F1dG9wbGF5PTEmcmVsPTBgLHM9ZW5jb2RlVVJJQ29tcG9uZW50KGBodHRwczovL2ltZy55b3V0dWJlLmNvbS92aS8ke2VuY29kZVVSSUNvbXBvbmVudCh0LnZhbHVlKX0vaHFkZWZhdWx0LmpwZ2ApLGk9dGhpcy5nZXRMaW5rVGFyZ2V0KCk7cmV0dXJuYDxhIGNsYXNzPSJjYy0xZ2V1ZCBjYy0xdXh6diBjYy15N3FhdyIgaHJlZj0iJHtlfSJgKyhpP2AgdGFyZ2V0PSIke3RoaXMuYXR0cmlidXRlKGkpfSJgOiIiKStgIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI+PHNwYW4gY2xhc3M9ImNjLTE3bThnIGNjLWtnMWRwIGNjLXFld3pnIGNjLTFnaXIwIj48aW1nIHNyYz0iJHt0LnVybF9jcmlzcF9pbWFnZX0vcHJvY2Vzcy9yZXNpemUvP3VybD0ke3N9JndpZHRoPTk2MCZoZWlnaHQ9OTYwIiBhbHQ9IiR7dGhpcy5hdHRyaWJ1dGUodC50eXBlKX0iIC8+PC9zcGFuPjwvYT5gfXJlbmRlcl9tYXJrZG93bl92aW1lbyh0KXtsZXQgZT1gaHR0cHM6Ly92aW1lby5jb20vJHtlbmNvZGVVUklDb21wb25lbnQodC52YWx1ZSl9P2F1dG9wbGF5PTFgLHM9dGhpcy5nZXRMaW5rVGFyZ2V0KCk7cmV0dXJuYDxhIGNsYXNzPSJjYy0xaDB5eCBjYy0xdnBrbiIgaHJlZj0iJHtlfSJgKyhzP2AgdGFyZ2V0PSIke3RoaXMuYXR0cmlidXRlKHMpfSJgOiIiKStgIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI+JHt0LnR5cGV8fGV9PC9hPmB9cmVuZGVyX21hcmtkb3duX2RhaWx5bW90aW9uKHQpe2xldCBlPWBodHRwczovL3d3dy5kYWlseW1vdGlvbi5jb20vZW1iZWQvdmlkZW8vJHtlbmNvZGVVUklDb21wb25lbnQodC52YWx1ZSl9YCxzPWVuY29kZVVSSUNvbXBvbmVudChgaHR0cHM6Ly93d3cuZGFpbHltb3Rpb24uY29tL3RodW1ibmFpbC92aWRlby8ke2VuY29kZVVSSUNvbXBvbmVudCh0LnZhbHVlKX1gKSxpPXRoaXMuZ2V0TGlua1RhcmdldCgpO3JldHVybmA8YSBjbGFzcz0iY2MtMWdldWQgY2MtMXV4enYgY2Mta2kyajciIGhyZWY9IiR7ZX0iYCsoaT9gIHRhcmdldD0iJHt0aGlzLmF0dHJpYnV0ZShpKX0iYDoiIikrYCByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPjxzcGFuIGNsYXNzPSJjYy0xN204ZyBjYy02aTM1NyBjYy1xZXd6ZyBjYy0xZ2lyMCI+PGltZyBzcmM9IiR7dC51cmxfY3Jpc3BfaW1hZ2V9L3Byb2Nlc3MvcmVzaXplLz91cmw9JHtzfSZ3aWR0aD0zMjAmaGVpZ2h0PTI0MCIgYWx0PSIke3RoaXMuYXR0cmlidXRlKHQudHlwZSl9IiAvPjwvc3Bhbj48L2E+YH1yZW5kZXJfbWFya2Rvd25fZnJhbWUodCl7bGV0IGU9dGhpcy5nZXRMaW5rVGFyZ2V0KCk7cmV0dXJuYDxhIGNsYXNzPSJjYy0xaDB5eCBjYy0xdnBrbiIgaHJlZj0iJHt0aGlzLmF0dHJpYnV0ZSh0aGlzLmZpbHRlckxpbmtTYWZlKHQudmFsdWUpKX0iYCsoZT9gIHRhcmdldD0iJHt0aGlzLmF0dHJpYnV0ZShlKX0iYDoiIikrYCByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPiR7dC50eXBlfHx0LnZhbHVlfTwvYT5gfXJlbmRlcl9zbWlsZXkodCl7cmV0dXJuYDxzcGFuIGNsYXNzPSJjYy1zaHlvZCIgZGF0YS1zaXplPSIke3RoaXMuYXR0cmlidXRlKHQuc2l6ZSl9IiBkYXRhLW5hbWU9IiR7dGhpcy5hdHRyaWJ1dGUodC5uYW1lKX0iPjwvc3Bhbj5gfXJlbmRlcl9lbW9qaSh0KXtyZXR1cm5gPHNwYW4gY2xhc3M9ImNjLWtqcnNyIiBkYXRhLXNpemU9IiR7dGhpcy5hdHRyaWJ1dGUodC5zaXplKX0iPiR7dC5uYW1lfTwvc3Bhbj5gfX07ZnVuY3Rpb24gemkodCxlLC4uLnMpe3JldHVybiB0LmJpbmQmJi9cW25hdGl2ZSBjb2RlXF0vLnRlc3QodC5iaW5kLnRvU3RyaW5nKCkpP3QuYmluZChlLC4uLnMpOmZ1bmN0aW9uKC4uLmkpe3JldHVybiB0LmFwcGx5KGUsWy4uLnMsLi4uaV0pfX1mdW5jdGlvbiBQaSh0KXtyZXR1cm4gdCYmdC50JiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCwiZGVmYXVsdCIpP3QuZGVmYXVsdDp0fXZhciBMaT1QaShmdW5jdGlvbigpe2lmKFJpKXJldHVybiBTaTtSaT0xO3ZhciB0PS9eKD86KD8hW146QF0rOlteOkBcL10qQCkoaHR0cHxodHRwc3x3c3x3c3MpOlwvXC8pPygoPzooKFteOkBdKikoPzo6KFteOkBdKikpPyk/QCk/KCg/OlthLWYwLTldezAsNH06KXsyLDd9W2EtZjAtOV17MCw0fXxbXjpcLz8jXSopKD86OihcZCopKT8pKCgoXC8oPzpbXj8jXSg/IVtePyNcL10qXC5bXj8jXC8uXSsoPzpbPyNdfCQpKSkqXC8/KT8oW14/I1wvXSopKSg/Olw/KFteI10qKSk/KD86IyguKikpPykvLGU9WyJzb3VyY2UiLCJwcm90b2NvbCIsImF1dGhvcml0eSIsInVzZXJJbmZvIiwidXNlciIsInBhc3N3b3JkIiwiaG9zdCIsInBvcnQiLCJyZWxhdGl2ZSIsInBhdGgiLCJkaXJlY3RvcnkiLCJmaWxlIiwicXVlcnkiLCJhbmNob3IiXTtyZXR1cm4gU2k9ZnVuY3Rpb24ocyl7dmFyIGksbixyPXMsbz1zLmluZGV4T2YoIlsiKSx1PXMuaW5kZXhPZigiXSIpOy0xIT1vJiYtMSE9dSYmKHM9cy5zdWJzdHJpbmcoMCxvKStzLnN1YnN0cmluZyhvLHUpLnJlcGxhY2UoLzovZywiOyIpK3Muc3Vic3RyaW5nKHUscy5sZW5ndGgpKTtmb3IodmFyIGwsYSxoPXQuZXhlYyhzfHwiIiksYz17fSxkPTE0O2QtLTspY1tlW2RdXT1oW2RdfHwiIjtyZXR1cm4tMSE9byYmLTEhPXUmJihjLnNvdXJjZT1yLGMuaG9zdD1jLmhvc3Quc3Vic3RyaW5nKDEsYy5ob3N0Lmxlbmd0aC0xKS5yZXBsYWNlKC87L2csIjoiKSxjLmF1dGhvcml0eT1jLmF1dGhvcml0eS5yZXBsYWNlKCJbIiwiIikucmVwbGFjZSgiXSIsIiIpLnJlcGxhY2UoLzsvZywiOiIpLGMuaXB2NnVyaT0hMCksYy5wYXRoTmFtZXM9KG49KGk9Yy5wYXRoKS5yZXBsYWNlKC9cL3syLDl9L2csIi8iKS5zcGxpdCgiLyIpLCIvIiE9aS5zdWJzdHIoMCwxKSYmMCE9PWkubGVuZ3RofHxuLnNwbGljZSgwLDEpLCIvIj09aS5zdWJzdHIoaS5sZW5ndGgtMSwxKSYmbi5zcGxpY2Uobi5sZW5ndGgtMSwxKSxuKSxjLnF1ZXJ5S2V5PShsPWMucXVlcnksYT17fSxsLnJlcGxhY2UoLyg/Ol58JikoW14mPV0qKT0/KFteJl0qKS9nLGZ1bmN0aW9uKHQsZSxzKXtlJiYoYVtlXT1zKX0pLGEpLGN9LFNpfSgpKSxNaT1PYmplY3QuY3JlYXRlKG51bGwpO01pLm9wZW49IjAiLE1pLmNsb3NlPSIxIixNaS5waW5nPSIyIixNaS5wb25nPSIzIixNaS5tZXNzYWdlPSI0IixNaS51cGdyYWRlPSI1IixNaS5ub29wPSI2Ijt2YXIgVWk9T2JqZWN0LmNyZWF0ZShudWxsKTtPYmplY3Qua2V5cyhNaSkuZm9yRWFjaCh0PT57VWlbTWlbdF1dPXR9KTt2YXIgcWk9e3R5cGU6ImVycm9yIixkYXRhOiJwYXJzZXIgZXJyb3IifSxWaT0iZnVuY3Rpb24iPT10eXBlb2YgQmxvYnx8InVuZGVmaW5lZCIhPXR5cGVvZiBCbG9iJiYiW29iamVjdCBCbG9iQ29uc3RydWN0b3JdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChCbG9iKSxOaT0iZnVuY3Rpb24iPT10eXBlb2YgQXJyYXlCdWZmZXIsSGk9KHt0eXBlOnQsZGF0YTplfSxzLGkpPT57cmV0dXJuIFZpJiZlIGluc3RhbmNlb2YgQmxvYj9zP2koZSk6V2koZSxpKTpOaSYmKGUgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcnx8KG49ZSwiZnVuY3Rpb24iPT10eXBlb2YgQXJyYXlCdWZmZXIuaXNWaWV3P0FycmF5QnVmZmVyLmlzVmlldyhuKTpuJiZuLmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSk/cz9pKGUpOldpKG5ldyBCbG9iKFtlXSksaSk6aShNaVt0XSsoZXx8IiIpKTt2YXIgbn0sV2k9KHQsZSk9Pntjb25zdCBzPW5ldyBGaWxlUmVhZGVyO3JldHVybiBzLm9ubG9hZD1mdW5jdGlvbigpe2NvbnN0IHQ9cy5yZXN1bHQuc3BsaXQoIiwiKVsxXTtlKCJiIisodHx8IiIpKX0scy5yZWFkQXNEYXRhVVJMKHQpfSxHaT0idW5kZWZpbmVkIj09dHlwZW9mIFVpbnQ4QXJyYXk/W106bmV3IFVpbnQ4QXJyYXkoMjU2KTtmb3IobGV0IERsPTA7RGw8NjQ7RGwrKylHaVsiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckNvZGVBdChEbCldPURsO3ZhciBfLEppPSJmdW5jdGlvbiI9PXR5cGVvZiBBcnJheUJ1ZmZlcixLaT0odCxlKT0+Smk/WWkoKHQ9PntsZXQgZSxzLGksbixyLG89Ljc1KnQubGVuZ3RoLHU9dC5sZW5ndGgsbD0wOyI9Ij09PXRbdC5sZW5ndGgtMV0mJihvLS0sIj0iPT09dFt0Lmxlbmd0aC0yXSYmby0tKTtjb25zdCBhPW5ldyBBcnJheUJ1ZmZlcihvKSxoPW5ldyBVaW50OEFycmF5KGEpO2ZvcihlPTA7ZTx1O2UrPTQpcz1HaVt0LmNoYXJDb2RlQXQoZSldLGk9R2lbdC5jaGFyQ29kZUF0KGUrMSldLG49R2lbdC5jaGFyQ29kZUF0KGUrMildLHI9R2lbdC5jaGFyQ29kZUF0KGUrMyldLGhbbCsrXT1zPDwyfGk+PjQsaFtsKytdPSgxNSZpKTw8NHxuPj4yLGhbbCsrXT0oMyZuKTw8Nnw2MyZyO3JldHVybiBhfSkodCksZSk6e2Jhc2U2NDohMCxkYXRhOnR9LFlpPSh0LGUpPT4iYmxvYiI9PT1lJiZ0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/bmV3IEJsb2IoW3RdKTp0LFppPXt9O3ZhciBYaT1mdW5jdGlvbigpe2lmKF8pcmV0dXJuIFppO2Z1bmN0aW9uIHQoZSl7aWYoZSlyZXR1cm4gZnVuY3Rpb24oZSl7Zm9yKHZhciBzIGluIHQucHJvdG90eXBlKWVbc109dC5wcm90b3R5cGVbc107cmV0dXJuIGV9KGUpfXJldHVybiBfPTEsWmkuRW1pdHRlcj10LHQucHJvdG90eXBlLm9uPXQucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fY2FsbGJhY2tzPXRoaXMuX2NhbGxiYWNrc3x8e30sKHRoaXMuX2NhbGxiYWNrc1siJCIrdF09dGhpcy5fY2FsbGJhY2tzWyIkIit0XXx8W10pLnB1c2goZSksdGhpc30sdC5wcm90b3R5cGUub25jZT1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHMoKXt0aGlzLm9mZih0LHMpLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBzLmZuPWUsdGhpcy5vbih0LHMpLHRoaXN9LHQucHJvdG90eXBlLm9mZj10LnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj10LnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnM9dC5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbih0LGUpe2lmKHRoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3N8fHt9LDA9PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuX2NhbGxiYWNrcz17fSx0aGlzO3ZhciBzLGk9dGhpcy5fY2FsbGJhY2tzWyIkIit0XTtpZighaSlyZXR1cm4gdGhpcztpZigxPT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiBkZWxldGUgdGhpcy5fY2FsbGJhY2tzWyIkIit0XSx0aGlzO2Zvcih2YXIgbj0wO248aS5sZW5ndGg7bisrKWlmKChzPWlbbl0pPT09ZXx8cy5mbj09PWUpe2kuc3BsaWNlKG4sMSk7YnJlYWt9cmV0dXJuIDA9PT1pLmxlbmd0aCYmZGVsZXRlIHRoaXMuX2NhbGxiYWNrc1siJCIrdF0sdGhpc30sdC5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbih0KXt0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzfHx7fTtmb3IodmFyIGU9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSkscz10aGlzLl9jYWxsYmFja3NbIiQiK3RdLGk9MTtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKWVbaS0xXT1hcmd1bWVudHNbaV07aWYocyl7aT0wO2Zvcih2YXIgbj0ocz1zLnNsaWNlKDApKS5sZW5ndGg7aTxuOysraSlzW2ldLmFwcGx5KHRoaXMsZSl9cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmVtaXRSZXNlcnZlZD10LnByb3RvdHlwZS5lbWl0LHQucHJvdG90eXBlLmxpc3RlbmVycz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fY2FsbGJhY2tzPXRoaXMuX2NhbGxiYWNrc3x8e30sdGhpcy5fY2FsbGJhY2tzWyIkIit0XXx8W119LHQucHJvdG90eXBlLmhhc0xpc3RlbmVycz1mdW5jdGlvbih0KXtyZXR1cm4hIXRoaXMubGlzdGVuZXJzKHQpLmxlbmd0aH0sWml9KCksUWk9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OkZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksdG49c2V0VGltZW91dCxlbj1jbGVhclRpbWVvdXQ7ZnVuY3Rpb24gc24odCxlKXtlLnVzZU5hdGl2ZVRpbWVycz8odC5zZXRUaW1lb3V0Rm49emkodG4sUWkpLHQuY2xlYXJUaW1lb3V0Rm49emkoZW4sUWkpKToodC5zZXRUaW1lb3V0Rm49emkoc2V0VGltZW91dCxRaSksdC5jbGVhclRpbWVvdXRGbj16aShjbGVhclRpbWVvdXQsUWkpKX1mdW5jdGlvbiBubih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCl7bGV0IGU9MCxzPTA7Zm9yKGxldCBpPTAsbj10Lmxlbmd0aDtpPG47aSsrKWU9dC5jaGFyQ29kZUF0KGkpLGU8MTI4P3MrPTE6ZTwyMDQ4P3MrPTI6ZTw1NTI5Nnx8ZT49NTczNDQ/cys9MzooaSsrLHMrPTQpO3JldHVybiBzfSh0KTpNYXRoLmNlaWwoMS4zMyoodC5ieXRlTGVuZ3RofHx0LnNpemUpKX12YXIgcm4sb249Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcih0LGUscyl7c3VwZXIodCksdGhpcy5kZXNjcmlwdGlvbj1lLHRoaXMuY29udGV4dD1zLHRoaXMudHlwZT0iVHJhbnNwb3J0RXJyb3IifX0sdW49Y2xhc3MgZXh0ZW5kcyBYaS5FbWl0dGVye2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy53cml0YWJsZT0hMSxzbih0aGlzLHQpLHRoaXMub3B0cz10LHRoaXMucXVlcnk9dC5xdWVyeSx0aGlzLnJlYWR5U3RhdGU9IiIsdGhpcy5zb2NrZXQ9dC5zb2NrZXR9b25FcnJvcih0LGUscyl7cmV0dXJuIHN1cGVyLmVtaXRSZXNlcnZlZCgiZXJyb3IiLG5ldyBvbih0LGUscykpLHRoaXN9b3Blbigpe3JldHVybiJjbG9zZWQiIT09dGhpcy5yZWFkeVN0YXRlJiYiIiE9PXRoaXMucmVhZHlTdGF0ZXx8KHRoaXMucmVhZHlTdGF0ZT0ib3BlbmluZyIsdGhpcy5kb09wZW4oKSksdGhpc31jbG9zZSgpe3JldHVybiJvcGVuaW5nIiE9PXRoaXMucmVhZHlTdGF0ZSYmIm9wZW4iIT09dGhpcy5yZWFkeVN0YXRlfHwodGhpcy5kb0Nsb3NlKCksdGhpcy5vbkNsb3NlKCkpLHRoaXN9c2VuZCh0KXsib3BlbiI9PT10aGlzLnJlYWR5U3RhdGUmJnRoaXMud3JpdGUodCl9b25PcGVuKCl7dGhpcy5yZWFkeVN0YXRlPSJvcGVuIix0aGlzLndyaXRhYmxlPSEwLHN1cGVyLmVtaXRSZXNlcnZlZCgib3BlbiIpfW9uRGF0YSh0KXtjb25zdCBlPSgodCxlKT0+e2lmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm57dHlwZToibWVzc2FnZSIsZGF0YTpZaSh0LGUpfTtjb25zdCBzPXQuY2hhckF0KDApO3JldHVybiJiIj09PXM/e3R5cGU6Im1lc3NhZ2UiLGRhdGE6S2kodC5zdWJzdHJpbmcoMSksZSl9OlVpW3NdP3QubGVuZ3RoPjE/e3R5cGU6VWlbc10sZGF0YTp0LnN1YnN0cmluZygxKX06e3R5cGU6VWlbc119OnFpfSkodCx0aGlzLnNvY2tldC5iaW5hcnlUeXBlKTt0aGlzLm9uUGFja2V0KGUpfW9uUGFja2V0KHQpe3N1cGVyLmVtaXRSZXNlcnZlZCgicGFja2V0Iix0KX1vbkNsb3NlKHQpe3RoaXMucmVhZHlTdGF0ZT0iY2xvc2VkIixzdXBlci5lbWl0UmVzZXJ2ZWQoImNsb3NlIix0KX19LGxuPSIwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei1fIi5zcGxpdCgiIiksYW49MDtmdW5jdGlvbiBobih0KXtsZXQgZT0iIjtkb3tlPWxuW3QlNjRdK2UsdD1NYXRoLmZsb29yKHQvNjQpfXdoaWxlKHQ+MCk7cmV0dXJuIGV9dmFyICQ9ImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBQcm9taXNlLnJlc29sdmU/dD0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbih0KToodCxlKT0+ZSh0LDApLGNuPVFpLldlYlNvY2tldHx8UWkuTW96V2ViU29ja2V0LGRuPSJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yJiYic3RyaW5nIj09dHlwZW9mIG5hdmlnYXRvci5wcm9kdWN0JiYicmVhY3RuYXRpdmUiPT09bmF2aWdhdG9yLnByb2R1Y3QudG9Mb3dlckNhc2UoKSxEbj17d2Vic29ja2V0OmNsYXNzIHQgZXh0ZW5kcyB1bntjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLnN1cHBvcnRzQmluYXJ5PSF0LmZvcmNlQmFzZTY0fWdldCBuYW1lKCl7cmV0dXJuIndlYnNvY2tldCJ9ZG9PcGVuKCl7aWYoIXRoaXMuY2hlY2soKSlyZXR1cm47Y29uc3QgdD10aGlzLnVyaSgpLGU9dGhpcy5vcHRzLnByb3RvY29scyxzPWRuP3t9OmZ1bmN0aW9uKHQsLi4uZSl7cmV0dXJuIGUucmVkdWNlKChlLHMpPT4odC5oYXNPd25Qcm9wZXJ0eShzKSYmKGVbc109dFtzXSksZSkse30pfSh0aGlzLm9wdHMsImFnZW50IiwicGVyTWVzc2FnZURlZmxhdGUiLCJwZngiLCJrZXkiLCJwYXNzcGhyYXNlIiwiY2VydCIsImNhIiwiY2lwaGVycyIsInJlamVjdFVuYXV0aG9yaXplZCIsImxvY2FsQWRkcmVzcyIsInByb3RvY29sVmVyc2lvbiIsIm9yaWdpbiIsIm1heFBheWxvYWQiLCJmYW1pbHkiLCJjaGVja1NlcnZlcklkZW50aXR5Iik7dGhpcy5vcHRzLmV4dHJhSGVhZGVycyYmKHMuaGVhZGVycz10aGlzLm9wdHMuZXh0cmFIZWFkZXJzKTt0cnl7dGhpcy53cz1kbj9uZXcgY24odCxlLHMpOmU/bmV3IGNuKHQsZSk6bmV3IGNuKHQpfWNhdGNoKHQpe3JldHVybiB0aGlzLmVtaXRSZXNlcnZlZCgiZXJyb3IiLHQpfXRoaXMud3MuYmluYXJ5VHlwZT10aGlzLnNvY2tldC5iaW5hcnlUeXBlfHwiYXJyYXlidWZmZXIiLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcnMoKX1hZGRFdmVudExpc3RlbmVycygpe3RoaXMud3Mub25vcGVuPSgpPT57dGhpcy5vcHRzLmF1dG9VbnJlZiYmdGhpcy53cy5fc29ja2V0LnVucmVmKCksdGhpcy5vbk9wZW4oKX0sdGhpcy53cy5vbmNsb3NlPXQ9PnRoaXMub25DbG9zZSh7ZGVzY3JpcHRpb246IndlYnNvY2tldCBjb25uZWN0aW9uIGNsb3NlZCIsY29udGV4dDp0fSksdGhpcy53cy5vbm1lc3NhZ2U9dD0+dGhpcy5vbkRhdGEodC5kYXRhKSx0aGlzLndzLm9uZXJyb3I9dD0+dGhpcy5vbkVycm9yKCJ3ZWJzb2NrZXQgZXJyb3IiLHQpfXdyaXRlKHQpe3RoaXMud3JpdGFibGU9ITE7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe2NvbnN0IHM9dFtlXSxpPWU9PT10Lmxlbmd0aC0xO0hpKHMsdGhpcy5zdXBwb3J0c0JpbmFyeSx0PT57dHJ5e3RoaXMud3Muc2VuZCh0KX1jYXRjaCh0KXt9aSYmJCgoKT0+e3RoaXMud3JpdGFibGU9ITAsdGhpcy5lbWl0UmVzZXJ2ZWQoImRyYWluIil9LHRoaXMuc2V0VGltZW91dEZuKX0pfX1kb0Nsb3NlKCl7dm9pZCAwIT09dGhpcy53cyYmKHRoaXMud3MuY2xvc2UoKSx0aGlzLndzPW51bGwpfXVyaSgpe2xldCB0PXRoaXMucXVlcnl8fHt9O2NvbnN0IGU9dGhpcy5vcHRzLnNlY3VyZT8id3NzIjoid3MiO2xldCBzPSIiO3RoaXMub3B0cy5wb3J0JiYoIndzcyI9PT1lJiY0NDMhPT1OdW1iZXIodGhpcy5vcHRzLnBvcnQpfHwid3MiPT09ZSYmODAhPT1OdW1iZXIodGhpcy5vcHRzLnBvcnQpKSYmKHM9IjoiK3RoaXMub3B0cy5wb3J0KSx0aGlzLm9wdHMudGltZXN0YW1wUmVxdWVzdHMmJih0W3RoaXMub3B0cy50aW1lc3RhbXBQYXJhbV09ZnVuY3Rpb24oKXtjb25zdCB0PWhuKCtuZXcgRGF0ZSk7cmV0dXJuIHQhPT1ybj8oYW49MCxybj10KTp0KyIuIitobihhbisrKX0oKSksdGhpcy5zdXBwb3J0c0JpbmFyeXx8KHQuYjY0PTEpO2NvbnN0IGk9ZnVuY3Rpb24odCl7bGV0IGU9IiI7Zm9yKGxldCBzIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShzKSYmKGUubGVuZ3RoJiYoZSs9IiYiKSxlKz1lbmNvZGVVUklDb21wb25lbnQocykrIj0iK2VuY29kZVVSSUNvbXBvbmVudCh0W3NdKSk7cmV0dXJuIGV9KHQpO3JldHVybiBlKyI6Ly8iKygtMSE9PXRoaXMub3B0cy5ob3N0bmFtZS5pbmRleE9mKCI6Iik/IlsiK3RoaXMub3B0cy5ob3N0bmFtZSsiXSI6dGhpcy5vcHRzLmhvc3RuYW1lKStzK3RoaXMub3B0cy5wYXRoKyhpLmxlbmd0aD8iPyIraToiIil9Y2hlY2soKXtyZXR1cm4hKCFjbnx8ImkiaW4gY24mJnRoaXMubmFtZT09PXQucHJvdG90eXBlLm5hbWUpfX19LGZuPS9eKD86KD8hW146QF0rOlteOkBcL10qQCkoaHR0cHxodHRwc3x3c3x3c3MpOlwvXC8pPygoPzooKFteOkBdKikoPzo6KFteOkBdKikpPyk/QCk/KCg/OlthLWYwLTldezAsNH06KXsyLDd9W2EtZjAtOV17MCw0fXxbXjpcLz8jXSopKD86OihcZCopKT8pKCgoXC8oPzpbXj8jXSg/IVtePyNcL10qXC5bXj8jXC8uXSsoPzpbPyNdfCQpKSkqXC8/KT8oW14/I1wvXSopKSg/Olw/KFteI10qKSk/KD86IyguKikpPykvLHBuPVsic291cmNlIiwicHJvdG9jb2wiLCJhdXRob3JpdHkiLCJ1c2VySW5mbyIsInVzZXIiLCJwYXNzd29yZCIsImhvc3QiLCJwb3J0IiwicmVsYXRpdmUiLCJwYXRoIiwiZGlyZWN0b3J5IiwiZmlsZSIsInF1ZXJ5IiwiYW5jaG9yIl07ZnVuY3Rpb24gX24odCl7Y29uc3QgZT10LHM9dC5pbmRleE9mKCJbIiksaT10LmluZGV4T2YoIl0iKTstMSE9cyYmLTEhPWkmJih0PXQuc3Vic3RyaW5nKDAscykrdC5zdWJzdHJpbmcocyxpKS5yZXBsYWNlKC86L2csIjsiKSt0LnN1YnN0cmluZyhpLHQubGVuZ3RoKSk7bGV0IG49Zm4uZXhlYyh0fHwiIikscj17fSxvPTE0O2Zvcig7by0tOylyW3BuW29dXT1uW29dfHwiIjtyZXR1cm4tMSE9cyYmLTEhPWkmJihyLnNvdXJjZT1lLHIuaG9zdD1yLmhvc3Quc3Vic3RyaW5nKDEsci5ob3N0Lmxlbmd0aC0xKS5yZXBsYWNlKC87L2csIjoiKSxyLmF1dGhvcml0eT1yLmF1dGhvcml0eS5yZXBsYWNlKCJbIiwiIikucmVwbGFjZSgiXSIsIiIpLnJlcGxhY2UoLzsvZywiOiIpLHIuaXB2NnVyaT0hMCksci5wYXRoTmFtZXM9ZnVuY3Rpb24odCxlKXtjb25zdCBzPWUucmVwbGFjZSgvXC97Miw5fS9nLCIvIikuc3BsaXQoIi8iKTtyZXR1cm4iLyIhPWUuc3Vic3RyKDAsMSkmJjAhPT1lLmxlbmd0aHx8cy5zcGxpY2UoMCwxKSwiLyI9PWUuc3Vic3RyKGUubGVuZ3RoLTEsMSkmJnMuc3BsaWNlKHMubGVuZ3RoLTEsMSksc30oMCxyLnBhdGgpLHIucXVlcnlLZXk9ZnVuY3Rpb24odCxlKXtjb25zdCBzPXt9O3JldHVybiBlLnJlcGxhY2UoLyg/Ol58JikoW14mPV0qKT0/KFteJl0qKS9nLGZ1bmN0aW9uKHQsZSxpKXtlJiYoc1tlXT1pKX0pLHN9KDAsci5xdWVyeSkscn12YXIgbW4sZ249Y2xhc3MgdCBleHRlbmRzIFhpLkVtaXR0ZXJ7Y29uc3RydWN0b3IodCxlPXt9KXtzdXBlcigpLHQmJiJvYmplY3QiPT10eXBlb2YgdCYmKGU9dCx0PW51bGwpLHQ/KHQ9X24odCksZS5ob3N0bmFtZT10Lmhvc3QsZS5zZWN1cmU9Imh0dHBzIj09PXQucHJvdG9jb2x8fCJ3c3MiPT09dC5wcm90b2NvbCxlLnBvcnQ9dC5wb3J0LHQucXVlcnkmJihlLnF1ZXJ5PXQucXVlcnkpKTplLmhvc3QmJihlLmhvc3RuYW1lPV9uKGUuaG9zdCkuaG9zdCksc24odGhpcyxlKSx0aGlzLnNlY3VyZT1udWxsIT1lLnNlY3VyZT9lLnNlY3VyZToidW5kZWZpbmVkIiE9dHlwZW9mIGxvY2F0aW9uJiYiaHR0cHM6Ij09PWxvY2F0aW9uLnByb3RvY29sLGUuaG9zdG5hbWUmJiFlLnBvcnQmJihlLnBvcnQ9dGhpcy5zZWN1cmU/IjQ0MyI6IjgwIiksdGhpcy5ob3N0bmFtZT1lLmhvc3RuYW1lfHwoInVuZGVmaW5lZCIhPXR5cGVvZiBsb2NhdGlvbj9sb2NhdGlvbi5ob3N0bmFtZToibG9jYWxob3N0IiksdGhpcy5wb3J0PWUucG9ydHx8KCJ1bmRlZmluZWQiIT10eXBlb2YgbG9jYXRpb24mJmxvY2F0aW9uLnBvcnQ/bG9jYXRpb24ucG9ydDp0aGlzLnNlY3VyZT8iNDQzIjoiODAiKSx0aGlzLnRyYW5zcG9ydHM9ZS50cmFuc3BvcnRzfHxbIndlYnNvY2tldCJdLHRoaXMucmVhZHlTdGF0ZT0iIix0aGlzLndyaXRlQnVmZmVyPVtdLHRoaXMucHJldkJ1ZmZlckxlbj0wLHRoaXMub3B0cz1PYmplY3QuYXNzaWduKHtwYXRoOiIvZW5naW5lLmlvIixhZ2VudDohMSx3aXRoQ3JlZGVudGlhbHM6ITEsdXBncmFkZTohMCx0aW1lc3RhbXBQYXJhbToidCIscmVtZW1iZXJVcGdyYWRlOiExLHJlamVjdFVuYXV0aG9yaXplZDohMCxwZXJNZXNzYWdlRGVmbGF0ZTp7dGhyZXNob2xkOjEwMjR9LHRyYW5zcG9ydE9wdGlvbnM6e30sY2xvc2VPbkJlZm9yZXVubG9hZDohMH0sZSksdGhpcy5vcHRzLnBhdGg9dGhpcy5vcHRzLnBhdGgucmVwbGFjZSgvXC8kLywiIikrIi8iLCJzdHJpbmciPT10eXBlb2YgdGhpcy5vcHRzLnF1ZXJ5JiYodGhpcy5vcHRzLnF1ZXJ5PWZ1bmN0aW9uKHQpe2xldCBlPXt9LHM9dC5zcGxpdCgiJiIpO2ZvcihsZXQgaT0wLG49cy5sZW5ndGg7aTxuO2krKyl7bGV0IHQ9c1tpXS5zcGxpdCgiPSIpO2VbZGVjb2RlVVJJQ29tcG9uZW50KHRbMF0pXT1kZWNvZGVVUklDb21wb25lbnQodFsxXSl9cmV0dXJuIGV9KHRoaXMub3B0cy5xdWVyeSkpLHRoaXMuaWQ9bnVsbCx0aGlzLnVwZ3JhZGVzPW51bGwsdGhpcy5waW5nSW50ZXJ2YWw9bnVsbCx0aGlzLnBpbmdUaW1lb3V0PW51bGwsdGhpcy5waW5nVGltZW91dFRpbWVyPW51bGwsImZ1bmN0aW9uIj09dHlwZW9mIGFkZEV2ZW50TGlzdGVuZXImJih0aGlzLm9wdHMuY2xvc2VPbkJlZm9yZXVubG9hZCYmYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2FkIiwoKT0+e3RoaXMudHJhbnNwb3J0JiYodGhpcy50cmFuc3BvcnQucmVtb3ZlQWxsTGlzdGVuZXJzKCksdGhpcy50cmFuc3BvcnQuY2xvc2UoKSl9LCExKSwibG9jYWxob3N0IiE9PXRoaXMuaG9zdG5hbWUmJih0aGlzLm9mZmxpbmVFdmVudExpc3RlbmVyPSgpPT57dGhpcy5vbkNsb3NlKCJ0cmFuc3BvcnQgY2xvc2UiLHtkZXNjcmlwdGlvbjoibmV0d29yayBjb25uZWN0aW9uIGxvc3QifSl9LGFkZEV2ZW50TGlzdGVuZXIoIm9mZmxpbmUiLHRoaXMub2ZmbGluZUV2ZW50TGlzdGVuZXIsITEpKSksdGhpcy5vcGVuKCl9Y3JlYXRlVHJhbnNwb3J0KHQpe2NvbnN0IGU9ZnVuY3Rpb24odCl7Y29uc3QgZT17fTtmb3IobGV0IHMgaW4gdCl0Lmhhc093blByb3BlcnR5KHMpJiYoZVtzXT10W3NdKTtyZXR1cm4gZX0odGhpcy5vcHRzLnF1ZXJ5KTtlLkVJTz00LGUudHJhbnNwb3J0PXQsdGhpcy5pZCYmKGUuc2lkPXRoaXMuaWQpO2NvbnN0IHM9T2JqZWN0LmFzc2lnbih7fSx0aGlzLm9wdHMudHJhbnNwb3J0T3B0aW9uc1t0XSx0aGlzLm9wdHMse3F1ZXJ5OmUsc29ja2V0OnRoaXMsaG9zdG5hbWU6dGhpcy5ob3N0bmFtZSxzZWN1cmU6dGhpcy5zZWN1cmUscG9ydDp0aGlzLnBvcnR9KTtyZXR1cm4gbmV3IERuW3RdKHMpfW9wZW4oKXtsZXQgZTtpZih0aGlzLm9wdHMucmVtZW1iZXJVcGdyYWRlJiZ0LnByaW9yV2Vic29ja2V0U3VjY2VzcyYmLTEhPT10aGlzLnRyYW5zcG9ydHMuaW5kZXhPZigid2Vic29ja2V0IikpZT0id2Vic29ja2V0IjtlbHNle2lmKDA9PT10aGlzLnRyYW5zcG9ydHMubGVuZ3RoKXJldHVybiB2b2lkIHRoaXMuc2V0VGltZW91dEZuKCgpPT57dGhpcy5lbWl0UmVzZXJ2ZWQoImVycm9yIiwiTm8gdHJhbnNwb3J0cyBhdmFpbGFibGUiKX0sMCk7ZT10aGlzLnRyYW5zcG9ydHNbMF19dGhpcy5yZWFkeVN0YXRlPSJvcGVuaW5nIjt0cnl7ZT10aGlzLmNyZWF0ZVRyYW5zcG9ydChlKX1jYXRjaCh0KXtyZXR1cm4gdGhpcy50cmFuc3BvcnRzLnNoaWZ0KCksdm9pZCB0aGlzLm9wZW4oKX1lLm9wZW4oKSx0aGlzLnNldFRyYW5zcG9ydChlKX1zZXRUcmFuc3BvcnQodCl7dGhpcy50cmFuc3BvcnQmJnRoaXMudHJhbnNwb3J0LnJlbW92ZUFsbExpc3RlbmVycygpLHRoaXMudHJhbnNwb3J0PXQsdC5vbigiZHJhaW4iLHppKHRoaXMub25EcmFpbix0aGlzKSkub24oInBhY2tldCIsemkodGhpcy5vblBhY2tldCx0aGlzKSkub24oImVycm9yIix6aSh0aGlzLm9uRXJyb3IsdGhpcykpLm9uKCJjbG9zZSIsdD0+dGhpcy5vbkNsb3NlKCJ0cmFuc3BvcnQgY2xvc2UiLHQpKX1wcm9iZShlKXtsZXQgcz10aGlzLmNyZWF0ZVRyYW5zcG9ydChlKSxpPSExO3QucHJpb3JXZWJzb2NrZXRTdWNjZXNzPSExO2NvbnN0IG49KCk9PntpfHwocy5zZW5kKFt7dHlwZToicGluZyIsZGF0YToicHJvYmUifV0pLHMub25jZSgicGFja2V0IixlPT57aWYoIWkpaWYoInBvbmciPT09ZS50eXBlJiYicHJvYmUiPT09ZS5kYXRhKXtpZih0aGlzLnVwZ3JhZGluZz0hMCx0aGlzLmVtaXRSZXNlcnZlZCgidXBncmFkaW5nIixzKSwhcylyZXR1cm47dC5wcmlvcldlYnNvY2tldFN1Y2Nlc3M9IndlYnNvY2tldCI9PT1zLm5hbWUsdGhpcy50cmFuc3BvcnQucGF1c2UoKCk9PntpfHwiY2xvc2VkIiE9PXRoaXMucmVhZHlTdGF0ZSYmKGgoKSx0aGlzLnNldFRyYW5zcG9ydChzKSxzLnNlbmQoW3t0eXBlOiJ1cGdyYWRlIn1dKSx0aGlzLmVtaXRSZXNlcnZlZCgidXBncmFkZSIscykscz1udWxsLHRoaXMudXBncmFkaW5nPSExLHRoaXMuZmx1c2goKSl9KX1lbHNle2NvbnN0IHQ9bmV3IEVycm9yKCJwcm9iZSBlcnJvciIpO3QudHJhbnNwb3J0PXMubmFtZSx0aGlzLmVtaXRSZXNlcnZlZCgidXBncmFkZUVycm9yIix0KX19KSl9O2Z1bmN0aW9uIHIoKXtpfHwoaT0hMCxoKCkscy5jbG9zZSgpLHM9bnVsbCl9Y29uc3Qgbz10PT57Y29uc3QgZT1uZXcgRXJyb3IoInByb2JlIGVycm9yOiAiK3QpO2UudHJhbnNwb3J0PXMubmFtZSxyKCksdGhpcy5lbWl0UmVzZXJ2ZWQoInVwZ3JhZGVFcnJvciIsZSl9O2Z1bmN0aW9uIHUoKXtvKCJ0cmFuc3BvcnQgY2xvc2VkIil9ZnVuY3Rpb24gbCgpe28oInNvY2tldCBjbG9zZWQiKX1mdW5jdGlvbiBhKHQpe3MmJnQubmFtZSE9PXMubmFtZSYmcigpfWNvbnN0IGg9KCk9PntzLnJlbW92ZUxpc3RlbmVyKCJvcGVuIixuKSxzLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsbykscy5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLHUpLHRoaXMub2ZmKCJjbG9zZSIsbCksdGhpcy5vZmYoInVwZ3JhZGluZyIsYSl9O3Mub25jZSgib3BlbiIsbikscy5vbmNlKCJlcnJvciIsbykscy5vbmNlKCJjbG9zZSIsdSksdGhpcy5vbmNlKCJjbG9zZSIsbCksdGhpcy5vbmNlKCJ1cGdyYWRpbmciLGEpLHMub3BlbigpfW9uT3Blbigpe2lmKHRoaXMucmVhZHlTdGF0ZT0ib3BlbiIsdC5wcmlvcldlYnNvY2tldFN1Y2Nlc3M9IndlYnNvY2tldCI9PT10aGlzLnRyYW5zcG9ydC5uYW1lLHRoaXMuZW1pdFJlc2VydmVkKCJvcGVuIiksdGhpcy5mbHVzaCgpLCJvcGVuIj09PXRoaXMucmVhZHlTdGF0ZSYmdGhpcy5vcHRzLnVwZ3JhZGUmJnRoaXMudHJhbnNwb3J0LnBhdXNlKXtsZXQgdD0wO2NvbnN0IGU9dGhpcy51cGdyYWRlcy5sZW5ndGg7Zm9yKDt0PGU7dCsrKXRoaXMucHJvYmUodGhpcy51cGdyYWRlc1t0XSl9fW9uUGFja2V0KHQpe2lmKCJvcGVuaW5nIj09PXRoaXMucmVhZHlTdGF0ZXx8Im9wZW4iPT09dGhpcy5yZWFkeVN0YXRlfHwiY2xvc2luZyI9PT10aGlzLnJlYWR5U3RhdGUpc3dpdGNoKHRoaXMuZW1pdFJlc2VydmVkKCJwYWNrZXQiLHQpLHRoaXMuZW1pdFJlc2VydmVkKCJoZWFydGJlYXQiKSx0LnR5cGUpe2Nhc2Uib3BlbiI6dGhpcy5vbkhhbmRzaGFrZShKU09OLnBhcnNlKHQuZGF0YSkpO2JyZWFrO2Nhc2UicGluZyI6dGhpcy5yZXNldFBpbmdUaW1lb3V0KCksdGhpcy5zZW5kUGFja2V0KCJwb25nIiksdGhpcy5lbWl0UmVzZXJ2ZWQoInBpbmciKSx0aGlzLmVtaXRSZXNlcnZlZCgicG9uZyIpO2JyZWFrO2Nhc2UiZXJyb3IiOmNvbnN0IGU9bmV3IEVycm9yKCJzZXJ2ZXIgZXJyb3IiKTtlLmNvZGU9dC5kYXRhLHRoaXMub25FcnJvcihlKTticmVhaztjYXNlIm1lc3NhZ2UiOnRoaXMuZW1pdFJlc2VydmVkKCJkYXRhIix0LmRhdGEpLHRoaXMuZW1pdFJlc2VydmVkKCJtZXNzYWdlIix0LmRhdGEpfX1vbkhhbmRzaGFrZSh0KXt0aGlzLmVtaXRSZXNlcnZlZCgiaGFuZHNoYWtlIix0KSx0aGlzLmlkPXQuc2lkLHRoaXMudHJhbnNwb3J0LnF1ZXJ5LnNpZD10LnNpZCx0aGlzLnVwZ3JhZGVzPXRoaXMuZmlsdGVyVXBncmFkZXModC51cGdyYWRlcyksdGhpcy5waW5nSW50ZXJ2YWw9dC5waW5nSW50ZXJ2YWwsdGhpcy5waW5nVGltZW91dD10LnBpbmdUaW1lb3V0LHRoaXMubWF4UGF5bG9hZD10Lm1heFBheWxvYWQsdGhpcy5vbk9wZW4oKSwiY2xvc2VkIiE9PXRoaXMucmVhZHlTdGF0ZSYmdGhpcy5yZXNldFBpbmdUaW1lb3V0KCl9cmVzZXRQaW5nVGltZW91dCgpe3RoaXMuY2xlYXJUaW1lb3V0Rm4odGhpcy5waW5nVGltZW91dFRpbWVyKSx0aGlzLnBpbmdUaW1lb3V0VGltZXI9dGhpcy5zZXRUaW1lb3V0Rm4oKCk9Pnt0aGlzLm9uQ2xvc2UoInBpbmcgdGltZW91dCIpfSx0aGlzLnBpbmdJbnRlcnZhbCt0aGlzLnBpbmdUaW1lb3V0KSx0aGlzLm9wdHMuYXV0b1VucmVmJiZ0aGlzLnBpbmdUaW1lb3V0VGltZXIudW5yZWYoKX1vbkRyYWluKCl7dGhpcy53cml0ZUJ1ZmZlci5zcGxpY2UoMCx0aGlzLnByZXZCdWZmZXJMZW4pLHRoaXMucHJldkJ1ZmZlckxlbj0wLDA9PT10aGlzLndyaXRlQnVmZmVyLmxlbmd0aD90aGlzLmVtaXRSZXNlcnZlZCgiZHJhaW4iKTp0aGlzLmZsdXNoKCl9Zmx1c2goKXtpZigiY2xvc2VkIiE9PXRoaXMucmVhZHlTdGF0ZSYmdGhpcy50cmFuc3BvcnQud3JpdGFibGUmJiF0aGlzLnVwZ3JhZGluZyYmdGhpcy53cml0ZUJ1ZmZlci5sZW5ndGgpe2NvbnN0IHQ9dGhpcy5nZXRXcml0YWJsZVBhY2tldHMoKTt0aGlzLnRyYW5zcG9ydC5zZW5kKHQpLHRoaXMucHJldkJ1ZmZlckxlbj10Lmxlbmd0aCx0aGlzLmVtaXRSZXNlcnZlZCgiZmx1c2giKX19Z2V0V3JpdGFibGVQYWNrZXRzKCl7aWYoISh0aGlzLm1heFBheWxvYWQmJiJwb2xsaW5nIj09PXRoaXMudHJhbnNwb3J0Lm5hbWUmJnRoaXMud3JpdGVCdWZmZXIubGVuZ3RoPjEpKXJldHVybiB0aGlzLndyaXRlQnVmZmVyO2xldCB0PTE7Zm9yKGxldCBlPTA7ZTx0aGlzLndyaXRlQnVmZmVyLmxlbmd0aDtlKyspe2NvbnN0IHM9dGhpcy53cml0ZUJ1ZmZlcltlXS5kYXRhO2lmKHMmJih0Kz1ubihzKSksZT4wJiZ0PnRoaXMubWF4UGF5bG9hZClyZXR1cm4gdGhpcy53cml0ZUJ1ZmZlci5zbGljZSgwLGUpO3QrPTJ9cmV0dXJuIHRoaXMud3JpdGVCdWZmZXJ9d3JpdGUodCxlLHMpe3JldHVybiB0aGlzLnNlbmRQYWNrZXQoIm1lc3NhZ2UiLHQsZSxzKSx0aGlzfXNlbmQodCxlLHMpe3JldHVybiB0aGlzLnNlbmRQYWNrZXQoIm1lc3NhZ2UiLHQsZSxzKSx0aGlzfXNlbmRQYWNrZXQodCxlLHMsaSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUmJihpPWUsZT12b2lkIDApLCJmdW5jdGlvbiI9PXR5cGVvZiBzJiYoaT1zLHM9bnVsbCksImNsb3NpbmciPT09dGhpcy5yZWFkeVN0YXRlfHwiY2xvc2VkIj09PXRoaXMucmVhZHlTdGF0ZSlyZXR1cm47KHM9c3x8e30pLmNvbXByZXNzPSExIT09cy5jb21wcmVzcztjb25zdCBuPXt0eXBlOnQsZGF0YTplLG9wdGlvbnM6c307dGhpcy5lbWl0UmVzZXJ2ZWQoInBhY2tldENyZWF0ZSIsbiksdGhpcy53cml0ZUJ1ZmZlci5wdXNoKG4pLGkmJnRoaXMub25jZSgiZmx1c2giLGkpLHRoaXMuZmx1c2goKX1jbG9zZSgpe2NvbnN0IHQ9KCk9Pnt0aGlzLm9uQ2xvc2UoImZvcmNlZCBjbG9zZSIpLHRoaXMudHJhbnNwb3J0LmNsb3NlKCl9LGU9KCk9Pnt0aGlzLm9mZigidXBncmFkZSIsZSksdGhpcy5vZmYoInVwZ3JhZGVFcnJvciIsZSksdCgpfSxzPSgpPT57dGhpcy5vbmNlKCJ1cGdyYWRlIixlKSx0aGlzLm9uY2UoInVwZ3JhZGVFcnJvciIsZSl9O3JldHVybiJvcGVuaW5nIiE9PXRoaXMucmVhZHlTdGF0ZSYmIm9wZW4iIT09dGhpcy5yZWFkeVN0YXRlfHwodGhpcy5yZWFkeVN0YXRlPSJjbG9zaW5nIix0aGlzLndyaXRlQnVmZmVyLmxlbmd0aD90aGlzLm9uY2UoImRyYWluIiwoKT0+e3RoaXMudXBncmFkaW5nP3MoKTp0KCl9KTp0aGlzLnVwZ3JhZGluZz9zKCk6dCgpKSx0aGlzfW9uRXJyb3IoZSl7dC5wcmlvcldlYnNvY2tldFN1Y2Nlc3M9ITEsdGhpcy5lbWl0UmVzZXJ2ZWQoImVycm9yIixlKSx0aGlzLm9uQ2xvc2UoInRyYW5zcG9ydCBlcnJvciIsZSl9b25DbG9zZSh0LGUpeyJvcGVuaW5nIiE9PXRoaXMucmVhZHlTdGF0ZSYmIm9wZW4iIT09dGhpcy5yZWFkeVN0YXRlJiYiY2xvc2luZyIhPT10aGlzLnJlYWR5U3RhdGV8fCh0aGlzLmNsZWFyVGltZW91dEZuKHRoaXMucGluZ1RpbWVvdXRUaW1lciksdGhpcy50cmFuc3BvcnQucmVtb3ZlQWxsTGlzdGVuZXJzKCJjbG9zZSIpLHRoaXMudHJhbnNwb3J0LmNsb3NlKCksdGhpcy50cmFuc3BvcnQucmVtb3ZlQWxsTGlzdGVuZXJzKCksImZ1bmN0aW9uIj09dHlwZW9mIHJlbW92ZUV2ZW50TGlzdGVuZXImJnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9mZmxpbmUiLHRoaXMub2ZmbGluZUV2ZW50TGlzdGVuZXIsITEpLHRoaXMucmVhZHlTdGF0ZT0iY2xvc2VkIix0aGlzLmlkPW51bGwsdGhpcy5lbWl0UmVzZXJ2ZWQoImNsb3NlIix0LGUpLHRoaXMud3JpdGVCdWZmZXI9W10sdGhpcy5wcmV2QnVmZmVyTGVuPTApfWZpbHRlclVwZ3JhZGVzKHQpe2NvbnN0IGU9W107bGV0IHM9MDtjb25zdCBpPXQubGVuZ3RoO2Zvcig7czxpO3MrKyl+dGhpcy50cmFuc3BvcnRzLmluZGV4T2YodFtzXSkmJmUucHVzaCh0W3NdKTtyZXR1cm4gZX19O2duLnByb3RvY29sPTQsZnVuY3Rpb24odCl7dFt0LkNPTk5FQ1Q9MF09IkNPTk5FQ1QiLHRbdC5ESVNDT05ORUNUPTFdPSJESVNDT05ORUNUIix0W3QuRVZFTlQ9Ml09IkVWRU5UIix0W3QuQUNLPTNdPSJBQ0siLHRbdC5DT05ORUNUX0VSUk9SPTRdPSJDT05ORUNUX0VSUk9SIix0W3QuQklOQVJZX0VWRU5UPTVdPSJCSU5BUllfRVZFTlQiLHRbdC5CSU5BUllfQUNLPTZdPSJCSU5BUllfQUNLIn0obW58fChtbj17fSkpO3ZhciBGbj1jbGFzcyB0IGV4dGVuZHMgWGkuRW1pdHRlcntjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9YWRkKHQpe2xldCBlO2lmKCJzdHJpbmciIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gdHlwZTogIit0KTtlPXRoaXMuZGVjb2RlU3RyaW5nKHQpLGUudHlwZT09PW1uLkJJTkFSWV9FVkVOVHx8ZS50eXBlPT09bW4uQklOQVJZX0FDSz8wPT09ZS5hdHRhY2htZW50cyYmc3VwZXIuZW1pdFJlc2VydmVkKCJkZWNvZGVkIixlKTpzdXBlci5lbWl0UmVzZXJ2ZWQoImRlY29kZWQiLGUpfWRlY29kZVN0cmluZyhlKXtsZXQgcz0wO2NvbnN0IGk9e3R5cGU6TnVtYmVyKGUuY2hhckF0KDApKX07aWYodm9pZCAwPT09bW5baS50eXBlXSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gcGFja2V0IHR5cGUgIitpLnR5cGUpO2lmKGkudHlwZT09PW1uLkJJTkFSWV9FVkVOVHx8aS50eXBlPT09bW4uQklOQVJZX0FDSyl7Y29uc3QgdD1zKzE7Zm9yKDsiLSIhPT1lLmNoYXJBdCgrK3MpJiZzIT1lLmxlbmd0aDspO2NvbnN0IG49ZS5zdWJzdHJpbmcodCxzKTtpZihuIT1OdW1iZXIobil8fCItIiE9PWUuY2hhckF0KHMpKXRocm93IG5ldyBFcnJvcigiSWxsZWdhbCBhdHRhY2htZW50cyIpO2kuYXR0YWNobWVudHM9TnVtYmVyKG4pfWlmKCIvIj09PWUuY2hhckF0KHMrMSkpe2NvbnN0IHQ9cysxO2Zvcig7KytzJiYiLCIhPT1lLmNoYXJBdChzKSYmcyE9PWUubGVuZ3RoOyk7aS5uc3A9ZS5zdWJzdHJpbmcodCxzKX1lbHNlIGkubnNwPSIvIjtjb25zdCBuPWUuY2hhckF0KHMrMSk7aWYoIiIhPT1uJiZOdW1iZXIobik9PW4pe2NvbnN0IHQ9cysxO2Zvcig7KytzOyl7Y29uc3QgdD1lLmNoYXJBdChzKTtpZihudWxsPT10fHxOdW1iZXIodCkhPXQpey0tczticmVha31pZihzPT09ZS5sZW5ndGgpYnJlYWt9aS5pZD1OdW1iZXIoZS5zdWJzdHJpbmcodCxzKzEpKX1pZihlLmNoYXJBdCgrK3MpKXtjb25zdCBuPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gSlNPTi5wYXJzZSh0KX1jYXRjaCh0KXtyZXR1cm4hMX19KGUuc3Vic3RyKHMpKTtpZighdC5pc1BheWxvYWRWYWxpZChpLnR5cGUsbikpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHBheWxvYWQiKTtpLmRhdGE9bn1yZXR1cm4gaX1zdGF0aWMgaXNQYXlsb2FkVmFsaWQodCxlKXtzd2l0Y2godCl7Y2FzZSBtbi5DT05ORUNUOnJldHVybiJvYmplY3QiPT10eXBlb2YgZTtjYXNlIG1uLkRJU0NPTk5FQ1Q6cmV0dXJuIHZvaWQgMD09PWU7Y2FzZSBtbi5DT05ORUNUX0VSUk9SOnJldHVybiJzdHJpbmciPT10eXBlb2YgZXx8Im9iamVjdCI9PXR5cGVvZiBlO2Nhc2UgbW4uRVZFTlQ6Y2FzZSBtbi5CSU5BUllfRVZFTlQ6cmV0dXJuIEFycmF5LmlzQXJyYXkoZSkmJmUubGVuZ3RoPjA7Y2FzZSBtbi5BQ0s6Y2FzZSBtbi5CSU5BUllfQUNLOnJldHVybiBBcnJheS5pc0FycmF5KGUpfX1kZXN0cm95KCl7fX0sd249T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsRGVjb2RlcjpGbixFbmNvZGVyOmNsYXNze2VuY29kZSh0KXtyZXR1cm5bdGhpcy5lbmNvZGVBc1N0cmluZyh0KV19ZW5jb2RlQXNTdHJpbmcodCl7bGV0IGU9IiIrdC50eXBlO3JldHVybiB0LnR5cGUhPT1tbi5CSU5BUllfRVZFTlQmJnQudHlwZSE9PW1uLkJJTkFSWV9BQ0t8fChlKz10LmF0dGFjaG1lbnRzKyItIiksdC5uc3AmJiIvIiE9PXQubnNwJiYoZSs9dC5uc3ArIiwiKSxudWxsIT10LmlkJiYoZSs9dC5pZCksbnVsbCE9dC5kYXRhJiYoZSs9SlNPTi5zdHJpbmdpZnkodC5kYXRhKSksZX19LGdldCBQYWNrZXRUeXBlKCl7cmV0dXJuIG1ufSxwcm90b2NvbDo1fSk7ZnVuY3Rpb24gdm4odCxlLHMpe3JldHVybiB0Lm9uKGUscyksZnVuY3Rpb24oKXt0Lm9mZihlLHMpfX12YXIgeW4sYm4sRW49T2JqZWN0LmZyZWV6ZSh7Y29ubmVjdDoxLGNvbm5lY3RfZXJyb3I6MSxkaXNjb25uZWN0OjEsZGlzY29ubmVjdGluZzoxLG5ld0xpc3RlbmVyOjEscmVtb3ZlTGlzdGVuZXI6MX0pLENuPWNsYXNzIGV4dGVuZHMgWGkuRW1pdHRlcntjb25zdHJ1Y3Rvcih0LGUscyl7c3VwZXIoKSx0aGlzLmNvbm5lY3RlZD0hMSx0aGlzLmRpc2Nvbm5lY3RlZD0hMCx0aGlzLnJlY2VpdmVCdWZmZXI9W10sdGhpcy5zZW5kQnVmZmVyPVtdLHRoaXMuaWRzPTAsdGhpcy5hY2tzPXt9LHRoaXMuZmxhZ3M9e30sdGhpcy5pbz10LHRoaXMubnNwPWUscyYmcy5hdXRoJiYodGhpcy5hdXRoPXMuYXV0aCksdGhpcy5pby5fYXV0b0Nvbm5lY3QmJnRoaXMub3BlbigpfXN1YkV2ZW50cygpe2lmKHRoaXMuc3VicylyZXR1cm47Y29uc3QgdD10aGlzLmlvO3RoaXMuc3Vicz1bdm4odCwib3BlbiIsemkodGhpcy5vbm9wZW4sdGhpcykpLHZuKHQsInBhY2tldCIsemkodGhpcy5vbnBhY2tldCx0aGlzKSksdm4odCwiZXJyb3IiLHppKHRoaXMub25lcnJvcix0aGlzKSksdm4odCwiY2xvc2UiLHppKHRoaXMub25jbG9zZSx0aGlzKSldfWdldCBhY3RpdmUoKXtyZXR1cm4hIXRoaXMuc3Vic31jb25uZWN0KCl7cmV0dXJuIHRoaXMuY29ubmVjdGVkfHwodGhpcy5zdWJFdmVudHMoKSx0aGlzLmlvLl9yZWNvbm5lY3Rpbmd8fHRoaXMuaW8ub3BlbigpLCJvcGVuIj09PXRoaXMuaW8uX3JlYWR5U3RhdGUmJnRoaXMub25vcGVuKCkpLHRoaXN9b3Blbigpe3JldHVybiB0aGlzLmNvbm5lY3QoKX1zZW5kKC4uLnQpe3JldHVybiB0LnVuc2hpZnQoIm1lc3NhZ2UiKSx0aGlzLmVtaXQuYXBwbHkodGhpcyx0KSx0aGlzfWVtaXQodCwuLi5lKXtpZihFbi5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoJyInK3QrJyIgaXMgYSByZXNlcnZlZCBldmVudCBuYW1lJyk7ZS51bnNoaWZ0KHQpO2NvbnN0IHM9e3R5cGU6bW4uRVZFTlQsZGF0YTplLG9wdGlvbnM6e319O2lmKHMub3B0aW9ucy5jb21wcmVzcz0hMSE9PXRoaXMuZmxhZ3MuY29tcHJlc3MsImZ1bmN0aW9uIj09dHlwZW9mIGVbZS5sZW5ndGgtMV0pe2NvbnN0IHQ9dGhpcy5pZHMrKyxpPWUucG9wKCk7dGhpcy5fcmVnaXN0ZXJBY2tDYWxsYmFjayh0LGkpLHMuaWQ9dH1jb25zdCBpPXRoaXMuaW8uZW5naW5lJiZ0aGlzLmlvLmVuZ2luZS50cmFuc3BvcnQmJnRoaXMuaW8uZW5naW5lLnRyYW5zcG9ydC53cml0YWJsZTtyZXR1cm4gdGhpcy5mbGFncy52b2xhdGlsZSYmKCFpfHwhdGhpcy5jb25uZWN0ZWQpfHwodGhpcy5jb25uZWN0ZWQ/dGhpcy5wYWNrZXQocyk6dGhpcy5zZW5kQnVmZmVyLnB1c2gocykpLHRoaXMuZmxhZ3M9e30sdGhpc31fcmVnaXN0ZXJBY2tDYWxsYmFjayh0LGUpe2NvbnN0IHM9dGhpcy5mbGFncy50aW1lb3V0O2lmKHZvaWQgMD09PXMpcmV0dXJuIHZvaWQodGhpcy5hY2tzW3RdPWUpO2NvbnN0IGk9dGhpcy5pby5zZXRUaW1lb3V0Rm4oKCk9PntkZWxldGUgdGhpcy5hY2tzW3RdO2ZvcihsZXQgZT0wO2U8dGhpcy5zZW5kQnVmZmVyLmxlbmd0aDtlKyspdGhpcy5zZW5kQnVmZmVyW2VdLmlkPT09dCYmdGhpcy5zZW5kQnVmZmVyLnNwbGljZShlLDEpO2UuY2FsbCh0aGlzLG5ldyBFcnJvcigib3BlcmF0aW9uIGhhcyB0aW1lZCBvdXQiKSl9LHMpO3RoaXMuYWNrc1t0XT0oLi4udCk9Pnt0aGlzLmlvLmNsZWFyVGltZW91dEZuKGkpLGUuYXBwbHkodGhpcyxbbnVsbCwuLi50XSl9fXBhY2tldCh0KXt0Lm5zcD10aGlzLm5zcCx0aGlzLmlvLl9wYWNrZXQodCl9b25vcGVuKCl7ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuYXV0aD90aGlzLmF1dGgodD0+e3RoaXMucGFja2V0KHt0eXBlOm1uLkNPTk5FQ1QsZGF0YTp0fSl9KTp0aGlzLnBhY2tldCh7dHlwZTptbi5DT05ORUNULGRhdGE6dGhpcy5hdXRofSl9b25lcnJvcih0KXt0aGlzLmNvbm5lY3RlZHx8dGhpcy5lbWl0UmVzZXJ2ZWQoImNvbm5lY3RfZXJyb3IiLHQpfW9uY2xvc2UodCl7dGhpcy5jb25uZWN0ZWQ9ITEsdGhpcy5kaXNjb25uZWN0ZWQ9ITAsZGVsZXRlIHRoaXMuaWQsdGhpcy5lbWl0UmVzZXJ2ZWQoImRpc2Nvbm5lY3QiLHQpfW9ucGFja2V0KHQpe2lmKHQubnNwPT09dGhpcy5uc3Apc3dpdGNoKHQudHlwZSl7Y2FzZSBtbi5DT05ORUNUOmlmKHQuZGF0YSYmdC5kYXRhLnNpZCl7Y29uc3QgZT10LmRhdGEuc2lkO3RoaXMub25jb25uZWN0KGUpfWVsc2UgdGhpcy5lbWl0UmVzZXJ2ZWQoImNvbm5lY3RfZXJyb3IiLG5ldyBFcnJvcigiSXQgc2VlbXMgeW91IGFyZSB0cnlpbmcgdG8gcmVhY2ggYSBTb2NrZXQuSU8gc2VydmVyIGluIHYyLnggd2l0aCBhIHYzLnggY2xpZW50LCBidXQgdGhleSBhcmUgbm90IGNvbXBhdGlibGUgKG1vcmUgaW5mb3JtYXRpb24gaGVyZTogaHR0cHM6Ly9zb2NrZXQuaW8vZG9jcy92My9taWdyYXRpbmctZnJvbS0yLXgtdG8tMy0wLykiKSk7YnJlYWs7Y2FzZSBtbi5FVkVOVDp0aGlzLm9uZXZlbnQodCk7YnJlYWs7Y2FzZSBtbi5CSU5BUllfRVZFTlQ6YnJlYWs7Y2FzZSBtbi5BQ0s6dGhpcy5vbmFjayh0KTticmVhaztjYXNlIG1uLkJJTkFSWV9BQ0s6YnJlYWs7Y2FzZSBtbi5ESVNDT05ORUNUOnRoaXMub25kaXNjb25uZWN0KCk7YnJlYWs7Y2FzZSBtbi5DT05ORUNUX0VSUk9SOnRoaXMuZGVzdHJveSgpO2NvbnN0IGU9bmV3IEVycm9yKHQuZGF0YS5tZXNzYWdlKTtlLmRhdGE9dC5kYXRhLmRhdGEsdGhpcy5lbWl0UmVzZXJ2ZWQoImNvbm5lY3RfZXJyb3IiLGUpfX1vbmV2ZW50KHQpe2NvbnN0IGU9dC5kYXRhfHxbXTtudWxsIT10LmlkJiZlLnB1c2godGhpcy5hY2sodC5pZCkpLHRoaXMuY29ubmVjdGVkP3RoaXMuZW1pdEV2ZW50KGUpOnRoaXMucmVjZWl2ZUJ1ZmZlci5wdXNoKE9iamVjdC5mcmVlemUoZSkpfWVtaXRFdmVudCh0KXtpZih0aGlzLl9hbnlMaXN0ZW5lcnMmJnRoaXMuX2FueUxpc3RlbmVycy5sZW5ndGgpe2NvbnN0IGU9dGhpcy5fYW55TGlzdGVuZXJzLnNsaWNlKCk7Zm9yKGNvbnN0IHMgb2YgZSlzLmFwcGx5KHRoaXMsdCl9c3VwZXIuZW1pdC5hcHBseSh0aGlzLHQpfWFjayh0KXtjb25zdCBlPXRoaXM7bGV0IHM9ITE7cmV0dXJuIGZ1bmN0aW9uKC4uLmkpe3N8fChzPSEwLGUucGFja2V0KHt0eXBlOm1uLkFDSyxpZDp0LGRhdGE6aX0pKX19b25hY2sodCl7Y29uc3QgZT10aGlzLmFja3NbdC5pZF07ImZ1bmN0aW9uIj09dHlwZW9mIGUmJihlLmFwcGx5KHRoaXMsdC5kYXRhKSxkZWxldGUgdGhpcy5hY2tzW3QuaWRdKX1vbmNvbm5lY3QodCl7dGhpcy5pZD10LHRoaXMuY29ubmVjdGVkPSEwLHRoaXMuZGlzY29ubmVjdGVkPSExLHRoaXMuZW1pdEJ1ZmZlcmVkKCksdGhpcy5lbWl0UmVzZXJ2ZWQoImNvbm5lY3QiKX1lbWl0QnVmZmVyZWQoKXt0aGlzLnJlY2VpdmVCdWZmZXIuZm9yRWFjaCh0PT50aGlzLmVtaXRFdmVudCh0KSksdGhpcy5yZWNlaXZlQnVmZmVyPVtdLHRoaXMuc2VuZEJ1ZmZlci5mb3JFYWNoKHQ9PnRoaXMucGFja2V0KHQpKSx0aGlzLnNlbmRCdWZmZXI9W119b25kaXNjb25uZWN0KCl7dGhpcy5kZXN0cm95KCksdGhpcy5vbmNsb3NlKCJpbyBzZXJ2ZXIgZGlzY29ubmVjdCIpfWRlc3Ryb3koKXt0aGlzLnN1YnMmJih0aGlzLnN1YnMuZm9yRWFjaCh0PT50KCkpLHRoaXMuc3Vicz12b2lkIDApLHRoaXMuaW8uX2Rlc3Ryb3kodGhpcyl9ZGlzY29ubmVjdCgpe3JldHVybiB0aGlzLmNvbm5lY3RlZCYmdGhpcy5wYWNrZXQoe3R5cGU6bW4uRElTQ09OTkVDVH0pLHRoaXMuZGVzdHJveSgpLHRoaXMuY29ubmVjdGVkJiZ0aGlzLm9uY2xvc2UoImlvIGNsaWVudCBkaXNjb25uZWN0IiksdGhpc31jbG9zZSgpe3JldHVybiB0aGlzLmRpc2Nvbm5lY3QoKX1jb21wcmVzcyh0KXtyZXR1cm4gdGhpcy5mbGFncy5jb21wcmVzcz10LHRoaXN9Z2V0IHZvbGF0aWxlKCl7cmV0dXJuIHRoaXMuZmxhZ3Mudm9sYXRpbGU9ITAsdGhpc310aW1lb3V0KHQpe3JldHVybiB0aGlzLmZsYWdzLnRpbWVvdXQ9dCx0aGlzfW9uQW55KHQpe3JldHVybiB0aGlzLl9hbnlMaXN0ZW5lcnM9dGhpcy5fYW55TGlzdGVuZXJzfHxbXSx0aGlzLl9hbnlMaXN0ZW5lcnMucHVzaCh0KSx0aGlzfXByZXBlbmRBbnkodCl7cmV0dXJuIHRoaXMuX2FueUxpc3RlbmVycz10aGlzLl9hbnlMaXN0ZW5lcnN8fFtdLHRoaXMuX2FueUxpc3RlbmVycy51bnNoaWZ0KHQpLHRoaXN9b2ZmQW55KHQpe2lmKCF0aGlzLl9hbnlMaXN0ZW5lcnMpcmV0dXJuIHRoaXM7aWYodCl7Y29uc3QgZT10aGlzLl9hbnlMaXN0ZW5lcnM7Zm9yKGxldCBzPTA7czxlLmxlbmd0aDtzKyspaWYodD09PWVbc10pcmV0dXJuIGUuc3BsaWNlKHMsMSksdGhpc31lbHNlIHRoaXMuX2FueUxpc3RlbmVycz1bXTtyZXR1cm4gdGhpc31saXN0ZW5lcnNBbnkoKXtyZXR1cm4gdGhpcy5fYW55TGlzdGVuZXJzfHxbXX19O3ZhciBrbj1QaShmdW5jdGlvbigpe2lmKGJuKXJldHVybiB5bjtmdW5jdGlvbiB0KHQpe3Q9dHx8e30sdGhpcy5tcz10Lm1pbnx8MTAwLHRoaXMubWF4PXQubWF4fHwxZTQsdGhpcy5mYWN0b3I9dC5mYWN0b3J8fDIsdGhpcy5qaXR0ZXI9dC5qaXR0ZXI+MCYmdC5qaXR0ZXI8PTE/dC5qaXR0ZXI6MCx0aGlzLmF0dGVtcHRzPTB9cmV0dXJuIGJuPTEseW49dCx0LnByb3RvdHlwZS5kdXJhdGlvbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMubXMqTWF0aC5wb3codGhpcy5mYWN0b3IsdGhpcy5hdHRlbXB0cysrKTtpZih0aGlzLmppdHRlcil7dmFyIGU9TWF0aC5yYW5kb20oKSxzPU1hdGguZmxvb3IoZSp0aGlzLmppdHRlcip0KTt0PTEmTWF0aC5mbG9vcigxMCplKT90K3M6dC1zfXJldHVybiAwfE1hdGgubWluKHQsdGhpcy5tYXgpfSx0LnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuYXR0ZW1wdHM9MH0sdC5wcm90b3R5cGUuc2V0TWluPWZ1bmN0aW9uKHQpe3RoaXMubXM9dH0sdC5wcm90b3R5cGUuc2V0TWF4PWZ1bmN0aW9uKHQpe3RoaXMubWF4PXR9LHQucHJvdG90eXBlLnNldEppdHRlcj1mdW5jdGlvbih0KXt0aGlzLmppdHRlcj10fSx5bn0oKSksJG49Y2xhc3MgZXh0ZW5kcyBYaS5FbWl0dGVye2NvbnN0cnVjdG9yKHQsZSl7dmFyIHM7c3VwZXIoKSx0aGlzLm5zcHM9e30sdGhpcy5zdWJzPVtdLHQmJiJvYmplY3QiPT10eXBlb2YgdCYmKGU9dCx0PXZvaWQgMCksKGU9ZXx8e30pLnBhdGg9ZS5wYXRofHwiL3NvY2tldC5pbyIsdGhpcy5vcHRzPWUsc24odGhpcyxlKSx0aGlzLnJlY29ubmVjdGlvbighMSE9PWUucmVjb25uZWN0aW9uKSx0aGlzLnJlY29ubmVjdGlvbkF0dGVtcHRzKGUucmVjb25uZWN0aW9uQXR0ZW1wdHN8fDEvMCksdGhpcy5yZWNvbm5lY3Rpb25EZWxheShlLnJlY29ubmVjdGlvbkRlbGF5fHwxZTMpLHRoaXMucmVjb25uZWN0aW9uRGVsYXlNYXgoZS5yZWNvbm5lY3Rpb25EZWxheU1heHx8NWUzKSx0aGlzLnJhbmRvbWl6YXRpb25GYWN0b3IobnVsbCE9PShzPWUucmFuZG9taXphdGlvbkZhY3RvcikmJnZvaWQgMCE9PXM/czouNSksdGhpcy5iYWNrb2ZmPW5ldyBrbih7bWluOnRoaXMucmVjb25uZWN0aW9uRGVsYXkoKSxtYXg6dGhpcy5yZWNvbm5lY3Rpb25EZWxheU1heCgpLGppdHRlcjp0aGlzLnJhbmRvbWl6YXRpb25GYWN0b3IoKX0pLHRoaXMudGltZW91dChudWxsPT1lLnRpbWVvdXQ/MmU0OmUudGltZW91dCksdGhpcy5fcmVhZHlTdGF0ZT0iY2xvc2VkIix0aGlzLnVyaT10O2NvbnN0IGk9ZS5wYXJzZXJ8fHduO3RoaXMuZW5jb2Rlcj1uZXcgaS5FbmNvZGVyLHRoaXMuZGVjb2Rlcj1uZXcgaS5EZWNvZGVyLHRoaXMuX2F1dG9Db25uZWN0PSExIT09ZS5hdXRvQ29ubmVjdCx0aGlzLl9hdXRvQ29ubmVjdCYmdGhpcy5vcGVuKCl9cmVjb25uZWN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl9yZWNvbm5lY3Rpb249ISF0LHRoaXMpOnRoaXMuX3JlY29ubmVjdGlvbn1yZWNvbm5lY3Rpb25BdHRlbXB0cyh0KXtyZXR1cm4gdm9pZCAwPT09dD90aGlzLl9yZWNvbm5lY3Rpb25BdHRlbXB0czoodGhpcy5fcmVjb25uZWN0aW9uQXR0ZW1wdHM9dCx0aGlzKX1yZWNvbm5lY3Rpb25EZWxheSh0KXt2YXIgZTtyZXR1cm4gdm9pZCAwPT09dD90aGlzLl9yZWNvbm5lY3Rpb25EZWxheToodGhpcy5fcmVjb25uZWN0aW9uRGVsYXk9dCxudWxsPT09KGU9dGhpcy5iYWNrb2ZmKXx8dm9pZCAwPT09ZXx8ZS5zZXRNaW4odCksdGhpcyl9cmFuZG9taXphdGlvbkZhY3Rvcih0KXt2YXIgZTtyZXR1cm4gdm9pZCAwPT09dD90aGlzLl9yYW5kb21pemF0aW9uRmFjdG9yOih0aGlzLl9yYW5kb21pemF0aW9uRmFjdG9yPXQsbnVsbD09PShlPXRoaXMuYmFja29mZil8fHZvaWQgMD09PWV8fGUuc2V0Sml0dGVyKHQpLHRoaXMpfXJlY29ubmVjdGlvbkRlbGF5TWF4KHQpe3ZhciBlO3JldHVybiB2b2lkIDA9PT10P3RoaXMuX3JlY29ubmVjdGlvbkRlbGF5TWF4Oih0aGlzLl9yZWNvbm5lY3Rpb25EZWxheU1heD10LG51bGw9PT0oZT10aGlzLmJhY2tvZmYpfHx2b2lkIDA9PT1lfHxlLnNldE1heCh0KSx0aGlzKX10aW1lb3V0KHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl90aW1lb3V0PXQsdGhpcyk6dGhpcy5fdGltZW91dH1tYXliZVJlY29ubmVjdE9uT3BlbigpeyF0aGlzLl9yZWNvbm5lY3RpbmcmJnRoaXMuX3JlY29ubmVjdGlvbiYmMD09PXRoaXMuYmFja29mZi5hdHRlbXB0cyYmdGhpcy5yZWNvbm5lY3QoKX1vcGVuKHQpe2lmKH50aGlzLl9yZWFkeVN0YXRlLmluZGV4T2YoIm9wZW4iKSlyZXR1cm4gdGhpczt0aGlzLmVuZ2luZT1uZXcgZ24odGhpcy51cmksdGhpcy5vcHRzKTtjb25zdCBlPXRoaXMuZW5naW5lLHM9dGhpczt0aGlzLl9yZWFkeVN0YXRlPSJvcGVuaW5nIix0aGlzLnNraXBSZWNvbm5lY3Q9ITE7Y29uc3QgaT12bihlLCJvcGVuIixmdW5jdGlvbigpe3Mub25vcGVuKCksdCYmdCgpfSksbj12bihlLCJlcnJvciIsZT0+e3MuY2xlYW51cCgpLHMuX3JlYWR5U3RhdGU9ImNsb3NlZCIsdGhpcy5lbWl0UmVzZXJ2ZWQoImVycm9yIixlKSx0P3QoZSk6cy5tYXliZVJlY29ubmVjdE9uT3BlbigpfSk7aWYoITEhPT10aGlzLl90aW1lb3V0KXtjb25zdCB0PXRoaXMuX3RpbWVvdXQ7MD09PXQmJmkoKTtjb25zdCBzPXRoaXMuc2V0VGltZW91dEZuKCgpPT57aSgpLGUuY2xvc2UoKSxlLmVtaXQoImVycm9yIixuZXcgRXJyb3IoInRpbWVvdXQiKSl9LHQpO3RoaXMub3B0cy5hdXRvVW5yZWYmJnMudW5yZWYoKSx0aGlzLnN1YnMucHVzaChmdW5jdGlvbigpe2NsZWFyVGltZW91dChzKX0pfXJldHVybiB0aGlzLnN1YnMucHVzaChpKSx0aGlzLnN1YnMucHVzaChuKSx0aGlzfWNvbm5lY3QodCl7cmV0dXJuIHRoaXMub3Blbih0KX1vbm9wZW4oKXt0aGlzLmNsZWFudXAoKSx0aGlzLl9yZWFkeVN0YXRlPSJvcGVuIix0aGlzLmVtaXRSZXNlcnZlZCgib3BlbiIpO2NvbnN0IHQ9dGhpcy5lbmdpbmU7dGhpcy5zdWJzLnB1c2godm4odCwicGluZyIsemkodGhpcy5vbnBpbmcsdGhpcykpLHZuKHQsImRhdGEiLHppKHRoaXMub25kYXRhLHRoaXMpKSx2bih0LCJlcnJvciIsemkodGhpcy5vbmVycm9yLHRoaXMpKSx2bih0LCJjbG9zZSIsemkodGhpcy5vbmNsb3NlLHRoaXMpKSx2bih0aGlzLmRlY29kZXIsImRlY29kZWQiLHppKHRoaXMub25kZWNvZGVkLHRoaXMpKSl9b25waW5nKCl7dGhpcy5lbWl0UmVzZXJ2ZWQoInBpbmciKX1vbmRhdGEodCl7dGhpcy5kZWNvZGVyLmFkZCh0KX1vbmRlY29kZWQodCl7dGhpcy5lbWl0UmVzZXJ2ZWQoInBhY2tldCIsdCl9b25lcnJvcih0KXt0aGlzLmVtaXRSZXNlcnZlZCgiZXJyb3IiLHQpfXNvY2tldCh0LGUpe2xldCBzPXRoaXMubnNwc1t0XTtyZXR1cm4gc3x8KHM9bmV3IENuKHRoaXMsdCxlKSx0aGlzLm5zcHNbdF09cyksc31fZGVzdHJveSh0KXtjb25zdCBlPU9iamVjdC5rZXlzKHRoaXMubnNwcyk7Zm9yKGNvbnN0IHMgb2YgZSlpZih0aGlzLm5zcHNbc10uYWN0aXZlKXJldHVybjt0aGlzLl9jbG9zZSgpfV9wYWNrZXQodCl7Y29uc3QgZT10aGlzLmVuY29kZXIuZW5jb2RlKHQpO2ZvcihsZXQgcz0wO3M8ZS5sZW5ndGg7cysrKXRoaXMuZW5naW5lLndyaXRlKGVbc10sdC5vcHRpb25zKX1jbGVhbnVwKCl7dGhpcy5zdWJzLmZvckVhY2godD0+dCgpKSx0aGlzLnN1YnMubGVuZ3RoPTAsdGhpcy5kZWNvZGVyLmRlc3Ryb3koKX1fY2xvc2UoKXt0aGlzLnNraXBSZWNvbm5lY3Q9ITAsdGhpcy5fcmVjb25uZWN0aW5nPSExLHRoaXMub25jbG9zZSgiZm9yY2VkIGNsb3NlIiksdGhpcy5lbmdpbmUmJnRoaXMuZW5naW5lLmNsb3NlKCl9ZGlzY29ubmVjdCgpe3JldHVybiB0aGlzLl9jbG9zZSgpfW9uY2xvc2UodCl7dGhpcy5jbGVhbnVwKCksdGhpcy5iYWNrb2ZmLnJlc2V0KCksdGhpcy5fcmVhZHlTdGF0ZT0iY2xvc2VkIix0aGlzLmVtaXRSZXNlcnZlZCgiY2xvc2UiLHQpLHRoaXMuX3JlY29ubmVjdGlvbiYmIXRoaXMuc2tpcFJlY29ubmVjdCYmdGhpcy5yZWNvbm5lY3QoKX1yZWNvbm5lY3QoKXtpZih0aGlzLl9yZWNvbm5lY3Rpbmd8fHRoaXMuc2tpcFJlY29ubmVjdClyZXR1cm4gdGhpcztjb25zdCB0PXRoaXM7aWYodGhpcy5iYWNrb2ZmLmF0dGVtcHRzPj10aGlzLl9yZWNvbm5lY3Rpb25BdHRlbXB0cyl0aGlzLmJhY2tvZmYucmVzZXQoKSx0aGlzLmVtaXRSZXNlcnZlZCgicmVjb25uZWN0X2ZhaWxlZCIpLHRoaXMuX3JlY29ubmVjdGluZz0hMTtlbHNle2NvbnN0IGU9dGhpcy5iYWNrb2ZmLmR1cmF0aW9uKCk7dGhpcy5fcmVjb25uZWN0aW5nPSEwO2NvbnN0IHM9dGhpcy5zZXRUaW1lb3V0Rm4oKCk9Pnt0LnNraXBSZWNvbm5lY3R8fCh0aGlzLmVtaXRSZXNlcnZlZCgicmVjb25uZWN0X2F0dGVtcHQiLHQuYmFja29mZi5hdHRlbXB0cyksdC5za2lwUmVjb25uZWN0fHx0Lm9wZW4oZT0+e2U/KHQuX3JlY29ubmVjdGluZz0hMSx0LnJlY29ubmVjdCgpLHRoaXMuZW1pdFJlc2VydmVkKCJyZWNvbm5lY3RfZXJyb3IiLGUpKTp0Lm9ucmVjb25uZWN0KCl9KSl9LGUpO3RoaXMub3B0cy5hdXRvVW5yZWYmJnMudW5yZWYoKSx0aGlzLnN1YnMucHVzaChmdW5jdGlvbigpe2NsZWFyVGltZW91dChzKX0pfX1vbnJlY29ubmVjdCgpe2NvbnN0IHQ9dGhpcy5iYWNrb2ZmLmF0dGVtcHRzO3RoaXMuX3JlY29ubmVjdGluZz0hMSx0aGlzLmJhY2tvZmYucmVzZXQoKSx0aGlzLmVtaXRSZXNlcnZlZCgicmVjb25uZWN0Iix0KX19LEFuPXt9O2Z1bmN0aW9uIEJuKHQsZSl7Im9iamVjdCI9PXR5cGVvZiB0JiYoZT10LHQ9dm9pZCAwKTtjb25zdCBzPWZ1bmN0aW9uKHQsZT0iIixzKXtsZXQgaT10O3M9c3x8InVuZGVmaW5lZCIhPXR5cGVvZiBsb2NhdGlvbiYmbG9jYXRpb24sdD8/PXMucHJvdG9jb2wrIi8vIitzLmhvc3QsInN0cmluZyI9PXR5cGVvZiB0JiYoIi8iPT09dC5jaGFyQXQoMCkmJih0PSIvIj09PXQuY2hhckF0KDEpP3MucHJvdG9jb2wrdDpzLmhvc3QrdCksL14oaHR0cHM/fHdzcz8pOlwvXC8vLnRlc3QodCl8fCh0PXZvaWQgMCE9PXM/cy5wcm90b2NvbCsiLy8iK3Q6Imh0dHBzOi8vIit0KSxpPUxpKHQpKSxpLnBvcnR8fCgvXihodHRwfHdzKSQvLnRlc3QoaS5wcm90b2NvbCk/aS5wb3J0PSI4MCI6L14oaHR0cHx3cylzJC8udGVzdChpLnByb3RvY29sKSYmKGkucG9ydD0iNDQzIikpLGkucGF0aD1pLnBhdGh8fCIvIjtjb25zdCBuPS0xIT09aS5ob3N0LmluZGV4T2YoIjoiKT8iWyIraS5ob3N0KyJdIjppLmhvc3Q7cmV0dXJuIGkuaWQ9aS5wcm90b2NvbCsiOi8vIituKyI6IitpLnBvcnQrZSxpLmhyZWY9aS5wcm90b2NvbCsiOi8vIituKyhzJiZzLnBvcnQ9PT1pLnBvcnQ/IiI6IjoiK2kucG9ydCksaX0odCwoZT1lfHx7fSkucGF0aHx8Ii9zb2NrZXQuaW8iKSxpPXMuc291cmNlLG49cy5pZCxyPXMucGF0aCxvPUFuW25dJiZyIGluIEFuW25dLm5zcHM7bGV0IHU7cmV0dXJuIGUuZm9yY2VOZXd8fGVbImZvcmNlIG5ldyBjb25uZWN0aW9uIl18fCExPT09ZS5tdWx0aXBsZXh8fG8/dT1uZXcgJG4oaSxlKTooQW5bbl18fChBbltuXT1uZXcgJG4oaSxlKSksdT1BbltuXSkscy5xdWVyeSYmIWUucXVlcnkmJihlLnF1ZXJ5PXMucXVlcnlLZXkpLHUuc29ja2V0KHMucGF0aCxlKX1PYmplY3QuYXNzaWduKEJuLHtNYW5hZ2VyOiRuLFNvY2tldDpDbixpbzpCbixjb25uZWN0OkJufSk7dmFyIHhuPSJpbnZhbGlkIixqbj0idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyLEluPSIwMTIzNDU2Nzg5YWJjZGVmIi5zcGxpdCgiIiksU249Wy0yMTQ3NDgzNjQ4LDgzODg2MDgsMzI3NjgsMTI4XSxSbj1bMjQsMTYsOCwwXSxPbj1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XSxUbj1bXTtmdW5jdGlvbiB6bih0KXt0PyhUblswXT1UblsxNl09VG5bMV09VG5bMl09VG5bM109VG5bNF09VG5bNV09VG5bNl09VG5bN109VG5bOF09VG5bOV09VG5bMTBdPVRuWzExXT1UblsxMl09VG5bMTNdPVRuWzE0XT1UblsxNV09MCx0aGlzLmJsb2Nrcz1Ubik6dGhpcy5ibG9ja3M9WzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0sdGhpcy5oMD0xNzc5MDMzNzAzLHRoaXMuaDE9MzE0NDEzNDI3Nyx0aGlzLmgyPTEwMTM5MDQyNDIsdGhpcy5oMz0yNzczNDgwNzYyLHRoaXMuaDQ9MTM1OTg5MzExOSx0aGlzLmg1PTI2MDA4MjI5MjQsdGhpcy5oNj01Mjg3MzQ2MzUsdGhpcy5oNz0xNTQxNDU5MjI1LHRoaXMuYmxvY2s9dGhpcy5zdGFydD10aGlzLmJ5dGVzPXRoaXMuaEJ5dGVzPTAsdGhpcy5maW5hbGl6ZWQ9dGhpcy5oYXNoZWQ9ITEsdGhpcy5maXJzdD0hMH1mdW5jdGlvbiBQbih0LGUpe3ZhciBzLGk9dHlwZW9mIHQ7aWYoInN0cmluZyI9PT1pKXt2YXIgbixyPVtdLG89dC5sZW5ndGgsdT0wO2ZvcihzPTA7czxvOysrcykobj10LmNoYXJDb2RlQXQocykpPDEyOD9yW3UrK109bjpuPDIwNDg/KHJbdSsrXT0xOTJ8bj4+NixyW3UrK109MTI4fDYzJm4pOm48NTUyOTZ8fG4+PTU3MzQ0PyhyW3UrK109MjI0fG4+PjEyLHJbdSsrXT0xMjh8bj4+NiY2MyxyW3UrK109MTI4fDYzJm4pOihuPTY1NTM2KygoMTAyMyZuKTw8MTB8MTAyMyZ0LmNoYXJDb2RlQXQoKytzKSksclt1KytdPTI0MHxuPj4xOCxyW3UrK109MTI4fG4+PjEyJjYzLHJbdSsrXT0xMjh8bj4+NiY2MyxyW3UrK109MTI4fDYzJm4pO3Q9cn1lbHNle2lmKCJvYmplY3QiIT09aSl0aHJvdyBuZXcgRXJyb3IoeG4pO2lmKG51bGw9PT10KXRocm93IG5ldyBFcnJvcih4bik7aWYoam4mJnQuY29uc3RydWN0b3I9PT1BcnJheUJ1ZmZlcil0PW5ldyBVaW50OEFycmF5KHQpO2Vsc2UgaWYoIShBcnJheS5pc0FycmF5KHQpfHxqbiYmQXJyYXlCdWZmZXIuaXNWaWV3KHQpKSl0aHJvdyBuZXcgRXJyb3IoeG4pfXQubGVuZ3RoPjY0JiYodD1uZXcgem4oITApLnVwZGF0ZSh0KS5kaWdlc3QoKSk7dmFyIGw9W10sYT1bXTtmb3Iocz0wO3M8NjQ7KytzKXt2YXIgaD10W3NdfHwwO2xbc109OTJeaCxhW3NdPTU0Xmh9em4uY2FsbCh0aGlzLGUpLHRoaXMudXBkYXRlKGEpLHRoaXMub0tleVBhZD1sLHRoaXMuaW5uZXI9ITAsdGhpcy5tZW1vcnk9ZX16bi5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQpe2lmKCF0aGlzLmZpbmFsaXplZCl7dmFyIGUscz10eXBlb2YgdDtpZigic3RyaW5nIiE9PXMpe2lmKCJvYmplY3QiIT09cyl0aHJvdyBuZXcgRXJyb3IoeG4pO2lmKG51bGw9PT10KXRocm93IG5ldyBFcnJvcih4bik7aWYoam4mJnQuY29uc3RydWN0b3I9PT1BcnJheUJ1ZmZlcil0PW5ldyBVaW50OEFycmF5KHQpO2Vsc2UgaWYoIShBcnJheS5pc0FycmF5KHQpfHxqbiYmQXJyYXlCdWZmZXIuaXNWaWV3KHQpKSl0aHJvdyBuZXcgRXJyb3IoeG4pO2U9ITB9Zm9yKHZhciBpLG4scj0wLG89dC5sZW5ndGgsdT10aGlzLmJsb2NrcztyPG87KXtpZih0aGlzLmhhc2hlZCYmKHRoaXMuaGFzaGVkPSExLHVbMF09dGhpcy5ibG9jayx1WzE2XT11WzFdPXVbMl09dVszXT11WzRdPXVbNV09dVs2XT11WzddPXVbOF09dVs5XT11WzEwXT11WzExXT11WzEyXT11WzEzXT11WzE0XT11WzE1XT0wKSxlKWZvcihuPXRoaXMuc3RhcnQ7cjxvJiZuPDY0Oysrcil1W24+PjJdfD10W3JdPDxSblszJm4rK107ZWxzZSBmb3Iobj10aGlzLnN0YXJ0O3I8byYmbjw2NDsrK3IpKGk9dC5jaGFyQ29kZUF0KHIpKTwxMjg/dVtuPj4yXXw9aTw8Um5bMyZuKytdOmk8MjA0OD8odVtuPj4yXXw9KDE5MnxpPj42KTw8Um5bMyZuKytdLHVbbj4+Ml18PSgxMjh8NjMmaSk8PFJuWzMmbisrXSk6aTw1NTI5Nnx8aT49NTczNDQ/KHVbbj4+Ml18PSgyMjR8aT4+MTIpPDxSblszJm4rK10sdVtuPj4yXXw9KDEyOHxpPj42JjYzKTw8Um5bMyZuKytdLHVbbj4+Ml18PSgxMjh8NjMmaSk8PFJuWzMmbisrXSk6KGk9NjU1MzYrKCgxMDIzJmkpPDwxMHwxMDIzJnQuY2hhckNvZGVBdCgrK3IpKSx1W24+PjJdfD0oMjQwfGk+PjE4KTw8Um5bMyZuKytdLHVbbj4+Ml18PSgxMjh8aT4+MTImNjMpPDxSblszJm4rK10sdVtuPj4yXXw9KDEyOHxpPj42JjYzKTw8Um5bMyZuKytdLHVbbj4+Ml18PSgxMjh8NjMmaSk8PFJuWzMmbisrXSk7dGhpcy5sYXN0Qnl0ZUluZGV4PW4sdGhpcy5ieXRlcys9bi10aGlzLnN0YXJ0LG4+PTY0Pyh0aGlzLmJsb2NrPXVbMTZdLHRoaXMuc3RhcnQ9bi02NCx0aGlzLmhhc2goKSx0aGlzLmhhc2hlZD0hMCk6dGhpcy5zdGFydD1ufXJldHVybiB0aGlzLmJ5dGVzPjQyOTQ5NjcyOTUmJih0aGlzLmhCeXRlcys9dGhpcy5ieXRlcy80Mjk0OTY3Mjk2fDAsdGhpcy5ieXRlcz10aGlzLmJ5dGVzJTQyOTQ5NjcyOTYpLHRoaXN9fSx6bi5wcm90b3R5cGUuZmluYWxpemU9ZnVuY3Rpb24oKXtpZighdGhpcy5maW5hbGl6ZWQpe3RoaXMuZmluYWxpemVkPSEwO3ZhciB0PXRoaXMuYmxvY2tzLGU9dGhpcy5sYXN0Qnl0ZUluZGV4O3RbMTZdPXRoaXMuYmxvY2ssdFtlPj4yXXw9U25bMyZlXSx0aGlzLmJsb2NrPXRbMTZdLGU+PTU2JiYodGhpcy5oYXNoZWR8fHRoaXMuaGFzaCgpLHRbMF09dGhpcy5ibG9jayx0WzE2XT10WzFdPXRbMl09dFszXT10WzRdPXRbNV09dFs2XT10WzddPXRbOF09dFs5XT10WzEwXT10WzExXT10WzEyXT10WzEzXT10WzE0XT10WzE1XT0wKSx0WzE0XT10aGlzLmhCeXRlczw8M3x0aGlzLmJ5dGVzPj4+MjksdFsxNV09dGhpcy5ieXRlczw8Myx0aGlzLmhhc2goKX19LHpuLnByb3RvdHlwZS5oYXNoPWZ1bmN0aW9uKCl7dmFyIHQsZSxzLGksbixyLG8sdSxsLGE9dGhpcy5oMCxoPXRoaXMuaDEsYz10aGlzLmgyLGQ9dGhpcy5oMyxEPXRoaXMuaDQsZj10aGlzLmg1LHA9dGhpcy5oNixfPXRoaXMuaDcsbT10aGlzLmJsb2Nrcztmb3IodD0xNjt0PDY0OysrdCllPSgobj1tW3QtMTVdKT4+Pjd8bjw8MjUpXihuPj4+MTh8bjw8MTQpXm4+Pj4zLHM9KChuPW1bdC0yXSk+Pj4xN3xuPDwxNSleKG4+Pj4xOXxuPDwxMylebj4+PjEwLG1bdF09bVt0LTE2XStlK21bdC03XStzfDA7Zm9yKGw9aCZjLHQ9MDt0PDY0O3QrPTQpdGhpcy5maXJzdD8ocj03MDQ3NTExMDksXz0obj1tWzBdLTIxMDI0NDI0OCktMTUyMTQ4NjUzNHwwLGQ9bisxNDM2OTQ1NjV8MCx0aGlzLmZpcnN0PSExKTooZT0oYT4+PjJ8YTw8MzApXihhPj4+MTN8YTw8MTkpXihhPj4+MjJ8YTw8MTApLGk9KHI9YSZoKV5hJmNebCxfPWQrKG49Xysocz0oRD4+PjZ8RDw8MjYpXihEPj4+MTF8RDw8MjEpXihEPj4+MjV8RDw8NykpKyhEJmZefkQmcCkrT25bdF0rbVt0XSl8MCxkPW4rKGUraSl8MCksZT0oZD4+PjJ8ZDw8MzApXihkPj4+MTN8ZDw8MTkpXihkPj4+MjJ8ZDw8MTApLGk9KG89ZCZhKV5kJmhecixwPWMrKG49cCsocz0oXz4+PjZ8Xzw8MjYpXihfPj4+MTF8Xzw8MjEpXihfPj4+MjV8Xzw8NykpKyhfJkRefl8mZikrT25bdCsxXSttW3QrMV0pfDAsZT0oKGM9bisoZStpKXwwKT4+PjJ8Yzw8MzApXihjPj4+MTN8Yzw8MTkpXihjPj4+MjJ8Yzw8MTApLGk9KHU9YyZkKV5jJmFebyxmPWgrKG49Zisocz0ocD4+PjZ8cDw8MjYpXihwPj4+MTF8cDw8MjEpXihwPj4+MjV8cDw8NykpKyhwJl9efnAmRCkrT25bdCsyXSttW3QrMl0pfDAsZT0oKGg9bisoZStpKXwwKT4+PjJ8aDw8MzApXihoPj4+MTN8aDw8MTkpXihoPj4+MjJ8aDw8MTApLGk9KGw9aCZjKV5oJmRedSxEPWErKG49RCsocz0oZj4+PjZ8Zjw8MjYpXihmPj4+MTF8Zjw8MjEpXihmPj4+MjV8Zjw8NykpKyhmJnBefmYmXykrT25bdCszXSttW3QrM10pfDAsYT1uKyhlK2kpfDA7dGhpcy5oMD10aGlzLmgwK2F8MCx0aGlzLmgxPXRoaXMuaDEraHwwLHRoaXMuaDI9dGhpcy5oMitjfDAsdGhpcy5oMz10aGlzLmgzK2R8MCx0aGlzLmg0PXRoaXMuaDQrRHwwLHRoaXMuaDU9dGhpcy5oNStmfDAsdGhpcy5oNj10aGlzLmg2K3B8MCx0aGlzLmg3PXRoaXMuaDcrX3wwfSx6bi5wcm90b3R5cGUuaGV4PWZ1bmN0aW9uKCl7dGhpcy5maW5hbGl6ZSgpO3ZhciB0PXRoaXMuaDAsZT10aGlzLmgxLHM9dGhpcy5oMixpPXRoaXMuaDMsbj10aGlzLmg0LHI9dGhpcy5oNSxvPXRoaXMuaDYsdT10aGlzLmg3O3JldHVybiBJblt0Pj4yOCYxNV0rSW5bdD4+MjQmMTVdK0luW3Q+PjIwJjE1XStJblt0Pj4xNiYxNV0rSW5bdD4+MTImMTVdK0luW3Q+PjgmMTVdK0luW3Q+PjQmMTVdK0luWzE1JnRdK0luW2U+PjI4JjE1XStJbltlPj4yNCYxNV0rSW5bZT4+MjAmMTVdK0luW2U+PjE2JjE1XStJbltlPj4xMiYxNV0rSW5bZT4+OCYxNV0rSW5bZT4+NCYxNV0rSW5bMTUmZV0rSW5bcz4+MjgmMTVdK0luW3M+PjI0JjE1XStJbltzPj4yMCYxNV0rSW5bcz4+MTYmMTVdK0luW3M+PjEyJjE1XStJbltzPj44JjE1XStJbltzPj40JjE1XStJblsxNSZzXStJbltpPj4yOCYxNV0rSW5baT4+MjQmMTVdK0luW2k+PjIwJjE1XStJbltpPj4xNiYxNV0rSW5baT4+MTImMTVdK0luW2k+PjgmMTVdK0luW2k+PjQmMTVdK0luWzE1JmldK0luW24+PjI4JjE1XStJbltuPj4yNCYxNV0rSW5bbj4+MjAmMTVdK0luW24+PjE2JjE1XStJbltuPj4xMiYxNV0rSW5bbj4+OCYxNV0rSW5bbj4+NCYxNV0rSW5bMTUmbl0rSW5bcj4+MjgmMTVdK0luW3I+PjI0JjE1XStJbltyPj4yMCYxNV0rSW5bcj4+MTYmMTVdK0luW3I+PjEyJjE1XStJbltyPj44JjE1XStJbltyPj40JjE1XStJblsxNSZyXStJbltvPj4yOCYxNV0rSW5bbz4+MjQmMTVdK0luW28+PjIwJjE1XStJbltvPj4xNiYxNV0rSW5bbz4+MTImMTVdK0luW28+PjgmMTVdK0luW28+PjQmMTVdK0luWzE1Jm9dK0luW3U+PjI4JjE1XStJblt1Pj4yNCYxNV0rSW5bdT4+MjAmMTVdK0luW3U+PjE2JjE1XStJblt1Pj4xMiYxNV0rSW5bdT4+OCYxNV0rSW5bdT4+NCYxNV0rSW5bMTUmdV19LHpuLnByb3RvdHlwZS50b1N0cmluZz16bi5wcm90b3R5cGUuaGV4LHpuLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oKXt0aGlzLmZpbmFsaXplKCk7dmFyIHQ9dGhpcy5oMCxlPXRoaXMuaDEscz10aGlzLmgyLGk9dGhpcy5oMyxuPXRoaXMuaDQscj10aGlzLmg1LG89dGhpcy5oNix1PXRoaXMuaDc7cmV0dXJuW3Q+PjI0JjI1NSx0Pj4xNiYyNTUsdD4+OCYyNTUsMjU1JnQsZT4+MjQmMjU1LGU+PjE2JjI1NSxlPj44JjI1NSwyNTUmZSxzPj4yNCYyNTUscz4+MTYmMjU1LHM+PjgmMjU1LDI1NSZzLGk+PjI0JjI1NSxpPj4xNiYyNTUsaT4+OCYyNTUsMjU1Jmksbj4+MjQmMjU1LG4+PjE2JjI1NSxuPj44JjI1NSwyNTUmbixyPj4yNCYyNTUscj4+MTYmMjU1LHI+PjgmMjU1LDI1NSZyLG8+PjI0JjI1NSxvPj4xNiYyNTUsbz4+OCYyNTUsMjU1Jm8sdT4+MjQmMjU1LHU+PjE2JjI1NSx1Pj44JjI1NSwyNTUmdV19LFBuLnByb3RvdHlwZT1uZXcgem4sUG4ucHJvdG90eXBlLmZpbmFsaXplPWZ1bmN0aW9uKCl7aWYoem4ucHJvdG90eXBlLmZpbmFsaXplLmNhbGwodGhpcyksdGhpcy5pbm5lcil7dGhpcy5pbm5lcj0hMTt2YXIgdD10aGlzLmRpZ2VzdCgpO3puLmNhbGwodGhpcyx0aGlzLm1lbW9yeSksdGhpcy51cGRhdGUodGhpcy5vS2V5UGFkKSx0aGlzLnVwZGF0ZSh0KSx6bi5wcm90b3R5cGUuZmluYWxpemUuY2FsbCh0aGlzKX19O3ZhciBMbixNbj0oKExuPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgem4oITApLnVwZGF0ZSh0KS5oZXgoKX0pLmNyZWF0ZT1mdW5jdGlvbigpe3JldHVybiBuZXcgem59LExuLnVwZGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gTG4uY3JlYXRlKCkudXBkYXRlKHQpfSxMbik7TW4uaG1hYz1mdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBQbih0LCEwKS51cGRhdGUoZSkuaGV4KCl9O3JldHVybiB0LmNyZWF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IFBuKHQpfSx0LnVwZGF0ZT1mdW5jdGlvbihlLHMpe3JldHVybiB0LmNyZWF0ZShlKS51cGRhdGUocyl9LHR9KCk7dmFyIFVuLHFuPXtleHBvcnRzOnt9fSxWbj1xbi5leHBvcnRzO3ZhciBObj1QaShmdW5jdGlvbigpe3JldHVybiBVbnx8KFVuPTEsdD1xbixpPWZ1bmN0aW9uKHQpe2lmKCJvYmplY3QiIT10eXBlb2YgdC5kb2N1bWVudCl0aHJvdyBuZXcgRXJyb3IoIkNvb2tpZXMuanMgcmVxdWlyZXMgYSBgd2luZG93YCB3aXRoIGEgYGRvY3VtZW50YCBvYmplY3QiKTt2YXIgZT1mdW5jdGlvbih0LHMsaSl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP2UuZ2V0KHQpOmUuc2V0KHQscyxpKX07cmV0dXJuIGUuX2RvY3VtZW50PXQuZG9jdW1lbnQsZS5fY2FjaGVLZXlQcmVmaXg9ImNvb2tleS4iLGUuX21heEV4cGlyZURhdGU9bmV3IERhdGUoIkZyaSwgMzEgRGVjIDk5OTkgMjM6NTk6NTkgVVRDIiksZS5kZWZhdWx0cz17cGF0aDoiLyIsc2VjdXJlOiExfSxlLmdldD1mdW5jdGlvbih0KXtlLl9jYWNoZWREb2N1bWVudENvb2tpZSE9PWUuX2RvY3VtZW50LmNvb2tpZSYmZS5fcmVuZXdDYWNoZSgpO3ZhciBpPWUuX2NhY2hlW2UuX2NhY2hlS2V5UHJlZml4K3RdO3JldHVybiBpPT09cz9zOmRlY29kZVVSSUNvbXBvbmVudChpKX0sZS5zZXQ9ZnVuY3Rpb24odCxpLG4pe3JldHVybihuPWUuX2dldEV4dGVuZGVkT3B0aW9ucyhuKSkuZXhwaXJlcz1lLl9nZXRFeHBpcmVzRGF0ZShpPT09cz8tMTpuLmV4cGlyZXMpLGUuX2RvY3VtZW50LmNvb2tpZT1lLl9nZW5lcmF0ZUNvb2tpZVN0cmluZyh0LGksbiksZX0sZS5leHBpcmU9ZnVuY3Rpb24odCxpKXtyZXR1cm4gZS5zZXQodCxzLGkpfSxlLl9nZXRFeHRlbmRlZE9wdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJue3BhdGg6dCYmdC5wYXRofHxlLmRlZmF1bHRzLnBhdGgsZG9tYWluOnQmJnQuZG9tYWlufHxlLmRlZmF1bHRzLmRvbWFpbixleHBpcmVzOnQmJnQuZXhwaXJlc3x8ZS5kZWZhdWx0cy5leHBpcmVzLHNlY3VyZTp0JiZ0LnNlY3VyZSE9PXM/dC5zZWN1cmU6ZS5kZWZhdWx0cy5zZWN1cmV9fSxlLl9pc1ZhbGlkRGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBEYXRlXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkmJiFpc05hTih0LmdldFRpbWUoKSl9LGUuX2dldEV4cGlyZXNEYXRlPWZ1bmN0aW9uKHQscyl7aWYocz1zfHxuZXcgRGF0ZSwibnVtYmVyIj09dHlwZW9mIHQ/dD10PT09MS8wP2UuX21heEV4cGlyZURhdGU6bmV3IERhdGUocy5nZXRUaW1lKCkrMWUzKnQpOiJzdHJpbmciPT10eXBlb2YgdCYmKHQ9bmV3IERhdGUodCkpLHQmJiFlLl9pc1ZhbGlkRGF0ZSh0KSl0aHJvdyBuZXcgRXJyb3IoImBleHBpcmVzYCBwYXJhbWV0ZXIgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBhIHZhbGlkIERhdGUgaW5zdGFuY2UiKTtyZXR1cm4gdH0sZS5fZ2VuZXJhdGVDb29raWVTdHJpbmc9ZnVuY3Rpb24odCxlLHMpe3ZhciBpPSh0PSh0PXQucmVwbGFjZSgvW14jJCYrXF5gfF0vZyxlbmNvZGVVUklDb21wb25lbnQpKS5yZXBsYWNlKC9cKC9nLCIlMjgiKS5yZXBsYWNlKC9cKS9nLCIlMjkiKSkrIj0iKyhlPShlKyIiKS5yZXBsYWNlKC9bXiEjJCYtK1wtLTo8LVxbXF0tfl0vZyxlbmNvZGVVUklDb21wb25lbnQpKTtyZXR1cm4gaSs9KHM9c3x8e30pLnBhdGg/IjtwYXRoPSIrcy5wYXRoOiIiLGkrPXMuZG9tYWluPyI7ZG9tYWluPSIrcy5kb21haW46IiIsKGkrPXMuZXhwaXJlcz8iO2V4cGlyZXM9IitzLmV4cGlyZXMudG9VVENTdHJpbmcoKToiIikrKHMuc2VjdXJlPyI7c2VjdXJlIjoiIil9LGUuX2dldENhY2hlRnJvbVN0cmluZz1mdW5jdGlvbih0KXtmb3IodmFyIGk9e30sbj10P3Quc3BsaXQoIjsgIik6W10scj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgbz1lLl9nZXRLZXlWYWx1ZVBhaXJGcm9tQ29va2llU3RyaW5nKG5bcl0pO2lbZS5fY2FjaGVLZXlQcmVmaXgrby5rZXldPT09cyYmKGlbZS5fY2FjaGVLZXlQcmVmaXgrby5rZXldPW8udmFsdWUpfXJldHVybiBpfSxlLl9nZXRLZXlWYWx1ZVBhaXJGcm9tQ29va2llU3RyaW5nPWZ1bmN0aW9uKHQpe3ZhciBlPXQuaW5kZXhPZigiPSIpO2U9ZTwwP3QubGVuZ3RoOmU7dmFyIHMsaT10LnN1YnN0cigwLGUpO3RyeXtzPWRlY29kZVVSSUNvbXBvbmVudChpKX1jYXRjaCh0KXtjb25zb2xlJiZjb25zb2xlLmVycm9yfXJldHVybntrZXk6cyx2YWx1ZTp0LnN1YnN0cihlKzEpfX0sZS5fcmVuZXdDYWNoZT1mdW5jdGlvbigpe2UuX2NhY2hlPWUuX2dldENhY2hlRnJvbVN0cmluZyhlLl9kb2N1bWVudC5jb29raWUpLGUuX2NhY2hlZERvY3VtZW50Q29va2llPWUuX2RvY3VtZW50LmNvb2tpZX0sZS5fYXJlRW5hYmxlZD1mdW5jdGlvbigpe3ZhciB0PSJjb29raWVzLmpzIixzPSIxIj09PWUuc2V0KHQsMSkuZ2V0KHQpO3JldHVybiBlLmV4cGlyZSh0KSxzfSxlLmVuYWJsZWQ9ZS5fYXJlRW5hYmxlZCgpLGV9LG49KGU9InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3c/Vm46d2luZG93KSYmIm9iamVjdCI9PXR5cGVvZiBlLmRvY3VtZW50P2koZSk6aSwodC5leHBvcnRzPW4pLkNvb2tpZXM9bikscW4uZXhwb3J0czt2YXIgdCxlLHMsaSxufSgpKSxIbj1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnBhcmVudD10LHRoaXMuaCgpfXNldEN1cnJlbnRTZXNzaW9uQ2hpbGRJZCh0PW51bGwpe3Q9PT10aGlzLnBhcmVudC5TZXNzaW9uLl9nZXRQYXJlbnRTZXNzaW9uSWQoKSYmKHQ9bnVsbCksdGhpcy5fc2Vzc2lvbkNoaWxkSWQ9dH1zZXRJZ25vcmVQcml2YWN5KHQ9ITEpe3RoaXMuX2lnbm9yZVByaXZhY3k9dH1zZXRWaXNpdG9yQ29tcG9zZSh0PSEwKXt0aGlzLl92aXNpdG9yQ29tcG9zZT10fXJlc2V0KCl7dGhpcy5oKCl9aCgpe3RoaXMuX3Nlc3Npb25DaGlsZElkPW51bGwsdGhpcy5faWdub3JlUHJpdmFjeT0hMSx0aGlzLl92aXNpdG9yQ29tcG9zZT0hMH19LFduPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMucGFyZW50PXR9X2dldCh0KXtsZXQgZT10aGlzLnBhcmVudC5jb29raWUuZ2V0KHQpO2lmKHZvaWQgMD09PWUpdHJ5e2lmKHdpbmRvdy5sb2NhbFN0b3JhZ2UmJiJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0pe2xldCBzPXBhcnNlSW50KHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShgJHt0fTplYCl8fCIwIiwxMCk7cz4wJiZzPD0obmV3IERhdGUpLmdldFRpbWUoKT8oZT12b2lkIDAsImZ1bmN0aW9uIj09dHlwZW9mIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSYmKHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0KSx3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYCR7dH06ZWApKSk6ZT13aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0odCl9fWNhdGNoe31yZXR1cm4gdm9pZCAwIT09ZT9lOm51bGx9X3NldCh0LGUscz17fSl7dGhpcy5wYXJlbnQuY29va2llLnNldCh0LGUscyk7dHJ5e3dpbmRvdy5sb2NhbFN0b3JhZ2UmJiJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0mJih3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oYCR7dH06ZWAsdm9pZCAwIT09cy5leHBpcmVzPyhuZXcgRGF0ZSkuZ2V0VGltZSgpK3MuZXhwaXJlczowKSx3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0odCxlKSl9Y2F0Y2h7fX1fZXhwaXJlKHQsZT17fSl7dGhpcy5wYXJlbnQuY29va2llLmV4cGlyZSh0LGUpO3RyeXt3aW5kb3cubG9jYWxTdG9yYWdlJiYiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtJiYod2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHQpLHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShgJHt0fTplYCkpfWNhdGNoe319fSxHbj1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnBhcmVudD10LHRoaXMuaCgpfXNldFRpbWVvdXQodCxlPTApe2xldCBzPXNldFRpbWVvdXQoKCk9PntkZWxldGUgdGhpcy5vW3NdLHQoKX0sZSk7cmV0dXJuIHRoaXMub1tzXT1zLHN9Y2xlYXJUaW1lb3V0KHQpe3QgaW4gdGhpcy5vJiYoY2xlYXJUaW1lb3V0KHRoaXMub1t0XSksZGVsZXRlIHRoaXMub1t0XSl9c2V0SW50ZXJ2YWwodCxlPTApe2xldCBzPXNldEludGVydmFsKHQsZSk7cmV0dXJuIHRoaXMubFtzXT1zLHN9Y2xlYXJJbnRlcnZhbCh0KXt0IGluIHRoaXMubCYmKGNsZWFySW50ZXJ2YWwodGhpcy5sW3RdKSxkZWxldGUgdGhpcy5sW3RdKX1yZXNldCgpe2ZvcihsZXQgdCBpbiB0aGlzLm8pdGhpcy5jbGVhclRpbWVvdXQodCk7Zm9yKGxldCB0IGluIHRoaXMubCl0aGlzLmNsZWFySW50ZXJ2YWwodCk7dGhpcy5oKCl9aCgpe3RoaXMubz17fSx0aGlzLmw9e319fSxKbj1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnBhcmVudD10LHRoaXMuaCgpfWFkZEV2ZW50TGlzdGVuZXIodCxlLHMsaT17fSl7cmV0dXJuIHRoaXMudSh0KS5hZGRFdmVudExpc3RlbmVyKGUscyxpKSx0aGlzLnAucHVzaCh7aW5zdGFuY2VOYW1lOnQsZXZlbnROYW1lOmUsZm5IYW5kbGVyOnMsb3B0aW9uczppfSksc31yZW1vdmVFdmVudExpc3RlbmVyKHQsZSxzKXtsZXQgaT10aGlzLnAuZmluZChpPT5pLmV2ZW50TmFtZT09PWUmJmkuaW5zdGFuY2VOYW1lPT09dCYmaS5mbkhhbmRsZXI9PT1zKTtpJiYoaS5mbkhhbmRsZXImJnRoaXMudSh0KS5yZW1vdmVFdmVudExpc3RlbmVyKGUsaS5mbkhhbmRsZXIsaS5vcHRpb25zKSx0aGlzLnA9dGhpcy5wLmZpbHRlcihpPT5pLmV2ZW50TmFtZSE9PWV8fGkuaW5zdGFuY2VOYW1lIT09dHx8aS5mbkhhbmRsZXIhPT1zKSl9cmVzZXQoKXtmb3IobGV0IHQgaW4gdGhpcy5wKXRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcih0Lmluc3RhbmNlTmFtZSx0LmV2ZW50TmFtZSx0LmZuSGFuZGxlcik7dGhpcy5oKCl9aCgpe3RoaXMucD1bXX11KHQpe2xldCBlPXQuc3BsaXQoIi4iKSxzPXdpbmRvdztmb3IobGV0IGk9MDtpPGUubGVuZ3RoO2krKylzPXM/LltlW2ldXTtyZXR1cm4gc319LEtuPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMucGFyZW50PXQsdGhpcy5oKCksdGhpcy5fKCl9Z2V0U3RhdGUoKXt0aGlzLm0odGhpcy5wYXJlbnQuc29ja2V0LmNvbm5lY3RlZHx8ITEpfXJlc2V0KCl7dGhpcy5oKCl9aCgpe3RoaXMudj0hMSx0aGlzLms9ITF9Xygpe3RoaXMucGFyZW50LnNvY2tldC5vbigiY29ubmVjdCIsKCk9Pnt0aGlzLnY9ITAsdGhpcy5tKCEwKX0pLHRoaXMucGFyZW50LnNvY2tldC5vbigiZGlzY29ubmVjdCIsKCk9Pnt0aGlzLm0oITEpfSksdGhpcy5wYXJlbnQuc29ja2V0Lm9uKCJjb25uZWN0X2Vycm9yIix0PT57IlRyYW5zcG9ydEVycm9yIj09PXQ/LnR5cGUmJnRoaXMuUygpfSksdGhpcy5wYXJlbnQuc29ja2V0LmlvLm9uKCJyZWNvbm5lY3RfZmFpbGVkIiwoKT0+e3RoaXMubSghMSwhMCl9KX1tKHQ9ITAsZT0hMSl7dGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgic29ja2V0OnN0YXRlIix7Y29ubmVjdGVkOnQsZmFpbGVkX3JlY29ubmVjdDplfSl9Uygpe3RoaXMucGFyZW50LmlvUmVsYXlSZXNjdWVDbGllbnQ/LnVybCYmITAhPT10aGlzLnYmJiEwIT09dGhpcy5rJiYhMCE9PXRoaXMucGFyZW50LnNvY2tldC5jb25uZWN0ZWQmJih0aGlzLms9ITAsdGhpcy5wYXJlbnQuc29ja2V0LmRpc2Nvbm5lY3QoKSx0aGlzLnBhcmVudC5zb2NrZXQuaW8udXJpPXRoaXMucGFyZW50LmlvUmVsYXlSZXNjdWVDbGllbnQudXJsLHRoaXMucGFyZW50LnNvY2tldC5pby5vcHRzLnBhdGg9dGhpcy5wYXJlbnQuaW9SZWxheVJlc2N1ZUNsaWVudC5wYXRoLHRoaXMucGFyZW50LmV2ZW50LmVtaXQoInNvY2tldDpyZXNjdWVkIix7fSkpfX0sWW49Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5wYXJlbnQ9dCx0aGlzLmgoKSx0aGlzLl8oKX1yZXNldCgpe3RoaXMuaCgpfV9iaW5kVG8odCxlLHMsaT1udWxsLG49bnVsbCl7dGhpcy5BPXQsdGhpcy5wPWUsdGhpcy5NPXMsdGhpcy5DPWksdGhpcy5EPW4sITAhPT10aGlzLlI/dGhpcy5wYXJlbnQuc3RyZWFtLmNvbm5lY3QoKTp0aGlzLmooKX1fdW5iaW5kRnJvbSgpe3RoaXMuJCgpLHRoaXMucGFyZW50LnN0cmVhbS5kaXNjb25uZWN0KCl9aCgpe3RoaXMuUj0hMSx0aGlzLkE9bnVsbCx0aGlzLnA9W10sdGhpcy5NPXt9LHRoaXMuQz1udWxsLHRoaXMuRD1udWxsLHRoaXMucT1udWxsLHRoaXMuTz1udWxsfV8oKXt0aGlzLnBhcmVudC5zdHJlYW0ub24oImNvbm5lY3QiLCgpPT57dGhpcy5SPSEwLHRoaXMuaigpfSksdGhpcy5wYXJlbnQuc3RyZWFtLm9uKCJkaXNjb25uZWN0IiwoKT0+e3RoaXMuUj0hMSx0aGlzLkkoKX0pLHRoaXMucGFyZW50LnN0cmVhbS5vbigic29ja2V0OmJvdW5kIiwoKT0+e3RoaXMuVCgpfSl9aigpe2lmKHRoaXMucSE9PXRoaXMuQXx8dGhpcy5PIT09dGhpcy5wKXt0aGlzLnE9dGhpcy5BLHRoaXMuTz10aGlzLnA7bGV0IHQ9W107dGhpcy5xJiZ0LnB1c2godGhpcy5xKSx0aGlzLnBhcmVudC5zdHJlYW0uZW1pdCgic29ja2V0OmJpbmQiLHtyYXk6ImNsaWVudCIsZXZlbnRzOnRoaXMuTyxyb29tczp0LGNvbnRleHQ6dGhpcy5NfSl9ZWxzZSB0aGlzLlQoKX1JKCl7bnVsbCE9PXRoaXMuRCYmdGhpcy5EKCksdGhpcy4kKCksdGhpcy5xPW51bGwsdGhpcy5PPW51bGx9VCgpe251bGwhPT10aGlzLkMmJnRoaXMuQygpLHRoaXMuJCgpfSQoKXt0aGlzLkE9bnVsbCx0aGlzLnA9W10sdGhpcy5NPXt9LHRoaXMuQz1udWxsLHRoaXMuRD1udWxsfX0sWm49ImNyaXNwLWNsaWVudCIsWG49Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5wYXJlbnQ9dCx0aGlzLmgoKX1pbml0KCl7dGhpcy5fKCl9Z2V0U3RhbXBMb2NhbCh0LGU9W10pe2xldCBzPXRoaXMuX2dlbmVyYXRlU3RvcmVLZXkodCxlKTtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdy5sb2NhbFN0b3JhZ2UmJndpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShzKXx8IiJ9c2V0U3RhbXBMb2NhbCh0LGU9W10scz0iIil7bGV0IGk9dGhpcy5fZ2VuZXJhdGVTdG9yZUtleSh0LGUpO3JldHVybiJvYmplY3QiPT10eXBlb2Ygd2luZG93LmxvY2FsU3RvcmFnZSYmKHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShpLHMpLCEwKX1yZXNldCgpe3RoaXMuTigpLHRoaXMuaCgpfV91cGRhdGUodCxlLHM9bnVsbCxpPWZ1bmN0aW9uKCl7fSxuPWZ1bmN0aW9uKCl7fSl7cz10aGlzLnBhcmVudC5TZXNzaW9uLl9nZXRFZmZlY3RpdmVTZXNzaW9uSWQocyk7bGV0IHI9e3Nlc3Npb25faWQ6dGhpcy5wYXJlbnQuU2Vzc2lvbi5fZ2V0Q2hpbGRTZXNzaW9uSWRPck5vbmUocykscmF5OnRoaXMuVSh0KSx0eXBlOnQsZGF0YTplfTt0aGlzLlAocykucHVzaChyLnJheSksdGhpcy5CKHMpW3IucmF5XT17c3VjY2VzczppLGVycm9yOm59LHRoaXMucGFyZW50LnNvY2tldC5lbWl0KCJzdG9yYWdlOnN5bmM6dXBkYXRlIixyKSx0aGlzLnBhcmVudC5ldmVudC5lbWl0KCJzdG9yYWdlOnN5bmM6dXBkYXRlIixyKX1fZ2VuZXJhdGVTdG9yZUtleSh0LGU9W10pe2xldCBzPWAke1pufS8ke3R9YDtyZXR1cm4gZS5sZW5ndGg+MCYmKHMrPWAvJHtlLmpvaW4oIi8iKX1gKSxzfWgoKXt0aGlzLkw9MSx0aGlzLkg9MCx0aGlzLkY9e30sdGhpcy5WPXt9fV8oKXt0aGlzLnBhcmVudC5zb2NrZXQub24oInN0b3JhZ2U6c3luYzp1cGRhdGVkIix6aSh0aGlzLkosdGhpcykpfU4oKXtsZXQgdD1gJHtabn0vYDtmb3IobGV0IGU9d2luZG93LmxvY2FsU3RvcmFnZS5sZW5ndGgtMTtlPj0wO2UtLSl7bGV0IHM9d2luZG93LmxvY2FsU3RvcmFnZS5rZXkoZSk7cz8uc3RhcnRzV2l0aCh0KSYmd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHMpfX1CKHQpe3JldHVybiB0IGluIHRoaXMuRnx8KHRoaXMuRlt0XT17fSksdGhpcy5GW3RdfVAodCl7cmV0dXJuIHQgaW4gdGhpcy5WfHwodGhpcy5WW3RdPVtdKSx0aGlzLlZbdF19Sih0KXtsZXQgZT10aGlzLkIodC5zZXNzaW9uX2lkKSxzPXRoaXMuUCh0LnNlc3Npb25faWQpO2lmKCJvYmplY3QiPT10eXBlb2YgZVt0LnJheV0pe3QuZXJyb3I/ImZ1bmN0aW9uIj09dHlwZW9mIGVbdC5yYXldLmVycm9yJiZlW3QucmF5XS5lcnJvcigpOiJmdW5jdGlvbiI9PXR5cGVvZiBlW3QucmF5XS5zdWNjZXNzJiZlW3QucmF5XS5zdWNjZXNzKCksZGVsZXRlIGVbdC5yYXldO2xldCBpPXMuaW5kZXhPZih0LnJheSk7LTEhPT1pJiZzLnNwbGljZShpLDEpfXRoaXMucGFyZW50LmV2ZW50LmVtaXQoInN0b3JhZ2U6c3luYzp1cGRhdGVkIix0KX1VKHQpe3JldHVybmAke3R9LyR7TWF0aC5mbG9vcigxZTUqTWF0aC5yYW5kb20oKSl9LyR7dGhpcy5IKyt9YH19LFFuPTVlNSx0cj0iYnJvd3NpbmctY29uc2VudCIsZXI9WyJicm93c2luZzphY3Rpb246c3RhcnQiLCJicm93c2luZzphY3Rpb246c3RvcCIsImJyb3dzaW5nOmFjdGlvbjpoZWFydGJlYXQiLCJicm93c2luZzphc3Npc3Q6c3RhcnQiLCJicm93c2luZzphc3Npc3Q6c3RvcCIsImJyb3dzaW5nOmFzc2lzdDpoZWFydGJlYXQiLCJicm93c2luZzphc3Npc3Q6bW91c2UiLCJicm93c2luZzphc3Npc3Q6c2Nyb2xsIiwiYnJvd3Npbmc6YXNzaXN0OmNsaWNrIl0sc3I9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5wYXJlbnQ9dCx0aGlzLmgoKSx0aGlzLl8oKSx0aGlzLksoKSx0aGlzLkcoKX1pbml0KHQsZSxzKXtsZXQgaT10LnNlc3Npb25faWR8fHRoaXMucGFyZW50LlNlc3Npb24uX2dldEVmZmVjdGl2ZVNlc3Npb25JZCgpO3RoaXMucGFyZW50LlN0cmVhbS5fYmluZFRvKG51bGwsZXIse3Nlc3Npb25faWQ6aX0sKCk9PnstMT09PSh0aGlzLnBhcmVudC5kZXZpY2UuY2FwYWJpbGl0aWVzfHxbXSkuaW5kZXhPZigiYnJvd3NpbmciKXx8ITAhPT10aGlzLnBhcmVudC5Db25maWcuX2lnbm9yZVByaXZhY3kmJiIxIj09PW5hdmlnYXRvcj8uZG9Ob3RUcmFjaz8odGhpcy5wYXJlbnQuc3RyZWFtLmVtaXQoImNsaWVudDpicm93c2luZzpyZXF1ZXN0OmRlY2xpbmUiLHt9KSx0aGlzLlcoKSk6KHRoaXMuWT10LmRlcHMucnJ3ZWJ8fG51bGwsdGhpcy5YPXQuZGVwcy5mZmxhdGV8fG51bGwsdGhpcy5aPSEwLHRoaXMudHQ9aSwhMD09PXQucmVzdW1lJiYodGhpcy5wYXJlbnQuc3RyZWFtLmVtaXQoImNsaWVudDpicm93c2luZzpyZXN1bWUiLHticm93c2luZ19pZDp0aGlzLnN0fSksdGhpcy5pdCghMCksITA9PT10aGlzLmV0JiZ0aGlzLmh0KCEwKSkpLCJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlKCl9LCgpPT57ImZ1bmN0aW9uIj09dHlwZW9mIHMmJnMoKX0pfWFjY2VwdCgpeyEwPT09dGhpcy5aJiYodGhpcy5pdCghMCksdGhpcy5wYXJlbnQuc3RyZWFtLmVtaXQoImNsaWVudDpicm93c2luZzpyZXF1ZXN0OmFjY2VwdCIse3VzZXJhZ2VudDpuYXZpZ2F0b3IudXNlckFnZW50fSksdGhpcy5udCghMCkpfWRlY2xpbmUoKXshMD09PXRoaXMuWiYmKHRoaXMucGFyZW50LnN0cmVhbS5lbWl0KCJjbGllbnQ6YnJvd3Npbmc6cmVxdWVzdDpkZWNsaW5lIix7fSksdGhpcy5XKCkpfWhhc0FjY2VwdGVkQ29uc2VudCgpe3JldHVybiJ0cnVlIj09PXRoaXMucGFyZW50LlN0b3JhZ2UuZ2V0U3RhbXBMb2NhbCh0cixbdGhpcy5wYXJlbnQud2Vic2l0ZUlkXSl9cmVzZXQoKXshMD09PXRoaXMuZXQmJnRoaXMuVygpLHRoaXMuaCgpLHRoaXMucnQoKX1fcmVzdG9yZUJyb3dzaW5nU3RhdGUoKXt0aGlzLnN0JiYoITE9PT10aGlzLm90KCk/dGhpcy5sdCh7c2Vzc2lvbl9pZDp0aGlzLnR0LHJlc3VtZTohMH0pOnRoaXMuVygpKX1oKCl7aWYodGhpcy5wYXJlbnQuU2NoZWR1bGUuY2xlYXJJbnRlcnZhbCh0aGlzLmN0KSx0aGlzLnBhcmVudC5TY2hlZHVsZS5jbGVhckludGVydmFsKHRoaXMudXQpLCJvYmplY3QiPT10eXBlb2YgdGhpcy5kdClmb3IobGV0IHQgaW4gdGhpcy5kdCl0aGlzLnBhcmVudC5TY2hlZHVsZS5jbGVhclRpbWVvdXQodGhpcy5kdFt0XS5kZWFkVGltZW91dCk7dGhpcy5mdD8uZGVmZXJFdmVudCYmdGhpcy5wYXJlbnQuU2NoZWR1bGUuY2xlYXJUaW1lb3V0KHRoaXMuZnQuZGVmZXJFdmVudCksdGhpcy5aPSExLHRoaXMudHQ9bnVsbCx0aGlzLnN0PW51bGwsdGhpcy5ldD0hMSx0aGlzLmd0PW51bGwsdGhpcy5jdD1udWxsLHRoaXMudXQ9bnVsbCx0aGlzLl90PW51bGwsdGhpcy5ZPW51bGwsdGhpcy5YPW51bGwsdGhpcy53dD1udWxsLHRoaXMueXQ9W10sdGhpcy52dD0hMSx0aGlzLmJ0PTAsdGhpcy5rdD1bXSx0aGlzLmR0PXthc3Npc3Q6e29uZ29pbmc6ITEsbGFzdEhlYXJ0YmVhdDpudWxsLGRlYWRUaW1lb3V0Om51bGx9fSx0aGlzLmZ0PXtsYXN0Q2FsbDoobmV3IERhdGUpLmdldFRpbWUoKSxkZWZlckV2ZW50Om51bGx9fVN0KCl7cmV0dXJuIHRoaXMucGFyZW50LlN0b3JhZ2UuX2dlbmVyYXRlU3RvcmVLZXkoImJyb3dzaW5nIixbdGhpcy5wYXJlbnQud2Vic2l0ZUlkXSl9Xygpe3RoaXMucGFyZW50LnNvY2tldC5vbigiYnJvd3Npbmc6cmVxdWVzdDppbml0aWF0ZSIsemkodGhpcy5sdCx0aGlzKSksdGhpcy5wYXJlbnQuc3RyZWFtLm9uKCJjbGllbnQ6YnJvd3Npbmc6cmVxdWVzdDppbml0aWF0ZWQiLHppKHRoaXMuQXQsdGhpcykpLHRoaXMucGFyZW50LnN0cmVhbS5vbigiY2xpZW50OmJyb3dzaW5nOmFjdGlvbjpzdGFydCIsemkodGhpcy5NdCx0aGlzKSksdGhpcy5wYXJlbnQuc3RyZWFtLm9uKCJjbGllbnQ6YnJvd3Npbmc6YWN0aW9uOnN0b3AiLHppKHRoaXMuRXQsdGhpcykpLHRoaXMucGFyZW50LnN0cmVhbS5vbigiY2xpZW50OmJyb3dzaW5nOmFjdGlvbjpoZWFydGJlYXQiLHppKHRoaXMuQ3QsdGhpcykpLHRoaXMucGFyZW50LnN0cmVhbS5vbigiY2xpZW50OmJyb3dzaW5nOmFzc2lzdDpzdGFydCIsemkodGhpcy5EdCx0aGlzKSksdGhpcy5wYXJlbnQuc3RyZWFtLm9uKCJjbGllbnQ6YnJvd3Npbmc6YXNzaXN0OnN0b3AiLHppKHRoaXMuUnQsdGhpcykpLHRoaXMucGFyZW50LnN0cmVhbS5vbigiY2xpZW50OmJyb3dzaW5nOmFzc2lzdDpoZWFydGJlYXQiLHppKHRoaXMuanQsdGhpcykpLHRoaXMucGFyZW50LnN0cmVhbS5vbigiY2xpZW50OmJyb3dzaW5nOmFzc2lzdDptb3VzZSIsemkodGhpcy4kdCx0aGlzKSksdGhpcy5wYXJlbnQuc3RyZWFtLm9uKCJjbGllbnQ6YnJvd3Npbmc6YXNzaXN0OnNjcm9sbCIsemkodGhpcy5xdCx0aGlzKSksdGhpcy5wYXJlbnQuc3RyZWFtLm9uKCJjbGllbnQ6YnJvd3Npbmc6YXNzaXN0OmNsaWNrIix6aSh0aGlzLk90LHRoaXMpKX1LKCl7aWYoIm9iamVjdCIhPXR5cGVvZiB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UpcmV0dXJuO2xldCB0PXdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuU3QoKSk7aWYoIXQpcmV0dXJuO2xldCBlPUpTT04ucGFyc2UodCk7dGhpcy50dD1lLnNlc3Npb25faWR8fG51bGwsdGhpcy5zdD1lLmJyb3dzaW5nX2lkfHxudWxsLHRoaXMuZXQ9ZS5pc19wbGF5aW5nfHwhMSx0aGlzLmd0PWUubGFzdF9oZWFydGJlYXR8fG51bGx9bHQodCl7ITA9PT10aGlzLlomJiEwIT09dC5yZXN1bWV8fCghMCE9PXQucmVzdW1lJiZ0aGlzLlcoKSx0aGlzLnBhcmVudC5ldmVudC5lbWl0KCJicm93c2luZzpyZXF1ZXN0OmluaXRpYXRlIix0fHx7fSkpfUF0KHQpeyEwPT09dGhpcy5aJiYodGhpcy5zdD10LmJyb3dzaW5nX2lkLHRoaXMuZ3Q9KG5ldyBEYXRlKS5nZXRUaW1lKCksdGhpcy5JdCgpKX1NdCgpeyEwPT09dGhpcy5aJiZ0aGlzLnN0JiZ0aGlzLmh0KCl9RXQoKXshMD09PXRoaXMuWiYmdGhpcy5zdCYmdGhpcy5XKCl9Q3QoKXshMD09PXRoaXMuWiYmdGhpcy5zdCYmKHRoaXMuZ3Q9KG5ldyBEYXRlKS5nZXRUaW1lKCksdGhpcy5JdCgpKX1EdCgpeyEwPT09dGhpcy5aJiZ0aGlzLnN0JiYhMD09PXRoaXMueHQoImFzc2lzdCIpJiZ0aGlzLnBhcmVudC5ldmVudC5lbWl0KCJicm93c2luZzphc3Npc3Q6c3RhcnRlZCIse30pfVJ0KCl7ITA9PT10aGlzLlomJnRoaXMuc3QmJiEwPT09dGhpcy5UdCgiYXNzaXN0IikmJnRoaXMucGFyZW50LmV2ZW50LmVtaXQoImJyb3dzaW5nOmFzc2lzdDpzdG9wcGVkIix7fSl9anQoKXshMD09PXRoaXMuWiYmdGhpcy5zdCYmdGhpcy5OdCgiYXNzaXN0Iil9JHQodCl7ITA9PT10aGlzLlomJnRoaXMuc3QmJiEwPT09dGhpcy5kdC5hc3Npc3Qub25nb2luZyYmdGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgiYnJvd3Npbmc6YXNzaXN0Om1vdXNlIix0KX1xdCh0KXshMD09PXRoaXMuWiYmdGhpcy5zdCYmITA9PT10aGlzLmR0LmFzc2lzdC5vbmdvaW5nJiZ0aGlzLnBhcmVudC5ldmVudC5lbWl0KCJicm93c2luZzphc3Npc3Q6c2Nyb2xsIix0KX1PdCh0KXshMD09PXRoaXMuWiYmdGhpcy5zdCYmITA9PT10aGlzLmR0LmFzc2lzdC5vbmdvaW5nJiZ0aGlzLnBhcmVudC5ldmVudC5lbWl0KCJicm93c2luZzphc3Npc3Q6Y2xpY2siLHQpfUl0KCl7Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UmJkpTT04mJiJmdW5jdGlvbiI9PXR5cGVvZiBKU09OLnN0cmluZ2lmeSYmd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5TdCgpLEpTT04uc3RyaW5naWZ5KHtzZXNzaW9uX2lkOnRoaXMudHQsYnJvd3NpbmdfaWQ6dGhpcy5zdCxpc19wbGF5aW5nOnRoaXMuZXQsbGFzdF9oZWFydGJlYXQ6dGhpcy5ndH0pKX1udCh0KXshMD09PXQmJnRoaXMucGFyZW50LlN0b3JhZ2Uuc2V0U3RhbXBMb2NhbCh0cixbdGhpcy5wYXJlbnQud2Vic2l0ZUlkXSwidHJ1ZSIpfXJ0KCl7Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UmJiJvYmplY3QiPT10eXBlb2Ygd2luZG93LnNlc3Npb25TdG9yYWdlJiZ3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLlN0KCkpfWh0KHQ9ITEpe3RoaXMuZXQ9ITAsdGhpcy5ndD0obmV3IERhdGUpLmdldFRpbWUoKSx0aGlzLkl0KCksdGhpcy5VdCgpLHRoaXMuUHQoITApLCEwIT09dCYmdGhpcy5wYXJlbnQuc3RyZWFtLmVtaXQoImNsaWVudDpicm93c2luZzphY3Rpb246c3RhcnRlZCIse30pfVcoKXtsZXQgdD10aGlzLmV0OyJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLnd0JiZ0aGlzLnd0KCksdGhpcy5oKCksdGhpcy5JdCgpLCEwPT09dCYmdGhpcy5wYXJlbnQuc3RyZWFtLmVtaXQoImNsaWVudDpicm93c2luZzphY3Rpb246c3RvcHBlZCIse30pLHRoaXMucGFyZW50LlN0cmVhbS5fdW5iaW5kRnJvbSgpfVV0KCl7dGhpcy5CdCgpLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLnd0JiYodGhpcy53dCgpLHRoaXMud3Q9bnVsbCksdGhpcy5ZJiYiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5ZLnJlY29yZCYmKHRoaXMueXQ9W10sdGhpcy52dD0hMSx0aGlzLnd0PXRoaXMuWS5yZWNvcmQoe2VtaXQ6dD0+e3RoaXMuTHQodCl9LGlubGluZVN0eWxlc2hlZXQ6ITEsaW5saW5lSW1hZ2VzOiExLGNvbGxlY3RGb250czohMSxyZWNvcmRDYW52YXM6ITEscmVjb3JkQ3Jvc3NPcmlnaW5JZnJhbWVzOiExLG1hc2tBbGxJbnB1dHM6ITAsc2FtcGxpbmc6e21vdXNlbW92ZToyMDAsc2Nyb2xsOjMwMCxpbnB1dDoibGFzdCJ9LG1hc2tUZXh0U2VsZWN0b3I6IltkYXRhLWJyb3dzaW5nLWlnbm9yZV0ifSkpfUx0KHQpe2lmKHQmJiJudW1iZXIiPT10eXBlb2YgdC50eXBlKXtpZighMCE9PXRoaXMudnQpcmV0dXJuIHRoaXMueXQucHVzaCh0KSx2b2lkKDI9PT10LnR5cGUmJih0aGlzLnZ0PSEwLHRoaXMuX3Q9e2Y6ImluaXRpYWxpemUiLGFyZ3M6dGhpcy55dH0sdGhpcy5IdCh0aGlzLl90KSx0aGlzLnl0PVtdKSk7dGhpcy5rdC5wdXNoKHQpLHRoaXMua3QubGVuZ3RoPj01MCYmdGhpcy5GdCgpfX1IdCh0KXtpZighdC5mfHwhdC5hcmdzfHwiZnVuY3Rpb24iIT10eXBlb2YgSlNPTi5zdHJpbmdpZnkpcmV0dXJuO2xldCBlPXRoaXMuYnQscz1KU09OLnN0cmluZ2lmeSh0LmFyZ3MpLGk9cyxuPW51bGw7aWYodGhpcy5YJiYiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5YLmRlZmxhdGVTeW5jJiYiZnVuY3Rpb24iPT10eXBlb2YgVGV4dEVuY29kZXIpdHJ5e2xldCB0PShuZXcgVGV4dEVuY29kZXIpLmVuY29kZShzKSxlPXRoaXMuWC5kZWZsYXRlU3luYyh0LHtsZXZlbDo2fSk7aT10aGlzLlZ0KGUpLG49ImRyYjY0In1jYXRjaHtpPXMsbj1udWxsfWxldCByPWkubGVuZ3RoLG89TWF0aC5tYXgoMSxNYXRoLmNlaWwoci9RbikpLHU9by0xO2ZvcihsZXQgbD0wO2w8bztsKyspe2xldCBzPWwqUW4scj1pLnN1YnN0cmluZyhzLHMrUW4pO3RoaXMucGFyZW50LnN0cmVhbS5lbWl0KCJjbGllbnQ6YnJvd3Npbmc6c3RyZWFtOm1pcnJvciIse2Y6dC5mLGFyZ3M6cixlbmNvZGluZzpuLGNodW5rOmUscGFydDpsLGVuZDp1fSl9dGhpcy5idCsrfUJ0KCl7dGhpcy5wYXJlbnQuc3RyZWFtLmVtaXQoImNsaWVudDpicm93c2luZzpzdHJlYW06dGFiIix7dGl0bGU6ZG9jdW1lbnQudGl0bGUsdXJsOmRvY3VtZW50LmxvY2F0aW9uLmhyZWYsd2lkdGg6d2luZG93LmlubmVyV2lkdGh8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aHx8ZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCxoZWlnaHQ6d2luZG93LmlubmVySGVpZ2h0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0fHxkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodH0pfXh0KHQpe2xldCBlPSEwIT09dGhpcy5kdFt0XS5vbmdvaW5nJiYhMDtyZXR1cm4gdGhpcy5kdFt0XS5vbmdvaW5nPSEwLHRoaXMuTnQodCksdGhpcy5wYXJlbnQuc3RyZWFtLmVtaXQoYGNsaWVudDpicm93c2luZzoke3R9OnN0YXJ0ZWRgLHt9KSxlfVR0KHQpe3JldHVybiEwPT09dGhpcy5kdFt0XS5vbmdvaW5nJiYodGhpcy5OdCh0LCExKSx0aGlzLmR0W3RdLm9uZ29pbmc9ITEsdGhpcy5wYXJlbnQuc3RyZWFtLmVtaXQoYGNsaWVudDpicm93c2luZzoke3R9OnN0b3BwZWRgLHt9KSwhMCl9TnQodCxlPSEwKXshMD09PXRoaXMuZHRbdF0ub25nb2luZyYmKG51bGwhPT10aGlzLmR0W3RdLmRlYWRUaW1lb3V0JiYodGhpcy5wYXJlbnQuU2NoZWR1bGUuY2xlYXJUaW1lb3V0KHRoaXMuZHRbdF0uZGVhZFRpbWVvdXQpLHRoaXMuZHRbdF0uZGVhZFRpbWVvdXQ9bnVsbCksITA9PT1lPyh0aGlzLmR0W3RdLmxhc3RIZWFydGJlYXQ9KG5ldyBEYXRlKS5nZXRUaW1lKCksdGhpcy5kdFt0XS5kZWFkVGltZW91dD10aGlzLnBhcmVudC5TY2hlZHVsZS5zZXRUaW1lb3V0KCgpPT57dGhpcy5UdCh0KX0sNDVlMykpOnRoaXMuZHRbdF0ubGFzdEhlYXJ0YmVhdD1udWxsKX1HKCl7dGhpcy5wYXJlbnQuTGlzdGVuZXIuYWRkRXZlbnRMaXN0ZW5lcigid2luZG93IiwicmVzaXplIiwoKT0+e251bGwhPT10aGlzLmZ0LmRlZmVyRXZlbnQmJnRoaXMucGFyZW50LlNjaGVkdWxlLmNsZWFyVGltZW91dCh0aGlzLmZ0LmRlZmVyRXZlbnQpLHRoaXMuZnQuZGVmZXJFdmVudD10aGlzLnBhcmVudC5TY2hlZHVsZS5zZXRUaW1lb3V0KCgpPT57dGhpcy5mdC5kZWZlckV2ZW50PW51bGw7bGV0IHQ9dGhpcy5mdC5sYXN0Q2FsbCxlPShuZXcgRGF0ZSkuZ2V0VGltZSgpO3RoaXMuZnQubGFzdENhbGw9ZSx0JiZlPnQrMWUzJiYhMD09PXRoaXMuZXQmJnRoaXMuQnQoKX0sMWUzKX0pfW90KCl7cmV0dXJuIG51bGw9PT10aGlzLmd0fHxudWxsIT09dGhpcy5ndCYmKG5ldyBEYXRlKS5nZXRUaW1lKCktdGhpcy5ndD49NDVlM31pdCh0PSEwKXtudWxsIT09dGhpcy5jdCYmdGhpcy5wYXJlbnQuU2NoZWR1bGUuY2xlYXJJbnRlcnZhbCh0aGlzLmN0KSwhMD09PXQmJih0aGlzLmN0PXRoaXMucGFyZW50LlNjaGVkdWxlLnNldEludGVydmFsKCgpPT57dGhpcy5wYXJlbnQuc3RyZWFtLmVtaXQoImNsaWVudDpicm93c2luZzpoZWFydGJlYXQiLHt9KSwhMD09PXRoaXMub3QoKSYmdGhpcy5XKCl9LDFlNCkpfVB0KHQ9ITApe251bGwhPT10aGlzLnV0JiZ0aGlzLnBhcmVudC5TY2hlZHVsZS5jbGVhckludGVydmFsKHRoaXMudXQpLCEwPT09dCYmKHRoaXMudXQ9dGhpcy5wYXJlbnQuU2NoZWR1bGUuc2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLkZ0KCl9LDFlMykpfUZ0KCl7aWYoMD09PXRoaXMua3QubGVuZ3RoKXJldHVybjtsZXQgdD10aGlzLmt0O3RoaXMua3Q9W10sdGhpcy5IdCh7ZjoiYXBwbHlDaGFuZ2VkIixhcmdzOnR9KX1WdCh0KXtsZXQgZT0iIjtmb3IobGV0IHM9MDtzPHQubGVuZ3RoO3MrPTMyNzY4KWUrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCx0LnN1YmFycmF5KHMscyszMjc2OCkpO3JldHVybiBidG9hKGUpfX0saXI9WyJjYWxsOnJlcXVlc3Q6aW5pdGlhdGUiLCJjYWxsOnJlcXVlc3Q6YWNjZXB0ZWQiLCJjYWxsOnJlcXVlc3Q6ZGVjbGluZWQiLCJjYWxsOmFjdGlvbjpzdG9wcGVkIiwiY2FsbDpzaWduYWxpbmc6c2RwIiwiY2FsbDpzaWduYWxpbmc6Y2FuZGlkYXRlIl0sbnI9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5wYXJlbnQ9dCx0aGlzLmgoKSx0aGlzLl8oKX1pbml0KHQsZSxzKXt0aGlzLnBhcmVudC5TdHJlYW0uX2JpbmRUbyhudWxsLGlyLHtzZXNzaW9uX2lkOnQuc2Vzc2lvbl9pZHx8dGhpcy5wYXJlbnQuU2Vzc2lvbi5fZ2V0RWZmZWN0aXZlU2Vzc2lvbklkKCl9LCgpPT57dGhpcy56dD10Lm1vZGV8fG51bGwsdGhpcy5KdD10LmljZXx8W10sITA9PT10Lmhhc19zdXBwb3J0Pyh0aGlzLnBhcmVudC5zdHJlYW0uZW1pdCgiY2xpZW50OmNhbGw6cmVxdWVzdDppbml0aWF0ZWQiLHtjYWxsX2lkOnQuY2FsbF9pZH0pLHRoaXMuaXQoITApKTp0aGlzLnBhcmVudC5zdHJlYW0uZW1pdCgiY2xpZW50OmNhbGw6cmVxdWVzdDpkZWNsaW5lIix7fSksImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUoKX0sKCk9PnsiZnVuY3Rpb24iPT10eXBlb2YgcyYmcygpfSl9YWNjZXB0KCl7ITA9PT10aGlzLlomJih0aGlzLkt0PSEwLHRoaXMucGFyZW50LnN0cmVhbS5lbWl0KCJjbGllbnQ6Y2FsbDpyZXF1ZXN0OmFjY2VwdCIse30pKX1kZWNsaW5lKCl7ITA9PT10aGlzLlomJih0aGlzLnBhcmVudC5zdHJlYW0uZW1pdCgiY2xpZW50OmNhbGw6cmVxdWVzdDpkZWNsaW5lIix7fSksdGhpcy5XKCkpfXN0b3AoKXshMD09PXRoaXMuWiYmKHRoaXMucGFyZW50LnN0cmVhbS5lbWl0KCJjbGllbnQ6Y2FsbDphY3Rpb246c3RvcHBlZCIse30pLHRoaXMuVygpKX10b2dnbGVBdWRpbygpe3JldHVybiB0aGlzLkd0KCJhdWRpbyIsImdldEF1ZGlvVHJhY2tzIil9dG9nZ2xlVmlkZW8oKXtyZXR1cm4gdGhpcy5HdCgidmlkZW8iLCJnZXRWaWRlb1RyYWNrcyIpfXRvZ2dsZVNjcmVlbnNoYXJpbmcoKXtyZXR1cm4hMD09PXRoaXMuWiYmbnVsbCE9PXRoaXMuUXQubG9jYWwmJighMT09PXRoaXMuV3Q/dGhpcy5ZdCgpOnRoaXMuWHQoKSksdGhpcy5XdH1pc09uZ29pbmcoKXtyZXR1cm4hMD09PXRoaXMuWiYmbnVsbCE9PXRoaXMuWnQmJiEwfWhhc1N1cHBvcnRTY3JlZW5zaGFyaW5nKCl7cmV0dXJuISghbmF2aWdhdG9yLm1lZGlhRGV2aWNlc3x8ImZ1bmN0aW9uIiE9dHlwZW9mIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0RGlzcGxheU1lZGlhKX1nZXRTdHJlYW0odCl7cmV0dXJuIHRoaXMuUXRbdF18fG51bGx9cmVzZXQoKXshMD09PXRoaXMuWiYmdGhpcy5XKCksdGhpcy5oKCl9aCgpe3RoaXMuWj0hMSx0aGlzLld0PSExLHRoaXMuS3Q9ITEsdGhpcy50cz0hMSx0aGlzLlp0PW51bGwsdGhpcy5jdD1udWxsLHRoaXMuc3M9bnVsbCx0aGlzLnp0PW51bGwsdGhpcy5KdD1bXSx0aGlzLlF0PXtsb2NhbDpudWxsLHJlbW90ZTpudWxsfSx0aGlzLmVzPXt2aWRlbzpudWxsfX1fKCl7dGhpcy5wYXJlbnQuc29ja2V0Lm9uKCJjYWxsOnJlcXVlc3Q6aW5pdGlhdGUiLHppKHRoaXMubHQsdGhpcykpLHRoaXMucGFyZW50LnN0cmVhbS5vbigiY2xpZW50OmNhbGw6cmVxdWVzdDphY2NlcHRlZCIsemkodGhpcy5ocyx0aGlzKSksdGhpcy5wYXJlbnQuc3RyZWFtLm9uKCJjbGllbnQ6Y2FsbDpyZXF1ZXN0OmRlY2xpbmVkIix6aSh0aGlzLm5zLHRoaXMpKSx0aGlzLnBhcmVudC5zdHJlYW0ub24oImNsaWVudDpjYWxsOmFjdGlvbjpzdG9wcGVkIix6aSh0aGlzLnJzLHRoaXMpKSx0aGlzLnBhcmVudC5zdHJlYW0ub24oImNsaWVudDpjYWxsOnNpZ25hbGluZzpzZHAiLHppKHRoaXMubHMsdGhpcykpLHRoaXMucGFyZW50LnN0cmVhbS5vbigiY2xpZW50OmNhbGw6c2lnbmFsaW5nOmNhbmRpZGF0ZSIsemkodGhpcy5jcyx0aGlzKSl9bHQodCl7ITAhPT10aGlzLlomJih0Lmhhc19zdXBwb3J0PS0xIT09KHRoaXMucGFyZW50LmRldmljZS5jYXBhYmlsaXRpZXN8fFtdKS5pbmRleE9mKCJjYWxsIiksdGhpcy5aPSEwLHRoaXMucGFyZW50LmV2ZW50LmVtaXQoImNhbGw6cmVxdWVzdDppbml0aWF0ZSIsdCkpfWhzKCl7ITA9PT10aGlzLlomJiEwIT09dGhpcy5LdCYmdGhpcy5XKCl9bnMoKXshMD09PXRoaXMuWiYmdGhpcy5XKCl9cnMoKXshMD09PXRoaXMuWiYmdGhpcy5XKCl9bHModCl7aWYoITA9PT10aGlzLlope2lmKHRoaXMudXMoKSwib3BlcmF0b3IiIT09dC5mcm9tKXJldHVybjt0aGlzLlp0LnNldFJlbW90ZURlc2NyaXB0aW9uKG5ldyBSVENTZXNzaW9uRGVzY3JpcHRpb24odC5zZHApKS50aGVuKCgpPT4odGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgiY2FsbDpwZWVyOnJlbW90ZTpzdWNjZXNzIix7fSksbnVsbD09PXRoaXMuUXQubG9jYWw/dGhpcy5kcygpOiJvZmZlciI9PT10LnNkcC50eXBlP3RoaXMuZnMoImFuc3dlciIpOlByb21pc2UucmVzb2x2ZSgpKSkuY2F0Y2goKCk9Pnt0aGlzLnBhcmVudC5ldmVudC5lbWl0KCJjYWxsOnBlZXI6cmVtb3RlOmVycm9yIix7fSl9KX19Y3ModCl7aWYoITA9PT10aGlzLlope2lmKHRoaXMudXMoKSwib3BlcmF0b3IiIT09dC5mcm9tKXJldHVybjtpZigib2JqZWN0IiE9dHlwZW9mIHQuY2FuZGlkYXRlfHxudWxsPT09dC5jYW5kaWRhdGUpcmV0dXJuO3RoaXMuWnQuYWRkSWNlQ2FuZGlkYXRlKG5ldyBSVENJY2VDYW5kaWRhdGUoe3NkcE1MaW5lSW5kZXg6dC5jYW5kaWRhdGUuc2RwTUxpbmVJbmRleCxjYW5kaWRhdGU6dC5jYW5kaWRhdGUuY2FuZGlkYXRlfSkpLmNhdGNoKCgpPT57fSl9fXVzKCl7bnVsbD09PXRoaXMuWnQmJih0aGlzLlp0PW5ldyBSVENQZWVyQ29ubmVjdGlvbih7aWNlU2VydmVyczp0aGlzLkp0fSksdGhpcy5adC5vbmljZWNhbmRpZGF0ZT10PT57dCYmdC5jYW5kaWRhdGUmJnRoaXMucGFyZW50LnN0cmVhbS5lbWl0KCJjbGllbnQ6Y2FsbDpzaWduYWxpbmc6Y2FuZGlkYXRlIix7ZnJvbToidXNlciIsY2FuZGlkYXRlOnQuY2FuZGlkYXRlfSl9LHRoaXMuWnQub250cmFjaz10PT57bGV0IGU9dC5zdHJlYW1zWzBdO3RoaXMuUXQucmVtb3RlPWUsdGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgiY2FsbDptZWRpYTpyZW1vdGU6c3VjY2VzcyIse30pLGUub25yZW1vdmV0cmFjaz0oKT0+e3RoaXMucGFyZW50LmV2ZW50LmVtaXQoImNhbGw6bWVkaWE6cmVtb3RlOnN1Y2Nlc3MiLHt9KX19LHRoaXMuWnQub25pY2Vjb25uZWN0aW9uc3RhdGVjaGFuZ2U9KCk9PntsZXQgdD10aGlzLlp0O251bGwhPT10JiYiZmFpbGVkIiE9PXQuaWNlQ29ubmVjdGlvblN0YXRlJiYiY2xvc2VkIiE9PXQuaWNlQ29ubmVjdGlvblN0YXRlfHx0aGlzLnBzKCksbnVsbCE9PXQmJiJkaXNjb25uZWN0ZWQiPT09dC5pY2VDb25uZWN0aW9uU3RhdGUmJih0aGlzLnNzPXRoaXMucGFyZW50LlNjaGVkdWxlLnNldFRpbWVvdXQoKCk9Pnt0aGlzLnNzPW51bGwsbnVsbCE9PXRoaXMuWnQmJiJjb25uZWN0ZWQiPT09dC5pY2VDb25uZWN0aW9uU3RhdGV8fHRoaXMucHMoKX0sNWUzKSksbnVsbCE9PXQmJiJjb25uZWN0ZWQiPT09dC5pY2VDb25uZWN0aW9uU3RhdGUmJiEwIT09dGhpcy50cyYmdGhpcy5wYXJlbnQuU2NoZWR1bGUuc2V0VGltZW91dCgoKT0+e3RoaXMuZHMoITApfSwyMDApfSx0aGlzLlp0Lm9ubmVnb3RpYXRpb25uZWVkZWQ9KCk9Pnt0aGlzLmZzKCJvZmZlciIpfSx0aGlzLlp0Lm9uY2xvc2U9KCk9Pnt0aGlzLnBzKCl9KX1kcyh0PSExKXtsZXQgZT0oKT0+e3RoaXMucGFyZW50LmV2ZW50LmVtaXQoImNhbGw6cGVlcjpsb2NhbDplcnJvciIse30pfTt0aGlzLmdzKHM9PntuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86ITAsdmlkZW86InZpZGVvIj09PXRoaXMuenQmJiEwPT09cy52aWRlb30pLnRoZW4oZT0+KHRoaXMuUXQubG9jYWw9ZSx0aGlzLnBhcmVudC5ldmVudC5lbWl0KCJjYWxsOm1lZGlhOmxvY2FsOnN1Y2Nlc3MiLHtyZXRyaWVkOnR8fCExfSksITA9PT10JiYodGhpcy50cz0hMCksdGhpcy5fcyhlLHQpKSkuY2F0Y2goZSl9LGUpfV9zKHQsZT0hMSl7bGV0IHM9dC5nZXRUcmFja3MoKTshMD09PWUmJnRoaXMuWnQuZ2V0U2VuZGVycygpLmZvckVhY2godD0+e3QudHJhY2smJnQudHJhY2suc3RvcCgpLHRoaXMuWnQucmVtb3ZlVHJhY2sodCl9KTtmb3IobGV0IGk9MDtpPHMubGVuZ3RoO2krKyl0aGlzLlp0LmFkZFRyYWNrKHNbaV0sdCk7ITAhPT1lJiZ0aGlzLmZzKCJhbnN3ZXIiKX1ncyh0LGUpe2xldCBzPXthdWRpbzohMSx2aWRlbzohMX07bmF2aWdhdG9yLm1lZGlhRGV2aWNlcz8uZW51bWVyYXRlRGV2aWNlcz9uYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMoKS50aGVuKGk9Pntmb3IobGV0IHQ9MDt0PGkubGVuZ3RoO3QrKylzd2l0Y2goaVt0XS5raW5kKXtjYXNlImF1ZGlvaW5wdXQiOnMuYXVkaW89ITA7YnJlYWs7Y2FzZSJ2aWRlb2lucHV0IjpzLnZpZGVvPSEwfSEwIT09cy5hdWRpbz9lKCk6dChzKX0pLmNhdGNoKGUpOnQocyl9ZnModD0ib2ZmZXIiKXtsZXQgZTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2xldCBlPXtPZmZlclRvUmVjZWl2ZUF1ZGlvOiEwLE9mZmVyVG9SZWNlaXZlVmlkZW86ITB9O3JldHVybiJhbnN3ZXIiPT09dD90aGlzLlp0LmNyZWF0ZUFuc3dlcihlKTp0aGlzLlp0LmNyZWF0ZU9mZmVyKGUpfSkudGhlbih0PT4oZT10LHRoaXMuWnQuc2V0TG9jYWxEZXNjcmlwdGlvbihlKSkpLnRoZW4oKCk9Pih0aGlzLnBhcmVudC5zdHJlYW0uZW1pdCgiY2xpZW50OmNhbGw6c2lnbmFsaW5nOnNkcCIse2Zyb206InVzZXIiLHNkcDplfSksdGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgiY2FsbDpwZWVyOmxvY2FsOnN1Y2Nlc3MiLHt9KSxQcm9taXNlLnJlc29sdmUoKSkpLmNhdGNoKCgpPT4odGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgiY2FsbDpwZWVyOmxvY2FsOmVycm9yIix7fSksUHJvbWlzZS5yZXNvbHZlKCkpKX1XKCl7dGhpcy5wcygpfXBzKCl7aWYobnVsbCE9PXRoaXMuWnQpe2xldCB0PXRoaXMuWnQuZ2V0U2VuZGVycygpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV0udHJhY2s/LnN0b3AoKTt0aGlzLmVzLnZpZGVvPy5zdG9wKCksdGhpcy5adD8uY2xvc2UoKSx0aGlzLlp0PW51bGx9bnVsbCE9PXRoaXMuc3MmJih0aGlzLnBhcmVudC5TY2hlZHVsZS5jbGVhclRpbWVvdXQodGhpcy5zcyksdGhpcy5zcz1udWxsKSx0aGlzLnBhcmVudC5TdHJlYW0uX3VuYmluZEZyb20oKSx0aGlzLlo9ITEsdGhpcy5XdD0hMSx0aGlzLkt0PSExLHRoaXMudHM9ITEsdGhpcy56dD1udWxsLHRoaXMuSnQ9W10sdGhpcy5RdC5sb2NhbD1udWxsLHRoaXMuUXQucmVtb3RlPW51bGwsdGhpcy5lcy52aWRlbz1udWxsLHRoaXMuaXQoITEpLHRoaXMucGFyZW50LmV2ZW50LmVtaXQoImNhbGw6YWN0aW9uOnN0b3BwZWQiLHt9KX1HdCh0LGUpe2xldCBzPSExO2lmKCEwPT09dGhpcy5aJiZudWxsIT09dGhpcy5RdC5sb2NhbCl7bGV0IGk9ITEsbj10aGlzLlF0LmxvY2FsW2VdKCk7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0KyspaT0hMCxzPSFuW3RdLmVuYWJsZWQsblt0XS5lbmFibGVkPXM7aWYoITA9PT1pKXtsZXQgZT0hMD09PXM/InN0YXJ0ZWQiOiJlbmRlZCI7dGhpcy5wYXJlbnQuZXZlbnQuZW1pdChgY2FsbDp0cmFjazpsb2NhbDoke2V9YCx7bWVkaWE6dH0pfX1yZXR1cm4gc31ZdCgpeyEwPT09dGhpcy5oYXNTdXBwb3J0U2NyZWVuc2hhcmluZygpJiYodGhpcy5XdD0hMCxuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldERpc3BsYXlNZWRpYSh7dmlkZW86ITB9KS50aGVuKHQ9PntsZXQgZT10LmdldFRyYWNrcygpWzBdLHM9dGhpcy5adC5nZXRTZW5kZXJzKCksaT1udWxsO2ZvcihsZXQgbj0wO248cy5sZW5ndGg7bisrKWlmKCJ2aWRlbyI9PT1zW25dLnRyYWNrPy5raW5kKXtpPXNbbl07YnJlYWt9bnVsbCE9PWk/KHRoaXMuZXMudmlkZW89aS50cmFjayxpLnJlcGxhY2VUcmFjayhlKSk6aT10aGlzLlp0LmFkZFRyYWNrKGUsdGhpcy5RdC5sb2NhbCksZS5vbmVuZGVkPSgpPT57bnVsbCE9PXRoaXMuWnQmJih0aGlzLnlzKGkpLHRoaXMucGFyZW50LmV2ZW50LmVtaXQoImNhbGw6dHJhY2s6bG9jYWw6ZW5kZWQiLHttZWRpYToic2NyZWVuc2hhcmluZyJ9KSl9LHRoaXMucGFyZW50LmV2ZW50LmVtaXQoImNhbGw6dHJhY2s6bG9jYWw6c3RhcnRlZCIse21lZGlhOiJzY3JlZW5zaGFyaW5nIn0pfSkuY2F0Y2goKCk9Pnt0aGlzLld0PSExfSkpfVh0KCl7bGV0IHQ9dGhpcy5adC5nZXRTZW5kZXJzKCksZT1udWxsO2ZvcihsZXQgcz0wO3M8dC5sZW5ndGg7cysrKWlmKCJ2aWRlbyI9PT10W3NdLnRyYWNrPy5raW5kKXtlPXRbc107YnJlYWt9bnVsbCE9PWUmJihlLnRyYWNrLnN0b3AoKSxlLnRyYWNrLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJlbmRlZCIpKSl9eXModCl7bnVsbCE9PXRoaXMuZXMudmlkZW8/KHQucmVwbGFjZVRyYWNrKHRoaXMuZXMudmlkZW8pLHRoaXMuZXMudmlkZW89bnVsbCk6dGhpcy5adC5yZW1vdmVUcmFjayh0KSx0aGlzLld0PSExfWl0KHQ9ITApe251bGwhPT10aGlzLmN0JiZ0aGlzLnBhcmVudC5TY2hlZHVsZS5jbGVhckludGVydmFsKHRoaXMuY3QpLCEwPT09dCYmKHRoaXMuY3Q9dGhpcy5wYXJlbnQuU2NoZWR1bGUuc2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLnBhcmVudC5zdHJlYW0uZW1pdCgiY2xpZW50OmNhbGw6aGVhcnRiZWF0Iix7fSl9LDFlNCkpfX0scnI9bmV3IFJlZ0V4cChbIiheKD86XFxTKyg/Oig/Olxccyt8XFw/fFxcIXxcXC58XFwofFxcKXw6fDspfCg/OltcXHU0ZTAwLVxcdTlmZmZdKXwoPzpbXFx1MGUwMC1cXHUwZTdmXSkpKSspLiokIl0uam9pbigiIiksImkiKSxvcj1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnBhcmVudD10LHRoaXMuaCgpLHRoaXMuXygpfXNlbmRUZXh0TWVzc2FnZSh0LGU9MCl7dGhpcy52cyh7dHlwZToidGV4dCIsb3JpZ2luOiJjaGF0Iixjb250ZW50OnQsdGltZXN0YW1wOihuZXcgRGF0ZSkuZ2V0VGltZSgpLGZpbmdlcnByaW50OnRoaXMuZ2VuZXJhdGVGaW5nZXJwcmludCgpfSxlKX1zZW5kRmlsZU1lc3NhZ2UodCxlLHMsaT0wKXt0aGlzLnZzKHt0eXBlOiJmaWxlIixvcmlnaW46ImNoYXQiLGNvbnRlbnQ6e25hbWU6dCx1cmw6ZSx0eXBlOnN9LHRpbWVzdGFtcDoobmV3IERhdGUpLmdldFRpbWUoKSxmaW5nZXJwcmludDp0aGlzLmdlbmVyYXRlRmluZ2VycHJpbnQoKX0saSl9c2VuZEFuaW1hdGlvbk1lc3NhZ2UodCxlLHM9MCl7dGhpcy52cyh7dHlwZToiYW5pbWF0aW9uIixvcmlnaW46ImNoYXQiLGNvbnRlbnQ6e3VybDp0LHR5cGU6ZX0sdGltZXN0YW1wOihuZXcgRGF0ZSkuZ2V0VGltZSgpLGZpbmdlcnByaW50OnRoaXMuZ2VuZXJhdGVGaW5nZXJwcmludCgpfSxzKX1zZW5kQXVkaW9NZXNzYWdlKHQsZSxzLGk9MCl7dGhpcy52cyh7dHlwZToiYXVkaW8iLG9yaWdpbjoiY2hhdCIsY29udGVudDp7dXJsOnQsdHlwZTplLGR1cmF0aW9uOnN9LHRpbWVzdGFtcDoobmV3IERhdGUpLmdldFRpbWUoKSxmaW5nZXJwcmludDp0aGlzLmdlbmVyYXRlRmluZ2VycHJpbnQoKX0saSl9c2VuZFBpY2tlck1lc3NhZ2UodCxlLHMsaT0wKXt0aGlzLnZzKHt0eXBlOiJwaWNrZXIiLG9yaWdpbjoiY2hhdCIsY29udGVudDp7aWQ6dCx0ZXh0OmUsY2hvaWNlczpzfSx0aW1lc3RhbXA6KG5ldyBEYXRlKS5nZXRUaW1lKCksZmluZ2VycHJpbnQ6dGhpcy5nZW5lcmF0ZUZpbmdlcnByaW50KCl9LGkpfXNlbmRGaWVsZE1lc3NhZ2UodCxlLHMsaT0wKXt0aGlzLnZzKHt0eXBlOiJmaWVsZCIsb3JpZ2luOiJjaGF0Iixjb250ZW50OntpZDp0LHRleHQ6ZSxleHBsYWluOnN9LHRpbWVzdGFtcDoobmV3IERhdGUpLmdldFRpbWUoKSxmaW5nZXJwcmludDp0aGlzLmdlbmVyYXRlRmluZ2VycHJpbnQoKX0saSl9c2VuZENhcm91c2VsTWVzc2FnZSh0LGUscz0wKXt0aGlzLnZzKHt0eXBlOiJjYXJvdXNlbCIsb3JpZ2luOiJjaGF0Iixjb250ZW50Ont0ZXh0OnQsdGFyZ2V0czplfSx0aW1lc3RhbXA6KG5ldyBEYXRlKS5nZXRUaW1lKCksZmluZ2VycHJpbnQ6dGhpcy5nZW5lcmF0ZUZpbmdlcnByaW50KCl9LHMpfXNlbmRNZXNzYWdlQ29tcG9zZSh0LGU9bnVsbCl7bGV0IHM9dGhpcy5wYXJlbnQuU2Vzc2lvbi5fZ2V0Q2hpbGRTZXNzaW9uSWRPck5vbmUoKSxpPXRoaXMuYnMoKTsoITAhPT10aGlzLnBhcmVudC5Db25maWcuX2lnbm9yZVByaXZhY3kmJiIxIj09PW5hdmlnYXRvcj8uZG9Ob3RUcmFja3x8ITE9PT10aGlzLnBhcmVudC5Db25maWcuX3Zpc2l0b3JDb21wb3NlKSYmKGU9bnVsbCksZT10aGlzLmtzKGUpO2xldCBuPSh0IT09aS5tZXNzYWdlQ29tcG9zZS5sb2NhbC50eXBlfHxzIT09aS5tZXNzYWdlQ29tcG9zZS5sb2NhbC5zZXNzaW9uX2lkKSYmITA7KCEwPT09bnx8ZSE9PShpLm1lc3NhZ2VDb21wb3NlLmxvY2FsLmV4Y2VycHR8fG51bGwpfHwic3RhcnQiPT09aS5tZXNzYWdlQ29tcG9zZS5sb2NhbC50eXBlJiZpLm1lc3NhZ2VDb21wb3NlTG9jYWxTaW5jZSYmKG5ldyBEYXRlKS5nZXRUaW1lKCktaS5tZXNzYWdlQ29tcG9zZUxvY2FsU2luY2U+PTZlNCkmJihpLm1lc3NhZ2VDb21wb3NlTG9jYWxTaW5jZT0obmV3IERhdGUpLmdldFRpbWUoKSxpLm1lc3NhZ2VDb21wb3NlLmxvY2FsPXtzZXNzaW9uX2lkOnMsdHlwZTp0fSxlJiYoaS5tZXNzYWdlQ29tcG9zZS5sb2NhbC5leGNlcnB0PWUpLCEwPT09biYmbnVsbCE9PWkuZGVmZXJDb21wb3NlRGVib3VuY2UmJih0aGlzLnBhcmVudC5TY2hlZHVsZS5jbGVhclRpbWVvdXQoaS5kZWZlckNvbXBvc2VEZWJvdW5jZSksaS5kZWZlckNvbXBvc2VEZWJvdW5jZT1udWxsKSxudWxsPT09aS5kZWZlckNvbXBvc2VEZWJvdW5jZSYmKGkuZGVmZXJDb21wb3NlRGVib3VuY2U9dGhpcy5wYXJlbnQuU2NoZWR1bGUuc2V0VGltZW91dCgoKT0+e2kuZGVmZXJDb21wb3NlRGVib3VuY2U9bnVsbCx0aGlzLnBhcmVudC5zb2NrZXQuZW1pdCgibWVzc2FnZTpjb21wb3NlOnNlbmQiLGkubWVzc2FnZUNvbXBvc2UubG9jYWwpLHRoaXMucGFyZW50LmV2ZW50LmVtaXQoIm1lc3NhZ2U6Y29tcG9zZTpzZW5kIixpLm1lc3NhZ2VDb21wb3NlLmxvY2FsKX0sITA9PT1uPzA6NmUzKSkpfXNlbmRNZXNzYWdlVGhyZWFkKHQsZT0iIil7bGV0IHM9e3Nlc3Npb25faWQ6dGhpcy5wYXJlbnQuU2Vzc2lvbi5fZ2V0Q2hpbGRTZXNzaW9uSWRPck5vbmUoKSx0eXBlOnR9O2UmJihzLnRleHQ9ZSksdGhpcy5wYXJlbnQuc29ja2V0LmVtaXQoIm1lc3NhZ2U6dGhyZWFkIixzKSx0aGlzLnBhcmVudC5ldmVudC5lbWl0KCJtZXNzYWdlOnRocmVhZCIscyl9cmVjZWl2ZU1lc3NhZ2VMb2NhbCh0LGUscyxpPW51bGwpe2xldCBuPXtzZXNzaW9uX2lkOnRoaXMucGFyZW50LlNlc3Npb24uX2dldENoaWxkU2Vzc2lvbklkT3JOb25lKCksZnJvbToib3BlcmF0b3IiLHR5cGU6dCxvcmlnaW46ImxvY2FsIix0aW1lc3RhbXA6KG5ldyBEYXRlKS5nZXRUaW1lKCksY29udGVudDplLGZpbmdlcnByaW50Om51bGwhPT1pP2k6dGhpcy5nZW5lcmF0ZUZpbmdlcnByaW50KCksdXNlcjpzfTt0aGlzLnBhcmVudC5zb2NrZXQuZW1pdCgibWVzc2FnZTpyZWNlaXZlZDpsb2NhbCIsbiksdGhpcy5TcyhuKX1yZWNlaXZlTWVzc2FnZU1pcnJvcih0LGUscyxpLG49bnVsbCl7bGV0IHI9e3Nlc3Npb25faWQ6dGhpcy5wYXJlbnQuU2Vzc2lvbi5fZ2V0Q2hpbGRTZXNzaW9uSWRPck5vbmUobiksZnJvbToib3BlcmF0b3IiLHR5cGU6dCxvcmlnaW46ZSx0aW1lc3RhbXA6KG5ldyBEYXRlKS5nZXRUaW1lKCksY29udGVudDpzLGZpbmdlcnByaW50Oml9O3RoaXMucGFyZW50LnNvY2tldC5lbWl0KCJtZXNzYWdlOnJlY2VpdmVkOm1pcnJvciIscil9dXBkYXRlTWVzc2FnZSh0LGUscz1udWxsKXtsZXQgaT17c2Vzc2lvbl9pZDp0aGlzLnBhcmVudC5TZXNzaW9uLl9nZXRDaGlsZFNlc3Npb25JZE9yTm9uZShzKSxmaW5nZXJwcmludDp0LGNvbnRlbnQ6ZX07dGhpcy5wYXJlbnQuc29ja2V0LmVtaXQoIm1lc3NhZ2U6dXBkYXRlIixpKSx0aGlzLkFzKGksImxvY2FsIil9Z2V0TWVzc2FnZUNvbXBvc2UodD1udWxsKXt0PXRoaXMucGFyZW50LlNlc3Npb24uX2dldEVmZmVjdGl2ZVNlc3Npb25JZCh0KSx0aGlzLnBhcmVudC5ldmVudC5lbWl0KCJtZXNzYWdlOmNvbXBvc2U6cmVjZWl2ZWQiLHRoaXMuYnModCkubWVzc2FnZUNvbXBvc2UucmVtb3RlKX1nZXRDYWNoZWRNZXNzYWdlcyh0PW51bGwpe3JldHVybiB0PXRoaXMucGFyZW50LlNlc3Npb24uX2dldEVmZmVjdGl2ZVNlc3Npb25JZCh0KSx0aGlzLmJzKHQpLm1lc3NhZ2VzfWNvdW50TWVzc2FnZUhpc3RvcnkodD1udWxsKXtyZXR1cm4gdD10aGlzLnBhcmVudC5TZXNzaW9uLl9nZXRFZmZlY3RpdmVTZXNzaW9uSWQodCksdGhpcy5icyh0KS5sZW5ndGh9Z2V0TWVzc2FnZUhpc3RvcnkodD1udWxsKXt0PXRoaXMucGFyZW50LlNlc3Npb24uX2dldEVmZmVjdGl2ZVNlc3Npb25JZCh0KTtsZXQgZT10aGlzLmJzKHQpO2lmKGUubWVzc2FnZXMubGVuZ3RoPjApe2ZvcihsZXQgdD0wO3Q8ZS5tZXNzYWdlcy5sZW5ndGg7dCsrKWUubWVzc2FnZXNbdF0ub3JpZ2luPSJoaXN0b3J5Ijt0aGlzLnBhcmVudC5ldmVudC5lbWl0KCJoaXN0b3J5Om1lc3NhZ2VzIix7c2Vzc2lvbl9pZDp0LG1lc3NhZ2VzOmUubWVzc2FnZXN9KX1mb3IobGV0IHM9MDtzPGUubWVzc2FnZXNIaXN0b3J5RGlmZi5sZW5ndGg7cysrKXRoaXMuTXModCxlLm1lc3NhZ2VzSGlzdG9yeURpZmZbc10sImRpZmYiKTtlLm1lc3NhZ2VzSGlzdG9yeURpZmY9W119bWFya01lc3NhZ2VzQXNSZWFkKHQ9bnVsbCxlPSEwKXt0PXRoaXMucGFyZW50LlNlc3Npb24uX2dldEVmZmVjdGl2ZVNlc3Npb25JZCh0KSwhMD09PXRoaXMuRXModCx2b2lkIDAsdm9pZCAwLGUpJiZ0aGlzLkNzKHQpfXNldE1lc3NhZ2VzSW5WaWV3KHQ9ITAsZT1udWxsKXtlPXRoaXMucGFyZW50LlNlc3Npb24uX2dldEVmZmVjdGl2ZVNlc3Npb25JZChlKSx0aGlzLkRzPSEwPT09dD9lOm51bGwsdGhpcy5tYXJrTWVzc2FnZXNBc1JlYWQoZSwhMSl9Z2V0VW5yZWFkTWVzc2FnZXModD1udWxsKXt0PXRoaXMucGFyZW50LlNlc3Npb24uX2dldEVmZmVjdGl2ZVNlc3Npb25JZCh0KSx0aGlzLmJzKHQpLnVucmVhZE1lc3NhZ2VzQ291bnQ9LTEsdGhpcy5Scyh0KX1zZXRVbnJlYWRNZXNzYWdlc0NhbGxiYWNrKHQpe3RoaXMuanM9dH1nZW5lcmF0ZUZpbmdlcnByaW50KCl7bGV0IHQ9U3RyaW5nKChuZXcgRGF0ZSkuZ2V0VGltZSgpKStNYXRoLmNlaWwoMTAwKk1hdGgucmFuZG9tKCkpO3JldHVybiB0Lmxlbmd0aDwxNSYmKHQrPW5ldyBBcnJheSgxNS10Lmxlbmd0aCsxKS5qb2luKCIwIikpLHQ9cGFyc2VJbnQodCwxMCksdH1yZXNldCgpe3RoaXMuaCgpfV9jb3VudE1lc3NhZ2VIaXN0b3J5RGlmZigpe3JldHVybiB0aGlzLmJzKCkubWVzc2FnZXNIaXN0b3J5RGlmZi5sZW5ndGh9X3N0b3JhZ2VTZXNzaW9uTWVzc2FnZUhhbmRsZSh0LGUpe3RoaXMuJHModCxlKX1fc3luY01lc3NhZ2VDb21wb3NlRGlmZih0LGUpe2xldCBzPXRoaXMuYnModCk7ZSYmKHMubWVzc2FnZUNvbXBvc2UucmVtb3RlPXtzZXNzaW9uX2lkOnQsLi4uZX0pfV9zeW5jTWVzc2FnZUhpc3RvcnlEaWZmKHQsZSl7aWYoZSl7bGV0IHM9dGhpcy5icyh0KTt0aGlzLnFzKGUpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXMubWVzc2FnZXNIaXN0b3J5RGlmZi5wdXNoKGVbdF0pO3RoaXMuUnModCl9fWgoKXt0aGlzLk9zPXt9LHRoaXMuRHM9bnVsbCx0aGlzLmpzPWZ1bmN0aW9uKCl7fX1fKCl7dGhpcy5wYXJlbnQuc29ja2V0Lm9uKCJtZXNzYWdlOnVwZGF0ZWQiLHppKHRoaXMuQXMsdGhpcykpLHRoaXMucGFyZW50LnNvY2tldC5vbigibWVzc2FnZTpzZW50Iix6aSh0aGlzLklzLHRoaXMpKSx0aGlzLnBhcmVudC5zb2NrZXQub24oIm1lc3NhZ2U6cmVjZWl2ZWQiLHppKHRoaXMueHMsdGhpcykpLHRoaXMucGFyZW50LnNvY2tldC5vbigibWVzc2FnZTpyZWNlaXZlZDpsb2NhbCIsemkodGhpcy5Tcyx0aGlzKSksdGhpcy5wYXJlbnQuc29ja2V0Lm9uKCJtZXNzYWdlOnJlbW92ZWQiLHppKHRoaXMuVHMsdGhpcykpLHRoaXMucGFyZW50LnNvY2tldC5vbigibWVzc2FnZTpjb21wb3NlOnJlY2VpdmVkIix6aSh0aGlzLk5zLHRoaXMpKSx0aGlzLnBhcmVudC5zb2NrZXQub24oIm1lc3NhZ2U6YWNrbm93bGVkZ2U6cmVhZDpzZW5kIix6aSh0aGlzLlVzLHRoaXMpKSx0aGlzLnBhcmVudC5zb2NrZXQub24oIm1lc3NhZ2U6YWNrbm93bGVkZ2U6cmVhZDpyZWNlaXZlZCIsemkodGhpcy5Qcyx0aGlzKSksdGhpcy5wYXJlbnQuc29ja2V0Lm9uKCJtZXNzYWdlOmFja25vd2xlZGdlOnBlbmRpbmciLHppKHRoaXMuQnMsdGhpcykpLHRoaXMucGFyZW50LnNvY2tldC5vbigibWVzc2FnZTplcnJvcjpyZWplY3RlZCIsemkodGhpcy5Mcyx0aGlzKSl9YnModD1udWxsKXtyZXR1cm4odD10aGlzLnBhcmVudC5TZXNzaW9uLl9nZXRFZmZlY3RpdmVTZXNzaW9uSWQodCkpaW4gdGhpcy5Pc3x8KHRoaXMuT3NbdF09e21lc3NhZ2VzOltdLG1lc3NhZ2VzRmluZ2VycHJpbnRzOltdLG1lc3NhZ2VzSGlzdG9yeURpZmY6W10sdW5yZWFkTWVzc2FnZXNJbmRleDpbXSxzZW5kaW5nTWVzc2FnZXNJbmRleDpbXSx1cGRhdGVkTWVzc2FnZXNJbmRleDpbXSxkZWZlckNvbXBvc2VEZWJvdW5jZTpudWxsLG1lc3NhZ2VDb21wb3NlTG9jYWxTaW5jZTowLG1lc3NhZ2VDb21wb3NlOntsb2NhbDp7dHlwZToic3RvcCJ9LHJlbW90ZTp7dHlwZToic3RvcCJ9fX0pLHRoaXMuT3NbdF19JHModCxlKXtsZXQgcz10aGlzLmJzKHQpO2V8fChlPVtdKSxzLm1lc3NhZ2VzPWUscy5tZXNzYWdlc0ZpbmdlcnByaW50cz1bXSx0aGlzLnFzKHMubWVzc2FnZXMpO2ZvcihsZXQgaT0wO2k8cy5tZXNzYWdlcy5sZW5ndGg7aSsrKXtsZXQgdD1zLm1lc3NhZ2VzW2ldO3MubWVzc2FnZXNGaW5nZXJwcmludHMucHVzaCh0LmZpbmdlcnByaW50KSxlW2ldLmlzX21lfHx0LnJlYWR8fHMudW5yZWFkTWVzc2FnZXNJbmRleC5wdXNoKHQuZmluZ2VycHJpbnQpfXRoaXMuUnModCl9dnModCxlPTAscz1udWxsKXtzPXRoaXMucGFyZW50LlNlc3Npb24uX2dldEVmZmVjdGl2ZVNlc3Npb25JZChzKTtsZXQgaT10aGlzLmJzKHMpO3Quc2Vzc2lvbl9pZD10aGlzLnBhcmVudC5TZXNzaW9uLl9nZXRDaGlsZFNlc3Npb25JZE9yTm9uZShzKTtsZXQgbj0oKT0+e3RoaXMucGFyZW50LnNvY2tldC5lbWl0KCJtZXNzYWdlOnNlbmQiLHQpfTtpZigtMT09PWkuc2VuZGluZ01lc3NhZ2VzSW5kZXguaW5kZXhPZih0LmZpbmdlcnByaW50KSYmaS5zZW5kaW5nTWVzc2FnZXNJbmRleC5wdXNoKHQuZmluZ2VycHJpbnQpLHRoaXMucGFyZW50LnBsYXRmb3JtTmFtZSYmdGhpcy5wYXJlbnQucGxhdGZvcm1TaWduYXR1cmVLZXkpe2xldCBlPVtzLHQuZmluZ2VycHJpbnQsdC50eXBlXSxpPXRoaXMucGFyZW50LnNoYTI1Ni5obWFjLmNyZWF0ZSh0aGlzLnBhcmVudC5wbGF0Zm9ybVNpZ25hdHVyZUtleS5zcGxpdCgiLyIpLm1hcCh0PT5TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KHQsMzYpKSkuam9pbigiIikpO2kudXBkYXRlKGBbJHtlLmpvaW4oInwiKX1dYCksdC5zaWduYXR1cmU9YCR7dGhpcy5wYXJlbnQucGxhdGZvcm1OYW1lfToke2kuaGV4KCl9YH10aGlzLnBhcmVudC5ldmVudC5lbWl0KCJtZXNzYWdlOnNlbmQiLHQpLHRoaXMucGFyZW50LlNjaGVkdWxlLnNldFRpbWVvdXQoKCk9Pnt0aGlzLnBhcmVudC50aWNrZXRHZW5lcmF0b3I/dGhpcy5wYXJlbnQudGlja2V0R2VuZXJhdG9yKHMsZT0+e251bGwhPT1lJiYodC50aWNrZXQ9ZSksbigpfSk6bigpfSxlKX1rcyh0KXtsZXQgZT1udWxsO2lmKG51bGwhPT10KXtsZXQgcz10Lm1hdGNoKHJyKTtzJiYoZT0oc1sxXXx8IiIpLnRyaW0oKSl9cmV0dXJuIGV9SHModCxlKXtsZXQgcz17c2Vzc2lvbl9pZDp0LG9yaWdpbjoiY2hhdCIsZmluZ2VycHJpbnRzOmV9O3RoaXMucGFyZW50LnNvY2tldC5lbWl0KCJtZXNzYWdlOmFja25vd2xlZGdlOnBlbmRpbmciLHMpLHRoaXMucGFyZW50LnNvY2tldC5lbWl0KCJtZXNzYWdlOmFja25vd2xlZGdlOmRlbGl2ZXJlZCIscyl9RnModCxlKXt0aGlzLnBhcmVudC5zb2NrZXQuZW1pdCgibWVzc2FnZTphY2tub3dsZWRnZTpyZWFkOnJlY2VpdmVkIix7c2Vzc2lvbl9pZDp0LG9yaWdpbjoiY2hhdCIsZmluZ2VycHJpbnRzOmV9KX1Wcyh0LGUscyl7bGV0IGk9dGhpcy5icyh0KSxuPSExOyExPT09cyYmKGkudW5yZWFkTWVzc2FnZXNJbmRleD1bXSx0aGlzLlJzKHQpKTtmb3IobGV0IHI9MDtyPGkubWVzc2FnZXMubGVuZ3RoO3IrKyl7bGV0IG89aS5tZXNzYWdlc1tyXTshMD09PW8ucmVhZHx8MCE9PWUubGVuZ3RoJiYtMT09PWUuaW5kZXhPZihvLmZpbmdlcnByaW50KXx8cz09PSghMD09PW8uaXNfbWUpJiYoby5yZWFkPSEwLG49ITAsdGhpcy56cyh0LG8pKX1yZXR1cm4gbn1Fcyh0LGU9W10scz0hMSxpPSExKXtsZXQgbj10aGlzLmJzKHQpLHI9c3x8ITE7cmV0dXJuITE9PT1zJiZuLnVucmVhZE1lc3NhZ2VzSW5kZXgubGVuZ3RoPjAmJighMD09PWl8fHRoaXMuRHM9PT10KSYmKHRoaXMuRnModCxuLnVucmVhZE1lc3NhZ2VzSW5kZXgpLHI9ITApLCEwPT09ciYmdGhpcy5Wcyh0LGUscyl9Q3ModCxlPW51bGwscz1udWxsKXtsZXQgaT10aGlzLmJzKHQpO2lmKGkudXBkYXRlZE1lc3NhZ2VzSW5kZXgubGVuZ3RoPjApe2xldCBuPVtdO2ZvcihsZXQgdD0wO3Q8aS5tZXNzYWdlcy5sZW5ndGg7dCsrKXtsZXQgZT1pLm1lc3NhZ2VzW3RdO2lmKC0xIT09aS51cGRhdGVkTWVzc2FnZXNJbmRleC5pbmRleE9mKGUuZmluZ2VycHJpbnQpKXtsZXQgdD17Li4uZX07ZGVsZXRlIHQuc2Vzc2lvbl9pZCxkZWxldGUgdC5pbmRleCxkZWxldGUgdC5vcmlnaW4sbi5wdXNoKHQpfX1pLnVwZGF0ZWRNZXNzYWdlc0luZGV4PVtdLHRoaXMucGFyZW50LlN0b3JhZ2UuX3VwZGF0ZSgibWVzc2FnZSIsbix0LGUscyl9ZWxzZSJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlKCl9SnModCxlPW51bGwscz1udWxsKXtsZXQgaT10LnNlc3Npb25faWQ7aWYobnVsbD09PXRoaXMuS3MoaSx0LmZpbmdlcnByaW50KSl7bGV0IG49dGhpcy5icyhpKTtuLm1lc3NhZ2VzRmluZ2VycHJpbnRzLnB1c2godC5maW5nZXJwcmludCksbi5tZXNzYWdlcy5wdXNoKHQpLHRoaXMuRXMoaSksdGhpcy56cyhpLHQpLHRoaXMuQ3MoaSxlLHMpfWVsc2UiZnVuY3Rpb24iPT10eXBlb2YgZSYmZSgpfUdzKHQsZSxzPW51bGwsaT1udWxsKXtsZXQgbj10aGlzLmJzKHQpLHI9bi5tZXNzYWdlc0ZpbmdlcnByaW50cy5pbmRleE9mKGUuZmluZ2VycHJpbnQpOy0xIT09cj8odGhpcy56cyh0LGUpLHRoaXMuQ3ModCwoKT0+e24ubWVzc2FnZXNGaW5nZXJwcmludHMuc3BsaWNlKHIsMSksbi5tZXNzYWdlcy5zcGxpY2UociwxKTtsZXQgaT1uLnVucmVhZE1lc3NhZ2VzSW5kZXguaW5kZXhPZihlLmZpbmdlcnByaW50KTstMSE9PWkmJihuLnVucmVhZE1lc3NhZ2VzSW5kZXguc3BsaWNlKGksMSksdGhpcy5Scyh0KSksImZ1bmN0aW9uIj09dHlwZW9mIHMmJnMoKX0saSkpOiJmdW5jdGlvbiI9PXR5cGVvZiBzJiZzKCl9S3ModCxlKXtsZXQgcz10aGlzLmJzKHQpLGk9cy5tZXNzYWdlc0ZpbmdlcnByaW50cy5pbmRleE9mKGUpO3JldHVybiBpPj0wJiZzLm1lc3NhZ2VzW2ldfHxudWxsfXpzKHQsZSl7bGV0IHM9dGhpcy5icyh0KTstMT09PXMudXBkYXRlZE1lc3NhZ2VzSW5kZXguaW5kZXhPZihlLmZpbmdlcnByaW50KSYmcy51cGRhdGVkTWVzc2FnZXNJbmRleC5wdXNoKGUuZmluZ2VycHJpbnQpfXFzKHQpe3Quc29ydCgodCxlKT0+dC50aW1lc3RhbXA8ZS50aW1lc3RhbXA/LTE6dC50aW1lc3RhbXA+ZS50aW1lc3RhbXA/MTowKX1Ncyh0LGUscyl7bGV0IGk9e3Nlc3Npb25faWQ6dCwuLi5lfTtlLmlzX21lP3RoaXMuSXMoaSxzKTp0aGlzLnhzKGkscyl9UnModCxlPVtdKXtsZXQgcz10aGlzLmJzKHQpLGk9cy51bnJlYWRNZXNzYWdlc0luZGV4Lmxlbmd0aDtpIT09cy51bnJlYWRNZXNzYWdlc0NvdW50JiYocy51bnJlYWRNZXNzYWdlc0NvdW50PWksImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuanMmJnRoaXMuanModCxpLHMudW5yZWFkTWVzc2FnZXNJbmRleCxbXS5jb25jYXQocy5tZXNzYWdlcyxlKSkpfUFzKHQsZT0ibmV0d29yayIpe2xldCBzPXQuc2Vzc2lvbl9pZCxpPXRoaXMuS3Mocyx0LmZpbmdlcnByaW50KTtudWxsIT09aSYmKGkuY29udGVudD10LmNvbnRlbnQsaS5lZGl0ZWQ9ITAsdGhpcy5NcyhzLGksInVwZGF0ZSIpLCJsb2NhbCIhPT1lJiYodGhpcy56cyhzLGkpLHRoaXMuQ3MocykpKX1Jcyh0LGU9Im5ldHdvcmsiKXtsZXQgcz10LnNlc3Npb25faWQsaT10aGlzLmJzKHMpLG49aS5zZW5kaW5nTWVzc2FnZXNJbmRleC5pbmRleE9mKHQuZmluZ2VycHJpbnQpOy0xIT09biYmaS5zZW5kaW5nTWVzc2FnZXNJbmRleC5zcGxpY2UobiwxKTtsZXQgcj10Lm9yaWdpbjt0Lm9yaWdpbj1lLHQuaW5kZXg9e2N1cnJlbnQ6MSx0b3RhbDoxfSx0aGlzLkpzKHQsKCk9PnsiY2hhdCI9PT1yfHwibmV0d29yayIhPT1lJiYiZGlmZiIhPT1lfHx0aGlzLkhzKHMsW3QuZmluZ2VycHJpbnRdKSx0aGlzLnBhcmVudC5ldmVudC5lbWl0KCJtZXNzYWdlOnNlbnQiLHQpfSksMT09PXRoaXMuY291bnRNZXNzYWdlSGlzdG9yeSgpJiZ0aGlzLnBhcmVudC5TZXNzaW9uLl90cmlnZ2VyRW1haWxLZWVwQWxpdmUoKX14cyh0LGU9Im5ldHdvcmsiLHM9Im1lc3NhZ2U6cmVjZWl2ZWQiKXtsZXQgaT10LnNlc3Npb25faWQsbj10aGlzLmJzKGkpO3Qub3JpZ2luPWUsdC5pbmRleD17Y3VycmVudDoxLHRvdGFsOjF9LCJ1cGRhdGUiIT09ZSYmKG4udW5yZWFkTWVzc2FnZXNJbmRleC5wdXNoKHQuZmluZ2VycHJpbnQpLHRoaXMuUnMoaSxbdF0pKSx0aGlzLkpzKHQsKCk9PnsibmV0d29yayIhPT1lJiYiZGlmZiIhPT1lfHx0aGlzLkhzKGksW3QuZmluZ2VycHJpbnRdKSx0aGlzLnBhcmVudC5ldmVudC5lbWl0KHMsdCl9KX1Tcyh0KXt0aGlzLnhzKHQsImxvY2FsIiwibWVzc2FnZTpyZWNlaXZlZDpsb2NhbCIpfVRzKHQpe2xldCBlPXQuc2Vzc2lvbl9pZCxzPXRoaXMuS3MoZSx0LmZpbmdlcnByaW50KTtudWxsIT09cyYmKHMucmVtb3ZlZD0hMCx0aGlzLkdzKGUscywoKT0+e3RoaXMucGFyZW50LmV2ZW50LmVtaXQoIm1lc3NhZ2U6cmVtb3ZlZCIscyl9KSl9TnModCl7bGV0IGU9dC5zZXNzaW9uX2lkO3RoaXMuYnMoZSkubWVzc2FnZUNvbXBvc2UucmVtb3RlPXQsdGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgibWVzc2FnZTpjb21wb3NlOnJlY2VpdmVkIix0KX1Vcyh0KXtsZXQgZT10LnNlc3Npb25faWQ7ITA9PT10aGlzLkVzKGUsdC5maW5nZXJwcmludHMsITApJiZ0aGlzLkNzKGUpLHRoaXMucGFyZW50LmV2ZW50LmVtaXQoIm1lc3NhZ2U6YWNrbm93bGVkZ2U6cmVhZDpzZW5kIix0KX1Qcyh0KXtsZXQgZT10LnNlc3Npb25faWQscz10aGlzLmJzKGUpO2ZvcihsZXQgaT0wO2k8dC5maW5nZXJwcmludHMubGVuZ3RoO2krKyl7bGV0IGU9cy51bnJlYWRNZXNzYWdlc0luZGV4LmluZGV4T2YodC5maW5nZXJwcmludHNbaV0pOy0xIT09ZSYmcy51bnJlYWRNZXNzYWdlc0luZGV4LnNwbGljZShlLDEpfXRoaXMuUnMoZSl9QnModCl7dGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgibWVzc2FnZTphY2tub3dsZWRnZTpwZW5kaW5nIix0KX1Mcyh0KXtsZXQgZT10LnNlc3Npb25faWQscz10aGlzLmJzKGUpLGk9cy5zZW5kaW5nTWVzc2FnZXNJbmRleC5pbmRleE9mKHQuZmluZ2VycHJpbnQpOy0xIT09aSYmcy5zZW5kaW5nTWVzc2FnZXNJbmRleC5zcGxpY2UoaSwxKSx0aGlzLnBhcmVudC5ldmVudC5lbWl0KCJtZXNzYWdlOmVycm9yOnJlamVjdGVkIix0KX19LHVyPTNlNSxscj1bImVtYWlsIiwicGhvbmUiLCJuaWNrbmFtZSIsImF2YXRhciIsImNvbXBhbnkiXSxhcj1uZXcgUmVnRXhwKCJeKGh0dHBzP1xcOlxcL1xcL1teL10rKVxcL2NoYXRcXC9yZXN1bWVcXC9cXD90YXJnZXRfdXJsPSguKykmc2Vzc2lvbl9pZD0oLispJCIpLGhyPS9eXD8uKihjcmlzcF9zaWQ9KFteJj1dKykpLiokLyxjcj0vKFw/LiopKGNyaXNwX3NpZD1bXiY9XSsmPykoLiopJC8sZHI9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5wYXJlbnQ9dCx0aGlzLmgoKSx0aGlzLl8oKX1zZW5kRXZlbnQodD1bXSl7bGV0IGU9e2V2ZW50czpbXX07Zm9yKGxldCBzPTA7czx0Lmxlbmd0aDtzKyspe2xldCBpPXRbc10sbj17dGV4dDppWzBdfTtudWxsIT09aVsxXSYmKG4uZGF0YT1pWzFdKSxudWxsIT09aVsyXSYmKG4uY29sb3I9aVsyXSksZS5ldmVudHMucHVzaChuKX1lLmV2ZW50cy5sZW5ndGg+MCYmdGhpcy5wYXJlbnQuc29ja2V0LmVtaXQoInNlc3Npb246ZXZlbnQiLGUpfXNlbmRGZWVkYmFja1JhdGUodCxlPW51bGwscz1udWxsKXtsZXQgaT17c2Vzc2lvbl9pZDp0aGlzLl9nZXRDaGlsZFNlc3Npb25JZE9yTm9uZShzKSxyYXRpbmc6e3N0YXJzOnR9fTtudWxsIT09ZSYmKGkucmF0aW5nLmNvbW1lbnQ9ZSksdGhpcy5wYXJlbnQuc29ja2V0LmVtaXQoInNlc3Npb246ZmVlZGJhY2s6cmF0ZSIsaSksdGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgic2Vzc2lvbjpmZWVkYmFjazpyYXRlIixpKX1zZW5kSWRlbnRpdHlWZXJpZnkodCxlLHM9bnVsbCl7bGV0IGk9e3Nlc3Npb25faWQ6dGhpcy5fZ2V0Q2hpbGRTZXNzaW9uSWRPck5vbmUocyksW3RdOmV9O3RoaXMucGFyZW50LnNvY2tldC5lbWl0KCJzZXNzaW9uOmlkZW50aXR5OnZlcmlmeSIsaSksdGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgic2Vzc2lvbjppZGVudGl0eTp2ZXJpZnkiLGkpfXNlbmRQbHVnaW5BY3Rpb24odCxlLHM9bnVsbCl7bGV0IGk9e3Nlc3Npb25faWQ6dGhpcy5fZ2V0Q2hpbGRTZXNzaW9uSWRPck5vbmUocyksdXJuOnQsZGF0YTplfTt0aGlzLnBhcmVudC5zb2NrZXQuZW1pdCgic2Vzc2lvbjpwbHVnaW46YWN0aW9uIixpKSx0aGlzLnBhcmVudC5ldmVudC5lbWl0KCJzZXNzaW9uOnBsdWdpbjphY3Rpb24iLGkpfWdldFJlcXVlc3RJbml0aWF0ZSh0PW51bGwsZT1udWxsKXtlPXRoaXMucGFyZW50LlNlc3Npb24uX2dldEVmZmVjdGl2ZVNlc3Npb25JZChlKTtsZXQgcz10aGlzLlFzW2VdfHx7fTtPYmplY3Qua2V5cyYmMD09PU9iamVjdC5rZXlzKHMpLmxlbmd0aCYmdGhpcy5wYXJlbnQuTWVzc2FnZS5fY291bnRNZXNzYWdlSGlzdG9yeURpZmYoKT4wJiZ0aGlzLldzKHtzZXNzaW9uX2lkOmV9KSwiZnVuY3Rpb24iPT10eXBlb2YgdCYmdCgpfWdldFN0YXRlKHQ9bnVsbCxlPW51bGwpe3Q9dGhpcy5fZ2V0RWZmZWN0aXZlU2Vzc2lvbklkKHQpLHRoaXMuWXModCx0aGlzLlFzW3RdLGUpfXNldFN0YXRlKHQsZT1udWxsLHM9bnVsbCl7KGU9dGhpcy5fZ2V0RWZmZWN0aXZlU2Vzc2lvbklkKGUpKWluIHRoaXMuUXN8fCh0aGlzLlFzW2VdPXt9KTtmb3IobGV0IGkgaW4gdCl0aGlzLlFzW2VdW2ldPXQ7dGhpcy5wYXJlbnQuU3RvcmFnZS5fdXBkYXRlKCJzdGF0ZSIsdCxlKSx0aGlzLlhzKHQsZSxzKX1jcmVhdGUoKXtsZXQgdD17d2Vic2l0ZV9pZDp0aGlzLnBhcmVudC53ZWJzaXRlSWQsd2Vic2l0ZV9kb21haW46dGhpcy5wYXJlbnQud2Vic2l0ZURvbWFpbix1c2VyYWdlbnQ6dGhpcy5wYXJlbnQuZGV2aWNlLnVzZXJhZ2VudHx8IiIsdGltZXpvbmU6dGhpcy5wYXJlbnQuZGV2aWNlLnRpbWV6b25lfHwwLGNhcGFiaWxpdGllczp0aGlzLnBhcmVudC5kZXZpY2UuY2FwYWJpbGl0aWVzfHxbXSxsb2NhbGVzOnRoaXMucGFyZW50LmRldmljZS5sb2NhbGVzfHxbXX07dGhpcy5wYXJlbnQudG9rZW5JZCYmKHQudG9rZW5faWQ9dGhpcy5wYXJlbnQudG9rZW5JZCksdGhpcy5wYXJlbnQuc29ja2V0LmVtaXQoInNlc3Npb246Y3JlYXRlIix0KX1jcmVhdGVDaGlsZCgpe2lmKCEwIT09dGhpcy5wYXJlbnQuc2Vzc2lvbkNoaWxkcmVuKXRocm93IG5ldyBFcnJvcigiU2Vzc2lvbiBjaGlsZHJlbiBub3QgZW5hYmxlZCIpO3tsZXQgdD17YXV0b2pvaW46e2V4cGlyZTp1cn19O3RoaXMucGFyZW50LnNvY2tldC5lbWl0KCJzZXNzaW9uOmNoaWxkOmNyZWF0ZSIsdCksdGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgic2Vzc2lvbjpjaGlsZDpjcmVhdGUiLHQpfX1nZXRFbWFpbCgpe3JldHVybiB0aGlzLlpzLmVtYWlsfXNldEVtYWlsKHQsZT0hMSxzPW51bGwpe2xldCBpPXt9O2lmKG51bGwhPT1zKXtsZXQgdD10eXBlb2Ygczsic3RyaW5nIj09PXQ/aS52ZXJpZnk9czoib2JqZWN0Ij09PXQmJihpPXMpfSEwPT09dGhpcy50aSgiZW1haWwiLHQsZSxpKSYmdGhpcy5fdHJpZ2dlckVtYWlsS2VlcEFsaXZlKCl9Z2V0UGhvbmUoKXtyZXR1cm4gdGhpcy5acy5waG9uZX1zZXRQaG9uZSh0LGU9ITEpe3RoaXMudGkoInBob25lIix0LGUpfWdldE5pY2tuYW1lKCl7cmV0dXJuIHRoaXMuWnMubmlja25hbWV9c2V0Tmlja25hbWUodCxlPSExKXt0aGlzLnRpKCJuaWNrbmFtZSIsdCxlKX1nZXRBdmF0YXIoKXtyZXR1cm4gdGhpcy5acy5hdmF0YXJ9c2V0QXZhdGFyKHQsZT0hMSl7dGhpcy50aSgiYXZhdGFyIix0LGUpfWdldENvbXBhbnkoKXtyZXR1cm4gdGhpcy5acy5jb21wYW55fXNldENvbXBhbnkodCxlPSExKXt0aGlzLnRpKCJjb21wYW55Iix0LGUpfWdldERhdGEodD1udWxsKXtyZXR1cm4gbnVsbD09PXQ/dGhpcy5acy5kYXRhOnRoaXMuWnMuZGF0YVt0XXx8bnVsbH1zZXREYXRhKHQpe2lmKHRoaXMuc2kuZGF0YT10aGlzLnNpLmRhdGF8fHt9LHQpZm9yKGxldCBlIGluIHQpdGhpcy5zaS5kYXRhW2VdPXRbZV07dGhpcy5paSgiZGF0YSIsKCk9Pnt0aGlzLmVpKHRoaXMuWnMuZGF0YXx8e30sdGhpcy5zaS5kYXRhKSxkZWxldGUgdGhpcy5zaS5kYXRhfSl9c2V0U2VnbWVudHModCxlPSExKXtpZighMD09PWUpdGhpcy5zaS5zZWdtZW50cz10fHxbXTtlbHNlIGlmKHRoaXMuc2kuc2VnbWVudHM9dGhpcy5zaS5zZWdtZW50c3x8W10sdClmb3IobGV0IHM9MDtzPHQubGVuZ3RoO3MrKyl0aGlzLnNpLnNlZ21lbnRzLnB1c2godFtzXSk7dGhpcy5paSgic2VnbWVudHMiLCgpPT57dGhpcy5oaSh0aGlzLlpzLnNlZ21lbnRzfHxbXSx0aGlzLnNpLnNlZ21lbnRzLGUpLGRlbGV0ZSB0aGlzLnNpLnNlZ21lbnRzfSxlfHwhMSl9bWFya0FjdGl2ZSgpe2xldCB0PShuZXcgRGF0ZSkuZ2V0VGltZSgpO3QtTWF0aC5taW4odGhpcy5uaXx8dCx0aGlzLmd0fHx0KT49OWU0JiZ0aGlzLml0KCEwKSx0aGlzLm5pPXR9cmVzZXQodD0hMCxlPW51bGwscz1udWxsKXtsZXQgaT1udWxsO3RyeXtmb3IobGV0IHQgaW4gdGhpcy5wYXJlbnQpe2xldCBlPXRoaXMucGFyZW50W3RdO2UhPT10aGlzJiZlJiYib2JqZWN0Ij09dHlwZW9mIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLnJlc2V0JiZlLnJlc2V0KCl9dGhpcy5oKCksITA9PT10JiZ0aGlzLnJpKCl9Y2F0Y2godCl7aT10fWk/ImZ1bmN0aW9uIj09dHlwZW9mIHMmJnMoaSk6ImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUoKX1fc2VuZERldmljZSgpe2xldCB0PXRoaXMub2koKTtudWxsIT09dCYmdGhpcy5wYXJlbnQuc29ja2V0LmVtaXQoInNlc3Npb246ZGV2aWNlIix0KX1fZ2V0UGFyZW50U2Vzc2lvbklkKCl7cmV0dXJuIHRoaXMubGl9X2dldENoaWxkU2Vzc2lvbklkT3JOb25lKHQ9bnVsbCl7cmV0dXJuIG51bGwhPT10P3QhPT10aGlzLl9nZXRQYXJlbnRTZXNzaW9uSWQoKT90OnZvaWQgMDp0aGlzLnBhcmVudC5Db25maWcuX3Nlc3Npb25DaGlsZElkfHx2b2lkIDB9X2dldEVmZmVjdGl2ZVNlc3Npb25JZCh0PW51bGwpe3JldHVybiB0fHx0aGlzLl9nZXRDaGlsZFNlc3Npb25JZE9yTm9uZSgpfHx0aGlzLl9nZXRQYXJlbnRTZXNzaW9uSWQoKX1fdHJpZ2dlckVtYWlsS2VlcEFsaXZlKCl7dGhpcy5acy5lbWFpbCYmKHRoaXMuYWkmJnRoaXMucGFyZW50LlNjaGVkdWxlLmNsZWFyVGltZW91dCh0aGlzLmFpKSx0aGlzLmFpPXRoaXMucGFyZW50LlNjaGVkdWxlLnNldFRpbWVvdXQoKCk9Pnt0aGlzLmFpPW51bGwsdGhpcy5pdCghMCl9LDVlMykpfWgoKXtpZigib2JqZWN0Ij09dHlwZW9mIHRoaXMuY2kpZm9yKGxldCB0IGluIHRoaXMuY2kpdGhpcy5wYXJlbnQuU2NoZWR1bGUuY2xlYXJUaW1lb3V0KHRoaXMuY2lbdF0pO3RoaXMubGk9bnVsbCx0aGlzLnVpPVtdLHRoaXMuZGk9bnVsbCx0aGlzLmZpPSExLHRoaXMubmk9MCx0aGlzLmd0PShuZXcgRGF0ZSkuZ2V0VGltZSgpLHRoaXMucGk9bnVsbCx0aGlzLmdpPW51bGwsdGhpcy5faT1udWxsLHRoaXMuYWk9bnVsbCx0aGlzLlpzPXt9LHRoaXMud2k9e30sdGhpcy5jaT17fSx0aGlzLnNpPXt9LHRoaXMuUXM9e319Xygpe3RoaXMucGFyZW50LnNvY2tldC5vbigic2Vzc2lvbjpjcmVhdGVkIix6aSh0aGlzLm1pLHRoaXMpKSx0aGlzLnBhcmVudC5zb2NrZXQub24oInNlc3Npb246am9pbmVkIix6aSh0aGlzLnlpLHRoaXMpKSx0aGlzLnBhcmVudC5zb2NrZXQub24oInNlc3Npb246c3RhdGUiLHppKHRoaXMuYmksdGhpcykpLHRoaXMucGFyZW50LnNvY2tldC5vbigic2Vzc2lvbjplcnJvciIsemkodGhpcy5raSx0aGlzKSksdGhpcy5wYXJlbnQuc29ja2V0Lm9uKCJzZXNzaW9uOnJlcXVlc3Q6aW5pdGlhdGUiLHppKHRoaXMuV3MsdGhpcykpLHRoaXMucGFyZW50LnNvY2tldC5vbigic2Vzc2lvbjpyZXF1ZXN0OnB1cmdlIix6aSh0aGlzLlNpLHRoaXMpKSx0aGlzLnBhcmVudC5zb2NrZXQub24oInNlc3Npb246cmVxdWVzdDpmZWVkYmFjayIsemkodGhpcy5BaSx0aGlzKSksdGhpcy5wYXJlbnQuc29ja2V0Lm9uKCJzZXNzaW9uOnJlcXVlc3Q6aWRlbnRpdHkiLHppKHRoaXMuTWksdGhpcykpLHRoaXMucGFyZW50LnNvY2tldC5vbigic2Vzc2lvbjpyZXF1ZXN0OnRvb2wiLHppKHRoaXMuRWksdGhpcykpLHRoaXMucGFyZW50LnNvY2tldC5vbigic2Vzc2lvbjpmZWVkYmFjazpyYXRlZCIsemkodGhpcy5DaSx0aGlzKSksdGhpcy5wYXJlbnQuc29ja2V0Lm9uKCJzZXNzaW9uOmlkZW50aXR5OnZlcmlmaWVkIix6aSh0aGlzLkRpLHRoaXMpKSx0aGlzLnBhcmVudC5zb2NrZXQub24oInNlc3Npb246Y2hpbGQ6Y3JlYXRlZCIsemkodGhpcy5SaSx0aGlzKSksdGhpcy5wYXJlbnQuc29ja2V0Lm9uKCJjb25uZWN0IiwoKT0+e3RoaXMuZmk/dGhpcy5qaSghMCk6dGhpcy4kaSgpfSl9bWkodCl7aWYodC5lcnJvcil0aGlzLnBhcmVudC5ldmVudC5lbWl0KCJzZXNzaW9uOmNyZWF0ZWQiLHtlcnJvcjp0LmVycm9yfSk7ZWxzZXtsZXQgZT0hIXRoaXMucGFyZW50LnRva2VuSWQ7dGhpcy5saT10LnNlc3Npb25faWQsdGhpcy5xaSgpLHRoaXMuamkoZSksdGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgic2Vzc2lvbjpjcmVhdGVkIix7c2Vzc2lvbl9pZDp0aGlzLmxpfSl9fXlpKHQpe3QuZXJyb3I/dGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgic2Vzc2lvbjpqb2luZWQiLHtlcnJvcjp0LmVycm9yfSk6KHRoaXMuZml8fCh0aGlzLmZpPSEwKSx0aGlzLnBhcmVudC5XZWJzaXRlLl9zZXRVc2Vyc0F2YWlsYWJsZSh0LnVzZXJzX2F2YWlsYWJsZSksdGhpcy5PaSh0LnNlc3Npb25faWQsdC5zdG9yYWdlKSx0aGlzLklpKHQuc2Vzc2lvbl9pZCx0LnN5bmMpLHRoaXMueGkodCksdGhpcy5UaSh0LmNoaWxkcmVufHxbXSksdGhpcy5wYXJlbnQuQnJvd3NpbmcuX3Jlc3RvcmVCcm93c2luZ1N0YXRlKCksdGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgic2Vzc2lvbjpqb2luZWQiLHQpLHRoaXMuTmkodC5sYXN0X2FjdGl2ZSkpfWJpKHQpe2xldCBlPXQuc2Vzc2lvbl9pZDtkZWxldGUgdC5zZXNzaW9uX2lkLHRoaXMuWXMoZSx0KX1raSh0KXsiZW1haWw6aW52YWxpZF9mb3JtYXQiPT09dC50eXBlJiYoZGVsZXRlIHRoaXMuWnMuZW1haWwsZGVsZXRlIHRoaXMud2kuZW1haWwpLHRoaXMucGFyZW50LmV2ZW50LmVtaXQoInNlc3Npb246ZXJyb3IiLHQpfVdzKHQpe3RoaXMucGFyZW50LmV2ZW50LmVtaXQoInNlc3Npb246cmVxdWVzdDppbml0aWF0ZSIsdCl9U2kodCl7dGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgic2Vzc2lvbjpyZXF1ZXN0OnB1cmdlIix0KX1BaSh0KXt0aGlzLnBhcmVudC5ldmVudC5lbWl0KCJzZXNzaW9uOnJlcXVlc3Q6ZmVlZGJhY2siLHQpfU1pKHQpe3RoaXMucGFyZW50LmV2ZW50LmVtaXQoInNlc3Npb246cmVxdWVzdDppZGVudGl0eSIsdCl9RWkodCl7dGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgic2Vzc2lvbjpyZXF1ZXN0OnRvb2wiLHQpfUNpKHQpe3RoaXMucGFyZW50LmV2ZW50LmVtaXQoInNlc3Npb246ZmVlZGJhY2s6cmF0ZWQiLHQpfURpKHQpe3RoaXMucGFyZW50LmV2ZW50LmVtaXQoInNlc3Npb246aWRlbnRpdHk6dmVyaWZpZWQiLHQpfVJpKHQpeyEwPT09dGhpcy5wYXJlbnQuc2Vzc2lvbkNoaWxkcmVuJiYodC5zZXNzaW9uX2lkJiYtMT09PXRoaXMudWkuaW5kZXhPZih0LnNlc3Npb25faWQpJiZ0aGlzLnVpLnB1c2godC5zZXNzaW9uX2lkKSx0aGlzLnBhcmVudC5ldmVudC5lbWl0KCJzZXNzaW9uOmNoaWxkOmNyZWF0ZWQiLHQpKX1PaSh0LGU9e30pe3RoaXMuVWkodCxlLnN0YXRlKSx0aGlzLnBhcmVudC5NZXNzYWdlLl9zdG9yYWdlU2Vzc2lvbk1lc3NhZ2VIYW5kbGUodCxlLm1lc3NhZ2UpfUlpKHQsZT17fSl7dGhpcy5wYXJlbnQuTWVzc2FnZS5fc3luY01lc3NhZ2VDb21wb3NlRGlmZih0LGUuY29tcG9zZSksdGhpcy5wYXJlbnQuTWVzc2FnZS5fc3luY01lc3NhZ2VIaXN0b3J5RGlmZih0LGUubWVzc2FnZXMpfXhpKHQpe2ZvcihsZXQgZT0wO2U8bHIubGVuZ3RoO2UrKyl7bGV0IHM9bHJbZV07aWYodGhpcy5ac1tzXSYmdGhpcy5ac1tzXSE9PXRbc10pe2xldCB0PWBzZXQke3MuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrcy5zbGljZSgxKX1gOyJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzW3RdJiZ0aGlzW3RdKHRoaXMuWnNbc10sITAsdGhpcy53aVtzXSl9ZWxzZSB0aGlzLlpzW3NdPXRbc118fG51bGx9dGhpcy5oaSh0LnNlZ21lbnRzfHxbXSx0aGlzLlpzLnNlZ21lbnRzKSx0aGlzLmVpKHQuZGF0YXx8e30sdGhpcy5acy5kYXRhKX1Zcyh0LGU9e30scz1udWxsKXt0aGlzLlFzW3RdPWUsdGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgic2Vzc2lvbjpzdGF0ZSIse3Nlc3Npb25faWQ6dCwuLi5lfSksImZ1bmN0aW9uIj09dHlwZW9mIHMmJnMoKX1QaSgpe2xldCB0PXRoaXMuQmkoKSxlPW51bGwscz0obG9jYXRpb24uc2VhcmNofHwiIikubWF0Y2goaHIpLGk9KGRvY3VtZW50LnJlZmVycmVyfHwiIikubWF0Y2goYXIpO3RoaXMucGFyZW50LnNlc3Npb25JZCYmKGU9dGhpcy5wYXJlbnQuc2Vzc2lvbklkKSxzJiZzWzJdJiZzWzJdIT09dC5jdXJyZW50JiYoZT1zWzJdKSxpJiZpWzFdPT09dGhpcy5wYXJlbnQudXJsR28mJmlbM10hPT10LmN1cnJlbnQmJihlPWlbM118fG51bGwpO2xldCBuPWV8fHQuY3VycmVudCxyPW51bGw7cmV0dXJuIHQucHJldmlvdXMmJnQuY3VycmVudCE9PXQucHJldmlvdXMmJnQuY3VycmVudD09PW4mJihyPXQucHJldmlvdXMpLHtzZXNzaW9uX2lkOm4sbWVyZ2U6cn19JGkoKXtsZXQgdD10aGlzLlBpKCk7dGhpcy5MaSh0LnNlc3Npb25faWQsdC5tZXJnZSl9amkodD0hMSl7bGV0IGU9e3dlYnNpdGVfaWQ6dGhpcy5wYXJlbnQud2Vic2l0ZUlkLHNlc3Npb25faWQ6dGhpcy5saSxleHBpcmU6dXIsc3RvcmFnZTohMCxzeW5jOnQsdXNlcmFnZW50OnRoaXMucGFyZW50LmRldmljZS51c2VyYWdlbnR8fCIiLHRpbWV6b25lOnRoaXMucGFyZW50LmRldmljZS50aW1lem9uZXx8MCxjYXBhYmlsaXRpZXM6dGhpcy5wYXJlbnQuZGV2aWNlLmNhcGFiaWxpdGllc3x8W10sbG9jYWxlczp0aGlzLnBhcmVudC5kZXZpY2UubG9jYWxlc3x8W119O2lmKCEwPT09dGhpcy5wYXJlbnQuc2Vzc2lvbkNoaWxkcmVuJiYoZS5jaGlsZHJlbj0hMCksIXRoaXMuZmkpe2xldCB0PXRoaXMub2koKTtudWxsIT09dCYmKGUuZGV2aWNlPXQpfW51bGwhPT10aGlzLmRpJiYoZS5tZXJnZT17c2Vzc2lvbl9pZDp0aGlzLmRpfSksdGhpcy5wYXJlbnQuc29ja2V0LmVtaXQoInNlc3Npb246am9pbiIsZSl9cWkoKXtsZXQgdD17ZG9tYWluOnRoaXMuSGkoKSxleHBpcmVzOnRoaXMuRmkoKX0sZT10aGlzLlZpKCk7dC5zYW1lU2l0ZT1lLnBvbGljeSwhMD09PWUuc2VjdXJlJiYodC5zZWN1cmU9ITApLHRoaXMucGFyZW50LlJlZ2lzdGVyLl9zZXQodGhpcy5TdCgpLHRoaXMubGksdCksdGhpcy5wYXJlbnQudG9rZW5JZCYmdGhpcy5wYXJlbnQuUmVnaXN0ZXIuX3NldCh0aGlzLlN0KHRoaXMucGFyZW50LnRva2VuSWQpLHRoaXMubGksdCksdGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgic2Vzc2lvbjpzYXZlZCIsdGhpcy5saSl9cmkoKXtsZXQgdD17ZG9tYWluOnRoaXMuSGkoKX07dGhpcy5wYXJlbnQuUmVnaXN0ZXIuX2V4cGlyZSh0aGlzLlN0KCksdCksdGhpcy5wYXJlbnQudG9rZW5JZCYmdGhpcy5wYXJlbnQuUmVnaXN0ZXIuX2V4cGlyZSh0aGlzLlN0KHRoaXMucGFyZW50LnRva2VuSWQpLHQpfUJpKCl7bGV0IHQ9e3ByZXZpb3VzOm51bGwsY3VycmVudDpudWxsfTtyZXR1cm4gdGhpcy5wYXJlbnQudG9rZW5JZD8oITA9PT10aGlzLnBhcmVudC5ydW50aW1lQ29uZmlndXJhdGlvbj8uc2Vzc2lvbl9tZXJnZSYmKHQucHJldmlvdXM9dGhpcy5wYXJlbnQuUmVnaXN0ZXIuX2dldCh0aGlzLlN0KCkpfHxudWxsKSx0LmN1cnJlbnQ9dGhpcy5wYXJlbnQuUmVnaXN0ZXIuX2dldCh0aGlzLlN0KHRoaXMucGFyZW50LnRva2VuSWQpKXx8bnVsbCk6dC5jdXJyZW50PXRoaXMucGFyZW50LlJlZ2lzdGVyLl9nZXQodGhpcy5TdCgpKXx8bnVsbCx0fUxpKHQsZT1udWxsKXtudWxsIT09ZSYmKHRoaXMuZGk9ZSksdD8odGhpcy5saT10LHRoaXMucWkoKSx0aGlzLmppKCEwKSk6dGhpcy5jcmVhdGUoKX1UaSh0KXt0aGlzLnVpPVtdO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtsZXQgcz10W2VdO3RoaXMudWkucHVzaChzLnNlc3Npb25faWQpLHRoaXMuT2kocy5zZXNzaW9uX2lkLHMuc3RvcmFnZSksdGhpcy5JaShzLnNlc3Npb25faWQscy5zeW5jKX19VWkodCxlKXt0aGlzLlFzW3RdPWV8fHt9fWl0KHQ9ITEpe3RoaXMuX2kmJih0aGlzLnBhcmVudC5TY2hlZHVsZS5jbGVhclRpbWVvdXQodGhpcy5faSksdGhpcy5faT1udWxsKSwhMD09PXQ/KHRoaXMuemkoKSx0aGlzLml0KCkpOnRoaXMuX2k9dGhpcy5wYXJlbnQuU2NoZWR1bGUuc2V0VGltZW91dCgoKT0+e3RoaXMuX2k9bnVsbCx0aGlzLnppKCksdGhpcy5pdCgpfSwyNGU0KX1OaSh0PTApe3RoaXMubmk9dHx8KG5ldyBEYXRlKS5nZXRUaW1lKCksdGhpcy5pdCgpfXppKCl7ITA9PT10aGlzLnBhcmVudC5zb2NrZXQuY29ubmVjdGVkJiYodGhpcy5ndD0obmV3IERhdGUpLmdldFRpbWUoKSx0aGlzLnBhcmVudC5zb2NrZXQuZW1pdCgic2Vzc2lvbjpoZWFydGJlYXQiLHtsYXN0X2FjdGl2ZTp0aGlzLm5pfHwwLGF2YWlsYWJpbGl0eTp7dHlwZToib25saW5lIix0aW1lOntmb3I6dXJ9fX0pKX1vaSgpe2xldCB0PWRvY3VtZW50LmxvY2F0aW9uLmhyZWZ8fCIiO2lmKHRoaXMucGkhPT10KXt0aGlzLnBpPXQ7bGV0IGU9KG5ldyBEYXRlKS5nZXRUaW1lKCk7aWYoZS0odGhpcy5naXx8MCk+PTNlMyl7dGhpcy5naT1lO2xldCBzPWRvY3VtZW50LnRpdGxlfHwiIjtpZihzLmxlbmd0aD44MCYmKHM9cy5zdWJzdHJpbmcoMCw3Nykscys9Ii4uLiIpLCEwPT09Y3IudGVzdCh0KSl7dD10LnJlcGxhY2UoY3IsIiQxJDMiKTtsZXQgZT10W3QubGVuZ3RoLTFdOyI/IiE9PWUmJiImIiE9PWV8fCh0PXQuc3Vic3RyKDAsdC5sZW5ndGgtMSkpfWlmKHQubGVuZ3RoPjI0MCYmKHQ9dC5zcGxpdCgiPyIpWzBdfHwiIiksdCYmcyYmdC5sZW5ndGg8PTI0MCl7bGV0IGU9e3BhZ2VfdXJsOnQscGFnZV90aXRsZTpzfSxpPShkb2N1bWVudC5yZWZlcnJlcnx8IiIpLnNwbGl0KCI/IilbMF18fCIiO3JldHVybiBpPy5sZW5ndGg8PTI0MCYmaSYmKGUucGFnZV9yZWZlcnJlcj1pKSxlfX19cmV0dXJuIG51bGx9U3QodD1udWxsKXtsZXQgZT1bdGhpcy5wYXJlbnQud2Vic2l0ZUlkXTtyZXR1cm4gdCYmZS5wdXNoKHQpLHRoaXMucGFyZW50LlN0b3JhZ2UuX2dlbmVyYXRlU3RvcmVLZXkoInNlc3Npb24iLGUpfUZpKCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0aGlzLnBhcmVudC5jb29raWVFeHBpcmUmJnRoaXMucGFyZW50LmNvb2tpZUV4cGlyZT4wP3RoaXMucGFyZW50LmNvb2tpZUV4cGlyZToxNTc2OGUzfUhpKCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0aGlzLnBhcmVudC5jb29raWVEb21haW4mJnRoaXMucGFyZW50LmNvb2tpZURvbWFpbj90aGlzLnBhcmVudC5jb29raWVEb21haW46dGhpcy5KaSgpfVZpKCl7cmV0dXJuITA9PT10aGlzLnBhcmVudC5ydW50aW1lQ29uZmlndXJhdGlvbi5jcm9zc19vcmlnaW5fY29va2llcyYmImh0dHBzOiI9PT1kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbD97cG9saWN5OiJub25lIixzZWN1cmU6ITB9Ontwb2xpY3k6ImxheCJ9fUppKCl7bGV0IHQ9ZG9jdW1lbnQuZG9tYWluLGU9dCxzPSIiLGk9dGhpcy5WaSgpLG49YHNhbWVzaXRlPSR7aS5wb2xpY3l9O2ArKCEwPT09aS5zZWN1cmU/InNlY3VyZTsiOiIiKTt0cnl7bGV0IHQ9MCxzPWUuc3BsaXQoIi4iKSxpPXRoaXMucGFyZW50LlN0b3JhZ2UuX2dlbmVyYXRlU3RvcmVLZXkoImRvbWFpbi1kZXRlY3QiLFtgJHsobmV3IERhdGUpLmdldFRpbWUoKX1gXSk7Zm9yKDt0PHMubGVuZ3RoLTEmJi0xPT09ZG9jdW1lbnQuY29va2llLmluZGV4T2YoYCR7aX09JHtpfWApOyllPXMuc2xpY2UoLTEtKyt0KS5qb2luKCIuIiksZG9jdW1lbnQuY29va2llPWAke2l9PSR7aX07ZG9tYWluPSR7ZX07JHtufWA7ZG9jdW1lbnQuY29va2llPWAke2l9PTtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDEgR01UO2RvbWFpbj0ke2V9OyR7bn1gfWNhdGNoe31maW5hbGx5e3M9ZXx8dH1yZXR1cm4gc310aSh0LGUscz0hMSxpPXt9KXtsZXQgbj0hMTtpZighMD09PXM/bj0hMDplIGluc3RhbmNlb2YgT2JqZWN0PyExPT09dGhpcy5LaSh0aGlzLlpzW3RdLGUpJiYobj0hMCk6dGhpcy5ac1t0XSE9PWUmJihuPSEwKSwhMD09PW4mJih0aGlzLlpzW3RdPWUsdGhpcy53aVt0XT1pLCEwPT09dGhpcy5maSkpe2xldCBzPXt9O3NbdF09ZTtmb3IobGV0IHQgaW4gaSlzW3RdPWlbdF07cmV0dXJuIHRoaXMucGFyZW50LnNvY2tldC5lbWl0KGBzZXNzaW9uOnNldF8ke3R9YCxzKSwhMH1yZXR1cm4hMX1Ycyh0LGU9bnVsbCxzPW51bGwpe3RoaXMucGFyZW50LnNvY2tldC5lbWl0KCJzZXNzaW9uOnN0YXRlIix7c2Vzc2lvbl9pZDp0aGlzLl9nZXRDaGlsZFNlc3Npb25JZE9yTm9uZShlKSwuLi50fSksImZ1bmN0aW9uIj09dHlwZW9mIHMmJnMoKX1oaSh0LGU9W10scz0hMSl7bGV0IGksbj1bXTtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl7bGV0IHM9KGVbcl18fCIiKS50cmltKCkudG9Mb3dlckNhc2UoKTtzJiYoITA9PT1bIiciLCciJ10uaW5jbHVkZXMoc1swXSkmJnNbcy5sZW5ndGgtMV09PT1zWzBdJiYocz1zLnNsaWNlKDEscy5sZW5ndGgtMSkpLHMmJi0xPT09dC5pbmRleE9mKHMpJiZuLnB1c2gocykpfWlmKCEwPT09cz9uLmxlbmd0aD4wfHx0Lmxlbmd0aCE9PWUubGVuZ3RoPyhpPVtdLmNvbmNhdChlKSx0aGlzLlpzLnNlZ21lbnRzPWkpOmk9W106KGk9bix0aGlzLlpzLnNlZ21lbnRzPXQuY29uY2F0KGkpKSxpLmxlbmd0aD4wJiYhMD09PXRoaXMuZmkpe2xldCB0PXtzZWdtZW50czppfTshMD09PXMmJih0Lm92ZXJ3cml0ZT0hMCksdGhpcy5wYXJlbnQuc29ja2V0LmVtaXQoInNlc3Npb246c2V0X3NlZ21lbnRzIix0KX19ZWkodCxlPXt9KXtsZXQgcz0hMSxpPXt9O2ZvcihsZXQgbiBpbiBlKXRbbl0hPT1lW25dJiYocz0hMCxpW25dPWVbbl0pO3RoaXMuWnMuZGF0YT10O2ZvcihsZXQgbiBpbiBpKXRoaXMuWnMuZGF0YVtuXT1pW25dOyEwPT09cyYmITA9PT10aGlzLmZpJiZ0aGlzLnBhcmVudC5zb2NrZXQuZW1pdCgic2Vzc2lvbjpzZXRfZGF0YSIse2RhdGE6aX0pfUtpKHQsZSl7aWYodCBpbnN0YW5jZW9mIE9iamVjdCYmZSBpbnN0YW5jZW9mIE9iamVjdCl7bGV0IHM9e307Zm9yKGxldCBlIGluIHQpc1tlXT0hMDtmb3IobGV0IHQgaW4gZSlzW3RdPSEwO2xldCBpPSEwO2ZvcihsZXQgbiBpbiBzKWlmKCExPT09dGhpcy5LaSh0W25dLGVbbl0pKXtpPSExO2JyZWFrfXJldHVybiBpfXJldHVybiB0PT09ZSYmITB9aWkodCxlLHM9ITEpeyEwPT09cz8odm9pZCAwIT09dGhpcy5jaVt0XSYmKHRoaXMucGFyZW50LlNjaGVkdWxlLmNsZWFyVGltZW91dCh0aGlzLmNpW3RdKSxkZWxldGUgdGhpcy5jaVt0XSksZSgpKTp2b2lkIDA9PT10aGlzLmNpW3RdJiYodGhpcy5jaVt0XT10aGlzLnBhcmVudC5TY2hlZHVsZS5zZXRUaW1lb3V0KCgpPT57ZGVsZXRlIHRoaXMuY2lbdF0sZSgpfSw1MDApKX19LERyPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMucGFyZW50PXQsdGhpcy5oKCksdGhpcy5fKCl9Z2V0VXNlcnNBdmFpbGFibGUoKXt0aGlzLkdpKCExKX1yZXNldCgpe3RoaXMuaCgpfV9zZXRVc2Vyc0F2YWlsYWJsZSh0KXt0aGlzLlFpPXR9aCgpe3RoaXMuUWk9ITF9Xygpe3RoaXMucGFyZW50LnNvY2tldC5vbigid2Vic2l0ZTp1c2VyczphdmFpbGFibGUiLHppKHRoaXMuV2ksdGhpcykpfVdpKHQpeyJib29sZWFuIj09dHlwZW9mIHQmJih0aGlzLl9zZXRVc2Vyc0F2YWlsYWJsZSh0KSx0aGlzLkdpKCEwKSl9R2kodD0hMSl7dGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgid2Vic2l0ZTp1c2VyczphdmFpbGFibGUiLHthdmFpbGFibGU6dGhpcy5RaSxjaGFuZ2VkOnR9KX19LGZyPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMucGFyZW50PXQsdGhpcy5fKCl9Z2V0VXJsVXBsb2FkKHQsZSl7bGV0IHM9e3Nlc3Npb25faWQ6dGhpcy5wYXJlbnQuU2Vzc2lvbi5fZ2V0Q2hpbGRTZXNzaW9uSWRPck5vbmUoKSxpZDpgJHsobmV3IERhdGUpLmdldFRpbWUoKX1gLGZyb206InZpc2l0b3IiLGZpbGU6e25hbWU6dCx0eXBlOmV9fTt0aGlzLnBhcmVudC5zb2NrZXQuZW1pdCgiYnVja2V0OnVybDp1cGxvYWQ6Z2VuZXJhdGUiLHMpLHRoaXMucGFyZW50LmV2ZW50LmVtaXQoImJ1Y2tldDp1cmw6dXBsb2FkOmdlbmVyYXRlIixzKX1fKCl7dGhpcy5wYXJlbnQuc29ja2V0Lm9uKCJidWNrZXQ6dXJsOnVwbG9hZDpnZW5lcmF0ZWQiLHppKHRoaXMuWWksdGhpcykpfVlpKHQpe3RoaXMucGFyZW50LmV2ZW50LmVtaXQoImJ1Y2tldDp1cmw6dXBsb2FkOmdlbmVyYXRlZCIsdCl9fSxwcj1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnBhcmVudD10LHRoaXMuXygpfWdldEFuaW1hdGlvbkxpc3QodD1udWxsLGU9MSxzPS0xKXtsZXQgaT17aWQ6KG5ldyBEYXRlKS5nZXRUaW1lKCksZnJvbToidmlzaXRvciIsbGlzdDp7cGFnZTplfX07LTEhPT1zJiYoaS5saXN0LmxpbWl0PXMpLHQmJihpLmxpc3QucXVlcnk9dCksdGhpcy5wYXJlbnQuc29ja2V0LmVtaXQoIm1lZGlhOmFuaW1hdGlvbjpsaXN0IixpKSx0aGlzLnBhcmVudC5ldmVudC5lbWl0KCJtZWRpYTphbmltYXRpb246bGlzdCIsaSl9Xygpe3RoaXMucGFyZW50LnNvY2tldC5vbigibWVkaWE6YW5pbWF0aW9uOmxpc3RlZCIsemkodGhpcy5YaSx0aGlzKSl9WGkodCl7dGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgibWVkaWE6YW5pbWF0aW9uOmxpc3RlZCIsdCl9fSxfcj1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnBhcmVudD10LHRoaXMuaCgpLHRoaXMuXygpfWdldE92ZXJsYXlBbnN3ZXJTZWFyY2godCxlPW51bGwpe2lmKHQpe2xldCBzPXRoaXMuWmlbZXx8ImRlZmF1bHQiXT8uW3RoaXMudGUodCldfHxudWxsLGk9Im92ZXJsYXk6YW5zd2VyOnNlYXJjaCIsbj17aWQ6KG5ldyBEYXRlKS5nZXRUaW1lKCksZnJvbToidmlzaXRvciIsc2VhcmNoOntxdWVyeTp0LGxvY2FsZTplfX07dGhpcy5wYXJlbnQuZXZlbnQuZW1pdChpLG4pLHM/LnByb2Nlc3NlZCYmcz8uc291cmNlcz90aGlzLnBhcmVudC5TY2hlZHVsZS5zZXRUaW1lb3V0KCgpPT57dGhpcy5zZSh7aWQ6bi5pZCxyZXN1bHQ6cy5wcm9jZXNzZWQsc2VhcmNoOntxdWVyeTp0fX0pLHRoaXMuaWUoe2lkOm4uaWQscmVzdWx0OnMuc291cmNlcyxzZWFyY2g6e3F1ZXJ5OnR9fSl9LDEwMCk6dGhpcy5wYXJlbnQuc29ja2V0LmVtaXQoaSxuKX19cmVzZXQoKXt0aGlzLmgoKX1oKCl7dGhpcy5aaT17fX1fKCl7dGhpcy5wYXJlbnQuc29ja2V0Lm9uKCJvdmVybGF5OmFuc3dlcjpzZWFyY2g6cGFydGlhbCIsemkodGhpcy5lZSx0aGlzKSksdGhpcy5wYXJlbnQuc29ja2V0Lm9uKCJvdmVybGF5OmFuc3dlcjpzZWFyY2g6cHJvY2Vzc2VkIix6aSh0aGlzLnNlLHRoaXMpKSx0aGlzLnBhcmVudC5zb2NrZXQub24oIm92ZXJsYXk6YW5zd2VyOnNlYXJjaDpzb3VyY2VzIix6aSh0aGlzLmllLHRoaXMpKX10ZSh0KXtyZXR1cm4gdC50cmltKCkudG9Mb3dlckNhc2UoKX1lZSh0KXt0aGlzLnBhcmVudC5ldmVudC5lbWl0KCJvdmVybGF5OmFuc3dlcjpzZWFyY2g6cGFydGlhbCIsdCl9c2UodCl7aWYodC5yZXN1bHQpe2xldCBlPW51bGwhPT10LnJlc3VsdC50ZXh0JiYhMDt0aGlzLmhlKCJwcm9jZXNzZWQiLCJyZXN1bHQiLHQsZSl9fWllKHQpe3QucmVzdWx0JiZ0aGlzLmhlKCJzb3VyY2VzIiwicmVzdWx0Iix0KX1oZSh0LGUscyxpPSEwKXtpZighMD09PWkpe2xldCBpPXRoaXMuWmk7aWYocy5zZWFyY2gmJiJzdHJpbmciPT10eXBlb2Ygcy5zZWFyY2gucXVlcnkpe2xldCBuPXMuc2VhcmNoLmxvY2FsZXx8ImRlZmF1bHQiLHI9dGhpcy50ZShzLnNlYXJjaC5xdWVyeSk7biBpbiBpfHwoaVtuXT17fSksciBpbiBpW25dfHwoaVtuXVtyXT17fSksaVtuXVtyXVt0XT1zW2VdfX10aGlzLnBhcmVudC5ldmVudC5lbWl0KGBvdmVybGF5OmFuc3dlcjpzZWFyY2g6JHt0fWAscyl9fSxtcj1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnBhcmVudD10LHRoaXMuaCgpLHRoaXMuXygpfWdldEFydGljbGVTZWFyY2godCxlPW51bGwpe3JldHVybiB0aGlzLm5lKCJhcnRpY2xlIiwic2VhcmNoIix0aGlzLnJlLHppKHRoaXMub2UsdGhpcyksZSwicXVlcnkiLHQpfWdldEFydGljbGVMaXN0KHQ9bnVsbCxlPW51bGwscz1udWxsKXtsZXQgaT17fTtudWxsIT09ZSYmKGkuY2F0ZWdvcnlfaWQ9ZSxudWxsIT09cyYmKGkuc2VjdGlvbl9pZD1zKSk7bGV0IG49dGhpcy5sZShlLHMpO3JldHVybiB0aGlzLm5lKCJhcnRpY2xlIiwibGlzdCIsdGhpcy5hZSx6aSh0aGlzLmNlLHRoaXMpLHQsbnVsbCxuLGkpfWdldEFydGljbGVTdWdnZXN0KHQsZT1udWxsKXtyZXR1cm4gdGhpcy5uZSgiYXJ0aWNsZSIsInN1Z2dlc3QiLHRoaXMudWUsemkodGhpcy5kZSx0aGlzKSxlLCJwYXJ0Iix0KX1nZXRDYXRlZ29yeUxpc3QodD1udWxsKXtyZXR1cm4gdGhpcy5uZSgiY2F0ZWdvcnkiLCJsaXN0Iix0aGlzLmZlLHppKHRoaXMucGUsdGhpcyksdCl9cmVwb3J0QXJ0aWNsZVNlYXJjaCh0LGU9IiIpe2lmKGU9KGV8fCIiKS50cmltKCkpe2xldCBzPXtyZXBvcnQ6e2xvY2FsZTp0LHF1ZXJ5OmV9fTt0aGlzLnBhcmVudC5zb2NrZXQuZW1pdCgiaGVscGRlc2s6YXJ0aWNsZTpyZXBvcnQiLHMpLHRoaXMucGFyZW50LmV2ZW50LmVtaXQoImhlbHBkZXNrOmFydGljbGU6cmVwb3J0IixzKX19cmVzZXQoKXt0aGlzLmgoKX1oKCl7dGhpcy5yZT17fSx0aGlzLmFlPXt9LHRoaXMudWU9e30sdGhpcy5mZT17fX1fKCl7dGhpcy5wYXJlbnQuc29ja2V0Lm9uKCJoZWxwZGVzazphcnRpY2xlOnNlYXJjaGVkIix6aSh0aGlzLm9lLHRoaXMpKSx0aGlzLnBhcmVudC5zb2NrZXQub24oImhlbHBkZXNrOmFydGljbGU6bGlzdGVkIix6aSh0aGlzLmNlLHRoaXMpKSx0aGlzLnBhcmVudC5zb2NrZXQub24oImhlbHBkZXNrOmFydGljbGU6c3VnZ2VzdGVkIix6aSh0aGlzLmRlLHRoaXMpKSx0aGlzLnBhcmVudC5zb2NrZXQub24oImhlbHBkZXNrOmNhdGVnb3J5Omxpc3RlZCIsemkodGhpcy5wZSx0aGlzKSl9b2UodCl7cmV0dXJuIHRoaXMuZ2UoImFydGljbGUiLCJzZWFyY2giLHRoaXMucmUsdCwicXVlcnkiKX1jZSh0KXtyZXR1cm4gdGhpcy5nZSgiYXJ0aWNsZSIsImxpc3QiLHRoaXMuYWUsdCxudWxsLHQ9PnRoaXMubGUodC5jYXRlZ29yeV9pZCx0LnNlY3Rpb25faWQpKX1kZSh0KXtyZXR1cm4gdGhpcy5nZSgiYXJ0aWNsZSIsInN1Z2dlc3QiLHRoaXMudWUsdCwicGFydCIpfXBlKHQpe3JldHVybiB0aGlzLmdlKCJjYXRlZ29yeSIsImxpc3QiLHRoaXMuZmUsdCl9bmUodCxlLHMsaSxuPW51bGwscj1udWxsLG89IiIsdT17fSl7bGV0IGw9c1tufHwiZGVmYXVsdCJdPy5bb10sYT1gaGVscGRlc2s6JHt0fToke2V9YCxoPXtbZV06ey4uLnUsbG9jYWxlOm59fTtudWxsIT09ciYmKGhbZV1bcl09byk7bGV0IGM9e2lkOihuZXcgRGF0ZSkuZ2V0VGltZSgpLGZyb206InZpc2l0b3IiLC4uLmh9O3RoaXMucGFyZW50LmV2ZW50LmVtaXQoYSxjKSxsP2koe2lkOmMuaWQscmVzdWx0czpsLC4uLmh9KTp0aGlzLnBhcmVudC5zb2NrZXQuZW1pdChhLGMpfWdlKHQsZSxzLGksbj1udWxsLHI9bnVsbCl7bGV0IG89bnVsbDtpZihvPSJmdW5jdGlvbiI9PXR5cGVvZiByP3IoaVtlXXx8e30pOm51bGw9PT1uPyIiOmlbZV1bbl0saVtlXSYmInN0cmluZyI9PXR5cGVvZiBvKXtsZXQgdD1pW2VdLmxvY2FsZXx8ImRlZmF1bHQiO3NbdF09c1t0XXx8e30sc1t0XVtvXT1pLnJlc3VsdHN9dGhpcy5wYXJlbnQuZXZlbnQuZW1pdChgaGVscGRlc2s6JHt0fToke2V9ZWRgLGkpfWxlKHQsZSl7bGV0IHM9IiI7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiZ0JiYocys9dCwic3RyaW5nIj09dHlwZW9mIGUmJihzKz1gLyR7ZXx8IioifWApKSxzfX0sZ3I9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5wYXJlbnQ9dH1maXJlZCh0LGUpe2xldCBzPXtpZGVudGlmaWVyOnQsbmFtZTplfTt0aGlzLnBhcmVudC5zb2NrZXQuZW1pdCgidHJpZ2dlcjpmaXJlZCIscyksdGhpcy5wYXJlbnQuZXZlbnQuZW1pdCgidHJpZ2dlcjpmaXJlZCIscyl9fSxGcj1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnBhcmVudD10fXByb3ZpZGVyUmVnaXN0ZXIodCl7dGhpcy5fZSgicmVnaXN0ZXIiLHQpfXByb3ZpZGVyVW5yZWdpc3Rlcih0KXt0aGlzLl9lKCJ1bnJlZ2lzdGVyIix0KX1fZSh0LGUpe2xldCBzPXtub3RpZmljYXRpb25faWQ6ZX07dGhpcy5wYXJlbnQuc29ja2V0LmVtaXQoYG5vdGlmaWNhdGlvbjpwcm92aWRlcjoke3R9YCxzKSx0aGlzLnBhcmVudC5ldmVudC5lbWl0KGBub3RpZmljYXRpb246cHJvdmlkZXI6JHt0fWAscyl9fSx3cj1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnBhcmVudD10LHRoaXMuaCgpfWNvbmZpZ3VyZSh0KXt0aGlzLndlPXQucHJvamVjdCx0aGlzLm1lPXQucmV2aXNpb24sdGhpcy55ZT10LmVudmlyb25tZW50LHRoaXMudmU9dC51c2VyYWdlbnQsdGhpcy5iZT10LnBhZ2V9cmVwb3J0KHQsZSxzKXtpZighKHRoaXMud2UmJnRoaXMubWUmJnRoaXMueWUmJnRoaXMudmUmJnRoaXMuYmUpKXRocm93IG5ldyBFcnJvcigiTWlzc2luZyBhIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyLiBEaWQgeW91IGNhbGwgY29uZmlndXJlKCkgYmVmb3JlPyIpOyJvYmplY3QiPT10eXBlb2YgcyYmcyBpbnN0YW5jZW9mIEVycm9yJiYocz17ZmlsZU5hbWU6cy5maWxlTmFtZSxsaW5lTnVtYmVyOnMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6cy5jb2x1bW5OdW1iZXIsbWVzc2FnZTpzLm1lc3NhZ2Usc3RhY2s6cy5zdGFja30pO2xldCBpPXtwcm9qZWN0OnRoaXMud2UscmV2aXNpb246dGhpcy5tZSxlbnZpcm9ubWVudDp0aGlzLnllLHVzZXJhZ2VudDp0aGlzLnZlLHBhZ2U6dGhpcy5iZSxsZXZlbDp0LG5hbWVzcGFjZTplLHRyYWNlYmFjazpzfTt0aGlzLnBhcmVudC5zb2NrZXQuZW1pdCgiaXNzdWU6cmVwb3J0IixpKSx0aGlzLnBhcmVudC5ldmVudC5lbWl0KCJpc3N1ZTpyZXBvcnQiLGkpfWgoKXt0aGlzLndlPW51bGwsdGhpcy5tZT1udWxsLHRoaXMueWU9bnVsbCx0aGlzLnZlPW51bGwsdGhpcy5iZT1udWxsfX0sdnI9L14oKD86aHR0cHM/fHdzcz8pOlwvXC9bXi9dKykoXC8uKik/JC8seXI9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5zb2NrZXQ9bnVsbCx0aGlzLnN0cmVhbT1udWxsLHRoaXMuY29va2llPW51bGwsdGhpcy5zaGEyNTY9bnVsbCx0aGlzLmV2ZW50PW51bGwsdGhpcy5TdG9yYWdlPW5ldyBYbih0aGlzKSx0aGlzLlNjaGVkdWxlPW5ldyBHbih0aGlzKSx0aGlzLkxpc3RlbmVyPW5ldyBKbih0aGlzKSx0aGlzLkNvbmZpZz1uZXcgSG4odGhpcyksdGhpcy5SZWdpc3Rlcj1uZXcgV24odGhpcyl9aW5pdCh0KXt0aGlzLmtlKCksdGhpcy5TZSh0KSx0aGlzLkFlKHQpLHRoaXMuU29ja2V0PW5ldyBLbih0aGlzKSx0aGlzLlN0cmVhbT1uZXcgWW4odGhpcyksdGhpcy5Ccm93c2luZz1uZXcgc3IodGhpcyksdGhpcy5DYWxsPW5ldyBucih0aGlzKSx0aGlzLk1lc3NhZ2U9bmV3IG9yKHRoaXMpLHRoaXMuU2Vzc2lvbj1uZXcgZHIodGhpcyksdGhpcy5XZWJzaXRlPW5ldyBEcih0aGlzKSx0aGlzLkJ1Y2tldD1uZXcgZnIodGhpcyksdGhpcy5NZWRpYT1uZXcgcHIodGhpcyksdGhpcy5PdmVybGF5PW5ldyBfcih0aGlzKSx0aGlzLkhlbHBkZXNrPW5ldyBtcih0aGlzKSx0aGlzLlRyaWdnZXI9bmV3IGdyKHRoaXMpLHRoaXMuTm90aWZpY2F0aW9uPW5ldyBGcih0aGlzKSx0aGlzLklzc3VlPW5ldyB3cih0aGlzKSx0aGlzLlN0b3JhZ2UuaW5pdCgpLHRoaXMucCgpLCEwPT09dC5jb25uZWN0U29ja2V0JiZ0aGlzLnNvY2tldC5jb25uZWN0KCl9a2UoKXt0aGlzLmgoKSx0aGlzLk1lKCl9aCgpe2RlbGV0ZSB0aGlzLmVudmlyb25tZW50LGRlbGV0ZSB0aGlzLnVybEdvLGRlbGV0ZSB0aGlzLndlYnNpdGVEb21haW4sZGVsZXRlIHRoaXMud2Vic2l0ZUlkLGRlbGV0ZSB0aGlzLnNlc3Npb25JZCxkZWxldGUgdGhpcy50b2tlbklkLGRlbGV0ZSB0aGlzLmNvb2tpZUV4cGlyZSxkZWxldGUgdGhpcy5jb29raWVEb21haW4sZGVsZXRlIHRoaXMucGxhdGZvcm1OYW1lLGRlbGV0ZSB0aGlzLnBsYXRmb3JtU2lnbmF0dXJlS2V5LGRlbGV0ZSB0aGlzLnRpY2tldEdlbmVyYXRvcixkZWxldGUgdGhpcy5zZXNzaW9uQ2hpbGRyZW4sZGVsZXRlIHRoaXMucnVudGltZUNvbmZpZ3VyYXRpb24sZGVsZXRlIHRoaXMuZGV2aWNlLGRlbGV0ZSB0aGlzLmlvUmVsYXlDbGllbnQsZGVsZXRlIHRoaXMuaW9SZWxheVN0cmVhbSxkZWxldGUgdGhpcy5pb1JlbGF5UmVzY3VlQ2xpZW50LHRoaXMuRWU9ITEsdGhpcy5DZT0hMX1TZSh0KXt0Py5lbnZpcm9ubWVudCYmKHRoaXMuZW52aXJvbm1lbnQ9dC5lbnZpcm9ubWVudHx8ImRldmVsb3BtZW50IiksdD8udXJsR28mJih0aGlzLnVybEdvPXQudXJsR28pLHQ/LndlYnNpdGVEb21haW4mJih0aGlzLndlYnNpdGVEb21haW49dC53ZWJzaXRlRG9tYWluKSx0Py53ZWJzaXRlSWQmJih0aGlzLndlYnNpdGVJZD10LndlYnNpdGVJZCksdD8uc2Vzc2lvbklkJiYodGhpcy5zZXNzaW9uSWQ9dC5zZXNzaW9uSWQpLHQ/LnRva2VuSWQmJih0aGlzLnRva2VuSWQ9dC50b2tlbklkKSx0Py5jb29raWVFeHBpcmUmJih0aGlzLmNvb2tpZUV4cGlyZT10LmNvb2tpZUV4cGlyZSksdD8uY29va2llRG9tYWluJiYodGhpcy5jb29raWVEb21haW49dC5jb29raWVEb21haW4pLHQ/LnBsYXRmb3JtTmFtZSYmKHRoaXMucGxhdGZvcm1OYW1lPXQucGxhdGZvcm1OYW1lKSx0Py5wbGF0Zm9ybVNpZ25hdHVyZUtleSYmKHRoaXMucGxhdGZvcm1TaWduYXR1cmVLZXk9dC5wbGF0Zm9ybVNpZ25hdHVyZUtleSksdD8uc2Vzc2lvbkNoaWxkcmVuJiYodGhpcy5zZXNzaW9uQ2hpbGRyZW49dC5zZXNzaW9uQ2hpbGRyZW4pLHQ/LnRpY2tldEdlbmVyYXRvciYmKHRoaXMudGlja2V0R2VuZXJhdG9yPXQudGlja2V0R2VuZXJhdG9yKSx0Py5ydW50aW1lQ29uZmlndXJhdGlvbiYmKHRoaXMucnVudGltZUNvbmZpZ3VyYXRpb249dC5ydW50aW1lQ29uZmlndXJhdGlvbiksdGhpcy5kZXZpY2U9e30sdD8udXNlcmFnZW50JiYodGhpcy5kZXZpY2UudXNlcmFnZW50PXQudXNlcmFnZW50KSx0Py50aW1lem9uZSYmKHRoaXMuZGV2aWNlLnRpbWV6b25lPXQudGltZXpvbmUpLHQ/LmNhcGFiaWxpdGllcyYmKHRoaXMuZGV2aWNlLmNhcGFiaWxpdGllcz10LmNhcGFiaWxpdGllcyksdD8ubG9jYWxlcyYmKHRoaXMuZGV2aWNlLmxvY2FsZXM9dC5sb2NhbGVzKX1BZSh0KXtsZXQgZT1bIndlYnNvY2tldCJdO3RoaXMuaW9SZWxheUNsaWVudD10aGlzLkRlKHQudXJsUmVsYXlDbGllbnQpLHRoaXMuaW9SZWxheVN0cmVhbT10aGlzLkRlKHQudXJsUmVsYXlTdHJlYW0pLHRoaXMuaW9SZWxheVJlc2N1ZUNsaWVudD10aGlzLkRlKHQudXJsUmVsYXlSZXNjdWVDbGllbnQpLHRoaXMuZXZlbnQ9ZnVuY3Rpb24odCl7cmV0dXJue2FsbDp0PXR8fG5ldyBNYXAsb246ZnVuY3Rpb24oZSxzKXt2YXIgaT10LmdldChlKTtpP2kucHVzaChzKTp0LnNldChlLFtzXSl9LG9mZjpmdW5jdGlvbihlLHMpe3ZhciBpPXQuZ2V0KGUpO2kmJihzP2kuc3BsaWNlKGkuaW5kZXhPZihzKT4+PjAsMSk6dC5zZXQoZSxbXSkpfSxlbWl0OmZ1bmN0aW9uKGUscyl7dmFyIGk9dC5nZXQoZSk7aSYmaS5zbGljZSgpLm1hcChmdW5jdGlvbih0KXt0KHMpfSksKGk9dC5nZXQoIioiKSkmJmkuc2xpY2UoKS5tYXAoZnVuY3Rpb24odCl7dChlLHMpfSl9fX0oKSx0aGlzLnNvY2tldD1Cbih0aGlzLmlvUmVsYXlDbGllbnQudXJsLHtwYXRoOnRoaXMuaW9SZWxheUNsaWVudC5wYXRoLHRyYW5zcG9ydHM6ZSxhdXRvQ29ubmVjdDohMSx0aW1lb3V0OjI1ZTMscmVjb25uZWN0aW9uRGVsYXk6MTVlMyxyZWNvbm5lY3Rpb25EZWxheU1heDo2ZTQscmVjb25uZWN0aW9uQXR0ZW1wdHM6NSxyYW5kb21pemF0aW9uRmFjdG9yOi41fSksdGhpcy5zdHJlYW09Qm4odGhpcy5pb1JlbGF5U3RyZWFtLnVybCx7cGF0aDp0aGlzLmlvUmVsYXlTdHJlYW0ucGF0aCx0cmFuc3BvcnRzOmUscmVjb25uZWN0aW9uOiExLGF1dG9Db25uZWN0OiExfSksdGhpcy5jb29raWU9Tm4sdGhpcy5zaGEyNTY9TW59cCgpe3RoaXMuUmUoKSx0aGlzLkxpc3RlbmVyLmFkZEV2ZW50TGlzdGVuZXIoIndpbmRvdyIsInBhZ2VoaWRlIiwoKT0+e3RoaXMuRWU9dGhpcy5zb2NrZXQuY29ubmVjdGVkfHwhMSx0aGlzLkNlPXRoaXMuc3RyZWFtLmNvbm5lY3RlZHx8ITEsITA9PT10aGlzLnNvY2tldC5jb25uZWN0ZWQmJnRoaXMuc29ja2V0LmRpc2Nvbm5lY3QoKSwhMD09PXRoaXMuc3RyZWFtLmNvbm5lY3RlZCYmdGhpcy5zdHJlYW0uZGlzY29ubmVjdCgpfSksdGhpcy5MaXN0ZW5lci5hZGRFdmVudExpc3RlbmVyKCJ3aW5kb3ciLCJwYWdlc2hvdyIsKCk9PnshMD09PXRoaXMuRWUmJih0aGlzLkVlPSExLHRoaXMuc29ja2V0LmNvbm5lY3QoKSksITA9PT10aGlzLkNlJiYodGhpcy5DZT0hMSx0aGlzLnN0cmVhbS5jb25uZWN0KCkpfSksdGhpcy5MaXN0ZW5lci5hZGRFdmVudExpc3RlbmVyKCJ3aW5kb3ciLCJjcmlzcC1wdXNoc3RhdGUiLCgpPT57dGhpcy5qZSgpfSksdGhpcy5MaXN0ZW5lci5hZGRFdmVudExpc3RlbmVyKCJ3aW5kb3ciLCJjcmlzcC1yZXBsYWNlc3RhdGUiLCgpPT57dGhpcy5qZSgpfSl9RGUodD0iIil7Y29uc3QgZT0odHx8IiIpLm1hdGNoKHZyKXx8W107cmV0dXJue3VybDplWzFdfHxudWxsLHBhdGg6ZVsyXXx8Ii8ifX1SZSgpe2lmKCJvYmplY3QiIT10eXBlb2Ygd2luZG93Lmhpc3RvcnkpcmV0dXJuO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUpcmV0dXJuO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUpcmV0dXJuO2xldCB0PXdpbmRvdy5oaXN0b3J5O3RoaXMuJGU9dC5wdXNoU3RhdGUsdC5wdXNoU3RhdGU9emkoZnVuY3Rpb24oLi4uZSl7bGV0IHM9dGhpcy4kZS5hcHBseSh0LGUpO3JldHVybiB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImNyaXNwLXB1c2hzdGF0ZSIpKSxzfSx0aGlzKSx0aGlzLnFlPXQucmVwbGFjZVN0YXRlLHQucmVwbGFjZVN0YXRlPXppKGZ1bmN0aW9uKC4uLmUpe2xldCBzPXRoaXMucWUuYXBwbHkodCxlKTtyZXR1cm4gd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJjcmlzcC1yZXBsYWNlc3RhdGUiKSksc30sdGhpcyl9TWUoKXt0aGlzLiRlJiYod2luZG93Lmhpc3RvcnkucHVzaFN0YXRlPXRoaXMuJGUpLHRoaXMucWUmJih3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGU9dGhpcy5xZSl9amUoKXt0aGlzLlNlc3Npb24uX3NlbmREZXZpY2UoKSx0aGlzLmV2ZW50LmVtaXQoIndpbmRvdzpoaXN0b3J5Iix7cGFnZV91cmw6ZG9jdW1lbnQubG9jYXRpb24uaHJlZixwYWdlX2RvbWFpbjpkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZX0pfX0sYnI9LyhbKl17MX0pL2csRXI9LyhbKl17Mn0pL2csQ3I9L14oWyFdezF9KS8sa3I9LyhcW21hdGNoOnNpbmdsZVxdKS9nLCRyPS8oXFttYXRjaDpkb3VibGVcXSkvZyxBcj0vKFxbbWF0Y2g6bmVnYXRlXF0pL2csQnI9bmV3IFJlZ0V4cChbIl4oXFwhKT8iLCIoPzpodHRwcz86W1xcL10qKT8iLCIoPzp3d3dcXC4pPyhbXlxcL10rKShbXiM/XSopPyIsIig/OltcXC9dKyk/IiwiKD86WyM/XS4qKT8iXS5qb2luKCIiKSwiaSIpLHhyPW5ldyBjbGFzcyBleHRlbmRzIEple2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmdyKCl9cmVzZXQoKXt0aGlzLmdyKCl9Z2V0T3JGYWxsYmFjayh0LGUscz1udWxsKXtsZXQgaT10O3JldHVybiBpPW51bGwhPT1zP3R5cGVvZiB0IT09cz9lOnQ6dHx8ZSxpfWZpbHRlckltYWdlVXJsUmVzaXplKHQsZSxzKXtsZXQgaT1NZS5VUkxfSU1BR0U7cmV0dXJuIHRoaXMuRnIodCxgJHtpfS9wcm9jZXNzL3Jlc2l6ZS8/dXJsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHQpfSZ3aWR0aD0ke2V9JmhlaWdodD0ke3N9YCl9ZmlsdGVySW1hZ2VVcmxPcmlnaW5hbCh0KXtsZXQgZT1NZS5VUkxfSU1BR0U7cmV0dXJuIHRoaXMuRnIodCxgJHtlfS9wcm9jZXNzL29yaWdpbmFsLz91cmw9JHtlbmNvZGVVUklDb21wb25lbnQodCl9YCl9dG9IYXNoQ29kZSh0KXtsZXQgZT0wO2lmKHQubGVuZ3RoPjApZm9yKGxldCBzPTA7czx0Lmxlbmd0aDtzKyspZT0oZTw8NSktZSt0LmNoYXJDb2RlQXQocyksZSY9ZTtyZXR1cm4gZX1pc0VtcHR5KHQpe3JldHVybiAwPT09dGhpcy5rZXlzKHQpLmxlbmd0aH1pc0VxdWFsKHQsZSl7bGV0IHMsaSxuPSEwLHI9LTE7aWYodHlwZW9mIHQhPXR5cGVvZiBlKW49ITE7ZWxzZSBpZih0JiYib2JqZWN0Ij09dHlwZW9mIHQmJmUmJiJvYmplY3QiPT10eXBlb2YgZSlmb3IodCBpbnN0YW5jZW9mIEFycmF5fHxlIGluc3RhbmNlb2YgQXJyYXk/KGk9dGhpcy51bmlvbih0LGUpLHQubGVuZ3RoPT09aS5sZW5ndGgmJmUubGVuZ3RoPT09aS5sZW5ndGh8fChuPSExKSk6aT10aGlzLnVuaW9uKHRoaXMua2V5cyh0KSx0aGlzLmtleXMoZSkpOysrcjxpLmxlbmd0aCYmITA9PT1uOylzPWlbcl0sbj10aGlzLmlzRXF1YWwodFtzXSxlW3NdKTtlbHNlIG49dD09PWU7cmV0dXJuIG59a2V5cyh0KXtsZXQgZT1bXTtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJnQmJihlPU9iamVjdC5rZXlzKHQpKSxlfWNsb25lKHQpe2xldCBlLHMsaT1BcnJheS5pc0FycmF5KHQpP1tdOnt9O2ZvcihlIGluIHQpcz10W2VdLGlbZV09Im9iamVjdCI9PXR5cGVvZiBzJiZudWxsIT09cz90aGlzLmNsb25lKHMpOnM7cmV0dXJuIGl9bWVyZ2UodCxlKXtpZigib2JqZWN0IiE9dHlwZW9mIHR8fCF0KXJldHVybiB0O2lmKCJvYmplY3QiIT10eXBlb2YgZXx8IWUpcmV0dXJuIHQ7Zm9yKGxldCBzIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShzKSYmKCJvYmplY3QiIT10eXBlb2YgZVtzXXx8bnVsbD09PWVbc118fEFycmF5LmlzQXJyYXkoZVtzXSk/dFtzXT1lW3NdOigoIm9iamVjdCIhPXR5cGVvZiB0W3NdfHxudWxsPT09dFtzXXx8QXJyYXkuaXNBcnJheSh0W3NdKSkmJih0W3NdPXt9KSx0aGlzLm1lcmdlKHRbc10sZVtzXSkpKTtyZXR1cm4gdH1pbnRlcnNlY3QodCxlKXtsZXQgcz1bXTtmb3IobGV0IGk9MDtpPHQubGVuZ3RoO2krKyllLmluY2x1ZGVzKHRbaV0pJiZzLnB1c2godFtpXSk7cmV0dXJuIHN9dW5pb24odCxlKXtsZXQgcz1bXTtmb3IobGV0IGk9MDtpPHQubGVuZ3RoO2krKylzLmluY2x1ZGVzKHRbaV0pfHxzLnB1c2godFtpXSk7Zm9yKGxldCBpPTA7aTxlLmxlbmd0aDtpKyspcy5pbmNsdWRlcyhlW2ldKXx8cy5wdXNoKGVbaV0pO3JldHVybiBzfWV4dHJhY3QodCxlLHM9IiIsaT0xKXtsZXQgbj1lfHxzfHwiIixyPShlfHwiIikudHJpbSgpLm1hdGNoKHQpO3JldHVybiBuPXI/LltpXT9yW2ldOnN8fCIiLG59Y29tcGFyZVJ1bGUodCxlLHM9Ii4iLGk9Ii4iKXtsZXQgbj0hMTtyZXR1cm4hMD09PUNyLnRlc3QoZSkmJihlPShlPWUucmVwbGFjZShDciwiW21hdGNoOm5lZ2F0ZV0iKSkucmVwbGFjZShBciwiIikpLGUuaW5jbHVkZXMoIioiKT8oZT0oZT0oZT0oZT1lLnJlcGxhY2UoRXIsIlttYXRjaDpkb3VibGVdIikpLnJlcGxhY2UoYnIsIlttYXRjaDpzaW5nbGVdIikpLnJlcGxhY2UoJHIsaSsiKiIpKS5yZXBsYWNlKGtyLHMrIioiKSxuPW5ldyBSZWdFeHAoYF4ke2V9JGApLnRlc3QodCkpOm49dD09PWUsbn1jb21wYXJlUnVsZXModCxlLHMsaT0iLiIsbj0iLiIpe2xldCByPSExLG89ITEsdT0hMTtpZihlLmxlbmd0aD4wKXtsZXQgcz0wO2Zvcig7czxlLmxlbmd0aCYmITAhPT1vOylvPXRoaXMuY29tcGFyZVJ1bGUodCxlW3NdLGksbikscysrOyExPT09byYmKHI9ITApfWlmKCExPT09byYmcy5sZW5ndGg+MCl7bGV0IGU9MDtmb3IoO2U8cy5sZW5ndGgmJiEwIT09dTspdT10aGlzLmNvbXBhcmVSdWxlKHQsc1tlXSxpLG4pLGUrKztyPXV9cmV0dXJuIHJ9bm9ybWFsaXplVXJsUGF0aCh0LGUscz0iIil7bGV0IGk9IiI7cmV0dXJuIGU/ZS5sZW5ndGg+MSYmIi8iIT09ZVtlLmxlbmd0aC0xXSYmIioiIT09ZVtlLmxlbmd0aC0xXSYmKGUrPSIvIik6ZT0iLyIsaT1gJHtzfSR7dH0ke2V9YCxpfWNvbXBhcmVQYWdlUnVsZXModCxlLHM9bnVsbCl7bGV0IGk9ITE7aWYoZT8ubGVuZ3RoPjApe2xldCBuLHI9W10sbz1bXSx1PVtdO251bGw9PT1zJiYocz13dS53ZWJzaXRlPy53ZWJzaXRlPy5kb21haW4pO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXtsZXQgaT0oZVt0XXx8IiIpLnRyaW0oKTtpJiYoITE9PT1Cci50ZXN0KGkpJiYoaT10aGlzLm5vcm1hbGl6ZVVybFBhdGgocyxpKSksbj1pLm1hdGNoKEJyKSxuP3IucHVzaCh0aGlzLm5vcm1hbGl6ZVVybFBhdGgoblsyXSxuWzNdLG5bMV0pKTpyLnB1c2goYCR7c30ke2l9YCkpfWxldCBsPXQ/Lm1hdGNoKEJyKSxhPWw/dGhpcy5ub3JtYWxpemVVcmxQYXRoKGxbMl0sbFszXSxsWzFdKTpudWxsO2ZvcihsZXQgdD0wO3Q8ci5sZW5ndGg7dCsrKSEwPT09Q3IudGVzdChyW3RdKT9vLnB1c2goclt0XSk6dS5wdXNoKHJbdF0pOyEwPT09dGhpcy5jb21wYXJlUnVsZXMoYSxvLHUsIlteL10iLCIuIikmJihpPSEwKX1yZXR1cm4gaX1wbGF5TWVkaWEodCl7bGV0IGU9dC5wbGF5KCk7dm9pZCAwIT09ZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuY2F0Y2gmJmUuY2F0Y2godD0+e30pfW9wZW5MaW5rKHQpe2xldCBlPXdpbmRvdy5vcGVuKCk7ZS5vcGVuZXI9bnVsbCxlLmxvY2F0aW9uPXR9ZG93bmxvYWRMb2NhbEZpbGUodCxlKXtpZighd2luZG93LlVSTCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBkb3dubG9hZCIpO2xldCBzPXdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFtlXSkpLGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2kuaHJlZj1zLGkuZG93bmxvYWQ9dCxpLnRleHRDb250ZW50PXQsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKSxpLmNsaWNrKCksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChpKSx3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTChzKX1hY3F1aXJlQ2hhbm5lbFVybFJlZ2V4KHQsZSxzPSIiKXtsZXQgaT1udWxsO2lmKHd1LndlYnNpdGUuY2hhbm5lbHNbdF0mJihpPXRoaXMud3JbdF0/LltlXSwhaSkpe2xldCBuPXd1LmNoYXQuZ2VuZXJhdGVDaGFubmVsTGluaygiaGVscGRlc2siKTtpPW5ldyBSZWdFeHAoYF4ke1RpLnBhcnNlKCkuZXNjYXBlX3JlZ2V4KG4pfSR7c30kYCksdGhpcy53clt0XT10aGlzLndyW3RdfHx7fSx0aGlzLndyW3RdW2VdPWl9cmV0dXJuIGl9bmV4dFJlbmRlcih0KXtmcyh0KX1zZXRUaW1lb3V0KHQsZT0wKXtsZXQgcz1udWxsO2lmKCF5ci5TY2hlZHVsZSl0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBzZXQgdGltZW91dCBhZnRlciAke2V9bXMsIGFzIHRoZSBzY2hlZHVsZSB3cmFwcGVyIGlzIG5vdCB5ZXQgYXZhaWxhYmxlYCk7cmV0dXJuIHM9eXIuU2NoZWR1bGUuc2V0VGltZW91dCh0LGUpLHN9Y2xlYXJUaW1lb3V0KHQpe2lmKCF5ci5TY2hlZHVsZSl0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBjbGVhciB0aW1lb3V0ICMke3R9LCBhcyB0aGUgc2NoZWR1bGUgd3JhcHBlciBpcyBub3QgeWV0IGF2YWlsYWJsZWApO3lyLlNjaGVkdWxlLmNsZWFyVGltZW91dCh0KX1zZXRJbnRlcnZhbCh0LGU9MCl7bGV0IHM9bnVsbDtpZigheXIuU2NoZWR1bGUpdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3Qgc2V0IGludGVydmFsIGV2ZXJ5ICR7ZX1tcywgYXMgdGhlIHNjaGVkdWxlIHdyYXBwZXIgaXMgbm90IHlldCBhdmFpbGFibGVgKTtyZXR1cm4gcz15ci5TY2hlZHVsZS5zZXRJbnRlcnZhbCh0LGUpLHN9Y2xlYXJJbnRlcnZhbCh0KXtpZigheXIuU2NoZWR1bGUpdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgY2xlYXIgaW50ZXJ2YWwgIyR7dH0sIGFzIHRoZSBzY2hlZHVsZSB3cmFwcGVyIGlzIG5vdCB5ZXQgYXZhaWxhYmxlYCk7eXIuU2NoZWR1bGUuY2xlYXJJbnRlcnZhbCh0KX1hZGRFdmVudExpc3RlbmVyKHQsZSxzLGk9e30pe3JldHVybiB5ci5MaXN0ZW5lci5hZGRFdmVudExpc3RlbmVyKHQsZSxzLGkpfXJlbW92ZUV2ZW50TGlzdGVuZXIodCxlLHMpe3lyLkxpc3RlbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxlLHMpfWluc2VydExpbmtRdWVyeVZhbHVlcyh0LGU9e30pe2xldCBzPXQ7aWYocz8ubGVuZ3RoPjApe2xldCB0PSIiO2ZvcihsZXQgcyBpbiBlKXQmJih0Kz0iJiIpLHQrPWAke3N9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KGVbc10pfWA7aWYodD8ubGVuZ3RoPjApe2xldCBlPXNbcy5sZW5ndGgtMV07Ij8iIT09ZSYmIiYiIT09ZSYmKHMrPSEwPT09cy5pbmNsdWRlcygiPyIpPyImIjoiPyIpLHMrPXR9fXJldHVybiBzfUZyKHQsZSl7bGV0IHM9TWUuVVJMX0lNQUdFO3JldHVybiB0LnN1YnN0cmluZygwLHMubGVuZ3RoKT09PXM/dDplfWdyKCl7dGhpcy53cj17fX19LGpyPVllKHtjb2RlOiIiLGRpcmVjdGlvbjoibHRyIn0se30pO2Z1bmN0aW9uIElyKHQpe3JldHVybnthbGw6dD10fHxuZXcgTWFwLG9uOmZ1bmN0aW9uKGUscyl7dmFyIGk9dC5nZXQoZSk7aT9pLnB1c2gocyk6dC5zZXQoZSxbc10pfSxvZmY6ZnVuY3Rpb24oZSxzKXt2YXIgaT10LmdldChlKTtpJiYocz9pLnNwbGljZShpLmluZGV4T2Yocyk+Pj4wLDEpOnQuc2V0KGUsW10pKX0sZW1pdDpmdW5jdGlvbihlLHMpe3ZhciBpPXQuZ2V0KGUpO2kmJmkuc2xpY2UoKS5tYXAoZnVuY3Rpb24odCl7dChzKX0pLChpPXQuZ2V0KCIqIikpJiZpLnNsaWNlKCkubWFwKGZ1bmN0aW9uKHQpe3QoZSxzKX0pfX19ZnVuY3Rpb24gU3IoKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKX1qci53ZWI9U2UoKCk9PntsZXQgdD1udWxsO3Q9TWUuTE9DQUxFX0RFRkFVTFQ7bGV0IGU9anIuY29kZTtyZXR1cm4hMD09PU1lLkxPQ0FMRV9XRUJTSVRFLmluY2x1ZGVzKGUpJiYodD1lKSx0fSk7dmFyIFJyPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy52cj1JcigpLHRoaXMueXI9e30sdGhpcy5icj1bXX1zdWJzY3JpYmUodCxlKXt0aGlzLnZyLm9uKHQsZSksdGhpcy5Fcih0KSx0aGlzLnlyW3RdfHwodGhpcy55clt0XT1bXSksdGhpcy55clt0XS5wdXNoKGUpfXVuc3Vic2NyaWJlKHQsZSl7dGhpcy52ci5vZmYodCxlKSx0aGlzLnlyW3RdJiYodGhpcy55clt0XT10aGlzLnlyW3RdLmZpbHRlcih0PT50IT09ZSkpfWVtaXQodCxlKXt4ci5zZXRUaW1lb3V0KCgpPT57dGhpcy5ici5sZW5ndGg8NTAmJnRoaXMuYnIucHVzaCh7ZXZlbnQ6dCxkYXRhOmUsdGltZXN0YW1wOlNyKCl9KSx0aGlzLnZyLmVtaXQodCxlKX0sMSl9RXIodCl7dGhpcy5ici5mb3JFYWNoKGU9PntlLmV2ZW50PT09dCYmZS50aW1lc3RhbXA+U3IoKS0xZTMmJnRoaXMudnIuZW1pdChlLmV2ZW50LGUuZGF0YSl9KSx0aGlzLmJyPXRoaXMuYnIuZmlsdGVyKGU9PmUuZXZlbnQhPT10KX19LE9yPW5ldyBjbGFzcyBleHRlbmRzIFJye2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdWJzY3JpYmUodCxlKXtzdXBlci5zdWJzY3JpYmUodCxlKX11bnN1YnNjcmliZSh0LGUpe3N1cGVyLnVuc3Vic2NyaWJlKHQsZSl9Ymx1ckZyb21Gb3JlZ3JvdW5kKCl7c3VwZXIuZW1pdCgiYmx1ci1mcm9tLWZvcmVncm91bmQiKX1mb2N1c09uRm9yZWdyb3VuZCgpe3N1cGVyLmVtaXQoImZvY3VzLW9uLWZvcmVncm91bmQiKX1zY3JvbGxUbyh0PTApe3N1cGVyLmVtaXQoInNjcm9sbC10byIsdCl9c2Nyb2xsVG9MYXN0TWVzc2FnZSh0PSJ0byIpe3N1cGVyLmVtaXQoInNjcm9sbC10by1sYXN0LW1lc3NhZ2UiLHQpfWNoZWNrQ2xlYXJhbmNlKCl7c3VwZXIuZW1pdCgiY2hlY2stY2xlYXJhbmNlIil9fSxUcj1uZXcgY2xhc3MgZXh0ZW5kcyBScntjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9bG9nZ2VyKHQsZT1udWxsKXtudWxsPT09ZT9XZS5kaXNjb25uZWN0TG9nU2luayh0KTpXZS5jb25uZWN0TG9nU2luayh0LGUpfXN1YnNjcmliZSh0LGUpe3N1cGVyLnN1YnNjcmliZSh0LGUpfXVuc3Vic2NyaWJlKHQsZSl7c3VwZXIudW5zdWJzY3JpYmUodCxlKX1vblRlc3RlclN0YXJ0TmV3Q29udmVyc2F0aW9uKCl7c3VwZXIuZW1pdCgidGVzdGVyL3N0YXJ0LW5ldy1jb252ZXJzYXRpb24iKX1vblRlc3Rlck1lc3NhZ2VTZW50KHQpe3N1cGVyLmVtaXQoInRlc3Rlci9tZXNzYWdlLXNlbnQiLHQpfW9uVGVzdGVyTWVzc2FnZVVwZGF0ZWQodCl7c3VwZXIuZW1pdCgidGVzdGVyL21lc3NhZ2UtdXBkYXRlZCIsdCl9b25JbnRlcmZhY2VBY3Rpb24odCxlPXt9KXtzdXBlci5lbWl0KCJpbnRlcmZhY2UtYWN0aW9uIix7YWN0aW9uOnQsZGF0YTplfSl9b25JbnRlcmZhY2VMaWZlY3ljbGUodCxlPXt9KXtzdXBlci5lbWl0KCJpbnRlcmZhY2UtbGlmZWN5Y2xlIix7c3RhdGU6dCxkYXRhOmV9KX1pbml0aWFsTW9kZSh0KXtyZXR1cm4gd3UuY2hhdC5lZmZlY3RpdmVJbml0aWFsTW9kZSh0KX1jaGFuZ2VNb2RlKHQpe3d1LmNoYXQuY2hhbmdlTW9kZSh0LCEwKX1zaG93Q29tcG9zZSh0LGUpe3d1Lm1lc3NhZ2VzLnNob3dDb21wb3NlKHQsZSl9aGlkZUNvbXBvc2UoKXt3dS5tZXNzYWdlcy5oaWRlQ29tcG9zZSgpfWluamVjdE1lc3NhZ2UodCl7d3UubWVzc2FnZXMuaGFuZGxlUmVjZWl2ZWQodCxudWxsLCEwLCEwLCEwLCExKX1ub3RpZmljYXRpb25Qcm92aWRlcih0LGU9ITApe2U/eXIuTm90aWZpY2F0aW9uLnByb3ZpZGVyUmVnaXN0ZXIodCk6eXIuTm90aWZpY2F0aW9uLnByb3ZpZGVyVW5yZWdpc3Rlcih0KX1zb2NrZXRDb25uZWN0aW9uKHQ9ITApe3Q/eXIuc29ja2V0LmNvbm5lY3QoKTp5ci5zb2NrZXQuZGlzY29ubmVjdCgpfXJlc2V0KCl7ZSgpLkFjdGlvbi5kb19zZXNzaW9uX3Jlc2V0KCl9dW5sb2FkKHQ9bnVsbCxzPW51bGwpe2UoKS5CYXNlLnVuaW5zZXJ0QW5kUmVzZXQoKSx5ci5TZXNzaW9uLnJlc2V0KCExLHQscyl9dXBkYXRlV2Vic2l0ZUNoYXRTZXR0aW5nKHQscyl7bGV0IGk9ZSgpLkFjdGlvbltgY29uZmlnXyR7dH1gXTsiZnVuY3Rpb24iPT10eXBlb2YgaT9pKHMpOnd1LndlYnNpdGUudXBkYXRlQ2hhdFZhbHVlKHQscyl9dXBkYXRlV2Vic2l0ZU92ZXJsYXlTZWFyY2hMb2NhbGUodCxlKXt3dS53ZWJzaXRlLnVwZGF0ZU92ZXJsYXlTZWFyY2hMb2NhbGUodCxlKX11cGRhdGVQbHVnaW5TZXR0aW5ncyh0LGUpe3d1LndlYnNpdGUudXBkYXRlUGx1Z2luU2V0dGluZ3ModCxlKX19LHpyPW5ldyBjbGFzc3t1cmwodCxlLHMsaT1udWxsKXtsZXQgbj1NZS5VUkxfSU1BR0U7cmV0dXJuIG51bGwhPT1pJiYic3RyaW5nIj09dHlwZW9mIGk/TWUuVEVTVHx8aS5zdWJzdHJpbmcoMCxuLmxlbmd0aCk9PT1uP2k6YCR7bn0vcHJvY2Vzcy90aHVtYm5haWwvP3VybD0ke2VuY29kZVVSSUNvbXBvbmVudChpKX0md2lkdGg9JHt0fSZoZWlnaHQ9JHt0fSYke3d1LndlYnNpdGU/LndlYnNpdGU/LmJ1c3Rlcn1gOmAke259L2F2YXRhci8ke2V9LyR7c3x8ImRlZmF1bHQifS8ke3R9Lz8ke3d1LndlYnNpdGU/LndlYnNpdGU/LmJ1c3Rlcn1gfX0sUHI9WyJidXR0b24iLCJhbGVydCJdLExyPVsiW3RhYmluZGV4PScwJ106bm90KFtkaXNhYmxlZF0pIiwiaW5wdXQ6bm90KFtkaXNhYmxlZF0pOm5vdChbdHlwZT0naGlkZGVuJ10pIiwidGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pIiwic2VsZWN0Om5vdChbZGlzYWJsZWRdKSIsImJ1dHRvbjpub3QoW2Rpc2FibGVkXSkiLCJhW2hyZWZdIl0uam9pbigiLCAiKSxNcj17c3RhY2s6W119LFVyPW5ldyBjbGFzcyBleHRlbmRzIEple2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZXNldCgpe01yLnN0YWNrPVtdfWluaXQodCl7bGV0IGU9dGhpczt0LmRpcmVjdGl2ZSgiY3Jpc3BBY2Nlc3NpYmlsaXR5Iix7YmVmb3JlTW91bnQ6KHQscyk9PmUubW91bnQodCxzKSx1cGRhdGVkOih0LHMpPT5lLnVwZGF0ZSh0LHMpLGJlZm9yZVVubW91bnQ6dD0+ZS51bmJpbmQodCl9KX1iaW5kUGV0aXRlVnVlKHQpe2xldCBlPXQuZWwscz17dmFsdWU6e3JvbGU6dC5nZXQoKS5yb2xlfX07cmV0dXJuIHRoaXMubW91bnQoZSxzKX1tb3VudCh0LGUpeyEwIT09ZT8udmFsdWU/LmRpc2FibGVkPyh0LiRjYWM9e30sdC4kY2FjLnJvbGU9ZT8udmFsdWU/LnJvbGUsdC4kY2FjLmZuT25LZXlkb3duPWU9Pnt0aGlzLkNyKHQsZSl9LHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdC4kY2FjLmZuT25LZXlkb3duKSx0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHQuJGNhYy5mbk9uS2V5ZG93biksdC5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwwKSx0LiRjYWMucm9sZSYmdC5zZXRBdHRyaWJ1dGUoInJvbGUiLHQuJGNhYy5yb2xlKSxNci5zdGFjay5wdXNoKHQpKTp0aGlzLmtyKHQpfXVwZGF0ZSh0LGUpeyEwPT09TXIuc3RhY2suaW5jbHVkZXModCkmJnRoaXMubW91bnQodCxlKX11bmJpbmQodCl7dGhpcy5rcih0KX0kcih0KXtyZXR1cm4gQXJyYXkuZnJvbSh0LnF1ZXJ5U2VsZWN0b3JBbGwoTHIpKS5maWx0ZXIodD0+e2xldCBlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpO3JldHVybiJoaWRkZW4iIT09ZS52aXNpYmlsaXR5JiYibm9uZSIhPT1lLmRpc3BsYXkmJm51bGwhPT10Lm9mZnNldFBhcmVudH0pfWtyKHQpe09iamVjdC5rZXlzKHQuJGNhY3x8e30pLmxlbmd0aD4wJiZ0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHQuJGNhYy5mbk9uS2V5ZG93bik7bGV0IGU9TXIuc3RhY2suaW5kZXhPZih0KTtlPi0xJiZNci5zdGFjay5zcGxpY2UoZSwxKSx0LiRjYWM9e319Q3IodCxlKXtzd2l0Y2goZS5rZXlDb2RlKXtjYXNlIDEzOmNhc2UgMzI6ZS50YXJnZXQ/LnJvbGUmJlByLmluY2x1ZGVzKGUudGFyZ2V0LnJvbGUpJiYoZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxlLnByZXZlbnREZWZhdWx0KCksZS50YXJnZXQuY2xpY2soKSk7YnJlYWs7Y2FzZSA5OntsZXQgcz10LmNsb3Nlc3QoIi5jYy0xbWg5MSIpO2lmKHMpe2xldCBpPXRoaXMuJHIocyk7aWYoaS5sZW5ndGg+MCl7bGV0IHM9aVswXSxuPWlbaS5sZW5ndGgtMV07ZS5zaGlmdEtleXx8dCE9PW58fChlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLGUucHJldmVudERlZmF1bHQoKSxzLmZvY3VzKCkpLGUuc2hpZnRLZXkmJnQ9PT1zJiYoZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxlLnByZXZlbnREZWZhdWx0KCksbi5mb2N1cygpKX19YnJlYWt9fX19LHFyPW5ldyBjbGFzc3tmb3JtYXRUZXh0KHQsZT17fSl7cmV0dXJuIFRpLnBhcnNlKCkuZm9ybWF0KCJzdHJpbmciPT10eXBlb2YgdD90OiIiLGUpfWdlbmVyYXRlQXZhdGFyVXJsKHQsZSxzLGk9bnVsbCl7cmV0dXJuIHpyLnVybC5jYWxsKHpyLHQsZSxzLGkpfXRyYW5zbGF0ZVRleHQodCxlLHM9W10pe3JldHVybiBidS50ZXh0LmNhbGwoYnUsdCxlLHMpfXBhcnNlRmlyc3ROYW1lKHQpe3JldHVybiBUaS5uYW1lKCkucGFyc2VfZmlyc3RfbmFtZSgic3RyaW5nIj09dHlwZW9mIHQ/dDoiIil9aW1hZ2VVcmxPcmlnaW5hbCh0KXtyZXR1cm4geHIuZmlsdGVySW1hZ2VVcmxPcmlnaW5hbCh0KX1pbWFnZVVybFJlc2l6ZSh0LGU9bnVsbCxzPW51bGwpe3JldHVybiB4ci5maWx0ZXJJbWFnZVVybFJlc2l6ZSh0LG51bGwhPT1lP2U6NjAwLG51bGwhPT1zP3M6NjAwKX1pbWFnZVVybEJhY2tncm91bmQodCxlPSEwKXtyZXR1cm4idXJsKCciK3QrIicpIisoZT8iICFpbXBvcnRhbnQiOiIiKX19O3ZhciBWcj1uZXcgY2xhc3N7ZG9tKHQpe2xldCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBlLmlubmVySFRNTD10LGUuZmlyc3RDaGlsZH12dWUodCl7bGV0IGU9e307cmV0dXJuIGUuX2Y9cXIuZm9ybWF0VGV4dCxlLl9uPXFyLnBhcnNlRmlyc3ROYW1lLGUuX2U9cXIudHJhbnNsYXRlVGV4dCxlLl9hPXFyLmdlbmVyYXRlQXZhdGFyVXJsLGUuaW1hZ2VVcmxSZXNpemU9cXIuaW1hZ2VVcmxSZXNpemUsZS5pbWFnZVVybE9yaWdpbmFsPXFyLmltYWdlVXJsT3JpZ2luYWwsZS5pbWFnZVVybEJhY2tncm91bmQ9cXIuaW1hZ2VVcmxCYWNrZ3JvdW5kLHlpKHtyZWFjdGl2ZTpwZSxlZmZlY3Q6dnQsc3RvcDp5dCxyZW1vdmU6Y30seyRzdG9yZTp3dSwkcmVuZGVyOmV9KS5kaXJlY3RpdmUoImNyaXNwLWFjY2Vzc2liaWxpdHkiLGZ1bmN0aW9uKHQsZSwuLi5zKXtyZXR1cm4gdC5iaW5kJiYvXFtuYXRpdmUgY29kZVxdLy50ZXN0KHQuYmluZC50b1N0cmluZygpKT90LmJpbmQoZSwuLi5zKTpmdW5jdGlvbiguLi5pKXtyZXR1cm4gdC5hcHBseShlLFsuLi5zLC4uLmldKX19KFVyLmJpbmRQZXRpdGVWdWUsVXIpKS5tb3VudCh0KX19LE5yPSJ1cm46Y3Jpc3AuaW06dHJpZ2dlcnM6MCIsSHI9bmV3IGNsYXNze2dldFRyaWdnZXJzKCl7cmV0dXJuIHd1LndlYnNpdGU/LnBsdWdpbnM/LlsidXJuOmNyaXNwLmltOnRyaWdnZXJzOjAiXT8uc2V0dGluZ3N8fHt9fWdldEN1c3RvbWl6YXRpb24odCxlLHM9bnVsbCl7bGV0IGk9bnVsbCxuPXd1LndlYnNpdGU/LnBsdWdpbnM/LlsidXJuOmNyaXNwLmltOmN1c3RvbWl6YXRpb246MCJdPy5zZXR0aW5nc3x8bnVsbCxyPW4/LiRpMThuPy5bd3UubG9jYWxlLmNvZGVdfHx7fTtyZXR1cm4gdCBpbiByJiYobj1yKSxpPW4/Llt0XT8uW2VdfHx7fSxzJiYoaT1pW3NdfHxudWxsKSxpfX0sV3I9TWUuVEhFTUUuREVGQVVMVF9DT0xPUixHcj1NZS5USEVNRS5BVkFJTEFCTEVfQ09MT1JTLEpyPU1lLlRIRU1FLkRFUklWRV9DT0xPUlMsS3I9L14jKFswLTlhLWZdezJ9KShbMC05YS1mXXsyfSkoWzAtOWEtZl17Mn0pJC9pLFlyPS9fL2csWnI9bmV3IGNsYXNze2FwcGx5VGhlbWUodCxlPSExKXtsZXQgcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuY3Jpc3AtY2xpZW50IiksaT10aGlzLkFyKHQsZSk7Zm9yKGxldCBuIGluIGkpcy5zdHlsZS5zZXRQcm9wZXJ0eShgLS1jcmlzcC1jb2xvci10aGVtZS0ke259YCxpW25dLnJnYil9YXBwbHlDb250YWluZXJJbmRleCh0KXtsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuY3Jpc3AtY2xpZW50Iik7dCYmZS5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1jcmlzcC1jdXN0b21pemF0aW9uLWNvbnRhaW5lci1pbmRleCIsdC50b1N0cmluZygpKX1hcHBseVBvc2l0aW9uKHQpe2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jcmlzcC1jbGllbnQiKSxzPXRoaXMuQnIodCk7Zm9yKGxldCBpIGluIHMpe2xldCB0PWkucmVwbGFjZShZciwiLSIpO2Uuc3R5bGUuc2V0UHJvcGVydHkoYC0tY3Jpc3AtY3VzdG9taXphdGlvbi0ke3R9YCxgJHtzW2ldfXB4YCl9fUFyKHQsZT0hMSl7bGV0IHMsaSxuPXt9OyEwIT09ZT8ocz1Ici5nZXRDdXN0b21pemF0aW9uKCJjb2xvciIsImNoYXRib3giKSx0aGlzLmpyKHMpKTpzPXt9LGk9R3JbdF18fEdyW1dyXSx0aGlzLklyKHMsaSk7Zm9yKGxldCByIGluIHMpbltyXT17aGV4OnNbcl0scmdiOnRoaXMuU3Ioc1tyXSl9O3JldHVybiBufUJyKHQpe2xldCBlO2U9ITA9PT13dS5iYXNlLnJ1bnRpbWUudGVzdGVyX21vZGU/e306SHIuZ2V0Q3VzdG9taXphdGlvbigicG9zaXRpb24iLCJjaGF0Ym94Iik7Zm9yKGxldCBzIGluIHQpZVtzXT10W3NdO3JldHVybiBlfWpyKHQpe2xldCBlPXRbNTAwXTtpZihlKXtsZXQgaT10aGlzLlJyKGUpO2ZvcihsZXQgbiBpbiBKcil7bGV0IHI9SnJbbl07aWYoIXRbbl0pdHJ5e3Rbbl09dGhpcy5PcihpLHIucGVyY2VudCxyLnRyYW5zcGFyZW50KX1jYXRjaChzKXtXZS5lcnJvcihgRmFpbGVkIGRlcml2aW5nIGNvbG9yOiAke259IGZyb20gYmFzZWxpbmU6ICR7ZX1gLHMpfX19fU9yKHQsZSxzPSExKXtsZXRbaSxuLHJdPXQ7cmV0dXJuIHM/KGk9cGFyc2VJbnQoaSsoMjU1LWkpKmUvMTAwKSxuPXBhcnNlSW50KG4rKDI1NS1uKSplLzEwMCkscj1wYXJzZUludChyKygyNTUtcikqZS8xMDApKTooaT1wYXJzZUludChpKigxMDArZSkvMTAwKSxuPXBhcnNlSW50KG4qKDEwMCtlKS8xMDApLHI9cGFyc2VJbnQociooMTAwK2UpLzEwMCkpLGk9aTwyNTU/aToyNTUsbj1uPDI1NT9uOjI1NSxyPXI8MjU1P3I6MjU1LCIjIitbdGhpcy5UcihpKSx0aGlzLlRyKG4pLHRoaXMuVHIocildLmpvaW4oIiIpfVJyKHQpe2xldCBlPXQudG9TdHJpbmcoKTtyZXR1cm5bcGFyc2VJbnQoZS5zdWJzdHJpbmcoMSwzKSwxNikscGFyc2VJbnQoZS5zdWJzdHJpbmcoMyw1KSwxNikscGFyc2VJbnQoZS5zdWJzdHJpbmcoNSw3KSwxNildfVRyKHQpe3JldHVybigxPT09dC50b1N0cmluZygxNikubGVuZ3RoP2AwJHt0LnRvU3RyaW5nKDE2KX1gOnQudG9TdHJpbmcoMTYpKS50b1VwcGVyQ2FzZSgpfUlyKHQsZSl7Zm9yKGxldCBzIGluIGUpdFtzXXx8KHRbc109ZVtzXSl9U3IodCl7bGV0IGU9WzAsMCwwXSxzPXQubWF0Y2goS3IpO3JldHVybiBzJiYoZVswXT1wYXJzZUludChzWzFdLDE2KSxlWzFdPXBhcnNlSW50KHNbMl0sMTYpLGVbMl09cGFyc2VJbnQoc1szXSwxNikpLGAke2VbMF19LCAke2VbMV19LCAke2VbMl19YH19O2Z1bmN0aW9uIFhyKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9dmFyIFFyPS9eKD86aHR0cHM/OlsvXSopPyhbXi9dKykoPzpcLy4qKT8kL2ksdG89WWUoe3dlYnNpdGU6e25hbWU6IiIsZG9tYWluOiIiLG1haWxlcjoiIixidXN0ZXI6MSxjb3VudF9vcGVyYXRvcnM6MCxhY3RpdmVfb3BlcmF0b3JzOltdLHJlc3BvbnNlX21ldHJpY3M6e30sbGFzdF9hdmFpbGFibGU6WHIoKSxzdGF0dXM6bnVsbCx0cmlhbDohMSxvbmxpbmU6ITF9LGNoYW5uZWxzOnt9LG92ZXJsYXk6e30scGx1Z2luczp7fSxjaGF0Ontjb3VudHJ5Om51bGwsbG9jYWxlOiIiLGNvbG9yX3RoZW1lOiJkZWZhdWx0Iixjb2xvcl9tb2RlOiJsaWdodCIsbGF5b3V0X3RoZW1lOiJjb2xvcml6ZWQiLGFsbG93ZWRfcGFnZXM6W10sYmxvY2tlZF9wYWdlczpbXSxibG9ja2VkX2xvY2FsZXM6W10sdGlsZToiZGVmYXVsdCIsd2Vic2l0ZV9sb2dvOiExLGxhc3Rfb3BlcmF0b3JfZmFjZTohMSxvbmdvaW5nX29wZXJhdG9yX2ZhY2U6ITAsYWN0aXZpdHlfbWV0cmljczohMCxvcGVyYXRvcl9wcml2YWN5OiExLHZpc2l0b3JfcHJpdmFjeTohMSxhdmFpbGFiaWxpdHlfdG9vbHRpcDohMCxoaWRlX3ZhY2F0aW9uOiExLGhpZGVfb25fYXdheTohMSxoaWRlX29uX21vYmlsZTohMSxwb3NpdGlvbl9yZXZlcnNlOiExLGVtYWlsX3Zpc2l0b3JzOiEwLHBob25lX3Zpc2l0b3JzOiEwLGZvcmNlX2lkZW50aWZ5OiExLGlnbm9yZV9wcml2YWN5OiExLHZpc2l0b3JfY29tcG9zZTohMCxmaWxlX3RyYW5zZmVyOiEwLGF1ZGlvX3JlY29yZDohMCxtb2RlX2luaXRpYWw6ImNoYXQiLGhvbWU6ITEsb3ZlcmxheV9zZWFyY2g6ITEsb3ZlcmxheV9tb2RlOiExLGhlbHBkZXNrX2xpbms6ITAsaGVscGRlc2tfb25seTohMSxoZWxwZGVza19uYXZpZ2F0ZToiZnJlcXVlbnQiLHN0YXR1c19oZWFsdGhfZGVhZDohMCx3YWl0X2dhbWU6ITEsY29udmVyc2F0aW9uczohMCx0aGVtZV90ZXh0OiJkZWZhdWx0Iix0aGVtZV93ZWxjb21lOiJkZWZhdWx0In19LHt1cGRhdGVXZWJzaXRlKHQsZSl7aWYoTWUuVEVTVCl7bGV0IHM9dG8uenIodCxlKTt0PXMuY29uZmlndXJhdGlvbixlPXMuc2Vzc2lvbn10by5vbmxpbmU9ITEsKHQ9dHx8e30pLnNldHRpbmdzPXQuc2V0dGluZ3N8fHt9O2xldCBzPXt3ZWJzaXRlOntuYW1lOnQud2Vic2l0ZXx8IiIsZG9tYWluOnhyLmV4dHJhY3QoUXIsdC5kb21haW4sUW8ud2Vic2l0ZS5kb21haW4sMSksbWFpbGVyOnQubWFpbGVyfHwiIixidXN0ZXI6ZS5idXN0ZXJ8fDEsY291bnRfb3BlcmF0b3JzOmUuY291bnRfb3BlcmF0b3JzfHwwLGFjdGl2ZV9vcGVyYXRvcnM6ZS5hY3RpdmVfb3BlcmF0b3JzfHx0Lm9wZXJhdG9yc3x8W10scmVzcG9uc2VfbWV0cmljczplLnJlc3BvbnNlX21ldHJpY3N8fHt9LGxhc3RfYXZhaWxhYmxlOmUubGFzdF9hdmFpbGFibGV8fFhyKCksc3RhdHVzOmUuc3RhdHVzfHxudWxsLHRyaWFsOnQudHJpYWx8fCExLG9ubGluZTp0Lm9ubGluZXx8ITF9LGNoYW5uZWxzOnQuY2hhbm5lbHN8fHt9LG92ZXJsYXk6dC5vdmVybGF5fHx7fSxwbHVnaW5zOnQucGx1Z2luc3x8e30sY2hhdDp7Y291bnRyeTp4ci5nZXRPckZhbGxiYWNrKGUuY29udGV4dD8uY291bnRyeSxudWxsKSxsb2NhbGU6YnUuZGV0ZWN0KHQuc2V0dGluZ3MubG9jYWxlP1t0LnNldHRpbmdzLmxvY2FsZV06W10pLGNvbG9yX3RoZW1lOnhyLmdldE9yRmFsbGJhY2sodC5zZXR0aW5ncy5jb2xvcl90aGVtZSwiZGVmYXVsdCIpLGNvbG9yX21vZGU6eHIuZ2V0T3JGYWxsYmFjayh0LnNldHRpbmdzLmNvbG9yX21vZGUsImxpZ2h0IiksbGF5b3V0X3RoZW1lOnhyLmdldE9yRmFsbGJhY2sodC5zZXR0aW5ncy5sYXlvdXRfdGhlbWUsImNvbG9yaXplZCIpLGFsbG93ZWRfcGFnZXM6eHIuZ2V0T3JGYWxsYmFjayh0LnNldHRpbmdzLmFsbG93ZWRfcGFnZXMsW10pLGJsb2NrZWRfcGFnZXM6eHIuZ2V0T3JGYWxsYmFjayh0LnNldHRpbmdzLmJsb2NrZWRfcGFnZXMsW10pLGJsb2NrZWRfbG9jYWxlczp4ci5nZXRPckZhbGxiYWNrKHQuc2V0dGluZ3MuYmxvY2tlZF9sb2NhbGVzLFtdKSx0aWxlOnhyLmdldE9yRmFsbGJhY2sodC5zZXR0aW5ncy50aWxlLCJkZWZhdWx0Iiksd2Vic2l0ZV9sb2dvOnhyLmdldE9yRmFsbGJhY2sodC5zZXR0aW5ncy53ZWJzaXRlX2xvZ28sITEsImJvb2xlYW4iKSxsYXN0X29wZXJhdG9yX2ZhY2U6eHIuZ2V0T3JGYWxsYmFjayh0LnNldHRpbmdzLmxhc3Rfb3BlcmF0b3JfZmFjZSwhMSwiYm9vbGVhbiIpLG9uZ29pbmdfb3BlcmF0b3JfZmFjZTp4ci5nZXRPckZhbGxiYWNrKHQuc2V0dGluZ3Mub25nb2luZ19vcGVyYXRvcl9mYWNlLCExLCJib29sZWFuIiksYWN0aXZpdHlfbWV0cmljczp4ci5nZXRPckZhbGxiYWNrKHQuc2V0dGluZ3MuYWN0aXZpdHlfbWV0cmljcywhMCwiYm9vbGVhbiIpLG9wZXJhdG9yX3ByaXZhY3k6eHIuZ2V0T3JGYWxsYmFjayh0LnNldHRpbmdzLm9wZXJhdG9yX3ByaXZhY3ksITEsImJvb2xlYW4iKSx2aXNpdG9yX3ByaXZhY3k6eHIuZ2V0T3JGYWxsYmFjayh0LnNldHRpbmdzLnZpc2l0b3JfcHJpdmFjeSwhMSwiYm9vbGVhbiIpLGF2YWlsYWJpbGl0eV90b29sdGlwOnhyLmdldE9yRmFsbGJhY2sodC5zZXR0aW5ncy5hdmFpbGFiaWxpdHlfdG9vbHRpcCwhMCwiYm9vbGVhbiIpLGhpZGVfdmFjYXRpb246eHIuZ2V0T3JGYWxsYmFjayh0LnNldHRpbmdzLmhpZGVfdmFjYXRpb24sITEsImJvb2xlYW4iKSxoaWRlX29uX2F3YXk6eHIuZ2V0T3JGYWxsYmFjayh0LnNldHRpbmdzLmhpZGVfb25fYXdheSwhMSwiYm9vbGVhbiIpLGhpZGVfb25fbW9iaWxlOnhyLmdldE9yRmFsbGJhY2sodC5zZXR0aW5ncy5oaWRlX29uX21vYmlsZSwhMSwiYm9vbGVhbiIpLHBvc2l0aW9uX3JldmVyc2U6eHIuZ2V0T3JGYWxsYmFjayh0LnNldHRpbmdzLnBvc2l0aW9uX3JldmVyc2UsITEsImJvb2xlYW4iKSxlbWFpbF92aXNpdG9yczp4ci5nZXRPckZhbGxiYWNrKHQuc2V0dGluZ3MuZW1haWxfdmlzaXRvcnMsITAsImJvb2xlYW4iKSxwaG9uZV92aXNpdG9yczp4ci5nZXRPckZhbGxiYWNrKHQuc2V0dGluZ3MucGhvbmVfdmlzaXRvcnMsITAsImJvb2xlYW4iKSxmb3JjZV9pZGVudGlmeTp4ci5nZXRPckZhbGxiYWNrKHQuc2V0dGluZ3MuZm9yY2VfaWRlbnRpZnksITEsImJvb2xlYW4iKSxpZ25vcmVfcHJpdmFjeTp4ci5nZXRPckZhbGxiYWNrKHQuc2V0dGluZ3MuaWdub3JlX3ByaXZhY3ksITEsImJvb2xlYW4iKSx2aXNpdG9yX2NvbXBvc2U6eHIuZ2V0T3JGYWxsYmFjayh0LnNldHRpbmdzLnZpc2l0b3JfY29tcG9zZSwhMCwiYm9vbGVhbiIpLGZpbGVfdHJhbnNmZXI6eHIuZ2V0T3JGYWxsYmFjayh0LnNldHRpbmdzLmZpbGVfdHJhbnNmZXIsITAsImJvb2xlYW4iKSxhdWRpb19yZWNvcmQ6eHIuZ2V0T3JGYWxsYmFjayh0LnNldHRpbmdzLmF1ZGlvX3JlY29yZCwhMCwiYm9vbGVhbiIpLG1vZGVfaW5pdGlhbDp4ci5nZXRPckZhbGxiYWNrKHQuc2V0dGluZ3MubW9kZV9pbml0aWFsLCJjaGF0IiksaG9tZTp4ci5nZXRPckZhbGxiYWNrKHQuc2V0dGluZ3MuaG9tZSwhMSwiYm9vbGVhbiIpLG92ZXJsYXlfc2VhcmNoOm51bGwhPT10Lm92ZXJsYXk/eHIuZ2V0T3JGYWxsYmFjayh0LnNldHRpbmdzLm92ZXJsYXlfc2VhcmNoLCExLCJib29sZWFuIik6bnVsbCxvdmVybGF5X21vZGU6eHIuZ2V0T3JGYWxsYmFjayh0LnNldHRpbmdzLm92ZXJsYXlfbW9kZSwhMSwiYm9vbGVhbiIpLGhlbHBkZXNrX2xpbms6eHIuZ2V0T3JGYWxsYmFjayh0LnNldHRpbmdzLmhlbHBkZXNrX2xpbmssITAsImJvb2xlYW4iKSxoZWxwZGVza19vbmx5OnhyLmdldE9yRmFsbGJhY2sodC5zZXR0aW5ncy5oZWxwZGVza19vbmx5LCExLCJib29sZWFuIiksaGVscGRlc2tfbmF2aWdhdGU6eHIuZ2V0T3JGYWxsYmFjayh0LnNldHRpbmdzLmhlbHBkZXNrX25hdmlnYXRlLCJmcmVxdWVudCIpLHN0YXR1c19oZWFsdGhfZGVhZDp4ci5nZXRPckZhbGxiYWNrKHQuc2V0dGluZ3Muc3RhdHVzX2hlYWx0aF9kZWFkLCEwLCJib29sZWFuIiksd2FpdF9nYW1lOnhyLmdldE9yRmFsbGJhY2sodC5zZXR0aW5ncy53YWl0X2dhbWUsITEsImJvb2xlYW4iKSxjb252ZXJzYXRpb25zOnhyLmdldE9yRmFsbGJhY2sodC5zZXR0aW5ncy5jb252ZXJzYXRpb25zLCEwLCJib29sZWFuIiksdGhlbWVfdGV4dDp4ci5nZXRPckZhbGxiYWNrKHQuc2V0dGluZ3MudGV4dF90aGVtZSwiZGVmYXVsdCIpLHRoZW1lX3dlbGNvbWU6eHIuZ2V0T3JGYWxsYmFjayh0LnNldHRpbmdzLndlbGNvbWVfbWVzc2FnZSwiZGVmYXVsdCIpfX07eHIubWVyZ2UodG8scyksUG8ubW9kZT1Qby5lZmZlY3RpdmVJbml0aWFsTW9kZSgpfSx1cGRhdGVDaGF0VmFsdWUodCxlKXtpZih0IGluIHRvLmNoYXQpcmV0dXJuIGUhPT10by5jaGF0W3RdJiYodG8uY2hhdFt0XT1lLCEwKTt0aHJvdyBuZXcgRXJyb3IoYCR7dH0gZG9lcyBub3QgZXhpc3RgKX0sdXBkYXRlT3ZlcmxheVNlYXJjaExvY2FsZSh0LGUpe3RvLm92ZXJsYXkuc2VhcmNofHwodG8ub3ZlcmxheS5zZWFyY2g9e30pLHRvLm92ZXJsYXkuc2VhcmNoW3RdPWV9LHVwZGF0ZVBsdWdpblNldHRpbmdzKHQsZSl7dCYmZSYmInN0cmluZyI9PXR5cGVvZiB0JiYib2JqZWN0Ij09dHlwZW9mIGUmJih0by5wbHVnaW5zfHwodG8ucGx1Z2lucz17fSksdG8ucGx1Z2luc1t0XXx8KHRvLnBsdWdpbnNbdF09e30pLHRvLnBsdWdpbnNbdF0uc2V0dGluZ3M9ZSx0by5wbHVnaW5zPXsuLi50by5wbHVnaW5zfSx0by5Qcih0LGUpKX0sUHIodCxzKXtzd2l0Y2godCl7Y2FzZSJ1cm46Y3Jpc3AuaW06Y3VzdG9taXphdGlvbjowIjpzLmNvbG9yPy5jaGF0Ym94JiZaci5hcHBseVRoZW1lKHRvLmNoYXQ/LmNvbG9yX3RoZW1lfHwiZGVmYXVsdCIpLHMucG9zaXRpb24/LmNoYXRib3gmJlpyLmFwcGx5UG9zaXRpb24oe30pO2JyZWFrO2Nhc2UgTnI6ZSgpLlRyaWdnZXIudXBkYXRlQW5kUmVhcHBseURlZmF1bHRzKHMuZGVmYXVsdHMpfX0senI6KHQsZSk9Pih3aW5kb3cuJG1vY2tfd2Vic2l0ZSYmKGRlbGV0ZSB0LnBsdWdpbnMseHIubWVyZ2UodCx3aW5kb3cuJG1vY2tfd2Vic2l0ZSkpLHdpbmRvdy4kbW9ja19vdmVybGF5JiZ4ci5tZXJnZSh0LHdpbmRvdy4kbW9ja19vdmVybGF5KSx3aW5kb3cuJG1vY2tfaGVscGRlc2smJnhyLm1lcmdlKHQsd2luZG93LiRtb2NrX2hlbHBkZXNrKSx3aW5kb3cuJG1vY2tfc2Vzc2lvbiYmKHhyLm1lcmdlKGUsd2luZG93LiRtb2NrX3Nlc3Npb24pLGUuYWN0aXZlX29wZXJhdG9ycz13aW5kb3cuJG1vY2tfc2Vzc2lvbi5hY3RpdmVfb3BlcmF0b3JzLGUuYWN0aXZlX29wZXJhdG9yc1swXS50aW1lc3RhbXA9ZS5sYXN0X2F2YWlsYWJsZSkse2NvbmZpZ3VyYXRpb246dCxzZXNzaW9uOmV9KX0pO3RvLnNob3dfYnJhbmRpbmc9U2UoKCk9PiEwIT09UW8ucnVudGltZT8uaGlkZV9icmFuZGluZyYmKCF0bz8ucGx1Z2luc1sidXJuOmNyaXNwLmltOmRlYnJhbmRpbmc6MCJdfHwhMD09PXRvLndlYnNpdGU/LnRyaWFsKSk7dmFyIGVvPVsiS2h0bWwiLCJNcyIsIk8iLCJNb3oiLCJXZWJraXQiXSxzbz17bWFjb3M6L15NYWMvLHdpbmRvd3M6L15XaW4vLGxpbnV4Oi9eTGludXgvLGlvczovXig/OmlQaG9uZXxpUG9kfGlQYWQpJC8sYW5kcm9pZDovXkFuZHJvaWQkL30saW89L15bYS16XS8sbm89L25vLyxybz1wZShPYmplY3QuYXNzaWduKHtMcigpe2xldCB0PW51bGwsZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhdWRpbyIpLHM9Qm9vbGVhbihlLmNhblBsYXlUeXBlJiZlLmNhblBsYXlUeXBlKCdhdWRpby9vZ2c7IGNvZGVjcz0idm9yYmlzIicpLnJlcGxhY2Uobm8sIiIpKSxpPUJvb2xlYW4oZS5jYW5QbGF5VHlwZSYmZS5jYW5QbGF5VHlwZSgnYXVkaW8vbXA0OyBjb2RlY3M9Im1wNGEuNDAuMiInKS5yZXBsYWNlKG5vLCIiKSksbj1Cb29sZWFuKGUuY2FuUGxheVR5cGUmJmUuY2FuUGxheVR5cGUoImF1ZGlvL21wZWc7IikucmVwbGFjZShubywiIikpOyEwPT09cz90PSJvZ2EiOiEwPT09aT90PSJtNGEiOiEwPT09biYmKHQ9Im1wMyIpLG51bGwhPT10JiYocm8uaHRtbF9hdWRpb19mb3JtYXQ9dCxyby5oYXNfaHRtbF9hdWRpbz0hMCl9LE1yKCl7bGV0IHQ9bnVsbCxlPXdpbmRvdy5uYXZpZ2F0b3IucGxhdGZvcm18fG51bGw7aWYobnVsbCE9PWUpZm9yKGxldCBzIGluIHNvKWlmKCEwPT09c29bc10udGVzdChlKSl7dD1zO2JyZWFrfW51bGwhPT10JiYocm8ub3BlcmF0aW5nX3N5c3RlbT10KX0sVXIoKXtyby5oYXNfYXVkaW9fcmVjb3JkaW5nPSExLHdpbmRvdy5NZWRpYVJlY29yZGVyJiZ3aW5kb3cuRmlsZSYmbmF2aWdhdG9yLm1lZGlhRGV2aWNlcyYmImZ1bmN0aW9uIj09dHlwZW9mIHdpbmRvdy5NZWRpYVJlY29yZGVyLmlzVHlwZVN1cHBvcnRlZCYmImZ1bmN0aW9uIj09dHlwZW9mIG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcyYmbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCkudGhlbih0PT57Zm9yKGxldCBlPTA7ZTwodD8ubGVuZ3RofHwwKTtlKyspaWYoImF1ZGlvaW5wdXQiPT09dFtlXS5raW5kKXtyby5oYXNfYXVkaW9fcmVjb3JkaW5nPSEwO2JyZWFrfVFvLmZlYXR1cmVzLmF1ZGlvX3JlY29yZGluZz1yby5oYXNfYXVkaW9fcmVjb3JkaW5nfSkuY2F0Y2goKCk9Pnt9KX0scXIoKXtyby5oYXNfc2NyZWVuX3RvdWNoPXJvLlZyKCJvbnRvdWNoc3RhcnQiKXx8bmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzPjA7bGV0IHQ9KCk9Pntyby5oYXNfc2NyZWVuX3RvdWNoPSEwLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0KX07d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHQsITEpfSxOcigpe2xldCB0PSh0PW51bGwpPT57cm8uY29sb3Jfc2NoZW1lX3ByZWZlcmVuY2U9ITA9PT10Py5tYXRjaGVzPyJkYXJrIjoibGlnaHQifSxlPXdpbmRvdy5tYXRjaE1lZGlhP3dpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIik6bnVsbDtudWxsIT09ZSYmKHQoZSksZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHQpKX0sVnI6dD0+Qm9vbGVhbih0IGluIHdpbmRvdyksSHIodCl7bGV0IGU9ITEscz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUsaT1lby5sZW5ndGg7aWYodCBpbiBzKWU9ITA7ZWxzZSBmb3IodD10LnJlcGxhY2UoaW8sdD0+dC50b1VwcGVyQ2FzZSgpKTtpLS07KWlmKGVvW2ldK3QgaW4gcyl7ZT0hMDticmVha31yZXR1cm4gZX19LHtoYXNfY3NzX2FuaW1hdGlvbnM6ITEsaGFzX2F1ZGlvX3JlY29yZGluZzohMSxoYXNfaHRtbF9hdWRpbzohMSxoYXNfc2NyZWVuX3RvdWNoOiExLG9wZXJhdGluZ19zeXN0ZW06bnVsbCxodG1sX2F1ZGlvX2Zvcm1hdDoibXAzIixjb2xvcl9zY2hlbWVfcHJlZmVyZW5jZToibGlnaHQifSkpO3JvLmhhc19jc3NfYW5pbWF0aW9ucz1yby5IcigiYW5pbWF0aW9uIikmJiEwIT09TWUuVEVTVCxyby5VcigpLHJvLnFyKCkscm8uTXIoKSxyby5McigpLHJvLk5yKCk7dmFyIG9vPSJtaW5pbWl6ZWQiLHVvPVllKHtwYW5lT3BlbkhhbmRsZXI6ZnVuY3Rpb24odCl7fSxwYW5lOntpc19vbmdvaW5nOiExLGlzX3dhaXRpbmc6ITEsaXNfb2ZmbGluZTohMSxhbmltYXRlX2VudHJhbmNlOiExLGdlbmVyYWxfZW50aWNlOnt2aXNpYmxlOiExLGlzX2NvbmNlYWxlZDohMSxhbmltYXRlX2Z1bGw6ITEsYW5pbWF0ZV9zaG9ydDohMX0saGVscGRlc2s6e3VybDpudWxsLG9ubHk6ITF9fSx0b29sdGlwczp7bmV3X21lc3NhZ2VzOnt2aXNpYmxlOiExLGFuaW1hdGU6ITB9fX0se2NoZWNrSXNDb25jZWFsZWQoKXshMD09PXRvLmNoYXQ/LmF2YWlsYWJpbGl0eV90b29sdGlwJiYodW8ucGFuZS5nZW5lcmFsX2VudGljZS5pc19jb25jZWFsZWQ9IjEiPT09eXIuU3RvcmFnZS5nZXRTdGFtcExvY2FsKG9vLFtRby53ZWJzaXRlLmlkLCJnZW5lcmFsX2VudGljZSIsImNvbmNlYWwiXSkmJiEwKX0sY2hlY2tIZWxwZGVzaygpeyEwPT09dG8uY2hhdD8uaGVscGRlc2tfbGluayYmdG8uY2hhbm5lbHM/LmhlbHBkZXNrJiZRby5wYWdlX2RvbWFpbiE9PXRvLmNoYW5uZWxzPy5oZWxwZGVzayYmITA9PT15ci5zb2NrZXQuY29ubmVjdGVkJiYodW8ucGFuZS5oZWxwZGVzay51cmw9UG8uZ2VuZXJhdGVDaGFubmVsTGluaygiaGVscGRlc2siKSx1by5wYW5lLmhlbHBkZXNrLm9ubHk9dG8uY2hhdD8uaGVscGRlc2tfb25seSYmITApfSxjb25jZWFsR2VuZXJhbEVudGljZSgpe3VvLnBhbmUuZ2VuZXJhbF9lbnRpY2UuaXNfY29uY2VhbGVkPSEwLHlyLlN0b3JhZ2Uuc2V0U3RhbXBMb2NhbChvbyxbUW8ud2Vic2l0ZS5pZCwiZ2VuZXJhbF9lbnRpY2UiLCJjb25jZWFsIl0sIjEiKX0sc3Bhd25QYW5lKHQscz0hMCxpPSExLG49ITApe2xldCByPVZyLmRvbSh0KTtpZihlKCkuQmFzZS5fY29udGFpbmVyRWwuaW5uZXJIVE1MPSIiLGUoKS5CYXNlLl9jb250YWluZXJFbC5hcHBlbmRDaGlsZChyKSxWci52dWUociksITA9PT1zKXtsZXQgdD10byxlPSEwIT09UW8uaXNfZnVsbF92aWV3JiYhMD09PXQuY2hhdC5hdmFpbGFiaWxpdHlfdG9vbHRpcDshMD09PW4mJnJvLmhhc19jc3NfYW5pbWF0aW9ucz8oITA9PT1pJiYodW8ucGFuZS5hbmltYXRlX2VudHJhbmNlPSEwLHhyLnNldFRpbWVvdXQoKCk9Pnt1by5wYW5lLmFuaW1hdGVfZW50cmFuY2U9ITF9LDFlMykpLGUmJnhyLnNldFRpbWVvdXQoKCk9PntsZXQgdD11by5wYW5lO3VvLnBhbmUuZ2VuZXJhbF9lbnRpY2UudmlzaWJsZT0hMDtsZXQgZT0hMD09PWk/ImFuaW1hdGVfZnVsbCI6ImFuaW1hdGVfc2hvcnQiO3QuZ2VuZXJhbF9lbnRpY2VbZV09ITAseHIuc2V0VGltZW91dCgoKT0+e3QuZ2VuZXJhbF9lbnRpY2VbZV09ITF9LDUwMCl9LDFlMyooITA9PT1pPzI6LjI1KSkpOmUmJih1by5wYW5lLmdlbmVyYWxfZW50aWNlLnZpc2libGU9ITApfX0sb25QYW5lQ2xpY2sodCl7bGV0IHM9dC50YXJnZXQ7aWYocyl7bGV0IHQ9ImNjLTFuenQ4IixpPXMuZ2V0QXR0cmlidXRlKCJkYXRhLXBvcCIpO2lmKCFpKXtsZXQgdD1zLmNsb3Nlc3QoIltkYXRhLXBvcF0iKTt0JiYoaT10LmdldEF0dHJpYnV0ZSgiZGF0YS1wb3AiKXx8bnVsbCl9aWYoITA9PT1zPy5jbGFzc0xpc3QuY29udGFpbnModCkpdW8uY29uY2VhbEdlbmVyYWxFbnRpY2UoKTtlbHNlIHN3aXRjaChpKXtjYXNlIm92ZXJsYXk6b3BlbiI6ZSgpLkFjdGlvbi5kb19vdmVybGF5X29wZW4oKTticmVhaztjYXNlImhlbHBkZXNrOnNlYXJjaCI6ZSgpLkFjdGlvbi5kb19oZWxwZGVza19zZWFyY2goKTticmVhaztjYXNlIm1pbmltaXplZDpvcGVuIjp1by5wYW5lT3BlbkhhbmRsZXIodD0+e2UoKS5DaGF0LmluaXQodCl9KX19fSxwYW5lQXV0aG9yaXplZCh0PSExLHM9ITEsaT0hMCl7bGV0IG49ITEscj0hMTt1by5jaGVja0lzQ29uY2VhbGVkKCksdW8uY2hlY2tIZWxwZGVzaygpLHVvLnNwYXduUGFuZSgnPGRpdiBjbGFzcz0iY2MtbGs0MnUgY2MtMm9iNGogY2MtMXNvZjUgY2MteTdtaHkiPjxkaXYgY2xhc3M9ImNjLTEzd3JvIiB2LWNyaXNwLWFjY2Vzc2liaWxpdHk9Insgcm9sZTogXCdidXR0b25cJyB9IiA6YXJpYS1sYWJlbD0iJHN0b3JlLmNoYXQuaXNfb3BlbmVkID8gJHJlbmRlci5fZShcJ21pbmltaXplZFwnLCBcJ3Rvb2x0aXBfYnV0dG9uX2Nsb3NlX2hpbnRcJykgOiAkcmVuZGVyLl9lKFwnbWluaW1pemVkXCcsIFwndG9vbHRpcF9idXR0b25fb3Blbl9oaW50XCcpIiBAY2xpY2sucHJldmVudC5zdG9wPSIkc3RvcmUubWluaW1pemVkLm9uUGFuZUNsaWNrIiA6ZGF0YS1wYW5lLWFuaW1hdGUtZW50cmFuY2U9IiRzdG9yZS5taW5pbWl6ZWQucGFuZT8uYW5pbWF0ZV9lbnRyYW5jZSIgOmRhdGEtcG9wPSIkc3RvcmUud2Vic2l0ZT8uY2hhdD8ub3ZlcmxheV9zZWFyY2ggJmFtcDsmYW1wOyAkc3RvcmUud2Vic2l0ZT8uY2hhdD8ub3ZlcmxheV9tb2RlID8gXCdvdmVybGF5Om9wZW5cJyA6ICgkc3RvcmUubWluaW1pemVkLnBhbmU/LmhlbHBkZXNrPy5vbmx5ID8gXCdoZWxwZGVzazpzZWFyY2hcJyA6IFwnbWluaW1pemVkOm9wZW5cJykiIGRhdGEtbWF4aW1pemVkPSJmYWxzZSIgZGF0YS1pcy1mYWlsdXJlPSJmYWxzZSI+PHNwYW4gY2xhc3M9ImNjLTExcDRwIj48c3BhbiBjbGFzcz0iY2MtbDR3emQiIHYtaWY9IiRzdG9yZS5taW5pbWl6ZWQucGFuZT8uZ2VuZXJhbF9lbnRpY2U/LnZpc2libGUiIDpjbGFzcz0ieyBcJ2NjLWNsYzVnXCc6ICRzdG9yZS5taW5pbWl6ZWQucGFuZT8uZ2VuZXJhbF9lbnRpY2U/LmFuaW1hdGVfZnVsbCwgXCdjYy16djdjalwnOiAkc3RvcmUubWluaW1pemVkLnBhbmU/LmdlbmVyYWxfZW50aWNlPy5hbmltYXRlX3Nob3J0IH0iIDpkYXRhLXdpdGgtaGVscGRlc2s9IiRzdG9yZS5taW5pbWl6ZWQucGFuZT8uaGVscGRlc2s/LnVybCAhPT0gbnVsbCIgOmRhdGEtaXMtY29uY2VhbGVkPSIkc3RvcmUubWluaW1pemVkLnBhbmU/LmdlbmVyYWxfZW50aWNlPy5pc19jb25jZWFsZWQiIGRhdGEtaWQ9ImdlbmVyYWxfZW50aWNlIj48c3BhbiBjbGFzcz0iY2MtNTRweGUiPjxzcGFuIGNsYXNzPSJjYy0xZ2JydyBjYy0xaWNyaiI+PHNwYW4gY2xhc3M9ImNjLTFxNDlkIiBhcmlhLWxpdmU9InBvbGl0ZSIgcm9sZT0iZGlhbG9nIj48c3BhbiBjbGFzcz0iY2MtMTN0cjkiPjxzcGFuIGNsYXNzPSJjYy0xbnp0OCBjYy0xaHVleSIgdi1jcmlzcC1hY2Nlc3NpYmlsaXR5PSJ7IHJvbGU6IFwnYnV0dG9uXCcgfSIgOmFyaWEtbGFiZWw9IiRyZW5kZXIuX2UoXCdtaW5pbWl6ZWRcJywgXCd0b29sdGlwX2J1dHRvbl9jbG9zZV9oaW50XCcpIj48L3NwYW4+PHNwYW4gY2xhc3M9ImNjLTF3M29zIj48c3BhbiBjbGFzcz0iY2MtMWsxbDMiPjxzcGFuIGNsYXNzPSJjYy0xOXJqOSBjYy0xMGNxcyIgdi1pZj0iKCRzdG9yZS53ZWJzaXRlPy5jaGF0Py5vdmVybGF5X3NlYXJjaCAmYW1wOyZhbXA7ICRzdG9yZS53ZWJzaXRlPy5jaGF0Py5vdmVybGF5X21vZGUpIHx8ICRzdG9yZS5taW5pbWl6ZWQucGFuZT8uaGVscGRlc2s/Lm9ubHkiPnt7ICRyZW5kZXIuX2UoIm1pbmltaXplZCIsICJ0b29sdGlwX2VudGljZV90aXRsZV9zZWFyY2giKSB9fTwvc3Bhbj48c3BhbiBjbGFzcz0iY2MtMTlyajkgY2MtMTBjcXMiIHYtZWxzZT57eyAkcmVuZGVyLl9lKCJ0aGVtZV90ZXh0IiwgImRlZmF1bHRfY2hhdCIsIFskc3RvcmUud2Vic2l0ZT8uY2hhdD8udGhlbWVfdGV4dCArICJfY2hhdCJdKSB9fTwvc3Bhbj48c3BhbiBjbGFzcz0iY2MtMXB5bWEiPjxzcGFuIGNsYXNzPSJjYy0xaHdxNyIgdi1mb3I9ImFjdGl2ZV9hdmF0YXIgaW4gJHN0b3JlLmJhc2UuYWN0aXZlX29wZXJhdG9ycyI+PHNwYW4gY2xhc3M9ImNjLWVmOGprIGNjLTFsbDdqIj48c3BhbiBjbGFzcz0iY2MtMXZqZXYgY2MtMWYyejIiIDpzdHlsZT0ieyBiYWNrZ3JvdW5kSW1hZ2U6ICRyZW5kZXIuaW1hZ2VVcmxCYWNrZ3JvdW5kKCRyZW5kZXIuX2EoNjAsIGFjdGl2ZV9hdmF0YXIudHlwZSwgYWN0aXZlX2F2YXRhci5pZGVudGlmaWVyLCBhY3RpdmVfYXZhdGFyLmF2YXRhcikpIH0iPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9ImNjLTFpcHFtIiB2LWlmPSIkc3RvcmUuYXZhaWxhYmlsaXR5Py5hdmFpbGFiaWxpdHkgPT09IFwnb25saW5lXCciIGRhdGEtaWQ9Im9ubGluZSI+e3sgJHJlbmRlci5fZSgibWluaW1pemVkIiwgInRvb2x0aXBfZW50aWNlX3N0YXR1c19vbmxpbmUiKSB9fTwvc3Bhbj48c3BhbiBjbGFzcz0iY2MtMWlwcW0iIHYtZWxzZSBkYXRhLWlkPSJhd2F5Ij57eyAkcmVuZGVyLl9lKCJtaW5pbWl6ZWQiLCAidG9vbHRpcF9lbnRpY2Vfc3RhdHVzX2F3YXkiKSB9fTwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2MtZXo3eWoiPjxkaXYgY2xhc3M9ImNjLTE3MGlnIGNjLW5jaDhhIGNjLTFxZWFwIiB2LWlmPSIhKCRzdG9yZS53ZWJzaXRlPy5jaGF0Py5vdmVybGF5X3NlYXJjaCAmYW1wOyZhbXA7ICRzdG9yZS53ZWJzaXRlPy5jaGF0Py5vdmVybGF5X21vZGUpICZhbXA7JmFtcDsgISRzdG9yZS5taW5pbWl6ZWQucGFuZT8uaGVscGRlc2s/Lm9ubHkiIHYtY3Jpc3AtYWNjZXNzaWJpbGl0eT0ieyByb2xlOiBcJ2J1dHRvblwnIH0iIDpkYXRhLXBhcnRpYWwtcGVuZGluZz0iJHN0b3JlLnBhcnRpYWwuYnVuZGxlLnBlbmRpbmcuY2hhdCIgOmFyaWEtbGFiZWw9IiRyZW5kZXIuX2UoXCdtaW5pbWl6ZWRcJywgXCd0b29sdGlwX2VudGljZV9hY3Rpb25fY2hhdFwnLCBbJHN0b3JlLndlYnNpdGU/LndlYnNpdGU/Lm5hbWVdKSIgZGF0YS10eXBlPSJjaGF0Ij48c3BhbiBjbGFzcz0iY2MtZjd4d28iPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2MtaTIydGQgY2MtMTBjcXMiPnt7ICRyZW5kZXIuX2UoIm1pbmltaXplZCIsICJ0b29sdGlwX2VudGljZV9hY3Rpb25fY2hhdCIsIFskc3RvcmUud2Vic2l0ZT8ud2Vic2l0ZT8ubmFtZV0pIH19PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImNjLTE3MGlnIGNjLW5jaDhhIiB2LWlmPSIkc3RvcmUud2Vic2l0ZT8uY2hhdD8ub3ZlcmxheV9zZWFyY2ggfHwgKCRzdG9yZS5taW5pbWl6ZWQucGFuZT8uaGVscGRlc2s/LnVybCAmYW1wOyZhbXA7ICEkc3RvcmUubWluaW1pemVkLnBhbmU/LmlzX29mZmxpbmUpIiA6ZGF0YS1wb3A9IiRzdG9yZS53ZWJzaXRlPy5jaGF0Py5vdmVybGF5X3NlYXJjaCAmYW1wOyZhbXA7ICghJHN0b3JlLm1pbmltaXplZC5wYW5lPy5oZWxwZGVzaz8ub25seSB8fCAkc3RvcmUud2Vic2l0ZT8uY2hhdD8ub3ZlcmxheV9tb2RlKSA/IFwnb3ZlcmxheTpvcGVuXCcgOiBcJ2hlbHBkZXNrOnNlYXJjaFwnIiB2LWNyaXNwLWFjY2Vzc2liaWxpdHk9Insgcm9sZTogXCdidXR0b25cJyB9IiA6ZGF0YS1wYXJ0aWFsLXBlbmRpbmc9IiRzdG9yZS53ZWJzaXRlPy5jaGF0Py5vdmVybGF5X3NlYXJjaCAmYW1wOyZhbXA7ICghJHN0b3JlLm1pbmltaXplZC5wYW5lPy5oZWxwZGVzaz8ub25seSB8fCAkc3RvcmUud2Vic2l0ZT8uY2hhdD8ub3ZlcmxheV9tb2RlKSA/ICRzdG9yZS5wYXJ0aWFsPy5idW5kbGU/LnBlbmRpbmc/Lm92ZXJsYXkgOiAkc3RvcmUucGFydGlhbD8uYnVuZGxlPy5wZW5kaW5nPy5jaGF0IiA6YXJpYS1sYWJlbD0iJHJlbmRlci5fZShcJ21pbmltaXplZFwnLCBcJ3Rvb2x0aXBfZW50aWNlX2FjdGlvbl9zZWFyY2hcJykiIGRhdGEtdHlwZT0ic2VhcmNoIj48c3BhbiBjbGFzcz0iY2MtZjd4d28iPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2MtaTIydGQgY2MtMTBjcXMiPnt7ICRyZW5kZXIuX2UoIm1pbmltaXplZCIsICJ0b29sdGlwX2VudGljZV9hY3Rpb25fc2VhcmNoIikgfX08L3NwYW4+PC9kaXY+PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2MtMWdma3oiIGRhdGEtaXMtb25nb2luZz0iZmFsc2UiPjxzcGFuIGNsYXNzPSJjYy0yZ2s2byIgOmRhdGEtcHJlZmVyLXNlYXJjaD0iJHN0b3JlLndlYnNpdGU/LmNoYXQ/Lm92ZXJsYXlfc2VhcmNoICZhbXA7JmFtcDsgJHN0b3JlLndlYnNpdGU/LmNoYXQ/Lm92ZXJsYXlfbW9kZSIgZGF0YS1pZD0iY2hhdF9jbG9zZWQiPjxzcGFuIGNsYXNzPSJjYy0xb3VyZyIgdi1pZj0iJHN0b3JlLm1pbmltaXplZC5wYW5lPy5pc193YWl0aW5nIj48c3BhbiBjbGFzcz0iY2MtejFzcjkgY2MtMWx3a3oiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9ImNjLTFlcjBxIGNjLW5jaDhhIiB2LWVsc2UgOmRhdGEtcGFydGlhbC1wZW5kaW5nPSIkc3RvcmUud2Vic2l0ZT8uY2hhdD8ub3ZlcmxheV9zZWFyY2ggJmFtcDsmYW1wOyAkc3RvcmUud2Vic2l0ZT8uY2hhdD8ub3ZlcmxheV9tb2RlID8gJHN0b3JlLnBhcnRpYWw/LmJ1bmRsZT8ucGVuZGluZz8ub3ZlcmxheSA6ICRzdG9yZS5wYXJ0aWFsPy5idW5kbGU/LnBlbmRpbmc/LmNoYXQiPjxzcGFuIGNsYXNzPSJjYy1hODdsciBjYy0xbGw3aiIgdi1pZj0iJHN0b3JlLndlYnNpdGU/LmNoYXQ/LndlYnNpdGVfbG9nbyI+PHNwYW4gY2xhc3M9ImNjLTF4OGl3IGNjLTFmMnoyIiA6c3R5bGU9InsgYmFja2dyb3VuZEltYWdlOiAkcmVuZGVyLmltYWdlVXJsQmFja2dyb3VuZCgkcmVuZGVyLl9hKDEyMCwgXCd3ZWJzaXRlXCcsICRzdG9yZS5iYXNlLndlYnNpdGU/LmlkKSkgfSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2MtYTg3bHIgY2MtMWxsN2oiIHYtZWxzZS1pZj0iJHN0b3JlLndlYnNpdGU/LmNoYXQ/Lmxhc3Rfb3BlcmF0b3JfZmFjZSAmYW1wOyZhbXA7ICRzdG9yZS5iYXNlLmFjdGl2ZV9vcGVyYXRvcnM/Lmxlbmd0aCAmZ3Q7IDAiPjxzcGFuIGNsYXNzPSJjYy0xeDhpdyBjYy0xZjJ6MiIgOnN0eWxlPSJ7IGJhY2tncm91bmRJbWFnZTogJHJlbmRlci5pbWFnZVVybEJhY2tncm91bmQoJHJlbmRlci5fYSgxMjAsICRzdG9yZS5iYXNlLmFjdGl2ZV9vcGVyYXRvcnNbMF0/LnR5cGUsICRzdG9yZS5iYXNlLmFjdGl2ZV9vcGVyYXRvcnNbMF0/LmlkZW50aWZpZXIsICRzdG9yZS5iYXNlLmFjdGl2ZV9vcGVyYXRvcnNbMF0/LmF2YXRhcikpIH0iPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9kaXY+PC9kaXY+JywhMCx0LGkpLHVvLnBhbmVPcGVuSGFuZGxlcj10PT57aWYoITE9PT1uKWlmKG49ITAsITE9PT1zJiYhMCE9PXIpe3VvLnBhbmUuaXNfd2FpdGluZz0hMCxlKCkuRXZlbnQudHJpZ2dlckludGVyYWN0ZWQoITApO2xldCBzPXhyLnNldFRpbWVvdXQoKCk9PntRby5zZXNzaW9uX2lkJiYoYWxlcnQoYnUudGV4dCgiY2hhdCIsIm1pbmltaXplZF9jb25uZWN0X2FsZXJ0X2ZhaWx1cmUiKSkseXIuc29ja2V0Py5kaXNjb25uZWN0KCksdW8ucGFuZS5pc193YWl0aW5nPSExLGUoKS5BY3Rpb24uZG9fY2hhdF9oaWRlKCkpfSwxMmUzKTtlKCkuQnJva2VyLl9mbkluaXRpYWxpemUubWFzdGVyPWU9Pnt4ci5jbGVhclRpbWVvdXQocyksdChlKSxuPSExfSx5ci5zb2NrZXQuY29ubmVjdCgpLHI9ITB9ZWxzZSB0KCksbj0hMSxyPSEwfSxRZS5hcHBseSgpfSxwYW5lVW5hdXRob3JpemVkKHQ9ITEsZT0hMCl7dW8uc3Bhd25QYW5lKCc8ZGl2IGNsYXNzPSJjYy1sazQydSBjYy0yb2I0aiBjYy0xc29mNSBjYy15N21oeSI+PGRpdiBjbGFzcz0iY2MtMTN3cm8iIHYtY3Jpc3AtYWNjZXNzaWJpbGl0eT0ieyByb2xlOiBcJ2J1dHRvblwnIH0iIDphcmlhLWxhYmVsPSIkc3RvcmUuY2hhdC5pc19vcGVuZWQgPyAkcmVuZGVyLl9lKFwnbWluaW1pemVkXCcsIFwndG9vbHRpcF9idXR0b25fY2xvc2VfaGludFwnKSA6ICRyZW5kZXIuX2UoXCdtaW5pbWl6ZWRcJywgXCd0b29sdGlwX2J1dHRvbl9vcGVuX2hpbnRcJykiIEBjbGljay5wcmV2ZW50LnN0b3A9IiRzdG9yZS5taW5pbWl6ZWQub25QYW5lQ2xpY2siIDpkYXRhLXBhbmUtYW5pbWF0ZS1lbnRyYW5jZT0iJHN0b3JlLm1pbmltaXplZC5wYW5lPy5hbmltYXRlX2VudHJhbmNlIiA6ZGF0YS1wb3A9IiRzdG9yZS53ZWJzaXRlPy5jaGF0Py5vdmVybGF5X3NlYXJjaCAmYW1wOyZhbXA7ICRzdG9yZS53ZWJzaXRlPy5jaGF0Py5vdmVybGF5X21vZGUgPyBcJ292ZXJsYXk6b3BlblwnIDogKCRzdG9yZS5taW5pbWl6ZWQucGFuZT8uaGVscGRlc2s/Lm9ubHkgPyBcJ2hlbHBkZXNrOnNlYXJjaFwnIDogXCdtaW5pbWl6ZWQ6b3BlblwnKSIgZGF0YS1tYXhpbWl6ZWQ9ImZhbHNlIiBkYXRhLWlzLWZhaWx1cmU9InRydWUiPjxzcGFuIGNsYXNzPSJjYy0xMXA0cCI+PHNwYW4gY2xhc3M9ImNjLWw0d3pkIiBkYXRhLWlkPSJmYWlsdXJlX25vdGljZSI+PHNwYW4gY2xhc3M9ImNjLTU0cHhlIj48c3BhbiBjbGFzcz0iY2MtMWdicnciPjxzcGFuIGNsYXNzPSJjYy0xdXZ2dSBjYy0xMGNxcyI+e3sgJHJlbmRlci5fZSgibWluaW1pemVkIiwgInVuYXV0aG9yaXplZF9wYW5lIikgfX08L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJjYy0xZ2ZreiBjYy14cHJpaSIgZGF0YS1pcy1vbmdvaW5nPSJmYWxzZSI+PHNwYW4gY2xhc3M9ImNjLTJnazZvIiBkYXRhLWlkPSJpbl9mYWlsdXJlIiBkYXRhLXByZWZlci1zZWFyY2g9ImZhbHNlIj48c3BhbiBjbGFzcz0iY2MtMWVyMHEiPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvZGl2PjwvZGl2PicsITEsdCxlKSx1by5wYW5lT3BlbkhhbmRsZXI9KCk9Pnt9fX0pO3ZhciBsbz1ZZSh7fSx7c3RhdGVzOih0PW51bGwpPT5Fby5zZXNzaW9uKHQpLmFsZXJ0fHx7fSx1cGRhdGUodCxlLHM9bnVsbCl7bGV0IGksbixyLG8sdT1sby5zdGF0ZXMocyk7Im9iamVjdCI9PXR5cGVvZiB0P2k9dDooaT17fSxpW3RdPWUpO2xldCBsPXhyLmNsb25lKHUpO2ZvcihuIGluIGkpaS5oYXNPd25Qcm9wZXJ0eShuKSYmKHI9aVtuXSxvPSExLHZvaWQgMCE9PXVbbl0mJnVbbl09PT1yJiYobz0hMCksImxvY2siPT09dVtuXSYmInVubG9jayIhPT1yJiYobz0hMCksITE9PT1vJiYobFtuXT1yKSk7RW8ucHJvcGFnYXRlKCJhbGVydCIsbCxzKX0saG9vayh0LGUscz1udWxsKXtsZXQgaT1sby5ob29rTWV0aG9kc1tlXTsiZnVuY3Rpb24iPT10eXBlb2YgaSYmZnVuY3Rpb24odCxlLC4uLnMpe3JldHVybiB0LmJpbmQmJi9cW25hdGl2ZSBjb2RlXF0vLnRlc3QodC5iaW5kLnRvU3RyaW5nKCkpP3QuYmluZChlLC4uLnMpOmZ1bmN0aW9uKC4uLmkpe3JldHVybiB0LmFwcGx5KGUsWy4uLnMsLi4uaV0pfX0oaSx0aGlzKSh0LHMpfSxXcih0LGU9bnVsbCl7bG8uR3IodCxlKX0sSnIodCxlPW51bGwpe2xvLkdyKHQsZSl9LEdyKHQsZT1udWxsKXsic2hvdyI9PT10P1hvLmNoZWNrRm9ybUlkZW50aWZ5TG9jayhlKTpYby5jaGVja0Zvcm1JZGVudGlmeVVubG9jayhlKX19KTtsby5ob29rTWV0aG9kcz17d2Fybl9yZXBseTpsby5XcixlbWFpbF9pbnZhbGlkOmxvLkpyfTt2YXIgYW89WWUoe3R5cGU6InNtaWxleSIsaXNfdmlzaWJsZTohMSxoYXNfYW5pbWF0aW9uOiExLGxhc3Rfc2VhcmNoX3F1ZXJ5Om51bGwsc2VsZWN0aW9uOnt9LHNtaWxleTp7aW5wdXQ6IiJ9LGdpZjp7cmVzdWx0czpbXSxpbnB1dDoiIn19LHt0b2dnbGUoKXthby5sYXN0X3NlYXJjaF9xdWVyeT1udWxsLGFvLmlzX3Zpc2libGU9IWFvLmlzX3Zpc2libGUsYW8uaGFzX2FuaW1hdGlvbj0hMCxhby50eXBlPSJzbWlsZXkifSxzaG93KHQpe2FvLnR5cGUhPT10JiYoYW8uaGlkZSgpLGFvLmlzX3Zpc2libGU9ITAsYW8udHlwZT10LCJnaWYiPT09dCYmYW8ubG9hZERhdGFHaWYoKSl9LGhpZGUoKXthby5sYXN0X3NlYXJjaF9xdWVyeT1udWxsLGFvLmlzX3Zpc2libGU9ITEsYW8uaGFzX2FuaW1hdGlvbj0hMSxhby5zbWlsZXkuaW5wdXQ9IiIsYW8uZ2lmLmlucHV0PSIifSxsb2FkRGF0YUdpZih0PSIiKXtpZihhby5sYXN0X3NlYXJjaF9xdWVyeSE9PXQpe2FvLmxhc3Rfc2VhcmNoX3F1ZXJ5PXQseXIuTWVkaWEuZ2V0QW5pbWF0aW9uTGlzdCh0LDEsMTUpLGFvLmdpZi5yZXN1bHRzPVtdO2ZvcihsZXQgdD0wO3Q8MTU7dCsrKWFvLmdpZi5yZXN1bHRzLnB1c2goe2xvYWRpbmc6ITB9KX19LGJhY2t1cFNlbGVjdGlvbih0KXthby5zZWxlY3Rpb249e3N0YXJ0OnQuc2VsZWN0aW9uU3RhcnQsZW5kOnQuc2VsZWN0aW9uRW5kfX19KSxobz17cmVxdWVzdCh0KXtfby51cGRhdGUoImZlZWRiYWNrIix2b2lkIDAsdCl9LHRvZ2dsZSgpe2NvLmlzX3Zpc2libGU9IWNvLmlzX3Zpc2libGUsITAhPT1jby5pc192aXNpYmxlP09yLmZvY3VzT25Gb3JlZ3JvdW5kKCk6YW8uaGlkZSgpfSxoaWRlKCl7Y28uaXNfdmlzaWJsZT0hMX0sc2hvdyh0PW51bGwpe2NvLnNlc3Npb25faWQ9dCxjby5pc192aXNpYmxlPSEwfSxtYXJrQXZhaWxhYmxlKHQ9ITEpe2NvLmlzX2F2YWlsYWJsZT10fX07TWUuVEVTVCYmKHdpbmRvdy4kbWFya0ZlZWRiYWNrQXZhaWxhYmxlPSgpPT57Y28uaXNfYXZhaWxhYmxlPSEwfSk7dmFyIGNvPVllKHtpc192aXNpYmxlOiExLGlzX2F2YWlsYWJsZTohMSxzZXNzaW9uX2lkOm51bGwsc3RhcnM6e2hvdmVyZWQ6MCxzZWxlY3RlZDowfSxjb21tZW50OiIifSxobyksRG89WWUoe2lzX3Zpc2libGU6ITEsaXNfcGVuZGluZzohMSxsYXN0X2Vycm9yOm51bGwsc2Vzc2lvbl9pZDpudWxsLG1ldGhvZDoiIixpZGVudGl0eToiIixhbm5vdGF0aW9uOiIifSx7cmVxdWVzdCh0LGUscyxpKXsibGluayI9PT1lJiZfby51cGRhdGUoImF1dGhlbnRpY2F0ZSIsW2UscyxpXS5qb2luKCIvIiksdCl9LHN1Ym1pdDp0PT4hMCE9PURvLmlzX3BlbmRpbmcmJihEby5pc19wZW5kaW5nPSEwLERvLmxhc3RfZXJyb3I9bnVsbCx5ci5TZXNzaW9uLnNlbmRJZGVudGl0eVZlcmlmeShEby5tZXRob2Qse3Rva2VuOnQsaWRlbnRpdHk6RG8uaWRlbnRpdHkscmVjaXBpZW50OkRvLmFubm90YXRpb259LERvLnNlc3Npb25faWQpLCEwKSxhY2tub3dsZWRnZSh0LGUscyxpLG49bnVsbCl7RG8ubWV0aG9kPT09ZSYmRG8uaWRlbnRpdHk9PT1zJiZEby5hbm5vdGF0aW9uPT09aSYmKERvLmlzX3BlbmRpbmc9ITEsRG8ubGFzdF9lcnJvcj1uLG51bGw9PT1uJiZfby51cGRhdGUoImF1dGhlbnRpY2F0ZSIsITEsdCkpfSxoaWRlKHQ9bnVsbCl7dD09PURvLnNlc3Npb25faWQmJihEby5pc192aXNpYmxlPSExKX0sc2hvdyh0LGUscyxpPW51bGwpe0RvLmlzX3BlbmRpbmc9ITEsRG8ubGFzdF9lcnJvcj1udWxsLERvLmlzX3Zpc2libGU9ITAsRG8uc2Vzc2lvbl9pZD1pLERvLm1ldGhvZD10LERvLmlkZW50aXR5PWUsRG8uYW5ub3RhdGlvbj1zfSxzaG93RnJvbUludGVudCh0LGU9bnVsbCl7bGV0W3MsaSxuXT10LnNwbGl0KCIvIik7cyYmaSYmbiYmRG8uc2hvdyhzLGksbixlKX19KTt2YXIgZm89WyJpZGVudGl0eSIsImF1dGhlbnRpY2F0ZSIsImdhbWUiLCJmZWVkYmFjayJdLHBvPXtzdGF0ZXM6KHQ9bnVsbCk9PkVvLnNlc3Npb24odCkuaW50ZW50fHx7fSx1cGRhdGUodCxlPSJkZWZhdWx0IixzPW51bGwsaT0hMSl7bGV0IG49X28uc3RhdGVzKHMpO2lmKCEwPT09Zm8uaW5jbHVkZXModCkpe2lmKCEwPT09aXx8ITEhPT1uW3RdKXtsZXQgaT14ci5jbG9uZShuKTtlfHwhMT09PWU/aVt0XT1lOmRlbGV0ZSBpW3RdLEVvLnByb3BhZ2F0ZSgiaW50ZW50IixpLHMpfX1lbHNlIFdlLmVycm9yKGBVbmtub3duIGludGVudDogJHt0fWApfSxjbGVhbnVwKHQ9bnVsbCxlPW51bGwpe2xldCBzPV9vLnN0YXRlcyhlKTtmb3IobGV0IGk9MDtpPGZvLmxlbmd0aDtpKyspe2xldCBuPWZvW2ldOyh0fHxzKVtuXXx8X28udG9nZ2xlKG4sbnVsbCxlKX19LHRvZ2dsZSh0LGU9ImRlZmF1bHQiLHM9bnVsbCxpPSEwKXtpZighMD09PWZvLmluY2x1ZGVzKHQpKXtsZXQgbj1fby50b2dnbGVNZXRob2RzW3RdOyJmdW5jdGlvbiI9PXR5cGVvZiBuJiZmdW5jdGlvbih0LGUsLi4ucyl7cmV0dXJuIHQuYmluZCYmL1xbbmF0aXZlIGNvZGVcXS8udGVzdCh0LmJpbmQudG9TdHJpbmcoKSk/dC5iaW5kKGUsLi4ucyk6ZnVuY3Rpb24oLi4uaSl7cmV0dXJuIHQuYXBwbHkoZSxbLi4ucywuLi5pXSl9fShuLHRoaXMpKGUscyxpKX19LEtyKHQ9ImRlZmF1bHQiLGU9bnVsbCxzPSEwKXt0PyJkZWZhdWx0Ij09PXQmJlhvLnNob3dJZGVudGl0eShzLGUpOlhvLmhpZGVJZGVudGl0eShlKX0sWXIodD0iZGVmYXVsdCIsZT1udWxsKXt0P0RvLnNob3dGcm9tSW50ZW50KHQsZSk6RG8uaGlkZShlKX0sWnIodD0iZGVmYXVsdCIsZT1udWxsLHM9ITApe3Q/WG8uc2hvd0dhbWUocyxlKTpYby5oaWRlR2FtZShlKX0sWHIodD0iZGVmYXVsdCIsZT1udWxsLHM9ITApe3N3aXRjaCh0KXtjYXNlImRlZmF1bHQiOlhvLnNob3dGZWVkYmFjayhzLGUpO2JyZWFrO2Nhc2Uic3VibWl0dGVkIjohMD09PXMmJlhvLnNob3dGZWVkYmFja1N1Ym1pdHRlZChzLGUpO2JyZWFrO2RlZmF1bHQ6WG8uaGlkZUZlZWRiYWNrKGUpfWNvLm1hcmtBdmFpbGFibGUoISghdHx8InN1Ym1pdHRlZCI9PT10KSl9fTtNZS5URVNUJiYod2luZG93LiR0cmlnZ2VyR2FtZT0oKT0+e19vLnVwZGF0ZSgiZ2FtZSIpfSk7dmFyIF9vPVllKHt9LHBvKTtfby50b2dnbGVNZXRob2RzPXtpZGVudGl0eTpfby5LcixhdXRoZW50aWNhdGU6X28uWXIsZ2FtZTpfby5acixmZWVkYmFjazpfby5Ycn0sX28uY3VycmVudF9pZGVudGl0eT1TZSgoKT0+X28uc3RhdGVzKCkuaWRlbnRpdHl8fG51bGwpO3ZhciBtbz1ZZSh7b3BlbmVkOiExLGxvYWRlZDohMSx0YXJnZXQ6IiIsdGl0bGU6IiJ9LHtvcGVuKHQsZT0iIixzPXt9KXtzLndlYnNpdGVfaWQ9UW8ud2Vic2l0ZS5pZCxzLnNlc3Npb25faWQ9UG8uZWZmZWN0aXZlU2Vzc2lvbklkKCk7bGV0IGk9eHIuaW5zZXJ0TGlua1F1ZXJ5VmFsdWVzKHQscyk7ITA9PT1tby5vcGVuZWQmJm1vLnRhcmdldCE9PWkmJm1vLmNsb3NlKCksITE9PT1tby5vcGVuZWQmJihtby5sb2FkZWQ9ITEsbW8udGFyZ2V0PWksbW8udGl0bGU9ZXx8IiIsbW8ub3BlbmVkPSEwKX0sY2xvc2UoKXshMD09PW1vLm9wZW5lZCYmKG1vLm9wZW5lZD0hMSxtby50YXJnZXQ9IiIsbW8udGl0bGU9IiIsbW8ubG9hZGVkPSExKX19KSxnbz1ZZSh7bG9hZGVkOiExLHZpc2libGU6ITF9LHtzdGFydCgpe2dvLnZpc2libGU9ITAsZ28ubG9hZGVkPSExfSxzdG9wKCl7Z28udmlzaWJsZT0hMX19KTtmdW5jdGlvbiBGbyh0LGUsLi4ucyl7cmV0dXJuIHQuYmluZCYmL1xbbmF0aXZlIGNvZGVcXS8udGVzdCh0LmJpbmQudG9TdHJpbmcoKSk/dC5iaW5kKGUsLi4ucyk6ZnVuY3Rpb24oLi4uaSl7cmV0dXJuIHQuYXBwbHkoZSxbLi4ucywuLi5pXSl9fXZhciB3bz1bImludGVudCJdLHZvPVtbInNob3ciLCJ1bmxvY2siXSxbInVubG9jayIsInNob3ciXSxbImhpZGUiLCJsb2NrIl0sWyJsb2NrIiwiaGlkZSJdLFsibG9jayIsInNob3ciXV0seW89e2RlZmF1bHRTdGF0ZXM6KCk9Pih7Y29udmVyc2F0aW9uOiJkZWZhdWx0Iix0cmlnZ2VyOmUoKS5UcmlnZ2VyLl9wcm9jZXNzZWQsdGV4dGFyZWE6IiIsbWF4aW1pemVkOiEwLGV4cGFuZGVkOiExLGFsZXJ0Ont9LGludGVudDp7fSxvcGVyYXRvcjp7fX0pLHNlc3Npb246KHQ9bnVsbCk9PkVvLlFyKHQpLnNlc3Npb24scmVjZWl2ZSh0LGU9bnVsbCxzPSExKXtsZXQgaSxuPUVvLlFyKGUpLHI9W107Zm9yKGxldCBvIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShvKSYmKHhyLmlzRXF1YWwodFtvXSxuLnNlc3Npb25bb10pfHwoci5wdXNoKG8pLG4uc2Vzc2lvbltvXT10W29dLCExPT09cyYmdm9pZCAwIT09bi5wZW5kaW5nW29dJiZkZWxldGUgbi5wZW5kaW5nW29dKSk7Zm9yKGxldCBvPTA7bzxyLmxlbmd0aDtvKyspaT1yW29dLEZvKEVvLnJlZ2lzdGVyW2ldLHRoaXMpKG4uc2Vzc2lvbltpXSxlKX0scHJvcGFnYXRlKHQsZSxzPW51bGwsaT0hMSxuPSExLHI9bnVsbCxvPW51bGwpe2xldCB1PUVvLlFyKHMpO2lmKCEwIT09aSYmeHIuaXNFcXVhbCh1LnNlc3Npb25bdF0sZSkpImZ1bmN0aW9uIj09dHlwZW9mIHImJnIoITEpO2Vsc2V7dS5wZW5kaW5nW3RdPWUsbnVsbCE9PXUucGVuZGluZ1RpbWVvdXQmJih4ci5jbGVhclRpbWVvdXQodS5wZW5kaW5nVGltZW91dCksdS5wZW5kaW5nVGltZW91dD1udWxsKTtsZXQgaT14ci5jbG9uZSh1LnNlc3Npb24pO2lbdF09ZSxFby5yZWNlaXZlKGkscywhMCksdS5wZW5kaW5nVGltZW91dD14ci5zZXRUaW1lb3V0KCgpPT57aWYoeHIuaXNFbXB0eSh1LnBlbmRpbmcpKSJmdW5jdGlvbiI9PXR5cGVvZiByJiZyKCExKTtlbHNle2xldCB0PXhyLmNsb25lKHUucGVuZGluZyk7dS5wZW5kaW5nPXt9LHUucGVuZGluZ1RpbWVvdXQ9bnVsbCx5ci5TZXNzaW9uLnNldFN0YXRlKHQscyx0PT57dD8iZnVuY3Rpb24iPT10eXBlb2YgbyYmbygpOiJmdW5jdGlvbiI9PXR5cGVvZiByJiZyKCEwKX0pfX0sITA9PT1uPzA6MjUwKX19LHJlc3RvcmUodCxlPW51bGwpe2xldCBzPUVvLlFyKGUpOyEwPT09UW8uaXNfZnVsbF92aWV3JiYhMCE9PVFvLnJ1bnRpbWU/LmxvY2tfbWF4aW1pemVkJiYodC5tYXhpbWl6ZWQ9ITEpO2xldCBpPUVvLmRlZmF1bHRTdGF0ZXMoKTtmb3IobGV0IG4gaW4gaSl2b2lkIDA9PT10W25dJiYodFtuXT1pW25dKTtzLmlzUmVzdG9yZWQ9ITAscy5zZXNzaW9uPXQscy5yZXN0b3JlZFN0YXRlPXhyLmtleXModCl9LHJldHJpZ2dlcih0LGU9bnVsbCl7bGV0IHM9RW8uZGVmYXVsdFN0YXRlcygpO0VvLmVvKHQsc1t0XSxlKX0saW5pdGlhbGl6ZSh0PW51bGwsZT13byl7bGV0IHM9RW8uZGVmYXVsdFN0YXRlcygpO2ZvcihsZXQgaSBpbiBzKXMuaGFzT3duUHJvcGVydHkoaSkmJkVvLmVvKGksc1tpXSx0LGUuaW5jbHVkZXMoaSkpfSxlbyh0LGUscz1udWxsLGk9ITEpe2xldCBuPUVvLlFyKHMpOyJmdW5jdGlvbiI9PXR5cGVvZiBFby5yZWdpc3Rlclt0XSYmKHZvaWQgMD09PW4uc2Vzc2lvblt0XSYmKG4uc2Vzc2lvblt0XT1lKSxGbyhFby5yZWdpc3Rlclt0XSx0aGlzKShuLnNlc3Npb25bdF0scyxpKSl9LHNvKHQsZT1udWxsKXtsZXQgcz1Fby5RcihlKSxpPSExLG49cy5yZXN0b3JlZFN0YXRlLmluZGV4T2YodCk7cmV0dXJuLTEhPT1uJiYocy5yZXN0b3JlZFN0YXRlLnNwbGljZShuLDEpLGk9ITApLGl9LG5vKHQscz1udWxsLGk9ITEpe2lmKCEwPT09aSlyZXR1cm47aWYoRW8uc28oImNvbnZlcnNhdGlvbiIscykscyE9PVFvLnNlc3Npb25faWQpcmV0dXJuO2xldCBuO249ImRlZmF1bHQiPT09dD9Rby5zZXNzaW9uX2lkOnR8fG51bGw7bGV0IHI9UG8uY29udmVyc2F0aW9ucy5hbGxfc2Vzc2lvbl9pZHM7bnVsbCE9PW4mJiExPT09ci5pbmNsdWRlcyhuKSYmKG49bnVsbCkseXIuQ29uZmlnLnNldEN1cnJlbnRTZXNzaW9uQ2hpbGRJZChuKSxQby5jb252ZXJzYXRpb25zLmN1cnJlbnRfc2Vzc2lvbl9pZD1uLG51bGwhPT1uJiYiY2hhdCI9PT1Qby5tb2RlJiYoZSgpLkNoYXQuSW50ZXJmYWNlLmFwcGx5Q2hhdEZvY3VzKCksZSgpLkNoYXQuSW50ZXJmYWNlLnJlcXVlc3REeW5hbWljU2l6aW5nUHJvcGVydGllcygpLE9yLmZvY3VzT25Gb3JlZ3JvdW5kKCksT3Iuc2Nyb2xsVG9MYXN0TWVzc2FnZSgpKX0scm8odCxzPW51bGwsaT0hMSl7aWYoITAhPT1pJiYoRW8uc28oInRyaWdnZXIiLHMpLHM9PT1Rby5zZXNzaW9uX2lkJiZ0Py5sZW5ndGg+MCkpZm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspZSgpLlRyaWdnZXIubWFya1Byb2Nlc3NlZCh0W25dKX0sb28odCxlPW51bGwscz0hMSl7bGV0IGksbixyLG8sdT1Fby5RcihlKTtpZighMCE9PXMpe0VvLnNvKCJhbGVydCIsZSk7Zm9yKGxldCBzIGluIHQpaWYodC5oYXNPd25Qcm9wZXJ0eShzKSl7aWYoaT10W3NdLG49dS5zZXNzaW9uLmFsZXJ0W3NdLHI9ITEsbj09PWkpcj0hMDtlbHNlIGlmKCJ1bmxvY2siIT09aSYmImxvY2siPT09bilyPSEwO2Vsc2UgZm9yKGxldCB0PTA7dDx2by5sZW5ndGg7dCsrKW89dm9bdF0sbj09PW9bMF0mJmk9PT1vWzFdJiYocj0hMCk7aWYoITE9PT1yKXtpZigic2hvdyI9PT1pfHwidW5sb2NrIj09PWkpbG8uaG9vaygic2hvdyIscyxlKTtlbHNle2lmKCJoaWRlIiE9PWkmJiJsb2NrIiE9PWkpcmV0dXJuIHZvaWQgV2UuZXJyb3IoYFVua25vd24gYWN0aW9uOiAke2l9YCk7bG8uaG9vaygiaGlkZSIscyxlKX11LnNlc3Npb24uYWxlcnRbc109aSxPci5mb2N1c09uRm9yZWdyb3VuZCgpfWVsc2UgdS5zZXNzaW9uLmFsZXJ0W3NdPWl9fX0sdW8odCxlPW51bGwscz0hMSl7aWYoRW8uUXIoZSkuc2Vzc2lvbi5pbnRlbnQ9dCwhMD09PXMpcmV0dXJuO2xldCBpPUVvLnNvKCJpbnRlbnQiLGUpO2ZvcihsZXQgbiBpbiB0KV9vLnRvZ2dsZShuLHRbbl0sZSwhaSk7X28uY2xlYW51cCh0LGUpfSxsbyh0LHM9bnVsbCxpPSExKXtsZXQgbixyLG8sdSxsLGEsaD1Fby5RcihzKTtpZighMD09PWkpcmV0dXJuO0VvLnNvKCJvcGVyYXRvciIscyk7bGV0IGM9dHx8e307aC5zZXNzaW9uLm9wZXJhdG9yPWMseHIuaXNFbXB0eShjKT8obj0iaW5pdGlhbCIsbz0id2Vic2l0ZSIsdT1Rby53ZWJzaXRlPy5pZCk6KG49Im9uZ29pbmciLG89dC50eXBlfHwib3BlcmF0b3IiLHU9dC51c2VyX2lkLGw9dC5hdmF0YXIscj0id2Vic2l0ZSI9PT10LnR5cGU/dC5uaWNrbmFtZTpUaS5uYW1lKCkucGFyc2VfZmlyc3RfbmFtZSh0Lm5pY2tuYW1lKSksdG8ucGx1Z2lucz8uWyJ1cm46Y3Jpc3AuaW06aHVnbzowIl0/LnNldHRpbmdzPy5hZ2VudF9lbmFibGVkJiYhdC51c2VyX2lkJiYobj0iYWdlbnQiKSwobHx8dSkmJihhPXpyLnVybCgyNDAsbyx1LGwpKSxhJiYoIm9uZ29pbmciPT09biYmKFBvLmNoYW5nZVNlc3Npb25PbmdvaW5nT3BlcmF0b3Ioe3R5cGU6byxuYW1lOnIsdXNlcl9pZDp1LHVybDphfSxzKSwhMD09PXRvLmNoYXQ/Lm9uZ29pbmdfb3BlcmF0b3JfZmFjZSYmKHVvLnBhbmUuaXNfb25nb2luZz0hMCkpLFBvLmNoYW5nZVNlc3Npb25TdGF0dXNNYXJrZXIobixzKSksZSgpLkNoYXQuSW50ZXJmYWNlLnJlcXVlc3REeW5hbWljU2l6aW5nUHJvcGVydGllcyghMCl9LGFvKHQscz1udWxsLGk9ITEpe2lmKCEwPT09aSlyZXR1cm47bGV0IG49RW8uc28oIm1heGltaXplZCIscyk7aWYocyE9PVFvLnNlc3Npb25faWQpcmV0dXJuO2xldCByPSEwIT09biYmITA7ITA9PT1Rby5ydW50aW1lPy5sb2NrX21heGltaXplZCYmKHQ9ITApLCExPT09dD8oZSgpLkNoYXQuSW50ZXJmYWNlLnRvZ2dsZVZpc2liaWxpdHkoInBhbmUiLHIpLE9yLmJsdXJGcm9tRm9yZWdyb3VuZCgpLGUoKS5DaGF0LlZpZXdwb3J0LnVuYWRhcHQoKSxhby5oaWRlKCksY28uaGlkZSgpLFBvLnRvZ2dsZUNoYW5uZWxEcm9wZG93bighMSksbW8uY2xvc2UoKSxnby5zdG9wKCksZSgpLkFjdGlvbi5ldmVudCgiY2hhdDpjbG9zZWQiKSk6KGUoKS5DaGF0LkludGVyZmFjZS50b2dnbGVWaXNpYmlsaXR5KCJjaGF0IixyKSxPci5mb2N1c09uRm9yZWdyb3VuZCgpLGUoKS5DaGF0LlZpZXdwb3J0LmFkYXB0KCksT3IuY2hlY2tDbGVhcmFuY2UoKSxlKCkuQWN0aW9uLmV2ZW50KCJjaGF0Om9wZW5lZCIpKX0saG8odCxzPW51bGwsaT0hMSl7ITAhPT1pJiYoRW8uc28oImV4cGFuZGVkIixzKSxzPT09UW8uc2Vzc2lvbl9pZCYmKFBvLmlzX2V4cGFuZGVkPSEwPT09dCxlKCkuQ2hhdC5JbnRlcmZhY2UucmVxdWVzdER5bmFtaWNTaXppbmdQcm9wZXJ0aWVzKCksT3IuZm9jdXNPbkZvcmVncm91bmQoKSkpfSxjbyh0LHM9bnVsbCxpPSExKXshMCE9PWkmJihFby5zbygidGV4dGFyZWEiLHMpLHM9PT1Rby5zZXNzaW9uX2lkJiYoUG8ubWVzc2FnZV9maWVsZF92YWx1ZT10LGUoKS5BY3Rpb24uc2V0X21lc3NhZ2VfdGV4dCh0KSkpfSxRcjoodD1udWxsKT0+WmUodD1Qby5lZmZlY3RpdmVTZXNzaW9uSWQodCl8fCJkZWZhdWx0IixibyxFby5Ebyl9LGJvPXtpc1Jlc3RvcmVkOiExLHNlc3Npb246e30scGVuZGluZzp7fSxwZW5kaW5nVGltZW91dDpudWxsLHJlc3RvcmVkU3RhdGU6W119LEVvPVllKHtEbzp7fX0seW8pO1hlKCgpPT57RW8uRG89e319KSxFby5yZWdpc3Rlcj17Y29udmVyc2F0aW9uOkVvLm5vLHRyaWdnZXI6RW8ucm8sYWxlcnQ6RW8ub28saW50ZW50OkVvLnVvLG9wZXJhdG9yOkVvLmxvLG1heGltaXplZDpFby5hbyxleHBhbmRlZDpFby5obyx0ZXh0YXJlYTpFby5jb307dmFyIENvPW5ldyBjbGFzcyBleHRlbmRzIFJye2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdWJzY3JpYmUodCxlKXtzdXBlci5zdWJzY3JpYmUodCxlKX11bnN1YnNjcmliZSh0LGUpe3N1cGVyLnVuc3Vic2NyaWJlKHQsZSl9aGFuZGxlQXV0b2NvbXBsZXRlKHQ9W10pe3N1cGVyLmVtaXQoImhhbmRsZS1hdXRvY29tcGxldGUiLHQpfX0sa289WyJob21lIiwiaGVscGRlc2siXSwkbz1ZZSh7Zm86bnVsbCxwbzpudWxsLGFjdGl2ZVNlYXJjaFF1ZXJ5OiIiLHNlYXJjaDp7aW5wdXQ6IiIsdXJsOiIiLGVudGl0eTpudWxsLHJlc3VsdHM6W10sYWN0aXZlOiExLGluaXRpYWxpemVkOiExLGxvYWRpbmc6ITF9LHZpZXdlcjp7dXJsOiIiLGxvYWRlZDohMX0sbmF2aWdhdGlvbjp7Y3VycmVudDp7dGl0bGU6IiIsZGVzY3JpcHRpb246IiIsc3VtbWFyeToiIixmaWx0ZXI6e2NhdGVnb3J5SWQ6bnVsbCxzZWN0aW9uSWQ6bnVsbH0sb3JpZ2luOnttZXRob2Q6bnVsbCxhcmd1bWVudHM6W119fSxwcmV2aW91czpbXX19LHtpc0F2YWlsYWJsZTooKT0+ISFQby5nZW5lcmF0ZUNoYW5uZWxMaW5rKCJoZWxwZGVzayIpLG9wZW4odD0hMSl7bGV0IGU9ITEscz1Qby5nZW5lcmF0ZUNoYW5uZWxMaW5rKCJoZWxwZGVzayIpO3JldHVybiBzJiYoZT0hMCwiaGVscGRlc2siIT09UG8ubW9kZSYmKCRvLnNlYXJjaC5pbnB1dD0iIiwkby5zZWFyY2gudXJsPXMsJG8uc2VhcmNoLnJlc3VsdHM9W10sJG8uc2VhcmNoLmFjdGl2ZT0hMSxQby5tb2RlPSJoZWxwZGVzayIpLCEwPT09dCYmJG8uc2hvd1NlYXJjaCgpKSxlfSxwcm9jZWVkU2VhcmNoKHQ9IiIpe3QhPT0kby5hY3RpdmVTZWFyY2hRdWVyeSYmKCRvLl9vKCksJG8uc2VhcmNoLmxvYWRpbmc9ITAsJG8ucG89eHIuc2V0VGltZW91dCgoKT0+e2lmKCRvLnBvPW51bGwsJG8uYWN0aXZlU2VhcmNoUXVlcnk9dCx0KXskby5hY3F1aXJlUXVlcnlSZXN1bHRzKHQpO2xldCBlPXQuc3Vic3RyaW5nKHQubGFzdEluZGV4T2YoIiAiKSsxKS50cmltKCk7ZSYmZS5sZW5ndGg+PTImJnlyLkhlbHBkZXNrLmdldEFydGljbGVTdWdnZXN0KGUsanIuY29kZSl9ZWxzZSAkby5tbygpfSwxMDApKX0sYWNxdWlyZVF1ZXJ5UmVzdWx0cyh0PSIiKXskby5zZWFyY2gubG9hZGluZz0hMCx5ci5IZWxwZGVzay5nZXRBcnRpY2xlU2VhcmNoKHQsanIuY29kZSl9LHNob3dTZWFyY2godD0xKXtyZXR1cm4gJG8uRm8oKCk9Pnskby53byhudWxsLCgpPT57JG8uc2VhcmNoLmluaXRpYWxpemVkPSExLCRvLnNlYXJjaC5pbnB1dD8kby5hY3F1aXJlUXVlcnlSZXN1bHRzKCRvLnNlYXJjaC5pbnB1dCk6JG8ubW8oKSxlKCkuQ2hhdC5JbnRlcmZhY2UucmVxdWVzdER5bmFtaWNTaXppbmdQcm9wZXJ0aWVzKCl9LHtmbjoic2hvd1NlYXJjaCIsYXJnczphcmd1bWVudHMsZGlyZWN0aW9uOnR9KX0pfSxzaG93Q2F0ZWdvcnkodCxlLHMsaT1udWxsLG49bnVsbCxyPVtdLG89MSl7cmV0dXJuICRvLkZvKCgpPT57JG8ud28ocyxzPT57cy5maWx0ZXIuY2F0ZWdvcnlJZD1lLHMuZGVzY3JpcHRpb249aXx8IiIscy5zdW1tYXJ5PW58fCIiLCRvLnNlYXJjaC5pbml0aWFsaXplZD0hMTtsZXQgbz0xIT09ci5sZW5ndGh8fHJbMF0uc2VjdGlvbl9pZD9udWxsOiIiO251bGwhPT1vPyhzLmZpbHRlci5zZWN0aW9uSWQ9byx5ci5IZWxwZGVzay5nZXRBcnRpY2xlTGlzdCh0LGUsbykpOnlyLkhlbHBkZXNrLmdldENhdGVnb3J5TGlzdCh0KX0se2ZuOiJzaG93Q2F0ZWdvcnkiLGFyZ3M6YXJndW1lbnRzLGRpcmVjdGlvbjpvfSl9KX0sc2hvd1NlY3Rpb24odCxlLHMsaSxuPW51bGwscj1udWxsLG89MSl7cmV0dXJuICRvLkZvKCgpPT57JG8ud28oaSxpPT57aS5maWx0ZXIuY2F0ZWdvcnlJZD1lLGkuZmlsdGVyLnNlY3Rpb25JZD1zLGkuZGVzY3JpcHRpb249bnx8IiIsaS5zdW1tYXJ5PXJ8fCIiLCRvLnNlYXJjaC5pbml0aWFsaXplZD0hMSx5ci5IZWxwZGVzay5nZXRBcnRpY2xlTGlzdCh0LGUscyl9LHtmbjoic2hvd1NlY3Rpb24iLGFyZ3M6YXJndW1lbnRzLGRpcmVjdGlvbjpvfSl9KX0sc2hvd0FydGljbGUodCxzLGk9bnVsbCxuPW51bGwscj1udWxsLG89MSl7cmV0dXJuICRvLkZvKHU9PntsZXQgbD1gJHt1fSR7dH0vYXJ0aWNsZS8ke3N9L2A7JG8udmlld2VyLnVybCE9PWwmJigkby52aWV3ZXIubG9hZGVkPSExLCRvLndvKGl8fGJ1LnRleHQoImNoYXQiLCJjaGF0X2hlbHBkZXNrX3ZpZXdlcl9hcnRpY2xlX3JlYWRlciIpLHQ9Pnt0LnN1bW1hcnk9IiIsdC5kZXNjcmlwdGlvbj1yP2J1LnRleHQoImNoYXQiLCJjaGF0X2hlbHBkZXNrX3ZpZXdlcl91cGRhdGVkIixbbmV3IERhdGUocikudG9Mb2NhbGVEYXRlU3RyaW5nKCldKTpufHwiIiwkby52aWV3ZXIudXJsPWwsITE9PT1Qby5pc19leHBhbmRlZCYmKFBvLndhc19hdXRvX2V4cGFuZGVkLmhlbHBkZXNrX2FydGljbGU9ITAsZSgpLkNoYXQuSW50ZXJmYWNlLnJlcXVlc3REeW5hbWljU2l6aW5nUHJvcGVydGllcygpKX0se2ZuOiJzaG93QXJ0aWNsZSIsYXJnczphcmd1bWVudHMsZGlyZWN0aW9uOm99KSl9KX0saGFuZGxlQXJ0aWNsZXModD1bXSxlPXt9LHM9ITEpeyEwPT09a28uaW5jbHVkZXMoUG8ubW9kZSkmJihNZS5URVNUJiZ3aW5kb3cuJG1vY2tfaGVscGRlc2s/LnNlYXJjaD8ucmVzdWx0cyYmKHQ9d2luZG93LiRtb2NrX2hlbHBkZXNrLnNlYXJjaC5yZXN1bHRzKSwkby52bygiYXJ0aWNsZXMiLHQscyksbnVsbCE9PSRvLmZvJiZ4ci5jbGVhclRpbWVvdXQoJG8uZm8pLGUucXVlcnkmJigkby5mbz14ci5zZXRUaW1lb3V0KCgpPT57JG8uZm89bnVsbDtsZXQgcz0oZS5xdWVyeXx8IiIpLnRyaW0oKSxpPWUubG9jYWxlfHxudWxsO3RbMF0mJnRbMF0ubG9jYWxlJiYoaT10WzBdLmxvY2FsZSksaSYmcyYmeXIuSGVscGRlc2sucmVwb3J0QXJ0aWNsZVNlYXJjaChpLHMpfSwxZTMpKSl9LGhhbmRsZUNhdGVnb3JpZXModD1bXSl7ImhlbHBkZXNrIj09PVBvLm1vZGUmJigwPT09dC5sZW5ndGg/KHRvLmNoYXQuaGVscGRlc2tfbmF2aWdhdGU9ImZyZXF1ZW50Iiwkby5tbygpKTokby52bygiY2F0ZWdvcmllcyIsdCkpfSxoYW5kbGVBdXRvY29tcGxldGUodD1bXSl7ImhlbHBkZXNrIj09PVBvLm1vZGUmJkNvLmhhbmRsZUF1dG9jb21wbGV0ZSh0KX0sZXh0cmFjdEFydGljbGVGcm9tVXJsKHQpe2xldCBlPXhyLmFjcXVpcmVDaGFubmVsVXJsUmVnZXgoImhlbHBkZXNrIiwiYXJ0aWNsZSIsIihbXi9dKykvYXJ0aWNsZS8oW14vXSspLy4qIik7aWYobnVsbCE9PWUpe2xldCBzPXQubWF0Y2goZSk7aWYocz8uWzFdJiZzPy5bMl0pcmV0dXJue2xvY2FsZTpzPy5bMV0sc2x1ZzpzPy5bMl19fXJldHVybiBudWxsfSxtbygpeyRvLnNlYXJjaC5sb2FkaW5nPSEwO2xldCB0PXRvLmNoYXQuaGVscGRlc2tfbmF2aWdhdGU7c3dpdGNoKHQpe2Nhc2UiZGVlcCI6eXIuSGVscGRlc2suZ2V0Q2F0ZWdvcnlMaXN0KGpyLmNvZGUpO2JyZWFrO2Nhc2UiZnJlcXVlbnQiOiRvLmFjcXVpcmVRdWVyeVJlc3VsdHMoKTticmVhaztkZWZhdWx0OnRocm93ICRvLnNlYXJjaC5sb2FkaW5nPSExLG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgaGVscGRlc2sgdmlldyBtb2RlOiAke3R9YCl9fSxfbygpe251bGwhPT0kby5wbyYmKHhyLmNsZWFyVGltZW91dCgkby5wbyksJG8ucG89bnVsbCksbnVsbCE9PSRvLmZvJiYoeHIuY2xlYXJUaW1lb3V0KCRvLmZvKSwkby5mbz1udWxsKX0sdm8odCxlLHM9ITEpeyRvLnNlYXJjaC5hY3RpdmU9cywkby5zZWFyY2guZW50aXR5PXQsJG8uc2VhcmNoLnJlc3VsdHM9ZSwkby5zZWFyY2guaW5pdGlhbGl6ZWQ9ITAsJG8uc2VhcmNoLmxvYWRpbmc9ITF9LEZvKHQpe2xldCBlPSExLHM9UG8uZ2VuZXJhdGVDaGFubmVsTGluaygiaGVscGRlc2siKTtyZXR1cm4gcyYmKGU9ITAsdChzKSksZX0sd28odCxlLHtmbjpzLGFyZ3M6aT1bXSxkaXJlY3Rpb246bj0xfSl7bGV0IHI9JG8ubmF2aWdhdGlvbi5jdXJyZW50O24+MCYmKG51bGw9PT10PyRvLm5hdmlnYXRpb24ucHJldmlvdXM9W106ci5vcmlnaW4ubWV0aG9kJiYkby5uYXZpZ2F0aW9uLnByZXZpb3VzLnB1c2goeHIuY2xvbmUocikpKSxyLnRpdGxlPXR8fCIiLHIuZGVzY3JpcHRpb249IiIsci5zdW1tYXJ5PSIiLHIuZmlsdGVyLmNhdGVnb3J5SWQ9bnVsbCxyLmZpbHRlci5zZWN0aW9uSWQ9bnVsbCwkby52aWV3ZXIudXJsPSIiLGUociksci5vcmlnaW4ubWV0aG9kPXMsci5vcmlnaW4uYXJndW1lbnRzPUFycmF5LmZyb20oaSl9fSk7JG8uc2V0dGluZ3Nfc2VhcmNoPVNlKCgpPT4hKCIiPT09dG8ud2Vic2l0ZS5kb21haW58fCF0by5jaGF0LmhlbHBkZXNrX2xpbmt8fCF0by5jaGFubmVscy5oZWxwZGVzaykpLCRvLnNldHRpbmdzX29ubHk9U2UoKCk9PiRvLnNldHRpbmdzX3NlYXJjaCYmdG8uY2hhdC5oZWxwZGVza19vbmx5KTt2YXIgQW89ZnVuY3Rpb24oKXtjb25zdCB0PSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKS5yZWxMaXN0O3JldHVybiB0JiZ0LnN1cHBvcnRzJiZ0LnN1cHBvcnRzKCJtb2R1bGVwcmVsb2FkIik/Im1vZHVsZXByZWxvYWQiOiJwcmVsb2FkIn0oKSxCbz17fSx4bz1mdW5jdGlvbih0LGUscyl7bGV0IGk9UHJvbWlzZS5yZXNvbHZlKCk7aWYoZSYmZS5sZW5ndGg+MCl7Y29uc3QgdD1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLHI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigibWV0YVtwcm9wZXJ0eT1jc3Atbm9uY2VdIiksbz1yPy5ub25jZXx8cj8uZ2V0QXR0cmlidXRlKCJub25jZSIpO249ZS5tYXAoZT0+e2lmKChlPWZ1bmN0aW9uKHQpe3JldHVybiJodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy8iK3R9KGUpKWluIEJvKXJldHVybjtCb1tlXT0hMDtjb25zdCBpPWUuZW5kc1dpdGgoIi5jc3MiKSxuPWk/J1tyZWw9InN0eWxlc2hlZXQiXSc6IiI7aWYocylmb3IobGV0IHM9dC5sZW5ndGgtMTtzPj0wO3MtLSl7Y29uc3Qgbj10W3NdO2lmKG4uaHJlZj09PWUmJighaXx8InN0eWxlc2hlZXQiPT09bi5yZWwpKXJldHVybn1lbHNlIGlmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGxpbmtbaHJlZj0iJHtlfSJdJHtufWApKXJldHVybjtjb25zdCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtyZXR1cm4gci5yZWw9aT8ic3R5bGVzaGVldCI6QW8saXx8KHIuYXM9InNjcmlwdCIpLHIuY3Jvc3NPcmlnaW49IiIsci5ocmVmPWUsbyYmci5zZXRBdHRyaWJ1dGUoIm5vbmNlIixvKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHIpLGk/bmV3IFByb21pc2UoKHQscyk9PntyLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLHQpLHIuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCgpPT5zKG5ldyBFcnJvcihgVW5hYmxlIHRvIHByZWxvYWQgQ1NTIGZvciAke2V9YCkpKX0pOnZvaWQgMH0pLGk9UHJvbWlzZS5hbGwobi5tYXAodD0+UHJvbWlzZS5yZXNvbHZlKHQpLnRoZW4odD0+KHtzdGF0dXM6ImZ1bGZpbGxlZCIsdmFsdWU6dH0pLHQ9Pih7c3RhdHVzOiJyZWplY3RlZCIscmVhc29uOnR9KSkpKX12YXIgbjtmdW5jdGlvbiByKHQpe2NvbnN0IGU9bmV3IEV2ZW50KCJ2aXRlOnByZWxvYWRFcnJvciIse2NhbmNlbGFibGU6ITB9KTtpZihlLnBheWxvYWQ9dCx3aW5kb3cuZGlzcGF0Y2hFdmVudChlKSwhZS5kZWZhdWx0UHJldmVudGVkKXRocm93IHR9cmV0dXJuIGkudGhlbihlPT57Zm9yKGNvbnN0IHQgb2YgZXx8W10pInJlamVjdGVkIj09PXQuc3RhdHVzJiZyKHQucmVhc29uKTtyZXR1cm4gdCgpLmNhdGNoKHIpfSl9LGpvPSJvdmVybGF5IixJbz1udWxsLFNvPVllKHtpc19sb2FkaW5nOiExLGJyb3dzZV9yZWNlbnQ6W10scHJvbXB0OntxdWVyeToiIixhc2tlZDohMSx0aGlua2luZzohMX0scmVzdWx0czp7cXVlcnk6IiIsYW5zd2VyOltdLHNvdXJjZXM6W10sZXhwYW5kZWQ6MCxlbXB0eTohMSxlcnJvcjohMX19LHtpc0F2YWlsYWJsZTooKT0+ITA9PT10by5jaGF0Lm92ZXJsYXlfc2VhcmNoJiYhMCxpc09wZW5lZDooKT0+InNlYXJjaCI9PT1Qby5tb2RlJiYhMCxpc09wZW5lZEFuZFJlYWR5OigpPT5Tby5pc09wZW5lZCgpJiZudWxsIT09SW8mJiEwLG9wZW4odD1udWxsKXtsZXQgZT0hMTtyZXR1cm4hMD09PVNvLmlzQXZhaWxhYmxlKCkmJigic2VhcmNoIiE9PVBvLm1vZGU/KFBvLm1vZGU9InNlYXJjaCIsdGhpcy55byh0KSk6dGhpcy51cGRhdGVQcm9tcHRGaWVsZCgiIiksZT0hMCksZX0sdXBkYXRlUHJvbXB0RmllbGQodCl7U28ucHJvbXB0LnF1ZXJ5IT09dCYmITAhPT1Tby5wcm9tcHQudGhpbmtpbmcmJihTby5wcm9tcHQucXVlcnk9dCxTby5wcm9jZWVkU2VhcmNoKCkpfSxwcm9jZWVkU2VhcmNoKCl7aWYoITAhPT1Tby5wcm9tcHQudGhpbmtpbmcpe2xldCB0PShTby5wcm9tcHQucXVlcnl8fCIiKS50cmltKCksZT15ci5zb2NrZXQuY29ubmVjdGVkO1NvLnByb21wdC50aGlua2luZz10Lmxlbmd0aD4wLFNvLnJlc3VsdHMucXVlcnk9dCxTby5yZXN1bHRzLmFuc3dlcj1bXSxTby5yZXN1bHRzLnNvdXJjZXM9W10sU28ucmVzdWx0cy5leHBhbmRlZD0wLFNvLnJlc3VsdHMuZW1wdHk9ITEsU28ucmVzdWx0cy5lcnJvcj0hMSx0PyhTby5wcm9tcHQuYXNrZWQ9ITAsITA9PT1lP3lyLk92ZXJsYXkuZ2V0T3ZlcmxheUFuc3dlclNlYXJjaCh0LGpyLmNvZGUpOlNvLmhhbmRsZVNlYXJjaFNvdXJjZXMobnVsbCwhMCkpOlNvLnByb21wdC5hc2tlZD0hMX19LGhhbmRsZVNlYXJjaENodW5rKHQpe1NvLnJlc3VsdHMuYW5zd2VyLnB1c2godCl9LGhhbmRsZVNlYXJjaEFuc3dlcih0PW51bGwsZT1udWxsKXtpZih0P1NvLnJlc3VsdHMuYW5zd2VyPVt0XToiIj09PXQ/KFNvLnJlc3VsdHMuYW5zd2VyPVtidS50ZXh0KCJzZWFyY2giLCJyZXN1bHRzX2Fuc3dlcl9xdWlja2llX2VtcHR5IildLFNvLnJlc3VsdHMuZW1wdHk9ITApOihTby5yZXN1bHRzLmFuc3dlcj1bXSxTby5yZXN1bHRzLmVycm9yPSEwKSxTby5wcm9tcHQudGhpbmtpbmc9ITEsbnVsbCE9PWUpe2xldCB0PVNvLmJyb3dzZV9yZWNlbnQ7dC5pbmNsdWRlcyhlKXx8KHQudW5zaGlmdChlKSx0Lmxlbmd0aD4zJiZ0LnNwbGljZSgzKSxTby5ibyh0KSl9T3IuZm9jdXNPbkZvcmVncm91bmQoKX0saGFuZGxlU2VhcmNoU291cmNlcyh0PW51bGwsZT0hMSl7U28ucmVzdWx0cy5zb3VyY2VzPXR8fFtdLCEwPT09ZSYmKG51bGw9PT10JiYoU28ucmVzdWx0cy5lcnJvcj0hMCksU28ucHJvbXB0LnRoaW5raW5nPSExKX0scmVzZXQoKXtTby5ibyhbXSl9LHlvKHQ9bnVsbCl7ITAhPT1Tby5pc19sb2FkaW5nJiYoU28uaXNfbG9hZGluZz0hMCxTby5icm93c2VfcmVjZW50PVNvLkVvKCl8fFtdLHhvKCgpPT5pbXBvcnQoIi4vbWFpbl9kZWZhdWx0XzIzZTQyMTI0LmpzIikudGhlbihzPT57SW89cy5kZWZhdWx0KCIuY2MtMTVtbjYiKSxPci5mb2N1c09uRm9yZWdyb3VuZCgpLFNvLmlzX2xvYWRpbmc9ITEsITE9PT1Qby5pc19leHBhbmRlZCYmKFBvLndhc19hdXRvX2V4cGFuZGVkLnNlYXJjaD0hMCxlKCkuQ2hhdC5JbnRlcmZhY2UucmVxdWVzdER5bmFtaWNTaXppbmdQcm9wZXJ0aWVzKCkpLCJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0KCl9KSxfX3ZpdGVfX21hcERlcHMoWzAsMSwyXSkpKX0sRW8oKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgSlNPTj8ucGFyc2Upe2xldCB0PXlyLlN0b3JhZ2UuZ2V0U3RhbXBMb2NhbChqbyxbUW8ud2Vic2l0ZS5pZCwiYnJvd3NlIiwicmVjZW50Il0pfHxudWxsO2lmKG51bGwhPT10KXJldHVybiBKU09OLnBhcnNlKHQpfXJldHVybiBudWxsfSxibyh0PVtdKXsiZnVuY3Rpb24iPT10eXBlb2YgSlNPTj8uc3RyaW5naWZ5JiZ5ci5TdG9yYWdlLnNldFN0YW1wTG9jYWwoam8sW1FvLndlYnNpdGUuaWQsImJyb3dzZSIsInJlY2VudCJdLEpTT04uc3RyaW5naWZ5KHQpKX19KTtTby5icmFuZGluZ19saW5rPVNlKCgpPT5gJHtNZS5VUkxfV0VCU0lURX0vJHtqci53ZWJ9L2xpdmVjaGF0Lz9yZWY9b3ZlcmxheSZ3ZWJzaXRlX2lkPSR7ZW5jb2RlVVJJQ29tcG9uZW50KFFvLndlYnNpdGUuaWQpfWApLFNvLmJyb3dzZV9mcmVxdWVudD1TZSgoKT0+e2xldCB0PXRvLm92ZXJsYXksZT1qci5jb2RlO3JldHVybiB0LnNlYXJjaD8uW2VdfHx0LnNlYXJjaD8uZGVmYXVsdHx8W119KTt2YXIgUm89WWUoe30se30pO1JvLmhhc19mb3JtX2Rpc2FibGVkPVNlKCgpPT4hMCE9PVFvLnJ1bnRpbWUubG9ja19tYXhpbWl6ZWQmJighMD09PXRvLmNoYXQ/LmhpZGVfdmFjYXRpb258fCEwPT09UW8uaXNfYmxvY2tlZCkpO3ZhciBPbz1ZZSh7aXNfc3RhcnRfdmlzaWJsZTohMX0se3Nob3dTdGFydCgpe09vLmlzX3N0YXJ0X3Zpc2libGU9ITB9LGhpZGVTdGFydCgpe09vLmlzX3N0YXJ0X3Zpc2libGU9ITF9fSk7ZnVuY3Rpb24gVG8odCxlLC4uLnMpe3JldHVybiB0LmJpbmQmJi9cW25hdGl2ZSBjb2RlXF0vLnRlc3QodC5iaW5kLnRvU3RyaW5nKCkpP3QuYmluZChlLC4uLnMpOmZ1bmN0aW9uKC4uLmkpe3JldHVybiB0LmFwcGx5KGUsWy4uLnMsLi4uaV0pfX12YXIgem89W1siZW1haWwiLCJFbWFpbCJdLFsicGhvbmUiLCJQaG9uZSJdLFsibWVzc2VuZ2VyIiwiTWVzc2VuZ2VyIl0sWyJ0ZWxlZ3JhbSIsIlRlbGVncmFtIl0sWyJ0d2l0dGVyIiwiWCAoVHdpdHRlcikiXSxbIndoYXRzYXBwIiwiV2hhdHNBcHAiXSxbImluc3RhZ3JhbSIsIkluc3RhZ3JhbSJdXSxQbz1ZZSh7bW9kZToiY2hhdCIsaXNfbWF4aW1pemVkOiExLGlzX2V4cGFuZGVkOiExLGlzX29wZW5lZDohMSx3YXNfYXV0b19leHBhbmRlZDp7Y2hhdDohMSxoZWxwZGVza19hcnRpY2xlOiExLHNlYXJjaDohMX0saGFzX29mZmxpbmU6ITEsaGFzX2NoYW5uZWxzOiExLGhhc19wYWRfcG9wb3ZlcjohMSxoYXNfd2luZG93X2ZvY3VzOiExLHNob3dfb3BlcmF0b3JfY291bnQ6ITAsYW5pbWF0ZV9taW5pbWl6ZTohMSxhbmltYXRlX21heGltaXplOiExLHJlY29ubmVjdF9mYWlsZWQ6ITEscmVjb25uZWN0X2luYWN0aXZlOiExLG1lc3NhZ2VfZmllbGRfdmFsdWU6IiIsY29udmVyc2F0aW9uczp7aXNfc3RhcnRpbmc6ITEsbGFzdF9zdGFydF9lcnJvcjpudWxsLGN1cnJlbnRfc2Vzc2lvbl9pZDpudWxsLGFsbF9zZXNzaW9uX2lkczpbXSxhbGxfdW5yZWFkX2NvdW50OjB9LHF1aWNrX3JlcGxpZXM6e2Nob2ljZXM6W119LGFjdGl2aXR5OnttZXRyaWNzOm51bGwsbGFzdDpudWxsfSxzdGF0dXM6e3VybDoiIn0sc3RhdHVzX21hcmtlcnM6e30sb25nb2luZ19vcGVyYXRvcnM6e319LHtlZmZlY3RpdmVTZXNzaW9uSWQ6KHQ9bnVsbCk9PnR8fFBvLmNvbnZlcnNhdGlvbnMuY3VycmVudF9zZXNzaW9uX2lkfHxRby5zZXNzaW9uX2lkLGVhY2hTZXNzaW9uSWQodCl7bGV0IGU9UG8uY29udmVyc2F0aW9ucy5hbGxfc2Vzc2lvbl9pZHMscz1bXTtmb3IobGV0IGk9MDtpPGUubGVuZ3RoO2krKylzLnB1c2godChlW2ldKSk7cmV0dXJuIHN9LGlzQ3VycmVudFNlc3Npb25JZCh0PW51bGwpe2xldCBlPVBvLmVmZmVjdGl2ZVNlc3Npb25JZCgpO3JldHVybiBudWxsPT09dHx8dD09PWV9LGNoYW5nZVNlc3Npb25PbmdvaW5nT3BlcmF0b3IodCxlPW51bGwpe1BvLm9uZ29pbmdfb3BlcmF0b3JzW1BvLmVmZmVjdGl2ZVNlc3Npb25JZChlKV09dH0sY2hhbmdlU2Vzc2lvblN0YXR1c01hcmtlcih0LGU9bnVsbCl7UG8uc3RhdHVzX21hcmtlcnNbUG8uZWZmZWN0aXZlU2Vzc2lvbklkKGUpXT10fSxvblBhbmVUb2dnbGVDbGljayh0KXt0LnRhcmdldD8uY2xhc3NMaXN0Py5jb250YWlucygiY2MtMTl5dmwiKT9lKCkuQWN0aW9uLmRvX21lc3NhZ2VfcmVhZCgpOmUoKS5BY3Rpb24uZG9fY2hhdF90b2dnbGUoKX0sb25QYW5lVG9vbHRpcE5ld01lc3NhZ2VzQ2xpY2soKXtsZXQgdD1Qby5jdXJyZW50X3VucmVhZF9wcmV2aWV3Py5zZXNzaW9uX2lkfHxudWxsO251bGwhPT10P1BvLm9wZW5Db252ZXJzYXRpb24odCk6ZSgpLkNoYXQuSW50ZXJmYWNlLnRvZ2dsZUNoYXRNb2RlKCEwKX0sc2V0TWVzc2FnZVRleHQodD1udWxsKXtpZigic3RyaW5nIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIG1lc3NhZ2UgdGV4dCIpO3tsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuY2MtN2p0d3QiKTtlJiYhMCE9PWUuZGlzYWJsZWQmJihQby5tZXNzYWdlX2ZpZWxkX3ZhbHVlPXQsZS5kaXNwYXRjaEV2ZW50KG5ldyB3aW5kb3cuS2V5Ym9hcmRFdmVudCgia2V5ZG93biIpKSl9fSxtaW5pbWl6ZSgpeyEwPT09UW8ucnVudGltZS5sb2NrX21heGltaXplZCYmITAhPT1Rby5ydW50aW1lLm1vYmlsZV9zZGt8fEVvLnByb3BhZ2F0ZSgibWF4aW1pemVkIiwhMSxRby5zZXNzaW9uX2lkKX0sbWF4aW1pemUoKXtFby5wcm9wYWdhdGUoIm1heGltaXplZCIsITAsUW8uc2Vzc2lvbl9pZCwhMSwhMSwoKT0+e09yLnNjcm9sbFRvKCl9KX0sZXhwYW5kKHQpeyExIT09dHx8ITAhPT1Qby53YXNfYXV0b19leHBhbmRlZC5oZWxwZGVza19hcnRpY2xlJiYhMCE9PVBvLndhc19hdXRvX2V4cGFuZGVkLnNlYXJjaHx8KFBvLndhc19hdXRvX2V4cGFuZGVkLmhlbHBkZXNrX2FydGljbGU9ITEsUG8ud2FzX2F1dG9fZXhwYW5kZWQuc2VhcmNoPSExLHQ9PT1Qby5pc19leHBhbmRlZCYmZSgpLkNoYXQuSW50ZXJmYWNlLnJlcXVlc3REeW5hbWljU2l6aW5nUHJvcGVydGllcygpKSxFby5wcm9wYWdhdGUoImV4cGFuZGVkIix0LFFvLnNlc3Npb25faWQpfSx0b2dnbGVDaGFubmVsRHJvcGRvd24odD1udWxsKXtQby5DbygiaGFzX2NoYW5uZWxzIix0KX0sdG9nZ2xlUGFkUG9wb3Zlcih0PW51bGwpe1BvLkNvKCJoYXNfcGFkX3BvcG92ZXIiLHQpfSxzdGFydE5ld0NvbnZlcnNhdGlvbigpeyEwPT09UW8ucnVudGltZS50ZXN0ZXJfbW9kZSYmVHIub25UZXN0ZXJTdGFydE5ld0NvbnZlcnNhdGlvbigpLCEwIT09UG8uY29udmVyc2F0aW9ucy5pc19zdGFydGluZyYmKFBvLmNvbnZlcnNhdGlvbnMuaXNfc3RhcnRpbmc9ITAsUG8uY29udmVyc2F0aW9ucy5sYXN0X3N0YXJ0X2Vycm9yPW51bGwseXIuU2Vzc2lvbi5jcmVhdGVDaGlsZCgpKX0saGFuZGxlQ29udmVyc2F0aW9uU3RhcnRlZCh0PW51bGwsZT1udWxsLHM9bnVsbCl7aWYoITA9PT1Qby5jb252ZXJzYXRpb25zLmlzX3N0YXJ0aW5nKXtQby5jb252ZXJzYXRpb25zLmlzX3N0YXJ0aW5nPSExO2xldCBpPXQ9PntQby5jb252ZXJzYXRpb25zLmxhc3Rfc3RhcnRfZXJyb3I9bnVsbCxPby5oaWRlU3RhcnQoKSxQby5vcGVuQ29udmVyc2F0aW9uKHQpfTtudWxsIT09ZSYmcz8uc2Vzc2lvbl9pZD9pKHMuc2Vzc2lvbl9pZCk6bnVsbCE9PXQ/KFBvLmNvbnZlcnNhdGlvbnMuYWxsX3Nlc3Npb25faWRzLnB1c2godCksRW8uaW5pdGlhbGl6ZSh0KSxYby5yZXN0b3JlSGlzdG9yeSh0KSxpKHQpKTpQby5jb252ZXJzYXRpb25zLmxhc3Rfc3RhcnRfZXJyb3I9ZX19LGluaXRpYWxpemVDb252ZXJzYXRpb25zKHQsZT1bXSl7UG8uY29udmVyc2F0aW9ucy5hbGxfc2Vzc2lvbl9pZHM9W10sdC5zZXNzaW9uX2lkJiZQby5jb252ZXJzYXRpb25zLmFsbF9zZXNzaW9uX2lkcy5wdXNoKHQuc2Vzc2lvbl9pZCk7Zm9yKGxldCBzPTA7czxlLmxlbmd0aDtzKyspUG8uY29udmVyc2F0aW9ucy5hbGxfc2Vzc2lvbl9pZHMucHVzaChlW3NdLnNlc3Npb25faWQpfSxvcGVuQ29udmVyc2F0aW9uKHQ9bnVsbCl7aWYobnVsbCE9PXQmJiEwIT09UG8uY29udmVyc2F0aW9ucy5hbGxfc2Vzc2lvbl9pZHMuaW5jbHVkZXModCkpdGhyb3cgbmV3IEVycm9yKCJDb252ZXJzYXRpb24gZG9lcyBub3QgZXhpc3QiKTt7bGV0IGU9bnVsbCE9PXQmJnQ9PT1Rby5zZXNzaW9uX2lkPyJkZWZhdWx0Ijp0O0VvLnByb3BhZ2F0ZSgiY29udmVyc2F0aW9uIixlLFFvLnNlc3Npb25faWQpfX0sZWZmZWN0aXZlSW5pdGlhbE1vZGUodD1udWxsKXtsZXQgZT10fHx0by5jaGF0Lm1vZGVfaW5pdGlhbDtyZXR1cm4iaG9tZSI9PT1lJiYhMCE9PXRvLmNoYXQuaG9tZSYmKGU9ImNoYXQiKSwiY2hhdCI9PT1lJiYhMD09PSRvLnNldHRpbmdzX29ubHkmJihlPSJoZWxwZGVzayIpLGV9LGNoYW5nZU1vZGUodCxzPSExKXtsZXQgaT0hMSxuPSExLHI9ITEsbz1Qby5tb2RlO2lmKG8hPT10fHwhMCE9PXMpe3N3aXRjaCh0KXtjYXNlImhvbWUiOlBvLm1vZGU9dCxuPSEwO2JyZWFrO2Nhc2UiY2hhdCI6UG8ubW9kZT10LG89PT10JiYoUG8uY29udmVyc2F0aW9ucy5hbGxfc2Vzc2lvbl9pZHMubGVuZ3RoPjF8fCEwPT09UW8uaXNfbW9iaWxlX3ZpZXcpP1BvLmNvbnZlcnNhdGlvbnMuY3VycmVudF9zZXNzaW9uX2lkJiZQby5vcGVuQ29udmVyc2F0aW9uKCk6cj0hMCxpPSEwLG49ITA7YnJlYWs7Y2FzZSJoZWxwZGVzayI6JG8ub3BlbighMCksaT0hMDticmVhaztjYXNlInNlYXJjaCI6U28ub3BlbigpLGk9ITB9ZSgpLkNoYXQuSW50ZXJmYWNlLmFwcGx5Q2hhdEZvY3VzKCksITA9PT1pJiZPci5mb2N1c09uRm9yZWdyb3VuZCgpLFBvLnRvZ2dsZUNoYW5uZWxEcm9wZG93bighMSksITA9PT1uJiZlKCkuQ2hhdC5JbnRlcmZhY2UucmVxdWVzdER5bmFtaWNTaXppbmdQcm9wZXJ0aWVzKCksITA9PT1yJiZPci5zY3JvbGxUb0xhc3RNZXNzYWdlKCl9fSxnZW5lcmF0ZUNoYW5uZWxMaW5rKHQpe2xldCBlPSIiLHM9dG8uY2hhbm5lbHNbdF18fG51bGw7c3dpdGNoKHQpe2Nhc2UiZW1haWwiOntsZXQgdD1Rby5zZXNzaW9uX2hhc2g7aWYodCl7bGV0IHM9dG8ud2Vic2l0ZS5uYW1lLGk9YHMuJHt0fS5pQCR7dG8ud2Vic2l0ZS5tYWlsZXJ9YDtlPSJtYWlsdG86IixzJiYoZSs9YCIke2VuY29kZVVSSShzKX0iYCksZSs9YDwke2VuY29kZVVSSShpKX0+YH1lbHNlIHMmJihlPWBtYWlsdG86JHtzfWApO2JyZWFrfWNhc2UicGhvbmUiOnMmJihlPWB0ZWw6JHtzfWApO2JyZWFrO2Nhc2UibWVzc2VuZ2VyIjpzJiYoZT1gaHR0cHM6Ly9tLm1lLyR7ZW5jb2RlVVJJKHMpfWApO2JyZWFrO2Nhc2UidGVsZWdyYW0iOnMmJihlPWBodHRwczovL3RlbGVncmFtLm1lLyR7ZW5jb2RlVVJJKHMpfWApO2JyZWFrO2Nhc2UidHdpdHRlciI6cyYmKGU9YGh0dHBzOi8veC5jb20vJHtlbmNvZGVVUkkocyl9YCk7YnJlYWs7Y2FzZSJ3aGF0c2FwcCI6cyYmKGU9YGh0dHBzOi8vd2EubWUvJHtlbmNvZGVVUkkocyl9YCk7YnJlYWs7Y2FzZSJpbnN0YWdyYW0iOnMmJihlPWBodHRwczovL3d3dy5pbnN0YWdyYW0uY29tLyR7ZW5jb2RlVVJJKHMpfS9gKTticmVhaztjYXNlImhlbHBkZXNrIjpjYXNlInN0YXR1cyI6cyYmKGU9YCR7InByb2R1Y3Rpb24iPT09TWUuRU5WSVJPTk1FTlQ/Imh0dHBzIjoiaHR0cCJ9Oi8vJHtzfS9gKX1yZXR1cm4gZX0sQ28odCxlPW51bGwpe251bGw9PT1lJiYoZT0hUG9bdF0pLGUhPT1Qb1t0XSYmKFBvW3RdPWUpfX0pO1BvLmlzX3Zpc2libGU9U2UoKCk9PlBvLmlzX21heGltaXplZCYmITAhPT1Rby5pc19oaWRkZW4pLFBvLmhhc19oZWFsdGg9U2UoKCk9PlBvLnN0YXR1cy51cmwmJiEwPT09dG8uY2hhdC5zdGF0dXNfaGVhbHRoX2RlYWQmJiJkZWFkIj09PXRvLndlYnNpdGUuc3RhdHVzPy5oZWFsdGgmJihuZXcgRGF0ZSkuZ2V0VGltZSgpLXRvLndlYnNpdGUuc3RhdHVzLnNpbmNlPj0xOGU0KSxQby5oYXNfY2hhdF9mb2N1cz1TZSgoKT0+ISEoUG8uaGFzX3dpbmRvd19mb2N1cyYmUG8uaXNfdmlzaWJsZSYmImNoYXQiPT09UG8ubW9kZSYmUG8uY29udmVyc2F0aW9ucy5jdXJyZW50X3Nlc3Npb25faWQpKSxQby5icmFuZGluZ19saW5rcz1TZSgoKT0+e2xldCB0PWByZWY9Y2hhdGJveCZ3ZWJzaXRlX2lkPSR7ZW5jb2RlVVJJQ29tcG9uZW50KFFvLndlYnNpdGUuaWQpfWA7cmV0dXJue2RlZmF1bHQ6YCR7TWUuVVJMX1dFQlNJVEV9LyR7anIud2VifS9saXZlY2hhdC8/JHt0fWAsYWdlbnQ6YCR7TWUuVVJMX0hVR099Lz8ke3R9YH19KSxQby5hY3Rpdml0eV9tZXRyaWNzPVNlKCgpPT57bGV0IHQ9dG8ud2Vic2l0ZS5yZXNwb25zZV9tZXRyaWNzO3JldHVybiB0Py5tZWFuJiZ0Lm1lYW4+PTFlMyYmdC5tZWFuPDIxNmU1P3QubWVhbjpudWxsfSksUG8uYWN0aXZpdHlfbGFzdD1TZSgoKT0+e2xldCB0PXRvLndlYnNpdGUubGFzdF9hdmFpbGFibGU7cmV0dXJuIHQmJnQ+MD90Om51bGx9KSxQby5jaGFubmVscz1TZSgoKT0+e2xldCB0PVtdO2ZvcihsZXQgZT0wO2U8em8ubGVuZ3RoO2UrKyl7bGV0IHM9em9bZV1bMF0saT16b1tlXVsxXSxuPVBvLmdlbmVyYXRlQ2hhbm5lbExpbmsocyk7biYmKCJlbWFpbCIhPT1zJiYicGhvbmUiIT09c3x8KGk9VG8oYnUudGV4dCxidSkoImNoYXQiLGBjaGF0X2hlYWRlcl9vbmdvaW5nX2NoYW5uZWxfY29udGludWVfJHtzfWApKSx0LnB1c2goe25hbWU6cyxmb3JtYXQ6aSxsaW5rOm59KSl9cmV0dXJuIHR9KSxQby5pc19mb3JtX2xvY2tlZD1TZSgoKT0+Um8uaGFzX2Zvcm1fZGlzYWJsZWR8fFhvLmNvbnZlcnNhdGlvbi5sb2Nrcy5pZGVudGlmeXx8WG8uY29udmVyc2F0aW9uLmxvY2tzLnByb21wdHx8ITA9PT1Yby5jb252ZXJzYXRpb24uY29tcG9zZS5pc19hY3RpdmUmJiEwPT09WG8uY29udmVyc2F0aW9uLmNvbXBvc2UuaXNfYXV0b21hdGVkKSxQby5pc19tb2RlX2VtYmVkZGVkPVNlKCgpPT4ic2VhcmNoIj09PVBvLm1vZGUmJiFTby5wcm9tcHQuYXNrZWQpLFBvLmN1cnJlbnRfcXVpY2tfcmVwbGllcz1TZSgoKT0+MD09PVBvLnF1aWNrX3JlcGxpZXMuY2hvaWNlcy5sZW5ndGh8fCEwPT09WG8uY29udmVyc2F0aW9uLmhhc19yZWNlaXZlZF9tZXNzYWdlc3x8ITA9PT1Yby5jb252ZXJzYXRpb24uaGFzX3NlbnRfbWVzc2FnZXM/bnVsbDpQby5xdWlja19yZXBsaWVzLmNob2ljZXMpLFBvLmN1cnJlbnRfYWxlcnRzPVNlKCgpPT57bGV0IHQ9RW8uc2Vzc2lvbigpLmFsZXJ0fHx7fSxlPSExLHM9e307Zm9yKGxldCBpIGluIHQpe2xldCBuPXRbaV07InNob3ciIT09biYmInVubG9jayIhPT1ufHwoZT0hMCxzW2ldPW4pfXJldHVybiEwPT09ZT9zOm51bGx9KSxQby5jdXJyZW50X3VucmVhZF9wcmV2aWV3PVNlKCgpPT57aWYoWG8uY29udmVyc2F0aW9uLnByZXZpZXcubGVuZ3RoPjApcmV0dXJuIFhvLmNvbnZlcnNhdGlvbjtsZXQgdD1Qby5jb252ZXJzYXRpb25zLmFsbF9zZXNzaW9uX2lkcztmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7bGV0IHM9WG8uY29udmVyc2F0aW9uRm9yU2Vzc2lvbih0W2VdKTtpZihzLnByZXZpZXcubGVuZ3RoPjApcmV0dXJuIHN9cmV0dXJuIG51bGx9KSxQby5jdXJyZW50X29uZ29pbmdfb3BlcmF0b3I9U2UoKCk9PntsZXQgdD1Qby5vbmdvaW5nX29wZXJhdG9yc1tQby5lZmZlY3RpdmVTZXNzaW9uSWQoKV18fG51bGw7cmV0dXJuIG51bGwhPT10P3Q6e3VzZXJfaWQ6IiIsdHlwZToiIixuYW1lOiIiLHVybDoiIn19KSxQby5jdXJyZW50X3N0YXR1c19tYXJrZXI9U2UoKCk9PlBvLnN0YXR1c19tYXJrZXJzW1BvLmVmZmVjdGl2ZVNlc3Npb25JZCgpXXx8Im5vbmUiKSxQby5jb252ZXJzYXRpb25zLmFsbF91bnJlYWRfY291bnQ9U2UoKCk9PntsZXQgdD0wO3JldHVybiBQby5lYWNoU2Vzc2lvbklkKGU9Pnt0Kz1Yby5nZXRVbnJlYWQoZSl9KSx0fSk7dmFyIExvPXtldmVudHM6WyJjaGF0LW1lc3NhZ2UtcmVjZWl2ZSIsImNoYXQtbWVzc2FnZS1hY3Rpb24iXSxjYWxsOlsiY2FsbC1lc3RhYmxpc2hlZCIsImNhbGwtaGFuZ3VwIiwiY2FsbC1yaW5nIl19LE1vPW5ldyBjbGFzcyBleHRlbmRzIEple2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmdyKCl9cmVzZXQoKXt0aGlzLnN0b3AoKSx0aGlzLmdyKCl9YWxsb3codD0hMCl7dGhpcy5rbz10fW11dGUodD0hMCl7dGhpcy4kbz10fWluaXRpYWxpemUodCl7aWYoITE9PT10aGlzLmtvKXJldHVybjt0aGlzLkFvW3RdPXRoaXMuQW9bdF18fHt9O2xldCBlPUxvW3RdO2ZvcihsZXQgcz0wO3M8ZS5sZW5ndGg7cysrKXZvaWQgMD09PXRoaXMuQW9bdF1bZVtzXV0mJnRoaXMuQm8odCxlW3NdKX1zdGFydCh0LGUscz0hMSxpPTUwKXtpZighMSE9PXRoaXMua28mJiEwPT09d3UuZmVhdHVyZS5oYXNfaHRtbF9hdWRpbyYmITA9PT10aGlzLnhvKHQpKXtsZXQgbj1Mb1t0XTt2b2lkIDAhPT1uP24uaW5jbHVkZXMoZSk/KHRoaXMuc3RvcCgpLHRoaXMuQm8odCxlLG49PntpZihudWxsIT09dGhpcy5qbyl7InN1c3BlbmRlZCI9PT10aGlzLmpvLnN0YXRlJiZ0aGlzLmpvLnJlc3VtZSgpO2xldCByPXRoaXMuam8uY3JlYXRlR2FpbigpO3IuZ2Fpbi5zZXRWYWx1ZUF0VGltZShpLzEwMCwwKSxyLmNvbm5lY3QodGhpcy5qby5kZXN0aW5hdGlvbiksdGhpcy5Jbz10aGlzLmpvLmNyZWF0ZUJ1ZmZlclNvdXJjZSgpLHRoaXMuSW8uYnVmZmVyPW4sdGhpcy5Jby5sb29wPXMsdGhpcy5Jby5jb25uZWN0KHIpLHRoaXMuSW8uc3RhcnQoKSx0aGlzLlNvPXQsdGhpcy5Sbz1lfX0sdD0+e30pKTpXZS5lcnJvcihgU291bmQgZG9lcyBub3QgZXhpc3Q6ICR7ZX0gaW4gc3Vic2V0ICR7dH1gKTpXZS5lcnJvcihgU3Vic2V0IGRvZXMgbm90IGV4aXN0OiAke3R9YCl9fXN0b3AodD1udWxsLGU9bnVsbCl7dHJ5e251bGw9PT10aGlzLklvfHxudWxsIT09dCYmdCE9PXRoaXMuU298fG51bGwhPT1lJiZlIT09dGhpcy5Sb3x8KHRoaXMuSW8uc3RvcCgpLHRoaXMuSW89bnVsbCx0aGlzLlNvPW51bGwsdGhpcy5Sbz1udWxsKX1jYXRjaChzKXtXZS5lcnJvcihzKX19Qm8odCxlLHM9bnVsbCxpPW51bGwpe3RyeXtpZih0aGlzLkFvW3RdPXRoaXMuQW9bdF18fHt9LHRoaXMuT29bdF09dGhpcy5Pb1t0XXx8e30sdm9pZCAwPT09dGhpcy5Pb1t0XVtlXSlpZih0aGlzLk9vW3RdW2VdPXtzdWNjZXNzOiJmdW5jdGlvbiI9PXR5cGVvZiBzP1tzXTpbXSxlcnJvcjoiZnVuY3Rpb24iPT10eXBlb2YgaT9baV06W119LHZvaWQgMCE9PXRoaXMuQW9bdF1bZV0pdGhpcy5Ubygic3VjY2VzcyIsdCxlLHRoaXMuQW9bdF1bZV0pO2Vsc2V7bGV0IHM9dGhpcy56byh0LGUpO2lmKHMpe2xldCBpPW5ldyB3aW5kb3cuWE1MSHR0cFJlcXVlc3Q7aS5vcGVuKCJHRVQiLHMsITApLGkucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciIsaS5vbmxvYWQ9KCk9PntudWxsPT09dGhpcy5qbyYmKHRoaXMuam89dGhpcy5QbygpKSxudWxsIT09dGhpcy5qbz90aGlzLmpvLmRlY29kZUF1ZGlvRGF0YShpLnJlc3BvbnNlLHM9Pnt0aGlzLkFvW3RdPXRoaXMuQW9bdF18fHt9LHRoaXMuQW9bdF1bZV09cyx0aGlzLlRvKCJzdWNjZXNzIix0LGUscyl9LHM9Pnt0aGlzLlRvKCJlcnJvciIsdCxlLHMpfSk6dGhpcy5UbygiZXJyb3IiLHQsZSl9LGkub25lcnJvcj1zPT57dGhpcy5UbygiZXJyb3IiLHQsZSxzKX0saS5zZW5kKCl9fWVsc2UiZnVuY3Rpb24iPT10eXBlb2YgcyYmdGhpcy5Pb1t0XVtlXS5zdWNjZXNzLnB1c2gocyksImZ1bmN0aW9uIj09dHlwZW9mIGkmJnRoaXMuT29bdF1bZV0uZXJyb3IucHVzaChpKX1jYXRjaChuKXtXZS5lcnJvcihuKX19VG8odCxlLHMsaT1udWxsKXtsZXQgbj10aGlzLk9vW2VdPy5bc107aWYodm9pZCAwIT09bil7Zm9yKGxldCBlPTA7ZTxuW3RdLmxlbmd0aDtlKyspImZ1bmN0aW9uIj09dHlwZW9mIG5bdF1bZV0mJm5bdF1bZV0oaSk7ZGVsZXRlIHRoaXMuT29bZV1bc119fXpvKHQsZSl7bGV0IHM9d3UuZmVhdHVyZS5odG1sX2F1ZGlvX2Zvcm1hdDtyZXR1cm4gbnVsbCE9PXM/YCR7TWUuVVJMX0NMSUVOVF9BU1NFVFN9L3NvdW5kcy8ke3R9LyR7ZX0uJHtzfT8ke01lLlJFVklTSU9OfWA6bnVsbH1Qbygpe3RyeXtyZXR1cm4hMD09PXd1LmJhc2UuaGFzX2ludGVyYWN0ZWQmJiJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cuQXVkaW9Db250ZXh0P25ldyB3aW5kb3cuQXVkaW9Db250ZXh0Om51bGx9Y2F0Y2godCl7cmV0dXJuIFdlLmVycm9yKHQpLG51bGx9fXhvKHQpe2xldCBlPSF0aGlzLiRvJiYhMCxzPSJjYWxsIj09PXR8fCEwIT09eXIuQ2FsbC5pc09uZ29pbmcoKTtyZXR1cm4gZSYmc31ncigpe3RoaXMua289ITAsdGhpcy4kbz0hMSx0aGlzLmpvJiZ0aGlzLmpvLmNsb3NlKCksdGhpcy5qbz1udWxsLHRoaXMuSW89bnVsbCx0aGlzLlNvPW51bGwsdGhpcy5Sbz1udWxsLHRoaXMuQW89e30sdGhpcy5Pbz17fX19O2Z1bmN0aW9uIFVvKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9dmFyIHFvPTVlMyxWbz1OcixObz1bInRleHQiLCJmaWxlIiwiYW5pbWF0aW9uIiwiYXVkaW8iLCJwaWNrZXIiLCJmaWVsZCIsImNhcm91c2VsIl0sSG89WyJ3ZWxjb21lIiwiaWRlbnRpdHkiLCJnYW1lIiwiZmVlZGJhY2siXSxXbz1bImVtYWlsIiwicGhvbmUiXSxHbz1bIvCfk6giLCLimI7vuI8iXSxKbz1bImZpZWxkIiwicGlja2VyIl0sS289L1svOl0vZyxZbz17Y29udmVyc2F0aW9uRm9yU2Vzc2lvbjoodD1udWxsKT0+WG8uTG8odCksbGlzdDoodD1udWxsKT0+WG8uTG8odCkubGlzdCxnZXQodCxlPW51bGwpe2xldCBzPVhvLkxvKGUpLGk9bnVsbDtmb3IobGV0IG49MDtuPHMubGlzdC5sZW5ndGg7bisrKWlmKHMubGlzdFtuXS5maW5nZXJwcmludD09PXQpe2k9cy5saXN0W25dO2JyZWFrfXJldHVybiBpfSxzZW5kKHQ9InRleHQiLHM9bnVsbCl7ITA9PT1Yby5jaGVja0ludGVudFNlbmQoKSYmKHQmJnM/ZSgpLkFjdGlvbi5kb19tZXNzYWdlX3NlbmQodCxzKTpQby5tZXNzYWdlX2ZpZWxkX3ZhbHVlJiYoZSgpLkFjdGlvbi5kb19tZXNzYWdlX3NlbmQoInRleHQiLFBvLm1lc3NhZ2VfZmllbGRfdmFsdWUpLFBvLnNldE1lc3NhZ2VUZXh0KCIiKSkpfSxoYW5kbGVTZW50KHQsZT1udWxsKXt0LmZyb209InVzZXIiLCEwPT09WG8uTW8odCxlKSYmWG8uVW8odC5maW5nZXJwcmludCxlKSxYby5xbyh0LmZpbmdlcnByaW50LGUpLCExPT09WG8uY2hlY2tVc2VySWRlbnRpdHkoITEsZSkmJmxvLnVwZGF0ZSgid2FpdF9yZXBseSIsInNob3ciLGUpLCEwPT09UW8ucnVudGltZS50ZXN0ZXJfbW9kZSYmVHIub25UZXN0ZXJNZXNzYWdlU2VudCh0KSwhMD09PVBvLmlzQ3VycmVudFNlc3Npb25JZChlKSYmT3Iuc2Nyb2xsVG8oKX0saGFuZGxlU2VudEFja25vd2xlZGdlbWVudCh0LGU9bnVsbCl7WG8uVm8odC5maW5nZXJwcmludCxlKSxYby5Nbyh0LGUpLFhvLk5vKCExLGUpLCEwPT09UG8uaXNDdXJyZW50U2Vzc2lvbklkKGUpJiZPci5zY3JvbGxUb0xhc3RNZXNzYWdlKCJ0byIpfSxoYW5kbGVSZWNlaXZlZCh0LGU9bnVsbCxzPSEwLGk9ITAsbj0hMCxyPSExKXtsZXQgbz1Yby5MbyhlKSx1PVhvLk1vKHQsZSksbD1Qby5oYXNfY2hhdF9mb2N1cztpZighMD09PXMmJiExPT09bCYmTW8uc3RhcnQoImV2ZW50cyIsImNoYXQtbWVzc2FnZS1yZWNlaXZlIiksITA9PT11JiYodGhpcy5Ibyh0KSx0aGlzLldvKHQsZSxpKSksITA9PT1pJiYhMD09PXUmJlhvLlVvKHQuZmluZ2VycHJpbnQsZSksdC51c2VyJiYhSG8uaW5jbHVkZXModC51c2VyLnNvdXJjZSkpe2xldCBzPUVvLnNlc3Npb24oZSkub3BlcmF0b3J8fHt9O3hyLmlzRXF1YWwodC51c2VyLHMpfHxFby5wcm9wYWdhdGUoIm9wZXJhdG9yIix0LnVzZXIsZSl9ITE9PT1yJiYoZ28uc3RvcCgpLG8uY29tcG9zZS50aW1lc3RhbXAmJnQudGltZXN0YW1wPjAmJm8uY29tcG9zZS50aW1lc3RhbXA8dC50aW1lc3RhbXAmJlhvLmhpZGVDb21wb3NlKGUpKSwhMD09PW4mJiEwPT09UG8uaXNDdXJyZW50U2Vzc2lvbklkKGUpJiZ4ci5uZXh0UmVuZGVyKCgpPT57T3Iuc2Nyb2xsVG9MYXN0TWVzc2FnZSgiZnJvbSIpLHhyLnNldFRpbWVvdXQoKCk9PntPci5zY3JvbGxUb0xhc3RNZXNzYWdlKCJmcm9tIil9LDQwMCl9KX0sdXBkYXRlKHQsZT1udWxsKXshMD09PVFvLnJ1bnRpbWUudGVzdGVyX21vZGU/KFRyLm9uVGVzdGVyTWVzc2FnZVVwZGF0ZWQodCksWG8uTW8odCxlKSk6eXIuTWVzc2FnZS51cGRhdGVNZXNzYWdlKHQuZmluZ2VycHJpbnQsdC5jb250ZW50LGUpfSxyZW1vdmUodCxlPW51bGwpe2xldCBzPVhvLkxvKGUpO2ZvcihsZXQgaT0wO2k8cy5saXN0Lmxlbmd0aDtpKyspaWYocy5saXN0W2ldLmZpbmdlcnByaW50PT09dCl7cy5saXN0LnNwbGljZShpLDEpLGRlbGV0ZSBzLmZpbmdlcnByaW50c1t0XTticmVha319LGhhbmRsZVJlbW92ZWQodCxlPW51bGwpe1hvLkdvKHQuZmluZ2VycHJpbnQsZSl9LGFja25vd2xlZGdlUmVhZFNlbmQodCxlPW51bGwscz0hMSl7bGV0IGk9WG8uTG8oZSk7aWYoITAhPT10by5jaGF0Lm9wZXJhdG9yX3ByaXZhY3kpe2xldCBlPW51bGw7aWYodC5sZW5ndGg+MClmb3IobGV0IHM9MDtzPGkubGlzdC5sZW5ndGg7cysrKXtsZXQgbj1pLmxpc3Rbc10uZmluZ2VycHJpbnQ7dC5pbmNsdWRlcyhuKSYmKGkubGlzdFtzXS5yZWFkPSEwLGU9bil9bnVsbCE9PWUmJihpLmxhdGVzdF9maW5nZXJwcmludD1lKX19LGVycm9yUmVqZWN0ZWQodCxlPW51bGwscz1udWxsKXtYby5Wbyh0LGUsc3x8Im90aGVyIil9LHRyaWdnZXJXaWxsU2VuZEhvb2tzKHQ9bnVsbCl7bGV0IGU9WG8uTG8odCkscz0hMSxpPVtdLG49eXIuTWVzc2FnZS5nZXRDYWNoZWRNZXNzYWdlcyh0KTtmb3IobGV0IHI9bi5sZW5ndGgtMTtyPj0wJiYibG9jYWwiPT09bltyXS51c2VyPy5zb3VyY2U7ci0tKWkucHVzaChuW3JdKTtmb3IobGV0IHI9MDtyPGkubGVuZ3RoO3IrKyl7bGV0IG49aVtyXSxvPWUucmVjZWl2ZV9taXJyb3JfZmluZ2VycHJpbnRzO28uaW5jbHVkZXMobi5maW5nZXJwcmludCl8fChvLnB1c2gobi5maW5nZXJwcmludCkseXIuTWVzc2FnZS5yZWNlaXZlTWVzc2FnZU1pcnJvcihuLnR5cGUsVm8sbi5jb250ZW50LG4uZmluZ2VycHJpbnQsdCkscz0hMCl9cmV0dXJuIHN9LGRpc3BhdGNoTG9jYWwodCxlLHM9bnVsbCxpPSExKXtsZXQgbj10by53ZWJzaXRlLmFjdGl2ZV9vcGVyYXRvcnN8fFtdLHI9e3NvdXJjZToibG9jYWwifTtuWzBdJiYhMCE9PWk/KHIudXNlcl9pZD1uWzBdLnVzZXJfaWQsci5uaWNrbmFtZT1uWzBdLm5pY2tuYW1lLG5bMF0uYXZhdGFyJiYoci5hdmF0YXI9blswXS5hdmF0YXIpKTooci50eXBlPSJ3ZWJzaXRlIixyLnVzZXJfaWQ9UW8ud2Vic2l0ZS5pZCxyLm5pY2tuYW1lPXRvLndlYnNpdGUubmFtZSkseXIuTWVzc2FnZS5yZWNlaXZlTWVzc2FnZUxvY2FsKHQsZSxyLHMpfSxjaGVja0ludGVudFNlbmQoKXtsZXQgdD0hMDtyZXR1cm4hMCE9PWUoKS5Ccm9rZXIuX3NvY2tldENvbm5lY3RlZCYmKHQ9ITEseXIuc29ja2V0LmNvbm5lY3QoKSksdH0sY2hlY2tGb3JtSWRlbnRpZnlMb2NrKHQ9bnVsbCl7bGV0IGU9WG8uTG8odCk7ITA9PT10bz8uY2hhdD8uZm9yY2VfaWRlbnRpZnkmJihlLmxvY2tzLmlkZW50aWZ5PSEwKX0sY2hlY2tGb3JtSWRlbnRpZnlVbmxvY2sodD1udWxsKXtsZXQgZT1Yby5Mbyh0KTshMCE9PVJvLmhhc19mb3JtX2Rpc2FibGVkJiYoZS5sb2Nrcy5pZGVudGlmeT0hMSl9LHNob3dJZGVudGl0eSh0PSEwLGU9bnVsbCl7bGV0IHM9YCoqJHtidS50ZXh0KCJjaGF0IiwiY2hhdF9tZXNzYWdlX3RleHRfaWRlbnRpdHlfbWFpbiIpfSoqXG5fJHtidS50ZXh0KCJjaGF0IiwiY2hhdF9tZXNzYWdlX3RleHRfaWRlbnRpdHlfYXNrIil9X2AsaT10PT4oKT0+e19vLnVwZGF0ZSgiaWRlbnRpdHkiLHQsZSl9LG49W107Zm9yKGxldCByPTA7cjxXby5sZW5ndGg7cisrKXtsZXQgdD1Xb1tyXSxlPUdvW3JdOyEwPT09dG8/LmNoYXQ/LltgJHt0fV92aXNpdG9yc2BdJiZuLnB1c2goe3ZhbHVlOnQsaWNvbjplLHNlbGVjdGVkOiExLGxhYmVsOmJ1LnRleHQoImNoYXQiLGBjaGF0X21lc3NhZ2VfdGV4dF9pZGVudGl0eV9waWNrXyR7dH1gKSxoYW5kbGVyOmkodCl9KX1uLmxlbmd0aD4wJiZYby5KbygiaWRlbnRpdHkiLCJkZWZhdWx0IiwicGlja2VyIix7aWQ6ImFzay1pZGVudGl0eSIsdGV4dDpzLGNob2ljZXM6bn0sZSx0LHQpfSxoaWRlSWRlbnRpdHkodD1udWxsKXtYby5LbygiaWRlbnRpdHkiLHQpfSxzaG93R2FtZSh0PSEwLGU9bnVsbCl7bGV0IHM9YCoqJHtidS50ZXh0KCJjaGF0IiwiY2hhdF9tZXNzYWdlX3RleHRfZ2FtZV9tYWluIil9Kipcbl8ke2J1LnRleHQoImNoYXQiLCJjaGF0X21lc3NhZ2VfdGV4dF9nYW1lX2FzayIpfV9gO1hvLkpvKCJnYW1lIiwiZGVmYXVsdCIsInBpY2tlciIse2lkOiJhc2stZ2FtZSIsdGV4dDpzLGNob2ljZXM6W3t2YWx1ZToicGxheSIsaWNvbjoi8J+Vue+4jyIsc2VsZWN0ZWQ6ITEsbGFiZWw6YnUudGV4dCgiY2hhdCIsImNoYXRfbWVzc2FnZV90ZXh0X2dhbWVfcGlja195ZXMiKSxoYW5kbGVyOigpPT57Z28uc3RhcnQoKSxfby51cGRhdGUoImdhbWUiLCExLGUpfX0se3ZhbHVlOiJpZ25vcmUiLHNlbGVjdGVkOiExLGxhYmVsOmJ1LnRleHQoImNoYXQiLCJjaGF0X21lc3NhZ2VfdGV4dF9nYW1lX3BpY2tfbm8iKSxoYW5kbGVyOigpPT57X28udXBkYXRlKCJnYW1lIiwhMSxlKX19XX0sZSx0LHQpfSxoaWRlR2FtZSh0PW51bGwpe1hvLktvKCJnYW1lIix0KX0sc2hvd0ZlZWRiYWNrKHQ9ITAsZT1udWxsKXtsZXQgcz1gKioke2J1LnRleHQoImNoYXQiLCJjaGF0X21lc3NhZ2VfdGV4dF9mZWVkYmFja19tYWluIil9Kipcbl8ke2J1LnRleHQoImNoYXQiLCJjaGF0X21lc3NhZ2VfdGV4dF9mZWVkYmFja19hc2siKX1fYDtYby5KbygiZmVlZGJhY2siLCJkZWZhdWx0IiwicGlja2VyIix7aWQ6ImFzay1mZWVkYmFjayIsdGV4dDpzLGNob2ljZXM6W3t2YWx1ZToicmF0ZSIsaWNvbjoi4q2Q77iPIixzZWxlY3RlZDohMSxsYWJlbDpidS50ZXh0KCJjaGF0IiwiY2hhdF9tZXNzYWdlX3RleHRfZmVlZGJhY2tfcGlja19yYXRlIiksaGFuZGxlcjooKT0+e2NvLnNob3coZSksX28udXBkYXRlKCJmZWVkYmFjayIsInJhdGUiLGUpfX0se3ZhbHVlOiJpZ25vcmUiLHNlbGVjdGVkOiExLGxhYmVsOmJ1LnRleHQoImNoYXQiLCJjaGF0X21lc3NhZ2VfdGV4dF9mZWVkYmFja19waWNrX2lnbm9yZSIpLGhhbmRsZXI6KCk9Pntfby51cGRhdGUoImZlZWRiYWNrIiwhMSxlKX19XX0sZSx0LHQpfSxoaWRlRmVlZGJhY2sodD1udWxsKXtYby5LbygiZmVlZGJhY2siLHQpfSxzaG93RmVlZGJhY2tTdWJtaXR0ZWQodD0hMCxlPW51bGwpe2xldCBzPWJ1LnRleHQoImNoYXQiLCJjaGF0X21lc3NhZ2VfdGV4dF9mZWVkYmFja19zdWJtaXR0ZWQiKTtYby5KbygiZmVlZGJhY2siLCJzdWJtaXR0ZWQiLCJ0ZXh0IixzLGUsdCx0KX0sc2hvd0NvbXBvc2UodCxlPSExLHM9bnVsbCl7bGV0IGk9WG8uTG8ocyksbj1pLmNvbXBvc2UuaXNfYWN0aXZlfHwhMTtpLmNvbXBvc2UudGltZXN0YW1wPXQsaS5jb21wb3NlLmlzX2FjdGl2ZT0hMCxpLmNvbXBvc2UuaXNfYXV0b21hdGVkPWUsITAhPT1uJiYoWG8uWW8ocyksITA9PT1Qby5pc0N1cnJlbnRTZXNzaW9uSWQocykmJk9yLnNjcm9sbFRvTGFzdE1lc3NhZ2UoImZyb20iKSl9LGhpZGVDb21wb3NlKHQ9bnVsbCl7bGV0IGU9WG8uTG8odCk7ZS5jb21wb3NlLmlzX2FjdGl2ZT0hMSxlLmNvbXBvc2UuaXNfYXV0b21hdGVkPSExLGUuY29tcG9zZS50aW1lc3RhbXA9bnVsbH0sZG93bmxvYWRUcmFuc2NyaXB0KHQ9bnVsbCl7bGV0IGU9WG8uTG8odCkscz0obmV3IERhdGUpLnRvTG9jYWxlRGF0ZVN0cmluZygpLGk9YnUudGV4dCgiY2hhdCIsImNoYXRfbWVzc2FnZV90cmFuc2NyaXB0X25hbWUiLFtzLnJlcGxhY2UoS28sIi0iKV0pLG49YnUudGV4dCgiY2hhdCIsImNoYXRfbWVzc2FnZV90cmFuc2NyaXB0X2NvbnRlbnRfdGl0bGUiLFt0by53ZWJzaXRlLm5hbWUsc10pO24rPSJcbiI7bGV0IHI9IiI7Zm9yKGxldCBvPTA7bzxlLmxpc3QubGVuZ3RoO28rKyl7bGV0IHQ9ZS5saXN0W29dO2lmKHQudGltZXN0YW1wPjAmJnQuY29udGVudCYmdC51c2VyJiYhSG8uaW5jbHVkZXModC51c2VyLnNvdXJjZSkpe2xldCBlLHM9bmV3IERhdGUodC50aW1lc3RhbXApLnRvTG9jYWxlVGltZVN0cmluZygpLGk9bmV3IERhdGUodC50aW1lc3RhbXApLnRvTG9jYWxlRGF0ZVN0cmluZygpLG89VGkubmFtZSgpLnBhcnNlX2ZpcnN0X25hbWUodC51c2VyPy5uaWNrbmFtZXx8Iig/KSIpO3N3aXRjaCh0LnR5cGUpe2Nhc2UidGV4dCI6ZT10LmNvbnRlbnQ7YnJlYWs7Y2FzZSJmaWxlIjp7bGV0IHM9dC5jb250ZW50O2U9cy5uYW1lP2Ake3MubmFtZX0gJHtzLnVybH1gOnMudXJsO2JyZWFrfWNhc2UiYW5pbWF0aW9uIjpjYXNlImF1ZGlvIjplPXQuY29udGVudC51cmw7YnJlYWs7Y2FzZSJwaWNrZXIiOmNhc2UiZmllbGQiOmNhc2UiY2Fyb3VzZWwiOmU9dC5jb250ZW50LnRleHR9ZSYmInN0cmluZyI9PXR5cGVvZiBlJiYociE9PWkmJihyPWksbis9IlxuLS0tXG5cbiIsbis9YCR7aX1cblxuYCksbis9YFske3N9XSAke299OiAke2V9XG5gKX19eHIuZG93bmxvYWRMb2NhbEZpbGUoYCR7aX0udHh0YCxuKX0sY2hlY2tVc2VySWRlbnRpdHkodD0hMSxzPW51bGwpe2xldCBpPVhvLkxvKHMpLG49ITA9PT10by5jaGF0LmZvcmNlX2lkZW50aWZ5O2lmKCEwPT09KHZvaWQgMD09PV9vLnN0YXRlcyhzKS5pZGVudGl0eXx8ImRlZmF1bHQiPT09X28uc3RhdGVzKHMpLmlkZW50aXR5JiZuKSl7bGV0IHI9ZSgpLkFjdGlvbi5nZXRfdXNlcl9lbWFpbCgpLG89ZSgpLkFjdGlvbi5nZXRfdXNlcl9waG9uZSgpLHU9dG8uY2hhdC5lbWFpbF92aXNpdG9ycyxsPXRvLmNoYXQucGhvbmVfdmlzaXRvcnM7cmV0dXJuKCFyJiYhMD09PXV8fCFvJiYhMD09PWwpJiYhciYmIW8mJihudWxsIT09aS50aW1lb3V0cy5zaG93SWRlbnRpdHkmJnhyLmNsZWFyVGltZW91dChpLnRpbWVvdXRzLnNob3dJZGVudGl0eSksaS50aW1lb3V0cy5zaG93SWRlbnRpdHk9eHIuc2V0VGltZW91dCgoKT0+e2lmKGkudGltZW91dHMuc2hvd0lkZW50aXR5PW51bGwsITA9PT10JiYhMT09PW4pcmV0dXJuIG51bGw7aWYoITA9PT1pLmNvbXBvc2UuaXNfYWN0aXZlJiYhMD09PWkuY29tcG9zZS5pc19hdXRvbWF0ZWQpcmV0dXJuIHZvaWQgWG8uY2hlY2tVc2VySWRlbnRpdHkoITEscyk7bGV0IGU9ITA7ITA9PT1pLmhhc19yZWNlaXZlZF9tZXNzYWdlcyYmaS5tZXNzYWdlX2xhc3RfdGltZXN0YW1wX2F1dG9tYXRlZD4wJiZVbygpLWkubWVzc2FnZV9sYXN0X3RpbWVzdGFtcF9hdXRvbWF0ZWQ8PXFvJiYoZT0hMSk7bGV0IHI9ImRlZmF1bHQiOyExPT09KHUmJmwpJiZlJiYoITA9PT11P3I9ImVtYWlsIjohMD09PWwmJihyPSJwaG9uZSIpKSxfby51cGRhdGUoImlkZW50aXR5IixyLHMpLGxvLnVwZGF0ZSgid2Fybl9yZXBseSIsInNob3ciLHMpfSxuPzA6cW8pLG4mJlhvLmNoZWNrRm9ybUlkZW50aWZ5TG9jayhzKSwhMCl9cmV0dXJuIG51bGx9LHJlZ2lzdGVyVW5yZWFkSGFuZGxlcigpe3lyLk1lc3NhZ2Uuc2V0VW5yZWFkTWVzc2FnZXNDYWxsYmFjaygodCxlLHMsaSk9Pnt4ci5zZXRUaW1lb3V0KCgpPT57WG8udXBkYXRlVW5yZWFkKGUscyxpLHQpfSwwKX0pfSxnZXRVbnJlYWQ6KHQ9bnVsbCk9PlhvLkxvKHQpLnVucmVhZF9jb3VudCx1cGRhdGVVbnJlYWQodD0wLGU9W10scz1bXSxpPW51bGwpe2xldCBuPVhvLkxvKGkpLHI9dW8udG9vbHRpcHM7bi51bnJlYWRfY291bnQ9dDtsZXQgbz1Qby5jb252ZXJzYXRpb25zLmFsbF91bnJlYWRfY291bnR8fDA7aWYodD4wKXtsZXQgdD0hMT09PXIubmV3X21lc3NhZ2VzLnZpc2libGU7WG8uWm8oZSxzLHQsaSksITA9PT10JiYobnVsbCE9PW4udGltZW91dHMudG9vbHRpcFNob3dEZWxheSYmeHIuY2xlYXJUaW1lb3V0KG4udGltZW91dHMudG9vbHRpcFNob3dEZWxheSksbi50aW1lb3V0cy50b29sdGlwU2hvd0RlbGF5PXhyLnNldFRpbWVvdXQoKCk9PntuLnRpbWVvdXRzLnRvb2x0aXBTaG93RGVsYXk9bnVsbCxyLm5ld19tZXNzYWdlcy52aXNpYmxlPSEwLHIubmV3X21lc3NhZ2VzLmFuaW1hdGU9ITAseHIuc2V0VGltZW91dCgoKT0+e3IubmV3X21lc3NhZ2VzLmFuaW1hdGU9ITF9LDUwMCl9LDEwMCkpfWVsc2UgbnVsbCE9PW4udGltZW91dHMudG9vbHRpcFNob3dEZWxheSYmeHIuY2xlYXJUaW1lb3V0KG4udGltZW91dHMudG9vbHRpcFNob3dEZWxheSksci5uZXdfbWVzc2FnZXMudmlzaWJsZT0hMSxyLm5ld19tZXNzYWdlcy5hbmltYXRlPSExO251bGw9PT1Rby5wYWdlX3RpdGxlX2N1cnJlbnQmJihRby5wYWdlX3RpdGxlX2N1cnJlbnQ9ZG9jdW1lbnQudGl0bGUpLFFvLnBhZ2VfdGl0bGVfY3VycmVudCYmKG8+MCYmITAhPT1Rby5pc19pbnZpc2libGU/ZG9jdW1lbnQudGl0bGU9YPCfkqwke299IC0gJHtRby5wYWdlX3RpdGxlX2N1cnJlbnR9YDpkb2N1bWVudC50aXRsZT1Rby5wYWdlX3RpdGxlX2N1cnJlbnQpfSxzeW5jaHJvbml6ZUhpc3RvcnlBbmROZXcodD1udWxsKXt5ci5NZXNzYWdlLmdldE1lc3NhZ2VDb21wb3NlKHQpLHlyLk1lc3NhZ2UuZ2V0VW5yZWFkTWVzc2FnZXModCkseXIuTWVzc2FnZS5nZXRNZXNzYWdlSGlzdG9yeSh0KSwwPT09eXIuTWVzc2FnZS5jb3VudE1lc3NhZ2VIaXN0b3J5KHQpJiZYby5Ybyh0KX0scmVzdG9yZUhpc3RvcnkodD1udWxsKXtYby5Rbyh0KSxYby5zeW5jaHJvbml6ZUhpc3RvcnlBbmROZXcodCl9LGhhbmRsZUhpc3RvcnkodD1bXSxlPW51bGwpe2xldCBzPVhvLkxvKGUpO2ZvcihsZXQgaT0wO2k8dC5sZW5ndGg7aSsrKXtsZXQgbj10W2ldO1hvLk1vKG4sZSksInVzZXIiPT09bi5mcm9tJiYhMD09PW4ucmVhZCYmcy5zZW50X3JlYWRfZmluZ2VycHJpbnRzLnB1c2gobi5maW5nZXJwcmludCl9WG8uWG8oZSl9LE1vKHQsZT1udWxsKXtsZXQgcz1Yby5MbyhlKSxpPSEwLG49eHIuY2xvbmUodCk7aWYoaT0hcy5maW5nZXJwcmludHNbbi5maW5nZXJwcmludF0sITA9PT1pKXZvaWQgMD09PW4ucmVhZCYmKG4ucmVhZD0hMSksdm9pZCAwPT09bi5tZXRhcyYmKG4ubWV0YXM9e2lzX25ldzohMSxpc19wZW5kaW5nOnZvaWQgMCxlcnJvcjpudWxsfSwiZmllbGQiIT09bi50eXBlJiYicGlja2VyIiE9PW4udHlwZXx8KG4ubWV0YXMuZmllbGQ9e3ZhbHVlOiIifSkpLHMuZmluZ2VycHJpbnRzW24uZmluZ2VycHJpbnRdPSEwLHMubGlzdC5wdXNoKG4pO2Vsc2UgZm9yKGxldCByPTA7cjxzLmxpc3QubGVuZ3RoO3IrKylpZihzLmxpc3Rbcl0uZmluZ2VycHJpbnQ9PT1uLmZpbmdlcnByaW50KXt4ci5tZXJnZShzLmxpc3Rbcl0sbik7YnJlYWt9cmV0dXJuIFhvLnR1KG4udHlwZSxuLmNvbnRlbnQsbi5maW5nZXJwcmludCxuLmZyb20sbi51c2VyfHx7fSxuLnRpbWVzdGFtcCxuLmF1dG9tYXRlZCxlKSxpfSxHbyh0LGU9bnVsbCl7bGV0IHM9WG8uTG8oZSksaT0hMTtpZighMD09PXMuZmluZ2VycHJpbnRzW3RdKXtkZWxldGUgcy5maW5nZXJwcmludHNbdF07bGV0IG49e21lc3NhZ2VzOnMubGlzdCxwcmV2aWV3OnMucHJldmlld307Zm9yKGxldCBzIGluIG4pe2xldCBpPW5bc107aWYoaS5sZW5ndGg+MClmb3IobGV0IHM9MDtzPGkubGVuZ3RoO3MrKyl7bGV0IG49aVtzXTtpZihuLmZpbmdlcnByaW50PT09dCl7aS5zcGxpY2UocywxKSxYby5ldShuLnR5cGUsbi5jb250ZW50LG4uZmluZ2VycHJpbnQsbi5mcm9tLG4udGltZXN0YW1wLGUpO2JyZWFrfX19aT0hMH1yZXR1cm4gaX0sdHUodCxlLHMsaSxuLHIsbyx1PW51bGwpe2xldCBsPVhvLkxvKHUpLGE9ImxvY2FsIiE9PW4uc291cmNlJiYhSG8uaW5jbHVkZXMobi5zb3VyY2UpJiYhMDsib3BlcmF0b3IiPT09aSYmKGwuY29tcG9zZS50aW1lc3RhbXAmJnI+MCYmcj5sLmNvbXBvc2UudGltZXN0YW1wJiYhMD09PWEmJlhvLmhpZGVDb21wb3NlKHUpLHI+MCYmITA9PT1hJiYobG8udXBkYXRlKCJ3YWl0X3JlcGx5IiwibG9jayIsdSksX28udXBkYXRlKCJnYW1lIiwhMSx1KSxYby5zdSh0LGUscyx1KSkpLHI+MCYmKGwuaGFzX21lc3NhZ2VzPSEwLGwubWVzc2FnZV9sYXN0X3RpbWVzdGFtcD1yLCEwPT09YSYmKCJvcGVyYXRvciI9PT1pPyhsLmhhc19yZWNlaXZlZF9tZXNzYWdlcz0hMCwhMD09PW8mJihsLm1lc3NhZ2VfbGFzdF90aW1lc3RhbXBfYXV0b21hdGVkPXIpKTpsLmhhc19zZW50X21lc3NhZ2VzPSEwKSxYby5pdSh1KSksITE9PT1Rby5oYXNfbG9jYWxfbWVzc2FnZXMmJiJsb2NhbCI9PT1uLnNvdXJjZSYmKFFvLmhhc19sb2NhbF9tZXNzYWdlcz0hMCl9LGV1KHQsZSxzLGksbixyPW51bGwpeyJvcGVyYXRvciI9PT1pJiZuPjAmJlhvLm51KHQsZSxzLHIpfSxWbyh0LGU9bnVsbCxzPW51bGwpe2xldCBpPVhvLkxvKGUpLG49WG8uZ2V0KHQsZSkscj0hMTtyZXR1cm4gbiYmKG4ubWV0YXMuaXNfcGVuZGluZz0hMSxuLm1ldGFzLmVycm9yPXMpLHQgaW4gaS50aW1lb3V0cy5hY2tub3dsZWRnZW1lbnRzJiYoeHIuY2xlYXJUaW1lb3V0KGkudGltZW91dHMuYWNrbm93bGVkZ2VtZW50c1t0XSksZGVsZXRlIGkudGltZW91dHMuYWNrbm93bGVkZ2VtZW50c1t0XSxyPSEwKSxyfSxYbyh0PW51bGwpe2xldCBlPVhvLkxvKHQpO2Uuc2VudF9yZWFkX2ZpbmdlcnByaW50cy5sZW5ndGg+MCYmKFhvLmFja25vd2xlZGdlUmVhZFNlbmQoZS5zZW50X3JlYWRfZmluZ2VycHJpbnRzLHQsITApLGUuc2VudF9yZWFkX2ZpbmdlcnByaW50cz1bXSksRW8ucmV0cmlnZ2VyKCJpbnRlbnQiLHQpLEVvLnJldHJpZ2dlcigic2Nyb2xsIix0KSxPci5mb2N1c09uRm9yZWdyb3VuZCgpLCEwPT09UG8uaXNDdXJyZW50U2Vzc2lvbklkKHQpJiZPci5zY3JvbGxUb0xhc3RNZXNzYWdlKCksWG8uTm8oITAsdCl9LEhvKHQpeyExPT09UG8uaXNfZXhwYW5kZWQmJiExPT09UG8ud2FzX2F1dG9fZXhwYW5kZWQuY2hhdCYmITA9PT10LmF1dG9tYXRlZCYmInRleHQiPT09dC50eXBlJiZ0LmNvbnRlbnQubGVuZ3RoPjUwMCYmKFBvLndhc19hdXRvX2V4cGFuZGVkLmNoYXQ9ITAsUG8uZXhwYW5kKCEwKSl9LFdvKHQsZT1udWxsLHM9ITApe2lmKHQucHJvcGVydGllcyl7bGV0IGk9dC5wcm9wZXJ0aWVzWyJ4LWNsaWVudC1pbnRlbnQiXXx8bnVsbDtudWxsIT09aSYmITA9PT1zJiZ0aGlzLnJ1KGksZSl9fSxydSh0LHM9bnVsbCl7c3dpdGNoKHQpe2Nhc2UiYXNrLWVtYWlsIjpfby51cGRhdGUoImlkZW50aXR5IiwiZW1haWwiLHMpO2JyZWFrO2Nhc2UiYXNrLXBob25lIjpfby51cGRhdGUoImlkZW50aXR5IiwicGhvbmUiLHMpO2JyZWFrO2Nhc2Uic3RhdGUtc3RhcnQiOk9vLnNob3dTdGFydCgpO2JyZWFrO2Nhc2Uic3RhdGUtZXNjYWxhdGUiOntsZXQgdD1lKCkuQWN0aW9uLmdldF91c2VyX2VtYWlsKCksaT10by5jaGF0LmVtYWlsX3Zpc2l0b3JzO3R8fCEwIT09aXx8eHIuc2V0VGltZW91dCgoKT0+e19vLnVwZGF0ZSgiaWRlbnRpdHkiLCJlbWFpbCIscywhMCl9LHFvKTticmVha319fSxRbyh0PW51bGwpe2xldCBlPWJ1LnRleHQoInRoZW1lX3dlbGNvbWUiLFsiZGVmYXVsdF9jaGF0IixgJHt0by5jaGF0Py50aGVtZV93ZWxjb21lfV9jaGF0YF0sW3RvLndlYnNpdGU/Lm5hbWVdKTtYby5Kbygid2VsY29tZSIsImRlZmF1bHQiLCJ0ZXh0IixlLHQsITEsITEpfSxKbyh0LGUscyxpLG49bnVsbCxyPSExLG89ITApe2xldCB1PVhvLkxvKG4pO2lmKEhvLmluY2x1ZGVzKHQpJiZ1LndlYnNpdGVfbWVzc2FnZXNfcGFydHNbdF0hPT1lKXt1LndlYnNpdGVfbWVzc2FnZXNfcGFydHNbdF09ZTtsZXQgbD0obmV3IERhdGUpLmdldFRpbWUoKTsid2VsY29tZSI9PT10JiYobD0wKSxYby5oYW5kbGVSZWNlaXZlZCh7dHlwZTpzLHRpbWVzdGFtcDpsLGNvbnRlbnQ6aSxmaW5nZXJwcmludDpgJCR7dH1gLGZyb206Im9wZXJhdG9yIix1c2VyOntzb3VyY2U6dCx0eXBlOiJ3ZWJzaXRlIix1c2VyX2lkOlFvLndlYnNpdGU/LmlkfX0sbiwhMSxyLG8sITApfX0sS28odCxlPW51bGwpe2xldCBzPVhvLkxvKGUpO0hvLmluY2x1ZGVzKHQpP3Mud2Vic2l0ZV9tZXNzYWdlc19wYXJ0c1t0XSYmKGRlbGV0ZSBzLndlYnNpdGVfbWVzc2FnZXNfcGFydHNbdF0sWG8ucmVtb3ZlKGAkJHt0fWAsZSkpOldlLmVycm9yKGBTb3VyY2UgJHt0fSBub3QgYWxsb3dlZGApfSxZbyh0PW51bGwpe2xldCBlPVhvLkxvKHQpO2UuY29tcG9zZS50aW1lc3RhbXAmJihVbygpLWUuY29tcG9zZS50aW1lc3RhbXA+PTEyZTQ/WG8uaGlkZUNvbXBvc2UodCk6eHIuc2V0VGltZW91dCgoKT0+e1hvLllvKHQpfSw1ZTMpKX0saXUodD1udWxsKXtsZXQgcz0hMD09PVhvLkxvKHQpLmhhc19tZXNzYWdlcyYmITAhPT1Rby5pc19hY3Rpdml0eV9vdXRkYXRlZDtpZihRby5pc19hY3Rpdml0eV9vbmdvaW5nIT09cyl7UW8uaXNfYWN0aXZpdHlfb25nb2luZz1zO2xldCB0PShkb2N1bWVudC5hY3RpdmVFbGVtZW50Py50YWdOYW1lfHwiIikudG9Mb3dlckNhc2UoKTsiaW5wdXQiIT09dCYmInRleHRhcmVhIiE9PXQmJmUoKS5DaGF0LkludGVyZmFjZS5yZXF1ZXN0RHluYW1pY1NpemluZ1Byb3BlcnRpZXMoKX19LHN1KHQsZSxzLGk9bnVsbCl7bGV0IG49WG8uTG8oaSk7aWYoITA9PT1Kby5pbmNsdWRlcyh0KSYmITA9PT1lLnJlcXVpcmVkKXtsZXQgcj0hMTtzd2l0Y2godCl7Y2FzZSJmaWVsZCI6ZS52YWx1ZSYmKHI9ITApO2JyZWFrO2Nhc2UicGlja2VyIjp7bGV0IHQ9ZTtmb3IobGV0IGU9MDtlPHQuY2hvaWNlcy5sZW5ndGg7ZSsrKWlmKCEwPT09dC5jaG9pY2VzW2VdLnNlbGVjdGVkKXtyPSEwO2JyZWFrfWJyZWFrfX1sZXQgbz1uLnByb21wdF9maW5nZXJwcmludHMuaW5kZXhPZihzKTshMT09PXI/LTE9PT1vJiZuLnByb21wdF9maW5nZXJwcmludHMucHVzaChzKTpvPi0xJiZuLnByb21wdF9maW5nZXJwcmludHMuc3BsaWNlKG8sMSksbi5sb2Nrcy5wcm9tcHQ9bi5wcm9tcHRfZmluZ2VycHJpbnRzLmxlbmd0aD4wLGxvLnVwZGF0ZSgid2Fybl9wcm9tcHQiLG4ubG9ja3MucHJvbXB0PyJzaG93IjoiaGlkZSIsaSl9fSxudSh0LGUscyxpPW51bGwpe2xldCBuPVhvLkxvKGkpO2lmKCEwPT09Sm8uaW5jbHVkZXModCkmJiEwPT09ZS5yZXF1aXJlZCl7bGV0IHQ9bi5wcm9tcHRfZmluZ2VycHJpbnRzLmluZGV4T2Yocyk7dD4tMSYmKG4ucHJvbXB0X2ZpbmdlcnByaW50cy5zcGxpY2UodCwxKSwwPT09bi5wcm9tcHRfZmluZ2VycHJpbnRzLmxlbmd0aCYmKG4ubG9ja3MucHJvbXB0PSExLGxvLnVwZGF0ZSgid2Fybl9wcm9tcHQiLCJoaWRlIixpKSkpfX0sTm8odD0hMSxlPW51bGwpe2xldCBzPVhvLkxvKGUpOyExIT09X28uc3RhdGVzKGUpLmdhbWUmJiEwPT09cy5oYXNfc2VudF9tZXNzYWdlcyYmITAhPT1zLmhhc19yZWNlaXZlZF9tZXNzYWdlcyYmbnVsbD09PXMudGltZW91dHMucmVwbHkmJihzLnRpbWVvdXRzLnJlcGx5PXhyLnNldFRpbWVvdXQoKCk9PntzLnRpbWVvdXRzLnJlcGx5PW51bGwsITAhPT1zLmhhc19yZWNlaXZlZF9tZXNzYWdlcyYmITA9PT10by5jaGF0Py53YWl0X2dhbWUmJl9vLnVwZGF0ZSgiZ2FtZSIsdm9pZCAwLGUpfSwhMD09PXQ/M2U0OjZlNCkpfSxxbyh0LGU9bnVsbCl7bGV0IHM9WG8uTG8oZSksaT1Yby5nZXQodCxlKTtpJiYoeHIuc2V0VGltZW91dCgoKT0+e3ZvaWQgMD09PWkubWV0YXMuaXNfcGVuZGluZyYmKGkubWV0YXMuaXNfcGVuZGluZz0hMCl9LDE1MDApLHMudGltZW91dHMuYWNrbm93bGVkZ2VtZW50c1t0XT14ci5zZXRUaW1lb3V0KCgpPT57WG8uZXJyb3JSZWplY3RlZCh0LGUsInRpbWVvdXQiKX0sM2U0KSl9LFVvKHQsZT1udWxsKXtsZXQgcz1Yby5nZXQodCxlKTtzJiYocy5tZXRhcy5pc19uZXc9ITAseHIuc2V0VGltZW91dCgoKT0+e3MubWV0YXMuaXNfbmV3PSExfSw0MDApKX0sWm8odCxlLHMsaT1udWxsKXtsZXQgbj1Yby5MbyhpKSxyPVtdLG89bnVsbCx1PVtdO2ZvcihsZXQgbD1lLmxlbmd0aC0xO2w+PTAmJiEodC5pbmNsdWRlcyhlW2xdLmZpbmdlcnByaW50KSYmKHIudW5zaGlmdChlW2xdKSxyLmxlbmd0aD49MykpO2wtLSk7bi5wcmV2aWV3PVtdO2ZvcihsZXQgbD0wO2w8ci5sZW5ndGg7bCsrKXtsZXQgdD1yW2xdLGU9eHIuY2xvbmUodCk7Tm8uaW5jbHVkZXModC50eXBlKSYmbi5wcmV2aWV3LnB1c2goZSksbD09PXIubGVuZ3RoLTEmJm51bGw9PT1vJiYobz1lLmZpbmdlcnByaW50KSxudWxsPT09byYmbnVsbCE9PW4ucHJldmlld19zdGFja19sYXN0X2ZpbmdlcnByaW50fHx1LnB1c2goZSl9bnVsbCE9PW8mJihuLnByZXZpZXdfc3RhY2tfbGFzdF9maW5nZXJwcmludD1vKTtmb3IobGV0IGw9MDtsPHUubGVuZ3RoO2wrKyl1W2xdLmFuaW1hdGU9ITA7cmV0dXJuIHhyLnNldFRpbWVvdXQoKCk9Pntmb3IobGV0IHQ9MDt0PHUubGVuZ3RoO3QrKyl1W3RdLmFuaW1hdGU9ITF9LDFlMysoITA9PT1zPzEwMDowKSkscn0sTG8odD1udWxsKXtsZXQgZT1aZSh0PVBvLmVmZmVjdGl2ZVNlc3Npb25JZCh0KXx8ImRlZmF1bHQiLFpvLFhvLkRvKTtyZXR1cm4gZS5zZXNzaW9uX2lkfHwoZS5zZXNzaW9uX2lkPXQpLGV9fSxabz17c2Vzc2lvbl9pZDpudWxsLGxpc3Q6W10scHJldmlldzpbXSxmaW5nZXJwcmludHM6e30sY29tcG9zZTp7aXNfYWN0aXZlOiExLGlzX2F1dG9tYXRlZDohMSx0aW1lc3RhbXA6bnVsbH0sbG9ja3M6e2lkZW50aWZ5OiExLHByb21wdDohMX0sc3RhdGVzOntleHBhbmRlZF9zb3VyY2VzOnt9fSx0aW1lb3V0czp7YWNrbm93bGVkZ2VtZW50czp7fSxyZXBseTpudWxsLHNob3dJZGVudGl0eTpudWxsLHRvb2x0aXBTaG93RGVsYXk6bnVsbH0sbWVzc2FnZV9sYXN0X3RpbWVzdGFtcDowLG1lc3NhZ2VfbGFzdF90aW1lc3RhbXBfYXV0b21hdGVkOjAsd2Vic2l0ZV9tZXNzYWdlc19wYXJ0czp7fSx1bnJlYWRfY291bnQ6MCxoYXNfc2VudF9tZXNzYWdlczohMSxoYXNfcmVjZWl2ZWRfbWVzc2FnZXM6ITEsaGFzX21lc3NhZ2VzOiExLHNlbnRfcmVhZF9maW5nZXJwcmludHM6W10scmVjZWl2ZV9taXJyb3JfZmluZ2VycHJpbnRzOltdLHByZXZpZXdfc3RhY2tfbGFzdF9maW5nZXJwcmludDpudWxsLHByb21wdF9maW5nZXJwcmludHM6W10sbGF0ZXN0X2ZpbmdlcnByaW50Om51bGx9O01lLlRFU1QmJih3aW5kb3cuJHNob3dDb21wb3NlPSh0LGU9ITEpPT57WG8uc2hvd0NvbXBvc2UodCxlKX0sd2luZG93LiRoaWRlQ29tcG9zZT0oKT0+e1hvLmhpZGVDb21wb3NlKCl9KTt2YXIgWG89WWUoe0RvOnt9fSxZbyk7WGUoKCk9PntYby5Ebz17fX0pLFhvLmNvbnZlcnNhdGlvbj1TZSgoKT0+WG8uTG8oKSk7dmFyIFFvPVllKHtzZXNzaW9uX2lkOm51bGwsc2Vzc2lvbl9oYXNoOm51bGwsZm9yY2VkX3Nlc3Npb25faWQ6bnVsbCx0b2tlbl9pZDpudWxsLGNvb2tpZV9leHBpcmU6bnVsbCxjb29raWVfZG9tYWluOm51bGwsYnJvd3Nlcl91c2VyYWdlbnQ6bnVsbCxicm93c2VyX3RpbWV6b25lOm51bGwsYnJvd3Nlcl9jYXBhYmlsaXRpZXM6W10sYnJvd3Nlcl9sb2NhbGVzOltdLHBhZ2VfZG9tYWluOm51bGwscGFnZV91cmw6bnVsbCxwYWdlX3RpdGxlX2N1cnJlbnQ6bnVsbCxpc19oaWRkZW46ITEsaXNfZnVsbF92aWV3OiExLGlzX3NtYWxsX3ZpZXc6ITEsaXNfbGFyZ2VfdmlldzohMSxpc19hY3Rpdml0eV9vbmdvaW5nOiExLGhhc19pbnRlcmFjdGVkOiExLGhhc19sb2NhbF9tZXNzYWdlczohMSxmb3JjZV9zaG93OiExLGVycm9yX21vZGU6ITEsd2Vic2l0ZTp7aWQ6IiIsZG9tYWluOiIifSxmZWF0dXJlczp7YXVkaW9fcmVjb3JkaW5nOiExfSxydW50aW1lOnt9fSx7Y2hlY2tJc0Z1bGxWaWV3OigpPT4hMD09PVFvLnJ1bnRpbWU/LmxvY2tfZnVsbF92aWV3fHwod2luZG93LmlubmVySGVpZ2h0PDYwMHx8d2luZG93LmlubmVyV2lkdGg8NDgwKSxjaGVja0lzU21hbGxWaWV3OigpPT53aW5kb3cuaW5uZXJIZWlnaHQ8NzIwfHx3aW5kb3cuaW5uZXJXaWR0aDw1NDAsY2hlY2tJc0xhcmdlVmlldzooKT0+d2luZG93LmlubmVySGVpZ2h0Pjg0MCYmd2luZG93LmlubmVyV2lkdGg+NjQwLGFwcGx5U2l6aW5nKCl7UW8uaXNfZnVsbF92aWV3PVFvLmNoZWNrSXNGdWxsVmlldygpLFFvLmlzX3NtYWxsX3ZpZXc9UW8uY2hlY2tJc1NtYWxsVmlldygpLFFvLmlzX2xhcmdlX3ZpZXc9UW8uY2hlY2tJc0xhcmdlVmlldygpfX0pO1FvLmlzX21vYmlsZV92aWV3PVNlKCgpPT4hMD09PVFvLmlzX2Z1bGxfdmlldyYmITA9PT1yby5oYXNfc2NyZWVuX3RvdWNoKSxRby5pc19ibG9ja2VkPVNlKCgpPT4oITA9PT1Rby5pc19ibG9ja2VkX3BhZ2V8fCEwPT09UW8uaXNfYmxvY2tlZF9sb2NhbGUpJiYhMCksUW8uaXNfYWN0aXZpdHlfb3V0ZGF0ZWQ9U2UoKCk9PlhvLmNvbnZlcnNhdGlvbi5tZXNzYWdlX2xhc3RfdGltZXN0YW1wPjAmJihuZXcgRGF0ZSkuZ2V0VGltZSgpLVhvLmNvbnZlcnNhdGlvbi5tZXNzYWdlX2xhc3RfdGltZXN0YW1wPj02ZTUpLFFvLmlzX2Jsb2NrZWRfbG9jYWxlPVNlKCgpPT57bGV0IHQ9anIuY29kZTtyZXR1cm4hIXRvLmNoYXQ/LmJsb2NrZWRfbG9jYWxlcz8uaW5jbHVkZXModCl9KSxRby5pc19ibG9ja2VkX3BhZ2U9U2UoKCk9PiEoISh0by5jaGF0Py5hbGxvd2VkX3BhZ2VzPy5sZW5ndGg+MCl8fHhyLmNvbXBhcmVQYWdlUnVsZXMoUW8ucGFnZV91cmwsdG8uY2hhdD8uYWxsb3dlZF9wYWdlcykpfHx4ci5jb21wYXJlUGFnZVJ1bGVzKFFvLnBhZ2VfdXJsLHRvLmNoYXQ/LmJsb2NrZWRfcGFnZXMpJiYhMCksUW8uaXNfaW52aXNpYmxlPVNlKCgpPT57bGV0IHQ9ITE7cmV0dXJuITA9PT1Rby5ydW50aW1lLmxvY2tfbWF4aW1pemVkfHwhMD09PVhvLmNvbnZlcnNhdGlvbi5oYXNfbWVzc2FnZXMmJiEwIT09UW8uaXNfYWN0aXZpdHlfb3V0ZGF0ZWR8fCghMD09PVFvLmlzX2Jsb2NrZWQmJih0PSEwKSwhMD09PXRvLmNoYXQ/LmhpZGVfdmFjYXRpb24mJih0PSEwKSwhMD09PXRvLmNoYXQ/LmhpZGVfb25fYXdheSYmITAhPT1RZS53YXNfYXZhaWxhYmlsaXR5X29ubGluZSYmITAhPT1RZS51c2Vyc19hdmFpbGFibGUmJih0PSEwKSwhMD09PXRvLmNoYXQ/LmhpZGVfb25fbW9iaWxlJiYhMD09PVFvLmlzX21vYmlsZV92aWV3JiYodD0hMCkpLHR9KSxRby5oYXNfYXV0b2ZvY3VzPVNlKCgpPT4hMCE9PVFvLmlzX21vYmlsZV92aWV3KSxRby5hY3RpdmVfb3BlcmF0b3JzPVNlKCgpPT57bGV0IHQ9W10sZT10bz8ud2Vic2l0ZT8uYWN0aXZlX29wZXJhdG9ycztpZihlPy5sZW5ndGg+MClmb3IobGV0IHM9MDtzPGUubGVuZ3RoO3MrKylzPDMmJnQucHVzaCh7dHlwZToib3BlcmF0b3IiLGlkZW50aWZpZXI6ZVtzXS51c2VyX2lkLGF2YXRhcjplW3NdLmF2YXRhcixuYW1lOlRpLm5hbWUoKS5wYXJzZV9maXJzdF9uYW1lKGVbc10ubmlja25hbWUpfSk7cmV0dXJuIHQucHVzaCh7dHlwZToid2Vic2l0ZSIsaWRlbnRpZmllcjpRby53ZWJzaXRlLmlkfSksdH0pLFFvLm90aGVyX29wZXJhdG9yc19jb3VudD1TZSgoKT0+e2xldCB0PTAsZT10byxzPWU/LndlYnNpdGU/LmFjdGl2ZV9vcGVyYXRvcnM/Lmxlbmd0aHx8MDtyZXR1cm4gZT8ud2Vic2l0ZT8uY291bnRfb3BlcmF0b3JzPnMmJih0PWU/LndlYnNpdGU/LmNvdW50X29wZXJhdG9ycy1zKSx0fSk7dmFyIHR1PW5ldyBjbGFzcyBleHRlbmRzIFJye2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdWJzY3JpYmUodCxlKXtzdXBlci5zdWJzY3JpYmUodCxlKX11bnN1YnNjcmliZSh0LGUpe3N1cGVyLnVuc3Vic2NyaWJlKHQsZSl9YXNzaXN0TW91c2UodCl7c3VwZXIuZW1pdCgiYXNzaXN0LW1vdXNlIix0KX1hc3Npc3RTY3JvbGwodCl7c3VwZXIuZW1pdCgiYXNzaXN0LXNjcm9sbCIsdCl9YXNzaXN0Q2xpY2sodCl7c3VwZXIuZW1pdCgiYXNzaXN0LWNsaWNrIix0KX19LGV1PSJhc3Npc3QiLHN1PW51bGwsaXU9WWUoe2RhdGE6bnVsbCx0eXBlOm51bGwsaXNfY29uc2VudF9yZXF1aXJlZDohMX0se3ByZXBhcmUodCl7aXUuZGF0YT10LGl1LmlzX2NvbnNlbnRfcmVxdWlyZWQ9ITAhPT10by5jaGF0Lmlnbm9yZV9wcml2YWN5JiYhMCE9PXlyLkJyb3dzaW5nLmhhc0FjY2VwdGVkQ29uc2VudCgpLHhvKCgpPT5pbXBvcnQoIi4vbWFpbl9kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PntzdT10LmRlZmF1bHQoIi5jYy04NGMyaiIpfSksX192aXRlX19tYXBEZXBzKFswLDNdKSl9LGFjY2VwdENvbnNlbnQoKXtpdS5pc19jb25zZW50X3JlcXVpcmVkPSExLHlyLkJyb3dzaW5nLmFjY2VwdCgpfSxkZWNsaW5lQ29uc2VudCgpe2l1LmlzX2NvbnNlbnRfcmVxdWlyZWQ9ITEseXIuQnJvd3NpbmcuZGVjbGluZSgpLHN1JiYoc3UudW5tb3VudCgpLHN1PW51bGwpfSxzdGFydEFzc2lzdCgpe251bGw9PT1pdS50eXBlJiYoaXUudHlwZT1ldSl9LHN0b3BBc3Npc3QoKXtpdS50eXBlPT09ZXUmJihpdS50eXBlPW51bGwpLHN1LnVubW91bnQoKSxzdT1udWxsfSxwaXBlTW91c2UodCl7aXUudHlwZT09PWV1JiZ0dS5hc3Npc3RNb3VzZSh0KX0scGlwZVNjcm9sbCh0KXtpdS50eXBlPT09ZXUmJnR1LmFzc2lzdFNjcm9sbCh0KX0scGlwZUNsaWNrKHQpe2l1LnR5cGU9PT1ldSYmdHUuYXNzaXN0Q2xpY2sodCl9fSksbnU9bmV3IGNsYXNzIGV4dGVuZHMgUnJ7Y29uc3RydWN0b3IoKXtzdXBlcigpfXN1YnNjcmliZSh0LGUpe3N1cGVyLnN1YnNjcmliZSh0LGUpfXVuc3Vic2NyaWJlKHQsZSl7c3VwZXIudW5zdWJzY3JpYmUodCxlKX1zdWNjZXNzKHQpe3N1cGVyLmVtaXQoInN1Y2Nlc3MiLHQpfX0scnU9bnVsbCxvdT1ZZSh7aXNfb3BlbmVkOiExLGlzX3Jpbmdpbmc6ITEsaXNfY2FsbGluZzohMSxtb2RlOm51bGwsc3RhdGU6bnVsbCx1c2VyOnt1c2VyX2lkOiIiLG5pY2tuYW1lOiIiLHR5cGU6IiJ9LG11dGVkOnthdWRpbzohMSx2aWRlbzohMX0sYWN0aW9uczpbXX0se3JpbmcodCl7b3Uub3UoKSxNby5pbml0aWFsaXplKCJjYWxsIiksb3UubW9kZT10Lm1vZGUsb3Uuc3RhdGU9bnVsbCxvdS51c2VyLnVzZXJfaWQ9dC51c2VyLnVzZXJfaWR8fFFvLndlYnNpdGUuaWQsb3UudXNlci5uaWNrbmFtZT1UaS5uYW1lKCkucGFyc2VfZmlyc3RfbmFtZSh0LnVzZXIubmlja25hbWUpfHx0by53ZWJzaXRlLm5hbWUsb3UudXNlci50eXBlPXQudXNlci51c2VyX2lkPyJvcGVyYXRvciI6IndlYnNpdGUiLG91LmFjdGlvbnM9b3UudXUodC5tb2RlKSxvdS5tdXRlZC5hdWRpbz0hMSxvdS5tdXRlZC52aWRlbz0hMSxvdS5pc19yaW5naW5nPSEwLHhvKCgpPT5pbXBvcnQoIi4vbWFpbl9kZWZhdWx0XzIzZTQyMTIyLmpzIikudGhlbih0PT57cnU9dC5kZWZhdWx0KCIuY2MtMWZyYjUiKSxvdS5pc19vcGVuZWQ9ITAsTW8uc3RhcnQoImNhbGwiLCJjYWxsLXJpbmciLCEwKX0pLF9fdml0ZV9fbWFwRGVwcyhbMCw0XSkpfSxzY3JlZW4oKXtvdS5vdSghMSksb3UudG9nZ2xlU3RhdGUoImNvbm5lY3RpbmciKSxvdS5pc19yaW5naW5nPSExLG91LmlzX2NhbGxpbmc9ITB9LHN0b3AoKXtvdS5vdSgpLG91LmlzX2NhbGxpbmc9ITEsb3UuaXNfcmluZ2luZz0hMSxvdS5pc19vcGVuZWQ9ITEsTW8uc3RhcnQoImNhbGwiLCJjYWxsLWhhbmd1cCIpfSxzdWNjZXNzKHQpe251LnN1Y2Nlc3ModCl9LGVycm9yKCl7b3Uub3UoKSxNby5zdGFydCgiY2FsbCIsImNhbGwtaGFuZ3VwIil9LHRvZ2dsZU1lZGlhU3RhdHVzKHQsZT0hMSl7bGV0IHM9bnVsbDtmb3IobGV0IGk9MDtpPG91LmFjdGlvbnMubGVuZ3RoO2krKyl7bGV0IGU9b3UuYWN0aW9uc1tpXTtpZihlLnR5cGU9PT10KXtzPWU7YnJlYWt9fW51bGwhPT1zJiYocy52YWx1ZT1lKSxvdS5tdXRlZFt0XT0hMT09PWV9LHRvZ2dsZVN0YXRlKHQpe291LnN0YXRlPXR9LG91KHQ9ITApeyEwPT09b3UuaXNfb3BlbmVkJiYhMD09PXQmJihydSYmKHJ1LnVubW91bnQoKSxydT1udWxsKSxNby5zdG9wKCJjYWxsIiwiY2FsbC1yaW5nIikpfSx1dSh0KXtsZXQgZT1be3R5cGU6ImF1ZGlvIix2YWx1ZTohMCx2aXNpYmxlOiEwLHN1cHBvcnRlZDohMH0se3R5cGU6InZpZGVvIix2YWx1ZTohMCx2aXNpYmxlOiEwLHN1cHBvcnRlZDoidmlkZW8iPT09dH0se3R5cGU6Imhhbmd1cCIsdmFsdWU6ITEsdmlzaWJsZTohMCxzdXBwb3J0ZWQ6ITB9XTtyZXR1cm4hMCE9PVFvLnJ1bnRpbWUubW9iaWxlX3NkayYmZS5wdXNoKHt0eXBlOiJ0b2dnbGUiLHZhbHVlOiExLHZpc2libGU6ITAsc3VwcG9ydGVkOiEwfSx7dHlwZToic2NyZWVuc2hhcmluZyIsdmFsdWU6ITEsdmlzaWJsZTohMCxzdXBwb3J0ZWQ6eXIuQ2FsbC5oYXNTdXBwb3J0U2NyZWVuc2hhcmluZygpfSksZX19KTtmdW5jdGlvbiB1dSh0LGUsLi4ucyl7cmV0dXJuIHQuYmluZCYmL1xbbmF0aXZlIGNvZGVcXS8udGVzdCh0LmJpbmQudG9TdHJpbmcoKSk/dC5iaW5kKGUsLi4ucyk6ZnVuY3Rpb24oLi4uaSl7cmV0dXJuIHQuYXBwbHkoZSxbLi4ucywuLi5pXSl9fXZhciBsdT0iRmlsZSIsYXU9ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsaHU9MWU2LGN1PXttYXhTaXplOjI4MDAscXVhbGl0eTouOX0sZHU9eyJpbWFnZS9qcGVnIjoiaW1hZ2UiLCJpbWFnZS9wbmciOiJpbWFnZSIsImltYWdlL3dlYnAiOiJpbWFnZSIsImltYWdlL2hlaWMiOiJpbWFnZS1oZWljIiwiaW1hZ2UvaGVpZiI6ImltYWdlLWhlaWMifSxEdT0iaW1hZ2UvanBlZyIsZnU9Ii5qcGciLHB1PVllKHtsdTpbXSxhdTpudWxsLGh1Om51bGwsaGFzX2Ryb3Bfem9uZTohMSxzdGF0ZToibm9uZSIsZmlsZXM6W119LHthc3luYyB1cGxvYWRHZW5lcmF0ZWQodCxlLHMpe2xldCBpPXB1LmdldEN1cnJlbnRGaWxlRnJvbVN0YWNrKCk7aWYoIWkpcmV0dXJuIHZvaWQgcHUuY3UoKTtpZighdHx8IWUpcmV0dXJuIGFsZXJ0KGJ1LnRleHQoImNoYXQiLCJjaGF0X2Zvcm1fYXR0YWNoX2FsZXJ0X3F1b3RhIikpLHB1LmR1KCksdm9pZCBwdS5jdSgpO2xldCBuPWF3YWl0IHB1LkR1KGkpO2lmKHB1Lmx1WzBdPW4scHUuZmlsZXMuZmluZCh0PT50LmZpbGU9PT1pKS5maWxlPW4sbi5zaXplPj1zKXJldHVybiBhbGVydChidS50ZXh0KCJjaGF0IiwiY2hhdF9mb3JtX2F0dGFjaF9hbGVydF9zaXplIixbcHUuZnUocyldKSkscHUuZHUoKSx2b2lkIHB1LmN1KCk7cHUuYXU9ZSxwdS5wdSh0LG4pfSxzZXREcm9wWm9uZSh0KXshMD09PXRvLmNoYXQ/LmZpbGVfdHJhbnNmZXImJihwdS5oYXNfZHJvcF96b25lPXQpfSxoYW5kbGVGaWxlQ2hhbmdlKHQ9W10pe2lmKCExIT09WG8uY2hlY2tJbnRlbnRTZW5kKCkmJjAhPT10Lmxlbmd0aCYmIm5vbmUiPT09cHUuc3RhdGUpe3B1Lmx1PVtdO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtsZXQgcz10W2VdO3B1LmZpbGVzLnNvbWUodD0+dC5maWxlLm5hbWU9PT1zLm5hbWUmJnQuZmlsZS5sYXN0TW9kaWZpZWQ9PT1zLmxhc3RNb2RpZmllZCl8fChwdS5maWxlcy5wdXNoKHtmaWxlOnMsdXBsb2FkaW5nOiEwLGVycm9yOiExLHNlbmQ6ITEscGFyYW1zOm51bGx9KSxwdS5sdS5wdXNoKHMpKX1wdS5sdS5sZW5ndGg+MCYmcHUuX3UoKX19LGdldEN1cnJlbnRGaWxlRnJvbVN0YWNrOigpPT5wdS5sdVswXXx8bnVsbCxyZW1vdmVGaWxlKHQpe2xldCBlPXB1LmZpbGVzLmZpbmRJbmRleChlPT5lLmZpbGU9PT10KTstMSE9PWUmJnB1LmZpbGVzLnNwbGljZShlLDEpfSxzZW5kUGVuZGluZ0ZpbGVzKCl7Wy4uLnB1LmZpbGVzXS5mb3JFYWNoKHQ9PnshMCE9PXQudXBsb2FkaW5nPyEwIT09dC5lcnJvcj9wdS5tdSh0KTpwdS5yZW1vdmVGaWxlKHQuZmlsZSk6dC5zZW5kPSEwfSl9LGFzeW5jIER1KHQpe3N3aXRjaChkdVt0LnR5cGVdfHxudWxsKXtjYXNlImltYWdlIjpyZXR1cm4gYXdhaXQgdGhpcy5ndSh0KTtjYXNlImltYWdlLWhlaWMiOntsZXQgZT1hd2FpdCB0aGlzLkZ1KHQpO3JldHVybiBudWxsPT09ZT90OmF3YWl0IHRoaXMuZ3UoZSl9fXJldHVybiB0fSxhc3luYyBndSh0KXt0cnl7bGV0IGU9KGF3YWl0IHhvKGFzeW5jKCk9Pntjb25zdHtkZWZhdWx0OnR9PWF3YWl0IGltcG9ydCgiLi92ZW5kb3ItY29tcHJlc3NvcmpzX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+X190b0VTTSh0LnQoKSwxKSk7cmV0dXJue2RlZmF1bHQ6dH19LFtdKSkuZGVmYXVsdCxzPWN1LGk9YXdhaXQgbmV3IFByb21pc2UoKGksbik9PntuZXcgZSh0LHtxdWFsaXR5OnMucXVhbGl0eSxtYXhXaWR0aDpzLm1heFNpemUsbWF4SGVpZ2h0OnMubWF4U2l6ZSxtaW1lVHlwZTp0LnR5cGUsY2hlY2tPcmllbnRhdGlvbjohMCxzdWNjZXNzKHQpe2kodCl9LGVycm9yKHQpe24odCl9fSl9KSxuPW5ldyBGaWxlKFtpXSx0Lm5hbWUse3R5cGU6aS50eXBlLGxhc3RNb2RpZmllZDp0Lmxhc3RNb2RpZmllZH0pO3JldHVybiBuLnNpemU8dC5zaXplP246dH1jYXRjaChlKXtyZXR1cm4gV2UuZXJyb3IoYEVycm9yIGF0dGVtcHRpbmcgc2hyaW5raW5nIGltYWdlIGZpbGU6ICR7dC5uYW1lfWAsZSksdH19LGFzeW5jIEZ1KHQpe3RyeXtsZXQgZT0oYXdhaXQgeG8oYXN5bmMoKT0+e2NvbnN0e2RlZmF1bHQ6dH09YXdhaXQgaW1wb3J0KCIuL3ZlbmRvci1jYW52YXMtaGVpYy10by1qcGVnX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KTtyZXR1cm57ZGVmYXVsdDp0fX0sW10pKS5kZWZhdWx0LHM9YXdhaXQobmV3IGUpLmNvbnZlcnQodCx7bWltZVR5cGU6RHUscXVhbGl0eToxfSksaT10Lm5hbWUucmVwbGFjZSgvXC4oaGVpY3xoZWlmKSQvaSxmdSk7cmV0dXJuIGkhPT10Lm5hbWV8fC9cLihqcGU/ZykkL2kudGVzdChpKXx8KGk9YCR7dC5uYW1lfSR7ZnV9YCksbmV3IEZpbGUoW3NdLGkse3R5cGU6RHUsbGFzdE1vZGlmaWVkOnQubGFzdE1vZGlmaWVkfSl9Y2F0Y2goZSl7cmV0dXJuIFdlLmVycm9yKGBFcnJvciBhdHRlbXB0aW5nIGNvbnZlcnRpbmcgSEVJQyBmaWxlIHRvIEpQRUc6ICR7dC5uYW1lfWAsZSksbnVsbH19LG11KHQpe2lmKCF0LnBhcmFtcylyZXR1cm47bGV0IHM9dC5maWxlLGk9dC5wYXJhbXM7cy50eXBlPy5pbmNsdWRlcygiYXVkaW8vIikmJiJudW1iZXIiPT10eXBlb2Ygcy5kdXJhdGlvbj9lKCkuQWN0aW9uLmRvX21lc3NhZ2Vfc2VuZCgiYXVkaW8iLHt1cmw6aS5yZXNvdXJjZSx0eXBlOnMudHlwZSxkdXJhdGlvbjpzLmR1cmF0aW9ufSk6ZSgpLkFjdGlvbi5kb19tZXNzYWdlX3NlbmQoImZpbGUiLHt1cmw6aS5yZXNvdXJjZSxuYW1lOnMubmFtZXx8bHUsdHlwZTpzLnR5cGV8fGF1fSkscHUucmVtb3ZlRmlsZShzKX0sZnUodCl7bGV0IGUscztyZXR1cm4gdD49aHU/KGU9dC9odSxzPSJNQiIpOnQ+PTFlMz8oZT10LzFlMyxzPSJLQiIpOihlPXQscz0iQiIpLGAke01hdGgucm91bmQoMTAqZSkvMTB9ICR7c31gfSxkdSgpe2xldCB0PXB1LmdldEN1cnJlbnRGaWxlRnJvbVN0YWNrKCk7aWYobnVsbCE9PXQpe2xldCBlPXB1LmZpbGVzLmZpbmQoZT0+ZS5maWxlPT09dCk7ZSYmKGUudXBsb2FkaW5nPSExLGUuZXJyb3I9ITApfX0scHUodCxlKXtwdS5odT1uZXcgd2luZG93LlhNTEh0dHBSZXF1ZXN0LHB1Lmh1LmZpbGU9ZSxwdS5odS5hZGRFdmVudExpc3RlbmVyKCJsb2Fkc3RhcnQiLHV1KHB1Lnd1LHRoaXMpLCExKSxwdS5odS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsdXUocHUudnUsdGhpcyksITEpLHB1Lmh1LmFkZEV2ZW50TGlzdGVuZXIoImFib3J0Iix1dShwdS52dSx0aGlzKSwhMSkscHUuaHUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsdXUocHUueXUsdGhpcyksITEpLHB1Lmh1Lm9wZW4oIlBVVCIsdCwhMCkscHUuaHUuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1EaXNwb3NpdGlvbiIsImF0dGFjaG1lbnQiKSxwdS5odS5zZW5kKGUpfSx3dSgpe3B1LnN0YXRlPSJ1cGxvYWRpbmcifSx2dSgpe3B1Lmx1Lmxlbmd0aD4wJiZwdS5kdSgpLHB1LmN1KCl9LHl1KCl7aWYoMjAwIT09cHUuaHUuc3RhdHVzJiYyMDEhPT1wdS5odS5zdGF0dXMpcmV0dXJuIHB1LnZ1KCk7aWYoMD09PXB1Lmx1Lmxlbmd0aClyZXR1cm47aWYoIXB1LmF1KXJldHVybjtsZXQgdD1wdS5nZXRDdXJyZW50RmlsZUZyb21TdGFjaygpLGU9cHUuZmlsZXMuZmluZChlPT5lLmZpbGU9PT10KTt0JiZlJiYoZS5wYXJhbXM9e3Jlc291cmNlOnB1LmF1LG5hbWU6dC5uYW1lfHxsdSx0eXBlOnQudHlwZXx8YXV9LGUudXBsb2FkaW5nPSExLCEwPT09ZS5zZW5kJiZ4ci5zZXRUaW1lb3V0KCgpPT57cHUubXUoZSl9LDJlMykpLHB1LmN1KCl9LGN1KCl7cHUuaHUmJihwdS5odS5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2Fkc3RhcnQiLHB1Lnd1LCExKSxwdS5odS5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIscHUudnUsITEpLHB1Lmh1LnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixwdS52dSwhMSkscHUuaHUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIscHUueXUsITEpKTtsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuY2MteWZyZWciKTt0JiYodC52YWx1ZT1udWxsKSxwdS5zdGF0ZT0ibm9uZSIscHUuYXU9bnVsbCxwdS5sdS5zaGlmdCgpLHB1Lmx1Lmxlbmd0aD4wJiZwdS5fdSgpfSxfdSgpe2xldCB0PXB1LmdldEN1cnJlbnRGaWxlRnJvbVN0YWNrKCk7bnVsbCE9PXQmJihwdS5zdGF0ZT0icHJlcGFyaW5nIix5ci5CdWNrZXQuZ2V0VXJsVXBsb2FkKHQubmFtZXx8bHUsdC50eXBlfHxhdSkpfX0pO2Z1bmN0aW9uIF91KHQsZSwuLi5zKXtyZXR1cm4gdC5iaW5kJiYvXFtuYXRpdmUgY29kZVxdLy50ZXN0KHQuYmluZC50b1N0cmluZygpKT90LmJpbmQoZSwuLi5zKTpmdW5jdGlvbiguLi5pKXtyZXR1cm4gdC5hcHBseShlLFsuLi5zLC4uLmldKX19dmFyIG11PVtbIndlYmEiLCJhdWRpby93ZWJtOyBjb2RlY3M9b3B1cyJdLFsid2ViYSIsImF1ZGlvL3dlYm07IGNvZGVjcz12b3JiaXMiXSxbIm9nYSIsImF1ZGlvL29nZzsgY29kZWNzPXZvcmJpcyJdLFsibTRhIiwiYXVkaW8vbXA0OyBjb2RlY3M9bXA0YS40MC41Il1dLGd1PVllKHtidTpudWxsLEV1Om51bGwsQ3U6ITEsa3U6ITEsJHU6bnVsbCxzdGF0ZToibm9uZSIsZHVyYXRpb246MCxwcm9ncmVzczowLG1pbWU6IiIsY2h1bmtzOltdLGV4dGVuc2lvbjpudWxsLHN0cmVhbUFjcXVpcmVkOm51bGx9LHtyZWNvcmQoKXshMSE9PXJvLmhhc19hdWRpb19yZWNvcmRpbmcmJiEwPT09dG8uY2hhdC5hdWRpb19yZWNvcmQmJm51bGw9PT1ndS5idSYmbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiEwLHZpZGVvOiExfSkudGhlbih0PT57Zm9yKGxldCBlPTA7ZTxtdS5sZW5ndGg7ZSsrKXtsZXQgdD1tdVtlXTtpZighMD09PXdpbmRvdy5NZWRpYVJlY29yZGVyLmlzVHlwZVN1cHBvcnRlZCh0WzFdKSl7Z3UuZXh0ZW5zaW9uPXRbMF0sZ3UubWltZT10WzFdO2JyZWFrfX1udWxsIT09Z3UuZXh0ZW5zaW9uJiZudWxsIT09Z3UubWltZSYmKGd1LmJ1PW5ldyB3aW5kb3cuTWVkaWFSZWNvcmRlcih0LHttaW1lVHlwZTpndS5taW1lLGF1ZGlvQml0c1BlclNlY29uZDo2NGUzfSksZ3UuRXU9dCwiZnVuY3Rpb24iPT10eXBlb2YgZ3Uuc3RyZWFtQWNxdWlyZWQmJmd1LnN0cmVhbUFjcXVpcmVkKGd1LkV1KSxndS5idS5hZGRFdmVudExpc3RlbmVyKCJzdGFydCIsX3UoZ3UuQXUsdGhpcykpLGd1LmJ1LmFkZEV2ZW50TGlzdGVuZXIoInN0b3AiLF91KGd1LkJ1LHRoaXMpKSxndS5idS5hZGRFdmVudExpc3RlbmVyKCJyZXN1bWUiLF91KGd1Lnh1LHRoaXMpKSxndS5idS5hZGRFdmVudExpc3RlbmVyKCJwYXVzZSIsX3UoZ3UuanUsdGhpcykpLGd1LmJ1LmFkZEV2ZW50TGlzdGVuZXIoImRhdGFhdmFpbGFibGUiLF91KGd1Lkl1LHRoaXMpKSxndS5idS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsX3UoZ3UuU3UsdGhpcykpLGd1LmJ1LnN0YXJ0KCkpfSkuY2F0Y2godD0+e2FsZXJ0KGJ1LnRleHQoImNoYXQiLCJjaGF0X2Zvcm1fc3BlZWNoX2NhcHR1cmVfZXJyb3IiKSl9KX0sY2FuY2VsKCl7bnVsbCE9PWd1LmJ1JiYhMCE9PWd1LkN1JiYoZ3UuQ3U9ITAsZ3Uua3U9ITAsZ3UuYnUuc3RvcCgpKX0sc2VuZCgpe251bGwhPT1ndS5idSYmITAhPT1ndS5DdSYmKGd1LkN1PSEwLGd1LmJ1LnN0b3AoKSl9LHNldFN0cmVhbUFjcXVpcmVkQ2FsbGJhY2sodCl7ImZ1bmN0aW9uIj09dHlwZW9mIHQmJihndS5zdHJlYW1BY3F1aXJlZD10LG51bGwhPT1ndS5FdSYmdChndS5FdSkpfSxBdSgpe2d1LmR1cmF0aW9uPTAsZ3UucHJvZ3Jlc3M9MCxndS54dSgpfSxCdSgpe2lmKGd1LnN0YXRlPSJub25lIixndS5SdSgpLCEwIT09Z3Uua3Upe2xldCB0PShuZXcgRGF0ZSkuZ2V0VGltZSgpLGU9bmV3IHdpbmRvdy5GaWxlKGd1LmNodW5rcyxgYXVkaW9fJHt0fS4ke2d1LmV4dGVuc2lvbn1gLHt0eXBlOmd1Lm1pbWUuc3BsaXQoIjsiKVswXS50cmltKCksbGFzdE1vZGlmaWVkOnR9KTtlLmR1cmF0aW9uPWd1LmR1cmF0aW9uLHB1LmhhbmRsZUZpbGVDaGFuZ2UoW2VdKX1sZXQgdD1ndS5idS5zdHJlYW0uZ2V0VHJhY2tzKCk7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspdFtlXS5zdG9wKCk7Z3UuT3UoKX0sanUoKXtndS5SdSgpLGd1LnN0YXRlPSJwYXVzZWQifSx4dSgpe2d1LnN0YXRlPSJyZWNvcmRpbmciLGd1LlR1KCl9LEl1KHQpe3QuZGF0YS5zaXplPjAmJmd1LmNodW5rcy5wdXNoKHQuZGF0YSl9LFN1KHQpe2FsZXJ0KGJ1LnRleHQoImNoYXQiLCJjaGF0X2Zvcm1fc3BlZWNoX2NhcHR1cmVfZXJyb3IiKSl9LFR1KCl7aWYobnVsbD09PWd1LiR1KXtsZXQgdD05MDtndS4kdT14ci5zZXRJbnRlcnZhbCgoKT0+e2d1LmR1cmF0aW9uPj10P2d1LmJ1LnBhdXNlKCk6KGd1LmR1cmF0aW9uKyssZ3UucHJvZ3Jlc3M9TWF0aC5mbG9vcigxMDAqTWF0aC5taW4oZ3UuZHVyYXRpb24vdCwxKSkpfSwxZTMpfX0sUnUoKXtudWxsIT09Z3UuJHUmJih4ci5jbGVhckludGVydmFsKGd1LiR1KSxndS4kdT1udWxsKX0sT3UoKXtndS5idT1udWxsLGd1LkV1PW51bGwsZ3UuQ3U9ITEsZ3Uua3U9ITEsZ3UuJHU9bnVsbCxndS5kdXJhdGlvbj0wLGd1LnByb2dyZXNzPTAsZ3UubWltZT0iIixndS5jaHVua3M9W10sZ3UuZXh0ZW5zaW9uPW51bGx9fSksRnU9WWUoe2J1bmRsZTp7cGVuZGluZzp7Y2hhdDohMSxvdmVybGF5OiExLG1hZ25pZnk6ITF9fX0se30pLHd1PXthdmFpbGFiaWxpdHk6UWUsYmFzZTpRbyxicm93c2luZzppdSxjYWxsOm91LGNoYXQ6UG8sY2hhdEFsZXJ0OmxvLGNoYXRGcmFtZTptbyxjaGF0SW50ZW50Ol9vLGNoYXRGZWVkYmFjazpjbyxjaGF0QXV0aGVudGljYXRlOkRvLGNoYXRQaWNrZXI6YW8sY2hhdEZpbGU6cHUsY2hhdFNwZWVjaDpndSxjaGF0U3RhdGU6T28sY29tbW9uOlJvLGZlYXR1cmU6cm8sZ2FtZTpnbyxoZWxwZGVzazokbyxtZXNzYWdlczpYbyxtaW5pbWl6ZWQ6dW8sb3ZlcmxheTpTbyxwYXJ0aWFsOkZ1LHN0YXRlOkVvLGxvY2FsZTpqcix3ZWJzaXRlOnRvfSx2dT1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLiRzdG9yZT13dX1pbnN0YWxsKHQpe3QuY29uZmlnLmdsb2JhbFByb3BlcnRpZXMuJHN0b3JlPXd1fX0seXU9WyJsdHIiLCJydGwiXSxidT1uZXcgY2xhc3MgZXh0ZW5kcyBKZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy56dT1NZS5MT0NBTEVfQVZBSUxBQkxFLHRoaXMuZ3IoKX1yZXNldCgpe3RoaXMuZ3IoKX1kZXRlY3QodD1bXSl7bGV0IGUscz1NZS5MT0NBTEVfREVGQVVMVCxpPSExLG49W107dC5sZW5ndGg+MD8odGhpcy56dT14ci5pbnRlcnNlY3QodCxNZS5MT0NBTEVfQVZBSUxBQkxFKSx0aGlzLnp1Lmxlbmd0aD4wJiYhdGhpcy56dS5pbmNsdWRlcyhzKSYmKHM9dGhpcy56dVswXSkpOnRoaXMuenU9TWUuTE9DQUxFX0FWQUlMQUJMRTtmb3IobGV0IHI9MDtyPHd1LmJhc2UuYnJvd3Nlcl9sb2NhbGVzPy5sZW5ndGg7cisrKWU9d3UuYmFzZS5icm93c2VyX2xvY2FsZXNbcl0sZSYmKG4ucHVzaChlLnRvTG93ZXJDYXNlKCkpLGUuaW5jbHVkZXMoIi0iKSYmKGU9ZS5zcGxpdCgiLSIpWzBdLGUmJm4ucHVzaChlLnRvTG93ZXJDYXNlKCkpKSk7Zm9yKGxldCByPTA7cjxuLmxlbmd0aDtyKyspaWYodGhpcy56dS5pbmNsdWRlcyhuW3JdKSl7cz1uW3JdLGk9ITA7YnJlYWt9cmV0dXJuIHN9YXN5bmMgbG9hZCh0KXt0cnl7bGV0IGU9dDtpZih0aGlzLnp1LmluY2x1ZGVzKHQpfHwoZT1NZS5MT0NBTEVfREVGQVVMVCksbnVsbCE9PXRoaXMuUHUmJnRoaXMuUHUuX21ldGEubG9jYWxlX2NvZGUhPT10JiYodGhpcy5QdT1udWxsKSxudWxsPT09dGhpcy5QdSl7bGV0IHQ9e307dD1hd2FpdCgodCxlLHMpPT57Y29uc3QgaT1lLmxhc3RJbmRleE9mKCI/Iiksbj10Wy0xPT09aXx8aTxlLmxhc3RJbmRleE9mKCIvIik/ZTplLnNsaWNlKDAsaSldO3JldHVybiBuPyJmdW5jdGlvbiI9PXR5cGVvZiBuP24oKTpQcm9taXNlLnJlc29sdmUobik6bmV3IFByb21pc2UoKF8sdCk9PnsoImZ1bmN0aW9uIj09dHlwZW9mIHF1ZXVlTWljcm90YXNrP3F1ZXVlTWljcm90YXNrOnNldFRpbWVvdXQpKHQuYmluZChudWxsLG5ldyBFcnJvcigiVW5rbm93biB2YXJpYWJsZSBkeW5hbWljIGltcG9ydDogIitlKyhlLnNwbGl0KCIvIikubGVuZ3RoIT09cz8iLiBOb3RlIHRoYXQgdmFyaWFibGVzIG9ubHkgcmVwcmVzZW50IGZpbGUgbmFtZXMgb25lIGxldmVsIGRlZXAuIjoiIikpKSl9KX0pKE9iamVjdC5hc3NpZ24oeyIuLi9sb2NhbGVzL2FmLmpzb24iOigpPT54bygoKT0+aW1wb3J0KCIuL2FmX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvYXItYWUuanNvbiI6KCk9PnhvKCgpPT5pbXBvcnQoIi4vYXItYWVfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy9hci1zYS5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi9hci1zYV9kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pLCIuLi9sb2NhbGVzL2FyLXllLmpzb24iOigpPT54bygoKT0+aW1wb3J0KCIuL2FyLXllX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvYXIuanNvbiI6KCk9PnhvKCgpPT5pbXBvcnQoIi4vYXJfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy9hei5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi9hel9kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pLCIuLi9sb2NhbGVzL2JnLmpzb24iOigpPT54bygoKT0+aW1wb3J0KCIuL2JnX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvYm4uanNvbiI6KCk9PnhvKCgpPT5pbXBvcnQoIi4vYm5fZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy9jYS5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi9jYV9kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pLCIuLi9sb2NhbGVzL2NrYi5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi9ja2JfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy9jcy5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi9jc19kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pLCIuLi9sb2NhbGVzL2RhLmpzb24iOigpPT54bygoKT0+aW1wb3J0KCIuL2RhX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvZGUuanNvbiI6KCk9PnhvKCgpPT5pbXBvcnQoIi4vZGVfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy9lbC5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi9lbF9kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pLCIuLi9sb2NhbGVzL2VuLmpzb24iOigpPT54bygoKT0+aW1wb3J0KCIuL2VuX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvZW8uanNvbiI6KCk9PnhvKCgpPT5pbXBvcnQoIi4vZW9fZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy9lcy5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi9lc19kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pLCIuLi9sb2NhbGVzL2V0Lmpzb24iOigpPT54bygoKT0+aW1wb3J0KCIuL2V0X2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvZXUuanNvbiI6KCk9PnhvKCgpPT5pbXBvcnQoIi4vZXVfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy9mYS5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi9mYV9kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pLCIuLi9sb2NhbGVzL2ZpLmpzb24iOigpPT54bygoKT0+aW1wb3J0KCIuL2ZpX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvZm8uanNvbiI6KCk9PnhvKCgpPT5pbXBvcnQoIi4vZm9fZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy9mci5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi9mcl9kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pLCIuLi9sb2NhbGVzL2d1Lmpzb24iOigpPT54bygoKT0+aW1wb3J0KCIuL2d1X2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvaGUuanNvbiI6KCk9PnhvKCgpPT5pbXBvcnQoIi4vaGVfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy9oaS5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi9oaV9kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pLCIuLi9sb2NhbGVzL2hyLmpzb24iOigpPT54bygoKT0+aW1wb3J0KCIuL2hyX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvaHUuanNvbiI6KCk9PnhvKCgpPT5pbXBvcnQoIi4vaHVfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy9oeS5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi9oeV9kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pLCIuLi9sb2NhbGVzL2lkLmpzb24iOigpPT54bygoKT0+aW1wb3J0KCIuL2lkX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvaXMuanNvbiI6KCk9PnhvKCgpPT5pbXBvcnQoIi4vaXNfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy9pdC5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi9pdF9kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pLCIuLi9sb2NhbGVzL2phLmpzb24iOigpPT54bygoKT0+aW1wb3J0KCIuL2phX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMva2EuanNvbiI6KCk9PnhvKCgpPT5pbXBvcnQoIi4va2FfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy9rby5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi9rb19kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pLCIuLi9sb2NhbGVzL2x0Lmpzb24iOigpPT54bygoKT0+aW1wb3J0KCIuL2x0X2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvbHYuanNvbiI6KCk9PnhvKCgpPT5pbXBvcnQoIi4vbHZfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy9tbC5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi9tbF9kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pLCIuLi9sb2NhbGVzL21uLmpzb24iOigpPT54bygoKT0+aW1wb3J0KCIuL21uX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvbXMuanNvbiI6KCk9PnhvKCgpPT5pbXBvcnQoIi4vbXNfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy9ubC1iZS5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi9ubC1iZV9kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pLCIuLi9sb2NhbGVzL25sLmpzb24iOigpPT54bygoKT0+aW1wb3J0KCIuL25sX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvbm8uanNvbiI6KCk9PnhvKCgpPT5pbXBvcnQoIi4vbm9fZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy9wbC5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi9wbF9kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pLCIuLi9sb2NhbGVzL3BzLmpzb24iOigpPT54bygoKT0+aW1wb3J0KCIuL3BzX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvcHQtYnIuanNvbiI6KCk9PnhvKCgpPT5pbXBvcnQoIi4vcHQtYnJfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy9wdC5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi9wdF9kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pLCIuLi9sb2NhbGVzL3JvLmpzb24iOigpPT54bygoKT0+aW1wb3J0KCIuL3JvX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvcnUuanNvbiI6KCk9PnhvKCgpPT5pbXBvcnQoIi4vcnVfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy9zay5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi9za19kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pLCIuLi9sb2NhbGVzL3NsLmpzb24iOigpPT54bygoKT0+aW1wb3J0KCIuL3NsX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvc3ItY3lybC1jcy5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi9zci1jeXJsLWNzX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvc3IuanNvbiI6KCk9PnhvKCgpPT5pbXBvcnQoIi4vc3JfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy9zdi5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi9zdl9kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pLCIuLi9sb2NhbGVzL3RhLmpzb24iOigpPT54bygoKT0+aW1wb3J0KCIuL3RhX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvdGguanNvbiI6KCk9PnhvKCgpPT5pbXBvcnQoIi4vdGhfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy90ci5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi90cl9kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pLCIuLi9sb2NhbGVzL3VrLmpzb24iOigpPT54bygoKT0+aW1wb3J0KCIuL3VrX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvdXotY3lybC5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi91ei1jeXJsX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvdXouanNvbiI6KCk9PnhvKCgpPT5pbXBvcnQoIi4vdXpfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy92aS5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi92aV9kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pLCIuLi9sb2NhbGVzL3poLWhrLmpzb24iOigpPT54bygoKT0+aW1wb3J0KCIuL3poLWhrX2RlZmF1bHRfMjNlNDIxMi5qcyIpLnRoZW4odD0+dC50KSxbXSksIi4uL2xvY2FsZXMvemgtdHcuanNvbiI6KCk9PnhvKCgpPT5pbXBvcnQoIi4vemgtdHdfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbih0PT50LnQpLFtdKSwiLi4vbG9jYWxlcy96aC5qc29uIjooKT0+eG8oKCk9PmltcG9ydCgiLi96aF9kZWZhdWx0XzIzZTQyMTIuanMiKS50aGVuKHQ9PnQudCksW10pfSksYC4uL2xvY2FsZXMvJHtlfS5qc29uYCwzKSx0aGlzLkx1KGUsdCksd3UubG9jYWxlLmNvZGU9dC5fbWV0YS5sb2NhbGVfY29kZXx8ZSx3dS5sb2NhbGUuZGlyZWN0aW9uPXRoaXMuZGlyZWN0aW9uKCl9fWNhdGNoKGUpe3Rocm93IFdlLmVycm9yKGUpLG5ldyBFcnJvcigiTG9jYWxlSGVscGVyLmxvYWQ6ICIrZSl9fWRpcmVjdGlvbigpe2xldCB0PW51bGw7aWYoIXRoaXMuUHU/Ll9tZXRhPy5sb2NhbGVfZGlyZWN0aW9uKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGdldCBsb2NhbGUgZGlyZWN0aW9uLCBsb2NhbGUgZGF0YSBub3QgbG9hZGVkIik7cmV0dXJuIHQ9dGhpcy5QdS5fbWV0YS5sb2NhbGVfZGlyZWN0aW9uLHl1LmluY2x1ZGVzKHQpfHwodD0ibHRyIiksdH10ZXh0KHQsZSxzPVtdKXtsZXQgaSxuLHI9bnVsbDsib2JqZWN0Ij09dHlwZW9mIGU/KGk9ZVswXSxuPWVbMV0pOmk9bj1lO2xldCBvPWAke3R9LiR7aX0uJHtufWA7cmV0dXJuIG51bGw9PT10aGlzLlB1fHx2b2lkIDA9PT10aGlzLlB1Ll9zdHJpbmdzW3RdfHx2b2lkIDA9PT10aGlzLlB1Ll9zdHJpbmdzW3RdW25dP286KHI9KEhyLmdldEN1c3RvbWl6YXRpb24oInRleHQiLHQsaSl8fCIiKS50cmltKCl8fHRoaXMuUHUuX3N0cmluZ3NbdF1bbl0scj1UaS5wYXJzZSgpLnJlcGxhY2UocixzKSxyPXRoaXMuTXUocikscil9THUodCxlKXtpZihudWxsIT09dGhpcy5QdSl0aHJvdyBuZXcgRXJyb3IoIkxvY2FsZSBoYXMgYWxyZWFkeSBiZWVuIGxvYWRlZCAoZG91YmxlIHJlcXVlc3RlZCBoYW5kbGVkPykiKTtpZigib2JqZWN0IiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJEaWQgbm90IHJlY2VpdmUgYSBwcm9wZXIgbG9jYWxlIGRhdGEgZmlsZSIpO2lmKGUuX21ldGEubG9jYWxlX2NvZGUhPT10KXRocm93IG5ldyBFcnJvcihgUmVjZWl2ZWQgYSBtaXNtYXRjaGluZyBsb2NhbGUgY29kZSwgZXhwZWN0ZWQ6ICR7dH1gKTt0aGlzLlB1PWV9TXUodCl7bGV0IGU9bnVsbDt0cnl7ZT1kZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKHQpKX1jYXRjaHtlPXR9cmV0dXJuIGV9Z3IoKXt0aGlzLlB1PW51bGx9fSxFdT0vXigoW15cc0BdKylAKFteXHNAXSspXC4oW15cc0BdKykpJC8sQ3U9bmV3IFJlZ0V4cChbIl4oPzooPzpcXCg/KD86MDB8XFwrKShbMS00XVxcZFxcZHxbMS05XVxcZD8pXFwpPyk/IiwiW1xcLVxcLlxcIFxcXFxcXC9dPyk/KCg/OlxcKD9cXGR7MSx9XFwpP1tcXC1cXC5cXCBcXFxcXFwvXT8pezAsfSkiLCIoPzpbXFwtXFwuXFwgXFxcXFxcL10/KD86I3xleHRcXC4/fGV4dGVuc2lvbnx4KVtcXC1cXC5cXCBcXFxcL10/IiwiKFxcZCspKT8kIl0uam9pbigiIiksImkiKSxrdT0vXmh0dHBzPzpcL1wvKC4rKSQvLCR1PS9eKFtBLVphLXowLTlfXFwtXXsxLDUwfSkkLyxBdT1uZXcgY2xhc3N7aXNFbWFpbCh0KXtyZXR1cm4gRXUudGVzdCh0KX1pc1Bob25lKHQpe3JldHVybiBDdS50ZXN0KHQpfWlzQXZhdGFyKHQpe3JldHVybiBrdS50ZXN0KHQpfWlzRGF0YSh0KXtsZXQgZT0hMTtpZih0IGluc3RhbmNlb2YgT2JqZWN0KXtlPXhyLmtleXModCkubGVuZ3RoPjAmJiEwO2ZvcihsZXQgcyBpbiB0KXtsZXQgaT10W3NdO2lmKCJzdHJpbmciIT10eXBlb2Ygc3x8ITAhPT0kdS50ZXN0KHMpfHwic3RyaW5nIiE9dHlwZW9mIGkmJiJib29sZWFuIiE9dHlwZW9mIGkmJiJudW1iZXIiIT10eXBlb2YgaSl7ZT0hMTticmVha319fXJldHVybiBlfWFyZUV2ZW50cyh0KXtsZXQgZT0hMTtpZih0IGluc3RhbmNlb2YgQXJyYXkpe2U9dC5sZW5ndGg+MCYmITA7Zm9yKGxldCBzPTA7czx0Lmxlbmd0aDtzKyspaWYoInN0cmluZyIhPXR5cGVvZiB0W3NdWzBdfHwhdFtzXVswXXx8ITE9PT14ci5pc0VtcHR5KHRbc11bMV0pJiYhMT09PXRoaXMuaXNEYXRhKHRbc11bMV0pKXtlPSExO2JyZWFrfX1yZXR1cm4gZX1zYW5pdGl6ZVZhcmlhYmxlcyh0KXtpZihudWxsPT10KXJldHVybiBudWxsO2lmKCJvYmplY3QiIT10eXBlb2YgdHx8dCBpbnN0YW5jZW9mIEFycmF5KXJldHVybiBudWxsO2xldCBlPXt9LHM9ITE7Zm9yKGxldCBpIGluIHQpe2lmKCEwIT09T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkpY29udGludWU7bGV0IG49dFtpXTsic3RyaW5nIj09dHlwZW9mIGkmJjAhPT1pLmxlbmd0aCYmKCJzdHJpbmciIT10eXBlb2YgbiYmIm51bWJlciIhPXR5cGVvZiBuJiYiYm9vbGVhbiIhPXR5cGVvZiBufHwoZVtpXT1uLHM9ITApKX1yZXR1cm4hMD09PXM/ZTpudWxsfWFyZVNlZ21lbnRzKHQpe2xldCBlPSExO2lmKHQgaW5zdGFuY2VvZiBBcnJheSl7ZT0hMDtsZXQgcz1bXTtmb3IobGV0IGk9MDtpPHQubGVuZ3RoO2krKyl7bGV0IG49dFtpXXx8IiIscj0iIjtpZigic3RyaW5nIj09dHlwZW9mIG4mJihyPW4udHJpbSgpKSwhcnx8ci5sZW5ndGg+ODB8fHMuaW5jbHVkZXMocikpe2U9ITE7YnJlYWt9cy5wdXNoKHIpfX1yZXR1cm4gZX19O2Z1bmN0aW9uIEJ1KHQsZSwuLi5zKXtyZXR1cm4gdC5iaW5kJiYvXFtuYXRpdmUgY29kZVxdLy50ZXN0KHQuYmluZC50b1N0cmluZygpKT90LmJpbmQoZSwuLi5zKTpmdW5jdGlvbiguLi5pKXtyZXR1cm4gdC5hcHBseShlLFsuLi5zLC4uLmldKX19dmFyIHh1PVsic2Vzc2lvbjpsb2FkZWQiLCJjaGF0OmluaXRpYXRlZCIsImNoYXQ6b3BlbmVkIiwiY2hhdDpjbG9zZWQiLCJtZXNzYWdlOnNlbnQiLCJtZXNzYWdlOnJlY2VpdmVkIiwibWVzc2FnZTpjb21wb3NlOnNlbnQiLCJtZXNzYWdlOmNvbXBvc2U6cmVjZWl2ZWQiLCJ1c2VyOmVtYWlsOmNoYW5nZWQiLCJ1c2VyOnBob25lOmNoYW5nZWQiLCJ1c2VyOm5pY2tuYW1lOmNoYW5nZWQiLCJ1c2VyOmF2YXRhcjpjaGFuZ2VkIiwid2Vic2l0ZTphdmFpbGFiaWxpdHk6Y2hhbmdlZCIsImhlbHBkZXNrOnF1ZXJpZWQiXSxqdT0iaHVnbzp0b29sOiIsSXU9e2JvdDoidXJuOmNyaXNwLmltOmJvdDowIixodWdvOiJ1cm46Y3Jpc3AuaW06aHVnbzowIn0sU3U9L14obGlnaHR8ZGFya3xhdXRvKSQvLFJ1PS9eKGRlZmF1bHR8Y29sb3JpemVkKSQvLE91PS9eKGRlZmF1bHR8KFthLXowLTktXSspKSQvLFR1PS9eKFthLWYwLTldezY0fSkkLyx6dT1jbGFzcyBleHRlbmRzIEple2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5jbGllbnQ9dCx0aGlzLl9ldmVudFBpcGVNZXRob2RzPXtvbjpCdSh0aGlzLlV1LHRoaXMpLG9mZjpCdSh0aGlzLnF1LHRoaXMpfSx0aGlzLlZ1PXt9fXJlc2V0KCl7dm9pZCAwPT09dGhpcy5jbGllbnQuQmFzZS5fZG9sbGFyQ3Jpc3A/Ll9fc3Bvb2w/LnBlbmRpbmdfYWN0aW9ucyYmdGhpcy5jbGllbnQuQmFzZS5fZG9sbGFyQ3Jpc3A/Ll9fc3Bvb2wmJih0aGlzLmNsaWVudC5CYXNlLl9kb2xsYXJDcmlzcC5fX3Nwb29sLnBlbmRpbmdfYWN0aW9ucz1bXSl9ZG9fY2hhdF9vcGVuKHQ9bnVsbCl7ITA9PT10aGlzLmNsaWVudC5DaGF0Ll9pc0luaXRpYWxpemVkPyh3dS5jaGF0Lm1heGltaXplKCksImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQoKSk6d3UubWluaW1pemVkLnBhbmVPcGVuSGFuZGxlcihlPT57dGhpcy5jbGllbnQuQ2hhdC5pbml0KGUsdCl9KX1kb19jaGF0X2Nsb3NlKCl7ITA9PT10aGlzLmNsaWVudC5DaGF0Ll9pc0luaXRpYWxpemVkJiZ3dS5jaGF0Lm1pbmltaXplKCl9ZG9fY2hhdF90b2dnbGUoKXshMD09PXRoaXMuaXNfY2hhdF9jbG9zZWQoKT90aGlzLmRvX2NoYXRfb3BlbigpOnRoaXMuZG9fY2hhdF9jbG9zZSgpfWRvX2NoYXRfc2hvdygpeyExIT09dGhpcy5pc19jaGF0X2hpZGRlbigpJiYod3UuYmFzZS5pc19oaWRkZW49ITEsd3UuYmFzZS5mb3JjZV9zaG93PSEwLCEwPT09dGhpcy5jbGllbnQuQ2hhdC5faXNJbml0aWFsaXplZCYmKHRoaXMuY2xpZW50LkNoYXQuSW50ZXJmYWNlLnJlcXVlc3REeW5hbWljU2l6aW5nUHJvcGVydGllcygpLHRoaXMuY2xpZW50LkNoYXQuSW50ZXJmYWNlLmFwcGx5Q2hhdEZvY3VzKCkpKX1kb19jaGF0X2hpZGUoKXshMSE9PXRoaXMuaXNfY2hhdF92aXNpYmxlKCkmJih3dS5iYXNlLmlzX2hpZGRlbj0hMCx3dS5iYXNlLmZvcmNlX3Nob3c9ITEsITA9PT10aGlzLmNsaWVudC5DaGF0Ll9pc0luaXRpYWxpemVkJiZ0aGlzLmNsaWVudC5DaGF0LkludGVyZmFjZS5hcHBseUNoYXRGb2N1cygpKX1kb19oZWxwZGVza19zZWFyY2goKXtpZighMCE9PXd1LmhlbHBkZXNrLmlzQXZhaWxhYmxlKCkpdGhyb3cgbmV3IEVycm9yKCJIZWxwZGVzayBzZWFyY2ggaXMgdW5hdmFpbGFibGUiKTt0aGlzLmRvX2NoYXRfc2hvdygpLHRoaXMuZG9fY2hhdF9vcGVuKCgpPT57d3UuaGVscGRlc2sub3BlbighMCl9KX1kb19oZWxwZGVza19hcnRpY2xlX29wZW4odCxlLHM9bnVsbCxpPW51bGwpe2lmKCJzdHJpbmciIT10eXBlb2YgdHx8IXQpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGFydGljbGUgbG9jYWxlIik7aWYoInN0cmluZyIhPXR5cGVvZiBlfHwhZSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgYXJ0aWNsZSBzbHVnIik7aWYoITAhPT13dS5oZWxwZGVzay5pc0F2YWlsYWJsZSgpKXRocm93IG5ldyBFcnJvcigiSGVscGRlc2sgYXJ0aWNsZSBpcyB1bmF2YWlsYWJsZSIpO3RoaXMuZG9fY2hhdF9zaG93KCksdGhpcy5kb19jaGF0X29wZW4oKCk9Pnt3dS5oZWxwZGVzay5zaG93QXJ0aWNsZSh0LGUscyxpKSx3dS5oZWxwZGVzay5vcGVuKCl9KX1kb19oZWxwZGVza19xdWVyeSh0PSIiKXt0aGlzLmNsaWVudC5CYXNlLmVuc3VyZVNvY2tldCgpLnRoZW4oKCk9Pnt3dS5oZWxwZGVzay5hY3F1aXJlUXVlcnlSZXN1bHRzKHQpfSl9ZG9fb3ZlcmxheV9vcGVuKHQ9bnVsbCl7aWYoITAhPT13dS5vdmVybGF5LmlzQXZhaWxhYmxlKCkpdGhyb3cgbmV3IEVycm9yKCJPdmVybGF5IGlzIHVuYXZhaWxhYmxlICh3YXMgaXQgZGlzYWJsZWQ/KSIpO3RoaXMuZG9fY2hhdF9zaG93KCksdGhpcy5kb19jaGF0X29wZW4oKCk9Pnt3dS5vdmVybGF5Lm9wZW4odCl9KX1kb19vdmVybGF5X2Nsb3NlKCl7ITA9PT13dS5vdmVybGF5LmlzT3BlbmVkKCkmJiEwPT09dGhpcy5jbGllbnQuQ2hhdC5faXNJbml0aWFsaXplZCYmd3UuY2hhdC5taW5pbWl6ZSgpfWRvX21lc3NhZ2Vfc2VuZCh0LGUpe3RoaXMuY2xpZW50LkJhc2UuZW5zdXJlU29ja2V0KCkudGhlbigoKT0+e2xldCBzPXRoaXMuTnUodCxlKTtudWxsIT09cy50eXBlJiZudWxsIT09cy5jb250ZW50JiZ0aGlzLmNsaWVudC5DaGF0LnN0YXJ0TWF4aW1pemVkKCgpPT57bGV0IHQ9ITA9PT13dS5tZXNzYWdlcy50cmlnZ2VyV2lsbFNlbmRIb29rcygpPzUwMDowO2lmKCEwPT09d3UuYmFzZS5ydW50aW1lLnRlc3Rlcl9tb2RlKXJldHVybiBzLmZpbmdlcnByaW50PXlyLk1lc3NhZ2UuZ2VuZXJhdGVGaW5nZXJwcmludCgpLHMudGltZXN0YW1wPShuZXcgRGF0ZSkuZ2V0VGltZSgpLHd1Lm1lc3NhZ2VzLmhhbmRsZVNlbnQocyksdm9pZCB3dS5tZXNzYWdlcy5oYW5kbGVTZW50QWNrbm93bGVkZ2VtZW50KHMpO3N3aXRjaChzLnR5cGUpe2Nhc2UidGV4dCI6eXIuTWVzc2FnZS5zZW5kVGV4dE1lc3NhZ2Uocy5jb250ZW50LHQpO2JyZWFrO2Nhc2UiZmlsZSI6eXIuTWVzc2FnZS5zZW5kRmlsZU1lc3NhZ2Uocy5jb250ZW50Lm5hbWUscy5jb250ZW50LnVybCxzLmNvbnRlbnQudHlwZSx0KTticmVhaztjYXNlImFuaW1hdGlvbiI6eXIuTWVzc2FnZS5zZW5kQW5pbWF0aW9uTWVzc2FnZShzLmNvbnRlbnQudXJsLHMuY29udGVudC50eXBlLHQpO2JyZWFrO2Nhc2UiYXVkaW8iOnlyLk1lc3NhZ2Uuc2VuZEF1ZGlvTWVzc2FnZShzLmNvbnRlbnQudXJsLHMuY29udGVudC50eXBlLHMuY29udGVudC5kdXJhdGlvbix0KTticmVhaztjYXNlInBpY2tlciI6eXIuTWVzc2FnZS5zZW5kUGlja2VyTWVzc2FnZShzLmNvbnRlbnQuaWQscy5jb250ZW50LnRleHQscy5jb250ZW50LmNob2ljZXMsdCk7YnJlYWs7Y2FzZSJmaWVsZCI6eXIuTWVzc2FnZS5zZW5kRmllbGRNZXNzYWdlKHMuY29udGVudC5pZCxzLmNvbnRlbnQudGV4dCxzLmNvbnRlbnQuZXhwbGFpbix0KTticmVhaztjYXNlImNhcm91c2VsIjp5ci5NZXNzYWdlLnNlbmRDYXJvdXNlbE1lc3NhZ2Uocy5jb250ZW50LnRleHQscy5jb250ZW50LnRhcmdldHMsdCl9fSl9KX1kb19tZXNzYWdlX3Nob3codCxlLHM9bnVsbCxpPSExKXt0aGlzLmNsaWVudC5CYXNlLmVuc3VyZVNvY2tldCgpLnRoZW4oKCk9PntsZXQgbj10aGlzLk51KHQsZSk7bnVsbCE9PW4udHlwZSYmbnVsbCE9PW4uY29udGVudCYmd3UubWVzc2FnZXMuZGlzcGF0Y2hMb2NhbChuLnR5cGUsbi5jb250ZW50LHMsaSl9KX1kb19tZXNzYWdlX3JlYWQoKXshMD09PXRoaXMuY2xpZW50LkNoYXQuX2lzSW5pdGlhbGl6ZWQmJnd1LmNoYXQuZWFjaFNlc3Npb25JZCh0PT57eXIuTWVzc2FnZS5tYXJrTWVzc2FnZXNBc1JlYWQodCl9KX1kb19tZXNzYWdlX3RocmVhZF9zdGFydCh0KXtpZigic3RyaW5nIiE9dHlwZW9mIHR8fCF0KXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBtZXNzYWdlIHRocmVhZCBzdGFydCB0ZXh0Iik7aWYoITAhPT10aGlzLmNsaWVudC5DaGF0Ll9pc0luaXRpYWxpemVkKXRocm93IG5ldyBFcnJvcigiQ2hhdCBtdXN0IGJlIGFjdGl2ZSBmb3IgbWVzc2FnZSB0aHJlYWQgdG8gc3RhcnQiKTt0aGlzLmNsaWVudC5CYXNlLmVuc3VyZVNvY2tldCgpLnRoZW4oKCk9Pnt5ci5NZXNzYWdlLnNlbmRNZXNzYWdlVGhyZWFkKCJzdGFydCIsdCl9KX1kb19tZXNzYWdlX3RocmVhZF9lbmQodD0iIil7aWYoInN0cmluZyIhPXR5cGVvZiB0JiYhdCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgbWVzc2FnZSB0aHJlYWQgZW5kIHRleHQiKTtpZighMCE9PXRoaXMuY2xpZW50LkNoYXQuX2lzSW5pdGlhbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJDaGF0IG11c3QgYmUgYWN0aXZlIGZvciBtZXNzYWdlIHRocmVhZCB0byBlbmQiKTt0aGlzLmNsaWVudC5CYXNlLmVuc3VyZVNvY2tldCgpLnRoZW4oKCk9Pnt5ci5NZXNzYWdlLnNlbmRNZXNzYWdlVGhyZWFkKCJlbmQiLHR8fCIiKX0pfWRvX3Nlc3Npb25fcmVzZXQodD0hMSl7ITE9PT10JiZ0aGlzLmNsaWVudC5CYXNlLnVuaW5zZXJ0QW5kUmVzZXQoKSx0aGlzLmNsaWVudC5CYXNlLnVwZGF0ZVNvY2tldENvb2tpZUtleSghMSwhMCkseXIuU2Vzc2lvbi5yZXNldCgpLCExPT09dD94ci5uZXh0UmVuZGVyKCgpPT57dGhpcy5jbGllbnQuQmFzZS5yZVRyaWdnZXJMb2FkZXIoKX0pOmRvY3VtZW50LmxvY2F0aW9uLnJlbG9hZCgpfWRvX3RyaWdnZXJfcnVuKHQpe2lmKCEwIT09dGhpcy5jbGllbnQuVHJpZ2dlci5ydW4odCkpdGhyb3cgbmV3IEVycm9yKCJUcmlnZ2VyIGRvZXMgbm90IGV4aXN0Iil9ZG9fYm90X3NjZW5hcmlvX3J1bih0LGU9bnVsbCl7aWYoInN0cmluZyIhPXR5cGVvZiB0fHwhdCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgYm90IHNjZW5hcmlvIGlkZW50aWZpZXIiKTt7bGV0IHM9QXUuc2FuaXRpemVWYXJpYWJsZXMoZSk7dGhpcy5jbGllbnQuQmFzZS5lbnN1cmVTb2NrZXQoITApLnRoZW4oKCk9PntsZXQgZT17YWN0aW9uOiJydW4iLHNjZW5hcmlvOnR9O251bGwhPT1zJiYoZS52YXJpYWJsZXM9cykseXIuU2Vzc2lvbi5zZW5kUGx1Z2luQWN0aW9uKEl1LmJvdCxlKSx5ci5TZXNzaW9uLnNlbmRQbHVnaW5BY3Rpb24oSXUuaHVnbyxlKX0pfX1pc19jaGF0X29wZW5lZCgpe3JldHVybiEoITAhPT13dS5jaGF0LmlzX29wZW5lZHx8ITAhPT10aGlzLmNsaWVudC5DaGF0Ll9pc0luaXRpYWxpemVkKX1pc19jaGF0X2Nsb3NlZCgpe3JldHVybiExPT09dGhpcy5pc19jaGF0X29wZW5lZCgpJiYhMH1pc19jaGF0X3Zpc2libGUoKXtyZXR1cm4hMT09PXRoaXMuaXNfY2hhdF9oaWRkZW4oKSYmITB9aXNfY2hhdF9oaWRkZW4oKXtyZXR1cm4hMD09PXd1LmJhc2UuaXNfaGlkZGVufHwobnVsbD09PXRoaXMuY2xpZW50LkJhc2UuX2NvbnRhaW5lckVsfHxudWxsPT09dGhpcy5jbGllbnQuQmFzZS5fY29udGFpbmVyRWwuZmlyc3RDaGlsZD8ub2Zmc2V0UGFyZW50KX1pc19jaGF0X3NtYWxsKCl7cmV0dXJuITE9PT13dS5iYXNlLmlzX2Z1bGxfdmlldyYmITB9aXNfY2hhdF9sYXJnZSgpe3JldHVybiExPT09dGhpcy5pc19jaGF0X3NtYWxsKCkmJiEwfWlzX3Nlc3Npb25fb25nb2luZygpe3JldHVybighMD09PXd1Lm1lc3NhZ2VzLmNvbnZlcnNhdGlvbi5oYXNfc2VudF9tZXNzYWdlc3x8ITA9PT13dS5tZXNzYWdlcy5jb252ZXJzYXRpb24uaGFzX3JlY2VpdmVkX21lc3NhZ2VzKSYmITB9aXNfd2Vic2l0ZV9hdmFpbGFibGUoKXtyZXR1cm4gd3UuYXZhaWxhYmlsaXR5LnVzZXJzX2F2YWlsYWJsZSYmITB9aXNfb3ZlcmxheV9vcGVuZWQoKXtyZXR1cm4hMD09PXd1Lm92ZXJsYXkuaXNPcGVuZWRBbmRSZWFkeSgpJiYhMH1pc19vdmVybGF5X2Nsb3NlZCgpe3JldHVybiExPT09dGhpcy5pc19vdmVybGF5X29wZW5lZCgpJiYhMH1nZXRfY2hhdF91bnJlYWRfY291bnQoKXtyZXR1cm4gd3UuY2hhdC5jb252ZXJzYXRpb25zLmFsbF91bnJlYWRfY291bnR8fDB9Z2V0X21lc3NhZ2VfdGV4dCgpe3JldHVybiEwPT09dGhpcy5jbGllbnQuQ2hhdC5faXNJbml0aWFsaXplZCYmd3UuY2hhdC5tZXNzYWdlX2ZpZWxkX3ZhbHVlfHwiIn1nZXRfc2Vzc2lvbl9pZGVudGlmaWVyKCl7cmV0dXJuIHd1LmJhc2Uuc2Vzc2lvbl9pZHx8bnVsbH1nZXRfc2Vzc2lvbl9kYXRhKHQ9bnVsbCl7cmV0dXJuIHlyLlNlc3Npb24uZ2V0RGF0YSh0KXx8bnVsbH1nZXRfdXNlcl9lbWFpbCgpe3JldHVybiB5ci5TZXNzaW9uLmdldEVtYWlsKCl8fG51bGx9Z2V0X3VzZXJfcGhvbmUoKXtyZXR1cm4geXIuU2Vzc2lvbi5nZXRQaG9uZSgpfHxudWxsfWdldF91c2VyX25pY2tuYW1lKCl7cmV0dXJuIHlyLlNlc3Npb24uZ2V0Tmlja25hbWUoKXx8bnVsbH1nZXRfdXNlcl9hdmF0YXIoKXtyZXR1cm4geXIuU2Vzc2lvbi5nZXRBdmF0YXIoKXx8bnVsbH1nZXRfdXNlcl9jb21wYW55KCl7bGV0IHQ9eXIuU2Vzc2lvbi5nZXRDb21wYW55KCl8fG51bGw7cmV0dXJuIHQ/LmVtcGxveW1lbnQ/LnRpdGxlJiYodC5lbXBsb3ltZW50PVt0LmVtcGxveW1lbnQudGl0bGUsdC5lbXBsb3ltZW50LnJvbGVdKSx0Py5nZW9sb2NhdGlvbj8uY291bnRyeSYmKHQuZ2VvbG9jYXRpb249W3QuZ2VvbG9jYXRpb24uY291bnRyeSx0Lmdlb2xvY2F0aW9uLmNpdHl8fG51bGxdKSx0fXNldF9tZXNzYWdlX3RleHQodD1udWxsKXt3dS5jaGF0LnNldE1lc3NhZ2VUZXh0KHQpfXNldF9zZXNzaW9uX2RhdGEodCxlKXt0aGlzLmNsaWVudC5CYXNlLmVuc3VyZVNvY2tldCghMCkudGhlbigoKT0+e2xldCBzPXQgaW5zdGFuY2VvZiBBcnJheSYmdFswXWluc3RhbmNlb2YgQXJyYXk/dDpbW3QsZV1dLGk9e307Zm9yKGxldCB0PTA7dDxzLmxlbmd0aDt0Kyspe2xldCBlPXNbdF1bMV07ZSYmInN0cmluZyI9PXR5cGVvZiBlJiYoImZhbHNlIj09PWU/ZT0hMToidHJ1ZSI9PT1lP2U9ITA6ITE9PT1pc05hTihOdW1iZXIoZSkpJiYoZT1OdW1iZXIoZSkpKSxpW3NbdF1bMF1dPWV9aWYoITAhPT1BdS5pc0RhdGEoaSkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGRhdGEiKTt5ci5TZXNzaW9uLnNldERhdGEoaSk7Zm9yKGxldCB0IGluIGkpdGhpcy5jbGllbnQuVHJpZ2dlci5kb0V2ZW50KCJ1c2VyX2RhdGEiLHtrZXk6dCx2YWx1ZTppW3RdfSl9KX1zZXRfc2Vzc2lvbl9zZWdtZW50cyh0LGU9ITEpe3RoaXMuY2xpZW50LkJhc2UuZW5zdXJlU29ja2V0KCEwKS50aGVuKCgpPT57aWYoIXR8fCEwIT09QXUuYXJlU2VnbWVudHModCkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHNlZ21lbnRzIHZhbHVlIik7eXIuU2Vzc2lvbi5zZXRTZWdtZW50cyh0LGUpfSl9c2V0X3Nlc3Npb25fZXZlbnQodCxlPW51bGwscz1udWxsKXt0aGlzLmNsaWVudC5CYXNlLmVuc3VyZVNvY2tldCghMCkudGhlbigoKT0+e2xldCBpPXQgaW5zdGFuY2VvZiBBcnJheSYmdFswXWluc3RhbmNlb2YgQXJyYXk/dDpbW3QsZSxzXV07aWYoITAhPT1BdS5hcmVFdmVudHMoaSkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGV2ZW50IHRleHQgb3IgZGF0YSIpO3lyLlNlc3Npb24uc2VuZEV2ZW50KGkpO2ZvcihsZXQgdD0wO3Q8aS5sZW5ndGg7dCsrKXRoaXMuY2xpZW50LlRyaWdnZXIuZG9FdmVudCgidXNlcl9ldmVudCIse3RleHQ6aVt0XVswXX0pfSl9c2V0X3VzZXJfZW1haWwodD1udWxsLGU9bnVsbCl7aWYoIXR8fCEwIT09QXUuaXNFbWFpbCh0KSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgZW1haWwiKTtpZihudWxsIT09ZSYmITAhPT1UdS50ZXN0KGUpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCB2ZXJpZnkgc2lnbmF0dXJlIChzaG91bGQgYmUgbG93ZXJjYXNlIEhNQUMtU0hBMjU2KSIpO3lyLlNlc3Npb24uc2V0RW1haWwodCwhMSxlKSx0aGlzLkh1KCksdGhpcy5ldmVudCgidXNlcjplbWFpbDpjaGFuZ2VkIix0KX1zZXRfdXNlcl9waG9uZSh0PW51bGwpe2lmKCJudW1iZXIiPT10eXBlb2YgdCYmKHQ9YCR7dH1gKSwhdHx8ITAhPT1BdS5pc1Bob25lKHQpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBwaG9uZSIpO3lyLlNlc3Npb24uc2V0UGhvbmUodCksdGhpcy5IdSgpLHRoaXMuZXZlbnQoInVzZXI6cGhvbmU6Y2hhbmdlZCIsdCl9c2V0X3VzZXJfbmlja25hbWUodD1udWxsKXtpZigic3RyaW5nIiE9dHlwZW9mIHR8fCF0KXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBuaWNrbmFtZSIpO3lyLlNlc3Npb24uc2V0Tmlja25hbWUodCksdGhpcy5ldmVudCgidXNlcjpuaWNrbmFtZTpjaGFuZ2VkIix0KX1zZXRfdXNlcl9hdmF0YXIodD1udWxsKXtpZighdHx8ITAhPT1BdS5pc0F2YXRhcih0KSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgYXZhdGFyIik7eXIuU2Vzc2lvbi5zZXRBdmF0YXIodCksdGhpcy5ldmVudCgidXNlcjphdmF0YXI6Y2hhbmdlZCIsdCl9c2V0X3VzZXJfY29tcGFueSh0LGU9e30pe2lmKCF0KXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBjb21wYW55IG5hbWUiKTt7bGV0IHM9e25hbWU6dH07aWYoZS51cmwpe2lmKCJzdHJpbmciIT10eXBlb2YgZS51cmwpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIFVSTCIpO3MudXJsPWUudXJsfWlmKGUuZGVzY3JpcHRpb24pe2lmKCJzdHJpbmciIT10eXBlb2YgZS5kZXNjcmlwdGlvbil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgZGVzY3JpcHRpb24iKTtzLmRlc2NyaXB0aW9uPWUuZGVzY3JpcHRpb259aWYoZS5lbXBsb3ltZW50Py5bMF0pe2lmKCJzdHJpbmciIT10eXBlb2YgZS5lbXBsb3ltZW50WzBdfHwic3RyaW5nIiE9dHlwZW9mIGUuZW1wbG95bWVudFsxXSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgZW1wbG95bWVudCIpO3MuZW1wbG95bWVudD17dGl0bGU6ZS5lbXBsb3ltZW50WzBdLHJvbGU6ZS5lbXBsb3ltZW50WzFdfX1pZihlLmdlb2xvY2F0aW9uPy5bMF0pe2lmKCJzdHJpbmciIT10eXBlb2YgZS5nZW9sb2NhdGlvblswXXx8ZS5nZW9sb2NhdGlvblsxXSYmInN0cmluZyIhPXR5cGVvZiBlLmdlb2xvY2F0aW9uWzFdKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBnZW9sb2NhdGlvbiIpO3MuZ2VvbG9jYXRpb249e2NvdW50cnk6ZS5nZW9sb2NhdGlvblswXSxjaXR5OmUuZ2VvbG9jYXRpb25bMV18fG51bGx9fXlyLlNlc3Npb24uc2V0Q29tcGFueShzKX19Y29uZmlnX2F2YWlsYWJpbGl0eV90b29sdGlwKHQ9ITEpe3RoaXMuY2xpZW50LkJhc2UudXBkYXRlQ29uZmlndXJhdGlvbigiYXZhaWxhYmlsaXR5X3Rvb2x0aXAiLHQpLCEwPT09dCYmITAhPT13dS5iYXNlLmlzX2Z1bGxfdmlldyYmKHd1Lm1pbmltaXplZC5wYW5lLmdlbmVyYWxfZW50aWNlLnZpc2libGU9ITApfWNvbmZpZ19oaWRlX3ZhY2F0aW9uKHQ9ITEpe3RoaXMuY2xpZW50LkJhc2UudXBkYXRlQ29uZmlndXJhdGlvbigiaGlkZV92YWNhdGlvbiIsdCl9Y29uZmlnX2hpZGVfb25fYXdheSh0PSExKXt0aGlzLmNsaWVudC5CYXNlLnVwZGF0ZUNvbmZpZ3VyYXRpb24oImhpZGVfb25fYXdheSIsdCl9Y29uZmlnX2hpZGVfb25fbW9iaWxlKHQ9ITEpe3RoaXMuY2xpZW50LkJhc2UudXBkYXRlQ29uZmlndXJhdGlvbigiaGlkZV9vbl9tb2JpbGUiLHQpfWNvbmZpZ19wb3NpdGlvbl9yZXZlcnNlKHQ9ITEpe3RoaXMuY2xpZW50LkJhc2UudXBkYXRlQ29uZmlndXJhdGlvbigicG9zaXRpb25fcmV2ZXJzZSIsdCl9Y29uZmlnX3NvdW5kX211dGUodD0hMSl7TW8ubXV0ZSh0KX1jb25maWdfY29sb3JfdGhlbWUodD1udWxsKXtaci5hcHBseVRoZW1lKHQpfWNvbmZpZ19jb2xvcl9tb2RlKHQ9bnVsbCl7aWYoIXR8fCEwIT09U3UudGVzdCh0KSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgY29sb3IgbW9kZSIpO3d1LndlYnNpdGUudXBkYXRlQ2hhdFZhbHVlKCJjb2xvcl9tb2RlIix0KX1jb25maWdfbGF5b3V0X3RoZW1lKHQ9ImRlZmF1bHQiKXtpZighdHx8ITAhPT1SdS50ZXN0KHQpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBsYXlvdXQgdGhlbWUiKTt3dS53ZWJzaXRlLnVwZGF0ZUNoYXRWYWx1ZSgibGF5b3V0X3RoZW1lIix0KX1jb25maWdfdGlsZSh0PSJkZWZhdWx0Iil7aWYoIXR8fCEwIT09T3UudGVzdCh0KSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdGlsZSIpO3d1LndlYnNpdGUudXBkYXRlQ2hhdFZhbHVlKCJ0aWxlIix0KX1jb25maWdfY29udGFpbmVyX2luZGV4KHQ9bnVsbCl7WnIuYXBwbHlDb250YWluZXJJbmRleCh0KX1jb25maWdfc2hvd19vcGVyYXRvcl9jb3VudCh0PSEwKXt3dS5jaGF0LnNob3dfb3BlcmF0b3JfY291bnQ9dH1jb25maWdfbG9jYWxlKHQ9IiIpeyEwPT09d3Uud2Vic2l0ZS51cGRhdGVDaGF0VmFsdWUoImxvY2FsZSIsYnUuZGV0ZWN0KHQ/W3RdOltdKSkmJmJ1LmxvYWQod3Uud2Vic2l0ZS5jaGF0LmxvY2FsZSl9ZXZlbnQodCxlPVtdKXtpZigheHUuaW5jbHVkZXModCkpdGhyb3cgbmV3IEVycm9yKGBFdmVudCBuYW1lc3BhY2Ugbm90IHJlY29nbml6ZWQ6ICR7dH1gKTsiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5WdVt0XSYmeHIubmV4dFJlbmRlcigoKT0+e3RyeXt0aGlzLlZ1W3RdLmFwcGx5KHdpbmRvdyxlIGluc3RhbmNlb2YgQXJyYXk/ZTp2b2lkIDAhPT1lP1tlXTpbXSl9Y2F0Y2h7fX0pfXVuc3RhY2tQZW5kaW5nKCl7bGV0IHQ9dGhpcy5jbGllbnQuQmFzZS5fZG9sbGFyQ3Jpc3A/Ll9fc3Bvb2w/LnBlbmRpbmdfYWN0aW9ucztpZihkZWxldGUgdGhpcy5jbGllbnQuQmFzZS5fZG9sbGFyQ3Jpc3A/Ll9fc3Bvb2w/LnBlbmRpbmdfYWN0aW9ucyx0Py5sZW5ndGg+MClmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl0cnl7VXUucHVzaCh0W2VdKX1jYXRjaHt9fWhhbmRsZVRvb2xFdmVudFJlcXVlc3QodCl7aWYoImV4ZWN1dGVfdG9vbCIhPT10LmNvbW1hbmQpcmV0dXJuO2xldCBlPXQub3JpZ2luYXRvcj8uam9pbigiOiIpfHxudWxsLHM9SXVbZV18fG51bGw7aWYoImh1Z28iIT09ZXx8bnVsbD09PXMpcmV0dXJuO2xldCBpPXQucGF5bG9hZHx8e30sbj1pLmlkfHxudWxsLHI9aS50b29sfHxudWxsLG89aS5vcHRpb25zfHx7fTtpZighcilyZXR1cm47bGV0IHU9YCR7anV9JHtyfWA7ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuVnVbdV0mJnhyLm5leHRSZW5kZXIoYXN5bmMoKT0+e3RyeXtsZXQgZT1hd2FpdCB0aGlzLlZ1W3VdLmNhbGwod2luZG93LG8sbix0LnNlc3Npb25faWQpO3RoaXMuV3UocyxuLHIsZSx0LnNlc3Npb25faWQpfWNhdGNoKGUpe1dlLmVycm9yKGBUb29sIGV4ZWN1dGlvbiBlcnJvciBmb3IgJHt1fTogJHtlfWApfX0pfWlzVG9vbEV2ZW50KHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdCYmITA9PT10LnN0YXJ0c1dpdGgoanUpfVV1KHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJIYW5kbGVyIG11c3QgYmUgYSBmdW5jdGlvbiIpO3RoaXMuVnVbdF09ZX1xdSh0KXt2b2lkIDAhPT10aGlzLlZ1W3RdJiZkZWxldGUgdGhpcy5WdVt0XX1XdSh0LGUscyxpPW51bGwsbj1udWxsKXtsZXQgcj17dHlwZToidG9vbDpyZXN1bHQiLGlkOmUsdG9vbDpzfTt2b2lkIDAhPT1pJiYoci5yZXN1bHQ9aSkseXIuU2Vzc2lvbi5zZW5kUGx1Z2luQWN0aW9uKHQscixuKX1IdSgpeyEwPT09dGhpcy5jbGllbnQuQ2hhdC5faXNJbml0aWFsaXplZCYmKCEwPT09d3UubWVzc2FnZXMuY29udmVyc2F0aW9uLmhhc19zZW50X21lc3NhZ2VzJiZ3dS5jaGF0QWxlcnQudXBkYXRlKCJ3YWl0X3JlcGx5Iiwic2hvdyIpLHd1LmNoYXQuZWFjaFNlc3Npb25JZCh0PT57d3UuY2hhdEFsZXJ0LnVwZGF0ZSgid2Fybl9yZXBseSIsImhpZGUiLHQpLHd1LmNoYXRBbGVydC51cGRhdGUoImVtYWlsX2ludmFsaWQiLCJoaWRlIix0KSx3dS5jaGF0SW50ZW50LnVwZGF0ZSgiaWRlbnRpdHkiLCExLHQpLHd1Lm1lc3NhZ2VzLmNoZWNrRm9ybUlkZW50aWZ5VW5sb2NrKHQpfSkpfU51KHQsZSl7bGV0IHM9e3R5cGU6bnVsbCxjb250ZW50Om51bGx9O3N3aXRjaCh0KXtjYXNlInRleHQiOmlmKCJzdHJpbmciIT10eXBlb2YgZXx8IWUpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHRleHQgbWVzc2FnZSIpO3MudHlwZT0idGV4dCIscy5jb250ZW50PWU7YnJlYWs7Y2FzZSJmaWxlIjppZigib2JqZWN0IiE9dHlwZW9mIGV8fCFlLm5hbWV8fCFlLnVybHx8IWUudHlwZSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgZmlsZSBtZXNzYWdlIik7cy50eXBlPSJmaWxlIixzLmNvbnRlbnQ9e25hbWU6ZS5uYW1lLHVybDplLnVybCx0eXBlOmUudHlwZX07YnJlYWs7Y2FzZSJhbmltYXRpb24iOmlmKCJvYmplY3QiIT10eXBlb2YgZXx8IWUudXJsfHwhZS50eXBlKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBhbmltYXRpb24gbWVzc2FnZSIpO3MudHlwZT0iYW5pbWF0aW9uIixzLmNvbnRlbnQ9e3VybDplLnVybCx0eXBlOmUudHlwZX07YnJlYWs7Y2FzZSJhdWRpbyI6aWYoIm9iamVjdCIhPXR5cGVvZiBlfHwhZS51cmx8fCFlLnR5cGV8fCFlLmR1cmF0aW9uKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBhdWRpbyBtZXNzYWdlIik7cy50eXBlPSJhdWRpbyIscy5jb250ZW50PXt1cmw6ZS51cmwsdHlwZTplLnR5cGUsZHVyYXRpb246ZS5kdXJhdGlvbn07YnJlYWs7Y2FzZSJwaWNrZXIiOmlmKCJvYmplY3QiIT10eXBlb2YgZXx8IWUuaWR8fCFlLnRleHR8fDA9PT0oZS5jaG9pY2VzfHxbXSkubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBwaWNrZXIgbWVzc2FnZSIpO3MudHlwZT0icGlja2VyIixzLmNvbnRlbnQ9e2lkOmUuaWQsdGV4dDplLnRleHQsY2hvaWNlczplLmNob2ljZXN9O2JyZWFrO2Nhc2UiZmllbGQiOmlmKCJvYmplY3QiIT10eXBlb2YgZXx8IWUuaWR8fCFlLnRleHR8fCFlLmV4cGxhaW4pdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGZpZWxkIG1lc3NhZ2UiKTtzLnR5cGU9ImZpZWxkIixzLmNvbnRlbnQ9e2lkOmUuaWQsdGV4dDplLnRleHQsZXhwbGFpbjplLmV4cGxhaW59O2JyZWFrO2Nhc2UiY2Fyb3VzZWwiOmlmKCJvYmplY3QiIT10eXBlb2YgZXx8IWUudGV4dHx8MD09PShlLnRhcmdldHN8fFtdKS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNhcm91c2VsIG1lc3NhZ2UiKTtzLnR5cGU9ImNhcm91c2VsIixzLmNvbnRlbnQ9e3RleHQ6ZS50ZXh0LHRhcmdldHM6ZS50YXJnZXRzfX1yZXR1cm4gc319LFB1PVsiZ2V0Iiwic2V0IiwiaXMiLCJkbyIsIm9uIiwib2ZmIiwiY29uZmlnIiwic2FmZSIsImhlbHAiXSxMdT1bIm9uIiwib2ZmIl0sTXU9LzovZyxVdT1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLl9zYWZlTW9kZT0hMSx0aGlzLmdyKCl9cmVzZXQoKXt0aGlzLmdyKCl9cHVzaCh0KXtsZXQgZT13aW5kb3cuJF9fQ1JJU1BfSU5TVEFOQ0U/Ll9fc3Bvb2x8fHt9O3ZvaWQgMCE9PWUucGVuZGluZ19hY3Rpb25zP2UucGVuZGluZ19hY3Rpb25zLnB1c2godCk6dFswXSYmdm9pZCAwIT09dFsxXSYmUHUuaW5jbHVkZXModFswXSkmJiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzW3RbMF1dJiZ0aGlzW3RbMF1dKHRbMV0sdFsyXXx8W10pfWdldCh0LGU9W10pe3JldHVybiB0aGlzLkd1KCJnZXQiLHQsdGhpcy5KdShlKSl9c2V0KHQsZT1bXSl7cmV0dXJuIHRoaXMuR3UoInNldCIsdCx0aGlzLkp1KGUpKX1pcyh0KXtyZXR1cm4gdGhpcy5HdSgiaXMiLHQpfWRvKHQsZT1bXSl7cmV0dXJuIHRoaXMuR3UoImRvIix0LHRoaXMuSnUoZSkpfW9uKHQsZSl7cmV0dXJuIHRoaXMuS3UoIm9uIix0LFt0LGVdKX1vZmYodCl7cmV0dXJuIHRoaXMuS3UoIm9mZiIsdCxbdF0pfWNvbmZpZyh0LGU9W10pe3JldHVybiB0aGlzLkd1KCJjb25maWciLHQsdGhpcy5KdShlKSl9c2FmZSh0PSEwKXtpZigiYm9vbGVhbiIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiU2FmZSBtb2RlIHZhbHVlIG11c3QgYmUgJ3RydWUnIG9yICdmYWxzZScuIik7dGhpcy5fc2FmZU1vZGU9dH1oZWxwKCl7bGV0IHQ9W10scz1lKCkuQWN0aW9uLGk9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoT2JqZWN0LmdldFByb3RvdHlwZU9mKHMpKTtmb3IobGV0IGU9MDtlPGkubGVuZ3RoO2UrKyl7bGV0IG49aVtlXS5zcGxpdCgiXyIpO24ubGVuZ3RoPjEmJlB1LmluY2x1ZGVzKG5bMF0pJiYiZnVuY3Rpb24iPT10eXBlb2Ygc1tpW2VdXSYmdC5wdXNoKGAkY3Jpc3AuJHtuWzBdfSgnJHtuLnNsaWNlKDEpLmpvaW4oIjoiKX0nKWApfWZvcihsZXQgZT0wO2U8THUubGVuZ3RoO2UrKylmb3IobGV0IHM9MDtzPHh1Lmxlbmd0aDtzKyspdC5wdXNoKGAkY3Jpc3AuJHtMdVtlXX0oJyR7eHVbc119JylgKTtyZXR1cm4gdH1KdSh0KXtyZXR1cm4gdD90IGluc3RhbmNlb2YgQXJyYXk/dDpbdF06W119R3UodCxzLGk9W10pe2xldCBuPW51bGwscj1udWxsO3RyeXtsZXQgcj1gJHt0fV8keyhzfHwiIikucmVwbGFjZShNdSwiXyIpfWA7ImZ1bmN0aW9uIj09dHlwZW9mIGUoKS5BY3Rpb25bcl0/bj1lKCkuQWN0aW9uW3JdLmFwcGx5KGUoKS5BY3Rpb24saSk6dGhpcy5ZdShzKX1jYXRjaChvKXshMCE9PXRoaXMuX3NhZmVNb2RlJiYocj1vKX1pZihudWxsIT09cil0aHJvdyByO3JldHVybiBufUt1KHQscyxpPVtdKXtsZXQgbj1udWxsLHI9bnVsbDt0cnl7bGV0IHI9ZSgpLkFjdGlvbi5fZXZlbnRQaXBlTWV0aG9kc1t0XTtpZigiZnVuY3Rpb24iIT10eXBlb2Ygcil0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggZXZlbnQgbWV0aG9kIGZvciBhY3Rpb246ICR7dH1gKTshMD09PXh1LmluY2x1ZGVzKHMpfHwhMD09PWUoKS5BY3Rpb24uaXNUb29sRXZlbnQocyk/bj1yLmFwcGx5KGUoKS5BY3Rpb24saSk6dGhpcy5ZdShzKX1jYXRjaChvKXshMCE9PXRoaXMuX3NhZmVNb2RlJiYocj1vKX1pZihudWxsIT09cil0aHJvdyByO3JldHVybiBufVl1KHQpe3Rocm93IG5ldyBFcnJvcihgTm8gc3VjaCBuYW1lc3BhY2U6ICR7dH0gLSBDYWxsICRjcmlzcC5oZWxwKCkgZm9yIGEgbGlzdCBvZiBhdmFpbGFibGUgYWN0aW9ucy5gKX1ncigpe3RoaXMuX3NhZmVNb2RlPSExfX07ZnVuY3Rpb24gcXUodCxlLC4uLnMpe3JldHVybiB0LmJpbmQmJi9cW25hdGl2ZSBjb2RlXF0vLnRlc3QodC5iaW5kLnRvU3RyaW5nKCkpP3QuYmluZChlLC4uLnMpOmZ1bmN0aW9uKC4uLmkpe3JldHVybiB0LmFwcGx5KGUsWy4uLnMsLi4uaV0pfX1mdW5jdGlvbiBWdSh0LGUsLi4ucyl7cmV0dXJuIHQuYmluZCYmL1xbbmF0aXZlIGNvZGVcXS8udGVzdCh0LmJpbmQudG9TdHJpbmcoKSk/dC5iaW5kKGUsLi4ucyk6ZnVuY3Rpb24oLi4uaSl7cmV0dXJuIHQuYXBwbHkoZSxbLi4ucywuLi5pXSl9fXZhciBOdT17Y2FwdHVyZTohMX0sSHU9Y2xhc3MgZXh0ZW5kcyBKZXtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuY2xpZW50PXQsdGhpcy5faXNJbmFjdGl2ZT0hMSx0aGlzLl9pc1pvbWJpZT0hMSx0aGlzLmdyKCl9aW5pdCgpe3RoaXMuWnUoKX1yZXNldCgpe251bGwhPT10aGlzLlh1JiZ4ci5jbGVhclRpbWVvdXQodGhpcy5YdSksdGhpcy5RdSYmc2NyZWVuLm9yaWVudGF0aW9uJiYoc2NyZWVuLm9yaWVudGF0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5RdSksdGhpcy5RdT1udWxsKSx0aGlzLmdyKCl9dHJpZ2dlckludGVyYWN0ZWQodD0hMSl7d3UuYmFzZS5oYXNfaW50ZXJhY3RlZD0hMCx0aGlzLnRsKCksITA9PT10JiZ0aGlzLnNsKCl9Y2hlY2tBY3Rpdml0eUF1dG9raWxsKCl7bnVsbD09PXRoaXMuaWwmJnRoaXMubmwoKSxudWxsPT09dGhpcy5ybCYmdGhpcy5vbCgpfVp1KCl7dGhpcy51bCgpLHRoaXMubGwoKSx0aGlzLmFsKCksdGhpcy5obCgpfXVsKCl7bGV0IHQ9d2luZG93LnZpc3VhbFZpZXdwb3J0PyJ3aW5kb3cudmlzdWFsVmlld3BvcnQiOiJ3aW5kb3ciO3hyLmFkZEV2ZW50TGlzdGVuZXIodCwicmVzaXplIiwoKT0+e251bGwhPT10aGlzLlh1JiYoeHIuY2xlYXJUaW1lb3V0KHRoaXMuWHUpLHRoaXMuWHU9bnVsbCksd3UuYmFzZS5pc19tb2JpbGVfdmlldz8odGhpcy5jbGllbnQuQ2hhdC5leGVjdXRlUmVzaXplKCkseHIuc2V0VGltZW91dCgoKT0+e3RoaXMuY2xpZW50LkNoYXQuZXhlY3V0ZVJlc2l6ZSgpfSwzMDApLHRoaXMuWHU9eHIuc2V0VGltZW91dCgoKT0+e3RoaXMuWHU9bnVsbCx0aGlzLmNsaWVudC5DaGF0LmV4ZWN1dGVSZXNpemUoKX0sODAwKSk6dGhpcy5jbGllbnQuQ2hhdC5leGVjdXRlUmVzaXplKCl9KX1sbCgpe3NjcmVlbi5vcmllbnRhdGlvbiYmKHRoaXMuUXU9KCk9PntzY3JlZW4ub3JpZW50YXRpb24udHlwZSxzY3JlZW4ub3JpZW50YXRpb24uYW5nbGUsT3IuYmx1ckZyb21Gb3JlZ3JvdW5kKCkseHIuc2V0VGltZW91dCgoKT0+e3RoaXMuY2xpZW50LkNoYXQuZXhlY3V0ZVJlc2l6ZSgpfSwzMDApLHhyLnNldFRpbWVvdXQoKCk9Pnt0aGlzLmNsaWVudC5DaGF0LmV4ZWN1dGVSZXNpemUoKX0sODAwKX0sc2NyZWVuLm9yaWVudGF0aW9uLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5RdSkpfWFsKCl7dGhpcy50bCgpLHhyLmFkZEV2ZW50TGlzdGVuZXIoIndpbmRvdyIsImNsaWNrIixWdSh0aGlzLmNsLHRoaXMpLE51KSx4ci5hZGRFdmVudExpc3RlbmVyKCJ3aW5kb3ciLCJ0b3VjaGVuZCIsVnUodGhpcy5jbCx0aGlzKSxOdSkseHIuYWRkRXZlbnRMaXN0ZW5lcigid2luZG93IiwidG91Y2htb3ZlIixWdSh0aGlzLmNsLHRoaXMpLE51KSx4ci5hZGRFdmVudExpc3RlbmVyKCJ3aW5kb3ciLCJrZXlkb3duIixWdSh0aGlzLmNsLHRoaXMpLE51KSx4ci5hZGRFdmVudExpc3RlbmVyKCJ3aW5kb3ciLCJtb3VzZW1vdmUiLFZ1KHRoaXMudGwsdGhpcyksTnUpLHhyLmFkZEV2ZW50TGlzdGVuZXIoIndpbmRvdyIsImZvY3VzIixWdSh0aGlzLnRsLHRoaXMpLE51KSx4ci5hZGRFdmVudExpc3RlbmVyKCJ3aW5kb3ciLCJibHVyIixWdSh0aGlzLnRsLHRoaXMpLE51KX1obCgpe3RoaXMuc2woKX1jbCgpe3RoaXMudHJpZ2dlckludGVyYWN0ZWQoKX10bCgpe251bGwhPT10aGlzLmlsJiZ4ci5jbGVhclRpbWVvdXQodGhpcy5pbCksdGhpcy5pbD14ci5zZXRUaW1lb3V0KCgpPT57dGhpcy5pbD1udWxsLHRoaXMubmwoKX0sNmU1KSwhMD09PXRoaXMuX2lzSW5hY3RpdmUmJiExPT09dGhpcy5faXNab21iaWUmJnlyLnNvY2tldC5jb25uZWN0KCksdGhpcy5faXNJbmFjdGl2ZT0hMSx5ci5TZXNzaW9uLm1hcmtBY3RpdmUoKX1ubCgpeyEwPT09eXIuc29ja2V0LmNvbm5lY3RlZCYmKHRoaXMuX2lzSW5hY3RpdmU9ITAseXIuc29ja2V0LmRpc2Nvbm5lY3QoKSl9c2woKXtudWxsIT09dGhpcy5ybCYmeHIuY2xlYXJUaW1lb3V0KHRoaXMucmwpLHRoaXMucmw9eHIuc2V0VGltZW91dCgoKT0+e3RoaXMucmw9bnVsbCx0aGlzLm9sKCl9LDM2ZTUpLCEwPT09dGhpcy5faXNab21iaWUmJnlyLnNvY2tldC5jb25uZWN0KCksdGhpcy5faXNab21iaWU9ITF9b2woKXshMCE9PXlyLnNvY2tldC5jb25uZWN0ZWQmJiEwIT09dGhpcy5faXNJbmFjdGl2ZXx8KHRoaXMuX2lzWm9tYmllPSEwLCEwPT09eXIuc29ja2V0LmNvbm5lY3RlZCYmeXIuc29ja2V0Py5kaXNjb25uZWN0KCkpfWdyKCl7dGhpcy5faXNJbmFjdGl2ZT0hMSx0aGlzLl9pc1pvbWJpZT0hMSx0aGlzLmlsPW51bGwsdGhpcy5ybD1udWxsLHRoaXMuWHU9bnVsbCx0aGlzLlF1PW51bGx9fSxXdT1jbGFzcyBleHRlbmRzIEple2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5jbGllbnQ9dCx0aGlzLmRsPSExLHRoaXMuRGw9bnVsbCx0aGlzLmdyKCl9aW5pdCgpe3RoaXMuZmwoKX1yZXNldCgpe3RoaXMuZ3IoKX10b2dnbGVDaGF0TW9kZSh0PSExKXsiY2hhdCI9PT13dS5jaGF0Lm1vZGV8fCEwIT09dCYmITA9PT13dS5oZWxwZGVzay5zZXR0aW5nc19vbmx5fHwod3UuY2hhdC5tb2RlPSJjaGF0Iix0aGlzLnJlcXVlc3REeW5hbWljU2l6aW5nUHJvcGVydGllcygpKX10b2dnbGVWaXNpYmlsaXR5KHQ9InBhbmUiLGU9ITApe2xldCBzPSh0LGUpPT57dCE9PWU9PSEwJiYod3UuY2hhdC5pc19vcGVuZWQ9dCx4ci5uZXh0UmVuZGVyKCgpPT57dGhpcy5wbCh0KX0pKX07KHQ9PntsZXQgaT13dS5jaGF0LmlzX29wZW5lZDtpZih3dS5jaGF0LmlzX21heGltaXplZD10LCEwPT09ZSl7bGV0IGU9ITAhPT10PyJhbmltYXRlX21pbmltaXplIjoiYW5pbWF0ZV9tYXhpbWl6ZSI7ITA9PT10P3d1LmNoYXQuaXNfb3BlbmVkPSEwOnRoaXMucGwoITEpLG51bGwhPT10aGlzLl9sJiYoeHIuY2xlYXJUaW1lb3V0KHRoaXMuX2wpLHd1LmNoYXQuYW5pbWF0ZV9taW5pbWl6ZT0hMSx3dS5jaGF0LmFuaW1hdGVfbWF4aW1pemU9ITEpLHd1LmNoYXRbZV09ITAsdGhpcy5fbD14ci5zZXRUaW1lb3V0KCgpPT57dGhpcy5fbD1udWxsLHd1LmNoYXRbZV09ITEscyh0LGkpfSwzNTApfWVsc2Ugcyh0LGkpfSkoInBhbmUiIT09dCksITA9PT1lJiZ0aGlzLmFwcGx5Q2hhdEZvY3VzKCl9dG9nZ2xlU29ja2V0U3RhdGUodD0hMSxlPSExKXtudWxsIT09dGhpcy5tbCYmeHIuY2xlYXJUaW1lb3V0KHRoaXMubWwpLHRoaXMubWw9eHIuc2V0VGltZW91dCgoKT0+e3RoaXMubWw9bnVsbCx3dS5jaGF0Lmhhc19vZmZsaW5lPSEwIT09dDtsZXQgcz17ZmFpbGVkOmUsaW5hY3RpdmU6dGhpcy5jbGllbnQuRXZlbnQuX2lzSW5hY3RpdmV8fHRoaXMuY2xpZW50LkV2ZW50Ll9pc1pvbWJpZXx8ITF9O2ZvcihsZXQgdCBpbiBzKXd1LmNoYXRbYHJlY29ubmVjdF8ke3R9YF09c1t0XX0sITA9PT10PzA6MWUzKX1hcHBseUNoYXRGb2N1cygpe2xldCB0PXd1LmNoYXQuaGFzX2NoYXRfZm9jdXMsZT13dS5jaGF0LmNvbnZlcnNhdGlvbnMuY3VycmVudF9zZXNzaW9uX2lkfHxudWxsO3lyLk1lc3NhZ2Uuc2V0TWVzc2FnZXNJblZpZXcodCxlKX1wYW5lKCl7dGhpcy5nbCgpLHRoaXMuRGw9VnIuZG9tKCc8ZGl2IGNsYXNzPSJjYy1sazQydSBjYy0yb2I0aiBjYy0xc29mNSBjYy15N21oeSI+PGRpdiBjbGFzcz0iY2Mtdzd2MTgiIDpkYXRhLXZpc2libGU9IiRzdG9yZS5jaGF0LmlzX29wZW5lZCIgOmRhdGEtY2hhdC1zdGF0dXM9IiRzdG9yZS5jaGF0LmN1cnJlbnRfc3RhdHVzX21hcmtlciIgOmRhdGEtYW5pbWF0ZS1taW5pbWl6ZT0iJHN0b3JlLmNoYXQuYW5pbWF0ZV9taW5pbWl6ZSIgOmRhdGEtYW5pbWF0ZS1tYXhpbWl6ZT0iJHN0b3JlLmNoYXQuYW5pbWF0ZV9tYXhpbWl6ZSI+PC9kaXY+PGRpdiBjbGFzcz0iY2MtMTN3cm8iIHYtY3Jpc3AtYWNjZXNzaWJpbGl0eT0ieyByb2xlOiBcJ2J1dHRvblwnIH0iIEBjbGljay5wcmV2ZW50LnN0b3A9IiRzdG9yZS5jaGF0Lm9uUGFuZVRvZ2dsZUNsaWNrIiA6ZGF0YS12aXNpYmxlPSIkc3RvcmUuY2hhdC5pc19vcGVuZWQiIDpkYXRhLW1heGltaXplZD0iJHN0b3JlLmNoYXQuaXNfb3BlbmVkIiA6ZGF0YS1hbmltYXRlLW1heGltaXplPSIkc3RvcmUuY2hhdC5hbmltYXRlX21heGltaXplIiA6ZGF0YS1hbmltYXRlLW1pbmltaXplPSIkc3RvcmUuY2hhdC5hbmltYXRlX21pbmltaXplIiA6ZGF0YS1wYW5lLWFuaW1hdGUtZW50cmFuY2U9IiRzdG9yZS5taW5pbWl6ZWQucGFuZT8uYW5pbWF0ZV9lbnRyYW5jZSIgOmFyaWEtbGFiZWw9IiRzdG9yZS5jaGF0LmlzX29wZW5lZCA/ICRyZW5kZXIuX2UoXCdtaW5pbWl6ZWRcJywgXCd0b29sdGlwX2J1dHRvbl9jbG9zZV9oaW50XCcpIDogJHJlbmRlci5fZShcJ21pbmltaXplZFwnLCBcJ3Rvb2x0aXBfYnV0dG9uX29wZW5faGludFwnKSIgOmFyaWEtZXhwYW5kZWQ9IiRzdG9yZS5jaGF0LmlzX29wZW5lZCA/IFwndHJ1ZVwnIDogXCdmYWxzZVwnIiBkYXRhLWlzLWZhaWx1cmU9ImZhbHNlIj48c3BhbiBjbGFzcz0iY2MtMTFwNHAiPjxzcGFuIGNsYXNzPSJjYy1sNHd6ZCIgdi1pZj0iISRzdG9yZS5jaGF0LmlzX29wZW5lZCAmYW1wOyZhbXA7ICRzdG9yZS5taW5pbWl6ZWQudG9vbHRpcHM/Lm5ld19tZXNzYWdlcz8udmlzaWJsZSIgQGNsaWNrPSIkc3RvcmUuY2hhdC5vblBhbmVUb29sdGlwTmV3TWVzc2FnZXNDbGljayIgOmNsYXNzPSJ7IFwnY2MtY2xjNWdcJzogJHN0b3JlLm1pbmltaXplZC50b29sdGlwcz8ubmV3X21lc3NhZ2VzPy5hbmltYXRlIH0iIGRhdGEtaWQ9Im5ld19tZXNzYWdlcyI+PHNwYW4gY2xhc3M9ImNjLTRrbWFnIiB2LWlmPSIkc3RvcmUuY2hhdC5jdXJyZW50X3VucmVhZF9wcmV2aWV3Ij48c3BhbiBjbGFzcz0iY2MtMWFnamoiPjxzcGFuIGNsYXNzPSJjYy0xOXl2bCBjYy0xaHVleSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2MtMXRzM3YiPjxzcGFuIGNsYXNzPSJjYy0xazN2biIgdi1mb3I9Im1lc3NhZ2UgaW4gJHN0b3JlLmNoYXQuY3VycmVudF91bnJlYWRfcHJldmlldy5wcmV2aWV3IiA6Y2xhc3M9InsgXCdjYy1yNWdsNVwnOiBtZXNzYWdlLmFuaW1hdGUgJmFtcDsmYW1wOyAkc3RvcmUuZmVhdHVyZS5oYXNfY3NzX2FuaW1hdGlvbnMgIH0iPjxzcGFuIGNsYXNzPSJjYy0xMWx6aiI+PHNwYW4gY2xhc3M9ImNjLWZvZG04Ij48c3BhbiBjbGFzcz0iY2MtMWFvcXQiPjwvc3Bhbj48ZGl2IGNsYXNzPSJjYy0xanc4aSI+PHNwYW4gY2xhc3M9ImNjLXpxcDdlIGNjLTFsbDdqIj48c3BhbiBjbGFzcz0iY2MtZWI0YTggY2MtMWYyejIiIDpzdHlsZT0ieyBiYWNrZ3JvdW5kSW1hZ2U6ICRyZW5kZXIuaW1hZ2VVcmxCYWNrZ3JvdW5kKCRyZW5kZXIuX2EoMTIwLCAobWVzc2FnZS51c2VyPy50eXBlIHx8IG1lc3NhZ2UuZnJvbSksIG1lc3NhZ2UudXNlcj8udXNlcl9pZCwgbWVzc2FnZS51c2VyPy5hdmF0YXIpKSB9Ij48L3NwYW4+PC9zcGFuPjxkaXYgY2xhc3M9ImNjLTFmcjd2Ij48c3BhbiBjbGFzcz0iY2MtMTN0dzYgY2MtMWljcmoiIHYtaWY9Im1lc3NhZ2U/LnR5cGUgPT09IFwndGV4dFwnIiB2LWh0bWw9IiRyZW5kZXIuX2YobWVzc2FnZS5jb250ZW50KSI+PC9zcGFuPjxzcGFuIGNsYXNzPSJjYy0xM3R3NiBjYy0xaWNyaiIgdi1lbHNlLWlmPSJtZXNzYWdlPy50eXBlID09PSBcJ3BpY2tlclwnIHx8IG1lc3NhZ2U/LnR5cGUgPT09IFwnZmllbGRcJyB8fCBtZXNzYWdlPy50eXBlID09PSBcJ2Nhcm91c2VsXCciIHYtaHRtbD0iJHJlbmRlci5fZihtZXNzYWdlLmNvbnRlbnQudGV4dCkiPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2MtMTN0dzYiIHYtZWxzZS1pZj0ibWVzc2FnZT8udHlwZSA9PT0gXCdmaWxlXCcgfHwgbWVzc2FnZT8udHlwZSA9PT0gXCdhbmltYXRpb25cJyI+PHNwYW4gY2xhc3M9ImNjLWI0eTg3IiB2LWlmPSJtZXNzYWdlPy5jb250ZW50Py50eXBlID09PSBcJ2ltYWdlL2dpZlwnIHx8IG1lc3NhZ2U/LnR5cGUgPT09IFwnYW5pbWF0aW9uXCciIDpzdHlsZT0ieyBiYWNrZ3JvdW5kSW1hZ2U6ICRyZW5kZXIuaW1hZ2VVcmxCYWNrZ3JvdW5kKCRyZW5kZXIuaW1hZ2VVcmxPcmlnaW5hbChtZXNzYWdlLmNvbnRlbnQudXJsKSkgfSI+PC9zcGFuPjxzcGFuIGNsYXNzPSJjYy1iNHk4NyIgdi1lbHNlLWlmPSJtZXNzYWdlPy5jb250ZW50Py50eXBlID09PSBcJ2ltYWdlL2pwZWdcJyB8fCBtZXNzYWdlPy5jb250ZW50Py50eXBlID09PSBcJ2ltYWdlL2pwZ1wnIHx8IG1lc3NhZ2U/LmNvbnRlbnQ/LnR5cGUgPT09IFwnaW1hZ2Uvd2VicFwnIHx8IG1lc3NhZ2U/LmNvbnRlbnQ/LnR5cGUgPT09IFwnaW1hZ2UvcG5nXCciIDpzdHlsZT0ieyBiYWNrZ3JvdW5kSW1hZ2U6ICRyZW5kZXIuaW1hZ2VVcmxCYWNrZ3JvdW5kKCRyZW5kZXIuaW1hZ2VVcmxSZXNpemUobWVzc2FnZS5jb250ZW50LnVybCwgMTgwLCAxODApKSB9Ij48L3NwYW4+PHNwYW4gY2xhc3M9ImNjLTEzdHc2IGNjLTFpY3JqIiB2LWVsc2U+8J+TpiB7eyBtZXNzYWdlPy5jb250ZW50Py5uYW1lIH19PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2MtMTN0dzYgY2MtMWljcmoiIHYtZWxzZS1pZj0ibWVzc2FnZT8udHlwZSA9PT0gXCdhdWRpb1wnIj7wn46nPC9zcGFuPjxzcGFuIGNsYXNzPSJjYy0xeTRsaiBjYy0xMGNxcyI+e3sgKG1lc3NhZ2UudXNlcj8udHlwZSA9PT0gXCd3ZWJzaXRlXCcpID8gbWVzc2FnZS51c2VyPy5uaWNrbmFtZSA6ICRyZW5kZXIuX24obWVzc2FnZS51c2VyPy5uaWNrbmFtZSkgfX08L3NwYW4+PC9kaXY+PC9kaXY+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2MtMTNmdHgiPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2MtNTRweGUiIHYtaWY9IiEkc3RvcmUuaGVscGRlc2suc2V0dGluZ3Nfb25seSI+PHNwYW4gY2xhc3M9ImNjLTFnYnJ3Ij48c3BhbiBjbGFzcz0iY2MtMXQyZm8iPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2MtMXV2dnUgY2MtMTBjcXMiIGRhdGEtZm9yLWlkPSJuZXdfbWVzc2FnZXMiPnt7ICRyZW5kZXIuX2UoImNoYXQiLCAibWluaW1pemVkX3Rvb2x0aXBfbWVzc2FnZV9jb21wb3NlIikgfX08L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJjYy0xZ2ZreiIgOmRhdGEtaXMtb25nb2luZz0iJHN0b3JlLm1pbmltaXplZC5wYW5lPy5pc19vbmdvaW5nIiA6ZGF0YS1oYXMtdW5yZWFkPSIkc3RvcmUuY2hhdC5jb252ZXJzYXRpb25zLmFsbF91bnJlYWRfY291bnQgJmd0OyAwIj48c3BhbiBjbGFzcz0iY2MtMmdrNm8iIGRhdGEtcHJlZmVyLXNlYXJjaD0iZmFsc2UiIGRhdGEtaWQ9ImNoYXRfb3BlbmVkIj48c3BhbiBjbGFzcz0iY2MtMW91cmciIHYtaWY9IiRzdG9yZS5wYXJ0aWFsLmJ1bmRsZS5wZW5kaW5nLmNoYXQiPjxzcGFuIGNsYXNzPSJjYy16MXNyOSBjYy0xbHdreiI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2MtMWVyMHEiIHYtZWxzZT48c3BhbiBjbGFzcz0iY2MtYTg3bHIgY2MtMWxsN2oiIHYtaWY9IiRzdG9yZS53ZWJzaXRlPy5jaGF0Py53ZWJzaXRlX2xvZ28iPjxzcGFuIGNsYXNzPSJjYy0xeDhpdyBjYy0xZjJ6MiIgOnN0eWxlPSJ7IGJhY2tncm91bmRJbWFnZTogJHJlbmRlci5pbWFnZVVybEJhY2tncm91bmQoJHJlbmRlci5fYSgxMjAsIFwnd2Vic2l0ZVwnLCAkc3RvcmUuYmFzZS53ZWJzaXRlPy5pZCkpIH0iPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9ImNjLWE4N2xyIGNjLTFsbDdqIiB2LWVsc2UtaWY9IiRzdG9yZS5jaGF0LmN1cnJlbnRfb25nb2luZ19vcGVyYXRvcj8udXJsIj48c3BhbiBjbGFzcz0iY2MtMXg4aXcgY2MtMWYyejIiIDpzdHlsZT0ieyBiYWNrZ3JvdW5kSW1hZ2U6ICRyZW5kZXIuaW1hZ2VVcmxCYWNrZ3JvdW5kKCRzdG9yZS5jaGF0LmN1cnJlbnRfb25nb2luZ19vcGVyYXRvcj8udXJsKSB9Ij48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJjYy1hODdsciBjYy0xbGw3aiIgdi1lbHNlLWlmPSIkc3RvcmUud2Vic2l0ZT8uY2hhdD8ubGFzdF9vcGVyYXRvcl9mYWNlICZhbXA7JmFtcDsgJHN0b3JlLndlYnNpdGU/LndlYnNpdGU/LmFjdGl2ZV9vcGVyYXRvcnM/Lmxlbmd0aCAmZ3Q7IDAiPjxzcGFuIGNsYXNzPSJjYy0xeDhpdyBjYy0xZjJ6MiIgOnN0eWxlPSJ7IGJhY2tncm91bmRJbWFnZTogJHJlbmRlci5pbWFnZVVybEJhY2tncm91bmQoJHJlbmRlci5fYSgxMjAsIFwnb3BlcmF0b3JcJywgJHN0b3JlLndlYnNpdGU/LndlYnNpdGU/LmFjdGl2ZV9vcGVyYXRvcnNbMF0/LnVzZXJfaWQsICRzdG9yZS53ZWJzaXRlPy53ZWJzaXRlPy5hY3RpdmVfb3BlcmF0b3JzWzBdPy5hdmF0YXIpKSB9Ij48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9ImNjLTFudngzIj48L3NwYW4+PHNwYW4gY2xhc3M9ImNjLTF4em1kIGNjLTEwY3FzIiB2LWlmPSIkc3RvcmUuY2hhdC5jb252ZXJzYXRpb25zLmFsbF91bnJlYWRfY291bnQgJmd0OyAwIj57eyAkc3RvcmUuY2hhdC5jb252ZXJzYXRpb25zLmFsbF91bnJlYWRfY291bnQgfX08L3NwYW4+PC9zcGFuPjwvZGl2PjxzcGFuIGNsYXNzPSJjYy1sazZvdCIgOmRhdGEtdmlzaWJsZT0iJHN0b3JlLmNoYXQuaXNfb3BlbmVkIHx8ICRzdG9yZS5taW5pbWl6ZWQudG9vbHRpcHM/Lm5ld19tZXNzYWdlcz8udmlzaWJsZSIgOmRhdGEtYW5pbWF0ZS1taW5pbWl6ZT0iJHN0b3JlLmNoYXQuYW5pbWF0ZV9taW5pbWl6ZSIgOmRhdGEtYW5pbWF0ZS1tYXhpbWl6ZT0iJHN0b3JlLmNoYXQuYW5pbWF0ZV9tYXhpbWl6ZSI+PHNwYW4gY2xhc3M9ImNjLTFjN3dhIj48L3NwYW4+PC9zcGFuPjwvZGl2PicpLHRoaXMuY2xpZW50LkJhc2UuX2NvbnRhaW5lckVsLmlubmVySFRNTD0iIix0aGlzLmNsaWVudC5CYXNlLl9jb250YWluZXJFbC5hcHBlbmRDaGlsZCh0aGlzLkRsKSxWci52dWUodGhpcy5EbCksdGhpcy5jbGllbnQuQ2hhdC5WaWV3cG9ydC5iaW5kQWxsKCksd3UuY2hhdC5pc19tYXhpbWl6ZWQ9ITEsd3UuY2hhdC5pc19vcGVuZWQ9ITF9cmVxdWVzdER5bmFtaWNTaXppbmdQcm9wZXJ0aWVzKHQ9ITEpeyEwIT09dGhpcy5kbCYmKHRoaXMuZGw9ITAseHIubmV4dFJlbmRlcigoKT0+eyJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLkZsKHQpLHRoaXMuZGw9ITF9KToodGhpcy5GbCh0KSx0aGlzLmRsPSExKX0pKX1yZWZyZXNoUmVzaXplUGFnZVNjcm9sbCh0PSExKXtpZih3aW5kb3cuc2Nyb2xsJiYhMD09PXd1LmNoYXQuaXNfb3BlbmVkJiZ0aGlzLndsPi0xKWlmKCEwIT09dCYmd3UuYmFzZS5pc19tb2JpbGVfdmlldyl3aW5kb3cuc2Nyb2xsVG8oMCwtMSk7ZWxzZXtsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJodG1sIik7dCYmdC5jbGFzc0xpc3QucmVtb3ZlKCJjYy0xcnBsdyIpLHRoaXMudmwmJih4ci5yZW1vdmVFdmVudExpc3RlbmVyKCJkb2N1bWVudCIsInRvdWNoc3RhcnQiLHRoaXMudmwpLHRoaXMudmw9bnVsbCksdGhpcy55bCYmKHhyLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRvY3VtZW50IiwidG91Y2htb3ZlIix0aGlzLnlsKSx0aGlzLnlsPW51bGwpLHdpbmRvdy5zY3JvbGwod2luZG93LnNjcm9sbFgsdGhpcy53bCksdGhpcy53bD0tMX19Z2woKXtsZXQgdD17c3RhdHVzOnt1cmw6d3UuY2hhdC5nZW5lcmF0ZUNoYW5uZWxMaW5rKCJzdGF0dXMiKX19O3hyLm1lcmdlKHd1LmNoYXQsdCl9RmwodD0hMSl7aWYoKCF3dS5iYXNlLnJ1bnRpbWU/Lm1vdW50fHwhMD09PXd1LmJhc2UucnVudGltZS5tb2JpbGVfc2RrKSYmITA9PT10aGlzLmNsaWVudC5BY3Rpb24uaXNfY2hhdF92aXNpYmxlKCkpe2xldCBlLHM9d3UuYmFzZS5pc19mdWxsX3ZpZXcsaT1Ici5nZXRDdXN0b21pemF0aW9uKCJwb3NpdGlvbiIsImNoYXRib3giKTt3dS5iYXNlLmFwcGx5U2l6aW5nKCksITA9PT13dS5iYXNlLmlzX2xhcmdlX3ZpZXc/KHRoaXMuYmw9NzMwLHRoaXMuRWw9NDAwLGU9NjAwKTohMD09PXd1LmJhc2UuaXNfc21hbGxfdmlldz8odGhpcy5ibD00OTAsdGhpcy5FbD0zMjAsZT00NDApOih0aGlzLmJsPTYxMCx0aGlzLkVsPTM2MCxlPTUwMCk7bGV0IG49ImhlbHBkZXNrIj09PXd1LmNoYXQubW9kZSYmd3UuaGVscGRlc2sudmlld2VyLnVybCYmITAscj0ic2VhcmNoIj09PXd1LmNoYXQubW9kZSYmITA7ITE9PT1uJiYhMD09PXd1LmNoYXQud2FzX2F1dG9fZXhwYW5kZWQuaGVscGRlc2tfYXJ0aWNsZSYmKHd1LmNoYXQud2FzX2F1dG9fZXhwYW5kZWQuaGVscGRlc2tfYXJ0aWNsZT0hMSksITE9PT1yJiYhMD09PXd1LmNoYXQud2FzX2F1dG9fZXhwYW5kZWQuc2VhcmNoJiYod3UuY2hhdC53YXNfYXV0b19leHBhbmRlZC5zZWFyY2g9ITEpO2xldCBvPSEwPT09biYmITA9PT13dS5jaGF0Lndhc19hdXRvX2V4cGFuZGVkLmhlbHBkZXNrX2FydGljbGUsdT0hMD09PXImJiEwPT09d3UuY2hhdC53YXNfYXV0b19leHBhbmRlZC5zZWFyY2g7aWYodGhpcy5EbCYmKCEwPT09b3x8ITA9PT11fHwhMD09PXd1LmNoYXQuaXNfZXhwYW5kZWQpKXtsZXQgdD10aGlzLkRsLnF1ZXJ5U2VsZWN0b3IoIi5jYy13N3YxOCIpLHM9d2luZG93LmlubmVySGVpZ2h0LXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tO3RoaXMuRWw9ZSx0aGlzLmJsPXdpbmRvdy5pbm5lckhlaWdodC1zLTIyfWlmKCEwPT09d3UuYmFzZS5pc19mdWxsX3ZpZXcmJih0aGlzLmJsPXdpbmRvdy5pbm5lckhlaWdodCx0aGlzLkVsPXdpbmRvdy5pbm5lcldpZHRoLHdpbmRvdy52aXN1YWxWaWV3cG9ydCYmKHRoaXMuYmw9d2luZG93LnZpc3VhbFZpZXdwb3J0LmhlaWdodCt3aW5kb3cudmlzdWFsVmlld3BvcnQub2Zmc2V0VG9wKSksITE9PT13dS5iYXNlLmlzX2Z1bGxfdmlldyYmaT8uZGVmYXVsdF9idXR0b25fdmVydGljYWwmJih0aGlzLmJsLT1pLmRlZmF1bHRfYnV0dG9uX3ZlcnRpY2FsKSx0aGlzLkRsJiYoITA9PT10aGlzLmNsaWVudC5DaGF0Ll9pc0luaXRpYWxpemVkfHwhMD09PXQpKXtsZXQgdD10aGlzLkRsLnF1ZXJ5U2VsZWN0b3IoIi5jYy13N3YxOCIpO2lmKHMmJiExPT09d3UuYmFzZS5pc19mdWxsX3ZpZXcpe2xldCBlPXQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgidHJhbnNpdGlvbiIpO3Quc3R5bGUuc2V0UHJvcGVydHkoInRyYW5zaXRpb24iLCJub25lIiwiaW1wb3J0YW50IikscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dC5zdHlsZS5zZXRQcm9wZXJ0eSgidHJhbnNpdGlvbiIsZSwiaW1wb3J0YW50Iil9KX0hMD09PXd1LmJhc2UuaXNfZnVsbF92aWV3Pyh0LnN0eWxlLnNldFByb3BlcnR5KCJtYXgtd2lkdGgiLGAke3RoaXMuRWx9cHhgLCJpbXBvcnRhbnQiKSx0LnN0eWxlLnNldFByb3BlcnR5KCJtYXgtaGVpZ2h0IixgJHt0aGlzLmJsfXB4YCwiaW1wb3J0YW50IiksdC5zdHlsZS5zZXRQcm9wZXJ0eSgid2lkdGgiLCIxMDAlIiwiaW1wb3J0YW50IiksdC5zdHlsZS5zZXRQcm9wZXJ0eSgiaGVpZ2h0IiwiMTAwJSIsImltcG9ydGFudCIpKToodC5zdHlsZS5zZXRQcm9wZXJ0eSgid2lkdGgiLGAke3RoaXMuRWx9cHhgLCJpbXBvcnRhbnQiKSx0LnN0eWxlLnNldFByb3BlcnR5KCJoZWlnaHQiLGAke3RoaXMuYmx9cHhgLCJpbXBvcnRhbnQiKSx0LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJtYXgtd2lkdGgiKSx0LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJtYXgtaGVpZ2h0IikpLHd1LmJhc2UuaXNfZnVsbF92aWV3JiYhMD09PXRoaXMuY2xpZW50LkFjdGlvbi5pc19jaGF0X29wZW5lZCgpP3RoaXMuY2xpZW50LkNoYXQuVmlld3BvcnQuYWRhcHQoKTp0aGlzLmNsaWVudC5DaGF0LlZpZXdwb3J0LnVuYWRhcHQoKX1Nby5hbGxvdyghd3UuYmFzZS5pc19tb2JpbGVfdmlldyl9fXBsKHQ9ITEpe2lmKHd1LmJhc2UuaXNfbW9iaWxlX3ZpZXcmJndpbmRvdy5zY3JvbGwpaWYoITA9PT10KXtpZigtMT09PXRoaXMud2wpe3RoaXMud2w9d2luZG93LnNjcm9sbFk7bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaHRtbCIpO3QmJnQuY2xhc3NMaXN0LmFkZCgiY2MtMXJwbHciKSx3aW5kb3cuc2Nyb2xsKHdpbmRvdy5zY3JvbGxYLDApO2xldCBlPTA7dGhpcy52bCYmKHhyLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRvY3VtZW50IiwidG91Y2hzdGFydCIsdGhpcy52bCksdGhpcy52bD1udWxsKSx0aGlzLnZsPXhyLmFkZEV2ZW50TGlzdGVuZXIoImRvY3VtZW50IiwidG91Y2hzdGFydCIsdD0+e3QuY2hhbmdlZFRvdWNoZXM/LlswXSYmKGU9dC5jaGFuZ2VkVG91Y2hlc1swXS5wYWdlWSl9KSx0aGlzLnlsJiYoeHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZG9jdW1lbnQiLCJ0b3VjaG1vdmUiLHRoaXMueWwpLHRoaXMueWw9bnVsbCksdGhpcy55bD14ci5hZGRFdmVudExpc3RlbmVyKCJkb2N1bWVudCIsInRvdWNobW92ZSIsdD0+e2lmKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQmJnQuY2hhbmdlZFRvdWNoZXM/LlswXSl7ImlucHV0IiE9PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQudGFnTmFtZSYmInRleHRhcmVhIiE9PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQudGFnTmFtZXx8dC5wcmV2ZW50RGVmYXVsdCgpO2xldCBzPXQuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVl8fDA7TWF0aC5hYnMocy1lKT4xMCYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCl9fSx7cGFzc2l2ZTohMSxjYXB0dXJlOiEwfSl9fWVsc2UgdGhpcy5yZWZyZXNoUmVzaXplUGFnZVNjcm9sbCghMCk7ZWxzZSB0aGlzLnJlZnJlc2hSZXNpemVQYWdlU2Nyb2xsKCEwKX1mbCgpe3d1LmNoYXQuaGFzX3dpbmRvd19mb2N1cz0oIXdpbmRvdy5oYXNGb2N1c3x8d2luZG93Lmhhc0ZvY3VzKCkpJiYhMCx4ci5hZGRFdmVudExpc3RlbmVyKCJ3aW5kb3ciLCJmb2N1cyIsKCk9Pnt3dS5jaGF0Lmhhc193aW5kb3dfZm9jdXM9ITAsdGhpcy5hcHBseUNoYXRGb2N1cygpfSx7Y2FwdHVyZTohMX0pLHhyLmFkZEV2ZW50TGlzdGVuZXIoIndpbmRvdyIsImJsdXIiLCgpPT57d3UuY2hhdC5oYXNfd2luZG93X2ZvY3VzPSExLHRoaXMuYXBwbHlDaGF0Rm9jdXMoKX0se2NhcHR1cmU6ITF9KX1ncigpe3RoaXMubWw9bnVsbCx0aGlzLl9sPW51bGwsdGhpcy53bD0tMSx0aGlzLnZsPW51bGwsdGhpcy55bD1udWxsfX0sR3U9LzsvZyxKdT1jbGFzcyBleHRlbmRzIEple2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5jbGllbnQ9dCx0aGlzLmdyKCl9aW5pdCgpe31yZXNldCgpe3RoaXMuZ3IoKX1iaW5kQWxsKCl7dGhpcy5fdmlld3BvcnRFbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdoZWFkIG1ldGFbbmFtZT0idmlld3BvcnQiXScpfWFkYXB0KCl7aWYoITA9PT13dS5iYXNlLmlzX2Z1bGxfdmlldyl7aWYoITE9PT10aGlzLkNsKXtudWxsPT09dGhpcy5rbCYmKHRoaXMua2w9dGhpcy5wcigpKTtsZXQgdD14ci5jbG9uZSh0aGlzLmtsKTt0LndpZHRoPSJkZXZpY2Utd2lkdGgiLHRbImluaXRpYWwtc2NhbGUiXT0iMSIsdFsibWF4aW11bS1zY2FsZSJdPSIxIix0WyJ1c2VyLXNjYWxhYmxlIl09IjAiLHRbInZpZXdwb3J0LWZpdCJdPSJjb3ZlciI7bGV0IGU9dGhpcy4kbCh0KTtudWxsIT09dGhpcy5fdmlld3BvcnRFbD90aGlzLl92aWV3cG9ydEVsLnNldEF0dHJpYnV0ZSgiY29udGVudCIsZSk6KHRoaXMuX3ZpZXdwb3J0RWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibWV0YSIpLHRoaXMuX3ZpZXdwb3J0RWwuc2V0QXR0cmlidXRlKCJuYW1lIiwidmlld3BvcnQiKSx0aGlzLl92aWV3cG9ydEVsLnNldEF0dHJpYnV0ZSgiY29udGVudCIsZSksZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaGVhZCIpLmFwcGVuZENoaWxkKHRoaXMuX3ZpZXdwb3J0RWwpKX10aGlzLkNsPSEwfWVsc2UgdGhpcy5DbD0hMX11bmFkYXB0KCl7aWYoITA9PT10aGlzLkNsKXtpZihudWxsIT09dGhpcy5fdmlld3BvcnRFbCYmdGhpcy5fdmlld3BvcnRFbC5sZW5ndGg+MCl7bGV0IHQ9dGhpcy4kbCh0aGlzLmtsKTt0P3RoaXMuX3ZpZXdwb3J0RWwuc2V0QXR0cmlidXRlKCJjb250ZW50Iix0KToodGhpcy5fdmlld3BvcnRFbC5yZW1vdmUoKSx0aGlzLl92aWV3cG9ydEVsPW51bGwpfXRoaXMuQ2w9ITF9fXByKCl7bGV0IHQ9e307aWYobnVsbCE9PXRoaXMuX3ZpZXdwb3J0RWwpe2xldCBlPXRoaXMuX3ZpZXdwb3J0RWwuZ2V0QXR0cmlidXRlKCJjb250ZW50IikudHJpbSgpLnJlcGxhY2UoR3UsIiwiKTtpZihlKXtsZXQgcztzPSEwPT09ZS5pbmNsdWRlcygiLCIpP2Uuc3BsaXQoIiwiKTpbZV07Zm9yKGxldCBlPTA7ZTxzLmxlbmd0aDtlKyspe2xldCBpPXNbZV07aWYoITA9PT1pLmluY2x1ZGVzKCI9Iikpe2xldCBlPWkuc3BsaXQoIj0iKSxzPWVbMF0udHJpbSgpLG49ZVsxXS50cmltKCk7cyYmbiYmKHRbc109bil9fX19cmV0dXJuIHR9JGwodCl7bGV0IGU9IiIscz1bXTtmb3IobGV0IGkgaW4gdCl0Lmhhc093blByb3BlcnR5KGkpJiZzLnB1c2goW2ksdFtpXV0uam9pbigiPSIpKTtyZXR1cm4gZT1zLmpvaW4oIiwgIiksZX1ncigpe3RoaXMuX3ZpZXdwb3J0RWw9bnVsbCx0aGlzLkNsPSExLHRoaXMua2w9bnVsbH19LEt1PWNsYXNzIGV4dGVuZHMgSmV7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLmNsaWVudD10LHRoaXMuSW50ZXJmYWNlPW5ldyBXdSh0aGlzLmNsaWVudCksdGhpcy5WaWV3cG9ydD1uZXcgSnUodGhpcy5jbGllbnQpLHRoaXMuZ3IoKX1pbml0KHQ9bnVsbCxlPW51bGwpeyEwIT09dGhpcy5faXNJbml0aWFsaXplZD8obnVsbCE9PWUmJnRoaXMuQWwucHVzaChlKSwhMCE9PXRoaXMuQmwmJih0aGlzLkJsPSEwLG51bGwhPT10JiZ3dS5zdGF0ZS5yZXN0b3JlKHQpLHRoaXMuY2xpZW50LlBhcnRpYWwuc3Bhd25GZWF0dXJlQnVuZGxlKCJjaGF0IiwoKT0+eG8oKCk9PmltcG9ydCgiLi9tYWluX2RlZmF1bHRfMjNlNDIxMjMuanMiKSxfX3ZpdGVfX21hcERlcHMoWzAsMV0pKSxlPT57dGhpcy54bCh0LCEwKSxlLmRlZmF1bHQoIi5jYy13N3YxOCIpLFRyLm9uSW50ZXJmYWNlTGlmZWN5Y2xlKCJyZWFkeSIpfSxlPT57V2UuZXJyb3IoZSksdGhpcy54bCh0LCExKSxUci5vbkludGVyZmFjZUxpZmVjeWNsZSgiZXJyb3IiLHtvcmlnaW46InBhcnRpYWwifSl9KSkpOigiZnVuY3Rpb24iPT10eXBlb2YgZSYmZSgpLFRyLm9uSW50ZXJmYWNlTGlmZWN5Y2xlKCJyZWFkeSIpKX1yZXNldCgpe3RoaXMuZ3IoKX1zdGFydE1pbmltaXplZCh0PW51bGwpe3RoaXMuamwoITEsdCl9c3RhcnRNYXhpbWl6ZWQodD1udWxsKXt0aGlzLmpsKCEwLHQpfWV4ZWN1dGVSZXNpemUoKXshMD09PXRoaXMuX2lzSW5pdGlhbGl6ZWQ/KHRoaXMuSW50ZXJmYWNlLnJlZnJlc2hSZXNpemVQYWdlU2Nyb2xsKCksdGhpcy5JbnRlcmZhY2UucmVxdWVzdER5bmFtaWNTaXppbmdQcm9wZXJ0aWVzKCkpOnd1LmJhc2UuYXBwbHlTaXppbmcoKX14bCh0PW51bGwsZT0hMCl7aWYodGhpcy5CbD0hMSwhMD09PWUpe2Zvcih0aGlzLklsKCksdGhpcy5jbGllbnQuQ2hhdC5JbnRlcmZhY2UucGFuZSgpLHRoaXMuY2xpZW50LkJhc2UudXBkYXRlU29ja2V0Q29va2llS2V5KCExKSx0aGlzLlNsKHQpLHRoaXMuX2lzSW5pdGlhbGl6ZWQ9ITA7dGhpcy5BbC5sZW5ndGg+MDspdGhpcy5BbC5zaGlmdCgpKCk7d3UubWVzc2FnZXMuY2hlY2tVc2VySWRlbnRpdHkoITApfWVsc2UgdGhpcy5BbD1bXX1qbCh0PSExLGU9bnVsbCl7bGV0IHM9KCk9PnsiZnVuY3Rpb24iPT10eXBlb2YgZSYmZSgpfTshMCE9PXRoaXMuX2lzSW5pdGlhbGl6ZWQ/dGhpcy5pbml0KHttYXhpbWl6ZWQ6dH0sKCk9Pnt3dS5zdGF0ZS5wcm9wYWdhdGUoIm1heGltaXplZCIsdCx3dS5iYXNlLnNlc3Npb25faWQsITApLHMoKX0pOnMoKX1JbCgpe2xldCB0LGU9W3RoaXMuY2xpZW50LkNoYXQuVmlld3BvcnQsdGhpcy5jbGllbnQuQ2hhdC5JbnRlcmZhY2VdO2Zvcih0PTA7dDxlLmxlbmd0aDt0KyspZVt0XS5pbml0KCl9U2wodD1udWxsKXtudWxsPT09dCYmdGhpcy5jbGllbnQuQWN0aW9uLmV2ZW50KCJjaGF0OmluaXRpYXRlZCIpLHd1LmF2YWlsYWJpbGl0eS5hcHBseSgpLHlyLlNvY2tldC5nZXRTdGF0ZSgpLE1vLmluaXRpYWxpemUoImV2ZW50cyIpLHd1LmNoYXQuZWFjaFNlc3Npb25JZCh0PT57d3Uuc3RhdGUuaW5pdGlhbGl6ZSh0KSx3dS5tZXNzYWdlcy5yZXN0b3JlSGlzdG9yeSh0KX0pfWdyKCl7dGhpcy5faXNJbml0aWFsaXplZD0hMSx0aGlzLkJsPSExLHRoaXMuQWw9W119fSxZdT1jbGFzcyBleHRlbmRzIEple2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5jbGllbnQ9dH1pbml0KHQ9ITAsZT0hMSxzPSExLGk9ITApeyEwIT09cyYmd3UuY2hhdC5lYWNoU2Vzc2lvbklkKHQ9Pnt5ci5NZXNzYWdlLmdldE1lc3NhZ2VIaXN0b3J5KHQpfSksdGhpcy5TbChlLHMsdCxpKX1yZXNldCgpe31TbCh0PSExLGU9ITEscz0hMSxpPSEwKXshMCE9PWU/d3UubWluaW1pemVkLnBhbmVBdXRob3JpemVkKHQscyxpKTp3dS5taW5pbWl6ZWQucGFuZVVuYXV0aG9yaXplZCh0LGkpLCEwPT09d3UuYmFzZS5ydW50aW1lLmxvY2tfbWF4aW1pemVkJiZ3dS5taW5pbWl6ZWQucGFuZU9wZW5IYW5kbGVyKHQ9Pnt0aGlzLmNsaWVudC5DaGF0LmluaXQodCl9KX19LFp1PS9ce1xzKlxbbmF0aXZlIGNvZGVcXVxzKlx9JC8sWHU9bmV3IGNsYXNzIGV4dGVuZHMgSmV7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuZ3IoKX1yZXNldCgpe3RoaXMuZ3IoKX1zY2hlZHVsZVdhcm5JbmNvbXBhdGlibGUodD0hMSl7bnVsbCE9PXRoaXMuUmwmJmNsZWFyVGltZW91dCh0aGlzLlJsKSx0aGlzLlJsPXNldFRpbWVvdXQoKCk9Pnt0aGlzLlJsPW51bGwsITAhPT1VdS5fc2FmZU1vZGUmJih0aGlzLk9sKCksdGhpcy5UbCgpKX0sITA9PT10PzA6MmU0KX1PbCgpeyJVVEYtOCIhPT0oZG9jdW1lbnQuY2hhcmFjdGVyU2V0fHxkb2N1bWVudC5jaGFyc2V0fHwiIikudG9VcHBlckNhc2UoKSYmd2luZG93LmNvbnNvbGUmJndpbmRvdy5jb25zb2xlLndhcm59VGwoKXtsZXQgdD13aW5kb3c7aWYodD8uY29uc29sZSYmImZ1bmN0aW9uIj09dHlwZW9mIHQuY29uc29sZS53YXJuJiYiZnVuY3Rpb24iPT10eXBlb2YgRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nKXtsZXQgZSxzLGksbixyPVtbbnVsbCx0LFsiZXZhbCIsImVzY2FwZSIsInVuZXNjYXBlIiwiZGVjb2RlVVJJIiwiZW5jb2RlVVJJIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiZW5jb2RlVVJJQ29tcG9uZW50Iiwic2V0VGltZW91dCIsImNsZWFyVGltZW91dCIsInNldEludGVydmFsIiwiY2xlYXJJbnRlcnZhbCIsInBhcnNlSW50IiwicGFyc2VGbG9hdCIsIlJUQ1BlZXJDb25uZWN0aW9uIiwiTXV0YXRpb25PYnNlcnZlciIsIlhNTEh0dHBSZXF1ZXN0IiwiQXVkaW9Db250ZXh0IiwiV2ViU29ja2V0IiwiUHJveHkiLCJUZXh0IiwiQ29tbWVudCJdXSxbbnVsbCx0LFsiQXJyYXkiLCJPYmplY3QiLCJTdHJpbmciLCJOdW1iZXIiLCJEYXRlIiwiRnVuY3Rpb24iLCJSZWdFeHAiLCJTeW1ib2wiLCJTZXQiLCJNYXAiLCJXZWFrTWFwIiwiRXZlbnQiLCJFcnJvciJdXSxbIkFycmF5Iix0LkFycmF5LFsiZnJvbSIsImlzQXJyYXkiXV0sWyJBcnJheS5wcm90b3R5cGUiLHQuQXJyYXkucHJvdG90eXBlLFsicHVzaCIsInBvcCIsImluZGV4T2YiLCJpbmNsdWRlcyIsInNvcnQiLCJzcGxpY2UiLCJzbGljZSIsInNoaWZ0IiwidW5zaGlmdCIsIm1hcCIsImZpbHRlciIsImZpbmQiLCJmaW5kSW5kZXgiLCJmb3JFYWNoIl1dLFsiT2JqZWN0Iix0Lk9iamVjdCxbImFzc2lnbiIsImNyZWF0ZSIsImtleXMiLCJ2YWx1ZXMiLCJpcyIsImlzRXh0ZW5zaWJsZSIsImRlZmluZVByb3BlcnR5IiwiZGVmaW5lUHJvcGVydGllcyIsImdldE93blByb3BlcnR5TmFtZXMiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIl1dLFsiT2JqZWN0LnByb3RvdHlwZSIsdC5PYmplY3QucHJvdG90eXBlLFsiaGFzT3duUHJvcGVydHkiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInRvU3RyaW5nIl1dLFsiU3RyaW5nIix0LlN0cmluZyxbImZyb21DaGFyQ29kZSJdXSxbIlN0cmluZy5wcm90b3R5cGUiLHQuU3RyaW5nLnByb3RvdHlwZSxbImluZGV4T2YiLCJjaGFyQXQiLCJjaGFyQ29kZUF0IiwidHJpbSIsInRvTG93ZXJDYXNlIiwidG9VcHBlckNhc2UiLCJzbGljZSIsInJlcGxhY2UiLCJtYXRjaCJdXSxbIk1hdGgiLHQuTWF0aCxbInJhbmRvbSIsInJvdW5kIiwiZmxvb3IiLCJjZWlsIiwiYWJzIl1dLFsiRGF0ZSIsdC5EYXRlLFsibm93Il1dLFsiRGF0ZS5wcm90b3R5cGUiLHQuRGF0ZS5wcm90b3R5cGUsWyJnZXRUaW1lIiwidG9JU09TdHJpbmciXV0sWyJGdW5jdGlvbi5wcm90b3R5cGUiLHQuRnVuY3Rpb24ucHJvdG90eXBlLFsiYmluZCIsImFwcGx5IiwiY2FsbCJdXSxbIlJlZ0V4cC5wcm90b3R5cGUiLHQuUmVnRXhwLnByb3RvdHlwZSxbInRlc3QiLCJleGVjIl1dLFsiRXZlbnQucHJvdG90eXBlIix0LkV2ZW50LnByb3RvdHlwZSxbInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIl1dLFsiUmVmbGVjdCIsdC5SZWZsZWN0LFsiZ2V0Iiwic2V0IiwiaGFzIiwib3duS2V5cyIsImRlbGV0ZVByb3BlcnR5Il1dLFsiZG9jdW1lbnQiLHQuZG9jdW1lbnQsWyJxdWVyeVNlbGVjdG9yIiwicXVlcnlTZWxlY3RvckFsbCIsImNyZWF0ZUVsZW1lbnQiLCJjcmVhdGVFdmVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIl1dLFsiSlNPTiIsdC5KU09OLFsic3RyaW5naWZ5IiwicGFyc2UiXV0sWyJsb2NhbFN0b3JhZ2UiLHQubG9jYWxTdG9yYWdlLFsic2V0SXRlbSIsImdldEl0ZW0iLCJyZW1vdmVJdGVtIl1dLFsic2Vzc2lvblN0b3JhZ2UiLHQuc2Vzc2lvblN0b3JhZ2UsWyJzZXRJdGVtIiwiZ2V0SXRlbSIsInJlbW92ZUl0ZW0iXV1dLG89W107Zm9yKGxldCB0PTA7dDxyLmxlbmd0aDt0KyspaWYoZT1yW3RdLGk9ZVsxXSx2b2lkIDA9PT1pKW8ucHVzaChlWzBdfHwiW3Jvb3RdIik7ZWxzZXtzPWVbMl18fFtdO2ZvcihsZXQgdD0wO3Q8cy5sZW5ndGg7dCsrKW49aVtzW3RdXSx2b2lkIDA9PT1ufHxadS50ZXN0KFN0cmluZyhuKSl8fChudWxsIT09ZVswXT9vLnB1c2goYCR7ZVswXX0uJHtzW3RdfWApOm8ucHVzaChzW3RdKSl9by5sZW5ndGh9fWdyKCl7dGhpcy5SbD1udWxsfX07dmFyIFF1PXtzb2NrZXQ6ITAsYnVzdGVyOjF9LHRsPXtjaGlsZExpc3Q6ITAsYXR0cmlidXRlczohMSxzdWJ0cmVlOiExLGNoYXJhY3RlckRhdGE6ITF9LGVsPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuY2xpZW50PXQsdGhpcy5fZG9sbGFyQ3Jpc3A9bnVsbCx0aGlzLnpsKCksdGhpcy5ncigpfWluaXQodD17fSl7ITE9PT10aGlzLl9pc0luaXRpYWxpemVkPyh0aGlzLl9pc0luaXRpYWxpemVkPSEwLHRoaXMuX2RvbGxhckNyaXNwPXQuZG9sbGFyQ3Jpc3B8fG51bGwsd3UuYmFzZS5jb29raWVfZXhwaXJlPXQuY29va2llRXhwaXJlfHxudWxsLHd1LmJhc2UuY29va2llX2RvbWFpbj10LmNvb2tpZURvbWFpbnx8bnVsbCx3dS5iYXNlLndlYnNpdGUuZG9tYWluPXQud2Vic2l0ZURvbWFpbnx8bnVsbCx3dS5iYXNlLndlYnNpdGUuaWQ9dC53ZWJzaXRlSWR8fG51bGwsd3UuYmFzZS5mb3JjZWRfc2Vzc2lvbl9pZD10LnNlc3Npb25JZHx8bnVsbCx3dS5iYXNlLnRva2VuX2lkPXQudG9rZW5JZHx8bnVsbCx3dS5iYXNlLnBhZ2VfdXJsPXQucGFnZVVybHx8bnVsbCx3dS5iYXNlLnBhZ2VfZG9tYWluPXQucGFnZURvbWFpbnx8bnVsbCx3dS5iYXNlLmJyb3dzZXJfbG9jYWxlcz10LmJyb3dzZXJMb2NhbGVzfHxbXSx3dS5iYXNlLmJyb3dzZXJfdXNlcmFnZW50PXQuYnJvd3NlclVzZXJhZ2VudHx8bnVsbCx3dS5iYXNlLmJyb3dzZXJfdGltZXpvbmU9dC5icm93c2VyVGltZXpvbmV8fG51bGwsd3UuYmFzZS5icm93c2VyX2NhcGFiaWxpdGllcz10LmJyb3dzZXJDYXBhYmlsaXRpZXN8fFtdLHQucGxhdGZvcm1OYW1lJiZ0LnBsYXRmb3JtU2lnbmF0dXJlS2V5JiYoTWUuUExBVEZPUk1fTkFNRT10LnBsYXRmb3JtTmFtZSxNZS5QTEFURk9STV9TSUdOQVRVUkVfS0VZPXQucGxhdGZvcm1TaWduYXR1cmVLZXkpLHd1LmJhc2UucnVudGltZT10LnJ1bnRpbWVDb25maWd1cmF0aW9ufHx7fSx3dS5iYXNlLnJ1bnRpbWUudXJsX2NsaWVudF9hc3NldHMmJihNZS5VUkxfQ0xJRU5UX0FTU0VUUz13dS5iYXNlLnJ1bnRpbWUudXJsX2NsaWVudF9hc3NldHMpLHd1LmJhc2UucnVudGltZS51cmxfaW1hZ2UmJihNZS5VUkxfSU1BR0U9d3UuYmFzZS5ydW50aW1lLnVybF9pbWFnZSksdGhpcy5QbD10LnJlYWR5VHJpZ2dlcnx8bnVsbCx0aGlzLkxsPXQucmVzZXRIYW5kbGVyfHxudWxsLFh1LnNjaGVkdWxlV2FybkluY29tcGF0aWJsZSghMSksdGhpcy5NbCgpLnRoZW4odD0+e3RoaXMuVWw9dC5zb2NrZXQsdGhpcy5xbD10LmJ1c3Rlcnx8MSx0aGlzLlZsPXQuZW5kcG9pbnRzfHx7fTtsZXQgZT0hZG9jdW1lbnQuY29va2llLmluY2x1ZGVzKHRoaXMuTmwoITApKSYmITEhPT10aGlzLlVsJiYhMDshMT09PWUmJiEwPT09d3UuYmFzZS5ydW50aW1lLmxvY2tfbWF4aW1pemVkJiYoZT0hMCksITA9PT1lP3RoaXMuSGwoKTp0aGlzLnJ1blN0YXRpYygpLHRoaXMuY2xpZW50LkV2ZW50LmluaXQoKX0pLmNhdGNoKHQ9PnsiaW52YWxpZF93ZWJzaXRlX2lkIj09PXQmJnRoaXMucnVuRXJyb3IoKX0pKTp3dS5iYXNlLnJ1bnRpbWUubW91bnQmJnRoaXMuV2woMCl9cmVzZXQoKXtsZXQgdD10aGlzLkxsO3RoaXMuZ3IoKSx0aGlzLnpsKCksdGhpcy5MbD10LEdlLmZvckVhY2godD0+e3RyeXsiZnVuY3Rpb24iPT10eXBlb2YgdC5mbiYmdC5mbigpfWNhdGNoKGUpe1dlLmVycm9yKGUpfX0pfXNwYXduQ2xpZW50KHQ9ITEpeyEwPT09dCYmKHd1LmJhc2UuZXJyb3JfbW9kZT0hMCxUci5vbkludGVyZmFjZUxpZmVjeWNsZSgiZXJyb3IiLHtvcmlnaW46InNwYXduIn0pLFdlLmVycm9yKCJTcGF3biBjbGllbnQgd2l0aCBlcnJvciBtb2RlIikpLHRoaXMuR2woKSxUaS5pbml0KCksITAhPT10JiYoeXIuQ29uZmlnLnNldElnbm9yZVByaXZhY3kod3Uud2Vic2l0ZS5jaGF0Lmlnbm9yZV9wcml2YWN5KSx5ci5Db25maWcuc2V0VmlzaXRvckNvbXBvc2Uod3Uud2Vic2l0ZS5jaGF0LnZpc2l0b3JfY29tcG9zZSkpLHRoaXMuY2xpZW50LlRyaWdnZXIuaW5pdChIci5nZXRUcmlnZ2VycygpKSx0aGlzLmdsKCksdGhpcy5fY2xpZW50RWw9VnIuZG9tKCc8ZGl2IGNsYXNzPSJjcmlzcC1jbGllbnQiIDpsYW5nPSIkc3RvcmUubG9jYWxlLmNvZGUiIDpkaXI9IiRzdG9yZS5sb2NhbGUuZGlyZWN0aW9uIiBhcmlhLWxpdmU9InBvbGl0ZSIgdHJhbnNsYXRlPSJubyIgdGFiaW5kZXg9Ii0xIj48ZGl2IGNsYXNzPSJjYy0xMWkyYSI+PC9kaXY+PGRpdiBjbGFzcz0iY2MtMTY1d2giIGlkPSJjcmlzcC1jaGF0Ym94IiA6ZGF0YS1oaWRkZW49IiRzdG9yZS5iYXNlLmlzX2hpZGRlbiIgOmRhdGEtZm9yY2Utc2hvdz0iJHN0b3JlLmJhc2UuZm9yY2Vfc2hvdyB8fCAkc3RvcmUuYmFzZS5lcnJvcl9tb2RlIiA6ZGF0YS1jb2xvci1tb2RlPSIoJHN0b3JlLndlYnNpdGU/LmNoYXQuY29sb3JfbW9kZSA9PT0gXCdhdXRvXCcpID8gJHN0b3JlLmZlYXR1cmUuY29sb3Jfc2NoZW1lX3ByZWZlcmVuY2UgOiAkc3RvcmUud2Vic2l0ZT8uY2hhdC5jb2xvcl9tb2RlIiA6ZGF0YS1hdmFpbGFiaWxpdHk9IiRzdG9yZS5hdmFpbGFiaWxpdHk/LmF2YWlsYWJpbGl0eSIgOmRhdGEtcHJlc2VudGF0aW9uPSIkc3RvcmUuYmFzZS5ydW50aW1lPy5wcmVzZW50YXRpb24gfHwgXCdkZWZhdWx0XCciIDpkYXRhLWxvY2stbWF4aW1pemVkPSIkc3RvcmUuYmFzZS5ydW50aW1lPy5sb2NrX21heGltaXplZCA/IHRydWUgOiBmYWxzZSIgOmRhdGEtd2Vic2l0ZS1sb2dvPSIkc3RvcmUud2Vic2l0ZT8uY2hhdD8ud2Vic2l0ZV9sb2dvID8gdHJ1ZSA6IGZhbHNlIiA6ZGF0YS1sYXN0LW9wZXJhdG9yLWZhY2U9Iigkc3RvcmUud2Vic2l0ZT8uY2hhdD8ubGFzdF9vcGVyYXRvcl9mYWNlICZhbXA7JmFtcDsgJHN0b3JlLmJhc2UuYWN0aXZlX29wZXJhdG9ycz8ubGVuZ3RoICZndDsgMCkgPyB0cnVlIDogZmFsc2UiIDpkYXRhLW9uZ29pbmctb3BlcmF0b3ItZmFjZT0iKCRzdG9yZS53ZWJzaXRlPy5jaGF0Py5vbmdvaW5nX29wZXJhdG9yX2ZhY2UgJmFtcDsmYW1wOyAkc3RvcmUuY2hhdD8uY3VycmVudF9vbmdvaW5nX29wZXJhdG9yPy51cmwpID8gdHJ1ZSA6IGZhbHNlIiA6ZGF0YS1hdmFpbGFiaWxpdHktdG9vbHRpcD0iJHN0b3JlLndlYnNpdGU/LmNoYXQ/LmF2YWlsYWJpbGl0eV90b29sdGlwIiA6ZGF0YS1oaWRlLXZhY2F0aW9uPSIkc3RvcmUud2Vic2l0ZT8uY2hhdD8uaGlkZV92YWNhdGlvbiIgOmRhdGEtYmxvY2tlZD0iJHN0b3JlLmJhc2UuaXNfYmxvY2tlZCIgOmRhdGEtbW9iaWxlLXZpZXc9IiRzdG9yZS5iYXNlLmlzX21vYmlsZV92aWV3IiA6ZGF0YS1mdWxsLXZpZXc9IiRzdG9yZS5iYXNlLmlzX2Z1bGxfdmlldyIgOmRhdGEtc21hbGwtdmlldz0iJHN0b3JlLmJhc2UuaXNfc21hbGxfdmlldyIgOmRhdGEtbGFyZ2Utdmlldz0iJHN0b3JlLmJhc2UuaXNfbGFyZ2VfdmlldyIgOmRhdGEtaGFzLWxvY2FsLW1lc3NhZ2VzPSIkc3RvcmUuYmFzZS5oYXNfbG9jYWxfbWVzc2FnZXMiIDpkYXRhLXdhcy1hdmFpbGFiaWxpdHktb25saW5lPSIkc3RvcmUuYXZhaWxhYmlsaXR5Py53YXNfYXZhaWxhYmlsaXR5X29ubGluZSIgOmRhdGEtaXMtYWN0aXZpdHktb25nb2luZz0iJHN0b3JlLmJhc2UuaXNfYWN0aXZpdHlfb25nb2luZyIgOmRhdGEtaGlkZS1vbi1hd2F5PSIkc3RvcmUud2Vic2l0ZT8uY2hhdD8uaGlkZV9vbl9hd2F5IiA6ZGF0YS1oaWRlLW9uLW1vYmlsZT0iJHN0b3JlLndlYnNpdGU/LmNoYXQ/LmhpZGVfb25fbW9iaWxlIiA6ZGF0YS1wb3NpdGlvbi1yZXZlcnNlPSIkc3RvcmUud2Vic2l0ZT8uY2hhdD8ucG9zaXRpb25fcmV2ZXJzZSI+PC9kaXY+PGRpdiBjbGFzcz0iY2MtMTY1d2ggY2MtMWZyYjUiPjwvZGl2PjxkaXYgY2xhc3M9ImNjLTE2NXdoIGNjLTg0YzJqIj48L2Rpdj48L2Rpdj4nKSx0aGlzLl9jb250YWluZXJFbD10aGlzLl9jbGllbnRFbC5xdWVyeVNlbGVjdG9yKCIuY2MtMTY1d2giKSx0aGlzLkpsKCksdGhpcy5pbnNlcnRTdHlsZSgpfXJ1blN0YXRpYyh0PSEwKXshMSE9PXQmJnRoaXMuS2woITEpLHRoaXMuYWNxdWlyZVdlYnNpdGVTZXR0aW5ncyh7fSx0aGlzLnFsKS50aGVuKHQ9PnshMCE9PXQmJih3dS5hdmFpbGFiaWxpdHkucmVjZWl2ZSh3dS53ZWJzaXRlLndlYnNpdGUub25saW5lfHwhMSwhMSksdGhpcy5zcGF3bkNsaWVudCh0KSx0aGlzLmNsaWVudC5NaW5pbWl6ZWQuaW5pdCghMSwhMSx0KSx4ci5uZXh0UmVuZGVyKCgpPT57dGhpcy50cmlnZ2VyU2Vzc2lvbkxvYWRlZCgpfSkpfSl9cnVuRXJyb3IoKXtidS5sb2FkKCJlbiIpLnRoZW4oKCk9Pnt0aGlzLnNwYXduQ2xpZW50KCEwKSx0aGlzLmNsaWVudC5NaW5pbWl6ZWQuaW5pdCghMCwhMSwhMCl9KS5jYXRjaCh0PT57V2UuZXJyb3IodCl9KX10cmlnZ2VyU2Vzc2lvbkxvYWRlZCgpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLlBsKXRyeXt0aGlzLlBsKCksdGhpcy5QbD1udWxsfWNhdGNoe310aGlzLmNsaWVudC5BY3Rpb24udW5zdGFja1BlbmRpbmcoKSwhMD09PXRoaXMuY2xpZW50LkNoYXQuX2lzSW5pdGlhbGl6ZWQmJnRoaXMuY2xpZW50LkNoYXQuSW50ZXJmYWNlLmFwcGx5Q2hhdEZvY3VzKCksdGhpcy5jbGllbnQuQWN0aW9uLmV2ZW50KCJzZXNzaW9uOmxvYWRlZCIsd3UuYmFzZS5zZXNzaW9uX2lkKSxYdS5zY2hlZHVsZVdhcm5JbmNvbXBhdGlibGUoITApfXVwZGF0ZVNvY2tldENvb2tpZUtleSh0PSEwLGU9ITEpe2xldCBzLGk9dGhpcy5ObCh0KTtzPSEwPT09ZT9uZXcgRGF0ZSgwKTpuZXcgRGF0ZSgobmV3IERhdGUpLmdldFRpbWUoKSsoITA9PT10PzZlNToxNzI4ZTUpKSxkb2N1bWVudC5jb29raWU9YCR7aX07IGV4cGlyZXM9JHtzLnRvVVRDU3RyaW5nKCl9OyBwYXRoPS87IHNhbWVzaXRlPWxheDtgfXVwZGF0ZUNvbmZpZ3VyYXRpb24odCxlPSExKXt0eXBlb2Ygd3Uud2Vic2l0ZS5jaGF0Py5bdF09PXR5cGVvZiBlJiYod3Uud2Vic2l0ZS5jaGF0W3RdPWUpfWluc2VydFN0eWxlKCl7bGV0IHQ9dGhpcy5ZbDtaci5hcHBseVRoZW1lKHQuY29sb3IudGhlbWV8fHd1LndlYnNpdGU/LmNoYXQ/LmNvbG9yX3RoZW1lLCEhdC5jb2xvci50aGVtZSksWnIuYXBwbHlDb250YWluZXJJbmRleCh0Lm90aGVyLmNvbnRhaW5lcl9pbmRleCksWnIuYXBwbHlQb3NpdGlvbih0LnBvc2l0aW9uKX1hY3F1aXJlV2Vic2l0ZVNldHRpbmdzKHQsZT1udWxsKXtsZXQgcz0hMTtyZXR1cm4gdGhpcy5jbGllbnQuUGFydGlhbC5sb2FkU2V0dGluZ3MoYHdlYnNpdGUvJHtlbmNvZGVVUklDb21wb25lbnQod3UuYmFzZS53ZWJzaXRlLmlkKX0vYCxlfHx0LmJ1c3RlcikuY2F0Y2goKCk9PihXZS5lcnJvcigiRmFpbGVkIHRvIGFjcXVpcmUgd2Vic2l0ZSBzZXR0aW5ncyIpLFByb21pc2UucmVqZWN0KG51bGwpKSkudGhlbihlPT4ocz0hKGUmJiFlLmVycm9yKSx3dS53ZWJzaXRlLnVwZGF0ZVdlYnNpdGUoZSx0KSxidS5sb2FkKHd1LndlYnNpdGUuY2hhdC5sb2NhbGUpKSkudGhlbigoKT0+UHJvbWlzZS5yZXNvbHZlKHMpKS5jYXRjaCh0PT4oV2UuZXJyb3IodCksUHJvbWlzZS5yZXNvbHZlKCEwKSkpfWVuc3VyZVNvY2tldCh0PSExKXtyZXR1cm4hMD09PXlyLnNvY2tldD8uY29ubmVjdGVkP1Byb21pc2UucmVzb2x2ZSgpOm5ldyBQcm9taXNlKGU9PnshMSE9PXRoaXMuVWwmJih0aGlzLmNsaWVudC5Ccm9rZXIuX2ZuSW5pdGlhbGl6ZS5hY3Rpb25zLnB1c2goZSksbnVsbD09PXRoaXMuY2xpZW50LkJyb2tlci5fZm5Jbml0aWFsaXplLm1hc3RlciYmKHRoaXMuY2xpZW50LkJyb2tlci5fZm5Jbml0aWFsaXplLm1hc3Rlcj0oKT0+eyEwPT09dCYmdGhpcy5jbGllbnQuTWluaW1pemVkLmluaXQoITAsITEsITEsITEpfSkseXIuc29ja2V0Py5jb25uZWN0KCkpfSl9Y29uZmlndXJlQ29uc29sZVNpbmsoKXsicHJvZHVjdGlvbiI9PT1NZS5FTlZJUk9OTUVOVCYmKHlyLklzc3VlLmNvbmZpZ3VyZSh7cHJvamVjdDpNZS5QUk9KRUNUX05BTUUscmV2aXNpb246TWUuUkVWSVNJT04sZW52aXJvbm1lbnQ6TWUuRU5WSVJPTk1FTlQsdXNlcmFnZW50Ond1LmJhc2UuYnJvd3Nlcl91c2VyYWdlbnQscGFnZTp3dS5iYXNlLnBhZ2VfdXJsfSksV2UuY29ubmVjdExvZ1NpbmsoImludGVybmFsIiwodCxlLHMpPT57aWYoImVycm9yIj09PXQpe0FycmF5LmlzQXJyYXkocykmJihzPXNbMF0pLCJvYmplY3QiPT10eXBlb2YgdGhpcy5fZG9sbGFyQ3Jpc3A/Ll9fc3Bvb2wmJih0aGlzLl9kb2xsYXJDcmlzcC5fX3Nwb29sLmVycm9yX2xhc3Q9e25zOmUsdmFsdWU6c30pO2xldCBpPShuZXcgRGF0ZSkuZ2V0VGltZSgpO2ktdGhpcy5abD49MWU0JiYodGhpcy5abD1pLHlyLklzc3VlLnJlcG9ydCh0LGUscykpfX0pKX11bmluc2VydEFuZFJlc2V0KCl7dGhpcy51bmluc2VydENsaWVudCgpLHRoaXMucmVzZXQoKX11bmluc2VydENsaWVudCgpeyJNdXRhdGlvbk9ic2VydmVyImluIHdpbmRvdyYmKHRoaXMuWGwoImh0bWwiKSx0aGlzLlhsKCJib2R5IikpLHlyLnNvY2tldD8uZGlzY29ubmVjdCgpLHRoaXMuR2woKX1yZVRyaWdnZXJMb2FkZXIoKXsiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5MbCYmdGhpcy5MbCgpfU1sKCl7bGV0IHQ9bmV3IERhdGUsZT1gJHt0LmdldEZ1bGxZZWFyKCl9LSR7dC5nZXRNb250aCgpfS0ke3QuZ2V0RGF0ZSgpfS0ke3QuZ2V0SG91cnMoKX0tJHt0LmdldE1pbnV0ZXMoKX1gO3JldHVybiB0aGlzLmNsaWVudC5QYXJ0aWFsLmxvYWRTZXR0aW5ncyhgd2Vic2l0ZS8ke2VuY29kZVVSSUNvbXBvbmVudCh3dS5iYXNlLndlYnNpdGUuaWQpfS9wcmVsdWRlL2AsZSkudGhlbih0PT4oTWUuVEVTVCYmd2luZG93LiRtb2NrX3ByZWx1ZGUmJnhyLm1lcmdlKHQsd2luZG93LiRtb2NrX3ByZWx1ZGUpLHQuZXJyb3I/UHJvbWlzZS5yZWplY3QodC5lcnJvcik6UHJvbWlzZS5yZXNvbHZlKHR8fFF1KSkpLmNhdGNoKHQ9PihXZS5lcnJvcigiRXJyb3IgbG9hZGluZyB3ZWJzaXRlIHByZWx1ZGU6Iix0KSxQcm9taXNlLnJlamVjdCh0KSkpfUpsKCl7dGhpcy5RbCgpLCJNdXRhdGlvbk9ic2VydmVyImluIHdpbmRvdyYmKHRoaXMudGEoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSx0aGlzLmVhKGRvY3VtZW50LmJvZHkpKX1RbCgpe2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkiKTtpZih3dS5iYXNlLnJ1bnRpbWUubW91bnQpe2xldCB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHd1LmJhc2UucnVudGltZS5tb3VudCk7dCYmdC5hcHBlbmRDaGlsZCh0aGlzLl9jbGllbnRFbCl9ZWxzZSB0JiZ0LmFwcGVuZENoaWxkKHRoaXMuX2NsaWVudEVsKTtWci52dWUodGhpcy5fY2xpZW50RWwpLFRyLm9uSW50ZXJmYWNlTGlmZWN5Y2xlKCJtb3VudGVkIil9R2woKXtudWxsIT09dGhpcy5fY2xpZW50RWwmJih0aGlzLl9jbGllbnRFbC5yZW1vdmUoKSx0aGlzLl9jbGllbnRFbD1udWxsLFRyLm9uSW50ZXJmYWNlTGlmZWN5Y2xlKCJ1bm1vdW50ZWQiKSl9SGwoKXt0aGlzLktsKCEwKX1LbCh0PSExKXtsZXQgZT0hMD09PU1lLlNPQ0tFVF9BRkZJTklUWSxzPXRoaXMuVmwuc29ja2V0fHx7fSxpPXRoaXMuVmwucmVzY3VlPy5zb2NrZXR8fHt9LG49KGU/cy5jbGllbnQ6bnVsbCl8fE1lLlVSTF9SRUxBWV9DTElFTlQscj0oZT9zLnN0cmVhbTpudWxsKXx8TWUuVVJMX1JFTEFZX1NUUkVBTSxvPWUmJmkuY2xpZW50fHxudWxsO3RoaXMuY2xpZW50LkJyb2tlci5pbml0KG4scixvLHQpfXRhKHQpe3RoaXMuWGwoImh0bWwiKSx0aGlzLnNhLmh0bWw9bmV3IHdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKHQ9Pntmb3IobGV0IGU9MDtlPCh0Py5sZW5ndGh8fDApO2UrKyl7bGV0IHM9dFtlXTtpZigiY2hpbGRMaXN0Ij09PXMudHlwZSYmcy5hZGRlZE5vZGVzKWZvcihsZXQgdD0wO3Q8cy5hZGRlZE5vZGVzLmxlbmd0aDt0Kyspe2xldCBlPXMuYWRkZWROb2Rlc1t0XTtpZigiYm9keSI9PT0oZS50YWdOYW1lfHwiIikudG9Mb3dlckNhc2UoKSl7dGhpcy5lYShlKSx0aGlzLldsKCk7YnJlYWt9fX19KSx0aGlzLnNhLmh0bWwub2JzZXJ2ZSh0LHRsKX1lYSh0KXt0aGlzLlhsKCJib2R5IiksdGhpcy5zYS5ib2R5PW5ldyB3aW5kb3cuTXV0YXRpb25PYnNlcnZlcih0PT57Zm9yKGxldCBlPTA7ZTwodD8ubGVuZ3RofHwwKTtlKyspe2xldCBzPXRbZV07aWYoImNoaWxkTGlzdCI9PT1zLnR5cGUmJnMucmVtb3ZlZE5vZGVzKWZvcihsZXQgdD0wO3Q8cy5yZW1vdmVkTm9kZXMubGVuZ3RoO3QrKylpZihzLnJlbW92ZWROb2Rlc1t0XT09PXRoaXMuX2NsaWVudEVsKXt0aGlzLldsKCk7YnJlYWt9fX0pLHRoaXMuc2EuYm9keS5vYnNlcnZlKHQsdGwpfVhsKHQpe2xldCBlPXRoaXMuc2FbdF07dm9pZCAwIT09ZSYmKGUuZGlzY29ubmVjdCgpLGRlbGV0ZSB0aGlzLnNhW3RdKX1XbCh0PTFlMyl7bnVsbD09PXRoaXMuaWEmJih0aGlzLmlhPXhyLnNldFRpbWVvdXQoKCk9Pnt0aGlzLmlhPW51bGwsdGhpcy5RbCgpfSx0KSl9TmwodD0hMCl7cmV0dXJuYCR7ZW5jb2RlVVJJQ29tcG9uZW50KCJjcmlzcC1jbGllbnQvc29ja2V0LyIrd3UuYmFzZS53ZWJzaXRlLmlkKX09JHtlbmNvZGVVUklDb21wb25lbnQoITA9PT10PyIwIjoiMSIpfWB9Z2woKXt4ci5tZXJnZSh3dS5iYXNlLHtpc19mdWxsX3ZpZXc6ITEsaXNfc21hbGxfdmlldzohMSxpc19sYXJnZV92aWV3OiExfSksd3UuYmFzZS5pc19mdWxsX3ZpZXc9d3UuYmFzZS5jaGVja0lzRnVsbFZpZXcoKSx3dS5iYXNlLmlzX3NtYWxsX3ZpZXc9d3UuYmFzZS5jaGVja0lzU21hbGxWaWV3KCksd3UuYmFzZS5pc19sYXJnZV92aWV3PXd1LmJhc2UuY2hlY2tJc0xhcmdlVmlldygpfXpsKCl7dGhpcy5fY2xpZW50RWw9bnVsbCx0aGlzLl9jb250YWluZXJFbD1udWxsfWdyKCl7dGhpcy5faXNJbml0aWFsaXplZD0hMSx0aGlzLnFsPTEsdGhpcy5VbD0hMCx0aGlzLlZsPXt9LHRoaXMuTGw9bnVsbCx0aGlzLlBsPW51bGwsdGhpcy5abD0wLHRoaXMuaWE9bnVsbCx0aGlzLllsPXtjb2xvcjp7fSxvdGhlcjp7fX0sdGhpcy5zYT17fX19LHNsPWNsYXNzIGV4dGVuZHMgSmV7Y29uc3RydWN0b3IodCl7c3VwZXIoKSx0aGlzLmNsaWVudD10LHRoaXMuZ3IoKX1pbml0KHQsZSxzPW51bGwsaT0hMCl7eXIuaW5pdCh7dGlja2V0R2VuZXJhdG9yOih0LGUpPT57dGhpcy5jbGllbnQuVGlja2V0LmFjcXVpcmUodCxlKX0sZW52aXJvbm1lbnQ6TWUuRU5WSVJPTk1FTlQsdXJsUmVsYXlDbGllbnQ6dCx1cmxSZWxheVN0cmVhbTplLHVybFJlbGF5UmVzY3VlQ2xpZW50OnMsd2Vic2l0ZURvbWFpbjp3dS5iYXNlLndlYnNpdGUuZG9tYWluLHdlYnNpdGVJZDp3dS5iYXNlLndlYnNpdGUuaWQsc2Vzc2lvbklkOnd1LmJhc2UuZm9yY2VkX3Nlc3Npb25faWQsdG9rZW5JZDp3dS5iYXNlLnRva2VuX2lkLGNvb2tpZUV4cGlyZTp3dS5iYXNlLmNvb2tpZV9leHBpcmUsY29va2llRG9tYWluOnd1LmJhc2UuY29va2llX2RvbWFpbix1c2VyYWdlbnQ6d3UuYmFzZS5icm93c2VyX3VzZXJhZ2VudCx0aW1lem9uZTp3dS5iYXNlLmJyb3dzZXJfdGltZXpvbmUsY2FwYWJpbGl0aWVzOnd1LmJhc2UuYnJvd3Nlcl9jYXBhYmlsaXRpZXMsbG9jYWxlczp3dS5iYXNlLmJyb3dzZXJfbG9jYWxlcyxydW50aW1lQ29uZmlndXJhdGlvbjp3dS5iYXNlLnJ1bnRpbWUsY29ubmVjdFNvY2tldDppLHNlc3Npb25DaGlsZHJlbjohMCxwbGF0Zm9ybU5hbWU6TWUuUExBVEZPUk1fTkFNRSxwbGF0Zm9ybVNpZ25hdHVyZUtleTpNZS5QTEFURk9STV9TSUdOQVRVUkVfS0VZfSksd3UubWVzc2FnZXMucmVnaXN0ZXJVbnJlYWRIYW5kbGVyKCksdGhpcy5uYT15ci5ldmVudCx0aGlzLnJhPWksdGhpcy5jbGllbnQuQmFzZS5jb25maWd1cmVDb25zb2xlU2luaygpLHRoaXMub2EoKSx0aGlzLnVhKCksdGhpcy5sYSgpLHRoaXMuYWEoKSx0aGlzLmhhKCksdGhpcy5jYSgpLHRoaXMuZGEoKSx0aGlzLkRhKCksdGhpcy5mYSgpLHRoaXMucGEoKSx0aGlzLm1hKCksdGhpcy5nYSgpLHRoaXMuRmEoKSx0aGlzLndhKCksdGhpcy52YSgpLHRoaXMueWEoKSx0aGlzLmJhKCksdGhpcy5FYSgpLHRoaXMuQ2EoKSx0aGlzLmthKCksdGhpcy4kYSgpLHRoaXMuQWEoKSx0aGlzLkJhKCksdGhpcy54YSgpLHRoaXMuamEoKSx0aGlzLklhKCksdGhpcy5TYSgpLHRoaXMuUmEoKSx0aGlzLk9hKCksdGhpcy5UYSgpLHRoaXMuemEoKSx0aGlzLlBhKCksdGhpcy5MYSgpLHRoaXMuTWEoKSx0aGlzLlVhKCksdGhpcy5xYSgpLHRoaXMuVmEoKSx0aGlzLk5hKCksdGhpcy5IYSgpLHRoaXMuV2EoKSx0aGlzLkdhKCksdGhpcy5KYSgpLHRoaXMuS2EoKSx0aGlzLllhKCksdGhpcy5aYSgpLHRoaXMuWGEoKSx0aGlzLlFhKCksdGhpcy50aCgpLHRoaXMuZWgoKSx0aGlzLnNoKCksdGhpcy5paCgpLHRoaXMubmgoKSx0aGlzLnJoKCksdGhpcy5vaCgpLHRoaXMudWgoKSx0aGlzLmFoKCl9cmVzZXQoKXt0aGlzLmdyKCl9b2EoKXt0aGlzLm5hLm9uKCJzb2NrZXQ6c3RhdGUiLHQ9Pnt0LmNvbm5lY3RlZD09PXRoaXMuX3NvY2tldENvbm5lY3RlZCYmdC5mYWlsZWRfcmVjb25uZWN0PT09dGhpcy5oaHx8KHRoaXMuX3NvY2tldENvbm5lY3RlZD10LmNvbm5lY3RlZHx8ITEsdGhpcy5oaD10LmZhaWxlZF9yZWNvbm5lY3R8fCExLHRoaXMuY2xpZW50LkNoYXQuSW50ZXJmYWNlLnRvZ2dsZVNvY2tldFN0YXRlKHRoaXMuX3NvY2tldENvbm5lY3RlZCx0aGlzLmhoKSx3dS5taW5pbWl6ZWQucGFuZS5pc19vZmZsaW5lPSEwIT09dGhpcy5fc29ja2V0Q29ubmVjdGVkLCEwPT09dGhpcy5fc29ja2V0Q29ubmVjdGVkJiZ0aGlzLmNsaWVudC5FdmVudC5jaGVja0FjdGl2aXR5QXV0b2tpbGwoKSl9KX11YSgpe3RoaXMubmEub24oInNvY2tldDpyZXNjdWVkIiwoKT0+eyExPT09dGhpcy5yYT95ci5zb2NrZXQuY29ubmVjdCgpOm51bGw9PT10aGlzLmNsaWVudC5CYXNlLl9jb250YWluZXJFbCYmKHRoaXMuY2xpZW50LkJhc2UudXBkYXRlU29ja2V0Q29va2llS2V5KCEwKSx0aGlzLmNsaWVudC5CYXNlLnJ1blN0YXRpYyghMSkpfSl9bGEoKXt0aGlzLm5hLm9uKCJzZXNzaW9uOmNyZWF0ZWQiLHQ9Pnt0LmVycm9yPyJpbnZhbGlkX3dlYnNpdGVfaWQiPT09dC5lcnJvciYmdGhpcy5jbGllbnQuQmFzZS5ydW5FcnJvcigpOnQuc2Vzc2lvbl9pZD90aGlzLmRoPSEwOldlLmVycm9yKCJVbnJlY29nbml6ZWQgc2Vzc2lvbiBjcmVhdGlvbiBlcnJvciIpfSl9YWEoKXt0aGlzLm5hLm9uKCJzZXNzaW9uOmpvaW5lZCIsdD0+e3QuZXJyb3I/ImludmFsaWRfc2Vzc2lvbiI9PT10LmVycm9yJiYrK3RoaXMuRGg8PTEmJnlyLlNlc3Npb24ucmVzZXQoITAsKCk9Pnt5ci5TZXNzaW9uLmNyZWF0ZSgpfSwoKT0+e30pOih3dS5iYXNlLnNlc3Npb25faWQ9dC5zZXNzaW9uX2lkfHxudWxsLHd1LmJhc2Uuc2Vzc2lvbl9oYXNoPXQuc2Vzc2lvbl9oYXNofHxudWxsLHd1LmNoYXQuaW5pdGlhbGl6ZUNvbnZlcnNhdGlvbnModCx0LmNoaWxkcmVuKSwhMT09PXQuc29ja2V0JiYhMCE9PXQuaW5pdGlhdGVkJiZ0aGlzLmNsaWVudC5CYXNlLnVwZGF0ZVNvY2tldENvb2tpZUtleSghMCksITA9PT10aGlzLmZoPyh0aGlzLmZoPSExLHRoaXMuY2xpZW50LkJhc2UuYWNxdWlyZVdlYnNpdGVTZXR0aW5ncyh0KS50aGVuKHQ9PnshMCE9PXQmJih0aGlzLmNsaWVudC5CYXNlLnNwYXduQ2xpZW50KHQpLHlyLldlYnNpdGUuZ2V0VXNlcnNBdmFpbGFibGUoKSl9KSk6d3UuY2hhdC5lYWNoU2Vzc2lvbklkKHQ9Pnt3dS5tZXNzYWdlcy5zeW5jaHJvbml6ZUhpc3RvcnlBbmROZXcodCl9KSl9KX1oYSgpe3RoaXMubmEub24oInNlc3Npb246c3RhdGUiLHQ9PntsZXQgZT10LnNlc3Npb25faWQ7ZGVsZXRlIHQuc2Vzc2lvbl9pZDtsZXQgcz1lPT09d3UuYmFzZS5zZXNzaW9uX2lkO2lmKHMmJjE9PT10aGlzLnBoJiYodGhpcy5waCsrLHRoaXMuX2g9ITApLCExPT09dGhpcy5jbGllbnQuQ2hhdC5faXNJbml0aWFsaXplZClpZihzKXtsZXQgZT0oKT0+e3hyLm5leHRSZW5kZXIoKCk9Pnt0aGlzLmNsaWVudC5CYXNlLnRyaWdnZXJTZXNzaW9uTG9hZGVkKCl9KX07aWYobnVsbCE9PXRoaXMuX2ZuSW5pdGlhbGl6ZS5tYXN0ZXIpe3RoaXMuX2ZuSW5pdGlhbGl6ZS5tYXN0ZXIoeHIuaXNFbXB0eSh0KT9udWxsOnQpO2ZvcihsZXQgdD0wO3Q8dGhpcy5fZm5Jbml0aWFsaXplLmFjdGlvbnMubGVuZ3RoO3QrKyl0aGlzLl9mbkluaXRpYWxpemUuYWN0aW9uc1t0XSgpO3RoaXMuX2ZuSW5pdGlhbGl6ZS5tYXN0ZXI9bnVsbCx0aGlzLl9mbkluaXRpYWxpemUuYWN0aW9ucz1bXSxlKCl9ZWxzZSB4ci5pc0VtcHR5KHQpPyh0aGlzLmNsaWVudC5NaW5pbWl6ZWQuaW5pdCghMCx0aGlzLmRoKSx5ci5TZXNzaW9uLmdldFJlcXVlc3RJbml0aWF0ZSgpLGUoKSk6dGhpcy5jbGllbnQuQ2hhdC5pbml0KHQsZSl9ZWxzZSB3dS5zdGF0ZS5yZXN0b3JlKHQsZSk7d3Uuc3RhdGUucmVjZWl2ZSh0LGUpLHMmJnRoaXMubWgoKX0pfWNhKCl7dGhpcy5uYS5vbigic2Vzc2lvbjplcnJvciIsdD0+e2lmKCJlbWFpbDppbnZhbGlkX2Zvcm1hdCI9PT10LnR5cGUpd3UuY2hhdEFsZXJ0LnVwZGF0ZSgiZW1haWxfaW52YWxpZCIsInNob3ciLHQuc2Vzc2lvbl9pZCksd3UubWVzc2FnZXMuY2hlY2tGb3JtSWRlbnRpZnlMb2NrKHQuc2Vzc2lvbl9pZCl9KX1kYSgpe3RoaXMubmEub24oInNlc3Npb246cmVxdWVzdDpwdXJnZSIsKCk9Pnt0aGlzLmNsaWVudC5BY3Rpb24uZG9fc2Vzc2lvbl9yZXNldCgpfSl9RGEoKXt0aGlzLm5hLm9uKCJzZXNzaW9uOnJlcXVlc3Q6ZmVlZGJhY2siLHQ9Pnt3dS5jaGF0RmVlZGJhY2sucmVxdWVzdCh0LnNlc3Npb25faWQpfSl9ZmEoKXt0aGlzLm5hLm9uKCJzZXNzaW9uOnJlcXVlc3Q6aWRlbnRpdHkiLHQ9Pnt3dS5jaGF0QXV0aGVudGljYXRlLnJlcXVlc3QodC5zZXNzaW9uX2lkLHQubWV0aG9kLHQuaWRlbnRpdHksdC5hbm5vdGF0aW9uKX0pfXBhKCl7dGhpcy5uYS5vbigic2Vzc2lvbjpyZXF1ZXN0OnRvb2wiLHQ9Pnt0aGlzLmNsaWVudC5BY3Rpb24uaGFuZGxlVG9vbEV2ZW50UmVxdWVzdCh0KX0pfW1hKCl7dGhpcy5uYS5vbigic2Vzc2lvbjppZGVudGl0eTp2ZXJpZmllZCIsdD0+e2xldCBlPXQudmVyaWZpY2F0aW9uLHM9dC5lcnJvcnx8bnVsbDt3dS5jaGF0QXV0aGVudGljYXRlLmFja25vd2xlZGdlKHQuc2Vzc2lvbl9pZCxlLm1ldGhvZCxlLmlkZW50aXR5LGUuYW5ub3RhdGlvbixzKX0pfWdhKCl7dGhpcy5uYS5vbigic2Vzc2lvbjpjaGlsZDpjcmVhdGUiLCgpPT57fSl9RmEoKXt0aGlzLm5hLm9uKCJzZXNzaW9uOmNoaWxkOmNyZWF0ZWQiLHQ9Pnt0LmVycm9yLHd1LmNoYXQuaGFuZGxlQ29udmVyc2F0aW9uU3RhcnRlZCh0LnNlc3Npb25faWQsdC5lcnJvcix0LnJlZGlyZWN0KX0pfXdhKCl7dGhpcy5uYS5vbigid2Vic2l0ZTp1c2VyczphdmFpbGFibGUiLHQ9PntNZS5URVNUJiZ3aW5kb3cuJG1vY2tfdXNlcnNfYXZhaWxhYmxlJiYodD13aW5kb3cuJG1vY2tfdXNlcnNfYXZhaWxhYmxlKSx3dS5hdmFpbGFiaWxpdHkucmVjZWl2ZSh0LmF2YWlsYWJsZSx0LmNoYW5nZWQpLDA9PT10aGlzLnBoPyh0aGlzLnBoKyssd3UuY2hhdC5lYWNoU2Vzc2lvbklkKHQ9Pnt5ci5TZXNzaW9uLmdldFN0YXRlKHQpfSkpOnd1LmF2YWlsYWJpbGl0eS5hcHBseSgpfSl9dmEoKXt0aGlzLm5hLm9uKCJtZXNzYWdlOnJlY2VpdmVkIix0PT57dGhpcy5naCh0KX0pfXlhKCl7dGhpcy5uYS5vbigibWVzc2FnZTpyZWNlaXZlZDpsb2NhbCIsdD0+e3RoaXMuZ2godCl9KX1iYSgpe3RoaXMubmEub24oIm1lc3NhZ2U6c2VuZCIsdD0+e3d1Lm1lc3NhZ2VzLmhhbmRsZVNlbnQodCx0LnNlc3Npb25faWQpfSl9RWEoKXt0aGlzLm5hLm9uKCJtZXNzYWdlOnNlbnQiLHQ9Pnt3dS5tZXNzYWdlcy5oYW5kbGVTZW50QWNrbm93bGVkZ2VtZW50KHQsdC5zZXNzaW9uX2lkKSx0aGlzLmNsaWVudC5BY3Rpb24uZXZlbnQoIm1lc3NhZ2U6c2VudCIsdCl9KX1DYSgpe3RoaXMubmEub24oIm1lc3NhZ2U6cmVtb3ZlZCIsdD0+e3d1Lm1lc3NhZ2VzLmhhbmRsZVJlbW92ZWQodCx0LnNlc3Npb25faWQpfSl9JGEoKXt0aGlzLm5hLm9uKCJtZXNzYWdlOmNvbXBvc2U6c2VuZCIsdD0+e3RoaXMuY2xpZW50LkFjdGlvbi5ldmVudCgibWVzc2FnZTpjb21wb3NlOnNlbnQiLHQpfSl9QWEoKXt0aGlzLm5hLm9uKCJtZXNzYWdlOmFja25vd2xlZGdlOnJlYWQ6c2VuZCIsdD0+e3d1Lm1lc3NhZ2VzLmFja25vd2xlZGdlUmVhZFNlbmQodC5maW5nZXJwcmludHMsdC5zZXNzaW9uX2lkKX0pfUJhKCl7dGhpcy5uYS5vbigibWVzc2FnZTplcnJvcjpyZWplY3RlZCIsdD0+e3d1Lm1lc3NhZ2VzLmVycm9yUmVqZWN0ZWQodC5maW5nZXJwcmludCx0LnNlc3Npb25faWQsdC5yZWFzb24pfSl9a2EoKXt0aGlzLm5hLm9uKCJtZXNzYWdlOmNvbXBvc2U6cmVjZWl2ZWQiLHQ9PntpZighMCE9PXd1LndlYnNpdGU/LmNoYXQ/Lm9wZXJhdG9yX3ByaXZhY3l8fCEwPT09dC5hdXRvbWF0ZWQpc3dpdGNoKHQudHlwZSl7Y2FzZSJzdGFydCI6d3UubWVzc2FnZXMuc2hvd0NvbXBvc2UodC50aW1lc3RhbXAsdC5hdXRvbWF0ZWQsdC5zZXNzaW9uX2lkKTticmVhaztjYXNlInN0b3AiOnd1Lm1lc3NhZ2VzLmhpZGVDb21wb3NlKHQuc2Vzc2lvbl9pZCl9dGhpcy5jbGllbnQuQWN0aW9uLmV2ZW50KCJtZXNzYWdlOmNvbXBvc2U6cmVjZWl2ZWQiLHQpfSl9eGEoKXt0aGlzLm5hLm9uKCJoaXN0b3J5Om1lc3NhZ2VzIix0PT57d3UubWVzc2FnZXMuaGFuZGxlSGlzdG9yeSh0Lm1lc3NhZ2VzLHQuc2Vzc2lvbl9pZCl9KX1qYSgpe3RoaXMubmEub24oIm92ZXJsYXk6YW5zd2VyOnNlYXJjaCIsdD0+e3RoaXMuX3Jlc3BvbnNlU3Bvb2wub3ZlcmxheV9hbnN3ZXJfc2VhcmNoPXQuaWR9KX1JYSgpe3RoaXMubmEub24oIm92ZXJsYXk6YW5zd2VyOnNlYXJjaDpwYXJ0aWFsIix0PT57dGhpcy5fcmVzcG9uc2VTcG9vbC5vdmVybGF5X2Fuc3dlcl9zZWFyY2g9PT10LmlkJiZ3dS5vdmVybGF5LmhhbmRsZVNlYXJjaENodW5rKHQucGFydGlhbC5jaHVuayl9KX1TYSgpe3RoaXMubmEub24oIm92ZXJsYXk6YW5zd2VyOnNlYXJjaDpwcm9jZXNzZWQiLHQ9Pnt0aGlzLl9yZXNwb25zZVNwb29sLm92ZXJsYXlfYW5zd2VyX3NlYXJjaD09PXQuaWQmJnd1Lm92ZXJsYXkuaGFuZGxlU2VhcmNoQW5zd2VyKHQucmVzdWx0LnRleHQsdC5zZWFyY2gucXVlcnkpfSl9UmEoKXt0aGlzLm5hLm9uKCJvdmVybGF5OmFuc3dlcjpzZWFyY2g6c291cmNlcyIsdD0+e3RoaXMuX3Jlc3BvbnNlU3Bvb2wub3ZlcmxheV9hbnN3ZXJfc2VhcmNoPT09dC5pZCYmd3Uub3ZlcmxheS5oYW5kbGVTZWFyY2hTb3VyY2VzKHQucmVzdWx0LnNvdXJjZXMpfSl9T2EoKXt0aGlzLm5hLm9uKCJjYWxsOnJlcXVlc3Q6aW5pdGlhdGUiLHQ9Pnt5ci5DYWxsLmluaXQoe3Nlc3Npb25faWQ6dC5zZXNzaW9uX2lkLGNhbGxfaWQ6dC5jYWxsX2lkLGljZTpNZS5SVENfSUNFLG1vZGU6dC5tb2RlLGhhc19zdXBwb3J0OnQuaGFzX3N1cHBvcnR9LCgpPT57d3UuY2FsbC5yaW5nKHQpfSwoKT0+e30pfSl9VGEoKXt0aGlzLm5hLm9uKCJjYWxsOmFjdGlvbjpzdG9wcGVkIiwoKT0+e3d1LmNhbGwuc3RvcCgpfSl9emEoKXt0aGlzLm5hLm9uKCJjYWxsOnBlZXI6bG9jYWw6ZXJyb3IiLCgpPT57d3UuY2FsbC5lcnJvcigpfSl9UGEoKXt0aGlzLm5hLm9uKCJjYWxsOnBlZXI6cmVtb3RlOmVycm9yIiwoKT0+e3d1LmNhbGwuZXJyb3IoKX0pfUxhKCl7dGhpcy5uYS5vbigiY2FsbDptZWRpYTpsb2NhbDpzdWNjZXNzIiwoKT0+e3d1LmNhbGwuc3VjY2VzcygibWVkaWFfbG9jYWwiKX0pfU1hKCl7dGhpcy5uYS5vbigiY2FsbDptZWRpYTpsb2NhbDplcnJvciIsKCk9Pnt3dS5jYWxsLmVycm9yKCl9KX1VYSgpe3RoaXMubmEub24oImNhbGw6bWVkaWE6cmVtb3RlOnN1Y2Nlc3MiLCgpPT57d3UuY2FsbC5zdWNjZXNzKCJtZWRpYV9yZW1vdGUiKX0pfXFhKCl7dGhpcy5uYS5vbigiY2FsbDp0cmFjazpsb2NhbDpzdGFydGVkIix0PT57d3UuY2FsbC50b2dnbGVNZWRpYVN0YXR1cyh0Lm1lZGlhLCEwKX0pfVZhKCl7dGhpcy5uYS5vbigiY2FsbDp0cmFjazpsb2NhbDplbmRlZCIsdD0+e3d1LmNhbGwudG9nZ2xlTWVkaWFTdGF0dXModC5tZWRpYSwhMSl9KX1OYSgpe3RoaXMubmEub24oImJyb3dzaW5nOnJlcXVlc3Q6aW5pdGlhdGUiLHQ9Pnt0aGlzLkZoLnB1c2goKCk9Pnt3dS5icm93c2luZy5wcmVwYXJlKHQpfSksdGhpcy5taCgpfSl9SGEoKXt0aGlzLm5hLm9uKCJicm93c2luZzphc3Npc3Q6c3RhcnRlZCIsKCk9Pnt3dS5icm93c2luZy5zdGFydEFzc2lzdCgpfSl9V2EoKXt0aGlzLm5hLm9uKCJicm93c2luZzphc3Npc3Q6c3RvcHBlZCIsKCk9Pnt3dS5icm93c2luZy5zdG9wQXNzaXN0KCl9KX1HYSgpe3RoaXMubmEub24oImJyb3dzaW5nOmFzc2lzdDptb3VzZSIsdD0+e3d1LmJyb3dzaW5nLnBpcGVNb3VzZSh0KX0pfUphKCl7dGhpcy5uYS5vbigiYnJvd3Npbmc6YXNzaXN0OnNjcm9sbCIsdD0+e3d1LmJyb3dzaW5nLnBpcGVTY3JvbGwodCl9KX1LYSgpe3RoaXMubmEub24oImJyb3dzaW5nOmFzc2lzdDpjbGljayIsdD0+e3d1LmJyb3dzaW5nLnBpcGVDbGljayh0KX0pfVlhKCl7dGhpcy5uYS5vbigiYnVja2V0OnVybDp1cGxvYWQ6Z2VuZXJhdGUiLHQ9Pnt0aGlzLl9yZXNwb25zZVNwb29sLmJ1Y2tldF91cmxfdXBsb2FkX2dlbmVyYXRlPXQuaWR9KX1aYSgpe3RoaXMubmEub24oImJ1Y2tldDp1cmw6dXBsb2FkOmdlbmVyYXRlZCIsdD0+e2lmKHRoaXMuX3Jlc3BvbnNlU3Bvb2wuYnVja2V0X3VybF91cGxvYWRfZ2VuZXJhdGU9PT10LmlkJiYicHJlcGFyaW5nIj09PSh3dS5jaGF0RmlsZS5zdGF0ZXx8bnVsbCkpe2xldCBlPXQudXJsPy5zaWduZWR8fCIiLHM9dC51cmw/LnJlc291cmNlfHwiIixpPXQucG9saWN5Py5zaXplX2xpbWl0fHwwO3d1LmNoYXRGaWxlLnVwbG9hZEdlbmVyYXRlZChlLHMsaSl9fSl9WGEoKXt0aGlzLm5hLm9uKCJtZWRpYTphbmltYXRpb246bGlzdCIsdD0+e3RoaXMuX3Jlc3BvbnNlU3Bvb2wubWVkaWFfYW5pbWF0aW9uX2xpc3Q9dC5pZH0pfVFhKCl7dGhpcy5uYS5vbigibWVkaWE6YW5pbWF0aW9uOmxpc3RlZCIsdD0+e3RoaXMuX3Jlc3BvbnNlU3Bvb2wubWVkaWFfYW5pbWF0aW9uX2xpc3Q9PT10LmlkJiYod3UuY2hhdFBpY2tlci5naWYucmVzdWx0cz10LnJlc3VsdHMpfSl9dGgoKXt0aGlzLm5hLm9uKCJoZWxwZGVzazphcnRpY2xlOnNlYXJjaCIsdD0+e3RoaXMuX3Jlc3BvbnNlU3Bvb2wuaGVscGRlc2tfYXJ0aWNsZV9zZWFyY2g9dC5pZH0pfWVoKCl7dGhpcy5uYS5vbigiaGVscGRlc2s6YXJ0aWNsZTpzZWFyY2hlZCIsdD0+e2lmKHRoaXMuX3Jlc3BvbnNlU3Bvb2wuaGVscGRlc2tfYXJ0aWNsZV9zZWFyY2g9PT10LmlkKXtsZXQgZT0hIXQuc2VhcmNoLnF1ZXJ5O3d1LmhlbHBkZXNrLmhhbmRsZUFydGljbGVzKHQucmVzdWx0cyx0LnNlYXJjaCxlKTtsZXQgcz13dS5jaGF0LmdlbmVyYXRlQ2hhbm5lbExpbmsoImhlbHBkZXNrIik7aWYocyl7bGV0IGUsaT1bXTtmb3IobGV0IG49MDtuPHQucmVzdWx0cy5sZW5ndGg7bisrKWU9dC5yZXN1bHRzW25dLGkucHVzaCh7dGl0bGU6ZS50aXRsZSx1cmw6YCR7c30ke2UubG9jYWxlfS9hcnRpY2xlLyR7ZS5zbHVnfS9gfSk7dGhpcy5jbGllbnQuQWN0aW9uLmV2ZW50KCJoZWxwZGVzazpxdWVyaWVkIix7cXVlcnk6dC5zZWFyY2gucXVlcnkscmVzdWx0czppfSl9fX0pfXNoKCl7dGhpcy5uYS5vbigiaGVscGRlc2s6YXJ0aWNsZTpsaXN0Iix0PT57dGhpcy5fcmVzcG9uc2VTcG9vbC5oZWxwZGVza19hcnRpY2xlX2xpc3Q9dC5pZH0pfWloKCl7dGhpcy5uYS5vbigiaGVscGRlc2s6YXJ0aWNsZTpsaXN0ZWQiLHQ9Pnt0aGlzLl9yZXNwb25zZVNwb29sLmhlbHBkZXNrX2FydGljbGVfbGlzdD09PXQuaWQmJnd1LmhlbHBkZXNrLmhhbmRsZUFydGljbGVzKHQucmVzdWx0cyl9KX1uaCgpe3RoaXMubmEub24oImhlbHBkZXNrOmFydGljbGU6c3VnZ2VzdCIsdD0+e3RoaXMuX3Jlc3BvbnNlU3Bvb2wuaGVscGRlc2tfYXJ0aWNsZV9zdWdnZXN0PXQuaWR9KX1yaCgpe3RoaXMubmEub24oImhlbHBkZXNrOmFydGljbGU6c3VnZ2VzdGVkIix0PT57dGhpcy5fcmVzcG9uc2VTcG9vbC5oZWxwZGVza19hcnRpY2xlX3N1Z2dlc3Q9PT10LmlkJiZ3dS5oZWxwZGVzay5oYW5kbGVBdXRvY29tcGxldGUodC5yZXN1bHRzKX0pfW9oKCl7dGhpcy5uYS5vbigiaGVscGRlc2s6Y2F0ZWdvcnk6bGlzdCIsdD0+e3RoaXMuX3Jlc3BvbnNlU3Bvb2wuaGVscGRlc2tfY2F0ZWdvcnlfbGlzdD10LmlkfSl9dWgoKXt0aGlzLm5hLm9uKCJoZWxwZGVzazpjYXRlZ29yeTpsaXN0ZWQiLHQ9Pnt0aGlzLl9yZXNwb25zZVNwb29sLmhlbHBkZXNrX2NhdGVnb3J5X2xpc3Q9PT10LmlkJiZ3dS5oZWxwZGVzay5oYW5kbGVDYXRlZ29yaWVzKHQucmVzdWx0cyl9KX1haCgpe3RoaXMubmEub24oIndpbmRvdzpoaXN0b3J5Iix0PT57d3UuYmFzZS5wYWdlX3VybD10LnBhZ2VfdXJsLHd1LmJhc2UucGFnZV9kb21haW49dC5wYWdlX2RvbWFpbixudWxsIT09dGhpcy5jbGllbnQuQmFzZS5fY29udGFpbmVyRWwmJiExPT09d3UuYmFzZS5pc19ibG9ja2VkJiZ0aGlzLmNsaWVudC5DaGF0LkludGVyZmFjZS5yZXF1ZXN0RHluYW1pY1NpemluZ1Byb3BlcnRpZXMoKSx0aGlzLmNsaWVudC5UcmlnZ2VyLnJlcHJvY2Vzc0V2ZW50c1BhZ2UoKX0pfWdoKHQpe3RoaXMuY2xpZW50LkNoYXQuc3RhcnRNaW5pbWl6ZWQoKCk9PntsZXQgZT0ibmV0d29yayI9PT10Lm9yaWdpbiYmITA7d3UubWVzc2FnZXMuaGFuZGxlUmVjZWl2ZWQodCx0LnNlc3Npb25faWQsZSxlLCEwLCExKSx0aGlzLmNsaWVudC5BY3Rpb24uZXZlbnQoIm1lc3NhZ2U6cmVjZWl2ZWQiLHQpfSl9bWgoKXtpZighMD09PXRoaXMuX2gpZm9yKDt0aGlzLkZoLmxlbmd0aD4wOyl0aGlzLkZoLnNoaWZ0KCkoKX1ncigpe3RoaXMuX3NvY2tldENvbm5lY3RlZD0hMSx0aGlzLl9yZXNwb25zZVNwb29sPXt9LHRoaXMuX2ZuSW5pdGlhbGl6ZT17bWFzdGVyOm51bGwsYWN0aW9uczpbXX0sdGhpcy5uYT1udWxsLHRoaXMuZGg9ITEsdGhpcy5maD0hMCx0aGlzLnJhPSExLHRoaXMuaGg9ITEsdGhpcy5waD0wLHRoaXMuX2g9ITEsdGhpcy5GaD1bXSx0aGlzLkRoPTB9fSxpbD1jbGFzcyBleHRlbmRzIEple2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5jbGllbnQ9dH1sb2FkU2V0dGluZ3ModCxlPW51bGwscz17fSl7bGV0IGk9YCR7TWUuVVJMX0NMSUVOVF9TRVRUSU5HU30vJHt0fWAsbj0iPyI7ZSYmKGkrPWAke259JHtlbmNvZGVVUklDb21wb25lbnQoZSl9YCxuPSImIik7Zm9yKGxldCByIGluIHMpbnVsbCE9PXNbcl0mJihpKz1gJHtufSR7cn09JHtlbmNvZGVVUklDb21wb25lbnQoc1tyXSl9YCxuPSImIik7cmV0dXJuIGZldGNoKGkpLnRoZW4odD0+dC5qc29uKCkpLnRoZW4odD0+UHJvbWlzZS5yZXNvbHZlKHQpKS5jYXRjaCh0PT4oV2UuZXJyb3IoIkZhaWxlZCB0byBsb2FkIHNldHRpbmdzIG9uIixpKSxQcm9taXNlLnJlamVjdCh0KSkpfXNwYXduV29ya2VyKHQsZSxzLGksbj0hMSl7dHJ5e2lmKHdpbmRvdy5Xb3JrZXImJndpbmRvdy5VUkwpe2xldCBvPWAke01lLlVSTF9DTElFTlRfQVNTRVRTfS9qYXZhc2NyaXB0cy93b3JrZXJzLyR7dH1fJHtNZS5SRVZJU0lPTn0uanNgLHU9ITA7dHJ5e3U9bmV3IFVSTChvKS5vcmlnaW4hPT13aW5kb3cubG9jYXRpb24ub3JpZ2lufWNhdGNoe31pZighMD09PXUpe2xldCB0PW5ldyB3aW5kb3cuWE1MSHR0cFJlcXVlc3Q7dC5vcGVuKCJHRVQiLG8sITApLHQucmVzcG9uc2VUeXBlPSJibG9iIix0Lm9ubG9hZD0oKT0+e3RyeXtsZXQgcj13aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTCh0LnJlc3BvbnNlKSxvPSgpPT57d2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwocil9O3RoaXMud2gocixlLHMsaSxuLG8pfWNhdGNoKHIpe1dlLmVycm9yKHIpLGkocil9fSx0Lm9uZXJyb3I9KCk9PntpKG5ldyBFcnJvcigiQ291bGQgbm90IGxvYWQgd29ya2VyIHJ1bnRpbWUiKSl9LHQuc2VuZCgpfWVsc2UgdHJ5e3RoaXMud2gobyxlLHMsaSxuKX1jYXRjaChyKXtXZS5lcnJvcihyKSxpKHIpfX1lbHNlIGkobmV3IEVycm9yKCJXb3JrZXJzIGFyZSBub3Qgc3VwcG9ydGVkIikpfWNhdGNoKG8pe1dlLmVycm9yKG8pLGkobyl9fXNwYXduRmVhdHVyZUJ1bmRsZSh0LGUscyxpKXt0cnl7d3UucGFydGlhbC5idW5kbGUucGVuZGluZ1t0XT0hMCxlKCkudGhlbihlPT57cyhlKSx3dS5wYXJ0aWFsLmJ1bmRsZS5wZW5kaW5nW3RdPSExfSkuY2F0Y2godD0+e1dlLmVycm9yKHQpLGkodCl9KX1jYXRjaChuKXt3dS5wYXJ0aWFsLmJ1bmRsZS5wZW5kaW5nW3RdPSExLFdlLmVycm9yKG4pfX13aCh0LGUscyxpLG4scj1udWxsKXtsZXQgbz1uZXcgd2luZG93Lldvcmtlcih0LHt0eXBlOiJtb2R1bGUifSk7by5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIix0PT57dHJ5e3ModC5kYXRhKSwhMD09PW4mJihvLnRlcm1pbmF0ZSgpLCJmdW5jdGlvbiI9PXR5cGVvZiByJiZyKCkpfWNhdGNoKGUpe1dlLmVycm9yKGUpfX0pLG8uYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLHQ9Pnt0cnl7aSh0Lm1lc3NhZ2V8fCJDYW5ub3Qgc3Bhd24iKX1jYXRjaChlKXtXZS5lcnJvcihlKX19KSxlKG8pfX0sbmw9InRpY2tldCIscmw9WyJ0b2tlbiIsImV4cGlyZSIsInNlc3Npb24iXSxvbD1jbGFzcyBleHRlbmRzIEple2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5jbGllbnQ9dCx0aGlzLmdyKCl9cmVzZXQoKXt0aGlzLmdyKCl9YWNxdWlyZSh0LGUpe2xldCBzPSgpPT57bGV0IHM9dGhpcy55aCh0KTtzLnRva2VuP2Uoe3Rva2VuOnMudG9rZW59KTplKG51bGwpfTt0aGlzLmJoIT09dCYmKHRoaXMuYmg9dCx0aGlzLkVoKHQpKTtsZXQgaT1uZXcgRGF0ZTsodGhpcy55aCh0KS5yZWZyZXNoQWZ0ZXJ8fDApLWkuZ2V0VGltZSgpPD0wPT0hMD90aGlzLkNoKHQsaSxzKTpzKCl9Q2godCxlLHMpe3RoaXMua2gucHVzaChzKSwxPT09dGhpcy5raC5sZW5ndGgmJnRoaXMuJGgodCxlLCgpPT57Zm9yKDt0aGlzLmtoLmxlbmd0aD4wOyl0aGlzLmtoLnNoaWZ0KCkoKX0pfSRoKHQsZSxzKXtsZXQgaT1gJHtlLmdldEZ1bGxZZWFyKCl9LSR7ZS5nZXRNb250aCgpfS0ke2UuZ2V0RGF0ZSgpfS0ke2UuZ2V0SG91cnMoKX0tJHtlLmdldE1pbnV0ZXMoKX0tJHtlLmdldFNlY29uZHMoKX1gLG49YHNlc3Npb24vJHtlbmNvZGVVUklDb21wb25lbnQodCl9YDt0aGlzLmNsaWVudC5QYXJ0aWFsLmxvYWRTZXR0aW5ncyhgJHtufS9jaGFsbGVuZ2UvYCxpKS50aGVuKGk9Pnt0aGlzLkFoKGkubWludHx8e30scj0+e2xldCBvPXttaW50X3NpZ25hdHVyZTppLm1pbnQ/LnNpZ25hdHVyZXx8bnVsbCxtaW50X3Byb29mOnI/LnRva2VufHxudWxsLG1pbnRfY29zdDpyPy5kdXJhdGlvbnx8bnVsbH07dGhpcy5jbGllbnQuUGFydGlhbC5sb2FkU2V0dGluZ3MoYCR7bn0vdGlja2V0L2AsbnVsbCxvKS50aGVuKGk9PntpLnRva2VuJiZ0aGlzLkJoKHQsaSxlKSxzKCl9KS5jYXRjaCgoKT0+e3MoKX0pfSl9KS5jYXRjaCgoKT0+e3MoKX0pfUFoKHQsZSl7dHJ5e2lmKDEhPT10LnZlcnNpb24pdGhyb3cgbmV3IEVycm9yKGBNaW50IHZlcnNpb24gdW5zdXBwb3J0ZWQ6IFYke3QudmVyc2lvbnx8MH1gKTt0aGlzLnhoKHQudmVjdG9yLGUpfWNhdGNoKHMpe1dlLmVycm9yKHMpLGUobnVsbCxzKX19eGgodCxlKXt0cnl7dGhpcy5jbGllbnQuUGFydGlhbC5zcGF3bldvcmtlcigidGlja2V0IixlPT57ZS5wb3N0TWVzc2FnZSh7YWN0aW9uOiJtaW50IixkYXRhOnR9KX0sdD0+e2UodCl9LHM9PntzZXRUaW1lb3V0KCgpPT57dGhpcy5qaCh0LGUpfSwwKX0sITApfWNhdGNoKHMpe1dlLmVycm9yKHMpfX1qaCh0LGUpe3RyeXt4bygoKT0+aW1wb3J0KCIuL21pbnRfZGVmYXVsdF8yM2U0MjEyLmpzIikudGhlbihzPT57ZShzLmRlZmF1bHQubWludCh0LHlyLnNoYTI1NikpfSksX192aXRlX19tYXBEZXBzKFswLDFdKSl9Y2F0Y2gocyl7V2UuZXJyb3IocyksZShudWxsLHMpfX1FaCh0KXtsZXQgZT17fTtmb3IobGV0IHM9MDtzPHJsLmxlbmd0aDtzKyspe2xldCB0PXJsW3NdO2VbdF09eXIuU3RvcmFnZS5nZXRTdGFtcExvY2FsKG5sLHRoaXMuSWgodCkpfWlmKGUudG9rZW4mJmUuZXhwaXJlJiZlLnNlc3Npb24mJmUuc2Vzc2lvbj09PXQpe2xldCBzPXRoaXMueWgodCk7cy50b2tlbj1lLnRva2VuLHMucmVmcmVzaEFmdGVyPXBhcnNlSW50KGUuZXhwaXJlLDEwKX19QmgodCxlLHMpe2xldCBpPXRoaXMueWgodCk7aS50b2tlbj1lLnRva2VuLGkucmVmcmVzaEFmdGVyPXMuZ2V0VGltZSgpK01hdGguZmxvb3IoLjc1KmUuZHVyYXRpb24pO2xldCBuPXt0b2tlbjppLnRva2VuLGV4cGlyZTpgJHtpLnJlZnJlc2hBZnRlcn1gLHNlc3Npb246dH07Zm9yKGxldCByIGluIG4peXIuU3RvcmFnZS5zZXRTdGFtcExvY2FsKG5sLHRoaXMuSWgociksbltyXSl9eWgodCl7cmV0dXJuIHQgaW4gdGhpcy5TaHx8KHRoaXMuU2hbdF09e30pLHRoaXMuU2hbdF19SWgodCl7cmV0dXJuW3d1LmJhc2Uud2Vic2l0ZS5pZCx0XX1ncigpe3RoaXMuU2g9e30sdGhpcy5raD1bXSx0aGlzLmJoPW51bGx9fTtmdW5jdGlvbiB1bCh0LGUsLi4ucyl7cmV0dXJuIHQuYmluZCYmL1xbbmF0aXZlIGNvZGVcXS8udGVzdCh0LmJpbmQudG9TdHJpbmcoKSk/dC5iaW5kKGUsLi4ucyk6ZnVuY3Rpb24oLi4uaSl7cmV0dXJuIHQuYXBwbHkoZSxbLi4ucywuLi5pXSl9fXZhciBsbD1bInBhZ2UiLCJ1cmxfcGFyYW1ldGVyIl0sYWw9WyJwcmVzZXQiXSxobD0idHJpZ2dlciIsY2w9Y2xhc3MgZXh0ZW5kcyBKZXtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuY2xpZW50PXQsdGhpcy5SaD17ZGVsYXk6dGhpcy5PaCxsZWF2ZTp0aGlzLlRoLGxpbms6dGhpcy56aCxwYWdlOnRoaXMuUGgsdXJsX3BhcmFtZXRlcjp0aGlzLkxoLHVzZXJfZGF0YTp0aGlzLk1oLHVzZXJfZXZlbnQ6dGhpcy5VaH0sdGhpcy5xaD17bWVzc2FnZTp0aGlzLlZoLG9wZW46dGhpcy5OaCxzb3VuZDp0aGlzLkhoLHByZXNldDp0aGlzLldofSx0aGlzLkdoPXtwYWdlOnRoaXMuSmgsdXJsX3BhcmFtZXRlcjp0aGlzLktofSx0aGlzLmdyKCl9aW5pdCh7dHJpZ2dlcnM6dD17fSxkZWZhdWx0czplPXt9fSl7dGhpcy5ZaD10LHRoaXMuWmg9ZSx0aGlzLlhoKCksdGhpcy5RaCgpfXJlc2V0KCl7dGhpcy5ncigpfXJ1bih0KXtsZXQgZT10aGlzLlloPy5bdF07cmV0dXJuITA9PT1lPy5lbmFibGVkJiYodGhpcy50Yyh0LGUpLCEwKX1kb0V2ZW50KHQsZSl7bGV0IHM9dGhpcy5lY1t0XXx8W107Zm9yKGxldCBpPTA7aTxzLmxlbmd0aDtpKyspc1tpXShlKX1tYXJrUHJvY2Vzc2VkKHQpe3RoaXMuX3Byb2Nlc3NlZC5pbmNsdWRlcyh0KXx8dGhpcy5fcHJvY2Vzc2VkLnB1c2godCkseXIuU3RvcmFnZS5zZXRTdGFtcExvY2FsKGhsLFt3dS5iYXNlLndlYnNpdGUuaWQsInN0YXR1cyIsdF0sIjEiKX1yZXByb2Nlc3NFdmVudHNQYWdlKCl7bGV0IHQsZSxzO2ZvcihsZXQgaSBpbiB0aGlzLlloKWlmKHQ9dGhpcy5ZaFtpXSwhMD09PXQuZW5hYmxlZCYmKGU9dC5ldmVudHMsZSkpZm9yKGxldCBuIGluIGUpInBhZ2UiPT09biYmKHM9ZVtuXSwhMD09PXMuZW5hYmxlZCYmdGhpcy5QaChpLHQsZSkpfXVwZGF0ZUFuZFJlYXBwbHlEZWZhdWx0cyh0PXt9KXt0aGlzLlpoPXQsdGhpcy5YaCgpfVhoKCl7dGhpcy5uYyh0aGlzLlpoLnByZXNldCl9UWgoKXtsZXQgdCxlLHMsaSxuPSExO2ZvcihsZXQgciBpbiB0aGlzLlloKWlmKHQ9dGhpcy5ZaFtyXSwhMD09PXQuZW5hYmxlZCYmKGU9dC5ldmVudHMsZSkpZm9yKGxldCBvIGluIGUpcz1lW29dLCEwPT09cy5lbmFibGVkJiYoaT10aGlzLlJoW29dLCJmdW5jdGlvbiI9PXR5cGVvZiBpPyh1bChpLHRoaXMpKHIsdCxlLHMuc2V0dGluZ3N8fHt9KSxuPSEwKTpXZS5lcnJvcihgRGlkIG5vdCBhdHRhY2ggJHtvfSBldmVudCBsaXN0ZW5lciBmb3IgdHJpZ2dlcjogJHtyfSBiZWNhdXNlOiBubyBzdWNoIGV2ZW50IGxpc3RlbmVyYCkpOyEwPT09biYmdGhpcy5yYygpfXRjKHQsZSl7aWYoITA9PT10aGlzLm9jKGUpKWlmKCExPT09dGhpcy51Yyh0KSl7bGV0IHM9eHIuY2xvbmUodGhpcy5fcHJvY2Vzc2VkKTtzLnB1c2godCksdGhpcy5sYygoKT0+e3d1LnN0YXRlLnByb3BhZ2F0ZSgidHJpZ2dlciIscyx3dS5iYXNlLnNlc3Npb25faWQsITEsITAscz0+eyEwPT09cyYmITA9PT10aGlzLm9jKGUpJiYhMD09PXRoaXMuYWModCxlKSYmeXIuVHJpZ2dlci5maXJlZCh0LGUubmFtZSl9KX0pfWVsc2V7bGV0IHM9dGhpcy5oYyhlKTtudWxsIT09cyYmdGhpcy5hYyh0LGUscyl9fWFjKHQsZSxzPW51bGwpe2xldCBpPSExLG49c3x8ZS5hY3Rpb25zfHxudWxsO2lmKG51bGwhPT1uKXtsZXQgcztmb3IobGV0IHIgaW4gbilzPW5bcl0sITA9PT1zLmVuYWJsZWQmJiEwPT09dGhpcy5jYyh0LGUscixzKSYmKGk9ITApfXJldHVybiBpfWNjKHQsZSxzLGkpe2xldCBuPXRoaXMucWhbc10scj0hMTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygbj8odWwobix0aGlzKSh0LGUsaS5zZXR0aW5nc3x8e30pLHI9ITApOldlLmVycm9yKGBEaWQgbm90IGV4ZWN1dGUgJHtzfSBhY3Rpb24gZm9yIHRyaWdnZXI6ICR7dH0gYmVjYXVzZTogbm8gc3VjaCBhY3Rpb24gcHJvY2Vzc29yYCkscn1sYyh0KXt0aGlzLmNsaWVudC5CYXNlLmVuc3VyZVNvY2tldCgpLnRoZW4oKCk9PnshMCE9PXRoaXMuZGM/KHRoaXMuZGM9ITAsdGhpcy5jbGllbnQuQ2hhdC5zdGFydE1pbmltaXplZCh0KSk6dCgpfSl9b2ModCl7bGV0IGU9ITE7aWYoZT0hMT09PXd1LmJhc2UuaXNfaW52aXNpYmxlLCEwPT09dGhpcy5EYyh0LCJpZl93ZWJzaXRlX29ubGluZSIpJiYoZT0hMD09PXRoaXMuY2xpZW50LkFjdGlvbi5pc193ZWJzaXRlX2F2YWlsYWJsZSgpJiZlKSwhMD09PXRoaXMuRGModCwiaWZfZmlyc3RfdmlzaXQiKSYmKGU9IjEiPT09eXIuU3RvcmFnZS5nZXRTdGFtcExvY2FsKGhsLHRoaXMuZmMoImNvdW50IikpJiZlKSwhMD09PXRoaXMuRGModCwiaWZfdHJpZ2dlcl9zb2xlIikmJihlPSEwIT09d3UubWVzc2FnZXMuY29udmVyc2F0aW9uLmhhc19tZXNzYWdlcyYmZSksITA9PT10aGlzLkRjKHQsImlmX2NvdW50cmllcyIpKXtsZXQgcz0hMSxpPXQuYmVoYXZpb3JzLmlmX2NvdW50cmllcz8uc2V0dGluZ3Msbj13dS53ZWJzaXRlLmNoYXQuY291bnRyeTtpZihpKWZvcihsZXQgdCBpbiBpKXQ9PT1uJiYocz0hMCk7ZT0hMD09PXMmJmV9cmV0dXJuITE9PT13dS5iYXNlLmlzX21vYmlsZV92aWV3JiYhMT09PXRoaXMuX2ModCwiZGVza3RvcCIpJiYoZT0hMSksd3UuYmFzZS5pc19tb2JpbGVfdmlldyYmITE9PT10aGlzLl9jKHQsIm1vYmlsZSIpJiYoZT0hMSksZX1oYyh0KXtsZXQgZT1udWxsO2lmKHQuYWN0aW9ucyl7bGV0IHM7Zm9yKGxldCBpIGluIHQuYWN0aW9ucylzPXQuYWN0aW9uc1tpXSwhMD09PXMuZW5hYmxlZCYmITA9PT1hbC5pbmNsdWRlcyhpKSYmKG51bGw9PT1lJiYoZT17fSksZVtpXT1zKX1yZXR1cm4gZX1tYyh0PSExLGU9e30pe2xldCBzPTEwMDtyZXR1cm4hMD09PXQmJmUuYWZ0ZXImJmUuYWZ0ZXI+MCYmKHM9MWUzKmUuYWZ0ZXIpLHN9T2godCxlLHMsaSl7aWYoaS5hZnRlciYmaS5hZnRlcj4wKXtsZXQgbj0hMTtmb3IobGV0IHQgaW4gcylpZigiZGVsYXkiIT09dCYmITA9PT1zW3RdLmVuYWJsZWQpe249ITA7YnJlYWt9ITE9PT1uJiZ0aGlzLmdjKHQsZSx7ZW5hYmxlZDohMCxzZXR0aW5nczppfSl9fVRoKHQsZSxzKXtsZXQgaT0hMDtmb3IobGV0IG49MDtuPGxsLmxlbmd0aDtuKyspe2xldCB0PWxsW25dO2lmKCEwPT09c1t0XT8uZW5hYmxlZCYmKGk9dWwodGhpcy5HaFt0XSx0aGlzKShzKSwhMT09PWkpKWJyZWFrfSEwPT09aSYmKHRoaXMuRmMmJnhyLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndpbmRvdyIsIm1vdXNlb3V0Iix0aGlzLkZjKSx0aGlzLkZjPXhyLmFkZEV2ZW50TGlzdGVuZXIoIndpbmRvdyIsIm1vdXNlb3V0IixpPT57ITA9PT10aGlzLndjJiYhaS5yZWxhdGVkVGFyZ2V0JiYhaS50b0VsZW1lbnQmJmkuY2xpZW50WTw9dGhpcy52YyYmKHRoaXMud2M9ITEsbnVsbD09PXRoaXMueWMmJih0aGlzLnljPXRoaXMuZ2ModCxlLHMuZGVsYXkpKSl9KSx4ci5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aW5kb3ciLCJtb3VzZW92ZXIiLHRoaXMuYmMpLHRoaXMuYmM9eHIuYWRkRXZlbnRMaXN0ZW5lcigid2luZG93IiwibW91c2VvdmVyIiwoKT0+eyEwIT09dGhpcy53YyYmKHRoaXMud2M9ITAsbnVsbCE9PXRoaXMueWMmJih4ci5jbGVhclRpbWVvdXQodGhpcy55YyksdGhpcy55Yz1udWxsKSl9KSl9emgodCxlLHMsaSl7aS5pZHM/Lmxlbmd0aD4wJiYodGhpcy5FYyYmeHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZG9jdW1lbnQiLCJjbGljayIsdGhpcy5FYyksdGhpcy5FYz14ci5hZGRFdmVudExpc3RlbmVyKCJkb2N1bWVudCIsImNsaWNrIixuPT57dHJ5e2lmKG4/LnRhcmdldCYmImEiPT09KG4udGFyZ2V0Lm5vZGVOYW1lfHwiIikudG9Mb3dlckNhc2UoKSlmb3IobGV0IHI9MDtyPGkuaWRzLmxlbmd0aDtyKyspe2xldCBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGkuaWRzW3JdKSx1PSJmdW5jdGlvbiI9PXR5cGVvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoaS5pZHNbcl0pOm51bGwsbD0hMTtpZih1Py5sZW5ndGg+MClmb3IobGV0IHQ9MDt0PHUubGVuZ3RoO3QrKylpZih1W3RdPT09bi50YXJnZXQpe2w9ITA7YnJlYWt9aWYobz09PW4udGFyZ2V0fHwhMD09PWwpe3RoaXMuZ2ModCxlLHMuZGVsYXkpO2JyZWFrfX19Y2F0Y2gocil7V2UuZXJyb3Iocil9fSkpfVBoKHQsZSxzKXshMCE9PXMubGVhdmU/LmVuYWJsZWQmJiEwPT09dGhpcy5KaChzKSYmdGhpcy5nYyh0LGUscy5kZWxheSl9TGgodCxlLHMpeyEwIT09cy5sZWF2ZT8uZW5hYmxlZCYmITA9PT10aGlzLktoKHMpJiZ0aGlzLmdjKHQsZSxzLmRlbGF5KX1NaCh0LGUscyxpKXtpLnBvaW50cyYmeHIua2V5cyhpLnBvaW50cykubGVuZ3RoPjAmJnRoaXMuQ2MoInVzZXJfZGF0YSIsbj0+e2xldCByPWAke24udmFsdWV9YDtuLmtleSYmciYmYCR7aS5wb2ludHNbbi5rZXldfWA9PT1yJiZ0aGlzLmdjKHQsZSxzLmRlbGF5KX0pfVVoKHQsZSxzLGkpe2kudGV4dHM/Lmxlbmd0aD4wJiZ0aGlzLkNjKCJ1c2VyX2V2ZW50IixuPT57aS50ZXh0cy5pbmNsdWRlcyhuLnRleHQpJiZ0aGlzLmdjKHQsZSxzLmRlbGF5KX0pfVZoKHQsZSxzKXtpZihzKXtsZXQgaT0oc1t3dS5sb2NhbGUuY29kZV18fHMuZGVmYXVsdHx8IiIpLnRyaW0oKTtpZihpKXtsZXQgcz14ci50b0hhc2hDb2RlKGB0cmlnZ2VyLyR7dH1gKSxuPSExOyEwPT09dGhpcy5EYyhlLCJzaG93X2FzX3dlYnNpdGUiKSYmKG49ITApLHRoaXMuY2xpZW50LkFjdGlvbi5kb19tZXNzYWdlX3Nob3coInRleHQiLGkscyxuKX19fU5oKHQsZSl7dGhpcy5jbGllbnQuQWN0aW9uLmRvX2NoYXRfb3BlbigpfUhoKHQsZSl7TW8uc3RhcnQoImV2ZW50cyIsImNoYXQtbWVzc2FnZS1yZWNlaXZlIil9V2godCxlLHMpe3MmJnRoaXMubmMocyl9SmgodCl7bGV0IGU9ITEscz10LnBhZ2U/LnNldHRpbmdzO3JldHVybiBzPy51cmxzPy5sZW5ndGg+MCYmKGU9eHIuY29tcGFyZVBhZ2VSdWxlcyh3dS5iYXNlLnBhZ2VfdXJsLHMudXJscykpLGV9S2godCl7bGV0IGU9ITEscz10LnVybF9wYXJhbWV0ZXI/LnNldHRpbmdzfHx7fTtpZih4ci5rZXlzKHMucGFyYW1ldGVyc3x8e30pLmxlbmd0aD4wKXtsZXQgdD1kb2N1bWVudC5sb2NhdGlvbi5zZWFyY2h8fCIiLGk9dC5zbGljZSh0LmluZGV4T2YoIj8iKSsxKS5zcGxpdCgiJiIpLG49e307Zm9yKGxldCBlPTA7ZTxpLmxlbmd0aDtlKyspe2xldFt0LHNdPWlbZV0uc3BsaXQoIj0iKTt0JiYoblt0LnRvTG93ZXJDYXNlKCldPWRlY29kZVVSSUNvbXBvbmVudChzfHwiIikudG9Mb3dlckNhc2UoKSl9Zm9yKGxldCByIGluIHMucGFyYW1ldGVycyl7bGV0IHQ9cj8udG9Mb3dlckNhc2UoKXx8IiIsaT1TdHJpbmcocy5wYXJhbWV0ZXJzW3RdPy50b0xvd2VyQ2FzZSgpfHwiIik7aWYoblt0XT09PWkpe2U9ITA7YnJlYWt9fX1yZXR1cm4gZX1nYyh0LGUscz17fSl7bGV0IGk9bnVsbDtyZXR1cm4gaT14ci5zZXRUaW1lb3V0KCgpPT57dGhpcy50Yyh0LGUpfSx0aGlzLm1jKHM/LmVuYWJsZWQscz8uc2V0dGluZ3MpKSxpfUNjKHQsZSl7dGhpcy5lY1t0XT10aGlzLmVjW3RdfHxbXSx0aGlzLmVjW3RdLnB1c2goZSl9RGModCxlKXtyZXR1cm4hMD09PXQuYmVoYXZpb3JzPy5bZV0/LmVuYWJsZWR9dWModCl7bGV0IGU9dGhpcy5fcHJvY2Vzc2VkLmluY2x1ZGVzKHQpJiYhMDtyZXR1cm4hMCE9PWUmJihlPSIxIj09PXlyLlN0b3JhZ2UuZ2V0U3RhbXBMb2NhbChobCxbd3UuYmFzZS53ZWJzaXRlLmlkLCJzdGF0dXMiLHRdKSYmITApLGV9X2ModCxlKXtyZXR1cm4hMSE9PXQucGxhdGZvcm1zPy5bZV0/LmVuYWJsZWR9bmModD17fSl7bGV0IGU9dFt3dS5sb2NhbGUuY29kZV18fHQuZGVmYXVsdHx8W107d3UuY2hhdC5xdWlja19yZXBsaWVzLmNob2ljZXM9ZX1yYygpe2xldCB0PXRoaXMuZmMoImxhc3QiKSxlPXRoaXMuZmMoImNvdW50Iikscz1wYXJzZUludCh5ci5TdG9yYWdlLmdldFN0YW1wTG9jYWwoaGwsdCl8fCIwIiwxMCksaT1wYXJzZUludCh5ci5TdG9yYWdlLmdldFN0YW1wTG9jYWwoaGwsZSl8fCIwIiwxMCksbj0obmV3IERhdGUpLmdldFRpbWUoKTsoaXNOYU4ocyl8fGlzTmFOKGkpfHxpPD0wfHxuLXM+PTE4ZTUpJiYoaSs9MSxzPW4seXIuU3RvcmFnZS5zZXRTdGFtcExvY2FsKGhsLGUsYCR7aX1gKSkseXIuU3RvcmFnZS5zZXRTdGFtcExvY2FsKGhsLHQsYCR7bn1gKX1mYyh0KXtyZXR1cm5bd3UuYmFzZS53ZWJzaXRlLmlkLCJ2aXNpdCIsdF19Z3IoKXt0aGlzLl9wcm9jZXNzZWQ9W10sdGhpcy5ZaD1udWxsLHRoaXMuWmg9bnVsbCx0aGlzLmRjPSExLHRoaXMud2M9ITEsdGhpcy55Yz1udWxsLHRoaXMudmM9MTAsdGhpcy5FYz1udWxsLHRoaXMuRmM9bnVsbCx0aGlzLmJjPW51bGwsdGhpcy5lYz17fX19LGRsPShuZXcgY2xhc3N7Y29uc3RydWN0b3IoKXt0PXRoaXMsdGhpcy5QYXJ0aWFsPW5ldyBpbCh0aGlzKSx0aGlzLkFjdGlvbj1uZXcgenUodGhpcyksdGhpcy5UaWNrZXQ9bmV3IG9sKHRoaXMpLHRoaXMuQnJva2VyPW5ldyBzbCh0aGlzKSx0aGlzLkV2ZW50PW5ldyBIdSh0aGlzKSx0aGlzLlRyaWdnZXI9bmV3IGNsKHRoaXMpLHRoaXMuQmFzZT1uZXcgZWwodGhpcyksdGhpcy5NaW5pbWl6ZWQ9bmV3IFl1KHRoaXMpLHRoaXMuQ2hhdD1uZXcgS3UodGhpcyksZnVuY3Rpb24odCl7dHJ5e3ZhciBlPXtwdXNoOnF1KFV1LnB1c2gsVXUpLGdldDpxdShVdS5nZXQsVXUpLHNldDpxdShVdS5zZXQsVXUpLGlzOnF1KFV1LmlzLFV1KSxvbjpxdShVdS5vbixVdSksb2ZmOnF1KFV1Lm9mZixVdSksZG86cXUoVXUuZG8sVXUpLGNvbmZpZzpxdShVdS5jb25maWcsVXUpLHNhZmU6cXUoVXUuc2FmZSxVdSksaGVscDpxdShVdS5oZWxwLFV1KX07aWYoT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9faW5pdCIse2VudW1lcmFibGU6ITEsdmFsdWU6cXUodC5CYXNlLmluaXQsdC5CYXNlKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX3Nwb29sIix7ZW51bWVyYWJsZTohMSx2YWx1ZTp7fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2RlYnVnIix7ZW51bWVyYWJsZTohMSx2YWx1ZTp7fX0pLHQuX2RvbGxhckNyaXNwPWUsdC5fX3Nwb29sPWUuX19zcG9vbCx0Ll9fZGVidWc9ZS5fX2RlYnVnLGUuX19zcG9vbC5wZW5kaW5nX2FjdGlvbnM9W10sIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cuJGNyaXNwJiZ3aW5kb3cuJGNyaXNwLmxlbmd0aD4wKWZvcih2YXIgcz0wO3M8d2luZG93LiRjcmlzcC5sZW5ndGg7cysrKWUuX19zcG9vbC5wZW5kaW5nX2FjdGlvbnMucHVzaCh3aW5kb3cuJGNyaXNwW3NdKTt3aW5kb3cuJF9fQ1JJU1BfSU5TVEFOQ0U9ZSx3aW5kb3cuJGNyaXNwPWUsdC5fZG9sbGFyQ3Jpc3A9ZX1jYXRjaChpKXt9fSh0aGlzKX19LCh0LGUpPT57Y29uc3Qgcz10LmtjfHx0O2Zvcihjb25zdFtpLG5db2YgZSlzW2ldPW47cmV0dXJuIHN9KTtleHBvcnR7VSBhcyAkLEN0IGFzIEEsa2UgYXMgQixTZSBhcyBDLGUgYXMgQ3QsJGUgYXMgRCx3ZSBhcyBFLGt0IGFzIEYsciBhcyBHLFBlIGFzIEgsX2UgYXMgSSxvIGFzIEosbiBhcyBLLEx0IGFzIEwscGUgYXMgTSxtZSBhcyBOLHZlIGFzIE8sQWUgYXMgUCxoIGFzIFEsYmUgYXMgUixodCBhcyBTLFQgYXMgU3QsRmUgYXMgVCx6dCBhcyBVLFR0IGFzIFYsemUgYXMgVyxPIGFzIFgsSSBhcyBZLEwgYXMgWixUaSBhcyBfLE0gYXMgX3QsbnUgYXMgYSxGIGFzIGF0LE1lIGFzIGIsYyBhcyBidCx4byBhcyBjLGwgYXMgY3QsVXIgYXMgZCxtIGFzIGR0LEQgYXMgZXQsVHIgYXMgZixLIGFzIGZ0LHlyIGFzIGcsWCBhcyBndCx4ciBhcyBoLFogYXMgaHQsdnUgYXMgaSxmIGFzIGl0LGplIGFzIGosRWUgYXMgayxDbyBhcyBsLGIgYXMgbHQsSXIgYXMgbSx2IGFzIG10LGJ1IGFzIG4sWSBhcyBudCx0dSBhcyBvLGEgYXMgb3QsT3IgYXMgcCx3IGFzIHB0LHUgYXMgcSx3dSBhcyByLFAgYXMgcnQsTW8gYXMgcyx5IGFzIHN0LGRsIGFzIHQsUiBhcyB0dCxxciBhcyB1LEIgYXMgdXQsSmUgYXMgdixHIGFzIHZ0LHllIGFzIHcsb3QgYXMgeCxldCBhcyB4dCxXZSBhcyB5LHEgYXMgeXQsQ2UgYXMgen07"}},"time_used":31,"timings":{"blocked":0,"dns":0,"connect":8,"send":0,"wait":20,"receive":3,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"client.crisp.chat/static/javascripts/en_default_23e4212.js","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:50.041Z","timestamp":1785127670041,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /static/javascripts/en_default_23e4212.js HTTP/1.1\r\nHost: client.crisp.chat\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://buvei.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://client.crisp.chat/static/javascripts/client_default_23e4212.js\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-type: application/javascript\r\naccess-control-allow-credentials: false\r\naccess-control-allow-headers: Content-Type, Origin\r\naccess-control-allow-methods: HEAD, GET, OPTIONS\r\naccess-control-allow-origin: *\r\naccess-control-max-age: 300\r\ncache-control: public, max-age=315360000\r\ncross-origin-resource-policy: cross-origin\r\nx-content-type-options: nosniff\r\nexpires: Thu, 24 Jul 2036 04:47:50 GMT\r\nlast-modified: Tue, 21 Jul 2026 15:59:21 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\npriority: u=3,i=?0\r\nage: 45035\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: W/\"6a5f9759-3ec8\"\r\ncontent-encoding: br\r\ncf-ray: a2190221c8fac759-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"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":16072,"size_decoded":6049,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (15976)","md5":"1d4e460d136d3b4ace41c2e63e3bf09a","sha1":"95b79cfa13cee485dd23fb3b2e74894096ceaaad","sha256":"b3a86387d318444ce5bd8e2b53384ee55ca8047021c01721184f27d1fe112b54","sha512":"3b7848727ff289b750c7b9ccc1b0e4e893715722d439efe408dfaadfd3c8daa374cc210ffef2ab73a40df1d2ba369865cf73e2885eec040866d06b1aa12a03ed","ssdeep":"192:oiJbPFmXDS83jwhwPteE2WZXikEeMeTAFSIPAU1RrUWBGfj7nOmrY2FYXCYLvvKN:oePFmX28HXikEeMeYSIPfRrLc7sQroRs","tlshash":"0c72ca1edf32de7b02b74b83b185ba024eb1117106e0687ed45d497d02a4dcab65bf4d","first_seen":"2026-07-21T16:14:01.53143Z","last_seen":"2026-07-30T12:07:42.89912Z","times_seen":142,"resource_available":true,"data":"LyoqCiAqIGNyaXNwLWNsaWVudAogKiBAdmVyc2lvbiB2NC44LjcgMjNlNDIxMgogKiBAYXV0aG9yIENyaXNwIElNIFNBUwogKiBAZGF0ZSA3LzIxLzIwMjYKICovCnZhciBfX2NyZWF0ZT1PYmplY3QuY3JlYXRlLF9fZGVmUHJvcD1PYmplY3QuZGVmaW5lUHJvcGVydHksX19nZXRPd25Qcm9wRGVzYz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLF9fZ2V0T3duUHJvcE5hbWVzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzLF9fZ2V0UHJvdG9PZj1PYmplY3QuZ2V0UHJvdG90eXBlT2YsX19oYXNPd25Qcm9wPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksX19jb21tb25KU01pbj0oZSx0KT0+KCk9Pih0fHxlKCh0PXtleHBvcnRzOnt9fSkuZXhwb3J0cyx0KSx0LmV4cG9ydHMpLF9fZXhwb3J0QWxsPShlLHQpPT57bGV0IHI9e307Zm9yKHZhciBsIGluIGUpX19kZWZQcm9wKHIsbCx7Z2V0OmVbbF0sZW51bWVyYWJsZTohMH0pO3JldHVybiB0fHxfX2RlZlByb3AocixTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSkscn0sX190b0VTTT0oZSx0LHIpPT4ocj1udWxsIT1lP19fY3JlYXRlKF9fZ2V0UHJvdG9PZihlKSk6e30sKChlLHQscixsKT0+e2lmKHQmJiJvYmplY3QiPT10eXBlb2YgdHx8ImZ1bmN0aW9uIj09dHlwZW9mIHQpZm9yKHZhciBhLHU9X19nZXRPd25Qcm9wTmFtZXModCksYj0wLG49dS5sZW5ndGg7YjxuO2IrKylhPXVbYl0sX19oYXNPd25Qcm9wLmNhbGwoZSxhKXx8YT09PXJ8fF9fZGVmUHJvcChlLGEse2dldDooZT0+dFtlXSkuYmluZChudWxsLGEpLGVudW1lcmFibGU6IShsPV9fZ2V0T3duUHJvcERlc2ModCxhKSl8fGwuZW51bWVyYWJsZX0pO3JldHVybiBlfSkoIXQmJmUmJmUudD9yOl9fZGVmUHJvcChyLCJkZWZhdWx0Iix7dmFsdWU6ZSxlbnVtZXJhYmxlOiEwfSksZSkpO3ZhciBlPV9fZXhwb3J0QWxsKHtfbWV0YTooKT0+dCxfc3RyaW5nczooKT0+YSxkZWZhdWx0OigpPT5vfSksdD17bG9jYWxlX25hbWU6IkVuZ2xpc2giLGxvY2FsZV9jb2RlOiJlbiIsbG9jYWxlX2RpcmVjdGlvbjoibHRyIn0sYT1KU09OLnBhcnNlKCd7ImNvbW1vbiI6eyJjbG9zZSI6IkNsb3NlIn0sImRhdGUiOnsiaG91cl9zaW5ndWxhciI6IkFuIGhvdXIgYWdvIiwiaG91cl9wbHVyYWwiOiIlMXMgaG91cnMgYWdvIiwibWludXRlX3Npbmd1bGFyIjoiQSBtaW51dGUgYWdvIiwibWludXRlX3BsdXJhbCI6IiUxcyBtaW51dGVzIGFnbyIsInNlY29uZCI6IkEgZmV3IHNlY29uZHMgYWdvIiwibm93IjoiSnVzdCBub3cifSwiZHVyYXRpb24iOnsiZGF5cyI6IkEgZmV3IGRheXMiLCJob3VyX3Npbmd1bGFyIjoiQW4gaG91ciIsImhvdXJfcGx1cmFsIjoiJTFzIGhvdXJzIiwibWludXRlX3Npbmd1bGFyIjoiQSBtaW51dGUiLCJtaW51dGVfcGx1cmFsIjoiJTFzIG1pbnV0ZXMiLCJzZWNvbmQiOiJBIGZldyBzZWNvbmRzIiwibm93IjoiSW5zdGFudGx5In0sImRheXMiOnsibW9uZGF5IjoiTW9uZGF5IiwidHVlc2RheSI6IlR1ZXNkYXkiLCJ3ZWRuZXNkYXkiOiJXZWRuZXNkYXkiLCJ0aHVyc2RheSI6IlRodXJzZGF5IiwiZnJpZGF5IjoiRnJpZGF5Iiwic2F0dXJkYXkiOiJTYXR1cmRheSIsInN1bmRheSI6IlN1bmRheSJ9LCJtb250aHMiOnsiamFudWFyeSI6IkphbnVhcnkiLCJmZWJydWFyeSI6IkZlYnJ1YXJ5IiwibWFyY2giOiJNYXJjaCIsImFwcmlsIjoiQXByaWwiLCJtYXkiOiJNYXkiLCJqdW5lIjoiSnVuZSIsImp1bHkiOiJKdWx5IiwiYXVndXN0IjoiQXVndXN0Iiwic2VwdGVtYmVyIjoiU2VwdGVtYmVyIiwib2N0b2JlciI6Ik9jdG9iZXIiLCJub3ZlbWJlciI6Ik5vdmVtYmVyIiwiZGVjZW1iZXIiOiJEZWNlbWJlciJ9LCJ0aGVtZV90ZXh0Ijp7ImRlZmF1bHRfY2hhdCI6IlF1ZXN0aW9ucz8gQ2hhdCB3aXRoIHVzLiIsIjFfY2hhdCI6IlF1ZXN0aW9ucz8gQ2hhdCB3aXRoIG1lISIsIjJfY2hhdCI6IkFzayB1cyB5b3VyIHF1ZXN0aW9ucyIsIjNfY2hhdCI6IkFzayBtZSB5b3VyIHF1ZXN0aW9ucyIsIjRfY2hhdCI6IkNoYXQgd2l0aCBzdXBwb3J0In0sInRoZW1lX3dlbGNvbWUiOnsiZGVmYXVsdF9jaGF0IjoiSG93IGNhbiB3ZSBoZWxwIHdpdGggJTFzPyIsIjFfY2hhdCI6IkhleSwgd2FudCB0byBjaGF0IHdpdGggdXM/IiwiMl9jaGF0IjoiQW55dGhpbmcgeW91IHdhbnQgdG8gYXNrPyIsIjNfY2hhdCI6IkhlbGxvLCBhc2sgdXMgYW55IHF1ZXN0aW9uIGFib3V0ICUxcy4iLCI0X2NoYXQiOiJIZWxsbyEgSG93IGNhbiBJIGhlbHAgeW91PyA6KSIsIjVfY2hhdCI6IkFueSBxdWVzdGlvbiBhYm91dCAlMXM/In0sIm1pbmltaXplZCI6eyJ1bmF1dGhvcml6ZWRfcGFuZSI6IkludmFsaWQgd2Vic2l0ZSIsInRvb2x0aXBfZW50aWNlX3RpdGxlX3NlYXJjaCI6IlF1ZXN0aW9ucz8gU2VhcmNoIGZvciBoZWxwISIsInRvb2x0aXBfZW50aWNlX3N0YXR1c19vbmxpbmUiOiJXZSBhcmUgb25saW5lIiwidG9vbHRpcF9lbnRpY2Vfc3RhdHVzX2F3YXkiOiJXZSBhcmUgYXdheSIsInRvb2x0aXBfZW50aWNlX2FjdGlvbl9jaGF0IjoiQ2hhdCB3aXRoICUxcyIsInRvb2x0aXBfZW50aWNlX2FjdGlvbl9zZWFyY2giOiJTZWFyY2giLCJ0b29sdGlwX2J1dHRvbl9vcGVuX2hpbnQiOiJPcGVuIGNoYXQiLCJ0b29sdGlwX2J1dHRvbl9jbG9zZV9oaW50IjoiQ2xvc2UgY2hhdCJ9LCJjaGF0Ijp7Im1pbmltaXplZF90b29sdGlwX21lc3NhZ2VfY29tcG9zZSI6IkNvbXBvc2UgeW91ciByZXBseSIsIm1pbmltaXplZF9jb25uZWN0X2FsZXJ0X2ZhaWx1cmUiOiJGYWlsZWQgdG8gY29ubmVjdC4gU3VwcG9ydCBtYXkgYmUgdW5hdmFpbGFibGUgYXQgdGhlIG1vbWVudC4iLCJjaGF0X3dpbmRvd19sYWJlbCI6IkNoYXQgd2luZG93IiwiY2hhdF9icmFuZF93YXRlcm1hcmtfcHJlZml4X2h1Z28iOiJBbnN3ZXJzIGJ5IiwiY2hhdF9icmFuZF93YXRlcm1hcmtfcHJlZml4X2NyaXNwIjoiV2UgcnVuIG9uIiwiY2hhdF9oZWFkZXJfbW9kZV9ob21lIjoiSG9tZSIsImNoYXRfaGVhZGVyX21vZGVfY2hhdCI6Ik1lc3NhZ2VzIiwiY2hhdF9oZWFkZXJfbW9kZV9oZWxwZGVzayI6IkFydGljbGVzIiwiY2hhdF9oZWFkZXJfbW9kZV9zZWFyY2giOiJTZWFyY2giLCJjaGF0X2hlYWRlcl9wYWRfdGl0bGUiOiJRdWljayBBY3Rpb25zIiwiY2hhdF9oZWFkZXJfcGFkX2FjdGlvbl9jbG9zZSI6Ik1pbmltaXplIGNoYXQiLCJjaGF0X2hlYWRlcl9wYWRfYWN0aW9uX2V4cGFuZCI6IkV4cGFuZCB2aWV3IiwiY2hhdF9oZWFkZXJfcGFkX2FjdGlvbl9jb2xsYXBzZSI6IkNvbGxhcHNlIHZpZXciLCJjaGF0X2hlYWRlcl9wYWRfYWN0aW9uX2Rvd25sb2FkIjoiRG93bmxvYWQgdHJhbnNjcmlwdCIsImNoYXRfaGVhZGVyX3BhZF9hY3Rpb25fYWRkIjoiTmV3IGNvbnZlcnNhdGlvbiIsImNoYXRfaGVhZGVyX2hvbWVfbGFiZWwiOiJIb3cgY2FuIHdlIGhlbHA/IiwiY2hhdF9oZWFkZXJfaW5pdGlhbF9hdmF0YXJfd2Vic2l0ZV90b29sdGlwIjoiQW5kICUxcyBtb3JlIiwiY2hhdF9oZWFkZXJfYXV0b21hdGVkX2xhYmVsIjoiT3VyIHRlYW0gY2FuIGFsc28gaGVscCIsImNoYXRfaGVhZGVyX29uZ29pbmdfZnJvbSI6ImZyb20iLCJjaGF0X2hlYWRlcl9vbmdvaW5nX3N0YXR1c19tZXRyaWNzIjoiVHlwaWNhbGx5IHJlcGxpZXMgdW5kZXIgJTFzLiIsImNoYXRfaGVhZGVyX29uZ29pbmdfc3RhdHVzX2xhc3QiOiJMYXN0IGFjdGl2ZSAlMXMuIiwiY2hhdF9oZWFkZXJfb25nb2luZ19zdGF0dXNfb25saW5lIjoiU3VwcG9ydCBpcyBvbmxpbmUuIiwiY2hhdF9oZWFkZXJfb25nb2luZ19zdGF0dXNfYXdheSI6IlN1cHBvcnQgaXMgYXdheS4iLCJjaGF0X2hlYWRlcl9vbmdvaW5nX2NoYW5uZWxfY29udGludWUiOiJDb250aW51ZSB2aWEgJTFzIiwiY2hhdF9oZWFkZXJfb25nb2luZ19jaGFubmVsX2NvbnRpbnVlX2VtYWlsIjoiRW1haWwiLCJjaGF0X2hlYWRlcl9vbmdvaW5nX2NoYW5uZWxfY29udGludWVfcGhvbmUiOiJQaG9uZSIsImNoYXRfaGVhZGVyX2NoYW5uZWxzIjoiTW9yZSBjaGFubmVscyIsImNoYXRfaGVhZGVyX2NvbnZlcnNhdGlvbnMiOiJBbGwgeW91ciBjb252ZXJzYXRpb25zIiwiY2hhdF9oZWFkZXJfaGVscGRlc2tfY3VyYXRlZCI6IkhvdyBjYW4gd2UgaGVscCB5b3U/IiwiY2hhdF9oZWFkZXJfaGVscGRlc2tfcmVzdWx0cyI6IlNlYXJjaGVkIGhlbHAgYXJ0aWNsZXMiLCJjaGF0X2hlYWRlcl9idXR0b25fZXhwYW5kX2hpbnQiOiJFeHBhbmQgY2hhdCIsImNoYXRfaGVhZGVyX2J1dHRvbl9jb2xsYXBzZV9oaW50IjoiQ29sbGFwc2UgY2hhdCIsImNoYXRfaG9tZV9oZWxwX3RpdGxlIjoiR2V0IGhlbHAiLCJjaGF0X2hvbWVfaGVscF9jaGF0X25hbWUiOiJTZW5kIGEgbWVzc2FnZSIsImNoYXRfaG9tZV9oZWxwX2hlbHBkZXNrX25hbWUiOiJSZWFkIG91ciBoZWxwIGFydGljbGVzIiwiY2hhdF9ob21lX2hlbHBfc3RhdHVzX25hbWUiOiJTZXJ2aWNlIHN0YXR1cyIsImNoYXRfaG9tZV9oZWxwX3NlYXJjaF9uYW1lIjoiU2VhcmNoIiwiY2hhdF9ob21lX2hlbHBfc2VhcmNoX2xhYmVsIjoiQWxsIG9mIG91ciB3ZWJzaXRlIiwiY2hhdF9ob21lX3N0YXR1c19oZWFsdGh5IjoiQWxsIGhlYWx0aHkiLCJjaGF0X2hvbWVfc3RhdHVzX3NpY2siOiJTbG93ZG93biIsImNoYXRfaG9tZV9zdGF0dXNfZGVhZCI6Ik91dGFnZSIsImNoYXRfY29udmVyc2F0aW9uc19jb252ZXJzYXRpb24iOiJDb252ZXJzYXRpb24iLCJjaGF0X2NvbnZlcnNhdGlvbnNfeW91cnNlbGYiOiJZb3UiLCJjaGF0X2NvbnZlcnNhdGlvbnNfbm9fbWVzc2FnZSI6Ik5vIG1lc3NhZ2VzIiwiY2hhdF9hbGVydHNfbmV3X21lc3NhZ2VzIjoiVGhlcmUgYXJlIG5ldyBtZXNzYWdlcyBiZWxvdy4gQ2xpY2sgdG8gc2VlLiIsImNoYXRfYWxlcnRzX2VtYWlsX2ludmFsaWQiOiJZb3UgbWlzdHlwZWQgeW91ciBlbWFpbCwgY2FuIHlvdSBjaGVjayBpdD8iLCJjaGF0X2FsZXJ0c193YWl0X3JlcGx5X29ubGluZSI6IlRoYW5rcyEgV2Ugc2hvdWxkIHJlcGx5IGluIGEgZmV3IG1vbWVudHMuIiwiY2hhdF9hbGVydHNfd2FpdF9yZXBseV9hd2F5IjoiV2UgYXJlIG5vdCBvbmxpbmUuIFdlIHdpbGwgZW1haWwgeW91IGJhY2suIiwiY2hhdF9hbGVydHNfd2Fybl9yZXBseV9lbWFpbF9kZWZhdWx0IjoiQ2xpY2sgdG8gc2V0IHlvdXIgZW1haWwgdG8gZ2V0IG5vdGlmaWNhdGlvbnMuIiwiY2hhdF9hbGVydHNfd2Fybl9yZXBseV9lbWFpbF9mb3JjZSI6IlBsZWFzZSBzZXQgeW91ciBlbWFpbCB0byBjb250aW51ZS4iLCJjaGF0X2FsZXJ0c193YXJuX3JlcGx5X3Bob25lX2RlZmF1bHQiOiJDbGljayB0byBzZXQgeW91ciBwaG9uZSB0byBnZXQgbm90aWZpY2F0aW9ucy4iLCJjaGF0X2FsZXJ0c193YXJuX3JlcGx5X3Bob25lX2ZvcmNlIjoiUGxlYXNlIHNldCB5b3VyIHBob25lIHRvIGNvbnRpbnVlLiIsImNoYXRfYWxlcnRzX3dhcm5fcHJvbXB0IjoiUGxlYXNlIGZpbGwgdGhlIGZvcm0gYmVmb3JlIHlvdSBjb250aW51ZS4iLCJjaGF0X3BpY2tlcnNfc2VsZWN0b3Jfc21pbGV5cyI6IlNtaWxleXMiLCJjaGF0X3BpY2tlcnNfc2VsZWN0b3JfZ2lmcyI6IkdJRnMiLCJjaGF0X3BpY2tlcnNfc21pbGV5X3NlYXJjaCI6IlNlYXJjaCBmb3IgYW4gZW1vamkuLi4iLCJjaGF0X3BpY2tlcnNfc21pbGV5X2dyb3VwX3NtaWxleXNfcGVvcGxlIjoiU21pbGVzICYgUGVvcGxlIiwiY2hhdF9waWNrZXJzX3NtaWxleV9ncm91cF9hbmltYWxzX25hdHVyZSI6IkFuaW1hbHMgJiBOYXR1cmUiLCJjaGF0X3BpY2tlcnNfc21pbGV5X2dyb3VwX2Zvb2RfZHJpbmsiOiJGb29kICYgRHJpbmsiLCJjaGF0X3BpY2tlcnNfc21pbGV5X2dyb3VwX2FjdGl2aXRpZXMiOiJBY3Rpdml0aWVzIiwiY2hhdF9waWNrZXJzX3NtaWxleV9ncm91cF90cmF2ZWxfcGxhY2VzIjoiVHJhdmVsIHBsYWNlcyIsImNoYXRfcGlja2Vyc19zbWlsZXlfZ3JvdXBfb2JqZWN0cyI6Ik9iamVjdHMiLCJjaGF0X3BpY2tlcnNfc21pbGV5X2dyb3VwX3N5bWJvbHMiOiJTeW1ib2xzIiwiY2hhdF9waWNrZXJzX3NtaWxleV9ncm91cF9mbGFncyI6IkZsYWdzIiwiY2hhdF9waWNrZXJzX2dpZl9zZWFyY2giOiJGaW5kIGEgR0lGIGFuaW1hdGlvbi4uLiIsImNoYXRfcGlja2Vyc19ub19yZXN1bHRzIjoiTm8gcmVzdWx0cy4gVHJ5IGFub3RoZXIgc2VhcmNoLiIsImNoYXRfZmVlZGJhY2tfcmF0ZV90aXRsZSI6IkhvdyBkaWQgd2UgZG8/IiwiY2hhdF9mZWVkYmFja19yYXRlX3BsYWNlaG9sZGVyIjoiQW55dGhpbmcgdG8gc2F5PyIsImNoYXRfZmVlZGJhY2tfcmF0ZV9zdWJtaXQiOiJTZW5kIHlvdXIgcmF0aW5nIiwiY2hhdF9tZXNzYWdlX2ZpbGVfbmFtZSI6IkF0dGFjaGVkIGZpbGUiLCJjaGF0X21lc3NhZ2VfdGFnX2F1dG9tYXRlZCI6IkJvdCIsImNoYXRfbWVzc2FnZV90YWdfcGFydGljaXBhbnQiOiJQYXJ0aWNpcGFudCIsImNoYXRfbWVzc2FnZV90YWdfZWRpdGVkIjoiRWRpdGVkIiwiY2hhdF9tZXNzYWdlX3RhZ190cmFuc2xhdGVkIjoiVHJhbnNsYXRlZCIsImNoYXRfbWVzc2FnZV9zb3VyY2VfYmFkZ2UiOiJBSSIsImNoYXRfbWVzc2FnZV9zb3VyY2VfbGFiZWwiOiJBbnN3ZXIiLCJjaGF0X21lc3NhZ2Vfc291cmNlX3NvdXJjZXMiOiJTb3VyY2VzIiwiY2hhdF9tZXNzYWdlX2V2ZW50X3RoaW5raW5nIjoiVGhpbmtpbmcuLi4iLCJjaGF0X21lc3NhZ2VfaW5mb19yZWFkIjoiUmVhZCIsImNoYXRfbWVzc2FnZV9pbmZvX3NlbmRpbmciOiJTZW5kaW5nIiwiY2hhdF9tZXNzYWdlX2Vycm9yX3JldHJ5IjoiRmFpbGVkIHRvIHNlbmQuIFJldHJ5PyIsImNoYXRfbWVzc2FnZV9lcnJvcl9yZWFzb25fYmxvY2tlZCI6Ik5vdCBhbGxvd2VkIHRvIHNlbmQuIiwiY2hhdF9tZXNzYWdlX2Vycm9yX3JlYXNvbl9zcGFtIjoiTWVzc2FnZSBpcyBzcGFtLiIsImNoYXRfbWVzc2FnZV9lcnJvcl9yZWFzb25fcXVvdGEiOiJRdW90YSBsaW1pdCBleGNlZWRlZC4iLCJjaGF0X21lc3NhZ2VfZXJyb3JfcmVhc29uX3NpZ25hdHVyZSI6IlNpZ25hdHVyZSBpbnZhbGlkLiBSZWxvYWQgcGFnZS4iLCJjaGF0X21lc3NhZ2VfZXJyb3JfcmVhc29uX3RpY2tldCI6IlRpY2tldCBpbnZhbGlkLiBSZWxvYWQgcGFnZS4iLCJjaGF0X21lc3NhZ2VfZXJyb3JfcmVhc29uX3RpbWVvdXQiOiJDaGVjayB5b3VyIG5ldHdvcmsgY29ubmVjdGlvbi4iLCJjaGF0X21lc3NhZ2VfZXJyb3JfcmVhc29uX290aGVyIjoiVW5rbm93biBlcnJvciBjYXVzZS4iLCJjaGF0X21lc3NhZ2Vfc2VuZF9hYm9ydF93YXJuIjoiU29tZSBtZXNzYWdlcyBoYXZlIG5vdCB5ZXQgYmVlbiBzZW50LiBOYXZpZ2F0aW5nIHdpbGwgcHJldmVudCB0aGVtIGZyb20gYmVpbmcgc2VudC4iLCJjaGF0X21lc3NhZ2VfdHJhbnNjcmlwdF9uYW1lIjoiQ2hhdCBUcmFuc2NyaXB0IGF0ICUxcyIsImNoYXRfbWVzc2FnZV90cmFuc2NyaXB0X2NvbnRlbnRfdGl0bGUiOiJUaGlzIGlzIHRoZSB0cmFuc2NyaXB0IG9mIHlvdXIgY29udmVyc2F0aW9uIHdpdGggJTFzIG9uIHRoZSAlMnM6IiwiY2hhdF9mb3JtX2ZpZWxkX21lc3NhZ2UiOiJDb21wb3NlIHlvdXIgbWVzc2FnZS4uLiIsImNoYXRfZm9ybV9maWVsZF9kaXNhYmxlZCI6Ik1lc3NhZ2luZyBpcyB1bmF2YWlsYWJsZS4iLCJjaGF0X2Zvcm1fc2VuZF9oaW50IjoiU2VuZCIsImNoYXRfZm9ybV9hdHRhY2hfdG9vbHRpcCI6IlNlbmQgYSBmaWxlIiwiY2hhdF9mb3JtX2F0dGFjaF9yZW1vdmUiOiJSZW1vdmUgZmlsZSIsImNoYXRfZm9ybV9hdHRhY2hfd2FpdF9wcmVwYXJpbmciOiJQcmVwYXJpbmciLCJjaGF0X2Zvcm1fYXR0YWNoX3dhaXRfdXBsb2FkaW5nIjoiVXBsb2FkaW5nIiwiY2hhdF9mb3JtX2F0dGFjaF9hbGVydF9xdW90YSI6IkRhaWx5IGZpbGUgdXBsb2FkIHF1b3RhIGhhcyBiZWVuIGV4Y2VlZGVkLCBvciBmaWxlIGV4dGVuc2lvbiBpcyBub3QgYWxsb3dlZC4iLCJjaGF0X2Zvcm1fYXR0YWNoX2FsZXJ0X3NpemUiOiJGaWxlIHRvbyBsYXJnZS4gTWF4aW11bSBzaXplIGlzICUxcy4gUGxlYXNlIHJlZHVjZSBpdHMgc2l6ZSBhbmQgdHJ5IGFnYWluLiIsImNoYXRfZm9ybV9hdHRhY2hfYWxlcnRfZXJyb3IiOiJBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSB1cGxvYWRpbmcgdGhlIGZpbGUuIFBsZWFzZSB0cnkgYWdhaW4uIiwiY2hhdF9mb3JtX2F0dGFjaF9hYm9ydF93YXJuIjoiTmF2aWdhdGluZyB3aGVuIGEgZmlsZSBpcyBiZWluZyB1cGxvYWRlZCB3aWxsIHN0b3AgdXBsb2FkLiIsImNoYXRfZm9ybV9zbWlsZXlfdG9vbHRpcCI6Ikluc2VydCBhbiBlbW9qaSIsImNoYXRfZm9ybV9zcGVlY2hfdG9vbHRpcCI6IkF1ZGlvIG1lc3NhZ2UiLCJjaGF0X2Zvcm1fc3BlZWNoX2NhcHR1cmVfZXJyb3IiOiJDb3VsZCBub3QgcmVjb3JkIGF1ZGlvIGZyb20geW91ciBtaWNyb3Bob25lLiBEaWQgeW91IGFsbG93IGFjY2Vzcz8iLCJjaGF0X2Zvcm1fc3BlZWNoX2Fib3J0X3dhcm4iOiJOYXZpZ2F0aW5nIGJlZm9yZSB5b3VyIGF1ZGlvIHJlY29yZGluZyBpcyBzZW50IHdpbGwgY2F1c2UgaXQgdG8gYmUgbG9zdC4iLCJjaGF0X2Zvcm1fZmVlZGJhY2tfdG9vbHRpcCI6IlJhdGUgdGhpcyBjaGF0IiwiY2hhdF9nYW1lX2NvbnRyb2xzX3N0b3AiOiJTdG9wIHBsYXlpbmciLCJjaGF0X21lc3NhZ2VfdGV4dF9pZGVudGl0eV9tYWluIjoiSnVzdCBpbiBjYXNlIHlvdSBsZWF2ZSBvciB3ZSByZXBseSBsYXRlcjoiLCJjaGF0X21lc3NhZ2VfdGV4dF9pZGVudGl0eV9hc2siOiJob3cgZG8geW91IHdhbnQgdXMgdG8gZ2V0IGJhY2sgdG8geW91PyIsImNoYXRfbWVzc2FnZV90ZXh0X2lkZW50aXR5X3BpY2tfZW1haWwiOiJFbWFpbCIsImNoYXRfbWVzc2FnZV90ZXh0X2lkZW50aXR5X3BpY2tfcGhvbmUiOiJQaG9uZSIsImNoYXRfbWVzc2FnZV90ZXh0X2dhbWVfbWFpbiI6Ikxvb2tzIGxpa2Ugd2UgYXJlIHRha2luZyB0aW1lIHRvIHJlcGx5LiIsImNoYXRfbWVzc2FnZV90ZXh0X2dhbWVfYXNrIjoiV2hpbGUgeW91IHdhaXQsIHdhbnQgdG8gcGxheSBhIGNvb2wgZ2FtZT8iLCJjaGF0X21lc3NhZ2VfdGV4dF9nYW1lX3BpY2tfeWVzIjoiUGxheSBhIGdhbWUiLCJjaGF0X21lc3NhZ2VfdGV4dF9nYW1lX3BpY2tfbm8iOiJObywgdGhhbmtzIiwiY2hhdF9tZXNzYWdlX3RleHRfZmVlZGJhY2tfbWFpbiI6IlRoYW5rcyBmb3IgY2hhdHRpbmcgd2l0aCB1cy4iLCJjaGF0X21lc3NhZ2VfdGV4dF9mZWVkYmFja19hc2siOiJXb3VsZCB5b3UgbWluZCByYXRpbmcgb3VyIHN1cHBvcnQ/IiwiY2hhdF9tZXNzYWdlX3RleHRfZmVlZGJhY2tfcGlja19yYXRlIjoiUmF0ZSBzdXBwb3J0IiwiY2hhdF9tZXNzYWdlX3RleHRfZmVlZGJhY2tfcGlja19pZ25vcmUiOiJObywgdGhhbmtzIiwiY2hhdF9tZXNzYWdlX3RleHRfZmVlZGJhY2tfc3VibWl0dGVkIjoiVGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrISIsImNoYXRfbWVzc2FnZV90ZXh0X2ZpZWxkX3JldHVybiI6IlJldHVybiB0byBtZXNzYWdlIiwiY2hhdF9tZXNzYWdlX2F1ZGlvX3BsYXlfaGl0IjoiUGxheSBhdWRpbyIsImNoYXRfbWVzc2FnZV9hdWRpb19wbGF5X2Vycm9yIjoiQ291bGQgbm90IHBsYXkgdGhpcyBhdWRpbyBmaWxlLiBJdCBtYXkgaGF2ZSBleHBpcmVkLiIsImNoYXRfaWRlbnRpdHlfYXNrX2VtYWlsIjoiV2hhdCBpcyB5b3VyIGVtYWlsIGFkZHJlc3M/IiwiY2hhdF9pZGVudGl0eV9hc2tfZXhwbGFpbl9lbWFpbCI6IkVudGVyIHlvdXIgZW1haWwgdG8ga25vdyB3aGVuIHdlIHJlcGx5OiIsImNoYXRfaWRlbnRpdHlfYXNrX2ZpZWxkX2VtYWlsIjoiRW50ZXIgeW91ciBlbWFpbCBhZGRyZXNzLi4uIiwiY2hhdF9pZGVudGl0eV9hc2tfZm9ybWF0X2VtYWlsIjoiRXhwZWN0ZWQgZm9ybWF0OiBuYW1lQGV4YW1wbGUuY29tIiwiY2hhdF9pZGVudGl0eV9hc2tfc3VibWl0X2VtYWlsIjoiU2V0IG15IGVtYWlsIiwiY2hhdF9pZGVudGl0eV9hc2tfcGhvbmUiOiJXaGF0IGlzIHlvdXIgcGhvbmUgbnVtYmVyPyIsImNoYXRfaWRlbnRpdHlfYXNrX2V4cGxhaW5fcGhvbmUiOiJFbnRlciB5b3VyIHBob25lIHRvIGJlIG5vdGlmaWVkIHdoZW4gd2UgcmVwbHk6IiwiY2hhdF9pZGVudGl0eV9hc2tfZmllbGRfcGhvbmUiOiJFbnRlciB5b3VyIHBob25lIG51bWJlci4uLiIsImNoYXRfaWRlbnRpdHlfYXNrX3N1Ym1pdF9waG9uZSI6IlNldCBteSBwaG9uZSIsImNoYXRfaWRlbnRpdHlfYXNrX3NraXAiOiJTa2lwIiwiY2hhdF9hdXRoZW50aWNhdGVfY2hlY2tfZW1haWwiOiJDaGVjayB5b3VyIGVtYWlsIiwiY2hhdF9hdXRoZW50aWNhdGVfY2hlY2tfcGhvbmUiOiJDaGVjayB5b3VyIHRleHQgbWVzc2FnZXMiLCJjaGF0X2F1dGhlbnRpY2F0ZV9jaGVja19wbGF0Zm9ybSI6IkNoZWNrIHlvdXIgJTFzIiwiY2hhdF9hdXRoZW50aWNhdGVfZXhwbGFpbiI6IldlIGp1c3Qgc2VudCB5b3UgYSBjb2RlIHRvIHZlcmlmeSB5b3VyIGlkZW50aXR5IHRvOiIsImNoYXRfYXV0aGVudGljYXRlX2Vycm9yX2ludmFsaWQiOiJUaGlzIHZlcmlmaWNhdGlvbiBjb2RlIGlzIGludmFsaWQuIFRyeSBhZ2Fpbi4iLCJjaGF0X2F1dGhlbnRpY2F0ZV9zdWJtaXQiOiJWZXJpZnkgbXkgaWRlbnRpdHkiLCJjaGF0X2F1dGhlbnRpY2F0ZV9jYW5jZWwiOiJDYW5jZWwiLCJjaGF0X3N0YXRlX21haW4iOiJZb3VyIGNvbnZlcnNhdGlvbiBoYXMgZW5kZWQiLCJjaGF0X3N0YXRlX3N0YXJ0IjoiU3RhcnQgbmV3IGNvbnZlcnNhdGlvbiIsImNoYXRfc3RhdGVfcmVvcGVuIjoiQ29udGludWUgaW4gdGhpcyBjb252ZXJzYXRpb24iLCJjaGF0X3N0YXRlX2Vycm9yX3JlYXNvbl9zb2NrZXRfbm90X2NoaWxkcmVuX2VuYWJsZWQiOiJJbnRlcm5hbCBlcnJvci4gVHJ5IHJlZnJlc2hpbmc/IiwiY2hhdF9zdGF0ZV9lcnJvcl9yZWFzb25fY2Fubm90X2Rlcml2ZV9jaGlsZF9mcm9tX3BhcmVudCI6IkNhbm5vdCBjcmVhdGUgYSBuZXcgY29udmVyc2F0aW9uIGR1ZSB0byB1bmV4cGVjdGVkIGVycm9yLiIsImNoYXRfc3RhdGVfZXJyb3JfcmVhc29uX3BhcmVudF9jcmVhdGVzX2NoaWxkcmVuX3Rvb19mYXN0IjoiWW91IGFyZSBjcmVhdGluZyB0b28gbWFueSBjb252ZXJzYXRpb25zIHRvbyBmYXN0ISIsImNoYXRfc3RhdGVfZXJyb3JfcmVhc29uX290aGVyIjoiQ2Fubm90IGNyZWF0ZSBhIG5ldyBjb252ZXJzYXRpb24gcmlnaHQgbm93LiBUcnkgYWdhaW4gbGF0ZXIuIiwiY2hhdF9mcmFtZV9wcmV2aW91c190b29sdGlwIjoiUmV0dXJuIHRvIG1lc3NhZ2VzIiwiY2hhdF9vZmZsaW5lX21haW4iOiJOZXR3b3JrIG9mZmxpbmUuIFJlY29ubmVjdGluZy4uLiIsImNoYXRfb2ZmbGluZV9pbmFjdGl2ZSI6Ik9mZmxpbmUuIFlvdSB3ZXJlIGluYWN0aXZlIGZvciBzb21lIHRpbWUuIiwiY2hhdF9vZmZsaW5lX2ZhaWwiOiJPZmZsaW5lLiBQbGVhc2UgcmVsb2FkIHRoZSBwYWdlLiIsImNoYXRfb2ZmbGluZV9sYWJlbF9mcm96ZW4iOiJObyBtZXNzYWdlcyBjYW4gYmUgcmVjZWl2ZWQgb3Igc2VudCBmb3Igbm93LiIsImNoYXRfb2ZmbGluZV9sYWJlbF9yZXN1bWUiOiJSZWNvbm5lY3Qgbm93PyIsImNoYXRfaGVhbHRoX21haW4iOiJTb21lIG9mIG91ciBzZXJ2aWNlcyBhcmUgbm90IHdvcmtpbmcuIiwiY2hhdF9oZWFsdGhfbGFiZWxfbGluayI6IlNlZSBvdXIgc3RhdHVzIHBhZ2UiLCJjaGF0X2hlYWx0aF9sYWJlbF91cGRhdGVzIjoiZm9yIG1vcmUgdXBkYXRlcy4iLCJjaGF0X2hlbHBkZXNrX3NlYXJjaF9lbXB0eSI6Ik5vIGFydGljbGVzIGZvdW5kLiBUcnkgb3RoZXIga2V5d29yZHMuIiwiY2hhdF9oZWxwZGVza19zZWFyY2hfdW5wb3B1bGF0ZWQiOiJUaGVyZSBpcyBubyBjb250ZW50IHRoZXJlISIsImNoYXRfaGVscGRlc2tfc2VhcmNoX2Zvcm1fZmllbGQiOiJTZWFyY2ggb3VyIGhlbHAgY2VudGVyLi4uIiwiY2hhdF9oZWxwZGVza192aWV3ZXJfdXBkYXRlZCI6IlVwZGF0ZWQgJTFzIiwiY2hhdF9oZWxwZGVza192aWV3ZXJfYXJ0aWNsZV9yZWFkZXIiOiJBcnRpY2xlIHJlYWRlciIsImNoYXRfaGVscGRlc2tfdmlld2VyX29wZW5fdG9vbHRpcCI6IlZpZXcgaW4gSGVscGRlc2siLCJjaGF0X2hlbHBkZXNrX25hdmlnYXRpb25fcHJldmlvdXNfdG9vbHRpcCI6IkdvIGJhY2siLCJjaGF0X2hlbHBkZXNrX25hdmlnYXRpb25fZGVzY3JpcHRpb25fbm9uZSI6IkZpbmQgaGVscCBhcnRpY2xlcyBpbiB0aGlzIHNlY3Rpb24uIFNlbGVjdCBhbiBhcnRpY2xlIHRvIHJlYWQsIG9yIGdvIGJhY2sgZm9yIG1vcmUuIiwiY2hhdF9oZWxwZGVza19yZXN1bHRfYXJ0aWNsZXNfbm9uZSI6Ik5vIGFydGljbGUiLCJjaGF0X2hlbHBkZXNrX3Jlc3VsdF9hcnRpY2xlc19zaW5ndWxhciI6IiUxcyBhcnRpY2xlIiwiY2hhdF9oZWxwZGVza19yZXN1bHRfYXJ0aWNsZXNfcGx1cmFsIjoiJTFzIGFydGljbGVzIiwiY2hhdF9oZWxwZGVza19yZXN1bHRfYXJ0aWNsZXNfaW5fc2VjdGlvbnMiOiIlMXMgYXJ0aWNsZXMgaW4gJTJzIHNlY3Rpb25zIiwiY2hhdF9oZWxwZGVza19yZXN1bHRfc2VjdGlvbl9ub25lIjoiT3RoZXIgYXJ0aWNsZXMifSwic2VhcmNoIjp7ImJyYW5kX3dhdGVybWFya19wcmVmaXgiOiJBSSBTZWFyY2ggYnkiLCJicm93c2VfcmVjZW50X3RpdGxlIjoiUmVjZW50IHNlYXJjaGVzIiwicHJvbXB0X2NvbnRyb2xzX3RpdGxlX3NlYXJjaCI6IlNlYXJjaCBhbGwgb3VyIGNvbnRlbnQgaGVyZSIsInByb21wdF9jb250cm9sc190aXRsZV9yZXN1bHRzIjoiU2VhcmNoIHJlc3VsdHMiLCJwcm9tcHRfY29udHJvbHNfZmllbGRfcGxhY2Vob2xkZXIiOiJXaGF0IGFyZSB5b3UgbG9va2luZyBmb3I/IiwicHJvbXB0X2NvbnRyb2xzX2ZpZWxkX3N1Ym1pdCI6IlNlYXJjaCIsImVudGljZV90aXRsZSI6IlNlYXJjaCAlMXMiLCJlbnRpY2Vfc2VhcmNoIjoiVHJ5IHRob3NlIHNlYXJjaCBxdWVyaWVzOiIsInJlc3VsdHNfYW5zd2VyX3RpdGxlIjoiUXVpY2sgQW5zd2VyIiwicmVzdWx0c19hbnN3ZXJfcXVpY2tpZV90aXRsZSI6IkkgZ2VuZXJhdGVkIHRoaXMgYW5zd2VyIGZvciB5b3U6IiwicmVzdWx0c19hbnN3ZXJfcXVpY2tpZV9nZW5lcmF0ZWQiOiJBSS1nZW5lcmF0ZWQgYW5zd2VyIiwicmVzdWx0c19hbnN3ZXJfcXVpY2tpZV9nZW5lcmF0aW5nIjoiWW91ciBhbnN3ZXIgaXMgYmVpbmcgZ2VuZXJhdGVkLi4uIiwicmVzdWx0c19hbnN3ZXJfcXVpY2tpZV9zZWFyY2hpbmciOiJMb29raW5nIHVwIGZvciByZXN1bHRzLi4uIiwicmVzdWx0c19hbnN3ZXJfcXVpY2tpZV90aGlua2luZyI6IlRoaW5raW5nIiwicmVzdWx0c19hbnN3ZXJfcXVpY2tpZV9lbXB0eSI6IkkgY291bGQgbm90IGZpbmQgYW55IHJlbGV2YW50IHJlc3VsdHMgaW4gYW55IGRhdGEgc291cmNlLiBDb3VsZCB5b3UgcGxlYXNlIHJlZmluZSB5b3VyIHNlYXJjaD8iLCJyZXN1bHRzX2Fuc3dlcl9zdXBwb3J0X3F1ZXN0aW9uIjoiRG8geW91IHN0aWxsIGhhdmUgcXVlc3Rpb25zPyIsInJlc3VsdHNfYW5zd2VyX3N1cHBvcnRfY29udGFjdCI6Ik1lc3NhZ2UgdXMiLCJyZXN1bHRzX3NvdXJjZXNfdGl0bGUiOiJGb3VuZCBSZXN1bHRzIiwicmVzdWx0c19zb3VyY2VzX3Jlc3VsdF90aXRsZV9lbXB0eSI6IkRvY3VtZW50IGhhcyBubyB0aXRsZSIsInJlc3VsdHNfc291cmNlc19yZXN1bHRfcXVhbGl0eV9nb29kIjoiR29vZCBxdWFsaXR5IiwicmVzdWx0c19zb3VyY2VzX3Jlc3VsdF9kZXRhaWxzX29yaWdpbl9hbnN3ZXIiOiJBbnN3ZXIgc25pcHBldCIsInJlc3VsdHNfc291cmNlc19yZXN1bHRfZGV0YWlsc19vcmlnaW5fd2VicGFnZSI6IldlYiBwYWdlIGF0ICUxcyIsInJlc3VsdHNfc291cmNlc19yZXN1bHRfZGV0YWlsc19vcmlnaW5fZG9jdW1lbnQiOiJEb2N1bWVudCBmaWxlIiwicmVzdWx0c19zb3VyY2VzX3Jlc3VsdF9kZXRhaWxzX29yaWdpbl9oZWxwZGVzayI6IkhlbHBkZXNrIGFydGljbGUiLCJyZXN1bHRzX3NvdXJjZXNfcmVzdWx0X2RldGFpbHNfb3JpZ2luX290aGVyIjoiT3RoZXIgc291cmNlIiwicmVzdWx0c19zb3VyY2VzX3Jlc3VsdF9kZXRhaWxzX2RhdGUiOiJJbmRleGVkICUxcyIsInJlc3VsdHNfc291cmNlc19yZXN1bHRfZGV0YWlsc190YXJnZXQiOiJTZWUgb3JpZ2luYWwiLCJyZXN1bHRzX3NvdXJjZXNfcmVzdWx0X2RldGFpbHNfdGFyZ2V0X2hlbHBkZXNrIjoiU2VlIGFydGljbGUiLCJyZXN1bHRzX2Vycm9yX3RpdGxlIjoiT29wcy4gT3VyIEFJIGlzIHRvbyBidXN5ISIsInJlc3VsdHNfZXJyb3JfZXhwbGFpbiI6IldlIGNhbm5vdCBhbnN3ZXIgeW91ciBxdWVzdGlvbiBhdCB0aGUgbW9tZW50LiBUcnkgYWdhaW4gbGF0ZXIuIiwicmVzdWx0c19lcnJvcl9yZXRyeSI6IlRyeSBhc2tpbmcgYWdhaW4/In0sImNhbGwiOnsicmluZ190aXRsZV93ZWJzaXRlIjoiJTFzIHN1cHBvcnQiLCJyaW5nX3RpdGxlX2xhYmVsIjoiJTFzIGlzIGNhbGxpbmcgeW91Li4uIiwicmluZ19hY3Rpb25zX2RlY2xpbmUiOiJEZWNsaW5lIiwicmluZ19hY3Rpb25zX2FjY2VwdCI6IkFjY2VwdCIsInNjcmVlbl9sYWJlbF9hdWRpb19tdXRlZCI6IkF1ZGlvIG11dGVkIiwic2NyZWVuX2xhYmVsX3ZpZGVvX211dGVkIjoiVmlkZW8gbXV0ZWQiLCJzY3JlZW5fc3RhdHVzX2Nvbm5lY3RpbmciOiJDb25uZWN0aW5nLi4uIiwic2NyZWVuX3N0YXR1c19vbmdvaW5nIjoiT25nb2luZyIsInNjcmVlbl9hY3Rpb25fYXVkaW9fZW5hYmxlZF90b29sdGlwIjoiRGlzYWJsZSBhdWRpbyIsInNjcmVlbl9hY3Rpb25fYXVkaW9fZGlzYWJsZWRfdG9vbHRpcCI6IkVuYWJsZSBhdWRpbyIsInNjcmVlbl9hY3Rpb25fdmlkZW9fZW5hYmxlZF90b29sdGlwIjoiRGlzYWJsZSB2aWRlbyIsInNjcmVlbl9hY3Rpb25fdmlkZW9fZGlzYWJsZWRfdG9vbHRpcCI6IkVuYWJsZSB2aWRlbyIsInNjcmVlbl9hY3Rpb25fc2NyZWVuc2hhcmluZ19kaXNhYmxlZF90b29sdGlwIjoiU2hhcmUgc2NyZWVuIiwic2NyZWVuX2FjdGlvbl9zY3JlZW5zaGFyaW5nX2VuYWJsZWRfdG9vbHRpcCI6IlN0b3Agc2hhcmluZyBzY3JlZW4iLCJzY3JlZW5fYWN0aW9uX2hhbmd1cF9lbmFibGVkX3Rvb2x0aXAiOiJFbmQgY2FsbCIsInNjcmVlbl9hY3Rpb25faGFuZ3VwX2Rpc2FibGVkX3Rvb2x0aXAiOiJFbmQgY2FsbCIsInNjcmVlbl9hY3Rpb25fdG9nZ2xlX2VuYWJsZWRfdG9vbHRpcCI6IkZ1bGwgc2NyZWVuIiwic2NyZWVuX2FjdGlvbl90b2dnbGVfZGlzYWJsZWRfdG9vbHRpcCI6IkV4aXQgZnVsbCBzY3JlZW4iLCJjYWxsX2Fib3J0X3dhcm4iOiJOYXZpZ2F0aW5nIHdoZW4gYSBjYWxsIGlzIG9uZ29pbmcgd2lsbCBzdG9wIHRoZSBjYWxsLiJ9LCJicm93c2luZyI6eyJhc3Npc3RfbW91c2VfdG9vbHRpcCI6IiUxcyBpcyBhc3Npc3RpbmcgeW91IiwiY29uc2VudF90aXRsZV9sYWJlbCI6IiUxcyB3b3VsZCBsaWtlIHRvIHN0YXJ0IGEgY28tYnJvd3Npbmcgc2Vzc2lvbiIsImNvbnNlbnRfZGVzY3JpcHRpb24iOiJUaGV5IHdpbGwgZm9sbG93IGFsb25nIGFzIHlvdSBicm93c2UsIHNvIHRoZXkgY2FuIGhlbHAgeW91IGZhc3RlciBhbmQgZ3VpZGUgeW91IHN0ZXAgYnkgc3RlcC4iLCJjb25zZW50X2FjdGlvbnNfZGVjbGluZSI6Ik5vdCBub3ciLCJjb25zZW50X2FjdGlvbnNfYWNjZXB0IjoiQWxsb3cifSwibWFnbmlmeSI6eyJ0b29sdGlwX3ByZXZpb3VzIjoiUHJldmlvdXMiLCJ0b29sdGlwX25leHQiOiJOZXh0IiwidG9vbHRpcF9kb3dubG9hZCI6IkRvd25sb2FkIn0sInNkayI6eyJpbmRpY2F0b3JfbG9hZGluZyI6IkxvYWRpbmfigKYiLCJhbGVydF9jYW5ub3Rfc3RhcnQiOiJFcnJvciBzdGFydGluZyBjaGF0IiwiYWxlcnRfY2Fubm90X2Nvbm5lY3QiOiJXZSBjb3VsZCBub3QgY29ubmVjdCB0byB0aGUgY2hhdC4gVHJ5IGFnYWluIG5vdywgb3IgbGF0ZXIuIiwicHJvbXB0X25vdGlmaWNhdGlvbl9hc2siOiJXZSBjYW4gc2VuZCB5b3UgYSBub3RpZmljYXRpb24gd2hlbiB3ZSByZXBseSIsInByb21wdF9ub3RpZmljYXRpb25fcmVwbHkiOiJKdXN0IGluIGNhc2UgeW91IGxlYXZlIG9yIHdlIHJlcGx5IGxhdGVyOiIsImFjdGlvbl9kZW55IjoiTm8sIHRoYW5rcyIsImFjdGlvbl90cnlfYWdhaW4iOiJUcnkgYWdhaW4iLCJhY3Rpb25fY2FuY2VsIjoiQ2FuY2VsIiwiYWN0aW9uX2NvcHkiOiJDb3B5IiwiYWN0aW9uX25vdGlmaWNhdGlvbnNfZW5hYmxlIjoiRW5hYmxlIE5vdGlmaWNhdGlvbnMifX0nKSxvPXtfbWV0YTp0LF9zdHJpbmdzOmF9O2V4cG9ydHtlIGFzIHR9Ow=="}},"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":"client.crisp.chat/static/stylesheets/features/chat_default_23e4212.css","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:50.200Z","timestamp":1785127670200,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /static/stylesheets/features/chat_default_23e4212.css HTTP/1.1\r\nHost: client.crisp.chat\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://buvei.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-type: text/css\r\naccess-control-allow-credentials: false\r\naccess-control-allow-headers: Content-Type, Origin\r\naccess-control-allow-methods: HEAD, GET, OPTIONS\r\naccess-control-allow-origin: *\r\naccess-control-max-age: 300\r\ncache-control: public, max-age=315360000\r\ncross-origin-resource-policy: cross-origin\r\nx-content-type-options: nosniff\r\nexpires: Thu, 24 Jul 2036 04:47:50 GMT\r\nlast-modified: Tue, 21 Jul 2026 15:59:21 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\npriority: u=2,i=?0\r\nage: 30811\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: W/\"6a5f9759-3b560\"\r\ncontent-encoding: br\r\ncf-ray: a2190222ca9ec759-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":243040,"size_decoded":33558,"mime_type":"text/css","magic":"ASCII text, with very long lines (65442)","md5":"9a866e2bf4232ecac5bcb652556fa117","sha1":"b601a765a8ebf4defe348492f65eb4ac328e7b0f","sha256":"0ff0ebc2a5c8998c359fb774cfc02a3940260042271a79932b86b4228751a3ab","sha512":"0fc8279bda4d742260bfb87bb5d2fa256f551ddde73caab84fdfb8fa37151dbd20a5d43074ca84baa8c3964aa8d8a43e5fa265d664c8f9d5f19530a25c8d22eb","ssdeep":"1536:2ta5FScYvs+wG+kjKCNMPKylENeuvp4RSzdFjkkXubgaBRysZ+Zu4SuOauUAwDc/:EvvFIwDcOv5K","tlshash":"9c34315bf1c15031389b02929e1abb3d583f98f76b413db8d68073b80b892df6769764","first_seen":"2026-07-21T21:10:40.916103Z","last_seen":"2026-07-29T15:29:45.691565Z","times_seen":13,"resource_available":false,"data":"LyoqCiAqIGNyaXNwLWNsaWVudAogKiBAdmVyc2lvbiB2NC44LjcgMjNlNDIxMgogKiBAYXV0aG9yIENyaXNwIElNIFNBUwogKiBAZGF0ZSA3LzIxLzIwMjYKICovCi5jcmlzcC1jbGllbnQgLmNjLXZkOHNze3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDtib3gtc2l6aW5nOmJvcmRlci1ib3ghaW1wb3J0YW50O21hcmdpbi1pbmxpbmUtZW5kOjNweCFpbXBvcnRhbnQ7cGFkZGluZy1pbmxpbmU6M3B4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy12ZDhzcy0tcmVke2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtcmVkLW5vcm1hbCkpIWltcG9ydGFudDtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC13aGl0ZS1ub3JtYWwtZml4ZWQpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdmQ4c3MtLXdoaXRlLWZpeGVke2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsLWZpeGVkKSkhaW1wb3J0YW50O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbC1maXhlZCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy12ZDhzcy0tZGVmYXVsdHtsaW5lLWhlaWdodDoyMnB4O2JvcmRlci1yYWRpdXM6MjJweCFpbXBvcnRhbnQ7bWluLXdpZHRoOjIycHghaW1wb3J0YW50O2ZvbnQtc2l6ZToxMnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy12ZDhzcy0tc21hbGx7bGluZS1oZWlnaHQ6MTZweDtib3JkZXItcmFkaXVzOjE2cHghaW1wb3J0YW50O21pbi13aWR0aDoxNnB4IWltcG9ydGFudDtmb250LXNpemU6MTAuNHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xN2J6ZHttaW4taGVpZ2h0OjMycHg7bGluZS1oZWlnaHQ6MzJweDtwb2ludGVyLWV2ZW50czphdXRvIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjE2cHghaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnQ7bWFyZ2luOjAgMXB4IWltcG9ydGFudDtwYWRkaW5nOjAgMTJweCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE3YnpkIC5jYy15eHgzZSwuY3Jpc3AtY2xpZW50IC5jYy0xN2J6ZCAuY2MtanZrOGosLmNyaXNwLWNsaWVudCAuY2MtMTdiemQgLmNjLTF2NTRue3otaW5kZXg6MSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTdiemQgLmNjLXl4eDNle2hlaWdodDoxNnB4O2JhY2tncm91bmQtY29sb3I6Y3VycmVudENvbG9yIWltcG9ydGFudDtmbGV4Om5vbmUhaW1wb3J0YW50O3dpZHRoOjE2cHghaW1wb3J0YW50O21hcmdpbi1pbmxpbmU6LTJweCA4cHghaW1wb3J0YW50O2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTdiemQgLmNjLWp2azhqe3doaXRlLXNwYWNlOm5vd3JhcCFpbXBvcnRhbnQ7dGV4dC1vdmVyZmxvdzplbGxpcHNpcyFpbXBvcnRhbnQ7Zm9udC1zaXplOjEycHghaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTdiemQgLmNjLTF2NTRue2ZsZXg6bm9uZSFpbXBvcnRhbnQ7bWFyZ2luLWlubGluZTo3cHggLTJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTdiemQ6bm90KC5jYy0xN2J6ZC0tYWN0aXZlKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLWxpZ2h0KSwgLjE0KSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTdiemQ6bm90KC5jYy0xN2J6ZC0tYWN0aXZlKTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1saWdodCksIC4yMSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE3YnpkLS1jaGF0IC5jYy15eHgzZXtoZWlnaHQ6MTdweDt3aWR0aDoxN3B4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xN2J6ZC0tYWN0aXZlIC5jYy15eHgzZSwuY3Jpc3AtY2xpZW50IC5jYy0xN2J6ZC0taWNvbi1vbmx5IC5jYy15eHgzZXtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xN2J6ZC0taWNvbi1vbmx5IC5jYy15eHgzZXttYXJnaW4taW5saW5lOi0zcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE3YnpkLS1kaXNhYmxlZHtwb2ludGVyLWV2ZW50czpub25lIWltcG9ydGFudDtvcGFjaXR5Oi4zNSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTdiemQ6bm90KC5jYy0xN2J6ZC0tbGF5b3V0LWNvbG9yaXplZCkgLmNjLXl4eDNlLC5jcmlzcC1jbGllbnQgLmNjLTE3YnpkOm5vdCguY2MtMTdiemQtLWxheW91dC1jb2xvcml6ZWQpIC5jYy1qdms4antjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC1ibGFjay1ub3JtYWwpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTdiemQ6bm90KC5jYy0xN2J6ZC0tbGF5b3V0LWNvbG9yaXplZCk6bm90KC5jYy0xN2J6ZC0tYWN0aXZlKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktbGlnaHQpLCAuNikhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE3YnpkOm5vdCguY2MtMTdiemQtLWxheW91dC1jb2xvcml6ZWQpOm5vdCguY2MtMTdiemQtLWFjdGl2ZSk6YWN0aXZle2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1saWdodCksIC44NSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE3YnpkOm5vdCguY2MtMTdiemQtLWxheW91dC1jb2xvcml6ZWQpLmNjLTE3YnpkLS1hY3RpdmUgLmNjLXl4eDNlLC5jcmlzcC1jbGllbnQgLmNjLTE3YnpkOm5vdCguY2MtMTdiemQtLWxheW91dC1jb2xvcml6ZWQpLmNjLTE3YnpkLS1hY3RpdmUgLmNjLWp2azhqLC5jcmlzcC1jbGllbnQgLmNjLTE3YnpkLS1sYXlvdXQtY29sb3JpemVkIC5jYy15eHgzZSwuY3Jpc3AtY2xpZW50IC5jYy0xN2J6ZC0tbGF5b3V0LWNvbG9yaXplZCAuY2MtanZrOGp7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLXJldmVyc2UpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTdiemQtLWxheW91dC1jb2xvcml6ZWQuY2MtMTdiemQtLWljb24tb25seS5jYy0xN2J6ZC0tYWN0aXZle2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE3YnpkLS1sYXlvdXQtY29sb3JpemVkLmNjLTE3YnpkLS1pY29uLW9ubHkuY2MtMTdiemQtLWFjdGl2ZSAuY2MteXh4M2V7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtYmxhY2stbm9ybWFsKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWRqYmF3e3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDtwb2ludGVyLWV2ZW50czpub25lIWltcG9ydGFudDt6LWluZGV4OjEhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnQ7bGlzdC1zdHlsZS10eXBlOm5vbmUhaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWRqYmF3IC5jYy0xcDM5ZCwuY3Jpc3AtY2xpZW50IC5jYy1kamJhdyAuY2MtM2V1MDIsLmNyaXNwLWNsaWVudCAuY2MtZGpiYXcgLmNjLTE0NWIxe3BvaW50ZXItZXZlbnRzOmF1dG8haW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MjBweCFpbXBvcnRhbnQ7cGFkZGluZzo0cHghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtZGpiYXcgLmNjLTFwMzlkLC5jcmlzcC1jbGllbnQgLmNjLWRqYmF3IC5jYy0zZXUwMntmbGV4OjEhaW1wb3J0YW50O21pbi13aWR0aDo0MHB4IWltcG9ydGFudDtwYWRkaW5nLWlubGluZTowIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1kamJhdyAuY2MtMTQ1YjF7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwpLCAuMjIpIWltcG9ydGFudDtmbGV4OjAgYXV0byFpbXBvcnRhbnQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4xcyBsaW5lYXIhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWRqYmF3Om5vdCguY2MtZGpiYXctLWxheW91dC1jb2xvcml6ZWQpIC5jYy0xNDViMXtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktdWx0cmEtbGlnaHQpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtNmZ2ZWwgLmNjLWxibXhxey1tb3otY29sdW1uLWdhcDoxMnB4IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O2NvbHVtbi1nYXA6MTJweCFpbXBvcnRhbnQ7cGFkZGluZy10b3A6OXB4IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTZmdmVsIC5jYy1sYm14cSAuY2MtMTNtaHV7ZmxleDpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy02ZnZlbCAuY2MtbGJteHEgLmNjLTE4Yzlje2ZsZXg6MCBhdXRvIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy02ZnZlbCAuY2MtMTNtaHUsLmNyaXNwLWNsaWVudCAuY2MtNmZ2ZWwgLmNjLTEzbWh1IC5jYy1vcnhkc3toZWlnaHQ6NDJweDtib3JkZXItcmFkaXVzOjQycHghaW1wb3J0YW50O3dpZHRoOjQycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTZmdmVsIC5jYy0xM21odSAuY2Mtb3J4ZHN7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtNmZ2ZWwgLmNjLTE4Yzlje2xpbmUtaGVpZ2h0OjIwcHg7dGV4dC1hbGlnbjpzdGFydCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtNmZ2ZWwgLmNjLTE4YzljIC5jYy0xeHJsdSwuY3Jpc3AtY2xpZW50IC5jYy02ZnZlbCAuY2MtMThjOWMgLmNjLTE5aGJye3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXMhaW1wb3J0YW50O3doaXRlLXNwYWNlOm5vd3JhcCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy02ZnZlbCAuY2MtMThjOWMgLmNjLTF4cmx1e2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDtmb250LXNpemU6MTQuNHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy02ZnZlbCAuY2MtMThjOWMgLmNjLTE5aGJye2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWdyZXktbm9ybWFsKSkhaW1wb3J0YW50O21hcmdpbi10b3A6MnB4IWltcG9ydGFudDtmb250LXNpemU6MTIuOHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy02ZnZlbC0tbGF5b3V0LWNvbG9yaXplZCAuY2MtMThjOWMgLmNjLTF4cmx1LC5jcmlzcC1jbGllbnQgLmNjLTZmdmVsLS1sYXlvdXQtY29sb3JpemVkIC5jYy0xOGM5YyAuY2MtMTloYnJ7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLXJldmVyc2UpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtazlkcHl7bGluZS1oZWlnaHQ6MH0uY3Jpc3AtY2xpZW50IC5jYy1rOWRweSAuY2MtMXJ2b3Z7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWs5ZHB5IC5jYy0xd2l2Zntwb2ludGVyLWV2ZW50czphdXRvIWltcG9ydGFudDtmbG9hdDpsZWZ0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rOWRweSAuY2MtMXdpdmYsLmNyaXNwLWNsaWVudCAuY2MtazlkcHkgLmNjLTF3aXZmICp7Y3Vyc29yOmRlZmF1bHQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWs5ZHB5IC5jYy0xd2l2ZiAuY2MtMjQ2cnosLmNyaXNwLWNsaWVudCAuY2MtazlkcHkgLmNjLTF3aXZmIC5jYy0ydGo1Z3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtazlkcHkgLmNjLTF3aXZmIC5jYy0yNDZyentmaWxsOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rOWRweS0tc3RhdHVzLWluaXRpYWx7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O21hcmdpbi1ib3R0b206MTFweCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtazlkcHktLXN0YXR1cy1pbml0aWFsIC5jYy0xcnZvdnttYXJnaW46M3B4IDAgM3B4IDIuNXB4IWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtazlkcHktLXN0YXR1cy1pbml0aWFsIC5jYy0xcnZvdiAuY2MtMXdpdmZ7bWFyZ2luLWxlZnQ6LTNweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtazlkcHktLXN0YXR1cy1pbml0aWFsIC5jYy0xcnZvdiAuY2MtMXdpdmYgY2lyY2xlW2ZpbGw9YmxhY2tde2N4OjU3cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWs5ZHB5LS1zdGF0dXMtaW5pdGlhbCAuY2MtMXdpdmYsLmNyaXNwLWNsaWVudCAuY2MtazlkcHktLXN0YXR1cy1pbml0aWFsIC5jYy0xd2l2ZiAuY2MtMjQ2cnosLmNyaXNwLWNsaWVudCAuY2MtazlkcHktLXN0YXR1cy1pbml0aWFsIC5jYy0xd2l2ZiAuY2MtMnRqNWcsLmNyaXNwLWNsaWVudCAuY2MtazlkcHktLXN0YXR1cy1pbml0aWFsIC5jYy0xd2l2ZiAuY2Mtcm85MGh7aGVpZ2h0OjQycHg7d2lkdGg6NDJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtazlkcHktLXN0YXR1cy1pbml0aWFsIC5jYy0xd2l2ZiAuY2Mtcm85MGggLmNjLXp3dmVve2N4OjIxcHghaW1wb3J0YW50O2N5OjIxcHghaW1wb3J0YW50O3I6MjFweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtazlkcHktLXN0YXR1cy1hZ2VudHt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OjlweCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtazlkcHktLXN0YXR1cy1hZ2VudCAuY2MtMXdpdmYsLmNyaXNwLWNsaWVudCAuY2MtazlkcHktLXN0YXR1cy1hZ2VudCAuY2MtMXdpdmYgLmNjLTI0NnJ6LC5jcmlzcC1jbGllbnQgLmNjLWs5ZHB5LS1zdGF0dXMtYWdlbnQgLmNjLTF3aXZmIC5jYy0ydGo1ZywuY3Jpc3AtY2xpZW50IC5jYy1rOWRweS0tc3RhdHVzLWFnZW50IC5jYy0xd2l2ZiAuY2Mtcm85MGh7aGVpZ2h0OjM2cHg7d2lkdGg6MzZweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtazlkcHktLXN0YXR1cy1hZ2VudCAuY2MtMXdpdmYgLmNjLXJvOTBoIC5jYy16d3Zlb3tjeDoxOHB4IWltcG9ydGFudDtjeToxOHB4IWltcG9ydGFudDtyOjE4cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWs5ZHB5LS1zdGF0dXMtb25nb2luZ3tmbGV4Om5vbmUhaW1wb3J0YW50O21hcmdpbi1pbmxpbmUtZW5kOjExcHghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rOWRweS0tc3RhdHVzLW9uZ29pbmcgLmNjLTFydm92IC5jYy0xd2l2ZiBjaXJjbGVbZmlsbD1ibGFja117Y3g6MjcuNXB4IWltcG9ydGFudDtjeToyNi41cHghaW1wb3J0YW50O3I6Ni41cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWs5ZHB5LS1zdGF0dXMtb25nb2luZyAuY2MtMXdpdmZ7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWs5ZHB5LS1zdGF0dXMtb25nb2luZyAuY2MtMXdpdmYsLmNyaXNwLWNsaWVudCAuY2MtazlkcHktLXN0YXR1cy1vbmdvaW5nIC5jYy0xd2l2ZiAuY2MtMjQ2cnosLmNyaXNwLWNsaWVudCAuY2MtazlkcHktLXN0YXR1cy1vbmdvaW5nIC5jYy0xd2l2ZiAuY2MtMnRqNWcsLmNyaXNwLWNsaWVudCAuY2MtazlkcHktLXN0YXR1cy1vbmdvaW5nIC5jYy0xd2l2ZiAuY2Mtcm85MGh7aGVpZ2h0OjMwcHg7d2lkdGg6MzBweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtazlkcHktLXN0YXR1cy1vbmdvaW5nIC5jYy0xd2l2ZiAuY2Mtcm85MGggLmNjLXp3dmVve2N4OjE1cHghaW1wb3J0YW50O2N5OjE1cHghaW1wb3J0YW50O3I6MTVweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtazlkcHktLXN0YXR1cy1vbmdvaW5nIC5jYy0xd2l2ZiAuY2MtMTJydDR7aGVpZ2h0OjlweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZWVuLWxpZ2h0KSkhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTAwJSFpbXBvcnRhbnQ7d2lkdGg6OXB4IWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7Ym90dG9tOi0xcHghaW1wb3J0YW50O3JpZ2h0Oi0ycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE4eWp3e3RleHQtYWxpZ246c3RhcnQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE4eWp3IC5jYy1lb2x1ZiwuY3Jpc3AtY2xpZW50IC5jYy0xOHlqdyAuY2MtMThjZ2IsLmNyaXNwLWNsaWVudCAuY2MtMTh5ancgLmNjLWVoYXphe2xldHRlci1zcGFjaW5nOi4ycHghaW1wb3J0YW50O3doaXRlLXNwYWNlOm5vd3JhcCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTh5ancgLmNjLWVvbHVmLC5jcmlzcC1jbGllbnQgLmNjLTE4eWp3IC5jYy0xeG5vdCwuY3Jpc3AtY2xpZW50IC5jYy0xOHlqdyAuY2MtMThjZ2J7bGluZS1oZWlnaHQ6MThweDtmb250LXNpemU6MTNweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTh5ancgLmNjLWVvbHVmLC5jcmlzcC1jbGllbnQgLmNjLTE4eWp3IC5jYy0xeG5vdCwuY3Jpc3AtY2xpZW50IC5jYy0xOHlqdyAuY2MtZWhhemF7dGV4dC1vdmVyZmxvdzplbGxpcHNpcyFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xOHlqdyAuY2MtZW9sdWYsLmNyaXNwLWNsaWVudCAuY2MtMTh5ancgLmNjLTF4bm90e2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTh5ancgLmNjLTF4bm90IC5jYy0xOGNnYnttYXJnaW4taW5saW5lLWVuZDo0cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE4eWp3IC5jYy1lb2x1ZntwYWRkaW5nOjAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE4eWp3IC5jYy0xd2M0dHttYXJnaW4tdG9wOjNweCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTh5ancgLmNjLTF3YzR0IC5jYy11aGx2NXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTh5ancgLmNjLTF3YzR0IC5jYy11aGx2NS0tb25saW5lOmJlZm9yZXtoZWlnaHQ6OXB4O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JlZW4tbGlnaHQpKSFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czo5cHghaW1wb3J0YW50O2ZsZXg6bm9uZSFpbXBvcnRhbnQ7d2lkdGg6OXB4IWltcG9ydGFudDttYXJnaW4taW5saW5lLWVuZDo0cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE4eWp3IC5jYy0xd2M0dCAuY2MtdWhsdjUtLWF3YXk6YmVmb3Jley0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjI5JTIyJTIwaGVpZ2h0JTNEJTIyOSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDklMjA5JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNOC4xNTYlMjA0LjVhMy42NTYlMjAzLjY1NiUyMDAlMjAxJTIwMS03LjMxMiUyMDAlMjAzLjY1NiUyMDMuNjU2JTIwMCUyMDAlMjAxJTIwNy4zMTIlMjAwTTAlMjA0LjVhNC41JTIwNC41JTIwMCUyMDElMjAwJTIwOSUyMDAlMjA0LjUlMjA0LjUlMjAwJTIwMCUyMDAtOSUyMDBtNC4wNzgtMi4zOVY0LjVjMCUyMC4xNC4wNy4yNzIuMTg4LjM1MmwxLjY4OCUyMDEuMTI1YS40Mi40MiUyMDAlMjAwJTIwMCUyMC41ODUtLjExOC40Mi40MiUyMDAlMjAwJTIwMC0uMTE4LS41ODZsLTEuNS0uOTk4VjIuMTA5YS40Mi40MiUyMDAlMjAxJTIwMC0uODQzJTIwMCUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7aGVpZ2h0OjEwcHg7d2lkdGg6MTBweCFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6Y3VycmVudENvbG9yIWltcG9ydGFudDttYXJnaW4taW5saW5lLWVuZDo1cHghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDstd2Via2l0LW1hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDttYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7bWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50Oy13ZWJraXQtbWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDttYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE4eWp3IC5jYy0xd2M0dCAuY2MtdWhsdjU6YmVmb3Jle2NvbnRlbnQ6IiIhaW1wb3J0YW50O21hcmdpbi1ib3R0b206LTFweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTh5ancgLmNjLTF3YzR0LC5jcmlzcC1jbGllbnQgLmNjLTE4eWp3IC5jYy0xd2M0dCAuY2MtZWhhemF7bGluZS1oZWlnaHQ6MTZweDtmb250LXNpemU6MTEuNnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xOHlqdyAuY2MtMXdjNHQgLmNjLWVoYXphe21hcmdpbjowIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xOHlqdy0tc3RhdHVzLWFnZW50IC5jYy0xd2M0dCAuY2MtdWhsdjV7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE4eWp3Om5vdCguY2MtMTh5anctLWxheW91dC1jb2xvcml6ZWQpIC5jYy0xd2M0dCAuY2MtdWhsdjV7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtZ3JleS1ub3JtYWwpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTh5anctLWxheW91dC1jb2xvcml6ZWQgLmNjLWVvbHVmLC5jcmlzcC1jbGllbnQgLmNjLTE4eWp3LS1sYXlvdXQtY29sb3JpemVkIC5jYy0xeG5vdCwuY3Jpc3AtY2xpZW50IC5jYy0xOHlqdy0tbGF5b3V0LWNvbG9yaXplZCAuY2MtMXdjNHQgLmNjLXVobHY1e2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS1yZXZlcnNlKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE1bXExe3BvaW50ZXItZXZlbnRzOmF1dG8haW1wb3J0YW50O21hcmdpbi1pbmxpbmUtc3RhcnQ6N3B4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNW1xMSAuY2MtMWk2YWl7aGVpZ2h0OjI0cHg7Ym9yZGVyLXJhZGl1czo3cHghaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnQ7d2lkdGg6MjRweCFpbXBvcnRhbnQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4xcyBlYXNlLWluLW91dCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNW1xMSAuY2MtMWk2YWkgLmNjLTExZXpyey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxMiUyMiUyMGhlaWdodCUzRCUyMjEyJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTIlMjAxMiUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTUuNTc2JTIwOC44MjRhLjYuNiUyMDAlMjAwJTIwMCUyMC44NSUyMDBsMy42LTMuNmEuNi42JTIwMCUyMDAlMjAwLS44NS0uODVMNiUyMDcuNTUxJTIwMi44MjQlMjA0LjM3NmEuNi42JTIwMCUyMDAlMjAwLS44NS44NWwzLjYlMjAzLjZ6JTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTtoZWlnaHQ6MTNweDt3aWR0aDoxM3B4IWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50Oy13ZWJraXQtbWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O21hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDstd2Via2l0LW1hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDttYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50O21hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTVtcTEgLmNjLTFlZzdne3BvaW50ZXItZXZlbnRzOm5vbmUhaW1wb3J0YW50O3RvcDoxMDAlIWltcG9ydGFudDt6LWluZGV4OjEhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50O3BhZGRpbmc6MCAycHghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O2luc2V0LWlubGluZTowIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNW1xMSAuY2MtMWVnN2cgLmNjLXB0NzAxe2FuaW1hdGlvbi1uYW1lOmNjLTh6dzV1O2FuaW1hdGlvbi1kdXJhdGlvbjouMnM7YW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO2JhY2tncm91bmQ6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSkhaW1wb3J0YW50O2JvcmRlcjouNXB4IHNvbGlkIHJnYih2YXIoLS1jcmlzcC1jb2xvci1zZXBhcmF0b3Itbm9ybWFsKSkhaW1wb3J0YW50O2N1cnNvcjpkZWZhdWx0IWltcG9ydGFudDtwb2ludGVyLWV2ZW50czphdXRvIWltcG9ydGFudDtib3gtc2hhZG93OjAgM3B4IDEwcHggMCByZ2IodmFyKC0tY3Jpc3AtY29sb3Itc2hhZG93LW5vcm1hbCksIC4wNiksIDAgMCAycHggMnB4IHJnYih2YXIoLS1jcmlzcC1jb2xvci1zaGFkb3ctbm9ybWFsKSwgLjAxKSFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czoxNHB4IWltcG9ydGFudDtmbGV4LXdyYXA6bm93cmFwIWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudDttYXJnaW4tdG9wOjRweCFpbXBvcnRhbnQ7cGFkZGluZzo0cHggOXB4IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE1bXExIC5jYy0xZWc3ZyAuY2MtcHQ3MDEgLmNjLW9wazl0e2hlaWdodDozNnB4O2N1cnNvcjpwb2ludGVyIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjEycHghaW1wb3J0YW50O2ZsZXg6bm9uZSFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudDt3aWR0aDozNnB4IWltcG9ydGFudDt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjFzIGxpbmVhciFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNW1xMSAuY2MtMWVnN2cgLmNjLXB0NzAxIC5jYy1vcGs5dDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktdWx0cmEtbGlnaHQpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTVtcTEgLmNjLTFlZzdnIC5jYy1wdDcwMSAuY2Mtb3BrOXQ6YWN0aXZle2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsIHJnYmEodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LXVsdHJhLWxpZ2h0KSwgMSkgOTglLCByZ2JhKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbm9ybWFsKSwgMSkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNW1xMSAuY2MtMWVnN2cgLmNjLXB0NzAxIC5jYy1vcGs5dDpob3ZlciAuY2MtMXBiOHN7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtNTAwKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE1bXExIC5jYy0xZWc3ZyAuY2MtcHQ3MDEgLmNjLW9wazl0Om5vdCg6aG92ZXIpIC5jYy0xcGI4c3tiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktbm9ybWFsKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE1bXExIC5jYy0xZWc3ZyAuY2MtcHQ3MDEgLmNjLW9wazl0IC5jYy0xcGI4c3toZWlnaHQ6MTZweDtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnQ7d2lkdGg6MTZweCFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7bWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50O21hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7bWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNW1xMSAuY2MtMWVnN2cgLmNjLXB0NzAxIC5jYy1vcGs5dC0tZW1haWwgLmNjLTFwYjhzey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxNCUyMiUyMGhlaWdodCUzRCUyMjE0JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTQlMjAxNCUyMiUzRSUzQ2NsaXBQYXRoJTIwaWQlM0QlMjJhJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTEuNTQ4JTIwNi45MDclMjAxMi44MiUyMDguMThsLTMuMjc1JTIwMy4yNzVIOC4yNzN2LTEuMjczem0xLjE4LTQuNTJ2MS41NGwtNi4yNTUlMjA2LjI1NWgtNS4yQy41NyUyMDEwLjE4MiUyMDAlMjA5LjYxMiUyMDAlMjA4LjkwOVYyLjM4OGw2LjAyNyUyMDMuNzY2YS42NC42NCUyMDAlMjAwJTIwMCUyMC42NzQlMjAwem0uMTMxJTIwMy4zNGMuMDgxJTIwMCUyMC4xNjMuMDMxLjIyNS4wOTRsLjgyMy44MjJhLjMyLjMyJTIwMCUyMDAlMjAxJTIwMCUyMC40NWwtLjYzNi42MzctMS4yNzMtMS4yNzMuNjM2LS42MzZhLjMyLjMyJTIwMCUyMDAlMjAxJTIwLjIyNS0uMDk0TTExLjQ1NSUyMDBjLjY1MSUyMDAlMjAxLjE4My40OTIlMjAxLjI1NyUyMDEuMTI0TDYuMzY0JTIwNS4wOS4wMTQlMjAxLjEyNEExLjI3JTIwMS4yNyUyMDAlMjAwJTIwMSUyMDEuMjc0JTIwMHolMjIlMkYlM0UlM0MlMkZjbGlwUGF0aCUzRSUzQ2clMjBjbGlwLXBhdGglM0QlMjJ1cmwlMjglMjNhJTI5JTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MCUyMDEuNSUyOSUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTAlMjAwaDE0djExLjQ1NUgweiUyMiUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UpOy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNW1xMSAuY2MtMWVnN2cgLmNjLXB0NzAxIC5jYy1vcGs5dC0tcGhvbmUgLmNjLTFwYjhzey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxNCUyMiUyMGhlaWdodCUzRCUyMjE0JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTQlMjAxNCUyMiUzRSUzQ2NsaXBQYXRoJTIwaWQlM0QlMjJhJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMi45MSUyMDBhMS41NiUyMDEuNTYlMjAwJTIwMCUyMDElMjAxLjU1MSUyMDEuMzc5bC4yMjUlMjAxLjk2NWMuMDU1LjQ3NS0uMTA3Ljk0Mi0uNDQzJTIwMS4yNzdMMi44JTIwNi4wNjJhMTEuNyUyMDExLjclMjAwJTIwMCUyMDAlMjAyLjE2MiUyMDIuOTc2Yy44NjYuODY4JTIwMS44NyUyMDEuNiUyMDIuOTc2JTIwMi4xNjJsMS40NC0xLjQ0M2ExLjU1JTIwMS41NSUyMDAlMjAwJTIwMSUyMDEuMjc4LS40NDNsMS45NjUuMjI1QTEuNTYlMjAxLjU2JTIwMCUyMDAlMjAxJTIwMTQlMjAxMS4wODl2MS4zNWMwJTIwLjg4LS43MzMlMjAxLjYxMy0xLjYxMyUyMDEuNTU4YTEzLjIlMjAxMy4yJTIwMCUyMDAlMjAxLTguNTMyLTMuODUyQTEzLjIlMjAxMy4yJTIwMCUyMDAlMjAxJTIwLjAwMyUyMDEuNjEzQy0uMDUyLjczMy42OCUyMDAlMjAxLjU2JTIwMHptNC44MjIuMDM2LjEwMi4wMDVhNy4wMiUyMDcuMDIlMjAwJTIwMCUyMDElMjA2LjEyMiUyMDYuMDkyLjc4NC43ODQlMjAwJTIwMCUyMDEtLjc4Ljg3My43Ny43NyUyMDAlMjAwJTIwMS0uNzY3LS42NyUyMDUuNDQlMjA1LjQ0JTIwMCUyMDAlMjAwLTEuMzY4LTIuOTg5QTUuNDUlMjA1LjQ1JTIwMCUyMDAlMjAwJTIwNy42MzUlMjAxLjU5YS43MzUuNzM1JTIwMCUyMDAlMjAxLS42NDEtLjczNVYuNzg4YzAtLjQ0OC4zOTMtLjguODQtLjc0N3ptLjAyJTIwMy4xNjNxLjA4Ny4wMDEuMTc1LjAyM2EzLjklMjAzLjklMjAwJTIwMCUyMDElMjAyLjg0JTIwMi44MS43ODIuNzgyJTIwMCUyMDAlMjAxLS43NTguOTc0Yy0uMzY4JTIwMC0uNjYyLS4yNjMtLjc2LS42MThhMi4zNCUyMDIuMzQlMjAwJTIwMCUyMDAtMS42NTQtMS42NGMtLjM0NC0uMDkzLS42MDEtLjM3Ny0uNjAxLS43MzRWMy45NWMwLS40MjcuMzUzLS43NTQuNzU4LS43NSUyMiUyRiUzRSUzQyUyRmNsaXBQYXRoJTNFJTNDZyUyMGNsaXAtcGF0aCUzRCUyMnVybCUyOCUyM2ElMjklMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0wJTIwMGgxNHYxNEgweiUyMiUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UpOy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNW1xMSAuY2MtMWVnN2cgLmNjLXB0NzAxIC5jYy1vcGs5dC0tbWVzc2VuZ2VyIC5jYy0xcGI4c3stLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMTQlMjIlMjBoZWlnaHQlM0QlMjIxNCUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE0JTIwMTQlMjIlM0UlM0NjbGlwUGF0aCUyMGlkJTNEJTIyYSUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTclMjAwYzMuODYlMjAwJTIwNyUyMDIuOTgzJTIwNyUyMDYuNjVzLTMuMTQlMjA2LjY1LTclMjA2LjY1YTcuMyUyMDcuMyUyMDAlMjAwJTIwMS0yLjA0NS0uMjk1bC0xLjg0LjkyYS43MDIuNzAyJTIwMCUyMDAlMjAxLTEuMDE1LS42MjhWMTEuMzlDLjc2MiUyMDEwLjE0MiUyMDAlMjA4LjQzMSUyMDAlMjA2LjY1JTIwMCUyMDIuOTgzJTIwMy4xNCUyMDAlMjA3JTIwMG00LjklMjA0LjYwOEw4LjIyNSUyMDYuMjQyJTIwNi42NzIlMjA1YS43LjclMjAwJTIwMCUyMDAtLjkzMi4wNTJMMi4xJTIwOC42OTJsMy42NzUtMS42MzNMNy4zMjglMjA4LjNhLjcuNyUyMDAlMjAwJTIwMCUyMC45MzItLjA1M3olMjIlMkYlM0UlM0MlMkZjbGlwUGF0aCUzRSUzQ2clMjBjbGlwLXBhdGglM0QlMjJ1cmwlMjglMjNhJTI5JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMCUyMDBoMTR2MTRIMHolMjIlMkYlM0UlM0MlMkZnJTNFJTNDJTJGc3ZnJTNFKTstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTVtcTEgLmNjLTFlZzdnIC5jYy1wdDcwMSAuY2Mtb3BrOXQtLXRlbGVncmFtIC5jYy0xcGI4c3stLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMTQlMjIlMjBoZWlnaHQlM0QlMjIxNCUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE0JTIwMTQlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMm01LjI2NyUyMDEyLjI5LjIxNy0zLjI4NiUyMDUuOTY2LTUuMzc2Yy4yNjQtLjI0LS4wNTUtLjM1Ny0uNDA0LS4xNDdMMy42ODIlMjA4LjEzNC40OTclMjA3LjEyNGMtLjY4My0uMTk0LS42OS0uNjY4LjE1Ni0xLjAxbDEyLjQwNS00Ljc4NWMuNTY3LS4yNTYlMjAxLjExLjE0Ljg5MyUyMDEuMDFsLTIuMTEzJTIwOS45NWMtLjE0Ny43MDctLjU3NS44NzgtMS4xNjUuNTUybC0zLjIxNi0yLjM3Ny0xLjU0NSUyMDEuNDk5Yy0uMTguMTc5LS4zMjcuMzI2LS42NDUuMzI2JTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTVtcTEgLmNjLTFlZzdnIC5jYy1wdDcwMSAuY2Mtb3BrOXQtLXR3aXR0ZXIgLmNjLTFwYjhzey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxNCUyMiUyMGhlaWdodCUzRCUyMjE0JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTQlMjAxNCUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTExLjA2MS42NWgyLjE0Nkw4LjQ5NSUyMDYuMDE1JTIwMTQlMjAxMy4yOTJIOS42OEw2LjI5OCUyMDguODdsLTMuODcyJTIwNC40MjJILjI4bDQuOTkyLTUuNzM4TDAlMjAuNjVoNC40MjdsMy4wNTYlMjA0LjA0em0tLjc1MSUyMDExLjM4M2gxLjE5TDMuODAyJTIwMS44NjNIMi41MjR6JTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTVtcTEgLmNjLTFlZzdnIC5jYy1wdDcwMSAuY2Mtb3BrOXQtLXdoYXRzYXBwIC5jYy0xcGI4c3stLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMTQlMjIlMjBoZWlnaHQlM0QlMjIxNCUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE0JTIwMTQlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMm0uMDAzJTIwMTQlMjAuOTQ2LTMuNDc4YTclMjA3JTIwMCUyMDElMjAxJTIwMi41MyUyMDIuNTN6bTQuNDctMTAuMjg0YS43LjclMjAwJTIwMCUyMDAtLjI1OS4wNyUyMDElMjAxJTIwMCUyMDAlMjAwLS4yMDYuMTZjLS4wODQuMDc4LS4xMzEuMTQ3LS4xODIuMjEzYTEuOSUyMDEuOSUyMDAlMjAwJTIwMC0uMzk2JTIwMS4xNzVjLjAwMS4zNDMuMDkxLjY3Ny4yMzEuOTkuMjg2LjYzLjc1NyUyMDEuMjk5JTIwMS4zOCUyMDEuOTE4LjE1LjE1LjI5Ni4zLjQ1My40MzlhNi42JTIwNi42JTIwMCUyMDAlMjAwJTIwMi42ODglMjAxLjQzMmwuMzk5LjA2Yy4xMy4wMDguMjU5LS4wMDIuMzg5LS4wMDguMjA0LS4wMS40MDMtLjA2Ni41ODMtLjE2Mi4xMTYtLjA2Mi4xNy0uMDkyLjI2OC0uMTU0bC4wODgtLjA2M2ExLjYlMjAxLjYlMjAwJTIwMCUyMDAlMjAuMjMtLjIwMi44LjglMjAwJTIwMCUyMDAlMjAuMTQ4LS4yMTElMjAyJTIwMiUyMDAlMjAwJTIwMCUyMC4xMzEtLjUxM2MuMDE3LS4xMzkuMDEyLS4yMTQuMDEtLjI2MS0uMDAzLS4wNzUtLjA2NS0uMTUzLS4xMzMtLjE4NmwtLjQwNy0uMTgycy0uNjEtLjI2Ni0uOTgxLS40MzVhLjQuNCUyMDAlMjAwJTIwMC0uMTI0LS4wMjkuMzQuMzQlMjAwJTIwMCUyMDAtLjI2NS4wOXYtLjAwMmMtLjAwMyUyMDAtLjA1LjA0LS41NTYuNjUzYS4yNS4yNSUyMDAlMjAwJTIwMS0uMjU4LjA5JTIwMSUyMDElMjAwJTIwMCUyMDEtLjEzMy0uMDQ1bC0uMTc3LS4wNzctLjAwMy0uMDAxYTQuMiUyMDQuMiUyMDAlMjAwJTIwMS0xLjEtLjdjLS4wODgtLjA3Ny0uMTctLjE2MS0uMjUzLS4yNDJhNC40JTIwNC40JTIwMCUyMDAlMjAxLS43MTQtLjg4OGwtLjA0Mi0uMDY2YS43LjclMjAwJTIwMCUyMDEtLjA3MS0uMTQ0Yy0uMDI3LS4xMDMuMDQzLS4xODUuMDQzLS4xODVzLjE3LS4xODcuMjQ5LS4yODdxLjA5OS0uMTI2LjE4NC0uMjYyYy4wODItLjEzMy4xMDgtLjI2OS4wNjUtLjM3NWE1OCUyMDU4JTIwMCUyMDAlMjAwLS42MDgtMS40MjhjLS4wNDEtLjA5NC0uMTYzLS4xNjEtLjI3NS0uMTc1bC0uMTEzLS4wMWEyJTIwMiUyMDAlMjAwJTIwMC0uMjgyLjAwMnolMjIlMkYlM0UlM0MlMkZzdmclM0UpOy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNW1xMSAuY2MtMWVnN2cgLmNjLXB0NzAxIC5jYy1vcGs5dC0taW5zdGFncmFtIC5jYy0xcGI4c3stLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMTQlMjIlMjBoZWlnaHQlM0QlMjIxNCUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE0JTIwMTQlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk05LjI0JTIwN2EyLjI0JTIwMi4yNCUyMDAlMjAxJTIwMS00LjQ4JTIwMCUyMDIuMjQlMjAyLjI0JTIwMCUyMDAlMjAxJTIwNC40OCUyMDBNMTQlMjAzLjkydjYuMTZBMy45MjQlMjAzLjkyNCUyMDAlMjAwJTIwMSUyMDEwLjA4JTIwMTRIMy45MkEzLjkyNCUyMDMuOTI0JTIwMCUyMDAlMjAxJTIwMCUyMDEwLjA4VjMuOTJBMy45MjQlMjAzLjkyNCUyMDAlMjAwJTIwMSUyMDMuOTIlMjAwaDYuMTZBMy45MjQlMjAzLjkyNCUyMDAlMjAwJTIwMSUyMDE0JTIwMy45Mk0xMC4zNiUyMDdhMy4zNiUyMDMuMzYlMjAwJTIwMSUyMDAtNi43MiUyMDAlMjAzLjM2JTIwMy4zNiUyMDAlMjAwJTIwMCUyMDYuNzIlMjAwbTEuMTItMy42NGEuODQuODQlMjAwJTIwMSUyMDAtMS42OCUyMDAlMjAuODQuODQlMjAwJTIwMCUyMDAlMjAxLjY4JTIwMCUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE1bXExLS1sYXlvdXQtY29sb3JpemVkIC5jYy0xaTZhaSAuY2MtMTFlenJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtcmV2ZXJzZSkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNW1xMS0tc21hbGxpc2h7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE1bXExLS1zbWFsbGlzaCAuY2MtMWVnN2d7cG9zaXRpb246c3RhdGljIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNW1xMS0tc21hbGxpc2ggLmNjLTFlZzdnIC5jYy1wdDcwMXtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7aW5zZXQtaW5saW5lLWVuZDotOXB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNW1xMS0tYWN0aXZlIC5jYy0xaTZhaXtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbCksIC4yNSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE1bXExLS1hY3RpdmU6bm90KC5jYy0xNW1xMS0tbGF5b3V0LWNvbG9yaXplZCkgLmNjLTFpNmFpe2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1saWdodCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNW1xMS0tYWN0aXZlOm5vdCguY2MtMTVtcTEtLWxheW91dC1jb2xvcml6ZWQpIC5jYy0xaTZhaSAuY2MtMTFlenJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTVtcTE6bm90KC5jYy0xNW1xMS0tYWN0aXZlKSAuY2MtMWk2YWl7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWwpLCAuMSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE1bXExOm5vdCguY2MtMTVtcTEtLWFjdGl2ZSkgLmNjLTFpNmFpOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSwgLjE3NSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE1bXExOm5vdCguY2MtMTVtcTEtLWFjdGl2ZSkgLmNjLTFpNmFpOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbCksIC4xNSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE1bXExOm5vdCguY2MtMTVtcTEtLWFjdGl2ZSk6bm90KC5jYy0xNW1xMS0tbGF5b3V0LWNvbG9yaXplZCkgLmNjLTFpNmFpe2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS11bHRyYS1saWdodCksIC41KSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTVtcTE6bm90KC5jYy0xNW1xMS0tYWN0aXZlKTpub3QoLmNjLTE1bXExLS1sYXlvdXQtY29sb3JpemVkKSAuY2MtMWk2YWk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LWxpZ2h0KSwgLjUpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNW1xMTpub3QoLmNjLTE1bXExLS1hY3RpdmUpOm5vdCguY2MtMTVtcTEtLWxheW91dC1jb2xvcml6ZWQpIC5jYy0xaTZhaTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LWxpZ2h0KSwgLjQpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNW1xMTpub3QoLmNjLTE1bXExLS1hY3RpdmUpOm5vdCguY2MtMTVtcTEtLWxheW91dC1jb2xvcml6ZWQpIC5jYy0xaTZhaSAuY2MtMTFlenJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LW5vcm1hbCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZG5rMXtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDtwb3NpdGlvbjpyZWxhdGl2ZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWRuazEtLXN0YXR1cy1hZ2VudCwuY3Jpc3AtY2xpZW50IC5jYy0xZG5rMS0tc3RhdHVzLW9uZ29pbmd7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFkbmsxLS1zdGF0dXMtYWdlbnQgLmNjLThpbTEyLC5jcmlzcC1jbGllbnQgLmNjLTFkbmsxLS1zdGF0dXMtYWdlbnQgLmNjLWJtZ3ZqLC5jcmlzcC1jbGllbnQgLmNjLTFkbmsxLS1zdGF0dXMtb25nb2luZyAuY2MtOGltMTIsLmNyaXNwLWNsaWVudCAuY2MtMWRuazEtLXN0YXR1cy1vbmdvaW5nIC5jYy1ibWd2antmbGV4Om5vbmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTExeWl2e2ZsZXg6MSFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTF5aXYgLmNjLTFhaXE4e2xpbmUtaGVpZ2h0OjE4cHg7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtYmxhY2stbm9ybWFsKSkhaW1wb3J0YW50O3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzIWltcG9ydGFudDt3aGl0ZS1zcGFjZTpub3dyYXAhaW1wb3J0YW50O3BhZGRpbmctdG9wOjRweCFpbXBvcnRhbnQ7Zm9udC1zaXplOjE0LjRweCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xMXlpdi0tbGF5b3V0LWNvbG9yaXplZCAuY2MtMWFpcTh7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLXJldmVyc2UpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTZocDd7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2aHA3IC5jYy12YXM5dCwuY3Jpc3AtY2xpZW50IC5jYy0xNmhwNyAuY2MtMTltb2csLmNyaXNwLWNsaWVudCAuY2MtMTZocDcgLmNjLTFwczlzLC5jcmlzcC1jbGllbnQgLmNjLTE2aHA3IC5jYy0xNjRjdntwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7dG9wOjUwJSFpbXBvcnRhbnQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2aHA3IC5jYy12YXM5dHttYXJnaW4taW5saW5lLXN0YXJ0Oi0xcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2aHA3IC5jYy12YXM5dCAuY2MtMTlieGJ7Ym9yZGVyLXdpZHRoOjJweCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTZocDcgLmNjLTE5bW9ney0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxOCUyMiUyMGhlaWdodCUzRCUyMjE5JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTglMjAxOSUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTEzLjUlMjA3LjY1YTUuODQlMjA1Ljg0JTIwMCUyMDAlMjAxLTEuMTI1JTIwMy40NWwzLjU2JTIwMy41NjRhLjkwMS45MDElMjAwJTIwMCUyMDEtMS4yNzMlMjAxLjI3NEwxMS4xJTIwMTIuMzc1QTUuODUlMjA1Ljg1JTIwMCUyMDAlMjAxJTIwMS44JTIwNy42NUMxLjc5OSUyMDQuNDE4JTIwNC40MTclMjAxLjglMjA3LjY0OSUyMDEuOHM1Ljg1JTIwMi42MTglMjA1Ljg1JTIwNS44NU03LjY1JTIwMTEuN2E0LjA1MSUyMDQuMDUxJTIwMCUyMDAlMjAwJTIwMC04LjElMjA0LjA1MSUyMDQuMDUxJTIwMCUyMDAlMjAwJTIwMCUyMDguMSUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LWRhcmspKSFpbXBvcnRhbnQ7cG9pbnRlci1ldmVudHM6bm9uZSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hcmdpbi10b3A6LjVweCFpbXBvcnRhbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBsaW5lYXIhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDstd2Via2l0LW1hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDttYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7bWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50Oy13ZWJraXQtbWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDttYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2aHA3IC5jYy0xNjRjdnstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMTglMjIlMjBoZWlnaHQlM0QlMjIxOCUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE4JTIwMTglMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk05JTIwMy4xNWMzLjIzMiUyMDAlMjA1Ljg1JTIwMi42MTglMjA1Ljg1JTIwNS44NVMxMi4yMzIlMjAxNC44NSUyMDklMjAxNC44NSUyMDMuMTUlMjAxMi4yMzIlMjAzLjE1JTIwOSUyMDUuNzY4JTIwMy4xNSUyMDklMjAzLjE1TTklMjAxNi4yYzMuOTc3JTIwMCUyMDcuMi0zLjIyMyUyMDcuMi03LjJTMTIuOTc3JTIwMS44JTIwOSUyMDEuOCUyMDEuOCUyMDUuMDIzJTIwMS44JTIwOXMzLjIyMyUyMDcuMiUyMDcuMiUyMDcuMk02LjQ5NyUyMDYuNDk3YS42Ny42NyUyMDAlMjAwJTIwMCUyMDAlMjAuOTUzbDEuNTQ3JTIwMS41NDctMS41NDclMjAxLjU0N2EuNjc1LjY3NSUyMDAlMjAwJTIwMCUyMC45NTMuOTUzbDEuNTQ3LTEuNTQ2JTIwMS41NDclMjAxLjU0NmEuNjc1LjY3NSUyMDAlMjAwJTIwMCUyMC45NTMtLjk1M0w5Ljk1MiUyMDguOTk3bDEuNTQ2LTEuNTQ3YS42NzUuNjc1JTIwMCUyMDAlMjAwLS45NTMtLjk1M0w4Ljk5NyUyMDguMDQ0JTIwNy40NSUyMDYuNDk3YS42Ny42NyUyMDAlMjAwJTIwMC0uOTUzJTIwMCUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1yZWQtbm9ybWFsKSkhaW1wb3J0YW50O3BvaW50ZXItZXZlbnRzOmF1dG8haW1wb3J0YW50O2N1cnNvcjpwb2ludGVyIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50Oy13ZWJraXQtbWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O21hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDstd2Via2l0LW1hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDttYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50O21hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTZocDcgLmNjLTEzeW9zLC5jcmlzcC1jbGllbnQgLmNjLTE2aHA3IC5jYy1za2hpaywuY3Jpc3AtY2xpZW50IC5jYy0xNmhwNyAuY2MtY2owa3p7bGV0dGVyLXNwYWNpbmc6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTZocDcgLmNjLTEzeW9zLC5jcmlzcC1jbGllbnQgLmNjLTE2aHA3IC5jYy1jajBrentwYWRkaW5nLWJsb2NrOjAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2aHA3IC5jYy1za2hpaywuY3Jpc3AtY2xpZW50IC5jYy0xNmhwNyAuY2MtY2owa3p7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O2luc2V0LWJsb2NrOjAhaW1wb3J0YW50O2luc2V0LWlubGluZS1zdGFydDowIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNmhwNyAuY2MtMTN5b3N7Ym94LXNpemluZzpib3JkZXItYm94IWltcG9ydGFudDt3aWR0aDoxMDAlIWltcG9ydGFudDtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC1ibGFjay1ub3JtYWwpKSFpbXBvcnRhbnQ7Y3Vyc29yOnRleHQhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTZocDcgLmNjLXNraGlre2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbCksIC40KSFpbXBvcnRhbnQ7ei1pbmRleDoxIWltcG9ydGFudDtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2aHA3IC5jYy1jajBrent2aXNpYmlsaXR5OmhpZGRlbiFpbXBvcnRhbnQ7d2hpdGUtc3BhY2U6bm93cmFwIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNmhwNy0tZ3JleSAuY2MtMTN5b3N7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LXVsdHJhLWxpZ2h0KSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2aHA3LS1kZWZhdWx0LC5jcmlzcC1jbGllbnQgLmNjLTE2aHA3LS1kZWZhdWx0IC5jYy0xM3lvcywuY3Jpc3AtY2xpZW50IC5jYy0xNmhwNy0tZGVmYXVsdCAuY2Mtc2toaWssLmNyaXNwLWNsaWVudCAuY2MtMTZocDctLWRlZmF1bHQgLmNjLWNqMGt6e2hlaWdodDozOHB4fS5jcmlzcC1jbGllbnQgLmNjLTE2aHA3LS1kZWZhdWx0IC5jYy0xM3lvcywuY3Jpc3AtY2xpZW50IC5jYy0xNmhwNy0tZGVmYXVsdCAuY2Mtc2toaWssLmNyaXNwLWNsaWVudCAuY2MtMTZocDctLWRlZmF1bHQgLmNjLWNqMGt6e2xpbmUtaGVpZ2h0OjM4cHg7Zm9udC1zaXplOjEzLjZweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTZocDctLWRlZmF1bHQgLmNjLTEzeW9zLC5jcmlzcC1jbGllbnQgLmNjLTE2aHA3LS1kZWZhdWx0IC5jYy1jajBrentwYWRkaW5nLWlubGluZS1zdGFydDo0MHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNmhwNy0tZGVmYXVsdCAuY2MtdmFzOXQsLmNyaXNwLWNsaWVudCAuY2MtMTZocDctLWRlZmF1bHQgLmNjLTE5bW9ne2luc2V0LWlubGluZS1zdGFydDoxNHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNmhwNy0tZGVmYXVsdCAuY2MtdmFzOXQgLmNjLTE5Ynhie2hlaWdodDoxMnB4O3dpZHRoOjEycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2aHA3LS1kZWZhdWx0IC5jYy0xOW1vZ3toZWlnaHQ6MThweDt3aWR0aDoxOHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNmhwNy0tZGVmYXVsdCAuY2MtMXBzOXN7aW5zZXQtaW5saW5lLWVuZDoxNHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNmhwNy0tZGVmYXVsdCAuY2MtMTY0Y3Z7aGVpZ2h0OjE4cHg7d2lkdGg6MThweCFpbXBvcnRhbnQ7aW5zZXQtaW5saW5lLWVuZDoxNHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNmhwNy0tbGFyZ2UsLmNyaXNwLWNsaWVudCAuY2MtMTZocDctLWxhcmdlIC5jYy0xM3lvcywuY3Jpc3AtY2xpZW50IC5jYy0xNmhwNy0tbGFyZ2UgLmNjLXNraGlrLC5jcmlzcC1jbGllbnQgLmNjLTE2aHA3LS1sYXJnZSAuY2MtY2owa3p7aGVpZ2h0OjYwcHh9LmNyaXNwLWNsaWVudCAuY2MtMTZocDctLWxhcmdlIC5jYy0xM3lvcywuY3Jpc3AtY2xpZW50IC5jYy0xNmhwNy0tbGFyZ2UgLmNjLXNraGlrLC5jcmlzcC1jbGllbnQgLmNjLTE2aHA3LS1sYXJnZSAuY2MtY2owa3p7bGluZS1oZWlnaHQ6NjBweDtmb250LXNpemU6MTQuNHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNmhwNy0tbGFyZ2UgLmNjLTEzeW9zLC5jcmlzcC1jbGllbnQgLmNjLTE2aHA3LS1sYXJnZSAuY2MtY2owa3p7cGFkZGluZy1pbmxpbmUtc3RhcnQ6NTZweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTZocDctLWxhcmdlIC5jYy12YXM5dCwuY3Jpc3AtY2xpZW50IC5jYy0xNmhwNy0tbGFyZ2UgLmNjLTE5bW9ne2luc2V0LWlubGluZS1zdGFydDoyMHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNmhwNy0tbGFyZ2UgLmNjLXZhczl0IC5jYy0xOWJ4YntoZWlnaHQ6MTZweDt3aWR0aDoxNnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNmhwNy0tbGFyZ2UgLmNjLTE5bW9ne2hlaWdodDoyMnB4O3dpZHRoOjIycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2aHA3LS1sYXJnZSAuY2MtMXBzOXN7aW5zZXQtaW5saW5lLWVuZDoyMHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNmhwNy0tbGFyZ2UgLmNjLTE2NGN2e2hlaWdodDoyMnB4O3dpZHRoOjIycHghaW1wb3J0YW50O2luc2V0LWlubGluZS1lbmQ6MjBweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTZocDctLWJvcmRlcmVkIC5jYy0xM3lvc3tib3JkZXItc3R5bGU6c29saWQhaW1wb3J0YW50O2JvcmRlci13aWR0aDoxLjVweCFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktdWx0cmEtbGlnaHQpKSFpbXBvcnRhbnQ7Ym94LXNpemluZzpib3JkZXItYm94IWltcG9ydGFudDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMXMgZWFzZS1pbi1vdXQsYm94LXNoYWRvdyAuMXMgZWFzZS1pbi1vdXQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2aHA3LS1ib3JkZXJlZCAuY2MtMTN5b3M6Zm9jdXN7Ym9yZGVyLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS01MDApKSFpbXBvcnRhbnQ7Ym94LXNoYWRvdzowIDAgMCAzcHggY29sb3ItbWl4KGluIHNyZ2IsIHJnYmEodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtNTAwKSwgMSkgMTUlLCByZ2JhKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSwgMSkpLCAwIDJweCAzcHggMCByZ2IodmFyKC0tY3Jpc3AtY29sb3Itc2hhZG93LW5vcm1hbCksIC4wMikhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE2aHA3LS1oYXMtdmFsdWUgLmNjLTE5bW9ne29wYWNpdHk6LjM1IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1yb3MwaHtmbGV4OjEhaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXJvczBoIC5jYy1oYWlrN3toZWlnaHQ6NTBweDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O3BhZGRpbmc6MCAxMnB4IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50O3RvcDowIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1yb3MwaCAuY2MtaGFpazcgLmNjLTFwdnJ3LC5jcmlzcC1jbGllbnQgLmNjLXJvczBoIC5jYy1oYWlrNyAuY2Mtc2xhMGt7cG9pbnRlci1ldmVudHM6YXV0byFpbXBvcnRhbnQ7ZmxleDpub25lIWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXJvczBoIC5jYy1oYWlrNyAuY2MtMXB2cnd7aGVpZ2h0OjMwcHg7Ym9yZGVyLXJhZGl1czoxMXB4IWltcG9ydGFudDt3aWR0aDozMHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1yb3MwaCAuY2MtaGFpazcgLmNjLTFwdnJ3IC5jYy1kMzk5cnstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyNyUyMiUyMGhlaWdodCUzRCUyMjEwJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNyUyMDEwJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMi41NDYlMjA1JTIwNS45NCUyMDguMzkzYS45NDIuOTQyJTIwMCUyMDAlMjAxLTEuMzMyJTIwMS4zMzFMLjUxJTIwNS42MjhhLjg4Ny44ODclMjAwJTIwMCUyMDElMjAwLTEuMjU2TDQuNjA3LjI3NmEuOTQyLjk0MiUyMDAlMjAwJTIwMSUyMDEuMzMyJTIwMS4zMzF6JTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTtoZWlnaHQ6MTBweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS1yZXZlcnNlKSkhaW1wb3J0YW50O3dpZHRoOjdweCFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hcmdpbjoxMHB4IGF1dG8gMCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50Oy13ZWJraXQtbWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O21hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDstd2Via2l0LW1hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDttYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50O21hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtcm9zMGggLmNjLWhhaWs3IC5jYy16d3U3aHt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7ZmxleDoxIWltcG9ydGFudDttYXJnaW46MCAxMHB4IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXJvczBoIC5jYy1oYWlrNyAuY2Mtend1N2ggLmNjLTVuMGNze2ZsZXg6MSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtcm9zMGggLmNjLWhhaWs3IC5jYy16d3U3aCAuY2MtNW4wY3MgLmNjLWI1MWM4LC5jcmlzcC1jbGllbnQgLmNjLXJvczBoIC5jYy1oYWlrNyAuY2Mtend1N2ggLmNjLTVuMGNzIC5jYy1hNWtyaCwuY3Jpc3AtY2xpZW50IC5jYy1yb3MwaCAuY2MtaGFpazcgLmNjLXp3dTdoIC5jYy01bjBjcyAuY2MtMTJncmJ7d2hpdGUtc3BhY2U6bm93cmFwIWltcG9ydGFudDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXJvczBoIC5jYy1oYWlrNyAuY2Mtend1N2ggLmNjLTVuMGNzIC5jYy1iNTFjOHtsaW5lLWhlaWdodDoyMHB4O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDttYXJnaW4tdG9wOi00cHghaW1wb3J0YW50O2ZvbnQtc2l6ZToxNS4ycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXJvczBoIC5jYy1oYWlrNyAuY2Mtend1N2ggLmNjLTVuMGNzIC5jYy1hNWtyaCwuY3Jpc3AtY2xpZW50IC5jYy1yb3MwaCAuY2MtaGFpazcgLmNjLXp3dTdoIC5jYy01bjBjcyAuY2MtMTJncmJ7bGluZS1oZWlnaHQ6MTZweDtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC1ncmV5LW5vcm1hbCkpIWltcG9ydGFudDttYXJnaW4tdG9wOjRweCFpbXBvcnRhbnQ7Zm9udC1zaXplOjExLjZweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtcm9zMGggLmNjLWhhaWs3IC5jYy1xazFyZXtsaW5lLWhlaWdodDowfS5jcmlzcC1jbGllbnQgLmNjLXJvczBoIC5jYy1oYWlrNyAuY2MtcWsxcmUgLmNjLXNsYTBre2hlaWdodDoyOHB4O2JvcmRlcjoxcHggc29saWQgcmdiKHZhcigtLWNyaXNwLWNvbG9yLXNlcGFyYXRvci1ub3JtYWwpKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojMDAwMCFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czoxMXB4IWltcG9ydGFudDt3aWR0aDoyOHB4IWltcG9ydGFudDt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjFzIGxpbmVhciFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtcm9zMGggLmNjLWhhaWs3IC5jYy1xazFyZSAuY2Mtc2xhMGsgLmNjLWJyd3l6ey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxMiUyMiUyMGhlaWdodCUzRCUyMjExJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTIlMjAxMSUyMiUzRSUzQ3BhdGglMjBzdHJva2UlM0QlMjIlMjMwMDAlMjIlMjBzdHJva2UtbGluZWNhcCUzRCUyMnJvdW5kJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMiUyMiUyMGQlM0QlMjJtMS43NSUyMDkuNSUyMDguNS04LjVtLS4wMDEuMDAxdjUuOTU2TTQuMjkzJTIwMWg1Ljk1NyUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7aGVpZ2h0OjEycHg7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LXVsdHJhLWRhcmspKSFpbXBvcnRhbnQ7d2lkdGg6MTJweCFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hcmdpbjo4cHggYXV0byAwIWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7bWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50O21hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7bWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1yb3MwaCAuY2MtaGFpazcgLmNjLXFrMXJlIC5jYy1zbGEwazpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1zZXBhcmF0b3Itbm9ybWFsKSwgLjUpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1yb3MwaCAuY2MtMXNjZDd7cGFkZGluZy10b3A6NHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1yb3MwaCAuY2MtMXNjZDcgLmNjLTFkcnRme2xpbmUtaGVpZ2h0OjE4cHg7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtYmxhY2stbm9ybWFsKSkhaW1wb3J0YW50O3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzIWltcG9ydGFudDt3aGl0ZS1zcGFjZTpub3dyYXAhaW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnQ7Zm9udC1zaXplOjE0LjRweCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1yb3MwaCAuY2MtMXNjZDcgLmNjLXptNG8we21hcmdpbjoxOHB4IDIwcHggMCFpbXBvcnRhbnQ7ZGlzcGxheTpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1yb3MwaCAuY2MtMXNjZDcgLmNjLXptNG8wIC5jYy0xM3lvc3twb2ludGVyLWV2ZW50czphdXRvIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1yb3MwaCAuY2MtMXNjZDcgLmNjLXptNG8wLS12aXNpYmxle2FuaW1hdGlvbi1uYW1lOmNjLWduNTlnO2FuaW1hdGlvbi1kdXJhdGlvbjouMXM7YW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXJvczBoOm5vdCguY2Mtcm9zMGgtLWhhcy12aWV3ZXIpIC5jYy1oYWlrN3thbGlnbi1pdGVtczpmbGV4LXN0YXJ0IWltcG9ydGFudDtwYWRkaW5nLXRvcDo1cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXJvczBoOm5vdCguY2Mtcm9zMGgtLWhhcy12aWV3ZXIpIC5jYy1oYWlrNyAuY2Mtend1N2h7dGV4dC1hbGlnbjpsZWZ0IWltcG9ydGFudDttYXJnaW4taW5saW5lOjE4cHggMCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtcm9zMGg6bm90KC5jYy1yb3MwaC0taGFzLXZpZXdlcikgLmNjLWhhaWs3IC5jYy16d3U3aCAuY2MtNW4wY3MgLmNjLWE1a3Joe2hlaWdodDozMnB4O3doaXRlLXNwYWNlOnVuc2V0IWltcG9ydGFudDstd2Via2l0LWxpbmUtY2xhbXA6MiFpbXBvcnRhbnQ7bGluZS1jbGFtcDoyIWltcG9ydGFudDtib3gtb3JpZW50OnZlcnRpY2FsIWltcG9ydGFudDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWwhaW1wb3J0YW50O2Rpc3BsYXk6LXdlYmtpdC1ib3ghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXJvczBoLS1sYXlvdXQtY29sb3JpemVkIC5jYy0xc2NkNyAuY2MtMWRydGYsLmNyaXNwLWNsaWVudCAuY2Mtcm9zMGgtLWxheW91dC1jb2xvcml6ZWQgLmNjLWhhaWs3IC5jYy16d3U3aCAuY2MtNW4wY3MgLmNjLWI1MWM4e2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS1yZXZlcnNlKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXJvczBoLS1sYXlvdXQtY29sb3JpemVkIC5jYy1oYWlrNyAuY2Mtend1N2ggLmNjLTVuMGNzIC5jYy1hNWtyaCwuY3Jpc3AtY2xpZW50IC5jYy1yb3MwaC0tbGF5b3V0LWNvbG9yaXplZCAuY2MtaGFpazcgLmNjLXp3dTdoIC5jYy01bjBjcyAuY2MtMTJncmJ7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLXJldmVyc2UpLCAuOSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXJvczBoLS1sYXlvdXQtY29sb3JpemVkIC5jYy1oYWlrNyAuY2MtcWsxcmUgLmNjLXNsYTBre2JvcmRlci1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtcmV2ZXJzZSksIC42KSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtcm9zMGgtLWxheW91dC1jb2xvcml6ZWQgLmNjLWhhaWs3IC5jYy1xazFyZSAuY2Mtc2xhMGsgLmNjLWJyd3l6e2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLXJldmVyc2UpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtcm9zMGgtLWxheW91dC1jb2xvcml6ZWQgLmNjLWhhaWs3IC5jYy1xazFyZSAuY2Mtc2xhMGs6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtcmV2ZXJzZSksIC4xKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudFtkaXI9cnRsXSAuY2Mtcm9zMGggLmNjLWhhaWs3IC5jYy1kMzk5ciwuY3Jpc3AtY2xpZW50W2Rpcj1ydGxdIC5jYy1yb3MwaCAuY2MtaGFpazcgLmNjLXNsYTBre3RyYW5zZm9ybTpzY2FsZVgoLTEpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1pMTQ1diAuY2MtOW51ZmF7bGluZS1oZWlnaHQ6MjRweDtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1saWdodCkpIWltcG9ydGFudDt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7dGV4dC1vdmVyZmxvdzplbGxpcHNpcyFpbXBvcnRhbnQ7d2hpdGUtc3BhY2U6bm93cmFwIWltcG9ydGFudDttYXJnaW4tdG9wOjEycHghaW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnQ7Zm9udC1zaXplOjE2cHghaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtaTE0NXYgLmNjLXVwdmIye21hcmdpbjoxOHB4IDI0cHggMCFpbXBvcnRhbnQ7ZGlzcGxheTpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1pMTQ1diAuY2MtdXB2YjItLXZpc2libGV7YW5pbWF0aW9uLW5hbWU6Y2MtZ241OWc7YW5pbWF0aW9uLWR1cmF0aW9uOi4xczthbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtaTE0NXYgLmNjLXVwdmIyIC5jYy0xNWZlaywuY3Jpc3AtY2xpZW50IC5jYy1pMTQ1diAuY2MtdXB2YjIgLmNjLXZiYzdxe21hcmdpbi1pbmxpbmUtZW5kOi00cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWkxNDV2IC5jYy11cHZiMiAuY2MtMTVmZWssLmNyaXNwLWNsaWVudCAuY2MtaTE0NXYgLmNjLXVwdmIyIC5jYy0xM3lvcywuY3Jpc3AtY2xpZW50IC5jYy1pMTQ1diAuY2MtdXB2YjIgLmNjLTE2NGN2e3BvaW50ZXItZXZlbnRzOmF1dG8haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWkxNDV2IC5jYy11cHZiMiAuY2MtMTVmZWt7ZmxleDpub25lIWltcG9ydGFudDtwYWRkaW5nLWlubGluZToxNHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1pMTQ1diAuY2MtdXB2YjIgLmNjLXZiYzdxe2xpbmUtaGVpZ2h0OjIwcHg7YmFja2dyb3VuZDpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWwpKSFpbXBvcnRhbnQ7Ym9yZGVyLXN0eWxlOnNvbGlkIWltcG9ydGFudDtib3JkZXItd2lkdGg6MXB4IWltcG9ydGFudDtib3JkZXItY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1saWdodCkpIWltcG9ydGFudDtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC1ncmV5LW5vcm1hbCkpIWltcG9ydGFudDtwb2ludGVyLWV2ZW50czpub25lIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjhweCFpbXBvcnRhbnQ7cGFkZGluZy1ibG9jazo1cHghaW1wb3J0YW50O3BhZGRpbmctaW5saW5lOjdweCA4cHghaW1wb3J0YW50O2ZvbnQtc2l6ZToxNC40cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWkxNDV2LS1sYXlvdXQtY29sb3JpemVkIC5jYy05bnVmYXtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtcmV2ZXJzZSkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1pMTQ1di0tZnVsbC12aWV3IC5jYy11cHZiMnttYXJnaW4taW5saW5lOjRweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWZxYzh7cG9pbnRlci1ldmVudHM6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWZxYzg+Kntwb2ludGVyLWV2ZW50czphdXRvIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZnFjOCAuY2Mtb280dHh7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWwpKSFpbXBvcnRhbnQ7Ym9yZGVyOi41cHggc29saWQgcmdiKHZhcigtLWNyaXNwLWNvbG9yLXNlcGFyYXRvci1kYXJrKSkhaW1wb3J0YW50O3RleHQtYWxpZ246c3RhcnQhaW1wb3J0YW50O2N1cnNvcjpkZWZhdWx0IWltcG9ydGFudDtwYWRkaW5nOjdweCFpbXBvcnRhbnQ7bWluLXdpZHRoOjE2MHB4IWltcG9ydGFudDt0b3A6Y2FsYyg2cHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LXRvcCkpIWltcG9ydGFudDt6LWluZGV4OjEhaW1wb3J0YW50O2JveC1zaGFkb3c6MCAwIDNweCAycHggcmdiKHZhcigtLWNyaXNwLWNvbG9yLXNoYWRvdy1ub3JtYWwpLCAuMDIpLCAwIDRweCA2cHggMCByZ2IodmFyKC0tY3Jpc3AtY29sb3Itc2hhZG93LW5vcm1hbCksIC4wNCkhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTBweCFpbXBvcnRhbnQ7cGFkZGluZy10b3A6MTZweCFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O2luc2V0LWlubGluZS1lbmQ6Y2FsYyg2cHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LXJpZ2h0KSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFmcWM4IC5jYy1vbzR0eCAuY2MtMXNyejgsLmNyaXNwLWNsaWVudCAuY2MtMWZxYzggLmNjLW9vNHR4IC5jYy1udGQydntwYWRkaW5nLWlubGluZToxMnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZnFjOCAuY2Mtb280dHggLmNjLTFzcno4e2xpbmUtaGVpZ2h0OjE1cHg7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtZ3JleS1ub3JtYWwpKSFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbToxNHB4IWltcG9ydGFudDtwYWRkaW5nLWlubGluZS1lbmQ6MTZweCFpbXBvcnRhbnQ7Zm9udC1zaXplOjExLjRweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWZxYzggLmNjLW9vNHR4IC5jYy1ocWQ1NnttYXJnaW4tdG9wOjE0cHghaW1wb3J0YW50O21hcmdpbi1ibG9jazowIWltcG9ydGFudDtsaXN0LXN0eWxlLXR5cGU6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWZxYzggLmNjLW9vNHR4IC5jYy1udGQydntsaW5lLWhlaWdodDoxN3B4O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDstbW96LWNvbHVtbi1nYXA6N3B4IWltcG9ydGFudDtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czo4cHghaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnQ7Y29sdW1uLWdhcDo3cHghaW1wb3J0YW50O3BhZGRpbmctYmxvY2s6N3B4IWltcG9ydGFudDtmb250LXNpemU6MTJweCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZnFjOCAuY2Mtb280dHggLmNjLW50ZDJ2OmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS11bHRyYS1saWdodCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZnFjOCAuY2Mtb280dHggLmNjLW50ZDJ2OmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBzcmdiLCByZ2JhKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS11bHRyYS1saWdodCksIDEpIDk4LjUlLCByZ2JhKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbm9ybWFsKSwgMSkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZnFjOCAuY2Mtb280dHggLmNjLW50ZDJ2OmJlZm9yZXtoZWlnaHQ6MTRweDtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3IhaW1wb3J0YW50O3dpZHRoOjE0cHghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDstd2Via2l0LW1hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDttYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7bWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50Oy13ZWJraXQtbWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDttYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFmcWM4IC5jYy1vbzR0eCAuY2MtbnRkMnZbZGF0YS10eXBlPWNsb3NlXTpiZWZvcmV7LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjEzJTIyJTIwaGVpZ2h0JTNEJTIyMTMlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMyUyMDEzJTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjJub25lJTIyJTIwc3Ryb2tlJTNEJTIyJTIzMDAwJTIyJTIwc3Ryb2tlLWxpbmVjYXAlM0QlMjJyb3VuZCUyMiUyMHN0cm9rZS1saW5lam9pbiUzRCUyMnJvdW5kJTIyJTIwZCUzRCUyMm0zJTIwMyUyMDclMjA3bTAtNy03JTIwNyUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFmcWM4IC5jYy1vbzR0eCAuY2MtbnRkMnZbZGF0YS10eXBlPWFkZF06YmVmb3Jley0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxMyUyMiUyMGhlaWdodCUzRCUyMjEzJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTMlMjAxMyUyMiUzRSUzQ2clMjBmaWxsJTNEJTIybm9uZSUyMiUyMGZpbGwtcnVsZSUzRCUyMmV2ZW5vZGQlMjIlM0UlM0NjaXJjbGUlMjBjeCUzRCUyMjYuNSUyMiUyMGN5JTNEJTIyNi41JTIyJTIwciUzRCUyMjYlMjIlMjBzdHJva2UlM0QlMjIlMjMwMDAlMjIlMkYlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzAwMCUyMiUyMGZpbGwtcnVsZSUzRCUyMm5vbnplcm8lMjIlMjBkJTNEJTIyTTYuOTY0JTIwMy43MTRhLjQ2NC40NjQlMjAwJTIwMSUyMDAtLjkyOCUyMDB2Mi4zMjJIMy43MTRhLjQ2NC40NjQlMjAwJTIwMSUyMDAlMjAwJTIwLjkyOGgyLjMyMnYyLjMyMmEuNDY0LjQ2NCUyMDAlMjAxJTIwMCUyMC45MjglMjAwVjYuOTY0aDIuMzIyYS40NjQuNDY0JTIwMCUyMDElMjAwJTIwMC0uOTI4SDYuOTY0eiUyMiUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UpOy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZnFjOCAuY2Mtb280dHggLmNjLW50ZDJ2W2RhdGEtdHlwZT1kb3dubG9hZF06YmVmb3Jley0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxMyUyMiUyMGhlaWdodCUzRCUyMjEzJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTMlMjAxMyUyMiUzRSUzQ2clMjBmaWxsJTNEJTIybm9uZSUyMiUyMGZpbGwtcnVsZSUzRCUyMmV2ZW5vZGQlMjIlM0UlM0NyZWN0JTIwd2lkdGglM0QlMjIxMiUyMiUyMGhlaWdodCUzRCUyMjEyJTIyJTIweCUzRCUyMi41JTIyJTIweSUzRCUyMi41JTIyJTIwc3Ryb2tlJTNEJTIyJTIzMDAwJTIyJTIwcnglM0QlMjI0JTIyJTJGJTNFJTNDZyUyMGZpbGwlM0QlMjIlMjMwMDAlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjg0JTIwMyUyOSUyMiUzRSUzQ3JlY3QlMjB3aWR0aCUzRCUyMjUlMjIlMjBoZWlnaHQlM0QlMjIxJTIyJTIweSUzRCUyMjYlMjIlMjByeCUzRCUyMi41JTIyJTJGJTNFJTNDcGF0aCUyMGZpbGwtcnVsZSUzRCUyMm5vbnplcm8lMjIlMjBkJTNEJTIyTTIuMjA2JTIwNS41NDJhLjQxNy40MTclMjAwJTIwMCUyMDAlMjAuNTklMjAwbDIuMDgyLTIuMDgzYS40MTcuNDE3JTIwMCUyMDAlMjAwLS41OS0uNTlMMi45MTclMjA0LjI0MlYuNDE3YS40MTYuNDE2JTIwMCUyMDElMjAwLS44MzQlMjAwVjQuMjRMLjcxMiUyMDIuODdhLjQxNy40MTclMjAwJTIwMCUyMDAtLjU5LjU5eiUyMiUyRiUzRSUzQyUyRmclM0UlM0MlMkZnJTNFJTNDJTJGc3ZnJTNFKTstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWZxYzggLmNjLW9vNHR4IC5jYy1udGQydltkYXRhLXR5cGU9ZXhwYW5kXTpiZWZvcmV7LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjE0JTIyJTIwaGVpZ2h0JTNEJTIyMTQlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNCUyMDE0JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNNS45MjglMjA4LjEwNGEuNDUuNDUlMjAwJTIwMCUyMDAtLjYyOCUyMDBsLTIuNTc1JTIwMi41ODRWOC4yNjZhLjQzNy40MzclMjAwJTIwMSUyMDAtLjg3NSUyMDB2My40NzhjMCUyMC4yNDEuMTk2LjQzNy40MzguNDM3aDMuNDc4YS40MzcuNDM3JTIwMCUyMDElMjAwJTIwMC0uODc1SDMuMzQ0bDIuNTc0LTIuNTg0YS40NC40NCUyMDAlMjAwJTIwMCUyMDAtLjYxOHptMi43OTQtMi4xNzYlMjAyLjU4NC0yLjU4NHYyLjQyMmEuNDM3LjQzNyUyMDAlMjAxJTIwMCUyMC44NzUlMjAwVjIuMjg3YS40MzcuNDM3JTIwMCUyMDAlMjAwLS40MzctLjQzN0g4LjI2NmEuNDM3LjQzNyUyMDAlMjAxJTIwMCUyMDAlMjAuODc1aDIuNDIyTDguMTA0JTIwNS4zMDlhLjQzNy40MzclMjAwJTIwMCUyMDAlMjAuNjE4LjYxOSUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFmcWM4IC5jYy1vbzR0eCAuY2MtbnRkMnZbZGF0YS10eXBlPWNvbGxhcHNlXTpiZWZvcmV7LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjE0JTIyJTIwaGVpZ2h0JTNEJTIyMTQlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNCUyMDE0JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMi4xMjYlMjAxMS45MDZjLjE3LjE3LjQ1Ni4xNy42MjclMjAwbDIuNTc1LTIuNTg0djIuNDIyYS40MzcuNDM3JTIwMCUyMDElMjAwJTIwLjg3NSUyMDBWOC4yNjZhLjQzNy40MzclMjAwJTIwMCUyMDAtLjQzNy0uNDM4SDIuMjg4YS40MzcuNDM3JTIwMCUyMDElMjAwJTIwMCUyMC44NzVINC43MWwtMi41NzUlMjAyLjU4NGEuNDQuNDQlMjAwJTIwMCUyMDAlMjAwJTIwLjYxOXptOS4xNjEtOS43OEw4LjcwMyUyMDQuNzA4VjIuMjg3YS40MzguNDM4JTIwMCUyMDAlMjAwLS44NzUlMjAwdjMuNDc5YzAlMjAuMjQxLjE5Ni40MzcuNDM4LjQzN2gzLjQ3OGEuNDM3LjQzNyUyMDAlMjAxJTIwMCUyMDAtLjg3NUg5LjMyMmwyLjU4NC0yLjU4NGEuNDM3LjQzNyUyMDAlMjAwJTIwMC0uNjE5LS42MTklMjIlMkYlM0UlM0MlMkZzdmclM0UpOy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZnFjOCAuY2MtanQ5bXMsLmNyaXNwLWNsaWVudCAuY2MtMWZxYzggLmNjLXBkdDk4e3otaW5kZXg6MiFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czo1cHghaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZnFjOCAuY2MtanQ5bXMsLmNyaXNwLWNsaWVudCAuY2MtMWZxYzggLmNjLWp0OW1zIC5jYy0xcDZ4NywuY3Jpc3AtY2xpZW50IC5jYy0xZnFjOCAuY2MtcGR0OTgsLmNyaXNwLWNsaWVudCAuY2MtMWZxYzggLmNjLXBkdDk4IC5jYy0xcDZ4N3tjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWZxYzggLmNjLWp0OW1ze3RvcDpjYWxjKDE0cHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LXRvcCkpIWltcG9ydGFudDtwYWRkaW5nOjEwcHggN3B4IWltcG9ydGFudDtpbnNldC1pbmxpbmUtZW5kOmNhbGMoOHB4ICsgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1yaWdodCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZnFjOCAuY2MtanQ5bXMgLmNjLTFwNng3ey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxMSUyMiUyMGhlaWdodCUzRCUyMjExJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTElMjAxMSUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTUuMTEyJTIwOC4wODhhLjU1LjU1JTIwMCUyMDAlMjAwJTIwLjc3OCUyMDBsMy4zLTMuM2EuNTUuNTUlMjAwJTIwMCUyMDAtLjc3OC0uNzc4TDUuNSUyMDYuOTIlMjAyLjU4OCUyMDQuMDFhLjU1LjU1JTIwMCUyMDAlMjAwLS43NzguNzhsMy4zJTIwMy4zeiUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7aGVpZ2h0OjEzcHg7d2lkdGg6MTNweCFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDstd2Via2l0LW1hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDttYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7bWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50Oy13ZWJraXQtbWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDttYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFmcWM4IC5jYy1wZHQ5OHtoZWlnaHQ6MjFweDt3aWR0aDoyMXB4IWltcG9ydGFudDt0b3A6Y2FsYygxOXB4ICsgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC10b3ApKSFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50O2luc2V0LWlubGluZS1lbmQ6Y2FsYygxMnB4ICsgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1yaWdodCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZnFjOCAuY2MtcGR0OTggLmNjLTFwNng3ey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjI5JTIyJTIwaGVpZ2h0JTNEJTIyOCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIybm9uZSUyMiUyMHN0cm9rZSUzRCUyMiUyMzAwMCUyMiUyMHN0cm9rZS1saW5lY2FwJTNEJTIycm91bmQlMjIlMjBzdHJva2UtbGluZWpvaW4lM0QlMjJyb3VuZCUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjEuNCUyMiUyMGQlM0QlMjJNNy41LjclMjAxJTIwNy4zTTElMjAuN2w2LjUlMjA2LjYlMjIlMkYlM0UlM0MlMkZzdmclM0UpO2hlaWdodDoxMnB4O3dpZHRoOjEycHghaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXJnaW4tbGVmdDouNXB4IWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7bWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50O21hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7bWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZnFjOC0tbW9iaWxlLXNkayAuY2MtcGR0OTh7aW5zZXQtaW5saW5lLWVuZDpjYWxjKDE2cHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LXJpZ2h0KSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFmcWM4LS1sYXlvdXQtY29sb3JpemVkIC5jYy1qdDltcyAuY2MtMXA2eDcsLmNyaXNwLWNsaWVudCAuY2MtMWZxYzgtLWxheW91dC1jb2xvcml6ZWQgLmNjLXBkdDk4IC5jYy0xcDZ4N3tiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS1yZXZlcnNlKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFmcWM4LS1sYXlvdXQtY29sb3JpemVkIC5jYy1wZHQ5ODpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS02MDApKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWZxYzgtLWxheW91dC1jb2xvcml6ZWQgLmNjLXBkdDk4OmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS03MDApKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWZxYzg6bm90KC5jYy0xZnFjOC0tbGF5b3V0LWNvbG9yaXplZCkgLmNjLWp0OW1zIC5jYy0xcDZ4NywuY3Jpc3AtY2xpZW50IC5jYy0xZnFjODpub3QoLmNjLTFmcWM4LS1sYXlvdXQtY29sb3JpemVkKSAuY2MtcGR0OTggLmNjLTFwNng3e2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1ub3JtYWwpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWZxYzg6bm90KC5jYy0xZnFjOC0tbGF5b3V0LWNvbG9yaXplZCkgLmNjLXBkdDk4OmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS11bHRyYS1saWdodCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZnFjODpub3QoLmNjLTFmcWM4LS1sYXlvdXQtY29sb3JpemVkKSAuY2MtcGR0OTg6YWN0aXZle2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsIHJnYmEodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LXVsdHJhLWxpZ2h0KSwgMSkgOTclLCByZ2JhKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbm9ybWFsKSwgMSkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZnFjOC0tdmlzaWJsZS5jYy0xZnFjOC0tbGF5b3V0LWNvbG9yaXplZCAuY2MtanQ5bXMgLmNjLTFwNng3LC5jcmlzcC1jbGllbnQgLmNjLTFmcWM4LS12aXNpYmxlLmNjLTFmcWM4Om5vdCguY2MtMWZxYzgtLWxheW91dC1jb2xvcml6ZWQpIC5jYy1qdDltcyAuY2MtMXA2eDd7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LWRhcmspKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajh7cGFkZGluZy10b3A6Y2FsYygwcHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LXRvcCkpIWltcG9ydGFudDt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czoxNnB4IWltcG9ydGFudDtwb3NpdGlvbjpyZWxhdGl2ZSFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOCwuY3Jpc3AtY2xpZW50IC5jYy0xd3JqODpiZWZvcmUsLmNyaXNwLWNsaWVudCAuY2MtMXdyajggKntjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajggLmNjLXkwNmZle3otaW5kZXg6NCFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O2luc2V0OjAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4IC5jYy1xMzliOXtwYWRkaW5nLXRvcDoxMHB4IWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbToxNnB4IWltcG9ydGFudDtwYWRkaW5nLWlubGluZTpjYWxjKDhweCArIHZhcigtLWNyaXNwLWVudi1kZXZpY2UtaW5zZXQtbGVmdCkpIGNhbGMoOHB4ICsgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1yaWdodCkpIWltcG9ydGFudDt6LWluZGV4OjIhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4IC5jYy1ncHg0b3t0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7cG9pbnRlci1ldmVudHM6bm9uZSFpbXBvcnRhbnQ7cGFkZGluZy1ibG9jazowIWltcG9ydGFudDtwYWRkaW5nLWlubGluZTpjYWxjKDZweCArIHZhcigtLWNyaXNwLWVudi1kZXZpY2UtaW5zZXQtbGVmdCkpIGNhbGMoNnB4ICsgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1yaWdodCkpIWltcG9ydGFudDt6LWluZGV4OjMhaW1wb3J0YW50O3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1zaGFwZXM6YWZ0ZXJ7b3BhY2l0eTouMSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvc2hhcGVzLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjI2MHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS00LXBvaW50LXN0YXJzOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvNC1wb2ludC1zdGFycy5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTozMnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1hbmNob3JzLWF3YXk6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9hbmNob3JzLWF3YXkuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6NzJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtYXV0dW1uOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvYXV0dW1uLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjYwcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLWF6dGVjOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvYXp0ZWMuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6MzJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtYmFtYm9vOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvYmFtYm9vLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjMycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLWJhbmstbm90ZTphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL2Jhbmstbm90ZS5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTo3MnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1iYXRocm9vbS1mbG9vcjphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL2JhdGhyb29tLWZsb29yLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjMycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLWJldmVsLWNpcmNsZTphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL2JldmVsLWNpcmNsZS5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTozNHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1ib3hlczphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL2JveGVzLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjMwcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLWJyaWNrLXdhbGw6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9icmljay13YWxsLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjMycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLWJ1YmJsZXM6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9idWJibGVzLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjgwcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLWNhZ2U6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9jYWdlLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjQwcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLWNoYXJsaWUtYnJvd246YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9jaGFybGllLWJyb3duLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjM0cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLWNodXJjaC1vbi1zdW5kYXk6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9jaHVyY2gtb24tc3VuZGF5LnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjcwcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLWNpcmNsZXMtYW5kLXNxdWFyZXM6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9jaXJjbGVzLWFuZC1zcXVhcmVzLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjQ4cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLWNpcmN1aXQtYm9hcmQ6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9jaXJjdWl0LWJvYXJkLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjE4MHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1jb25uZWN0aW9uczphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL2Nvbm5lY3Rpb25zLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjQycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLWNvcmstc2NyZXc6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9jb3JrLXNjcmV3LnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjM4cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLWN1cnJlbnQ6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9jdXJyZW50LnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjY2cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLWN1cnRhaW46YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9jdXJ0YWluLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjY0cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLWRlYXRoLXN0YXI6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9kZWF0aC1zdGFyLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjQ0cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLWRpYWdvbmFsLWxpbmVzOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvZGlhZ29uYWwtbGluZXMuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6MThweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtZGlhZ29uYWwtc3RyaXBlczphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL2RpYWdvbmFsLXN0cmlwZXMuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6MjBweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtZG9taW5vczphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL2RvbWlub3Muc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6MTEwcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLWVuZGxlc3MtY2xvdWRzOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvZW5kbGVzcy1jbG91ZHMuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6NjBweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtZXllczphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL2V5ZXMuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6NDRweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtZmFsbGluZy10cmlhbmdsZXM6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9mYWxsaW5nLXRyaWFuZ2xlcy5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTozNHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1mYW5jeS1yZWN0YW5nbGVzOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvZmFuY3ktcmVjdGFuZ2xlcy5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTo2NHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1mbGlwcGVkLWRpYW1vbmRzOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvZmxpcHBlZC1kaWFtb25kcy5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTozMHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1mbG9hdGluZy1jb2dzOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvZmxvYXRpbmctY29ncy5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZToyNDBweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtZmxvb3ItdGlsZTphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL2Zsb29yLXRpbGUuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6MzJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtZ2xhbW9yb3VzOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvZ2xhbW9yb3VzLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjE0MHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1ncmFwaC1wYXBlcjphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL2dyYXBoLXBhcGVyLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjEyMHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1ncm9vdnk6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9ncm9vdnkuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6MjZweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtaGFwcHktaW50ZXJzZWN0aW9uOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvaGFwcHktaW50ZXJzZWN0aW9uLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjY4cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLWhlYXZ5LXJhaW46YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9oZWF2eS1yYWluLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjIwcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLWhleGFnb25zOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvaGV4YWdvbnMuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6MzJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtaGlkZW91dDphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL2hpZGVvdXQuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6NDJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtaG91bmRzdG9vdGg6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9ob3VuZHN0b290aC5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTo0MnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1pLWxpa2UtZm9vZDphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL2ktbGlrZS1mb29kLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjI0MHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1pbnRlcnNlY3RpbmctY2lyY2xlczphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL2ludGVyc2VjdGluZy1jaXJjbGVzLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjQycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLWtpd2k6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9raXdpLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjQ4cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLWxlYWY6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9sZWFmLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjEwMHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1saW5lLWluLW1vdGlvbjphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL2xpbmUtaW4tbW90aW9uLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjEyMHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1saXBzOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvbGlwcy5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTo4MHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1saXNib246YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9saXNib24uc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6OTBweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtbWVsdDphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL21lbHQuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6MzJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtbW9yb2NjYW46YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9tb3JvY2Nhbi5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTo0MHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1tb3JwaGluZy1kaWFtb25kczphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL21vcnBoaW5nLWRpYW1vbmRzLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjY4cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLW92ZXJsYXBwaW5nLWNpcmNsZXM6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9vdmVybGFwcGluZy1jaXJjbGVzLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjYycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLW92ZXJsYXBwaW5nLWRpYW1vbmRzOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvb3ZlcmxhcHBpbmctZGlhbW9uZHMuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6NTJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtb3ZlcmxhcHBpbmctaGV4YWdvbnM6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9vdmVybGFwcGluZy1oZXhhZ29ucy5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTo1MnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1wYXJrYXktZmxvb3I6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9wYXJrYXktZmxvb3Iuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6NTBweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtcGlhbm8tbWFuOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvcGlhbm8tbWFuLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjcwcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLXBpZS1mYWN0b3J5OmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvcGllLWZhY3Rvcnkuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6NTBweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtcGl4ZWwtZG90czphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL3BpeGVsLWRvdHMuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6NTBweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtcGx1czphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL3BsdXMuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6NzJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtcG9sa2EtZG90czphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL3BvbGthLWRvdHMuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6NDBweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtcmFpbHM6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9yYWlscy5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTozNHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1yYWluOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvcmFpbi5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTozMnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1yYW5kb20tc2hhcGVzOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvcmFuZG9tLXNoYXBlcy5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTo3MnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1yb3VuZGVkLXBsdXMtY29ubmVjdGVkOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvcm91bmRlZC1wbHVzLWNvbm5lY3RlZC5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTo2MnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1zaWduYWw6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9zaWduYWwuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6NzJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtc2t1bGxzOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvc2t1bGxzLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjEyMHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1zbGFudGVkLXN0YXJzOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvc2xhbnRlZC1zdGFycy5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTozMnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1zcXVhcmVzLWluLXNxdWFyZXM6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9zcXVhcmVzLWluLXNxdWFyZXMuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6NTRweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtc3F1YXJlczphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL3NxdWFyZXMuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6MzBweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtc3RhbXAtY29sbGVjdGlvbjphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL3N0YW1wLWNvbGxlY3Rpb24uc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6NTJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtc3RlZWwtYmVhbXM6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy9zdGVlbC1iZWFtcy5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTo0OHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS1zdHJpcGVzOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvc3RyaXBlcy5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZToyMnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS10ZW1wbGU6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy90ZW1wbGUuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6OTRweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtdGljLXRhYy10b2U6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy90aWMtdGFjLXRvZS5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTo2NHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS10aW55LWNoZWNrZXJzOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvdGlueS1jaGVja2Vycy5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTozMnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS12b2xjYW5vLWxhbXA6YWZ0ZXJ7b3BhY2l0eTouMDc1IWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC90aWxlcy92b2xjYW5vLWxhbXAuc3ZnPzIzZTQyMTIpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6NDJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLXRpbGUtd2FsbHBhcGVyOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvd2FsbHBhcGVyLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjkwcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLXdpZ2dsZTphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL3dpZ2dsZS5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTo2MHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS14LWVxdWFsczphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL3gtZXF1YWxzLnN2Zz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjUwcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS10aWxlLXl5eTphZnRlcntvcGFjaXR5Oi4wNzUhaW1wb3J0YW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2xpZW50LmNyaXNwLmNoYXQvc3RhdGljL2ltYWdlcy9jaGF0L3RpbGVzL3l5eS5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTo0MnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tdGlsZS16aWctemFnOmFmdGVye29wYWNpdHk6LjA3NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jbGllbnQuY3Jpc3AuY2hhdC9zdGF0aWMvaW1hZ2VzL2NoYXQvdGlsZXMvemlnLXphZy5zdmc/MjNlNDIxMikhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTo1MnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tbW9kZS1ob21le2hlaWdodDoxNDBweH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tbW9kZS1jaGF0Om5vdCguY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tbW9kZS1jaGF0LmNjLTF3cmo4LS1jaGF0LWNvbnZlcnNhdGlvbnMpLmNjLTF3cmo4LS1zdGF0dXMtaW5pdGlhbHtoZWlnaHQ6MTgwcHh9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLW1vZGUtY2hhdDpub3QoLmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLW1vZGUtY2hhdC5jYy0xd3JqOC0tY2hhdC1jb252ZXJzYXRpb25zKS5jYy0xd3JqOC0tc3RhdHVzLWluaXRpYWw6bm90KC5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS1tb2RlLWNoYXQ6bm90KC5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS1tb2RlLWNoYXQuY2MtMXdyajgtLWNoYXQtY29udmVyc2F0aW9ucykuY2MtMXdyajgtLXN0YXR1cy1pbml0aWFsLmNjLTF3cmo4LS1hY3Rpdml0eS1tZXRyaWNzKXtoZWlnaHQ6MTYwcHh9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLW1vZGUtY2hhdDpub3QoLmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLW1vZGUtY2hhdC5jYy0xd3JqOC0tY2hhdC1jb252ZXJzYXRpb25zKS5jYy0xd3JqOC0tc3RhdHVzLWFnZW50e2hlaWdodDoxMTBweH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tbW9kZS1jaGF0Om5vdCguY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tbW9kZS1jaGF0LmNjLTF3cmo4LS1jaGF0LWNvbnZlcnNhdGlvbnMpLmNjLTF3cmo4LS1zdGF0dXMtYWdlbnQgLmNjLWdweDRve21hcmdpbi10b3A6LTRweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLW1vZGUtY2hhdDpub3QoLmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLW1vZGUtY2hhdC5jYy0xd3JqOC0tY2hhdC1jb252ZXJzYXRpb25zKS5jYy0xd3JqOC0tc3RhdHVzLW9uZ29pbmcsLmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLW1vZGUtY2hhdC5jYy0xd3JqOC0tY2hhdC1jb252ZXJzYXRpb25ze2hlaWdodDoxMTBweH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tbW9kZS1oZWxwZGVza3toZWlnaHQ6MTYwcHh9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLW1vZGUtaGVscGRlc2suY2MtMXdyajgtLWhlbHBkZXNrLWFydGljbGV7aGVpZ2h0OjEyMHB4fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS1tb2RlLXNlYXJjaHtoZWlnaHQ6MjAwcHh9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLWhhcy10cmFuc2l0aW9ue3RyYW5zaXRpb246aGVpZ2h0IC4ycyBlYXNlLWluLW91dCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLWZ1bGwtdmlldy5jYy0xaTRsMXtib3gtc2hhZG93Omluc2V0IDAgLTFweCAycHggcmdiKHZhcigtLWNyaXNwLWNvbG9yLXNoYWRvdy1ub3JtYWwpLCAuMjQpIWltcG9ydGFudDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjAhaW1wb3J0YW50O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS1vdmVyZmxvd3tvdmVyZmxvdzp2aXNpYmxlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0taGFzLXRpbGV7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWwpLCAuMSkgMCUsIHJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbCksIC40KSA5OSUpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0taGFzLXRpbGU6YWZ0ZXIsLmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLWhhcy10aWxlOmJlZm9yZXtjb250ZW50OiIiIWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7aW5zZXQ6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLWhhcy10aWxlOmFmdGVye3otaW5kZXg6MCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0taGFzLXRpbGU6YmVmb3Jle3otaW5kZXg6MSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLWhhcy10aWxlOm5vdCguY2MtMXdyajgtLWxheW91dC1jb2xvcml6ZWQpOmFmdGVye29wYWNpdHk6LjA0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0taGFzLXRpbGU6bm90KC5jYy0xd3JqOC0tbGF5b3V0LWNvbG9yaXplZCk6YmVmb3Jle2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSwgMCkgMCUsIHJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbCkpIDEwMCUpIWltcG9ydGFudDtvcGFjaXR5Oi42IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tc21hbGwtdmlldyAuY2MtcTM5Yjl7cGFkZGluZy1pbmxpbmU6NHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tc21hbGwtdmlldyAuY2MtZ3B4NG97cGFkZGluZzowIDZweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLWxhcmdlLXZpZXcgLmNjLXEzOWI5e3BhZGRpbmctaW5saW5lOjEycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS1sYXJnZS12aWV3IC5jYy1xMzliOSAuY2MtMXM3dm97cGFkZGluZy1pbmxpbmU6MTRweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLW1vYmlsZS1zZGsgLmNjLXEzOWI5e3BhZGRpbmctaW5saW5lOjEycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3cmo4LS1sb2NrLW1heGltaXplZCwuY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tbG9jay1tYXhpbWl6ZWQgKntjdXJzb3I6ZGVmYXVsdCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLWxvY2stbWF4aW1pemVkIC5jYy1xMzliOSAuY2MtMXM3dm8sLmNyaXNwLWNsaWVudCAuY2MtMXdyajgtLWxvY2stbWF4aW1pemVkIC5jYy1xMzliOSAuY2MtMXM3dm8gKntjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdyajg6bm90KC5jYy0xd3JqOC0tbGF5b3V0LWNvbG9yaXplZCl7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MCFpbXBvcnRhbnQ7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd3JqOC0tY29sb3ItbW9kZS1kYXJrLmNjLTF3cmo4LS1oYXMtdGlsZTphZnRlcntmaWx0ZXI6aW52ZXJ0KCkhaW1wb3J0YW50O29wYWNpdHk6LjA1IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xcDc0ZXtwYWRkaW5nLWJsb2NrOjAgY2FsYyg0MHB4ICsgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1ib3R0b20pKSFpbXBvcnRhbnQ7cGFkZGluZy1pbmxpbmU6Y2FsYygxNXB4ICsgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1sZWZ0KSkgY2FsYygxNXB4ICsgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1yaWdodCkpIWltcG9ydGFudDtmbGV4OjEhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiBhdXRvIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xcDc0ZSAuY2MtemtkaDJ7bWFyZ2luLXRvcDoyN3B4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xcDc0ZSAuY2MtMTB3MGR7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtYmxhY2stbm9ybWFsKSkhaW1wb3J0YW50O3BhZGRpbmctaW5saW5lOjEwcHghaW1wb3J0YW50O2ZvbnQtc2l6ZToxMy4ycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFwNzRlIC5jYy0yc3R2MnttYXJnaW4tdG9wOjE0cHghaW1wb3J0YW50O2xpc3Qtc3R5bGUtdHlwZTpub25lIWltcG9ydGFudDtkaXNwbGF5OmdyaWQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFwNzRlIC5jYy0yc3R2MiAuY2MtMXJlcGJ7cGFkZGluZzowIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFwNzRlIC5jYy0yc3R2MiAuY2MtMXJlcGIsLmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyIC5jYy0xcmVwYiAuY2MtMTN0M2csLmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyIC5jYy0xcmVwYiAuY2MteGFmOWZ7Ym9yZGVyLXJhZGl1czoxMHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xcDc0ZSAuY2MtMnN0djIgLmNjLTFyZXBiIC5jYy0xM3QzZywuY3Jpc3AtY2xpZW50IC5jYy0xcDc0ZSAuY2MtMnN0djIgLmNjLTFyZXBiIC5jYy14YWY5Znt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgNTBtcyBsaW5lYXIhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFwNzRlIC5jYy0yc3R2MiAuY2MtMXJlcGIgLmNjLTEzdDNne2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDstbW96LWNvbHVtbi1nYXA6OXB4IWltcG9ydGFudDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O2NvbHVtbi1nYXA6OXB4IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFwNzRlIC5jYy0yc3R2MiAuY2MtMXJlcGIgLmNjLTEzdDNnLC5jcmlzcC1jbGllbnQgLmNjLTFwNzRlIC5jYy0yc3R2MiAuY2MtMXJlcGIgLmNjLTEzdDNnPip7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFwNzRlIC5jYy0yc3R2MiAuY2MtMXJlcGIgLmNjLTEzdDNnOmZvY3VzLXZpc2libGV7b3V0bGluZS1vZmZzZXQ6LTRweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyIC5jYy0xcmVwYiAuY2MteGFmOWZ7bGluZS1oZWlnaHQ6MjBweDtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC1ibGFjay1ub3JtYWwpKSFpbXBvcnRhbnQ7dGV4dC1vdmVyZmxvdzplbGxpcHNpcyFpbXBvcnRhbnQ7d2hpdGUtc3BhY2U6bm93cmFwIWltcG9ydGFudDttYXJnaW4tdG9wOjJweCFpbXBvcnRhbnQ7cGFkZGluZzo2cHggMTRweCFpbXBvcnRhbnQ7Zm9udC1zaXplOjEyLjRweCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xcDc0ZSAuY2MtMnN0djIgLmNjLTFyZXBiIC5jYy14YWY5ZjpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFwNzRlIC5jYy0yc3R2MiAuY2MtMXJlcGIgLmNjLXhhZjlmOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhY2tncm91bmQtbGlnaHQpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyIC5jYy0xcmVwYiAuY2MteGFmOWY6YWN0aXZle2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsIHJnYmEodmFyKC0tY3Jpc3AtY29sb3ItYmFja2dyb3VuZC1saWdodCksIDEpIDk4JSwgcmdiYSh2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCksIDEpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyIC5jYy0xcmVwYiAuY2MteGFmOWY6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLW9mZnNldDowIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xcDc0ZSAuY2MtMnN0djIgLmNjLTFyZXBiIC5jYy0xeTVpc3toZWlnaHQ6MTJweDtib3JkZXItd2lkdGg6MnB4IWltcG9ydGFudDt3aWR0aDoxMnB4IWltcG9ydGFudDttYXJnaW46MTZweCBhdXRvIDExcHghaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFwNzRlIC5jYy0yc3R2MiAuY2MtMXJlcGIgLmNjLTl6cHd4LC5jcmlzcC1jbGllbnQgLmNjLTFwNzRlIC5jYy0yc3R2MiAuY2MtMXJlcGIgLmNjLTUwYWF0e2ZsZXg6MSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyIC5jYy0xcmVwYiAuY2MtNTBhYXQsLmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyIC5jYy0xcmVwYiAuY2MtYzlnMzB7LW1vei1jb2x1bW4tZ2FwOjZweCFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudDtjb2x1bW4tZ2FwOjZweCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xcDc0ZSAuY2MtMnN0djIgLmNjLTFyZXBiIC5jYy01MGFhdHtsaW5lLWhlaWdodDoxNnB4O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDtmb250LXNpemU6MTMuNnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xcDc0ZSAuY2MtMnN0djIgLmNjLTFyZXBiIC5jYy1jOWczMHtsaW5lLWhlaWdodDoxNXB4O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWdyZXktbm9ybWFsKSkhaW1wb3J0YW50O21hcmdpbi10b3A6OHB4IWltcG9ydGFudDtmb250LXNpemU6MTIuNHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xcDc0ZSAuY2MtMnN0djIgLmNjLTFyZXBiIC5jYy0xbWZib3toZWlnaHQ6MThweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS01MDApKSFpbXBvcnRhbnQ7ZmxleDpub25lIWltcG9ydGFudDt3aWR0aDoxOHB4IWltcG9ydGFudDttYXJnaW4taW5saW5lLXN0YXJ0Oi0ycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFwNzRlIC5jYy0yc3R2MiAuY2MtMXJlcGIgLmNjLTFjeWs0e2ZsZXg6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyIC5jYy0xcmVwYiAuY2MtOWU2Y3B7LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjE2JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNiUyMDE2JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTEuNzc4JTIwNy40MzVhLjguOCUyMDAlMjAwJTIwMSUyMDAlMjAxLjEzM2wtNC44JTIwNC44YS44MDEuODAxJTIwMCUyMDAlMjAxLTEuMTMzLTEuMTMzTDEwLjA4JTIwOCUyMDUuODQ4JTIwMy43NjVBLjgwMS44MDElMjAwJTIwMCUyMDElMjA2Ljk4JTIwMi42MzJsNC44JTIwNC44eiUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7aGVpZ2h0OjE0cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LW5vcm1hbCkpIWltcG9ydGFudDt3aWR0aDoxNHB4IWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7ZmxleDpub25lIWltcG9ydGFudDttYXJnaW4taW5saW5lLWVuZDotN3B4IWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7bWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50O21hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7bWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xcDc0ZSAuY2MtMnN0djIgLmNjLTFyZXBiW2RhdGEtdHlwZT1zdGF0dXNdIC5jYy1jOWczMDpiZWZvcmV7aGVpZ2h0OjE2cHg7Y29udGVudDoiIiFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3IhaW1wb3J0YW50O2ZsZXg6bm9uZSFpbXBvcnRhbnQ7d2lkdGg6MTZweCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50Oy13ZWJraXQtbWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O21hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDstd2Via2l0LW1hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDttYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50O21hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyIC5jYy0xcmVwYltkYXRhLXR5cGU9c3RhdHVzXVtkYXRhLWhlYWx0aD1oZWFsdGh5XSAuY2MtYzlnMzB7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JlZW4tbm9ybWFsKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFwNzRlIC5jYy0yc3R2MiAuY2MtMXJlcGJbZGF0YS10eXBlPXN0YXR1c11bZGF0YS1oZWFsdGg9aGVhbHRoeV0gLmNjLWM5ZzMwOmJlZm9yZXstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMTYlMjIlMjBoZWlnaHQlM0QlMjIxNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE2JTIwMTYlMjIlM0UlM0NwYXRoJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUyMGQlM0QlMjJNOCUyMDBhOCUyMDglMjAwJTIwMSUyMDElMjAwJTIwMTZBOCUyMDglMjAwJTIwMCUyMDElMjA4JTIwMG0zLjIzMiUyMDUuMTVhLjQ5LjQ5JTIwMCUyMDAlMjAwLS42ODUuMTA5bC0zLjU4NiUyMDQuOTMtMS41NTUtMS41NTZhLjQ5MS40OTElMjAwJTIwMCUyMDAtLjY5NC42OTRsMS45NjElMjAxLjk2MWEuNDkuNDklMjAwJTIwMCUyMDAlMjAuNzQzLS4wNThsMy45MjMtNS4zOTRhLjQ5LjQ5JTIwMCUyMDAlMjAwLS4xMDktLjY4NHolMjIlMkYlM0UlM0MlMkZzdmclM0UpOy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xcDc0ZSAuY2MtMnN0djIgLmNjLTFyZXBiW2RhdGEtdHlwZT1zdGF0dXNdW2RhdGEtaGVhbHRoPXNpY2tdIC5jYy1jOWczMHtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1vcmFuZ2UtZGFyaykpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xcDc0ZSAuY2MtMnN0djIgLmNjLTFyZXBiW2RhdGEtdHlwZT1zdGF0dXNdW2RhdGEtaGVhbHRoPXNpY2tdIC5jYy1jOWczMDpiZWZvcmV7LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjE2JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNiUyMDE2JTIyJTNFJTNDcGF0aCUyMGZpbGwtcnVsZSUzRCUyMmV2ZW5vZGQlMjIlMjBkJTNEJTIyTTglMjAwYTglMjA4JTIwMCUyMDElMjAxJTIwMCUyMDE2QTglMjA4JTIwMCUyMDAlMjAxJTIwOCUyMDBtLjA3NSUyMDEwYS42NzUuNjc1JTIwMCUyMDElMjAwJTIwMCUyMDEuMzUuNjc1LjY3NSUyMDAlMjAwJTIwMCUyMDAtMS4zNU04LjElMjA0Ljc1YS41LjUlMjAwJTIwMCUyMDAtLjUuNXYzYS41LjUlMjAwJTIwMCUyMDAlMjAxJTIwMHYtM2EuNS41JTIwMCUyMDAlMjAwLS41LS41JTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyIC5jYy0xcmVwYltkYXRhLXR5cGU9c3RhdHVzXVtkYXRhLWhlYWx0aD1kZWFkXSAuY2MtYzlnMzB7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtcmVkLWRhcmspKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyIC5jYy0xcmVwYltkYXRhLXR5cGU9c3RhdHVzXVtkYXRhLWhlYWx0aD1kZWFkXSAuY2MtYzlnMzA6YmVmb3Jley0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxNiUyMiUyMGhlaWdodCUzRCUyMjE2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTYlMjAxNiUyMiUzRSUzQ3BhdGglMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTIwZCUzRCUyMk04JTIwMGE4JTIwOCUyMDAlMjAxJTIwMSUyMDAlMjAxNkE4JTIwOCUyMDAlMjAwJTIwMSUyMDglMjAwTTUuNzElMjA1LjAwNGEuNS41JTIwMCUyMDElMjAwLS43MDYuNzA3TDcuMyUyMDguMDA5bC0yLjI5NyUyMDIuMjk4YS41LjUlMjAwJTIwMCUyMDAlMjAuNzA3LjcwN2wyLjI5OC0yLjI5OCUyMDIuMjk4JTIwMi4yOThhLjUuNSUyMDAlMjAxJTIwMCUyMC43MDctLjcwN0w4LjcxNiUyMDguMDA5bDIuMjk4LTIuMjk4YS41LjUlMjAwJTIwMSUyMDAtLjcwNy0uNzA3TDguMDA5JTIwNy4zMDJ6JTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyIC5jYy0xcmVwYltkYXRhLXR5cGU9c2VhcmNoXSAuY2MtNTBhYXQ6YmVmb3Jley0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxNiUyMiUyMGhlaWdodCUzRCUyMjE2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTYlMjAxNiUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTEyJTIwNi44YTUuMiUyMDUuMiUyMDAlMjAwJTIwMS0xJTIwMy4wNjhsMy4xNjUlMjAzLjE2N2EuODAxLjgwMSUyMDAlMjAwJTIwMS0xLjEzMyUyMDEuMTMzTDkuODY4JTIwMTFBNS4yJTIwNS4yJTIwMCUyMDAlMjAxJTIwMS42JTIwNi44YzAtMi44NzIlMjAyLjMyNy01LjIlMjA1LjItNS4yUzEyJTIwMy45MjclMjAxMiUyMDYuOG0tNS4yJTIwMy42YTMuNiUyMDMuNiUyMDAlMjAwJTIwMCUyMDAtNy4yJTIwMy42JTIwMy42JTIwMCUyMDAlMjAwJTIwMCUyMDcuMiUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7aGVpZ2h0OjE2cHg7Y29udGVudDoiIiFpbXBvcnRhbnQ7d2lkdGg6MTZweCFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6Y3VycmVudENvbG9yIWltcG9ydGFudDtmbGV4Om5vbmUhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDstd2Via2l0LW1hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDttYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7bWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50Oy13ZWJraXQtbWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDttYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFwNzRlIC5jYy0yc3R2MiAuY2MtMXJlcGItLWRpc2FibGVkIC5jYy0xM3QzZywuY3Jpc3AtY2xpZW50IC5jYy0xcDc0ZSAuY2MtMnN0djIgLmNjLTFyZXBiLS1kaXNhYmxlZCAuY2MteGFmOWZ7cG9pbnRlci1ldmVudHM6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyIC5jYy0xcmVwYi0tZGlzYWJsZWQgLmNjLTEzdDNnPiosLmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyIC5jYy0xcmVwYi0tZGlzYWJsZWQgLmNjLXhhZjlme29wYWNpdHk6LjM1IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xcDc0ZSAuY2MtMnN0djIgLmNjLTFyZXBiLS1wYWRkZWR7cGFkZGluZzo1cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFwNzRlIC5jYy0yc3R2Mi0tcHJpbWFyeXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDEsMWZyKSFpbXBvcnRhbnQ7Z2FwOjdweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyLS1wcmltYXJ5IC5jYy0xcmVwYntiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYWNrZ3JvdW5kLXVsdHJhLWxpZ2h0KSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFwNzRlIC5jYy0yc3R2Mi0tcHJpbWFyeSAuY2MtMXJlcGIgLmNjLTEzdDNnLC5jcmlzcC1jbGllbnQgLmNjLTFwNzRlIC5jYy0yc3R2Mi0tcHJpbWFyeSAuY2MtMXJlcGIgLmNjLXhhZjlme3BhZGRpbmctaW5saW5lOjI1cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFwNzRlIC5jYy0yc3R2Mi0tcHJpbWFyeSAuY2MtMXJlcGIgLmNjLTEzdDNne3BhZGRpbmctYmxvY2s6MTRweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyLS1wcmltYXJ5IC5jYy0xcmVwYiAuY2MtMTN0M2c6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFja2dyb3VuZC1saWdodCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xcDc0ZSAuY2MtMnN0djItLXByaW1hcnkgLmNjLTFyZXBiIC5jYy0xM3QzZzphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gc3JnYiwgcmdiYSh2YXIoLS1jcmlzcC1jb2xvci1iYWNrZ3JvdW5kLWxpZ2h0KSwgMSkgOTglLCByZ2JhKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbm9ybWFsKSwgMSkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xcDc0ZSAuY2MtMnN0djItLXByaW1hcnkgLmNjLTFyZXBiIC5jYy0xcjJqNHttYXJnaW4tdG9wOjVweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyLS1wcmltYXJ5IC5jYy0xcmVwYi0tcGFkZGVkIC5jYy0xM3QzZ3tiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYWNrZ3JvdW5kLWxpZ2h0KSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFwNzRlIC5jYy0yc3R2Mi0tcHJpbWFyeSAuY2MtMXJlcGItLXBhZGRlZCAuY2MtMTN0M2c6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gc3JnYiwgcmdiYSh2YXIoLS1jcmlzcC1jb2xvci1iYWNrZ3JvdW5kLWxpZ2h0KSwgMSkgOTglLCByZ2JhKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbm9ybWFsKSwgMSkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xcDc0ZSAuY2MtMnN0djItLXByaW1hcnkgLmNjLTFyZXBiLS1wYWRkZWQgLmNjLTEzdDNnOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBzcmdiLCByZ2JhKHZhcigtLWNyaXNwLWNvbG9yLWJhY2tncm91bmQtbGlnaHQpLCAxKSA5NiUsIHJnYmEodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwpLCAxKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFwNzRlIC5jYy0yc3R2Mi0tcHJpbWFyeSAuY2MtMXJlcGItLXBhZGRlZCAuY2MtMTN0M2csLmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyLS1wcmltYXJ5IC5jYy0xcmVwYi0tcGFkZGVkIC5jYy14YWY5ZntwYWRkaW5nLWlubGluZToyMHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xcDc0ZSAuY2MtMnN0djItLXNlY29uZGFyeXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsMWZyKSFpbXBvcnRhbnQ7Z2FwOjEycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFwNzRlIC5jYy0yc3R2Mi0tc2Vjb25kYXJ5IC5jYy0xcmVwYntib3JkZXI6MS41cHggc29saWQgcmdiKHZhcigtLWNyaXNwLWNvbG9yLXNlcGFyYXRvci1ub3JtYWwpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyLS1zZWNvbmRhcnkgLmNjLTFyZXBiOmhvdmVye2JvcmRlci1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3Itc2VwYXJhdG9yLWRhcmspKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyLS1zZWNvbmRhcnkgLmNjLTFyZXBiIC5jYy0xM3QzZ3twYWRkaW5nOjEycHggMTVweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXA3NGUgLmNjLTJzdHYyLS1zZWNvbmRhcnkgLmNjLTFyZXBiIC5jYy01MGFhdHttYXJnaW4tdG9wOi0xcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFwNzRlLS1mdWxsLXZpZXd7cGFkZGluZy1pbmxpbmU6Y2FsYygxMHB4ICsgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1sZWZ0KSkgY2FsYygxMHB4ICsgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1yaWdodCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50W2Rpcj1ydGxdIC5jYy0xcDc0ZSAuY2MtMnN0djIgLmNjLTFyZXBiIC5jYy05ZTZjcHt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZykhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXp5Z3M4e21hcmdpbjowIWltcG9ydGFudDtsaXN0LXN0eWxlLXR5cGU6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtenlnczggLmNjLTdkdHB3e21hcmdpbjowIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXp5Z3M4IC5jYy03ZHRwdyAuY2MtaWV5eW57LW1vei1jb2x1bW4tZ2FwOjEycHghaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6IzAwMDAhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTBweCFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudDtjb2x1bW4tZ2FwOjEycHghaW1wb3J0YW50O3BhZGRpbmctYmxvY2s6MTJweCFpbXBvcnRhbnQ7cGFkZGluZy1pbmxpbmU6MTZweCAzNXB4IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50O3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy16eWdzOCAuY2MtN2R0cHcgLmNjLWlleXluIC5jYy1ldnkzYSwuY3Jpc3AtY2xpZW50IC5jYy16eWdzOCAuY2MtN2R0cHcgLmNjLWlleXluIC5jYy1uN3J2ZSwuY3Jpc3AtY2xpZW50IC5jYy16eWdzOCAuY2MtN2R0cHcgLmNjLWlleXluIC5jYy00emlsc3t3b3JkLWJyZWFrOm5vcm1hbCFpbXBvcnRhbnQ7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZSFpbXBvcnRhbnQ7LXdlYmtpdC1oeXBoZW5zOmF1dG8haW1wb3J0YW50O2h5cGhlbnM6YXV0byFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtenlnczggLmNjLTdkdHB3IC5jYy1pZXl5biAuY2MtbjdydmUsLmNyaXNwLWNsaWVudCAuY2MtenlnczggLmNjLTdkdHB3IC5jYy1pZXl5biAuY2MtNHppbHN7bGluZS1oZWlnaHQ6MThweDtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC1ncmV5LWRhcmspKSFpbXBvcnRhbnQ7dGV4dC1vdmVyZmxvdzplbGxpcHNpcyFpbXBvcnRhbnQ7Ym94LW9yaWVudDp2ZXJ0aWNhbCFpbXBvcnRhbnQ7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsIWltcG9ydGFudDttYXJnaW4tdG9wOjZweCFpbXBvcnRhbnQ7Zm9udC1zaXplOjEyLjZweCFpbXBvcnRhbnQ7ZGlzcGxheTotd2Via2l0LWJveCFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy16eWdzOCAuY2MtN2R0cHcgLmNjLWlleXluIC5jYy1ldnkzYXtsaW5lLWhlaWdodDoxOHB4O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDtmb250LXNpemU6MTMuNnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy16eWdzOCAuY2MtN2R0cHcgLmNjLWlleXluIC5jYy1ldnkzYTpiZWZvcmV7aGVpZ2h0OjE0cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtNTAwKSkhaW1wb3J0YW50O3ZlcnRpY2FsLWFsaWduOm1pZGRsZSFpbXBvcnRhbnQ7bWFyZ2luLXRvcDotMnB4IWltcG9ydGFudDt3aWR0aDoxNnB4IWltcG9ydGFudDttYXJnaW4taW5saW5lLWVuZDo5cHghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDstd2Via2l0LW1hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDttYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7bWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50Oy13ZWJraXQtbWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDttYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXp5Z3M4IC5jYy03ZHRwdyAuY2MtaWV5eW4gLmNjLWV2eTNhLS1zaW5nbGUtbGluZXt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzIWltcG9ydGFudDt3aGl0ZS1zcGFjZTpub3dyYXAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtenlnczggLmNjLTdkdHB3IC5jYy1pZXl5biAuY2MtbjdydmV7bWF4LWhlaWdodDozNnB4Oy13ZWJraXQtbGluZS1jbGFtcDoyIWltcG9ydGFudDtsaW5lLWNsYW1wOjIhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXp5Z3M4IC5jYy03ZHRwdyAuY2MtaWV5eW4gLmNjLTR6aWxze21heC1oZWlnaHQ6MThweDstd2Via2l0LWxpbmUtY2xhbXA6MSFpbXBvcnRhbnQ7bGluZS1jbGFtcDoxIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy16eWdzOCAuY2MtN2R0cHcgLmNjLWlleXluIC5jYy1rODZlMntmbGV4OjEhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXp5Z3M4IC5jYy03ZHRwdyAuY2MtaWV5eW4gLmNjLTdoejYye2ZsZXg6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtenlnczggLmNjLTdkdHB3IC5jYy1pZXl5bi0tYWN0aXZle2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS11bHRyYS1saWdodCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy16eWdzOCAuY2MtN2R0cHcgLmNjLWlleXluLS1hY3RpdmU6YWN0aXZle2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsIHJnYmEodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LXVsdHJhLWxpZ2h0KSwgMSkgOTclLCByZ2JhKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbm9ybWFsKSwgMSkpIWltcG9ydGFudDt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjFzIGxpbmVhciFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtenlnczggLmNjLTdkdHB3IC5jYy1pZXl5bjphZnRlcnstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMTYlMjIlMjBoZWlnaHQlM0QlMjIxNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE2JTIwMTYlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0xMS43NzglMjA3LjQzNWEuOC44JTIwMCUyMDAlMjAxJTIwMCUyMDEuMTMzbC00LjglMjA0LjhhLjgwMS44MDElMjAwJTIwMCUyMDEtMS4xMzMtMS4xMzNMMTAuMDglMjA4JTIwNS44NDglMjAzLjc2NUEuODAxLjgwMSUyMDAlMjAwJTIwMSUyMDYuOTglMjAyLjYzMmw0LjglMjA0Ljh6JTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTtoZWlnaHQ6MTZweDtjb250ZW50OiIiIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktbm9ybWFsKSkhaW1wb3J0YW50O2luc2V0LWlubGluZS1lbmQ6MTJweCFpbXBvcnRhbnQ7d2lkdGg6MTZweCFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7dG9wOjUwJSFpbXBvcnRhbnQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O21hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDstd2Via2l0LW1hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDttYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50O21hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtenlnczggLmNjLTdkdHB3OmFmdGVye2hlaWdodDoxcHg7Y29udGVudDoiIiFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3Itc2VwYXJhdG9yLW5vcm1hbCkpIWltcG9ydGFudDttYXJnaW4tYmxvY2s6LTFweCFpbXBvcnRhbnQ7bWFyZ2luLWlubGluZToxNnB4IWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy16eWdzOCAuY2MtN2R0cHc6bGFzdC1vZi10eXBlOmFmdGVye2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtenlnczgtLWhlbHBkZXNrIC5jYy03ZHRwdyAuY2MtaWV5eW4tLWFydGljbGVzIC5jYy1ldnkzYTpiZWZvcmV7LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjE3JTIyJTIwaGVpZ2h0JTNEJTIyMTQlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNyUyMDE0JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTEuNTMlMjAwYTIuNDclMjAyLjQ3JTIwMCUyMDAlMjAwLTIuNDcxJTIwMi40N3Y4LjIzNmEuODI0LjgyNCUyMDAlMjAwJTIwMS0xLjY0NyUyMDBWMi40N0EyLjQ3JTIwMi40NyUyMDAlMjAwJTIwMCUyMDQuOTQyJTIwMEguODIzQS44MjQuODI0JTIwMCUyMDAlMjAwJTIwMCUyMC44MjR2MTEuNTI5YzAlMjAuNDU1LjM2OS44MjMuODI0LjgyM2g1Ljk5MmMuMjg1LjQ5LjgxLjgyNCUyMDEuNDIuODI0YTEuNjQlMjAxLjY0JTIwMCUyMDAlMjAwJTIwMS40MTgtLjgyNGg1Ljk5M2EuODI0LjgyNCUyMDAlMjAwJTIwMCUyMC44MjQtLjgyM1YuODIzQS44MjQuODI0JTIwMCUyMDAlMjAwJTIwMTUuNjQ3JTIwMHolMjIlMkYlM0UlM0MlMkZzdmclM0UpO2NvbnRlbnQ6IiIhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50W2Rpcj1ydGxdIC5jYy16eWdzOCAuY2MtN2R0cHcgLmNjLWlleXluOmFmdGVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpcm90YXRlKDE4MGRlZykhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFvN2V2e3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xbzdldiAuY2MtNnB5dXR7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLXJldmVyc2UpKSFpbXBvcnRhbnQ7cGFkZGluZy1pbmxpbmU6MThweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMW83ZXYgLmNjLTZweXV0IC5jYy0xN2E3NntoZWlnaHQ6MTZweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS1yZXZlcnNlKSkhaW1wb3J0YW50O3ZlcnRpY2FsLWFsaWduOm1pZGRsZSFpbXBvcnRhbnQ7bWFyZ2luLWlubGluZS1lbmQ6OHB4IWltcG9ydGFudDt3aWR0aDoxNnB4IWltcG9ydGFudDttYXJnaW4tdG9wOi0ycHghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDstd2Via2l0LW1hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDttYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7bWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50Oy13ZWJraXQtbWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDttYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFvN2V2IC5jYy12azM1N3tsaW5lLWhlaWdodDoxOHB4O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXJlZC1ub3JtYWwpKSFpbXBvcnRhbnQ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O21hcmdpbi10b3A6MTJweCFpbXBvcnRhbnQ7Zm9udC1zaXplOjEyLjhweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMW83ZXYtLWFkZCAuY2MtNnB5dXQgLmNjLTE3YTc2ey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxNiUyMiUyMGhlaWdodCUzRCUyMjE2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTYlMjAxNiUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTglMjAwYTglMjA4JTIwMCUyMDElMjAxJTIwMCUyMDE2QTglMjA4JTIwMCUyMDAlMjAxJTIwOCUyMDBtMCUyMDRhLjc1Ljc1JTIwMCUyMDAlMjAwLS43NS43NXYyLjVoLTIuNWEuNzUuNzUlMjAwJTIwMCUyMDAlMjAwJTIwMS41aDIuNXYyLjVhLjc1Ljc1JTIwMCUyMDElMjAwJTIwMS41JTIwMHYtMi41aDIuNWEuNzUuNzUlMjAwJTIwMSUyMDAlMjAwLTEuNWwtMi41LS4wMDFWNC43NUEuNzUuNzUlMjAwJTIwMCUyMDAlMjA4JTIwNCUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFvN2V2LS1jaGF0IC5jYy02cHl1dCAuY2MtMTdhNzZ7LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjE2JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNiUyMDE2JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTMlMjAwYTMlMjAzJTIwMCUyMDAlMjAxJTIwMyUyMDN2N2EzJTIwMyUyMDAlMjAwJTIwMS0zJTIwM0g5LjI1YS43Ni43NiUyMDAlMjAwJTIwMC0uNDUuMTVsLTMuNiUyMDIuN2EuNzQ4Ljc0OCUyMDAlMjAwJTIwMS0xLjItLjZWMTNIM2EzJTIwMyUyMDAlMjAwJTIwMS0zLTNWM2EzJTIwMyUyMDAlMjAwJTIwMSUyMDMtM3pNNS4wNTclMjA1LjM3SDMuOTMzYS41NjMuNTYzJTIwMCUyMDAlMjAwLS41NjMuNTYzdjEuMTI0YzAlMjAuMzExLjI1Mi41NjMuNTYzLjU2M2gxLjEyNGEuNTYzLjU2MyUyMDAlMjAwJTIwMCUyMC41NjMtLjU2M1Y1LjkzM2EuNTYzLjU2MyUyMDAlMjAwJTIwMC0uNTYzLS41NjNtMy41JTIwMEg3LjQzMmEuNTYzLjU2MyUyMDAlMjAwJTIwMC0uNTYyLjU2M3YxLjEyNGMwJTIwLjMxMS4yNTIuNTYzLjU2Mi41NjNoMS4xMjVhLjU2My41NjMlMjAwJTIwMCUyMDAlMjAuNTYzLS41NjNWNS45MzNhLjU2My41NjMlMjAwJTIwMCUyMDAtLjU2My0uNTYzbTMuNSUyMDBoLTEuMTI0YS41NjMuNTYzJTIwMCUyMDAlMjAwLS41NjMuNTYzdjEuMTI0YzAlMjAuMzExLjI1Mi41NjMuNTYzLjU2M2gxLjEyNGEuNTYzLjU2MyUyMDAlMjAwJTIwMCUyMC41NjMtLjU2M1Y1LjkzM2EuNTYzLjU2MyUyMDAlMjAwJTIwMC0uNTYzLS41NjMlMjIlMkYlM0UlM0MlMkZzdmclM0UpOy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xbzdldi0tcmVkdWNlZCAuY2MtdmszNTd7bGluZS1oZWlnaHQ6MTZweDtmb250LXNpemU6MTJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWJibXN7b3V0bGluZTowIWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50O3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFiYm1zLC5jcmlzcC1jbGllbnQgLmNjLTFiYm1zIC5jYy0xYnV5YXtmbGV4OjEhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFiYm1zIC5jYy0xYnV5YXtwYWRkaW5nLWJsb2NrOjEwcHggY2FsYygxMHB4ICsgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1ib3R0b20pKSFpbXBvcnRhbnQ7cGFkZGluZy1pbmxpbmU6Y2FsYygxMHB4ICsgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1sZWZ0KSkgY2FsYygxMHB4ICsgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1yaWdodCkpIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gYXV0byFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWJibXMgLmNjLTF4MGpke3BvaW50ZXItZXZlbnRzOm5vbmUhaW1wb3J0YW50O3BhZGRpbmctYmxvY2s6MCBjYWxjKDE4cHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LWJvdHRvbSkpIWltcG9ydGFudDtwYWRkaW5nLWlubGluZTpjYWxjKDEwcHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LWxlZnQpKSBjYWxjKDEwcHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LXJpZ2h0KSkhaW1wb3J0YW50O2luc2V0LWlubGluZTowIWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O2JvdHRvbTowIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xYmJtcyAuY2MtMXgwamQ+Kntwb2ludGVyLWV2ZW50czppbml0aWFsIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xYmJtcy0tZW1wdHkgLmNjLTF4MGpke3RvcDowIWltcG9ydGFudDtib3R0b206dW5zZXQhaW1wb3J0YW50O3BhZGRpbmctdG9wOjIzcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWh5YmFne2hlaWdodDo2MHB4O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtcmVkLXVsdHJhLWxpZ2h0KSwgLjk0KSFpbXBvcnRhbnQ7dG9wOjAhaW1wb3J0YW50O2luc2V0LWlubGluZTpjYWxjKDEwcHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LWxlZnQpKSBjYWxjKDEwcHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LXJpZ2h0KSkhaW1wb3J0YW50O3otaW5kZXg6MSFpbXBvcnRhbnQ7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxNHB4KSFpbXBvcnRhbnQ7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTRweCkhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTJweCFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtaHliYWctLWNsaWNrYWJsZSwuY3Jpc3AtY2xpZW50IC5jYy1oeWJhZy0tY2xpY2thYmxlICp7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWh5YmFnLS1sYXlvdXQtY29sb3JpemVke3RvcDoxMHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0zbW5lbXtwYWRkaW5nLWlubGluZToyMnB4IDEwcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTNtbmVtIC5jYy0xMmE1MHtwYWRkaW5nLWJsb2NrOjlweCFpbXBvcnRhbnQ7cGFkZGluZy1pbmxpbmUtc3RhcnQ6MzRweCFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTNtbmVtIC5jYy0xMmE1MCAuY2MtMTdsdTF7LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjIyJTIyJTIwaGVpZ2h0JTNEJTIyMjIlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyMiUyMDIyJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTElMjAyMS40YzUuNzQ0JTIwMCUyMDEwLjQtNC42NTYlMjAxMC40LTEwLjRTMTYuNzQ0LjYlMjAxMSUyMC42LjYlMjA1LjI1Ni42JTIwMTElMjA1LjI1NiUyMDIxLjQlMjAxMSUyMDIxLjRtMC0xNS4yNzVjLjU0JTIwMCUyMC45NzUuNDM1Ljk3NS45NzV2NC41NWMwJTIwLjU0LS40MzUuOTc1LS45NzUuOTc1cy0uOTc1LS40MzUtLjk3NS0uOTc1VjcuMWMwLS41NC40MzUtLjk3NS45NzUtLjk3NU05LjkxNSUyMDE0LjlhMS4wOSUyMDEuMDklMjAwJTIwMCUyMDElMjAuNTItLjk5NWMuMzQ2LS4yMDguNzgtLjIwOCUyMDEuMTI2JTIwMCUyMC4zNDUuMjEuNTQ0LjU5My41Mi45OTVhMS4wOSUyMDEuMDklMjAwJTIwMCUyMDEtLjUyLjk5NWMtLjM0Ni4yMDctLjc4LjIwNy0xLjEyNiUyMDBhMS4wOSUyMDEuMDklMjAwJTIwMCUyMDEtLjUyLS45OTUlMjIlMkYlM0UlM0MlMkZzdmclM0UpO2hlaWdodDoyMXB4O2FuaW1hdGlvbi1uYW1lOmNjLTFlMXp4O2FuaW1hdGlvbi1kdXJhdGlvbjozczthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcjthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtcmVkLW5vcm1hbCkpIWltcG9ydGFudDtpbnNldC1pbmxpbmUtc3RhcnQ6MCFpbXBvcnRhbnQ7d2lkdGg6MjBweCFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7dG9wOjUwJSFpbXBvcnRhbnQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O21hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDstd2Via2l0LW1hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDttYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50O21hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtM21uZW0gLmNjLTEyYTUwIC5jYy0xOHExcyAuY2MtcGpmOHAsLmNyaXNwLWNsaWVudCAuY2MtM21uZW0gLmNjLTEyYTUwIC5jYy0xOHExcyAuY2MtMTYzZ3AsLmNyaXNwLWNsaWVudCAuY2MtM21uZW0gLmNjLTEyYTUwIC5jYy0xOHExcyAuY2MtMTI3dnksLmNyaXNwLWNsaWVudCAuY2MtM21uZW0gLmNjLTEyYTUwIC5jYy0xOHExcyAuY2Mta2VrZGwsLmNyaXNwLWNsaWVudCAuY2MtM21uZW0gLmNjLTEyYTUwIC5jYy0xOHExcyAuY2MtMWw5eWh7aGVpZ2h0OjE2cHg7bGluZS1oZWlnaHQ6MTZweDtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC1ibGFjay1ub3JtYWwtZml4ZWQpKSFpbXBvcnRhbnQ7dGV4dC1vdmVyZmxvdzplbGxpcHNpcyFpbXBvcnRhbnQ7d2hpdGUtc3BhY2U6bm93cmFwIWltcG9ydGFudDtwYWRkaW5nOjJweCAwIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTNtbmVtIC5jYy0xMmE1MCAuY2MtMThxMXMgLmNjLXBqZjhwLC5jcmlzcC1jbGllbnQgLmNjLTNtbmVtIC5jYy0xMmE1MCAuY2MtMThxMXMgLmNjLTE2M2dwLC5jcmlzcC1jbGllbnQgLmNjLTNtbmVtIC5jYy0xMmE1MCAuY2MtMThxMXMgLmNjLTEyN3Z5e2ZvbnQtc2l6ZToxMi40cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTNtbmVtIC5jYy0xMmE1MCAuY2MtMThxMXMgLmNjLTE2M2dwLC5jcmlzcC1jbGllbnQgLmNjLTNtbmVtIC5jYy0xMmE1MCAuY2MtMThxMXMgLmNjLTEyN3Z5e2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXJlZC1ub3JtYWwpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtM21uZW0gLmNjLTEyYTUwIC5jYy0xOHExcyAuY2Mta2VrZGwsLmNyaXNwLWNsaWVudCAuY2MtM21uZW0gLmNjLTEyYTUwIC5jYy0xOHExcyAuY2MtMWw5eWh7Zm9udC1zaXplOjEycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTNtbmVtIC5jYy0xMmE1MCAuY2MtMThxMXMgLmNjLTFsOXloe3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTNtbmVtLS1yZWNvbm5lY3QtaW5hY3RpdmUgLmNjLTEyYTUwIC5jYy0xN2x1MSwuY3Jpc3AtY2xpZW50IC5jYy0zbW5lbS0tcmVjb25uZWN0LWZhaWxlZCAuY2MtMTJhNTAgLmNjLTE3bHUxe2FuaW1hdGlvbjpub25lfS5jcmlzcC1jbGllbnQgLmNjLXZiaG1ve2ZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudDtwYWRkaW5nOjAgMTBweCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy12YmhtbyAuY2MtMWd3c2t7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O3dpZHRoOjEwMCUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXZiaG1vIC5jYy0xZ3dzayAuY2MtMTZmM2IsLmNyaXNwLWNsaWVudCAuY2MtdmJobW8gLmNjLTFnd3NrIC5jYy1icHBzeXt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzIWltcG9ydGFudDt3aGl0ZS1zcGFjZTpub3dyYXAhaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdmJobW8gLmNjLTFnd3NrIC5jYy0xNmYzYntoZWlnaHQ6MTZweDtsaW5lLWhlaWdodDoxNXB4O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXJlZC1ub3JtYWwpKSFpbXBvcnRhbnQ7Zm9udC1zaXplOjEyLjhweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdmJobW8gLmNjLTFnd3NrIC5jYy0xNmYzYjpiZWZvcmV7aGVpZ2h0OjhweDtjb250ZW50OiIiIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXJlZC1ub3JtYWwpKSFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czo4cHghaW1wb3J0YW50O3dpZHRoOjhweCFpbXBvcnRhbnQ7bWFyZ2luLWlubGluZTotN3B4IDZweCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXZiaG1vIC5jYy0xZ3dzayAuY2MtYnBwc3l7aGVpZ2h0OjE1cHg7bGluZS1oZWlnaHQ6MTRweDttYXJnaW4tdG9wOjVweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdmJobW8gLmNjLTFnd3NrIC5jYy1icHBzeSwuY3Jpc3AtY2xpZW50IC5jYy12YmhtbyAuY2MtMWd3c2sgLmNjLWJwcHN5IC5jYy0xcXd6entjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC1ibGFjay1ub3JtYWwtZml4ZWQpKSFpbXBvcnRhbnQ7Zm9udC1zaXplOjEycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXZiaG1vIC5jYy0xZ3dzayAuY2MtYnBwc3kgLmNjLTFxd3p6e3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXQ5OTNqe3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy10OTkzaiAuY2MtMTB4YnZ7aGVpZ2h0OjkycHg7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LXVsdHJhLWxpZ2h0KSkhaW1wb3J0YW50O3dpZHRoOjE4MHB4IWltcG9ydGFudDtib3gtc2hhZG93OjAgMXB4IDJweCByZ2IodmFyKC0tY3Jpc3AtY29sb3Itc2hhZG93LW5vcm1hbCksIC4wOCkhaW1wb3J0YW50O2JhY2tncm91bmQtcG9zaXRpb246NTAlIWltcG9ydGFudDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTpjb3ZlciFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czoxMnB4IWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDtwb3NpdGlvbjpyZWxhdGl2ZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdDk5M2ogLmNjLTEweGJ2IC5jYy0xa3RzentoZWlnaHQ6NDJweDtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCksIDApIDAlLCByZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwpLCAuMDYpIDMzJSwgcmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbm9ybWFsKSwgLjI1KSAxMDAlKSFpbXBvcnRhbnQ7aW5zZXQtaW5saW5lOjAhaW1wb3J0YW50O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjEycHghaW1wb3J0YW50O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MTJweCFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O2JvdHRvbTowIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy10OTkzaiAuY2MtMTB4YnYgLmNjLTFrdHN6IC5jYy03OWh0cntpbnNldC1pbmxpbmUtc3RhcnQ6MTRweCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O2JvdHRvbTo4cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXQ5OTNqIC5jYy0xMHhidiAuY2MtMWt0c3otLWdpcGh5IC5jYy03OWh0cntoZWlnaHQ6MTJweDtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NsaWVudC5jcmlzcC5jaGF0L3N0YXRpYy9pbWFnZXMvY2hhdC9pbmNsdWRlcy9sb2dvLWdpcGh5LnBuZz8yM2U0MjEyKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOmNvbnRhaW4haW1wb3J0YW50O3dpZHRoOjU2cHghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZ3F2bHtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZ3F2bCAuY2MtMXRnc2x7ZGlzcGxheTpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZ3F2bCAuY2MtMTU3cml7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFncXZsIC5jYy0xNTdyaSAuY2MtdmdrMzUsLmNyaXNwLWNsaWVudCAuY2MtMWdxdmwgLmNjLTE1N3JpIC5jYy0xbGtna3tmbGV4Om5vbmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFncXZsIC5jYy0xNTdyaSAuY2MtdmdrMzV7aGVpZ2h0OjMwcHg7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTFweCFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudDt3aWR0aDozMHB4IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFncXZsIC5jYy0xNTdyaSAuY2MtdmdrMzUgLmNjLWNjcTJuey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxMSUyMiUyMGhlaWdodCUzRCUyMjExJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTElMjAxMSUyMiUzRSUzQ2NsaXBQYXRoJTIwaWQlM0QlMjJhJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMCUyMC44OTJBLjg5Ljg5JTIwMCUyMDAlMjAxJTIwMS4zNjguMTRsNy4yNDElMjA0LjYxYS44OS44OSUyMDAlMjAwJTIwMSUyMDAlMjAxLjVsLTcuMjQxJTIwNC42MUEuODkuODklMjAwJTIwMCUyMDElMjAwJTIwMTAuMTA5eiUyMiUyRiUzRSUzQyUyRmNsaXBQYXRoJTNFJTNDZyUyMGNsaXAtcGF0aCUzRCUyMnVybCUyOCUyM2ElMjklMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgxLjUlMjklMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0wJTIwMGg5LjAyMnYxMUgweiUyMiUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UpO2hlaWdodDoxMnB4O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLXJldmVyc2UpKSFpbXBvcnRhbnQ7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50O3dpZHRoOjEycHghaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7bWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50O21hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7bWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZ3F2bCAuY2MtMTU3cmkgLmNjLXhkY25se2hlaWdodDozcHg7ei1pbmRleDoxIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjNweCFpbXBvcnRhbnQ7d2lkdGg6MTAwcHghaW1wb3J0YW50O21hcmdpbjowIDExcHghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDtwb3NpdGlvbjpyZWxhdGl2ZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWdxdmwgLmNjLTE1N3JpIC5jYy14ZGNubCAuY2MtMWRreDl7bGVmdDowIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjNweCFpbXBvcnRhbnQ7d2lkdGg6MCFpbXBvcnRhbnQ7bWluLXdpZHRoOjAlIWltcG9ydGFudDttYXgtd2lkdGg6MTAwJSFpbXBvcnRhbnQ7dHJhbnNpdGlvbjp3aWR0aCAuNXMgbGluZWFyIWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7aW5zZXQtYmxvY2s6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWdxdmwgLmNjLTE1N3JpIC5jYy14ZGNubCAuY2MtMWRreDkgLmNjLTFleDFpe2hlaWdodDoxMHB4O2JvcmRlci1yYWRpdXM6MTAwJSFpbXBvcnRhbnQ7d2lkdGg6MTBweCFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O3RvcDo1MCUhaW1wb3J0YW50O3JpZ2h0Oi00cHghaW1wb3J0YW50O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZ3F2bCAuY2MtMTU3cmkgLmNjLXhkY25sIC5jYy0xZGt4OSAuY2MtMWV4MWkgLmNjLWlwbG5ie2hlaWdodDowO29wYWNpdHk6LjMhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTAwJSFpbXBvcnRhbnQ7d2lkdGg6MCFpbXBvcnRhbnQ7dHJhbnNpdGlvbjp3aWR0aCAuMzVzIGxpbmVhciAuMjVzLGhlaWdodCAuMzVzIGxpbmVhciAuMjVzIWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7dG9wOjUwJSFpbXBvcnRhbnQ7bGVmdDo1MCUhaW1wb3J0YW50O3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWdxdmwgLmNjLTE1N3JpIC5jYy0xbGtna3tsaW5lLWhlaWdodDoyM3B4O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS1yZXZlcnNlKSkhaW1wb3J0YW50O3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZ3F2bCAuY2MtMTU3cmkgLmNjLTFsa2drIC5jYy10Y3IxNywuY3Jpc3AtY2xpZW50IC5jYy0xZ3F2bCAuY2MtMTU3cmkgLmNjLTFsa2drIC5jYy0xOWRpantsZXR0ZXItc3BhY2luZzouNXB4IWltcG9ydGFudDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmUhaW1wb3J0YW50O3VzZXItc2VsZWN0Om5vbmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFncXZsIC5jYy0xNTdyaSAuY2MtMWxrZ2sgLmNjLXRjcjE3e3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDt2aXNpYmlsaXR5OmhpZGRlbiFpbXBvcnRhbnQ7b3BhY2l0eTowIWltcG9ydGFudDtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czo3cHghaW1wb3J0YW50O2ZvbnQtc2l6ZToxMC40cHghaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDtpbnNldDowIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZ3F2bCAuY2MtMTU3cmkgLmNjLTFsa2drIC5jYy0xOWRpantmb250LXNpemU6MTJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWdxdmxbZGF0YS1zdGF0ZT1wbGF5aW5nXSAuY2MtMTU3cmkgLmNjLXZnazM1IC5jYy1jY3EybnstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMTElMjIlMjBoZWlnaHQlM0QlMjIxMSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDExJTIwMTElMjIlM0UlM0NjbGlwUGF0aCUyMGlkJTNEJTIyYSUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTEuNTcxJTIwMGExLjU3JTIwMS41NyUyMDAlMjAwJTIwMSUyMDEuNTcyJTIwMS41NzFWOS40M0ExLjU3MSUyMDEuNTcxJTIwMCUyMDElMjAxJTIwMCUyMDkuNDNWMS41N0MwJTIwLjcwMy43MDMlMjAwJTIwMS41NzElMjAwbTYuMjg2JTIwMEM4LjcyNSUyMDAlMjA5LjQzLjcwMyUyMDkuNDMlMjAxLjU3MVY5LjQzYTEuNTcxJTIwMS41NzElMjAwJTIwMSUyMDEtMy4xNDMlMjAwVjEuNTdBMS41NyUyMDEuNTclMjAwJTIwMCUyMDElMjA3Ljg1NyUyMDAlMjIlMkYlM0UlM0MlMkZjbGlwUGF0aCUzRSUzQ2clMjBjbGlwLXBhdGglM0QlMjJ1cmwlMjglMjNhJTI5JTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4LjglMjklMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0wJTIwMGg5LjQyOXYxMUgweiUyMiUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UpOy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZ3F2bFtkYXRhLXN0YXRlPXBsYXlpbmddIC5jYy0xNTdyaSAuY2MteGRjbmwgLmNjLTFka3g5IC5jYy0xZXgxaSAuY2MtaXBsbmJ7aGVpZ2h0OjE4cHg7d2lkdGg6MThweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWdxdmxbZGF0YS1zdGF0ZT1sb2FkaW5nXSAuY2MtMTU3cmkgLmNjLXZnazM1IC5jYy1jY3EybnthbmltYXRpb24tbmFtZTpjYy1kdGY3ejthbmltYXRpb24tZHVyYXRpb246MS4yNXM7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluLW91dDthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlfS5jcmlzcC1jbGllbnQgLmNjLTFncXZsLS1mcm9tLW9wZXJhdG9yIC5jYy0xNTdyaSAuY2MteGRjbmwgLmNjLTFka3g5LC5jcmlzcC1jbGllbnQgLmNjLTFncXZsLS1mcm9tLW9wZXJhdG9yIC5jYy0xNTdyaSAuY2MteGRjbmwgLmNjLTFleDFpLC5jcmlzcC1jbGllbnQgLmNjLTFncXZsLS1mcm9tLW9wZXJhdG9yIC5jYy0xNTdyaSAuY2MteGRjbmwgLmNjLWlwbG5ie2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLTUwMCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZ3F2bC0tZnJvbS1vcGVyYXRvciAuY2MtMTU3cmkgLmNjLTFsa2drIC5jYy10Y3IxN3tiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS0yMDApKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWdxdmw6bm90KC5jYy0xZ3F2bC0tZnJvbS1vcGVyYXRvcikgLmNjLTE1N3JpIC5jYy14ZGNubCwuY3Jpc3AtY2xpZW50IC5jYy0xZ3F2bDpub3QoLmNjLTFncXZsLS1mcm9tLW9wZXJhdG9yKSAuY2MtMTU3cmkgLmNjLXhkY25sIC5jYy0xZGt4OSwuY3Jpc3AtY2xpZW50IC5jYy0xZ3F2bDpub3QoLmNjLTFncXZsLS1mcm9tLW9wZXJhdG9yKSAuY2MtMTU3cmkgLmNjLXhkY25sIC5jYy0xZXgxaSwuY3Jpc3AtY2xpZW50IC5jYy0xZ3F2bDpub3QoLmNjLTFncXZsLS1mcm9tLW9wZXJhdG9yKSAuY2MtMTU3cmkgLmNjLXhkY25sIC5jYy1pcGxuYntiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS1yZXZlcnNlKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE3MHRyIC5jYy0xNGY0antoZWlnaHQ6MjRweDtsaW5lLWhlaWdodDowO3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czo2cHghaW1wb3J0YW50O3dpZHRoOjI0cHghaW1wb3J0YW50O21hcmdpbi1pbmxpbmU6LTVweCA5cHghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xNzB0ciAuY2MtMTRmNGogLmNjLTV1Y3c3ey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjI2JTIyJTIwaGVpZ2h0JTNEJTIyMTAlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA2JTIwMTAlMjIlM0UlM0NjbGlwUGF0aCUyMGlkJTNEJTIyYSUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTS4yNzYuMjc2YS45NC45NCUyMDAlMjAwJTIwMSUyMDEuMzMxJTIwMGw0LjA5NyUyMDQuMDk2YS44ODcuODg3JTIwMCUyMDAlMjAxJTIwMCUyMDEuMjU2TDEuNjA3JTIwOS43MjRBLjk0Mi45NDIlMjAwJTIwMCUyMDElMjAuMjc2JTIwOC4zOTNMMy42NjglMjA1JTIwLjI3NiUyMDEuNjA3YS45NC45NCUyMDAlMjAwJTIwMSUyMDAtMS4zMzElMjIlMkYlM0UlM0MlMkZjbGlwUGF0aCUzRSUzQ2clMjBjbGlwLXBhdGglM0QlMjJ1cmwlMjglMjNhJTI5JTIyJTIwdHJhbnNmb3JtJTNEJTIybWF0cml4JTI4LTElMjAwJTIwMCUyMDElMjA1Ljk2NCUyMDAlMjklMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0wJTIwMGg1Ljk2NHYxMEgweiUyMiUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UpO2hlaWdodDoxMHB4O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLXJldmVyc2UpKSFpbXBvcnRhbnQ7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50O3dpZHRoOjZweCFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hcmdpbi10b3A6N3B4IWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7bWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50O21hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7bWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50W2Rpcj1ydGxdIC5jYy0xNzB0ciAuY2MtMTRmNGogLmNjLTV1Y3c3e3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWs5cG17YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFja2dyb3VuZC1sb2NrZXIpLCAuMTIpIWltcG9ydGFudDt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7cGFkZGluZzptYXgoMjBweCwgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC10b3ApKSBtYXgoMjBweCwgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1yaWdodCkpIG1heCgyMHB4LCB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LWJvdHRvbSkpIG1heCgyMHB4LCB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LWxlZnQpKSFpbXBvcnRhbnQ7ei1pbmRleDoxMDAhaW1wb3J0YW50O2N1cnNvcjp6b29tLW91dCFpbXBvcnRhbnQ7b3V0bGluZTowIWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7cG9zaXRpb246Zml4ZWQhaW1wb3J0YW50O2luc2V0OjAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFrOXBtIC5jYy0xanc4MywuY3Jpc3AtY2xpZW50IC5jYy0xazlwbSAuY2MtMXdnY3p7Y3Vyc29yOnpvb20tb3V0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xazlwbSAuY2MtMWp3ODN7aGVpZ2h0OjMycHg7YW5pbWF0aW9uLWR1cmF0aW9uOjEuNXM7Ym9yZGVyLXdpZHRoOjRweCFpbXBvcnRhbnQ7d2lkdGg6MzJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWs5cG0gLmNjLTdpbHBje3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xazlwbSAuY2MtM2g3eXN7Ym94LXNoYWRvdzowIDZweCAzNHB4IDAgcmdiKHZhcigtLWNyaXNwLWNvbG9yLXNoYWRvdy1ub3JtYWwpLCAuMDIpLCAwIDhweCAxOHB4IDAgcmdiKHZhcigtLWNyaXNwLWNvbG9yLXNoYWRvdy1ub3JtYWwpLCAuMTIpIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjI0cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFrOXBtIC5jYy0xd2djentwb2ludGVyLWV2ZW50czpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xazlwbSAuY2MtMXdnY3ogLmNjLW42bGw5e3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xazlwbSAuY2MtMXdnY3ogLmNjLW42bGw5LS1uYXZpZ2F0ZXtoZWlnaHQ6NzJweDt0b3A6NTAlIWltcG9ydGFudDtpbnNldC1pbmxpbmU6MjBweCFpbXBvcnRhbnQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFrOXBtIC5jYy0xd2djeiAuY2MtbjZsbDktLWNvbnRyb2xze3RvcDoyMHB4IWltcG9ydGFudDtmbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50O3Jvdy1nYXA6MTBweCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtpbnNldC1pbmxpbmUtZW5kOjIwcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFrOXBtIC5jYy0xd2djeiAuY2MtbjZsbDktLWNvbnRyb2xzPip7ZmxleDpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xazlwbSAuY2MtMXdnY3ogLmNjLTFlZGk1e2hlaWdodDo1MHB4O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSkhaW1wb3J0YW50O3BvaW50ZXItZXZlbnRzOmF1dG8haW1wb3J0YW50O2N1cnNvcjpwb2ludGVyIWltcG9ydGFudDt6LWluZGV4OjEhaW1wb3J0YW50O29wYWNpdHk6LjQhaW1wb3J0YW50O3dpZHRoOjUwcHghaW1wb3J0YW50O2JveC1zaGFkb3c6MCA2cHggNnB4IDAgcmdiKHZhcigtLWNyaXNwLWNvbG9yLXNoYWRvdy1ub3JtYWwpLCAuMDEpIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjUwJSFpbXBvcnRhbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4ycyBlYXNlLWluLW91dCx0cmFuc2Zvcm0gLjJzIGVhc2UtaW4tb3V0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xazlwbSAuY2MtMXdnY3ogLmNjLTFlZGk1OmhvdmVye29wYWNpdHk6LjY1IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xazlwbSAuY2MtMXdnY3ogLmNjLTFlZGk1OmFjdGl2ZXtib3gtc2hhZG93OjAgMnB4IDRweCAwIHJnYih2YXIoLS1jcmlzcC1jb2xvci1zaGFkb3ctbm9ybWFsKSwgLjAyKSFpbXBvcnRhbnQ7dHJhbnNmb3JtOnNjYWxlKC45NikhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFrOXBtIC5jYy0xd2djeiAuY2MtMWVkaTU6YWZ0ZXJ7aGVpZ2h0OjMycHg7Y29udGVudDoiIiFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1saWdodCkpIWltcG9ydGFudDtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnQ7d2lkdGg6MzJweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDpjYWxjKDUwJSAtIDE2cHgpIWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7bWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50O21hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7bWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xazlwbSAuY2MtMXdnY3ogLmNjLTFlZGk1LS1wcmV2aW91cywuY3Jpc3AtY2xpZW50IC5jYy0xazlwbSAuY2MtMXdnY3ogLmNjLTFlZGk1LS1uZXh0e2hlaWdodDo3MnB4O3dpZHRoOjcycHghaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDt0b3A6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWs5cG0gLmNjLTF3Z2N6IC5jYy0xZWRpNS0tcHJldmlvdXN7bGVmdDowIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xazlwbSAuY2MtMXdnY3ogLmNjLTFlZGk1LS1wcmV2aW91czphZnRlcnstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMzIlMjIlMjBoZWlnaHQlM0QlMjIzMiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDMyJTIwMzIlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk04LjkxNyUyMDE0Ljk0YTEuNSUyMDEuNSUyMDAlMjAwJTIwMCUyMDAlMjAyLjEyNGw5JTIwOWExLjUwMiUyMDEuNTAyJTIwMCUyMDAlMjAwJTIwMi4xMjQtMi4xMjNMMTIuMSUyMDE2bDcuOTM2LTcuOTRhMS41MDIlMjAxLjUwMiUyMDAlMjAwJTIwMC0yLjEyMy0yLjEyNGwtOSUyMDl6JTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWs5cG0gLmNjLTF3Z2N6IC5jYy0xZWRpNS0tbmV4dHtyaWdodDowIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xazlwbSAuY2MtMXdnY3ogLmNjLTFlZGk1LS1uZXh0OmFmdGVyey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIzMiUyMiUyMGhlaWdodCUzRCUyMjMyJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMzIlMjAzMiUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTIzLjA4MyUyMDE0Ljk0YTEuNSUyMDEuNSUyMDAlMjAwJTIwMSUyMDAlMjAyLjEyNGwtOSUyMDlhMS41MDIlMjAxLjUwMiUyMDAlMjAwJTIwMS0yLjEyNC0yLjEyM0wxOS45JTIwMTZsLTcuOTM2LTcuOTRhMS41MDIlMjAxLjUwMiUyMDAlMjAwJTIwMSUyMDIuMTIzLTIuMTI0bDklMjA5eiUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFrOXBtIC5jYy0xd2djeiAuY2MtMWVkaTUtLWNsb3NlLC5jcmlzcC1jbGllbnQgLmNjLTFrOXBtIC5jYy0xd2djeiAuY2MtMWVkaTUtLWNsb3NlOmhvdmVye29wYWNpdHk6MSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWs5cG0gLmNjLTF3Z2N6IC5jYy0xZWRpNS0tY2xvc2U6YWZ0ZXJ7LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjMyJTIyJTIwaGVpZ2h0JTNEJTIyMzIlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAzMiUyMDMyJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNOC4yOSUyMDdhMS4yODMlMjAxLjI4MyUyMDAlMjAwJTIwMC0uODk2JTIwMi4yMDRsNi43OTIlMjA2Ljc5My02Ljc5MiUyMDYuNzk0YTEuMjgzJTIwMS4yODMlMjAwJTIwMSUyMDAlMjAxLjgxNSUyMDEuODE0TDE2JTIwMTcuODEybDYuNzkxJTIwNi43OTNhMS4yODMlMjAxLjI4MyUyMDAlMjAxJTIwMCUyMDEuODE1LTEuODE0bC02Ljc5Mi02Ljc5NCUyMDYuNzkyLTYuNzkzYTEuMjg0JTIwMS4yODQlMjAwJTIwMSUyMDAtMS44MTUtMS44MTVMMTYlMjAxNC4xODIlMjA5LjIwOSUyMDcuMzlhMS4yOCUyMDEuMjglMjAwJTIwMCUyMDAtLjkyLS4zODglMjIlMkYlM0UlM0MlMkZzdmclM0UpOy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xazlwbSAuY2MtMXdnY3ogLmNjLTFlZGk1LS1kb3dubG9hZDphZnRlcnstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMzIlMjIlMjBoZWlnaHQlM0QlMjIzMiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDMyJTIwMzIlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk04LjglMjAyNy4yYTcuMjAyJTIwNy4yMDIlMjAwJTIwMCUyMDEtMi4zMDUtMTQuMDI1JTIwNy4yMDIlMjA3LjIwMiUyMDAlMjAwJTIwMSUyMDEzLjQ4NS00LjUyJTIwNC44MDElMjA0LjgwMSUyMDAlMjAwJTIwMSUyMDYuNjk1JTIwNi4zM0E2LjQlMjA2LjQlMjAwJTIwMCUyMDElMjAyNCUyMDI3LjJ6bTExLjY1LTguMzVhMS4yJTIwMS4yJTIwMCUyMDAlMjAwLTEuNjk1LTEuNjk1bC0xLjU1JTIwMS41NVYxMy42YzAtLjY2NS0uNTM1LTEuMi0xLjItMS4ycy0xLjIuNTM1LTEuMiUyMDEuMnY1LjEwNWwtMS41NS0xLjU1YTEuMiUyMDEuMiUyMDAlMjAwJTIwMC0xLjY5NSUyMDEuNjk1bDMuNiUyMDMuNmMuNDcuNDclMjAxLjIzLjQ3JTIwMS42OTUlMjAwbDMuNi0zLjZ6JTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWs5cG0tLWltYWdlIC5jYy0zaDd5c3ttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSA0MHB4KTtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbCkpIWltcG9ydGFudDstby1vYmplY3QtZml0OmNvdmVyIWltcG9ydGFudDtvYmplY3QtZml0OmNvdmVyIWltcG9ydGFudDtjdXJzb3I6em9vbS1vdXQhaW1wb3J0YW50O21pbi13aWR0aDozMDBweCFpbXBvcnRhbnQ7bWF4LXdpZHRoOjEwMCUhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xazlwbS0tdmlkZW8gLmNjLTNoN3lzLC5jcmlzcC1jbGllbnQgLmNjLTFrOXBtLS1lbWJlZCAuY2MtM2g3eXN7aGVpZ2h0OmNhbGMoMTAwdmggLSA0MHB4KTtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDt3aWR0aDoxMDAlIWltcG9ydGFudDttaW4td2lkdGg6NjAwcHghaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFrOXBtLS1sb2FkaW5nIC5jYy0xanc4M3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xazlwbS0tbG9hZGluZyAuY2MtM2g3eXMsLmNyaXNwLWNsaWVudCAuY2MtMWs5cG0tLWxvYWRpbmcgLmNjLTF3Z2N6LC5jcmlzcC1jbGllbnQgLmNjLTFrOXBtLS1sb2FkZWQgLmNjLTFqdzgze2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWs5cG0tLWxvYWRlZCAuY2MtM2g3eXMsLmNyaXNwLWNsaWVudCAuY2MtMWs5cG0tLWxvYWRlZCAuY2MtMXdnY3p7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWs5cG0tLWFuaW1hdGV7YW5pbWF0aW9uLW5hbWU6Y2MtZ241OWc7YW5pbWF0aW9uLWR1cmF0aW9uOi4yNXM7YW5pbWF0aW9uLWZpbGwtbW9kZTpib3RofS5jcmlzcC1jbGllbnQgLmNjLTFrOXBtLS1hbmltYXRlIC5jYy0zaDd5c3thbmltYXRpb24tbmFtZTpjYy0xb3liZjthbmltYXRpb24tZHVyYXRpb246LjJzO2FuaW1hdGlvbi1kZWxheTouMXM7YW5pbWF0aW9uLWZpbGwtbW9kZTpib3RofS5jcmlzcC1jbGllbnQgLmNjLTFrOXBtLS1hbmltYXRlIC5jYy0xd2djenthbmltYXRpb24tbmFtZTpjYy1nbjU5ZzthbmltYXRpb24tZHVyYXRpb246LjI1czthbmltYXRpb24tZGVsYXk6LjRzO2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aH1AbWVkaWEgc2NyZWVuIGFuZCAod2lkdGg8PTcyMHB4KXsuY3Jpc3AtY2xpZW50IC5jYy0xazlwbXtwYWRkaW5nLWlubGluZTptYXgoMTRweCwgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1sZWZ0KSkgbWF4KDE0cHgsIHZhcigtLWNyaXNwLWVudi1kZXZpY2UtaW5zZXQtcmlnaHQpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWs5cG0gLmNjLTF3Z2N6IC5jYy1uNmxsOS0tbmF2aWdhdGV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xazlwbS0tdmlkZW8gLmNjLTNoN3lzLC5jcmlzcC1jbGllbnQgLmNjLTFrOXBtLS1lbWJlZCAuY2MtM2g3eXN7bWluLXdpZHRoOnVuc2V0IWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKHdpZHRoPD00ODBweCl7LmNyaXNwLWNsaWVudCAuY2MtMWs5cG17cGFkZGluZy1pbmxpbmU6bWF4KDhweCwgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1sZWZ0KSkgbWF4KDhweCwgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1yaWdodCkpIWltcG9ydGFudH19LmNyaXNwLWNsaWVudCAuY2MtMW1jeWt7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFtY3lrIC5jYy0xN3hmcHthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O3BhZGRpbmc6NXB4IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFtY3lrIC5jYy0xN3hmcCAuY2MtMW90amp7aGVpZ2h0OjMwcHg7Ym9yZGVyLXJhZGl1czoxMXB4IWltcG9ydGFudDtmbGV4Om5vbmUhaW1wb3J0YW50O3dpZHRoOjMwcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFtY3lrIC5jYy0xN3hmcCAuY2MtMW90ampbZGF0YS1hY3Rpb25dIC5jYy11enVrNHtoZWlnaHQ6MTJweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS1yZXZlcnNlKSkhaW1wb3J0YW50O3dpZHRoOjEycHghaW1wb3J0YW50O21hcmdpbjo5cHggYXV0byAwIWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7bWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50O21hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7bWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xbWN5ayAuY2MtMTd4ZnAgLmNjLTFvdGpqW2RhdGEtYWN0aW9uPXZpZGVvXSAuY2MtdXp1azR7LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjEzJTIyJTIwaGVpZ2h0JTNEJTIyMTMlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMyUyMDEzJTIyJTNFJTNDY2xpcFBhdGglMjBpZCUzRCUyMmElMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0wJTIwLjg5MkEuODkuODklMjAwJTIwMCUyMDElMjAxLjM2OC4xNGw3LjI0MSUyMDQuNjFhLjg5Ljg5JTIwMCUyMDAlMjAxJTIwMCUyMDEuNWwtNy4yNDElMjA0LjYxQS44OS44OSUyMDAlMjAwJTIwMSUyMDAlMjAxMC4xMDl6JTIyJTJGJTNFJTNDJTJGY2xpcFBhdGglM0UlM0NnJTIwY2xpcC1wYXRoJTNEJTIydXJsJTI4JTIzYSUyOSUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODIlMjAxJTI5JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMCUyMDBoOS4wMjJ2MTFIMHolMjIlMkYlM0UlM0MlMkZnJTNFJTNDJTJGc3ZnJTNFKTstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMW1jeWsgLmNjLTE3eGZwIC5jYy0xb3RqaltkYXRhLWFjdGlvbj1kb3dubG9hZF0gLmNjLXV6dWs0ey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxMyUyMiUyMGhlaWdodCUzRCUyMjEzJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTMlMjAxMyUyMiUzRSUzQ2NsaXBQYXRoJTIwaWQlM0QlMjJhJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTAuMjUlMjAwYS43NS43NSUyMDAlMjAxJTIwMSUyMDAlMjAxLjVILjc1YS43NS43NSUyMDAlMjAwJTIwMSUyMDAtMS41eiUyMiUyRiUzRSUzQyUyRmNsaXBQYXRoJTNFJTNDY2xpcFBhdGglMjBpZCUzRCUyMmIlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk02LjkwNiUyMDBhLjc1Ljc1JTIwMCUyMDAlMjAxJTIwLjc1Ljc1djQuNDAyaDIuNTU0YS43NS43NSUyMDAlMjAwJTIwMSUyMC41MzUlMjAxLjI3NmwtNC4yMSUyMDQuMjc5YS43NS43NSUyMDAlMjAwJTIwMS0xLjA3JTIwMGwtNC4yMS00LjI4YS43NS43NSUyMDAlMjAwJTIwMSUyMC41MzUtMS4yNzVoMi41MTNWLjc1YS43NS43NSUyMDAlMjAwJTIwMSUyMC43NS0uNzV6JTIyJTJGJTNFJTNDJTJGY2xpcFBhdGglM0UlM0NnJTIwY2xpcC1wYXRoJTNEJTIydXJsJTI4JTIzYSUyOSUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODElMjAxMS41JTI5JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMCUyMDBoMTF2MS41SDB6JTIyJTJGJTNFJTNDJTJGZyUzRSUzQ2clMjBjbGlwLXBhdGglM0QlMjJ1cmwlMjglMjNiJTI5JTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4LjUlMjklMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0xLjA0JTIwMGg5LjkydjEwLjkzSDEuMDR6JTIyJTJGJTNFJTNDJTJGZyUzRSUzQyUyRnN2ZyUzRSk7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFtY3lrIC5jYy0xN3hmcCAuY2MtdmZuYTF7bGV0dGVyLXNwYWNpbmc6LjFweCFpbXBvcnRhbnQ7d29yZC1icmVhazpicmVhay1hbGwhaW1wb3J0YW50Oy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZSFpbXBvcnRhbnQ7dXNlci1zZWxlY3Q6bm9uZSFpbXBvcnRhbnQ7bWFyZ2luOi0xcHggMTBweCAwIWltcG9ydGFudDtmb250LXNpemU6MTEuNHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xbWN5ayAuY2MtMWxlbXh7Y3Vyc29yOnpvb20taW4haW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTJweCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xbWN5ayAuY2MtMWxlbXggLmNjLXV5ZjZte2hlaWdodDoxMjBweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktdWx0cmEtbGlnaHQpKSFpbXBvcnRhbnQ7Y3Vyc29yOnpvb20taW4haW1wb3J0YW50O2JhY2tncm91bmQtcG9zaXRpb246NTAlIWltcG9ydGFudDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTpjb3ZlciFpbXBvcnRhbnQ7d2lkdGg6MTAwJSFpbXBvcnRhbnQ7bWluLXdpZHRoOjIyMHB4IWltcG9ydGFudDttYXgtd2lkdGg6NjAwcHghaW1wb3J0YW50O3RyYW5zaXRpb246ZmlsdGVyIC4xNXMgbGluZWFyIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xbWN5ayAuY2MtMWxlbXgtLWhvdmVyYWJsZTpob3ZlciAuY2MtdXlmNm17ZmlsdGVyOmJyaWdodG5lc3MoMTA1JSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFtY3lrIC5jYy0xbGVteC0taG92ZXJhYmxlOmFjdGl2ZSAuY2MtdXlmNm17ZmlsdGVyOmJyaWdodG5lc3MoOTklKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTZ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWVjejZle21hcmdpbi10b3A6NnB4IWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTo0cHghaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtMWludDN7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy0xaW50MyAuY2MtczU4M2wsLmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy0xaW50MyAuY2MtMXhmY2UsLmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy0xaW50MyAuY2MtMWx5dXJ7aGVpZ2h0OjQ0cHh9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy0xaW50MyAuY2MtczU4M2wsLmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy0xaW50MyAuY2MtMXhmY2V7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LXVsdHJhLWxpZ2h0KSkhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTJweCFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtMWludDMgLmNjLWU0bHAzLC5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtMWludDMgLmNjLTFseXVye2xldHRlci1zcGFjaW5nOi4yNXB4IWltcG9ydGFudDtmb250LXNpemU6MTIuNHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xajM5NiAuY2MtZnVxb2MgLmNjLTFpbnQzIC5jYy1zNTgzbHthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O3BhZGRpbmc6MCAxNHB4IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtMWludDMgLmNjLXM1ODNsLS1pcy1maWxsZWQ6YmVmb3Jley0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxMiUyMiUyMGhlaWdodCUzRCUyMjEyJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTIlMjAxMiUyMiUzRSUzQ2NsaXBQYXRoJTIwaWQlM0QlMjJhJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTIlMjAwdjEySDBWMHolMjIlMkYlM0UlM0MlMkZjbGlwUGF0aCUzRSUzQ2NsaXBQYXRoJTIwaWQlM0QlMjJiJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTEuNzEuMjkzYy4zODcuMzkuMzg3JTIwMS4wMjUtLjAwNCUyMDEuNDE1bC01Ljk5OCUyMDljLS4zOS4zOS0xLjAyNS4zOS0xLjQxNiUyMDBsLTQtNGExLjAwMSUyMDEuMDAxJTIwMCUyMDAlMjAxJTIwMS40MTYtMS40MTZsMy4yOTQlMjAzLjI5JTIwNS4yOTItOC4yOWMuMzktLjM5JTIwMS4wMjUtLjM5JTIwMS40MTYlMjAwJTIyJTJGJTNFJTNDJTJGY2xpcFBhdGglM0UlM0NnJTIwY2xpcC1wYXRoJTNEJTIydXJsJTI4JTIzYSUyOSUyMiUzRSUzQ2clMjBjbGlwLXBhdGglM0QlMjJ1cmwlMjglMjNiJTI5JTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MCUyMC41JTI5JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMCUyMDBoMTJ2MTFIMHolMjIlMkYlM0UlM0MlMkZnJTNFJTNDJTJGZyUzRSUzQyUyRnN2ZyUzRSk7aGVpZ2h0OjEzcHg7Y29udGVudDoiIiFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmVlbi1ub3JtYWwpKSFpbXBvcnRhbnQ7bWFyZ2luLXRvcDotMXB4IWltcG9ydGFudDt3aWR0aDoxM3B4IWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7ZmxleDpub25lIWltcG9ydGFudDttYXJnaW4taW5saW5lLWVuZDo5cHghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDstd2Via2l0LW1hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDttYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7bWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50Oy13ZWJraXQtbWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDttYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtMWludDMgLmNjLXM1ODNsLS1pcy1maWxsZWQgLmNjLWU0bHAze2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xajM5NiAuY2MtZnVxb2MgLmNjLTFpbnQzIC5jYy1zNTgzbDpub3QoLmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy0xaW50MyAuY2MtczU4M2wuY2MtczU4M2wtLWlzLWZpbGxlZCl7Ym9yZGVyLXN0eWxlOnNvbGlkIWltcG9ydGFudDtib3JkZXItd2lkdGg6MXB4IWltcG9ydGFudDtib3JkZXItY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1saWdodCksIC43KSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojMDAwMCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy0xaW50MyAuY2MtczU4M2w6bm90KC5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtMWludDMgLmNjLXM1ODNsLmNjLXM1ODNsLS1pcy1maWxsZWQpIC5jYy1lNGxwM3tjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC1ncmV5LW5vcm1hbCkpIWltcG9ydGFudDtmb250LXN0eWxlOml0YWxpYyFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy0xaW50MyAuY2MtczU4M2wgLmNjLWU0bHAze2xpbmUtaGVpZ2h0OjE4cHg7dGV4dC1vdmVyZmxvdzplbGxpcHNpcyFpbXBvcnRhbnQ7d2hpdGUtc3BhY2U6bm93cmFwIWltcG9ydGFudDttYXJnaW4tdG9wOi0xcHghaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy0xaW50MyAuY2MtMXhmY2V7ZmxleC1kaXJlY3Rpb246cm93IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtMWludDMgLmNjLTF4ZmNlOmJlZm9yZXtjb250ZW50OiIiIWltcG9ydGFudDtwb2ludGVyLWV2ZW50czpub25lIWltcG9ydGFudDtib3JkZXItc3R5bGU6c29saWQhaW1wb3J0YW50O2JvcmRlci13aWR0aDoxcHghaW1wb3J0YW50O2JvcmRlci1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LXVsdHJhLWxpZ2h0KSkhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTJweCFpbXBvcnRhbnQ7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjFzIGVhc2UtaW4tb3V0IWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7aW5zZXQ6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy0xaW50MyAuY2MtMXhmY2U6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gc3JnYiwgcmdiYSh2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktdWx0cmEtbGlnaHQpLCAxKSA5OSUsIHJnYmEodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwpLCAxKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtMWludDMgLmNjLTF4ZmNlOmhvdmVyOmJlZm9yZXtib3JkZXItY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1ub3JtYWwpLCAuNSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtMWludDMgLmNjLTF4ZmNlIC5jYy0xbHl1cntiYWNrZ3JvdW5kOjAgMCFpbXBvcnRhbnQ7Ym9yZGVyOjAhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MCFpbXBvcnRhbnQ7ZmxleDoxIWltcG9ydGFudDttYXJnaW46MCFpbXBvcnRhbnQ7cGFkZGluZy1ibG9jazowIWltcG9ydGFudDtwYWRkaW5nLWlubGluZToxNHB4IDAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtMWludDMgLmNjLTF4ZmNlIC5jYy0xYnQzYXtoZWlnaHQ6MzJweDtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC13aGl0ZS1ub3JtYWwpKSFpbXBvcnRhbnQ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O2JvcmRlcjowIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjEycHghaW1wb3J0YW50O3dpZHRoOjMycHghaW1wb3J0YW50O21hcmdpbjo2cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtMWludDMgLmNjLTF4ZmNlIC5jYy0xYnQzYSwuY3Jpc3AtY2xpZW50IC5jYy0xajM5NiAuY2MtZnVxb2MgLmNjLTFpbnQzIC5jYy0xeGZjZSAuY2MtMWJ0M2E+KntjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy0xaW50MyAuY2MtMXhmY2UgLmNjLTFidDNhIC5jYy0xZ3R6cXstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMTAlMjIlMjBoZWlnaHQlM0QlMjIxMCUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEwJTIwMTAlMjIlM0UlM0NjbGlwUGF0aCUyMGlkJTNEJTIyYSUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTEwJTIwMHYxMEgwVjB6JTIyJTJGJTNFJTNDJTJGY2xpcFBhdGglM0UlM0NjbGlwUGF0aCUyMGlkJTNEJTIyYiUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTS4yNzYuMjc2YS45NC45NCUyMDAlMjAwJTIwMSUyMDEuMzMxJTIwMGw0LjA5NyUyMDQuMDk2YS44ODcuODg3JTIwMCUyMDAlMjAxJTIwMCUyMDEuMjU2TDEuNjA3JTIwOS43MjRBLjk0Mi45NDIlMjAwJTIwMCUyMDElMjAuMjc2JTIwOC4zOTNMMy42NjglMjA1JTIwLjI3NiUyMDEuNjA3YS45NC45NCUyMDAlMjAwJTIwMSUyMDAtMS4zMzElMjIlMkYlM0UlM0MlMkZjbGlwUGF0aCUzRSUzQ2clMjBjbGlwLXBhdGglM0QlMjJ1cmwlMjglMjNhJTI5JTIyJTNFJTNDZyUyMGNsaXAtcGF0aCUzRCUyMnVybCUyOCUyM2IlMjklMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgyJTI5JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMCUyMDBoNS45NjR2MTBIMHolMjIlMkYlM0UlM0MlMkZnJTNFJTNDJTJGZyUzRSUzQyUyRnN2ZyUzRSk7aGVpZ2h0OjEwcHg7Y29udGVudDoiIiFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtcmV2ZXJzZSkpIWltcG9ydGFudDttYXJnaW4tdG9wOjExcHghaW1wb3J0YW50O3dpZHRoOjEwcHghaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXJnaW4taW5saW5lLXN0YXJ0OjFweCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50Oy13ZWJraXQtbWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O21hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDstd2Via2l0LW1hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDttYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50O21hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy0xdnZobHttYXJnaW4tYm90dG9tOi00cHghaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtMXZ2aGwtLWhhcy1zZWxlY3RlZCAuY2MtbnlieXA6bm90KC5jYy1ueWJ5cC0tc2VsZWN0ZWQpLC5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtMXZ2aGwtLWhhcy1zZWxlY3RlZCAuY2MtbnlieXAtLXNlbGVjdGVkOm5vdCguY2MtbnlieXAtLWhhcy1hY3Rpb24pe3BvaW50ZXItZXZlbnRzOm5vbmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtMXZ2aGwtLWhhcy1zZWxlY3RlZCAuY2MtbnlieXA6bm90KC5jYy1ueWJ5cC0tc2VsZWN0ZWQpe29wYWNpdHk6LjM1IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xajM5NiAuY2MtZnVxb2MgLmNjLTF2dmhsIC5jYy1ueWJ5cHtsaW5lLWhlaWdodDoxNnB4O3RleHQtYWxpZ246c3RhcnQhaW1wb3J0YW50O3dvcmQtYnJlYWs6bm9ybWFsIWltcG9ydGFudDtvdmVyZmxvdy13cmFwOmFueXdoZXJlIWltcG9ydGFudDstd2Via2l0LWh5cGhlbnM6YXV0byFpbXBvcnRhbnQ7aHlwaGVuczphdXRvIWltcG9ydGFudDtib3JkZXItc3R5bGU6c29saWQhaW1wb3J0YW50O2JvcmRlci13aWR0aDoxcHghaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTBweCFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTo0cHghaW1wb3J0YW50O3BhZGRpbmc6N3B4IDE0cHggOHB4IWltcG9ydGFudDtmb250LXNpemU6MTEuNHB4IWltcG9ydGFudDt0ZXh0LWRlY29yYXRpb246bm9uZSFpbXBvcnRhbnQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4xcyBsaW5lYXIsb3BhY2l0eSAuMXMgbGluZWFyLHRyYW5zZm9ybSAuMXMgbGluZWFyIWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy0xdnZobCAuY2MtbnlieXAsLmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy0xdnZobCAuY2MtbnlieXA+KntjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy0xdnZobCAuY2MtbnlieXA6YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTc1KSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy0xdnZobCAuY2MtbnlieXA6bm90KC5jYy1ueWJ5cC0tc2VsZWN0ZWQpLmNjLW55YnlwLS1mcm9tLW9wZXJhdG9ye2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS01MDApKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy0xdnZobCAuY2MtbnlieXA6bm90KC5jYy1ueWJ5cC0tc2VsZWN0ZWQpOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS11bHRyYS1saWdodCksIC40KSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy0xdnZobCAuY2MtbnlieXAtLXNlbGVjdGVkLmNjLW55YnlwLS1mcm9tLW9wZXJhdG9ye2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLTUwMCkpIWltcG9ydGFudDtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtcmV2ZXJzZSkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xajM5NiAuY2MtZnVxb2MgLmNjLTF2dmhsIC5jYy1ueWJ5cC0tZnJvbS1vcGVyYXRvcntib3JkZXItY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLTUwMCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xajM5NiAuY2MtZnVxb2MgLmNjLTF2dmhsIC5jYy1ueWJ5cCAuY2MtMWc4NmV7bWFyZ2luLWlubGluZS1lbmQ6N3B4IWltcG9ydGFudDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUhaW1wb3J0YW50O21hcmdpbi10b3A6LTJweCFpbXBvcnRhbnQ7Zm9udC1zaXplOjE0LjRweCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtYmk1djV7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtwb3NpdGlvbjpyZWxhdGl2ZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy1iaTV2NTphZnRlcntjb250ZW50OiIiIWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSwgMCkgMCUsIHJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbCkpIDc1JSkhaW1wb3J0YW50O3BvaW50ZXItZXZlbnRzOm5vbmUhaW1wb3J0YW50O3dpZHRoOjI4cHghaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDtpbnNldC1ibG9jazowIWltcG9ydGFudDtpbnNldC1pbmxpbmUtZW5kOjAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtYmk1djUgLmNjLTFuZDB1e2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7b3ZlcmZsb3c6YXV0byBoaWRkZW4haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtYmk1djUgLmNjLTFuZDB1IC5jYy0xN25lN3tkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtYmk1djUgLmNjLTFuZDB1IC5jYy0xN25lN1tkYXRhLXRhcmdldC1jb3VudD0iMSJde3dpZHRoOjE3MHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xajM5NiAuY2MtZnVxb2MgLmNjLWJpNXY1IC5jYy0xbmQwdSAuY2MtMTduZTdbZGF0YS10YXJnZXQtY291bnQ9IjIiXXt3aWR0aDozNDlweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy1iaTV2NSAuY2MtMW5kMHUgLmNjLTE3bmU3W2RhdGEtdGFyZ2V0LWNvdW50PSIzIl17d2lkdGg6NTI4cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtYmk1djUgLmNjLTFuZDB1IC5jYy0xN25lN1tkYXRhLXRhcmdldC1jb3VudD0iNCJde3dpZHRoOjcwN3B4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xajM5NiAuY2MtZnVxb2MgLmNjLWJpNXY1IC5jYy0xbmQwdSAuY2MtMTduZTdbZGF0YS10YXJnZXQtY291bnQ9IjUiXXt3aWR0aDo4ODZweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy1iaTV2NSAuY2MtMW5kMHUgLmNjLTE3bmU3W2RhdGEtdGFyZ2V0LWNvdW50PSI2Il17d2lkdGg6MTA2NXB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xajM5NiAuY2MtZnVxb2MgLmNjLWJpNXY1IC5jYy0xbmQwdSAuY2MtMTduZTdbZGF0YS10YXJnZXQtY291bnQ9IjciXXt3aWR0aDoxMjQ0cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtYmk1djUgLmNjLTFuZDB1IC5jYy0xN25lN1tkYXRhLXRhcmdldC1jb3VudD0iOCJde3dpZHRoOjE0MjNweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy1iaTV2NSAuY2MtMW5kMHUgLmNjLTE3bmU3W2RhdGEtdGFyZ2V0LWNvdW50PSI5Il17d2lkdGg6MTYwMnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xajM5NiAuY2MtZnVxb2MgLmNjLWJpNXY1IC5jYy0xbmQwdSAuY2MtMTduZTdbZGF0YS10YXJnZXQtY291bnQ9IjEwIl17d2lkdGg6MTc4MXB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xajM5NiAuY2MtZnVxb2MgLmNjLWJpNXY1IC5jYy0xbmQwdSAuY2MtMTduZTc6YWZ0ZXJ7Y29udGVudDoiIiFpbXBvcnRhbnQ7ZmxleDpub25lIWltcG9ydGFudDt3aWR0aDoyOHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xajM5NiAuY2MtZnVxb2MgLmNjLWJpNXY1IC5jYy0xcXRoentiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktdWx0cmEtbGlnaHQpLCAuOTQpIWltcG9ydGFudDt0ZXh0LWFsaWduOnN0YXJ0IWltcG9ydGFudDtib3JkZXItcmFkaXVzOjEwcHghaW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnQ7ZmxleDpub25lIWltcG9ydGFudDt3aWR0aDoxNzBweCFpbXBvcnRhbnQ7bWFyZ2luLWlubGluZS1lbmQ6OXB4IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtYmk1djUgLmNjLTFxdGh6OmhvdmVyIC5jYy0xM2Q4bXtmaWx0ZXI6YnJpZ2h0bmVzcygxMDQlKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy1iaTV2NSAuY2MtMXF0aHo6bGFzdC1jaGlsZHttYXJnaW4taW5saW5lLWVuZDowIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xajM5NiAuY2MtZnVxb2MgLmNjLWJpNXY1IC5jYy0xcXRoejpudGgtY2hpbGQobisxMSl7ZGlzcGxheTpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xajM5NiAuY2MtZnVxb2MgLmNjLWJpNXY1IC5jYy0xcXRoeiAuY2MtMTNkOG0sLmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy1iaTV2NSAuY2MtMXF0aHogLmNjLTFpeDAwLC5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtYmk1djUgLmNjLTFxdGh6IC5jYy0xMTk0OCwuY3Jpc3AtY2xpZW50IC5jYy0xajM5NiAuY2MtZnVxb2MgLmNjLWJpNXY1IC5jYy0xcXRoeiAuY2MtdGxtOG0sLmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy1iaTV2NSAuY2MtMXF0aHogLmNjLTFobmtrLC5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtYmk1djUgLmNjLTFxdGh6IC5jYy0xOTNicntkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xajM5NiAuY2MtZnVxb2MgLmNjLWJpNXY1IC5jYy0xcXRoeiAuY2MtMTNkOG17aGVpZ2h0OjYwcHg7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LWxpZ2h0KSwgLjk0KSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOmNvdmVyIWltcG9ydGFudDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjEwcHghaW1wb3J0YW50O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjEwcHghaW1wb3J0YW50O2ZsZXg6bm9uZSFpbXBvcnRhbnQ7d2lkdGg6MTAwJSFpbXBvcnRhbnQ7dHJhbnNpdGlvbjpmaWx0ZXIgLjFzIGxpbmVhciFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy1iaTV2NSAuY2MtMXF0aHogLmNjLTFpeDAwe2ZsZXg6MSFpbXBvcnRhbnQ7cGFkZGluZzoxMHB4IDE0cHggMTFweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy1iaTV2NSAuY2MtMXF0aHogLmNjLTFpeDAwIC5jYy0xMTk0OHtsaW5lLWhlaWdodDoxNXB4O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDt3b3JkLWJyZWFrOm5vcm1hbCFpbXBvcnRhbnQ7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZSFpbXBvcnRhbnQ7LXdlYmtpdC1oeXBoZW5zOmF1dG8haW1wb3J0YW50O2h5cGhlbnM6YXV0byFpbXBvcnRhbnQ7Zm9udC1zaXplOjExLjZweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy1iaTV2NSAuY2MtMXF0aHogLmNjLTFpeDAwIC5jYy10bG04bXttYXgtaGVpZ2h0OjU2cHg7bGluZS1oZWlnaHQ6MTRweDtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC1ibGFjay1ub3JtYWwpLCAuNikhaW1wb3J0YW50O3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXMhaW1wb3J0YW50Oy13ZWJraXQtbGluZS1jbGFtcDo0IWltcG9ydGFudDtsaW5lLWNsYW1wOjQhaW1wb3J0YW50O2JveC1vcmllbnQ6dmVydGljYWwhaW1wb3J0YW50Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDo1cHghaW1wb3J0YW50O2ZvbnQtc2l6ZToxMS4ycHghaW1wb3J0YW50O2Rpc3BsYXk6LXdlYmtpdC1ib3ghaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy1iaTV2NSAuY2MtMXF0aHogLmNjLTFpeDAwIC5jYy0xaG5ra3ttYXJnaW4tdG9wOjExcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtYmk1djUgLmNjLTFxdGh6IC5jYy0xaXgwMCAuY2MtMWhua2sgLmNjLTE5M2Jye3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzIWltcG9ydGFudDt3aGl0ZS1zcGFjZTpub3dyYXAhaW1wb3J0YW50O21hcmdpbi10b3A6NXB4IWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtYmk1djUgLmNjLTFxdGh6IC5jYy0xaXgwMCAuY2MtMWhua2sgLmNjLTE5M2JyOmZpcnN0LWNoaWxke21hcmdpbi10b3A6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudFtkaXI9cnRsXSAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy0xaW50MyAuY2MtMXhmY2UgLmNjLTFidDNhIC5jYy0xZ3R6cXt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZykhaW1wb3J0YW50fS5jcmlzcC1jbGllbnRbZGlyPXJ0bF0gLmNjLTFqMzk2IC5jYy1mdXFvYyAuY2MtYmk1djU6YWZ0ZXJ7dHJhbnNmb3JtOnNjYWxlWCgtMSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFvdTNke2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFvdTNkIC5jYy1oZTV5M3ttYXJnaW4tdG9wOjZweCFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206NHB4IWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xb3UzZCAuY2MtaGU1eTMgLmNjLTZzNnUzW2RhdGEtdHlwZT1saW5rXSwuY3Jpc3AtY2xpZW50IC5jYy0xb3UzZCAuY2MtaGU1eTMgLmNjLTZzNnUzW2RhdGEtdHlwZT1pbWFnZV0sLmNyaXNwLWNsaWVudCAuY2MtMW91M2QgLmNjLWhlNXkzIC5jYy02czZ1M1tkYXRhLXR5cGU9ZW1iZWRde21hcmdpbi1pbmxpbmU6YXV0byFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xb3UzZCAuY2MtaGU1eTMgLmNjLTZzNnUzW2RhdGEtdHlwZT1saW5rXXtoZWlnaHQ6MzBweDtsaW5lLWhlaWdodDoyOXB4O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDtib3JkZXItc3R5bGU6c29saWQhaW1wb3J0YW50O2JvcmRlci13aWR0aDoxcHghaW1wb3J0YW50O2JvcmRlci1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC1ibGFjay1ub3JtYWwpKSFpbXBvcnRhbnQ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O3dvcmQtYnJlYWs6YnJlYWstYWxsIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjEwcHghaW1wb3J0YW50O3BhZGRpbmc6MCAxNHB4IWltcG9ydGFudDtmb250LXNpemU6MTJweCFpbXBvcnRhbnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFvdTNkIC5jYy1oZTV5MyAuY2MtNnM2dTNbZGF0YS10eXBlPWltYWdlXSwuY3Jpc3AtY2xpZW50IC5jYy0xb3UzZCAuY2MtaGU1eTMgLmNjLTZzNnUzW2RhdGEtdHlwZT1lbWJlZF17YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWwpKSFpbXBvcnRhbnQ7d2lkdGg6MTAwJSFpbXBvcnRhbnQ7bWluLXdpZHRoOjE4MHB4IWltcG9ydGFudDttYXgtd2lkdGg6NjAwcHghaW1wb3J0YW50O2JveC1zaGFkb3c6MCAxcHggMnB4IHJnYih2YXIoLS1jcmlzcC1jb2xvci1zaGFkb3ctbm9ybWFsKSwgLjA4KSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOmNvdmVyIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjEycHghaW1wb3J0YW50O3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xb3UzZCAuY2MtaGU1eTMgLmNjLTZzNnUzW2RhdGEtdHlwZT1pbWFnZV17aGVpZ2h0OjgwcHg7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwpLCAuMDc1KSFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTo2cHghaW1wb3J0YW50O3RyYW5zaXRpb246ZmlsdGVyIC4xNXMgbGluZWFyIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xb3UzZCAuY2MtaGU1eTMgLmNjLTZzNnUzW2RhdGEtdHlwZT1pbWFnZV06aG92ZXJ7ZmlsdGVyOmJyaWdodG5lc3MoOTUlKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMW91M2QgLmNjLWhlNXkzIC5jYy02czZ1M1tkYXRhLXR5cGU9ZW1iZWRde2hlaWdodDo5MnB4fS5jcmlzcC1jbGllbnQgLmNjLTFvdTNkIC5jYy1oZTV5MyAuY2MtNnM2dTNbZGF0YS10eXBlPWVtYmVkXTpob3ZlcjpiZWZvcmV7dHJhbnNmb3JtOnNjYWxlKDEuMDUpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xb3UzZCAuY2MtaGU1eTMgLmNjLTZzNnUzW2RhdGEtdHlwZT1lbWJlZF06YWN0aXZlOmJlZm9yZXt0cmFuc2Zvcm06c2NhbGUoLjk4KSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMW91M2QgLmNjLWhlNXkzIC5jYy02czZ1M1tkYXRhLXR5cGU9ZW1iZWRdOmJlZm9yZXtoZWlnaHQ6NDRweDtjb250ZW50OiIiIWltcG9ydGFudDt6LWluZGV4OjEhaW1wb3J0YW50O3dpZHRoOjQ0cHghaW1wb3J0YW50O21hcmdpbi10b3A6LTIycHghaW1wb3J0YW50O21hcmdpbi1sZWZ0Oi0yMnB4IWltcG9ydGFudDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTVzIGVhc2UtaW4tb3V0IWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7dG9wOjUwJSFpbXBvcnRhbnQ7bGVmdDo1MCUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFvdTNkIC5jYy1oZTV5MyAuY2MtNnM2dTNbZGF0YS10eXBlPWVtYmVkXSAuY2MtMXB0MDF7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwpLCAuMDUpIWltcG9ydGFudDt3aWR0aDoxMDAlIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xaWVsMXtib3JkZXItdG9wOjFweCBzb2xpZCByZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwpLCAuMDYpIWltcG9ydGFudDttYXJnaW4tdG9wOjExcHghaW1wb3J0YW50O3BhZGRpbmctdG9wOjdweCFpbXBvcnRhbnQ7bWFyZ2luLWlubGluZTotMTRweCFpbXBvcnRhbnQ7cGFkZGluZy1pbmxpbmU6MTRweCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWllbDEsLmNyaXNwLWNsaWVudCAuY2MtMWllbDEgKnstd2Via2l0LXVzZXItc2VsZWN0Om5vbmUhaW1wb3J0YW50O3VzZXItc2VsZWN0Om5vbmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFpZWwxIC5jYy1tajl4YXthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWllbDEgLmNjLTEwbWpqLC5jcmlzcC1jbGllbnQgLmNjLTFpZWwxIC5jYy0xMnVyZntmbGV4Om5vbmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFpZWwxIC5jYy0xMG1qanttYXJnaW4tYm90dG9tOi0xcHghaW1wb3J0YW50O21hcmdpbi1pbmxpbmUtZW5kOjVweCFpbXBvcnRhbnQ7cGFkZGluZzowIDRweCFpbXBvcnRhbnQ7Zm9udC1zaXplOjEwLjRweCFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFpZWwxIC5jYy0xMG1qaiAuY2MtMTFhYmR7b3BhY2l0eTouMTUhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1ub3JtYWwpKSFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czozcHghaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDtpbnNldDowIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xaWVsMSAuY2MtMXRmYWh7ZmxleDoxIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xaWVsMSAuY2MtMTJ1cmZ7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50O29wYWNpdHk6LjYhaW1wb3J0YW50O21hcmdpbi1pbmxpbmUtc3RhcnQ6OHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xaWVsMSAuY2MtMTJ1cmY6aG92ZXIsLmNyaXNwLWNsaWVudCAuY2MtMWllbDEgLmNjLTEydXJmOmFjdGl2ZXtvcGFjaXR5OjEhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFpZWwxIC5jYy0xMnVyZjpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xaWVsMSAuY2MtMTJ1cmYtLWV4cGFuZGVkIC5jYy1seTRvZnt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWllbDEgLmNjLTEydXJmIC5jYy1seTRvZnstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyNyUyMiUyMGhlaWdodCUzRCUyMjEwJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNyUyMDEwJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMy45MTglMjA1JTIwLjUyNiUyMDguMzkzYS45NDIuOTQyJTIwMCUyMDAlMjAwJTIwMS4zMzElMjAxLjMzMWw0LjA5Ny00LjA5NmEuODg3Ljg4NyUyMDAlMjAwJTIwMCUyMDAtMS4yNTZMMS44NTcuMjc2QS45NDIuOTQyJTIwMCUyMDAlMjAwJTIwLjUyNiUyMDEuNjA3eiUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7aGVpZ2h0OjdweDtvcGFjaXR5Oi42NSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LWRhcmspKSFpbXBvcnRhbnQ7d2lkdGg6NC41cHghaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXJnaW4taW5saW5lLXN0YXJ0OjRweCFpbXBvcnRhbnQ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE1cyBsaW5lYXIhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDstd2Via2l0LW1hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDttYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7bWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50Oy13ZWJraXQtbWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDttYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFpZWwxIC5jYy15MTZxM3ttYXJnaW4tdG9wOjEwcHghaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFpZWwxIC5jYy03aWdmbXtsaW5lLWhlaWdodDoxNXB4O21hcmdpbi10b3A6NHB4IWltcG9ydGFudDttYXJnaW4taW5saW5lOjhweCFpbXBvcnRhbnQ7bGlzdC1zdHlsZS10eXBlOmRlY2ltYWwhaW1wb3J0YW50O2xpc3Qtc3R5bGUtcG9zaXRpb246aW5zaWRlIWltcG9ydGFudDtkaXNwbGF5Omxpc3QtaXRlbSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWllbDEgLmNjLTdpZ2ZtOmZpcnN0LWNoaWxke21hcmdpbi10b3A6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWllbDEgLmNjLTdpZ2ZtPip7Y29sb3I6aW5oZXJpdCFpbXBvcnRhbnQ7Zm9udC1zaXplOjEwLjhweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWllbDEgLmNjLTdpZ2ZtIC5jYy1rcTcxMXt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xaWVsMTpub3QoLmNjLTFpZWwxLS1mcm9tLW9wZXJhdG9yKSAuY2MtMTBtamogLmNjLTExYWJkLC5jcmlzcC1jbGllbnQgLmNjLTFpZWwxOm5vdCguY2MtMWllbDEtLWZyb20tb3BlcmF0b3IpIC5jYy0xMnVyZiAuY2MtbHk0b2Z7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtcmV2ZXJzZSkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xeDY3YiAuY2MtMWppdzMgLmNjLTRzMTZje29wYWNpdHk6LjYhaW1wb3J0YW50O3BhZGRpbmctaW5saW5lLXN0YXJ0OjVweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXg2N2IgLmNjLTFqaXczIC5jYy00czE2YywuY3Jpc3AtY2xpZW50IC5jYy0xeDY3YiAuY2MtMWppdzMgLmNjLTRzMTZjICp7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd2o1anttaW4taGVpZ2h0OjFweDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3ajVqIC5jYy00bzh2M3ttYXJnaW4tdG9wOi0xMXB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd2o1aiAuY2MtNG84djMgLmNjLXdlNWZuLC5jcmlzcC1jbGllbnQgLmNjLTF3ajVqIC5jYy00bzh2MyAuY2MtMXlqeTR7ZmxvYXQ6aW5saW5lLXN0YXJ0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd2o1aiAuY2MtNG84djMgLmNjLXdlNWZue2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS11bHRyYS1saWdodCkpIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjEycHghaW1wb3J0YW50O3BhZGRpbmc6OHB4IDEycHggMTBweCFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3ajVqIC5jYy00bzh2MyAuY2Mtd2U1Zm4gLmNjLXQzODBle2hlaWdodDo0cHg7YW5pbWF0aW9uLW5hbWU6Y2MtNWJ3aHA7YW5pbWF0aW9uLWR1cmF0aW9uOjEuNXM7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluLW91dDthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtYmxhY2stbm9ybWFsKSkhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTAwJSFpbXBvcnRhbnQ7d2lkdGg6NHB4IWltcG9ydGFudDttYXJnaW4taW5saW5lOjFweCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3ajVqIC5jYy00bzh2MyAuY2Mtd2U1Zm4gLmNjLXQzODBlOmZpcnN0LWNoaWxke2FuaW1hdGlvbi1kZWxheTowc30uY3Jpc3AtY2xpZW50IC5jYy0xd2o1aiAuY2MtNG84djMgLmNjLXdlNWZuIC5jYy10MzgwZTpudGgtY2hpbGQoMil7YW5pbWF0aW9uLWRlbGF5Oi0uMjVzfS5jcmlzcC1jbGllbnQgLmNjLTF3ajVqIC5jYy00bzh2MyAuY2Mtd2U1Zm4gLmNjLXQzODBlOm50aC1jaGlsZCgzKXthbmltYXRpb24tZGVsYXk6LS41c30uY3Jpc3AtY2xpZW50IC5jYy0xd2o1aiAuY2MtNG84djMgLmNjLTF5ank0e2xpbmUtaGVpZ2h0OjE4cHg7YW5pbWF0aW9uLW5hbWU6Y2MtMXN4anQ7YW5pbWF0aW9uLWR1cmF0aW9uOi41czthbmltYXRpb24tZGVsYXk6LjVzO2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC1ncmV5LW5vcm1hbCkpIWltcG9ydGFudDttYXJnaW4tdG9wOjVweCFpbXBvcnRhbnQ7bWFyZ2luLWlubGluZS1zdGFydDo3cHghaW1wb3J0YW50O2ZvbnQtc2l6ZToxMC44cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3ajVqIC5jYy00bzh2MzphZnRlcntoZWlnaHQ6MjJweDtjb250ZW50OiIiIWltcG9ydGFudDt3aWR0aDoxMDAlIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50W2Rpcj1ydGxdIC5jYy0xd2o1aiAuY2MtNG84djMgLmNjLTF5ank0e2FuaW1hdGlvbi1uYW1lOmNjLWx1MTBqfS5jcmlzcC1jbGllbnQgLmNjLWt0b2Rne3dpZHRoOjEwMCUhaW1wb3J0YW50O21hcmdpbi10b3A6MTVweCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OXtjbGVhcjpib3RoIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTkwanlje3BhZGRpbmctdG9wOjNweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy05MGp5YyAuY2MtMXNydm17bWFyZ2luLWJvdHRvbToxNHB4IWltcG9ydGFudDtmbGV4LWZsb3c6d3JhcCFpbXBvcnRhbnQ7bWFyZ2luLWlubGluZS1zdGFydDotMzZweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy05MGp5YyAuY2MtMXNydm0sLmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy05MGp5YyAuY2MtMXNydm0gKntmbGV4LWRpcmVjdGlvbjpyb3chaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy05MGp5YyAuY2MtMXNydm0gLmNjLXpwcHIze2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDtsZXR0ZXItc3BhY2luZzowIWltcG9ydGFudDttYXJnaW46MCBhdXRvIWltcG9ydGFudDtmb250LXNpemU6MTEuMnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhe2NsZWFyOmJvdGghaW1wb3J0YW50O21hcmdpbi1ib3R0b206NnB4IWltcG9ydGFudDtwb3NpdGlvbjpyZWxhdGl2ZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtMTFwN3YsLmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtZmxjYmd7ZGlzcGxheTpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy04ZHRhYyAuY2MtMnYzMmF7Y3Vyc29yOmRlZmF1bHQhaW1wb3J0YW50O3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4e3RleHQtYWxpZ246c3RhcnQhaW1wb3J0YW50O2N1cnNvcjpkZWZhdWx0IWltcG9ydGFudDtib3JkZXItcmFkaXVzOjEycHghaW1wb3J0YW50O3BhZGRpbmc6OHB4IDE0cHggOXB4IWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKSFpbXBvcnRhbnR9OmlzKC5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLThkdGFjIC5jYy0ydjMyYSAuY2MteXI4cHg6aGFzKC5jYy1ranJzcltkYXRhLXNpemU9bGFyZ2VdOm9ubHktb2YtdHlwZSksLmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtOGR0YWMgLmNjLTJ2MzJhIC5jYy15cjhweDpoYXMoLmNjLWtqcnNyW2RhdGEtc2l6ZT1sYXJnZV06bnRoLW9mLXR5cGUoMik6bGFzdC1vZi10eXBlKSwuY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4OmhhcyguY2Mta2pyc3JbZGF0YS1zaXplPWxhcmdlXTpudGgtb2YtdHlwZSgzKTpsYXN0LW9mLXR5cGUpKXtiYWNrZ3JvdW5kOnVuc2V0IWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLThkdGFjIC5jYy0ydjMyYSAuY2MteXI4cHg6aG92ZXIgLmNjLTFncXZsIC5jYy0xNTdyaSAuY2MtMWxrZ2sgLmNjLXRjcjE3LC5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLThkdGFjIC5jYy0ydjMyYSAuY2MteXI4cHg6aG92ZXIgLmNjLTFncXZsIC5jYy0xNTdyaSAuY2MtMWxrZ2sgLmNjLTE5ZGlqe3RyYW5zaXRpb246b3BhY2l0eSAuMXMgbGluZWFyIC41cyFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtOGR0YWMgLmNjLTJ2MzJhIC5jYy15cjhweDpob3ZlciAuY2MtMWdxdmxbZGF0YS1zdGF0ZT1wbGF5aW5nXSAuY2MtMTU3cmkgLmNjLTFsa2drIC5jYy10Y3IxN3t2aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50O29wYWNpdHk6MSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtOGR0YWMgLmNjLTJ2MzJhIC5jYy15cjhweDpob3ZlciAuY2MtMWdxdmxbZGF0YS1zdGF0ZT1wbGF5aW5nXSAuY2MtMTU3cmkgLmNjLTFsa2drIC5jYy0xOWRpantvcGFjaXR5OjAhaW1wb3J0YW50O3BvaW50ZXItZXZlbnRzOm5vbmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLThkdGFjIC5jYy0ydjMyYSAuY2MteXI4cHgsLmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtOGR0YWMgLmNjLTJ2MzJhIC5jYy15cjhweCAuY2MtbHk2djcsLmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtOGR0YWMgLmNjLTJ2MzJhIC5jYy15cjhweCAuY2MtMWgweXgsLmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtOGR0YWMgLmNjLTJ2MzJhIC5jYy15cjhweCAuY2MtMWdldWR7bGluZS1oZWlnaHQ6MThweDtmb250LXNpemU6MTIuNnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4LC5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLThkdGFjIC5jYy0ydjMyYSAuY2MteXI4cHggLmNjLWx5NnY3LC5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLThkdGFjIC5jYy0ydjMyYSAuY2MteXI4cHggLmNjLTFnZXVke3dvcmQtYnJlYWs6bm9ybWFsIWltcG9ydGFudDtvdmVyZmxvdy13cmFwOmFueXdoZXJlIWltcG9ydGFudDstd2Via2l0LWh5cGhlbnM6YXV0byFpbXBvcnRhbnQ7aHlwaGVuczphdXRvIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4IC5jYy0xaDB5eCwuY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4IC5jYy0xZ2V1ZHtjb2xvcjppbmhlcml0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4IC5jYy0xaDB5eHt3b3JkLWJyZWFrOmJyZWFrLWFsbCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtOGR0YWMgLmNjLTJ2MzJhIC5jYy15cjhweCAuY2MtMWdldWQuY2MtaDZ5MXlbZGF0YS10eXBlPVwjXXtsaW5lLWhlaWdodDozMnB4O2ZvbnQtc2l6ZToyOC44cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLThkdGFjIC5jYy0ydjMyYSAuY2MteXI4cHggLmNjLTFnZXVkLmNjLWg2eTF5W2RhdGEtdHlwZT0iIyMiXXtsaW5lLWhlaWdodDoyOHB4O2ZvbnQtc2l6ZToyNS42cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLThkdGFjIC5jYy0ydjMyYSAuY2MteXI4cHggLmNjLTFnZXVkLmNjLWg2eTF5W2RhdGEtdHlwZT0iIyMjIl17bGluZS1oZWlnaHQ6MjRweDtmb250LXNpemU6MjIuNHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4IC5jYy0xZ2V1ZC5jYy1oNnkxeVtkYXRhLXR5cGU9IiMjIyMiXXtsaW5lLWhlaWdodDoyNHB4O2ZvbnQtc2l6ZToxOS4ycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLThkdGFjIC5jYy0ydjMyYSAuY2MteXI4cHggLmNjLTFnZXVkLmNjLWg2eTF5W2RhdGEtdHlwZT0iIyMjIyMiXXtsaW5lLWhlaWdodDoyMHB4O2ZvbnQtc2l6ZToxNnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4IC5jYy0xZ2V1ZC5jYy1oNnkxeVtkYXRhLXR5cGU9IiMjIyMjIyJde2xpbmUtaGVpZ2h0OjE2cHg7Zm9udC1zaXplOjEyLjhweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtOGR0YWMgLmNjLTJ2MzJhIC5jYy15cjhweCAuY2MtMWdldWQuY2MtMTB4Z2YsLmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtOGR0YWMgLmNjLTJ2MzJhIC5jYy15cjhweCAuY2MtMWdldWQuY2MtMTIxNXIgdGgsLmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtOGR0YWMgLmNjLTJ2MzJhIC5jYy15cjhweCAuY2MtMWdldWQuY2MtMTIxNXIgdGR7Ym9yZGVyLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktdWx0cmEtZGFyayksIC4xNzUpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4IC5jYy0xZ2V1ZC5jYy1rbWlrbSwuY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4IC5jYy0xZ2V1ZC5jYy05NWx3c3tiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbC1maXhlZCksIC4yNSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLThkdGFjIC5jYy0ydjMyYSAuY2MteXI4cHggLmNjLTFnZXVkLmNjLTEyMTVyIHRoZWFke2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS11bHRyYS1kYXJrKSwgLjA0KSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtOGR0YWMgLmNjLTJ2MzJhIC5jYy15cjhweCAuY2MtMWdldWQuY2MtMW81eWIuY2MtM3YyZTIgLmNjLTE0dDkye3RyYW5zaXRpb246ZmlsdGVyIC4xNXMgbGluZWFyIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4IC5jYy0xZ2V1ZC5jYy0xbzV5Yi5jYy0zdjJlMiAuY2MtMTR0OTI6aG92ZXJ7ZmlsdGVyOmJyaWdodG5lc3MoOTUlKSFpbXBvcnRhbnQ7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLThkdGFjIC5jYy0ydjMyYSAuY2MteXI4cHggLmNjLTFnZXVkLmNjLTE0dDkyLC5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLThkdGFjIC5jYy0ydjMyYSAuY2MteXI4cHggLmNjLTFnZXVkLmNjLTF1eHp2e2xpbmUtaGVpZ2h0OjEwMHB4fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLThkdGFjIC5jYy0ydjMyYSAuY2MteXI4cHggLmNjLTFnZXVkLmNjLTE0dDkyIGltZ3tjdXJzb3I6em9vbS1pbiFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtOGR0YWMgLmNjLTJ2MzJhIC5jYy15cjhweCAuY2Mtc2h5b2RbZGF0YS1zaXplPWxhcmdlXXttYXJnaW46MCAwIC00cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLThkdGFjIC5jYy0ydjMyYTphY3RpdmV7ei1pbmRleDoxIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy04ZHRhYyAuY2MtMnYzMmE6YWN0aXZlIC5jYy15cjhweHtvcGFjaXR5Oi45IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy0xMXA3diwuY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy1mbGNiZywuY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy16ZjdkZntkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLWZsY2JnLC5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLTFqamdvLC5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLTE3YXVye2xpbmUtaGVpZ2h0OjE0cHg7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlIWltcG9ydGFudDtwYWRkaW5nLXRvcDo1cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLWZsY2Jne3BhZGRpbmctaW5saW5lLWVuZDoxNHB4IWltcG9ydGFudDtmb250LXNpemU6MTAuNHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy1mbGNiZyAuY2MtMTdqenIsLmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtZmxjYmcgLmNjLTFjODl0e2Zsb2F0OmlubGluZS1lbmQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLWZsY2JnIC5jYy0xN2p6cnstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMTQlMjIlMjBoZWlnaHQlM0QlMjI4JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTQlMjA4JTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjJub25lJTIyJTIwc3Ryb2tlJTNEJTIyJTIzMDAwJTIyJTIwc3Ryb2tlLWxpbmVjYXAlM0QlMjJyb3VuZCUyMiUyMHN0cm9rZS1saW5lam9pbiUzRCUyMnJvdW5kJTIyJTIwZCUzRCUyMk0xMC4wNzkuODMyJTIwNi44OTYlMjA0LjAxNE00LjM1JTIwNy4xOTclMjAxLjE2NyUyMDQuMDE0bTExLjQ1OC0xLjkwOUw3LjUzMiUyMDcuMTk3bC0zLjgxOS0zLjgyJTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTtoZWlnaHQ6OHB4O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLTUwMCkpIWltcG9ydGFudDttYXJnaW4tdG9wOjNweCFpbXBvcnRhbnQ7d2lkdGg6MTRweCFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hcmdpbi1pbmxpbmUtZW5kOjJweCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50Oy13ZWJraXQtbWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O21hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDstd2Via2l0LW1hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDttYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50O21hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtZmxjYmcgLmNjLTFjODl0e2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWdyZXktbm9ybWFsKSkhaW1wb3J0YW50O2ZvbnQtc2l6ZToxMC44cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLTFqamdve21hcmdpbi1pbmxpbmUtZW5kOjJweCFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206NHB4IWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy0xampnbyAuY2MteXljOWYsLmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtMWpqZ28gLmNjLTFweW12e2Zsb2F0OmlubGluZS1lbmQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLTFqamdvIC5jYy15eWM5Zntjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC1ncmV5LW5vcm1hbCkpIWltcG9ydGFudDtmb250LXNpemU6MTAuOHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy0xampnbyAuY2MtMXB5bXZ7YW5pbWF0aW9uLW5hbWU6Y2MtY284YzY7YW5pbWF0aW9uLWR1cmF0aW9uOi4yczthbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7bWFyZ2luLWlubGluZS1zdGFydDozcHghaW1wb3J0YW50O21hcmdpbi10b3A6M3B4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy0xampnbyAuY2MtMXB5bXYgLmNjLTFscnF3e2hlaWdodDo2cHg7YW5pbWF0aW9uLWR1cmF0aW9uOjFzO2JvcmRlci13aWR0aDoxLjVweCFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktdWx0cmEtbGlnaHQpKSFpbXBvcnRhbnQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LW5vcm1hbCkpIWltcG9ydGFudDt3aWR0aDo2cHghaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLTE3YXVye21hcmdpbi1pbmxpbmUtZW5kOjE0cHghaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOjRweCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtMTdhdXIgLmNjLW85aTR3LC5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLTE3YXVyIC5jYy0xdWtleXt0ZXh0LWFsaWduOmVuZCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtMTdhdXIgLmNjLW85aTR3e2ZvbnQtc2l6ZToxMS4ycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLTE3YXVyIC5jYy1vOWk0dywuY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy0xN2F1ciAuY2MtbzlpNHcgKntjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtMTdhdXIgLmNjLW85aTR3IC5jYy1yZ2c5bywuY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhIC5jYy0xN2F1ciAuY2MtbzlpNHcgLmNjLTEyaHV5e2Zsb2F0OmlubGluZS1lbmQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLTE3YXVyIC5jYy1vOWk0dyAuY2MtcmdnOW97LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjIyJTIyJTIwaGVpZ2h0JTNEJTIyMjIlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyMiUyMDIyJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTElMjAyMS40YzUuNzQ0JTIwMCUyMDEwLjQtNC42NTYlMjAxMC40LTEwLjRTMTYuNzQ0LjYlMjAxMSUyMC42LjYlMjA1LjI1Ni42JTIwMTElMjA1LjI1NiUyMDIxLjQlMjAxMSUyMDIxLjRtMC0xNS4yNzVjLjU0JTIwMCUyMC45NzUuNDM1Ljk3NS45NzV2NC41NWMwJTIwLjU0LS40MzUuOTc1LS45NzUuOTc1cy0uOTc1LS40MzUtLjk3NS0uOTc1VjcuMWMwLS41NC40MzUtLjk3NS45NzUtLjk3NU05LjkxNSUyMDE0LjlhMS4wOSUyMDEuMDklMjAwJTIwMCUyMDElMjAuNTItLjk5NWMuMzQ2LS4yMDguNzgtLjIwOCUyMDEuMTI2JTIwMCUyMC4zNDUuMjEuNTQ0LjU5My41Mi45OTVhMS4wOSUyMDEuMDklMjAwJTIwMCUyMDEtLjUyLjk5NWMtLjM0Ni4yMDctLjc4LjIwNy0xLjEyNiUyMDBhMS4wOSUyMDEuMDklMjAwJTIwMCUyMDEtLjUyLS45OTUlMjIlMkYlM0UlM0MlMkZzdmclM0UpO2hlaWdodDoxM3B4O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtcmVkLW5vcm1hbCkpIWltcG9ydGFudDttYXJnaW4taW5saW5lLWVuZDozcHghaW1wb3J0YW50O3dpZHRoOjEzcHghaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXJnaW4tdG9wOjFweCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50Oy13ZWJraXQtbWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O21hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDstd2Via2l0LW1hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDttYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50O21hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtMTdhdXIgLmNjLW85aTR3IC5jYy0xMmh1eXtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1yZWQtbm9ybWFsKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEgLmNjLTE3YXVyIC5jYy1vOWk0dzpob3ZlciAuY2MtMTJodXl7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYSAuY2MtMTdhdXIgLmNjLTF1a2V5e2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWdyZXktbm9ybWFsKSkhaW1wb3J0YW50O21hcmdpbi10b3A6NHB4IWltcG9ydGFudDtmb250LXNpemU6MTAuOHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhLS1vcGVyYXRvcntmbG9hdDppbmxpbmUtc3RhcnQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLW9wZXJhdG9yLmNjLTFncmZhLS1uZXd7YW5pbWF0aW9uLW5hbWU6Y2MteWdvZWF9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYS0tb3BlcmF0b3IgLmNjLTExcDd2e3RvcDozcHghaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDtpbnNldC1pbmxpbmUtc3RhcnQ6LTM2cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLW9wZXJhdG9yIC5jYy0xMXA3diwuY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhLS1vcGVyYXRvciAuY2MtMTFwN3YgLmNjLTFxeW04e2hlaWdodDoyOHB4O2JvcmRlci1yYWRpdXM6MjhweCFpbXBvcnRhbnQ7d2lkdGg6MjhweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYS0tb3BlcmF0b3IgLmNjLTExcDd2IC5jYy0xcXltOHtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhLS1vcGVyYXRvciAuY2MtemY3ZGZ7bGluZS1oZWlnaHQ6MTRweDtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC1ncmV5LW5vcm1hbCkpIWltcG9ydGFudDttYXJnaW4tYm90dG9tOjZweCFpbXBvcnRhbnQ7cGFkZGluZy1pbmxpbmUtc3RhcnQ6MXB4IWltcG9ydGFudDtmb250LXNpemU6MTJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYS0tb3BlcmF0b3IgLmNjLXpmN2RmIC5jYy12bWdrb3tiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWdyZXktbm9ybWFsKSkhaW1wb3J0YW50O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LXdoaXRlLW5vcm1hbCkpIWltcG9ydGFudDttYXJnaW4taW5saW5lLXN0YXJ0OjZweCFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czozcHghaW1wb3J0YW50O21hcmdpbi1ib3R0b206LTJweCFpbXBvcnRhbnQ7cGFkZGluZzoxcHggNHB4IWltcG9ydGFudDtmb250LXNpemU6OS42cHghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhLS1vcGVyYXRvciAuY2MtOGR0YWMsLmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYS0tb3BlcmF0b3IgLmNjLThkdGFjIC5jYy0ydjMyYSwuY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhLS1vcGVyYXRvciAuY2MtOGR0YWMgLmNjLXlyOHB4LC5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLW9wZXJhdG9yIC5jYy04ZHRhYyAuY2MtZnVxb2MsLmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYS0tb3BlcmF0b3IgLmNjLThkdGFjIC5jYy02czZ1M3tmbG9hdDppbmxpbmUtc3RhcnQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLW9wZXJhdG9yIC5jYy04ZHRhYyAuY2MtMWozOTYgLmNjLWVjejZlIC5jYy1mdXFvY3t0ZXh0LWFsaWduOnN0YXJ0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhLS1vcGVyYXRvciAuY2MtOGR0YWMgLmNjLTFqMzk2IC5jYy1lY3o2ZSAuY2MtZnVxb2MgLmNjLTF2dmhsIC5jYy1ueWJ5cHttYXJnaW4taW5saW5lLWVuZDo2cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLW9wZXJhdG9yIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4e2JhY2tncm91bmQ6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS11bHRyYS1saWdodCkpIWltcG9ydGFudDtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC1ibGFjay1ub3JtYWwpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYS0tb3BlcmF0b3IgLmNjLThkdGFjIC5jYy0ydjMyYSAuY2MteXI4cHggLmNjLTFncXZsIC5jYy0xNTdyaSAuY2MteGRjbmx7YmFja2dyb3VuZDpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LWxpZ2h0KSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLW9wZXJhdG9yIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4IC5jYy0xZ3F2bCAuY2MtMTU3cmkgLmNjLTFsa2drIC5jYy0xOWRpantjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LW5vcm1hbCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhLS1vcGVyYXRvciAuY2MtOGR0YWMgLmNjLTJ2MzJhIC5jYy15cjhweCAuY2MtMWdldWQuY2MtMTB4Z2Z7Ym9yZGVyLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCksIC4xNSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLW9wZXJhdG9yIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4IC5jYy0xZ2V1ZC5jYy0xMjE1ciB0aCwuY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhLS1vcGVyYXRvciAuY2MtOGR0YWMgLmNjLTJ2MzJhIC5jYy15cjhweCAuY2MtMWdldWQuY2MtMTIxNXIgdGR7Ym9yZGVyLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCksIC4wOCkhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6IzAwMDAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLW9wZXJhdG9yIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4IC5jYy0xZ2V1ZC5jYy1rbWlrbS5jYy0xNmJldXtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCksIC4wNikhaW1wb3J0YW50O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhLS1vcGVyYXRvciAuY2MtOGR0YWMgLmNjLTJ2MzJhIC5jYy15cjhweCAuY2MtMWdldWQuY2Mta21pa20uY2MtMWRxYnV7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwtZml4ZWQpKSFpbXBvcnRhbnQ7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtd2hpdGUtbm9ybWFsLWZpeGVkKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLW9wZXJhdG9yIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4IC5jYy0xZ2V1ZC5jYy05NWx3c3tiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCksIC4wNikhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLW9wZXJhdG9yIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4IC5jYy0xZ2V1ZC5jYy0xMjE1ciB0aGVhZCwuY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhLS1vcGVyYXRvciAuY2MtOGR0YWMgLmNjLTJ2MzJhIC5jYy15cjhweCAuY2MtMWdldWQuY2MtMTIxNXIgdGJvZHksLmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYS0tb3BlcmF0b3IgLmNjLThkdGFjIC5jYy0ydjMyYSAuY2MteXI4cHggLmNjLTFnZXVkLmNjLTEyMTVyIHRye2JhY2tncm91bmQtY29sb3I6IzAwMDAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLW9wZXJhdG9yIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4IC5jYy0xZ2V1ZC5jYy0xZmhiMXtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYS0tdmlzaXRvcntmbG9hdDppbmxpbmUtZW5kIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhLS12aXNpdG9yLmNjLTFncmZhLS1uZXd7YW5pbWF0aW9uLW5hbWU6Y2MtdWg4OGh9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYS0tdmlzaXRvciAuY2MtOGR0YWMsLmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYS0tdmlzaXRvciAuY2MtOGR0YWMgLmNjLTJ2MzJhLC5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLXZpc2l0b3IgLmNjLThkdGFjIC5jYy15cjhweCwuY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhLS12aXNpdG9yIC5jYy04ZHRhYyAuY2MtZnVxb2MsLmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYS0tdmlzaXRvciAuY2MtOGR0YWMgLmNjLTZzNnUze2Zsb2F0OmlubGluZS1lbmQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLXZpc2l0b3IgLmNjLThkdGFjIC5jYy1mdXFvY3t0ZXh0LWFsaWduOmVuZCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYS0tdmlzaXRvciAuY2MtOGR0YWMgLmNjLWZ1cW9jIC5jYy0xdnZobCAuY2MtbnlieXB7bWFyZ2luLWlubGluZS1zdGFydDo2cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLXZpc2l0b3IgLmNjLThkdGFjIC5jYy0ydjMyYSAuY2MteXI4cHh7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtNTAwKSkhaW1wb3J0YW50O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS1yZXZlcnNlKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLXZpc2l0b3IgLmNjLThkdGFjIC5jYy0ydjMyYSAuY2MteXI4cHggLmNjLTFncXZsIC5jYy0xNTdyaSAuY2MteGRjbmx7YmFja2dyb3VuZDpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtcmV2ZXJzZSksIC4xNSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLXZpc2l0b3IgLmNjLThkdGFjIC5jYy0ydjMyYSAuY2MteXI4cHggLmNjLTFncXZsIC5jYy0xNTdyaSAuY2MtaXBsbmJ7b3BhY2l0eTouMTUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLXZpc2l0b3IgLmNjLThkdGFjIC5jYy0xajM5NiAuY2MtZnVxb2MgLmNjLTF2dmhsIC5jYy1ueWJ5cHtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC1ibGFjay1ub3JtYWwpKSFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDtwb2ludGVyLWV2ZW50czpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhLS12aXNpdG9yIC5jYy04ZHRhYyAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy0xdnZobCAuY2MtbnlieXAtLXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtYmxhY2stbm9ybWFsKSkhaW1wb3J0YW50O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LXdoaXRlLW5vcm1hbCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhLS12aXNpdG9yIC5jYy04ZHRhYyAuY2MtMWozOTYgLmNjLWZ1cW9jIC5jYy1iaTV2NSAuY2MtMTduZTcgLmNjLTFxdGh6IC5jYy0xaG5rayAuY2MtMTkzYnJ7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtYmxhY2stbm9ybWFsKSkhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6IzAwMDAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLW5ld3thbmltYXRpb24tZHVyYXRpb246LjJzO2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhLS1uZXcgLmNjLThkdGFjIC5jYy1lY3o2ZXthbmltYXRpb24tbmFtZTpjYy1zZ252aDthbmltYXRpb24tZHVyYXRpb246LjJzO2FuaW1hdGlvbi1kZWxheTouMjVzO2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhLS1maWxlIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4e3BhZGRpbmc6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYS0tYW5pbWF0aW9uIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4e2JhY2tncm91bmQ6MCAwIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLWF1ZGlvLC5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLWF1ZGlvIC5jYy04ZHRhY3t3aWR0aDoxMDAlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhLS1hdWRpbyAuY2MtOGR0YWMgLmNjLTJ2MzJhIC5jYy15cjhweHtwYWRkaW5nLWJsb2NrOjRweCFpbXBvcnRhbnQ7cGFkZGluZy1pbmxpbmU6NHB4IDE0cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLWZpZWxkLC5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLWZpZWxkIC5jYy04ZHRhYywuY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhLS1maWVsZCAuY2MtOGR0YWMgLmNjLTFqMzk2IC5jYy1lY3o2ZSAuY2MtZnVxb2N7ZmxvYXQ6bm9uZSFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYS0tY2Fyb3VzZWwsLmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYS0tY2Fyb3VzZWwgLmNjLThkdGFjLC5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLWNhcm91c2VsIC5jYy04ZHRhYyAuY2MtZnVxb2N7ZmxvYXQ6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYS0tZmlyc3Qtb2YtZ3JvdXAgLmNjLTExcDd2LC5jcmlzcC1jbGllbnQgLmNjLWt0b2RnIC5jYy15YmZ5OSAuY2MtMWdyZmEtLWZpcnN0LW9mLWdyb3VwIC5jYy16ZjdkZntkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZyAuY2MteWJmeTkgLmNjLTFncmZhLS1sYXN0LW9mLWdyb3Vwe21hcmdpbi1ib3R0b206MTRweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYS0tbGFzdC1vZi1ncm91cCAuY2MtZmxjYmd7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGcgLmNjLXliZnk5IC5jYy0xZ3JmYS0tbGFzdC1vZi10aHJlYWR7bWFyZ2luLWJvdHRvbToyMnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rdG9kZy0tc3RhdHVzLWFnZW50IC5jYy15YmZ5OSAuY2MtOTBqeWMgLmNjLTFzcnZte21hcmdpbi1pbmxpbmUtc3RhcnQ6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mta3RvZGctLWV4cGFuZGVkIC5jYy15YmZ5OSAuY2MtMWdyZmEtLW9wZXJhdG9yIC5jYy04ZHRhYyAuY2MtMnYzMmEgLmNjLXlyOHB4LC5jcmlzcC1jbGllbnQgLmNjLWt0b2RnLS1leHBhbmRlZCAuY2MteWJmeTkgLmNjLTFncmZhLS1vcGVyYXRvciAuY2MtOGR0YWMgLmNjLTFqMzk2IC5jYy1lY3o2ZXttYXJnaW4taW5saW5lLWVuZDo3MHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50W2Rpcj1ydGxdIC5jYy1rdG9kZyAuY2MtMWdyZmEtLW9wZXJhdG9yLmNjLTFncmZhLS1uZXd7YW5pbWF0aW9uLW5hbWU6Y2MtdWg4OGh9LmNyaXNwLWNsaWVudFtkaXI9cnRsXSAuY2Mta3RvZGcgLmNjLTFncmZhLS12aXNpdG9yLmNjLTFncmZhLS1uZXd7YW5pbWF0aW9uLW5hbWU6Y2MteWdvZWF9LmNyaXNwLWNsaWVudCAuY2MtMXdjOXR7ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudDtmbGV4OjEhaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd2M5dCwuY3Jpc3AtY2xpZW50IC5jYy0xd2M5dCAuY2MtMXUwN3l7aW5zZXQtaW5saW5lOjAhaW1wb3J0YW50O3RvcDowIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd2M5dCAuY2MtMXUwN3l7cGFkZGluZy1ibG9jazowIWltcG9ydGFudDtwYWRkaW5nLWlubGluZTpjYWxjKDUxcHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LWxlZnQpKSBjYWxjKDE1cHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LXJpZ2h0KSkhaW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnQ7ZmxleDoxIWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiBhdXRvIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd2M5dC0tc3RhdHVzLWFnZW50IC5jYy0xdTA3eXtwYWRkaW5nLWlubGluZS1zdGFydDpjYWxjKDE1cHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LWxlZnQpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdjOXQtLWhhcy1vZmZsaW5lIC5jYy0xdTA3eSwuY3Jpc3AtY2xpZW50IC5jYy0xd2M5dC0taGFzLWhlYWx0aCAuY2MtMXUwN3l7cGFkZGluZy10b3A6NjBweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdjOXQtLWhhcy1vZmZsaW5lLmNjLTF3Yzl0LS1sYXlvdXQtY29sb3JpemVkIC5jYy0xdTA3eSwuY3Jpc3AtY2xpZW50IC5jYy0xd2M5dC0taGFzLWhlYWx0aC5jYy0xd2M5dC0tbGF5b3V0LWNvbG9yaXplZCAuY2MtMXUwN3l7cGFkZGluZy10b3A6NzBweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXdjOXQtLWhhcy1hbGVydCAuY2MtMXUwN3kgLmNjLWMzZmhmOmFmdGVye2hlaWdodDo0MXB4O2NvbnRlbnQ6IiIhaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3Yzl0LS1oYXMtbG9jYWwtbWVzc2FnZXMgLmNjLTF1MDd5IC5jYy1rdG9kZyAuY2MteWJmeTlbZGF0ZS1oYXMtdGltZXN0YW1wPWZhbHNlXXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF3Yzl0LS1mdWxsLXZpZXcgLmNjLTF1MDd5e3BhZGRpbmctaW5saW5lOmNhbGMoNDRweCArIHZhcigtLWNyaXNwLWVudi1kZXZpY2UtaW5zZXQtbGVmdCkpIGNhbGMoOHB4ICsgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1yaWdodCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xd2M5dC0tZnVsbC12aWV3LmNjLTF3Yzl0LS1zdGF0dXMtYWdlbnQgLmNjLTF1MDd5e3BhZGRpbmctaW5saW5lLXN0YXJ0OmNhbGMoOHB4ICsgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1sZWZ0KSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWN4MzFse3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDtib3R0b206MCFpbXBvcnRhbnQ7aW5zZXQtaW5saW5lOmNhbGMoMTBweCArIHZhcigtLWNyaXNwLWVudi1kZXZpY2UtaW5zZXQtbGVmdCkpIGNhbGMoMTBweCArIHZhcigtLWNyaXNwLWVudi1kZXZpY2UtaW5zZXQtcmlnaHQpKSFpbXBvcnRhbnQ7ei1pbmRleDo4IWltcG9ydGFudDttYXJnaW4tYm90dG9tOjdweCFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWN4MzFsIC5jYy10MjUwcXtoZWlnaHQ6MzRweDtpbnNldC1pbmxpbmU6MCFpbXBvcnRhbnQ7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxNHB4KSFpbXBvcnRhbnQ7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTRweCkhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTJweCFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudDtwYWRkaW5nOjAgMTVweCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7Ym90dG9tOjAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWN4MzFsIC5jYy10MjUwcSAuY2MtNzhwazl7aGVpZ2h0OjE1LjVweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbC1maXhlZCkpIWltcG9ydGFudDtmbGV4Om5vbmUhaW1wb3J0YW50O3dpZHRoOjE1LjVweCFpbXBvcnRhbnQ7bWFyZ2luLWlubGluZS1lbmQ6OXB4IWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7bWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50O21hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7bWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1jeDMxbCAuY2MtdDI1MHEgLmNjLTFjZmtme2xpbmUtaGVpZ2h0OjM0cHg7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtYmxhY2stbm9ybWFsLWZpeGVkKSkhaW1wb3J0YW50O3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXMhaW1wb3J0YW50O3doaXRlLXNwYWNlOm5vd3JhcCFpbXBvcnRhbnQ7Y3Vyc29yOmRlZmF1bHQhaW1wb3J0YW50O2ZvbnQtc2l6ZToxMS42cHghaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtY3gzMWwgLmNjLXQyNTBxLS1uZXctbWVzc2FnZXMsLmNyaXNwLWNsaWVudCAuY2MtY3gzMWwgLmNjLXQyNTBxLS13YXJuLXByb21wdCwuY3Jpc3AtY2xpZW50IC5jYy1jeDMxbCAuY2MtdDI1MHEtLXdhcm4tcmVwbHksLmNyaXNwLWNsaWVudCAuY2MtY3gzMWwgLmNjLXQyNTBxLS1lbWFpbC1pbnZhbGlkLC5jcmlzcC1jbGllbnQgLmNjLWN4MzFsIC5jYy10MjUwcS0tbmV3LW1lc3NhZ2VzIC5jYy03OHBrOSwuY3Jpc3AtY2xpZW50IC5jYy1jeDMxbCAuY2MtdDI1MHEtLW5ldy1tZXNzYWdlcyAuY2MtMWNma2YsLmNyaXNwLWNsaWVudCAuY2MtY3gzMWwgLmNjLXQyNTBxLS13YXJuLXByb21wdCAuY2MtNzhwazksLmNyaXNwLWNsaWVudCAuY2MtY3gzMWwgLmNjLXQyNTBxLS13YXJuLXByb21wdCAuY2MtMWNma2YsLmNyaXNwLWNsaWVudCAuY2MtY3gzMWwgLmNjLXQyNTBxLS13YXJuLXJlcGx5IC5jYy03OHBrOSwuY3Jpc3AtY2xpZW50IC5jYy1jeDMxbCAuY2MtdDI1MHEtLXdhcm4tcmVwbHkgLmNjLTFjZmtmLC5jcmlzcC1jbGllbnQgLmNjLWN4MzFsIC5jYy10MjUwcS0tZW1haWwtaW52YWxpZCAuY2MtNzhwazksLmNyaXNwLWNsaWVudCAuY2MtY3gzMWwgLmNjLXQyNTBxLS1lbWFpbC1pbnZhbGlkIC5jYy0xY2ZrZiwuY3Jpc3AtY2xpZW50IC5jYy1jeDMxbCAuY2MtdDI1MHEtLW5ldy1tZXNzYWdlcyAuY2MtNzhwazk6aG92ZXIsLmNyaXNwLWNsaWVudCAuY2MtY3gzMWwgLmNjLXQyNTBxLS1uZXctbWVzc2FnZXMgLmNjLTc4cGs5OmFjdGl2ZSwuY3Jpc3AtY2xpZW50IC5jYy1jeDMxbCAuY2MtdDI1MHEtLW5ldy1tZXNzYWdlcyAuY2MtMWNma2Y6aG92ZXIsLmNyaXNwLWNsaWVudCAuY2MtY3gzMWwgLmNjLXQyNTBxLS1uZXctbWVzc2FnZXMgLmNjLTFjZmtmOmFjdGl2ZSwuY3Jpc3AtY2xpZW50IC5jYy1jeDMxbCAuY2MtdDI1MHEtLXdhcm4tcHJvbXB0IC5jYy03OHBrOTpob3ZlciwuY3Jpc3AtY2xpZW50IC5jYy1jeDMxbCAuY2MtdDI1MHEtLXdhcm4tcHJvbXB0IC5jYy03OHBrOTphY3RpdmUsLmNyaXNwLWNsaWVudCAuY2MtY3gzMWwgLmNjLXQyNTBxLS13YXJuLXByb21wdCAuY2MtMWNma2Y6aG92ZXIsLmNyaXNwLWNsaWVudCAuY2MtY3gzMWwgLmNjLXQyNTBxLS13YXJuLXByb21wdCAuY2MtMWNma2Y6YWN0aXZlLC5jcmlzcC1jbGllbnQgLmNjLWN4MzFsIC5jYy10MjUwcS0td2Fybi1yZXBseSAuY2MtNzhwazk6aG92ZXIsLmNyaXNwLWNsaWVudCAuY2MtY3gzMWwgLmNjLXQyNTBxLS13YXJuLXJlcGx5IC5jYy03OHBrOTphY3RpdmUsLmNyaXNwLWNsaWVudCAuY2MtY3gzMWwgLmNjLXQyNTBxLS13YXJuLXJlcGx5IC5jYy0xY2ZrZjpob3ZlciwuY3Jpc3AtY2xpZW50IC5jYy1jeDMxbCAuY2MtdDI1MHEtLXdhcm4tcmVwbHkgLmNjLTFjZmtmOmFjdGl2ZSwuY3Jpc3AtY2xpZW50IC5jYy1jeDMxbCAuY2MtdDI1MHEtLWVtYWlsLWludmFsaWQgLmNjLTc4cGs5OmhvdmVyLC5jcmlzcC1jbGllbnQgLmNjLWN4MzFsIC5jYy10MjUwcS0tZW1haWwtaW52YWxpZCAuY2MtNzhwazk6YWN0aXZlLC5jcmlzcC1jbGllbnQgLmNjLWN4MzFsIC5jYy10MjUwcS0tZW1haWwtaW52YWxpZCAuY2MtMWNma2Y6aG92ZXIsLmNyaXNwLWNsaWVudCAuY2MtY3gzMWwgLmNjLXQyNTBxLS1lbWFpbC1pbnZhbGlkIC5jYy0xY2ZrZjphY3RpdmV7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWN4MzFsIC5jYy10MjUwcS0tbmV3LW1lc3NhZ2VzLC5jcmlzcC1jbGllbnQgLmNjLWN4MzFsIC5jYy10MjUwcS0td2FpdC1yZXBseXtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsdWUtdWx0cmEtbGlnaHQpLCAuOTQpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1jeDMxbCAuY2MtdDI1MHEtLXdhcm4tcHJvbXB0LC5jcmlzcC1jbGllbnQgLmNjLWN4MzFsIC5jYy10MjUwcS0td2Fybi1yZXBseXtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXllbGxvdy11bHRyYS1saWdodCksIC45NCkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWN4MzFsIC5jYy10MjUwcS0tbmV3LW1lc3NhZ2VzIC5jYy03OHBrOXstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMTQlMjIlMjBoZWlnaHQlM0QlMjIxNCUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE0JTIwMTQlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMm02LjMxMiUyMDEyLjcyLTIuODgtMi44OEEuOTU4Ljk1OCUyMDAlMjAwJTIwMSUyMDQuMTElMjA4LjJoMS42OHYtNmExLjIlMjAxLjIlMjAwJTIwMCUyMDElMjAyLjQlMjAwdjZoMS42OGEuOTYxLjk2MSUyMDAlMjAwJTIwMSUyMC42OCUyMDEuNjRsLTIuODglMjAyLjg4YS45Ni45NiUyMDAlMjAwJTIwMS0xLjM1OCUyMDAlMjIlMkYlM0UlM0MlMkZzdmclM0UpOy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1jeDMxbCAuY2MtdDI1MHEtLXdhcm4tcHJvbXB0IC5jYy03OHBrOXstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMTQlMjIlMjBoZWlnaHQlM0QlMjIxNCUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE0JTIwMTQlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk05Ljg3Mi45MiUyMDguNDQ3JTIwMi4zNDhsMy4yMDQlMjAzLjIwNCUyMDEuNDI1LTEuNDI1Yy41Ni0uNTYuNTYtMS40NjclMjAwLTIuMDI3TDExLjg5OS45MmExLjQzJTIwMS40MyUyMDAlMjAwJTIwMC0yLjAyNyUyMDBNNy44MTUlMjAyLjg3M2wtLjIzNS4wNzFMMy44OTIlMjA0LjA1QTEuNjMlMjAxLjYzJTIwMCUyMDAlMjAwJTIwMi44MSUyMDUuMDk5bC0yLjI2NyUyMDYuNzZhLjgyLjgyJTIwMCUyMDAlMjAwJTIwLjE4Ni44M0w0LjY2JTIwOC43NmExLjIyOCUyMDEuMjI4JTIwMCUyMDElMjAxJTIwLjU4LjU3OGwtMy45MzElMjAzLjkzYy4yMi4yMTMuNTQuMjg3LjgyOS4xODdMOC45JTIwMTEuMTlhMS42NCUyMDEuNjQlMjAwJTIwMCUyMDAlMjAxLjA1LTEuMDgybDEuMTA1LTMuNjg4LjA3MS0uMjM1eiUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWN4MzFsIC5jYy10MjUwcS0td2Fybi1yZXBseSAuY2MtNzhwazl7LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjE0JTIyJTIwaGVpZ2h0JTNEJTIyMTQlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNCUyMDE0JTIyJTNFJTNDY2xpcFBhdGglMjBpZCUzRCUyMmElMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk03LjQ2NSUyMDExLjI1YzAlMjAuNjg3LS41NjMlMjAxLjI1LTEuMjUlMjAxLjI1cy0xLjI1LS41NjMtMS4yNS0xLjI1ek02LjIxNSUyMDBjLjUxNyUyMDAlMjAuOTM3LjQyLjkzNy45Mzh2LjQzNEEzLjc1JTIwMy43NSUyMDAlMjAwJTIwMSUyMDkuOTY1JTIwNXYzLjc1bC45Ni43MjNhLjYyNS42MjUlMjAwJTIwMCUyMDEtLjMzNSUyMDEuMTUySDEuODRhLjYyNS42MjUlMjAwJTIwMCUyMDEtLjMzNi0xLjE1MmwuOTYtLjcyM1Y1YTMuNzUlMjAzLjc1JTIwMCUyMDAlMjAxJTIwMi44MTMtMy42MjhWLjkzOGMwLS41MTguNDItLjkzOC45MzgtLjkzOE0yLjM2Mi4zMzNhLjYzLjYzJTIwMCUyMDAlMjAxJTIwLjQ1LjI0NGMuMTkxLjI0OC4xNzMuNi0uMDUzLjgxN2E0Ljk4JTIwNC45OCUyMDAlMjAwJTIwMC0xLjUxNCUyMDMuMDU0QS42Mi42MiUyMDAlMjAwJTIwMSUyMC42MyUyMDVhLjYzLjYzJTIwMCUyMDAlMjAxLS42MjUtLjdBNi4yMyUyMDYuMjMlMjAwJTIwMCUyMDElMjAxLjg4MS41MDVhLjYyLjYyJTIwMCUyMDAlMjAxJTIwLjQ4MS0uMTdtNy43MDYlMjAwYS42Mi42MiUyMDAlMjAwJTIwMSUyMC40OC4xNzIlMjA2LjIyJTIwNi4yMiUyMDAlMjAwJTIwMSUyMDEuODc4JTIwMy43OUEuNjMzLjYzMyUyMDAlMjAwJTIwMSUyMDExLjglMjA1YS42Mi42MiUyMDAlMjAwJTIwMS0uNjE3LS41NDhBNC45OCUyMDQuOTglMjAwJTIwMCUyMDAlMjA5LjY3JTIwMS4zOTRhLjYxMy42MTMlMjAwJTIwMCUyMDEtLjA1NC0uODE3LjYzLjYzJTIwMCUyMDAlMjAxJTIwLjQ1LS4yNDQlMjIlMkYlM0UlM0MlMkZjbGlwUGF0aCUzRSUzQ2clMjBjbGlwLXBhdGglM0QlMjJ1cmwlMjglMjNhJTI5JTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4LjglMjAuNzUlMjklMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0wJTIwMGgxMi40M3YxMi41SDB6JTIyJTJGJTNFJTNDJTJGZyUzRSUzQyUyRnN2ZyUzRSk7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWN4MzFsIC5jYy10MjUwcS0tZW1haWwtaW52YWxpZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXJlZC1saWdodCksIC45NCkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF0Ynpse3BhZGRpbmctdG9wOjVweCFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbToxOHB4IWltcG9ydGFudDtwYWRkaW5nLWlubGluZS1lbmQ6Y2FsYygxMHB4ICsgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1yaWdodCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xdGJ6bCAuY2MtMWUzdzZ7ZmxleC13cmFwOndyYXAhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnQ7Z2FwOjhweCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xdGJ6bCAuY2MtMTNnMm57Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSkhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgcmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1saWdodCkpIWltcG9ydGFudDtib3gtc2hhZG93OjAgMnB4IDJweCAwIHJnYih2YXIoLS1jcmlzcC1jb2xvci1zaGFkb3ctbm9ybWFsKSwgLjAzKSFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czoxMnB4IWltcG9ydGFudDtwYWRkaW5nOjEwcHggMTJweCFpbXBvcnRhbnQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4xcyBlYXNlLWluLW91dCx0cmFuc2Zvcm0gLjFzIGVhc2UtaW4tb3V0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xdGJ6bCAuY2MtMTNnMm46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LWxpZ2h0KSwgLjE1KSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXRiemwgLmNjLTEzZzJuOmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxcHgpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xdGJ6bCAuY2MtNHNwNGN7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtYmxhY2stbm9ybWFsKSkhaW1wb3J0YW50O2N1cnNvcjpwb2ludGVyIWltcG9ydGFudDtmb250LXNpemU6MTIuMnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xdGJ6bC0taGFzLWFsZXJ0e21hcmdpbi1ib3R0b206NTlweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWpteGl7ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudDtmbGV4OjEhaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xdnpxcyAuY2MtMWF6MzIgLmNjLXJnZ2lzLC5jcmlzcC1jbGllbnQgLmNjLTF2enFzIC5jYy0xYXozMiAuY2MtaWN0aHAsLmNyaXNwLWNsaWVudCAuY2MtMXZ6cXMgLmNjLTFhejMyIC5jYy1uMzV4eXtiYWNrZ3JvdW5kOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbCkpIWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7aW5zZXQtaW5saW5lOjAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF2enFzIC5jYy0xYXozMiAuY2MtMWl1bGsgLmNjLXJnZ2lzLC5jcmlzcC1jbGllbnQgLmNjLTF2enFzIC5jYy0xYXozMiAuY2MtMWl1bGsgLmNjLWljdGhwLC5jcmlzcC1jbGllbnQgLmNjLTF2enFzIC5jYy0xYXozMiAuY2MtMWl1bGsgLmNjLW4zNXh5e3BhZGRpbmctYmxvY2s6MTBweCBjYWxjKDEwcHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LWJvdHRvbSkpIWltcG9ydGFudDtwYWRkaW5nLWlubGluZTpjYWxjKDEwcHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LWxlZnQpKSBjYWxjKDEwcHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LXJpZ2h0KSkhaW1wb3J0YW50O3otaW5kZXg6MSFpbXBvcnRhbnQ7bWFyZ2luOjAhaW1wb3J0YW50O3RvcDowIWltcG9ydGFudDtib3R0b206MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXZ6cXMgLmNjLTFhejMyIC5jYy0xaXVsayAuY2MtcmdnaXN7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF2enFzIC5jYy0xYXozMiAuY2MtMWl1bGsgLmNjLXJnZ2lzIC5jYy0xbzVwZ3toZWlnaHQ6MjJweDtib3JkZXItd2lkdGg6MnB4IWltcG9ydGFudDt3aWR0aDoyMnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xdnpxcyAuY2MtMWF6MzIgLmNjLTFpdWxrIC5jYy1pY3RocHtsaXN0LXN0eWxlLXR5cGU6bm9uZSFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuIGF1dG8haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF2enFzIC5jYy0xYXozMiAuY2MtMWl1bGsgLmNjLW4zNXh5e2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xdnpxcyAuY2MtMWF6MzIgLmNjLTFpdWxrIC5jYy1uMzV4eSAuY2MtYzh3Ynp7bGluZS1oZWlnaHQ6MTZweDtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC1ibGFjay1ub3JtYWwpKSFpbXBvcnRhbnQ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O2ZvbnQtc2l6ZToxMy4ycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF2enFzIC5jYy0xd2drMSAuY2MtNXZiODYsLmNyaXNwLWNsaWVudCAuY2MtMXZ6cXMgLmNjLTF3Z2sxIC5jYy0xbmlkcXtpbnNldC1pbmxpbmU6MCFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O3RvcDowIWltcG9ydGFudDtib3R0b206MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXZ6cXMgLmNjLTF3Z2sxIC5jYy01dmI4NiAuY2MtMTNydmh7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDowIDAhaW1wb3J0YW50O3dpZHRoOjEwMCUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF2enFzIC5jYy0xd2drMSAuY2MtMW5pZHF7YmFja2dyb3VuZDpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWwpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXZ6cXMgLmNjLTF3Z2sxIC5jYy0xbmlkcSAuY2MtMW9ibXp7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O3RvcDo1MCUhaW1wb3J0YW50O2xlZnQ6NTAlIWltcG9ydGFudDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF2enFzIC5jYy0xd2drMSAuY2MtMW5pZHEgLmNjLTFvYm16IC5jYy0yNHk1c3toZWlnaHQ6MjJweDtib3JkZXItd2lkdGg6MnB4IWltcG9ydGFudDt3aWR0aDoyMnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1lODI1cSwuY3Jpc3AtY2xpZW50IC5jYy1lODI1cSAuY2MtbjRsZm4sLmNyaXNwLWNsaWVudCAuY2MtZTgyNXEgLmNjLWlocGJle2ZsZXg6MSFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWU4MjVxIC5jYy1uNGxmbntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWU4MjVxIC5jYy1uNGxmbiAuY2MtZjIzZ2h7aGVpZ2h0OjIycHg7Ym9yZGVyLXdpZHRoOjJweCFpbXBvcnRhbnQ7d2lkdGg6MjJweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDotNDRweCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtZTgyNXEtLWxvYWRpbmcgLmNjLWlocGJle2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWdxZTd7YmFja2dyb3VuZDpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWwpKSFpbXBvcnRhbnQ7ei1pbmRleDoxIWltcG9ydGFudDtmbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50O2ZsZXg6MSFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtwb3NpdGlvbjpyZWxhdGl2ZSFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZ3FlNyAuY2MtMTM0aTEsLmNyaXNwLWNsaWVudCAuY2MtMWdxZTcgLmNjLTEyemljLC5jcmlzcC1jbGllbnQgLmNjLTFncWU3IC5jYy0xZTl6dywuY3Jpc3AtY2xpZW50IC5jYy0xZ3FlNyAuY2Mtc3htd3p7ZmxleDoxIWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTI5a3N7aW5zZXQtYmxvY2s6MCFpbXBvcnRhbnQ7aW5zZXQtaW5saW5lOmNhbGMoMHB4ICsgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1sZWZ0KSkgY2FsYygwcHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LXJpZ2h0KSkhaW1wb3J0YW50O3otaW5kZXg6MjAhaW1wb3J0YW50O2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTEyOWtzIC5jYy1zNGl0cnt6LWluZGV4OjIhaW1wb3J0YW50O2JhY2tncm91bmQ6MCAwIWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7aW5zZXQ6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTI5a3MgLmNjLWF3NnVje2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSwgLjkyKSFpbXBvcnRhbnQ7Ym9yZGVyLXN0eWxlOmRhc2hlZCFpbXBvcnRhbnQ7Ym9yZGVyLXdpZHRoOjJweCFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS01MDApKSFpbXBvcnRhbnQ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O2luc2V0LWlubGluZToxMHB4IWltcG9ydGFudDt6LWluZGV4OjEhaW1wb3J0YW50Oy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTJweCkhaW1wb3J0YW50O2JhY2tkcm9wLWZpbHRlcjpibHVyKDEycHgpIWltcG9ydGFudDt0b3A6N3B4IWltcG9ydGFudDtib3R0b206Y2FsYyg5MnB4ICsgbWF4KDEwcHgsIHZhcigtLWNyaXNwLWVudi1kZXZpY2UtaW5zZXQtYm90dG9tKSkpIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjEycHghaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xMjlrcyAuY2MtYXc2dWMgLmNjLTIyZHVqe3RvcDo1MCUhaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDtpbnNldC1pbmxpbmU6MCFpbXBvcnRhbnQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTEyOWtzIC5jYy1hdzZ1YyAuY2MtMjJkdWogLmNjLWFwcDB6ey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIzNCUyMiUyMGhlaWdodCUzRCUyMjQ2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMzUlMjA0NiUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTYuMy42QTUuNjA1JTIwNS42MDUlMjAwJTIwMCUyMDAlMjAuNyUyMDYuMnYyMWgxNS45MzRsLTIuNzEzLTIuNzEyYy0uODIyLS44MjMtLjgyMi0yLjE1MyUyMDAtMi45NjdzMi4xNTMtLjgyMiUyMDIuOTY2JTIwMGw2LjMlMjA2LjNhMi4wOSUyMDIuMDklMjAwJTIwMCUyMDElMjAwJTIwMi45NjdsLTYuMyUyMDYuM2MtLjgyMi44MjItMi4xNTIuODIyLTIuOTY2JTIwMHMtLjgyMi0yLjE1MyUyMDAtMi45NjdsMi43MTMtMi43MTJILjd2OC40YzAlMjAzLjA4OCUyMDIuNTExJTIwNS42JTIwNS42JTIwNS42aDIyLjRjMy4wODklMjAwJTIwNS42LTIuNTEyJTIwNS42LTUuNlYxNS41MjhhNS42JTIwNS42JTIwMCUyMDAlMjAwLTEuNjM2LTMuOTY0bC05LjMyOC05LjMyOEE1LjU4JTIwNS41OCUyMDAlMjAwJTIwMCUyMDE5LjM4MS42ek0yOS4xODElMjAxNkgyMWMtMS4xNjQlMjAwLTIuMS0uOTM2LTIuMS0yLjFWNS43MTl6JTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTtoZWlnaHQ6NDZweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktbGlnaHQpKSFpbXBvcnRhbnQ7d2lkdGg6NDZweCFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDstd2Via2l0LW1hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDttYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7bWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50Oy13ZWJraXQtbWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDttYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTEyOWtzIC5jYy1hdzZ1YyAuY2MtMjJkdWogLmNjLXY1c2pne2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDtsZXR0ZXItc3BhY2luZzouMjVweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDoxMnB4IWltcG9ydGFudDtmb250LXNpemU6MTQuNHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xMjlrcy0tZW5hYmxlZHtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xMjlrcy0taGFzLWJyYW5kaW5nIC5jYy1hdzZ1Y3tib3R0b206Y2FsYyg5MnB4ICsgbWF4KDEwcHgsIHZhcigtLWNyaXNwLWVudi1kZXZpY2UtaW5zZXQtYm90dG9tKSkgKyAxNnB4ICsgOHB4KSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtdms1NDB7aGVpZ2h0OjE2cHg7dGV4dC1hbGlnbjplbmQhaW1wb3J0YW50O2ZsZXg6MSFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnQ7d2lkdGg6MTAwJSFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy12azU0MCAuY2MtMWprdTN7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1ub3JtYWwpKSFpbXBvcnRhbnQ7b3BhY2l0eTouNzUhaW1wb3J0YW50O3RyYW5zaXRpb246b3BhY2l0eSA1MG1zIGxpbmVhciFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXZrNTQwIC5jYy0xamt1Mzpob3ZlcntvcGFjaXR5OjEhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXZrNTQwIC5jYy0xamt1MyAuY2MtMWY4cnUsLmNyaXNwLWNsaWVudCAuY2Mtdms1NDAgLmNjLTFqa3UzIC5jYy04cHE3dXtmbG9hdDpsZWZ0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy12azU0MCAuY2MtMWprdTMgLmNjLTFmOHJ1e2xpbmUtaGVpZ2h0OjE2cHg7bWFyZ2luLXJpZ2h0OjZweCFpbXBvcnRhbnQ7Zm9udC1zaXplOjExLjZweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtdms1NDAgLmNjLTFqa3UzIC5jYy0xZjhydS0tbmFtZXtjb2xvcjppbmhlcml0IWltcG9ydGFudDt0ZXh0LXRyYW5zZm9ybTpsb3dlcmNhc2UhaW1wb3J0YW50O2xldHRlci1zcGFjaW5nOi4ycHghaW1wb3J0YW50O21hcmdpbi1yaWdodDowIWltcG9ydGFudDtmb250LXNpemU6MTEuNnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy12azU0MCAuY2MtMWprdTMgLmNjLThwcTd1ey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxNSUyMiUyMGhlaWdodCUzRCUyMjEzJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJtMTAuODIlMjA5LjY0JTIwMy43Ni0uNC0uOTQtOC44NkwuNzQlMjAxLjc0bC45MyUyMDguODYlMjA0LjI0LS40NSUyMDIuNzclMjAyLjcyeiUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7aGVpZ2h0OjE1cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LW5vcm1hbCkpIWltcG9ydGFudDt3aWR0aDoxNXB4IWltcG9ydGFudDstd2Via2l0LW1hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDttYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7bWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50Oy13ZWJraXQtbWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDttYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXJnaW4tdG9wOjFweCFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OjJweCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXZrNTQwLS1zdGF0dXMtYWdlbnQgLmNjLTFqa3Uze2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy12azU0MC0tc3RhdHVzLWFnZW50IC5jYy0xamt1MyAuY2MtOHBxN3V7LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjE2JTIyJTIwaGVpZ2h0JTNEJTIyMTUlMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE2JTIwMTUlMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzAwMCUyMiUyMGQlM0QlMjJNOC4zNjIlMjAwYzEuMDY0JTIwMCUyMDEuOTk4LjU1NCUyMDIuNTMxJTIwMS4zOWEzJTIwMyUyMDAlMjAwJTIwMSUyMDIuNzcyLjgwNyUyMDMlMjAzJTIwMCUyMDAlMjAxJTIwLjgwOCUyMDIuNzcyQTMlMjAzJTIwMCUyMDAlMjAxJTIwMTUuODYyJTIwNy41YTMlMjAzJTIwMCUyMDAlMjAxLTEuMzklMjAyLjUzMSUyMDMlMjAzJTIwMCUyMDAlMjAxLS44MDclMjAyLjc3MiUyMDMlMjAzJTIwMCUyMDAlMjAxLTIuNzcyLjgwOEEzJTIwMyUyMDAlMjAwJTIwMSUyMDguMzYyJTIwMTVhMyUyMDMlMjAwJTIwMCUyMDEtMi41MzEtMS4zOSUyMDMlMjAzJTIwMCUyMDAlMjAxLTMuNTgtMy41OCUyMDIuOTk4JTIwMi45OTglMjAwJTIwMCUyMDElMjAwLTUuMDYyJTIwMyUyMDMlMjAwJTIwMCUyMDElMjAuODA4LTIuNzcxJTIwMyUyMDMlMjAwJTIwMCUyMDElMjAyLjc3Mi0uODA4QTMlMjAzJTIwMCUyMDAlMjAxJTIwOC4zNiUyMDBNNy4yMzclMjAzLjc1SDQuNjEydjIuNjI1TDMuMTEyJTIwNy41bDEuNSUyMDEuMTI1djIuNjI1aDIuNjI1bDEuMTI1JTIwMS41JTIwMS4xMjUtMS41aDIuNjI1VjguNjI1bDEuNS0xLjEyNS0xLjUtMS4xMjVWMy43NUg5LjQ4N2wtMS4xMjUtMS41eiUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwpKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9nbWZse2hlaWdodDo1MnB4O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSkhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgcmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1saWdodCkpIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjhweCFpbXBvcnRhbnQ7ZmxleC1zaHJpbms6MCFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50O3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1vZ21mbCAuY2MtdjIwdHZ7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOmNvdmVyIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1vZ21mbCAuY2MtdjIwdHY6aG92ZXIgLmNjLXNhNnFze29wYWNpdHk6LjEhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9nbWZsIC5jYy1zYTZxc3tiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDtvcGFjaXR5OjAhaW1wb3J0YW50O3RyYW5zaXRpb246b3BhY2l0eSAuMTVzIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1vZ21mbCAuY2Mtc2E2cXMsLmNyaXNwLWNsaWVudCAuY2Mtb2dtZmwgLmNjLXYyMHR2e2JvcmRlci1yYWRpdXM6N3B4IWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7aW5zZXQ6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtb2dtZmwgLmNjLW54eHRke2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnQ7bWFyZ2luLWlubGluZToxMHB4IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtb2dtZmwgLmNjLW54eHRkIC5jYy0xc2RvM3toZWlnaHQ6MjhweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS01MDApKSFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czo2cHghaW1wb3J0YW50O2ZsZXgtc2hyaW5rOjAhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnQ7d2lkdGg6MjhweCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtwb3NpdGlvbjpyZWxhdGl2ZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtb2dtZmwgLmNjLW54eHRkIC5jYy0xc2RvMzphZnRlcnstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMTYlMjIlMjBoZWlnaHQlM0QlMjIxNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE2JTIwMTYlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0xMC41NDYlMjA0LjM2M3Y3LjU2M2MwJTIwMS4yMTUtLjgyMiUyMDIuMzItMi4wMTElMjAyLjU2NEEyLjU1JTIwMi41NSUyMDAlMjAwJTIwMSUyMDUuNDU1JTIwMTJWMi45OWMwLS43MjMuNDkzLTEuMzk3JTIwMS4yMDgtMS41MTUuOTEtLjE1MSUyMDEuNy41NSUyMDEuNyUyMDEuNDM0djcuNjM2YS4zNjQuMzY0JTIwMCUyMDAlMjAxLS43MjclMjAwVjQuMzYzYS43MjguNzI4JTIwMCUyMDAlMjAwLTEuNDU0JTIwMHY2LjA3NWMwJTIwLjk1Mi42ODMlMjAxLjgyJTIwMS42MjklMjAxLjkxNmExLjgyJTIwMS44MiUyMDAlMjAwJTIwMCUyMDIuMDA3LTEuODA5VjMuMDM4QzkuODE4JTIwMS41MiUyMDguNzExLjE2MSUyMDcuMi4wMTRBMi45MSUyMDIuOTElMjAwJTIwMCUyMDAlMjA0JTIwMi45MXY4LjkxM2MwJTIwMi4wODglMjAxLjUyMiUyMDMuOTU1JTIwMy42JTIwNC4xNThBNC4wMDUlMjA0LjAwNSUyMDAlMjAwJTIwMCUyMDEyJTIwMTJWNC4zNjNhLjcyOC43MjglMjAwJTIwMCUyMDAtMS40NTQlMjAwJTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTtoZWlnaHQ6MTRweDtjb250ZW50OiIiIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbC1maXhlZCkpIWltcG9ydGFudDt3aWR0aDoxNHB4IWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDstd2Via2l0LW1hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDttYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7bWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50Oy13ZWJraXQtbWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDttYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9nbWZsIC5jYy1ueHh0ZCAuY2MtcDF5dTV7ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudDttYXJnaW4taW5saW5lLXN0YXJ0OjhweCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9nbWZsIC5jYy1ueHh0ZCAuY2MtcDF5dTUgLmNjLXZ6aTFme2xpbmUtaGVpZ2h0OjE0cHg7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtYmxhY2stbm9ybWFsKSkhaW1wb3J0YW50O3doaXRlLXNwYWNlOm5vd3JhcCFpbXBvcnRhbnQ7dGV4dC1vdmVyZmxvdzplbGxpcHNpcyFpbXBvcnRhbnQ7Zm9udC1zaXplOjEwLjRweCFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1vZ21mbCAuY2Mtbnh4dGQgLmNjLXAxeXU1IC5jYy1qanhyM3tsaW5lLWhlaWdodDoxMnB4O2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWdyZXktbm9ybWFsKSkhaW1wb3J0YW50O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZSFpbXBvcnRhbnQ7bWFyZ2luLXRvcDoycHghaW1wb3J0YW50O2ZvbnQtc2l6ZTo5LjZweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtb2dtZmwgLmNjLTFvNG41LC5jcmlzcC1jbGllbnQgLmNjLW9nbWZsIC5jYy0xazl3cCwuY3Jpc3AtY2xpZW50IC5jYy1vZ21mbCAuY2MtMTl4aTl7Ym9yZGVyLXJhZGl1czoxMDAlIWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9nbWZsIC5jYy0xbzRuNXtoZWlnaHQ6MTRweDt0b3A6LTVweCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWwpKSFpbXBvcnRhbnQ7d2lkdGg6MTRweCFpbXBvcnRhbnQ7Ym94LXNoYWRvdzowIDAgMCAycHggcmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSkhaW1wb3J0YW50O2JvcmRlci13aWR0aDoycHghaW1wb3J0YW50O2luc2V0LWlubGluZS1lbmQ6LTVweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtb2dtZmwgLmNjLTFrOXdwLC5jcmlzcC1jbGllbnQgLmNjLW9nbWZsIC5jYy0xOXhpOXtoZWlnaHQ6MThweDt0b3A6LTdweCFpbXBvcnRhbnQ7Ym9yZGVyOjJweCBzb2xpZCByZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1kYXJrKSkhaW1wb3J0YW50O2N1cnNvcjpwb2ludGVyIWltcG9ydGFudDt3aWR0aDoxOHB4IWltcG9ydGFudDt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjFzIWltcG9ydGFudDtpbnNldC1pbmxpbmUtZW5kOi03cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9nbWZsIC5jYy0xazl3cDphZnRlciwuY3Jpc3AtY2xpZW50IC5jYy1vZ21mbCAuY2MtMTl4aTk6YWZ0ZXJ7aGVpZ2h0OjhweDtjb250ZW50OiIiIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLWRhcmspKSFpbXBvcnRhbnQ7cG9pbnRlci1ldmVudHM6bm9uZSFpbXBvcnRhbnQ7d2lkdGg6OHB4IWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtb2dtZmwgLmNjLTFrOXdwe2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtcmVkLW5vcm1hbCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1vZ21mbCAuY2MtMWs5d3A6YWZ0ZXJ7LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjklMjIlMjBoZWlnaHQlM0QlMjI4JTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjJub25lJTIyJTIwc3Ryb2tlJTNEJTIyJTIzMDAwJTIyJTIwc3Ryb2tlLWxpbmVjYXAlM0QlMjJyb3VuZCUyMiUyMHN0cm9rZS1saW5lam9pbiUzRCUyMnJvdW5kJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMS40JTIyJTIwZCUzRCUyMk00LjI1JTIwNFYxbS0uMDAxJTIwNS43NWEuMjUuMjUlMjAwJTIwMSUyMDAlMjAuMDAyLjUuMjUuMjUlMjAwJTIwMCUyMDAtLjAwMi0uNSUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7aGVpZ2h0OjlweDt3aWR0aDo5cHghaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7bWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50O21hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7bWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1vZ21mbCAuY2MtMTl4aTl7dmlzaWJpbGl0eTpoaWRkZW4haW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1kYXJrKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9nbWZsIC5jYy0xOXhpOTphZnRlcnstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyOSUyMiUyMGhlaWdodCUzRCUyMjglMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBzdHJva2UlM0QlMjIlMjMwMDAlMjIlMjBzdHJva2UtbGluZWNhcCUzRCUyMnJvdW5kJTIyJTIwc3Ryb2tlLWxpbmVqb2luJTNEJTIycm91bmQlMjIlMjBzdHJva2Utd2lkdGglM0QlMjIxLjQlMjIlMjBkJTNEJTIyTTcuNS43JTIwMSUyMDcuM00xJTIwLjdsNi41JTIwNi42JTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50Oy13ZWJraXQtbWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O21hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDstd2Via2l0LW1hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDttYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50O21hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtb2dtZmwgLmNjLTE5eGk5OmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS11bHRyYS1kYXJrKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9nbWZsOmhvdmVyOm5vdCguY2Mtb2dtZmwtLXVwbG9hZGluZykgLmNjLTE5eGk5e3Zpc2liaWxpdHk6dmlzaWJsZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtb2dtZmwtLWltYWdle3dpZHRoOjUycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9nbWZsLS1maWxle3dpZHRoOjE0MHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1vZ21mbC0tdXBsb2FkaW5ne29wYWNpdHk6LjchaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9nbWZsLS11cGxvYWRpbmcgLmNjLTE5eGk5e3Zpc2liaWxpdHk6aGlkZGVuIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1vZ21mbC0tZXJyb3J7Ym9yZGVyLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXJlZC1ub3JtYWwpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtb2dtZmwtLWVycm9yIC5jYy0xazl3cHtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9nbWZsLS1lcnJvciAuY2MtMTl4aTl7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1yZWQtbm9ybWFsKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9nbWZsLS1lcnJvciAuY2MtMTl4aTk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1yZWQtZGFyaykpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1vZ21mbC0tZXJyb3I6aG92ZXIgLmNjLTFrOXdwe2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2Mtb2dtZmwtLWVycm9yOmhvdmVyIC5jYy0xOXhpOXt2aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW9nbWZsOm5vdCguY2Mtb2dtZmwtLXVwbG9hZGluZyk6bm90KC5jYy1vZ21mbC0tZXJyb3IpIC5jYy12MjB0diAuY2Mtc2E2cXN7Y3Vyc29yOnpvb20taW4haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXh2YThre2ZsZXgtd3JhcDp3cmFwIWltcG9ydGFudDtnYXA6MTJweCFpbXBvcnRhbnQ7cGFkZGluZy1ibG9jazoxMnB4IDhweCFpbXBvcnRhbnQ7cGFkZGluZy1pbmxpbmU6MCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xdXp3Y3ttaW4taGVpZ2h0OjQwcHg7Ym94LXNpemluZzpib3JkZXItYm94IWltcG9ydGFudDt6LWluZGV4OjYhaW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOnJvdyFpbXBvcnRhbnQ7d2lkdGg6MTAwJSFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtpbnNldC1pbmxpbmU6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMXV6d2MgLmNjLXNpMWZte2ZsZXg6MSFpbXBvcnRhbnQ7cGFkZGluZzoxNHB4IDAgNHB4IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTF1endjIC5jYy1zaTFmbSBncmFtbWFybHktZ2hvc3R7ZGlzcGxheTpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xdXp3YyAuY2Mtc2kxZm0gLmNjLTdqdHd0e2hlaWdodDoxNXB4O21pbi1oZWlnaHQ6MTVweDttYXgtaGVpZ2h0OjI2MHB4O2xpbmUtaGVpZ2h0OjE4cHg7bGV0dGVyLXNwYWNpbmc6LjE1cHghaW1wb3J0YW50O3Jlc2l6ZTpub25lIWltcG9ydGFudDtib3JkZXItYm90dG9tOjAhaW1wb3J0YW50O3dpZHRoOjEwMCUhaW1wb3J0YW50O21hcmdpbjowIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O2ZvbnQtc2l6ZToxMy42cHghaW1wb3J0YW50O292ZXJmbG93LXk6YXV0byFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MteDd1YW17anVzdGlmeS1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MteDd1YW0gLmNjLTFxcWdje2hlaWdodDozNnB4O3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjEzcHghaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnQ7d2lkdGg6MzZweCFpbXBvcnRhbnQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDUwbXMgbGluZWFyIWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXg3dWFtIC5jYy0xcXFnYyAuY2MtMWxtczN7LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjE2JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNiUyMDE2JTIyJTNFJTNDY2xpcFBhdGglMjBpZCUzRCUyMmElMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0xNC44NC4wNTRhLjg2NC44NjQlMjAwJTIwMCUyMDElMjAxLjEwNyUyMDEuMTA3bC01LjE4OSUyMDE0LjI3YS44NjQuODY0JTIwMCUyMDAlMjAxLTEuNDIzLjMxNkw2LjE1JTIwMTIuNTZhLjg2NC44NjQlMjAwJTIwMCUyMDEtLjA1Ni0xLjE2bDcuMDMtOC41MjJMNC42JTIwOS45MDhhLjg2NC44NjQlMjAwJTIwMCUyMDEtMS4xNi0uMDU2TC4yNTIlMjA2LjY2NkEuODY0Ljg2NCUyMDAlMjAwJTIwMSUyMC41NyUyMDUuMjQzeiUyMiUyRiUzRSUzQyUyRmNsaXBQYXRoJTNFJTNDZyUyMGNsaXAtcGF0aCUzRCUyMnVybCUyOCUyM2ElMjklMjIlMjB0cmFuc2Zvcm0lM0QlMjJyb3RhdGUlMjg0NSUyMDYuNTE2JTIwNC4zNDElMjklMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0wJTIwMGgxNnYxNkgweiUyMiUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UpO2hlaWdodDoxN3B4O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLTIwMCkpIWltcG9ydGFudDtvcGFjaXR5Oi40IWltcG9ydGFudDt3aWR0aDoxN3B4IWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDUwbXMgbGluZWFyLG9wYWNpdHkgNTBtcyBsaW5lYXIhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDstd2Via2l0LW1hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDttYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7bWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50Oy13ZWJraXQtbWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDttYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXg3dWFtIC5jYy0xcXFnYy0tZW5hYmxlZHtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MteDd1YW0gLmNjLTFxcWdjLS1lbmFibGVkIC5jYy0xbG1zM3tjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtcmV2ZXJzZSkpIWltcG9ydGFudDtvcGFjaXR5OnVuc2V0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy14N3VhbS0tbG9ja2VkIC5jYy0xcXFnY3twb2ludGVyLWV2ZW50czpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy14N3VhbS0tbG9ja2VkIC5jYy0xcXFnYyAuY2MtMWxtczN7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LWxpZ2h0KSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnRbZGlyPXJ0bF0gLmNjLXg3dWFtIC5jYy0xcXFnYyAuY2MtMWxtczN7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy11MnYydHtoZWlnaHQ6MzZweDt6LWluZGV4OjchaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudDthbGlnbi1pdGVtczpmbGV4LWVuZCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtpbnNldC1pbmxpbmU6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdTJ2MnQgLmNjLWdyamlte2ZsZXg6MCBhdXRvIWltcG9ydGFudDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O2dhcDoxMHB4IWltcG9ydGFudDttYXJnaW4tYm90dG9tOjVweCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy11MnYydCAuY2MtZ3JqaW0tLWhhcy1wb3BvdmVyIC5jYy1neGQ3dC5jYy12c3JyNyAuY2MtMWJ3c3Z7ZGlzcGxheTpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy11MnYydCAuY2MtZ3JqaW0gLmNjLWd4ZDd0e2Zsb2F0OmlubGluZS1zdGFydCFpbXBvcnRhbnQ7b3V0bGluZS1vZmZzZXQ6M3B4IWltcG9ydGFudDtib3JkZXItcmFkaXVzOjJweCFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXUydjJ0IC5jYy1ncmppbSAuY2MtZ3hkN3RbZGF0YS1zdGF0ZT1ub25lXSAuY2MtMXJoaXN7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LW5vcm1hbCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy11MnYydCAuY2MtZ3JqaW0gLmNjLWd4ZDd0W2RhdGEtc3RhdGU9bm9uZV06aG92ZXIgLmNjLTFyaGlze2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1kYXJrKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXUydjJ0IC5jYy1ncmppbSAuY2MtZ3hkN3RbZGF0YS1zdGF0ZT1ub25lXTphY3RpdmUgLmNjLTFyaGlze2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsIHJnYmEodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LWRhcmspLCAxKSA5MiUsIHJnYmEodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwpLCAxKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXUydjJ0IC5jYy1ncmppbSAuY2MtZ3hkN3QsLmNyaXNwLWNsaWVudCAuY2MtdTJ2MnQgLmNjLWdyamltIC5jYy1neGQ3dCAuY2MtMXJoaXN7aGVpZ2h0OjE2cHg7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50O3dpZHRoOjE2cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXUydjJ0IC5jYy1ncmppbSAuY2MtZ3hkN3QgLmNjLTFyaGlze3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciA1MG1zIGxpbmVhciFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50Oy13ZWJraXQtbWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O21hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDstd2Via2l0LW1hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDttYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50O21hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdTJ2MnQgLmNjLWdyamltIC5jYy1neGQ3dCAuY2MtMTNyNHh7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXUydjJ0IC5jYy1ncmppbSAuY2MtZ3hkN3QgLmNjLTEzcjR4IC5jYy0xeGY3cntoZWlnaHQ6MTBweDtib3JkZXItd2lkdGg6M3B4IWltcG9ydGFudDtmbGV4Om5vbmUhaW1wb3J0YW50O3dpZHRoOjEwcHghaW1wb3J0YW50O21hcmdpbi1pbmxpbmUtZW5kOjVweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdTJ2MnQgLmNjLWdyamltIC5jYy1neGQ3dCAuY2MtMTNyNHggLmNjLTE3eDNze2xpbmUtaGVpZ2h0OjE1cHg7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLTUwMCkpIWltcG9ydGFudDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzIWltcG9ydGFudDt3aGl0ZS1zcGFjZTpub3dyYXAhaW1wb3J0YW50O21heC13aWR0aDo4MHB4IWltcG9ydGFudDtmb250LXNpemU6MTEuNnB4IWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXUydjJ0IC5jYy1ncmppbSAuY2MtZ3hkN3RbZGF0YS10eXBlPXNtaWxleV0gLmNjLTFyaGlzey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxNiUyMiUyMGhlaWdodCUzRCUyMjE2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTYlMjAxNiUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTcuOTkyJTIwMEMzLjU3NiUyMDAlMjAwJTIwMy41ODQlMjAwJTIwOHMzLjU3NiUyMDglMjA3Ljk5MiUyMDhDMTIuNDE2JTIwMTYlMjAxNiUyMDEyLjQxNiUyMDE2JTIwOHMtMy41ODQtOC04LjAwOC04TTglMjAxNC40QTYuNCUyMDYuNCUyMDAlMjAwJTIwMSUyMDEuNiUyMDhjMC0zLjUzNiUyMDIuODY0LTYuNCUyMDYuNC02LjRzNi40JTIwMi44NjQlMjA2LjQlMjA2LjQtMi44NjQlMjA2LjQtNi40JTIwNi40bTIuOC03LjJjLjY2NCUyMDAlMjAxLjItLjUzNiUyMDEuMi0xLjJzLS41MzYtMS4yLTEuMi0xLjItMS4yLjUzNi0xLjIlMjAxLjIuNTM2JTIwMS4yJTIwMS4yJTIwMS4ybS01LjYlMjAwYy42NjQlMjAwJTIwMS4yLS41MzYlMjAxLjItMS4ycy0uNTM2LTEuMi0xLjItMS4yUzQlMjA1LjMzNiUyMDQlMjA2cy41MzYlMjAxLjIlMjAxLjIlMjAxLjJNOCUyMDEyLjRhNC4zOCUyMDQuMzglMjAwJTIwMCUyMDAlMjAzLjQ1Ni0xLjY5MmMuMzc4LS40ODUtLjAzMy0xLjEwOC0uNjQ4LTEuMTA4SDUuMTkyYy0uNjE1JTIwMC0xLjAyNi42MjMtLjY0OCUyMDEuMTA4QTQuMzglMjA0LjM4JTIwMCUyMDAlMjAwJTIwOCUyMDEyLjQlMjIlMkYlM0UlM0MlMkZzdmclM0UpOy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy11MnYydCAuY2MtZ3JqaW0gLmNjLWd4ZDd0W2RhdGEtdHlwZT1zbWlsZXldW2RhdGEtc3RhdGU9YWN0aXZlXSAuY2MtMXJoaXN7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtNTAwKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXUydjJ0IC5jYy1ncmppbSAuY2MtZ3hkN3RbZGF0YS10eXBlPWZpbGVdW2RhdGEtc3RhdGU9bm9uZV0gLmNjLTFmaWgye2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXUydjJ0IC5jYy1ncmppbSAuY2MtZ3hkN3RbZGF0YS10eXBlPWZpbGVdW2RhdGEtc3RhdGU9cHJlcGFyaW5nXSwuY3Jpc3AtY2xpZW50IC5jYy11MnYydCAuY2MtZ3JqaW0gLmNjLWd4ZDd0W2RhdGEtdHlwZT1maWxlXVtkYXRhLXN0YXRlPXVwbG9hZGluZ117cG9pbnRlci1ldmVudHM6bm9uZSFpbXBvcnRhbnQ7d2lkdGg6YXV0byFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdTJ2MnQgLmNjLWdyamltIC5jYy1neGQ3dFtkYXRhLXR5cGU9ZmlsZV1bZGF0YS1zdGF0ZT1wcmVwYXJpbmddIC5jYy0xZmloMiAuY2MteWZyZWcsLmNyaXNwLWNsaWVudCAuY2MtdTJ2MnQgLmNjLWdyamltIC5jYy1neGQ3dFtkYXRhLXR5cGU9ZmlsZV1bZGF0YS1zdGF0ZT11cGxvYWRpbmddIC5jYy0xZmloMiAuY2MteWZyZWcsLmNyaXNwLWNsaWVudCAuY2MtdTJ2MnQgLmNjLWdyamltIC5jYy1neGQ3dFtkYXRhLXR5cGU9ZmlsZV1bZGF0YS1zdGF0ZT1wcmVwYXJpbmddIC5jYy0xZmloMiAuY2MteWZyZWc6aG92ZXIsLmNyaXNwLWNsaWVudCAuY2MtdTJ2MnQgLmNjLWdyamltIC5jYy1neGQ3dFtkYXRhLXR5cGU9ZmlsZV1bZGF0YS1zdGF0ZT1wcmVwYXJpbmddIC5jYy0xZmloMiAuY2MteWZyZWc6YWN0aXZlLC5jcmlzcC1jbGllbnQgLmNjLXUydjJ0IC5jYy1ncmppbSAuY2MtZ3hkN3RbZGF0YS10eXBlPWZpbGVdW2RhdGEtc3RhdGU9dXBsb2FkaW5nXSAuY2MtMWZpaDIgLmNjLXlmcmVnOmhvdmVyLC5jcmlzcC1jbGllbnQgLmNjLXUydjJ0IC5jYy1ncmppbSAuY2MtZ3hkN3RbZGF0YS10eXBlPWZpbGVdW2RhdGEtc3RhdGU9dXBsb2FkaW5nXSAuY2MtMWZpaDIgLmNjLXlmcmVnOmFjdGl2ZXtjdXJzb3I6ZGVmYXVsdCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdTJ2MnQgLmNjLWdyamltIC5jYy1neGQ3dFtkYXRhLXR5cGU9ZmlsZV1bZGF0YS1zdGF0ZT1wcmVwYXJpbmddIC5jYy0xM3I0eCAuY2MtMXhmN3J7YW5pbWF0aW9uLWR1cmF0aW9uOjFzfS5jcmlzcC1jbGllbnQgLmNjLXUydjJ0IC5jYy1ncmppbSAuY2MtZ3hkN3RbZGF0YS10eXBlPWZpbGVdW2RhdGEtc3RhdGU9dXBsb2FkaW5nXSAuY2MtMTNyNHggLmNjLTF4Zjdye2FuaW1hdGlvbi1kdXJhdGlvbjoyc30uY3Jpc3AtY2xpZW50IC5jYy11MnYydCAuY2MtZ3JqaW0gLmNjLWd4ZDd0W2RhdGEtdHlwZT1maWxlXSAuY2MtMXJoaXN7LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjE2JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNiUyMDE2JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTAuNTQ2JTIwNC4zNjN2Ny41NjNjMCUyMDEuMjE1LS44MjIlMjAyLjMyLTIuMDExJTIwMi41NjRBMi41NSUyMDIuNTUlMjAwJTIwMCUyMDElMjA1LjQ1NSUyMDEyVjIuOTljMC0uNzIzLjQ5My0xLjM5NyUyMDEuMjA4LTEuNTE1LjkxLS4xNTElMjAxLjcuNTUlMjAxLjclMjAxLjQzNHY3LjYzNmEuMzY0LjM2NCUyMDAlMjAwJTIwMS0uNzI3JTIwMFY0LjM2M2EuNzI4LjcyOCUyMDAlMjAwJTIwMC0xLjQ1NCUyMDB2Ni4wNzVjMCUyMC45NTIuNjgzJTIwMS44MiUyMDEuNjI5JTIwMS45MTZhMS44MiUyMDEuODIlMjAwJTIwMCUyMDAlMjAyLjAwNy0xLjgwOVYzLjAzOEM5LjgxOCUyMDEuNTIlMjA4LjcxMS4xNjElMjA3LjIuMDE0QTIuOTElMjAyLjkxJTIwMCUyMDAlMjAwJTIwNCUyMDIuOTF2OC45MTNjMCUyMDIuMDg4JTIwMS41MjIlMjAzLjk1NSUyMDMuNiUyMDQuMTU4QTQuMDA1JTIwNC4wMDUlMjAwJTIwMCUyMDAlMjAxMiUyMDEyVjQuMzYzYS43MjguNzI4JTIwMCUyMDAlMjAwLTEuNDU0JTIwMCUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXUydjJ0IC5jYy1ncmppbSAuY2MtZ3hkN3RbZGF0YS10eXBlPWZpbGVdIC5jYy0xZmloMnt6LWluZGV4OjEhaW1wb3J0YW50O2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdTJ2MnQgLmNjLWdyamltIC5jYy1neGQ3dFtkYXRhLXR5cGU9ZmlsZV0gLmNjLTFmaWgyLC5jcmlzcC1jbGllbnQgLmNjLXUydjJ0IC5jYy1ncmppbSAuY2MtZ3hkN3RbZGF0YS10eXBlPWZpbGVdIC5jYy0xZmloMiAuY2MteWZyZWd7aGVpZ2h0OjE2cHg7d2lkdGg6MTZweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdTJ2MnQgLmNjLWdyamltIC5jYy1neGQ3dFtkYXRhLXR5cGU9ZmlsZV0gLmNjLTFmaWgyIC5jYy15ZnJlZ3tvcGFjaXR5OjAhaW1wb3J0YW50O2N1cnNvcjpwb2ludGVyIWltcG9ydGFudDttYXJnaW46MCFpbXBvcnRhbnQ7cGFkZGluZzowIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy11MnYydCAuY2MtZ3JqaW0gLmNjLWd4ZDd0W2RhdGEtdHlwZT1maWxlXSAuY2MtMWZpaDIgLmNjLXlmcmVnOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbntjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdTJ2MnQgLmNjLWdyamltIC5jYy1neGQ3dFtkYXRhLXR5cGU9ZmlsZV0gLmNjLTFmaWgyIC5jYy15ZnJlZzpob3ZlciwuY3Jpc3AtY2xpZW50IC5jYy11MnYydCAuY2MtZ3JqaW0gLmNjLWd4ZDd0W2RhdGEtdHlwZT1maWxlXSAuY2MtMWZpaDIgLmNjLXlmcmVnOmFjdGl2ZXtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdTJ2MnQgLmNjLWdyamltIC5jYy1neGQ3dFtkYXRhLXR5cGU9c3BlZWNoXSAuY2MtMXJoaXN7LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjE2JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNiUyMDE2JTIyJTNFJTNDcmVjdCUyMHdpZHRoJTNEJTIyMS43NSUyMiUyMGhlaWdodCUzRCUyMjYlMjIlMjB4JTNEJTIyMTMuMTI1JTIyJTIweSUzRCUyMjUlMjIlMjByeCUzRCUyMi44NzUlMjIlMkYlM0UlM0NyZWN0JTIwd2lkdGglM0QlMjIxLjc1JTIyJTIwaGVpZ2h0JTNEJTIyMTAuNSUyMiUyMHglM0QlMjIxMC4xMjUlMjIlMjB5JTNEJTIyMi43NSUyMiUyMHJ4JTNEJTIyLjg3NSUyMiUyRiUzRSUzQ3JlY3QlMjB3aWR0aCUzRCUyMjEuNzUlMjIlMjBoZWlnaHQlM0QlMjIxNCUyMiUyMHglM0QlMjI3LjEyNSUyMiUyMHklM0QlMjIxJTIyJTIwcnglM0QlMjIuODc1JTIyJTJGJTNFJTNDcmVjdCUyMHdpZHRoJTNEJTIyMS43NSUyMiUyMGhlaWdodCUzRCUyMjYlMjIlMjB4JTNEJTIyNC4xMjUlMjIlMjB5JTNEJTIyNSUyMiUyMHJ4JTNEJTIyLjg3NSUyMiUyRiUzRSUzQ3JlY3QlMjB3aWR0aCUzRCUyMjEuNzUlMjIlMjBoZWlnaHQlM0QlMjIxMCUyMiUyMHglM0QlMjIxLjEyNSUyMiUyMHklM0QlMjIzJTIyJTIwcnglM0QlMjIuODc1JTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdTJ2MnQgLmNjLWdyamltIC5jYy1neGQ3dFtkYXRhLXR5cGU9ZmVlZGJhY2tdW2RhdGEtc3RhdGU9YWN0aXZlXSAuY2MtMXJoaXN7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS15ZWxsb3ctbm9ybWFsKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXUydjJ0IC5jYy1ncmppbSAuY2MtZ3hkN3RbZGF0YS10eXBlPWZlZWRiYWNrXSAuY2MtMXJoaXN7LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjE2JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNiUyMDE2JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJtOCUyMDEzLjEwMSUyMDMuOTk4JTIwMi40MTNhLjgzMy44MzMlMjAwJTIwMCUyMDAlMjAxLjI0Mi0uOTAybC0xLjA2Mi00LjU0OCUyMDMuNTMzLTMuMDZhLjgzMi44MzIlMjAwJTIwMCUyMDAtLjQ3NC0xLjQ2bC00LjY1MS0uMzk0TDguNzY2Ljg1OGEuODMzLjgzMyUyMDAlMjAwJTIwMC0xLjUzMyUyMDBMNS40MTQlMjA1LjE1bC00LjY1LjM5NGEuODMyLjgzMiUyMDAlMjAwJTIwMC0uNDc1JTIwMS40NmwzLjUzMyUyMDMuMDYtMS4wNjIlMjA0LjU0OGEuODMzLjgzMyUyMDAlMjAwJTIwMCUyMDEuMjQyLjkwMnolMjIlMkYlM0UlM0MlMkZzdmclM0UpOy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy11MnYydCAuY2MtZ3JqaW0gLmNjLWd4ZDd0LmNjLXZzcnI3IC5jYy0xYndzdi5jYy0xYTl6cXttYXJnaW4taW5saW5lOi04cHggMCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdTJ2MnQgLmNjLWdyamltIC5jYy1neGQ3dC5jYy12c3JyNyAuY2MtMWJ3c3YuY2MtMWE5enE6YWZ0ZXJ7bWFyZ2luLWlubGluZToxMXB4IDAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXUydjJ0LS1pcy1mdWxsLXZpZXcgLmNjLWdyamlte2dhcDozcHghaW1wb3J0YW50O21hcmdpbi1ib3R0b206MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdTJ2MnQtLWlzLWZ1bGwtdmlldyAuY2MtZ3JqaW0gLmNjLWd4ZDd0e3BhZGRpbmc6NnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy11MnYydC0tbG9ja2VkIC5jYy1ncmppbSAuY2MtZ3hkN3R7cG9pbnRlci1ldmVudHM6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdTJ2MnQtLWxvY2tlZCAuY2MtZ3JqaW0gLmNjLWd4ZDd0W2RhdGEtc3RhdGU9bm9uZV0gLmNjLTFyaGlze2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1saWdodCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy11MnYydC0tbG9ja2VkIC5jYy0xbGJnaCAuY2MtMW1kZTZ7cG9pbnRlci1ldmVudHM6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtdTJ2MnQtLWxvY2tlZCAuY2MtMWxiZ2ggLmNjLTFtZGU2IC5jYy0yN21uMHtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktbGlnaHQpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudFtkaXI9cnRsXSAuY2MtdTJ2MnQgLmNjLTFsYmdoIC5jYy0xbWRlNiAuY2MtMjdtbjB7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1tcm5ta3tmbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1tcm5tayAuY2MtNzljZHF7aGVpZ2h0OjQwcHg7d2lkdGg6MTAwJSFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1tcm5tayAuY2MtNzljZHEgLmNjLTF3bDR5e3dpZHRoOjEwMCUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW1ybm1rIC5jYy0xNWU4ZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudDt3aWR0aDoxMDAlIWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW1ybm1rIC5jYy0xNWU4ZCAuY2Mtam84bWd7bGluZS1oZWlnaHQ6MzBweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXJlZC1ub3JtYWwpKSFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czoxMHB4IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudDttaW4td2lkdGg6ODBweCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtwb3NpdGlvbjpyZWxhdGl2ZSFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1tcm5tayAuY2MtMTVlOGQgLmNjLWpvOG1nIC5jYy1janRza3tiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCksIC4xMjUpIWltcG9ydGFudDt6LWluZGV4OjAhaW1wb3J0YW50O3dpZHRoOjAlIWltcG9ydGFudDt0cmFuc2l0aW9uOndpZHRoIDFzIGxpbmVhciFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O2luc2V0LWJsb2NrOjAhaW1wb3J0YW50O2luc2V0LWlubGluZS1zdGFydDowIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1tcm5tayAuY2MtMTVlOGQgLmNjLWpvOG1nIC5jYy0xdGFja3tjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGV4dC13aGl0ZS1ub3JtYWwpKSFpbXBvcnRhbnQ7bGV0dGVyLXNwYWNpbmc6LjE1cHghaW1wb3J0YW50O3otaW5kZXg6MSFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudDtnYXA6NnB4IWltcG9ydGFudDtwYWRkaW5nOjAgMTBweCFpbXBvcnRhbnQ7Zm9udC1zaXplOjEycHghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW1ybm1rIC5jYy0xNWU4ZCAuY2Mtam84bWcgLmNjLTF0YWNrOmJlZm9yZXstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMTYlMjIlMjBoZWlnaHQlM0QlMjIxNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE2JTIwMTYlMjIlM0UlM0NyZWN0JTIwd2lkdGglM0QlMjIxLjc1JTIyJTIwaGVpZ2h0JTNEJTIyNiUyMiUyMHglM0QlMjIxMy4xMjUlMjIlMjB5JTNEJTIyNSUyMiUyMHJ4JTNEJTIyLjg3NSUyMiUyRiUzRSUzQ3JlY3QlMjB3aWR0aCUzRCUyMjEuNzUlMjIlMjBoZWlnaHQlM0QlMjIxMC41JTIyJTIweCUzRCUyMjEwLjEyNSUyMiUyMHklM0QlMjIyLjc1JTIyJTIwcnglM0QlMjIuODc1JTIyJTJGJTNFJTNDcmVjdCUyMHdpZHRoJTNEJTIyMS43NSUyMiUyMGhlaWdodCUzRCUyMjE0JTIyJTIweCUzRCUyMjcuMTI1JTIyJTIweSUzRCUyMjElMjIlMjByeCUzRCUyMi44NzUlMjIlMkYlM0UlM0NyZWN0JTIwd2lkdGglM0QlMjIxLjc1JTIyJTIwaGVpZ2h0JTNEJTIyNiUyMiUyMHglM0QlMjI0LjEyNSUyMiUyMHklM0QlMjI1JTIyJTIwcnglM0QlMjIuODc1JTIyJTJGJTNFJTNDcmVjdCUyMHdpZHRoJTNEJTIyMS43NSUyMiUyMGhlaWdodCUzRCUyMjEwJTIyJTIweCUzRCUyMjEuMTI1JTIyJTIweSUzRCUyMjMlMjIlMjByeCUzRCUyMi44NzUlMjIlMkYlM0UlM0MlMkZzdmclM0UpO2hlaWdodDoxNnB4O2NvbnRlbnQ6IiIhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSkhaW1wb3J0YW50O3dpZHRoOjE2cHghaW1wb3J0YW50Oy13ZWJraXQtbWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O21hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDstd2Via2l0LW1hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDttYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50O21hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O2ZsZXg6bm9uZSFpbXBvcnRhbnQ7bWFyZ2luLWlubGluZTotMXB4IDZweCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW1ybm1rIC5jYy0xNWU4ZCAuY2MtbDdhbGp7Ym9yZGVyLXJhZGl1czoycHghaW1wb3J0YW50O2ZsZXg6bm9uZSFpbXBvcnRhbnQ7bWFyZ2luOjAgM3B4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1tcm5tayAuY2MtMTVlOGQgLmNjLWw3YWxqLC5jcmlzcC1jbGllbnQgLmNjLW1ybm1rIC5jYy0xNWU4ZCAuY2MtbDdhbGogLmNjLTJ6amFre2hlaWdodDoxNnB4O2N1cnNvcjpwb2ludGVyIWltcG9ydGFudDt3aWR0aDoxNnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1tcm5tayAuY2MtMTVlOGQgLmNjLWw3YWxqIC5jYy0yempha3t0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgNTBtcyBsaW5lYXIhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDstd2Via2l0LW1hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDttYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7bWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50Oy13ZWJraXQtbWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDttYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW1ybm1rIC5jYy0xNWU4ZCAuY2MtbDdhbGpbZGF0YS10eXBlPWNhbmNlbF0gLmNjLTJ6amFrey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxNiUyMiUyMGhlaWdodCUzRCUyMjE2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTYlMjAxNiUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTYuNjY3JTIwMEM1Ljc0NyUyMDAlMjA1JTIwLjc0OCUyMDUlMjAxLjY2N3YxSDEuNjY3YS42NjcuNjY3JTIwMCUyMDAlMjAwJTIwMCUyMDEuMzMzaC43MDNsLjU2MSUyMDEwLjExYy4wNiUyMDEuMDYuOTM2JTIwMS44OSUyMDEuOTk3JTIwMS44OWg2LjE0NGMxLjA2JTIwMCUyMDEuOTM4LS44MyUyMDEuOTk3LTEuODlMMTMuNjMlMjA0aC43MDNhLjY2Ny42NjclMjAwJTIwMCUyMDAlMjAwLTEuMzMzSDExdi0xQzExJTIwLjc0NyUyMDEwLjI1MiUyMDAlMjA5LjMzMyUyMDB6bTAlMjAxLjMzM2gyLjY2NmMuMTg0JTIwMCUyMC4zMzQuMTUuMzM0LjMzNHYxSDYuMzMzdi0xYzAtLjE4NC4xNS0uMzM0LjMzNC0uMzM0TTglMjA1LjQxN2MuMzIyJTIwMCUyMC41ODMuMjYxLjU4My41ODN2Ni42NjdhLjU4My41ODMlMjAwJTIwMSUyMDEtMS4xNjYlMjAwVjZjMC0uMzIyLjI2LS41ODMuNTgzLS41ODNtMi42NyUyMDBhLjU4NC41ODQlMjAwJTIwMCUyMDElMjAuNTYyLjYwM2wtLjIzMyUyMDYuNjk1YS41OC41OCUyMDAlMjAwJTIwMS0uNTgyLjU2NGwtLjAyLS4wMDFhLjU4NC41ODQlMjAwJTIwMCUyMDEtLjU2My0uNjA0bC4yMzItNi42OTVhLjU4NS41ODUlMjAwJTIwMCUyMDElMjAuNjAzLS41NjJtLTUuMzQlMjAwYS41ODYuNTg2JTIwMCUyMDAlMjAxJTIwLjYwNC41NjNsLjIzMiUyMDYuNjk1YS41ODMuNTgzJTIwMCUyMDAlMjAxLS41NjIuNjA0aC0uMDIxQS41ODQuNTg0JTIwMCUyMDAlMjAxJTIwNSUyMDEyLjcxNUw0Ljc2OCUyMDYuMDJhLjU4My41ODMlMjAwJTIwMCUyMDElMjAuNTYyLS42MDMlMjIlMkYlM0UlM0MlMkZzdmclM0UpO2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtcmVkLW5vcm1hbCkpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtbXJubWsgLmNjLTE1ZThkIC5jYy1sN2FsaltkYXRhLXR5cGU9Y2FuY2VsXSAuY2MtMnpqYWs6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpjb2xvci1taXgoaW4gc3JnYiwgcmdiYSh2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXJlZC1ub3JtYWwpLCAxKSA4MiUsIHJnYmEodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwpLCAxKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW1ybm1rIC5jYy0xNWU4ZCAuY2MtbDdhbGpbZGF0YS10eXBlPWNhbmNlbF0gLmNjLTJ6amFrOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBzcmdiLCByZ2JhKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtcmVkLW5vcm1hbCksIDEpIDkwJSwgcmdiYSh2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCksIDEpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtbXJubWstLXJlY29yZGluZyAuY2MtMTVlOGQgLmNjLWpvOG1nIC5jYy0xdGFjazpiZWZvcmV7YW5pbWF0aW9uLW5hbWU6Y2MtZXdldWI7YW5pbWF0aW9uLWR1cmF0aW9uOjIuNXM7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGV9LmNyaXNwLWNsaWVudCAuY2MtNmVrNWZ7bWluLWhlaWdodDo4NXB4O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtZGFyaykpIWltcG9ydGFudDtib3gtc2hhZG93OjAgMnB4IDNweCAwIHJnYih2YXIoLS1jcmlzcC1jb2xvci1zaGFkb3ctbm9ybWFsKSwgLjAyKSFpbXBvcnRhbnQ7Ym9yZGVyLXN0eWxlOnNvbGlkIWltcG9ydGFudDtib3JkZXItd2lkdGg6MS41cHghaW1wb3J0YW50O2JvcmRlci1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LWxpZ2h0KSwgLjUpIWltcG9ydGFudDtib3gtc2l6aW5nOmJvcmRlci1ib3ghaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTZweCFpbXBvcnRhbnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnQ7cGFkZGluZy1ibG9jazowIDZweCFpbXBvcnRhbnQ7cGFkZGluZy1pbmxpbmU6MTNweCA2cHghaW1wb3J0YW50O3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xcyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xcyBlYXNlLWluLW91dCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy02ZWs1ZiAuY2MtNjg0eDksLmNyaXNwLWNsaWVudCAuY2MtNmVrNWYgLmNjLW1vamtke2ZsZXg6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtNmVrNWYtLWZvY3VzZWR7Ym9yZGVyLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS01MDApKSFpbXBvcnRhbnQ7Ym94LXNoYWRvdzowIDAgMCAzcHggY29sb3ItbWl4KGluIHNyZ2IsIHJnYmEodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtNTAwKSwgMSkgMTUlLCByZ2JhKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSwgMSkpLCAwIDJweCAzcHggMCByZ2IodmFyKC0tY3Jpc3AtY29sb3Itc2hhZG93LW5vcm1hbCksIC4wMikhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTZlazVmLS1sb2NrZWR7Ym9yZGVyLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktbGlnaHQpLCAuMTUpIWltcG9ydGFudDtwb2ludGVyLWV2ZW50czpub25lIWltcG9ydGFudDtib3gtc2hhZG93Om5vbmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTZlazVmLS1sb2NrZWQ+KntvcGFjaXR5Oi42NSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtOGt5MDl7bWFyZ2luLWJvdHRvbTptYXgoMTBweCwgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1ib3R0b20pKSFpbXBvcnRhbnQ7cGFkZGluZy1ibG9jazowIWltcG9ydGFudDtwYWRkaW5nLWlubGluZTpjYWxjKDEwcHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LWxlZnQpKSBjYWxjKDEwcHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LXJpZ2h0KSkhaW1wb3J0YW50O3otaW5kZXg6MiFpbXBvcnRhbnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLThreTA5Pip7ZmxleDpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy04a3kwOSAuY2MtNHBwb3l7bWFyZ2luLXRvcDo4cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLThreTA5LS1mdWxsLXZpZXcgLmNjLTRwcG95e21hcmdpbi1ib3R0b206Y2FsYygtMSAqIGNsYW1wKDBweCwgKDBweCArIHZhcigtLWNyaXNwLWVudi1kZXZpY2UtaW5zZXQtYm90dG9tKSAtIDI0cHgpICogOTk5OSwgMjRweCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xb2xndHtpbnNldC1pbmxpbmU6MCFpbXBvcnRhbnQ7dG9wOjAhaW1wb3J0YW50O2JvdHRvbTpjYWxjKG1heCgxMHB4LCB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LWJvdHRvbSkpICsgMTZweCArIDhweCkhaW1wb3J0YW50O3otaW5kZXg6OSFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFvbGd0IC5jYy0xN3dpcntiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbCkpIWltcG9ydGFudDtib3JkZXI6LjVweCBzb2xpZCByZ2IodmFyKC0tY3Jpc3AtY29sb3Itc2VwYXJhdG9yLW5vcm1hbCkpIWltcG9ydGFudDtpbnNldC1pbmxpbmU6Y2FsYyg4cHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LWxlZnQpKSBjYWxjKDhweCArIHZhcigtLWNyaXNwLWVudi1kZXZpY2UtaW5zZXQtcmlnaHQpKSFpbXBvcnRhbnQ7Ym94LXNoYWRvdzowIDRweCAxMnB4IDAgcmdiKHZhcigtLWNyaXNwLWNvbG9yLXNoYWRvdy1ub3JtYWwpLCAuMDYpLCAwIDAgNnB4IDAgcmdiKHZhcigtLWNyaXNwLWNvbG9yLXNoYWRvdy1ub3JtYWwpLCAuMDQpIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjEycHghaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDtib3R0b206MzZweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMW9sZ3QtLWhhcy1hbmltYXRpb24gLmNjLTE3d2lyIC5jYy1zejkxbHthbmltYXRpb24tbmFtZTpjYy1sMTRpMjthbmltYXRpb24tZHVyYXRpb246NTBtczthbmltYXRpb24tZmlsbC1tb2RlOmJvdGh9LmNyaXNwLWNsaWVudCAuY2MtMW9sZ3QtLWhhcy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhY2tncm91bmQtbG9ja2VyKSwgLjEyKSFpbXBvcnRhbnQ7Ym90dG9tOjAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFvbGd0LS1oYXMtb3ZlcmxheSAuY2MtMTd3aXJ7Ym90dG9tOmNhbGMobWF4KDEwcHgsIHZhcigtLWNyaXNwLWVudi1kZXZpY2UtaW5zZXQtYm90dG9tKSkgKyA4cHggLSAxMHB4KSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMW9sZ3Q6bm90KC5jYy0xb2xndC0taGFzLWJyYW5kaW5nKTpub3QoLmNjLTFvbGd0LS1oYXMtb3ZlcmxheSl7Ym90dG9tOm1heCgxMHB4LCB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LWJvdHRvbSkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZ3J1MntwYWRkaW5nLWlubGluZToxNHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZ3J1Mi0tcGFkZGluZy1yZWd1bGFye3BhZGRpbmctdG9wOjE0cHghaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOjEycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFncnUyLS1wYWRkaW5nLWV4dGVuZGVke3BhZGRpbmctdG9wOjE4cHghaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOjE0cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFncnUyLS1oYXMtYW5pbWF0aW9ue2FuaW1hdGlvbi1uYW1lOmNjLWwxNGkyO2FuaW1hdGlvbi1kdXJhdGlvbjo1MG1zO2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aH0uY3Jpc3AtY2xpZW50IC5jYy0xN2g0NSAuY2MtMW5tOXIsLmNyaXNwLWNsaWVudCAuY2MtMTdoNDUgLmNjLWRpYWdne2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTdoNDUgLmNjLTFubTlyey1tb3otY29sdW1uLWdhcDo2cHghaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnQ7Y29sdW1uLWdhcDo2cHghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTdoNDUgLmNjLTFubTlyIC5jYy1sMWsxcHtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS01MDApKSFpbXBvcnRhbnQ7ZmxleDpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xN2g0NSAuY2MtZGlhZ2d7bGluZS1oZWlnaHQ6MTdweDttYXJnaW4tdG9wOjEycHghaW1wb3J0YW50O2ZvbnQtc2l6ZToxMi44cHghaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE3aDQ1IC5jYy1sMWsxcHtoZWlnaHQ6MThweDt3aWR0aDoxOHB4IWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7bWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50O21hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7bWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xN2g0NSAuY2MtbDFrMXBbZGF0YS1pY29uPWluZm9dey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIyMiUyMiUyMGhlaWdodCUzRCUyMjIyJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjIlMjAyMiUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTExJTIwLjZDNS4yNTYuNi42JTIwNS4yNTYuNiUyMDExUzUuMjU2JTIwMjEuNCUyMDExJTIwMjEuNCUyMDIxLjQlMjAxNi43NDQlMjAyMS40JTIwMTElMjAxNi43NDQuNiUyMDExJTIwLjZtMCUyMDE1LjI3NWEuOTczLjk3MyUyMDAlMjAwJTIwMS0uOTc1LS45NzV2LTQuNTVjMC0uNTQuNDM1LS45NzUuOTc1LS45NzVzLjk3NS40MzUuOTc1Ljk3NXY0LjU1YzAlMjAuNTQtLjQzNS45NzUtLjk3NS45NzVNMTIuMDg1JTIwNy4xYTEuMDklMjAxLjA5JTIwMCUyMDAlMjAxLS41Mi45OTVjLS4zNDYuMjA4LS43OC4yMDgtMS4xMjYlMjAwYTEuMDklMjAxLjA5JTIwMCUyMDAlMjAxLS41Mi0uOTk1JTIwMS4wOSUyMDEuMDklMjAwJTIwMCUyMDElMjAuNTItLjk5NWMuMzQ2LS4yMDcuNzgtLjIwNyUyMDEuMTI2JTIwMCUyMC4zNDUuMjEuNTQ0LjU5My41Mi45OTUlMjIlMkYlM0UlM0MlMkZzdmclM0UpOy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xN2g0NSAuY2MtbDFrMXBbZGF0YS1pY29uPWFsZXJ0XXstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMjIlMjIlMjBoZWlnaHQlM0QlMjIyMiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDIyJTIwMjIlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0xMSUyMDIxLjRjNS43NDQlMjAwJTIwMTAuNC00LjY1NiUyMDEwLjQtMTAuNFMxNi43NDQuNiUyMDExJTIwLjYuNiUyMDUuMjU2LjYlMjAxMSUyMDUuMjU2JTIwMjEuNCUyMDExJTIwMjEuNG0wLTE1LjI3NWMuNTQlMjAwJTIwLjk3NS40MzUuOTc1Ljk3NXY0LjU1YzAlMjAuNTQtLjQzNS45NzUtLjk3NS45NzVzLS45NzUtLjQzNS0uOTc1LS45NzVWNy4xYzAtLjU0LjQzNS0uOTc1Ljk3NS0uOTc1TTkuOTE1JTIwMTQuOWExLjA5JTIwMS4wOSUyMDAlMjAwJTIwMSUyMC41Mi0uOTk1Yy4zNDYtLjIwOC43OC0uMjA4JTIwMS4xMjYlMjAwJTIwLjM0NS4yMS41NDQuNTkzLjUyLjk5NWExLjA5JTIwMS4wOSUyMDAlMjAwJTIwMS0uNTIuOTk1Yy0uMzQ2LjIwNy0uNzguMjA3LTEuMTI2JTIwMGExLjA5JTIwMS4wOSUyMDAlMjAwJTIwMS0uNTItLjk5NSUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE3aDQ1LS1kZWZhdWx0IC5jYy0xbm05cntsaW5lLWhlaWdodDoxOHB4O2ZvbnQtc2l6ZToxNS4ycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE3aDQ1LS1zbWFsbCAuY2MtMW5tOXJ7bGluZS1oZWlnaHQ6MTZweDtmb250LXNpemU6MTMuMnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xN2g0NS0tc3BhY2VkLXRpdGxlcyAuY2MtZGlhZ2d7bWFyZ2luLXRvcDoyMnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xZTQxb3t0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMWU0MW8gLmNjLXRjOGJkIC5jYy0xdHp3ZHttYXJnaW4tYm90dG9tOjIycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFlNDFvIC5jYy10YzhiZCAuY2MtMTAyZmF7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtZ3JleS1ub3JtYWwpKSFpbXBvcnRhbnQ7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50O21hcmdpbi10b3A6MTBweCFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTo2cHghaW1wb3J0YW50O2ZvbnQtc2l6ZToxMC44cHghaW1wb3J0YW50O3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUhaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFlNDFvIC5jYy10YzhiZCAuY2MtMTAyZmE6aG92ZXJ7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtZ3JleS1kYXJrKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW1xbWJhe3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1tcW1iYSAuY2MtMW95cXUsLmNyaXNwLWNsaWVudCAuY2MtbXFtYmEgLmNjLTFkbGZ4e2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW1xbWJhIC5jYy0xb3lxdXtsaW5lLWhlaWdodDowO3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDttYXJnaW4tdG9wOjE1cHghaW1wb3J0YW50O21hcmdpbi1ib3R0b206MjBweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtbXFtYmEgLmNjLTFveXF1IC5jYy10NTFqantqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudDtnYXA6MTJweCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1tcW1iYSAuY2MtMW95cXUgLmNjLXQ1MWpqIC5jYy0xeGpia3stLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMzAlMjIlMjBoZWlnaHQlM0QlMjIyOSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDMwJTIwMjklMjIlM0UlM0NjbGlwUGF0aCUyMGlkJTNEJTIyYSUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTEzLjU2Mi45NTJjLjUzOS0xLjI3JTIwMi4zMzctMS4yNyUyMDIuODc2JTIwMEwxOS44NDglMjA5bDguNzIuNzRjMS4zNzcuMTE2JTIwMS45MzUlMjAxLjgzLjg5JTIwMi43MzVsLTYuNjI0JTIwNS43MzglMjAxLjk5JTIwOC41MjljLjMxNCUyMDEuMzQ0LTEuMTQ1JTIwMi40MDUtMi4zMjglMjAxLjY5MUwxNSUyMDIzLjkwOWwtNy40OTYlMjA0LjUyNGMtMS4xODMuNzE0LTIuNjQyLS4zNDctMi4zMjgtMS42OTFsMS45OS04LjUyOUwuNTQlMjAxMi40NzVjLTEuMDQ0LS45MDQtLjQ4Ni0yLjYyLjg5LTIuNzM2TDEwLjE1MSUyMDl6JTIyJTJGJTNFJTNDJTJGY2xpcFBhdGglM0UlM0NnJTIwY2xpcC1wYXRoJTNEJTIydXJsJTI4JTIzYSUyOSUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTAlMjAwaDMwdjI4LjY2MkgweiUyMiUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UpO2hlaWdodDozMHB4O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1saWdodCkpIWltcG9ydGFudDtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnQ7d2lkdGg6MzBweCFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDstd2Via2l0LW1hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDttYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7bWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50Oy13ZWJraXQtbWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDttYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLW1xbWJhIC5jYy0xb3lxdSAuY2MtdDUxampbZGF0YS1zdGFycy1zZWxlY3RlZD0iMSJdIC5jYy0xeGpiazpudGgtY2hpbGQoLW4rMSksLmNyaXNwLWNsaWVudCAuY2MtbXFtYmEgLmNjLTFveXF1IC5jYy10NTFqaltkYXRhLXN0YXJzLWhvdmVyZWQ9IjEiXSAuY2MtMXhqYms6bnRoLWNoaWxkKC1uKzEpLC5jcmlzcC1jbGllbnQgLmNjLW1xbWJhIC5jYy0xb3lxdSAuY2MtdDUxampbZGF0YS1zdGFycy1zZWxlY3RlZD0iMiJdIC5jYy0xeGpiazpudGgtY2hpbGQoLW4rMiksLmNyaXNwLWNsaWVudCAuY2MtbXFtYmEgLmNjLTFveXF1IC5jYy10NTFqaltkYXRhLXN0YXJzLWhvdmVyZWQ9IjIiXSAuY2MtMXhqYms6bnRoLWNoaWxkKC1uKzIpLC5jcmlzcC1jbGllbnQgLmNjLW1xbWJhIC5jYy0xb3lxdSAuY2MtdDUxampbZGF0YS1zdGFycy1zZWxlY3RlZD0iMyJdIC5jYy0xeGpiazpudGgtY2hpbGQoLW4rMyksLmNyaXNwLWNsaWVudCAuY2MtbXFtYmEgLmNjLTFveXF1IC5jYy10NTFqaltkYXRhLXN0YXJzLWhvdmVyZWQ9IjMiXSAuY2MtMXhqYms6bnRoLWNoaWxkKC1uKzMpLC5jcmlzcC1jbGllbnQgLmNjLW1xbWJhIC5jYy0xb3lxdSAuY2MtdDUxampbZGF0YS1zdGFycy1zZWxlY3RlZD0iNCJdIC5jYy0xeGpiazpudGgtY2hpbGQoLW4rNCksLmNyaXNwLWNsaWVudCAuY2MtbXFtYmEgLmNjLTFveXF1IC5jYy10NTFqaltkYXRhLXN0YXJzLWhvdmVyZWQ9IjQiXSAuY2MtMXhqYms6bnRoLWNoaWxkKC1uKzQpLC5jcmlzcC1jbGllbnQgLmNjLW1xbWJhIC5jYy0xb3lxdSAuY2MtdDUxampbZGF0YS1zdGFycy1zZWxlY3RlZD0iNSJdIC5jYy0xeGpiazpudGgtY2hpbGQoLW4rNSksLmNyaXNwLWNsaWVudCAuY2MtbXFtYmEgLmNjLTFveXF1IC5jYy10NTFqaltkYXRhLXN0YXJzLWhvdmVyZWQ9IjUiXSAuY2MtMXhqYms6bnRoLWNoaWxkKC1uKzUpe2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UteWVsbG93LW5vcm1hbCkpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1tcW1iYSAuY2MtMWFnMjR7bWluLWhlaWdodDo4MHB4O2xpbmUtaGVpZ2h0OjE3cHg7cmVzaXplOm5vbmUhaW1wb3J0YW50O3dpZHRoOjEwMCUhaW1wb3J0YW50O2JveC1zaGFkb3c6MCAycHggM3B4IDAgcmdiKHZhcigtLWNyaXNwLWNvbG9yLXNoYWRvdy1ub3JtYWwpLCAuMDIpIWltcG9ydGFudDtib3JkZXItc3R5bGU6c29saWQhaW1wb3J0YW50O2JvcmRlci13aWR0aDoxLjVweCFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktdWx0cmEtbGlnaHQpKSFpbXBvcnRhbnQ7Ym94LXNpemluZzpib3JkZXItYm94IWltcG9ydGFudDtib3JkZXItcmFkaXVzOjEycHghaW1wb3J0YW50O21hcmdpbjowIDAgMTBweCFpbXBvcnRhbnQ7cGFkZGluZy1ibG9jazoxMnB4IWltcG9ydGFudDtwYWRkaW5nLWlubGluZToxNHB4IDZweCFpbXBvcnRhbnQ7Zm9udC1zaXplOjEycHghaW1wb3J0YW50O3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xcyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xcyBlYXNlLWluLW91dCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtbXFtYmEgLmNjLTFhZzI0OmZvY3Vze2JvcmRlci1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtNTAwKSkhaW1wb3J0YW50O2JveC1zaGFkb3c6MCAwIDAgM3B4IGNvbG9yLW1peChpbiBzcmdiLCByZ2JhKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLTUwMCksIDEpIDE1JSwgcmdiYSh2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbCksIDEpKSwgMCAycHggM3B4IDAgcmdiKHZhcigtLWNyaXNwLWNvbG9yLXNoYWRvdy1ub3JtYWwpLCAuMDIpIWltcG9ydGFudH0udjMtYm9keS1pbm5lcntzY3JvbGwtYmVoYXZpb3I6c21vb3RoIWltcG9ydGFudDtzY3JvbGxiYXItY29sb3I6IzM5M2QzZiAjMDAwMDAwMWEhaW1wb3J0YW50O3Njcm9sbGJhci13aWR0aDp0aGluIWltcG9ydGFudH0udjMtYm9keS1pbm5lcjo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6OHB4IWltcG9ydGFudH0udjMtYm9keS1pbm5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjojMDAwMCFpbXBvcnRhbnR9LnYzLWJvZHktaW5uZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6IzAwMDAwMDRkIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjVweCFpbXBvcnRhbnQ7ZGlzcGxheTpub25lIWltcG9ydGFudH0udjMtYm9keS1pbm5lcjpob3Zlcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LnYzLWVtb2ppLXBpY2tlcntoZWlnaHQ6MzIwcHg7Ym94LXNpemluZzpib3JkZXItYm94IWltcG9ydGFudDt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTBweCFpbXBvcnRhbnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudDt3aWR0aDoyODBweCFpbXBvcnRhbnQ7bWFyZ2luOjAgYXV0byFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtib3gtc2hhZG93OjAgMnB4IDEwcHggIzAwMDMhaW1wb3J0YW50fS52My1lbW9qaS1waWNrZXIgKntib3gtc2l6aW5nOmJvcmRlci1ib3ghaW1wb3J0YW50fS52My1lbW9qaS1waWNrZXIgLnYzLWhlYWRlcntib3JkZXItYm90dG9tOjFweCBzb2xpZCFpbXBvcnRhbnQ7cGFkZGluZzoxNXB4IDE1cHggMTNweCFpbXBvcnRhbnR9LnYzLWVtb2ppLXBpY2tlciAudjMtaGVhZGVyIC52My1ncm91cHN7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0udjMtZW1vamktcGlja2VyIC52My1oZWFkZXIgLnYzLWdyb3VwcyAudjMtZ3JvdXB7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50O29wYWNpdHk6LjchaW1wb3J0YW50O2JhY2tncm91bmQ6MCAwIWltcG9ydGFudDtib3JkZXI6bm9uZSFpbXBvcnRhbnQ7ZmxleC1ncm93OjEhaW1wb3J0YW50O21hcmdpbjowIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O2ZvbnQtc2l6ZToyM3B4IWltcG9ydGFudDt0cmFuc2l0aW9uOmFsbCAuMnMhaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudH0udjMtZW1vamktcGlja2VyIC52My1oZWFkZXIgLnYzLWdyb3VwcyAudjMtZ3JvdXAudjMtaXMtaGlkZGVue2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LnYzLWVtb2ppLXBpY2tlciAudjMtaGVhZGVyIC52My1ncm91cHMgLnYzLWdyb3VwOmZpcnN0LWNoaWxkLC52My1lbW9qaS1waWNrZXIgLnYzLWhlYWRlciAudjMtZ3JvdXBzIC52My1ncm91cDpsYXN0LWNoaWxke2ZsZXgtZ3JvdzowIWltcG9ydGFudH0udjMtZW1vamktcGlja2VyIC52My1oZWFkZXIgLnYzLWdyb3VwcyAudjMtZ3JvdXA6aG92ZXJ7b3BhY2l0eToxIWltcG9ydGFudH0udjMtZW1vamktcGlja2VyIC52My1oZWFkZXIgLnYzLWdyb3VwcyAudjMtZ3JvdXAgc3BhbntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LnYzLWVtb2ppLXBpY2tlciAudjMtaGVhZGVyIC52My1ncm91cHMgLnYzLWdyb3VwIHNwYW4gaW1ne2hlaWdodDphdXRvO3dpZHRoOjFlbSFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LnYzLWVtb2ppLXBpY2tlciAudjMtc3BhY2luZ3toZWlnaHQ6MTFweH0udjMtZW1vamktcGlja2VyIC52My1zZWFyY2ggaW5wdXR7aGVpZ2h0OjI2cHg7Ym9yZGVyOjFweCBzb2xpZCFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czozcHghaW1wb3J0YW50O3dpZHRoOjEwMCUhaW1wb3J0YW50O3BhZGRpbmc6MCAxMHB4IWltcG9ydGFudDtmb250LXNpemU6MTJweCFpbXBvcnRhbnQ7dHJhbnNpdGlvbjphbGwgLjJzIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0udjMtZW1vamktcGlja2VyIC52My1zZWFyY2ggaW5wdXQ6Zm9jdXN7b3V0bGluZTpub25lIWltcG9ydGFudH0udjMtZW1vamktcGlja2VyIC52My1ib2R5e21pbi1oZWlnaHQ6MDtmbGV4LWdyb3c6MSFpbXBvcnRhbnQ7cGFkZGluZzowIDAgMTVweCAxMXB4IWltcG9ydGFudH0udjMtZW1vamktcGlja2VyIC52My1ib2R5IC52My1ib2R5LWlubmVye2hlaWdodDoxMDAlO21pbi1oZWlnaHQ6MDtmbGV4LWdyb3c6MSFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDoxMXB4IWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gYXV0byFpbXBvcnRhbnR9LnYzLWVtb2ppLXBpY2tlciAudjMtYm9keSAudjMtYm9keS1pbm5lciAudjMtZ3JvdXAgaDV7ei1pbmRleDoyIWltcG9ydGFudDttYXJnaW46MCFpbXBvcnRhbnQ7cGFkZGluZzo3cHggMCAzcHggNHB4IWltcG9ydGFudDt0b3A6MCFpbXBvcnRhbnR9LnYzLWVtb2ppLXBpY2tlciAudjMtYm9keSAudjMtYm9keS1pbm5lciAudjMtZ3JvdXAgaDUudjMtc3RpY2t5e3Bvc2l0aW9uOnN0aWNreSFpbXBvcnRhbnR9LnYzLWVtb2ppLXBpY2tlciAudjMtYm9keSAudjMtYm9keS1pbm5lciAudjMtZ3JvdXAgLnYzLWVtb2ppc3tmbGV4LXdyYXA6d3JhcCFpbXBvcnRhbnQ7Zm9udC1zaXplOjE4cHghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LnYzLWVtb2ppLXBpY2tlciAudjMtYm9keSAudjMtYm9keS1pbm5lciAudjMtZ3JvdXAgLnYzLWVtb2ppcyBidXR0b257Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50O3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDtiYWNrZ3JvdW5kOjAgMCFpbXBvcnRhbnQ7Ym9yZGVyOm5vbmUhaW1wb3J0YW50O2ZsZXgtZ3JvdzoxIWltcG9ydGFudDtmbGV4LWJhc2lzOjEyLjUlIWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O21heC13aWR0aDoxMi41JSFpbXBvcnRhbnQ7bWFyZ2luOjAhaW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnQ7Zm9udC1zaXplOjIycHghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50fS52My1lbW9qaS1waWNrZXIgLnYzLWJvZHkgLnYzLWJvZHktaW5uZXIgLnYzLWdyb3VwIC52My1lbW9qaXMgYnV0dG9uOmFmdGVye2NvbnRlbnQ6IiIhaW1wb3J0YW50O3dpZHRoOjEwMCUhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOjEwMCUhaW1wb3J0YW50fS52My1lbW9qaS1waWNrZXIgLnYzLWJvZHkgLnYzLWJvZHktaW5uZXIgLnYzLWdyb3VwIC52My1lbW9qaXMgYnV0dG9uIHNwYW57anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS52My1lbW9qaS1waWNrZXIgLnYzLWJvZHkgLnYzLWJvZHktaW5uZXIgLnYzLWdyb3VwIC52My1lbW9qaXMgYnV0dG9uIGltZ3ttYXgtd2lkdGg6MTAwJSFpbXBvcnRhbnQ7cGFkZGluZzo0cHghaW1wb3J0YW50fS52My1lbW9qaS1waWNrZXIgLnYzLWJvZHkgLnYzLWJvZHktaW5uZXIgLnYzLWdyb3VwIC52My1lbW9qaXMgYnV0dG9uIHNwYW4sLnYzLWVtb2ppLXBpY2tlciAudjMtYm9keSAudjMtYm9keS1pbm5lciAudjMtZ3JvdXAgLnYzLWVtb2ppcyBidXR0b24gaW1ne2hlaWdodDoxMDAlO3dpZHRoOjEwMCUhaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDt0b3A6MCFpbXBvcnRhbnQ7bGVmdDowIWltcG9ydGFudH0udjMtZW1vamktcGlja2VyIC52My1ib2R5IC52My1ib2R5LWlubmVyLmlzLW1hYyAudjMtZW1vamlzIGJ1dHRvbntmb250LWZhbWlseTpBcHBsZSBDb2xvciBFbW9qaSFpbXBvcnRhbnR9LnYzLWVtb2ppLXBpY2tlciAudjMtZm9vdGVye2JvcmRlci10b3A6MXB4IHNvbGlkICNkZGQhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O3BhZGRpbmc6MTVweCFpbXBvcnRhbnQ7Zm9udC1zaXplOjE0cHghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50fS52My1lbW9qaS1waWNrZXIgLnYzLWZvb3RlciAudjMtdG9uZSwudjMtZW1vamktcGlja2VyIC52My1mb290ZXIgLnYzLWZvb3QtbGVmdHthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LnYzLWVtb2ppLXBpY2tlciAudjMtZm9vdGVyIC52My10b25lIGltZywudjMtZW1vamktcGlja2VyIC52My1mb290ZXIgLnYzLWZvb3QtbGVmdCBpbWd7d2lkdGg6MjBweCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LnYzLWVtb2ppLXBpY2tlciAudjMtZm9vdGVyIC52My10b25lPnNwYW46Zmlyc3QtY2hpbGQsLnYzLWVtb2ppLXBpY2tlciAudjMtZm9vdGVyIC52My1mb290LWxlZnQ+c3BhbjpmaXJzdC1jaGlsZHttYXJnaW4tcmlnaHQ6NnB4IWltcG9ydGFudH0udjMtZW1vamktcGlja2VyIC52My1mb290ZXIgLnYzLWZvb3QtbGVmdD5zcGFuLnYzLXRleHR7dGV4dC1vdmVyZmxvdzplbGxpcHNpcyFpbXBvcnRhbnQ7d2hpdGUtc3BhY2U6bm93cmFwIWltcG9ydGFudDttYXgtd2lkdGg6MTAwcHghaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnR9LnYzLWVtb2ppLXBpY2tlciAudjMtZm9vdGVyIC52My10b25le2N1cnNvcjpwb2ludGVyIWltcG9ydGFudDtiYWNrZ3JvdW5kOjAgMCFpbXBvcnRhbnQ7Ym9yZGVyOm5vbmUhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnQ7cGFkZGluZzowIWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1mbGV4IWltcG9ydGFudH0udjMtZW1vamktcGlja2VyIC52My1mb290ZXIgLnYzLXRvbmU+c3Bhbnt2ZXJ0aWNhbC1hbGlnbjp0b3AhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWZsZXghaW1wb3J0YW50fS52My1lbW9qaS1waWNrZXIgLnYzLWZvb3RlciAudjMtdG9uZSAudjMtdGV4dHtmb250LXNpemU6MTNweCFpbXBvcnRhbnR9LnYzLWVtb2ppLXBpY2tlciAudjMtZm9vdGVyIC52My10b25lIC52My1pY29ue2hlaWdodDoxNXB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZSFpbXBvcnRhbnQ7Ym9yZGVyOjJweCBzb2xpZCAjMDAwMyFpbXBvcnRhbnQ7YWxpZ24tc2VsZjpjZW50ZXIhaW1wb3J0YW50O3dpZHRoOjE1cHghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWZsZXghaW1wb3J0YW50fS52My1lbW9qaS1waWNrZXIgLnYzLWZvb3RlciAudjMtdG9uZSAudjMtaWNvbi52My10b25lLW5ldXRyYWx7YmFja2dyb3VuZC1jb2xvcjojZmZkMjI1IWltcG9ydGFudH0udjMtZW1vamktcGlja2VyIC52My1mb290ZXIgLnYzLXRvbmUgLnYzLWljb24udjMtdG9uZS0xZjNmYntiYWNrZ3JvdW5kLWNvbG9yOiNmZmRmYmQhaW1wb3J0YW50fS52My1lbW9qaS1waWNrZXIgLnYzLWZvb3RlciAudjMtdG9uZSAudjMtaWNvbi52My10b25lLTFmM2Zje2JhY2tncm91bmQtY29sb3I6I2U5YzE5NyFpbXBvcnRhbnR9LnYzLWVtb2ppLXBpY2tlciAudjMtZm9vdGVyIC52My10b25lIC52My1pY29uLnYzLXRvbmUtMWYzZmR7YmFja2dyb3VuZC1jb2xvcjojYzg4ZTYyIWltcG9ydGFudH0udjMtZW1vamktcGlja2VyIC52My1mb290ZXIgLnYzLXRvbmUgLnYzLWljb24udjMtdG9uZS0xZjNmZXtiYWNrZ3JvdW5kLWNvbG9yOiNhODY2MzchaW1wb3J0YW50fS52My1lbW9qaS1waWNrZXIgLnYzLWZvb3RlciAudjMtdG9uZSAudjMtaWNvbi52My10b25lLTFmM2Zme2JhY2tncm91bmQtY29sb3I6IzYwNDYzYSFpbXBvcnRhbnR9LnYzLWVtb2ppLXBpY2tlciAudjMtZm9vdGVyIC52My10b25lIC5pcy1tYWMgc3Bhbntmb250LWZhbWlseTpBcHBsZSBDb2xvciBFbW9qaSFpbXBvcnRhbnR9LnYzLXNraW4tdG9uZXN7aGVpZ2h0OjEwMCU7b3BhY2l0eTowIWltcG9ydGFudDt2aXNpYmlsaXR5OmhpZGRlbiFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czowIDAgMTBweCAxMHB4IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnQ7d2lkdGg6NjAlIWltcG9ydGFudDtwYWRkaW5nOjAgMTVweCFpbXBvcnRhbnQ7dHJhbnNpdGlvbjphbGwgLjJzIWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDt0b3A6MCFpbXBvcnRhbnQ7bGVmdDowIWltcG9ydGFudH0udjMtc2tpbi10b25lcy52My1pcy1vcGVue29wYWNpdHk6MSFpbXBvcnRhbnQ7dmlzaWJpbGl0eTp2aXNpYmxlIWltcG9ydGFudH0udjMtc2tpbi10b25lcyAudjMtc2tpbi10b25le2hlaWdodDoxNXB4O2N1cnNvcjpwb2ludGVyIWltcG9ydGFudDtib3JkZXI6bm9uZSFpbXBvcnRhbnQ7d2lkdGg6MjVweCFpbXBvcnRhbnQ7cGFkZGluZzowIWltcG9ydGFudDt0cmFuc2l0aW9uOmFsbCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS52My1za2luLXRvbmVzIC52My1za2luLXRvbmU6aG92ZXJ7dHJhbnNpdGlvbjphbGwgLjJzIWltcG9ydGFudDt0cmFuc2Zvcm06c2NhbGUoMS4xKSFpbXBvcnRhbnR9LnYzLXNraW4tdG9uZXMgLnYzLXNraW4tdG9uZS1uZXV0cmFse2NvbG9yOiNmZmQyMjUhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2ZmZDIyNSFpbXBvcnRhbnR9LnYzLXNraW4tdG9uZXMgLnYzLXNraW4tdG9uZS0xZjNmYntjb2xvcjojZmZkZmJkIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmRmYmQhaW1wb3J0YW50fS52My1za2luLXRvbmVzIC52My1za2luLXRvbmUtMWYzZmN7Y29sb3I6I2U5YzE5NyFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojZTljMTk3IWltcG9ydGFudH0udjMtc2tpbi10b25lcyAudjMtc2tpbi10b25lLTFmM2Zke2NvbG9yOiNjODhlNjIhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2M4OGU2MiFpbXBvcnRhbnR9LnYzLXNraW4tdG9uZXMgLnYzLXNraW4tdG9uZS0xZjNmZXtjb2xvcjojYTg2NjM3IWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiNhODY2MzchaW1wb3J0YW50fS52My1za2luLXRvbmVzIC52My1za2luLXRvbmUtMWYzZmZ7Y29sb3I6IzYwNDYzYSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojNjA0NjNhIWltcG9ydGFudH0udjMtaW5wdXQtZW1vamktcGlja2VyICp7Ym94LXNpemluZzpib3JkZXItYm94IWltcG9ydGFudH0udjMtaW5wdXQtZW1vamktcGlja2VyIC52My1pbnB1dC1waWNrZXItcm9vdHtwb3NpdGlvbjpyZWxhdGl2ZSFpbXBvcnRhbnR9LnYzLWlucHV0LWVtb2ppLXBpY2tlciAudjMtaW5wdXQtcGlja2VyLXJvb3QgLnYzLWVtb2ppLXBpY2tlci1pbnB1dCwudjMtaW5wdXQtZW1vamktcGlja2VyIC52My1pbnB1dC1waWNrZXItcm9vdCAudjMtZW1vamktcGlja2VyLXRleHRhcmVhe2hlaWdodDo0MHB4O2JvcmRlcjoxcHggc29saWQgIzk5OSFpbXBvcnRhbnQ7d2lkdGg6MTAwJSFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OjE1cHghaW1wb3J0YW50fS52My1pbnB1dC1lbW9qaS1waWNrZXIgLnYzLWlucHV0LXBpY2tlci1yb290IC52My1lbW9qaS1waWNrZXItdGV4dGFyZWF7bWluLWhlaWdodDo4MHB4O3Jlc2l6ZTp2ZXJ0aWNhbCFpbXBvcnRhbnR9LnYzLWlucHV0LWVtb2ppLXBpY2tlciAudjMtaW5wdXQtcGlja2VyLXJvb3QgLnYzLWVtb2ppLXBpY2tlci10ZXh0YXJlYSsudjMtaW5wdXQtcGlja2VyLXdyYXAgLnYzLWlucHV0LXBpY2tlci1pY29ue3RvcDphdXRvIWltcG9ydGFudDtib3R0b206NXB4IWltcG9ydGFudH0udjMtaW5wdXQtZW1vamktcGlja2VyIC52My1pbnB1dC1waWNrZXItcm9vdCAudjMtaW5wdXQtcGlja2VyLXdyYXAgLnYzLWlucHV0LXBpY2tlci1pY29ue2N1cnNvcjpwb2ludGVyIWltcG9ydGFudDtiYWNrZ3JvdW5kOjAgMCFpbXBvcnRhbnQ7Ym9yZGVyOm5vbmUhaW1wb3J0YW50O3BhZGRpbmc6MCA1cHghaW1wb3J0YW50O2ZvbnQtc2l6ZToyNHB4IWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1mbGV4IWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7dG9wOjUwJSFpbXBvcnRhbnQ7cmlnaHQ6NXB4IWltcG9ydGFudDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSFpbXBvcnRhbnR9LnYzLWlucHV0LWVtb2ppLXBpY2tlciAudjMtaW5wdXQtcGlja2VyLXJvb3QgLnYzLWlucHV0LXBpY2tlci13cmFwIC52My1pbnB1dC1waWNrZXItaWNvbiBpbWd7aGVpZ2h0OjFlbTt3aWR0aDoxZW0haW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS52My1pbnB1dC1lbW9qaS1waWNrZXIgLnYzLWlucHV0LXBpY2tlci1yb290IC52My1pbnB1dC1waWNrZXItd3JhcCAudjMtZW1vamktcGlja2Vye29wYWNpdHk6MCFpbXBvcnRhbnQ7dmlzaWJpbGl0eTpoaWRkZW4haW1wb3J0YW50O3RyYW5zaXRpb246YWxsIC4ycyFpbXBvcnRhbnR9LnYzLWlucHV0LWVtb2ppLXBpY2tlciAudjMtaW5wdXQtcGlja2VyLXJvb3QgLnYzLWlucHV0LXBpY2tlci13cmFwLnYzLXBpY2tlci1pcy1vcGVuIC52My1lbW9qaS1waWNrZXJ7b3BhY2l0eToxIWltcG9ydGFudDt2aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50O3otaW5kZXg6OTk5IWltcG9ydGFudH0udjMtZW1vamktcGlja2Vyey0tdjMtcGlja2VyLWJnOiNmZmY7LS12My1waWNrZXItZmc6IzAwMDstLXYzLXBpY2tlci1ib3JkZXI6I2RkZDstLXYzLXBpY2tlci1pbnB1dC1iZzp2YXIoLS12My1waWNrZXItYmcpOy0tdjMtcGlja2VyLWlucHV0LWJvcmRlcjojY2NjOy0tdjMtcGlja2VyLWlucHV0LWZvY3VzLWJvcmRlcjojMDAwOy0tdjMtZ3JvdXAtaW1hZ2UtZmlsdGVyOm5vbmU7LS12My1waWNrZXItZW1vamktaG92ZXI6I2Y3ZjdmNztiYWNrZ3JvdW5kOnZhcigtLXYzLXBpY2tlci1iZykhaW1wb3J0YW50O2NvbG9yOnZhcigtLXYzLXBpY2tlci1mZykhaW1wb3J0YW50fS52My1lbW9qaS1waWNrZXIgLnYzLWZvb3RlciwudjMtZW1vamktcGlja2VyIC52My1oZWFkZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLXYzLXBpY2tlci1ib3JkZXIpIWltcG9ydGFudH0udjMtZW1vamktcGlja2VyIC52My1ncm91cHN7ZmlsdGVyOnZhcigtLXYzLWdyb3VwLWltYWdlLWZpbHRlcikhaW1wb3J0YW50fS52My1lbW9qaS1waWNrZXIgLnYzLXRvbmV7Y29sb3I6dmFyKC0tdjMtcGlja2VyLWZnKSFpbXBvcnRhbnR9LnYzLWVtb2ppLXBpY2tlciAudjMtc2VhcmNoIGlucHV0e2JhY2tncm91bmQ6dmFyKC0tdjMtcGlja2VyLWlucHV0LWJnKSFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOnZhcigtLXYzLXBpY2tlci1pbnB1dC1ib3JkZXIpIWltcG9ydGFudDtjb2xvcjppbmhlcml0IWltcG9ydGFudH0udjMtZW1vamktcGlja2VyIC52My1zZWFyY2ggaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOnZhcigtLXYzLXBpY2tlci1pbnB1dC1mb2N1cy1ib3JkZXIpIWltcG9ydGFudH0udjMtZW1vamktcGlja2VyIC52My1ib2R5IC52My1ib2R5LWlubmVyIC52My1ncm91cCBoNSwudjMtZW1vamktcGlja2VyIC52My1za2luLXRvbmVze2JhY2tncm91bmQ6dmFyKC0tdjMtcGlja2VyLWJnKSFpbXBvcnRhbnR9LnYzLWVtb2ppLXBpY2tlciAudjMtYm9keSAudjMtYm9keS1pbm5lciAudjMtZ3JvdXAgLnYzLWVtb2ppcyBidXR0b246aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS12My1waWNrZXItZW1vamktaG92ZXIsI2Y3ZjdmNykhaW1wb3J0YW50fUBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7LnYzLWVtb2ppLXBpY2tlci52My1jb2xvci10aGVtZS1hdXRvey0tdjMtcGlja2VyLWJnOiMwMDA7LS12My1waWNrZXItZmc6I2ZmZjstLXYzLXBpY2tlci1ib3JkZXI6IzMzMzstLXYzLXBpY2tlci1pbnB1dC1iZzojMjIyOy0tdjMtcGlja2VyLWlucHV0LWJvcmRlcjojNDQ0Oy0tdjMtcGlja2VyLWlucHV0LWZvY3VzLWJvcmRlcjojNTU1Oy0tdjMtZ3JvdXAtaW1hZ2UtZmlsdGVyOmludmVydCgxKTstLXYzLXBpY2tlci1lbW9qaS1ob3ZlcjojMjIyfX0udjMtZW1vamktcGlja2VyLnYzLWNvbG9yLXRoZW1lLWRhcmt7LS12My1waWNrZXItYmc6IzAwMDstLXYzLXBpY2tlci1mZzojZmZmOy0tdjMtcGlja2VyLWJvcmRlcjojMzMzOy0tdjMtcGlja2VyLWlucHV0LWJnOiMyMjI7LS12My1waWNrZXItaW5wdXQtYm9yZGVyOiM0NDQ7LS12My1waWNrZXItaW5wdXQtZm9jdXMtYm9yZGVyOiM1NTU7LS12My1ncm91cC1pbWFnZS1maWx0ZXI6aW52ZXJ0KDEpOy0tdjMtcGlja2VyLWVtb2ppLWhvdmVyOiMyMjJ9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTEwNnJqe3otaW5kZXg6MiFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206MCFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE5MmowIC5jYy0xMDZyaiAuY2Mtangzbnl7bWFyZ2luLWlubGluZTotMTRweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDotM3B4IWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbToxMnB4IWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xOTJqMCAuY2MtMTA2cmogLmNjLWp4M255IC5jYy0xNmEyeXtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDtwb3NpdGlvbjpyZWxhdGl2ZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTEwNnJqIC5jYy1qeDNueSAuY2MtMTZhMnlbZGF0YS1hY3Rpb249c2VhcmNoXXttYXJnaW4taW5saW5lOjE2cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE5MmowIC5jYy0xMDZyaiAuY2MtMWRjaGF7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTEwNnJqIC5jYy0xZGNoYSAuY2MtMTVzcXF7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRleHQtYmxhY2stbm9ybWFsKSkhaW1wb3J0YW50O3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDtwYWRkaW5nOjIycHggMjRweCAyNHB4IWltcG9ydGFudDtmb250LXNpemU6MTJweCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTEwNnJqIC5jYy0xZGNoYSAuY2MtMTVzcXE6YWZ0ZXJ7aGVpZ2h0OjQycHg7Y29udGVudDoiIiFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTEwNnJqIC5jYy0xa21iOCAuY2MtMXhpZmh7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xOTJqMCAuY2MtMTA2cmogLmNjLTFrbWI4LS1sb2FkaW5ne3BhZGRpbmctYmxvY2s6NzhweCAxMTUuNXB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xOTJqMCAuY2MtMTA2cmogLmNjLTFrbWI4IC5jYy02NHR1bCAuY2MtbW5wNjB7aGVpZ2h0OjE2cHg7YW5pbWF0aW9uLWR1cmF0aW9uOjEuNXM7Ym9yZGVyLXdpZHRoOjJweCFpbXBvcnRhbnQ7d2lkdGg6MTZweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTEwNnJqW2RhdGEtdHlwZT1zbWlsZXldIC5jYy0xa21iOHttYXgtaGVpZ2h0OjIyMHB4O3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gYXV0byFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTEwNnJqW2RhdGEtdHlwZT1zbWlsZXldIC5jYy0xa21iOCAudjMtZW1vamktcGlja2Vyey0tdjMtcGlja2VyLWJnOnZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKTstLXYzLXBpY2tlci1mZzp2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCk7LS12My1waWNrZXItYm9yZGVyOm5vbmU7LS12My1ncm91cC1pbWFnZS1maWx0ZXI6bm9uZTstLXYzLXBpY2tlci1lbW9qaS1ob3Zlcjp2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktdWx0cmEtbGlnaHQpO21heC1oZWlnaHQ6MjIwcHg7aGVpZ2h0OnVuc2V0O3RleHQtYWxpZ246c3RhcnQhaW1wb3J0YW50O2JveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czowIWltcG9ydGFudDt3aWR0aDoxMDAlIWltcG9ydGFudDttYXJnaW46MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTEwNnJqW2RhdGEtdHlwZT1zbWlsZXldIC5jYy0xa21iOCAudjMtZW1vamktcGlja2VyIC52My1mb290ZXJ7ZGlzcGxheTpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xOTJqMCAuY2MtMTA2cmpbZGF0YS10eXBlPXNtaWxleV0gLmNjLTFrbWI4IC52My1lbW9qaS1waWNrZXIgLnYzLWJvZHksLmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTEwNnJqW2RhdGEtdHlwZT1zbWlsZXldIC5jYy0xa21iOCAudjMtZW1vamktcGlja2VyIC52My1ib2R5IC52My1ib2R5LWlubmVye3BhZGRpbmc6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTEwNnJqW2RhdGEtdHlwZT1zbWlsZXldIC5jYy0xa21iOCAudjMtZW1vamktcGlja2VyIC52My1ib2R5IGg1e2JhY2tncm91bmQ6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSwgLjk3NSkhaW1wb3J0YW50O3BhZGRpbmctYmxvY2s6NnB4IDdweCFpbXBvcnRhbnQ7Zm9udC1zaXplOjE0cHghaW1wb3J0YW50O2ZvbnQtd2VpZ2h0OjcwMCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTEwNnJqW2RhdGEtdHlwZT1zbWlsZXldIC5jYy0xa21iOCAudjMtZW1vamktcGlja2VyIC52My1ib2R5IC52My1ncm91cDpoYXMoLnYzLWVtb2ppcyk6YWZ0ZXJ7aGVpZ2h0OjEwcHg7Y29udGVudDoiIiFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTEwNnJqW2RhdGEtdHlwZT1zbWlsZXldIC5jYy0xa21iOCAudjMtZW1vamktcGlja2VyIC52My1ib2R5IC52My1ncm91cDpsYXN0LW9mLXR5cGU6YWZ0ZXJ7aGVpZ2h0OjUwcHg7Y29udGVudDoiIiFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTEwNnJqW2RhdGEtdHlwZT1zbWlsZXldIC5jYy0xa21iOCAudjMtZW1vamktcGlja2VyIC52My1ib2R5IC52My1ncm91cCAudjMtc3RpY2t5e2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCkpIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbToxMHB4IWltcG9ydGFudDtmb250LXNpemU6MTEuNnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xOTJqMCAuY2MtMTA2cmpbZGF0YS10eXBlPXNtaWxleV0gLmNjLTFrbWI4IC52My1lbW9qaS1waWNrZXIgLnYzLWJvZHkgLnYzLWdyb3VwIC52My1lbW9qaXN7ZmxleC13cmFwOndyYXAhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudDttYXJnaW4tbGVmdDowIWltcG9ydGFudDtwYWRkaW5nLWxlZnQ6MCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xOTJqMCAuY2MtMTA2cmpbZGF0YS10eXBlPXNtaWxleV0gLmNjLTFrbWI4IC52My1lbW9qaS1waWNrZXIgLnYzLWJvZHkgLnYzLWdyb3VwIC52My1lbW9qaXMgYnV0dG9ue2JveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czo2cHghaW1wb3J0YW50O2ZsZXg6bm9uZSFpbXBvcnRhbnQ7d2lkdGg6Y2xhbXAoMzVweCwxMCUsNTBweCkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE5MmowIC5jYy0xMDZyaltkYXRhLXR5cGU9c21pbGV5XSAuY2MtMWttYjggLnYzLWVtb2ppLXBpY2tlciAudjMtYm9keSAudjMtZ3JvdXAgLnYzLWVtb2ppcyBidXR0b24gKntjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnQ7Zm9udC1zaXplOjI2cHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE5MmowIC5jYy0xMDZyaltkYXRhLXR5cGU9c21pbGV5XSAuY2MtMWttYjggLnYzLWVtb2ppLXBpY2tlciAudjMtYm9keSAudjMtZ3JvdXAgLnYzLWVtb2ppcyBidXR0b246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LXVsdHJhLWxpZ2h0KSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE5MmowIC5jYy0xMDZyaltkYXRhLXR5cGU9Z2lmXSAuY2MtMWttYjh7bWF4LWhlaWdodDoyMjBweDt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7LW1vei1jb2x1bW4tZ2FwOjhweCFpbXBvcnRhbnQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLDFmcikhaW1wb3J0YW50O2dhcDoxMHB4IDhweCFpbXBvcnRhbnQ7ZGlzcGxheTpncmlkIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gYXV0byFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTEwNnJqW2RhdGEtdHlwZT1naWZdIC5jYy0xa21iODpub3QoLmNjLTFrbWI4LS1lbXB0eSl7cGFkZGluZy1ib3R0b206NTRweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTEwNnJqW2RhdGEtdHlwZT1naWZdIC5jYy0xa21iOCAuY2MtMXhpZmh7aGVpZ2h0OjkwcHg7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ncmV5LXVsdHJhLWxpZ2h0KSkhaW1wb3J0YW50O2FzcGVjdC1yYXRpbzo1LzQhaW1wb3J0YW50O2JveC1zaXppbmc6Ym9yZGVyLWJveCFpbXBvcnRhbnQ7Ym9yZGVyLXN0eWxlOnNvbGlkIWltcG9ydGFudDtib3JkZXItd2lkdGg6MnB4IWltcG9ydGFudDtib3JkZXItcmFkaXVzOjE0cHghaW1wb3J0YW50O3dpZHRoOjEwMCUhaW1wb3J0YW50O21hcmdpbjowIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDtwb3NpdGlvbjpyZWxhdGl2ZSFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xOTJqMCAuY2MtMTA2cmpbZGF0YS10eXBlPWdpZl0gLmNjLTFrbWI4IC5jYy0xeGlmaCAuY2MtN2hpbWd7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50O3otaW5kZXg6MiFpbXBvcnRhbnQ7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOmNvdmVyIWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7aW5zZXQ6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTEwNnJqW2RhdGEtdHlwZT1naWZdIC5jYy0xa21iOCAuY2MtMXhpZmg6aG92ZXJ7Ym9yZGVyLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS01MDApKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTEwNnJqW2RhdGEtdHlwZT1naWZdIC5jYy0xa21iOCAuY2MtMXhpZmg6bm90KDpob3ZlciksLmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTEwNnJqW2RhdGEtdHlwZT1naWZdIC5jYy0xa21iOCAuY2MtMXhpZmhbZGF0YS1sb2FkaW5nPXRydWVde2JvcmRlci1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWwpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTEwNnJqW2RhdGEtdHlwZT1naWZdIC5jYy0xa21iOCAuY2MtMXhpZmhbZGF0YS1sb2FkaW5nPXRydWVdOm50aC1jaGlsZChvZGQpOmJlZm9yZXthbmltYXRpb24tZGVsYXk6MHN9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTEwNnJqW2RhdGEtdHlwZT1naWZdIC5jYy0xa21iOCAuY2MtMXhpZmhbZGF0YS1sb2FkaW5nPXRydWVdOm50aC1jaGlsZCgybik6YmVmb3Jle2FuaW1hdGlvbi1kZWxheTouMjVzfS5jcmlzcC1jbGllbnQgLmNjLTE5MmowIC5jYy0xMDZyaltkYXRhLXR5cGU9Z2lmXSAuY2MtMWttYjggLmNjLTF4aWZoW2RhdGEtbG9hZGluZz10cnVlXTpiZWZvcmV7YW5pbWF0aW9uLW5hbWU6Y2MtMWg0NGM7YW5pbWF0aW9uLWR1cmF0aW9uOjEuNXM7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluLW91dDthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2NvbnRlbnQ6IiIhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1saWdodCkpIWltcG9ydGFudDt6LWluZGV4OjEhaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDtpbnNldDowIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xOTJqMCAuY2MtMXlicjl7aGVpZ2h0OjI2cHg7YmFja2dyb3VuZDpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWwpLCAuODQpIWltcG9ydGFudDstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDJweClzYXR1cmF0ZSgwJSkhaW1wb3J0YW50O2JhY2tkcm9wLWZpbHRlcjpibHVyKDJweClzYXR1cmF0ZSgwJSkhaW1wb3J0YW50O3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDt6LWluZGV4OjMhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MjBweCFpbXBvcnRhbnQ7ZmxleC1kaXJlY3Rpb246cm93IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O2dhcDo1cHghaW1wb3J0YW50O3BhZGRpbmc6N3B4IDEwcHghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O2JvdHRvbTo3cHghaW1wb3J0YW50O2xlZnQ6NTAlIWltcG9ydGFudDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xOTJqMCAuY2MtMXlicjkgLmNjLTYxd2V5e2xpbmUtaGVpZ2h0OjI2cHg7bGV0dGVyLXNwYWNpbmc6MCFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czoxNnB4IWltcG9ydGFudDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O2dhcDo2cHghaW1wb3J0YW50O3BhZGRpbmc6MCAxNHB4IWltcG9ydGFudDtmb250LXNpemU6MTEuMnB4IWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1mbGV4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xOTJqMCAuY2MtMXlicjkgLmNjLTYxd2V5W2RhdGEtZGlzYWJsZWQ9dHJ1ZV17cG9pbnRlci1ldmVudHM6bm9uZSFpbXBvcnRhbnQ7b3BhY2l0eTouNCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTF5YnI5IC5jYy02MXdleSwuY3Jpc3AtY2xpZW50IC5jYy0xOTJqMCAuY2MtMXlicjkgLmNjLTYxd2V5IC5jYy11ZGxhaCwuY3Jpc3AtY2xpZW50IC5jYy0xOTJqMCAuY2MtMXlicjkgLmNjLTYxd2V5IC5jYy02ZnBuNntjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnQ7ei1pbmRleDoxIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xOTJqMCAuY2MtMXlicjkgLmNjLTYxd2V5IC5jYy11ZGxhaHtoZWlnaHQ6MTNweDtiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvciFpbXBvcnRhbnQ7ZmxleDpub25lIWltcG9ydGFudDt3aWR0aDoxM3B4IWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7bWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50O21hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7bWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xOTJqMCAuY2MtMXlicjkgLmNjLTYxd2V5W2RhdGEtdHlwZT1zbWlsZXldIC5jYy11ZGxhaHstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMTYlMjIlMjBoZWlnaHQlM0QlMjIxNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE2JTIwMTYlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk03Ljk5MiUyMDBDMy41NzYlMjAwJTIwMCUyMDMuNTg0JTIwMCUyMDhzMy41NzYlMjA4JTIwNy45OTIlMjA4QzEyLjQxNiUyMDE2JTIwMTYlMjAxMi40MTYlMjAxNiUyMDhzLTMuNTg0LTgtOC4wMDgtOE04JTIwMTQuNEE2LjQlMjA2LjQlMjAwJTIwMCUyMDElMjAxLjYlMjA4YzAtMy41MzYlMjAyLjg2NC02LjQlMjA2LjQtNi40czYuNCUyMDIuODY0JTIwNi40JTIwNi40LTIuODY0JTIwNi40LTYuNCUyMDYuNG0yLjgtNy4yYy42NjQlMjAwJTIwMS4yLS41MzYlMjAxLjItMS4ycy0uNTM2LTEuMi0xLjItMS4yLTEuMi41MzYtMS4yJTIwMS4yLjUzNiUyMDEuMiUyMDEuMiUyMDEuMm0tNS42JTIwMGMuNjY0JTIwMCUyMDEuMi0uNTM2JTIwMS4yLTEuMnMtLjUzNi0xLjItMS4yLTEuMlM0JTIwNS4zMzYlMjA0JTIwNnMuNTM2JTIwMS4yJTIwMS4yJTIwMS4yTTglMjAxMi40YTQuMzglMjA0LjM4JTIwMCUyMDAlMjAwJTIwMy40NTYtMS42OTJjLjM3OC0uNDg1LS4wMzMtMS4xMDgtLjY0OC0xLjEwOEg1LjE5MmMtLjYxNSUyMDAtMS4wMjYuNjIzLS42NDglMjAxLjEwOEE0LjM4JTIwNC4zOCUyMDAlMjAwJTIwMCUyMDglMjAxMi40JTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTF5YnI5IC5jYy02MXdleVtkYXRhLXR5cGU9Z2lmXSAuY2MtdWRsYWh7LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjE2JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNiUyMDE2JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMTMuNCUyMDEuMzVhMi42JTIwMi42JTIwMCUyMDAlMjAxJTIwMi42JTIwMi42djguNDAyYTIuNiUyMDIuNiUyMDAlMjAwJTIwMS0yLjYlMjAyLjZIMi42YTIuNiUyMDIuNiUyMDAlMjAwJTIwMS0yLjYtMi42VjMuOTVhMi42JTIwMi42JTIwMCUyMDAlMjAxJTIwMi42LTIuNnptMCUyMDEuMkgyLjZhMS40JTIwMS40JTIwMCUyMDAlMjAwLTEuNCUyMDEuNHY4LjQwMmExLjQlMjAxLjQlMjAwJTIwMCUyMDAlMjAxLjQlMjAxLjRoMTAuOGExLjQlMjAxLjQlMjAwJTIwMCUyMDAlMjAxLjQtMS40VjMuOTVhMS40JTIwMS40JTIwMCUyMDAlMjAwLTEuNC0xLjRNNC44MTIlMjA1LjY0N2MuNDc3JTIwMCUyMC44MTUuMDY1JTIwMS4yMDEuMjVhLjUuNSUyMDAlMjAwJTIwMS0uNDMyLjkwMmMtLjI0LS4xMTUtLjQzMi0uMTUyLS43Ny0uMTUyLS42OTMlMjAwLTEuMjAyLjYzNy0xLjIwMiUyMDEuNDk4JTIwMCUyMC44NjIuNTElMjAxLjUlMjAxLjIwMyUyMDEuNS4zNDMlMjAwJTIwLjYzMy0uMTQzLjc4NC0uNGwuMDA1LS4wMTJ2LS41ODdoLS4zYS41LjUlMjAwJTIwMCUyMDEtLjQ5NS0uNDI2TDQuOCUyMDguMTQ3YS41LjUlMjAwJTIwMCUyMDElMjAuNDI2LS40OTVsLjA3NC0uMDA1aC44MDFhLjUuNSUyMDAlMjAwJTIwMSUyMC40OTUuNDI2bC4wMDUuMDc0djEuMjM4bC0uMDA2LjA0NC0uMDE3LjA3Mi0uMDE2LjA0NGMtLjMwMS43MTItLjk5MyUyMDEuMS0xLjc1JTIwMS4xLTEuMzAxJTIwMC0yLjIwMy0xLjEzLTIuMjAzLTIuNXMuOTAyLTIuNDk4JTIwMi4yMDMtMi40OThtMy42OTEuMDk4YS41LjUlMjAwJTIwMCUyMDElMjAuNDk1LjQyNmwuMDA1LjA3NHYzLjgxYS41LjUlMjAwJTIwMCUyMDEtLjk5NC4wNzNsLS4wMDYtLjA3NHYtMy44MWEuNS41JTIwMCUyMDAlMjAxJTIwLjUtLjVtMi4zOTclMjAwJTIwMS41OTguMDA1YS41LjUlMjAwJTIwMCUyMDElMjAuMDcuOTk1bC0uMDc0LjAwNS0xLjA5Ni0uMDA0djEuNDAzaC44OThhLjUuNSUyMDAlMjAwJTIwMSUyMC40OTUuNDI3bC4wMDUuMDc0YS41LjUlMjAwJTIwMCUyMDEtLjQyNi40OTRsLS4wNzQuMDA2aC0uODk4di44OTJhLjUuNSUyMDAlMjAwJTIwMS0uNDI2LjQ5NGwtLjA3NC4wMDZhLjUuNSUyMDAlMjAwJTIwMS0uNDk0LS40MjdsLS4wMDYtLjA3M1Y2LjI0M2EuNS41JTIwMCUyMDAlMjAxJTIwLjQyOC0uNDkzeiUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7aGVpZ2h0OjE1cHg7d2lkdGg6MTVweCFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE5MmowIC5jYy0xeWJyOSAuY2MtNjF3ZXk6bm90KC5jYy02MXdleS0tYWN0aXZlKXtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1ibGFjay1ub3JtYWwpKSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWwpKSFpbXBvcnRhbnQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4xcyBsaW5lYXIhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE5MmowIC5jYy0xeWJyOSAuY2MtNjF3ZXk6bm90KC5jYy02MXdleS0tYWN0aXZlKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktdWx0cmEtbGlnaHQpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTF5YnI5IC5jYy02MXdleTpub3QoLmNjLTYxd2V5LS1hY3RpdmUpOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOmNvbG9yLW1peChpbiBzcmdiLCByZ2JhKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS11bHRyYS1saWdodCksIDEpIDk4JSwgcmdiYSh2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWJsYWNrLW5vcm1hbCksIDEpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkyajAgLmNjLTF5YnI5IC5jYy02MXdleS0tYWN0aXZle2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS1yZXZlcnNlKSkhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTFuM3cyey1tb3otY29sdW1uLWdhcDoxMnB4IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O2NvbHVtbi1nYXA6MTJweCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1hb3ByZnt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtYW9wcmYgLmNjLTY2ZWdrIC5jYy0xZWllNHtsaW5lLWhlaWdodDoxOHB4O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS11bHRyYS1saWdodCkpIWltcG9ydGFudDtsZXR0ZXItc3BhY2luZzouMTVweCFpbXBvcnRhbnQ7Ym94LXNpemluZzpib3JkZXItYm94IWltcG9ydGFudDtib3JkZXI6MS41cHggc29saWQgIzAwMDAhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTJweCFpbXBvcnRhbnQ7b3V0bGluZTowIWltcG9ydGFudDt3aWR0aDoxMDAlIWltcG9ydGFudDttYXgtd2lkdGg6MzIwcHghaW1wb3J0YW50O21hcmdpbjoxOHB4IGF1dG8haW1wb3J0YW50O3BhZGRpbmctYmxvY2s6MTNweCFpbXBvcnRhbnQ7cGFkZGluZy1pbmxpbmU6MTVweCA2cHghaW1wb3J0YW50O2ZvbnQtc2l6ZToxMnB4IWltcG9ydGFudDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMXMgZWFzZS1pbi1vdXQsYm94LXNoYWRvdyAuMXMgZWFzZS1pbi1vdXQhaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWFvcHJmIC5jYy02NmVnayAuY2MtMWVpZTQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS01MDApKSFpbXBvcnRhbnQ7Ym94LXNoYWRvdzowIDAgMCAzcHggY29sb3ItbWl4KGluIHNyZ2IsIHJnYmEodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtNTAwKSwgMSkgMTUlLCByZ2JhKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSwgMSkpLCAwIDJweCAzcHggMCByZ2IodmFyKC0tY3Jpc3AtY29sb3Itc2hhZG93LW5vcm1hbCksIC4wMikhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWFvcHJmIC5jYy02NmVnayAuY2MtMXAwZG57bGluZS1oZWlnaHQ6MTdweDtjb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS1yZWQtbm9ybWFsKSkhaW1wb3J0YW50O21hcmdpbi10b3A6LThweCFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbToxOHB4IWltcG9ydGFudDtmb250LXNpemU6MTAuOHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1xMTNjYSAuY2MtZjRwcGMgLmNjLWRuMDhkLC5jcmlzcC1jbGllbnQgLmNjLXExM2NhIC5jYy1mNHBwYyAuY2MtczJnZXh7bGluZS1oZWlnaHQ6MThweDtmb250LXNpemU6MTIuOHB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1xMTNjYSAuY2MtZjRwcGMgLmNjLWRuMDhke2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10ZXh0LWdyZXktbm9ybWFsKSkhaW1wb3J0YW50Oy1tb3otY29sdW1uLWdhcDo0cHghaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnQ7Y29sdW1uLWdhcDo0cHghaW1wb3J0YW50O21hcmdpbi10b3A6MTFweCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1xMTNjYSAuY2MtZjRwcGMgLmNjLWRuMDhkOmJlZm9yZXtoZWlnaHQ6MThweDtjb250ZW50OiIiIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLWdyZXktbm9ybWFsKSkhaW1wb3J0YW50O2ZsZXg6bm9uZSFpbXBvcnRhbnQ7d2lkdGg6MThweCFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTotMnB4IWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7bWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50O21hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7bWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1xMTNjYSAuY2MtZjRwcGMgLmNjLWRuMDhkW2RhdGEtdHlwZV06YmVmb3Jle2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtcTEzY2EgLmNjLWY0cHBjIC5jYy1kbjA4ZFtkYXRhLXR5cGU9ZW1haWxdOmJlZm9yZXstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMTglMjIlMjBoZWlnaHQlM0QlMjIxOCUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE4JTIwMTglMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0zLjUyNyUyMDMuNmExLjcyNyUyMDEuNzI3JTIwMCUyMDAlMjAwLTEuNzI0JTIwMS44SDEuOHY3LjJjMCUyMC45OTMuODA3JTIwMS44JTIwMS44JTIwMS44aDEwLjhjLjk5MyUyMDAlMjAxLjgtLjgwNyUyMDEuOC0xLjhWNS40aC0uMDAzbC4wMDMtLjA3M2MwLS45NTQtLjc3My0xLjcyNy0xLjcyNy0xLjcyN3pNMTQuODUlMjA3LjIwOFYxMi42YS40NS40NSUyMDAlMjAwJTIwMS0uNDUuNDVIMy42YS40NS40NSUyMDAlMjAwJTIwMS0uNDUtLjQ1VjcuMjA4bDQuMzU0JTIwMy4zMDJhMi40NyUyMDIuNDclMjAwJTIwMCUyMDAlMjAyLjk5MiUyMDB6TTMuMTUlMjA1LjMyN2MwLS4yMDguMTY5LS4zNzcuMzc3LS4zNzdoMTAuOTQ2YS4zNzcuMzc3JTIwMCUyMDAlMjAxJTIwLjIyOC42NzhMOS42OCUyMDkuNDM2YTEuMTMlMjAxLjEzJTIwMCUyMDAlMjAxLTEuMzYyJTIwMEwzLjMlMjA1LjYyOGEuMzguMzglMjAwJTIwMCUyMDEtLjE0OS0uMzAxJTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtcTEzY2EgLmNjLWY0cHBjIC5jYy1kbjA4ZFtkYXRhLXR5cGU9cGhvbmVdOmJlZm9yZXstLW1hc2staW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMTglMjIlMjBoZWlnaHQlM0QlMjIxOCUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE4JTIwMTglMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBzdHJva2UlM0QlMjIlMjMwMDAlMjIlMjBzdHJva2UtbGluZWNhcCUzRCUyMnJvdW5kJTIyJTIwc3Ryb2tlLWxpbmVqb2luJTNEJTIycm91bmQlMjIlMjBzdHJva2Utd2lkdGglM0QlMjIxLjI1JTIyJTIwZCUzRCUyMm0xNC4wMjclMjAxNC4yMjIuNjQzLS42NDRjLjQ0LS40NC40NC0xLjE1MiUyMDAtMS41OTFsLTEuNDM4LTEuNDM4YTEuNSUyMDEuNSUyMDAlMjAwJTIwMC0yLjEyJTIwMGwtMS4xMjglMjAxLjEyN2E2LjIzJTIwNi4yMyUyMDAlMjAwJTIwMS0zLjY2LTMuNjZMNy40NSUyMDYuODlhMS41JTIwMS41JTIwMCUyMDAlMjAwJTIwMC0yLjEyMUw2LjAxMyUyMDMuMzNhMS4xMjUlMjAxLjEyNSUyMDAlMjAwJTIwMC0xLjU5MSUyMDBsLS42NDQuNjQzQTIuNjYlMjAyLjY2JTIwMCUyMDAlMjAwJTIwMyUyMDUuODUlMjA5LjE0MyUyMDkuMTQzJTIwMCUyMDAlMjAwJTIwMTIuMTUlMjAxNWMuNzA0JTIwMCUyMDEuMzc5LS4yOCUyMDEuODc3LS43NzglMjIlMkYlM0UlM0MlMkZzdmclM0UpOy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDttYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1xMTNjYSAuY2MtZjRwcGMgLmNjLXMyZ2V4e2NvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXJlZC1ub3JtYWwpKSFpbXBvcnRhbnQ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O21hcmdpbi10b3A6MjBweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtcTEzY2EgLmNjLWY0cHBjIC5jYy0xcWtxZXt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7bWFyZ2luOjI4cHggYXV0byFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtcTEzY2EgLmNjLWY0cHBjIC5jYy0xcWtxZSAuY2MtY3RieWd7LW1vei1jb2x1bW4tZ2FwOjZweCFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnQ7Y29sdW1uLWdhcDo2cHghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtcTEzY2EgLmNjLWY0cHBjIC5jYy0xcWtxZSAuY2MtY3RieWcgLmNjLTFtcG8ye2hlaWdodDo1NHB4O2xpbmUtaGVpZ2h0OjM2cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFja2dyb3VuZC11bHRyYS1saWdodCkpIWltcG9ydGFudDt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7YXBwZWFyYW5jZTp0ZXh0ZmllbGQhaW1wb3J0YW50O2JvcmRlci1zdHlsZTpzb2xpZCFpbXBvcnRhbnQ7Ym9yZGVyLXdpZHRoOjEuNXB4IWltcG9ydGFudDtib3JkZXItY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2UtZ3JleS1saWdodCkpIWltcG9ydGFudDtib3gtc2l6aW5nOmJvcmRlci1ib3ghaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTJweCFpbXBvcnRhbnQ7b3V0bGluZTowIWltcG9ydGFudDtmbGV4OjEhaW1wb3J0YW50O3dpZHRoOjEwMCUhaW1wb3J0YW50O21pbi13aWR0aDowIWltcG9ydGFudDttYXgtd2lkdGg6NTBweCFpbXBvcnRhbnQ7bWFyZ2luOjAhaW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnQ7Zm9udC1zaXplOjI1LjZweCFpbXBvcnRhbnQ7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjFzIGVhc2UtaW4tb3V0LGJveC1zaGFkb3cgLjFzIGVhc2UtaW4tb3V0IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1xMTNjYSAuY2MtZjRwcGMgLmNjLTFxa3FlIC5jYy1jdGJ5ZyAuY2MtMW1wbzI6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b257YXBwZWFyYW5jZTpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1xMTNjYSAuY2MtZjRwcGMgLmNjLTFxa3FlIC5jYy1jdGJ5ZyAuY2MtMW1wbzI6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b257YXBwZWFyYW5jZTpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1xMTNjYSAuY2MtZjRwcGMgLmNjLTFxa3FlIC5jYy1jdGJ5ZyAuY2MtMW1wbzI6Zm9jdXN7Ym9yZGVyLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci10aGVtZS01MDApKSFpbXBvcnRhbnQ7Ym94LXNoYWRvdzowIDAgMCAzcHggY29sb3ItbWl4KGluIHNyZ2IsIHJnYmEodmFyKC0tY3Jpc3AtY29sb3ItdGhlbWUtNTAwKSwgMSkgMTUlLCByZ2JhKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSwgMSkpLCAwIDJweCAzcHggMCByZ2IodmFyKC0tY3Jpc3AtY29sb3Itc2hhZG93LW5vcm1hbCksIC4wMikhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLXExM2NhIC5jYy1mNHBwYyAuY2MtMXFrcWUgLmNjLWN0YnlnIC5jYy0xbXBvMi0tZnVsbHtsZXR0ZXItc3BhY2luZzo2cHghaW1wb3J0YW50O21heC13aWR0aDoyMDBweCFpbXBvcnRhbnQ7cGFkZGluZy1pbmxpbmU6MTJweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkwaXd7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3ItYmFzZS13aGl0ZS1ub3JtYWwpLCAuOCkhaW1wb3J0YW50O3otaW5kZXg6MTEhaW1wb3J0YW50Oy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoNDBweCkhaW1wb3J0YW50O2JhY2tkcm9wLWZpbHRlcjpibHVyKDQwcHgpIWltcG9ydGFudDtmbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50O3dpZHRoOjEwMCUhaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O2luc2V0OjAhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE5MGl3IC5jYy0xbG9hdywuY3Jpc3AtY2xpZW50IC5jYy0xOTBpdyAuY2MtMnhiM2l7dmlzaWJpbGl0eTpoaWRkZW4haW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE5MGl3IC5jYy0xbG9hd3ttYXJnaW4tdG9wOmNhbGMoMHB4ICsgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC10b3ApKSFpbXBvcnRhbnQ7bWFyZ2luLWlubGluZTpjYWxjKDBweCArIHZhcigtLWNyaXNwLWVudi1kZXZpY2UtaW5zZXQtbGVmdCkpIGNhbGMoMHB4ICsgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1yaWdodCkpIWltcG9ydGFudDtmbGV4OjEhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLTE5MGl3IC5jYy0yeGIzaXtoZWlnaHQ6NjBweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1iYXNlLXdoaXRlLW5vcm1hbCkpIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTpjYWxjKDBweCArIHZhcigtLWNyaXNwLWVudi1kZXZpY2UtaW5zZXQtYm90dG9tKSkhaW1wb3J0YW50O3BhZGRpbmctaW5saW5lOmNhbGMoMHB4ICsgdmFyKC0tY3Jpc3AtZW52LWRldmljZS1pbnNldC1sZWZ0KSkgY2FsYygwcHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LXJpZ2h0KSkhaW1wb3J0YW50O3otaW5kZXg6MSFpbXBvcnRhbnQ7Ym94LXNoYWRvdzowIC0xcHggM3B4IDAgcmdiKHZhcigtLWNyaXNwLWNvbG9yLXNoYWRvdy1ub3JtYWwpLCAuMDQpIWltcG9ydGFudDtmbGV4Om5vbmUhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtpbnNldC1pbmxpbmU6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkwaXcgLmNjLXR0NDE4e3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7dG9wOjUwJSFpbXBvcnRhbnQ7bGVmdDo1MCUhaW1wb3J0YW50O3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtMTkwaXcgLmNjLXR0NDE4IC5jYy1za2xyMntoZWlnaHQ6MjJweDthbmltYXRpb24tZHVyYXRpb246MS41cztib3JkZXItd2lkdGg6MnB4IWltcG9ydGFudDt3aWR0aDoyMnB4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xOTBpdy0tbG9hZGVkey13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOm5vbmUhaW1wb3J0YW50O2JhY2tkcm9wLWZpbHRlcjpub25lIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy0xOTBpdy0tbG9hZGVkIC5jYy0xbG9hdywuY3Jpc3AtY2xpZW50IC5jYy0xOTBpdy0tbG9hZGVkIC5jYy0yeGIzaXt2aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWs2MDJ1e2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSkhaW1wb3J0YW50O3otaW5kZXg6MTAhaW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7aW5zZXQ6MCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtazYwMnUgLmNjLThtdDRle2hlaWdodDo1MHB4O3BhZGRpbmctYmxvY2s6Y2FsYygwcHggKyB2YXIoLS1jcmlzcC1lbnYtZGV2aWNlLWluc2V0LXRvcCkpIDAhaW1wb3J0YW50O3BhZGRpbmctaW5saW5lOmNhbGMoMThweCArIHZhcigtLWNyaXNwLWVudi1kZXZpY2UtaW5zZXQtbGVmdCkpIGNhbGMoMThweCArIHZhcigtLWNyaXNwLWVudi1kZXZpY2UtaW5zZXQtcmlnaHQpKSFpbXBvcnRhbnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudDtmbGV4Om5vbmUhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rNjAydSAuY2MtOG10NGUgLmNjLXg0dzM4e2ZsZXg6MSFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudDt3aWR0aDoxMDAlIWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWs2MDJ1IC5jYy04bXQ0ZSAuY2MteDR3MzggLmNjLTEyeDVje2hlaWdodDozMHB4O2N1cnNvcjpwb2ludGVyIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjExcHghaW1wb3J0YW50O3dpZHRoOjMwcHghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtazYwMnUgLmNjLThtdDRlIC5jYy14NHczOCAuY2MtMTJ4NWMgLmNjLXd3YXA4ey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjI3JTIyJTIwaGVpZ2h0JTNEJTIyMTAlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA3JTIwMTAlMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0yLjU0NiUyMDUlMjA1Ljk0JTIwOC4zOTNhLjk0Mi45NDIlMjAwJTIwMCUyMDEtMS4zMzIlMjAxLjMzMUwuNTElMjA1LjYyOGEuODg3Ljg4NyUyMDAlMjAwJTIwMSUyMDAtMS4yNTZMNC42MDcuMjc2YS45NDIuOTQyJTIwMCUyMDAlMjAxJTIwMS4zMzIlMjAxLjMzMXolMjIlMkYlM0UlM0MlMkZzdmclM0UpO2hlaWdodDoxMHB4O2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLXJldmVyc2UpKSFpbXBvcnRhbnQ7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50O3dpZHRoOjdweCFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hcmdpbjoxMHB4IGF1dG8gMCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50Oy13ZWJraXQtbWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50O21hc2stcG9zaXRpb246NTAlIWltcG9ydGFudDstd2Via2l0LW1hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDttYXNrLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7LXdlYmtpdC1tYXNrLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50O21hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtazYwMnUgLmNjLThtdDRlIC5jYy14NHczOCAuY2MtNHBzZ2l7bGluZS1oZWlnaHQ6MjBweDtsZXR0ZXItc3BhY2luZzouMXB4IWltcG9ydGFudDt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7dGV4dC1vdmVyZmxvdzplbGxpcHNpcyFpbXBvcnRhbnQ7d2hpdGUtc3BhY2U6bm93cmFwIWltcG9ydGFudDt6LWluZGV4OjEhaW1wb3J0YW50O2ZsZXg6MSFpbXBvcnRhbnQ7bWFyZ2luLXRvcDotMnB4IWltcG9ydGFudDtwYWRkaW5nLWlubGluZTo4cHggMzBweCFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rNjAydSAuY2MtOG10NGUgLmNjLXg0dzM4IC5jYy00cHNnaSwuY3Jpc3AtY2xpZW50IC5jYy1rNjAydSAuY2MtOG10NGUgLmNjLXg0dzM4IC5jYy00cHNnaSAuY2MtMWdldWR7Zm9udC1zaXplOjE0LjRweCFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtazYwMnUgLmNjLXRra2w1e3Zpc2liaWxpdHk6aGlkZGVuIWltcG9ydGFudDtmbGV4OjEhaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWs2MDJ1IC5jYy0xODliant0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O3RvcDpjYWxjKDUwJSArIDI1cHgpIWltcG9ydGFudDtsZWZ0OjUwJSFpbXBvcnRhbnQ7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpIWltcG9ydGFudH0uY3Jpc3AtY2xpZW50IC5jYy1rNjAydSAuY2MtMTg5YmogLmNjLWczMzJue2hlaWdodDoyMnB4O2FuaW1hdGlvbi1kdXJhdGlvbjoxLjVzO2JvcmRlci13aWR0aDoycHghaW1wb3J0YW50O3dpZHRoOjIycHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnQgLmNjLWs2MDJ1LS1sb2FkZWQgLmNjLXRra2w1e3Zpc2liaWxpdHk6dmlzaWJsZSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtazYwMnUtLWxheW91dC1jb2xvcml6ZWQgLmNjLThtdDRlIC5jYy14NHczOCAuY2MtNHBzZ2l7Y29sb3I6cmdiKHZhcigtLWNyaXNwLWNvbG9yLXRoZW1lLXJldmVyc2UpKSFpbXBvcnRhbnR9LmNyaXNwLWNsaWVudCAuY2MtazYwMnU6bm90KC5jYy1rNjAydS0tbGF5b3V0LWNvbG9yaXplZCkgLmNjLThtdDRlOmFmdGVye2hlaWdodDoxcHg7Y29udGVudDoiIiFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY3Jpc3AtY29sb3Itc2VwYXJhdG9yLW5vcm1hbCkpIWltcG9ydGFudDt3aWR0aDoxMDAlIWltcG9ydGFudDttYXJnaW4tdG9wOi0xcHghaW1wb3J0YW50fS5jcmlzcC1jbGllbnRbZGlyPXJ0bF0gLmNjLWs2MDJ1IC5jYy04bXQ0ZSAuY2MtMTJ4NWMgLmNjLXd3YXA4e3RyYW5zZm9ybTpzY2FsZVgoLTEpIWltcG9ydGFudH0uY2MtcWV3emcuY2MtMWdpcjA6YmVmb3Jle2N1cnNvcjpwb2ludGVyIWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjQyJTIyJTIwaGVpZ2h0JTNEJTIyNDIlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA0MiUyMDQyJTIyJTNFJTNDZyUyMGZpbGwlM0QlMjJub25lJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODElMjAxJTI5JTIyJTNFJTNDY2lyY2xlJTIwY3glM0QlMjIyMCUyMiUyMGN5JTNEJTIyMjAlMjIlMjByJTNEJTIyMjAlMjIlMjBmaWxsJTNEJTIyJTIzMDAwJTIyJTIwZmlsbC1vcGFjaXR5JTNEJTIyLjEwNCUyMiUyMHN0cm9rZSUzRCUyMiUyM2ZmZiUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjIlMjIlMkYlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMGQlM0QlMjJNMjcuODYlMjAyMS4zNTUlMjAxNi4xNjclMjAyOC44N2ExLjYlMjAxLjYlMjAwJTIwMCUyMDEtMi40NjUtMS4zNDZWMTIuNDkzYTEuNiUyMDEuNiUyMDAlMjAwJTIwMSUyMDIuNDY1LTEuMzQ2bDExLjY5MSUyMDcuNTE2YTEuNiUyMDEuNiUyMDAlMjAwJTIwMSUyMDAlMjAyLjY5MiUyMiUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0UpIWltcG9ydGFudDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbiFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5jYy01NWc2ZCAuY2Mtb3lldmZ7LXdlYmtpdC1tYXNrLXBvc2l0aW9uOjUwJSFpbXBvcnRhbnQ7bWFzay1wb3NpdGlvbjo1MCUhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1zaXplOmNvbnRhaW4haW1wb3J0YW50O21hc2stc2l6ZTpjb250YWluIWltcG9ydGFudDstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7bWFzay1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudH0uY2MtNTVnNmQtLWhvbWUgLmNjLW95ZXZmey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxOCUyMiUyMGhlaWdodCUzRCUyMjE4JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTglMjAxOCUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTkuNjEzJTIwMi4wNDJhLjkuOSUyMDAlMjAwJTIwMC0xLjIyMyUyMDBsLTYuMyUyMDUuODVBLjg5Ny44OTclMjAwJTIwMCUyMDAlMjAyLjclMjA5LjQ1aC40NXY0Ljk1YzAlMjAuOTkzLjgwNyUyMDEuOCUyMDEuOCUyMDEuOGg4LjFjLjk5MyUyMDAlMjAxLjgtLjgwNyUyMDEuOC0xLjhWOS40NWguNDVhLjkwMS45MDElMjAwJTIwMCUyMDAlMjAuNjEzLTEuNTU4ek04LjU1JTIwMTAuOGguOWMuNzQ1JTIwMCUyMDEuMzUuNjA1JTIwMS4zNSUyMDEuMzV2Mi43SDcuMnYtMi43YzAtLjc0NS42MDUtMS4zNSUyMDEuMzUtMS4zNSUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50fS5jYy01NWc2ZC0tY2hhdCAuY2Mtb3lldmZ7LS1tYXNrLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjE4JTIyJTIwaGVpZ2h0JTNEJTIyMTglMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxOCUyMDE4JTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNMS44JTIwMTEuN1Y1LjRhMi43JTIwMi43JTIwMCUyMDAlMjAxJTIwMi43LTIuN2g5YTIuNyUyMDIuNyUyMDAlMjAwJTIwMSUyMDIuNyUyMDIuN3Y2LjNhMi43JTIwMi43JTIwMCUyMDAlMjAxLTIuNyUyMDIuN2gtMy4zNzVhLjY4LjY4JTIwMCUyMDAlMjAwLS40MDUuMTM1bC0zLjI0JTIwMi40M2EuNjczLjY3MyUyMDAlMjAwJTIwMS0xLjA4LS41NFYxNC40aC0uOWEyLjclMjAyLjclMjAwJTIwMCUyMDEtMi43LTIuNyUyMiUyRiUzRSUzQyUyRnN2ZyUzRSk7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50fS5jYy01NWc2ZC0taGVscGRlc2sgLmNjLW95ZXZmey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxOCUyMiUyMGhlaWdodCUzRCUyMjE4JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTglMjAxOCUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTUlMjAxN2gxMGEuOTk5Ljk5OSUyMDAlMjAxJTIwMCUyMDAtMnYtMi4wODRjLjU4MS0uMjA3JTIwMS0uNzYzJTIwMS0xLjQxNnYtOUExLjUlMjAxLjUlMjAwJTIwMCUyMDAlMjAxNC41JTIwMUgxM3Y1LjI5NGEuNzA2LjcwNiUyMDAlMjAwJTIwMS0xLjIwNi41TDEwLjUlMjA1LjUlMjA5LjIwNiUyMDYuNzk0QS43MDYuNzA2JTIwMCUyMDAlMjAxJTIwOCUyMDYuMjk0VjFINWEzJTIwMyUyMDAlMjAwJTIwMC0zJTIwM3YxMGEzJTIwMyUyMDAlMjAwJTIwMCUyMDMlMjAzbS0xLTNhMSUyMDElMjAwJTIwMCUyMDElMjAxLTFoOHYySDVhMSUyMDElMjAwJTIwMCUyMDEtMS0xJTIyJTJGJTNFJTNDJTJGc3ZnJTNFKTstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnQ7bWFzay1pbWFnZTp2YXIoLS1tYXNrLWltYWdlKSFpbXBvcnRhbnR9LmNjLTU1ZzZkLS1zZWFyY2ggLmNjLW95ZXZmey0tbWFzay1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIxNiUyMiUyMGhlaWdodCUzRCUyMjE2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTYlMjAxNiUyMiUzRSUzQ2NsaXBQYXRoJTIwaWQlM0QlMjJhJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNNS40MTclMjAwYTUuNDE2JTIwNS40MTYlMjAwJTIwMCUyMDElMjA1LjQxNiUyMDUuNDE3JTIwNS40JTIwNS40JTIwMCUyMDAlMjAxLTEuMzA4JTIwMy41MjVsLjIzMy4yMjVoLjY1OWw0LjE1OCUyMDQuMTY2LTEuMjQyJTIwMS4yNDItNC4xNjYtNC4xNTh2LS42NTlsLS4yMjUtLjIzM2E1LjQlMjA1LjQlMjAwJTIwMCUyMDEtMy41MjUlMjAxLjMwOEE1LjQxNyUyMDUuNDE3JTIwMCUyMDElMjAxJTIwNS40MTclMjAwbTAlMjAxLjY2N2MtMi4wNzUlMjAwLTMuNzUlMjAxLjY3NS0zLjc1JTIwMy43NXMxLjY3NSUyMDMuNzUlMjAzLjc1JTIwMy43NSUyMDMuNzUtMS42NzUlMjAzLjc1LTMuNzUtMS42NzUtMy43NS0zLjc1LTMuNzUlMjIlMkYlM0UlM0MlMkZjbGlwUGF0aCUzRSUzQ2clMjBjbGlwLXBhdGglM0QlMjJ1cmwlMjglMjNhJTI5JTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MSUyMDElMjklMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0wJTIwMGgxNC41NzV2MTQuNTc1SDB6JTIyJTJGJTNFJTNDJTJGZyUzRSUzQyUyRnN2ZyUzRSk7LXdlYmtpdC1tYXNrLWltYWdlOnZhcigtLW1hc2staW1hZ2UpIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50O21hc2staW1hZ2U6dmFyKC0tbWFzay1pbWFnZSkhaW1wb3J0YW50fS5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLXc3djE4e2JhY2tncm91bmQ6cmdiKHZhcigtLWNyaXNwLWNvbG9yLWJhc2Utd2hpdGUtbm9ybWFsKSkhaW1wb3J0YW50O3otaW5kZXg6Y2FsYyh2YXIoLS1jcmlzcC1jdXN0b21pemF0aW9uLWNvbnRhaW5lci1pbmRleCkgKyAxKSFpbXBvcnRhbnQ7Ym94LXNoYWRvdzowIDEwcHggMnB4IDAgcmdiKHZhcigtLWNyaXNwLWNvbG9yLXNoYWRvdy1ub3JtYWwpLCAuMDIpLCAwIDRweCAyMHB4IDAgcmdiKHZhcigtLWNyaXNwLWNvbG9yLXNoYWRvdy1ub3JtYWwpLCAuMTIpIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjE2cHghaW1wb3J0YW50O3RyYW5zaXRpb24tcHJvcGVydHk6d2lkdGgsaGVpZ2h0IWltcG9ydGFudDt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXMhaW1wb3J0YW50O3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW4tb3V0IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50O2JvdHRvbTo5MHB4IWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50fS5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLXc3djE4W2RhdGEtdmlzaWJsZT10cnVlXXt2aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50fS5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLXc3djE4W2RhdGEtdmlzaWJsZT1mYWxzZV17dmlzaWJpbGl0eTpoaWRkZW4haW1wb3J0YW50fS5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLXc3djE4W2RhdGEtYW5pbWF0ZS1tYXhpbWl6ZT10cnVlXXthbmltYXRpb24tbmFtZTpjYy0xcnBiNTthbmltYXRpb24tZHVyYXRpb246LjFzO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbi1vdXQ7YW5pbWF0aW9uLWZpbGwtbW9kZTpib3RofS5jYy0xNjV3aCAuY2MtbGs0MnUgLmNjLXc3djE4W2RhdGEtYW5pbWF0ZS1taW5pbWl6ZT10cnVlXXthbmltYXRpb24tbmFtZTpjYy0xbm52ZTthbmltYXRpb24tZHVyYXRpb246LjE1czthbmltYXRpb24tZmlsbC1tb2RlOmJvdGh9LmNjLTE2NXdoIC5jYy1sazQydSAuY2Mtdzd2MTggLmNjLTFvYnBie2hlaWdodDoxMDAlO2JvcmRlcjowIWltcG9ydGFudDt3aWR0aDoxMDAlIWltcG9ydGFudH0uY2MtMTY1d2hbZGF0YS1mdWxsLXZpZXc9ZmFsc2VdIC5jYy1sazQydSAuY2Mtdzd2MTh7bWFyZ2luLWJvdHRvbTp2YXIoLS1jcmlzcC1jdXN0b21pemF0aW9uLWJ1dHRvbi12ZXJ0aWNhbCkhaW1wb3J0YW50fS5jYy0xNjV3aFtkYXRhLWZ1bGwtdmlldz1mYWxzZV1bZGF0YS1wb3NpdGlvbi1yZXZlcnNlPWZhbHNlXSAuY2MtbGs0MnUgLmNjLXc3djE4e21hcmdpbi1yaWdodDp2YXIoLS1jcmlzcC1jdXN0b21pemF0aW9uLWJ1dHRvbi1ob3Jpem9udGFsKSFpbXBvcnRhbnQ7cmlnaHQ6MjRweCFpbXBvcnRhbnR9LmNjLTE2NXdoW2RhdGEtZnVsbC12aWV3PWZhbHNlXVtkYXRhLXBvc2l0aW9uLXJldmVyc2U9dHJ1ZV0gLmNjLWxrNDJ1IC5jYy13N3YxOHttYXJnaW4tbGVmdDp2YXIoLS1jcmlzcC1jdXN0b21pemF0aW9uLWJ1dHRvbi1ob3Jpem9udGFsKSFpbXBvcnRhbnQ7bGVmdDoyNHB4IWltcG9ydGFudH0uY2MtMTY1d2hbZGF0YS1mdWxsLXZpZXc9dHJ1ZV0gLmNjLWxrNDJ1IC5jYy13N3YxOHtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlIWltcG9ydGFudDtib3gtc2hhZG93Om5vbmUhaW1wb3J0YW50O2luc2V0LWlubGluZTowIWltcG9ydGFudDt6LWluZGV4OmNhbGModmFyKC0tY3Jpc3AtY3VzdG9taXphdGlvbi1jb250YWluZXItaW5kZXgpICsgMikhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MCFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTowIWltcG9ydGFudDttYXJnaW4tbGVmdDowIWltcG9ydGFudDt0cmFuc2l0aW9uOm5vbmUhaW1wb3J0YW50O2luc2V0OjAhaW1wb3J0YW50fUBrZXlmcmFtZXMgY2MtOHp3NXV7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01JSl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTpub25lfX1Aa2V5ZnJhbWVzIGNjLTFlMXp4ezI1JXtvcGFjaXR5OjF9NTAle29wYWNpdHk6LjF9NzUle29wYWNpdHk6MX19QGtleWZyYW1lcyBjYy1sMTRpMnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjUlKX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOm5vbmV9fUBrZXlmcmFtZXMgY2MtMWg0NGN7MCV7b3BhY2l0eToxfTUwJXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIGNjLXlnb2VhezAle3RyYW5zZm9ybTp0cmFuc2xhdGUoLTEwMHB4KX10b3t0cmFuc2Zvcm06bm9uZX19QGtleWZyYW1lcyBjYy11aDg4aHswJXt0cmFuc2Zvcm06dHJhbnNsYXRlKDEwMHB4KX10b3t0cmFuc2Zvcm06bm9uZX19QGtleWZyYW1lcyBjYy1zZ252aHswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTNweCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfX1Aa2V5ZnJhbWVzIGNjLTVid2hwezUwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX03NSV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTVweCl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUBrZXlmcmFtZXMgY2MtMXN4anR7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTNweCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTpub25lfX1Aa2V5ZnJhbWVzIGNjLWx1MTBqezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlKDNweCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTpub25lfX1Aa2V5ZnJhbWVzIGNjLWNvOGM2ezAle3Zpc2liaWxpdHk6aGlkZGVuO29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xcHgpfXRve3Zpc2liaWxpdHk6dmlzaWJsZTtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUBrZXlmcmFtZXMgY2MtZHRmN3p7MCV7b3BhY2l0eToxfTUwJXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIGNjLWV3ZXViezAle29wYWNpdHk6MH0yNSV7b3BhY2l0eToxfTUwJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIGNjLTFveWJmezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg2cHgpfTUwJXtvcGFjaXR5OjF9fS5jYy0xbWg5MXtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlIWltcG9ydGFudDtwb3NpdGlvbjpyZWxhdGl2ZSFpbXBvcnRhbnR9LmNjLTFtaDkxIC5jYy0xZjUxNntoZWlnaHQ6MTAwJTtmbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50O3dpZHRoOjEwMCUhaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LmNjLTFtaDkxIC5jYy0xZjUxNiAuY2MtN21qdXl7ei1pbmRleDo1IWltcG9ydGFudH0uY2MtMW1oOTEgLmNjLTE1bmEye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnQ7ZmxleDoxIWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50O3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50fS5jYy0xbWg5MS0tbm8taGVhZGVyLXNlcGFyYXRvciAuY2MtN21qdXk6YWZ0ZXJ7dmlzaWJpbGl0eTpoaWRkZW4haW1wb3J0YW50fS5jYy0xbWg5MTpub3QoLmNjLTFtaDkxLS1sYXlvdXQtY29sb3JpemVkKSAuY2MtN21qdXk6YWZ0ZXJ7aGVpZ2h0OjFweDtjb250ZW50OiIiIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jcmlzcC1jb2xvci1zZXBhcmF0b3Itbm9ybWFsKSkhaW1wb3J0YW50O21hcmdpbi1ibG9jazowIWltcG9ydGFudDttYXJnaW4taW5saW5lOmNhbGMoMTVweCArIHZhcigtLWNyaXNwLWVudi1kZXZpY2UtaW5zZXQtbGVmdCkpIGNhbGMoMTVweCArIHZhcigtLWNyaXNwLWVudi1kZXZpY2UtaW5zZXQtcmlnaHQpKSFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9Cg=="}},"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":"client.crisp.chat/static/sounds/events/chat-message-receive.oga?23e4212","fqdn":"client.crisp.chat","domain":"crisp.chat","tld":"chat"},"ip":{"addr":"104.18.29.104","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:50.303Z","timestamp":1785127670303,"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":"crisp.chat","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 16 Jul 2026 11:05:15 GMT","end":"Wed, 14 Oct 2026 12:05:11 GMT"},"fingerprint":{"sha1":"D0:67:9D:CA:AC:98:37:F3:9A:A3:64:D4:A6:6C:90:37:A0:14:A3:60","sha256":"27:4C:88:E2:45:90:6B:BE:6C:FE:A9:F9:5B:AD:8D:7B:C1:37:71:4C:85:22:D8:16:9D:21:47:8D:16:2C:C9:DD"}}},"request":{"raw":"GET /static/sounds/events/chat-message-receive.oga?23e4212 HTTP/1.1\r\nHost: client.crisp.chat\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://buvei.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-type: audio/ogg\r\naccess-control-allow-credentials: false\r\naccess-control-allow-headers: Content-Type, Origin\r\naccess-control-allow-methods: HEAD, GET, OPTIONS\r\naccess-control-allow-origin: *\r\naccess-control-max-age: 300\r\ncache-control: public, max-age=315360000\r\ncross-origin-resource-policy: cross-origin\r\nx-content-type-options: nosniff\r\nexpires: Thu, 24 Jul 2036 04:47:50 GMT\r\nlast-modified: Tue, 21 Jul 2026 15:59:47 GMT\r\nserver: cloudflare\r\npriority: u=3,i=?0\r\nage: 34334\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\netag: W/\"6a5f9773-2b06\"\r\ncontent-encoding: br\r\ncf-ray: a21902236bcec759-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"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":11014,"size_decoded":10187,"mime_type":"audio/ogg","magic":"Ogg data, Vorbis audio, stereo, 44100 Hz, ~64000 bps","md5":"2b854d2b224d8cbd79acaf2d81b2fb64","sha1":"6431acf9c39a66f84a82c9f1ab31450417661575","sha256":"158e6f55c804592292dff060cfeb8d04d4c3c4982e42ce22d970ade99ace47c4","sha512":"bb2e6a883153e0c896649bbd20d9f31263cc4e86d99fca237d330544272a1601c8ce53dc25a452dede9a77934943f2c32480441301c4d336b811e2a8099a5eb9","ssdeep":"192:8Ag5oV9QMXcmBF5swvHL77PWkyL8AnunoJV71RLIkB3n2VgYzbKKjsZGJkFhnCE8:8FQQOF51vr7rhAnfvkktgg2nPim","tlshash":"e0328edbccf591c8fd13a43ff68e07f4b7603ec0126886ca7b991c38446049a42e55a5","first_seen":"2023-04-11T10:28:32Z","last_seen":"2026-08-03T08:16:13.67666Z","times_seen":619,"resource_available":false,"data":"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lQBAHgAAQYhSjDHGnJRSKcacc05KqRRjzjknpWSMMeeck1IyxphzzkkpHXPOOeeklIw555xzUkrnnHPOOSmllM4555yUUkoInXNOSimlc845JwAAqMABACDARpHNCUaCCg1ZCQCkAgAYHMeyNE3TPE8UNUnSNM/zPFE0TU2yNM3zPE8UTZPneZ4oiqJpqirP8zxRFEXTVFWuK4qmaZqqqqpkWRRF0TRVVXVhmqapqqrqujBNUVRV1XVdyLJpqqrryjJs2zRV1XVlGaiqqsquLAPXVVXXlWUBAOAJDgBABTasjnBSNBZYaMhKACADAIAgBCGlFEJKKYSUUggppRASAAAw4AAAEGBCGSg0ZEUAECcAACAkpYJOSiWhlFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZNSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZSSUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkkppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllAoA0I1wANB9MKEMFBqyEgBIBQAAjFGKMQipxVYhxJhzElprrUKIMecktJRiz5hzEEppLbaeMccglJJai72UzklJrbUYeyodo5JSSzH23kspJaXYYuy9p5BCji3G2HvPMaUWW6ux915jSrHVGGPvvfcYY6ux1t577zG2VmuOBQBgNjgAQCTYsDrCSdFYYKEhKwGAkAAAwhilGGPMOeecc05KyRhzzkEIIYQQSikZY8w5CCGEEEIpJWPOOQchhFBCKKVkzDnoIIRQQiillM45Bx2EEEIJpZSSMecghBBCCaWUUjrnIIQQQiilhFRK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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":"buvei.com/_next/static/chunks/lib-next-28c5d7bae9b88f4e.js","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:48.442Z","timestamp":1785127668442,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/static/chunks/lib-next-28c5d7bae9b88f4e.js HTTP/1.1\r\nHost: buvei.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://buvei.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:48 GMT\r\ncontent-type: application/javascript; charset=UTF-8\r\nserver: cloudflare\r\ncontent-security-policy: frame-ancestors 'none';\r\nx-frame-options: DENY\r\ncache-control: public, max-age=31536000, immutable\r\naccept-ranges: bytes\r\nlast-modified: Mon, 29 Jun 2026 05:34:13 GMT\r\netag: W/\"8bd2-19f11def808\"\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nage: 334919\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=trGYo4u2W0wHaXYVPj6z0CoZW%2Fb1Yv74zARpNiid%2BPVCyxYldQD9NVh0dgPhoT%2FFTiHXs%2Bzjx0ltublrD4Z%2FqitURuRXySBGWgndfkAzortb%2Fl1WidqSdpnmVA%3D%3D\"}]}\r\ncf-ray: a2190217cb4c8be6-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"]}],"data":{"size":35794,"size_decoded":10188,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (35794), with no line terminators","md5":"3cbb2057334109f537360685ecd8d05f","sha1":"eecfbae04201d62add59d77d6a9bf10ce7deb7d1","sha256":"7d5b315f8fa11a66a3192fd9a171740ee58feeafaa28a09fec8d733178418f0b","sha512":"ef8506f5b7ee64c641467ee29d5b83f687dff2991b556f6ee319076c7a90a9475c2c807a3e11960a58d8d364f230c0593423f7d57d0def74fc7dc124dc9faf59","ssdeep":"768:b0CqsZ629AJVx10shWcXt9IGjde1O3Je1K9uS7+lH5mNXqDnDKYRaIRRXzo+ug/P:bL9ABq0rjI4JiK9L50n1jUG","tlshash":"a4f20772330308074cdd1398d85259512659891e601f8e47bb5feec2b2a1f5ee1efe7a","first_seen":"2026-07-27T03:56:11.714404Z","last_seen":"2026-07-27T10:05:53.937945Z","times_seen":4,"resource_available":true,"data":"dHJ5eyFmdW5jdGlvbigpe3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sbj0obmV3IGUuRXJyb3IpLnN0YWNrO24mJihlLl9zZW50cnlEZWJ1Z0lkcz1lLl9zZW50cnlEZWJ1Z0lkc3x8e30sZS5fc2VudHJ5RGVidWdJZHNbbl09ImVmNWUzOTBkLWUxODEtNDhiNy04NTMxLTg3ODZmODk4MWQzMSIsZS5fc2VudHJ5RGVidWdJZElkZW50aWZpZXI9InNlbnRyeS1kYmlkLWVmNWUzOTBkLWUxODEtNDhiNy04NTMxLTg3ODZmODk4MWQzMSIpfSgpfWNhdGNoKGUpe30idXNlIHN0cmljdCI7KHNlbGYud2VicGFja0NodW5rX05fRT1zZWxmLndlYnBhY2tDaHVua19OX0V8fFtdKS5wdXNoKFtbOTQ5Ml0sezQxMDAzOmZ1bmN0aW9uKF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV4cG9ydHMubWF0Y2hlc01pZGRsZXdhcmU9bWF0Y2hlc01pZGRsZXdhcmUsZXhwb3J0cy5pc0xvY2FsVVJMPWlzTG9jYWxVUkwsZXhwb3J0cy5pbnRlcnBvbGF0ZUFzPWludGVycG9sYXRlQXMsZXhwb3J0cy5yZXNvbHZlSHJlZj1yZXNvbHZlSHJlZixleHBvcnRzLmNyZWF0ZUtleT1jcmVhdGVLZXksZXhwb3J0cy5kZWZhdWx0PXZvaWQgMDt2YXIgX2FzeW5jX3RvX2dlbmVyYXRvcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDYwOTMyKS5aLF9leHRlbmRzPV9fd2VicGFja19yZXF1aXJlX18oNjQ5NSkuWixfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg5MjY0OCkuWixfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkPV9fd2VicGFja19yZXF1aXJlX18oOTE1OTgpLlosX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2g9X193ZWJwYWNrX3JlcXVpcmVfXyg1MjcwMCksX3JlbW92ZVRyYWlsaW5nU2xhc2g9X193ZWJwYWNrX3JlcXVpcmVfXyg0MDAxMiksX3JvdXRlTG9hZGVyPV9fd2VicGFja19yZXF1aXJlX18oODI0OTcpLF9zY3JpcHQ9X193ZWJwYWNrX3JlcXVpcmVfXyg2MzU3MyksX2lzRXJyb3I9X2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChfX3dlYnBhY2tfcmVxdWlyZV9fKDgwNjc2KSksX2Rlbm9ybWFsaXplUGFnZVBhdGg9X193ZWJwYWNrX3JlcXVpcmVfXyg2MzAxKSxfbm9ybWFsaXplTG9jYWxlUGF0aD1fX3dlYnBhY2tfcmVxdWlyZV9fKDI0NzY5KSxfbWl0dD1faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXyg4NTUwKSksX3V0aWxzPV9fd2VicGFja19yZXF1aXJlX18oNjcwKSxfaXNEeW5hbWljPV9fd2VicGFja19yZXF1aXJlX18oODYyMzgpLF9wYXJzZVJlbGF0aXZlVXJsPV9fd2VicGFja19yZXF1aXJlX18oMjI4NjQpLF9xdWVyeXN0cmluZz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk0OTE5KSxfcmVzb2x2ZVJld3JpdGVzPV9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChfX3dlYnBhY2tfcmVxdWlyZV9fKDI3OTgwKSksX3JvdXRlTWF0Y2hlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDEzMTU2KSxfcm91dGVSZWdleD1fX3dlYnBhY2tfcmVxdWlyZV9fKDU0OTAzKSxfZm9ybWF0VXJsPV9fd2VicGFja19yZXF1aXJlX18oNjc3OTUpLF9kZXRlY3REb21haW5Mb2NhbGU9X193ZWJwYWNrX3JlcXVpcmVfXyg4NDY0MyksX3BhcnNlUGF0aD1fX3dlYnBhY2tfcmVxdWlyZV9fKDI2NzI3KSxfYWRkTG9jYWxlPV9fd2VicGFja19yZXF1aXJlX18oNTQ0NjUpLF9yZW1vdmVMb2NhbGU9X193ZWJwYWNrX3JlcXVpcmVfXyg2Njg3NiksX3JlbW92ZUJhc2VQYXRoPV9fd2VicGFja19yZXF1aXJlX18oODI4MTMpLF9hZGRCYXNlUGF0aD1fX3dlYnBhY2tfcmVxdWlyZV9fKDMzNDY4KSxfaGFzQmFzZVBhdGg9X193ZWJwYWNrX3JlcXVpcmVfXygxMDkyOCksX2dldE5leHRQYXRobmFtZUluZm89X193ZWJwYWNrX3JlcXVpcmVfXygxODc1NiksX2Zvcm1hdE5leHRQYXRobmFtZUluZm89X193ZWJwYWNrX3JlcXVpcmVfXyg1NzQyOSksX2NvbXBhcmVTdGF0ZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg3OTAwMiksX2lzQm90PV9fd2VicGFja19yZXF1aXJlX18oMjE3NTQpO2Z1bmN0aW9uIGJ1aWxkQ2FuY2VsbGF0aW9uRXJyb3IoKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihFcnJvcigiUm91dGUgQ2FuY2VsbGVkIikse2NhbmNlbGxlZDohMH0pfWZ1bmN0aW9uIG1hdGNoZXNNaWRkbGV3YXJlKG9wdGlvbnMpe3JldHVybiBfbWF0Y2hlc01pZGRsZXdhcmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIF9tYXRjaGVzTWlkZGxld2FyZSgpe3JldHVybihfbWF0Y2hlc01pZGRsZXdhcmU9X2FzeW5jX3RvX2dlbmVyYXRvcihmdW5jdGlvbioob3B0aW9ucyl7bGV0IG1hdGNoZXJzPXlpZWxkIFByb21pc2UucmVzb2x2ZShvcHRpb25zLnJvdXRlci5wYWdlTG9hZGVyLmdldE1pZGRsZXdhcmUoKSk7aWYoIW1hdGNoZXJzKXJldHVybiExO2xldHtwYXRobmFtZTphc1BhdGhuYW1lfT1fcGFyc2VQYXRoLnBhcnNlUGF0aChvcHRpb25zLmFzUGF0aCksY2xlYW5lZEFzPV9oYXNCYXNlUGF0aC5oYXNCYXNlUGF0aChhc1BhdGhuYW1lKT9fcmVtb3ZlQmFzZVBhdGgucmVtb3ZlQmFzZVBhdGgoYXNQYXRobmFtZSk6YXNQYXRobmFtZSxhc1dpdGhCYXNlUGF0aEFuZExvY2FsZT1fYWRkQmFzZVBhdGguYWRkQmFzZVBhdGgoX2FkZExvY2FsZS5hZGRMb2NhbGUoY2xlYW5lZEFzLG9wdGlvbnMubG9jYWxlKSk7cmV0dXJuIG1hdGNoZXJzLnNvbWUobT0+UmVnRXhwKG0ucmVnZXhwKS50ZXN0KGFzV2l0aEJhc2VQYXRoQW5kTG9jYWxlKSl9KSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHN0cmlwT3JpZ2luKHVybCl7bGV0IG9yaWdpbj1fdXRpbHMuZ2V0TG9jYXRpb25PcmlnaW4oKTtyZXR1cm4gdXJsLnN0YXJ0c1dpdGgob3JpZ2luKT91cmwuc3Vic3RyaW5nKG9yaWdpbi5sZW5ndGgpOnVybH1mdW5jdGlvbiBvbWl0KG9iamVjdCxrZXlzKXtsZXQgb21pdHRlZD17fTtyZXR1cm4gT2JqZWN0LmtleXMob2JqZWN0KS5mb3JFYWNoKGtleT0+e2tleXMuaW5jbHVkZXMoa2V5KXx8KG9taXR0ZWRba2V5XT1vYmplY3Rba2V5XSl9KSxvbWl0dGVkfWZ1bmN0aW9uIGlzTG9jYWxVUkwodXJsKXtpZighX3V0aWxzLmlzQWJzb2x1dGVVcmwodXJsKSlyZXR1cm4hMDt0cnl7bGV0IGxvY2F0aW9uT3JpZ2luPV91dGlscy5nZXRMb2NhdGlvbk9yaWdpbigpLHJlc29sdmVkPW5ldyBVUkwodXJsLGxvY2F0aW9uT3JpZ2luKTtyZXR1cm4gcmVzb2x2ZWQub3JpZ2luPT09bG9jYXRpb25PcmlnaW4mJl9oYXNCYXNlUGF0aC5oYXNCYXNlUGF0aChyZXNvbHZlZC5wYXRobmFtZSl9Y2F0Y2goXyl7cmV0dXJuITF9fWZ1bmN0aW9uIGludGVycG9sYXRlQXMocm91dGUsYXNQYXRobmFtZSxxdWVyeSl7bGV0IGludGVycG9sYXRlZFJvdXRlPSIiLGR5bmFtaWNSZWdleD1fcm91dGVSZWdleC5nZXRSb3V0ZVJlZ2V4KHJvdXRlKSxkeW5hbWljR3JvdXBzPWR5bmFtaWNSZWdleC5ncm91cHMsZHluYW1pY01hdGNoZXM9KGFzUGF0aG5hbWUhPT1yb3V0ZT9fcm91dGVNYXRjaGVyLmdldFJvdXRlTWF0Y2hlcihkeW5hbWljUmVnZXgpKGFzUGF0aG5hbWUpOiIiKXx8cXVlcnk7aW50ZXJwb2xhdGVkUm91dGU9cm91dGU7bGV0IHBhcmFtcz1PYmplY3Qua2V5cyhkeW5hbWljR3JvdXBzKTtyZXR1cm4gcGFyYW1zLmV2ZXJ5KHBhcmFtPT57bGV0IHZhbHVlPWR5bmFtaWNNYXRjaGVzW3BhcmFtXXx8IiIse3JlcGVhdCxvcHRpb25hbH09ZHluYW1pY0dyb3Vwc1twYXJhbV0scmVwbGFjZWQ9IlsiLmNvbmNhdChyZXBlYXQ/Ii4uLiI6IiIpLmNvbmNhdChwYXJhbSwiXSIpO3JldHVybiBvcHRpb25hbCYmKHJlcGxhY2VkPSIiLmNvbmNhdCh2YWx1ZT8iIjoiLyIsIlsiKS5jb25jYXQocmVwbGFjZWQsIl0iKSkscmVwZWF0JiYhQXJyYXkuaXNBcnJheSh2YWx1ZSkmJih2YWx1ZT1bdmFsdWVdKSwob3B0aW9uYWx8fHBhcmFtIGluIGR5bmFtaWNNYXRjaGVzKSYmKGludGVycG9sYXRlZFJvdXRlPWludGVycG9sYXRlZFJvdXRlLnJlcGxhY2UocmVwbGFjZWQscmVwZWF0P3ZhbHVlLm1hcChzZWdtZW50PT5lbmNvZGVVUklDb21wb25lbnQoc2VnbWVudCkpLmpvaW4oIi8iKTplbmNvZGVVUklDb21wb25lbnQodmFsdWUpKXx8Ii8iKX0pfHwoaW50ZXJwb2xhdGVkUm91dGU9IiIpLHtwYXJhbXMscmVzdWx0OmludGVycG9sYXRlZFJvdXRlfX1mdW5jdGlvbiByZXNvbHZlSHJlZihyb3V0ZXIsaHJlZixyZXNvbHZlQXMpe2xldCBiYXNlO2xldCB1cmxBc1N0cmluZz0ic3RyaW5nIj09dHlwZW9mIGhyZWY/aHJlZjpfZm9ybWF0VXJsLmZvcm1hdFdpdGhWYWxpZGF0aW9uKGhyZWYpLHVybFByb3RvTWF0Y2g9dXJsQXNTdHJpbmcubWF0Y2goL15bYS16QS1aXXsxLH06XC9cLy8pLHVybEFzU3RyaW5nTm9Qcm90bz11cmxQcm90b01hdGNoP3VybEFzU3RyaW5nLnNsaWNlKHVybFByb3RvTWF0Y2hbMF0ubGVuZ3RoKTp1cmxBc1N0cmluZyx1cmxQYXJ0cz11cmxBc1N0cmluZ05vUHJvdG8uc3BsaXQoIj8iKTtpZigodXJsUGFydHNbMF18fCIiKS5tYXRjaCgvKFwvXC98XFwpLykpe2NvbnNvbGUuZXJyb3IoIkludmFsaWQgaHJlZiBwYXNzZWQgdG8gbmV4dC9yb3V0ZXI6ICIuY29uY2F0KHVybEFzU3RyaW5nLCIsIHJlcGVhdGVkIGZvcndhcmQtc2xhc2hlcyAoLy8pIG9yIGJhY2tzbGFzaGVzIFxcIGFyZSBub3QgdmFsaWQgaW4gdGhlIGhyZWYiKSk7bGV0IG5vcm1hbGl6ZWRVcmw9X3V0aWxzLm5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyh1cmxBc1N0cmluZ05vUHJvdG8pO3VybEFzU3RyaW5nPSh1cmxQcm90b01hdGNoP3VybFByb3RvTWF0Y2hbMF06IiIpK25vcm1hbGl6ZWRVcmx9aWYoIWlzTG9jYWxVUkwodXJsQXNTdHJpbmcpKXJldHVybiByZXNvbHZlQXM/W3VybEFzU3RyaW5nXTp1cmxBc1N0cmluZzt0cnl7YmFzZT1uZXcgVVJMKHVybEFzU3RyaW5nLnN0YXJ0c1dpdGgoIiMiKT9yb3V0ZXIuYXNQYXRoOnJvdXRlci5wYXRobmFtZSwiaHR0cDovL24iKX1jYXRjaChfKXtiYXNlPW5ldyBVUkwoIi8iLCJodHRwOi8vbiIpfXRyeXtsZXQgZmluYWxVcmw9bmV3IFVSTCh1cmxBc1N0cmluZyxiYXNlKTtmaW5hbFVybC5wYXRobmFtZT1fbm9ybWFsaXplVHJhaWxpbmdTbGFzaC5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaChmaW5hbFVybC5wYXRobmFtZSk7bGV0IGludGVycG9sYXRlZEFzPSIiO2lmKF9pc0R5bmFtaWMuaXNEeW5hbWljUm91dGUoZmluYWxVcmwucGF0aG5hbWUpJiZmaW5hbFVybC5zZWFyY2hQYXJhbXMmJnJlc29sdmVBcyl7bGV0IHF1ZXJ5PV9xdWVyeXN0cmluZy5zZWFyY2hQYXJhbXNUb1VybFF1ZXJ5KGZpbmFsVXJsLnNlYXJjaFBhcmFtcykse3Jlc3VsdCxwYXJhbXN9PWludGVycG9sYXRlQXMoZmluYWxVcmwucGF0aG5hbWUsZmluYWxVcmwucGF0aG5hbWUscXVlcnkpO3Jlc3VsdCYmKGludGVycG9sYXRlZEFzPV9mb3JtYXRVcmwuZm9ybWF0V2l0aFZhbGlkYXRpb24oe3BhdGhuYW1lOnJlc3VsdCxoYXNoOmZpbmFsVXJsLmhhc2gscXVlcnk6b21pdChxdWVyeSxwYXJhbXMpfSkpfWxldCByZXNvbHZlZEhyZWY9ZmluYWxVcmwub3JpZ2luPT09YmFzZS5vcmlnaW4/ZmluYWxVcmwuaHJlZi5zbGljZShmaW5hbFVybC5vcmlnaW4ubGVuZ3RoKTpmaW5hbFVybC5ocmVmO3JldHVybiByZXNvbHZlQXM/W3Jlc29sdmVkSHJlZixpbnRlcnBvbGF0ZWRBc3x8cmVzb2x2ZWRIcmVmXTpyZXNvbHZlZEhyZWZ9Y2F0Y2goXzEpe3JldHVybiByZXNvbHZlQXM/W3VybEFzU3RyaW5nXTp1cmxBc1N0cmluZ319ZnVuY3Rpb24gcHJlcGFyZVVybEFzKHJvdXRlcix1cmwsYXMpe2xldFtyZXNvbHZlZEhyZWYscmVzb2x2ZWRBc109cmVzb2x2ZUhyZWYocm91dGVyLHVybCwhMCksb3JpZ2luPV91dGlscy5nZXRMb2NhdGlvbk9yaWdpbigpLGhyZWZIYWRPcmlnaW49cmVzb2x2ZWRIcmVmLnN0YXJ0c1dpdGgob3JpZ2luKSxhc0hhZE9yaWdpbj1yZXNvbHZlZEFzJiZyZXNvbHZlZEFzLnN0YXJ0c1dpdGgob3JpZ2luKTtyZXNvbHZlZEhyZWY9c3RyaXBPcmlnaW4ocmVzb2x2ZWRIcmVmKSxyZXNvbHZlZEFzPXJlc29sdmVkQXM/c3RyaXBPcmlnaW4ocmVzb2x2ZWRBcyk6cmVzb2x2ZWRBcztsZXQgcHJlcGFyZWRVcmw9aHJlZkhhZE9yaWdpbj9yZXNvbHZlZEhyZWY6X2FkZEJhc2VQYXRoLmFkZEJhc2VQYXRoKHJlc29sdmVkSHJlZikscHJlcGFyZWRBcz1hcz9zdHJpcE9yaWdpbihyZXNvbHZlSHJlZihyb3V0ZXIsYXMpKTpyZXNvbHZlZEFzfHxyZXNvbHZlZEhyZWY7cmV0dXJue3VybDpwcmVwYXJlZFVybCxhczphc0hhZE9yaWdpbj9wcmVwYXJlZEFzOl9hZGRCYXNlUGF0aC5hZGRCYXNlUGF0aChwcmVwYXJlZEFzKX19ZnVuY3Rpb24gcmVzb2x2ZUR5bmFtaWNSb3V0ZShwYXRobmFtZSxwYWdlcyl7bGV0IGNsZWFuUGF0aG5hbWU9X3JlbW92ZVRyYWlsaW5nU2xhc2gucmVtb3ZlVHJhaWxpbmdTbGFzaChfZGVub3JtYWxpemVQYWdlUGF0aC5kZW5vcm1hbGl6ZVBhZ2VQYXRoKHBhdGhuYW1lKSk7cmV0dXJuIi80MDQiPT09Y2xlYW5QYXRobmFtZXx8Ii9fZXJyb3IiPT09Y2xlYW5QYXRobmFtZT9wYXRobmFtZToocGFnZXMuaW5jbHVkZXMoY2xlYW5QYXRobmFtZSl8fHBhZ2VzLnNvbWUocGFnZT0+e2lmKF9pc0R5bmFtaWMuaXNEeW5hbWljUm91dGUocGFnZSkmJl9yb3V0ZVJlZ2V4LmdldFJvdXRlUmVnZXgocGFnZSkucmUudGVzdChjbGVhblBhdGhuYW1lKSlyZXR1cm4gcGF0aG5hbWU9cGFnZSwhMH0pLF9yZW1vdmVUcmFpbGluZ1NsYXNoLnJlbW92ZVRyYWlsaW5nU2xhc2gocGF0aG5hbWUpKX1sZXQgU1NHX0RBVEFfTk9UX0ZPVU5EPVN5bWJvbCgiU1NHX0RBVEFfTk9UX0ZPVU5EIiksYmFja2dyb3VuZENhY2hlPXt9O2Z1bmN0aW9uIGhhbmRsZVNtb290aFNjcm9sbChmbil7bGV0IGh0bWxFbGVtZW50PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxleGlzdGluZz1odG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvcjtodG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvcj0iYXV0byIsZm4oKSxodG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvcj1leGlzdGluZ31mdW5jdGlvbiB0cnlUb1BhcnNlQXNKU09OKHRleHQpe3RyeXtyZXR1cm4gSlNPTi5wYXJzZSh0ZXh0KX1jYXRjaChlcnJvcil7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIGZldGNoTmV4dERhdGEocGFyYW0pe3ZhciByZWYxO2xldHtkYXRhSHJlZixpbmZsaWdodENhY2hlLGlzUHJlZmV0Y2gsaGFzTWlkZGxld2FyZSxpc1NlcnZlclJlbmRlcixwYXJzZUpTT04scGVyc2lzdENhY2hlLGlzQmFja2dyb3VuZCx1bnN0YWJsZV9za2lwQ2xpZW50Q2FjaGV9PXBhcmFtLHtocmVmOmNhY2hlS2V5fT1uZXcgVVJMKGRhdGFIcmVmLHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxnZXREYXRhPXBhcmFtcz0+KGZ1bmN0aW9uIGZldGNoUmV0cnkodXJsLGF0dGVtcHRzLG9wdGlvbnMpe3JldHVybiBmZXRjaCh1cmwse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsbWV0aG9kOm9wdGlvbnMubWV0aG9kfHwiR0VUIixoZWFkZXJzOk9iamVjdC5hc3NpZ24oe30sb3B0aW9ucy5oZWFkZXJzLHsieC1uZXh0anMtZGF0YSI6IjEifSl9KS50aGVuKHJlc3BvbnNlPT4hcmVzcG9uc2Uub2smJmF0dGVtcHRzPjEmJnJlc3BvbnNlLnN0YXR1cz49NTAwP2ZldGNoUmV0cnkodXJsLGF0dGVtcHRzLTEsb3B0aW9ucyk6cmVzcG9uc2UpfSkoZGF0YUhyZWYsaXNTZXJ2ZXJSZW5kZXI/MzoxLHtoZWFkZXJzOmlzUHJlZmV0Y2g/e3B1cnBvc2U6InByZWZldGNoIn06e30sbWV0aG9kOm51bGwhPShyZWYxPW51bGw9PXBhcmFtcz92b2lkIDA6cGFyYW1zLm1ldGhvZCk/cmVmMToiR0VUIn0pLnRoZW4ocmVzcG9uc2U9PnJlc3BvbnNlLm9rJiYobnVsbD09cGFyYW1zP3ZvaWQgMDpwYXJhbXMubWV0aG9kKT09PSJIRUFEIj97ZGF0YUhyZWYscmVzcG9uc2UsdGV4dDoiIixqc29uOnt9LGNhY2hlS2V5fTpyZXNwb25zZS50ZXh0KCkudGhlbih0ZXh0PT57aWYoIXJlc3BvbnNlLm9rKXtpZihoYXNNaWRkbGV3YXJlJiZbMzAxLDMwMiwzMDcsMzA4XS5pbmNsdWRlcyhyZXNwb25zZS5zdGF0dXMpKXJldHVybntkYXRhSHJlZixyZXNwb25zZSx0ZXh0LGpzb246e30sY2FjaGVLZXl9O2lmKCFoYXNNaWRkbGV3YXJlJiY0MDQ9PT1yZXNwb25zZS5zdGF0dXMpe3ZhciByZWY7aWYobnVsbD09KHJlZj10cnlUb1BhcnNlQXNKU09OKHRleHQpKT92b2lkIDA6cmVmLm5vdEZvdW5kKXJldHVybntkYXRhSHJlZixqc29uOntub3RGb3VuZDpTU0dfREFUQV9OT1RfRk9VTkR9LHJlc3BvbnNlLHRleHQsY2FjaGVLZXl9fWxldCBlcnJvcj1FcnJvcigiRmFpbGVkIHRvIGxvYWQgc3RhdGljIHByb3BzIik7dGhyb3cgaXNTZXJ2ZXJSZW5kZXJ8fF9yb3V0ZUxvYWRlci5tYXJrQXNzZXRFcnJvcihlcnJvciksZXJyb3J9cmV0dXJue2RhdGFIcmVmLGpzb246cGFyc2VKU09OP3RyeVRvUGFyc2VBc0pTT04odGV4dCk6bnVsbCxyZXNwb25zZSx0ZXh0LGNhY2hlS2V5fX0pKS50aGVuKGRhdGE9PihwZXJzaXN0Q2FjaGUmJiJuby1jYWNoZSIhPT1kYXRhLnJlc3BvbnNlLmhlYWRlcnMuZ2V0KCJ4LW1pZGRsZXdhcmUtY2FjaGUiKXx8ZGVsZXRlIGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldLGRhdGEpKS5jYXRjaChlcnI9Pnt0aHJvdyBkZWxldGUgaW5mbGlnaHRDYWNoZVtjYWNoZUtleV0sZXJyfSk7cmV0dXJuIHVuc3RhYmxlX3NraXBDbGllbnRDYWNoZSYmcGVyc2lzdENhY2hlP2dldERhdGEoe30pLnRoZW4oZGF0YT0+KGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldPVByb21pc2UucmVzb2x2ZShkYXRhKSxkYXRhKSk6dm9pZCAwIT09aW5mbGlnaHRDYWNoZVtjYWNoZUtleV0/aW5mbGlnaHRDYWNoZVtjYWNoZUtleV06aW5mbGlnaHRDYWNoZVtjYWNoZUtleV09Z2V0RGF0YShpc0JhY2tncm91bmQ/e21ldGhvZDoiSEVBRCJ9Ont9KX1mdW5jdGlvbiBjcmVhdGVLZXkoKXtyZXR1cm4gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiwxMCl9ZnVuY3Rpb24gaGFuZGxlSGFyZE5hdmlnYXRpb24ocGFyYW0pe2xldHt1cmwscm91dGVyfT1wYXJhbTtpZih1cmw9PT1fYWRkQmFzZVBhdGguYWRkQmFzZVBhdGgoX2FkZExvY2FsZS5hZGRMb2NhbGUocm91dGVyLmFzUGF0aCxyb3V0ZXIubG9jYWxlKSkpdGhyb3cgRXJyb3IoIkludmFyaWFudDogYXR0ZW1wdGVkIHRvIGhhcmQgbmF2aWdhdGUgdG8gdGhlIHNhbWUgVVJMICIuY29uY2F0KHVybCwiICIpLmNvbmNhdChsb2NhdGlvbi5ocmVmKSk7d2luZG93LmxvY2F0aW9uLmhyZWY9dXJsfWxldCBnZXRDYW5jZWxsZWRIYW5kbGVyPXBhcmFtPT57bGV0e3JvdXRlLHJvdXRlcn09cGFyYW0sY2FuY2VsbGVkPSExLGNhbmNlbD1yb3V0ZXIuY2xjPSgpPT57Y2FuY2VsbGVkPSEwfSxoYW5kbGVDYW5jZWxsZWQ9KCk9PntpZihjYW5jZWxsZWQpe2xldCBlcnJvcj1FcnJvcignQWJvcnQgZmV0Y2hpbmcgY29tcG9uZW50IGZvciByb3V0ZTogIicuY29uY2F0KHJvdXRlLCciJykpO3Rocm93IGVycm9yLmNhbmNlbGxlZD0hMCxlcnJvcn1jYW5jZWw9PT1yb3V0ZXIuY2xjJiYocm91dGVyLmNsYz1udWxsKX07cmV0dXJuIGhhbmRsZUNhbmNlbGxlZH07Y2xhc3MgUm91dGVye3JlbG9hZCgpe3dpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX1iYWNrKCl7d2luZG93Lmhpc3RvcnkuYmFjaygpfWZvcndhcmQoKXt3aW5kb3cuaGlzdG9yeS5mb3J3YXJkKCl9cHVzaCh1cmwsYXMpe2xldCBvcHRpb25zPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fTtyZXR1cm57dXJsLGFzfT1wcmVwYXJlVXJsQXModGhpcyx1cmwsYXMpLHRoaXMuY2hhbmdlKCJwdXNoU3RhdGUiLHVybCxhcyxvcHRpb25zKX1yZXBsYWNlKHVybCxhcyl7bGV0IG9wdGlvbnM9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9O3JldHVybnt1cmwsYXN9PXByZXBhcmVVcmxBcyh0aGlzLHVybCxhcyksdGhpcy5jaGFuZ2UoInJlcGxhY2VTdGF0ZSIsdXJsLGFzLG9wdGlvbnMpfWNoYW5nZShtZXRob2QsdXJsLGFzLG9wdGlvbnMsZm9yY2VkU2Nyb2xsKXt2YXIgX3RoaXM9dGhpcztyZXR1cm4gX2FzeW5jX3RvX2dlbmVyYXRvcihmdW5jdGlvbiooKXt2YXIgcmVmLHJlZjIscmVmMyxfcm91dGUsX3Njcm9sbDtsZXQgcGFnZXMscmV3cml0ZXM7aWYoIWlzTG9jYWxVUkwodXJsKSlyZXR1cm4gaGFuZGxlSGFyZE5hdmlnYXRpb24oe3VybCxyb3V0ZXI6X3RoaXN9KSwhMTtsZXQgaXNRdWVyeVVwZGF0aW5nPW9wdGlvbnMuX2gsc2hvdWxkUmVzb2x2ZUhyZWY9aXNRdWVyeVVwZGF0aW5nfHxvcHRpb25zLl9zaG91bGRSZXNvbHZlSHJlZnx8X3BhcnNlUGF0aC5wYXJzZVBhdGgodXJsKS5wYXRobmFtZT09PV9wYXJzZVBhdGgucGFyc2VQYXRoKGFzKS5wYXRobmFtZSxuZXh0U3RhdGU9X2V4dGVuZHMoe30sX3RoaXMuc3RhdGUpLHJlYWR5U3RhdGVDaGFuZ2U9ITAhPT1fdGhpcy5pc1JlYWR5O190aGlzLmlzUmVhZHk9ITA7bGV0IGlzU3NyPV90aGlzLmlzU3NyO2lmKGlzUXVlcnlVcGRhdGluZ3x8KF90aGlzLmlzU3NyPSExKSxpc1F1ZXJ5VXBkYXRpbmcmJl90aGlzLmNsYylyZXR1cm4hMTtsZXQgcHJldkxvY2FsZT1uZXh0U3RhdGUubG9jYWxlO3tuZXh0U3RhdGUubG9jYWxlPSExPT09b3B0aW9ucy5sb2NhbGU/X3RoaXMuZGVmYXVsdExvY2FsZTpvcHRpb25zLmxvY2FsZXx8bmV4dFN0YXRlLmxvY2FsZSx2b2lkIDA9PT1vcHRpb25zLmxvY2FsZSYmKG9wdGlvbnMubG9jYWxlPW5leHRTdGF0ZS5sb2NhbGUpO2xldCBwYXJzZWRBcz1fcGFyc2VSZWxhdGl2ZVVybC5wYXJzZVJlbGF0aXZlVXJsKF9oYXNCYXNlUGF0aC5oYXNCYXNlUGF0aChhcyk/X3JlbW92ZUJhc2VQYXRoLnJlbW92ZUJhc2VQYXRoKGFzKTphcyksbG9jYWxlUGF0aFJlc3VsdD1fbm9ybWFsaXplTG9jYWxlUGF0aC5ub3JtYWxpemVMb2NhbGVQYXRoKHBhcnNlZEFzLnBhdGhuYW1lLF90aGlzLmxvY2FsZXMpO2xvY2FsZVBhdGhSZXN1bHQuZGV0ZWN0ZWRMb2NhbGUmJihuZXh0U3RhdGUubG9jYWxlPWxvY2FsZVBhdGhSZXN1bHQuZGV0ZWN0ZWRMb2NhbGUscGFyc2VkQXMucGF0aG5hbWU9X2FkZEJhc2VQYXRoLmFkZEJhc2VQYXRoKHBhcnNlZEFzLnBhdGhuYW1lKSxhcz1fZm9ybWF0VXJsLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZEFzKSx1cmw9X2FkZEJhc2VQYXRoLmFkZEJhc2VQYXRoKF9ub3JtYWxpemVMb2NhbGVQYXRoLm5vcm1hbGl6ZUxvY2FsZVBhdGgoX2hhc0Jhc2VQYXRoLmhhc0Jhc2VQYXRoKHVybCk/X3JlbW92ZUJhc2VQYXRoLnJlbW92ZUJhc2VQYXRoKHVybCk6dXJsLF90aGlzLmxvY2FsZXMpLnBhdGhuYW1lKSk7bGV0IGRpZE5hdmlnYXRlPSExOyhudWxsPT0ocmVmPV90aGlzLmxvY2FsZXMpP3ZvaWQgMDpyZWYuaW5jbHVkZXMobmV4dFN0YXRlLmxvY2FsZSkpfHwocGFyc2VkQXMucGF0aG5hbWU9X2FkZExvY2FsZS5hZGRMb2NhbGUocGFyc2VkQXMucGF0aG5hbWUsbmV4dFN0YXRlLmxvY2FsZSksaGFuZGxlSGFyZE5hdmlnYXRpb24oe3VybDpfZm9ybWF0VXJsLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZEFzKSxyb3V0ZXI6X3RoaXN9KSxkaWROYXZpZ2F0ZT0hMCk7bGV0IGRldGVjdGVkRG9tYWluPV9kZXRlY3REb21haW5Mb2NhbGUuZGV0ZWN0RG9tYWluTG9jYWxlKF90aGlzLmRvbWFpbkxvY2FsZXMsdm9pZCAwLG5leHRTdGF0ZS5sb2NhbGUpO2lmKCFkaWROYXZpZ2F0ZSYmZGV0ZWN0ZWREb21haW4mJl90aGlzLmlzTG9jYWxlRG9tYWluJiZzZWxmLmxvY2F0aW9uLmhvc3RuYW1lIT09ZGV0ZWN0ZWREb21haW4uZG9tYWluKXtsZXQgYXNOb0Jhc2VQYXRoPV9yZW1vdmVCYXNlUGF0aC5yZW1vdmVCYXNlUGF0aChhcyk7aGFuZGxlSGFyZE5hdmlnYXRpb24oe3VybDoiaHR0cCIuY29uY2F0KGRldGVjdGVkRG9tYWluLmh0dHA/IiI6InMiLCI6Ly8iKS5jb25jYXQoZGV0ZWN0ZWREb21haW4uZG9tYWluKS5jb25jYXQoX2FkZEJhc2VQYXRoLmFkZEJhc2VQYXRoKCIiLmNvbmNhdChuZXh0U3RhdGUubG9jYWxlPT09ZGV0ZWN0ZWREb21haW4uZGVmYXVsdExvY2FsZT8iIjoiLyIuY29uY2F0KG5leHRTdGF0ZS5sb2NhbGUpKS5jb25jYXQoIi8iPT09YXNOb0Jhc2VQYXRoPyIiOmFzTm9CYXNlUGF0aCl8fCIvIikpLHJvdXRlcjpfdGhpc30pLGRpZE5hdmlnYXRlPSEwfWlmKGRpZE5hdmlnYXRlKXJldHVybiBuZXcgUHJvbWlzZSgoKT0+e30pfV91dGlscy5TVCYmcGVyZm9ybWFuY2UubWFyaygicm91dGVDaGFuZ2UiKTtsZXR7c2hhbGxvdz0hMSxzY3JvbGw9ITB9PW9wdGlvbnMscm91dGVQcm9wcz17c2hhbGxvd307X3RoaXMuX2luRmxpZ2h0Um91dGUmJl90aGlzLmNsYyYmKGlzU3NyfHxSb3V0ZXIuZXZlbnRzLmVtaXQoInJvdXRlQ2hhbmdlRXJyb3IiLGJ1aWxkQ2FuY2VsbGF0aW9uRXJyb3IoKSxfdGhpcy5faW5GbGlnaHRSb3V0ZSxyb3V0ZVByb3BzKSxfdGhpcy5jbGMoKSxfdGhpcy5jbGM9bnVsbCksYXM9X2FkZEJhc2VQYXRoLmFkZEJhc2VQYXRoKF9hZGRMb2NhbGUuYWRkTG9jYWxlKF9oYXNCYXNlUGF0aC5oYXNCYXNlUGF0aChhcyk/X3JlbW92ZUJhc2VQYXRoLnJlbW92ZUJhc2VQYXRoKGFzKTphcyxvcHRpb25zLmxvY2FsZSxfdGhpcy5kZWZhdWx0TG9jYWxlKSk7bGV0IGNsZWFuZWRBcz1fcmVtb3ZlTG9jYWxlLnJlbW92ZUxvY2FsZShfaGFzQmFzZVBhdGguaGFzQmFzZVBhdGgoYXMpP19yZW1vdmVCYXNlUGF0aC5yZW1vdmVCYXNlUGF0aChhcyk6YXMsbmV4dFN0YXRlLmxvY2FsZSk7X3RoaXMuX2luRmxpZ2h0Um91dGU9YXM7bGV0IGxvY2FsZUNoYW5nZT1wcmV2TG9jYWxlIT09bmV4dFN0YXRlLmxvY2FsZTtpZighaXNRdWVyeVVwZGF0aW5nJiZfdGhpcy5vbmx5QUhhc2hDaGFuZ2UoY2xlYW5lZEFzKSYmIWxvY2FsZUNoYW5nZSl7bmV4dFN0YXRlLmFzUGF0aD1jbGVhbmVkQXMsUm91dGVyLmV2ZW50cy5lbWl0KCJoYXNoQ2hhbmdlU3RhcnQiLGFzLHJvdXRlUHJvcHMpLF90aGlzLmNoYW5nZVN0YXRlKG1ldGhvZCx1cmwsYXMsX2V4dGVuZHMoe30sb3B0aW9ucyx7c2Nyb2xsOiExfSkpLHNjcm9sbCYmX3RoaXMuc2Nyb2xsVG9IYXNoKGNsZWFuZWRBcyk7dHJ5e3lpZWxkIF90aGlzLnNldChuZXh0U3RhdGUsX3RoaXMuY29tcG9uZW50c1tuZXh0U3RhdGUucm91dGVdLG51bGwpfWNhdGNoKGVycil7dGhyb3cgX2lzRXJyb3IuZGVmYXVsdChlcnIpJiZlcnIuY2FuY2VsbGVkJiZSb3V0ZXIuZXZlbnRzLmVtaXQoInJvdXRlQ2hhbmdlRXJyb3IiLGVycixjbGVhbmVkQXMscm91dGVQcm9wcyksZXJyfXJldHVybiBSb3V0ZXIuZXZlbnRzLmVtaXQoImhhc2hDaGFuZ2VDb21wbGV0ZSIsYXMscm91dGVQcm9wcyksITB9bGV0IHBhcnNlZD1fcGFyc2VSZWxhdGl2ZVVybC5wYXJzZVJlbGF0aXZlVXJsKHVybCkse3BhdGhuYW1lLHF1ZXJ5fT1wYXJzZWQ7dHJ5e1twYWdlcyx7X19yZXdyaXRlczpyZXdyaXRlc31dPXlpZWxkIFByb21pc2UuYWxsKFtfdGhpcy5wYWdlTG9hZGVyLmdldFBhZ2VMaXN0KCksX3JvdXRlTG9hZGVyLmdldENsaWVudEJ1aWxkTWFuaWZlc3QoKSxfdGhpcy5wYWdlTG9hZGVyLmdldE1pZGRsZXdhcmUoKV0pfWNhdGNoKGVycjEpe3JldHVybiBoYW5kbGVIYXJkTmF2aWdhdGlvbih7dXJsOmFzLHJvdXRlcjpfdGhpc30pLCExfV90aGlzLnVybElzTmV3KGNsZWFuZWRBcyl8fGxvY2FsZUNoYW5nZXx8KG1ldGhvZD0icmVwbGFjZVN0YXRlIik7bGV0IHJlc29sdmVkQXM9YXM7cGF0aG5hbWU9cGF0aG5hbWU/X3JlbW92ZVRyYWlsaW5nU2xhc2gucmVtb3ZlVHJhaWxpbmdTbGFzaChfcmVtb3ZlQmFzZVBhdGgucmVtb3ZlQmFzZVBhdGgocGF0aG5hbWUpKTpwYXRobmFtZTtsZXQgaXNNaWRkbGV3YXJlTWF0Y2g9eWllbGQgbWF0Y2hlc01pZGRsZXdhcmUoe2FzUGF0aDphcyxsb2NhbGU6bmV4dFN0YXRlLmxvY2FsZSxyb3V0ZXI6X3RoaXN9KTtpZihvcHRpb25zLnNoYWxsb3cmJmlzTWlkZGxld2FyZU1hdGNoJiYocGF0aG5hbWU9X3RoaXMucGF0aG5hbWUpLGlzUXVlcnlVcGRhdGluZyYmaXNNaWRkbGV3YXJlTWF0Y2gmJihzaG91bGRSZXNvbHZlSHJlZj0hMSksc2hvdWxkUmVzb2x2ZUhyZWYmJiIvX2Vycm9yIiE9PXBhdGhuYW1lKXtpZihvcHRpb25zLl9zaG91bGRSZXNvbHZlSHJlZj0hMCxhcy5zdGFydHNXaXRoKCIvIikpe2xldCByZXdyaXRlc1Jlc3VsdD1fcmVzb2x2ZVJld3JpdGVzLmRlZmF1bHQoX2FkZEJhc2VQYXRoLmFkZEJhc2VQYXRoKF9hZGRMb2NhbGUuYWRkTG9jYWxlKGNsZWFuZWRBcyxuZXh0U3RhdGUubG9jYWxlKSwhMCkscGFnZXMscmV3cml0ZXMscXVlcnkscD0+cmVzb2x2ZUR5bmFtaWNSb3V0ZShwLHBhZ2VzKSxfdGhpcy5sb2NhbGVzKTtpZihyZXdyaXRlc1Jlc3VsdC5leHRlcm5hbERlc3QpcmV0dXJuIGhhbmRsZUhhcmROYXZpZ2F0aW9uKHt1cmw6YXMscm91dGVyOl90aGlzfSksITA7aXNNaWRkbGV3YXJlTWF0Y2h8fChyZXNvbHZlZEFzPXJld3JpdGVzUmVzdWx0LmFzUGF0aCkscmV3cml0ZXNSZXN1bHQubWF0Y2hlZFBhZ2UmJnJld3JpdGVzUmVzdWx0LnJlc29sdmVkSHJlZiYmKHBhdGhuYW1lPXJld3JpdGVzUmVzdWx0LnJlc29sdmVkSHJlZixwYXJzZWQucGF0aG5hbWU9X2FkZEJhc2VQYXRoLmFkZEJhc2VQYXRoKHBhdGhuYW1lKSxpc01pZGRsZXdhcmVNYXRjaHx8KHVybD1fZm9ybWF0VXJsLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZCkpKX1lbHNlIHBhcnNlZC5wYXRobmFtZT1yZXNvbHZlRHluYW1pY1JvdXRlKHBhdGhuYW1lLHBhZ2VzKSxwYXJzZWQucGF0aG5hbWU9PT1wYXRobmFtZXx8KHBhdGhuYW1lPXBhcnNlZC5wYXRobmFtZSxwYXJzZWQucGF0aG5hbWU9X2FkZEJhc2VQYXRoLmFkZEJhc2VQYXRoKHBhdGhuYW1lKSxpc01pZGRsZXdhcmVNYXRjaHx8KHVybD1fZm9ybWF0VXJsLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZCkpKX1pZighaXNMb2NhbFVSTChhcykpcmV0dXJuIGhhbmRsZUhhcmROYXZpZ2F0aW9uKHt1cmw6YXMscm91dGVyOl90aGlzfSksITE7cmVzb2x2ZWRBcz1fcmVtb3ZlTG9jYWxlLnJlbW92ZUxvY2FsZShfcmVtb3ZlQmFzZVBhdGgucmVtb3ZlQmFzZVBhdGgocmVzb2x2ZWRBcyksbmV4dFN0YXRlLmxvY2FsZSk7bGV0IHJvdXRlPV9yZW1vdmVUcmFpbGluZ1NsYXNoLnJlbW92ZVRyYWlsaW5nU2xhc2gocGF0aG5hbWUpLHJvdXRlTWF0Y2g9ITE7aWYoX2lzRHluYW1pYy5pc0R5bmFtaWNSb3V0ZShyb3V0ZSkpe2xldCBwYXJzZWRBczE9X3BhcnNlUmVsYXRpdmVVcmwucGFyc2VSZWxhdGl2ZVVybChyZXNvbHZlZEFzKSxhc1BhdGhuYW1lPXBhcnNlZEFzMS5wYXRobmFtZSxyb3V0ZVJlZ2V4PV9yb3V0ZVJlZ2V4LmdldFJvdXRlUmVnZXgocm91dGUpO3JvdXRlTWF0Y2g9X3JvdXRlTWF0Y2hlci5nZXRSb3V0ZU1hdGNoZXIocm91dGVSZWdleCkoYXNQYXRobmFtZSk7bGV0IHNob3VsZEludGVycG9sYXRlPXJvdXRlPT09YXNQYXRobmFtZSxpbnRlcnBvbGF0ZWRBcz1zaG91bGRJbnRlcnBvbGF0ZT9pbnRlcnBvbGF0ZUFzKHJvdXRlLGFzUGF0aG5hbWUscXVlcnkpOnt9O2lmKHJvdXRlTWF0Y2gmJighc2hvdWxkSW50ZXJwb2xhdGV8fGludGVycG9sYXRlZEFzLnJlc3VsdCkpc2hvdWxkSW50ZXJwb2xhdGU/YXM9X2Zvcm1hdFVybC5mb3JtYXRXaXRoVmFsaWRhdGlvbihPYmplY3QuYXNzaWduKHt9LHBhcnNlZEFzMSx7cGF0aG5hbWU6aW50ZXJwb2xhdGVkQXMucmVzdWx0LHF1ZXJ5Om9taXQocXVlcnksaW50ZXJwb2xhdGVkQXMucGFyYW1zKX0pKTpPYmplY3QuYXNzaWduKHF1ZXJ5LHJvdXRlTWF0Y2gpO2Vsc2V7bGV0IG1pc3NpbmdQYXJhbXM9T2JqZWN0LmtleXMocm91dGVSZWdleC5ncm91cHMpLmZpbHRlcihwYXJhbT0+IXF1ZXJ5W3BhcmFtXSYmIXJvdXRlUmVnZXguZ3JvdXBzW3BhcmFtXS5vcHRpb25hbCk7aWYobWlzc2luZ1BhcmFtcy5sZW5ndGg+MCYmIWlzTWlkZGxld2FyZU1hdGNoKXRocm93IEVycm9yKChzaG91bGRJbnRlcnBvbGF0ZT8iVGhlIHByb3ZpZGVkIGBocmVmYCAoIi5jb25jYXQodXJsLCIpIHZhbHVlIGlzIG1pc3NpbmcgcXVlcnkgdmFsdWVzICgiKS5jb25jYXQobWlzc2luZ1BhcmFtcy5qb2luKCIsICIpLCIpIHRvIGJlIGludGVycG9sYXRlZCBwcm9wZXJseS4gIik6IlRoZSBwcm92aWRlZCBgYXNgIHZhbHVlICgiLmNvbmNhdChhc1BhdGhuYW1lLCIpIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBgaHJlZmAgdmFsdWUgKCIpLmNvbmNhdChyb3V0ZSwiKS4gIikpKyJSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzLyIuY29uY2F0KHNob3VsZEludGVycG9sYXRlPyJocmVmLWludGVycG9sYXRpb24tZmFpbGVkIjoiaW5jb21wYXRpYmxlLWhyZWYtYXMiKSl9fWlzUXVlcnlVcGRhdGluZ3x8Um91dGVyLmV2ZW50cy5lbWl0KCJyb3V0ZUNoYW5nZVN0YXJ0Iixhcyxyb3V0ZVByb3BzKTt0cnl7bGV0IHJvdXRlSW5mbz15aWVsZCBfdGhpcy5nZXRSb3V0ZUluZm8oe3JvdXRlLHBhdGhuYW1lLHF1ZXJ5LGFzLHJlc29sdmVkQXMscm91dGVQcm9wcyxsb2NhbGU6bmV4dFN0YXRlLmxvY2FsZSxpc1ByZXZpZXc6bmV4dFN0YXRlLmlzUHJldmlldyxoYXNNaWRkbGV3YXJlOmlzTWlkZGxld2FyZU1hdGNoLHVuc3RhYmxlX3NraXBDbGllbnRDYWNoZTpvcHRpb25zLnVuc3RhYmxlX3NraXBDbGllbnRDYWNoZSxpc1F1ZXJ5VXBkYXRpbmc6aXNRdWVyeVVwZGF0aW5nJiYhX3RoaXMuaXNGYWxsYmFja30pO2lmKCJyb3V0ZSJpbiByb3V0ZUluZm8mJmlzTWlkZGxld2FyZU1hdGNoKXtyb3V0ZT1wYXRobmFtZT1yb3V0ZUluZm8ucm91dGV8fHJvdXRlLHJvdXRlUHJvcHMuc2hhbGxvd3x8KHF1ZXJ5PU9iamVjdC5hc3NpZ24oe30scm91dGVJbmZvLnF1ZXJ5fHx7fSxxdWVyeSkpO2xldCBjbGVhbmVkUGFyc2VkUGF0aG5hbWU9X2hhc0Jhc2VQYXRoLmhhc0Jhc2VQYXRoKHBhcnNlZC5wYXRobmFtZSk/X3JlbW92ZUJhc2VQYXRoLnJlbW92ZUJhc2VQYXRoKHBhcnNlZC5wYXRobmFtZSk6cGFyc2VkLnBhdGhuYW1lO2lmKHJvdXRlTWF0Y2gmJnBhdGhuYW1lIT09Y2xlYW5lZFBhcnNlZFBhdGhuYW1lJiZPYmplY3Qua2V5cyhyb3V0ZU1hdGNoKS5mb3JFYWNoKGtleT0+e3JvdXRlTWF0Y2gmJnF1ZXJ5W2tleV09PT1yb3V0ZU1hdGNoW2tleV0mJmRlbGV0ZSBxdWVyeVtrZXldfSksX2lzRHluYW1pYy5pc0R5bmFtaWNSb3V0ZShwYXRobmFtZSkpe2xldCBwcmVmaXhlZEFzPSFyb3V0ZVByb3BzLnNoYWxsb3cmJnJvdXRlSW5mby5yZXNvbHZlZEFzP3JvdXRlSW5mby5yZXNvbHZlZEFzOl9hZGRCYXNlUGF0aC5hZGRCYXNlUGF0aChfYWRkTG9jYWxlLmFkZExvY2FsZShuZXcgVVJMKGFzLGxvY2F0aW9uLmhyZWYpLnBhdGhuYW1lLG5leHRTdGF0ZS5sb2NhbGUpLCEwKSxyZXdyaXRlQXM9cHJlZml4ZWRBcztfaGFzQmFzZVBhdGguaGFzQmFzZVBhdGgocmV3cml0ZUFzKSYmKHJld3JpdGVBcz1fcmVtb3ZlQmFzZVBhdGgucmVtb3ZlQmFzZVBhdGgocmV3cml0ZUFzKSk7e2xldCBsb2NhbGVSZXN1bHQ9X25vcm1hbGl6ZUxvY2FsZVBhdGgubm9ybWFsaXplTG9jYWxlUGF0aChyZXdyaXRlQXMsX3RoaXMubG9jYWxlcyk7bmV4dFN0YXRlLmxvY2FsZT1sb2NhbGVSZXN1bHQuZGV0ZWN0ZWRMb2NhbGV8fG5leHRTdGF0ZS5sb2NhbGUscmV3cml0ZUFzPWxvY2FsZVJlc3VsdC5wYXRobmFtZX1sZXQgcm91dGVSZWdleDE9X3JvdXRlUmVnZXguZ2V0Um91dGVSZWdleChwYXRobmFtZSksY3VyUm91dGVNYXRjaD1fcm91dGVNYXRjaGVyLmdldFJvdXRlTWF0Y2hlcihyb3V0ZVJlZ2V4MSkobmV3IFVSTChyZXdyaXRlQXMsbG9jYXRpb24uaHJlZikucGF0aG5hbWUpO2N1clJvdXRlTWF0Y2gmJk9iamVjdC5hc3NpZ24ocXVlcnksY3VyUm91dGVNYXRjaCl9fWlmKCJ0eXBlImluIHJvdXRlSW5mbyl7aWYoInJlZGlyZWN0LWludGVybmFsIj09PXJvdXRlSW5mby50eXBlKXJldHVybiBfdGhpcy5jaGFuZ2UobWV0aG9kLHJvdXRlSW5mby5uZXdVcmwscm91dGVJbmZvLm5ld0FzLG9wdGlvbnMpO3JldHVybiBoYW5kbGVIYXJkTmF2aWdhdGlvbih7dXJsOnJvdXRlSW5mby5kZXN0aW5hdGlvbixyb3V0ZXI6X3RoaXN9KSxuZXcgUHJvbWlzZSgoKT0+e30pfWxldHtlcnJvcixwcm9wcyxfX05fU1NHLF9fTl9TU1B9PXJvdXRlSW5mbyxjb21wb25lbnQ9cm91dGVJbmZvLkNvbXBvbmVudDtpZihjb21wb25lbnQmJmNvbXBvbmVudC51bnN0YWJsZV9zY3JpcHRMb2FkZXIpe2xldCBzY3JpcHRzPVtdLmNvbmNhdChjb21wb25lbnQudW5zdGFibGVfc2NyaXB0TG9hZGVyKCkpO3NjcmlwdHMuZm9yRWFjaChzY3JpcHQ9Pntfc2NyaXB0LmhhbmRsZUNsaWVudFNjcmlwdExvYWQoc2NyaXB0LnByb3BzKX0pfWlmKChfX05fU1NHfHxfX05fU1NQKSYmcHJvcHMpe2lmKHByb3BzLnBhZ2VQcm9wcyYmcHJvcHMucGFnZVByb3BzLl9fTl9SRURJUkVDVCl7b3B0aW9ucy5sb2NhbGU9ITE7bGV0IGRlc3RpbmF0aW9uPXByb3BzLnBhZ2VQcm9wcy5fX05fUkVESVJFQ1Q7aWYoZGVzdGluYXRpb24uc3RhcnRzV2l0aCgiLyIpJiYhMSE9PXByb3BzLnBhZ2VQcm9wcy5fX05fUkVESVJFQ1RfQkFTRV9QQVRIKXtsZXQgcGFyc2VkSHJlZj1fcGFyc2VSZWxhdGl2ZVVybC5wYXJzZVJlbGF0aXZlVXJsKGRlc3RpbmF0aW9uKTtwYXJzZWRIcmVmLnBhdGhuYW1lPXJlc29sdmVEeW5hbWljUm91dGUocGFyc2VkSHJlZi5wYXRobmFtZSxwYWdlcyk7bGV0e3VybDpuZXdVcmwsYXM6bmV3QXN9PXByZXBhcmVVcmxBcyhfdGhpcyxkZXN0aW5hdGlvbixkZXN0aW5hdGlvbik7cmV0dXJuIF90aGlzLmNoYW5nZShtZXRob2QsbmV3VXJsLG5ld0FzLG9wdGlvbnMpfXJldHVybiBoYW5kbGVIYXJkTmF2aWdhdGlvbih7dXJsOmRlc3RpbmF0aW9uLHJvdXRlcjpfdGhpc30pLG5ldyBQcm9taXNlKCgpPT57fSl9aWYobmV4dFN0YXRlLmlzUHJldmlldz0hIXByb3BzLl9fTl9QUkVWSUVXLHByb3BzLm5vdEZvdW5kPT09U1NHX0RBVEFfTk9UX0ZPVU5EKXtsZXQgbm90Rm91bmRSb3V0ZTt0cnl7eWllbGQgX3RoaXMuZmV0Y2hDb21wb25lbnQoIi80MDQiKSxub3RGb3VuZFJvdXRlPSIvNDA0In1jYXRjaChfKXtub3RGb3VuZFJvdXRlPSIvX2Vycm9yIn1pZihyb3V0ZUluZm89eWllbGQgX3RoaXMuZ2V0Um91dGVJbmZvKHtyb3V0ZTpub3RGb3VuZFJvdXRlLHBhdGhuYW1lOm5vdEZvdW5kUm91dGUscXVlcnksYXMscmVzb2x2ZWRBcyxyb3V0ZVByb3BzOntzaGFsbG93OiExfSxsb2NhbGU6bmV4dFN0YXRlLmxvY2FsZSxpc1ByZXZpZXc6bmV4dFN0YXRlLmlzUHJldmlld30pLCJ0eXBlImluIHJvdXRlSW5mbyl0aHJvdyBFcnJvcigiVW5leHBlY3RlZCBtaWRkbGV3YXJlIGVmZmVjdCBvbiAvNDA0Iil9fVJvdXRlci5ldmVudHMuZW1pdCgiYmVmb3JlSGlzdG9yeUNoYW5nZSIsYXMscm91dGVQcm9wcyksX3RoaXMuY2hhbmdlU3RhdGUobWV0aG9kLHVybCxhcyxvcHRpb25zKSxpc1F1ZXJ5VXBkYXRpbmcmJiIvX2Vycm9yIj09PXBhdGhuYW1lJiYobnVsbD09KHJlZjI9c2VsZi5fX05FWFRfREFUQV9fLnByb3BzKT92b2lkIDA6bnVsbD09KHJlZjM9cmVmMi5wYWdlUHJvcHMpP3ZvaWQgMDpyZWYzLnN0YXR1c0NvZGUpPT09NTAwJiYobnVsbD09cHJvcHM/dm9pZCAwOnByb3BzLnBhZ2VQcm9wcykmJihwcm9wcy5wYWdlUHJvcHMuc3RhdHVzQ29kZT01MDApO2xldCBpc1ZhbGlkU2hhbGxvd1JvdXRlPW9wdGlvbnMuc2hhbGxvdyYmbmV4dFN0YXRlLnJvdXRlPT09KG51bGwhPShfcm91dGU9cm91dGVJbmZvLnJvdXRlKT9fcm91dGU6cm91dGUpLHNob3VsZFNjcm9sbD1udWxsIT0oX3Njcm9sbD1vcHRpb25zLnNjcm9sbCk/X3Njcm9sbDohb3B0aW9ucy5faCYmIWlzVmFsaWRTaGFsbG93Um91dGUsdXBjb21pbmdSb3V0ZXJTdGF0ZT1fZXh0ZW5kcyh7fSxuZXh0U3RhdGUse3JvdXRlLHBhdGhuYW1lLHF1ZXJ5LGFzUGF0aDpjbGVhbmVkQXMsaXNGYWxsYmFjazohMX0pLHVwY29taW5nU2Nyb2xsU3RhdGU9bnVsbCE9Zm9yY2VkU2Nyb2xsP2ZvcmNlZFNjcm9sbDpzaG91bGRTY3JvbGw/e3g6MCx5OjB9Om51bGwsY2FuU2tpcFVwZGF0aW5nPW9wdGlvbnMuX2gmJiF1cGNvbWluZ1Njcm9sbFN0YXRlJiYhcmVhZHlTdGF0ZUNoYW5nZSYmIWxvY2FsZUNoYW5nZSYmX2NvbXBhcmVTdGF0ZXMuY29tcGFyZVJvdXRlclN0YXRlcyh1cGNvbWluZ1JvdXRlclN0YXRlLF90aGlzLnN0YXRlKTtpZighY2FuU2tpcFVwZGF0aW5nKXtpZih5aWVsZCBfdGhpcy5zZXQodXBjb21pbmdSb3V0ZXJTdGF0ZSxyb3V0ZUluZm8sdXBjb21pbmdTY3JvbGxTdGF0ZSkuY2F0Y2goZT0+e2lmKGUuY2FuY2VsbGVkKWVycm9yPWVycm9yfHxlO2Vsc2UgdGhyb3cgZX0pLGVycm9yKXRocm93IGlzUXVlcnlVcGRhdGluZ3x8Um91dGVyLmV2ZW50cy5lbWl0KCJyb3V0ZUNoYW5nZUVycm9yIixlcnJvcixjbGVhbmVkQXMscm91dGVQcm9wcyksZXJyb3I7bmV4dFN0YXRlLmxvY2FsZSYmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nPW5leHRTdGF0ZS5sb2NhbGUpLGlzUXVlcnlVcGRhdGluZ3x8Um91dGVyLmV2ZW50cy5lbWl0KCJyb3V0ZUNoYW5nZUNvbXBsZXRlIixhcyxyb3V0ZVByb3BzKSxzaG91bGRTY3JvbGwmJi8jLiskLy50ZXN0KGFzKSYmX3RoaXMuc2Nyb2xsVG9IYXNoKGFzKX1yZXR1cm4hMH1jYXRjaChlcnIxMSl7aWYoX2lzRXJyb3IuZGVmYXVsdChlcnIxMSkmJmVycjExLmNhbmNlbGxlZClyZXR1cm4hMTt0aHJvdyBlcnIxMX19KSgpfWNoYW5nZVN0YXRlKG1ldGhvZCx1cmwsYXMpe2xldCBvcHRpb25zPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTp7fTsoInB1c2hTdGF0ZSIhPT1tZXRob2R8fF91dGlscy5nZXRVUkwoKSE9PWFzKSYmKHRoaXMuX3NoYWxsb3c9b3B0aW9ucy5zaGFsbG93LHdpbmRvdy5oaXN0b3J5W21ldGhvZF0oe3VybCxhcyxvcHRpb25zLF9fTjohMCxrZXk6dGhpcy5fa2V5PSJwdXNoU3RhdGUiIT09bWV0aG9kP3RoaXMuX2tleTpjcmVhdGVLZXkoKX0sIiIsYXMpKX1oYW5kbGVSb3V0ZUluZm9FcnJvcihlcnIscGF0aG5hbWUscXVlcnksYXMscm91dGVQcm9wcyxsb2FkRXJyb3JGYWlsKXt2YXIgX3RoaXM9dGhpcztyZXR1cm4gX2FzeW5jX3RvX2dlbmVyYXRvcihmdW5jdGlvbiooKXtpZihjb25zb2xlLmVycm9yKGVyciksZXJyLmNhbmNlbGxlZCl0aHJvdyBlcnI7aWYoX3JvdXRlTG9hZGVyLmlzQXNzZXRFcnJvcihlcnIpfHxsb2FkRXJyb3JGYWlsKXRocm93IFJvdXRlci5ldmVudHMuZW1pdCgicm91dGVDaGFuZ2VFcnJvciIsZXJyLGFzLHJvdXRlUHJvcHMpLGhhbmRsZUhhcmROYXZpZ2F0aW9uKHt1cmw6YXMscm91dGVyOl90aGlzfSksYnVpbGRDYW5jZWxsYXRpb25FcnJvcigpO3RyeXtsZXQgcHJvcHM7bGV0e3BhZ2U6Q29tcG9uZW50LHN0eWxlU2hlZXRzfT15aWVsZCBfdGhpcy5mZXRjaENvbXBvbmVudCgiL19lcnJvciIpLHJvdXRlSW5mbz17cHJvcHMsQ29tcG9uZW50LHN0eWxlU2hlZXRzLGVycixlcnJvcjplcnJ9O2lmKCFyb3V0ZUluZm8ucHJvcHMpdHJ5e3JvdXRlSW5mby5wcm9wcz15aWVsZCBfdGhpcy5nZXRJbml0aWFsUHJvcHMoQ29tcG9uZW50LHtlcnIscGF0aG5hbWUscXVlcnl9KX1jYXRjaChnaXBFcnIpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGluIGVycm9yIHBhZ2UgYGdldEluaXRpYWxQcm9wc2A6ICIsZ2lwRXJyKSxyb3V0ZUluZm8ucHJvcHM9e319cmV0dXJuIHJvdXRlSW5mb31jYXRjaChyb3V0ZUluZm9FcnIpe3JldHVybiBfdGhpcy5oYW5kbGVSb3V0ZUluZm9FcnJvcihfaXNFcnJvci5kZWZhdWx0KHJvdXRlSW5mb0Vycik/cm91dGVJbmZvRXJyOkVycm9yKHJvdXRlSW5mb0VycisiIikscGF0aG5hbWUscXVlcnksYXMscm91dGVQcm9wcywhMCl9fSkoKX1nZXRSb3V0ZUluZm8ocGFyYW0pe2xldHtyb3V0ZTpyZXF1ZXN0ZWRSb3V0ZSxwYXRobmFtZSxxdWVyeSxhcyxyZXNvbHZlZEFzLHJvdXRlUHJvcHMsbG9jYWxlLGhhc01pZGRsZXdhcmUsaXNQcmV2aWV3LHVuc3RhYmxlX3NraXBDbGllbnRDYWNoZSxpc1F1ZXJ5VXBkYXRpbmd9PXBhcmFtO3ZhciBfdGhpcz10aGlzO3JldHVybiBfYXN5bmNfdG9fZ2VuZXJhdG9yKGZ1bmN0aW9uKigpe2xldCByb3V0ZT1yZXF1ZXN0ZWRSb3V0ZTt0cnl7dmFyIHJlZixyZWY0LHJlZjUsb3B0aW9ucztsZXQgaGFuZGxlQ2FuY2VsbGVkPWdldENhbmNlbGxlZEhhbmRsZXIoe3JvdXRlLHJvdXRlcjpfdGhpc30pLGV4aXN0aW5nSW5mbz1fdGhpcy5jb21wb25lbnRzW3JvdXRlXTtpZihyb3V0ZVByb3BzLnNoYWxsb3cmJmV4aXN0aW5nSW5mbyYmX3RoaXMucm91dGU9PT1yb3V0ZSlyZXR1cm4gZXhpc3RpbmdJbmZvO2hhc01pZGRsZXdhcmUmJihleGlzdGluZ0luZm89dm9pZCAwKTtsZXQgY2FjaGVkUm91dGVJbmZvPSFleGlzdGluZ0luZm98fCJpbml0aWFsImluIGV4aXN0aW5nSW5mbz92b2lkIDA6ZXhpc3RpbmdJbmZvLGZldGNoTmV4dERhdGFQYXJhbXM9e2RhdGFIcmVmOl90aGlzLnBhZ2VMb2FkZXIuZ2V0RGF0YUhyZWYoe2hyZWY6X2Zvcm1hdFVybC5mb3JtYXRXaXRoVmFsaWRhdGlvbih7cGF0aG5hbWUscXVlcnl9KSxza2lwSW50ZXJwb2xhdGlvbjohMCxhc1BhdGg6cmVzb2x2ZWRBcyxsb2NhbGV9KSxoYXNNaWRkbGV3YXJlOiEwLGlzU2VydmVyUmVuZGVyOl90aGlzLmlzU3NyLHBhcnNlSlNPTjohMCxpbmZsaWdodENhY2hlOl90aGlzLnNkYyxwZXJzaXN0Q2FjaGU6IWlzUHJldmlldyxpc1ByZWZldGNoOiExLHVuc3RhYmxlX3NraXBDbGllbnRDYWNoZSxpc0JhY2tncm91bmQ6aXNRdWVyeVVwZGF0aW5nfSxkYXRhPWlzUXVlcnlVcGRhdGluZz97fTp5aWVsZChvcHRpb25zPXtmZXRjaERhdGE6KCk9PmZldGNoTmV4dERhdGEoZmV0Y2hOZXh0RGF0YVBhcmFtcyksYXNQYXRoOnJlc29sdmVkQXMsbG9jYWxlOmxvY2FsZSxyb3V0ZXI6X3RoaXN9LG1hdGNoZXNNaWRkbGV3YXJlKG9wdGlvbnMpLnRoZW4obWF0Y2hlcz0+bWF0Y2hlcyYmb3B0aW9ucy5mZXRjaERhdGE/b3B0aW9ucy5mZXRjaERhdGEoKS50aGVuKGRhdGE9PihmdW5jdGlvbihzb3VyY2UscmVzcG9uc2Usb3B0aW9ucyl7bGV0IG5leHRDb25maWc9e2Jhc2VQYXRoOm9wdGlvbnMucm91dGVyLmJhc2VQYXRoLGkxOG46e2xvY2FsZXM6b3B0aW9ucy5yb3V0ZXIubG9jYWxlc30sdHJhaWxpbmdTbGFzaDpCb29sZWFuKCExKX0scmV3cml0ZUhlYWRlcj1yZXNwb25zZS5oZWFkZXJzLmdldCgieC1uZXh0anMtcmV3cml0ZSIpLHJld3JpdGVUYXJnZXQ9cmV3cml0ZUhlYWRlcnx8cmVzcG9uc2UuaGVhZGVycy5nZXQoIngtbmV4dGpzLW1hdGNoZWQtcGF0aCIpLG1hdGNoZWRQYXRoPXJlc3BvbnNlLmhlYWRlcnMuZ2V0KCJ4LW1hdGNoZWQtcGF0aCIpO2lmKCFtYXRjaGVkUGF0aHx8cmV3cml0ZVRhcmdldHx8bWF0Y2hlZFBhdGguaW5jbHVkZXMoIl9fbmV4dF9kYXRhX2NhdGNoYWxsIil8fG1hdGNoZWRQYXRoLmluY2x1ZGVzKCIvX2Vycm9yIil8fG1hdGNoZWRQYXRoLmluY2x1ZGVzKCIvNDA0Iil8fChyZXdyaXRlVGFyZ2V0PW1hdGNoZWRQYXRoKSxyZXdyaXRlVGFyZ2V0KXtpZihyZXdyaXRlVGFyZ2V0LnN0YXJ0c1dpdGgoIi8iKSl7bGV0IHBhcnNlZFJld3JpdGVUYXJnZXQ9X3BhcnNlUmVsYXRpdmVVcmwucGFyc2VSZWxhdGl2ZVVybChyZXdyaXRlVGFyZ2V0KSxwYXRobmFtZUluZm89X2dldE5leHRQYXRobmFtZUluZm8uZ2V0TmV4dFBhdGhuYW1lSW5mbyhwYXJzZWRSZXdyaXRlVGFyZ2V0LnBhdGhuYW1lLHtuZXh0Q29uZmlnLHBhcnNlRGF0YTohMH0pLGZzUGF0aG5hbWU9X3JlbW92ZVRyYWlsaW5nU2xhc2gucmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZUluZm8ucGF0aG5hbWUpO3JldHVybiBQcm9taXNlLmFsbChbb3B0aW9ucy5yb3V0ZXIucGFnZUxvYWRlci5nZXRQYWdlTGlzdCgpLF9yb3V0ZUxvYWRlci5nZXRDbGllbnRCdWlsZE1hbmlmZXN0KCldKS50aGVuKHBhcmFtPT57bGV0W3BhZ2VzLHtfX3Jld3JpdGVzOnJld3JpdGVzfV09cGFyYW0sYXM9X2FkZExvY2FsZS5hZGRMb2NhbGUocGF0aG5hbWVJbmZvLnBhdGhuYW1lLHBhdGhuYW1lSW5mby5sb2NhbGUpO2lmKF9pc0R5bmFtaWMuaXNEeW5hbWljUm91dGUoYXMpfHwhcmV3cml0ZUhlYWRlciYmcGFnZXMuaW5jbHVkZXMoX25vcm1hbGl6ZUxvY2FsZVBhdGgubm9ybWFsaXplTG9jYWxlUGF0aChfcmVtb3ZlQmFzZVBhdGgucmVtb3ZlQmFzZVBhdGgoYXMpLG9wdGlvbnMucm91dGVyLmxvY2FsZXMpLnBhdGhuYW1lKSl7bGV0IHBhcnNlZFNvdXJjZT1fZ2V0TmV4dFBhdGhuYW1lSW5mby5nZXROZXh0UGF0aG5hbWVJbmZvKF9wYXJzZVJlbGF0aXZlVXJsLnBhcnNlUmVsYXRpdmVVcmwoc291cmNlKS5wYXRobmFtZSx7cGFyc2VEYXRhOiEwfSk7YXM9X2FkZEJhc2VQYXRoLmFkZEJhc2VQYXRoKHBhcnNlZFNvdXJjZS5wYXRobmFtZSkscGFyc2VkUmV3cml0ZVRhcmdldC5wYXRobmFtZT1hc317bGV0IHJlc3VsdD1fcmVzb2x2ZVJld3JpdGVzLmRlZmF1bHQoYXMscGFnZXMscmV3cml0ZXMscGFyc2VkUmV3cml0ZVRhcmdldC5xdWVyeSxwYXRoPT5yZXNvbHZlRHluYW1pY1JvdXRlKHBhdGgscGFnZXMpLG9wdGlvbnMucm91dGVyLmxvY2FsZXMpO3Jlc3VsdC5tYXRjaGVkUGFnZSYmKHBhcnNlZFJld3JpdGVUYXJnZXQucGF0aG5hbWU9cmVzdWx0LnBhcnNlZEFzLnBhdGhuYW1lLGFzPXBhcnNlZFJld3JpdGVUYXJnZXQucGF0aG5hbWUsT2JqZWN0LmFzc2lnbihwYXJzZWRSZXdyaXRlVGFyZ2V0LnF1ZXJ5LHJlc3VsdC5wYXJzZWRBcy5xdWVyeSkpfWxldCByZXNvbHZlZEhyZWY9cGFnZXMuaW5jbHVkZXMoZnNQYXRobmFtZSk/ZnNQYXRobmFtZTpyZXNvbHZlRHluYW1pY1JvdXRlKF9ub3JtYWxpemVMb2NhbGVQYXRoLm5vcm1hbGl6ZUxvY2FsZVBhdGgoX3JlbW92ZUJhc2VQYXRoLnJlbW92ZUJhc2VQYXRoKHBhcnNlZFJld3JpdGVUYXJnZXQucGF0aG5hbWUpLG9wdGlvbnMucm91dGVyLmxvY2FsZXMpLnBhdGhuYW1lLHBhZ2VzKTtpZihfaXNEeW5hbWljLmlzRHluYW1pY1JvdXRlKHJlc29sdmVkSHJlZikpe2xldCBtYXRjaGVzPV9yb3V0ZU1hdGNoZXIuZ2V0Um91dGVNYXRjaGVyKF9yb3V0ZVJlZ2V4LmdldFJvdXRlUmVnZXgocmVzb2x2ZWRIcmVmKSkoYXMpO09iamVjdC5hc3NpZ24ocGFyc2VkUmV3cml0ZVRhcmdldC5xdWVyeSxtYXRjaGVzfHx7fSl9cmV0dXJue3R5cGU6InJld3JpdGUiLHBhcnNlZEFzOnBhcnNlZFJld3JpdGVUYXJnZXQscmVzb2x2ZWRIcmVmfX0pfWxldCBzcmM9X3BhcnNlUGF0aC5wYXJzZVBhdGgoc291cmNlKSxwYXRobmFtZT1fZm9ybWF0TmV4dFBhdGhuYW1lSW5mby5mb3JtYXROZXh0UGF0aG5hbWVJbmZvKF9leHRlbmRzKHt9LF9nZXROZXh0UGF0aG5hbWVJbmZvLmdldE5leHRQYXRobmFtZUluZm8oc3JjLnBhdGhuYW1lLHtuZXh0Q29uZmlnLHBhcnNlRGF0YTohMH0pLHtkZWZhdWx0TG9jYWxlOm9wdGlvbnMucm91dGVyLmRlZmF1bHRMb2NhbGUsYnVpbGRJZDoiIn0pKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt0eXBlOiJyZWRpcmVjdC1leHRlcm5hbCIsZGVzdGluYXRpb246IiIuY29uY2F0KHBhdGhuYW1lKS5jb25jYXQoc3JjLnF1ZXJ5KS5jb25jYXQoc3JjLmhhc2gpfSl9bGV0IHJlZGlyZWN0VGFyZ2V0PXJlc3BvbnNlLmhlYWRlcnMuZ2V0KCJ4LW5leHRqcy1yZWRpcmVjdCIpO2lmKHJlZGlyZWN0VGFyZ2V0KXtpZihyZWRpcmVjdFRhcmdldC5zdGFydHNXaXRoKCIvIikpe2xldCBzcmMxPV9wYXJzZVBhdGgucGFyc2VQYXRoKHJlZGlyZWN0VGFyZ2V0KSxwYXRobmFtZTE9X2Zvcm1hdE5leHRQYXRobmFtZUluZm8uZm9ybWF0TmV4dFBhdGhuYW1lSW5mbyhfZXh0ZW5kcyh7fSxfZ2V0TmV4dFBhdGhuYW1lSW5mby5nZXROZXh0UGF0aG5hbWVJbmZvKHNyYzEucGF0aG5hbWUse25leHRDb25maWcscGFyc2VEYXRhOiEwfSkse2RlZmF1bHRMb2NhbGU6b3B0aW9ucy5yb3V0ZXIuZGVmYXVsdExvY2FsZSxidWlsZElkOiIifSkpO3JldHVybiBQcm9taXNlLnJlc29sdmUoe3R5cGU6InJlZGlyZWN0LWludGVybmFsIixuZXdBczoiIi5jb25jYXQocGF0aG5hbWUxKS5jb25jYXQoc3JjMS5xdWVyeSkuY29uY2F0KHNyYzEuaGFzaCksbmV3VXJsOiIiLmNvbmNhdChwYXRobmFtZTEpLmNvbmNhdChzcmMxLnF1ZXJ5KS5jb25jYXQoc3JjMS5oYXNoKX0pfXJldHVybiBQcm9taXNlLnJlc29sdmUoe3R5cGU6InJlZGlyZWN0LWV4dGVybmFsIixkZXN0aW5hdGlvbjpyZWRpcmVjdFRhcmdldH0pfXJldHVybiBQcm9taXNlLnJlc29sdmUoe3R5cGU6Im5leHQifSl9KShkYXRhLmRhdGFIcmVmLGRhdGEucmVzcG9uc2Usb3B0aW9ucykudGhlbihlZmZlY3Q9Pih7ZGF0YUhyZWY6ZGF0YS5kYXRhSHJlZixjYWNoZUtleTpkYXRhLmNhY2hlS2V5LGpzb246ZGF0YS5qc29uLHJlc3BvbnNlOmRhdGEucmVzcG9uc2UsdGV4dDpkYXRhLnRleHQsZWZmZWN0fSkpKS5jYXRjaChfZXJyPT5udWxsKTpudWxsKSk7aWYoaXNRdWVyeVVwZGF0aW5nJiZkYXRhJiYoZGF0YS5qc29uPXNlbGYuX19ORVhUX0RBVEFfXy5wcm9wcyksaGFuZGxlQ2FuY2VsbGVkKCksKG51bGw9PWRhdGE/dm9pZCAwOm51bGw9PShyZWY9ZGF0YS5lZmZlY3QpP3ZvaWQgMDpyZWYudHlwZSk9PT0icmVkaXJlY3QtaW50ZXJuYWwifHwobnVsbD09ZGF0YT92b2lkIDA6bnVsbD09KHJlZjQ9ZGF0YS5lZmZlY3QpP3ZvaWQgMDpyZWY0LnR5cGUpPT09InJlZGlyZWN0LWV4dGVybmFsIilyZXR1cm4gZGF0YS5lZmZlY3Q7aWYoKG51bGw9PWRhdGE/dm9pZCAwOm51bGw9PShyZWY1PWRhdGEuZWZmZWN0KT92b2lkIDA6cmVmNS50eXBlKT09PSJyZXdyaXRlIiYmKHJvdXRlPV9yZW1vdmVUcmFpbGluZ1NsYXNoLnJlbW92ZVRyYWlsaW5nU2xhc2goZGF0YS5lZmZlY3QucmVzb2x2ZWRIcmVmKSxwYXRobmFtZT1kYXRhLmVmZmVjdC5yZXNvbHZlZEhyZWYscXVlcnk9X2V4dGVuZHMoe30scXVlcnksZGF0YS5lZmZlY3QucGFyc2VkQXMucXVlcnkpLHJlc29sdmVkQXM9X3JlbW92ZUJhc2VQYXRoLnJlbW92ZUJhc2VQYXRoKF9ub3JtYWxpemVMb2NhbGVQYXRoLm5vcm1hbGl6ZUxvY2FsZVBhdGgoZGF0YS5lZmZlY3QucGFyc2VkQXMucGF0aG5hbWUsX3RoaXMubG9jYWxlcykucGF0aG5hbWUpLGV4aXN0aW5nSW5mbz1fdGhpcy5jb21wb25lbnRzW3JvdXRlXSxyb3V0ZVByb3BzLnNoYWxsb3cmJmV4aXN0aW5nSW5mbyYmX3RoaXMucm91dGU9PT1yb3V0ZSYmIWhhc01pZGRsZXdhcmUpKXJldHVybiBfZXh0ZW5kcyh7fSxleGlzdGluZ0luZm8se3JvdXRlfSk7aWYoIi9hcGkiPT09cm91dGV8fHJvdXRlLnN0YXJ0c1dpdGgoIi9hcGkvIikpcmV0dXJuIGhhbmRsZUhhcmROYXZpZ2F0aW9uKHt1cmw6YXMscm91dGVyOl90aGlzfSksbmV3IFByb21pc2UoKCk9Pnt9KTtsZXQgcm91dGVJbmZvPWNhY2hlZFJvdXRlSW5mb3x8KHlpZWxkIF90aGlzLmZldGNoQ29tcG9uZW50KHJvdXRlKS50aGVuKHJlcz0+KHtDb21wb25lbnQ6cmVzLnBhZ2Usc3R5bGVTaGVldHM6cmVzLnN0eWxlU2hlZXRzLF9fTl9TU0c6cmVzLm1vZC5fX05fU1NHLF9fTl9TU1A6cmVzLm1vZC5fX05fU1NQfSkpKSxzaG91bGRGZXRjaERhdGE9cm91dGVJbmZvLl9fTl9TU0d8fHJvdXRlSW5mby5fX05fU1NQLHtwcm9wcyxjYWNoZUtleX09eWllbGQgX3RoaXMuX2dldERhdGEoX2FzeW5jX3RvX2dlbmVyYXRvcihmdW5jdGlvbiooKXtpZihzaG91bGRGZXRjaERhdGEpe2xldHtqc29uLGNhY2hlS2V5Ol9jYWNoZUtleX09KG51bGw9PWRhdGE/dm9pZCAwOmRhdGEuanNvbik/ZGF0YTp5aWVsZCBmZXRjaE5leHREYXRhKHtkYXRhSHJlZjpfdGhpcy5wYWdlTG9hZGVyLmdldERhdGFIcmVmKHtocmVmOl9mb3JtYXRVcmwuZm9ybWF0V2l0aFZhbGlkYXRpb24oe3BhdGhuYW1lLHF1ZXJ5fSksYXNQYXRoOnJlc29sdmVkQXMsbG9jYWxlfSksaXNTZXJ2ZXJSZW5kZXI6X3RoaXMuaXNTc3IscGFyc2VKU09OOiEwLGluZmxpZ2h0Q2FjaGU6X3RoaXMuc2RjLHBlcnNpc3RDYWNoZTohaXNQcmV2aWV3LGlzUHJlZmV0Y2g6ITEsdW5zdGFibGVfc2tpcENsaWVudENhY2hlfSk7cmV0dXJue2NhY2hlS2V5Ol9jYWNoZUtleSxwcm9wczpqc29ufHx7fX19cmV0dXJue2hlYWRlcnM6e30sY2FjaGVLZXk6IiIscHJvcHM6eWllbGQgX3RoaXMuZ2V0SW5pdGlhbFByb3BzKHJvdXRlSW5mby5Db21wb25lbnQse3BhdGhuYW1lLHF1ZXJ5LGFzUGF0aDphcyxsb2NhbGUsbG9jYWxlczpfdGhpcy5sb2NhbGVzLGRlZmF1bHRMb2NhbGU6X3RoaXMuZGVmYXVsdExvY2FsZX0pfX0pKTtyZXR1cm4gcm91dGVJbmZvLl9fTl9TU1AmJmZldGNoTmV4dERhdGFQYXJhbXMuZGF0YUhyZWYmJmRlbGV0ZSBfdGhpcy5zZGNbY2FjaGVLZXldLF90aGlzLmlzUHJldmlld3x8IXJvdXRlSW5mby5fX05fU1NHfHxpc1F1ZXJ5VXBkYXRpbmd8fGZldGNoTmV4dERhdGEoT2JqZWN0LmFzc2lnbih7fSxmZXRjaE5leHREYXRhUGFyYW1zLHtpc0JhY2tncm91bmQ6ITAscGVyc2lzdENhY2hlOiExLGluZmxpZ2h0Q2FjaGU6YmFja2dyb3VuZENhY2hlfSkpLmNhdGNoKCgpPT57fSkscHJvcHMucGFnZVByb3BzPU9iamVjdC5hc3NpZ24oe30scHJvcHMucGFnZVByb3BzKSxyb3V0ZUluZm8ucHJvcHM9cHJvcHMscm91dGVJbmZvLnJvdXRlPXJvdXRlLHJvdXRlSW5mby5xdWVyeT1xdWVyeSxyb3V0ZUluZm8ucmVzb2x2ZWRBcz1yZXNvbHZlZEFzLF90aGlzLmNvbXBvbmVudHNbcm91dGVdPXJvdXRlSW5mbyxyb3V0ZUluZm99Y2F0Y2goZXJyKXtyZXR1cm4gX3RoaXMuaGFuZGxlUm91dGVJbmZvRXJyb3IoX2lzRXJyb3IuZ2V0UHJvcGVyRXJyb3IoZXJyKSxwYXRobmFtZSxxdWVyeSxhcyxyb3V0ZVByb3BzKX19KSgpfXNldChzdGF0ZSxkYXRhLHJlc2V0U2Nyb2xsKXtyZXR1cm4gdGhpcy5zdGF0ZT1zdGF0ZSx0aGlzLnN1YihkYXRhLHRoaXMuY29tcG9uZW50c1siL19hcHAiXS5Db21wb25lbnQscmVzZXRTY3JvbGwpfWJlZm9yZVBvcFN0YXRlKGNiKXt0aGlzLl9icHM9Y2J9b25seUFIYXNoQ2hhbmdlKGFzKXtpZighdGhpcy5hc1BhdGgpcmV0dXJuITE7bGV0W29sZFVybE5vSGFzaCxvbGRIYXNoXT10aGlzLmFzUGF0aC5zcGxpdCgiIyIpLFtuZXdVcmxOb0hhc2gsbmV3SGFzaF09YXMuc3BsaXQoIiMiKTtyZXR1cm4hIW5ld0hhc2gmJm9sZFVybE5vSGFzaD09PW5ld1VybE5vSGFzaCYmb2xkSGFzaD09PW5ld0hhc2h8fG9sZFVybE5vSGFzaD09PW5ld1VybE5vSGFzaCYmb2xkSGFzaCE9PW5ld0hhc2h9c2Nyb2xsVG9IYXNoKGFzKXtsZXRbLGhhc2g9IiJdPWFzLnNwbGl0KCIjIik7aWYoIiI9PT1oYXNofHwidG9wIj09PWhhc2gpe2hhbmRsZVNtb290aFNjcm9sbCgoKT0+d2luZG93LnNjcm9sbFRvKDAsMCkpO3JldHVybn1sZXQgcmF3SGFzaD1kZWNvZGVVUklDb21wb25lbnQoaGFzaCksaWRFbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChyYXdIYXNoKTtpZihpZEVsKXtoYW5kbGVTbW9vdGhTY3JvbGwoKCk9PmlkRWwuc2Nyb2xsSW50b1ZpZXcoKSk7cmV0dXJufWxldCBuYW1lRWw9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUocmF3SGFzaClbMF07bmFtZUVsJiZoYW5kbGVTbW9vdGhTY3JvbGwoKCk9Pm5hbWVFbC5zY3JvbGxJbnRvVmlldygpKX11cmxJc05ldyhhc1BhdGgpe3JldHVybiB0aGlzLmFzUGF0aCE9PWFzUGF0aH1wcmVmZXRjaCh1cmwpe2xldCBhc1BhdGg9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnVybCxvcHRpb25zPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fTt2YXIgX3RoaXM9dGhpcztyZXR1cm4gX2FzeW5jX3RvX2dlbmVyYXRvcihmdW5jdGlvbiooKXtpZihfaXNCb3QuaXNCb3Qod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpKXJldHVybjtsZXQgcGFyc2VkPV9wYXJzZVJlbGF0aXZlVXJsLnBhcnNlUmVsYXRpdmVVcmwodXJsKSx7cGF0aG5hbWUscXVlcnl9PXBhcnNlZDtpZighMT09PW9wdGlvbnMubG9jYWxlKXtwYXRobmFtZT1fbm9ybWFsaXplTG9jYWxlUGF0aC5ub3JtYWxpemVMb2NhbGVQYXRoKHBhdGhuYW1lLF90aGlzLmxvY2FsZXMpLnBhdGhuYW1lLHBhcnNlZC5wYXRobmFtZT1wYXRobmFtZSx1cmw9X2Zvcm1hdFVybC5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpO2xldCBwYXJzZWRBcz1fcGFyc2VSZWxhdGl2ZVVybC5wYXJzZVJlbGF0aXZlVXJsKGFzUGF0aCksbG9jYWxlUGF0aFJlc3VsdD1fbm9ybWFsaXplTG9jYWxlUGF0aC5ub3JtYWxpemVMb2NhbGVQYXRoKHBhcnNlZEFzLnBhdGhuYW1lLF90aGlzLmxvY2FsZXMpO3BhcnNlZEFzLnBhdGhuYW1lPWxvY2FsZVBhdGhSZXN1bHQucGF0aG5hbWUsb3B0aW9ucy5sb2NhbGU9bG9jYWxlUGF0aFJlc3VsdC5kZXRlY3RlZExvY2FsZXx8X3RoaXMuZGVmYXVsdExvY2FsZSxhc1BhdGg9X2Zvcm1hdFVybC5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWRBcyl9bGV0IHBhZ2VzPXlpZWxkIF90aGlzLnBhZ2VMb2FkZXIuZ2V0UGFnZUxpc3QoKSxyZXNvbHZlZEFzPWFzUGF0aCxsb2NhbGU9dm9pZCAwIT09b3B0aW9ucy5sb2NhbGU/b3B0aW9ucy5sb2NhbGV8fHZvaWQgMDpfdGhpcy5sb2NhbGU7aWYoYXNQYXRoLnN0YXJ0c1dpdGgoIi8iKSl7bGV0IHJld3JpdGVzOyh7X19yZXdyaXRlczpyZXdyaXRlc309eWllbGQgX3JvdXRlTG9hZGVyLmdldENsaWVudEJ1aWxkTWFuaWZlc3QoKSk7bGV0IHJld3JpdGVzUmVzdWx0PV9yZXNvbHZlUmV3cml0ZXMuZGVmYXVsdChfYWRkQmFzZVBhdGguYWRkQmFzZVBhdGgoX2FkZExvY2FsZS5hZGRMb2NhbGUoYXNQYXRoLF90aGlzLmxvY2FsZSksITApLHBhZ2VzLHJld3JpdGVzLHBhcnNlZC5xdWVyeSxwPT5yZXNvbHZlRHluYW1pY1JvdXRlKHAscGFnZXMpLF90aGlzLmxvY2FsZXMpO2lmKHJld3JpdGVzUmVzdWx0LmV4dGVybmFsRGVzdClyZXR1cm47cmVzb2x2ZWRBcz1fcmVtb3ZlTG9jYWxlLnJlbW92ZUxvY2FsZShfcmVtb3ZlQmFzZVBhdGgucmVtb3ZlQmFzZVBhdGgocmV3cml0ZXNSZXN1bHQuYXNQYXRoKSxfdGhpcy5sb2NhbGUpLHJld3JpdGVzUmVzdWx0Lm1hdGNoZWRQYWdlJiZyZXdyaXRlc1Jlc3VsdC5yZXNvbHZlZEhyZWYmJihwYXRobmFtZT1yZXdyaXRlc1Jlc3VsdC5yZXNvbHZlZEhyZWYscGFyc2VkLnBhdGhuYW1lPXBhdGhuYW1lLHVybD1fZm9ybWF0VXJsLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHBhcnNlZCkpfXBhcnNlZC5wYXRobmFtZT1yZXNvbHZlRHluYW1pY1JvdXRlKHBhcnNlZC5wYXRobmFtZSxwYWdlcyksX2lzRHluYW1pYy5pc0R5bmFtaWNSb3V0ZShwYXJzZWQucGF0aG5hbWUpJiYocGF0aG5hbWU9cGFyc2VkLnBhdGhuYW1lLHBhcnNlZC5wYXRobmFtZT1wYXRobmFtZSxPYmplY3QuYXNzaWduKHF1ZXJ5LF9yb3V0ZU1hdGNoZXIuZ2V0Um91dGVNYXRjaGVyKF9yb3V0ZVJlZ2V4LmdldFJvdXRlUmVnZXgocGFyc2VkLnBhdGhuYW1lKSkoX3BhcnNlUGF0aC5wYXJzZVBhdGgoYXNQYXRoKS5wYXRobmFtZSl8fHt9KSx1cmw9X2Zvcm1hdFVybC5mb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpKTtsZXQgcm91dGU9X3JlbW92ZVRyYWlsaW5nU2xhc2gucmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSk7eWllbGQgUHJvbWlzZS5hbGwoW190aGlzLnBhZ2VMb2FkZXIuX2lzU3NnKHJvdXRlKS50aGVuKGlzU3NnPT4hIWlzU3NnJiZmZXRjaE5leHREYXRhKHtkYXRhSHJlZjpfdGhpcy5wYWdlTG9hZGVyLmdldERhdGFIcmVmKHtocmVmOnVybCxhc1BhdGg6cmVzb2x2ZWRBcyxsb2NhbGU6bG9jYWxlfSksaXNTZXJ2ZXJSZW5kZXI6ITEscGFyc2VKU09OOiEwLGluZmxpZ2h0Q2FjaGU6X3RoaXMuc2RjLHBlcnNpc3RDYWNoZTohX3RoaXMuaXNQcmV2aWV3LGlzUHJlZmV0Y2g6ITAsdW5zdGFibGVfc2tpcENsaWVudENhY2hlOm9wdGlvbnMudW5zdGFibGVfc2tpcENsaWVudENhY2hlfHxvcHRpb25zLnByaW9yaXR5JiYhMH0pLnRoZW4oKCk9PiExKSksX3RoaXMucGFnZUxvYWRlcltvcHRpb25zLnByaW9yaXR5PyJsb2FkUGFnZSI6InByZWZldGNoIl0ocm91dGUpXSl9KSgpfWZldGNoQ29tcG9uZW50KHJvdXRlKXt2YXIgX3RoaXM9dGhpcztyZXR1cm4gX2FzeW5jX3RvX2dlbmVyYXRvcihmdW5jdGlvbiooKXtsZXQgaGFuZGxlQ2FuY2VsbGVkPWdldENhbmNlbGxlZEhhbmRsZXIoe3JvdXRlLHJvdXRlcjpfdGhpc30pO3RyeXtsZXQgY29tcG9uZW50UmVzdWx0PXlpZWxkIF90aGlzLnBhZ2VMb2FkZXIubG9hZFBhZ2Uocm91dGUpO3JldHVybiBoYW5kbGVDYW5jZWxsZWQoKSxjb21wb25lbnRSZXN1bHR9Y2F0Y2goZXJyKXt0aHJvdyBoYW5kbGVDYW5jZWxsZWQoKSxlcnJ9fSkoKX1fZ2V0RGF0YShmbil7bGV0IGNhbmNlbGxlZD0hMSxjYW5jZWw9KCk9PntjYW5jZWxsZWQ9ITB9O3JldHVybiB0aGlzLmNsYz1jYW5jZWwsZm4oKS50aGVuKGRhdGE9PntpZihjYW5jZWw9PT10aGlzLmNsYyYmKHRoaXMuY2xjPW51bGwpLGNhbmNlbGxlZCl7bGV0IGVycj1FcnJvcigiTG9hZGluZyBpbml0aWFsIHByb3BzIGNhbmNlbGxlZCIpO3Rocm93IGVyci5jYW5jZWxsZWQ9ITAsZXJyfXJldHVybiBkYXRhfSl9X2dldEZsaWdodERhdGEoZGF0YUhyZWYpe3JldHVybiBmZXRjaE5leHREYXRhKHtkYXRhSHJlZixpc1NlcnZlclJlbmRlcjohMCxwYXJzZUpTT046ITEsaW5mbGlnaHRDYWNoZTp0aGlzLnNkYyxwZXJzaXN0Q2FjaGU6ITEsaXNQcmVmZXRjaDohMX0pLnRoZW4ocGFyYW09PntsZXR7dGV4dH09cGFyYW07cmV0dXJue2RhdGE6dGV4dH19KX1nZXRJbml0aWFsUHJvcHMoQ29tcG9uZW50LGN0eCl7bGV0e0NvbXBvbmVudDpBcHB9PXRoaXMuY29tcG9uZW50c1siL19hcHAiXSxBcHBUcmVlPXRoaXMuX3dyYXBBcHAoQXBwKTtyZXR1cm4gY3R4LkFwcFRyZWU9QXBwVHJlZSxfdXRpbHMubG9hZEdldEluaXRpYWxQcm9wcyhBcHAse0FwcFRyZWUsQ29tcG9uZW50LHJvdXRlcjp0aGlzLGN0eH0pfWdldCByb3V0ZSgpe3JldHVybiB0aGlzLnN0YXRlLnJvdXRlfWdldCBwYXRobmFtZSgpe3JldHVybiB0aGlzLnN0YXRlLnBhdGhuYW1lfWdldCBxdWVyeSgpe3JldHVybiB0aGlzLnN0YXRlLnF1ZXJ5fWdldCBhc1BhdGgoKXtyZXR1cm4gdGhpcy5zdGF0ZS5hc1BhdGh9Z2V0IGxvY2FsZSgpe3JldHVybiB0aGlzLnN0YXRlLmxvY2FsZX1nZXQgaXNGYWxsYmFjaygpe3JldHVybiB0aGlzLnN0YXRlLmlzRmFsbGJhY2t9Z2V0IGlzUHJldmlldygpe3JldHVybiB0aGlzLnN0YXRlLmlzUHJldmlld31jb25zdHJ1Y3RvcihwYXRobmFtZTEscXVlcnkxLGFzMSx7aW5pdGlhbFByb3BzLHBhZ2VMb2FkZXIsQXBwLHdyYXBBcHAsQ29tcG9uZW50LGVycixzdWJzY3JpcHRpb24saXNGYWxsYmFjayxsb2NhbGUsbG9jYWxlcyxkZWZhdWx0TG9jYWxlLGRvbWFpbkxvY2FsZXMsaXNQcmV2aWV3fSl7dGhpcy5zZGM9e30sdGhpcy5pc0ZpcnN0UG9wU3RhdGVFdmVudD0hMCx0aGlzLl9rZXk9Y3JlYXRlS2V5KCksdGhpcy5vblBvcFN0YXRlPWU9PntsZXQgZm9yY2VkU2Nyb2xsO2xldHtpc0ZpcnN0UG9wU3RhdGVFdmVudH09dGhpczt0aGlzLmlzRmlyc3RQb3BTdGF0ZUV2ZW50PSExO2xldCBzdGF0ZT1lLnN0YXRlO2lmKCFzdGF0ZSl7bGV0e3BhdGhuYW1lLHF1ZXJ5fT10aGlzO3RoaXMuY2hhbmdlU3RhdGUoInJlcGxhY2VTdGF0ZSIsX2Zvcm1hdFVybC5mb3JtYXRXaXRoVmFsaWRhdGlvbih7cGF0aG5hbWU6X2FkZEJhc2VQYXRoLmFkZEJhc2VQYXRoKHBhdGhuYW1lKSxxdWVyeX0pLF91dGlscy5nZXRVUkwoKSk7cmV0dXJufWlmKHN0YXRlLl9fTkEpe3dpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtyZXR1cm59aWYoIXN0YXRlLl9fTnx8aXNGaXJzdFBvcFN0YXRlRXZlbnQmJnRoaXMubG9jYWxlPT09c3RhdGUub3B0aW9ucy5sb2NhbGUmJnN0YXRlLmFzPT09dGhpcy5hc1BhdGgpcmV0dXJuO2xldHt1cmwsYXMsb3B0aW9ucyxrZXl9PXN0YXRlO3RoaXMuX2tleT1rZXk7bGV0e3BhdGhuYW1lOnBhdGhuYW1lMX09X3BhcnNlUmVsYXRpdmVVcmwucGFyc2VSZWxhdGl2ZVVybCh1cmwpOyghdGhpcy5pc1Nzcnx8YXMhPT1fYWRkQmFzZVBhdGguYWRkQmFzZVBhdGgodGhpcy5hc1BhdGgpfHxwYXRobmFtZTEhPT1fYWRkQmFzZVBhdGguYWRkQmFzZVBhdGgodGhpcy5wYXRobmFtZSkpJiYoIXRoaXMuX2Jwc3x8dGhpcy5fYnBzKHN0YXRlKSkmJnRoaXMuY2hhbmdlKCJyZXBsYWNlU3RhdGUiLHVybCxhcyxPYmplY3QuYXNzaWduKHt9LG9wdGlvbnMse3NoYWxsb3c6b3B0aW9ucy5zaGFsbG93JiZ0aGlzLl9zaGFsbG93LGxvY2FsZTpvcHRpb25zLmxvY2FsZXx8dGhpcy5kZWZhdWx0TG9jYWxlLF9oOjB9KSxmb3JjZWRTY3JvbGwpfTtsZXQgcm91dGU9X3JlbW92ZVRyYWlsaW5nU2xhc2gucmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZTEpO3RoaXMuY29tcG9uZW50cz17fSwiL19lcnJvciIhPT1wYXRobmFtZTEmJih0aGlzLmNvbXBvbmVudHNbcm91dGVdPXtDb21wb25lbnQsaW5pdGlhbDohMCxwcm9wczppbml0aWFsUHJvcHMsZXJyLF9fTl9TU0c6aW5pdGlhbFByb3BzJiZpbml0aWFsUHJvcHMuX19OX1NTRyxfX05fU1NQOmluaXRpYWxQcm9wcyYmaW5pdGlhbFByb3BzLl9fTl9TU1B9KSx0aGlzLmNvbXBvbmVudHNbIi9fYXBwIl09e0NvbXBvbmVudDpBcHAsc3R5bGVTaGVldHM6W119LHRoaXMuZXZlbnRzPVJvdXRlci5ldmVudHMsdGhpcy5wYWdlTG9hZGVyPXBhZ2VMb2FkZXI7bGV0IGF1dG9FeHBvcnREeW5hbWljPV9pc0R5bmFtaWMuaXNEeW5hbWljUm91dGUocGF0aG5hbWUxKSYmc2VsZi5fX05FWFRfREFUQV9fLmF1dG9FeHBvcnQ7aWYodGhpcy5iYXNlUGF0aD0iIix0aGlzLnN1Yj1zdWJzY3JpcHRpb24sdGhpcy5jbGM9bnVsbCx0aGlzLl93cmFwQXBwPXdyYXBBcHAsdGhpcy5pc1Nzcj0hMCx0aGlzLmlzTG9jYWxlRG9tYWluPSExLHRoaXMuaXNSZWFkeT0hIShzZWxmLl9fTkVYVF9EQVRBX18uZ3NzcHx8c2VsZi5fX05FWFRfREFUQV9fLmdpcHx8c2VsZi5fX05FWFRfREFUQV9fLmFwcEdpcCYmIXNlbGYuX19ORVhUX0RBVEFfXy5nc3B8fChhdXRvRXhwb3J0RHluYW1pY3x8c2VsZi5sb2NhdGlvbi5zZWFyY2gsMCkpLHRoaXMubG9jYWxlcz1sb2NhbGVzLHRoaXMuZGVmYXVsdExvY2FsZT1kZWZhdWx0TG9jYWxlLHRoaXMuZG9tYWluTG9jYWxlcz1kb21haW5Mb2NhbGVzLHRoaXMuaXNMb2NhbGVEb21haW49ISFfZGV0ZWN0RG9tYWluTG9jYWxlLmRldGVjdERvbWFpbkxvY2FsZShkb21haW5Mb2NhbGVzLHNlbGYubG9jYXRpb24uaG9zdG5hbWUpLHRoaXMuc3RhdGU9e3JvdXRlLHBhdGhuYW1lOnBhdGhuYW1lMSxxdWVyeTpxdWVyeTEsYXNQYXRoOmF1dG9FeHBvcnREeW5hbWljP3BhdGhuYW1lMTphczEsaXNQcmV2aWV3OiEhaXNQcmV2aWV3LGxvY2FsZTpsb2NhbGUsaXNGYWxsYmFja30sdGhpcy5faW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlUHJvbWlzZT1Qcm9taXNlLnJlc29sdmUoITEpLCFhczEuc3RhcnRzV2l0aCgiLy8iKSl7bGV0IG9wdGlvbnM9e2xvY2FsZX0sYXNQYXRoPV91dGlscy5nZXRVUkwoKTt0aGlzLl9pbml0aWFsTWF0Y2hlc01pZGRsZXdhcmVQcm9taXNlPW1hdGNoZXNNaWRkbGV3YXJlKHtyb3V0ZXI6dGhpcyxsb2NhbGUsYXNQYXRofSkudGhlbihtYXRjaGVzPT4ob3B0aW9ucy5fc2hvdWxkUmVzb2x2ZUhyZWY9YXMxIT09cGF0aG5hbWUxLHRoaXMuY2hhbmdlU3RhdGUoInJlcGxhY2VTdGF0ZSIsbWF0Y2hlcz9hc1BhdGg6X2Zvcm1hdFVybC5mb3JtYXRXaXRoVmFsaWRhdGlvbih7cGF0aG5hbWU6X2FkZEJhc2VQYXRoLmFkZEJhc2VQYXRoKHBhdGhuYW1lMSkscXVlcnk6cXVlcnkxfSksYXNQYXRoLG9wdGlvbnMpLG1hdGNoZXMpKX13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLHRoaXMub25Qb3BTdGF0ZSl9fVJvdXRlci5ldmVudHM9X21pdHQuZGVmYXVsdCgpLGV4cG9ydHMuZGVmYXVsdD1Sb3V0ZXJ9fV0pOw=="}},"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":"buvei.com/_next/image?url=https%3A%2F%2Fosspremium.s3.us-east-2.amazonaws.com%2Fa%2Fa_642f08%2F202504191221444afe5b2228.webp\u0026w=1920\u0026q=75","fqdn":"buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"lazy-imageset","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:49.494Z","timestamp":1785127669494,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"GET /_next/image?url=https%3A%2F%2Fosspremium.s3.us-east-2.amazonaws.com%2Fa%2Fa_642f08%2F202504191221444afe5b2228.webp\u0026w=1920\u0026q=75 HTTP/1.1\r\nHost: buvei.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://buvei.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:49 GMT\r\ncontent-type: image/webp\r\ncontent-length: 18574\r\nserver: cloudflare\r\ncontent-security-policy: script-src 'none'; frame-src 'none'; sandbox;\r\nx-frame-options: DENY\r\nvary: Accept\r\ncache-control: public, max-age=60, must-revalidate\r\netag: mIVJxqp2vIgQSMzmDHj-ewesgMQy4RkZfuD1wXmFTQc=\r\ncontent-disposition: inline; filename=\"202504191221444afe5b2228.webp\"\r\nx-nextjs-cache: STALE\r\ncf-cache-status: DYNAMIC\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=vmcU4q6Ufb5lVXHiUBlE9aePtHGRKk3t2YPr1ilyBY8Ld35b3Wr%2B1ahH2CSGAQNmrOMH8ipn4Op2JzgCebsiRNbsLfLvZbsK8duUlSYKX50pR0UfsAiB0oyF7Q%3D%3D\"}]}\r\ncf-ray: a219021e5fe58be6-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"]}],"data":{"size":18574,"size_decoded":19391,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image","md5":"520743567e4bff5687e40ba378af8a54","sha1":"326284d8083f0e2d50293a408fea137527c6c885","sha256":"988549c6aa76bc881048cce60c78ff7b07ac80c432e119197ee0f5c179854d07","sha512":"a0b8259e9e6e1b43ce7c465df63945566795ff86675e7f2dfbeb5517460554045a1f43a3fcdb5daaadc0d05110359157787fa83cc91afa1e11b20c051fc2ef8b","ssdeep":"384:VwJRUPskbvXkS08wGujitlFJiStztbDhFDvd5wU48Nh7imIU:KsUkb/kmwCLFAynbbXIU","tlshash":"c882d094c60da12cdc937835e67f6bf6e64c20610443edc8520b31893692af5afc7b96","first_seen":"2026-07-27T03:56:11.734124Z","last_seen":"2026-07-27T10:05:53.924534Z","times_seen":4,"resource_available":false,"data":"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"}},"time_used":184,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":138,"receive":46,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"api.buvei.com/v1/b/visit/stat/save","fqdn":"api.buvei.com","domain":"buvei.com","tld":"com"},"ip":{"addr":"104.26.11.190","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:49.567Z","timestamp":1785127669567,"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":"buvei.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 18 Jul 2026 10:09:45 GMT","end":"Fri, 16 Oct 2026 11:09:40 GMT"},"fingerprint":{"sha1":"57:94:12:59:C8:3D:CB:63:B7:C9:8D:A4:DD:59:B8:75:48:04:B5:EE","sha256":"85:3D:58:B1:F0:3D:61:F7:02:40:A0:47:25:1B:94:55:F0:DF:C1:BC:61:67:27:1A:6D:BC:6F:AA:AC:3A:15:30"}}},"request":{"raw":"POST /v1/b/visit/stat/save HTTP/1.1\r\nHost: api.buvei.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://buvei.com/\r\nContent-Type: application/json; charset=utf-8\r\nContent-Length: 793\r\nOrigin: https://buvei.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\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"POST","post_data":{"size":793,"data":"{\"fingerprint\":\"fe24bdc5650cb675d3136a6e96376b7434b328d954dda904fac5122c48993a0d\",\"platform\":\"HOME\",\"name\":\"B3MN 07/27 04:47\",\"source\":\"unKnow\",\"sourceCode\":\"\",\"browserSource\":\"\",\"url\":\"https://buvei.com/\",\"metadata\":\"{\\\"name\\\":\\\"B3MN 07/27 04:47\\\",\\\"source\\\":\\\"unKnow\\\",\\\"bid\\\":\\\"B3MN\\\",\\\"url\\\":\\\"https://buvei.com/\\\",\\\"referrer\\\":\\\"\\\",\\\"language\\\":\\\"en-US\\\",\\\"languages\\\":[\\\"en-US\\\",\\\"en\\\"],\\\"userAgent\\\":\\\"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\\\",\\\"platform\\\":\\\"Linux x86_64\\\",\\\"vendor\\\":\\\"\\\",\\\"screenResolution\\\":\\\"1280x1024\\\",\\\"screenColorDepth\\\":24,\\\"viewport\\\":\\\"1280x1024\\\",\\\"cookieEnabled\\\":true,\\\"onLine\\\":true,\\\"hardwareConcurrency\\\":8,\\\"deviceMemory\\\":\\\"unknown\\\",\\\"timezone\\\":\\\"UTC\\\",\\\"timezoneOffset\\\":0,\\\"connectionType\\\":\\\"unknown\\\"}\"}"}},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncontent-type: application/json;charset=utf-8\r\nset-cookie: AWSALBTG=/7WqUV4n1aMiwKs9Yz+UbTAnVuJOyZjr2BC1Dkb2Eqz02hFjbexa2Gx9YkjE09KRan9f9FkUlZR6Lp+3Ox1r1m7Hf8iM5PR52OnYsbu5wNqV3MUXysmCAtwkOcW5zOVCvkzzRABFi0VuoYRpFU+psLYtcJ03T6nExkNa1SfugPNnUVUy6RE=; Expires=Mon, 03 Aug 2026 04:47:50 GMT; Path=/\nAWSALBTGCORS=/7WqUV4n1aMiwKs9Yz+UbTAnVuJOyZjr2BC1Dkb2Eqz02hFjbexa2Gx9YkjE09KRan9f9FkUlZR6Lp+3Ox1r1m7Hf8iM5PR52OnYsbu5wNqV3MUXysmCAtwkOcW5zOVCvkzzRABFi0VuoYRpFU+psLYtcJ03T6nExkNa1SfugPNnUVUy6RE=; Expires=Mon, 03 Aug 2026 04:47:50 GMT; Path=/; SameSite=None; Secure\r\naccess-control-allow-origin: https://buvei.com\r\naccess-control-allow-credentials: true\r\naccess-control-allow-methods: POST,GET,OPTIONS,PUT,DELETE,PATCH,HEAD\r\naccess-control-allow-max-age: 3600\r\naccess-control-allow-headers: Referer,Origin,X-Requested-With,Content-Type,Accept,Authorization,X-Device,X-VERSION\r\ncf-cache-status: DYNAMIC\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=oYBYwvzJzwlv6fKM0YK0Ejdi6v43aWhNz6ejOEhDe1af4ndFJK%2FJ0XibX7ZHhIR1Al5pTrakv6yGdSBp528Pm8mXgCAVzx6OYfJp%2FR6MAU5fiZwe36zv7jTen2xpbp0%3D\"}]}\r\ncontent-encoding: br\r\nserver: cloudflare\r\ncf-ray: a2190221ba4d5a0f-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"]}],"data":{"size":108,"size_decoded":1448,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"9a6e8c32b208c5a370b5ce3ff9606970","sha1":"0f87710e4c8d727c7cccdc44977f4ecc26368466","sha256":"f6042fed9f27476db5244e3a0a9d361a02a99160ff274ae949dff0398c383ed7","sha512":"d642b160e1ba5f41d38997f178a65536ecc9b0686f1d11cdf3b6bca8a0e26de838ace07527b0ffe203d75b5a84c368e5618acb4712f66e90b7e247f60b6eb8de","ssdeep":"","tlshash":"ceb012400e85dc3196036f111a396d4197fc2253894303063c0f4e9c47a903f107b207","first_seen":"2026-07-27T03:56:11.735771Z","last_seen":"2026-07-27T04:49:42.847738Z","times_seen":3,"resource_available":false,"data":"eyJzdWNjZXNzIjp0cnVlLCJ2ZXJzaW9uIjoiMS43My4yOCIsImFwaVZlcnNpb24iOiIxLjAiLCJtZXNzYWdlIjoiT0siLCJjb2RlIjoyMDAsInJlc3VsdCI6dHJ1ZSwiZXh0cmEiOm51bGx9"}},"time_used":144,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":144,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.com/ccm/collect?rcb=9\u0026frm=0\u0026auid=1717034728.1785127670\u0026dt=Global%20Virtual%20Cards%20for%20Ads%20%26%20Subscriptions%20%7C%20Buvei\u0026en=page_view\u0026dl=https%3A%2F%2Fbuvei.com%2F\u0026scrsrc=www.googletagmanager.com\u0026rnd=1656110027.1785127670\u0026navt=n\u0026npa=1\u0026gtm=45be67m0v9168150548z89218747034za20gzb9218747034zd9218747034xec\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115938466~115938469~118897920~118897930~119724321~119896802\u0026apve=1\u0026apvf=f\u0026apvc=1\u0026tids=AW-11297594795\u0026tid=AW-11297594795\u0026tft=1785127670090\u0026tfd=2625\u0026fmt=8","fqdn":"www.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.251.154.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://buvei.com/","date":"2026-07-27T04:47:50.092Z","timestamp":1785127670092,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"POST /ccm/collect?rcb=9\u0026frm=0\u0026auid=1717034728.1785127670\u0026dt=Global%20Virtual%20Cards%20for%20Ads%20%26%20Subscriptions%20%7C%20Buvei\u0026en=page_view\u0026dl=https%3A%2F%2Fbuvei.com%2F\u0026scrsrc=www.googletagmanager.com\u0026rnd=1656110027.1785127670\u0026navt=n\u0026npa=1\u0026gtm=45be67m0v9168150548z89218747034za20gzb9218747034zd9218747034xec\u0026gcd=13l3l3l2l1l1\u0026dma_cps=a\u0026dma=1\u0026tag_exp=115938466~115938469~118897920~118897930~119724321~119896802\u0026apve=1\u0026apvf=f\u0026apvc=1\u0026tids=AW-11297594795\u0026tid=AW-11297594795\u0026tft=1785127670090\u0026tfd=2625\u0026fmt=8 HTTP/1.1\r\nHost: www.google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://buvei.com/\r\nOrigin: https://buvei.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nContent-Length: 0\r\n\r\n","headers":null,"cookies":null,"method":"POST"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 04:47:50 GMT\r\ncache-control: no-cache, no-store, must-revalidate\r\ncontent-type: text/plain\r\npragma: no-cache\r\nexpires: Fri, 01 Jan 1990 00:00:00 GMT\r\nvary: Origin, X-Origin, Referer\r\nserver: scaffolding on HTTPServer2\r\ncontent-length: 0\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\naccess-control-allow-origin: https://buvei.com\r\naccess-control-expose-headers: date,vary,vary,vary,server,content-length\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":538,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-03T14:27:57.238673Z","times_seen":17691327,"resource_available":true,"data":""}},"time_used":45,"timings":{"blocked":0,"dns":2,"connect":25,"send":0,"wait":17,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}}]}
