LyoKICogV2luZSBjb21tYW5kIHByb21wdAogKiBGcmVuY2ggTGFuZ3VhZ2UgU3VwcG9ydAogKgogKiBDb3B5cmlnaHQgMjAwMyBTeWx2YWluIFBldHJlb2xsZQogKiBDb3B5cmlnaHQgMjAwNyBKb25hdGhhbiBFcm5zdAogKiAKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19GUkVOQ0gsIFNVQkxBTkdfTkVVVFJBTAoKU1RSSU5HVEFCTEUKewogIFdDTURfQVRUUklCLCAiQWlkZSBkJ0FUVFJJQlxuIgogIFdDTURfQ0FMTCwKIkNBTEwgPGZpY2hpZXJiYXRjaD4gc2VydCDgIGFwcGVsZXIgdW4gZmljaGllciBiYXRjaCBcblwKZGVwdWlzIHVuIGF1dHJlIGZpY2hpZXIgYmF0Y2guIFF1YW5kIGxlIGZpY2hpZXIgYmF0Y2ggc29ydCwgbGUgY29udHL0bGUgcmV2aWVudFxuXAphdSBmaWNoaWVyIHF1aSBsJ2EgYXBwZWzpLiBMYSBjb21tYW5kZSBDQUxMIGRvaXQg6nRyZSBzdWl2aWUgZGVzIHBhcmFt6HRyZXNcblwKZGUgbGEgcHJvY+lkdXJlIGFwcGVs6WUuXG5cClxuXApMZXMgY2hhbmdlbWVudHMgZGUgculwZXJ0b2lyZSBjb3VyYW50LCBkZSB2YXJpYWJsZXMgZCdlbnZpcm9ubWVudCBldGMuIGZhaXRzXG5cCmRhbnMgdW5lIHByb2PpZHVyZSBhcHBlbOllIHNvbnQgdHJhbnNtaXMg4CBsJ2FwcGVsYW50LlxuIgoKICBXQ01EX0NELCAgICAgIkNoYW5nZSBsZSBy6XBlcnRvaXJlIGNvdXJhbnQgcGFyIGTpZmF1dFxuIgogIFdDTURfQ0hESVIsICAiQ2hhbmdlIGxlIHLpcGVydG9pcmUgY291cmFudCBwYXIgZOlmYXV0XG4iCgogIFdDTURfQ0xTLAoiQ0xTIGVmZmFjZSBsJ+ljcmFuXG4iCgogIFdDTURfQ09QWSwgICAiQWlkZSBkZSBDT1BZXG4iCiAgV0NNRF9DVFRZLCAgICJBaWRlIGRlIENUVFlcbiIKICBXQ01EX0RBVEUsICAgIkFpZGUgZGUgREFURVxuIgogIFdDTURfREVMLCAgICAiQWlkZSBkZSBERUxcbiIKICBXQ01EX0RJUiwgICAgIkFpZGUgZGUgRElSXG4iCgogIFdDTURfRUNITywKIkVDSE8gPGNoYe5uZT4gYWZmaWNoZSA8Y2hh7m5lPiBzdXIgbGEgY29uc29sZSBjb3VyYW50ZS5cblwKXG5cCkVDSE8gT04gcHJvdm9xdWUgbCdhZmZpY2hhZ2UgZGUgdG91dGVzIGxlcyBjb21tYW5kZXMgc3VyIGxhIGNvbnNvbGVcblwKYXZhbnQgbGV1ciBleOljdXRpb24uXG5cClxuXApFQ0hPIE9GRiBhbm51bGUgbCdlZmZldCBkZSB0b3V0IHBy6WPpZGVudCBFQ0hPIE9OIChFQ0hPIGVzdCBPRkYgcGFyXG5cCmTpZmF1dCkuIE9uIHBldXQgZW1w6mNoZXIgbCdhZmZpY2hhZ2UgZGUgRUNITyBPRkYgZW4gbGUgZmFpc2FudFxuXApwculj6WRlciBkJ3VuIHNpZ25lIEAuXG4iCgogIFdDTURfRVJBU0UsICAiQWlkZSBkZSBFUkFTRVxuIgoKICBXQ01EX0ZPUiwKIkxhIGNvbW1hbmRlIEZPUiBzZXJ0IOAgZXjpY3V0ZXIgdW5lIGNvbW1hbmRlIHBvdXIgdW4gZ3JvdXBlIGRlIGZpY2hpZXJzLlxuXApcblwKU3ludGF4ZaA6IEZPUiAldmFyaWFibGUgSU4gKGdyb3VwZSkgRE8gY29tbWFuZGVcblwKXG5cCkxhIG7pY2Vzc2l06SBkZSBkb3VibGVyIGxlIHNpZ25lICclJyBlbiB1dGlsaXNhbnQgRk9SIGRhbnMgdW4gZmljaGllciBiYXRjaCBcblwKbidleGlzdGUgcGFzIGRhbnMgY21kLlxuIgoKICBXQ01EX0dPVE8sCiJMYSBjb21tYW5kZSBHT1RPIHRyYW5zZuhyZSBsJ2V46WN1dGlvbiDgIHVuIGF1dHJlIGxhYmVsIGRhbnMgdW4gXG5cCmZpY2hpZXIgYmF0Y2guXG5cClxuXApMZSBsYWJlbCBjaWJsZSBkZSBHT1RPIHBldXQg6nRyZSBsb25nIGRlIDI1NSBjYXJhY3TocmVzXG5cCm1haXMgbmUgcGV1dCBpbmNsdXJlIGQnZXNwYWNlcyAoY2VjaSBlc3QgZGlmZulyZW50IGQnYXV0cmVzIHN5c3TobWVzXG5cCmQnZXhwbG9pdGF0aW9uKS4gU2kgZGV1eCBvdSBwbHVzaWV1cnMgbGFiZWxzIGlkZW50aXF1ZXMgc29udCBkYW5zIGxlIG3qbWUgZmljaGllciBcblwKc2V1bCBsZSBwcmVtaWVyIHNlcmEgZXjpY3V06S4gRXNzYXllciBkZSBzYXV0ZXIg4CB1biBsYWJlbCBub24tZXhpc3RhbnRcblwKdGVybWluZSBsJ2V46WN1dGlvbiBkdSBmaWNoaWVyIGJhdGNoIC5cblwKXG5cCkdPVE8gbidhIHBhcyBkJ2VmZmV0IHNpIHV0aWxpc+kgaW50ZXJhY3RpdmVtZW50LlxuIgoKICBXQ01EX0hFTFAsICAgIkFmZmljaGUgdW5lIGJy6HZlIGFpZGUgc3VyIGxlcyBjb21tYW5kZXMgaW50ZXJuZXMgZGUgQ01EXG4iCgogIFdDTURfSUYsCiJJRiBlc3QgdXRpbGlz6SBwb3VyIGV46WN1dGVyIHVuZSBjb21tYW5kZSBkZSBmYedvbiBjb25kaXRpb25uZWxsZS5cblwKXG5cClN5bnRheGWgOglJRiBbTk9UXSBFWElTVCBub21maWNoaWVyIGNvbW1hbmRlXG5cCgkJSUYgW05PVF0gY2hh7m5lMT09Y2hh7m5lMiBjb21tYW5kZVxuXAoJCUlGIFtOT1RdIEVSUk9STEVWRUwgbm9tYnJlIGNvbW1hbmRlXG5cClxuXApEYW5zIGxhIGRldXhp6G1lIGZvcm1lIGRlIGxhIGNvbW1hbmRlLCBjaGHubmUxIGV0IGNoYe5uZTIgZG9pdmVudCDqdHJlIFxuXAplbnRyZSBndWlsbGVtZXRzIGRvdWJsZXMuIExhIGNvbXBhcmFpc29uIGVzdCBpbnNlbnNpYmxlIOAgbGEgY2Fzc2UuXG4iCgogIFdDTURfTEFCRUwsICAiTEFCRUwgc2VydCDgIG1vZGlmaWVyIGxlIG5vbSBkZSB2b2x1bWUgZCd1biBkaXNxdWUuICBcblwKXG5cClN5bnRheGWgOiBMQUJFTCBbbGVjdGV1cjpdXG5cCkxhIGNvbW1uYW5kZSBkZW1hbmRlcmEgbGUgbm91dmVhdSBub20gZGUgdm9sdW1lIHBvdXIgbGUgbGVjdGV1ciBkb25u6S5cblwKVm91cyBwb3V2ZXogYWZmaWNoZXIgbGUgbm9tIGRlIHZvbHVtZSBhdmVjIGxhIGNvbW1hbmRlIFZPTC5cbiIKCiAgV0NNRF9NRCwgICAgICJDcullICBsZSBy6XBlcnRvaXJlIGRvbm7pIGVuIHBhcmFt6HRyZS5cbiIKICBXQ01EX01LRElSLCAgIkNy6WUgIGxlIHLpcGVydG9pcmUgZG9ubukgZW4gcGFyYW3odHJlLlxuIgogIFdDTURfTU9WRSwKIk1PVkUgZOlwbGFjZSB1biBmaWNoaWVyLCB1biBncm91cGUgZGUgZmljaGllcnMgb3UgdW4gculwZXJ0b2lyZVxuXArgIHVuIGF1dHJlIGVuZHJvaXQuIFNpIGwnb2JqZXQgZOlwbGFj6SBlc3QgdW4gculwZXJ0b2lyZSBhbG9yc1xuXAp0b3VzIGxlcyBmaWNoaWVycyBldCBzb3VzLXLpcGVydG9pcmVzIGRlIGwnb2JqZXQgc29udCDpZ2FsZW1lbnQgZOlwbGFj6XMuXG5cCk1PVkUg6WNob3VlIHNpIGwnYW5jaWVuIGV0IGxlIG5vdXZlbCBlbXBsYWNlbWVudCBzb250IHN1ciBkZXMgbGVjdGV1cnMgRE9TIGRpZmbpcmVudHMuXG4iCgogIFdDTURfUEFUSCwKIlBBVEggYWZmaWNoZSBvdSBjaGFuZ2UgbGUgY2hlbWluIGRlIHJlY2hlcmNoZSBkZSBjbWQuXG5cCkVudHJlciBQQVRIIGFmZmljaGVyYSBsZSBy6WdsYWdlIGNvdXJhbnQgZGUgUEFUSCAoYXUgZOlwYXJ0XG5cCmMnZXN0IGxhIHZhbGV1ciBkb25u6WUgZGFucyBsZSBmaWNoaWVyIGRlIGNvbmZpZ3VyYXRpb24gd2luZSkuIFBvdXIgY2hhbmdlclxuXApsZSBy6WdsYWdlLCBmYWl0ZXMgc3VpdnJlIGxhIGNvbW1hbmRlIFBBVEggZGUgbGEgbm91dmVsbGUgdmFsZXVyLlxuXApJbCBlc3QgcG9zc2libGUgZGUgbW9kaWZpZXIgbGUgUEFUSCBlbiB1dGlsaXNhbnQgbGEgdmFyaWFibGUgZCdlbnZpcm9ubWVudCBQQVRILCBcblwKcGFyIGV4ZW1wbGUgOlxuXAoJCVBBVEggJVBBVEglO2M6XFx0ZW1wIFxuIgoKICBXQ01EX1BBVVNFLAoiUEFVU0UgYWZmaWNoZSB1biBtZXNzYWdlIHN1ciBsJ+ljcmFuIDogJ1ByZXNzZXogRW50cullIHBvdXIgY29udGludWVyJ1xuXApldCBhdHRlbmQgcXVlIGwndXRpbGlzYXRldXIgcHJlc3NlIGxhIHRvdWNoZSBFbnRy6WUuIFBBVVNFIGVzdCBzdXJ0b3V0IHV0aWxpc+kgZGFuc1xuXApsZXMgZmljaGllcnMgYmF0Y2hzIHBvdXIgcGVybWV0dHJlIOAgbCd1dGlsaXNhdGV1ciBkZSBsaXJlIGxhIHNvcnRpZSBkZVxuXApsYSBkZXJuaehyZSBjb21tYW5kZSBhdmFudCBxdSdlbGxlIG5lIGRpc3BhcmFpc3NlIGRlIGwn6WNyYW4uXG4iCgogIFdDTURfUFJPTVBULAoiUFJPTVBUIHLoZ2xlIGwnaW52aXRlIGRlIGNvbW1hbmRlLlxuXApcblwKTGEgY2hh7m5lIHN1aXZhbnQgbGEgY29tbWFuZGUgUFJPTVBUIChhbmQgdGhlIHNwYWNlIGltbWVkaWF0ZWx5IGFmdGVyKVxuXAphcHBhcmHudCBhdSBk6WJ1dCBkZSBsYSBsaWduZSBxdWFuZCBjbWQgYXR0ZW5kIHVuZSBlbnRy6WUgdGV4dGUuXG5cClxuXApMZXMgY2hh7m5lcyBkZSBjYXJhY3TocmVzIHN1aXZhbnRlcyBvbnQgdW5lIHNpZ25pZmljYXRpb24gc3DpY2lhbGUgOlxuXApcblwKJCQgICAgU2lnbmUgRG9sbGFyICAgICAgICAkXyAgICBTYXV0IGRlIGxpZ25lICAgICAgICRiICAgIFNpZ25lIFBpcGUgKHwpXG5cCiRkICAgIERhdGUgY291cmFudGUgICAgICAgJGUgICAgRXNjYXBlICAgICAgICAgICAgICAkZyAgICBTaWduZSA+XG5cCiRsICAgIFNpZ25lIDwgICAgICAgICAgICAgJG4gICAgTGVjdGV1ciBjb3VyYW50ICAgICAkcCAgICBS6XBlcnRvaXJlIGNvdXJhbnRcblwKJHEgICAgU2lnbmUgPSAgICAgICAgICAgICAkdCAgICBIZXVyZSBjb3VyYW50ZSAgICAgICR2ICAgIFZlcnNpb24gZGUgY21kXG5cClxuXApOb3RleiBxdSdlbnRyZXIgbGEgY29tbWFuZGUgUFJPTVBUIHNhbnMgdGV4dGUgZCdpbnZpdGUgcmVtZXQgbCdpbnZpdGVcblwK4CBsYSB2YWxldXIgcGFyIGTpZmF1dCwgcXVpIGVzdCBsYSBsZXR0cmUgZHUgbGVjdGV1ciBjb3VyYW50IHN1aXZpZSBkZVxuXApzb24gculwZXJ0b2lyZSBjb3VyYW50IGV0IGQndW4gc2lnbmUgcGx1cy1ncmFuZC1xdWUgKD4pLlxuXAooVGVsIHF1ZSBsYSBjb21tYW5kZSBQUk9NUFQgJHAkZykuXG5cClxuXApMJ2ludml0ZSBwZXV0IGF1c3NpIOp0cmUgbW9kaWZp6WUgZW4gY2hhbmdlYW50IGxhIHZhcmlhYmxlIGQnZW52aXJvbm1lbnQgUFJPTVBULFxuXApkb25jIGxhIGNvbW1hbmRlICdTRVQgUFJPTVBUPXRleHRlJyBhIGxlIG3qbWUgZWZmZXQgcXVlICdQUk9NUFQgdGV4dGUnXG4iCgogIFdDTURfUkVNLAoiVW5lIGxpZ25lIGRlIGNvbW1hbmRlIGNvbW1lbudhbnQgcGFyIFJFTSAoc3VpdmkgZCd1bmUgZXNwYWNlKSBuJ2VuZ2VuZHJlIFxuXAphdWN1bmUgYWN0aW9uLCBldCBwZXV0IGRvbmMgc2VydmlyIGRlIGNvbW1lbnRhaXJlIGRhbnMgdW4gZmljaGllciBiYXRjaC5cbiIKCiAgV0NNRF9SRU4sICAgICJBaWRlIGRlIFJFTlxuIgogIFdDTURfUkVOQU1FLCAiQWlkZSBkZSBSRU5BTUVcbiIKICBXQ01EX1JELCAgICAgIkVmZmFjZSBsZSBy6XBlcnRvaXJlIGRvbm7pIGVuIHBhcmFt6HRyZS5cbiIKICBXQ01EX1JNRElSLCAgIkVmZmFjZSBsZSBy6XBlcnRvaXJlIGRvbm7pIGVuIHBhcmFt6HRyZS5cbiIKCiAgV0NNRF9TRVQsCiJTRVQgYWZmaWNoZSBvdSBjaGFuZ2UgbGVzIHZhcmlhYmxlcyBkJ2Vudmlyb25uZW1lbnQgZGUgY21kLlxuXApcblwKU0VUIHNhbnMgcGFyYW3odHJlIGFmZmljaGUgbCdlbnZpcm9ubmVtZW50IGNvdXJhbnQuXG5cClxuXApQb3VyIGNy6WVyIGV0IG1vZGlmaWVyIHVuZSB2YXJpYWJsZSBkJ2Vudmlyb25uZW1lbnQgbGEgc3ludGF4ZSBlc3Q6XG5cClxuXAogICAgICBTRVQgPHZhcmlhYmxlPj08dmFsZXVyPlxuXApcblwKb/kgPHZhcmlhYmxlPiBldCA8dmFsZXVyPiBzb250IGRlcyBjaGHubmVzIGRlIGNhcmFjdOhyZXMuIElsIGVzdCDgIG5vdGVyIHF1ZSA8dmFyaWFibGU+XG5cCm5lIHBldXQgY29udGVuaXIgZCdlc3BhY2UsIGV0IHF1J2lsIG5lIGRvaXQgcGFzIHkgZW4gYXZvaXIgbm9uIHBsdXMgYXV0b3VyIGR1IHNpZ25lIGQn6WdhbGl06S5cblwKXG5cClNvdXMgV2luZSwgbCdlbnZpcm9ubWVudCBkdSBzeXN06G1lIGj0dGUgZXN0XG5cCmluY2x1cyBkYW5zIGwnZW52aXJvbm5tZW50IFdpbjMyLCBpbCB5IGF1cmEgcGFyIGNvbnPpcXVlbnQgZ+lu6XJhbGVtZW50XG5cCmJpZW4gcGx1cyBkZSB2YWxldXJzIHF1ZSBkYW5zIHVuIHN5c3TobWUgV2luMzIgbmF0aWYuIE5vdGV6IHF1J2lsXG5cCm4nZXN0IHBhcyBwb3NzaWJsZSBkZSBtb2RpZmllciBsJ2Vudmlyb25uZW1lbnQgZHUgc3lzdOhtZSBkJ2V4cGxvaXRhdGlvbiBkYW5zIGNtZC5cbiIKCiAgV0NNRF9TSElGVCwKIlNISUZUIGVzdCB1dGlsaXPpIGRhbnMgdW4gZmljaGllciBiYXRjaCBwb3VyIGVubGV2ZXIgdW4gcGFyYW3odHJlIGRlIGxhXG5cCmxpc3RlLCBhaW5zaSBsZSBwYXJhbeh0cmUgMiBkZXZpZW50IHBhcmFt6HRyZSAxIGV0IGFpbnNpIGRlIHN1aXRlLiBJbCBlc3Qgc2FucyBlZmZldFxuXApzJ2lsIGVzdCBhcHBlbOkgZGVwdWlzIGxhIGxpZ25lIGRlIGNvbW1hbmRlLlxuIgoKICBXQ01EX1RJTUUsICAgIkFpZGUgZGUgVElNRVxuIgoKICBXQ01EX1RJVExFLAoiUuhnbGUgbGUgdGl0cmUgZGUgbGEgZmVu6nRyZSBwb3VyIGxhIHNlc3Npb24gY21kLCBTeW50YXhloDogVElUTEUgW2NoYe5uZV1cbiIKCiAgV0NNRF9UWVBFLAoiVFlQRSA8bm9tZmljaGllcj4gYWZmaWNoZSA8bm9tZmljaGllcj4gc3VyIGxhIGNvbnNvbGUgKG91IGFpbGxldXJzXG5cCnNpIHJlZGlyaWfpKS4gQXVjdW4gdGVzdCBuJ2VzdCBmYWl0IHF1YW5kIGF1IGZvcm1hdCB0ZXh0ZSBkdSBmaWNoaWVyLlxuIgoKICBXQ01EX1ZFUklGWSwKIlZFUklGWSBlc3QgdXRpbGlz6SBwb3VyIHBvc2l0aW9ubmVyLCBlZmZhY2VyIG91IHRlc3RlciBsZSBmbGFnIGRlIHbpcmlmaWNhdGlvbi5cblwKTGVzIGZvcm1lcyBzdWl2YW50ZXMgc29udCBjb3JyZWN0ZXMgOlxuXApWRVJJRlkgT04JUG9zaXRpb25uZSBsZSBmbGFnXG5cClZFUklGWSBPRkYJRWZmYWNlIGxlIGZsYWdcblwKVkVSSUZZXHRcdEFmZmljaGUgbCfpdGF0IE9OIG91IE9GRiBkdSBmbGFnLlxuXApcblwKTGUgZmxhZyBkZSB2ZXJpZmljYXRpb24gbidhIHBhcyBkZSBmb25jdGlvbiBkYW5zIFdpbmUuXG4iCgogIFdDTURfVkVSLAoiVkVSIGFmZmljaGUgbGEgdmVyc2lvbiBkZSBjbWQgYWN0dWVsbGVtZW50IGVuIG3pbW9pcmUuXG4iCgogIFdDTURfVk9MLCAgICAiQWlkZSBkZSBWT0xcbiIKCiAgV0NNRF9QVVNIRCwgICJQVVNIRCA8culwZXJ0b2lyZT4gZW5yZWdpc3RyZSBsZSBy6XBlcnRvaXJlIGNvdXJhbnQgc3VyXG5cCnVuZSBwaWxlIGV0IGNoYW5nZSBsZSBy6XBlcnRvaXJlIGNvdXJyYW50IHBhciBsZSBy6XBlcnRvaXJlIHNw6WNpZmnpLlxuIgoKICBXQ01EX1BPUEQsICAgIlBPUEQgY2hhbmdlIGxlIHLpcGVydG9pcmUgY291cmFudCBwYXIgbGUgZGVybmllciBlbnJlZ2lzdHLpIOAgbCdhaWRlIGRlIFxuXApQVVNIRC5cbiIKCiAgV0NNRF9NT1JFLCAgICJNT1JFIGRpc3BsYXlzIG91dHB1dCBvZiBmaWxlcyBvciBwaXBlZCBpbnB1dCBpbiBwYWdlcy5cbiIKCiAgV0NNRF9FWElULAoiRVhJVCB0ZXJtaW5lIGxhIHNlc3Npb24gZGUgbGlnbmUgZGUgY29tbWFuZGUgZXQgcmV0b3VybmVcblwKYXUgc3lzdOhtZSBkJ2V4cGxvaXRhdGlvbiBvdSBhdSBzaGVsbCBv+SB2b3VzIGF2ZXogaW52b3F16SBjbWQuXG4iCgogIFdDTURfQUxMSEVMUCwgIkxlcyBjb21tYW5kZXMgaW50ZXJuZXMgQ01EIHNvbnSgOlxuXApBVFRSSUJcdFx0QWZmaWNoZSBvdSBjaGFuZ2UgbGVzIGF0dHJpYnV0cyBkZSBmaWNoaWVycyBET1NcblwKQ0FMTFx0XHRJbnZvcXVlIHVuIGZpY2hpZXIgYmF0Y2gg4CBsJ2ludOlyaWV1ciBkJ3VuIGF1dHJlXG5cCkNEIChDSERJUilcdENoYW5nZSBsZSBy6XBlcnRvaXJlIGNvdXJhbnQgcGFyIGTpZmF1dFxuXApDTFNcdFx0RWZmYWNlIGwn6WNyYW5cblwKQ09QWVx0XHRDb3BpZSB1biBvdSBwbHVzaWV1cnMgZmljaGllcnNcblwKQ1RUWVx0XHRDaGFuZ2UgbGUgcOlyaXBo6XJpcXVlIGQnZW50cullL3NvcnRpZVxuXApEQVRFXHRcdEFmZmljaGUgb3UgY2hhbmdlIGxhIGRhdGUgc3lzdOhtZVxuXApERUwgKEVSQVNFKVx0RWZmYWNlIHVuIGZpY2hpZXIgb3UgdW4gZ3JvdXBlIGRlIGZpY2hpZXJzXG5cCkRJUlx0XHRMaXN0ZSBsZSBjb250ZW51IGQndW4gculwZXJ0b2lyZVxuXApFQ0hPXHRcdEFmZmljaGUgZHUgdGV4dGUgc3VyIGxhIGNvbnNvbGVcblwKSEVMUFx0XHRBZmZpY2hlIGRlIGJyZWZzIGTpdGFpbHMgc3VyIGwndXRpbGlzYXRpb24gZCd1bmUgY29tbWFuZGVcblwKTUQgKE1LRElSKVx0Q3LpZSB1biBy6XBlcnRvaXJlXG5cCk1PUkVcdFx0RGlzcGxheSBvdXRwdXQgaW4gcGFnZXNcblwKTU9WRVx0XHRE6XBsYWNlIHVuIGZpY2hpZXIsIHVuIGdyb3VwZSBkZSBmaWNoaWVycyBvdSB1biBy6XBlcnRvaXJlXG5cClBBVEhcdFx0UuhnbGUgb3UgYWZmaWNoZSBsZSBjaGVtaW4gZGUgcmVjaGVyY2hlXG5cClBPUERcdFx0Q2hhbmdlIGxlIHLpcGVydG9pcmUgY291cmFudCBwYXIgbGUgZGVybmllciBlbnJlZ2lzdHLpIGF2ZWMgUFVTSERcblwKUFJPTVBUXHRcdENoYW5nZSBsJ2ludml0ZSBkZSBjb21tYW5kZVxuXApQVVNIRFx0XHRDaGFuZ2UgZGUgculwZXJ0b2lyZSBlbiBlbnJlZ2lzdHJhbnQgbGUgculwZXJ0b2lyZSBjb3VyYW50XG5cClJFTiAoUkVOQU1FKVx0UmVub21tZSB1biBmaWNoaWVyLCB1biBncm91cGUgZGUgZmljaGllcnMgb3UgdW4gculwZXJ0b2lyZVxuXApSRCAoUk1ESVIpXHRFZmZhY2UgdW4gculwZXJ0b2lyZVxuXApTRVRcdFx0UuhnbGUgb3UgYWZmaWNoZSBsZXMgdmFyaWFibGVzIGQnZW52aXJvbm1lbnRcblwKVElNRVx0XHRS6GdsZSBvdSBhZmZpY2hlIGwnaGV1cmUgc3lzdOhtZSBjb3VyYW50ZVxuXApUSVRMRVx0XHRS6GdsZSBsZSB0aXRyZSBkZSBsYSBmZW7qdHJlIHBvdXIgbGEgc2Vzc2lvbiBDTURcblwKVFlQRVx0XHRBZmZpY2hlIGxlIGNvbnRlbnUgZCd1biBmaWNoaWVyIHRleHRlXG5cClZFUlx0XHRBZmZpY2hlIGxhIHZlcnNpb24gZGUgY21kIGFjdHVlbGxlbWVudCBlbiBt6W1vaXJlLlxuXApWT0xcdFx0QWZmaWNoZSBsZSBub20gZGUgdm9sdW1lIGQndW4gbGVjdGV1ciBkZSBkaXNxdWVcblwKRVhJVFx0XHRRdWl0dGUgQ01EXG5cblwKRW50cmV6IEhFTFAgPGNvbW1hbmRlPiBwb3VyIHBsdXMgZCdpbmZvcm1hdGlvbnMgc3VyIGxlcyBjb21tYW5kZXMgY2ktZGVzc3VzXG4iCgogIFdDTURfQ09ORklSTSwgIsp0ZXMtdm91cyBz+3IiCiAgV0NNRF9ZRVMsICJPIgogIFdDTURfTk8sICJOIgogIFdDTURfTk9BU1NPQywgIkFzc29jaWF0aW9uIGRlIGZpY2hpZXIgbWFucXVhbnRlIHBvdXIgbCdleHRlbnNpb24gJXNcbiIKICBXQ01EX05PRlRZUEUsICJBdWN1biBjb21tYW5kZSBkJ291dmVydHVyZSBhc3NvY2npZSBhdmVjIGxlIHR5cGUgZGUgZmljaGllciCroCVzoLtcbiIKICBXQ01EX09WRVJXUklURSwgIsljcmFzZXIgJXMiCiAgV0NNRF9NT1JFU1RSLCAiUGx1cy4uLiIKICBXQ01EX1RSVU5DQVRFRExJTkUsICJMaWduZSBkdSBwcm9jZXNzdXMgYmF0Y2ggcHJvYmFibGVtZW50IHRyb25xdellLiBVdGlsaXNhdGlvbiBkZaA6XG4iCiAgV0NNRF9OWUksICJQYXMgZW5jb3JlIGltcGzpbWVudOlcblxuIgogIFdDTURfTk9BUkcsICJBcmd1bWVudCBtYW5xdWFudFxuIgogIFdDTURfU1lOVEFYRVJSLCAiRXJyZXVyIGRlIHN5bnRheGVcbiIKICBXQ01EX0ZJTEVOT1RGT1VORCwgIiVzIDogRmljaGllciBub24gdHJvdXbpXG4iCiAgV0NNRF9OT0NNREhFTFAsICJQYXMgZCdhaWRlIGRpc3BvbmlibGUgcG91ciAlc1xuIgogIFdDTURfTk9UQVJHRVQsICJMYSBkZXN0aW5hdGlvbiBkZSBsJ2luc3RydWN0aW9uIEdPVE8gbidhIHBhcyDpdOkgdHJvdXbpZVxuIgogIFdDTURfQ1VSUkVOVERBVEUsICJMYSBkYXRlIGNvdXJhbnRlIGVzdCAlc1xuIgogIFdDTURfQ1VSUkVOVFRJTUUsICJMJ2hldXJlIGNvdXJhbnRlIGVzdCAlc1xuIgogIFdDTURfTkVXREFURSwgIlNhaXNpc3NleiBsYSBub3V2ZWxsZSBkYXRloDogIgogIFdDTURfTkVXVElNRSwgIlNhaXNpc3NleiBsYSBub3V2ZWxsZSBoZXVyZaA6ICIKICBXQ01EX01JU1NJTkdFTlYsICJMYSB2YXJpYWJsZSBkJ2Vudmlyb25uZW1lbnQgJXMgbidlc3QgcGFzIGTpZmluaWVcbiIKICBXQ01EX1JFQURGQUlMLCAiSW1wb3NzaWJsZSBkJ291dnJpciCroCVzoLtcbiIKICBXQ01EX0NBTExJTlNDUklQVCwgIkltcG9zc2libGUgZCdhcHBlbGVyIHVuZSDpdGlxdWV0dGUgZGUgYmF0Y2ggaG9ycyBkJ3VuIHNjcmlwdCBiYXRjaFxuIgogIFdDTURfQUxMLCAiVCIKICBXQ01EX0RFTFBST01QVCwgIiVzLCBTdXBwcmltZXIiCiAgV0NNRF9FQ0hPUFJPTVBULCAiRWNobyBlc3QgJXNcbiIKICBXQ01EX1ZFUklGWVBST01QVCwgIlZlcmlmeSBlc3QgJXNcbiIKICBXQ01EX1ZFUklGWUVSUiwgIlZlcmlmeSBkb2l0IOp0cmUgT04gb3UgT0ZGXG4iOwogIFdDTURfQVJHRVJSLCAiRXJyZXVyIGRlIHBhcmFt6HRyZVxuIgogIFdDTURfVk9MVU1FREVUQUlMLCAiTGUgdm9sdW1lIGRhbnMgbGUgbGVjdGV1ciAlYyBlc3QgJXNcbkxlIG51belybyBkZSBz6XJpZSBkdSB2b2x1bWUgZXN0ICUwNHgtJTA0eFxuXG4iCiAgV0NNRF9WT0xVTUVQUk9NUFQsICLJdGlxdWV0dGUgZHUgdm9sdW1lICgxMSBjYXJhY3TocmVzLCBFTlRSyUUgcG91ciBhdWN1bimgPyIKICBXQ01EX05PUEFUSCwgIlBBVEggbm90IGZvdW5kXG4iCiAgV0NNRF9BTllLRVksIkFwcHV5ZXogc3VyIEVOVFLJRSBwb3VyIGNvbnRpbnVlcqA6ICIKICBXQ01EX0NPTlNUSVRMRSwiSW52aXRlIGRlIGNvbW1hbmRlIFdpbmUiCiAgV0NNRF9WRVJTSU9OLCJDTUQgdmVyc2lvbiAlc1xuXG4iCiAgV0NNRF9NT1JFUFJPTVBULCAiUGx1c6A/ICIKfQo=