LyoKICogV2luZSBjb21tYW5kIHByb21wdAogKiBOb3J3ZWdpYW4gQm9rbeVsIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IChDKSAyMDA1IEFsZXhhbmRlciBOLiBT+HJuZXMgPGFsZXhAdGhlaGFuZG9mYWdvbnkuY29tPgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgpMQU5HVUFHRSBMQU5HX05PUldFR0lBTiwgU1VCTEFOR19OT1JXRUdJQU5fQk9LTUFMCgpTVFJJTkdUQUJMRQp7CiAgV0NNRF9BVFRSSUIsICJIamVscCB0aWwgQVRUUklCXG4iCiAgV0NNRF9DQUxMLAoiq0NBTEwgPHNhdHN2aXNmaWxuYXZuPrsgYnJ1a2VzIGkgZW4gc2F0c3ZpcyBmaWwgZm9yIOUgdXRm+HJlIGtvbW1hbmRvZXJcblwKZnJhIGVuIGFubmVuIHNhdHN2aXMgZmlsLiBO5XIgZGVuIHNhdHN2aXNlIGZpbGVuIGF2c2x1dHRlciwgcmV0dXJuZXJlc1xuXAprb250cm9sbGVuIHRpbCBmaWxlbiBzb20ga2FsdGUgZGVuLiBDQUxMLWtvbW1hbmRvZW4ga2FuIGdpIHBhcmFtZXRlcmVcblwKdGlsIGRlbiBrYWx0ZSBwcm9zZWR5cmVuLlxuXApcblwKRW5kcmluZ2VyIHRpbCBzdGFuZGFyZGthdGFsb2dlbiwgbWlsavh2YXJpYWJsZXIgZXRjLiBnam9ydCBhdiBkZW4ga2FsdGVcblwKcHJvc2VkeXJlbiBhcnZlcyBhdiBw5WthbGxlcmVuLlxuIgoKICBXQ01EX0NELCAgICAgIkhqZWxwIHRpbCBDRFxuIgogIFdDTURfQ0hESVIsICAiSGplbHAgdGlsIENIRElSXG4iCgogIFdDTURfQ0xTLCAgICAiQ0xTIHT4bW1lciBrb25zb2xsc2tqZXJtZW5cbiIKCiAgV0NNRF9DT1BZLCAgICJIamVscCB0aWwgQ09QWVxuIgogIFdDTURfQ1RUWSwgICAiSGplbHAgdGlsIENUVFlcbiIKICBXQ01EX0RBVEUsICAgIkhqZWxwIHRpbCBEQVRFXG4iCiAgV0NNRF9ERUwsICAgICJIamVscCB0aWwgREVMXG4iCiAgV0NNRF9ESVIsICAgICJIamVscCB0aWwgRElSXG4iCgogIFdDTURfRUNITywKIqtFQ0hPIDxzdHJlbmc+IHZpc2VyIDxzdHJlbmc+uyBw5SBkZW4gZ2plbGRlbmRlIHRlcm1pbmFsZW5oZXRlbi5cblwKXG5cCqtFQ0hPIE9OuyBmb3LlcnNha2VyIGF0IGFsbGUga29tbWFuZG9lciBpIGVuIHNhdHN2aXMgZmlsIHZpc2VzIHDlXG5cCnRlcm1pbmFsZW5oZXRlbiBm+HIgZGUga2r4cmVzLlxuXApcblwKq0VDSE8gT0ZGuyByZXZlcnNlcmVyIGVmZmVrdGVuIGF2IGVuIHRpZGxpZ2VyZSCrRUNITyBPTrsgKEVDSE8gZXIgT0ZGIHNvbVxuXApzdGFuZGFyZCkuIKtFQ0hPIE9GRrsta29tbWFuZG9lbiBrYW4gaGluZHJlcyBmcmEg5SB2aXNlcyB2ZWQg5SBwbGFzc2VyZVxuXApldCBALXRlZ24gZm9yYW4gZGVuLlxuIgoKICBXQ01EX0VSQVNFLCAgIkhqZWxwIHRpbCBFUkFTRVxuIgoKICBXQ01EX0ZPUiwKIkZPUi1rb21tYW5kb2VuIGJydWtlcyB0aWwg5SBravhyZSBlbiBrb21tYW5kbyBmb3IgaHZlciBmaWwgaSBldCBzZXR0IGZpbGVyLlxuXApcblwKU3ludGFrczogRk9SICV2YXJpYWJlbCBJTiAoc2V0dCkgRE8ga29tbWFuZG9cblwKXG5cCktyYXZldCBvbSB0byAlLXRlZ24gbuVyIEZPUiBicnVrZXMgaSBlbiBzYXRzdmlzIGZpbCBmaW5uZXMgaWtrZSBpIFdDTUQuXG4iCgogIFdDTURfR09UTywKIkdPVE8ta29tbWFuZG9lbiBmbHl0dGVyIGtq+HJpbmdlbiB0aWwgZXQgYW5uZXQgc3RlZCBpIGVuIHNhdHN2aXMgZmlsLlxuXApcblwKTWVya2VsYXBwZW4gc29tIGVyIG3lbGV0IHRpbCBHT1RPIGthbiB25nJlIG9wcHRpbCAyNTUgdGVnbiBsYW5ndCxcblwKbWVuIGthbiBpa2tlIGlubmVob2xkZSBtZWxsb21yb20gKGRldHRlIGVyIGZvcnNramVsbGlnIGZyYSBhbmRyZVxuXApvcGVyYXRpdnN5c3RlbWVyKS4gSHZpcyBkZXQgZmlubmVzIHRvIGVsbGVyIGZsZXJlIGlkZW50aXNrZSBtZXJrZWxhcHBlclxuXAppIGVuIHNhdHN2aXMgZmlsLCBravhyZXMgYWxsdGlkIGRlbiBm+HJzdGUuIMUgcGVrZSBHT1RPIHRpbCBlbiBpa2tlLVxuXApla3Npc3RlcmVuZGUgbWVya2VsYXBwIGF2YnJ5dGVyIGtq+HJpbmdlbiBhdiBkZW4gc2F0c3Zpc2UgZmlsZW4uXG5cClxuXApHT1RPIGhhciBpbmdlbiBlZmZla3QgbuVyIGRlbiBicnVrZXMgaW50ZXJha3RpdnQuXG4iCgogIFdDTURfSEVMUCwgICAiSGplbHAgdGlsIEhFTFBcbiIKCiAgV0NNRF9JRiwKIklGIGJydWtlcyB0aWwg5SBravhyZSBlbiBrb21tYW5kbyBw5SBiZXRpbmdlbHNlci5cblwKXG5cClN5bnRheDoJSUYgW05PVF0gRVhJU1QgZmlsbmF2biBrb21tYW5kb1xuXAoJSUYgW05PVF0gc3RyZW5nMT09c3RyZW5nMiBrb21tYW5kb1xuXAoJSUYgW05PVF0gRVJST1JMRVZFTCBudW1tZXIga29tbWFuZG9cblwKXG5cCkkga29tbWFuZG9mb3JtIG51bW1lciB0byBt5SBzdHJlbmcxIG9nIHN0cmVuZzIgb21zbHV0dGVzIGF2IGRvYmxlXG5cIGFuZvhyc2Vsc3RlZ24uIERldCBza2lsbGVyIGlra2UgbWVsbG9tIHN0b3JlIG9nIHNt5SBib2tzdGF2ZXIuXG4iCgogIFdDTURfTEFCRUwsICAiTEFCRUwgYnJ1a2VzIGZvciDlIG5hdmdpIGV0IHN0YXNqb25zdm9sdW0uICBcblwKXG5cClN5bnRha3M6IExBQkVMIFtzdGFzam9uOl1cblwKS29tbWFuZG9lbiB2aWwgYmUgb20gZGV0IG55ZSB2b2x1bW5hdm5ldCBmb3Igc3Rhc2pvbmVuLlxuXApEdSBrYW4gdmlzZSBlbiBzdGFzam9ucyB2b2x1bW5hdm4gbWVkIFZPTC1rb21tYW5kb2VuLlxuIgoKICBXQ01EX01ELCAgICAgIkhqZWxwIHRpbCBNRFxuIgogIFdDTURfTUtESVIsICAiSGplbHAgdGlsIE1LRElSXG4iCiAgV0NNRF9NT1ZFLAoiTU9WRSBmbHl0dGVyIGVuIGZpbCBlbGxlciBrYXRhbG9nIHRpbCBldCBueXR0IHN0ZWQgaW5uZW5mb3JcblwKZmlsc3lzdGVtZXQuXG5cClxuXApIdmlzIGVsZW1lbnRldCBzb20gZmx5dHRlcyBlciBlbiBrYXRhbG9nLCBmbHl0dGVzIG9nc+UgZmlsZW5lIG9nXG5cCnVuZGVya2F0YWxvZ2VuZSBpIGRlbi5cblwKXG5cCk1PVkUgZmVpbGVyIGh2aXMgZGVuIGdhbWxlIG9nIG55ZSBwbGFzc2VyaW5nZW4gaGFyIGZvcnNramVsbGlnZVxuXApzdGFzam9uc2Jva3N0YXZlci5cbiIKCiAgV0NNRF9QQVRILAoiUEFUSCB2aXNlciBlbGxlciBlbmRyZXIgV0NNRHMgc/hrZXN0aS5cblwKXG5cCsUgc2tyaXZlIGlubiBQQVRIIHZpc2VyIGRlbiBnamVsZGVuZGUgUEFUSC1pbm5zdGlsbGluZ2VuIChkZXR0ZSBlclxuXAppIGJlZ3lubmVsc2VuIHZlcmRpZW4gb3BwZ2l0dCBpIGZpbGVuIKt3aW5lLmNvbma7KS4gRXR0ZXJm+GxnIFBBVEgtXG5cCmtvbW1hbmRvZW4gbWVkIGV0IG55dHQgbmF2biBmb3Ig5SBlbmRyZSBpbm5zdGlsbGluZ2VuLlxuXApcblwKRGV0IGVyIG9nc+UgbXVsaWcg5SBlbmRyZSBQQVRIIHZlZCDlIGJydWtlIG1pbGr4dmFyaWFibGVuIFBBVEgsIGZvclxuXApla3NlbXBlbDpcblwKCQlQQVRIICVQQVRIJTtjOlxcdGVtcCBcbiIKCiAgV0NNRF9QQVVTRSwKIlBBVVNFIHZpc2VyIG1lbGRpbmdlbiAnVHJ5a2sgRW50ZXIgZm9yIOUgZm9ydHNldHRlJywgb2cgdmVudGVyIHDlIGF0XG5cIGJydWtlcmVuIHRyeWtrZXIgRW50ZXIuIERldHRlIGVyIGhvdmVkc2FrZWxpZyBueXR0aWcgaSBzYXRzdmlzZSBmaWxlcixcblwKZm9yIOUgbGEgYnJ1a2VyZW4gbGVzZSB1dGRhdGEgZnJhIGVuIHRpZGxpZ2VyZSBrb21tYW5kbyBm+HIgZGVuIHJ1bGxlclxuXAp2ZWtrIGZyYSBza2plcm1lbi4uXG4iCgogIFdDTURfUFJPTVBULAoiUFJPTVBUIG9wcGdpciBrb21tYW5kb2xpbmplLWtsYXJ0ZWduZXQuXG5cClxuXApTdHJlbmdlbiBzb20gZXR0ZXJm+GxnZXIgUFJPTVBULWtvbW1hbmRvZW4gKG9nIG1lbGxvbXJvbW1ldCByZXR0IGV0dGVyKVxuXAp2aXNlcyB2ZWQgYmVneW5uZWxzZW4gYXYgbGluamVuIG7lciB2Y21kIHZlbnRlciBw5SBpbm5kYXRhLlxuXApcblwKRvhsZ2VuZGUgdGVnbnN0cmVuZ2VyIGhhciBkZW4gc3Blc2llbGxlIGJldHlkbmluZ2VuIHNvbSB2aXNlczpcblwKXG5cCiQkICAgRG9sbGFyLXRlZ24gICAgICAgJF8gICBMaW5qZW1hdGluZyAgICAgICAgICRiICAgUvhydGVnbiBzaWduICh8KVxuXAokZCAgIEdqZWxkZW5kZSBkYXRvICAgICRlICAgRXNjYXBlICAgICAgICAgICAgICAkZyAgIFN0+HJyZSBlbm4tdGVnblxuXAokbCAgIE1pbmRyZSBlbm4tdGVnbiAgICRuICAgR2plbGRlbmRlIHN0YXNqb24gICAkcCAgIEdqZWxkZW5kZSBzdGlcblwKJHEgICBMaWtoZXRzdGVnbiAgICAgICAkdCAgIEdqZWxkZW5kZSB0aWQgICAgICAgJHYgICBXQ01ELXZlcnNqb25cblwKXG5cCk1lcmsgYXQg5SBicnVrZSBQUk9NUFQta29tbWFuZG9lbiB1dGVuIGVuIGtsYXJ0ZWduLXN0cmVuZyB0aWxiYWtlc3RpbGxlclxuXAprbGFydGVnbmV0IHRpbCBzdGFuZGFyZHZlcmRpZW4sIHNvbSBlciBhcmJlaWRza2F0YWxvZ2VuIChpbmtsdWRlcnRcblwKc3Rhc2pvbnNib2tzdGF2ZW4pIGV0dGVyZnVsZ3QgYXYgZXQgc3T4cnJlIGVubi10ZWduICg+KS5cblwKKFNvbSBlbiBrb21tYW5kbyBQUk9NUFQgJHAkZy4pXG5cClxuXApLbGFydGVnbmV0IGthbiBvZ3PlIGVuZHJlcyB2ZWQgZW5kcmUgbWlsavh2YXJpYWJsZW4gUFJPTVBULCBz5VxuXAprb21tYW5kb2VuIKtTRVQgUFJPTVBUPXRla3N0uyBoYXIgc2FtbWUgZWZmZWt0IHNvbSCrUFJPTVBUIHRla3N0uy5cbiIKCiAgV0NNRF9SRU0sCiJFbiBrb21tYW5kb2xpbmplIHNvbSBiZWd5bm5lciBtZWQgUkVNIChldHRlcmZ1bGd0IGF2IGV0IG1lbGxvbXJvbSlcblwKdXRm+HJlciBpbmdlbiBoYW5kbGluZywgb2cga2FuIGRlcmZvciBicnVrZXMgc29tIGtvbW1hbnRhciBpIGVuIHNhdHN2aXNcblwKZmlsLlxuIgoKICBXQ01EX1JFTiwgICAgIkhqZWxwIHRpbCBSRU5cbiIKICBXQ01EX1JFTkFNRSwgIkhqZWxwIHRpbCBSRU5BTUVcbiIKICBXQ01EX1JELCAgICAgIkhqZWxwIHRpbCBSRFxuIgogIFdDTURfUk1ESVIsICAiSGplbHAgdGlsIFJNRElSXG4iCgogIFdDTURfU0VULAoiU0VUIHZpc2VyIGVsbGVyIGVuZHJlciBtaWxq+HZhcmlhYmxlbmUgaSBXQ01ELlxuXApcblwKU0VUIHV0ZW4gcGFyYW1ldGVyZSB2aXNlciBhbGxlIGdqZWxkZW5kZSBtaWxq+HZhcmlhYmxlci5cblwKXG5cClN5bnRha3NlbiBmb3Ig5SBvcHByZXR0ZSBlbGxlciBlbmRyZSBlbiBtaWxq+HZhcmlhYmVsIGVyOlxuXApcblwKICAgICAgU0VUIDx2YXJpYWJlbD49PHZlcmRpPlxuXApcblwKaHZvciA8dmFyaWFiZWw+IG9nIDx2ZXJkaT4gZXIgdGVnbnN0cmVuZ2VyLiBEZXQgbeUgaWtrZSB25nJlIG1lbGxvbXJvbVxuXApm+HIgbGlraGV0c3RlZ25ldCwgb2cgdmFyaWFiZWxuYXZuZXQga2FuIGhlbGxlciBpa2tlIGhhIGlubmVieWdkZVxuXAptZWxsb21yb20uXG5cClxuXApJIFdpbmUgZXIgbWlsavh2YXJpYWJsZW5lIGkgZGV0IHVuZGVybGlnZ2VuZGUgb3BlcmF0aXZzeXN0ZW1ldFxuXCBpbmtsdWRlcnQgaSBXaW4zMi1taWxq+GV0LCBvZyBkZXQgZXIgZGVyZm9yIHZhbmxpZ3ZpcyBtYW5nZSBmbGVyZVxuXAp2ZXJkaWVyIGVubiBpIGV0IHZhbmxpZyBXaW4zMi1taWxq+C4gVuZyIG9wcG1lcmtzb20gcOUgYXQgZGV0IGlra2UgZ+VyXG5cCmFuIOUgZW5kcmUgbWlq+GV0IGkgZGV0IHVuZGVybGlnZ2VuZGUgb3BlcmF0aXZzeXN0ZW1ldCBmcmEgV0NNRC5cbiIKCiAgV0NNRF9TSElGVCwKIlNISUZUIGJydWtlciBpIGVuIHNhdHN2aXMgZmlsIGZvciDlIGZqZXJuZSBkZW4gZvhyc3RlIHBhcmFtZXRlcmVuIGkgZW5cblwKbGlzdGUsIHPlbm4gYXQgcGFyYW1ldGVyIDIgYmxpciBwYXJhbWV0ZXIgMSBvZyBz5SB2aWRlcmUuIERldCBoYXIgaW5nZW5cblwKZWZmZWt0IGh2aXMgZGV0IGJydWtlcyBmcmEga29tbWFuZG9saW5qZW4uXG4iCgogIFdDTURfVElNRSwgICAiSGplbHAgdGlsIFRJTUVcbiIKCiAgV0NNRF9USVRMRSwgICJBbmdpciB0aXR0ZWxlbiBmb3IgV0NNRC12aW5kdWV0LCBzeW50YWtzZW4gZXJcblwKICBUSVRMRSBbc3RyZW5nXVxuIgoKICBXQ01EX1RZUEUsCiKrVFlQRSA8ZmlsbmF2bj67IGtvcGllcmVyIDxmaWxuYXZuPiB0aWwga29uc29sbGVuaGV0ZW4gKGVsbGVyIGV0IGFubmV0XG5cCnN0ZWQgaHZpcyBkZXQgb21kaXJpZ2VyZXMpLiBEZXQga29udHJvbGxlcmVzIGlra2Ugb20gZmlsZW4gZXIgbGVzZWxpZyB0ZWtzdC5cbiIKCiAgV0NNRF9WRVJJRlksCiJWRVJJRlkgYnJ1a2VzIHRpbCDlIGFrdGl2ZXJlLCBkZWFrdGl2ZXJlIGVsbGVyIHRlc3RlIKt2ZXJpZnm7LWZsYWdnZXQuXG5cIEd5bGRpZ2UgbeV0ZXIgZXI6XG5cClxuXApWRVJJRlkgT04JQWt0aXZlcmVyIGZsYWdnZXRcblwKVkVSSUZZIE9GRglEZWFrdGl2ZXJlciBmbGFnZ2V0XG5cClZFUklGWQkJVmlzZXIgT04gaHZpcyBw5SBlbGxlcnIgT0ZGIGh2aXMgYXYuXG5cClxuXAqrVmVyaWZ5uy1mbGFnZ2V0IGhhciBpbmdlbiBmdW5rc2pvbiBpIFdpbmUuXG4iCgogIFdDTURfVkVSLAoiVkVSIHZpc2VyIHZlcnNqb25udW1tZXJldCB0aWwgV0NNRFxuIgoKICBXQ01EX1ZPTCwgICAgIkhqZWxwIHRpbCBWT0xcbiIKCiAgV0NNRF9FWElULAoiRVhJVCBhdnNsdXR0ZXIgZ2plbGRlbmRlIGtvbW1hbmRv+Gt0IG9nIHJldHVybmVyZXIgdGlsIG9wZXJhdGl2c3lzdGVtZXRcblwKZWxsZXIgc2thbGxldCBXQ01EIGJsZSBzdGFydGV0IGZyYS5cbiIKCiAgMTAwMCwgIklubmVieWdkZSBrb21tYW5kb2VyIGkgV0NNRDpcblwKQVRUUklCXHRcdFZpc2VyIGVsbGVyIGVuZHJlciBET1MtZmlsYXR0cmlidXR0ZXJcblwKQ0FMTFx0XHRLYWxsIGVuIHNhdHN2aXMgZmlsIGlubmUgaSBlbiBhbm5lblxuXApDRCAoQ0hESVIpXHRCeXR0ZXIgYXJiZWlkc2thdGFsb2dcblwKQ0xTXHRcdFT4bW1lciBrb25zb2xsc2tqZXJtZW5cblwKQ09QWVx0XHRLb3BpZXJlciBmaWxlclxuXApDVFRZXHRcdEVuZHJlciBpbm4vdXQtZW5oZXRcblwKREFURVx0XHRWaXNlciBlbGxlciBlbmRyZXIgc3lzdGVtZGF0b2VuXG5cCkRFTCAoRVJBU0UpXHRTbGV0dGVyIGVuIGVsbGVyIGZsZXJlIGZpbGVyXG5cCkRJUlx0XHRWaXNlciBpbm5ob2xkZXQgaSBlbiBrYXRhbGdvXG5cCkVDSE9cdFx0S29waWVyZXIgdGVrc3QgZGlyZWt0ZSB0aWwga29uc29sbC11dGRhdGFlblxuXApIRUxQXHRcdFZpc2VyIGVuIGtvcnQgaGplbHBlYmVza3JpdmVsc2Ugb20gZXQgZW1uZVxuXApNRCAoTUtESVIpXHRMYWdlciBlbiB1bmRlcmthdGFsb2dcblwKTU9WRVx0XHRGbHl0dGVyIGVuIGVsbGVyIGZsZXJlIGZpbGVyLCBlbGxlciBlbiBrYXRhbG9ndHJlXG5cClBBVEhcdFx0RW5kcmVyIGVsbGVyIHZpc2VyIHP4a2VzdGllblxuXApQUk9NUFRcdFx0RW5kcmVyIGtvbW1hbmRvLWtsYXJ0ZWduZXRcblwKUkVOIChSRU5BTUUpXHRHaXIgbnl0dCBuYXZuIHRpbCBlbiBmaWxcblwKUkQgKFJNRElSKVx0U2xldHRlciBlbiB1bmRlcmthdGFsb2dcblwKU0VUXHRcdEFuZ2lyIGVsbGVyIHZpc2VyIG1pbGr4dmFyaWFibGVyXG5cClRJTUVcdFx0QW5naXIgZWxsZXIgdmlzZXIgZ2plbGRlbmRlIHN5c3RlbXRpZFxuXApUSVRMRVx0XHRBbmdpciB2aW5kdXN0aXR0ZWxlbiBmb3IgV0NNRC34a3RlblxuXApUWVBFXHRcdFZpc2VyIGlubmhvbGRldCBpIGVuIGZpbFxuXApWRVJcdFx0VmlzZXIgV0NNRHMgdmVyc2pvbm51bW1lclxuXApWT0xcdFx0VmlzZXIgdm9sdW1uYXZuZXQgdGlsIGVuIHN0YXNqb25cblwKRVhJVFx0XHRBdnNsdXR0ZXIgV0NNRFxuXG5cClNrcml2IKtIRUxQIDxrb21tYW5kbz67IGZvciBtZXIgaW5mb3JtYXNqb24gb20ga29tbWFuZG9lbmUgb3ZlbmZvclxuIgp9Cg==