LyoKICogT2xlVmlldyAoTmwucmMpCiAqIER1dGNoIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDggRnJhbnMgS29vbAogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgpMQU5HVUFHRSBMQU5HX0RVVENILCBTVUJMQU5HX05FVVRSQUwKCklETV9NRU5VIE1FTlUKewogICAgUE9QVVAgIiZCZXN0YW5kIgogICAgewogICAgICAgIE1FTlVJVEVNICImVmVyYmluZCBhYW4gYmVzdGFuZC4uLiIsICAgIElETV9CSU5ECiAgICAgICAgTUVOVUlURU0gIiZCZWtpamsgVHlwZUxpYi4uLiIsICAgIElETV9UWVBFTElCCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZTeXN0ZWVtIENvbmZpZ3VyYXRpZS4uLiIsICAgIElETV9TWVNDT05GCiAgICAgICAgTUVOVUlURU0gIiZSdW4gZGUgUmVnaXN0ZXIgRWRpdGVyIiwgICAgSURNX1JFR0VESVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkFmc2x1aXRlbiIsICAgIElETV9FWElUCiAgICB9CiAgICBQT1BVUCAiJk9iamVjdCIKICAgIHsKICAgICAgICBQT1BVUCAiJkNvQ3JlYXRlSW5zdGFuY2UgVmxhZyIKICAgICAgICB7CiAgICAgICAgICAgIE1FTlVJVEVNICJDTFNDVFhfJklOUFJPQ19TRVJWRVIiLCAgICBJRE1fRkxBR19JTlNFUlYsQ0hFQ0tFRAogICAgICAgICAgICBNRU5VSVRFTSAiQ0xTQ1RYX0lOUFJPQ18mSEFORExFUiIsICAgIElETV9GTEFHX0lOSEFOREwKICAgICAgICAgICAgTUVOVUlURU0gIkNMU0NUWF8mTE9DQUxfU0VSVkVSIiwgICAgICAgIElETV9GTEFHX0xPQ1NFUlYsQ0hFQ0tFRAogICAgICAgICAgICBNRU5VSVRFTSAiQ0xTQ1RYXyZSRU1PVEVfU0VSVkVSIiwgICAgSURNX0ZMQUdfUkVNU0VSVgogICAgICAgIH0KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQmVraWprICZUeXBlIGluZm9ybWF0aWUiLCAgICBJRE1fVFlQRUlORk8sIEdSQVlFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJDcmXrZXIgJkluc3RhbnRpZSIsICAgIElETV9DUkVBVEVJTlNULCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSAiQ3Jl62VyIEluc3RhbnRpZSAmT3AuLi4iLCAgICBJRE1fQ1JFQVRFSU5TVE9OLCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSAiJlZlcndpamRlciBJbnN0YW50aWUiLCAgICBJRE1fUkVMRUFTRUlOU1QsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJDb3BpZWVyIEMmTFNJRCBuYWFyIGNsaXBib3JkIiwgICAgSURNX0NPUFlDTFNJRCwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIkNvcGllZXIgJkhUTUwgb2JqZWN0IExhYmVsIG5hYXIgY2xpcGJvcmQiLCBJRE1fSFRNTFRBRywgR1JBWUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZCZWtpamsuLi4iLCAgICBJRE1fVklFVywgR1JBWUVECiAgICB9CiAgICBQT1BVUCAiQmUma2lqa2VuIgogICAgewogICAgICAgIE1FTlVJVEVNICImRXhwZXJ0IG1vZHVzIiwgICAgSURNX0VYUEVSVCxDSEVDS0VECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlZlciZib3JnZW4gY29tcG9uZW50ZW4gY2F0ZWdvcmll624iLCAgICBJRE1fSElEREVOLCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlRhYWtiYWxrIiwgICAgSURNX1RPT0xCQVIsQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICImU3RhdHVzIEJhbGsiLCAgICBJRE1fU1RBVFVTQkFSLENIRUNLRUQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlZlcnZlcnNlblx0RjUiLCAgICBJRE1fUkVGUkVTSAogICAgfQogICAgUE9QVVAgIiZIZWxwIgogICAgewogICAgICAgIE1FTlVJVEVNICImT3ZlciBPbGVWaWV3IiwgICAgSURNX0FCT1VUCiAgICB9Cn0KCklETV9UWVBFTElCIE1FTlUKewogICAgUE9QVVAgIiZCZXN0YW5kIgogICAgewogICAgICAgIE1FTlVJVEVNICJPcCZzbGFhbiBhbHMuLi4iLCAgICBJRE1fU0FWRUFTCiAgICAgICAgTUVOVUlURU0gIlMmbHVpdGVuIiwgIElETV9DTE9TRQogICAgfQogICAgUE9QVVAgIkJlJmtpamtlbiIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiJkdyb2VwZWVyIG9wIHR5cGUga2luZCIsIElETV9HUk9VUAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImVGFha2JhbGsiLCAgICBJRE1fVE9PTEJBUgogICAgICAgIE1FTlVJVEVNICImU3RhdHVzIEJhbGsiLCBJRE1fU1RBVFVTQkFSLENIRUNLRUQKICAgIH0KfQoKU1RSSU5HVEFCTEUKewogICAgSURTX0FQUE5BTUUgICAgICAgICAgICAiT2xlVmlldyIKICAgIElEU19BUFBUSVRMRSAgICAgICAgICAgIk9sZVZpZXciCiAgICBJRFNfUkVBRFkgICAgICAgICAgICAgICJHZXJlZWQiCiAgICBJRFNfQUJPVVQgICAgICAgICAgICAgICJPbGVWaWV3IC0gT0xFL0NPTSBPYmplY3QgVG9uZXIiCiAgICBJRFNfQUJPVVRWRVIgICAgICAgICAgICJ2ZXJzaWUgMS4wIgogICAgSURTX1RZUEVMSUJUSVRMRSAgICAgICAiSVR5cGVMaWIgVG9uZXIiCiAgICBJRFNfT1BFTiAgICAgICAgICAgICAgICJPcGVuIgogICAgSURTX09QRU5fVFlQRUxJQl9GSUxURVIgIlR5cGVMaWIgRmlsZXMgKCoudGxiOyoub2xiOyouZGxsOyoub2N4OyouZXhlKVwwKi50bGI7Ki5vbGI7Ki5kbGw7Ki5vY3g7Ki5leGVcMEFsbCBGaWxlcyAoKi4qKVwwKi4qXDBcMCIKCiAgICBJRE1fQklORCwgICAgICAgICAgICAgICJWZXJiaW5kIGFhbiBlZW4gYmVzdGFuZCB2aWEgZWVuIEJlc3RhbmRzYmVzY2hyaWp2ZXIgKE1vbmlrZXIpIgogICAgSURNX1RZUEVMSUIsICAgICAgICAgICAiT3BlbiBlZW4gVHlwZUxpYiBiZXN0YW5kIGVuIGJla2lqayBkZSBpbmhvdWQiCiAgICBJRE1fU1lTQ09ORiwgICAgICAgICAgICJXaWp6aWcgZGUgYWxnZW1lbmUgbWFjaGluZSBEaXN0cmlidXRlZCBDT00gaW5zdGVsbGluZ2VuIgogICAgSURNX1JFR0VESVQsICAgICAgICAgICAiUnVuIGRlIFdpbmUgcmVnaXN0ZXIgZWRpdGVyIgogICAgSURNX0VYSVQsICAgICAgICAgICAgICAiVmVybGFhdCBkZSBhcHBsaWNhdGllLiBWcmFhZ3Qgb20gd2lqemlnaW5nZW4gb3AgdGUgc2xhYW4iCiAgICBJRE1fQ1JFQVRFSU5TVCwgICAgICAgICJDcmXrZXIgZWVuIGluc3RhbnRpZSB2YW4gZ2V0IGdlc2VsZWN0ZWVyZGUgb2JqZWN0IgogICAgSURNX0NSRUFURUlOU1RPTiwgICAgICAiQ3Jl62VyIGVlbiBpbnN0YW50aWUgdmFuIGdldCBnZXNlbGVjdGVlcmRlIG9iamVjdCBvcCBlZW4gc3BlY2lmaWVrZSBtYWNoaW5lIgogICAgSURNX1JFTEVBU0VJTlNULCAgICAgICAiVmVyd2lqZGVyIGRlIG1vbWVudGVlbCBnZXNlbGVjdGVlcmRlIG9iamVjdCBpbnN0YW50aWUiCiAgICBJRE1fQ09QWUNMU0lELCAgICAgICAgICJDb3BpZWVyIGRlIEdVSUQgdmFuIGhldCBtb21lbnRlZWwgZ2VzZWxlY3RlZXJkZSBvYmplY3QgbmFhciBoZXQgY2xpcGJvcmQiCiAgICBJRE1fVklFVywgICAgICAgICAgICAgICJUb29uIGRldGFpbHMgdm9vciBoZXQgZ2VzZWxlY3RlZXJkZSBvYmplY3QiCiAgICBJRE1fRkxBR19JTlNFUlYsICAgICAgICJHZWJydWlrIENMU0NUWF9JTlBST0NfU0VSVkVSIGFscyBDb0dldENsYXNzT2JqZWN0IHdvcmR0IGFhbmdlcm9lcGVuIgogICAgSURNX0ZMQUdfSU5IQU5ETCwgICAgICAiR2VicnVpayBDTFNDVFhfSU5QUk9DX0hBTkRMRVIgYWxzIENvR2V0Q2xhc3NPYmplY3Qgd29yZHQgYWFuZ2Vyb2VwZW4iCiAgICBJRE1fRkxBR19MT0NTRVJWLCAgICAgICJHZWJydWlrIENMU0NUWF9MT0NBTF9TRVJWRVIgYWxzIENvR2V0Q2xhc3NPYmplY3Qgd29yZHQgYWFuZ2Vyb2VwZW4iCiAgICBJRE1fRkxBR19SRU1TRVJWLCAgICAgICJHZWJydWlrIENMU0NUWF9SRU1PVEVfU0VSVkVSIGFscyBDb0dldENsYXNzT2JqZWN0IHdvcmR0IGFhbmdlcm9lcGVuIgogICAgSURNX0VYUEVSVCwgICAgICAgICAgICAiU2NoYWtlbCB0dXNzZW4gZXhwZXJ0IGVuIGJlZ2lubmVyIG1vZHVzIgogICAgSURNX0hJRERFTiwgICAgICAgICAgICAiVG9vbi92ZXJiZXJnIGNvbXBvbmVudCBjYXRlZ29yaWXrbiBkaWUgbmlldCB6aWNodGJhYXIgem91ZGVuIG1vZXRlbiB6aWpuIgogICAgSURNX1RPT0xCQVIsICAgICAgICAgICAiVG9vbiBvZiB2ZXJiZXJnIGRlIHRhYWtiYWxrIgogICAgSURNX1NUQVRVU0JBUiwgICAgICAgICAiVG9vbiBvZiB2ZXJiZXJnIGRlIHN0YXR1cyBiYWxrIgogICAgSURNX1JFRlJFU0gsICAgICAgICAgICAiVmVydmVycyBhbGxlIGxpanN0ZW4iCiAgICBJRE1fQUJPVVQsICAgICAgICAgICAgICJUb29uIHByb2dyYW1tYSBpbmZvcm1hdGllLCB2ZXJzaWUgbnVtbWVyIGVuIGNvcHlyaWdodCIKCiAgICBJRE1fU0FWRUFTLCAgICAgICAgICAgICJPcHNsYWFuIGFscyBlZW4gLklETCBvZiAuSCBiZXN0YW5kIgogICAgSURNX0NMT1NFLCAgICAgICAgICAgICAiU2x1aXQgdmVuc3RlciIKICAgIElETV9HUk9VUCwgICAgICAgICAgICAgIkdyb2VwZWVyIHR5cGVpbmZvcyBvcCB0eXBlIgoKICAgIElEU19UUkVFX09DLCAgICAgICAgICAgIk9iamVjdENsYXNzZXMiCiAgICBJRFNfVFJFRV9HQkNDLCAgICAgICAgICJHZWdyb2VwZWVyZCBvcCBDb21wb25lbnQgQ2F0ZWdvcmllIgogICAgSURTX1RSRUVfTzFPLCAgICAgICAgICAiT0xFIDEuMCBPYmplY3RlbiIKICAgIElEU19UUkVFX0NMTywgICAgICAgICAgIkNPTSBMaWJyYXJ5IE9iamVjdGVuIgogICAgSURTX1RSRUVfQU8sICAgICAgICAgICAiQWxsZSBPYmplY3RlbiIKICAgIElEU19UUkVFX0FJRCwgICAgICAgICAgIkFwcGxpY2F0aWUgSUQncyIKICAgIElEU19UUkVFX1RMLCAgICAgICAgICAgIlR5cGUgQmlibGlvdGhla2VuIgogICAgSURTX1RMX1ZFUiwgICAgICAgICAgICAidmVyLiIKICAgIElEU19UUkVFX0ksICAgICAgICAgICAgIkludGVyZmFjZXMiCgogICAgSURTX1RBQl9SRUcsICAgICAgICAgICAiUmVnaXN0ZXIiCiAgICBJRFNfVEFCX0lNUEwsICAgICAgICAgICJJbXBsZW1lbnRhdGllIgogICAgSURTX1RBQl9BQ1RJViwgICAgICAgICAiQWN0aXZhdGllIgoKICAgIElEU19DR0NPRkFJTCwgICAgICAgICAgIkNvR2V0Q2xhc3NPYmplY3QgZmFhbGRlLiIKICAgIElEU19FUlJPUl9VTktOLCAgICAgICAgIk9uYmVrZW5kZSBmb3V0IgogICAgSURTX1RSVUUsICAgICAgICAgICAgICAiV2FhciIKICAgIElEU19GQUxTRSwgICAgICAgICAgICAgIk9ud2FhciIKICAgIElEU19CWVRFUywgICAgICAgICAgICAgImJ5dGVzIgoKICAgIElEU19FUlJPUl9MT0FEVFlQRUxJQiwgIkxvYWRUeXBlTGliKCAlcyApIGdlZmFhbGQgKCQleCkiCiAgICBJRFNfSU5IRVJJVElOVEVSRkFDRVMsICJJbmhlcml0ZWQgSW50ZXJmYWNlcyIKfQoKRExHX0NSRUFURUlOU1RPTiBESUFMT0cgRElTQ0FSREFCTEUgMCwgMCwgMjUwLCA0MQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfTk9JRExFTVNHIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiVmVyYmluZGVuIG1ldCBlZW4gYW5kZXJlIG1hY2hpbmUiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgTFRFWFQgICAiJk1hY2hpbmUgbmFhbToiLCBJRElHTk9SRSwgNSwgNiwgMTkwLCA4CiAgICBFRElUVEVYVCAgICBJRENfTUFDSElORSwgNSwgMTYsIDE5MCwgMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTAogICAgREVGUFVTSEJVVFRPTiAgICImT0siLCBJRE9LLCAyMDAsIDUsIDQ1LCAxNAogICAgUFVTSEJVVFRPTiAgIiZBbm51bGVyZW4iLCBJRENBTkNFTCwgMjAwLCAyMiwgNDUsIDE0Cn0KCkRMR19TWVNDT05GIERJQUxPRyBESVNDQVJEQUJMRSAwLCAwLCAxNzAsIDEwMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfTk9JRExFTVNHIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiU3lzdGVlbSBDb25maWd1cmF0aWUiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgTFRFWFQgICAiU3lzdGVlbSBJbnN0ZWxsaW5nZW4iLCBJRElHTk9SRSwgNSwgNiwgMTYwLCA4CiAgICBDSEVDS0JPWCAgICAiJkRpc3RyaWJ1dGVkIENPTSB0b2VzdGFhbiIsIElEQ19FTkFCTEVEQ09NLCA1LCAyMCwgMTYwLCAxMCwgV1NfVEFCU1RPUCB8IFdTX0dST1VQIHwgQlNfQVVUT0NIRUNLQk9YCiAgICBDSEVDS0JPWCAgICAiJlJlbW90ZSBDb25uZWN0aW9ucyB0b2VzdGFhbiAoQWxsZWVuIFdpbjk1KSIsIElEQ19FTkFCTEVSRU1PVEUsIDUsIDM1LCAxNjAsIDEwLCBXU19UQUJTVE9QIHwgV1NfR1JPVVAgfCBCU19BVVRPQ0hFQ0tCT1gKICAgIExURVhUICAgIkRlemUgaW5zdGVsbGluZ2VuIHdpanppZ2VuIGFsbGVlbiByZWdpc3RlciB3YWFyZGVuLlxuWmUgaGViYmVuIGdlZW4gZWZmZWN0IG9wIGRlIHNuZWxoZWlkIHZhbiBXaW5lLiIsIElESUdOT1JFLCA1LCA1MCwgMTYwLCA0MAogICAgREVGUFVTSEJVVFRPTiAgICImT0siLCBJRE9LLCA3MCwgODAsIDQ1LCAxNAogICAgUFVTSEJVVFRPTiAgIiZBbm51bGVyZW4iLCBJRENBTkNFTCwgMTIwLCA4MCwgNDUsIDE0Cn0KCkRMR19ERUZBVUxUX0lWIERJQUxPRyBESVNDQVJEQUJMRSAwLCAwLCAyODAsIDUwClNUWUxFIERTX01PREFMRlJBTUUgfCBEU19OT0lETEVNU0cgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJEZWZhdWx0IEludGVyZmFjZSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiAgICBMVEVYVCAgICJJbnRlcmZhY2UiLCBJRElHTk9SRSwgNSwgNiwgNTAsIDgKICAgIExURVhUICAgIiIsIElEQ19MQUJFTCwgNjAsIDYsIDE0NSwgOAogICAgTFRFWFQgICAiSUlEOiIsIElESUdOT1JFLCA1LCAxNiwgNTAsIDgKICAgIExURVhUICAgIiIsIElEQ19JREVOVElGSUVSLCA2MCwgMTYsIDE2NSwgOAogICAgREVGUFVTSEJVVFRPTiAgICImU2x1aXRlbiIsIElEQ0FOQ0VMLCAyMzAsIDYsIDQ1LCAxNAogICAgUFVTSEJVVFRPTiAgIiZCZWtpamsgVHlwZSBJbmZvcm1hdGllIiwgSURDX1ZJRVdUWVBFSU5GTywgNiwgMzEsIDcwLCAxNCwgV1NfRElTQUJMRUQKfQoKRExHX0lQRVJTSVNUX0lWIERJQUxPRyBESVNDQVJEQUJMRSAwLCAwLCAyODAsIDI5ClNUWUxFIERTX01PREFMRlJBTUUgfCBEU19OT0lETEVNU0cgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJJUGVyc2lzdCBJbnRlcmZhY2UiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgTFRFWFQgICAiQ2xhc3MgTmFhbToiLCBJRElHTk9SRSwgNSwgNiwgNTAsIDgKICAgIExURVhUICAgIiIsIElEQ19MQUJFTCwgNjAsIDYsIDE0NSwgOAogICAgTFRFWFQgICAiQ0xTSUQ6IiwgSURJR05PUkUsIDUsIDE2LCA1MCwgOAogICAgTFRFWFQgICAiIiwgSURDX0lERU5USUZJRVIsIDYwLCAxNiwgMTY1LCA4CiAgICBERUZQVVNIQlVUVE9OICAgIiZTbHVpdGVuIiwgSURDQU5DRUwsIDIzMCwgNiwgNDUsIDE0Cn0KCkRMR19JUEVSU0lTVFNUUkVBTV9JViBESUFMT0cgRElTQ0FSREFCTEUgMCwgMCwgMjgwLCA2OApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfTk9JRExFTVNHIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiSVBlcnNpc3RTdHJlYW0gSW50ZXJmYWNlIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIExURVhUICAgIkNsYXNzIE5hYW06IiwgSURJR05PUkUsIDUsIDYsIDUwLCA4CiAgICBMVEVYVCAgICIiLCBJRENfTEFCRUwsIDYwLCA2LCAxNDUsIDgKICAgIExURVhUICAgIkNMU0lEOiIsIElESUdOT1JFLCA1LCAxNiwgNTAsIDgKICAgIExURVhUICAgIiIsIElEQ19JREVOVElGSUVSLCA2MCwgMTYsIDE2NSwgOAogICAgREVGUFVTSEJVVFRPTiAgICImU2x1aXRlbiIsIElEQ0FOQ0VMLCAyMzAsIDYsIDQ1LCAxNAogICAgUFVTSEJVVFRPTiAgIiZJc0RpcnR5IiwgSURDX0lTRElSVFlfQlVUVE9OLCA2LCAzMSwgNTAsIDE0CiAgICBMVEVYVCAgICI/Pz8iLCBJRENfSVNESVJUWSwgNjAsIDM0LCAxNDUsIDgKICAgIFBVU0hCVVRUT04gICImR2V0U2l6ZU1heCIsIElEQ19HRVRTSVpFTUFYX0JVVFRPTiwgNiwgNDksIDUwLCAxNAogICAgTFRFWFQgICAiPz8/IiwgSURDX0dFVFNJWkVNQVgsIDYwLCA1MiwgMTQ1LCA4Cn0K