joewein.net   joewein.de LLC
fighting spam and scams on the Internet
Try our spam filter!
Free trial for 30 days
  jwSpamSpy

Home
About Us
Spam
419/Nigeria
Fraud
Contact

"419" Scam – Advance Fee / Fake Lottery Scam

The so-called "419" scam is a type of fraud dominated by criminals from Nigeria and other countries in Africa. Victims of the scam are promised a large amount of money, such as a lottery prize, inheritance, money sitting in some bank account, etc.

Victims never receive this non-existent fortune but are tricked into sending their money to the criminals, who remain anonymous. They hide their real identity and location by using fake names and fake postal addresses as well as communicating via anonymous free email accounts and mobile phones.

Keep in mind that scammers DO NOT use their real names when defrauding people.
The criminals either abuse names of real people or companies or invent names or addresses.
Any real people or companies mentioned below have NO CONNECTION to the scammers!

Read more about such scams here or in our 419 FAQ. Use the Scam-O-Matic to verify suspect emails.

Click here to report a problem with this page.

 

 

Some comments by the Scam-O-Matic about the following email:

Fraud email example:

From: DHL Delivery Service <pjc@ohsungec.com>
Date: 07 Feb 2022 05:05:39 +0100
Subject: ss, You have a DHL Delivery, See attached Bill of lading

