LyoKICogV2luZSBjb21tYW5kIHByb21wdAogKiBGcmVuY2ggTGFuZ3VhZ2UgU3VwcG9ydAogKgogKiBDb3B5cmlnaHQgMjAwMyBTeWx2YWluIFBldHJlb2xsZQogKiAKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19GUkVOQ0gsIFNVQkxBTkdfTkVVVFJBTAoKU1RSSU5HVEFCTEUKewogIFdDTURfQVRUUklCLCAiQWlkZSBkJyBBVFRSSUJcbiIKICBXQ01EX0NBTEwsCiJDQUxMIDxmaWNoaWVyYmF0Y2g+IHNlcnQg4CBhcHBlbGVyIHVuIGZpY2hpZXIgYmF0Y2ggXG5cCmRlcHVpcyB1biBhdXRyZSBmaWNoaWVyIGJhdGNoLiBRdWFuZCBsZSBmaWNoaWVyIGJhdGNoIHNvcnQsIGxlIGNvbnRy9GxlIHJldmllbnRcblwKYXUgZmljaGllciBxdWkgbCdhIGFwcGVs6S4gTGEgY29tbWFuZGUgQ0FMTCBkb2l0IOp0cmUgc3VpdmllIGRlcyBwYXJhbeh0cmVzXG5cCmRlIGxhIHByb2PpZHVyZSBhcHBlbOllLlxuXApcblwKTGVzIGNoYW5nZW1lbnRzIGRlIHLpcGVydG9pcmUgY291cmFudCwgZGUgdmFyaWFibGVzIGQnZW52aXJvbm1lbnQgZXRjLiBmYWl0c1xuXApkYW5zIHVuZSBwcm9j6WR1cmUgYXBwZWzpZSBzb250IHRyYW5zbWlzIOAgbCdhcHBlbGFudC5cbiIKCiAgV0NNRF9DRCwgICAgICJDaGFuZ2UgbGUgculwZXJ0b2lyZSBjb3VyYW50IHBhciBk6WZhdXRcbiIKICBXQ01EX0NIRElSLCAgIkNoYW5nZSBsZSBy6XBlcnRvaXJlIGNvdXJhbnQgcGFyIGTpZmF1dFxuIgoKICBXQ01EX0NMUywKIkNMUyBlZmZhY2UgbCfpY3JhblxuIgoKICBXQ01EX0NPUFksICAgIkFpZGUgZGUgQ09QWVxuIgogIFdDTURfQ1RUWSwgICAiQWlkZSBkZSBDVFRZXG4iCiAgV0NNRF9EQVRFLCAgICJBaWRlIGRlIERBVEVcbiIKICBXQ01EX0RFTCwgICAgIkFpZGUgZGUgREVMXG4iCiAgV0NNRF9ESVIsICAgICJBaWRlIGRlIERJUlxuIgoKICBXQ01EX0VDSE8sCiJFQ0hPIDxjaGHubmU+IGFmZmljaGUgPGNoYe5uZT4gc3VyIGxhIGNvbnNvbGUgY291cmFudGUuXG5cClxuXApFQ0hPIE9OIHByb3ZvcXVlIGwnYWZmaWNoYWdlIGRlIHRvdXRlcyBsZXMgY29tbWFuZGVzIHN1ciBsYSBjb25zb2xlXG5cCmF2YW50IGxldXIgZXjpY3V0aW9uLlxuXApcblwKRUNITyBPRkYgYW5udWxlIGwnZWZmZXQgZGUgdG91dCBwculj6WRlbnQgRUNITyBPTiAoRUNITyBlc3QgT0ZGIHBhclxuXApk6WZhdXQpLiBPbiBwZXV0IGVtcOpjaGVyIGwnYWZmaWNoYWdlIGRlIEVDSE8gT0ZGIGVuIGxlIGZhaXNhbnRcblwKcHLpY+lkZXIgZCd1biBzaWduZSBALlxuIgoKICBXQ01EX0VSQVNFLCAgIkFpZGUgZGUgRVJBU0VcbiIKCiAgV0NNRF9GT1IsCiJMYSBjb21tYW5kZSBGT1Igc2VydCDgIGV46WN1dGVyIHVuZSBjb21tYW5kZSBwb3VyIHVuIGdyb3VwZSBkZSBmaWNoaWVycy5cblwKXG5cClN5bnRheGU6IEZPUiAldmFyaWFibGUgSU4gKGdyb3VwZSkgRE8gY29tbWFuZGVcblwKXG5cCkxhIG7pY2Vzc2l06SBkZSBkb3VibGVyIGxlIHNpZ25lICclJyBlbiB1dGlsaXNhbnQgRk9SIGRhbnMgdW4gZmljaGllciBiYXRjaCBcblwKbidleGlzdGUgcGFzIGRhbnMgd2NtZC5cbiIKCiAgV0NNRF9HT1RPLAoiTGEgY29tbWFuZGUgR09UTyB0cmFuc2bocmUgbCdleOljdXRpb24g4CB1biBhdXRyZSBsYWJlbCBkYW5zIHVuIFxuXApmaWNoaWVyIGJhdGNoLlxuXApcblwKTGUgbGFiZWwgY2libGUgZGUgR09UTyBwZXV0IOp0cmUgbG9uZyBkZSAyNTUgY2FyYWN06HJlc1xuXAptYWlzIG5lIHBldXQgaW5jbHVyZSBkJ2VzcGFjZXMgKGNlY2kgZXN0IGRpZmbpcmVudCBkJ2F1dHJlcyBzeXN06G1lc1xuXApkJ2V4cGxvaXRhdGlvbikuIFNpIGRldXggb3UgcGx1c2lldXJzIGxhYmVscyBpZGVudGlxdWVzIHNvbnQgZGFucyBsZSBt6m1lIGZpY2hpZXIgXG5cCnNldWwgbGUgcHJlbWllciBzZXJhIGV46WN1dOkuIEVzc2F5ZXIgZGUgc2F1dGVyIOAgdW4gbGFiZWwgbm9uLWV4aXN0YW50XG5cCnRlcm1pbmUgbCdleOljdXRpb24gZHUgZmljaGllciBiYXRjaCAuXG5cClxuXApHT1RPIG4nYSBwYXMgZCdlZmZldCBzaSB1dGlsaXPpIGludGVyYWN0aXZlbWVudC5cbiIKCiAgV0NNRF9IRUxQLCAgICJBZmZpY2hlIHVuZSBicuh2ZSBhaWRlIHN1ciBsZXMgY29tbWFuZGVzIGludGVybmVzIGRlIFdDTURcbiIKCiAgV0NNRF9JRiwKIklGIGVzdCB1dGlsaXPpIHBvdXIgZXjpY3V0ZXIgdW5lIGNvbW1hbmRlIGRlIGZh529uIGNvbmRpdGlvbm5lbGxlLlxuXApcblwKU3ludGF4ZToJSUYgW05PVF0gRVhJU1Qgbm9tZmljaGllciBjb21tYW5kZVxuXAoJCUlGIFtOT1RdIGNoYe5uZTE9PWNoYe5uZTIgY29tbWFuZGVcblwKCQlJRiBbTk9UXSBFUlJPUkxFVkVMIG5vbWJyZSBjb21tYW5kZVxuXApcblwKRGFucyBsYSBkZXV4aehtZSBmb3JtZSBkZSBsYSBjb21tYW5kZSwgY2hh7m5lMSBldCBjaGHubmUyIGRvaXZlbnQg6nRyZSBcblwKZW50cmUgZ3VpbGxlbWV0cyBkb3VibGVzLiBMYSBjb21wYXJhaXNvbiBlc3QgaW5zZW5zaWJsZSDgIGxhIGNhc3NlLlxuIgoKICBXQ01EX0xBQkVMLCAgIkxBQkVMIHNlcnQg4CBtb2RpZmllciBsZSBub20gZGUgdm9sdW1lIGQndW4gZGlzcXVlLiAgXG5cClxuXApTeW50YXhlOiBMQUJFTCBbbGVjdGV1cjpdXG5cCkxhIGNvbW1uYW5kZSBkZW1hbmRlcmEgbGUgbm91dmVhdSBub20gZGUgdm9sdW1lIHBvdXIgbGUgbGVjdGV1ciBkb25u6S5cblwKVm91cyBwb3V2ZXogYWZmaWNoZXIgbGUgbm9tIGRlIHZvbHVtZSBhdmVjIGxhIGNvbW1hbmRlIFZPTC5cbiIKCiAgV0NNRF9NRCwgICAgICJDcullICBsZSBy6XBlcnRvaXJlIGRvbm7pIGVuIHBhcmFt6HRyZS5cbiIKICBXQ01EX01LRElSLCAgIkNy6WUgIGxlIHLpcGVydG9pcmUgZG9ubukgZW4gcGFyYW3odHJlLlxuIgogIFdDTURfTU9WRSwKIk1PVkUgZOlwbGFjZSB1biBmaWNoaWVyLCB1biBncm91cGUgZGUgZmljaGllcnMgb3UgdW4gculwZXJ0b2lyZVxuXArgIHVuIGF1dHJlIGVuZHJvaXQuIFNpIGwnb2JqZXQgZOlwbGFj6SBlc3QgdW4gculwZXJ0b2lyZSBhbG9yc1xuXAp0b3VzIGxlcyBmaWNoaWVycyBldCBzb3VzLXLpcGVydG9pcmVzIGRlIGwnb2JqZXQgc29udCDpZ2FsZW1lbnQgZOlwbGFj6XMuXG5cCk1PVkUg6WNob3VlIHNpIGwnYW5jaWVuIGV0IGxlIG5vdXZlbCBlbXBsYWNlbWVudCBzb250IHN1ciBkZXMgbGVjdGV1cnMgRE9TIGRpZmbpcmVudHMuXG4iCgogIFdDTURfUEFUSCwKIlBBVEggYWZmaWNoZSBvdSBjaGFuZ2UgbGUgY2hlbWluIGRlIHJlY2hlcmNoZSBkZSB3Y21kLlxuXApFbnRyZXIgUEFUSCBhZmZpY2hlcmEgbGUgculnbGFnZSBjb3VyYW50IGRlIFBBVEggKGF1IGTpcGFydFxuXApjJ2VzdCBsYSB2YWxldXIgZG9ubullIGRhbnMgbGUgZmljaGllciBkZSBjb25maWd1cmF0aW9uIHdpbmUpLiBQb3VyIGNoYW5nZXJcblwKbGUgculnbGFnZSwgZmFpdGVzIHN1aXZyZSBsYSBjb21tYW5kZSBQQVRIIGRlIGxhIG5vdXZlbGxlIHZhbGV1ci5cblwKSWwgZXN0IHBvc3NpYmxlIGRlIG1vZGlmaWVyIGxlIFBBVEggZW4gdXRpbGlzYW50IGxhIHZhcmlhYmxlIGQnZW52aXJvbm1lbnQgUEFUSCwgXG5cCnBhciBleGVtcGxlIDpcblwKCQlQQVRIICVQQVRIJTtjOlxcdGVtcCBcbiIKCiAgV0NNRF9QQVVTRSwKIlBBVVNFIGFmZmljaGUgdW4gbWVzc2FnZSBzdXIgbCfpY3JhbiA6ICdQcmVzc2V6IEVudHLpZSBwb3VyIGNvbnRpbnVlcidcblwKZXQgYXR0ZW5kIHF1ZSBsJ3V0aWxpc2F0ZXVyIHByZXNzZSBsYSB0b3VjaGUgRW50cullLiBQQVVTRSBlc3Qgc3VydG91dCB1dGlsaXPpIGRhbnNcblwKbGVzIGZpY2hpZXJzIGJhdGNocyBwb3VyIHBlcm1ldHRyZSDgIGwndXRpbGlzYXRldXIgZGUgbGlyZSBsYSBzb3J0aWUgZGVcblwKbGEgZGVybmnocmUgY29tbWFuZGUgYXZhbnQgcXUnZWxsZSBuZSBkaXNwYXJhaXNzZSBkZSBsJ+ljcmFuLlxuIgoKICBXQ01EX1BST01QVCwKIlBST01QVCBy6GdsZSBsJ2ludml0ZSBkZSBjb21tYW5kZS5cblwKXG5cCkxhIGNoYe5uZSBzdWl2YW50IGxhIGNvbW1hbmRlIFBST01QVCAoYW5kIHRoZSBzcGFjZSBpbW1lZGlhdGVseSBhZnRlcilcblwKYXBwYXJh7nQgYXUgZOlidXQgZGUgbGEgbGlnbmUgcXVhbmQgd2NtZCBhdHRlbmQgdW5lIGVudHLpZSB0ZXh0ZS5cblwKXG5cCkxlcyBjaGHubmVzIGRlIGNhcmFjdOhyZXMgc3VpdmFudGVzIG9udCB1bmUgc2lnbmlmaWNhdGlvbiBzcOljaWFsZSA6XG5cClxuXAokJCAgICBTaWduZSBEb2xsYXIgICAgICAgICRfICAgIFNhdXQgZGUgbGlnbmUgICAgICAgJGIgICAgU2lnbmUgUGlwZSAofClcblwKJGQgICAgRGF0ZSBjb3VyYW50ZSAgICAgICAkZSAgICBFc2NhcGUgICAgICAgICAgICAgICRnICAgIFNpZ25lID5cblwKJGwgICAgU2lnbmUgPCAgICAgICAgICAgICAkbiAgICBMZWN0ZXVyIGNvdXJhbnQgICAgICRwICAgIFLpcGVydG9pcmUgY291cmFudFxuXAokcSAgICBTaWduZSA9ICAgICAgICAgICAgICR0ICAgIEhldXJlIGNvdXJhbnRlICAgICAgJHYgICAgVmVyc2lvbiBkZSB3Y21kXG5cClxuXApOb3RleiBxdSdlbnRyZXIgbGEgY29tbWFuZGUgUFJPTVBUIHNhbnMgdGV4dGUgZCdpbnZpdGUgcmVtZXQgbCdpbnZpdGVcblwK4CBsYSB2YWxldXIgcGFyIGTpZmF1dCwgcXVpIGVzdCBsYSBsZXR0cmUgZHUgbGVjdGV1ciBjb3VyYW50IHN1aXZpZSBkZVxuXApzb24gculwZXJ0b2lyZSBjb3VyYW50IGV0IGQndW4gc2lnbmUgcGx1cy1ncmFuZC1xdWUgKD4pLlxuXAooVGVsIHF1ZSBsYSBjb21tYW5kZSBQUk9NUFQgJHAkZykuXG5cClxuXApMJ2ludml0ZSBwZXV0IGF1c3NpIOp0cmUgbW9kaWZp6WUgZW4gY2hhbmdlYW50IGxhIHZhcmlhYmxlIGQnZW52aXJvbm1lbnQgUFJPTVBULFxuXApkb25jIGxhIGNvbW1hbmRlICdTRVQgUFJPTVBUPXRleHRlJyBhIGxlIG3qbWUgZWZmZXQgcXVlICdQUk9NUFQgdGV4dGUnXG4iCgogIFdDTURfUkVNLAoiVW5lIGxpZ25lIGRlIGNvbW1hbmRlIGNvbW1lbudhbnQgcGFyIFJFTSAoc3VpdmkgZCd1bmUgZXNwYWNlKSBuJ2VuZ2VuZHJlIFxuXAphdWN1bmUgYWN0aW9uLCBldCBwZXV0IGRvbmMgc2VydmlyIGRlIGNvbW1lbnRhaXJlIGRhbnMgdW4gZmljaGllciBiYXRjaC5cbiIKCiAgV0NNRF9SRU4sICAgICJBaWRlIGRlIFJFTlxuIgogIFdDTURfUkVOQU1FLCAiQWlkZSBkZSBSRU5BTUVcbiIKICBXQ01EX1JELCAgICAgIkVmZmFjZSBsZSBy6XBlcnRvaXJlIGRvbm7pIGVuIHBhcmFt6HRyZS5cbiIKICBXQ01EX1JNRElSLCAgIkVmZmFjZSBsZSBy6XBlcnRvaXJlIGRvbm7pIGVuIHBhcmFt6HRyZS5cbiIKCiAgV0NNRF9TRVQsCiJTRVQgYWZmaWNoZSBvdSBjaGFuZ2UgbGVzIHZhcmlhYmxlcyBkJ2Vudmlyb25uZW1lbnQgZGUgd2NtZC5cblwKXG5cClNFVCBzYW5zIHBhcmFt6HRyZSBhZmZpY2hlIGwnZW52aXJvbm5lbWVudCBjb3VyYW50LlxuXApcblwKUG91ciBjcullciBldCBtb2RpZmllciB1bmUgdmFyaWFibGUgZCdlbnZpcm9ubmVtZW50IGxhIHN5bnRheGUgZXN0OlxuXApcblwKICAgICAgU0VUIDx2YXJpYWJsZT49PHZhbGV1cj5cblwKXG5cCm/5IDx2YXJpYWJsZT4gZXQgPHZhbGV1cj4gc29udCBkZXMgY2hh7m5lcyBkZSBjYXJhY3TocmVzLiBJbCBlc3Qg4CBub3RlciBxdWUgPHZhcmlhYmxlPlxuXApuZSBwZXV0IGNvbnRlbmlyIGQnZXNwYWNlLCBldCBxdSdpbCBuZSBkb2l0IHBhcyB5IGVuIGF2b2lyIG5vbiBwbHVzIGF1dG91ciBkdSBzaWduZSBkJ+lnYWxpdOkuXG5cClxuXApTb3VzIFdpbmUsIGwnZW52aXJvbm1lbnQgZHUgc3lzdOhtZSBo9HRlIGVzdFxuXAppbmNsdXMgZGFucyBsJ2Vudmlyb25ubWVudCBXaW4zMiwgaWwgeSBhdXJhIHBhciBjb25z6XF1ZW50IGfpbulyYWxlbWVudFxuXApiaWVuIHBsdXMgZGUgdmFsZXVycyBxdWUgZGFucyB1biBzeXN06G1lIFdpbjMyIG5hdGlmLiBOb3RleiBxdSdpbFxuXApuJ2VzdCBwYXMgcG9zc2libGUgZGUgbW9kaWZpZXIgbCdlbnZpcm9ubmVtZW50IGR1IHN5c3TobWUgZCdleHBsb2l0YXRpb24gZGFucyB3Y21kLlxuIgoKICBXQ01EX1NISUZULAoiU0hJRlQgZXN0IHV0aWxpc+kgZGFucyB1biBmaWNoaWVyIGJhdGNoIHBvdXIgZW5sZXZlciB1biBwYXJhbeh0cmUgZGUgbGFcblwKbGlzdGUsIGFpbnNpIGxlIHBhcmFt6HRyZSAyIGRldmllbnQgcGFyYW3odHJlIDEgZXQgYWluc2kgZGUgc3VpdGUuIElsIGVzdCBzYW5zIGVmZmV0XG5cCnMnaWwgZXN0IGFwcGVs6SBkZXB1aXMgbGEgbGlnbmUgZGUgY29tbWFuZGUuXG4iCgogIFdDTURfVElNRSwgICAiQWlkZSBkZSBUSU1FXG4iCgogIFdDTURfVElUTEUsCiJS6GdsZSBsZSB0aXRyZSBkZSBsYSBmZW7qdHJlIHBvdXIgbGEgc2Vzc2lvbiB3Y21kLCBzeW50YXhlOiBUSVRMRSBbY2hh7m5lXVxuIgoKICBXQ01EX1RZUEUsCiJUWVBFIDxub21maWNoaWVyPiBhZmZpY2hlIDxub21maWNoaWVyPiBzdXIgbGEgY29uc29sZSAob3UgYWlsbGV1cnNcblwKc2kgcmVkaXJpZ+kpLiBBdWN1biB0ZXN0IG4nZXN0IGZhaXQgcXVhbmQgYXUgZm9ybWF0IHRleHRlIGR1IGZpY2hpZXIuXG4iCgogIFdDTURfVkVSSUZZLAoiVkVSSUZZIGVzdCB1dGlsaXPpIHBvdXIgcG9zaXRpb25uZXIsIGVmZmFjZXIgb3UgdGVzdGVyIGxlIGZsYWcgZGUgdulyaWZpY2F0aW9uLlxuXApMZXMgZm9ybWVzIHN1aXZhbnRlcyBzb250IGNvcnJlY3RlcyA6XG5cClZFUklGWSBPTglQb3NpdGlvbm5lIGxlIGZsYWdcblwKVkVSSUZZIE9GRglFZmZhY2UgbGUgZmxhZ1xuXApWRVJJRllcdFx0QWZmaWNoZSBsJ+l0YXQgT04gb3UgT0ZGIGR1IGZsYWcuXG5cClxuXApMZSBmbGFnIGRlIHZlcmlmaWNhdGlvbiBuJ2EgcGFzIGRlIGZvbmN0aW9uIGRhbnMgV2luZS5cbiIKCiAgV0NNRF9WRVIsCiJWRVIgYWZmaWNoZSBsYSB2ZXJzaW9uIGRlIHdjbWQgYWN0dWVsbGVtZW50IGVuIG3pbW9pcmUuXG4iCgogIFdDTURfVk9MLCAiXHRcdEFmZmljaGUgbGUgbm9tIGRlIHZvbHVtZSBkJ3VuIGxlY3RldXIgZGUgZGlzcXVlXG4iCgogIFdDTURfRVhJVCwKIkVYSVQgdGVybWluZSBsYSBzZXNzaW9uIGRlIGxpZ25lIGRlIGNvbW1hbmRlIGV0IHJldG91cm5lXG5cCmF1IHN5c3TobWUgZCdleHBsb2l0YXRpb24gb3UgYXUgc2hlbGwgb/kgdm91cyBhdmV6IGludm9xdekgd2NtZC5cbiIKCiAgMTAwMCwgIkxlcyBjb21tYW5kZXMgaW50ZXJuZXMgV0NNRCBzb250OlxuXApBVFRSSUJcdFx0QWZmaWNoZSBvdSBjaGFuZ2UgbGVzIGF0dHJpYnV0cyBkZSBmaWNoaWVycyBET1NcblwKQ0FMTFx0XHRJbnZvcXVlIHVuIGZpY2hpZXIgYmF0Y2gg4CBsJ2ludOlyaWV1ciBkJ3VuIGF1dHJlXG5cCkNEIChDSERJUilcdENoYW5nZSBsZSBy6XBlcnRvaXJlIGNvdXJhbnQgcGFyIGTpZmF1dFxuXApDTFNcdFx0RWZmYWNlIGwn6WNyYW5cblwKQ09QWVx0XHRDb3BpZSB1biBvdSBwbHVzaWV1cnMgZmljaGllcnNcblwKQ1RUWVx0XHRDaGFuZ2UgbGUgcOlyaXBo6XJpcXVlIGQnZW50cullL3NvcnRpZVxuXApEQVRFXHRcdEFmZmljaGUgb3UgY2hhbmdlIGxhIGRhdGUgc3lzdOhtZVxuXApERUwgKEVSQVNFKVx0RWZmYWNlIHVuIGZpY2hpZXIgb3UgdW4gZ3JvdXBlIGRlIGZpY2hpZXJzXG5cCkRJUlx0XHRMaXN0ZSBsZSBjb250ZW51IGQndW4gculwZXJ0b2lyZVxuXApFQ0hPXHRcdEFmZmljaGUgZHUgdGV4dGUgc3VyIGxhIGNvbnNvbGVcblwKSEVMUFx0XHRBZmZpY2hlIGRlIGJyZWZzIGTpdGFpbHMgc3VyIGwndXRpbGlzYXRpb24gZCd1bmUgY29tbWFuZGVcblwKTUQgKE1LRElSKVx0Q3LpZSB1biBy6XBlcnRvaXJlXG5cCk1PVkVcdFx0ROlwbGFjZSB1biBmaWNoaWVyLCB1biBncm91cGUgZGUgZmljaGllcnMgb3UgdW4gculwZXJ0b2lyZVxuXApQQVRIXHRcdFLoZ2xlIG91IGFmZmljaGUgbGUgY2hlbWluIGRlIHJlY2hlcmNoZVxuXApQUk9NUFRcdFx0Q2hhbmdlIGwnaW52aXRlIGRlIGNvbW1hbmRlXG5cClJFTiAoUkVOQU1FKVx0UmVub21tZSB1biBmaWNoaWVyLCB1biBncm91cGUgZGUgZmljaGllcnMgb3UgdW4gculwZXJ0b2lyZVxuXApSRCAoUk1ESVIpXHRFZmZhY2UgdW4gculwZXJ0b2lyZVxuXApTRVRcdFx0UuhnbGUgb3UgYWZmaWNoZSBsZXMgdmFyaWFibGVzIGQnZW52aXJvbm1lbnRcblwKVElNRVx0XHRS6GdsZSBvdSBhZmZpY2hlIGwnaGV1cmUgc3lzdOhtZSBjb3VyYW50ZVxuXApUSVRMRVx0XHRS6GdsZSBsZSB0aXRyZSBkZSBsYSBmZW7qdHJlIHBvdXIgbGEgc2Vzc2lvbiBXQ01EXG5cClRZUEVcdFx0QWZmaWNoZSBsZSBjb250ZW51IGQndW4gZmljaGllciB0ZXh0ZVxuXApWRVJcdFx0QWZmaWNoZSBsYSB2ZXJzaW9uIGRlIHdjbWQgYWN0dWVsbGVtZW50IGVuIG3pbW9pcmUuXG5cClZPTFx0XHRBZmZpY2hlIGxlIG5vbSBkZSB2b2x1bWUgZCd1biBsZWN0ZXVyIGRlIGRpc3F1ZVxuXApFWElUXHRcdFF1aXR0ZSBXQ01EXG5cblwKRW50cmV6IEhFTFAgPGNvbW1hbmRlPiBwb3VyIHBsdXMgZCdpbmZvcm1hdGlvbnMgc3VyIGxlcyBjb21tYW5kZXMgY2ktZGVzc3VzXG4iCn0K