LyoKICogQ29weXJpZ2h0IDIwMDUtMjAwNyBBbGV4YW5kZXIgTi4gU/hybmVzIDxhbGV4QHRoZWhhbmRvZmFnb255LmNvbT4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19OT1JXRUdJQU4sIFNVQkxBTkdfTk9SV0VHSUFOX0JPS01BTAoKTUVOVV8wMDEgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgoJTUVOVUlURU0gIiZTdG9yZSBpa29uZXIiLAlGQ0lETV9TSFZJRVdfQklHSUNPTgoJTUVOVUlURU0gIiZTbeUgaWtvbmVyIiwJRkNJRE1fU0hWSUVXX1NNQUxMSUNPTgoJTUVOVUlURU0gIiZMaXN0ZSIsCQlGQ0lETV9TSFZJRVdfTElTVFZJRVcKCU1FTlVJVEVNICImRGV0YWxqZXIiLAkJRkNJRE1fU0hWSUVXX1JFUE9SVFZJRVcKRU5ECgovKgogc2hlbGx2aWV3IGJhY2tncm91bmQgbWVudQoqLwpNRU5VXzAwMiBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCglQT1BVUCAiIgoJQkVHSU4KCSAgUE9QVVAgIiZWaXMiCgkgIEJFR0lOCgkgICAgTUVOVUlURU0gIiZTdG9yZSBpa29uZXIiLAlGQ0lETV9TSFZJRVdfQklHSUNPTgoJICAgIE1FTlVJVEVNICJTJm3lIGlrb25lciIsCUZDSURNX1NIVklFV19TTUFMTElDT04KCSAgICBNRU5VSVRFTSAiJkxpc3RlIiwJCUZDSURNX1NIVklFV19MSVNUVklFVwoJICAgIE1FTlVJVEVNICImRGV0YWxqZXIiLAlGQ0lETV9TSFZJRVdfUkVQT1JUVklFVwoJICBFTkQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIFBPUFVQICJPcmRuZSAmaWtvbmVyIgoJICBCRUdJTgoJICAgIE1FTlVJVEVNICJFdHRlciAmbmF2biIsCTB4MzAJLyogY29sdW1uIDAgKi8KCSAgICBNRU5VSVRFTSAiRXR0ZXIgJnR5cGUiLAkweDMyCS8qIGNvbHVtbiAyICovCgkgICAgTUVOVUlURU0gIkV0dGVyICZzdPhycmVsc2UiLAkweDMxCS8qIC4uLiAqLwoJICAgIE1FTlVJVEVNICJFdHRlciAmZGF0byIsCTB4MzMKCSAgICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgICBNRU5VSVRFTSAiT3JkbmUgJmF1dG9tYXRpc2siLAlGQ0lETV9TSFZJRVdfQVVUT0FSUkFOR0UKCSAgRU5ECgkgIE1FTlVJVEVNICJTdGlsbCBvcHAgaWtvbmVyIiwJRkNJRE1fU0hWSUVXX1NOQVBUT0dSSUQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJPcHBkYXRlciIsCQlGQ0lETV9TSFZJRVdfUkVGUkVTSAoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIkxpbSBpbm4iLAkJRkNJRE1fU0hWSUVXX0lOU0VSVAoJICBNRU5VSVRFTSAiTGltIGlubiBzb20gc25hcnZlaSIsCUZDSURNX1NIVklFV19JTlNFUlRMSU5LCgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBQT1BVUCAiTnkiCgkgIEJFR0lOCgkgICAgTUVOVUlURU0gIk55ICZtYXBwZSIsCUZDSURNX1NIVklFV19ORVdGT0xERVIKCSAgICBNRU5VSVRFTSAiTnkgJnNuYXJ2ZWkiLAlGQ0lETV9TSFZJRVdfTkVXTElOSwoJICAgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBFTkQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJFZ2Vuc2thcGVyIiwJRkNJRE1fU0hWSUVXX1BST1BFUlRJRVMKCUVORApFTkQKCi8qCiBzaGVsbHZpZXcgaXRlbSBtZW51CiovCk1FTlVfU0hWX0ZJTEUgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgoJUE9QVVAgIiIKCUJFR0lOCgkgIE1FTlVJVEVNICImVmVsZyIJCUZDSURNX1NIVklFV19PUEVOCgkgIE1FTlVJVEVNICImVXRmb3JzayIsCQlGQ0lETV9TSFZJRVdfRVhQTE9SRQoJICBNRU5VSVRFTSAiJsVwbmUiLAkJRkNJRE1fU0hWSUVXX09QRU4KCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJLbGlwcCAmdXQiLAkJRkNJRE1fU0hWSUVXX0NVVAoJICBNRU5VSVRFTSAiJktvcGllciIsCQlGQ0lETV9TSFZJRVdfQ09QWQoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIiZPcHByZXR0IHNuYXJ2ZWkiLAlGQ0lETV9TSFZJRVdfQ1JFQVRFTElOSwoJICBNRU5VSVRFTSAiJlNsZXR0IiwJCUZDSURNX1NIVklFV19ERUxFVEUKCSAgTUVOVUlURU0gIiZHaSBueXR0IG5hdm4iCUZDSURNX1NIVklFV19SRU5BTUUKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJFZ2Vuc2thJnBlciIsCUZDSURNX1NIVklFV19QUk9QRVJUSUVTCglFTkQKRU5ECgpTSEJSU0ZPUkZPTERFUl9NU0dCT1ggRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMTUsIDQwLCAxODgsIDE5MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUgfCBEU19NT0RBTEZSQU1FIHwgRFNfU0VURk9OVCB8IERTXzNETE9PSwpDQVBUSU9OICJCbGEgZXR0ZXIgbWFwcGUiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogREVGUFVTSEJVVFRPTiAiT0siLCAxLCA4MCwgMTc2LCA1MCwgMTIsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkF2YnJ5dCIsIDIsIDEzNCwgMTc2LCA1MCwgMTIsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgIiIsIElERF9USVRMRSwgNCwgNCwgMTgwLCAxMgogTFRFWFQgIiIsIElERF9TVEFUVVMsIDQsIDI1LCAxODAsIDEyCiBDT05UUk9MICIiLCBJRERfVFJFRVZJRVcsICJTeXNUcmVlVmlldzMyIiwKIAlUVlNfSEFTQlVUVE9OUyB8IFRWU19IQVNMSU5FUyB8IFRWU19MSU5FU0FUUk9PVCB8CglXU19CT1JERVIgfCBXU19UQUJTVE9QLAoJNCwgNDAsIDE4MCwgMTIwCn0KClNITkVXQlJTRk9SRk9MREVSX01TR0JPWCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAxNSwgNDAsIDIxOCwgMTk2ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVSB8IERTX01PREFMRlJBTUUgfCBEU19TRVRGT05UIHwgRFNfM0RMT09LCkNBUFRJT04gIkJsYSBldHRlciBtYXBwZSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBMVEVYVCAiIiwgSUREX1RJVExFLCAxMCwgOCwgMTk4LCAyNAogTFRFWFQgIiIsIElERF9TVEFUVVMsIDEwLCAyNSwgMTk4LCAxMgogTFRFWFQgIk1hcHBlOiIsIElERF9GT0xERVIsIDEwLCAxNTYsIDQwLCAxMgogQ09OVFJPTCAiIiwgSUREX1RSRUVWSUVXLCAiU3lzVHJlZVZpZXczMiIsCglUVlNfSEFTQlVUVE9OUyB8IFRWU19IQVNMSU5FUyB8IFRWU19MSU5FU0FUUk9PVCB8CglXU19CT1JERVIgfCBXU19UQUJTVE9QLAoJMTIsIDM4LCAxOTQsIDEwNQogRURJVFRFWFQgSUREX0ZPTERFUlRFWFQsIDQ2LCAxNTAsIDE2MCwgMTQsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiTnkgJm1hcHBlIiwgSUREX01BS0VORVdGT0xERVIsIDEyLCAxNzQsIDcwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDEwMiwgMTc0LCA1MCwgMTQsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkF2YnJ5dCIsIElEQ0FOQ0VMLCAxNTYsIDE3NCwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKfQoKU0hFTExfWUVTVE9BTExfTVNHQk9YIERJQUxPRyAyMDAsIDEwMCwgMjgwLCA5MApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiTWVsZGluZ3MiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgREVGUFVTSEJVVFRPTiAiJkphIiwgSURZRVMsIDM0LCA2OSwgNTMsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gIkphIHRpbCAmYWx0IiwgSUREX1lFU1RPQUxMLCA5MiwgNjksIDY1LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICImTmVpIiwgSUROTywgMTYyLCA2OSwgNTMsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gIiZBdmJyeSZ0IiwgSURDQU5DRUwsIDIyMCwgNjksIDUzLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBJQ09OICIiLCBJRERfSUNPTiwgMTAsIDEwLCAxNiwgMTYKICAgIExURVhUICIiLCBJRERfTUVTU0FHRSwgNDAsIDEwLCAyMzgsIDUyLCAwCn0KClNIRUxMX0FCT1VUX01TR0JPWCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAxNSwgNDAsIDIyMCwgMTUyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJPbSAlcyIKRk9OVCAxMCwgIk1TIFNoZWxsIERsZyIKewogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCAxNTMsIDEzMywgNjAsIDEyLCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJMaXNlbnMuLi4iLCBJRENfQUJPVVRfTElDRU5TRSwgMTUzLCAxMTMsIDYwLCAxMiwgV1NfVEFCU1RPUAogTElTVEJPWCBJRENfQUJPVVRfTElTVEJPWCwgOCwgNjUsIDEzNywgODIsIExCU19OT1RJRlkgfCBXU19WU0NST0xMIHwgV1NfQk9SREVSCiBJQ09OICIiLCBzdGMxLCAxMCwgMTAsIDMwLCAzMAogTFRFWFQgIiIsIElEQ19BQk9VVF9TVEFUSUNfVEVYVDEsIDQyLCAxMCwgMTcwLCAxMAogTFRFWFQgIiIsIElEQ19BQk9VVF9TVEFUSUNfVEVYVDIsIDQyLCAyMiwgMTcwLCAxMAogTFRFWFQgIktq+HJlciBw5SAlcyIsIElEQ19BQk9VVF9TVEFUSUNfVEVYVDMsIDQyLCAzNCwgMTcwLCAxMAogTFRFWFQgIldpbmUgZXIgbGFnZXQgYXYiLCBJRENfQUJPVVRfV0lORV9URVhULCA4LCA1NCwgMjA0LCAxMAp9CgpTSEVMTF9SVU5fRExHIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDAsIDAsIDIyNywgOTUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBJQ09OICIiLCAxMjI5NywgNywgMTEsIDE4LCAyMCwgV1NfVklTSUJMRQogTFRFWFQgIlNrcml2IGlubiBuYXZuZXQgcOUgcHJvZ3JhbW1ldCwgbWFwcGVuLCBkb2t1bWVudGV0IGV0dGVyIEludGVybmV0dC1yZXNzdXJzZW4gZHUg+G5za2VyIOUg5XBuZS4iLCAxMjI4OSwgMzYsIDExLCAxODIsIDE4CiBMVEVYVCAiJsVwbmU6IiwgMTIzMDUsIDcsIDM5LCAyNCwgMTAKIENPTlRST0wgIiIsIDEyMjk4LCAiQ09NQk9CT1giLCBXU19UQUJTVE9QIHwgV1NfR1JPVVAgfCBXU19WU0NST0xMIHwgV1NfVklTSUJMRSB8IENCU19ESVNBQkxFTk9TQ1JPTEwgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfRFJPUERPV04sIDM2LCAzNywgMTgzLCAxMDAKIERFRlBVU0hCVVRUT04gIk9LIiwgSURPSywgNjIsIDYzLCA1MCwgMTQsIFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkF2YnJ5dCIsIElEQ0FOQ0VMLCAxMTYsIDYzLCA1MCwgMTQsIFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIiZCbGEuLi4iLCAxMjI4OCwgMTcwLCA2MywgNTAsIDE0LCBXU19UQUJTVE9QCn0KClNUUklOR1RBQkxFCnsKICAgICAgICAvKiBjb2x1bW5zIGluIHRoZSBzaGVsbHZpZXcgKi8KCUlEU19TSFZfQ09MVU1OMQkJIkZpbCIKCUlEU19TSFZfQ09MVU1OMgkJIlN0+HJyZWxzZSIKCUlEU19TSFZfQ09MVU1OMwkJIlR5cGUiCglJRFNfU0hWX0NPTFVNTjQJCSJFbmRyZXQiCglJRFNfU0hWX0NPTFVNTjUJCSJFZ2Vuc2thcGVyIgoJSURTX1NIVl9DT0xVTU42CQkiU3T4cnJlbHNlIgoJSURTX1NIVl9DT0xVTU43CQkiTGVkaWcgcGxhc3MiCglJRFNfU0hWX0NPTFVNTjgJCSJOYXZuIgoJSURTX1NIVl9DT0xVTU45CQkiS29tbWVudGFyZXIiCglJRFNfU0hWX0NPTFVNTjEwCSJFaWVyIgoJSURTX1NIVl9DT0xVTU4xMQkiR3J1cHBlIgoJSURTX1NIVl9DT0xVTU5fREVMRlJPTQkiT3BwcmlubmVsaWcgcGxhc3NlcmluZyIKCUlEU19TSFZfQ09MVU1OX0RFTERBVEUJIkRhdG8gc2xldHRldCIKCiAgICAgICAgLyogc3BlY2lhbCBmb2xkZXJzICovCglJRFNfREVTS1RPUAkJIlNrcml2ZWJvcmQiCglJRFNfTVlDT01QVVRFUgkJIk1pbiBkYXRhbWFza2luIgoJSURTX1JFQ1lDTEVCSU5fRk9MREVSX05BTUUgICAgICAiUGFwaXJrdXJ2IgoKICAgICAgICAvKiBjb250ZXh0IG1lbnVzICovCglJRFNfVklFV19MQVJHRQkJIiZTdG9yZSBpa29uZXIiCglJRFNfVklFV19TTUFMTAkJIlMmbeUgaWtvbmVyIgoJSURTX1ZJRVdfTElTVAkJIiZMaXN0ZSIKCUlEU19WSUVXX0RFVEFJTFMJIiZEZXRhbGplciIKCUlEU19TRUxFQ1QJCSJWZWxnIgoJSURTX09QRU4JCSLFcG5lIgoKCUlEU19DUkVBVEVGT0xERVJfREVOSUVEICJLdW5uZSBpa2tlIG9wcHJldHRlIG55IG1hcHBlOiB0aWxnYW5nIG5la3RldC4iCglJRFNfQ1JFQVRFRk9MREVSX0NBUFRJT04gIktsYXJ0ZSBpa2tlIG9wcHJldHRlIG55IG1hcHBlIgoJSURTX0RFTEVURUlURU1fQ0FQVElPTiAiQmVrcmVmdCBmaWxzbGV0dGluZyIKCUlEU19ERUxFVEVGT0xERVJfQ0FQVElPTiAiQmVrcmVmdCBzbGV0dGluZyBhdiBtYXBwZSIKCUlEU19ERUxFVEVJVEVNX1RFWFQgIlZpcmtlbGlnIHNsZXR0ZSCrJTG7PyIKCUlEU19ERUxFVEVNVUxUSVBMRV9URVhUICJWaXJrZWxpZyBzbGV0dGUgZGlzc2UgJTEgZWxlbWVudGVuZT8iCglJRFNfREVMRVRFU0VMRUNURURfVEVYVCAiVmlya2VsaWcgc2xldHRlIHZhbGd0ZSBlbGVtZW50KGVyKT8/IgoJSURTX1RSQVNISVRFTV9URVhUICJWaXJrZWxpZyBsZWdnZSCrJTG7IGkgcGFwaXJrdXJ2ZW4/IgoJSURTX1RSQVNIRk9MREVSX1RFWFQgIlZpcmtlbGlnIGxlZ2dlIKslMbsgb2cgYWx0IGlubmhvbGRldCBpIHBhcGlya3VydmVuPyIKCUlEU19UUkFTSE1VTFRJUExFX1RFWFQgIlZpcmtlbGlnIGxlZ2dlIGRpc3NlICUxIHZhbGd0ZSBlbGVtZW50ZW5lIGkgcGFwaXJrdXJ2ZW4/IgoJSURTX0NBTlRUUkFTSF9URVhUICJFbGVtZW50ZXQgqyUxuyBrYW4gaWtrZSBsZWdnZXMgaSBwYXBpcmt1cnZlbi4gVmlsIGR1IHNsZXR0ZSBkZXQgaSBzdGVkZXQ/IgoJSURTX09WRVJXUklURUZJTEVfVEVYVCAiVGhpcyBmb2xkZXIgYWxyZWFkeSBjb250YWlucyBhIGZpbGUgY2FsbGVkICclMScuXG5cbkRvIHlvdSB3YW50IHRvIHJlcGxhY2UgaXQ/IgoJSURTX09WRVJXUklURUZJTEVfQ0FQVElPTiAiQmVrcmVmdCBvdmVyc2tyaXZpbmcgYXYgZmlsIgoJSURTX09WRVJXUklURUZPTERFUl9URVhUICJUaGlzIGZvbGRlciBhbHJlYWR5IGNvbnRhaW5zIGEgZm9sZGVyIG5hbWVkICclMScuXG5cbiJcCgkgICAgIklmIHRoZSBmaWxlcyBpbiB0aGUgZGVzdGluYXRpb24gZm9sZGVyIGhhdmUgdGhlIHNhbWUgbmFtZXMgYXMgZmlsZXMgaW4gdGhlXG4iXAoJICAgICJzZWxlY3RlZCBmb2xkZXIgdGhleSB3aWxsIGJlIHJlcGxhY2VkLiBEbyB5b3Ugc3RpbGwgd2FudCB0byBtb3ZlIG9yIGNvcHlcbiJcCgkgICAgInRoZSBmb2xkZXI/IgoKICAgICAgICAvKiBtZXNzYWdlIGJveCBzdHJpbmdzICovCiAgICAgICAgSURTX1JFU1RBUlRfVElUTEUgICAgICAgIlN0YXJ0ZSBw5SBueXR0IgogICAgICAgIElEU19SRVNUQVJUX1BST01QVCAgICAgICJWaWwgZHUgc2ltdWxlcmUgZW4gb21zdGFydCBhdiBXaW5kb3dzPyIKICAgICAgICBJRFNfU0hVVERPV05fVElUTEUgICAgICAiQXZzbHV0dCIKICAgICAgICBJRFNfU0hVVERPV05fUFJPTVBUICAgICAiVmlsIGR1IGF2c2x1dHRlIFdpbmUt+Gt0ZW4/IgoKICAgICAgICAvKiBzaGVsbCBmb2xkZXIgcGF0aCBkZWZhdWx0IHZhbHVlcyAqLwoJSURTX1BST0dSQU1TICAgICAgICAgICAgICAgICJTdGFydC1tZW55XFxQcm9ncmFtbWVyIgoJSURTX1BFUlNPTkFMICAgICAgICAgICAgICAgICJNaW5lIGRva3VtZW50ZXIiCglJRFNfRkFWT1JJVEVTICAgICAgICAgICAgICAgIkZhdm9yaXR0ZXIiCglJRFNfU1RBUlRVUCAgICAgICAgICAgICAgICAgIlN0YXJ0LW1lbnlcXFByb2dyYW1tZXJcXE9wcHN0YXJ0IgoJSURTX1JFQ0VOVCAgICAgICAgICAgICAgICAgICJTaXN0ZSIKCUlEU19TRU5EVE8gICAgICAgICAgICAgICAgICAiU2VuZFRvIgoJSURTX1NUQVJUTUVOVSAgICAgICAgICAgICAgICJTdGFydC1tZW55IgoJSURTX01ZTVVTSUMgICAgICAgICAgICAgICAgICJNaW4gbXVzaWtrIgoJSURTX01ZVklERU8gICAgICAgICAgICAgICAgICJNaW5lIHZpZGVva2xpcHAiCglJRFNfREVTS1RPUERJUkVDVE9SWSAgICAgICAgIlNrcml2ZWJvcmQiCglJRFNfTkVUSE9PRCAgICAgICAgICAgICAgICAgIk5ldEhvb2QiCglJRFNfVEVNUExBVEVTICAgICAgICAgICAgICAgIk1hbGVyIgoJSURTX0FQUERBVEEgICAgICAgICAgICAgICAgICJQcm9ncmFtZGF0YSIKCUlEU19QUklOVEhPT0QgICAgICAgICAgICAgICAiU2tyaXZlcmUiCglJRFNfTE9DQUxfQVBQREFUQSAgICAgICAgICAgIkxva2FsZSBpbm5zdGlsbGluZ2VyXFxQcm9ncmFtZGF0YSIKCUlEU19JTlRFUk5FVF9DQUNIRSAgICAgICAgICAiTG9rYWxlIGlubnN0aWxsaW5nZXJcXFRlbXBvcmFyeSBJbnRlcm5ldCBGaWxlcyIKCUlEU19DT09LSUVTICAgICAgICAgICAgICAgICAiQ29va2llcyIKCUlEU19ISVNUT1JZICAgICAgICAgICAgICAgICAiTG9rYWxlIGlubnN0aWxsaW5nZXJcXExvZ2ciCglJRFNfUFJPR1JBTV9GSUxFUyAgICAgICAgICAgIlByb2dyYW1maWxlciIKCUlEU19NWVBJQ1RVUkVTICAgICAgICAgICAgICAiTWluZSBiaWxkZXIiCglJRFNfUFJPR1JBTV9GSUxFU19DT01NT04gICAgIlByb2dyYW1maWxlclxcRmVsbGVzZmlsZXIiCglJRFNfQ09NTU9OX0RPQ1VNRU5UUyAgICAgICAgIkRva3VtZW50ZXIiCglJRFNfQURNSU5UT09MUyAgICAgICAgICAgICAgIlN0YXJ0LW1lbnlcXFByb2dyYW1tZXJcXEFkbWluaXN0cmF0aXZlIHZlcmt0+HkiCglJRFNfQ09NTU9OX01VU0lDICAgICAgICAgICAgIkRva3VtZW50ZXJcXE1pbiBtdXNpa2siCglJRFNfQ09NTU9OX1BJQ1RVUkVTICAgICAgICAgIkRva3VtZW50ZXJcXE1pbmUgYmlsZGVyIgoJSURTX0NPTU1PTl9WSURFTyAgICAgICAgICAgICJEb2t1bWVudGVyXFxNaW5lIHZpZGVva2xpcHAiCglJRFNfQ0RCVVJOX0FSRUEgICAgICAgICAgICAgIkxva2FsZSBpbm5zdGlsbGluZ2VyXFxQcm9ncmFtZGF0YVxcTWljcm9zb2Z0XFxDRCBCdXJuaW5nIgoKCUlEU19ORVdGT0xERVIJCSJOeSBtYXBwZSIKfQoKU1RSSU5HVEFCTEUKewpJRFNfTElDRU5TRV9DQVBUSU9OLCAgICAgICAgICAgICJMaXNlbnNiZXRpbmdlbHNlciIKSURTX0xJQ0VOU0UsCiJXaW5lIGVyIGZyaSBwcm9ncmFtdmFyZTsgZHUga2FuIGRpc3RyaWJ1ZXJlIGRldCBvZy9lbGxlciBcCmVuZHJlIGRldCBpIGhlbmhvbGQgdGlsIHZpbGvlcmVuZSBpIKtHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIFwKTGljZW5zZbssIHV0Z2l0dCBhdiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlbnRlbiBcCnZlcnNqb24gMi4xIGF2IExpc2Vuc2VuLCBlbGxlciAoaHZpcyBkdSD4bnNrZXIgZGV0KSBlbiBueWVyZSB2ZXJzam9uLlxuXG5cCldpbmUgdXRnaXMgaSBo5XAgb20gYXQgZGV0IGVyIG55dHRpZywgXAptZW4gVVRFTiBFTkhWRVIgR0FSQU5USTsgdXRlbiBlbmdhbmcgZGVuIGFudHlkZWRlIGdhcmFudGllbiBvbSBcCkhBTkRFTFNFR05FVEhFVCBlbGxlciBFR05FVEhFVCBGT1IgRVQgU1BFU0lFTFQgRk9STcVMLiAgU2Ugq0dOVSBcCkxlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNluyBmb3IgZmxlcmUgZGV0YWxqZXIuXG5cblwKRHUgc2thbCBoYSBtb3R0YXR0IGV0IGVrc2VtcGxhciBhdiCrR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBcCkxpY2Vuc2W7IHNhbW1lbiBtZWQgZGV0dGUgcHJvZ3JhbW1ldDsgaHZpcyBpa2tlLCBza3JpdiB0aWw6IHRoZSBGcmVlIFNvZnR3YXJlIFwKRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4iCn0K