SHARE
TWEET

Untitled

a guest May 24th, 2019 61 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'PCFkb2N0eXBlIGh0bWw+DQo8aHRtbA0KIGxhbmc9ImVuIj4NCjxoZWFkPg0KPCEtLSBHZW5lcmF0ZWQgYnkgUXVhZGllbnQgSW5zcGlyZSBEZXNpZ25lciAoYykgMjAxOCAtLT4NCjxtZXRhIGNoYXJzZXQ9Imlzby04ODU5LTEiPg0KPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlLGNocm9tZT0xIj4NCjxtZXRhIG5hbWU9ImZvcm1hdC1kZXRlY3Rpb24iIGNvbnRlbnQ9InRlbGVwaG9uZT1ubyI+DQo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KYSBpbWd7Ym9yZGVyOjB9Ym9keSx0ZXh0YXJlYSxib2R5e21hcmdpbjowIGF1dG87LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0Om5vbmV9PC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5Pg0KPG5vc2NyaXB0PllvdXIgZGV2aWNlIG11c3Qgc3VwcG9ydCBKYXZhU2NyaXB0IGluIG9yZGVyIHRvIGRpc3BsYXkgdGhpcyBjb250ZW50Ljwvbm9zY3JpcHQ+DQo8IS0tW2lmIGx0ZSBJRSA4XT4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCmRvY3VtZW50LmJvZHkuaW5uZXJIVE1MPSdZb3VyIGJyb3dzZXIgaXMgbm90IHN1cHBvcnRlZCBhbnltb3JlLiA8YSBocmVmPSJodHRwOi8vYnJvd3NlaGFwcHkuY29tLyI+QnJvd3NlIEhhcHB5PC9hPic7DQp0aHJvdyBuZXcgRXJyb3IoIllvdXIgYnJvd3NlciBpcyBub3Qgc3VwcG9ydGVkIGFueW1vcmUuIgopOw0KPC9zY3JpcHQ+DQo8IVtlbmRpZl0tLT4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij52YXIgRlVMTENPTlRFTlQgPSBmYWxzZTsgDQp2YXIgbW9kZWwgPSB7IkxvZ29fQkFDX0NyZWRvbWF0aWNfQk5fbWVkIjoiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFOd0FBQUJMQ0FBQUFBQStVcmFtQUFBQUNYQklXWE1BQUI3Q0FBQWV3Z0Z1MEhVK0FBQVlha2xFUVZSNDJ0MTdhNHhkNTNYZFdudC9keFNMNGtNT0FsVGtVRzRMTkNJNWxCb2dzTWdaS2dueWtFaFpEaHFKajVGc0ZLaEVXVWFCUXFab09mM2hXcUxrRm0xaGlaVDhwNDFGU3NtUGhrODVMVkp4WmtnNVJlTnkrRkNNb3VMYkxaQ0lROUoyRzRzekpPV0F2R2Z2MVIvbnpzeWw1dDZSeWFCL2VnZ015VG1QYisvejdlZmE2MURvZklnUUFTQ3Qvb2NJZ1NJZ3B1SG5QV2EvT0syMVRyM1d4KzRVMDBSUjRLUWdVOWROeWxRdk1DbGtmUnRhNTZpdVVvRXREZHNXbnZ4ZkIxbndTVytwZyt3aWtHQkxuSTZhdDZ1ZTVJMFBSdjNpSkp2NmpSZysrZEtzdTB5RWlLeC9DcEFBRUNjL0N1UXM3NlREUzVyKzJYN1V1a2xtQkRzOVQ2elhSSUFKSkdDVWJueXdDUkpvMmRvTmdQS1VMQWx4dHAxRDJ4NkpTRHQzNk5qb2hiMzlJbTdDTG9HMERqdFRQeVFjYVcwMjFYWlVwVzJMMjI2WnZqKzhkYTUrL0trUFM5VlR6VnN1SW1FaVVMcExORzNaQUJuLzVkRDN6OVkyUk9FbWROT1J3NTFrdHpsOWR5NU5od3czK05MVStqODRKTkZxVndQWExUSUluRjZYU1pjTUZIamw2S0VUWjM3cUZsNFpNRy81L2Y5d3hUeGdGdVVNQ1FORmlEb3pkUGpZZGJld0Vrd0N2QW1mdytHdGFSWWZ2MEdHWlAvcTFiMkFaRE9mWjk4WktrakkwcHNsTVc4allGUHZISUFzQ1lQSVhRY1BoQ0ViU29ZUkdqODBLcnZuaWFjd20xblcwUkZqUi9lL2QwbWVCQ1ZRYjY5TTNwUnlyMndyMFVINHlpZ21OMnk2RzUxMjd0SjlyQ2lIckhJa2w0N1l4N3loRlpCMmZ2dXZlcTRYcEVrd1NEQ0dKWmtYeERLcmJsY09ENDllakVaVmE1T2t5S3dqNzg4ZkxCMFZmTWJPaFNzdFhMc1BQUHNNT05NbkQ2YTh2c3FUSG1jdUxyUzA5bVVKaWhOUEhjdkc5VWFLa2lrSlFrbFpiVjZsRHRXVE9hVGVydnJlSTZORFo0UEFsRWtSb0NDRDdPZlBCWFVpU0RJdFVRZXhxVmdwQUhicDViUGZzcG4rUGxTYW9peGhsU0dadzA5LzNEZEZubHgvR1lDbEJWcFptR2tRV2dzVk1aeHBRUDFESU5KMGV2VElFRkNhUGxQYVJ0REVtekRMYVlFcE1qM1RtTElLSlZ3UStSL212M0NES2FTSjU3N1hiR1NDcnNvWmNtemZ5UENQUGUvNGhpdXdxRXBXcmpSWnM2RWdSTll2RTRWeXdDQk9WZ0U0ZCtUUXNUSElzbFRXd1NVckkzZ3pXYnpsWXdreVBCbm1tY1pvWkZJeUlCcmYrYTBIMnUzWVJCeU1ucVlac3FLcmVadUM1ODdlNDJqVHo0RGpnMWVwWmsrRU9VQm1OaW92QXVxNnhzUlNSNzd3T21uYjhOSHZueUdEOElDeXB6blR1Wnk2QmQwUVhoY0VNZ21PTE5jYTBkTXNtZTdDdGdHN3NYekkzUWhqa2k2aEo0TXNPMTlDZUxzNFY1NitETEZVWkJKQVVsVUpNQnRoS3RGS0JiV29oRTROSGZ0dm5zWnNxVnYxVkhYdXZ6RkNpQzBidnFtakpDUmppb2tTV2FxZUtBR29CSVVmbk81ckM0SnA4ZU9URk5OVFljeEFVV0xrcFZacW1qeGVIU3RWeWJTc2sxMnpSMnJlVnNGQ1FySldUaFRoZjNWMDVPaUVSUWxUc2lpTllSYW1HVkVPU2FUSmJucm5xRVpBOUFRcmxQQ21TeDZXaEtrNTNOY1dCQ0VmSWdWS3Byc3VsSXFxQ3MrZHZxZTkwdEdaSFphV0FNVk1oMHJBZXE0NW1HcEVuYlVLb0N1anc0ZCtJakhBeXROY0NTWUpzU296bkk1TUdtN2FLbUh5YS83OEpncEVlUHo0M0lFOWw0T1dCS0xFa2VrZFNSTGFpeVF6TGVkLzlXdE5Uem1FUFMrMGw3VDhlbTE3bHBib3FiRDBpYVg5QWlHZG5Sajk0T2g1Q2l3Z2xwSklXRFlDSlZ2M0UweFRtV2w5U2NQeGoxYmV0Tk5KMGROS1JIVDR3b1g5YTlkZlRSRXlENTVpVytVaW5EOUJVOUxTVnE0S0FtU2k3SHloM2RYSGpsblRJQ2FaZm4zNVMvMlRoVFB2c1JYVStSSFdKUTBoa2ZWMTdSMlBLR295TFFtVUtGdmZKMXhadTUzb1V1eDNUM2kxTDJNeWpXTFpGaGtoTW95WGJzeUxieElDazlKQWI2K0ZRYlM0OHU3VW1nSHRZQmhnZGJMY2NLQWZVOVprSUxqNDZUcWlkcXN0Vll0ZXR4Tm1EUHBkWC8wZnI4MGg2RnMyWFo3cUcyN3RvR3d3a1RSVmpwZ1dJMEJnZngyWEswTy9Ca0Fra2M0L0ZaRVFKUWVIMG9GTUI0VjdYdXFtUXpjenlscDB1OTZRSUNsODROOGUyN3hBSmtSaTMyTVhjckxmdXFWRFRDd095MFNQc2kzRU82Q3o1d3lDWk9qdDQ0cjBLQklTZjBha0NTQ2hrK2N0SlVlQThwZm4zNlJ5SU92VzBLODdRZUh4NFoxUElNaExSRW55N0lOSGxlUXRhMGRZZklZTzgrc3kzSE1EQXJDelZEQkNVcit3eXNJRFpzaEx3N0I2eWVRUkZ3d0dRbHphSDUzOXcyYlZqVVJsalNwdDd2T0h0L1lSK3RuMmxXZVJzSlF1cjN2VDh0WjNEb0svNzljOXdGSnhjYnZXT1pKR3BSWFl3OVRpWDJZZEZaeHZLd3pKbE9IN0FVdExXYnJXd3p2TFVXWnB4RVVtU3FCeHo4WkJBTER6VzkvNVNBbExDcFIvL2RRM0Z1QnZvZDNGSyticGxVV2orVUQ3NzA5ZmhBV3BBSDhWMUsvL3p6QUprTDB6c1FCcElDdjdpU0dCS09HQi9tNWRpbjFDZlBQa2h0MGpnNEF3dk83K3ZUOERtYkJ3UVhIYkh6OStUcmZ1Yzl4cEV1WE1hRHpXdnV5ZU1CRUcyYS8rSXNEZmhsVXlrNG52Q2dZd2loMVhvcWl1ZGZ0Z25jMnl6RzQ1NWZZdnIrc0ZvY3Y3L3VBaVBTblNJQTlMcjdJY2YzaDcveTFIeSsydnErNkdQTmN1bU01Z3dqNG1UQUd2SGdHUUQ4eTUwbENDeUxKL1hSMTA4aUxrVWFGUldmUjh0bXZZTHUwSnBvVk5RSjZpWUZyMnpEcEN3TmkyNGNzMURsTmYxWUlVd1luMUx6MXBhclZLbUxXaWxsYytPbjMrOHRCNVQxT1N3SUlYMm03amdVdU9WaysyQnBEaGdmM2hCTlB5NEhqdEIzWmVUQUpCV2NXdXFNZTBjZ2xqaXRFSWxPdU5nR0hkK29FazBnNi8rWis5Nnc2OGNPckZ1Wk80YWhmOHNTVjBlSTRlbTZwVm1aYUVYTW41ZjN4biswdlpYN2ZDVEM3cUJRaXNITTRVUVNxLyt4VENSY2lueWcwZmFLR1FzL3FjcVltU2pldk04T1NDVGFQYkJrQmMzcnRpL2Y2ZTdnbk5kajEyc2E3cFdtVlNkOWdpeldNNldWdUtpVWd1Mm5PZjJtVTd5RHFuRTQ4SUFMUmFsQ0VCWUNmZ1NXRWlwNjA0bVo5a2xyU0tSVTF2RmhqNGQ3NjIxZ0h4M0Z0N3h3MUtXRGZ0b25IbXdSMHJXOUMxMkQyMXBDazU3ZmttV0tKVUM1NytKM2ZlZ1BFT1Q4Q0NCR1g5RkpHMmNPR1BtQ1FsTzNXK0Z5YnFUTnVXQU1RbjdGeWttVUNWRUI3ZTlkNEdEK1RSSngvWVBtNWhKYXpyanBUcnZMUmhCeEpFZ3JPVUxKU01vUnVRQWd0Yy92UHZCVFN0blE1Q0tDWkF6ZDhHRXliN2ZNQUVwUUhEU0NSUVRUY1IwY2h1cmo2bG5MRXVGdVBUVHgvK3ppcElWL2Ywcno4QXVyeEtyN3g3aDgyaUxadXZDakxOaHEwWWxlMWVrRllRV1hUc3VZZVB0NW5WbFhkSVZEQUJqM2pXVU5SbjZ5ZVRZWHRBZUhJNmExdmpXbGU0cWt6N1JCU0x4aS85L3VyNUVERDI1dHMvclV2dVpLbEtxYnJabTFmcHdwNlRiOXpOMlNjSUZVdUVUNWtsbWFtQ0NzelREMjliTy9YNG9ZK3FSbnJLcjMvcXQyQ0NpSHc0T1FsVW5qNnhYQ1JpYXFsa1Q5b25CUlNQUnVMaG5YK3hmcjdBMGFkV2JmL1FJUlBTTGEzcTdrdVZleHA1NHVIRG1MVkpVRUdZYWNxODA4RVNZUVFUengyY3V1NkFHaUhCODdacnY1RUFLSmhXc2Q0NGwvYUJJTzZkM2psRS9RcTZLVWNrMCs1NFpuVEhBQUR1V3JsaHVINXFDMmFHSmFnYXZ4UUZ4blI4TVltQ09MSHVUZVRzM2FwbFc2cXdSTXVRQmVLNWlmb1NUSXdnU1ZETSt4WWFWT2ZPMVpwQzBJY0VRZlBZUG1ranV0ZVdhV1QyYm43a0Y0cUlpenZmdWxUVXFHWU1KcXhxcEdRRVVqM05tYVdxL1l2M3Z6bTNPMjVrVWFyR1Z6Wk5uVC8wMGZDK1puRldOQ1d1dnZGOGpTc09UN3ZKQ2twV3c5c3JNQlhSTHB6NUIwWHQ5bS92dDlEQWpqMnBHb2pQN1QwNitLa0NIdHAwLytzVEhwZ0o2VkVlY2dKSkM4M01aNG15NzlGejFuMzA0R0p6V2thc2V2RFYvYitZaW1KSXMrWWZTVEFCQjZiN3VnMmlwU1dJdUhkeE5mV2czUVhBL09uMTQ2UHNWandVRWIvd3VlZnZNdEd4YS92L2FscWFWREpzUnA0aW1YYlhOd2VBRWpNcjFkSXMrY05IL3QwRDNjMHlpOXA4WE1UeU45YVJsWkZRejErLyt6dHB3UGpJMU12S3p6Y3RqS2dhUWJXRng2RXRZUFp4V3E0eEE4SzdCR2ljM1hhWGdlZTJMbnYrN0hVUFMzckFPM1hPcWVjT3JoYVFsakZqNXh6TXYzNWlkTFllbzcybkpKRDlpd1VTcGtoL253WmlhSG9IUEpBTlpIckkyblpjRjBZRXc3enA2ODZOZDZzZERFekpNTHBwNE5XcktZc2labmF5THFiM0g5dzhGeEM4TXB2WlFjam9XTnc5aDdQT3pWTm1MRk92cFNtRVJ1SWtCT21QcHMwdDB4V2d5YjN5YVVNaTkxTkNYOXRsUjdvbElZTk0zUFhnNEY0eWpVQUlEbm5NRlA3VC8yYmYwc29tTGhOVlQ0Y1JONFhLSHV5cVhNcFl0YjAxU3dLcktoTWNFbmsxQ1Y1ODMyNG8yQ0NGWlZCdGxVOThUMlF1bTNxT2FhUmJFakpRcnkvNS9UTnBJaXhsQm9SaFprVmlUNDQrQVpiaGgwNUJwVG56WVF4VG94cnNicFVXMFdnWHdoSWNkOVU1QWdvRHRMOWttOE5BSkExWmtHM2krSWNISUQ0d25XRXdNdDRWd1FOZnZacWlJQ1NwbXI1aEF0TTAyZUdsTGQzOThueGdiTzNHQzYxWE9tTm5UY3E3VjJ1MktXU1ROMEpFT0trNmZSbEFJTGhYMDNpbzFDckdhMUJJcUFzdmlFTWdWa0FRSllxNC9DWUVxUFZuOHE5WkFhS3djQkFRUEgvcDZ3Y0hFTmo2NExGWitqVlJHN3IzcWxUSzJzeExvUElVS0Jvc0U0RDhnek5oTmREcm5Vd3M3Sm9yNFhzdmdYT1hGb2kwc0NDMm5pQ3k3bGtKTUNaOWNCWWVpbWRTU0VzOCtPZGZCbkJzNWRhZmRhLzZXUlhrTTdQMWN3Wml1ckJtZ0xzdlV4UlNiTVJ5Q0FmREEzS3h3L3dsa0I0TnlGSFp1d2srRWJBQUhaYkFFNk5wRWlRZ0FVOEFSODdsYkFCUk5CSk1WKy91UDV3SG5IdHEvUml6KzNRbkcwMCtmdnRzejJPaURRcVU2OVMvVWxDVVBLcEdMd3h2ZURqWTlHU3BaaFRvZGRmRUpLdGhneDVka0NXdHlnUTl4dGMvL3dHVnhoWUw0OUNML1d2UFczZUFpTExtYlZYNDNJMmJDV0Q3MXF1MTY3T3JHWmZtRjJaVFRZUXVIcHZxTHZpWFIvZkNNNWxtVlVFMWdEeDlYcVZ5Q2xtdS9lTzdQcjd6VzcwcUZTMWhkdUR5SEwvemQ5NitWZ2lEVWlXeGU4K1MzNWh6ZnlONDVmaUY0NmNCMGRKbUlkbUVYemRic1cweHdvOTk0eFJFR2NObThhbmV6ODZDb1VTajZkeTVxNjFDb1dmQUlFbmV2SHNwYkI4dFBPSGhMRitmZ1lpT25LWU02WW9TUTRQUVY5OGR6L1JVZ3ltRDdOUVpRQ1pHbzltb1BHdEF1cXV3UUZtMFkrOWk0S1BOajUwQ2FCN1pIU2hLOHAvR0xQQzZCN1B5NlZCUFpzQk02WW5icnZGcEFuOEtVbVpoalA2WjZQK0dySmxvNkluR0d3SVhQeWt6MGE4RFRDQUs2aGJObWhaV3dYSTJVRmFHWncrc0pyUjc1UjVDUU1qWkhUOG50TlpuMmJtRXdkdHJ3RFJDQXNONXpSZXRCMDc5V0FHa0lHSDFUSzVZdnlrOUNZVlZaeTRLMk55WEV0VklUd3RZc0VVcWNnZ09zVjI1bW1LQ3lSWkt2bUprODN6aDVJYm5ydFlZREtGV3RPdmtlcksxOHpzRHV6V2F5Ym9UdktHNGhFQUtjcncrRDloRHRPYkN4alV6WDE3ZlhlWnBBQm1PSVFEY3ZvQ1VrcTJSWmswbVVBM2xrTzFWT3NLb2Vqa3FTeXg0WlUrZlllS2xoMFpMM0REMmw0Q3F6TmhCYjM1Qm5icEdncWxPdjgrYS94VUYxTmI3Q1l3RWt4Qm96VVdMT3V6OHFteDZSUW1lMkUwQmkvZk5BYTN1dFd0NmFOYWJBS2oydyttZUpiSlVNSk9nMHZ6eW9YVUdESzE1d3htOG9hTXdnbVZtMDUxM3J4QTZtYVVJVTRmeHN3VmNvRWZ5Vyt0TUdEMW5CWkFCVmVPUm1TL0RzTm85TFkyU2VIYU1Bbi81N1VYSzFualhGV2pSWmdqUm1XMGNQOGtaTmMrQldMTHZoUVdHc2JWZnVvQUEyVjRTaWdJaVprUlpmYWxtMVhYaWtMRVRLR2FPQUNEckgzNENvTjRHcmxHV2dsY3JPdDB3a0NBdENMT0lIU0FxN3h0Wnd4WTVzYkpDd1VBcDZZeHMzem12SUN1VlZRM01lWGxrZ0lsWEJ3NjdCQ0xKYWZETGtxSnhScEs5NDNFcE9UTkFNVlJDSFhEUHFMbWJhM2J2V3hhVzRKRG9aTG9zR2c5MUtIUTBiN1dGcFNPVnppRWtDbkxCZC9iMHB5a01IaFZNeVlTWlFoeFkxTWJhaXlJTGVqYWFuOXMyRjFVNTl1eVBWSm8wcFdVVVR0VkRncGpaYUg1ODdkKzl2WE9rbEROVVlrYUg2RldacytSWGxqNjBBS0tINDhDSFBXbVZNMXorbSt4RTR0SEFVS1BwU2s5VFhqelpCOEZnQS8ybnQ0K015K1RJRnMycjhtWHJIKzZ0Q1pYb2JRSENwVEpoMFdzckdUNjJaZGdRdERSQnRJekc1THZrN29INDJmR1o4UHFTTzd2Z2F6cDNrWnFaL1htL0FjRkpqbmFPL2U5bVBVeEJWUmIxZG5UZDhUTkpJa3RsVVhMSm5Xa3RxeGZQL3RjZmZuRHVSMm5wdDk4N2I5bXFwZk00eFU3dmJjWHljTTM3MG5PQStNWnI0MFNMM3lPeTVoTFd4N0o5ZDFoWHRuazMvZGh4NEU4WnBqbjBhVlBTc3NzZGRmS282ZmlZdkRwdGtzYyt4V1NmUEZzbU9kQ0VES3RmdkJ2QWtSZFB0MlpJTFZJWUp5Vm45dStZTzNNYVZwOERPemJFbXZvbW9IMjZxNVo3dGhpVUxjcFY2eU9DYVZTK0ZxMDEvR3NwM1dLQVdldHBkVzRrMGtTSzlkMTFMQ21vR1pzbWk5NlhIelRndzIvdThaeVpwV21WSndhM0FucHpvbTB6TFBROGM1WVpnWmdHUzJ1eHlkdFRPTk9ZSnNqU1REVjNlb3I2MlRLcyt1T0JjSEJTNmZDNkNyY3BLckNzaGk1YjJxRytUbVFZRnRkendNM1B6SVd3NjEvL2xHbWE0Vk1pd0VlL25lUlg5dFdVMmFtKzd5OW5JODZLYWRoMTRNS0pleGQrOFRmNXpmZGxkdTN2TDEzVFMvRXhneXd0eTZzTFQ3OGdGN1NxZDMyOVRidEhKbzZ0ek04L3VnRFkrVjNwdGNVUWRYa2pxeWMyaU5LWkY1UEx0NGludmpIcE50aUx0WmFQZlJIaTJJNlRKNi9jLzNlZi9ReUsxYVFjcnZqMm9oUlB2andxbVZlTkdkMGlaVnI3bW14aS9SbVBOdnlJdU42eWgyNDFKNi84M2c4Wjl2NkppZC9HKzZPbFdmQ0QzUGJpSVBGZWk0UlZqZlZlUGNvb3pjWVIyN3A5T2NSMVI0Z2N0Y083ZGkvQVR3NEQyMThDd2FGamlWOURPcm45a0hQMHVYa1lmeThzQ2JJeTRiM0tmaDNpM2syV2xzZU9yUHNNRERCNTg5UGZldnN1MmVVdGF3NGJETm5vTU5RaDFyNEdqcTgva1RXbGVDbzFOTVJaUnlCYys4TnNXallrSkVyY0ZwSmQyVEtPR29GT3FRZ1ZaRm5DZEc3d1EvQzF3MUFhYU1lL0pvbmdYaUdBdDVycGtDYzBaQW9mSWlRS0NUVWJJTkxRQkU5K1JUQXhhVUtCQ0h4NTB3SVlobDRhODRxa0dETjl6cXJCYllpUE5wd21HSzZwODViQzdHejFrWk93Tlp1WG5iejRJY2pLL3RuejJ2cWFycHp1WnpSeXkzMUk0VDRZd04wMnNldGdHZitQVCtVZkdKWnU2enY5ei8rN0RZM2RuVlhSeEo1Qno5T25uQ0dHNDkwclhIb0tld2QxMzI3R3Z6eUpkWStueFBRc2FhOFVWbHZXKy9HeHU0Z0NvdStWZXlXYzMvUmVJczBxRnp1Z0NkVVhYaEgrNXJHelVTbzByanR2eUFDelVrc1BsWnl6YlI3NmxpZVlSb3FidDFxTlVwWGw5NlBHU3BrY1NGdDkvd1Y3NTZtalY5STJMOE9TZjc4Q09ySVl0MTF6MjdlQnRsMVp3dE9CZDhTbnQwejh4ZGpkZHd3QWN4S0xWNlFKcFRJUjc2YWUrUkkwVUUvTnhCR2tZZHRXUkVreFhEV0U5ckhqNWFmRmlmVm4weXRqNWUxTktVWE45c0hUbVNhWHoxUE4zaWJTaVBQV3FyR2JlNDRJV1BzWlNGU2ErTGtkdXFxck5QWVRXRGpuSTUyblhlOXArdWo1M29rREtsRlBLZDVscmg0NTBEejRGRVVaUlJsWWkzOHk2USsxRWd4TERVd2QzblNoaGtrbkIvZVExZVVMMDhUa3E0UEFsWFZud3V0QnJtNk1vN05rQWlMSmZrQjBtUUFleXN2RGFlb0RBTjhMVUFPZkVWdGhmcDU0Z2lkU1BoOFErNDRZSks4V1hPSDJMUWNtc09SVVV1VElSTjQ3LzZGaDM3MnhSUStwMDdzbEVwZHBZWk9mSHhnSWpEMDVPTmFOYjVrZUZ2N0tvSFQrMFRQd3ZHa2FsQUN6cXFhS1VNTFJyVzlkc05nNkh6QUdKVkZKUkN0RFdackVva0JZT2lSS3RpYjFOdDlJMzFnbjFDSDVRMW9GblRyZk5pQUJJUlVJbFpOUkQvZ0xoRGRmdlpvemhvbXFlVUZnV0pSdkRZb25CaWR3Q3d4RXloQ0hucFBxWnNzcmg1Q2JOeUFwY01zeXYxNldtRmh6NWNIZ0lpMUh5dUd5RHlpVFFZdFdqVjdhZXRxV0xJNlN3TVN3NWZuWFk4R2xzditaYVhjUTVKblZuZkpvd2xIRGZFRytPSkdkUHQ2citaWXkweXZyeFJPRDQ2NE8wNTFQSnJBdGRQc0FOSWhVby9KTkZ6Wm1ZKytFakNaYjB2L1pCMVl1QUZpWlNjaGg1MEtiQTNFVTRLVUw1QjBDNGYvSThDcndKRXRsd3ZEZlZOcjNyZGZHclhxcmJjUktaZ0xsSHBPLzJ3Sk1ZQzdSMUFFR2FQRXRtYmx0dmVIRWhnazJyVEZ6THZmSnBOR1ZrZi9uV1VsSFJzQTBBVStWNnhkMkVGblZYcEZJaGluSWlUZFBWM29ZcStENTFyandNcUJWSm1WOGNSNm9lYitiVVVTTWhOWEZwWjg3T1oxZmEzeFp0Z0s1NXpCNDZmQVlVRUNvODhpcVZkam9sVUhvMUlZSmd5dDU4enVIejMzejhyWC85Q2Nyam1ybFEzV1BlL2U2M2RqeDlGdzJRdXNoRDN6dFdWSmxrYUZ5ditOeDVJYTl0bjkwNlFjL0ZudVhBVEREbzM4SXJibTlzQUl1SHdDMkxHUDZZMWIyVGs5WXJjWEpXM2Nzcmd6ZVplZTVaM0dyNlNnVnUvRXQ1M3h2RURpNVljS2t3QzBFRkhMdTlybWx5cU1oWStXZ0M1dU00eStRVFF2QW1sNmFoa1FRelUvcGp0ZnZnTDE0ajNIODJJOWduM29MQWhGNEJyS05CcGp3amp3MjlQZXZXdkg1cUE3Y2dDQ0JTVDcrZTBSY0hLTlFZeWdXWFNvTW9keis5ajNFMk9BNEJianN1dDk4dEdUL3ZnZGg2WXNmekNLRXFMdFhoNzE5VGg0RnlKSlZnUXhrL3IxZjJYandJVXJ6di92WVBBdm1tajlaVm4rQWlzVXIwTGNNRlVEOUdacS9OcGNBN3k4Y082MDI0Q3BvQUw3OTZoSWp0R1lSd0w4RlMvbm5EQ2dpZ0luemZUZjVuY1hodnJtODFTVlB6bHM4aVpyL3Y5WnV0b2I4NTd6MTFtNDAvSDk4L0Y5dU5vQXQzaXVValFBQUFBQkpSVTVFcmtKZ2dnPT0iLCJBU19DdWVudGFNYXNrIjoiMzc3MCA0NTAzIDM1WFggNzQ0MyIsIkhGX1N1Y3Vyc2FsIjoiRU5UUkVHQSBERSBUQVJKRVRBIEEgRE9NSUNJTElPIiwiSEZfTnVtX1N1Y3Vyc2FsIjoiNTExIiwiQVNfTm9tYnJlX0NsaWVudGUiOiJNQVJJQU5JVEEgTU9SQSBNRUpJQ0FOTyIsIl9IRl9IRl9hZjFvIjoiMTgiLCJIRl9tZXMiOiJKVUxJTyIsIkhGX2RpYSI6IjIiLEN1ZW50YVRvdGFsOiIiLFBhcmFEZXNjVHJhbWl0ZToiVEFSSi4gQ09NUFJPTUVUSURBIiwiQVNfTGltaXRlIjoiMTAwIiwiQ0lGX0JDT19IRiI6IjAwMTQ2NzkwNSIsIkFTX0NJRl9UaXR1bGFyIjoiTU9SQU1BUklNMTExIiwiQVNfTm9tYnJlX0ZpYWRvciI6IiIsIkhGX0ZlY2hhX21pbmltbyI6IjI5IiwiSEZfRmVjaGFfY29ydGUiOiIxNSIsIkhGX0ZlY2hhX0NvbnRhZG8iOiIyOSIsIkhGX1Rhc2FfRG9sYXJlcyI6IjIuNzUiLCJIRl9UYXNhX0NvbG9uZXMiOiI0LjE2IiwiX0hGX1BhZ29fVGFyZGVkbyI6IjIzLjAwIiwiSEZfU29icmVnaXJvIjoiMTguMDAiLCJIRl9Nb250b19Sb2JvIjoiNTAuMDAiLCJFU19BTUVYX1BBUlJBRk9fQ09NSVNJT04iOiJDdWFuZG8gdW5hIHRyYW5zYWNjaW9uIHNlIHJlYWxpY2UgZW4gZWwgZXh0ZXJpb3IgZW4gdW5hIG1vbmVkYSBxdWUgbm8gc2VhIGVsIGTzbGFyIGRlIEVFVVUgeSBBTUVYIHJlYWxpY2UgbGEgY29udmVyc2lvbiBkZSBtb25lZGEsIEFNRVggY29udmVydGlyYSBlbCBtb250byBwcmltZXJvIGEgZG9sYXJlcyBkZSBFRVVVIGFudGVzIGRlIGNvbnZlcnRpcmxvIGEgbW9uZWRhIGZpbmFsIGRlIGxpcXVpZGFjafNuLCBBbWVyaWNhbiBFeHByZXNzIGFwbGljYSBhIHRvZG8gbW9udG8gY29udmVydGlkbyBwb3IgZWxsYSBhIGRvbGFyZXMgZGUgRUVVVSB1bmEgY29taXNpb24gcG9yIGNvbnZlcnNpb24gZGUgbW9uZWRhIGRlbCAxJS4iLCJlc19hbWV4IjohMCwic2FsZG9fbWluaW1vX2RvbF92YXIiOiJfX19fX19fX19fIiwic2FsZ29fbWluaW1vX2NvbF92YXIiOiJfX19fX19fX19fIiwiYXNfY3VlbnRhX3VzZF92YXIiOiJfX19fX19fX19fIiwiYXNfY3VlbnRhX2NyY192YXIiOiJfX19fX19fX19fIiwidGlwb190cmFtaXRlX3ZhciI6Il9fX19fX19fX18iLEZlY2hhZGVQcm9kdWNjaW9uOiIyL0pVTElPLzIwMTgiLE5PU0VMTEFETzoiICIsU0VMTEFETzoiICIsIlRJUE9fUExBVElOT18yIjoiICIsIlRJUE9fRE9SQURBXzIiOiIgIiwiVElQT19DTEFTSUNBXzIiOiJYIiwiVElQT19QTEFUSU5PIjoiIiwiVElQT19ET1JBREEiOiIgIiwiVElQT19DTEFTSUNBIjoiNi4xNSBYIiwiQVNfQ2VkdWxhIjoiMDAwNTAyNTMwNzA3IiwiQVNfUGxhbkxlYWx0YWQiOiJDQVNIIEJBQ0sifTsNCnZhciBlbmNyeXB0ZWREb2N1bWVudCA9IFsgIF07DQoNCnZhciBEQ0xBTkdVQUdFPSJlbiI7DQohZnVuY3Rpb24oKXtmdW5jdGlvbiBhc3NpZ25TdHlsZVByb3BlcnRpZXMoZSx0KXtyZXR1cm4gZS5hdHRycz1lLmF0dHJzfHx7fSxlLnN0eWxlP3ZvaWQgYi5hc3NpZ24oZS5zdHlsZSx0KTp2b2lkKGUuc3R5bGU9dCl9ZnVuY3Rpb24gbm9vcCgpe31mdW5jdGlvbiB3cmFwQW55KGUsdCl7cmV0dXJue3RhZzplLGNoaWxkcmVuOnR9fWZ1bmN0aW9uIHNwYW5XcmFwKGUpe3JldHVybiB3cmFwQW55KCJzcGFuIixlKX1mdW5jdGlvbiBzcGFuV3JhcFdpdGhTdHlsZShlLHQpe3JldHVybnt0YWc6InNwYW4iLHN0eWxlOnQsY2hpbGRyZW46ZX19ZnVuY3Rpb24gZGl2V3JhcChlKXtyZXR1cm4gd3JhcEFueSgiZGl2IixlKX1mdW5jdGlvbiBkaXZXcmFwV2l0aFN0eWxlKGUsdCl7cmV0dXJue3RhZzoiZGl2IixzdHlsZTp0LGNoaWxkcmVuOmV9fWZ1bmN0aW9uIGRpdldyYXBXaXRoS2V5KGUsdCl7cmV0dXJue3RhZzoiZGl2IixrZXk6dCxjaGlsZHJlbjplfX1mdW5jdGlvbiBkaXZXcmFwV2l0aENsYXNzKGUsdCl7cmV0dXJue3RhZzoiZGl2IixjbGFzc05hbWU6dCxjaGlsZHJlbjplfX1mdW5jdGlvbiBkaXZXcmFwV2l0aENsYXNzQW5kU3R5bGUoZSx0LG4pe3JldHVybnt0YWc6ImRpdiIsY2xhc3NOYW1lOnQsc3R5bGU6bixjaGlsZHJlbjplfX1mdW5jdGlvbiB3aXRoUGFyYW0oZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZSh0KX19ZnVuY3Rpb24gaXNJbmxpbmVFZGl0b3IoZSl7cmV0dXJuITF9ZnVuY3Rpb24gaXNXcmFwTmVlZGVkKGUpe3JldHVybiBpc0lubGluZUVkaXRvcihlKT8hMTpiLmlzQXJyYXkoZSl8fGUuY29tcG9uZW50JiZ2b2lkIDAhPT1lLmNvbXBvbmVudC5zaG91bGRDaGFuZ2V8fCJzdHJpbmciPT10eXBlb2YgZX1mdW5jdGlvbiBpc0RpdldyYXBOZWVkZWQoZSl7dmFyIHQ9ZTtpZihiLmlzQXJyYXkoZSkpe2lmKGUubGVuZ3RoPjEpcmV0dXJuITA7dD1lWzBdfWZvcig7dDspe2lmKCJkaXYiPT09dC50YWcpcmV0dXJuITA7dD1iLmlzQXJyYXkodC5jaGlsZHJlbikmJnQuY2hpbGRyZW4ubGVuZ3RoPjA/dC5jaGlsZHJlblswXTp2b2lkIDB9cmV0dXJuITF9ZnVuY3Rpb24gYWRkRnJhbWUoZSx0LG4scil7c3dpdGNoKHQpe2Nhc2UgMDp2YXIgbz1kaXZXcmFwV2l0aFN0eWxlKG4sZSk7cmV0dXJuIG8uZGF0YT17aXNGcmFtZTohMH0sby5jbGFzc05hbWU9cixvO2Nhc2UgMTpyZXR1cm57dGFnOiJzcGFuIixjbGFzc05hbWU6cixkYXRhOntpc0ZyYW1lOiEwfSxzdHlsZTplLGNoaWxkcmVuOm59O2Nhc2UgMjppZihpc0lubGluZUVkaXRvcihuKXx8aXNXcmFwTmVlZGVkKG4pfHxuLnRhZyYmImRpdiIhPW4udGFnKXt2YXIgbz1kaXZXcmFwV2l0aFN0eWxlKG4sZSk7cmV0dXJuIG8uZGF0YT17aXNGcmFtZTohMH0sby5jbGFzc05hbWU9cixvfXJldHVybiBhc3NpZ25TdHlsZVByb3BlcnRpZXMobixlKSxyJiYobi5jbGFzc05hbWU/bi5jbGFzc05hbWUrPSIgIityOm4uY2xhc3NOYW1lPXIpLG59cmV0dXJuIG59ZnVuY3Rpb24gYWRkRXZlbnRzKGUsdCl7cmV0dXJuIGlzV3JhcE5lZWRlZCh0KSYmKHQ9aXNEaXZXcmFwTmVlZGVkKHQpP2RpdldyYXAodCk6c3BhbldyYXAodCksdC5kYXRhPXtpc0ZyYW1lOiEwfSksdD1iLmFzc2lnbih7fSx0KSxiLnBvc3RFbmhhbmNlKHQsZSksdH1mdW5jdGlvbiBlKGUsdCxuLHIpe2Zvcih2YXIgbz1bXSxhPTA7YTxhcmd1bWVudHMubGVuZ3RoLTQ7YSsrKW9bYV09YXJndW1lbnRzW2ErNF07cmV0dXJue3RhZzplLGF0dHJzOnQsc3R5bGU6bixjbGFzc05hbWU6cixjaGlsZHJlbjpvfX1mdW5jdGlvbiBkKCl7dmFyIHQ9W10uc2xpY2UuY2FsbChhcmd1bWVudHMsMCk7cmV0dXJuIHQudW5zaGlmdCgiZGl2IiksZS5hcHBseShudWxsLHQpfWZ1bmN0aW9uIHMoKXt2YXIgdD1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTtyZXR1cm4gdC51bnNoaWZ0KCJzcGFuIiksZS5hcHBseShudWxsLHQpfWZ1bmN0aW9uIGFkZE1vZGVsRXZlbnQoZSx0KXtpZihlPWV8fFswXSwwPT1lLmxlbmd0aCllLnB1c2goMCk7ZWxzZSBmb3IodmFyIG49ZS5sZW5ndGgtMTtuPj0wO24tLSludWxsPT09ZVtuXSYmZS5zcGxpY2UobiwxKTtyZXR1cm4gZS5sZW5ndGg+MTAwPyhjb25zb2xlLmVycm9yKCJUb28gbWFueSBsaW5rZWQgZXZlbnRzLiIpLGUpOihlLnB1c2godCksZSl9ZnVuY3Rpb24gcmVtb3ZlTW9kZWxFdmVudChlLHQpe2lmKG51bGwhPWUpZm9yKHZhciBuPTE7bjxlLmxlbmd0aDtuKyspaWYoZVtuXT09PXQpe2Uuc3BsaWNlKG4sMSk7YnJlYWt9fWZ1bmN0aW9uIGVtaXRNb2RlbEV2ZW50KGUsdCl7aWYoZT1lfHxbMF0sMD09ZS5sZW5ndGgmJmUucHVzaCgwKSwtMT09ZVswXSlyZXR1cm4gZTt2YXIgbj1lWzBdO2VbMF09LTE7Zm9yKHZhciByPTE7cjxlLmxlbmd0aDtyKyspZVtyXS5jYWxsKHRoaXMsdCk7cmV0dXJuIGVbMF09bisxLGV9ZnVuY3Rpb24gY29tcGFyZU1vZGVsVmFsdWUoZSx0LG4pe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbz1lW3JdLGE9byh0KSxpPW8obik7aWYoaT5hKXJldHVybi0xO2lmKGE+aSlyZXR1cm4gMX1yZXR1cm4gMH1mdW5jdGlvbiB3aXRoS2V5KGUsdCl7cmV0dXJuIHQua2V5PWUsdH1mdW5jdGlvbiBtb2RpZnlDb21wb25lbnQoZSx0KXtmdW5jdGlvbiBuKGUsdCxuKXt2YXIgcj0iJCIrdDtyZXR1cm4gZVtyXT1lW3JdfHx7fSxlW3JdLmRhdGE9bixlW3JdfWZ1bmN0aW9uIHIoZSx0LG4pe2Zvcih2YXIgciBpbiBlKSJmdW5jdGlvbiI9PXR5cGVvZiBlW3JdP3Rbcl09W106ImlkIj09cj8odm9pZCAwPT1uLmlkJiYobi5pZD0iIiksbi5pZCs9ZVtyXSk6bltyXT1lW3JdfWZ1bmN0aW9uIG8oZSx0LHIpe3JldHVybiBmdW5jdGlvbihvLGEsaSxsLF8sZCl7Zm9yKHZhciB1PTA7dTxyLmxlbmd0aC0xOysrdSlpZihyW3VdKXt2YXIgYz1uKG8sdSx0W3VdLmRhdGEpLHM9clt1XS5jYWxsKHRbdV0uY29tcG9uZW50LGMsYSxpLGwsXyxkKTtpZihzKXJldHVybiBzfXZhciBmPXJbci5sZW5ndGgtMV07cmV0dXJuIGY/Zi5jYWxsKGUuY29tcG9uZW50LG8sYSxpLGwsXyxkKTp2b2lkIDB9fWU9ZXx8e30saXNXcmFwTmVlZGVkKGUpJiYoZT1pc0RpdldyYXBOZWVkZWQoZSk/ZGl2V3JhcChlKTpzcGFuV3JhcChlKSksZS5jb21wb25lbnQ9ZS5jb21wb25lbnR8fHt9O2Zvcih2YXIgYT17fSxpPXt9LGw9MDtsPHQubGVuZ3RoOysrbCl0W2xdJiZ0W2xdLmNvbXBvbmVudD9yKHRbbF0uY29tcG9uZW50LGksYSk6KHQuc3BsaWNlKGwsMSksLS1sKTtyKGUuY29tcG9uZW50LGksYSk7Zm9yKHZhciBfIGluIGkpe2Zvcih2YXIgbD0wO2w8dC5sZW5ndGg7KytsKWlbX10ucHVzaCh0W2xdLmNvbXBvbmVudFtfXSk7aWYoaVtfXS5wdXNoKGUuY29tcG9uZW50P2UuY29tcG9uZW50W19dOnZvaWQgMCksInNob3VsZENoYW5nZSI9PV8pe2Zvcih2YXIgZD0hMSxsPTA7bDxpW19dLmxlbmd0aDsrK2wpaWYoIWlbX11bbF0pe2Q9ITA7YnJlYWt9YVtfXT1kP2Z1bmN0aW9uKCl7cmV0dXJuITB9Om8oZSx0LGlbX10pfWVsc2UgYVtfXT1vKGUsdCxpW19dKX1yZXR1cm4gZS5jb21wb25lbnQ9YSxlfWZ1bmN0aW9uIGdldEVudW1WYWx1ZU9yRGVmYXVsdChlLHQsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTApLHZvaWQgMD09PWVbdF0/ZVtuXTp0fWZ1bmN0aW9uIGdldEVsZW1lbnRzQnlDbGFzcyhlLHQpe3JldHVybiBlLmdldEVsZW1lbnRzQnlDbGFzc05hbWU/ZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKHQpOmUucXVlcnlTZWxlY3RvckFsbCgiLiIrdCl9ZnVuY3Rpb24gZ2V0Q29ycmVjdGVkU2VsZWN0ZWRJbmRleChlLHQpe3ZhciBuPU1hdGgucm91bmQoZSk7cmV0dXJuIDA+bnx8aXNOYU4obik/MDpuPj10P3QtMTplfWZ1bmN0aW9uIHVwZGF0ZU1vZGVsQXJyYXkoZSx0LG4scil7dmFyIG89dC5sZW5ndGgsYT1uLmxlbmd0aDtpZihvPmEpdC5zcGxpY2UoYSxvLWEpLGIuaW52YWxpZGF0ZSgpO2Vsc2UgZm9yKDthPm87KXQucHVzaCh7fSksbysrO2Zvcih2YXIgaT0wO2E+aTtpKyspcihlLHRbaV0sbltpXSl9ZnVuY3Rpb24gaXNSdGwoZSl7cmV0dXJuIGUuY2ZnP2UuY2ZnLnJ0bHx8ITE6ITF9ZnVuY3Rpb24gZ2V0TW9kdWxvTnVtYmVyRnJvbVJhbmdlKGUsdCl7cmV0dXJuIGU9ZSV0fHwwLDA+ZSYmKGU9dCtlKSxlfWZ1bmN0aW9uIGdldFBvc2l0aW9uQ2hlY2tlcihlLHQsbil7dmFyIHIsbz1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGE9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZighL2lQYWR8aVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCl8fCJNU1N0cmVhbSJpbiB3aW5kb3d8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1lKXI9bztlbHNle3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0sbD1pLnNjcm9sbFRvcCxfPWkuc2Nyb2xsTGVmdDtyPXt0b3A6by50b3ArbCxib3R0b206by5ib3R0b20rbCxsZWZ0Om8ubGVmdCtfLHJpZ2h0Om8ucmlnaHQrX319dmFyIGQ9e2xlZnQ6e3RvcDpyLnRvcC1hLmhlaWdodCxsZWZ0OnIubGVmdH0sY2VudGVyOnt0b3A6ci50b3AtYS5oZWlnaHQsbGVmdDpyLmxlZnQtKGEud2lkdGgtby53aWR0aCkvMn0scmlnaHQ6e3RvcDpyLnRvcC1hLmhlaWdodCxsZWZ0OnIucmlnaHQtYS53aWR0aH19LHU9e2xlZnQ6e3RvcDpyLmJvdHRvbSxsZWZ0OnIubGVmdH0sY2VudGVyOnt0b3A6ci5ib3R0b20sbGVmdDpyLmxlZnQtKGEud2lkdGgtby53aWR0aCkvMn0scmlnaHQ6e3RvcDpyLmJvdHRvbSxsZWZ0OnIucmlnaHQtYS53aWR0aH19LGM9e3RvcDp7dG9wOnIudG9wLGxlZnQ6ci5sZWZ0LWEud2lkdGh9LG1pZGRsZTp7dG9wOnIudG9wLShhLmhlaWdodC1vLmhlaWdodCkvMixsZWZ0OnIubGVmdC1hLndpZHRofSxib3R0b206e3RvcDpyLmJvdHRvbS1hLmhlaWdodCxsZWZ0OnIubGVmdC1hLndpZHRofX0scz17dG9wOnt0b3A6ci50b3AsbGVmdDpyLnJpZ2h0fSxtaWRkbGU6e3RvcDpyLnRvcC0oYS5oZWlnaHQtby5oZWlnaHQpLzIsbGVmdDpyLnJpZ2h0fSxib3R0b206e3RvcDpyLmJvdHRvbS1hLmhlaWdodCxsZWZ0OnIucmlnaHR9fTtyZXR1cm57dG9wOnt3aWR0aDp3aW5kb3cuaW5uZXJXaWR0aCxoZWlnaHQ6by50b3AsY2FsY1Bvc2l0aW9uOntsZWZ0OmQubGVmdC50b3A+PTAmJmQubGVmdC5sZWZ0Pj0wfHxuP2QubGVmdDp2b2lkIDAsY2VudGVyOmQuY2VudGVyLnRvcD49MCYmZC5jZW50ZXIubGVmdD49MHx8bj9kLmNlbnRlcjp2b2lkIDAscmlnaHQ6ZC5yaWdodC50b3A+PTAmJmQucmlnaHQubGVmdD49MHx8bj9kLnJpZ2h0OnZvaWQgMH19LGJvdHRvbTp7d2lkdGg6d2luZG93LmlubmVyV2lkdGgsaGVpZ2h0OndpbmRvdy5pbm5lckhlaWdodC1vLmJvdHRvbSxjYWxjUG9zaXRpb246e2xlZnQ6dS5sZWZ0LnRvcD49MCYmdS5sZWZ0LmxlZnQ+PTB8fG4/dS5sZWZ0OnZvaWQgMCxjZW50ZXI6dS5jZW50ZXIudG9wPj0wJiZ1LmNlbnRlci5sZWZ0Pj0wfHxuP3UuY2VudGVyOnZvaWQgMCxyaWdodDp1LnJpZ2h0LnRvcD49MCYmdS5yaWdodC5sZWZ0Pj0wfHxuP3UucmlnaHQ6dm9pZCAwfX0sbGVmdDp7d2lkdGg6by5sZWZ0LGhlaWdodDp3aW5kb3cuaW5uZXJIZWlnaHQsY2FsY1Bvc2l0aW9uOnt0b3A6Yy50b3AudG9wPj0wJiZjLnRvcC5sZWZ0Pj0wfHxuP2MudG9wOnZvaWQgMCxtaWRkbGU6Yy5taWRkbGUudG9wPj0wJiZjLm1pZGRsZS5sZWZ0Pj0wfHxuP2MubWlkZGxlOnZvaWQgMCxib3R0b206Yy5ib3R0b20udG9wPj0wJiZjLmJvdHRvbS5sZWZ0Pj0wfHxuP2MuYm90dG9tOnZvaWQgMH19LHJpZ2h0Ont3aWR0aDp3aW5kb3cuaW5uZXJXaWR0aC1vLnJpZ2h0LGhlaWdodDp3aW5kb3cuaW5uZXJIZWlnaHQsY2FsY1Bvc2l0aW9uOnt0b3A6cy50b3AudG9wPj0wJiZzLnRvcC5sZWZ0Pj0wfHxuP3MudG9wOnZvaWQgMCxtaWRkbGU6cy5taWRkbGUudG9wPj0wJiZzLm1pZGRsZS5sZWZ0Pj0wfHxuP3MubWlkZGxlOnZvaWQgMCxib3R0b206cy5ib3R0b20udG9wPj0wJiZzLmJvdHRvbS5sZWZ0Pj0wfHxuP3MuYm90dG9tOnZvaWQgMH19fX1mdW5jdGlvbiBfZ2V0V2lkdGhPckhlaWdodChlLHQsbil7dmFyIHI9dD9lLm9mZnNldFdpZHRoOmUub2Zmc2V0SGVpZ2h0O2lmKDI9PT1uKXJldHVybiByO2Zvcih2YXIgbz13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlLG51bGwpLGE9WyItbGVmdCIsIi10b3AiLCItcmlnaHQiLCItYm90dG9tIl0saT10PzA6MTtpPGEubGVuZ3RoO2krPTIpMD09PW4mJihyLT1wYXJzZUZsb2F0KG8uZ2V0UHJvcGVydHlWYWx1ZSgicGFkZGluZyIrYVtpXSkpKSwyPm4mJihyLT1wYXJzZUZsb2F0KG8uZ2V0UHJvcGVydHlWYWx1ZSgiYm9yZGVyIithW2ldKyItd2lkdGgiKSkpLDM9PT1uJiYocis9cGFyc2VGbG9hdChvLmdldFByb3BlcnR5VmFsdWUoIm1hcmdpbiIrYVtpXSkpKTtyZXR1cm4gcn1mdW5jdGlvbiBnZXRXaWR0aChlKXtyZXR1cm4gX2dldFdpZHRoT3JIZWlnaHQoZSwhMCwwKX1mdW5jdGlvbiBnZXRIZWlnaHQoZSl7cmV0dXJuIF9nZXRXaWR0aE9ySGVpZ2h0KGUsITEsMCl9ZnVuY3Rpb24gZ2V0SW5uZXJXaWR0aChlKXtyZXR1cm4gX2dldFdpZHRoT3JIZWlnaHQoZSwhMCwxKX1mdW5jdGlvbiBnZXRJbm5lckhlaWdodChlKXtyZXR1cm4gX2dldFdpZHRoT3JIZWlnaHQoZSwhMSwxKX1mdW5jdGlvbiBnZXRPdXRlcldpZHRoKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PSExKSxfZ2V0V2lkdGhPckhlaWdodChlLCEwLHQ/MzoyKX1mdW5jdGlvbiBnZXRPdXRlckhlaWdodChlLHQpe3JldHVybiB2b2lkIDA9PT10JiYodD0hMSksX2dldFdpZHRoT3JIZWlnaHQoZSwhMSx0PzM6Mil9ZnVuY3Rpb24gaXNFdmVudFByb3BlcnR5KGUpe3JldHVybiBiLmlzQXJyYXkoZSkmJmUubGVuZ3RoPjEmJiJudW1iZXIiPT10eXBlb2YgZVswXSYmImZ1bmN0aW9uIj09dHlwZW9mIGVbMV19ZnVuY3Rpb24gbWVyZ2VEYXRhTW9kZWxzKGUsdCl7Zm9yKHZhciBuIGluIHQpaWYodC5oYXNPd25Qcm9wZXJ0eShuKSl7dmFyIHI9dFtuXTtpZighaXNFdmVudFByb3BlcnR5KHIpJiYhaXNFdmVudFByb3BlcnR5KGVbbl0pKWlmKCJvYmplY3QiIT10eXBlb2Ygcnx8IltvYmplY3QgRGF0ZV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHIpKWVbbl09dFtuXTtlbHNle2lmKGVbbl18fChlW25dPWIuaXNBcnJheSh0W25dKT9bXTp7fSksYi5pc0FycmF5KHRbbl0pJiYwPT09bi5pbmRleE9mKCJTb3J0ZWRBcnJheV8iKSljb250aW51ZTttZXJnZURhdGFNb2RlbHMoZVtuXSx0W25dKX19aWYoYi5pc0FycmF5KGUpKWZvcih2YXIgbz1lLmxlbmd0aC0xO28+PTA7by0tKWlzRXZlbnRQcm9wZXJ0eShlW29dKXx8dC5oYXNPd25Qcm9wZXJ0eShvKSYmIiQkJGhhc2hLZXkiIT1lW29dfHxlLnNwbGljZShvLDEpO2Vsc2UgZm9yKHZhciBuIGluIGUpaXNFdmVudFByb3BlcnR5KGVbbl0pfHx0Lmhhc093blByb3BlcnR5KG4pJiYiJCQkaGFzaEtleSIhPW58fGRlbGV0ZSBlW25dfWZ1bmN0aW9uIHNpbXBsaWZ5TW9kZWxSZWN1cnNpdmUoZSl7dmFyIHQ9e307Zm9yKHZhciBuIGluIGUpaWYoZS5oYXNPd25Qcm9wZXJ0eShuKSl7dmFyIHI9ZVtuXTtpc0V2ZW50UHJvcGVydHkocil8fCh0W25dPSJvYmplY3QiIT10eXBlb2Ygcj9lW25dOnNpbXBsaWZ5TW9kZWxSZWN1cnNpdmUoZVtuXSkpfXJldHVybiB0fWZ1bmN0aW9uIGN0eE1CbGQoZSx0LG4pe3ZhciByPSJ2YXIgZHA9IitlKyIucHJvdG90eXBlOyI7cmV0dXJuIHIrQ3R4VW5wYWNrZXIudW5wYWNrKHQsbil9ZnVuY3Rpb24gY3R4UkJsZChjdHhOYW1lLGNvbXByZXNzZWREYXRhLGRpY3Qpe3ZhciBldmFsU291cmNlPWN0eE5hbWUrIj17IjtldmFsU291cmNlKz1DdHhVbnBhY2tlci51bnBhY2soY29tcHJlc3NlZERhdGEsZGljdCksZXZhbFNvdXJjZSs9In07IixldmFsKGV2YWxTb3VyY2UpfWZ1bmN0aW9uIGlzRW1wdHlCYXNlNjRDb250ZW50KGUpe2lmKCFlKXJldHVybiEwO3ZhciB0PWUubGVuZ3RoPjUwfHwhLyhiYXNlNjQsJCl8KF4kfFxzKykvLnRlc3QoZSk7cmV0dXJuIXR9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzQoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzRDb25zdH1mdW5jdGlvbiBUZXh0NCgpe3JldHVybiBUZXh0XzEwXzBfMTFfNCgpfWZ1bmN0aW9uIEltYWdlOChlKXtyZXR1cm4gSW1hZ2VfMTFfMF8wKGUuZ2V0TG9nb19CQUNfQ3JlZG9tYXRpY19CTl9tZWQoKSwiMTAwJSIsIiIsIiIsZSl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGw3KGUpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzRfMCh3aXRoUGFyYW0oSW1hZ2U4LGUpLDEsMSwiMjAlIiwibWlkZGxlIixlKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzEwKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8xMENvbnN0fWZ1bmN0aW9uIFRleHQxMCgpe3JldHVybiBhZGRGcmFtZSh7cGFkZGluZ0xlZnQ6IjJlbSIscGFkZGluZ1JpZ2h0OiIyZW0ifSwwLGFkZEZyYW1lKHtib3JkZXI6IjJweCBzb2xpZCAjMDAwMDAwIixwYWRkaW5nTGVmdDoiMmVtIixwYWRkaW5nUmlnaHQ6IjJlbSJ9LDIsVGV4dF8xMF8wXzExXzEwKCkpKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDkoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV80XzAoVGV4dDEwLDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMTIoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzEyQ29uc3R9ZnVuY3Rpb24gVGV4dDEyKCl7cmV0dXJuIGFkZEZyYW1lKHtwYWRkaW5nTGVmdDoiMmVtIixwYWRkaW5nUmlnaHQ6IjJlbSJ9LDAsYWRkRnJhbWUoe2JvcmRlcjoiMnB4IHNvbGlkICMwMDAwMDAiLHBhZGRpbmdMZWZ0OiIyZW0iLHBhZGRpbmdSaWdodDoiMmVtIn0sMixUZXh0XzEwXzBfMTFfMTIoKSkpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMTEoKXtyZXR1cm4gQmFzaWNUYWJsZUNlbGxfMTFfNF8wKFRleHQxMiwxLDEsImF1dG8iLCJtaWRkbGUiKX1mdW5jdGlvbiBCYXNpY1RhYmxlUm93NihlKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDN9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gMD09dD9CYXNpY1RhYmxlQ2VsbDcoZSk6MT09dD9CYXNpY1RhYmxlQ2VsbDkoZSk6Mj09dD9CYXNpY1RhYmxlQ2VsbDExKGUpOnZvaWQgMH19LCJhdXRvIixlKX1mdW5jdGlvbiBCYXNpY1RhYmxlNShlKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlXzExXzBfNChub29wLHtjb3VudDpmdW5jdGlvbigpe3JldHVybiAxfSxrZXk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrIl8ifSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIDA9PXQ/QmFzaWNUYWJsZVJvdzYoZSk6dm9pZCAwfX0sbm9vcCwidHJhbnNwYXJlbnQiLCJ0cmFuc3BhcmVudCIsInNlcGFyYXRlIiwhMSxlKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzE3KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8xN0NvbnN0fWZ1bmN0aW9uIFRleHQxNygpe3JldHVybiBUZXh0XzEwXzBfMTFfMTcoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDE2KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfNF8wKFRleHQxNywxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzE5KGUpe3JldHVybltzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFdlaWdodDoiYm9sZCJ9LCIiLGUuZ2V0QVNfQ3VlbnRhTWFzaygpKyIiKV19ZnVuY3Rpb24gVGV4dDE5KGUpe3JldHVybiBUZXh0XzEwXzBfMTFfMTkoZSl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwxOChlKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV80XzAod2l0aFBhcmFtKFRleHQxOSxlKSwzLDEsImF1dG8iLCJtaWRkbGUiLGUpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjEoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzIxQ29uc3R9ZnVuY3Rpb24gVGV4dDIxKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yMSgpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMjAoKXtyZXR1cm4gQmFzaWNUYWJsZUNlbGxfMTFfNF8wKFRleHQyMSwxLDEsImF1dG8iLCJtaWRkbGUiKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjMoZSl7cmV0dXJuW3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250V2VpZ2h0OiJib2xkIn0sIiIsZS5nZXRIRl9OdW1fU3VjdXJzYWwoKSsiICIrZS5nZXRIRl9TdWN1cnNhbCgpKV19ZnVuY3Rpb24gVGV4dDIzKGUpe3JldHVybiBUZXh0XzEwXzBfMTFfMjMoZSl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwyMihlKXtyZXR1cm4gQmFzaWNUYWJsZUNlbGxfMTFfNF8wKHdpdGhQYXJhbShUZXh0MjMsZSksMSwxLCJhdXRvIiwibWlkZGxlIixlKX1mdW5jdGlvbiBCYXNpY1RhYmxlUm93MTUoZSl7cmV0dXJuIEJhc2ljVGFibGVSb3dfMTFfMF8zKHtjb3VudDpmdW5jdGlvbigpe3JldHVybiA0fSxrZXk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrIl8ifSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIDA9PXQ/QmFzaWNUYWJsZUNlbGwxNihlKToxPT10P0Jhc2ljVGFibGVDZWxsMTgoZSk6Mj09dD9CYXNpY1RhYmxlQ2VsbDIwKGUpOjM9PXQ/QmFzaWNUYWJsZUNlbGwyMihlKTp2b2lkIDB9fSwiYXV0byIsZSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzI2KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yNkNvbnN0fWZ1bmN0aW9uIFRleHQyNigpe3JldHVybiBUZXh0XzEwXzBfMTFfMjYoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDI1KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfNF8wKFRleHQyNiwxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzI4KGUpe3JldHVybltzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFdlaWdodDoiYm9sZCJ9LCIiLGUuZ2V0QVNfTm9tYnJlX0NsaWVudGUoKSsiIildfWZ1bmN0aW9uIFRleHQyOChlKXtyZXR1cm4gVGV4dF8xMF8wXzExXzI4KGUpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMjcoZSl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfNF8wKHdpdGhQYXJhbShUZXh0MjgsZSksMywxLCJhdXRvIiwibWlkZGxlIixlKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzMwKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8zMENvbnN0fWZ1bmN0aW9uIFRleHQzMCgpe3JldHVybiBUZXh0XzEwXzBfMTFfMzAoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDI5KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfNF8wKFRleHQzMCwxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzMyKGUpe3JldHVybltzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFdlaWdodDoiYm9sZCJ9LCIiLGUuZ2V0SEZfZGlhKCkrIi8iK2UuZ2V0SEZfbWVzKCkrIi8iK2UuZ2V0X0hGX0hGX2FmMW8oKSldfWZ1bmN0aW9uIFRleHQzMihlKXtyZXR1cm4gVGV4dF8xMF8wXzExXzMyKGUpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMzEoZSl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfNF8wKHdpdGhQYXJhbShUZXh0MzIsZSksMSwxLCJhdXRvIiwibWlkZGxlIixlKSl9ZnVuY3Rpb24gQmFzaWNUYWJsZVJvdzI0KGUpe3JldHVybiBCYXNpY1RhYmxlUm93XzExXzBfMyh7Y291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gNH0sa2V5OmZ1bmN0aW9uKGUpe3JldHVybiBlKyJfIn0sZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiAwPT10P0Jhc2ljVGFibGVDZWxsMjUoZSk6MT09dD9CYXNpY1RhYmxlQ2VsbDI3KGUpOjI9PXQ/QmFzaWNUYWJsZUNlbGwyOShlKTozPT10P0Jhc2ljVGFibGVDZWxsMzEoZSk6dm9pZCAwfX0sImF1dG8iLGUpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8zNSgpe3JldHVybiBUZXh0XzEwXzBfMTFfMzVDb25zdH1mdW5jdGlvbiBUZXh0MzUoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzM1KCl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwzNCgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzRfMChUZXh0MzUsMiwxLCIxNSUiLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzM3KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8zN0NvbnN0fWZ1bmN0aW9uIFRleHQzNygpe3JldHVybiBUZXh0XzEwXzBfMTFfMzcoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDM2KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfNF8wKFRleHQzNywxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzM5KGUpe3JldHVybltzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFdlaWdodDoiYm9sZCJ9LCIiLGUuZ2V0UGFyYURlc2NUcmFtaXRlKCkrIiAiK2UuZ2V0Q3VlbnRhVG90YWwoKSldfWZ1bmN0aW9uIFRleHQzOShlKXtyZXR1cm4gVGV4dF8xMF8wXzExXzM5KGUpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMzgoZSl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfNF8wKHdpdGhQYXJhbShUZXh0MzksZSksMSwxLCJhdXRvIiwibWlkZGxlIixlKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzQxKCl7cmV0dXJuIFRleHRfMTBfMF8xMV80MUNvbnN0fWZ1bmN0aW9uIFRleHQ0MSgpe3JldHVybiBUZXh0XzEwXzBfMTFfNDEoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDQwKCl7cmV0dXJuIEJhc2ljVGFibGVDZWxsXzExXzRfMChUZXh0NDEsMSwxLCJhdXRvIiwibWlkZGxlIil9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzQzKGUpe3JldHVybltzKCIiLHtmb250RmFtaWx5OiJBcmlhbCJ9LCIiLCIgJCAiKSxzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFdlaWdodDoiYm9sZCJ9LCIiLGUuZ2V0QVNfTGltaXRlKCkrIiIpXX1mdW5jdGlvbiBUZXh0NDMoZSl7cmV0dXJuIFRleHRfMTBfMF8xMV80MyhlKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDQyKGUpe3JldHVybiBCYXNpY1RhYmxlQ2VsbF8xMV80XzAod2l0aFBhcmFtKFRleHQ0MyxlKSwxLDEsImF1dG8iLCJtaWRkbGUiLGUpfWZ1bmN0aW9uIEJhc2ljVGFibGVSb3czMyhlKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDV9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gMD09dD9CYXNpY1RhYmxlQ2VsbDM0KGUpOjE9PXQ/QmFzaWNUYWJsZUNlbGwzNihlKToyPT10P0Jhc2ljVGFibGVDZWxsMzgoZSk6Mz09dD9CYXNpY1RhYmxlQ2VsbDQwKGUpOjQ9PXQ/QmFzaWNUYWJsZUNlbGw0MihlKTp2b2lkIDB9fSwiYXV0byIsZSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzQ2KCl7cmV0dXJuIFRleHRfMTBfMF8xMV80NkNvbnN0fWZ1bmN0aW9uIFRleHQ0Nigpe3JldHVybiBUZXh0XzEwXzBfMTFfNDYoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDQ1KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfNF8wKFRleHQ0NiwxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzQ4KGUpe3JldHVybltzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFdlaWdodDoiYm9sZCJ9LCIiLGUuZ2V0Q0lGX0JDT19IRigpKyIiKV19ZnVuY3Rpb24gVGV4dDQ4KGUpe3JldHVybiBUZXh0XzEwXzBfMTFfNDgoZSl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGw0NyhlKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV80XzAod2l0aFBhcmFtKFRleHQ0OCxlKSw0LDEsImF1dG8iLCJtaWRkbGUiLGUpKX1mdW5jdGlvbiBCYXNpY1RhYmxlUm93NDQoZSl7cmV0dXJuIEJhc2ljVGFibGVSb3dfMTFfMF8zKHtjb3VudDpmdW5jdGlvbigpe3JldHVybiAyfSxrZXk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrIl8ifSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIDA9PXQ/QmFzaWNUYWJsZUNlbGw0NShlKToxPT10P0Jhc2ljVGFibGVDZWxsNDcoZSk6dm9pZCAwfX0sImF1dG8iLGUpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV81MSgpe3JldHVybiBUZXh0XzEwXzBfMTFfNTFDb25zdH1mdW5jdGlvbiBUZXh0NTEoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzUxKCl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGw1MCgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzRfMChUZXh0NTEsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV81MyhlKXtyZXR1cm5bcygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRXZWlnaHQ6ImJvbGQifSwiIixlLmdldEFTX0NJRl9UaXR1bGFyKCkrIiIpXX1mdW5jdGlvbiBUZXh0NTMoZSl7cmV0dXJuIFRleHRfMTBfMF8xMV81MyhlKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDUyKGUpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzRfMCh3aXRoUGFyYW0oVGV4dDUzLGUpLDUsMSwiYXV0byIsIm1pZGRsZSIsZSkpfWZ1bmN0aW9uIEJhc2ljVGFibGVSb3c0OShlKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDJ9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gMD09dD9CYXNpY1RhYmxlQ2VsbDUwKGUpOjE9PXQ/QmFzaWNUYWJsZUNlbGw1MihlKTp2b2lkIDB9fSwiYXV0byIsZSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzU2KCl7cmV0dXJuIFRleHRfMTBfMF8xMV81NkNvbnN0fWZ1bmN0aW9uIFRleHQ1Nigpe3JldHVybiBUZXh0XzEwXzBfMTFfNTYoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDU1KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfNF8wKFRleHQ1NiwxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzU4KGUpe3JldHVybltzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFdlaWdodDoiYm9sZCJ9LCIiLGUuZ2V0QVNfTm9tYnJlX0ZpYWRvcigpKyIiKV19ZnVuY3Rpb24gVGV4dDU4KGUpe3JldHVybiBUZXh0XzEwXzBfMTFfNTgoZSl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGw1NyhlKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV80XzAod2l0aFBhcmFtKFRleHQ1OCxlKSw1LDEsImF1dG8iLCJtaWRkbGUiLGUpKX1mdW5jdGlvbiBCYXNpY1RhYmxlUm93NTQoZSl7cmV0dXJuIEJhc2ljVGFibGVSb3dfMTFfMF8zKHtjb3VudDpmdW5jdGlvbigpe3JldHVybiAyfSxrZXk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrIl8ifSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIDA9PXQ/QmFzaWNUYWJsZUNlbGw1NShlKToxPT10P0Jhc2ljVGFibGVDZWxsNTcoZSk6dm9pZCAwfX0sImF1dG8iLGUpfWZ1bmN0aW9uIEJhc2ljVGFibGUxNChlKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50IixwYWRkaW5nQm90dG9tOiIyZW0iLHBhZGRpbmdUb3A6IjJlbSJ9LDIsQmFzaWNUYWJsZV8xMV8wXzQobm9vcCx7Y291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gNn0sa2V5OmZ1bmN0aW9uKGUpe3JldHVybiBlKyJfIn0sZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiAwPT10P0Jhc2ljVGFibGVSb3cxNShlKToxPT10P0Jhc2ljVGFibGVSb3cyNChlKToyPT10P0Jhc2ljVGFibGVSb3czMyhlKTozPT10P0Jhc2ljVGFibGVSb3c0NChlKTo0PT10P0Jhc2ljVGFibGVSb3c0OShlKTo1PT10P0Jhc2ljVGFibGVSb3c1NChlKTp2b2lkIDB9fSxub29wLCJ0cmFuc3BhcmVudCIsInRyYW5zcGFyZW50Iiwic2VwYXJhdGUiLCExLGUpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfNTkoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzU5Q29uc3R9ZnVuY3Rpb24gVGV4dDU5KCl7cmV0dXJuIGFkZEZyYW1lKHtwYWRkaW5nQm90dG9tOiIxZW0ifSwyLFRleHRfMTBfMF8xMV81OSgpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfNjMoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzYzQ29uc3R9ZnVuY3Rpb24gVGV4dDYzKCl7cmV0dXJuIFRleHRfMTBfMF8xMV82MygpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsNjIoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50IixwYWRkaW5nQm90dG9tOiIwLjVlbSJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfNF8wKFRleHQ2MywyLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gQmFzaWNUYWJsZVJvdzYxKCl7cmV0dXJuIEJhc2ljVGFibGVSb3dfMTFfMF8zKHtjb3VudDpmdW5jdGlvbigpe3JldHVybiAxfSxrZXk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrIl8ifSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PWU/QmFzaWNUYWJsZUNlbGw2MigpOnZvaWQgMH19LCJhdXRvIil9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzY2KCl7cmV0dXJuIFRleHRfMTBfMF8xMV82NkNvbnN0fWZ1bmN0aW9uIFRleHQ2Nigpe3JldHVybiBhZGRGcmFtZSh7cGFkZGluZ0xlZnQ6IjJweCIscGFkZGluZ1JpZ2h0OiIycHgifSwwLFRleHRfMTBfMF8xMV82NigpKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDY1KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjJweCBzb2xpZCAjMDAwMDAwIn0sMixCYXNpY1RhYmxlQ2VsbF8xMV80XzAoVGV4dDY2LDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfNjgoZSl7cmV0dXJuW2QoIiIse30sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiQS4gRmVjaGEgbO1taXRlIHBhcmEgZWwgUGFnbyBkZSBDb250YWRvOiBFcyBsYSD6bHRpbWEgZmVjaGEgZW4gcXVlIHVzdGVkIHB1ZWRlIHJlYWxpemFyIGVsIHBhZ28gZGVsIG1vbnRvIGRlIGNvbnRhZG8gaW5kaWNhZG8gZW4gZWwgZXN0YWRvIGRlIGN1ZW50YSBwYXJhIHBvZGVyIHJldmVyc2FyIGxvcyBpbnRlcmVzZXMgY29ycmllbnRlcyBkZWwgcGVy7W9kby4gU3UgZmVjaGEgZGUgcGFnbyBkZSBjb250YWRvIGVzICIpLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIixmb250V2VpZ2h0OiJib2xkIix0ZXh0RGVjb3JhdGlvbjoidW5kZXJsaW5lIn0sIiIsZS5nZXRIRl9GZWNoYV9Db250YWRvKCkrIiAiKSxzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJkZSBjYWRhIG1lcyogIikpLGQoIiIse30sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiQi4gRmVjaGEgZGUgQ29ydGU6IEVzIGxhIGZlY2hhIGVuIHF1ZSBjaWVycmEgc3UgY2ljbG8gZGUgY3VlbnRhLCBzZSBsZSBhcGxpY2FuIGxvcyBjYXJnb3MgY29ycmVzcG9uZGllbnRlcywgZ2VuZXLhbmRvc2UgdW4gbnVldm8gIikpLGQoIiIse30sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiZXN0YWRvIGRlIGN1ZW50YS4gU3UgZmVjaGEgZGUgY29ydGUgZXMgIikscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUiLGZvbnRXZWlnaHQ6ImJvbGQiLHRleHREZWNvcmF0aW9uOiJ1bmRlcmxpbmUifSwiIixlLmdldEhGX0ZlY2hhX2NvcnRlKCkrIiIpLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIiBkZSBjYWRhIG1lcyouICIpKSxkKCIiLHt9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIkMuIEZlY2hhIEztbWl0ZSBwYXJhIGVsIFBhZ28gTe1uaW1vOiBFcyBsYSD6bHRpbWEgZmVjaGEgZW4gbGEgcXVlIHNlIHB1ZWRlIHJlYWxpemFyIGVsIHBhZ28gbe1uaW1vIHNpbiBpbmN1cnJpciBlbiBjYXJnb3MgcG9yIG1vcmEgcG9yIGF0cmFzbyBlbiBlbCBwYWdvLiBTdSBmZWNoYSBkZSBwYWdvIG3tbmltbyAiKSxzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSIsZm9udFdlaWdodDoiYm9sZCIsdGV4dERlY29yYXRpb246InVuZGVybGluZSJ9LCIiLGUuZ2V0SEZfRmVjaGFfbWluaW1vKCkrIiIpLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIiBlcyBkZSBjYWRhIG1lcyouICIpKSxkKCIiLHt9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIipFc3RhcyBmZWNoYXMgcHVlZGVuIHZhcmlhciBkZXBlbmRpZW5kbyBkZSBsYSBjYW50aWRhZCBkZSBk7WFzIGjhYmlsZXMgZW4gZWwgbWVzLiIpKV19ZnVuY3Rpb24gVGV4dDY4KGUpe3JldHVybiBhZGRGcmFtZSh7cGFkZGluZ0xlZnQ6IjJweCIscGFkZGluZ1JpZ2h0OiIycHgifSwwLFRleHRfMTBfMF8xMV82OChlKSl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGw2NyhlKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlckJvdHRvbToiMnB4IHNvbGlkICMwMDAwMDAiLGJvcmRlckxlZnQ6IjJweCBzb2xpZCB0cmFuc3BhcmVudCIsYm9yZGVyUmlnaHQ6IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJUb3A6IjJweCBzb2xpZCAjMDAwMDAwIn0sMixCYXNpY1RhYmxlQ2VsbF8xMV80XzAod2l0aFBhcmFtKFRleHQ2OCxlKSwxLDEsImF1dG8iLCJtaWRkbGUiLGUpKX1mdW5jdGlvbiBCYXNpY1RhYmxlUm93NjQoZSl7cmV0dXJuIEJhc2ljVGFibGVSb3dfMTFfMF8zKHtjb3VudDpmdW5jdGlvbigpe3JldHVybiAyfSxrZXk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrIl8ifSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIDA9PXQ/QmFzaWNUYWJsZUNlbGw2NShlKToxPT10P0Jhc2ljVGFibGVDZWxsNjcoZSk6dm9pZCAwfX0sImF1dG8iLGUpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV83MSgpe3JldHVybiBUZXh0XzEwXzBfMTFfNzFDb25zdH1mdW5jdGlvbiBUZXh0NzEoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzcxKCl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGw3MCgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyQm90dG9tOiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyTGVmdDoiMnB4IHNvbGlkICMwMDAwMDAiLGJvcmRlclJpZ2h0OiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyVG9wOiIycHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzRfMChUZXh0NzEsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV83MyhlKXtyZXR1cm5bcygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiTGEgdGFzYSBkZSBpbnRlculzIGNvcnJpZW50ZSBwYXJhIHRyYW5zYWNjaW9uZXMgZW4gY29sb25lcyBlcyBkZWwgIikscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUiLGZvbnRXZWlnaHQ6ImJvbGQiLHRleHREZWNvcmF0aW9uOiJ1bmRlcmxpbmUifSwiIixlLmdldEhGX1Rhc2FfQ29sb25lcygpKyIiKSxzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCIgJSBtZW5zdWFsIHkgZW4gVVMgZPNsYXJlcyAiKSxzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSIsZm9udFdlaWdodDoiYm9sZCIsdGV4dERlY29yYXRpb246InVuZGVybGluZSJ9LCIiLGUuZ2V0SEZfVGFzYV9Eb2xhcmVzKCkrIiIpLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIixmb250V2VpZ2h0OiJib2xkIn0sIiIsIiAiKSxzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCIlIG1lbnN1YWwuIildfWZ1bmN0aW9uIFRleHQ3MyhlKXtyZXR1cm4gVGV4dF8xMF8wXzExXzczKGUpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsNzIoZSl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXJCb3R0b206IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJMZWZ0OiIycHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclJpZ2h0OiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyVG9wOiIycHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzRfMCh3aXRoUGFyYW0oVGV4dDczLGUpLDEsMSwiYXV0byIsIm1pZGRsZSIsZSkpfWZ1bmN0aW9uIEJhc2ljVGFibGVSb3c2OShlKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDJ9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gMD09dD9CYXNpY1RhYmxlQ2VsbDcwKGUpOjE9PXQ/QmFzaWNUYWJsZUNlbGw3MihlKTp2b2lkIDB9fSwiYXV0byIsZSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzc2KCl7cmV0dXJuIFRleHRfMTBfMF8xMV83NkNvbnN0fWZ1bmN0aW9uIFRleHQ3Nigpe3JldHVybiBUZXh0XzEwXzBfMTFfNzYoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDc1KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXJCb3R0b206IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJMZWZ0OiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyUmlnaHQ6IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJUb3A6IjJweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfNF8wKFRleHQ3NiwxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzc4KGUpe3JldHVybltzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCdQYXJhIGV2aXRhciBwYWdhciBjYXJnb3MgbW9yYXRvcmlvcyBkZWJlcuEgcmVhbGl6YXIgc3UgcGFnbyBlbiBsYSBmZWNoYSBkZWwgcGFnbyBt7W5pbW8uIFJlY3VlcmRlIGNvbnNlcnZhciBzdXMgImNvbXByb2JhbnRlcyBkZSBwYWdvIiBwYXJhIGN1YWxxdWllciByZWNsYW1vLiBTZSBjb2JyYXLhIHVuIGNhcmdvIGRlICQgJykscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUiLGZvbnRXZWlnaHQ6ImJvbGQiLHRleHREZWNvcmF0aW9uOiJ1bmRlcmxpbmUifSwiIixlLmdldF9IRl9QYWdvX1RhcmRlZG8oKSsiIikscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiIHBvciBjYXJnbyBhZG1pbmlzdHJhdGl2byBwb3IgY3VlbnRhIGVuIGF0cmFzby4iKV19ZnVuY3Rpb24gVGV4dDc4KGUpe3JldHVybiBUZXh0XzEwXzBfMTFfNzgoZSl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGw3NyhlKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlckJvdHRvbToiMnB4IHNvbGlkICMwMDAwMDAiLGJvcmRlckxlZnQ6IjJweCBzb2xpZCB0cmFuc3BhcmVudCIsYm9yZGVyUmlnaHQ6IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJUb3A6IjJweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfNF8wKHdpdGhQYXJhbShUZXh0NzgsZSksMSwxLCJhdXRvIiwibWlkZGxlIixlKSl9ZnVuY3Rpb24gQmFzaWNUYWJsZVJvdzc0KGUpe3JldHVybiBCYXNpY1RhYmxlUm93XzExXzBfMyh7Y291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMn0sa2V5OmZ1bmN0aW9uKGUpe3JldHVybiBlKyJfIn0sZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiAwPT10P0Jhc2ljVGFibGVDZWxsNzUoZSk6MT09dD9CYXNpY1RhYmxlQ2VsbDc3KGUpOnZvaWQgMH19LCJhdXRvIixlKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfODEoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzgxQ29uc3R9ZnVuY3Rpb24gVGV4dDgxKCl7cmV0dXJuIFRleHRfMTBfMF8xMV84MSgpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsODAoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlckJvdHRvbToiMnB4IHNvbGlkICMwMDAwMDAiLGJvcmRlckxlZnQ6IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJSaWdodDoiMnB4IHNvbGlkICMwMDAwMDAiLGJvcmRlclRvcDoiMnB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV80XzAoVGV4dDgxLDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfODMoZSl7cmV0dXJuW3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIlNpIGVsIHRhcmpldGFoYWJpZW50ZSBzZSBzb2JyZWdpcmEgbyBleGNlZGUgZWwgbO1taXRlIGRlIGNy6WRpdG8gZmlqYWRvIHBhcmEgZWwgdXNvIGRlIGxhIHRhcmpldGEgZGUgY3LpZGl0bywgc2UgbGUgY29icmFy4SB1biBjYXJnbyBkZSAkICIpLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIixmb250V2VpZ2h0OiJib2xkIix0ZXh0RGVjb3JhdGlvbjoidW5kZXJsaW5lIn0sIiIsZS5nZXRIRl9Tb2JyZWdpcm8oKSsiIildfWZ1bmN0aW9uIFRleHQ4MyhlKXtyZXR1cm4gVGV4dF8xMF8wXzExXzgzKGUpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsODIoZSl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXJCb3R0b206IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJMZWZ0OiIycHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclJpZ2h0OiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyVG9wOiIycHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzRfMCh3aXRoUGFyYW0oVGV4dDgzLGUpLDEsMSwiYXV0byIsIm1pZGRsZSIsZSkpfWZ1bmN0aW9uIEJhc2ljVGFibGVSb3c3OShlKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDJ9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gMD09dD9CYXNpY1RhYmxlQ2VsbDgwKGUpOjE9PXQ/QmFzaWNUYWJsZUNlbGw4MihlKTp2b2lkIDB9fSwiYXV0byIsZSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzg2KCl7cmV0dXJuIFRleHRfMTBfMF8xMV84NkNvbnN0fWZ1bmN0aW9uIFRleHQ4Nigpe3JldHVybiBUZXh0XzEwXzBfMTFfODYoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDg1KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXJCb3R0b206IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJMZWZ0OiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyUmlnaHQ6IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJUb3A6IjJweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfNF8wKFRleHQ4NiwxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzg4KCl7cmV0dXJuIFRleHRfMTBfMF8xMV84OENvbnN0fWZ1bmN0aW9uIFRleHQ4OCgpe3JldHVybiBUZXh0XzEwXzBfMTFfODgoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDg3KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXJCb3R0b206IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJMZWZ0OiIycHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclJpZ2h0OiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyVG9wOiIycHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzRfMChUZXh0ODgsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIEJhc2ljVGFibGVSb3c4NCgpe3JldHVybiBCYXNpY1RhYmxlUm93XzExXzBfMyh7Y291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMn0sa2V5OmZ1bmN0aW9uKGUpe3JldHVybiBlKyJfIn0sZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiAwPT1lP0Jhc2ljVGFibGVDZWxsODUoKToxPT1lP0Jhc2ljVGFibGVDZWxsODcoKTp2b2lkIDB9fSwiYXV0byIpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV85MSgpe3JldHVybiBUZXh0XzEwXzBfMTFfOTFDb25zdH1mdW5jdGlvbiBUZXh0OTEoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzkxKCl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGw5MCgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyQm90dG9tOiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyTGVmdDoiMnB4IHNvbGlkICMwMDAwMDAiLGJvcmRlclJpZ2h0OiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyVG9wOiIycHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzRfMChUZXh0OTEsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV85Mygpe3JldHVybiBUZXh0XzEwXzBfMTFfOTNDb25zdH1mdW5jdGlvbiBUZXh0OTMoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzkzKCl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGw5Migpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyQm90dG9tOiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyTGVmdDoiMnB4IHNvbGlkIHRyYW5zcGFyZW50Iixib3JkZXJSaWdodDoiMnB4IHNvbGlkICMwMDAwMDAiLGJvcmRlclRvcDoiMnB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV80XzAoVGV4dDkzLDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBCYXNpY1RhYmxlUm93ODkoKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDJ9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4gMD09ZT9CYXNpY1RhYmxlQ2VsbDkwKCk6MT09ZT9CYXNpY1RhYmxlQ2VsbDkyKCk6dm9pZCAwfX0sImF1dG8iKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfOTYoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzk2Q29uc3R9ZnVuY3Rpb24gVGV4dDk2KCl7cmV0dXJuIFRleHRfMTBfMF8xMV85NigpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsOTUoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlckJvdHRvbToiMnB4IHNvbGlkICMwMDAwMDAiLGJvcmRlckxlZnQ6IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJSaWdodDoiMnB4IHNvbGlkICMwMDAwMDAiLGJvcmRlclRvcDoiMnB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV80XzAoVGV4dDk2LDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfOTgoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzk4Q29uc3R9ZnVuY3Rpb24gVGV4dDk4KCl7cmV0dXJuIFRleHRfMTBfMF8xMV85OCgpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsOTcoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlckJvdHRvbToiMnB4IHNvbGlkICMwMDAwMDAiLGJvcmRlckxlZnQ6IjJweCBzb2xpZCB0cmFuc3BhcmVudCIsYm9yZGVyUmlnaHQ6IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJUb3A6IjJweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfNF8wKFRleHQ5OCwxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gQmFzaWNUYWJsZVJvdzk0KCl7cmV0dXJuIEJhc2ljVGFibGVSb3dfMTFfMF8zKHtjb3VudDpmdW5jdGlvbigpe3JldHVybiAyfSxrZXk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrIl8ifSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PWU/QmFzaWNUYWJsZUNlbGw5NSgpOjE9PWU/QmFzaWNUYWJsZUNlbGw5NygpOnZvaWQgMH19LCJhdXRvIil9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzEwMSgpe3JldHVybiBUZXh0XzEwXzBfMTFfMTAxQ29uc3R9ZnVuY3Rpb24gVGV4dDEwMSgpe3JldHVybiBUZXh0XzEwXzBfMTFfMTAxKCl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwxMDAoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlckJvdHRvbToiMnB4IHNvbGlkICMwMDAwMDAiLGJvcmRlckxlZnQ6IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJSaWdodDoiMnB4IHNvbGlkICMwMDAwMDAiLGJvcmRlclRvcDoiMnB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV80XzAoVGV4dDEwMSwxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzEwMygpe3JldHVybiBUZXh0XzEwXzBfMTFfMTAzQ29uc3R9ZnVuY3Rpb24gVGV4dDEwMygpe3JldHVybiBUZXh0XzEwXzBfMTFfMTAzKCl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwxMDIoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlckJvdHRvbToiMnB4IHNvbGlkICMwMDAwMDAiLGJvcmRlckxlZnQ6IjJweCBzb2xpZCB0cmFuc3BhcmVudCIsYm9yZGVyUmlnaHQ6IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJUb3A6IjJweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfNF8wKFRleHQxMDMsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIEJhc2ljVGFibGVSb3c5OSgpe3JldHVybiBCYXNpY1RhYmxlUm93XzExXzBfMyh7Y291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMn0sa2V5OmZ1bmN0aW9uKGUpe3JldHVybiBlKyJfIn0sZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiAwPT1lP0Jhc2ljVGFibGVDZWxsMTAwKCk6MT09ZT9CYXNpY1RhYmxlQ2VsbDEwMigpOnZvaWQgMH19LCJhdXRvIil9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzEwNigpe3JldHVybiBUZXh0XzEwXzBfMTFfMTA2Q29uc3R9ZnVuY3Rpb24gVGV4dDEwNigpe3JldHVybiBUZXh0XzEwXzBfMTFfMTA2KCl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwxMDUoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlckJvdHRvbToiMnB4IHNvbGlkICMwMDAwMDAiLGJvcmRlckxlZnQ6IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJSaWdodDoiMnB4IHNvbGlkICMwMDAwMDAiLGJvcmRlclRvcDoiMnB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV80XzAoVGV4dDEwNiwxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzEwOCgpe3JldHVybiBUZXh0XzEwXzBfMTFfMTA4Q29uc3R9ZnVuY3Rpb24gVGV4dDEwOCgpe3JldHVybiBUZXh0XzEwXzBfMTFfMTA4KCl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwxMDcoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlckJvdHRvbToiMnB4IHNvbGlkICMwMDAwMDAiLGJvcmRlckxlZnQ6IjJweCBzb2xpZCB0cmFuc3BhcmVudCIsYm9yZGVyUmlnaHQ6IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJUb3A6IjJweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfNF8wKFRleHQxMDgsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIEJhc2ljVGFibGVSb3cxMDQoKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDJ9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4gMD09ZT9CYXNpY1RhYmxlQ2VsbDEwNSgpOjE9PWU/QmFzaWNUYWJsZUNlbGwxMDcoKTp2b2lkIDB9fSwiYXV0byIpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8xMTEoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzExMUNvbnN0fWZ1bmN0aW9uIFRleHQxMTEoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzExMSgpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMTEwKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXJCb3R0b206IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJMZWZ0OiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyUmlnaHQ6IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJUb3A6IjJweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfNF8wKFRleHQxMTEsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8xMTMoZSl7cmV0dXJuW2QoIiIse30sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiRW4gY2FzbyBkZSByb2JvIG8gZXh0cmF27W8gZGUgc3UgdGFyamV0YSwgZGViZXLhIHJlcG9ydGFybGEgaW5tZWRpYXRhbWVudGUgYWwgdGVs6WZvbm8gMjI5NS05ODk4LCB5YSBxdWUgYSBwYXJ0aXIgZGUgZXNlIG1vbWVudG8gZW4gcXVlIGxhIHJlcG9ydGUgcXVlZGFy4SBsaWJlcmFkbyBkZSBjdWFscXVpZXIgcmVzcG9uc2FiaWxpZGFkLiBFbCBjb3N0byBkZSBsYSByZXBvc2ljafNuIHBvciBw6XJkaWRhIG8gcm9ibyBlcyBkZSAkICIpLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIixmb250V2VpZ2h0OiJib2xkIix0ZXh0RGVjb3JhdGlvbjoidW5kZXJsaW5lIn0sIiIsZS5nZXRIRl9Nb250b19Sb2JvKCkrIiIpKSxkKCIiLHt9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIkxhIFJlcG9zaWNp824gcG9yIGRldGVyaW9ybyB0aWVuZSB1biBjb3N0byBkZSAzLjAwMC4wMCBjb2xvbmVzIikpXX1mdW5jdGlvbiBUZXh0MTEzKGUpe3JldHVybiBUZXh0XzEwXzBfMTFfMTEzKGUpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMTEyKGUpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyQm90dG9tOiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyTGVmdDoiMnB4IHNvbGlkIHRyYW5zcGFyZW50Iixib3JkZXJSaWdodDoiMnB4IHNvbGlkICMwMDAwMDAiLGJvcmRlclRvcDoiMnB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV80XzAod2l0aFBhcmFtKFRleHQxMTMsZSksMSwxLCJhdXRvIiwibWlkZGxlIixlKSl9ZnVuY3Rpb24gQmFzaWNUYWJsZVJvdzEwOShlKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDJ9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gMD09dD9CYXNpY1RhYmxlQ2VsbDExMChlKToxPT10P0Jhc2ljVGFibGVDZWxsMTEyKGUpOnZvaWQgMH19LCJhdXRvIixlKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMTE2KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8xMTZDb25zdH1mdW5jdGlvbiBUZXh0MTE2KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8xMTYoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDExNSgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyQm90dG9tOiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyTGVmdDoiMnB4IHNvbGlkICMwMDAwMDAiLGJvcmRlclJpZ2h0OiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyVG9wOiIycHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzRfMChUZXh0MTE2LDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMTE4KGUpe3JldHVybltkKCIiLHt9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIixmb250V2VpZ2h0OiJib2xkIn0sIiIsIkNSRURPTUFUSUMgY29icmFy4SBlbCAxJSBkZSBjb21pc2nzbiBwb3IgbGFzIGNvbXByYXMgcmVhbGl6YWRhcyBlbiBlbCBleHRlcmlvciwgcGFyYSB0YXJqZXRhcyBDbOFzaWNhcy4gIikpLGQoIiIse30sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIixlLmdldEVTX0FNRVhfUEFSUkFGT19DT01JU0lPTigpKyIiKSldfWZ1bmN0aW9uIFRleHQxMTgoZSl7cmV0dXJuIFRleHRfMTBfMF8xMV8xMTgoZSl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwxMTcoZSl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXJCb3R0b206IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJMZWZ0OiIycHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclJpZ2h0OiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyVG9wOiIycHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzRfMCh3aXRoUGFyYW0oVGV4dDExOCxlKSwxLDEsImF1dG8iLCJtaWRkbGUiLGUpKX1mdW5jdGlvbiBCYXNpY1RhYmxlUm93MTE0KGUpe3JldHVybiBCYXNpY1RhYmxlUm93XzExXzBfMyh7Y291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMn0sa2V5OmZ1bmN0aW9uKGUpe3JldHVybiBlKyJfIn0sZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiAwPT10P0Jhc2ljVGFibGVDZWxsMTE1KGUpOjE9PXQ/QmFzaWNUYWJsZUNlbGwxMTcoZSk6dm9pZCAwfX0sImF1dG8iLGUpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8xMjEoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzEyMUNvbnN0fWZ1bmN0aW9uIFRleHQxMjEoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzEyMSgpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMTIwKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXJCb3R0b206IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJMZWZ0OiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyUmlnaHQ6IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJUb3A6IjJweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfNF8wKFRleHQxMjEsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8xMjMoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzEyM0NvbnN0fWZ1bmN0aW9uIFRleHQxMjMoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzEyMygpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMTIyKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXJCb3R0b206IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJMZWZ0OiIycHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclJpZ2h0OiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyVG9wOiIycHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzRfMChUZXh0MTIzLDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBCYXNpY1RhYmxlUm93MTE5KCl7cmV0dXJuIEJhc2ljVGFibGVSb3dfMTFfMF8zKHtjb3VudDpmdW5jdGlvbigpe3JldHVybiAyfSxrZXk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrIl8ifSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PWU/QmFzaWNUYWJsZUNlbGwxMjAoKToxPT1lP0Jhc2ljVGFibGVDZWxsMTIyKCk6dm9pZCAwfX0sImF1dG8iKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMTI2KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8xMjZDb25zdH1mdW5jdGlvbiBUZXh0MTI2KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8xMjYoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDEyNSgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyQm90dG9tOiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyTGVmdDoiMnB4IHNvbGlkICMwMDAwMDAiLGJvcmRlclJpZ2h0OiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyVG9wOiIycHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzRfMChUZXh0MTI2LDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMTI4KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8xMjhDb25zdH1mdW5jdGlvbiBUZXh0MTI4KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8xMjgoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDEyNygpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyQm90dG9tOiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyTGVmdDoiMnB4IHNvbGlkIHRyYW5zcGFyZW50Iixib3JkZXJSaWdodDoiMnB4IHNvbGlkICMwMDAwMDAiLGJvcmRlclRvcDoiMnB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV80XzAoVGV4dDEyOCwxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gQmFzaWNUYWJsZVJvdzEyNChlKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7dmFyIHQ9MDtyZXR1cm4gdGhpcy5vcHRpb24wPXQsdCs9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXRlc19hbWV4KCk/MTowfSgpLHRoaXMub3B0aW9uMT10LHQrPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2V0ZXNfYW1leCgpPzE6MH0oKSx0aGlzLm9wdGlvbjI9dCx0fSxrZXk6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PXRoaXMub3B0aW9uMCYmZTx0aGlzLm9wdGlvbjE/IjBfIjplPj10aGlzLm9wdGlvbjEmJmU8dGhpcy5vcHRpb24yPyIxXyI6dm9pZCAwfSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PXRoaXMub3B0aW9uMCYmdDx0aGlzLm9wdGlvbjE/QmFzaWNUYWJsZUNlbGwxMjUoZSk6dD49dGhpcy5vcHRpb24xJiZ0PHRoaXMub3B0aW9uMj9CYXNpY1RhYmxlQ2VsbDEyNyhlKTp2b2lkIDB9fSwiYXV0byIsZSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzEzMSgpe3JldHVybiBUZXh0XzEwXzBfMTFfMTMxQ29uc3R9ZnVuY3Rpb24gVGV4dDEzMSgpe3JldHVybiBUZXh0XzEwXzBfMTFfMTMxKCkKfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMTMwKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXJCb3R0b206IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJMZWZ0OiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyUmlnaHQ6IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJUb3A6IjJweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfNF8wKFRleHQxMzEsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8xMzMoZSl7cmV0dXJuW3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIkxhIHRhcmpldGEgZGUgY3LpZGl0byB0aWVuZSBhc29jaWFkYSB1bmEgY3VlbnRhIGJhbmNhcmlhIGNvbiBlbCBCQUMgU2FuIEpvc+kgdGlwbyAiKSxzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSIsZm9udFdlaWdodDoiYm9sZCIsdGV4dERlY29yYXRpb246InVuZGVybGluZSJ9LCIiLGUuZ2V0dGlwb190cmFtaXRlX3ZhcigpKyIiKSxzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCIsIGNvbiBlbCBu+m1lcm8gZGUgY3VlbnRhICIpLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIixmb250V2VpZ2h0OiJib2xkIix0ZXh0RGVjb3JhdGlvbjoidW5kZXJsaW5lIn0sIiIsZS5nZXRhc19jdWVudGFfY3JjX3ZhcigpKyIiKSxzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSIsZm9udFdlaWdodDoiYm9sZCJ9LCIiLCIgIikscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiZW4gY29sb25lcyB5ICIpLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIixmb250V2VpZ2h0OiJib2xkIix0ZXh0RGVjb3JhdGlvbjoidW5kZXJsaW5lIn0sIiIsZS5nZXRhc19jdWVudGFfdXNkX3ZhcigpKyIiKSxzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSIsZm9udFdlaWdodDoiYm9sZCJ9LCIiLCIgIikscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiZW4gZPNsYXJlcy4gRWwgcHJvcPNzaXRvIGRlIGxhIGN1ZW50YSBlcyBmYWNpbGl0YXIgZWwgcGFnbyBkZSBsYSB0YXJqZXRhIGRlIGNy6WRpdG8uIExhcyB0cmFuc2FjY2lvbmVzIGVzcGVyYWRhcyBkZSBsYSBjdWVudGEgc2Vy4W4gJDE1MDAgZPNsYXJlcy4gRWwgc2FsZG8gbe1uaW1vIGRpYXJpbyByZXF1ZXJpZG8gcGFyYSBlc3RhIGN1ZW50YSBlcyBkZSCiICIpLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIixmb250V2VpZ2h0OiJib2xkIix0ZXh0RGVjb3JhdGlvbjoidW5kZXJsaW5lIn0sIiIsZS5nZXRzYWxnb19taW5pbW9fY29sX3ZhcigpKyIiKSxzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCIgeS9vICQiKSxzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSIsZm9udFdlaWdodDoiYm9sZCIsdGV4dERlY29yYXRpb246InVuZGVybGluZSJ9LCIiLGUuZ2V0c2FsZG9fbWluaW1vX2RvbF92YXIoKSsiIildfWZ1bmN0aW9uIFRleHQxMzMoZSl7cmV0dXJuIFRleHRfMTBfMF8xMV8xMzMoZSl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwxMzIoZSl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXJCb3R0b206IjJweCBzb2xpZCAjMDAwMDAwIixib3JkZXJMZWZ0OiIycHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclJpZ2h0OiIycHggc29saWQgIzAwMDAwMCIsYm9yZGVyVG9wOiIycHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzRfMCh3aXRoUGFyYW0oVGV4dDEzMyxlKSwxLDEsImF1dG8iLCJtaWRkbGUiLGUpKX1mdW5jdGlvbiBCYXNpY1RhYmxlUm93MTI5KGUpe3JldHVybiBCYXNpY1RhYmxlUm93XzExXzBfMyh7Y291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMn0sa2V5OmZ1bmN0aW9uKGUpe3JldHVybiBlKyJfIn0sZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiAwPT10P0Jhc2ljVGFibGVDZWxsMTMwKGUpOjE9PXQ/QmFzaWNUYWJsZUNlbGwxMzIoZSk6dm9pZCAwfX0sImF1dG8iLGUpfWZ1bmN0aW9uIEJhc2ljVGFibGU2MChlKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlXzExXzBfNCh3aXRoUGFyYW0oQmFzaWNUYWJsZVJvdzYxLGUpLHtjb3VudDpmdW5jdGlvbigpe3JldHVybiAxNH0sa2V5OmZ1bmN0aW9uKGUpe3JldHVybiBlKyJfIn0sZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiAwPT10P0Jhc2ljVGFibGVSb3c2NChlKToxPT10P0Jhc2ljVGFibGVSb3c2OShlKToyPT10P0Jhc2ljVGFibGVSb3c3NChlKTozPT10P0Jhc2ljVGFibGVSb3c3OShlKTo0PT10P0Jhc2ljVGFibGVSb3c4NChlKTo1PT10P0Jhc2ljVGFibGVSb3c4OShlKTo2PT10P0Jhc2ljVGFibGVSb3c5NChlKTo3PT10P0Jhc2ljVGFibGVSb3c5OShlKTo4PT10P0Jhc2ljVGFibGVSb3cxMDQoZSk6OT09dD9CYXNpY1RhYmxlUm93MTA5KGUpOjEwPT10P0Jhc2ljVGFibGVSb3cxMTQoZSk6MTE9PXQ/QmFzaWNUYWJsZVJvdzExOShlKToxMj09dD9CYXNpY1RhYmxlUm93MTI0KGUpOjEzPT10P0Jhc2ljVGFibGVSb3cxMjkoZSk6dm9pZCAwfX0sbm9vcCwidHJhbnNwYXJlbnQiLCJ0cmFuc3BhcmVudCIsInNlcGFyYXRlIiwhMSxlKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzEzNCgpe3JldHVybiBUZXh0XzEwXzBfMTFfMTM0Q29uc3R9ZnVuY3Rpb24gVGV4dDEzNCgpe3JldHVybiBUZXh0XzEwXzBfMTFfMTM0KCl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwxMzcoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV8wXzAobm9vcCwxLDEsIjYwJSIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMTM5KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8xMzlDb25zdH1mdW5jdGlvbiBUZXh0MTM5KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8xMzkoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDEzOCgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0MTM5LDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBCYXNpY1RhYmxlUm93MTM2KCl7cmV0dXJuIEJhc2ljVGFibGVSb3dfMTFfMF8zKHtjb3VudDpmdW5jdGlvbigpe3JldHVybiAyfSxrZXk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrIl8ifSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PWU/QmFzaWNUYWJsZUNlbGwxMzcoKToxPT1lP0Jhc2ljVGFibGVDZWxsMTM4KCk6dm9pZCAwfX0sImF1dG8iKX1mdW5jdGlvbiBCYXNpY1RhYmxlMTM1KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIscGFkZGluZ0JvdHRvbToiMjBweCJ9LDIsQmFzaWNUYWJsZV8xMV8wXzQobm9vcCx7Y291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMX0sa2V5OmZ1bmN0aW9uKGUpe3JldHVybiBlKyJfIn0sZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiAwPT1lP0Jhc2ljVGFibGVSb3cxMzYoKTp2b2lkIDB9fSxub29wLCJ0cmFuc3BhcmVudCIsInRyYW5zcGFyZW50Iiwic2VwYXJhdGUiLCExKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzE0MyhlKXtyZXR1cm5bcygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiRmVjaGEgUHJvZHVjY2nzbjogIitlLmdldEZlY2hhZGVQcm9kdWNjaW9uKCkpXX1mdW5jdGlvbiBUZXh0MTQzKGUpe3JldHVybiBUZXh0XzEwXzBfMTFfMTQzKGUpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMTQyKGUpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMCh3aXRoUGFyYW0oVGV4dDE0MyxlKSwxLDEsImF1dG8iLCJtaWRkbGUiLGUpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMTQ1KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8xNDVDb25zdH1mdW5jdGlvbiBUZXh0MTQ1KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8xNDUoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDE0NCgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgIzAwMDAwMCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKFRleHQxNDUsMSwxLCIyNCUiLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzE0Nygpe3JldHVybiBUZXh0XzEwXzBfMTFfMTQ3Q29uc3R9ZnVuY3Rpb24gVGV4dDE0Nygpe3JldHVybiBUZXh0XzEwXzBfMTFfMTQ3KCl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwxNDYoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV8wXzAoVGV4dDE0NywxLDEsIjI1JSIsIm1pZGRsZSIpKX1mdW5jdGlvbiBCYXNpY1RhYmxlUm93MTQxKGUpe3JldHVybiBCYXNpY1RhYmxlUm93XzExXzBfMyh7Y291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gM30sa2V5OmZ1bmN0aW9uKGUpe3JldHVybiBlKyJfIn0sZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiAwPT10P0Jhc2ljVGFibGVDZWxsMTQyKGUpOjE9PXQ/QmFzaWNUYWJsZUNlbGwxNDQoZSk6Mj09dD9CYXNpY1RhYmxlQ2VsbDE0NihlKTp2b2lkIDB9fSwiYXV0byIsZSl9ZnVuY3Rpb24gQmFzaWNUYWJsZTE0MChlKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50IixwYWRkaW5nQm90dG9tOiI0MHB4In0sMixCYXNpY1RhYmxlXzExXzBfNChub29wLHtjb3VudDpmdW5jdGlvbigpe3JldHVybiAxfSxrZXk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrIl8ifSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIDA9PXQ/QmFzaWNUYWJsZVJvdzE0MShlKTp2b2lkIDB9fSxub29wLCJ0cmFuc3BhcmVudCIsInRyYW5zcGFyZW50Iiwic2VwYXJhdGUiLCExLGUpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMTQ4KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8xNDhDb25zdH1mdW5jdGlvbiBUZXh0MTQ4KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8xNDgoKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMTUyKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8xNTJDb25zdH1mdW5jdGlvbiBUZXh0MTUyKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8xNTIoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDE1MSgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0MTUyLDEsMSwiMTAlIiwibWlkZGxlIikpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8xNTQoZSl7cmV0dXJuW3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIixmb250V2VpZ2h0OiJib2xkIn0sIiIsZS5nZXRIRl9OdW1fU3VjdXJzYWwoKSsiICIrZS5nZXRIRl9TdWN1cnNhbCgpKV19ZnVuY3Rpb24gVGV4dDE1NChlKXtyZXR1cm4gVGV4dF8xMF8wXzExXzE1NChlKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDE1MyhlKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV8wXzAod2l0aFBhcmFtKFRleHQxNTQsZSksMSwxLCI0MCUiLCJtaWRkbGUiLGUpKX1mdW5jdGlvbiBCYXNpY1RhYmxlUm93MTUwKGUpe3JldHVybiBCYXNpY1RhYmxlUm93XzExXzBfMyh7Y291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMn0sa2V5OmZ1bmN0aW9uKGUpe3JldHVybiBlKyJfIn0sZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiAwPT10P0Jhc2ljVGFibGVDZWxsMTUxKGUpOjE9PXQ/QmFzaWNUYWJsZUNlbGwxNTMoZSk6dm9pZCAwfX0sImF1dG8iLGUpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8xNTcoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzE1N0NvbnN0fWZ1bmN0aW9uIFRleHQxNTcoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzE1NygpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMTU2KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKFRleHQxNTcsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8xNTkoZSl7cmV0dXJuW3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIixmb250V2VpZ2h0OiJib2xkIn0sIiIsZS5nZXRBU19DdWVudGFNYXNrKCkrIiIpXX1mdW5jdGlvbiBUZXh0MTU5KGUpe3JldHVybiBUZXh0XzEwXzBfMTFfMTU5KGUpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMTU4KGUpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMCh3aXRoUGFyYW0oVGV4dDE1OSxlKSwxLDEsImF1dG8iLCJtaWRkbGUiLGUpKX1mdW5jdGlvbiBCYXNpY1RhYmxlUm93MTU1KGUpe3JldHVybiBCYXNpY1RhYmxlUm93XzExXzBfMyh7Y291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMn0sa2V5OmZ1bmN0aW9uKGUpe3JldHVybiBlKyJfIn0sZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiAwPT10P0Jhc2ljVGFibGVDZWxsMTU2KGUpOjE9PXQ/QmFzaWNUYWJsZUNlbGwxNTgoZSk6dm9pZCAwfX0sImF1dG8iLGUpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8xNjIoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzE2MkNvbnN0fWZ1bmN0aW9uIFRleHQxNjIoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzE2MigpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMTYxKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKFRleHQxNjIsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8xNjQoZSl7cmV0dXJuW3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIixmb250V2VpZ2h0OiJib2xkIn0sIiIsZS5nZXRQYXJhRGVzY1RyYW1pdGUoKSsiICIrZS5nZXRDdWVudGFUb3RhbCgpKV19ZnVuY3Rpb24gVGV4dDE2NChlKXtyZXR1cm4gVGV4dF8xMF8wXzExXzE2NChlKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDE2MyhlKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV8wXzAod2l0aFBhcmFtKFRleHQxNjQsZSksMSwxLCJhdXRvIiwibWlkZGxlIixlKSl9ZnVuY3Rpb24gQmFzaWNUYWJsZVJvdzE2MChlKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDJ9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gMD09dD9CYXNpY1RhYmxlQ2VsbDE2MShlKToxPT10P0Jhc2ljVGFibGVDZWxsMTYzKGUpOnZvaWQgMH19LCJhdXRvIixlKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMTY3KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8xNjdDb25zdH1mdW5jdGlvbiBUZXh0MTY3KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8xNjcoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDE2Nigpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0MTY3LDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMTY5KGUpe3JldHVybltzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSIsZm9udFdlaWdodDoiYm9sZCJ9LCIiLGUuZ2V0QVNfTm9tYnJlX0NsaWVudGUoKSsiIildfWZ1bmN0aW9uIFRleHQxNjkoZSl7cmV0dXJuIFRleHRfMTBfMF8xMV8xNjkoZSl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwxNjgoZSl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKHdpdGhQYXJhbShUZXh0MTY5LGUpLDEsMSwiYXV0byIsIm1pZGRsZSIsZSkpfWZ1bmN0aW9uIEJhc2ljVGFibGVSb3cxNjUoZSl7cmV0dXJuIEJhc2ljVGFibGVSb3dfMTFfMF8zKHtjb3VudDpmdW5jdGlvbigpe3JldHVybiAyfSxrZXk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrIl8ifSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIDA9PXQ/QmFzaWNUYWJsZUNlbGwxNjYoZSk6MT09dD9CYXNpY1RhYmxlQ2VsbDE2OChlKTp2b2lkIDB9fSwiYXV0byIsZSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzE3Migpe3JldHVybiBUZXh0XzEwXzBfMTFfMTcyQ29uc3R9ZnVuY3Rpb24gVGV4dDE3Migpe3JldHVybiBUZXh0XzEwXzBfMTFfMTcyKCl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwxNzEoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV8wXzAoVGV4dDE3MiwxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzE3NChlKXtyZXR1cm5bcygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUiLGZvbnRXZWlnaHQ6ImJvbGQifSwiIixlLmdldENJRl9CQ09fSEYoKSsiIildfWZ1bmN0aW9uIFRleHQxNzQoZSl7cmV0dXJuIFRleHRfMTBfMF8xMV8xNzQoZSl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwxNzMoZSl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKHdpdGhQYXJhbShUZXh0MTc0LGUpLDEsMSwiYXV0byIsIm1pZGRsZSIsZSkpfWZ1bmN0aW9uIEJhc2ljVGFibGVSb3cxNzAoZSl7cmV0dXJuIEJhc2ljVGFibGVSb3dfMTFfMF8zKHtjb3VudDpmdW5jdGlvbigpe3JldHVybiAyfSxrZXk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrIl8ifSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIDA9PXQ/QmFzaWNUYWJsZUNlbGwxNzEoZSk6MT09dD9CYXNpY1RhYmxlQ2VsbDE3MyhlKTp2b2lkIDB9fSwiYXV0byIsZSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzE3Nygpe3JldHVybiBUZXh0XzEwXzBfMTFfMTc3Q29uc3R9ZnVuY3Rpb24gVGV4dDE3Nygpe3JldHVybiBUZXh0XzEwXzBfMTFfMTc3KCl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwxNzYoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV8wXzAoVGV4dDE3NywxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzE3OShlKXtyZXR1cm5bcygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUiLGZvbnRXZWlnaHQ6ImJvbGQifSwiIixlLmdldEFTX0NJRl9UaXR1bGFyKCkrIiIpXX1mdW5jdGlvbiBUZXh0MTc5KGUpe3JldHVybiBUZXh0XzEwXzBfMTFfMTc5KGUpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMTc4KGUpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMCh3aXRoUGFyYW0oVGV4dDE3OSxlKSwxLDEsImF1dG8iLCJtaWRkbGUiLGUpKX1mdW5jdGlvbiBCYXNpY1RhYmxlUm93MTc1KGUpe3JldHVybiBCYXNpY1RhYmxlUm93XzExXzBfMyh7Y291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMn0sa2V5OmZ1bmN0aW9uKGUpe3JldHVybiBlKyJfIn0sZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiAwPT10P0Jhc2ljVGFibGVDZWxsMTc2KGUpOjE9PXQ/QmFzaWNUYWJsZUNlbGwxNzgoZSk6dm9pZCAwfX0sImF1dG8iLGUpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMTgxKCl7cmV0dXJuIEJhc2ljVGFibGVDZWxsXzExXzBfMChub29wLDEsMSwiYXV0byIsIm1pZGRsZSIpfWZ1bmN0aW9uIEJhc2ljVGFibGVSb3cxODAoKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDF9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4gMD09ZT9CYXNpY1RhYmxlQ2VsbDE4MSgpOnZvaWQgMH19LCJhdXRvIil9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzE4NCgpe3JldHVybiBUZXh0XzEwXzBfMTFfMTg0Q29uc3R9ZnVuY3Rpb24gVGV4dDE4NCgpe3JldHVybiBUZXh0XzEwXzBfMTFfMTg0KCl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwxODMoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkICMwMDAwMDAifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0MTg0LDIsMSwiMjUlIiwibWlkZGxlIikpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMTg1KCl7cmV0dXJuIEJhc2ljVGFibGVDZWxsXzExXzBfMChub29wLDEsMSwiNzUlIiwibWlkZGxlIil9ZnVuY3Rpb24gQmFzaWNUYWJsZVJvdzE4Migpe3JldHVybiBCYXNpY1RhYmxlUm93XzExXzBfMyh7Y291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMn0sa2V5OmZ1bmN0aW9uKGUpe3JldHVybiBlKyJfIn0sZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiAwPT1lP0Jhc2ljVGFibGVDZWxsMTgzKCk6MT09ZT9CYXNpY1RhYmxlQ2VsbDE4NSgpOnZvaWQgMH19LCJhdXRvIil9ZnVuY3Rpb24gQmFzaWNUYWJsZTE0OShlKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlXzExXzBfNChub29wLHtjb3VudDpmdW5jdGlvbigpe3JldHVybiA4fSxrZXk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrIl8ifSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIDA9PXQ/QmFzaWNUYWJsZVJvdzE1MChlKToxPT10P0Jhc2ljVGFibGVSb3cxNTUoZSk6Mj09dD9CYXNpY1RhYmxlUm93MTYwKGUpOjM9PXQ/QmFzaWNUYWJsZVJvdzE2NShlKTo0PT10P0Jhc2ljVGFibGVSb3cxNzAoZSk6NT09dD9CYXNpY1RhYmxlUm93MTc1KGUpOjY9PXQ/QmFzaWNUYWJsZVJvdzE4MChlKTo3PT10P0Jhc2ljVGFibGVSb3cxODIoZSk6dm9pZCAwfX0sbm9vcCwidHJhbnNwYXJlbnQiLCJ0cmFuc3BhcmVudCIsInNlcGFyYXRlIiwhMSxlKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzE4NihlKXtyZXR1cm5bZCgiIix7fSwiIixzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJGaWFkb3IgIikscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUiLGZvbnRXZWlnaHQ6ImJvbGQifSwiIixlLmdldEFTX05vbWJyZV9GaWFkb3IoKSsiIikpLGQoIiIse30sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiUmVjaWLtIGxhIEJvbHNhIGNvbiBlbCBLaXQgZGViaWRhbWVudGUgU2VsbGFkYTogU0kgoCIpLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIix0ZXh0RGVjb3JhdGlvbjoidW5kZXJsaW5lIn0sIiIsZS5nZXRTRUxMQURPKCkrIiIpLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIiCgTk8goCIpLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIix0ZXh0RGVjb3JhdGlvbjoidW5kZXJsaW5lIn0sIiIsZS5nZXROT1NFTExBRE8oKSsiIikpXX1mdW5jdGlvbiBUZXh0MTg2KGUpe3JldHVybiBUZXh0XzEwXzBfMTFfMTg2KGUpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8xODkoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzE4OUNvbnN0fWZ1bmN0aW9uIFRleHQxODkoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzE4OSgpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8xOTQoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzE5NENvbnN0fWZ1bmN0aW9uIFRleHQxOTQoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzE5NCgpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMTkzKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKFRleHQxOTQsMSwxLCI2MCUiLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzE5Nigpe3JldHVybiBUZXh0XzEwXzBfMTFfMTk2Q29uc3R9ZnVuY3Rpb24gVGV4dDE5Nigpe3JldHVybiBUZXh0XzEwXzBfMTFfMTk2KCl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwxOTUoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV8wXzAoVGV4dDE5NiwxLDEsIjclIiwibWlkZGxlIikpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8xOTgoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzE5OENvbnN0fWZ1bmN0aW9uIFRleHQxOTgoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzE5OCgpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMTk3KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKFRleHQxOTgsMSwxLCI3JSIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjAwKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yMDBDb25zdH1mdW5jdGlvbiBUZXh0MjAwKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yMDAoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDE5OSgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0MjAwLDEsMSwiNiUiLCJtaWRkbGUiKSl9ZnVuY3Rpb24gQmFzaWNUYWJsZVJvdzE5Migpe3JldHVybiBCYXNpY1RhYmxlUm93XzExXzBfMyh7Y291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gNH0sa2V5OmZ1bmN0aW9uKGUpe3JldHVybiBlKyJfIn0sZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiAwPT1lP0Jhc2ljVGFibGVDZWxsMTkzKCk6MT09ZT9CYXNpY1RhYmxlQ2VsbDE5NSgpOjI9PWU/QmFzaWNUYWJsZUNlbGwxOTcoKTozPT1lP0Jhc2ljVGFibGVDZWxsMTk5KCk6dm9pZCAwfX0sImF1dG8iKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjAzKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yMDNDb25zdH1mdW5jdGlvbiBUZXh0MjAzKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yMDMoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDIwMigpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0MjAzLDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjA1KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yMDVDb25zdH1mdW5jdGlvbiBUZXh0MjA1KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCAjMDAwMDAwIn0sMixUZXh0XzEwXzBfMTFfMjA1KCkpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMjA0KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIscGFkZGluZ0xlZnQ6IjVweCIscGFkZGluZ1JpZ2h0OiI1cHgifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0MjA1LDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjA3KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yMDdDb25zdH1mdW5jdGlvbiBUZXh0MjA3KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCAjMDAwMDAwIn0sMixUZXh0XzEwXzBfMTFfMjA3KCkpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMjA2KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIscGFkZGluZ0xlZnQ6IjVweCIscGFkZGluZ1JpZ2h0OiI1cHgifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0MjA3LDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjA5KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yMDlDb25zdH1mdW5jdGlvbiBUZXh0MjA5KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXJCb3R0b206IjFweCBzb2xpZCAjMDAwMDAwIixib3JkZXJMZWZ0OiIxcHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclJpZ2h0OiIxcHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclRvcDoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixUZXh0XzEwXzBfMTFfMjA5KCkpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMjA4KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKFRleHQyMDksMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIEJhc2ljVGFibGVSb3cyMDEoKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDR9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4gMD09ZT9CYXNpY1RhYmxlQ2VsbDIwMigpOjE9PWU/QmFzaWNUYWJsZUNlbGwyMDQoKToyPT1lP0Jhc2ljVGFibGVDZWxsMjA2KCk6Mz09ZT9CYXNpY1RhYmxlQ2VsbDIwOCgpOnZvaWQgMH19LCJhdXRvIil9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzIxMigpe3JldHVybiBUZXh0XzEwXzBfMTFfMjEyQ29uc3R9ZnVuY3Rpb24gVGV4dDIxMigpe3JldHVybiBUZXh0XzEwXzBfMTFfMjEyKCl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwyMTEoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV8wXzAoVGV4dDIxMiwxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzIxNCgpe3JldHVybiBUZXh0XzEwXzBfMTFfMjE0Q29uc3R9ZnVuY3Rpb24gVGV4dDIxNCgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgIzAwMDAwMCJ9LDIsVGV4dF8xMF8wXzExXzIxNCgpKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDIxMygpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQiLHBhZGRpbmdMZWZ0OiI1cHgiLHBhZGRpbmdSaWdodDoiNXB4In0sMixCYXNpY1RhYmxlQ2VsbF8xMV8wXzAoVGV4dDIxNCwxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzIxNigpe3JldHVybiBUZXh0XzEwXzBfMTFfMjE2Q29uc3R9ZnVuY3Rpb24gVGV4dDIxNigpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgIzAwMDAwMCJ9LDIsVGV4dF8xMF8wXzExXzIxNigpKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDIxNSgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQiLHBhZGRpbmdMZWZ0OiI1cHgiLHBhZGRpbmdSaWdodDoiNXB4In0sMixCYXNpY1RhYmxlQ2VsbF8xMV8wXzAoVGV4dDIxNiwxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzIxOCgpe3JldHVybiBUZXh0XzEwXzBfMTFfMjE4Q29uc3R9ZnVuY3Rpb24gVGV4dDIxOCgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyQm90dG9tOiIxcHggc29saWQgIzAwMDAwMCIsYm9yZGVyTGVmdDoiMXB4IHNvbGlkIHRyYW5zcGFyZW50Iixib3JkZXJSaWdodDoiMXB4IHNvbGlkIHRyYW5zcGFyZW50Iixib3JkZXJUb3A6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsVGV4dF8xMF8wXzExXzIxOCgpKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDIxNygpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0MjE4LDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBCYXNpY1RhYmxlUm93MjEwKCl7cmV0dXJuIEJhc2ljVGFibGVSb3dfMTFfMF8zKHtjb3VudDpmdW5jdGlvbigpe3JldHVybiA0fSxrZXk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrIl8ifSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PWU/QmFzaWNUYWJsZUNlbGwyMTEoKToxPT1lP0Jhc2ljVGFibGVDZWxsMjEzKCk6Mj09ZT9CYXNpY1RhYmxlQ2VsbDIxNSgpOjM9PWU/QmFzaWNUYWJsZUNlbGwyMTcoKTp2b2lkIDB9fSwiYXV0byIpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8yMjEoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzIyMUNvbnN0fWZ1bmN0aW9uIFRleHQyMjEoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzIyMSgpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMjIwKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKFRleHQyMjEsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8yMjMoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzIyM0NvbnN0fWZ1bmN0aW9uIFRleHQyMjMoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkICMwMDAwMDAifSwyLFRleHRfMTBfMF8xMV8yMjMoKSl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwyMjIoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50IixwYWRkaW5nTGVmdDoiNXB4IixwYWRkaW5nUmlnaHQ6IjVweCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKFRleHQyMjMsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8yMjUoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzIyNUNvbnN0fWZ1bmN0aW9uIFRleHQyMjUoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkICMwMDAwMDAifSwyLFRleHRfMTBfMF8xMV8yMjUoKSl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwyMjQoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50IixwYWRkaW5nTGVmdDoiNXB4IixwYWRkaW5nUmlnaHQ6IjVweCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKFRleHQyMjUsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8yMjcoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzIyN0NvbnN0fWZ1bmN0aW9uIFRleHQyMjcoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlckJvdHRvbToiMXB4IHNvbGlkICMwMDAwMDAiLGJvcmRlckxlZnQ6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIsYm9yZGVyUmlnaHQ6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIsYm9yZGVyVG9wOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLFRleHRfMTBfMF8xMV8yMjcoKSl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwyMjYoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV8wXzAoVGV4dDIyNywxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gQmFzaWNUYWJsZVJvdzIxOSgpe3JldHVybiBCYXNpY1RhYmxlUm93XzExXzBfMyh7Y291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gNH0sa2V5OmZ1bmN0aW9uKGUpe3JldHVybiBlKyJfIn0sZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiAwPT1lP0Jhc2ljVGFibGVDZWxsMjIwKCk6MT09ZT9CYXNpY1RhYmxlQ2VsbDIyMigpOjI9PWU/QmFzaWNUYWJsZUNlbGwyMjQoKTozPT1lP0Jhc2ljVGFibGVDZWxsMjI2KCk6dm9pZCAwfX0sImF1dG8iKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjMwKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yMzBDb25zdH1mdW5jdGlvbiBUZXh0MjMwKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yMzAoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDIyOSgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0MjMwLDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjMyKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yMzJDb25zdH1mdW5jdGlvbiBUZXh0MjMyKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCAjMDAwMDAwIn0sMixUZXh0XzEwXzBfMTFfMjMyKCkpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMjMxKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIscGFkZGluZ0xlZnQ6IjVweCIscGFkZGluZ1JpZ2h0OiI1cHgifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0MjMyLDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjM0KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yMzRDb25zdH1mdW5jdGlvbiBUZXh0MjM0KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCAjMDAwMDAwIn0sMixUZXh0XzEwXzBfMTFfMjM0KCkpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMjMzKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIscGFkZGluZ0xlZnQ6IjVweCIscGFkZGluZ1JpZ2h0OiI1cHgifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0MjM0LDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjM2KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yMzZDb25zdH1mdW5jdGlvbiBUZXh0MjM2KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXJCb3R0b206IjFweCBzb2xpZCAjMDAwMDAwIixib3JkZXJMZWZ0OiIxcHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclJpZ2h0OiIxcHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclRvcDoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixUZXh0XzEwXzBfMTFfMjM2KCkpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMjM1KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKFRleHQyMzYsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIEJhc2ljVGFibGVSb3cyMjgoKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDR9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4gMD09ZT9CYXNpY1RhYmxlQ2VsbDIyOSgpOjE9PWU/QmFzaWNUYWJsZUNlbGwyMzEoKToyPT1lP0Jhc2ljVGFibGVDZWxsMjMzKCk6Mz09ZT9CYXNpY1RhYmxlQ2VsbDIzNSgpOnZvaWQgMH19LCJhdXRvIil9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzIzOSgpe3JldHVybiBUZXh0XzEwXzBfMTFfMjM5Q29uc3R9ZnVuY3Rpb24gVGV4dDIzOSgpe3JldHVybiBUZXh0XzEwXzBfMTFfMjM5KCl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwyMzgoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV8wXzAoVGV4dDIzOSwxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzI0MSgpe3JldHVybiBUZXh0XzEwXzBfMTFfMjQxQ29uc3R9ZnVuY3Rpb24gVGV4dDI0MSgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgIzAwMDAwMCJ9LDIsVGV4dF8xMF8wXzExXzI0MSgpKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDI0MCgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQiLHBhZGRpbmdMZWZ0OiI1cHgiLHBhZGRpbmdSaWdodDoiNXB4In0sMixCYXNpY1RhYmxlQ2VsbF8xMV8wXzAoVGV4dDI0MSwxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzI0Mygpe3JldHVybiBUZXh0XzEwXzBfMTFfMjQzQ29uc3R9ZnVuY3Rpb24gVGV4dDI0Mygpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgIzAwMDAwMCJ9LDIsVGV4dF8xMF8wXzExXzI0MygpKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDI0Migpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQiLHBhZGRpbmdMZWZ0OiI1cHgiLHBhZGRpbmdSaWdodDoiNXB4In0sMixCYXNpY1RhYmxlQ2VsbF8xMV8wXzAoVGV4dDI0MywxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzI0NSgpe3JldHVybiBUZXh0XzEwXzBfMTFfMjQ1Q29uc3R9ZnVuY3Rpb24gVGV4dDI0NSgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyQm90dG9tOiIxcHggc29saWQgIzAwMDAwMCIsYm9yZGVyTGVmdDoiMXB4IHNvbGlkIHRyYW5zcGFyZW50Iixib3JkZXJSaWdodDoiMXB4IHNvbGlkIHRyYW5zcGFyZW50Iixib3JkZXJUb3A6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsVGV4dF8xMF8wXzExXzI0NSgpKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDI0NCgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0MjQ1LDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBCYXNpY1RhYmxlUm93MjM3KCl7cmV0dXJuIEJhc2ljVGFibGVSb3dfMTFfMF8zKHtjb3VudDpmdW5jdGlvbigpe3JldHVybiA0fSxrZXk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrIl8ifSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PWU/QmFzaWNUYWJsZUNlbGwyMzgoKToxPT1lP0Jhc2ljVGFibGVDZWxsMjQwKCk6Mj09ZT9CYXNpY1RhYmxlQ2VsbDI0MigpOjM9PWU/QmFzaWNUYWJsZUNlbGwyNDQoKTp2b2lkIDB9fSwiYXV0byIpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8yNDgoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzI0OENvbnN0fWZ1bmN0aW9uIFRleHQyNDgoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzI0OCgpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMjQ3KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKFRleHQyNDgsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8yNTAoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzI1MENvbnN0fWZ1bmN0aW9uIFRleHQyNTAoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkICMwMDAwMDAifSwyLFRleHRfMTBfMF8xMV8yNTAoKSl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwyNDkoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50IixwYWRkaW5nTGVmdDoiNXB4IixwYWRkaW5nUmlnaHQ6IjVweCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKFRleHQyNTAsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8yNTIoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzI1MkNvbnN0fWZ1bmN0aW9uIFRleHQyNTIoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkICMwMDAwMDAifSwyLFRleHRfMTBfMF8xMV8yNTIoKSl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwyNTEoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50IixwYWRkaW5nTGVmdDoiNXB4IixwYWRkaW5nUmlnaHQ6IjVweCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKFRleHQyNTIsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8yNTQoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzI1NENvbnN0fWZ1bmN0aW9uIFRleHQyNTQoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlckJvdHRvbToiMXB4IHNvbGlkICMwMDAwMDAiLGJvcmRlckxlZnQ6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIsYm9yZGVyUmlnaHQ6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIsYm9yZGVyVG9wOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLFRleHRfMTBfMF8xMV8yNTQoKSl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwyNTMoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV8wXzAoVGV4dDI1NCwxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gQmFzaWNUYWJsZVJvdzI0Nigpe3JldHVybiBCYXNpY1RhYmxlUm93XzExXzBfMyh7Y291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gNH0sa2V5OmZ1bmN0aW9uKGUpe3JldHVybiBlKyJfIn0sZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiAwPT1lP0Jhc2ljVGFibGVDZWxsMjQ3KCk6MT09ZT9CYXNpY1RhYmxlQ2VsbDI0OSgpOjI9PWU/QmFzaWNUYWJsZUNlbGwyNTEoKTozPT1lP0Jhc2ljVGFibGVDZWxsMjUzKCk6dm9pZCAwfX0sImF1dG8iKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjU3KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yNTdDb25zdH1mdW5jdGlvbiBUZXh0MjU3KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yNTcoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDI1Nigpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0MjU3LDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjU5KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yNTlDb25zdH1mdW5jdGlvbiBUZXh0MjU5KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCAjMDAwMDAwIn0sMixUZXh0XzEwXzBfMTFfMjU5KCkpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMjU4KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIscGFkZGluZ0xlZnQ6IjVweCIscGFkZGluZ1JpZ2h0OiI1cHgifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0MjU5LDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjYxKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yNjFDb25zdH1mdW5jdGlvbiBUZXh0MjYxKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCAjMDAwMDAwIn0sMixUZXh0XzEwXzBfMTFfMjYxKCkpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMjYwKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIscGFkZGluZ0xlZnQ6IjVweCIscGFkZGluZ1JpZ2h0OiI1cHgifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0MjYxLDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjYzKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yNjNDb25zdH1mdW5jdGlvbiBUZXh0MjYzKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXJCb3R0b206IjFweCBzb2xpZCAjMDAwMDAwIixib3JkZXJMZWZ0OiIxcHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclJpZ2h0OiIxcHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclRvcDoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixUZXh0XzEwXzBfMTFfMjYzKCkpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMjYyKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKFRleHQyNjMsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIEJhc2ljVGFibGVSb3cyNTUoKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDR9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4gMD09ZT9CYXNpY1RhYmxlQ2VsbDI1NigpOjE9PWU/QmFzaWNUYWJsZUNlbGwyNTgoKToyPT1lP0Jhc2ljVGFibGVDZWxsMjYwKCk6Mz09ZT9CYXNpY1RhYmxlQ2VsbDI2MigpOnZvaWQgMH19LCJhdXRvIil9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzI2Nigpe3JldHVybiBUZXh0XzEwXzBfMTFfMjY2Q29uc3R9ZnVuY3Rpb24gVGV4dDI2Nigpe3JldHVybiBUZXh0XzEwXzBfMTFfMjY2KCl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwyNjUoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV8wXzAoVGV4dDI2NiwxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzI2OCgpe3JldHVybiBUZXh0XzEwXzBfMTFfMjY4Q29uc3R9ZnVuY3Rpb24gVGV4dDI2OCgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgIzAwMDAwMCJ9LDIsVGV4dF8xMF8wXzExXzI2OCgpKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDI2Nygpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQiLHBhZGRpbmdMZWZ0OiI1cHgiLHBhZGRpbmdSaWdodDoiNXB4In0sMixCYXNpY1RhYmxlQ2VsbF8xMV8wXzAoVGV4dDI2OCwxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzI3MCgpe3JldHVybiBUZXh0XzEwXzBfMTFfMjcwQ29uc3R9ZnVuY3Rpb24gVGV4dDI3MCgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgIzAwMDAwMCJ9LDIsVGV4dF8xMF8wXzExXzI3MCgpKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDI2OSgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQiLHBhZGRpbmdMZWZ0OiI1cHgiLHBhZGRpbmdSaWdodDoiNXB4In0sMixCYXNpY1RhYmxlQ2VsbF8xMV8wXzAoVGV4dDI3MCwxLDEsImF1dG8iLCJtaWRkbGUiKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzI3Migpe3JldHVybiBUZXh0XzEwXzBfMTFfMjcyQ29uc3R9ZnVuY3Rpb24gVGV4dDI3Migpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyQm90dG9tOiIxcHggc29saWQgIzAwMDAwMCIsYm9yZGVyTGVmdDoiMXB4IHNvbGlkIHRyYW5zcGFyZW50Iixib3JkZXJSaWdodDoiMXB4IHNvbGlkIHRyYW5zcGFyZW50Iixib3JkZXJUb3A6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsVGV4dF8xMF8wXzExXzI3MigpKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDI3MSgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0MjcyLDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBCYXNpY1RhYmxlUm93MjY0KCl7cmV0dXJuIEJhc2ljVGFibGVSb3dfMTFfMF8zKHtjb3VudDpmdW5jdGlvbigpe3JldHVybiA0fSxrZXk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrIl8ifSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PWU/QmFzaWNUYWJsZUNlbGwyNjUoKToxPT1lP0Jhc2ljVGFibGVDZWxsMjY3KCk6Mj09ZT9CYXNpY1RhYmxlQ2VsbDI2OSgpOjM9PWU/QmFzaWNUYWJsZUNlbGwyNzEoKTp2b2lkIDB9fSwiYXV0byIpfWZ1bmN0aW9uIEJhc2ljVGFibGUxOTEoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkICMwMDAwMDAiLGJvcmRlckJvdHRvbUxlZnRSYWRpdXM6IjIwcHggMjBweCIsYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6IjIwcHggMjBweCIsYm9yZGVyVG9wTGVmdFJhZGl1czoiMjBweCAyMHB4Iixib3JkZXJUb3BSaWdodFJhZGl1czoiMjBweCAyMHB4In0sMixCYXNpY1RhYmxlXzExXzBfNChCYXNpY1RhYmxlUm93MTkyLHtjb3VudDpmdW5jdGlvbigpe3JldHVybiA4fSxrZXk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrIl8ifSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PWU/QmFzaWNUYWJsZVJvdzIwMSgpOjE9PWU/QmFzaWNUYWJsZVJvdzIxMCgpOjI9PWU/QmFzaWNUYWJsZVJvdzIxOSgpOjM9PWU/QmFzaWNUYWJsZVJvdzIyOCgpOjQ9PWU/QmFzaWNUYWJsZVJvdzIzNygpOjU9PWU/QmFzaWNUYWJsZVJvdzI0NigpOjY9PWU/QmFzaWNUYWJsZVJvdzI1NSgpOjc9PWU/QmFzaWNUYWJsZVJvdzI2NCgpOnZvaWQgMH19LG5vb3AsInRyYW5zcGFyZW50IiwidHJhbnNwYXJlbnQiLCJzZXBhcmF0ZSIsITEpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjc3KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yNzdDb25zdH1mdW5jdGlvbiBUZXh0Mjc3KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yNzcoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDI3Nigpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0Mjc3LDMsMSwiMjAlIiwibWlkZGxlIikpfWZ1bmN0aW9uIEJhc2ljVGFibGVSb3cyNzUoKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDF9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4gMD09ZT9CYXNpY1RhYmxlQ2VsbDI3NigpOnZvaWQgMH19LCJhdXRvIil9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzI4MCgpe3JldHVybiBUZXh0XzEwXzBfMTFfMjgwQ29uc3R9ZnVuY3Rpb24gVGV4dDI4MCgpe3JldHVybiBUZXh0XzEwXzBfMTFfMjgwKCl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwyNzkoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV8wXzAoVGV4dDI4MCwxLDEsIjIlIiwibWlkZGxlIikpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8yODIoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzI4MkNvbnN0fWZ1bmN0aW9uIFRleHQyODIoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlckJvdHRvbToiMXB4IHNvbGlkICMwMDAwMDAiLGJvcmRlckxlZnQ6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIsYm9yZGVyUmlnaHQ6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIsYm9yZGVyVG9wOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLFRleHRfMTBfMF8xMV8yODIoKSl9ZnVuY3Rpb24gQmFzaWNUYWJsZUNlbGwyODEoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixCYXNpY1RhYmxlQ2VsbF8xMV8wXzAoVGV4dDI4MiwxLDEsIjYlIiwibWlkZGxlIikpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMjgzKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKG5vb3AsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIEJhc2ljVGFibGVSb3cyNzgoKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDN9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4gMD09ZT9CYXNpY1RhYmxlQ2VsbDI3OSgpOjE9PWU/QmFzaWNUYWJsZUNlbGwyODEoKToyPT1lP0Jhc2ljVGFibGVDZWxsMjgzKCk6dm9pZCAwfX0sImF1dG8iKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjg2KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yODZDb25zdH1mdW5jdGlvbiBUZXh0Mjg2KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yODYoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDI4NSgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0Mjg2LDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjg4KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yODhDb25zdH1mdW5jdGlvbiBUZXh0Mjg4KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXJCb3R0b206IjFweCBzb2xpZCAjMDAwMDAwIixib3JkZXJMZWZ0OiIxcHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclJpZ2h0OiIxcHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclRvcDoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixUZXh0XzEwXzBfMTFfMjg4KCkpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMjg3KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKFRleHQyODgsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMjg5KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKG5vb3AsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIEJhc2ljVGFibGVSb3cyODQoKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDN9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4gMD09ZT9CYXNpY1RhYmxlQ2VsbDI4NSgpOjE9PWU/QmFzaWNUYWJsZUNlbGwyODcoKToyPT1lP0Jhc2ljVGFibGVDZWxsMjg5KCk6dm9pZCAwfX0sImF1dG8iKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjkyKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yOTJDb25zdH1mdW5jdGlvbiBUZXh0MjkyKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yOTIoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDI5MSgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0MjkyLDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjk0KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yOTRDb25zdH1mdW5jdGlvbiBUZXh0Mjk0KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXJCb3R0b206IjFweCBzb2xpZCAjMDAwMDAwIixib3JkZXJMZWZ0OiIxcHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclJpZ2h0OiIxcHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclRvcDoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixUZXh0XzEwXzBfMTFfMjk0KCkpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMjkzKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKFRleHQyOTQsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMjk1KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKG5vb3AsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIEJhc2ljVGFibGVSb3cyOTAoKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDN9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4gMD09ZT9CYXNpY1RhYmxlQ2VsbDI5MSgpOjE9PWU/QmFzaWNUYWJsZUNlbGwyOTMoKToyPT1lP0Jhc2ljVGFibGVDZWxsMjk1KCk6dm9pZCAwfX0sImF1dG8iKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMjk4KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yOThDb25zdH1mdW5jdGlvbiBUZXh0Mjk4KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8yOTgoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDI5Nygpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0Mjk4LDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMzAwKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8zMDBDb25zdH1mdW5jdGlvbiBUZXh0MzAwKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXJCb3R0b206IjFweCBzb2xpZCAjMDAwMDAwIixib3JkZXJMZWZ0OiIxcHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclJpZ2h0OiIxcHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclRvcDoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixUZXh0XzEwXzBfMTFfMzAwKCkpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMjk5KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKFRleHQzMDAsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMzAxKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKG5vb3AsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIEJhc2ljVGFibGVSb3cyOTYoKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDN9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4gMD09ZT9CYXNpY1RhYmxlQ2VsbDI5NygpOjE9PWU/QmFzaWNUYWJsZUNlbGwyOTkoKToyPT1lP0Jhc2ljVGFibGVDZWxsMzAxKCk6dm9pZCAwfX0sImF1dG8iKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMzA0KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8zMDRDb25zdH1mdW5jdGlvbiBUZXh0MzA0KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8zMDQoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDMwMygpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0MzA0LDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMzA2KCl7cmV0dXJuIFRleHRfMTBfMF8xMV8zMDZDb25zdH1mdW5jdGlvbiBUZXh0MzA2KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXJCb3R0b206IjFweCBzb2xpZCAjMDAwMDAwIixib3JkZXJMZWZ0OiIxcHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclJpZ2h0OiIxcHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclRvcDoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixUZXh0XzEwXzBfMTFfMzA2KCkpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMzA1KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKFRleHQzMDYsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMzA3KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKG5vb3AsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIEJhc2ljVGFibGVSb3czMDIoKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDN9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4gMD09ZT9CYXNpY1RhYmxlQ2VsbDMwMygpOjE9PWU/QmFzaWNUYWJsZUNlbGwzMDUoKToyPT1lP0Jhc2ljVGFibGVDZWxsMzA3KCk6dm9pZCAwfX0sImF1dG8iKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMzEwKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8zMTBDb25zdH1mdW5jdGlvbiBUZXh0MzEwKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8zMTAoKX1mdW5jdGlvbiBCYXNpY1RhYmxlQ2VsbDMwOSgpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgdHJhbnNwYXJlbnQiLHBhZGRpbmdCb3R0b206IjEwcHgifSwyLEJhc2ljVGFibGVDZWxsXzExXzBfMChUZXh0MzEwLDEsMSwiYXV0byIsIm1pZGRsZSIpKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMzEyKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8zMTJDb25zdH1mdW5jdGlvbiBUZXh0MzEyKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXJCb3R0b206IjFweCBzb2xpZCAjMDAwMDAwIixib3JkZXJMZWZ0OiIxcHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclJpZ2h0OiIxcHggc29saWQgdHJhbnNwYXJlbnQiLGJvcmRlclRvcDoiMXB4IHNvbGlkIHRyYW5zcGFyZW50In0sMixUZXh0XzEwXzBfMTFfMzEyKCkpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMzExKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIscGFkZGluZ0JvdHRvbToiMTBweCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKFRleHQzMTIsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIEJhc2ljVGFibGVDZWxsMzEzKCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIscGFkZGluZ0JvdHRvbToiMTBweCJ9LDIsQmFzaWNUYWJsZUNlbGxfMTFfMF8wKG5vb3AsMSwxLCJhdXRvIiwibWlkZGxlIikpfWZ1bmN0aW9uIEJhc2ljVGFibGVSb3czMDgoKXtyZXR1cm4gQmFzaWNUYWJsZVJvd18xMV8wXzMoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDN9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4gMD09ZT9CYXNpY1RhYmxlQ2VsbDMwOSgpOjE9PWU/QmFzaWNUYWJsZUNlbGwzMTEoKToyPT1lP0Jhc2ljVGFibGVDZWxsMzEzKCk6dm9pZCAwfX0sImF1dG8iKX1mdW5jdGlvbiBCYXNpY1RhYmxlMjc0KCl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCAjMDAwMDAwIixib3JkZXJCb3R0b21MZWZ0UmFkaXVzOiIyMHB4IDIwcHgiLGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOiIyMHB4IDIwcHgiLGJvcmRlclRvcExlZnRSYWRpdXM6IjIwcHggMjBweCIsYm9yZGVyVG9wUmlnaHRSYWRpdXM6IjIwcHggMjBweCJ9LDIsQmFzaWNUYWJsZV8xMV8wXzQobm9vcCx7Y291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gN30sa2V5OmZ1bmN0aW9uKGUpe3JldHVybiBlKyJfIn0sZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiAwPT1lP0Jhc2ljVGFibGVSb3cyNzUoKToxPT1lP0Jhc2ljVGFibGVSb3cyNzgoKToyPT1lP0Jhc2ljVGFibGVSb3cyODQoKTozPT1lP0Jhc2ljVGFibGVSb3cyOTAoKTo0PT1lP0Jhc2ljVGFibGVSb3cyOTYoKTo1PT1lP0Jhc2ljVGFibGVSb3czMDIoKTo2PT1lP0Jhc2ljVGFibGVSb3czMDgoKTp2b2lkIDAKfX0sbm9vcCwidHJhbnNwYXJlbnQiLCJ0cmFuc3BhcmVudCIsInNlcGFyYXRlIiwhMSkpfWZ1bmN0aW9uIExfVmVydGljYWxTdGFjazI3Mygpe3JldHVybiBhZGRGcmFtZSh7cGFkZGluZ0xlZnQ6IjVweCJ9LDIsTF9WZXJ0aWNhbFN0YWNrXzExXzBfMSh7Y291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMX0sa2V5OmZ1bmN0aW9uKGUpe3JldHVybiBlKyJfIn0sZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiAwPT1lP0Jhc2ljVGFibGUyNzQoKTp2b2lkIDB9fSwidHJhbnNwYXJlbnQiLCIwZW0iKSl9ZnVuY3Rpb24gTF9QYWlyMTkwKCl7cmV0dXJuIGFkZEZyYW1lKHtwYWRkaW5nTGVmdDoiNXB4IixwYWRkaW5nUmlnaHQ6IjVweCJ9LDIsTF9QYWlyXzEwXzRfNyhCYXNpY1RhYmxlMTkxLExfVmVydGljYWxTdGFjazI3MywiNjAlIiwhMSwhMSwhMSwhMSwhMSwhMSwhMSkpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8zMTQoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzMxNENvbnN0fWZ1bmN0aW9uIFRleHQzMTQoKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlckJvdHRvbToiMXB4IHNvbGlkICMwMDAwMDAiLGJvcmRlckxlZnQ6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIsYm9yZGVyUmlnaHQ6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIsYm9yZGVyVG9wOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLFRleHRfMTBfMF8xMV8zMTQoKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzMxNShlKXtyZXR1cm5bZCgiIix7fSwiIixzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCIgoKCgUFJPRFVDVE9TIDAgU0VSVklDSU9TIEFVVE9SSVpBRE9TLiAiKSksZCgiIix7fSwiIixzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJBY2VwdG8gQWRoZXJpcm1lIHkgQXV0b3Jpem8gY2FyZ2FyIGEgbWkgdGFyamV0YSBkZSBjculkaXRvIGVsIG1vbnRvIGNvcnJlc3BvbmRpZW50ZSBhOiAiKSksZCgiIix7fSwiIixzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJTZWd1cm8gZGUgVGFyamV0YSBkZSBDculkaXRvIChQUkY9UOlyZGlkYSwgUm9ibyB5IEZyYXVkZSk6IFNJX18gTk9fXyBDb3N0bzogQyQgIitlLmdldFRJUE9fQ0xBU0lDQSgpKyIgTyQgIitlLmdldFRJUE9fRE9SQURBKCkrIiBQJCAiK2UuZ2V0VElQT19QTEFUSU5PKCkrIiBDVCQgX18gU2VndXJvIGRlIFNhbGRvIGEgRGV1ZG8gVEMgUGx1cyAoUFBJID0gUGxhbiBQcm90ZWNjafNuIGRlIEluZ3Jlc29zKTogU0kgX18gTk9fXyBDb3N0bzogQyQgMi41MCAiK2UuZ2V0VElQT19DTEFTSUNBXzIoKSsiIKCgTyQgNC4yMCCgIitlLmdldFRJUE9fRE9SQURBXzIoKSsiIKCgUCQgNi42MCAiK2UuZ2V0VElQT19QTEFUSU5PXzIoKSsiIEVxdWl2YWxlbnRlIGVuIG1vbmVkYSBuYWNpb25hbCBhbCBUaXBvIGRlIGNhbWJpbyB2aWdlbnRlIGFsIEJhbmNvIEJBQyBTYW4gSm9z6SAiKSksZCgiIix7fSwiIixzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJTcGVlZCBib3g6IChjb3N0byBtZW5zdWFsIFVTJCApIFNJX19fIE5PX19fIFNlcnZpY2lvIFNPUyAoY29zdG8gbWVuc3VhbCBVUyQgKSBTSV9fXyBOT19fXyBBaG9ycm9tYXRpYyBCQUM6IFNJX19fIE5PX19fIChtb250byBtZW5zdWFsKSBUaXBvIGRlIE1vbmVkYSBkZWwgQWhvcnJvOiAkX19fIFx1MjBhMV9fXyAiKSksZCgiIix7fSwiIixzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJDb3JyZW8gRWxlY3Ry825pY28gbyBFLW1haWwgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyIpKSxkKCIiLHt9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIkNvbXByZW5kbyBxdWUgbGEgbW9kYWxpZGFkIGVzIGNvbnRyaWJ1dGl2YSBlbiB1biAxMDAlOyBlcyBkZWNpciwgZWwgdGFyamV0YWhhYmllbnRlIGN1YnJlIGxhIHRvdGFsaWRhZCBkZWwgY29zdG8gZGVsIHNlZ3Vyby4gQWRlbeFzIGxhIGVudGlkYWQgZmluYW5jaWVyYSBtZSBoYSBleHByZXNhZG8gcXVlIHRlbmdvIGVsIGRlcmVjaG8gZGUgYWRxdWlyaXIgZXN0ZSBzZWd1cm8gY29uIGVsIGludGVybWVkaWFyaW8geS9vIGVudGlkYWQgYXNlZ3VyYWRvcmEgZGUgbWkgZWxlY2Np824uIEF1dG9yaXpvIGEgQ1JFRE9NQVRJQyBhIGRvbWljaWxpYXIgbWkgY3VlbnRhIGNsaWVudGUgbW9uZWRhIF9fX19fX19fX19fX19fX19fICMgY3VlbnRhIGNsaWVudGUgZGVsIEJhbmNvIFBhcmEgZWwgcGFnbyBkZSBlc3RhIHRhcmpldGEgZGUgY3LpZGl0by4gKlBhcmEgZWZlY3RvcyBkZSBlc3RhIGF1dG9yaXphY2nzbiBlbCBj82RpZ28gZGUgc2VydmljaW8gc2Vy4SBlbCBu+m1lcm8gZGUgY3VlbnRhIGFxde0gaW5kaWNhZGEuICIpKSxkKCIiLHt9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIkFjZXB0byBxdWUgbWkgdGFyamV0YSB0aWVuZSByZXRvIGRlIGZhY3R1cmFjafNuLCBkZSBubyBjb25zdW1pciAkIF9fX19fXyBtZW5zdWFsIHNlIG1lIGNhcmdhcuEgdW4gY29zdG8gZGUgYWRtaW5pc3RyYWNp824gZGUgY3VlbnRhIGRlICQgMTcgbWVuc3VhbGVzLiIpKV19ZnVuY3Rpb24gVGV4dDMxNShlKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlckJvdHRvbToiMXB4IHNvbGlkICMwMDAwMDAiLGJvcmRlckxlZnQ6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIsYm9yZGVyUmlnaHQ6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIsYm9yZGVyVG9wOiIxcHggc29saWQgdHJhbnNwYXJlbnQifSwyLFRleHRfMTBfMF8xMV8zMTUoZSkpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8zMTgoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzMxOENvbnN0fWZ1bmN0aW9uIFRleHQzMTgoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzMxOCgpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8zMjAoZSl7cmV0dXJuW2QoIiIse3RleHRBbGlnbjoiY2VudGVyIn0sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUiLGZvbnRXZWlnaHQ6ImJvbGQifSwiIiwnUXVpZW4gc3VzY3JpYmUgYWNlcHRhIGV4cHJlc2FtZW50ZSBoYWJlciByZWNpYmlkbyBsb3Mgc2VydmljaW9zIGFkaWNpb25hbGVzIHkgZG9jdW1lbnRvcyBxdWUgZW4gZXN0ZWZvcm11bGFyaW9lc3ThbmlkZW50aWZpY2Fkb3NlbmxhY2FzaWxsYSJT7SIuJykpLGQoIiIse3RleHRBbGlnbjoiY2VudGVyIn0sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUiLGZvbnRXZWlnaHQ6ImJvbGQifSwiIiwiRW5zZfFhbGRlY29uZm9ybWlkYWRjb25sb3NtaXNtb3NmaXJtbzogIikpLGQoIiIse3RleHRBbGlnbjoiY2VudGVyIn0sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUiLGZvbnRXZWlnaHQ6ImJvbGQifSwiIiwiRW4gbGEgY2l1ZGFkIGRlIF9fX19fX19fX19fX19fX18gZWwgX19fX19fIGRlIF9fX19fX19fIGRlbCBfX19fX18uIikpLGQoIiIse3RleHRBbGlnbjoiY2VudGVyIn0sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUiLGZvbnRXZWlnaHQ6ImJvbGQiLHRleHREZWNvcmF0aW9uOiJ1bmRlcmxpbmUifSwiIixlLmdldEFTX05vbWJyZV9DbGllbnRlKCkrIiIpLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIixmb250V2VpZ2h0OiJib2xkIn0sIiIsIiCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgIikscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUiLGZvbnRXZWlnaHQ6ImJvbGQiLHRleHREZWNvcmF0aW9uOiJ1bmRlcmxpbmUifSwiIixlLmdldEFTX0NlZHVsYSgpKyIiKSksZCgiIix7dGV4dEFsaWduOiJjZW50ZXIifSwiIixzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSIsZm9udFdlaWdodDoiYm9sZCJ9LCIiLCIgoKCgoKCgoKAoTm9tYnJlIGRlbCBDbGllbnRlKSCgoKCgoKCgoKCgoKCgoKCgoKCgoKAoTvptZXJvIGRlIEPpZHVsYSkgoKCgoKCgoKCgoKCgoCIpKV19ZnVuY3Rpb24gVGV4dDMyMChlKXtyZXR1cm4gYWRkRnJhbWUoe3BhZGRpbmdCb3R0b206IjEwcHgifSwwLGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCAjMDAwMDAwIixib3JkZXJCb3R0b21MZWZ0UmFkaXVzOiIyMHB4IDIwcHgiLGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOiIyMHB4IDIwcHgiLGJvcmRlclRvcExlZnRSYWRpdXM6IjIwcHggMjBweCIsYm9yZGVyVG9wUmlnaHRSYWRpdXM6IjIwcHggMjBweCJ9LDIsVGV4dF8xMF8wXzExXzMyMChlKSkpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8zMjEoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzMyMUNvbnN0fWZ1bmN0aW9uIFRleHQzMjEoKXtyZXR1cm4gYWRkRnJhbWUoe3BhZGRpbmdCb3R0b206IjNweCJ9LDAsYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkICMwMDAwMDAiLGJvcmRlckJvdHRvbUxlZnRSYWRpdXM6IjIwcHggMjBweCIsYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6IjIwcHggMjBweCIsYm9yZGVyVG9wTGVmdFJhZGl1czoiMjBweCAyMHB4Iixib3JkZXJUb3BSaWdodFJhZGl1czoiMjBweCAyMHB4In0sMixUZXh0XzEwXzBfMTFfMzIxKCkpKX1mdW5jdGlvbiBMX1ZlcnRpY2FsU3RhY2szMTkoZSl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCB0cmFuc3BhcmVudCIsYm9yZGVyQm90dG9tTGVmdFJhZGl1czoiMjBweCAyMHB4Iixib3JkZXJCb3R0b21SaWdodFJhZGl1czoiMjBweCAyMHB4Iixib3JkZXJUb3BMZWZ0UmFkaXVzOiIyMHB4IDIwcHgiLGJvcmRlclRvcFJpZ2h0UmFkaXVzOiIyMHB4IDIwcHgiLHBhZGRpbmdMZWZ0OiIxMHB4IixwYWRkaW5nUmlnaHQ6IjEwcHgifSwyLExfVmVydGljYWxTdGFja18xMV8wXzEoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDJ9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gMD09dD9UZXh0MzIwKGUpOjE9PXQ/VGV4dDMyMShlKTp2b2lkIDB9fSwidHJhbnNwYXJlbnQiLCIwZW0iLGUpKX1mdW5jdGlvbiBMX1ZlcnRpY2FsU3RhY2szMTcoZSl7cmV0dXJuIGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCAjMDAwMDAwIixib3JkZXJCb3R0b21MZWZ0UmFkaXVzOiIyMHB4IDIwcHgiLGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOiIyMHB4IDIwcHgiLGJvcmRlclRvcExlZnRSYWRpdXM6IjIwcHggMjBweCIsYm9yZGVyVG9wUmlnaHRSYWRpdXM6IjIwcHggMjBweCJ9LDIsTF9WZXJ0aWNhbFN0YWNrXzExXzBfMSh7Y291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMn0sa2V5OmZ1bmN0aW9uKGUpe3JldHVybiBlKyJfIn0sZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiAwPT10P1RleHQzMTgoZSk6MT09dD9MX1ZlcnRpY2FsU3RhY2szMTkoZSk6dm9pZCAwfX0sInRyYW5zcGFyZW50IiwiMGVtIixlKSl9ZnVuY3Rpb24gTF9QYWlyMzE2KGUpe3JldHVybiBMX1BhaXJfMTBfNF83KHdpdGhQYXJhbShMX1ZlcnRpY2FsU3RhY2szMTcsZSksbm9vcCwiODAlIiwhMSwhMSwhMSwhMSwhMSwhMSwhMSxlKX1mdW5jdGlvbiBUZXh0XzEwXzBfMTFfMzIyKCl7cmV0dXJuIFRleHRfMTBfMF8xMV8zMjJDb25zdH1mdW5jdGlvbiBUZXh0MzIyKCl7cmV0dXJuIGFkZEZyYW1lKHtwYWRkaW5nQm90dG9tOiI1cHgiLHBhZGRpbmdMZWZ0OiIyMHB4IixwYWRkaW5nUmlnaHQ6IjEyMHB4IixwYWRkaW5nVG9wOiI1cHgifSwwLGFkZEZyYW1lKHtib3JkZXI6IjFweCBzb2xpZCAjMDAwMDAwIixib3JkZXJCb3R0b21MZWZ0UmFkaXVzOiIyMHB4IDIwcHgiLGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOiIyMHB4IDIwcHgiLGJvcmRlclRvcExlZnRSYWRpdXM6IjIwcHggMjBweCIsYm9yZGVyVG9wUmlnaHRSYWRpdXM6IjIwcHggMjBweCJ9LDIsVGV4dF8xMF8wXzExXzMyMigpKSl9ZnVuY3Rpb24gTF9WZXJ0aWNhbFN0YWNrMTg4KGUpe3JldHVybiBhZGRGcmFtZSh7Ym9yZGVyOiIxcHggc29saWQgIzAwMDAwMCIsYm9yZGVyQm90dG9tTGVmdFJhZGl1czoiMjBweCAyMHB4Iixib3JkZXJCb3R0b21SaWdodFJhZGl1czoiMjBweCAyMHB4Iixib3JkZXJUb3BMZWZ0UmFkaXVzOiIyMHB4IDIwcHgiLGJvcmRlclRvcFJpZ2h0UmFkaXVzOiIyMHB4IDIwcHgifSwyLExfVmVydGljYWxTdGFja18xMV8wXzEoe2NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIDZ9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gMD09dD9UZXh0MTg5KGUpOjE9PXQ/TF9QYWlyMTkwKGUpOjI9PXQ/VGV4dDMxNChlKTozPT10P1RleHQzMTUoZSk6ND09dD9MX1BhaXIzMTYoZSk6NT09dD9UZXh0MzIyKGUpOnZvaWQgMH19LCJ0cmFuc3BhcmVudCIsIjBlbSIsZSkpfWZ1bmN0aW9uIExfUGFpcjE4NyhlKXtyZXR1cm4gYWRkRnJhbWUoe2JvcmRlcjoiMXB4IHNvbGlkIHRyYW5zcGFyZW50Iixib3JkZXJCb3R0b21MZWZ0UmFkaXVzOiIxMHB4IDEwcHgiLGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOiIxMHB4IDEwcHgiLGJvcmRlclRvcExlZnRSYWRpdXM6IjEwcHggMTBweCIsYm9yZGVyVG9wUmlnaHRSYWRpdXM6IjEwcHggMTBweCJ9LDIsTF9QYWlyXzEwXzRfNyh3aXRoUGFyYW0oTF9WZXJ0aWNhbFN0YWNrMTg4LGUpLG5vb3AsIjcwJSIsITEsITEsITEsITEsITEsITEsITEsZSkpfWZ1bmN0aW9uIFRleHRfMTBfMF8xMV8zMjMoKXtyZXR1cm4gVGV4dF8xMF8wXzExXzMyM0NvbnN0fWZ1bmN0aW9uIFRleHQzMjMoKXtyZXR1cm4gYWRkRnJhbWUoe3BhZGRpbmdSaWdodDoiMjAwcHgifSwwLFRleHRfMTBfMF8xMV8zMjMoKSl9ZnVuY3Rpb24gVGV4dF8xMF8wXzExXzMyNChlKXtyZXR1cm5bZCgiIix7dGV4dEFsaWduOiJyaWdodCJ9LCIiLHMoIiIse2ZvbnRXZWlnaHQ6ImJvbGQifSwiIixlLmdldEFTX1BsYW5MZWFsdGFkKCkrIiIpKV19ZnVuY3Rpb24gVGV4dDMyNChlKXtyZXR1cm4gYWRkRnJhbWUoe3BhZGRpbmdSaWdodDoiNTBweCJ9LDAsVGV4dF8xMF8wXzExXzMyNChlKSl9ZnVuY3Rpb24gTF9WZXJ0aWNhbFN0YWNrMyhlKXtyZXR1cm4gYWRkRnJhbWUoe3BhZGRpbmc6IjFlbSJ9LDIsTF9WZXJ0aWNhbFN0YWNrXzExXzBfMSh7Y291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMTR9LGtleTpmdW5jdGlvbihlKXtyZXR1cm4gZSsiXyJ9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gMD09dD9UZXh0NChlKToxPT10P0Jhc2ljVGFibGU1KGUpOjI9PXQ/QmFzaWNUYWJsZTE0KGUpOjM9PXQ/VGV4dDU5KGUpOjQ9PXQ/QmFzaWNUYWJsZTYwKGUpOjU9PXQ/VGV4dDEzNChlKTo2PT10P0Jhc2ljVGFibGUxMzUoZSk6Nz09dD9CYXNpY1RhYmxlMTQwKGUpOjg9PXQ/VGV4dDE0OChlKTo5PT10P0Jhc2ljVGFibGUxNDkoZSk6MTA9PXQ/VGV4dDE4NihlKToxMT09dD9MX1BhaXIxODcoZSk6MTI9PXQ/VGV4dDMyMyhlKToxMz09dD9UZXh0MzI0KGUpOnZvaWQgMH19LCJ0cmFuc3BhcmVudCIsIjBlbSIsZSkpfWZ1bmN0aW9uIEJhc2UwKGUpe3JldHVybiBCYXNlXzExXzBfMyh3aXRoUGFyYW0oTF9WZXJ0aWNhbFN0YWNrMyxlKSwiIzAwMDAwMCIsJyJUcmVidWNoZXQgTVMiLCBIZWx2ZXRpY2EsIFRyZWJ1Y2hldCwgc2Fucy1zZXJpZicsIjEwMCUiLCJ0cmFuc3BhcmVudCIsInRyYW5zcGFyZW50IiwidHJhbnNwYXJlbnQiLCI3NWVtIiwhMSxlKX12YXIgYj1mdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oZSx0KXt9ZnVuY3Rpb24gcihlKXtyZXR1cm4gdC5jcmVhdGVUZXh0Tm9kZShlKX1mdW5jdGlvbiBvKGUpe3JldHVybiB0LmNyZWF0ZUVsZW1lbnQoZSl9ZnVuY3Rpb24gYShlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGV9ZnVuY3Rpb24gaShlKXtpZighbXQoZSkpcmV0dXJuIG51bGw9PWV8fGU9PT0hMXx8ZT09PSEwP1tdOltlXTtlPWUuc2xpY2UoMCk7Zm9yKHZhciB0PWUubGVuZ3RoLG49MDt0Pm47KXt2YXIgcj1lW25dO210KHIpPyhlLnNwbGljZS5hcHBseShlLFtuLDFdLmNvbmNhdChyKSksdD1lLmxlbmd0aCk6bnVsbCE9ciYmciE9PSExJiZyIT09ITA/bisrOihlLnNwbGljZShuLDEpLHQtLSl9cmV0dXJuIGV9ZnVuY3Rpb24gbChlKXt2YXIgdD12dDtyZXR1cm4gdnQ9ZSx0fWZ1bmN0aW9uIF8oKXtyZXR1cm4gT2JqZWN0LmNyZWF0ZShudWxsKX1mdW5jdGlvbiBkKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgRnRbZV19ZnVuY3Rpb24gdShlKXtyZXR1cm4gZnVuY3Rpb24odCxuLHIpe3RbZV09bix0W3JdPXZvaWQgMH19ZnVuY3Rpb24gYyhlKXtyZXR1cm4gZnVuY3Rpb24odCxuLHIpe3RbZV09Im51bWJlciI9PXR5cGVvZiBuP24rInB4IjpuLHRbcl09dm9pZCAwfX1mdW5jdGlvbiBzKGUsdCxuKXsibnVtYmVyIj09dHlwZW9mIHQmJihlW25dPXQrInB4Iil9ZnVuY3Rpb24gZigpe3JldHVybiB0LmRvY3VtZW50TW9kZX1mdW5jdGlvbiBwKGUpe2Zvcih2YXIgdD1PYmplY3Qua2V5cyhlKSxuPTAscj10Lmxlbmd0aDtyPm47bisrKXt2YXIgbz10W25dLGE9QXRbb10saT1lW29dO2lmKHZvaWQgMCE9PWkpe2lmKHZvaWQgMD09PWEpe2lmKGQobykpYT13dFtvXT09PSEwP251bGw6cztlbHNle2Zvcih2YXIgbD1vLnJlcGxhY2UoL15cdy8sZnVuY3Rpb24oZSl7cmV0dXJuIGUudG9VcHBlckNhc2UoKX0pLF89MDtfPHl0Lmxlbmd0aDtfKyspaWYoZCh5dFtfXStsKSl7YT0od3Rbb109PT0hMD91OmMpKHl0W19dK2wpO2JyZWFrfXZvaWQgMD09PWEmJihhPXd0W29dPT09ITA/bnVsbDpzKX1BdFtvXT1hfW51bGwhPT1hJiZhKGUsaSxvKX19fWZ1bmN0aW9uIFQoZSx0KXtlW3RdPSIifWZ1bmN0aW9uIHgoZSx0LG4scil7dmFyIG89dC5zdHlsZTtpZihhKG4pKXtwKG4pO3ZhciBpO2lmKGEocikpe2ZvcihpIGluIHIpaSBpbiBufHxUKG8saSk7Zm9yKGkgaW4gbil7dmFyIGw9bltpXTt2b2lkIDAhPT1sP3JbaV0hPT1sJiYob1tpXT1sKTpUKG8saSl9fWVsc2V7ciYmKG8uY3NzVGV4dD0iIik7Zm9yKGkgaW4gbil7dmFyIGw9bltpXTt2b2lkIDAhPT1sJiYob1tpXT1sKX19fWVsc2UgaWYobilvLmNzc1RleHQ9bjtlbHNlIGlmKGEocikpZm9yKGkgaW4gcilUKG8saSk7ZWxzZSByJiYoby5jc3NUZXh0PSIiKX1mdW5jdGlvbiBiKGUsdCl7Z3Q/ZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0KTplLmNsYXNzTmFtZT10fWZ1bmN0aW9uIG0oZSx0LG4scil7dmFyIG8sYSxpLGwsXztmb3IobyBpbiBuKWE9bltvXSxpPXJbb10sInZhbHVlIiE9PW98fGd0P2khPT1hJiYocltvXT1hLGd0PyJocmVmIj09PW8/dC5zZXRBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsImhyZWYiLGEpOnQuc2V0QXR0cmlidXRlKG8sYSk6byBpbiB0JiYibGlzdCIhPT1vJiYiZm9ybSIhPT1vP3Rbb109YTp0LnNldEF0dHJpYnV0ZShvLGEpKToobD1pLF89YSxyW29dPWEpO2ZvcihvIGluIHIpdm9pZCAwPT09cltvXXx8byBpbiBufHwocltvXT12b2lkIDAsdC5yZW1vdmVBdHRyaWJ1dGUobykpO3JldHVybiB2b2lkIDAhPT1fJiZ2dCh0LGUsXyxsKSxyfWZ1bmN0aW9uIGgoZSx0KXt2YXIgbj1lLmNvbXBvbmVudDtuJiZuW3Q/InBvc3RVcGRhdGVEb20iOiJwb3N0SW5pdERvbSJdJiYoQ3QucHVzaCh0KSxCdC5wdXNoKGUpKX1mdW5jdGlvbiBnKGUpe2Zvcih2YXIgdDtlJiYodD1lLmNmZyx2b2lkIDA9PT10KTspe2lmKGUuY3R4KXt0PWUuY3R4LmNmZzticmVha31lPWUucGFyZW50fXJldHVybiB0fWZ1bmN0aW9uIEMoZSx0KXtpZihudWxsIT1lKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgZSlyZXR1cm4gdm9pZCBlKHQpO3ZhciBuPWVbMF0scj1uLnJlZnM7cnx8KHI9XygpLG4ucmVmcz1yKSxyW2VbMV1dPXR9fWZ1bmN0aW9uIEIoZSxuLGEsaSl7dmFyIGwsXz17dGFnOmUudGFnLGtleTplLmtleSxyZWY6ZS5yZWYsY2xhc3NOYW1lOmUuY2xhc3NOYW1lLHN0eWxlOmUuc3R5bGUsYXR0cnM6ZS5hdHRycyxjaGlsZHJlbjplLmNoaWxkcmVuLGNvbXBvbmVudDplLmNvbXBvbmVudCxkYXRhOmUuZGF0YSxjZmc6ZS5jZmcscGFyZW50Om4sZWxlbWVudDp2b2lkIDAsY3R4OnZvaWQgMH0sZD1ndCx1PV8uY29tcG9uZW50O2lmKEMoXy5yZWYsXyksdSl7dmFyIGM9e2RhdGE6Xy5kYXRhfHx7fSxtZTpfLGNmZzpnKG4pfTtfLmN0eD1jLHUuaW5pdCYmdS5pbml0KGMsXyksdS5yZW5kZXImJnUucmVuZGVyKGMsXyl9dmFyIHM9Xy50YWcsZj1fLmNoaWxkcmVuO2lmKHZvaWQgMD09PXMpcmV0dXJuInN0cmluZyI9PXR5cGVvZiBmPyhsPXIoZiksXy5lbGVtZW50PWwsYS5pbnNlcnRCZWZvcmUobCxpKSk6eShfLGEsaSksdSYmKHUucG9zdFJlbmRlciYmdS5wb3N0UmVuZGVyKF8uY3R4LF8pLGgoXywhMSkpLF87aWYoIi8iPT09cyl7dmFyIHA9ZjtpZigiIj09PXApO2Vsc2UgaWYobnVsbD09aSl7dmFyIFQ9YS5sYXN0Q2hpbGQ7Zm9yKGEuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLHApLF8uZWxlbWVudD1bXSxUPVQ/VC5uZXh0U2libGluZzphLmZpcnN0Q2hpbGQ7VDspXy5lbGVtZW50LnB1c2goVCksVD1ULm5leHRTaWJsaW5nfWVsc2V7bD1pO3ZhciBCPWkucHJldmlvdXNTaWJsaW5nLHY9ITEsRj1hO2wuaW5zZXJ0QWRqYWNlbnRIVE1MfHwobD1GLmluc2VydEJlZm9yZShvKCJpIiksbCksdj0hMCksbC5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWJlZ2luIixwKSxCPUI/Qi5uZXh0U2libGluZzpGLmZpcnN0Q2hpbGQ7Zm9yKHZhciBBPVtdO0IhPT1sOylBLnB1c2goQiksQj1CLm5leHRTaWJsaW5nO18uZWxlbWVudD1BLHYmJkYucmVtb3ZlQ2hpbGQobCl9cmV0dXJuIHUmJih1LnBvc3RSZW5kZXImJnUucG9zdFJlbmRlcihfLmN0eCxfKSxoKF8sITEpKSxffWd0fHwic3ZnIj09PXM/KGw9dC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixzKSxndD0hMCk6bHx8KGw9byhzKSksYS5pbnNlcnRCZWZvcmUobCxpKSxfLmVsZW1lbnQ9bCx5KF8sbCxudWxsKSx1JiZ1LnBvc3RSZW5kZXImJnUucG9zdFJlbmRlcihfLmN0eCxfKSxfLmF0dHJzJiYoXy5hdHRycz1tKF8sbCxfLmF0dHJzLHt9KSksXy5zdHlsZSYmeChfLGwsXy5zdHlsZSx2b2lkIDApO3ZhciB3PV8uY2xhc3NOYW1lO3JldHVybiB3JiZiKGwsdyksZ3Q9ZCxoKF8sITEpLF99ZnVuY3Rpb24gdihlKXt2YXIgdD10eXBlb2YgZTtyZXR1cm4ic3RyaW5nIj09PXQ/e2NoaWxkcmVuOmV9OiJib29sZWFuIj09PXQ/bnVsbDplfWZ1bmN0aW9uIHkoZSx0LG4pe3ZhciByPWUuY2hpbGRyZW47aWYocil7aWYoIW10KHIpKXtpZigic3RyaW5nIj09dHlwZW9mIHIpcmV0dXJuIHZvaWQoaHQ/dC50ZXh0Q29udGVudD1yOnQuaW5uZXJUZXh0PXIpO3I9W3JdfXI9ci5zbGljZSgwKTtmb3IodmFyIG89MCxhPXIubGVuZ3RoO2E+bzspe3ZhciBpPXJbb107bXQoaSk/KHIuc3BsaWNlLmFwcGx5KHIsW28sMV0uY29uY2F0KGkpKSxhPXIubGVuZ3RoKTooaT12KGkpLG51bGwhPWk/KHJbb109QihpLGUsdCxuKSxvKyspOihyLnNwbGljZShvLDEpLGEtLSkpfWUuY2hpbGRyZW49cn19ZnVuY3Rpb24gRihlKXtDKGUucmVmLG51bGwpO3ZhciB0PWUuY2hpbGRyZW47aWYobXQodCkpZm9yKHZhciBuPTAscj10Lmxlbmd0aDtyPm47bisrKUYodFtuXSk7dmFyIG89ZS5jb21wb25lbnQ7byYmby5kZXN0cm95JiZvLmRlc3Ryb3koZS5jdHgsZSxlLmVsZW1lbnQpfWZ1bmN0aW9uIEEoZSl7dmFyIHQ9ZS5lbGVtZW50O2lmKG10KHQpKXt2YXIgbj10WzBdLnBhcmVudE5vZGU7aWYobilmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyluLnJlbW92ZUNoaWxkKHRbcl0pfWVsc2UgaWYobnVsbCE9dCl7dmFyIG89dC5wYXJlbnROb2RlO28mJm8ucmVtb3ZlQ2hpbGQodCl9ZWxzZXt2YXIgYT1lLmNoaWxkcmVuO2lmKG10KGEpKWZvcih2YXIgcj0wLGk9YS5sZW5ndGg7aT5yO3IrKylBKGFbcl0pfX1mdW5jdGlvbiB3KGUpe0YoZSksQShlKX1mdW5jdGlvbiBSKGUsdCxuLHIpe3ZhciBvPWUuZWxlbWVudCxhPWUuY2hpbGRyZW47aWYobXQobykpe2Zvcih2YXIgaT0wO2k8by5sZW5ndGg7aSsrKWlmKG9baV09PT10KXJldHVybiByLnB1c2goZSksbXQoYSk/YTpudWxsfWVsc2UgaWYobnVsbD09byl7aWYobXQoYSkpZm9yKHZhciBsPTA7bDxhLmxlbmd0aDtsKyspe3ZhciBfPVIoYVtsXSx0LG4scik7aWYodm9pZCAwIT09XylyZXR1cm4gci5zcGxpY2UobiwwLGUpLF99fWVsc2UgaWYobz09PXQpcmV0dXJuIHIucHVzaChlKSxtdChhKT9hOm51bGw7cmV0dXJuIHZvaWQgMH1mdW5jdGlvbiBTKGUpe3ZhciBuPVtdO2lmKG51bGw9PWUpcmV0dXJuIG47dmFyIHI9T2JqZWN0LmtleXMoUnQpLG89ci5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIFJ0W2VdLmV8fHQuYm9keX0pLGE9W107ZTpmb3IoO2U7KXtmb3IodmFyIGk9MDtpPG8ubGVuZ3RoO2krKylpZihlPT09b1tpXSlicmVhayBlO2EucHVzaChlKSxlPWUucGFyZW50Tm9kZX1pZighZXx8MD09PWEubGVuZ3RoKXJldHVybiBuO3ZhciBsPW51bGwsXz1hLnBvcCgpO2U6Zm9yKGk9MDtpPG8ubGVuZ3RoO2krKylpZihlPT09b1tpXSlmb3IodmFyIGQ9UnRbcltpXV0uYyx1PTA7dTxkLmxlbmd0aDt1Kyspe3ZhciBjPWRbdV0scz1SKGMsXyxuLmxlbmd0aCxuKTtpZih2b2lkIDAhPT1zKXtsPXM7YnJlYWsgZX19Zm9yKDthLmxlbmd0aDspe2lmKF89YS5wb3AoKSxsJiZsLmxlbmd0aClmb3IodmFyIGY9MCxwPWwubGVuZ3RoO3A+ZjtmKyspe3ZhciBUPWxbZl0scz1SKFQsXyxuLmxlbmd0aCxuKTtpZih2b2lkIDAhPT1zKXtsPXMsXz1udWxsO2JyZWFrfX1pZihfKXtuLnB1c2gobnVsbCk7YnJlYWt9fXJldHVybiBufWZ1bmN0aW9uIGsoZSl7Zm9yKHZhciB0PVMoZSksbj1udWxsO251bGw9PT1uJiZ0Lmxlbmd0aD4wOyluPXQucG9wKCk7cmV0dXJuIG59ZnVuY3Rpb24gTChlLHQsbil7biYmbi5wb3N0UmVuZGVyJiZuLnBvc3RSZW5kZXIodC5jdHgsZSx0KSx0LmRhdGE9ZS5kYXRhLGgodCwhMCl9ZnVuY3Rpb24geihlLHQsbixyLG8pe3ZhciBhPWUuY29tcG9uZW50LGk9Z3QsbD0hMSxfPXQuY3R4O2lmKG51bGwhPWEmJm51bGwhPV8paWYoX1tEdF09PT1NdCYmKG89TWF0aC5tYXgobyxfW1B0XSkpLGEuaWQhPT10LmNvbXBvbmVudC5pZClsPSEwO2Vsc2V7aWYodm9pZCAwIT10LnBhcmVudCYmKF8uY2ZnPWcodC5wYXJlbnQpKSxhLnNob3VsZENoYW5nZSYmIWEuc2hvdWxkQ2hhbmdlKF8sZSx0KSYmIVl0KXJldHVybiBtdCh0LmNoaWxkcmVuKSYmVih0LmNoaWxkcmVuLHQuZWxlbWVudHx8bixudWxsIT10LmVsZW1lbnQ/bnVsbDpyKSx0O18uZGF0YT1lLmRhdGF8fHt9LHQuY29tcG9uZW50PWEsYS5yZW5kZXImJihlPXB0KHt9LGUpLGEucmVuZGVyKF8sZSx0KSksdC5jZmc9ZS5jZmd9dmFyIGQ9ZS5jaGlsZHJlbix1PXQuY2hpbGRyZW4sYz1lLnRhZztpZihsfHxudWxsIT1hJiZudWxsPT1ffHxudWxsPT1hJiZudWxsIT1fKTtlbHNlIGlmKCIvIj09PWMpe2lmKCIvIj09PXQudGFnJiZ1PT09ZClyZXR1cm4gTChlLHQsYSksdH1lbHNlIGlmKGM9PT10LnRhZyl7aWYodm9pZCAwPT09Yyl7aWYoInN0cmluZyI9PXR5cGVvZiBkJiYic3RyaW5nIj09dHlwZW9mIHUpe2lmKGQhPT11KXt2YXIgcz10LmVsZW1lbnQ7aHQ/cy50ZXh0Q29udGVudD1kOnMubm9kZVZhbHVlPWQsdC5jaGlsZHJlbj1kfX1lbHNlIDA+PW8/bXQodSkmJlYodC5jaGlsZHJlbixuLHIpOnQuY2hpbGRyZW49SChuLGQsdSx0LHIsby0xKTtyZXR1cm4gTChlLHQsYSksdH0ic3ZnIj09PWMmJihndD0hMCk7dmFyIHM9dC5lbGVtZW50OyJzdHJpbmciIT10eXBlb2YgZHx8bXQodSk/MD49bz9tdCh1KSYmVih0LmNoaWxkcmVuLHMscik6dT1IKHMsZCx1LHQsbnVsbCxvLTEpOmQhPT11JiYoaHQ/cy50ZXh0Q29udGVudD1kOnMuaW5uZXJUZXh0PWQsdT1kKSx0LmNoaWxkcmVuPXUsTChlLHQsYSksKHQuYXR0cnN8fGUuYXR0cnMpJiYodC5hdHRycz1tKHQscyxlLmF0dHJzfHx7fSx0LmF0dHJzfHx7fSkpLHgodCxzLGUuc3R5bGUsdC5zdHlsZSksdC5zdHlsZT1lLnN0eWxlO3ZhciBmPWUuY2xhc3NOYW1lO3JldHVybiBmIT09dC5jbGFzc05hbWUmJihiKHMsZnx8IiIpLHQuY2xhc3NOYW1lPWYpLGd0PWksdH12YXIgcD10LmVsZW1lbnQ7bXQocCkmJihwPXBbMF0pLHA9bnVsbD09cD9uOnAucGFyZW50Tm9kZTt2YXIgVD1CKGUsdC5wYXJlbnQscCxFKHQpKTtyZXR1cm4gdyh0KSxUfWZ1bmN0aW9uIEUoZSl7dmFyIHQ9ZS5lbGVtZW50O2lmKG51bGwhPXQpcmV0dXJuIG10KHQpP3RbMF06dDt2YXIgbj1lLmNoaWxkcmVuO2lmKCFtdChuKSlyZXR1cm4gbnVsbDtmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKylpZih0PUUobltyXSkpcmV0dXJuIHQ7cmV0dXJuIG51bGx9ZnVuY3Rpb24gTyhlLHQsbixyKXtmb3IoOysrdDxuOyl7dmFyIG89ZVt0XTtpZihudWxsIT1vKXt2YXIgYT1FKG8pO2lmKG51bGwhPWEpcmV0dXJuIGF9fXJldHVybiByfWZ1bmN0aW9uIEQoKXtmb3IodmFyIGU9QnQubGVuZ3RoLHQ9MDtlPnQ7dCsrKXt2YXIgbj1CdFt0XTtDdFt0XT9uLmNvbXBvbmVudC5wb3N0VXBkYXRlRG9tKG4uY3R4LG4sbi5lbGVtZW50KTpuLmNvbXBvbmVudC5wb3N0SW5pdERvbShuLmN0eCxuLG4uZWxlbWVudCl9Q3Q9W10sQnQ9W119ZnVuY3Rpb24gUChlLHQsbixyLG8sYSxpKXt0W25dPXooZSx0W25dLGEsTyh0LG4scixvKSxpKX1mdW5jdGlvbiBJKGUsdCxuKXt2YXIgcj1lLmVsZW1lbnQ7aWYobnVsbD09cil7dmFyIG89ZS5jaGlsZHJlbjtpZighbXQobykpcmV0dXJuIG51bGw7Zm9yKHZhciBhPTA7YTxvLmxlbmd0aDthKyspSShvW2FdLHQsbil9ZWxzZSBpZihtdChyKSlmb3IodmFyIGE9MDthPHIubGVuZ3RoO2ErKyl0Lmluc2VydEJlZm9yZShyW2FdLG4pO2Vsc2UgdC5pbnNlcnRCZWZvcmUocixuKX1mdW5jdGlvbiBXKGUsdCxuLHIsbyl7dmFyIGE9TyhlLHQsbixyKSxpPWVbdF0sbD1FKGkpO251bGwhPWwmJmwhPT1hJiZJKGksbyxhKX1mdW5jdGlvbiBOKGUsdCxuLHIsbyxhLGkpe3ZhciBsPU8odCxuLHIsbyksXz10W25dLGQ9RShfKTtudWxsIT1kJiZkIT09bCYmSShfLGEsbCksdFtuXT16KGUsXyxhLGwsaSl9ZnVuY3Rpb24gSChlLHQsbixyLG8sYSl7bnVsbD09dCYmKHQ9W10pLG10KHQpfHwodD1bdF0pLG51bGw9PW4mJihuPVtdKSxtdChuKXx8KGUuZmlyc3RDaGlsZCYmZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpLG49W10pO3ZhciBpPXQ7aT1pLnNsaWNlKDApO3ZhciBsLF89aS5sZW5ndGg7Zm9yKGw9MDtfPmw7KXt2YXIgZD1pW2xdO210KGQpPyhpLnNwbGljZS5hcHBseShpLFtsLDFdLmNvbmNhdChkKSksXz1pLmxlbmd0aCk6KGQ9dihkKSxudWxsIT1kPyhpW2xdPWQsbCsrKTooaS5zcGxpY2UobCwxKSxfLS0pKX1yZXR1cm4gTShlLGksbixyLG8sYSl9ZnVuY3Rpb24gTShlLHQscixvLGEsaSl7Zm9yKHZhciBsPXQubGVuZ3RoLGQ9ci5sZW5ndGgsdT1kLGM9MCxzPTA7bD5jJiZ1PnM7KXtpZih0W2NdLmtleSE9PXJbc10ua2V5KXtmb3IoOzspaWYoISh0W2wtMV0ua2V5PT09clt1LTFdLmtleSYmKGwtLSx1LS0sUCh0W2xdLHIsdSxkLGEsZSxpKSxsPmMmJnU+cykpKWJyZWFrO2lmKGw+YyYmdT5zKXtpZih0W2NdLmtleT09PXJbdS0xXS5rZXkpe3Iuc3BsaWNlKHMsMCxyW3UtMV0pLHIuc3BsaWNlKHUsMSksTih0W2NdLHIscyxkLGEsZSxpKSxjKysscysrO2NvbnRpbnVlfWlmKHRbbC0xXS5rZXk9PT1yW3NdLmtleSl7ci5zcGxpY2UodSwwLHJbc10pLHIuc3BsaWNlKHMsMSksdS0tLGwtLSxOKHRbbF0scix1LGQsYSxlLGkpO2NvbnRpbnVlfX1icmVha31QKHRbY10scixzLGQsYSxlLGkpLGMrKyxzKyt9aWYocz09PXUpe2lmKGM9PT1sKXJldHVybiByO2Zvcig7bD5jOylyLnNwbGljZShzLDAsQih0W2NdLG8sZSxPKHIscy0xLGQsYSkpKSxzKyssdSsrLGQrKyxjKys7cmV0dXJuIHJ9aWYoYz09PWwpe2Zvcig7dT5zOyl1LS0sdyhyW3VdKSxyLnNwbGljZSh1LDEpO3JldHVybiByfWZvcih2YXIgZixwLFQ9XygpLHg9XygpLGI9YyxtPXMsaD0wO3U+cztzKyspcD1yW3NdLGY9cC5rZXksbnVsbCE9Zj8obighKGYgaW4gVCkpLFRbZl09cyk6aC0tO2Zvcih2YXIgZz0taC1oO2w+YztjKyspcD10W2NdLGY9cC5rZXksbnVsbCE9Zj8obighKGYgaW4geCkpLHhbZl09Yyk6aCsrO2crPWg7dmFyIEM9MDtjPWIscz1tO2Zvcih2YXIgdjt1PnMmJmw+YzspaWYobnVsbCE9PXJbc10paWYodj1yW3NdLmtleSxudWxsIT12KXtpZihmPXRbY10ua2V5LG51bGw9PWYpe2ZvcihjKys7bD5jJiYoZj10W2NdLmtleSxudWxsPT1mKTspYysrO2lmKG51bGw9PWYpYnJlYWt9dmFyIHk9VFtmXTt2b2lkIDAhPT15P3YgaW4geD9zPT09eStDPyhQKHRbY10scixzLGQsYSxlLGkpLGMrKyxzKyspOihyLnNwbGljZShzLDAsclt5K0NdKSxDKyssclt5K0NdPW51bGwsTih0W2NdLHIscyxkLGEsZSxpKSxzKyssdSsrLGQrKyxjKyspOih3KHJbc10pLHIuc3BsaWNlKHMsMSksQy0tLHUtLSxkLS0pOihyLnNwbGljZShzLDAsQih0W2NdLG8sZSxPKHIscy0xLGQsYSkpKSxDKyssYysrLHMrKyx1KyssZCsrKX1lbHNlIHMrKztlbHNlIHIuc3BsaWNlKHMsMSksdS0tLGQtLSxDLS07Zm9yKDt1PnM7KW51bGwhPT1yW3NdP251bGw9PXJbc10ua2V5P3MrKzoodyhyW3NdKSxyLnNwbGljZShzLDEpLHUtLSxkLS0pOihyLnNwbGljZShzLDEpLHUtLSxkLS0pO2Zvcig7bD5jOylmPXRbY10ua2V5LG51bGwhPWYmJihyLnNwbGljZShzLDAsQih0W2NdLG8sZSxPKHIscy0xLGQsYSkpKSx1KyssZCsrLEMrKyxzKyspLGMrKztpZighZylyZXR1cm4gcjtmb3IoZz1nLU1hdGguYWJzKGgpPj4xLGM9YixzPW07bD5jOylpZih1PnMmJih2PXJbc10ua2V5LG51bGwhPXYpKXMrKztlbHNlIGlmKGY9dFtjXS5rZXksdT5jJiZmPT09cltjXS5rZXkpe2lmKG51bGwhPWYpe2MrKztjb250aW51ZX1QKHRbY10scixjLGQsYSxlLGkpLGctLSxjKysscz1jfWVsc2UgaWYobnVsbD09Zil1PnM/KHIuc3BsaWNlKGMsMCxyW3NdKSxyLnNwbGljZShzKzEsMSksTih0W2NdLHIsYyxkLGEsZSxpKSxnLS0sYysrLHMrKyk6KHIuc3BsaWNlKGMsMCxCKHRbY10sbyxlLE8ocixjLTEsZCxhKSkpLHUrKyxkKyssYysrLHMrKyk7ZWxzZXtpZihuKGM9PT1zKSwwPT09ZyYmMD5oKXtmb3IoOzspaWYodyhyW3NdKSxyLnNwbGljZShzLDEpLHUtLSxkLS0saCsrLG4ocyE9PXUsInRoZXJlIHN0aWxsIG5lZWQgdG8gZXhpc3Qga2V5IG5vZGUiKSxudWxsIT1yW3NdLmtleSlicmVhaztjb250aW51ZX1mb3IoO251bGw9PXJbc10ua2V5OylzKys7bihmPT09cltzXS5rZXkpLHIuc3BsaWNlKGMsMCxyW3NdKSxyLnNwbGljZShzKzEsMSksVyhyLGMsZCxhLGUpLGMrKyxzPWN9Zm9yKDt1PmM7KXUtLSx3KHJbdV0pLHIuc3BsaWNlKHUsMSk7cmV0dXJuIHJ9ZnVuY3Rpb24gaih0KXtpZihTdClrdCh0KTtlbHNle3ZhciBuPTUwLzMrT3QtenQoKTswPm4mJihuPTApLGUuc2V0VGltZW91dChmdW5jdGlvbigpe090PXp0KCksdChPdC1FdCl9LG4pfX1mdW5jdGlvbiBHKGUsdCxuKXtudWxsPT1MdCYmKEx0PXt9KTt2YXIgcj1MdFtlXXx8W107ci5wdXNoKHtwcmlvcml0eTp0LGNhbGxiYWNrOm59KSxMdFtlXT1yfWZ1bmN0aW9uICQoZSx0LG4scil7dmFyIG89JHRbZV07aWYobylmb3IodmFyIGE9MDthPG8ubGVuZ3RoO2ErKylpZihvW2FdKHQsbixyKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBRKHQsbil7ZnVuY3Rpb24gcihyKXtyPXJ8fGUuZXZlbnQ7dmFyIG89ci50YXJnZXR8fHIuc3JjRWxlbWVudHx8dCxhPWsobyk7JChuLHIsbyxhKX1pZigiISIhPW5bMF0pe3ZhciBvPSJeIj09blswXSxhPW47byYmKGE9bi5zbGljZSgxKSksIm9uIithIGluIGUmJih0PWUpLHQuYWRkRXZlbnRMaXN0ZW5lcihhLHIsbyl9fWZ1bmN0aW9uIFUoKXtpZihudWxsIT1MdCl7Zm9yKHZhciBlPU9iamVjdC5rZXlzKEx0KSxuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl0sbz1MdFtyXTtvPW8uc29ydChmdW5jdGlvbihlLHQpe3JldHVybiBlLnByaW9yaXR5LXQucHJpb3JpdHl9KSwkdFtyXT1vLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5jYWxsYmFja30pfUx0PW51bGw7Zm9yKHZhciBhPXQuYm9keSxpPTA7aTxlLmxlbmd0aDtpKyspUShhLGVbaV0pfX1mdW5jdGlvbiBWKGUsdCxuKXtmb3IodmFyIHI9ZS5sZW5ndGgsbz0wO3I+bztvKyspe3ZhciBhPWVbb10saT1hLmN0eDtpZihudWxsIT1pJiZpW0R0XT09PU10KXt2YXIgbD17ZGF0YTppLmRhdGEsY29tcG9uZW50OmEuY29tcG9uZW50fTtlW29dPXoobCxhLHQsbixpW1B0XSl9ZWxzZSBpZihtdChhLmNoaWxkcmVuKSl7dmFyIF89Z3Q7InN2ZyI9PT1hLnRhZyYmKGd0PSEwKSxWKGEuY2hpbGRyZW4sYS5lbGVtZW50fHx0LE8oZSxvLHIsbikpLGd0PV99fX1mdW5jdGlvbiBZKGUpe3ZhciB0PVF0O3JldHVybiBRdD1lLHR9ZnVuY3Rpb24gcShlKXt2YXIgdD1VdDtyZXR1cm4gVXQ9ZSx0fWZ1bmN0aW9uIEsoZSl7Zm9yKHZhciB0PWUubGVuZ3RoLTE7dD49MDt0LS0pe3ZhciBuPWVbdF0scj1uLmVsZW1lbnQ7aWYobnVsbCE9cil7aWYobXQocikpe3ZhciBvPXIubGVuZ3RoO2lmKDA9PT1vKWNvbnRpbnVlO3JldHVybiByW28tMV19cmV0dXJuIHJ9dmFyIGE9bi5jaGlsZHJlbjtpZihtdChhKSl7dmFyIGk9SyhhKTtpZihudWxsIT1pKXJldHVybiBpfX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBKKCl7ZXQoKSxaKHp0KCktRXQpfWZ1bmN0aW9uIFooZSl7R3Q9enQoKSxVKCksTXQrKyxZdD1WdCxWdD0hMSxIdD1lLFd0PSExLFF0KCk7dmFyIG49ITE7SXQmJihJdD0hMSxuPSEwKTtmb3IodmFyIHI9T2JqZWN0LmtleXMoUnQpLG89MDtvPHIubGVuZ3RoO28rKyl7dmFyIGE9UnRbcltvXV07aWYoYSl7dmFyIGk9YS5jLGw9SyhpKTtpZihudWxsIT1sJiYobD1sLm5leHRTaWJsaW5nKSxuKXt2YXIgXz1hLmYoKTtpZih2b2lkIDA9PT1fKWJyZWFrO2EuZT1hLmV8fHQuYm9keSxhLmM9SChhLmUsXyxpLG51bGwsbCwxZTYpfWVsc2UgVihpLGEuZSxsKX19RCgpO3ZhciBkPVJ0WzBdO1V0KGQ/ZC5jOm51bGwpLGp0PXp0KCktR3R9ZnVuY3Rpb24gWCgpe1Z0PSEwLGV0KCl9ZnVuY3Rpb24gZXQoZSx0KXtudWxsIT1lPyh2b2lkIDA9PXQmJih0PTFlNiksZVtEdF0hPT1NdCsxPyhlW0R0XT1NdCsxLGVbUHRdPXQpOnQ+ZVtQdF0mJihlW1B0XT10KSk6SXQ9ITAsV3R8fE50fHwoV3Q9ITAsaihaKSl9ZnVuY3Rpb24gdHQoZSx0LG4pe3F0Kys7dmFyIHI9IiIrcXQ7cmV0dXJuIFJ0W3JdPXtmOmUsZTp0LGM6W10scDpufSxldCgpLHJ9ZnVuY3Rpb24gbnQoZSl7dmFyIHQ9UnRbZV07dCYmKHQuYy5sZW5ndGgmJih0LmM9SCh0LmUsW10sdC5jLG51bGwsbnVsbCwxZTkpKSxkZWxldGUgUnRbZV0pfWZ1bmN0aW9uIHJ0KCl7cmV0dXJuIFJ0fWZ1bmN0aW9uIG90KCl7TnQ9ITEsZXQoKX1mdW5jdGlvbiBhdChlLHQpe250KCIwIiksUnRbMF09e2Y6ZSxlOnQsYzpbXSxwOnZvaWQgMH0sTnQ9ITAsS3QoKSxLdD1vdH1mdW5jdGlvbiBpdChlKXt2YXIgdD1LdDtLdD1mdW5jdGlvbigpe2UodCl9fWZ1bmN0aW9uIGx0KGUsdCxuKXtmb3IoO2U7KXt2YXIgcj1lLmNvbXBvbmVudDtpZihyKXt2YXIgbz1lLmN0eCxhPXJbdF07aWYoYSYmYS5jYWxsKHIsbyxuKSlyZXR1cm4gbztpZihhPXIuc2hvdWxkU3RvcEJ1YmJsZSxhJiZhLmNhbGwocixvLHQsbikpYnJlYWt9ZT1lLnBhcmVudH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBfdChlLHQsbil7aWYoIWUpcmV0dXJuIG51bGw7dmFyIHI9ZS5jb21wb25lbnQ7aWYocil7dmFyIG89ZS5jdHgsYT1yW3RdO2lmKGEmJmEuY2FsbChyLG8sbikpcmV0dXJuIG87aWYoYT1yLnNob3VsZFN0b3BCcm9hZGNhc3QsYSYmYS5jYWxsKHIsbyx0LG4pKXJldHVybiBudWxsfXZhciBpPWUuY2hpbGRyZW47aWYobXQoaSkpZm9yKHZhciBsPTA7bDxpLmxlbmd0aDtsKyspe3ZhciBfPV90KGlbbF0sdCxuKTtpZihudWxsIT1fKXJldHVybiBffXJldHVybiBudWxsfWZ1bmN0aW9uIGR0KGUsdCl7Zm9yKHZhciBuPU9iamVjdC5rZXlzKFJ0KSxyPTA7cjxuLmxlbmd0aDtyKyspe3ZhciBvPVJ0W25bcl1dLmM7aWYobnVsbCE9bylmb3IodmFyIGE9MDthPG8ubGVuZ3RoO2ErKyl7dmFyIGk9X3Qob1thXSxlLHQpO2lmKG51bGwhPWkpcmV0dXJuIGl9fXJldHVybiBudWxsfWZ1bmN0aW9uIHV0KGUsdCl7dmFyIG49dGhpcztyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIHI9W10sbz0wO288YXJndW1lbnRzLmxlbmd0aDtvKyspcltvLTBdPWFyZ3VtZW50c1tvXTt2YXIgYT1lLmFwcGx5KG4scik7cmV0dXJuIGE/YTp0LmFwcGx5KG4scil9fWZ1bmN0aW9uIGN0KGUsdCl7dmFyIG49T2JqZWN0LmNyZWF0ZShlKTtuLnN1cGVyPWU7Zm9yKHZhciByIGluIHQpaWYoIShyIGluIEp0KSl7dmFyIG89dFtyXSxhPWVbcl07bltyXT0iaWQiPT09cj8obnVsbCE9YT9hOiIiKSsiLyIrbzoiZnVuY3Rpb24iPT10eXBlb2YgbyYmbnVsbCE9YSYmImZ1bmN0aW9uIj09dHlwZW9mIGE/dXQoYSxvKTpvfXJldHVybiBufWZ1bmN0aW9uIHN0KGUsdCl7dmFyIG49ZS5jb21wb25lbnQ7cmV0dXJuIG4/KGUuY29tcG9uZW50PWN0KHQsbiksZSk6KGUuY29tcG9uZW50PXQsZSl9ZnVuY3Rpb24gZnQoZSx0KXt2YXIgbj1lLmNvbXBvbmVudDtyZXR1cm4gbj8oZS5jb21wb25lbnQ9Y3Qobix0KSxlKTooZS5jb21wb25lbnQ9dCxlKX1mdW5jdGlvbiBwdChlKXtmb3IodmFyIHQ9W10sbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspdFtuLTFdPWFyZ3VtZW50c1tuXTtudWxsPT1lJiYoZT17fSk7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGgsbz0xO3I+bztvKyspe3ZhciBhPWFyZ3VtZW50c1tvXTtpZihudWxsIT1hKWZvcih2YXIgaT1PYmplY3Qua2V5cyhhKSxsPWkubGVuZ3RoLF89MDtsPl87XysrKXt2YXIgZD1pW19dO2VbZF09YVtkXX19cmV0dXJuIGV9ZnVuY3Rpb24gVHQoZSl7dmFyIHQ9ZS5wcmV2ZW50RGVmYXVsdDt0P3QuY2FsbChlKTplLnJldHVyblZhbHVlPSExfWZ1bmN0aW9uIHh0KGUpe2U9ZS5zbGljZSgwKTtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIG49ZVt0XTttdChuKT9lW3RdPXh0KG4pOmEobikmJihlW3RdPWJ0KG4pKX1yZXR1cm4gZX1mdW5jdGlvbiBidChlKXt2YXIgdD1wdCh7fSxlKTt0LmF0dHJzJiYodC5hdHRycz1wdCh7fSx0LmF0dHJzKSksYSh0LnN0eWxlKSYmKHQuc3R5bGU9cHQoe30sdC5zdHlsZSkpO3ZhciBuPXQuY2hpbGRyZW47cmV0dXJuIG4mJihtdChuKT90LmNoaWxkcmVuPXh0KG4pOmEobikmJih0LmNoaWxkcmVuPWJ0KG4pKSksdH12YXIgbXQ9QXJyYXkuaXNBcnJheSxodD0idGV4dENvbnRlbnQiaW4gcigiIiksZ3Q9ITEsQ3Q9W10sQnQ9W10sdnQ9ZnVuY3Rpb24oZSx0LG4scil7biE9PXImJihlLnZhbHVlPW4pfSx5dD1bIldlYmtpdCIsIk1veiIsIm1zIiwiTyJdLEZ0PXQuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUsQXQ9XygpLHd0PXtib3hGbGV4OiEwLGJveEZsZXhHcm91cDohMCxjb2x1bW5Db3VudDohMCxmbGV4OiEwLGZsZXhHcm93OiEwLGZsZXhOZWdhdGl2ZTohMCxmbGV4UG9zaXRpdmU6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGxpbmVDbGFtcDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCxzdHJva2VEYXNob2Zmc2V0OiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMH0sUnQ9T2JqZWN0LmNyZWF0ZShudWxsKSxTdD0hMSxrdD1lLnJlcXVlc3RBbmltYXRpb25GcmFtZTtrdCYma3QoZnVuY3Rpb24oZSl7ZT09PStlJiYoU3Q9ITApfSk7dmFyIEx0LHp0PURhdGUubm93fHxmdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfSxFdD16dCgpLE90PTAsRHQ9IiRpbnZhbGlkYXRlZCIsUHQ9IiRkZWVwbmVzcyIsSXQ9ITAsV3Q9ITEsTnQ9ITAsSHQ9MCxNdD0wLGp0PTAsR3Q9MCwkdD17fSxRdD1mdW5jdGlvbigpe30sVXQ9ZnVuY3Rpb24oKXt9LFZ0PSExLFl0PSExLHF0PTAsS3Q9b3QsSnQ9e307cmV0dXJue2NyZWF0ZU5vZGU6Qix1cGRhdGVOb2RlOnosdXBkYXRlQ2hpbGRyZW46SCxjYWxsUG9zdENhbGxiYWNrczpELHNldFNldFZhbHVlOmwsc2V0U3R5bGVTaGltOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIEF0W2VdPXR9LGluaXQ6YXQsYWRkUm9vdDp0dCxyZW1vdmVSb290Om50LGdldFJvb3RzOnJ0LHNldEJlZm9yZUZyYW1lOlksc2V0QWZ0ZXJGcmFtZTpxLHNldEJlZm9yZUluaXQ6aXQsaXNBcnJheTptdCx1cHRpbWU6ZnVuY3Rpb24oKXtyZXR1cm4gSHR9LGxhc3RGcmFtZUR1cmF0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGp0fSxub3c6enQsZnJhbWU6ZnVuY3Rpb24oKXtyZXR1cm4gTXR9LGFzc2lnbjpwdCxpZVZlcnNpb246ZixpbnZhbGlkYXRlOmV0LHN5bmNVcGRhdGU6SixpZ25vcmVTaG91bGRDaGFuZ2U6WCxpbnZhbGlkYXRlZDpmdW5jdGlvbigpe3JldHVybiBXdH0scHJldmVudERlZmF1bHQ6VHQsdmRvbVBhdGg6UyxnZXREb21Ob2RlOkUsZGVyZWY6ayxhZGRFdmVudDpHLGVtaXRFdmVudDokLGJ1YmJsZTpsdCxicm9hZGNhc3Q6ZHQscHJlRW5oYW5jZTpzdCxwb3N0RW5oYW5jZTpmdCxjbG9uZU5vZGU6YnQsc2hpbVN0eWxlOnAsZmxhdHRlbjppLG1lcmdlQ29tcG9uZW50czpjdH19KHdpbmRvdyxkb2N1bWVudCk7d2luZG93LmI9YixmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oKXtyZXR1cm4gYT1udWxsLGUuaW52YWxpZGF0ZSgpLCExfWZ1bmN0aW9uIHIoZSl7cmV0dXJuIG51bGwhPWUmJihpPWUsbigpKSxpfWZ1bmN0aW9uIG8oKXtpZihudWxsPT1hKXt2YXIgZT11LmNsaWVudFdpZHRoLG49dS5jbGllbnRIZWlnaHQscj10Lm9yaWVudGF0aW9uLG89bj49ZTtpZihudWxsPT1yJiYocj1vPzA6OTApLGMmJmUrbj4wKXt2YXIgbD1NYXRoLmFicyhyKSUxODA9PT05MDtudWxsPT1kP2Q9bD09PW86bz1sPT09ZH1mb3IodmFyIF89MDtlPmlbKyFvXVtfXTspXysrO2E9e3dpZHRoOmUsaGVpZ2h0Om4sb3JpZW50YXRpb246cixkZXZpY2VDYXRlZ29yeTpfLHBvcnRyYWl0Om99fXJldHVybiBhfWZvcih2YXIgYT1udWxsLGk9W1s0MTQsODAwLDkwMF0sWzczNiwxMjgwLDE0NDBdXSxsPVsicmVzaXplIiwib3JpZW50YXRpb25jaGFuZ2UiXSxfPTA7XzxsLmxlbmd0aDtfKyspZS5hZGRFdmVudChsW19dLDEwMCxuKTt2YXIgZCx1PXQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGM9L0FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO2UuZ2V0TWVkaWE9byxlLmFjY0RldmljZUJyZWFrcz1yfShiLHdpbmRvdyksZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBuKGUpe3ZhciB0PWguZXhlYyhlKTtpZighdClyZXR1cm4gc1tlXS5uYW1lO3ZhciBuPXQuaW5kZXg7cmV0dXJuIHNbZS5zdWJzdHJpbmcoMCxuKV0ubmFtZStlLnN1YnN0cmluZyhuKX1mdW5jdGlvbiByKHQscil7dmFyIG89IiI7aWYodClpZihlLmlzQXJyYXkodCkpZm9yKHZhciBhPTA7YTx0Lmxlbmd0aDthKyspYT4wJiYobys9IiwiKSxvKz0iLiIrbih0W2FdKSsiLiIrcjtlbHNlIG89Ii4iK24odCkrIi4iK3I7ZWxzZSBvPSIuIityO3JldHVybiBvfWZ1bmN0aW9uIG8odCxuLHIsYSl7aWYoInN0cmluZyI9PXR5cGVvZiByKXt2YXIgaT1zW3JdO2lmKHZvaWQgMD09PWkpdGhyb3cgbmV3IEVycm9yKCJ1a25vd24gc3R5bGUgIityKTtvKHQsbixpLnN0eWxlLGkucHNldWRvKX1lbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiByKXIodCxuKTtlbHNlIGlmKGUuaXNBcnJheShyKSlmb3IodmFyIGw9MDtsPHIubGVuZ3RoO2wrKylvKHQsbixyW2xdLHZvaWQgMCk7ZWxzZSBpZigib2JqZWN0Ij09dHlwZW9mIHIpZm9yKHZhciBfIGluIHIpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsXykpe3ZhciBkPXJbX107ImZ1bmN0aW9uIj09dHlwZW9mIGQmJihkPWQodCxfKSksdFtfXT1kfWlmKG51bGwhPWEmJm51bGwhPW4pZm9yKHZhciB1IGluIGEpe3ZhciBjPW5bdV07dm9pZCAwPT09YyYmKGM9T2JqZWN0LmNyZWF0ZShudWxsKSxuW3VdPWMpLG8oYyx2b2lkIDAsYVt1XSx2b2lkIDApfX1mdW5jdGlvbiBhKCl7aWYocCl7dmFyIG49IiI7Zm9yKHZhciBhIGluIHMpe3ZhciBpPXNbYV0sbD1pLnBhcmVudCxkPWkubmFtZSx1PWkucHNldWRvLGM9aS5zdHlsZTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYyYmMD09PWMubGVuZ3RoJiYoRj1jKCksYz1GWzBdLHU9RlsxXSksInN0cmluZyIhPXR5cGVvZiBjfHxudWxsIT11KXtpLnJlYWxuYW1lPWQ7dmFyIGY9T2JqZWN0LmNyZWF0ZShudWxsKSx4PU9iamVjdC5jcmVhdGUobnVsbCk7byh2b2lkIDAseCx2b2lkIDAsdSksbyhmLHgsYyx2b2lkIDApO3ZhciBoPW51bGw7Zi5wb2ludGVyRXZlbnRzJiYoaD1PYmplY3QuY3JlYXRlKG51bGwpLGgucG9pbnRlckV2ZW50cz1mLnBvaW50ZXJFdmVudHMpLGImJmYudXNlclNlbGVjdCYmKG51bGw9PWgmJihoPU9iamVjdC5jcmVhdGUobnVsbCkpLGgudXNlclNlbGVjdD1mLnVzZXJTZWxlY3QsZGVsZXRlIGYudXNlclNlbGVjdCksaS5pbmxTdHlsZT1oLGUuc2hpbVN0eWxlKGYpO3ZhciBnPV8oZik7Zy5sZW5ndGg+MCYmKG4rPXIobCxkKSsiIHsiK2crIn1cbiIpO2Zvcih2YXIgQyBpbiB4KXt2YXIgQj14W0NdO2Uuc2hpbVN0eWxlKEIpLG4rPXIobCxkKyI6IitDKSsiIHsiK18oQikrIn1cbiJ9fWVsc2UgaS5yZWFsbmFtZT1jfXZhciB2PXQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTt2LnR5cGU9InRleHQvY3NzIix2LnN0eWxlU2hlZXQ/di5zdHlsZVNoZWV0LmNzc1RleHQ9bjp2LmFwcGVuZENoaWxkKHQuY3JlYXRlVGV4dE5vZGUobikpO3ZhciB5PXQuaGVhZHx8dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdO251bGwhPVQ/eS5yZXBsYWNlQ2hpbGQodixUKTp5LmFwcGVuZENoaWxkKHYpLFQ9dixwPSExfW0oKTt2YXIgRn1mdW5jdGlvbiBpKHQpe2Zvcih2YXIgbj1bXSxyPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyluW3ItMV09YXJndW1lbnRzW3JdO2Zvcih2YXIgbz10LmNsYXNzTmFtZSxhPXQuc3R5bGUsaT1udWxsLGw9MCxfPW47OylpZihfLmxlbmd0aCE9PWwpe3ZhciBkPV9bbF07aWYobnVsbD09ZHx8ImJvb2xlYW4iPT10eXBlb2YgZHx8IiI9PT1kKTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgZCl7dmFyIHU9c1tkXTtvPW51bGw9PW8/dS5yZWFsbmFtZTpvKyIgIit1LnJlYWxuYW1lO3ZhciBjPXUuaW5sU3R5bGU7YyYmKGE9ZS5hc3NpZ24oYSxjKSl9ZWxzZXtpZihlLmlzQXJyYXkoZCkpe18ubGVuZ3RoPmwrMSYmKG51bGw9PWkmJihpPVtdKSxpLnB1c2gobCksaS5wdXNoKF8pKSxfPWQsbD0wO2NvbnRpbnVlfWE9ZS5hc3NpZ24oYSxkKX1sKyt9ZWxzZXtpZihudWxsPT09aXx8MD09PWkubGVuZ3RoKWJyZWFrO189aS5wb3AoKSxsPWkucG9wKCkrMX1yZXR1cm4gdC5jbGFzc05hbWU9byx0LnN0eWxlPWEsdH1mdW5jdGlvbiBsKGUpe3JldHVybiJjc3NGbG9hdCI9PT1lPyJmbG9hdCI6ZS5yZXBsYWNlKGcsIi0kMSIpLnRvTG93ZXJDYXNlKCkucmVwbGFjZShDLCItbXMtIil9ZnVuY3Rpb24gXyhlKXt2YXIgdD0iIjtmb3IodmFyIG4gaW4gZSl7dmFyIHI9ZVtuXTt2b2lkIDAhPT1yJiYodCs9bChuKSsiOiIrKCIiPT09cj8nIiInOnIpKyI7Iil9cmV0dXJuIHQ9dC5zbGljZSgwLC0xKX1mdW5jdGlvbiBkKGUsdCxuKXtyZXR1cm4gdShudWxsLGUsdCxuKX1mdW5jdGlvbiB1KGUsdCxuLHIpe2lmKHImJiJiLSIhPT1yKXtpZihmW3JdKXtmb3IodmFyIG89MTtmW3Irb107KW8rKztyKz1vfWZbcl09ITB9ZWxzZSByPSJiLSIreCsrO3JldHVybiBzW3JdPXtuYW1lOnIscmVhbG5hbWU6cixwYXJlbnQ6ZSxzdHlsZTp0LGlubFN0eWxlOm51bGwscHNldWRvOm59LGMoKSxyfWZ1bmN0aW9uIGMoKXtwPSEwLGUuaW52YWxpZGF0ZSgpfXZhciBzPU9iamVjdC5jcmVhdGUobnVsbCksZj1PYmplY3QuY3JlYXRlKG51bGwpLHA9KE9iamVjdC5jcmVhdGUobnVsbCksITEpLFQ9bnVsbCx4PTAsYj05PT09ZS5pZVZlcnNpb24oKSxtPWUuc2V0QmVmb3JlRnJhbWUoYSksaD0vXDp8XCB8XD4vLGc9LyhbQS1aXSkvZyxDPS9ebXMtLztlLnN0eWxlPWksZS5zdHlsZURlZj1kLGUuc3R5bGVEZWZFeD11LGUuaW52YWxpZGF0ZVN0eWxlcz1jfShiLGRvY3VtZW50KTt2YXIgRlVMTENPTlRFTlRQUkVGSVg9ImZjUHJlZml4IjtEYXRlLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4iL0RhdGUoIit0aGlzLmdldFRpbWUoKSsiKS8ifSx3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZU9yaWd8fCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZU9yaWc9d2luZG93LmdldENvbXB1dGVkU3R5bGUsd2luZG93LmdldENvbXB1dGVkU3R5bGU9ZnVuY3Rpb24oZSx0KXt2YXIgbj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZU9yaWcoZSx0KTtyZXR1cm4gbnx8ZS5zdHlsZX0pO3ZhciBIYXNoS2V5R2VuZXJhdG9yOyFmdW5jdGlvbihlKXtmdW5jdGlvbiB0KGUpe2lmKCFlKXJldHVybiIiO2lmKGUuaGFzT3duUHJvcGVydHkoIiQkJGhhc2hLZXkiKSlyZXR1cm4gZS4kJCRoYXNoS2V5O3ZhciB0PSIiK247cmV0dXJuIG4rKyxlLiQkJGhhc2hLZXk9dCx0fXZhciBuPTA7ZS5nZXRIYXNoS2V5PXR9KEhhc2hLZXlHZW5lcmF0b3J8fChIYXNoS2V5R2VuZXJhdG9yPXt9KSk7dmFyIEJhc2U2NFN0cmVhbT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7dGhpcy5iYXNlNjREYXRhPWUsdGhpcy5pbmRleD0wLHRoaXMucHJldj0wfXJldHVybiBlLnByb3RvdHlwZS5pc0VPRj1mdW5jdGlvbigpe2lmKHRoaXMuaW5kZXg+PXRoaXMuYmFzZTY0RGF0YS5sZW5ndGgpcmV0dXJuITA7dmFyIGU9dGhpcy5iYXNlNjREYXRhLmNoYXJBdCh0aGlzLmluZGV4KTtyZXR1cm4iPSI9PWV9LGUucHJvdG90eXBlLnJlYWQ9ZnVuY3Rpb24oKXt2YXIgdD12b2lkIDA7aWYodGhpcy5pc0VPRigpKXRocm93IiI7Zm9yKDt2b2lkIDA9PT10Oyl7dmFyIG49dGhpcy5iYXNlNjREYXRhLmNoYXJBdCh0aGlzLmluZGV4KTtpZighKG4+PSJBIiYmIloiPj1ufHxuPj0iYSImJiJ6Ij49bnx8bj49IjAiJiYiOSI+PW58fCIvIj09bnx8IisiPT1ufHwiPSI9PW4pKXRocm93IiI7dmFyIHI9dGhpcy5iYXNlNjREYXRhLmNoYXJDb2RlQXQodGhpcy5pbmRleCk7c3dpdGNoKHRoaXMuaW5kZXglNCl7Y2FzZSAxOnQ9KHRoaXMucHJldjw8MiYyNTIpKyhlLnJzdHJbcl0+PjQmMyk7YnJlYWs7Y2FzZSAyOnQ9KHRoaXMucHJldjw8NCYyNDApKyhlLnJzdHJbcl0+PjImMTUpO2JyZWFrO2Nhc2UgMzp0PSh0aGlzLnByZXY8PDYmMTkyKStlLnJzdHJbcl19dGhpcy5pbmRleCsrLHRoaXMucHJldj1lLnJzdHJbcl19cmV0dXJuIHR9LGV9KCk7QmFzZTY0U3RyZWFtLnJzdHI9WzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjIsMCwwLDAsNjMsNTIsNTMsNTQsNTUsNTYsNTcsNTgsNTksNjAsNjEsMCwwLDAsMCwwLDAsMCwwLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDAsMCwwLDAsMCwwLDI2LDI3LDI4LDI5LDMwLDMxLDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1LDQ2LDQ3LDQ4LDQ5LDUwLDUxLDAsMCwwLDAsMF07dmFyIEN0eFVucGFja2VyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe31yZXR1cm4gZS51bnBhY2s9ZnVuY3Rpb24odCxuKXtmb3IodmFyIHI9IiIsbz1uZXcgQmFzZTY0U3RyZWFtKHQpLGE9MCxpPTA7IW8uaXNFT0YoKTspe3ZhciBsPTI1NSZvLnJlYWQoKTtpPWk8PDd8MTI3JmwsYSsrLDEyOCZsfHwocis9aTxlLmRpY3QubGVuZ3RoP2UuZGljdFtpXTpuW2ktZS5kaWN0Lmxlbmd0aF0saT0wKX1yZXR1cm4gcn0sZX0oKTtDdHhVbnBhY2tlci5kaWN0PVsiXyIsIj0iLCIuIiwiLCIsIjsiLCIoIiwiKSIsInsiLCJ9IiwicmV0dXJuICIsImZ1bmN0aW9uIiwidmFsdWUiLCJmdW5jIiwiYXJncyIsInJlY29yZCIsImRwIiwidGhpcy5wIiwicCIsImdldCIsInNldCIsIm5hbWVPZiIsImFkZCIsInJlbW92ZSIsImVtaXQiXSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oKXtmb3IodmFyIGU9MDtlPHUubGVuZ3RoO2UrKyl1W2VdKCk7cmV0dXJuITF9ZnVuY3Rpb24gcihlKXtlLmFkZEV2ZW50TGlzdGVuZXI/ZS5hZGRFdmVudExpc3RlbmVyKGQsbik6ZS5hdHRhY2hFdmVudCgib24iK2Qsbil9ZnVuY3Rpb24gbyhlKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXI/ZS5yZW1vdmVFdmVudExpc3RlbmVyKGQsbik6ZS5kZXRhY2hFdmVudCgib24iK2Qsbil9ZnVuY3Rpb24gYShlKXt1LnB1c2goZSl9ZnVuY3Rpb24gaShlKXtmb3IodmFyIHQ9MDt0PHUubGVuZ3RoO3QrKylpZih1W3RdPT09ZSlyZXR1cm4gdm9pZCB1LnNwbGljZSh0LDEpfWZ1bmN0aW9uIGwoZSl7dmFyIG49dC5nZXRDb21wdXRlZFN0eWxlP3QuZ2V0Q29tcHV0ZWRTdHlsZShlKTplLmN1cnJlbnRTdHlsZSxyPVshMCwhMF07cmV0dXJuIGMudGVzdChlLm5vZGVOYW1lKXx8KHJbMF09cy50ZXN0KG4ub3ZlcmZsb3dYKSxyWzFdPXMudGVzdChuLm92ZXJmbG93WSkpLHJbMF09clswXSYmZS5zY3JvbGxXaWR0aD5lLmNsaWVudFdpZHRoLHJbMV09clsxXSYmZS5zY3JvbGxIZWlnaHQ+ZS5jbGllbnRIZWlnaHQscn1mdW5jdGlvbiBfKCl7dmFyIGU9dC5wYWdlWU9mZnNldCxuPXQucGFnZVhPZmZzZXQ7aWYodm9pZCAwPT09ZSl7dmFyIHI9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2U9ci5zY3JvbGxUb3Asbj1yLnNjcm9sbExlZnR9cmV0dXJuW24sZV19dmFyIGQ9InNjcm9sbCIsdT1bXTtlLmFkZEV2ZW50KGQsMTAwLG4pO3ZhciBjPS9eKD86aHRtbCkkL2kscz0vXig/OmF1dG8pJHxeKD86c2Nyb2xsKSQvaTtlLnJlZ2lzdGVyU2Nyb2xsYWJsZT1yLGUudW5yZWdpc3RlclNjcm9sbGFibGU9byxlLmFkZE9uU2Nyb2xsPWEsZS5yZW1vdmVPblNjcm9sbD1pLGUuaXNTY3JvbGxhYmxlPWwsZS5nZXRXaW5kb3dTY3JvbGw9X30oYix3aW5kb3cpO3ZhciBSb290RGF0YUN0eD17fTtjdHhSQmxkKCJSb290RGF0YUN0eCIsIkVob1pDZ1VHQndrWUFob0VDQU1TR3hrS0JRWUhDUmdDR3dRSUF4SWNHUW9GQmdjSkdBSWNCQWdERWgwWkNnVUdCd2tZQWgwRUNBTVNIaGtLQlFZSENSZ0NIZ1FJQXhJZkdRb0ZCZ2NKR0FJZkJBZ0RFaUFaQ2dVR0J3a1lBaUFFQ0FNU0lSa0tCUVlIQ1JnQ0lRUUlBeElpR1FvRkJnY0pHQUlpQkFnREVpTVpDZ1VHQndrWUFpTUVDQU1TSkJrS0JRWUhDUmdDSkFRSUF4SWxHUW9GQmdjSkdBSWxCQWdERWlZWkNnVUdCd2tZQWlZRUNBTVNKeGtLQlFZSENSZ0NKd1FJQXhJb0dRb0ZCZ2NKR0FJb0JBZ0RFaWtaQ2dVR0J3a1lBaWtFQ0FNU0toa0tCUVlIQ1JnQ0tnUUlBeElyR1FvRkJnY0pHQUlyQkFnREVpd1pDZ1VHQndrWUFpd0VDQU1TTFJrS0JRWUhDUmdDTFFRSUF4SXVHUW9GQmdjSkdBSXVCQWdERWk4WkNnVUdCd2tZQWk4RUNBTVNNQmtLQlFZSENSZ0NNQVFJQXhJeEdRb0ZCZ2NKR0FJeEJBZ0RFaklaQ2dVR0J3a1lBaklFQ0FNU014a0tCUVlIQ1JnQ013UUlBeEkwR1FvRkJnY0pHQUkwQkFnREVqVVpDZ1VHQndrWUFqVUVDQU1TTmhrS0JRWUhDUmdDTmdRSUF4STNHUW9GQmdjSkdBSTNCQWdERWpnWkNnVUdCd2tZQWpnRUNBTVNPUmtLQlFZSENSZ0NPUVFJQXhJNkdRb0ZCZ2NKR0FJNkJBZ0RFanNaQ2dVR0J3a1lBanNFQ0FNU1BCa0tCUVlIQ1JnQ1BBUUlBeEk5R1FvRkJnY0pHQUk5QkFnREVqNFpDZ1VHQndrWUFqNEVDQU1TUHhrS0JRWUhDUmdDUHdRSUF4SkFHUW9GQmdjSkdBSkFCQWdERWtFWkNnVUdCd2tZQWtFRUNBTT0iLFsibW9kZWwiLCI6IiwiTG9nb19CQUNfQ3JlZG9tYXRpY19CTl9tZWQiLCJBU19DdWVudGFNYXNrIiwiSEZfU3VjdXJzYWwiLCJIRl9OdW1fU3VjdXJzYWwiLCJBU19Ob21icmVfQ2xpZW50ZSIsIl9IRl9IRl9hZjFvIiwiSEZfbWVzIiwiSEZfZGlhIiwiQ3VlbnRhVG90YWwiLCJQYXJhRGVzY1RyYW1pdGUiLCJBU19MaW1pdGUiLCJDSUZfQkNPX0hGIiwiQVNfQ0lGX1RpdHVsYXIiLCJBU19Ob21icmVfRmlhZG9yIiwiSEZfRmVjaGFfbWluaW1vIiwiSEZfRmVjaGFfY29ydGUiLCJIRl9GZWNoYV9Db250YWRvIiwiSEZfVGFzYV9Eb2xhcmVzIiwiSEZfVGFzYV9Db2xvbmVzIiwiX0hGX1BhZ29fVGFyZGVkbyIsIkhGX1NvYnJlZ2lybyIsIkhGX01vbnRvX1JvYm8iLCJFU19BTUVYX1BBUlJBRk9fQ09NSVNJT04iLCJlc19hbWV4Iiwic2FsZG9fbWluaW1vX2RvbF92YXIiLCJzYWxnb19taW5pbW9fY29sX3ZhciIsImFzX2N1ZW50YV91c2RfdmFyIiwiYXNfY3VlbnRhX2NyY192YXIiLCJ0aXBvX3RyYW1pdGVfdmFyIiwiRmVjaGFkZVByb2R1Y2Npb24iLCJOT1NFTExBRE8iLCJTRUxMQURPIiwiVElQT19QTEFUSU5PXzIiLCJUSVBPX0RPUkFEQV8yIiwiVElQT19DTEFTSUNBXzIiLCJUSVBPX1BMQVRJTk8iLCJUSVBPX0RPUkFEQSIsIlRJUE9fQ0xBU0lDQSIsIkFTX0NlZHVsYSIsIkFTX1BsYW5MZWFsdGFkIl0pO3ZhciBUZXh0XzEwXzBfMTFfNENvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W2QoIiIse3RleHRBbGlnbjoicmlnaHQifSwiIixzKCIiLHtmb250RmFtaWx5OiJBcmlhbCJ9LCIiLCJQ4WdpbmEgMSBkZSAyIikpXX0sSW1hZ2VfMTFfMF8wPWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUoZSl7Zm9yKHZhciB0PWUucGFyZW50O3Q7KXtpZih0LmNvbXBvbmVudCYmIkxheWVyQ29udGVudENvbXBvbmVudCI9PXQuY29tcG9uZW50LmlkKXJldHVybiB0LmN0eDt0PXQucGFyZW50fXJldHVybiBudWxsfWZ1bmN0aW9uIHQoZSl7cmV0dXJuIGUuZGF0YS53aWR0aC5sZW5ndGgmJiIlIj09ZS5kYXRhLndpZHRoW2UuZGF0YS53aWR0aC5sZW5ndGgtMV19ZnVuY3Rpb24gbihlLHQsbixyKXtyZXR1cm57ZGF0YTp7aW1hZ2VTcmM6ZSx3aWR0aDp0LGxpbmtIcmVmOm4sYWx0ZXJuYXRlVGV4dDpyfSxjb21wb25lbnQ6bH19dmFyIHI9Yi5zdHlsZURlZihudWxsKSxvPSEwLGE9Yi5zdHlsZURlZih7ZGlzcGxheToiYmxvY2siLGJvcmRlclN0eWxlOiJub25lIixoZWlnaHQ6ImF1dG8iLHdpZHRoOiIxMDAlIn0pLGk9Yi5zdHlsZURlZih7ZGlzcGxheToiaW5saW5lIix2ZXJ0aWNhbEFsaWduOiJ0b3AifSksbD17aWQ6IkltYWdlQ29tcG9uZW50Iixpbml0OmZ1bmN0aW9uKHQsbil7dC5sb2FkZWQ9IiIsdC5lcnJvcj0hMSx0LnBhcmVudExheWVyQ3R4PWUobil9LHJlbmRlcjpmdW5jdGlvbihlLG4pe3ZhciBsLF89ZS5kYXRhO24uYXR0cnM9bi5hdHRyc3x8e307dmFyIGQ9Xy53aWR0aDtpZihlLnBhcmVudExheWVyQ3R4JiYiYXV0byI9PWUucGFyZW50TGF5ZXJDdHguZGF0YS53aWR0aCYmdChlKSlpZihlLnNyY1cpZD0iIitlLnNyY1cqcGFyc2VGbG9hdChfLndpZHRoKSouMDErInB4IjtlbHNle3ZhciB1PW5ldyBJbWFnZTt1Lm9ubG9hZD1mdW5jdGlvbigpe2Uuc3JjVz11LndpZHRoLGIuaW52YWxpZGF0ZSgpfSx1LnNyYz1uLmRhdGEuaW1hZ2VTcmN9IiI9PV8ubGlua0hyZWY/KG4udGFnPSJpbWciLGw9bi5hdHRycyxiLnN0eWxlKG4sYSxvJiZ7d2lkdGg6ZH0pKToobi50YWc9ImEiLG4uYXR0cnMuaHJlZj1fLmxpbmtIcmVmLG4uY2hpbGRyZW49W2Iuc3R5bGUoe3RhZzoiaW1nIixhdHRyczp7fX0sYSxvJiZ7d2lkdGg6ZH0saSldLGw9bi5jaGlsZHJlblswXS5hdHRycyxiLnN0eWxlKG4scikpLGwub25sb2FkPWZ1bmN0aW9uKCl7ZS5sb2FkZWQ9Xy5pbWFnZVNyYyxiLmludmFsaWRhdGUoKX0sbC5vbmVycm9yPWZ1bmN0aW9uKCl7ZS5lcnJvcj0hMH0sbC5zcmM9Xy5pbWFnZVNyYyxsLmFsdD1fLmFsdGVybmF0ZVRleHR9fTtyZXR1cm4gbn0oKSxCYXNpY1RhYmxlQ2VsbF8xMV80XzA9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZShlLG4scixhLGkpe3JldHVybntkYXRhOntjb250ZW50OmUsY29sc3BhbjpuLHJvd3NwYW46cix3aWR0aDphLHZlcnRpY2FsQWxpZ246Z2V0RW51bVZhbHVlT3JEZWZhdWx0KHQsaSwxKX0sY29tcG9uZW50Om99fXZhciB0LG49ITAscj1iLnN0eWxlRGVmKHt2ZXJ0aWNhbEFsaWduOiJtaWRkbGUifSk7IWZ1bmN0aW9uKGUpe2VbZS50b3A9MF09InRvcCIsZVtlLm1pZGRsZT0xXT0ibWlkZGxlIixlW2UuYm90dG9tPTJdPSJib3R0b20ifSh0fHwodD17fSkpO3ZhciBvPXtpZDoiVGFibGVDZWxsQ29tcG9uZW50IixyZW5kZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbz1lLmRhdGE7dC50YWc9InRkIix0LmRhdGFbImZvcmNlLW15LW1lYXN1cmUiXT0hMCxvLmNvbHNwYW4+MSYmKHQuYXR0cnM9Yi5hc3NpZ24odC5hdHRycyx7Y29sc3BhbjpvLmNvbHNwYW59KSksby5yb3dzcGFuPjEmJih0LmF0dHJzPWIuYXNzaWduKHQuYXR0cnMse3Jvd3NwYW46by5yb3dzcGFufSkpLHQuY2hpbGRyZW49by5jb250ZW50KCksYi5zdHlsZSh0LHIsbiYme3dpZHRoOm8ud2lkdGgsdmVydGljYWxBbGlnbjpvLnZlcnRpY2FsQWxpZ259KQp9fTtyZXR1cm4gZX0oKSxUZXh0XzEwXzBfMTFfMTBDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltkKCIiLHt0ZXh0QWxpZ246ImNlbnRlciJ9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250V2VpZ2h0OiJib2xkIn0sIiIsIkNMIDMtIENPTkZJREVOQ0lBTCIpKV19LFRleHRfMTBfMF8xMV8xMkNvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W2QoIiIse3RleHRBbGlnbjoiY2VudGVyIn0sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwifSwiIiwiRi1DT00tSG9qYSBkZSBGb3JtYWxpemFjafNuICIpKSxkKCIiLHt0ZXh0QWxpZ246ImNlbnRlciJ9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIn0sIiIsIkTzbGFyZXMtQ1JJLTAwMDA2OTUgLSBWZXJzaW9uIDI3IikpXX0sQmFzaWNUYWJsZVJvd18xMV8wXzM9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZShlLHQsbixyKXtpZihyKXt2YXIgbz1yW2UrIl8iXTtpZihvJiYoMD09PXQmJm4mJiFvLnNob3dPbk1vYmlsZVBvcnRyYWl0fHwwPT09dCYmIW4mJiFvLnNob3dPbk1vYmlsZUxhbmRzY2FwZXx8MT09PXQmJm4mJiFvLnNob3dPblRhYmxldFBvcnRyYWl0fHwxPT09dCYmIW4mJiFvLnNob3dPblRhYmxldExhbmRzY2FwZXx8Mj09PXQmJiFvLnNob3dPbkRlc2t0b3B8fDM9PT10JiYhby5zaG93T25EZXNrdG9wTGFyZ2UpKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIHQoZSx0KXtyZXR1cm57ZGF0YTp7Y2VsbHM6ZSxoZWlnaHQ6dH0sY29tcG9uZW50Om99fXZhciBuPSEwLHI9Yi5zdHlsZURlZih7aGVpZ2h0OiJhdXRvIn0pLG89e2lkOiJUYWJsZVJvd0NvbXBvbmVudCIsaW5pdDpmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj10LnBhcmVudC5wYXJlbnQ7dm9pZCAwPT09bi5jdHgmJnZvaWQgMCE9PW4ucGFyZW50OyluPW4ucGFyZW50O2UucmVmPXt0YWJsZUN0eDpuLmN0eH19LHJlbmRlcjpmdW5jdGlvbih0LG8pe2Zvcih2YXIgYT10LmRhdGEsaT1iLmdldE1lZGlhKCksbD1bXSxfPWEuY2VsbHMuY291bnQodCksZD10LnJlZi50YWJsZUN0eC5zaG93T24sdT0wO18+dTt1KyspaWYoZSh1LGkuZGV2aWNlQ2F0ZWdvcnksaS5wb3J0cmFpdCxkKSl7dmFyIGM9YS5jZWxscy5nZXQodSk7bC5wdXNoKHdpdGhLZXkoYS5jZWxscy5rZXkodSksYykpfW8udGFnPSJ0ciIsby5jaGlsZHJlbj1sLGIuc3R5bGUobyxyLG4mJntoZWlnaHQ6YS5oZWlnaHR9KX19O3JldHVybiB0fSgpLEJhc2ljVGFibGVfMTFfMF80PWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUoZSx0KXt2YXIgbj1lLmRhdGEscj1iLnN0eWxlKHt0YWc6InRhYmxlIixhdHRyczp0LmF0dHJzLGNoaWxkcmVuOnQuY2hpbGRyZW59LGQsdC5zdHlsZSksbz17dGFnOiJ0YWJsZSIsYXR0cnM6dC5hdHRycyxjaGlsZHJlbjpiLnN0eWxlKHt0YWc6InRoZWFkIixjaGlsZHJlbjpuLmhlYWRlcigpfSx1KX07Yi5zdHlsZShvLF8sZCxsJiZ7Ym9yZGVyQ29sbGFwc2U6bi5ib3JkZXJDb2xsYXBzZX0sYi5hc3NpZ24odC5zdHlsZSx7Ym9yZGVyOiJub25lIn0pKTt2YXIgYT17dGFnOiJkaXYiLGNoaWxkcmVuOm99O3JldHVybiBiLnN0eWxlKGEsYyksdC50YWc9ImRpdiIsdC5jaGlsZHJlbj1bcixhXSx0LmF0dHJzPXZvaWQgMCx0LnN0eWxlPW51bGwsYi5zdHlsZSh0LHtwb3NpdGlvbjoicmVsYXRpdmUifSkscn1mdW5jdGlvbiB0KGUpe2Zvcih2YXIgdD1lLmRhdGEsbj10LmJvZHkuY291bnQoZSkscj0idHJhbnNwYXJlbnQiIT09dC5ldmVuUm93QmFja2dyb3VuZENvbG9yLG89MCxhPVtdLGk9MDtuPmk7aSsrKXt2YXIgbD10LmJvZHkuZ2V0KGkpO2lmKGwpe3ZhciBfPSFyfHwoaStvKSUyP3Qucm93QmFja2dyb3VuZENvbG9yOnQuZXZlblJvd0JhY2tncm91bmRDb2xvcjsidHJhbnNwYXJlbnQiIT09XyYmYXNzaWduU3R5bGVQcm9wZXJ0aWVzKGwse2JhY2tncm91bmQ6X30pLGwua2V5PXQuYm9keS5rZXkoaSksYS5wdXNoKGwpfWVsc2UrK299cmV0dXJuIGIuc3R5bGUoe3RhZzoidGJvZHkiLGNoaWxkcmVuOmF9LHMpfWZ1bmN0aW9uIG4oZSl7dmFyIHQ9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxyPWIuZ2V0V2luZG93U2Nyb2xsKCk7cmV0dXJuW3QubGVmdCtyWzBdLW4uY2xpZW50TGVmdCx0LnRvcCtyWzFdLW4uY2xpZW50VG9wXX1mdW5jdGlvbiByKGUpe3JldHVybiBlP2Uuc2Nyb2xsSGVpZ2h0OjB9ZnVuY3Rpb24gbyhlLHQsbyl7Zm9yKHZhciBhPW8ucGFyZW50RWxlbWVudDthJiYoIkJPRFkiPT09YS50YWdOYW1lfHwhYi5pc1Njcm9sbGFibGUoYSlbMV0pOylhPWEucGFyZW50RWxlbWVudDt2YXIgaT1hPT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHxudWxsPT1hLGw9ZSxfPW8uZmlyc3RDaGlsZCxkPV8uZmlyc3RDaGlsZC5maXJzdENoaWxkLHU9aT8wOm4oYSlbMV0sYz1uKF8pLHM9Yi5nZXRXaW5kb3dTY3JvbGwoKSxmPXNbMV0rdSxwPShpP2Y6dSk+Y1sxXSxUPShpP2Y6MCk8Y1sxXStyKF8pLTIqcihkKS11LHg9by5jaGlsZE5vZGVzWzFdLG09eC5zdHlsZTtpZihwJiZUKXttLnZpc2liaWxpdHk9InZpc2libGUiO3ZhciBoPShpP3NbMV06dSktY1sxXTttLmxlZnQ9bC5kZWx0YUNvcnIrInB4IixtLnRvcD1oKyJweCI7dmFyIGc9eC5maXJzdENoaWxkLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZDtpZihkJiZkLmZpcnN0Q2hpbGQpe3ZhciBDPWcuZmlyc3RDaGlsZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LEI9ZC5maXJzdENoaWxkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQsdj1CLUM7bC5kZWx0YUNvcnIrPXYsTWF0aC5hYnModik+LjEmJihtLmxlZnQ9bC5kZWx0YUNvcnIrInB4Iik7Zm9yKHZhciB5PWIuaWVWZXJzaW9uKCk8PTksRj0wLEE9ZC5jaGlsZE5vZGVzLmxlbmd0aDtBPkY7RisrKXt2YXIgdyxSPWQuY2hpbGROb2Rlc1tGXTtpZih5KXt2YXIgUz1SLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3c9Uy5yaWdodC1TLmxlZnR9ZWxzZXt2YXIgaz13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShSLG51bGwpO3c9ImJvcmRlci1ib3giPT09ay5ib3hTaXppbmc/Ui5vZmZzZXRXaWR0aDpwYXJzZUZsb2F0KGsud2lkdGgpfXZhciBMPWcuY2hpbGROb2Rlc1tGXS5zdHlsZSx6PXcrInB4IjtMLm1pbldpZHRoPXosTC5tYXhXaWR0aD16LHkmJihMLmJveFNpemluZz0iYm9yZGVyLWJveCIpfX19ZWxzZSBtLnZpc2liaWxpdHk9ImhpZGRlbiJ9ZnVuY3Rpb24gYShlLHQsbixyLG8sYSxsKXtyZXR1cm57ZGF0YTp7aGVhZGVyOmUsYm9keTp0LGZvb3RlcjpuLHJvd0JhY2tncm91bmRDb2xvcjpyLGV2ZW5Sb3dCYWNrZ3JvdW5kQ29sb3I6byx1c2VTdGlja3lIZWFkZXI6bCYmITAsYm9yZGVyQ29sbGFwc2U6Z2V0RW51bVZhbHVlT3JEZWZhdWx0KGksYSwxKX0sY29tcG9uZW50OnB9fXZhciBpLGw9ITAsXz1iLnN0eWxlRGVmKHtib3JkZXJDb2xsYXBzZToic2VwYXJhdGUiLHdpZHRoOiIxMDAlIixib3hTaXppbmc6ImJvcmRlci1ib3gifSksZD1iLnN0eWxlRGVmKHtib3JkZXJTcGFjaW5nOjJ9KSx1PWIuc3R5bGVEZWYobnVsbCksYz1iLnN0eWxlRGVmKHtwb3NpdGlvbjoiYWJzb2x1dGUifSkscz1iLnN0eWxlRGVmKG51bGwpLGY9Yi5zdHlsZURlZihudWxsKTshZnVuY3Rpb24oZSl7ZVtlLmNvbGxhcHNlPTBdPSJjb2xsYXBzZSIsZVtlLnNlcGFyYXRlPTFdPSJzZXBhcmF0ZSIsZVtlLmluaGVyaXQ9Ml09ImluaGVyaXQifShpfHwoaT17fSkpO3ZhciBwPXtpZDoiQmFzaWNUYWJsZUNvbXBvbmVudCIsaW5pdDpmdW5jdGlvbihlKXtlLmRlbHRhQ29ycj0wLGUub25TY3JvbGw9ZnVuY3Rpb24oKXtlLmRhdGEudXNlU3RpY2t5SGVhZGVyJiZiLmludmFsaWRhdGUoKX19LHJlbmRlcjpmdW5jdGlvbihuLHIpe3ZhciBvPW4uZGF0YSxhPXI7ci50YWc9InRhYmxlIixyLmF0dHJzPWIuYXNzaWduKHIuYXR0cnMse2NlbGxzcGFjaW5nOjAsY2VsbHBhZGRpbmc6MH0pLHIuY2hpbGRyZW49W2Iuc3R5bGUoe3RhZzoidGhlYWQiLGNoaWxkcmVuOm8uaGVhZGVyKCl9LHUpLHQobiksYi5zdHlsZSh7dGFnOiJ0Zm9vdCIsY2hpbGRyZW46by5mb290ZXIoKX0sZildLG8udXNlU3RpY2t5SGVhZGVyJiYoYT1lKG4scikpLGIuc3R5bGUoYSxfLGwmJntib3JkZXJDb2xsYXBzZTpvLmJvcmRlckNvbGxhcHNlfSl9LHBvc3RJbml0RG9tOmZ1bmN0aW9uKGUsdCxuKXtiLmFkZE9uU2Nyb2xsKGUub25TY3JvbGwpLGUuZGF0YS51c2VTdGlja3lIZWFkZXImJm8oZSx0LG4pfSxwb3N0VXBkYXRlRG9tOmZ1bmN0aW9uKGUsdCxuKXtlLmRhdGEudXNlU3RpY2t5SGVhZGVyJiZvKGUsdCxuKX0sZGVzdHJveTpmdW5jdGlvbihlKXtiLnJlbW92ZU9uU2Nyb2xsKGUub25TY3JvbGwpfX07cmV0dXJuIGF9KCksVGV4dF8xMF8wXzExXzE3Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbcygiIix7Zm9udEZhbWlseToiQXJpYWwifSwiIiwiQ3VlbnRhIildfSxUZXh0XzEwXzBfMTFfMjFDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltzKCIiLHtmb250RmFtaWx5OiJBcmlhbCJ9LCIiLCJTdWN1cnNhbCIpXX0sVGV4dF8xMF8wXzExXzI2Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbcygiIix7Zm9udEZhbWlseToiQXJpYWwifSwiIiwiVGl0dWxhciIpXX0sVGV4dF8xMF8wXzExXzMwQ29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbcygiIix7Zm9udEZhbWlseToiQXJpYWwifSwiIiwiRmVjaGEiKV19LFRleHRfMTBfMF8xMV8zNUNvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIn0sIiIsIkNvbmRpY2lvbmVzIGRlIEVudHJlZ2EiKV19LFRleHRfMTBfMF8xMV8zN0NvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIn0sIiIsIlRy4W1pdGUiKV19LFRleHRfMTBfMF8xMV80MUNvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W2QoIiIse3RleHRBbGlnbjoicmlnaHQifSwiIixzKCIiLHtmb250RmFtaWx5OiJBcmlhbCJ9LCIiLCJM7W1pdGUgZGUgQ3LpZGl0byIpKV19LFRleHRfMTBfMF8xMV80NkNvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIn0sIiIsIkNJRiBCQUMiKV19LFRleHRfMTBfMF8xMV81MUNvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIn0sIiIsIkNJRiBDT00iKV19LFRleHRfMTBfMF8xMV81NkNvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIn0sIiIsIkZpYWRvciIpXX0sVGV4dF8xMF8wXzExXzU5Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbZCgiIix7dGV4dEFsaWduOiJjZW50ZXIifSwiIixzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFdlaWdodDoiYm9sZCIsdGV4dERlY29yYXRpb246InVuZGVybGluZSJ9LCIiLCJFbCBwcmVzZW50ZSBkb2N1bWVudG8gZm9ybWEgcGFydGUgaW50ZWdyYWwgZGVsIGNvbnRyYXRvIGRlIHRhcmpldGEgZGUgY3LpZGl0byBzdXNjcml0byBwb3IgZWwgZmlybWFudGUiKSldfSxUZXh0XzEwXzBfMTFfNjNDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltkKCIiLHt0ZXh0QWxpZ246ImNlbnRlciJ9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250V2VpZ2h0OiJib2xkIn0sIiIsIlB1bnRvcyBSZWxldmFudGVzIGRlIHN1IENvbnRyYXRvIGRlIFRhcmpldGEiKSldfSxUZXh0XzEwXzBfMTFfNjZDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltkKCIiLHt0ZXh0QWxpZ246ImNlbnRlciJ9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIkVzdGFkbyBkZSBDdWVudGEiKSldfSxUZXh0XzEwXzBfMTFfNzFDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltkKCIiLHt0ZXh0QWxpZ246ImNlbnRlciJ9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIlRhc2EgZGUgSW50ZXLpcyIpKV19LFRleHRfMTBfMF8xMV83NkNvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W2QoIiIse3RleHRBbGlnbjoiY2VudGVyIn0sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiQ2FyZ28gcG9yIHBhZ28gdGFyZO1vIikpXX0sVGV4dF8xMF8wXzExXzgxQ29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbZCgiIix7dGV4dEFsaWduOiJjZW50ZXIifSwiIixzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJDYXJnbyBwb3Igc29icmVnaXJvIikpXX0sVGV4dF8xMF8wXzExXzg2Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbZCgiIix7dGV4dEFsaWduOiJjZW50ZXIifSwiIixzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJQYWdvIFNJTlBFIikpXX0sVGV4dF8xMF8wXzExXzg4Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbcygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiQXV0b3Jpem8gYSBDUkVET01BVElDIGEgZG9taWNpbGlhciBtaSBjdWVudGEgY2xpZW50ZSBtb25lZGFfX19fX18gIyBjdWVudGEgY2xpZW50ZSBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fZGVsIEJhbmNvIF9fX19fX19fX19fX19fX19fX19fX19fX19fX1BhcmEgZWwgcGFnbyBkZSBlc3RhIHRhcmpldGEgZGUgY3LpZGl0by4gKlBhcmEgZWZlY3RvcyBkZSBlc3RhIGF1dG9yaXphY2nzbiBlbCBj82RpZ28gZGUgc2VydmljaW8gc2Vy4SBlbCBu+m1lcm8gZGUgY3VlbnRhIGFxde0gaW5kaWNhZGEuIildfSxUZXh0XzEwXzBfMTFfOTFDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltkKCIiLHt0ZXh0QWxpZ246ImNlbnRlciJ9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIkNvbWlzafNuIHBvciByZXRpcm8gZW4gZWZlY3Rpdm8iKSldfSxUZXh0XzEwXzBfMTFfOTNDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJMYSBjb21pc2nzbiBwb3IgcmV0aXJvIGVuIGVmZWN0aXZvIGNvcnJlc3BvbmRlIGEgdW4gNSUuIFNpZW5kbyBzdSBjb2JybyBt7W5pbW8gZGUgJDIuIEVuIGxhIHRhcmpldGEgUHltZSwgc2UgY29icmFy4SB1bmEgY29taXNp824gcG9yIGRlc2VtYm9sc28gZGVsIDIlIildfSxUZXh0XzEwXzBfMTFfOTZDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltkKCIiLHt0ZXh0QWxpZ246ImNlbnRlciJ9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIkNhcmdvIHBvciBjaGVxdWUgZGV2dWVsdG8iKSldfSxUZXh0XzEwXzBfMTFfOThDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJFcyB1bmEgY29taXNp824gcXVlIHNlIGdlbmVyYSBjdWFuZG8gZWwgY2hlcXVlIHJlY2liaWRvIGhhIHNpZG8gZGV2dWVsdG8gcG9yIGVsIGJhbmNvIGVtaXNvciB5IGxhIGNvbWlzafNuIHB1ZWRlIGxsZWdhciBhIHNlciBkZWwgMS4yNSUgc29icmUgZWwgbW9udG8gZGVsIGNoZXF1ZS4iKV19LFRleHRfMTBfMF8xMV8xMDFDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltkKCIiLHt0ZXh0QWxpZ246ImNlbnRlciJ9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIkNhcmdvIEFkbWluaXN0cmFjafNuIGRlIEN1ZW50YSIpKV19LFRleHRfMTBfMF8xMV8xMDNDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJFcyB1bmEgY3VvdGEgbWVuc3VhbCBxdWUgc2UgY29icmEgcG9yIGxvcyBzZXJ2aWNpb3MgYnJpbmRhZG9zIHkgdG9kYSBsYSBwbGF0YWZvcm1hIGVzdGFibGVjaWRhIHBvciBlbCBFbWlzb3IgcGFyYSBsYSBBdGVuY2nzbiBkZSBsb3MgVGFyamV0YWhhYmllbnRlcyB5IHB1ZWRlIHZhcmlhciBkZXBlbmRpZW5kbyBkZWwgcGxhbiBkZSBsZWFsdGFkIGFsIGN1YWwgZXN06SBhZmlsaWFkby4gUHVlZGUgY29uc3VsdGFyIGVsIHF1ZSBjb3JyZXNwb25kZSBhIHN1IFRhcmpldGEgZW4gc3UgY29udHJhdG8uIildfSxUZXh0XzEwXzBfMTFfMTA2Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbZCgiIix7dGV4dEFsaWduOiJjZW50ZXIifSwiIixzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJUYXNhIENlcm8geSBQcm9ncmFtYXMgZGUgbGVhbHRhZCIpKV19LFRleHRfMTBfMF8xMV8xMDhDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJMb3MgY2FtYmlvcyBxdWUgc2UgcmVhbGljZW4gc29icmUgZXN0b3Mgc2VydmljaW9zLCBzZXLhbiBjb211bmljYWRvcyBhIHRyYXbpcyBkZSBudWVzdHJhIHDhZ2luYSB3ZWIgIikscygiIix7Y29sb3I6IiMwMDAwZmYiLGZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIix0ZXh0RGVjb3JhdGlvbjoidW5kZXJsaW5lIn0sIiIsInd3dy5iYWNjcmVkb21hdGljLmNvbSIpXX0sVGV4dF8xMF8wXzExXzExMUNvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W2QoIiIse3RleHRBbGlnbjoiY2VudGVyIn0sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiUm9ibyBvIGV4dHJhdu1vIGRlIHN1IHRhcmpldGEvIERldGVyaW9ybyIpKV19LFRleHRfMTBfMF8xMV8xMTZDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltkKCIiLHt0ZXh0QWxpZ246ImNlbnRlciJ9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIkNvbWlzafNuIHBvciBjb21wcmFzIGVuIGVsIGV4dGVyaW9yIikpXX0sVGV4dF8xMF8wXzExXzEyMUNvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W2QoIiIse3RleHRBbGlnbjoiY2VudGVyIn0sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiQ2FyZ28gcG9yIGluYWN0aXZpZGFkIikpXX0sVGV4dF8xMF8wXzExXzEyM0NvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIkVzIHVuIGNvYnJvIGRlIHF1ZSBzZSByZWFsaXphIGN1YW5kbyBsYSB0YXJqZXRhIHByZXNlbnRhIGluYWN0aXZpZGFkIGR1cmFudGUgMTEgbWVzZXMgY29uc2VjdXRpdm9zLCBlbCBtb250byBlcyBkZSAkNTAuIFBhcmEgZXZpdGFyIGVzdGUgY29icm8gZGViZSBjdW1wbGlyIGNvbiBsYXMgY29uZGljaW9uZXMgcXVlIHNlIGRldGVybWluYW4gZW4gZWwgY29udHJhdG8uIildfSxUZXh0XzEwXzBfMTFfMTI2Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbZCgiIix7dGV4dEFsaWduOiJjZW50ZXIifSwiIixzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJTZWd1cm8gQW1lcmljYW4gRXhwcmVzcyIpKV19LFRleHRfMTBfMF8xMV8xMjhDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJMYXMgdGFyamV0YXMgYmFqbyBsYSBtYXJjYSBBbWVyaWNhbiBFeHByZXNzIGN1ZW50YW4gY29uIHVuIHNlZ3VybyBwcm9waW8gZGUgbGEgbWFyY2E7IGxhIGRvY3VtZW50YWNp824gY29udHJhY3R1YWwgeSBsYSBub3RhIHTpY25pY2EgcXVlIGludGVncmFuIGVzdGUgcHJvZHVjdG8sIGVzdOFuIHJlZ2lzdHJhZG9zIGFudGUgbGEgU3VwZXJpbnRlbmRlbmNpYSBHZW5lcmFsIGRlIFNlZ3Vyb3MgZGUgY29uZm9ybWlkYWQgY29uIGxvIGRpc3B1ZXN0byBlbiBlbCBBcnTtY3VsbzI5LCBpbmNpc28gZGUgbGEgTGV5IFJlZ3VsYWRvcmEgZGVsIE1lcmNhZG8gZGUgU2VndXJvcyBMZXkgODY1MywgYmFqbyBlbCByZWdpc3RybyBu+m1lcm8gRzA3LTQ2LUEwNS02MzggZGUgZmVjaGEgZGUgUmVnaXN0cm8gMjYgZGUgSnVuaW8gZGVsIDIwMTUuUGFyYSBpbmZvcm1hY2nzbiBvIGNvbnN1bHRhIGRlIGxhcyBjb25kaWNpb25lcyBnZW5lcmFsZXMgZGUg6XN0YSBw82xpemEgcHVlZGUgY29uc3VsdGFyIGVuIGxhIHDhZ2luYSB3ZWI6ICIpLHMoIiIse2NvbG9yOiIjMDAwMGZmIixmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSIsdGV4dERlY29yYXRpb246InVuZGVybGluZSJ9LCIiLCJodHRwOi8vd3d3LnN1Z2VzZS5maS5jci9wb2xpemFzX3NlcnZpY2lvcy9nZW5lcmFsZXMvRzA3LTQ2LUEwNS02MzhfU0VHVVJPX1ZJQUpFUk9fQU1FWC5wZGYiKV19LFRleHRfMTBfMF8xMV8xMzFDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltkKCIiLHt0ZXh0QWxpZ246ImNlbnRlciJ9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIkN1ZW50YXMgQmFuY2FyaWFzIikpXX0sVGV4dF8xMF8wXzExXzEzNENvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNTAlIixmb250V2VpZ2h0OiJib2xkIn0sIiIsIkxhIGztbmVhIGRlIGNy6WRpdG8gZXMgb3RvcmdhZGEgcG9yIENSRURPTUFUSUMgZGUgQ29zdGEgUmljYSwgUy5BLiBTaSBleGlzdGllcmEgYWxndW5hIGRpZmVyZW5jaWEgZW50cmUgZWwgcHJlc2VudGUgZG9jdW1lbnRvIHkgZWwgY29udHJhdG8sIHByZXZhbGVjZXLhIGVzdGUg+mx0aW1vLiIpXX0sQmFzaWNUYWJsZUNlbGxfMTFfMF8wPWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUoZSxuLHIsYSxpKXtyZXR1cm57ZGF0YTp7Y29udGVudDplLGNvbHNwYW46bixyb3dzcGFuOnIsd2lkdGg6YSx2ZXJ0aWNhbEFsaWduOmdldEVudW1WYWx1ZU9yRGVmYXVsdCh0LGksMSl9LGNvbXBvbmVudDpvfX12YXIgdCxuPSEwLHI9Yi5zdHlsZURlZih7dmVydGljYWxBbGlnbjoibWlkZGxlIn0pOyFmdW5jdGlvbihlKXtlW2UudG9wPTBdPSJ0b3AiLGVbZS5taWRkbGU9MV09Im1pZGRsZSIsZVtlLmJvdHRvbT0yXT0iYm90dG9tIn0odHx8KHQ9e30pKTt2YXIgbz17aWQ6IlRhYmxlQ2VsbENvbXBvbmVudCIscmVuZGVyOmZ1bmN0aW9uKGUsdCl7dmFyIG89ZS5kYXRhO3QudGFnPSJ0ZCIsby5jb2xzcGFuPjEmJih0LmF0dHJzPWIuYXNzaWduKHQuYXR0cnMse2NvbHNwYW46by5jb2xzcGFufSkpLG8ucm93c3Bhbj4xJiYodC5hdHRycz1iLmFzc2lnbih0LmF0dHJzLHtyb3dzcGFuOm8ucm93c3Bhbn0pKSx0LmNoaWxkcmVuPW8uY29udGVudCgpLGIuc3R5bGUodCxyLG4mJnt3aWR0aDpvLndpZHRoLHZlcnRpY2FsQWxpZ246by52ZXJ0aWNhbEFsaWdufSl9fTtyZXR1cm4gZX0oKSxUZXh0XzEwXzBfMTFfMTM5Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbcygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRXZWlnaHQ6ImJvbGQifSwiIiwiRmlybWEgZGUgYWNlcHRhY2nzbiBkZWwgY2xpZW50ZSBhbCBEb3JzbyBkZSBlc3RlIGRvY3VtZW50byIpXX0sVGV4dF8xMF8wXzExXzE0NUNvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250V2VpZ2h0OiJib2xkIn0sIiIsIkNMIDMtIENPTkZJREVOQ0lBTCIpXX0sVGV4dF8xMF8wXzExXzE0N0NvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W2QoIiIse3RleHRBbGlnbjoicmlnaHQifSwiIixzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJQ4WdpbmEgMiBkZSAyIikpXX0sVGV4dF8xMF8wXzExXzE0OENvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W2QoIiIse3RleHRBbGlnbjoiY2VudGVyIn0sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiIxNTAlIn0sIiIsIkxpc3RhZG8gZGUgVGFyamV0YXMiKSldfSxUZXh0XzEwXzBfMTFfMTUyQ29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbcygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiU3VjdXJzYWwiKV19LFRleHRfMTBfMF8xMV8xNTdDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJDdWVudGEiKV19LFRleHRfMTBfMF8xMV8xNjJDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJUcmFtaXRlIildfSxUZXh0XzEwXzBfMTFfMTY3Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbcygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiVGl0dWxhciIpXX0sVGV4dF8xMF8wXzExXzE3MkNvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIkNJRiBCQUMiKV19LFRleHRfMTBfMF8xMV8xNzdDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJDSUYgQ09NIildfSxUZXh0XzEwXzBfMTFfMTg0Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbcygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiQkFDIENyZWRvbWF0aWMgbGUgaW5mb3JtYSBxdWUgc3UgdGFyamV0YSBkZSBjculkaXRvIHNlIGFjdGl2YXLhIGVuIDMgZO1hcyBo4WJpbGVzIGRlbnRybyBkZWwg4XJlYSBtZXRyb3BvbGl0YW5hIHkgNCBk7WFzIGVuIHpvbmEgUnVyYWwsIGRlIGxvIGNvbnRyYXJpbyBzZSBsZSBlc3RhcuEgaW5mb3JtYW5kby4iKV19LFRleHRfMTBfMF8xMV8xODlDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltkKCIiLHt0ZXh0QWxpZ246ImNlbnRlciJ9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNTAlIn0sIiIsIlBhcmEgQmFjIENyZWRvbWF0aWMgZXMgbXV5IGltcG9ydGFudGVzIGNvbGFib3JhciBjb24gZWwgbWVkaW8gYW1iaWVudGUgcG9yIGxvIHF1ZSBkZXNlYW1vcyBlbnZpYXJsZSBwb3IgZS1tYWlsIHN1IGZvbGxldG8gZXhwbGljYXRpdm8sICIpKSxkKCIiLHt0ZXh0QWxpZ246ImNlbnRlciJ9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNTAlIn0sIiIsIkFkZW3hcyBwdWVkZSBlbmNvbnRyYXIgZW4gbnVlc3RyYSBw4WdpbmEgd2ViICIpKSxkKCIiLHt0ZXh0QWxpZ246ImNlbnRlciJ9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNTAlIn0sIiIsIkZvbGxldG8gZXhwbGljYXRpdm8gQ09NOiBodHRwczovL2lzc3V1LmNvbS9jcmVkb21hdGljL2RvY3MvY29tcGFnaW5hY2lvbmxlY3R1cmFkaWdpdGFsZm9sbGV0b2U/ZT0xOTUwMDEyNy8zMTU4NzcxMiCgIikpLGQoIiIse3RleHRBbGlnbjoiY2VudGVyIn0sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI1MCUifSwiIiwiRm9sbGV0byBleHBsaWNhdGl2byBCQUM6IGh0dHBzOi8vd3d3LmJhY2NyZWRvbWF0aWMuY29tL3NpdGVzL2RlZmF1bHQvZmlsZXMvY3JfZm9sbGV0b3NfZXhwbGljYXRpdm9zX2JhbmNhX3BlcnNvbmFzXzAyMDUyMDE3LnBkZiCgIikpLGQoIiIse3RleHRBbGlnbjoiY2VudGVyIn0sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI1MCUifSwiIiwiv0Rlc2VhIHF1ZSBsZSBlbnZpZW1vcyBudWVzdHJvIGZvbGxldG8gZXhwbGljYXRpdm8gcG9yIGNvcnJlbyBlbGVjdHLzbmljbz8gU0kgoCIpLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNTAlIix0ZXh0RGVjb3JhdGlvbjoidW5kZXJsaW5lIn0sIiIsIlgiKSxzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6IjUwJSJ9LCIiLCIgoE5PIF8iKSldfSxUZXh0XzEwXzBfMTFfMTk0Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbcygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiU2VydmljaW9zL1Byb2R1Y3RvcyBSZWNpYmlkb3MiKV19LFRleHRfMTBfMF8xMV8xOTZDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJTSSIpXX0sVGV4dF8xMF8wXzExXzE5OENvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIk5PIildfSxUZXh0XzEwXzBfMTFfMjAwQ29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbcygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiVmVyc2nzbiIpXX0sVGV4dF8xMF8wXzExXzIwM0NvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W2QoIiIse3RleHRBbGlnbjoicmlnaHQifSwiIixzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCIgQ29udHJhdG8gQ29tcGxldG8geSBGb2xsZXRvIEV4b2xpY2F0aXZvIGRlIFRhcmpldGEgZGUgQ3LpZGl0bzoiKSldfSxUZXh0XzEwXzBfMTFfMjA1Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbIqAiXX0sVGV4dF8xMF8wXzExXzIwN0NvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46WyKgIl19LFRleHRfMTBfMF8xMV8yMDlDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOlsioCJdfSxUZXh0XzEwXzBfMTFfMjEyQ29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbZCgiIix7dGV4dEFsaWduOiJyaWdodCJ9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIkZvbGxldG8gRXhwbGljYXRpdm8gZGUgQ3VlbnRhIEJhbmNhcmlhOiIpKV19LFRleHRfMTBfMF8xMV8yMTRDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOlsioCJdfSxUZXh0XzEwXzBfMTFfMjE2Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbIqAiXX0sVGV4dF8xMF8wXzExXzIxOENvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46WyKgIl19LFRleHRfMTBfMF8xMV8yMjFDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltkKCIiLHt0ZXh0QWxpZ246InJpZ2h0In0sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiSG9qYSBkZSBGb3JtYWxpemFjafNuOiIpKV19LFRleHRfMTBfMF8xMV8yMjNDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOlsioCJdfSxUZXh0XzEwXzBfMTFfMjI1Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbIqAiXX0sVGV4dF8xMF8wXzExXzIyN0NvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46WyKgIl19LFRleHRfMTBfMF8xMV8yMzBDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltkKCIiLHt0ZXh0QWxpZ246InJpZ2h0In0sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiQ/NkaWdvIEJhYzoiKSldfSxUZXh0XzEwXzBfMTFfMjMyQ29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbIqAiXX0sVGV4dF8xMF8wXzExXzIzNENvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46WyKgIl19LFRleHRfMTBfMF8xMV8yMzZDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOlsioCJdfSxUZXh0XzEwXzBfMTFfMjM5Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbZCgiIix7dGV4dEFsaWduOiJyaWdodCJ9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIlBJTiBDYWplcm8gVGFyamV0YSBkZSBDculkaXRvOiIpKV19LFRleHRfMTBfMF8xMV8yNDFDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOlsioCJdfSxUZXh0XzEwXzBfMTFfMjQzQ29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbIqAiXX0sVGV4dF8xMF8wXzExXzI0NUNvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46WyKgIl19LFRleHRfMTBfMF8xMV8yNDhDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltkKCIiLHt0ZXh0QWxpZ246InJpZ2h0In0sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiQkFDIFRva2VuOiIpKV19LFRleHRfMTBfMF8xMV8yNTBDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOlsioCJdfSxUZXh0XzEwXzBfMTFfMjUyQ29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbIqAiXX0sVGV4dF8xMF8wXzExXzI1NENvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46WyKgIl19LFRleHRfMTBfMF8xMV8yNTdDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltkKCIiLHt0ZXh0QWxpZ246InJpZ2h0In0sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUifSwiIiwiQ2xhdmUgQmFuY2FtYXRpYzoiKSldfSxUZXh0XzEwXzBfMTFfMjU5Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbIqAiXX0sVGV4dF8xMF8wXzExXzI2MUNvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46WyKgIl19LFRleHRfMTBfMF8xMV8yNjNDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOlsioCJdfSxUZXh0XzEwXzBfMTFfMjY2Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbZCgiIix7dGV4dEFsaWduOiJyaWdodCJ9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIlVzdWFyaW8geSBjb250cmFzZfFhIFN1Y3Vyc2FsIEVsZWN0cm9uaWNhOiIpKV19LFRleHRfMTBfMF8xMV8yNjhDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOlsioCJdfSxUZXh0XzEwXzBfMTFfMjcwQ29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbIqAiXX0sVGV4dF8xMF8wXzExXzI3MkNvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46WyKgIl19LFRleHRfMTBfMF8xMV8yNzdDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFNpemU6Ijc1JSJ9LCIiLCJBbm90ZSBsb3Mg+mx0aW1vcyA0IGTtZ2l0b3MgZGUgbGFzIHRhcmpldGFzIGRlIGNy6WRpdG8gcmVjaWJpZGFzOiIpXX0sVGV4dF8xMF8wXzExXzI4MENvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIjEuIildfSxUZXh0XzEwXzBfMTFfMjgyQ29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbIqAiXX0sVGV4dF8xMF8wXzExXzI4NkNvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIjIuIildfSxUZXh0XzEwXzBfMTFfMjg4Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbIqAiXX0sVGV4dF8xMF8wXzExXzI5MkNvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIjMuIildfSxUZXh0XzEwXzBfMTFfMjk0Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbIqAiXX0sVGV4dF8xMF8wXzExXzI5OENvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIjQuIildfSxUZXh0XzEwXzBfMTFfMzAwQ29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbIqAiXX0sVGV4dF8xMF8wXzExXzMwNENvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIjUuIildfSxUZXh0XzEwXzBfMTFfMzA2Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbIqAiXX0sVGV4dF8xMF8wXzExXzMxMENvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W3MoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIn0sIiIsIjYuIildfSxUZXh0XzEwXzBfMTFfMzEyQ29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbIqAiXX0sTF9WZXJ0aWNhbFN0YWNrXzExXzBfMT1mdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKGUpe2Zvcih2YXIgdD1lLmRhdGEsbj1bXSxpPXQuY29udGVudC5jb3VudChlKSxsPXBhcnNlRmxvYXQodC5zZXBhcmF0b3JIZWlnaHQpPjB8fCFyLF89MDtpPl87XysrKWwmJl8+MCYmbi5wdXNoKGIuc3R5bGUoe3RhZzoiZGl2In0sbyxyJiZ7aGVpZ2h0OnQuc2VwYXJhdG9ySGVpZ2h0LGJhY2tncm91bmQ6dC5zZXBhcmF0b3JDb2xvcn0pKSxuLnB1c2goYi5zdHlsZShkaXZXcmFwV2l0aEtleSh0LmNvbnRlbnQuZ2V0KF8pLHQuY29udGVudC5rZXkoXykpLGEpKTtyZXR1cm4gbn1mdW5jdGlvbiB0KGUsdCxuKXtyZXR1cm57ZGF0YTp7Y29udGVudDplLHNlcGFyYXRvckNvbG9yOnQsc2VwYXJhdG9ySGVpZ2h0Om59LGNvbXBvbmVudDppfX12YXIgbj1iLnN0eWxlRGVmKHt9KSxyPSEwLG89Yi5zdHlsZURlZih7aGVpZ2h0OjAsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQifSksYT1iLnN0eWxlRGVmKG51bGwpLGk9e2lkOiJWZXJ0aWNhbFN0YWNrQ29tcG9uZW50IixyZW5kZXI6ZnVuY3Rpb24odCxyKXtyLnRhZz0iZGl2IixyLmNoaWxkcmVuPWUodCksYi5zdHlsZShyLG4pfX07cmV0dXJuIHR9KCksTF9QYWlyXzEwXzRfNz1mdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKGUsdCxuKXt2YXIgcj1lLmRhdGEsXz1udWxsPT1yLmNvbnRlbnRMZWZ0KCk7cmV0dXJuIGIuc3R5bGUoZGl2V3JhcChyLmNvbnRlbnRMZWZ0KCkpLG8saSxhJiYhdCYme3dpZHRoOnIubFBhaXJXaWR0aH0sIXQmJlt7bWluSGVpZ2h0OjF9LF8mJnt2aXNpYmlsaXR5OiJoaWRkZW4ifSxyLmxQYWlyQWxpZ25SaWdodElmTm90V3JhcHBlZCYme3RleHRBbGlnbjoicmlnaHQifV0sbiYmW2wsIXQmJnIubFBhaXJBbGlnblJpZ2h0SWZOb3RXcmFwcGVkJiZ7dGV4dEFsaWduOiJsZWZ0In1dLHQmJmQsZS5pc0ZpcmVmb3gmJiF0JiZ7ZmxleFNocmluazowfSl9ZnVuY3Rpb24gdChlLHQpe3JldHVybiBiLnN0eWxlKGRpdldyYXAoZS5kYXRhLmNvbnRlbnRSaWdodCgpKSxvLF8sdCYmZCxlLmlzRmlyZWZveCYmIXQmJntmbGV4U2hyaW5rOjAsZmxleDoxfSl9ZnVuY3Rpb24gbihlLHQsbixyLG8sYSxpLGwsXyxkKXtyZXR1cm57ZGF0YTp7Y29udGVudExlZnQ6ZSxjb250ZW50UmlnaHQ6dCxsUGFpcldpZHRoOm4sd3JhcE9uTW9iaWxlUG9ydHJhaXQ6byx3cmFwT25Nb2JpbGVMYW5kc2NhcGU6YSx3cmFwT25UYWJsZXRQb3J0cmFpdDppLHdyYXBPblRhYmxldExhbmRzY2FwZTpsLHdyYXBPbkRlc2t0b3A6Xyx3cmFwT25MYXJnZURlc2t0b3A6ZCxsUGFpckFsaWduUmlnaHRJZk5vdFdyYXBwZWQ6cn0sY29tcG9uZW50OnV9fXZhciByPWIuc3R5bGVEZWYoe2Rpc3BsYXk6ImlubGluZS1ibG9jayIsd2lkdGg6IjEwMCUiLGJveFNpemluZzoiYm9yZGVyLWJveCIsdmVydGljYWxBbGlnbjoidG9wIixvdmVyZmxvdzoiaGlkZGVuIn0pLG89Yi5zdHlsZURlZih7b3ZlcmZsb3c6ImhpZGRlbiJ9KSxhPSEwLGk9Yi5zdHlsZURlZih7d2lkdGg6IjUwJSIsY3NzRmxvYXQ6ImxlZnQifSksbD1iLnN0eWxlRGVmKHtjc3NGbG9hdDoicmlnaHQifSksXz1iLnN0eWxlRGVmKG51bGwpLGQ9Yi5zdHlsZURlZih7d2lkdGg6ImF1dG8iLGNzc0Zsb2F0OiJub25lIn0pLHU9e2lkOiJMYXlvdXRQYWlyR3JpZENvbXBvbmVudCIsaW5pdDpmdW5jdGlvbihlKXtlLmlzRmlyZWZveD0iSW5zdGFsbFRyaWdnZXIiaW4gd2luZG93fSxyZW5kZXI6ZnVuY3Rpb24obixvKXt2YXIgYT1uLmRhdGEsaT1iLmdldE1lZGlhKCksbD1pLmRldmljZUNhdGVnb3J5LF89aS5wb3J0cmFpdCxkPTA9PT1sJiZfJiZhLndyYXBPbk1vYmlsZVBvcnRyYWl0fHwwPT09bCYmIV8mJmEud3JhcE9uTW9iaWxlTGFuZHNjYXBlfHwxPT09bCYmXyYmYS53cmFwT25UYWJsZXRQb3J0cmFpdHx8MT09PWwmJiFfJiZhLndyYXBPblRhYmxldExhbmRzY2FwZXx8Mj09PWwmJmEud3JhcE9uRGVza3RvcHx8Mz09PWwmJmEud3JhcE9uTGFyZ2VEZXNrdG9wO28udGFnPSJkaXYiLG8uY2hpbGRyZW49W2UobixkLGlzUnRsKG4pKSx0KG4sZCldLGIuc3R5bGUobyxyLG4uaXNGaXJlZm94JiYhZCYme2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImZsZXgtc3RhcnQifSl9fTtyZXR1cm4gbn0oKSxUZXh0XzEwXzBfMTFfMzE0Q29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbZCgiIix7dGV4dEFsaWduOiJjZW50ZXIifSwiIixzKCIiLHtmb250RmFtaWx5OiJBcmlhbCIsZm9udFdlaWdodDoiYm9sZCJ9LCIiLCJCQUMgQ1JFRE9NQVRJQyIpKV19LFRleHRfMTBfMF8xMV8zMThDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltkKCIiLHt0ZXh0QWxpZ246ImNlbnRlciJ9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIixmb250V2VpZ2h0OiJib2xkIn0sIiIsIkZJUk1BIERFTCBUSVRVTEFSIE8gQVBPREVSQURPIEdFTkVSQUxJU0lNTyIpKV19LFRleHRfMTBfMF8xMV8zMjFDb25zdD17Y29tcG9uZW50OntzaG91bGRDaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LGNoaWxkcmVuOltkKCIiLHt9LCIiLCKgIiksZCgiIix7fSwiIiwioCIpLGQoIiIse30sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUiLGZvbnRXZWlnaHQ6ImJvbGQifSwiIiwiRklSTUEgREVMIFRJVFVMQVI6IikpLGQoIiIse30sIiIsIqAiKSxkKCIiLHt9LCIiLCKgIildfSxUZXh0XzEwXzBfMTFfMzIyQ29uc3Q9e2NvbXBvbmVudDp7c2hvdWxkQ2hhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxjaGlsZHJlbjpbZCgiIix7fSwiIiwioCIpLGQoIiIse30sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI1MCUiLGZvbnRXZWlnaHQ6ImJvbGQifSwiIiwiIKCgoF9fX19fX19fX19fX19fX19fX18goKCgoKCgoKCgoKCgoF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyIpKSxkKCIiLHt9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNTAlIixmb250V2VpZ2h0OiJib2xkIn0sIiIsIiCgoKCgoKCgoKCgoKCgRkVDSEEgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBOT01CUkUgREVMIEVKRUNVVElWTyBERSBWRU5UQVMiKSksZCgiIix7fSwiIiwioCIpXX0sVGV4dF8xMF8wXzExXzMyM0NvbnN0PXtjb21wb25lbnQ6e3Nob3VsZENoYW5nZTpmdW5jdGlvbigpe3JldHVybiExfX0sY2hpbGRyZW46W2QoIiIse30sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUiLGZvbnRXZWlnaHQ6ImJvbGQifSwiIiwiUHVlZGUgYWNjZWRlciBudWVzdHJvcyBjb250cmF0b3MgZGUgYXBlcnR1cmEgZGUgbO1uZWEgZGUgY3LpZGl0byBkZSB0YXJqZXRhcyBkZSBtYW5lcmEgZGlnaXRhbCBlbiBsYXMgc2lndWllbnRlcyBkaXJlY2Npb25lczogIikpLGQoIiIse30sIiIscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUiLGZvbnRXZWlnaHQ6ImJvbGQifSwiIiwiQ2xhc2ljb3MgaHR0cDovL3d3dy5iYWNjcmVkb21hdGljLmNvbS9jb3N0YXJpY2EvcmVnbGFzL2NvbnRyYXRvdGpjbC5wZGYgoCIpKSxkKCIiLHt9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIixmb250V2VpZ2h0OiJib2xkIn0sIiIsIkRvcmFkb3MvUGxhdGlub3MgIikscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUiLGZvbnRXZWlnaHQ6ImJvbGQiLHRleHREZWNvcmF0aW9uOiJ1bmRlcmxpbmUifSwiIiwiaHR0cDovL3d3dy5iYWNjcmVkb21hdGljLmNvbS9jb3N0YXJpY2EvcmVnbGFzL2NvbnRyYXRvdGpkby5wZGYgoCIpKSxkKCIiLHt9LCIiLHMoIiIse2ZvbnRGYW1pbHk6IkFyaWFsIixmb250U2l6ZToiNzUlIixmb250V2VpZ2h0OiJib2xkIn0sIiIsIkJsdWUgIikscygiIix7Zm9udEZhbWlseToiQXJpYWwiLGZvbnRTaXplOiI3NSUiLGZvbnRXZWlnaHQ6ImJvbGQiLHRleHREZWNvcmF0aW9uOiJ1bmRlcmxpbmUifSwiIiwiaHR0cDovL3d3dy5iYWNjcmVkb21hdGljLmNvbS9zaXRlcy9kZWZhdWx0L2ZpbGVzL2NyX2NvbV9jb250cmF0b190YXJqZXRhX2JsdWVfYW1lcmljYW5fZXhwcmVzc19jcmVkb21hdGljXzAwMDQ2MzhfdjEucGRmICIpKV19LEJhc2VfMTFfMF8zPWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUoZSx0LHIsbyxhLGksbCxfLGQpe3JldHVybntkYXRhOntjb250ZW50OmUsY29sb3I6dCxmb250RmFtaWx5OnIsZm9udFNpemU6byxodG1sQmFja2dyb3VuZDphLGh0bWxNb2JpbGVCYWNrZ3JvdW5kOmksYm9keUJhY2tncm91bmQ6bCxib2R5TWF4V2lkdGg6XyxmdWxsc2NyZWVuOmR9LGNvbXBvbmVudDpufX12YXIgdD1iLnN0eWxlRGVmKG51bGwpLG49e2lkOiJCYXNlQ29tcG9uZW50Iixpbml0OmZ1bmN0aW9uKGUsdCl7aWYoZS5kYXRhLmZ1bGxzY3JlZW4pe3ZhciBuPXQucGFyZW50O2lmKG4mJm4uZGF0YSYmbi5kYXRhLmlzRnJhbWUpe3ZhciByPWIuZ2V0RG9tTm9kZShuKTtyJiYoZS5wYXJlbnRET009cixyLnN0eWxlLmJveFNpemluZz0iYm9yZGVyLWJveCIsci5zdHlsZS53ZWJraXRCb3hTaXppbmc9ImJvcmRlci1ib3giKX19fSxyZW5kZXI6ZnVuY3Rpb24oZSxuKXt2YXIgcj1lLmRhdGEsbz1iLmdldE1lZGlhKCksYT0iaHRtbHtiYWNrZ3JvdW5kOiIrKDA9PT1vLmRldmljZUNhdGVnb3J5P3IuaHRtbE1vYmlsZUJhY2tncm91bmQ6ci5odG1sQmFja2dyb3VuZCkrIn1ib2R5LHRleHRhcmVhLGlucHV0LHNlbGVjdHtmb250LWZhbWlseToiK3IuZm9udEZhbWlseSsiO2NvbG9yOiIrci5jb2xvcisiO2ZvbnQtc2l6ZToiK3IuZm9udFNpemUrIn1ib2R5e2JhY2tncm91bmQ6IityLmJvZHlCYWNrZ3JvdW5kKyI7bWF4LXdpZHRoOiIrci5ib2R5TWF4V2lkdGgrIn0iO2lmKGUuZGF0YS5mdWxsc2NyZWVuJiZudWxsIT1lLnBhcmVudERPTSYmKGUucGFyZW50RE9NLnN0eWxlLmhlaWdodD1vLmhlaWdodCsicHgiKSxlLmJhc2VTdHlsZSE9PWEpe3ZhciBpPWRvY3VtZW50LmhlYWR8fGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0sbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2wudHlwZT0idGV4dC9jc3MiLGwuc3R5bGVTaGVldD9sLnN0eWxlU2hlZXQuY3NzVGV4dD1hOmwuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoYSkpLGUuY3VycmVudFN0eWxlRWxlbWVudD9pLnJlcGxhY2VDaGlsZChsLGUuY3VycmVudFN0eWxlRWxlbWVudCk6aS5hcHBlbmRDaGlsZChsKSxlLmN1cnJlbnRTdHlsZUVsZW1lbnQ9bCxlLmJhc2VTdHlsZT1hfW4udGFnPSJkaXYiLG4uY2hpbGRyZW49ci5jb250ZW50KCksYi5zdHlsZShuLHQsZS5kYXRhLmZ1bGxzY3JlZW4mJntib3hTaXppbmc6ImJvcmRlci1ib3giLGhlaWdodDplLnBhcmVudERPTT8iMTAwJSI6by5oZWlnaHR9KX0scG9zdEluaXREb206ZnVuY3Rpb24oZSx0LG4pe3RoaXMucG9zdFVwZGF0ZURvbShlLHQsbil9LHBvc3RVcGRhdGVEb206ZnVuY3Rpb24oZSx0LG4pe2lmKGUuZGF0YS5mdWxsc2NyZWVuKXt2YXIgcj1lLnBhcmVudERPTXx8bjtyLnN0eWxlLmhlaWdodD0iYXV0byI7dmFyIG89Yi5nZXRNZWRpYSgpLmhlaWdodCxhPWUuaXNTY3JvbGxhYmxlPyJzY3JvbGwiOiJoaWRkZW4iO288ci5vZmZzZXRIZWlnaHQmJihvPXIub2Zmc2V0SGVpZ2h0LGUuaXNTY3JvbGxhYmxlfHwoYT0idmlzaWJsZSIpKSxyLnN0eWxlLmhlaWdodD10LnN0eWxlLmhlaWdodD1vKyJweCIsZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvd1k9YX1lLmlzU2Nyb2xsYWJsZXx8ZS5kYXRhLmZ1bGxzY3JlZW58fCJoaWRkZW4iPT09ZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvd1l8fCJoaWRkZW4iPT09ZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvd3x8Yi5pc1Njcm9sbGFibGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KVsxXSYmKGUuaXNTY3JvbGxhYmxlPSEwLGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3dZPSJzY3JvbGwiKX19O3JldHVybiBlfSgpO2IuaW5pdChmdW5jdGlvbigpe3JldHVybiBCYXNlMChSb290RGF0YUN0eCl9KX0oKTs8L3NjcmlwdD48L2JvZHk+DQo8L2h0bWw+DQo=';
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top