LyoKICogV2luZSBjb21tYW5kIHByb21wdAogKiBTcGFuaXNoIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA3IEpvc+kgTWFudWVsIEZlcnJlciBPcnRpegogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgpMQU5HVUFHRSBMQU5HX1NQQU5JU0gsIFNVQkxBTkdfTkVVVFJBTAoKU1RSSU5HVEFCTEUKewogIFdDTURfQVRUUklCLCAiQXl1ZGEgc29icmUgQVRUUklCXG4iCiAgV0NNRF9DQUxMLAoiQ0FMTCA8bm9tYnJlIGRlIGFyY2hpdm8gcG9yIGxvdGVzPiBzZSB1dGlsaXphIGRlbnRybyBkZSB1biBhcmNoaXZvIHBvclxuXApsb3RlcyBwYXJhIGVqZWN1dGFyIGNvbWFuZG9zIGRlc2RlIG90cm8gYXJjaGl2byBwb3IgbG90ZXMuIEN1YW5kbyBlbFxuXAphcmNoaXZvIHBvciBsb3RlcyBleGlzdGUsIGVsIGNvbnRyb2wgcmVncmVzYSBhbCBhcmNoaXZvIHF1ZSBsbyBsbGFt8y4gRWxcblwKY29tYW5kbyBDQUxMIHB1ZWRlIHByb3BvcmNpb25hciBwYXLhbWV0cm9zIHBhcmEgZWwgcHJvY2VkaW1pZW50byBsbGFtYWRvLlxuXApcblwKTG9zIGNhbWJpb3Mgc29icmUgZWwgZGlyZWN0b3JpbyBwb3IgZGVmZWN0bywgdmFyaWFibGVzIGRlIGVudG9ybm8sIGV0Yy5cblwKcmVhbGl6YWRvcyBkZXNkZSBkZW50cm8gZGUgdW4gcHJvY2VkaW1pZW50byBsbGFtYWRvIHNvbiBoZXJlZGFkb3MgcG9yIGVsXG5cCmxsYW1hbnRlLlxuIgoKICBXQ01EX0NELCAgICAgIkF5dWRhIHNvYnJlIENEXG4iCiAgV0NNRF9DSERJUiwgICJBeXVkYSBzb2JyZSBDSERJUlxuIgoKICBXQ01EX0NMUywgICAgIkNMUyBsaW1waWEgbGEgcGFudGFsbGEgZGUgbGEgY29uc29sYVxuIgoKICBXQ01EX0NPUFksICAgIkF5dWRhIHNvYnJlIENPUFlcbiIKICBXQ01EX0NUVFksICAgIkF5dWRhIHNvYnJlIENUVFlcbiIKICBXQ01EX0RBVEUsICAgIkF5dWRhIHNvYnJlIERBVEVcbiIKICBXQ01EX0RFTCwgICAgIkF5dWRhIHNvYnJlIERFTFxuIgogIFdDTURfRElSLCAgICAiQXl1ZGEgc29icmUgRElSXG4iCgogIFdDTURfRUNITywKIkVDSE8gPGNhZGVuYT4gbXVlc3RyYSA8Y2FkZW5hPiBlbiBlbCBkaXNwb3NpdGl2byBkZSB0ZXJtaW5hbCBhY3R1YWwuXG5cClxuXApFQ0hPIE9OIHByb3ZvY2EgcXVlIHRvZG9zIGxvcyBjb21hbmRvcyBzdWJzaWd1aWVudGVzIGVuIHVuIGFyY2hpdm8gcG9yXG5cCmxvdGVzIHNlYW4gbW9zdHJhZG9zIGVuIGVsIHRlcm1pbmFsIGFudGVzIGRlIHNlciBlamVjdXRhZG9zLlxuXApcblwKRUNITyBPRkYgaW52aWVydGUgZWwgZWZlY3RvIGRlIHVuIHByZXZpbyBFQ0hPIE9OIChFQ0hPIGVzIE9GRiBwb3JcblwKZGVmZWN0bykuIEVsIGNvbWFuZG8gRUNITyBPRkYgcHVlZGUgcHJldmVuaXJzZSBkZSBzZXIgbW9zdHJhZG9cblwKcHJlY2VkaeluZG9sbyBwb3IgdW4gc2lnbm8gQC5cbiIKCiAgV0NNRF9FUkFTRSwgICJBeXVkYSBzb2JyZSBFUkFTRVxuIgoKICBXQ01EX0ZPUiwKIkVsIGNvbWFuZG8gRk9SIHNlIHV0aWxpemEgcGFyYSBlamVjdXRhciB1biBjb21hbmRvIHBhcmEgY2FkYSB1bm8gZGVcblwKdW4gY29uanVudG8gZGUgYXJjaGl2b3MuXG5cClxuXApTaW50YXhpczogRk9SICV2YXJpYWJsZSBJTiAoY29uanVudG8pIERPIGNvbWFuZG9cblwKXG5cCkxhIG5lY2VzaWRhZCBkZSBkb2JsYXIgZWwgc2lnbm8gJSBjdWFuZG8gc2UgdXRpbGl6YSBGT1IgZW4gdW4gYXJjaGl2b1xuXApwb3IgbG90ZXMgbm8gZXhpc3RlIGVuIGNtZC5cbiIKCiAgV0NNRF9HT1RPLAoiRWwgY29tYW5kbyBHT1RPIHRyYW5zZmllcmUgbGEgZWplY3VjafNuIGEgb3RybyBtYW5kYXRvIGRlbnRybyBkZSB1blxuXAphcmNoaXZvIHBvciBsb3Rlcy5cblwKXG5cCkxhIGV0aXF1ZXRhIHF1ZSBlcyBlbCBvYmpldGl2byBkZSB1biBjb21hbmRvIEdPVE8gcHVlZGUgc2VyIGRlIGhhc3RhXG5cCjI1NSBjYXJhY3RlcmVzIGRlIGxvbmdpdHVkIHBlcm8gbm8gcHVlZGUgaW5jbHVpciBlc3BhY2lvcyAoZXN0byBlc1xuXApkaWZlcmVudGUgYSBvdHJvcyBzaXN0ZW1hcyBvcGVyYXRpdm9zKS4gU2kgZG9zIG8gbeFzIGV0aXF1ZXRhc1xuXAppZOludGljYXMgZXhpc3RlbiBlbiB1biBhcmNoaXZvIHBvciBsb3RlcywgbGEgcHJpbWVyYSBkZSBlbGxhcyBzZXLhXG5cCnNpZW1wcmUgbGEgcXVlIHNlIGVqZWN1dGFy4S4gRWwgaW50ZW50byBkZSBoYWNlciBHT1RPIGEgdW5hIGV0aXF1ZXRhXG5cCm5vIGV4aXN0ZW50ZSB0ZXJtaW5hIGxhIGVqZWN1Y2nzbiBkZWwgYXJjaGl2byBwb3IgbG90ZXMuXG5cClxuXApHT1RPIG5vIHRpZW5lIGVmZWN0byBjdWFuZG8gc2UgdXNhIGludGVyYWN0aXZhbWVudGUuXG4iCgogIFdDTURfSEVMUCwgICAiQXl1ZGEgc29icmUgSEVMUFxuIgoKICBXQ01EX0lGLAoiSUYgc2UgdXRpbGl6YSBwYXJhIGVqZWN1dGFyIGNvbmRpY2lvbmFsbWVudGUgdW4gY29tYW5kby5cblwKXG5cClNpbnRheGlzOglJRiBbTk9UXSBFWElTVCBub21icmVfYXJjaGl2byBjb21hbmRvXG5cCgkJSUYgW05PVF0gY2FkZW5hMT09Y2FkZW5hMiBjb21hbmRvXG5cCgkJSUYgW05PVF0gRVJST1JMRVZFTCBu+m1lcm8gY29tYW5kb1xuXApcblwKRW4gbGEgc2VndW5kYSBmb3JtYSBkZWwgY29tYW5kbywgY2FkZW5hMSB5IGNhZGVuYTIgZGViZW4gZXN0YXIgZW50cmVcblwKY29taWxsYXMgZG9ibGVzLiBMYSBjb21wYXJhY2nzbiBubyBkaXN0aW5ndWUgbWF5+nNjdWxhcyBkZSBtaW76c2N1bGFzLlxuIgoKICBXQ01EX0xBQkVMLCAgIkxBQkVMIHNlIHV0aWxpemEgcGFyYSBhanVzdGFyIHVuYSBldGlxdWV0YSBkZSB2b2x1bWVuXG5cCiAgZGUgZGlzY28uXG5cClxuXApTaW50YXhpczogTEFCRUwgW3VuaWRhZDpdXG5cCkVsIGNvbWFuZG8gbGUgcGVkaXLhIGxhIG51ZXZhIGV0aXF1ZXRhIGRlIHZvbHVtZW4gcGFyYSBsYSB1bmlkYWQgZGFkYS5cblwKUHVlZGUgdmVyIGxhIGV0aXF1ZXRhIGRlIHZvbHVtZW4gZGVsIGRpc2NvIGNvbiBlbCBjb21hbmRvIFZPTC5cbiIKCiAgV0NNRF9NRCwgICAgICJBeXVkYSBzb2JyZSBNRFxuIgogIFdDTURfTUtESVIsICAiQXl1ZGEgc29icmUgTUtESVJcbiIKICBXQ01EX01PVkUsCiJNT1ZFIHJlYWxvamEgdW4gYXJjaGl2byBvIGRpcmVjdG9yaW8gYSB1biBudWV2byBwdW50byBkZWwgc2lzdGVtYSBkZVxuXAphcmNoaXZvcy5cblwKXG5cClNpIGVsIGVsZW1lbnRvIHNpZW5kbyBtb3ZpZG8gZXMgdW4gZGlyZWN0b3JpbywgZW50b25jZXMgdG9kb3MgbG9zXG5cCmFyY2hpdm9zIHkgc3ViZGlyZWN0b3Jpb3MgcG9yIGRlYmFqbyBkZWwgZWxlbWVudG8gc29uIG1vdmlkb3MgdGFtYmnpbi5cblwKXG5cCk1PVkUgZmFsbGEgc2kgbGEgbG9jYWxpemFjafNuIHZpZWphIHkgbGEgbnVldmEgZXN04W4gZW4gZGlmZXJlbnRlc1xuXApsZXRyYXMgZGUgdW5pZGFkIGRlIERPUy5cbiIKCiAgV0NNRF9QQVRILAoiUEFUSCBtdWVzdHJhIG8gY2FtYmlhIGxhIHJ1dGEgZGUgYvpzcXVlZGEgZGUgY21kLlxuXApcblwKQWwgaW50cm9kdWNpciBQQVRIIHNlIG1vc3RyYXLhIGxhIGNvbmZpZ3VyYWNp824gYWN0dWFsIGRlIFBBVEhcblwKKGluaWNpYWxtZW50ZSBlc3RvIGVzIGVsIHZhbG9yIGRhZG8gZW4gc3UgYXJjaGl2byB3aW5lLmNvbmYpLiBQYXJhXG5cCmNhbWJpYXIgbGEgY29uZmlndXJhY2nzbiBhY29tcGHxZSBhbCBjb21hbmRvIFBBVEggY29uIGVsIG51ZXZvIHZhbG9yLlxuXApcblwKVGFtYmnpbiBlcyBwb3NpYmxlIG1vZGlmaWNhciBlbCBQQVRIIHVzYW5kbyBsYSB2YXJpYWJsZSBkZSBlbnRvcm5vXG5cClBBVEgsIHBvciBlamFtcGxvOlxuXAoJCVBBVEggJVBBVEglO2M6XFx0ZW1wIFxuIgoKICBXQ01EX1BBVVNFLAoiUEFVU0UgbXVlc3RyYSB1biBtZW5zYWplIGVuIGxhIHBhbnRhbGxhICdQdWxzZSBsYSB0ZWNsYSBSZXR1cm4gcGFyYVxuXApjb250aW51YXInIHkgZXNwZXJhIHF1ZSBlbCB1c3VhcmlvIHB1bHNlIGxhIHRlY2xhIFJldHVybi4gRXNcblwKcHJpbmNpcGFsbWVudGUg+nRpbCBlbiBhcmNoaXZvcyBwb3IgbG90ZXMgcGFyYSBwZXJtaXRpciBhbCB1c3VhcmlvXG5cCmxlZXIgbGEgc2FsaWRhIGRlIHVuIGNvbWFuZG8gYW50ZXJpb3IgYW50ZXMgZGUgcXVlIHNlIGRlc3BsYWNlIGZ1ZXJhXG5cCmRlIGxhIHBhbnRhbGxhLlxuIgoKICBXQ01EX1BST01QVCwKIlBST01QVCBhanVzdGEgZWwgcHJvbXB0IGRlIGxhIGztbmVhIGRlIGNvbWFuZG9zLlxuXApcblwKTGEgY2FkZW5hIHF1ZSBzaWd1ZSBhbCBjb21hbmRvIFBST01QVCAoeSBlbCBlc3BhY2lvIGlubWVkaWF0YW1lbnRlXG5cCmRlc3B16XMpIGFwYXJlY2UgYWwgcHJpbmNpcGlvIGRlIGxhIGztbmVhIGN1YW5kbyBjbWQgZXN04SBlc3BlcmFuZG9cblwKbGEgZW50cmFkYS5cblwKXG5cCkxhcyBzaWd1aWVudGVzIGNhZGVuYXMgZGUgY2FyYWN0ZXJlcyB0aWVuZW4gZWwgc2lnbmlmaWNhZG8gZXNwZWNpYWxcblwKcXVlIHNlIG11ZXN0cmE6XG5cClxuXAokJCAgICBTaWdubyBk82xhciAgICAgICAgICRfICAgIE51ZXZhIGztbmVhICAgICAgICAgJGIgICAgU2lnbm8gZGUgdHVibyAofClcblwKJGQgICAgRmVjaGEgYWN0dWFsICAgICAgICAkZSAgICBFc2NhcGUgICAgICAgICAgICAgICRnICAgIFNpZ25vID5cblwKJGwgICAgU2lnbm8gPCAgICAgICAgICAgICAkbiAgICBVbmlkYWQgYWN0dWFsICAgICAgICRwICAgIFJ1dGEgYWN0dWFsXG5cCiRxICAgIFNpZ25vIGlndWFsICAgICAgICAgJHQgICAgSG9yYSBhY3R1YWwgICAgICAgICAkdiAgICBWZXJzafNuIGRlIGNtZFxuXApcblwKTvN0ZXNlIHF1ZSBzaSBzZSBpbnRyb2R1Y2UgZWwgY29tYW5kbyBQUk9NUFQgc2luIHVuYSBjYWRlbmEgZGUgcHJvbXB0XG5cCnJlaW5pY2lhbGl6YSBlbCBwcm9tcHQgYWwgdmFsb3IgcG9yIGRlZmVjdG8sIHF1ZSBlcyBlbCBkaXJlY3RvcmlvXG5cCmFjdHVhbCAocXVlIGluY2x1eWUgbGEgbGV0cmEgZGUgbGEgdW5pZGFkIGFjdHVhbCkgc2VndWlkbyBwb3IgdW4gc2lnbm9cblwKbWF5b3IgcXVlICg+KS5cblwKKGNvbW8gdW4gY29tYW5kbyBQUk9NUFQgJHAkZykuXG5cClxuXApFbCBwcm9tcHQgcHVlZGUgdGFtYmnpbiBzZXIgY2FtYmlhZG8gYWx0ZXJhbmRvIGxhIHZhcmlhYmxlIGRlIGVudG9ybm9cblwKUFJPTVBULCBwb3IgbG8gcXVlIGVsIGNvbWFuZG8gJ1NFVCBQUk9NUFQ9dGV4dG8nIHRpZW5lIGVsIG1pc21vIGVmZWN0b1xuXApxdWUgJ1BST01QVCB0ZXh0bydcbiIKCiAgV0NNRF9SRU0sCiJVbmEgbO1uZWEgZGUgY29tYW5kb3MgcXVlIGVtcGllemEgcG9yIFJFTSAoc2VndWlkbyBkZSB1biBlc3BhY2lvKSBub1xuXApyZWFsaXphIG5pbmd1bmEgYWNjafNuLCB5IHB1ZWRlIHBvciB0YW50byBzZXIgdXRpbGl6YWRhIGNvbW8gdW5cblwKY29tZW50YXJpbyBlbiB1biBhcmNoaXZvIHBvciBsb3Rlcy5cbiIKCiAgV0NNRF9SRU4sICAgICJBeXVkYSBzb2JyZSBSRU5cbiIKICBXQ01EX1JFTkFNRSwgIkF5dWRhIHNvYnJlIFJFTkFNRVxuIgogIFdDTURfUkQsICAgICAiQXl1ZGEgc29icmUgUkRcbiIKICBXQ01EX1JNRElSLCAgIkF5dWRhIHNvYnJlIFJNRElSXG4iCgogIFdDTURfU0VULAoiU0VUIG11ZXN0cmEgbyBjYW1iaWEgbGFzIHZhcmlhYmxlcyBkZSBlbnRvcm5vIGRlIGNtZC5cblwKXG5cClNFVCBzaW4gcGFy4W1ldHJvcyBtdWVzdHJhIHRvZGFzIGxhcyB2YXJpYWJsZXMgZGUgZW50b3JubyBhY3R1YWxlcy5cblwKXG5cClBhcmEgY3JlYXIgbyBtb2RpZmljYXIgdW5hIHZhcmlhYmxlIGRlIGVudG9ybm8gbGEgc2ludGF4aXMgZXM6XG5cClxuXAogICAgICBTRVQgPHZhcmlhYmxlPj08dmFsb3I+XG5cClxuXApkb25kZSA8dmFyaWFibGU+IHkgPHZhbG9yPiBzb24gY2FkZW5hcyBkZSBjYXJhY3RlcmVzLiBObyBkZWJlIGhhYmVyXG5cCmVzcGFjaW9zIGFudGVzIGRlbCBzaWdubyBpZ3VhbCwgbmkgbGEgdmFyaWFibGUgcHVlZGUgY29udGVuZXIgZXNwYWNpb3NcblwKZW1iZWJpZG9zLlxuXApcblwKQmFqbyBXaW5lLCBlbCBlbnRvcm5vIGRlbCBzaXN0ZW1hIG9wZXJhdGl2byBxdWUgaGF5IHBvciBkZWJham8gc2VcblwKaW5jbHV5ZSBlbiBlbCBlbnRvcm5vIGRlIFdpbjMyIHBvciBsbyBxdWUsIHBvciBsbyBnZW5lcmFsLCBoYWJy4SBtdWNob3NcblwKbeFzIHZhbG9yZXMgcXVlIGVuIHVuYSBpbXBsZW1lbnRhY2nzbiBXaW4zMiBuYXRpdmEuIE7zdGVzZSBxdWUgbm8gZXNcblwKcG9zaWJsZSBhZmVjdGFyIGFsIGVudG9ybm8gZGVsIHNpc3RlbWEgb3BlcmF0aXZvIGRlc2RlIGNtZC5cbiIKCiAgV0NNRF9TSElGVCwKIlNISUZUIHNlIHV0aWxpemEgZW4gdW4gYXJjaGl2byBwb3IgbG90ZXMgcGFyYSBlbGltaW5hciB1biBwYXLhbWV0cm9cblwKZGUgbGEgY2FiZXphIGRlIGxhIGxpc3RhLCBwb3IgbG8gcXVlIGVsIHBhcuFtZXRybyAyIHNlIGNvbnZpZXJ0ZSBlblxuXAplbCBwYXLhbWV0cm8gMSB5IGRlbeFzLiBObyB0aWVuZSBlZmVjdG8gc2kgc2UgbGxhbWEgZGVzZGUgbGEgbO1uZWFcblwKZGUgY29tYW5kby5cbiIKCiAgV0NNRF9USU1FLCAgICJBeXVkYSBzb2JyZSBUSU1FXG4iCgogIFdDTURfVElUTEUsCiJBanVzdGEgZWwgdO10dWxvIGRlIGxhIHZlbnRhbmEgZGUgY21kLCBzaW50YXhpcyBUSVRMRSBbY2FkZW5hXVxuIgoKICBXQ01EX1RZUEUsCiJUWVBFIDxub21icmUgZGUgYXJjaGl2bz4gY29waWEgPG5vbWJyZSBkZSBhcmNoaXZvPiBhbCBkaXNwb3NpdGl2byBkZVxuXApjb25zb2xhIChvIGEgZG9uZGUgc2VhIHNpIHNlIHJlZGlyZWNjaW9uYSkuIE5vIHNlIHJlYWxpemEgbmluZ3VuYVxuXApjb21wcm9iYWNp824gZGUgc2kgZWwgYXJjaGl2byBlcyB0ZXh0byBsZWdpYmxlLlxuIgoKICBXQ01EX1ZFUklGWSwKIlZFUklGWSBzZSB1c2EgcGFyYSBwb25lciwgcXVpdGFyIG8gcHJvYmFyIGxhIGV0aXF1ZXRhIGRlIHZlcmlmaWNhY2nzbi5cblwKTGFzIGZvcm1hcyB24WxpZGFzIHNvbjpcblwKXG5cClZFUklGWSBPTglQb25lciBsYSBiYW5kZXJhXG5cClZFUklGWSBPRkYJUXVpdGFyIGxhIGJhbmRlcmFcblwKVkVSSUZZCQlNdWVzdHJhIE9OIHUgT0ZGIGNvbW8gY29ycmVzcG9uZGEuXG5cClxuXApMYSBiYW5kZXJhIGRlIHZlcmlmaWNhY2nzbiBubyB0aWVuZSBmdW5jaW9uYWxpZGFkIGVuIFdpbmUuXG4iCgogIFdDTURfVkVSLAoiVkVSIG11ZXN0cmEgbGEgdmVyc2nzbiBkZSBjbWQgcXVlIGVzdOEgZWplY3V0YW5kb1xuIgoKICBXQ01EX1ZPTCwgICAgIkF5dWRhIHNvYnJlIFZPTFxuIgoKICBXQ01EX1BVU0hELAoiUFVTSEQgPG5vbWJyZSBkZSBkaXJlY3RvcmlvPiBhbG1hY2VuYSBlbCBkaXJlY3RvcmlvIGFjdHVhbCBhIHVuYVxuXApwaWxhLCB5IGx1ZWdvIGNhbWJpYSBlbCBkaXJlY3RvcmlvIGFjdHVhbCBhbCBwcm9wb3JjaW9uYWRvLlxuIgoKICBXQ01EX1BPUEQsICAgIlBPUEQgY2FtYmlhIGVsIGRpcmVjdG9yaW8gYWN0dWFsIGFsIPpsdGltbyBhbG1hY2VuYWRvIGNvblxuXApQVVNIRC5cbiIKCiAgV0NNRF9NT1JFLCAgICJNT1JFIG11ZXN0cmEgbGEgc2FsaWRhIGRlIGFyY2hpdm9zIG8gZW50cmFkYSBlbnR1YmFkYSBwb3IgcOFnaW5hcy5cbiIKCiAgV0NNRF9FWElULAoiRVhJVCB0ZXJtaW5hIGxhIHNlc2nzbiBkZSBjb21hbmRvcyBhY3R1YWwgeSByZWdyZXNhIGFsIHNpc3RlbWFcblwKb3BlcmF0aXZvIG8gaW506XJwcmV0ZSBkZSBjb21hbmRvcyBkZXNkZSBlbCBxdWUgaW52b2PzIGNtZC5cbiIKCiAgV0NNRF9BTExIRUxQLCAiTG9zIGNvbWFuZG9zIGludGVybm9zIGRlIENNRCBzb246XG5cCkFUVFJJQlx0XHRNb3N0cmFyIG8gY2FtYmlhciBsb3MgYXRyaWJ1dG9zIGRlIGFyY2hpdm8gZGUgRE9TXG5cCkNBTExcdFx0SW52b2NhciB1biBhcmNoaXZvIHBvciBsb3RlcyBkZXNkZSBkZW50cm8gZGUgb3Ryb1xuXApDRCAoQ0hESVIpXHRDYW1iaWFyIGVsIGRpcmVjdG9yaW8gcG9yIGRlZmVjdG8gYWN0dWFsXG5cCkNMU1x0XHRWYWNpYXIgbGEgcGFudGFsbGEgZGUgbGEgY29uc29sYVxuXApDT1BZXHRcdENvcGlhciB1biBhcmNoaXZvXG5cCkNUVFlcdFx0Q2FtYmlhciBlbCBkaXNwb3NpdGl2byBkZSBlbnRyYWRhL3NhbGlkYVxuXApEQVRFXHRcdE1vc3RyYXIgbyBjYW1iaWFyIGxhIGZlY2hhIGRlbCBzaXN0ZW1hXG5cCkRFTCAoRVJBU0UpXHRFbGltaW5hciB1biBhcmNoaXZvIG8gY29uanVudG8gZGUgYXJjaGl2b3NcblwKRElSXHRcdExpc3RhciBlbCBjb250ZW5pZG8gZGUgdW4gZGlyZWN0b3Jpb1xuXApFQ0hPXHRcdENvcGlhciB0ZXh0byBkaXJlY3RhbWVudGUgYSBsYSBzYWxpZGEgZGUgY29uc29sYVxuXApIRUxQXHRcdE1vc3RyYXIgZGV0YWxsZXMgYnJldmVzIGRlIGF5dWRhIHNvYnJlIHVuIHRlbWFcblwKTUQgKE1LRElSKVx0Q3JlYXIgdW4gc3ViZGlyZWN0b3Jpb1xuXApNT1JFXHRcdE1vc3RyYXIgbGEgc2FsaWRhIHBvciBw4WdpbmFzXG5cCk1PVkVcdFx0TW92ZXIgdW4gYXJjaGl2bywgY29uanVudG8gZGUgYXJjaGl2b3MgbyDhcmJvbCBkZSBkaXJlY3RvcmlvXG5cClBBVEhcdFx0QWp1c3RhciBvIGNhbWJpYXIgbGEgcnV0YSBkZSBi+nNxdWVkYVxuXApQT1BEXHRcdFJlc3RhdXJhciBlbCBkaXJlY3RvcmlvIGFsIPpsdGltbyBhbG1hY2VuYWRvIGNvbiBQVVNIRFxuXApQUk9NUFRcdFx0Q2FtYmlhciBlbCBwcm9tcHQgZGUgY29tYW5kb3NcblwKUFVTSERcdFx0Q2FtYmlhciBhIHVuIG51ZXZvIGRpcmVjdG9yaW8sIGFsbWFjZW5hbmRvIGVsIGFjdHVhbFxuXApSRU4gKFJFTkFNRSlcdFJlbm9tYnJhciB1biBhcmNoaXZvXG5cClJEIChSTURJUilcdEVsaW1pbmFyIHVuIHN1YmRpcmVjdG9yaW9cblwKU0VUXHRcdEFqdXN0YXIgbyBtb3N0cmFyIHZhcmlhYmxlcyBkZSBlbnRvcm5vXG5cClRJTUVcdFx0QWp1c3RhciBvIG1vc3RyYXIgbGEgaG9yYSBhY3R1YWwgZGVsIHNpc3RlbWFcblwKVElUTEVcdFx0QWp1c3RhciBlbCB07XR1bG8gZGUgbGEgdmVudGFuYSBwYXJhIGxhIHNlc2nzbiBkZSBDTURcblwKVFlQRVx0XHRUZWNsZWFyIGVsIGNvbnRlbmlkbyBkZSB1biBhcmNoaXZvIGRlIHRleHRvXG5cClZFUlx0XHRNb3N0cmFyIGxhIHZlcnNp824gYWN0dWFsIGRlIENNRFxuXApWT0xcdFx0TW9zdHJhciBsYSBldGlxdWV0YSBkZSB2b2x1bWVuIGRlIHVuIGRpc3Bvc2l0aXZvIGRlIGRpc2NvXG5cCkVYSVRcdFx0Q29uY2x1aXIgQ01EXG5cblwKSW50cm9kdXpjYSBIRUxQIDxjb21hbmRvPiBwYXJhIG3hcyBpbmZvcm1hY2nzbiBzb2JyZSBjdWFscXVpZXJhIGRlIGxvcyBjb21hbmRvc1xuZGUgYXJyaWJhXG4iCgogIFdDTURfQ09ORklSTSwgIkVzdOEgc2VndXJvIgogIFdDTURfWUVTLCAiUyIKICBXQ01EX05PLCAiTiIKICBXQ01EX05PQVNTT0MsICJGYWx0YSB1bmEgYXNvY2lhY2nzbiBkZSBhcmNoaXZvIHBhcmEgbGEgZXh0ZW5zafNuICVzXG4iCiAgV0NNRF9OT0ZUWVBFLCAiTmluZ/puIGNvbWFuZG8gZGUgYXBlcnR1cmEgYXNvY2lhZG8gY29uIGVsIHRpcG8gZGUgYXJjaGl2byAnJXMnXG4iCiAgV0NNRF9PVkVSV1JJVEUsICJPdmVyd3JpdGUgJXMiCiAgV0NNRF9NT1JFU1RSLCAiTeFzLi4uIgogIFdDTURfVFJVTkNBVEVETElORSwgIkxpbmUgaW4gQmF0Y2ggcHJvY2Vzc2luZyBwb3NzaWJseSB0cnVuY2F0ZWQuIFVzaW5nOlxuIgogIFdDTURfTllJLCAiTm90IFlldCBJbXBsZW1lbnRlZFxuXG4iCiAgV0NNRF9OT0FSRywgIkFyZ3VtZW50IG1pc3NpbmdcbiIKICBXQ01EX1NZTlRBWEVSUiwgIlN5bnRheCBlcnJvclxuIgogIFdDTURfRklMRU5PVEZPVU5ELCAiJXMgOiBGaWxlIE5vdCBGb3VuZFxuIgogIFdDTURfTk9DTURIRUxQLCAiTm8gaGVscCBhdmFpbGFibGUgZm9yICVzXG4iCiAgV0NNRF9OT1RBUkdFVCwgIlRhcmdldCB0byBHT1RPIG5vdCBmb3VuZFxuIgogIFdDTURfQ1VSUkVOVERBVEUsICJDdXJyZW50IERhdGUgaXMgJXNcbiIKICBXQ01EX0NVUlJFTlRUSU1FLCAiQ3VycmVudCBUaW1lIGlzICVzXG4iCiAgV0NNRF9ORVdEQVRFLCAiRW50ZXIgbmV3IGRhdGU6ICIKICBXQ01EX05FV1RJTUUsICJFbnRlciBuZXcgdGltZTogIgogIFdDTURfTUlTU0lOR0VOViwgIkVudmlyb25tZW50IHZhcmlhYmxlICVzIG5vdCBkZWZpbmVkXG4iCiAgV0NNRF9SRUFERkFJTCwgIkZhaWxlZCB0byBvcGVuICclcydcbiIKICBXQ01EX0NBTExJTlNDUklQVCwgIkNhbm5vdCBjYWxsIGJhdGNoIGxhYmVsIG91dHNpZGUgb2YgYSBiYXRjaCBzY3JpcHRcbiIKICBXQ01EX0FMTCwgIkEiCiAgV0NNRF9ERUxQUk9NUFQsICIlcywgRGVsZXRlIgogIFdDTURfRUNIT1BST01QVCwgIkVjaG8gaXMgJXNcbiIKICBXQ01EX1ZFUklGWVBST01QVCwgIlZlcmlmeSBpcyAlc1xuIgogIFdDTURfVkVSSUZZRVJSLCAiVmVyaWZ5IG11c3QgYmUgT04gb3IgT0ZGXG4iOwogIFdDTURfQVJHRVJSLCAiUGFyYW1ldGVyIGVycm9yXG4iCiAgV0NNRF9WT0xVTUVERVRBSUwsICJWb2x1bWUgaW4gZHJpdmUgJWMgaXMgJXNcblZvbHVtZSBTZXJpYWwgTnVtYmVyIGlzICUwNHgtJTA0eFxuXG4iCiAgV0NNRF9WT0xVTUVQUk9NUFQsICJWb2x1bWUgbGFiZWwgKDExIGNoYXJhY3RlcnMsIEVOVEVSIGZvciBub25lKT8iCiAgV0NNRF9OT1BBVEgsICJQQVRIIG5vdCBmb3VuZFxuIgogIFdDTURfQU5ZS0VZLCJQcmVzcyBSZXR1cm4ga2V5IHRvIGNvbnRpbnVlOiAiCiAgV0NNRF9DT05TVElUTEUsIldpbmUgQ29tbWFuZCBQcm9tcHQiCiAgV0NNRF9WRVJTSU9OLCJDTUQgVmVyc2lvbiAlc1xuXG4iCiAgV0NNRF9NT1JFUFJPTVBULCAiTW9yZT8gIgp9Cg==