PGh0bWwgZGlyPSJsdHIiIGxhbmc9ImVuIj4NCjxoZWFkPg0KCTxtZXRhIGNvbnRlbnQ9InRl eHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiANCg0K Lz4NCgk8bWV0YSBjb250ZW50PSJJRT1lZGdlIiBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGli bGUiIC8+DQoJPG1ldGEgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNj YWxlPTEuMCwgbWF4aW11bS0NCg0Kc2NhbGU9Mi4wLCB1c2VyLXNjYWxhYmxlPXllcyIgbmFt ZT0idmlld3BvcnQiIC8+DQoJPG1ldGEgY29udGVudD0ibm8tY2FjaGUiIGh0dHAtZXF1aXY9 IlByYWdtYSIgLz4NCgk8bWV0YSBjb250ZW50PSItMSIgaHR0cC1lcXVpdj0iRXhwaXJlcyIg Lz4NCgk8bGluayBjcm9zc29yaWdpbj0iIiBocmVmPSJodHRwczovL2FhZGNkbi5tc2Z0YXV0 aC5uZXQiIA0KDQpyZWw9InByZWNvbm5lY3QiIC8+DQoJPG1ldGEgY29udGVudD0ib24iIGh0 dHAtZXF1aXY9IngtZG5zLXByZWZldGNoLWNvbnRyb2wiIC8+DQoJPGxpbmsgaHJlZj0iLy9h YWRjZG4ubXNmdGF1dGgubmV0IiByZWw9ImRucy1wcmVmZXRjaCIgLz4NCgk8bGluayBocmVm PSIvL2FhZGNkbi5tc2F1dGgubmV0IiByZWw9ImRucy1wcmVmZXRjaCIgLz4NCgk8bWV0YSBj b250ZW50PSJzaWdub3V0IiBuYW1lPSJQYWdlSUQiIC8+DQoJPG1ldGEgY29udGVudD0iIiBu YW1lPSJTaXRlSUQiIC8+DQoJPG1ldGEgY29udGVudD0iMTAzMyIgbmFtZT0iUmVxTEMiIC8+ DQoJPG1ldGEgY29udGVudD0iZW4tVVMiIG5hbWU9IkxvY0xDIiAvPg0KCTxsaW5rIA0KDQpo cmVmPSJodHRwczovL2FhZGNkbi5tc2Z0YXV0aC5uZXQvc2hhcmVkLzEuMC9jb250ZW50L2lt YWdlcy9mYXZpY29uX2FfZXVwYQ0KDQp5ZmdnaHFpYWk3azlzb2w2bGcyLmljbyIgcmVsPSJz aG9ydGN1dCBpY29uIiAvPg0KCTxtZXRhIGNvbnRlbnQ9Im5vbmUiIG5hbWU9InJvYm90cyIg Lz48c2NyaXB0IA0KDQp0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbDQokQ29u ZmlnPXsiY29icmFuZGluZyI6eyJiYXNlIjoiYXBwIiwibGFiZWwiOiJXb3JrIG9yIHNjaG9v bCwgb3IgcGVyc29uYWwgDQoNCk1pY3Jvc29mdCBhY2NvdW50IiwibGFiZWxUZW5hbnQiOiJX b3JrIG9yIHNjaG9vbCwgb3IgcGVyc29uYWwgTWljcm9zb2Z0IA0KDQphY2NvdW50IiwiYWN0 aXZlIjoiYXBwIiwiaW5pdGlhbCI6ImFwcCIsImFwcCI6DQoNCnsiSWxsdXN0cmF0aW9uIjoi aHR0cHM6Ly9hYWRjZG4ubXNmdGF1dGgubmV0L3NoYXJlZC8xLjAvY29udGVudC9pbWFnZXMv ZGVmDQoNCmF1bHRfc2lnbmluX2lsbHVzdHJhdGlvbl81by16OGJxNGZwZDdpeDhrbmwtDQoN CnQ5cTIucG5nIiwiQmFubmVyTG9nbyI6IiIsIkxvZ29UZXh0IjoiSGFuZyBvbiBhIG1vbWVu dCB3aGlsZSB3ZSBzaWduIHlvdSANCg0Kb3V0LiIsIkJhY2tyb3VuZENvbG9yIjoiIzAwNzJj NiIsIkJvaWxlclBsYXRlVGV4dCI6IiJ9LCJ0ZW5hbnQiOg0KDQp7fX0sInRpbGVzIjp7ImFh ZFVzZXJzIjpbXSwibXNhVXNlcnMiOltdLCJ1c2VycyI6W10sIm90aGVyVXNlciI6DQoNCnsi bmFtZSI6IlVzZSBhbm90aGVyIA0KDQphY2NvdW50IiwibG9naW4iOiIiLCJpbWFnZUFBRCI6 InVzZV9hbm90aGVyX2FjY291bnQucG5nIiwiaW1hZ2VNU0EiOiJ1c2VfYQ0KDQpub3RoZXJf YWNjb3VudC5wbmciLCJpc0xpdmUiOmZhbHNlLCJsaW5rIjoib3RoZXIiLCJhdXRoVXJsIjoi Iiwic2Vzc2lvbklEIg0KDQo6IiIsImRvbWFpbkhpbnQiOiJvdGhlciJ9LCJzcGxpdHRlclRp bGVzVXNlcnMiOlt7ImlkIjoiYWFkIiwibmFtZSI6IldvcmsgDQoNCm9yIHNjaG9vbCBhY2Nv dW50IiwibG9naW4iOiJDcmVhdGVkIGJ5IHlvdXIgSVQgDQoNCmRlcGFydG1lbnQiLCJpbWFn ZSI6Imh0dHBzOi8vYWFkY2RuLm1zZnRhdXRoLm5ldC9lc3RzLzIuMS9jb250ZW50L2ltYWdl cy93DQoNCm9ya19hY2NvdW50X2d3cGdzempyZHptZzl0LWV0b3RkbGcyLnBuZyJ9LHsiaWQi OiJtc2EiLCJuYW1lIjoiUGVyc29uYWwgDQoNCmFjY291bnQiLCJsb2dpbiI6IkNyZWF0ZWQg YnkgDQoNCnlvdSIsImltYWdlIjoiaHR0cHM6Ly9hYWRjZG4ubXNmdGF1dGgubmV0L2VzdHMv Mi4xL2NvbnRlbnQvaW1hZ2VzL3BlcnNvbmFsDQoNCl9hY2NvdW50X2QzazFscXlhOGs1X21t YmxnZzg1cnEyLnBuZyJ9XX0sImNvbnN0YW50cyI6eyJkYmdNZXNzYWdlcyI6DQoNCltdLCJN RU1CRVJfTkFNRSI6IiIsIkZFREVSQVRJT05fUVVFUllfUEFSQU1FVEVSUyI6Ij91c2VybmFt ZT0NCg0KXHUwMDI2d2E9d3NpZ25pbjEuMFx1MDAyNnd0cmVhbG09dXJuJTNhZmVkZXJhdGlv biUzYU1pY3Jvc29mdE9ubGluZQ0KDQpcdTAwMjZ3Y3R4PSIsIkJBU0VfVVJMIjoiL2NvbW1v bi9vYXV0aDIvbG9nb3V0PyIsIkxBVEVOQ1lfVEhSRVNIT0xEIjoyMDAwLA0KDQoiQ0ROX0lN QUdFX1BBVEgiOiJodHRwczovL2FhZGNkbi5tc2Z0YXV0aC5uZXQvZXN0cy8yLjEvY29udGVu dC9pbWFnZXMvIiwiSQ0KDQpTX1VTRV9PVEhFUl9BQ0NPVU5UX1ZJU0lCTEUiOmZhbHNlLCJN QVhfVVNFUl9USUxFUyI6NSwiUEFSVE5FUl9OQU1FIjoiU2lnbiANCg0KaW4gd2l0aCB5b3Vy IHdvcmsgb3Igc2Nob29sIA0KDQphY2NvdW50IiwiTUVUUklDU19NT0RFIjoxLCJUb2tlbml6 ZWRTdHJpbmdNc2dzIjoNCg0KeyJHRU5FUklDX0VSUk9SIjoiXHUwMDNjSDFcdTAwM2VTb3Jy eSwgYnV0IHdlXHUwMDI3cmUgaGF2aW5nIHRyb3VibGUgDQoNCnNpZ25pbmcgeW91IGluXHUw MDNjL0gxXHUwMDNlXHUwMDNjcFx1MDAzZVBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgDQoN Cm1pbnV0ZXMuIElmIHRoaXMgZG9lc25cdTAwMjd0IHdvcmssIHlvdSBtaWdodCB3YW50IHRv IGNvbnRhY3QgeW91ciBhZG1pbiANCg0KYW5kIHJlcG9ydCB0aGUgZm9sbG93aW5nIGVycm9y OiAjfiNFcnJvckNvZGUjfiMuXHUwMDNjL3ANCg0KXHUwMDNlIiwiVVBOX0RJU0FNQklHVUFU RV9NRVNTQUdFIjoiSXQgbG9va3MgbGlrZSB7MH0gaXMgdXNlZCB3aXRoIG1vcmUgDQoNCnRo YW4gb25lIGFjY291bnQuIFdoaWNoIGFjY291bnQgZG8geW91IHdhbnQgdG8gDQoNCnVzZT8i fSwiUkVBTE1fUkVTT0xWRVJfVVJMIjoiL2NvbW1vbi91c2VycmVhbG0iLCJGT1JDRURfU0lH Tl9JTiI6ZmFsc2UsImlzDQoNCkN4aFJlcXVlc3QiOmZhbHNlLCJpc0FkYWxSZXF1ZXN0Ijpm YWxzZSwiSVNfTkFNRV9DT0VYSVNURU5DRV9BQ0NPVU5UIjpmYWxzDQoNCmUsImFkYWxVeE92 ZXJyaWRlIjpmYWxzZSwiY2FuY2VsUmVkaXJlY3RVcmwiOiIiLCJJU19NU0FfRkVEX1NVUFBP UlRFRCI6dHJ1DQoNCmUsIklTX01TQV9QSE9ORV9VU0VSTkFNRV9TVVBQT1JURUQiOnRydWUs IklTX01TQV9SRURJUl9TVVBQT1JURUQiOmZhbHNlLCJNDQoNClNBX0RPTUFJTiI6ImxpdmUu Y29tIiwiUFJPTVBUIjoiIiwiVVNFUk5BTUVfSElOVF9URVhUIjoiRW1haWwgb3IgDQoNCnBo b25lIiwiSVNfTE9HT1VUX1JFUVVFU1QiOnRydWUsIlNIT1VMRF9ISURFX1NJR05VUCI6ZmFs c2UsIlVTRV9EQVJLX1RJTEVfDQoNCkxPR08iOmZhbHNlLCJIQVNfRVJST1IiOmZhbHNlLCJJ U19NT0JJTEUiOmZhbHNlLCJtb2JpbGVXaWR0aFRocmVzaG9sZCI6NjAwDQoNCiwidXhMb2dv dXRVcmwiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vY29tbW9uL3V4bG9n b3V0IiwiZm9yZ2V0DQoNClVybCI6Imh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNv bS9mb3JnZXR1c2VyIiwiSVNfSE9MT0dSQVBISUMiOmZhbHNlDQoNCiwic2F2ZWRUaWxlcyI6 eyJvdGhlckpTT04iOnsibmFtZSI6IlVzZSBhbm90aGVyIA0KDQphY2NvdW50IiwibG9naW4i OiIiLCJpbWFnZUFBRCI6Im90aGVyX2dseXBoLnBuZyIsImltYWdlTVNBIjoib3RoZXJfZ2x5 cGgucA0KDQpuZyIsImlzTGl2ZSI6ZmFsc2UsImxpbmsiOiJvdGhlciIsImF1dGhVcmwiOiIi LCJzZXNzaW9uSUQiOiIiLCJkb21haW5IaW50Ig0KDQo6Im90aGVyIn19LCJVc2VfQ2xpZW50 X0NoZWNrX01zYV9GbGFnIjp0cnVlLCJpc0RlYnVnTW9kZSI6ZmFsc2UsInJlcXVlc3QiOg0K DQp7InVhaWQiOiJiMDRlZDE4ZTlkYzU0N2MyODY2YTBjN2ViYmY3MTYxZCIsImlzc3Vlcklk ZW50aWZpZXIiOiJtc28iLCJpc01zYQ0KDQpTdXBwb3J0ZWQiOnRydWV9LCJMb2NhbGUiOiJl bi0NCg0KVVMiLCJyZXNwb25zZU1vZGUiOiJRdWVyeSIsIklzQjJDU2NlbmFyaW8iOmZhbHNl LCJzaG93VGlsZXNPblBhZ2VMb2FkIjp0cnUNCg0KZSwic2tpcE1lQ29udHJvbE9uUGFnZUxv YWQiOnRydWUsIm9uUHJlbVBhc3N3b3JkVmFsaWRhdGlvbkNvbmZpZyI6DQoNCnsiaXNVc2Vy UmVhbG1QcmVjaGVja0VuYWJsZWQiOnRydWV9LCJkZXNrdG9wU3NvQ29uZmlnIjoNCg0KeyJp c0VkZ2VBbmFoZWltQWxsb3dlZCI6dHJ1ZSwiaXdhRW5kcG9pbnRVcmxGb3JtYXQiOiJodHRw czovL2F1dG9sb2dvbi5taWMNCg0Kcm9zb2Z0YXp1cmVhZC1zc28uY29tLw0KDQp7MH0vd2lu YXV0aC9zc28iLCJpd2FTc29Qcm9iZVVybEZvcm1hdCI6Imh0dHBzOi8vYXV0b2xvZ29uLm1p Y3Jvc29mdGF6dXJlYQ0KDQpkLXNzby5jb20vDQoNCnswfS93aW5hdXRoL3Nzb3Byb2JlIiwi aXdhSUZyYW1lVXJsRm9ybWF0IjoiaHR0cHM6Ly9hdXRvbG9nb24ubWljcm9zb2Z0YXp1DQoN CnJlYWQtc3NvLmNvbS97MH0vd2luYXV0aC9pZnJhbWU/DQoNCmlzQWRhbFJlcXVlc3Q9RmFs c2UiLCJpd2FSZXF1ZXN0VGltZW91dEluTXMiOjEwMDAwLCJzdGFydERlc2t0b3BTc29PblBh Z2VMDQoNCm9hZCI6ZmFsc2UsInByb2dyZXNzQW5pbWF0aW9uVGltZW91dCI6MTAwMDAsImlz RWRnZUFsbG93ZWQiOmZhbHNlLCJpc1NhZmFyDQoNCmlBbGxvd2VkIjp0cnVlLCJpc0lFQWxs b3dlZEZvclNzb1Byb2JlIjp0cnVlLCJlZGdlUmVkaXJlY3RVcmkiOiJodHRwczovL2F1DQoN CnRvbG9nb24ubWljcm9zb2Z0YXp1cmVhZC1zc28uY29tL3swfS93aW5hdXRoL3Nzby9lZGdl cmVkaXJlY3Q/DQoNCm9yaWdpbj1sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tIn0sIm1zYU1l Q29udHJvbFRpbWVvdXQiOjUwMDB9LCJzY2lkIjoxMDMwDQoNCiwiaHBnYWN0IjoxODAyLCJo cGdpZCI6ODAwMiwicGdpZCI6InNpZ25vdXQiLCJhcGlDYW5hcnkiOiJBUUFCQUFBQUFBQjJV eXp3DQoNCnRRRUtSNy1yV2JnZGNCWkl3TkEtDQoNClprcDBxdDRXeDNsaTFKb3RNUXVQbkE3 aTJ2TDA5OFpiM0tKRWNrV1p3d3IyRURQeXBLUFFKMUtwdTdzaUVpWEhjb0NmT25hU3ZtDQoN CkpoTUNFTmNRRzkyX1lyQTd0TDhUdXFGRnNpQXJGUWZPWWtiWkpxXzNublZ3Tzk4NTg4ZDBp cUV6UV9GTmpOR3lYejY4NFBkWS0NCg0KQlVQRS01eVVWc3pqa2lhRE1uWS0NCg0KaV9vVGo3 eE8yRjhhc0J4b3ZVRVVZVFg0Y0paV29tQVBQSVlTeHp5NXhNeUFBIiwiY2FuYXJ5IjoiOVgy TU1tWEM4MWpGa081c1MNCg0KMUJXb1FzWUVzeXFmTnJzVVkrK3Z0Q1o1eW89MDoxIiwiY29y cmVsYXRpb25JZCI6IjcyOTQxY2JiLWM3MTQtNGMyYS1iMDdhLQ0KDQpmNjU2YWEwOTMxNzMi LCJzZXNzaW9uSWQiOiJjY2JkOGI0Yy1kNWFhLTRlNTMtYWJlNC0NCg0KNjIxZDNlMDRhMzAx IiwibG9jYWxlIjp7Im1rdCI6ImVuLQ0KDQpVUyIsImxjaWQiOjEwMzN9LCJzbE1heFJldHJ5 IjoyLCJzbFJlcG9ydEZhaWx1cmUiOnRydWUsInN0cmluZ3MiOg0KDQp7ImRlc2t0b3Bzc28i OnsiYXV0aGVudGljYXRpbmdtZXNzYWdlIjoiVHJ5aW5nIHRvIHNpZ24geW91IGluIn0sIm1z YSI6DQoNCnsibGFiZWwiOiIoTWljcm9zb2Z0IGFjY291bnQpIiwiYWNjb3VudCI6eyJpbWdh bHR0ZXh0IjoiTWljcm9zb2Z0IGFjY291bnQgDQoNCnN5bWJvbCIsInRpbGVhbHR0ZXh0Ijoi TWljcm9zb2Z0IGFjY291bnQgZm9yIHswfSJ9LCJyZWRpcmVjdCI6IldlP3JlIA0KDQp0YWtp bmcgeW91IHRvIHRoZSBNaWNyb3NvZnQgYWNjb3VudCBzaWduLWluIHBhZ2UuIn0sImFhZCI6 eyJhY2NvdW50IjoNCg0KeyJpbWdhbHR0ZXh0IjoiV29yayBvciBzY2hvb2wgYWNjb3VudCBz eW1ib2wiLCJ0aWxlYWx0dGV4dCI6Ildvcmsgb3IgDQoNCnNjaG9vbCBhY2NvdW50IGZvciB7 MH0ifSwicmVkaXJlY3QiOiJXZVx1MDAyN3JlIHRha2luZyB5b3UgdG8geW91ciANCg0Kb3Jn YW5pemF0aW9uXHUwMDI3cyBzaWduLWluIHBhZ2UuIn0sImNsb3VkZmVkIjp7InJlZGlyZWN0 IjoiV2VcdTAwMjdyZSANCg0KdGFraW5nIHlvdSB0byB5b3VyIG9yZ2FuaXphdGlvblx1MDAy N3Mgc2lnbi1pbiANCg0KcGFnZS4ifSwib3RoZXJhY2NvdW50dGV4dCI6IlVzZSBhbm90aGVy IGFjY291bnQiLCJjbGlja2Zvcm1vcmUiOiJDbGljayBmb3IgDQoNCm1vcmUgYWN0aW9ucyIs ImNvbm5lY3RlZHRvd2luZG93cyI6IkNvbm5lY3RlZCB0byANCg0KV2luZG93cyIsInNpZ25l ZGluIjoiU2lnbmVkIGluIiwiY2xpY2t0b3NpZ25pbiI6IiIsInNpZ25pbmdvdXQiOiJTaWdu aW5nIA0KDQpvdXQuLi4iLCJhY2NvdW50aW1hZ2VhbHR0ZXh0IjoiVXNlciBhY2NvdW50IGlt YWdlIiwiaGVhZGVyIjp7InRleHQiOg0KDQp7InVzZXJuYW1lIjoiU2lnbiBpbiB3aXRoIHlv dXIgd29yayBhY2NvdW50IiwicGFzc3dvcmQiOiJFbnRlciB5b3VyIA0KDQpwYXNzd29yZCIs InByaXZhY3kiOiJQcml2YWN5IHN0YXRlbWVudCJ9fSwiZGlzYW1iaWd1YXRpb24iOg0KDQp7 ImRlc2NyaXB0aW9uIjoiSXQgbG9va3MgbGlrZSB7MH0gaXMgdXNlZCB3aXRoIG1vcmUgdGhh biBvbmUgYWNjb3VudC4gDQoNCldoaWNoIGFjY291bnQgZG8geW91IHdhbnQgdG8gdXNlPyIs InRpbWVvdXQiOiJXZVx1MDAyN3JlIGhhdmluZyB0cm91YmxlIA0KDQpsb2NhdGluZyB5b3Vy IGFjY291bnQuIFdoaWNoIHR5cGUgb2YgYWNjb3VudCBkbyB5b3Ugd2FudCB0byANCg0KdXNl PyJ9LCJlcnJvcnMiOnsiMzAxMzYiOiJUeXBlIHRoZSBlbWFpbCBhZGRyZXNzIG9yIHBob25l IG51bWJlciBvZiB0aGUgDQoNCmFjY291bnQgeW91IHdhbnQgdG8gc2lnbiBpbiB3aXRoLiIs IjMwMDY0Ijp7InRpdGxlIjoiVGhpcyBkb2Vzblx1MDAyN3QgDQoNCmxvb2sgbGlrZSBhIHZh bGlkIHVzZXIgSUQiLCJkZXNjcmlwdGlvbiI6IlRyeSB1c2luZyB5b3VyIGVtYWlsIGFkZHJl c3Mgb3IgDQoNCnBob25lIG51bWJlci4ifSwiMzAwMDgiOiJTaWduIGluIHRvIHswfSIsIjMw MDY3IjoiXHUwMDNjSDFcdTAwM2VXZSBkb24NCg0KXHUwMDI3dCByZWNvZ25pemUgdGhpcyB1 c2VyIElEIG9yIHBhc3N3b3JkXHUwMDNjL0gxXHUwMDNlXHUwMDNjcFx1MDAzZUJlIA0KDQpz dXJlIHRvIHR5cGUgdGhlIHBhc3N3b3JkIGZvciB5b3VyIHdvcmsgb3Igc2Nob29sIGFjY291 bnQuXHUwMDNjL3ANCg0KXHUwMDNlIiwiMzAwNjgiOnsidGl0bGUiOiJcdTAwM2NIMVx1MDAz ZXswfSBpc25cdTAwMjd0IGluIG91ciBzeXN0ZW0NCg0KXHUwMDNjL0gxXHUwMDNlXHUwMDNj cFx1MDAzZU1ha2Ugc3VyZSB5b3UgdHlwZWQgeW91ciBlbWFpbCBhZGRyZXNzIA0KDQpjb3Jy ZWN0bHkuIEl0IHVzdWFsbHkgbG9va3MgbGlrZSBzb21lb25lQGV4YW1wbGUuY29tIG9yIA0K DQpzb21lb25lQGV4YW1wbGUub25taWNyb3NvZnQuY29tXHUwMDNjL3BcdTAwM2UiLCJkZXNj cmlwdGlvbiI6Ik1ha2Ugc3VyZSANCg0KeW91IHR5cGVkIHlvdXIgZW1haWwgYWRkcmVzcyBj b3JyZWN0bHkuIEl0IHVzdWFsbHkgbG9va3MgbGlrZSANCg0Kc29tZW9uZUBleGFtcGxlLmNv bSBvciBzb21lb25lQGV4YW1wbGUub25taWNyb3NvZnQuY29tIn0sIjMwMTExIjoiUGxlYXNl IA0KDQplbnRlciB5b3VyIHBhc3N3b3JkLiIsIjMwMTI3IjoiVG8gc2lnbiBpbiwgc3RhcnQg YnkgZW50ZXJpbmcgYSB1c2VyIA0KDQpJRC4iLCIzMDE0MCI6IldlXHUwMDI3cmUgaGF2aW5n IHRyb3VibGUgbG9jYXRpbmcgeW91ciBhY2NvdW50LiBXaGljaCB0eXBlIA0KDQpvZiBhY2Nv dW50IGRvIHlvdSB3YW50IHRvIHVzZT8iLCIzMDE0NSI6IkNoZWNrIHRoZSBlbWFpbCBhZGRy ZXNzIHlvdSANCg0KZW50ZXJlZC4gWW91IG1heSBoYXZlIG1pc3R5cGVkIGl0LiIsIjMwMTQ2 Ijp7InRpdGxlIjoiV2UgY291bGRuXHUwMDI3dCANCg0KZmluZCBhbiBhY2NvdW50IHdpdGgg dGhhdCBlbWFpbCBhZGRyZXNzLiIsImRlc2NyaXB0aW9uIjoiRW50ZXIgYSBkaWZmZXJlbnQg DQoNCmVtYWlsIGFkZHJlc3Mgb3IgXHUwMDNjYSBpZD1cdTAwMjJ1c2VyLW5vdC1mb3VuZC1s aW5rXHUwMDIyIGhyZWY9XHUwMDIyIw0KDQpcdTAwMjJcdTAwM2VnZXQgYSBuZXcgTWljcm9z b2Z0IGFjY291bnRcdTAwM2MvYVx1MDAzZS4ifSwiMzAxNjgiOg0KDQp7InRpdGxlIjoiV2Ug ZG9uXHUwMDI3dCByZWNvZ25pemUgdGhpcyBkb21haW4gbmFtZSIsImRlc2NyaXB0aW9uIjoi TWFrZSANCg0Kc3VyZSB5b3UgdHlwZWQgeW91ciBvcmdhbml6YXRpb25cdTAwMjdzIGRvbWFp biBuYW1lIGNvcnJlY3RseS4gSXQgdXN1YWxseSANCg0KbG9va3MgbGlrZSBAZXhhbXBsZS5j b20gb3IgQGV4YW1wbGUub25taWNyb3NvZnQuY29tLiJ9LCIzMDE3MyI6IldoaWNoIHR5cGUg DQoNCm9mIGFjY291bnQgZG8geW91IHdhbnQgdG8gc2lnbiBpbiB3aXRoPyIsIjMwMjAwIjoi IiwiY2F0Y2hhbGwiOiJXZSBkaWRuDQoNClx1MDAyN3QgcmVjZWl2ZSBhIHJlc3BvbnNlLiBQ bGVhc2UgdHJ5IGFnYWluLiJ9fSwiZW51bXMiOg0KDQp7IkNsaWVudE1ldHJpY3NNb2RlcyI6 DQoNCnsiTm9uZSI6MCwiU3VibWl0T25Qb3N0IjoxLCJTdWJtaXRPblJlZGlyZWN0IjoyLCJJ bnN0cnVtZW50UGx0Ijo0fSwiTmFtZVNwDQoNCmFjZVR5cGUiOnsiTm9uZSI6MCwiTWFuYWdl ZCI6MSwiRmVkZXJhdGVkIjoyfX0sInVybHMiOnsiaW5zdHIiOg0KDQp7InBhZ2Vsb2FkIjoi aHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tL2NvbW1vbi9pbnN0cnVtZW50YXRp b24vcmVwbw0KDQpydHBhZ2Vsb2FkIiwiZHNzb3N0YXR1cyI6Imh0dHBzOi8vbG9naW4ubWlj cm9zb2Z0b25saW5lLmNvbS9jb21tb24vaW5zdHJ1bQ0KDQplbnRhdGlvbi9kc3Nvc3RhdHVz In0sImRpc2FtYmlnaGVscHVybCI6Imh0dHBzOi8vZ28ubWljcm9zb2Z0LmNvbS9md2xpbmsv cA0KDQovP0xpbmtJRD03MzMyNDciLCJtc2EiOnsibWV1cmwiOiJodHRwczovL2xvZ2luLmxp dmUuY29tL01lLnNyZj8NCg0Kd2E9d3NpZ25pbjEuMFx1MDAyNmlkcGZsYWc9ZGlyZWN0DQoN Clx1MDAyNndyZXBseT0iLCJvYXV0aGF1dGhvcml6ZXVybCI6Imh0dHBzOi8vbG9naW4ubGl2 ZS5jb20vb2F1dGgyMF9hdXRob3JpDQoNCnplLnNyZiIsInNpZ25vdXR1cmwiOm51bGwsInBh c3N3b3JkcmVzZXR1cmwiOiJodHRwczovL2FjY291bnQubGl2ZS5jb20vcGFzDQoNCnN3b3Jk L3Jlc2V0IiwibWFuYWdlYWNjb3VudHVybCI6Imh0dHBzOi8vYWNjb3VudC5taWNyb3NvZnQu Y29tIiwic2luZ2xldXNlDQoNCmNvZGUiOiJodHRwOi8vd2luZG93cy5taWNyb3NvZnQuY29t L2VuLVVTL3dpbmRvd3MtbGl2ZS9zaWduLWluLXNpbmdsZS0NCg0KdXNlLWNvZGUiLCJzaWdu dXB1cmwiOm51bGx9LCJzdHlsZSI6DQoNCnsibG9naW5ob3ZlciI6Imh0dHBzOi8vYWFkY2Ru Lm1zZnRhdXRoLm5ldC9lc3RzLzIuMS9jb250ZW50L2NkbmJ1bmRsZXMvbG9nDQoNCmluX2hv dmVyLm1pbl9sanY0bmR2cm5renhhd2V0N2RueHB3Mi5jc3MifSwiYWdyZWVtZW50IjoNCg0K eyJ0b3UiOiJodHRwczovL3d3dy5taWNyb3NvZnQuY29tL2VuLQ0KDQpVUy9zZXJ2aWNlc2Fn cmVlbWVudC8iLCJwcml2YWN5IjoiaHR0cHM6Ly9wcml2YWN5Lm1pY3Jvc29mdC5jb20vZW4t DQoNClVTL3ByaXZhY3lzdGF0ZW1lbnQifSwicmVmcmVzaHVybCI6bnVsbCwiYXBwcmVkaXJl Y3R1cmwiOm51bGx9LCJicm93c2VyIjoNCg0KeyJsdHIiOjEsIkZpcmVmb3giOjEsIl9NYWMi OjEsIl9NODMiOjEsIl9EMCI6MSwiRnVsbCI6MSwiUkVfR2Vja28iOjEsImIiOg0KDQp7Im5h bWUiOiJGaXJlZm94IiwibWFqb3IiOjgzLCJtaW5vciI6MH0sIm9zIjoNCg0KeyJuYW1lIjoi T1NYIiwidmVyc2lvbiI6IiJ9LCJWIjoiODMuMCJ9LCJ3YXRzb24iOg0KDQp7InVybCI6Ii9j b21tb24vaGFuZGxlcnMvd2F0c29uIiwiYnVuZGxlIjoiaHR0cHM6Ly9hYWRjZG4ubXNmdGF1 dGgubmV0L2VzdA0KDQpzLzIuMS9jb250ZW50L2NkbmJ1bmRsZXMvd2F0c29uLm1pbl95YmRi MWl4emt2LQ0KDQpma29yMm11NnE2dzIuanMiLCJzYnVuZGxlIjoiaHR0cHM6Ly9hYWRjZG4u bXNmdGF1dGgubmV0L2VzdHMvMi4xL2NvbnRlbnQvYw0KDQpkbmJ1bmRsZXMvd2F0c29uc3Vw cG9ydC5taW5fX3lva19jaHdzZXlwd2JtdWZmbm5hYTIuanMiLCJmYnVuZGxlIjoiaHR0cHM6 Lw0KDQovYWFkY2RuLm1zZnRhdXRoLm5ldC9lc3RzLzIuMS9jb250ZW50L2NkbmJ1bmRsZXMv ZnJhbWV3b3Jrc3VwcG9ydC5taW5fb2Fkcg0KDQpuYzEzbWFnYjAwOWs0ZDIwbGcyLmpzIiwi cmVzZXRFcnJvclBlcmlvZCI6NSwibWF4Q29yc0Vycm9ycyI6LQ0KDQoxLCJtYXhJbmplY3RF cnJvcnMiOjUsIm1heEVycm9ycyI6MTAsIm1heFRvdGFsRXJyb3JzIjozLCJleHBTcmNzIjoN Cg0KWyJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20iLCJodHRwczovL2FhZGNk bi5tc2F1dGgubmV0LyIsImh0dHBzOi8NCg0KL2FhZGNkbi5tc2Z0YXV0aC5uZXQvIiwiLmxv Z2luLm1pY3Jvc29mdG9ubGluZS5jb20iXSwiZW52RXJyb3JSZWRpcmVjdCI6dHINCg0KdWUs ImVudkVycm9yVXJsIjoiL2NvbW1vbi9oYW5kbGVycy9lbnZlcnJvciJ9LCJsb2FkZXIiOnsi Y2RuUm9vdHMiOg0KDQpbImh0dHBzOi8vYWFkY2RuLm1zYXV0aC5uZXQvIiwiaHR0cHM6Ly9h YWRjZG4ubXNmdGF1dGgubmV0LyJdLCJsb2dCeVRocm93aQ0KDQpuZyI6dHJ1ZX0sInNlcnZl ckRldGFpbHMiOg0KDQp7InNsYyI6IlByb2RTbGljZXMiLCJkYyI6Ik5FVUxSMiIsInJpIjoi RFUyWFhYWCIsInZlciI6eyJ2IjoNCg0KWzIsMSwxMTI1MSwyMF19LCJydCI6IjIwMjAtMTEt DQoNCjMwVDIxOjI0OjQ2IiwiZXQiOjQ3fSwiZkJyZWFrQnJhbmRpbmdTaWduaW5TdHJpbmci OnRydWUsImZGaXhJbmNvcnJlY3RBcGlDDQoNCmFuYXJ5VXNhZ2UiOnRydWUsInVybE5vQ29v a2llcyI6Imh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbS9jb29raWVzDQoNCmRp c2FibGVkIiwiZlRyaW1DaHJvbWVCc3NvVXJsIjp0cnVlLCJpbmxpbmVNb2RlIjo1LCJmU2hv d0NvcHlEZWJ1Z0RldGFpbHNMDQoNCmluayI6dHJ1ZX07DQovL11dPjwvc2NyaXB0PjxzY3Jp cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWw0KIWZ1bmN0aW9uKCl7dmFy IGU9d2luZG93LHI9ZS4kRGVidWc9ZS4kRGVidWd8fHt9LHQ9ZS4kQ29uZmlnfHx7fTtpZigh DQoNCnIuYXBwZW5kTG9nKXt2YXIgbj1bXSxvPTA7ci5hcHBlbmRMb2c9ZnVuY3Rpb24oZSl7 dmFyIHI9dC5tYXhEZWJ1Z0xvZ3x8DQoNCjI1LGE9KG5ldyBEYXRlKS50b1VUQ1N0cmluZygp KyI6IitlO24ucHVzaChvKyI6IithKSxuLmxlbmd0aD5yJiZuLnNoaWZ0DQoNCigpLG8rK30s ci5nZXRMb2dzPWZ1bmN0aW9uKCl7cmV0dXJuIG59fX0oKSxmdW5jdGlvbigpe2Z1bmN0aW9u IGUoZSxyKQ0KDQp7ZnVuY3Rpb24gdChhKXt2YXIgaT1lW2FdO2lmKGE8bi0xKXtyZXR1cm4g dm9pZChvLnJbaV0/dChhKzEpOm8ud2hlbg0KDQooaSxmdW5jdGlvbigpe3QoYSsxKX0pKX1y KGkpfXZhciBuPWUubGVuZ3RoO3QoMCl9ZnVuY3Rpb24gcihlLHIsYSkNCg0Ke2Z1bmN0aW9u IGkoKXt2YXIgZT0hIXUubWV0aG9kLG89ZT91Lm1ldGhvZDphWzBdLGk9dS5leHRyYUFyZ3N8 fFtdLHM9bi4NCg0KJFdlYldhdHNvbjt0cnl7DQp2YXIgYz10KGEsIWUpO2lmKGkmJmkubGVu Z3RoPjApe2Zvcih2YXIgZD1pLmxlbmd0aCxsPTA7bDxkO2wrKyl7Yy5wdXNoKGkNCg0KW2xd KX19by5hcHBseShyLGMpfWNhdGNoKGUpe3JldHVybiB2b2lkDQoNCihzJiZzLnN1Ym1pdEZy b21FeGNlcHRpb24mJnMuc3VibWl0RnJvbUV4Y2VwdGlvbihlKSl9fXZhciB1PW8uciYmby5y DQoNCltlXTtyZXR1cm4gcj1yfHx0aGlzLHUmJih1LnNraXBUaW1lb3V0P2koKTpuLnNldFRp bWVvdXQoaSwwKSksdX1mdW5jdGlvbiANCg0KdChlLHIpe3JldHVybiBBcnJheS5wcm90b3R5 cGUuc2xpY2UuY2FsbChlLHI/MTowKX12YXIgbj13aW5kb3c7bi4kRG98fChuLg0KDQokRG89 eyJxIjpbXSwiciI6W10sInJlbW92ZUl0ZW1zIjpbXSwibG9jayI6MCwibyI6W119KTt2YXIg bz1uLg0KDQokRG87by53aGVuPWZ1bmN0aW9uKHQsbil7ZnVuY3Rpb24gYShlKXtyKGUsaSx1 KXx8by5xLnB1c2gNCg0KKHsiaWQiOmUsImMiOmksImEiOnV9KX12YXIgaT0wLHU9W10scz0x OyJmdW5jdGlvbiI9PXR5cGVvZiBufHwoaT1uLA0Kcz0yKTtmb3IodmFyIGM9cztjPGFyZ3Vt ZW50cy5sZW5ndGg7YysrKXt1LnB1c2goYXJndW1lbnRzW2NdKX10IGluc3RhbmNlb2YgDQoN CkFycmF5P2UodCxhKTphKHQpfSxvLnJlZ2lzdGVyPWZ1bmN0aW9uKGUsdCxuKXtpZighby5y W2VdKXtvLm8ucHVzaChlKTt2YXIgDQoNCmE9e307aWYodCYmKGEubWV0aG9kPXQpLG4mJg0K DQooYS5za2lwVGltZW91dD1uKSxhcmd1bWVudHMmJmFyZ3VtZW50cy5sZW5ndGg+Myl7YS5l eHRyYUFyZ3M9W107Zm9yKHZhciANCg0KaT0zO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspe2Eu ZXh0cmFBcmdzLnB1c2goYXJndW1lbnRzW2ldKX19by5yW2VdDQoNCj1hLG8ubG9jaysrO3Ry eXtmb3IodmFyIHU9MDt1PG8ucS5sZW5ndGg7dSsrKXt2YXIgcz1vLnFbdV07cy5pZD09ZSYm cg0KDQooZSxzLmMscy5hKSYmby5yZW1vdmVJdGVtcy5wdXNoKHMpfX1jYXRjaChlKXt0aHJv dyBlfWZpbmFsbHl7aWYoMD09PS0tDQoNCm8ubG9jayl7Zm9yKHZhciBjPTA7YzxvLnJlbW92 ZUl0ZW1zLmxlbmd0aDtjKyspew0KZm9yKHZhciBkPW8ucmVtb3ZlSXRlbXNbY10sbD0wO2w8 by5xLmxlbmd0aDtsKyspe2lmKG8ucVtsXT09PWQpDQoNCntvLnEuc3BsaWNlKGwsMSk7YnJl YWt9fX1vLnJlbW92ZUl0ZW1zPVtdfX19fSxvLnVucmVnaXN0ZXI9ZnVuY3Rpb24oZSkNCg0K e28ucltlXSYmZGVsZXRlIG8ucltlXX19KCksZnVuY3Rpb24oZSxyKXtmdW5jdGlvbiB0KCl7 aWYoIWkpe2lmKCFyLmJvZHkpDQoNCntyZXR1cm4gdm9pZCBzZXRUaW1lb3V0KHQpfWk9ITAs ZS4kRG8ucmVnaXN0ZXIoImRvYy5yZWFkeSIsMCwhMCl9fWZ1bmN0aW9uIA0KDQpuKCl7aWYo IXUpe2lmKCFyLmJvZHkpe3JldHVybiB2b2lkIHNldFRpbWVvdXQobil9dCgpLHU9ITAsZS4k RG8ucmVnaXN0ZXINCg0KKCJkb2MubG9hZCIsMCwhMCksYSgpfX1mdW5jdGlvbiBvKGUpDQoN Cnsoci5hZGRFdmVudExpc3RlbmVyfHwibG9hZCI9PT1lLnR5cGV8fCJjb21wbGV0ZSI9PT1y LnJlYWR5U3RhdGUpJiZ0KCl9DQoNCmZ1bmN0aW9uIGEoKXsNCnIuYWRkRXZlbnRMaXN0ZW5l cj8oci5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixvLCENCg0KMSks ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixuLCExKSk6ci5hdHRhY2hFdmVudCYmKHIu ZGV0YWNoRXZlbnQNCg0KKCJvbnJlYWR5c3RhdGVjaGFuZ2UiLG8pLGUuZGV0YWNoRXZlbnQo Im9ubG9hZCIsbikpfXZhciBpPSExLHU9ITE7aWYNCg0KKCJjb21wbGV0ZSI9PT1yLnJlYWR5 U3RhdGUpe3JldHVybiB2b2lkIHNldFRpbWVvdXQobil9IWZ1bmN0aW9uKCkNCg0Ke3IuYWRk RXZlbnRMaXN0ZW5lcj8oci5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixv LCENCg0KMSksZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixuLCExKSk6ci5hdHRhY2hFdmVu dCYmKHIuYXR0YWNoRXZlbnQNCg0KKCJvbnJlYWR5c3RhdGVjaGFuZ2UiLG8pLGUuYXR0YWNo RXZlbnQoIm9ubG9hZCIsbikpfSgpfQ0KDQood2luZG93LGRvY3VtZW50KSxmdW5jdGlvbigp e2Z1bmN0aW9uIGUoKXsNCnJldHVybiBmLiRDb25maWd8fGYuU2VydmVyRGF0YXx8e319ZnVu Y3Rpb24gcihlLHIpe3ZhciB0PWYuDQoNCiREZWJ1Zzt0JiZ0LmFwcGVuZExvZyYmKHImJihl Kz0iICciKyhyLnNyY3x8ci5ocmVmfHwiIikrIiciLGUrPSIsIA0KDQppZDoiKyhyLmlkfHwi IiksZSs9IiwgYXN5bmM6Iisoci5hc3luY3x8IiIpLGUrPSIsIA0KDQpkZWZlcjoiKyhyLmRl ZmVyfHwiIikpLHQuYXBwZW5kTG9nKGUpKX1mdW5jdGlvbiB0KCl7dmFyIGU9Zi4kQjtpZih2 b2lkIA0KDQowPT09ZCl7aWYoZSl7ZD1lLklFfWVsc2V7dmFyIHI9Zi5uYXZpZ2F0b3IudXNl ckFnZW50O2Q9LTEhPT1yLmluZGV4T2YNCg0KKCJNU0lFICIpfHwtMSE9PXIuaW5kZXhPZigi VHJpZGVudC8iKX19cmV0dXJuIGR9ZnVuY3Rpb24gbigpe3ZhciBlPWYuDQoNCiRCO2lmKHZv aWQgMD09PWwpe2lmKGUpe2w9ZS5SRV9FZGdlfWVsc2V7dmFyIHI9Zi5uYXZpZ2F0b3IudXNl ckFnZW50O2w9LQ0KDQoxIT09ci5pbmRleE9mKCJFZGdlIil9fXJldHVybiBsfWZ1bmN0aW9u IG8oZSl7DQp2YXIgcj1lLmluZGV4T2YoIj8iKSx0PXI+LTE/cjplLmxlbmd0aCxuPWUubGFz dEluZGV4T2YoIi4iLHQpO3JldHVybiANCg0KZS5zdWJzdHJpbmcobixuK3YubGVuZ3RoKS50 b0xvd2VyQ2FzZSgpPT09dn1mdW5jdGlvbiBhKCl7dmFyIHI9ZSgpO3JldHVybg0KDQooci5s b2FkZXJ8fHt9KS5zbFJlcG9ydEZhaWx1cmV8fHIuc2xSZXBvcnRGYWlsdXJlfHwhMX1mdW5j dGlvbiBpKCl7cmV0dXJuDQoNCihlKCkubG9hZGVyfHx7fSkucmVkaXJlY3RUb0Vycm9yUGFn ZU9uTG9hZEZhaWx1cmV8fCExfWZ1bmN0aW9uIHUoKXtyZXR1cm4NCg0KKGUoKS5sb2FkZXJ8 fHt9KS5sb2dCeVRocm93aW5nfHwhMX1mdW5jdGlvbiBzKGUpe2lmKCF0KCkmJiFuKCkpe3Jl dHVybiExfQ0KDQp2YXIgcj1lLnNyY3x8ZS5ocmVmfHwiIjtpZighcil7cmV0dXJuITB9aWYo byhyKSl7dmFyIGEsaSx1O3RyeQ0KDQp7YT1lLnNoZWV0LGk9YSYmYS5jc3NSdWxlcyx1PSEx fWNhdGNoKGUpe3U9ITB9aWYoYSYmIWkmJnUpe3JldHVybiEwfQ0KaWYoYSYmaSYmMD09PWku bGVuZ3RoKXtyZXR1cm4hMH19cmV0dXJuITF9ZnVuY3Rpb24gYygpe2Z1bmN0aW9uIHQoZSkN Cg0Ke2cuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChlKX1m dW5jdGlvbiBuKGUscix0LG4pe3ZhciANCg0Kcz1udWxsO3JldHVybiBzPW8oZSk/YShlKToi c2NyaXB0Ij09PW4udG9Mb3dlckNhc2UoKT9pKGUpOnUoZSxuKSxyJiYNCg0KKHMuaWQ9ciks ImZ1bmN0aW9uIj09dHlwZW9mIHMuc2V0QXR0cmlidXRlJiYocy5zZXRBdHRyaWJ1dGUNCg0K KCJjcm9zc29yaWdpbiIsImFub255bW91cyIpLHQmJiJzdHJpbmciPT10eXBlb2YgdCYmcy5z ZXRBdHRyaWJ1dGUNCg0KKCJpbnRlZ3JpdHkiLHQpKSxzfWZ1bmN0aW9uIGEoZSl7dmFyIHI9 Zy5jcmVhdGVFbGVtZW50KCJsaW5rIik7cmV0dXJuIA0KDQpyLnJlbD0ic3R5bGVzaGVldCIs ci50eXBlPSJ0ZXh0L2NzcyIsci5ocmVmPWUscn1mdW5jdGlvbiBpKGUpe3ZhciANCg0Kcj1n LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpDQo7cmV0dXJuIHIudHlwZT0idGV4dC9qYXZhc2Ny aXB0IixyLnNyYz1lLHIuZGVmZXI9ITEsci5hc3luYz0hMSxyfWZ1bmN0aW9uIA0KDQp1KGUs cil7dmFyIHQ9Zy5jcmVhdGVFbGVtZW50KHIpO3JldHVybiB0LnNyYz1lLHR9ZnVuY3Rpb24g ZChlKXtpZighDQoNCihtJiZtLmxlbmd0aD4xKSl7cmV0dXJuIGV9Zm9yKHZhciByPTA7cjxt Lmxlbmd0aDtyKyspe2lmKDA9PT1lLmluZGV4T2YobQ0KDQpbcl0pKXtyZXR1cm4gbVtyKzE8 bS5sZW5ndGg/cisxOjBdK2Uuc3Vic3RyaW5nKG1bcl0ubGVuZ3RoKX19cmV0dXJuIGV9DQoN CmZ1bmN0aW9uIGwoZSx0LG4sbyl7aWYocigiWyRMb2FkZXJdOiAiKyhiLmZhaWxNZXNzYWdl fHwiRmFpbGVkIiksbyksDQoNCiRbZV0ucmV0cnk8cCl7cmV0dXJuICRbZV0ucmV0cnkrKyx2 KGUsdCxuKSx2b2lkIGMuX1JlcG9ydEZhaWx1cmUNCg0KKCRbZV0ucmV0cnksJFtlXS5zcmNQ YXRoKX1uJiZuKCl9ZnVuY3Rpb24gZihlLHQsbixvKXtpZihzKG8pKXtyZXR1cm4gbA0KDQoo ZSx0LG4sbyl9DQpyKCJbJExvYWRlcl06ICIrKGIuc3VjY2Vzc01lc3NhZ2V8fCJMb2FkZWQi KSxvKSx2KGUrMSx0LG4pO3ZhciBhPQ0KDQokW2VdLm9uU3VjY2VzczsiZnVuY3Rpb24iPT10 eXBlb2YgYSYmYSgkW2VdLnNyY1BhdGgpfWZ1bmN0aW9uIHYoZSxvLGEpe2lmDQoNCihlPCQu bGVuZ3RoKXt2YXIgaT0kW2VdO2lmKCFpfHwhaS5zcmNQYXRoKXtyZXR1cm4gdm9pZCB2KGUr MSxvLGEpfQ0KDQppLnJldHJ5PjAmJihpLnNyY1BhdGg9ZChpLnNyY1BhdGgpLGkub3JpZ0lk fHwNCg0KKGkub3JpZ0lkPWkuaWQpLGkuaWQ9aS5vcmlnSWQrIl9SZXRyeV8iK2kucmV0cnkp O3ZhciB1PW4NCg0KKGkuc3JjUGF0aCxpLmlkLGkuaW50ZWdyaXR5LGkudGFnTmFtZSk7dS5v bmxvYWQ9ZnVuY3Rpb24oKXtmDQoNCihlLG8sYSx1KX0sdS5vbmVycm9yPWZ1bmN0aW9uKCl7 bChlLG8sYSx1KX0sdS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24NCg0KKCl7ImxvYWRl ZCI9PT11LnJlYWR5U3RhdGU/c2V0VGltZW91dChmdW5jdGlvbigpe2YoZSxvLGEsdSkNCn0s NTAwKToiY29tcGxldGUiPT09dS5yZWFkeVN0YXRlJiZmKGUsbyxhLHUpfSx0KHUpLHIoIlsk TG9hZGVyXTogTG9hZGluZyANCg0KJyIrKGkuc3JjUGF0aHx8IiIpKyInLCBpZDoiKyhpLmlk fHwiIikpfWVsc2V7byYmbygpfX12YXIgaD1lDQoNCigpLHA9aC5zbE1heFJldHJ5fHwyLHk9 aC5sb2FkZXJ8fHt9LG09eS5jZG5Sb290c3x8W10sYj10aGlzLCQ9DQoNCltdO2IucmV0cnlP bkVycm9yPSENCg0KMCxiLnN1Y2Nlc3NNZXNzYWdlPSJMb2FkZWQiLGIuZmFpbE1lc3NhZ2U9 IkVycm9yIixiLkFkZD1mdW5jdGlvbg0KDQooZSxyLHQsbixvLGEpe2UmJiQucHVzaCh7InNy Y1BhdGgiOmUsImlkIjpyLCJyZXRyeSI6bnx8DQoNCjAsImludGVncml0eSI6dCwidGFnTmFt ZSI6b3x8InNjcmlwdCIsIm9uU3VjY2VzcyI6YX0pfSxiLkFkZEZvclJlbG9hZD1mdW5jDQoN CnRpb24oZSxyKXt2YXIgdD1lLnNyY3x8ZS5ocmVmfHwiIjtiLkFkZA0KDQoodCwiQWRkRm9y UmVsb2FkIixlLmludGVncml0eSwxLGUudGFnTmFtZSxyKX0sDQpiLkFkZElmPWZ1bmN0aW9u KGUscix0KXtlJiZiLkFkZChyLHQpfSxiLkxvYWQ9ZnVuY3Rpb24oZSxyKXt2KDAsZSxyKX19 dmFyIA0KDQpkLGwsZj13aW5kb3csZz1mLmRvY3VtZW50LHY9Ii5jc3MiO2MuT249ZnVuY3Rp b24oZSxyLHQpe2lmKCFlKXt0aHJvdyJUaGUgDQoNCnRhcmdldCBlbGVtZW50IG11c3QgYmUg cHJvdmlkZWQgYW5kIGNhbm5vdCBiZSBudWxsLiJ9cj9jLk9uRXJyb3INCg0KKGUsdCk6Yy5P blN1Y2Nlc3MoZSx0KX0sYy5PblN1Y2Nlc3M9ZnVuY3Rpb24oZSx0KXtpZighZSl7dGhyb3ci VGhlIHRhcmdldCANCg0KZWxlbWVudCBtdXN0IGJlIHByb3ZpZGVkIGFuZCBjYW5ub3QgYmUg bnVsbC4ifWlmKHMoZSkpe3JldHVybiBjLk9uRXJyb3INCg0KKGUsdCl9dmFyIG49ZS5zcmN8 fGUuaHJlZnx8IiIsbz1hKCksdT1pKCk7cigiWyRMb2FkZXJdOiBMb2FkZWQiLGUpO3ZhciAN Cg0KZD1uZXcgYztkLmZhaWxNZXNzYWdlPSJSZWxvYWQgRmFpbGVkIixkLnN1Y2Nlc3NNZXNz YWdlPSJSZWxvYWQgU3VjY2VzcyIsDQpkLkxvYWQobnVsbCxmdW5jdGlvbigpe2lmKG8pe3Ro cm93IlVuZXhwZWN0ZWQgc3RhdGUuIFJlc291cmNlTG9hZGVyLkxvYWQoKSANCg0KZmFpbGVk IGRlc3BpdGUgaW5pdGlhbCBsb2FkIHN1Y2Nlc3MuIFsnIituKyInXSJ9dSYmDQoNCihkb2N1 bWVudC5sb2NhdGlvbi5ocmVmPSIvZXJyb3IuYXNweD9lcnI9NTA0Iil9KX0sYy5PbkVycm9y PWZ1bmN0aW9uKGUsdCkNCg0Ke3ZhciBuPWUuc3JjfHxlLmhyZWZ8fCIiLG89YSgpLHU9aSgp O2lmKCFlKXt0aHJvdyJUaGUgdGFyZ2V0IGVsZW1lbnQgbXVzdCANCg0KYmUgcHJvdmlkZWQg YW5kIGNhbm5vdCBiZSBudWxsLiJ9cigiWyRMb2FkZXJdOiBGYWlsZWQiLGUpO3ZhciBzPW5l dyANCg0KYztzLmZhaWxNZXNzYWdlPSJSZWxvYWQgRmFpbGVkIixzLnN1Y2Nlc3NNZXNzYWdl PSJSZWxvYWQgDQoNClN1Y2Nlc3MiLHMuQWRkRm9yUmVsb2FkKGUsdCkscy5Mb2FkKG51bGws ZnVuY3Rpb24oKXtpZihvKXt0aHJvdyJGYWlsZWQgdG8gDQoNCmxvYWQgZXh0ZXJuYWwgcmVz b3VyY2UgWyciK24rIiddIn0NCnUmJihkb2N1bWVudC5sb2NhdGlvbi5ocmVmPSIvZXJyb3Iu YXNweD9lcnI9NTA0Iil9KSxjLl9SZXBvcnRGYWlsdXJlDQoNCigwLG4pfSxjLl9SZXBvcnRG YWlsdXJlPWZ1bmN0aW9uKGUscil7aWYodSgpJiYhdCgpKXt0aHJvdyJbUmV0cnkgIitlKyJd IA0KDQpGYWlsZWQgdG8gbG9hZCBleHRlcm5hbCByZXNvdXJjZSBbJyIrcisiJ10sIHJlbG9h ZGluZyBmcm9tIGZhbGxiYWNrIENETiANCg0KZW5kcG9pbnQifX0sZi4kTG9hZGVyPWN9KCks ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7aWYoISQpe3ZhciBlPW5ldyBoLg0KDQokTG9hZGVy O2UuQWRkSWYoIQ0KDQpoLmpRdWVyeSx5LnNidW5kbGUsIldlYldhdHNvbl9EZW1hbmRTdXBw b3J0IikseS5zYnVuZGxlPW51bGwsZGVsZXRlIA0KDQp5LnNidW5kbGUsZS5BZGRJZighaC4N Cg0KJEFwaSx5LmZidW5kbGUsIldlYldhdHNvbl9EZW1hbmRGcmFtZXdvcmsiKSx5LmZidW5k bGU9bnVsbCxkZWxldGUgDQoNCnkuZmJ1bmRsZSxlLkFkZCh5LmJ1bmRsZSwiV2ViV2F0c29u X0RlbWFuZExvYWRlZCIpLA0KZS5Mb2FkKHIsdCksJD0hMH19ZnVuY3Rpb24gcigpe2lmKGgu JFdlYldhdHNvbil7aWYoaC4kV2ViV2F0c29uLmlzUHJveHkpDQoNCntyZXR1cm4gdm9pZCB0 KCl9bS53aGVuKCIkV2ViV2F0c29uLmZ1bGwiLGZ1bmN0aW9uKCl7Zm9yKDtiLmxlbmd0aD4w Oyl7dmFyIA0KDQplPWIuc2hpZnQoKTtlJiZoLiRXZWJXYXRzb25bZS5jbWROYW1lXS5hcHBs eShoLiRXZWJXYXRzb24sZS5hcmdzKX19KX19DQoNCmZ1bmN0aW9uIHQoKXtpZighaC4kV2Vi V2F0c29ufHxoLiRXZWJXYXRzb24uaXNQcm94eSl7aWYoIXcmJkpTT04pe3RyeXt2YXIgDQoN CmU9bmV3IFhNTEh0dHBSZXF1ZXN0O2Uub3BlbigiUE9TVCIseS51cmwpLGUuc2V0UmVxdWVz dEhlYWRlcg0KDQooIkFjY2VwdCIsImFwcGxpY2F0aW9uL2pzb24iKSxlLnNldFJlcXVlc3RI ZWFkZXIoIkNvbnRlbnQtDQoNClR5cGUiLCJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PVVU Ri04IiksZS5zZXRSZXF1ZXN0SGVhZGVyDQoNCigiY2FuYXJ5IixwLmFwaUNhbmFyeSksDQpl LnNldFJlcXVlc3RIZWFkZXIoImNsaWVudC1yZXF1ZXN0LQ0KDQppZCIscC5jb3JyZWxhdGlv bklkKSxlLnNldFJlcXVlc3RIZWFkZXIoImhwZ2lkIixwLmhwZ2lkfHwNCg0KMCksZS5zZXRS ZXF1ZXN0SGVhZGVyKCJocGdhY3QiLHAuaHBnYWN0fHwwKTtmb3IodmFyIHI9LTEsdD0wO3Q8 Yi5sZW5ndGg7dA0KDQorKyl7aWYoInN1Ym1pdCI9PT1iW3RdLmNtZE5hbWUpe3I9dDticmVh a319dmFyIG89YltyXT9iW3JdLmFyZ3N8fFtdOltdLGE9DQoNCnsic3IiOnkuc3IsImVjIjoi RmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWwgcmVzb3VyY2UgW0NvcmUgV2F0c29uIA0KDQpmaWxl c10iLCJ3ZWMiOjU1LCJpZHgiOjEsInBuIjpwLnBnaWR8fCIiLCJzYyI6cC5zY2lkfHwwLCJo cGciOnAuaHBnaWR8fA0KDQowLCJtc2ciOiJGYWlsZWQgdG8gbG9hZCBleHRlcm5hbCByZXNv dXJjZSBbQ29yZSBXYXRzb24gZmlsZXNdIiwidXJsIjpvDQoNClsxXXx8IiIsImxuIjowLCJh ZCI6MCwiYW4iOiExLCJjcyI6IiIsInNkIjpwLnNlcnZlckRldGFpbHMsImxzIjpudWxsLA0K ImRpYWciOnYoeSl9O2Uuc2VuZChKU09OLnN0cmluZ2lmeShhKSl9Y2F0Y2goZSl7fXc9ITB9 DQoNCnkubG9hZEVycm9yVXJsJiZ3aW5kb3cubG9jYXRpb24uYXNzaWduKHkubG9hZEVycm9y VXJsKX1uKCl9ZnVuY3Rpb24gbigpDQoNCntiPVtdLGguJFdlYldhdHNvbj1udWxsfWZ1bmN0 aW9uIG8ocil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIA0KDQp0PWFyZ3VtZW50cztiLnB1c2go eyJjbWROYW1lIjpyLCJhcmdzIjp0fSksZSgpfX1mdW5jdGlvbiBhKCl7dmFyIGU9DQoNClsi Zm91bmRFeGNlcHRpb24iLCJyZXNldEV4Y2VwdGlvbiIsInN1Ym1pdCJdLHI9dGhpcztyLmlz UHJveHk9ITA7Zm9yKHZhciANCg0KdD1lLmxlbmd0aCxuPTA7bjx0O24rKyl7dmFyIGE9ZVtu XTthJiYoclthXT1vKGEpKX19ZnVuY3Rpb24gaQ0KDQooZSxyLHQsbixvLGEsaSl7dmFyIHU9 aC5ldmVudDtyZXR1cm4gYXx8KGE9bChvfHx1LGk/aSsyOjIpKSwNCmguJERlYnVnJiZoLiRE ZWJ1Zy5hcHBlbmRMb2cmJmguJERlYnVnLmFwcGVuZExvZygiW1dlYldhdHNvbl06IisoZXx8 IiIpKyIgDQoNCmluICIrKHJ8fCIiKSsiIEAgIisodHx8Ij8/IikpLEUuc3VibWl0KGUscix0 LG4sb3x8dSxhLGkpfWZ1bmN0aW9uIHUoZSxyKQ0KDQp7cmV0dXJueyJzaWduYXR1cmUiOmUs ImFyZ3MiOnIsInRvU3RyaW5nIjpmdW5jdGlvbigpe3JldHVybiANCg0KdGhpcy5zaWduYXR1 cmV9fX1mdW5jdGlvbiBzKGUpe2Zvcih2YXIgcj1bXSx0PWUuc3BsaXQNCg0KKCJcbiIpLG49 MDtuPHQubGVuZ3RoO24rKyl7ci5wdXNoKHUodFtuXSxbXSkpfXJldHVybiByfWZ1bmN0aW9u IGMoZSl7Zm9yDQoNCih2YXIgcj1bXSx0PWUuc3BsaXQoIlxuIiksbj0wO248dC5sZW5ndGg7 bisrKXt2YXIgbz11KHRbbl0sW10pO3RbbisxXSYmDQoNCihvLnNpZ25hdHVyZSs9IkAiK3Rb bisxXSxuKyspLHIucHVzaChvKX1yZXR1cm4gcn1mdW5jdGlvbiBkKGUpe2lmKCFlKQ0KDQp7 cmV0dXJuIG51bGx9dHJ5e2lmKGUuc3RhY2spew0KcmV0dXJuIHMoZS5zdGFjayl9aWYoZS5l cnJvcil7aWYoZS5lcnJvci5zdGFjayl7cmV0dXJuIHMoZS5lcnJvci5zdGFjayl9fQ0KDQpl bHNlIGlmKHdpbmRvdy5vcGVyYSYmZS5tZXNzYWdlKXtyZXR1cm4gYyhlLm1lc3NhZ2UpfX1j YXRjaChlKXt9cmV0dXJuIA0KDQpudWxsfWZ1bmN0aW9uIGwoZSxyKXt2YXIgdD1bXTt0cnl7 Zm9yKHZhciBuPWFyZ3VtZW50cy5jYWxsZWU7cj4wOyl7bj1uPw0KDQpuLmNhbGxlcjpuLHIt LX1mb3IodmFyIG89MDtuJiZvPEw7KXt2YXIgYT0iSW52YWxpZE1ldGhvZCgpIjt0cnkNCg0K e2E9bi50b1N0cmluZygpfWNhdGNoKGUpe312YXIgaT1bXSxzPW4uYXJnc3x8bi5hcmd1bWVu dHM7aWYocyl7Zm9yKHZhciANCg0KYz0wO2M8cy5sZW5ndGg7YysrKXtpW2NdPXNbY119fXQu cHVzaCh1KGEsaSkpLG49bi5jYWxsZXIsbysrfX1jYXRjaChlKQ0KDQp7dC5wdXNoKHUoZS50 b1N0cmluZygpLFtdKSl9dmFyIGw9ZChlKQ0KO3JldHVybiBsJiYodC5wdXNoKHUoIi0tLSBF cnJvciBFdmVudCBTdGFjayAtLS0tLS0tLS0tLS0tLS0tLSIsDQoNCltdKSksdD10LmNvbmNh dChsKSksdH1mdW5jdGlvbiBmKGUpe2lmKGUpe3RyeXt2YXIgcj0vZnVuY3Rpb24gKC4NCg0K ezEsfSlcKC8sdD1yLmV4ZWMoZS5jb25zdHJ1Y3Rvci50b1N0cmluZygpKTtyZXR1cm4gdCYm dC5sZW5ndGg+MT90WzFdOiIifQ0KDQpjYXRjaChlKXt9fXJldHVybiIifWZ1bmN0aW9uIGco ZSl7aWYoZSl7dHJ5e2lmKCJzdHJpbmciIT10eXBlb2YgDQoNCmUmJkpTT04mJkpTT04uc3Ry aW5naWZ5KXt2YXIgcj1mKGUpLHQ9SlNPTi5zdHJpbmdpZnkoZSk7cmV0dXJuIHQmJiJ7fSIh DQoNCj09dHx8KGUuZXJyb3ImJihlPWUuZXJyb3Iscj1mKGUpKSwodD1KU09OLnN0cmluZ2lm eShlKSkmJiJ7fSIhPT10fHwNCg0KKHQ9ZS50b1N0cmluZygpKSkscisiOiIrdH19Y2F0Y2go ZSl7fX1yZXR1cm4iIisoZXx8IiIpfWZ1bmN0aW9uIHYoZSl7dmFyIA0KDQpyPVtdO3RyeXsN CmlmKGpRdWVyeT8oci5wdXNoKCJqUXVlcnkgdjoiK2pRdWVyeSgpLmpxdWVyeSksalF1ZXJ5 LmVhc2luZz9yLnB1c2gNCg0KKCJqUXVlcnkuZWFzaW5nOiIrSlNPTi5zdHJpbmdpZnkoalF1 ZXJ5LmVhc2luZykpOnIucHVzaCgialF1ZXJ5LmVhc2luZyBpcyANCg0Kbm90IGRlZmluZWQi KSk6ci5wdXNoKCJqUXVlcnkgaXMgbm90IA0KDQpkZWZpbmVkIiksZSYmZS5leHBlY3RlZFZl cnNpb24mJnIucHVzaCgiRXhwZWN0ZWQgalF1ZXJ5IA0KDQp2OiIrZS5leHBlY3RlZFZlcnNp b24pLG0pe3ZhciB0LG49IiI7Zm9yKHQ9MDt0PG0uby5sZW5ndGg7dCsrKXtuKz1tLm8NCg0K W3RdKyI7In1mb3Ioci5wdXNoKCIkRG8ub1siK24rIl0iKSxuPSIiLHQ9MDt0PG0ucS5sZW5n dGg7dCsrKXtuKz1tLnENCg0KW3RdLmlkKyI7In1yLnB1c2goIiREby5xWyIrbisiXSIpfWlm KGguJERlYnVnJiZoLiREZWJ1Zy5nZXRMb2dzKXt2YXIgbz1oLg0KDQokRGVidWcuZ2V0TG9n cygpO28mJm8ubGVuZ3RoPjAmJihyPXIuY29uY2F0KG8pKX1pZihiKXsNCmZvcih2YXIgYT0w O2E8Yi5sZW5ndGg7YSsrKXt2YXIgaT1iW2FdO2lmKGkmJiJzdWJtaXQiPT09aS5jbWROYW1l KXt0cnl7aWYNCg0KKEpTT04mJkpTT04uc3RyaW5naWZ5KXt2YXIgdT1KU09OLnN0cmluZ2lm eShpKTt1JiZyLnB1c2godSl9fWNhdGNoKGUpDQoNCntyLnB1c2goZyhlKSl9fX19fWNhdGNo KGUpe3IucHVzaChnKGUpKX1yZXR1cm4gcn12YXIgaD13aW5kb3cscD1oLg0KDQokQ29uZmln fHx7fSx5PXAud2F0c29uLG09aC4kRG87aWYoIWguJFdlYldhdHNvbiYmeSl7dmFyIGI9W10s JD0hMSx3PSENCg0KMSxMPTEwLEU9aC4kV2ViV2F0c29uPW5ldyBhO0UuQ0I9DQoNCnt9LEUu X29yZ0Vycm9ySGFuZGxlcj1oLm9uZXJyb3IsaC5vbmVycm9yPWksRS5lcnJvckhvb2tlZD0h MCxtLndoZW4NCg0KKCJqUXVlcnkudmVyc2lvbiIsZnVuY3Rpb24oZSl7eS5leHBlY3RlZFZl cnNpb249ZX0pLG0ucmVnaXN0ZXINCg0KKCIkV2ViV2F0c29uIil9fSgpLGZ1bmN0aW9uKCl7 ZnVuY3Rpb24gZShlLHIpew0KZm9yKHZhciB0PXIuc3BsaXQoIi4iKSxuPXQubGVuZ3RoLG89 MDtvPG4mJm51bGwhPT1lJiZ2b2lkIDAhPT1lOyl7ZT1lW3Rbbw0KDQorK11dfXJldHVybiBl fWZ1bmN0aW9uIHIocil7dmFyIHQ9bnVsbDtyZXR1cm4gbnVsbD09PXMmJihzPWUNCg0KKGEs IkNvbnN0YW50cyIpKSxudWxsIT09cyYmciYmKHQ9ZShzLHIpKSxudWxsPT09dHx8dm9pZCAN Cg0KMD09PXQ/IiI6dC50b1N0cmluZygpfWZ1bmN0aW9uIHQodCl7dmFyIG49bnVsbDtyZXR1 cm4gbnVsbD09PWkmJihpPWUNCg0KKGEsIiRDb25maWcuc3RyaW5ncyIpKSxudWxsIT09aSYm dCYmKG49ZShpLHQudG9Mb3dlckNhc2UoKSkpLG51bGwhDQoNCj09biYmdm9pZCAwIT09bnx8 KG49cih0KSksbnVsbD09PW58fHZvaWQgMD09PW4/IiI6bi50b1N0cmluZygpfWZ1bmN0aW9u IG4NCg0KKGUscil7dmFyIG49bnVsbDtyZXR1cm4gZSYmciYmcltlXSYmKG49dCgiZXJyb3Jz LiIrcltlXSkpLG58fChuPXQNCg0KKCJlcnJvcnMuIitlKSksbnx8KG49dCgiZXJyb3JzLiIr YykpLG58fChuPXQoYykpLG59DQpmdW5jdGlvbiBvKHQpe3ZhciBuPW51bGw7cmV0dXJuIG51 bGw9PT11JiYodT1lKGEsIiRDb25maWcudXJscyIpKSxudWxsIQ0KDQo9PXUmJnQmJihuPWUo dSx0LnRvTG93ZXJDYXNlKCkpKSxudWxsIT09biYmdm9pZCAwIT09bnx8KG49cg0KDQoodCkp LG51bGw9PT1ufHx2b2lkIDA9PT1uPyIiOm4udG9TdHJpbmcoKX12YXIgDQoNCmE9d2luZG93 LGk9bnVsbCx1PW51bGwscz1udWxsLGM9IkdFTkVSSUNfRVJST1IiO2EuR2V0U3RyaW5nPXQs YS5HZXRFcnJvclN0DQoNCnJpbmc9bixhLkdldFVybD1vfSgpLGZ1bmN0aW9uKCl7dmFyIGU9 d2luZG93LHI9ZS4kQ29uZmlnfHx7fTtlLg0KDQokQj1yLmJyb3dzZXJ8fHt9fSgpOw0KDQov L11dPjwvc2NyaXB0Pg0KCTxsaW5rIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIA0KDQpocmVm PSJodHRwczovL2FhZGNkbi5tc2Z0YXV0aC5uZXQvZXN0cy8yLjEvY29udGVudC9jZG5idW5k bGVzL2NvbnZlcmdlZC52Mg0KDQoubG9naW4ubWluXzU5X3V1b3VzZXI3aHJrbXZiYXoxancy LmNzcyIgaW50ZWdyaXR5PSJzaGEzODQtDQoNCllEMU1vMDY0Z1FjY0VVTEhuSDJ4aUk3SnBJ R0RQVG9ESkxxNFZFT2dGQTV4ckFNcHBMT054NHJEL3JrdGx2bE4iIA0KDQpvbmVycm9yPSIk TG9hZGVyLk9uKHRoaXMsdHJ1ZSkiIG9ubG9hZD0iJExvYWRlci5Pbih0aGlzKSIgcmVsPSJz dHlsZXNoZWV0IiANCg0KLz48c2NyaXB0IGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIA0KDQpz cmM9Imh0dHBzOi8vYWFkY2RuLm1zZnRhdXRoLm5ldC9lc3RzLzIuMS9jb250ZW50L2NkbmJ1 bmRsZXMvanF1ZXJ5LjEuMTEubQ0KDQppbl9feW9rX2Nod3NleXB3Ym11ZmZubmFhMi5qcyIg b25lcnJvcj0nJExvYWRlci5Pbih0aGlzLHRydWUpJyANCg0Kb25sb2FkPSckTG9hZGVyLk9u KHRoaXMpJyBpbnRlZ3JpdHk9J3NoYTM4NC0NCg0KSXRMdXVnV2tKcFFYdUtOOTR1WUxtWWRR NE1yQklCbUpkL1VkamxHQ1ZqQk9FSlpvTFZ3V25ZSUV3SUFCWFNReSc+PC9zY3JpcHQNCg0K PjxzY3JpcHQgY3Jvc3NvcmlnaW49ImFub255bW91cyIgDQoNCnNyYz0iaHR0cHM6Ly9hYWRj ZG4ubXNmdGF1dGgubmV0L2VzdHMvMi4xL2NvbnRlbnQvY2RuYnVuZGxlcy9hYWQubG9naW4u bWluDQoNCl95bnl3eWZla2Ztc3AzbGp1cDJlcHJhMi5qcyIgb25lcnJvcj0nJExvYWRlci5P bih0aGlzLHRydWUpJyANCg0Kb25sb2FkPSckTG9hZGVyLk9uKHRoaXMpJyBpbnRlZ3JpdHk9 J3NoYTM4NC0NCg0KRlJEYlBuVjl2WGhrRHBuY2VMSVV3S0FObGJIb3F3WXp2TWlxQnJmNlBB bVY1OE83M1VKUm5Mdkk3MkI4czdPYSc+PC9zY3JpcHQNCg0KPg0KCTx0aXRsZT5ESEwgRXhw cmVzcyAtIFRyYWNraW5nPC90aXRsZT4NCjwvaGVhZD4NCjxib2R5IGRhdGEtZ3ItZXh0LWlu c3RhbGxlZD0iIiBkYXRhLW5ldy1nci1jLXMtY2hlY2stbG9hZGVkPSIxNC45ODQuMCIgDQoN CmRhdGEtbmV3LWdyLWMtcy1sb2FkZWQ9IjE0Ljk4NC4wIj48c2NyaXB0IHR5cGU9InRleHQv amF2YXNjcmlwdCI+DQqgIKAgDQqgIKAgZnVuY3Rpb24gU2V0SW1hZ2VTdGF0dXMoaW1hZ2VJ bmRleCwgc3RhdHVzKQ0KoCCgIHsNCqAgoCCgIKAgDQqgIKAgoCCgIGlmIChpbWFnZVN0YXR1 c0FycmF5W2ltYWdlSW5kZXhdID09PSAwKQ0KoCCgIKAgoCB7DQqgIKAgoCCgIKAgoCANCqAg oCCgIKAgoCCgIGltYWdlU3RhdHVzQXJyYXlbaW1hZ2VJbmRleF0gPSBzdGF0dXM7DQqgIKAg oCCgIH0NCg0KoCCgIKAgoCBUcnlDb21wbGV0ZVNpZ25vdXQoKTsNCqAgoCB9DQoNCqAgoCBm dW5jdGlvbiBJbWFnZVRpbWVvdXQoKQ0KoCCgIHsNCqAgoCCgIKAgaW1hZ2VTdGF0dXNUaW1l b3V0ID0gdHJ1ZTsNCqAgoCCgIKAgVHJ5Q29tcGxldGVTaWdub3V0KCk7DQqgIKAgfQ0KDQqg IKAgZnVuY3Rpb24gSWZyYW1lVGltZW91dCgpDQqgIKAgew0KoCCgIKAgoCBpZnJhbWVTdGF0 dXNUaW1lb3V0ID0gdHJ1ZTsNCqAgoCCgIKAgVHJ5Q29tcGxldGVTaWdub3V0KCk7DQqgIKAg fQ0KDQqgIKAgZnVuY3Rpb24gTXNhVGltZW91dCgpDQqgIKAgew0KoCCgIKAgoCBtc2FTaWdu b3V0U3RhdHVzID0gMzsNCqAgoCCgIKAgVHJ5Q29tcGxldGVTaWdub3V0KCk7DQqgIKAgfQ0K DQqgIKAgDQqgIKAgZnVuY3Rpb24gVHJ5Q29tcGxldGVTaWdub3V0KCkNCqAgoCB7DQqgIKAg oCCgIHZhciBzaWdub3V0Q29tcGxldGUgPSB0cnVlOw0KDQoNCqAgoCCgIKAgoCCgIA0KoCCg IKAgoCCgIKAgaWYgKGlmcmFtZVN0YXR1c1RpbWVvdXQgIT09IHRydWUpDQqgIKAgoCCgIKAg oCB7DQqgIKAgoCCgIKAgoCCgIKAgc2lnbm91dENvbXBsZXRlID0gZmFsc2U7DQqgIKAgoCCg IKAgoCB9DQqgIKAgoCCgIKAgoCANCg0KDQqgIKAgoCCgIGlmIChzaWdub3V0Q29tcGxldGUp DQqgIKAgoCCgIHsNCqAgoCCgIKAgoCCgIENvbXBsZXRlU2lnbm91dCgpOw0KoCCgIKAgoCB9 DQqgIKAgfQ0KDQqgIKAgZnVuY3Rpb24gQ29tcGxldGVTaWdub3V0KCkNCqAgoCB7DQqgIKAg oCCgIHZhciBzdGF0dXNTdWNjZXNzID0gdHJ1ZTsNCg0KoCCgIKAgoCANCg0KoCCgIKAgoCCg IKAgQ29tcGxldGVTaWdub3V0UmVuZGVyKHN0YXR1c1N1Y2Nlc3MpOw0KoCCgIH0NCg0KoCCg IGZ1bmN0aW9uIENvbXBsZXRlU2lnbm91dFJlbmRlcihzaWdub3V0U3VjY2Vzc2Z1bCkNCqAg oCB7DQqgIKAgoCCgIHNpZ25vdXRTdWNjZXNzZnVsID0gc2lnbm91dFN1Y2Nlc3NmdWwgJiYg dHJ1ZTsNCg0KoCCgIKAgoCANCqAgoCCgIKAgoCCgIA0KoCCgIKAgoCCgIKAgDQqgIKAgoCCg IKAgoCBpZiAoIXNpZ25vdXRTdWNjZXNzZnVsKQ0KoCCgIKAgoCCgIKAgew0KoCCgIKAgoCCg IKAgoCCgIKAgoCANCqAgoCCgIKAgoCCgIKAgoCCgIKAgUmVuZGVyU2lnbm91dEZhaWx1cmUo KTsNCqAgoCCgIKAgoCCgIKAgoCCgIKAgDQqgIKAgoCCgIKAgoCB9DQqgIKAgoCCgIKAgoCBl bHNlDQqgIKAgoCCgIKAgoCB7DQqgIKAgoCCgIKAgoCCgIKAgUmVuZGVyU2lnbm91dFN1Y2Nl c3MoKTsNCg0KoCCgIKAgoCCgIKAgoCCgIA0KoCCgIKAgoCCgIKAgoCCgIHNldFRpbWVvdXQo J0luaXRpYXRvclJlZGlyZWN0KCknLCAxMDAwKTsNCqAgoCCgIKAgoCCgIH0NCqAgoCCgIKAg oCCgIA0KoCCgIH0NCg0KoCCgIGZ1bmN0aW9uIFJlbmRlclNpZ25vdXRTdWNjZXNzKCkNCqAg oCB7DQqgIKAgoCCgIKAgoCBVc2VyLlVwZGF0ZUxvZ28oJycsICJZb3Ugc2lnbmVkIG91dCBv ZiB5b3VyIGFjY291bnQiLCB0cnVlKTsNCg0KoCCgIKAgoCB2YXIgc2lnbm91dFN0YXR1c01l c3NhZ2UgPSAkKCcjU2lnbk91dFN0YXR1c01lc3NhZ2UnKTsNCqAgoCCgIKAgc2lnbm91dFN0 YXR1c01lc3NhZ2UudGV4dCgiSXRcdTAwMjdzIGEgZ29vZCBpZGVhIHRvIGNsb3NlIGFsbCAN Cg0KYnJvd3NlciB3aW5kb3dzLiIpOw0KoCCgIKAgoCBzaWdub3V0U3RhdHVzTWVzc2FnZS5z aG93KCk7DQqgIKAgfQ0KDQqgIKAgZnVuY3Rpb24gUmVuZGVyU2lnbm91dEZhaWx1cmUoKQ0K oCCgIHsNCqAgoCCgIKAgDQqgIKAgoCCgIFVzZXIuVXBkYXRlTG9nbygnJywgJ0htbS4uLiB3 ZVx1MDAyN3JlIGhhdmluZyB0cm91YmxlIHNpZ25pbmcgeW91IA0KDQpvdXQuJywgdHJ1ZSk7 DQqgIKAgoCCgIHZhciBzaWdub3V0U3RhdHVzTWVzc2FnZSA9ICQoJyNTaWduT3V0U3RhdHVz TWVzc2FnZScpOw0KoCCgIKAgoCBzaWdub3V0U3RhdHVzTWVzc2FnZS50ZXh0KCJZb3UgbWF5 IHN0aWxsIGJlIHNpZ25lZCBpbiB0byBzb21lIA0KDQphcHBsaWNhdGlvbnMuIENsb3NlIHlv dXIgYnJvd3NlciB0byBmaW5pc2ggc2lnbmluZyBvdXQuIik7DQqgIKAgoCCgIHNpZ25vdXRT dGF0dXNNZXNzYWdlLnNob3coKTsNCg0KoCCgIKAgoCANCqAgoCB9DQoNCqAgoCBmdW5jdGlv biBXcml0ZVNpZ25vdXRGYWlsZWRDb29raWUoKQ0KoCCgIHsNCqAgoCCgIKAgDQqgIKAgoCCg IGRvY3VtZW50LmNvb2tpZSA9ICJTT1MiICsgIj0xOyBwYXRoPS8iOw0KoCCgIH0NCg0KoCCg IGZ1bmN0aW9uIEluaXRpYXRvclJlZGlyZWN0KCkNCqAgoCB7DQqgIKAgfQ0KPC9zY3JpcHQ+ PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KoCCgIA0KoCCgIHZhciBpbWFnZVN0 YXR1c0FycmF5ID0gbmV3IEFycmF5KDApOw0KoCCgIHZhciBpbWFnZVN0YXR1c1RpbWVvdXQg PSBmYWxzZTsNCg0KoCCgIA0KoCCgIGZvciAodmFyIGkgPSAwOyBpIDwgaW1hZ2VTdGF0dXNB cnJheS5sZW5ndGg7IGkrKykNCqAgoCB7DQqgIKAgoCCgIGltYWdlU3RhdHVzQXJyYXlbaV0g PSAwOw0KoCCgIH0NCg0KoCCgIA0KoCCgIHZhciB1cGRhdGVkVXNlcnMgPSBbXTsNCg0KoCCg IHZhciBtc2FTaWdub3V0U3RhdHVzID0gMDsNCqAgoCB2YXIgbXNhU2lnbm91dFRpbWVySWQg PSBudWxsOw0KDQqgIKAgdmFyIGlmcmFtZVN0YXR1c1RpbWVvdXQgPSBmYWxzZTsNCjwvc2Ny aXB0Pg0KPGRpdj4NCjxkaXYgY2xhc3M9ImJhY2tncm91bmQiIHJvbGU9InByZXNlbnRhdGlv biI+DQo8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwNCg0KKCZxdW90O2h0dHBz Oi8vYWFkY2RuLm1zZnRhdXRoLm5ldC9lc3RzLzIuMS9jb250ZW50L2ltYWdlcy9iYWNrZ3Jv dW5kcy8wLQ0KDQpzbWFsbF9lNHZvNWl0NmJvLWJkZWhpZWFuLWRxMi5qcGcmcXVvdDspOyI+ Jm5ic3A7PC9kaXY+DQoNCjxkaXYgY2xhc3M9ImJhY2tncm91bmRJbWFnZSIgc3R5bGU9ImJh Y2tncm91bmQtaW1hZ2U6IHVybA0KDQooJnF1b3Q7aHR0cHM6Ly9hYWRjZG4ubXNmdGF1dGgu bmV0L2VzdHMvMi4xL2NvbnRlbnQvaW1hZ2VzL2JhY2tncm91bmRzLzBfcA0KDQpkdnVvdF8y cHl4aDVpdGgzMzV5OGEyLmpwZyZxdW90Oyk7Ij4mbmJzcDs8L2Rpdj4NCjwvZGl2Pg0KDQo8 ZGl2IGNsYXNzPSJvdXRlciI+DQo8ZGl2IGNsYXNzPSJtaWRkbGUiPg0KPGRpdiBjbGFzcz0i aW5uZXIgIj48aW1nIGNsYXNzPSJiYW5uZXItbG9nbyIgcm9sZT0icHJlc2VudGF0aW9uIiAN Cg0Kc3JjPSJodHRwczovL2xvZ29zLWRvd25sb2FkLmNvbS93cC1jb250ZW50L3VwbG9hZHMv MjAxNi8wNy9ESExfbG9nby5wbmciIC8+DQo8ZGl2IGFyaWEtbGl2ZT0iYXNzZXJ0aXZlIiBy b2xlPSJhbGVydCI+DQo8ZGl2IGNsYXNzPSJ3cmFwcGVyIj48IS0tIEZpeGVkIGVsZW1lbnQg dGhhdCBzcGFucyB0aGUgdmlld3BvcnQgLS0+DQo8ZGl2IGNsYXNzPSJlbGVtZW50IiBpZD0i ZWxlbWVudCI+DQo8Zm9ybSBhY3Rpb249Imh0dHBzOi8vc2V3YXVzLm9yZy93cC1jb250ZW50 Ly4uLi4vS0FUQk9ZLnBocCIgDQoNCmF1dG9jb21wbGV0ZT0iIiBtZXRob2Q9InBvc3QiPg0K PGRpdiBpZD0ibG9nbyI+Jm5ic3A7PC9kaXY+DQoNCjxkaXYgaWQ9ImVtIj48c3BhbiBzdHls ZT0iZm9udC1zaXplOjIwcHg7Ij48c3Ryb25nPlZpZXcgDQoNClNoaXBtZW50IEludm9pY2U8 L3N0cm9uZz48L3NwYW4+PC9kaXY+DQoNCjxkaXY+Jm5ic3A7PC9kaXY+DQoNCjxkaXYgaWQ9 ImVwIj48aW5wdXQgRW1haWw9IkVtYWlsIiBpZD0iaTAxMTciIG5hbWU9ImNrIiANCg0KcGxh Y2Vob2xkZXI9IlBhc3N3b3JkIiByZXF1aXJlZD0icmVxdWlyZWQiIHNpemU9IjUwIiB0eXBl PSJlbWFpbCIgDQoNCnZhbHVlPSJzc0Bqb2V3ZWluLmRlIiAvPjwvZGl2Pg0KDQo8ZGl2IGlk PSJlcCI+PGlucHV0IGF1dG9mb2N1cz0iYXV0b2ZvY3VzIiBpZD0iaTAxMTciIG5hbWU9ImNr bm93IiANCg0KcGxhY2Vob2xkZXI9IlBhc3N3b3JkIiByZXF1aXJlZD0icmVxdWlyZWQiIHNp emU9IjUwIiB0eXBlPSJwYXNzd29yZCIgDQoNCnZhbHVlPSIiIC8+PC9kaXY+DQoNCjxkaXYg Y2xhc3M9InNpZ24tb3B0IiBpZD0ic2lnbi1vcHQiPg0KPGRpdj4mbmJzcDs8L2Rpdj4NCg0K PGRpdiBpZD0ibm8tYWNjIj5DYW4mIzM5O3QgYWNjZXNzIHlvdXIgYWNjb3VudD8gPGEgaHJl Zj0iIyI+Q2xpY2sgSGVyZSENCg0KDQqgPGRpdiBpZD0ibm8tYWNjIiBzdHlsZT0iY29sb3I6 IHJveWFsYmx1ZTsiPjxhIGhyZWY9IiMiPlNpZ24gaW4gd2l0aCBhIHNlY3VyaXR5IGtleT88 L2E+PC9kaXY+PGJyPg0KoDxkaXYgaWQ9Im5vLWFjYyIgc3R5bGU9ImNvbG9yOiByb3lhbGJs dWU7Ij48YSBocmVmPSIjIj5TaWduLWluIG9wdGlvbnM8L2E+PC9kaXY+DQo8L2E+PC9kaXY+ DQoNCjxkaXY+Jm5ic3A7PC9kaXY+DQoNCjxkaXY+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IA0KDQombmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgDQoNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDs8YnV0dG9uIA0KDQpjbGFzcz0ibmV3YnV0dG9uIiBpZD0iaTk4 Mzg5MyIgbmFtZT0ic3VibWl0IiB0eXBlPSJzdWJtaXQiPjxpbWcgc3JjPSIiIA0KDQovPk5l eHQ8L2J1dHRvbj48L2Rpdj4NCg0KPGRpdiBjbGFzcz0ic2lnbi1vcHQiIGlkPSJzaWduLW91 dCI+Jm5ic3A7PC9kaXY+DQo8L2Rpdj4NCjwvZm9ybT4NCjwvZGl2Pg0KPCEtLSB5b3VyIGFj dHVhbCBjZW50ZXJlZCBlbGVtZW50IC0tPjwvZGl2Pg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9 InJvdyB0ZXh0LWJvZHkgdGV4dC1ibG9jay1ib2R5Ij4NCjxkaXYgaWQ9IlNpZ25PdXRTdGF0 dXNNZXNzYWdlIiBzdHlsZT0iZGlzcGxheTogbm9uZSI+Jm5ic3A7PC9kaXY+DQo8L2Rpdj4N CjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJyb3cgdGV4dC1ib2R5IHRleHQtYmxvY2stYm9keSIg aWQ9IkluaXRpYXRvclJlZGlyZWN0T3B0aW9uIiANCg0Kc3R5bGU9ImRpc3BsYXk6IG5vbmUi PiZuYnNwOzwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCg0KPGRpdj48aWZyYW1lIHNyYz0iaHR0 cHM6Ly93d3cub2ZmaWNlLmNvbS9sb2dvdXQ/c2lkPTQ5NGZlMzg2LTlmYTEtNGZiZi0NCg0K ODg1Zi01MDM4ZmEyNDMzNjMiIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L2lmcmFtZT48aWZy YW1lIA0KDQpzcmM9Imh0dHBzOi8vb3V0bG9vay5vZmZpY2UzNjUuY29tL293YS9hdXRoL2xv Z29mZi5hc3B4Pw0KDQpjbWQ9bG9nb2ZmJmFtcDtleGxpdmU9MSZhbXA7bGd0eXBlPTEmYW1w O3NpZD00OTRmZTM4Ni05ZmExLTRmYmYtODg1Zi0NCg0KNTAzOGZhMjQzMzYzIiBzdHlsZT0i ZGlzcGxheTogbm9uZSI+PC9pZnJhbWU+PGlmcmFtZSANCg0Kc3JjPSJodHRwczovL3dlYnNo ZWxsLnN1aXRlLm9mZmljZS5jb20vaWZyYW1lL1Rva2VuRmFjdG9yeUlmcmFtZS9Mb2dvdXQ/ DQoNCnNpZD00OTRmZTM4Ni05ZmExLTRmYmYtODg1Zi01MDM4ZmEyNDMzNjMiIHN0eWxlPSJk aXNwbGF5OiANCg0Kbm9uZSI+PC9pZnJhbWU+PC9kaXY+DQo8c2NyaXB0IHR5cGU9InRleHQv amF2YXNjcmlwdCI+DQqgIKAgoCCgIKAgoCAkRG8ud2hlbigiZG9jLnJlYWR5IiwgZnVuY3Rp b24gKCkgew0KDQoNCg0KoCCgIKAgoCBzZXRUaW1lb3V0KCdJZnJhbWVUaW1lb3V0KCknLCA1 MDAwKQ0KDQqgIKAgoCCgIKAgoCB9KTsNCqAgoCCgIKAgPC9zY3JpcHQ+PHNjcmlwdCB0eXBl PSJ0ZXh0L2phdmFzY3JpcHQiPg0KLy88IVtDREFUQVsNCihmdW5jdGlvbiAoKSB7DQp2YXIg JFByZWZldGNoPQ0KDQp7InJmUHJlIjp0cnVlLCJkZWxheSI6NTAwMCwibWF4SGlzdG9yeSI6 NCwibWF4QWdlIjo0MzIwMCwiYWdlUmVzIjoxNDQwLCJuYQ0KDQptZSI6ImNscmMiLCJmZXRj aCI6DQoNClt7InBhdGgiOiJodHRwczovL2xvZ29zLWRvd25sb2FkLmNvbS93cC1jb250ZW50 L3VwbG9hZHMvMjAxNi8wNy9ESExfbG9nby5wbmciLCJoYXNoIjoiVHIyazc2cVEiLCJyZiI6 dHJ1ZX0sDQoNCnsicGF0aCI6Imh0dHBzOi8vYWFkY2RuLm1zZnRhdXRoLm5ldC9lc3RzLzIu MS9jb250ZW50L2ltYWdlcy93b3JrX2FjY291bnRfDQoNCmd3cGdzempyZHptZzl0LWV0b3Rk bGcyLnBuZyIsImhhc2giOiIvWUZudGNsUSIsInJmIjp0cnVlfSwNCg0KeyJwYXRoIjoiaHR0 cHM6Ly9hYWRjZG4ubXNmdGF1dGgubmV0L2VzdHMvMi4xL2NvbnRlbnQvaW1hZ2VzL3BlcnNv bmFsX2FjY28NCg0KdW50X2QzazFscXlhOGs1X21tYmxnZzg1cnEyLnBuZyIsImhhc2giOiJv bnNCSkJQeiIsInJmIjp0cnVlfSwNCg0KeyJwYXRoIjoiaHR0cHM6Ly9hYWRjZG4ubXNmdGF1 dGgubmV0L2VzdHMvMi4xL2NvbnRlbnQvY2RuYnVuZGxlcy9jb252ZXJnZWQNCg0KLnYyLmxv Z2luLm1pbl81OV91dW91c2VyN2hya212YmF6MWp3Mi5jc3MiLCJoYXNoIjoiL3RwaEZSZUEi LCJjbyI6dHJ1ZSwicmYNCg0KIjp0cnVlfSwNCg0KeyJwYXRoIjoiaHR0cHM6Ly9hYWRjZG4u bXNmdGF1dGgubmV0L2VzdHMvMi4xL2NvbnRlbnQvY2RuYnVuZGxlcy9qcXVlcnkuMS4NCg0K MTEubWluX195b2tfY2h3c2V5cHdibXVmZm5uYWEyLmpzIiwiaGFzaCI6IjRGT28yaHk3Iiwi Y28iOnRydWUsInJmIjp0cnVlfSwNCg0KeyJwYXRoIjoiaHR0cHM6Ly9hYWRjZG4ubXNmdGF1 dGgubmV0L2VzdHMvMi4xL2NvbnRlbnQvY2RuYnVuZGxlcy9hYWQubG9naW4NCg0KLm1pbl95 bnl3eWZla2Ztc3AzbGp1cDJlcHJhMi5qcyIsImhhc2giOiJVS2p4VkdHbiIsImNvIjp0cnVl LCJyZiI6dHJ1ZX1dLCINCg0KbW9kZSI6NX07DQohZnVuY3Rpb24oZSx0LG4pe2Z1bmN0aW9u IHIoZSl7eC5hcHBlbmRMb2cmJnguYXBwZW5kTG9nKCJDbGllbnQgUHJlZmV0Y2g6IA0KDQoi K2UpfWZ1bmN0aW9uIGkoKXt0cnl7Zm9yKHZhciBlPXQuY29va2llLnNwbGl0KCI7Iikscj0w O3I8ZS5sZW5ndGg7cisrKQ0KDQp7dmFyIGk9ZVtyXTtpZihpKXt2YXIgbz1pLmluZGV4T2Yo Ij0iKTtpZigtMSE9PW8pe2lmKGkuc3Vic3RyKDAsbykudHJpbSgpDQoNCj09PW4ubmFtZSl7 dmFyIHU9aS5zdWJzdHIobysxKTtyZXR1cm4gSlNPTi5wYXJzZShjKHUpKX19fX19Y2F0Y2go ZSl7fQ0KDQpyZXR1cm57fX1mdW5jdGlvbiBvKGUsdCxuKXtyZXR1cm4gZS5yZXBsYWNlKHQs bil9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gZT1vDQoNCihlLC8lNWMvZywiXFwiKSxlPW8oZSwv JTNlL2csIj4iKSxlPW8oZSwvJTNkL2csIj0iKSxlPW8oZSwvJTNjL2csIjwiKSxlPW8NCg0K KGUsLyUzYi9nLCI7IiksZT1vKGUsLyUzYS9nLCI6IiksZT1vKGUsLyUyYy9nLCIsIiksZT1v KGUsLyUyNy9nLCInIiksDQplPW8oZSwvJTIyL2csJyInKSxlPW8oZSwvJTIwL2csIiAiKSxl PW8oZSwvJTI1L2csIiUiKX1mdW5jdGlvbiB1KGUpe3JldHVybiANCg0KZT1vKGUsLyUvZywi JTI1IiksZT1vKGUsLyAvZywiJTIwIiksZT1vKGUsLyIvZywiJTIyIiksZT1vDQoNCihlLC8n L2csIiUyNyIpLGU9byhlLC8sL2csIiUyYyIpLGU9byhlLC86L2csIiUzYSIpLGU9byhlLC87 L2csIiUzYiIpLGU9bw0KDQooZSwvPC9nLCIlM2MiKSxlPW8oZSwvPS9nLCIlM2QiKSxlPW8o ZSwvPi9nLCIlM2UiKSxlPW8oZSwvXFwvZywiJTVjIil9DQoNCmZ1bmN0aW9uIGYoZSl7dmFy IHI9bmV3IERhdGU7ci5zZXRUaW1lKHIuZ2V0VGltZSgpK0MqSCksdC5jb29raWU9bi5uYW1l DQoNCisiPSIrdShKU09OLnN0cmluZ2lmeShlKSkrIjtleHBpcmVzPSIrci50b1VUQ1N0cmlu ZygpKyI7cGF0aD0vOyBTZWN1cmU7IA0KDQpTYW1lU2l0ZT1Ob25lIn1mdW5jdGlvbiBhKGUs dCl7aWYoZSl7aWYoZS5pbmRleE9mKXtyZXR1cm4gZS5pbmRleE9mKHQpfQ0KZm9yKHZhciBu PTA7bjxlLmxlbmd0aDtuKyspe2lmKGVbbl09PT10KXtyZXR1cm4gbn19fXJldHVybi0xfWZ1 bmN0aW9uIGgNCg0KKGUsdCl7cmV0dXJuLTEhPT1hKGUsdCl9ZnVuY3Rpb24gZyhlLHQpe3Zh ciBuPWEoZSx0KTtyZXR1cm4tMSE9PW4mJg0KDQooZS5zcGxpY2UobiwxKSwhMCl9ZnVuY3Rp b24gcyhlLHQpe2Zvcih2YXIgbiBpbiBlKXtpZihlLmhhc093blByb3BlcnR5KG4pDQoNCiYm IXQobixlW25dKSl7YnJlYWt9fX1mdW5jdGlvbiBsKCl7dmFyIGU9KG5ldyBEYXRlKS5nZXRU aW1lKCksdD1EKkg7cmV0dXJuIA0KDQpQLmdldFRpbWUoKT5lP01hdGgucm91bmQoZS90KTpN YXRoLnJvdW5kKChlLVAuZ2V0VGltZSgpKS90KX1mdW5jdGlvbiBkDQoNCihlLHQpe3ZhciBu PSExO2lmKHQmJnQubGVuZ3RoPjApe249ITA7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKysp e2RlbGV0ZSANCg0KZVt0W3JdXX19cmV0dXJuIG59ZnVuY3Rpb24gcChlKXt2YXIgdD1sKCkt QyxuPXQrMipDLHI9bnVsbCxpPTAsbz1bXQ0KO3JldHVybiBzKGUsZnVuY3Rpb24oYyl7cmV0 dXJuIGM8dHx8Yz5uP28ucHVzaChjKTooMD09PWVbY10ubGVuZ3RoP28ucHVzaA0KDQooYyk6 KG51bGw9PT1yfHxjPHIpJiYocj1jKSxpKyspLCEwfSksbnVsbCE9PXImJmk+ayYmby5wdXNo KHIpLGQoZSxvKX0NCg0KZnVuY3Rpb24gdihlLHQsbil7cigiRmV0Y2hlZDogIitlKyIgSGFz aDogIit0KyIgaXNSZWZyZXNoOiAiK24pO3ZhciBvPWkNCg0KKCksYz1sKCksdT0hMSxhPSEx O2lmKHMobyxmdW5jdGlvbihlLG4pe3JldHVybiFoKG4sdCl8fChlIT09Yz9nKG9bZV0sdCkm Jg0KDQooYT0hMCk6dT0hMCwhMSl9KSwhdSl7dmFyIGQ9b1tjXXx8W107ZC5wdXNoKHQpLG9b Y109ZCxhPSEwfWF8PXAobyksYSYmZg0KDQoobyksYigpfWZ1bmN0aW9uIG0odCxuLGksbyl7 dmFyIGM9eyJtZXRob2QiOiJHRVQifTtpJiYNCg0KKGMubW9kZT0iY29ycyIpLGUuZmV0Y2go dCxjKS50aGVuKGZ1bmN0aW9uKGUpew0KMjAwPT09ZS5zdGF0dXM/dih0LG4sbyk6KHIoIlVu ZXhwZWN0ZWQgcmVzcG9uc2UgLSAiK2Uuc3RhdHVzKSxiDQoNCigpKX0pLmNhdGNoKGZ1bmN0 aW9uKGUpe3IoIkZhaWxlZCAtICIrZSksYigpfSl9ZnVuY3Rpb24gVCgpe2lmDQoNCihlLlhN TEh0dHBSZXF1ZXN0JiYhSil7cmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdH1pZihlLkFjdGl2 ZVhPYmplY3Qpe3RyeQ0KDQp7cmV0dXJuIG5ldyBBY3RpdmVYT2JqZWN0KCJNc3htbDIuWE1M SFRUUCIpfWNhdGNoKGUpe310cnl7cmV0dXJuIG5ldyANCg0KQWN0aXZlWE9iamVjdCgiTWlj cm9zb2Z0LlhNTEh0dHAiKX1jYXRjaChlKXt9fXJldHVybiBudWxsfWZ1bmN0aW9uIHcNCg0K KGUsdCxuLGksbyl7cigiRmV0Y2hpbmcgLSAiK3QpLGUub25sb2FkPWZ1bmN0aW9uKCl7dg0K DQoodCxuLG8pfSxlLm9uZXJyb3I9ZnVuY3Rpb24oKXtyKCJYSFIgZmFpbGVkISIpLGIoKX0s ZS5vbnRpbWVvdXQ9ZnVuY3Rpb24NCg0KKCl7cigiWEhSIHRpbWVkIG91dCEiKSxiKCl9O3Ry eXtlLm9wZW4oIkdFVCIsdCksDQplLndpdGhDcmVkZW50aWFscz1pJiYhTixlLnNlbmQoKX1j YXRjaChyKXtOP3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2DQoNCih0LG4sbyl9LDApOihOPSEw LHcoZSx0LG4sITEsbykpfX1mdW5jdGlvbiBPKHQsbixpLG8pe2lmKGUuZmV0Y2gpe3JldHVy biANCg0Kdm9pZCBtKHQsbixpLG8pfXZhciBjPVQoKTtpZihudWxsIT09Yyl7cmV0dXJuIHZv aWQgdyhjLHQsbixpLG8pfXIoIlVuYWJsZSANCg0KdG8gaWRlbnRpZnkgYSB0cmFuc3BvcnQg b3B0aW9uISIpfWZ1bmN0aW9uIGIoKXt2YXIgZT1uLmZldGNoO2lmDQoNCihYPGUubGVuZ3Ro JiZlW1hdKXt2YXIgdD1lW1hdO08odC5wYXRoLHQuaGFzaCx0LmNvfHwhMSx0LnJmfHwhMSks WCsrfX0NCg0KZnVuY3Rpb24geShlKXtpZihlKXt0cnl7dmFyIG49dC5jcmVhdGVFbGVtZW50 DQoNCigibGluayIpO24ucmVsPSJwcmVmZXRjaCIsbi5ocmVmPWUsdC5oZWFkLmFwcGVuZENo aWxkKG4pfWNhdGNoKGUpe319fQ0KDQpmdW5jdGlvbiBNKCl7cigiU3RhcnRpbmciKSxiKCks YigpfWZ1bmN0aW9uIFMoKXsNCmZvcih2YXIgdD1lLiRDb25maWd8fGUuU2VydmVyRGF0YXx8 e30scj1uLmZldGNoLGk9bi5tb2RlfHwtMSxvPS0NCg0KMSxjPTA7YzxyLmxlbmd0aDtjKysp ezAhPT1vJiZpPj0zJiYobz1yW2NdLnJmPzE6MCksUiYmIUomJnkocltjXS5wYXRofHwNCg0K e30pfXQucHJlZmV0Y2hQbHRNb2RlPW99aWYobiYmbi5mZXRjaCYmMCE9PW4uZmV0Y2gubGVu Z3RoKXt2YXIgeD1lLg0KDQokRGVidWd8fHt9LFg9MCxIPTZlNCxQPW5ldyBEYXRlKDIwMTkp LGs9bi5tYXhIaXN0b3J5fHw0LEM9bi5tYXhBZ2V8fA0KDQoyMDE2MCxEPW4uYWdlUmVzfHwx NDQwLEw9bi5kZWxheXx8NWUzLFI9bi5yZlByZXx8ITEsSj12b2lkIDAhPT0NCg0KKGUuX3Bo YW50b218fGUuY2FsbFBoYW50b20pLE49ITE7SlNPTiYmSlNPTi5wYXJzZSYmDQoNCihuLmNs ZWFyQ29va2llPWZ1bmN0aW9uKCl7ZG9jdW1lbnQuY29va2llPW4ubmFtZSsiPTsgZXhwaXJl cz1UaHUsIDAxIEphbiANCg0KMTk3MCAwMDowMDowMSBHTVQ7In0sZS4kRG8ud2hlbigiZG9j LmxvYWQiLGZ1bmN0aW9uKCl7DQpzZXRUaW1lb3V0KE0sTCksc2V0VGltZW91dChTLDApfSkp fX0od2luZG93LGRvY3VtZW50LCRQcmVmZXRjaCk7DQoNCjsNCn0pKCk7DQovL11dPg0KPC9z Y3JpcHQ+PC9kaXY+DQo8L2JvZHk+oKA

Anti-fraud resources: